赞
踩
Centos7+系统离线安装nmap命令
链接:https://pan.baidu.com/s/1jqNbRNpctXgUfa4Qfpu4Pg
提取码:0124
rpm -ivh *********.rpm
使用Nmap扫描目标主机,例如扫描本地主机 localhost:
sudo nmap -sS -p- localhost
-sS:使用TCP SYN扫描。
-p-:扫描所有65535个端口(0-65535)。
localhost:要扫描的目标主机。
或者,指定特定范围的端口,例如:
sudo nmap -sS -p 1-65535 localhost
可以直接使用 localhost 你不用更改本地主机名
· 解析扫描结果: Nmap会列出目标主机上开放的端口及其状态(开放、关闭、过滤等)。找出你认为必须放入白名单的端口,这些通常是运行服务或应用程序所需的端口。
[root@bjy-idc-ai-fz15 v-dutianze]# sudo nmap -sS -p 1-65535 localhost
Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-20 11:33 CST
# Nmap 版本信息和扫描开始时间
Nmap scan report for localhost (127.0.0.1)
# 扫描报告,显示扫描的目标是本地主机(127.0.0.1)
Host is up (0.000097s latency).
# 主机存活,延迟为 0.000097 秒
Other addresses for localhost (not scanned): ::1
# 本地主机的其他地址未被扫描,IPv6 地址为 ::1
rDNS record for 127.0.0.1: hisen-template-centos79..
# 127.0.0.1 的反向DNS记录指向 hisen-template-centos79..
# 开始扫描端口并列出服务状态
Not shown: 65498 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
81/tcp open hosts2-ns
主要区别在于扫描目标的不同:
扫描目标为主机名 bjy-idc-ai-fz15(10.16.36.204):
这个扫描是针对网络中的一台具体主机(IP地址为 10.16.36.204)进行的。这台主机可能是一个实际的物理或虚拟服务器,在网络中有一个唯一的 IP 地址和主机名。
扫描目标为 localhost(127.0.0.1):
这个扫描是针对本地计算机的 localhost 地址进行的,即本机回环地址。localhost 是一个特殊的网络地址,指向本机的 IP 地址(通常是 127.0.0.1)。
所以,这次扫描是在本机上执行的,它展示了本机上所有运行的服务和开放的端
nc -zv localhost 80
如果连接成功,说明该端口在运行并接受连接。
编写脚本
vim scan_results.sh
- #!/bin/bash
-
- # ANSI颜色转义码
- GREEN='\033[0;32m' # 绿色
- NC='\033[0m' # 恢复默认颜色
-
- # 执行 nmap 扫描
- sudo nmap -sS -p 1-65535 localhost | grep '^ *[0-9]\+' | awk '{print $1}' | awk -F '/' '{print $1}' > port_mapping.txt
-
- # 输出消息并添加颜色
- echo -e "${GREEN}端口号映射已保存到 port_mapping.txt 文件中。${NC}"
他将会把扫描的所有端口号进行精确过滤到端口号保存到 port_mapping.txt 文件中
编写脚本
vim connect.sh
- #!/bin/bash
-
- # 定义颜色常量
- GREEN='\033[0;32m'
- RED='\033[0;31m'
- NC='\033[0m'
-
- # 读取端口映射文件
- while read port; do
- # 测试端口连接状态
- status=$(nc -zv localhost $port 2>&1)
- if [[ $? -eq 0 ]]; then
-
- echo -e "${GREEN}Port $port is accessible.${NC}"
- else
- echo -e "${RED}Port $port is not accessible. Error: $status${NC}"
- fi
- done < port_mapping.txt
编写脚本
vim test.sh
- #!/bin/bash
-
- # ANSI颜色转义码
- RED='\033[0;31m' # 红色
- GREEN='\033[0;32m' # 绿色
- NC='\033[0m' # 恢复默认颜色
-
- # 白名单端口文件
- whitelist_file="port_mapping.txt"
-
- # 在本地执行nmap扫描
- sudo nmap -sS -p 1-65535 localhost | grep '^ *[0-9]\+' | awk '{print $1}' | awk -F '/' '{print $1}' > scanned_ports.txt
-
- # 比较扫描到的端口与白名单
- compare_ports() {
- scanned_ports_file=$1
- whitelist_file=$2
-
- # 读取白名单中的端口
- whitelist_ports=($(cat "$whitelist_file"))
-
- # 逐行读取扫描到的端口并与白名单比较
- while IFS= read -r port; do
- if ! grep -q "^$port$" "$whitelist_file"; then
- echo -e "${RED}端口 $port 不在白名单中。${NC}"
- # 可选:如果发现非白名单端口,可以在这里执行相应的操作。
- # 例如:发送通知或记录事件。
- else
- echo -e "${GREEN}端口 $port 在白名单中。${NC}"
- fi
- done < "$scanned_ports_file"
-
- # 检查白名单中的端口是否存在于扫描结果中
- for whitelist_port in "${whitelist_ports[@]}"; do
- if ! grep -q "^$whitelist_port$" "$scanned_ports_file"; then
- echo -e "${RED}端口 $whitelist_port 在扫描结果中不存在,检查相应的服务是否正常。${NC}"
- # 可选:如果发现白名单中的端口不存在于扫描结果中,可以在这里执行相应的操作。
- # 例如:发送通知或记录事件。
- fi
- done
- }
-
- # 执行比较
- compare_ports "scanned_ports.txt" "$whitelist_file"
-
- echo -e "${GREEN}端口扫描和比较完成。${NC}"
-
- # 删除临时文件
- rm scanned_ports.txt
-
- echo -e "${GREEN}临时文件已删除。${NC}"
他将检测到现在运行的22端口不在白名单内
他将检测到哪些在白名单的端口消失了
Nmap(Network Mapper)是一个强大的网络扫描和安全审计工具,它支持多种扫描技术和方法。以下是一些常用的Nmap参数及其简要说明:
基本扫描参数:
-sS
:TCP SYN 扫描,也称为半开放扫描。-sT
:TCP 连接扫描,也称为全连接扫描。-sU
:UDP 扫描。-sP
:Ping 扫描,用于探测主机是否在线。-sN
, -sF
, -sX
:TCP Null、FIN、Xmas 标志扫描。操作系统检测:
-O
:尝试识别目标主机的操作系统。服务版本检测:
-sV
:探测目标主机上运行的服务及其版本号。脚本扫描:
-sC
:使用默认的脚本进行扫描(常用于快速审计)。--script=<脚本名称>
:运行特定的Nmap脚本。端口范围:
-p <端口列表>
:指定要扫描的端口或端口范围,例如 -p 1-100
。输出格式:
-oN <文件名>
:以普通文本格式保存扫描结果。-oX <文件名>
:以XML格式保存扫描结果。-oG <文件名>
:以Grepable格式保存扫描结果。扫描速度和优化:
-T<级别>
:指定扫描速度/优化级别(0-5),例如 -T4
。--max-rtt-timeout <时间>
:设置最大RTT超时时间,用于调整超时检测。其他常用参数:
-v
:详细模式,显示更多信息。-A
:集成操作系统检测、版本检测、脚本扫描等。-e <接口>
:指定使用的网络接口。--traceroute
:显示扫描中发现的路由路径。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。