文章总结: 本文记录了一个内网渗透仿真攻击思路,利用Chrome的CVE-2020-6418漏洞结合运维自动化脚本拿下终端。攻击者先攻陷内网数据平台,植入恶意HTML替换首页,当运维终端脚本以无沙箱模式刷新页面时触发RCE,最终反弹获取Shell。案例展示了结合环境配置与漏洞利用的横向移动技巧,拓宽了浏览器漏洞在内网中的攻击思路。 综合评分: 87 文章分类: 内网渗透,实战经验,漏洞分析,红队,终端安全
仿真|内网渗透:Chrome CVE-2020-6418 Nday + 自动化脚本,拿下运维终端
原创
俗说君
鹿鸣安全团队
2025年12月23日 18:08 江苏
前言
最近有需求要融入浏览器漏洞,为了让攻击思路合理,硬设计了这个方案,这里就简单记录一下思路,具体的一些设计部署就省略了。
思路设计就是打算:页面劫持+浏览器RCE
场景简介
预设情景
首先在数据平台主机部署了dnsmasq服务,开启了DNS服务,并将其内部网卡的ip绑定到域名data.gov.local;其次,假设内网运维工程师的主机终端中有一个自动化运维脚本,每天在终端启动时会运行以no-sandbox模式开启低版本Chrome浏览器执行访问内网绑定的数据平台域名(data.gov.local),并且为了保证数据的实时性会每30s刷新一次页面。
攻击路径
攻击者利用漏洞获取数据平台的控制权限,并将编写好的Chrome浏览的CVE-2020-6418的exp替换数据平台的index.html,并开启msf正向监听,当运维终端主机的自动化脚本自动刷新页面时就会访问替换的页面从而触发漏洞,从而将shell反弹到攻击机。
场景拓扑
大致拓扑如下:
环境搭建
目标靶机制作
目标主机系统:Win10
思路设计:
首先配置浏览器漏洞,chrome RCE的CVE-2020-6418 Nday,设置低版本Chrome,我这里用到的是86.0.4240.75 ,其次在网络配置中设置DNS配置为数据平台主机的ip,接受其dns解析。此外编写自动化运维脚本以访问数据平台。
其中最关键的运维脚本如下,该脚本会以no-sandbox模式打开Chrome浏览器,并访问http://data.gov.local,此后会每30s刷新一次页面:
@echo off
chcp 65001 >nul 2>&1
setlocal
:: 配置区
set"CHROME=C:\Program Files\Google\Chrome\Application\chrome.exe"
set"URL=http://data.gov.local"
set"SIZE=1600,900"
set"REFRESH=30"
set"BAT=ChromeAuto.bat"
:: 开机自启
set"STARTUP=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup"
if not exist "%STARTUP%\%BAT%" copy /y "%~f0""%STARTUP%\%BAT%" >nul && echo 开机自启已配置
:: 适配32位Chrome
if not exist "%CHROME%"set"CHROME=C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
if not exist "%CHROME%" (echo 未找到Chrome&pause&exit)
:: 关闭旧Chrome
taskkill /f /im chrome.exe >nul 2>&1
timeout /t 1 /nobreak >nul
:: 启动Chrome(无沙箱+禁用缓存)
echo 启动Chrome(%REFRESH%秒强制刷新)
start """%CHROME%" --no-sandbox --aggressive-cache-discard --window-size=%SIZE% --new-window "%URL%"
:: 等待Chrome加载
timeout /t 10 /nobreak >nul
:: 主循环:每30秒刷新一次
:REFRESH_LOOP
:: 检查Chrome是否还在运行
tasklist /fi"imagename eq chrome.exe" | findstr /i "chrome.exe" >nul
if errorlevel 1 goto :CHROME_CLOSED
:: 发送刷新快捷键(Ctrl+F5 强制刷新)
echo [%time%] 执行页面刷新...
powershell -Command "$wshell = New-Object -ComObject Wscript.Shell; $wshell.AppActivate('Google Chrome'); Start-Sleep -Milliseconds 300; $wshell.SendKeys('^{F5}')"
:: 等待30秒
echo 等待%REFRESH%秒后下次刷新...
timeout /t %REFRESH% /nobreak >nul
goto REFRESH_LOOP
:CHROME_CLOSED
echo Chrome已关闭,脚本终止
pause
exit /b 0
endlocal
数据平台靶机制作
思路设计:
数据平台首先部署一个web系统,并且利用dnsmasq开启dns服务,将内网的192.168.2.4 ip绑定到data.gov.local的域名
攻击流程
这里就简单阐述攻击思路,其中涉及的代理搭建流程就简单介绍一下
- 首先利用攻击机获取数据展示系统权限,然后利用frp搭建代理连通内网区域,然后攻击机配置proxychains全局代理
使用proxychains代理开启msfconsole
- 使用msf开启正向监听,并进行配置
use exploit/multi/handler
set payload windows/x64/shell/bind_tcp
set rhost 192.168.2.5
set lport 4444
run
等待后续shell连接
- 利用获取到的数据展示平台的控制权限,查看文件管理,找到页面首页index.html所处目录(var/www/html)
将index.html重命名为index1.html
上传chrome-rce.html
将其重命名为index.html
修改成功后,返回msfconsole页面发现此时已获取到终端主机返回的shell
至此完成防护终端主机渗透攻击(如果一直返回不了shell,应该是流量缓存导致session不显示,实际已获取了,此时退出msf重新开启正向连接尝试获取)
总结
本次搭建主要也是为了复习一下浏览器沙箱漏洞,由于之前都是本地尝试复现都缺乏关联性,虽然方案设计都存在刻意性,但这次也算是拓宽了一些攻击思路。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:鹿鸣安全团队 俗说君《仿真|内网渗透:Chrome CVE-2020-6418 Nday + 自动化脚本,拿下运维终端》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论