|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: R T
Length: 3370 (0xd2a) Types: TextFile Names: »RCrack«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen └─⟦this⟧ »./crack/Scripts/RCrack«
#!/bin/sh ### # This program is copyright Alec Muffett 1991, and is provided as part of # the Crack v4.0 Password Cracking package. The author disclaims all # responsibility or liability with respect to it's usage or its effect # upon hardware or computer systems, and maintains copyright as set out in # the "LICENCE" document which accompanies distributions of Crack v4.0 and # upwards. So there... ### ### # For those ignorant of 'rsh', what I am trying to build is a line of # the form # rsh hostname [-n] [-l remoteuser] command [args ...] # ### machine=`(uname) 2>&1` # What architecture are we on ? ### # Map architecture to rsh-equivalent... ### case $machine in "HP*UX") # Hewlett Packard boxen remote_shell="remsh" ;; # "XENIX"|"Xenix") # Just a suggestion... # remote_shell="rcmd" # ;; *) # default remote_shell="rsh" ;; esac ### # Are we going to kick rsh into the background, or are we going to # background the thing on the remote end ? ### asynch_mode="" if [ "x$1" = "x-asynch" ] then echo "(asynchronous $remote_shell mode)" asynch_mode="$1" shift else echo "(remotely backgrounded mode)" fi ### # Segments of input data to read. ### startline=$1 shift stopline=$1 shift datafile=/tmp/rcrk.$$ # temporary data file ### # Awk reads from stdin... Create an input file for rsh... ### awk -F: ' BEGIN { usercount = 0; saltcount = 0; startsalt = '"$startline"'; stopsalt = '"$stopline"'; } { if (substr($3, 1, 2) != last) { saltcount++; last = substr($3, 1, 2); } if (saltcount >= startsalt && saltcount <= stopsalt) { usercount++; print $0; } }' > $datafile ### # Test that we should actually bother to do anything. ### numlines=`wc -l < $datafile` ### # Must not quote $numlines here for comparison to work ### if [ $numlines = 0 ] then echo "RCrack: Nothing left to dispatch to remote host." rm -f $datafile exit 0 else echo Salted Segment comprises $numlines users # Don't quote this... fi ### # Now for the important bits. Create a diefile pointing to a remote diefile # (It's easier to get Crack.network to wire $remotediefile into arglist) ### remhost=$1 # Name of remote host ($2 == Crack path) remotediefile=$3 # Name of remote diefile localdiefile=Runtime/DR$remhost$$ # Local pointer to above awk -F: ' BEGIN { rshell = "'"$remote_shell"'"; rhost = "'"$remhost"'"; rdie = "'"$remotediefile"'"; rdie = substr(rdie,3,length(rdie) - 2); } $1 == rhost { if ($4 != "") { rshf = "-l " $4 " -n"; } else { rshf = "-n"; } if ($5 != "") { nf = split($5, path, "/"); ch = path[1]; for (i = 2; i < nf; i++) { ch = ch "/" path[i]; } } else { ch = "'"$CRACK_HOME_UNRES"'"; } } END { print "#!/bin/sh"; print "rm $0 && " rshell, rhost, rshf, "\"cd " ch ";" rdie "\""; }' < Scripts/network.conf > $localdiefile chmod 700 $localdiefile if [ "x$asynch_mode" = "x-asynch" ] then if [ "x$CRACK_OUT" != "x" ] then outfile=$CRACK_OUT/out.r$$ else outfile=./out.r$$ fi # 'rsh' traps SIGHUP and survives OK echo "Invoking: $remote_shell $@ <$datafile >$outfile 2>&1 && rm -f $datafile $localdiefile &" $remote_shell "$@" <$datafile >$outfile 2>&1 && rm -f $datafile $localdiefile & else # Perfectly ordinary network crack. echo "Invoking: $remote_shell $@ < $datafile" $remote_shell "$@" < $datafile rm -f $datafile fi exit 0