前两篇介绍了利用python编写一些脚本实现二层主机的发现,这一篇介绍一下三层主机的发现。

    一般来说,三层主机的发现主要是通过ICMP协议来实现的。其中ICMP协议中的ping命令可以探测对面主机是否存活,有点也很显而易见了,就是相比二层发现,三层主机发现可以实现跨网段探测扫描。但是,ping命令的探测是不准确的,因为ping命令是可以被防火墙直接过滤掉。

    如果ping命令可达,我们不仅可以基本判断对方主机在线,也可以通过ping命令中的回显请求TTL值来推断对方的主机和我们机器之间的路由距离。如果计算机没有被进行过修改TTL值的设置的话,通过TTL值还可以推测对方主机的操作系统。

    一般来说,windows系统的TTL初始值为128,Linux系统的TTL初始值为64,ping命令每经过一个路由设备,TTL值就会减少1,通过返回的TTL值我们基本就能判断对方主机的操作系统了。同样的,由于TTL初始值也是可以被修改的,所以通过TTL来判断对方的操作系统也不是很可靠。

    简单说一下禁ping的方法,windows机器就不多赘述了,很简单,进入防火墙ICMPv4相关的设置即可。在Linux防火墙中,有两条相关设置。允许机器被ping:iptables -A INPUT -p icmp -j ACCEPT 。禁止机器被ping:iptables -A INPUT -p icmp -j DROP

    最后简单再提一点,在linux中出了ping之外,还有一个增强型的ping————fping。fping命令集成了很多ping命令没有的功能,其中fping在探测母端主机时,如果目标主机可达,那么它在接收到一个应答之后,就立刻停止发送请求了。如果目标主机暂时不可达,那fping尝试连接4次,最后断开。fping的最大优点就是可以扫描一个指定的网段。例如:fping -g | 192.168.1.0/24,加上-g参数即可。

    最后附上python扫描三层的脚本,利用原理就是祥目标机器发ICMP报文。

import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *
if len(sys.argv) != 2:
print "Usage - ./pinger.py [filename]"
print "Example - ./pringer.py iplist.txt"
print "Example will perform an ICMP ping scan of the IP addresses listed in iplist.txt"
sys.exit() filename = str(sys.argv[1])
file = open(filename,'r') for addr in file:
ans = sr1(IP(dst=addr.strip())/ICMP(),timeout=1,verbose=0)
if ans == None:
pass
else:
print addr.strip()

python信息收集(三)的更多相关文章

  1. python信息收集之子域名

    python信息收集之子域名 主要是以下3种思路: 字典爆破 搜索引擎 第三方网站 0x00 背景知识 list Python内置的一种数据类型是列表:list是一种有序的集合. >>&g ...

  2. python信息收集(一)

        在渗透测试初期,需要进行大量的信息收集.一般情况下,信息收集可以分为两大类----被动信息收集和主动信息收集.     其中,被动信息收集主要是通过各种公开的渠道来获取目标系统的信息,例如:站 ...

  3. python 信息收集器和CMS识别脚本

    前言: 信息收集是渗透测试重要的一部分 这次我总结了前几次写的经验,将其 进化了一下 正文: 信息收集脚本的功能: 1.端口扫描 2.子域名挖掘 3.DNS查询 4.whois查询 5.旁站查询 CM ...

  4. python信息收集(二)

        在第二层主机发现中,除了使用arping命令外,还可以使用Kali下自带的一个工具----netdiscover.      netdiscover是一个专门用于二层主机发现的工具,它有两种扫 ...

  5. python信息收集(四)

        在前三篇中,我们介绍了使用python脚本发现二层.三层的主机设备,接下来我们介绍使用python发现第四层主机.     在TCP/IP协议中,第四层为传输层,主要使用的通信协议为TCP协议 ...

  6. 内网横向渗透 之 ATT&CK系列一 之 信息收集

    前言 靶机下载地址:ATT&CK 拓扑图: 通过模拟真实环境搭建的漏洞靶场,完全模拟ATK&CK攻击链路进行搭建,形成完整个闭环.虚拟机默认密码为hongrisec@2019. 环境搭 ...

  7. 基于Python的渗透测试信息收集系统的设计和实现

    信息收集系统的设计和实现 渗透测试是保卫网络安全的一种有效且必要的技术手段,而渗透测试的本质就是信息收集,信息搜集整理可为后续的情报跟进提供强大的保证,目标资产信息搜集的广度,决定渗透过程的复杂程度, ...

  8. python写一个信息收集四大件的脚本

    0x0前言: 带来一首小歌: 之前看了小迪老师讲的课,仔细做了些笔记 然后打算将其写成一个脚本. 0x01准备: requests模块 socket模块 optparser模块 time模块 0x02 ...

  9. 小白日记5:kali渗透测试之被动信息收集(四)--theHarvester,metagoofil,meltag,个人专属密码字典--CUPP

    1.theHarvester theHarvester是一个社会工程学工具,它通过搜索引擎.PGP服务器以及SHODAN数据库收集用户的email,子域名,主机,雇员名,开放端口和banner信息. ...

随机推荐

  1. OS第1次实验报告:熟悉使用Linux命令和剖析ps命令

    零.个人信息 姓名:陈韵 学号:201821121053 班级:计算1812 一.实验目的 熟悉Linux命令行操作 二.实验内容 使用man查询命令使用手册 基本命令使用 三.实验报告 1. 实验环 ...

  2. Nginx 实现API 网关

    1,网关 网关(Gateway)就是一个网络连接到另一个网络的“关口”. 在Nginx 配置负载均衡之后,可以进入到网关,在网关决定进入到哪个真实的web 服务器. 2,将Ngnix 配置 API 网 ...

  3. Java中如何调用静态方法

    Java中如何调用静态方法: 1.如果想要调用的静态方法在本类中,可直接使用方法名调用 2.调用其他类的静态方法,可使用类名.方法名调用 关于静态方法能被什么调用 1.实例方法 2.静态发放

  4. Windows 7系统记录

    http://www.winwin7.com/ win7带USB3.0和NVME驱动 http://www.mohuishou.com/ 其中的青苹果家园 支持UEFI+GPT机器 http://ww ...

  5. java 中的字符串处理--正则表达式

    最近在做一些支付报文处理工作,需要从各种各样的报文中提取需要的信息比如(金额,订单号...),每个渠道报文各式各样,想要写一个通用的提取逻辑,于是就回顾java正则表达式的用法.当然我们可以自己写一些 ...

  6. Downgrade ASM DATABASE_COMPATIBILITY (from 11.2.0.4.0 to 11.2.0.0.0) on 12C CRS stack.

    使用Onecommand完成快速Oracle 12c RAC部署后 发现ASM database compatibilty无法设置,默认为11.2.0.4.0. 由于我们还有些数据库低于这个版本,所以 ...

  7. Markdown语法快速学习

    Markdown 简洁语法说明 0.前言 一直以来都是以word文档做笔记,存在很多问题,比如代码格式.高亮等.这次公司要求使用markdown,感觉眼前一亮,以前word的问题都得到了解决,而且可以 ...

  8. MATLAB——元胞数组

    一. 1.元胞数组的创建 >> a={;ones(,),:} a = ] [2x3 ;ones(,),:} >> b=[{};{ones(,)},{:}] b = ] [2x3 ...

  9. Mob之社会化分享集成ShareSDK

    接着上篇顺便分享一篇自己使用 ShareSDK 的笔记,上篇我们集成了 SMSSDK 完成了短信接收验证码的功能,请参考Mob 之 短信验证集成 SMSSDK,如何在项目已经集成 SMSSDK 的情况 ...

  10. python爬虫之requests的高级使用

    1.requests能上传文件 # 导入requests模块 import requests # 定义一个dict files = {'file': open('D:/360Downloads/1.t ...