前言
由于都是发自己的文章,所以也不会有那么多的内容发布,一周可能也就更新个两篇,如果工作忙,可能一周就一篇,但是文章都会很细致,暂时只更新学习笔记,至于挖洞思路,小菜鸟还不配。
免责声明
传播、利用本公众号剁椒鱼头没剁椒所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号剁椒鱼头没剁椒及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
文章时间
该文章写于 2023 年 8 月份,属于库存文章了,由于之前写的时候都是使用 word,所以效果不是太好,关于技术可能有些过时,但是一些工具的参数基本上是不会有什么变化的,顶多新增一些。 主要也是前两天整合文章的时候发现还是有一些工具的使用好像从来没发过,对于大佬很简单,但是后台依旧有人问这些问题,也助力新手学习吧。
Nmap 简介
Nmap 介绍
nmap 是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用 nmap 来探测工作环境中未经批准使用的服务器,但是黑客会利用 nmap 来搜集目标电脑的网络设定,从而计划攻击的方法。
Nmap 常被跟评估系统漏洞软件 Nessus 混为一谈。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。
Nmap 功能介绍
Nmap 可以用于对服务器的主机探测、端口扫描、版本检测、同时也支持探测脚本的编写。
Nmap 下载
Nmap 可以在 Windows 与 linux 上运行,Windows 中需要下载 Windows 版本的 Nmap,而 Linux 中,可以下载也可以直接使用 kail 系统,在 kail 系统中 Nmap 是自带的,无需下载。
官网:http://nmap.org
Nmap 端口状态
-
Open:端口开启,有程序监听此端口。 -
Closed:端口关闭,数据能到达主机,但是没有程序监听此端口。 -
Filtered:数据未能到达主机。 -
Unfiltered:数据能到达主机,但是 Nmap 无法判断端口开启还是关闭。 -
Open | filtered:端口没返回值,主要出现在 UDP,IP,FIN,NULL 和 Xmas 扫描。 -
Closed | filtered:只出现在 IP ID idle 扫描。
Nmap 基本使用
Nmap 基础扫描
使用基本扫描也就是说,不带任何的参数,直接扫描,通常默认探测目标主机在 1 至 10000 范围中开放的端口情况。
命令:nmap 192.168.10.150
Nmap 基础扫描多个目标
这里由于我第二个虚拟机没开,所以显示第二个 IP 不通,但能证明是进行扫描了。
命令:nmap 192.168.10.150 192.168.10.50命令:nmap 192.168.10.1-192.168.10.10
Nmap 详细扫描输出
简单扫描,并对返回的结果详细描述输出,这种扫描就是能够看到扫描的百分比,以及一些详细的信息。
同时-v 与-vv 都是一样的,都能够输出详细的扫描过程。
命令:nmap -v 192.168.10.150
Nmap 指定端口扫描
在使用 nmap 的时候默认扫描的端口是 1 到 10000,当我们想指定某个端口或者某一段端口进行扫描的时候就可以使用-p 参数来设定扫描的端口。
单端口扫描
命令:nmap -p 3389 192.168.10.150
端口范围扫描
命令:nmap -p 1-3000 192.168.10.150
端口组合扫描
这里的组合扫描就是有单端口和多端口一起的。
命令:nmap -p 3389,1-3000 192.168.10.150
Nmap 扫描排除
这里的排除就是在当扫描某一个网段的时候,不扫描这个主机,或者不扫描这个文件中存在的 IP 地址。
排除一个主机
其实通过下图就能发现,当我扫描整个网段的时候,我排除了 192.168.10.150 这台靶机,所以扫描的时候并未扫 192.168.10.150。
命令:nmap 192.168.10.0/24 -exclude 192.168.10.150
排除文件中的主机
这里文件中的主机就是,文件中写到的 IP,这里我创建一个文件夹叫 IP.txt,里面还是写我的 192.168.10.150,来看看结果吧。
命令:nmap 192.168.10.0/24 -excludefile ip.txt
Nmap 中 Ping 扫描
这里所谓的 Ping 扫描其实就是去探测主机的,用于主机发现,并非是去探测端口开放。
命令:nmap -sP 192.168.10.0/24
Nmap 中 SYN 半放开式扫描
其实这个 Tcp SYN Scan (sS) 这是一个基本的扫描方式,它被称为半开放扫描,由于采用这种方式可以使得 Nmap 不需要通过完整的握手,就能获得远程主机的信息,并且不会产生会话,因此也不会在主机上产生任何日志记录。就因为未形成会话,才是这个方式的优势。
命令:nmap -sS 192.168.10.150
Nmap 中 TCP/UDP 扫描
TCP 扫描
命令:nmap -sT 192.168.10.150
UDP 扫描
我这个没开放 UDP,所以根本就没测试出来。
命令:nmap -sU 192.168.10.150
Nmap 版本扫描
所谓的版本扫描就是用于检测目标主机上的端口中运行的软件的版本,它不是用于扫描主机和端口的,但是它需要通过开放的端口去获取信息进行判断。并且这个扫描比较慢,最好在测试之前去获取一下开放了哪些端口,针对端口进行扫描。
命令:nmap -sV 192.168.10.150
Nmap 操作系统扫描
远程检测操作系统
远程检测操作系统和软件,Nmap 的 OS 检测技术在渗透测试中用来了解远程主机的操作系统和软件是非常有用的,通过获取的信息你可以知道已知的漏洞。Nmap 有一个名为的 nmap-OS-DB 数据库,该数据库包含超过 2600 操作系统的信息。
命令:nmap -O 192.168.10.150
猜测匹配操作系统
通过 Nmap 准确的检测到远程操作系统是比较困难的,需要使用到 Nmap 的猜测功能选项,–osscan-guess,通过猜测匹配最接近的操作系统。
命令:nmap -O -osscan-guess 192.168.10.150
Nmap 不用 ping 远程主机
如果远程主机有防火墙,IDS 和 IPS 系统,你可以使用-PN 命令来确保不 ping 远程主机,因为有时候防火墙会阻止掉 ping 请求,-PN 命令告诉 Nmap 不用 ping 远程主机,使用-PN 参数可以绕过 PING 命令,但是不影响主机的系统的发现。
命令: nmap -O -PN 192.168.10.150
Nmap 从文件中读取扫描
这个就是通过从文件中读取需要扫描的 IP 列表。
命令:nmap -iL ip.txt
Nmap 路由跟踪扫描
路由器追踪功能,能够帮网络管理员了解网络通行情况,同时也是网络管理人员很好的辅助工具!
通过路由器追踪可以轻松的查看从我们电脑所在地到目标地之间所经过的网络节点,并可以看到通过各个节点所花费的时间。
命令:nmap -traceroute 192.168.10.150
Nmap 其它扫描
综合扫描
A OS 识别,版本探测,脚本扫描和 traceroute 综合扫描。
此选项设置包含了 1-10000 的端口 ping 扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测。
命令:nmap -A 192.168.10.150
命令综合扫描
命令混合扫描,可以做到类似参数-A 所完成的功能,但又能细化到我们所需特殊要求。所以一般高手选择这个混合扫描。
命令:nmap -vv -p1-100,3306,3389 -O -traceroute 192.168.10.150
Nmap 输出格式
扫描的结果输出到屏幕,同时会存储一份到 jg.txt。
命令:nmap -p 3389 -oG jg.txt 192.168.10.150
Nmap 脚本
Nmap 脚本简介
Nmap 脚本介绍
虽然 NSE 有一个复杂的实现来提高效率,但它非常容易使用。只需指定-cC 即可启用最常见的脚本。或者指定--script 选项,通过提供类别、脚本文件名或要执行的脚本目录的名称来选择要执行的自己的脚本。您可以通过--script args 和--script-args 文件选项为某些脚本提供参数来自定义它们。--script 帮助显示每个所选脚本的作用描述。剩下的两个选项--script trace 和--script updatedb 通常只用于脚本调试和开发。脚本扫描也是-A(主动扫描)选项的一部分。
脚本扫描通常与端口扫描结合进行,因为脚本可以根据扫描发现的端口状态运行或不运行。使用-sn 选项,可以在不进行端口扫描的情况下运行脚本扫描,只进行主机发现。在这种情况下,只有主机脚本才有资格运行。要在既不进行主机发现也不进行端口扫描的情况下运行脚本扫描,请将-Pn-sn 选项与-sC 或--script 一起使用。将假设每个主机都已启动,但仍将只运行主机脚本。这种技术对于 whois-ip 这样只使用远程系统地址而不需要启动的脚本非常有用。
脚本不是在沙盒中运行的,因此可能会意外或恶意地损坏您的系统或侵犯您的隐私。除非您信任作者或自己仔细审核了脚本,否则不要运行第三方的脚本。
官方文档:https://nmap.org/book/nse-usage.html#nse-categories
Nmap 脚本类别介绍
Nmap 允许用户自己编写脚本进行自动化扫描操作,或者扩展 Nmap 现有的功能脚本文件的默认目录为: /usr/share/nmap/scripts,如图大概近 600 个不同分类不同功能的脚本。
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nmap 脚本参数
-
--script-args=<n1=v1,[n2=v2...]>#为脚本提供默认参数。 -
--script-args-file=filename#使用文件来为脚本提供参数。 -
--script-updated#更新脚本数据库。 -
--script-trace#显示脚本执行过程中所有数据的发送与接收。 -
--script-help= #显示脚本的帮助信息。
Nmap 脚本基础扫描
命令:nmap --script 脚本类别 主机
Nmap 脚本扫描案例
这里对 Nmap 脚本相关的扫描,举一些扫描实例。
Nmap 漏洞扫描
Nmap 的漏洞扫描并不是很好的选择,在扫描的靶机中,我放置了很多个存在漏洞的靶场,之前我在使用 awvs 扫描的时候,扫出来几十个漏洞,但是 Nmap 却没扫出来,所以 Nmap 漏洞扫描只能是辅助作用。
命令:nmap --script=vuln 192.168.10.150
Nmap 信息收集
命令:nmap --script=http-enum 192.168.10.150
Nmap 子域名爆破
命令:nmap --script=dns-brute www.baidu.com
Nmap 服务爆破案例
Nmap 中 SSH 爆破
命令: nmap -p 22 --script=ssh-brute --script-args userdb=user.txt,passdb=passwd.txt 192.168.10.30解释:-p 指定端口号 --script 指定协议类型 --script-args 指定用户及密码的字典。
Nmap 中 MYSQL 数据库爆破
这里我在实际的环境中以及虚拟机中测试,均未爆破成功,这里可能与数据库的设置有关。
命令:nmap -p 3306 --script=mysql-brute.nse --script-args userdb=user.txt,passdb=passwd.txt 192.168.10.50
其它爆破案例
这里我没有实际的环境,直接写命令吧!
爆破 TELNET 服务
命令:nmap -p 23 --script=telnet-brute.nse --script-args userdb=user.txt,passdb=passwd.txt 192.168.10.50
爆破 SMB 服务
命令:nmap -p 445 --script=smb-brute.nse --script-args userdb=user.txt,passdb=passwd.txt 192.168.10.50
爆破 FTP 服务
命令:nmap -p 21 -sT --script=smb-brute.nse --script-args userdb=user.txt,passdb=passwd.txt 192.168.10.50
总结
在 Nmap 中还有很多有趣的脚本,并且也支持自定义脚本,所以有未总结到位的,可以自行百度搜索。
原文始发于微信公众号(剁椒鱼头没剁椒):Nmap工具使用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论