TCP 패킷의 소스 포트를 스푸핑하는 방법은 무엇입니까?

TCP 패킷의 소스 포트를 스푸핑하는 방법은 무엇입니까?

TCP 패킷이 시스템을 떠날 때 다시 쓰는 쉬운 방법이 있습니까(또는 가능합니까)?
예를 들어, 내가 실행하면

telnet binfalse.de 22

머신에서 나가기 위해 사용되지 않는 포트를 찾습니다. 이 경우는 다음과 같습니다 46576.

root@srv % lsof -i -P -n | grep telnet
telnet    10150   user    3u  IPv4 1159425      0t0  TCP 1.2.3.4:46576->87.118.88.39:22 (ESTABLISHED)

1337하지만 이제 서버가 요청이 port 등에서 오는 것으로 생각하도록 이러한 패킷을 다시 작성하고 싶습니다 . 물론, 나는 telnet회의에서 답변을 기대할 필요가 없다는 것을 알고 있었습니다.

편집하다:
물론, 1337다른 방송에 출연하는 건 듣는 거였으니, 폄하 telnet1337수는 없겠지만…

답변1

Linux에 대해 이야기하고 있다고 가정하면 나가는 TCP 트래픽에 대해 온갖 종류의 미친 작업을 수행하는 테이블이 iptables있습니다 . NAT 기능도 도움이 될 수 있습니다. "포트 주소 변환" 또는 "수동 NAT"를 수행하고 싶은 것처럼 들리기 때문입니다.mangleiptables

답변2

telnet해당 프로토콜(또는 원시 TCP 스트리밍)을 사용하는 경우 다음 을 사용하여 텔넷 옵션을 협상 할 수 있습니다 nc -p <source_port>. -t저 아래에는 텔넷 연결을 허용하는 터미널 서버가 있는데 tcp/2015, 먼저tcp/31415

# Window 1
[mpenning@hotcoffee ~]$ nc -p 31415 -t 192.168.12.117 2015
????????????????

8024-1(config-if-Po2)#

확인하다...

[mpenning@hotcoffee tshark_wd]$ netstat -an | grep 31415
tcp        0      0 192.168.12.236:31415    192.168.12.117:2015     ESTABLISHED
[mpenning@hotcoffee tshark_wd]$

이는 아직 로컬 소켓에서 수신 대기하고 있지 않다고 가정합니다 tcp/31415. 필요한 포트에 바인딩된 로컬 TCP 소켓이 이미 있는 경우 iptables이것이 유일한 옵션입니다.

관련 정보