Linux服务器端口扫描实验,网络安全:服务器端口扫描实验

网络安全:服务器端口扫描实验 端口扫描 端口扫描工具(Port Scanner)指用于探测服务器或主机开放端口情况的工具。常被计算机管理员用于确认安全策略,同时被攻击者用于识别目标主机上的可运作的网络服务。

端口扫描定义是客户端向一定范围的服务器端口发送对应请求,以此确认可使用的端口。虽然其本身并不是恶意的网络活动,但也是网络攻击者探测目标主机服务,以利用该服务的已知漏洞的重要手段。端口扫描的主要用途仍然只是确认远程机器某个服务的可用性。

扫描多个主机以获取特定的某个端口被称为端口清扫(Portsweep),以此获取特定的服务。例如,基于 SQL 服务的计算机蠕虫就会清扫大量主机的同一端口以在 1433 端口上建立 TCP 连接。

实现原理

• TCP 连接扫描

最简单的端口扫描工具使用 TCP 连接扫描的方式,即利用操作系统原生的网络功能,且通常作为 SYN 扫描的替代选项。Nmap 将这种模式称为连接扫描,因为使用了类似 Unix 系统的 connect() 命令。如果该端口是开放的,操作系统就能完成 TCP 三次握手,然后端口扫描工具会立即关闭刚建立的该连接,防止拒绝服务攻击。这种扫描模式的优势是用户无需特殊权限。但使用操作系统原生网络功能不能实现底层控制,因此这种扫描方式并不流行。并且 TCP 扫描很容易被发现,尤其作为端口清扫的手段:这些服务会记录发送者的 IP 地址,入侵检测系统可能触发警报。

• SYN 扫描

还有另外一种扫描方式是 SYN 扫描,端口扫描工具不使用操作系统原生网络功能,而是自行生成、发送 IP 数据包,并监控其回应。这种扫描模式被称为“半开放扫描”,因为它从不建立完整的 TCP 连接。端口扫描工具生成一个 SYN 包,如果目标端口开放,则会返回 SYN-ACK 包。扫描端回应一个 RST 包,然后在握手完成前关闭连接。如果端口关闭了但未使用过滤,目标端口应该会持续返回 RST 包。这种粗略的网络利用方式有几个优点:给扫描工具全权控制数据包发送和等待回应时长的权力,允许更详细的回应分析。关于哪一种对目标主机的扫描方式具不具备入侵性存在一些争议,但 SYN 扫描的优势是从不会建立完整的连接。然而,RST 包可能导致网络堵塞,尤其是一些简单如打印机之类的网络设备。

扫描多个主机以获取特定的某个端口被称为端口清扫(Portsweep),以此获取特定的服务。例如,基于 SQL 服务的计算机蠕虫就会清扫大量主机的同一端口以在 1433 端口上建立 TCP 连接。 ·TCP连接扫描 最简单的端口扫描工具使用 TCP 连接扫描的方式,即利用操作系统原生的网络功能,且通常作为 SYN 扫描的替代选项。Nmap 将这种模式称为连接扫描,因为使用了类似 Unix 系统的 connect() 命令。如果该端口是开放的,操作系统就能完成 TCP 三次握手,然后端口扫描工具会立即关闭刚建立的该连接,防止拒绝服务攻击。这种扫描模式的优势是用户无需特殊权限。但使用操作系统原生网络功能不能实现底层控制,因此这种扫描方式并不流行。并且 TCP 扫描很容易被发现,尤其作为端口清扫的手段:这些服务会记录发送者的 IP 地址,入侵检测系统可能触发警报。 ·SYN扫描 还有另外一种扫描方式是 SYN 扫描,端口扫描工具不使用操作系统原生网络功能,而是自行生成、发送 IP 数据包,并监控其回应。这种扫描模式被称为“半开放扫描”,因为它从不建立完整的 TCP 连接。端口扫描工具生成一个 SYN 包,如果目标端口开放,则会返回 SYN-ACK 包。扫描端回应一个 RST 包,然后在握手完成前关闭连接。如果端口关闭了但未使用过滤,目标端口应该会持续返回 RST 包。这种粗略的网络利用方式有几个优点:给扫描工具全权控制数据包发送和等待回应时长的权力,允许更详细的回应分析。关于哪一种对目标主机的扫描方式具不具备入侵性存在一些争议,但 SYN 扫描的优势是从不会建立完整的连接。然而,RST 包可能导致网络堵塞,尤其是一些简单如打印机之类的网络设备。

获取目标 IP 地址:

target_ip = gethostbyname(host)

进入循环开始连接:

opened_ports = []

for port in range(start_port, end_port + 1):

sock = socket(AF_INET, SOCK_STREAM)

sock.settimeout(10)

result = sock.connect_ex((target_ip, port))

if result == 0:

opened_ports.append(port)

编写完成后,按 esc 键,然后按 Shift + ; 进入末行模式,输入 wq 可保存退出。

Nmap 是一款用于网络发现(Network Discovery)和安全审计(Security Auditing)的网络安全工具,它是自由软件。软件名字 Nmap 是 Network Mapper 的简称。

• nmap 参考手册

python-nmap 顾名思义,就是一个可以在 Python 程序中使用 nmap 端口扫描器的 Python 包。允许开发者对 nmap 扫描结果进行解析并能够帮助管理员自动化扫描任务和报告输出。并且这个包可以支持异步输出,当扫描结果完成时调用用户定义的回调函数。

打开桌面的 Xfce 终端,先输入一下命令更新软件包列表:

sudo apt-get update

再输入下面命令进行安装:

sudo apt-get install nmap python-nmap

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值