首页 安全文摘 渗透测试 正文

从WebShell到域控实战详解

渗透环境首先介绍此次渗透的环境:假设我们现在已经渗透了一台服务器PAVMSEF21,该服务器内网IP为10.51.0.21。扫描后发现内网网络结构大概如图所示,其中PAVMSEF21是连接外网和内网的关键节点,内网其他服务器均不能直接连接。我们的渗透目标是通过一个普通的WebShell权限一步步地获得域管权限,从而掌控整个内网。一. 提升权限上传免杀的Pa

 渗透环境

首先介绍此次渗透的环境:假设我们现在已经渗透了一台服务器PAVMSEF21,该服务器内网IP为10.51.0.21。扫描后发现内网网络结构大概如图所示,其中PAVMSEF21是连接外网和内网的关键节点,内网其他服务器均不能直接连接。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第1张

我们的渗透目标是通过一个普通的WebShell权限一步步地获得域管权限,从而掌控整个内网。

一. 提升权限

上传免杀的Payload到机器名为PAVMSEF21、IP为10.51.0.21的服务器上,然后在“中国菜刀”或者WebShell下运行,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第2张

获得Meterpreter Shell后要做的第一件事情就是提权。通常,在渗透过程中很有可能只获得了一个系统的Guest或User权限。低的权限级别将使我们受到很多的限制,所以必须将访问权限从Guset提升到User,再到Administrator,最后到SYSTEM级别。

我们先尝试利用本地溢出漏洞提权,即使用本地漏洞的利用程序(LocalExploit)提升权限。也就是说,通过运行一些现成的、能造成溢出漏洞的Exploit,把用户从User组或其他系统用户组提升到Administrator组(或root)。

此时,我们获取的权限是一个普通域用户权限,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第3张

首先利用本地溢出漏洞提权,发现服务器补丁打得很全,尝试利用MS1505、MS15078等,都以失败告终,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第4张

再尝试绕过Windows账户控制(UAC),我们现在具有一个普通域用户的权限。利用Bypass UAC模块提权,又以失败告终,如果成功会返回一个新的Meterpreter Shell,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第5张

 使用Bypass UAC模块进行提权时,系统当前用户必须在管理员组,而且用户账户控制程序UAC设置为默认,即“仅在程序试图更改我的计算机时通知我”,而且Bypass UAC模块运行时会因为在目标机上创建多个文件而被杀毒软件识别。我们没能绕过UAC,可能是这两个原因。

其实提权没有成功也不要紧,我们还是可以以此服务器为跳板,攻击其他服务器的。

二. 信息收集

我们此时虽然提权不成功,但还是可以进行域渗透测试的。有了内网的第一台机器的权限后,收集信息是很关键的一步,也是内网渗透中不可或缺的一部分。

首先要查看当前机器的网络环境,收集域里的相关信息,包括所有的用户、所有的计算机,以及相关关键组的信息,下面列出了常用的命令及其作用,如图所示。

net user /domain:查看域用户。

net view /domain:查看有几个域。

net view /domain:XXX:查看域内的主机。

net group /domain:查看域里面的组。

net group “domain computers” /domain:查看域内所有的主机名。

net group “domain admins” /domain:查看域管理员。

net group “domain controllers” /domain:查看域控制器。

net group “enterprise admins” /domain:查看企业管理组。

nettime/domain:查看时间服务器。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第6张

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第7张

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第8张

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第9张

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第10张

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第11张

通过收集以上信息,我们可以分析出很多重要的线索,例如内网是怎么划分的,各机器名的命名规则,根据机器名尝试找出重要人物的计算机,以及目标机是否为多层域结构,关键是要探测出域管理员的名字和域服务器的名字等信息。

三. 获取一台服务器的权限

我们的目标是域服务器,此时有两种情况:当前服务器可以直接攻击域服务器和不可以直接攻击域服务器。不可以直接攻击又分为两种情况:如果是权限不够就需要提升权限;如果是不能连接到域服务器,则需要攻击内网中某个可以连接到域服务器的服务器,然后以此为跳板再攻击域服务器。

现在因为权限问题不可以直接攻击域服务器,整理下思路,可以采取以下方法继续渗透。

— 使用Meterpreter目前拥有的权限添加内网路由,进行弱口令扫描。

— 使用PowerShell对内网进行扫描(要求目标机是Windows 7以上的服务器)。

— 架设Socks4a,然后Socks会自动进行内网扫描。

— 利用当前权限进行内网IPC$渗透。

— 其他方法。

通过上面的分析,我们先选择最简单的方法,在net view的机器名里选择一个和我们机器名相似的服务器来试试,不出意外的话,成功率很高,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第12张

下面再给读者温习下经典的IPC$入侵。

IPC$入侵,即通过使用Windows系统中默认启动的IPC$共享获得计算机控制权的入侵,在内网中极其常见。

假设现在有一台IPC$主机:127.0.0.25,输入以下命令。

D:>net use \127.0.0.25\ipc$      #连接127.0.0.25的IPC$共享

D:>copy srv.exe \127.0.0.25\ipc$      #复制srv.exe上去

D:>net time \127.0.0.25         #查时间

D:>at\127.0.0.25 10:50 srv.exe  #用at命令在10点50分启动srv.exe(注意这里设置的时间要比主机时间快)

上述命令中的at就是让计算机在指定的时间做指定事情的命令(例如运行程序)。

这里把免杀的Payload上传到PAVMSEP131服务器,然后利用at命令启动Payload,反弹回Meterpreter Shell,具体操作如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第13张

将木马复制到目标服务器

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第14张

查看系统时间

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第15张

使用at命令启动木马

接着返回handler监听,可以看到反弹成功了,我们获得了PAVMSEP131服务器的Meterpreter Shell,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第16张

我们先看看PAVMSEP131服务器的信息和现在的权限,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第17张

可以看到没有SYSTEM权限,说明既可以用Mimikatz等工具,也可以用run post/windows/gather/hashdump来抓Hash。

我们在用Mimikatz抓Hash之前要注意一点:如果服务器安装的是64位操作系统,要把Mimikatz进程迁移到一个64位的程序进程中,才能查看64位系统的密码明文,32位系统没有这个限制。

这里使用Mimikatz抓Hash,具体操作如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第18张

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第19张

接着查看抓到的域用户的权限,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第20张

四. PowerShell寻找域管在线服务器

Windows PowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用.NET Framework的强大功能。PowerShell还允许将几个命令组合起来放到文件里执行,实现文件级的重用,也就是说有脚本的性质。

将Hunter模块上传到主机名为PAVMSEP131,IP为10.51.0.131的服务器中,然后输入Invoke-UserHunter,如图所示。

具体命令如下所示。

powershell.exe -exec bypass -Command"&{Import-Module .\powerview.ps1;Invoke-UserHunter}"`

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第21张

可以看到域管理员当前在线登录的机器主机名为PAVMSXD30,IP为10.51.0.30,此时需要入侵此服务器,然后将其迁移到域管理登录所在的进程,这样便拥有了域管理的权限。

五. 获取域管权限

利用获取到的HASH,我们成功地获取到主机名PAVMSXD30,IP为10.51.0.30的服务器权限,接下来就可以渗透域控了。

首先利用getsystem命令提升权限,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第22张

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第23张

可以看到我们现在的UID是sonicwall,从前面获取的域管理员账号信息中已知sonicwall是域管理员。

然后利用ps命令找到域管理所在的进程,把Meterpreter Shell进程迁移到此进程中,成功后就获得了域管理权限,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第24张

这里除了迁移进程外,也可以使用Metasploit中的窃取令牌功能,同样能获得获得域管理权限。

接着查看主域控IP,这里使用net time命令,一般来说时间服务器都是域服务器,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第25张

可以看到域服务器的主机名为PAVMSAD64,IP地址为10.51.0.63。

现在我们可以使用经典的IPC$入侵来反弹一个Meterpreter Shell,具体操作如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第26张

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第27张

提示at命令已经被弃用,现在使用schtasks添加计划任务,因为目标机的系统是Windows 2012。因为现在已经在域管理员权限下面了,所以要给域控添加一个管理员账户,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第28张

利用如下命令确认账户是否添加成功,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第29张

可以看到我们已经成功添加了管理员账户。

六. 登录域控制器

现在域控的权限也终于到手了。接下来就要登陆域控,然后抓域控的Hash。

整理下思路,常见的登录域控的方式有以下几种。

1.利用IPC上传AT&Schtasks远程执行命令。
2.利用端口转发或者Socks登录域控远程桌面。
3.登录对方内网的一台电脑使用pstools工具包中的PsExec来反弹Shell。
4.使用Metasploit下的psexec, psexec_psh;Impacket psexec;pth-winexe;Empire Invoke-Psexec等PsExec类工具反弹shell。
5.使用Metasploit下的smb_login来反弹Meterpreter。
6.使用WMI(Windows Management Instrumentation)来进行攻击。
7.使用PsRemoting posershel远程执行命令。其他一些方法。

这里采用最常见也是效果最好的,Metasploit下的PsExec来反弹Meterpreter,使用时注意以下这两点,如图所示。

— MSF中的PsExec模块。

— cuestom模块,建议使用类似Veil之类的工具来生成免杀的Payload。

这里采用最常见也是效果最好的方式——Metasploit下的PsExec来反弹Meterpreter,使用时注意以下两点,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第30张

— MSF中的PsExec模块。

— cuestom模块,建议使用类似Veil之类的工具生成免杀的Payload。

可以看到已经反弹成功了,然后先迁移进程,查看域控的系统信息和sessions控制图,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第31张

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第32张

思路:可以看到现阶段控制的session共有5个。session1为Webshell反弹,session2利用ipc$入侵,渗透session4是为了获取域管在线服务器,session5为域。整个渗透过程一环套一环,环环相扣。

有了域控的权限,接着来抓Hash,常用方法有以下几种。

— 使用Metasploit自带的dumphash或者smart_hashdump模块导出用户的Hash。

— 利用PowerShell的相应模块导出Hash。

— 使用WCE、Mimikatz等工具。

— 其他方法。

这里使用了Metasploit自带的dumphash模块。需要注意:要想使用此模块导出Hash,必须要有SYSTEM的权限才行,具体操作如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第33张

七. SMB爆破内网

有了域控的密码,接下来只要快速在内网扩大控制权限就好,具体操作如下所示。

— 利用当前获取到的域控账户密码,对整个域控IP段进行扫描。

— 使用SMB下的smb_login模块。

— 端口转发或者Socks代理进内网。

我们先在Metasploit添加路由,然后使用smb_login模块或者psexec_scanner模块进行爆破,具体操作如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第34张

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第35张

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第36张

可以看出,我们获取了大量内网服务器的密码,下面就可以畅游内网了。可以使用Meterpreter的端口转发,也可以使用Metasploit下的Socks4a模块或者第三方软件。

这里简单地使用Meterpreter的端口转发即可,如图所示。

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第37张

八.  清理日志

清理日志主要有以下几个步骤,如图所示。

— 删除之前添加的域管理账号。

— 删除所有在渗透过程中使用过的工具。

— 删除应用程序、系统和安全日志。

— 关闭所有的Meterpreter连接。

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第38张

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第39张

 

从WebShell到域控实战详解 web安全 安全文摘 渗透测试  第40张

文由Ms08067安全实验室

海报

本文转载自互联网,如有侵权,联系删除

转载请注明本文地址:https://heibai.org.cn/1533.html

相关推荐

从偶遇Flarum开始的RCE之旅

从偶遇Flarum开始的RCE之旅

事先声明:本次测试过程完全处于本地或授权环境,仅供学习与参考,不存在未授权测试过程,请读者勿使用该漏洞进行未授权测试,否则作者不承担任何...

WEB安全 2022-08-21 0 10269

2022年蓝队初级护网总结

2022年蓝队初级护网总结

一. 设备误报如何处理? 答:来自外网的误报说明安全设备需要进行策略升级,不需要处置。如果是来自内网的误报可以和负责人协商一下...

安全文摘 2022-08-21 0 10112

发布评论

ainiaobaibaibaibaobaobeishangbishibizuichiguachijingchongjingdahaqiandaliandangaodw_dogedw_erhadw_miaodw_tuzidw_xiongmaodw_zhutouganbeigeiliguiguolaiguzhanghahahahashoushihaixiuhanheixianhenghorse2huaixiaohuatonghuaxinhufenjiayoujiyankeaikeliankouzhaokukuloukunkuxiaolandelinileimuliwulxhainiolxhlikelxhqiuguanzhulxhtouxiaolxhwahahalxhzanningwennonuokpinganqianqiaoqinqinquantouruoshayanshengbingshiwangshuaishuijiaosikaostar0star2star3taikaixintanshoutianpingtouxiaotuwabiweifengweiquweiwuweixiaowenhaowoshouwuxiangjixianhuaxiaoerbuyuxiaokuxiaoxinxinxinxinsuixixixuyeyinxianyinyueyouhenghengyuebingyueliangyunzanzhajizhongguozanzhoumazhuakuangzuohenghengzuoyi
感谢您的支持