nmap的官网下载安装、简单命令的抓包测试

一 nmap官网下载

1.1 nmap简介。

       Nmap (“Network Mapper”) 是用于网络探索和安全审计的开源工具。它被设计用于快速扫描大型网络,尽管它在单个主机上运行良好。Nmap以新颖的方式使用原始IP数据包来确定网络上可用的主机、这些主机提供的服务(应用程序名称和版本)、它们正在运行的操作系统(和操作系统版本)、使用的数据包过滤器/防火墙类型,以及许多其他特性。虽然Nmap通常用于安全审计,但许多系统和网络管理员发现它对于日常任务很有用,如网络资源清册、管理服务升级计划以及监控主机或服务正常运行时间。(1.2的官网复制的)。
       简单来说,就是扫描的比较仔细,但是扫描速度比较慢,建议使用arp发现工具和ping扫描工具提前对网络进行扫描,提前发现资产,然后再使用nmap对一些“信息泄露”的端口进行详细信息的获取。

1.2 nmap官网下载链接。

https://nmap.org/
https://nmap.org/download#windows

1.3 Windows的nmap下载链接。

Windows 11我建议下如下的稳定版本,现在是2023年初,最新版有openssh的不兼容问题。

https://nmap.org/dist/nmap-7.92-setup.exe

二 使用靶机测试nmap命令

2.1 开启三台VMware虚拟机。一台Win7,一台Win10,一台CentOS7。网卡都是仅主机模式,网络干净,不影响别人

在这里插入图片描述

2.2 查看VMware的仅主机模式的网段。

在这里插入图片描述

2.3 物理机打开wireshark。仅主机模式是VMnet1网卡。网络环境内仅有虚拟机发送的dns等少量数据包。

在这里插入图片描述

2.4 以下测试一下命令。物理机win11为攻击机。

2.4.1 命令:nmap x.x.x.x/mask (靶机的IP/网段)

nmap 10.44.1.0/24

通过抓包发现,发送了两遍的arp请求包。
在这里插入图片描述
一共发送了8000左右的tcp的syn请求包。测试不同的端口,非连续端口,看来是常用的端口。我使用tcp.dstport==445测试了高危端口,全都有。
在这里插入图片描述
期间还有一些ping包,期间还有130这台虚拟机ping了我物理机,但是我物理机开启了防火墙,它ping不通。
在这里插入图片描述
现在看扫描结果。
在这里插入图片描述
129主机是win10虚拟机,开启了Windows的系统防火墙,只能扫到mac地址。
130主机是centos7虚拟机,firewall服务也开着,只能扫到ssh远程端口。
131主机是win7虚拟机,开启了Windows的系统防火墙,扫到mac地址和远程桌面服务的3389端口。

2.4.2 主机发现的命令:nmap -sn

nmap -sn 10.44.1.0/24

通过抓包,看到,该命令仅发送了arp包。因此只返回mac地址信息。
在这里插入图片描述
通过nmp帮助手册,可以看到sn参数的作用是取消端口扫描。

C:\Users\zhang>nmap -h | findstr "sn"
  -sn: Ping Scan - disable port scan
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8

2.4.3 全端口扫描的命令nmap -sS -p1-65535。

nmap -sS -p1-65535 10.44.1.129

等效于

nmap -sS -p- 10.44.1.129

这一次就扫描单台win10虚拟机,全端口扫描发送了13万个SYN包。比较耗时间。值得一提的是,火绒和Windows defense都没有告警。
在这里插入图片描述
全端口扫描,发现了我更改过的远程桌面服务的端口23389。还有一个从优快云的友友的那里查到是微软的补丁更新端口7680。
在这里插入图片描述
端口查询命令(扩展一下)。

C:\Users\zhangcj>netstat -ano | findstr "7680"
  TCP    0.0.0.0:7680           0.0.0.0:0              LISTENING       1048
  TCP    [::]:7680              [::]:0                 LISTENING       1048

C:\Users\zhangcj>tasklist /svc | findstr "1048"
svchost.exe                   1048 DoSvc

以下是nmap的帮助手册。

PORT SPECIFICATION AND SCAN ORDER:端口规格和扫描顺序:
  -p <port ranges>: Only scan specified ports仅扫描指定端口
    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  --exclude-ports <port ranges>: Exclude the specified ports from scanning从扫描中排除指定的端口
  -F: Fast mode - Scan fewer ports than the default scan快速模式-扫描比默认扫描更少的端口
  -r: Scan ports sequentially - don't randomize 按顺序扫描端口-不要随机化
  --top-ports <number>: Scan <number> most common ports扫描<number>最常见的端口
  --port-ratio <ratio>: Scan ports more common than <ratio>扫描端口比<比率>更常见

2.4.4 系统扫描的命令nmap -O。

nmap -O 10.44.1.0/24 

这一次也发送了8k的包,arp和tcp都有。以及一些ping包。此时开着系统防火墙。
在这里插入图片描述通过22和3389的信息泄露,nmap扫描出了一些比较模糊的操作系统的信息。
现在关闭win7虚拟机的系统防火墙,重新通过3389端口扫描系统。
在这里插入图片描述
此次关闭系统防火墙的探测结果为,仅通过传输层的连接探测(TCP、UDP),就大致地猜出了目标靶机的操作系统。
在这里插入图片描述
由此可见,关闭系统防火墙,服务器的信息泄露是很明显的。(按我的理解,现有的安全措施很难防御住这种系统扫描。)
查看nmap -h

OS DETECTION:
  -O: Enable OS detection 开启系统探测
  --osscan-limit: Limit OS detection to promising targets将OS检测限制在有希望的目标上
  --osscan-guess: Guess OS more aggressively猜测操作系统更激进

2.4.5 版本扫描命令nmap -sV 。

nmap -sV 10.44.1.130

这一次探测CentOS虚拟机仅发送2k数据包,扫描端口1千。
这次终于发现了除了ARP、TCP包的其他包,SSH包。追踪TCP流,发现是做了一次完整的TCP握手(三次握手和四次分手),数据流的内容仅有SSH的版本信息。
在这里插入图片描述

在这里插入图片描述
与CentOS虚拟机内部查看命令对应的上。
在这里插入图片描述
查看nmap -h

SERVICE/VERSION DETECTION:服务/版本检测
  -sV: Probe open ports to determine service/version info探测打开的端口以确定服务/版本信息
  --version-intensity <level>: Set from 0 (light轻度) to 9 (try all probes尝试所有探测)版本强度探测
  --version-light: Limit to most likely probes (intensity 2)限制为最可能的探测(强度2)
  --version-all: Try every single probe (intensity 9)所有测试,强度9
  --version-trace: Show detailed version scan activity (for debugging)显示详细的版本扫描活动(用于调试)

这次到此为止,后续会有更多命令测试。

在银河麒麟系统中,如果缺少 `tcpdump` 工具,仍可以通过其他方式实现网络数据包的捕获和分析。以下是几种可行的替代方案: ### 使用 `tcpdump` 以外的命令行工具 #### `tcpflow` `tcpflow` 是一个用于捕获和重组 TCP 流量的工具,能够将网络流量按会话拆分并保存为文件,便于后续分析。安装和使用方式如下: ```bash sudo apt install tcpflow tcpflow -i ens33 port 80 ``` 该命令会捕获通过 `ens33` 接口的 HTTP 流量,并将每个 TCP 会话保存为独立文件。 #### `tshark` `tshark` 是 Wireshark 的命令行版本,功能与图形界面版本一致,但更适合在无图形界面的服务器环境中使用。安装和使用方式如下: ```bash sudo apt install tshark tshark -i ens33 -f "tcp port 22" -w ssh_capture.pcap ``` 该命令会捕获 `ens33` 接口上与 SSH(端口 22)相关的流量,并将结果保存为 `ssh_capture.pcap` 文件,可使用 Wireshark 打开进行分析。 ### 使用内核模块和系统工具 #### `pktgen` 模块 `pktgen` 是 Linux 内核提供的一个网络数据包生成工具,虽然主要用于测试网络性能,但也可以用于捕获和分析特定流量。通过 `/proc` 文件系统进行配置,例如: ```bash echo "add_device eth0" > /proc/net/pktgen/kpktgend_0 echo "count 10000" > /proc/net/pktgen/eth0 echo "src_min 192.168.1.1" > /proc/net/pktgen/eth0 echo "dst_min 192.168.1.2" > /proc/net/pktgen/eth0 ``` 上述命令配置了 `eth0` 接口发送 10000 个数据包,源地址为 `192.168.1.1`,目标地址为 `192.168.1.2`。虽然主要用于生成流量,但结合 `tcpdump` 或 `tshark` 可以实现流量捕获和分析。 #### `nmap` 工具 `nmap` 是一款网络扫描和探测工具,虽然不直接用于抓包,但可以与 `tcpdump` 或 `tshark` 配合使用,进行特定目标的流量捕获。例如: ```bash nmap -sS -p 22 192.168.1.1 ``` 该命令会向 `192.168.1.1` 的 SSH 端口发送 TCP SYN 请求,结合 `tcpdump` 可以捕获到响应流量。 ### 使用图形化工具 #### Wireshark 如果银河麒麟系统支持图形界面,可以直接使用 Wireshark 进行抓包。启动 Wireshark 后选择需要监听的网络接口,点击“开始”即可进行抓包。Wireshark 提供了强大的过滤和分析功能,适合需要详细分析流量的场景。 #### `tcpdump` 替代方案 如果无法直接安装 `tcpdump`,但系统支持 Python,可以使用 `scapy` 库进行数据包捕获和分析。安装和使用方式如下: ```bash pip install scapy ``` ```python from scapy.all import sniff # 捕获前 10 个数据包 packets = sniff(count=10, iface="ens33") packets.summary() ``` 该脚本会捕获 `ens33` 接口上的前 10 个数据包,并输出简要信息。 ### 总结 在银河麒麟系统中,即使没有 `tcpdump` 命令,仍可通过 `tshark`、`tcpflow`、`scapy` 等工具实现数据包的捕获和分析。这些工具在功能上各有侧重,适用于不同的使用场景和需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zlzgzlz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值