欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

如何搭建TCP代理(二)

来源:本站整理 作者:佚名 时间:2020-03-15 TAG: 我要投稿

如何搭建TCP代理(一)

Burp如何路由请求?
我提到过,Burp和其他HTTP/S代理使用HTTP协议的特殊功能来路由请求。为了让我们知道我们遗漏了什么,让我们看一下这些特殊功能,以及它们如何帮助代理同时路由HTTP和HTTPS流量。
HTTP代理
未加密的HTTP代理很容易做到,HTTP/1.x 请求包含一个主机标头,该标头明确指定了请求应发送到的主机名。 HTTP/2.x 请求包含一个包含相同信息的授权伪标头。 HTTP代理可以轻松地从未加密的请求中解析出该值,然后相应地重新发送该请求。这类似于在发送给助手的短信中包含“发送至”字段。

HTTPS
HTTPS代理更难,目前HTTPS代理有两种主要类型:转发代理和中间人代理。 “转发代理”非常无聊,它代理HTTPS数据,而无需解密。但是,它无法重用HTTP代理所采用的方法,因为它只会将通过它的数据视为不可读的、TLS加密的废话。这意味着它无法读取HTTP 主机标头,因此无法使用它来重定向通过它的数据。因此,它需要一个替代解决方案。如果你的私人助理不能解密你的朋友的名字,那么即便把你的朋友的名字发给你的私人助理是没有用的。
HTTPS协议通过向代理发送额外的特定于代理的连接请求来解决此问题,如果客户端知道其HTTPS请求将通过代理传递,则它在每个客户端之前都有一个单独的HTTP 连接请求。该请求以未加密的明文形式明确地告诉代理服务器,它应该向其发送稍后将发送的加密请求的主机名。这意味着代理无需解密主有效载荷即可正确路由。这就像给你的私人助理发送一条事先没有加密的文本信息,内容都是一些教助理应该如何处理即将发送的加密信息的废话。
第二种类型的HTTPS代理,也是我们本文讲解的要构建的类型,是“中间人”(MITM) 类型。正如我们已经讨论过的,MITM不同于转发代理,因为它能够解密和读取通过它的数据。这意味着它可以读取HTTP请求的明文内容,因此也可以读取存储在其HTTP主机标头中的目标。HTTPS MITM可以将请求转发到此位置,其方式与HTTP代理完全相同。
MITM通常仍然倾向于模拟转发代理,并在可能的地方使用连接请求。他们唯一使用主机标头的时间是在“不支持代理”的客户端不知道或不在乎他们是否连接到代理,并且不发送初步的连接请求时。在这种情况下,主机标头是一个有用的后备。
现在,我们知道了如何说服你的智能手机将其数据发送给伪造的代理,以及如何确保伪造的代理安全地接收这些数据。接下来要做的就是如何处理你的智能手机和虚假的代理之间的TLS加密。
伪造证书颁发机构
希望你尝试检查的基于TCP的协议使用TLS加密,在2018年,互联网仍然是一个非常危险的地方,没有任何理由不对所有内容进行绝对加密。
TLS(有时称为SSL)是HTTPS用来保护你的网上银行详细信息安全的一种加密形式。但是,TLS可以用于任何基于TCP的协议,而不仅仅是HTTPS。这是因为TLS不在乎它加密的数据形式。它可以是HTTP、FTP、XML或完全是非结构化的,这意味着我们的TCP代理可以重用HTTPS代理通常记录和使用的所有相同TLS技术。
我们需要解决的主要TLS问题是,说服你的智能手机信任我们的代理。完成此操作后,解密智能手机发送的数据的任务将非常简单,因为我们可以将其委派给已知的,经过良好测试的库。
TLS证书和证书颁发机构
常情况下,你的智能手机对外界持怀疑和不信任的态度,知道声称代表api.targetapp.com的服务器真正属于谁,这意味着什么?如果智能手机将数据发送给错误的人,那么你就没有必要仔细地保护和加密你的数据。
TLS加密可缓解智能手机的偏执狂,同时使我们的工作更加困难。 TLS不仅在发送数据之前对其进行了加密,它还会验证它是否将加密的数据发送到正确的位置。
TLS连接通过称为TLS握手的过程进行同意和验证,在TLS握手期间,客户端和服务器将彼此介绍自己。客户端验证服务器的身份(有时反之亦然),并且双方同意使用加密密钥来保护其流量。这意味着,他们通过TCP连接交换所有这些信息。
你的智能手机将不会完成与我们的代理的TLS握手,除非我们能够通过出示有效的TLS证书来证明我们的代理的身份。为此,我们需要将这个TLS证书的公共名称(证书中的一个字段)设置为你的智能手机认为正在与之通信的主机名,这将很容易。另外,我们还需要使用智能手机信任的根证书颁发机构(CA)对TLS证书进行签名,这个过程将是困难的。
主机名(如google.com)的真实TLS证书(由Digicert等真实的CA签署)将是世界历史上最有价值的几千个字节之一,因为它会允许恶意攻击者解密由任何人都可以访问google.com。如果你拥有此类证书,请立即停止阅读。
由于我们没有任何真实的,由CA签名的TLS证书,因此我们将制作自己的虚假CA,我们将之称为“罗伯特的信任证书颁发机构(Robert 's trusted Certificate Authority)”。我们将为我们的CA生成一个签名证书,并将此证书作为根CA安装在你的智能手机上。这将使你的智能手机信任我们的CA,更重要的是,信任我们的CA签署的所有其他证书。每当你的智能手机要求我们的代理执行TLS握手时,我们都会检查你的智能手机认为与之对话的主机名。我们将快速为该主机名生成一个证书(例如api.targapp.com),并用我们的伪造CA对其进行签名,最后将其返回给你的智能手机。此时你的智能手机将看到api.targapp.com的此证书已由“罗伯特的信任证书颁发机构”签名,看到此信誉良好的组织位于其受信任的CA列表中,并很高兴与我们的代理完成TLS握手。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载