关于Skyhook
Skyhook是一款功能强大的双向HTTP文件传输混淆工具,该工具基于REST实现,可以帮助广大研究人员在目标网络系统中绕过IDS的检测,并实现任意文件双向传输。该工具提供了一个预封装的Web客户端,客户端基于React和Vanilla JS实现,能够帮助我们管理文件传输任务。
功能介绍
1、支持对文件内容进行混淆/反混淆处理;
2、用户可配置的混淆链;
3、支持自签名证书和Lets Encrypt证书;
4、嵌入式Web应用程序,支持进行自定义配置和文件传输管理;
5、实现了服务器指纹恢复技术:加密加载程序能够在使用文件传输接口时动态加密接口文件,并对API和Web资源路径进行随机化处理;
工具运行机制
Skyhook的文件传输服务器在将文件内容写入响应body之前,会使用用户配置的一系列模糊算法对文件内容进行模糊处理。使用了相同模糊处理算法的客户端会在将文件保存到磁盘之前,对文件内容进行反模糊处理。除此之外,该工具还实现了一种文件流技术,该技术可以用来以分块的方式管理HTTP事务,从而优化大型文件传输。
工具的运行机制如下图所示:
Skyhook文件传输流程图如下:
Skyhook文件传输序列图如下:
Skyhook身份认证流程图如下:
工具下载
我们可以直接访问该项目的【Releases页面】来下载并安装Skyhoo。
除此之外,广大研究人员还可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/blackhillsinfosec/skyhook.git
然后自行完成项目代码构建即可。
工具使用
Skyhook服务器的启动与配置
启动服务器:
skyhook server run --config-file your-config.yml
使用一台不受蓝队控制的主机,然后使用管理员账号访问管理端服务器的Web接口。
然后在接口中点击“Obfuscators”,并更新指定的混淆配置,最后点击“Save”保存:
获取指向传输服务器的链接,并在浏览器中打开,然后使用非管理员账号进行认证,最后提供要传输的文件即可。
如何获取传输服务器链接
在管理员接口中,点击“Quick Copy”,然后选择需要的链接并复制即可:
从磁盘上传文件
点击Web接口中的“Browser”,选择需要上传的文件,然后点击“Upload”即可:
上传完成后,点击“Cycle”按钮刷新列表,并确认文件上传成功:
工具使用演示
可用的混淆配置:
文件传输接口中,支持下载或上传文件,工具会先使用JavaScript对文件进行解压缩:
使用Burp检查通信数据,可以看到关键的数据已经进行了加密:
许可证协议
本项目的开发与发布遵循MIT开源许可证协议。
项目地址
Skyhook:【GitHub传送门】
参考资料
https://publish.obsidian.md/bhis-pub-user-docs/Documentation/Skyhook/Skyhook+Index