|
|
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: T d
Length: 1910 (0x776)
Types: TextFile
Names: »do_join«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
└─⟦this⟧ »./crack/Scripts/do_join«
#!/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...
###
###
# Empty the output file, Error if cannot create
###
warn=$1
shift
cp /dev/null $warn || exit 1
###
# Have we got feedback ?
###
fbkfiles=`sh -c "echo Runtime/F*"`
if [ "$fbkfiles" = "Runtime/F*" ]
then
fbkfiles=""
fi
###
# As Walt Disney would say, we start with a simple bracket:-
###
(
if [ "$fbkfiles" != "" ]
then
cat $fbkfiles
fi
(
for file in $*
do
awk '/^[A-Za-z0-9]/ {print "'"$file"':" $0}' < $file
done
) |
sort -t: +2
) |
awk -F: '
BEGIN {
FS = ":";
numf = 8; # number of fields in a pwent, + 1
warn="'"$warn"'";
date = "'"`date`"'";
date = substr(date, 5, 15);
}
/^!fb!/ {
if ($3 == "N")
{
guessable[$2] = "N";
} else if ($3 == "Y")
{
guessable[$2] = "Y";
decrypt[$2] = $4;
} else
{
print "Strange feedback: ", $0 >> "/dev/tty";
}
next;
}
NF != numf {
printf("join: Rejected '%s': does not have %d fields\n", \
$0, numf) >> warn;
next;
}
$3 == "" {
printf("join: %s Warning! %s (%s in %s) has a NULL password!\n", \
date, $2, $7, $1) >> warn;
next;
}
index($3, "*") != 0 || \
index($3, "!") != 0 || \
index($3, " ") != 0 {
printf("join: %s User %s (in %s) has a locked password:- %s\n", \
date, $2, $1, $3) >> warn;
next;
}
{
if (guessable[$3] == "N")
{
next;
} else if (guessable[$3] == "Y")
{
if ($4 == 0)
{
msg = "ROOT PASSWORD ";
} else
{
msg = "";
}
printf("join: %s Guessed %s%s (%s in %s) [%s] %s\n", \
date, msg, $2, $8, $1, decrypt[$3], $3) >> warn;
} else
{
print $0;
}
}'
exit 0