Приветствую, гостей и постояльцев форума! Эта статья будет посвящена созданию, скажем так, сервера, на борту ноутбука с ОС Kali Linux 2018.1, который будет готов включиться в нужный момент, выполнить все необходимые задачи, сохранить результаты работы в виде отчетов в личном облаке, ну и так, по мелочи.
Подключаться мы будем к нему с планшета/смартфона как по SSH так и к web-интерфейсам нужных инструментов.
В руки мне попался ноутбук с подходящими характеристиками:
Система, установленная c нуля – Kali Linux 2018.1 Full Update.
Для начала, я хочу настроить WakeOnLAN чтобы включать Kali по расписанию cron или командой, подключившись к домашней Raspberry, которая находится в одной сети с Kali.
Для этого будет использоваться утилита Ethtool.
После установки и аппаратной активации Wake On LAN также необходимо активировать в программном обеспечении.
Заменим eth0 на имя вашего сетевого интерфейса:
Это можно автоматизировать с помощью записи в /etc/network/interfaces:
Это запускает Ethtool после каждого подъёма интерфейса eth0, а также после его отключения, таким образом, WOL должен работать даже в случае, когда сеть отключена некорректно.
Проверяем, все работает, как и ожидалось:
У Kali Linux есть одна особенность, засыпание спустя 10 мин (теряется только SSH), хотя в Power Manager все настроено корректно. В общем, чтобы не терять сессию, можно поступить так:
Теперь можно, установить что-то для сканирования сетей и хостов, мой приоритет не консольный nmap, а web-ориентированное приложение на сервере.
Таковым является Rainmap Lite - адаптивное веб-приложение, которое позволяет пользователям запускать Nmap-сканирование с мобильных телефонов / планшетов / веб-браузеров.
Функционал и особенности:
Установка:
Внесем необходимые изменения в конфигурационный файл nmaper-cronjob.py:
Создаем схему базы данных:
Подгружаем дефолтные профили сканирования:
Редактируем cron для периодического опроса:
Добавляем:
Теперь необходимо добавить свой роутер (у меня статический IP) в доверенные хосты для Django, иначе не получится заходить с произвольного устройства на web интерфейс сканера.
И добавляем нужные хосты в Allowed Hosts:
Теперь можно создать пользователя для Rainmap:
Запускаем Rainmap, т.к. по DHCP Kali имеет адрес 192.168.0.101 на нем, и поднимаем сервер:
Обратившись (и указав учетные данные) по указанному адресу к серверу, мы попадаем в главное меню сканера:
К его работе претензий нет, множество профилей сканирования, и отчеты на почту в таком виде:
Скачиваем их на свое облако, или смотрим онлайн:
Это, на мой взгляд, удобнее просмотра результатов, в консоли мобильного SSH – клиента.
Следующим шагом, будет установка облачного хранилища, выбор пал на ownCloud.
ownCloud — это свободное и открытое веб-приложение для синхронизации данных, общего доступа к файлам и удалённого хранения документов в «облаке».
Создаем базу данных и пользователя, для нашего будущего облака:
Устанавливаем необходимые зависимости:
Скачиваем последнюю актуальную версию:
Распаковываем и меняем разрешения:
После установки, появится папка owncloud, переместим ее:
Конфигурируем Apache:
Создаем новый файл конфигурации:
И копируем в него следующие строки:
Alias /owncloud "/var/www/html/owncloud/"
<Directory /var/www/html/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/owncloud
SetEnv HTTP_HOME /var/www/html/owncloud
</Directory>
Создаем симлинк:
Дополнительно конфигурируем Apache, следующими командами:
Теперь, можно проверять работу облака обратившись к нему по адресу:
Последнее, что необходимо сделать – это подключится к базе данных, введя имя пользователя, пароль и имя базы в веб интерфейсе облака. На этом, настройку облачного хранилища можно считать законченной.
Следующее, что можно сделать, это установить более продвинутый сканер уязвимостей:
Archery - это инструмент для анализа и управления уязвимостями, с открытым исходным кодом, который помогает разработчикам и пентестерам выполнять комплексное сканирование хостов и приложений.
Archery - использует популярные инструменты для анализа, и выполняет динамическое сканирование с использованием веб-приложений и поддерживает все приложения использующие selenium.
Selenium - это инструмент для автоматизированного управления браузерами. Наиболее популярной областью применения Selenium является автоматизация тестирования веб-приложений.
Разработчики могут также использовать инструмент для реализации своей среды DevOps CI / CD.
Принцип работы Archery:
Особенности Archery:
Для начала, устанавливаем OWASP ZAP 2.7.0.
Open Web Application Security Project (OWASP) — это открытый проект обеспечения безопасности веб-приложений.
OWASP ZAP - это простой в применении встроенный инструмент тестирования проникновений, служащий для нахождения уязвимостей веб-приложений. Он разработан для использования людьми с различным опытом в сфере безопасности и является эталоном для разработчиков и тестировщиков функционала, которые не имеют опыта в тестировании проникновений.
После окончания установки клонируем Archery с Github:
Загружаем статические файлы:
Макетирование всех моделей приложений сетевых сканеров:
Макетирование всех моделей приложений веб-сканеров:
Макетирование всех моделей приложений:
Перенос всех данных:
Теперь вам нужно создать учетные данные приложения:
Запускаем Archery:
Здесь выбираем типы сканирования, виды сканеров и т.д:
Вся дополнительная информация о сканере Archery, а ее много и расписывать, смысла нет, доступна тут:
На этом настройка Archery закончена.
Следующее, что мне хотелось бы видеть на своем сервере – это SpiderFoot.
SpiderFoot - это инструмент с открытым исходным кодом для проведения полностью автоматизированной разведки.
Его цель - автоматизировать процесс сбора информации о заданной цели, которая может быть представлена IP-адресом, доменным именем, именем хоста или подсетью.
Он схож по функционалу с Maltego, но в качестве плюса, использует web – интерфейс для управления.
Установка:
Скачиваем SpiderFoot с официального сайта разработчиков:
Запуск SpiderFoot:
Для того чтобы использовать SpiderFoot извне, необходимо в файле sf.py заменить localhost на адрес Kali выданный ей роутером:
Затем пробросить порт на роутере и установить необходимые зависимости:
Обратившись по указанному адресу и порту, попадаем в панель управления SpiderFoot:
В отличие от именитого конкурента Maltego, SpiderFoot полностью бесплатный и намного более полезен, поскольку способен собрать информации больше на несколько порядков.
Некоторые сервисы требуют наличия API ключей (даются бесплатно при регистрации), об этих сервисах и о получении API ключей написано на странице документации:
Последнее, что мне нужно, это добавить к Kali VNC сервер, иногда он необходим:
Установка:
Запуск:
При первом запуске vncserver запрашивается пароль (8 символов).
Мы можем проверить, работает ли VNC сервер, выдав команду netstat -tupln:
Подключаемся к VNC с любого VNC клиента, как с мобильного, так и стационарного:
Для подключения извне, как обычно нужно пробросить порт на роутере.
Еще, в довесок ко всему, мне нужен FTP сервер, тут все очень просто:
Запустим FTP сервис:
Затем попробуем присоединиться к нему любым FTP клиентом:
Все работает, как в пределах локальной сети, так и за её пределами.
Проброс портов выглядит примерно так:
Собственно, на этом все, все сервера работают, порты проброшены, а в закладках на планшете и телефоне установлены адреса сервисов, чтобы в любой момент к ним можно было подключиться.
Ну и написан пару строчный bash – скрипт, который запускает все сервисы разом. Это уже по мере необходимости.
Спасибо за внимание.
Специально для Codeby.net.
Подключаться мы будем к нему с планшета/смартфона как по SSH так и к web-интерфейсам нужных инструментов.
В руки мне попался ноутбук с подходящими характеристиками:
- 8 GB RAM
- 500 GB HDD
- Intel Core i5
- 2 GB Video Card (Но брутить на ней я не собираюсь, так, что этот параметр роли для меня не играет.)
Система, установленная c нуля – Kali Linux 2018.1 Full Update.
Для начала, я хочу настроить WakeOnLAN чтобы включать Kali по расписанию cron или командой, подключившись к домашней Raspberry, которая находится в одной сети с Kali.
Для этого будет использоваться утилита Ethtool.
Код:
apt install ethtool
После установки и аппаратной активации Wake On LAN также необходимо активировать в программном обеспечении.
Заменим eth0 на имя вашего сетевого интерфейса:
Код:
ethtool -s eth0 wol g
Это можно автоматизировать с помощью записи в /etc/network/interfaces:
Код:
iface eth0 inet dhcp
post-up /sbin/ethtool -s $IFACE wol g
post-down /sbin/ethtool -s $IFACE wol g
Это запускает Ethtool после каждого подъёма интерфейса eth0, а также после его отключения, таким образом, WOL должен работать даже в случае, когда сеть отключена некорректно.
Проверяем, все работает, как и ожидалось:
У Kali Linux есть одна особенность, засыпание спустя 10 мин (теряется только SSH), хотя в Power Manager все настроено корректно. В общем, чтобы не терять сессию, можно поступить так:
Код:
systemctl mask sleep.target
Теперь можно, установить что-то для сканирования сетей и хостов, мой приоритет не консольный nmap, а web-ориентированное приложение на сервере.
Таковым является Rainmap Lite - адаптивное веб-приложение, которое позволяет пользователям запускать Nmap-сканирование с мобильных телефонов / планшетов / веб-браузеров.
Функционал и особенности:
- Простота запуска Nmap-сканирования в несколько кликов.
- Отзывчивый интерфейс работает плавно с вашего телефона / планшета.
- Отчеты, отправленные по электронной почте, во всех форматах.
- Просмотр отчетов из веб-браузера.
- Расписание сканирования.
- Десятки профилей сканирования на выбор.
- Простота установки / настройки.
- Возможность поделиться результатами с вашей командой.
Установка:
Код:
pip install django
pip install lxml
git clone https://github.com/cldrn/rainmap-lite
cd /home/Pentest/rainmap-lite/rainmap-lite
Внесем необходимые изменения в конфигурационный файл nmaper-cronjob.py:
Код:
nano nmaper-cronjob.py
- Здесь необходимо указать данные ящика, с которого вы будете получать уведомления. Google не пропустил подобные отчеты, поэтому я поднял собственный почтовый сервер на iRedmail.
Создаем схему базы данных:
Код:
python manage.py migrate
Подгружаем дефолтные профили сканирования:
Код:
python manage.py loaddata nmapprofiles
Редактируем cron для периодического опроса:
Код:
crontab –e
Добавляем:
Код:
*/5 * * * * cd <App path> && /usr/bin/python nmaper-cronjob.py >> /var/log/nmaper.log 2>&1
Теперь необходимо добавить свой роутер (у меня статический IP) в доверенные хосты для Django, иначе не получится заходить с произвольного устройства на web интерфейс сканера.
Код:
nano /usr/local/lib/python2.7/dist-packades/jango/http/request.py
И добавляем нужные хосты в Allowed Hosts:
Теперь можно создать пользователя для Rainmap:
Код:
python manage.py createsuperuser
Запускаем Rainmap, т.к. по DHCP Kali имеет адрес 192.168.0.101 на нем, и поднимаем сервер:
Код:
python manage.py runserver 192.168.0.101:8080
Обратившись (и указав учетные данные) по указанному адресу к серверу, мы попадаем в главное меню сканера:
К его работе претензий нет, множество профилей сканирования, и отчеты на почту в таком виде:
Скачиваем их на свое облако, или смотрим онлайн:
Это, на мой взгляд, удобнее просмотра результатов, в консоли мобильного SSH – клиента.
Следующим шагом, будет установка облачного хранилища, выбор пал на ownCloud.
ownCloud — это свободное и открытое веб-приложение для синхронизации данных, общего доступа к файлам и удалённого хранения документов в «облаке».
Создаем базу данных и пользователя, для нашего будущего облака:
Код:
mysql -u root –p
create database owncloud;
create user owncloud@localhost identified by 'passwd';
grant all privileges on owncloud.* to owncloud@localhost identified by 'passwd';
flush privileges;
exit;
Устанавливаем необходимые зависимости:
Код:
apt install -y apache2 mariadb-server libapache2-mod-php7.0 php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-intl php7.0-mcrypt php-imagick php7.0-zip php7.0-xml php7.0-mbstring
Скачиваем последнюю актуальную версию:
Код:
cd /tmp
wget https://download.owncloud.org/community/owncloud-10.0.7.tar.bz2
Распаковываем и меняем разрешения:
Код:
tar -xvf owncloud-10.0.2.tar.bz2
chown -R www-data:www-data owncloud
После установки, появится папка owncloud, переместим ее:
Код:
mv owncloud /var/www/html/
Конфигурируем Apache:
Создаем новый файл конфигурации:
Код:
nano /etc/apache2/sites-available/owncloud.conf
И копируем в него следующие строки:
Alias /owncloud "/var/www/html/owncloud/"
<Directory /var/www/html/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/owncloud
SetEnv HTTP_HOME /var/www/html/owncloud
</Directory>
Создаем симлинк:
Код:
ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf
Дополнительно конфигурируем Apache, следующими командами:
Код:
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
Теперь, можно проверять работу облака обратившись к нему по адресу:
Код:
http://yourIP/owncloud
Последнее, что необходимо сделать – это подключится к базе данных, введя имя пользователя, пароль и имя базы в веб интерфейсе облака. На этом, настройку облачного хранилища можно считать законченной.
Следующее, что можно сделать, это установить более продвинутый сканер уязвимостей:
Archery - это инструмент для анализа и управления уязвимостями, с открытым исходным кодом, который помогает разработчикам и пентестерам выполнять комплексное сканирование хостов и приложений.
Archery - использует популярные инструменты для анализа, и выполняет динамическое сканирование с использованием веб-приложений и поддерживает все приложения использующие selenium.
Selenium - это инструмент для автоматизированного управления браузерами. Наиболее популярной областью применения Selenium является автоматизация тестирования веб-приложений.
Разработчики могут также использовать инструмент для реализации своей среды DevOps CI / CD.
Принцип работы Archery:
Особенности Archery:
- Сканирование уязвимостей в сети с помощью инструментов open-source.
- Корреляция и поддержка со всеми необработанными данными сканирования, демонстрация их в консолидированном виде.
- Выполнение проверок подлинности в Интернете.
- Выполнение сканирования веб-приложений с использованием selenium.
- Управление уязвимостями.
- Включение REST API для разработчиков с целью выполнения сканирования и управления уязвимостями.
- Использование DevOps командами, для управления уязвимостями.
- Python 2.7
- OpenVas 8
- OWASP ZAP 2.7.0
- Selenium Python Firefox Web driver
Для начала, устанавливаем OWASP ZAP 2.7.0.
Open Web Application Security Project (OWASP) — это открытый проект обеспечения безопасности веб-приложений.
OWASP ZAP - это простой в применении встроенный инструмент тестирования проникновений, служащий для нахождения уязвимостей веб-приложений. Он разработан для использования людьми с различным опытом в сфере безопасности и является эталоном для разработчиков и тестировщиков функционала, которые не имеют опыта в тестировании проникновений.
Код:
wget https://github.com/zaproxy/zaproxy/wiki/Downloads
chmod +x ZAP_2_7_0_unix.sh
./ZAP_2_7_0_unix.sh
После окончания установки клонируем Archery с Github:
Код:
git clone https://github.com/archerysec/archerysec
cd /archerysec
pip install -r requirements.txt
Загружаем статические файлы:
Код:
python manage.py collectstatic
Макетирование всех моделей приложений сетевых сканеров:
Код:
python manage.py makemigrations networkscanners
Макетирование всех моделей приложений веб-сканеров:
Код:
python manage.py makemigrations webscanners
Макетирование всех моделей приложений:
Код:
python manage.py makemigrations projects
Перенос всех данных:
Код:
python manage.py migrate
Теперь вам нужно создать учетные данные приложения:
Код:
python manage.py createsuperuser
Запускаем Archery:
Код:
python manage.py runserver 192.168.0.101:8088
Здесь выбираем типы сканирования, виды сканеров и т.д:
Вся дополнительная информация о сканере Archery, а ее много и расписывать, смысла нет, доступна тут:
На этом настройка Archery закончена.
Следующее, что мне хотелось бы видеть на своем сервере – это SpiderFoot.
SpiderFoot - это инструмент с открытым исходным кодом для проведения полностью автоматизированной разведки.
Его цель - автоматизировать процесс сбора информации о заданной цели, которая может быть представлена IP-адресом, доменным именем, именем хоста или подсетью.
Он схож по функционалу с Maltego, но в качестве плюса, использует web – интерфейс для управления.
Установка:
Скачиваем SpiderFoot с официального сайта разработчиков:
Код:
tar zxvf spiderfoot-X.X.X-src.tar.gz
Запуск SpiderFoot:
Для того чтобы использовать SpiderFoot извне, необходимо в файле sf.py заменить localhost на адрес Kali выданный ей роутером:
Код:
nano sf.py
Затем пробросить порт на роутере и установить необходимые зависимости:
Код:
pip install –r requirements.txt
Код:
cd spiderfoot-X.X.X
ls –a
./sf.py
Обратившись по указанному адресу и порту, попадаем в панель управления SpiderFoot:
В отличие от именитого конкурента Maltego, SpiderFoot полностью бесплатный и намного более полезен, поскольку способен собрать информации больше на несколько порядков.
Некоторые сервисы требуют наличия API ключей (даются бесплатно при регистрации), об этих сервисах и о получении API ключей написано на странице документации:
-
Ссылка скрыта от гостей
Последнее, что мне нужно, это добавить к Kali VNC сервер, иногда он необходим:
Установка:
Код:
apt install tightvncserver
apt install autocutsel
Запуск:
Код:
vncserver: 1
При первом запуске vncserver запрашивается пароль (8 символов).
Мы можем проверить, работает ли VNC сервер, выдав команду netstat -tupln:
Подключаемся к VNC с любого VNC клиента, как с мобильного, так и стационарного:
Для подключения извне, как обычно нужно пробросить порт на роутере.
Еще, в довесок ко всему, мне нужен FTP сервер, тут все очень просто:
- apt-get install vsftpd
Запустим FTP сервис:
Код:
systemctl start vsftpd.service
Затем попробуем присоединиться к нему любым FTP клиентом:
Все работает, как в пределах локальной сети, так и за её пределами.
Проброс портов выглядит примерно так:
Собственно, на этом все, все сервера работают, порты проброшены, а в закладках на планшете и телефоне установлены адреса сервисов, чтобы в любой момент к ним можно было подключиться.
Ну и написан пару строчный bash – скрипт, который запускает все сервисы разом. Это уже по мере необходимости.
Спасибо за внимание.
Специально для Codeby.net.