当前位置: 首页 > news >正文

网络安全-真实ip获取伪造与隐藏挖掘

目录

  • 真实ip获取
    • 应用层
    • 网络层
      • 网络连接
      • TOA
      • proxy protocol
  • ip伪造
    • 应用层
    • 网络层
      • TOA攻击
      • proxy protocol
  • 隐藏
    • 代理
  • 挖掘
    • 代理
      • 多地ping
      • 历史DNS解析记录
      • 国外主机解析域名
      • 网站RSS订阅
      • 网络空间搜索引擎
  • 总结
  • 参考


本篇文章学习一下如何服务如何获取真实ip,隐藏自己的ip,攻击者如何伪造ip,挖掘出真实ip。

真实ip获取

应用层

这里以web为例,以下是一个简单的http服务器,获取真实ip
httpserver.py

from http.server import BaseHTTPRequestHandler, HTTPServerclass MyHTTPRequestHandler(BaseHTTPRequestHandler):def do_GET(self):self.send_response(200)self.send_header('Content-type', 'text/html')self.end_headers()# 获取真实IP地址ip = self.headers.get('X-Forwarded-For', self.client_address[0])# 返回真实IP地址self.wfile.write(bytes(ip, 'utf-8'))def run_server():host = '0.0.0.0'port = 8000server = HTTPServer((host, port), MyHTTPRequestHandler)print(f'Starting server on {host}:{port}...')try:server.serve_forever()except KeyboardInterrupt:passserver.server_close()print('Server stopped.')if __name__ == '__main__':run_server()

服务器启动代码

python3 httpserver.py

如果有这个X-Forwarded-For,就用这个,否则就用client_address[0]

客户端代码

import requests
url = 'http://127.0.0.1:8000'
headers = {'X-Forwarded-For': '192.168.1.1'}
response = requests.get(url, headers=headers)
print(response.text)

结果截图
在这里插入图片描述

网络层

网络连接

还是上面的代码,通过网络连接获取真实ip

不带header再次发送
在这里插入图片描述
通过网络连接获取真实ip当然很简单,也真实,但是往往客户端与服务器不是直接连通,中间有LB、CDN等。

雷池WAF就是通过连接获取请求者源IP的。
在这里插入图片描述

TOA

有些产品会把ip放到TOA(TCP Options),转发给下游,例如LB(Load Balancer),因此,下游服务获取真实ip时需要从TOA中获取
在这里插入图片描述

proxy protocol

有v1 v2两个版本,都存在伪造问题,且主流LB没有使用这种方式,仅nginx这种开源的看到了,所以没有深究,请查看参考。

ip伪造

应用层

以WEB为例,修改header即可。

import requests
url = 'http://127.0.0.1:8000'
headers = {'X-Forwarded-For': '8.8.8.8'}
response = requests.get(url, headers=headers)
print(response.text)

截图
在这里插入图片描述

网络层

TOA攻击

一些服务会通过TOA来获取真实ip,因此,可以通过修改TCP的选项(Options)来隐藏真实ip。
这里使用的是linux下方式,修改所有包,工具见参考。
首先,我先试验了一下,使用自己宿主机的服务器,抓包查看
在这里插入图片描述
在这里插入图片描述
发现确实有修改,Options字段有值,之后找了几个查ip的网站,发现ip138不受影响,另一个网站是被欺骗了。

 curl -A "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11Mozilla            /5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11" https://2023.ip138.com | grep 您的IPcurl -A "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11Mozilla            /5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11" https://zh-hans.ipshu.com/my_info | grep 下面是你的公            开IP

截图如下:
在这里插入图片描述
windows下可以自己写脚本来进行toa的修改

fake_toa.py

from scapy.all import *
import socket
import struct# 目标域名和端口
target_ip = '106.63.19.14'
target_port = 443# 伪造的源 IP 地址
fake_ip = '111.111.111.222'# 将伪造的 IP 地址转换为整数
fake_ip_as_int = struct.unpack("!I", socket.inet_aton(fake_ip))[0]# 创建自定义的 TCP 选项
option_254 = (254, b'\x00\x50' + struct.pack('!I', fake_ip_as_int))# 创建 IP 层
ip_layer = IP(dst=target_ip)# 创建 TCP 层,不添加 TCP 选项
syn = TCP(sport=RandShort(), dport=target_port, flags='S')# 组合 IP 层和 TCP 层,发送 SYN 数据包
syn_ack = sr1(ip_layer / syn)# 检查是否收到 SYN+ACK 数据包
if syn_ack[TCP].flags == 'SA':# 创建 ACK 数据包,也不添加 TCP 选项ack = TCP(sport=syn_ack[TCP].dport, dport=target_port, flags='A', seq=syn_ack[TCP].ack, ack=syn_ack[TCP].seq + 1)# 发送 ACK 数据包send(ip_layer / ack)# 创建 HTTP 请求,只包含 Host 头部# http_request = 'GET /ip/local/geo/v1/district HTTP/1.1\r\n' \#                'Host: qifu-api.baidubce.com\r\n\r\n'http_request = 'GET / HTTP/1.1\r\n' \'Host: 2023.ip138.com\r\n\r\n' \# 创建 HTTP 数据包,这次在 TCP 层添加自定义的选项http_packet = ip_layer / TCP(sport=syn_ack[TCP].dport, dport=target_port, flags='PA', seq=syn_ack[TCP].ack,ack=syn_ack[TCP].seq + 1, options=[option_254]) / Raw(load=http_request)# 接收 HTTP 响应http_response = sr1(http_packet)# 打印 HTTP 响应if http_response:print(http_response.show())else:print('No response')
else:print('Did not receive SYN+ACK. Received: {}'.format(syn_ack[TCP].flags))

在这里插入图片描述
在这里插入图片描述
抓包可以看到,确实添加了Options字段的内容

proxy protocol

有v1、v2两个版本,都可以伪造,用的不多也没找到开源工具就没深究了。

隐藏

代理

比较宽泛,无法列举全。例如,使用cdn来隐藏自己服务器的ip,使用“梯子”做中间人来访问一些你的ip无法访问的网站,或者开四层、七层代理做转发,使用LB来做负载均衡的同时隐藏后端服务ip等

挖掘

代理

以cdn为例,这里找了一个博客网站,尝试获取真实ip

多地ping

在这里插入图片描述
可以看到使用了腾讯云的CDN

历史DNS解析记录

查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录
在这里插入图片描述

国外主机解析域名

有的网站负责人为了省钱,只对国内使用cdn,于是国外的流量都直接打到了真实服务器上。第一步ping的时候有了,国外也是通过cdn的。

网站RSS订阅

有的网站可以邮件订阅RSS,发送邮件的服务器就是使用网站所在的服务器,这里该网站没有此功能,失败。

网络空间搜索引擎

这里使用了zoomeye,我查ip没有显示cdn,以为成功了,问了博客作者,还是cdn的ip
在这里插入图片描述

总结

  1. proxy protocol没有研究,和TOA差不多,按照协议发包就行了,实现就交给读者吧。
  2. TOA的伪造方式还是不错的,非linux下没有btftools,可以自己写一个代理,把浏览器的流量转发到本地代理,代理的功能就是把TOA改一下。
  3. 一些代理隐藏ip还是不错的,除非网站从开始没有使用cdn、部分使用cdn,或网站服务器有其他服务导致真实ip发出包了。该博客作者我也问了,一开始就使用了CDN,也没有其他子域名、服务,应该是无法找到真实IP了。

参考

长亭-雷池WAF

阿里云-DCDN获取真实ip

github-cloudproxy
github-FakeToa

github-xcdn
网络-TCP协议详解自学笔记(例题、代码、实战)
华为云-TOA插件配置

Github-FakeToa
NGC660安全实验室-IP伪造技术探究

proxy protocol文档
nginx-proxy protocol设置

站长工具-多地ping
微步在线-DNS解析
网络空间搜索引擎-zoomeye
博客网站

相关文章:

网络安全-真实ip获取伪造与隐藏挖掘

目录 真实ip获取应用层网络层网络连接TOAproxy protocol ip伪造应用层网络层TOA攻击proxy protocol 隐藏代理 挖掘代理多地ping历史DNS解析记录国外主机解析域名网站RSS订阅网络空间搜索引擎 总结参考 本篇文章学习一下如何服务如何获取真实ip,隐藏自己的ip&#xf…...

CMake入门教程【核心篇】添加子目录(add_subdirectory)

文章目录 1.概述2.添加子目录3.指定二进制目录4.排除子目录5.使用别名6.传递变量7.检查子目录是否存在 1.概述 add_subdirectory是 CMake 中的一个命令,用于向当前项目添加一个子目录。它的语法如下: #mermaid-svg-9zKJ3AvoVRln9hon {font-family:"…...

Prototype原型模式(对象创建)

原型模式:Prototype 链接:原型模式实例代码 注解 模式定义 使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。 ——《设计模式》GoF 目的 在软件系统中,经常面临这“某些结构复杂的对象”的创建工作&am…...

[Redis实战]分布式锁

四、分布式锁 4.1 基本原理和实现方式对比 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行&#xf…...

SpingBoot的项目实战--模拟电商【2.登录】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringBoot电商项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.功能需求 二.代码编写 …...

http——https实现指南

第一部分:HTTPS安全证书简介 什么是HTTPS安全证书? 在网络通信中,HTTPS安全证书是一种由可信任的证书颁发机构(CA)签发的数字证书,用于保障网站与用户之间的数据传输安全。通过加密和身份验证&#xff0c…...

ROS仿真R2机器人之安装运行及MoveIt的介绍

R2(Robonaut 2)是NASA美国宇航局与GM通用联合推出的宇航人形机器人,能在国际空间站使用,可想而知其价格是非常昂贵,几百万美刀吧,还好NASA发布了一个R2机器人的Gazebo模型,使用模型就不需要花钱了,由于我们…...

【linux 多线程并发】线程属性设置与查看,绑定CPU,线程分离与可连接,避够多线程下的内存泄漏

线程属性设置 ​专栏内容: 参天引擎内核架构 本专栏一起来聊聊参天引擎内核架构,以及如何实现多机的数据库节点的多读多写,与传统主备,MPP的区别,技术难点的分析,数据元数据同步,多主节点的情况…...

70.乐理基础-打拍子-三连音

上一个内容:69.乐理基础-打拍子-大切分与变体-CSDN博客 62-66是总拍数为一拍的节奏型,一共有七个,68-69是两拍的节奏型。 三连音说明: 1.三连音的总拍数可以是一拍、两拍、四拍。。。。 2.打拍子比较难,或许需要用V字…...

100天精通Python(实用脚本篇)——第111天:批量将PDF转Word文档(附上脚本代码)

文章目录 专栏导读1. 将PDF转Word文档需求2. 模块安装3. 模块介绍4. 注意事项5. 完整代码实现6. 运行结果书籍推荐 专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教…...

如何在 NAS 上安装 ONLYOFFICE 文档?

文章作者:ajun 导览 ONLYOFFICE 文档 是一款开源办公套件,其是包含文本文档、电子表格、演示文稿、表单、PDF 查看器和转换工具的协作性编辑工具。它高度兼容微软 Office 格式,包括 .docx、.xlsx 、.pptx 、pdf等文件格式,并支持…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C) Baumer工业相机Baumer工业相机的图像剪切(ROI)功能的技术背景CameraExplorer如何使用图像剪切(ROI)功…...

从 WasmEdge 运行环境读写 Rust Wasm 应用的时序数据

WebAssembly (Wasm) 正在成为一个广受欢迎的编译目标,帮助开发者构建可迁移平台的应用。最近 Greptime 和 WasmEdge 协作,支持了在 WasmEdge 平台上的 Wasm 应用通过 MySQL 协议读写 GreptimeDB 中的时序数据。 什么是 WebAssembly WebAssembly 是一种…...

算法训练营Day34(贪心算法)

1005.K次取反后最大化的数组和 1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 秒了 class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);// -4 -3 -2 -1 5//-2 -2 0 2 5int last -1;for(int i 0;i<…...

uniapp:全局消息是推送,实现app在线更新,WebSocket,apk上传

全局消息是推送&#xff0c;实现app在线更新&#xff0c;WebSocket 1.在main.js中定义全局的WebSocket2.java后端建立和发送WebSocket3.通知所有用户更新 背景&#xff1a; 开发人员开发后app后打包成.apk文件&#xff0c;上传后通知厂区在线用户更新app。 那么没在线的怎么办&…...

ARM1.2作业

实现数码管不同位显示不同的数字 spi.h #ifndef __SPI_H__ #define __SPI_H__ #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h"//MOSI对应的引脚输入高低电平的信号PE14 #define MOSI_OUTPUT_H() do{GPIOE->ODR | (0x1 << 14);}whi…...

【算法专题】递归算法

递归 递归1. 汉诺塔问题2. 合并两个有序链表3. 反转链表4. 两两交换链表中的节点5. Pow(x, n) --- 快速幂 递归 在解决⼀个规模为 n 的问题时&#xff0c;如果满足以下条件&#xff0c;我们可以使用递归来解决&#xff1a; 问题可以被划分为规模更小的子问题&#xff0c;并且…...

不停止业务的情况下优化 Elasticsearch Reindex

在使用 Elasticsearch 时,我们总有需要修改索引映射的时候,这时我们只能进行 _reindex。事实上,这是一个相当昂贵的操作,因为根据数据量和分片数量,完整复制一个索引可能需要几个小时。 花费的时间不是大问题,但更严重的是,它会影响生产环境的性能甚至功能。 相信大家…...

PB 按Excel动态创建对应字段

/* > Function: w_cwjk_xhyy.wf_dw_init >-------------------------------------------------------------------- > 描述: 按excel表格列名,创建对应字段,用于部分接口对应字段导出文件 >-------------------------------------------------------------------- …...

数据结构——红黑树 and B-树

红黑树 根据平衡条件第4、5两点 最短路径&#xff0c;都是黑色 最长路径&#xff0c;红黑相间 最长是最短的两倍 B-树...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...