python信息收集(三)
前两篇介绍了利用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信息收集(三)的更多相关文章
- python信息收集之子域名
python信息收集之子域名 主要是以下3种思路: 字典爆破 搜索引擎 第三方网站 0x00 背景知识 list Python内置的一种数据类型是列表:list是一种有序的集合. >>&g ...
- python信息收集(一)
在渗透测试初期,需要进行大量的信息收集.一般情况下,信息收集可以分为两大类----被动信息收集和主动信息收集. 其中,被动信息收集主要是通过各种公开的渠道来获取目标系统的信息,例如:站 ...
- python 信息收集器和CMS识别脚本
前言: 信息收集是渗透测试重要的一部分 这次我总结了前几次写的经验,将其 进化了一下 正文: 信息收集脚本的功能: 1.端口扫描 2.子域名挖掘 3.DNS查询 4.whois查询 5.旁站查询 CM ...
- python信息收集(二)
在第二层主机发现中,除了使用arping命令外,还可以使用Kali下自带的一个工具----netdiscover. netdiscover是一个专门用于二层主机发现的工具,它有两种扫 ...
- python信息收集(四)
在前三篇中,我们介绍了使用python脚本发现二层.三层的主机设备,接下来我们介绍使用python发现第四层主机. 在TCP/IP协议中,第四层为传输层,主要使用的通信协议为TCP协议 ...
- 内网横向渗透 之 ATT&CK系列一 之 信息收集
前言 靶机下载地址:ATT&CK 拓扑图: 通过模拟真实环境搭建的漏洞靶场,完全模拟ATK&CK攻击链路进行搭建,形成完整个闭环.虚拟机默认密码为hongrisec@2019. 环境搭 ...
- 基于Python的渗透测试信息收集系统的设计和实现
信息收集系统的设计和实现 渗透测试是保卫网络安全的一种有效且必要的技术手段,而渗透测试的本质就是信息收集,信息搜集整理可为后续的情报跟进提供强大的保证,目标资产信息搜集的广度,决定渗透过程的复杂程度, ...
- python写一个信息收集四大件的脚本
0x0前言: 带来一首小歌: 之前看了小迪老师讲的课,仔细做了些笔记 然后打算将其写成一个脚本. 0x01准备: requests模块 socket模块 optparser模块 time模块 0x02 ...
- 小白日记5:kali渗透测试之被动信息收集(四)--theHarvester,metagoofil,meltag,个人专属密码字典--CUPP
1.theHarvester theHarvester是一个社会工程学工具,它通过搜索引擎.PGP服务器以及SHODAN数据库收集用户的email,子域名,主机,雇员名,开放端口和banner信息. ...
随机推荐
- 求第 k 小:大元素
#include<bits/stdc++.h> using namespace std; void swap_t(int a[],int i,int j) { int t=a[i]; a[ ...
- [POI2014][树形DP]FarmCraft
题目 In a village called Byteville, there are houses connected with N-1 roads. For each pair of houses ...
- 2.1.JVM的垃圾回收机制,判断对象是否死亡
因为热爱,所以坚持. 文章下方有本文参考电子书和视频的下载地址哦~ 这节我们主要讲垃圾收集的一些基本概念,先了解垃圾收集是什么.然后触发条件是什么.最后虚拟机如何判断对象是否死亡. 一.前言 我们 ...
- Java – Try with Resources
1.介绍 Java 7中引入的对try-with-resources的支持使我们能够声明将在try块中使用的资源,并确保在执行该块后将关闭资源. ⚠️:声明的资源必须实现AutoCloseable接口 ...
- Spark Streaming 编程入门指南
Spark Streaming 是核心Spark API的扩展,可实现实时数据流的可伸缩,高吞吐量,容错流处理.可以从许多数据源(例如Kafka,Flume,Kinesis或TCP sockets)中 ...
- sqlalchemy + alembic数据迁移
需要安装的包工具 pip install pymysql pip install sqlalchemy pip install alembic 创建表 新建models.py from sqlal ...
- python3启动子进程之 os.fork()
python3启动子进程之 os.fork() 先了解python3 os.fork() 使用说明 在生物学家开始克隆研究之前,计算机科学家就拥有成功的克隆历史.他们克隆了进程,尽管他们没有将其称为 ...
- (js描述的)数据结构[双向链表](5)
(js描述的)数据结构[双向链表](5) 一.单向链表的缺点 1.只能按顺序查找,即从上一个到下一个,不能反过来. 二.双向链表的优点 1.可以双向查找 三.双向链表的缺点 1.结构较单向链表复杂. ...
- redis修改密码以及验证登录,启动服务常用命令
1.通过配置文件,直接修改 2.启动然后使用密码验证登录 3.redis常用命令 启动服务:redis-server --service-start重启服务:service redis restart ...
- MySQL InnoDB存储引擎体系架构 —— 索引高级
转载地址:https://mp.weixin.qq.com/s/HNnzAgUtBoDhhJpsA0fjKQ 世界上只两件东西能震撼人们的心灵:一件是我们心中崇高的道德标准:另一件是我们头顶上灿烂的星 ...