| 本帖最后由 梦幻的彼岸 于 2021-4-9 20:56 编辑 
 前因
 今天因某些需要,需要安装一款软件,访问官方下载其安装包,但下载完毕之后发现是在线安装包,仔细搜索无果,没找到其它安装程序,先安装用下吧,但可以提取下,用于之后的离线安装与收藏所用。
 说明
 此贴通过动态分析法,简单的分析与溯源在线安装包的网络行为。
 常见的在线安装
 软件官方策略考虑(例如:推广、更新、维护),一般在线安装是运行在线安装程序,进行一些配置后,下载最新的离线安装包到临时文件夹,并根据配置信息进行安装,之后删除离线安装包。
 安全隐患
 在线安装可能出现捆绑安装现象(在用户未知情况下安装一些非用户当前安装所知软件,例如:就只有安装解压软件的需求,但结果是解压软件安装完又安装了一个浏览器)
 安装源被入侵:攻击者替换源安装程序,用户在不知情的情况下,安装了非官方软件,导致被入侵
 安装环境存在限制:需有网络支撑,并此网络可访问下载源(就是可访问下载离线安装包的地址)
 示例
 CheatEngine72
 备注:降低学习难度就不静态分析了,直接在火绒剑监控下进行安装,之后看看具体行为
 安全考虑:在虚拟机内运行或实体机影子系统下(做好防护,避免运行的文件存在恶意行为,因防护不当造成损失)
 安装时遇到的情况:出现了捆绑安装,但还好的是拦截到了
 
   分析流程:
 1.运行在线安装包前,开启火绒剑监控
 2.安装完毕后,关闭火绒剑监控
 3.筛选:因属于全局行为监控,方便分析故筛选下,排除目前来看无用的监控
 搜索输入
 ,之后点击向下寻找(根据实际情况进行相关操作),找到需要的目标后(这里是:进程名为CheatEngine72.exe),选择并右键-包含某某复制代码CheatEngine72                                   //备注:正常情况下属于运行程序的文件名即可,但不排除进程做动态变名处理导致搜索结果与预期不符的现象
   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 
软件安装时展示的宣传图片
 备注:没想到是网络加载进来的
 
   
 6.反汇编定位下载捆绑文件复制代码https://d2u4d080ckhplh.cloudfront.net/f/AVAST/images/PNG2/EN.png
https://d2u4d080ckhplh.cloudfront.net/f/Opera/images/pngs/V2/allBG/EN.png 
     调用文件追踪:
 选择一个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
);
 
 
 
 
 
 |