OSINT | Разведка с AutoRecon
Оптимизируем разведку жертвы. Разберемся, почему AutoRecon чем Nmap.
Привет, дорогой друг. Сегодня я расскажу тебе о том, почему этап разведки занимает так много времени и как можно его оптимизировать с помощью AutoRecon. Разберемся, что это за инструмент, для чего он нужен и чем он лучше Nmap. Также просканируем несколько целей, чтобы понять, какие результаты можно увидеть по завершению работы этого "чуда". AutoRecon действительно является уникальным решением в своем роде и позволяет существенно улучшить процесс.
Введение
Хотелось бы написать два слова о том, как в целом устроены сайты, веб-приложения и как потенциально можно найти уязвимости. Давай представим, что существует некий сайт site.com и размещен он на физическом сервере, который выходит в мир с IP 195.208.131.1. Предположим, что наш сайт site.com доступен по 80(HTTP) и 443(HTTPS) порту, имеет базу данных на порту 5432(PostgreSQL) и еще несколько других сервисов на разных портах. И у нас есть задача, проверить безопасность сайта site.com и сервера 195.208.131.1.
Первое, что нужно сделать — просканировать хост с IP 195.208.131.1 и понять какие порты открыты и какие сервисы запущены. Это можно сделать с помощью Nmap.
$ nmap -sC -sV -p- 195.208.131.1
Пример логов:
nmap -sC -sV -p- 195.208.131.1 PORT STATE SERVICE VERSION 21/tcp open ftp Microsoft ftpd |_ftp-anon: Anonymous FTP login allowed (FTP code 230) 80/tcp open http fuelCMS 1.4.1 111/tcp open rpcbind 2-4 (RPC #100000) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 443/tcp open fuelCMS 1.4.1 445/tcp open microsoft-ds? 2049/tcp open mountd 1-3 (RPC #100005) 5432/tcp openc PostgreSQL
Таким образом, у нас есть список портов и установленных сервисов. Дальше нам нужно проверить, является ли эта версия уязвимой и возможно для этой версии есть готовые эксплоиты. Для этого мы можем воспользоваться установленной утилитой searchsploit (в одном из сканов мы нашли версию):
$ searchsploit fuelCMS 1.4.1
Видим, что для этой версии есть уязвимость RCE и есть эксплоит 47138.py. Поэтому, логическая цепочка происходит именно таким образом. Сначала мы сканируем хост, находим открытые порты и сервисы, проверяем их на уязвимость или на небезопасную конфигурацию. Это и будет нашей потенциальной точкой входа.
Без разведки — никуда
Из предыдущего блока становится понятно, почему нам всегда начинаем со сканирования. Нужно получить список портов TCP/UDP, собрать версии установленных компонентов, собрать информацию по SMB, пройти по WEB-части и т.д. Это достаточно большой кусок работы, который нужно выполнять каждый раз. Тем более что по каждому из пунктов приходиться использовать по 3-4 утилиты. По каждому инструменту есть логи, и это нужно как-то обрабатывать и хранить. Особенно сложно работать, если в работе сразу несколько хостов. Я думаю каждый, кто с этим сталкивался, понимает сколько времени на это уходит.
Для ускорения и упрощения процесса разведки был создан инструмент AutoRecon. Это универсальное решение, которое позволяет автоматически просканировать и проанализировать результаты и на выходе получить полную картину в понятном и удобном формате.
При запуске AutoRecon первым делом проверяет открытые порты на хосте с помощью Nmap. По умолчанию одновременно запускается 3 сканирования:
- полное сканирование топ 1000 TCP портов;
- полное сканирование всех TCP портов;
- сканирование топ 20 UDP портов.
AutoRecon выполняет одновременно два сканирования по TCP-портам с целью получить быстрее открытые порты и проанализировать результаты, не дожидаясь полного сканирования TCP портов. Таким образом, можно быстрее получить точку входу. После того, как были найдены открытые порты, AutoRecon запускает проверку сервисов на этих портах, используя вспомогательные скрипты и инструменты. Например, если будет найден Web сервер, то AutoRecon запустит Whatweb, Nikt, Gobuster, Nmap скрипты для Web серверов, попробует скачать robots.txt и т.д. По результатам работы инструментов будут собраны результаты и добавлены в логи.
Как установить AutoRecon?
Установку я буду выполнять на Kali Linux2020.2. Более детальный мануал с другими вариантами установки можно найти по ссылке. Для работы AutoRecon нужен Python3. Поэтому установка будет начинаться с инструментов для работы с Python3. Если на машине уже есть Python3 и Pip3, то этот шаг можно пропустить.
$ sudo apt install python3 $ sudo apt install python3-pip
Для своей работы AutoRecon использует большое количество компонентов. Ниже список того, что может быть задействовано при сканировании. AutoRecon может работать и без них, но качество результатов будет намного ниже. Можно попросту пропустить точку входа, а в логах останется только фейл при вызове какого-то инструмента.
curl enum4linux gobuster nbtscan nikto nmap onesixtyone oscanner smbclient smbmap smtp-user-enum snmpwalk sslscan svwar tnscmd10g whatweb wkhtmltoimage
Для установки этих всех компонентов нужно выполнить команду (будет работать на Kali Linux). С помощью второй команды можно убедиться, что все инструменты установлены.
$ sudo apt install seclists $ sudo apt install seclists curl enum4linux gobuster nbtscan nikto nmap onesixtyone oscanner smbclient smbmap smtp-user-enum snmp sslscan sipvicious tnscmd10g whatweb wkhtmltopdf
Для установки AutoRecon нужно выполнять команду:
$ python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
После этого AutoRecon будет успешно установлен и можно запустить с опцией -h:
$ autorecon -h
AutoRecon в боевых условиях
Проверим AutoRecon в действии. Для этого запустим скан для нескольких целей, и увидим результаты работы. Для базового скана выполняем команду с флагом -o для указания директории для хранения логов, для одновременного сканирования нескольких хостов нужно использовать флаг -t:
$ autorecon 10.10.10.180 -o ./ $ autorecon -t targets.txt -o ./
После начала работы создается папка с IP и туда добавляется вся информация по ходу проверки. Структура имеет достаточно понятный вид:
├── exploit/ ├── loot/ ├── report/ │ ├── local.txt │ ├── notes.txt │ ├── proof.txt │ └── screenshots/ └── scans/ ├── _commands.log ├── _manual_commands.txt └── xml/
По названию папок и файлов понятно их содержимое. Больше всего нас интересует папка scans. Внутри логи всех инструментов, которые позволяют проанализировать и увидеть полную картину. Качество и подход к работе впечатляют, проверено все и даже больше. Вбивать каждую команду руками заняло бы достаточное количество времени. Например, в папке scans был отчет с названием tcp111nfs_nmap.txt. AutoRecon показал, что есть раздел /site_backups с данными сайта. А это уже является потенциальной точкой входа. Но для этого мы запустили только одну команду и ничего больше.
Стоит также отметить, что в папке scans есть другие интересные файлы:
- _commands.log — список выполненных команд в результате работы AutoRecon.
- _manual_commands.txt —команды, которые могут потенциально нанести вред таргету (брутфорс и т.д.). Поэтому такие команды лучше запускать вручную с дополнительной настройкой.
- _errors.log — ошибки, которые возникли в ходе работы. Можно проанализировать, какие инструменты не работают, или почему так, или иначе не была проведена проверка.
Заключение
AutoRecon — полезный и функциональный инструмент, который оптимизирует время на сканирование и анализ сервисов. Его можно использовать, как для тренировочных площадок, CTF, так и для реальных задач. Инструмент позволяет сканировать сразу несколько целей одновременно (5 по дефолту). Также все логи сохраняются отдельно по папкам с понятной структурой. Таким образом, этот инструмент решает достаточно серьезный запрос и позволяет использовать дополнительное время на проведение атак и эксплуатацию уязвимостей.
Всем спасибо за внимание!
- Мечтаешь зарабатывать на хакинге?
- Нет проблем! Все это станет реальностью, благодаря нашей Академии Хакинга.