在使用向日葵远程控制软件时,部分用户发现通过构造特定的本地代理请求可绕过会话权限验证,从而实现未授权访问目标主机。该漏洞可能源于身份认证状态校验不充分或会话令牌管理不当。请问:在实际渗透测试中,如何利用向日葵旧版本中存在的本地服务端口(如localhost:5900)进行权限绕过?其技术原理是什么?是否可通过更新版本或配置加固有效缓解此类风险?
2条回答 默认 最新
关注让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。
如果答案能帮助您,请采纳,非常感谢!
.
每日一句正能量,让它带给您好心情:即使走得很慢,只要不后退,就是在前进。
.向日葵远程控制权限绕过漏洞分析
漏洞利用原理
向日葵旧版本(如v11.0及以下)存在本地服务端口(如
localhost:5900)未严格校验身份认证状态的问题。攻击者可通过构造特定HTTP/HTTPS请求直接访问本地代理服务,绕过会话令牌验证机制:- 会话令牌管理缺陷
向日葵的本地服务在验证会话时,可能仅检查请求来源为本地(如127.0.0.1)即视为合法,未二次确认当前用户是否通过身份认证。
- 请求构造示例
通过curl发送未携带有效令牌的请求至本地端口:
curl -X POST http://127.0.0.1:5900/api/control -d "action=screen_capture"若服务返回敏感数据(如屏幕截图),则表明存在权限绕过。
- 技术根源
- 身份认证与本地网络层校验解耦不当
- 会话令牌未绑定到特定IP或进程ID
- 本地回环地址(127.0.0.1)被默认信任
缓解措施
- 升级至最新版本
向日葵官方已在新版本(如v12.5+)中修复该漏洞,措施包括:
- 强制所有本地请求验证会话令牌有效性
- 引入进程间通信(IPC)替代部分本地网络接口
- 配置加固建议
- 禁用非必要的本地服务端口(通过向日葵设置关闭“远程调试”功能)
- 使用防火墙限制本地端口(如5900)仅允许向日葵主进程访问:
# Windows示例:使用netsh禁止外部访问5900 netsh advfirewall firewall add rule name="Block_Sunlogin_Port" dir=in protocol=TCP localport=5900 action=block- 渗透测试中的防护验证
可通过以下命令检测是否存在漏洞:
# 检测本地端口是否暴露敏感接口 nmap -sS -p 5900,5901 127.0.0.1 # 尝试未授权API调用 python -c "import requests; r=requests.post('http://127.0.0.1:5900/api/auth/check'); print(r.status_code, r.text)"总结
该漏洞本质是信任边界混淆,将本地性等同于合法性。通过版本更新和网络层隔离可有效缓解,在渗透测试中需重点检查本地服务接口的权限控制完整性。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- 会话令牌管理缺陷