我们常说,渗透测试的本质就是信息收集。可见信息收集至关重要。这篇文章会给你介绍相关信息收集的各种方法和原理,希望对你的学习有所帮助。
主机发现
基于apr扫描
通过ARP
进行主机的发现,速度快,并且很准确,但是缺点就是只能发现本网段的IP。
arping扫描
代码语言:javascript复制arping 192.168.123.1 -c 5
-c
:发送5组数据包。
如上图。目标主机发送的数据包有回应(返回了对应IP的mac)地址,证明此IP是存活的。
基于nmap的arp扫描
代码语言:javascript复制nmap -sn -PR 192.168.123.1/24
nmap能很快的扫描出目前在线的设备IP和设备名称。
netdiscover扫描
代码语言:javascript复制netdiscover -i eth0 -r 192.168.123.1/24
相对于前面的几款扫描工具,netdiscover
的扫描结果更加清晰!
基于ICMP扫描
ping命令
ping
是我们最常用的命令之一,他是基于ICMP
协议。
ping www.bbskali.cn -c 6
traceroute
traceroute
是跟踪路由,原理是通过设置TTL从1递增,TTL减为0的时候,将会返回,所以我们可以一个一个追踪出来。
traceroute bbskali.cn
fping
和ping命令一样,能够很快的检测当前命令是否在线。
代码语言:javascript复制fping bbskali.cn
基于TCP/UDP扫描
TCP扫描
:发送未经请求的ACK包,就是说本来要握手的,但是我只发送一个ACK包,服务器会响应一个RST包,我们可以基于这个特性进行一个TCP的扫描IP是否在线。当然也可以发送SYN包进行检测。
UDP扫描
:就是发送数据包,但是我们发送的数据一般不会得到响应(因为我们的数据不是服务器所期望的有效数据),只有当端口不存在的时候服务器才会给我们发送一个ICMP的端口不可达的数据包。
Nmap tcp/udp扫描
代码语言:javascript复制nmap -PU 192.168.123.1/24
hping3扫描
代码语言:javascript复制hping3 --udp 192.168.123.1 -c 1
存活主机和不存活主机对比。
端口扫描
有人会活,你不是多此一举吗?用前面的命令可以直接扫描端口吗?但是我们的端口扫描是建立在主机存活的基础上的。
基于UDP的端口扫描
nmap扫描
代码语言:javascript复制nmap -sU 192.168.123.1
UDP
扫描相对于花费的时间可能较长点。
基于TCP/SYN的扫描
相对于端口扫描,无论是哪种方法扫描,其原理都是一样的。通过探测端口返回的数据大小,来判断当前端口是否开放。
服务识别
通过扫描开放的端口,来判断当前设备可能运行那些应用服务。
banner信息
利用nc返回
代码语言:javascript复制nc -nv 192.168.123.1 22
dmitry
代码语言:javascript复制dmitry -pb 192.168.123.1
nmap
代码语言:javascript复制nmap -sT 192.168.123.1 -p 22 --script=banner.nse
指纹识别
代码语言:javascript复制nmap 192.168.123.1 -p 22 -sV
操作系统识别
代码语言:javascript复制nmap -O 192.168.123.1
版权属于:逍遥子大表哥
本文链接:https://cloud.tencent.com/developer/article/2168445
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。