| 1 | #! /usr/bin/python |
| 2 | |
| 3 | import os as OS |
| 4 | from sys import stdout, argv |
| 5 | import impacket.ImpactPacket as I |
| 6 | |
| 7 | sndname, sndaddr, rcpname, rcpaddr, outfile = argv[1:] |
| 8 | |
| 9 | ip = I.IP() |
| 10 | ip.set_ip_src(sndaddr); |
| 11 | ip.set_ip_dst(rcpaddr); |
| 12 | icmp = I.ICMP() |
| 13 | icmp.set_icmp_type(icmp.ICMP_ECHO) |
| 14 | icmp.set_icmp_cksum(0) |
| 15 | icmp.auto_checksum = 1 |
| 16 | icmp.contains(I.Data('Hello, %s, from %s!' % (rcpname, sndname))) |
| 17 | ip.contains(icmp) |
| 18 | |
| 19 | if outfile == '-': |
| 20 | stdout.write(ip.get_packet()) |
| 21 | else: |
| 22 | outtmp = outfile + '.new' |
| 23 | with open(outtmp, 'wb') as f: f.write(ip.get_packet()) |
| 24 | OS.rename(outtmp, outfile) |