导师：到目前为止, 我们看到了一些事情,
一旦我们成为中间人, 我们可以做｡
因此, 我们看到了如何查看目标计算机在网络上执行的任何操作｡
所以我们能够看到网站, 用户名, 密码,
图片, 以及他们在浏览器上加载的任何东西｡
我们还看到, 由于我们是中间人,
我们能够将他们重定向到其他网站｡
因此, 每当他们请求一个域时,
我们就可以通过进行DNS欺骗攻击将他们重定向到其他地方｡
我们可以做的另一件很酷的事情是修改HTML,
修改页面, 因为它们加载到目标浏览器上｡
显然, 这一切都是可能的,
因为我们是中间人, 因为我们能够拦截所有这些数据｡
因此, 我们可以等待HTML代码,
它是负责加载网页的代码｡
当它流经我们的计算机时,
我们可以插入任何一段我们想要的代码,
浏览器将执行这些代码｡
现在, HTML只负责呈现您在网页上看到的元素｡
所以它负责按钮, 论坛,
文本, 它不允许我们做很多事情｡
但是现代浏览器可以执行JavaScript代码｡
JavaScript是一种强大的编程语言,
我们可以用它来做很多事情, 我们实际上可以修改整个页面, 删除元素或向页面中添加元素,
我们可以替换链接｡
这实际上是我修改HSTS插件时所做的｡
因此, 我添加了将HTTPS替换为HTTP的代码｡
我还添加了代码, 用于替换实际链接, 替换带有欺骗域名的实际域名,
替换带有点玉米的实际域名, 或者替换为您在脚本中设置的任何内容｡
您甚至可以使用它将浏览器与其他浏览器利用框架挂钩,
我们可以使用这些框架进一步利用目标, 甚至完全控制他们的计算机｡
我们会在后面的课程中看到｡
但现在, 我将向您展示如何将一个非常简单的JavaScript代码注入到加载的页面中｡
然后我们会在以后的课上继续学习,
看看它有多强大和有用｡
所以在这里, 我有我的卡利机器｡
在我运行better cap并向您展示如何注入JavaScript之前,
首先, 我们需要一些JavaScript代码来注入到目标浏览器中｡
我打开一个文本编辑器｡
我将写一个非常非常简单的JavaScript代码｡
就像我说的, 我们将看到如何使用它来运行更有用的代码｡
但现在, 我们保持简单, 只是为了看看我们如何实际运行JavaScript代码｡
所以我要做的就是提醒, 打开一个括号, 加上引号,
然后我会说JavaScript test.
我将把引号和括号括起来,
然后加一个分号｡
所以在这里, 这段代码, 它所要做的就是显示一条警告消息,
一条警告消息说JavaScript代码｡
既然我们要尝试将这段代码注入到所有页面中, 那么每次加载网页时,
我们都会看到一条消息, 上面写着JavaScript
test｡
现在我要把这个留着｡
我将依次选择“文件”､ “保存”｡
我把它放在根目录下｡
我就称之为警戒｡ js, 我要按回车键.
它现在保存在我的根目录中, 如果我退出它,
我们可以看到文件就在这里｡
这就是包含代码的文件, 我们要将这些代码注入到目标计算机上加载的任何网页中｡
下一步是转到我们的HSTS劫持插件｡
正如我之前所展示的, 这是在user､ local､ share､
bettercap､ capplet､ HSTS hijack中,
请确保您使用我在资源中包含的一个, 而不是bettercap内置的一个, 因为内置的一个将无法按您希望的方式工作｡
所以这里有一个hstshijack｡ cap文件｡
这是整个插件的配置文件｡
我用鼠标右键单击它,
然后用文本编辑器打开它｡
在这里, 我们要修改的是这里的有效载荷｡
正如你在这里看到的, 它已经注入了一个叫做键盘记录器的JavaScript文件｡
js,
但我们也想注入我们自己的代码｡
所以我在这里加个逗号｡
我会在星号后面加上冒号｡
我们在这里添加了这个星号, 表示我希望将我的脚本注入到目标加载的任何页面｡
如果您想将代码注入到特定的域中,
那么您可以删除星号, 并在此处列出您想将代码注入到的域｡
但就像我说的, 我们想把这个注入到所有的页面中｡
所以我把它画成星星｡
在冒号后面, 我将把JavaScript文件的位置放入浏览器中｡
如果我们回头看一下这里,
这是我们刚刚创建的文件, 它位于我家的根目录下,
名为alert｡ js的｡
所以我在这里输入, 我只需要输入正斜杠根,
然后是alert. js的｡
就是这样｡
我将保存此Ctrl S并按Ctrl Q退出它,
然后我们就可以开始了｡
我将进入我的终端, 用我们之前用过的命令运行bettercap.
所以我们给它一个eth0接口, 我们给它一个spool文件,
让它自动运行ARPX欺骗攻击, 把我们放在连接的中间｡
正如你所看到的, 这是没有错误的工作,
所以一切都是完美的｡
我现在还想做的是运行我的HSTS劫持插件｡
如您所知, 我们只需键入HS和Tab键, 这将自动完成,
我将按Enter键, 所有内容都将运行,
没有任何错误｡
所以一切都很完美｡
正如你在这里看到的, 它说的是有效负载, 它是加载JavaScript有效负载是键盘记录程序｡
这是文件已加载的默认文件｡
以及我们刚才指定的根警报｡
js的｡
所以现在只要我们的目标加载任何网页, 我们在警报中放入的任何代码｡
js应该被注入到加载的页面中,
并且应该被执行｡
结果应该会显示一条简单的消息：测试JavaScript｡
所以我们去目标｡
和往常一样, 一个好主意是只删除浏览数据,
以确保没有缓存任何内容｡
而且我总是喜欢先用最简单的案例进行测试,
然后再进行更复杂的场景｡
首先, 我将在一个普通的HTTP页面上测试它,
这样就没有什么可以绕过的, 没有任何加密｡
所以我们要去沃尔万维网｡ com的网站｡
很好, 正如你所看到的, 这里有一条警告消息告诉我们JavaScript测试｡
基本上, 这就是我的警报中的JavaScript代码｡
js文件被注入此页面｡
现在我们已经验证了它可以在正常的HTTP页面上工作, 让我们继续在一个使用HTTPS的页面（如stackoverflow）上测试它｡
com的网站｡
太好了, 一切正常｡
另一个例子是LinkedIn｡ com的网站｡
请记住, 这些网站使用HTTPS｡
如您所见, 我们可以在没有HTTPS的情况下加载它们,
因此只能通过HTTP加载｡
因此, 即使您在此处登录,
您也可以获得之前显示的用户名和密码｡
最后, 让我们使用部分HSTS绕过方法,
在HSTS网站上进行测试｡
因此, 要实现这一点, 我们首先需要访问Google,
我们需要访问一个不使用HSTS的Google域,
类似于Google｡ 也就是说
这实际上是爱尔兰当地的谷歌网站｡
如您所见, 代码是有效的｡
这样就好了｡
Google只使用HTTPS｡
但我们还是找找Facebook吧｡
现在我们知道Facebook使用了HSTS｡
而且因为使用了HSTS, 我们应该不能在网站上注入任何内容,
因为浏览器只会通过HTTPS加载｡
但是使用我们的部分旁路方法｡
如果我在这里点击Facebook, 正如你所看到的,
代码就会被执行｡
因为我们现在加载的是Facebook｡ 玉米不是脸谱网
com的网站｡
正如你所看到的, 我们又得到了一个正常的Facebook页面,
看起来一模一样｡
如果你登录, 你就能得到用户名和密码｡
如您所见, 如果目标搜索该网站,
这将对HTTP和HTTPS页面甚至HSTS起作用,
而不是在此处输入域名｡
所以如果目标进来输入facebook｡ 然后按Enter键, 浏览器将强制HTTPS连接,
正如您在这里看到的, 因为就像我说的, 它有一个预加载的网站列表, 它只能通过HTTPS加载, 而且因为浏览器正在建立HTTPS连接, 数据将被加密, 因此我们希望能够向其中注入任何内容｡