commit - 05318df6523d79d06c245ba86c817626117b4288
commit + 129af471c931245c590c96319fcd4f8ca3b6f8ed
blob - /dev/null
blob + ad09209b00820a054c74cd24e977e8030645cb55 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/Makefile
+ARGS != cd ${.CURDIR} && ls proto_*.py
+TARGETS ?= ${ARGS}
+REGRESS_TARGETS = ${TARGETS:S/^/run-regress-/}
+CLEANFILES += *.log
+
+.for a in ${ARGS}
+run-regress-$a: $a
+ @echo '\n======== $@ ========'
+ SUDO=${SUDO} python $a
+.endfor
+
+.include <bsd.regress.mk>
+
+# TODO:
+#
+# 802_11
+# atalk
+# atm
+# cnfp
+# decnet
+# dvmrp
+# enc
+# fddi
+# frag6
+# iapp
+# igrp
+# ip6
+# ip6opts
+# ipsec
+# ipx
+# isoclns
+# krb
+# lwres
+# netbios
+# nfs
+# null
+# ofp
+# ospf6
+# pflog
+# pfsync
+# pim
+# rt6
+# sl
+# slow
+# sunrpc
+# timed
+# udpencap
+# wb
blob - /dev/null
blob + 8c48e1e72d2b201621c8ce4fbf6401f734150e96 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/helper.py
+#/usr/local/bin/env python
+
+import subprocess as sub
+import logging
+import time
+import os
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+# sudo modprobe dummy
+# sudo ip link set name eth10 dev dummy0
+# ip link show eth10
+# ip link set dev eth10 up
+
+DEF_IFACE = 'em0'
+
+def chck(pkt, re_output, debug=False):
+
+ #if os.getuid() != 0:
+ # print "root priveleges is required"
+ # exit(1)
+
+ #if isinstance(pkt, list):
+ # packet_count = len(pkt)
+ #else:
+ # packet_count = 1
+
+ pcap_name = 'sample.pcap'
+
+ wrpcap(pcap_name, pkt)
+ tcpdump_cmd = [ 'doas', 'tcpdump', '-r', pcap_name ]
+ # tcpdump_cmd = [ 'doas', 'tcpdump', '-i', DEF_IFACE, '-c', str(packet_count) ]
+ p = sub.Popen(tcpdump_cmd, stdout=sub.PIPE, stderr=sub.PIPE)
+
+ while True:
+ if p.poll() is None:
+ break
+
+ # time.sleep(2)
+ # send(pkt, iface=DEF_IFACE, verbose=1)
+
+ if debug:
+ pkt.show()
+ print p.communicate()[0]
+ p.wait()
+
+ os.remove(pcap_name)
blob - /dev/null
blob + 37d5dad32cc74353a97ed7b849f670e12974559f (mode 644)
Binary files /dev/null and tests/tcpdump-regress/helper.pyc differ
blob - /dev/null
blob + 185de9b3104c9b4f1871be8cc234c93ccfe40543 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_arp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "arp"
+ packet = ARP(op=ARP.who_has, psrc='192.168.1.2', pdst='192.168.1.1')
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 332ff1981250170b545f7a2ff71c1b5928347733 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_bgp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/bgp.py
+ print "bgp"
+ #packet = IP()/TCP()/BGPUpdate()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + b8df1f088715265dd58c7c6ccbc04dc8be718615 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_carp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/carp.py
+ print "carp"
+ #packet = CARP()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 60e3f267845c0d84a8444ec7e2c4d2875ad65560 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_cdp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/cdp.py
+ print "cdp"
+ #packet = CDP()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 34c54e1c9fb8b61f69664f06bd90c095747304a2 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_dhcp6.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "dhcp6"
+ packet = DHCP(options=[("message-type", "discover"), "end"])
+ re_output = ""
+ helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 57b28ab1867da6e0f8f21ccc45fa4ab0e293a187 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_domain.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+
+def main():
+
+ print "domain"
+ packet = IP() / UDP(dport=53) / DNS(qd=DNSQR(qname="google.com"))
+ re_output = ""
+ helper.chck(packet, re_output)
+
+ packet = TCP(dport=53)
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+
+ main()
blob - /dev/null
blob + 8734e0a902ad9144c9ad82c64388627017788c71 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_ether.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "ether"
+ packet = Ether()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + d608bf90b0bc61a9526a88608f722658b6bc3743 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_etherip.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/etherip.py
+ print "etherip"
+ #packet = EtherIP()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 516d4d3f03460308e05af82c7213f1376db34c97 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_gre.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "gre"
+ packet = GRE()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + b6bdf9402c67744bd22995fe5b5c105ee2895d08 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_gtp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/gtp.py
+ print "gtp"
+ #packet = GTP()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + df4b9648e45a650fe66d2b2a47fd8ca582fe9fb2 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_hsrp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "hsrp"
+ #packet = Ether(src="00:0C:07:AC:02", dst="00:5E:00:00:02") /
+ # IP(dst="224.0.0.2", src='attacerIP', ttl=1) /
+ # UDP() /
+ # HSRP(priority=230, virtualIP='virtualIP')
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + fbfa23e9afc8b6732e293ec03509cade6234c3b8 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_icmp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "icmp"
+ packet = IP(dst="192.168.1.1", ttl=128) / ICMP()
+ re_output = ""
+ tcpdump_opt = "-v ip and 'ip[8]>128'"
+ helper.chck(packet, re_output, debug=True)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + f6829c2e6ac38ce24102fe3827b31036c8805911 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_icmp6.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "icmp6"
+ packet = ICMPv6EchoRequest()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + f007e09ccfcacacc55d5788bb51a607a4ebec7cc (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_ike.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/ikev2.py
+ print "ike"
+ #packet = IKEv2()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 5ef402444585c3da8d30e2528541586424d0a4d2 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_ip.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "ip"
+ packet = IP()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + d6ab3afc2493709b15903ee946376329b9f7c13f (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_l2tp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "l2tp"
+ packet = L2TP()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 1083717429bc6fbb6875ec389f7bf2142e16eef9 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_llc.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "llc"
+ packet = LLC()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + c04d05a083370e6226c228ab63cd7f4c147a200e (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_lldp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/lldp.py
+ #load_contrib('lldp')
+ print "lldp"
+ #packet = LLDP()
+ #re_output = ""
+ #chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 5890029678bb9a7a7ea5e8ec0bec3347865339d5 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_mpls.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/mpls.py
+ print "mpls"
+ #packet = MPLS()
+ #re_output = ""
+ #chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + e36adb59fa40fc2f54d2987a07eb618260c20817 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_ntp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "ntp"
+ packet = IP()/UDP(dport=123)/Raw(load=str("\x17\x00\x03\x2a") + str("\x00")*4)
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + ca0577301a996e0a0cf25e61d70bfb6f6797cf99 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_ospf.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/ospf.py
+ #load_contrib('ospf')
+ print "ospf"
+ #packet = OSPF()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 5aa68c12c10a681c357f7d5d37fee42c88804bdb (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_ppp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "ppp"
+ packet = PPP()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 8c14b595c34ff1b4f2fa3158f9dcb15b17633c1a (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_radius.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "radius"
+ #packet = Radius()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 092db08fb095a5665e935a5f347b56e7489f069f (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_raw.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "raw"
+ packet = Raw()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
+
blob - /dev/null
blob + 15f0527a909bc8c196467445dae33d0f7e28f680 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_rip.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "rip"
+ packet = RIP()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
+
blob - /dev/null
blob + 333ce647769aa6bd5bfbe788575887def9363264 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_ripng.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/ripng.py
+ print "ripng"
+ #packet = RIPNG()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
+
blob - /dev/null
blob + d0f9f34d8f432c1eefc13c3c424e558d37fcbfb0 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_snmp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "snmp"
+ packet = UDP(sport=161) / SNMP(community="private", PDU="")
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + fd80afd6e645cd0c2e4c554864bd01d4fcddf362 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_stp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "stp"
+ packet = STP()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 79777ef20284ba873256b55c76e034e2459c76fa (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_tcp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "tcp"
+ packet = TCP()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 7b008358a0135fb0a8334116fddab112e9dd8409 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_tftp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "tftp"
+ packet = IP()/UDP()/TFTP()/TFTP_DATA(block=0)
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + ff6ab54f228994704052a3cfb46fa6bd2537e580 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_udp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "udp"
+ packet = UDP()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + a26cf19181186407419833f0ff81ec2890943bcc (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_vqp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ # vqp
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/vqp.py
+ print "vqp"
+ #packet = VQP()
+ #re_output = ""
+ #helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 7d5217c3b4331023a6cb7bd51cfbca8ae6ccd0a8 (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/proto_vrrp.py
+#/usr/local/bin/env python
+
+import helper
+import logging
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+def main():
+
+ print "vrrp"
+ packet = UDP()
+ re_output = ""
+ helper.chck(packet, re_output)
+
+
+if __name__ == "__main__":
+ main()
blob - /dev/null
blob + 12618473062572f7517647d3220d9b2c868b1313 (mode 644)
Binary files /dev/null and tests/tcpdump-regress/sample-tcp.pcap differ
blob - /dev/null
blob + 5b2ebcb491a68c24a390aa8ca160eef0ae44d44c (mode 644)
--- /dev/null
+++ tests/tcpdump-regress/send.py
+#/usr/local/bin/env python
+
+import subprocess as sub
+import logging
+import time
+import os
+logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
+from scapy.all import *
+logging.getLogger("scapy.runtime").setLevel(logging.WARNING)
+
+iface = 'em0'
+
+# sudo modprobe dummy
+# sudo ip link set name eth10 dev dummy0
+# ip link show eth10
+# ip link set dev eth10 up
+
+def chck(pkt, re_output, debug=False):
+
+ if os.getuid() != 0:
+ print "root priveleges is required"
+ exit(1)
+
+ if isinstance(pkt, list):
+ packet_count = len(pkt)
+ else:
+ packet_count = 1
+
+ p = sub.Popen(('doas', 'tcpdump', '-i', iface, '-c', str(packet_count)),
+ stdout=sub.PIPE, stderr=sub.PIPE)
+ while True:
+ if p.poll() is None:
+ break
+
+ # time.sleep(2)
+ send(pkt, iface=iface, verbose=1)
+
+ pkt.show()
+ print p.communicate()[0]
+ p.wait()
+
+
+def main():
+
+ # 802_11 ???
+
+ print "arp"
+ packet = ARP(op=ARP.who_has, psrc='192.168.1.2', pdst='192.168.1.1')
+ re_output = ""
+ chck(packet, re_output)
+
+ # atalk
+ # atm
+
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/bgp.py
+ #print "bgp"
+ #packet = IP()/TCP()/BGPUpdate()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ print "bootp"
+ packet = BOOTP()
+ re_output = ""
+ chck(packet, re_output)
+
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/carp.py
+ #print "carp"
+ #packet = CARP()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ # cdp
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/cdp.py
+ #print "cdp"
+ #packet = CDP()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ # cnfp
+ # decnet
+
+ print "dhcp6"
+ packet = DHCP(options=[("message-type", "discover"), "end"])
+ re_output = ""
+ chck(packet, re_output)
+
+ print "domain"
+ packet = IP() / UDP(dport=53) / DNS(qd=DNSQR(qname="google.com"))
+ re_output = ""
+ chck(packet, re_output)
+
+ packet = TCP(dport=53)
+ re_output = ""
+ chck(packet, re_output)
+
+ # dvmrp
+ # enc
+
+ print "ether"
+ packet = Ether()
+ re_output = ""
+ chck(packet, re_output)
+
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/etherip.py
+ #print "etherip"
+ #packet = EtherIP()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ # fddi
+ # frag6
+
+ print "gre"
+ packet = GRE()
+ re_output = ""
+ chck(packet, re_output)
+
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/gtp.py
+ #print "gtp"
+ #packet = GTP()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ print "hsrp"
+ packet = Ether(src=’00:00:0C:07:AC:02’, dst=’01:00:5E:00:00:02’ ) /
+ IP(dst=’224.0.0.2’, src='attacerIP', ttl=1) /
+ UDP() /
+ HSRP(priority=230, virtualIP='virtualIP'), inter=3, loop=1)
+ re_output = ""
+ chck(packet, re_output)
+
+ # iapp ???
+
+ print "icmp"
+ packet = IP(dst="192.168.1.1", ttl=128) / ICMP()
+ re_output = ""
+ tcpdump_opt = "-v ip and 'ip[8]>128'"
+ chck(packet, re_output)
+
+ print "icmp6"
+ packet = ICMPv6EchoRequest()
+ re_output = ""
+ chck(packet, re_output)
+
+ # igrp
+
+ # ike
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/ikev2.py
+ #print "ike"
+ #packet = IKEv2()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ print "ip"
+ packet = IP()
+ re_output = ""
+ chck(packet, re_output)
+
+ # ip6
+ # ip6opts
+ # ipsec
+ # ipx
+ # isoclns
+ # krb
+
+ print "l2tp"
+ packet = L2TP()
+ re_output = ""
+ chck(packet, re_output)
+
+ print "llc"
+ packet = LLC()
+ re_output = ""
+ chck(packet, re_output)
+
+ # lldp
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/lldp.py
+ #load_contrib('lldp')
+ #print "lldp"
+ #packet = LLDP()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ # lwres
+
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/mpls.py
+ #print "mpls"
+ #packet = MPLS()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ # netbios
+ # nfs
+
+ print "ntp"
+ packet = IP()/UDP(dport=123)/Raw(load=str("\x17\x00\x03\x2a") + str("\x00")*4)
+ re_output = ""
+ chck(packet, re_output)
+
+ # null
+ # ofp
+
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/ospf.py
+ #load_contrib('ospf')
+ #print "ospf"
+ #packet = OSPF()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ # ospf6
+ # pflog
+ # pfsync
+ # pim
+
+ print "ppp"
+ packet = PPP()
+ re_output = ""
+ chck(packet, re_output)
+
+ #print "radius"
+ #packet = Radius()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ print "raw"
+ packet = Raw()
+ re_output = ""
+ chck(packet, re_output)
+
+ print "rip"
+ packet = RIP()
+ re_output = ""
+ chck(packet, re_output)
+
+ # ripng
+ # https://github.com/secdev/Scapy/blob/master/scapy/contrib/ripng.py
+ #print "ripng"
+ #packet = RIPNG()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ # rt6
+ # sl
+ # slow
+
+ print "snmp"
+ packet = UDP(sport=161) / SNMP(community="private", PDU="")
+ re_output = ""
+ chck(packet, re_output)
+
+ print "stp"
+ packet = STP()
+ re_output = ""
+ chck(packet, re_output)
+
+ # sunrpc
+
+ print "tcp"
+ packet = TCP()
+ re_output = ""
+ chck(packet, re_output)
+
+ print "tftp"
+ packet = IP()/UDP()/TFTP()/TFTP_DATA(block=0)
+ re_output = ""
+ chck(packet, re_output)
+
+ # timed
+
+ print "udp"
+ packet = UDP()
+ re_output = ""
+ chck(packet, re_output)
+
+ # udpencap
+
+ # vqp
+ # https://github.com/secdev/scapy/blob/master/scapy/contrib/vqp.py
+ #print "vqp"
+ #packet = VQP()
+ #re_output = ""
+ #chck(packet, re_output)
+
+ print "vrrp"
+ packet = UDP()
+ re_output = ""
+ chck(packet, re_output)
+
+ # wb
+
+if __name__ == "__main__":
+ main()
+
+"""
+from scapy.all import *
+import urllib
+import urlparse
+import threading
+import re
+
+proxy = "http://my.proxy.server:8080"
+proxyIP = "1.2.3.4" # IP address of proxy
+
+# list of URLs
+urls = ["http://www.bbc.co.uk/news",
+ "http://www.google.co.uk"]
+
+packets = []
+
+# packet callback
+def pkt_callback(pkt):
+ packets.append(pkt) # save the packet
+
+# monitor function
+def monitor(fname):
+ del packets[:]
+ bpf_filter = "tcp and host " + proxyIP # set this filter to capture the traffic you want
+ sniff(timeout=60, prn=pkt_callback, filter=bpf_filter, store=0)
+ f=open(fname+".data", 'w')
+ for pkt in packets:
+ f.write(repr(pkt)) # or just save the raw packet data instead
+ f.write('\n')
+ f.close()
+
+for url in urls:
+ print "capturing: " + url
+ mon = threading.Thread(target=monitor, args=(re.sub(r'\W+', '', url),))
+ mon.start()
+ data = urllib.urlopen(url, proxies={'http': proxy})
+ # this line gets IP address of url host, might be helpful
+ # addr = socket.gethostbyname(urlparse.urlparse(data.geturl()).hostname)
+ mon.join()
+"""