 в его обзоре OSCP (ссылка), а также на значительном влиянии и коде, взятом из mix-recon от Re4son (ссылка). Сканирование виртуальных хостов изначально адаптировано из работы teknogeek, на которую сильно повлиял скрипт обнаружения виртуальных хостов от jobertabma (ссылка). Дополнительный код сканирования виртуальных хостов адаптирован из проекта, созданного Тимом Кентом и мной, доступного здесь (ссылка).
Чтобы установить Reconnoitre, сначала сделайте локальную копию репозитория, выполнив следующую команду в том месте, где вы хотите его разместить:
git clone
После этого запустите setup.py следующей командой:
После завершения setup, Reconnoitre будет доступен в вашем PATH (как reconnoitre), и вы сможете запускать его из любого места с помощью:
Этот инструмент можно использовать и копировать для личного использования свободно, однако следует указывать авторство и благодарить Майка Цумака, который изначально начал процесс автоматизации этой работы.
-h, --help| Показать справочное сообщение и выйти
-t TARGET_HOSTS| Установить либо диапазон адресов, либо один хост для атаки. Также может быть файл, содержащий хосты.
-o OUTPUT_DIRECTORY| Установить целевой каталог, куда будут записываться результаты.
-w WORDLIST| Опционально укажите свой собственный список слов для использования в предварительно скомпилированных командах или выполняемых атаках.
\--pingsweep| Записать новый файл target.txt в OUTPUT_DIRECTORY, выполнив ping-сканирование и обнаружив живые хосты.
\--dns, --dnssweep| Найти DNS-серверы из списка целей.
\--snmp| Найти хосты, отвечающие на SNMP-запросы из списка целей.
\--services| Выполнить сканирование служб на целевых хостах и записать рекомендации для дальнейших команд.
\--hostnames| Попытаться обнаружить имена хостов и записать их в hostnames.txt.
\--virtualhosts| Попытаться обнаружить виртуальные хосты, используя указанный список слов. Может быть расширено с помощью обнаруженных имен хостов.
\--ignore-http-codes| Разделённый запятыми список HTTP-кодов, которые следует игнорировать при сканировании виртуальных хостов.
\--ignore-content-length| Игнорировать длину содержимого указанного размера. Это может быть полезно, когда сервер возвращает статическую страницу при каждой попытке угадать виртуальный хост.
\--quiet| Подавить баннер и заголовки, ограничить вывод только grep-совместимыми результатами.
\--quick| Перейти к следующей цели после выполнения быстрого сканирования и записи рекомендаций первого раунда.
\--no-udp| Отключить сканирование UDP-служб, которое по умолчанию включено.
_Обратите внимание, что это лишь некоторые примеры, дающие представление о возможных сценариях использования этого инструмента. Командные строки можно добавлять или удалять в зависимости от того, что вы хотите выполнить с помощью своего сканирования._
### Сканирование одного хоста, создание структуры файлов и обнаружение служб
reconnoitre -t 192.168.1.5 -o /root/Documents/labs/ --services
root@kali:~/# reconnoitre -t 192.168.1.5 --services -o /root/Documents/labs/
[+] Creating directory structure for 192.168.1.5
[>] Creating scans directory at: /root/Documents/labs/192.168.1.5/scans
[>] Creating exploit directory at: /root/Documents/labs/192.168.1.5/exploit
[>] Creating loot directory at: /root/Documents/labs/192.168.1.5/loot
[>] Creating proof file at: /root/Documents/labs/192.168.1.5/proof.txt
[+] Starting quick nmap scan for 192.168.1.5
[>] Found MS SMB service on 192.168.1.5:445
[>] Found RDP service on 192.168.1.5:3389
[*] TCP quick scan completed for 192.168.1.5
[+] Starting detailed TCP/UDP nmap scans for 192.168.1.5
[>] Found MS SMB service on 192.168.1.5:445
[>] Found RDP service on 192.168.1.5:3389
[*] TCP/UDP Nmap scans completed for 192.168.1.5
Что также запишет следующий файл с рекомендациями в папке scans для каждой цели:
[*] Found HTTP service on 192.168.1.50:80
[>] Use nikto & dirb / dirbuster for service enumeration, e.g
[=] nikto -h 192.168.1.50 -p 80 > /root/Documents/labs/192.168.1.50/scans/192.168.1.50_nikto.txt
[=] dirb -o /root/Documents/labs/192.168.1.50/scans/192.168.1.50_dirb.txt -r -S -x ./dirb-extensions/php.ext
[=] java -jar /usr/ /dirbuster/DirBuster-1.0-RC1.jar -H -l /usr/ /dirbuster/wordlists/directory-list-2.3-medium.txt -r /root/Documents/labs/192.168.1.50/scans/192.168.1.50_dirbuster.txt -u
[=] gobuster -w /usr/ /seclists/Discovery/Web_Content/common.txt -u -s '200,204,301,302,307,403,500' -e > /root/Documents/labs/192.168.1.50/scans/192.168.1.50_gobuster_common.txt -t 50
[=] gobuster -w /usr/ /seclists/Discovery/Web_Content/cgis.txt -u -s '200,204,301,307,403,500' -e > /root/Documents/labs/192.168.1.50/scans/192.168.1.50_gobuster_cgis.txt -t 50
[>] Use curl to retreive web headers and find host information, e.g
[=] curl -i 192.168.1.50/robots.txt -s | html2text
[*] Found MS SMB service on 192.168.1.5:445
[>] Use nmap scripts or enum4linux for further enumeration, e.g
[=] nmap -sV -Pn -vv -p445 --script="smb-* -oN '/root/Documents/labs/192.168.1.5/nmap/192.168.1.5_smb.nmap' -oX '/root/Documents/labs/192.168.1.5/scans/192.168.1.5_smb_nmap_scan_import.xml' 192.168.1.5
[*] Found RDP service on 192.168.1.5:3389
[=] ncrack -vv --user administrator -P /root/rockyou.txt rdp://192.168.1.5
### Обнаружение живых хостов и имен хостов в диапазоне
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --hostnames
### Обнаружение живых хостов в диапазоне и затем быстрый опрос служб
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --services --quick
Это просканирует все службы в целевом диапазоне, чтобы создать структуру файлов для живых хостов, а также записать рекомендации для других команд, которые следует выполнить на основе обнаруженных на этих машинах служб. Удаление --quick приведет к более глубокому опросу, но значительно увеличит время выполнения.
### Обнаружение живых хостов в диапазоне и затем опрос всех портов (UDP и TCP) для служб
reconnoitre -t 192.168.1.1-252 -o /root/Documents/testing/ --pingsweep --services
Минимальные требования для сканирования хостов и служб в этом инструменте — наличие установленных `nbtscan` и `nmap`. Если вы не используете сканирование хостов и хотите выполнить только ping-сканирование и сканирование служб, можно обойтись только установкой `nmap`. Выходной файл _findings.txt_ часто будет рекомендовать дополнительные инструменты, которые могут быть недоступны в вашем дистрибутиве, если вы не используете Kali Linux. Все требования и рекомендации являются родными для Kali Linux, который является рекомендуемым (хотя и не обязательным) дистрибутивом для использования этого инструмента.
В дополнение к этим требованиям в выводах часто упоминаются списки слов, которые вам может потребоваться найти. Если вы проходите OSCP, их можно найти в теме «List of Recommended Tools» от g0tmilk. Если нет, то большинство из них можно найти в Интернете или уже в установке Kali Linux.
Первый шаг — установить docker, если он еще не установлен. Установка Docker
docker run reconnoitre -o outputdir -t 127.0.0.1
Если вы хотите, чтобы файлы сохранялись локально, вы можете смонтировать каталог в контейнер Docker
docker run -v /путь/к/каталогу:/outputdir --services -o outputdir -t 127.0.0.1
The full story
This article is one source in a clustered incident — the cluster page carries the summary, timeline and every other outlet covering it.
