一、namp
NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包。包含四项基本功能:
主机发现(Host Discovery)
端口扫描(Port Scanning)
版本侦测(Version Detection)
操作系统侦测(Operating System Detection)
项目地址:http://nmap.org/download.html
rpm -vhU https://nmap.org/dist/nmap-7.92-1.x86_64.rpm
[root@localhost ~]# tar jxvf nmap-6.40.tar.bz2
[root@localhost nmap-6.40]# ./configure
[root@localhost nmap-6.40]# make && make install
[root@localhost ~]# nmap 192.168.0.10 #获取基本信息
[root@localhost ~]# nmap -O 192.168.0.10 #获取系统版本信息
[root@localhost ~]# nmap -A 192.168.0.10 #获取系统综合信息
[root@localhost ~]# nmap 192.168.0.0/24 #获取一个网段工作设备基本信息
- -sS TCP扫描
- -sV 系统版本检测
nmap端口状态解析
open: 应用程序在该端口接收 TCP 连接或者 UDP 报文。
closed:关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应。但没有应用程序在其上监听。
filtered:由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则 或者主机上的软件防火墙。
unfiltered:未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。 只有用于映射防火墙规则集的 ACK 扫描才会把端口分类到这个状态。
open | filtered:无法确定端口是开放还是被过滤, 开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应。UDP,IP协议,FIN, Null 等扫描会引起。
closed|filtered:(关闭或者被过滤的):无法确定端口是关闭的还是被过滤的
主机发现
-sP :进行ping扫描
# nmap -sP 192.168.20.0/24 //打印出对ping扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测)可以用于探测局域网有哪些机器
-sn: Ping Scan - disable port scan
# nmap -sn 192.168.20.0/24
-sA:发送tcp的ack包进行探测,可以探测主机是否存活
# nmap -sA 192.168.20.0/24
端口扫描
扫描tcp端口:
# nmap 192.168.40.134
# nmap 192.168.40.134 -p 1-65535 //区别在于不加-p 时,显示的都是已知协议的端口,对于未知协议的端口没显示
# nmap 192.168.40.134 -p 1-100,27017,27018 //连续的端口可以使用横线连起来,端口之间可以使用逗号隔开
指定端口范围使用-p参数,如果不指定要扫描的端口,Nmap默认扫描从1到1024再加上nmap-services列出的端口,假如有的服务不在nmap-services,可能nmap就不会去扫描,这就是明明一些端口已经是处于监听状态,nmap默认没扫描出来的原因,需要加入-p参数让其扫描所有端口。
扫描udp端口
# nmap -sU 192.168.20.215 //对于udp端口扫描比较慢
-sU:表示udp scan , udp端口扫描
-Pn:不对目标进行ping探测(不判断主机是否在线)(直接扫描端口)
扫描多个IP用法
# nmap 192.168.40.12 192.168.40.216 // 中间用空格分开
# nmap 192.168.40.215,216 // 使用逗号分割
# nmap 192.168.40.215-218 // 扫描连续的ip地址
# nmap 192.168.40.0/24 // 扫描一个子网网段所有IP
# nmap -iL ip.txt // 扫描文件里的IP
# nmap 192.168.40.215-218 --exclude 192.168.40.217 // 扫描地址段是排除某个IP地址
# nmap 192.168.40.215-218 --exclude 192.168.40.216-217 //扫描时排除多个IP地址,排除连续的,可以使用横线连接起来
# nmap 192.168.40.215-218 --exclude 192.168.40.216,192.168.40.217 //扫描时排除多个IP地址,排除分散的,使用逗号隔开
# nmap 192.168.40.215-218 --excludefile ex.txt //扫描多个地址时排除文件里的IP地址
端口扫描的高级用法
Tcp SYN Scan (-sS) //tcp半开放扫描(非3次握手的tcp扫描)
优点:Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高
缺点:它需要root/administrator权限执行
# nmap -sS 192.168.20.215
Tcp connect() scan(-sT) //tcp全开放扫描(3次握手方式tcp的扫描)
默认的扫描模式,不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect().
优点:你勿需root权限。普通用户也可以使用。
缺点:这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息,由于它要完成3次握手,效率低,速度慢,建议使用-sS
# nmap -sT 192.168.20.215 等同于 # nmap 192.168.20.215
Udp scan(-sU) //udp端口的扫描
这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,
如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.udp端口扫描速度比较慢
# nmap -sU 192.168.20.215
FIN scan (-sF) //也是tcp的扫描一种,发送一个FIN标志的数据包
有时候TcpSYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手.
和sS扫描效果差不多,比sT速度快
# nmap -sF 192.168.20.215
版本侦测
-sV:版本检测(sV),用来扫描目标主机和端口上运行的软件的版本
nmap -sV 192.168.40.140
Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 11:20 CST
Nmap scan report for 192.168.40.140
Host is up (0.00011s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp open http nginx 1.14.2
MAC Address: 00:0C:29:1E:50:04 (VMware)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.32 seconds
操作系统侦测
Nmap最重要的特点之一是能够远程检测操作系统和软件,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统和软件是非常有用的,通过获取的信息你可以知道已知的漏洞。Nmap有一个名为的nmap-OS-DB数据库,该数据库包含超过2600操作系统的信息。 Nmap把TCP和UDP数据包发送到目标机器上,然后检查结果和数据库对照。
nmap -O 192.168.40.140
Starting Nmap 7.92 ( https://nmap.org ) at 2021-09-02 11:21 CST
Nmap scan report for 192.168.40.140
Host is up (0.00034s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
MAC Address: 00:0C:29:1E:50:04 (VMware)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.86 seconds