No.109-HackTheBox-Linux-Jail-Walkthrough渗透学习

**

HackTheBox-Linux-Jail-Walkthrough

**

靶机地址:https://www.hackthebox.eu/home/machines/profile/45
靶机难度:中级(4.3/10)
靶机发布日期:2017年10月31日
靶机描述:
Jail, like the name implies, involves escaping multiple sandbox environments and escalating between multiple user accounts. It is definitely one of the more challenging machines on Hack The Box and requires fairly advanced knowledge in several areas to complete.

作者:大余
时间:2020-05-22

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

一、信息收集

在这里插入图片描述
可以看到靶机的IP是10.10.10.34…
在这里插入图片描述
在这里插入图片描述
Nmap发现了几个开放服务,Apache和端口7411上的未知服务…以及NFS,还可以看出存在缓冲区溢出…
在这里插入图片描述
访问web,可以看到门口是JAIL字眼,要进入应该是和JAIL某程序有关…
在这里插入图片描述
通过爆破发现了该目录…
在这里插入图片描述
访问看到了三个文件,二进制文件、C程序和bash脚本…
下载到本地分析…
在这里插入图片描述
在这里插入图片描述
打开c程序,发现它是用于某种身份验证的程序,我们还发现它对可变密码使用了strcpy函数…还执行着4711端口…
在这里插入图片描述
在bash脚本中,只有少数几个命令称为jail服务,通过检查jail二进制文件,我发现它是一个ELF文件…通过nmap的前面的扫描,对比可以得出这应该存在缓冲区溢出了…
继续检查授予改二进制权限,执行后检查netstat并发现它打开了本地端口7411…
在这里插入图片描述
继续在gdb中打开二进制文件以查看汇编代码,该二进制文件通过将自身分叉到每个服务器调用而起作用,因此在发生崩溃的情况下,主进程仍将在运行…

在这里插入图片描述
通过pattern_生成字符串,传递字符串后,就会出现分段错误,并发现EIP寄存器被0x62413961覆盖…
通过pattern_offset获得了偏移量为28,利用28字符写入shellcode即可…
在这里插入图片描述
在这里插入图片描述
这里shellcode我利用了https://www.exploit-db.com/exploits/34060进行编译…将shellcode注入28字节中…
运行漏洞利用程序后,获得了nobody用户身份获得一个shell…
但是nobody无权限获取flag…
在这里插入图片描述
需要进一步特权升级,目前知道该靶机正在运行NFS共享,通过NFS找到了共享文件夹…
在这里插入图片描述
找到共享文件夹后,在本地安装挂载…装入共享文件夹后,发现无法读取内容…
在这里插入图片描述
查看发现需要在本地伪造个uid gid 1000的frank用户,才能利用nfs挂载,然后在执行读取和写入等权限…
在这里插入图片描述
由于2020的kali本地的uid和gid1000是kali用户占用了,创建了frank后修改了uid和gid…这里需要到靶机中执行个shell…才能通过挂在对frank用户具有权限…
在这里插入图片描述
在这里插入图片描述
我在本地创建的frank用户权限下,写入了shell…并在靶机中执行…获得了frank的shell外壳…
在这里插入图片描述
通过frank权限用户获得了user信息…并sudo时发现在/var/www/html/jailuser中以rvim作为adm用户在没有密码情况下可以打开jail.c文件…试试

在这里插入图片描述
https://github.com/vim/vim/issues/1543
通过浏览文章发现此版本的vim仍容易受到攻击,只需要将以下命令传递到rvim中即可…:diffpatch $(sh <&2 >&2)
在这里插入图片描述
通过写入命令回车,利用此Vim漏洞获得了adm用户权限…
在这里插入图片描述
在adm的主目录中,找到了一个名为.keys的隐藏文件夹,在目录发现keys.rar和note.txt两个文件…
阅读note.txt文件的内容,并找到一个密码提示,指出密码将是用户Frank的姓氏,后跟4位数字和一个符号…
在这里插入图片描述
继续查找隐藏目录时,找到另一个名为.local的文件夹,然后进入该目录,找到一个名为.frank的隐藏文件…
在这里插入图片描述
使用网站https://quipqiup.com并找到解密的文本…

在这里插入图片描述
看不懂直接复制google搜索…查看第一篇文章…
在这里插入图片描述
可以看到这与逃离恶魔岛的人有关,暗示一件事:臭名昭著逃犯在1962年从恶魔岛逃生,其中有三名囚犯从恶魔岛监狱中逃脱…一个名叫弗兰克·莫里斯(Frank Morris)的人就是逃脱者之一…

在这里插入图片描述
通过转换程序为base64值,然后下载更准确…
在这里插入图片描述
然后在本地系统中解码字符串来重新创建文件…
解压后发现无法解压,需要密码…
通过前面note.txt的提示以及逃离恶魔岛的提示…得出密码是作者名+逃离年份+符号
在这里插入图片描述
利用crunch创建了密码本…然后通过john破解出了密码…
在这里插入图片描述
通过找到的密码解压出了一个公共密钥…
在这里插入图片描述
命令:python2.7 RsaCtfTool.py --publickey ~/Desktop/dayuJail/rootauthorizedsshkey.pub --private > ~/Desktop/dayuJail/id_rsa
https://github.com/Headorteil/RsaCtfTool
使用rsactftool将公钥转换为私钥,以便可以使用它通过ssh登录…(这里前面几章文章讲过了)
成功获得私钥…记得赋予权限
在这里插入图片描述
通过私钥成功登陆了root用户…获得了root的flag信息…

缓冲区溢出+nfs提权+rvim漏洞提权+rar解密+rsa解密…
学习思路,巩固工具的用法…加油

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

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值