如何使用Hetty对HTTP进行安全研究审计
这篇文章给大家介绍如何使用Hetty对HTTP进行安全研究审计,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Hetty
Hetty是一款针对安全研究设计的HTTP工具套件,该工具的目标是成为一些商业软件(比如说BurpSuite Pro)的开源替代产品。该工具的功能十分强大,并且针对信息安全以及漏洞Hunter社区的需求进行了定制开发。
该工具目前提供了下列功能:
中间人攻击,提供了包含日志记录的HTTP/1.1代理;
基于项目的数据库存储(SQLite);
Scope支持;
使用了GraphQL实现管理API;
嵌入式Web接口(js);
需要注意的是,当前版本的Hetty仍处于前期开发阶段,之后的版本还将添加更多的功能。
工具安装
Hetty会对自包含代码进行编译,其中包含嵌入式的SQLite数据库和一个基于Web实现的管理员接口。
安装预构建版本(建议)
广大研究人员可以直接访问该项目的【Releases页面】来下载对应操作系统平台(支持Linux、macOS和Windows)的Hetty。
从源码构建
依赖组件:
Hetty的功能实现依赖于SQLite(mattn/go-sqlite3),并且需要cgo来进行编译。除此之外,管理员面板(Next.js)的静态资源需要通过Yarn来生成,并且使用go.rice来嵌入到一个.go文件中。
接下来,使用下列命令将该项目源码克隆至本地,并使用build命令来创建出项目代码:
$gitclonegit@github.com:dstotijn/hetty.git$cdhetty$makebuild
Docker安装
该工具还能够以Docker镜像来使用,该工具的Docker镜像目前已托管至Docker Hub上:dstotijn/hetty。
如果需要持久存储CA证书和项目数据库的话,我们还需要运行下列命令来加载卷宗:
$mkdir-p$HOME/.hetty$dockerrun-v$HOME/.hetty:/root/.hetty-p8080:8080dstotijn/hetty
工具使用
Hetty开始运行之后,默认会监听8080端口,并且可以通过http://localhost:8080来访问。根据传入的HTTP请求,该工具要么会以中间人(MITM)代理的身份运行,要么以API和Web接口的形式运行。
默认配置系啊,项目数据库和CA证书将存储在用户主目录下的.hetty目录之中。Linux/macOS对应的是$HOME,Windows对应的是%USERPROFILE%。
接下来,确保hetty路径已经设置在了$PATH环境变量中,然后运行下列命令:
$hetty
下面给出的是工具的帮助文档和参数选项:
$hetty-hUsageof./hetty:-addrstringTCPaddresstolistenon,intheform"host:port"(default":8080")-adminPathstringFilepathtoadminbuild-certstringCAcertificatefilepath.CreatesanewCAcertificateisfiledoesn'texist(default"~/.hetty/hetty_cert.pem")-keystringCAprivatekeyfilepath.CreatesanewCAprivatekeyiffiledoesn'texist(default"~/.hetty/hetty_key.pem")-projectsstringProjectsdirectorypath(default"~/.hetty/projects")
此时我们将看到:
2020/11/0114:47:10[INFO]Runningserveron:8080...
接下来,访问http://localhost:8080即可。
证书配置和安装
为了让Hetty代理能够将请求顺利发送到HTTPS节点,我们需要为Hetty设置根CA证书。此外,可能需要将CA证书安装到主机上,以便浏览器信任这些证书。以下步骤将介绍如何生成证书,如何将其提供给Hetty,以及如何在本地CA存储中安装它们。
生成CA证书
可以用两种不同的方法生成CA密钥对。第一种方法直接与Hetty捆绑在一起,大大简化了流程。另一种方法是使用OpenSSL来生成它们,这样可以更好地控制过期时间和所使用的加密技术,但需要安装OpenSSL工具。我们建议初学者使用第一种方式。
使用Hetty生成CA证书
在Hetty首次通过命令行工具运行时,它会在~/.hetty/中生成默认密钥和证书。运行命令如下,不需要任何运行参数:
hetty
此时我们将得到~/.hetty/hetty_key.pem和~/.hetty/hetty_cert.pem,也就是对应的密钥和证书。
使用OpenSSL生成CA证书
我们可以生成一个新的密钥和CA证书,不过它们将在一个月后过期:
mkdir~/.hettyopensslreq-newkeyrsa:2048-new-nodes-x509-days31-keyout~/.hetty/hetty_key.pem-out~/.hetty/hetty_cert.pem
默认配置下,Hetty将会检查~/.hetty/中的密钥以及CA证书,也就是对应的hetty_key.pem和hetty_cert.pem。我们可以手动将它们移动到这里,Hetty将会自动检测它们。
hetty-keykey.pem-certcert.pem
信任CA证书
为了让浏览器允许网络流量通过本地Hetty代理,我们还需要将这些证书安装在本地CA存储中。
在Ubuntu中,我们可以使用下列命令更新本地VA存储,并安装证书:
sudocp~/.hetty/hetty_cert.pem/usr/local/share/ca-certificates/hetty.crtsudoupdate-ca-certificates
在Windows中,需要使用证书管理器来添加证书:
certmgr.msc
在macOS下,我们需要使用钥匙串访问程序来添加证书:
Application/Utilities/KeychainAccess.app
工具运行截图
关于如何使用Hetty对HTTP进行安全研究审计就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。