|
|
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 p
Length: 2685 (0xa7d)
Types: TextFile
Names: »pass_diff.chk«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
└─⟦ed5edc051⟧ »./cops/1.02/cops.102.tar«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
└─⟦db60b44f1⟧ »./cops/1.02/cops.102.tar.Z«
└─⟦ed5edc051⟧
└─⟦this⟧ »cops/pass_diff.chk«
:
#
# pass_diff.chk
#
# This shell script is a wrapper for the pass.chk password guessing
# program. What this does is save the password file from the last time
# passwords were guessed, and then do a "diff" on this file and the
# current password file. This will prevent accounts being checked over
# and over again for the same passwords, assuming the password has not
# been changed. If you have a fairly stable passwd environment, this
# can save you quite a bit of CPU time...
#
# Mechanism: As explained above, it just diff's the password file
# with the password file used last time you checked passwords, and then
# calls pass.chk with any flags pass_diff.chk was called with on the
# difference of the two files.
#
# If the variable $YP is set to "YES", then it will use the the
# yppassword file; it is not used automatically, because the idea is
# that this can be, used on any password file, by changing the $etc_passwd
# var. See the next paragraph:
#
# Warning! This only checks for changes in the password file itself --
# if you change the flags to pass.chk, or if you increase the size of
# your dictionary, or whatever, this will not detect the change...
# Also, if you want to use this wrapper with to check alternate pasword
# files, don't use the "-P" flag (which normally specifies an alternate
# password file); instead, change the $etc_passwd variable to whatever
# passwd file you want to check. Otherwise, this wrapper will force
# /etc/passwd.
#
# Yellow Pages/NIS?
YP=YES
# Locations of commands
DIFF=/bin/diff
CMP=/bin/cmp
AWK=/bin/awk
TEST=/bin/test
CP=/bin/cp
MV=/bin/mv
RM=/bin/rm
YPCAT=/usr/bin/ypcat
TOUCH=/bin/touch
#
# Important files:
etc_passwd=/etc/passwd
old_passwd=./old_passwd
yp_pass=./yp.$$
passwd_diff=passwd.diff
# password guessing program:
pass_chk=./pass.chk
# make a dummy password file if it doesn't exist
if $TEST ! -f $old_passwd ; then
$TOUCH $old_passwd
fi
# if you use YP:
if $TEST "$YP" = "YES" ; then
$YPCAT passwd > $yp_pass
etc_passwd=$yp_pass
fi
# has anything changed? If so, check passwords, if not, leave quietly.
if $TEST -n "`$CMP $etc_passwd $old_passwd`" ; then
# If old_passwd file exists, use it, else just use the
# existing passwd file.
$DIFF $etc_passwd $old_passwd | $AWK -F: '/^[<]/{
split($1, user, " "); printf("%s",user[2]); \
for (i=2;i<=NF;i++){
printf(":%s", $i)}; print ""}' > $passwd_diff
$CP $etc_passwd $old_passwd
# Finally, crack them passwords and get rid of the diff file,
# but only if the file is !0 length.
if $TEST -s $passwd_diff ; then
$pass_chk $* -P $passwd_diff
fi
$RM -f $passwd_diff
fi
# kill off the evidence
$RM -f $yp_pass
# end