ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

wscan.py - head-scanner
  #1  
Старый 14.11.2009, 21:44
Аватар для cr0w
cr0w
Познающий
Регистрация: 11.09.2008
Сообщений: 99
Провел на форуме:
2753780

Репутация: 585
По умолчанию wscan.py - head-scanner

wscan.py v.0.2 - http head-scanner

Вобщем, это тулза из разряда "head-scanners", предназначенная для поиска ресурсов сайта, таких как файлы, каталоги и субдомены, методом брутфорса по словарю.

Писал его изначально для себя, т.к. существующие head-сканеры на мой взгляд либо излишне тяжелы, либо недостаточно функциональны. Мне хотелось сделать такую тулзу как можно более простой и, при этом, достаточно универсальной.

Описание ver.0.1:

- написан на python 2.x;
- консольный;
- небольшого размера;
- многопоточный;
- поддреживает SSL;
- умеет искать субдомены;
- можно указать дополнительные отправляемые HTTP-заголовки (Cookies, Basic-auth, etc), поместив их в файл;
- возможно отсеять ответы сервера на неверные запросы по шаблону, в случае если их response status code != 404;
- можно использовать метод GET;
- есть вспомогательный режим тестирования.

Добавлено в ver.0.2:

- режим медленного сканирования с возможностью установки интервала между посылкой запросов;
- возможность указать несколько шаблонов для отсева неверных ответов;
- возможность указать response status codes, на которые не следует реагировать, дополнительно к 404;
- возможность передачи нескольких файлов с базами в парамтре -f;
- остановка работы скрипта при нажатии Ctrl-C.


Как его использовать:

Для начала посмотрим "usage":
Код:
C:\Users\cr0w>wscan
wscan v.0.2 usage:

wscan.py http[s]://site.com[:port] [-s] [-t] [-g] [-p "pattern1|pattern2|...|patternN"] [-
f list.txt|...|listN.txt] [-l log.txt] [-h headers.txt] [-n 50] [-i 5] [-b "403|XXX"]

Опции:
-t Режим тестирования
-s Режим поиска субдоменов
-g Использовать GET-запросы
-f Файлы с директориями/файлами или субдоменами
   По умолчанию list.txt или subdomains.txt
-l Лог-файл (scanlog.txt по умолчанию)
-n Число потоков (50 по умолчанию)
-h Файл с посылаемыми заголовками
-p Шаблоны для фильтрации неверных ответов сервера
-i Режим медленного сканирования
   Необходимо указать интервал между отправкой запросов серверу
-b Ответы сервера которые следует игнорировать наряду с 404

[!] Error: wrong URL
Параметров немало, но обычно требуется указать только несколько. (;

Итак, для начала берем базу с директориями/файлами или с субдоменами.

Если на сайте необходима авторизация по cookie или basic-auth, или нужны еще какие-то http-заголовки, просто пишем их в файл headers.txt (или в любой другой, а затем укзываем его в параметре -h при запуске).

Прежде чем начать сканирование, запускаем скрипт в режиме тестирования (опция -t).

В режиме тестирования делается 2-3 запроса: верный (обращение к субдомену "www" или к дире "/", в зависимости от режима) и неверный (обращение к заведомо несуществующему каталогу, файлу или субдомену), после чего выводятся ответы вебсервера в виде HTTP заголовков (и html-кода при использовании GET), которые были расценены данным скриптом как удачные.

Если вывелся только ответ на верный запрос, то все ОК, можно запускать сканирование. Пример:

Код:
C:\Users\cr0w>wscan http://mail.ru -t

[~] Test request: mail.ru/
200 OK

content-length: 96858
set-cookie: Mpopl=1923335557; expires=Sun, 15 Nov 2009 10:55:38 GMT; path=/; domain=.mail.
ru, mrcu=BFB54AFFDAA62F918FB40E844B4D; expires=Wed, 13 Nov 2019 10:40:38 GMT; path=/; doma
in=.mail.ru
expires: Sat, 15 Nov 2008 10:40:38 GMT
server: Apache/1.3.27 (Unix) mru_xml/0.471 gorgona/2.1 mod_jk/1.2.4 mod_ruby/1.0.7 Ruby/1.
6.8 mod_mrim/0.17
last-modified: Sun, 15 Nov 2009 13:40:38 GMT
connection: close
pragma: no-cache
cache-control: no-cache,no-store,must-revalidate
date: Sun, 15 Nov 2009 10:40:38 GMT
content-type: text/html; charset=windows-1251


[+] /           [200] OK

[~] End of test

C:\Users\cr0w>wscan http://mail.ru
[+] /all/               [200] OK
[+] /mail/              [302] OK
[+] /error/             [200] OK
[+] /cgi-bin/           [302] OK
Если выводится еще и ответ на неверный запрос, то следует использовать шаблон (опция -p), содержащий текст который присутствует только в ответах веб-сервера при обращении к несуществующим ресурсам. Пример:
Код:
C:\Users\cr0w>wscan http://pochta.ru -s -t
[~] sdfghdt9834592.pochta.ru
[~] Test request: www.pochta.ru
200 OK

x-powered-by: pochta.ru/2.2.18958
set-cookie: lang=ru; expires=Sat, 15-May-2010 21:48:29 GMT; path=/, skin=pochta_ru; expire
s=Sat, 15-May-2010 21:48:29 GMT; path=/
expires: Thu, 01 Jan 1970 00:00:01 GMT
server: nginx/0.7.62
last-modified: Mon, 16 Nov 2009 21:48:29 GMT
connection: close
date: Mon, 16 Nov 2009 21:48:29 GMT
content-type: text/html; charset=windows-1251


[+] www.pochta.ru               [200] OK

[~] Test request: sdfghdt9834592.pochta.ru
302 Moved Temporarily

date: Mon, 16 Nov 2009 21:45:58 GMT
connection: keep-alive
content-type: text/html
location: http://static.pochta.ru/404.html
server: nginx/0.7.62


[+] sdfghdt9834592.pochta.ru            [302] Moved Temporarily

[~] End of test

C:\Users\cr0w>wscan http://pochta.ru -s -t -p "404.html"
[~] sdfghdt9834592.pochta.ru
[~] Test request: www.pochta.ru
200 OK

x-powered-by: pochta.ru/2.2.18958
set-cookie: lang=ru; expires=Sat, 15-May-2010 21:50:19 GMT; path=/, skin=pochta_ru; expire
s=Sat, 15-May-2010 21:50:19 GMT; path=/
expires: Thu, 01 Jan 1970 00:00:01 GMT
server: nginx/0.7.62
last-modified: Mon, 16 Nov 2009 21:50:19 GMT
connection: close
date: Mon, 16 Nov 2009 21:50:19 GMT
content-type: text/html; charset=windows-1251


[+] www.pochta.ru               [200] OK

[~] End of test

C:\Users\cr0w>wscan http://pochta.ru -s -p "404.html"
[+] 01.pochta.ru                [200] OK
[+] 13.pochta.ru                [200] OK
[+] 5.pochta.ru         [200] OK
[+] 7.pochta.ru         [200] OK
[+] a.pochta.ru         [200] OK
[+] a3.pochta.ru                [200] OK
[+] a7.pochta.ru                [200] OK
[+] aa.pochta.ru                [200] OK
[+] abc.pochta.ru               [200] OK
[+] adam.pochta.ru              [200] OK
[+] admins.pochta.ru            [302] Moved Temporarily
[+] adv.pochta.ru               [200] OK
[!] wscan was stoped by user
Если по заголовкам невозможно выделить такой шаблон, то используем сканирование методом GET (опция -g).

Опять запускаем в режиме тестирования с опцией -g скрипт и выделяем шаблон по которму скрипт будет определять неверные ответы из html-тела документа.

С остальными опциями разберетесь без проблем. (:

---

Скачать базы (список будет обновляться и дополняться):

База директорий 1
База субдоменов [ thnx 2 (Dm) ]
База путей к админкам [ thnx 2 Ded MustD!e ]
База путей к phpMyAdmin [ thnx 2 ettee ]


--

Сообщения о багах и пожелания по улучшению приветствуются.
Вложения
Тип файла: txt wscan02.py.txt (7.5 Кб, 22 просмотров)

Последний раз редактировалось cr0w; 20.11.2009 в 04:22..
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ