2015-07-29 3 views
0

У меня возникли проблемы с получением всех связанных пакетов с запросом при использовании функции sr scapy.Проблемы с scapy sr function

ans, unans = sr(IP(dst="172.xxx.xxx.xxx")/TCP(dport=80,flags="S")) 

возвращается:

Received 2 packets, got 1 answers, remaining 0 packets 

Что происходит, что я сначала получить ICMP перенаправления. Впоследствии я получаю ответ от моей местной службы с SA. Иногда он говорит мне, что он получил два пакета, который имеет смысл, но когда я смотрю на него в кратком изложении он печатает следующее:

<bound method SndRcvList.summary of <Results: TCP:0 UDP:0 ICMP:1 Other:0>> 

и резюме() я нахожу это:

IP/TCP 172.xxx.xxx.xxx:ftp_data > 172.zzz.zzz.zzz:http S ==> IP/ICMP 172.yyy.yyy.yyy > 172.xxx.xxx.xxx redirect host-redirect/IPerror/TCPerror 

Во-первых, я задаюсь вопросом, где находится мой TCP-пакет, помеченный SA. Когда я смотрю на дамп сети, я определенно вижу это сразу после ICMP-пакета. Я убеждался, что вы запускаете scapy с запуском tcpdump и без него, на всякий случай, если он вмешивается, чего он не должен.

Я также пытался установить и увеличить тайм-аут, на случай, если он не дождался достаточно долго, чтобы получить пакет TCP. Не работает.

Я также пробовал его по интерфейсу loopback, локальному языку и системам, которые находятся в Интернете. Тот же результат везде.

Любые идеи о том, где могла быть ошибка?

+0

Я нашел https://github.com/phaethon/scapy/commit/d5f6219c4cb70eb27c10a1989b72541ae2341585 - но прямой бэкпорт не исправляет его. И как-то python3 с scapy для порта python3 не запускается: '>>> from scapy.all import * Traceback (последний последний звонок): [...] from .fields import StrField, ConditionalField, Emph, PacketListField Файл "/usr/local/lib/python3.2/dist-packages/scapy/fields.py", строка 12, в из .возобновляемого импорта * Файл "/usr/local/lib/python3.2/ dist-packages/scapy/volatile.py ", строка 609 rb" C: \ CON \ CON ", ^^ SyntaxError: недействительный синтаксис – user857990

+0

Хорошо, похоже, что эта проблема была актуальна для моей проблемы. Ошибка импорта фиксируется в то же время. Был ли конфликт версий с python версии 3.2 – user857990

ответ

0

Scapy считает, что этот ICMP-пакет является ответом на исходный запрос TCP SYN (который он на самом деле). Попробуйте использовать sr(..., multi = True), чтобы получить несколько пакетов ответов.

+0

, который делает трюк, если есть тайм-аут – user857990

Смежные вопросы