Kali Ashes. Закаляем Kali и учимся не шуметь в сети

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
Дистрибутив Kali Linux невероятно популярен среди пентестеров. Однако при проникновении в сеть с настройками по умолчанию он может создать много шума в эфире, который не останется незамеченным. В этой статье я расскажу о харденинге Kali и о том, как научить Linux работать в наиболее тихом режиме.

Чтобы можно было автоматизировать настройку, я недавно зарелизил инструмент F31, написанный на Bash. Дальше мы подробно разберем, что именно он делает.

Эта статья и F31 не гарантируют тебе стопроцентный обход систем, за которыми приглядывает SOC, но ты значительно снизишь вероятность спалиться. Каждый пентест сети уникален, и написать универсальное решение вряд ли возможно. Уверен, что есть и другие способы уменьшить шум в эфире. Но мы сосредоточимся на главных моментах.

ABOVE​

Above — еще один мой инструмент, это сетевой сниффер протоколов для поиска уязвимостей в сетевом оборудовании. Его работа основана только на анализе трафика, что не создает никакого шума в эфире.
Он охватывает следующие протоколы:
  • L2: CDP, LLDP, DTP, 802.1Q Frames;
  • L3: OSPF, EIGRP, VRRP, HSRP;
  • L7: LLMNR, NBT-NS, MDNS, SSDP, MNDP.
Кстати говоря, Above недавно включили в Kali Linux! Ты можешь установить его прямо из репозиториев Kali:
Код: Скопировать в буфер обмена
Код:
sudo apt update && sudo apt install above
above --help
Чтобы начать анализировать трафик:
Код: Скопировать в буфер обмена
sudo above --interface eth0 --timer 250 --output-pcap vettel.pcap
Здесь
  • --interface eth0 — интерфейс системы;
  • --timer 250 — время, в течение которого будет проводиться анализ;
  • --output-pcap — файл дампа трафика, куда Above запишет все, что сможет найти.
Пример работы Above


С помощью Above можно искать векторы атак на сеть и при этом не создавать никакого шума в эфире.

ОБРАЩЕНИЕ К РЕПОЗИТОРИЯМ​

Если во время работы в сети в рамках пентеста ты обратишься к репозиториям Kali, имей в виду, что SOC может сразу обнаружить это действие. Даже если включить обращение к репозиториям через HTTPS, ты все равно можешь спалиться по DNS-запросу.

kali-repo.png



ОПЕРАЦИИ С ХОСТНЕЙМОМ СИСТЕМЫ​

Да‑да‑да, совет менять хостнейм Kali — это страшный баян. Тем не менее дефолтный хостнейм Kali так и остается главным индикатором обнаружения этого дистра в сети.

Решение простое до безобразия. Мы не только поменяем имя системы, но и заодно запретим передачу хостнейма в пакетах DHCP, которые уходят, когда атакующий пытается получить адрес в сети.
Код: Скопировать в буфер обмена
Код:
sudo hostnamectl set-hostname DESKTOP-HNA2AEVS
sudo sed -i "s/127.0.1.1.*/127.0.1.1\tDESKTOP-HNA2AEVS/" /etc/hosts
Отключить передачу имени системы по DHCP можно в connection-файлах NetworkManager, добавив параметр dhcp-send-hostname=false:
Код: Скопировать в буфер обмена
sudo sed -i '/\[ipv4\]/a dhcp-send-hostname=false' /etc/NetworkManager/system-connections/Wired\ connection\ 1

TTL​

Для дистрибутивов Linux значение TTL равно 64. Можно изменить стандартное значение TTL в системе. Если хочешь прикинуться Windows, выбирай TTL 128.
Код: Скопировать в буфер обмена
sudo sysctl -w net.ipv4.ip_default_ttl=80
Если у тебя планы проводить MITM в сети, то можешь скрыть свой адрес в трассировке со стороны легитимных хостов. Очень простой трюк в виде смещения TTL с инкрементом +1:
Код: Скопировать в буфер обмена
sudo iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1

ОТКЛЮЧЕНИЕ NTP​

Твоя система может периодически обращаться к NTP-серверу для синхронизации актуального времени. В Kali периодически происходит обращение к NTP по имени DNS.

kali-ntp.png


Зато отключить синхронизацию времени в Kali очень просто:
Код: Скопировать в буфер обмена
sudo systemctl stop systemd-timesync

РАБОТА С NETFILTER​

Нам нужно разрешить установленные и связанные между собой соединения, блокировать некорректные и блокировать TCP-сегменты с неожиданными значениями TCP MSS. А также фильтровать ICMP-трафик и выключить пинги. Однако будь осторожен: не заблокируй случайно ICMP Type 3, который позволяет системе PMTUD избегать избыточной фрагментации.
Код: Скопировать в буфер обмена
Код:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP
sudo iptables -A INPUT -p icmp --icmp-type 0 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type 3 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type 11 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A INPUT -p icmp -j DROP
sudo iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP
Ограничение ICMP-трафика на твоем хосте может повлиять на корректную работу ICMP-сканирования. Имей это в виду, если будешь его использовать. Отслеживай типы ICMP-сообщений, которые фильтруются.

ОТКЛЮЧЕНИЕ ICMP REDIRECT​

Редиректы ICMP случаются при MITM-атаках. На сообщения ICMP redirect могут стриггериться системы IDS/IPS, что скомпрометирует действия атакующего. Давай выключим эти сообщения.
Код: Скопировать в буфер обмена
Код:
sudo sysctl -w net.ipv4.conf.all.accept_redirects=0
sudo sysctl -w net.ipv6.conf.all.accept_redirects=0

РАНДОМИЗАЦИЯ MAC-АДРЕСА​

Классика жанра: смена MAC-адреса на своем интерфейсе. Думаю, пояснять этот пункт нет необходимости.
Код: Скопировать в буфер обмена
Код:
sudo ifconfig eth0 down
sudo macchanger -r eth0
sudo ifconfig eth0 up
Также можно настроить NetworkManager так, чтобы при каждом подключении к сети MAC-адрес менялся на случайный.
Код: Скопировать в буфер обмена
echo -e "\n[connection]\nwifi.cloned-mac-address=random\n\n[connection]\nethernet.cloned-mac-address=random" | sudo tee -a /etc/NetworkManager/NetworkManager.conf

МИНИМИЗАЦИЯ ШУМА​

Пентестеры вынуждены в своей работе использовать сканеры (Netdiscover, Nmap и прочие), однако при запуске с установками по умолчанию эти сканеры создают очень большой шум в эфире. Мало того что повышается риск компрометации действий атакующего, так еще есть вероятность перегрузить сетевой коммутатор (особенно если мы говорим о быстром ARP-сканировании). Тревогу может забить и система Storm Control, которая управляет ограничениями лимитов UCAST/MCAST/BCAST-трафика.

Я нашел возможность минимизировать шум в эфире с помощью ограничения скорости на интерфейсе системы. Можно резать скорость на интерфейсе до 30 Кбит/с, выставив задержку 800 мс, чтобы тот же Netdiscover не вызывал перегрузку в эфире. Разумеется, такой фикс повлияет на скорость работы сканера и скорость передачи данных, но все это только ради избежания перегрузки. Значения я определил в своих наблюдениях, однако не стесняйся регулировать их при необходимости.

Для шейпинга я использовал утилиту tc (traffic control):
Код: Скопировать в буфер обмена
sudo tc qdisc add dev eth0 root tbf rate 30kbit burst 30kbit latency 800ms
Ниже скриншоты с работой сканеров Netdiscover и Nmap. Команды запуска были следующие:
Код: Скопировать в буфер обмена
Код:
sudo netdiscover -i eth0
sudo nmap -n 10.10.100.0/24
Обращай внимание на Outgoing — утилита nload показывает этот исходящий трафик (когда ты что‑то сканируешь — это исходящий трафик).

Работа Netdiscover без шейпинга трафика

Работа Netdiscover с шейпингом

Работа Nmap без шейпинга трафика

Работа Nmap с шейпингом


Если нужно удалить параметры ограничения трафика, то для этого есть вот такая команда:
Код: Скопировать в буфер обмена
sudo tc qdisc del dev eth0 root

F31​

Итак, я написал скрипт F31 для автоматизации всего процесса настройки. Скрипт полностью настраивается, и запускать его нужно со специальными аргументами.
sudo bash F31.sh
███████ ██████ ██
██ ██ ███
█████ █████ ██
██ ██ ██
██ ██████ ██
F31: Tool for hiding Kali Linux on the network
Author: Caster, @wearecaster, casterinfosec@gmail.com
Version: 1.0.0
For instructions and an example of how to use it, visit: https://github.com/wearecaster/F31
Usage: F31.sh --interface --new-hostname [--noise-reduction]
Options:
--interface Specify the network interface to hide
--new-hostname Specify the new hostname for the system
--noise-reduction Enable traffic shaping for noise reduction (optional)
Нажмите, чтобы раскрыть...
Здесь
  • --interface — указываешь сетевой интерфейс своего Kali Linux;
  • --new-hostname — новый хостнейм для своего Kali Linux;
  • --noise-reduction — активация того самого шейпинга трафика для минимизации шума в эфире. Параметр опциональный, включай его при необходимости.
Код: Скопировать в буфер обмена
sudo bash F31.sh --interface eth0 --new-hostname DESKTOP-HNA2AEVS --noise-reduction
На случай, если понадобится откатить все изменения, я написал скрипт reset.sh, ты сможешь его найти в этом репозитории:
Код: Скопировать в буфер обмена
sudo bash reset.sh --interface eth0 --old-hostname kali

ВЫВОДЫ​

Я рассказал об основных идеях по поводу минимизации шума в эфире и харденинга Kali Linux. Акцент всех этапов настройки Kali Linux сделан именно на сетевом уровне. Написать полноценный мануал по обходу SOC вряд ли возможно, тем более всё не уместить в одну статью. Думаю, в будущем ты можешь ждать новые части Kali Ashes.

Источник xakep.ru
Автор Cursed aka @cursedpkt
 
Сверху Снизу