靶机:DC-2 192.168.56.103
攻击机:Kali 192.168.56.1
今天就来挑战DC-2了,我也是看网上的教程才过的这关,不过其中很多过程都有自己的理解和思路。这篇笔记主要用于个人学习笔记。如果有不对之处,很欢迎大佬们教我。
探寻靶机
使用nmap先把DC-2找出来
然后具体探测开放端口,这里是默认探测常开放的1000个端口
找到80端口,在浏览器输入http://192.168.56.103发现不能连接,而且url处地址自动跳转为http://dc-2
可以这里不允许ip地址访问吧,根据坐着提示,我们去修改hosts文件,让这个ip地址映射到这个域名,通过域名也可以访问。
然后就可以正常访问了
渗透过程
浏览下网页,然后就找到了flag1
翻译一波:你需要获取一个用户登录获取下一个flag。如果这个用户看不到flag就换个用户吧,所以并不用找出全部用户。可能普通的字典无法使用。(账号密码**的方式吧,又在内涵我?)。这种情况你可能需要cewl。
Cewl应该是指一个工具。CeWL是一款以爬虫模式在指定URL上收集单词的工具,可以将它收集到的单词纳入密码字典,以提高密码**工具的成功率。
网站并没有什么多余的内容,至于在哪登录都需要我们去寻找。这里我们先看一下CMS,CMS为wordPress。先来介绍一波。
WordPress是全球流行的博客网站,全球有上百万人使用它来搭建博客。他使用PHP脚本和Mysql数据库来搭建网站。
Wordpress作为三大建站模板之一,在全世界范围内有大量的用户,这也导致白帽子都会去跟踪 WordPress的安全漏洞,Wordpress自诞生起也出现了很多漏洞。Wordpress还可以使用插件、主题。于是Wordpress本身很难挖掘什么安全问题的时候,安全研究者开始研究其插件、主题的漏洞。通过插件,主题的漏洞去渗透Wordpress站点,于是WPScan应运而生,收集 Wordpress的各种漏洞,形成一个Wordpress专用扫描器。
我们这里主要使用wpscan工具
使用wpscan爆出用户
先查看用户信息吧,这里说明下啊wpscan的扫描原理,大概就是**大量url,通过正确的有相应响应的url来获取用名。如果网站对ip地址同时访问次数有限制,这种方法可能就不好用了。
使用cewl制作密码字典
这里爆出来3个用户,我们使用提示的消息,使用cewl来制作密码字典
看了一下默认情况下记录了两百多关键词
使用字典**密码
然后使用这个字典来**吧。这里**方式很多,找到后台登录页面了最好**。最方便的就是利用wpscan接着**了。
这里成功得到两个用户和密码。
jerry adipiscing
tom parturient
现在就差找到后台页面了
**目录
dirbuser和dirb的比较
我这里使用了两个工具,dirbuster和dirb。这两个工具各有优势。先看下结果吧。
就使用过程而言,Dirb很快,dirbuster就慢的多了。就结果而言,dirb要扫的多一点,而且要深一点。
先来对比下两方的字典是不是有很大的区别。
Dirb的common.txt,中间有4600行数据,细看了下,都是一级目录(没有用/隔开的数据),然后dirb扫描的结果却有2到3级后的目录,也许就这是递归查询吧。速度这么快也是没想到。
看了下dirbuster的directory-list-1.0.txt
确实多,多了三倍有于,但时间上感觉却远不止3倍。
所以总结下,在kali上视乎dirb更好用。但是dirbuster也有不可取代之处,如可以配置文件后缀名,通过gui可以直观看到文件结构。
说了这么多,先打开我们扫描的目录看看
有用的目录有http://dc-2/wp-admin/
http://dc-2/wp-includes/
这里我们也总算知道找到了登录页面,后面个这个页面似乎等下能帮我们打开一些文件。
先使用前面**出来的用户名密码登录一下
Jerry用户就能找到flag2
可怜的tom连pages功能都没有
先看看flag2吧。
来吧翻译一波:如果你不可以通过exploit wordPress获取简单的途径,这里还有另外一条路,希望你能找到它。
可能就是使用msf利用wordPress的漏洞直接获取shell这条路径吧。
看来这条不能走通了。但秉着学习的态度,我们还是来尝试一下。
尝试msf
启动msf,搜索wordPress
其实收到不少,看下有什么用
不出意外的失败而归。
没有捷径可走,那我们就尝试一下网页有没有上传点什么。
寻找上传点
Jerry用户拥有上传功能
在上传过程中发现了前端过滤
后缀名过滤
改为jpg后缀后还是不能上传,难道文件头文件内容也会检查
这个时候我才想起上传一张图片
发现图片也上传不了,没有权限写如文件。那我想弱弱文句,留这个功能干嘛。
转换端口
如果在这个网页上找不到更多的利用方式,就是说明在80端口希望不大的情况下,我们可以去尝试下其它端口,前面我们用的默认扫描,只会扫描常用端口,现在我们把所以端口扫描完。
发现一个7744端口,具体一看
发现这是个ssh端口
使用我们前面登录的用户连接上来
发现只有tom可以登录,tom站了起来!
绕过限制shell
这个能运行的命令少的可怜呀,我们要想办法绕过这个rbash
先收集一下现在能运行的命令
打算修改环境,但是没有权限
我们通过vi获取一个不同的shell,然后export发现系统变量没了前面的权限
vi怎么绕过rbash的和后面怎么使用git提权的方法都在这个连接里。
https://www.freebuf.com/articles/system/188989.html
我们就可以成功修改了,加一个/usr/bin好像不够
再加一个/bin/
这下够了
后面我去测试了下,只添加/bin时也可以执行这些命令,但是不能执行whoami
我们这里大概也能猜到这些命令在什么环境下可以用了。为了用全命令,所以我们添加了这两个环境。
也可以使用功能下面命令看看两个环境中的命令有什么不同
查看flag3
回到flag3,翻译一波,可怜的老汤姆老是追杰瑞,tom应该su所有它所造成的压力。
外国人的语法真难理解。大概就是tom用su切换到jerry上吧。前提是tom有密码。这不是巧了吗,我们真有密码。
cat /etc/passed
可以看到确实存在Jerry用户。
Jerry别怪我无情了,su Jerry用户
注意这里其实我还是在tom目录下,没有什么权限,
回到自己目录,发现下面有一个flag4
查看flag4
翻译一波:
很高兴你能走到这里,但你还没有到家呢。你仍然需要获得最后的flag。现在开始,你甚至没有提示。加油吧。
提权
先看下哪些命令有suid权限,发现sudo
输入sudo -l查看sudo能执行什么命令
发现可以执行/user/bin/git命令
我知道的是在输入git help status时,会进入一个页面,然后输入!/bin/sh可以进入命令执行页面,使用什么用户进入这个页面,这个页面就拥有什么权限区执行。这里我们拥有sudo,可以暂时成为root用户,但是已经够我们提升为root用户了。
我们使用sudo git help status和 !/bin/sh便可提权
在git manual界面输入!/bin/sh
便实现提权
查看final-flag.txt
最后翻译一波:恭喜恭喜,感谢感谢。哈哈哈!
总结
本关主要是利用wordPress框架的漏洞,这个框架主要是用来搭建博客的,使用wpscan专门利用该cms的漏洞。通过wpscan查找到服务器的关键用过tom和Jerry。可以想想自己的博客一般都会发布和自己兴趣有关的东西,某些东西可能就会暴露密码,通过cewl爬去网页获取关键词密码。通过wpscan利用爬取的字典,**出密码。然后使用密码登录。发现其中一个用户的功能更多,并从中获取了敏感信息。
经过漏洞的挖掘,和msf上面已经存在的漏洞探测,发现这个网站可能并没有好利用的漏洞。我们便转换思路,寻找其它端口。通过扫描所有端口,发现了一个开放ssh的端口,加上我们前面获取的密码,我们便可以成功登录ssh服务。登录后发现我们的shell受到了很大的限制。只能运行有限命令如vi。我们便通过vi绕过受限shell,修改了环境变量,给我们添加了很多命令的使用,我们便使获取了该用户的基本全部shell能力。
通过su我们可以获取其它用户的敏感信息。最终我们找到sudo和git的缺陷,成功利用这两个命令提权为root权限。