美文网首页
tcpdump抓取指定报文

tcpdump抓取指定报文

作者: mingzhi618 | 来源:发表于2019-03-06 14:44 被阅读0次

    关于tcpdump命令的详细用法,下面两图分别显示了IP和TCP报文的首部

    https://segmentfault.com/a/1190000015044878

    1. 抓取 http GET/POST请求:

    tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

    解析:

    1) 获取tcp报文头长度:tcp[12:1]&0xf0 >> 2

    首先,因为tcp 报文的data-offset(数据偏移)字段长度为4位,我们取 data-offset所在字节,并AND 0xf0取数据偏移位,即 tcp[12:1]&0xf0

    其次,因为data-offset字段位于字节高位,帮右移4位后才是真实的数据长度:tcp[12:1]&0xf0 >> 4

    最后,因为data-offset字段单位为32位字(1字长为4字节),因此需要将结果乘以4(左移2位),因此得 tcp[12:1]&0xf0 >> 4 << 2,得到最后结果为:tcp[12:1] & 0xf0) >> 2

    2) 获取tcp报文内容头4字节:

    ‘GET ’ = 0x47455420

    ‘POST’ = 0x504f5354

    查ASCII表:

    0x47:‘G’

    0x45:‘E’

    0x54:‘T’

    0x20:’空格‘

    详细解释请参考此处:https://security.stackexchange.com/questions/121011/wireshark-tcp-filter-tcptcp121-0xf0-24

    tcpdump详细用法: https://hackertarget.com/tcpdump-examples/

    2. 只抓取有数据的HTTP报文内容

     不抓取 TCP session setup (SYN / FIN / ACK).

    tcpdump 'tcp port 80 and(((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

    1) 从IP报文中获取I报文总长度: ip[2:2]

    2) 从IP报文中获取IP报文头长度: (ip[0]&0xf)<<2

    3) 从TCP报文中获取TCP报文头长度:(tcp[12]&0xf0)>>2

    4) 计算数据包长度:报文总长度-IP报文头长度-TCP报文头长度

    5) 获取HTTP数据包长度非空的报文:(((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

    3. 抓取发包最多的IP地址

    tcpdump -nnn -t-c 200| cut -f 1,2,3,4 -d '.' | sort | uniq -c | sort -nr | head -n 20

    完整报文内容:

    IP 52.231.189.25.20523 > 192.168.1.117.16414: Flags [P.], seq 2274221020:2274221373, ack 4123247268, win 1452, options [nop,nop,TS val 1627996351 ecr 949364960], length 353

    1) 选项释意:

    -t: 不打印时间

    -c:抓200个数据包

    2) 切割报文:

    cut -f 1,2,3,4 -d '.'  :以'.'为分隔符切割报文,并取 1,2,3,4 段域

    3) 排序:sort

    4) 计算并打印相同数据出现的次数:uniq -c

    5) 以数字倒序排序: sort -nr

    6) 取前20条数据:head -n 20

    4. 抓所有协议的明文密码:

    tcpdump port http or port ftp or port smtp or port imap or port pop3 or port telnet -l -A | egrep -i -B5 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user '

    相关文章

      网友评论

          本文标题:tcpdump抓取指定报文

          本文链接:https://www.haomeiwen.com/subject/rvgtpqtx.html