在渗透测试初期,需要进行大量的信息收集。一般情况下,信息收集可以分为两大类————被动信息收集和主动信息收集。

    其中,被动信息收集主要是通过各种公开的渠道来获取目标系统的信息,例如:站长工具、Google hack等。这类信息收集的特点是不与目标系统产生直接的交互,从而避免留下痕迹,但带来的缺点就是收集的信息可能是一些过时的信息,不够准确。

    相反,主动信息收集是与目标系统进行直接的交互,进而得到更为准确的及时信息。例如:AWVS、Appscan等漏洞扫描工具对目标站点进行的扫描。但不可避免的就是可能会在目标系统中留下痕迹,可能会被封杀。

    在利用python来进行信息收集,主要是体现在了主动信息收集方面。

    在主动信息收集中,主要内容是主机发现、端口扫描、指纹识别。

    在主机发现部分,主动信息收集主要是通过扫描来实现的,其中扫描是可以在不同的网络层次中实现,包括数据链路层主机发现、网络层主机发现和传输层主机发现。

    下面先介绍二层主机发现。

    主机发现,顾名思义,就是确定一个IP范围内存活的主机,找到潜在攻击的目标。二层主机发现主要利用的协议是ARP协议,主要用于在内网中进行探测,发现与攻击者在同一个网段内的主机。二层的主机发现,一般扫描速度都很快,并且可靠性较高,因为即便是安装了安全软件,安全软件都是默认没有防御ARP攻击的。

    在Kali中,我们只要执行arping命令,就可以对外发送ARP响应包来进行主机的探测了,只要我们收到响应,即可判断对方主机在线。

    我们要用到的python第一个模块,是subprocess模块,subprocess模块可以用来创建一个子进程,并且运行一个外部的程序。一般使用subprocess模块中的check_output()方法来调用系统命令。

    如下:



    上面是调用python模块实现的单个语句判断主机是否在线,如果使用python脚本来实现的话,如下所示:

代码如下

import subprocess
import sys
import time
from threading import Thread def arping(ip):
try:
subprocess.check_output('arping -c 1 ' + str(ip),shell=True)
time.sleep(0,1)
print ip,'在线'
return
except:
return def main():
host = str(sys.argv[1]).strip()
addr=host.split(".")[0]+"."+host.split(".")[1]+"."+host.split(".")[2]+"."
for i in range(1,255):
ip = addr + str(i)
t=Thread(target=arping,args=(ip,))
t.start() if __name__=='__main__':
main()

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

  1. python信息收集之子域名

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

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

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

  3. python信息收集(二)

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

  4. python信息收集(四)

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

  5. python信息收集(三)

        前两篇介绍了利用python编写一些脚本实现二层主机的发现,这一篇介绍一下三层主机的发现.     一般来说,三层主机的发现主要是通过ICMP协议来实现的.其中ICMP协议中的ping命令可以 ...

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

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

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

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

  8. 小白日记7:kali渗透测试之主动信息收集-发现(一)--二层发现:arping/shell脚本,Netdiscover,scapy

    主动信息收集 被动信息收集可能不准确,可以用主动信息收集验证   特点:直接与目标系统交互通信,无法避免留下访问痕迹 解决方法:1.使用受控的第三方电脑进行探测,使用代理 (做好被封杀的准备)   2 ...

  9. 小白日记6:kali渗透测试之被动信息收集(五)-Recon-ng

    Recon-ng Recon-NG是由python编写的一个开源的Web侦查(信息收集)框架.Recon-ng框架是一个全特性的工具,使用它可以自动的收集信息和网络侦查.其命令格式与Metasploi ...

随机推荐

  1. 用pymysql和Flask搭建后端,响应前端POST和GET请求

    前言 这次作业不仅需要我建立一个数据库(详情请点击这里),还需要我基于这个数据库写后端接口(注册和登录)供前端访问,接收前端的POST和GET请求,并将登录.注册是否成功传给前端. 本文介绍如何用Fl ...

  2. EXPLAIN 查看 SQL 执行计划

    EXPLAIN 查看 SQL 执行计划.分析索引的效率: id:id 列数字越大越先执行: 如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询. ...

  3. vue 跳转 同一路由不刷新问题解决

    vue跳转同一路径时,路由参数改变,但页面无法更新 问题原因 vue路由切换实际是组件间的切换,引用相同组件的时候,页面就无法更新 解决方案 方案1.watch监听路由参数变化,并重新渲染(谨慎选择) ...

  4. java 第六周课后作业

    1.定义长度位5的整型数组,输入他们的值,用冒泡排序后输出. Scanner sc = new Scanner(System.in); int[] arr = new int[5]; for (int ...

  5. Pyspider的基本使用

    Pyspider的基本使用 pyspider的任务流程: 每个pyspider的项目对应一个Python的脚本,该脚本中定义了一个Handler类,它有一个on_start方法.爬取首先调用on_st ...

  6. 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded dlope

    今天在mac上使用navicat连接mysql报错弄了一下午,各种查询踩坑,总算解决了. 即从mysql5.7版本之后,默认采用了caching_sha2_password验证方式,我用的mysql8 ...

  7. redis持久化文件问题

    问题: Can't open the append-only file Permission denied 发现缺少文件:/data/缺少appendonly.aof,dump.rdb文件. 手动创建 ...

  8. Linux c++ vim环境搭建系列(2)——Ubuntu18.04.4编译安装llvm clang

    2. 源码编译安装llvm clang 参考网址: https://llvhttps

  9. Pandownload作者被抓之后

    近日,pandownload作者被抓,可以说是圈内的大事件,被抓之后, Pandownload 已经是打不开,用不了了 就在我为此感到惋惜的时候,竟然有出来个shengdownload 先来一块看看这 ...

  10. AJ学IOS(35)UI之Quartz2D仿真支付宝手势解锁_代理获得密码。

    AJ分享,必须精品 效果: 实现步骤 其实这个实现起来不难 第一步先放好主要的UI,一张背景图和一个View 第二部就是把9个button放到view中,设置好按钮的默认和选中图片. 注意:创建时候的 ...