- #36 Kali Linux для начинающих. Сканируем порты с помощью Kali Linux.
- Kali Linux: упражнения по защите и мониторингу системы
- 7.6. Итоги
- Упражнения
- ▍Упражнение №1: защита при работе в сети
- ▍Ответы к упражнению №1
- ▍Упражнение №2: мониторинг служб
- ▍Ответы к упражнению №2
- ▍Упражнение №3: защита файловой системы
- ▍Ответы к упражнению №3
- ▍Информация к размышлению
- ▍Итоги
#36 Kali Linux для начинающих. Сканируем порты с помощью Kali Linux.
Теперь, когда я узнал айпи-адрес нашей машины, мне нужно узнать, какие сервисы на ней работают, и какие порты открыты. Для этого мы воспользуемся нашим инструментом, который называется «nmap».
Давайте я покажу Вам пару новых опций «nmap».
Первая – это опция «-v», т.е подробный режим, где мы сообщаем нашему инструменту, что нужно выводить больше информации. Если Вы запустите «nmap» с опцией «-v», то довольно часто Вы можете наблюдать пустой экран. Также можно воспользоваться опциями: «-vv» «-vvv». Чем больше «v», тем больше выводится информации на экране.
Далее идет опция «-p-» или «-p 0-65535». Она означает сканирование всех tcp-портов. Далее идет опция «-A», которая отображает версию операционной системы, и уже можно сказать, что это стадия разведки. Для вывода большего перечня информации мы конечно же будем использовать ее, но она занимает намного больше времени, чем простое сканирование. Так как мы хотим взломать машину, нам нужно будет узнать как можно больше информации о ней, поэтому мы используем опцию «-A».
Далее пишем ip-адрес нашей цели, который у меня выглядит как: «192.168.15.131». Также я хочу, чтобы у меня был отчет по окончании сканирования, и у «nmap» есть 3 типа вывода. Обычный вывод, похожий на текстовый файл. Это просто копирование того, что выводится на экран. Также есть вывод в файл «gnmap». И последний третий вывод – это xml, который подается на вход другим инструментам. Сейчас я хочу сохранить вывод файлов в трех форматах: nmap, gnmap и xml. Нам нужно дописать команду опциями «–oA”, и в конце назовем файл «metasploitable2» и нажмем Enter.
В итоге у нас получится команда: «nmap –v –p 0-65535 –A 192.168.15.131 –oA metasploitable2»:
Поскольку мы выбрали достаточно много опций, которые выводят много информации, нам остается только ждать завершения сканирования. И это все всего лишь один ip-адрес. Сканирование может занять достаточное количество времени. Теперь представьте на реальном примере, сколько нужно ждать, если у Вас не один ip-адрес, а 100 или 200. В этом примере сканирование у меня прошло быстро, и мне не пришлось его останавливать:
Также рассмотрим опцию «-T», которая позволяет сканировать айпи адреса в тихом режиме, чтобы не сработали системы обнаружения. У нее есть параметр от 1 до 5, где цифра 1 – это очень медленное сканирование.
Не забываем, что мы указывали создание трех файлов-отчетов с разными расширениями. Они находятся в моей текущей директории:
Давайте упорядочим наш список файлов, перенеся их в отдельную директорию:
Команды должны быть Вам уже известны.
Для просмотра файлов можно использовать команду «cat» или «less», для постепенного просмотра файлов:
Итак, мы просканировали наш ip-адрес и выявили наличие множества открытых портов, и большое количество сервисов.
Kali Linux: упражнения по защите и мониторингу системы
В предыдущих трёх материалах мы рассказали о защите Kali Linux, о фильтрации трафика, о мониторинге. Сегодня подведём итоги и представим вашему вниманию несколько упражнений. Здесь приведён перевод разделов 7.6 и «Упражнения» главы 7 книги «Kali Linux Revealed».
7.6. Итоги
В этой главе мы рассмотрели концепции формирования политик безопасности, рассказали о том, на что стоит обратить внимание, создавая подобную политику, и описали некоторые угрозы, которые направлены как на компьютеры, так и на самих специалистов в области информационной безопасности. Мы обсудили меры по защите ноутбуков и настольных компьютеров, показали приёмы настройки встроенного в ядро Linux файрвола netfilter . И, наконец, мы рассмотрели средства и стратегии для мониторинга Kali, показали как внедрить их для того, чтобы получить возможность вовремя обнаруживать потенциальные угрозы. Теперь подведём итоги, вспомним самое важное.
- Уделите время формированию политики безопасности.
- Если вы используете Kali Linux на общедоступном сервере, смените все стандартные пароли для служб, которые можно настраивать (подробнее — в разделе 7.3. «Защита сетевых служб») и ограничьте к ним доступ с помощью файрвола (подробнее — в разделе 7.4. «Файрвол или фильтрация пакетов»). Сделать это нужно до запуска служб.
- Используйте fail2ban для отражения атак, основанных на угадывании пароля, или удалённых атак на пароли методом грубой силы.
- Если вы поддерживаете веб-службы, организуйте работу с ними через HTTPS для предотвращения перехвата трафика, который может включать аутентификационные куки-файлы, третьими лицами.
- Реальный риск часто возникает если вы путешествуете от клиента к клиенту. Например, ваш ноутбук могут украсть или изъять на таможне. Подготовьтесь к такому развитию событий, используя полное шифрование диска (подробнее — в разделе 4.2.2. «Установка на полностью зашифрованную файловую систему»). Рассмотрите возможность настройки функции самоуничтожения (подробности — в разделе «Установка пароля самоуничтожения для повышения уровня безопасности»). Это позволит вам надёжно защитить данные клиентов.
- Настройте правила файрвола (раздел 7.4. «Файрвол или фильтрация пакетов») для блокировки любого исходящего трафика, за исключением того, который генерирует ваше VPN-соединение. Как результат, вы организуете для себя безопасное сетевое подключение, а если оно окажется разорванным, вы тут же об этом узнаете (а не переключитесь на доступ к интернету по локальной сети).
- Отключите неиспользуемые службы. Kali упрощает эту задачу, так как все внешние сетевые службы по умолчанию отключены.
- В ядро Linux встроен файрвол netfilter . Не существует универсальных правил настройки файрволов, подходящих на все случаи жизни, так как пользователи могут предъявлять разные требования к сетям и сетевым службам. Настроить файрвол так, как нужно именно вам, можно из пространства пользователя, используя команды iptables и ip6tables .
- Программа logcheck умеет мониторить лог-файлы, просматривая их, по умолчанию, ежечасно, и отправлять администратору отчёты, содержащие необычные записи, для дальнейшего анализа.
- Утилита top — это интерактивный инструмент, которые выводит список выполняющихся процессов.
- Команда dpkg —verify (или dpkg -V ) позволяет вывести отчёт о системных файлах, которые были модифицированы (возможно — злоумышленником). Её недостаток заключается в том, что сравнивая файлы, она полагается на их контрольные суммы, которые могут быть изменены хорошо подготовленным злоумышленником.
- Инструмент Advanced Intrusion Detection Environment (AIDE) позволяет проверять целостность файлов, он обнаруживает любые изменения при сравнении существующих файлов с ранее сохранённым образом эталонной системы.
- Средство tripwire очень похоже на AIDE, но оно использует методику подписывания конфигурационного файла, благодаря чему атакующий не может изменить его так, чтобы он указывал на нужную ему версию эталонной базы данных.
- Рассмотрите возможность использования утилит rkhunter , checksecurity , и chkrootkit , которые предназначены для поиска руткитов.
Упражнения
Ниже приведены несколько упражнений, которые позволят вам попрактиковаться в обеспечении безопасности Kali Linux.
▍Упражнение №1: защита при работе в сети
- Идентифицируйте все открытые порты в вашей установке Kali Linux.
- Настройте файрвол Kali так, чтобы он позволял осуществлять TCP-подключения только к портам 22, 80 и 443.
- Проверьте, заблокированы ли все остальные порты, используя утилиту вроде netcat .
- Настройте систему так, чтобы правила файрвола сохранялись после перезагрузки. Перезагрузите компьютер для того, чтобы это проверить.
▍Ответы к упражнению №1
- Проверьте открытые порты:
root@kali:~# netstat -tulpen root@kali:~# iptables -n -L INPUT
Если в вашей системе некоторые порты уже заблокированы, или имеются ранее установленные правила iptables , вы можете от всего этого избавиться:
root@kali:~# iptables -F INPUT root@kali:~# iptables -P INPUT ACCEPT root@kali:~# iptables -P FORWARD ACCEPT root@kali:~# iptables -P OUTPUT ACCEPT
Теперь проверьте, можете ли вы подключиться к порту 4444 на вашем компьютере, воспользовавшись netcat следующим образом:
root@kali:~# nc -lnvp 4444 listening on [any] 4444 .
С вашего хоста (если Kali запущена на виртуальной машине), или с другого компьютера, попробуйте подключиться к экземпляру netcat , который прослушивает порт 4444. После подключения введите что-нибудь с клавиатуры. Текст должен появиться там, где запущен netcat :
root@HOST_MACHINE:~# nc -v 172.16.161.136 4444 aaaaaaaa
iptables -P INPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
Теперь проверьте, можно ли снова подключиться к порту 4444 на машине, защищённой файрволом:
root@kali:~# nc -lvp 4444 listening on [any] 4444 .
root@HOST_MACHINE:~# nc -v 172.16.161.136 4444 nc: connectx to 172.16.161.136 port 4444 (tcp) failed: Operation timed out
root@kali:~# iptables-save > /usr/local/etc/myconfig.fw
Зарегистрируйте конфигурационный скрипт в директиве pre-up файла /etc/network/interfaces . Перезагрузите систему для того, чтобы убедиться в том, что настройки файрвола сохранились.
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp pre-up iptables-restore < /usr/local/etc/myconfig.fw
Вот как всё выглядит, с точки зрения хост-системы, с которой осуществляется подключение к виртуальной машине с Kali Linux.
▍Упражнение №2: мониторинг служб
- Установите logcheck .
- Попытайтесь атаковать, методом грубой силы, собственную службу SSH, и посмотрите, заметит ли это logcheck , отправит ли он вам отчёт об атаке.
- Запланируйте задание cron для ежечасного запуска logcheck таким образом, чтобы он, после анализа файлов журналов, создавал лог-файл в /data/$(date-time).log .
▍Ответы к упражнению №2
- Установите logcheck и запустите его в первый раз:
apt-get install logcheck sudo -u logcheck logcheck -o
wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/500-worst-passwords.txt hydra -l root -P 500-worst-passwords.txt 127.0.0.1 ssh tail -f /var/log/auth.log sudo -u logcheck logcheck -o
mkdir -p /data/ sudo -u logcheck logcheck -o > /data/$(date +"%m-%d-%Y-%T").log
▍Упражнение №3: защита файловой системы
- Установите tripwire . Начните наблюдение за изменениями файлов в директории /var/www/html/ .
- Если вы всё сделали правильно, вы столкнётесь со множеством ошибок «File system error». Может быть вас хакнули? В любом случае, исправьте ситуацию.
▍Ответы к упражнению №3
- Установите tripwire и задайте файлы, которые вы хотите защитить:
apt-get install tripwire # yes, yes, yes, yes nano /etc/tripwire/twpol.txt # list the directories and files you want to protect
Добавьте следующий блок кода в файл политик tripwire :
# Webserver file and folder monitoring ( rulename = "Web server file and directories", severity = $(SIG_HI) ) < /var/www/html ->$(SEC_BIN); >
Теперь сделайте так, чтобы tripwire реагировал на изменения файлов в директории /var/www/html :
twadmin -m P /etc/tripwire/twpol.txt #Create Policy File tripwire --init #Initialize database tripwire --check #Initial integrity check touch /var/www/html/shell_backdoor.php tripwire --check tripwire --update-policy -Z low /etc/tripwire/twpol.txt tripwire --check
→ Вот решение на Asciinema (текст нельзя копировать из видео).
▍Информация к размышлению
- Вот интересный пример использования iptables . Можно превратить любой компьютер с беспроводным интерфейсом в беспроводную точку доступа с помощью hostapd . Вот источник этой идеи:
iptables -t nat -F iptables -F iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT echo '1' > /proc/sys/net/ipv4/ip_forward (DNS, dhcp still required)
▍Итоги
Надеемся, то, что вы узнали из серии материалов, в которых мы публиковали переводы фрагментов седьмой главы книги «Kali Linux Revealed», поможет вам сделать вашу систему безопаснее и надёжнее.
Уважаемые читатели! Справились ли вы с упражнениями, или пришлось подглядывать в ответы?