| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="generator" content="Asciidoctor 2.0.17">
- <title>wifidump(1)</title>
- <link rel="stylesheet" href="./ws.css">
- </head>
- <body class="manpage">
- <div id="header">
- <h1>wifidump(1) Manual Page</h1>
- <h2 id="_name">NAME</h2>
- <div class="sectionbody">
- <p>wifidump - Provides an interface to capture Wi-Fi frames from a remote host through SSH.</p>
- </div>
- </div>
- <div id="content">
- <div class="sect1">
- <h2 id="_synopsis">SYNOPSIS</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <p><span class="nowrap"><strong>wifidump</strong></span>
- <span class="nowrap">[ <strong>--help</strong> ]</span>
- <span class="nowrap">[ <strong>--version</strong> ]</span>
- <span class="nowrap">[ <strong>--extcap-interfaces</strong> ]</span>
- <span class="nowrap">[ <strong>--extcap-dlts</strong> ]</span>
- <span class="nowrap">[ <strong>--extcap-interface</strong>=<interface> ]</span>
- <span class="nowrap">[ <strong>--extcap-config</strong> ]</span>
- <span class="nowrap">[ <strong>--extcap-capture-filter</strong>=<capture filter> ]</span>
- <span class="nowrap">[ <strong>--capture</strong> ]</span>
- <span class="nowrap">[ <strong>--fifo</strong>=<path to file or pipe> ]</span>
- <span class="nowrap">[ <strong>--remote-host</strong>=<IP address> ]</span>
- <span class="nowrap">[ <strong>--remote-port</strong>=<TCP port> ]</span>
- <span class="nowrap">[ <strong>--remote-username</strong>=<username> ]</span>
- <span class="nowrap">[ <strong>--remote-password</strong>=<password> ]</span>
- <span class="nowrap">[ <strong>--sshkey</strong>=<public key path> ]</span>
- <span class="nowrap">[ <strong>--remote-interface</strong>=<interface> ]</span>
- <span class="nowrap">[ <strong>--remote-channel-frequency</strong>=<channel frequency> ]</span>
- <span class="nowrap">[ <strong>--remote-channel-width</strong>=<channel width> ]</span></p>
- </div>
- <div class="paragraph">
- <p><span class="nowrap"><strong>wifidump</strong></span>
- <span class="nowrap"><strong>--extcap-interfaces</strong></span></p>
- </div>
- <div class="paragraph">
- <p><span class="nowrap"><strong>wifidump</strong></span>
- <span class="nowrap"><strong>--extcap-interface</strong>=<interface></span>
- <span class="nowrap"><strong>--extcap-dlts</strong></span></p>
- </div>
- <div class="paragraph">
- <p><span class="nowrap"><strong>wifidump</strong></span>
- <span class="nowrap"><strong>--extcap-interface</strong>=<interface></span>
- <span class="nowrap"><strong>--extcap-config</strong></span></p>
- </div>
- <div class="paragraph">
- <p><span class="nowrap"><strong>wifidump</strong></span>
- <span class="nowrap"><strong>--extcap-interface</strong>=<interface></span>
- <span class="nowrap"><strong>--fifo</strong>=<path to file or pipe></span>
- <span class="nowrap"><strong>--capture</strong></span>
- <span class="nowrap"><strong>--remote-host=myremotehost</strong></span>
- <span class="nowrap"><strong>--remote-port=22</strong></span>
- <span class="nowrap"><strong>--remote-username=user</strong></span>
- <span class="nowrap"><strong>--remote-interface=eth2</strong></span>
- <span class="nowrap"><strong>--remote-channel-frequency=5180</strong></span>
- <span class="nowrap"><strong>--remote-channel-width=40</strong></span></p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="_description">DESCRIPTION</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <p><strong>Wifidump</strong> is an extcap tool that allows you to capture Wi-Fi traffic from a
- remote host over an SSH connection using <strong>tcpdump</strong>. The requirement to capture Wi-Fi
- frames is that the remote host must have the necessary binaries to manage and put
- the wanted interface into monitor mode. Such binaries include: <strong>ip</strong>, <strong>iw</strong>, and
- <strong>iwconfig</strong>. Also, because using monitor mode and managing the Wi-Fi interface requires
- root privileges, the system must be configured to allow the wanted user to run
- these binaries using sudo without entering a password.</p>
- </div>
- <div class="paragraph">
- <p>Typically wifidump is not invoked directly. Instead it can be configured through
- the Wireshark graphical user interface or its command line. The following will
- start Wireshark and start capturing from host <strong>remotehost</strong>:</p>
- </div>
- <div class="literalblock">
- <div class="content">
- <pre>$ wireshark '-oextcap.wifidump.remotehost:remotehost' -i wifidump -k</pre>
- </div>
- </div>
- <div class="paragraph">
- <p>To explicitly control the remote capture command:</p>
- </div>
- <div class="literalblock">
- <div class="content">
- <pre>$ wireshark '-oextcap.wifidump.remotehost:remotehost' \
- '-oextcap.wifidump.remotechannelfrequency:5180' \
- '-oextcap.wifidump.remotechannelwidth:40' \
- -i wifidump -k</pre>
- </div>
- </div>
- <div class="paragraph">
- <p>Supported interfaces:</p>
- </div>
- <div class="olist arabic">
- <ol class="arabic">
- <li>
- <p>wifidump</p>
- </li>
- </ol>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="_options">OPTIONS</h2>
- <div class="sectionbody">
- <div class="dlist">
- <dl>
- <dt class="hdlist1">--help</dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>Print program arguments.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--version</dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>Print program version.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--extcap-interfaces</dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>List available interfaces.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--extcap-interface=<interface></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>Use specified interfaces.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--extcap-dlts</dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>List DLTs of specified interface.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--extcap-config</dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>List configuration options of specified interface.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--capture</dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>Start capturing from specified interface and write raw packet data to the location specified by --fifo.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--fifo=<path to file or pipe></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>Save captured packet to file or send it through pipe.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--remote-host=<remote host></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>The address of the remote host for capture.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--remote-port=<remote port></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>The SSH port of the remote host.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--remote-username=<username></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>The username for ssh authentication.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--remote-password=<password></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>The password to use (if not ssh-agent and pubkey are used). WARNING: the
- passwords are stored in plaintext and visible to all users on this system. It is
- recommended to use keyfiles with a SSH agent.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--sshkey=<SSH private key path></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>The path to a private key for authentication.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--remote-interface=<remote interface></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>The remote network interface to capture from.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--remote-channel-frequency=<channel frequency></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>The remote channel frequency in MHz.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--remote-channel-width=<channel width></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>The remote channel width in MHz.</p>
- </div>
- </div>
- </div>
- </dd>
- <dt class="hdlist1">--extcap-capture-filter=<capture filter></dt>
- <dd>
- <div class="openblock">
- <div class="content">
- <div class="paragraph">
- <p>The capture filter. It corresponds to the value provided via the <strong>tshark -f</strong>
- option, and the Capture Filter field next to the interfaces list in the
- Wireshark interface.</p>
- </div>
- </div>
- </div>
- </dd>
- </dl>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="_examples">EXAMPLES</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <p>To see program arguments:</p>
- </div>
- <div class="literalblock">
- <div class="content">
- <pre>wifidump --help</pre>
- </div>
- </div>
- <div class="paragraph">
- <p>To see program version:</p>
- </div>
- <div class="literalblock">
- <div class="content">
- <pre>wifidump --version</pre>
- </div>
- </div>
- <div class="paragraph">
- <p>To see interfaces:</p>
- </div>
- <div class="literalblock">
- <div class="content">
- <pre>wifidump --extcap-interfaces</pre>
- </div>
- </div>
- <div class="paragraph">
- <p>Only one interface (wifidump) is supported.</p>
- </div>
- <div class="literalblock">
- <div class="title">Example output</div>
- <div class="content">
- <pre>interface {value=wifidump}{display=Wi-Fi remote capture}</pre>
- </div>
- </div>
- <div class="paragraph">
- <p>To see interface DLTs:</p>
- </div>
- <div class="literalblock">
- <div class="content">
- <pre>wifidump --extcap-interface=wifidump --extcap-dlts</pre>
- </div>
- </div>
- <div class="literalblock">
- <div class="title">Example output</div>
- <div class="content">
- <pre>dlt {number=147}{name=wifidump}{display=Remote capture dependent DLT}</pre>
- </div>
- </div>
- <div class="paragraph">
- <p>To see interface configuration options:</p>
- </div>
- <div class="literalblock">
- <div class="content">
- <pre>wifidump --extcap-interface=wifidump --extcap-config</pre>
- </div>
- </div>
- <div class="literalblock">
- <div class="title">Example output</div>
- <div class="content">
- <pre>arg {number=0}{call=--remote-host}{display=Remote SSH server address}{type=string}
- {tooltip=The remote SSH host. It can be both an IP address or a hostname}{required=true}{group=Server}
- arg {number=1}{call=--remote-port}{display=Remote SSH server port}{type=unsigned}
- {tooltip=The remote SSH host port (1-65535)}{range=1,65535}{group=Server}
- arg {number=2}{call=--remote-username}{display=Remote SSH server username}{type=string}
- {tooltip=The remote SSH username. If not provided, the current user will be used}{group=Authentication}
- arg {number=3}{call=--remote-password}{display=Remote SSH server password}{type=password}
- {tooltip=The SSH password, used when other methods (SSH agent or key files) are unavailable.}{group=Authentication}
- arg {number=4}{call=--sshkey}{display=Path to SSH private key}{type=fileselect}
- {tooltip=The path on the local filesystem of the private ssh key}{mustexist=true}{group=Authentication}
- arg {number=5}{call=--sshkey-passphrase}{display=SSH key passphrase}{type=password}
- {tooltip=Passphrase to unlock the SSH private key}{group=Authentication}
- arg {number=6}{call=--remote-interface}{display=Remote interface}{type=string}
- {tooltip=The remote network interface used to capture}{default=auto}{group=Capture}
- arg {number=7}{call=--remote-channel-frequency}{display=Remote channel}{type=selector}
- {tooltip=The remote channel used to capture}{group=Capture}
- arg {number=8}{call=--remote-channel-width}{display=Remote channel width}{type=selector}
- {tooltip=The remote channel width used to capture}{group=Capture}
- arg {number=9}{call=--remote-filter}{display=Remote capture filter}{type=string}
- {tooltip=The remote capture filter}{group=Capture}
- arg {number=10}{call=--remote-count}{display=Packets to capture}{type=unsigned}
- {tooltip=The number of remote packets to capture.}{group=Capture}
- arg {number=11}{call=--log-level}{display=Set the log level}{type=selector}
- {tooltip=Set the log level}{required=false}{group=Debug}
- arg {number=12}{call=--log-file}{display=Use a file for logging}{type=fileselect}
- {tooltip=Set a file where log messages are written}{required=false}{group=Debug}</pre>
- </div>
- </div>
- <div class="paragraph">
- <p>To capture:</p>
- </div>
- <div class="literalblock">
- <div class="content">
- <pre>wifidump --extcap-interface=wifidump --fifo=/tmp/wifidump.pcap --capture --remote-host 192.168.1.10 --remote-username user --remote-channel-frequency 5180 --remote-channel-width 40</pre>
- </div>
- </div>
- <div class="admonitionblock note">
- <table>
- <tr>
- <td class="icon">
- <div class="title">Note</div>
- </td>
- <td class="content">
- To stop capturing CTRL+C/kill/terminate application.
- </td>
- </tr>
- </table>
- </div>
- <div class="paragraph">
- <p>The wifidump binary can be renamed to support multiple instances. For instance if we want wifidump
- to show up twice in wireshark (for instance to handle multiple profiles), we can copy wifidump to
- wifidump-host1 and wifidump-host2. Each binary will show up an interface name same as the executable
- name. Those executables not being "wifidump" will show up as "custom version" in the interface description.</p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="_see_also">SEE ALSO</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <p><a href="wireshark.html">wireshark</a>(1), <a href="tshark.html">tshark</a>(1), <a href="extcap.html">extcap</a>(4), <a href="https://www.tcpdump.org/manpages/tcpdump.1.html">tcpdump</a>(1)</p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="_notes">NOTES</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <p><strong>Wifidump</strong> is part of the <strong>Wireshark</strong> distribution. The latest version
- of <strong>Wireshark</strong> can be found at <a href="https://www.wireshark.org" class="bare">https://www.wireshark.org</a>.</p>
- </div>
- <div class="paragraph">
- <p>HTML versions of the Wireshark project man pages are available at
- <a href="https://www.wireshark.org/docs/man-pages" class="bare">https://www.wireshark.org/docs/man-pages</a>.</p>
- </div>
- </div>
- </div>
- <div class="sect1">
- <h2 id="_authors">AUTHORS</h2>
- <div class="sectionbody">
- <div class="paragraph">
- <div class="title">Original Author</div>
- <p>Adrian Granados <adrian[AT]intuitibits.com></p>
- </div>
- </div>
- </div>
- </div>
- </body>
- </html>
|