• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Статья Знакомство с PowerShell Empire Framework

И так привет колеги. Сегодня я хотел бы немного Вас ознакомить с прекрасным ,по моему скромному мнению, продуктом PowerShell Empire Framework.

PowerShell Empire Framework - это агент для пост эксплуатации windows систем,написанный полностью на павершеле (серверная часть на питона а клиентская на павершеле,по этому легко поднять серверную часть на том же Kali Linux) и имеет в себе огромный функционал. Как я заметил что помимо того , что он используется для пост эксплуатации ( повышение привилегий, закрепленния в системе) он активно так очень используется и для активного фишинга,обхода антивируса и эксплуатации уязвимостей и одна из главных фишок - отлично используется для атак на Домен Контролеры. Конечно я все это хочу вам рассказать))) но сегодня мы слегка ознакомимся с интерфейсом фреймворка и базовы самые моменты)

Вобщем поехали)
Первым делом качаем:
Код:
git clone https://github.com/adaptivethreat/Empire.git
Запускаем
1.PNG


Смотрим help

2.PNG


Как и в любой клиент серверной программе сначала нам предстоит настроить listener(наш ip адрес и порт на котором мы будем встречать соединение с удаленной windows системы)
Идем в listener и смотрим командой options перечень параметров которые нам доступны для изменения:
3.PNG

Командой set Name можем задать имя нашему листенеру,аналогично можем указать порт и ip адрес.
Далее посмотрим какие есть векторы експлуатации клиенской части (stagers)
командой usestager и двойным нажатием клавиши tab
4.PNG

Как видите тут довольно таки большой выбор.Есть как dll injection,hta,Rubber Ducker,макросы и т.д.
Ну для ознакомления мы используем стейжер launcher - который создаст нам однострочную команду для powerhsell которую нужно будет запустить на стороне жертвы.

5.PNG

Вводим команды
Код:
usestager launcher
set Listener DarkNode
execute
Надеюсь понятно что usestager launcher - говорим какой стейжер будет юзать.
set Listener указываем на каком листенере будем встречать коннект.
execute - сгенерировать команду
На вывод получаем нашу команду:
6.PNG


Дальше запускаем эту команду на стороне жертвы и ловим соединение (В отличии от метасплоита там сессии называют в большинстве случаев метерпретер сессии ,а в импери (Empire) агентами)
И вот к нам прилетает агент)
7.PNG
8.PNG

Командой list agents - посмотреть список агентов
rename - можно переименовать имя агента(так по дефолту оно рандомное) - это не обизательно,больше для удобства просто.
interact - мигрировать в сессию агента (аналогично как session -i в метасплоите)

Дальше у нас открывается очень много функционала,изучаем команду help:
9.PNG


И еще перечень модулей можно посмотреть командой
usemodule "и нажать клавишу таб [tab]"
10.PNG


Так для примера возьмем модуль тролинга и выведем сообщение об ошибке с нужным нам текстом на стороне жертвы
11.PNG
12.PNG


Установка Powershell Empire на Кали Линукс


Всем спасибо)) Продолжения следует) Хех)
 
Последнее редактирование:

viktorcruce

Green Team
19.12.2016
28
5
BIT
0
Скоро все это перестанет работать т.к. майкрософт отказывается включать powershell в коробку. В последних версия Windows 10 его уже нет, ps оставят только на серверных операционных системах
 
O

OneDollar

upload_2017-9-25_4-21-56.png


Почему не определяет команды ?)
[doublepost=1507890244,1506302531][/doublepost]Вышла обнова 15 часов назад, 2.2 версия) Чекайте update лист:

+- Version 2.2 Master Release
+ - Update crontab to work hourly #667
+ - Update keylogger to log to disk on server side by @clr2of8
+ - Fix macro launcher #681
+ - Fixes vbscript string literal quoting. #702
+ - Add option to host a stager payload in the http listener @424f424f
+ - Add @enigma0x3 Token Manipulation script as a BypassUAC module @424f424f
+ - Hide true host name when using domain fronting #730 @clr2of8
+ - Fixed custom proxy config in launcher code #728 @dirkjanm
+ - generate_upload function added to Stagers #722 @hightopfade
+ - Aes kerberoast #725 @elitest
+ - DBX Improvements (SOCKS, Hide window via WindowHandler) #721 @IljaSchumacher
+ - Improved ScriptBlock logging bypasses #740 @cobbr_io
+ - Slack Integration - Notification for new Agents #737 @dchrastil
+ - Improve Get-ChromeDump #734 @ThePirateWhoSmellsOfSunFlowers
+ - Fix Eternal Blue Issue #656
+ - Merge Invoke-Kerberoast: Print hashes only. Formatting with a text editor is no longer required. #663
+ - Fix Macro syntax error per @utkusen issue #664
+ - Fix Better powershell install, obfuscation bug fixes, fixed vbs/macro launchers #686 @cobbr
+ - Fix creds manual add parsing with whitespace in password
+ - Fix validate length parameter attribute for Invoke-PSInject.ps1d

Всем Prof1t!
 
  • Нравится
Реакции: <~DarkNode~>
T

tumm

А есть ли возможность сделать чтобы при коннекте агента,автоматически подгржался заданный скрипт?Допустим скрипт закрепления в системе через виндовский кронтаб?Либо загрузка и запуск сторонних файлов?
[doublepost=1508236245,1508080232][/doublepost]Никто не сталкивался с

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/root/Empire//lib/listeners/http_com.py", line 588, in handle_post
dataResults = self.mainMenu.agents.handle_agent_data(stagingKey, requestData, listenerOptions, clientIP)
File "/root/Empire/lib/common/agents.py", line 1376, in handle_agent_data
dataToReturn.append((language, self.handle_agent_staging(sessionID, language, meta, additional, encData, stagingKey, listenerOptions, clientIP)))
File "/root/Empire/lib/common/agents.py", line 1326, in handle_agent_staging
slackToken = listenerOptions['SlackToken']['Value']
KeyError: 'SlackToken'
 

Elektrolife

Green Team
21.10.2016
208
33
BIT
7
Посмотреть вложение 11747

Почему не определяет команды ?)
[doublepost=1507890244,1506302531][/doublepost]Вышла обнова 15 часов назад, 2.2 версия) Чекайте update лист:

У меня такая же ерунда )

(Empire) > listeners
[!] No listeners currently active
(Empire: listeners) > options
*** Unknown syntax: options
(Empire: listeners) >

Подскажите кто нибудь,где нужно подпилить,чтобы заработало ? )
 
O

OneDollar

Синтаксис изменился. Я уверен, что вы не создали листенера. Чтобы создать, проделайте следующие действия : ./empire - listeners - uselistener(пробел + TAB) и у Вас откроется выбор между листенерами.
Я создал http. Если нужен http, то пишете uselistener http. Далее info (покажет настройки листенера) если ничего не нужно менять (к примеру порт, хост) то пишите execute и будет Вам счастье. После back. info http. И получите информацию о листенере http.
 
  • Нравится
Реакции: Baruh50 и <~DarkNode~>

adm2

Green Team
05.07.2017
50
120
BIT
0
Ребят, подскажите, пожалуйста: как правильно обновлять скачанные с гитхаба пакеты?
вот вышла новая версия Empire, старую, получается, нужно снести и загрузить новую? или есть более правильный способ?)
 
O

OneDollar

Кто не в курсе, вышла новая версия 2.3, обновили модули, исправили проблемы, добавили пару модулей. У меня есть такой вопрос: можно ли сделать какое-то уведомление о подключении агента ? Звуковой сигнал или всплывающее окошко ?)
 

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
722
3 099
BIT
0
Ребят, подскажите, пожалуйста: как правильно обновлять скачанные с гитхаба пакеты?
вот вышла новая версия Empire, старую, получается, нужно снести и загрузить новую? или есть более правильный способ?)
Код:
[LIST=1]
[*]cd Ваша_Папка_С_Empire 

[*]git pull
[/LIST]
Как то примерно так
1.PNG
 

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
722
3 099
BIT
0
Ты крут, лайк) приду домой, попробую )
Ну это касается не только Empire , а любого софта установлено командой git clone.
[doublepost=1510223836,1510223618][/doublepost]
Кто не в курсе, вышла новая версия 2.3, обновили модули, исправили проблемы, добавили пару модулей. У меня есть такой вопрос: можно ли сделать какое-то уведомление о подключении агента ? Звуковой сигнал или всплывающее окошко ?)
Реализовать можно , как минимум командой notify-send.Попробую реализовать и отпишу что и где в каком скрипте нужно дописать.
 
O

OneDollar

Ну это касается не только Empire , а любого софта установлено командой git clone.
[doublepost=1510223836,1510223618][/doublepost]
Реализовать можно , как минимум командой notify-send.Попробую реализовать и отпишу что и где в каком скрипте нужно дописать.
хорошо, жду!)
[doublepost=1510242333][/doublepost]
Ну это касается не только Empire , а любого софта установлено командой git clone.
[doublepost=1510223836,1510223618][/doublepost]
Реализовать можно , как минимум командой notify-send.Попробую реализовать и отпишу что и где в каком скрипте нужно дописать.
Dakr, у тебя работает модуль ChromeDump? У меня не создает файл с паролями. Запускается задача и на этом все..
 

<~DarkNode~>

~^M1st3r_Bert0ni^~
Platinum
19.10.2016
722
3 099
BIT
0
П
хорошо, жду!)
[doublepost=1510242333][/doublepost]
Dakr, у тебя работает модуль ChromeDump? У меня не создает файл с паролями. Запускается задача и на этом все..
Проверим, если не будет работать - напишем разработчикам ;))
 
O

OneDollar

там всего 2 параметра, выбрать агента и куда данные записать, у меня нет в 2.2 не работал модуль и сейчас в 2.3 не хочет, так же и с firefox
 
O

OneDollar

Напиши мне в тг.
Напиши адрес телеги мне в лс, доступ к профилю у тебя закрыт..
[doublepost=1510489730,1510245498][/doublepost]В общем хочу поделится опытом работы с Empire и паролями из хром, может кому пригодится. Из сообщений выше видно, что задача взять паролями запускалась, но ничего не создавалось. Первой ошибкой было указание директории на локальном компе. Путь к созданию файла нужно указывать на атакованной машине. Я к примеру указывал просто в каталог C (C:\paroliki.txt). Второе, Empire не берет паролики, если сам хром запущен. Поэтому kill PID (номер процесса chrome.exe) чтобы посмотреть список процессов : ps Можно запускать (run). Еще хочу отметить, чтобы пытался на атакованной машине удалить файл в котором содержится пробел, мне писало ошибку. Решение это взять файл в кавычки. Пример : del "paroliki paroliki.txt".

Если в вкратце то выглядит так, после подключения к агенту:
usemodule collection/ChromeDump
set OutFile C:\paroliki.txt
run

Еще не маловажный факт. При правах системы, у меня не получилось взять. Только с правами юзера. Все аналогично и с модулем для мозилы. В документе будут: логин, пароль, адрес сайта и блин история)) Всем prof1t!
 

sigakey

Green Team
07.02.2017
11
1
BIT
0
привет всем,подскажите пожалуйста, при установке Empire, когда вводишь команду ./setup_database.py появляется вот эта строчка:
[>] Enter server negotiation password, enter for random generation... что здесь нужно ввести?
 
O

OneDollar

привет всем,подскажите пожалуйста, при установке Empire, когда вводишь команду ./setup_database.py появляется вот эта строчка:
[>] Enter server negotiation password, enter for random generation... что здесь нужно ввести?
Что хочешь. Можешь просто Enter жмакнуть.
 

sigakey

Green Team
07.02.2017
11
1
BIT
0
Что хочешь. Можешь просто Enter жмакнуть.
если нажимаю enter то выводит это
root@kali:/apps/Empire/setup# ./setup_database.py

[>] Enter server negotiation password, enter for random generation:
Traceback (most recent call last):
File "./setup_database.py", line 130, in <module>
)''')
sqlite3.OperationalError: table "agents" already exists
root@kali:/apps/Empire/setup#
 
O

OneDollar

если нажимаю enter то выводит это
root@kali:/apps/Empire/setup# ./setup_database.py

[>] Enter server negotiation password, enter for random generation:
Traceback (most recent call last):
File "./setup_database.py", line 130, in <module>
)''')
sqlite3.OperationalError: table "agents" already exists
root@kali:/apps/Empire/setup#
Ты следовал инструкции в статье ?
 
Мы в соцсетях:

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