使用TCP转储我捕获了这个数据包,这一直是我的软件不可用的。
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,T....@..E.
0x0010: 0034 0ac8 4000 4006 25aa b009 6f56 bca5 .4..@.@.%...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规则不起作用。但是当我把它改为:
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 :(得分: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,T....@..E.
0x0010: 0034 0ac8 4000 4006 25aa b009 6f56 bca5 .4..@.@.%...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..<..@.:..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
答案 1 :(得分:0)
以下是您尝试
的解决方案iptables -I INPUT -j DROP -p tcp --dport 13333 -m string --algo bm --hex-string "|bca52e4db0096f56|"