安全矩阵

 找回密码
 立即注册
搜索
查看: 360|回复: 0

一款自动化Host碰撞工具

[复制链接]

260

主题

275

帖子

1065

积分

金牌会员

Rank: 6Rank: 6

积分
1065
发表于 2023-6-1 21:27:18 | 显示全部楼层 |阅读模式
本帖最后由 luozhenni 于 2023-6-1 21:27 编辑

一款自动化Host碰撞工具         

原文链接:一款自动化Host碰撞工具
cckuailong             HACK之道         2023-05-30 08:30 发表于重庆

hostscan
简介

自动化Host碰撞工具,帮助红队快速扩展网络边界,获取更多目标点背景很多时候,访问目标网站时,使用其真实IP无法访问,只有域名才能访问到后端业务服务。这是因为反代服务器(如nginx)配置了禁止直接IP访问。nginx后面的业务有时是隐藏的:

  • 不开放到外网的业务,如测试业务
  • 原来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
  1. hostscan --help
  2. / )( \ /  \ / ___)(_  _)/ ___) / __) / _\ (  ( \
  3. ) __ ((  O )\___ \  )(  \___ \( (__ /    \/    /
  4. \_)(_/ \__/ (____/ (__) (____/ \___)\_/\_/\_)__)        
  5. Usage of hostscan:
  6.   -D string
  7.         Hosts in file to test
  8.   -I string
  9.         Nginx Ip in file to test
  10.   -O string
  11.         Output File (default "result.txt")
  12.   -T int
  13.         Thread for Http connection. (default 3)
  14.   -U    Open to send random UserAgent to avoid bot detection.
  15.   -d string
  16.         Host to test
  17.   -i string
  18.         Nginx IP
  19.   -t int
  20.         Timeout for Http connection. (default 5)
  21.   -v    Show hostscan version
复制代码


运行截图
使用的测试环境是下一小节中介绍的Host 碰撞成功



碰撞返回 400




测试环境

Docker

  1. docker pull vultarget/host_collision
  2. docker run -it -p 3333:8080 --rm vultarget/host_collision
复制代码
Nginx 配置

反代服务器 (核心)

  1. server {
  2. listen  8080  default_server;
  3. server_name _;
  4. return 400;
  5. }
  6. server {
  7. listen  8080;
  8. server_name test.com;


  9. location / {
  10. proxy_pass http://127.0.0.1:80;
  11. proxy_redirect off;
  12. proxy_set_header Host $host:$server_port;
  13. proxy_set_header X-Real-IP $remote_addr;
  14. root    html;
  15. index   index.html  index.htm;
  16.     }
  17. access_log logs/test.com.log;
  18. }
复制代码

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

示例业务
  1. server {
  2. listen       80;
  3. server_name  localhost;


  4. location / {
  5. root   /usr/share/nginx/html;
  6. index  index.html index.htm;
  7.     }


  8. error_page   500 502 503 504  /50x.html;
  9. location = /50x.html {
  10. root   /usr/share/nginx/html;
  11.     }
  12. }
复制代码


简单的nginx初始页面工具下载地址下方公众号后台回复数字【1645】获取

  


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-4-19 07:24 , Processed in 0.014479 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表