Python程序设计-安全渗透测试-情报收集

本文介绍了Python在安全渗透测试中的信息收集基础,包括主机状态扫描(基于ARP、ICMP、TCP、UDP)和端口扫描技术。通过使用Scapy库,详细解释了如何通过发送不同类型的数据包来探测目标主机的活跃状态和端口开放情况。此外,还涉及服务扫描和操作系统扫描的基本思路和方法,如利用Nmap库进行服务和操作系统识别。
摘要由CSDN通过智能技术生成

信息收集基础

这里的“情报”指的是目标网络、服务器、应用程序的所有信息。
渗透测试人员需要使用资源尽可能地获取要测试目标的相关信息。

  • 信息收集获得信息的方法可以分成两种:
    • 被动扫描主要指的是在目标 无法察觉的情况下 进行的信息收集,例如,如果想了解一个远在天边的人,你会怎么做呢?显然可以选择在搜索引擎中去搜索这个名字。其实这就是一次对目标的被动扫描。
    • 主动扫描一般都是针对目标发送特制的数据包,然后根据目标的反应来获得一些信息。
    • 扫描之后将会获得的信息包括:目标网络的结构,目标网络所使用设备的类型,目标主机上运行的操作系统,目标主机上所开放的端口,目标主机上所提供的服务,目标主机上所运行的应用程序。
  • 选择扫描目标的nmap语法如下所示。
    1. 扫描指定IP主机:nmap 192.168.169.133
    2. 扫描指定域名主机:nmap www.nmap.com
    3. 扫描指定范围主机:nmap 192.168.169.1-20
    4. 扫描一个子网主机:nmap 192.168.169.0/24
  • 对目标端口扫描的nmap语句
    1. 扫描一个主机的特定端口:nmap -p 22 192.168. 169.1
    2. 扫描指定范围端口:nmap -p 1-80 192.168. 169.1
    3. 扫描100个最为常用的端口:nmap -F 192.168. 169.1
  • 对目标端口状态扫描的nmap语句
    1. 使用TCP全开扫描:nmap -sT 192.168. 169.1
    2. 使用TCP半开扫描:nmap -sS 192.168. 169.1
    3. 使用UDP扫描:nmap -sU -p 123,161,162 192.168. 169.1
  • 对目标的操作系统和运行服务进行扫描的nmap语法如下所示。
    1. 扫描目标主机上运行的操作系统:nmap -O 192.168.169.1
    2. 扫描目标主机上运行的服务类型:nmap -sV 192.168.169.1

主机状态扫描

基于ARP的活跃主机发现技术

  • ARP的中文名字是“地址解析协议”,主要用在以太网中。
  • 需要明确的是,所有的主机在互联网中通信的时候使用的是IP地址,而在以太网中通信时使用的却是硬件地址(也就是常说的MAC地址)
  • 现在来编写一个利用ARP实现的活跃主机扫描程序,这个程序有很多种方式可以实现,首先借助Scapy库来完成。其核心思想就是要产生一个ARP请求,首先查看Scapy库中ARP类型数据包中需要的参数
    在这里插入图片描述
    • 这里面的大多数参数都有默认值,其中,hwsrc和psrc分别是源硬件地址和源IP地址。
    • 这两个地址不用设置,发送的时候会自动填写本机的地址。
    • 唯一需要设置的是目的IP地址pdst,将这个地址设置为目标即可
  • 另外,因为发送的是广播数据包,所以需要在Ether层进行设置,首先查看一下Ether的格式
    在这里插入图片描述
    • 这一层只有三个参数:
    • dst是目的硬件地址,
    • src是源硬件地址,这里面src会自动设置为本机地址。
    • 所以只需要将dst设置为ff:ff:ff:ff:ff:ff即可将数据包发到网络中的各个主机上
  • 下面构造一个扫描192.168.26.100的ARP请求数据包并将其发送出去
ans,unans=srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst="192.168.26.100"),timeout=2)

在这里插入图片描述

  • 对这个请求的回应进行监听,如果得到回应,那么证明目标在线,并打印输出这个主机的硬件地址:
ans.summary(lambda (s,r): r.sprintf("%Ether.src% %ARP.psrc%"))
# lambda:需要在Python 环境下运行 :进入python解释器,
# 导入 scapy模块: from scapy.all import *,再进行下列代码的书写

在这里插入图片描述
在这里插入图片描述

  • 如果发出这个数据包,但是没有收到这个数据包回应,则说明目标主机不在线
    在这里插入图片描述

基于ICMP的活跃主机发现技术

  • ICMP位于TCP/IP协议族中的网络层,它的目的是用于在IP主机、路由器之间传递控制消息。

  • ICMP中提

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值