shadowbrokers-exploits/windows/Resources/Dsz/Scripts/_GetTimeInfo.dss
2017-04-14 11:45:07 +02:00

93 lines
1.7 KiB
Text

@include "_Arrays.dsi";
@include "_Versions.dsi";
@echo off;
bool $rtn=true;
echo "--------------------------------------------------\n";
echo "Getting remote time";
@record on;
if (`time`)
{
string $bias;
if (!GetCmdData("TimeItem::Bias", $bias) || !defined($bias))
{
echo(" FAILED (bias not found)", WARNING);
$rtn = false;
}
else if (!SetEnv("_TIME_BIAS", $bias))
{
echo(" FAILED (unable to set environment)", WARNING);
$rtn = false;
}
else
{
echo(" RETRIEVED", GOOD);
}
}
else
{
echo(" FAILED", error);
$rtn = false;
}
@record off;
if (($rtn == false) && _IsUnix())
{
echo "Getting remote time using alternate method";
string $time;
@record on;
if (!`run -command "date -R" -redirect`)
{
echo(" FAILED (date command failed)", error);
$rtn = false;
}
else if (!GetCmdData("ProcessOutput::Output", $time) || !defined($time))
{
echo(" FAILED (failed to get date output)", error);
$rtn = false;
}
else
{
string $tParts;
if (RegExMatch("[0-9]{2}:[0-9]{2}:[0-9]{2} ([-+]{1})([0-9]{2})([0-9]{2})", $time, $tParts) && (sizeof($tParts) == 3))
{
if ((<int>$tParts[1] == 0) && (<int>$tParts[2] == 0))
{
# +0000
$tParts[0] = "";
}
else if ($tParts[0] == "+")
{
$tParts[0] = "-";
}
else
{
$tParts[0] = "";
}
string $bias = "$tParts[0]$tParts[1]:$tParts[2]";
if (!SetEnv("_TIME_BIAS", $bias))
{
echo(" FAILED (unable to set environment)", WARNING);
$rtn = false;
}
else
{
echo(" PASSED", GOOD);
}
}
else
{
echo(" FAILED (date doesn't match expected format)", error);
$rtn = false;
}
}
}
return $rtn;