OWASP Nettacker – автоматизация проверки на уязвимости и сбора информации
Дисклеймер
Данная статья написана только в образовательных целях и автор ни в коем случае не призываем на совершение противозаконных действий. Будьте благоразумны и цените труды других людей.
OWASP Nettacker – автоматизация проверки на уязвимости и сбора информации
Проект OWASP Nettacker создан для автоматизации сбора информации, сканирования уязвимостей и, в конечном счете, создания отчета для сетей, включая службы, ошибки, уязвимости, неправильные конфигурации и другую информацию. Это программное обеспечение будет использовать TCP SYN, ACK, ICMP и многие другие протоколы для обнаружения и обхода устройств Firewall / IDS / IPS. OWASP Nettacker использует уникальные методы для обнаружения защищенных сервисов и устройств, таких как SCADA. Это всё создает конкурентное преимущество и делает OWASP Nettacker одним из лучших сканеров.
OWASP Nettacker подойдёт для людей, работающих с собственным сайтом, которые могут настроить автоматическую проверку безопасности и в случае нахождения проблем, избавляться от них. Также данный скрипт подойдёт для людей, которые работают на фирмах и не хотят подставлять под удар собственный бизнес, а также для тестировщиков.
Установка OWASP Nettacker
Для установки скрипта нам потребуется Python 3 версии, как его установить я думаю вы уже знаете. Если же нет, то всё просто. Для того, чтобы установить Python нам нужно перейти на их официальный сайт и скачать самую свежую версию, это если вы используете ОС Windows или MacOS.
Если вы используете Linux, то просто открываем терминал и пишем команду apt-get install python3.
Вы можете использовать python версии 2+, если у вас возникли какие-то сложности с python3.
После установки Python нам потребуется установить pip. Если вы ничего не меняли в процессе установки Python, то вероятнее всего он уже установлен на ваш компьютер. Если pip не найдет, то устанавливаем его с помощью команды apt-get install pip (для Linux).
Далее переходим на github и скачиваем архив со скриптом или же используем команду git clone.
Разархивируем скачанный архив в удобное место и далее выполняем команды:
- pip install -r requirments.txt – установятся отсутствующие дополнения, а так же выполнится инструкция по установке.
- python nettacker.py
Мы произвели запуск OWASP Nettacker и далее нам требуется воспользоваться функционалом.
Функционал OWASP Nettacker
usage: Nettacker [-L LANGUAGE] [-v VERBOSE_LEVEL] [-V] [-c] [-o LOG_IN_FILE]
[--graph GRAPH_FLAG] [-h] [-W] [--profile PROFILE]
[-i TARGETS] [-l TARGETS_LIST] [-m SCAN_METHOD]
[-x EXCLUDE_METHOD] [-u USERS] [-U USERS_LIST] [-p PASSWDS]
[-P PASSWDS_LIST] [-g PORTS] [-T TIMEOUT_SEC] [-w TIME_SLEEP]
[-r] [-s] [-t THREAD_NUMBER] [-M THREAD_NUMBER_HOST]
[-R SOCKS_PROXY] [--retries RETRIES] [--ping-before-scan]
[--method-args METHODS_ARGS] [--method-args-list]
[--start-api] [--api-host API_HOST] [--api-port API_PORT]
[--api-debug-mode] [--api-access-key API_ACCESS_KEY]
[--api-client-white-list]
[--api-client-white-list-ips API_CLIENT_WHITE_LIST_IPS]
[--api-access-log]
[--api-access-log-filename API_ACCESS_LOG_FILENAME]
Engine:
Engine input options
-L LANGUAGE, --language LANGUAGE
select a language ['el', 'fr', 'en', 'nl', 'ps', 'tr',
'de', 'ko', 'it', 'ja', 'fa', 'hy', 'ar', 'zh-cn',
'vi', 'ru', 'hi', 'ur', 'id', 'es']
-v VERBOSE_LEVEL, --verbose VERBOSE_LEVEL
verbose mode level (0-5) (default 0)
-V, --version show software version
-c, --update check for update
-o LOG_IN_FILE, --output LOG_IN_FILE
save all logs in file (results.txt, results.html,
results.json)
--graph GRAPH_FLAG build a graph of all activities and information, you
must use HTML output. available graphs:
['d3_tree_v1_graph', 'd3_tree_v2_graph',
'jit_circle_v1_graph']
-h, --help Show Nettacker Help Menu
-W, --wizard start wizard mode
--profile PROFILE select profile ['vulnerabilities',
'information_gathering', 'all']
Target:
Target input options
-i TARGETS, --targets TARGETS
target(s) list, separate with ","
-l TARGETS_LIST, --targets-list TARGETS_LIST
read target(s) from file
Method:
Scan method options
-m SCAN_METHOD, --method SCAN_METHOD
choose scan method ['admin_scan', 'subdomain_scan', 'icmp_scan',
'pma_scan', 'dir_scan', 'viewdns_reverse_ip_lookup_scan',
'port_scan', 'CCS_injection_vuln', 'ssl_certificate_expired_vuln',
'heartbleed_vuln', 'weak_signature_algorithm_vuln',
'wordpress_dos_cve_2018_6389_vuln', 'self_signed_certificate_vuln',
'smtp_brute', 'ssh_brute', 'ftp_brute', 'telnet_brute', 'all']
-x EXCLUDE_METHOD, --exclude EXCLUDE_METHOD
choose scan method to exclude ['admin_scan', 'subdomain_scan', 'icmp_scan',
'pma_scan', 'dir_scan', 'viewdns_reverse_ip_lookup_scan',
'port_scan', 'CCS_injection_vuln','ssl_certificate_expired_vuln',
'heartbleed_vuln', 'weak_signature_algorithm_vuln',
'wordpress_dos_cve_2018_6389_vuln', 'self_signed_certificate_vuln',
'smtp_brute', 'ssh_brute', 'ftp_brute', 'telnet_brute']
-u USERS, --usernames USERS
username(s) list, separate with ","
-U USERS_LIST, --users-list USERS_LIST
read username(s) from file
-p PASSWDS, --passwords PASSWDS
password(s) list, separate with ","
-P PASSWDS_LIST, --passwords-list PASSWDS_LIST
read password(s) from file
-g PORTS, --ports PORTS
port(s) list, separate with ","
-T TIMEOUT_SEC, --timeout TIMEOUT_SEC
read passwords(s) from file
-w TIME_SLEEP, --time-sleep TIME_SLEEP
time to sleep between each request
-r, --range scan all IPs in the range
-s, --sub-domains find and scan subdomains
-t THREAD_NUMBER, --thread-connection THREAD_NUMBER
thread numbers for connections to a host
-M THREAD_NUMBER_HOST, --thread-hostscan THREAD_NUMBER_HOST
thread numbers for scan hosts
-R SOCKS_PROXY, --socks-proxy SOCKS_PROXY
outgoing connections proxy (socks). example socks5:
127.0.0.1:9050, socks://127.0.0.1:9050,
socks5://127.0.0.1:9050 or socks4:
socks4://127.0.0.1:9050, authentication:
socks://username:password@127.0.0.1,
socks4://username:password@127.0.0.1,
socks5://username:password@127.0.0.1
--retries RETRIES Retries when the connection timeout (default 3)
--ping-before-scan ping before scan the host
--method-args METHODS_ARGS
enter methods inputs, example: "ftp_brute_users=test,a
dmin&ftp_brute_passwds=read_from_file:/tmp/pass.txt&ft
p_brute_port=21"
--method-args-list list all methods args
API:
API options
--start-api start the API service
--api-host API_HOST API host address
--api-port API_PORT API port number
--api-debug-mode API debug mode
--api-access-key API_ACCESS_KEY
API access key
--api-client-white-list
just allow white list hosts to connect to the API
--api-client-white-list-ips API_CLIENT_WHITE_LIST_IPS
define white list hosts, separate with "," (examples:
127.0.0.1, 192.168.0.1/24, 10.0.0.1-10.0.0.255)
--api-access-log generate API access log
--api-access-log-filename API_ACCESS_LOG_FILENAME
API access log filename
Как вы можете заметить, функционал у скрипта довольно большой, но могу сказать, что разобраться с ним не так уж и сложно. Так как он весь описан на английском языке, довольно легко понять, за что отвечает каждый параметр.
Стандартно используется подключение к вашему локальному адресу, 127.0.0.1.
Так как скрипт у нас автоматизированный, нам не придётся вводить абсолютно все параметры. Большинство из них уже имеют стандартные параметры и в процессе сканирования мы можем их просто пропускать.
На данном примере мы проверили сайт z3r0d4y.com на предмет subdomens. Как вы можете увидеть, ничего сложного нет и быть не может.
Далее просто идёт сбор и вывод информации в указанный файл.
Хотелось отметить, что у нас есть возможность использовать API, что является важным аспектом в использовании таких скриптом, так как именно грамотная настройки API нам даст возможность выполнять необходимые сканирования удалённо и совершенно с разных устройств, не запоминая предыдущей конфигурации OWASP Nettacker.
На этом сегодня всё, советую использовать данное ПО, если у вас есть необходимость в обнаружении проблем. Подписывайтесь на обновления сайта, а также делитесь статьёй со своими друзьями.
Удачи в жизни и до встречи!