2016-06-09 71 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 

經過多次檢查,我注意到,該分組具有留在每個捕獲的分組不變,這部分位於exactley偏移0x0010固定部分: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:" 

它沒有任何問題的工作。 第一條規則有什麼問題?我已經嘗試"|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 - 日誌前綴「b009-6f56-bca5 ::」' – user3072470

+0

我可能抓着吸管,但如果將算法改爲kmp – BugFinder

回答

0

不工作tcpdump命令:

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命令:

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|" 
相關問題