2015-12-23 5 views
2

Я знаю, что это было задано раньше. Однако я не понимаю, как построить команду для выполнения моей задачи, и предыдущий вопрос не был отмечен как ответ. Мне нужно отправить несколько пакетов с scapy, и мой вариант использования - отправить DNS-запросы на сервер удаленного сервера, используя UDP. Это команда, которую нужно использовать:Как отправить несколько пакетов в scapy

sr1(IP(dst="192.168.155.128")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com"))) 

В приведенных выше средствах примера SR1 послать пакет на слое 3, но есть более функциональные определения для отправки пакетов. См. Here.. Остальные части между фигурными скобками заключаются в том, как собрать пакет запросов DNS с scapy для записи A.

Но я хочу отправить несколько пакетов в одной команде. Предыдущий вопрос был предложенный ответ: это

sendp(p, iface=eth0, inter=1 , count=x) 

Где р ваш пакет или список пакетов и подсчета является количество раз повторить операцию отправки.

Здесь я потерялся. Если это правильный ответ, как бы интегрировать это в свою команду и как это будет выглядеть?

Заранее благодарен!

+0

'sr1 (.... qd = DNSQR (qname ...)))' is 'scrapy' code? Пожалуйста, дайте более подробную информацию. Удачи. – shellter

+0

Его пакетная обработка с использованием scapy. Не уверен, что это соответствует коду. Мне это точно кажется :). Anywho, я смог заставить его работать и проверять с помощью tcpdump. Все, что мне нужно было сделать, это заменить sendp на send и поместить «, count = 100» между двумя последними закрывающими скобками. Например: send (IP (dst = "192.168.155.128")/UDP()/DNS (rd = 1, qd = DNSQR (qname = "www.oreilly.com")), count = 100) – user53029

+0

Опубликовать ответ и принять его после ожидания 48 часов, чтобы получить ценные очки репутации. Для тех из нас, кто имеет только знакомство с «scrapy» (и для будущих читателей), вы можете обновить свой Q, чтобы включить то, что вы знаете о 'sr1 (.... qd = DNSQR (qname ...))). Удачи. – shellter

ответ

4

Рабочее решение: В приведенном выше примере вам нужно будет использовать другое определение функции для отправки пакетов.

Замените sendp на send, (sendp отправляет на layer2, send использует слой 3, а sr1 предназначен для отправки только одного пакета) и поместите «, count = x» между двумя последними замыкающими скобками. Где x = количество пакетов, которые вы хотите отправить. Запуск из scapy подскажет команду и результат должен выглядеть следующим образом:

>>> send(IP(dst="192.168.155.128")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com")), count=100) 
....................................................................... ............................. 
Sent 100 packets. 
>>> 

Простого пакет ICMP также может быть отправлен также может быть построен. В этом примере мы отправляем 100 ICMP-пакетов.

>>> send(IP(dst="192.168.155.128")/ICMP()/"testICMPpacket", count=100) 
    ....................................................................... ............................. 
Sent 100 packets. 
>>> 
Смежные вопросы