-
-
[分享]利用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编辑
,原因: 修改错误