|
|
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: C T
Length: 3786 (0xeca)
Types: TextFile
Names: »Crack.network«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
└─⟦this⟧ »./crack/Scripts/Crack.network«
#!/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...
###
# This program reads the network.conf and breaks up the sorted password
# file and runs RCrack to kick Crack up on all the machines and feeds
# the file to it.
###
# Okay, if you don't like this bit of code, YOU think of a totally
# portable way to do this - in shell scripts without using PERL - Alec.
###
cf=Scripts/network.conf
tf=/tmp/mcp.$$
###
# Check that the config file is in place
###
if [ ! -f $cf -o ! -s $cf ]
then
echo "Crack.network: empty or missing config file: $cf"
exit 1
fi
###
# Parse arguments
###
args=""
files=""
domail=""
for i in $*
do
if [ -f "$i" ]
then
files="$files $i"
else
case $i in
-f*)
echo "Crack: -f option on COMMAND LINE incompatible with networking - Ignored"
;;
-m*)
domail="$i"
args="$args $i"
;;
*)
args="$args $i"
;;
esac
fi
done
###
# Get on with your proper job
###
echo "Merging input data."
if [ "$CRACK_OUT" != "" ]
then
warn=$CRACK_OUT/out.$$
else
warn=out.$$
fi
Scripts/do_join $warn $files > $tf
if [ "x$domail" != "x" ]
then
MISCREANTS=`awk '/Guessed/{print $6}' < $warn`
echo Sending Warning Mail to $MISCREANTS
Scripts/nastygram $MISCREANTS
fi
###
# Statistics gathering
###
lines=`wc -l < $tf`
saltlines=`Scripts/saltcount < $tf`
# Must not quote $lines/$saltlines here for comparison to work
if [ $lines = 0 -o $saltlines = 0 ]
then
echo "Crack: no uncracked input to distribute."
exit 1
fi
echo "Starting analysis for Network-Crack."
cat $cf |
grep -v '^#' |
grep -v '^$' |
sort -t: +2 -n |
awk -F: '
BEGIN {
hostcount = 0;
totalweight = 0;
linecount = '"$lines"';
saltlinecount = '"$saltlines"';
iargs = "'"$args"'";
file = "'"$tf"'";
}
/^[a-zA-Z0-9]/ {
hostname[hostcount] = $1;
bintype[hostcount] = $2;
relpow[hostcount] = $3;
powtot += $3;
if (index($6, "-f") == 0)
{
asynch[hostcount] = "";
} else
{
asynch[hostcount] = "-asynch";
}
crackf[hostcount] = $6 " " iargs; # useropts go second get priority
if ($4 == "")
{
rshuser[hostcount] = "";
} else
{
rshuser[hostcount] = "-l " $4;
crackf[hostcount] = crackf[hostcount] " -U" $4;
}
if ($5 == "")
{
crackp[hostcount] = "$CRACK_HOME_UNRES/Crack";
} else
{
crackp[hostcount] = $5;
}
crackf[hostcount] = iargs " " $6;
hostcount++;
}
END {
done = 1;
slice = 0.0;
remainder = 0.0;
todo = saltlinecount;
print "echo Users:", linecount;
print "echo Salts:", saltlinecount;
print "echo Remote Hosts:", hostcount;
print "echo Total power:", powtot;
for (i = 0; i < hostcount; i++)
{
if (i < hostcount - 1)
{
# This balancing algorithm by: george@au.edu.monash.cc.moa (George Scott)
# its wonderful - AEM
slice = relpow[i] / powtot; # fraction
slice *= todo; # percentage
slice = int(slice); # round down
todo -= slice; # remainder
powtot -= relpow[i];
} else
{
slice = todo; # fastest machine gets the rest.
todo = 0;
}
if (slice > 0)
{
print "echo Calling", hostname[i], "for", slice, "different salts";
line = sprintf( \
"Scripts/RCrack %s %d %d %s %s \"%s\" %s %s %s < %s", \
asynch[i], \
done, \
done + slice - 1, \
hostname[i], \
rshuser[i], \
crackp[i], \
"-XRuntime/RD'"$$"'." i, \
crackf[i], \
bintype[i], \
file);
# print "echo", line;
print line;
}
done += slice;
}
}' | sh # I'll bet you didn't expect this...
rm $tf
exit 0