Metasploitable 2 系统是一个基于ubuntu 的系统。其设计的最初目的为安全工具测试和常见漏洞攻击演示。而在这篇关于 Metasploit 的教程中,我们将列举有关 Metasploitable 2 这个系统的相关漏洞,并利用漏洞,来收集和获取我们所需要的信息。

在数学或计算机科学中的枚举是指,在一组中一一列出其中的元素。但在黑客术语中,枚举通常是指将我们所要收集的信息枚举出来。例如:我们需要枚举出数据库的用户名甚至密码,枚举系统的文件共享,枚举服务器当前状态,枚举web目录,群组及当前网络主机存活量等信息。在枚举过程中,我们还将收集到其它可利用的网络相关信息,这对于我们后续的渗透具有重要意义。对于 Metasploitable 2 最重要的是端口扫描和指纹识别的枚举信息的收集。端口扫描是用来探测服务器或主机开放的TPC和UDP端口的。而指纹识别,则是用来确定这些服务版本等基本信息的过程。在本篇文章中,我们将使用鼎鼎大名的扫描神器 Nmap ,来实现对 Metasploitable 2 的信息收集。除此之外,我们还将结合另一款枚举工具 enum4linux 来一起帮助我们完成信息的收集工作。enum4linux 是一款用于枚举 Windows 和 Samba 主机信息的工具。

从枚举过程中检索到的信息,例如,操作系统版本和正在运行的服务,我们将在这些服务中寻找到已知的漏洞。并通过开源的漏洞库(OSVDB) 和 已被公布出来的 CVE 来进行漏洞的利用!最后,我们还将使用 kali 下的 OpenVAS 来对目标主机进行一次全方位的漏洞扫描。

Metasploitable 2 的枚举与端口扫描

在这部分的 Metasploitable 2 枚举的教程中,我们将枚举正在运行的服务,帐户并同时执行端口的扫描动作。我们将使用 nmap 扫描及探测虚拟机的端口开放状态和开放服务的指纹信息。在本篇文章中,我们主要集中在网络信息的枚举收集上!

现在,让我们来打开已经安装好的 Metasploitable 2 虚拟机。并进行初始登陆,登录名及密码均为 msfadmin !登陆成功后,我们可以使用 ifconfig 命令来查看我们当前虚拟机的 IP 地址。同样,我们也可以在 kali 上使用 netdiscover 来扫描整个网段的 IP地址,以此来锁定目标的 IP !使用命令如下:

Netdiscover –r 192.168.111.0/24

以上命令会列举出所有处在 192.168.111.0 ~192.168.111.255 范围内的存活主机。当然了,如果想取得 Metasploitable 2 的IP,则必须保证你们同处一个地址段内!

Nmap 的端口及服务扫描

在这部分我们将使用 NMap 来进行扫描任务。我们将会使用 TCP SYN 的扫描方式,众所周知 SYN 是一种相对隐蔽的扫描方式,原因在于它并不向目标主机建立完整的三次握手连接。这里简单概述下, TCP 扫描的过程。TCP扫描首先会向目标服务器发送一个 SYN 包,当目标的服务端口处于开启时,则 nmap 收到一个 SYN-ACK 的响应包。如果我们发的 SYN 包在第一次发送时就没有获得响应,那么可以猜测目标防火墙可能对我们的探测进行了过滤或则并未开启服务。最后Nmap 则会向目标再次返回一个 ACK 包从而完成一次完整的 TCP 连接!

当我们使用Nmap进行 SYN 或其它形式的扫描时,如果我们不指定端口,那么 Nmap 默认会从所有的 65535 个端口中,选出其中 1000 个最为常见的端口作为扫描目标来进行探测。如果你怕遗漏一些重要信息我们可以使用 -p- 这个参数来实现对 所有 65535 个端口进行扫描!例如:

nmap -sS -p-[目标 IP 地址]

Tip:值得一提的是虽说 SYN 扫描是一种相对隐蔽的扫描方式。但是它只对那些比较老的防火墙有效,而对于如今技术不断更新及趋于完善的防火墙,它并不隐蔽!

端口开放就意味着有漏洞可被利用吗?

以上的命题,显而易见是错误的。端口开放并不意味着其底层的软件就存在可利用漏洞,我们还需结合其操作系统及运行服务的当前版本号。因此收集版本信息,对我们后续渗透也至关重要!下面 Nmap 将很好的帮我们解决这些问题。在 Nmap 中,我们可以使用 -sV-O 参数来分别获取到目标主机的 版本及操作系统版本信息。 除此之外其实我们还可以使用 -A 参数来取代 -O 参数,它同样可以获取版本信息,但它是基于 TCP 的全连接扫描,因此并不安全!命令如下:

Nmap –sS –sV -O [目标 IP 地址]

当我们成功执行以上扫描后,我们可以看到一下返回结果:

从以上结果,我们可以很清晰的看到,目标系统开放了很多危险端口及应用服务。并且详细列举出了目标操作系统的版本为 Linux 2.6.9 – 2.6.33 我们可以看到主机正在跑的服务有: SSH 其使用的是 OpenSSH 这款软件,还有 telnet 服务, Apache 2.2.8 web服务,SQL server 和其它各类服务。下面让我们来做个简单的总结:

Vsftpd 2.3.4 on open port 21

OpenSSH 4.7p1 Debian 8ubuntu 1 (protocol 2.0) on open port 22

Linux telnetd service on open port 23

Postfix smtpd on port 25

ISC BIND 9.4.2 on open port 53

Apache httpd 2.2.8 Ubuntu DAV/2 on port 80

A RPCbind service on port 111

Samba smbd 3.X on port 139 and 445

3 r services on port 512, 513 and 514

GNU Classpath grmiregistry on port 1099

Metasploitable root shell on port 1524

A NFS service on port 2049

ProFTPD 1.3.1 on port 2121

MySQL 5.0.51a-3ubuntu5 on port 3306

PostgreSQL DB 8.3.0 – 8.3.7 on port 5432

VNC protocol v1.3 on port 5900

X11 service on port 6000

Unreal ircd on port 6667

Apache Jserv protocol 1.3 on port 8009

Apache Tomcat/Coyote JSP engine 1.1 on port 8180

Nmap UDP 扫描

到目前为止,我们一直在介绍关于 TCP 的扫描。下面让我们介绍关于 UDP 的扫描!我们可以使用以下命令:

nmap -sU 192.168.111.128

同样我们可以使用 -p 参数,来指定我们要扫描的端口。相对于 TCP 扫描,UDP 扫描会慢于 TCP 。经过一小会儿的等待,Nmap 返回了以下 UDP 的扫描结果:

53/udp open domain

111/udp open rpcbind

137/udp open netbios-ns

2049/udp open nfs

Tip:UDP扫描相对于 TCP ,可能会造成大量的误报。原因在于,当目标主机的端口处于关闭状态时,它只会返回一个 ICMP 端口不可达的信息。这种扫描类似与 TCP 的 SYN 扫描方式!由于包的丢失,在很多扫描器中对于 UDP 的扫描默认都认为其端口是开放的。当我们没有获取到 ICMP 不可达的提示时,则说明目标系统的 UDP 端口是出于开放状态的。

Metasploitable 2 用户枚举

为了获取目标虚拟机上的用户信息,接下来我们将使用到 Nmap 的一个脚本 smb-enum-users 。使用命令如下:

nmap –script smb-enum-users.nse –p 445 [目标主机]

查询结果如下:

从扫描结果我们可以看到 Metasploitable 2 上大量的用户信息。其中很多服务账号和 admin 账号,都叫 msfadmin 这个用户名。下面让我们看看使用第二种方法,检索列表中的用户帐户,就是使用 Samba 服务器上的一个空会话的方式。

利用 rpcclient 空会话枚举用户账户

rpcclient 是用于执行客户端MS-RPC功能的Linux工具。空会话是指,连接一个 samba 或 SMB server 不需要用户名及密码验证,因此叫做空会话!支持空会话,是由系统默认的。但是从 Windows XP SP2 和 Windows Server 2003 开始系统就不支持空会话的连接了!连接使用的是445端口,因此目标主机也开放着445端口。当我们成功进行空会话连接后,我们就可以输入相应的命令,来查询当前主机的端口开放状态了!

现在让我们打开一个新的 terminal 窗口,使用 Metasploitable 2 samba server 来建立一个空会话连接。命令如下:

rpcclient –U “” [目标 IP 地址]

-U 参数用来指定一个空用户,后面跟上 Metasploitable 2 VM 的IP地址。当我们按 enter 后,会要求你输入密码我们继续回车即可!

接着我们执行以下命令:

rcpclient $> querydominfo

通过 querydominfo 命令,我们获取到了 domain, server 和目标系统的 用户总数 还有一些其他的信息。从返回结果我们得知,目标系统有 35 个用户下面让我们来枚举出他们!命令如下:

rcpclient $> enumdomusers

可以看到,此时已经列举出了所有可用用户账户。现在让我们使用 rpcclient ,利用已获取的用户账户信息,来查询用户更加详细的信息!命令如下:

rcpclient $> queryuser [用户名]

我们来查询 msfadmin 这个账户:

rcpclient $> queryuser msfadmin

这将返回关于服务器上的配置文件路径信息,主驱动器信息及密码相关的设置等。如果想了解更多的关于 rcpclient 的使用方法,可以使用 help 来查看。

枚举工具之 enum4linux

Enum4linux 是一款用 Perl 语言开发的工具,它主要用来枚举 Windows Samba 主机。下面让我们来看看如何在 Metasploitable 2 下使用它。

Usage: ./enum4linux.pl [options]ip

-U get userlist 获取用户列表
-M get machine list* 获取机器列表
-S get sharelist 获取分享列表
-P get password policy information 获取密码策略信息
-G get group and member list 获取组成员信息
-d be detailed, applies to -U and -S 更加详细信息,结合 -U 和 -S 使用
-u user specify username to use (default “”) 指定用户名
-p pass specify password to use (default “”) 指定密码
-a Do all simple enumeration (-U -S -G -P -r -o -n -i) 执行所有枚举操作
-o Get OS information 获取系统信息
-i Get printer information 获取打印机信息

在基本了解后,现在我们在 Metasploitable 2 上执行如下命令:

enum4linux 192.168.111.128

可以看到 enum4linux 为我们获取了许多有用的信息,我们得到了一个可用的共享:

并且还列出了可用的账户信息:

还有有关操作系统的信息:

到此为止,我们已经收集到了目标操作系统Metasploitable 2 的用户账户,开放端口及运行服务的版本等信息!同时我们还获取到了比较机密的
密码策略 信息。接下来我们就可以,对这些获取的信息进行评估分析,为我们下一步的渗透打下良好的基础。

Metasploitable 2系列教程:信息收集的更多相关文章

  1. Kali信息收集系列:(都是我以前的笔记整理了一下,就没加水印,习惯就好)

    好几天没发微信公众号了,今天一起发下.(最近有点事情) 前些天老业界的一位朋友问我一些Safe新时代信息收集的问题 逆天虽然好多年不干老本行,但隔段时间都会关注一下 于是就花了点时间整理了一下,你们就 ...

  2. 信息收集工具recon-ng详细使用教程

    前言: 最近在找Recon-ng详细一点的教程,可是Google才发现资料都很零散而且不详细,所以我打算具体写一下.Recon-ng在渗透过程中主要扮演信息收集工作的角色,同时也可以当作渗透工具,不过 ...

  3. spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息

    spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息 本文主要内容: 1:管理页面主机名及访问ip信息提示修改 2:获取当前注册中心的服务列表及每个服务对于的服务提供者列表 ...

  4. metasploit 教程之信息收集

    信息收集 信息收集范围很大,可以从不同层面,不同维度进行信息收集. 系统补丁 我们知道目标机器缺少什么补丁就意味着存在与其对应的漏洞.我们可以利用这些漏洞来达到我们渗透攻击的目的. # 使用的模块 u ...

  5. web渗透系列--信息收集

    信息收集对于渗透测试前期来说是非常重要的,因为只有我们掌握了目标网站或目标主机足够多的信息之后,我们才能更好地对其进行漏洞检测.正所谓,知己知彼百战百胜! 信息收集的方式可以分为两种:主动和被动. 主 ...

  6. [统计信息系列7] Oracle 11g的自动统计信息收集

    (一)统计信息收集概述 在Oracle 11g中,默认有3个自动任务,分别是:自动统计信息收集.SQL调优顾问.段空间调整顾问,查看方法如下: SQL> SELECT CLIENT_NAME,T ...

  7. 内网横向渗透 之 ATT&CK系列一 之 信息收集

    前言 靶机下载地址:ATT&CK 拓扑图: 通过模拟真实环境搭建的漏洞靶场,完全模拟ATK&CK攻击链路进行搭建,形成完整个闭环.虚拟机默认密码为hongrisec@2019. 环境搭 ...

  8. 【ASP.NET Identity系列教程(一)】ASP.NET Identity入门

    注:本文是[ASP.NET Identity系列教程]的第一篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  9. 【ASP.NET Identity系列教程(二)】运用ASP.NET Identity

    注:本文是[ASP.NET Identity系列教程]的第二篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

随机推荐

  1. Drawing Arc Using ArcSegment in XAML

    We can use the Arc XAML element to draw arcs in XAML. Besides drawing arcs using the Arc element, we ...

  2. webpack练手项目之easySlide(三):commonChunks(转)

    Hello,大家好. 在之前两篇文章中: webpack练手项目之easySlide(一):初探webpack webpack练手项目之easySlide(二):代码分割 与大家分享了webpack的 ...

  3. Code[VS]1021 玛丽卡题解

    Code[VS]1021 玛丽卡题解 SPFA Algorithm 题目传送门:http://codevs.cn/problem/1021/ 题目描述 Description 麦克找了个新女朋友,玛丽 ...

  4. window 安装Mysql 5.6 发生系统错误 1067

    问题: #安装MySQL服务:mysqld -install MySQL5 D:\Program Files\mysql_5.6.24_winx64\bin>mysqld -install My ...

  5. Resharp最新破解方法

    ReSharper是一个JetBrains公司出品的著名的代码生成工具,其能帮助Microsoft Visual Studio成为一个更佳的IDE.它包括一系列丰富的能大大增加C#和Visual Ba ...

  6. DOM的概念及子节点类型【转】

    前言 DOM的作用是将网页转为一个javascript对象,从而可以使用javascript对网页进行各种操作(比如增删内容).浏览器会根据DOM模型,将HTML文档解析成一系列的节点,再由这些节点组 ...

  7. Ubuntu root密码修改

    安装完Ubuntu后忽然意识到没有设置root密码,不知道密码自然就无法进入根用户下.到网上搜了一下,原来是这麽回事.Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码.我们可 ...

  8. mysql 存储过程 删除重复

    DELIMITER $$ CREATE PROCEDURE `delRepeatCA`() BEGIN DECLARE tally INT DEFAULT 0; SELECT COUNT(rs.c_C ...

  9. 1071. Speech Patterns (25)

    People often have a preference among synonyms of the same word. For example, some may prefer "t ...

  10. Qt 按钮事件不响应

    在Qt中,我们设置好按钮的相应事件,连好信号槽,声明什么的也没什问题,但为什么点击按钮就是没有反应,检查了半天终于发现原来是子面板上也有一个相同名称的按钮,一般来说两个面板不为父子关系的时候,分别在不 ...