网络渗透测试(二):目标识别
文章目录
1.识别目标主机
1.1 ping
如果目标主机在线且允许受理ping请求,那么主机将回复ICMP echo reply数据包,ping指令的目标主机参数,可以是IP地址,也可以是主机名
//例如:
# ping 192.168.0.1
//在没规定次数的时候,按下ctrl+c才会停止ping指令的运行
// -c 规定次数
# ping -c 1 192.168.0.1
如果需要屏蔽ping请求的数据包,可在防火墙里配置ICMP echo request的白名单,并屏蔽来自其他IP地址的ICMP echo request数据包
1.2 arping
aiping是在局域网中使用ARP请求判断目标主机是否在线的工具,您可以用IP地址或MAC地址作为它的测试目标
//简单使用一次:
# arping 192.168.0.102 -c 1
//检测对方是否在线:
# arping -d -i eth0 192.168.56.102 -c 2
1.3 fping
fping可以同时向多个主机发送ping(ICMP echo)请求,您可以在命令行中指定多个目标主机,也可以在某个文件里指定需要被检测的主机
fping程序通过目标主机的回复来判断该主机是否在线,如果目标主机发送回应,该主机将会被标记为alive(在线):
如果主机在一段时间内(超时或超过尝试次数)没有进行响应,该主机则会被标记为unreachable(不可访问)。默认情况下,fping将尝试向每个目标发送3次ICMP echo数据包
//获取帮助
# fping -h
//同时检测3个主机是否在线
# fping 192.168.1.1 192.168.1.100 192.168.1.107
//检测指定网段里的所有在线主机 -g选项支持生成列表
# fping -g 192.168.56.0/24
//如需改变探测目标主机的重试次数,则可在指令之中使用 -r选项,默认情况下时3次
# fping -r 1 -g 192.168.0.1 192.167.23.12
// -s 查看多个目标的统计结果
# fping -s www.yahoo.com www.google.com www.msn.com
1.4 hping3
hping3程序是命令下的网络数据包生成和分析工具,其主要用途:
- 测试防火墙规则
- 测试入侵检测系统/IDS
- 测试TCP/IP模式的安全漏洞
编号 | 选项缩写 | 选项全称 | 描述 |
---|---|---|---|
1 | -0 | –raw-ip | 发送原始IP包 |
2 | -1 | –icmp | 发送ICMP包 |
3 | -2 | –udp | 发送UDP包 |
4 | -8 | –scan | 进入扫描模式 |
5 | -9 | –listen | 进入监听模式 |
编号 | 选项 | 标识名称 |
---|---|---|
1 | -S | syn |
2 | -A | ack |
3 | -R | rst |
4 | -F | fin |
5 | -P | psh |
6 | -U | urg |
7 | -X | xmas:设置fin,urg,psh |
8 | -Y | ymas |
//简单使用:
# hping3 -1 192.168.56.101 -c 1
//使用小述指令接受目标服务器的响应
# hping3
#hping3> hping recv eth0
验证防火墙规则时,可以使用hping3程序发送ICMP echo请求
# hping3 -1 192.168.0.1 -c 1
如果目标主机没有对我们的ping进行响应,我们可以对目标主机的TCP22端口发送一个带有SYN标识的TCP包再进行测试
# hping3 192.168.0.1 -c 1 -S -p 22 --s 6060
如果目标主机没有对我们的ping进行响应,我们可以对目标主机的UDP22端口发送一个带有SYN标识的TCP包再进行测试
# hping3 -2 192.168.0.1 -c 1 -S -p 22 -s 6060
1.5 nping
nping允许用户发送多种协议(TCP,UDP,ICMP和ARP协议)的数据包,它可以像ping程序一样发送ICMP echo请求。nping还可以用于对网络进行压力测试,ARP中毒,DoS攻击
在Kali Linux中,nping程序是Nmap程序包的一部分
nping支持的多种探测模式如下:
编号 | 模式选项 | 说明 |
---|---|---|
1 | –tcp-connect | 基础的tcp-connect功能 |
2 | –tcp | TCP模式 |
3 | –udp | UDP模式 |
4 | –icmp | ICMP模式(默认模式) |
5 | –arp | ARP/RARP模式 |
6 | –tr | traceroute模式(仅与TCP/UDP/ICMP模式兼容) |
如需向多个目标主机(192.168.0.1 , 192.168.0.2 , 192.168.0.3)发送ICMP echo 请求,可使用下述指令
# nping -c 1 192.168.0.1-3
向目标主机的22端口(-p 22)发送1次(-c 1)TCP(–tcp)数据包,可使用下述指令
# nping --tcp -c 1 -p 22 192.168.0.1
建议从常规端口进行测试,它们分别是
21 / 222 / 23 / 25 / 80 / 443 / 8443
1.6 alive6
如果您需要检测ipv6中联入了哪些主机,肯定不应该扫描整个网络,因为ipv6的地址空间太大了
allive6程序可以发送ICMPv6的检测数据包,并能处理网络上的响应
查找在线的ipv6主机
# alive6 -p eth0
如果不希望其他主机通过这种方式探测到自己的ipv6主机,可以通过ip6tables指令屏蔽ICMPv6的echo请求
# ip6tables -A INPUt -p ipv6-icmp --type icmpv6-type 128 -j DROP
1.7 detect-new-ip6
这个程序可以在IPv6的网络里检测到新加入网络的主机。
可以在终端中直接输入detect-new-ipv6来启动它
# detect-new-ipv6 eth0
1.8 passive_discovery6
通过网络监听的方式找到主机的IPv6地址,可使用这个程序,使用这个程序可以避免被IDS检测出来
passive_discovery6 eth0
1.9 nbtscan
如果在内网渗透中审计Windows系统,您需要首先获取主机的NetBIOS信息,最常用的工具就是nbtscan
这个工具可以将相应主机IP地址,NetBIOS计算机名,可用服务,登录用户名和MAC地址整理为报告。如果需要NetBIOS协议访问目标主机的NetBIOS服务(例如网络共享),就需要掌握目标主机的NetBIOS名称,但是这个工具的使用将会产生大量的网络流量,而且很可能被目标主机记录在日志里面
搜索局域网(192.168.1.0/24)内各个主机的NetBIOS名称
# nbtscan 192.168.1.1-254
# nbtscan -hv 192.168.1.1-254
2. 识别操作系统
在确定目标主机在线后,应当识别它们使用的操作系统,这段工作通常被称为识别操作系统或操作系统指纹识别
识别操作系统的方式分别有:
-
主动式
主动式的优点是探测速度快,缺点是目标主机可能会发现我们探测操作系统的行为
-
被动式
被动式操作系统识别克服了主动式识别方法的缺点,但是被动式的缺点是比主动式识别方法的识别速度慢
2.1 p0f
p0f采用被动式的方法探测目标主机的操作系统类型。这个工具可以识别一下几种主机:
- 连接到您主机的机器(SYN模式,即默认模式)
- 您主机可以访问的机器(SYN+ACK模式)
- 您主机不能访问的机器(RST+模式)
- 您可以监控到其网络通信的机器
这个程序通过自身发出的TCP数据包分析操作系统的类型
如需使用p0f程序识别远程主机的操作系统,可以使用下述指令
# p0f -f /etc/p0f/p0f.fp -o p0f.log
2.2 Nmap
Nmap是一款非常受欢迎的功能强大的端口扫描程序。它还能识别操作系统,能够进行主动式的操作系统指纹识别
// -o 用于识别操作系统
# namp -o 192.168.0.1
声明
本测试仅供学习交流所用,不得在未经被测方有效法律允许的情况下擅自测试