29.08.2016 @ 11:50 Kali Rolling ISO of Doom, Too! ISO of DOOM, kali rolling В данной статье будет рассмотрено как сгенерировать саморазворачивающийся ISO-образ агента для создания VPN-туннеля до нашего Kali Rolling сервера из тестируемой подсети заказчика (back-connect + bridged VPN). Введение Когда-то мы предложили идею кастомизации Kali Linux продемонстрировав Kali Linux ISO of Doom. Наш сценарий охватывал установку пользовательской конфигурации Kali, которая содержала выбранные инструменты, необходимые для удаленной оценки уязвимостей. Настроенный ISO-образ Kali-агента будет проходить автоматическую установку на удаленном сервере клиента и автоматически подключаться к нашему OpenVPN-серверу через 443 TCP-порт. Соединение OpenVPN способно соединить удаленную и локальную сети, предоставляя нам полный доступ 3 уровня (модели OSI) к внутренней сети из нашего удаленного местоположения. Полученный собранный ISO-образ может быть отправлен клиенту, который развернет шаблон виртуальной машины, и вся установка будет происходить автоматически, без вмешательства — как изображено на рисунке ниже. Когда мы проверяли эти инструкции, мы заметили, что необходимо произвести некоторые изменения, которые необходимы для работы с Kali Rolling, они связаны с изменениями live-build версий, а также конфигураций с ответами для установщика. Итак, вот обновленный рецепт, чтобы получить Kali Rolling ISO of Doom. Настройка сервера OpenVPN Прежде чем мы начнем, мы создадим OpenVPN-сервер — который имеет публичный IP-адрес (a.b.c.d). Это тот сервер, на котором мы будем настраивать и генерировать ISO файл модифицированного агента. Следующие действия необходимы для настройки OpenVPN на удаленном сервере Kali: 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 # Этот файл должен быть засекречен 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-ключ, разрешаем перенаправление портов на сервере 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, нам нет необходимости создавать обратное подключение (back-connect) к нам (на сервер Kali). Начнем с установки живой сборки и изменения стандартной конфигурации, чтобы включить только необходимые нам пакеты и файлы конфигурации. 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<iframe width="560" height="315" src="https://www.youtube.com/embed/xoCZ07hwoZ4" frameborder="0" allowfullscreen></iframe> После этого, мы копируем ключи OpenSSL и OpenVPN и конфигурационные файлы в chroot overlay: 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 # Создание файла конфигурации клиента OpenVPN cat << EOF > kali-config/common/includes.chroot/etc/openvpn/client.conf client dev tap proto tcp remote a.b.c.d*443 # 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-файл агента. После того как файл будет готов, мы посылаем его для установки в локальной сети и создадим мост (bridged connect) к нашему серверу. ./build.sh --distribution kali-rolling —verbose Мост через «разрыв» сети от агента к серверу После того как соединение VPN устанавливается клиентом, мы имеем SSH-доступ к нашему внутреннему агенту Kali Linux и остается последняя потребность: соединить удаленную и локальную сети. На стороне сервера Мы создаем маршрут к удаленной сети на сервере OpenVPN: oot@kali:~# route add -net 192.168.101.0/24 gw 10.8.0.200 На стороне агента Мы переходим к включению IP Forwarding наряду с IP-masquerade на удаленном агенте 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 слой модели OSI, и мы можем использовать любые инструменты, которыми мы можем взаимодействовать с удаленной сетью. И, наконец, еще раз, небольшая дань Морбо: Источник Offensive Security Перевод на русский язык A888R A888R 11044 Penetration testing Читать дальше >>