内容简介:Test Lab是一家名为Pentestit的俄罗斯公司所提供的系列在线靶场。不同于截止目前,Test Lab以数月1期的速度更新到了第12期。早前已有网友发表了第10期的过关Write up。这里翻出官方推荐的
前言
Test Lab是一家名为Pentestit的俄罗斯公司所提供的系列在线靶场。不同于 Hackthebox 、 Vulhub 等各类在线/离线靶机,Test Lab通过模拟真实企业内网环境,为渗透测试者提供了免费练习平台。Test Lab中预留了若干token,参与者提交token标志着完成了特定渗透步骤。
截止目前,Test Lab以数月1期的速度更新到了第12期。早前已有网友发表了第10期的过关Write up。这里翻出官方推荐的 第九期过关俄文Write Up (来自网友alexeystoletny),翻译、校正、优化后搬运给大家。旧酒犹香,别看是16年的老环境,个人觉得还是内容丰富,颇具特色的。以下开始正文,阅读时间预计1小时:
2016年5月20日,Pentestit启动了一个全新的第九期Test lab(模拟了一个企业网络)供渗透测试实战练习。
感谢Pentestit实验室,我们可以随时了解最新的漏洞并向专业人士(那些每天接触真实网络的渗透测试者)学习,从而有机会成为真正的渗透测试者。
到2016年6月1日,本期Test lab中所有13台机器和14个FLAG全部被攻克。为了帮助那些错过的人们了解当前漏洞和渗透测试世界,接下来我将记录完整的过关过程。
过程很费力且文字叙说起来必然冗长,但是我尽力描述得有趣些。
连接到实验室
在开始之前,你需要 注册账号 ,并 设置VPN ,连接到虚拟CyBear32C公司网络。整个测试可以在 Kali Linux 中完成。
我们开始测试
注册和连接后,我们看到以下网络拓扑图:
通过VPN我们可以访问公司网络唯一的外部IP 192.168.101.8(模拟现实中的Internet网关)。像往常一样,需要从枚举开始,特别是通过端口扫描来确定可供外部访问的内部子网服务。
首先是快速端口扫描: nmap -v -n -sV 192.168.101.8
如你所见,我们可以访问来自不同内部主机的一些服务(请参阅网络拓扑图),最有可能的是mainsite主站服务器(端口80),mail邮件服务器(25,8100)和ssh服务器(端口22)等。此外,还有https服务和代理服务器。
MAINSITE
访问http://192.168.101.8/:
我们被自动重定向到域名 www.cybear32c.lab
Location: http://cybear32c.lab显然这是一个该公司网站上的虚拟主机。
在/etc/hosts中手动添加本地DNS解析后重试:
可以正常访问网站。首先使用whatweb和dirb工具来帮助获取网站信息和发现子目录(也可以使用其他扫描程序,例如nikto):
我们看到所有请求的响应代码都是403,所以初步判断该站点受到WAF保护。尝试替换UA为默认用户的请求来源-浏览器,发现了一些有用的页面:
网站使用的是WordPress。访问/admin页面,WAF会将我们带到一个已关闭的wp-login.php:
对于Wordpress站点,wpscan是一个很棒的工具。它允许你检查WP站点是否有存在漏洞的插件。我们尝试扫描网站(记得指定浏览器UA),很快检测到了几个问题,其中包括易受 SQL 注入的插件wp-symposium v15.1。
接着,尝试在参考链接的帮助下利用这些漏洞。但不幸的是SQL查询payload并不能通过WAF。我们需要绕开它……
WAF绕过
通常,许多Web应用程序防火墙可以使用技巧来绕过:添加注释或更改查询中的大小写(例如vErSiOn替换Version)。绕过WAF是一门高深的学问,可以整出许多书籍和文章,在这不多扯了。我们换个思路:
设置浏览器HTTP代理,发现代理需要认证(火狐浏览器无法直接支持):
从网站“Contact us”栏目可以获取两个用户名(b.muncy和r.diaz),所以尝试爆破密码:
祝你好运!现在我们将再次尝试通过代理进入网站并登录。情况已经有所改变了(该网站也可以通过内部IP 172.16.0.5访问,但其他内部服务仍然不可用):
网站不再提示非法行为,我们成功绕过WAF。
利用Wordpress插件中的漏洞
现在,你可以更方便地浏览网站和查找潜在漏洞。你可以直接去做,但使用Burp Repeater会更方便。
首先,需要通过代理链配置代理连接:
在“User Options”选项中添加Upstream Proxy Servers,输入主机信息,将浏览器设置为Burp代理并尝试使用wpscan找到各种漏洞。(其他不直接支持代理认证的程序都可以通过Burp代理来实现代理)
尝试了几个选项后,我们找到了一个SQL注入漏洞:
GET http://cybear32c.lab/wp-content/plugins/wp-symposium/get_album_item.php?size=version(); — HTTP/1.1
获取 MySQL 版本号 :5.5.49-0 + deb8u1
事情变得容易起来——sqlmap可以直接利用这个漏洞:
因为注入点在列名中(而不是像往常一样在值中),所以在payload(’ — ‘)之后指定后缀很重要的,这样sqlmap就会专注于这种类型的注入。否则,sqlmap可能会错误地将注入类型定义为盲注,从而使得获取数据变得困难和冗长。
我们使用–dbs选项获取可用的数据库:
然后是tables(-D tl9_mainsite –tables)
获取wp_token表数据:
BYPASS Token
在端口扫描期间,还在443端口上找到了https服务。粗略分析和使用dirb爆目录没有发现有用的东西:
显然https服务内容仍在开发中且很长时间没有更新。让我们来看看2014年轰动一时的心脏滴血漏洞:
漏洞存在!可以使用 此处 脚本进行利用。在阅读了大量有用的信息和数百次尝试之后(重要的是不要轻易放弃),我们发现了:
有人访问下载了旧的备份。我们也可以这样做:
得到token和一些新帐户和密码哈希。我们尝试从哈希中恢复密码(hashcat中1600 Apache apr1)
我们从mainsite获得了b.muncy密码,以及其他帐户的其他密码。
需要强调的是记录所有找到的凭据密码非常重要,因为用户在企业网络不同服务中往往会使用相同的密码。
攻击SSH
不幸的是,到目前为止找到的密码都无法登陆邮箱(通常获取邮箱权限会给深入公司网络提供很大的帮助)。但是没关系,我们可以在端口22上尝试连接SSH:
一个很不寻常的情况:这里使用了自定义的身份验证模块,系统首先请求“SSH密码”,然后是“二次密码”。
我们尝试将找到的所有凭据组合也无济于事。
尝试登陆邮件和SSH都没有预期的结果,也没有其他可用的服务,我们一定是错过了什么。SSH很重要,我们需要死磕它,因为我们可以通过它访问公司网络内部从而继续前进。看看SSH Banner信息里的作者:Pam©krakenwaffe ,不像常见的,谷歌一下能在Github上找到krakenwaffe开发者帐户(cybear32c也是),很有趣!
在某个David的commit中可以发现mypam.c文件,位于: github.com/krakenwaffe/eyelog/blob/master/mypam.c 。很明显这是我们尝试登录并请求“密码”的模块。
进入根目录下,看看下一步是什么……注意到了下面这段代码:
我们看到输入的密码会与daypass%d%d比较。我们在编写文档的这一部分时尝试替换当前值,即“daypass80”:
它仍然不起作用。然后我们记住了我们的开发者的名字,他们通过Github与David Nash分享了密码。我们试着去d.nash:
事实证明!我们得到了SSH服务器。让我们看看上面有什么:
除了token之外,在.ssh文件夹中我们还可以找到用于连接到其他服务器的私钥(你可以在known_hosts文件中找到,肯定会在以后派上用场)
现在我们获得了下一次攻击的跳板,CyBear32C的整个企业网络在我们面前展开。
下一步
使用SSH后,你可以访问网络上的所有其他计算机。首先,可以用nmap扫描从在SSH服务器上得到的三个子网,检查可用的服务。
你可以转发端口并尝试攻击,几乎所有内部资源(Windows机器和开发服务器除外)都可用于攻击。
端口转发
有很多方法可以通过SSH连接实现对内部网络的便捷访问。
首先,我建议研究文章 “Pivoting或端口转发” 。
此外,了解标准SSH客户端的功能非常有用:想要端口转发只需向命令行添加参数而无需重新启动会话。
输入以上命令后,我们将通过127.0.0.1上的端口8086访问服务器192.168.0.6(photo)的端口80:
照片托管和文件上传
照片服务器仅有一个文件上传表单与用户交互(它确实存在漏洞)。
从开发人员的角度来看,要使上传文件安全非常困难,因为攻击媒介太多了(文件扩展名验证绕过,MIME类型或处理文件的库中的漏洞,或竞争条件,或任何其他问题)。
同时,运行dirb以查看Web服务器上有哪些隐藏目录。
上传目录可直接访问,我们将尝试上传正常的图像并确保文件保存在此文件夹中:
google.png可以访问。请注意,该网站显示图像的大小,显然已经解析了。试图下载一个 PHP 文件:
修改MIME类型和扩展名并没有什么作用:
有趣的是,这给我们提供两个线索:第一是文件可能在加载后删除,所以可以在删除前访问它,第二,我们需要服确保服务端检查这张照片是否存在(对于getimagesize()你可以通过添加GIF头等欺骗)。我们使用file.jpg再次尝试:
文件已成功加载并且可以访问:
但不幸的是,它没有被执行。因为php后缀名并没有解析,所以我们尝试使用不同的扩展名下载此文件:.htaccess,.php5,.phtml和.pht , 发现最后一个有效!它执行了:
现在你需要一个shell。为此,请在SSH服务器上监听端口并访问该文件:
成功获取连接:
你可以在上传文件夹里隐藏子目录找到token:
顺便可以查看下源代码:
我们看到该文件首先存储在一个文件夹中然后只检查,也就是说,除了我们利用的漏洞之外,还存在竞争条件。除了token和服务器上的代码之外,我们发现没什么有趣的,下篇继续!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beautiful Code
Greg Wilson、Andy Oram / O'Reilly Media / 2007-7-6 / GBP 35.99
In this unique work, leading computer scientists discuss how they found unusual, carefully designed solutions to difficult problems. This book lets the reader look over the shoulder of major coding an......一起来看看 《Beautiful Code》 这本书的介绍吧!