nmap命令的使用「建议收藏」

nmap命令的使用「建议收藏」介绍portScan的方法介绍portScan就是一种通过检测对方服务器的开放端口,侦测对方服务器服务的方法。一般可分为主动式和被动式两种。主动式就是通过向对方服务器的特定端口发送数据包,根据应答来判断。以nmap为代表被动式,不主动发出数据包,而是在网络上长时侦听,分析网上的transaction,来分析,严格的来被动式不应该被称作是端口扫描。以nwatch为代表优缺点比较主动…

大家好,又见面了,我是你们的朋友全栈君。

常用参数

在这里插入图片描述

其他举例

指定扫描一个网段:nmap 192.168.0.0/24 或者 nmap 192.168.0.1-200(扫描1-200的主机)

扫描部分网段(逗号隔开):nmap 192.168.0.1,2,3,4 或 nmap 192.168.0,1,2,3,4.1

扫描指定IP所开放的端口:nmap -p 1-65535 -v 127.0.0.1

扫描C段存活主机:nmap 192.168.1.0/24

指定端口扫描:nmap -p 80,1433,22,1521 192.168.1.1

探测主机操作系统:nmap -O 192.168.1.1

全面的系统探测:nmap -v -A 192.168.1.1(Nmap默认扫描主机1000个高危端口)

穿透防火墙进行扫描:nmap -Pn -A 192.168.1.1(禁止用ping的)

使用脚本扫描Web敏感目录:nmap -p 80 –script=http-enum.nse 192.168.1.1

主机发现

在这里插入图片描述
Ping扫描

Ping扫描只进行ping,然后显示出在线的主机。使用该选项扫描可以轻易获取目标信息而不会被轻易发现。

在默认情况下,Nmap会发送一个ICMP回声请求和一个TCP报文到目标端口。Ping扫描的优点是不会返回太多的信息影响对结果的分析,并且扫描方式高效。

nmap -sP 192.168.0.0/24

无Ping扫描

无ping扫描通常用于防火墙禁止ping的情况下,它能确定正在运行的机器。

默认情况下,nmap只对正在运行的主机进行高强度的探测,如端口扫描,版本探测或者操作系统探测。

用-P0禁止主机发现会使nmap对每一个特定的目标IP地址进行所要求的扫描,这可以穿透防火墙,也可以避免被防火墙发现。

nmap -P0 192.168.0.12

TCP SYN Ping 扫描
通常情况下,nmap默认是使用TCP ACK 和 ICMP Echo 请求对目标进行是否存活的响应,当目标主机的防火墙阻止这些请求时,可以使用TCP SYN Ping扫描来判断主机是否存活。

-PS 选项发送一个设置了SYN标志位的空TCP报文。默认端口为80。

但不同的端口也可以作为选项指定,甚至可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80,115,3306,3389),在这种情况下,每个端口会被并发地扫描

nmap  -PS  -v  192.168.0.12

上面结果可得知Nmap是通过SYN/ACK和RST响应来对目标主机是否存活进行判断,但在特定情况下防火墙会丢弃RST包。

这时结果会不准确,我们需要指定一个端口或端口范围来避免这种情况。

nmap  -PS80,100-200  -v  192.168.0.12

TCP ACK Ping 扫描
使用-PA选项可以进行TCP ACK Ping扫描,它与TCP SYN Ping扫描非常类似,区别在于设置的TCP标志位是ACK而不是SYN,使用这种方式扫描可以探测阻止SYN包或ICMP Echo请求的主机。

nmap  -PA  -v  192.168.0.12

同时使用-SP与-PA选项命令如下:

nmap  -PA  -PS  192.168.0.12

UDP Ping扫描
使用UDP Ping扫描时Nmap会发送一个空UDP包到目标之间,如果目标主机相应则返回一个ICMP端口不可达错误,如果目标主机不是存活状态则会返回各自ICMP错误信息。

nmap  -PU  -v  192.168.0.12

ICMP Ping Types 扫描

ICMP是控制报文协议。nmap发送一个ICMP type8(回声请求)报文到目标ip地址,从运行的主机得到一个type0(回声相应)报文。

-PE选项简单的来说是通过向目标发送ICMP Echo数据包来探测目标主机是否在线,使用-PE选项打开该回声请求功能。

-PP选项是ICMP时间戳ping扫描,-PM选项可以进行icmp地址掩码ping扫描

nmap-PE-v192.168.0.12nmap-PP-v192.168.0.12nmap-PM-v192.168.0.12

ARP Ping扫描

-PR 通常在扫描局域网时使用,在内网的情况下,使用ARP ping扫描方式是最有效的,在本地局域网中防火墙不会禁止ARP请求,这就使得它比其他ping扫描都更加高效。

nmap -PR 192.168.0.12

扫描列表

列表扫描时主机发现的退化形式,它仅仅列出指定网络上的每台主机,不发送任何报文到目标主机。

默认情况下,Nmap仍然对主机进行反向域名解析以获取它们的名字。

nmap -sL 192.168.0.0/24

禁止反向域名解析

如果单纯扫描一段IP,使用该选项可以大幅度减少目标主机的相应时间,从而更快的得到结果。

namp  -n -sL  192.168.0.0/24

反向域名解析

nmap -R -sL *. 192.168.0.0/24
扫描TPv6地址

nmap -6 fe80::20c:29ff:fee0:2e76
路由跟踪

通过此选项可以轻松地查找出本地计算机到目标之间所经过的网络节点,并可以看到通过各个节点的时间。

nmap  --traceroute  -v  www.baidu.com

SCTP INIT Ping扫描
SCTP(流控制传输协议)是IETF在2000年定义的一个传输层协议。

SCTP可以看作是TCP协议的改进,它改进了TCP的一些不足,SCTP INIT Ping扫描通过向目标发送INIT包,根据目标主机的相应判断目标主机是否存活。

nmap  -PY  -v  192.168.0.12

nast

twork Analyzer Sniffer Tool (nast) 是一个网络包嗅探和局域网分析工具,基于 libnet 和 libpcap 开发。

#nast -S

在这里插入图片描述

Knocker

Knocker 是一个简单易用的 TCP 端口扫描工具,采用 C 语言编写,用于分析主机上运行的服务。
在这里插入图片描述

nmap介绍

port Scan的方法介绍 port Scan就是一种通过检测对方服务器的开放端口,侦测对方服务器服务的方法。一般可分为主动式和被动式两种。 主动式就是通过向对方服务器的特定端口发送数据包,根据应答来判断。以nmap 为代表

被动式,不主动发出数据包,而是在网络上长时侦听,分析网上的transaction,来分析,严格的来被动式不应该被称作是端口扫描。以nwatch为代表

优缺点比较 主动式的优点

主动式只要在对方没有把通信阻断的情况下,可以在较短的时间内获得结果

主动式的缺点

1 现在带有阻断功能的防火墙越来越多,有些防火墙当检测到端口扫描时,会将端口关闭一定的时间,还有的机器使用了很多filter功能,只对特定的IP地址提供服务,这种情况下,主动式的正确性大打折扣。

2 主动式只是在一瞬间对端口进行扫描,只有当服务器那个时候使用的服务才有可能被侦测到。

3 端口扫描是一种广义上的攻击行为,对于末经许可的机器,一般不能施行。

被动式的优点

被动式只是侦听网络,不会成为网络攻击,它长期运行,可以侦测到一个长时间间内,服务器的变化。

被动式的缺点

由于它不会主动发出请求包,即使端口开着,如果没有发生实际的通信,被动式也无法侦测到服务

nmap的安装

#apt-get install nmap

使用案例

1、批量Ping扫描 : 批量扫描一个网段的主机存活数

#nmap -sP 192.168.1.10/24

** 2、跳过Ping探测:** 有些主机关闭了ping检测,所以可以使用-P0跳过ping的探测,可以加快扫描速度。

#nmap -P0 192.168.1.7

3、计算网段主机IP: 仅列出指定网段上的每台主机,不发送任何保卫呢到目标主机。

#nmap -sL 192.168.1.10/24

4、扫描IP地址范围: 可以指定一个IP地址范围
检测主机是否正常运行

#nmap -sP 192.168.1.1-100

在这里插入图片描述

备注:
获取在线的IP地址信息 nmap -sP ip/域名 | grep “Nmap scan report for”|awk ‘{print $5}’

**5、探测开放端口(SYN)?*探测目标主机开放的端口,可指定一个以逗号分隔的端口列表(如-PS22,443,80)

#nmap -PS22,80,8080 192.168.1.7
nmap -PS 192.168.1.234

**6、探测开放端口(UDP)?*探测目标主机开放的端口,可指定一个以逗号分隔的端口列表(-PS22,80,8080)

#nmap -PU 192.168.1.7

**7、SYN扫描:**使用SYN半开放扫描

检查开启端口信息

#nmap -sS 192.168.1.7 -p 1-65534

在这里插入图片描述

备注:
获取在开放端口信息 nmap -sS/sT ip/域名 | grep “open”|awk ‘{print $1}’

#nmap -sV -p 443 --script ssl-heartbleed.nse 【目标IP】

在这里插入图片描述
msf利用

1.搜索Heartbleed模块:
在这里插入图片描述
2.引用第一个选项,show options查看需要设置的参数
在这里插入图片描述
set rhosts 【ip】

set rport 【端口】

set verbose true 设置verbose不然显示不出信息
在这里插入图片描述
抓取的数据有点乱,可以使用脚本抓取我们想要的
在这里插入图片描述
https://www.jianshu.com/p/3a4e99862e17
**8、TCP扫描:**扫描开放了TCP端口的设备

#nmap -sT 192.168.1.17

9、UDP扫描: 扫描开放了UDP端口的设备

#nmap -sU 192.168.1.17

** 10、协议探测:**探测目标主机支持哪些IP协议

#nmap -s0 192.168.1.7

** 11、探测目标系统:**扫描探测目标主机操作系统,这里结果仅供参考

#nmap -0 192.168.1.7

12、探测服务版本: 用于扫描目标主机服务版本号

#nmap -sV 192.168.1.7

**13、扫描多台主机:**一次性扫描台目标主机

#nmap 192.168.1.2 192.168.1.7

**14、导入扫描文件:**从一个文件中导入IP地址,并进行扫描

#cat xxx.log

**15、绕过防火墙:**在扫描时通过使用-f 参数以及使用 –mtu 4/8/16 使用分片、指定数据包的MTU,来绕过防火墙。

#nmap -f 127.0.0.1

16、探测指定网段是否有FTP服务的主机,不做DNS反向解析

nmap -sS n p 21192.168.0.0/24

17、探测指定服务器是否启有特定端口的服务

nmap n p T:21-25,80,110,3389sS 192.168.0.1

18、使用TCP连接扫描探测指定服务器,即使无法ping通也仍然继续探测

nmap -sT PO 192.168.0.1

19、探测指定服务器的操作系统类型

nmap O n 192.168.0.1

20、探测局域网段中各主机开启了哪些服务

nmap sS 192.168.0.0/24

21、探测192.168.0.0和172.16.0.0/16网段中有哪些主机在运行

nmap sP n 192.168.0.0/24 172.16.0.0/16

22、快速扫描主机开放端口

nmap -F 192.168.0.1

其他基本

nmap localhhost #查看主机当前开放的端口
nmap -p 1024-65535 localhhost #查看主机端口(1024-65535)中开放的端口
nmap -PS 192.168.21.124 #探测目标主机开放的端口
nmap -PS22,80,8080 192.168.1.2 #探测所列出的目标主机端口
nmap -0 192.168.1.12 #探测目标主机操作系统的类型
nmap -A 192.168.1.21 #探测目标主机操作系统类型

获取ssh Banner信息

23、nmap获取ssh Banner信息

#nmap -sV -p 22 IP地址

在这里插入图片描述
24、Metasploit获取ssh Banner信息

#msfconsole
msf>use auxiliary/scanner/ssh/ssh_version
msf>show options

msf>set rhosts 192.168.0.104
msf>show options
msf>run
msf>exit

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
25、nc获取ssh Banner信息

#nc ip地址 22

26、配置ssh规避ssh Banner信息
在ssh配置文件sshd_config中新增一行。DebianBanner no 再次扫描发现没有操作系统信息。

DebianBanner no

在这里插入图片描述

在这里插入图片描述

27、


28、


29、


30、


31、


32、


33、


34、


35、


Nmap使用扫描脚本

Nmap不仅用于端口扫措、服务检测:其还具有强大的脚本功能利用情况下,常用的扫描脚本会放在/usr/lshare/nmap/script 目录下并且脚本扩招名为.nse后缀的,接下来将介绍最常用的扫描脚本

**1、扫描WEB敏感目录:**通过 –script=http-enum.nse可以扫描网段的敏感目录

#nmap -p 80 --script=http-enum.nse www.baidu.com

**2、绕开鉴权:**负责处理鉴权证书(绕开鉴权)的脚本,也可以作为检测部分应用弱口令

#nmap -script=auth www.baidu.com

3、默认脚本扫描:脚本扫描,主要是搜集各种应用服务的信息,收集到后可再针对服务进行攻击

#nmap --script=default www.baidu.com

4、检测常见漏洞 : 通过使用 –script=luln ,可以扫描网站的常见漏洞,以及网页的目录结构

# nmap --script=luln www.baidu.com

**5、内网服务探测 :**通过使用–script=broadcast ,可以实现在局域网内探查更多服务开启状态

#nmap -n -p445 --script=broadcast 127.0.0.1

6、进行WholS查询 :–script= whois 模块,可以查询网站的简单信息

# nmap --script whois www.baidu.com

**7、详细WholS解析 :**利用第三方的数据库或资源,查询详细的WhoIS解析情况

#nmap --script external www.baidu.com

**8、发现内网网关 :**通过使用 –script=broadcast-netbios-master-browser 可以发现内网网关的地址

# nmap --script=broadcast-netbios-master-browser 192.168.1.1

**9、发现WEB中Robots文件:**通过使用 –script=http-robots.txt.nse 可以检测到robots文件内存 :

# nmap --script=http-robots.txt.nse www.baidu.com

**10、检测WEB服务器时间:**检查web服务器的当前时间。

#nmap -p 433 --script http-date.nse www.baidu.com

11、执行DOS攻击: dos攻击,对于处理能力较小的站点还挺好用的。

#nmap --script= http-slowloris --max-parallelism 1000 www.baidu.com

12、检查DNS子域: 检查目标DNS服务器是否允许传送,如果能,直接把子域拖处理就好了

# nmap -p 53 --script= dns-zone-transfer.nse -v www.baidu.com

**13、查询WEB旁站:**旁站查询,ip2hosts接口该接口似乎早已停用,如果想继续用,可自行到脚本里把接口部分的代码改掉。

# nmap -p80 --script= hostmap-ip2hosts.nse www.baidu.com

**14、暴力破解DNS记录:**这里以破解百度的域名为例子,由于内容比较多这里简化显示

#nmap --script=dns-brute.nse www.baidu.com

**15、内网VNC扫描:**通过使用脚本,检查VNC版本等一些敏感信息

#nmap --script=realvnc-auth-bypass 127.0.0.1       #检查VNC版本
#nmap --script=vnc-auth 127.0.0.1                  #检查VNC认证方式
#nmap --script=vnc-info 127.0.0.1                  #获取VNC信息
#nmap --script=vnc-burte.nse --script-args=userdb/user.txt,passdb=/pass.txt 127.0.0.1        #暴力破解VNC密码

**16、内网SMB扫描:**检查局域网中的Samba服务器,以及对服务器的暴力破解

#nmap --script=
#nmap --script=
#nmap --script=
#nmap --script=
#nmap --script=
#nmap --script=

17、MSSQL扫描: 检查局域网中的SQL Server服务器,以及对服务器的暴力破解


#nmap -p1422--script==ms-sql-brute --script-argss=usersdb/var/passwd,passdb=/var/passwd 127.0.0.1     #暴力破解MSSQL密码
#nmap -p1422 --script ms-sql-dump-hashes.nse --script-args mssql.username=sa,mssql.password=sa 127.0.0.1         #dumphash值
#nmap -p1422 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="net user" 192.168.1.132 xp_cmdshell         #执行命令

**18、MySQL扫描:**检查局域网中的MySQL服务器,以及对服务器的暴力破解

#nmap -p3306 --script=mysql-empty-password.nse 127.0.0.1            #扫描root空口令
#nmap -p3306 --script=mysql-users.nse --script-args=mysqluser=root 127.0.0.1       #列出所有用户
#nmap -p3306 --script=mysql-brute.nse --script-args=userdb=/var/passwd,passdb=/var/passwd 127.0.0.1        #暴力破解MySQL口令

**19、Oracle扫描:**检查局域网中的Oracle服务器,以及对服务器的暴力破解

#nmap --script=oracle-sid-brute -p 1521-1560 127.0.0.1           #oracle sid扫描
#nmap --script=mysql-brute.nse --script-args oracle-brute.sid=ORCL,userdb=/var/passwd,passdb=/var/passwd 127.0.0.1    #

常见报错

报错信息:49999/tcp open unknown
在这里插入图片描述
原因:

参考链接 :

五款优秀的端口扫描工具 : https://www.cnblogs.com/fateSpace/p/10455033.html

https://www.cnblogs.com/LyShark/p/10637507.html

Linux端口扫描工具nmap : https://blog.csdn.net/lee244868149/article/details/39177755?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1

nmap命令检查在线IP与在线IP的开放端口情况 : https://blog.csdn.net/m0_37886429/article/details/78795100

Nmap命令详解 : https://www.jianshu.com/p/4030c99fcaee

运维工程师必会工具:Nmap 和 TCPdump :https://www.2cto.com/article/201511/450531.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142013.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • MySQL默认隔离级别是RR,但是为什么一些大厂会改成RC?

    MySQL默认隔离级别是RR,但是为什么一些大厂会改成RC?为什么默认隔离级别是RR?可能大部分人都只知道MySQL的隔离级别有4个,分别是RU读未提交、RC读已提交、RR可重复读和Serializable可串行化,很少有人知道MySQL默认的隔离级别是RR,Oracle默认的隔离级别是RC。那就更少有人知道为什么MySQL默认的隔离级别是RR了。我也是刚刚工作之余看到了一篇文章,里面简单提了一下这个问题,我就四处找寻了一下答案,将自己所理解的记录下来,希望对大家有帮助。理解脏读、不可重复读、幻读脏读:某个事务对一份数据执行了更新操作,另一个事务在此时读

  • python3.7安装步骤_centos运行python脚本

    python3.7安装步骤_centos运行python脚本centos7自带版本是python2.7如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/1、先查看系统python的位置在哪儿whereispythonpython2.7默认安装是在/usr/bin目录中,切换到/usr/bin/cd/usr/bin/llpython*从下面的图中我们可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个..

  • CSRF攻击与防御(写得非常好)「建议收藏」

    转载地址:http://www.phpddt.com/reprint/csrf.htmlCSRF概念:CSRF跨站点请求伪造(Cross—SiteRequestForgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,

  • Redis设置密码_mac初始密码是多少

    Redis设置密码_mac初始密码是多少redis默认情况下是没有开启密码访问功能,需要配置redis.config文件。1、找到配置文件并且打开~%vi/usr/local/redis-6.2.6/redis.conf当前文件搜索/requirepass,键盘上按n一个个查看,找到#requirepassfoobared,修改为requirepass123(密码),保存退出。2、重启redis服务器<127.0.0.1:6379>shutdown​~%redis-server这.

  • hdu1796 How many integers can you find

    hdu1796 How many integers can you find

  • SQLServer转MYSQL的方法(连数据)[传]

    SQLServer转MYSQL的方法(连数据)[传]

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号