Некоторое время назад мы представили идею кастомизации Kali Linux, продемонстрировав Kali Linux ISO of Doom. Наш сценарий включал установку пользовательской конфигурации Kali, включающей избранные инструменты для удалённой оценки уязвимостей. Пользовательский Kali ISO самостоятельно устанавливался на удалённого клиента и автоматически подключался к нашему серверу OpenVPN через TCP порт 443. Затем подключение OpenVPN создавало мост между удалённой и локальной сетями, обеспечивая нас полным доступом к внутренней сети с нашей удалённой машины. Потом получившийся пользовательский ISO образ можно было бы отправить клиенту, который просто подключил бы его к шаблону виртуальной машины, и установка прошла бы автоматически, без необходимости постороннего вмешательства, как показано на изображении ниже.
- Идея кастомизации Kali Linux
Вернувшись к этим инструкциями, мы заметили, что для работы с Kali Rolling в них необходимо внести некоторые правки, по причине изменений в версиях live-сборок и файлах предварительной конфигурации. Итак, представляем вам обновлённый рецепт создания Kali Rolling ISO of doom.
Подготовка сервера OpenVPN
Прежде чем мы начнём, нужно настроить сервер OpenVPN, который имеет публичный IP-адрес (a.b.c.d). Именно на этом сервере мы будем собирать и генерировать пользовательский ISO файл. На удалённом сервере Kali создайте и настройте OpenVPN следующим образом:
apt-get install openvpn cd /root/ cp -rf /usr/share/easy-rsa/ test cd test cp keys/{server.crt,server.key,dh2048.pem,ca.crt} /etc/openvpn/ cd /etc/openvpn cat << EOF > server.conf tls-server port 443 proto tcp dev tap ca ca.crt cert server.crt key server.key # This file should be kept secret dh dh2048.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" client-config-dir static keepalive 10 120 comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3 EOF mkdir -p static cat << EOF > static/client ifconfig-push 10.8.0.200 255.255.255.0 EOF
Далее, мы создадим SSH ключи, включим IP-маршрутизацию на VPN сервере и настроим iptables. После завершения всего этого, мы запустим сервер OpenVPN.
ssh-keygen openvpn --cd /etc/openvpn --config /etc/openvpn/server.conf echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Сборка пользовательского ISO образа Kali Rolling
Теперь мы создадим пользовательский ISO образ, который будет автоматически устанавливать себя и подключаться к нашей конфигурации OpenVPN. Кроме начала установки с помощью ISO образа, этому агенту больше ничего не нужно, чтобы подключиться к нам. Мы начнём с установки требуемых для live-сборки пакетов и модификации стандартной конфигурации, чтобы включить только нужные нам инструменты и файлы настроек.
apt-get install git live-build cdebootstrap git clone git://git.kali.org/live-build-config.git build cd build
Затем мы определяем пакеты, которые хотим установить в агентский ISO образ. В данном случае, это минимальный набор инструментов, а так же необходимые демоны SSH и OpenVPN:
echo nmap > kali-config/variant-default/package-lists/kali.list.chroot echo openssh-server >> kali-config/variant-default/package-lists/kali.list.chroot echo openvpn >> kali-config/variant-default/package-lists/kali.list.chroot echo metasploit-framework >> kali-config/variant-default/package-lists/kali.list.chroot
После завершения операции, мы копируем ключи и конфигурационные файлы в chroot-окружение через OpenSSH и OpenVPN:
mkdir -p kali-config/common/includes.chroot/etc/openvpn cp /root/test/keys/{ca.crt,client.crt,client.key} kali-config/common/includes.chroot/etc/openvpn/ mkdir -p kali-config/common/includes.chroot/root/.ssh/ cp /root/.ssh/id_rsa.pub kali-config/common/includes.chroot/root/.ssh/authorized_keys # Create the OpenVPN client configuration file cat << EOF > kali-config/common/includes.chroot/etc/openvpn/client.conf client dev tap proto tcp remote a.b.c.d 443 # remote server IP resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key ns-cert-type server comp-lzo verb 3 EOF
Мы представляем новую опцию загрузки, которая обработает файл предварительных настроек и сделает все, что нам нужно без взаимодействия с пользователем:
cat << EOF > kali-config/common/includes.binary/isolinux/install.cfg label install menu label ^Install linux /install/vmlinuz initrd /install/initrd.gz append vga=788 -- quiet file=/cdrom/install/preseed.cfg locale=en_US keymap=us hostname=kali domain=local.lan EOF cat << EOF > kali-config/common/includes.binary/isolinux/isolinux.cfg include menu.cfg ui vesamenu.c32 default install prompt 0 timeout 5 EOF
И создаём несколько хуков, чтобы сервисы SSH и OpenVPN запускались во время загрузки:
echo 'update-rc.d -f ssh enable' > kali-config/common/hooks/01-start-ssh.chroot echo 'update-rc.d -f openvpn enable' > kali-config/common/hooks/01-start-openvpn.chroot chmod +x kali-config/common/hooks/*.chroot
Ну и наконец, мы включает файл предварительных настроек, чтобы пропустить обычные запросы, выдаваемые в процессе установки.
mkdir -p kali-config/common/includes.installer wget https://www.kali.org/dojo/preseed.cfg -O ./kali-config/common/includes.installer/preseed.cfg
Теперь остаётся только сгенерировать агентский ISO файл. Как только файл будет готов, мы отправим его на установку в локальную сеть, к которой хотим проложить мост.
./build.sh --distribution kali-rolling --verbose
Организация моста между сетями
После того, как соединение с клиентом через VPN будет установлено, мы можем выполнить последнее требование с помощью SSH: связать удалённую и локальную сеть мостом.
На сервере
Мы включаем маршрутизацию к удалённой сети на сервере OpenVPN:
root@kali:~# route add -net 192.168.101.0/24 gw 10.8.0.200
На агентской Kali
Мы активируем IP маршрутизацию, а так же «маскарад» сетевых адресов на удалённом агенте Kali:
root@kali:~# echo 1 > /proc/sys/net/ipv4/ip_forward root@kali:~# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Теперь у нас есть полный доступ к удалённой сети через 3 слой, и мы можем использоваться любые инструменты для взаимодействия с ней.
Источник www.offensive-security.com