Dave saw my netcat example and was kind enough to resend to me some examples of netcat that I had provided to him and others in a past life.
The more complete example is axissniff - a script I wrote to allow me to sniff SOAP traffic between an ActionScript client and a Java server. This is a great example of using netcat, because it demonstrates how a little bit of script hacking can making up for seriously missing debugging tools.
Axissniff is also cool because it shows a neat shell script hack. Mainly, the axissniff script actually generates a shell script in /tmp/ and then runs it.
Here are a bunch of small hacks (again, most from the README). Thanks Dave for holding onto this!
netcat tricks
-------------
nc -- netcat opens up a network connection and allows you to write
across it.
Very, very simple tool.
,----
| nc -h
| [v1.10]
| connect to somewhere: nc [-options] hostname port[s] [ports] ...
| listen for inbound: nc -l -p port [-options] [hostname] [port]
| options:
| -e prog program to exec after connect
| [dangerous!!]
| -g gateway source-routing hop point[s], up to 8
| -G num source-routing pointer: 4, 8, 12, ...
| -h this cruft
| -i secs delay interval for lines sent, ports
| scanned
| -l listen mode, for inbound connects
| -n numeric-only IP addresses, no DNS
| -o file hex dump of traffic
| -p port local port number
| -r randomize local and remote ports
| -s addr local source address
| -t answer TELNET negotiation
| -u UDP mode
| -v verbose [use twice to be more verbose]
| -w secs timeout for connects and final net reads
| -z zero-I/O mode [used for scanning]
`----
copy files
----------
host: machine1.myhost.com
nc -l -p 9000
host: machine2.myhost.com
cat foo | nc machine1.myhost.com 9000
copy tree of files
------------------
host: machine1
nc -l -p 9000 | tar xvf -
host: machine2
tar cvf - tmp | nc -w 3 machine1 9000
check for open port
-------------------
nc -vv -z server1.myhost.com 80
do port scanning
----------------
nc -v -w 2 -z server1.myhost.com 70-100
get a web page
--------------
nc www.yahoo.com 80
GET / HTTP/1.0
simple web service
------------------
host: machine1.myhost.com
while true
do
nc -l -p 9000 -e /usr/bin/uptime
done
host: machine2.myhost.com
nc machine1.myhost.com 9000
telnet to a machine
-------------------
nc -t hostname.dyndns.org 23
swamp the network
-----------------
host: machine1
yes AAAAAAAAAAAAAAAAAAAAAA | nc -v -v -l -p 2222 > /dev/null
host: machine2
yes BBBBBBBBBBBBBBBBBBBBBB | nc machine1 2222 > /dev/null
enjoyed the netcat posts. i just wanted to point out dan bernstein's ucspi-tcp package, which is suitable for quickly building client/server tools that are a bit more robust (but still delightfully simple). often used in combination with the fantastic daemontools collection of utilities.
ReplyDeleteThanks - those are excellent tools too.
ReplyDelete