• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Deep Exploit - Metasploit на Arch Linux ARM. Работа с реальным сервером

Приветствую всех, жителей и гостей форума, в одной из моих предыдущих статей, а именно тут.

1529610894308.png


В предыдущей статье я показал, как установить и довольно успешно пользоваться замечательным инструментом Deep Exploit, он включает в себя машинное обучение, нейросеть TensorFlow и ну и кучу всего разного, в статье все описано, рекомендую прочесть.

В самом конце, статьи Deep Exploit успешно применял эксплойты на виртуальной машине Metasploitable 2, сессии открывались, отчеты формировались (правда, не совсем, так как ожидалось, но я понял почему...)

1529610958233.png


Прошло время, нейронная сеть обучалась, и стала очень умной (sarcasm), в общем, на нескольких машинах она успела потренироваться. А мне захотелось посмотреть, как она справится с реальным сервером, в меру обновленным, со следующим списком сервисов:
  • SSH
  • SQL
  • Zoneminder
  • FTP
  • VNC
  • Apache
Помимо этого, сервер Metasploit будет располагаться на совершенно независимом сервере, под управлением Black Arch Linux ARM.

Только атакуемый сервер будет находиться в одной сети с нейросетью, он мой домашний.

Сервер с Deep Exploit подготовлен, осталось немного (совсем), расположить Metasploit на Black Arch ARM.

1529611008205.png


Установка:

Обновим и синхронизируем пакеты:

Код:
pacman –Syyu

1529611042230.png


Устанавливаем Postgresql:

Код:
pacman -S postgresql

1529611077575.png


Устанавливаем необходимые в дальнейшем компоненты:
  • wget
  • git gcc
  • patch
  • curl
  • zlib
  • readline
  • autoconf
  • automake
  • diffutils
  • make
  • libtool
  • bison
  • subversion
  • gnupg
  • python
  • python2-pysqlite-legacy
  • gtk2
  • pygtk
  • libpcap j
  • dk7-openjdk
Выполняем установку Ruby, используя RVM:

Код:
curl -L https://get.rvm.io | bash -s stable

1529611113829.png


Скачиваем Metasploit с Github:

Код:
git clone https://github.com/rapid7/metasploit-framework.git
cd Metasploit-framework

1529611141140.png


Код:
bundle install

1529611161483.png


Настройка PostgreSQL:

Сначала необходимо установить нужную локализацию для базы данных.

Код:
nano /etc/locale.gen

Раскомментируем строку с нужной нам - en_US.utf8.

1529611205582.png


Сгенерируем новые локализации:

Код:
locale-gen

1529611232605.png


Конфигурируем базу данных:

Код:
chown -R postgres:postgres /var/lib/postgres/
su postgresinitdb –locale en_US.UTF-8 -D ‘/var/lib/postgres/data’exit
systemctl start postgresql
systemctl enable postgresql

1529611270382.png


Создаем пользователя и базу данных для Metasploit:

Код:
su postgres
createuser msf -P -S -R -D
createdb -O msf msf

1529611300666.png


Запускаем Metasploit и коннектимся к созданной базе данных:

Код:
db_connect msf@msf
db_rebuild_cache
db_status

1529611332630.png


Metasploit нуждается в команде db_connect при каждом запуске msfconsole. Чтобы избежать этих манипуляций при каждом запуске, просто используйте этот alias в вашем файле автозапуска, например, ~/.bashrc:
  • alias msfconsole="msfconsole --quiet -x \"db_connect ${USER}@msf\""
Где опция quiet отключит баннер MSF при запуске, а команда -x произведёт операцию прямо после запуска.

Теперь, когда все готово к тестированию нейросети, инициируем запуск RPC Server:

Код:
load msgrpc ServerHost=192.168.0.104 ServerPort=55553 User=test Pass=test1234

1529611409644.png


Все работает корректно, можно запустить сканирование Deep Exploit моего сервера базирующегося на Raspbian.

Меняем настройки Deep Exploit в файле config.ini.

Код:
nano config.ini

1529611444691.png


И запускаем сканирование:

Код:
python DeepExploit.py -t 192.168.0.100 -m train

1529611477312.png


К сожалению, (но вообще норм) Deep Exploit ничего не смог сделать с моим сервером, много эксплоитов было перебрано, но безрезультатно.

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

Для этого необходимо, после завершения сканирования запустить скрипт CreateReport.py, перед этим убедившись в наличии CSV файлов в директории /report Deep Exploit.

Код:
python CreateReport.py

1529611515157.png


И откроем его в браузере:

1529611532972.png



Используя эти данные, можно легко проэксплуатировать хост, надеюсь, репорт в пояснениях не нуждается.

Итог:
  • Arch Linux – занимательно и познавательно. На все дополнительные вопросы вы найдете ответы в Arch Wiki.
  • Эксплойты находящиеся в базе Metasploit не сработали на реальном сервере, это конечно зависит от хозяина, но все же.
  • Deep Exploit совершает меньше ошибок подбирая модули непосредственно под ОС, а не как в начале, учимся.
  • Репорты реально крутые.
  • Deep Exploit облегчил прохождение CTF, но это не метод))
На этом все, спасибо за внимание, через пару дней будет статья о другом инструменте использующем Машинное Обучение.

До новых встреч. Специально для Codeby.net.
 

woolf1514

Green Team
06.03.2017
181
191
BIT
1
Vander, здоровья тебе! Обожаю твой контент! Привет завтрашний недосып)
 
  • Нравится
Реакции: Vander

u7u

Green Team
13.09.2017
77
32
BIT
0
Спасибо за статью. Очень понравилось как Вы подаёте материал. У меня вопрос: а для чего Вы поднимаете Metasploit на отдельной машине?
 
T

The ROOT

Спасибо за статью. Очень понравилось как Вы подаёте материал. У меня вопрос: а для чего Вы поднимаете Metasploit на отдельной машине?
Тоже этого не понял, всё прекрасно работает на одной машине
 

Vander

CodebyTeam
Gold Team
16.01.2016
1 420
4 347
BIT
0
Вопрос безопасности или необходимости для функционирования?
Если со стороны практического использования - то, безопасности. А на тестовом стенде, я поднял на удаленной машине, т.к. посмотрел в требованиях у него, 8 ГБ минимум RAM, вот и подумал, что не вывезет мой ноут с 6-ю, всю связку.
 
  • Нравится
Реакции: keshavredina и u7u
T

The ROOT

Если со стороны практического использования - то, безопасности. А на тестовом стенде, я поднял на удаленной машине, т.к. посмотрел в требованиях у него, 8 ГБ минимум RAM, вот и подумал, что не вывезет мой ноут с 6-ю, всю связку.
Интересно... Видимо 8ГБ нужно для комфортной работы, а вообще на VDS с 2 ГБ всё поднялось и работает
 
  • Нравится
Реакции: u7u
T

The ROOT

Всё точно так же, только вписывай IP своей машины
 

u7u

Green Team
13.09.2017
77
32
BIT
0
Всё точно так же, только вписывай IP своей машины
Получаю вот это:
load msgrpc ServerHost=192.168.10.144 ServerPort=55553 User=test Pass=test1234
[*] MSGRPC Service: 192.168.10.144:55553
[*] MSGRPC Username: test
[*] MSGRPC Password: test1234
[*] Successfully loaded plugin: msgrpc
#<Thread:0x000055a596c237d8@/usr/share/metasploit-framework/plugins/msgrpc.rb:70 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
11: from /usr/share/metasploit-framework/plugins/msgrpc.rb:70:in `block in initialize'
10: from /usr/share/metasploit-framework/plugins/msgrpc.rb:94:in `run'
9: from /usr/share/metasploit-framework/lib/msf/core/rpc/v10/service.rb:61:in `start'
8: from /usr/share/metasploit-framework/lib/rex/service_manager.rb:25:in `start'
7: from /usr/share/metasploit-framework/lib/rex/service_manager.rb:81:in `start'
6: from /usr/share/metasploit-framework/lib/rex/proto/http/server.rb:145:in `start'
5: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/tcp_server.rb:29:in `create'
4: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/tcp_server.rb:39:in `create_param'
3: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket.rb:49:in `create_param'
2: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/comm/local.rb:33:in `create'
1: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/comm/local.rb:174:in `create_by_type'
/usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/comm/local.rb:187:in `rescue in create_by_type': The address is already in use or unavailable: (192.168.10.144:55553). (Rex::BindFailed)
 
T

The ROOT

Получаю вот это:
load msgrpc ServerHost=192.168.10.144 ServerPort=55553 User=test Pass=test1234
[*] MSGRPC Service: 192.168.10.144:55553
[*] MSGRPC Username: test
[*] MSGRPC Password: test1234
[*] Successfully loaded plugin: msgrpc
#<Thread:0x000055a596c237d8@/usr/share/metasploit-framework/plugins/msgrpc.rb:70 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
11: from /usr/share/metasploit-framework/plugins/msgrpc.rb:70:in `block in initialize'
10: from /usr/share/metasploit-framework/plugins/msgrpc.rb:94:in `run'
9: from /usr/share/metasploit-framework/lib/msf/core/rpc/v10/service.rb:61:in `start'
8: from /usr/share/metasploit-framework/lib/rex/service_manager.rb:25:in `start'
7: from /usr/share/metasploit-framework/lib/rex/service_manager.rb:81:in `start'
6: from /usr/share/metasploit-framework/lib/rex/proto/http/server.rb:145:in `start'
5: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/tcp_server.rb:29:in `create'
4: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/tcp_server.rb:39:in `create_param'
3: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket.rb:49:in `create_param'
2: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/comm/local.rb:33:in `create'
1: from /usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/comm/local.rb:174:in `create_by_type'
/usr/share/metasploit-framework/vendor/bundle/ruby/2.5.0/gems/rex-socket-0.1.14/lib/rex/socket/comm/local.rb:187:in `rescue in create_by_type': The address is already in use or unavailable: (192.168.10.144:55553). (Rex::BindFailed)
load msgrpc ServerHost=ТУТ_IP_ТВОЕГО_СЕРВЕРА ServerPort=55553 User=test Pass=test1234
В ошибке написано же всё:
The address is already in use or unavailable: (192.168.10.144:55553
 

u7u

Green Team
13.09.2017
77
32
BIT
0
load msgrpc ServerHost=ТУТ_IP_ТВОЕГО_СЕРВЕРА ServerPort=55553 User=test Pass=test1234
В ошибке написано же всё:
The address is already in use or unavailable: (192.168.10.144:55553
Спасибо за терпение и участие. Мне кажется осталось немного... :)
Что здесь не так?
[Common]
server_host : 192.168.10.144
server_port : 55553
msgrpc_user : test
msgrpc_pass : test1234
timeout : 10
max_attempt : 5
save_path : trained_data
save_file : DeepExploit.ckpt
data_path : data

[Utility]
http_timeout : 3.0

[Spider]
output_base_path : crawl_result
output_filename : _crawl_result.json
delay_time : 3.0

[Plugin]
plugin_base : deep_plugin
enable_plugin : classifier_signature

[State]
os_type : linux@windows@unix@mac@unknown
services : vsftpd@ssh@telnet@postfix@bind@apache@rpc@samba@java@proftpd@mysql@postgresql@vnc@irc@jetty@tomcat@ldap@nginx@php@phpmyadmin@wordpress@joomla@drupal@sugarcrm@webmin@moodle@dav$

[A3C]
train_worker_num : 20
train_max_num : 10000
train_max_steps : 20
train_tmax : 5
test_worker_num : 1

[Metasploit]
lhost : 192.168.10.144
lport : 4444
proxy_host : 127.0.0.1
proxy_port : 1080
prohibited_list : 192.168.220.1@192.168.220.2@192.168.220.254
 
T

The ROOT

192.168.10.144 в двух местах замени на IP своего сервера
 
A

Alien_Alien

После старта выдал такую ошибку, все настроенно по гайду, я так понимаю проблема с удаленым сервером, где поднят Metasploit . Машины в локальной сети отображаются.

у меня стал выдовать такую ошибку , хотя после установки показывал версию tenrsonflow & Keras.
 

Вложения

  • Снимок экрана от 2018-07-06 15-54-47.png
    Снимок экрана от 2018-07-06 15-54-47.png
    393,3 КБ · Просмотры: 668
  • Снимок экрана от 2018-07-06 15-55-32.png
    Снимок экрана от 2018-07-06 15-55-32.png
    622,6 КБ · Просмотры: 298
  • Снимок экрана от 2018-07-06 15-39-44.png
    Снимок экрана от 2018-07-06 15-39-44.png
    667,3 КБ · Просмотры: 422

NoRBesT

New member
13.07.2018
1
0
BIT
0
Хоть у кого то он заработал? Обучение он типо прошел, а дальше то ошибки, то еще что. Репорт не создается
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!