4.主动信息收集

12 篇文章 0 订阅

4.主动信息收集

在这里插入图片描述

4.1主动信息收集的原理

4.1.1 主动信息收集的特点

1.直接与目标系统交互通信

2.无法避免留下访问的痕迹

3.使用受控的第三方电脑进行探测,使用代理或已被控制的机器。

4.扫描发送不同的探测,,根据返回结果判断目标状态

4.1.2 发现目标的过程

1.识别存活主机,发现潜在的被攻击目标

2.输出一个 IP 地址列表(如IP地址段、IP地址范围)

3.使用二、三、四层进行探测发现

4.1.3 OSI 七层模型和 TCP/IP 五层模型

在这里插入图片描述

在这里插入图片描述

第七层:应用层

​ OSI中的最高层。为特定类型的网络应用提供了访问 OSI 环境的手段。应用层确定进程之间通信的性质,以满足用户的需要。应用层不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为应用进程的用户代理,来完成一些为进行信息交换所必需的功能。它包括:文件传送访问和管理 FTAM、虚拟终端 VT、事务处理 TP、远程数据库访问 RDA、制造报文规范 MMS、目录服务 DS等协议;应用层能与应用程序界面沟通,以达到展示给用户的目的。在此常见的协议有:HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3等。

第六层:表示层

​ 主要用于处理两个通信系统中交换信息的表示方式。为上层用户解决用户信息的语法问题。它包括数据格式交换、数据加密与解密、数据压缩与终端类型的转换。

第五层:会话层

​ 在两个节点之间建立端连接。为端系统的应用程序之间提供了对话控制机制。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工模式;会话层管理登入和注销过程。它具体管理两个用户和进程之间的对话。如果在某一时刻只允许一个用户执行一项特定的操作,会话层协议就会管理这些操作,如果阻止这两个用户同时更新数据库中的同一组数据。

第四层:传输层

​ 传输层建立了主机端口到端口的链接,传输层的作用是为上层协议(上层会话层)提供端口到端口的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路(TCP UDP就是在这一层)。

第三层:网络层

​ 本层通过 IP 寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误的按照地址传送给目的端的运输层。就是通常说的 IP 层。

第二层:数据链路层

​ 将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用Mac地址)来访问介质,并进行差错检测。

第一层:物理层

​ 处于 OSI 参考模型的最底层。物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。常用的设备有网卡、集线器、中继器、调制解调器、网线、双绞线、同轴电缆。

对应的网络设备关系在这里插入图片描述


对应的协议关系
在这里插入图片描述

4.1.4 基于 OSI 模型进行扫描的优缺点

1.二层扫描的优缺点

​ 优点:扫描速度快、可靠

​ 缺点:不可路由

2.三层扫描的优缺点

​ 优点:可路由、速度较快

​ 缺点:速度比二层慢,经常被边界防火墙过滤

​ 使用 IP、icmp 协议

3.四层扫描的优缺点

​ 优点:可路由且结果可靠,不太可能被防火墙过滤,可以发现所有

​ 端口都被过滤的主机

​ 缺点:基于状态过滤发防火墙可能被过滤扫描,全端口扫描速度慢

4.2 基于 Ping 命令的探测

4.2.1 Ping

	# ping xxx.xxx.xxx.xxx [] 值
	//[-c] 可指定发送数据包数量
	
	# traceroute xxx.com
	//可使用traceroute查看从当前主机到目标主机之间经过的网络设备

4.2.2 ARPing

​ 1.协议概述

ARP协议是 “Address Resolution Protocol”(地址解析协议)的缩写。计算机通过 ARP 协议将 IP 地址转换成 MAC 地址。

​ 2.ARP协议工作原理

​ 在以太网中,数据传输的目标地址是MAC地址,一个主机和另一个主机进行直接通信,必须要知道目标主机的 MAC 地址。

​ 计算机使用者通常只知道目标机器的IP信息,“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

​ 简单来说,ARP协议主要负责将局域网中的32位IP地址转换为对应的48位物理地址,即网卡的MAC地址,保障通信顺利进行。

​ 3.使用 arping 命令查看局域网中的 IP 是否有冲突

[注] arping不能用于本机IP!!!

	# arping xxx.xxx.xxx.xxx [] 值
    
	# arping -c 1 xxx.xxx.xxx.xxx | grep "bytes from" | cut -d"(" -f 2 | cut -d")" -f 1
	//提取IP值

编写脚本

	# vim arping1.sh
	//插入以下内容
------------------------------------------------------------
	#!/bin/bash
	if[ "$#" -ne 1];then		//判断用户是否输入了至少一个参数,如果没有输入参数,输出提示信息并退出
	echo "Usage - ./arping.sh [interface]"
	echo"Excample - ./arping.sh eth0"
	echo"Example will perform an ARP scan of the local subnet to which eth0 is assigned"
	exit
  fi
  
  interface=$1	//将用户输入的参数传递给interface变量
  prefix=$(ifconfig $interface | grep "inet " | cut -d 't' -f 2 | cut -d '.' -f 1-3)	//获取本机IP地址网段192.168.1
  //对整个网段进行arping
  for addr in $(seq 1 254);do
  	arping -c 1 $prefix.$addr | grep "bytes from" | cut -d" " -f 5| cut -d "(" -f 2 | cut -d")" -f 1
  done 
------------------------------------------------------------
	//保存并退出后对其添加权限
	# chmod +x arping1.sh
	//执行检测此网段内存活的主机(若出现两个相同的IP说明有IP冲突)
	# ./arping1.sh eth0

4.使用 Netdiscover 进行被动方式探测局域网中存活的主机

	# netdiscover -i eth0 -r xxx.xxx.xxx.xxx/子网掩码 
	[-i] 指定网卡
	[-r] 指定 网段
	主动探测:通过发送arp请求来进行探测,容易被发现
------------------------------------------------------------
	netdiscover -p
	[-p] 不发送任何数据包
	被动探测:嗅探别人发送出来的数据包

4.2.3 HPing3

Hping3是一个命令行下使用的 TCP/IP 数据包组装/分析工具,通常 Web服务会用来做压力测试使用,也可以进行 DOS 攻击实验(每次只能扫描一个目标)。

	# hping3
	[-h] 查看命令参数说明
	[-c] 指定发送数据包数量
	[-d] 指定每个数据包大小(单位:字节)
	[-S] 指定发送SYN数据包
	[-w] 指定TCP窗口大小(数据包的流量)
	[-p] 指定扫描的端口(80:web端口)
	[--flood] 洪水式攻击(尽可能快的发送数据包,不考虑显示入站回复)
	[--rand-soure] 随机源IP(仅在局域网内伪造IP)
------------------------------------------------------------
	//例:压力测试
	# hping3 -c 100 -d 120 -S -w 64 -p 80 --flood --rand-source xxxxx.cn

4.2.4 FPing

​ FPing 就是 Ping 命令的加强版,它可以对一个 IP 段进行 Ping 扫描,而 Ping 命令本身是不可以对网段进行扫描的。

	# fping -g xxx.xxx.xxx.xxx/子网掩码 -c 1 > fping.txt
	[-g] 对地址段进行扫描,如果不加可以对某个IP进行扫描
	[> xxx.txt] 将结果重定向到xxx.txt文件(输出重定向到文件中只会获得存活的主机信息)
	
	//查看扫描结果(存活的主机)
	cat xxx.txt

4.3 基于 Nmap 的扫描方式

4.3.1 Nmap 的基本扫描方式

​ Nmap(Network Mapper),最早是 Linux 下的网络扫描和嗅探工具包。

	//例:扫描某网段
	# nmap -sn xxx.xxx.xxx.xxx/子网掩码
	或
	# nmap -sn xxx.xxx.xxx.1-254
	[-sn] 只进行 ping 扫描,不进行端口扫描

4.3.2 使用 nmap 进行半连接扫描

​ nmap 扫描类型主要有 TCP 的全连接扫描(会在被扫描机器下留下记录),半连接扫描(不会留下记录)。

在这里插入图片描述

	# nmap -sS xxx.xxx.xxx.xxx -p x,x,...
	[-sS] 使用 SYN 半连接扫描
	[-p] 指定端口号(可以是具体端口号,也可以是一个端口范围)

4.3.3 使用 nc 扫描端口

	nc(netcat)作用:

1.实现任意 TCP/UDP 端口的侦听,nc 可以做为 server 以 TCP 或 UDP 方式侦听指定端口。

2.端口的扫描,nc 可以作为 client 发起 TCP 或 UDP 连接。

3.机器之间传输文件

4.机器之间网络测速

	//例:查看该网段下开放的端口
	# nc -nv -w 1 -z xxx.xxx.xxx.xxx 1-xx
	[-nv] 表示扫描目标是 IP 地址,不做域名解析
	[-w] 表示超时时间
	[-z] 表示进行端口扫描
	[1-xx] 指定扫描端口范围

4.4 使用 scapy 定制数据包进行高级扫描

4.4.1 scapy概述

​ Scapy 是一个可以让用户发送、侦听和解析并伪装网络报文的 Python 程序。这些功能可以用于制作侦测、扫描和攻击网络的工具。

4.4.2 scapy 定制 ARP 协议

	# scapy
------------------------------------------------------------
	>>> ARP().display() //用于查看ARP函数的用法
------------------------------------------------------------	sr1 函数:包含了发送数据包和接收数据包的功能	
例:
	>>> sr1(ARP(pdst="xxx.xxx.xxx.xxx"))
	>>> exit()	//退出scapy
	[注] 发现源地址 psrc=xxx.xxx.xxx.xxx说明已经收到了应答包

在这里插入图片描述

4.4.3 scapy 定制 PING 包

	--查看数据包格式
	>>> IP().display()  
	>>> ICMP().display()
	[注] IP()生成ping包的源IP和目标IP,ICMP()生成ping包的类型。使用IP()和ICMP()两个函数可以生成ping包,进行探测。

在这里插入图片描述

在这里插入图片描述

例:
在这里插入图片描述

4.4.4 scapy 定制 TCP 协议 STN 请求

在这里插入图片描述

	--查看TCP协议数据包格式
	  >>> TCP().display()
------------------------------------------------------------
	--组装SYN数据包 (半链接扫描,较隐秘)
	>>> sr1(IP(dst="xxx.xxx.xxx.xxx")/TCP(flags="S",dport=80),timeout=1)
	//收到数据包回复证明该端口开放

在这里插入图片描述

在这里插入图片描述

4.5 僵尸扫描

4.5.1 僵尸扫描概述

​ 僵尸主机:是指感染僵尸程序病毒,从而被黑客程序控制的计算机设备。但僵尸扫描中的僵尸主机指的是一个闲置的操作系统(闲置是指不会主动和任何人通信),且此系统中 IP 数据包中 ID 是递增的。

​ IPID:通信过程中 IP 数据包中的 ID。

1.目标网络可伪造源地址进行访问。

2.选择僵尸机,僵尸机需要正在互联网上是一个闲置的操作系统,需要系统使用递增的 IPID(如XP系统)。

4.5.2 僵尸扫描原理

1.端口开放状态扫描原理

在这里插入图片描述

2.端口关闭状态扫描原理

在这里插入图片描述

4.5.3 使用 scapy 进行僵尸扫描

​ 准备工作:

​ 僵尸主机:WinXP 192.168.1.116 防火墙关闭状态

​ 目标主机:Win10 192.168.1.104 sshd服务能正常访问

具体操作:

​ 第一步:给僵尸主机发送 SYN/ACK 数据包,将返回的数据包存入 rz1

	>>> rz1=sr1(IP(dst="僵尸机IP")/TCP(dport=445,flags="SA"))
---------------------------------------------------------------------------
	rz1 定义一个变量用于接收返回的数据包
	dst 僵尸机IP
	dport=445 向僵尸主机的445端口发送数据包(XP主机的445端口一般都是开启状态)
	flags="SA" 发送 SYN/ACK

​ 第二步:伪装原IP(攻击者修改IP包头的SRC字段为僵尸主机的IP,伪装成僵尸主机给目标机发SYN请求)

	>>> rt=sr1(IP(src="伪装成僵尸机IP",dst="目标IP")/TCP(dport=22),timeout=1)
---------------------------------------------------------------------------
	rt 定义了一个变量来接受返回的数据包
	src 伪造成僵尸主机的IP地址
	dst 将数据包发送到目标主机的IP地址
	dport 目标机端口
	timeout 超时时间

​ 第三步: 攻击者再次向僵尸主机发送 SYN/ACK 确认包,获得 IPID

	>>> rz2=sr1(IP(dst="僵尸机IP")/TCP(dport=445,flags="SA"))

​ 校验

--查看第一次IPID(查看id字段内容)
	>>> rz1.display()
--查看第二次IPID(查看id字段内容)
	>>> rz2.display()
---------------------------------------------------------------------------
对比一下两次IP值
第二次减去第一次等于2(IPID自增2)即表示端口开放
第二次减去第一次等于1(IPID自增1)即表示端口关闭
	>>> exit()    //退出

4.5.4 使用 nmap 进行僵尸扫描

1.扫描 192.168.1.0 网段中某些可以用作僵尸主机

	# nmap 192.168.1.0/24 -p1-1024 --script=ipidseq.nse > a.txt
	[-p] 端口号
	[--script=ipidseq.nse] 查看网段下可用作僵尸主机的IP
	[>] 结果输出到文件
-------------------------------------------------------------------------------
	# cat a.txt
	//查看结果文件
	[_ipidseq: All zeros] 不可用
	[_ipidseq: Incremental!] 可用但需要验证 

2.僵尸扫描

	# nmap 目标IP -sI 僵尸机IP -p1-100
	//可查看到对应IP开放的端口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北方有你.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值