描述使用Nmap对系统进行网络端口扫描的过程
【实验过程]】
将实验指导书的实验过程缩写,重点在于写出实验执行的具体步骤,以下是一个实验的书写实例:
1、 运行实验工具目录下的Nmap安装程序,安装Nmap到系统中的默认路径
2、 主机发现:运行如下命令:Nmap –sP 192.168.80.201,来判断目标主机Windows
Server A是否可连通
3、 使用常规扫描方式对目标主机进行TCP端口扫描,运行如下命令:Nmap –sT
192.168.80.201
4、 使用SYN半扫描方式,对目标主机进行TCP端口扫描,运行如下命令:Nmap –sS
192.168.80.201
5、 对主机进行UDP端口扫描,运行如下命令:Nmap –sV 192.168.80.201
6、 探测目标主机的操作系统类型,运行如下命令:Nmap –O –P0 192.168.80.201
7、 运行Namp的图形化前端程序Nmap,在“Target”中输入扫描目标的IP地址
(192.168.80.201),然后在Profile预定义配置下拉框中选择配置“Intense Scan , no Ping”,然后点击菜单项“Profile”-“Edit Selected Profile”,切换到“Scan”选项卡,勾选上“Operation system detection”和“Version detection”,然后点击“Save Changes”按钮保存扫描配置,最后点击“Scan”按钮开始扫描。
具体参考
Nmap 扫描原理及使用方法
Nmap 扫描原理及使用方法
Namp包含四项基本功能
Nmap基本扫描方法
2.1 用法引入
2.1.1确定端口状况
确定目标主机在线情况及端口基本状况。
命令形式:
namp targethost
2.1.2 完整全面的扫描
对主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用该选项,nmap 对主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。
1)命令形式:
nmap -T4 -A -v targethost
2)参数详解:
2.2 主机发现
2.2.1 主机发现原理
主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,说明目标主机是开启的。
1)常见主机探测方式:
2)案例:
Nmap的用户位于源端,IP地址192.168.0.5,向目标主机192.168.0.3发送ICMP Echo Request。如果该请求报文没有被防火墙拦截掉,那么目标机会回复ICMP Echo Reply包回来。以此来确定目标主机是否在线。
3)默认情况下:Nmap会发送四种不同类型的数据包来探测目标主机是否在线。
依次发送四个报文探测目标机是否开启。只要收到其中一个包的回复,那就证明目标机开启。使用四种不同类型的数据包可以避免因防火墙或丢包造成的判断错误。
2.2.2 主机发现的用法
2.3 端口扫描
Namp通过探测将端口划分为6个状态:
2.3.1 端口扫描原理
2.3.1.1 TCP SYN scanning
TCP SYN scanning 是Nmap默认的扫描方式,称作半开放扫描。
原理:该方式发送SYN到目标端口。
2.3.1.2 TCP connect scanning
原理:TCP connect 方式使用系统网络API connect 向目标主机的端口发起连接。
优缺点:该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息,不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑选择的方式。
2.3.1.3 TCP ACK scanning
原理:向目标主机的端口发送ACK包。
优缺点:该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。
2.3.1.4 TCP FIN/Xmas/NULL scanning
这三种扫描方式被称为秘密扫描(Stealthy Scan)
原理:FIN扫描向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包
其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP包。
2.3.1.5 UDP scanning
UDP扫描方式用于判断UDP端口的情况。
原理:向目标主机的UDP端口发送探测包。
2.3.2 端口扫描用法
2.3.2.1 扫描方式选项
2.3.2.2 端口参数与扫描顺序
2.4 版本侦测
2.4.1 优缺点
2.4.2 版本侦测原理
2.4.3 版本侦测用法
2.5 OS侦测
2.5.1 OS侦测原理
2.5.2 OS侦测用法
参考:
使用Nmap进行端口扫描
在未经授权的情况下夺取计算机系统控制权的行为是 违法行为, 此篇文章仅作为学习交流和探讨,若要测试成果,请在自己虚拟机上测试,或者被允许渗透的计算机系统上演练, 请勿做出违法之骚操作,操作者做出的一切违法操作均与本人和此文无关
本文使用Nmap进行扫描,其他扫描手段本文不进行探讨
Nmap是端口扫描方面的业内标准,网上的资料让人眼花缭乱,时至今日,各式各样的防火墙已经普遍采用了入侵检测和入侵防御技术,他们能够有效地拦截常见的端口扫描,所以,即使使用Nmap程序扫描结果一无所获也不是什么意外的事。换句话说, 如果你在公网上对指定网段进行主机扫描时没检测出一台在线主机,那么就应当认为扫描行动多半是被防火墙系统拦截下来了,反之则是另一种极端情况:每台主机都在线,每个端口都处于开放状态
SYN扫描
所谓的SYN扫苗实际上是一种模拟TCP握手的端口扫描技术。TCP握手分为3个阶段:SYN、SYN-ACK、ACK。在进行SYN扫描时,Nmap程序向远程主机发送SYN数据包并等待对方的SYN-ACK数据。 如果在最初发送SYN数据包之后没有收到SYN-ACK响应,那么既定端口就不会是开放端口,在此情况下,既定端口不是关闭就是被过滤了
在使用Nmap扫描之前,可以先使用maltego之类的信息搜集工具分析出有用的信息。我使用一个非法网站的IP来作为演示
需要注意的是,某个端口是开放端口不代表这个端口背后的程序存在安全缺陷,我们仅能够通过开放端口初步了解计算机运行的应用程序,进而判断这个程序是否存在安全缺陷
版本扫描
虽然SYN扫描具有某种隐蔽性,但它不能告诉我们打开这些端口的程序到底是什么版本,如果说我们想要知道这台主机的某个端口在运行着什么程序以及它运行的版本,这在我们后期威胁建模阶段有极大的用处, 使用-sT或者-sV 即可查看
运气很好,看来这个网站运行的程序有安全漏洞,这个名为OpenSSH 5.3的软件存在着一个CVE-2016-10009漏洞,攻击者可以通过远程攻击openssh来获得服务器权限。我们在这里不做攻击操作,毕竟这是别人的网站,虽然是个违法网站。如果有机会后期笔者将会根据情况写一些关于漏洞利用的文章
UPD扫描
Nmap的SYN扫描和完整的TCP扫描都不能扫描UDP,因为UDP的程序采用无连接的方式传输。在进行UDP扫描时,Nmap将向既定端口发送UPD数据包,不过UDP协议的应用程序有着各自不同的数据传输协议,因此在远程主机正常回复该数据的情况下,能够确定既定端口处于开放状态。 如果既定端口处于关闭状态,那么Nmap程序应当收到ICMP协议的端口不可达信息。 如果没有从远程主机收到任何数据那么情况就比较复杂了,比如说:端口可能处于发放状态,但是响应的应用程序没有回复Nmap发送的查询数据,或者远程主机的回复信息被过滤了,由此可见 在开放端口和被防火墙过滤的端口方面,Nmap存在相应的短板
扫描指定端口
指定端口的扫描可能造成服务器崩溃,最好还是踏踏实实的彻底扫描全部端口 。就不拿别人的服务器来测试了,毕竟我也怕被报复,在这里我把渗透目标设置为我自己的xp靶机,步骤跟前面一样,扫描出端口查看是否有可利用程序,然后对想扫描的端口进行扫描
在渗透测试中,我们都不希望致使任何服务器崩溃,但是我们的确可能会遇到那些无法正确受理非预期输入的应用程序,在这种情况下,Nmap的扫描数据就可能引发程序崩溃
网络安全:Nmap端口扫描
nmap -sS minimum ip/范围
TCP SYN scans:
nmap -sS target ip
nmap使用在连接层的Address Resolution Protocol询问target ip的MAC地址,并获得回应,但是没有TCP包。
nmap显示所有端口都被过滤了,猜想是防火墙过滤了TCP SYN的包。后来发现是虚拟机网络的混杂模式设为了拒绝,调成允许所有之后:
nmap发出了1000个TCPSYN,等待目标主机TCP ACK回应,打开的端口在ACK中包含Source port=自己的端口号,关闭的端口Source port=54247。
1000个端口中有四个端口打开了。
UDP scans:
nmap -sU target ip --host-timeout 100
设置timeout以免等待时间过长。
nmap发出了UDP包,等待目标主机ICMP 70/110 Destination unreachable回应。
扩大搜索范围以纳入更高端口。
nmap --top-ports 10000 target ip
nmap -p 10000-30000 target ip
nmap -sV -p 13337 target ip
这是一个Apache HTTP服务器。
0条大神的评论