一款自动化Host碰撞工具

VSole2023-05-30 15:26:21

hostscan

简介

自动化Host碰撞工具,帮助红队快速扩展网络边界,获取更多目标点

背景

很多时候,访问目标网站时,使用其真实IP无法访问,只有域名才能访问到后端业务服务。这是因为反代服务器(如nginx)配置了禁止直接IP访问。

nginx后面的业务有时是隐藏的:

  1. 不开放到外网的业务,如测试业务
  2. 原来DNS解析到外网,但是后来删除了A记录(nginx后的业务没删除,转移到了内网访问)

怎么访问这些隐藏的业务呢?这就需要今天的主角登场了--Host碰撞技术

使用示例

./hostscan -d test.com -i 127.0.0.1:3333
./hostscan -D input/hosts.txt -I input/ips.txt -O out/output.txt -T 5 -t 10

使用说明

请下载release中对应平台的版本运行

注意

  • 默认并发数为3, 如果网络环境良好,请适当调大以增加速度,最高可以设置成rlimit数值
  • 默认UserAgent使用的是golang-hostscan/xxxx,可能留存扫描痕迹,可以使用参数'-U'来使用随机UA
  • 现已支持输入大文件的支持,无需担心OOM
hostscan --help/ )( \ /  \ / ___)(_  _)/ ___) / __) / _\ (  ( \) __ ((  O )\___ \  )(  \___ \( (__ /    \/    /\_)(_/ \__/ (____/ (__) (____/ \___)\_/\_/\_)__)        Usage of hostscan:  -D string        Hosts in file to test  -I string        Nginx Ip in file to test  -O string        Output File (default "result.txt")  -T int        Thread for Http connection. (default 3)  -U    Open to send random UserAgent to avoid bot detection.  -d string        Host to test  -i string        Nginx IP  -t int        Timeout for Http connection. (default 5)  -v    Show hostscan version

运行截图

使用的测试环境是下一小节中介绍的

Host 碰撞成功

碰撞返回 400

测试环境

Docker

docker pull vultarget/host_collisiondocker run -it -p 3333:8080 --rm vultarget/host_collision

Nginx 配置

反代服务器 (核心)

server {listen  8080  default_server;server_name _;return 400;}server {listen  8080;server_name test.com;
location / {proxy_pass http://127.0.0.1:80;proxy_redirect off;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;root    html;index   index.html  index.htm;    }access_log logs/test.com.log;}

第一个server表示 host为空时,会返回400

第二个server表示 nginx会根据传入的host进行服务转发,访问test.com访问的业务为 127.0.0.1:80 上的服务

示例业务

server {listen       80;server_name  localhost;
location / {root   /usr/share/nginx/html;index  index.html index.htm;    }
error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;    }}

简单的nginx初始页面

nginxhost
本作品采用《CC 协议》,转载必须注明作者和本文链接
在 Linux 服务器中,可以通过内核调优、DPDK 以及 XDP 等多种方式提高服务器的抗攻击能力,降低 DDoS 对正常服务的影响。在应用程序中,可以使用各级缓存、WAF、CDN 等来缓解 DDoS 对应用程序的影响。Linux 内核协议栈数据包处理速度慢导致的延迟。
haproxy-ingress的部署
2022-01-16 14:01:33
以前给环境安装ingress都直接用kubernetes的ingress-nginx,国内没有安装源,而且ingress自己没有高可靠,最近研究了一种新的ingress,haproxy-ingress,效果不错,安装也方便,还默认支持高可靠, 参考https://haproxy-ingress.github.io/docs/getting-started/, 需要用helm来安装,因此先安装h
漏洞探测辅助平台
2022-12-22 09:14:38
可帮助检测漏洞:log4j2 fastjson ruoyi Spring RCE Blind SQL Bland XXE. 我习惯于将服务用tmux放到后台运行2、启动webserver安装python依赖注意,需要用python3.7及以上版本,否则会有兼容性问题,多python推荐使用condacd cola_dnslog. 至此,三端已经全部开启!
可帮助检测漏洞:log4j2 fastjson ruoyi Spring RCE Blind SQL Bland XXE. 我习惯于将服务用tmux放到后台运行2、启动webserver安装python依赖注意,需要用python3.7及以上版本,否则会有兼容性问题,多python推荐使用condacd cola_dnslog. 至此,三端已经全部开启!
nginx后面的业务有时是隐藏的:不开放到外网的业务,如测试业务原来DNS解析到外网,但是后来删除了A记录怎么访问这些隐藏的业务呢?这就需要今天的主角登场了--Host碰撞技术使用示例./hostscan -d test.com -i 127.0.0.1:3333. 第一个server表示 host为空时,会返回400第二个server表示 nginx会根据传入的host进行服务转发,访问test.com访问的业务为 127.0.0.1:80 上的服务示例业务server {listen 80;server_name localhost;
扫描到网站存在http host头攻击漏洞,需要对该漏洞进行修复,网站后台是用java写的,对于这种host头攻击的方式,有很多种方式避免。 如从源头考虑的话,一般网站都配置了nginx或者部署在Apache上面,可以在nginx或者Apache上拦截非法请求头的; 由于我是在本机上测试的,项目是部署在tomcat上,故无法验证nginx和apache的修复方式。 这里介绍一下从过滤器的层次
1业务通过 DNS 解析到外网,后面删除了 A 记录2测试业务0x04 什么样的 ip 能进行 host 碰撞?这里我看网上很多人写文章都是写 ip 状态码为 40X 的时候,在进行 host 碰撞但是我想说,这不一定正确!!!实际上,我认为应该改为任何一个 ip 都有 host 碰撞的价值!!!将外网域名全部 ping 一下获取一下 ip,并将收集到的目标 ip 段加外网域名 ip 段保存为一个 ipList.txt 备用
Nginx入门指北
2022-03-17 22:23:01
Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
引言 host碰撞,懂的都懂。这里主要讲下脚本实现逻辑。 host碰撞逻辑 ip与host组合,进行尝试,修改请求头中的host。本脚本主要是多线程先进行DNS解析检测,排除外网域名,提高扫描准确度,再进行host碰撞扫描。 脚本实现逻辑 1、ip_file加载ip,host_file加载域名(一行一个) 2、实现函数: domainCheckThreadMain
VSole
网络安全专家