Nmap备忘单:从探索到漏洞利用 Part1

在侦查过程中,信息收集的初始阶段是扫描。

侦查是什么?

侦查是尽可能多的收集目标网络的信息。从黑客的角度来看,信息收集对攻击非常有帮助,一般来说可以收集到以下信息:

电子邮件、端口号、操作系统、运行的服务、Traceroute或者DNS的信息、防火墙识别和逃逸等等

NMAP的简介

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

NMAP脚本引擎

NMAP脚本引擎是NMAP最强大且灵活的特性。它允许用户编写简单的脚本来自动化执行各种网络任务,基本上这些脚本采用lua语言进行编写。通常NMAP的脚本引擎可以做很多事情,比如:

网络发现

这是NMAP的基本功能,例子包括查找目标域名的whois信息,在查询ARIN,RIPE,或APNIC上查询目标ip的所有权,查找开放端口,SNMP查询和列出可用的NFS/SMB/RPC共享和服务。

漏洞检测

当一个新的漏洞被发现,你想赶在入侵者之前快速扫描网络来识别出有漏洞的系统。虽然NMAP不是一个全面的漏洞扫描器,但NSE是强大到足以应付苛刻的漏洞检查。许多漏洞脚本已经可用,并计划编写更多的脚本。

后门检测

很多攻击者和一些自动化蠕虫会留下后门以便后期可再次进入。其中一些可以被NMAP基于正则表达式检测。

漏洞利用

作为一种脚本语言,NSE甚至可以进行漏洞利用,而不仅仅是找到它们。添加自定义攻击脚本的这个功能可能对某些人(特别是渗透测试人员)有价值,但不打算把NMAP开发成metasploit框架那样的东西。

正如你所看到的,我已经使用(-sc)选项(或-script),这会执行一个默认脚本来扫描网络。你可以看到我们得到ssh、rpcbind netbios-sn,但端口过滤或关闭,所以我们可以说,可能会有一些防火墙阻塞我们的请求。稍后我们将讨论如何识别防火墙和试图逃避它们。

现在我要发现模式的运行ping扫描(-sP –script discovery),这样它会尝试所有可能的方法来扫描,这样我将得到更多有趣的信息。

图像中可以看到,它正在根据脚本的规则尝试所有可能的方法。有关更多信息,请参见下一个图像。

你能看到有趣的端口和协议吗?你可以看到dns-bruteforce发现主机包含一些blog,cms,sql,log,mail等二级域名。这里我们可以执行SQL注入,博客可能是WordPress,Joomla等,所以我们可以利用已公开的CMS漏洞。

接下来我会描述如何编写自己的NMAP脚本,并通过NMAP去调用。

基本扫描技术

在这里我将展示用于扫描网络/主机的基本技巧。但在此之前,你应该知道关于扫描后的NMAP状态的一些基本的东西。

端口状态:扫描后,你可能会看到一些结果,端口状态是过滤,打开,关闭,等等。让我解释这一点。

开放:这表明一个应用程序侦听此端口上的连接。

关闭:这表示收到了探头,但没有应用程序侦听此端口。

已过滤:这表明探针没有收到,无法建立连接。它也表明探针被某些筛选给丢弃。

未过滤:这表明探针接收但无法建立连接。

打开/过滤:这表示该端口进行过滤或打开,但NMAP的无法建立连接。

关闭/过滤:这表示该端口进行过滤或关闭,但NMAP的无法建立连接。

扫描单个网络

执行NMAP 192.168.1.1或者www.baidu.com这样的主机名。

扫描多个网络/目标

执行NMAP 192.168.1.1 192.168.1.2等,NMAP将扫描同个网段内不同的ip地址。

你还可以在相同的命令一次扫描多个网站/域名。见下面的图片。这将域名转换为其对应的IP地址和扫描目标。

扫描连续的IP地址

命令:NMAP 192.168.2.1-192.168.2.100

NMAP也可以用使用CIDR(无类别域间路由)表示法整个子网。

命令:NMAP 192.168.2.1/24

扫描目标列表

如果你有大量的系统进行扫描,就可以在文本文件中输入IP地址(或主机名),并使用该文件作为输入。

命令:NMAP -iL [LIST.TXT]

扫描随机目标

该-IR参数可以用来选择随机Internet主机进行扫描。 NMAP会随机生成目标的指定数量,并试图对其进行扫描。

语法:NMAP -ir [主机数]

该-exclude选项与用于从NMAP的扫描中排除主机。

命令:NMAP 192.168.2.1/24 -exclude 192.168.2.10

侵入性扫描

最常用的NMAP的选项,试图用一个简单字母A的替代长字符串。它也会执行路由跟踪等。

命令:NMAP -A主机

使用NMAP探索

使用NMAP探索是非常有趣且对渗透测试非常有帮助。在发现过程中可以了解服务,端口号,防火墙的存在,协议,操作系统等,我们将一个接一个讨论。

不进行Ping

该-PN选项指示NMAP跳过默认的发现检查并对执行对目标的完整端口扫描。当扫描被阻止ping探针的防火墙保护的主机时,这是非常有用的。

语法:NMAP -PN 目标

仅进行Ping扫描

选项-sP让NMAP仅对主机进行ping。当要探测一批ip地址中哪些是可达的时候非常有用。通过指定特定的目标,你可以得到更多的信息,比如MAC地址。

命令: NMAP -sP 目标

TCP SYN扫描

在我们开始之前,我们必须知道SYN数据包是什么。

基本上是一个syn包被用于启动两个主机之间的连接。

在TCP SYN ping发送一个SYN包到目标系统,并监听响应。这种替代探索方法对被配置为阻止标准ICMP ping消息主机是有用的。

该-PS选项进行TCP SYN Ping。

命令:NMAP -PS主机

TCP Ack Ping扫描

这种类型的扫描将只扫描确认(ACK)数据包。

选项-PA对指定主机进行TCP Ack Ping扫描。

命令:NAMP -PA 目标

UDP Ping 扫描

选项-P对指定主机进行UDP Ack Ping扫描。

SCTP初始化Ping

选项-PY指示的Nmap执行一个SCTP INIT Ping。此选项将包含一个最小的INIT块的SCTP包。这一探索方法试图找到使用流控制传输协议(SCTP)主机。 SCTP通常用于对基于IP的电话系统。

命令:NMAP -PY 目标

ICMP Echo ping

选项-PE将对指定主机执行ICMP(互联网控制消息协议)回显Ping。

命令:NMAP -PE 目标

ICMP 时间戳 ping

选项-PP执行一次ICMP时间戳ping。

命令:NAMP -PP 目标

ICMP 地址掩码 ping

选项-PM 进行ICMP 地址掩码 ping.

命令:nmap –PM target

IP 协议 Ping

选项-PO执行IP协议Ping扫描

命令:NMAP -PO protocol 目标

一个IP协议的ping发送带有指定的协议目标的数据包。如果没有指定的协议,则默认的协议1(ICMP)、2(IGMP)和4(IP中的IP)的使用。

ARP Ping

选项-PR用于执行ARP ping扫描。该-PR选项指示的Nmap对指定目标执行ARP(地址解析协议)ping操作。

命令:NMAP -PR 目标

扫描本地网络时,-PR选项会自动暗中启用。这种类型的发现是比其它Ping的方法快得多。

路由跟踪

选项-traceroute可被用于跟踪的网络路径指定的主机。

语法:NMAP -traceroute 目标

强制反向DNS解析

选项-r指示的Nmap始终执行对目标IP地址的反向DNS解析。

语法:NMAP -R 目标

选项-r在对一个IP段进行侦查时非常有用,Nmap将尝试查询每个ip地址的反向DNS信息 。

禁用反向DNS解析

选项-n用于禁用反向DNS解析

命令:NMAP -n 目标

反向dns解析会很明显的减慢Nmap扫描的过程。使用-n选项大大降低了扫描时间,尤其是扫描大量主机的时候。如果你不关心目标系统的DNS信息,并愿意执行产生更快的结果扫描此选项很有用。

选择DNS查找方法

选项-system-dns指示NMAP使用主机系统自带的DNS解析器,而不是其自身内部的方法。

命令:NMAP -system-dns 目标

手动指定DNS服务器

选项-dns-servers用于扫描时手动指定DNS服务器进行查询。

语法:NMAP -dns-server server1 server2 目标

选项-dns-servers允许您为nmap的查询指定一个或多个备用服务器,这对于没有配置DNS,或者如果你想防止您的扫描查找出现在您的本地配置的DNS服务器的日志文件系统非常有用。

清单扫描

选项-sL将显示一个列表,并执行指定的IP地址反向DNS查找。

语法:NMAP -sL 目标

在接下来的文章中,我将讨论如何使用不同的方法来发现服务,主机和banner,并还将讨论如何和怎样在Nmap使用NSE来找到和逃避防火墙,以及如何编写自己的Nmap脚本。 Nmap的最重要的部分是知道如何查找漏洞,并尝试利用它们。 敬请关注。

时间: 2024-12-18 11:56:47

Nmap备忘单:从探索到漏洞利用 Part1的相关文章

Nmap备忘单:从探索到漏洞利用(Part 4)

这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下防火墙的一些基础知识以便绕过它. 什么是防火墙? 防火墙是用来控制网络访问的软件或硬件.分为以下两类:1.基于主机的防火墙:2.基于网络的防火墙. 基于主机的防火墙 这是在单台主机上运行的软件,用来控制入站流量(从网络向主机)和出站流量(从主机向网络).这些软件安装于操作系统之上,常见例子就是Lin

Nmap备忘单:从探索到漏洞利用(Part 2)

这是我们的第二期NMAP备忘单(第一期在此).基本上,我们将讨论一些高级NMAP扫描的技术,我们将进行一个中间人攻击(MITM).现在,游戏开始了. TCP SYN扫描 SYN扫描是默认的且最流行的扫描选项是有一定原因的.它可以在不受防火墙限制的高速网络每秒扫描数千个端口 .同时也是相对不显眼的和隐蔽的,因为它永远不会完成TCP连接. 命令:NMAP -sS 目标 TCP连接扫描 当SYN扫描不可用的时候,TCP连接扫描是默认的TCP扫描类型.这是在用户不具有发送RAW数据包的特权的情况下.不是

Nmap备忘单:从探索到漏洞利用(Part3)

众所周知NMAP是经常用来进行端口发现.端口识别.除此之外我们还可以通过NMAP的NSE脚本做很多事情,比如邮件指纹识别,检索WHOIS记录,使用UDP服务等. 发现地理位置 Gorjan Petrovski提交了个NMAP的NSE脚本,帮助我们定位远程IP的地理位置:ip-geolocation-maxmind,ip-geolocation-ipinfodb,和ipgeolocation-geobytes. 这将告诉我们如何设置并使用附带的NMAP NSE的地理位置脚本.  ip-geoloc

Cheat—— 给Linux初学者和管理员一个终极命令行"备忘单"

编译自:http://www.tecmint.com/cheat-command-line-cheat-sheet-for-linux-users/作者: Avishek Kumar原创:LCTT https://linux.cn/article-3760-1.html译者: su-kaiyao原文稍有改动 当你不确定你所运行的命令,尤其是那些使用了许多选项的复杂命令时,你会怎么做?在这种情况下,我们使用man pages来获取帮助.还有一些其它的选择可能包括像‘help’,‘whereis’和

Objective-C教程备忘单

终极版本的Objective-C教程备忘单帮助你进行iOS开发. 想开始创建你的第一个iOS应用程序么?那么看一下这篇很棒的教程吧:Create your first iOS 7 Hello World Application 注:这篇文章我写了三天,可能在一些必要的地方使用了编辑和说明,所以如果有任何疑问和修改建议请在下方评论. 这不是一个初学者指南,也不是关于Objective-C的详细讨论,这是关于常见的和高水平的论题的快速索引. 如果这里有些问题没有涉及到,你也可以查阅以下文章: Obj

SQL注入备忘单

Find and exploit SQL Injections with free Netsparker SQL Injection Scanner SQL Injection Cheat Sheet, Document Version 1.4 About SQL Injection Cheat Sheet Currently only for MySQL and Microsoft SQL Server, some ORACLE and some PostgreSQL. Most of sam

表情符号备忘单

表情符号备忘单 此页上列出的emoji 表情图释支持篝火. GitHub, Basecamp. Redbooth. Trac. Flowdock. Sprint.ly. Kandan. Textbox.io. Kippt. Redmine. JabbR.特雷略.大厅. Qiita.创业.红宝石中国.格罗夫. Idobata. NodeBB 论坛.可宽延时间. Streamup. OrganisedMinds. Hackpad. Cryptbin.加藤.据报.开朗鬼. IRCCloud. Dash

OWASP WEB会话管理备忘单 阅读笔记

https://www.owasp.org/index.php/Session_Management_Cheat_Sheet#Session_ID_Properties 会话简介 HTTP是一种无状态的协议,每一对请求和响应与其他的web交互是相互独立的,如果要跟踪用户的访问状态,就需要引入会话机制,对用户的访问序列进行管理. 会话管理,将认证和访问控制(也叫授权)连接起来,在认证之前可能有未认证的会话,在访问控制之后,要有会话销毁机制. 一旦认证的会话建立,会话ID就相当于最强的认证手段, 等

GitHub Git 备忘单

安装git见上一章 配置工具 对所有本地仓库的用户信息进行配置 $ git config --global user.name "[name]" 对你的commit操作设置关联的用户名 $ git config --global user.email "[email address]" 对你的commit操作设置关联的邮箱地址 创建仓库 创建一个新的仓库或者从一个现有的链接获取仓库 $ git init [project-name] 创建一个本地的仓库,并设置名字