DC-5渗透
靶机需要在与kali机在同一网段下:
靶机桌面:老样子:
linux操作系统,并且还是一个登录界面,开整!
第一步——信息收集:
kali的ip:192.168.13.128
靶机ip:
查看ip的端口服务信息:
可以看到三个端口信息:80的http服务和111和46856端口
既然是HTTP服务那么就扫描一下域名:
扫描一下靶机的域名信息:
发现了两个:
http://192.168.13.133和http://192.168.13.133/index.php
登录index的网站:
随便找找后发现,在contact中存在留言:
从index.php,跳转到了thinkyou.php
没有头绪了,查看了资料后发现原来我扫描域名的时候并没有扫描完整:
使用敏感目录扫描:
扫描到:
[17:40:48] 200 - 4KB - /contact.php
[17:40:48] 301 - 184B - /css -> http://192.168.13.133/css/
[17:40:50] 200 - 6KB - /faq.php
[17:40:50] 200 - 17B - /footer.php
[17:40:51] 403 - 570B - /images/
[17:40:51] 301 - 184B - /images -> http://192.168.13.133/images/
[17:40:51] 200 - 4KB - /index.php
[17:40:59] 200 - 852B - /thankyou.php
其中的/footer.php /faq.php 和 /thankyou.php
分别查看:
发现一个很神奇的地方,当thankyou.php进行了传参后发现:
版本为2017的
但是当没有进行传参的时候:
他是2020版本的,而且,在/footer.php的界面中是2017版本的,它发生了变化
再次刷新界面的时候:
看他又发生了变化,那么就就猜测可能在thankyou.php中是存在include和require等函数
造成了文件包含漏洞在thankyou.php可以调用其他文件的信息,那么就好办了。
就假如它存在,进行尝试:
通过调用file协议来获得网站信息:
调用出来了他的信息,看来真的存在,但是并没有可以登录的用户。
ok弄到现在已经获得了很多信息:
kali的ip:192.168.13.128
靶机ip:192。168.13.133
靶机域名信息:http://192.168.13.133/index,php /thankyou.php footer.php 等
靶机域名存在的漏洞:文件包含漏洞
靶机网站的版本:nginx 1.6.2
以及靶机网站的网站信息
第二步——利用漏洞夺权
既然可以使用file协议那么就可以获得日志信息,通过查找,发现nginx 1.6.2版本的日志路径为:
/var/log/nginx/error.log:
抓包上传木马,连接蚁剑获得shell:
查看日志看看是否上传成功:
上传成功了
连接蚁剑:
连接成功,开启监听端口,并开启shell交互:
蚁剑开启端口访问:
查看权限:
很显然没有root权限,而且还不能看到root权限的命令
那么就使用find查找一下是否存在root权限的文件:
find / -perm -u=s -type f 2>/dev/null
查找资料获得:
这条命令是在 Linux 系统中执行的。它的含义是在整个文件系统中搜索所有具有 SUID(Set User ID)权限的文件,并将结果输出到标准输出。这些文件通常被称为 SUID 文件。
SUID 权限是一种特殊的权限,它允许非特权用户以拥有该文件所有者的特权执行程序。这对于某些需要特权才能执行的程序非常有用。当一个文件被设置了 SUID 权限时,它会以文件所有者的身份而不是执行者自己的身份来执行。
经过查找发现一个文件/bin/screen-4.5.0可能存在漏洞,查找它:
远程提权漏洞,41154.sh是一个shell脚本,找到他的文件位置将其copy到桌面:
vim打开它:
是三个代码源码,有两个还是C语言代码
还要一个txt文件,打开看看:
是一个教程,但是我们可以取脚本给的网站进行了解
过程就是分别将这三个文件copy粘贴到相应的文件,并且,将前两个C语言代码进行编译:
编译好之后给dc5.sh执行权限
查看靶机的文件权限:
可以看到tmp文件时777,那么在蚁剑上传文件时就可以使用tmp上传:
将其传输到蚁剑的tmp目录下:
上传成功
来到靶机交互的终端:
查看文件:
运行dc5.sh:
我也不知道是不是我的脚本写错了还是什么,我尝试了好多次而且还使用了手动,都不可以运行rootshell脚本:
但是我看了好多的wp都是这样做的,而且在学的时候还学会了另一种传输文件的方法:
ftp传输文件:
首先先在靶机端连接本地的ftp:
然后使用get获得文件:
可以看到下载被终止了原因是已经存在该文件,所以这个方法是可行的