• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Статья Kali Linux Server - Upgrade и автоматизация

Vander

CodebyTeam
Администратор
16.01.2016
1 199
3 250
#1
Приветствую, гостей и постояльцев форума! Эта статья будет посвящена созданию, скажем так, сервера, на борту ноутбука с ОС Kali Linux 2018.1, который будет готов включиться в нужный момент, выполнить все необходимые задачи, сохранить результаты работы в виде отчетов в личном облаке, ну и так, по мелочи.

1522870719860.png

Подключаться мы будем к нему с планшета/смартфона как по 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
1522870820261.png

Это запускает Ethtool после каждого подъёма интерфейса eth0, а также после его отключения, таким образом, WOL должен работать даже в случае, когда сеть отключена некорректно.

Проверяем, все работает, как и ожидалось:

1522870835169.png

У Kali Linux есть одна особенность, засыпание спустя 10 мин (теряется только SSH), хотя в Power Manager все настроено корректно. В общем, чтобы не терять сессию, можно поступить так:

Код:
systemctl mask sleep.target
Теперь можно, установить что-то для сканирования сетей и хостов, мой приоритет не консольный nmap, а web-ориентированное приложение на сервере.

1522870882446.png

Таковым является Rainmap Lite - адаптивное веб-приложение, которое позволяет пользователям запускать Nmap-сканирование с мобильных телефонов / планшетов / веб-браузеров.

Функционал и особенности:
  • Простота запуска Nmap-сканирования в несколько кликов.
  • Отзывчивый интерфейс работает плавно с вашего телефона / планшета.
  • Отчеты, отправленные по электронной почте, во всех форматах.
  • Просмотр отчетов из веб-браузера.
  • Расписание сканирования.
  • Десятки профилей сканирования на выбор.
  • Простота установки / настройки.
  • Возможность поделиться результатами с вашей командой.
Rainmap-lite не требует специальных сервисов (RabbitMQ, PostgreSQL, Celery, supervisor и т. Д.), Чтобы упростить установку на любом сервере, вам нужно установить приложение Django и добавить задачу опроса cron для настройки нового сервера сканирования.

Установка:

Код:
pip install django
pip install lxml
git clone https://github.com/cldrn/rainmap-lite
cd /home/Pentest/rainmap-lite/rainmap-lite
1522870923631.png

Внесем необходимые изменения в конфигурационный файл nmaper-cronjob.py:

Код:
nano nmaper-cronjob.py
1522870951494.png
  • Здесь необходимо указать данные ящика, с которого вы будете получать уведомления. Google не пропустил подобные отчеты, поэтому я поднял собственный почтовый сервер на iRedmail.
Это можно сделать, если нужно формировать отчеты сканирования, для пересылки Вам на почту, а так же меняем localhost на адрес, выданный DHCP – сервером, Kali.

Создаем схему базы данных:

Код:
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:

1522871083788.png

Теперь можно создать пользователя для Rainmap:

Код:
python manage.py createsuperuser
1522871111815.png

Запускаем Rainmap, т.к. по DHCP Kali имеет адрес 192.168.0.101 на нем, и поднимаем сервер:

Код:
python manage.py runserver 192.168.0.101:8080
1522871141774.png

Обратившись (и указав учетные данные) по указанному адресу к серверу, мы попадаем в главное меню сканера:

1522871183018.png

К его работе претензий нет, множество профилей сканирования, и отчеты на почту в таком виде:

1522871197702.png
Скачиваем их на свое облако, или смотрим онлайн:

1522871210488.png

Это, на мой взгляд, удобнее просмотра результатов, в консоли мобильного SSH – клиента.

1522871225001.png


Следующим шагом, будет установка облачного хранилища, выбор пал на 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;
1522871269791.png

Устанавливаем необходимые зависимости:

Код:
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
1522871304438.png

Скачиваем последнюю актуальную версию:

Код:
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
1522871677002.png

Теперь, можно проверять работу облака обратившись к нему по адресу:

Код:
http://yourIP/owncloud
1522871707328.png

Последнее, что необходимо сделать – это подключится к базе данных, введя имя пользователя, пароль и имя базы в веб интерфейсе облака. На этом, настройку облачного хранилища можно считать законченной.

1522871721860.png

Следующее, что можно сделать, это установить более продвинутый сканер уязвимостей:

Archery - это инструмент для анализа и управления уязвимостями, с открытым исходным кодом, который помогает разработчикам и пентестерам выполнять комплексное сканирование хостов и приложений.

Archery - использует популярные инструменты для анализа, и выполняет динамическое сканирование с использованием веб-приложений и поддерживает все приложения использующие selenium.

Selenium - это инструмент для автоматизированного управления браузерами. Наиболее популярной областью применения Selenium является автоматизация тестирования веб-приложений.

Разработчики могут также использовать инструмент для реализации своей среды DevOps CI / CD.

Принцип работы Archery:

1522871742854.png
Особенности 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
1522871818186.png

Загружаем статические файлы:

Код:
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
Здесь выбираем типы сканирования, виды сканеров и т.д:

1522871991949.png

Вся дополнительная информация о сканере Archery, а ее много и расписывать, смысла нет, доступна тут:
На этом настройка Archery закончена.

1522872029260.png

Следующее, что мне хотелось бы видеть на своем сервере – это SpiderFoot.

SpiderFoot - это инструмент с открытым исходным кодом для проведения полностью автоматизированной разведки.

Его цель - автоматизировать процесс сбора информации о заданной цели, которая может быть представлена IP-адресом, доменным именем, именем хоста или подсетью.

Он схож по функционалу с Maltego, но в качестве плюса, использует web – интерфейс для управления.

Установка:

Скачиваем SpiderFoot с официального сайта разработчиков:

1522872063720.png

Код:
tar zxvf spiderfoot-X.X.X-src.tar.gz
1522872091303.png

Запуск SpiderFoot:

Для того чтобы использовать SpiderFoot извне, необходимо в файле sf.py заменить localhost на адрес Kali выданный ей роутером:

Код:
nano sf.py
1522872120053.png

Затем пробросить порт на роутере и установить необходимые зависимости:

Код:
pip install –r requirements.txt
1522872153753.png

Код:
cd spiderfoot-X.X.X
ls –a
./sf.py
Обратившись по указанному адресу и порту, попадаем в панель управления SpiderFoot:

1522872183016.png

В отличие от именитого конкурента Maltego, SpiderFoot полностью бесплатный и намного более полезен, поскольку способен собрать информации больше на несколько порядков.

Некоторые сервисы требуют наличия API ключей (даются бесплатно при регистрации), об этих сервисах и о получении API ключей написано на странице документации:

Добавлю от себя, сканер реально полезный и удобный, отчеты подробные и очень информативные. Возможность обратиться к нему из любой точки, очень облегчает многие задачи.

1522872204618.png



1522872211324.png

Последнее, что мне нужно, это добавить к Kali VNC сервер, иногда он необходим:
Установка:

Код:
apt install tightvncserver
apt install autocutsel
1522872250636.png

Запуск:

Код:
vncserver: 1
При первом запуске vncserver запрашивается пароль (8 символов).

1522872281731.png

Мы можем проверить, работает ли VNC сервер, выдав команду netstat -tupln:

1522872299710.png

Подключаемся к VNC с любого VNC клиента, как с мобильного, так и стационарного:

Для подключения извне, как обычно нужно пробросить порт на роутере.

1522872440633.png
Еще, в довесок ко всему, мне нужен FTP сервер, тут все очень просто:
  • apt-get install vsftpd
По настройке и защите FTP сервера, в сети мануалов достаточно, заострять внимание на этом не буду.

Запустим FTP сервис:

Код:
systemctl start vsftpd.service
Затем попробуем присоединиться к нему любым FTP клиентом:

1522872551191.png

Все работает, как в пределах локальной сети, так и за её пределами.

Проброс портов выглядит примерно так:

1522872615958.png

Собственно, на этом все, все сервера работают, порты проброшены, а в закладках на планшете и телефоне установлены адреса сервисов, чтобы в любой момент к ним можно было подключиться.

Ну и написан пару строчный bash – скрипт, который запускает все сервисы разом. Это уже по мере необходимости.

Спасибо за внимание.

Специально для Codeby.net.
 

Night Hunter

Премиум
13.01.2018
185
138
#3
@Vander спасибо за статью, интересная и полезная. Вопрос, модули для OwnCloud, которые в маркете, для корпоративной версии,можно бесплатно достать?
 

HABb

New member
15.03.2017
3
1
#6
Статья хорошая, один вопрос: ownCloud стабильно работает?
 

Vander

CodebyTeam
Администратор
16.01.2016
1 199
3 250
#7
Статья хорошая, один вопрос: ownCloud стабильно работает?
Тоже думал, что будет с косяками, но реально стабильно все. Конечно, опасаюсь важные данные закидывать пока, но в целом довольно неплохо.
Сейчас с видеонаблюдением вопрос стал... motion не хочет работать, а zoneminder с зависимостями проблемы...
 

woolf1514

Well-known member
06.03.2017
159
148
#8
Отлично! Давно задался вопросом сервера на kali.. А тут столько нового, спасибо!
 
Вверх Снизу