NAT后面的设备如何定位

本文探讨了TCP/IP协议族的深入应用,包括通过协议头字段进行网络终端画像,利用NAT特性定位真实设备,以及如何通过TCP指纹库识别操作系统版本。文章提供了实用技巧,如判断TCP流中reset包的真实性及NAT后的设备数量估算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                       

这是一篇trick短文,这是一篇不靠谱的hack短文。

  系统中有一个数据集,即peer metric,在sysctl中就是:

net.ipv4.tcp_no_metrics_save
  
  • 1

这么一个参数。它包含了任意一个peer的以下字段:

enum {    RTAX_UNSPEC,#define RTAX_UNSPEC RTAX_UNSPEC    RTAX_LOCK,#define RTAX_LOCK RTAX_LOCK    RTAX_MTU,#define RTAX_MTU RTAX_MTU    RTAX_WINDOW,#define RTAX_WINDOW RTAX_WINDOW    RTAX_RTT,#define RTAX_RTT RTAX_RTT    RTAX_RTTVAR,#define RTAX_RTTVAR RTAX_RTTVAR    RTAX_SSTHRESH,#define RTAX_SSTHRESH RTAX_SSTHRESH    RTAX_CWND,#define RTAX_CWND RTAX_CWND    RTAX_ADVMSS,#define RTAX_ADVMSS RTAX_ADVMSS    RTAX_REORDERING,#define RTAX_REORDERING RTAX_REORDERING    RTAX_HOPLIMIT,#define RTAX_HOPLIMIT RTAX_HOPLIMIT    RTAX_INITCWND,#define RTAX_INITCWND RTAX_INITCWND    RTAX_FEATURES,#define RTAX_FEATURES RTAX_FEATURES    RTAX_RTO_MIN,#define RTAX_RTO_MIN RTAX_RTO_MIN    RTAX_INITRWND,#define RTAX_INITRWND RTAX_INITRWND    RTAX_QUICKACK,#define RTAX_QUICKACK RTAX_QUICKACK    RTAX_CC_ALGO,#define RTAX_CC_ALGO RTAX_CC_ALGO    __RTAX_MAX};
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

然而大多数人觉得这并不靠谱,因为IPv4固有的问题,比如地址数量有限,天生无安全措施等,大多数组织都会采用NAT来缓解,同时运营商也会在征求用户同意的前提下使能NAT,这就会带来一个问题。

  peer表征一个机器的IP地址,如它只是一个NAT设备,那么它后面的设备信息将全部丢失,也因为如此,Linux内核默认关闭了metric。真的就是这样吗?

  不是的!

  网络终端画像不仅仅可以通过五元组来绘制,它可以使用TCP/IP协议族的协议头里面的任何字段来绘制。我们有一个非常熟悉的例子,即nmap,这个工具背后有一个大型的指纹库,它可以根据TCP的初始序列号来定位OS的版本!

  这很简单。其实协议头的每一个字段都可以利用,只要你知道它们的实现细节。

  如何定位到一个TCP流中的reset是不是真实的,看下IP头的IPID字段,只要它和之前的五元组正常流量不是宽松连续的,那就说明这个reset是中间设备伪造的,类似的,TTL有明显异常的,也能判断第一印象。

  比定位reset问题稍微复杂点,如何定位NAT后面的机器?这可能需要打点画图了,把IPID都密集采集下来,然后描线即可,同一时间看看有多少条线,取最大值一般就是NAT后面机器的数量了。

  更加厉害的,就是取TCP指纹了,这个其实并不需要自己做什么太多的事,有很多现成的指纹库可以用…这些好玩吗?嗯,好玩。

  不多说!

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值