教师：在上一讲中,
我们了解了如何将HTTPS网站降级为HTTP｡
这让我们基本上可以看到用户在这些网站上做的任何事情,
因为HTTP中的数据是以纯文本发送的｡
因此, 我们能够看到用户名, 密码,
网址, 以及他们在HTTPS网站上做的任何事情｡
在讲座的最后, 我还向大家展示了该方法不会对Facebook,
推特和其他使用HSTS的网站起作用｡
为什么它不会对这些网站工作的原因,
因为现代的网络浏览器来与一个网站列表, 他们应该只通过HTTPS加载.
看看我们在上一节课做了什么｡
每当一个浏览器请求一个网站, 我们加载该网站, 即使它使用HTTPS,
我们总是给他返回HTTP版本｡
在HSTS中, 浏览器知道这个网站, 例如,
facebook｡ com, 应始终通过HTTPS加载｡
因此, 即使在向我们发送此请求之前, 它也将始终以HTTPS发送此请求｡
只有当它作为HTTPS返回时, 它才会始终被接受｡
所以, 一旦我们成为中间人,
我们真的无能为力｡
因为浏览器是在本地进行检查的,
所以它是根据存储在计算机本身上的列表进行检查的｡
因此, 目前绕过HSTS的唯一可行的解决方案是让浏览器认为它正在加载另一个网站｡
为此, 我们要将加载页面中的所有HSTS链接替换为类似的链接,
但它们不是相同的链接｡
例如, 我们可以取代facebook｡ 与Facebook联系｡ 玉米｡
现在, 我知道这看起来很可疑,
但是相信我, 当它进入URL栏时,
中间的RN看起来会和M字母非常相似｡
另一种方法, 你可以取代twitter｡ 这是一个很好的例子｡
但是这里用了一个T而不是两个T｡
我知道这听起来有点混乱,
但让我去做实际的, 你会看到这是如何去工作｡
我有我的卡利机器｡
我们将使用上节课中使用的HSTS囊片｡
如前一节课所述, 这个小胶囊已经安装在自定义Kali中,
如果您想将其与原始Kali一起使用, 您必须手动下载它并将其放置在正确的路径中, 即用户､ 本地､ 共享､ bettercap､
小胶囊｡
我这里有胶囊｡
就像我说的, 这已经是正确的, 因为我使用的是自定义的Kali,
如果我们进入它, 我们有一个名为hstshijack的文件｡
船长
这是couplet的配置文件｡
我将右键单击它, 使用其他应用程序打开它,
然后单击“查看所有应用程序”｡
你可以选择任何一个文本编辑器｡
所以我会把这个放在叶子垫上｡
您可能需要向下滚动才能找到它,
但我在这里找到了, 我将选择它｡
如您所见, 我们有一个普通的文本文件,
其中包含我们可以设置的所有配置｡
我已经为您预先配置好了｡
您需要了解并可能需要更改的主要内容是目标和替换｡
因此, 目标是您要替换的使用HSTS的域｡
比如, 我有twitter｡ com在这里, 我也已经开始了｡
唧唧喳喳 com的网站｡
基本上, 当你使用一个明星, 这是一个外卡｡
它基本上是指任何子域｡ 唧唧喳喳 com也是一个目标｡
而替换, 你要告诉程序, 用什么来替换这个目标｡
比如, 每当我们看到twitter｡ 我们要用Twitter来取代它｡
玉米｡
Facebook和苹果也是如此,
还有我说的其他一些域名｡
您还可以尝试使用模糊处理和编码选项｡
我把这两个参数都设置为false,
因为基本上, 它们会混淆代码并进行编码.
但我注意到一些浏览器, 如Firefox,
会阻止混淆或编码代码｡
这就是为什么我将这两个参数都设置为false,
以便代码保持原样｡
在有效负载中, 你可以设置任何其他你想注入的JavaScript代码,
保持不变, 我们将在以后的课程中讨论JavaScript注入｡
最后, 您要确保DNS欺骗域的设置与此处的替换域完全相同｡
所以我复制了这一行并粘贴在这里｡
现在, 我实际上要保持所有这些不变,
我不需要修改任何内容｡
但就像我说的, 如果你要定位不同的网站,
或者你想用不同的替代品, 比如, 如果你想用一个只有一个T的Twitter,
并保留这个｡ 你可以在这里做｡
如果你想用一个只有一个O的Facebook,
就保留这个｡ com, 而不是｡ 玉米, 你可以在这里做
完成后, 请确保保存并退出此文件｡
我们已经准备好发动攻击了｡
所以运行这个攻击实际上和我们在上节课中所做的是一样的,
你只需要确保你正确地修改了这个文件｡
回到bettercap, 我将清空屏幕, 用相同的命令运行bettercap,
加载这个校样小胶囊｡
因此, 我们可以执行所有的AARP欺骗命令,
并自动运行嗅探器｡
而且很完美, 正如您所看到的, 一切都按预期运行,
没有任何错误｡
如果你运行这个程序并得到一个错误,
只需退出并再次运行bettercap｡
接下来, 我们要运行couplet, 即HSTS hijack
caplet, 与上一节课所示完全相同,
我们只需键入HS tab, 它将自动完成,
然后按Enter键运行它｡
同样, 您可以看到没有错误,
因此一切都按预期工作｡
让我们转到目标计算机,
看看它是如何工作的｡
所以我有我的Windows机器就在这里｡
这是Chrome, 最新版本｡
在我做任何事情之前, 就像我说的,
总是删除浏览数据是一个好主意｡
在我真正加载任何网站之前, 非常重要的是要理解,
即使我们现在正在做的一切, 如果你试图进入Facebook,
并输入｡
我们现在所做的一切都是徒劳的｡
因为Chrome有一个存储在这台电脑上的列表, 上面写着不要加载Facebook｡
除非通过HTTPS加载｡
所以如果你像这样在这里告诉Facebook,
它不会起作用｡
唯一的方法是用户首先进入搜索引擎,
例如google｡ 爱尔兰人.
然后在Google中, 如您所见, Google不使用HSTS｡
因此, 我们使用正常的HTTPS旁路来绕过此问题｡
如果用户在这里搜索他们的目标网站,
例如, Facebook, 那么我们的脚本将在后台运行｡
它会取代facebook页面上的所有链接｡
与Facebook的联系｡ 玉米｡
如果我将鼠标悬停在上面, 你会在状态栏中看到,
将加载的网站是facebook｡
玉米不是脸谱网
com的网站｡
这里很好, 上面还是写着facebook｡ com的网站｡
但只在facebook的HTML页面的代码中｡
com被facebook取代｡ 玉米｡
所以如果我点击这个链接, 再次, 如你所见, 我们会得到一个正常的Facebook页面｡
但是如果你看上面的这个, 你会发现没有HTTPS｡
如果你看域名, 你会看到它说｡
玉米不行｡ com的网站｡
就像我说的, 你可以留着这个｡ com和使用Facebook与一个O或者你可以添加一个额外的O,
你可以像你想要的创意与此｡
这只是我举的一个例子｡
现在, 一旦我们在这里, 我们可以正常登录与我的用户名,
所以z@ z安全｡ org并输入我的密码1234567890｡
按回车键, 如果我们返回, 向上滚动｡
很好, 如你所见, 我们有用户名,
z@zsecurity｡ org和密码一直到90｡
现在, 就像我说的, 唯一的方法是如果用户通过另一个不使用HSTS的网站访问Facebook｡
如果他们在网址栏上输入facebook｡ com本身, 我们将无法做到这一点,
这就是为什么这被认为是一个部分的解决方案,
而不是一个完整的解决方案｡