网络准入 重定向,DNS劫持内网设备访问网站

news2024/12/28 3:57:54

环境:Nginx
问题:

1.某网络实施网络准入控制,需要劫持不受信网段的客户端 所有访问到指定引导页面
2.需要劫持PS4 用户访问任意网站,或用户指南 方式全自动破解

解决办法:搭建dnsmasq DNS服务器,全域名解析指向内网,搭配ngnix 反向代理所有域名到指定页面

背景:

1.局域网内用户取得IP后,需要进行portal认证才能上网,需要引导用户去认证页面,通过DNS劫持和nginx转发,用户访问任意网址自动跳转到弹窗页面
2.PS4 破解需要访问Hen的网站,对于架设在内网的网站需要在浏览器中手动输入网址才能发起破解,想要从用户指南菜单自动跳转到网站 全自动执行Hen

技术栈:Docker + dnsmasq + Nginx

文章目录

    • 1.DNS劫持 :
    • 2.配置dnsmasq :
      • 2.1 配置dnsmasq :
      • 2.2 测试dnsmasq :
    • 3.网站篇:
    • 4.修改客户端DNS
    • 5.在PS4上测试用户指南
      • 5.1 确保DNS正确
      • 5.2 打开用户指南,观察页面跳转和全自动破解


1.DNS劫持 :

为了图省事dnsmasq 直接拉的docker, 参考下面的配置文件,你如果有openwrt的路由器也可以直接使用,改配置文件即可,
这个镜像 jpillora/dnsmasq 带一个web修改配置文件界面,方便

version: "3.3"

services:
  dns-server:
    image: jpillora/dnsmasq
    container_name: dns-server
    restart: always
    environment:
      TZ: Asia/Shanghai
      HTTP_USER: admin
      HTTP_PASS: admin
      PORT: "5380"
    network_mode: "host"
    volumes:
      - /volume3/docker/dnsmasq/config/dnsmasq.conf:/etc/dnsmasq.conf:rw
    # 日志大小限制
    logging:
      driver: json-file
      options:
        max-size: "10m"

2.配置dnsmasq :

2.1 配置dnsmasq :

访问容器的5380端口,修改配置文件,重启服务
我们的目的是用户访问任意网址都去我们的网站,直接这一条就好了:

#所有域名
address=/#/192.168.31.232

在这里插入图片描述

2.2 测试dnsmasq :

使用浏览器访问任意网址测试下,或者直接nsloouo或者ping

 nslookup www.baidu.com 192.168.31.192

在这里插入图片描述

到这里,准入的部分,你只需要将这个VLAN/网段的 DHCP的DNS设置为这台,就可以实现自动跳转到验证页面了

3.网站篇:

安装ngnix是为了实现PS4 用户指南功能,他访问的是一个长链接,类似这样:
https://manuals.playstation.net/document/ct/ps4/index.html
如果直接转发域名,它携带的/document/ct/ps4/index.html传过去,就打不开了
就毕竟我们的伪站是没有这么多路径、虚拟目录,这就需要用到ngnix的反向代理了

为了省事还是用docker,参考下列配置:
用的jc21/nginx-proxy-manage 这个容器,web配置更方便了

version: '3'
services:
  app:
    image: 'dockerproxy.com/jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'  # 冒号左边可以改成自己服务器未被占用的端口
      - '82:81'  # 冒号左边可以改成自己服务器未被占用的端口
      - '443:443' # 冒号左边可以改成自己服务器未被占用的端口
    volumes:
      - ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
      - ./letsencrypt:/etc/letsencrypt  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中```

打开NPM的配置网站,就是81端口对应的那个,修改默认网站设置,先随便填写一个网站

在这里插入图片描述
然后打开配置文件直接修改为所有路径到HEN的网站:
一般是在容器的ngnix/data/nginx/default_host/site.conf 这个文件
直接修改为如下样式

# ------------------------------------------------------------
# Default Site
# ------------------------------------------------------------

server {
  listen 80 default;
listen [::]:80 default;

  server_name default-host.localhost;
  access_log /data/logs/default-host_access.log combined;
  error_log /data/logs/default-host_error.log warn;


  include conf.d/include/letsencrypt-acme-challenge.conf;
	location / {
    rewrite ^ http://192.168.31.192:84/900/02/index.html permanent;
}

}

找台电脑DNS设置为dnsmasq 的服务器,随便访问下任何网站,并携带路径测试,应该都能转发到目标网站

比如:
http://123/456
http://abc/def/123

4.修改客户端DNS

现在去PS4修改DNS执行dnsmasq,你也可以使用dhcp的option功能,让客户端自动获取不一样的dns

参考这篇文章:https://blog.csdn.net/wangrui1573/article/details/133270271

5.在PS4上测试用户指南

5.1 确保DNS正确

5.2 打开用户指南,观察页面跳转和全自动破解

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

最全解决:微服务之间调用出现Load balancer does not have available server for client

问题: 背景:现在是一个服务A要调用服务B(media-api)中的方法上传文件,因此需要再服务A中写一个feignclient,里面包含的是要调用的B服务的方法,然后出现找不到目标的情况 问题分析: 首先要确保服务和要被调…

java中lambda表达式之函数式接口

1.函数式接口(functional interface): 一个只有一个抽象方法的接口(可以包含其他方法默认、私有、静态),需要这种接口的对象时,就可以提供一个lambda表达式。 2.FunctionalInterface 注解&…

计算机竞赛 题目:基于大数据的用户画像分析系统 数据分析 开题

文章目录 1 前言2 用户画像分析概述2.1 用户画像构建的相关技术2.2 标签体系2.3 标签优先级 3 实站 - 百货商场用户画像描述与价值分析3.1 数据格式3.2 数据预处理3.3 会员年龄构成3.4 订单占比 消费画像3.5 季度偏好画像3.6 会员用户画像与特征3.6.1 构建会员用户业务特征标签…

【Python从入门到进阶】38、selenium关于Chrome handless的基本使用

接上篇《37、selenium关于phantomjs的基本使用》 上一篇我们介绍了有关phantomjs的相关知识,但由于selenium已经放弃PhantomJS,本篇我们来学习Chrome的无头版浏览器Chrome Handless的使用。 一、Chrome Headless简介 Chrome Headless是一个无界面的浏览…

在conda虚拟环境下安装PyTorch-gpu版本

conda环境配置 在conda虚拟环境下安装PyTorch-gpu版本1. 下载好anaconda以及CUDA2. 创建并进入虚拟环境 选择python版本3. 找对python torch torchvision cuda的对应版本 并 下载安装4. 测试是否成功5. 参考资料 在conda虚拟环境下安装PyTorch-gpu版本 引言: 学会在…

操作系统实践课程结课报告

操作系统实践课程结课报告 目标:Write your own OS in C 作者:我也需要被治愈(学号:hello os) 日期:2023年7月20日 个人觉得这个过程还是蛮有意思的,初步了解了有关的一些内容顺带复习了操作系…

运营人必备这个微信运营工具

微信管理系统CRM在各行各业都有应用的场景---IT互联网、制造业、商业服务、金融投资、教育培训、房产家装、电商、政务等20行业领域均得到广泛应用。 微信CRM管理系统的主要功能: 多个微信号聚合聊天:解决多个微信来回切换,换着手着手机的麻烦…

PHP 行事准则:allow_url_fopen 与 allow_url_include

文章目录 参考环境allow_url_fopenallow_url_fopen 配置项操作远程文件file 协议 allow_url_includeallow_url_include 配置项 allow_url_include 与 allow_url_fopen区别联系默认配置配置项关闭所导致异常运行时配置ini_set()限制 参考 项目描述搜索引擎Bing、GoogleAI 大模型…

VulnHub Earth

一、信息收集 1.主机和端口扫描 nmap -sS 192.168.103.1/24 发现443端口有DNS解析,在hosts文件中添加DNS解析: 2.收集earth.local信息 发现有Previous Messages 37090b59030f11060b0a1b4e0000000000004312170a1b0b0e4107174f1a0b044e0a000202134e0a161…

Verilator: sh: 1: exec: < PATHNAME >: not found

事出有因 I assumed that I install verilator via git clone its source, so I need to set the export VERILATOR_ROOT. At first, due to laziness, I just copy the code directly to my ubuntu. so stupid I am!!! Then, I recoginzed that the pathname is not real, …

Opengl之立方体贴图

简单来说,立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面:一个有纹理的立方体。你可能会奇怪,这样一个立方体有什么用途呢?为什么要把6张纹理合并到一张纹理中,而不是直接使用6个单独的纹理呢?立方体贴图有一个非常有用的特性,它可以通过一…

HTML5+CSS3+移动web 前端开发入门笔记(一)

千古前端图文教程 千古前端图文教程 git的使用 Git是一个分布式版本控制系统,它的作用主要包括以下几个方面: 版本管理:Git可以跟踪文件的修改历史,记录每次提交的内容、时间和作者等信息。通过Git,开发人员可以轻…

波奇学C++:红黑树

红黑树性质: 1.每个结点不是红色就是黑色。 2.根节点是黑色 3.如果一个节点是红色,它的两个孩子必须是黑色 4.对于每个节点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点 5.每个叶结点都是黑色的&#xff08…

主机ping不通虚拟机,虚拟机可以ping同主机

问题:主机ping不通虚拟机 虚拟机可以ping通主机(192.168.43.140)和外网(www.baidu.com) 解决方法: 1.打开【控制面板】-->【网络和Internet】-->【网络连接】 2.选择VMnet8 右键【属性】 3.修改 IP地址(I)和 子…

1、内核加载模块

一、静态加载 1、新功能源码与内核源码一起编译进uImage文件内 新功能源码与Linux内核源码在同一目录结构下在linux-3.14/drivers/char/目录下编写hello.c文件&#xff0c;内容如下 #include <linux/module.h> #include <linux/kernel.h>int __init myhello_ini…

oracle OCP OCM MySQL OCP认证难吗?

好多人在初次考OCP时&#xff0c;不知道如何选择&#xff0c;本文让姚远ACE老师为大家总结一下吧&#xff01; 选择OCP认证时要注意的问题&#xff1a; 1&#xff0c;授课老师师资经验&#xff08;非常重要&#xff09; 2&#xff0c;课程大纲 3&#xff0c;试听课程 4&am…

零食食品经营小程序商城的作用是什么

零食几乎可以涵盖每个年龄阶段&#xff0c;同时又是市场中常见的零售批发商品&#xff0c;在多个场景中都有销售/购买属性&#xff0c;对消费者来说&#xff0c;购买零食的渠道多种多样&#xff0c;无论线下还是线上&#xff0c;都可随心而购。 庞大市场升级促进下&#xff0c…

医学影像归档与通讯系统(PACS)系统源码 PACS三维图像后处理技术

医学影像归档与通讯系统&#xff08;PACS&#xff09;系统源码 PACS三维图像处理 医学影像归档与通讯系统&#xff08;PACS&#xff09;系统&#xff0c;是一套适用于从单一影像设备到放射科室、到全院级别等各种应用规模的医学影像归档与通讯系统。PACS集患者登记、图像采集、…

国庆特别篇:中秋与国庆同日相迎

国庆特别篇&#xff1a;中秋与国庆同日相迎 国庆特别篇&#xff1a;中秋与国庆同日相迎 &#x1f389;摘要引言旅途风景分享 &#x1f5fa;️中秋团圆&#xff0c;返乡之路风景宜人的旅游胜地 技术探讨&#xff1a;Java中的可变参数 &#x1f680;什么是可变参数&#xff1f;使…

RabbitMQ集群搭建详细介绍以及解决搭建过程中的各种问题——实操型

RabbitMQ集群搭建详细介绍以及解决搭建过程中的各种问题——实操型 1. 准备工作1.1 安装RabbitMQ1.2 简单部署搭建设计1.3 参考官网 2. RabbitMQ 形成集群的方法3. 搭建RabbitMQ集群3.1 部署架构3.2 rabbitmq集群基础知识3.2.1 关于节点名称&#xff08;标识符&#xff09;3.2.…