如何使用Hetty对HTTP进行安全研究审计

如何使用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。

从源码构建

依赖组件:

  • Go

  • Yarn

  • rice

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进行安全研究审计就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

发布于 2021-12-23 21:12:17
收藏
分享
海报
0 条评论
56
上一篇:如何利用http tunnel使用burpsuite拦截某个app的tcp数据包 下一篇:如何推动区块链安全有序发展
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码