Ser Posted February 6, 2020 Posted February 6, 2020 (edited) Откликнитесь, плиз, кто сможет написать небольшую программу, которая будет модифицировать пакеты вылавливая их из NFQUEUE. Моя задача немного изменять, переставляя пару байт, в пакетах dhcp. Остановился на NFQUEUE, к примеру в питон писать программку, которую можно будет менять по своему усмотрению. Может быть есть уже готовые решения, которые позволят модифицировать пакет по моим правилам (возможно не NFQUEUE). Посоветуйте, плиз. Edited February 6, 2020 by Ser Вставить ник Quote
ixi Posted February 6, 2020 Posted February 6, 2020 питон + netfilterqueue + scapy, мелкие изменения пишутся на лету Вставить ник Quote
Ser Posted February 6, 2020 Author Posted February 6, 2020 Попробую изучить питон. Синтаксис убил с этими отступами. Непривычно. @ixi Сможете помочь? Вставить ник Quote
ixi Posted February 6, 2020 Posted February 6, 2020 Не заинтересован. простой пример из старых тестов (без проверок и прочего): #! /usr/bin/env python2.7 from scapy.all import * from netfilterqueue import NetfilterQueue def modify(packet): pkt = IP(packet.get_payload()) if pkt[DNSQR].qname == "example.com.": del pkt[IP].len del pkt[IP].chksum del pkt[UDP].len del pkt[UDP].chksum pkt[DNS].an[0].rdata = "1.2.3.4" packet.set_payload(str(pkt)) packet.accept() nfqueue = NetfilterQueue() nfqueue.bind(1, modify) try: print "[*] waiting for data" nfqueue.run() except KeyboardInterrupt: pass Вставить ник Quote
vop Posted February 6, 2020 Posted February 6, 2020 Там и на C не сложно через libnetfilter_queue Вставить ник Quote
Ser Posted February 6, 2020 Author Posted February 6, 2020 :) мне везде сложно, но думаю изучение питона пригодится в будущем Буду постигать Подскажите Как посмотреть все методы в модуле? Вставить ник Quote
Ivan_83 Posted February 7, 2020 Posted February 7, 2020 19 часов назад, Ser сказал: Может быть есть уже готовые решения, которые позволят модифицировать пакет по моим правилам (возможно не NFQUEUE). На фре легко делается: ng_bpf + ng_patch. Загружаешь в bpf программу скомпиленную из матчинга tcpdump, всё что матчится идёт на один хук, всё что нет - на другой, где patch что то сделает с пакетом. http://netlab.dhis.org/wiki/ru:software:freebsd:igmpproxy_on_netgraph по аналогии с этим. Ещё у меня была прога на си, через дивертсокеты работала, торрентовый uTP мучала. http://netlab.dhis.org/wiki/ru:software:freebsd:utp_ctrl_daemon Но может будет проще сразу взять сервер где можно делать что угодно: http://netlab.dhis.org/wiki/ru:software:perl:dhcp_server Вставить ник Quote
orlik Posted February 9, 2020 Posted February 9, 2020 On 2/6/2020 at 4:42 PM, Ser said: Посоветуйте, плиз. а в чем смысл изменения в пакетах ? Может и не нужны подобные действия, и все можно сделать гораздо проще ? Обрисуйте проблему полностью Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.