summaryrefslogtreecommitdiff
path: root/usr.bin/nc/scripts/iscan
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1996-09-05 08:55:44 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1996-09-05 08:55:44 +0000
commit74ce25b78fd53d753084ef14b2234bc105a4a983 (patch)
tree2cffc06e2eb76342240043e73120bb5451145124 /usr.bin/nc/scripts/iscan
parente70074aa65073a222e5a14ec65e7c499c313ba3d (diff)
nc is *hobbit*'s netcat; let the sysadm have the same tools the crackers
have, so that he may learn what the network is about and protect it better.
Diffstat (limited to 'usr.bin/nc/scripts/iscan')
-rw-r--r--usr.bin/nc/scripts/iscan35
1 files changed, 35 insertions, 0 deletions
diff --git a/usr.bin/nc/scripts/iscan b/usr.bin/nc/scripts/iscan
new file mode 100644
index 00000000000..6279bc817fe
--- /dev/null
+++ b/usr.bin/nc/scripts/iscan
@@ -0,0 +1,35 @@
+#! /bin/sh
+## duplicate DaveG's ident-scan thingie using netcat. Oooh, he'll be pissed.
+## args: target port [port port port ...]
+## hose stdout *and* stderr together.
+##
+## advantages: runs slower than ident-scan, giving remote inetd less cause
+## for alarm, and only hits the few known daemon ports you specify.
+## disadvantages: requires numeric-only port args, the output sleazitude,
+## and won't work for r-services when coming from high source ports.
+
+case "${2}" in
+ "" ) echo needs HOST and at least one PORT ; exit 1 ;;
+esac
+
+# ping 'em once and see if they *are* running identd
+nc -z -w 9 "$1" 113 || { echo "oops, $1 isn't running identd" ; exit 0 ; }
+
+# generate a randomish base port
+RP=`expr $$ % 999 + 31337`
+
+TRG="$1"
+shift
+
+while test "$1" ; do
+ nc -v -w 8 -p ${RP} "$TRG" ${1} < /dev/null > /dev/null &
+ PROC=$!
+ sleep 3
+ echo "${1},${RP}" | nc -w 4 -r "$TRG" 113 2>&1
+ sleep 2
+# does this look like a lamer script or what...
+ kill -HUP $PROC
+ RP=`expr ${RP} + 1`
+ shift
+done
+