added unreleased README
[oweals/thc-archive.git] / Tools / snip.sh
1 #!/bin/sh
2 # snip (c) copyright 2000 by plasmoid / thc <plasmoid@pimmel.com>
3
4 # snippy lil' snip script that shows accessible smb-netbios shares 
5 # in a given ip-range. - requires smbclient and nbtscan. 
6 #
7 # $Id: snip,v 1.2 2001/04/18 19:17:59 plasmoid Exp $
8
9 # set the right paths here, if smbclient and nbtscan are not within your
10 # path. 
11 SMBCLIENT=smbclient
12 NBTSCAN=nbtscan
13 ECHO=echo
14
15 if [ "`$ECHO -n`" != "-n" ] ; then
16    GNUECHO=1
17 fi
18
19 $ECHO "snip (c) copyright 2000 by plasmoid / thc <plasmoid@pimmel.com>"
20
21 if [ -z "$*" ] ; then
22    $ECHO "usage: snip <scan_range>"
23    $ECHO "<scan_range>    what to scan. can either be single IP like "
24    $ECHO "                xxx.xxx.xxx.xxx or range of addresses in one "
25    $ECHO "                of two forms xxx.xxx.xxx.xxx/xx or "
26    $ECHO "                xxx.xxx.xxx.xxx-xxx."
27    exit 
28 fi
29
30 if [ "x$GNUECHO" = "x1" ] ; then
31    $ECHO -n " - snipping $1: "
32 else
33    $ECHO " - snipping $1: \c"
34 fi
35
36 servers=`$NBTSCAN -s : $1 | grep \<server\> | \
37          sed s/" "/"%"/g | cut -d : -sf 1,2,4`
38 $ECHO "done."
39
40 if [ "x$GNUECHO" = "x1" ] ; then 
41    $ECHO -n " - searching shares: "
42 else
43    $ECHO " - searching shares: \c"
44 fi
45 for i in $servers ; do
46    
47    i=`$ECHO $i | sed s/"%"/" "/g`
48    
49    ip=`$ECHO $i | cut -d : -sf 1`
50    host=`$ECHO $i | cut -d : -sf 2 | awk '{ print $1 }'`
51    user=`$ECHO $i | cut -d : -sf 3`
52    
53    if [ "x$user" = "x<unknown>" ] ; then
54       smbarg="-I $ip -L $host -N"
55    else
56       smbarg="-I $ip -L $host -N -U $user"
57    fi 
58
59    output=`$SMBCLIENT $smbarg | grep Disk | awk '{ print $1 }'`
60    for j in $output ; do 
61       if [ "x$user" = "x<unknown>" ] ; then
62          result="$result\n$SMBCLIENT //$host/$j -I $ip -N"
63       else
64          result="$result\n$SMBCLIENT //$host/$j -I $ip -N -U $user"
65       fi
66    done 
67 if [ "x$GNUECHO" = "x1" ] ; then
68    $ECHO -n "."
69 else
70    $ECHO ".\c"
71 fi
72 done
73 $ECHO " done."
74 $ECHO " - results: "
75 $ECHO "$result"
76
77