当前位置: 首页 > news >正文

linux之NAMP

linux之NAMP

Nmap(Network Mapper)是一个开源的网络扫描和安全审计工具。它被设计用来快速地扫描大型网络,尽管它也可以对单个主机进行有效的扫描。Nmap利用原始IP数据包以多种方式探测目标网络上的主机、服务(应用程序名称和版本)、操作系统版本、使用的过滤器/防火墙类型、以及许多其他属性。

主要特性

  • 主机发现:确定网络上哪些主机是活动的。
  • 端口扫描:确定目标主机上哪些端口是开放的。
  • 服务和版本检测:尝试确定连接到开放端口的应用程序和服务的名称及版本。
  • 操作系统检测:通过分析响应数据包来推断目标主机运行的操作系统类型。
  • 脚本扫描:使用Nmap Scripting Engine(NSE)执行对目标的进一步探测。NSE允许用户编写(或下载)脚本来执行更广泛的检查,这些检查可能涉及到漏洞探测、网络发现等。
  • 网络发现和拓扑图:生成网络的图形表示,显示网络中的设备如何相互连接。

namp安装

在Linux上安装Nmap

大多数Linux发行版都通过其包管理系统提供Nmap。

Debian/Ubuntu:

sudo apt-get update
sudo apt-get install nmap

CentOS/RHEL:

#CentOS/RHEL 7及以下版本:
sudo yum install nmap
#CentOS/RHEL 8及以上版本:
sudo dnf install nmap

Fedora:

sudo dnf install nmap

Arch 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 zenmap

Fedora:

sudo dnf install nmap-frontend

请注意,随着时间的推移,一些Linux发行版可能会从其仓库中移除Zenmap,或者需要添加额外的仓库来安装Zenmap。

在MacOS上安装Zenmap
在MacOS上,通过下载Nmap官方提供的.pkg安装文件来安装Zenmap。

  • 访问Nmap官方下载页面。
  • 下载适用于MacOS的.pkg文件。
  • 双击.pkg文件并遵循安装向导的指示完成安装。

Zenmap的基本用法

  • 打开Zenmap:安装完成后,启动Zenmap。
  • 选择目标:在“目标”框中输入扫描的IP地址、主机名或网络段。
  • 选择扫描类型:从“配置文件”下拉菜单中选择预设的扫描类型,如“快速扫描”、“全面扫描”等,或者自定义扫描命令。
  • 启动扫描:点击“扫描”按钮开始扫描过程。
  • 查看结果:扫描完成后,结果将显示在主界面。您可以查看开放的端口、运行的服务及其版本、操作系统猜测等信息。
  • 保存和比较结果:保存扫描结果以供将来参考,并且可以使用Zenmap比较不同时间点的扫描结果,以便发现网络变化。

NAMP奇淫巧技

利用NSE(Nmap 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 <目标IP>

UDP扫描(发现开放的UDP端口):

nmap -sU <目标IP>

NSE脚本

基本示例

--[[假设我们要编写一个脚本,用于检查目标服务器是否运行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

相关文章:

linux之NAMP

linux之NAMP Nmap&#xff08;Network Mapper&#xff09;是一个开源的网络扫描和安全审计工具。它被设计用来快速地扫描大型网络&#xff0c;尽管它也可以对单个主机进行有效的扫描。Nmap利用原始IP数据包以多种方式探测目标网络上的主机、服务&#xff08;应用程序名称和版本…...

uniapp 禁止截屏(应用内,保护隐私)插件 Ba-ScreenShot

禁止截屏&#xff08;应用内&#xff0c;保护隐私&#xff09; Ba-ScreenShot 简介&#xff08;下载地址&#xff09; Ba-ScreenShot 是一款uniapp禁止应用内截屏的插件&#xff0c;保护隐私&#xff0c;支持禁止截屏、放开截屏 截图展示 也可关注博客&#xff0c;实时更新最…...

数字电路-5路呼叫显示电路和8路抢答器电路

本内容涉及两个电路&#xff0c;分别为5路呼叫显示电路和8路抢答器电路&#xff0c;包含Multisim仿真原文件&#xff0c;为掌握FPGA做个铺垫。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01; 目录&#xff1a; 一、5路呼叫显…...

C++中的函数签名

前言&#xff1a; 很多C初学者会发现函数签名这一概念在C的学习过程中经常出现&#xff0c;然而很多人往往不太了解函数签名包括些什么&#xff0c;本文章将从一个初学者的角度出发&#xff0c;详细解释函数签名这一概念。 在C中&#xff0c;函数签名用于唯一地识别函数重载。…...

Mac brew安装Redis之后更新配置文件的方法

安装命令 brew install redis 查看安装位置命令 brew list redis #查看redis安装的位置 % brew list redis /usr/local/Cellar/redis/6.2.5/.bottle/etc/ (2 files) /usr/local/Cellar/redis/6.2.5/bin/redis-benchmark /usr/local/Cellar/redis/6.2.5/bin/redis-check-ao…...

安卓应用开发(一):工具与环境

开发工具 Android Studio&#xff0c;用于开发 Android 应用的官方集成开发环境 (IDE)。包括以下功能&#xff1a; 基于Gradle的构建系统 gradle是一个项目构建工具&#xff0c;将源工程打包构建为apk 安卓模拟器统一环境代码编辑模拟器实时更新Github集成Lint功能&#xff0…...

基于springboot+vue+Mysql的在线动漫信息平台

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

C++设计模式-结构型设计模式

写少量的代码来应对未来需求的变化。 单例模式 定义 保证一个类仅有一个实例&#xff0c;并提供一个该实例的全局访问点。——《设计模式》GoF 解决问题 稳定点&#xff1a; 类只有一个实例&#xff0c;提供全局的访问点&#xff08;抽象&#xff09; 变化点&#xff1a…...

open-webui+ollama本地部署Llama3

前言 Meta Llama 3 是由 Meta 公司发布的下一代大型语言模型&#xff0c;拥有 80 亿和 700 亿参数两种版本&#xff0c;号称是最强大的开源语言模型。它在多个基准测试中超越了谷歌的 Gemma 7B 和 Mistral 7B Instruct 模型。 安装 1.gpt4all https://github.com/nomic-ai/…...

个人对行为型设计模式的理解 @by_TWJ

目录 1. 访问者模式2. 迭代器模式3. 观察者模式4. 模板模式5. 状态模式6. 备忘录模式7. 策略模式8. 解释器模式9. 责任链模式10. 命令模式11. 中介者模式 研究了一下&#xff0c;我为了方便理解&#xff0c;对它们进行了分类&#xff1a; 针对请求者与执行者关系方面 1对多 - 责…...

苹果挖走大量谷歌人才,建立神秘人工智能实验室;李飞飞创业成立「空间智能」公司丨 RTE 开发者日报 Vol.197

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…...

行业唯一!易保全牵头编制的《区块链数据访问安全技术通则》发布

近日&#xff0c;易保全牵头参与编制的《区块链数据访问安全技术通则》经中国国际经济技术合作促进会正式发布&#xff0c;为中国区块链数据安全技术提供了标准参考。 易保全作为牵头起草单位、易保全CEO兼董事长刘刚担任主要起草人参与其中&#xff0c;在区块链技术安全风险…...

Rust Rocket创建第一个hello world的Web程序 Rust Rocket开发常用网址和Rust常用命令

一、Rust Rocket简介 Rust Rocket 是一个用 Rust 语言编写的 Web 应用框架&#xff0c;它结合了 Rust 的安全性和性能优势&#xff0c;以及 Web 开发的便利性。以下是 Rust Rocket 框架的一些优点&#xff1a; 安全性&#xff1a;Rust 是一种注重安全性的编程语言&#xff0c;…...

第G9周:ACGAN理论与实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子 上一周已经给出代码&#xff0c;需要可以跳转上一周的任务 第G8周&#xff1a;ACGAN任…...

Linux网络部分——DNS域名解析服务

目录 1. 域名结构 2. 系统根据域名查找IP地址的过程 3.DNS域名解析方式 4.DNS域名解析的工作原理【☆】 5.域名解析查询方式 6.搭建主从DNS域名服务器 ①初始化操作主服务器和从服务器&#xff0c;安装BIND软件 ②修改主服务器的主配置文件、区域配置文件、区域数…...

预处理详解

乐观学习&#xff0c;乐观生活&#xff0c;才能不断前进啊&#xff01;&#xff01;&#xff01; 我的主页&#xff1a;optimistic_chen 我的专栏&#xff1a;c语言 点击主页&#xff1a;optimistic_chen和专栏&#xff1a;c语言&#xff0c; 创作不易&#xff0c;大佬们点赞鼓…...

Python的创建和使用自定义模块

Python 的模块是组织代码的基本单元&#xff0c;它可以包含变量、函数、类等&#xff0c;并且可以被其他 Python 程序引用和重用。除了使用 Python 提供的标准库和第三方库外&#xff0c;开发者还可以创建自定义模块&#xff0c;用于组织和管理自己的代码。本文将详细介绍如何创…...

Python根据预设txt生成“你画我猜”题目PPT(素拓活动小工具)

Python根据预设txt生成“你画我猜”题目PPT&#xff08;素拓活动小工具&#xff09; 场景来源 去年单位内部的一次素拓活动&#xff0c;分工负责策划设置其中的“你画我猜”环节&#xff0c;网络上搜集到题目文字后&#xff0c;想着如何快速做成对应一页一页的PPT。第一时间想…...

小程序地理位置接口权限直接抄作业

小程序地理位置接口有什么功能&#xff1f; 随着小程序生态的发展&#xff0c;越来越多的小程序开发者会通过官方提供的自带接口来给用户提供便捷的服务。但是当涉及到地理位置接口时&#xff0c;却经常遇到申请驳回的问题&#xff0c;反复修改也无法通过&#xff0c;给的理由也…...

【Osek网络管理测试】[TG3_TC6]等待总线睡眠状态_2

&#x1f64b;‍♂️ 【Osek网络管理测试】系列&#x1f481;‍♂️点击跳转 文章目录 1.环境搭建2.测试目的3.测试步骤4.预期结果5.测试结果 1.环境搭建 硬件&#xff1a;VN1630 软件&#xff1a;CANoe 2.测试目的 验证DUT在满足进入等待睡眠状态的条件时是否进入该状态 …...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...