安全工具 | 搭建带有 Web 仪表板的Interact.sh

news2024/10/10 13:05:44

介绍

Interactsh 是一个用于检测带外交互的开源工具。它是一种旨在检测导致外部交互的漏洞的工具。本文将主要介绍在子域上设置私有 Interact.sh 服务器以及部署其 Web 应用程序。只需一个 AWS EC2 或 VPS 实例和一个域。

要求

•具有静态IP的AWS EC2 / VPS

•拥有自己的域名或子域

开始

EC2实例/VPS

首先,创建一个安全组/防火墙规则,允许以下端口的入站连接

DNS:UDP 端口 53。

HTTP:TCP 端口 80。

HTTPS:TCP 端口 443。

SMTP:TCP 端口 25 和 587。

SMTPS:TCP 端口 465。

替代 HTTP:TCP 8443 (可选。对于 interact.sh Web 应用程序)

启动一个使用上述安全组的 EC2 实例,并将一个 Elastic IP 地址分配给该 EC2 实例。

图片

DNS 记录

前往DNS平台。在我的案例中是 Namecheap。购买一个你喜欢的域名。进入域名设置 -> 高级 DNS。

这次,我决定为我的 interact.sh 设置使用以下子域名:

interact.domain.tld — interact.sh 服务器本身,因此 payloads 会类似于 “.interact.domain.tld”

ns1.interact.domain.tld — 用作 DNS 服务器的子域名

interactapp.domain.tld(可选)— 用于设置 interact.sh 网页客户端的子域名

因此,需要添加以下 DNS 记录:

A 记录:将 ns1.interact 指向 Elastic IP

NS 记录:将 interact 指向 ns1.interact.domain.tld

A 记录(可选):将 interactapp 指向将托管网页应用程序的 Elastic IP

图片

设置服务器

登录 EC2 机器。

安装Go:

sudo apt install golang

下载最新的 interact.sh 服务器 go 二进制文件:https://github.com/projectdiscovery/interactsh

go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-server@latest

接下来,设置运行此二进制文件的系统服务:

nano /etc/systemd/system/interactsh.service

TOKEN你可以使用任何随机字符串。

Description=InteractShAfter=network.target
[Service]ExecStart=/home/ubuntu/go/bin/interactsh-server -domain interact.domain.tld -t TOKEN -cidl 5 -cidn 6Restart=alwaysUser=rootGroup=rootEnvironment=PATH=/usr/bin:/bin:/usr/local/binWorkingDirectory=/home/ubuntu/go/bin
[Install]WantedBy=multi-user.target

你可以在 ExecStart 中添加额外的参数。例如,我使用 -cidl 和 -cidn 来缩短 payloads。

除了使用参数,你也可以使用配置文件。默认的配置文件位于 /home/ubuntu/.config/interactsh-server/config.yaml

在这种情况下,只需指定 -config <path> 参数即可。

启动服务器。HTTPS 证书将自动添加:

sudo systemctl enable interactshsudo systemctl start interactsh

图片

从现在开始,你已经可以使用 CLI 客户端、Burp Extensions 或公共托管的 Web 客户端[1]:

图片

设置 Web 应用程序(可选)

网络应用程序设置

Interactsh-web 是一个免费的开源网页客户端,它在浏览器中的仪表板上以良好的方式显示 Interactsh 的交互。它利用浏览器的本地存储来存储和展示这些交互。

你可以使用一个独立的 EC2 实例/VPS,也可以使用相同的实例。

从 GitHub 克隆最新版本的网页应用程序,并构建镜像:

git clone https://github.com/projectdiscovery/interactsh-web.gitcd interactsh-websudo docker build -m=1400m -t interactshwebserv .

在镜像构建完成后,你可以使用你的预设启动容器,这样你就可以直接打开网页应用程序,访问<http://YOUR_IP:3000> 并立即使用它:

sudo docker run -e REACT_APP_HOST=interact.domain.tld \-e REACT_APP_CIDL=5 -e REACT_APP_CIDN=6 \-e REACT_APP_TOKEN=<YOUR_TOKEN> -m=1400m \-it -p 0.0.0.0:3000:3000 interactshwebserv

然而,将应用程序暴露到互联网并不是一个好主意,因为它没有认证机制,且端口是纯 HTTP。不要使用 0.0.0.0 或在防火墙中过滤 3000 端口。

Nginx 反向代理

作为一种解决方案,你可以使用 nginx 反向代理并启用基本认证来实现身份验证:

#Install apache-utilssudo apt-get install apache2-utils# Create a userhtpasswd -c .htpasswd admin
#Install certbotsudo apt install certbot python3-certbot-nginx
#Get an HTTPS certificate for interactapp subdomain:sudo certbot certonly -d interactapp.domain.tld  >Spin up a temporary webserver (standalone)
#Copy the certificates sudo cp /etc/letsencrypt/live/interactapp.doman.tld/fullchain.pem .sudo cp /etc/letsencrypt/live/interactapp.doman.tld/privkey.pem .

运行 nginx 容器:

sudo docker run - name nginx-basic-auth-proxy \ -v $(pwd)/.htpasswd:/etc/nginx/.htpasswd:ro \-v $(pwd)/fullchain.pem:/etc/nginx/ssl/fullchain.pem:ro \-v $(pwd)/privkey.pem:/etc/nginx/ssl/privkey.pem:ro \-p 8443:443 -d nginx

在 nginx 容器内打开 shell:

sudo docker exec -it nginx-basic-auth-proxy bash

编辑nginx配置:

nano /etc/nginx/conf.d/default.conf

将 YOUR_WEB_APP_CONTAINER_IP 替换为运行网页应用程序的容器/主机地址。

作为一种快速而简便的方法,你可以直接使用 docker 主机 IP(172.17.0.1),因为 interact-sh 网页应用程序的 3000 端口是在 0.0.0.0 上暴露的。否则,使用在前一步中创建的 interactsh-web 容器的 IP。

再次提醒:不要将 3000 端口暴露到互联网。​​​​​​​​​​​​​​

nano /etc/nginx/conf.d/default.confserver { listen 443 ssl;
ssl_certificate /etc/nginx/ssl/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5;
location / { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://<YOUR_WEB_APP_CONTAINER_IP>:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}

现在,重新加载 nginx:

sudo docker exec -it nginx-basic-auth-proxy nginx -s reload

使用

访问 https://interactapp.domain.tld:8443,并使用你添加到*.htpasswd 的*凭据登录:

图片

登录后即可使用,其他所有设置均在 Web 应用程序启动时完成了:

图片

References

[1] 公共托管的 Web 客户端: https://app.interactsh.com/#/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2202054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

A CXL-Powered Database System: Opportunities and Challenges——论文阅读

ICDE 2024 Paper CXL论文阅读笔记整理 背景 Compute Express Link&#xff08;CXL&#xff09;是处理器和设备&#xff08;如内存缓冲区&#xff09;之间的开放式行业标准互连协议&#xff0c;基于CXL的内存架构如图1所示&#xff0c;拥有高带宽、低延迟以及对一致性和内存语…

Java 的数据结构整理(整合版)

Java 的数据结构整理&#xff08;整合版&#xff09; 一、数据输入输出 https://www.runoob.com/java/java-scanner-class.html 这部分是为了预防 leetcode 刷习惯了&#xff0c;忘记怎么处理输入输出的问题 数据输入 Java的数据输入和 C 相比非常繁琐&#xff0c;因此大多…

双十一有哪些不容错过的电子产品?看完不信你还不心动!

2024年双十一购物庆典即将上演&#xff0c;各大电商将携众多精品数码产品亮相&#xff0c;涵盖最新智能手机、笔记本、平板及智能手表等。这些产品集时尚外观与高端性能于一身&#xff0c;旨在满足用户多元化需求&#xff0c;如提升工作效率、享受娱乐时光、优化出行体验等。为…

中国上市药品目录集数据库查询方法-支持数据下载

《中国上市药品目录集》由国家食品药品监督管理总局以数据库形式发布并实时更新&#xff0c;由CDE负责日常维护和管理。《中国上市药品目录集》收录了在中国批准上市的创新药、改良型新药、化学药品新注册分类的仿制药以及通过质量和疗效一致性评价的药品的具体信息。这个目录集…

jmeter入门: 安装

1. download Apache JMeter - Download Apache JMeter 2. 解压jmeter包 3. 安装插件Install :: JMeter-Plugins.org 下载jar包&#xff0c;放到lib/ext目录 4. 打开jmeter &#xff08;可以看到插件管理选项&#xff09;

Autoware.universe-红绿灯识别程序调试

1、环境 gpu&#xff1a;RTX3070 操作系统&#xff1a;ubuntu 22.04 显卡驱动支持的最高cuda版本&#xff1a;cuda 12.6 cuda运行版本&#xff1a;cuda 12.3&#xff08;注&#xff1a;cuda运行版本需要小于显卡驱动支持的最高cuda版本&#xff09; 2、仓库 https://gitee.com/…

UR-vnc如何卸载和重新安装

urvnc资源下载https://download.csdn.net/download/xiaoding_ding/87610583 场景&#xff1a;有时候我们安装ur机器人vnc的时候没有完全安装完就拔了U盘&#xff0c;会出现一直登陆一直提示密码错误。这个时候就需要我们卸载这个vnc,然后重新进行安装了。 如果不卸载会提示已…

人工智能:超越人类思维的边界

人工智能在追求真理和正确性方面面临诸多挑战&#xff0c;而人类的思维方式在其中扮演着重要角色。然而&#xff0c;新一代的人工智能正通过更具实验性的方法&#xff0c;力图在机器学习领域实现远超人类的突破。 AlphaGo&#xff1a;人工智能的里程碑 提及人工智能的突破&…

全闪 SDS 一体机提供 FC 能力承载医院核心业务

邹平市人民医院使用 X3000 SDS 一体机组建分布式存储集群&#xff0c;通过 FC 接口 与 VMware 集群连接&#xff0c;以全闪池承载核心业务&#xff0c;对象存储承载 PACS 数据&#xff0c;实现存储架构的升级改造。 “新医改”的不断推进&#xff0c;对医院的运营管理、服务质…

洗衣店管理升级:Spring Boot订单系统

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

楼宇电力测量有什么特点

楼宇电力测量作为现代建筑管理中不可或缺的一环&#xff0c;其特点体现在多个方面&#xff0c;涵盖了测量的准确性、实时性、高效性以及对于节能和能源管理的重要性。这些特点使得楼宇电力测量系统在现代建筑管理中发挥着越来越重要的作用&#xff0c;为建筑行业的绿色发展和可…

华为Eth-trunk链路聚合加入到E-trunk实现跨设备的链路聚合

一、适用场景&#xff08;注&#xff1a;e-trunk与eth-trunk是2个不同的概念&#xff09; 1、企业中有重要的server服务器业务不能中断的情况下&#xff0c;可将上行链路中的汇聚交换机&#xff0c;通过eth-trunk链路聚合技术&#xff0c;实现链路故障后&#xff0c;仍有可用的…

Elasticsearch(看这一篇就够了)

目录&#xff1a; Elasticsearch介绍正排索引和倒排索引Elasticsearch安装安装ES服务安装服务安装kibana 索引操作创建索引查询索引库修改索引库删除索引库 Elasticsearch常用操作文档操作新增文档查询文档删除文档根据id批量查询文档查询所有文档修改文档部分字段 域的属性分词…

Nacos微服务配置管理和拉取

目录 前言 需求分析 解决方案 实现步骤 进入nacos控制面板 新建配置 项目配置获取步骤 统一配置管理步骤 引入Nacos的配置管理客户端依赖 新建bootstrap.yml文件 更改application.yml文件 测试 总结 前言 回顾之前的微服务项目结构&#xff0c;搭建了两个微服务&a…

Day06-数据库服务存储引擎

Day-06-数据库存储引擎知识 1、数据库联合索引应用2、数据库索引扩展信息&#xff08;扩展列信息说明&#xff09;3、数据库索引应用总结4、数据库存储引擎概述5、数据库存储引擎种类6、数据库存储引擎特性&#xff08;Innodb&#xff09;Innodb vs MyISAM7、数据库存储引擎应用…

Web前端入门

文章目录 前言1 Web前端概述1.1 网站和网页1.2 HTML语言1.3 网页的形成1.4 常用浏览器1.5 浏览器内核&#xff08;渲染引擎)1.6 web标准 2 HTML标签2.1 开发工具2.2 HTML语法规则2.3 标签的关系2.4 HTML注释标签2.5 结构标签 3 常用标签3.1 标题标签3.2 段落标签3.3 换行标签3.…

开源城市运动预约的工具类小程序源码

运动场馆预约小程序是一款主要针对城市运动预约的工具类程序&#xff0c; 产品主要服务人群为20-45岁运动爱好者&#xff0c; 程序前后端完整代码&#xff0c;包括场馆动态&#xff0c;运动常识&#xff0c;羽毛球场地预约&#xff0c;足球场地预约&#xff0c;篮球场地预约&a…

【C语言】常见概念

文章目录 库函数关键字字符和ASCll编码字符串与\0转义字符语句和语句分类注释 库函数 为了不再重复实现常见的代码&#xff0c;让程序员提升开发效率&#xff0c;C语言标准规定了一组函数&#xff0c;这些函数再由不同的编译器厂商根据标准进行实现&#xff0c;提供给程序员使…

DAY4 程序流程控制

程序执行顺序 顺序结构、分支结构&#xff08;if switch&#xff09;、循环结构(for while do-while) 分支结构 IF SWITCH 表达式类型只能是byte、short、 int、 char&#xff0c;JDK5开始支持枚举&#xff0c;JDK7开始支持String、不支持double、 float、Long。 case给出的…

基于Qt实现(PC)学生信息管理系统

学生信息管理系统 一、系统指南 本系统为表格式的学生信息管理系统&#xff0c;提供了文件新建、打开及保存功能&#xff0c;还可在表格中对数据进行增加、删除、修改、搜索&#xff0c;下面将一一介绍这些功能 1、新建文件 新建文件将会产生一个全新的空表格&#xff0c;…