2016-06-09 4 views
0

Использование TCP Dump Я захватил этот пакет, который все время делает мое программное обеспечение недоступным.Правило IPTables регистрируется, а затем удаляет пакеты, чем содержит шестую строку, найденную через TCDUMP.

18:56:58.979504 IP Ubuntu-1404-trusty-64-minimal.13333 > XXX.XXX.XXX.XXX.60323: Flags [.], ack 47, win 227, options [nop,nop,TS val 26672837 ecr 695829589], length 0 
    0x0000: f4cc 554b 552c 5404 a6a6 8f40 0800 4500 ..UKU,[email protected] 
    0x0010: 0034 0ac8 4000 4006 25aa b009 6f56 bca5 [email protected]@.%...oV.. 
    0x0020: 2e4d 2f4f eba3 ffa0 f75a aac5 8dfb 8010 .M/O.....Z...... 
    0x0030: 00e3 72ad 0000 0101 080a 0196 fec5 2979 ..r...........)y 
    0x0040: 8455 

После нескольких проверок, я заметил, что этот пакет имеет фиксированную часть, которая останется неизменной в каждом захваченном пакете, эта часть находится в 0x0010 смещении exactley: b009 6f56 bca5. Прежде всего я пытаться войти этот пакет, когда прибыл с помощью IPTables:

iptables -A INPUT -p tcp --dport 13333 -m string --algo bm --hex-string "|b0096f56bca5|" -j LOG --log-prefix "b009-6f56-bca5:" 

К сожалению, это Iptables правило не work.But, когда я изменил его:

iptables -A INPUT -p tcp --dport 13333 -m string --algo bm --hex-string "|bca5|" -j LOG --log-prefix "b009-6f56-bca5:" 

Она работает без каких-либо проблем , Что не так с 1-м правилом? Я уже пробовал "|b009 6f56 bca5|" без успеха.

Любая помощь будет оценена по достоинству. С уважением.

+0

Что произойдет, если вы установите шестнадцатеричную строку в шестнадцатеричные парах, например b0 09 6f .. – BugFinder

+0

даже это правило не работает! 'iptables -A INPUT -p tcp -dport 13333 -m string --algo bm -hex-string" | b0 09 6f 56 bc a5 | " -j LOG -log-prefix "b009-6f56-bca5::" ' – user3072470

+0

Я, возможно, сжимаю соломинку, но что, если вы измените алгоритм на kmp – BugFinder

ответ

0

Не работает команда ТСРйитр:

tcpdump -XX src port 13333 

плохой выход:

18:56:58.979504 IP Ubuntu-1404-trusty-64-minimal.13333 > XXX.XXX.XXX.XXX.60323: Flags [.], ack 47, win 227, options [nop,nop,TS val 26672837 ecr 695829589], length 0 
    0x0000: f4cc 554b 552c 5404 a6a6 8f40 0800 4500 ..UKU,[email protected] 
    0x0010: 0034 0ac8 4000 4006 25aa b009 6f56 bca5 [email protected]@.%...oV.. 
    0x0020: 2e4d 2f4f eba3 ffa0 f75a aac5 8dfb 8010 .M/O.....Z...... 
    0x0030: 00e3 72ad 0000 0101 080a 0196 fec5 2979 ..r...........)y 
    0x0040: 8455 

Работа команды ТСРйитр:

tcpdump -nnSOX "src host XXX.XXX.XXX.XXX" and "dst port 13333" 

хороший выход:

listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 
05:49:49.631211 IP xxx.xxx.xxx.xxx.57625 > xxx.xxx.xxx.xxx.13333: Flags [S], seq 1036987151, win 29200, options [mss 1460,sackOK,TS val 770422252 ecr 0,nop,wscale 7], length 0 
    0x0000: 4514 003c 9ee3 4000 3a06 9772 bca5 2e4d E..<[email protected]:..r...M 
    0x0010: b009 6f56 e119 2f4f 3dcf 2b0f 0000 0000 ..oV../O=.+..... 
    0x0020: a002 7210 6e7e 0000 0204 05b4 0402 080a ..r.n~.......... 
    0x0030: 2deb b5ec 0000 0000 0103 0307   -........... 

Правила, которое работает для меня:

iptables -A INPUT -p tcp --dport 13333 -m string --algo bm --hex-string "|bca52e4db0096f56|" -j LOG --log-prefix "Bad Packet:" 
iptables -A INPUT -p tcp --dport 13333 -m string --algo bm --hex-string "|bca52e4db0096f56|" -j DROP 
0

Вот решение для вас попробовать

iptables -I INPUT -j DROP -p tcp --dport 13333 -m string --algo bm --hex-string "|bca52e4db0096f56|"