2017.W20 - Remote Code Execution (RCE)
> 趁著 MS-2017-010 的问题来介绍
## 前言 ##
在上礼拜的聚会中 跟朋友聊到了一些资安名词
他们在争执一些恶意软件[0]到底是被归类在后门[1]还是木马[2]
其实像是这些名词在恶意软件当中 都代表着一个相对应的功能
但现在 21 世纪了 很多恶意软件功能已经包山包海 很难用单一种功能来描述
像是后门通常指的是一个软件 可以借由特定的操作登入道系统当中
而木马指的是一个伪装成正常程式的恶意软件
通常一个木马带有后门的功能 但也可以只含有上传资料到 C&C 服务器
另一方面 也曾经出现过硬件后门这种非软件的恶意设计
## 内容 ##
Remote Code Execute 或者简称为 RCE 是安全漏洞中的一个分类
在 CVE Detail[3] 中被归类在 Code Execution 当中
Code Execution 是一个严重的安全性漏洞 - 可以执行任意代码也 (几乎) 能做任何事
在软件的世界当中 所有的操作都可以用相对的机械码完成
而一个程式语言执行的目的 也就是执行相对的机械码
RCE 的含义在于可以*[1;31m远端执行一段程式码
这跟 SQL Injection (仅限于执行 SQL 操作) 大多数的危害都是可以 Dump DB
也就是获得极敏感的资料从服务器端
或是 Dos / DDoS 只能将服务中断 让使用者感到极度不方面
RCE 原则上都可以做到上面的事情
1. 可以执行 SQL 指令 > mysql -c "DROP TABLE [TABLE NAME]"
2. 重开机 > reboot
最严重的 RCE (像是这次的 MS2017-010[4]) 都包含以下的特性:
1. 不需要认证 (Unauthenticated)
2. 执行任意指令 (Code Execution)
3. 高权限
不需要认证也就是只要能够碰触 (touch) 到这个漏洞就可以执行任意指令
高权限也代表着执行的指令拥有最高权限 攻击者不需要思考如何提权[5]
[0]: https://zh.wikipedia.org/zh-tw/%E6%81%B6%E6%84%8F%E8%BD%AF%E4%BB%B6
[1]: https://en.wikipedia.org/wiki/Backdoor_(computing)
[2]: https://en.wikipedia.org/wiki/Trojan_horse_(computing)
[3]: http://www.cvedetails.com/vulnerabilities-by-types.php
[4]: https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
[5]: https://en.wikipedia.org/wiki/Privilege_escalation