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

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

2023-4-6 16:30
12780

利用Fake-net模拟https通信

背景

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

配置流程

配置前

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

配置

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

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

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

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

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

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

写入私钥命令:

1
2
openssl.exe pkcs12 -in $(The path of certificate) -nocerts -out pkey.pem
openssl.exe rsa -in pkey.pem -out $(The path of peivate.pem)

写入公钥命令:

1
openssl.exe pkcs12 -in $(The path of certificate) -vlcerts -nokeys -out $(The path of server.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的官方文档,了解更多操作。


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

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