Всем привет! Сегодня будет небольшой обзор утилитки под названием 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 следующий запрос:
Вручную можно тестировать несколько десятков дорков. Но когда их тысячи, то на помощь приходят скрипты, которые позволяют осуществлять такой поиск в автоматическом режиме. Как V3n0M. Правда эта утилита для поиска использует не гугл, а bing.
Поиск по доркам в народе называют гугл хакинг. Например, чтобы найти все сайты, у которых URL содержит дорк page.php?file=, нужно ввести в Google следующий запрос:
Вручную можно тестировать несколько десятков дорков. Но когда их тысячи, то на помощь приходят скрипты, которые позволяют осуществлять такой поиск в автоматическом режиме. Как 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
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
Запускаем утилитку:
Воспользуемся сканером уязвимостей. Для этого выбираем пункт 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
Скрипт автоматически проверит на SQL Injection все найденные ссылки и выдаст результат со списком уязвимых URL.
В моем случае скрипт нашел 10 уязвимостей и определил тип для каждой. Как показала практика, тип уязвимости MySQL Classic - это Union Based SQLi. Далее можно получать доступ к базам данных через SQLMap. Но можно и почувствовать себя настоящим хакером и попробовать получить данные ручками в браузере
Можно проверить ссылки на уязвимость к XSS:
[4] XSS Testing
Скрипт в меню тестирования часто глючит и после очередной проверки нас может выкинуть в главное меню без сохранения результата. Поэтому лучше сразу воспользоваться функцией сохранения результатов в файл:
[5] Save valid Sorted and confirmed vuln urls to file
Что еще интересного есть в скрипте?
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
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 - количество потоков.
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 - количество потоков.
А на этом всё!
Вложения
Последнее редактирование модератором: