From d6da95231ee790fd884ca2a41fe59aa9b05ccde9 Mon Sep 17 00:00:00 2001 From: Dario Lombardo Date: Thu, 19 Nov 2015 11:30:44 +0100 Subject: extcap: add sshdump. sshdump is an extcap module that allows dumping from a remote host using an ssh connection. It goes with the existing extcap plugin interface. Change-Id: I8987614fdd817b8173a50130812bc643a4833bca Reviewed-on: https://code.wireshark.org/review/11402 Petri-Dish: Alexis La Goutte Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- doc/sshdump.pod | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 doc/sshdump.pod (limited to 'doc/sshdump.pod') diff --git a/doc/sshdump.pod b/doc/sshdump.pod new file mode 100644 index 0000000000..6defdf1d74 --- /dev/null +++ b/doc/sshdump.pod @@ -0,0 +1,212 @@ + +=head1 NAME + +sshdump - Provide interfaces to capture from a remote host through SSH using a remote capture binary. + +=head1 SYNOPSIS + +B +S<[ B<--help> ]> +S<[ B<--version> ]> +S<[ B<--extcap-interfaces> ]> +S<[ B<--extcap-dlts> ]> +S<[ B<--extcap-interface>=EinterfaceE ]> +S<[ B<--extcap-config> ]> +S<[ B<--extcap-capture-filter>=Ecapture filterE ]> +S<[ B<--capture> ]> +S<[ B<--fifo>=Epath to file or pipeE ]> +S<[ B<--remote-host>=EIP addressE ]> +S<[ B<--remote-port>=ETCP portE ]> +S<[ B<--remote-username>=EusernameE ]> +S<[ B<--remote-password>=EpasswordE ]> +S<[ B<--sshkey>=Epublic key path ]> +S<[ B<--remote-interface>=EinterfaceE ]> +S<[ B<--remote-capture-bin>=Ecapture binaryE ]> + +B +S< B<--extcap-interfaces> > + +B +S< B<--extcap-interface>=EinterfaceE > +S<[ B<--extcap-dlts> ]> + +B +S< B<--extcap-interface>=EinterfaceE > +S<[ B<--extcap-config> ]> + +B +S< B<--extcap-interface>=EinterfaceE > +S< B<--fifo>=Epath to file or pipeE > +S< B<--capture> > +S< B<--remote-host=myremotehost> > +S< B<--remote-port=22> > +S< B<--remote-username=user> > +S< B<--remote-interface=eth2> > +S< B<--remote-capture-bin=/usr/sbin/dumpcap> > + +=head1 DESCRIPTION + +B is a extcap tool that allows to run a remote capture +tool in a SSH connection. The requirement is that the capture +executable must have the capabilities to capture from the wanted +interface. + +The feature is functionally equivalent to run commands like + +$ ssh remoteuser@remotehost -p 22222 'dumpcap -i IFACE -P -w -' > FILE & +$ wireshark FILE + +$ ssh remoteuser@remotehost '/sbin/dumpcap -i IFACE -P -w - -f "not port 22"' > FILE & +$ wireshark FILE + +Supported interfaces: + +=over 4 + +=item 1. ssh + +=back + +=head1 OPTIONS + +=over 4 + +=item --help + +Print program arguments. + +=item --version + +Print program version. + +=item --extcap-interfaces + +List available interfaces. + +=item --extcap-interface=EinterfaceE + +Use specified interfaces. + +=item --extcap-dlts + +List DLTs of specified interface. + +=item --extcap-config + +List configuration options of specified interface. + +=item --capture + +Start capturing from specified interface save saved it in place specified by --fifo. + +=item --fifo=Epath to file or pipeE + +Save captured packet to file or send it through pipe. + +=item --remote-host=Eremote hostE + +The address of the remote host for capture. + +=item --remote-port=Eremote portE + +The SSH port of the remote host. + +=item --remote-username=EusernameE + +The username for ssh authentication. + +=item --remote-password=EpasswordE + +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. + +=item --sshkey=ESSH private key pathE + +The path to a private key for authentication. + +=item --remote-interface=Eremote interfaceE + +The remote network interface to capture from. + +=item --remote-capture-bin=Ecapture binaryE + +The remote capture binary. + +=item --extcap-capture-filter=Ecapture filterE + +The capture filter + +=back + +=head1 EXAMPLES + +To see program arguments: + + sshdump --help + +To see program version: + + sshdump --version + +To see interfaces: + + sshdump --extcap-interfaces + +Only one interface (ssh) is supported. + + Output: + interface {value=ssh}{display=SSH remote capture} + +To see interface DLTs: + + sshdump --extcap-interface=ssh --extcap-dlts + + Output: + dlt {number=147}{name=ssh}{display=Remote capture dependant DLT} + +To see interface configuration options: + + sshdump --extcap-interface=ssh --extcap-config + + Output: + arg {number=0}{call=--remote-host}{display=Remote SSH server address}{type=string}{default=127.0.0.1} + {tooltip=The remote SSH host. It can be both an IP address or an hostname} + arg {number=1}{call=--remote-port}{display=Remote SSH server port}{type=unsigned}{default=22} + {tooltip=The remote SSH host port} + arg {number=2}{call=--remote-username}{display=Remote SSH server username}{type=string}{default=dario} + {tooltip=The remote SSH username. If not provided, the current user will be used} + arg {number=3}{call=--remote-password}{display=Remote SSH server password}{type=string} + {tooltip=The SSH password. SSH agent and certificate are used before it.If they fail, password will + be used, and, if it fails, the connection is not established.} + arg {number=4}{call=--remote-interface}{display=Remote SSH server interface}{type=string}{default=eth0} + {tooltip=The remote network interface used for capture} + arg {number=5}{call=--remote-capture-bin}{display=Remote SSH capture bin}{type=string}{default=dumpcap} + {tooltip=The remote dumcap binary used for capture.} + arg {number=6}{call=--extcap-capture-filter}{display=Capture filter}{type=string}{default=not host hardcore} + {tooltip=The capture filter} + +To capture: + + sshdump --extcap-interface=ssh --fifo=/tmp/ssh.pcapng --capture --remote-host 192.168.1.10 + --remote-username user --extcap-capture-filter "not port 22" + +NOTE: To stop capturing CTRL+C/kill/terminate application. + +=head1 SEE ALSO + +wireshark(1), tshark(1), dumpcap(1), extcap(4) + +=head1 NOTES + +B is part of the B distribution. The latest version +of B can be found at L. + +HTML versions of the Wireshark project man pages are available at: +L. + +=head1 AUTHORS + + Original Author + -------- ------ + Dario Lombardo -- cgit v1.2.3