2017-10-04 6 views
2

같은 인터페이스에 tcpdump와 scapy를 실행했습니다 (sniff()). scp 파일 전송이 발생합니다.Scapy sniff()가 TCP 패킷을 캡처하지 않는 것 같습니다. 이더넷 프레임 만 표시합니다.

tcpdump : seq 및 acks가있는 tcp 패킷이 표시됩니다.

scapy sniff() 반환 된 목록 : 각 패킷 요약()에 표시된 내용은 (MAC addr1) > (Mac addr 2) (0x800)/Raw입니다. 심지어 패킷 .show()에서, 내가 볼 수있는 모든 것은 "## [Ethernet] ##", src 및 dst의 링크 계층 항목입니다.

30 초의 시간 초과로이 파일을 실행 했으므로 빈 텍스트 파일의 scp 전송을 캡처하여 올바르게 시간을 알 수 있습니다.

확실히 TCP 패킷이 전달되지만 그 중 아무 것도 탐지되지 않습니다. Scapy에 문제가 있습니까?

은 이더넷 페이로드를 처리에서 Scapy를 방지하는 버그가 거기에 아마 당신

+0

TCP는 이더넷으로 캡슐화 된 IP로 캡슐화됩니다. IP 패킷은 이더넷 프레임의 페이로드이고 TCP 세그먼트는 IP 패킷의 페이로드입니다. 당신은 단순히 충분히 깊게 해독하지 않습니다. –

+0

'sniff()'와'pkt.show()'의 결과를보고하십시오. – Pierre

답변

1

감사드립니다.

conf.debug_dissector = True을 설정하여 문제를 디버그 할 수 있습니다.

Scapy의 최신 개발 버전 (repository)은 이미 수정 된 버그 일 수 있으므로 (매우 최근까지는 Python 3에서보고 있던 것과 유사한 버그가 있었기 때문에) 얻을 수 있습니다.

현재 개발 버전으로 업데이트 한 후에도 버그가 계속 발생하면 report it!

+0

나는 그것을 고쳤다. 당신이 옳았. 내 버전이 버그이기 때문에 최신 버전으로 업데이트해야했습니다. 나는 또한 그것을 고치기 때문에 나는 여기에 오래된 주석을 삭제했다. – Arrow