1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5 <title>netsniff-ng - the packet sniffing beast
</title>
7 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8">
8 <meta name=
"Robots" content=
"noarchive">
10 <link rel=
"Shortcut Icon" href=
"http://netsniff-ng.org/img/tiny-logo.png" type=
"image/png">
11 <link type=
"text/css" rel=
"stylesheet" media=
"screen" href=
"style.css" />
13 <script type=
"text/javascript">
14 function InsertMail(mailnam
,mailsvr
,maildom
)
16 document
.write('<<a href="mailto:' + mailnam
+ '@' + mailsvr
+ '.'
17 + maildom
+ '">' + mailnam
+ '@' + mailsvr
+ '.' + maildom
+
24 <a href=
"https://github.com/gnumaniacs/netsniff-ng"><img style=
"position: absolute; top: 0; right: 0; border: 0;" src=
"https://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png" alt=
"Fork me on GitHub"></a>
30 <a href=
"http://netsniff-ng.org"><img src=
"http://netsniff-ng.org/img/logo.png" border=
"0" alt=
"netsniff-ng"></a>
34 <img src=
"http://netsniff-ng.org/img/logo2.png" border=
"0" alt=
"the packet sniffing beast">
40 <table border=
"1" width=
"100%" class=
"header"<tr><td>
41 <table border=
"0" width=
"90%">
43 <td valign=
"top" width=
"200" align=
"right">
44 <b>Latest version:
</b>
47 <a href=
"https://github.com/gnumaniacs/netsniff-ng/tree/master">netsniff-ng
0.5.8-next
</a> (
<a href=
"http://git.cryptoism.org/cgit.cgi/netsniff-ng.git/">M
</a>,
<a href=
"http://repo.or.cz/w/netsniff-ng.git/">M
</a>,
<a href=
"https://github.com/gnumaniacs/netsniff-ng/tarball/master">T
</a>,
<a href=
"http://lingrok.org/xref/netsniff-ng/">X
</a>,
<a href=
"https://github.com/gnumaniacs/netsniff-ng/tags">A
</a>)
<br>
48 <a href=
"http://pub.netsniff-ng.org/netsniff-ng/netsniff-ng-0.5.7.tar.gz">netsniff-ng
0.5.7-curr
</a> (
<a href=
"http://dl.packetstormsecurity.net/sniffers/netsniff-ng-0.5.7.tar.gz">M
</a>)
<br>
54 <table border=
"1" width=
"100%" class=
"header"><tr><td>
55 <table border=
"0" width=
"90%">
57 <td valign=
"top" width=
"200" align=
"right">
58 <b>Git repository:
</b>
61 git clone git://
<a href=
"https://github.com/gnumaniacs/netsniff-ng">github.com/gnumaniacs/netsniff-ng
</a>.git
65 <td valign=
"top" width=
"200" align=
"right">
69 <a href=
"http://src.netsniff-ng.org/">http://src.netsniff-ng.org/
</a><br>
75 <table border=
"1" width=
"100%" class=
"header"><tr><td>
76 <table border=
"0" width=
"90%">
78 <td valign=
"top" width=
"200" align=
"right">
82 <a href=
"http://bugs.netsniff-ng.org/">http://bugs.netsniff-ng.org/
</a>
86 <td valign=
"top" width=
"200" align=
"right">
90 via
<a href=
"mailto:netsniff-ng@googlegroups.com">netsniff-ng@groups
</a> (
<a href=
"http://news.gmane.org/gmane.linux.network.netsniff-ng">M
</a>,
<a href=
"http://www.mail-archive.com/netsniff-ng%40googlegroups.com/">M
</a>),
<a href=
"http://tools.ietf.org/html/rfc1855">How to Post
</a>
94 <td valign=
"top" width=
"200" align=
"right">
98 <a href=
"https://github.com/gnumaniacs/netsniff-ng/blob/master/TODO">Hack the Code
</a>,
<a href=
"https://github.com/gnumaniacs/netsniff-ng/blob/master/Documentation/SubmittingPatches">How to Hack
</a>
106 netsniff-ng is a free, performant Linux networking toolkit.
108 The gain of performance is reached by zero-copy mechanisms, so that on packet reception
<i>and
</i> transmission the kernel does not need to copy packets from kernel space to user space and vice versa.
110 Our toolkit can be used for network development and analysis, debugging, auditing or network reconnaissance.
112 The netsniff-ng toolkit consists of the following utilities:
114 <li><b>netsniff-ng
</b>, a high-performance zero-copy analyzer, pcap capturing and replaying tool
</li>
115 <li><b>trafgen
</b>, a high-performance zero-copy network traffic generator
</li>
116 <li><b>mausezahn
</b>, a packet generator and analyzer for HW/SW appliances with a Cisco-CLI
</li>
117 <li><b>bpfc
</b>, a Berkeley Packet Filter (BPF) compiler with Linux extensions
</li>
118 <li><b>ifpps
</b>, a top-like kernel networking and system statistics tool
</li>
119 <li><b>flowtop
</b>, a top-like netfilter connection tracking tool
</li>
120 <li><b>curvetun
</b>, a lightweight multiuser IP tunnel based on elliptic curve cryptography
</li>
121 <li><b>astraceroute
</b>, an autonomous system (AS) trace route utility
</li>
127 <b>netsniff-ng
</b> is a high-performance network analyzer based on packet mmap(
2) mechanisms. It can record pcap files to disc, replay them and also do an offline and online analysis. Capturing, analysis or replay of raw
802.11 frames are supported as well. pcap files are also compatible with tcpdump or Wireshark traces. netsniff-ng processes those pcap traces either in scatter-gather I/O or by mmap(
2) I/O.
129 <b>trafgen
</b> is a high-performance network traffic generator based on packet mmap(
2) mechanisms. It has its own flexible, macro-based low-level packet configuration language. Injection of raw
802.11 frames are supported as well. trafgen has a significantly higher speed than mausezahn and comes very close to pktgen, but runs from user space. pcap traces can also be converted into a trafgen packet configuration.
131 <b>mausezahn
</b> is a performant high-level packet generator that can run on a hardware-software appliance and comes with a Cisco-like CLI. It can craft nearly every possible or impossible packet. Thus, it can be used, for example, to test network behaviour under strange circumstances (stress test, malformed packets) or to test hardware-software appliances for several kind of attacks.
133 <b>bpfc
</b> is a Berkeley Packet Filter (BPF) compiler that understands the original BPF language developed by McCanne and Jacobson. It accepts BPF mnemonics and converts them into kernel/netsniff-ng readable BPF ``opcodes''. It also supports undocumented Linux filter extensions. This can especially be useful for more complicated filters, that high-level filters fail to support.
135 <b>ifpps
</b> is a tool which periodically provides top-like networking and system statistics from the Linux kernel. It gathers statistical data directly from procfs files and does not apply any user space traffic monitoring that would falsify statistics on high packet rates. For wireless, data about link connectivity is provided as well.
137 <b>flowtop
</b> is a top-like connection tracking tool that can run on an end host or router. It is able to present TCP or UDP flows that have been collected by the kernel's netfilter framework. GeoIP and TCP state machine information is displayed. Also, on end hosts flowtop can show PIDs and application names that flows relate to. No user space traffic monitoring is done, thus all data is gathered by the kernel.
139 <b>curvetun
</b> is a lightweight, high-speed ECDH multiuser VPN for Linux. curvetun uses the Linux TUN/TAP interface and supports {IPv4,IPv6} over {IPv4,IPv6} with UDP or TCP as carrier protocols. Packets are encrypted end-to-end by a symmetric stream cipher (Salsa20) and authenticated by a MAC (Poly1305), where keys have previously been computed with the ECDH key agreement protocol (Curve25519).
141 <b>astraceroute
</b> is an autonomous system (AS) trace route utility. Unlike traceroute or tcptraceroute, it not only display hops, but also their AS information they belong to as well as GeoIP information and other interesting things. On default, it uses a TCP probe packet and falls back to ICMP probes in case no ICMP answer has been received.
143 Concluding, the toolkit is split into small, useful utilities that are or are not necessarily related to each other. Each program for itself fills a gap as a helper in your daily network debugging, development or audit. Here's a big picture:
145 <center><img src=
"img/bp.png" border=
"0"></center>
149 <b>Source control
</b>
151 There's a public Git repository at
<a href=
"https://github.com/gnumaniacs/netsniff-ng">GitHub
</a> where you can check out the entire code base. If you are curious about the latest development happenings, you really might prefer our Git master's branch instead of the tarballs within our
<a href=
"http://pub.netsniff-ng.org/">public archive
</a>. For tamper resistant downloading, clone the Git repository and checkout the corresponding version tag.
155 There is a netsniff-ng
<a href=
"faq.html">frequently asked question
</a> site and for participating in development have a look at the documentation files within the source code.
<a href=
"http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html">Here
</a> is also a FAQ about the GNU GPL version
2, under which netsniff-ng is licensed.
157 For reporting bugs please use our
<a href=
"http://bugs.netsniff-ng.org/">bug tracking system
</a> or write an e-mail to
<script type=
"text/javascript">InsertMail("bugs", "netsniff-ng", "org");</script>.
161 If you think this software is great, then please consider to contribute in one of the following ways:
163 <li>Review and contribute to the
<a href=
"https://github.com/gnumaniacs/netsniff-ng">source code
</a> (see
<a href=
"https://github.com/gnumaniacs/netsniff-ng/blob/master/TODO">todo
</a> file)
</li>
164 <li>Add or improve documentation, Man-pages, write interesting howtos or blog articles
</li>
165 <li>Mention us in your talks at conferences
</li>
166 <li>Maintain distribution specific packages
</li>
167 <li>Donate hardware, networking equipment, especially for
10-Gbit/s-Ethernet
</li>
168 <li>Test netsniff-ng on your specific platform, especially on non-x86/x86_64
</li>
171 Currently, netsniff-ng is only available for Linux platforms. If you have a port for *BSD, let us know for merging your port into the main source tree. However, please do not port netsniff-ng to Windows or other proprietary junk! Here is a nice explanation why; we share Felix von Leitner's
<a href=
"http://www.fefe.de/nowindows/">point of view
</a>.
173 <h2>Documentation
</h2>
175 The best way to get a good overview of what it is all about and how the tools work is to look into the
<a href=
"https://github.com/gnumaniacs/netsniff-ng/tree/master/Documentation">``Documentation'' section
</a> of the netsniff-ng source code repository. This already covers a lot you need to know.
177 Then, the man page of each stable release of netsniff-ng will cover all of the usage details, also if you start each tool with ``--help'' additional examples are provided. Man pages are included within the source code distribution package. We also have a
<a href=
"faq.html">frequently asked question
</a> page. Moreover, see the Wikipedia
<a href=
"http://en.wikipedia.org/wiki/Netsniff-ng">article
</a> people wrote about netsniff-ng. If all of this is not enough, you can write your question to our
<a href=
"http://groups.google.com/group/netsniff-ng">mailing list
</a>, or google for it on third party sites.
179 To dig into the inner workings of the Berkeley Packet Filter architecture, have a look at
<a href=
"bpf.pdf">this
</a>. Documentation about the ``packet_mmap'' architecture with ``pf_packet'' sockets for the Linux kernel can be downloaded from
<a href=
"http://www.kernel.org/">kernel.org
</a> under
<a href=
"http://lxr.linux.no/linux+v3.2.9/Documentation/networking/packet_mmap.txt">packet_mmap.txt
</a>.
183 A mailing list for netsniff-ng moderated (spam free) user discussions is open to the
<a href=
"http://groups.google.com/group/netsniff-ng">public
</a>. Subscribe and mail to
<script type=
"text/javascript">InsertMail("netsniff-ng", "googlegroups", "com");</script>. There's also an archive at
<a href=
"http://dir.gmane.org/gmane.linux.network.netsniff-ng">Gmane
</a> and a
<a href=
"http://www.mail-archive.com/netsniff-ng%40googlegroups.com/">searchable archive
</a>.
185 Before posting questions, have a look at our
<a href=
"faq.html">FAQ
</a>.
187 <table border=
"0" width=
"90%">
190 <code>Copyright (C)
2009-
2012 <a href=
"http://gnumaniacs.org">Daniel Borkmann
</a>
191 <script type=
"text/javascript">InsertMail("daniel", "netsniff-ng", "org");</script>
192 and
<a href=
"https://github.com/gnumaniacs/netsniff-ng/blob/master/AUTHORS">contributers
</a>