Nmap - 简单使用方法

Nmap - 端口扫描神器

1. 介绍

Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。

  1. nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
  2. 正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。
  3. Nmap 常被跟评估系统漏洞软件Nessus 混为一谈。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。

2. 作用

如下:
1. 探测网路上存活的主机
2. 探测主机开放的端口
3. 探测相应端口的服务或软件和版本
4. 探测操作系统,硬件地址,和软件版本
5. 探测脆弱性漏洞(用自带的或者自己编译的脚本检测漏洞)

3. 常用语句:

  • 帮助文档
nmap --help
  • 查看中文的帮助文档
man namp
  • 检测版本信息
nmap -V 
  • 输出详细的扫描过程 -v 一般放在末尾
nmap ip -v
  • 普通扫描
nmap ip
  • 全面探测
nmap ip -A
  • 只进行主机发现,不进行端口扫描
nmap -sn ip -v
  • 系统版本扫描
nmap -O ip -v
nmap -Pn -p 端口 -v -A ip

如图根据IIS即可查询对应的系统版本:
在这里插入图片描述

  • ping扫描
nmap -sP ip -v
  • 绕过ping扫描
nmap -P0 ip -v
nmap -Pn ip -v
  • 探测该端口的服务
nmap ip -p 端口号 -sV
  • 快速模式,仅扫描TOP 100的端口
nmap -F ip -v
  • 扫描指定ip放端口(指定端口号1-65535)()

注: tcp SYN扫描:SYN扫描要比TCP Connect扫描隐蔽,SYN仅需要发送初始的SYN数据包给目标主机,如果端口开放,则响应SYN-ACK数据包;如果关闭,则响应RST数据包,这样三次握手就没有完成,无法建立正常的TCP连接,一般不会被记录到系统日志中.(扫描需要root权限,root用户下不加任何参数等价与使用了-sS参数进行扫描而其它的普通用户则是等价与sT参数进行扫描)

nmap -sS -p 端口号 -v ip
  • UDP扫描 (一般扫描53(dns) 和161(snmp)端口)
  • 端口扫描状态:

i. Opend:端口开启
ii. Closed : 端口关闭
iii. Filtered : 端口被过滤,数据没有达到主机.返回结果为空,数据被防火墙拦截
iv. Unfiltered : 未被过过滤,数据达到主机,但是不能识别端口的当前状态
v. Open|filtered : 开放或者过滤,端口没有返回值,主要发生再UDP,IP,FIN,NULL和Xmas扫描中
vi. Closed|filtered : 关闭或者被过滤每只发生在 IP ID idle(空闲扫描,伪造成空闲设备的身份)扫描

nmap -sU ip -v
  • TCP扫描(为正常三次握手的过程,一般不会被拦截)
nmap -sT ip -v
  • 系统版本,程序版本扫描
nmap -sV ip -v
  • 等级扫描(0-5):默认3,扫描等级越高越快,但越容易被防火墙或IDS 检测并屏蔽掉
nmap -T4 ip -v
  • 使用IP协议包探测对方主机是否开启
nmap -PO ip -v
  • 反向域名解析(查询C端上的那个ip有域名服务)
nmap -R ip -v
nmap -sL -R ip/24   (也可以是192.168.1.* 代替 192.168.1.44/24)
  • 输出到文件
a)	nmap ip -oN 123.txt -v  输出到txt文件中
b)	nmap ip -oG 123.txt -v 输出到txt文件中
c)	nmap -oX 123.xml 输出到xml文件中,需要用浏览器打开查看结果
d)	nmap -oX 123.xml asd.abc.cn
    1. 读取文件中的ip进行扫描
nmap -iL 12345.txt -v  //批量扫描文件下的所有ip
  • whois查询
a)	nmap --script=whois-domain 域名
b)	whois 域名  (这个不能批量)
  • DNS解析查询
nmap --script=dns-brute 域名
  • 用一组 IP 地址掩盖真实地址,其中 ME 填入自己的 IP 地址
nmap -D <decoy1,decoy2[,ME],...>
  • 伪装成其他 IP 地址
nmap -S <IP_Address>
  • 使用错误的 checksum 来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或 IDS/IPS)
--badsum
  • 扫描常见的漏洞
nmap --script=vuln
  • 扫描是否存在该漏洞
nmap –-script=漏洞名称 ip -v
  • 扫描该主机是否存在ms17_010漏洞
nmap -script smb-vuln-ms17-010 192.168.1.1
  • 漏洞检索
find /绝对路径/ | grep 模糊字段  (进行正则模糊匹配)
  • nmap的脚本库的路径: /usr/share/nmap/scripts
  • 该目录下均为nse脚本,NSE使用的是Lua脚本语言,默认提供了14个类别的350多个脚本。
  • 主要方面:

1.网络发现(Network Discovery)
2.更加复杂的版本侦测(例如 skype 软件)
3.漏洞侦测(Vulnerability Detection)
4.后门侦测(Backdoor Detection)
5.漏洞利用(Vulnerability Exploitation)

注: linux 打开浏览器:
firefox

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Windows系统下使用Python-nmap可以进行网络扫描和端口扫描。Python-nmap是一个Python库,它封装了Nmap安全扫描工具的功能,可以通过Python代码来调用Nmap进行扫描操作。 要在Windows系统中使用Python-nmap,首先需要确保已经安装了Python和Nmap。以下是使用Python-nmap的基本步骤: 1. 安装Python:从Python官方网站下载并安装适合您系统的Python版本。 2. 安装Nmap:从Nmap官方网站下载并安装适合您系统的Nmap版本。 3. 安装Python-nmap库:打开命令提示符或者PowerShell,并执行以下命令来安装Python-nmap库: ``` pip install python-nmap ``` 4. 编写Python代码:创建一个Python脚本文件,例如`scan.py`,并在其中编写扫描代码。以下是一个简单的示例: ```python import nmap nm = nmap.PortScanner() result = nm.scan('127.0.0.1', '22-443') for host in result['scan']: print('Host: %s' % host) for port in result['scan'][host]['tcp']: print('Port: %s\tState: %s' % (port, result['scan'][host]['tcp'][port]['state'])) ``` 上述代码使用了`nmap.PortScanner()`创建了一个扫描器对象,然后使用`scan()`方法对指定IP地址和端口范围进行扫描。扫描结果存储在`result`变量中,可以根据需要进行处理和输出。 5. 运行Python脚本:在命令提示符或者PowerShell中执行以下命令来运行Python脚本: ``` python scan.py ``` 执行后,您将看到扫描结果输出在命令行中。 希望以上介绍对您有帮助!如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值