RDot

RDot (https://rdot.org/forum/index.php)
-   Релизы/Releases (https://rdot.org/forum/forumdisplay.php?f=11)
-   -   Hehdirb (https://rdot.org/forum/showthread.php?t=4346)

Beched 14.06.2017 21:31

Hehdirb
 
Выложил недавно поделие для пайплайн-дирбастинга.
Ссылка: https://github.com/beched/hehdirb/

В силу криворукости правильно обрабатываю не все эксепшны и не очень правильно работаю с gevent, но в таком виде на многих хостах тоже выжимает сильно больше, чем обычный dirbuster.

Тулза может сама бинарным поиском определить максимальное количество пакетов в рамках одной TCP-сессии, далее асинхронно фигачит пачками пакетов.
Проблемы начинаются, например, когда сервер отдаёт 500, и коннект обрывается, бывают ещё таймауты и прочее дерьмо.
Проблема похуже (сейчас не обработана в коде) -- это 405 или 200 с телом в ответ на HEAD.

Вообще, основное применение такой тулзы в теории -- это массовый скан (возможность заложена) с сохранением результатов куда-нибудь (сейчас в MySQL). Дальше можно фильтровать и обрабатывать эти результаты.

sT1myL 15.06.2017 00:16

"Это альтернатива https://github.com/maurosoria/dirsearch

crlf 15.06.2017 01:30

Цитата:

Сообщение от Beched (Сообщение 43106)
но в таком виде на многих хостах тоже выжимает сильно больше, чем обычный dirbuster.

Больше, в смысле быстрее? Можно пример на пальцах?

Beched 15.06.2017 01:56

Цитата:

Сообщение от sT1myL (Сообщение 43107)
"Это альтернатива https://github.com/maurosoria/dirsearch

Судя по https://github.com/maurosoria/dirsearch/blob/master/lib/connection/Requester.py#L130 -- не совсем. Эта тулза не делает пайплайнинг. Но скорость не тестил. Может, за счёт более правильного кода в остальном, она в итоге и шустра =)

Цитата:

Сообщение от crlf (Сообщение 43108)
Больше, в смысле быстрее? Можно пример на пальцах?

Ага, пример вот:

Код:

$ python hehdirb.py -d tzar2.txt -k 100 -u https://ya.ru/
WARNING:root:Calculated Keep-Alive for https://ya.ru/: 100
WARNING:root:Path https://ya.ru:443/, response code 200, content-length 10422, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/tabs, response code 200, content-length 10426, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/?-s=, response code 200, content-length 10427, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/?x=&x[]=, response code 200, content-length 10422, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/set, response code 301, content-length 178, content-type text/html
WARNING:root:Path https://ya.ru:443/portal, response code 301, content-length 178, content-type text/html
WARNING:root:Path https://ya.ru:443/portal/, response code 403, content-length 12407, content-type text/html; charset=utf-8
WARNING:root:Path https://ya.ru:443/data, response code 301, content-length 178, content-type text/html
WARNING:root:Path https://ya.ru:443/robots.txt, response code 200, content-length 2561, content-type text/plain; charset=utf-8
WARNING:root:Path https://ya.ru:443/favicon.ico, response code 200, content-length 1150, content-type image/x-icon
WARNING:root:Path https://ya.ru:443/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000, response code 200, content-length 10422, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/white, response code 200, content-length 478, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/?__debugger__=yes&cmd=resource&f=style.css, response code 200, content-length 10427, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/data/debug/, response code 200, content-length 10427, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/, response code 200, content-length 10426, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/%2e%2e//google.com, response code 400, content-length 166, content-type text/html; charset=utf-8
WARNING:root:Path https://ya.ru:443/data/files/, response code 200, content-length 10427, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/data/logs/, response code 200, content-length 10427, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/%2e%2e//ya.ru, response code 400, content-length 166, content-type text/html; charset=utf-8
WARNING:root:Path https://ya.ru:443/data/backups/, response code 200, content-length 10422, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/data/tmp/, response code 200, content-length 10427, content-type text/html; charset=UTF-8
WARNING:root:Path https://ya.ru:443/black, response code 200, content-length 478, content-type text/html; charset=UTF-8
TOTAL TIME 2.86 sec
TOTAL SPEED 3275.20 rps

В локалке выжимает и по 30-40к рпс, но уверен. что это не предел. Из-за вышеупомянутых и иных косяков и всяких фильтраций и антисканов, при массовых сканах часто тупит. Нужно детектить такие ситуации и обходить их.


Ключевое отличие от других тулз в том, что по максимуму используется окно Keep-Alive без задержек при обрыве и задержек на итеративное чтение.
То есть мы сначала определяем, сколько максимально можно запихнуть HTTP-запросов в одну сессию, потом запихиваем сразу все (обычно 100 или 101), а потом читаем сразу все ответы и начинаем новый коннект (а не читаем поочерёдно и реконнектимся по таймауту, когда закончилась сессия).

crlf 15.06.2017 03:42

Понял, спасибо за ответ.

Цитата:

Нужно детектить такие ситуации и обходить их.
Тот ещё гемор, всего не задетектишь :(

nicco 26.11.2017 23:11

Сканит шустро.
Не хватает скана с добавлением расширений по словарю.


Часовой пояс GMT +3, время: 17:01.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot