首页
社区
课程
招聘
[分享]利用Fake-net模拟https通信
发表于: 2023-4-6 16:30 14156

[分享]利用Fake-net模拟https通信

2023-4-6 16:30
14156

在样本分析的过程中,若样本在访问的C2服务器或URL时,发现其已经下线或失效,那么恶意样本将会直接结束运行,那我们的分析将很难再进一步。Fake-net可以很好的解决这一问题,而不再需要我们花费时间自行搭建一个服务端来进行模拟通信。但在使用Fake-net模拟https通信时,若不进行相应配置,会因没有相应证书而导致模拟失败,下面来看一下如何解决此问题。

以访问"https://raw.githubusercontent.com"为例。在未进行相关配置之前,会因缺少证书而导致无法通过https协议访问指定域名。

根据上图中的错误信息,可以明确得知是因为缺少有效的证书,而导致了错误的产生,那么创建相应的https证书,并将其写入Fake-net的配置文件中,即可通过fake-net实现模拟https请求。
第一步,通过powershell在"Cert:\LocalMachine\My\"下,创建出指定域名的证书。

第二步,打开MMC,添加证书管理单元。

在"个人"下面找到刚刚创建的证书,并将其加入到"受信任的根证书颁发机构"中。

随后导出该证书,且在导出时请选择"是,导出私钥"。

第三步,由于导出的证书文件是".pfx"文件,而fake-net配置文件(在"Linstner/ssl_utils"下)中需要的是".pem"格式的文件。因此,我们需要转换文件格式,并将公钥写入"server.pem"中,私钥写入"privkey.pem"中。

写入私钥命令:

写入公钥命令:

Fake-net不仅可以模拟简单的连通性请求,其还可以模拟文件传输,其会根据你所请求的文件类型,返回对应类型的默认文件。

若需要返回指定文件,我们还可以通过配置"defaultFiles"文件夹下的文件,实现模拟下载指定文件的需求。例如,我们想通过"hxxps://raw.githubusercontent.com/IconStorages/images/main/icon14.ico"下载"icon14.ico"这个文件,只需在"defaultFiles"下根据URL构造对应的路径,并将"icon14.ico"这个文件放入其中即可。

完成前三步配置,即可解决通过https访问指定域名无证书的问题。

配置"defaultFiles"后,可以完成指定文件下载。

Fake-net还支持利用python脚本自定义响应信息,笔者也在研究中,大家如果感兴趣可以去看一看Fake-net的官方文档,了解更多操作。

New-SelfSignedCertificate -DnsName "raw.githubusercontent.com" -CertStoreLocation "Cert:\LocalMachine\My\"

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2023-4-6 17:23 被g0mx编辑 ,原因: 修改错误
收藏
免费 3
支持
分享
最新回复 (4)
雪    币: 1331
活跃值: (1934)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看看大佬
2023-4-6 16:54
0
雪    币: 7921
活跃值: (4659)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
非常感谢分享,想问一下可以模拟签名时间戳服务器吗
2023-4-16 14:44
0
雪    币: 2948
活跃值: (30846)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2023-4-16 16:51
1
雪    币: 2016
活跃值: (3521)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
romobin 非常感谢分享,想问一下可以模拟签名时间戳服务器吗
我没研究过签名验证相关的内容,但Fake-net提供自定义响应构造,如果知道验签所用到的信息,可以尝试构造一下,可以研究一下configs下“CustomProviderExample.py”这个文件
2023-4-17 09:15
0
游客
登录 | 注册 方可回帖
返回
//