CMSmap – это инструмент для поиска уязвимостей в системах управления сайтов (CMS). Инструмент автоматически идентифицирует используемую CMS и проверяет наличие известных уязвимостей в плагинах и настройках Давайте рассмотрим, как работает этот инструмент.
Еще по теме: Как взломать сайт WordPress
Что такое CMSmap
CMSmap — один из самых популярных инструментов для поиска уязвимостей в CMS. Инструмент представляет собой сканер с открытым исходным кодом на Python, который автоматизирует процесс обнаружения проблем безопасности в популярных CMS.
Для поиска уязвимостей использует базу данных Exploit Database.
Инструмент способен определить версию CMS на сайтах и найти известные уязвимости в установленных плагинах, после чего сопоставляет их с базой данных для выявления возможных рисков безопасности.
Установка CMSmap
Клонируйте репозиторий CMSmap:
1 |
$ git clone https://github.com/Dionach/CMSmap |
Перейдите каталог CMSmap:
1 |
$ cd CMSmap |
Установите зависимости:
1 |
$ pip install . |
Использование CMSmap
Например, выполним полное сканирование сайта на движке WordPress:
1 |
$ python cmsmap.py -F http://www.wordpress.com |
На выходе увидим, как CMSmap отображает обнаруженные уязвимости с указанием индикатора степени серьезности:
- [I] — информационные
- [L] — низкие
- [M] — средние
- [H] — высокие
Инструмент по умолчанию обнаруживает файлы WordPress и ищет определенные каталоги.
Параметры CMSmap позволяют указать юзер-агент:
1 |
$ python3 cmsmap.py -a 'user_agent' <домен> |
Опция «User Agent» может быть интересной, если сайт, который вы анализируете, находится за WAF, которое может блокировать сканирование CMS.
Пример брута с использованием имени пользователя и словаря паролей:
1 |
$ python cmsmap.py -u admin -p passwords.txt http://www.target-site.com |
Кроме обнаружения уязвимостей, CMSmap может перечислить установленные плагины на сайте, а также выполнить брут с использованием имени пользователя и файла паролей. Для этой задачи используются следующие параметры:
1 2 3 |
-u , --usr – имя пользователя или файл с именами пользователей -p , --psw – пароль или файл с паролями -x, --noxmlrpc – брут WordPress без XML-RPC |
Все параметры использования CMSmap:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
-h, --help – показать справку -t ЦЕЛЬ, --target – урл цели или IP-адрес -m МОДУЛЬ, --module – конкретный модуль для выполнения (all, user, recon, vuln, exploits, enum, enum-users, enum-modules) -p ПОРТ, --port – целевой порт (по умолчанию: 80) --ssl – использовать SSL (по умолчанию: False) --tor – использовать Tor-прокси (по умолчанию: False) --proxy ПРОКСИ – указать прокси для использования (например, socks5://127.0.0.1:9050) --aggression УРОВЕНЬ – уровень агрессивности (1-5, по умолчанию: 1) --fingerprint – определить отпечаток цели и выйти (по умолчанию: False) --privacy – предотвратить отправку некоторых HTTP-запросов (по умолчанию: False) --noedb – пропустить перечисление DBMS (по умолчанию: False) --nojoom – пропустить проверки Joomla (по умолчанию: False) --nofrac – пропустить обнаружение уязвимых файлов (по умолчанию: False) --noexts – пропустить перечисление плагинов (по умолчанию: False) --noplugins – пропустить проверки плагинов (по умолчанию: False) --only-vulnerable – проверить только уязвимые расширения (по умолчанию: False) --only-known – роверить только известные расширения (по умолчанию: False) --check-updates – проверить наличие обновлений (по умолчанию: False) --update – обновить из git (по умолчанию: False) --get-tor-ip – вернуть IP-адрес узла выхода Tor (по умолчанию: False) --get-local-ip – вернуть локальный IP-адрес (по умолчанию: False) --get-web-ip – вернуть IP-адрес Web (по умолчанию: False) --dump – вывести всю информацию о плагинах (по умолчанию: False) --beep – сделать звуковой сигнал после обнаружения (по умолчанию: False) --output-file ФАЙЛ_ВЫВОДА – файл вывода для записи на диск (по умолчанию: None) --force-ssl – принудительно использовать SSL/HTTPS (по умолчанию: False) --user-agent ЮЗЕР_АГЕНТ – указать пользовательский агент (по умолчанию: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)) --update-file – обновить из файла (по умолчанию: False) --target-file ФАЙЛ_ЦЕЛЕЙ – файл со списком целей (по умолчанию: None) --input-file ФАЙЛ_ВХОДА – файл для модулей, требующих ввода (например, подбор паролей) (по умолчанию: None) --input-mode {stdin,read} – указать, откуда брать ввод: stdin или read() (по умолчанию: read) --format {json,console,simple} – формат вывода (по умолчанию: console) --range ДИАПАЗОН_IP – диапазон IP-адресов для сканирования портов (по умолчанию: None) --nmap-options ОПЦИИ_NMAP – опции Nmap для перечисления (по умолчанию: -p80,443,8080) |
Существуют еще несколько подобных инструментов на Python, среди которых можно выделить Vulnx.
ПОЛЕЗНЫЕ ССЫЛКИ: