0%

TryHackMe-Lian_Yu

靶机链接:Lian_Yu

靶机难度:简单 卡了我一天的简单难度靶机?
我真的菜。

信息收集

1
2
3
4
5
6
7
#!/bin/bash

IP=$1

ports=$(nmap -p- --min-rate=1000 -T4 ${IP} | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)

/usr/bin/nmap -sC -sV -p${ports} ${IP}

nmap

目录探测
gobu

index..

emmm..因为不是php的文件,不能进行传值.要不然,我就试试传值code word了..只能进行目录探测,因为题目已经提示是四个数字的目录.所以我们需要生成一个字典文件.(另外在这个页面你需要查看源代码,,否则你会遗漏点东西)

可以看到有一个用户名在这里.

1
crunch 4 4 -t %%%% -o num.txt

num

How Oliver Queen finds his way to Lian_Yu?

我没看过绿箭侠我怎么知道..

继续查看源代码找线索
.ticket

.ticket? 文件后缀名?有可能是要继续进行目录下的文件探测..
ticket

好吧,我们拿到船票了。

看起来像是base加密过的可以来这里进行解码各类解码

解码获得密码后,可以直接连接ftp看看有什么东西了。


这里只能一个一个文件下载下来看了。下载回来之后只在.other_user找到一个小故事,里面有几个人名。其他文件都没能找到有用的线索。
下载回来的图片文件,两个png和一个jpg。

  • Leave_me_alone.png
  • Queen’s_Gambit.png
  • aa.jpg
    其中Leave_me_alone.png是坏的,先不管。用zsteg尝试提取Queen's_Gambit.png,很遗憾。没有东西。
    分析aa.jpg
    1
    2
    3
    4
    binwalk -e aa.jpg
    DECIMAL HEXADECIMAL DESCRIPTION
    --------------------------------------------------------------------------------
    0 0x0 JPEG image data, JFIF standard 1.01
    用空密码也提取不了文件。

尝试修复Leave_me_alone.png也失败了。
wunai

我卡在这里一下午了。最后得到高人指点。。

always try password for steghide

记住了,下次遇到图片文件,都给它跑个弱密码字典提取试试。

最后会提取到一个ss.zip解压后就是我们需要的ssh密码了。但是我们不知道用户名。结合之前,我们在.other_user看到的小故事,用里面的第一个人名试试slade
ssh-log

登录成功。进来的第一件事当然是看看sudo -l

提权

有相关程序能sudo?那第一件事当然是看看GTFOBins里面有没有提权姿势啦。

但是很遗憾,没有。只能去看看谷歌了。

发现有一个漏洞利用程序,而且目标机器的内核也低于5.1.17。可以尝试一下CVE-2019-13272兴高采烈的下好exploit,结果在机器上一运行就不行了。

好吧,认真看看漏洞描述吧。loser

In the Linux kernel before 5.1.17,
ptrace_link in kernel/ptrace.c mishandles the recording of the credentials of a process that wants to create a ptrace relationship,
which allows local users to obtain root access by leveraging certain scenarios with a parent-child process relationship,
where a parent drops privileges and calls execve (potentially allowing control by an attacker).
One contributing factor is an object lifetime issue (which can also cause a panic).
Another contributing factor is incorrect marking of a ptrace relationship as privileged, which is exploitable through (for example) Polkit’s pkexec helper with PTRACE_TRACEME.
NOTE: SELinux deny_ptrace might be a usable workaround in some environments.

在5.1.17之前的Linux内核中,kernel / ptrace.c中的ptrace_link错误地处理了想要创建ptrace关系的进程的凭据记录,这允许本地用户通过利用父子的某些方案来获取root访问权限 进程关系,父进程删除权限并调用execve(可能允许攻击者控制)。一个影响因素是对象寿命问题(也可能导致恐慌)。 另一个影响因素是将ptrace关系标记为特权,这可以通过(例如)Polkit的pkexec帮助程序与PTRACE_TRACEME进行利用。
注意:在某些环境中,SELinux deny_ptrace可能是一种可用的解决方法。

总结
总体来看这个漏洞的限制还是比较大的
首先要找到一个内部有减权的 suid 程序就比较难了
pkexec 是linux 桌面 freedestop 上的验证程序,也就是说非桌面版本就可能没有这个东西,要用它也只能在桌面上。
像 android ,它把 suid 程序都去除了这个漏洞就几乎造不成什么影响。
这个漏洞和之前的 usb creator 漏洞差不多,实际应用上感觉都有点鸡肋。

而我们的目标机器是没有桌面的,那这个漏洞利用就宣告彻底失败了。不过,让我们回过头来看看,我们这可以用sudo去运行啊,为什么要纠结于这个漏洞利用呢?

pkexec 可以通过 –user 参数授权特定的用户执行命令,没有指定的话默认为root权限

所以其实我们可以直接

1
sudo pkexec --user root whoami

好,成功了。接下来怎么做还需要我说吗?直接打开一个shell就好啦。

总结

  • always try password for steghide