美文网首页
Vulnhub Rickdiculously Easy Walk

Vulnhub Rickdiculously Easy Walk

作者: JohnRykZen | 来源:发表于2020-02-05 21:52 被阅读0次

    Rickdiculously Easy

            光听名字就知道是入门级别的机器了。这个机器跟一部动画有关,如果你有看过的话就更好玩了,我没有看过,所以可能作者的有些point我get不到。总结就是一台新手向的CTF机器。

    What will cover:

            CTF , SSH , Command Injection Execution , Online password attack , wordlist generation (using crunch) , Bash CGI Code Review , Shellshock ?

    Start:

              Nmap 输出大概是这样:

    sacn result

            果然是新手向的靶机,轻轻一跃就能摘到果实。

            引起我兴趣的是60000居然写的是个shell ? 

    60000

            还确实是个shell 不过出不去,拿了个flag。到这里收获大概是这样:

    port - 13337

            FLAG:{TheyFoundMyBackDoorMorty}-10Points

    port - 60000

            FLAG{Flip the pickle Morty!} - 10 Points

            转去看别的。22 和 22222 都是SSH,会不会有什么问题呢? 但check 过下版本,没觉得哪里不妥,尝试分别以登录,发现22似乎不能用密码登录。

        nmap -p 22 -sV --script ssh-auth-methods --script-args="ssh.user=root" 192.168.10.131

    22

            如果是这样的话那就是要找密钥的节奏啊。再看看22222:

    nmap -p 22222 -sV --script ssh-auth-methods --script-args="ssh.user=root" 192.168.10.131

    22222

            22222没问题,可以用密码。

            再去看看别的:9090:

    9090

            flag直接送!9090是一个叫Cockpit的监控工具,但这里貌似是坏的,没法登录。

            FTP是可以匿名登录的,又轻松拿到一个:

    21

            但是不可写,没啥用。OK 至此拿到4个flag:

    4 flag

            接下来将是最有趣的80了。

    80

            打开就是carton人物。在robots.txt找到两个路径:

    robots.txt

            看到第一个眼前一亮,但打开却是个under construction,第二看到就想到命令执行了,burp开一下:

    id

            通过这个命令执行我可以浏览passwd但cat很显然是被做了手脚,用less可以替代,拿到passwd之后检查出这几个账户:

    passwd

            通过命令执行还可以浏览到web目录的结构:

    /var/www/html

            还可以获取apache的配置文件

            之后我一心想通过这个命令执行pop shell但多翻尝试都无果,包括直接拼接命令、urlencode命令、web目录似乎不可写,所以echo写webshell和wget下载webshell都行不通。尝试echo 写tcpshell到/var/www再执行,发现虽然目录可写,但写入不成功。用nc测试回连本地端口发现没反应,防火墙做了策略(后面证实并没有),于是结合22端口的密钥登录设想会不会有帐号配置有密钥,尝试本地SSH登录:

    ssh Morty@localhost id

    ssh RickSanchez@localhost id

            但均没有反应。。。。。。

            纠结了很久,后面发现在passwords目录下藏了一个密码:        

    passwords.html

            结合passwd中提取出来的账户名整理出username.txt然后用hydra爆破一下:

    hydra -L ./username.txt -p winter ssh://192.168.10.131:22222

    winter

            有戏。Summer登上后拿到Summer的Flag,发现home下大概是这样:

    home

        Morty的目录下拿到一个密码,解压文件后拿到一个flag

            其实如果前面有一直整理所有获得的flag你会发现这个flag有点特别。。。。。。

            safe文件执行一下似乎是个解密的东西,一开始我找字符串,但是没有收获,我甚至还使用nc将其下载到本地机器上做了一下分析,然后往ctf的方向想是不是文件夹的名称但也不是,收集了很久整理了几个词都不对,其实就是用上一个flag来解。解密后发现有一个关于RickSanchez用户密码的提示,提到了一支band,但我没有看过动画所以只能google了,然后生成字典:

    crunch 7 7 -t ,%Flesh >> rick.pass

    crunch 7 7 -t Flesh,% >> rick.pass

    crunch 7 7 -t %,Flesh >> rick.pass

    crunch 7 7 -t Flesh%, >> rick.pass

    crunch 10 10 -t ,%Curtains >> rick.pass

    crunch 10 10 -t Curtains,% >> rick.pass

    crunch 10 10 -t %,Curtains >> rick.pass

    crunch 10 10 -t Curtains%, >> rick.pass

            band队叫做:Flesh Curtains 好了拿去爆破一下:

        good 很顺利就拿到了

          然后可以拿到root. 总结一下拿到的所有的flag:

    Bash CGI Code Review:

        这次很关键的一个突破口在于vulnerable的cgi去看看:            

           就是一个form表单采用GET方法,QUERY_STRING部分就是请求的url中?后面跟的参数

    curl -s -vv localhost/cgi-bin/tracertool.cgi?ip=127.0.0.1

            比如这个例子,QUERY_STRING就是ip=127.0.0.1 而对QUERY_STRING处理后得到IP,这个处理并不严格而导致了命令拼接,简单做个修复可以在IP后面在做一个关键字的截断处理:

    for bad in ';' '&' '|';do IP=`echo $IP|cut -d $bad -f 1`;done

            其实还可以考虑Shellsock但这个bash的版本不受影响而且过滤了;以后也不一定能exp.回顾一下前面无法popshell的原因很有可能是命令产生了歧义吧。再继续的话还可以在写写通过命令注入读到apache配置文件分析但在这里不是很有必要。

    Review

            事后反省之所以urlencode失效原因应该是因为这只是一个bashCGI,其次web中能操作的只是apache用户,这个帐号的权限能否建立连接也是一个问题,第三点就是web中tcpshell常见的断连,一回连上来就会马上断掉。

          

         OK 今天就到这里

    相关文章

      网友评论

          本文标题:Vulnhub Rickdiculously Easy Walk

          本文链接:https://www.haomeiwen.com/subject/iunsxhtx.html