×

内网穿透——Android木马进入高级攻击阶段
  

无花果 4561

{{ttag.title}}
本帖最后由 无花果 于 2016-12-6 16:46 编辑

一、概述

近日,360烽火实验室发现有数千个样本感染了一种名为“DressCode”的恶意代码,该恶意代码利用实下流行的SOCKS代理反弹技术突破内网防火墙限制,窃取内网数据。这种通过代理穿透内网绕过防火墙的手段在PC上并不新鲜,然而以手机终端为跳板实现对企业内网的渗透还是首见。

SOCKS是一种网络传输协议,SOCKS协议位于传输层与应用层之间,所以能代理TCP和UDP的网络流量,SOCKS主要用于客户端与外网服务器之间数据的传递,那么SOCKS是怎么工作的呢,举个例子:A想访问B站点,但是A与B之间有一个防火墙阻止A直接访问B站点,在A的网络里面有一个SOCKS代理C,C可以直接访问B站点,于是A通知C访问B站点,于是C就为A和B建立起信息传输的桥梁。其工作流程大致分为以下5步:

  • 代理方向代理服务器发出请求信息。
  • 代理服务器应答。
  • 代理方需要向代理服务器发送目的IP和端口。
  • 代理服务器与目的进行连接。
  • 连接成功后将需要将代理方发出的信息传到目的方,将目的方发出的信息传到需要代理方。代理完成。



由于SOCKS协议是一种在服务端与客户端之间转发TCP会话的协议,所以可以轻易的穿透企业应用层防火墙;它独立于应用层协议,支持多种不同的应用层服务,如TELNET,FTP,HTTP等。SOCKS协议通常采用1080端口进行通信,这样可以有效避开普通防火墙的过滤,实现墙内墙外终端的连接。

二、地域分布

360互联网安全中心数据显示,截止目前,“DressCode”恶意代码传播量已达24万之多,在世界范围内分布相当广泛,感染了该恶意代码的手机在全世界的分布情况如下图所示:


“DressCode”木马在世界各地的分布情况


数据显示,已有200多个国家的用户手机安装了带有“DressCode”恶意代码的应用,该恶意代码大多寄宿在时下流行的手机游戏中,其扩散能力很强,其中美国、俄罗斯,德国、法国等欧美发达国家属于重灾区,中国的形势也不容乐观,企业内网安全正在遭受前所未有的挑战。


三、详细分析

该木马的主要攻击过程如下:

  • 木马运行时主动连接到攻击者主机(SOCKS客户端),建立一个与攻击者对话的代理通道。
  • 作为SOCKS服务端的木马根据攻击者传来的目标内网服务器的IP地址和端口,连接目标应用服务器。
  • 木马在攻击者和应用服务器之间转发数据,进行通信。



当木马安装上手机后,首先会连接C&C服务器,连接成功后,那么木马就与C&C服务器建立了一个对话通道, 木马会读取C&C服务器传送过来的指令, 当木马收到以“CREATE”开头的指令后,就会连接攻击者主机上的SOCKS客户端,攻击者与处于内网中的木马程序建立了信息传输的通道了。

SOCKS服务端读取SOCKS客户端发送的数据,这些数据包括目标内网应用服务器的IP地址和端口、客户端指令。如下图所示:

SOCKS服务端获取客户端指令等信息


客户端传递过来的命令主要有CONNECT与BIND两种指令。

(一)CONNECT指令

当SOCKS客户端要与目标应用服务器建立连接时,首先会发送一个CONNECT指令,SOCKS服务端接收到CONNECT指令后,会根据读取到的IP地址和端口连接目标应用服务器,连接成功后,会将请求结果发送给SOCKS客户端,此时目标应用服务器与SOCKS服务端,SOCKS服务端与SOCKS客户端都建立起了会话通道,木马作为数据中转站,可以在攻击者和应用服务器转发任意数据了,其转发过程如图所示:


SOCKS协议对数据转发的实现代码如下:

图4 木马转发数据的代码

那么通过这两条已连接的数据传输通道如何窃取数据的呢?以HTTP协议为例,假设攻击者要访问位于内网的HTTP服务器,那么攻击者首先通过SOCKS客户端将HTTP请求数据发送给SOCKS服务端,SOCKS服务端读取到这些数据后,马上将这些数据转发给应用服务器,应用服务器收到HTTP请求后,将HTTP应答数据发送给木马,木马检查到应答数据,马上转发给攻击者,这样攻击者就通过木马完成了对内网HTTP服务器的访问。

(二)BIND指令

当攻击者需要访问内网FTP应用服务器时, SOCKS代理客户端需要向服务端发送BIND指令。SOCKS协议支持采用PORT模式传输FTP数据,PORT模式传输数据的主要过程如下:

FTP客户端首先和FTP服务器建立控制连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。FTP服务器必须和客户端建立一个新的连接用来传送数据。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务端通过自己的端口(默认是20)连接至客户端的指定端口发送数据。

SOCKS代理服务端接收到BIND指令后,木马会利用本地IP和匿名端口生成一个服务端Socket A,并通过建立的数据转发通道,将本地IP和端口发送给攻击者;等待目标应用服务器连接(多为FTP服务器)。

(三)攻击FTP服务器的过程

攻击者想要窃取内网FTP服务器数据时,会首先发送CONNECT指令,处于内网中的SOCKS服务端接收到此命令后,会试图和FTP服务器建立一个控制流,如果FTP服务器响应此请求,最终FTP控制流建立;攻击者建立新的到SOCKS服务端的TCP连接,并在新的TCP连接上发送BIND请求,SOCKS 服务端接收到BIND请求后,创建新的Socket,等待目标FTP服务器的连接,并向SOCKS客户端发送第一个BIND响应包;SOCKS客户端收到第一个BIND响应包后,攻击者通过FTP控制流向FTP服务器发送PORT命令,通知FTP服务器主动建立到Socket A的连接;FTP服务器收到PORT命令,主动连接到Socket A;SOCKS服务端接收到来自FTP服务器的连接请求,向SOCKS客户端发送第二个响应包,然后SOCKS服务端开始转发数据流。这样攻击者就通过木马完成了对内网文件服务器的数据窃取。

以上攻击过程如下图所示:


四.总结建议

“DressCode”恶意代码穿透能力强,地域分布广泛,已成为对内网安全的一种新的潜在威胁,减除接入企业内网的智能终端设备所带来的安全威胁客不容缓。针对此种情况,企业应做好如下两点防范措施:

  • 严格限制不可信的智能终端设备接入公司内部网络,对要接入公司内网的终端设备进行身份认证。
  • 智能终端设备不应该与企业内部服务器处于同一个局域网段内。



与此同时,手机用户应该提高安全意识,要从正规的安卓应用商店下载应用,不要安装来历不明的应用软件。


转载自安全牛

打赏鼓励作者,期待更多好文!

打赏
2人已打赏

Sangfor_闪电回_朱丽 发表于 2016-12-6 16:49
  
严格限制不可信的智能终端设备接入公司内部网络,对要接入公司内网的终端设备进行身份认证。
智能终端设备不应该与企业内部服务器处于同一个局域网段内。
手机用户应该提高安全意识,要从正规的安卓应用商店下载应用,不要安装来历不明的应用软件。

做好这三步很重要,需要公司IT管理和移动终端的用户都重视起来!感谢楼主的分享!

稻草 发表于 2016-12-6 17:09
  
一三五七九 发表于 2016-12-6 17:12
  
反弹式木马,买AF禁代理可有效防止此类攻击,哈哈。
新手589624 发表于 2020-3-17 08:25
  
漏洞无处不在
发表新帖
热门标签
全部标签>
技术盲盒
西北区每日一问
安全效果
干货满满
每日一问
技术笔记
【 社区to talk】
新版本体验
功能体验
技术咨询
产品连连看
标准化排查
GIF动图学习
2023技术争霸赛专题
每周精选
信服课堂视频
通用技术
自助服务平台操作指引
秒懂零信任
技术晨报
安装部署配置
答题自测
原创分享
升级&主动服务
社区新周刊
POC测试案例
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
高频问题集锦
全能先锋系列
云化安全能力

本版达人

SANGFOR...

本周分享达人