Статья Обход антивируса с помощью Метасплоита

Первоисточник:
Перевод: Перевод выполнен от команды Codeby
Примечание от команды форума:
  • Статья является переводом.
  • Метерпретер - это очень мощный по функционалу и основной payload для Metasploit.
  • В статье рассматривается способ обхода антивируса при создании нагрузки в метасплоите.
1571225815575.png


Дисклеймер: Эта статья создана исключительно в ознакомительных целях. Автор не одобряет и не поощряет использование информации в противозаконных целях. Всю ответственность за твои действия несешь только ты.

Все инструменты, обсуждаемые в этом посте, являются общедоступными. В процессе я объясню обход IPS ((Intrusion Prevention System) системы предотвращения вторжений), которая обнаруживает поэтапное соединение Meterpreter, даже если оно установлено по протоколу HTTPS! Обратите внимание, что в этом посте не рассматривается создание любого исполняемого файла с нуля, а обсуждается использование уже доступных инструментов в сочетании друг с другом.

Недавно я участвовал в двух red team проектах по анализу защищенности. Сценарии были следующими:
  1. В одном, у меня были права администратора на публичном сервере. Получил я их через SQL-Injection и последующим RCE. В этом случае я стремился получить стабильную оболочку с высокими правами.
  2. Во втором, у меня был ноутбук клиента. Я был подключен к внутренней сети, и система была частью домена.
После некоторых исследований по обходу антивируса, я наткнулся на несколько классных техник и инструментов, которые я опишу подробно. Чтобы смоделировать аналогичные сценарии, с которыми я столкнулся, я настроил инфраструктуру с виртуальных машин на AWS (Amazone Web Server). Настройка была следующей:
  • Windows 7 Professional 64 bit (размещенный на виртуальной машине, установленной на локальном компьютере)
  • Symantec Endpoint Protection 14.0 – с обновленными сигнатурами (установленная на Win7)
  • Kali Linux на AWS
  • Ubuntu на AWS
Часть 1: Как антивирусы детектят SSL Reverse connect и как это обойти

Небольшой обзор по Reverse Metasploit’s HTTPS payload и её обнаружение антивирусом

Решил я создать исполняемый файл Meterpreter (reverse_https). Все работало чудесно, и пришло время протестировать систему с запущенным антивирусом. Для этого я запустил исполняемый файл на виртуальной машине с включенным Symantec Endpoint Protection. Исполняемый файл запустился, но сеанс не удалось установить, так как соединение было перехвачено модулем антивируса IPS, указав, что соединение Meterpreter было обнаружено и заблокировано. Вопрос заключается в том, каким образом зашифрованное соединение может быть обнаружено IPS? Итак, давайте рассмотрим, что случилось.

Чтобы обойти правила фаерволла, злоумышленники обычно используют порт, который, скорее всего, будет разрешен, например, 80, 53, 443 и т. д. Хотя использование этих портов может обойти правила фильтрации, настроенных с помощью средств как брандмауэры, фаерволлы и межсетевые экраны, но более интеллектуальные сервисы, такие как IPS, проксируют исходящий трафик, чтобы заблокировать соединение и предупредить администратора об атаке.

Хорошо, что в 2011 году Metasploit добавил поддержку reverse HTTPS-соединений, что позволило использовать зашифрованный канал через SSL. В моем случае, хоть я и использовал reverse-shell (windows/meterpreter/reverse_https), он все еще детектился модулем IPS антивируса (далее AV) Symantec.

После дальнейшего расследования я нашел сообщение . Интересный факт, который я осознал, заключается в том, что, во время связи SSL, некоторые данные, в частности сертификат SSL, передаются через незашифрованный текст. Таким образом, AV сканирует определенные атрибуты сертификата, чтобы проверить, выполняется ли какая-либо вредоносная деятельность. В результате, даже если используется reverse-shell, AV идентифицирует сертификат; он понимает, что он принадлежит Metasploit и блокирует обратное соединение, помечая его как полезную нагрузку Meterpreter.

Проверка HTTPS сертификата антивирусом

Чтобы проверить как блокирует антивирус трафик по HTTPS, я настроил Listener в Metasploit. Был выбран следующий payload «windows/reverse/meterpreter/https», а LPORT выбран 443 (это стандартный порт для https протокла). Обратите внимание, что payload не создавался, только listener был настроен, как показано ниже:

1571225836284.png


Когда listener готов, я запускаю Wireshark и начинаю сниффать траффик на мой URL. Следующий слайд показывает данные незашифрованного текста (cleartext) во время начала установления TCP соединения (хэндшейка) через SSL. Сервер отправил сертификат в ответ на запрос клиента ‘hello’ в незашифрованном тексте (cleartext), как показано на следующем изображении:

1571225856249.png


Затем я открыл мой URL на листенер в различных браузерах. Используя Wireshark, проанализировал сетевой dump при помощи NetworkMiner, который является инструментом форензики.

Были извлечены три различных сертификата. Детали двух сертификатов показаны на скриншотах, приведенных ниже.

1571225874422.png


1571225888277.png


Как показано выше, у сертификатов имеются различные случайные данные. Детали, такие как CN, срок действия являются рандомными и не одинаковым в обоих сертификатах.

Базовый анализ IPS подписи в действии

Теперь, когда мы получили сертификаты, давайте проверим их на предмет защиты Symantec Endpoint.
Я просто скопировал мой URL и открыл его в браузере. Сразу же он блокируется Symantec IPS, определяя соединение как reverse - shell Meterpreter HTTPS.

На приведенном ниже скриншоте показано предупреждение, сгенерированное Symantec:

1571225898713.png


Детали подписи подтверждают, что она обнаруживает и блокирует активность reverse-shell HTTPS Meterpreter.

1571225912880.png


Вывод по обнаружению AV

Первоначальное SSL соединение устанавливается в незашифрованном виде, где расшарены детали сертификата, а простое SSL соединение к HTTPS без нагрузки обнаруживается IPS. Это подтверждает, что модуль IPS антивируса (AV) сканирует сертификат, а затем проверяет на определенные атрибуты. Они могут включать в себя доменное имя и т. п.

SSL impersonation - Обход SSL обнаружения

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

Модуль (auxiliary/gather/impersonate_ssl) создает самоподписанный сертификат с данными удаленного сертификата, делая внешний вид сертификата подлинным. Подобная техника используется в Paranoid Meterpreter, который используется, чтобы обезопасить соединение путем проверки SHA1 hash сертификата с обеих сторон для того, чтобы никто не мог взломать хакера.

Давайте создадим сертификат:

1571225931744.png


Теперь нам надо настроить листенер для созданного сертификата с применением опции handlersslcert и stagerverifysslcert.

1571225946126.png


Как только handler запущен и доступен через браузер по HTTPS, Symantec не обнаруживает payload. Миссия выполнена!

1571225959530.png


Часть 2: Создание пейлоада

После того, как я обнаружил способ забайпассить мое соединение и обойти обнаружение посредством IPS, я перешел к созданию нагрузки.

Для этого, необходимо выполнить следующие три шага:
  • Используйте Metasploit для генерации Meterpreter HTTPS нагрузки, сконфигурированного с собственным SSL-сертификатом.
  • Используйте Don’t Kill My Cat (DKMC), который генерирует шеллкод в картинке.
  • Создайте команду PowerShell с использованием DKMC, который загружает картину, а затем выполняет шелкод.
  • Создайте файл НТА при помощи PowerShell.
Создание шелкода при помощи Metasploit

Сначала я создал нагрузку при помощи Metasploit. В этом случае следует убедиться, что handlercert и stagerverifycert установлены. Чтобы обойти фильтрацию по исходящему порту, я проверил доступ к нему, выполнив сканирование 443 порта (данный вопрос не обсуждался в этом посте).

1571225976666.png


Создание вредоносного ВМР с DKMC

Когда этот шелкод был создан, я юзал тулзу DKMC, чтобы встроить вредоносный шеллкод в картинку BMP. Опции DKMC показаны на скриншоте ниже:

1571225989390.png


Чтобы запутать шеллкод, созданный с помощью Metasploit, используйте сначала модуль sc. Это сгенерирует его в шестнадцатеричном формате.

1571226001972.png


Теперь скопируйте этот шелкод и создайте вредоносный файл BMP, использующий модуль gen.

1571226019045.png


В итоге была создана картинка в формате ВМР. Я разместил её на сервере Ubuntu в AWS. Теперь мне нужно загрузить изображение с сервера жертвы, а затем выполнить встроенный шеллкод. Далее я использовал модуль PowerShell (команда ps) из тулзы DKMC для создания команды PowerShell.

1571226033087.png


Следующий этап – это доставка картинки на компьютер жертвы. Доставка может быть выполнена следующими способами:
  • Если у вас есть доступ к системе жертвы и вам нужен более привилегированный Meterpreter shell, тогда вы можете просто запустить ps команду в Windows cmd, чтобы скачать вредоносный файл и выполнить шелкод.
  • Нагрузку можно сохранить в .ps1 (PowerShell script) и выполнить оттуда.
  • Ссылка может быть встроена в другой исполняемый файл, такой как HTA, а затем доставляется с помощью фишинга, USB (USB baiting) и т. д.
Т.к. у меня был доступ к системам в обоих случаях, я запускал команду в Windows cmd.
Однако, в реалии такое не бывает, поэтому давайте рассмотрим третий случай - создание HTA.

Встраивание кода PowerShell в зашифрованный HTA

Я использовал Demiguise, который создает HTML с зашифрованным файлом НТА. Когда пользователь посещает страницу, НТА динамически дешифруется в браузере. Цель состоит в том, чтобы обойти проверку антивируса на содержимое файла. Хотя в этом случае наш payload уже способен обойти антивирус. Поэтому, мы будем использовать это просто, как средство для доставки и запуска нашей команды PowerShell.

Следующая команда создает файл под названием horizon.html, зашифрованный horizon.hta.

1571226046751.png


Заключительное действие

Я разместил файл HTML на веб сервере в AWS, и файл доступен с компьютера с системой Windows 7, который управляет Symantec AV. Когда получен доступ к странице HTML, загружается файл HTA.

1571226060728.png


А так же, давайте настроим наш Listener в metasploit.

1571226075899.png


После того, как файл HTA запущен, прилетает сессия Meterpreter через HTTPS. Обратите внимание, что хэш подписи SHA1 проверяется перед тем, как устанавливается соединение.

1571226093139.png


На следующем скриншоте показано состояние подключения в консоли мониторинга сетевой активности Symantec; которая показывает мой шелл, созданный на Kali на AWS в процессе PowerShell. Потрясающе!

1571226106012.png


Заключение

Итак, в заключение, небольшой читшит:
Шаг 1: Impersonate SSL сертификата;
Шаг 2: создание шелкода, конфигурированного с SSL сертификатом;
Шаг 3: Создание изображения BMP со встроенным шеллкодом;
Шаг 4: Создание Listener’a, конфигурированного с SSL сертификатом, чтобы обойти обнаружение соединения посредством IPS.
Шаг 5: Создание команды PowerShell для загрузки и выполнения нагрузки.
Шаг 6: Создание файл НТА, внедренного в код PowerShell.

Во время написания статьи исполняемый файл был протестирован на Symantec, Kaspersky, AVG и Windows Defender. При этом исполняемый файл, а также соединение не обнаруживались.
 
Последнее редактирование модератором:

Ondrik8

prodigy
Green Team
08.11.2016
1 129
3 189
BIT
0
повеселил)) но уже не те, стандарты! Через другие форматы идет общение с С2С, это если серьезно этим заниматься), а так да, баловство...
я про то что сейчас в тренде идет общение по DNS)) и не только !

а выше перечисленный формат вообще ну никак ни каким фаерволом не вычислишь и т.д.

да что говорить "Мы всегда впереди на 10-ки шагов!" любой школьник сейчас может отыметь все 65 АВ компаний с штатом минимум 60к людей с проф. образованием!)))))))))))))))))))))))))))))))))))))
 
  • Нравится
Реакции: getdrive и Арес

jess_hide

Green Team
04.09.2018
14
2
BIT
0
повеселил)) но уже не те, стандарты! Через другие форматы идет общение с С2С, это если серьезно этим заниматься), а так да, баловство...
я про то что сейчас в тренде идет общение по DNS)) и не только !

а выше перечисленный формат вообще ну никак ни каким фаерволом не вычислишь и т.д.

да что говорить "Мы всегда впереди на 10-ки шагов!" любой школьник сейчас может отыметь все 65 АВ компаний с штатом минимум 60к людей с проф. образованием!)))))))))))))))))))))))))))))))))))))
Есть примеры статьи с управлением через c2c or dns?
 

mr.none

Green Team
08.09.2018
28
3
BIT
0
повеселил)) но уже не те, стандарты! Через другие форматы идет общение с С2С, это если серьезно этим заниматься), а так да, баловство...
я про то что сейчас в тренде идет общение по DNS)) и не только !

а выше перечисленный формат вообще ну никак ни каким фаерволом не вычислишь и т.д.

да что говорить "Мы всегда впереди на 10-ки шагов!" любой школьник сейчас может отыметь все 65 АВ компаний с штатом минимум 60к людей с проф. образованием!)))))))))))))))))))))))))))))))))))))
Расскажи про это подробнее
 

Ondrik8

prodigy
Green Team
08.11.2016
1 129
3 189
BIT
0
Расскажи про это подробнее
Есть примеры статьи с управлением через c2c or dns?
Вы уважаемые и правда думаете что я свои без сонные ночи и опыты , свое драгоценное время распишу здесь) за просто так?)))) вон довольствуйтесь выше изложенной статьей!)

никто не мешает и Вам также заниматься) только проверяте все в "бою" так как ехе-шка скаченная с вашей наемной впс, юзером хз под каким предлогом, она просто не запустится) какая она бы фудная не была!)) даже "легендарное PUTTy" не запустится) сработает защита системы! тестаните и убедитесь .. как это все обойти? знаем, умеем , не зря же у меня подпись - консультирую!

и запомните прививки и РПЦ есть ЗЛО!
 
  • Нравится
Реакции: Name_less и Арес

Арес

Green Team
12.10.2019
16
7
BIT
0
Вы уважаемые и правда думаете что я свои без сонные ночи и опыты , свое драгоценное время распишу здесь) за просто так?)))
Ondrik8, в твоём возрасте ночи должны быть бессонными не от "c2c or dns", а от любовных утех с какой-нибудь прекрасной барышней. И строгания маленьких болгарских нумерологов. Что-б когда-нибудь потом не было мучительно больно от бесцельно и бездарно прожитой жизни.
Может научишься "отдавать" миру .

Твои dns-ы и прочая цифровая лабуда со временем никуда от тебя не убегут . А вот барышни со временем имеют свойство терять привлекательность.
 
  • Нравится
Реакции: Shadow User и Ondrik8

Ondrik8

prodigy
Green Team
08.11.2016
1 129
3 189
BIT
0
Ondrik8, в твоём возрасте ночи должны быть бессонными не от "c2c or dns", а от любовных утех с какой-нибудь прекрасной барышней. И строгания маленьких болгарских нумерологов. Что-б когда-нибудь потом не было мучительно больно от бесцельно и бездарно прожитой жизни.
Может научишься "отдавать" миру .

Твои dns-ы и прочая цифровая лабуда со временем никуда от тебя не убегут . А вот барышни со временем имеют свойство терять привлекательность.
Ondrik8, в твоём возрасте ночи должны быть бессонными не от "c2c or dns", а от любовных утех с какой-нибудь прекрасной барышней. И строгания маленьких болгарских нумерологов. Что-б когда-нибудь потом не было мучительно больно от бесцельно и бездарно прожитой жизни.
Может научишься "отдавать" миру .

Твои dns-ы и прочая цифровая лабуда со временем никуда от тебя не убегут . А вот барышни со временем имеют свойство терять привлекательность.
молодец! достойный ответ!!! сразу видно яйца есть у мужика !! полностью с тобой согласен! жму руку но мой пытливый ум не дает покоя мне) да и Барышень я стороной не обхожу, поверь!
может ты в курсе ? нет, что люди программисты и которые связанные с IT они не от мира сего, мягко сказать они "слегка" йобнутые)) я даже леже на бабе иногда , приходят как АВ обойти. мысли сами лезут в голову) наверное еще то что у меня родственники с диагнозом шизофрения) дает о себе знать))) кстати ничего плохого в этом не вижу.. мой дядя с таким диагнозом знал произведение "Евгений Онегин" наизусть!, и окончил все учебные заведения экстерном, досрочно) ну и все мы знаем одного известного хакера! так вот я Вам скажу что у него вообще 7 коассов образования и фору он даст, поверьте, любому!! Кста привет тебе Бро!)
фак, когда уже 3к лайков насобираю?))
 
Последнее редактирование:

Арес

Green Team
12.10.2019
16
7
BIT
0
Кста привет тебе Бро!)
Спасибо, тебе тоже привет ))

Ondrik8, не обижайся, но вот тебе ещё одно замечание :)
Если ты считаешь себя таким умным, то что тебе мешает писать без ошибок. Ведь и твой дядя, и НЕизвестный мне хакер с семью классами образования, наверняка обладали врождённой грамотностью. Ну невозможно читать подобные сообщения на различных хак-форумах.
У меня складывается впечатление, что на этих форумах общаются люди, которые соревнуются в безграмотности, сквернословии и хамстве. При этом каждый считает себя умнее окружающих. Попробуй пройтись по учебникам русского языка из курса средней школы. От этого ты не будешь выглядеть хуже :)

Мой дядя по материнской линии, кстати, тоже обладал феноменальной памятью: до самой смерти помнил все стихи, выученные в средней школе. Сильно образованым при всех его достоинствах назвать я его не могу. Закончил свою жизнь в одиночестве, временами злоупотреблял алкоголем - вряд-ли он был счастлив.

Твою мечту о 3 000 лайков могу исполнить прямо сейчас :)
 

blacksert

Member
02.11.2019
7
0
BIT
0
повеселил)) но уже не те, стандарты! Через другие форматы идет общение с С2С, это если серьезно этим заниматься), а так да, баловство...
я про то что сейчас в тренде идет общение по DNS)) и не только !

а выше перечисленный формат вообще ну никак ни каким фаерволом не вычислишь и т.д.

да что говорить "Мы всегда впереди на 10-ки шагов!" любой школьник сейчас может отыметь все 65 АВ компаний с штатом минимум 60к людей с проф. образованием!)))))))))))))))))))))))))))))))))))))
Думаю что , не только я, считаем твое сообщение менее полезным чем статья. Из чего и напрашивается банальный вывод о цели, с которой ты писал свой комментарий. Ну да ладно, не будем о грустном.

Поправлю тебя в том, что только лишь топ 10 из 65 АВ компаний имеют от силы по паре толковых тим лидов в команде по малваре анализу и те, уныло сидят на зп и не имеют нормальной мотивации для работы на результат, не считая выполнения ежемесячного плана сигнатур. Чего не скажешь о толпах блекхетов, хоть и не таких образованных и опытных, но мотивированней куда уж более чем любой офисный планктон, работающих в АВ-компаниях вроде бесполезных манагеров, аналитиков, клерков и прочих кнопкодрочей с 9 по 18, 5 дней в неделю и с месячными отпусками один раз в году, которые работают по KPI, составляют эксель таблички и срутся за свою зарплату и недоделанные вовремя таски, спускаемые яйцеголовым начальством, не понимающим сути и объема работы, руководствуясь абстрактыми понятиями вроде revenue, market share и пр. базвердами из презетахи перед инвесторами с квартальными и годовыми отчетами.

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

mr.none

Green Team
08.09.2018
28
3
BIT
0
Вы уважаемые и правда думаете что я свои без сонные ночи и опыты , свое драгоценное время распишу здесь) за просто так?)))) вон довольствуйтесь выше изложенной статьей!)

никто не мешает и Вам также заниматься) только проверяте все в "бою" так как ехе-шка скаченная с вашей наемной впс, юзером хз под каким предлогом, она просто не запустится) какая она бы фудная не была!)) даже "легендарное PUTTy" не запустится) сработает защита системы! тестаните и убедитесь .. как это все обойти? знаем, умеем , не зря же у меня подпись - консультирую!

и запомните прививки и РПЦ есть ЗЛО!
Чсв просто зашкаливает. Хотя паренек, который мне криптовал одну штуковину, аналогично страдал, подобным недостатком. Кстати после крипты программ ни один АВ не увидел угроз)
 

Ondrik8

prodigy
Green Team
08.11.2016
1 129
3 189
BIT
0
человек не идеален)) и каждый в чем то хорош! де тут включить проверку на орфографию?))

можно все зашифровать!



каюсь...! ребятки... и по просьбам вернусь в ряды писателей) наверное...

ПС я даже не знал что "поклонники" меня так сильно ждут))) приятно.!!!!

придется пару тем в паблик выкинуть и пусть трясутся банки (популярные) и их держатели счетов ибо у дяди Ондрика дох...я то есть много тузов в рукаве аж вываливаются))!
 
Последнее редактирование:
  • Нравится
Реакции: batu5ai

yallniggas

Member
18.10.2019
5
0
BIT
0
... Делаю как в статье написано.
1 сначала копирую данные ssl сертификата с помощью модуля Impersonate SSL
2 поднимаю multi handler с ранее сгенерированным ssl. После открываю URL, браузер не доверяет и не пропускает сертификат. Думал решу проблему с помощью letsencrypt, но и тут та же история.
Насколько понимаю, Проблема в том, что валидный ssl сертификат крайне сложно добавить не на доменное имя, а в нашем случае, на непосредвсенно голый ip. Нужен ev ssl certificate, который выдаётся только юр.лицам под строгий контроль.
Ниже прилагаю фото, как делал изначально с модулями метасплойта, и после letsencryptом
На данный момент имею только мысли - прописать в скрипте перед выполнением самого payload, код, принудительно добавляющий цели мой самоподписанный сертификат в корень сертификатов системы. отпишите, осуществимо ли это? Какие у кого есть мысли?
Кто знает, помогите молодому!) другим тоже будет полезно.
 

Вложения

  • IMG_20191122_144528_504.jpg
    IMG_20191122_144528_504.jpg
    46,5 КБ · Просмотры: 420
  • IMG_20191122_144524_991.jpg
    IMG_20191122_144524_991.jpg
    88,7 КБ · Просмотры: 405
  • IMG_20191124_235632_482.jpg
    IMG_20191124_235632_482.jpg
    79,5 КБ · Просмотры: 346

wurdalak

Green Team
21.12.2019
18
2
BIT
0
... Делаю как в статье написано.
1 сначала копирую данные ssl сертификата с помощью модуля Impersonate SSL
2 поднимаю multi handler с ранее сгенерированным ssl. После открываю URL, браузер не доверяет и не пропускает сертификат. Думал решу проблему с помощью letsencrypt, но и тут та же история.
Насколько понимаю, Проблема в том, что валидный ssl сертификат крайне сложно добавить не на доменное имя, а в нашем случае, на непосредвсенно голый ip. Нужен ev ssl certificate, который выдаётся только юр.лицам под строгий контроль.
Ниже прилагаю фото, как делал изначально с модулями метасплойта, и после letsencryptом
На данный момент имею только мысли - прописать в скрипте перед выполнением самого payload, код, принудительно добавляющий цели мой самоподписанный сертификат в корень сертификатов системы. отпишите, осуществимо ли это? Какие у кого есть мысли?
Кто знает, помогите молодому!) другим тоже будет полезно.
Таже самая байда, всё делаю как описано вроде как сертификаты создаются но при просмотре нет доверия и запускается хендл без ssl
Bash:
msf5 exploit(multi/handler) > exploit -j
[*] Exploit running as background job 14.
[*] Exploit completed, but no session was created.
msf5 exploit(
multi/handler) [*]>  Started HTTPS reverse handler on https://192.168.1.5:8081
а должно, что то типа этого если я правильно понимаю
Bash:
msf exploit(handler) > exploit -j

[*] Meterpreter will verify SSL Certificate with SHA1 hash 5fefcc6cae228b92002a6d168c5a78d495d8c884
[*] Exploit running as background job.
где ошибка ума не приложу. может это уже не работает?
 

jinji

One Level
20.12.2017
4
1
BIT
0
Вчера баловался с Shellter'ом. Потихоньку получается. У меня последняя версия Shellter pro 3.5
 
Мы в соцсетях:

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