首页 > 其他分享 >nmap的简单使用

nmap的简单使用

时间:2024-04-18 11:14:19浏览次数:30  
标签:扫描 UDP nmap 主机 简单 端口 TCP Nmap 使用

Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing) 工具。软件名字Nmap是Network Mapper的简称

Nmap下载地址:http://nmap.org/download.html

 nmap包含四项基本功能:

1.主机发现(host Discovery)

2.端口扫描(Port Scanning)

3.版本侦测(Version Detection)

4.操作系统侦测(Operating Sytem Detection)

首先需要进行主机发现,随后确定端口状况,然后确定端口上运行具体应用程序与 版本信息,然后可以进行操作系统的侦测。而在四项基本功能的基础上,Nmap提供防火 墙与IDS(IntrusionDetection System,入侵检测系统)的规避技巧,可以综合应用到四个基 本功能的各个阶段;另外Nmap提供强大的NSE(Nmap Scripting Language)脚本引擎功 能,脚本可以对基本功能进行补充和扩展.

主机发现(Host Discovery),即用于发现目标主机是否在线(Alive,处于开启状态)。 主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,那么说明 目标主机是开启的。Nmap支持十多种不同的主机探测方式,比如发送ICMP

ECHO/TIMESTAMP/NETMASK报文、发送TCPSYN/ACK包、发送SCTP INIT/COOKIE-ECHO 包,用户可以在不同的条件下灵活选用不同的方式来探测目标机。 默认情况下,Nmap会发送四种不同类型的数据包来探测目标主机是否在线。 • ICMP echo request • a TCP SYN packet to port 443 • a TCP ACK packet to port 80 • an ICMP timestamp request

主机并不会单独使用,只是作为端口扫描、版本侦测、OS侦测先行步骤.

它有一下的命令参数:

• -sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。 • -sn: Ping Scan 只进行主机发现,不进行端口扫描。 • -Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。 • -PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。 • -PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。 • -PO[protocollist]: 使用IP协议包探测对方主机是否开启

示例:nmap -sn -PE  -PS22,23,80,135 -PU53 192.168.1.1/24

 端口扫描

端口扫描是Nmap最基本最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况。 默认情况下,Nmap会扫描1000个最有可能开放的TCP端口。 Nmap通过探测将端口划分为6个状态: open:端口是开放的。 closed:端口是关闭的。 filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。 unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。 open|filtered:端口是开放的或被屏蔽。 closed|filtered :端口是关闭的或被屏蔽

 

Nmap在端口扫描方面非常强大,提供了十多种探测方式。 u TCP SYN scanning 这是Nmap默认的扫描方式,通常被称作半开放扫描(Half-open scanning)。该方式发送SYN 到目标端口,如果收到SYN/ACK回复,那么判断端口是开放的;如果收到RST包,说明该端口是 关闭的。如果没有收到回复,那么判断该端口被屏蔽(Filtered)。因为该方式仅发送SYN包对 目标主机的特定端口,但不建立的完整的TCP连接,所以相对比较隐蔽,而且效率比较高,适用 范围广。 u TCP connect scanning TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该 端口关闭。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息, 不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑选择的方式。 u TCP ACK scanning 向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST 包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来 判断目标主机防火墙的状况。 5 www.listentide.com 听潮盛世(北京)科技有限公司 www.secdic.com 端口扫描 u TCP FIN/Xmas/NULL scanning 这三种扫描方式被称为秘密扫描(Stealthy Scan),因为相对比较隐蔽。FIN扫描向目标主机的 端口发送的TCP FIN包或Xmas tree包/Null包,如果收到对方RST回复包,那么说明该端口是关闭 的;没有收到RST包说明端口可能是开放的或被屏蔽的(open|filtered)。 其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP 包。 u UDP scanning UDP扫描方式用于判断UDP端口的情况。向目标主机的UDP端口发送探测包,如果收到回复 “ICMP port unreachable”就说明该端口是关闭的;如果没有收到回复,那说明UDP端口可能是开 放的或屏蔽的。因此,通过反向排除法的方式来断定哪些UDP端口是可能出于开放状态。 u 其他方式 除上述几种常用的方式之外,Nmap还支持多种其他探测方式。例如使用SCTP INIT/COOKIE- ECHO方式来探测SCTP的端口开放情况;使用IP protocol方式来探测目标主机支持的协议类型 (TCP/UDP/ICMP/SCTP等等);使用idle scan方式借助僵尸主机来扫描目标在主机,达到隐蔽 自己的目的;或者使用FTP bounce scan,借助FTP允许的代理服务扫描其他的主机,同样达到隐藏自己的身份的目的

端口扫描用法比较简单,Nmap提供丰富的命令行参数来指定扫描方式和扫描端口。

-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目 标主机进行扫描。

-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。

-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口 状态。

-p : 扫描指定的端口 实例:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9

(其中T代表TCP协议、U 代表UDP协议、S代表SCTP协议)

端口扫描 命令示例:nmap –sS –sU –T4 –p1-1000 192.168.1.1 参数-sS表示使用TCP SYN方式扫描TCP端口;-sU表示扫描UDP端口;-T4表示时间级别配 置4级;--1-1000表示扫描从1-1000的端口

 

标签:扫描,UDP,nmap,主机,简单,端口,TCP,Nmap,使用
From: https://www.cnblogs.com/llw131421/p/18143074

相关文章

  • 使用squid代理上网
    背景有个客户在云上买了若干云服务器,和1个公网ip,但是他希望所有服务器都能访问外网。可是并没有采购NAT网关,所有退而求其次,使用squid代理的方式实现所有无公网ip的云服务器代理上网。规划 具体步骤1、选其中一台主机绑定公网ip,使其具备访问公网的能力,我们选择192.168.1.5这......
  • react 使用effect 的报错
    1、像这种,根据someId值的改变,每次调用一次useEffect的。如果在useEffect加上async则会出现报错 正确的做法,则是去掉useEffect上的async useEffect(()=>{asyncfunctionfetchData(){try{//在这里进行异步操作constresponse=awaitMyAPI.g......
  • Vue3 使用setup语法糖时, 组件name命名
    1.多使用一个<script>标签命名<script>exportdefault{name:'Person'}</script><scriptsetup>...</script>2.使用插件安装插件vite-plugin-vue-setup-extendpnpminstallvite-plugin-vue-setup-extend-D在vite.con......
  • Camstar Protal Studio 使用参数查数据
    进去之后找到一直OK再去配置Grid控件里的SetData属性获取文本框的参数把文本框的NAME名和你sql里的参数名改一致就可以了......
  • httprunner 4.x学习 - 08base_url使用
    前言base_url是把所有接口的公共url提取出来,如我两个接口地址如下:imos登录接口:http://120.25.121.168:19001/api/login任务列表接口:http://120.25.121.168:19001/api/task这时,base_url:http://120.25.121.168:19001/api案例在.evn中设置环境变量base_url#.envbase_url=ht......
  • .NET开源强大、易于使用的缓存框架 - FusionCache
    思维导航前言框架介绍框架主要功能框架源代码框架Packages创建一个控制台应用安装FusionCacheNuget包创建PersonInfo类创建FusionCacheServiceProgram中调用项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言缓存在程序中扮演着提升性能、降低......
  • java使用Workbook workbook = new XSSFWorkbook(inputStream);导出数据频繁GC
    由于xlsx底层使用xml存储,占用内存会比较大,官方也意识到这个问题,在3.8版本之后,提供了SXSSFWorkbook来优化写性能原来代码Workbookworkbook= newXSSFWorkbook(inputStream);优化后代码Workbookworkbook= newSXSSFWorkbook(newXSSFWorkbook(inputStream));此处有坑,请往......
  • 把 Maven 提交到项目?Maven Wrapper的使用与好处
    本文收录于Github.com/niumoo/JavaNotes,Java系列文档,数据结构与算法!本文收录于网站:https://www.wdbyte.com/,我的公众号:程序猿阿朗前言不知道你有没有发现,如果使用https://start.spring.io/或者使用IDEA创建一个SpringBoot项目,生成的文件列表中或有mvnw和mvnw.cmd......
  • dbt flags 变量简单说明
    通过flags可以使用dbtcli的一些参数,比较常用的是对于增量物化处理的场景参考使用{%ifflags.FULL_REFRESH%}droptable...{%else%}--no-op{%endif%}说明支持的参数都在flags中可以看看,一些dbtadapter的实现都会使用到此变量参考......
  • blender python api 使用脚本对所有帧 进行全方位渲染
    代码:importbpy#定义要使用的物体placement_ob=bpy.context.scene.objects['Sphere']#'Sphere'是要渲染的物体名称camera_ob=bpy.context.scene.objects['Camera']#'Camera'是摄像机的名称render=bpy.context.scene.render#获取渲染场景的引......