Kali内Nmap端口扫描与高级扫描
目录 使用Nmap进行端口扫描 -sS代表使用nmap执行一次隐秘的TCP扫描 -Pn代表nmap不会使用ping命令预先判断主机是否存活 【-Pn是默认目标主机是存活的,适用于internet渗透测试环境,由于大多数网络不允许ping命令所使用的"ICMP"通行,如果预先使用ping,则可能会漏掉许多真实存活的主机】
高级Nmap扫描:TCP空闲扫描 在了解TCP空闲扫描时,首先多嘴一下一般端口的探测原理。去判断端口是否开放,其中一种方法(三次握手协议)是先向该端口发送一个 SYN包,如果进行扫描的目标端口是开放的,则它会返回一个 SYN/ACK 包,反之,关闭的,则返回 RST(异常终止)包,一般通过这种方法判断扫描的目标端口是否开放,并进行枚举 进行TCP空闲扫描前,我们需要在网络上定位一台使用递增IP帧(每个IP数据包都有一个分段身份识别号【IP ID】。大多数操作系统只是简单的把该识别号递增,所以它的IP帧是可以被预测的,利用这个特点计算出它下一个IP帧的标识)机制的空闲主机(空闲主机可以理解为在一定时间内不会发送任何数据包被我们利用的傀儡机) 举个例子:假设已知一台主机 a ,它属于空闲主机,在一定时间内不会发送任何数据包。我们向这台主机a略过SYN包,直接发送一个 SYN/ACK 包。由于主机a没有对我们发送过 SYN 包,但是却接收到SYN/ACK 包之后,它无法理解,根据三次握手协议,会返回给我们一个 RST (异常终止)包,包里会附有 IP ID。已知主机a的IP地址后,我们伪装成主机 a 对目标进行端口探测,如果主机a实际的IP帧与预测的IP帧发生断档,则可以推测该目标端口可能是开放的 使用Metasploit框架内的scanner/ip/ipidseq模块扫描出满足TCP空闲扫描的主机a 一、使用Metasploit框架,需要先启用Metasploit所依赖的postgresql数据库 在kali Linux上启动postgresql命令 【systemctl start postgresql】
如果想查看postgresql是否开启可以使用【systemctl status postgresql】命令,如果显示active表示已经打开 二、启动Kali自带的MSF 命令:【msfconsole】
三、使用扫描空闲主机的模块【use auxiliary/scanner/ip/ipidseq】,并且【show options】查看需要进行配置的内容 四、进行配置,在Required下,yes代表必须设置,no代表可以不更改,设置RHOSTS的一个扫描范围,同时设置THREADS的线程数,50或者100
五、run 六、扫描完成之后发现一个空闲主机192.168.200.131(由于198.168.200.134是我们的攻击目标,所以不算扫描出两个) ,使用msf内的nmap中的-sI获取192.168.200.131对目标进行扫描 命令:【nmap -PN -sI 傀儡机IP 目标IP】 nmap -PN -sI 192.168.200.131 192.168.200.134