
Идентифицирует сервера, находит эксплойты, сканирует WebDAV. Возможно, также умеет заваривать кофе, а может и нет.
DAVScan — это быстрый и легковесный сканер WebDAV, предназначенный для обнаружения скрытых файлов и папок на серверах с поддержкой DAV. Сканер работает, используя преимущества излишне привилегированных/неправильно настроенных WebDAV-серверов или серверов, уязвимых к различным уязвимостям раскрытия информации или обхода аутентификации. Сканер пытается определить отпечаток (fingerprint) целевого сервера, а затем обходит сервер на основе результатов корневого PROPFIND-запроса.
Если вы действительно найдете время прочитать мой дерьмовый код, вы заметите, что я решил изменить некоторые основы davscan, чтобы использовать Beautiful Soup, который требует libxml. Я решил сделать это из-за того, что столкнулся с ДЕЙСТВИТЕЛЬНО плохой конфигурацией DAV, которая возвращала почти 500 МБ XML-данных и убивала библиотеку xmltree. BS... ну... справляется с таким количеством BS. Это займет немного больше времени на сбор и разбор всего, но теперь DAVScan должен справляться с любым количеством дерьма, которое вы в него загрузите (при условии, что у вас не закончится память).
Определение отпечатка (fingerprint) сервера по заголовку Server — если веб-сервер возвращает заголовок Server, davscan может искать публичные эксплойты на основе ответа.
Базовое сканирование DAV с помощью PROPFIND — быстрый поиск всего, что может быть видимо через DAV.
IIS/6.0 Unicode Auth Bypass — работает с использованием GET для файлов и PROPFIND для папок. Не полностью протестировано, так что перепроверьте результат.
Исключение результатов DoS-эксплойтов — можно исключить эксплойты отказа в обслуживании из результатов searchsploit.
Исключение модулей MSF из результатов эксплойтов — в репозиторий включен кастомный searchsploit для этого. Либо перезапишите существующий searchsploit, либо сделайте резервную копию и замените. Эта функция может попасть или не попасть в реальный скрипт searchsploit.
Поддержка прокси — можно указать HTTP(S)-прокси для использования. Это просто передаст прокси в сессию requests. Я добавил это из-за необходимости NTLM-аутентификации, которую requests пока не умеет.
Аутентификация — сейчас работает только базовая аутентификация. Если вам нужно что-то вроде токенизации или что-то необычное, дайте мне знать, и я поработаю над этим. Однако это не является приоритетом для добавления дальнейшей функциональности. Большинство разовых нужд аутентификации можно решить с помощью Burp и флага прокси.
Определение отпечатка (fingerprint) по X-заголовкам — это есть в коде, но работает неправильно. Возможно, сейчас это работает, но ещё не полностью протестировано.
Моя способность правильно документировать вещи — когда я заменил нативный XML на Beautiful Soup, это повлекло за собой некоторые требования, о которых я не знал, что должен вам рассказать. Вам нужно будет установить его, а также C-библиотеку libxml, потому что это ускоряет работу. А ещё она не обосрётся, если скормить ей полгигабайта WebDAV XML. Давай, спроси меня, как я это выяснил.
Вероятно, многое другое, что я не тестировал, и какие бы проблемы ни были на GitHub, если люди решат сказать мне, что тут тупого.
Создать базу данных sqlite вместо плоского файла — сейчас вывод идёт в файл с парой сообщений на экран, просто чтобы показать, что работает.
Стать пилотом истребителя! — я однажды посмотрел «Лучшего стрелка» и теперь очень заряжен пойти в ВВС и жить мечтой. «Я чувствую потребность в скорости!»
Знаете ли вы, что можете помочь исправить мой плохой код? Это может быть похоже на вашу основную работу, но без зарплаты и с чуть большей узнаваемостью, поскольку я почти ничего не получаю от вашей тяжёлой работы. С другой стороны, я не буду требовать, чтобы вы приходили на выходных нагонять. Чёрт, я даже не буду жаловаться, если вы пришлёте код, написанный в пьяном виде. Если вы ещё не заметили, именно тогда я делаю свои лучшие (или не очень) работы. Только не присылайте всякую ерунду вроде исправления опечатки. Они там по дизайну.
Usage: davscan.py [-h] [-D DEPTH] [-a AUTH] [-u USER] [-p PASSWORD]
[-o OUTFILE] [-P PROXY] [-d] [-m] url
positional arguments:
url url of the server to scan; https://foo.com:8443/
optional arguments:
-h, --help show this help message and exit
-D DEPTH, --depth DEPTH How many folders deep should davscan go (default is infinity); -d 1
-a AUTH, --auth AUTH Basic authentication required; -a basic
-u USER, --user USER user; -u derpina
-p PASSWORD, --password PASSWORD password; -P 'P@$$W0rd'
-o OUTFILE, --out OUTFILE output file. defaults to; -o /tmp/davout
-P PROXY, --proxy PROXY proxy server if needed.; -P http://user:[email protected]:8080/
-d, --no-dos exclude DoS modules
-m, --no-msf exclude MSF modules from results