本帖最后由 梦幻的彼岸 于 2021-4-9 20:56 编辑
前因
今天因某些需要,需要安装一款软件,访问官方下载其安装包,但下载完毕之后发现是在线安装包,仔细搜索无果,没找到其它安装程序,先安装用下吧,但可以提取下,用于之后的离线安装与收藏所用。
说明
此贴通过动态分析法,简单的分析与溯源在线安装包的网络行为。
常见的在线安装
软件官方策略考虑(例如:推广、更新、维护),一般在线安装是运行在线安装程序,进行一些配置后,下载最新的离线安装包到临时文件夹,并根据配置信息进行安装,之后删除离线安装包。
安全隐患
在线安装可能出现捆绑安装现象(在用户未知情况下安装一些非用户当前安装所知软件,例如:就只有安装解压软件的需求,但结果是解压软件安装完又安装了一个浏览器)
安装源被入侵:攻击者替换源安装程序,用户在不知情的情况下,安装了非官方软件,导致被入侵
安装环境存在限制:需有网络支撑,并此网络可访问下载源(就是可访问下载离线安装包的地址)
示例
CheatEngine72
备注:降低学习难度就不静态分析了,直接在火绒剑监控下进行安装,之后看看具体行为
安全考虑:在虚拟机内运行或实体机影子系统下(做好防护,避免运行的文件存在恶意行为,因防护不当造成损失)
安装时遇到的情况:出现了捆绑安装,但还好的是拦截到了
分析流程:
1.运行在线安装包前,开启火绒剑监控
2.安装完毕后,关闭火绒剑监控
3.筛选:因属于全局行为监控,方便分析故筛选下,排除目前来看无用的监控
搜索输入- CheatEngine72 //备注:正常情况下属于运行程序的文件名即可,但不排除进程做动态变名处理导致搜索结果与预期不符的现象
复制代码 ,之后点击向下寻找(根据实际情况进行相关操作),找到需要的目标后(这里是:进程名为CheatEngine72.exe),选择并右键-包含某某
4.简单筛选后,直接看到了离线下载包,但因安装完毕,离线下载包已被清理了
5.寻找离线下载包链接
这里我是在运行前,使用fiddler 4开启了网络监控,用于捕获网络数据
离线安装包下载地址
- https://d2u4d080ckhplh.cloudfront.net/f/CheatEngine/CheatEngine72.exe
复制代码
捆绑软件的下载地址
- https://d2u4d080ckhplh.cloudfront.net/f/Opera/files/OperaSetup.zip
- https://d2u4d080ckhplh.cloudfront.net/f/AVAST/files/cookie_mmm_irs_ppi_005_888_a.zip
复制代码
软件安装时展示的宣传图片
备注:没想到是网络加载进来的
- https://d2u4d080ckhplh.cloudfront.net/f/AVAST/images/PNG2/EN.png
- https://d2u4d080ckhplh.cloudfront.net/f/Opera/images/pngs/V2/allBG/EN.png
复制代码 6.反汇编定位下载捆绑文件
调用文件追踪:
选择一个URL右键,转到-上一个引用
分析思路描述
开始动态分析主程序的时候,发现下网络断点失败,感觉可以,明明在线安装程序,为什么没有使用网络函数,后附加调试的时候发现,其网络程序是通过主程序释放的文件进行的,附加此程序,成功断下。
根据网络函数断下之后,溯源网络请求时找不到URL,fiddler监听并单步调试,发现访问下载地址出现问题,访问地址残缺,感觉是拼凑字符串进行访问的
就以域名为关键字搜索了下,成功断下
[AppleScript] 纯文本查看 复制代码 d2u4d080ckhplh.cloudfront
根据域名信息进行搜索
继续运行,成功断下,并看到ce离线安装包下载地址
释放此断点开始正常下载后,又在下载捆绑文件时成功断下,并在堆栈信息看到了完成的连接内容
释放此断点开始正常下载后,又在下载捆绑文件时成功断下,并在堆栈信息看到了完成的连接内容
堆栈信息往上翻,看到了拼接目录信息
[AppleScript] 纯文本查看 复制代码 0019E914 00A734B8 L"/f/AVAST/files/cookie_mmm_irs_ppi_005_888_a.zip"
堆栈信息继续网上翻--好久
看到了完整的下载引用信息
[Asm] 纯文本查看 复制代码
0019CD6C 0019CEEC L"es/cookie_mmm_irs_ppi_005_888_a.zip\" to \"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0\""
0019CD70 00518673 返回到 cheatengine72.00518673 自 cheatengine72.004146F0
0019CD74 00414778 cheatengine72.00414778
0019CD78 0007030C
0019CD7C 00000020
0019CD80 00090352
0019CD84 02000001
0019CD88 0019CEEC L"es/cookie_mmm_irs_ppi_005_888_a.zip\" to \"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0\""
0019CD8C 00000020
0019CD90 0019CFA0 L"\\prod0\""
0019CD94 0750C1B0 &"滥Q"
0019CD98 005B15C3 返回到 cheatengine72.005B15C3 自 cheatengine72.00518588
0019CD9C 0019CFA0 L"\\prod0\""
0019CDA0 0750C1B0 &"滥Q"
0019CDA4 005195C4 返回到 cheatengine72.005195C4 自 ???
0019CDA8 00000000
0019CDAC 0051BCB3 返回到 cheatengine72.0051BCB3 自 cheatengine72.00516CE0
0019CDB0 0000007A
0019CDB4 00000020
0019CDB8 00000020
0019CDBC 0750C1B0 &"滥Q"
0019CDC0 0019CFA0 L"\\prod0\""
0019CDC4 00513B5D 返回到 cheatengine72.00513B5D 自 ???
0019CDC8 00000020
0019CDCC 00000000
0019CDD0 0019CFA0 L"\\prod0\""
0019CDD4 74AD4420 gdi32full.74AD4420
0019CDD8 0019CF78 L"al\\Temp\\is-B7V3D.tmp\\prod0\""
0019CDDC 00000037
0019CDE0 0019CE70 L"Downloading \"https://d2u4d080ckhplh.cloudfront.net/f/AVAST/files/cookie_mmm_irs_ppi_005_888_a.zip\" to \"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0\""
0019CDE4 0019CEF8 L"kie_mmm_irs_ppi_005_888_a.zip\" to \"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0\""==&"; const SubKeyName, ValueName: String; var ResultStr: AnsiString): Boolean;"
0019CDE8 0019CEE0 L"ST/files/cookie_mmm_irs_ppi_005_888_a.zip\" to \"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0\""
0019CDEC 0752B78C L"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0"
0019CDF0 00000011
0019CDF4 0019CE7C L"ading \"https://d2u4d080ckhplh.cloudfront.net/f/AVAST/files/cookie_mmm_irs_ppi_005_888_a.zip\" to \"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0\""
0019CDF8 04EF6B70 &"滥Q"
0019CDFC 00000000
0019CE00 00000002
0019CE04 025786D8 L"s\""
0019CE08 025786AC L"Downloading \"%s\" to \"%s\""
0019CE0C 00000FFF
0019CE10 0019CE70 L"Downloading \"https://d2u4d080ckhplh.cloudfront.net/f/AVAST/files/cookie_mmm_irs_ppi_005_888_a.zip\" to \"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0\""
0019CE14 00000000
0019CE18 00EF6E50
0019CE1C 0019CFAE
0019CE20 00001EC0
0019CE24 FFFFFFFF
0019CE28 0053CE98 cheatengine72.0053CE98
0019CE2C FFFFFFFF
0019CE30 0019CE4C &L"Downloading \"https://d2u4d080ckhplh.cloudfront.net/f/AVAST/files/cookie_mmm_irs_ppi_005_888_a.zip\" to \"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0\""
0019CE34 00424419 返回到 cheatengine72.00424419 自 cheatengine72.00424880
0019CE38 006D16C8 cheatengine72.006D16C8
0019CE3C 00000001
0019CE40 04F13E48
0019CE44 00406F16 返回到 cheatengine72.00406F16 自 ???
0019CE48 07567D82 L"od0\""
0019CE4C 07567C4C L"Downloading \"https://d2u4d080ckhplh.cloudfront.net/f/AVAST/files/cookie_mmm_irs_ppi_005_888_a.zip\" to \"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\is-B7V3D.tmp\\prod0\""
到这里就不继续分析了意义不是很大了,之后就是反编译查看了,这里暂时不编写了。
扩展
UrlCanonicalizeW 函数解析
将URL字符串转换为规范形式。
句法
[C++] 纯文本查看 复制代码 LWSTDAPI UrlCanonicalizeW(
PCWSTR pszUrl,
PWSTR pszCanonicalized,
DWORD *pcchCanonicalized,
DWORD dwFlags
);
|