使用Nmap进行扫描
1.熟练使用NMap完成各类扫描,如IP、端口、版本、操作系统等
nmap(Network Mapper)是一款开源免费的针对大型网络的端口扫描工具,nmap可以检测目标主机是否在线、主机端口开放情况、检测主机运行的服务类型及版本信息、检测操作系统与设备类型等信息。
nmap主要功能有:
2.检测主机是否在线。例如,列出响应TCP和/或ICMP请求或打开特定端口的主机。
3.扫描指定主机/主机列表端口开放状态,枚举目标主机上的开放端口,常用。
4.检测主机运行服务类型及版本,检测远程设备上的网络服务以确定应用程序名称和版本号
5.检测操作系统版本和设备类型 ,确定网络设备的操作系统和硬件特性。
6.可与脚本进行脚本交互,使用Nmap脚本引擎(NSE)和Lua编程语言
python的scapy和其他底层库编写数据包进行扫描检测,甚至也可以达到泛洪的目的,比如基于全连接,半连接(SYN数据包),ARP,ICMP协议数据包进行探测。当然也可以使用namp进行其他版本和操作系统等进行扫描,当然这些探测的结果不一定很准确,所以我们需要更深入了解。
那nmap是如何知道端口版本和操作系统版本的呢?namp内置了非常多的设备指纹,他会通过对这些指纹进行内核版本的探测,然后比较给出我们结果。
一、扫描IP地址
nmap -sn 192.168.112.0/24 192.168.112.1-255 192.168.112.100-150
二、扫描端口
基于三次握手扫描: nmap -sT 192.168.112.130
相对来说速度较慢
基于SYN包扫描:nmap -sS 192.168.112.188
基于ACK包扫描:nmap -sA 192.168.112.188
不进行Ping扫描:nmap -Pn 192.168.112.188 还是发送SYN包
扫描端口和版本:nmap -sV 192.168.112.188 还是发送SYN包
指定端囗:nmap -p10-200,-p21,22,25,80,445,3306,1521,8080,8888
三、扫描操作系统
nmap -O 192.168.230.147 还是发送SYN包
四、其他常用命令
万能开关: nmap -A 192.168.112.188
快速扫描:nmap -F 192.168.112.188
输出详情:nmap -T4-v 192.168.112.188
Ping扫描:nmap -sP 192.168.112.0/24 先通过ARP获得MAC地址
TraceRoute:nmap --traceroute www.woniuxy.com
五、绕过防火墙
IP欺骗:设置源IP地址为别的IP,nmap -S
MTU分片:将数据包切分成多个片段进行发送,nmap -f
MAC款骗:--spoof-mac
设置延时:为了绕过阈值验证
六、端口状态
1、open(开放的)
应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。
2、closed (关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有所帮助。 因为关闭的关口是可访问的,也许过会儿值得再扫描一下,可能一些又开放了。 系统管理员可能会考虑用防火墙封锁这样的端口。那样他们就会被显示为被过滤的状态,下面讨论。
3、filtered(被过滤的)
由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折,因为它们几乎不提供 任何信息。有时候它们响应ICMP错误消息如类型3代码13 (无法到达目标:通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, 不做任何响应。 这迫使Nmap重试若干次以访万一探测包是由于网络阻塞丢弃的。 这使得扫描速度明显变慢。
4、unfiltered(未被过滤的)
未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。 只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。 用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。
5、open l filtered(开放或者被过滤的)
当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。 UDP,IP协议,FIN,Nu,和Xmas扫描可能把端口归入此类。
6、closed | filtered(关闭或者被过滤的)
该状态用于Nmap不能确定端口是关闭的还是被过滤的。它只可能出现在IPID Idle扫描中。