主机探测
1.扫描单个主机
nmap 192.168.1.2
2.扫描整个子网
nmap 192.168.1.1/24
3.扫描多个目标
nmap 192.168.1.1 192.168.1.1.5
4.扫描一个范围内的目标
nmap 192.168.1.1-100
5.如果有一个全是ip地址的txt文件,这个文件在你的nmap目录下,则可以这样子操作
nmap -iL 这个文件的名字.txt
6.如果想看到你扫描的所有主机的列表
nmap -sL 192.168.0.1/24
7.扫描时略过某些ip或文件,加上-exclude
nmap 192.168.1.1/24 -exclude 192.168.1.5
nmap 一个文件.txt -exclude 想要略过的文件.txt
端口扫描
1.常用命令
namp -F -sT -v namp.org
-F:扫描100个最有可能开放的端口
-v:获取扫描的信息
-sT:采用的时TCP扫描,不写也可以,默认为TCP扫描
-p:指定要扫描的端口(如namp -p80,22,23 192.168.6.1)
较为实用的:nmap -iL 1.txt -p 1-65535 -Pn -sS
扫描一个文件里的ip的65535个端口 要采取隐蔽式扫描 ,跳过主机存活发现 ,半连接式扫描
在使用nmap时,先用masscan扫存活端口 再用nmap识别端口服务。masscan -iL 1.txt -p 1-65535 -oJ masscan.json --rate 2000 提取出存活的端口,再用nmap扫描端口服务
端口状态分为6种:
Open:端口处于开放状态
Closed:端口处于关闭状态
Filtered(过滤的):由于报文无法到达指定的端口,nmap不能够决定端口的开放状态,这主要是由于网络或者主机安装了一些防火墙所导致的。当nmap收到icmp报文主机不可达报文
Unfiltered(未被过滤的),当nmap不能确定端口是否开放的时候所打上的状态,这种状态和filtered的区别在于:unfiltered的端口能被nmap访问,但是nmap根据返回的报文无法确定端口的开放状态,而filtered的端口直接就没就没能够被nmap访问。端口被定义为Unfilterd只会发生在TCP ack扫描类型时当返回RST的报文。而端口被定义为filtered 状态的原因是是报文被防火墙设备,路由器规则,或者防火墙软件拦截,无法送达到端口,这通常表现为发送NMAP的主机收到ICMP报错报文,如:TYPE为3,code为13的报文
Open|filtered状态,这种状态主要是nmap无法区别端口处于open状态还是filtered状态。这种状态只会出现在open端口对报文不做回应的扫描类型中
Closed|filtered状态,这种状态主要出现在nmap无法区分端口处于closed还是filtered时
参考:https://blog.csdn.net/m0_37268841/article/details/80234365
扫描方式
TCP(-sT)和SYN(-sS)
-sS
优点:Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高
缺点:它需要root/administrator权限执行
-sT
优点:你勿需root权限。普通用户也可以使用。
缺点:这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息,由于它要完成3次握手,效率低,速度慢,建议使用-sS
2.UDP ping探测主机:
nmap -PU 192.168.1.0/24
3.服务器版本探测
nmap -sV 192.168.1.1
4.精准确认端口上运行的服务
nmap -sV --script unusual -port 192.168.1.1
5.探测主机操作系统
nmap -O 192.168.1.19
nmap -A 192.168.1.19
6.导出扫描结果
用关键字-oN和-oX
另外:
使用这个命令,可以抵御一次攻击
nmap -sT -A localhost