主机探测与端口扫描

【实验目的】

通过本实验的学习,了解端口扫描原理,了解端口扫描利用方法。

【知识点】

端口扫描

【实验原理】

端口扫描的原理是通过向目标主机发送探测数据包(主要针对TCP/IP服务端口),并通过探测数据包反馈回来的数据判断服务端口的状态,这些信息会被记录下来并用于判断端口是否关闭。如利用调用套接字函数connect()可以实现与目标主机的连接并形成完整的“三次握手”,如果端口处于侦听状态则返回connect()函数,也就意味着端口开放;反之则意味着无法提供服务。由于大部分的网络访问都是基于TCP传输协议和UDP数据报协议完成的,这就给攻击者提供了主要的扫描对象。以TCP协议为例,一共有四个协议层构成,分别为:应用层、传输层、网际层和接口层。大部分的网络服务(services)也是通过TCP端口来识别的,这就进一步收缩了可检测的范围。如果一个攻击者想要了解目标主机的服务状态和内容,只需要从反馈的端口号进行分析便可一目了然。如:检测到远程登录协议的端口号23,通过窃取登录账号口令,入侵者便可以通过漏洞建立远程通信连接。

【实验目标】

利用nmap,metasploit,zmap,masscn进行主机发现或端口扫描。

【实验步骤】

1.Nmap

在kali2020中,首先使用Crtl+Alt+T打开终端,我们先对自己的ip地址进行查看,使用命令为ip a。
在这里插入图片描述
接下来在终端中使用nmap对同一局域网下的主机进行扫描,所扫描网段为192.168.12.0/24,使用的命令为nmap -sP 192.168.12.0/24,扫描结果如下图所示,发现目标主机192.168.12.130,其中-sP参数为进行ping扫描,打印出对ping扫描做出响应的主机,不做进一步测试。
在这里插入图片描述
也可以使用nmap -sA 192.168.12.0/24对局域网主机进行存活扫描,其中-sA参数为发送tcp的ack包进行探测,探测主机是否存活,如下图所示,同样可以发现192.168.12.130主机。
在这里插入图片描述
接下来我们对192.168.12.130主机进行端口扫描,使用命令nmap 192.168.12.130,默认发送一个arp的ping数据包来探测目标主机在1-10000范围内所开放的端口,如下图所示,发现目标主机开启了21,22,23,80四个端口,分别运行的服务为ftp,ssh,telnet,http
123
扫描端口的范围也是可以使用-p参数进行指定的,我们对192.168.12.130的1-50端口进行扫描,扫描的命令为nmap -p1-50 192.168.12.130,扫描结果如下图所示,其中只列出来1-50端口中存在的开启端口和服务,并没有列出80端口。
在这里插入图片描述使用SYN半开放方式进行扫描,半开放扫描使Nmap不需要通过完整的握手就能获得远程主机的信息。Nmap发送SYN包到远程主机但是它不会产生任何会话,因此不会在目标主机上产生任何日志记录,因为没有形成会话。这个就是SYN扫描的优势,如果Nmap命令中没有指出扫描类型,默认的就是TcpSYN,但是它在kali中需要root权限。扫描命令为nmap –sS 192.168.12.130,如下图所示。
在这里插入图片描述使用TCP扫描的方式进行扫描,不同于TcpSYN扫描,Tcpconnect()扫描需要完成三次握手,并且要求调用系统的connect(),Tcpconnect()扫描技术只适用于找出TCP和UDP端口。使用命令为nmap -sT 192.168.12.130,如下图所示。
在这里插入图片描述使用UDP扫描的方式进行端口扫描,这种扫描技术用来寻找目标主机打开的UDP端口,它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机并等待响应,如果返回ICMP不可达的错误消息说明端口是关闭的,如果得到正确的适当的回应说明端口是开放的。使用的命令为nmap -sU 192.168.12.130,结果所下图所示。(较慢)
在这里插入图片描述
使用FIN标志的数据包扫描,FIN扫描也不会在目标主机上创建日志(FIN扫描的优势之一),FIN扫描发送的包只包含FIN标识,使用的命令为nmap -sF 192.168.12.130,结果如下图所示。
在这里插入图片描述下面我们要对端口上运行的服务版本进行检测,使用的参数为-sV,命令为nmap -sV 192.168.12.130,结果如下图所示,vsftpd为3.0.3,openssh为7.6p1,nginx为1.14.0。
在这里插入图片描述对操作系统的类型进行探测,使用的参数为-O,命令为nmap -O 192.168.12.130,扫描结果如下图所示,此系统为Linux系统,且内核版本在4.15到5.6之间。
在这里插入图片描述使用-T参数设置时间模板,一共有六个时间模板(0-5),模板名称有paranoid(0)、sneaky(1)、polite(2)、normal(3)、aggressive(4)和insane(5),时间模板数字越大扫描速度越快,各模板介绍如下:

  • paranoid、sneaky模式用于IDS躲避。
  • Polite模式降低了扫描,速度以使用更少的带宽和目标主机资源。
  • Normal为默认模式因此-T3实际上是未做任何优化。
  • Aggressive模式假设用户具有合适及可靠的网络从而加速扫描。
  • nsane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。

首先使用-T2,使用time查看扫描时间,命令为nmap -sS -T2 192.168.12.130,结果如下图所示。
在这里插入图片描述然后使用-T5进行扫描,命令为nmap -sS -T5 192.168.12.130,查看扫描时间。
在这里插入图片描述从两次扫描结果中也可以看出时间模板的数字越大扫描越快。

2.Metasploit

使用Ctrl+Alt+T快捷键打开终端,在终端中输入msfconsole进入控制台。
在这里插入图片描述首先我们要对局域网内的主机进行探测使用metasploit中的modules/auxiliary/scanner/discovery中的arp_sweep,使用ARP请求本地局域网中的所有活跃主机,命令为use modules/auxiliary/scanner/discovery/arp_sweep
在这里插入图片描述使用show options查看需要设置的参数

在这里插入图片描述 使用set rhosts 192.168.12.0/24回车设置目标主机为192.168.12.0/24,使用run来进行局域网扫描,成功发现目标主机192.168.12.130
在这里插入图片描述接下来我们要对192.168.12.130进行端口探测,首先使用auxiliary/scanner/portscan/syn 来进行端口探测,发送TCP SYN标志的方式探测开放的端口,命令为use auxiliary/scanner/portscan/syn.
在这里插入图片描述使用set rhost 192.168.12.130来设置目标主机为192.168.12.130,使用set ports 1-100设置端口扫描范围为1-100,使用set threads 50设置线程数为50,使用run来运行。
在这里插入图片描述使用auxiliary/scanner/portscan/tcp来进行探测,此方法包含完整的tcp握手,命令为use auxiliary/scanner/portscan/tcp
在这里插入图片描述使用set ports 1-100设置扫描端口范围为1-100,使用set rhosts 192.168.12.130来将扫描主机设置为192.168.12.130,使用set threads 50将线程数设置为50,输入run回车来进行扫描,发现开放了21,22,23,80端口。
在这里插入图片描述使用auxiliary/scarner/portscan/xmas 来进行探测,此方式比较隐蔽,通过发送FIN,PSH,URG标志能够躲避一些TCP标记检测器的过滤,使用命令为use auxiliary/scanner/portscan/xmas.
在这里插入图片描述使用set ports 1-100设置扫描端口范围为1-100,使用set rhosts 192.168.12.130来将扫描主机设置为192.168.12.130,使用set threads 50将线程数设置为50,输入run回车来进行扫描。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值