inter-recon
Скрипт для выполнения автоматического начального веб- и разведывательного анализа уязвимостей.
Он имеет некоторые проверки на случай ошибок.
Есть возможность пропустить некоторые проверки, перезапустить их и/или продолжить с последней остановленной точки. (Это связано с тем, что иногда возникают сетевые проблемы, такие как ограничение времени на VPN).
Помните: если вы скопируете или создадите ссылку на скрипт inter-recon в пути bin (например, /usr/bin/), вы сможете выполнять скрипт из любого места. Он создаст вывод в текущей директории.
ВАЖНО: ПРОБЛЕМУ С WFUZZ И ОБХОДНОЕ РЕШЕНИЕ СМОТРИТЕ В КОНЦЕ README (Раздел дополнительной информации)
Чтобы использовать несколько известных доменов/IP-адресов, например:
- Создайте файл domains.txt со всеми доменами или разными IP-адресами
- Выполните: inter-recon -T $(pwd)/domains.txt -d $(pwd)/known-domains -w /home/kali/Desktop/tools/inter-recon/dictionaries/without-slash/dict-small-without-slash.txt -s all -a true
Чтобы использовать в сети/IP, например:
- Выполните: inter-recon -t 10.11.1.1/24 -w /home/kali/Desktop/tools/inter-recon/dictionaries/without-slash/dict-small-without-slash.txt -s all -a true
Как использовать:
inter-recon.sh [OPTIONS]
-t {NET OR IP}
-T {Target PATH}
-d {Dictionary Path}
-w {DICT PATH}
-s {scan type}
-a optional is for superautomaticscan skipping all and not asking anything on wfuzz process at fisrt time execution
Типы сканирования
- all
- portscan
- nmap TCP -> полная проверка портов с проверкой активности хоста, если открыт один из следующих портов (1025,1028,1029,10443,111,135,139,1521,161,1917,21,22,23,25,2869,3306,3389,443,445,49000,497,5000,515,53,548,5985,5986,6000,79,80,8080,8081,8090,9001,9002,9100,993,995)
- nmap UDP -> топ-100 портов с процессом проверки активности хоста по умолчанию
- vulnscan
- парсинг результатов сканирования nmap UDP и TCP в файлы
- парсинг результатов сканирования nmap UDP и TCP в папку services по сервисам
- nmap UDP и TCP на открытые порты с выполнением скриптов, связанных с портами/версиями
- smbmap guest execution -> Чтобы проверить, можем ли мы без пользователя что-то писать/читать
- enum4linux guest execution -> Чтобы проверить информацию, полученную от samba
- smbversion execution -> Чтобы получить версию samba (Иногда на серверах Linux это единственный способ увидеть версию samba)
- webscan
- обнаружение HTTP с помощью httpx по результатам nmap
- фаззинг обнаруженных URL с помощью wfuzz
- скриншоты URL со статусом 200 из фаззинга с помощью aquatone
- техники обхода 403 с помощью byp4xx
- following steps -> краткое объяснение действий после выполнения скрипта
- Documentation folder and template structure -> Создание папки для добавления доказательств и добавление файлов .md с информацией, связанной со сканированиями
- vuln
- portscan (Как указано выше)
- vulnscan (Как указано выше)
- following steps (Как указано выше)
- Documentation folder and template structure
- web
- portscan (Как указано выше)
- webscan (Как указано выше)
- following steps (Как указано выше)
- Documentation folder and template structure
Структура:
- Первоначальное сканирование портов TCP и UDP с версиями (nmap, требует sudo)
- Сканирование разведки уязвимостей (команда для парсинга портов в файл с форматом IP,Port,Service,Version, парсинг в файлы сервисов, выполнение nmap с полными скриптами, связанными с портами/версиями)
- Сканирование веб-фаззинга, если httpx находит HTTP-порт (httpx, wfuzz, aquatone, byp4xx 403 files <- если существуют статус 403)
Используемые приложения:
- nmap (обычная версия и с скриптом nmap-vulners, оба требуют sudo, использует TCP (все порты, если хост активен, с помощью -PS с некоторыми портами) и UDP (только топ-100 портов))
- httpx (Чтобы получить HTTP-порты из результатов nmap)
- aquatone (Чтобы сделать скриншот ответа со статусом 200, найденного при HTTP-обнаружении)
- wfuzz (Для фаззинга HTTP-портов)
- byp4xx (Для попытки обхода URL с 403 разными методами)
- smbmap (Для получения гостевых привилегий, связанных с сетевыми общими папками)
- enum4linux (Для получения SMB-информации с гостевыми привилегиями)
- smbversion (Для получения реальной версии SMB)
- dnsrecon (Для попытки выполнения зональной передачи на DNS-серверы)
- crackmapexec (Для получения имен, связанных с сервером)
- host (Получить имя хоста DNS-сервера)
- dig (Получить имя хоста DNS-сервера, используя сервер в качестве ns "@")
Структура выходной папки: (пример)
- 192.168.122.1-24/ -> исходная папка
- nmap/ -> папка с TCP и UDP nmap в формате xml и grepable с версией
- nmap-tcp-target.xml -> выходные данные nmap для импорта в некоторые инструменты
- nmap-udp-target.xml -> выходные данные nmap для импорта в некоторые инструменты
- nmap-tcp-target.xml -> grepable nmap для парсинга и повышения читаемости информации
- nmap-udp-target.xml -> grepable nmap для парсинга и повышения читаемости информации
- aux/ -> папка для контроля предыдущего выполнения и пропущенных URL wfuzz
- nmap/ -> здесь находятся все nmap для httpx; мы удалим обработанные файлы nmap в процессе httpx, чтобы в случае ошибки продолжить с этого файла nmap.
- full-initial-files.txt -> здесь мы удалим URL, которые были обработаны корректно
- wfuzz-skipped-urls.txt -> здесь мы добавим URL, которые пропустили из-за ошибки ((Total request + 1) - Processed request != 0)
- debug/ -> папка для отладки выполнения
- nmap-tcp-output.txt -> вывод выполнения nmap (только версия)
- nmap-tcp-cve-output.txt -> вывод выполнения nmap с опцией -A для выполнения всех связанных скриптов
- nmap-udp-output.txt -> вывод выполнения nmap (только версия)
- nmap-udp-output.txt -> вывод выполнения nmap с опцией -A для выполнения всех связанных скриптов
- wfuzz-output.txt -> вывод выполнения wfuzz
- screenshot-output.txt -> вывод выполнения aquatone
- fuzzing/ -> папка с выполнениями wfuzz (Важно проверить статусы 50* и 40*)
- *.txt -> выходные файлы wfuzz
- services/ -> папка со всеми сервисами, полученными из nmap
- {SERVICE-NAME}-services.txt -> результаты выполнения сервисов с выводом IP,PORT,Extra-service-info
- cve/ -> папка с уязвимостями по хостам, найденными скриптом nmap-vulners
- {IPs}.txt -> вывод скрипта nmap-vulners
- http-discover/ -> папка для сохранения и контроля выполнения httpx
- httpx_aux.txt -> файл со всеми доменами+портами для выполнения httpx
- screenshots/ -> папка со скриншотами URL со статусом 200, найденных wfuzz
- screens -> папка со всеми скриншотами
- report.html -> отчет со структурированной информацией
- {OTHER} -> другие файлы для report.html
- full-initial-files.txt -> файлы с начальным HTTP-обнаружением, найденные httpx, для фаззинга с wfuzz
- urls-status-{200,401,403,etc}.txt -> итоговые статусы URL, найденные wfuzz; изменяется в зависимости от переменной $status, которая является статусом найденных URL
- targets.txt -> файл с IP или сетью, которые вы указали в параметре -t
Планы:
- Добавить файлы статусов URL из wfuzz непосредственно в документацию (200, 401, 403, 503, чтобы ничего не забыть проверить)
- Включить в сканирование уязвимостей "сканирование OPENVAS"
- Включить в веб-сканирование URL и домены, полученные из HTTP-URL, найденных wfuzz
- Добавить новый тип сканирования — OSINT, который может выполнять получение информации из веба или из различных выполнений скриптов.
URL-адреса для установки инструментов:
Дополнительная информация
- UDP nmap сканирует только топ-100 портов. Если есть время, выполните дополнительное nmap со всеми UDP-портами в фоне.
- TCP nmap проверяет некоторые порты, чтобы определить, активен ли хост, и сканирует его, если он активен. Если есть время, выполните дополнительное nmap со всеми TCP-портами с опцией -Pn в фоне.
- Я несколько раз замечал, что wfuzz блокирует скрипт. Я видел, что у wfuzz есть проблема с взаимоблокировкой (deadlock) при ошибке в URL. Обходное решение, пока они не исправят проблему, — закомментировать
th.join() и добавить pass в файле /usr/local/lib/python3.9/dist-packages/wfuzz/myhttp.py в функции Cleanup