特色:这个靶机有难度。一是通过nfs挂载发现第一个用户;二是从主页源码提示推测出第二个用户;三是扫描目录发现文件是jsfuck编码解密后得到第二个用户的密码;四是ssh登录后得到flag1;五是提权(上篇是dirtycow提权),这里通过寻找s位的文件、利用polkit来systemd-run提权,最终找到flag2;六是拓展通过vim强行修复swp文件得到第一个用户密码。
靶机地址:https://www.vulnhub.com/entry/connect-the-dots-1,384/
1、靶机ip:192.168.137.134
2、扫描ip
开放端口很多,重点看的是111和2049端口都涉及到nfs网络文件系统的挂载。同时ssh端口修改到了7822。后面的端口是动态端口,没什么有用信息。
3、nmap带漏洞扫描
nmap --script=vuln -p21,80,111,2049,7822 192.168.137.134
发现一个sql注入。
4、存在111和2049端口,可能有nfs挂载系统,默认情况下,RPC服务使用的端口通常是 111 和 2049。
显示有个用户名为morris;
挂载一下,mount -t nfs 192.168.137.134:/home/morris mor
挂载后有很多文件;但没有权限
5、主页,源代码查看,发现一句话,
可以得到的信息:“他们给我起名叫M,给你起名叫N。嗯,除了名字的首字母外,我们的名字完全一样,你除了备份什么都找不到“
那另一个用户名可能为:norris;
6、扫描目录,gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.137.134
捡重要的,192.168.137.133/mysite
7、通过检索,发现上面这是JSFuck加密方式,注意观察,这是一串从b1到b10的相连的字符串,将它们连接起来,放到网站:https://js-fuck-and-hieroglyphy-decoder-and-encoder.vercel.app/来解密,得出:
alert("You're smart enough to understand me. Here's your secret, TryToGuessThisNorris@2k19")
这里有个Norris,可能是个用户名;
由开放端口可以知道有服务ssh,ftp.来根据用户名登陆一下
用户名为norris 密码为TryToGuessThisNorris@2k19
8、ssh登录,注意这里的端口号改成7822
ssh [email protected] -p 7822
9、flag1:
查看目录下有哪些文件,看到有user.Txt。得到第一个flag
10、提权
有两个用户:norris知道密码,但另一个用户morris不知道密码(见最后第11项,找到它的密码);
(1)linux 提权主要有两种一种是脏牛ditrycow提权(上篇就是这个),另外一种比较简单就是sid linux提权。
(2)linux的权限主要是有r w x 这三种,也就是读权限,写权限和执行权限;linux 提权涉及到一个s权限。每当这个文件有s权限的,当运行这个文件时,以文件的拥有者去执行这个文件;所以我们要知道root用户拥有的具有s的执行权限的文件。
寻找:find / -perm -u=s -type f 2>/dev/null
含义:
-perm -u=s 查找拥有s权限的文件
-type f 指定类型为文件
2>/dev/null 是将报错信息输出到空,也就是不输出报错信息
(3)s位文件
比较一下,列了三个,前两个都可以,重点关注这个/usr/lib/policykit-1/polkit-agent-helper-1,该文件的属主和数组都是root,且具有s位权限,可以以属主的身份运行,应该可以提权;
(3)systemd-run -t
polkit是linux系统中针对文件权限管理的一套机制,而helper相当于是充当一个介于操作者与被操作文件的一个中介,会通过这个helper去调用执行文件。因此如果我们能够借助helper的高权限,以root的身份调用bash,即可实现提权。可以通过如下的命令实现触发polkit-agent-helper-1,并借用polkit-agent-helper-1的root高权限启动bash进行提权。
可以使用systemd-run 启动伪终端,此时会通过polkit-agent-helper-1启动,而polkit-agent-helper-1具有高权限,因此就有可能实现提权。
systemd-run -t /bin/bash,输入密码TryToGuessThisNorris@2k19
得到 flag2。
11、虽然题目学习完了,但还有要拓展的;
(1)漏洞提权
上面提到的Linux Polkit 有个权限提升漏洞,这个漏洞通杀很多老版本的linux靶机,可以直接在Exploit-DB上搜索CVE-2021-4034。
(2).secretfile.swp文件
由于swp文件是一种临时的交换文件,通常在特殊异常退出的情况时会产生。结合strings中看到的字符串中存在vim,再考虑到先前我们看到的好多提示都与快没电了!电池耗尽相关。因此我们大胆猜测这个文件就是vim编辑时断点异常退出产生的,我们可以使用vim -r参数读取损坏的swp文件:
vim -r .secretfile.swp
我们又得到了一串字符串blehguessme090,通过尝试我们发现,这就是morris账户的密码,
morris用户ssh登录成功。
原文始发于微信公众号(MicroPest):nfs挂载+jsfuck编码+s位提权:ConnectTheDots靶机
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论