Target
实践内容:在目标系统中识别开放端口
涉及知识点:理解TCP/IP 协议、端口扫描技术、Nmap 工具使用、服务识别。
Trail
命令
nmap -sS <ip> //SYN半开扫描,使用最频繁,安全,快 nmap -sT //TCP连接扫描,不安全,慢 nmap -sA 192.168.96.4 //TCP ACK 扫描检测哪些端口被屏蔽 nmap -sU 192.168.96.4 //UDP扫描,慢,可得到有价值的服务器程序 nmap -p <portnumber> <ip> //对指定端口扫描 namp -p- <ip> //对所有端口进行扫描 nmap -A <ip> //强力扫描,耗时长 nmap -sP <ip> //仅仅对目标进行ping检测 namp -PN <ip/24> // NO PING 扫描 绕过ping命令而不影响主机发现 nmap -sV <ip> //对端口上的服务程序版本进行扫描 nmap -O <ip> //对目标主机的操作系统进行扫描 nmap -f <IP> //通过将数据包分割成更小的部分发送,使得防火墙更难识别这些数据包属于一个扫描流量
实验1
主机存活检测
nmap -sP [ip]
==》目标主机在线
全端口扫描
nmap -p T:1-65535,U:1-65535 -sS -sU [靶机IP]
==》 mysql、http、远程桌面服务等运行
应用程序和版本侦测
namp -sV -O [ip]
==》 Apache httpd 2.4.4, php 版本 5.3.26 , Window Server 2003
实验2:
内容:利用Wireshark辅助分析Nmap的TCP SYN、TCP connect和TCP ACK等扫描方式的发包过程,验证了这些扫描方式的原理。
启动wireshark,开启 eth0 抓包,封包过滤 ip.addr == [操作机IP]
1.使用nmap对靶机80端口进行 TCP SYN 扫描
nmap -p 80 -sS [靶机IP]
Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机发送TCP RST报文以重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。
半开扫描
2.使用nmap对靶机80端口进行 TCP Connect 扫描 并wireshark封包观察情况
nmap -p 80 -sT [靶机IP]
TCP connect原理分析: Nmap向目标端口发送TCP SYN报文,如果目标机返回TCP SYN+ACK报文,则说明目标端口处于开放状态,同时Nmap会紧接着向目标机依次发送TCP ACK、TCP RST+ACK完成三次握手和重置此连接;如果目标机返回TCP RST+ACK报文,则说明目标端口处于关闭状态。
3.使用nmap对靶机80端口进行 TCP ACK扫描 并wireshark封包观察情
TCP ACK原理分析: Nmap向目标端口发送TCP ACK报文,无论目标端口是否处于开放状态,目标机都会返回TCP RST报文。如果Nmap主机能收到此TCP RST报文,则说明目标端口未被防火墙屏蔽。 TCP ACK扫描只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。