前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Hetty对HTTP进行安全研究审计

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

作者头像
FB客服
发布2021-01-08 15:31:10
1.6K0
发布2021-01-08 15:31:10
举报
文章被收录于专栏:FreeBufFreeBuf

Hetty

Hetty是一款针对安全研究设计的HTTP工具套件,该工具的目标是成为一些商业软件(比如说BurpSuite Pro)的开源替代产品。该工具的功能十分强大,并且针对信息安全以及漏洞Hunter社区的需求进行了定制开发。

该工具目前提供了下列功能:

中间人攻击,提供了包含日志记录的HTTP/1.1代理;

基于项目的数据库存储(SQLite);

Scope支持;

使用了GraphQL实现管理API;

嵌入式Web接口(js);

需要注意的是,当前版本的Hetty仍处于前期开发阶段,之后的版本还将添加更多的功能。

工具安装

Hetty会对自包含代码进行编译,其中包含嵌入式的SQLite数据库和一个基于Web实现的管理员接口。

安装预构建版本(建议)

广大研究人员可以直接访问该项目的【Releases页面:https://github.com/dstotijn/hetty/releases】来下载对应操作系统平台(支持Linux、macOS和Windows)的Hetty。

从源码构建

依赖组件:

  • Go
  • Yarn
  • rice

Hetty的功能实现依赖于SQLite(mattn/go-sqlite3),并且需要cgo来进行编译。除此之外,管理员面板(Next.js)的静态资源需要通过Yarn来生成,并且使用go.rice来嵌入到一个.go文件中。

接下来,使用下列命令将该项目源码克隆至本地,并使用build命令来创建出项目代码:

代码语言:javascript
复制
$ git clone git@github.com:dstotijn/hetty.git

$ cd hetty

$ make build

Docker安装

该工具还能够以Docker镜像来使用,该工具的Docker镜像目前已托管至Docker Hub上:dstotijn/hetty

如果需要持久存储CA证书和项目数据库的话,我们还需要运行下列命令来加载卷宗:

代码语言:javascript
复制
$ mkdir -p $HOME/.hetty

$ docker run -v $HOME/.hetty:/root/.hetty -p 8080:8080 dstotijn/hetty

工具使用

Hetty开始运行之后,默认会监听8080端口,并且可以通过http://localhost:8080来访问。根据传入的HTTP请求,该工具要么会以中间人(MITM)代理的身份运行,要么以API和Web接口的形式运行。

默认配置系啊,项目数据库和CA证书将存储在用户主目录下的.hetty目录之中。Linux/macOS对应的是$HOME,Windows对应的是%USERPROFILE%。

接下来,确保hetty路径已经设置在了$PATH环境变量中,然后运行下列命令:

代码语言:javascript
复制
$ hetty

下面给出的是工具的帮助文档和参数选项:

代码语言:javascript
复制
$ hetty -h

Usage of ./hetty:

  -addr string

        TCP address to listen on, in the form "host:port" (default ":8080")

  -adminPath string

        File path to admin build

  -cert string

        CA certificate filepath. Creates a new CA certificate is file doesn't exist (default "~/.hetty/hetty_cert.pem")

  -key string

        CA private key filepath. Creates a new CA private key if file doesn't exist (default "~/.hetty/hetty_key.pem")

  -projects string

        Projects directory path (default "~/.hetty/projects")

此时我们将看到:

代码语言:javascript
复制
2020/11/01 14:47:10 [INFO] Running server on :8080 ...

接下来,访问http://localhost:8080即可。

证书配置和安装

为了让Hetty代理能够将请求顺利发送到HTTPS节点,我们需要为Hetty设置根CA证书。此外,可能需要将CA证书安装到主机上,以便浏览器信任这些证书。以下步骤将介绍如何生成证书,如何将其提供给Hetty,以及如何在本地CA存储中安装它们。

生成CA证书

可以用两种不同的方法生成CA密钥对。第一种方法直接与Hetty捆绑在一起,大大简化了流程。另一种方法是使用OpenSSL来生成它们,这样可以更好地控制过期时间和所使用的加密技术,但需要安装OpenSSL工具。我们建议初学者使用第一种方式。

使用Hetty生成CA证书

在Hetty首次通过命令行工具运行时,它会在~/.hetty/中生成默认密钥和证书。运行命令如下,不需要任何运行参数:

代码语言:javascript
复制
hetty

此时我们将得到~/.hetty/hetty_key.pem和~/.hetty/hetty_cert.pem,也就是对应的密钥和证书。

使用OpenSSL生成CA证书

我们可以生成一个新的密钥和CA证书,不过它们将在一个月后过期:

代码语言:javascript
复制
mkdir ~/.hetty

openssl req -newkey rsa:2048 -new -nodes -x509 -days 31 -keyout ~/.hetty/hetty_key.pem -out ~/.hetty/hetty_cert.pem

默认配置下,Hetty将会检查~/.hetty/中的密钥以及CA证书,也就是对应的hetty_key.pem和hetty_cert.pem。我们可以手动将它们移动到这里,Hetty将会自动检测它们。

代码语言:javascript
复制
hetty -key key.pem -cert cert.pem

信任CA证书

为了让浏览器允许网络流量通过本地Hetty代理,我们还需要将这些证书安装在本地CA存储中。

在Ubuntu中,我们可以使用下列命令更新本地VA存储,并安装证书:

代码语言:javascript
复制
sudo cp ~/.hetty/hetty_cert.pem /usr/local/share/ca-certificates/hetty.crt

sudo update-ca-certificates

在Windows中,需要使用证书管理器来添加证书:

代码语言:javascript
复制
certmgr.msc

在macOS下,我们需要使用钥匙串访问程序来添加证书:

代码语言:javascript
复制
Application/Utilities/Keychain Access.app

工具运行截图

许可证协议

该项目的开发与发布遵循MIT开源许可证协议。

项目地址

Hetty:https://github.com/dstotijn/hetty

参考资料

https://github.com/dstotijn/hetty/projects/1

https://hetty.xyz/

https://github.com/dstotijn/hetty/releases

https://github.com/dstotijn/hetty/blob/master/CONTRIBUTING.md

https://discord.gg/3HVsj5pTFP

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 该工具目前提供了下列功能:
  • 工具安装
    • 从源码构建
      • Docker安装
      • 工具使用
      • 证书配置和安装
        • 生成CA证书
          • 使用OpenSSL生成CA证书
          • 信任CA证书
          • 工具运行截图
          • 许可证协议
          • 项目地址
          • 参考资料
          相关产品与服务
          容器镜像服务
          容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档