mysql 5.0.51b下载_mysql版本下载

Nmap 操作指南

说明:该篇笔记作用于 Nmap 渗透测试工具的使用以及参考

author:Tripse

updateTime:

PS:.xml格式转换.html:xsltproc myscan.xml -o myscan.html

功能介绍

除了端口扫描外,Nmap还具备如下功能。

● 主机探测:Nmap 可査找目标网络中的在线主机。默认情况下,Nmap 通过4种方式——ICMP echo 请求(ping)、向端口发送TCP SYN 包、向端口发送TCP ACK包和ICMP时间戳请求——发现目标主机。

● 服务/版本检测:在发现开放端口后,Nmap 可进一步检查目标主机的检测服务协议、应用程序名称、版本号等信息。

● 操作系统检测:Nmap 向远程主机发送一系列数据包,并能够将远程主机的响应与操作系统指纹数据库进行比较。如果发现了匹配结果,它就会显示匹配的操作系统。它确实可能无法识别目标主机的操作系统;在这种情况下,如果您知道目标系统上使用的何种操作系统,可在它提供的 URL 里提交有关信息,更新它的操作系统指纹数据库。

● 网络路由跟踪:它通过多种协议访问目标主机的不同端口,以尽可能访问目标主机。Nmap路由跟踪功能从TTL的高值开始测试,逐步递减TTL,直到它到零为止。

● Nmap 脚本引擎:这个功能扩充了Nmap 的用途。如果您要使用Nmap 实现它(在默认情况下)没有的检测功能,可利用它的脚本引擎手写一个检测脚本。目前,Nmap可检査网络服务的漏洞,还可以枚举目标系统的资源。

端口识别状态介绍

● 开放:工作于开放端口的服务器端的应用程序可以受理TCP 连接、接收UDP 数据包或者响应SCTP(流控制传输协议)请求。

● 关闭:虽然我们确实可以访问有关的端口,但是没有应用程序工作于该端口上。

● 过滤:Nmap 不能确定该端口是否开放。包过滤设备屏蔽了我们向目标发送的探测包。

● 未过滤:虽然可以访问到指定端口,但Nmap 不能确定该端口是否处于开放状态。

● 打开|过滤:Nmap 认为指定端口处于开放状态或过滤状态,但是不能确定处于两者之中的哪种状态。在遇到没有响应的开放端口时,Nmap 会作出这种判断。这可以是由于防火墙丢弃数据包造成的。

● 关闭|过滤:Nmap 认为指定端口处于关闭状态或过滤状态,但是不能确定处于两者之中的哪种状态。

扫描形式介绍

TCP 扫描选项

● TCP 连接扫描(-sT):指定这个选项后,程序将和目标主机的每个端口都进行完整的三次握手。如果成功建立连接,则判定该端口是开放端口。由于在检测每个端口时都需要进行三次握手,所以这种扫描方式比较慢,而且扫描行为很可能被目标主机记录下来。如果启动Nmap的用户的权限不足,那么默认情况下Nmap程序将以这种模式进行扫描。

● SYN 扫描(-sS):该选项也称为半开连接或者SYN stealth。采用该选项后,Nmap将使用含有SYN标志位的数据包进行端口探测。如果目标主机回复了SYN/ACK包,则说明该端口处于开放状态:如果回复的是RST/ACK包,则说明这个端口处于关闭状态;如果没有任何响应或者发送了ICMP unreachable信息,则可认为这个端口被屏蔽了。SYN模式的扫描速度非常好。而且由于这种模式不会进行三次握手,所以是一种十分隐蔽的扫描方式。如果启动Nmap的用户有高级别权限,那么在默认情况下Nmap程序将以这种模式进行扫描。

● TCP NULL(-sN)、FIN(-sF)及XMAS(-sX)扫描:NULL 扫描不设置任何控制位;FIN扫描仅设置FIN标志位:XMAS扫描设置FIN、PSH和URG的标识位。如果目标主机返回了含有 RST 标识位的响应数据,则说明该端口处于关闭状态;如果目标主机没有任何回应,则该端口处于打开|过滤状态。

● TCP Maimon扫描(-sM):Uriel Maimon 首先发现了TCP Maimom扫描方式。这种模式的探测数据包含有FIN/ACK标识。对于BSD衍生出来的各种操作系统来说,如果被测端口处于开放状态,主机将会丢弃这种探测数据包;如果被测端口处于关闭状态,那么主机将会回复RST。

● TCPACK 扫描(-sA):这种扫描模式可以检测目标系统是否采用了数据包状态监测技术(stateful)防火墙,并能确定哪些端口被防火墙屏蔽。这种类型的数据包只有一个ACK标识位。如果目标主机的回复中含有RST标识,则说明目标主机没有被过滤。

● TCP 窗口扫描(-sW):这种扫描方式检测目标返回的RST数据包的TCP窗口字段。如果目标端口处于开放状态,这个字段的值将是正值;否则它的值应当是0。

● TCP Idle 扫描(-sI):采用这种技术后,您将通过指定的僵尸主机发送扫描数据包。本机并不与目标主机直接通信。如果对方网络里有IDS,IDS将认为发起扫描的主机是僵尸主机。

UDP 扫描选项

Nmap有多种TCP扫描方式,而UDP扫描仅有一种扫描方式(-sU)。虽然UDP扫描结果没有TCP扫描结果的可靠度高,但渗透测试人员不能因此而轻视UDP扫描,毕竟UDP端口代表着可能会有价值的服务端程序。

UDP扫描的最大问题是性能问题。由干Linux内核限制1秒内最多发送一次ICMP Port Unreachable信息。按照这个速度,对一台主机的个UDP端口进行完整扫描,总耗时必定会超过个小时。这也是为什么 Nmap 扫描有时候会比较慢的原因

改善扫描速度的方式主要有:

● 进行并发的UDP 扫描;

● 优先扫描常用端口;

● 在防火墙后面扫描;

● 启用--host-timeout 选项以跳过响应过慢的主机。

这些方法能够减少UDP端口扫描所需的总体时间。

假如我们需要找到目标主机开放了哪些 UDP 端口。为提高扫描速度,我们仅扫描 端口(DNS)和端口(SNMP)。此时需要使用下述指令。

nmap -sU -p ,

上述指令的返回结果如下。

 Nmap scan report for 
 Host is up (0.0016s latency).
 PORT STATE SERVICE
 /udp open domain
 /udp closed snmp

NSE 脚本引擎介绍

Nmap 本身就是功能强大的网络探测工具。而它的脚本引擎功能(Nmap Scripting Engine,NSE)更让 Nmap 如虎添翼。NSE 可使用户的各种网络检査工作更为自动化,有助于识别应用程序中新发现的漏洞、检测程序版本等Nmap原本不具有的功能。虽然Nmap软件包具有各种功能的脚本,但是为了满足用户的特定需求,它还支持用户撰写自定义脚本。

从进阶操作手法章节开始,我们将慢慢揭开 nmap 的面纱!

NSE自带的脚本由Lua语言(http://www.lua.org)编写。这些脚本可以分成个类别。

● auth:此类脚本使用暴力破解等技术找出目标系统上的认证信息。

● default:启用--sC 或者-A 选项时运行此类脚本。这类脚本同时具有下述特点:

? 执行速度快;

? 输出的信息有指导下一步操作的价值;

? 输出信息内容丰富、形式简洁;

? 必须可靠;

? 不会侵入目标系统;

? 能泄露信息给第三方。

● discovery:该类脚本用于探索网络。

● dos:该类脚本可能使目标系统拒绝服务,请谨慎使用。

● exploit:该类脚本利用目标系统的安全漏洞。在运行这类脚本之前,渗透测试人员需要获取被测单位的行动许可。

● external:该类脚本可能泄露信息给第三方。

● fuzzer:该类脚本用于对目标系统进行模糊测试。

● instrusive:该类脚本可能导致目标系统崩溃,或耗尽目标系统的所有资源。

● malware:该类脚本检査目标系统上是否存在恶意软件或后门。

● safe:该类脚本不会导致目标服务崩溃、拒绝服务且不利用漏洞。

● version:配合版本检测选项(-sV),这类脚本对目标系统的服务程序进行深入的版本检测。

● vuln:该类脚本可检测检査目标系统上的安全漏洞。

在Kali Linux系统中,Nmap脚本位于目录/usr/share/nmap/scripts。目前,Kali Linux收录的版的Nmap带有多个脚本。

常用指令汇总解析

code

explanation

nmap

默认扫描(扫描所有端口,探测简单服务)

nmap -iL testip

读取清单扫描(同时采用默认扫描。当然,我们可以在其后追加我们需要扫描的参数,以详细扫描出结果)

nmap -sV -oA testPortVersion

端口服务探针

nmap -A -oN nmap.all

全面扫描(不推荐适用)

nmap -sS -sV -p- -O -oN nmap.all

全面扫描(推荐使用),后期根据端口服务探针操作 Script 精确识别服务漏洞,该操作方法应当经常于 nmap 其他操作手法相互配合 该笔记为具体演示其他参数引用,而不会指定该参数使用

nmap -6 fe80::a00:27ff:fe43:

IPv6 目标扫描方式

nmap -Pn

cross firewall for ICMP

nmap -f --mtu .

减少数据包以防止被识别为 Nmap 指纹

nmap -D

指定诱饵主机,混淆目标 IPS/IDS 识别本机 nmap 扫描

nmap -g .

利用防火墙特性:只允许某源端口流量访问本机,则操作该手法

nmap --data-length .

修改 Nmap 数据包长度与 -f --mtu 相似同样避免被 firewall 识别为 nmap 指纹

nmap --max-parallelism .

限制Nmap 并发扫描的最大连接数以免被 CC 流量防护限制

nmap --scan-delay .

与上一个命令原理相同,增加数据包发送延迟,减少 IPS/IDS CC 流量防护检测和限制

常用 NSE 脚本指令汇总解析

code

explanation

nmap --script-updatedb

更新 NSE 脚本数据库,需要记住,每安装一个 NSE 脚本在 Nmap /usr/share/nmap/scripts 目录下,均需要更新指令

nmap -sC

NSE 默认类扫描目标,

nmap --script http-enum,http-headers,http-methods,http-php-version -p .

启用 NSE 脚本进行 web 目录信息探针、HEAD 头部信息探针、PHP version 探针、HTTP 请求方法探针

nmap -sV --script vulners

启用 NSE 脚本识别已知服务信息来源探针漏洞数据

nmap --script vulscan/vulscan.nse -sV -oA nmap.vulscan

启用 vulscan NSE ,该 NSE 脚本与上一个 NSE 相同,但是所探针的漏洞信息更为全面且详细

基础操作手法

默认扫描

默认扫描会扫描目标机器的所有端口,以及端口的简单识别

利用命令

nmap

利用过程

 ┌──(rootLAPTOP-F5GS9SLQ)-[~]
 └─# nmap 
 Starting Nmap  ( https://nmap.org ) at  : CST
 Nmap scan report for 
 Host is up (0.0040s latency).
 Not shown:  closed tcp ports (reset)
 PORT     STATE SERVICE
 /tcp   open  ftp
 /tcp   open  ssh
 /tcp   open  telnet
 /tcp   open  smtp
 /tcp   open  domain
 /tcp   open  http
 /tcp  open  rpcbind
 /tcp  open  netbios-ssn
 /tcp  open  microsoft-ds
 /tcp  open  exec
 /tcp  open  login
 /tcp  open  shell
 /tcp open  rmiregistry
 /tcp open  ingreslock
 /tcp open  nfs
 /tcp open  ccproxy-ftp
 /tcp open  mysql
 /tcp open  postgresql
 /tcp open  vnc
 /tcp open  X11
 /tcp open  irc
 /tcp open  ajp13
 /tcp open  unknown
 
 Nmap done: 1 IP address (1 host up) scanned in  seconds

读取清单扫描

当我们收集的目标 IP 过多时,可以文本形式保存,再使用 Nmap 读取清单扫描功能操作扫描手法

利用命令

nmap -iL testip

利用过程

 ┌──(rootLAPTOP-F5GS9SLQ)-[~/test]
 └─# nmap -iL testip
 Starting Nmap  ( https://nmap.org ) at  : CST
 Nmap scan report for 
 Host is up (0.0033s latency).
 Not shown:  closed tcp ports (reset)
 PORT     STATE SERVICE
 /tcp   open  ftp
 /tcp   open  ssh
 /tcp   open  telnet
 /tcp   open  smtp
 /tcp   open  domain
 /tcp   open  http
 /tcp  open  rpcbind
 /tcp  open  netbios-ssn
 /tcp  open  microsoft-ds
 /tcp  open  exec
 /tcp  open  login
 /tcp  open  shell
 /tcp open  rmiregistry
 /tcp open  ingreslock
 /tcp open  nfs
 /tcp open  ccproxy-ftp
 /tcp open  mysql
 /tcp open  postgresql
 /tcp open  vnc
 /tcp open  X11
 /tcp open  irc
 /tcp open  ajp13
 /tcp open  unknown
 
 Nmap scan report for LAPTOP-F5GS9SLQ ()
 Host is up (0.00034s latency).
 Not shown:  closed tcp ports (reset)
 PORT     STATE SERVICE
 /tcp  open  msrpc
 /tcp  open  netbios-ssn
 /tcp  open  microsoft-ds
 /tcp  open  iss-console-mgr
 /tcp open  vmrdp
 /tcp open  ms-wbt-server
 /tcp open  wsdapi
 
 Nmap done: 2 IP addresses (2 hosts up) scanned in  seconds

识别端口服务以及版本

利用命令

nmap -sV -oA testPortVersion

-oA 执行保存,分别存储三种类型方式,.xml .nmap 默认形式,常用 .xml 形式以转换为 HTML 页面浏览

利用过程

 ┌──(rootLAPTOP-F5GS9SLQ)-[~/test/testPortVersion]
 └─# cat testPortVersion.nmap
 # Nmap  scan initiated Wed Feb  :: as: nmap -sV -oA testPortVersion 
 Nmap scan report for 
 Host is up (0.0027s latency).
 Not shown:  closed tcp ports (reset)
 PORT     STATE SERVICE     VERSION
 /tcp   open  ftp         vsftpd 
 /tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol )
 /tcp   open  telnet      Linux telnetd
 /tcp   open  smtp        Postfix smtpd
 /tcp   open  domain      ISC BIND 
 /tcp   open  http        Apache httpd  ((Ubuntu) DAV/2)
 /tcp  open  rpcbind     2 (RPC #)
 /tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
 /tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
 /tcp  open  exec        netkit-rsh rexecd
 /tcp  open  login?
 /tcp  open  tcpwrapped
 /tcp open  java-rmi    GNU Classpath grmiregistry
 /tcp open  bindshell   Metasploitable root shell
 /tcp open  nfs          (RPC #)
 /tcp open  ftp         ProFTPD 
 /tcp open  mysql       MySQL .51a-3ubuntu5
 /tcp open  postgresql  PostgreSQL DB  - 
 /tcp open  vnc         VNC (protocol )
 /tcp open  X11         (access denied)
 /tcp open  irc         UnrealIRCd
 /tcp open  ajp13       Apache Jserv (Protocol v1.3)
 /tcp open  http        Apache Tomcat/Coyote JSP engine 
 Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
 
 Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
 # Nmap done at Wed Feb  :: -- 1 IP address (1 host up) scanned in  seconds

识别目标操作系统

利用命令

nmap -O -oN namp.systemVersion

以 -oN 执行默认保存格式 .nmap,-O 识别操作系统

利用过程

 Host is up (0.0037s latency).
 Not shown:  closed ports
 PORT STATE SERVICE
 
 /tcp open ftp
 /tcp open ssh
 /tcp open telnet
 /tcp open smtp
 /tcp open domain
 /tcp open http
 /tcp open rpcbind
 /tcp open netbios-ssn
 /tcp open microsoft-ds
 /tcp open exec
 /tcp open login
 /tcp open shell
 /tcp open rmiregistry
 /tcp open ingreslock
 /tcp open nfs
 /tcp open ccproxy-ftp
 /tcp open mysql
 /tcp open postgresql
 /tcp open vnc
 /tcp open X11
 /tcp open irc
 /tcp open ajp13
 /tcp open unknown
 
 MAC Address: ::::: (Cadmus Computer Systems)
 Device type: general purpose
 Running: Linux .X
 OS CPE: cpe:/o:linux:linux_kernel:
 OS details: Linux  - 
 Network Distance: 1 hop

穿透 Firewall IDS/IPS

在渗透测试的工作中,目标主机通常处于防火墙或 IDS 系统的保护之中。在这种环境中使用 Nmap 的默认选项进行扫描,不仅会被发现,而且往往一无所获。此时,我们就要使用Nmap规避检测的有关选项。

● -f(使用小数据包):这个选项可避免对方识别出我们探测的数据包。指定这个选项之后,Nmap将使用8字节甚至更小数据体的数据包。

● --mtu:这个选项用来调整数据包的包大小。MTU(Maximum Transmission Unit,最大传输单元)必须是8的整数倍,否则Nmap将报错。

● -D(诱饵):这个选项应指定假 IP,即诱饵的 IP。启用这个选项之后,Nmap 在发送侦测数据包的时候会掺杂一些源地址是假IP(诱饵)的数据包。这种功能意在以藏木于林的方法掩盖本机的真实 IP。也就是说,对方的log还会记录下本机的真实IP。您可使用RND生成随机的假IP地址,或者用RND:number的参数生成 个假IP地址。您所指定的诱饵主机应当在线,否则很容易击溃目标主机。另外,使用了过多的诱饵可能造成网络拥堵。尤其是在扫描客户的网络的时候,您应当极力避免上述情况。

● --source-port 或 -g(模拟源端口):如果防火墙只允许某些源端口的入站流量,这个选项就非常有用。

● --data-length:这个选项用于改变Nmap 发送数据包的默认数据长度,以避免被识别出来是Nmap的扫描数据。

● --max-parallelism:这个选项可限制Nmap 并发扫描的最大连接数。

● --scan-delay

Nmap的官方手册详细介绍了规避探测的各种选项。如果您需要详细了解这些内容,请参照官方手册

http://nmap.org/book/man-bypass-firewalls-ids.html

利用命令

nmap -Pn -oN nmap.crossFirewall

该扫描手法在于目标通过防火墙策略不接收 ICMP 数据包,从而越过主机发现扫描,而 Nmap 默认先发现主机,才能进行扫描,若 SYN or Ping 扫描对方禁止,则 Nmap 自动忽视该目标

nmap -f --mtu .

减少数据包以防止被识别为 Nmap 指纹

nmap -D

指定诱饵主机,混淆目标 IPS/IDS 识别本机 nmap 扫描

nmap -g .

利用防火墙特性:只允许某源端口流量访问本机,则操作该手法

nmap --data-length .

修改 Nmap 数据包长度与 -f --mtu 相似同样避免被 firewall 识别为 nmap 指纹

nmap --max-parallelism .

限制Nmap 并发扫描的最大连接数以免被 CC 流量防护限制

nmap --scan-delay .

与上一个命令原理相同,增加数据包发送延迟,减少 IPS/IDS CC 流量防护检测和限制

利用过程

nmap -Pn -oN nmap.crossFirewall

 ┌──(rootLAPTOP-F5GS9SLQ)-[~/test/testSystemVersion]
 └─# nmap -Pn  -oN nmap.crossFirewall
 Starting Nmap  ( https://nmap.org ) at  : CST
 Nmap scan report for 
 Host is up (0.0015s latency).
 Not shown:  closed tcp ports (reset)
 PORT     STATE SERVICE
 /tcp   open  ftp
 /tcp   open  ssh
 /tcp   open  telnet
 /tcp   open  smtp
 /tcp   open  domain
 /tcp   open  http
 /tcp  open  rpcbind
 /tcp  open  netbios-ssn
 /tcp  open  microsoft-ds
 /tcp  open  exec
 /tcp  open  login
 /tcp  open  shell
 /tcp open  rmiregistry
 /tcp open  ingreslock
 /tcp open  nfs
 /tcp open  ccproxy-ftp
 /tcp open  mysql
 /tcp open  postgresql
 /tcp open  vnc
 /tcp open  X11
 /tcp open  irc
 /tcp open  ajp13
 /tcp open  unknown
 
 Nmap done: 1 IP address (1 host up) scanned in  seconds

nmap -f --mtu .

 ┌──(rootLAPTOP-F5GS9SLQ)-[~/test]
 └─# nmap -f --mtu .
 Starting Nmap  ( https://nmap.org ) at  : CST
 Nmap scan report for 
 Host is up (0.0012s latency).
 Not shown:  closed tcp ports (reset)
 PORT     STATE SERVICE
 /tcp   open  ftp
 /tcp   open  ssh
 /tcp   open  telnet
 /tcp   open  smtp
 /tcp   open  domain
 /tcp   open  http
 /tcp  open  rpcbind
 /tcp  open  netbios-ssn
 /tcp  open  microsoft-ds
 /tcp  open  exec
 /tcp  open  login
 /tcp  open  shell
 /tcp open  rmiregistry
 /tcp open  ingreslock
 /tcp open  nfs
 /tcp open  ccproxy-ftp
 /tcp open  mysql
 /tcp open  postgresql
 /tcp open  vnc
 /tcp open  X11
 /tcp open  irc
 /tcp open  ajp13
 /tcp open  unknown
 
 Nmap done: 1 IP address (1 host up) scanned in  seconds

nmap -D

 ┌──(rootLAPTOP-F5GS9SLQ)-[~/test]
 └─# nmap -D  
 Starting Nmap  ( https://nmap.org ) at  : CST
 Nmap scan report for 
 Host is up (0.0014s latency).
 Not shown:  closed tcp ports (reset)
 PORT     STATE SERVICE
 /tcp   open  ftp
 /tcp   open  ssh
 /tcp   open  telnet
 /tcp   open  smtp
 /tcp   open  domain
 /tcp   open  http
 /tcp  open  rpcbind
 /tcp  open  netbios-ssn
 /tcp  open  microsoft-ds
 /tcp  open  exec
 /tcp  open  login
 /tcp  open  shell
 /tcp open  rmiregistry
 /tcp open  ingreslock
 /tcp open  nfs
 /tcp open  ccproxy-ftp
 /tcp open  mysql
 /tcp open  postgresql
 /tcp open  vnc
 /tcp open  X11
 /tcp open  irc
 /tcp open  ajp13
 /tcp open  unknown
 
 Nmap done: 1 IP address (1 host up) scanned in  seconds

nmap -g .

┌──(rootLAPTOP-F5GS9SLQ)-[~/test]
└─# nmap -g .
Starting Nmap  ( https://nmap.org ) at  : CST
Nmap scan report for 
Host is up (0.0033s latency).
Not shown:  closed tcp ports (reset)
PORT     STATE SERVICE
/tcp   open  ftp
/tcp   open  ssh
/tcp   open  telnet
/tcp   open  smtp
/tcp   open  domain
/tcp   open  http
/tcp  open  rpcbind
/tcp  open  netbios-ssn
/tcp  open  microsoft-ds
/tcp  open  exec
/tcp  open  login
/tcp  open  shell
/tcp open  rmiregistry
/tcp open  ingreslock
/tcp open  nfs
/tcp open  ccproxy-ftp
/tcp open  mysql
/tcp open  postgresql
/tcp open  vnc
/tcp open  X11
/tcp open  irc
/tcp open  ajp13
/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in  seconds

由于这一类扫描手法结果均类型,均以改变发送数据形式操作,所以不再赘述利用过程,具体结果请捕获数据包参考即可。

全面扫描

关于全面扫描,nmap 使用 -A 参数操作,不需要指定其他参数即能够进行全方位扫描探针目标;

包括:所有端口发现,端口服务探针,操作系统探针,使用常用 Script 引擎如简单漏洞探针脚本。

关于全面扫描,我并不建议在实战中使用,-A 参数,而是建议使用如下命令操作

利用命令

nmap -A -oN nmap.all

进行全面扫描。该命令易被 IDS/IPS 探针过滤

nmap -sS -sV -p- -O -oN nmap.all

进行全面扫描,不适用默认 Script 脚本,关于这里我们可以在后期探针完端口和操作系统信息后,精确的适用探针脚本,以获取我们需要的信息,而不是盲打

-sS

SYN 扫描

-p-

扫描所有端口

利用过程

┌──(rootLAPTOP-F5GS9SLQ)-[~/test]
└─# nmap -A  -oN nmap.all
Starting Nmap  ( https://nmap.org ) at  : CST
Nmap scan report for 
Host is up (0.00085s latency).
Not shown:  closed tcp ports (reset)
PORT     STATE SERVICE     VERSION
/tcp   open  ftp         vsftpd 
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to 
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 
|      Control connection is plain text
|      Data connections will be plain text
|      vsFTPd  - secure, fast, stable
|_End of status
|_ftp-anon: Anonymous FTP login allowed (FTP code /tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol )
| ssh-hostkey:
|   :0f:cf:e1:c0:5f:6a::d6:::fa:c4:d5:6c:cd (DSA)
|_  :::0f::1d:de:a7:2b:ae::b1::3d:e8:f3 (RSA)
/tcp   open  telnet      Linux telnetd
/tcp   open  smtp        Postfix smtpd
|_ssl-date: -07T16::+:; -1d12h18m04s from scanner time.
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: -17T14::
|_Not valid after:  -16T14::
|_smtp-commands: metasploitable.localdomain, PIPELINING, SIZE , VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN
| sslv2:
|   SSLv2 supported
|   ciphers:
|     SSL2_DES_192_EDE3_CBC_WITH_MD5
|     SSL2_RC2_128_CBC_WITH_MD5
|     SSL2_RC4_128_WITH_MD5
|     SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
|     SSL2_RC4_128_EXPORT40_WITH_MD5
|_    SSL2_DES_64_CBC_WITH_MD5
/tcp   open  domain      ISC BIND 
| dns-nsid:
|_  bind.version: /tcp   open  http        Apache httpd  ((Ubuntu) DAV/2)
|_http-server-header: Apache/ (Ubuntu) DAV/2
|_http-title: Metasploitable2 - Linux
/tcp  open  rpcbind     2 (RPC #)
| rpcinfo:
|   program version    port/proto  service
|     2            /tcp   rpcbind
|     2            /udp   rpcbind
|     2,3,4       /tcp   nfs
|     2,3,4       /udp   nfs
|     1,2,3      /tcp   mountd
|     1,2,3      /udp   mountd
|     1,3,4      /tcp   nlockmgr
|     1,3,4      /udp   nlockmgr
|     1          /udp   status
|_    1          /tcp   status
/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
/tcp  open  netbios-ssn Samba smbd -Debian (workgroup: WORKGROUP)
/tcp  open  exec        netkit-rsh rexecd
/tcp  open  login?
/tcp  open  tcpwrapped
/tcp open  java-rmi    GNU Classpath grmiregistry
/tcp open  bindshell   Metasploitable root shell
/tcp open  nfs          (RPC #/tcp open  ftp         ProFTPD /tcp open  mysql       MySQL .51a-3ubuntu5
| mysql-info:
|   Protocol: 
|   Version: .51a-3ubuntu5
|   Thread ID: 9
|   Capabilities flags: 
|   Some Capabilities: Support41Auth, ConnectWithDatabase, SupportsTransactions, LongColumnFlag, Speaks41ProtocolNew, SwitchToSSLAfterHandshake, SupportsCompression
|   Status: Autocommit
|_  Salt: JR=wchb5|7; Takt*mgA
/tcp open  postgresql  PostgreSQL DB  - 
|_ssl-date: -07T16::+:; -1d12h18m04s from scanner time.
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: -17T14::
|_Not valid after:  -16T14::/tcp open  vnc         VNC (protocol )
| vnc-info:
|   Protocol version: 
|   Security types:
|_    VNC Authentication (/tcp open  X11         (access denied)
/tcp open  irc         UnrealIRCd
| irc-info:
|   users: 1
|   servers: 1
|   lusers: 1
|   lservers: 0
|   server: irc.Metasploitable.LAN
|   version: Unreal3.. irc.Metasploitable.LAN
|   uptime: 0 days, 4::
|   source ident: nmap
|   source host: F2B052EE.5CD59B7.59935C67.IP
|_  error: Closing Link: kercuswoz[] (Quit: kercuswoz)
/tcp open  ajp13       Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
/tcp open  http        Apache Tomcat/Coyote JSP engine 
|_http-server-header: Apache-Coyote/
|_http-favicon: Apache Tomcat
|_http-title: Apache Tomcat/

Network Distance: 2 hops
Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb-os-discovery:
|   OS: Unix (Samba -Debian)
|   Computer name: metasploitable
|   NetBIOS computer name:
|   Domain name: localdomain
|   FQDN: metasploitable.localdomain
|_  System time: -07T11:::
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_nbstat: NetBIOS name: METASPLOITABLE, NetBIOS user: , NetBIOS MAC:  (unknown)
|_clock-skew: mean: -1d11h03m04s, deviation: 2h30m00s, median: -1d12h18m04s
|_smb2-time: Protocol negotiation failed (SMB2)

TRACEROUTE (using port /tcp)
HOP RTT     ADDRESS
1    ms LAPTOP-F5GS9SLQ ()
2    ms 

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in  seconds
┌──(rootLAPTOP-F5GS9SLQ)-[~/test]
└─# nmap -sS -sV -p- -O  -oN nmap.all
Starting Nmap  ( https://nmap.org ) at  : CST
Stats: 0:: elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
Service scan Timing: About % done; ETC: : (0:: remaining)
Nmap scan report for 
Host is up (0.00093s latency).
Not shown:  closed tcp ports (reset)
PORT      STATE SERVICE     VERSION
/tcp    open  ftp         vsftpd /tcp    open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol /tcp    open  telnet      Linux telnetd
/tcp    open  smtp        Postfix smtpd
/tcp    open  domain      ISC BIND /tcp    open  http        Apache httpd  ((Ubuntu) DAV//tcp   open  rpcbind     2 (RPC #/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
/tcp   open  exec        netkit-rsh rexecd
/tcp   open  login?
/tcp   open  tcpwrapped
/tcp  open  java-rmi    GNU Classpath grmiregistry
/tcp  open  bindshell   Metasploitable root shell
/tcp  open  nfs          (RPC #/tcp  open  ftp         ProFTPD /tcp  open  mysql       MySQL .51a-3ubuntu5
/tcp  open  distccd     distccd v1 ((GNU)  (Ubuntu -1ubuntu4))
/tcp  open  postgresql  PostgreSQL DB  - /tcp  open  vnc         VNC (protocol /tcp  open  X11         (access denied)
/tcp  open  irc         UnrealIRCd
/tcp  open  irc         UnrealIRCd
/tcp  open  ajp13       Apache Jserv (Protocol v1./tcp  open  http        Apache Tomcat/Coyote JSP engine /tcp  open  drb         Ruby DRb RMI (Ruby ; path /usr/lib/ruby//drb)
/tcp open  java-rmi    GNU Classpath grmiregistry
/tcp open  mountd       (RPC #/tcp open  nlockmgr     (RPC #/tcp open  status      1 (RPC #)


Network Distance: 2 hops
Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in  seconds

扫描 IPv6 主机

扫描 IPv6 主机没有什么不同。只是多了一个参数和目标 host IP 改变

利用命令

nmap -6 fe80::a00:27ff:fe43:

利用过程

Nmap scan report for fe80::a00:27ff:fe43:
Host is up (0.0014s latency).
Not shown:  closed ports

PORT STATE SERVICE
/tcp open ssh
/tcp open domain
/tcp open ccproxy-ftp
/tcp open postgresql

MAC Address: ::::: (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in  seconds

进阶操作手法-NSE

操作前置

-sC 或 --script=default

启用默认类 NSE 脚本

--script

根据指定的文件名、类别名、目录名、执行相应脚本

--script-args

这个选项用于给脚本指定参数。例如,在使用认证类脚本时,可通过这个选项指定用户名和密码

默认类 NSE 扫描目标

利用命令

nmap -sC

利用过程

┌──(rootLAPTOP-F5GS9SLQ)-[~/test]
└─# nmap -sC 
Starting Nmap  ( https://nmap.org ) at  : CST
Stats: 0:: elapsed; 0 hosts completed (1 up), 1 undergoing Script Scan
NSE Timing: About % done; ETC: : (0:: remaining)
Nmap scan report for 
Host is up (0.0021s latency).
Not shown:  closed tcp ports (reset)
PORT     STATE SERVICE
/tcp   open  ftp
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to 
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 
|      Control connection is plain text
|      Data connections will be plain text
|      vsFTPd  - secure, fast, stable
|_End of status
|_ftp-anon: Anonymous FTP login allowed (FTP code /tcp   open  ssh
| ssh-hostkey:
|   :0f:cf:e1:c0:5f:6a::d6:::fa:c4:d5:6c:cd (DSA)
|_  :::0f::1d:de:a7:2b:ae::b1::3d:e8:f3 (RSA)
/tcp   open  telnet
/tcp   open  smtp
|_ssl-date: -07T17::+:; -1d12h18m04s from scanner time.
| sslv2:
|   SSLv2 supported
|   ciphers:
|     SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
|     SSL2_RC2_128_CBC_WITH_MD5
|     SSL2_DES_64_CBC_WITH_MD5
|     SSL2_RC4_128_EXPORT40_WITH_MD5
|     SSL2_DES_192_EDE3_CBC_WITH_MD5
|_    SSL2_RC4_128_WITH_MD5
|_smtp-commands: metasploitable.localdomain, PIPELINING, SIZE , VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: -17T14::
|_Not valid after:  -16T14::/tcp   open  domain
| dns-nsid:
|_  bind.version: /tcp   open  http
|_http-title: Metasploitable2 - Linux
/tcp  open  rpcbind
| rpcinfo:
|   program version    port/proto  service
|     2            /tcp   rpcbind
|     2            /udp   rpcbind
|     2,3,4       /tcp   nfs
|     2,3,4       /udp   nfs
|     1,2,3      /tcp   mountd
|     1,2,3      /udp   mountd
|     1,3,4      /tcp   nlockmgr
|     1,3,4      /udp   nlockmgr
|     1          /udp   status
|_    1          /tcp   status
/tcp  open  netbios-ssn
/tcp  open  microsoft-ds
/tcp  open  exec
/tcp  open  login
/tcp  open  shell
/tcp open  rmiregistry
/tcp open  ingreslock
/tcp open  nfs
/tcp open  ccproxy-ftp
/tcp open  mysql
| mysql-info:
|   Protocol: 
|   Version: .51a-3ubuntu5
|   Thread ID: 
|   Capabilities flags: 
|   Some Capabilities: Support41Auth, SupportsTransactions, ConnectWithDatabase, Speaks41ProtocolNew, SupportsCompression, SwitchToSSLAfterHandshake, LongColumnFlag
|   Status: Autocommit
|_  Salt: PT6Nf:+fD_3|9G8$I$uF
/tcp open  postgresql
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: -17T14::
|_Not valid after:  -16T14::
|_ssl-date: -07T17::+:; -1d12h18m05s from scanner time.
/tcp open  vnc
| vnc-info:
|   Protocol version: 
|   Security types:
|_    VNC Authentication (/tcp open  X11
/tcp open  irc
/tcp open  ajp13
|_ajp-methods: Failed to get a valid response for the OPTION request
/tcp open  unknown
|_http-title: Apache Tomcat/
|_http-favicon: Apache Tomcat

Host script results:
|_smb2-time: Protocol negotiation failed (SMB2)
|_nbstat: NetBIOS name: METASPLOITABLE, NetBIOS user: , NetBIOS MAC:  (unknown)
| smb-os-discovery:
|   OS: Unix (Samba -Debian)
|   Computer name: metasploitable
|   NetBIOS computer name:
|   Domain name: localdomain
|   FQDN: metasploitable.localdomain
|_  System time: -07T12:::
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_clock-skew: mean: -1d11h03m04s, deviation: 2h30m00s, median: -1d12h18m04s

Nmap done: 1 IP address (1 host up) scanned in  seconds

NSE 操作 http 服务获取详细信息

您还可能需要获取目标主机的特定信息。此时可以单独使用脚本文件。如果要获取HTTP服务器的信息,将会发现NSE的脚本里有很多脚本都是分析HTTP服务的。这里列出常用 NSE 脚本探针

这些脚本有:http-enum、http-headers、http-methods、http-php-version

利用命令

nmap --script http-enum,http-headers,http-methods,http-php-version -p .

启用 NSE 脚本进行 web 目录信息探针、HEAD 头部信息探针、PHP version 探针、HTTP 请求方法探针

利用过程

┌──(rootLAPTOP-F5GS9SLQ)-[~]
└─# nmap --script http-enum,http-headers,http-methods,http-php-version -p .

Starting Nmap  ( https://nmap.org ) at  : CST
Nmap scan report for 
Host is up (0.00096s latency).

PORT   STATE SERVICE
/tcp open  http
| http-enum:
|   /tikiwiki/: Tikiwiki
|   /test/: Test page
|   /phpinfo.php: Possible information file
|   /phpMyAdmin/: phpMyAdmin
|   /doc/: Potentially interesting directory w/ listing on 'apache/ (ubuntu) dav/2'
|   /icons/: Potentially interesting folder w/ directory listing
|_  /index/: Potentially interesting folder
| http-php-version: Versions from logo query (less accurate):  - ,  - 
| Versions from credits query (more accurate):  - , .6RC3
|_Version from header x-powered-by: PHP/-2ubuntu5.
| http-methods:
|_  Supported Methods: GET HEAD POST OPTIONS
| http-headers:
|   Date: Mon,  Feb :: GMT
|   Server: Apache/ (Ubuntu) DAV/2
|   X-Powered-By: PHP/-2ubuntu5.
|   Connection: close
|   Content-Type: text/html
|
|_  (Request type: HEAD)

Nmap done: 1 IP address (1 host up) scanned in  seconds

该 NSE 脚本,作用于常见目录探针,HTTP methods 探针,PHP 版本探针,HTTP head 头部信息探针

终极操作手法-NSE

该操作手法主要应用在 vuln 漏洞信息探针方面,以及我们所需的必要信息探针,都需要应用这些第三方 NSE 脚本

以下脚本参考直接点击小结名即可到达指定网址

nmap-vulners

NSE 脚本使用有关已知服务的信息来提供有关漏洞的数据。请注意,它已包含在标准 nmap NSE 库中。

利用命令

需要注意的是该脚本依赖 nmap -sV 使用,所以在使用该 NSE 时,必须操作 -sV 参数

nmap -sV --script vulners

利用过程

由于信息过多这里只列出些许结果,具体结果请自行测试

┌──(rootLAPTOP-F5GS9SLQ)-[~]
└─# nmap -sV --script vulners 
Starting Nmap  ( https://nmap.org ) at  : CST
Nmap scan report for 
Host is up (0.0024s latency).
Not shown:  closed tcp ports (reset)
PORT     STATE SERVICE     VERSION
/tcp   open  ftp         vsftpd /tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol )
| vulners:
|   cpe:/a:openbsd:openssh:4.7p1:
|       SECURITYVULNS:VULN:     https://vulners.com/securityvulns/SECURITYVULNS:VULN:
|       MSF:ILITIES/OPENBSD-OPENSSH-CVE-/           https://vulners.com/metasploit/MSF:ILITIES/OPENBSD-OPENSSH-CVE-/       *EXPLOIT*
|       MSF:ILITIES/LINUXRPM-ELSA-/         https://vulners.com/metasploit/MSF:ILITIES/LINUXRPM-ELSA-/     *EXPLOIT*
|       CVE-        https://vulners.com/cve/CVE-
|       CVE-        https://vulners.com/cve/CVE-
|       SSV:            https://vulners.com/seebug/SSV:    *EXPLOIT*
|       CVE-       https://vulners.com/cve/CVE-
|       CVE-        https://vulners.com/cve/CVE-
|       MSF:ILITIES/SUSE-CVE-/      https://vulners.com/metasploit/MSF:ILITIES/SUSE-CVE-/  *EXPLOIT*
|       MSF:ILITIES/ORACLE-SOLARIS-CVE-/            https://vulners.com/metasploit/MSF:ILITIES/ORACLE-SOLARIS-CVE-/        *EXPLOIT*
|       MSF:ILITIES/GENTOO-LINUX-CVE-/      https://vulners.com/metasploit/MSF:ILITIES/GENTOO-LINUX-CVE-/  *EXPLOIT*
|       MSF:ILITIES/AMAZON-LINUX-AMI-ALAS-/           https://vulners.com/metasploit/MSF:ILITIES/AMAZON-LINUX-AMI-ALAS-/       *EXPLOIT*
|       CVE-        https://vulners.com/cve/CVE-
|       CVE-        https://vulners.com/cve/CVE-
|       CVE-        https://vulners.com/cve/CVE-
|       CVE-        https://vulners.com/cve/CVE-
|       MSF:ILITIES/SSH-OPENSSH-X11USELOCALHOST-X11-FORWARDING-SESSION-HIJACK/       https://vulners.com/metasploit/MSF:ILITIES/SSH-OPENSSH-X11USELOCALHOST-X11-FORWARDING-SESSION-HIJACK/   *EXPLOIT*
|       CVE-        https://vulners.com/cve/CVE-
|_      SECURITYVULNS:VULN:     https://vulners.com/securityvulns/SECURITYVULNS:VULN:

nmap-vulscan

该 NSE 引擎强大与 vulners,输出更为全面且详细,同样与 vulners 相同,依赖于 -sV 参数

install

1:git clone https://github.com/scipag/vulscan.git
2:cd vulscan/
3:ln -sf `pwd`/vulscan /usr/share/nmap/scripts/vulscan

利用命令

nmap --script vulscan/vulscan.nse -sV -oA nmap.vulscan

利用过程

由于输出信息过多,且详细,这里操作 -oA 以转换 .xml 格式为 .html 格式参考

xsltproc nmapVulsan.xml -o nmapVulscan.html

nmapAutomator

这是一个能使 Nmap 自动渗透测试的脚本工具,而非 NSE,之所以列出该工具,主要是为了方便且收集信息全面

这个脚本的主要目标是自动化每次运行的枚举和侦察过程,而不是将我们的注意力集中在真正的渗透测试上

  • 支持 nmap 基本操作手法
  • 支持 nmap NSE 操作手法
  • 枚举 SMTP
  • 枚举与测试域传送 DNS
  • 支持 nikto webServerExploit 扫描
  • 支持 SMB 操作
  • 支持目录探针
  • 支持漏洞探针

.....

不过若是实战情况,不推荐使用,主要用于测试参考

install

git clone https://github.com/21y4d/nmapAutomator.git

利用命令

./nmapAutomator.sh --host -t Recon -o Targetinfomation.xml

nmap-nse-scripts其他第三方研发 NSE 参考



原文链接:,转发请注明来源!