0
자체 개발 네트워크 프로토콜을 테스트하기위한 스크립트를 작성하려고합니다. 따라서 요청을 보내기 위해 scapy를 사용하고 있습니다. 모든게 잘 작동하는 것,하지만 내 코드에서 지정하는 UDP 원본 포트가 보내는 프로세스 중에 변경되는 것 같습니다. Wireshark의 소스 포트는 내가 지정한 포트와 다릅니다. 또한 tcpdump를 사용하여 패킷을 캡처하려고 시도했지만 tcpdump도 잘못된 포트를 표시합니다. 전송하기 전에 hexdump를 확인한 결과 올바른 것으로 보입니다. 어떤 아이디어가 문제이며 어떻게 해결할 수 있습니까?scapy : UDP 소스 포트가 전송 후 변경됨
for x in arr:
cds = TestProtocol(HopCount = 0xe, Length = 0x4, Priority = 0x1, ServiceID = 0x3,
ReceiverAddrLen = 0x1, UniqueID1 = 0x1,
UniqueID2 = 0x1, SenderAddress = 0x1b4e,
PacketType = 0x02c2, data1 = 0x0004,
data2 = 0xe6a7, data3 = 0x0)
ip = IP()
ip.dst = destAddr
ip.src = srcAddr
udp = UDP()
udp.sport = 1743 #the port which changes
udp.dport = x
pack = ip/udp/cds
send(pack, verbose = True)
여기 scapy를 사용하는 이유는 scapy와 함께 쉽게 패킷이 특정로 보낼 조작 할 수 있다는 것입니다 숙주. 이것은 침투 테스트에 정말 유용합니다. 내 코드는 wireshark에 따라 작동합니다. 유일한 문제는 원본 포트입니다. 올바른 요청을 보내기 위해 설정해야합니다. – braheem38
어떤 방법으로 패킷을 변경 하시겠습니까? 몇 바이트를 변경 하시겠습니까? "소켓"으로 왜 이것이 불가능합니까? 당신은 패키지를 받고, 디코딩하고, 변경하고, 인코딩하고, 다시 돌려 보낼 수 있습니다. –
저는 이제 scapy를 파이썬의 소켓 구현과 결합 시켰습니다. 고맙습니다! – braheem38