date: 2019-02-15 11:24:25
tags:
- 网络资产
- 主机存活探测

0x00 介绍

网络资产梳理中,最重要的一项是主机发现。主机发现就是通过一些技术手段,来侦察网络中一些主机是否存活。主机发现又分为主动发现和被动发现两大类。

  • 主动发现:主动进行侦察探测,如端口探测
  • 被动发现:被动接收一些信息来进行判断,如流量监听

主动发现单个主机存活的手段有

  • ping
  • 端口扫描

当然不是所有的存活主机都可以通过主动手段发现。存在一种极端情形,如果一个存活主机没有开放任务端口/服务,同时又禁止了ICMP应答,同时启用iptables防火墙所有的端口都不接收连接,这种情况下以上的两种手段都是无法发现

0x01 ping

简单来说,如果能ping通的话,这个主机就是存活的。但否命题是不成立的,如果ping不通一个主机的话,并不能说明这个主机就是不存活的。主机管理上有一些手段,可以禁止ICMP应答。如下命令可以关闭ICMP应答,则此主机不能被ping通,但它是存活的。

sysctl net.ipv4.icmp_echo_ignore_all=1

0x02 端口扫描

相对ping而言,端口扫描更可靠和全面。端口扫描,就是对目标的一些端口发起TCP连接,或者类似TCP连接的动作,通过判断目标的响应,来判断目标是否存活。
就单个端口而言,判定的逻辑如下表

响应情况 主机是否存活
连接成功 主机存活
timed out 不能判定是否存活
Connection refused 主机存活
No route to host 部分情况可判定不存活

如果想通过端口扫描发现主机时,想提高主机发现的效果,则需要提高端口扫描的数量。甚至是扫描全部的可能端口(1-65535)。

No route to host情况

这种提示是指找不到主机路由。一般来说,可以直接判断主机不存活的,实际测试中发现了在虚拟机中存在一些异常。

虚拟机方案 不存活端口的响应
KVM/virt-manager 异常No route to host
VirtualBox 异常No route to host
VMware 正常

所以此响应不能作为主机是否存活的充分条件。

timed out情况

timed out是指在发起TCP连接时,连接超时了。这种情况下,一般是目标启用了防火墙。正常情况下,如果一个主机存活,而且端口未开放时,连接时,对方会响应Connection refused。如下在Linux操作系统中,下面的命令会对81端口添加过滤规则,所有的连接尝试都会被DROP掉,造成连接方TCP连接超时。

iptables -t filter -A INPUT -p tcp --dport 81 -j DROP

这种情况下,如果出现在一个局域网内,一般也可以判断这个主机是存活的。因为如果不存活,会响应No route to host,提示找不到路由。但在测试中也会出现异常,一个主机不存活,但进行端口连接时也超时了。
所以这种情况下不能给出主机是否存活的判断。

0x03 总结

根据前面分析的结果,设计了一个合理的主机发现方案如下。

  1. 对主机进行ping扫描,留下不能ping通的主机
  2. 对不能ping通的主机进行1到3个端口扫描
  3. 如果响应中有Connect refused/connected,判定主机存活,余下的主机进行第4步判断。
  4. 对于timeout和No route to host的,加大端口扫描范围,端口数量超出限制时,或者有连接成功的端口时,停止扫描。

第4步中,主机的发现效果和扫描的最大端口数量相关,可能需要用户设置期望的值。
当然,实践中发现,上述结果只适用于没被WAF防护的主机。如果是经过了WAF,WAF可能会接收所有的端口连接,这样通过端口判定存活就不适用了,而是应该连续探测一定范围的连续端口,如果都能连接成功,就说明遇到防护设备了。

网络资产中主机发现方案分析相关推荐

  1. 开源复杂网络分析软件中社团发现算法总结

    复杂网络研究中的一个重要部分就是社团发现(Community Detection)算法的研究,密歇根大学物理学系教授Mark Newman就主要在社团发现方面做出了很多贡献.今天简单总结一下几个开源复 ...

  2. 社交网络分析SNA——Pajek使用教程(网络描述统计+中心性及子群分析)

    本文所有操作均基于Pajek5.11版本实现,也可官网下载最新版本,差别不大→Pajek下载地址 目录 一.如何画一个现有网络? 二.如何交互式构建一个网络? 三.Pajek中如何进行自动布局? 四. ...

  3. 谷歌分析中的营销归因分析功能

    转载自:http://www.cnblogs.com/superhuake/archive/2012/09/20/2695152.html 最近一直在研究用户付费时该把收益分配给哪个广告渠道的问题.按 ...

  4. anycast隧道_IPv6中Anycast通信模型若干问题的分析和研究.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp通信/网络 IPv6中Anycast通信模型若干问题的分析和研究 ...

  5. 计算机网络显示空白,Win10以太网属性网络选项中显示为空白解决方法

    我们在使用windows10系统电脑过程中,经常会碰到需要更改网络DNS和IP的情况.这时,我们就得到网络适配器(Win10中本地连接适配器又称以太网)中进行操作.不过,很多win10用户有时打开以太 ...

  6. Docker 跨主机网络方案分析

    PS:文章首发公众号,欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 上篇文章介绍了容器网络的单主机网络,本文将进一步介绍多 ...

  7. 社会网络中社团发现及网络演化分析

    阅读文献:社会网络中社团发现及网络演化分析 北京邮电大学 注意:一下内容均摘自该论文,引用时请标准参看文献.如果想深入阅读请查看原文. 第五章基于张量分解的社团演化分析算法 一.扫盲 1.分析动态网络 ...

  8. docker 网络方案--分析

    这篇文章主要是弥补自己网络方面的知识,不提供参考意见 关于SDN和容器 作为近年来比较热的一个概念,众所周知SDN是Software Defined Network的缩写,即软件定义网络.但不同的人对 ...

  9. 计算机安全及故障处理大学论文,网络维护中故障点排除分析及处理措施论文

    网络维护中故障点排除分析及处理措施论文 在平时的学习.工作中,大家总免不了要接触或使用论文吧,论文是进行各个学术领域研究和描述学术研究成果的一种说理文章.怎么写论文才能避免踩雷呢?以下是小编整理的网络 ...

最新文章

  1. python numpy np.lexsort()(使用键序列执行间接稳定排序)(具体没太搞懂区别?)
  2. 括号匹配问题(0962)
  3. 如何处理Angular项目在Visual Studio Code打开报关于@Decorators的警告信息
  4. 一个女程序员的创业人生:胆识也是一种能力 作者:秋镇菜
  5. LDAP命令介绍---dsreplication--enable:DISABLE
  6. js节流函数和js防止重复提交的N种方法
  7. ios签名软件_使用ios企业签名需要准备哪些?
  8. 编程语言的通用概念[共同特征]
  9. java拦截器获取请求参数
  10. loic 工具使用指导
  11. js html编码和解码,JavaScript字符集编码与解码
  12. [好歌推荐4]侯德建 - 归去来兮
  13. php 领红包程序,用PHP实现的抢红包小程序
  14. 如何冻结Excel中的行
  15. vs2010生成的exe更改icon
  16. 工控触摸屏IC读卡一体机
  17. .NET程序中加入Autodesk Design Review 2013 ,打包完成后安装提示未注册XXX.dll解决办法
  18. MATLAB读入视频出错的解决方法
  19. 屌丝的24个特征,看看自己中了几枪
  20. matlab深度学习工具箱LSTM学习心得

热门文章

  1. 【已解】英雄联盟lol撸啊撸“寻找对局”按钮无法点击,开不了赛解决方法
  2. J9数字平台科普:Web3支柱:去中心化存储全面解析
  3. APP上架到各大应用商店指南
  4. Syn-QG: Syntactic and Shallow S emantic Rules for Question Generation阅读笔记
  5. 最近比较火的palywright了解一下?
  6. 微信小程序数组更新,但视图不更新的问题
  7. 机房综合布线施工主要是几个方面
  8. 三星s4流量显示无服务器,三星s4有什么隐藏功能
  9. 如何分析多个极兔快递物流每个网点之间是否超过12小时
  10. 微信如何根据经纬度坐标查询具体地理位置