为了教育目的,我想对我自己的网络进行一次中间人攻击。我想要下面的场景:使用Bettercap执行MITM攻击,导航到一个网站并接受证书警告,这意味着接受Bettercap (攻击者)提供的证书。
我想知道现在在网站上执行HSTS安全策略和HSTS预加载列表时,这是否可行?
我唯一的可能性是那些没有HSTS的网站,还是有一种通过接受证书来删除HSTS并执行攻击的方法?
发布于 2020-08-25 11:40:07
问题1:是的,这是可能的。站点在HSTS预加载列表上的事实只告诉浏览器,它应该始终通过https而不是http连接到站点。HSTS预加载列表不包含有关证书本身的任何信息。
问题2:没有,因为对问题1的答复。
发布于 2020-08-25 18:27:46
虽然不规范,但浏览器通常遵循RFC 6797 12提供的合理的用户代理实现建议,因为如果存在已知的HSTS策略,浏览器不允许用户绕过错误。
12.1。对于任何警告或错误(每个第8.4节 (“安全传输机构中的错误”)),不应使用“无用户追索权”来进行用户追索权失败。这意味着不应该给用户一个对话框,让她可以选择继续。相反,在与目标web应用程序交互方面,用户除了等待和重试之外,应该将其处理得类似于服务器错误。本质上,“任何警告或错误”是指任何会导致UA实现向用户宣布在连接建立中某些东西不完全正确的任何东西。不这样做,即允许用户追索权,如“通过警告/错误对话框单击”,是一种人中攻击的配方。如果web应用程序发布HSTS策略,那么它将隐式地选择“无用户追索权”方法,即所有证书错误或警告都会导致连接终止,没有机会“欺骗”用户做出错误的决定并损害自己。
如果您需要能够MitM自己的连接(例如用于测试或调试目的),则绕过HSTS的唯一方法是将HTTPS代理的根CA证书安装为受信任的根CA。这样,代理使用的证书就会成为有效的证书,因此,HSTS并不是一个问题。
根据提供Bettercap的CA证书以集成到browser #536中,Bettercap的根CA证书将存储在/root/.bettercap-ca-cert.pem中。
https://security.stackexchange.com/questions/237544
复制相似问题