使用hping将数据包注入TCP netcat连接

时间:2018-10-06 15:24:09

标签: tcpdump

我在服务器和客户端之间打开了一个netcat连接,我正在尝试使用hping来制作数据包以在客户端上打印文本。

我的问题是我能够制作与所需数据包非常相似的数据包,但是我缺少了通过netcat从服务器发送到客户端的数据包中的TCP选项。

这是我的hping命令

hping3 -A -y  -M 717766814 -L 3830111434 -N 37033 -w 227 -b  -p 55526 -s 5555 -P 192.168.0.116 -c 1 -d 8 -E task4.txt

这是我制作的小包

11:16:45.116157 00:a0:98:64:9f:40 > 00:a0:98:36:c8:07, ethertype IPv4 (0x0800), length 62: (tos 0x0, ttl 64, id 37033, offset 0, flags [DF], proto TCP (6), length 48)
    192.168.0.216.5555 > 192.168.0.116.55526: Flags [P.], cksum 0x5600 (incorrect -> 0x0355), seq 717766814:717766822, ack 3830111434, win 227, length 8
    0x0000:  4500 0030 90a9 4000 4006 2782 c0a8 00d8  E..0..@.@.'.....
    0x0010:  c0a8 0074 15b3 d8e6 2ac8 409e e44a dcca  ...t....*.@..J..
    0x0020:  5018 00e3 5600 0000 4243 4445 4647 410a  P...V...BCDEFGA.

我需要制作的实际小包

11:16:52.352624 00:a0:98:64:9f:40 > 00:a0:98:36:c8:07, ethertype IPv4 (0x0800), length 74: (tos 0x0, ttl 64, id 38493, offset 0, flags [DF], proto TCP (6), length 60)
    192.168.0.216.5555 > 192.168.0.116.55526: Flags [P.], cksum 0x82cb (incorrect -> 0x0ce8), seq 717766814:717766822, ack 3830111434, win 227, options [nop,nop,TS val 1099353487 ecr 208117467], length 8
    0x0000:  4500 003c 965d 4000 4006 21c2 c0a8 00d8  E..<.]@.@.!.....
    0x0010:  c0a8 0074 15b3 d8e6 2ac8 409e e44a dcca  ...t....*.@..J..
    0x0020:  8018 00e3 82cb 0000 0101 080a 4186 cd8f  ............A...
    0x0030:  0c67 9edb 4142 4344 4546 470a            .g..ABCDEFG.

除了丢失选项和校验和之外,数据包是相同的

如何将选项添加到我制作的数据包中,或者还有另一种方法可以使用hping使测试显示在客户端上?

1 个答案:

答案 0 :(得分:0)

如您所见,hping3没有提供一种现成设置TCP选项的方法。 但是,好消息是TCP选项恰好在数据包中的TCP有效载荷的旁边。因此,您可以在数据前添加TCP选项:

  1. 将TCP选项+数据(而不只是数据)放入您提供给hping3的文件中:

    echo "0101080a4186cd8f0c679edb414243444546470a" | python3 -c "import sys, binascii; sys.stdout.buffer.write(binascii.unhexlify(input().strip()))" > /tmp/task4.txt
    
  2. 使用hping3发送,您需要将数据大小更改为20,并将数据偏移量设置为8default data offset is 5 32 bits words),以正确识别添加了TCP选项:

     -O --tcpoff
            Set fake tcp data offset. Normal data offset is tcphdrlen / 4.
    
    hping3 -A -y  -M 717766814 -L 3830111434 -N 37033 -w 227 -b  -p 55526 -s 5555 -P 192.168.134.161 -c 1 -d 20 -O 8 -E task4.txt
    

生成的精制包:

08:27:07.956095 IP (tos 0x0, ttl 64, id 37033, offset 0, flags [DF], proto TCP (6), length 60)
    192.168.134.142.5555 > 192.168.134.161.55526: Flags [P.], cksum 0x5451 (incorrect -> 0x0104), seq 0:8, ack 1, win 227, options [nop,nop,TS val 1099353487 ecr 208117467], length 8
    0x0000:  4500 003c 90a9 4000 4006 1b92 c0a8 868e  E..<..@.@.......
    0x0010:  c0a8 86a1 15b3 d8e6 2ac8 409e e44a dcca  ........*.@..J..
    0x0020:  8018 00e3 5451 0000 0101 080a 4186 cd8f  ....TQ......A...
    0x0030:  0c67 9edb 4142 4344 4546 470a            .g..ABCDEFG.