- Найти и не обезвредить: пишем пентесты с Kali Linux
- Kali и другие подобные инструменты помогают обнаружить уязвимости в вашем ПО. И лучше, если первыми их найдёте вы, а не злоумышленники.
- Поиск открытых портов
- Поиск информации о пользователях
- Подбор пароля с атакой по словарю
- Поиск Heartbleed-уязвимости
- Советы по предотвращению и защите от взлома
- Полезные материалы (на английском языке)
- Пентест веб сервера kali linux
- Пассивная разведка
- 2IP или аналоги
- Shodan
- HackerTarget
- Google dorks
- theHarvester
- Активная разведка
- DMitry
- Sparta
- WhatWeb
- WPScan
- Nikto
- О Pentestit
Найти и не обезвредить: пишем пентесты с Kali Linux
Kali и другие подобные инструменты помогают обнаружить уязвимости в вашем ПО. И лучше, если первыми их найдёте вы, а не злоумышленники.
Шило в мешке не утаить: по неведению (правда, в некоторых случаях — умышленно) даже крупные корпорации оставляют дыры в своей системе безопасности. Жизненно важно как можно быстрее (1) локализовать их и (2) пофиксить. К счастью, существует множество различных продуктов, которые помогают с первым пунктом. Среди них можно выделить Kali, дистрибутив Linux, разработанный для тестирования систем безопасности. В этой статье я расскажу, как использовать Kali Linux для исследования вашей системы и поиска слабых мест, имитируя атаку злоумышленника.
Дистрибутив Kali включает множество инструментов, каждый из которых имеет открытый исходный код. Достаточно запустить установку дистрибутива и все эти инструменты будут доступны из коробки.
В качестве подопытных я буду использовать две системы:
- kali.usersys.redhat.com: 30 Гб памяти и 6 виртуальных CPU. Эта система будет выполнять сканирование «жертвы» и запускать атаки.
Я не зря упомянул здесь технические характеристики оборудования. Некоторые из наших задач довольно требовательны к железу, особенно — к CPU системы 2, на которой будет работать сканер безопасности WordPress (WPScan).
Поиск открытых портов
Я начал с базового сканирования системы 2. Сканируя систему с помощью Nmap, можно узнать, какие порты и службы видны из системы 1, запускающей сканирование.
Итак, первым делом можно найти несколько «интересных» открытых портов — потенциальных слабых мест. На самом деле, любой открытый порт интересен, потому что с его помощью больше шансов взломать сеть. В этом примере 21, 22, 80 и 443 — это ещё и порты часто используемых служб. Но пока я просто занимаюсь разведкой и пытаюсь получить как можно больше информации о системе, которую хочу взломать.
После этого для более глубокого анализа я выбраю порт 80 и запускаю команду Nmap с аргументами -p 80 и -A. Это позволяет получить информацию об операционной системе и приложении, которое использует 80-й порт.
Здесь нас интересуют следующие строки:
Поиск информации о пользователях
Поскольку теперь я знаю, что это сервер WordPress, я могу использовать WPScan для получения информации о потенциальных уязвимостях. Хорошо бы найти несколько имён пользователей и их пароли. Чтобы найти их в данном в экземпляре WordPress, используем опции —enumerate u:
└─# wpscan —url vulnerable.usersys.redhat.com —enumerate u
__ _______ _____
\ \ /\ / /| |__) | (___ ___ __ _ _ __
\ \/ \/ / | ___/ \___ \ / __|/ _` | ‘_ \
WordPress Security Scanner by the WPScan Team
Sponsored by Automattic — https://automattic.com/
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
[+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
[+] Started: Tue Feb 16 21:38:49 2021
[i] User(s) Identified:
| Found By: Author Posts — Display Name (Passive Detection)
| Author Id Brute Forcing — Author Pattern (Aggressive Detection)
| Login Error Messages (Aggressive Detection)
| Found By: Author Posts — Display Name (Passive Detection)
| Author Id Brute Forcing — Author Pattern (Aggressive Detection)
| Login Error Messages (Aggressive Detection)
Отлично, найдены два пользователя: admin и pgervase. Я попытаюсь подобрать пароль для пользователя admin, используя словари паролей — текстовый файл с набором возможных вариантов. Я возьму словари из 3 231 и из 3 543 076 137 строк.
Подбор пароля с атакой по словарю
Для атаки по словарю можно использовать разные инструменты. Вот два примера команд с Nmap и WPScan:
Эти два инструмента, конечно же, могут гораздо больше, но и для подбора паролей тоже годятся.
А вот эта команда WPScan, например, выводит пароль в конце файла:
Раздел Valid Combinations Found в конце содержит имя пользователя admin и его пароль. На перебор 3 231 строк ушло всего две минуты.
У меня есть ещё один файл словаря с 3 238 659 984 уникальными записями, что займет гораздо больше времени.
Nmap выдаёт результат намного быстрее:
Правда, такое сканирование можно отследить по HTTPD-логам, которые будут обнаружены во взломанной системе:
Поиск Heartbleed-уязвимости
Чтобы получить информацию о HTTPS-сервере и SSL/TLS протоколах, я использую команду sslscan:
Мы видим, что в версиях протоколов, которые используются на сервере, Heartbleed-уязвимость не обнаружена:
Ну что ж, значит через модуль Heartbeat я не могу получить доступ к оперативной памяти и данным сервера. Что ж… видно не судьба 🙂
Советы по предотвращению и защите от взлома
Можно написать много статей про то, как противостоять атакам хакеров всех мастей. Тут я ограничусь общими рекомендациями:
- Изучайте свою систему: какие порты открыты, какие порты должны быть открыты, кто должен иметь возможность видеть эти порты и какой объём трафика должен проходить через них. Nmap вам в помощь.
Используйте лучшие и передовые практики: то, что считается передовой практикой сегодня, перестанет быть таковой в будущем. Важно быть в курсе новейших достижений в области информационной безопасности.
Грамотно настраивайте ваши продукты и их окружение: например, вместо того, чтобы позволять злоумышленнику постоянно атаковать вашу систему WordPress, заблокируйте его IP-адрес и ограничьте количество попыток входа в систему. Правда, блокировка IP-адреса часто оказывается бесполезной, потому что злоумышленники могут использовать разные адреса. Однако эту настройку легко включить, и она поможет отразить хотя бы некоторые атаки.
Создавайте и поддерживайте качественные резервные копии: если злоумышленник взломает одну или несколько ваших систем, возможность восстановить данные без танцев с бубном поможет сэкономить много времени и денег.
Проверяйте свои логи: как показывают приведённые выше примеры, команды сканирования и прочие проникающие манипуляции могут оставлять множество логов. Если вы заметили их вовремя, вы успеете защититься от взлома.
Обновляйте свою систему, приложения и любые дополнительные модули: специалисты Института стандартов и технологий США уверены, что «обновления обычно являются наиболее эффективным способом устранения уязвимостей и часто могут стать единственным по-настоящему эффективным решением».
Полезные материалы (на английском языке)
То, что описано в этой статье, — лишь вершина айсберга. Чтобы погрузиться глубже, вы можете изучить следующие ресурсы:
Облачные серверы от Маклауд быстрые и безопасные.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
Источник
Пентест веб сервера kali linux
Любой поиск уязвимостей начинается с разведки и сбора информации. Разведка может быть активной: перебор файлов и директорий сайта, использование сканеров уязвимостей, ручной анализ приложения; или пассивной: с использованием различных поисковых систем и интернет-сервисов. В этой статье мы рассмотрим инструменты Kali Linux, а также онлайн-ресурсы, которые можно использовать для анализа защищенности веб-приложений.
Информация предоставлена исключительно в ознакомительных целях. Не нарушайте законодательство!
Пассивная разведка
Для пассивного сбора информации характерно то, что этапы его проведения невозможно обнаружить, так как фактически нельзя определить, с какого узла производится сбор информации. При пассивном сборе используются службы Whois, анализ DNS, исследование публичных интернет-ресурсов, поисковые системы и интернет-сервисы, социальные сети и многое другое.
2IP или аналоги
Различные онлайн-сервисы, предоставляющий информацию об операционной системе, браузере, месте расположения и интернет-провайдере, а также непосредственно об IP-адресе. Сервис предоставляет доступ к инструментам, которые могут оказаться хорошим подспорьем при проведении тестирования на проникновение. На 2IP можно узнать IP-адрес объекта по доменному имени, проверить DNS записи домена, определить используемую CMS, наличие сайта в веб-архивах и т.д.
Shodan
Это поисковая система, разработанная веб-девелопером Джоном Мазерли и ориентированная, прежде всего, на поиск устройств, подключённых к интернету. Shodan предоставляет информацию об устройствах (маршрутизаторах, коммутаторах, настольных компьютерах, серверах и т.д.) и сервисах. Поисковая система опрашивает порты, захватывает полученные баннеры и индексирует их, чтобы найти необходимую информацию. Ценность Shodan, как инструмента тестирования на проникновение, заключается в том, что он предоставляет ряд удобных фильтров:
- Страна. Поиск осуществляется по двухбуквенному коду страны. Например, запрос apache country: RU покажет вам серверы Apache в России.
- Имя хоста. Отображаются результаты по любой части имени хоста или имени домена. Например, при запросе apache hostname: .ru отобразятся серверы Apache в домене .ru.
- net. Выводятся результаты по определённому диапазону IP-адресов или подсети.
- os. Находит указанные операционные системы.
- Порт. Осуществляется поиск конкретных услуг. Shodan имеет ограниченную коллекцию портов: 21 (FTP), 22 (SSH), 23 (Telnet) и 80 (HTTP).
HackerTarget
Сервис позволяет произвести сканирование на наличие уязвимостей на основе инструментов с открытым исходным кодом. HackerTarget может осуществлять 12 различных типов сканирования (сканирование внешних портов, сканирование уязвимостей с помощью OpenVAS, сбор информации о домене, тесты безопасности WordPress, Joomla и Drupal), доступных для сканирования Free.Perform. Информация, собранная при помощи HackerTarget, может быть использована для расширения зоны атаки при выявлении уязвимостей на сервере.
На HackerTarget есть платные пакеты, которые расширяют возможности сервиса. После оплаты предоставляются следующие инструменты:
- Nmap — сканирование любого IP-адреса, лимит сканирования до 2048 адресов в день, сканирование портов без ограничений, запуск сканирования по расписанию.
- OpenVas — Сканирование с помощью инструмента до 512 IP-адресов и составление отчётов в PDF, HTML, XML. Для тарифа PRO+ доступно сканирование по расписанию.
- Доступ к сканеру уязвимостей веб-серверов Nikto, тестированию с помощью SQLmap, расширенный инструментарий для WhatWeb/Wappalyzer, сканирование CMS WordPress, Joomla, Drupal, а также тестирование SSL/TLS.
Google dorks
Операторы расширенного поиска Google используются, как правило, вместе с другими инструментами тестирования на проникновение для сбора анонимной информации, сопоставления сетей, а также сканирования и перечисления портов. Google dorks может предоставить пентестеру широкий спектр конфиденциальной информации, такой как страницы входа администратора, имена пользователей и пароли, конфиденциальные документы, военные или правительственные данные, корпоративные списки рассылки, данные банковских счетов и многое другое. Использование Google dorks позволяет фильтровать информацию примеру по типу уязвимости, по типу CMS, ошибкам, на которые не все обращают внимание. Среди всех операторов расширенного поиска Google наиболее интересны следующие:
- site — поиск осуществляется по конкретному сайту;
- inurl — указатель на то, что искомые слова должны быть частью самого веб-адреса;
- intitle — оператор поиска в заголовке веб-страниц;
- ext или filetype — поиск файлов определённого типа по расширению.
Также при составлении запроса не стоит забывать про операторы, которые задаются спецсимволами:
- «|» — вертикальный слеш, он же оператор OR (логическое или). Указывает, что нужно показать результаты, содержащие хотя бы одно из слов, перечисленных в запросе.
- «»»» — кавычки. Указывает на поиск точного соответствия.
- «-» — минус. Используется для очистки поисковой выдачи и исключает из неё результаты с указанными после минуса словами.
- «*» — звездочка, или астериск. Используется в качестве маски и означает «что угодно».
Пример: site:pentestit.ru inurl:/uploads , если требуется найти все ссылки, содержащие «/upload» на сайте pentestit.ru.
theHarvester
theHarvester — это инструмент для сбора e-mail адресов, имён поддоменов, виртуальных хостов, открытых портов/банеров и имён работников из различных открытых источников (поисковые системы, сервера ключей pgp). Это простой, но эффективный на ранних этапах тестирования на проникновение инструмент позволяет узнать, какую информацию могут собрать о компании через интернет.
Инструмент использует следующие источники:
- google: поисковая машина Google — www.google.com;
- googleCSE: пользовательский поиск Google;
- google-profiles: поисковая система Google, специфичный поиск по профилям Google;
- bing: поисковая система Microsoft — www.bing.com;
- bingapi: поисковая система Microsoft, через API (нужно добавить ваш ключ в файл discovery/bingsearch.py);
- dogpile: поисковая система Dogpile — www.dogpile.com;
- pgp: сервер ключей pgp — mit.edu;
- linkedin: поисковая система Google, специфичный поиск по пользователям Linkedin;
- vhost: поиск Bing по виртуальным хостам;
- twitter: Twitter аккаунты, связанные с указанным доменом (используется поиск Google);
- googleplus: пользователи, которые работают в целевой компании (использует поиск Google);
- yahoo: поисковая система Yahoo;
- baidu: поисковая система Baidu;
- shodan: поисковая система Shodan, ищет порты и банеры обнаруженных хостов (http://www.shodanhq.com/).
- Перебор DNS: этот плагин запустит перебор по словарю;
- Обратное преобразование DNS: обратное преобразование обнаруженных IP-адресов для поиска имён хостов;
- DNS TDL расширение: перечисление по словарю TLD;
Модули, для работы которых требуются API ключи:
- googleCSE: нужно создать Google Custom Search engine(CSE) и добавить ваш Google API ключ и CSE ID в плагин (discovery/googleCSE.py);
- shodan: нужно ввести ваш API ключ в discovery/shodansearch.py.
Ключи:
-b — позволяет указать источники в которых он будет искать. Возможные источники поиска:google, googleCSE, bing, bingapi, pgp, linkedin, google-profiles, people123, jigsaw, twitter, googleplus или все сразу — all;
-v — проверить хост в DNS и искать виртуальные сервера имеющие тот же адрес;
-f — записать результаты в HTML и XML файлы;
-n — сделать рекурсивные запросы к всем найденным диапазоном адресов;
-c — провести брутфорс доменных имен по словарю;
-e — использовать указанный DNS сервер;
-h — проверить найденные хосты через SHODAN.
Так же можно ограничить или расширить глубину поиска:
-l — глубина поиска (по умолчанию 100);
-s — пропустить первые n запросов.
Активная разведка
DIRB представляет собой cканер для поиска директорий веб-приложения. В основе работы инструмента лежит поиск по словарю, при помощи которого формируются запросы к веб-серверу и осуществляется анализ ответов.
DIRB поставляется с набором настроенных на атаку словарей для простого использования, но можно задействовать и свой словарь. DIRB полезен там, где классические сканеры уязвимостей веб-приложений бессильны, так как он ищет специфические веб-объекты. При работе с инструментом можно использовать ключи:
-c — установить cookie для HTTP запроса. Может быть полезно, если веб-приложение для работы требует определенные cookie;
-a — установка пользовательского user-agent;
-u — HTTP аутентификация.
Nmap (Network Mapper) — это утилита с открытым исходным кодом для исследования сети и проверки безопасности. Зачастую используется для инвентаризации сети, управления расписанием служб обновлений и мониторинга аптайма хостов или служб. Nmap был создан для быстрого сканирования больших сетей, но также хорошо работает и в отношении единичных хостов. Nmap запускается на всех популярных операционных системах, а официальные исполнимые пакеты доступны для Linux, Windows и Mac OS X. Достоинствами Nmap можно назвать:
- Гибкость. Nmap поддерживает множество техник для составления карты сети, заполненной IP-фильтрами, межсетевыми экранами, роутерами и другими преградами, а также различные механизмы сканирования портов (TCP и UDP), определение операционных систем, определение версий и др.
- Мощность. Изначально Nmap использовалась для сканирования больших сетей, состоящих из сотен машин.
- Кроссплатформенность. Поддерживаются большинство операционных систем, включая Linux, Microsoft Windows, FreeBSD, OpenBSD, Solaris, IRIX, Mac OS X, HP-UX, NetBSD, Sun OS, Amiga и другие.
- Простота в использовании. Nmap включает в себя широкий набор функций различной степени сложности, он может быть полезен и для опытных пентестеров, и для новичков. Доступны как традиционная версия командной строки, так и графическая версия (GUI).
- Nmap — бесплатный инструмент. Утилита доступна для свободной загрузки и поставляется с полным исходным кодом, который можно изменить и распространять его на основе лицензии.
- Для Nmap разработана подробная документация.
- Поддержка Nmap осуществляется сообществом разработчиков и пользователей.
При работе с утилитой можно использовать следующие ключи:
-sU — UDP-сканирование;
-O — определение версии операционной системы, основывается на TTL;
-Pn — позволяет рассматривать все хосты, как если бы они были онлайн;
-sC: — запуск стандартного набора скриптов, эквивалентно опции —script=default .
DMitry
Эта утилита командой строки для UNIX/(GNU)Linux, написанная на языке C. Приложение позволяет собрать максимально возможное количество информации о хосте. В базовую функциональность входит сбор информации о поддоменах, адресах электронной почты, сканировании портов TCP, поиск Whois и другое.
Среди особенностей Dmitry можно выделить следующие:
- Проект с открытым исходным кодом;
- Выполняет ряд поисков Whois;
- Выполняет поиск поддоменов для целевого хоста;
- Выполняет поиск адресов электронной почты для целевого хоста;
- Выполняет сканирование портов TCP на целевом хосте;
- Модульное построение программы позволяет настраивать набор используемых модулей.
Sparta
Инструмент, предназначенный для автоматизации проведения активной разведки. Инструмент имеет GUI интерфейс, что позволяет на интуитивном уровне разобраться с работой программы.
После указания хоста для тестирования, инструмент запустит последовательно несколько сценариев сбора информации, начиная от сканирования портов с помощью Nmap и заканчивая проверкой сканером уязвимостей веб-серверов Nikto, а также созданием скриншотов веб-страниц. При необходимости найденные сервисы можно передать во встроенный механизм брутфорса для подбора пароля к учётным записям пользователей.
WhatWeb
Программа предназначена для идентификации веб-стайтов и позволяет ответить на вопрос «Чем является этот веб-сайт?». WhatWeb распознает веб-технологии, в том числе системы управления контентом (CMS), платформы для ведения блогов, пакеты статистики/аналитики, библиотеки JavaScript, веб-серверы и встроенные устройства.
WhatWeb может быть незаметным и быстрым, тщательным и медленным. Чтобы контролировать компромисс между скоростью и достоверностью, WhatWeb поддерживает уровни агрессивности через ключ -a . Уровень агрессивности по умолчанию называется «незаметный», он является самым быстрым и требует только один HTTP-запрос к веб-сайту. Его можно использовать для сканирования публичных веб-сайтов. Более агрессивные режимы 3 и 4 были созданы для использования при проведении тестирования на проникновение. Также можно указать —user-agent , чтобы установить пользовательский user-agent, а также условия для осуществления перехода с помощью ключей —follow-redirection и —max-redirects . Поддерживается аутентификация на сайте и использование пользовательских cookie. WhatWeb поддерживает только basic auth.
WPScan
WPScan — это сканер уязвимостей WordPress, работающий по принципу «чёрного ящика», без доступа к исходному коду. Он может быть использован для сканирования удалённых сайтов WordPress на наличие уязвимостей.
Функционал инструмента позволяет устанавливать пользовательский user-agent или использовать функцию —random-user-agent для попытки обхода средств защиты. Для более глубокого изучения целевой CMS можно использовать ключ —enumiration с аргументами для запуска определения версии, главной темы оформления сайта, перечисления установленных плагинов и перечисления пользователей методом перебора.
Функция —plugins-detection aggressive является более агрессивной и требует больше времени.
Nikto
Сканер уязвимостей веб-серверов Nikto предназначен для поиска различных дефолтных и небезопасных файлов, конфигураций и программ на веб-серверах любого типа. Сканер исследует веб-сервер для поиска потенциальных проблем и уязвимостей безопасности, включая:
- Неверные настройки сервера и программного обеспечения;
- Дефолтные файлы и программы;
- Небезопасные файлы и программы;
- Устаревшие службы и программы.
Одной из самых востребованных опций сканера можно назвать -Tuning , которая модернизирует сканирование сервера, позволяя искать различные инъекции (4, 9), осуществлять обход аутентификации (a), идентификацию программного обеспечения (b) и многое другое. Например, для поиска XSS уязвимости можно воспользоваться следующей командой:
# nikto -host site.lan -Tuning 4 -C none
О Pentestit
Анализ защищенности веб-приложений — одно из основных направлений деятельности нашей компании, коллектив которой представлен специалистами с опытом работы в сфере более 10 лет.
Специализируясь в области практической информационной безопасности, мы производим поиск уязвимостей на защищенных интернет-ресурсах, выступаем с докладами на международных форумах, разрабатываем программное обеспечение и уникальные лаборатории тестирования на проникновение «Test lab», в которых принимают участие профессионалы со всего мира.
На этом базовую разведку и сбор информации можно завершить и перейти к следующему этапу проведения тестирования на проникновение. На основе собранной информации выстраиваются векторы для проведения последующих атак.
Источник