• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Soft Как найти SQL Injection с помощью дорков. Обзор V3n0M-Scanner

V3n0M-logo1.jpg


Всем привет! Сегодня будет небольшой обзор утилитки под названием V3n0M-Scanner.
Самая стоящая функция сканера - поиск SQLi- и XSS-уязвимостей в на веб-сайтах с помощью дорков. А база дорков у V3n0M просто колоссальная: более 14 000 штук!
Если буду где-то через чур углубляться в подробности, то это делается для новичков :)

Из второстепенных функций сканера:
- поиск IP за Cloudflare (Cloudflare Resolver);
- поиск админки веб-сайта;
- dns brute.

В будущем планируют реализовать функцию сканирования уязвимостей по базе Metasploit.

Чаще встречаемое на полях рунета понятие Гугл Доркс — это транслит от английского Google Dork(s)Тупица(ы), сидящий в Google, Тупица в Гугле и т.п. Изначально, когда понятие только зарождалось, им награждали неких нерадивых IT (или не всегда) специалистов, которые чаще по простому незнанию «сливали» в общий сетевой доступ конфиденциальную информацию о компании, где трудились.

Постепенно название Гугл Доркс закрепилось за малосведущим администратором, неумело прячущим элементарные секреты от взлома электронной визитки компании, оставляя почти в открытом доступе лазейки для хакера и последующего несанкционированного доступа

Допустим, мы знаем, что если URL сайта содержит текст "page.php?file=", то есть некоторая вероятность, что данная ссылка уязвима к атаке SQL Injection. Манипулируя параметрами после знака = мы можем получить несанкционированный доступ к базе данных и извлечь из нее критичную информацию. Например, логины и пароли от веб-сервера. В данном случае "page.php?file=" - это дорк, шаблон, с помощью которого можно обнаружить уязвимости на веб-сайтах.

Поиск по доркам в народе называют гугл хакинг. Например, чтобы найти все сайты, у которых URL содержит дорк page.php?file=, нужно ввести в Google следующий запрос:

google hack.jpg


Вручную можно тестировать несколько десятков дорков. Но когда их тысячи, то на помощь приходят скрипты, которые позволяют осуществлять такой поиск в автоматическом режиме. Как V3n0M. Правда эта утилита для поиска использует не гугл, а bing.

apt-get install python3-pip python3-dev python-dev
pip3 install aiohttp asyncio bs4 dnspython tqdm datetime requests socksipy-branch httplib2

git clone https://github.com/v3n0m-Scanner/V3n0M-Scanner.git
cd V3n0M-Scanner/
python3 setup.py install --user

Запускаем утилитку:

V3n0M-main menu.jpg


Воспользуемся сканером уязвимостей. Для этого выбираем пункт 1 и отвечаем на ряд вопросов от сканера.

1. Choose your target(domain) ie .com , to attempt to force the domain restriction use *, ie *.com :

Здесь можно указать конкретный домен, который мы желаем протестировать. Например, test.ru.
Если интересуют еще и субдомены, то вводим *.test.ru. Можно сделать поиск уязвимостей во всем русском сегменте интернета: *.ru . А если ввести просто *, то поиск будет осуществляться вообще по всем сайтам. В своем примере я выберу звездочку.

2. Choose the number of random dorks (0 for all.. may take awhile!)

Здесь необходимо выбрать количество дорков, которое будет использоваться при сканировании. Дорков в базе более 14 тысяч. Если выбрать 0, то скрипт будет искать по всей базе. Такой поиск может затянуться на несколько часов. Можно указать конкретное количество дорков, тогда скрипт будет выбирать их из базы в случайном порядке. Для своего примера я выберу 200.

3. Enter no. of threads, Between 50 and 500

Количество потоков сканирования. Можно выбрать от 50 до 500. Я выберу 50.

4. Enter no. of Search Engine Pages to be scanned per d0rk, Between 20 and 100, increments of 20. Ie> 20:40:60:80:100

Здесь нужно указать количество страниц в поисковой системе, вывод которых будет анализировать скрипт. Чем больше число, тем больше результатов, но при этом увеличится время сканирования. Для примера я выбрал 20.

Далее запускается процесс автоматического гугл хакинга.
После завершения процедуры поиска скрипт предлагает нам решить что же делать с тем, что он так тщательно искал. Например, на скриншоте ниже видно, что было найдено 1485 ссылок, а после очистки дубликатов и прочего мусора осталось всего лишь 172.
Но все ли они являются уязвимыми? Проверяем!

Выберем пункт [1] SQLi Testing

V3n0M-vulscan01.jpg


Скрипт автоматически проверит на SQL Injection все найденные ссылки и выдаст результат со списком уязвимых URL.

V3n0M-vulscan02.jpg


В моем случае скрипт нашел 10 уязвимостей и определил тип для каждой. Как показала практика, тип уязвимости MySQL Classic - это Union Based SQLi. Далее можно получать доступ к базам данных через SQLMap. Но можно и почувствовать себя настоящим хакером и попробовать получить данные ручками в браузере :)

Можно проверить ссылки на уязвимость к XSS:
[4] XSS Testing

Скрипт в меню тестирования часто глючит и после очередной проверки нас может выкинуть в главное меню без сохранения результата. Поэтому лучше сразу воспользоваться функцией сохранения результатов в файл:
[5] Save valid Sorted and confirmed vuln urls to file

Что еще интересного есть в скрипте?

2017-09-02_4-14-13.jpg


1. Можно настроить работу через прокси
[5] Enable Tor/Proxy Support


2. Можно попробовать найти IP-адрес сервера, если он спрятан за Cloudflare
[6] Cloudflare Resolving


Скрипт выполняет обычный брут по субдоменам и выдает для них IP. Если повезет, то где-то в глубинах DNS сохранился вожделенный прямой IP искомого сервера.

При запуске модуля вылетит ошибка:
ImportError: No module named request

Чтобы ее исправить, необходимо найти в файле v3n0m.py строчку:
cloud = subprocess.Popen('python ' + pwd + "/cloudbuster.py " + str(target_site) + scandepth, shell=True)
и заменить в ней python на python3

3. Можно попробовать сбрутить субдомены
[4] DNS brute


Функция отличается от Cloudflare Resolving только тем, что скрипт показывает результаты с субдоменами без IP-адреса.

Как по мне, то лучше воспользоваться dnsmap.

При запуске функции вылетит ошибка:
dnsbrute: error: argument -t/--threads: expected one argument

Автор скрипта упустил значение параметра t в вызове скрипта dnsbrute.py:
dnsbrute = subprocess.Popen(pwd + "/modules/dnsbrute.py -w lists/subdomains -u " + str(target_site) + " -t " + att

Поэтому если хочется, чтобы DNS brute работал, то нужно удалить из этой строчки: + " -t"
Либо задать конкретную цифру этому параметру, в данном случае t - количество потоков.

А на этом всё!
 

Вложения

  • V3n0M-logo1.jpg
    V3n0M-logo1.jpg
    26,2 КБ · Просмотры: 1 044
Последнее редактирование модератором:
X

xiemin

кстати, целевой сайт ты все-таки спалил на скрине
 
A

alexandro

Добрый день! При установке вот такая ошибка package init file 'src/__init__.py' not found (or not a regular file) посоветуйте что делать?
 
I

Inject0r

Добрый день! При установке вот такая ошибка package init file 'src/__init__.py' not found (or not a regular file) посоветуйте что делать?

Я устанавливал на Kali 2017.1.

Попробуй так установить:

apt-get update
apt-get install python3.6 python3.6-dev python-dev
python3.6 -m pip install aiohttp asyncio bs4 dnspython tqdm datetime requests socksipy-branch httplib2
git clone https://github.com/v3n0m-Scanner/V3n0M-Scanner.git
cd V3n0M-Scanner/
python3.6 setup.py install --user

Соответственно, утилиту запускать тоже с помощью python3.6.
 
  • Нравится
Реакции: Sniff
B

Bdpk

Добрый день! При установке вот такая ошибка package init file 'src/__init__.py' not found (or not a regular file) посоветуйте что делать?

Мне помогло добавление setuptools в setup.py

import setuptools

Если не установлен пакет, то python3.6 -m pip install setuptools
 
S

Sniff

Утилита шикарная, вот только при её запуске вылетает ошибка:
File "v3n0m.py", line 963
async def search(pages_pulled_as_one):
^
SyntaxError: invalid syntax
Подскажите, что нужно сделать.
[doublepost=1505058101,1505056834][/doublepost]
Я устанавливал на Kali 2017.1.

Попробуй так установить:

apt-get update
apt-get install python3.6 python3.6-dev python-dev
python3.6 -m pip install aiohttp asyncio bs4 dnspython tqdm datetime requests socksipy-branch httplib2
git clone https://github.com/v3n0m-Scanner/V3n0M-Scanner.git
cd V3n0M-Scanner/
python3.6 setup.py install --user

Соответственно, утилиту запускать тоже с помощью python3.6.
Спасибо Вам большое, по Вашей подсказке получилось запустить утилиту.
 
A

anklbens

hto to ne sowsem poluhaetsya ystanowit
/V3n0M-Scanner# python3.6 setup.py install --user
/usr/lib/python3.6/distutils/dist.py:261: UserWarning: Unknown distribution option: 'install_requires'
warnings.warn(msg)
running install
running build
running build_py
package init file 'src/__init__.py' not found (or not a regular file)
package init file 'src/__init__.py' not found (or not a regular file)
running install_lib
running install_egg_info
Removing /root/.local/lib/python3.6/site-packages/V3n0M-419.egg-info
Writing /root/.local/lib/python3.6/site-packages/V3n0M-419.egg-info
kak isprawit ?
 
S

shuborx

Отличная утилитка. Очень понравилась. Спасибо
 
G

gravitywaves

А как туда свои дорки то загрузить? Уже замучался искать нормальный сканер в который можно закинуть 100к своих дор.
P.s нашёл, в папке lists есть все базы
 
Последнее редактирование модератором:

CyberX88

Green Team
05.02.2017
122
43
BIT
0
А как туда свои дорки то загрузить? Уже замучался искать нормальный сканер в который можно закинуть 100к своих дор.
P.s нашёл, в папке lists есть все базы
Попробуй Searcher by Zurr ,там большой лист можно сунуть вроде
 

krypt0n

Green Team
12.11.2017
139
68
BIT
0
~/V3n0M-Scanner# python3 setup.py install --user
<class 'Exception'>
вот такая фигня ? как исправить? все обновил
это тоже делал Note for Kali users: Please make sure you have installed --> apt-get install python3-dev apt-get install python-dev
[doublepost=1512571391,1512552612][/doublepost]
~/V3n0M-Scanner# python3 setup.py install --user
<class 'Exception'>
вот такая фигня ? как исправить? все обновил
это тоже делал Note for Kali users: Please make sure you have installed --> apt-get install python3-dev apt-get install python-dev
вот этой командой решил проблему свою apt-get install python3-pip
 
V

Valdein

Запускаю на проверку конкретный домен, но сканер выгружает ссылки абсолютно других сайтов.
В чем проблема?
 

Mitistofel

Green Team
03.06.2018
264
151
BIT
0
Три раза проверял, не чего не нашло... Находит сайты по доркам, но по sql тесту не чего не находит. После того как я врубаю sql тест, после того как найдены сайты с доркам, сразу же, моментально вылазиет что уязвимых найдено 0, как будто даже поиска не было, синих ссылок перед которыми было бы написано "Testing" - нету. С тестом XSS всё иначе, всё работает...
 
Последнее редактирование:

mackgomeryberns

Green Team
04.03.2019
30
3
BIT
3
Три раза проверял, не чего не нашло... Находит сайты по доркам, но по sql тесту не чего не находит. После того как я врубаю sql тест, после того как найдены сайты с доркам, сразу же, моментально вылазиет что уязвимых найдено 0, как будто даже поиска не было, синих ссылок перед которыми было бы написано "Testing" - нету. С тестом XSS всё иначе, всё работает...
та же хрень
 
M

MRR

Всем привет. Утилита почему-то выдает нуливой результат в отсортированной строке:
[+] URLS (unsorted) : Contains all the trash results still including duplicates: 145203
[+] URLS (sorted) : Trash, Duplicates, Dead-Links and other rubbish removed 0

Тестировал на минимальном потоке (50)
 

mackgomeryberns

Green Team
04.03.2019
30
3
BIT
3
Всем привет. Утилита почему-то выдает нуливой результат в отсортированной строке:
[+] URLS (unsorted) : Contains all the trash results still including duplicates: 145203
[+] URLS (sorted) : Trash, Duplicates, Dead-Links and other rubbish removed 0

Тестировал на минимальном потоке (50)
это не только у тебя
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!