Sky's blog

江苏第六届省赛线下AWD感触

字数统计: 2,009阅读时长: 7 min
2017/10/27 Share

比赛过程

上午场

上午给了我们2台服务器,分别是一台Linux和一台windows
linux开了2个服务,一个是80端口的php网页,一个是18888端口的疑似pwn服务
windows开了4个服务,80端口的展示页面(应该没用),88端口的jsp服务,89端口的php服务,445端口的smb服务
我们进入比赛后:
首先登入了linux服务器,修改了密码,备份了文件,在php服务中,只找到一个获取shell的点,然后果断注释了一波。这里也是我们上午收分的关键点,有大概4-5支队伍,刚开始并没有及时注释,被我们拿了一波分数,放了一波表哥的框架shell,但是听说这次crontab没有开启?而且目录没有写权限,导致后期他们直接killall python就可以杀掉我们的马,所以最后我们真正维持到比赛结束的也只有2台机子。另一点就是这次比赛的蛇皮flag提交方式,是我们框架内没有想到的,整合框架大概也耗费了一个小时多。
然后windows服务器没有给账号密码,我们都比较懵逼,海德拉爆破远程登录密码无果,我们的确找到了89端口的任意文件上传服务,但是可执行的php不是forbidden,就是无法解析,我们比较懵逼了,在88端口的jsp服务上扫描了一通,也没找到可疑页面,445端口开放的smb可以说是最亏的了,我们一直受到永恒之蓝的思维定式,或者445端口就是无用开放,就没有去访问,也因为我们的知识有局限性,并不知道smb服务(听说这是上午场的关键,比赛结束后和淮工大佬们交流才知道,可以任意文件上传,他们传了asp的大马)
科普一下smb:

1
2
3
4
5
SMB更适合的方式是用户级的认证方式,区分并认证每个访问的用户,并通过对不同用户分配权限的方式共享资源。
对于工作组方式的计算机,认证用户是通过本机完成的,而域中的计算机能通过域控制器进行认证。
当 Windows计算机通过域控制器的认证时,它可以根据设置执行域控制器上的相应用户的登录脚本并桌面环境描述文件。
SMB共享资源:每个SMB服务器能对外提供文件或打印服务,每个共享资源需要被给予一个共享名,这个名字将显示在这个服务器的资源列表中。
然而,如果一个资源的名字的最后一个字母为$,则这个名字就为隐藏名字,不能直接表现在浏览列表中,而只能通过直接访问这个名字来进行访问。 在SMB协议中,为了获得服务器提供的资源列表,必须使用一个隐藏的资源名字IPC$来访问服务器,否则客户无法获得系统资源的列表。

而上午比赛的SMB就是无认证,直接共享资源,我们因为迟迟没有发现这个洞,一上午至少被打了100分
然后就是比较亏的89端口的php服务,我在比赛快结束的时候,无意上传了一个错误文件,爆出了源码(到底怎么出的源码?喵喵喵)
发现白名单限制中,除了可以上传jpg以外,还可以上传.htaccess文件,意味着可以绕过forbidden,上传图片即拿shell的问题。但是由于发现的太晚,别的队伍基本上已经把洞补完了,我们再想尝试就没有办法了,而且我们这个89服务,也是在10点左右一直被打挂了,队友认为恢复血亏(当时我们没找到漏洞,怕恢复又宕了,就白损失分数,就没恢复)。
总之一上午就亏在了windows这台服务器上,我们总共应该是被打掉了300分左右。

下午场

下午给了我们2台linux服务器
第一台linux上放的是jsp文件上传,下载的服务
第二台linux上放的是phpcms v9.6
我们同样是上午的操作,备份源码,修改密码,然后我们首先发起攻击的是phpcms,因为之前做过类似的渗透题,我们写了一键注入getshell的脚本,上去打了16个队伍,但是收到shell的大概只有4~5个,我们果断运行了表哥的框架,植入了shell,下午因为有了写权限就比较开心了一点,但是因为比赛赛制的原因(后面细说),我们的shell根本没办法请求flag。。。。。
然后就是后面的jsp,我们因为没有了解过jsp,导致连危险点的源码都看不懂,后期一直靠着重放别人的马来获取shell,打的别提多憋屈了。。。
后来结束后才知道,第一台linux上有一个manager文件,登录密码就是服务器的初始密码,别的队一直在登我们的这个服务,然后留war包,留shell,总之在jsp上的劣势暴露无遗。

比赛赛制

这次的比赛赛制真的该好好吐槽。
1.首先大家都是root权限
这就导致了一堆骚操作,许多队伍直接把系统指令删除,例如wget和curl,导致我们无法用他们的服务器去按规定请求flag,甚至有的把php和python的指令都删了。
然后就是他们有的队伍直接设置了iptables,即便我们拿了他们服务器的shell,也无法和flag服务器建立连接,获取flag,这特么还玩卵??主办方也没人管。
还有就是直接设置权限限制,禁止文件更改,上传什么的想都别想???主办方依旧不管。
2.垃圾的主办方
主办方赛前说的check好像多强一样,实际上整场比赛打下来,我感觉一次check都没有,只要你的网页能访问就行了,比如一个上传的网页,他只check你的网页在不在,不check上传能不能成功????这叫什么垃圾check?

自我反思

不管赛制怎么样,我认为自身还是存在极大的缺陷问题
1.首先是对windows的服务并不了解,看到445端口想到的是永恒之蓝而不是Smb,百度上都写的很清楚
SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445,关于NETBIOS协议这里就不介绍了。
2.然后是对jsp的代码一无所知,像tomcat起的web服务,可能存在WEB-INF/web.xml等泄露都一无所知(上次安恒线下赛)
这次也是对jsp的漏洞点都不懂,代码看的就很费劲,导致没有及时的发现问题
3.没有写出一个好的记录流量的工具,我们这次比赛全程都是依靠看服务器日志分析流量,导致post怎么做到的都不清楚,所以一直很被动
4.比赛刚开始的时候手忙脚乱,没有镇定下来分析,可能是第一次比赛(希望XDCTF的线下能打的稳一些),然后上午刚开始的时候,发现了别人的漏洞点,利用时只获取了一次flag,没有及时留下shell,经验不足

后记

最后表哥还是想到了骚套路,就是在别人的机子上挂上socket5代理,然后我们本地直接请求flag就好了233333333333,算是后知后觉吧~
无论怎样,技不如人吧,还是希望后天去XDCTF一路顺风!

点击赞赏二维码,您的支持将鼓励我继续创作!
CATALOG
  1. 1. 比赛过程
    1. 1.1. 上午场
    2. 1.2. 下午场
  2. 2. 比赛赛制
  3. 3. 自我反思
  4. 4. 后记