浅析HackBrowserData原理以及免杀思路(红队工具之获取目标机器浏览器记录 密码 cookie)

前言

声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者和本公众号无关。

书接上回:上文讲到如何钓鱼

浅谈水坑攻击之结合xss平台钓鱼获取浏览器记录和微信数据 (qq.com)

并提到一个工具--HackBrowserData,限于上文篇幅,结尾留白并未介绍工具使用和原理,若只讲如何钓鱼使得目标机器上线,这个主题便可惜了。于是今日本篇浅浅分析一下HackBrowserData的代码和实现原理.

01. HackBrowserData使用                        

项目地址

https://github.com/moonD4rk/HackBrowserData

一款可全平台运行的浏览器数据导出解密工具。

支持的平台

Windows

浏览器密码Cookie书签历史记录
Google Chrome
Google Chrome Beta
Chromium
Firefox
Microsoft Edge
360 极速浏览器
QQ 浏览器
Brave 浏览器
Opera 浏览器
OperaGX 浏览器
Vivaldi 浏览器
IE 浏览器

MacOS

由于 MacOS 的安全性设置,基于 Chromium 内核浏览器解密时需要当前用户密码

浏览器密码Cookie书签历史记录
Google Chrome
Google Chrome Beta
Chromium
Firefox
Microsoft Edge
Brave 浏览器
Opera 浏览器
OperaGX 浏览器
Vivaldi 浏览器
Safari

Linux

浏览器密码Cookie书签历史记录
Google Chrome
Google Chrome Beta
Chromium
Firefox
Microsoft Edge
Brave 浏览器
Opera Browser
Vivaldi Browser
Chromium

安装,windows版本

图片

会报毒,解压前退出杀软

图片

获取chrome数据

图片

看看结果

图片

厚🐎,必须厚🐎,个人隐私全暴露了

图片

还有密码也是一览无余

图片

linux安装

安装
$ git clone https://github.com/moonD4rk/HackBrowserData

$ cd HackBrowserData/cmd/hack-browser-data

$ CGO_ENABLED=1 go build
编译 需要安装目标操作系统的 gcc 库
brew install FiloSottile/musl-cross/musl-cross

CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++ GOARCH=amd64 GOOS=linux CGO_ENABLED=1 go build -ldflags "-linkmode external -extldflags -static"

02. HackBrowserData原理                            

这里就先说windows环境下原理,先说几个前置知识

浏览器数据在windows里的存放地址

浏览器数据目录是homeDir +"/AppData/Local/Google/User Data/",用户的默认profile文件为Default,如下图该目录下存储着浏览器的各种数据库文件。

这个文件夹会被隐藏,需要设置里修改为显示

图片

图片

其中主密钥文件位于数据目录下的Local State文件中,password和cookie两个数据库被该密钥加密,history无需解密可明文读取

图片

这些文件的文件头为SQL,故chromium内核的浏览器是使用sqlite对数据进行存储的,

如何解密获取密码和cookie

这里要介绍一下DPAPI,

什么是DPAPI?贴一个网上的解释

图片

可能不好理解,麋鹿来解释一下DPAPI

何为DPAPI

就是windows的一个特殊数据保护接口,包含了加密函数(CryptProtectData) 与解密函数 (CryptUnprotectData) 以用作敏感信息的加密解密。

其用作范围包括且不限于:

IE、Chrome的登录表单自动完成

Powershell加密函数

Outlook, Windows Mail, Windows Mail, 等邮箱客户端的用户密码。

FTP管理账户密码

共享资源文件夹的访问密码

无线网络帐户密钥和密码

远程桌面身份凭证

EFS

EAP/TLS 和 802.1x的身份凭证

Credential Manager中的数据

以及各种调用了CryptProtectData函数加密数据的第三方应用,如Skype, Windows Rights Management Services, Windows Media, MSN messenger, Google Talk等。

Dpapi采用的加密类型为对称加密,所以只要找到了密钥就可以解密了,而存放密钥的文件为Master Key Files,位置为%APPDATA%/Microsoft/Protect/%SID%

 例如我本机地址为

C:\Users\xxx\AppData\Roaming\Microsoft\Protect\S-1-5-21-1331992092-18619637-2946198525-1001

图片

可以很直观的看到这个文件中的密钥实际上是随机64位字节码经过用户密码等信息的加密后的密文

但是Master Key Files中存储的不是直接的密钥,而是将Master Key进行加密所存放的内容

有点绕是吧,总结一下

Master Key和Master Key Files之间的关系其实就是, Master Key经过用户密码等信息加密后的内容才变成了Master Key Files中存储的内容

这里要强调一下,DPAPI是用户层面的加密解密,即只有在目标机器上以对应用户的身份去调用该api时,才可以恢复对应的数据。

所以比如把数据文件压缩外带后在攻击机上还原是行不通的。

获取Master Key

  • 用户身份凭证(或者历史用户身份凭证)

  • DPAPI_SYSTEM(DPAPI_SYSTEM作为Master Key本地备份文件的密钥存放于LSA secret中,想要获取的话也就老办法,dump内存或者注册表即可)

  • Dump Lsass

用户身份凭证

这里用到mimikatz工具

使用mimikatz的dpapi模块中的masterkey方法,指定目标用户master key file。在无凭证传入的情况下,仅仅只是解析了结构体。

图片

DPAPI_SYSTEM

用lsadump::secrets命令获取DPAPI_SYSTEM。

读取到full或m/u的值

然后带入到system后面
 

图片

Dump Lsass(在线获取)

privilege::debug提升到debug权限。
sekurlsa::dpapi获取内存中的所有MasterKey。

如果读者还是不太明白,接下来演示一下

Google Chrome浏览器解密测试


 

dpapi::chrome /in:"%localappdata%\Google\Chrome\User Data\Default\Login Data"

图片

提示要aes密钥

dpapi::chrome /in:"%localappdata%\Google\Chrome\User Data\Default\Login Data" /unprotect

图片

至此,HackBrowserData的原理已经很清晰明了了--使用DPAPI获取Master Key去解密文件

现在开始看看HackBrowserData代码怎么实现的

03.解读HackBrowserData代码                

为了让读者直观的看明白HackBrowserData的运行过程,麋鹿y'bian一边调试一边原理

设置参数

图片

程序入口

cmd\hack-browser-data\main.go

这里接收到chrome参数

图片

跟进browser.ListBrowser()

图片

以windows举例,进入browser_windows.go

这里定义了windows下浏览器相关数据的路径

图片

和上面原理里讲的一样,接着把该目录下的文件拿去解密

现在跟进main.go58行的BrowsingData()

图片

于是到了browser/chromium/browser.go

在browser.go里调用了BrowsingData()

图片

两个实现这里我们还是拿windwos下chromium举例

图片

到关键了,看到了GetMasterKey()

图片

跟进GetMasterKey()

图片

这里看到两个显眼的词DPAPImasterKey,和原理完全对应

先看一下DPAPI的调用情况

图片

还记得CryptUnprotectData是什么吗?

正是解密函数 ,来看官方文档

图片

还记得前面麋鹿强调的解密只能在目标机器上用对应用户去解密

图片

而且这里看到火狐和chromimu是一样实现的

图片

ok,到这里为止,HackBrowserData核心代码分析完了,和上面所讲的原理一模一样

但本篇未完,为什么呢,因为麋鹿的初心并不是介绍一个工具,而是希望我和读者能有所进步

还记得我说过HackBrowserData会被杀软标记吗?

4. 那么,如何实现实现HackBrowserData免杀?            

为什么HackBrowserData会被标记,杀软会报毒?

图片

图片

因为不管是文件层面还是行为特征都太过于明显

而HackBrowserData有哪些行为呢,惟读取文件与获得key耳

那么如果我们把这两个行为分开是什么结果?

读文件嘛很正常,百分比不会报毒,读的文件有俩类,一种书签历史类,一种密码cookie类,前后者的区别是是否加密,所以前者可以从目标机器打包回我们机器还原,操作一点也不敏感,不会报毒

密码cookie类文件需要api获得的key解密,这一步也可以在我们机器上用目标机器的key来解密

总结一下过程:压缩目标机器上面浏览器相关user data打包到我们机器,然后在目标机器用dpapi获取到key,把key保存下来也打包到我们的机器.现在在我们机器上面现在有了

A:目标机器的浏览器数据

B:目标机器上对应客户的key

接着在我们本地(我们的攻击机)调用CryptUnprotectData,用B去解密A

如果把整个过程分成如上俩步分开执行,那么我们改后的工具就不再存在被查杀的特征,就达到了行为层面的免杀

那会如果我们改后的程序这样操作

列个步骤

在目标机器上的操作

    第一步    打包压缩所有数据文件

        不敏感

    第二步    调用dpapi获取并保存key

        不敏感

加起来依然不敏感,免杀



在本地(攻击机)上的操作
    第一步    获取到目标机器的数据文件和key

        远程下载

    第二步   在本地调用dpapi的CryptUnprotectData(解密函数),传入目标机器的key进行解密还原

        得到目标机器上保存的cookie和网站登录信息

完美还原,完美绕过杀软

考虑到法律风险,最后的魔改成品不公开了,感兴趣的读者可以自己尝试一下

附一个微软对dpapi的官方文档

https://learn.microsoft.com/zh-cn/windows/win32/api/dpapi/

over

希望各位读者看完我们的文章以后自己去实践一下,只有学到脑子里的东西才是自己的,如果遇到困难,可以加本人微信(i_still_be_milu)与麋鹿师傅一起探讨,炼心之路,就在脚下,我们一起成长。

同时欢迎各位同仁关注麋鹿安全,我们的文章会第一时间发布在公众号平台,如果不想错过我们新鲜出炉的好文,那就请扫码关注我们的公众号!(附上本人微信,欢迎各位同仁加我微信,和我探讨安全,同时欢迎同仁们的不吝指正)

img

图片

  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Msfvenom是开源安全工具Metasploit中的一个强大的工具,用于生成恶意文件。通过它可以生成各种类型的恶意文件,包括可执行文件、脚本、payload等。其中,在生成Android平台上的恶意文件时,最常用的是apk格式。Msfvenom生成apk文件的主要目的是用于在渗透测试或红队行动中进行攻击或利用。 想要绕过Android平台上的杀毒软件,需要对apk文件进行免杀处理。Msfvenom在生成apk文件时,可以设置一些参数来达到免杀的目的。比如说,可以指定恶意应用使用的一些系统权限和组件,以逃避杀毒软件的检测。还可以在生成payload时添加混淆(obfuscation)代码,使恶意代码更难被发现和分析。 Msfvenom还提供了一些其他的功能,如生成多个Paylod以及生成免杀的多平台Payload等。需要注意的是,使用Msfvenom生成一个完全免杀的apk是非常困难的。因为安全厂商会不断更新库以便检测恶意应用,开发者需要不断更新代码以保持攻击效果。 总的来说,Msfvenom是一款攻击能力强大的工具,但其需要谨慎使用,并且需要经过深入的学习和实践进行掌握。为了避免利用该工具进行恶意攻击,使用人员应当是经过事先明确授权的安全专业人员。 ### 回答2: MSFVenom是Metasploit框架中的一个模块,它可用于生成各种类型的恶意软件。其中,生成的APK免杀原理主要是通过修改APK的元数据信息和代码,使之不被杀毒软件所识别。 具体来说,生成APK免杀的步骤如下: 首先,使用MSFVenom生成APK恶意软件,可以自定义恶意软件的功能和载荷类型。 然后,根据需要修改APK的元数据信息,如软件名称、版本号、签名等,以此来欺骗杀毒软件的识别机制。 接下来,对APK的代码进行混淆和加密处理,使其难以被分析和检测。常用的混淆和加密工具包括ProGuard、DexGuard、Jadx等。 最后,通过在恶意软件中植入反调试和动态加载技术等手段,进一步增强其免杀能力。 需要注意的是,在使用MSFVenom生成APK免杀的过程中,应当遵守法律法规,不得用于非法用途,以免触犯相关法律。同时,建议加强网络安全意识,加强网络安全防范,以免受到攻击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值