首页 > 其他分享 >离线使用端口扫描工具Nmap和Netcat

离线使用端口扫描工具Nmap和Netcat

时间:2024-06-21 17:00:34浏览次数:30  
标签:扫描 端口扫描 端口 离线 ports Nmap 白名单 port localhost

1.安装nmap命令

Centos7+系统离线安装nmap命令

链接:https://pan.baidu.com/s/1jqNbRNpctXgUfa4Qfpu4Pg

提取码:0124

rpm -ivh   *********.rpm

2.进行端口扫描

使用Nmap扫描目标主机,例如扫描本地主机 localhost:

 sudo nmap -sS -p- localhost

-sS:使用TCP SYN扫描。

-p-:扫描所有65535个端口(0-65535)。

localhost:要扫描的目标主机。

或者,指定特定范围的端口,例如:

sudo nmap -sS -p 1-65535 localhost

可以直接使用  localhost   你不用更改本地主机名

·  解析扫描结果: Nmap会列出目标主机上开放的端口及其状态(开放、关闭、过滤等)。找出你认为必须放入白名单的端口,这些通常是运行服务或应用程序所需的端口。

3.详解

[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   

4.localhost和主机名扫描的区别

主要区别在于扫描目标的不同:

扫描目标为主机名 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)。

所以,这次扫描是在本机上执行的,它展示了本机上所有运行的服务和开放的端

5.使用Netcat进行端口连接测试

nc -zv localhost 80

  • -z:表示使用Zero I/O模式,只进行扫描,不发送任何数据。
  • -v:详细模式,显示更多信息。

如果连接成功,说明该端口在运行并接受连接。

6.列出服务器白名单端口

编写脚本

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 文件中

7.测试端口是否正常

编写脚本

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

8.检查端口是否出现异常端口以白名单为例对比(若新增加服务端口要重新执行3.步骤 添加至白名单)

编写脚本

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}"

9.测试白名单删除22端口

他将检测到现在运行的22端口不在白名单内

10.测试白名单端口在扫描中不存在

他将检测到哪些在白名单的端口消失了

11.Nmap使用参数

Nmap(Network Mapper)是一个强大的网络扫描和安全审计工具,它支持多种扫描技术和方法。以下是一些常用的Nmap参数及其简要说明:

  1. 基本扫描参数

    • -sS:TCP SYN 扫描,也称为半开放扫描。
    • -sT:TCP 连接扫描,也称为全连接扫描。
    • -sU:UDP 扫描。
    • -sP:Ping 扫描,用于探测主机是否在线。
    • -sN, -sF, -sX:TCP Null、FIN、Xmas 标志扫描。
  2. 操作系统检测

    • -O:尝试识别目标主机的操作系统。
  3. 服务版本检测

    • -sV:探测目标主机上运行的服务及其版本号。
  4. 脚本扫描

    • -sC:使用默认的脚本进行扫描(常用于快速审计)。
    • --script=<脚本名称>:运行特定的Nmap脚本。
  5. 端口范围

    • -p <端口列表>:指定要扫描的端口或端口范围,例如 -p 1-100
  6. 输出格式

    • -oN <文件名>:以普通文本格式保存扫描结果。
    • -oX <文件名>:以XML格式保存扫描结果。
    • -oG <文件名>:以Grepable格式保存扫描结果。
  7. 扫描速度和优化

    • -T<级别>:指定扫描速度/优化级别(0-5),例如 -T4
    • --max-rtt-timeout <时间>:设置最大RTT超时时间,用于调整超时检测。
  8. 其他常用参数

    • -v:详细模式,显示更多信息。
    • -A:集成操作系统检测、版本检测、脚本扫描等。
    • -e <接口>:指定使用的网络接口。
    • --traceroute:显示扫描中发现的路由路径。

标签:扫描,端口扫描,端口,离线,ports,Nmap,白名单,port,localhost
From: https://blog.csdn.net/dutianze/article/details/139864943

相关文章

  • windows离线部署VSCode在Centos7上的远程开发环境
    前言公司一直使用的是ssh+vim的远程开发方式,习惯了vim之后已经非常方便了。但是还是想尝试一下VSCode的开发方式。就我而言,原因如下漂亮的语法高亮,并且有补全基于语法解析的引用查找(尽管在我们项目的场景下还是一坨翔)Ctrl+Shift+F的快速搜索可视化调试,可以直接在代码中下......
  • Nmap
    NMap使用技巧总结一、主机发现全面扫描/综合扫描nmap-A192.168.1.103Ping扫描nmap-sP192.168.1.1/24免Ping扫描,穿透防火墙,避免被防火墙发现nmap-P0192.168.1.103TCPSYNPing扫描nmap-PS-v192.168.1.103nmap-PS80,10-100-v192.168.1.103(针对防火墙丢......
  • 从值域分块+莫队到二次离线莫队
    值域分块Q给定一个序列,实现单点修改\(O(1)\),以及区间查询\(O(\sqrtn)\)A考虑设\(block_i\)表示块\(i\)的和,那么修改便是\(O(1)\)全局查询时,整块调用\(block\),散块暴力即可\(O(\sqrtn)\)还有一些常见的例子,比如配合莫队代替主席树(区间mex)莫队二次离线普通莫队......
  • 使用docker离线制作es镜像,方便内网环境部署
    1、自己在本地安装docker以及docker-compose2、拉取elasticsearch镜像dockerpullelasticsearch:7.14.0dockerpullkibana:7.14.03、将拉取到的镜像打包到本地目录dockersaveelasticsearch:7.14.0-o/Users/yanjun.hou/es/elasticsearch-7.14.0.tardockersav......
  • 离线免费最新超长AI视频模型!一句话即可生成120秒视频,免费开源!只需要一张照片和音频,即
    离线免费最新超长AI视频模型!一句话即可生成120秒视频,免费开源!只需要一张照片和音频,即可生成会说话唱歌的AI视频!能自行完成整个软件项目的AI工具,以及Llama3在线体验和本地安装部署。StreamingT2V(StreamingText-to-Video)模型是一种将文本描述转换为视频内容的人工智能技......
  • centos7离线升级gcc , 报错:/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found
     因为需要依赖gcc高版本但是目前服务器版本是4.8.5的然后服务器又是内网所以只能离线升级gcc 分别下载https://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gzhttps://ftp.gnu.org/pub/gnu/gmp/gmp-6.1.0.tar.bz2https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gzhttp:......
  • Fi6S:一款功能强大且高效的IPv6端口扫描工具
    关于Fi6SFi6S是一款功能强大且高效的IPv6端口扫描工具,该工具的运行速度非常快,支持通过异步发送和处理原始数据包来实现其功能。该工具的设计原理和目标与Masscan非常相似,并且目前处于积极开发中,未来版本将新增更多高级功能。工具安装由于该工具基于C语言开发,因此我们首先......
  • 绿色免费离线版JS加密混淆工具 - 支持全景VR加密, 小程序js加密, H5网站加密
    自从我们推出在线版的免费JS加密混淆工具以来,受到了广大用户的热烈欢迎。特别是全景开发人员,他们使用该工具加密VR插件的JS代码,添加域名锁等,都非常有效地保护了插件的代码资源。最近,我们收到了许多用户的反馈,大家希望能够提供一款桌面版的JS加密混淆工具,以便在离线状态下使用。......
  • 电池离线参数辨识
    一、电池模型确定  综合模型精度与工程应用复杂度分析,采用二阶RC电路模型,能在较小的计算量下得到更好的精度。等效电路如图1所示。图1、二阶RC等效电路模型二、HPPC测试  在上一篇已经详细介绍过电池充放电测试的具体流程,通过HPPC实验获得电池的电压工作曲线如图2......
  • TiDB离线升级tiup
    1、制作离线镜像并上传tiupmirrorclonetiup-custom-mirror-v1.13.0--tiupv1.13.0--clusterv1.13.0--oslinux--archamd642、查看当前离线镜像路径tiupmirrorshow3、将不完整的离线镜像合并到已有离线镜像中cp-r${base_mirror}/keys$HOME/.tiup/命令如下:c......