热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Metasploitable2系列教程:信息收集

Metasploitable2系统是一个基于ubuntu的系统。其设计的最初目的为安全工具测试和常见漏洞攻击演示。而在这篇关于Metasploit的教程中,我们将列举有关Metas

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系列教程:信息收集


推荐阅读
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Linux神奇漏洞:长按回车键70秒 即可轻松拿到Root权限
    一般来说获取系统root权限是很困难的,尤其是加密系统中,但西班牙安全研究员hectormarco、ismaelripoll发现,linux系统下只需按住回车键70秒钟,就能轻 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
author-avatar
mobiledu2502912677
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有