公司网站开发策略和基本步骤,马云有没有学过做网站,给别人开发一个网站多少钱,专业seo服务商linux之NAMP Nmap#xff08;Network Mapper#xff09;是一个开源的网络扫描和安全审计工具。它被设计用来快速地扫描大型网络#xff0c;尽管它也可以对单个主机进行有效的扫描。Nmap利用原始IP数据包以多种方式探测目标网络上的主机、服务#xff08;应用程序名称和版本…linux之NAMP NmapNetwork Mapper是一个开源的网络扫描和安全审计工具。它被设计用来快速地扫描大型网络尽管它也可以对单个主机进行有效的扫描。Nmap利用原始IP数据包以多种方式探测目标网络上的主机、服务应用程序名称和版本、操作系统版本、使用的过滤器/防火墙类型、以及许多其他属性。 主要特性
主机发现确定网络上哪些主机是活动的。端口扫描确定目标主机上哪些端口是开放的。服务和版本检测尝试确定连接到开放端口的应用程序和服务的名称及版本。操作系统检测通过分析响应数据包来推断目标主机运行的操作系统类型。脚本扫描使用Nmap Scripting EngineNSE执行对目标的进一步探测。NSE允许用户编写或下载脚本来执行更广泛的检查这些检查可能涉及到漏洞探测、网络发现等。网络发现和拓扑图生成网络的图形表示显示网络中的设备如何相互连接。
namp安装
在Linux上安装Nmap
大多数Linux发行版都通过其包管理系统提供Nmap。
Debian/Ubuntu:
sudo apt-get update
sudo apt-get install nmapCentOS/RHEL:
#CentOS/RHEL 7及以下版本:
sudo yum install nmap
#CentOS/RHEL 8及以上版本:
sudo dnf install nmapFedora:
sudo dnf install nmapArch Linux:
sudo pacman -S nmap在Windows上安装Nmap
在Windows上Nmap提供了一个图形用户界面版本称为Zenmap。可以从Nmap官方网站下载安装程序 访问Nmap官方下载页面。 下载适用于Windows的Nmap安装程序.exe文件。 双击下载的文件并遵循安装向导的指示完成安装。
在MacOS上安装Nmap 在MacOS上使用Homebrew来安装Nmap 首先打开终端。 如果没有安装Homebrew可以通过以下命令安装 /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)使用Homebrew安装Nmap brew install nmap使用源代码安装
如果操作系统没有预打包的Nmap或者想要最新版本的Nmap可以从源代码编译安装。这通常涉及到下载最新的源代码压缩包解压缩编译然后安装
wget https://nmap.org/dist/nmap-version.tar.bz2
tar jxvf nmap-version.tar.bz2
cd nmap-version
./configure
make
sudo make install请将替换为希望下载的Nmap版本号。 以上是Nmap的基本安装方法。 在大多数情况下使用包管理器或官方提供的安装程序是最简单、最快捷的安装方式。 基本使用示例
基本扫描扫描目标主机例如192.168.1.1的1000个最常用端口。
nmap 192.168.1.1
#Ping扫描不扫描端口),确定活动主机
nmap -sn 192.168.1.0/24特定端口扫描扫描目标主机的特定端口例如22,80,443。
nmap -p 22,80,443 192.168.1.1操作系统检测
nmap -O 192.168.1.1服务版本检测
nmap -sV 192.168.1.1使用NSE脚本
nmap --script脚本名 192.168.1.1网络发现和拓扑图
#生成网络拓扑图需要Nmap的图形用户界面Zenmap
zenmap[!TIP] Zenamp Zenmap是Nmap的官方图形用户界面GUI它使得Nmap的使用变得更加直观和用户友好。Zenmap不仅提供了一个易于使用的图形界面来执行Nmap扫描还包括了高级功能如保存扫描结果的能力、比较扫描结果、和自动化复杂的扫描任务。 Zenmap的安装 在Windows上安装Zenmap访问Nmap官方下载页面。下载适用于Windows的Nmap安装程序包括Zenmap。双击下载的安装程序文件并遵循安装向导的指示完成安装。 在Linux上安装Zenmap 在一些Linux发行版中Zenmap可能不包括在默认的仓库中。对于那些包含Zenmap的发行版使用包管理器进行安装。 Debian/Ubuntu: sudo apt-get update
sudo apt-get install zenmapFedora: sudo dnf install nmap-frontend请注意随着时间的推移一些Linux发行版可能会从其仓库中移除Zenmap或者需要添加额外的仓库来安装Zenmap。 在MacOS上安装Zenmap 在MacOS上通过下载Nmap官方提供的.pkg安装文件来安装Zenmap。 访问Nmap官方下载页面。下载适用于MacOS的.pkg文件。双击.pkg文件并遵循安装向导的指示完成安装。 Zenmap的基本用法 打开Zenmap安装完成后启动Zenmap。选择目标在“目标”框中输入扫描的IP地址、主机名或网络段。选择扫描类型从“配置文件”下拉菜单中选择预设的扫描类型如“快速扫描”、“全面扫描”等或者自定义扫描命令。启动扫描点击“扫描”按钮开始扫描过程。查看结果扫描完成后结果将显示在主界面。您可以查看开放的端口、运行的服务及其版本、操作系统猜测等信息。保存和比较结果保存扫描结果以供将来参考并且可以使用Zenmap比较不同时间点的扫描结果以便发现网络变化。 NAMP奇淫巧技
利用NSENmap Scripting Engine进行扩展扫描 Nmap的脚本引擎NSE是其最强大的特性之一能够执行各种网络安全任务如漏洞检测、后门检测、和网络发现等。 #示例使用NSE脚本扫描SMB漏洞
nmap --script smb-vuln* -p 445 目标IP绕过防火墙和IDS/IPS Nmap提供了多种技术来绕过网络中的防火墙和入侵检测系统。 #片段化扫描通过将扫描包分成小片段使得某些防火墙和IDS难以检测到扫描活动。
nmap -f 目标IP
#使用Decoy伪装扫描同时指定多个“诱饵”IP使得防御者难以确定真正的扫描来源。
nmap -D RND:10 目标IP操作系统和服务版本探测的高级用法 通过发送特定的TCP和UDP包到目标机器并分析响应Nmap可以推断操作系统版本和运行的服务。 #操作系统探测
nmap -O --osscan-guess 目标IP
#服务版本探测
nmap -sV --version-intensity 9 目标IP输出格式化 Nmap允许以多种格式输出扫描结果便于报告或进一步分析。 #输出为XML格式
nmap -oX output.xml 目标IP
#输出所有扫描结果到一个文件包括正常、XML、Grepable格式
nmap -oA output 目标IP使用自定义扫描方式 Nmap提供了灵活的扫描选项允许用户根据需要自定义扫描类型。 ACK扫描用于映射防火墙规则
nmap -sA 目标IPUDP扫描发现开放的UDP端口
nmap -sU 目标IPNSE脚本
基本示例
--[[假设我们要编写一个脚本用于检查目标服务器是否运行HTTP服务并获取其标题title。
--[[
NSE脚本通常包含以下几个部分
描述description脚本的简短描述。
作者author脚本作者的名字。
许可证license脚本的许可证类型。
类别categories脚本所属的类别如safe, intrusive, discovery, vuln等。
依赖dependencies脚本运行所依赖的其他NSE脚本。
入口点entry point脚本的主要逻辑部分通常是action函数。
--]]description catch http services
author 秋月霜风
license MIT1.0
categories {discovery, safe}-- param host 目标主机
-- param port 目标端口
function action(host, port)-- 使用Nmap的http库发起请求local http require(http)local response http.get(host, port)if response.status then-- 从响应中提取标题local title response.body:match(title(.-)/title)if title thenreturn (发现标题: %s):format(title)elsereturn (未发现标题)endelsereturn (无法连接到HTTP服务)end
end
DIY FUNNY NSE
description [[
检测目标网站使用的Web框架。
识别一些流行的Web框架。
]]author 秋月霜风
license MIT1.0
categories {discovery, safe}local http require http
local stdnse require stdnse
local string require string-- Web框架指纹库
local frameworks {{name Django, pattern csrftoken, path /},{name Ruby on Rails, pattern csrf-token, path /},{name Express, pattern X-Powered-By: Express, path /},{name Flask, pattern flask-session, path /}
}-- 主函数
function action(host, port)local detected_frameworks {}for _, framework in ipairs(frameworks) dolocal response http.get(host, port, framework.path)if response.status and response.body and string.find(response.body, framework.pattern) thentable.insert(detected_frameworks, framework.name)elseif response.header and response.header[X-Powered-By] and string.find(response.header[X-Powered-By], framework.pattern) thentable.insert(detected_frameworks, framework.name)endendif #detected_frameworks 0 thenreturn true, stdnse.format_output(true, detected_frameworks)elsereturn false, 未能识别Web框架。end
end