主动信息收集
主动信息收集
本节课程概括:
1.1 主动信息收集的原理
1.2 二层发现-arping/netdiscover命令探索
1.3 三层发现-ping命令工具探索.
1.4 四层发现-Nmap 的扫描方式
1.5 实战︰使用scapy定制数据包进行高级扫描1.1主动信息收集的原理.
1.1.1 主动信息收集的特点
1.1.1 主动信息收集的特点
- 1.直接与目标系统交互通信
- 2.无法避免留下访问的痕迹
- 3.使用受控的第三方电脑进行探测,使用代理或已经被控制的机器
- 4.扫描发送不同的探测,根据返回结果判断目标状态
1.1.3 OSI七模型和TCP/IP五层
OSI:开放式系统互联,把网络通信的工作分为7层,分别是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。
这里我们只对OSI各层进行功能上的大概阐述,不详细深究,因为每一层实际都是一个复杂的层。这里我们就大概了解一下。我们从最顶层的应用层开始介绍。-
第7层应用层:
OSI中的最高层。为特定类型的网络应用提供了访问OSI环境的手段。应用层确定进程之间通信的性质,以满足用户的需要。应用层不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为应用进程的用户代理,来完成一些为进行信息交换所必需的功能。它包括:文件传送访问和管理FTAM、虚拟终端VT、事务处理TP、远程数据库访问RDA、制造报文规范MMS、目录服务DS等协议﹔应用层能与应用程序界面沟通,以达到展示给用户的目的。在此常见的协议有:HTTP ,HTTPS ,FTP,TELNET ,SSH ,SMTP,POP3等。
第6层表示层:
主要用于处理两个通信系统中交换信息的表示方式。为上层用户解决用户信息的语法问题。它包括数据格式交换、数据加密与解密、数据压缩与终端类型的转换。
第5层会话层:
创建、管理和维护会话。在两个节点之间建立端连接。为端系统的应用程序之间提供了对话控制机制。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式﹔会话层管理登入和注销过程。它具体管理两个用户和进程之间的对话。如果在某一时刻只允许一个用户执行一项特定的操作,会话层协议就会管理这些操作,如阻止两个用户同时更新数据库中的同一组数据。
第4层传输层:
传输层建立了主机端口到端口的链接,传输层的作用是为上层协议(上层会会话层)提供端口到端口的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,rcP UDP 就是在这一层。
第3层网络层:
本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。
第2层数据链路层:
将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。
第1层物理层:
处于OSI参考模型的最底层。物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流。常用设备有(各种物理设备)网卡、集线器、中继器、调制解调器、网线、双绞线、同轴电缆。
OSI七层协议和TCP/IP五层协议的对应关系
对应的网络设备关系
对应的协议关系
1.2 二层发现-arping/netdiscover命令探索
1.2.1 二层主机发现
-
二层主机发现∶利用OSI中链路层中的协议进行发现,一般使用ARP协议。
-
二层扫描的优缺点
优点︰扫描速度快、可靠性高
缺点︰不可路由
1.2.2 arping命令使用
1、ARP协议概述
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。计算机通过ARP协议将IP地址转换成MAC地址。
2、ARP协议工作原理
在以太网中,数据传输的目标地址是 MAC地址,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。
计算机使用者通常只知道目标机器的IP信息,"地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
简单地说,ARP协议主要负责将局域网中的32为IP地址转换为对应的48位物理地址,即网卡的MAC地址,保障通信顺利尽心。
APR工作原理如下:
3、使用apring命令查看局域网中的主机是否存活
root@kali:~#arping 192.168.1.100 -c 3
#-c参数表示发送的次数。
ARPING 192.168.1.100.
60 bytes from 48:5f:99:83:ab:af (192.168.1.100): index=0 time=174.630 usec
60 bytes from 48:5f:99:83:ab:af (192.168.1.100): index=1 time=146.395 usec
60 bytes from 48:5f:99:83:ab:af (192.168.1.100): index=2 time=306.542 usec
--- 192.168.1.100statistics ---.
3 packets transmitted, 3 packets received,0% unanswered (0 extra)rtt min/avg/max/std-dev = 0.146/0.209/0.307/0.070 ms.
4、使用Netdiscover进行被动方式探测局域中存活的机器。
Netdiscover是一个主动/被动的ARP侦查工具。使用Netdiscover工具可以在网络上扫描IP地址,检查在线主机或搜索为它们发送的ARP请求。
主动模式:顾名思义就是主动探测发现网络内主机,但是这种方式往往会引起网络管理员的注意。优点是快。
root@piloteer101:~# netdiscover -i eth0 -r 192.168.1.0/24.
参数:
-i是指定网卡。
-r是指定ip地址的范围
被动模式:被动模式的方法更加隐蔽,但是速度会比较慢,网卡被设置为混杂模式来侦听网络内的 arp 数据包进行被动式探测,这种方式就需要网络内设备发送arp包才能被探测到。优点是比较隐蔽,但速度慢。
root@piloteer101:~# netdiscover -p
1.3三层发现-ping命令工具探索
1.3.1 三层主机发现
三层主机发现︰利用OSI中网络中的协议进行主机发现,一般使用IP、ICMP协议。
三层扫描的优缺点:
优点︰可以经过路由的主机,速度相对较快
缺点∶速度比二层发现慢,经常会被防火墙过滤
1.3.2 PING工具
PING命令是我们常用的判断主机之间网络是否畅通,同样也是能判断我们的目标主机是否存活。
从源主机出发到目标主机,整一个过程经过了多少设备?
Traceroute命令也可以对路由进行跟踪
好像到不了?
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
1.3.3 HPING3
Hping3是一个命令行下使用的TCP/IP数据包组装/分析工具,通常web服务会用来做压力测试使用,也可以进行DOS攻击的实验。同样Hping 只能每次扫描一个目标。
例︰使用HPING进行压力测试.我们先测试网站正常访问.
http://www.ke.qq.com/.
对www.ke.qq.com进行压力测试·
# hping3-c 1000 -d 120-s -w 64-p 80 --flood --rand-source ke.qq.com
-c 1000=发送的数据包的数量。”
-d 120=发送到目标机器的每个数据包的大小。单位是字节
-s = 只发送SYN数据包。
-w 64 = TCP窗口大小。。
-p 80 =目的地端口(80是WEB端口)。你在这里可以使用任何端口。
--flood =尽可能快地发送数据包,不需要考虑显示入站回复。洪水攻击模式。
**--rand-source=使用随机性的源头IP地址。**这里的伪造的IP地址,只是在局域中伪造。通过路由器后,还会还原成真实的IP地址。.
1.3.4 FPING 工具
Fping就是ping命令的加强版,它可以对一个IP段进行ping扫描,而ping命令本身是不可以对网段进行扫描的。
1.4 四层发现-Nmap的扫描方式
1.4.1 nmap简介
nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、 ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree).SYN扫描和null扫描。还可以探测操作系统类型。
例1:
Nmap scan report for 192.168.1.100.
Host is up (0.00043s latency).
Not shown: 995 filtered ports.
PORTSTATE SERVICE.80/tcpopen
http-135/tcp open msrpc.
139/tcp open netbios-ssn
445/tcp open microsoft-ds.
3306/tcp open mysql
MAC Address: 48:5F:99:83:AB:AF(Unknown)
Nmap done: 1 lP address (1 host up) scanned in 11.49 seconds.
例2∶扫描一个范围:端口1-200.
root@kali:~# nmap 1-200 192.168.1.100 -p参数 #规定端口范围扫描
Starting Nmap 7.70 ( https://nmap.org ) at 2019-10-30 11:27 CST.
Nmap scan report for 192.168.1.100.
Host is up (0.00039s latency).
Not shown: 197 filtered ports.PORT STATE SERVICE.
80/tcp open http135/tcp open msrpc
139/tcp open netbios-ssn
MAC Address: 48:5F:99:83:AB:AF(Unknown)
Nmap done: 1 lP address (1 host up) scanned in 9.16 seconds-
假如想知道自己的机器开放了哪些端口?
可以使用nmap进行扫描。
例3∶扫描一台机器∶查看此服务器的操作系统类型。
root@kali:~# nmap -0 192.168.1.106 -О参数 #显示服务器版
Starting Nmap 7.70 ( https://nmap.org ) at 2019-10-30 11:52 CST.
Nmap scan report for 192.168.1.106.
Host is up (0.0010s latency).
Not shown: 991 closed ports
PORT STATE SERVICE.
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds.
49152/tcp open unknown
49153/tcp open unknown.
49154/tcp open unknown.
49155/tcp open unknown.
49156/tcp open unknown.
49158/tcp open unknown.
MAC Address: 00:0C:29:35:53:89 (VMware)
1.5 实战:使用scapy定制数据包进行高级扫描
1.5.1 scapy工具简介
Scapy是一个可以让用户发送、侦听和解析并伪装网络报文的Python程序。这些功能可以用于制作侦测、扫描和攻击网络的工具。
Scapy工具在黑客工具榜排行第20位:
https://sectools.org/
1.5.2 scapy定制ARP包
如果要定制一个ARP包,需要这些参数。
硬件类型 协议类型 硬件地址长度(MAC地址)协议地址长度(IP地址)查询 源MAC 源IP 目标MAC 目标IP
对谁发送ARP包要改目的MAC和IP
这不是对方回的包,所以对方不在线。(老师的教程对方回了包,所以在线)
例1∶定义向192.168.1.1发送arp请求的数据包
sr1函数作用:sr1函数包含了发送数据包和接手数据包的功能。
>>> sr1(ARP(pdst="192.168.1.1""'))
Begin emission:
*Finished sending 1 packets.
Received 1 packets, got 1 answers,remaining 0 packets
<ARP hwtype=Ox1 ptype=Ox800 hwlen=6 plen=4 op=is-at hwsrc=2c43:1a:e6:ba:80psrc=192.168.1.1 hwdst=00:0c:29:ff:52:39
pdst=192.168.1.102 |<Padding load='\x00\x00\x00x00\x00x00\x0O\x00\x00x00x00x00\x00\x00O\x00xOO\x00\x00'>>
>>> exit() #退出scapy.
注:发现源地址 psrc=192.168.1.1,说明已经收到网关的应答包。
1.5.3 scapy定制 PING 包
注:IP()生成ping包的源IP和目标IP,ICMP()生ping包的类型,使用IP()和ICMP()可以生成ping包,进行探测
思路:
1、修改IP包头的dst,也就是我们的目的地址
2、拼接上ICMP的数据包类型
3、使用sr1()进行发送数据包并接收数据包
>>>sr1(IP(dst="192.168.253.1")/ICMP(),timeout=1)
Begin emission:
.Finished sending 1 packets.
Received 2 packets, got 1 answers, remaining 0 packets
<lversion=4 ihl=5 tos=0x0 len=28 id=25252 flags= frag=0 ttl=64proto=icmp
chksum=0x9485 src=192.168.1.1 dst=192.168.1.102 options=|<ICMPtype=echo-replycode=0
chksum=Oxffffid=0x0 id=0x0 seq=0x0 |<Padding
load='x00\x00\x00x00\x0O\x00\x00x00x00\x00\x0O\x00\x0O\x0O\x00\xOO\x00x0o'
1.5.4 scapy定制TCP协议SYN请求
tcp三次握手过程中flags的标记。
![](https://s3.bmp.ovh/imgs/2022/10/09/587749364b145ab5.jpg
我们得到一个flags=SA的数据包。SA标志即SYN+ACK。我妈妈收到服务器tcp三次握手中的第二个包,能收到回应,表示端口开放。
注:这种基于tcp的半链接扫描,更隐蔽,更不容易被发现。